@hagicode/cli 0.1.0-dev.35.1.85ebf75 → 0.1.0-dev.36.1.f325b1d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,55 +1,55 @@
1
- var Ri=Object.create,fa=Object.defineProperty,Ei=Object.getOwnPropertyDescriptor,Ni=Object.getOwnPropertyNames,Gi=Object.getPrototypeOf,Vi=Object.prototype.hasOwnProperty,ke=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Wi=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(var a=Ni(t),r=0,i=a.length,s;r<i;r++)s=a[r],!Vi.call(e,s)&&s!==n&&fa(e,s,{get:(l=>t[l]).bind(null,s),enumerable:!(o=Ei(t,s))||o.enumerable});return e},ut=(e,t,n)=>(n=e!=null?Ri(Gi(e)):{},Wi(t||!e||!e.__esModule?fa(n,"default",{value:e,enumerable:!0}):n,e));let to=require("node:path"),Si=require("node:fs"),vi=require("node:os"),Me=require("node:zlib");Me=ut(Me);let Ct=require("node:util"),nn=require("node:http");nn=ut(nn);let on=require("node:https");on=ut(on);let he=require("node:http2");he=ut(he);let Xi=require("node:fs/promises");var Bt=ke((e=>{var t=class extends Error{constructor(o,a,r){super(r),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=a,this.exitCode=o,this.nestedError=void 0}},n=class extends t{constructor(o){super(1,"commander.invalidArgument",o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),Zn=ke((e=>{var{InvalidArgumentError:t}=Bt(),n=class{constructor(a,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,a[0]){case"<":this.required=!0,this._name=a.slice(1,-1);break;case"[":this.required=!1,this._name=a.slice(1,-1);break;default:this.required=!0,this._name=a;break}this._name.endsWith("...")&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(a,r){return r===this.defaultValue||!Array.isArray(r)?[a]:(r.push(a),r)}default(a,r){return this.defaultValue=a,this.defaultValueDescription=r,this}argParser(a){return this.parseArg=a,this}choices(a){return this.argChoices=a.slice(),this.parseArg=(r,i)=>{if(!this.argChoices.includes(r))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(r,i):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function o(a){const r=a.name()+(a.variadic===!0?"...":"");return a.required?"<"+r+">":"["+r+"]"}e.Argument=n,e.humanReadableArgName=o})),Ra=ke((e=>{var{humanReadableArgName:t}=Zn(),n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(a){this.helpWidth=this.helpWidth??a.helpWidth??80}visibleCommands(a){const r=a.commands.filter(s=>!s._hidden),i=a._getHelpCommand();return i&&!i._hidden&&r.push(i),this.sortSubcommands&&r.sort((s,l)=>s.name().localeCompare(l.name())),r}compareOptions(a,r){const i=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return i(a).localeCompare(i(r))}visibleOptions(a){const r=a.options.filter(s=>!s.hidden),i=a._getHelpOption();if(i&&!i.hidden){const s=i.short&&a._findOption(i.short),l=i.long&&a._findOption(i.long);!s&&!l?r.push(i):i.long&&!l?r.push(a.createOption(i.long,i.description)):i.short&&!s&&r.push(a.createOption(i.short,i.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(a){if(!this.showGlobalOptions)return[];const r=[];for(let i=a.parent;i;i=i.parent){const s=i.options.filter(l=>!l.hidden);r.push(...s)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(a){return a._argsDescription&&a.registeredArguments.forEach(r=>{r.description=r.description||a._argsDescription[r.name()]||""}),a.registeredArguments.find(r=>r.description)?a.registeredArguments:[]}subcommandTerm(a){const r=a.registeredArguments.map(i=>t(i)).join(" ");return a._name+(a._aliases[0]?"|"+a._aliases[0]:"")+(a.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(a){return a.flags}argumentTerm(a){return a.name()}longestSubcommandTermLength(a,r){return r.visibleCommands(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(s)))),0)}longestOptionTermLength(a,r){return r.visibleOptions(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(s)))),0)}longestGlobalOptionTermLength(a,r){return r.visibleGlobalOptions(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(s)))),0)}longestArgumentTermLength(a,r){return r.visibleArguments(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(s)))),0)}commandUsage(a){let r=a._name;a._aliases[0]&&(r=r+"|"+a._aliases[0]);let i="";for(let s=a.parent;s;s=s.parent)i=s.name()+" "+i;return i+r+" "+a.usage()}commandDescription(a){return a.description()}subcommandDescription(a){return a.summary()||a.description()}optionDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&(a.required||a.optional||a.isBoolean()&&typeof a.defaultValue=="boolean")&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),a.presetArg!==void 0&&a.optional&&r.push(`preset: ${JSON.stringify(a.presetArg)}`),a.envVar!==void 0&&r.push(`env: ${a.envVar}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}argumentDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}formatItemList(a,r,i){return r.length===0?[]:[i.styleTitle(a),...r,""]}groupItems(a,r,i){const s=new Map;return a.forEach(l=>{const c=i(l);s.has(c)||s.set(c,[])}),r.forEach(l=>{const c=i(l);s.has(c)||s.set(c,[]),s.get(c).push(l)}),s}formatHelp(a,r){const i=r.padWidth(a,r),s=r.helpWidth??80;function l(f,Z){return r.formatItem(f,i,Z,r)}let c=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(a))}`,""];const m=r.commandDescription(a);m.length>0&&(c=c.concat([r.boxWrap(r.styleCommandDescription(m),s),""]));const p=r.visibleArguments(a).map(f=>l(r.styleArgumentTerm(r.argumentTerm(f)),r.styleArgumentDescription(r.argumentDescription(f))));if(c=c.concat(this.formatItemList("Arguments:",p,r)),this.groupItems(a.options,r.visibleOptions(a),f=>f.helpGroupHeading??"Options:").forEach((f,Z)=>{const N=f.map(V=>l(r.styleOptionTerm(r.optionTerm(V)),r.styleOptionDescription(r.optionDescription(V))));c=c.concat(this.formatItemList(Z,N,r))}),r.showGlobalOptions){const f=r.visibleGlobalOptions(a).map(Z=>l(r.styleOptionTerm(r.optionTerm(Z)),r.styleOptionDescription(r.optionDescription(Z))));c=c.concat(this.formatItemList("Global Options:",f,r))}return this.groupItems(a.commands,r.visibleCommands(a),f=>f.helpGroup()||"Commands:").forEach((f,Z)=>{const N=f.map(V=>l(r.styleSubcommandTerm(r.subcommandTerm(V)),r.styleSubcommandDescription(r.subcommandDescription(V))));c=c.concat(this.formatItemList(Z,N,r))}),c.join(`
2
- `)}displayWidth(a){return o(a).length}styleTitle(a){return a}styleUsage(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r==="[command]"?this.styleSubcommandText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleCommandText(r)).join(" ")}styleCommandDescription(a){return this.styleDescriptionText(a)}styleOptionDescription(a){return this.styleDescriptionText(a)}styleSubcommandDescription(a){return this.styleDescriptionText(a)}styleArgumentDescription(a){return this.styleDescriptionText(a)}styleDescriptionText(a){return a}styleOptionTerm(a){return this.styleOptionText(a)}styleSubcommandTerm(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleSubcommandText(r)).join(" ")}styleArgumentTerm(a){return this.styleArgumentText(a)}styleOptionText(a){return a}styleArgumentText(a){return a}styleSubcommandText(a){return a}styleCommandText(a){return a}padWidth(a,r){return Math.max(r.longestOptionTermLength(a,r),r.longestGlobalOptionTermLength(a,r),r.longestSubcommandTermLength(a,r),r.longestArgumentTermLength(a,r))}preformatted(a){return/\n[^\S\r\n]/.test(a)}formatItem(a,r,i,s){const c=" ".repeat(2);if(!i)return c+a;const m=a.padEnd(r+a.length-s.displayWidth(a)),p=2,f=(this.helpWidth??80)-r-p-2;let Z;return f<this.minWidthToWrap||s.preformatted(i)?Z=i:Z=s.boxWrap(i,f).replace(/\n/g,`
1
+ var fi=Object.create,Ra=Object.defineProperty,Ei=Object.getOwnPropertyDescriptor,Vi=Object.getOwnPropertyNames,Ni=Object.getPrototypeOf,Gi=Object.prototype.hasOwnProperty,ke=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Wi=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(var a=Vi(t),r=0,i=a.length,l;r<i;r++)l=a[r],!Gi.call(e,l)&&l!==n&&Ra(e,l,{get:(s=>t[s]).bind(null,l),enumerable:!(o=Ei(t,l))||o.enumerable});return e},ut=(e,t,n)=>(n=e!=null?fi(Ni(e)):{},Wi(t||!e||!e.__esModule?Ra(n,"default",{value:e,enumerable:!0}):n,e));let to=require("node:path"),Si=require("node:fs"),vi=require("node:os"),Me=require("node:zlib");Me=ut(Me);let Bt=require("node:util"),nn=require("node:http");nn=ut(nn);let on=require("node:https");on=ut(on);let be=require("node:http2");be=ut(be);let Xi=require("node:fs/promises");var Ct=ke((e=>{var t=class extends Error{constructor(o,a,r){super(r),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=a,this.exitCode=o,this.nestedError=void 0}},n=class extends t{constructor(o){super(1,"commander.invalidArgument",o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),Zn=ke((e=>{var{InvalidArgumentError:t}=Ct(),n=class{constructor(a,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,a[0]){case"<":this.required=!0,this._name=a.slice(1,-1);break;case"[":this.required=!1,this._name=a.slice(1,-1);break;default:this.required=!0,this._name=a;break}this._name.endsWith("...")&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(a,r){return r===this.defaultValue||!Array.isArray(r)?[a]:(r.push(a),r)}default(a,r){return this.defaultValue=a,this.defaultValueDescription=r,this}argParser(a){return this.parseArg=a,this}choices(a){return this.argChoices=a.slice(),this.parseArg=(r,i)=>{if(!this.argChoices.includes(r))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(r,i):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function o(a){const r=a.name()+(a.variadic===!0?"...":"");return a.required?"<"+r+">":"["+r+"]"}e.Argument=n,e.humanReadableArgName=o})),fa=ke((e=>{var{humanReadableArgName:t}=Zn(),n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(a){this.helpWidth=this.helpWidth??a.helpWidth??80}visibleCommands(a){const r=a.commands.filter(l=>!l._hidden),i=a._getHelpCommand();return i&&!i._hidden&&r.push(i),this.sortSubcommands&&r.sort((l,s)=>l.name().localeCompare(s.name())),r}compareOptions(a,r){const i=l=>l.short?l.short.replace(/^-/,""):l.long.replace(/^--/,"");return i(a).localeCompare(i(r))}visibleOptions(a){const r=a.options.filter(l=>!l.hidden),i=a._getHelpOption();if(i&&!i.hidden){const l=i.short&&a._findOption(i.short),s=i.long&&a._findOption(i.long);!l&&!s?r.push(i):i.long&&!s?r.push(a.createOption(i.long,i.description)):i.short&&!l&&r.push(a.createOption(i.short,i.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(a){if(!this.showGlobalOptions)return[];const r=[];for(let i=a.parent;i;i=i.parent){const l=i.options.filter(s=>!s.hidden);r.push(...l)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(a){return a._argsDescription&&a.registeredArguments.forEach(r=>{r.description=r.description||a._argsDescription[r.name()]||""}),a.registeredArguments.find(r=>r.description)?a.registeredArguments:[]}subcommandTerm(a){const r=a.registeredArguments.map(i=>t(i)).join(" ");return a._name+(a._aliases[0]?"|"+a._aliases[0]:"")+(a.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(a){return a.flags}argumentTerm(a){return a.name()}longestSubcommandTermLength(a,r){return r.visibleCommands(a).reduce((i,l)=>Math.max(i,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(l)))),0)}longestOptionTermLength(a,r){return r.visibleOptions(a).reduce((i,l)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(l)))),0)}longestGlobalOptionTermLength(a,r){return r.visibleGlobalOptions(a).reduce((i,l)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(l)))),0)}longestArgumentTermLength(a,r){return r.visibleArguments(a).reduce((i,l)=>Math.max(i,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(l)))),0)}commandUsage(a){let r=a._name;a._aliases[0]&&(r=r+"|"+a._aliases[0]);let i="";for(let l=a.parent;l;l=l.parent)i=l.name()+" "+i;return i+r+" "+a.usage()}commandDescription(a){return a.description()}subcommandDescription(a){return a.summary()||a.description()}optionDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&(a.required||a.optional||a.isBoolean()&&typeof a.defaultValue=="boolean")&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),a.presetArg!==void 0&&a.optional&&r.push(`preset: ${JSON.stringify(a.presetArg)}`),a.envVar!==void 0&&r.push(`env: ${a.envVar}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}argumentDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}formatItemList(a,r,i){return r.length===0?[]:[i.styleTitle(a),...r,""]}groupItems(a,r,i){const l=new Map;return a.forEach(s=>{const c=i(s);l.has(c)||l.set(c,[])}),r.forEach(s=>{const c=i(s);l.has(c)||l.set(c,[]),l.get(c).push(s)}),l}formatHelp(a,r){const i=r.padWidth(a,r),l=r.helpWidth??80;function s(R,Z){return r.formatItem(R,i,Z,r)}let c=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(a))}`,""];const m=r.commandDescription(a);m.length>0&&(c=c.concat([r.boxWrap(r.styleCommandDescription(m),l),""]));const p=r.visibleArguments(a).map(R=>s(r.styleArgumentTerm(r.argumentTerm(R)),r.styleArgumentDescription(r.argumentDescription(R))));if(c=c.concat(this.formatItemList("Arguments:",p,r)),this.groupItems(a.options,r.visibleOptions(a),R=>R.helpGroupHeading??"Options:").forEach((R,Z)=>{const V=R.map(G=>s(r.styleOptionTerm(r.optionTerm(G)),r.styleOptionDescription(r.optionDescription(G))));c=c.concat(this.formatItemList(Z,V,r))}),r.showGlobalOptions){const R=r.visibleGlobalOptions(a).map(Z=>s(r.styleOptionTerm(r.optionTerm(Z)),r.styleOptionDescription(r.optionDescription(Z))));c=c.concat(this.formatItemList("Global Options:",R,r))}return this.groupItems(a.commands,r.visibleCommands(a),R=>R.helpGroup()||"Commands:").forEach((R,Z)=>{const V=R.map(G=>s(r.styleSubcommandTerm(r.subcommandTerm(G)),r.styleSubcommandDescription(r.subcommandDescription(G))));c=c.concat(this.formatItemList(Z,V,r))}),c.join(`
2
+ `)}displayWidth(a){return o(a).length}styleTitle(a){return a}styleUsage(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r==="[command]"?this.styleSubcommandText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleCommandText(r)).join(" ")}styleCommandDescription(a){return this.styleDescriptionText(a)}styleOptionDescription(a){return this.styleDescriptionText(a)}styleSubcommandDescription(a){return this.styleDescriptionText(a)}styleArgumentDescription(a){return this.styleDescriptionText(a)}styleDescriptionText(a){return a}styleOptionTerm(a){return this.styleOptionText(a)}styleSubcommandTerm(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleSubcommandText(r)).join(" ")}styleArgumentTerm(a){return this.styleArgumentText(a)}styleOptionText(a){return a}styleArgumentText(a){return a}styleSubcommandText(a){return a}styleCommandText(a){return a}padWidth(a,r){return Math.max(r.longestOptionTermLength(a,r),r.longestGlobalOptionTermLength(a,r),r.longestSubcommandTermLength(a,r),r.longestArgumentTermLength(a,r))}preformatted(a){return/\n[^\S\r\n]/.test(a)}formatItem(a,r,i,l){const c=" ".repeat(2);if(!i)return c+a;const m=a.padEnd(r+a.length-l.displayWidth(a)),p=2,R=(this.helpWidth??80)-r-p-2;let Z;return R<this.minWidthToWrap||l.preformatted(i)?Z=i:Z=l.boxWrap(i,R).replace(/\n/g,`
3
3
  `+" ".repeat(r+p)),c+m+" ".repeat(p)+Z.replace(/\n/g,`
4
- ${c}`)}boxWrap(a,r){if(r<this.minWidthToWrap)return a;const i=a.split(/\r\n|\n/),s=/[\s]*[^\s]+/g,l=[];return i.forEach(c=>{const m=c.match(s);if(m===null){l.push("");return}let p=[m.shift()],f=this.displayWidth(p[0]);m.forEach(Z=>{const N=this.displayWidth(Z);if(f+N<=r){p.push(Z),f+=N;return}l.push(p.join(""));const V=Z.trimStart();p=[V],f=this.displayWidth(V)}),l.push(p.join(""))}),l.join(`
5
- `)}};function o(a){return a.replace(/\x1b\[\d*(;\d*)*m/g,"")}e.Help=n,e.stripColor=o})),Ea=ke((e=>{var{InvalidArgumentError:t}=Bt(),n=class{constructor(i,s){this.flags=i,this.description=s||"",this.required=i.includes("<"),this.optional=i.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(i),this.mandatory=!1;const l=r(i);this.short=l.shortFlag,this.long=l.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(i,s){return this.defaultValue=i,this.defaultValueDescription=s,this}preset(i){return this.presetArg=i,this}conflicts(i){return this.conflictsWith=this.conflictsWith.concat(i),this}implies(i){let s=i;return typeof i=="string"&&(s={[i]:!0}),this.implied=Object.assign(this.implied||{},s),this}env(i){return this.envVar=i,this}argParser(i){return this.parseArg=i,this}makeOptionMandatory(i=!0){return this.mandatory=!!i,this}hideHelp(i=!0){return this.hidden=!!i,this}_collectValue(i,s){return s===this.defaultValue||!Array.isArray(s)?[i]:(s.push(i),s)}choices(i){return this.argChoices=i.slice(),this.parseArg=(s,l)=>{if(!this.argChoices.includes(s))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(s,l):s},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?a(this.name().replace(/^no-/,"")):a(this.name())}helpGroup(i){return this.helpGroupHeading=i,this}is(i){return this.short===i||this.long===i}isBoolean(){return!this.required&&!this.optional&&!this.negate}},o=class{constructor(i){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,i.forEach(s=>{s.negate?this.negativeOptions.set(s.attributeName(),s):this.positiveOptions.set(s.attributeName(),s)}),this.negativeOptions.forEach((s,l)=>{this.positiveOptions.has(l)&&this.dualOptions.add(l)})}valueFromOption(i,s){const l=s.attributeName();if(!this.dualOptions.has(l))return!0;const c=this.negativeOptions.get(l).presetArg,m=c!==void 0?c:!1;return s.negate===(m===i)}};function a(i){return i.split("-").reduce((s,l)=>s+l[0].toUpperCase()+l.slice(1))}function r(i){let s,l;const c=/^-[^-]$/,m=/^--[^-]/,p=i.split(/[ |,]+/).concat("guard");if(c.test(p[0])&&(s=p.shift()),m.test(p[0])&&(l=p.shift()),!s&&c.test(p[0])&&(s=p.shift()),!s&&m.test(p[0])&&(s=l,l=p.shift()),p[0].startsWith("-")){const f=p[0],Z=`option creation failed due to '${f}' in option flags '${i}'`;throw/^-[^-][^-]/.test(f)?new Error(`${Z}
4
+ ${c}`)}boxWrap(a,r){if(r<this.minWidthToWrap)return a;const i=a.split(/\r\n|\n/),l=/[\s]*[^\s]+/g,s=[];return i.forEach(c=>{const m=c.match(l);if(m===null){s.push("");return}let p=[m.shift()],R=this.displayWidth(p[0]);m.forEach(Z=>{const V=this.displayWidth(Z);if(R+V<=r){p.push(Z),R+=V;return}s.push(p.join(""));const G=Z.trimStart();p=[G],R=this.displayWidth(G)}),s.push(p.join(""))}),s.join(`
5
+ `)}};function o(a){return a.replace(/\x1b\[\d*(;\d*)*m/g,"")}e.Help=n,e.stripColor=o})),Ea=ke((e=>{var{InvalidArgumentError:t}=Ct(),n=class{constructor(i,l){this.flags=i,this.description=l||"",this.required=i.includes("<"),this.optional=i.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(i),this.mandatory=!1;const s=r(i);this.short=s.shortFlag,this.long=s.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(i,l){return this.defaultValue=i,this.defaultValueDescription=l,this}preset(i){return this.presetArg=i,this}conflicts(i){return this.conflictsWith=this.conflictsWith.concat(i),this}implies(i){let l=i;return typeof i=="string"&&(l={[i]:!0}),this.implied=Object.assign(this.implied||{},l),this}env(i){return this.envVar=i,this}argParser(i){return this.parseArg=i,this}makeOptionMandatory(i=!0){return this.mandatory=!!i,this}hideHelp(i=!0){return this.hidden=!!i,this}_collectValue(i,l){return l===this.defaultValue||!Array.isArray(l)?[i]:(l.push(i),l)}choices(i){return this.argChoices=i.slice(),this.parseArg=(l,s)=>{if(!this.argChoices.includes(l))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(l,s):l},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?a(this.name().replace(/^no-/,"")):a(this.name())}helpGroup(i){return this.helpGroupHeading=i,this}is(i){return this.short===i||this.long===i}isBoolean(){return!this.required&&!this.optional&&!this.negate}},o=class{constructor(i){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,i.forEach(l=>{l.negate?this.negativeOptions.set(l.attributeName(),l):this.positiveOptions.set(l.attributeName(),l)}),this.negativeOptions.forEach((l,s)=>{this.positiveOptions.has(s)&&this.dualOptions.add(s)})}valueFromOption(i,l){const s=l.attributeName();if(!this.dualOptions.has(s))return!0;const c=this.negativeOptions.get(s).presetArg,m=c!==void 0?c:!1;return l.negate===(m===i)}};function a(i){return i.split("-").reduce((l,s)=>l+s[0].toUpperCase()+s.slice(1))}function r(i){let l,s;const c=/^-[^-]$/,m=/^--[^-]/,p=i.split(/[ |,]+/).concat("guard");if(c.test(p[0])&&(l=p.shift()),m.test(p[0])&&(s=p.shift()),!l&&c.test(p[0])&&(l=p.shift()),!l&&m.test(p[0])&&(l=s,s=p.shift()),p[0].startsWith("-")){const R=p[0],Z=`option creation failed due to '${R}' in option flags '${i}'`;throw/^-[^-][^-]/.test(R)?new Error(`${Z}
6
6
  - a short flag is a single dash and a single character
7
7
  - either use a single dash and a single character (for a short flag)
8
- - or use a double dash for a long option (and can have two, like '--ws, --workspace')`):c.test(f)?new Error(`${Z}
9
- - too many short flags`):m.test(f)?new Error(`${Z}
8
+ - or use a double dash for a long option (and can have two, like '--ws, --workspace')`):c.test(R)?new Error(`${Z}
9
+ - too many short flags`):m.test(R)?new Error(`${Z}
10
10
  - too many long flags`):new Error(`${Z}
11
- - unrecognised flag format`)}if(s===void 0&&l===void 0)throw new Error(`option creation failed due to no flags found in '${i}'.`);return{shortFlag:s,longFlag:l}}e.Option=n,e.DualOptions=o})),Yi=ke((e=>{var t=3;function n(a,r){if(Math.abs(a.length-r.length)>t)return Math.max(a.length,r.length);const i=[];for(let s=0;s<=a.length;s++)i[s]=[s];for(let s=0;s<=r.length;s++)i[0][s]=s;for(let s=1;s<=r.length;s++)for(let l=1;l<=a.length;l++){let c=1;a[l-1]===r[s-1]?c=0:c=1,i[l][s]=Math.min(i[l-1][s]+1,i[l][s-1]+1,i[l-1][s-1]+c),l>1&&s>1&&a[l-1]===r[s-2]&&a[l-2]===r[s-1]&&(i[l][s]=Math.min(i[l][s],i[l-2][s-2]+1))}return i[a.length][r.length]}function o(a,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));const i=a.startsWith("--");i&&(a=a.slice(2),r=r.map(m=>m.slice(2)));let s=[],l=t;const c=.4;return r.forEach(m=>{if(m.length<=1)return;const p=n(a,m),f=Math.max(a.length,m.length);(f-p)/f>c&&(p<l?(l=p,s=[m]):p===l&&s.push(m))}),s.sort((m,p)=>m.localeCompare(p)),i&&(s=s.map(m=>`--${m}`)),s.length>1?`
12
- (Did you mean one of ${s.join(", ")}?)`:s.length===1?`
13
- (Did you mean ${s[0]}?)`:""}e.suggestSimilar=o})),Ii=ke((e=>{var t=require("node:events").EventEmitter,n=require("node:child_process"),o=require("node:path"),a=require("node:fs"),r=require("node:process"),{Argument:i,humanReadableArgName:s}=Zn(),{CommanderError:l}=Bt(),{Help:c,stripColor:m}=Ra(),{Option:p,DualOptions:f}=Ea(),{suggestSimilar:Z}=Yi(),N=class Na extends t{constructor(u){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=u||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:d=>r.stdout.write(d),writeErr:d=>r.stderr.write(d),outputError:(d,g)=>g(d),getOutHelpWidth:()=>r.stdout.isTTY?r.stdout.columns:void 0,getErrHelpWidth:()=>r.stderr.isTTY?r.stderr.columns:void 0,getOutHasColors:()=>C()??(r.stdout.isTTY&&r.stdout.hasColors?.()),getErrHasColors:()=>C()??(r.stderr.isTTY&&r.stderr.hasColors?.()),stripColor:d=>m(d)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(u){return this._outputConfiguration=u._outputConfiguration,this._helpOption=u._helpOption,this._helpCommand=u._helpCommand,this._helpConfiguration=u._helpConfiguration,this._exitCallback=u._exitCallback,this._storeOptionsAsProperties=u._storeOptionsAsProperties,this._combineFlagAndOptionalValue=u._combineFlagAndOptionalValue,this._allowExcessArguments=u._allowExcessArguments,this._enablePositionalOptions=u._enablePositionalOptions,this._showHelpAfterError=u._showHelpAfterError,this._showSuggestionAfterError=u._showSuggestionAfterError,this}_getCommandAndAncestors(){const u=[];for(let d=this;d;d=d.parent)u.push(d);return u}command(u,d,g){let b=d,A=g;typeof b=="object"&&b!==null&&(A=b,b=null),A=A||{};const[,E,v]=u.match(/([^ ]+) *(.*)/),U=this.createCommand(E);return b&&(U.description(b),U._executableHandler=!0),A.isDefault&&(this._defaultCommandName=U._name),U._hidden=!!(A.noHelp||A.hidden),U._executableFile=A.executableFile||null,v&&U.arguments(v),this._registerCommand(U),U.parent=this,U.copyInheritedSettings(this),b?this:U}createCommand(u){return new Na(u)}createHelp(){return Object.assign(new c,this.configureHelp())}configureHelp(u){return u===void 0?this._helpConfiguration:(this._helpConfiguration=u,this)}configureOutput(u){return u===void 0?this._outputConfiguration:(this._outputConfiguration={...this._outputConfiguration,...u},this)}showHelpAfterError(u=!0){return typeof u!="string"&&(u=!!u),this._showHelpAfterError=u,this}showSuggestionAfterError(u=!0){return this._showSuggestionAfterError=!!u,this}addCommand(u,d){if(!u._name)throw new Error(`Command passed to .addCommand() must have a name
14
- - specify the name in Command constructor or using .name()`);return d=d||{},d.isDefault&&(this._defaultCommandName=u._name),(d.noHelp||d.hidden)&&(u._hidden=!0),this._registerCommand(u),u.parent=this,u._checkForBrokenPassThrough(),this}createArgument(u,d){return new i(u,d)}argument(u,d,g,b){const A=this.createArgument(u,d);return typeof g=="function"?A.default(b).argParser(g):A.default(g),this.addArgument(A),this}arguments(u){return u.trim().split(/ +/).forEach(d=>{this.argument(d)}),this}addArgument(u){const d=this.registeredArguments.slice(-1)[0];if(d?.variadic)throw new Error(`only the last argument can be variadic '${d.name()}'`);if(u.required&&u.defaultValue!==void 0&&u.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${u.name()}'`);return this.registeredArguments.push(u),this}helpCommand(u,d){if(typeof u=="boolean")return this._addImplicitHelpCommand=u,u&&this._defaultCommandGroup&&this._initCommandGroup(this._getHelpCommand()),this;const[,g,b]=(u??"help [command]").match(/([^ ]+) *(.*)/),A=d??"display help for command",E=this.createCommand(g);return E.helpOption(!1),b&&E.arguments(b),A&&E.description(A),this._addImplicitHelpCommand=!0,this._helpCommand=E,(u||d)&&this._initCommandGroup(E),this}addHelpCommand(u,d){return typeof u!="object"?(this.helpCommand(u,d),this):(this._addImplicitHelpCommand=!0,this._helpCommand=u,this._initCommandGroup(u),this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(u,d){const g=["preSubcommand","preAction","postAction"];if(!g.includes(u))throw new Error(`Unexpected value for event passed to hook : '${u}'.
15
- Expecting one of '${g.join("', '")}'`);return this._lifeCycleHooks[u]?this._lifeCycleHooks[u].push(d):this._lifeCycleHooks[u]=[d],this}exitOverride(u){return u?this._exitCallback=u:this._exitCallback=d=>{if(d.code!=="commander.executeSubCommandAsync")throw d},this}_exit(u,d,g){this._exitCallback&&this._exitCallback(new l(u,d,g)),r.exit(u)}action(u){const d=g=>{const b=this.registeredArguments.length,A=g.slice(0,b);return this._storeOptionsAsProperties?A[b]=this:A[b]=this.opts(),A.push(this),u.apply(this,A)};return this._actionHandler=d,this}createOption(u,d){return new p(u,d)}_callParseArg(u,d,g,b){try{return u.parseArg(d,g)}catch(A){if(A.code==="commander.invalidArgument"){const E=`${b} ${A.message}`;this.error(E,{exitCode:A.exitCode,code:A.code})}throw A}}_registerOption(u){const d=u.short&&this._findOption(u.short)||u.long&&this._findOption(u.long);if(d){const g=u.long&&this._findOption(u.long)?u.long:u.short;throw new Error(`Cannot add option '${u.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${g}'
16
- - already used by option '${d.flags}'`)}this._initOptionGroup(u),this.options.push(u)}_registerCommand(u){const d=b=>[b.name()].concat(b.aliases()),g=d(u).find(b=>this._findCommand(b));if(g){const b=d(this._findCommand(g)).join("|"),A=d(u).join("|");throw new Error(`cannot add command '${A}' as already have command '${b}'`)}this._initCommandGroup(u),this.commands.push(u)}addOption(u){this._registerOption(u);const d=u.name(),g=u.attributeName();if(u.negate){const A=u.long.replace(/^--no-/,"--");this._findOption(A)||this.setOptionValueWithSource(g,u.defaultValue===void 0?!0:u.defaultValue,"default")}else u.defaultValue!==void 0&&this.setOptionValueWithSource(g,u.defaultValue,"default");const b=(A,E,v)=>{A==null&&u.presetArg!==void 0&&(A=u.presetArg);const U=this.getOptionValue(g);A!==null&&u.parseArg?A=this._callParseArg(u,A,U,E):A!==null&&u.variadic&&(A=u._collectValue(A,U)),A==null&&(u.negate?A=!1:u.isBoolean()||u.optional?A=!0:A=""),this.setOptionValueWithSource(g,A,v)};return this.on("option:"+d,A=>{b(A,`error: option '${u.flags}' argument '${A}' is invalid.`,"cli")}),u.envVar&&this.on("optionEnv:"+d,A=>{b(A,`error: option '${u.flags}' value '${A}' from env '${u.envVar}' is invalid.`,"env")}),this}_optionEx(u,d,g,b,A){if(typeof d=="object"&&d instanceof p)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");const E=this.createOption(d,g);if(E.makeOptionMandatory(!!u.mandatory),typeof b=="function")E.default(A).argParser(b);else if(b instanceof RegExp){const v=b;b=(U,T)=>{const W=v.exec(U);return W?W[0]:T},E.default(A).argParser(b)}else E.default(b);return this.addOption(E)}option(u,d,g,b){return this._optionEx({},u,d,g,b)}requiredOption(u,d,g,b){return this._optionEx({mandatory:!0},u,d,g,b)}combineFlagAndOptionalValue(u=!0){return this._combineFlagAndOptionalValue=!!u,this}allowUnknownOption(u=!0){return this._allowUnknownOption=!!u,this}allowExcessArguments(u=!0){return this._allowExcessArguments=!!u,this}enablePositionalOptions(u=!0){return this._enablePositionalOptions=!!u,this}passThroughOptions(u=!0){return this._passThroughOptions=!!u,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(u=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!u,this}getOptionValue(u){return this._storeOptionsAsProperties?this[u]:this._optionValues[u]}setOptionValue(u,d){return this.setOptionValueWithSource(u,d,void 0)}setOptionValueWithSource(u,d,g){return this._storeOptionsAsProperties?this[u]=d:this._optionValues[u]=d,this._optionValueSources[u]=g,this}getOptionValueSource(u){return this._optionValueSources[u]}getOptionValueSourceWithGlobals(u){let d;return this._getCommandAndAncestors().forEach(g=>{g.getOptionValueSource(u)!==void 0&&(d=g.getOptionValueSource(u))}),d}_prepareUserArgs(u,d){if(u!==void 0&&!Array.isArray(u))throw new Error("first parameter to parse must be array or undefined");if(d=d||{},u===void 0&&d.from===void 0){r.versions?.electron&&(d.from="electron");const b=r.execArgv??[];(b.includes("-e")||b.includes("--eval")||b.includes("-p")||b.includes("--print"))&&(d.from="eval")}u===void 0&&(u=r.argv),this.rawArgs=u.slice();let g;switch(d.from){case void 0:case"node":this._scriptPath=u[1],g=u.slice(2);break;case"electron":r.defaultApp?(this._scriptPath=u[1],g=u.slice(2)):g=u.slice(1);break;case"user":g=u.slice(0);break;case"eval":g=u.slice(1);break;default:throw new Error(`unexpected parse option { from: '${d.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",g}parse(u,d){this._prepareForParse();const g=this._prepareUserArgs(u,d);return this._parseCommand([],g),this}async parseAsync(u,d){this._prepareForParse();const g=this._prepareUserArgs(u,d);return await this._parseCommand([],g),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
17
- - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(u,d,g){if(a.existsSync(u))return;const b=`'${u}' does not exist
11
+ - unrecognised flag format`)}if(l===void 0&&s===void 0)throw new Error(`option creation failed due to no flags found in '${i}'.`);return{shortFlag:l,longFlag:s}}e.Option=n,e.DualOptions=o})),Yi=ke((e=>{var t=3;function n(a,r){if(Math.abs(a.length-r.length)>t)return Math.max(a.length,r.length);const i=[];for(let l=0;l<=a.length;l++)i[l]=[l];for(let l=0;l<=r.length;l++)i[0][l]=l;for(let l=1;l<=r.length;l++)for(let s=1;s<=a.length;s++){let c=1;a[s-1]===r[l-1]?c=0:c=1,i[s][l]=Math.min(i[s-1][l]+1,i[s][l-1]+1,i[s-1][l-1]+c),s>1&&l>1&&a[s-1]===r[l-2]&&a[s-2]===r[l-1]&&(i[s][l]=Math.min(i[s][l],i[s-2][l-2]+1))}return i[a.length][r.length]}function o(a,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));const i=a.startsWith("--");i&&(a=a.slice(2),r=r.map(m=>m.slice(2)));let l=[],s=t;const c=.4;return r.forEach(m=>{if(m.length<=1)return;const p=n(a,m),R=Math.max(a.length,m.length);(R-p)/R>c&&(p<s?(s=p,l=[m]):p===s&&l.push(m))}),l.sort((m,p)=>m.localeCompare(p)),i&&(l=l.map(m=>`--${m}`)),l.length>1?`
12
+ (Did you mean one of ${l.join(", ")}?)`:l.length===1?`
13
+ (Did you mean ${l[0]}?)`:""}e.suggestSimilar=o})),Ii=ke((e=>{var t=require("node:events").EventEmitter,n=require("node:child_process"),o=require("node:path"),a=require("node:fs"),r=require("node:process"),{Argument:i,humanReadableArgName:l}=Zn(),{CommanderError:s}=Ct(),{Help:c,stripColor:m}=fa(),{Option:p,DualOptions:R}=Ea(),{suggestSimilar:Z}=Yi(),V=class Va extends t{constructor(u){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=u||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:d=>r.stdout.write(d),writeErr:d=>r.stderr.write(d),outputError:(d,g)=>g(d),getOutHelpWidth:()=>r.stdout.isTTY?r.stdout.columns:void 0,getErrHelpWidth:()=>r.stderr.isTTY?r.stderr.columns:void 0,getOutHasColors:()=>B()??(r.stdout.isTTY&&r.stdout.hasColors?.()),getErrHasColors:()=>B()??(r.stderr.isTTY&&r.stderr.hasColors?.()),stripColor:d=>m(d)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(u){return this._outputConfiguration=u._outputConfiguration,this._helpOption=u._helpOption,this._helpCommand=u._helpCommand,this._helpConfiguration=u._helpConfiguration,this._exitCallback=u._exitCallback,this._storeOptionsAsProperties=u._storeOptionsAsProperties,this._combineFlagAndOptionalValue=u._combineFlagAndOptionalValue,this._allowExcessArguments=u._allowExcessArguments,this._enablePositionalOptions=u._enablePositionalOptions,this._showHelpAfterError=u._showHelpAfterError,this._showSuggestionAfterError=u._showSuggestionAfterError,this}_getCommandAndAncestors(){const u=[];for(let d=this;d;d=d.parent)u.push(d);return u}command(u,d,g){let h=d,A=g;typeof h=="object"&&h!==null&&(A=h,h=null),A=A||{};const[,E,v]=u.match(/([^ ]+) *(.*)/),w=this.createCommand(E);return h&&(w.description(h),w._executableHandler=!0),A.isDefault&&(this._defaultCommandName=w._name),w._hidden=!!(A.noHelp||A.hidden),w._executableFile=A.executableFile||null,v&&w.arguments(v),this._registerCommand(w),w.parent=this,w.copyInheritedSettings(this),h?this:w}createCommand(u){return new Va(u)}createHelp(){return Object.assign(new c,this.configureHelp())}configureHelp(u){return u===void 0?this._helpConfiguration:(this._helpConfiguration=u,this)}configureOutput(u){return u===void 0?this._outputConfiguration:(this._outputConfiguration={...this._outputConfiguration,...u},this)}showHelpAfterError(u=!0){return typeof u!="string"&&(u=!!u),this._showHelpAfterError=u,this}showSuggestionAfterError(u=!0){return this._showSuggestionAfterError=!!u,this}addCommand(u,d){if(!u._name)throw new Error(`Command passed to .addCommand() must have a name
14
+ - specify the name in Command constructor or using .name()`);return d=d||{},d.isDefault&&(this._defaultCommandName=u._name),(d.noHelp||d.hidden)&&(u._hidden=!0),this._registerCommand(u),u.parent=this,u._checkForBrokenPassThrough(),this}createArgument(u,d){return new i(u,d)}argument(u,d,g,h){const A=this.createArgument(u,d);return typeof g=="function"?A.default(h).argParser(g):A.default(g),this.addArgument(A),this}arguments(u){return u.trim().split(/ +/).forEach(d=>{this.argument(d)}),this}addArgument(u){const d=this.registeredArguments.slice(-1)[0];if(d?.variadic)throw new Error(`only the last argument can be variadic '${d.name()}'`);if(u.required&&u.defaultValue!==void 0&&u.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${u.name()}'`);return this.registeredArguments.push(u),this}helpCommand(u,d){if(typeof u=="boolean")return this._addImplicitHelpCommand=u,u&&this._defaultCommandGroup&&this._initCommandGroup(this._getHelpCommand()),this;const[,g,h]=(u??"help [command]").match(/([^ ]+) *(.*)/),A=d??"display help for command",E=this.createCommand(g);return E.helpOption(!1),h&&E.arguments(h),A&&E.description(A),this._addImplicitHelpCommand=!0,this._helpCommand=E,(u||d)&&this._initCommandGroup(E),this}addHelpCommand(u,d){return typeof u!="object"?(this.helpCommand(u,d),this):(this._addImplicitHelpCommand=!0,this._helpCommand=u,this._initCommandGroup(u),this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(u,d){const g=["preSubcommand","preAction","postAction"];if(!g.includes(u))throw new Error(`Unexpected value for event passed to hook : '${u}'.
15
+ Expecting one of '${g.join("', '")}'`);return this._lifeCycleHooks[u]?this._lifeCycleHooks[u].push(d):this._lifeCycleHooks[u]=[d],this}exitOverride(u){return u?this._exitCallback=u:this._exitCallback=d=>{if(d.code!=="commander.executeSubCommandAsync")throw d},this}_exit(u,d,g){this._exitCallback&&this._exitCallback(new s(u,d,g)),r.exit(u)}action(u){const d=g=>{const h=this.registeredArguments.length,A=g.slice(0,h);return this._storeOptionsAsProperties?A[h]=this:A[h]=this.opts(),A.push(this),u.apply(this,A)};return this._actionHandler=d,this}createOption(u,d){return new p(u,d)}_callParseArg(u,d,g,h){try{return u.parseArg(d,g)}catch(A){if(A.code==="commander.invalidArgument"){const E=`${h} ${A.message}`;this.error(E,{exitCode:A.exitCode,code:A.code})}throw A}}_registerOption(u){const d=u.short&&this._findOption(u.short)||u.long&&this._findOption(u.long);if(d){const g=u.long&&this._findOption(u.long)?u.long:u.short;throw new Error(`Cannot add option '${u.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${g}'
16
+ - already used by option '${d.flags}'`)}this._initOptionGroup(u),this.options.push(u)}_registerCommand(u){const d=h=>[h.name()].concat(h.aliases()),g=d(u).find(h=>this._findCommand(h));if(g){const h=d(this._findCommand(g)).join("|"),A=d(u).join("|");throw new Error(`cannot add command '${A}' as already have command '${h}'`)}this._initCommandGroup(u),this.commands.push(u)}addOption(u){this._registerOption(u);const d=u.name(),g=u.attributeName();if(u.negate){const A=u.long.replace(/^--no-/,"--");this._findOption(A)||this.setOptionValueWithSource(g,u.defaultValue===void 0?!0:u.defaultValue,"default")}else u.defaultValue!==void 0&&this.setOptionValueWithSource(g,u.defaultValue,"default");const h=(A,E,v)=>{A==null&&u.presetArg!==void 0&&(A=u.presetArg);const w=this.getOptionValue(g);A!==null&&u.parseArg?A=this._callParseArg(u,A,w,E):A!==null&&u.variadic&&(A=u._collectValue(A,w)),A==null&&(u.negate?A=!1:u.isBoolean()||u.optional?A=!0:A=""),this.setOptionValueWithSource(g,A,v)};return this.on("option:"+d,A=>{h(A,`error: option '${u.flags}' argument '${A}' is invalid.`,"cli")}),u.envVar&&this.on("optionEnv:"+d,A=>{h(A,`error: option '${u.flags}' value '${A}' from env '${u.envVar}' is invalid.`,"env")}),this}_optionEx(u,d,g,h,A){if(typeof d=="object"&&d instanceof p)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");const E=this.createOption(d,g);if(E.makeOptionMandatory(!!u.mandatory),typeof h=="function")E.default(A).argParser(h);else if(h instanceof RegExp){const v=h;h=(w,H)=>{const W=v.exec(w);return W?W[0]:H},E.default(A).argParser(h)}else E.default(h);return this.addOption(E)}option(u,d,g,h){return this._optionEx({},u,d,g,h)}requiredOption(u,d,g,h){return this._optionEx({mandatory:!0},u,d,g,h)}combineFlagAndOptionalValue(u=!0){return this._combineFlagAndOptionalValue=!!u,this}allowUnknownOption(u=!0){return this._allowUnknownOption=!!u,this}allowExcessArguments(u=!0){return this._allowExcessArguments=!!u,this}enablePositionalOptions(u=!0){return this._enablePositionalOptions=!!u,this}passThroughOptions(u=!0){return this._passThroughOptions=!!u,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(u=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!u,this}getOptionValue(u){return this._storeOptionsAsProperties?this[u]:this._optionValues[u]}setOptionValue(u,d){return this.setOptionValueWithSource(u,d,void 0)}setOptionValueWithSource(u,d,g){return this._storeOptionsAsProperties?this[u]=d:this._optionValues[u]=d,this._optionValueSources[u]=g,this}getOptionValueSource(u){return this._optionValueSources[u]}getOptionValueSourceWithGlobals(u){let d;return this._getCommandAndAncestors().forEach(g=>{g.getOptionValueSource(u)!==void 0&&(d=g.getOptionValueSource(u))}),d}_prepareUserArgs(u,d){if(u!==void 0&&!Array.isArray(u))throw new Error("first parameter to parse must be array or undefined");if(d=d||{},u===void 0&&d.from===void 0){r.versions?.electron&&(d.from="electron");const h=r.execArgv??[];(h.includes("-e")||h.includes("--eval")||h.includes("-p")||h.includes("--print"))&&(d.from="eval")}u===void 0&&(u=r.argv),this.rawArgs=u.slice();let g;switch(d.from){case void 0:case"node":this._scriptPath=u[1],g=u.slice(2);break;case"electron":r.defaultApp?(this._scriptPath=u[1],g=u.slice(2)):g=u.slice(1);break;case"user":g=u.slice(0);break;case"eval":g=u.slice(1);break;default:throw new Error(`unexpected parse option { from: '${d.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",g}parse(u,d){this._prepareForParse();const g=this._prepareUserArgs(u,d);return this._parseCommand([],g),this}async parseAsync(u,d){this._prepareForParse();const g=this._prepareUserArgs(u,d);return await this._parseCommand([],g),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
17
+ - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(u,d,g){if(a.existsSync(u))return;const h=`'${u}' does not exist
18
18
  - if '${g}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
19
19
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
20
- - ${d?`searched for local subcommand relative to directory '${d}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory"}`;throw new Error(b)}_executeSubCommand(u,d){d=d.slice();let g=!1;const b=[".js",".ts",".tsx",".mjs",".cjs"];function A(W,K){const O=o.resolve(W,K);if(a.existsSync(O))return O;if(b.includes(o.extname(K)))return;const eo=b.find(fi=>a.existsSync(`${O}${fi}`));if(eo)return`${O}${eo}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let E=u._executableFile||`${this._name}-${u._name}`,v=this._executableDir||"";if(this._scriptPath){let W;try{W=a.realpathSync(this._scriptPath)}catch{W=this._scriptPath}v=o.resolve(o.dirname(W),v)}if(v){let W=A(v,E);if(!W&&!u._executableFile&&this._scriptPath){const K=o.basename(this._scriptPath,o.extname(this._scriptPath));K!==this._name&&(W=A(v,`${K}-${u._name}`))}E=W||E}g=b.includes(o.extname(E));let U;r.platform!=="win32"?g?(d.unshift(E),d=V(r.execArgv).concat(d),U=n.spawn(r.argv[0],d,{stdio:"inherit"})):U=n.spawn(E,d,{stdio:"inherit"}):(this._checkForMissingExecutable(E,v,u._name),d.unshift(E),d=V(r.execArgv).concat(d),U=n.spawn(r.execPath,d,{stdio:"inherit"})),U.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(W=>{r.on(W,()=>{U.killed===!1&&U.exitCode===null&&U.kill(W)})});const T=this._exitCallback;U.on("close",W=>{W=W??1,T?T(new l(W,"commander.executeSubCommandAsync","(close)")):r.exit(W)}),U.on("error",W=>{if(W.code==="ENOENT")this._checkForMissingExecutable(E,v,u._name);else if(W.code==="EACCES")throw new Error(`'${E}' not executable`);if(!T)r.exit(1);else{const K=new l(1,"commander.executeSubCommandAsync","(error)");K.nestedError=W,T(K)}}),this.runningCommand=U}_dispatchSubcommand(u,d,g){const b=this._findCommand(u);b||this.help({error:!0}),b._prepareForParse();let A;return A=this._chainOrCallSubCommandHook(A,b,"preSubcommand"),A=this._chainOrCall(A,()=>{if(b._executableHandler)this._executeSubCommand(b,d.concat(g));else return b._parseCommand(d,g)}),A}_dispatchHelpCommand(u){u||this.help();const d=this._findCommand(u);return d&&!d._executableHandler&&d.help(),this._dispatchSubcommand(u,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((u,d)=>{u.required&&this.args[d]==null&&this.missingArgument(u.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){const u=(g,b,A)=>{let E=b;if(b!==null&&g.parseArg){const v=`error: command-argument value '${b}' is invalid for argument '${g.name()}'.`;E=this._callParseArg(g,b,A,v)}return E};this._checkNumberOfArguments();const d=[];this.registeredArguments.forEach((g,b)=>{let A=g.defaultValue;g.variadic?b<this.args.length?(A=this.args.slice(b),g.parseArg&&(A=A.reduce((E,v)=>u(g,v,E),g.defaultValue))):A===void 0&&(A=[]):b<this.args.length&&(A=this.args[b],g.parseArg&&(A=u(g,A,g.defaultValue))),d[b]=A}),this.processedArgs=d}_chainOrCall(u,d){return u?.then&&typeof u.then=="function"?u.then(()=>d()):d()}_chainOrCallHooks(u,d){let g=u;const b=[];return this._getCommandAndAncestors().reverse().filter(A=>A._lifeCycleHooks[d]!==void 0).forEach(A=>{A._lifeCycleHooks[d].forEach(E=>{b.push({hookedCommand:A,callback:E})})}),d==="postAction"&&b.reverse(),b.forEach(A=>{g=this._chainOrCall(g,()=>A.callback(A.hookedCommand,this))}),g}_chainOrCallSubCommandHook(u,d,g){let b=u;return this._lifeCycleHooks[g]!==void 0&&this._lifeCycleHooks[g].forEach(A=>{b=this._chainOrCall(b,()=>A(this,d))}),b}_parseCommand(u,d){const g=this.parseOptions(d);if(this._parseOptionsEnv(),this._parseOptionsImplied(),u=u.concat(g.operands),d=g.unknown,this.args=u.concat(d),u&&this._findCommand(u[0]))return this._dispatchSubcommand(u[0],u.slice(1),d);if(this._getHelpCommand()&&u[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(u[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(d),this._dispatchSubcommand(this._defaultCommandName,u,d);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(g.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();const b=()=>{g.unknown.length>0&&this.unknownOption(g.unknown[0])},A=`command:${this.name()}`;if(this._actionHandler){b(),this._processArguments();let E;return E=this._chainOrCallHooks(E,"preAction"),E=this._chainOrCall(E,()=>this._actionHandler(this.processedArgs)),this.parent&&(E=this._chainOrCall(E,()=>{this.parent.emit(A,u,d)})),E=this._chainOrCallHooks(E,"postAction"),E}if(this.parent?.listenerCount(A))b(),this._processArguments(),this.parent.emit(A,u,d);else if(u.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",u,d);this.listenerCount("command:*")?this.emit("command:*",u,d):this.commands.length?this.unknownCommand():(b(),this._processArguments())}else this.commands.length?(b(),this.help({error:!0})):(b(),this._processArguments())}_findCommand(u){if(u)return this.commands.find(d=>d._name===u||d._aliases.includes(u))}_findOption(u){return this.options.find(d=>d.is(u))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(u=>{u.options.forEach(d=>{d.mandatory&&u.getOptionValue(d.attributeName())===void 0&&u.missingMandatoryOptionValue(d)})})}_checkForConflictingLocalOptions(){const u=this.options.filter(d=>{const g=d.attributeName();return this.getOptionValue(g)===void 0?!1:this.getOptionValueSource(g)!=="default"});u.filter(d=>d.conflictsWith.length>0).forEach(d=>{const g=u.find(b=>d.conflictsWith.includes(b.attributeName()));g&&this._conflictingOption(d,g)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(u=>{u._checkForConflictingLocalOptions()})}parseOptions(u){const d=[],g=[];let b=d;function A(W){return W.length>1&&W[0]==="-"}const E=W=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(W)?!this._getCommandAndAncestors().some(K=>K.options.map(O=>O.short).some(O=>/^-\d$/.test(O))):!1;let v=null,U=null,T=0;for(;T<u.length||U;){const W=U??u[T++];if(U=null,W==="--"){b===g&&b.push(W),b.push(...u.slice(T));break}if(v&&(!A(W)||E(W))){this.emit(`option:${v.name()}`,W);continue}if(v=null,A(W)){const K=this._findOption(W);if(K){if(K.required){const O=u[T++];O===void 0&&this.optionMissingArgument(K),this.emit(`option:${K.name()}`,O)}else if(K.optional){let O=null;T<u.length&&(!A(u[T])||E(u[T]))&&(O=u[T++]),this.emit(`option:${K.name()}`,O)}else this.emit(`option:${K.name()}`);v=K.variadic?K:null;continue}}if(W.length>2&&W[0]==="-"&&W[1]!=="-"){const K=this._findOption(`-${W[1]}`);if(K){K.required||K.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${K.name()}`,W.slice(2)):(this.emit(`option:${K.name()}`),U=`-${W.slice(2)}`);continue}}if(/^--[^=]+=/.test(W)){const K=W.indexOf("="),O=this._findOption(W.slice(0,K));if(O&&(O.required||O.optional)){this.emit(`option:${O.name()}`,W.slice(K+1));continue}}if(b===d&&A(W)&&!(this.commands.length===0&&E(W))&&(b=g),(this._enablePositionalOptions||this._passThroughOptions)&&d.length===0&&g.length===0){if(this._findCommand(W)){d.push(W),g.push(...u.slice(T));break}else if(this._getHelpCommand()&&W===this._getHelpCommand().name()){d.push(W,...u.slice(T));break}else if(this._defaultCommandName){g.push(W,...u.slice(T));break}}if(this._passThroughOptions){b.push(W,...u.slice(T));break}b.push(W)}return{operands:d,unknown:g}}opts(){if(this._storeOptionsAsProperties){const u={},d=this.options.length;for(let g=0;g<d;g++){const b=this.options[g].attributeName();u[b]=b===this._versionOptionName?this._version:this[b]}return u}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((u,d)=>Object.assign(u,d.opts()),{})}error(u,d){this._outputConfiguration.outputError(`${u}
20
+ - ${d?`searched for local subcommand relative to directory '${d}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory"}`;throw new Error(h)}_executeSubCommand(u,d){d=d.slice();let g=!1;const h=[".js",".ts",".tsx",".mjs",".cjs"];function A(W,x){const O=o.resolve(W,x);if(a.existsSync(O))return O;if(h.includes(o.extname(x)))return;const eo=h.find(Ri=>a.existsSync(`${O}${Ri}`));if(eo)return`${O}${eo}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let E=u._executableFile||`${this._name}-${u._name}`,v=this._executableDir||"";if(this._scriptPath){let W;try{W=a.realpathSync(this._scriptPath)}catch{W=this._scriptPath}v=o.resolve(o.dirname(W),v)}if(v){let W=A(v,E);if(!W&&!u._executableFile&&this._scriptPath){const x=o.basename(this._scriptPath,o.extname(this._scriptPath));x!==this._name&&(W=A(v,`${x}-${u._name}`))}E=W||E}g=h.includes(o.extname(E));let w;r.platform!=="win32"?g?(d.unshift(E),d=G(r.execArgv).concat(d),w=n.spawn(r.argv[0],d,{stdio:"inherit"})):w=n.spawn(E,d,{stdio:"inherit"}):(this._checkForMissingExecutable(E,v,u._name),d.unshift(E),d=G(r.execArgv).concat(d),w=n.spawn(r.execPath,d,{stdio:"inherit"})),w.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(W=>{r.on(W,()=>{w.killed===!1&&w.exitCode===null&&w.kill(W)})});const H=this._exitCallback;w.on("close",W=>{W=W??1,H?H(new s(W,"commander.executeSubCommandAsync","(close)")):r.exit(W)}),w.on("error",W=>{if(W.code==="ENOENT")this._checkForMissingExecutable(E,v,u._name);else if(W.code==="EACCES")throw new Error(`'${E}' not executable`);if(!H)r.exit(1);else{const x=new s(1,"commander.executeSubCommandAsync","(error)");x.nestedError=W,H(x)}}),this.runningCommand=w}_dispatchSubcommand(u,d,g){const h=this._findCommand(u);h||this.help({error:!0}),h._prepareForParse();let A;return A=this._chainOrCallSubCommandHook(A,h,"preSubcommand"),A=this._chainOrCall(A,()=>{if(h._executableHandler)this._executeSubCommand(h,d.concat(g));else return h._parseCommand(d,g)}),A}_dispatchHelpCommand(u){u||this.help();const d=this._findCommand(u);return d&&!d._executableHandler&&d.help(),this._dispatchSubcommand(u,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((u,d)=>{u.required&&this.args[d]==null&&this.missingArgument(u.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){const u=(g,h,A)=>{let E=h;if(h!==null&&g.parseArg){const v=`error: command-argument value '${h}' is invalid for argument '${g.name()}'.`;E=this._callParseArg(g,h,A,v)}return E};this._checkNumberOfArguments();const d=[];this.registeredArguments.forEach((g,h)=>{let A=g.defaultValue;g.variadic?h<this.args.length?(A=this.args.slice(h),g.parseArg&&(A=A.reduce((E,v)=>u(g,v,E),g.defaultValue))):A===void 0&&(A=[]):h<this.args.length&&(A=this.args[h],g.parseArg&&(A=u(g,A,g.defaultValue))),d[h]=A}),this.processedArgs=d}_chainOrCall(u,d){return u?.then&&typeof u.then=="function"?u.then(()=>d()):d()}_chainOrCallHooks(u,d){let g=u;const h=[];return this._getCommandAndAncestors().reverse().filter(A=>A._lifeCycleHooks[d]!==void 0).forEach(A=>{A._lifeCycleHooks[d].forEach(E=>{h.push({hookedCommand:A,callback:E})})}),d==="postAction"&&h.reverse(),h.forEach(A=>{g=this._chainOrCall(g,()=>A.callback(A.hookedCommand,this))}),g}_chainOrCallSubCommandHook(u,d,g){let h=u;return this._lifeCycleHooks[g]!==void 0&&this._lifeCycleHooks[g].forEach(A=>{h=this._chainOrCall(h,()=>A(this,d))}),h}_parseCommand(u,d){const g=this.parseOptions(d);if(this._parseOptionsEnv(),this._parseOptionsImplied(),u=u.concat(g.operands),d=g.unknown,this.args=u.concat(d),u&&this._findCommand(u[0]))return this._dispatchSubcommand(u[0],u.slice(1),d);if(this._getHelpCommand()&&u[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(u[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(d),this._dispatchSubcommand(this._defaultCommandName,u,d);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(g.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();const h=()=>{g.unknown.length>0&&this.unknownOption(g.unknown[0])},A=`command:${this.name()}`;if(this._actionHandler){h(),this._processArguments();let E;return E=this._chainOrCallHooks(E,"preAction"),E=this._chainOrCall(E,()=>this._actionHandler(this.processedArgs)),this.parent&&(E=this._chainOrCall(E,()=>{this.parent.emit(A,u,d)})),E=this._chainOrCallHooks(E,"postAction"),E}if(this.parent?.listenerCount(A))h(),this._processArguments(),this.parent.emit(A,u,d);else if(u.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",u,d);this.listenerCount("command:*")?this.emit("command:*",u,d):this.commands.length?this.unknownCommand():(h(),this._processArguments())}else this.commands.length?(h(),this.help({error:!0})):(h(),this._processArguments())}_findCommand(u){if(u)return this.commands.find(d=>d._name===u||d._aliases.includes(u))}_findOption(u){return this.options.find(d=>d.is(u))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(u=>{u.options.forEach(d=>{d.mandatory&&u.getOptionValue(d.attributeName())===void 0&&u.missingMandatoryOptionValue(d)})})}_checkForConflictingLocalOptions(){const u=this.options.filter(d=>{const g=d.attributeName();return this.getOptionValue(g)===void 0?!1:this.getOptionValueSource(g)!=="default"});u.filter(d=>d.conflictsWith.length>0).forEach(d=>{const g=u.find(h=>d.conflictsWith.includes(h.attributeName()));g&&this._conflictingOption(d,g)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(u=>{u._checkForConflictingLocalOptions()})}parseOptions(u){const d=[],g=[];let h=d;function A(W){return W.length>1&&W[0]==="-"}const E=W=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(W)?!this._getCommandAndAncestors().some(x=>x.options.map(O=>O.short).some(O=>/^-\d$/.test(O))):!1;let v=null,w=null,H=0;for(;H<u.length||w;){const W=w??u[H++];if(w=null,W==="--"){h===g&&h.push(W),h.push(...u.slice(H));break}if(v&&(!A(W)||E(W))){this.emit(`option:${v.name()}`,W);continue}if(v=null,A(W)){const x=this._findOption(W);if(x){if(x.required){const O=u[H++];O===void 0&&this.optionMissingArgument(x),this.emit(`option:${x.name()}`,O)}else if(x.optional){let O=null;H<u.length&&(!A(u[H])||E(u[H]))&&(O=u[H++]),this.emit(`option:${x.name()}`,O)}else this.emit(`option:${x.name()}`);v=x.variadic?x:null;continue}}if(W.length>2&&W[0]==="-"&&W[1]!=="-"){const x=this._findOption(`-${W[1]}`);if(x){x.required||x.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${x.name()}`,W.slice(2)):(this.emit(`option:${x.name()}`),w=`-${W.slice(2)}`);continue}}if(/^--[^=]+=/.test(W)){const x=W.indexOf("="),O=this._findOption(W.slice(0,x));if(O&&(O.required||O.optional)){this.emit(`option:${O.name()}`,W.slice(x+1));continue}}if(h===d&&A(W)&&!(this.commands.length===0&&E(W))&&(h=g),(this._enablePositionalOptions||this._passThroughOptions)&&d.length===0&&g.length===0){if(this._findCommand(W)){d.push(W),g.push(...u.slice(H));break}else if(this._getHelpCommand()&&W===this._getHelpCommand().name()){d.push(W,...u.slice(H));break}else if(this._defaultCommandName){g.push(W,...u.slice(H));break}}if(this._passThroughOptions){h.push(W,...u.slice(H));break}h.push(W)}return{operands:d,unknown:g}}opts(){if(this._storeOptionsAsProperties){const u={},d=this.options.length;for(let g=0;g<d;g++){const h=this.options[g].attributeName();u[h]=h===this._versionOptionName?this._version:this[h]}return u}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((u,d)=>Object.assign(u,d.opts()),{})}error(u,d){this._outputConfiguration.outputError(`${u}
21
21
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
22
22
  `):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
23
- `),this.outputHelp({error:!0}));const g=d||{},b=g.exitCode||1,A=g.code||"commander.error";this._exit(b,A,u)}_parseOptionsEnv(){this.options.forEach(u=>{if(u.envVar&&u.envVar in r.env){const d=u.attributeName();(this.getOptionValue(d)===void 0||["default","config","env"].includes(this.getOptionValueSource(d)))&&(u.required||u.optional?this.emit(`optionEnv:${u.name()}`,r.env[u.envVar]):this.emit(`optionEnv:${u.name()}`))}})}_parseOptionsImplied(){const u=new f(this.options),d=g=>this.getOptionValue(g)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(g));this.options.filter(g=>g.implied!==void 0&&d(g.attributeName())&&u.valueFromOption(this.getOptionValue(g.attributeName()),g)).forEach(g=>{Object.keys(g.implied).filter(b=>!d(b)).forEach(b=>{this.setOptionValueWithSource(b,g.implied[b],"implied")})})}missingArgument(u){const d=`error: missing required argument '${u}'`;this.error(d,{code:"commander.missingArgument"})}optionMissingArgument(u){const d=`error: option '${u.flags}' argument missing`;this.error(d,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(u){const d=`error: required option '${u.flags}' not specified`;this.error(d,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(u,d){const g=E=>{const v=E.attributeName(),U=this.getOptionValue(v),T=this.options.find(K=>K.negate&&v===K.attributeName()),W=this.options.find(K=>!K.negate&&v===K.attributeName());return T&&(T.presetArg===void 0&&U===!1||T.presetArg!==void 0&&U===T.presetArg)?T:W||E},b=E=>{const v=g(E),U=v.attributeName();return this.getOptionValueSource(U)==="env"?`environment variable '${v.envVar}'`:`option '${v.flags}'`},A=`error: ${b(u)} cannot be used with ${b(d)}`;this.error(A,{code:"commander.conflictingOption"})}unknownOption(u){if(this._allowUnknownOption)return;let d="";if(u.startsWith("--")&&this._showSuggestionAfterError){let b=[],A=this;do{const E=A.createHelp().visibleOptions(A).filter(v=>v.long).map(v=>v.long);b=b.concat(E),A=A.parent}while(A&&!A._enablePositionalOptions);d=Z(u,b)}const g=`error: unknown option '${u}'${d}`;this.error(g,{code:"commander.unknownOption"})}_excessArguments(u){if(this._allowExcessArguments)return;const d=this.registeredArguments.length,g=d===1?"":"s",b=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${d} argument${g} but got ${u.length}.`;this.error(b,{code:"commander.excessArguments"})}unknownCommand(){const u=this.args[0];let d="";if(this._showSuggestionAfterError){const b=[];this.createHelp().visibleCommands(this).forEach(A=>{b.push(A.name()),A.alias()&&b.push(A.alias())}),d=Z(u,b)}const g=`error: unknown command '${u}'${d}`;this.error(g,{code:"commander.unknownCommand"})}version(u,d,g){if(u===void 0)return this._version;this._version=u,d=d||"-V, --version",g=g||"output the version number";const b=this.createOption(d,g);return this._versionOptionName=b.attributeName(),this._registerOption(b),this.on("option:"+b.name(),()=>{this._outputConfiguration.writeOut(`${u}
24
- `),this._exit(0,"commander.version",u)}),this}description(u,d){return u===void 0&&d===void 0?this._description:(this._description=u,d&&(this._argsDescription=d),this)}summary(u){return u===void 0?this._summary:(this._summary=u,this)}alias(u){if(u===void 0)return this._aliases[0];let d=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(d=this.commands[this.commands.length-1]),u===d._name)throw new Error("Command alias can't be the same as its name");const g=this.parent?._findCommand(u);if(g){const b=[g.name()].concat(g.aliases()).join("|");throw new Error(`cannot add alias '${u}' to command '${this.name()}' as already have command '${b}'`)}return d._aliases.push(u),this}aliases(u){return u===void 0?this._aliases:(u.forEach(d=>this.alias(d)),this)}usage(u){if(u===void 0){if(this._usage)return this._usage;const d=this.registeredArguments.map(g=>s(g));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?d:[]).join(" ")}return this._usage=u,this}name(u){return u===void 0?this._name:(this._name=u,this)}helpGroup(u){return u===void 0?this._helpGroupHeading??"":(this._helpGroupHeading=u,this)}commandsGroup(u){return u===void 0?this._defaultCommandGroup??"":(this._defaultCommandGroup=u,this)}optionsGroup(u){return u===void 0?this._defaultOptionGroup??"":(this._defaultOptionGroup=u,this)}_initOptionGroup(u){this._defaultOptionGroup&&!u.helpGroupHeading&&u.helpGroup(this._defaultOptionGroup)}_initCommandGroup(u){this._defaultCommandGroup&&!u.helpGroup()&&u.helpGroup(this._defaultCommandGroup)}nameFromFilename(u){return this._name=o.basename(u,o.extname(u)),this}executableDir(u){return u===void 0?this._executableDir:(this._executableDir=u,this)}helpInformation(u){const d=this.createHelp(),g=this._getOutputContext(u);d.prepareContext({error:g.error,helpWidth:g.helpWidth,outputHasColors:g.hasColors});const b=d.formatHelp(this,d);return g.hasColors?b:this._outputConfiguration.stripColor(b)}_getOutputContext(u){u=u||{};const d=!!u.error;let g,b,A;return d?(g=v=>this._outputConfiguration.writeErr(v),b=this._outputConfiguration.getErrHasColors(),A=this._outputConfiguration.getErrHelpWidth()):(g=v=>this._outputConfiguration.writeOut(v),b=this._outputConfiguration.getOutHasColors(),A=this._outputConfiguration.getOutHelpWidth()),{error:d,write:v=>(b||(v=this._outputConfiguration.stripColor(v)),g(v)),hasColors:b,helpWidth:A}}outputHelp(u){let d;typeof u=="function"&&(d=u,u=void 0);const g=this._getOutputContext(u),b={error:g.error,write:g.write,command:this};this._getCommandAndAncestors().reverse().forEach(E=>E.emit("beforeAllHelp",b)),this.emit("beforeHelp",b);let A=this.helpInformation({error:g.error});if(d&&(A=d(A),typeof A!="string"&&!Buffer.isBuffer(A)))throw new Error("outputHelp callback must return a string or a Buffer");g.write(A),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",b),this._getCommandAndAncestors().forEach(E=>E.emit("afterAllHelp",b))}helpOption(u,d){return typeof u=="boolean"?(u?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(u??"-h, --help",d??"display help for command"),(u||d)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(u){return this._helpOption=u,this._initOptionGroup(u),this}help(u){this.outputHelp(u);let d=Number(r.exitCode??0);d===0&&u&&typeof u!="function"&&u.error&&(d=1),this._exit(d,"commander.help","(outputHelp)")}addHelpText(u,d){const g=["beforeAll","before","after","afterAll"];if(!g.includes(u))throw new Error(`Unexpected value for position to addHelpText.
25
- Expecting one of '${g.join("', '")}'`);const b=`${u}Help`;return this.on(b,A=>{let E;typeof d=="function"?E=d({error:A.error,command:A.command}):E=d,E&&A.write(`${E}
26
- `)}),this}_outputHelpIfRequested(u){const d=this._getHelpOption();d&&u.find(g=>d.is(g))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function V(J){return J.map(u=>{if(!u.startsWith("--inspect"))return u;let d,g="127.0.0.1",b="9229",A;return(A=u.match(/^(--inspect(-brk)?)$/))!==null?d=A[1]:(A=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(d=A[1],/^\d+$/.test(A[3])?b=A[3]:g=A[3]):(A=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(d=A[1],g=A[3],b=A[4]),d&&b!=="0"?`${d}=${g}:${parseInt(b)+1}`:u})}function C(){if(r.env.NO_COLOR||r.env.FORCE_COLOR==="0"||r.env.FORCE_COLOR==="false")return!1;if(r.env.FORCE_COLOR||r.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=N,e.useColor=C})),yi=ke((e=>{var{Argument:t}=Zn(),{Command:n}=Ii(),{CommanderError:o,InvalidArgumentError:a}=Bt(),{Help:r}=Ra(),{Option:i}=Ea();e.program=new n,e.createCommand=s=>new n(s),e.createOption=(s,l)=>new i(s,l),e.createArgument=(s,l)=>new t(s,l),e.Command=n,e.Option=i,e.Argument=t,e.Help=r,e.CommanderError=o,e.InvalidArgumentError=a,e.InvalidOptionArgumentError=a})),Ci=ut(yi(),1),{program:kb,createCommand:Kb,createArgument:xb,createOption:zb,CommanderError:Bi,InvalidArgumentError:Lb,InvalidOptionArgumentError:jb,Command:Fi,Argument:Tb,Option:Ye,Help:Hb}=Ci.default;function I(e){return`${JSON.stringify(e,null,2)}
27
- `}var R;(function(e){e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"})(R||(R={}));function fn(e,t){return e!==null&&typeof e=="object"&&"$typeName"in e&&typeof e.$typeName=="string"?t===void 0?!0:t.typeName===e.$typeName:!1}var h;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(h||(h={}));function wi(){const e=this.buf;let t=this.pos,n=0,o=0;for(let r=0;r<28;r+=7){const i=e[t++];if(n|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}const a=e[t++];if(n|=(a&15)<<28,o=(a&112)>>4,(a&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}for(let r=3;r<=31;r+=7){const i=e[t++];if(o|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}throw new Error("invalid varint")}var Et=4294967296;function no(e){const t=e[0]==="-";t&&(e=e.slice(1));const n=1e6;let o=0,a=0;function r(i,s){const l=Number(e.slice(i,s));a*=n,o=o*n+l,o>=Et&&(a=a+(o/Et|0),o=o%Et)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),t?Va(o,a):Rn(o,a)}function Ui(e,t){let n=Rn(e,t);const o=n.hi&2147483648;o&&(n=Va(n.lo,n.hi));const a=Ga(n.lo,n.hi);return o?"-"+a:a}function Ga(e,t){if({lo:e,hi:t}=Ji(e,t),t<=2097151)return String(Et*t+e);const n=e&16777215,o=(e>>>24|t<<8)&16777215,a=t>>16&65535;let r=n+o*6777216+a*6710656,i=o+a*8147497,s=a*2;const l=1e7;return r>=l&&(i+=Math.floor(r/l),r%=l),i>=l&&(s+=Math.floor(i/l),i%=l),s.toString()+oo(i)+oo(r)}function Ji(e,t){return{lo:e>>>0,hi:t>>>0}}function Rn(e,t){return{lo:e|0,hi:t|0}}function Va(e,t){return t=~t,e?e=~e+1:t+=1,Rn(e,t)}var oo=e=>{const t=String(e);return"0000000".slice(t.length)+t};function ki(e,t){if(e>>>0<128){t.push(e);return}if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function Ki(){let e=this.buf[this.pos++];if((e&128)===0)return this.assertBounds(),e;let t=e&127;if(e=this.buf[this.pos++],t|=(e&127)<<7,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,(e&128)===0)return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;(e&128)!==0&&n<10;n++)e=this.buf[this.pos++];if((e&128)!==0)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var z=xi();function xi(){const e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(globalThis.Deno||globalThis.Bun||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>n||i<t)throw new Error(`invalid int64: ${r}`);return i},uParse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>a||i<o)throw new Error(`invalid uint64: ${r}`);return i},enc(r){return e.setBigInt64(0,this.parse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(r){return e.setBigInt64(0,this.uParse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigInt64(0,!0)},uDec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(t){return typeof t!="string"&&(t=t.toString()),ao(t),t},uParse(t){return typeof t!="string"&&(t=t.toString()),ro(t),t},enc(t){return typeof t!="string"&&(t=t.toString()),ao(t),no(t)},uEnc(t){return typeof t!="string"&&(t=t.toString()),ro(t),no(t)},dec(t,n){return Ui(t,n)},uDec(t,n){return Ga(t,n)}}}function ao(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function ro(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}function fe(e,t){switch(e){case h.STRING:return"";case h.BOOL:return!1;case h.DOUBLE:case h.FLOAT:return 0;case h.INT64:case h.UINT64:case h.SFIXED64:case h.FIXED64:case h.SINT64:return t?"0":z.zero;case h.BYTES:return new Uint8Array(0);default:return 0}}function zi(e,t){switch(e){case h.BOOL:return t===!1;case h.STRING:return t==="";case h.BYTES:return t instanceof Uint8Array&&!t.byteLength;case h.DOUBLE:case h.FLOAT:return Object.is(t,0);default:return t==0}}var Wa=2,ie=Symbol.for("reflect unsafe local");function Li(e,t){const n=e[t.localName].case;return n===void 0?n:t.fields.find(o=>o.localName===n)}function ji(e,t){const n=t.localName;if(t.oneof)return e[t.oneof.localName].case===n;if(t.presence!=Wa)return e[n]!==void 0&&Object.prototype.hasOwnProperty.call(e,n);switch(t.fieldKind){case"list":return e[n].length>0;case"map":return Object.keys(e[n]).length>0;case"scalar":return!zi(t.scalar,e[n]);case"enum":return e[n]!==t.enum.values[0].number}throw new Error("message field with implicit presence")}function at(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==void 0}function Ti(e,t){if(t.oneof){const n=e[t.oneof.localName];return n.case===t.localName?n.value:void 0}return e[t.localName]}function Hi(e,t,n){t.oneof?e[t.oneof.localName]={case:t.localName,value:n}:e[t.localName]=n}function ue(e,t,n){t==="__proto__"?Object.defineProperty(e,"__proto__",{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function Qi(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function Mi(e,t){const n=t.localName;if(t.oneof){const o=t.oneof.localName;e[o].case===n&&(e[o]={case:void 0})}else if(t.presence!=Wa)delete e[n];else switch(t.fieldKind){case"map":e[n]={};break;case"list":e[n]=[];break;case"enum":e[n]=t.enum.values[0].number;break;case"scalar":e[n]=fe(t.scalar,t.longAsString);break}}function Ie(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function En(e,t){var n,o,a,r;if(Ie(e)&&ie in e&&"add"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,s=e.field();return i.listKind==s.listKind&&i.scalar===s.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=s.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Nn(e,t){var n,o,a,r;if(Ie(e)&&ie in e&&"has"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,s=e.field();return i.mapKey===s.mapKey&&i.mapKind==s.mapKind&&i.scalar===s.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=s.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Gn(e,t){return Ie(e)&&ie in e&&"desc"in e&&Ie(e.desc)&&e.desc.kind==="message"&&(t===void 0||e.desc.typeName==t.typeName)}function Oi(e){return va(e.$typeName)}function Ke(e){const t=e.fields[0];return va(e.typeName)&&t!==void 0&&t.fieldKind=="scalar"&&t.name=="value"&&t.number==1}function Sa(e){switch(e.typeName){case"google.protobuf.Any":case"google.protobuf.Timestamp":case"google.protobuf.Duration":case"google.protobuf.FieldMask":case"google.protobuf.Struct":case"google.protobuf.Value":case"google.protobuf.ListValue":return!0;default:return Ke(e)}}var Di=new Set(["google.protobuf.DoubleValue","google.protobuf.FloatValue","google.protobuf.Int64Value","google.protobuf.UInt64Value","google.protobuf.Int32Value","google.protobuf.UInt32Value","google.protobuf.BoolValue","google.protobuf.StringValue","google.protobuf.BytesValue"]);function va(e){return Di.has(e)}var _i=999,Pi=998,Xa=2;function oe(e,t){return fn(t,e)?t:Ya(e)(t)}var io=new WeakMap;function Ya(e){let t=io.get(e);return t===void 0&&(t=$i(e),io.set(e,t)),t}var an=0,Ia=1,ya=2,Ca=3;function $i(e){const t=e.typeName,{properties:n,prototype:o}=qi(e);return a=>{let r;o!==void 0?(r=Object.create(o),r.$typeName=t):r={$typeName:t};for(let i=0;i<n.length;i++){const s=n[i],l=s.name,c=a?.[l];switch(s.kind){case an:c!=null?r[l]=s.convert!==void 0?s.convert(c):c:s.constant!==void 0&&(r[l]=s.constant);break;case Ia:r[l]=s.convert!==void 0&&Array.isArray(c)?c.map(s.convert):c??[];break;case ya:if(s.convert===void 0||!Ie(c))r[l]=c??{};else{const m={},p=Object.keys(c);for(let f=0;f<p.length;f++)ue(m,p[f],s.convert(c[p[f]]));r[l]=m}break;case Ca:{const m=c;if(m?.case!=null){const p=s.convert.get(m.case);if(p!==void 0){r[l]={case:m.case,value:p(m.value)};break}}r[l]={case:void 0};break}}}return r}}function qi(e){var t,n;const o=[],a={},r=ts(e);for(const i of e.members){const s=i.localName;if(i.kind=="oneof"){o.push({name:s,kind:Ca,constant:void 0,convert:es(i)});continue}switch(i.fieldKind){case"message":o.push({name:s,kind:an,constant:void 0,convert:Nt(i)});break;case"list":o.push({name:s,kind:Ia,constant:void 0,convert:i.listKind=="message"?(t=Nt(i))!==null&&t!==void 0?t:(l=>l):i.scalar==h.BYTES?nt:void 0});break;case"map":o.push({name:s,kind:ya,constant:void 0,convert:i.mapKind=="message"?(n=Nt(i))!==null&&n!==void 0?n:(l=>l):i.scalar==h.BYTES?nt:void 0});break;default:{const l=ns(i);o.push({name:s,kind:an,constant:i.presence==Xa?l:void 0,convert:i.fieldKind=="scalar"&&i.scalar==h.BYTES?nt:void 0}),r&&(a[s]=l);break}}}return{properties:o,prototype:r?a:void 0}}function es(e){const t=new Map;for(const n of e.fields){let o;n.fieldKind=="message"?o=Nt(n):n.fieldKind=="scalar"&&n.scalar==h.BYTES&&(o=nt),t.set(n.localName,o??(a=>a))}return t}function Nt(e){if(e.fieldKind=="message"&&!e.oneof&&Ke(e.message))return e.message.fields[0].scalar==h.BYTES?nt:void 0;if(e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!=="google.protobuf.Value")return;const t=e.message;let n;return o=>!Ie(o)||fn(o,t)?o:(n!=null||(n=Ya(t)),n(o))}function nt(e){return Array.isArray(e)?new Uint8Array(e):e}function ts(e){switch(e.file.edition){case _i:return!1;case Pi:return!0;default:return e.fields.some(t=>t.presence!=Xa&&t.fieldKind!="message"&&!t.oneof)}}function ns(e){const t=e.getDefaultValue();return t!==void 0?e.fieldKind=="scalar"&&e.longAsString?t.toString():t:e.fieldKind=="scalar"?fe(e.scalar,e.longAsString):e.enum.values[0].number}var os=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"],L=class extends Error{constructor(e,t,n="FieldValueInvalidError"){super(t),this.name=n,this.field=()=>e}};function as(e){return e instanceof Error&&os.includes(e.name)&&"field"in e&&typeof e.field=="function"}var rn;function rs(e){var t;rn=Object.assign(Object.assign({},e),{encodeUtf8Into:(t=e.encodeUtf8Into)!==null&&t!==void 0?t:Ba(e.encodeUtf8.bind(e))})}function Vn(){if(!rn){const e=globalThis;if(!e.TextEncoder||!e.TextDecoder)throw new Error("encoding API missing: install TextEncoder and TextDecoder on globalThis");const t=new e.TextEncoder,n=new e.TextDecoder;let o;const a={encodeUtf8(i){return t.encode(i)},decodeUtf8(i,s){return s?(o||(o=new e.TextDecoder("utf-8",{fatal:!0})),o.decode(i)):n.decode(i)},checkUtf8(i){try{return!0}catch{return!1}}};t.encodeInto&&(a.encodeUtf8Into=t.encodeInto.bind(t));const r=String.prototype.isWellFormed;r&&(a.checkUtf8=i=>r.call(i)),rs(a)}return rn}function Ba(e){return(t,n)=>{const o=e(t);return n.set(o),{written:o.byteLength}}}var Q;(function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"})(Q||(Q={}));var Fa=class{constructor(e){this.stackPos=[],this.encodeUtf8Into=e?Ba(e):Vn().encodeUtf8Into,this.buffer=wa,this.viewCache=ss,this.pos=0}ensureCapacity(e){const t=this.pos+e;if(t>this.buffer.length){let n=this.buffer.length||is;for(;n<t;)n*=2;const o=new Uint8Array(n);this.pos>0&&o.set(this.buffer),this.buffer=o}}view(){const e=this.buffer,t=this.viewCache;if(t.byteLength===e.byteLength)return t;const n=new DataView(e.buffer);return this.viewCache=n,n}finish(){const e=this.buffer.slice(0,this.pos);return this.pos=0,this.stackPos=[],e}fork(){return this.stackPos.push(this.pos),this.ensureCapacity(qe),this.buffer[this.pos++]=0,this}join(){const e=this.stackPos.pop();if(e===void 0)throw new Error("invalid state, fork stack empty");const t=this.pos-e-qe,n=Tt(t);return n>qe&&(this.ensureCapacity(n-qe),this.buffer.copyWithin(e+n,e+qe,this.pos)),this.pos=e,this.uint32(t),this.pos+=t,this}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.ensureCapacity(e.length),this.buffer.set(e,this.pos),this.pos+=e.length,this}uint32(e){if(so(e),this.ensureCapacity(5),e<128)return this.buffer[this.pos++]=e,this;for(;e>127;)this.buffer[this.pos++]=e&127|128,e>>>=7;return this.buffer[this.pos++]=e,this}int32(e){if(Ht(e),e>=0)return this.uint32(e);this.ensureCapacity(10);for(let t=0;t<9;t++)this.buffer[this.pos++]=e&127|128,e>>=7;return this.buffer[this.pos++]=1,this}bool(e){return this.ensureCapacity(1),this.buffer[this.pos++]=e?1:0,this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){typeof e!="string"&&(e=String(e));const t=e.length;if(t<=Ua){this.ensureCapacity(t+1);const s=this.buffer;let l=this.pos;s[l++]=t;let c=0;for(;c<t;c++){const m=e.charCodeAt(c);if(m>127)break;s[l++]=m}if(c==t)return this.pos=l,this}this.ensureCapacity(t*3+5);const n=Tt(t),o=this.buffer,a=this.pos,{written:r}=this.encodeUtf8Into(e,o.subarray(a+n)),i=Tt(r);return i!=n&&o.copyWithin(a+i,a+n,a+n+r),this.uint32(r),this.pos+=r,this}float(e){return ls(e),this.ensureCapacity(4),this.view().setFloat32(this.pos,e,!0),this.pos+=4,this}double(e){return this.ensureCapacity(8),this.view().setFloat64(this.pos,e,!0),this.pos+=8,this}fixed32(e){return so(e),this.ensureCapacity(4),this.view().setUint32(this.pos,e,!0),this.pos+=4,this}sfixed32(e){return Ht(e),this.ensureCapacity(4),this.view().setInt32(this.pos,e,!0),this.pos+=4,this}sint32(e){return Ht(e),this.uint32((e<<1^e>>31)>>>0)}sfixed64(e){const t=z.enc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}fixed64(e){const t=z.uEnc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}int64(e){const t=z.enc(e);return this.writeVarint64(t.lo,t.hi)}sint64(e){const t=z.enc(e),n=t.hi>>31,o=t.lo<<1^n,a=(t.hi<<1|t.lo>>>31)^n;return this.writeVarint64(o,a)}uint64(e){const t=z.uEnc(e);return this.writeVarint64(t.lo,t.hi)}writeVarint64(e,t){this.ensureCapacity(10);const n=this.buffer;let o=this.pos;for(let i=0;i<28;i=i+7){const s=e>>>i,l=!(!(s>>>7)&&t==0);if(n[o++]=(l?s|128:s)&255,!l)return this.pos=o,this}const a=e>>>28&15|(t&7)<<4,r=t>>3!=0;if(n[o++]=(r?a|128:a)&255,!r)return this.pos=o,this;for(let i=3;i<31;i=i+7){const s=t>>>i,l=!!(s>>>7);if(n[o++]=(l?s|128:s)&255,!l)return this.pos=o,this}return n[o++]=t>>>31&1,this.pos=o,this}},is=128,qe=1,wa=new Uint8Array(0),ss=new DataView(wa.buffer),Ua=32;function Tt(e){return e<128?1:e<16384?2:e<2097152?3:e<268435456?4:5}var rt=class{constructor(e,t=Vn().decodeUtf8){this.decodeUtf8=t,this.varint64Lo=0,this.varint64Hi=0,this.varint64=wi,this.uint32=Ki,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){const e=this.pos,t=this.uint32(),n=this.pos-e;if(n>5||n==5&&this.buf[this.pos-1]>15)throw new Error("illegal tag: varint overflows uint32");const o=t>>>3,a=t&7;if(o<=0||a>5)throw new Error("illegal tag: field no "+o+" wire type "+a);return[o,a]}skip(e,t,n=100){let o=this.pos;switch(e){case Q.Varint:for(;this.buf[this.pos++]&128;);break;case Q.Bit64:this.pos+=4;case Q.Bit32:this.pos+=4;break;case Q.LengthDelimited:let a=this.uint32();this.pos+=a;break;case Q.StartGroup:if(n<=0)throw new Error("maximum recursion depth reached");for(;;){const[r,i]=this.tag();if(i===Q.EndGroup){if(t!==void 0&&r!==t)throw new Error("invalid end group tag");break}this.skip(i,r,n-1)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(o,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return this.varint64(),z.dec(this.varint64Lo,this.varint64Hi)}uint64(){return this.varint64(),z.uDec(this.varint64Lo,this.varint64Hi)}sint64(){this.varint64();let e=this.varint64Lo,t=this.varint64Hi,n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,z.dec(e,t)}bool(){const e=this.buf[this.pos];return e<128?(this.pos++,e!==0):(this.varint64(),this.varint64Lo!==0||this.varint64Hi!==0)}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return z.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return z.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(e){const t=this.bytes(),n=t.length;if(n<=Ua){const o=new Array(n);for(let a=0;a<n;a++){const r=t[a];if(r>127)return this.decodeUtf8(t,e);o[a]=r}return String.fromCharCode.apply(String,o)}return this.decodeUtf8(t,e)}};function Ht(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw new Error("invalid int32: "+e)}function so(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid uint32: "+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw new Error("invalid uint32: "+e)}function ls(e){if(typeof e=="string"){const t=e;if(e=Number(e),Number.isNaN(e)&&t!=="NaN")throw new Error("invalid float32: "+t)}else if(typeof e!="number")throw new Error("invalid float32: "+typeof e);if(!Number.isFinite(Math.fround(e))&&Number.isFinite(e))throw new Error("invalid float32: "+e)}function Ja(e,t){const n=e.fieldKind=="list"?En(t,e):e.fieldKind=="map"?Nn(t,e):Wn(e,t);if(n===!0)return;let o;switch(e.fieldKind){case"list":o=`expected ${Ka(e)}, got ${D(t)}`;break;case"map":o=`expected ${xa(e)}, got ${D(t)}`;break;default:o=ce(e,t,n)}return new L(e,o)}function lo(e,t,n){const o=Wn(e,n);if(o!==!0)return new L(e,`list item #${t+1}: ${ce(e,n,o)}`)}function cs(e,t,n){const o=ye(e.mapKey)(t);if(o!==!0)return new L(e,`invalid map key: ${ce({scalar:e.mapKey},t,o)}`);const a=Wn(e,n);if(a!==!0)return new L(e,`map entry ${D(t)}: ${ce(e,n,a)}`)}function Wn(e,t){return e.scalar!==void 0?ye(e.scalar)(t):e.enum!==void 0?e.enum.open?ye(h.INT32)(t):e.enum.values.some(n=>n.number===t):Gn(t,e.message)}function ye(e){switch(e){case h.DOUBLE:return t=>typeof t=="number";case h.FLOAT:return t=>typeof t!="number"?!1:!Number.isFinite(Math.fround(t))&&Number.isFinite(t)?`${t.toFixed()} out of range`:!0;case h.INT32:case h.SFIXED32:case h.SINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>2147483647||t<-2147483648?`${t.toFixed()} out of range`:!0;case h.FIXED32:case h.UINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>4294967295||t<0?`${t.toFixed()} out of range`:!0;case h.BOOL:return t=>typeof t=="boolean";case h.STRING:return t=>typeof t!="string"?!1:Vn().checkUtf8(t)||"invalid UTF8";case h.BYTES:return t=>t instanceof Uint8Array;case h.INT64:case h.SFIXED64:case h.SINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.parse(t),!0}catch{return`${t} out of range`}return!1};case h.FIXED64:case h.UINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.uParse(t),!0}catch{return`${t} out of range`}return!1}}}function ce(e,t,n){return n=typeof n=="string"?`: ${n}`:`, got ${D(t)}`,e.scalar!==void 0?`expected ${us(e.scalar)}`+n:e.enum!==void 0?`expected ${e.enum.toString()}`+n:`expected ${ka(e.message)}`+n}function D(e){switch(typeof e){case"object":return e===null?"null":e instanceof Uint8Array?`Uint8Array(${e.length})`:Array.isArray(e)?`Array(${e.length})`:En(e)?Ka(e.field()):Nn(e)?xa(e.field()):Gn(e)?ka(e.desc):fn(e)?`message ${e.$typeName}`:"object";case"string":return e.length>30?"string":`"${e.split('"').join('\\"')}"`;case"boolean":return String(e);case"number":return String(e);case"bigint":return String(e)+"n";default:return typeof e}}function ka(e){return`ReflectMessage (${e.typeName})`}function Ka(e){switch(e.listKind){case"message":return`ReflectList (${e.message.toString()})`;case"enum":return`ReflectList (${e.enum.toString()})`;case"scalar":return`ReflectList (${h[e.scalar]})`}}function xa(e){switch(e.mapKind){case"message":return`ReflectMap (${h[e.mapKey]}, ${e.message.toString()})`;case"enum":return`ReflectMap (${h[e.mapKey]}, ${e.enum.toString()})`;case"scalar":return`ReflectMap (${h[e.mapKey]}, ${h[e.scalar]})`}}function us(e){switch(e){case h.STRING:return"string";case h.BOOL:return"boolean";case h.INT64:case h.SINT64:case h.SFIXED64:return"bigint (int64)";case h.UINT64:case h.FIXED64:return"bigint (uint64)";case h.BYTES:return"Uint8Array";case h.DOUBLE:return"number (float64)";case h.FLOAT:return"number (float32)";case h.FIXED32:case h.UINT32:return"number (uint32)";case h.INT32:case h.SFIXED32:case h.SINT32:return"number (int32)"}}var ds=0;function ge(e){if(ms(e))return{toMessage:n=>Sn(n),toLocal:n=>vn(n)};if(e.fieldKind=="message"&&!e.oneof&&Ke(e.message)){const n=e.message,o=n.fields[0].localName;return{toMessage:a=>{const r=oe(n);return a!==void 0&&(r[o]=a),r},toLocal:a=>a[o]}}const t=e.message;return{toMessage:n=>n===void 0?oe(t):n,toLocal:n=>n}}function ms(e){return e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"}function Sn(e){const t={$typeName:"google.protobuf.Struct",fields:{}};if(Ie(e))for(const n of Object.keys(e))ue(t.fields,n,La(e[n]));return t}function vn(e){const t={};for(const n of Object.keys(e.fields))ue(t,n,za(e.fields[n]));return t}function za(e){switch(e.kind.case){case"structValue":return vn(e.kind.value);case"listValue":return e.kind.value.values.map(za);case"nullValue":case void 0:return null;default:return e.kind.value}}function La(e){const t={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof e){case"number":t.kind={case:"numberValue",value:e};break;case"string":t.kind={case:"stringValue",value:e};break;case"boolean":t.kind={case:"boolValue",value:e};break;case"object":if(e===null)t.kind={case:"nullValue",value:ds};else if(Array.isArray(e)){const n={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(e))for(const o of e)n.values.push(La(o));t.kind={case:"listValue",value:n}}else t.kind={case:"structValue",value:Sn(e)};break}return t}function hs(e,t,n=!0){return new ja(e,t,n)}var co=new WeakMap,ja=class{get sortedFields(){const e=co.get(this.desc);if(e)return e;const t=this.desc.fields.concat().sort((n,o)=>n.number-o.number);return co.set(this.desc,t),t}constructor(e,t,n=!0){this.lists=new Map,this.maps=new Map,this.check=n,this.desc=e,this.message=this[ie]=t??oe(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(t=>[t.number,t]))),this._fieldsByNumber.get(e)}oneofCase(e){return et(this.message,e),Li(this.message,e)}isSet(e){return et(this.message,e),ji(this.message,e)}clear(e){et(this.message,e),Mi(this.message,e)}get(e){et(this.message,e);const t=Ti(this.message,e);switch(e.fieldKind){case"list":let n=this.lists.get(e);return(!n||n[ie]!==t)&&this.lists.set(e,n=new bs(e,t,this.check)),n;case"map":let o=this.maps.get(e);return(!o||o[ie]!==t)&&this.maps.set(e,o=new gs(e,t,this.check)),o;case"message":return Yn(e,t,this.check);case"scalar":return t===void 0?fe(e.scalar,!1):In(e,t);case"enum":return t??e.enum.values[0].number}}set(e,t){if(et(this.message,e),this.check){const o=Ja(e,t);if(o)throw o}let n;e.fieldKind=="message"?n=Xn(e,t):Nn(t)||En(t)?n=t[ie]:n=yn(e,t),Hi(this.message,e,n)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}};function et(e,t){if(t.parent.typeName!==e.$typeName)throw new L(t,`cannot use ${t.toString()} with message ${e.$typeName}`,"ForeignFieldError")}var bs=class{field(){return this._field}get size(){return this._arr.length}constructor(e,t,n){this._field=e,this._arr=this[ie]=t,this.check=n}get(e){const t=this._arr[e];return t===void 0?void 0:Qt(this._field,t,this.check)}set(e,t){if(e<0||e>=this._arr.length)throw new L(this._field,`list item #${e+1}: out of range`);if(this.check){const n=lo(this._field,e,t);if(n)throw n}this._arr[e]=uo(this._field,t)}add(e){if(this.check){const t=lo(this._field,this._arr.length,e);if(t)throw t}this._arr.push(uo(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(const e of this._arr)yield Qt(this._field,e,this.check)}*entries(){for(let e=0;e<this._arr.length;e++)yield[e,Qt(this._field,this._arr[e],this.check)]}},gs=class{constructor(e,t,n=!0){this.obj=this[ie]=t??{},this.check=n,this._field=e}field(){return this._field}set(e,t){if(this.check){const n=cs(this._field,e,t);if(n)throw n}return ue(this.obj,gt(e),ps(this._field,t)),this}delete(e){const t=gt(e),n=Object.prototype.hasOwnProperty.call(this.obj,t);return n&&delete this.obj[t],n}clear(){for(const e of Object.keys(this.obj))delete this.obj[e]}get(e){let t=Qi(this.obj,gt(e));return t!==void 0&&(t=Mt(this._field,t,this.check)),t}has(e){return Object.prototype.hasOwnProperty.call(this.obj,gt(e))}*keys(){for(const e of Object.keys(this.obj))yield mo(e,this._field.mapKey)}*entries(){for(const e of Object.entries(this.obj))yield[mo(e[0],this._field.mapKey),Mt(this._field,e[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(const e of Object.values(this.obj))yield Mt(this._field,e,this.check)}forEach(e,t){for(const n of this.entries())e.call(t,n[1],n[0],this)}};function Xn(e,t){return Gn(t)?Oi(t.message)&&!e.oneof&&e.fieldKind=="message"?t.message.value:t.desc.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"?vn(t.message):t.message:t}function Yn(e,t,n){return t!==void 0&&(Ke(e.message)&&!e.oneof&&e.fieldKind=="message"?t={$typeName:e.message.typeName,value:In(e.message.fields[0],t)}:e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"&&Ie(t)&&(t=Sn(t))),new ja(e.message,t,n)}function uo(e,t){return e.listKind=="message"?Xn(e,t):yn(e,t)}function Qt(e,t,n){return e.listKind=="message"?Yn(e,t,n):In(e,t)}function ps(e,t){return e.mapKind=="message"?Xn(e,t):yn(e,t)}function Mt(e,t,n){return e.mapKind=="message"?Yn(e,t,n):t}function gt(e){return typeof e=="string"||typeof e=="number"?e:String(e)}function mo(e,t){switch(t){case h.STRING:return e;case h.INT32:case h.FIXED32:case h.UINT32:case h.SFIXED32:case h.SINT32:{const n=Number.parseInt(e);if(Number.isFinite(n))return n;break}case h.BOOL:switch(e){case"true":return!0;case"false":return!1}break;case h.UINT64:case h.FIXED64:try{return z.uParse(e)}catch{}break;default:try{return z.parse(e)}catch{}break}return e}function In(e,t){switch(e.scalar){case h.INT64:case h.SFIXED64:case h.SINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.parse(t));break;case h.FIXED64:case h.UINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.uParse(t));break}return t}function yn(e,t){switch(e.scalar){case h.INT64:case h.SFIXED64:case h.SINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.parse(t));break;case h.FIXED64:case h.UINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.uParse(t));break}return t}var ho=Uint8Array.prototype.setFromBase64;function Cn(e){const t=e.length;let n=t-(t+3>>2);(t&3)==0&&e[t-1]=="="&&(n-=e[t-2]=="="?2:1);const o=new Uint8Array(n);let a=-1;if(ho)try{const r=ho.call(o,e);r.read==t&&(a=r.written)}catch{}return a<0&&(a=As(o,e)),a==n?o:o.subarray(0,a)}function As(e,t){const n=Rs();let o=0,a=0,r,i=0;for(let s=0;s<t.length;s++){if(r=n[t.charCodeAt(s)],r===void 0)switch(t[s]){case"=":a=0;case`
28
- `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(a){case 0:i=r,a=1;break;case 1:e[o++]=i<<2|(r&48)>>4,i=r,a=2;break;case 2:e[o++]=(i&15)<<4|(r&60)>>2,i=r,a=3;break;case 3:e[o++]=(i&3)<<6|r,a=0;break}}if(a==1)throw Error("invalid base64 string");return o}var bo=Uint8Array.prototype.toBase64,Zs={std:{alphabet:"base64",omitPadding:!1},std_raw:{alphabet:"base64",omitPadding:!0},url:{alphabet:"base64url",omitPadding:!0}};function fs(e,t="std"){if(bo)return bo.call(e,Zs[t]);const n=Ta(t),o=t=="std";let a="",r=0,i,s=0;for(let l=0;l<e.length;l++)switch(i=e[l],r){case 0:a+=n[i>>2],s=(i&3)<<4,r=1;break;case 1:a+=n[s|i>>4],s=(i&15)<<2,r=2;break;case 2:a+=n[s|i>>6],a+=n[i&63],r=0;break}return r&&(a+=n[s],o&&(a+="=",r==1&&(a+="="))),a}var pt,go,Le;function Ta(e){return pt||(pt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),go=pt.slice(0,-2).concat("-","_")),e=="url"?go:pt}function Rs(){if(!Le){Le=[];const e=Ta("std");for(let t=0;t<e.length;t++)Le[e[t].charCodeAt(0)]=t;Le[45]=e.indexOf("+"),Le[95]=e.indexOf("/")}return Le}function Oe(e){let t=!1;const n=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);switch(a){case"_":t=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(a),t=!1;break;default:t&&(t=!1,a=a.toUpperCase()),n.push(a);break}}return n.join("")}function Ha(e){return e.replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}var Es=new Set(["constructor","toString","toJSON","valueOf"]);function it(e){return Es.has(e)?e+"$":e}function Bn(e){for(const t of e.field)at(t,"jsonName")||(t.jsonName=Oe(t.name));e.nestedType.forEach(Bn)}function Ns(e,t){const n=e.values.find(o=>o.name===t);if(!n)throw new Error(`cannot parse ${e} default value: ${t}`);return n.number}function Gs(e,t){switch(e){case h.STRING:return t;case h.BYTES:{const n=Vs(t);if(n===!1)throw new Error(`cannot parse ${h[e]} default value: ${t}`);return n}case h.INT64:case h.SFIXED64:case h.SINT64:return z.parse(t);case h.UINT64:case h.FIXED64:return z.uParse(t);case h.DOUBLE:case h.FLOAT:switch(t){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return NaN;default:return parseFloat(t)}case h.BOOL:return t==="true";case h.INT32:case h.UINT32:case h.SINT32:case h.FIXED32:case h.SFIXED32:return parseInt(t,10)}}function Vs(e){const t=[],n={tail:e,c:"",next(){return this.tail.length==0?!1:(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(o){if(this.tail.length>=o){const a=this.tail.substring(0,o);return this.tail=this.tail.substring(o),a}return!1}};for(;n.next();)switch(n.c){case"\\":if(n.next())switch(n.c){case"\\":t.push(n.c.charCodeAt(0));break;case"b":t.push(8);break;case"f":t.push(12);break;case"n":t.push(10);break;case"r":t.push(13);break;case"t":t.push(9);break;case"v":t.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,8);if(Number.isNaN(r))return!1;t.push(r);break}case"x":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;t.push(r);break}case"u":{const o=n.c,a=n.take(4);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;const i=new Uint8Array(4);new DataView(i.buffer).setInt32(0,r,!0),t.push(i[0],i[1],i[2],i[3]);break}case"U":{const o=n.c,a=n.take(8);if(a===!1)return!1;const r=z.uEnc(o+a),i=new Uint8Array(8),s=new DataView(i.buffer);s.setInt32(0,r.lo,!0),s.setInt32(4,r.hi,!0),t.push(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]);break}}break;default:t.push(n.c.charCodeAt(0))}return new Uint8Array(t)}function*sn(e){switch(e.kind){case"file":for(const t of e.messages)yield t,yield*sn(t);yield*e.enums,yield*e.services,yield*e.extensions;break;case"message":for(const t of e.nestedMessages)yield t,yield*sn(t);yield*e.nestedEnums,yield*e.nestedExtensions;break}}function Qa(...e){const t=Ws();if(!e.length)return t;if("$typeName"in e[0]&&e[0].$typeName=="google.protobuf.FileDescriptorSet"){for(const o of e[0].file)fo(o,t);return t}if("$typeName"in e[0]){let i=function(s){const l=[];for(const c of s.dependency){if(t.getFile(c)!=null||r.has(c))continue;const m=a(c);if(!m)throw new Error(`Unable to resolve ${c}, imported by ${s.name}`);"kind"in m?t.addFile(m,!1,!0):(r.add(m.name),l.push(m))}return l.concat(...l.map(i))};var n=i;const o=e[0],a=e[1],r=new Set;for(const s of[o,...i(o)].reverse())fo(s,t)}else for(const o of e)for(const a of o.files)t.addFile(a);return t}function Ws(){const e=new Map,t=new Map,n=new Map;return{kind:"registry",types:e,extendees:t,[Symbol.iterator](){return e.values()},get files(){return n.values()},addFile(o,a,r){if(n.set(o.proto.name,o),!a)for(const i of sn(o))this.add(i);if(r)for(const i of o.dependencies)this.addFile(i,a,r)},add(o){if(o.kind=="extension"){let a=t.get(o.extendee.typeName);a||t.set(o.extendee.typeName,a=new Map),a.set(o.number,o)}e.set(o.typeName,o)},get(o){return e.get(o)},getFile(o){return n.get(o)},getMessage(o){const a=e.get(o);return a?.kind=="message"?a:void 0},getEnum(o){const a=e.get(o);return a?.kind=="enum"?a:void 0},getExtension(o){const a=e.get(o);return a?.kind=="extension"?a:void 0},getExtensionFor(o,a){var r;return(r=t.get(o.typeName))===null||r===void 0?void 0:r.get(a)},getService(o){const a=e.get(o);return a?.kind=="service"?a:void 0}}}var Ss=998,vs=999,Xs=9999,Ys=9,st=10,ot=11,Is=12,po=14,Fn=3,ys=2,Ao=1,Cs=0,Ot=1,Zo=2,Bs=3,Fs=1,ws=2,Us=1,Js=2,ks=1002,Ma={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2,enforceProtoLimits:1},1002:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:3,defaultSymbolVisibility:4,enforceProtoLimits:2}};function fo(e,t){var n,o;const a={kind:"file",proto:e,deprecated:(o=(n=e.options)===null||n===void 0?void 0:n.deprecated)!==null&&o!==void 0?o:!1,edition:Ls(e),name:e.name.replace(/\.proto$/,""),dependencies:js(e,t),enums:[],messages:[],extensions:[],services:[],toString(){return`file ${e.name}`}},r=new Map,i={get(s){return r.get(s)},add(s){var l;se(((l=s.proto.options)===null||l===void 0?void 0:l.mapEntry)===!0),r.set(s.typeName,s)}};for(const s of e.enumType)Oa(s,a,void 0,t);for(const s of e.messageType)Da(s,a,void 0,t,i);for(const s of e.service)Ks(s,a,t);ln(a,t);for(const s of r.values())cn(s,t,i);for(const s of a.messages)cn(s,t,i),ln(s,t);t.addFile(a,!0)}function ln(e,t){switch(e.kind){case"file":for(const n of e.proto.extension){const o=un(n,e,t);e.extensions.push(o),t.add(o)}break;case"message":for(const n of e.proto.extension){const o=un(n,e,t);e.nestedExtensions.push(o),t.add(o)}for(const n of e.nestedMessages)ln(n,t);break}}function cn(e,t,n){const o=e.proto.oneofDecl.map(r=>zs(r,e)),a=new Set;for(const r of e.proto.field){const i=Ms(r,o),s=un(r,e,t,i,n);e.fields.push(s),e.field[s.localName]=s,i===void 0?e.members.push(s):(i.fields.push(s),a.has(i)||(a.add(i),e.members.push(i)))}for(const r of o.filter(i=>a.has(i)))e.oneofs.push(r);for(const r of e.nestedMessages)cn(r,t,n)}function Oa(e,t,n,o){var a,r,i,s,l,c;const m=Ts(e.name,e.value),p={kind:"enum",proto:e,deprecated:(r=(a=e.options)===null||a===void 0?void 0:a.deprecated)!==null&&r!==void 0?r:!1,file:t,parent:n,open:!0,name:e.name,typeName:Ft(e,n,t),value:{},values:[],sharedPrefix:m,toString(){return`enum ${this.typeName}`}};p.open=Ps(p),o.add(p);for(const f of e.value){const Z=f.name;p.values.push(p.value[f.number]={kind:"enum_value",proto:f,deprecated:(s=(i=f.options)===null||i===void 0?void 0:i.deprecated)!==null&&s!==void 0?s:!1,parent:p,name:Z,localName:it(m==null?Z:Z.substring(m.length)),number:f.number,jsonName:(l=Hs(f))!==null&&l!==void 0?l:Z,toString(){return`enum value ${p.typeName}.${Z}`}})}((c=n?.nestedEnums)!==null&&c!==void 0?c:t.enums).push(p)}function Da(e,t,n,o,a){var r,i,s,l;const c={kind:"message",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,file:t,parent:n,name:e.name,typeName:Ft(e,n,t),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};((s=e.options)===null||s===void 0?void 0:s.mapEntry)===!0?a.add(c):(((l=n?.nestedMessages)!==null&&l!==void 0?l:t.messages).push(c),o.add(c));for(const m of e.enumType)Oa(m,t,c,o);for(const m of e.nestedType)Da(m,t,c,o,a)}function Ks(e,t,n){var o,a;const r={kind:"service",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,file:t,name:e.name,typeName:Ft(e,void 0,t),methods:[],method:{},toString(){return`service ${this.typeName}`}};t.services.push(r),n.add(r);for(const i of e.method){const s=xs(i,r,n);r.methods.push(s),r.method[s.localName]=s}}function xs(e,t,n){var o,a,r,i;let s;e.clientStreaming&&e.serverStreaming?s="bidi_streaming":e.clientStreaming?s="client_streaming":e.serverStreaming?s="server_streaming":s="unary";const l=n.getMessage(Ae(e.inputType)),c=n.getMessage(Ae(e.outputType));se(l,`invalid MethodDescriptorProto: input_type ${e.inputType} not found`),se(c,`invalid MethodDescriptorProto: output_type ${e.inputType} not found`);const m=e.name;return{kind:"rpc",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,parent:t,name:m,localName:it(m.length?it(m[0].toLowerCase()+m.substring(1)):m),methodKind:s,input:l,output:c,idempotency:(i=(r=e.options)===null||r===void 0?void 0:r.idempotencyLevel)!==null&&i!==void 0?i:Cs,toString(){return`rpc ${t.typeName}.${m}`}}}function zs(e,t){return{kind:"oneof",proto:e,deprecated:!1,parent:t,fields:[],name:e.name,localName:it(Oe(e.name)),toString(){return`oneof ${t.typeName}.${this.name}`}}}function un(e,t,n,o,a){var r,i,s;const l=a===void 0,c={kind:"field",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,name:e.name,number:e.number,scalar:void 0,message:void 0,enum:void 0,presence:Os(e,o,l,t),utf8Validation:$s(e,t),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};let m;if(l){const N=t.kind=="file"?t:t.file,V=t.kind=="file"?void 0:t,C=Ft(e,V,N);c.kind="extension",c.file=N,c.parent=V,c.oneof=void 0,c.typeName=C,c.jsonName=`[${C}]`,m=()=>`extension ${C}`;const J=n.getMessage(Ae(e.extendee));se(J,`invalid FieldDescriptorProto: extendee ${e.extendee} not found`),c.extendee=J}else{const N=t;se(N.kind=="message"),c.parent=N,c.oneof=o,c.localName=o?Oe(e.name):it(Oe(e.name)),c.jsonName=e.jsonName,m=()=>`field ${N.typeName}.${e.name}`}Object.defineProperty(c,"toString",{value:m,writable:!0,enumerable:!0,configurable:!0});const p=e.label,f=e.type,Z=(s=e.options)===null||s===void 0?void 0:s.jstype;if(p===Fn){const N=f==ot?a?.get(Ae(e.typeName)):void 0;if(N){c.fieldKind="map";const{key:V,value:C}=_s(N);return c.mapKey=V.scalar,c.mapKind=C.fieldKind,c.message=C.message,c.delimitedEncoding=!1,c.enum=C.enum,c.scalar=C.scalar,c}switch(c.fieldKind="list",f){case ot:case st:c.listKind="message",c.message=n.getMessage(Ae(e.typeName)),se(c.message),c.delimitedEncoding=Ro(e,t);break;case po:c.listKind="enum",c.enum=n.getEnum(Ae(e.typeName)),se(c.enum);break;default:c.listKind="scalar",c.scalar=f,c.longAsString=Z==Ao;break}return c.packed=Ds(e,t),c}switch(f){case ot:case st:c.fieldKind="message",c.message=n.getMessage(Ae(e.typeName)),se(c.message,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.delimitedEncoding=Ro(e,t),c.getDefaultValue=()=>{};break;case po:{const N=n.getEnum(Ae(e.typeName));se(N!==void 0,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(Ae(e.typeName)),c.getDefaultValue=()=>at(e,"defaultValue")?Ns(N,e.defaultValue):void 0;break}default:c.fieldKind="scalar",c.scalar=f,c.longAsString=Z==Ao,c.getDefaultValue=()=>at(e,"defaultValue")?Gs(f,e.defaultValue):void 0;break}return c}function Ls(e){switch(e.syntax){case"":case"proto2":return Ss;case"proto3":return vs;case"editions":if(e.edition===Xs)return ks;if(e.edition in Ma)return e.edition;throw new Error(`${e.name}: unsupported edition`);default:throw new Error(`${e.name}: unsupported syntax "${e.syntax}"`)}}function js(e,t){return e.dependency.map(n=>{const o=t.getFile(n);if(!o)throw new Error(`Cannot find ${n}, imported by ${e.name}`);return o})}function Ts(e,t){const n=Qs(e)+"_";for(const o of t){if(!o.name.toLowerCase().startsWith(n))return;const a=o.name.substring(n.length);if(a.length==0||/^\d/.test(a))return}return n}function Hs(e){var t,n;let r;for(const i of(n=(t=e.options)===null||t===void 0?void 0:t.$unknown)!==null&&n!==void 0?n:[]){if(i.no!==998||i.wireType!==Q.LengthDelimited)continue;const s=new rt(new rt(i.data).bytes());for(;s.pos<s.len;){const[l,c]=s.tag();l===1&&c===Q.LengthDelimited?r=s.string():s.skip(c,l)}}return r}function Qs(e){return(e.substring(0,1)+e.substring(1).replace(/[A-Z]/g,t=>"_"+t)).toLowerCase()}function Ft(e,t,n){let o;return t?o=`${t.typeName}.${e.name}`:n.proto.package.length>0?o=`${n.proto.package}.${e.name}`:o=`${e.name}`,o}function Ae(e){return e.startsWith(".")?e.substring(1):e}function Ms(e,t){if(!at(e,"oneofIndex")||e.proto3Optional)return;const n=t[e.oneofIndex];return se(n,`invalid FieldDescriptorProto: oneof #${e.oneofIndex} for field #${e.number} not found`),n}function Os(e,t,n,o){if(e.label==ys)return Bs;if(e.label==Fn)return Zo;if(t||e.proto3Optional||n)return Ot;const a=Ue("fieldPresence",{proto:e,parent:o});return a==Zo&&(e.type==ot||e.type==st)?Ot:a}function Ds(e,t){if(e.label!=Fn)return!1;switch(e.type){case Ys:case Is:case st:case ot:return!1}const n=e.options;return n&&at(n,"packed")?n.packed:Fs==Ue("repeatedFieldEncoding",{proto:e,parent:t})}function _s(e){const t=e.fields.find(o=>o.number===1),n=e.fields.find(o=>o.number===2);return se(t&&t.fieldKind=="scalar"&&t.scalar!=h.BYTES&&t.scalar!=h.FLOAT&&t.scalar!=h.DOUBLE&&n&&n.fieldKind!="list"&&n.fieldKind!="map"),{key:t,value:n}}function Ps(e){var t;return Us==Ue("enumType",{proto:e.proto,parent:(t=e.parent)!==null&&t!==void 0?t:e.file})}function Ro(e,t){return e.type==st?!0:ws==Ue("messageEncoding",{proto:e,parent:t})}function $s(e,t){return Js==Ue("utf8Validation",{proto:e,parent:t})}function Ue(e,t){var n,o;const a=(n=t.proto.options)===null||n===void 0?void 0:n.features;if(a){const r=a[e];if(r!=0)return r}if("kind"in t){if(t.kind=="message")return Ue(e,(o=t.parent)!==null&&o!==void 0?o:t.file);const r=Ma[t.edition];if(!r)throw new Error(`feature default for edition ${t.edition} not found`);return r[e]}return Ue(e,t.parent)}function se(e,t){if(!e)throw new Error(t)}function qs(e){const t=el(e);return t.messageType.forEach(Bn),Qa(t,()=>{}).getFile(t.name)}function el(e){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},e),{messageType:e.messageType.map(_a),enumType:e.enumType.map(Pa)}))}function _a(e){var t,n,o,a,r,i,s,l;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:e.name,field:(n=(t=e.field)===null||t===void 0?void 0:t.map(tl))!==null&&n!==void 0?n:[],extension:[],nestedType:(a=(o=e.nestedType)===null||o===void 0?void 0:o.map(_a))!==null&&a!==void 0?a:[],enumType:(i=(r=e.enumType)===null||r===void 0?void 0:r.map(Pa))!==null&&i!==void 0?i:[],extensionRange:(l=(s=e.extensionRange)===null||s===void 0?void 0:s.map(c=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},c)))!==null&&l!==void 0?l:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function tl(e){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},e),{options:e.options?nl(e.options):void 0}))}function nl(e){var t,n,o;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},e),{targets:(t=e.targets)!==null&&t!==void 0?t:[],editionDefaults:(o=(n=e.editionDefaults)===null||n===void 0?void 0:n.map(a=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},a)))!==null&&o!==void 0?o:[],uninterpretedOption:[]}))}function Pa(e){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:e.name,reservedName:[],reservedRange:[],value:e.value.map(t=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},t))})}function G(e,t,...n){return n.reduce((o,a)=>o.nestedMessages[a],e.messages[t])}var ol=qs({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false",options:{}},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true",options:{}},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"removal_error",number:5,type:9,label:1}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001},{value:"STYLE2026",edition:1002}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001},{value:"STRICT",edition:1002}]}},{name:"enforce_proto_limits",number:9,type:14,label:1,typeName:".google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits",options:{retention:2,targets:[6,3,4,5],editionDefaults:[{value:"LEGACY_NO_EXPLICIT_LIMITS",edition:900},{value:"PROTO_LIMITS2026",edition:1002}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]},{name:"ProtoLimitsFeature",enumType:[{name:"EnforceProtoLimits",value:[{name:"PROTO_LIMITS_UNKNOWN",number:0},{name:"LEGACY_NO_EXPLICIT_LIMITS",number:1},{name:"PROTO_LIMITS2026",number:2}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2},{name:"STYLE2026",number:3}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_2026",number:1002},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),al=G(ol,1),Eo;(function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"})(Eo||(Eo={}));var No;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(No||(No={}));var Go;(function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"})(Go||(Go={}));var Vo;(function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"})(Vo||(Vo={}));var Wo;(function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"})(Wo||(Wo={}));var So;(function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"})(So||(So={}));var vo;(function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(vo||(vo={}));var Xo;(function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Xo||(Xo={}));var Yo;(function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"})(Yo||(Yo={}));var Io;(function(e){e[e.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",e[e.EXPORT_ALL=1]="EXPORT_ALL",e[e.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",e[e.LOCAL_ALL=3]="LOCAL_ALL",e[e.STRICT=4]="STRICT"})(Io||(Io={}));var yo;(function(e){e[e.PROTO_LIMITS_UNKNOWN=0]="PROTO_LIMITS_UNKNOWN",e[e.LEGACY_NO_EXPLICIT_LIMITS=1]="LEGACY_NO_EXPLICIT_LIMITS",e[e.PROTO_LIMITS2026=2]="PROTO_LIMITS2026"})(yo||(yo={}));var Co;(function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Co||(Co={}));var Bo;(function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"})(Bo||(Bo={}));var Fo;(function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"})(Fo||(Fo={}));var wo;(function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.VERIFY=2]="VERIFY",e[e.NONE=3]="NONE"})(wo||(wo={}));var Uo;(function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"})(Uo||(Uo={}));var Jo;(function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(Jo||(Jo={}));var ko;(function(e){e[e.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",e[e.STYLE2024=1]="STYLE2024",e[e.STYLE_LEGACY=2]="STYLE_LEGACY",e[e.STYLE2026=3]="STYLE2026"})(ko||(ko={}));var Ko;(function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"})(Ko||(Ko={}));var xo;(function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_LEGACY=900]="EDITION_LEGACY",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_2024=1001]="EDITION_2024",e[e.EDITION_2026=1002]="EDITION_2026",e[e.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",e[e.EDITION_MAX=2147483647]="EDITION_MAX"})(xo||(xo={}));var zo;(function(e){e[e.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",e[e.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",e[e.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"})(zo||(zo={}));function $a(e){return Object.assign(Object.assign({readUnknownFields:!0,recursionLimit:100},e),{depth:0})}function dt(e,t,n){const o=oe(e);return wn(e).read(o,new rt(t),$a(n),t.byteLength),o}var qa=new WeakMap;function wn(e){let t=qa.get(e);return t===void 0&&(t=rl(e)),t}function rl(e){const t=String(e),n=new Map,o={read:il(t,n),readGroup:sl(t,n)};qa.set(e,o);for(const a of e.fields)n.set(a.number,er(a));return o}function il(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);const s=o.pos+r,l=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<s;){const[c,m]=o.tag(),p=t.get(c);if(p===void 0){const f=o.skip(m,c,a.recursionLimit-a.depth);a.readUnknownFields&&l.push({no:c,wireType:m,data:f});continue}p(n,o,a,m)}l.length>0&&(n.$unknown=l),a.depth--}}function sl(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);let s,l;const c=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<o.len&&([s,l]=o.tag(),l!=Q.EndGroup);){const m=t.get(s);if(m===void 0){const p=o.skip(l,s,a.recursionLimit-a.depth);a.readUnknownFields&&c.push({no:s,wireType:l,data:p});continue}m(n,o,a,l)}if(l!=Q.EndGroup||s!==r)throw new Error("invalid end group tag");c.length>0&&(n.$unknown=c),a.depth--}}function ll(e,t,n,o,a){er(n)(e[ie],t,a,o)}function er(e){switch(e.fieldKind){case"scalar":return cl(e);case"enum":return ul(e);case"message":return dl(e);case"list":return ml(e);case"map":return hl(e)}}function cl(e){const t=vt(e.scalar,e.utf8Validation,e.longAsString),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r)=>{a[o]={case:n,value:t(r)}}}return(o,a)=>{o[n]=t(a)}}function ul(e){var t;const n=e.localName,o=(t=e.oneof)===null||t===void 0?void 0:t.localName;if(e.enum.open)return o!==void 0?(i,s)=>{i[o]={case:n,value:s.int32()}}:(i,s)=>{i[n]=s.int32()};const a=e.enum.values,r=e.number;return(i,s,l,c)=>{var m;const p=s.int32();if(a.some(f=>f.number===p))o!==void 0?i[o]={case:n,value:p}:i[n]=p;else if(l.readUnknownFields){const f=[];ki(p,f);const Z=(m=i.$unknown)!==null&&m!==void 0?m:[];Z.push({no:r,wireType:c,data:new Uint8Array(f)}),i.$unknown=Z}}}function dl(e){const t=e.localName,{toMessage:n,toLocal:o}=ge(e),a=tr(e);if(e.oneof){const r=e.oneof.localName;return(i,s,l)=>{const c=i[r],m=n(c.case===t?c.value:void 0);a(m,s,l),i[r]={case:t,value:o(m)}}}return(r,i,s)=>{const l=n(r[t]);a(l,i,s),r[t]=o(l)}}function tr(e){const t=wn(e.message);if(e.delimitedEncoding){const n=e.number;return(o,a,r)=>t.readGroup(o,a,r,n)}return(n,o,a)=>t.read(n,o,a,o.uint32())}function ml(e){const t=e.localName;if(e.listKind=="message"){const{toMessage:i,toLocal:s}=ge(e),l=tr(e);return(c,m,p)=>{const f=i(void 0);l(f,m,p),c[t].push(s(f))}}const n=e.listKind=="enum"?h.INT32:e.scalar,o=e.listKind=="scalar"?e.longAsString:!1,a=vt(n,e.utf8Validation,o),r=n!=h.STRING&&n!=h.BYTES;return(i,s,l,c)=>{const m=i[t];if(c==Q.LengthDelimited&&r){const p=s.uint32()+s.pos;for(;s.pos<p;)m.push(a(s))}else m.push(a(s))}}function hl(e){const t=e.localName,n=vt(e.mapKey,e.utf8Validation,!1),o=fe(e.mapKey,!1);let a,r;switch(e.mapKind){case"scalar":{const i=e.scalar,s=vt(i,e.utf8Validation,!1);if(a=l=>s(l),i==h.BYTES)r=()=>new Uint8Array(0);else{const l=fe(i,!1);r=()=>l}break}case"enum":{const i=e.enum.values[0].number;a=s=>s.int32(),r=()=>i;break}case"message":{const{toMessage:i,toLocal:s}=ge(e),l=wn(e.message).read;a=(c,m,p)=>{const f=i(p);return l(f,c,m,c.uint32()),s(f)},r=()=>s(i(void 0));break}}return(i,s,l)=>{const c=i[t];let m,p;const f=s.uint32(),Z=s.pos+f;for(;s.pos<Z;){const[N]=s.tag();switch(N){case 1:m=n(s);break;case 2:p=a(s,l,p);break}}m===void 0&&(m=o),p===void 0&&(p=r()),ue(c,m,p)}}function vt(e,t,n){switch(e){case h.STRING:return o=>o.string(t);case h.BOOL:return o=>o.bool();case h.DOUBLE:return o=>o.double();case h.FLOAT:return o=>o.float();case h.INT32:return o=>o.int32();case h.INT64:return n?o=>String(o.int64()):o=>o.int64();case h.UINT64:return n?o=>String(o.uint64()):o=>o.uint64();case h.FIXED64:return n?o=>String(o.fixed64()):o=>o.fixed64();case h.BYTES:return o=>o.bytes();case h.FIXED32:return o=>o.fixed32();case h.SFIXED32:return o=>o.sfixed32();case h.SFIXED64:return n?o=>String(o.sfixed64()):o=>o.sfixed64();case h.SINT64:return n?o=>String(o.sint64()):o=>o.sint64();case h.UINT32:return o=>o.uint32();case h.SINT32:return o=>o.sint32()}}function q(e,t){var n;const o=dt(al,Cn(e));return o.messageType.forEach(Bn),o.dependency=(n=t?.map(a=>a.proto.name))!==null&&n!==void 0?n:[],Qa(o,a=>t?.find(r=>r.proto.name===a)).getFile(o.name)}var Ee=q("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),nr=q("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),bl=G(nr,0),gl=2,pl=3,Lo={writeUnknownFields:!0};function Al(e){return e?Object.assign(Object.assign({},Lo),e):Lo}function or(e,t,n){const o=new Fa;return Un(e)(o,Al(n),t),o.finish()}var ar=new WeakMap;function Un(e){let t=ar.get(e);return t===void 0&&(t=Zl(e)),t}function Zl(e){const t=e.typeName,n=e.fields.concat().sort((i,s)=>i.number-s.number),o=n[0],a=[],r=(i,s,l)=>{if(l.$typeName!==t&&o!==void 0)throw new L(o,`cannot use ${o} with message ${l.$typeName}`,"ForeignFieldError");for(let m=0;m<a.length;m++)a[m](i,s,l);const c=l.$unknown;if(c!==void 0&&s.writeUnknownFields)for(let m=0;m<c.length;m++){const{no:p,wireType:f,data:Z}=c[m];i.tag(p,f).raw(Z)}};ar.set(e,r);for(const i of n)a.push(rr(i));return r}function rr(e){switch(e.fieldKind){case"message":case"scalar":case"enum":return fl(e);case"list":return El(e);case"map":return Nl(e)}}function fl(e){const t=Rl(e),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r,i)=>{const s=i[o];s.case===n&&t(a,r,s.value)}}if(e.presence!=gl){const o=e.presence==pl?`cannot encode ${e} to binary: required field not set`:void 0;return(a,r,i)=>{const s=i[n];if(s!==void 0&&Object.prototype.hasOwnProperty.call(i,n))t(a,r,s);else if(o!==void 0)throw new Error(o)}}if(e.fieldKind=="enum"){const o=e.enum.values[0].number;return(a,r,i)=>{const s=i[n];s!==o&&t(a,r,s)}}switch(e.scalar){case h.BOOL:return(o,a,r)=>{const i=r[n];i!==!1&&t(o,a,i)};case h.STRING:return(o,a,r)=>{const i=r[n];i!==""&&t(o,a,i)};case h.BYTES:return(o,a,r)=>{const i=r[n];(!(i instanceof Uint8Array)||i.byteLength>0)&&t(o,a,i)};case h.DOUBLE:case h.FLOAT:return(o,a,r)=>{const i=r[n];Object.is(i,0)||t(o,a,i)};default:return(o,a,r)=>{const i=r[n];i!=0&&t(o,a,i)}}}function Rl(e){switch(e.fieldKind){case"message":{const{toMessage:t}=ge(e),n=ir(e);return(o,a,r)=>{n(o,a,t(r))}}case"scalar":case"enum":{const t=e.fieldKind=="enum"?h.INT32:e.scalar,n=e.number,o=Ut(t),a=wt(t,e.parent.typeName,e.name);return(r,i,s)=>{r.tag(n,o),a(r,s)}}}}function El(e){const t=e.localName,n=e.number;switch(e.listKind){case"message":{const{toMessage:o}=ge(e),a=ir(e);return(r,i,s)=>{const l=s[t];for(let c=0;c<l.length;c++)a(r,i,o(l[c]))}}case"scalar":case"enum":{const o=e.listKind=="enum"?h.INT32:e.scalar,a=wt(o,e.parent.typeName,e.name);if(e.packed)return(i,s,l)=>{const c=l[t];if(c.length!=0){i.tag(n,Q.LengthDelimited).fork();for(let m=0;m<c.length;m++)a(i,c[m]);i.join()}};const r=Ut(o);return(i,s,l)=>{const c=l[t];for(let m=0;m<c.length;m++)i.tag(n,r),a(i,c[m])}}}}function Nl(e){const t=e.localName,n=e.number,o=Gl(e);if(e.mapKind=="message"){const{toMessage:s}=ge(e),l=Un(e.message);return(c,m,p)=>{const f=p[t],Z=Object.keys(f);for(let N=0;N<Z.length;N++){const V=Z[N];c.tag(n,Q.LengthDelimited).fork(),o(c,V),c.tag(2,Q.LengthDelimited).fork(),l(c,m,s(f[V])),c.join(),c.join()}}}const a=e.mapKind=="enum"?h.INT32:e.scalar,r=Ut(a),i=wt(a,e.parent.typeName,e.name);return(s,l,c)=>{const m=c[t],p=Object.keys(m);for(let f=0;f<p.length;f++){const Z=p[f];s.tag(n,Q.LengthDelimited).fork(),o(s,Z),s.tag(2,r),i(s,m[Z]),s.join()}}}function Gl(e){const t=Ut(e.mapKey),n=wt(e.mapKey,e.parent.typeName,e.name),o=Vl(e.mapKey);return(a,r)=>{a.tag(1,t),n(a,o(r))}}function Vl(e){switch(e){case h.STRING:return t=>t;case h.BOOL:return t=>t==="true"?!0:t==="false"?!1:t;case h.UINT64:case h.FIXED64:return t=>{try{return z.uParse(t)}catch{return t}};case h.INT64:case h.SFIXED64:case h.SINT64:return t=>{try{return z.parse(t)}catch{return t}};default:return t=>{const n=Number.parseInt(t);return Number.isFinite(n)?n:t}}}function wt(e,t,n){const o=Wl(e);return(a,r)=>{try{o(a,r)}catch(i){throw i instanceof Error?new Error(`cannot encode field ${t}.${n} to binary: ${i.message}`):i}}}function Wl(e){switch(e){case h.STRING:return(t,n)=>t.string(n);case h.BOOL:return(t,n)=>t.bool(n);case h.DOUBLE:return(t,n)=>t.double(n);case h.FLOAT:return(t,n)=>t.float(n);case h.INT32:return(t,n)=>t.int32(n);case h.INT64:return(t,n)=>t.int64(n);case h.UINT64:return(t,n)=>t.uint64(n);case h.FIXED64:return(t,n)=>t.fixed64(n);case h.BYTES:return(t,n)=>t.bytes(n);case h.FIXED32:return(t,n)=>t.fixed32(n);case h.SFIXED32:return(t,n)=>t.sfixed32(n);case h.SFIXED64:return(t,n)=>t.sfixed64(n);case h.SINT64:return(t,n)=>t.sint64(n);case h.UINT32:return(t,n)=>t.uint32(n);case h.SINT32:return(t,n)=>t.sint32(n)}}function Sl(e,t,n,o){rr(o)(e,t,n[ie])}function ir(e){const t=e.number,n=Un(e.message);return e.delimitedEncoding?(o,a,r)=>{o.tag(t,Q.StartGroup),n(o,a,r),o.tag(t,Q.EndGroup)}:(o,a,r)=>{o.tag(t,Q.LengthDelimited).fork(),n(o,a,r),o.join()}}function Ut(e){switch(e){case h.BYTES:case h.STRING:return Q.LengthDelimited;case h.DOUBLE:case h.FIXED64:case h.SFIXED64:return Q.Bit64;case h.FIXED32:case h.SFIXED32:case h.FLOAT:return Q.Bit32;default:return Q.Varint}}function vl(e,t,n){let o=!1;return n||(n=oe(bl),o=!0),n.value=or(e,t),n.typeUrl=Il(t.$typeName),o?n:void 0}function Xl(e,t){return e.typeUrl===""?!1:(typeof t=="string"?t:t.typeName)===sr(e.typeUrl)}function Yl(e,t){if(e.typeUrl==="")return;const n=t.kind=="message"?t:t.getMessage(sr(e.typeUrl));if(!(!n||!Xl(e,n)))return dt(n,e.value)}function Il(e){return`type.googleapis.com/${e}`}function sr(e){const t=e.lastIndexOf("/"),n=t>=0?e.substring(t+1):e;if(!n.length)throw new Error(`invalid type url: ${e}`);return n}var Ne=q("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),yl=G(Ne,0),lr=G(Ne,1),Cl=G(Ne,2),dn;(function(e){e[e.NULL_VALUE=0]="NULL_VALUE"})(dn||(dn={}));var cr=q("Ch5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIcCgtEb3VibGVWYWx1ZRINCgV2YWx1ZRgBIAEoASIbCgpGbG9hdFZhbHVlEg0KBXZhbHVlGAEgASgCIhsKCkludDY0VmFsdWUSDQoFdmFsdWUYASABKAMiHAoLVUludDY0VmFsdWUSDQoFdmFsdWUYASABKAQiGwoKSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoBSIcCgtVSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoDSIaCglCb29sVmFsdWUSDQoFdmFsdWUYASABKAgiHAoLU3RyaW5nVmFsdWUSDQoFdmFsdWUYASABKAkiGwoKQnl0ZXNWYWx1ZRINCgV2YWx1ZRgBIAEoDEKDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi93cmFwcGVyc3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM");function Bl(e,t,n){ur(t,e);const o=wl(e.$unknown,t),[a,r,i]=Jt(t),s=$a(n);for(const l of o)ll(a,new rt(l.data),r,l.wireType,s);return i()}function Fl(e,t,n){var o;ur(t,e);const a=((o=e.$unknown)!==null&&o!==void 0?o:[]).filter(c=>c.no!==t.number),[r,i]=Jt(t,n),s=new Fa;Sl(s,{writeUnknownFields:!0},r,i);const l=new rt(s.finish());for(;l.pos<l.len;){const[c,m]=l.tag(),p=l.skip(m,c);a.push({no:c,wireType:m,data:p})}e.$unknown=a}function wl(e,t){if(e===void 0)return[];if(t.fieldKind==="enum"||t.fieldKind==="scalar"){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.number)return[e[n]];return[]}return e.filter(n=>n.no===t.number)}function Jt(e,t){const n=e.typeName,o=Object.assign(Object.assign({},e),{kind:"field",parent:e.extendee,localName:n}),a=Object.assign(Object.assign({},e.extendee),{fields:[o],members:[o],oneofs:[]}),r=oe(a,t!==void 0?{[n]:t}:void 0);return[hs(a,r),o,()=>{const i=r[n];if(i===void 0){const s=e.message;return Ke(s)?fe(s.fields[0].scalar,s.fields[0].longAsString):oe(s)}return i}]}function ur(e,t){if(e.extendee.typeName!=t.$typeName)throw new Error(`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}var dr=Date.parse("0001-01-01T00:00:00Z"),mr=Date.parse("9999-12-31T23:59:59Z");var Ul=3,Jl=2,jo={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function kl(e){return e?Object.assign(Object.assign({},jo),e):jo}function hr(e,t,n){return Xt(e)(kl(n),t)}function Kl(e,t,n){var o;const a=hr(e,t,n);return JSON.stringify(a,null,(o=n?.prettySpaces)!==null&&o!==void 0?o:0)}var mn=new WeakMap;function Xt(e){let t=mn.get(e);return t===void 0&&(t=xl(e)),t}function xl(e){const t=e.typeName,n=Ll(e);if(n!==void 0){const s=e.fields[0],l=(c,m)=>{if(m.$typeName!==t&&s!==void 0)throw new L(s,`cannot use ${s} with message ${m.$typeName}`,"ForeignFieldError");return n(c,m)};return mn.set(e,l),l}const o=e.fields.concat().sort((s,l)=>s.number-l.number),a=o[0],r=[],i=(s,l)=>{if(l.$typeName!==t&&a!==void 0)throw new L(a,`cannot use ${a} with message ${l.$typeName}`,"ForeignFieldError");const c={};for(let m=0;m<r.length;m++)r[m](s,l,c);return s.registry&&Ol(c,s,s.registry,l,e),c};mn.set(e,i);for(const s of o){const l=jl(s);r.push(s.jsonName==="__proto__"||s.name==="__proto__"?zl(l):l)}return i}function zl(e){return(t,n,o)=>{const a=Object.create(null);e(t,n,a);for(const r of Object.keys(a))ue(o,r,a[r])}}function Ll(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n)=>Dl(n,t);case"google.protobuf.Timestamp":return(t,n)=>$l(n);case"google.protobuf.Duration":return(t,n)=>_l(n);case"google.protobuf.FieldMask":return(t,n)=>Pl(n);case"google.protobuf.Struct":return(t,n)=>Ar(n);case"google.protobuf.Value":return(t,n)=>Kn(n);case"google.protobuf.ListValue":return(t,n)=>Zr(n);default:if(Ke(e)){const t=e.fields[0],n=t.localName,o=fe(t.scalar,!1),a=kt(t);return(r,i)=>{const s=i[n];return a(r,s===void 0?o:s)}}return}}function jl(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return Tl(e);case"list":case"map":{const t=e.fieldKind=="list"?gr(e):pr(e),n=e.name,o=e.jsonName,a=e.localName;return(r,i,s)=>{const l=t(r,i[a]);l!==void 0&&(s[r.useProtoFieldName?n:o]=l)}}}}function Tl(e){const t=br(e),n=e.name,o=e.jsonName,a=e.localName;if(e.oneof){const r=e.oneof.localName;return(i,s,l)=>{const c=s[r];c.case===a&&(l[i.useProtoFieldName?n:o]=t(i,c.value))}}if(e.presence!=Jl){const r=e.presence==Ul?`cannot encode ${e} to JSON: required field not set`:void 0;return(i,s,l)=>{const c=s[a];if(c!==void 0&&Object.prototype.hasOwnProperty.call(s,a))l[i.useProtoFieldName?n:o]=t(i,c);else if(r!==void 0)throw new Error(r)}}if(e.fieldKind=="enum"){const r=e.enum.values[0].number;return(i,s,l)=>{const c=s[a];(c!==r||i.alwaysEmitImplicit)&&(l[i.useProtoFieldName?n:o]=t(i,c))}}switch(e.scalar){case h.BOOL:return(r,i,s)=>{const l=i[a];(l!==!1||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case h.STRING:return(r,i,s)=>{const l=i[a];(l!==""||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case h.BYTES:return(r,i,s)=>{const l=i[a];(!(l instanceof Uint8Array)||l.byteLength>0||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case h.DOUBLE:case h.FLOAT:return(r,i,s)=>{const l=i[a];(!Object.is(l,0)||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};default:return(r,i,s)=>{const l=i[a];(l!=0||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))}}}function Hl(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return br(e);case"list":return gr(e);case"map":return pr(e)}}function br(e){switch(e.fieldKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function Jn(e){const{toMessage:t}=ge(e),n=Xt(e.message);return(o,a)=>n(o,t(a))}function gr(e){const t=Ql(e);return(n,o)=>{const a=o;if(a.length==0&&!n.alwaysEmitImplicit)return;const r=[];for(let i=0;i<a.length;i++)r.push(t(n,a[i]));return r}}function Ql(e){switch(e.listKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function pr(e){const t=Ml(e);return(n,o)=>{const a=o,r=Object.keys(a);if(r.length==0&&!n.alwaysEmitImplicit)return;const i={};for(let s=0;s<r.length;s++){const l=r[s];ue(i,l,t(n,a[l]))}return i}}function Ml(e){switch(e.mapKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function kn(e){const t=e.enum;return t.typeName=="google.protobuf.NullValue"?(n,o)=>{if(typeof o!="number")throw To(t,o);return null}:(n,o)=>{var a,r;if(typeof o!="number")throw To(t,o);return n.enumAsInteger?o:(r=(a=t.value[o])===null||a===void 0?void 0:a.jsonName)!==null&&r!==void 0?r:o}}function To(e,t){return new Error(`cannot encode ${e} to JSON: expected number, got ${D(t)}`)}function kt(e){switch(e.scalar){case h.INT32:case h.SFIXED32:case h.SINT32:case h.FIXED32:case h.UINT32:return(t,n)=>{if(typeof n!="number")throw je(e,n);return n};case h.FLOAT:case h.DOUBLE:return(t,n)=>{if(typeof n!="number")throw je(e,n);return Number.isNaN(n)?"NaN":n===Number.POSITIVE_INFINITY?"Infinity":n===Number.NEGATIVE_INFINITY?"-Infinity":n};case h.STRING:return(t,n)=>{if(typeof n!="string")throw je(e,n);return n};case h.BOOL:return(t,n)=>{if(typeof n!="boolean")throw je(e,n);return n};case h.UINT64:case h.FIXED64:case h.INT64:case h.SFIXED64:case h.SINT64:return(t,n)=>{if(typeof n=="bigint"||typeof n=="string"||typeof n=="number"&&Number.isInteger(n))return n.toString();throw je(e,n)};case h.BYTES:return(t,n)=>{if(n instanceof Uint8Array)return fs(n);throw je(e,n)}}}function je(e,t){var n;return new Error(`cannot encode ${e} to JSON: ${(n=Ja(e,t))===null||n===void 0?void 0:n.message}`)}function Ol(e,t,n,o,a){const r=o.$unknown;if(r===void 0)return;const i=new Set;for(let s=0;s<r.length;s++){const{no:l}=r[s];if(!i.has(l)){i.add(l);const c=n.getExtensionFor(a,l);if(!c)continue;const[m,p]=Jt(c,Bl(o,c)),f=m[ie],Z=Hl(p)(t,f[p.localName]);Z!==void 0&&(e[c.jsonName]=Z)}}}function Dl(e,t){if(e.typeUrl==="")return{};const{registry:n}=t;let o,a;if(n&&(o=Yl(e,n),o&&(a=n.getMessage(o.$typeName))),!a||!o)throw new Error(`cannot encode message ${e.$typeName} to JSON: "${e.typeUrl}" is not in the type registry`);const r=Sa(a)?{value:Xt(a)(t,o)}:Xt(a)(t,o);return r["@type"]=e.typeUrl,r}function _l(e){const t=Number(e.seconds),n=e.nanos;if(t>315576e6||t<-315576e6)throw new Error(`cannot encode message ${e.$typeName} to JSON: value out of range`);if(t>0&&n<0||t<0&&n>0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos sign must match seconds sign`);let o=e.seconds.toString();if(n!==0){let a=Math.abs(n).toString();a="0".repeat(9-a.length)+a,a.substring(3)==="000000"?a=a.substring(0,3):a.substring(6)==="000"&&(a=a.substring(0,6)),o+="."+a,n<0&&t==0&&(o="-"+o)}return o+"s"}function Pl(e){return e.paths.map(t=>{if(Ha(Oe(t))!==t)throw new Error(`cannot encode message ${e.$typeName} to JSON: lowerCamelCase of path name "${t}" is irreversible`);return Oe(t)}).join(",")}function Ar(e){const t={},n=Object.keys(e.fields);for(let o=0;o<n.length;o++){const a=n[o];ue(t,a,Kn(e.fields[a]))}return t}function Kn(e){switch(e.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(e.kind.value))throw new Error(`${e.$typeName} cannot be NaN or Infinity`);return e.kind.value;case"boolValue":return e.kind.value;case"stringValue":return e.kind.value;case"structValue":return Ar(e.kind.value);case"listValue":return Zr(e.kind.value);default:throw new Error(`${e.$typeName} must have a value`)}}function Zr(e){return e.values.map(Kn)}function $l(e){const t=Number(e.seconds)*1e3;if(t<dr||t>mr)throw new Error(`cannot encode message ${e.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(e.nanos<0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be negative`);if(e.nanos>999999999)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(e.nanos>0){const o=(e.nanos+1e9).toString().substring(1);o.substring(3)==="000000"?n="."+o.substring(0,3)+"Z":o.substring(6)==="000"?n="."+o.substring(0,6)+"Z":n="."+o+"Z"}return new Date(t).toISOString().replace(".000Z",n)}var ql=2;function ec(e){return Object.assign(Object.assign({ignoreUnknownFields:!1,recursionLimit:100},e),{depth:0})}function tc(e,t,n){return fr(e,mc(t,e.typeName),n)}function fr(e,t,n){const o=oe(e);return nc(e,o,t,n),o}function nc(e,t,n,o){try{De(e)(t,n,ec(o))}catch(a){throw as(a)?new Error(`cannot decode ${a.field()} from JSON: ${a.message}`,{cause:a}):a}}var hn=new WeakMap;function De(e){let t=hn.get(e);return t===void 0&&(t=oc(e)),t}function oc(e){const t=String(e),n=ac(e);if(n!==void 0){const i=(s,l,c)=>{if(++c.depth>c.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${c.recursionLimit} reached`);n(s,l,c),c.depth--};return hn.set(e,i),i}const o=e.typeName,a=new Map,r=(i,s,l)=>{var c;if(++l.depth>l.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${l.recursionLimit} reached`);if(s==null||Array.isArray(s)||typeof s!="object")throw new Error(`cannot decode ${t} from JSON: ${D(s)}`);const m=new Map,p=new Set,f=Object.keys(s);for(let Z=0;Z<f.length;Z++){const N=f[Z],V=s[N],C=a.get(N);if(C!==void 0){const J=C.field;if(p.has(J))throw new L(J,"set multiple times");if(p.add(J),C.oneofScalarNullSkip&&V===null)continue;if(C.oneof){const u=m.get(C.oneof);if(u!==void 0)throw new L(C.oneof,`oneof set multiple times by ${u.name} and ${J.name}`);m.set(C.oneof,J)}C.read(i,V,l)}else{const J=N.startsWith("[")&&N.endsWith("]")?(c=l.registry)===null||c===void 0?void 0:c.getExtension(N.substring(1,N.length-1)):void 0;if(J?.extendee.typeName==o){const[u,d,g]=Jt(J);Ho(d)(u[ie],V,l),Fl(i,J,g())}if(J===void 0&&!l.ignoreUnknownFields)throw new Error(`cannot decode ${t} from JSON: key "${N}" is unknown`)}}l.depth--};hn.set(e,r);for(const i of e.fields){const s={read:Ho(i),field:i,oneof:i.oneof,oneofScalarNullSkip:i.oneof!==void 0&&i.fieldKind=="scalar"};a.set(i.name,s).set(i.jsonName,s)}return r}function ac(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n,o)=>bc(t,n,o);case"google.protobuf.Timestamp":return(t,n)=>gc(t,n);case"google.protobuf.Duration":return(t,n)=>pc(t,n);case"google.protobuf.FieldMask":return(t,n)=>Ac(t,n);case"google.protobuf.Struct":return(t,n,o)=>Gr(t,n,o);case"google.protobuf.Value":return(t,n,o)=>Tn(t,n,o);case"google.protobuf.ListValue":return(t,n,o)=>Vr(t,n,o);default:if(Ke(e)){const t=e.fields[0],n=t.localName,o=t.scalar,a=t.longAsString,r=Er(t);return(i,s)=>{s===null?i[n]=fe(o,a):i[n]=r(s)}}return}}function Ho(e){switch(e.fieldKind){case"scalar":return rc(e);case"enum":return ic(e);case"message":return sc(e);case"list":return lc(e);case"map":return uc(e)}}function rc(e){const t=Er(e),n=e.localName;if(e.oneof){const a=e.oneof.localName;return(r,i)=>{r[a]={case:n,value:t(i)}}}const o=Rr(e);return(a,r)=>{r===null?o(a):a[n]=t(r)}}function Rr(e){const t=e.localName;if(e.presence!=ql)return a=>{delete a[t]};if(e.fieldKind=="enum"){const a=e.enum.values[0].number;return r=>{r[t]=a}}const n=e.scalar,o=e.longAsString;return a=>{a[t]=fe(n,o)}}function ic(e){const t=xn(e.enum),n=zn(e.enum),o=e.localName,a=e.enum.typeName!="google.protobuf.NullValue";if(e.oneof){const i=e.oneof.localName;return(s,l,c)=>{if(l===null&&a){s[i].case===o&&(s[i]={case:void 0});return}const m=t(l,c.ignoreUnknownFields);if(m===_e)return;const p=n(m);if(p!==!0)throw new L(e,ce(e,m,p));s[i]={case:o,value:m}}}const r=Rr(e);return(i,s,l)=>{if(s===null&&a){r(i);return}const c=t(s,l.ignoreUnknownFields);if(c===_e)return;const m=n(c);if(m!==!0)throw new L(e,ce(e,c,m));i[o]=c}}function sc(e){const t=e.localName,{toMessage:n,toLocal:o}=ge(e),a=De(e.message),r=e.message.typeName!="google.protobuf.Value";if(e.oneof){const i=e.oneof.localName;return(s,l,c)=>{const m=s[i];if(l===null&&r){m.case===t&&(s[i]={case:void 0});return}const p=n(m.case===t?m.value:void 0);a(p,l,c),s[i]={case:t,value:o(p)}}}return(i,s,l)=>{if(s===null&&r){delete i[t];return}const c=n(i[t]);a(c,s,l),i[t]=o(c)}}function lc(e){const t=e.localName,n=cc(e);return(o,a,r)=>{if(a===null)return;if(!Array.isArray(a))throw new L(e,"expected Array, got "+D(a));const i=o[t];for(let s=0;s<a.length;s++){const l=n(a[s],r,i.length);l!==_e&&i.push(l)}}}function cc(e){switch(e.listKind){case"scalar":{const t=Ln(e),n=ye(e.scalar),o=jn(e);return(a,r,i)=>{if(a===null)throw new L(e,"list item must not be null");const s=t(a),l=n(s);if(l!==!0)throw new L(e,`list item #${i+1}: ${ce(e,s,l)}`);return o(s)}}case"enum":{const t=xn(e.enum),n=zn(e.enum),o=e.enum.typeName!="google.protobuf.NullValue";return(a,r,i)=>{if(a===null&&o)throw new L(e,"list item must not be null");const s=t(a,r.ignoreUnknownFields);if(s===_e)return s;const l=n(s);if(l!==!0)throw new L(e,`list item #${i+1}: ${ce(e,s,l)}`);return s}}case"message":{const{toMessage:t,toLocal:n}=ge(e),o=De(e.message),a=e.message.typeName!="google.protobuf.Value";return(r,i)=>{if(r===null&&a)throw new L(e,"list item must not be null");const s=t(void 0);return o(s,r,i),n(s)}}}}function uc(e){const t=e.localName,n=e.mapKey,o=dc(n),a=ye(n);let r,i,s=c=>c,l=!0;switch(e.mapKind){case"scalar":r=Ln(e),i=ye(e.scalar),s=jn(e);break;case"enum":{const c=xn(e.enum);r=(m,p)=>c(m,p.ignoreUnknownFields),i=zn(e.enum),l=e.enum.typeName!="google.protobuf.NullValue";break}case"message":{const{toMessage:c,toLocal:m}=ge(e),p=De(e.message);l=e.message.typeName!="google.protobuf.Value",r=(f,Z)=>{const N=c(void 0);return p(N,f,Z),m(N)};break}}return(c,m,p)=>{if(m===null)return;if(typeof m!="object"||Array.isArray(m))throw new L(e,"expected object, got "+D(m));const f=c[t],Z=new Set,N=Object.keys(m);for(let V=0;V<N.length;V++){const C=N[V],J=m[C],u=o(C);if(Z.has(u))throw new L(e,`duplicate map key "${C}"`);if(Z.add(u),J===null&&l)throw new L(e,"map value must not be null");const d=r(J,p);if(d===_e)continue;const g=a(u);if(g!==!0)throw new L(e,`invalid map key: ${ce({scalar:n},u,g)}`);if(i!==void 0){const b=i(d);if(b!==!0)throw new L(e,`map entry ${D(u)}: ${ce(e,d,b)}`)}ue(f,u,s(d))}}}var _e=Symbol();function xn(e){const t=e.values[0].number,n=new Map;for(const o of e.values)n.set(o.jsonName,o.number);for(const o of e.values)n.set(o.name,o.number);return(o,a)=>{if(o===null)return t;switch(typeof o){case"number":if(Number.isInteger(o))return o;break;case"string":{const r=n.get(o);if(r!==void 0)return r;if(a)return _e;break}}throw new Error(`cannot decode ${e} from JSON: ${D(o)}`)}}function zn(e){if(e.open)return ye(h.INT32);const t=e.values;return n=>t.some(o=>o.number===n)}function Er(e){const t=Ln(e),n=ye(e.scalar),o=jn(e);return a=>{const r=t(a),i=n(r);if(i!==!0)throw new L(e,ce(e,r,i));return o(r)}}function Ln(e){switch(e.scalar){case h.DOUBLE:case h.FLOAT:return t=>{if(t==="NaN")return NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof t=="number"){if(Number.isNaN(t))throw new L(e,"unexpected NaN number");if(!Number.isFinite(t))throw new L(e,"unexpected infinite number");return t}if(typeof t=="string"){if(t===""||t.trim().length!==t.length)return t;const n=Number(t);return Number.isFinite(n)?n:t}return t};case h.INT32:case h.FIXED32:case h.SFIXED32:case h.SINT32:case h.UINT32:return Nr;case h.BYTES:return t=>{if(typeof t=="string"){if(t==="")return new Uint8Array(0);try{return Cn(t)}catch(n){throw new L(e,n instanceof Error?n.message:String(n))}}return t};default:return t=>t}}function jn(e){const t=e.fieldKind!=="map"&&e.longAsString;switch(e.scalar){case h.INT64:case h.SFIXED64:case h.SINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.parse(n):n;case h.FIXED64:case h.UINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.uParse(n):n;default:return n=>n}}function dc(e){switch(e){case h.BOOL:return t=>{switch(t){case"true":return!0;case"false":return!1}return t};case h.INT32:case h.FIXED32:case h.UINT32:case h.SFIXED32:case h.SINT32:return Nr;case h.INT64:case h.SINT64:case h.SFIXED64:case h.UINT64:case h.FIXED64:return t=>/^-?0+$/.test(t)?"0":t.replace(/^(-?)0+(?=\d)/,"$1");default:return t=>t}}function Nr(e){if(typeof e=="string"){if(e===""||e.trim().length!==e.length)return e;const t=Number(e);return Number.isNaN(t)?e:t}return e}function mc(e,t){let n;try{n=JSON.parse(e)}catch(o){const a=o instanceof Error?o.message:String(o);throw new Error(`cannot decode message ${t} from JSON: ${a}`,{cause:o})}return hc(e,t),n}function hc(e,t){const n=[];let o=!1,a=0;for(;a<e.length;)switch(e[a]){case"{":n.push(new Set),o=!0,a++;break;case"[":n.push(null),o=!1,a++;break;case"}":case"]":n.pop(),o=!1,a++;break;case",":o=n[n.length-1]!=null,a++;break;case":":o=!1,a++;break;case'"':{const r=a++;let i=!1;for(;a<e.length;){if(e[a]=="\\"){i=!0,a+=2;continue}if(e[a]=='"')break;a++}const s=a++,l=n[n.length-1];if(o&&l){const c=i?JSON.parse(e.substring(r,s+1)):e.substring(r+1,s);if(l.has(c))throw new Error(`cannot decode message ${t} from JSON: duplicate object key "${c}"`);l.add(c)}o=!1;break}default:a++;break}}function bc(e,t,n){var o;if(t===null||Array.isArray(t)||typeof t!="object")throw new Error(`cannot decode message ${e.$typeName} from JSON: expected object but got ${D(t)}`);if(Object.keys(t).length==0)return;const a=t["@type"];if(typeof a!="string"||a=="")throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is empty`);const r=a.includes("/")?a.substring(a.lastIndexOf("/")+1):a;if(!r.length)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is invalid`);const i=(o=n.registry)===null||o===void 0?void 0:o.getMessage(r);if(!i)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${a} is not in the type registry`);const s=oe(i);if(Sa(i)&&Object.prototype.hasOwnProperty.call(t,"value"))De(i)(s,t.value,n);else{const l={};for(const c of Object.keys(t))c!=="@type"&&ue(l,c,t[c]);De(i)(s,l,n)}vl(i,s,e)}function gc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);const o=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(o))throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);if(o<dr||o>mr)throw new Error(`cannot decode message ${e.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);e.seconds=z.parse(o/1e3),e.nanos=0,n[7]&&(e.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}function pc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(n===null)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const o=Number(n[1]);if(o>315576e6||o<-315576e6)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);if(e.seconds=z.parse(o),typeof n[2]!="string")return;const a=n[2]+"0".repeat(9-n[2].length);e.nanos=parseInt(a),(o<0||Object.is(o,-0))&&(e.nanos=-e.nanos)}function Ac(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);t!==""&&(e.paths=t.split(",").map(n=>{if(n.includes("_"))throw new Error(`cannot decode message ${e.$typeName} from JSON: path names must be lowerCamelCase`);return Ha(n)}))}function Gr(e,t,n){if(typeof t!="object"||t==null||Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);const o=Object.keys(t);for(let a=0;a<o.length;a++){const r=o[a],i=oe(lr);Tn(i,t[r],n),ue(e.fields,r,i)}}function Tn(e,t,n){if(++n.depth>n.recursionLimit)throw new Error(`cannot decode ${e.$typeName} from JSON: maximum recursion depth of ${n.recursionLimit} reached`);switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(t===null)e.kind={case:"nullValue",value:dn.NULL_VALUE};else if(Array.isArray(t)){const o=oe(Cl);Vr(o,t,n),e.kind={case:"listValue",value:o}}else{const o=oe(yl);Gr(o,t,n),e.kind={case:"structValue",value:o}}break;default:throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`)}return n.depth--,e}function Vr(e,t,n){if(!Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);for(let o=0;o<t.length;o++){const a=oe(lr);Tn(a,t[o],n),e.values.push(a)}}function Qo(e){const t=R[e];return typeof t!="string"?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var S=class He extends Error{constructor(t,n=R.Unknown,o,a,r){super(Zc(t,n)),this.name="ConnectError",this.isWireError=!1,Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=t,this.code=n,this.metadata=new Headers(o??{}),this.details=a??[],this.cause=r}static from(t,n=R.Unknown){return t instanceof He?t:t instanceof Error?t.name=="AbortError"||t.name=="TimeoutError"?new He(t.message,R.Canceled):new He(t.message,n,void 0,void 0,t):new He(String(t),n,void 0,void 0,t)}static[Symbol.hasInstance](t){return t instanceof Error?Object.getPrototypeOf(t)===He.prototype?!0:t.name==="ConnectError"&&"code"in t&&typeof t.code=="number"&&"metadata"in t&&"details"in t&&Array.isArray(t.details)&&"rawMessage"in t&&typeof t.rawMessage=="string"&&"cause"in t:!1}findDetails(t){const n=t.kind==="message"?{getMessage:a=>a===t.typeName?t:void 0}:t,o=[];for(const a of this.details){if("desc"in a){n.getMessage(a.desc.typeName)&&o.push(oe(a.desc,a.value));continue}const r=n.getMessage(a.type);if(r)try{o.push(dt(r,a.value))}catch{}}return o}};function Zc(e,t){return e.length?`[${Qo(t)}] ${e}`:`[${Qo(t)}]`}function fc(e,t,n){try{const o=Cn(e);return t?dt(t,o,n):o}catch(o){throw S.from(o,R.DataLoss)}}function Rc(e,t){const n={};for(const o of e.methods){const a=t(o);a!=null&&(n[o.localName]=a)}return n}var Gt=4294967295,Dt=Gt,Ec=1024;function Nc(e,t,n){if(t!=null||(t=Dt),e!=null||(e=Gt),n!=null||(n=Ec),t<1||t>Dt)throw new S(`writeMaxBytes ${t} must be >= 1 and <= ${Dt}`,R.Internal);if(e<1||e>Gt)throw new S(`readMaxBytes ${e} must be >= 1 and <= ${Gt}`,R.Internal);return{readMaxBytes:e,writeMaxBytes:t,compressMinBytes:n}}function Gc(e,t){if(t>e)throw new S(`message size ${t} is larger than configured writeMaxBytes ${e}`,R.ResourceExhausted)}function Wr(e,t,n=!1){if(t>e){let o=`message size is larger than configured readMaxBytes ${e}`;throw n&&(o=`message size ${t} is larger than configured readMaxBytes ${e}`),new S(o,R.ResourceExhausted)}}function Vc(e){return new Wc(e)}var Wc=class{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,t)=>e+t.byteLength,0)}decode(e){this.buf.push(e);const t=[];for(;;){let n=this.pop();if(!n)break;t.push(n)}return t}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){const e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;const e=this.headerView.getUint8(0),t=this.headerView.getUint32(1);return Wr(this.readMaxBytes,t,!0),{flags:e,data:new Uint8Array(t)}}cons(e){const t=e.byteLength;if(this.byteLength<t)return!1;let n=0;for(;n<t;){const o=this.buf.shift();o.byteLength>t-n?(e.set(o.subarray(0,t-n),n),this.buf.unshift(o.subarray(t-n)),n+=t-n):(e.set(o,n),n+=o.byteLength)}return!0}};async function Sc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1)throw new S("invalid envelope, already compressed",R.Internal);return t&&a.byteLength>=n&&(a=await t.compress(a),o=o|1),{data:a,flags:o}}async function vc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1){if(!t)throw new S("received compressed envelope, but do not know how to decompress",R.Internal);a=await t.decompress(a,n),o=o^1}return{data:a,flags:o}}function Xc(e,t){const n=new Uint8Array(t.length+5);n.set(t,5);const o=new DataView(n.buffer,n.byteOffset,n.byteLength);return o.setUint8(0,e),o.setUint32(1,t.length),n}var Re=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},k=function(e){return this instanceof k?(this.v=e,this):new k(e)},be=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(N){return Promise.resolve(N).then(Z,p)}}function s(Z,N){o[Z]&&(a[Z]=function(V){return new Promise(function(C,J){r.push([Z,V,C,J])>1||l(Z,V)})},N&&(a[Z]=N(a[Z])))}function l(Z,N){try{c(o[Z](N))}catch(V){f(r[0][3],V)}}function c(Z){Z.value instanceof k?Promise.resolve(Z.value.v).then(m,p):f(r[0][2],Z)}function m(Z){l("next",Z)}function p(Z){l("throw",Z)}function f(Z,N){Z(N),r.shift(),r.length&&l(r[0][0],r[0][1])}},Yc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:k(e[a](i)),done:!1}:r?r(i):i}:r}};function Ic(e,...t){const[n,o,a]=yc(t);let r=e,i;return a?.propagateDownStreamError===!0&&(r=i=Sr(r)),r=Vt(r,...n,{propagateDownStreamError:!1}),o(r).catch(s=>i?i.abort(s).then(()=>Promise.reject(s)):Promise.reject(s))}function yc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,e.pop(),t]}function Vt(e,...t){return be(this,arguments,function*(){var o;const[a,r]=Cc(t);let i;const s=e[Symbol.asyncIterator]();let l={[Symbol.asyncIterator](){return s}};r?.propagateDownStreamError===!0&&(l=i=Sr(l));for(const m of a)l=m(l);const c=l[Symbol.asyncIterator]();try{for(;;){const m=yield k(c.next());if(m.done===!0)break;if(!i){yield yield k(m.value);continue}try{yield yield k(m.value)}catch(p){throw yield k(i.abort(p)),p}}}finally{r?.propagateDownStreamError===!0&&((o=s.return)===null||o===void 0||o.call(s).catch(()=>{}))}})}function Cc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,t]}function Mo(e,t,n){return t===void 0||n===void 0?function(o){return be(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Re(o),m;m=yield k(c.next()),a=m.done,!a;l=!0){s=m.value,l=!1;const p=s;yield yield k({flags:0,data:e.serialize(p)})}}catch(p){r={error:p}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return be(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Re(o),m;m=yield k(c.next()),a=m.done,!a;l=!0){s=m.value,l=!1;const p=s;let f,Z=0;p.end?(Z=Z|t,f=n.serialize(p.value)):f=e.serialize(p.value),yield yield k({flags:Z,data:f})}}catch(p){r={error:p}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Oo(e,t,n){return n&&t!==void 0?function(o){return be(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Re(o),m;m=yield k(c.next()),a=m.done,!a;l=!0){s=m.value,l=!1;const{flags:p,data:f}=s;(p&t)===t?yield yield k({value:n.parse(f),end:!0}):yield yield k({value:e.parse(f),end:!1})}}catch(p){r={error:p}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return be(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Re(o),m;m=yield k(c.next()),a=m.done,!a;l=!0){s=m.value,l=!1;const{flags:p,data:f}=s;if(t!==void 0&&(p&t)===t){if(n===null)throw new S("unexpected end flag",R.InvalidArgument);continue}yield yield k(e.parse(f))}}catch(p){r={error:p}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Do(e,t){return function(n){return be(this,arguments,function*(){var o,a,r,i;try{for(var s=!0,l=Re(n),c;c=yield k(l.next()),o=c.done,!o;s=!0)i=c.value,s=!1,yield yield k(yield k(Sc(i,e,t)))}catch(m){a={error:m}}finally{try{!s&&!o&&(r=l.return)&&(yield k(r.call(l)))}finally{if(a)throw a.error}}})}}function _o(e,t){return function(n){return be(this,arguments,function*(){var o,a,r,i;try{for(var s=!0,l=Re(n),c;c=yield k(l.next()),o=c.done,!o;s=!0)i=c.value,s=!1,yield yield k(yield k(vc(i,e,t)))}catch(m){a={error:m}}finally{try{!s&&!o&&(r=l.return)&&(yield k(r.call(l)))}finally{if(a)throw a.error}}})}}function Po(){return function(e){return be(this,arguments,function*(){var t,n,o,a;try{for(var r=!0,i=Re(e),s;s=yield k(i.next()),t=s.done,!t;r=!0){a=s.value,r=!1;const{flags:l,data:c}=a;yield yield k(Xc(l,c))}}catch(l){n={error:l}}finally{try{!r&&!t&&(o=i.return)&&(yield k(o.call(i)))}finally{if(n)throw n.error}}})}}function $o(e){return function(t){return be(this,arguments,function*(){var n,o,a,r;const i=Vc(e);try{for(var s=!0,l=Re(t),c;c=yield k(l.next()),n=c.done,!n;s=!0){r=c.value,s=!1;const m=r;for(const p of i.decode(m))yield yield k(p)}}catch(m){o={error:m}}finally{try{!s&&!n&&(a=l.return)&&(yield k(a.call(l)))}finally{if(o)throw o.error}}if(i.byteLength>0)throw new S("protocol error: incomplete envelope",R.InvalidArgument)})}}function Sr(e){const t=e[Symbol.asyncIterator]();if(t.throw===void 0)throw new Error("AsyncIterable does not implement throw");const n=t;let o,a,r={next(){return a=n.next().finally(()=>{a=void 0}),a},throw(s){return n.throw(s)}};t.return!==void 0&&(r=Object.assign(Object.assign({},r),{return(s){return n.return(s)}}));let i=!1;return{abort(s){if(o)return o.state;const l=()=>n.throw(s).then(c=>c.done===!0?"completed":"caught",()=>"rethrown");return a?(o={reason:s,state:a.then(l,l)},o.state):(o={reason:s,state:l()},o.state)},[Symbol.asyncIterator](){if(i)throw new Error("AsyncIterable cannot be re-used");return i=!0,r}}}function vr(e){return be(this,arguments,function*(){yield k(yield*Yc(Re(e)))})}var Xr=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},Pe=function(e){return this instanceof Pe?(this.v=e,this):new Pe(e)},Bc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:Pe(e[a](i)),done:!1}:r?r(i):i}:r}},Fc=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(N){return Promise.resolve(N).then(Z,p)}}function s(Z,N){o[Z]&&(a[Z]=function(V){return new Promise(function(C,J){r.push([Z,V,C,J])>1||l(Z,V)})},N&&(a[Z]=N(a[Z])))}function l(Z,N){try{c(o[Z](N))}catch(V){f(r[0][3],V)}}function c(Z){Z.value instanceof Pe?Promise.resolve(Z.value.v).then(m,p):f(r[0][2],Z)}function m(Z){l("next",Z)}function p(Z){l("throw",Z)}function f(Z,N){Z(N),r.shift(),r.length&&l(r[0][0],r[0][1])}};function Ge(e,t){return Rc(e,n=>{switch(n.methodKind){case"unary":return wc(t,n);case"server_streaming":return Uc(t,n);case"client_streaming":return Jc(t,n);case"bidi_streaming":return kc(t,n);default:return null}})}function wc(e,t){return async(n,o)=>{var a,r;const i=await e.unary(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);return(a=o?.onHeader)===null||a===void 0||a.call(o,i.header),(r=o?.onTrailer)===null||r===void 0||r.call(o,i.trailer),i.message}}function Uc(e,t){return(n,o)=>Yr(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,vr([n]),o?.contextValues),o)}function Jc(e,t){return async(n,o)=>{var a,r,i,s,l,c;const m=await e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);(l=o?.onHeader)===null||l===void 0||l.call(o,m.header);let p,f=0;try{for(var Z=!0,N=Xr(m.message),V;V=await N.next(),a=V.done,!a;Z=!0)s=V.value,Z=!1,p=s,f++}catch(C){r={error:C}}finally{try{!Z&&!a&&(i=N.return)&&await i.call(N)}finally{if(r)throw r.error}}if(!p)throw new S("protocol error: missing response message",R.Unimplemented);if(f>1)throw new S("protocol error: received extra messages for client streaming method",R.Unimplemented);return(c=o?.onTrailer)===null||c===void 0||c.call(o,m.trailer),p}}function kc(e,t){return(n,o)=>Yr(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues),o)}function Yr(e,t){const n=(function(){return Fc(this,arguments,function*(){var o,a;const r=yield Pe(e);(o=t?.onHeader)===null||o===void 0||o.call(t,r.header),yield Pe(yield*Bc(Xr(r.message))),(a=t?.onTrailer)===null||a===void 0||a.call(t,r.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function Kc(...e){const t=new AbortController,n=e.filter(a=>a!==void 0).concat(t.signal);for(const a of n){if(a.aborted){o.apply(a);break}a.addEventListener("abort",o)}function o(){t.signal.aborted||t.abort(lt(this));for(const a of n)a.removeEventListener("abort",o)}return t}function xc(e){const t=new AbortController,n=()=>{t.abort(new S("the operation timed out",R.DeadlineExceeded))};let o;return e!==void 0&&(e<=0?n():o=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(o)}}function lt(e){if(!e.aborted)return;if(e.reason!==void 0)return e.reason;const t=new Error("This operation was aborted");return t.name="AbortError",t}function qo(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}function zc(e){const t=new Headers,n=new TextDecoder().decode(e).split(`\r
23
+ `),this.outputHelp({error:!0}));const g=d||{},h=g.exitCode||1,A=g.code||"commander.error";this._exit(h,A,u)}_parseOptionsEnv(){this.options.forEach(u=>{if(u.envVar&&u.envVar in r.env){const d=u.attributeName();(this.getOptionValue(d)===void 0||["default","config","env"].includes(this.getOptionValueSource(d)))&&(u.required||u.optional?this.emit(`optionEnv:${u.name()}`,r.env[u.envVar]):this.emit(`optionEnv:${u.name()}`))}})}_parseOptionsImplied(){const u=new R(this.options),d=g=>this.getOptionValue(g)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(g));this.options.filter(g=>g.implied!==void 0&&d(g.attributeName())&&u.valueFromOption(this.getOptionValue(g.attributeName()),g)).forEach(g=>{Object.keys(g.implied).filter(h=>!d(h)).forEach(h=>{this.setOptionValueWithSource(h,g.implied[h],"implied")})})}missingArgument(u){const d=`error: missing required argument '${u}'`;this.error(d,{code:"commander.missingArgument"})}optionMissingArgument(u){const d=`error: option '${u.flags}' argument missing`;this.error(d,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(u){const d=`error: required option '${u.flags}' not specified`;this.error(d,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(u,d){const g=E=>{const v=E.attributeName(),w=this.getOptionValue(v),H=this.options.find(x=>x.negate&&v===x.attributeName()),W=this.options.find(x=>!x.negate&&v===x.attributeName());return H&&(H.presetArg===void 0&&w===!1||H.presetArg!==void 0&&w===H.presetArg)?H:W||E},h=E=>{const v=g(E),w=v.attributeName();return this.getOptionValueSource(w)==="env"?`environment variable '${v.envVar}'`:`option '${v.flags}'`},A=`error: ${h(u)} cannot be used with ${h(d)}`;this.error(A,{code:"commander.conflictingOption"})}unknownOption(u){if(this._allowUnknownOption)return;let d="";if(u.startsWith("--")&&this._showSuggestionAfterError){let h=[],A=this;do{const E=A.createHelp().visibleOptions(A).filter(v=>v.long).map(v=>v.long);h=h.concat(E),A=A.parent}while(A&&!A._enablePositionalOptions);d=Z(u,h)}const g=`error: unknown option '${u}'${d}`;this.error(g,{code:"commander.unknownOption"})}_excessArguments(u){if(this._allowExcessArguments)return;const d=this.registeredArguments.length,g=d===1?"":"s",h=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${d} argument${g} but got ${u.length}.`;this.error(h,{code:"commander.excessArguments"})}unknownCommand(){const u=this.args[0];let d="";if(this._showSuggestionAfterError){const h=[];this.createHelp().visibleCommands(this).forEach(A=>{h.push(A.name()),A.alias()&&h.push(A.alias())}),d=Z(u,h)}const g=`error: unknown command '${u}'${d}`;this.error(g,{code:"commander.unknownCommand"})}version(u,d,g){if(u===void 0)return this._version;this._version=u,d=d||"-V, --version",g=g||"output the version number";const h=this.createOption(d,g);return this._versionOptionName=h.attributeName(),this._registerOption(h),this.on("option:"+h.name(),()=>{this._outputConfiguration.writeOut(`${u}
24
+ `),this._exit(0,"commander.version",u)}),this}description(u,d){return u===void 0&&d===void 0?this._description:(this._description=u,d&&(this._argsDescription=d),this)}summary(u){return u===void 0?this._summary:(this._summary=u,this)}alias(u){if(u===void 0)return this._aliases[0];let d=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(d=this.commands[this.commands.length-1]),u===d._name)throw new Error("Command alias can't be the same as its name");const g=this.parent?._findCommand(u);if(g){const h=[g.name()].concat(g.aliases()).join("|");throw new Error(`cannot add alias '${u}' to command '${this.name()}' as already have command '${h}'`)}return d._aliases.push(u),this}aliases(u){return u===void 0?this._aliases:(u.forEach(d=>this.alias(d)),this)}usage(u){if(u===void 0){if(this._usage)return this._usage;const d=this.registeredArguments.map(g=>l(g));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?d:[]).join(" ")}return this._usage=u,this}name(u){return u===void 0?this._name:(this._name=u,this)}helpGroup(u){return u===void 0?this._helpGroupHeading??"":(this._helpGroupHeading=u,this)}commandsGroup(u){return u===void 0?this._defaultCommandGroup??"":(this._defaultCommandGroup=u,this)}optionsGroup(u){return u===void 0?this._defaultOptionGroup??"":(this._defaultOptionGroup=u,this)}_initOptionGroup(u){this._defaultOptionGroup&&!u.helpGroupHeading&&u.helpGroup(this._defaultOptionGroup)}_initCommandGroup(u){this._defaultCommandGroup&&!u.helpGroup()&&u.helpGroup(this._defaultCommandGroup)}nameFromFilename(u){return this._name=o.basename(u,o.extname(u)),this}executableDir(u){return u===void 0?this._executableDir:(this._executableDir=u,this)}helpInformation(u){const d=this.createHelp(),g=this._getOutputContext(u);d.prepareContext({error:g.error,helpWidth:g.helpWidth,outputHasColors:g.hasColors});const h=d.formatHelp(this,d);return g.hasColors?h:this._outputConfiguration.stripColor(h)}_getOutputContext(u){u=u||{};const d=!!u.error;let g,h,A;return d?(g=v=>this._outputConfiguration.writeErr(v),h=this._outputConfiguration.getErrHasColors(),A=this._outputConfiguration.getErrHelpWidth()):(g=v=>this._outputConfiguration.writeOut(v),h=this._outputConfiguration.getOutHasColors(),A=this._outputConfiguration.getOutHelpWidth()),{error:d,write:v=>(h||(v=this._outputConfiguration.stripColor(v)),g(v)),hasColors:h,helpWidth:A}}outputHelp(u){let d;typeof u=="function"&&(d=u,u=void 0);const g=this._getOutputContext(u),h={error:g.error,write:g.write,command:this};this._getCommandAndAncestors().reverse().forEach(E=>E.emit("beforeAllHelp",h)),this.emit("beforeHelp",h);let A=this.helpInformation({error:g.error});if(d&&(A=d(A),typeof A!="string"&&!Buffer.isBuffer(A)))throw new Error("outputHelp callback must return a string or a Buffer");g.write(A),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",h),this._getCommandAndAncestors().forEach(E=>E.emit("afterAllHelp",h))}helpOption(u,d){return typeof u=="boolean"?(u?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(u??"-h, --help",d??"display help for command"),(u||d)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(u){return this._helpOption=u,this._initOptionGroup(u),this}help(u){this.outputHelp(u);let d=Number(r.exitCode??0);d===0&&u&&typeof u!="function"&&u.error&&(d=1),this._exit(d,"commander.help","(outputHelp)")}addHelpText(u,d){const g=["beforeAll","before","after","afterAll"];if(!g.includes(u))throw new Error(`Unexpected value for position to addHelpText.
25
+ Expecting one of '${g.join("', '")}'`);const h=`${u}Help`;return this.on(h,A=>{let E;typeof d=="function"?E=d({error:A.error,command:A.command}):E=d,E&&A.write(`${E}
26
+ `)}),this}_outputHelpIfRequested(u){const d=this._getHelpOption();d&&u.find(g=>d.is(g))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function G(J){return J.map(u=>{if(!u.startsWith("--inspect"))return u;let d,g="127.0.0.1",h="9229",A;return(A=u.match(/^(--inspect(-brk)?)$/))!==null?d=A[1]:(A=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(d=A[1],/^\d+$/.test(A[3])?h=A[3]:g=A[3]):(A=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(d=A[1],g=A[3],h=A[4]),d&&h!=="0"?`${d}=${g}:${parseInt(h)+1}`:u})}function B(){if(r.env.NO_COLOR||r.env.FORCE_COLOR==="0"||r.env.FORCE_COLOR==="false")return!1;if(r.env.FORCE_COLOR||r.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=V,e.useColor=B})),yi=ke((e=>{var{Argument:t}=Zn(),{Command:n}=Ii(),{CommanderError:o,InvalidArgumentError:a}=Ct(),{Help:r}=fa(),{Option:i}=Ea();e.program=new n,e.createCommand=l=>new n(l),e.createOption=(l,s)=>new i(l,s),e.createArgument=(l,s)=>new t(l,s),e.Command=n,e.Option=i,e.Argument=t,e.Help=r,e.CommanderError=o,e.InvalidArgumentError=a,e.InvalidOptionArgumentError=a})),Bi=ut(yi(),1),{program:kh,createCommand:xh,createArgument:Kh,createOption:zh,CommanderError:Ci,InvalidArgumentError:Lh,InvalidOptionArgumentError:jh,Command:Fi,Argument:Hh,Option:Ye,Help:Th}=Bi.default;function I(e){return`${JSON.stringify(e,null,2)}
27
+ `}var f;(function(e){e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"})(f||(f={}));function Rn(e,t){return e!==null&&typeof e=="object"&&"$typeName"in e&&typeof e.$typeName=="string"?t===void 0?!0:t.typeName===e.$typeName:!1}var b;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(b||(b={}));function Ui(){const e=this.buf;let t=this.pos,n=0,o=0;for(let r=0;r<28;r+=7){const i=e[t++];if(n|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}const a=e[t++];if(n|=(a&15)<<28,o=(a&112)>>4,(a&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}for(let r=3;r<=31;r+=7){const i=e[t++];if(o|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}throw new Error("invalid varint")}var Et=4294967296;function no(e){const t=e[0]==="-";t&&(e=e.slice(1));const n=1e6;let o=0,a=0;function r(i,l){const s=Number(e.slice(i,l));a*=n,o=o*n+s,o>=Et&&(a=a+(o/Et|0),o=o%Et)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),t?Ga(o,a):fn(o,a)}function wi(e,t){let n=fn(e,t);const o=n.hi&2147483648;o&&(n=Ga(n.lo,n.hi));const a=Na(n.lo,n.hi);return o?"-"+a:a}function Na(e,t){if({lo:e,hi:t}=Ji(e,t),t<=2097151)return String(Et*t+e);const n=e&16777215,o=(e>>>24|t<<8)&16777215,a=t>>16&65535;let r=n+o*6777216+a*6710656,i=o+a*8147497,l=a*2;const s=1e7;return r>=s&&(i+=Math.floor(r/s),r%=s),i>=s&&(l+=Math.floor(i/s),i%=s),l.toString()+oo(i)+oo(r)}function Ji(e,t){return{lo:e>>>0,hi:t>>>0}}function fn(e,t){return{lo:e|0,hi:t|0}}function Ga(e,t){return t=~t,e?e=~e+1:t+=1,fn(e,t)}var oo=e=>{const t=String(e);return"0000000".slice(t.length)+t};function ki(e,t){if(e>>>0<128){t.push(e);return}if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function xi(){let e=this.buf[this.pos++];if((e&128)===0)return this.assertBounds(),e;let t=e&127;if(e=this.buf[this.pos++],t|=(e&127)<<7,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,(e&128)===0)return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;(e&128)!==0&&n<10;n++)e=this.buf[this.pos++];if((e&128)!==0)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var z=Ki();function Ki(){const e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(globalThis.Deno||globalThis.Bun||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>n||i<t)throw new Error(`invalid int64: ${r}`);return i},uParse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>a||i<o)throw new Error(`invalid uint64: ${r}`);return i},enc(r){return e.setBigInt64(0,this.parse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(r){return e.setBigInt64(0,this.uParse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigInt64(0,!0)},uDec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(t){return typeof t!="string"&&(t=t.toString()),ao(t),t},uParse(t){return typeof t!="string"&&(t=t.toString()),ro(t),t},enc(t){return typeof t!="string"&&(t=t.toString()),ao(t),no(t)},uEnc(t){return typeof t!="string"&&(t=t.toString()),ro(t),no(t)},dec(t,n){return wi(t,n)},uDec(t,n){return Na(t,n)}}}function ao(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function ro(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}function Re(e,t){switch(e){case b.STRING:return"";case b.BOOL:return!1;case b.DOUBLE:case b.FLOAT:return 0;case b.INT64:case b.UINT64:case b.SFIXED64:case b.FIXED64:case b.SINT64:return t?"0":z.zero;case b.BYTES:return new Uint8Array(0);default:return 0}}function zi(e,t){switch(e){case b.BOOL:return t===!1;case b.STRING:return t==="";case b.BYTES:return t instanceof Uint8Array&&!t.byteLength;case b.DOUBLE:case b.FLOAT:return Object.is(t,0);default:return t==0}}var Wa=2,ie=Symbol.for("reflect unsafe local");function Li(e,t){const n=e[t.localName].case;return n===void 0?n:t.fields.find(o=>o.localName===n)}function ji(e,t){const n=t.localName;if(t.oneof)return e[t.oneof.localName].case===n;if(t.presence!=Wa)return e[n]!==void 0&&Object.prototype.hasOwnProperty.call(e,n);switch(t.fieldKind){case"list":return e[n].length>0;case"map":return Object.keys(e[n]).length>0;case"scalar":return!zi(t.scalar,e[n]);case"enum":return e[n]!==t.enum.values[0].number}throw new Error("message field with implicit presence")}function at(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==void 0}function Hi(e,t){if(t.oneof){const n=e[t.oneof.localName];return n.case===t.localName?n.value:void 0}return e[t.localName]}function Ti(e,t,n){t.oneof?e[t.oneof.localName]={case:t.localName,value:n}:e[t.localName]=n}function ue(e,t,n){t==="__proto__"?Object.defineProperty(e,"__proto__",{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function Qi(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function Mi(e,t){const n=t.localName;if(t.oneof){const o=t.oneof.localName;e[o].case===n&&(e[o]={case:void 0})}else if(t.presence!=Wa)delete e[n];else switch(t.fieldKind){case"map":e[n]={};break;case"list":e[n]=[];break;case"enum":e[n]=t.enum.values[0].number;break;case"scalar":e[n]=Re(t.scalar,t.longAsString);break}}function Ie(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function En(e,t){var n,o,a,r;if(Ie(e)&&ie in e&&"add"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,l=e.field();return i.listKind==l.listKind&&i.scalar===l.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=l.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=l.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Vn(e,t){var n,o,a,r;if(Ie(e)&&ie in e&&"has"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,l=e.field();return i.mapKey===l.mapKey&&i.mapKind==l.mapKind&&i.scalar===l.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=l.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=l.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Nn(e,t){return Ie(e)&&ie in e&&"desc"in e&&Ie(e.desc)&&e.desc.kind==="message"&&(t===void 0||e.desc.typeName==t.typeName)}function Oi(e){return va(e.$typeName)}function xe(e){const t=e.fields[0];return va(e.typeName)&&t!==void 0&&t.fieldKind=="scalar"&&t.name=="value"&&t.number==1}function Sa(e){switch(e.typeName){case"google.protobuf.Any":case"google.protobuf.Timestamp":case"google.protobuf.Duration":case"google.protobuf.FieldMask":case"google.protobuf.Struct":case"google.protobuf.Value":case"google.protobuf.ListValue":return!0;default:return xe(e)}}var Di=new Set(["google.protobuf.DoubleValue","google.protobuf.FloatValue","google.protobuf.Int64Value","google.protobuf.UInt64Value","google.protobuf.Int32Value","google.protobuf.UInt32Value","google.protobuf.BoolValue","google.protobuf.StringValue","google.protobuf.BytesValue"]);function va(e){return Di.has(e)}var _i=999,Pi=998,Xa=2;function oe(e,t){return Rn(t,e)?t:Ya(e)(t)}var io=new WeakMap;function Ya(e){let t=io.get(e);return t===void 0&&(t=$i(e),io.set(e,t)),t}var an=0,Ia=1,ya=2,Ba=3;function $i(e){const t=e.typeName,{properties:n,prototype:o}=qi(e);return a=>{let r;o!==void 0?(r=Object.create(o),r.$typeName=t):r={$typeName:t};for(let i=0;i<n.length;i++){const l=n[i],s=l.name,c=a?.[s];switch(l.kind){case an:c!=null?r[s]=l.convert!==void 0?l.convert(c):c:l.constant!==void 0&&(r[s]=l.constant);break;case Ia:r[s]=l.convert!==void 0&&Array.isArray(c)?c.map(l.convert):c??[];break;case ya:if(l.convert===void 0||!Ie(c))r[s]=c??{};else{const m={},p=Object.keys(c);for(let R=0;R<p.length;R++)ue(m,p[R],l.convert(c[p[R]]));r[s]=m}break;case Ba:{const m=c;if(m?.case!=null){const p=l.convert.get(m.case);if(p!==void 0){r[s]={case:m.case,value:p(m.value)};break}}r[s]={case:void 0};break}}}return r}}function qi(e){var t,n;const o=[],a={},r=tl(e);for(const i of e.members){const l=i.localName;if(i.kind=="oneof"){o.push({name:l,kind:Ba,constant:void 0,convert:el(i)});continue}switch(i.fieldKind){case"message":o.push({name:l,kind:an,constant:void 0,convert:Vt(i)});break;case"list":o.push({name:l,kind:Ia,constant:void 0,convert:i.listKind=="message"?(t=Vt(i))!==null&&t!==void 0?t:(s=>s):i.scalar==b.BYTES?nt:void 0});break;case"map":o.push({name:l,kind:ya,constant:void 0,convert:i.mapKind=="message"?(n=Vt(i))!==null&&n!==void 0?n:(s=>s):i.scalar==b.BYTES?nt:void 0});break;default:{const s=nl(i);o.push({name:l,kind:an,constant:i.presence==Xa?s:void 0,convert:i.fieldKind=="scalar"&&i.scalar==b.BYTES?nt:void 0}),r&&(a[l]=s);break}}}return{properties:o,prototype:r?a:void 0}}function el(e){const t=new Map;for(const n of e.fields){let o;n.fieldKind=="message"?o=Vt(n):n.fieldKind=="scalar"&&n.scalar==b.BYTES&&(o=nt),t.set(n.localName,o??(a=>a))}return t}function Vt(e){if(e.fieldKind=="message"&&!e.oneof&&xe(e.message))return e.message.fields[0].scalar==b.BYTES?nt:void 0;if(e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!=="google.protobuf.Value")return;const t=e.message;let n;return o=>!Ie(o)||Rn(o,t)?o:(n!=null||(n=Ya(t)),n(o))}function nt(e){return Array.isArray(e)?new Uint8Array(e):e}function tl(e){switch(e.file.edition){case _i:return!1;case Pi:return!0;default:return e.fields.some(t=>t.presence!=Xa&&t.fieldKind!="message"&&!t.oneof)}}function nl(e){const t=e.getDefaultValue();return t!==void 0?e.fieldKind=="scalar"&&e.longAsString?t.toString():t:e.fieldKind=="scalar"?Re(e.scalar,e.longAsString):e.enum.values[0].number}var ol=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"],L=class extends Error{constructor(e,t,n="FieldValueInvalidError"){super(t),this.name=n,this.field=()=>e}};function al(e){return e instanceof Error&&ol.includes(e.name)&&"field"in e&&typeof e.field=="function"}var rn;function rl(e){var t;rn=Object.assign(Object.assign({},e),{encodeUtf8Into:(t=e.encodeUtf8Into)!==null&&t!==void 0?t:Ca(e.encodeUtf8.bind(e))})}function Gn(){if(!rn){const e=globalThis;if(!e.TextEncoder||!e.TextDecoder)throw new Error("encoding API missing: install TextEncoder and TextDecoder on globalThis");const t=new e.TextEncoder,n=new e.TextDecoder;let o;const a={encodeUtf8(i){return t.encode(i)},decodeUtf8(i,l){return l?(o||(o=new e.TextDecoder("utf-8",{fatal:!0})),o.decode(i)):n.decode(i)},checkUtf8(i){try{return!0}catch{return!1}}};t.encodeInto&&(a.encodeUtf8Into=t.encodeInto.bind(t));const r=String.prototype.isWellFormed;r&&(a.checkUtf8=i=>r.call(i)),rl(a)}return rn}function Ca(e){return(t,n)=>{const o=e(t);return n.set(o),{written:o.byteLength}}}var Q;(function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"})(Q||(Q={}));var Fa=class{constructor(e){this.stackPos=[],this.encodeUtf8Into=e?Ca(e):Gn().encodeUtf8Into,this.buffer=Ua,this.viewCache=ll,this.pos=0}ensureCapacity(e){const t=this.pos+e;if(t>this.buffer.length){let n=this.buffer.length||il;for(;n<t;)n*=2;const o=new Uint8Array(n);this.pos>0&&o.set(this.buffer),this.buffer=o}}view(){const e=this.buffer,t=this.viewCache;if(t.byteLength===e.byteLength)return t;const n=new DataView(e.buffer);return this.viewCache=n,n}finish(){const e=this.buffer.slice(0,this.pos);return this.pos=0,this.stackPos=[],e}fork(){return this.stackPos.push(this.pos),this.ensureCapacity(qe),this.buffer[this.pos++]=0,this}join(){const e=this.stackPos.pop();if(e===void 0)throw new Error("invalid state, fork stack empty");const t=this.pos-e-qe,n=Ht(t);return n>qe&&(this.ensureCapacity(n-qe),this.buffer.copyWithin(e+n,e+qe,this.pos)),this.pos=e,this.uint32(t),this.pos+=t,this}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.ensureCapacity(e.length),this.buffer.set(e,this.pos),this.pos+=e.length,this}uint32(e){if(lo(e),this.ensureCapacity(5),e<128)return this.buffer[this.pos++]=e,this;for(;e>127;)this.buffer[this.pos++]=e&127|128,e>>>=7;return this.buffer[this.pos++]=e,this}int32(e){if(Tt(e),e>=0)return this.uint32(e);this.ensureCapacity(10);for(let t=0;t<9;t++)this.buffer[this.pos++]=e&127|128,e>>=7;return this.buffer[this.pos++]=1,this}bool(e){return this.ensureCapacity(1),this.buffer[this.pos++]=e?1:0,this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){typeof e!="string"&&(e=String(e));const t=e.length;if(t<=wa){this.ensureCapacity(t+1);const l=this.buffer;let s=this.pos;l[s++]=t;let c=0;for(;c<t;c++){const m=e.charCodeAt(c);if(m>127)break;l[s++]=m}if(c==t)return this.pos=s,this}this.ensureCapacity(t*3+5);const n=Ht(t),o=this.buffer,a=this.pos,{written:r}=this.encodeUtf8Into(e,o.subarray(a+n)),i=Ht(r);return i!=n&&o.copyWithin(a+i,a+n,a+n+r),this.uint32(r),this.pos+=r,this}float(e){return sl(e),this.ensureCapacity(4),this.view().setFloat32(this.pos,e,!0),this.pos+=4,this}double(e){return this.ensureCapacity(8),this.view().setFloat64(this.pos,e,!0),this.pos+=8,this}fixed32(e){return lo(e),this.ensureCapacity(4),this.view().setUint32(this.pos,e,!0),this.pos+=4,this}sfixed32(e){return Tt(e),this.ensureCapacity(4),this.view().setInt32(this.pos,e,!0),this.pos+=4,this}sint32(e){return Tt(e),this.uint32((e<<1^e>>31)>>>0)}sfixed64(e){const t=z.enc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}fixed64(e){const t=z.uEnc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}int64(e){const t=z.enc(e);return this.writeVarint64(t.lo,t.hi)}sint64(e){const t=z.enc(e),n=t.hi>>31,o=t.lo<<1^n,a=(t.hi<<1|t.lo>>>31)^n;return this.writeVarint64(o,a)}uint64(e){const t=z.uEnc(e);return this.writeVarint64(t.lo,t.hi)}writeVarint64(e,t){this.ensureCapacity(10);const n=this.buffer;let o=this.pos;for(let i=0;i<28;i=i+7){const l=e>>>i,s=!(!(l>>>7)&&t==0);if(n[o++]=(s?l|128:l)&255,!s)return this.pos=o,this}const a=e>>>28&15|(t&7)<<4,r=t>>3!=0;if(n[o++]=(r?a|128:a)&255,!r)return this.pos=o,this;for(let i=3;i<31;i=i+7){const l=t>>>i,s=!!(l>>>7);if(n[o++]=(s?l|128:l)&255,!s)return this.pos=o,this}return n[o++]=t>>>31&1,this.pos=o,this}},il=128,qe=1,Ua=new Uint8Array(0),ll=new DataView(Ua.buffer),wa=32;function Ht(e){return e<128?1:e<16384?2:e<2097152?3:e<268435456?4:5}var rt=class{constructor(e,t=Gn().decodeUtf8){this.decodeUtf8=t,this.varint64Lo=0,this.varint64Hi=0,this.varint64=Ui,this.uint32=xi,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){const e=this.pos,t=this.uint32(),n=this.pos-e;if(n>5||n==5&&this.buf[this.pos-1]>15)throw new Error("illegal tag: varint overflows uint32");const o=t>>>3,a=t&7;if(o<=0||a>5)throw new Error("illegal tag: field no "+o+" wire type "+a);return[o,a]}skip(e,t,n=100){let o=this.pos;switch(e){case Q.Varint:for(;this.buf[this.pos++]&128;);break;case Q.Bit64:this.pos+=4;case Q.Bit32:this.pos+=4;break;case Q.LengthDelimited:let a=this.uint32();this.pos+=a;break;case Q.StartGroup:if(n<=0)throw new Error("maximum recursion depth reached");for(;;){const[r,i]=this.tag();if(i===Q.EndGroup){if(t!==void 0&&r!==t)throw new Error("invalid end group tag");break}this.skip(i,r,n-1)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(o,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return this.varint64(),z.dec(this.varint64Lo,this.varint64Hi)}uint64(){return this.varint64(),z.uDec(this.varint64Lo,this.varint64Hi)}sint64(){this.varint64();let e=this.varint64Lo,t=this.varint64Hi,n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,z.dec(e,t)}bool(){const e=this.buf[this.pos];return e<128?(this.pos++,e!==0):(this.varint64(),this.varint64Lo!==0||this.varint64Hi!==0)}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return z.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return z.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(e){const t=this.bytes(),n=t.length;if(n<=wa){const o=new Array(n);for(let a=0;a<n;a++){const r=t[a];if(r>127)return this.decodeUtf8(t,e);o[a]=r}return String.fromCharCode.apply(String,o)}return this.decodeUtf8(t,e)}};function Tt(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw new Error("invalid int32: "+e)}function lo(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid uint32: "+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw new Error("invalid uint32: "+e)}function sl(e){if(typeof e=="string"){const t=e;if(e=Number(e),Number.isNaN(e)&&t!=="NaN")throw new Error("invalid float32: "+t)}else if(typeof e!="number")throw new Error("invalid float32: "+typeof e);if(!Number.isFinite(Math.fround(e))&&Number.isFinite(e))throw new Error("invalid float32: "+e)}function Ja(e,t){const n=e.fieldKind=="list"?En(t,e):e.fieldKind=="map"?Vn(t,e):Wn(e,t);if(n===!0)return;let o;switch(e.fieldKind){case"list":o=`expected ${xa(e)}, got ${D(t)}`;break;case"map":o=`expected ${Ka(e)}, got ${D(t)}`;break;default:o=ce(e,t,n)}return new L(e,o)}function so(e,t,n){const o=Wn(e,n);if(o!==!0)return new L(e,`list item #${t+1}: ${ce(e,n,o)}`)}function cl(e,t,n){const o=ye(e.mapKey)(t);if(o!==!0)return new L(e,`invalid map key: ${ce({scalar:e.mapKey},t,o)}`);const a=Wn(e,n);if(a!==!0)return new L(e,`map entry ${D(t)}: ${ce(e,n,a)}`)}function Wn(e,t){return e.scalar!==void 0?ye(e.scalar)(t):e.enum!==void 0?e.enum.open?ye(b.INT32)(t):e.enum.values.some(n=>n.number===t):Nn(t,e.message)}function ye(e){switch(e){case b.DOUBLE:return t=>typeof t=="number";case b.FLOAT:return t=>typeof t!="number"?!1:!Number.isFinite(Math.fround(t))&&Number.isFinite(t)?`${t.toFixed()} out of range`:!0;case b.INT32:case b.SFIXED32:case b.SINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>2147483647||t<-2147483648?`${t.toFixed()} out of range`:!0;case b.FIXED32:case b.UINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>4294967295||t<0?`${t.toFixed()} out of range`:!0;case b.BOOL:return t=>typeof t=="boolean";case b.STRING:return t=>typeof t!="string"?!1:Gn().checkUtf8(t)||"invalid UTF8";case b.BYTES:return t=>t instanceof Uint8Array;case b.INT64:case b.SFIXED64:case b.SINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.parse(t),!0}catch{return`${t} out of range`}return!1};case b.FIXED64:case b.UINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.uParse(t),!0}catch{return`${t} out of range`}return!1}}}function ce(e,t,n){return n=typeof n=="string"?`: ${n}`:`, got ${D(t)}`,e.scalar!==void 0?`expected ${ul(e.scalar)}`+n:e.enum!==void 0?`expected ${e.enum.toString()}`+n:`expected ${ka(e.message)}`+n}function D(e){switch(typeof e){case"object":return e===null?"null":e instanceof Uint8Array?`Uint8Array(${e.length})`:Array.isArray(e)?`Array(${e.length})`:En(e)?xa(e.field()):Vn(e)?Ka(e.field()):Nn(e)?ka(e.desc):Rn(e)?`message ${e.$typeName}`:"object";case"string":return e.length>30?"string":`"${e.split('"').join('\\"')}"`;case"boolean":return String(e);case"number":return String(e);case"bigint":return String(e)+"n";default:return typeof e}}function ka(e){return`ReflectMessage (${e.typeName})`}function xa(e){switch(e.listKind){case"message":return`ReflectList (${e.message.toString()})`;case"enum":return`ReflectList (${e.enum.toString()})`;case"scalar":return`ReflectList (${b[e.scalar]})`}}function Ka(e){switch(e.mapKind){case"message":return`ReflectMap (${b[e.mapKey]}, ${e.message.toString()})`;case"enum":return`ReflectMap (${b[e.mapKey]}, ${e.enum.toString()})`;case"scalar":return`ReflectMap (${b[e.mapKey]}, ${b[e.scalar]})`}}function ul(e){switch(e){case b.STRING:return"string";case b.BOOL:return"boolean";case b.INT64:case b.SINT64:case b.SFIXED64:return"bigint (int64)";case b.UINT64:case b.FIXED64:return"bigint (uint64)";case b.BYTES:return"Uint8Array";case b.DOUBLE:return"number (float64)";case b.FLOAT:return"number (float32)";case b.FIXED32:case b.UINT32:return"number (uint32)";case b.INT32:case b.SFIXED32:case b.SINT32:return"number (int32)"}}var dl=0;function ge(e){if(ml(e))return{toMessage:n=>Sn(n),toLocal:n=>vn(n)};if(e.fieldKind=="message"&&!e.oneof&&xe(e.message)){const n=e.message,o=n.fields[0].localName;return{toMessage:a=>{const r=oe(n);return a!==void 0&&(r[o]=a),r},toLocal:a=>a[o]}}const t=e.message;return{toMessage:n=>n===void 0?oe(t):n,toLocal:n=>n}}function ml(e){return e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"}function Sn(e){const t={$typeName:"google.protobuf.Struct",fields:{}};if(Ie(e))for(const n of Object.keys(e))ue(t.fields,n,La(e[n]));return t}function vn(e){const t={};for(const n of Object.keys(e.fields))ue(t,n,za(e.fields[n]));return t}function za(e){switch(e.kind.case){case"structValue":return vn(e.kind.value);case"listValue":return e.kind.value.values.map(za);case"nullValue":case void 0:return null;default:return e.kind.value}}function La(e){const t={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof e){case"number":t.kind={case:"numberValue",value:e};break;case"string":t.kind={case:"stringValue",value:e};break;case"boolean":t.kind={case:"boolValue",value:e};break;case"object":if(e===null)t.kind={case:"nullValue",value:dl};else if(Array.isArray(e)){const n={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(e))for(const o of e)n.values.push(La(o));t.kind={case:"listValue",value:n}}else t.kind={case:"structValue",value:Sn(e)};break}return t}function bl(e,t,n=!0){return new ja(e,t,n)}var co=new WeakMap,ja=class{get sortedFields(){const e=co.get(this.desc);if(e)return e;const t=this.desc.fields.concat().sort((n,o)=>n.number-o.number);return co.set(this.desc,t),t}constructor(e,t,n=!0){this.lists=new Map,this.maps=new Map,this.check=n,this.desc=e,this.message=this[ie]=t??oe(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(t=>[t.number,t]))),this._fieldsByNumber.get(e)}oneofCase(e){return et(this.message,e),Li(this.message,e)}isSet(e){return et(this.message,e),ji(this.message,e)}clear(e){et(this.message,e),Mi(this.message,e)}get(e){et(this.message,e);const t=Hi(this.message,e);switch(e.fieldKind){case"list":let n=this.lists.get(e);return(!n||n[ie]!==t)&&this.lists.set(e,n=new hl(e,t,this.check)),n;case"map":let o=this.maps.get(e);return(!o||o[ie]!==t)&&this.maps.set(e,o=new gl(e,t,this.check)),o;case"message":return Yn(e,t,this.check);case"scalar":return t===void 0?Re(e.scalar,!1):In(e,t);case"enum":return t??e.enum.values[0].number}}set(e,t){if(et(this.message,e),this.check){const o=Ja(e,t);if(o)throw o}let n;e.fieldKind=="message"?n=Xn(e,t):Vn(t)||En(t)?n=t[ie]:n=yn(e,t),Ti(this.message,e,n)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}};function et(e,t){if(t.parent.typeName!==e.$typeName)throw new L(t,`cannot use ${t.toString()} with message ${e.$typeName}`,"ForeignFieldError")}var hl=class{field(){return this._field}get size(){return this._arr.length}constructor(e,t,n){this._field=e,this._arr=this[ie]=t,this.check=n}get(e){const t=this._arr[e];return t===void 0?void 0:Qt(this._field,t,this.check)}set(e,t){if(e<0||e>=this._arr.length)throw new L(this._field,`list item #${e+1}: out of range`);if(this.check){const n=so(this._field,e,t);if(n)throw n}this._arr[e]=uo(this._field,t)}add(e){if(this.check){const t=so(this._field,this._arr.length,e);if(t)throw t}this._arr.push(uo(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(const e of this._arr)yield Qt(this._field,e,this.check)}*entries(){for(let e=0;e<this._arr.length;e++)yield[e,Qt(this._field,this._arr[e],this.check)]}},gl=class{constructor(e,t,n=!0){this.obj=this[ie]=t??{},this.check=n,this._field=e}field(){return this._field}set(e,t){if(this.check){const n=cl(this._field,e,t);if(n)throw n}return ue(this.obj,gt(e),pl(this._field,t)),this}delete(e){const t=gt(e),n=Object.prototype.hasOwnProperty.call(this.obj,t);return n&&delete this.obj[t],n}clear(){for(const e of Object.keys(this.obj))delete this.obj[e]}get(e){let t=Qi(this.obj,gt(e));return t!==void 0&&(t=Mt(this._field,t,this.check)),t}has(e){return Object.prototype.hasOwnProperty.call(this.obj,gt(e))}*keys(){for(const e of Object.keys(this.obj))yield mo(e,this._field.mapKey)}*entries(){for(const e of Object.entries(this.obj))yield[mo(e[0],this._field.mapKey),Mt(this._field,e[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(const e of Object.values(this.obj))yield Mt(this._field,e,this.check)}forEach(e,t){for(const n of this.entries())e.call(t,n[1],n[0],this)}};function Xn(e,t){return Nn(t)?Oi(t.message)&&!e.oneof&&e.fieldKind=="message"?t.message.value:t.desc.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"?vn(t.message):t.message:t}function Yn(e,t,n){return t!==void 0&&(xe(e.message)&&!e.oneof&&e.fieldKind=="message"?t={$typeName:e.message.typeName,value:In(e.message.fields[0],t)}:e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"&&Ie(t)&&(t=Sn(t))),new ja(e.message,t,n)}function uo(e,t){return e.listKind=="message"?Xn(e,t):yn(e,t)}function Qt(e,t,n){return e.listKind=="message"?Yn(e,t,n):In(e,t)}function pl(e,t){return e.mapKind=="message"?Xn(e,t):yn(e,t)}function Mt(e,t,n){return e.mapKind=="message"?Yn(e,t,n):t}function gt(e){return typeof e=="string"||typeof e=="number"?e:String(e)}function mo(e,t){switch(t){case b.STRING:return e;case b.INT32:case b.FIXED32:case b.UINT32:case b.SFIXED32:case b.SINT32:{const n=Number.parseInt(e);if(Number.isFinite(n))return n;break}case b.BOOL:switch(e){case"true":return!0;case"false":return!1}break;case b.UINT64:case b.FIXED64:try{return z.uParse(e)}catch{}break;default:try{return z.parse(e)}catch{}break}return e}function In(e,t){switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.parse(t));break;case b.FIXED64:case b.UINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.uParse(t));break}return t}function yn(e,t){switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.parse(t));break;case b.FIXED64:case b.UINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.uParse(t));break}return t}var bo=Uint8Array.prototype.setFromBase64;function Bn(e){const t=e.length;let n=t-(t+3>>2);(t&3)==0&&e[t-1]=="="&&(n-=e[t-2]=="="?2:1);const o=new Uint8Array(n);let a=-1;if(bo)try{const r=bo.call(o,e);r.read==t&&(a=r.written)}catch{}return a<0&&(a=Al(o,e)),a==n?o:o.subarray(0,a)}function Al(e,t){const n=fl();let o=0,a=0,r,i=0;for(let l=0;l<t.length;l++){if(r=n[t.charCodeAt(l)],r===void 0)switch(t[l]){case"=":a=0;case`
28
+ `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(a){case 0:i=r,a=1;break;case 1:e[o++]=i<<2|(r&48)>>4,i=r,a=2;break;case 2:e[o++]=(i&15)<<4|(r&60)>>2,i=r,a=3;break;case 3:e[o++]=(i&3)<<6|r,a=0;break}}if(a==1)throw Error("invalid base64 string");return o}var ho=Uint8Array.prototype.toBase64,Zl={std:{alphabet:"base64",omitPadding:!1},std_raw:{alphabet:"base64",omitPadding:!0},url:{alphabet:"base64url",omitPadding:!0}};function Rl(e,t="std"){if(ho)return ho.call(e,Zl[t]);const n=Ha(t),o=t=="std";let a="",r=0,i,l=0;for(let s=0;s<e.length;s++)switch(i=e[s],r){case 0:a+=n[i>>2],l=(i&3)<<4,r=1;break;case 1:a+=n[l|i>>4],l=(i&15)<<2,r=2;break;case 2:a+=n[l|i>>6],a+=n[i&63],r=0;break}return r&&(a+=n[l],o&&(a+="=",r==1&&(a+="="))),a}var pt,go,Le;function Ha(e){return pt||(pt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),go=pt.slice(0,-2).concat("-","_")),e=="url"?go:pt}function fl(){if(!Le){Le=[];const e=Ha("std");for(let t=0;t<e.length;t++)Le[e[t].charCodeAt(0)]=t;Le[45]=e.indexOf("+"),Le[95]=e.indexOf("/")}return Le}function Oe(e){let t=!1;const n=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);switch(a){case"_":t=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(a),t=!1;break;default:t&&(t=!1,a=a.toUpperCase()),n.push(a);break}}return n.join("")}function Ta(e){return e.replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}var El=new Set(["constructor","toString","toJSON","valueOf"]);function it(e){return El.has(e)?e+"$":e}function Cn(e){for(const t of e.field)at(t,"jsonName")||(t.jsonName=Oe(t.name));e.nestedType.forEach(Cn)}function Vl(e,t){const n=e.values.find(o=>o.name===t);if(!n)throw new Error(`cannot parse ${e} default value: ${t}`);return n.number}function Nl(e,t){switch(e){case b.STRING:return t;case b.BYTES:{const n=Gl(t);if(n===!1)throw new Error(`cannot parse ${b[e]} default value: ${t}`);return n}case b.INT64:case b.SFIXED64:case b.SINT64:return z.parse(t);case b.UINT64:case b.FIXED64:return z.uParse(t);case b.DOUBLE:case b.FLOAT:switch(t){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return NaN;default:return parseFloat(t)}case b.BOOL:return t==="true";case b.INT32:case b.UINT32:case b.SINT32:case b.FIXED32:case b.SFIXED32:return parseInt(t,10)}}function Gl(e){const t=[],n={tail:e,c:"",next(){return this.tail.length==0?!1:(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(o){if(this.tail.length>=o){const a=this.tail.substring(0,o);return this.tail=this.tail.substring(o),a}return!1}};for(;n.next();)switch(n.c){case"\\":if(n.next())switch(n.c){case"\\":t.push(n.c.charCodeAt(0));break;case"b":t.push(8);break;case"f":t.push(12);break;case"n":t.push(10);break;case"r":t.push(13);break;case"t":t.push(9);break;case"v":t.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,8);if(Number.isNaN(r))return!1;t.push(r);break}case"x":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;t.push(r);break}case"u":{const o=n.c,a=n.take(4);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;const i=new Uint8Array(4);new DataView(i.buffer).setInt32(0,r,!0),t.push(i[0],i[1],i[2],i[3]);break}case"U":{const o=n.c,a=n.take(8);if(a===!1)return!1;const r=z.uEnc(o+a),i=new Uint8Array(8),l=new DataView(i.buffer);l.setInt32(0,r.lo,!0),l.setInt32(4,r.hi,!0),t.push(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]);break}}break;default:t.push(n.c.charCodeAt(0))}return new Uint8Array(t)}function*ln(e){switch(e.kind){case"file":for(const t of e.messages)yield t,yield*ln(t);yield*e.enums,yield*e.services,yield*e.extensions;break;case"message":for(const t of e.nestedMessages)yield t,yield*ln(t);yield*e.nestedEnums,yield*e.nestedExtensions;break}}function Qa(...e){const t=Wl();if(!e.length)return t;if("$typeName"in e[0]&&e[0].$typeName=="google.protobuf.FileDescriptorSet"){for(const o of e[0].file)Ro(o,t);return t}if("$typeName"in e[0]){let i=function(l){const s=[];for(const c of l.dependency){if(t.getFile(c)!=null||r.has(c))continue;const m=a(c);if(!m)throw new Error(`Unable to resolve ${c}, imported by ${l.name}`);"kind"in m?t.addFile(m,!1,!0):(r.add(m.name),s.push(m))}return s.concat(...s.map(i))};var n=i;const o=e[0],a=e[1],r=new Set;for(const l of[o,...i(o)].reverse())Ro(l,t)}else for(const o of e)for(const a of o.files)t.addFile(a);return t}function Wl(){const e=new Map,t=new Map,n=new Map;return{kind:"registry",types:e,extendees:t,[Symbol.iterator](){return e.values()},get files(){return n.values()},addFile(o,a,r){if(n.set(o.proto.name,o),!a)for(const i of ln(o))this.add(i);if(r)for(const i of o.dependencies)this.addFile(i,a,r)},add(o){if(o.kind=="extension"){let a=t.get(o.extendee.typeName);a||t.set(o.extendee.typeName,a=new Map),a.set(o.number,o)}e.set(o.typeName,o)},get(o){return e.get(o)},getFile(o){return n.get(o)},getMessage(o){const a=e.get(o);return a?.kind=="message"?a:void 0},getEnum(o){const a=e.get(o);return a?.kind=="enum"?a:void 0},getExtension(o){const a=e.get(o);return a?.kind=="extension"?a:void 0},getExtensionFor(o,a){var r;return(r=t.get(o.typeName))===null||r===void 0?void 0:r.get(a)},getService(o){const a=e.get(o);return a?.kind=="service"?a:void 0}}}var Sl=998,vl=999,Xl=9999,Yl=9,lt=10,ot=11,Il=12,po=14,Fn=3,yl=2,Ao=1,Bl=0,Ot=1,Zo=2,Cl=3,Fl=1,Ul=2,wl=1,Jl=2,kl=1002,Ma={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2,enforceProtoLimits:1},1002:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:3,defaultSymbolVisibility:4,enforceProtoLimits:2}};function Ro(e,t){var n,o;const a={kind:"file",proto:e,deprecated:(o=(n=e.options)===null||n===void 0?void 0:n.deprecated)!==null&&o!==void 0?o:!1,edition:Ll(e),name:e.name.replace(/\.proto$/,""),dependencies:jl(e,t),enums:[],messages:[],extensions:[],services:[],toString(){return`file ${e.name}`}},r=new Map,i={get(l){return r.get(l)},add(l){var s;le(((s=l.proto.options)===null||s===void 0?void 0:s.mapEntry)===!0),r.set(l.typeName,l)}};for(const l of e.enumType)Oa(l,a,void 0,t);for(const l of e.messageType)Da(l,a,void 0,t,i);for(const l of e.service)xl(l,a,t);sn(a,t);for(const l of r.values())cn(l,t,i);for(const l of a.messages)cn(l,t,i),sn(l,t);t.addFile(a,!0)}function sn(e,t){switch(e.kind){case"file":for(const n of e.proto.extension){const o=un(n,e,t);e.extensions.push(o),t.add(o)}break;case"message":for(const n of e.proto.extension){const o=un(n,e,t);e.nestedExtensions.push(o),t.add(o)}for(const n of e.nestedMessages)sn(n,t);break}}function cn(e,t,n){const o=e.proto.oneofDecl.map(r=>zl(r,e)),a=new Set;for(const r of e.proto.field){const i=Ml(r,o),l=un(r,e,t,i,n);e.fields.push(l),e.field[l.localName]=l,i===void 0?e.members.push(l):(i.fields.push(l),a.has(i)||(a.add(i),e.members.push(i)))}for(const r of o.filter(i=>a.has(i)))e.oneofs.push(r);for(const r of e.nestedMessages)cn(r,t,n)}function Oa(e,t,n,o){var a,r,i,l,s,c;const m=Hl(e.name,e.value),p={kind:"enum",proto:e,deprecated:(r=(a=e.options)===null||a===void 0?void 0:a.deprecated)!==null&&r!==void 0?r:!1,file:t,parent:n,open:!0,name:e.name,typeName:Ft(e,n,t),value:{},values:[],sharedPrefix:m,toString(){return`enum ${this.typeName}`}};p.open=Pl(p),o.add(p);for(const R of e.value){const Z=R.name;p.values.push(p.value[R.number]={kind:"enum_value",proto:R,deprecated:(l=(i=R.options)===null||i===void 0?void 0:i.deprecated)!==null&&l!==void 0?l:!1,parent:p,name:Z,localName:it(m==null?Z:Z.substring(m.length)),number:R.number,jsonName:(s=Tl(R))!==null&&s!==void 0?s:Z,toString(){return`enum value ${p.typeName}.${Z}`}})}((c=n?.nestedEnums)!==null&&c!==void 0?c:t.enums).push(p)}function Da(e,t,n,o,a){var r,i,l,s;const c={kind:"message",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,file:t,parent:n,name:e.name,typeName:Ft(e,n,t),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};((l=e.options)===null||l===void 0?void 0:l.mapEntry)===!0?a.add(c):(((s=n?.nestedMessages)!==null&&s!==void 0?s:t.messages).push(c),o.add(c));for(const m of e.enumType)Oa(m,t,c,o);for(const m of e.nestedType)Da(m,t,c,o,a)}function xl(e,t,n){var o,a;const r={kind:"service",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,file:t,name:e.name,typeName:Ft(e,void 0,t),methods:[],method:{},toString(){return`service ${this.typeName}`}};t.services.push(r),n.add(r);for(const i of e.method){const l=Kl(i,r,n);r.methods.push(l),r.method[l.localName]=l}}function Kl(e,t,n){var o,a,r,i;let l;e.clientStreaming&&e.serverStreaming?l="bidi_streaming":e.clientStreaming?l="client_streaming":e.serverStreaming?l="server_streaming":l="unary";const s=n.getMessage(Ae(e.inputType)),c=n.getMessage(Ae(e.outputType));le(s,`invalid MethodDescriptorProto: input_type ${e.inputType} not found`),le(c,`invalid MethodDescriptorProto: output_type ${e.inputType} not found`);const m=e.name;return{kind:"rpc",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,parent:t,name:m,localName:it(m.length?it(m[0].toLowerCase()+m.substring(1)):m),methodKind:l,input:s,output:c,idempotency:(i=(r=e.options)===null||r===void 0?void 0:r.idempotencyLevel)!==null&&i!==void 0?i:Bl,toString(){return`rpc ${t.typeName}.${m}`}}}function zl(e,t){return{kind:"oneof",proto:e,deprecated:!1,parent:t,fields:[],name:e.name,localName:it(Oe(e.name)),toString(){return`oneof ${t.typeName}.${this.name}`}}}function un(e,t,n,o,a){var r,i,l;const s=a===void 0,c={kind:"field",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,name:e.name,number:e.number,scalar:void 0,message:void 0,enum:void 0,presence:Ol(e,o,s,t),utf8Validation:$l(e,t),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};let m;if(s){const V=t.kind=="file"?t:t.file,G=t.kind=="file"?void 0:t,B=Ft(e,G,V);c.kind="extension",c.file=V,c.parent=G,c.oneof=void 0,c.typeName=B,c.jsonName=`[${B}]`,m=()=>`extension ${B}`;const J=n.getMessage(Ae(e.extendee));le(J,`invalid FieldDescriptorProto: extendee ${e.extendee} not found`),c.extendee=J}else{const V=t;le(V.kind=="message"),c.parent=V,c.oneof=o,c.localName=o?Oe(e.name):it(Oe(e.name)),c.jsonName=e.jsonName,m=()=>`field ${V.typeName}.${e.name}`}Object.defineProperty(c,"toString",{value:m,writable:!0,enumerable:!0,configurable:!0});const p=e.label,R=e.type,Z=(l=e.options)===null||l===void 0?void 0:l.jstype;if(p===Fn){const V=R==ot?a?.get(Ae(e.typeName)):void 0;if(V){c.fieldKind="map";const{key:G,value:B}=_l(V);return c.mapKey=G.scalar,c.mapKind=B.fieldKind,c.message=B.message,c.delimitedEncoding=!1,c.enum=B.enum,c.scalar=B.scalar,c}switch(c.fieldKind="list",R){case ot:case lt:c.listKind="message",c.message=n.getMessage(Ae(e.typeName)),le(c.message),c.delimitedEncoding=fo(e,t);break;case po:c.listKind="enum",c.enum=n.getEnum(Ae(e.typeName)),le(c.enum);break;default:c.listKind="scalar",c.scalar=R,c.longAsString=Z==Ao;break}return c.packed=Dl(e,t),c}switch(R){case ot:case lt:c.fieldKind="message",c.message=n.getMessage(Ae(e.typeName)),le(c.message,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.delimitedEncoding=fo(e,t),c.getDefaultValue=()=>{};break;case po:{const V=n.getEnum(Ae(e.typeName));le(V!==void 0,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(Ae(e.typeName)),c.getDefaultValue=()=>at(e,"defaultValue")?Vl(V,e.defaultValue):void 0;break}default:c.fieldKind="scalar",c.scalar=R,c.longAsString=Z==Ao,c.getDefaultValue=()=>at(e,"defaultValue")?Nl(R,e.defaultValue):void 0;break}return c}function Ll(e){switch(e.syntax){case"":case"proto2":return Sl;case"proto3":return vl;case"editions":if(e.edition===Xl)return kl;if(e.edition in Ma)return e.edition;throw new Error(`${e.name}: unsupported edition`);default:throw new Error(`${e.name}: unsupported syntax "${e.syntax}"`)}}function jl(e,t){return e.dependency.map(n=>{const o=t.getFile(n);if(!o)throw new Error(`Cannot find ${n}, imported by ${e.name}`);return o})}function Hl(e,t){const n=Ql(e)+"_";for(const o of t){if(!o.name.toLowerCase().startsWith(n))return;const a=o.name.substring(n.length);if(a.length==0||/^\d/.test(a))return}return n}function Tl(e){var t,n;let r;for(const i of(n=(t=e.options)===null||t===void 0?void 0:t.$unknown)!==null&&n!==void 0?n:[]){if(i.no!==998||i.wireType!==Q.LengthDelimited)continue;const l=new rt(new rt(i.data).bytes());for(;l.pos<l.len;){const[s,c]=l.tag();s===1&&c===Q.LengthDelimited?r=l.string():l.skip(c,s)}}return r}function Ql(e){return(e.substring(0,1)+e.substring(1).replace(/[A-Z]/g,t=>"_"+t)).toLowerCase()}function Ft(e,t,n){let o;return t?o=`${t.typeName}.${e.name}`:n.proto.package.length>0?o=`${n.proto.package}.${e.name}`:o=`${e.name}`,o}function Ae(e){return e.startsWith(".")?e.substring(1):e}function Ml(e,t){if(!at(e,"oneofIndex")||e.proto3Optional)return;const n=t[e.oneofIndex];return le(n,`invalid FieldDescriptorProto: oneof #${e.oneofIndex} for field #${e.number} not found`),n}function Ol(e,t,n,o){if(e.label==yl)return Cl;if(e.label==Fn)return Zo;if(t||e.proto3Optional||n)return Ot;const a=we("fieldPresence",{proto:e,parent:o});return a==Zo&&(e.type==ot||e.type==lt)?Ot:a}function Dl(e,t){if(e.label!=Fn)return!1;switch(e.type){case Yl:case Il:case lt:case ot:return!1}const n=e.options;return n&&at(n,"packed")?n.packed:Fl==we("repeatedFieldEncoding",{proto:e,parent:t})}function _l(e){const t=e.fields.find(o=>o.number===1),n=e.fields.find(o=>o.number===2);return le(t&&t.fieldKind=="scalar"&&t.scalar!=b.BYTES&&t.scalar!=b.FLOAT&&t.scalar!=b.DOUBLE&&n&&n.fieldKind!="list"&&n.fieldKind!="map"),{key:t,value:n}}function Pl(e){var t;return wl==we("enumType",{proto:e.proto,parent:(t=e.parent)!==null&&t!==void 0?t:e.file})}function fo(e,t){return e.type==lt?!0:Ul==we("messageEncoding",{proto:e,parent:t})}function $l(e,t){return Jl==we("utf8Validation",{proto:e,parent:t})}function we(e,t){var n,o;const a=(n=t.proto.options)===null||n===void 0?void 0:n.features;if(a){const r=a[e];if(r!=0)return r}if("kind"in t){if(t.kind=="message")return we(e,(o=t.parent)!==null&&o!==void 0?o:t.file);const r=Ma[t.edition];if(!r)throw new Error(`feature default for edition ${t.edition} not found`);return r[e]}return we(e,t.parent)}function le(e,t){if(!e)throw new Error(t)}function ql(e){const t=es(e);return t.messageType.forEach(Cn),Qa(t,()=>{}).getFile(t.name)}function es(e){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},e),{messageType:e.messageType.map(_a),enumType:e.enumType.map(Pa)}))}function _a(e){var t,n,o,a,r,i,l,s;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:e.name,field:(n=(t=e.field)===null||t===void 0?void 0:t.map(ts))!==null&&n!==void 0?n:[],extension:[],nestedType:(a=(o=e.nestedType)===null||o===void 0?void 0:o.map(_a))!==null&&a!==void 0?a:[],enumType:(i=(r=e.enumType)===null||r===void 0?void 0:r.map(Pa))!==null&&i!==void 0?i:[],extensionRange:(s=(l=e.extensionRange)===null||l===void 0?void 0:l.map(c=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},c)))!==null&&s!==void 0?s:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function ts(e){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},e),{options:e.options?ns(e.options):void 0}))}function ns(e){var t,n,o;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},e),{targets:(t=e.targets)!==null&&t!==void 0?t:[],editionDefaults:(o=(n=e.editionDefaults)===null||n===void 0?void 0:n.map(a=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},a)))!==null&&o!==void 0?o:[],uninterpretedOption:[]}))}function Pa(e){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:e.name,reservedName:[],reservedRange:[],value:e.value.map(t=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},t))})}function N(e,t,...n){return n.reduce((o,a)=>o.nestedMessages[a],e.messages[t])}var os=ql({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false",options:{}},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true",options:{}},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"removal_error",number:5,type:9,label:1}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001},{value:"STYLE2026",edition:1002}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001},{value:"STRICT",edition:1002}]}},{name:"enforce_proto_limits",number:9,type:14,label:1,typeName:".google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits",options:{retention:2,targets:[6,3,4,5],editionDefaults:[{value:"LEGACY_NO_EXPLICIT_LIMITS",edition:900},{value:"PROTO_LIMITS2026",edition:1002}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]},{name:"ProtoLimitsFeature",enumType:[{name:"EnforceProtoLimits",value:[{name:"PROTO_LIMITS_UNKNOWN",number:0},{name:"LEGACY_NO_EXPLICIT_LIMITS",number:1},{name:"PROTO_LIMITS2026",number:2}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2},{name:"STYLE2026",number:3}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_2026",number:1002},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),as=N(os,1),Eo;(function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"})(Eo||(Eo={}));var Vo;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(Vo||(Vo={}));var No;(function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"})(No||(No={}));var Go;(function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"})(Go||(Go={}));var Wo;(function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"})(Wo||(Wo={}));var So;(function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"})(So||(So={}));var vo;(function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(vo||(vo={}));var Xo;(function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Xo||(Xo={}));var Yo;(function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"})(Yo||(Yo={}));var Io;(function(e){e[e.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",e[e.EXPORT_ALL=1]="EXPORT_ALL",e[e.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",e[e.LOCAL_ALL=3]="LOCAL_ALL",e[e.STRICT=4]="STRICT"})(Io||(Io={}));var yo;(function(e){e[e.PROTO_LIMITS_UNKNOWN=0]="PROTO_LIMITS_UNKNOWN",e[e.LEGACY_NO_EXPLICIT_LIMITS=1]="LEGACY_NO_EXPLICIT_LIMITS",e[e.PROTO_LIMITS2026=2]="PROTO_LIMITS2026"})(yo||(yo={}));var Bo;(function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Bo||(Bo={}));var Co;(function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"})(Co||(Co={}));var Fo;(function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"})(Fo||(Fo={}));var Uo;(function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.VERIFY=2]="VERIFY",e[e.NONE=3]="NONE"})(Uo||(Uo={}));var wo;(function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"})(wo||(wo={}));var Jo;(function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(Jo||(Jo={}));var ko;(function(e){e[e.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",e[e.STYLE2024=1]="STYLE2024",e[e.STYLE_LEGACY=2]="STYLE_LEGACY",e[e.STYLE2026=3]="STYLE2026"})(ko||(ko={}));var xo;(function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"})(xo||(xo={}));var Ko;(function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_LEGACY=900]="EDITION_LEGACY",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_2024=1001]="EDITION_2024",e[e.EDITION_2026=1002]="EDITION_2026",e[e.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",e[e.EDITION_MAX=2147483647]="EDITION_MAX"})(Ko||(Ko={}));var zo;(function(e){e[e.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",e[e.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",e[e.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"})(zo||(zo={}));function $a(e){return Object.assign(Object.assign({readUnknownFields:!0,recursionLimit:100},e),{depth:0})}function dt(e,t,n){const o=oe(e);return Un(e).read(o,new rt(t),$a(n),t.byteLength),o}var qa=new WeakMap;function Un(e){let t=qa.get(e);return t===void 0&&(t=rs(e)),t}function rs(e){const t=String(e),n=new Map,o={read:is(t,n),readGroup:ls(t,n)};qa.set(e,o);for(const a of e.fields)n.set(a.number,er(a));return o}function is(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);const l=o.pos+r,s=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<l;){const[c,m]=o.tag(),p=t.get(c);if(p===void 0){const R=o.skip(m,c,a.recursionLimit-a.depth);a.readUnknownFields&&s.push({no:c,wireType:m,data:R});continue}p(n,o,a,m)}s.length>0&&(n.$unknown=s),a.depth--}}function ls(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);let l,s;const c=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<o.len&&([l,s]=o.tag(),s!=Q.EndGroup);){const m=t.get(l);if(m===void 0){const p=o.skip(s,l,a.recursionLimit-a.depth);a.readUnknownFields&&c.push({no:l,wireType:s,data:p});continue}m(n,o,a,s)}if(s!=Q.EndGroup||l!==r)throw new Error("invalid end group tag");c.length>0&&(n.$unknown=c),a.depth--}}function ss(e,t,n,o,a){er(n)(e[ie],t,a,o)}function er(e){switch(e.fieldKind){case"scalar":return cs(e);case"enum":return us(e);case"message":return ds(e);case"list":return ms(e);case"map":return bs(e)}}function cs(e){const t=vt(e.scalar,e.utf8Validation,e.longAsString),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r)=>{a[o]={case:n,value:t(r)}}}return(o,a)=>{o[n]=t(a)}}function us(e){var t;const n=e.localName,o=(t=e.oneof)===null||t===void 0?void 0:t.localName;if(e.enum.open)return o!==void 0?(i,l)=>{i[o]={case:n,value:l.int32()}}:(i,l)=>{i[n]=l.int32()};const a=e.enum.values,r=e.number;return(i,l,s,c)=>{var m;const p=l.int32();if(a.some(R=>R.number===p))o!==void 0?i[o]={case:n,value:p}:i[n]=p;else if(s.readUnknownFields){const R=[];ki(p,R);const Z=(m=i.$unknown)!==null&&m!==void 0?m:[];Z.push({no:r,wireType:c,data:new Uint8Array(R)}),i.$unknown=Z}}}function ds(e){const t=e.localName,{toMessage:n,toLocal:o}=ge(e),a=tr(e);if(e.oneof){const r=e.oneof.localName;return(i,l,s)=>{const c=i[r],m=n(c.case===t?c.value:void 0);a(m,l,s),i[r]={case:t,value:o(m)}}}return(r,i,l)=>{const s=n(r[t]);a(s,i,l),r[t]=o(s)}}function tr(e){const t=Un(e.message);if(e.delimitedEncoding){const n=e.number;return(o,a,r)=>t.readGroup(o,a,r,n)}return(n,o,a)=>t.read(n,o,a,o.uint32())}function ms(e){const t=e.localName;if(e.listKind=="message"){const{toMessage:i,toLocal:l}=ge(e),s=tr(e);return(c,m,p)=>{const R=i(void 0);s(R,m,p),c[t].push(l(R))}}const n=e.listKind=="enum"?b.INT32:e.scalar,o=e.listKind=="scalar"?e.longAsString:!1,a=vt(n,e.utf8Validation,o),r=n!=b.STRING&&n!=b.BYTES;return(i,l,s,c)=>{const m=i[t];if(c==Q.LengthDelimited&&r){const p=l.uint32()+l.pos;for(;l.pos<p;)m.push(a(l))}else m.push(a(l))}}function bs(e){const t=e.localName,n=vt(e.mapKey,e.utf8Validation,!1),o=Re(e.mapKey,!1);let a,r;switch(e.mapKind){case"scalar":{const i=e.scalar,l=vt(i,e.utf8Validation,!1);if(a=s=>l(s),i==b.BYTES)r=()=>new Uint8Array(0);else{const s=Re(i,!1);r=()=>s}break}case"enum":{const i=e.enum.values[0].number;a=l=>l.int32(),r=()=>i;break}case"message":{const{toMessage:i,toLocal:l}=ge(e),s=Un(e.message).read;a=(c,m,p)=>{const R=i(p);return s(R,c,m,c.uint32()),l(R)},r=()=>l(i(void 0));break}}return(i,l,s)=>{const c=i[t];let m,p;const R=l.uint32(),Z=l.pos+R;for(;l.pos<Z;){const[V]=l.tag();switch(V){case 1:m=n(l);break;case 2:p=a(l,s,p);break}}m===void 0&&(m=o),p===void 0&&(p=r()),ue(c,m,p)}}function vt(e,t,n){switch(e){case b.STRING:return o=>o.string(t);case b.BOOL:return o=>o.bool();case b.DOUBLE:return o=>o.double();case b.FLOAT:return o=>o.float();case b.INT32:return o=>o.int32();case b.INT64:return n?o=>String(o.int64()):o=>o.int64();case b.UINT64:return n?o=>String(o.uint64()):o=>o.uint64();case b.FIXED64:return n?o=>String(o.fixed64()):o=>o.fixed64();case b.BYTES:return o=>o.bytes();case b.FIXED32:return o=>o.fixed32();case b.SFIXED32:return o=>o.sfixed32();case b.SFIXED64:return n?o=>String(o.sfixed64()):o=>o.sfixed64();case b.SINT64:return n?o=>String(o.sint64()):o=>o.sint64();case b.UINT32:return o=>o.uint32();case b.SINT32:return o=>o.sint32()}}function q(e,t){var n;const o=dt(as,Bn(e));return o.messageType.forEach(Cn),o.dependency=(n=t?.map(a=>a.proto.name))!==null&&n!==void 0?n:[],Qa(o,a=>t?.find(r=>r.proto.name===a)).getFile(o.name)}var Ee=q("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),nr=q("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),hs=N(nr,0),gs=2,ps=3,Lo={writeUnknownFields:!0};function As(e){return e?Object.assign(Object.assign({},Lo),e):Lo}function or(e,t,n){const o=new Fa;return wn(e)(o,As(n),t),o.finish()}var ar=new WeakMap;function wn(e){let t=ar.get(e);return t===void 0&&(t=Zs(e)),t}function Zs(e){const t=e.typeName,n=e.fields.concat().sort((i,l)=>i.number-l.number),o=n[0],a=[],r=(i,l,s)=>{if(s.$typeName!==t&&o!==void 0)throw new L(o,`cannot use ${o} with message ${s.$typeName}`,"ForeignFieldError");for(let m=0;m<a.length;m++)a[m](i,l,s);const c=s.$unknown;if(c!==void 0&&l.writeUnknownFields)for(let m=0;m<c.length;m++){const{no:p,wireType:R,data:Z}=c[m];i.tag(p,R).raw(Z)}};ar.set(e,r);for(const i of n)a.push(rr(i));return r}function rr(e){switch(e.fieldKind){case"message":case"scalar":case"enum":return Rs(e);case"list":return Es(e);case"map":return Vs(e)}}function Rs(e){const t=fs(e),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r,i)=>{const l=i[o];l.case===n&&t(a,r,l.value)}}if(e.presence!=gs){const o=e.presence==ps?`cannot encode ${e} to binary: required field not set`:void 0;return(a,r,i)=>{const l=i[n];if(l!==void 0&&Object.prototype.hasOwnProperty.call(i,n))t(a,r,l);else if(o!==void 0)throw new Error(o)}}if(e.fieldKind=="enum"){const o=e.enum.values[0].number;return(a,r,i)=>{const l=i[n];l!==o&&t(a,r,l)}}switch(e.scalar){case b.BOOL:return(o,a,r)=>{const i=r[n];i!==!1&&t(o,a,i)};case b.STRING:return(o,a,r)=>{const i=r[n];i!==""&&t(o,a,i)};case b.BYTES:return(o,a,r)=>{const i=r[n];(!(i instanceof Uint8Array)||i.byteLength>0)&&t(o,a,i)};case b.DOUBLE:case b.FLOAT:return(o,a,r)=>{const i=r[n];Object.is(i,0)||t(o,a,i)};default:return(o,a,r)=>{const i=r[n];i!=0&&t(o,a,i)}}}function fs(e){switch(e.fieldKind){case"message":{const{toMessage:t}=ge(e),n=ir(e);return(o,a,r)=>{n(o,a,t(r))}}case"scalar":case"enum":{const t=e.fieldKind=="enum"?b.INT32:e.scalar,n=e.number,o=wt(t),a=Ut(t,e.parent.typeName,e.name);return(r,i,l)=>{r.tag(n,o),a(r,l)}}}}function Es(e){const t=e.localName,n=e.number;switch(e.listKind){case"message":{const{toMessage:o}=ge(e),a=ir(e);return(r,i,l)=>{const s=l[t];for(let c=0;c<s.length;c++)a(r,i,o(s[c]))}}case"scalar":case"enum":{const o=e.listKind=="enum"?b.INT32:e.scalar,a=Ut(o,e.parent.typeName,e.name);if(e.packed)return(i,l,s)=>{const c=s[t];if(c.length!=0){i.tag(n,Q.LengthDelimited).fork();for(let m=0;m<c.length;m++)a(i,c[m]);i.join()}};const r=wt(o);return(i,l,s)=>{const c=s[t];for(let m=0;m<c.length;m++)i.tag(n,r),a(i,c[m])}}}}function Vs(e){const t=e.localName,n=e.number,o=Ns(e);if(e.mapKind=="message"){const{toMessage:l}=ge(e),s=wn(e.message);return(c,m,p)=>{const R=p[t],Z=Object.keys(R);for(let V=0;V<Z.length;V++){const G=Z[V];c.tag(n,Q.LengthDelimited).fork(),o(c,G),c.tag(2,Q.LengthDelimited).fork(),s(c,m,l(R[G])),c.join(),c.join()}}}const a=e.mapKind=="enum"?b.INT32:e.scalar,r=wt(a),i=Ut(a,e.parent.typeName,e.name);return(l,s,c)=>{const m=c[t],p=Object.keys(m);for(let R=0;R<p.length;R++){const Z=p[R];l.tag(n,Q.LengthDelimited).fork(),o(l,Z),l.tag(2,r),i(l,m[Z]),l.join()}}}function Ns(e){const t=wt(e.mapKey),n=Ut(e.mapKey,e.parent.typeName,e.name),o=Gs(e.mapKey);return(a,r)=>{a.tag(1,t),n(a,o(r))}}function Gs(e){switch(e){case b.STRING:return t=>t;case b.BOOL:return t=>t==="true"?!0:t==="false"?!1:t;case b.UINT64:case b.FIXED64:return t=>{try{return z.uParse(t)}catch{return t}};case b.INT64:case b.SFIXED64:case b.SINT64:return t=>{try{return z.parse(t)}catch{return t}};default:return t=>{const n=Number.parseInt(t);return Number.isFinite(n)?n:t}}}function Ut(e,t,n){const o=Ws(e);return(a,r)=>{try{o(a,r)}catch(i){throw i instanceof Error?new Error(`cannot encode field ${t}.${n} to binary: ${i.message}`):i}}}function Ws(e){switch(e){case b.STRING:return(t,n)=>t.string(n);case b.BOOL:return(t,n)=>t.bool(n);case b.DOUBLE:return(t,n)=>t.double(n);case b.FLOAT:return(t,n)=>t.float(n);case b.INT32:return(t,n)=>t.int32(n);case b.INT64:return(t,n)=>t.int64(n);case b.UINT64:return(t,n)=>t.uint64(n);case b.FIXED64:return(t,n)=>t.fixed64(n);case b.BYTES:return(t,n)=>t.bytes(n);case b.FIXED32:return(t,n)=>t.fixed32(n);case b.SFIXED32:return(t,n)=>t.sfixed32(n);case b.SFIXED64:return(t,n)=>t.sfixed64(n);case b.SINT64:return(t,n)=>t.sint64(n);case b.UINT32:return(t,n)=>t.uint32(n);case b.SINT32:return(t,n)=>t.sint32(n)}}function Ss(e,t,n,o){rr(o)(e,t,n[ie])}function ir(e){const t=e.number,n=wn(e.message);return e.delimitedEncoding?(o,a,r)=>{o.tag(t,Q.StartGroup),n(o,a,r),o.tag(t,Q.EndGroup)}:(o,a,r)=>{o.tag(t,Q.LengthDelimited).fork(),n(o,a,r),o.join()}}function wt(e){switch(e){case b.BYTES:case b.STRING:return Q.LengthDelimited;case b.DOUBLE:case b.FIXED64:case b.SFIXED64:return Q.Bit64;case b.FIXED32:case b.SFIXED32:case b.FLOAT:return Q.Bit32;default:return Q.Varint}}function vs(e,t,n){let o=!1;return n||(n=oe(hs),o=!0),n.value=or(e,t),n.typeUrl=Is(t.$typeName),o?n:void 0}function Xs(e,t){return e.typeUrl===""?!1:(typeof t=="string"?t:t.typeName)===lr(e.typeUrl)}function Ys(e,t){if(e.typeUrl==="")return;const n=t.kind=="message"?t:t.getMessage(lr(e.typeUrl));if(!(!n||!Xs(e,n)))return dt(n,e.value)}function Is(e){return`type.googleapis.com/${e}`}function lr(e){const t=e.lastIndexOf("/"),n=t>=0?e.substring(t+1):e;if(!n.length)throw new Error(`invalid type url: ${e}`);return n}var Ve=q("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),ys=N(Ve,0),sr=N(Ve,1),Bs=N(Ve,2),dn;(function(e){e[e.NULL_VALUE=0]="NULL_VALUE"})(dn||(dn={}));var cr=q("Ch5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIcCgtEb3VibGVWYWx1ZRINCgV2YWx1ZRgBIAEoASIbCgpGbG9hdFZhbHVlEg0KBXZhbHVlGAEgASgCIhsKCkludDY0VmFsdWUSDQoFdmFsdWUYASABKAMiHAoLVUludDY0VmFsdWUSDQoFdmFsdWUYASABKAQiGwoKSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoBSIcCgtVSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoDSIaCglCb29sVmFsdWUSDQoFdmFsdWUYASABKAgiHAoLU3RyaW5nVmFsdWUSDQoFdmFsdWUYASABKAkiGwoKQnl0ZXNWYWx1ZRINCgV2YWx1ZRgBIAEoDEKDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi93cmFwcGVyc3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM");function Cs(e,t,n){ur(t,e);const o=Us(e.$unknown,t),[a,r,i]=Jt(t),l=$a(n);for(const s of o)ss(a,new rt(s.data),r,s.wireType,l);return i()}function Fs(e,t,n){var o;ur(t,e);const a=((o=e.$unknown)!==null&&o!==void 0?o:[]).filter(c=>c.no!==t.number),[r,i]=Jt(t,n),l=new Fa;Ss(l,{writeUnknownFields:!0},r,i);const s=new rt(l.finish());for(;s.pos<s.len;){const[c,m]=s.tag(),p=s.skip(m,c);a.push({no:c,wireType:m,data:p})}e.$unknown=a}function Us(e,t){if(e===void 0)return[];if(t.fieldKind==="enum"||t.fieldKind==="scalar"){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.number)return[e[n]];return[]}return e.filter(n=>n.no===t.number)}function Jt(e,t){const n=e.typeName,o=Object.assign(Object.assign({},e),{kind:"field",parent:e.extendee,localName:n}),a=Object.assign(Object.assign({},e.extendee),{fields:[o],members:[o],oneofs:[]}),r=oe(a,t!==void 0?{[n]:t}:void 0);return[bl(a,r),o,()=>{const i=r[n];if(i===void 0){const l=e.message;return xe(l)?Re(l.fields[0].scalar,l.fields[0].longAsString):oe(l)}return i}]}function ur(e,t){if(e.extendee.typeName!=t.$typeName)throw new Error(`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}var dr=Date.parse("0001-01-01T00:00:00Z"),mr=Date.parse("9999-12-31T23:59:59Z");var ws=3,Js=2,jo={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function ks(e){return e?Object.assign(Object.assign({},jo),e):jo}function br(e,t,n){return Xt(e)(ks(n),t)}function xs(e,t,n){var o;const a=br(e,t,n);return JSON.stringify(a,null,(o=n?.prettySpaces)!==null&&o!==void 0?o:0)}var mn=new WeakMap;function Xt(e){let t=mn.get(e);return t===void 0&&(t=Ks(e)),t}function Ks(e){const t=e.typeName,n=Ls(e);if(n!==void 0){const l=e.fields[0],s=(c,m)=>{if(m.$typeName!==t&&l!==void 0)throw new L(l,`cannot use ${l} with message ${m.$typeName}`,"ForeignFieldError");return n(c,m)};return mn.set(e,s),s}const o=e.fields.concat().sort((l,s)=>l.number-s.number),a=o[0],r=[],i=(l,s)=>{if(s.$typeName!==t&&a!==void 0)throw new L(a,`cannot use ${a} with message ${s.$typeName}`,"ForeignFieldError");const c={};for(let m=0;m<r.length;m++)r[m](l,s,c);return l.registry&&Os(c,l,l.registry,s,e),c};mn.set(e,i);for(const l of o){const s=js(l);r.push(l.jsonName==="__proto__"||l.name==="__proto__"?zs(s):s)}return i}function zs(e){return(t,n,o)=>{const a=Object.create(null);e(t,n,a);for(const r of Object.keys(a))ue(o,r,a[r])}}function Ls(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n)=>Ds(n,t);case"google.protobuf.Timestamp":return(t,n)=>$s(n);case"google.protobuf.Duration":return(t,n)=>_s(n);case"google.protobuf.FieldMask":return(t,n)=>Ps(n);case"google.protobuf.Struct":return(t,n)=>Ar(n);case"google.protobuf.Value":return(t,n)=>xn(n);case"google.protobuf.ListValue":return(t,n)=>Zr(n);default:if(xe(e)){const t=e.fields[0],n=t.localName,o=Re(t.scalar,!1),a=kt(t);return(r,i)=>{const l=i[n];return a(r,l===void 0?o:l)}}return}}function js(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return Hs(e);case"list":case"map":{const t=e.fieldKind=="list"?gr(e):pr(e),n=e.name,o=e.jsonName,a=e.localName;return(r,i,l)=>{const s=t(r,i[a]);s!==void 0&&(l[r.useProtoFieldName?n:o]=s)}}}}function Hs(e){const t=hr(e),n=e.name,o=e.jsonName,a=e.localName;if(e.oneof){const r=e.oneof.localName;return(i,l,s)=>{const c=l[r];c.case===a&&(s[i.useProtoFieldName?n:o]=t(i,c.value))}}if(e.presence!=Js){const r=e.presence==ws?`cannot encode ${e} to JSON: required field not set`:void 0;return(i,l,s)=>{const c=l[a];if(c!==void 0&&Object.prototype.hasOwnProperty.call(l,a))s[i.useProtoFieldName?n:o]=t(i,c);else if(r!==void 0)throw new Error(r)}}if(e.fieldKind=="enum"){const r=e.enum.values[0].number;return(i,l,s)=>{const c=l[a];(c!==r||i.alwaysEmitImplicit)&&(s[i.useProtoFieldName?n:o]=t(i,c))}}switch(e.scalar){case b.BOOL:return(r,i,l)=>{const s=i[a];(s!==!1||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))};case b.STRING:return(r,i,l)=>{const s=i[a];(s!==""||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))};case b.BYTES:return(r,i,l)=>{const s=i[a];(!(s instanceof Uint8Array)||s.byteLength>0||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))};case b.DOUBLE:case b.FLOAT:return(r,i,l)=>{const s=i[a];(!Object.is(s,0)||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))};default:return(r,i,l)=>{const s=i[a];(s!=0||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))}}}function Ts(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return hr(e);case"list":return gr(e);case"map":return pr(e)}}function hr(e){switch(e.fieldKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function Jn(e){const{toMessage:t}=ge(e),n=Xt(e.message);return(o,a)=>n(o,t(a))}function gr(e){const t=Qs(e);return(n,o)=>{const a=o;if(a.length==0&&!n.alwaysEmitImplicit)return;const r=[];for(let i=0;i<a.length;i++)r.push(t(n,a[i]));return r}}function Qs(e){switch(e.listKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function pr(e){const t=Ms(e);return(n,o)=>{const a=o,r=Object.keys(a);if(r.length==0&&!n.alwaysEmitImplicit)return;const i={};for(let l=0;l<r.length;l++){const s=r[l];ue(i,s,t(n,a[s]))}return i}}function Ms(e){switch(e.mapKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function kn(e){const t=e.enum;return t.typeName=="google.protobuf.NullValue"?(n,o)=>{if(typeof o!="number")throw Ho(t,o);return null}:(n,o)=>{var a,r;if(typeof o!="number")throw Ho(t,o);return n.enumAsInteger?o:(r=(a=t.value[o])===null||a===void 0?void 0:a.jsonName)!==null&&r!==void 0?r:o}}function Ho(e,t){return new Error(`cannot encode ${e} to JSON: expected number, got ${D(t)}`)}function kt(e){switch(e.scalar){case b.INT32:case b.SFIXED32:case b.SINT32:case b.FIXED32:case b.UINT32:return(t,n)=>{if(typeof n!="number")throw je(e,n);return n};case b.FLOAT:case b.DOUBLE:return(t,n)=>{if(typeof n!="number")throw je(e,n);return Number.isNaN(n)?"NaN":n===Number.POSITIVE_INFINITY?"Infinity":n===Number.NEGATIVE_INFINITY?"-Infinity":n};case b.STRING:return(t,n)=>{if(typeof n!="string")throw je(e,n);return n};case b.BOOL:return(t,n)=>{if(typeof n!="boolean")throw je(e,n);return n};case b.UINT64:case b.FIXED64:case b.INT64:case b.SFIXED64:case b.SINT64:return(t,n)=>{if(typeof n=="bigint"||typeof n=="string"||typeof n=="number"&&Number.isInteger(n))return n.toString();throw je(e,n)};case b.BYTES:return(t,n)=>{if(n instanceof Uint8Array)return Rl(n);throw je(e,n)}}}function je(e,t){var n;return new Error(`cannot encode ${e} to JSON: ${(n=Ja(e,t))===null||n===void 0?void 0:n.message}`)}function Os(e,t,n,o,a){const r=o.$unknown;if(r===void 0)return;const i=new Set;for(let l=0;l<r.length;l++){const{no:s}=r[l];if(!i.has(s)){i.add(s);const c=n.getExtensionFor(a,s);if(!c)continue;const[m,p]=Jt(c,Cs(o,c)),R=m[ie],Z=Ts(p)(t,R[p.localName]);Z!==void 0&&(e[c.jsonName]=Z)}}}function Ds(e,t){if(e.typeUrl==="")return{};const{registry:n}=t;let o,a;if(n&&(o=Ys(e,n),o&&(a=n.getMessage(o.$typeName))),!a||!o)throw new Error(`cannot encode message ${e.$typeName} to JSON: "${e.typeUrl}" is not in the type registry`);const r=Sa(a)?{value:Xt(a)(t,o)}:Xt(a)(t,o);return r["@type"]=e.typeUrl,r}function _s(e){const t=Number(e.seconds),n=e.nanos;if(t>315576e6||t<-315576e6)throw new Error(`cannot encode message ${e.$typeName} to JSON: value out of range`);if(t>0&&n<0||t<0&&n>0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos sign must match seconds sign`);let o=e.seconds.toString();if(n!==0){let a=Math.abs(n).toString();a="0".repeat(9-a.length)+a,a.substring(3)==="000000"?a=a.substring(0,3):a.substring(6)==="000"&&(a=a.substring(0,6)),o+="."+a,n<0&&t==0&&(o="-"+o)}return o+"s"}function Ps(e){return e.paths.map(t=>{if(Ta(Oe(t))!==t)throw new Error(`cannot encode message ${e.$typeName} to JSON: lowerCamelCase of path name "${t}" is irreversible`);return Oe(t)}).join(",")}function Ar(e){const t={},n=Object.keys(e.fields);for(let o=0;o<n.length;o++){const a=n[o];ue(t,a,xn(e.fields[a]))}return t}function xn(e){switch(e.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(e.kind.value))throw new Error(`${e.$typeName} cannot be NaN or Infinity`);return e.kind.value;case"boolValue":return e.kind.value;case"stringValue":return e.kind.value;case"structValue":return Ar(e.kind.value);case"listValue":return Zr(e.kind.value);default:throw new Error(`${e.$typeName} must have a value`)}}function Zr(e){return e.values.map(xn)}function $s(e){const t=Number(e.seconds)*1e3;if(t<dr||t>mr)throw new Error(`cannot encode message ${e.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(e.nanos<0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be negative`);if(e.nanos>999999999)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(e.nanos>0){const o=(e.nanos+1e9).toString().substring(1);o.substring(3)==="000000"?n="."+o.substring(0,3)+"Z":o.substring(6)==="000"?n="."+o.substring(0,6)+"Z":n="."+o+"Z"}return new Date(t).toISOString().replace(".000Z",n)}var qs=2;function ec(e){return Object.assign(Object.assign({ignoreUnknownFields:!1,recursionLimit:100},e),{depth:0})}function tc(e,t,n){return Rr(e,mc(t,e.typeName),n)}function Rr(e,t,n){const o=oe(e);return nc(e,o,t,n),o}function nc(e,t,n,o){try{De(e)(t,n,ec(o))}catch(a){throw al(a)?new Error(`cannot decode ${a.field()} from JSON: ${a.message}`,{cause:a}):a}}var bn=new WeakMap;function De(e){let t=bn.get(e);return t===void 0&&(t=oc(e)),t}function oc(e){const t=String(e),n=ac(e);if(n!==void 0){const i=(l,s,c)=>{if(++c.depth>c.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${c.recursionLimit} reached`);n(l,s,c),c.depth--};return bn.set(e,i),i}const o=e.typeName,a=new Map,r=(i,l,s)=>{var c;if(++s.depth>s.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${s.recursionLimit} reached`);if(l==null||Array.isArray(l)||typeof l!="object")throw new Error(`cannot decode ${t} from JSON: ${D(l)}`);const m=new Map,p=new Set,R=Object.keys(l);for(let Z=0;Z<R.length;Z++){const V=R[Z],G=l[V],B=a.get(V);if(B!==void 0){const J=B.field;if(p.has(J))throw new L(J,"set multiple times");if(p.add(J),B.oneofScalarNullSkip&&G===null)continue;if(B.oneof){const u=m.get(B.oneof);if(u!==void 0)throw new L(B.oneof,`oneof set multiple times by ${u.name} and ${J.name}`);m.set(B.oneof,J)}B.read(i,G,s)}else{const J=V.startsWith("[")&&V.endsWith("]")?(c=s.registry)===null||c===void 0?void 0:c.getExtension(V.substring(1,V.length-1)):void 0;if(J?.extendee.typeName==o){const[u,d,g]=Jt(J);To(d)(u[ie],G,s),Fs(i,J,g())}if(J===void 0&&!s.ignoreUnknownFields)throw new Error(`cannot decode ${t} from JSON: key "${V}" is unknown`)}}s.depth--};bn.set(e,r);for(const i of e.fields){const l={read:To(i),field:i,oneof:i.oneof,oneofScalarNullSkip:i.oneof!==void 0&&i.fieldKind=="scalar"};a.set(i.name,l).set(i.jsonName,l)}return r}function ac(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n,o)=>hc(t,n,o);case"google.protobuf.Timestamp":return(t,n)=>gc(t,n);case"google.protobuf.Duration":return(t,n)=>pc(t,n);case"google.protobuf.FieldMask":return(t,n)=>Ac(t,n);case"google.protobuf.Struct":return(t,n,o)=>Nr(t,n,o);case"google.protobuf.Value":return(t,n,o)=>Hn(t,n,o);case"google.protobuf.ListValue":return(t,n,o)=>Gr(t,n,o);default:if(xe(e)){const t=e.fields[0],n=t.localName,o=t.scalar,a=t.longAsString,r=Er(t);return(i,l)=>{l===null?i[n]=Re(o,a):i[n]=r(l)}}return}}function To(e){switch(e.fieldKind){case"scalar":return rc(e);case"enum":return ic(e);case"message":return lc(e);case"list":return sc(e);case"map":return uc(e)}}function rc(e){const t=Er(e),n=e.localName;if(e.oneof){const a=e.oneof.localName;return(r,i)=>{r[a]={case:n,value:t(i)}}}const o=fr(e);return(a,r)=>{r===null?o(a):a[n]=t(r)}}function fr(e){const t=e.localName;if(e.presence!=qs)return a=>{delete a[t]};if(e.fieldKind=="enum"){const a=e.enum.values[0].number;return r=>{r[t]=a}}const n=e.scalar,o=e.longAsString;return a=>{a[t]=Re(n,o)}}function ic(e){const t=Kn(e.enum),n=zn(e.enum),o=e.localName,a=e.enum.typeName!="google.protobuf.NullValue";if(e.oneof){const i=e.oneof.localName;return(l,s,c)=>{if(s===null&&a){l[i].case===o&&(l[i]={case:void 0});return}const m=t(s,c.ignoreUnknownFields);if(m===_e)return;const p=n(m);if(p!==!0)throw new L(e,ce(e,m,p));l[i]={case:o,value:m}}}const r=fr(e);return(i,l,s)=>{if(l===null&&a){r(i);return}const c=t(l,s.ignoreUnknownFields);if(c===_e)return;const m=n(c);if(m!==!0)throw new L(e,ce(e,c,m));i[o]=c}}function lc(e){const t=e.localName,{toMessage:n,toLocal:o}=ge(e),a=De(e.message),r=e.message.typeName!="google.protobuf.Value";if(e.oneof){const i=e.oneof.localName;return(l,s,c)=>{const m=l[i];if(s===null&&r){m.case===t&&(l[i]={case:void 0});return}const p=n(m.case===t?m.value:void 0);a(p,s,c),l[i]={case:t,value:o(p)}}}return(i,l,s)=>{if(l===null&&r){delete i[t];return}const c=n(i[t]);a(c,l,s),i[t]=o(c)}}function sc(e){const t=e.localName,n=cc(e);return(o,a,r)=>{if(a===null)return;if(!Array.isArray(a))throw new L(e,"expected Array, got "+D(a));const i=o[t];for(let l=0;l<a.length;l++){const s=n(a[l],r,i.length);s!==_e&&i.push(s)}}}function cc(e){switch(e.listKind){case"scalar":{const t=Ln(e),n=ye(e.scalar),o=jn(e);return(a,r,i)=>{if(a===null)throw new L(e,"list item must not be null");const l=t(a),s=n(l);if(s!==!0)throw new L(e,`list item #${i+1}: ${ce(e,l,s)}`);return o(l)}}case"enum":{const t=Kn(e.enum),n=zn(e.enum),o=e.enum.typeName!="google.protobuf.NullValue";return(a,r,i)=>{if(a===null&&o)throw new L(e,"list item must not be null");const l=t(a,r.ignoreUnknownFields);if(l===_e)return l;const s=n(l);if(s!==!0)throw new L(e,`list item #${i+1}: ${ce(e,l,s)}`);return l}}case"message":{const{toMessage:t,toLocal:n}=ge(e),o=De(e.message),a=e.message.typeName!="google.protobuf.Value";return(r,i)=>{if(r===null&&a)throw new L(e,"list item must not be null");const l=t(void 0);return o(l,r,i),n(l)}}}}function uc(e){const t=e.localName,n=e.mapKey,o=dc(n),a=ye(n);let r,i,l=c=>c,s=!0;switch(e.mapKind){case"scalar":r=Ln(e),i=ye(e.scalar),l=jn(e);break;case"enum":{const c=Kn(e.enum);r=(m,p)=>c(m,p.ignoreUnknownFields),i=zn(e.enum),s=e.enum.typeName!="google.protobuf.NullValue";break}case"message":{const{toMessage:c,toLocal:m}=ge(e),p=De(e.message);s=e.message.typeName!="google.protobuf.Value",r=(R,Z)=>{const V=c(void 0);return p(V,R,Z),m(V)};break}}return(c,m,p)=>{if(m===null)return;if(typeof m!="object"||Array.isArray(m))throw new L(e,"expected object, got "+D(m));const R=c[t],Z=new Set,V=Object.keys(m);for(let G=0;G<V.length;G++){const B=V[G],J=m[B],u=o(B);if(Z.has(u))throw new L(e,`duplicate map key "${B}"`);if(Z.add(u),J===null&&s)throw new L(e,"map value must not be null");const d=r(J,p);if(d===_e)continue;const g=a(u);if(g!==!0)throw new L(e,`invalid map key: ${ce({scalar:n},u,g)}`);if(i!==void 0){const h=i(d);if(h!==!0)throw new L(e,`map entry ${D(u)}: ${ce(e,d,h)}`)}ue(R,u,l(d))}}}var _e=Symbol();function Kn(e){const t=e.values[0].number,n=new Map;for(const o of e.values)n.set(o.jsonName,o.number);for(const o of e.values)n.set(o.name,o.number);return(o,a)=>{if(o===null)return t;switch(typeof o){case"number":if(Number.isInteger(o))return o;break;case"string":{const r=n.get(o);if(r!==void 0)return r;if(a)return _e;break}}throw new Error(`cannot decode ${e} from JSON: ${D(o)}`)}}function zn(e){if(e.open)return ye(b.INT32);const t=e.values;return n=>t.some(o=>o.number===n)}function Er(e){const t=Ln(e),n=ye(e.scalar),o=jn(e);return a=>{const r=t(a),i=n(r);if(i!==!0)throw new L(e,ce(e,r,i));return o(r)}}function Ln(e){switch(e.scalar){case b.DOUBLE:case b.FLOAT:return t=>{if(t==="NaN")return NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof t=="number"){if(Number.isNaN(t))throw new L(e,"unexpected NaN number");if(!Number.isFinite(t))throw new L(e,"unexpected infinite number");return t}if(typeof t=="string"){if(t===""||t.trim().length!==t.length)return t;const n=Number(t);return Number.isFinite(n)?n:t}return t};case b.INT32:case b.FIXED32:case b.SFIXED32:case b.SINT32:case b.UINT32:return Vr;case b.BYTES:return t=>{if(typeof t=="string"){if(t==="")return new Uint8Array(0);try{return Bn(t)}catch(n){throw new L(e,n instanceof Error?n.message:String(n))}}return t};default:return t=>t}}function jn(e){const t=e.fieldKind!=="map"&&e.longAsString;switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.parse(n):n;case b.FIXED64:case b.UINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.uParse(n):n;default:return n=>n}}function dc(e){switch(e){case b.BOOL:return t=>{switch(t){case"true":return!0;case"false":return!1}return t};case b.INT32:case b.FIXED32:case b.UINT32:case b.SFIXED32:case b.SINT32:return Vr;case b.INT64:case b.SINT64:case b.SFIXED64:case b.UINT64:case b.FIXED64:return t=>/^-?0+$/.test(t)?"0":t.replace(/^(-?)0+(?=\d)/,"$1");default:return t=>t}}function Vr(e){if(typeof e=="string"){if(e===""||e.trim().length!==e.length)return e;const t=Number(e);return Number.isNaN(t)?e:t}return e}function mc(e,t){let n;try{n=JSON.parse(e)}catch(o){const a=o instanceof Error?o.message:String(o);throw new Error(`cannot decode message ${t} from JSON: ${a}`,{cause:o})}return bc(e,t),n}function bc(e,t){const n=[];let o=!1,a=0;for(;a<e.length;)switch(e[a]){case"{":n.push(new Set),o=!0,a++;break;case"[":n.push(null),o=!1,a++;break;case"}":case"]":n.pop(),o=!1,a++;break;case",":o=n[n.length-1]!=null,a++;break;case":":o=!1,a++;break;case'"':{const r=a++;let i=!1;for(;a<e.length;){if(e[a]=="\\"){i=!0,a+=2;continue}if(e[a]=='"')break;a++}const l=a++,s=n[n.length-1];if(o&&s){const c=i?JSON.parse(e.substring(r,l+1)):e.substring(r+1,l);if(s.has(c))throw new Error(`cannot decode message ${t} from JSON: duplicate object key "${c}"`);s.add(c)}o=!1;break}default:a++;break}}function hc(e,t,n){var o;if(t===null||Array.isArray(t)||typeof t!="object")throw new Error(`cannot decode message ${e.$typeName} from JSON: expected object but got ${D(t)}`);if(Object.keys(t).length==0)return;const a=t["@type"];if(typeof a!="string"||a=="")throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is empty`);const r=a.includes("/")?a.substring(a.lastIndexOf("/")+1):a;if(!r.length)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is invalid`);const i=(o=n.registry)===null||o===void 0?void 0:o.getMessage(r);if(!i)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${a} is not in the type registry`);const l=oe(i);if(Sa(i)&&Object.prototype.hasOwnProperty.call(t,"value"))De(i)(l,t.value,n);else{const s={};for(const c of Object.keys(t))c!=="@type"&&ue(s,c,t[c]);De(i)(l,s,n)}vs(i,l,e)}function gc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);const o=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(o))throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);if(o<dr||o>mr)throw new Error(`cannot decode message ${e.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);e.seconds=z.parse(o/1e3),e.nanos=0,n[7]&&(e.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}function pc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(n===null)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const o=Number(n[1]);if(o>315576e6||o<-315576e6)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);if(e.seconds=z.parse(o),typeof n[2]!="string")return;const a=n[2]+"0".repeat(9-n[2].length);e.nanos=parseInt(a),(o<0||Object.is(o,-0))&&(e.nanos=-e.nanos)}function Ac(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);t!==""&&(e.paths=t.split(",").map(n=>{if(n.includes("_"))throw new Error(`cannot decode message ${e.$typeName} from JSON: path names must be lowerCamelCase`);return Ta(n)}))}function Nr(e,t,n){if(typeof t!="object"||t==null||Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);const o=Object.keys(t);for(let a=0;a<o.length;a++){const r=o[a],i=oe(sr);Hn(i,t[r],n),ue(e.fields,r,i)}}function Hn(e,t,n){if(++n.depth>n.recursionLimit)throw new Error(`cannot decode ${e.$typeName} from JSON: maximum recursion depth of ${n.recursionLimit} reached`);switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(t===null)e.kind={case:"nullValue",value:dn.NULL_VALUE};else if(Array.isArray(t)){const o=oe(Bs);Gr(o,t,n),e.kind={case:"listValue",value:o}}else{const o=oe(ys);Nr(o,t,n),e.kind={case:"structValue",value:o}}break;default:throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`)}return n.depth--,e}function Gr(e,t,n){if(!Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);for(let o=0;o<t.length;o++){const a=oe(sr);Hn(a,t[o],n),e.values.push(a)}}function Qo(e){const t=f[e];return typeof t!="string"?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var S=class Te extends Error{constructor(t,n=f.Unknown,o,a,r){super(Zc(t,n)),this.name="ConnectError",this.isWireError=!1,Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=t,this.code=n,this.metadata=new Headers(o??{}),this.details=a??[],this.cause=r}static from(t,n=f.Unknown){return t instanceof Te?t:t instanceof Error?t.name=="AbortError"||t.name=="TimeoutError"?new Te(t.message,f.Canceled):new Te(t.message,n,void 0,void 0,t):new Te(String(t),n,void 0,void 0,t)}static[Symbol.hasInstance](t){return t instanceof Error?Object.getPrototypeOf(t)===Te.prototype?!0:t.name==="ConnectError"&&"code"in t&&typeof t.code=="number"&&"metadata"in t&&"details"in t&&Array.isArray(t.details)&&"rawMessage"in t&&typeof t.rawMessage=="string"&&"cause"in t:!1}findDetails(t){const n=t.kind==="message"?{getMessage:a=>a===t.typeName?t:void 0}:t,o=[];for(const a of this.details){if("desc"in a){n.getMessage(a.desc.typeName)&&o.push(oe(a.desc,a.value));continue}const r=n.getMessage(a.type);if(r)try{o.push(dt(r,a.value))}catch{}}return o}};function Zc(e,t){return e.length?`[${Qo(t)}] ${e}`:`[${Qo(t)}]`}function Rc(e,t,n){try{const o=Bn(e);return t?dt(t,o,n):o}catch(o){throw S.from(o,f.DataLoss)}}function fc(e,t){const n={};for(const o of e.methods){const a=t(o);a!=null&&(n[o.localName]=a)}return n}var Nt=4294967295,Dt=Nt,Ec=1024;function Vc(e,t,n){if(t!=null||(t=Dt),e!=null||(e=Nt),n!=null||(n=Ec),t<1||t>Dt)throw new S(`writeMaxBytes ${t} must be >= 1 and <= ${Dt}`,f.Internal);if(e<1||e>Nt)throw new S(`readMaxBytes ${e} must be >= 1 and <= ${Nt}`,f.Internal);return{readMaxBytes:e,writeMaxBytes:t,compressMinBytes:n}}function Nc(e,t){if(t>e)throw new S(`message size ${t} is larger than configured writeMaxBytes ${e}`,f.ResourceExhausted)}function Wr(e,t,n=!1){if(t>e){let o=`message size is larger than configured readMaxBytes ${e}`;throw n&&(o=`message size ${t} is larger than configured readMaxBytes ${e}`),new S(o,f.ResourceExhausted)}}function Gc(e){return new Wc(e)}var Wc=class{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,t)=>e+t.byteLength,0)}decode(e){this.buf.push(e);const t=[];for(;;){let n=this.pop();if(!n)break;t.push(n)}return t}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){const e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;const e=this.headerView.getUint8(0),t=this.headerView.getUint32(1);return Wr(this.readMaxBytes,t,!0),{flags:e,data:new Uint8Array(t)}}cons(e){const t=e.byteLength;if(this.byteLength<t)return!1;let n=0;for(;n<t;){const o=this.buf.shift();o.byteLength>t-n?(e.set(o.subarray(0,t-n),n),this.buf.unshift(o.subarray(t-n)),n+=t-n):(e.set(o,n),n+=o.byteLength)}return!0}};async function Sc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1)throw new S("invalid envelope, already compressed",f.Internal);return t&&a.byteLength>=n&&(a=await t.compress(a),o=o|1),{data:a,flags:o}}async function vc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1){if(!t)throw new S("received compressed envelope, but do not know how to decompress",f.Internal);a=await t.decompress(a,n),o=o^1}return{data:a,flags:o}}function Xc(e,t){const n=new Uint8Array(t.length+5);n.set(t,5);const o=new DataView(n.buffer,n.byteOffset,n.byteLength);return o.setUint8(0,e),o.setUint32(1,t.length),n}var fe=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(l,s){i=e[r](i),a(l,s,i.done,i.value)})}}function a(r,i,l,s){Promise.resolve(s).then(function(c){r({value:c,done:l})},i)}},k=function(e){return this instanceof k?(this.v=e,this):new k(e)},he=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,p)}}function l(Z,V){o[Z]&&(a[Z]=function(G){return new Promise(function(B,J){r.push([Z,G,B,J])>1||s(Z,G)})},V&&(a[Z]=V(a[Z])))}function s(Z,V){try{c(o[Z](V))}catch(G){R(r[0][3],G)}}function c(Z){Z.value instanceof k?Promise.resolve(Z.value.v).then(m,p):R(r[0][2],Z)}function m(Z){s("next",Z)}function p(Z){s("throw",Z)}function R(Z,V){Z(V),r.shift(),r.length&&s(r[0][0],r[0][1])}},Yc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:k(e[a](i)),done:!1}:r?r(i):i}:r}};function Ic(e,...t){const[n,o,a]=yc(t);let r=e,i;return a?.propagateDownStreamError===!0&&(r=i=Sr(r)),r=Gt(r,...n,{propagateDownStreamError:!1}),o(r).catch(l=>i?i.abort(l).then(()=>Promise.reject(l)):Promise.reject(l))}function yc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,e.pop(),t]}function Gt(e,...t){return he(this,arguments,function*(){var o;const[a,r]=Bc(t);let i;const l=e[Symbol.asyncIterator]();let s={[Symbol.asyncIterator](){return l}};r?.propagateDownStreamError===!0&&(s=i=Sr(s));for(const m of a)s=m(s);const c=s[Symbol.asyncIterator]();try{for(;;){const m=yield k(c.next());if(m.done===!0)break;if(!i){yield yield k(m.value);continue}try{yield yield k(m.value)}catch(p){throw yield k(i.abort(p)),p}}}finally{r?.propagateDownStreamError===!0&&((o=l.return)===null||o===void 0||o.call(l).catch(()=>{}))}})}function Bc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,t]}function Mo(e,t,n){return t===void 0||n===void 0?function(o){return he(this,arguments,function*(){var a,r,i,l;try{for(var s=!0,c=fe(o),m;m=yield k(c.next()),a=m.done,!a;s=!0){l=m.value,s=!1;const p=l;yield yield k({flags:0,data:e.serialize(p)})}}catch(p){r={error:p}}finally{try{!s&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return he(this,arguments,function*(){var a,r,i,l;try{for(var s=!0,c=fe(o),m;m=yield k(c.next()),a=m.done,!a;s=!0){l=m.value,s=!1;const p=l;let R,Z=0;p.end?(Z=Z|t,R=n.serialize(p.value)):R=e.serialize(p.value),yield yield k({flags:Z,data:R})}}catch(p){r={error:p}}finally{try{!s&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Oo(e,t,n){return n&&t!==void 0?function(o){return he(this,arguments,function*(){var a,r,i,l;try{for(var s=!0,c=fe(o),m;m=yield k(c.next()),a=m.done,!a;s=!0){l=m.value,s=!1;const{flags:p,data:R}=l;(p&t)===t?yield yield k({value:n.parse(R),end:!0}):yield yield k({value:e.parse(R),end:!1})}}catch(p){r={error:p}}finally{try{!s&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return he(this,arguments,function*(){var a,r,i,l;try{for(var s=!0,c=fe(o),m;m=yield k(c.next()),a=m.done,!a;s=!0){l=m.value,s=!1;const{flags:p,data:R}=l;if(t!==void 0&&(p&t)===t){if(n===null)throw new S("unexpected end flag",f.InvalidArgument);continue}yield yield k(e.parse(R))}}catch(p){r={error:p}}finally{try{!s&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Do(e,t){return function(n){return he(this,arguments,function*(){var o,a,r,i;try{for(var l=!0,s=fe(n),c;c=yield k(s.next()),o=c.done,!o;l=!0)i=c.value,l=!1,yield yield k(yield k(Sc(i,e,t)))}catch(m){a={error:m}}finally{try{!l&&!o&&(r=s.return)&&(yield k(r.call(s)))}finally{if(a)throw a.error}}})}}function _o(e,t){return function(n){return he(this,arguments,function*(){var o,a,r,i;try{for(var l=!0,s=fe(n),c;c=yield k(s.next()),o=c.done,!o;l=!0)i=c.value,l=!1,yield yield k(yield k(vc(i,e,t)))}catch(m){a={error:m}}finally{try{!l&&!o&&(r=s.return)&&(yield k(r.call(s)))}finally{if(a)throw a.error}}})}}function Po(){return function(e){return he(this,arguments,function*(){var t,n,o,a;try{for(var r=!0,i=fe(e),l;l=yield k(i.next()),t=l.done,!t;r=!0){a=l.value,r=!1;const{flags:s,data:c}=a;yield yield k(Xc(s,c))}}catch(s){n={error:s}}finally{try{!r&&!t&&(o=i.return)&&(yield k(o.call(i)))}finally{if(n)throw n.error}}})}}function $o(e){return function(t){return he(this,arguments,function*(){var n,o,a,r;const i=Gc(e);try{for(var l=!0,s=fe(t),c;c=yield k(s.next()),n=c.done,!n;l=!0){r=c.value,l=!1;const m=r;for(const p of i.decode(m))yield yield k(p)}}catch(m){o={error:m}}finally{try{!l&&!n&&(a=s.return)&&(yield k(a.call(s)))}finally{if(o)throw o.error}}if(i.byteLength>0)throw new S("protocol error: incomplete envelope",f.InvalidArgument)})}}function Sr(e){const t=e[Symbol.asyncIterator]();if(t.throw===void 0)throw new Error("AsyncIterable does not implement throw");const n=t;let o,a,r={next(){return a=n.next().finally(()=>{a=void 0}),a},throw(l){return n.throw(l)}};t.return!==void 0&&(r=Object.assign(Object.assign({},r),{return(l){return n.return(l)}}));let i=!1;return{abort(l){if(o)return o.state;const s=()=>n.throw(l).then(c=>c.done===!0?"completed":"caught",()=>"rethrown");return a?(o={reason:l,state:a.then(s,s)},o.state):(o={reason:l,state:s()},o.state)},[Symbol.asyncIterator](){if(i)throw new Error("AsyncIterable cannot be re-used");return i=!0,r}}}function vr(e){return he(this,arguments,function*(){yield k(yield*Yc(fe(e)))})}var Xr=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(l,s){i=e[r](i),a(l,s,i.done,i.value)})}}function a(r,i,l,s){Promise.resolve(s).then(function(c){r({value:c,done:l})},i)}},Pe=function(e){return this instanceof Pe?(this.v=e,this):new Pe(e)},Cc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:Pe(e[a](i)),done:!1}:r?r(i):i}:r}},Fc=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,p)}}function l(Z,V){o[Z]&&(a[Z]=function(G){return new Promise(function(B,J){r.push([Z,G,B,J])>1||s(Z,G)})},V&&(a[Z]=V(a[Z])))}function s(Z,V){try{c(o[Z](V))}catch(G){R(r[0][3],G)}}function c(Z){Z.value instanceof Pe?Promise.resolve(Z.value.v).then(m,p):R(r[0][2],Z)}function m(Z){s("next",Z)}function p(Z){s("throw",Z)}function R(Z,V){Z(V),r.shift(),r.length&&s(r[0][0],r[0][1])}};function Ne(e,t){return fc(e,n=>{switch(n.methodKind){case"unary":return Uc(t,n);case"server_streaming":return wc(t,n);case"client_streaming":return Jc(t,n);case"bidi_streaming":return kc(t,n);default:return null}})}function Uc(e,t){return async(n,o)=>{var a,r;const i=await e.unary(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);return(a=o?.onHeader)===null||a===void 0||a.call(o,i.header),(r=o?.onTrailer)===null||r===void 0||r.call(o,i.trailer),i.message}}function wc(e,t){return(n,o)=>Yr(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,vr([n]),o?.contextValues),o)}function Jc(e,t){return async(n,o)=>{var a,r,i,l,s,c;const m=await e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);(s=o?.onHeader)===null||s===void 0||s.call(o,m.header);let p,R=0;try{for(var Z=!0,V=Xr(m.message),G;G=await V.next(),a=G.done,!a;Z=!0)l=G.value,Z=!1,p=l,R++}catch(B){r={error:B}}finally{try{!Z&&!a&&(i=V.return)&&await i.call(V)}finally{if(r)throw r.error}}if(!p)throw new S("protocol error: missing response message",f.Unimplemented);if(R>1)throw new S("protocol error: received extra messages for client streaming method",f.Unimplemented);return(c=o?.onTrailer)===null||c===void 0||c.call(o,m.trailer),p}}function kc(e,t){return(n,o)=>Yr(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues),o)}function Yr(e,t){const n=(function(){return Fc(this,arguments,function*(){var o,a;const r=yield Pe(e);(o=t?.onHeader)===null||o===void 0||o.call(t,r.header),yield Pe(yield*Cc(Xr(r.message))),(a=t?.onTrailer)===null||a===void 0||a.call(t,r.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function xc(...e){const t=new AbortController,n=e.filter(a=>a!==void 0).concat(t.signal);for(const a of n){if(a.aborted){o.apply(a);break}a.addEventListener("abort",o)}function o(){t.signal.aborted||t.abort(st(this));for(const a of n)a.removeEventListener("abort",o)}return t}function Kc(e){const t=new AbortController,n=()=>{t.abort(new S("the operation timed out",f.DeadlineExceeded))};let o;return e!==void 0&&(e<=0?n():o=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(o)}}function st(e){if(!e.aborted)return;if(e.reason!==void 0)return e.reason;const t=new Error("This operation was aborted");return t.name="AbortError",t}function qo(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}function zc(e){const t=new Headers,n=new TextDecoder().decode(e).split(`\r
29
29
  `);for(const o of n){if(o==="")continue;const a=o.indexOf(":");if(a>0){const r=o.substring(0,a).trim(),i=o.substring(a+1).trim();t.append(r,i)}}return t}function Lc(e){const t=[];return e.forEach((n,o)=>{t.push(`${o}: ${n}\r
30
- `)}),new TextEncoder().encode(t.join(""))}function ea(){return{serialize:Lc,parse:zc}}var jc="Content-Type",Ir="Grpc-Encoding",Tc="Grpc-Accept-Encoding",Hc="Grpc-Timeout",yr="Grpc-Status";var Qc="Grpc-Status-Details-Bin",Mc="User-Agent",Oc="X-User-Agent",Dc="X-Grpc-Web",_c="application/grpc-web+proto",Pc="application/grpc-web+json";function Ve(e,t,...n){if(n.length>0)throw new Error;return e.services[t]}var $c=q("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[nr]),qc=G($c,0);function Cr(e){var t;const n=e.get(Qc);if(n!=null){const a=fc(n,qc);if(a.code==0)return;const r=new S(a.message,a.code,e);return r.details=a.details.map(i=>({type:i.typeUrl.substring(i.typeUrl.lastIndexOf("/")+1),value:i.value})),r.isWireError=!0,r}const o=e.get(yr);if(o!=null){if(o==="0")return;const a=parseInt(o,10);let r;return a in R?r=new S(decodeURIComponent((t=e.get("Grpc-Message"))!==null&&t!==void 0?t:""),a,e):r=new S(`invalid grpc-status: ${o}`,R.Internal,e),r.isWireError=!0,r}}function ta(e,t){return e.toString().replace(/\/?$/,`/${t.parent.typeName}/${t.name}`)}function Br(e,t){return oe(e,t)}function eu(e,t){function n(o){return o.done===!0?o:{done:o.done,value:Br(e,o.value)}}return{[Symbol.asyncIterator](){const o=t[Symbol.asyncIterator](),a={next:()=>o.next().then(n)};return o.throw!==void 0&&(a.throw=r=>o.throw(r).then(n)),o.return!==void 0&&(a.return=r=>o.return(r).then(n)),a}}}function Fr(e,t){if(!t)return e;for(const n of t.concat().reverse())e=n(e);return e}function tu(e){var t;const n=Object.assign({},e);return(t=n.ignoreUnknownFields)!==null&&t!==void 0||(n.ignoreUnknownFields=!0),n}function na(e,t,n,o){const a=At(oa(e.input,t),o),r=At(aa(e.input,n),o),i=At(oa(e.output,t),o),s=At(aa(e.output,n),o);return{getI(l){return l?a:r},getO(l){return l?i:s}}}function At(e,t){return{serialize(n){const o=e.serialize(n);return Gc(t.writeMaxBytes,o.byteLength),o},parse(n){return Wr(t.readMaxBytes,n.byteLength,!0),e.parse(n)}}}function oa(e,t){return{parse(n){try{return dt(e,n,t)}catch(o){throw new S(`parse binary: ${o instanceof Error?o.message:String(o)}`,R.Internal)}},serialize(n){try{return or(e,n,t)}catch(o){throw new S(`serialize binary: ${o instanceof Error?o.message:String(o)}`,R.Internal)}}}}function aa(e,t){var n,o;const a=(n=t?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,r=(o=t?.textDecoder)!==null&&o!==void 0?o:new TextDecoder,i=tu(t);return{parse(s){try{return tc(e,r.decode(s),i)}catch(l){throw S.from(l,R.InvalidArgument)}},serialize(s){try{const l=Kl(e,s,i);return a.encode(l)}catch(l){throw S.from(l,R.Internal)}}}}function nu(e){const t=Fr(e.next,e.interceptors),[n,o,a]=wr(e);return t(Object.assign(Object.assign({},e.req),{message:Br(e.req.method.input,e.req.message),signal:n})).then(r=>(a(),r),o)}function ou(e){const t=Fr(e.next,e.interceptors),[n,o,a]=wr(e),r=Object.assign(Object.assign({},e.req),{message:eu(e.req.method.input,e.req.message),signal:n});let i=!1;return n.addEventListener("abort",function(){var s,l;const c=e.req.message[Symbol.asyncIterator]();i||(s=c.throw)===null||s===void 0||s.call(c,this.reason).catch(()=>{}),(l=c.return)===null||l===void 0||l.call(c).catch(()=>{})}),t(r).then(s=>Object.assign(Object.assign({},s),{message:{[Symbol.asyncIterator](){const l=s.message[Symbol.asyncIterator]();return{next(){return!i&&n.aborted?o(lt(n)):l.next().then(c=>(c.done==!0&&(i=!0,a()),c),o)}}}}}),o)}function wr(e){const{signal:t,cleanup:n}=xc(e.timeoutMs),o=Kc(e.signal,t);return[o.signal,function(r){const i=o.signal.aborted?S.from(lt(o.signal),R.Canceled):S.from(r);return o.abort(i),n(),Promise.reject(i)},function(){n(),o.abort()}]}var au=q("CiVoYWdpY29kZS9jb21tb24vdjEvZXJyb3JfZGV0YWlsLnByb3RvEhJoYWdpY29kZS5jb21tb24udjEiQgoLRXJyb3JEZXRhaWwSDAoEY29kZRgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIoqgIlUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLkNvbW1vbi5WMWIGcHJvdG8z",[Ne]),ru=G(au,0),P={USAGE:2,HTTP_BAD_REQUEST:20,HTTP_UNAUTHORIZED:21,HTTP_FORBIDDEN:23,HTTP_NOT_FOUND:24,HTTP_CONFLICT:29,OPERATION_FAILED:30,HTTP_CLIENT_ERROR:40,HTTP_SERVER_ERROR:50,TRANSPORT:60,UNKNOWN:70},w=class extends Error{constructor(e){super(e),this.name="CliUsageError"}},mt=class extends Error{constructor(e){super(e),this.name="CliOperationFailedError"}},xe=class extends Error{status;details;constructor(e,t,n){super(t),this.name="CliHttpError",this.status=e,this.details=n}};function Hn(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return e}function $e(e,t){const n=Hn(e)?.[t];return typeof n=="string"&&n.trim()?n.trim():void 0}function Ur(e){return e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ENOTFOUND")||e.includes("ECONNRESET")||e.includes("ETIMEDOUT")||e.includes("EHOSTUNREACH")||e.includes("EAI_AGAIN")||e.includes("Failed to parse URL")||e.includes("Invalid URL")}function ra(e){switch(e){case 400:return P.HTTP_BAD_REQUEST;case 401:return P.HTTP_UNAUTHORIZED;case 403:return P.HTTP_FORBIDDEN;case 404:return P.HTTP_NOT_FOUND;case 409:return P.HTTP_CONFLICT;default:return e&&e>=400&&e<500?P.HTTP_CLIENT_ERROR:e&&e>=500?P.HTTP_SERVER_ERROR:P.UNKNOWN}}var iu={[R.InvalidArgument]:400,[R.OutOfRange]:400,[R.Unauthenticated]:401,[R.PermissionDenied]:403,[R.NotFound]:404,[R.AlreadyExists]:409,[R.FailedPrecondition]:409,[R.Aborted]:409,[R.Unimplemented]:501,[R.Internal]:500,[R.Unknown]:500,[R.DataLoss]:500,[R.Unavailable]:503,[R.DeadlineExceeded]:504},su=/exceeds?\s+the\s+maximum|too\s+large|payload\s+too\s+large/i;function lu(e){return e.code===R.ResourceExhausted?su.test(e.rawMessage)?413:429:iu[e.code]??500}function cu(e){return e.code!==R.Unavailable&&e.code!==R.Unknown&&e.code!==R.Internal&&e.code!==R.Aborted?!1:e.cause instanceof Error||Ur(e.rawMessage)}function Jr(e){if(!(e instanceof S)||e.code===R.Canceled||cu(e))return;const[t]=e.findDetails(ru),n=t&&t.code.length>0?t.code:void 0,o=t?.data??{},a=e.rawMessage.trim()||`The backend rejected the request (${R[e.code]}).`;return{status:lu(e),message:a,code:n,body:{error:a,...n?{code:n}:{},...o}}}function ia(e,t){const n=t.baseUrl??"the configured backend";return{exitCode:P.TRANSPORT,message:/Failed to parse URL|Invalid URL/i.test(e)?`Invalid HagiCode backend base URL: ${n}`:`Cannot reach HagiCode backend at ${n}. Check that the backend is running and the base URL is correct.`}}function kr(e,t={}){if(e instanceof w)return{exitCode:P.USAGE,message:e.message};if(e instanceof mt)return{exitCode:P.OPERATION_FAILED,message:e.message};if(e instanceof xe)return{exitCode:ra(e.status),status:e.status,message:e.message,details:e.details};if(e instanceof S){const n=Jr(e);if(n){const o=du(n.body);return{exitCode:ra(n.status),status:n.status,message:o.length>0?[n.message,...o].join(`
31
- `):n.message,errorCode:$e(n.body,"errorCode")??n.code,correlationId:$e(n.body,"correlationId"),details:n.body}}return e.code===R.Canceled?{exitCode:P.UNKNOWN,message:"The request was cancelled."}:ia(e.rawMessage,t)}return e instanceof Error?Ur(e.message)?ia(e.message,t):{exitCode:P.UNKNOWN,message:e.message}:{exitCode:P.UNKNOWN,message:String(e)}}function uu(e){const t=Hn(e)?.errors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function du(e){const t=Hn(e)?.fieldErrors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function Kr(e,t={}){if(t.json)return`${JSON.stringify({error:{message:e.message,status:e.status,exitCode:e.exitCode,errorCode:e.errorCode,correlationId:e.correlationId,details:e.details}},null,2)}
30
+ `)}),new TextEncoder().encode(t.join(""))}function ea(){return{serialize:Lc,parse:zc}}var jc="Content-Type",Ir="Grpc-Encoding",Hc="Grpc-Accept-Encoding",Tc="Grpc-Timeout",yr="Grpc-Status";var Qc="Grpc-Status-Details-Bin",Mc="User-Agent",Oc="X-User-Agent",Dc="X-Grpc-Web",_c="application/grpc-web+proto",Pc="application/grpc-web+json";function Ge(e,t,...n){if(n.length>0)throw new Error;return e.services[t]}var $c=q("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[nr]),qc=N($c,0);function Br(e){var t;const n=e.get(Qc);if(n!=null){const a=Rc(n,qc);if(a.code==0)return;const r=new S(a.message,a.code,e);return r.details=a.details.map(i=>({type:i.typeUrl.substring(i.typeUrl.lastIndexOf("/")+1),value:i.value})),r.isWireError=!0,r}const o=e.get(yr);if(o!=null){if(o==="0")return;const a=parseInt(o,10);let r;return a in f?r=new S(decodeURIComponent((t=e.get("Grpc-Message"))!==null&&t!==void 0?t:""),a,e):r=new S(`invalid grpc-status: ${o}`,f.Internal,e),r.isWireError=!0,r}}function ta(e,t){return e.toString().replace(/\/?$/,`/${t.parent.typeName}/${t.name}`)}function Cr(e,t){return oe(e,t)}function eu(e,t){function n(o){return o.done===!0?o:{done:o.done,value:Cr(e,o.value)}}return{[Symbol.asyncIterator](){const o=t[Symbol.asyncIterator](),a={next:()=>o.next().then(n)};return o.throw!==void 0&&(a.throw=r=>o.throw(r).then(n)),o.return!==void 0&&(a.return=r=>o.return(r).then(n)),a}}}function Fr(e,t){if(!t)return e;for(const n of t.concat().reverse())e=n(e);return e}function tu(e){var t;const n=Object.assign({},e);return(t=n.ignoreUnknownFields)!==null&&t!==void 0||(n.ignoreUnknownFields=!0),n}function na(e,t,n,o){const a=At(oa(e.input,t),o),r=At(aa(e.input,n),o),i=At(oa(e.output,t),o),l=At(aa(e.output,n),o);return{getI(s){return s?a:r},getO(s){return s?i:l}}}function At(e,t){return{serialize(n){const o=e.serialize(n);return Nc(t.writeMaxBytes,o.byteLength),o},parse(n){return Wr(t.readMaxBytes,n.byteLength,!0),e.parse(n)}}}function oa(e,t){return{parse(n){try{return dt(e,n,t)}catch(o){throw new S(`parse binary: ${o instanceof Error?o.message:String(o)}`,f.Internal)}},serialize(n){try{return or(e,n,t)}catch(o){throw new S(`serialize binary: ${o instanceof Error?o.message:String(o)}`,f.Internal)}}}}function aa(e,t){var n,o;const a=(n=t?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,r=(o=t?.textDecoder)!==null&&o!==void 0?o:new TextDecoder,i=tu(t);return{parse(l){try{return tc(e,r.decode(l),i)}catch(s){throw S.from(s,f.InvalidArgument)}},serialize(l){try{const s=xs(e,l,i);return a.encode(s)}catch(s){throw S.from(s,f.Internal)}}}}function nu(e){const t=Fr(e.next,e.interceptors),[n,o,a]=Ur(e);return t(Object.assign(Object.assign({},e.req),{message:Cr(e.req.method.input,e.req.message),signal:n})).then(r=>(a(),r),o)}function ou(e){const t=Fr(e.next,e.interceptors),[n,o,a]=Ur(e),r=Object.assign(Object.assign({},e.req),{message:eu(e.req.method.input,e.req.message),signal:n});let i=!1;return n.addEventListener("abort",function(){var l,s;const c=e.req.message[Symbol.asyncIterator]();i||(l=c.throw)===null||l===void 0||l.call(c,this.reason).catch(()=>{}),(s=c.return)===null||s===void 0||s.call(c).catch(()=>{})}),t(r).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){const s=l.message[Symbol.asyncIterator]();return{next(){return!i&&n.aborted?o(st(n)):s.next().then(c=>(c.done==!0&&(i=!0,a()),c),o)}}}}}),o)}function Ur(e){const{signal:t,cleanup:n}=Kc(e.timeoutMs),o=xc(e.signal,t);return[o.signal,function(r){const i=o.signal.aborted?S.from(st(o.signal),f.Canceled):S.from(r);return o.abort(i),n(),Promise.reject(i)},function(){n(),o.abort()}]}var au=q("CiVoYWdpY29kZS9jb21tb24vdjEvZXJyb3JfZGV0YWlsLnByb3RvEhJoYWdpY29kZS5jb21tb24udjEiQgoLRXJyb3JEZXRhaWwSDAoEY29kZRgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIoqgIlUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLkNvbW1vbi5WMWIGcHJvdG8z",[Ve]),ru=N(au,0),P={USAGE:2,HTTP_BAD_REQUEST:20,HTTP_UNAUTHORIZED:21,HTTP_FORBIDDEN:23,HTTP_NOT_FOUND:24,HTTP_CONFLICT:29,OPERATION_FAILED:30,HTTP_CLIENT_ERROR:40,HTTP_SERVER_ERROR:50,TRANSPORT:60,UNKNOWN:70},U=class extends Error{constructor(e){super(e),this.name="CliUsageError"}},mt=class extends Error{constructor(e){super(e),this.name="CliOperationFailedError"}},Ke=class extends Error{status;details;constructor(e,t,n){super(t),this.name="CliHttpError",this.status=e,this.details=n}};function Tn(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return e}function $e(e,t){const n=Tn(e)?.[t];return typeof n=="string"&&n.trim()?n.trim():void 0}function wr(e){return e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ENOTFOUND")||e.includes("ECONNRESET")||e.includes("ETIMEDOUT")||e.includes("EHOSTUNREACH")||e.includes("EAI_AGAIN")||e.includes("Failed to parse URL")||e.includes("Invalid URL")}function ra(e){switch(e){case 400:return P.HTTP_BAD_REQUEST;case 401:return P.HTTP_UNAUTHORIZED;case 403:return P.HTTP_FORBIDDEN;case 404:return P.HTTP_NOT_FOUND;case 409:return P.HTTP_CONFLICT;default:return e&&e>=400&&e<500?P.HTTP_CLIENT_ERROR:e&&e>=500?P.HTTP_SERVER_ERROR:P.UNKNOWN}}var iu={[f.InvalidArgument]:400,[f.OutOfRange]:400,[f.Unauthenticated]:401,[f.PermissionDenied]:403,[f.NotFound]:404,[f.AlreadyExists]:409,[f.FailedPrecondition]:409,[f.Aborted]:409,[f.Unimplemented]:501,[f.Internal]:500,[f.Unknown]:500,[f.DataLoss]:500,[f.Unavailable]:503,[f.DeadlineExceeded]:504},lu=/exceeds?\s+the\s+maximum|too\s+large|payload\s+too\s+large/i;function su(e){return e.code===f.ResourceExhausted?lu.test(e.rawMessage)?413:429:iu[e.code]??500}function cu(e){return e.code!==f.Unavailable&&e.code!==f.Unknown&&e.code!==f.Internal&&e.code!==f.Aborted?!1:e.cause instanceof Error||wr(e.rawMessage)}function Jr(e){if(!(e instanceof S)||e.code===f.Canceled||cu(e))return;const[t]=e.findDetails(ru),n=t&&t.code.length>0?t.code:void 0,o=t?.data??{},a=e.rawMessage.trim()||`The backend rejected the request (${f[e.code]}).`;return{status:su(e),message:a,code:n,body:{error:a,...n?{code:n}:{},...o}}}function ia(e,t){const n=t.baseUrl??"the configured backend";return{exitCode:P.TRANSPORT,message:/Failed to parse URL|Invalid URL/i.test(e)?`Invalid HagiCode backend base URL: ${n}`:`Cannot reach HagiCode backend at ${n}. Check that the backend is running and the base URL is correct.`}}function kr(e,t={}){if(e instanceof U)return{exitCode:P.USAGE,message:e.message};if(e instanceof mt)return{exitCode:P.OPERATION_FAILED,message:e.message};if(e instanceof Ke)return{exitCode:ra(e.status),status:e.status,message:e.message,details:e.details};if(e instanceof S){const n=Jr(e);if(n){const o=du(n.body);return{exitCode:ra(n.status),status:n.status,message:o.length>0?[n.message,...o].join(`
31
+ `):n.message,errorCode:$e(n.body,"errorCode")??n.code,correlationId:$e(n.body,"correlationId"),details:n.body}}return e.code===f.Canceled?{exitCode:P.UNKNOWN,message:"The request was cancelled."}:ia(e.rawMessage,t)}return e instanceof Error?wr(e.message)?ia(e.message,t):{exitCode:P.UNKNOWN,message:e.message}:{exitCode:P.UNKNOWN,message:String(e)}}function uu(e){const t=Tn(e)?.errors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function du(e){const t=Tn(e)?.fieldErrors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function xr(e,t={}){if(t.json)return`${JSON.stringify({error:{message:e.message,status:e.status,exitCode:e.exitCode,errorCode:e.errorCode,correlationId:e.correlationId,details:e.details}},null,2)}
32
32
  `;const n=[e.status?`status=${e.status}`:void 0,e.errorCode?`errorCode=${e.errorCode}`:void 0,e.correlationId?`correlationId=${e.correlationId}`:void 0].filter(Boolean),o=n.length>0?` (${n.join(", ")})`:"";return[`${e.message}${o}`,...uu(e.details)].join(`
33
33
  `)+`
34
- `}var mu="--base-url",hu="HAGI_API_BASE_URL";function Ze(e){const t=e?.trim();return t||void 0}function xr(e=process.env){return(0,to.join)(Ze(e.XDG_CONFIG_HOME)??(0,to.join)((0,vi.homedir)(),".config"),"hagi","config.json")}function bu(e=process.env){const t=xr(e);let n;try{n=(0,Si.readFileSync)(t,"utf8")}catch(r){if(r.code==="ENOENT")return;throw new w(`Cannot read CLI config file ${t}: ${r instanceof Error?r.message:String(r)}`)}let o;try{o=JSON.parse(n)}catch{throw new w(`CLI config file ${t} is not valid JSON.`)}const a=o&&typeof o=="object"&&!Array.isArray(o)?o.baseUrl:void 0;return typeof a=="string"?Ze(a):void 0}function gu(e={},t=process.env){const n=Ze(e.baseUrl)??Ze(t.HAGI_API_BASE_URL)??bu(t);if(!n)throw new w(`No backend base URL is configured. Set ${mu} <url>, the ${hu} environment variable, or "baseUrl" in ${xr(t)}.`);return{baseUrl:n,token:Ze(e.token)??Ze(t.HAGI_API_TOKEN),lang:Ze(e.lang)??Ze(t.HAGI_API_LANG)}}var ct;function pu(e={},t=process.env){return ct=gu(e,t),ct}function zr(){if(!ct)throw new w("The backend connection is not configured. Resolve the API runtime before calling the backend.");return ct}function Au(){return Ze(ct?.baseUrl)}var ee=q("CiFoYWdpY29kZS9wcm9qZWN0L3YxL3Byb2plY3QucHJvdG8SE2hhZ2ljb2RlLnByb2plY3QudjEiSwoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSMwoEYm9keRgBIAEoCzIlLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdER0byJIChVDcmVhdGVQcm9qZWN0UmVzcG9uc2USLwoGcmVzdWx0GAEgASgLMh8uaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0RHRvIhoKGENyZWF0ZURlbW9Qcm9qZWN0UmVxdWVzdCJMChlDcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEi8KBnJlc3VsdBgBIAEoCzIfLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdER0byJXChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRIzCgRib2R5GAIgASgLMiUuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0RHRvIkgKFVVwZGF0ZVByb2plY3RSZXNwb25zZRIvCgZyZXN1bHQYASABKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REdG8iIgoURGVsZXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiFwoVRGVsZXRlUHJvamVjdFJlc3BvbnNlIkUKHkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg8KB3JlZnJlc2gYAiABKAgiZwofR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzUmVzcG9uc2VEdG8iPgooR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJInsKKUdldFByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8ikAEKKVNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSTwoEYm9keRgCIAEoCzJBLmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3REdG8ifAoqU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8iMwodR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJdCh5HZXRNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvIiwKFlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJWChdSZWxvYWRNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8igAEKIUNsb25lTW9ub1NwZWNzUmVwb3NpdG9yaWVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkcKBGJvZHkYAiABKAsyOS5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yaWVzUmVxdWVzdER0byJwCiJDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0byJpCihSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEQoEcGF0aBgCIAEoCUgAiAEBEg0KBWZvcmNlGAMgASgIQgcKBV9wYXRoInQKKVJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0byIwChpJbml0aWFsaXplTW9ub1NwZWNzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIloKG0luaXRpYWxpemVNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8ifgogVXBkYXRlTW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRJGCgRib2R5GAIgASgLMjguaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0byJgCiFVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvImcKH0dldFByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIcCg9yZXBvc2l0b3J5X3BhdGgYAiABKAlIAIgBAUISChBfcmVwb3NpdG9yeV9wYXRoImEKIEdldFByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdERlc2lnbkRvY3VtZW50RHRvIoABCiBTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkgKBGJvZHkYAiABKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8ibAohU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3VsdER0byI2CiBHZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJImMKIUdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXNwb25zZRI+CgZyZXN1bHQYASABKAsyLi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhEdG8iRwojR2V0UHJvamVjdERlc2lnblNpdGVEb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRzbHVnGAIgASgJImkKJEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXNwb25zZRJBCgZyZXN1bHQYASABKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlRG9jdW1lbnREdG8ieQocVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhMKC2JyYW5jaF9uYW1lGAIgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgDIAEoCUgAiAEBQhIKEF9yZXBvc2l0b3J5X3BhdGgiYQodVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucHJvamVjdC52MS5CcmFuY2hWYWxpZGF0aW9uUmVzcG9uc2VEdG8iKgoaVmFsaWRhdGVQcm9qZWN0UGF0aFJlcXVlc3QSDAoEcGF0aBgBIAEoCSJdChtWYWxpZGF0ZVByb2plY3RQYXRoUmVzcG9uc2USPgoGcmVzdWx0GAEgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5QYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvIlcKGlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0EjkKBGJvZHkYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc1JlcXVlc3REdG8iWwobU2NhbkdpdFJlcG9zaXRvcmllc1Jlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnByb2plY3QudjEuU2NhbkdpdFJlcG9zUmVzcG9uc2VEdG8iYAoeVmFsaWRhdGVNb25vU3BlY3NDb25maWdSZXF1ZXN0Ej4KBGJvZHkYASABKAsyMC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzUmVxdWVzdER0byJkCh9WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAEoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVNb25vU3BlY3NSZXNwb25zZUR0byItChdHZXRQcm9qZWN0VmF1bHRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIlUKGEdldFByb2plY3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIqABCh5PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgCIAEoCUgAiAEBEhUKCHN1Yl9wYXRoGAMgASgJSAGIAQFCHQobX2N1cnJlbnRfaW50ZXJmYWNlX2xhbmd1YWdlQgsKCV9zdWJfcGF0aCJlCh9PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlc3BvbnNlEkIKBnJlc3VsdBgBIAEoCzIyLmhhZ2ljb2RlLnByb2plY3QudjEuVnNDb2RlU2VydmVyTGF1bmNoUmVzcG9uc2VEdG8iNQofR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIl4KIEdldFByb2plY3RHaXRXYXRjaFN0YXR1c1Jlc3BvbnNlEjoKBnJlc3VsdBgBIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdEdpdFdhdGNoU3RhdHVzIkAKDlN1YlJlcG9JbmZvRHRvEgwKBG5hbWUYASABKAkSDAoEcGF0aBgCIAEoCRISCgpoYXNfYWdlbnRzGAMgASgIIvEDCgpQcm9qZWN0RHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjEKDWNyZWF0aW9uX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmxhc3RfbW9kaWZpY2F0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhUKDWlzX21vbm9fc3BlY3MYByABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAggASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgJIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgKIAEoCEgDiAEBEj0KEHN1Yl9yZXBvc2l0b3JpZXMYCyADKAsyIy5oYWdpY29kZS5wcm9qZWN0LnYxLlN1YlJlcG9JbmZvRHRvQg4KDF9kZXNjcmlwdGlvbkIVChNfbW9ub19zcGVjc192ZXJzaW9uQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiWAoQQ3JlYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iWAoQVXBkYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24i5gIKG1Byb2plY3RTdGFuZGFyZFdvcmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIWCglwYXJlbnRfaWQYAyABKAlIAIgBARIPCgdlbmFibGVkGAQgASgIEg0KBW9yZGVyGAUgASgFEhMKC3NvdXJjZV90eXBlGAYgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAcgASgJEgwKBHRhZ3MYCCADKAkSFQoIbGFuZ3VhZ2UYCSABKAlIAYgBARJQCghtZXRhZGF0YRgKIAMoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIu0CChxQcm9qZWN0U3RhbmRhcmRXb3JkUGhyYXNlRHRvEhAKCGdyb3VwX2lkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIWCg5zdWJtaXR0ZWRfdGV4dBgEIAEoCRIPCgdlbmFibGVkGAUgASgIEg0KBW9yZGVyGAYgASgFEhMKC3NvdXJjZV90eXBlGAcgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAggASgJEgwKBHRhZ3MYCSADKAkSFQoIbGFuZ3VhZ2UYCiABKAlIAIgBARJRCghtZXRhZGF0YRgLIAMoCzI/LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFBocmFzZUR0by5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUILCglfbGFuZ3VhZ2UinAEKHFByb2plY3RTdGFuZGFyZFdvcmRTb3VyY2VEdG8SDAoEdHlwZRgBIAEoCRIVCg1yZWxhdGl2ZV9wYXRoGAIgASgJEhEKCWZ1bGxfcGF0aBgDIAEoCRIOCgZleGlzdHMYBCABKAgSNAoQbGFzdF9tb2RpZmllZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiygEKIVByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGAoLc291cmNlX3R5cGUYBCABKAlIAIgBARIaCg1yZWxhdGl2ZV9wYXRoGAUgASgJSAGIAQESEgoFZmllbGQYBiABKAlIAogBAUIOCgxfc291cmNlX3R5cGVCEAoOX3JlbGF0aXZlX3BhdGhCCAoGX2ZpZWxkIr0DCh9Qcm9qZWN0U3RhbmRhcmRXb3Jkc1Jlc3BvbnNlRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKZnJvbV9jYWNoZRgFIAEoCBJCCgdzb3VyY2VzGAYgAygLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3JkU291cmNlRHRvEkAKBmdyb3VwcxgHIAMoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvEkIKB3BocmFzZXMYCCADKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRQaHJhc2VEdG8SSwoLZGlhZ25vc3RpY3MYCSADKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0byK6AgolUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZVBocmFzZUR0bxILCgNrZXkYASABKAkSDQoFbGFiZWwYAiABKAkSFgoOc3VibWl0dGVkX3RleHQYAyABKAkSDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSACIAQESWgoIbWV0YWRhdGEYCCADKAsySC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCwoJX2xhbmd1YWdlIpIDCiRQcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSFgoJcGFyZW50X2lkGAMgASgJSACIAQESDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSAGIAQESWQoIbWV0YWRhdGEYCCADKAsyRy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVHcm91cER0by5NZXRhZGF0YUVudHJ5EksKB3BocmFzZXMYCSADKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8aLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIsQBCiVQcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEhMKC3NvdXJjZV90eXBlGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhMKC2dyb3VwX2NvdW50GAQgASgFEhQKDHBocmFzZV9jb3VudBgFIAEoBRI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLWAQokUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhMKC3NvdXJjZV90eXBlGAIgASgJEhUKDXJlbGF0aXZlX3BhdGgYAyABKAkSEQoJZnVsbF9wYXRoGAQgASgJEg4KBmV4aXN0cxgFIAEoCBI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglzaWduYXR1cmUYByABKAkilgEKIVByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxITCgtncm91cF9jb3VudBgBIAEoBRIUCgxwaHJhc2VfY291bnQYAiABKAUSHAoUZGlzYWJsZWRfZW50cnlfY291bnQYAyABKAUSEQoJdGFnX2NvdW50GAQgASgFEhUKDXNvdXJjZV9zdGF0dXMYBSABKAki8wQKKVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudERvY3VtZW50RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoGZ3JvdXBzGAUgAygLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SQgoHc291cmNlcxgGIAMoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFNvdXJjZUR0bxJaChZ1c2VyX292ZXJsYXlfc3VtbWFyaWVzGAcgAygLMjouaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEkoKCnN0YXRpc3RpY3MYCCABKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxJRCg5zb3VyY2VfdmVyc2lvbhgJIAEoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEksKC2RpYWdub3N0aWNzGAogAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0RpYWdub3N0aWNEdG8i5AEKLFNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEkkKBmdyb3VwcxgCIAMoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZUdyb3VwRHRvElEKDnNvdXJjZV92ZXJzaW9uGAMgASgLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc1NvdXJjZVZlcnNpb25EdG8iVQojTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJEhIKCnZhbHVlX2tpbmQYAyABKAki5gQKIE1vbm9TcGVjc01hbmFnZW1lbnRSZXBvc2l0b3J5RHRvEgwKBG5hbWUYASABKAkSEQoEY29kZRgCIAEoCUgAiAEBEgwKBHBhdGgYAyABKAkSEAoDdXJsGAQgASgJSAGIAQESGQoMZGlzcGxheV9uYW1lGAUgASgJSAKIAQESEQoEdHlwZRgGIAEoCUgDiAEBEhEKBGljb24YByABKAlIBIgBARIQCghvcHRpb25hbBgIIAEoCBIMCgR0YWdzGAkgAygJEkoKCG1ldGFkYXRhGAogAygLMjguaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50TWV0YWRhdGFFbnRyeUR0bxIZChFpc192YWxpZF9naXRfcmVwbxgLIAEoCBITCgZicmFuY2gYDCABKAlIBYgBARIfChdoYXNfdW5jb21taXR0ZWRfY2hhbmdlcxgNIAEoCBIdChV1bnB1c2hlZF9jb21taXRfY291bnQYDiABKAUSGwoTaGFzX3RyYWNraW5nX2JyYW5jaBgPIAEoCBI1Cg90cmFja2luZ19icmFuY2gYECABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSEwoLYWhlYWRfY291bnQYESABKAUSFAoMYmVoaW5kX2NvdW50GBIgASgFEhcKCnN5bmNfc3RhdGUYEyABKAlIBogBAUIHCgVfY29kZUIGCgRfdXJsQg8KDV9kaXNwbGF5X25hbWVCBwoFX3R5cGVCBwoFX2ljb25CCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSKiAgoWTW9ub1NwZWNzTWFuYWdlbWVudER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhMKC2NvbmZpZ19wYXRoGAMgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYBCABKAgSFAoMeWFtbF9wcmV2aWV3GAUgASgJEksKDHJlcG9zaXRvcmllcxgGIAMoCzI1LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudFJlcG9zaXRvcnlEdG8SSgoIbWV0YWRhdGEYByADKAsyOC5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnRNZXRhZGF0YUVudHJ5RHRvImMKIU1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yeVJlc3VsdER0bxIMCgRwYXRoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIUCgdtZXNzYWdlGAMgASgJSACIAQFCCgoIX21lc3NhZ2UicAolTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0bxJHCgdyZXN1bHRzGAEgAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDbG9uZVJlcG9zaXRvcnlSZXN1bHREdG8iTwokTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXF1ZXN0RHRvEg0KBXBhdGhzGAEgAygJEhgKEGluY2x1ZGVfb3B0aW9uYWwYAiABKAgiZQoiTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0bxIMCgRwYXRoGAEgASgJEg8KB3JlbW92ZWQYAiABKAgSFAoHbWVzc2FnZRgDIAEoCUgAiAEBQgoKCF9tZXNzYWdlIoQCCiNVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYAyABKAgSSwoMcmVwb3NpdG9yaWVzGAQgAygLMjUuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50UmVwb3NpdG9yeUR0bxJKCghtZXRhZGF0YRgFIAMoCzI4LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8inQEKGFByb2plY3REZXNpZ25Eb2N1bWVudER0bxIMCgRwYXRoGAEgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgCIAEoCUgAiAEBEg8KB2NvbnRlbnQYAyABKAkSDgoGZXhpc3RzGAQgASgIEhQKB3ZlcnNpb24YBSABKAlIAYgBAUISChBfcmVwb3NpdG9yeV9wYXRoQgoKCF92ZXJzaW9uIoYBCiJTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzdWx0RHRvEgwKBHBhdGgYASABKAkSHAoPcmVwb3NpdG9yeV9wYXRoGAIgASgJSACIAQESDwoHY3JlYXRlZBgDIAEoCBIPCgd2ZXJzaW9uGAQgASgJQhIKEF9yZXBvc2l0b3J5X3BhdGgingEKJVVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAEgASgJSACIAQESDwoHY29udGVudBgCIAEoCRIdChBleHBlY3RlZF92ZXJzaW9uGAMgASgJSAGIAQFCEgoQX3JlcG9zaXRvcnlfcGF0aEITChFfZXhwZWN0ZWRfdmVyc2lvbiLAAQoeUHJvamVjdERlc2lnblNpdGVJbmRleEVudHJ5RHRvEgwKBHNsdWcYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHc3VtbWFyeRgDIAEoCRISCgpkZXRhaWxfdXJsGAQgASgJEhsKE2Rlc2lnbl9kb3dubG9hZF91cmwYBSABKAkSHwoXcHJldmlld19saWdodF9pbWFnZV91cmwYBiABKAkSHgoWcHJldmlld19kYXJrX2ltYWdlX3VybBgHIAEoCSK+AgoZUHJvamVjdERlc2lnblNpdGVJbmRleER0bxITCgtjYXRhbG9nX3VybBgBIAEoCRIVCg1zb3VyY2Vfc3RhdHVzGAIgASgJEhMKC2VudHJ5X2NvdW50GAMgASgFEkQKB2VudHJpZXMYBCADKAsyMy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhFbnRyeUR0bxIaCg1jYWNoZV9jb250cm9sGAUgASgJSACIAQESEgoFZV90YWcYBiABKAlIAYgBARIaCg1sYXN0X21vZGlmaWVkGAcgASgJSAKIAQESFAoHZXhwaXJlcxgIIAEoCUgDiAEBQhAKDl9jYWNoZV9jb250cm9sQggKBl9lX3RhZ0IQCg5fbGFzdF9tb2RpZmllZEIKCghfZXhwaXJlcyKZAgocUHJvamVjdERlc2lnblNpdGVEb2N1bWVudER0bxIMCgRzbHVnGAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB2NvbnRlbnQYAyABKAkSEgoKZGV0YWlsX3VybBgEIAEoCRIbChNkZXNpZ25fZG93bmxvYWRfdXJsGAUgASgJEhoKDWNhY2hlX2NvbnRyb2wYBiABKAlIAIgBARISCgVlX3RhZxgHIAEoCUgBiAEBEhoKDWxhc3RfbW9kaWZpZWQYCCABKAlIAogBARIUCgdleHBpcmVzGAkgASgJSAOIAQFCEAoOX2NhY2hlX2NvbnRyb2xCCAoGX2VfdGFnQhAKDl9sYXN0X21vZGlmaWVkQgoKCF9leHBpcmVzImoKG0JyYW5jaFZhbGlkYXRpb25SZXNwb25zZUR0bxIOCgZleGlzdHMYASABKAgSEAoIaXNfdmFsaWQYAiABKAgSFAoMaXNfYXZhaWxhYmxlGAMgASgIEhMKC2JyYW5jaF9uYW1lGAQgASgJIogDChlQYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvEhAKCGlzX3ZhbGlkGAEgASgIEg4KBnN0YXR1cxgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhYKCXBhdGhfdHlwZRgEIAEoCUgAiAEBEiIKFWhhc19tb25vX3NwZWNzX2NvbmZpZxgFIAEoCEgBiAEBEiMKFm1vbm9fc3BlY3NfY29uZmlnX3BhdGgYBiABKAlIAogBARImChltb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5GAcgASgJSAOIAQESKwoebW9ub19zcGVjc19jb21taXRfd2hlbl9hcmNoaXZlGAggASgISASIAQFCDAoKX3BhdGhfdHlwZUIYChZfaGFzX21vbm9fc3BlY3NfY29uZmlnQhkKF19tb25vX3NwZWNzX2NvbmZpZ19wYXRoQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiVgoKR2l0UmVwb0R0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSFQoNcmVsYXRpdmVfcGF0aBgDIAEoCRIVCg1pc19tb25vX3NwZWNzGAQgASgIIqQBChdTY2FuR2l0UmVwb3NSZXNwb25zZUR0bxI1CgxyZXBvc2l0b3JpZXMYASADKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLkdpdFJlcG9EdG8SEwoLdG90YWxfY291bnQYAiABKAUSDwoHc3VjY2VzcxgDIAEoCBIaCg1lcnJvcl9tZXNzYWdlGAQgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UijwEKFlNjYW5HaXRSZXBvc1JlcXVlc3REdG8SEQoJcm9vdF9wYXRoGAEgASgJEhEKCW1heF9kZXB0aBgCIAEoBRIWCg5leGNsdWRlX2hpZGRlbhgDIAEoCBIdChVtYXhfZm9sZGVyc19wZXJfbGV2ZWwYBCABKAUSGAoQZXhjbHVkZV9wYXR0ZXJucxgFIAMoCSJEChlNb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEg8KB3ZlcnNpb24YASABKAkSFgoOcmVwb19kaXJlY3RvcnkYAiABKAkikgEKHFZhbGlkYXRlTW9ub1NwZWNzUmVzcG9uc2VEdG8SEAoIaXNfdmFsaWQYASABKAgSPgoGY29uZmlnGAIgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEhAKCHdhcm5pbmdzGAMgAygJEg4KBmVycm9ycxgEIAMoCSIzChtWYWxpZGF0ZU1vbm9TcGVjc1JlcXVlc3REdG8SFAoMcHJvamVjdF9wYXRoGAEgASgJInwKG1ZhdWx0Qm9vdHN0cmFwRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGgoNcmVsYXRpdmVfcGF0aBgEIAEoCUgAiAEBQhAKDl9yZWxhdGl2ZV9wYXRoIt8CCgxWYXVsdEl0ZW1EdG8SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhUKDXBoeXNpY2FsX3BhdGgYBCABKAkSFAoHZ2l0X3VybBgFIAEoCUgAiAEBEjIKDmNyZWF0ZWRfYXRfdXRjGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg51cGRhdGVkX2F0X3V0YxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTwoVYm9vdHN0cmFwX2RpYWdub3N0aWNzGAggAygLMjAuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEJvb3RzdHJhcERpYWdub3N0aWNEdG8SDQoFc2NvcGUYCSABKAkSFwoKcHJvamVjdF9pZBgKIAEoCUgBiAEBQgoKCF9naXRfdXJsQg0KC19wcm9qZWN0X2lkIn4KFFZhdWx0TGlzdFJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKBWl0ZW1zGAIgAygLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8inwQKHFZzQ29kZVNlcnZlclJ1bnRpbWVTdGF0dXNEdG8SDgoGc3RhdHVzGAEgASgJEhsKE2FjdGl2ZV9jYXBhYmlsaXRpZXMYAiADKAkSEQoEaG9zdBgDIAEoCUgAiAEBEhwKD2NvbmZpZ3VyZWRfcG9ydBgEIAEoBUgBiAEBEhsKDmVmZmVjdGl2ZV9wb3J0GAUgASgFSAKIAQESFQoIYmFzZV91cmwYBiABKAlIA4gBARIWCglhdXRoX21vZGUYByABKAlIBIgBARITCgZzb3VyY2UYCCABKAlIBYgBARIVCg1zb3VyY2VfbG9ja2VkGAkgASgIEhIKCmhhc19zZWNyZXQYCiABKAgSGgoNc2VjcmV0X3NvdXJjZRgLIAEoCUgGiAEBEjkKFWxhc3RfYXR0ZW1wdGVkX2F0X3V0YxgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKbGFzdF9lcnJvchgNIAEoCUgHiAEBEhsKDnN0YXR1c19tZXNzYWdlGA4gASgJSAiIAQFCBwoFX2hvc3RCEgoQX2NvbmZpZ3VyZWRfcG9ydEIRCg9fZWZmZWN0aXZlX3BvcnRCCwoJX2Jhc2VfdXJsQgwKCl9hdXRoX21vZGVCCQoHX3NvdXJjZUIQCg5fc2VjcmV0X3NvdXJjZUINCgtfbGFzdF9lcnJvckIRCg9fc3RhdHVzX21lc3NhZ2UinAIKHVZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvEhIKCmxhdW5jaF91cmwYASABKAkSHQoQY29ubmVjdGlvbl90b2tlbhgCIAEoCUgAiAEBEhEKCW9wZW5fbW9kZRgDIAEoCRJCCgdydW50aW1lGAQgASgLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Wc0NvZGVTZXJ2ZXJSdW50aW1lU3RhdHVzRHRvEhgKC2luc3RhbmNlX2lkGAUgASgJSAGIAQESMgoOZXhwaXJlc19hdF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9jb25uZWN0aW9uX3Rva2VuQg4KDF9pbnN0YW5jZV9pZCKXAgoVUHJvamVjdEdpdFdhdGNoU3RhdHVzEh4KFm1vbml0b3JlZF9yZXBvc2l0b3JpZXMYASADKAkSNAoQbGFzdF9zY2FuX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbmV4dF9zY2FuX2F0X3V0YxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQcmVwb3NpdG9yeV9jb3VudBgEIAEoBRISCgppc19ydW5uaW5nGAUgASgIEiIKGm1heF9tb25pdG9yZWRfcmVwb3NpdG9yaWVzGAYgASgFEiAKGGdpdF9hdXRvX3JlZnJlc2hfZW5hYmxlZBgHIAEoCDL1GAoOUHJvamVjdFNlcnZpY2USZgoNQ3JlYXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVByb2plY3RSZXNwb25zZRJyChFDcmVhdGVEZW1vUHJvamVjdBItLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlRGVtb1Byb2plY3RSZXF1ZXN0Gi4uaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEmYKDVVwZGF0ZVByb2plY3QSKS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3RSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0UmVzcG9uc2USZgoNRGVsZXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkRlbGV0ZVByb2plY3RSZXNwb25zZRKEAQoXR2V0UHJvamVjdFN0YW5kYXJkV29yZHMSMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRKiAQohR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50Ej0uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0Gj4uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKlAQoiU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudBI+LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3QaPy5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKBAQoWR2V0TW9ub1NwZWNzTWFuYWdlbWVudBIyLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QaMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldE1vbm9TcGVjc01hbmFnZW1lbnRSZXNwb25zZRJsCg9SZWxvYWRNb25vU3BlY3MSKy5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QaLC5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1Jlc3BvbnNlEo0BChpDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllcxI2LmhhZ2ljb2RlLnByb2plY3QudjEuQ2xvbmVNb25vU3BlY3NSZXBvc2l0b3JpZXNSZXF1ZXN0GjcuaGFnaWNvZGUucHJvamVjdC52MS5DbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEqIBCiFSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXQSPS5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlcXVlc3QaPi5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEngKE0luaXRpYWxpemVNb25vU3BlY3MSLy5oYWdpY29kZS5wcm9qZWN0LnYxLkluaXRpYWxpemVNb25vU3BlY3NSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5Jbml0aWFsaXplTW9ub1NwZWNzUmVzcG9uc2USigEKGVVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2UShwEKGEdldFByb2plY3REZXNpZ25Eb2N1bWVudBI0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBo1LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGVNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5TYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGUdldFByb2plY3REZXNpZ25TaXRlSW5kZXgSNS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVzcG9uc2USkwEKHEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnQSOC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXF1ZXN0GjkuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZURvY3VtZW50UmVzcG9uc2USfgoVVmFsaWRhdGVQcm9qZWN0QnJhbmNoEjEuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXF1ZXN0GjIuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXNwb25zZRJ4ChNWYWxpZGF0ZVByb2plY3RQYXRoEi8uaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RQYXRoUmVxdWVzdBowLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVQcm9qZWN0UGF0aFJlc3BvbnNlEngKE1NjYW5HaXRSZXBvc2l0b3JpZXMSLy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5TY2FuR2l0UmVwb3NpdG9yaWVzUmVzcG9uc2UShAEKF1ZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnEjMuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1JlcXVlc3QaNC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnUmVzcG9uc2USbwoQR2V0UHJvamVjdFZhdWx0cxIsLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFZhdWx0c1JlcXVlc3QaLS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RWYXVsdHNSZXNwb25zZRKEAQoXT3BlblByb2plY3RJbkNvZGVTZXJ2ZXISMy5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5Qcm9qZWN0SW5Db2RlU2VydmVyUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuT3BlblByb2plY3RJbkNvZGVTZXJ2ZXJSZXNwb25zZRKHAQoYR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzEjQuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXF1ZXN0GjUuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXNwb25zZUIpqgImUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlByb2plY3QuVjFiBnByb3RvMw",[Ee,cr]),Zu=G(ee,1),fu=G(ee,5),Ru=G(ee,15),Eu=G(ee,17),Nu=G(ee,19),Gu=G(ee,21),Vu=G(ee,23),Wu=G(ee,25),Su=G(ee,41),vu=G(ee,50),Xu=G(ee,51),Yu=G(ee,69),Iu=G(ee,71),yu=G(ee,85),Cu=Ve(ee,0),We=q("Ch9oYWdpY29kZS9wcm9qZWN0L3YxL3ZhdWx0LnByb3RvEhNoYWdpY29kZS5wcm9qZWN0LnYxIhMKEUxpc3RWYXVsdHNSZXF1ZXN0Ik8KEkxpc3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIk4KEkNyZWF0ZVZhdWx0UmVxdWVzdBI4CgRib2R5GAEgASgLMiouaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3REdG8iSAoTQ3JlYXRlVmF1bHRSZXNwb25zZRIxCgZyZXN1bHQYASABKAsyIS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0SXRlbUR0byJaChJVcGRhdGVWYXVsdFJlcXVlc3QSCgoCaWQYASABKAkSOAoEYm9keRgCIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXF1ZXN0RHRvIkgKE1VwZGF0ZVZhdWx0UmVzcG9uc2USMQoGcmVzdWx0GAEgASgLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8iPAoSRGVsZXRlVmF1bHRSZXF1ZXN0EgoKAmlkGAEgASgJEhoKEmRlbGV0ZV9sb2NhbF9maWxlcxgCIAEoCCJSChNEZWxldGVWYXVsdFJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXNwb25zZUR0byI+ChRHZXRWYXVsdEZpbGVzUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRwYXRoGAIgASgJSACIAQFCBwoFX3BhdGgiVgoVR2V0VmF1bHRGaWxlc1Jlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlTGlzdFJlc3BvbnNlRHRvIjYKGkdldFZhdWx0RmlsZVByZXZpZXdSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBHBhdGgYAiABKAkiXwobR2V0VmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlEkAKBnJlc3VsdBgBIAEoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlRHRvIo4BChxPcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBHBhdGgYAiABKAlIAIgBARInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgDIAEoCUgBiAEBQgcKBV9wYXRoQh0KG19jdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZSJjCh1PcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wcm9qZWN0LnYxLlZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvImwKFUNyZWF0ZVZhdWx0UmVxdWVzdER0bxIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSFQoNcGh5c2ljYWxfcGF0aBgDIAEoCRIUCgdnaXRfdXJsGAQgASgJSACIAQFCCgoIX2dpdF91cmwibAoVVXBkYXRlVmF1bHRSZXF1ZXN0RHRvEgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhQKB2dpdF91cmwYBCABKAlIAIgBAUIKCghfZ2l0X3VybCKdAQoWRGVsZXRlVmF1bHRSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRIPCgdkZWxldGVkGAIgASgIEiQKHGRlbGV0ZV9sb2NhbF9maWxlc19yZXF1ZXN0ZWQYAyABKAgSIwobbG9jYWxfZmlsZXNfZGVsZXRpb25fc3RhdHVzGAQgASgJEhsKE2xvY2FsX2ZpbGVzX2RlbGV0ZWQYBSABKAgizAEKEVZhdWx0RmlsZUVudHJ5RHRvEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSEQoJZmlsZV9uYW1lGAIgASgJEhQKDGlzX2RpcmVjdG9yeRgDIAEoCBIRCglleHRlbnNpb24YBCABKAkSEgoKc2l6ZV9ieXRlcxgFIAEoAxI1ChFsYXN0X21vZGlmaWVkX3V0YxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoRcHJldmlld19zdXBwb3J0ZWQYByABKAgimAIKGFZhdWx0RmlsZUxpc3RSZXNwb25zZUR0bxIQCgh2YXVsdF9pZBgBIAEoCRISCgp2YXVsdF9uYW1lGAIgASgJEhUKDXBoeXNpY2FsX3BhdGgYAyABKAkSDgoGc3RhdHVzGAQgASgJEhcKCmVycm9yX2NvZGUYBSABKAlIAIgBARIUCgdtZXNzYWdlGAYgASgJSAGIAQESFAoMaXNfdHJ1bmNhdGVkGAcgASgIEhgKEHRvdGFsX2ZpbGVfY291bnQYCCABKAUSNQoFaXRlbXMYCSADKAsyJi5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0RmlsZUVudHJ5RHRvQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIpQDChtWYXVsdEZpbGVQcmV2aWV3UmVzcG9uc2VEdG8SEAoIdmF1bHRfaWQYASABKAkSEgoKdmF1bHRfbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhUKDXJlbGF0aXZlX3BhdGgYBCABKAkSEQoJZmlsZV9uYW1lGAUgASgJEhEKCWV4dGVuc2lvbhgGIAEoCRISCgpzaXplX2J5dGVzGAcgASgDEjUKEWxhc3RfbW9kaWZpZWRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzdGF0dXMYCSABKAkSFwoKZXJyb3JfY29kZRgKIAEoCUgAiAEBEhQKB21lc3NhZ2UYCyABKAlIAYgBARIZChFwcmV2aWV3X3N1cHBvcnRlZBgMIAEoCBIZChFjb250ZW50X3RydW5jYXRlZBgNIAEoCBIUCgdjb250ZW50GA4gASgJSAKIAQFCDQoLX2Vycm9yX2NvZGVCCgoIX21lc3NhZ2VCCgoIX2NvbnRlbnQy9QUKDFZhdWx0U2VydmljZRJdCgpMaXN0VmF1bHRzEiYuaGFnaWNvZGUucHJvamVjdC52MS5MaXN0VmF1bHRzUmVxdWVzdBonLmhhZ2ljb2RlLnByb2plY3QudjEuTGlzdFZhdWx0c1Jlc3BvbnNlEmAKC0NyZWF0ZVZhdWx0EicuaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3QaKC5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVZhdWx0UmVzcG9uc2USYAoLVXBkYXRlVmF1bHQSJy5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVZhdWx0UmVxdWVzdBooLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXNwb25zZRJgCgtEZWxldGVWYXVsdBInLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXF1ZXN0GiguaGFnaWNvZGUucHJvamVjdC52MS5EZWxldGVWYXVsdFJlc3BvbnNlEmYKDUdldFZhdWx0RmlsZXMSKS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZXNSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5HZXRWYXVsdEZpbGVzUmVzcG9uc2USeAoTR2V0VmF1bHRGaWxlUHJldmlldxIvLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0VmF1bHRGaWxlUHJldmlld1JlcXVlc3QaMC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZVByZXZpZXdSZXNwb25zZRJ+ChVPcGVuVmF1bHRJbkNvZGVTZXJ2ZXISMS5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlcXVlc3QaMi5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuUHJvamVjdC5WMWIGcHJvdG8z",[Ee,ee]),Bu=G(We,1),Fu=G(We,3),wu=G(We,5),Uu=G(We,7),Ju=G(We,9),ku=G(We,11),Ku=G(We,14),xu=G(We,15),zu=Ve(We,0),Ce=q("CitoYWdpY29kZS9jb21tdW5pdHkvdjEvc2NoZWR1bGVkX3BsYW5zLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiQwoZTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBIXCgpwcm9qZWN0X2lkGAEgASgJSACIAQFCDQoLX3Byb2plY3RfaWQiWgoaTGlzdFNjaGVkdWxlZFBsYW5zUmVzcG9uc2USPAoGcmVzdWx0GAEgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSIlChdHZXRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJYChhHZXRTY2hlZHVsZWRQbGFuUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSI2CiBMaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIm0KIUxpc3RTY2hlZHVsZWRQbGFuUHJvYmxlbXNSZXNwb25zZRJICgZyZXN1bHQYASADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkRlZmluaXRpb25Qcm9ibGVtRHRvIvMBCiNMaXN0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VzUmVxdWVzdBIYCgtyYW5nZV9zdGFydBgBIAEoCUgAiAEBEhYKCXJhbmdlX2VuZBgCIAEoCUgBiAEBEh4KEWRpc3BsYXlfdGltZV96b25lGAMgASgJSAKIAQESEwoGY3Vyc29yGAQgASgJSAOIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgEiAEBQg4KDF9yYW5nZV9zdGFydEIMCgpfcmFuZ2VfZW5kQhQKEl9kaXNwbGF5X3RpbWVfem9uZUIJCgdfY3Vyc29yQg0KC19wcm9qZWN0X2lkInIKJExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VQYWdlUmVzcG9uc2UiWwoaQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSPQoEYm9keRgBIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiZwoaVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkSPQoEYm9keRgCIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiKAoaRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiHQobRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlInkKIkVkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlcXVlc3QSCgoCaWQYASABKAkSRwoEYm9keRgCIAEoCzI5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0ImMKI0VkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiYAokRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhoKDW9jY3VycmVuY2VfYXQYAiABKAlIAIgBAUIQCg5fb2NjdXJyZW5jZV9hdCJlCiVEZWxldGVTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiJQoXUnVuU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiVQoYUnVuU2NoZWR1bGVkUGxhblJlc3BvbnNlEjkKBnJlc3VsdBgBIAEoCzIpLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXNzaW9uUmVzcG9uc2VEdG8iJwoZU3RhcnRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJgChpTdGFydFNjaGVkdWxlZFBsYW5SZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvIigKFVNjaGVkdWxlZFBsYW5BZ2VudER0bxIPCgdoZXJvX2lkGAEgASgJImsKGVNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SEAoIc3RyYXRlZ3kYASABKAkSPAoGYWdlbnRzGAIgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudER0byLgAQonU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEioKBnJ1bl9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgCIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYAyABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIuMBCh5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USLwoLb3JpZ2luYWxfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBGtpbmQYAiABKAkSUAoIb3ZlcnJpZGUYAyABKAsyPi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEhwKD2lucHV0X2ZpbGVfcGF0aBgEIAEoCUgAiAEBQhIKEF9pbnB1dF9maWxlX3BhdGgiOAoWU2NoZWR1bGVkUGxhblJlcGVhdER0bxIMCgRydWxlGAEgASgJEhAKCHdlZWtkYXlzGAIgAygJIq8CChhTY2hlZHVsZWRQbGFuU2NoZWR1bGVEdG8SDAoEbW9kZRgBIAEoCRIqCgZydW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKCXRpbWVfem9uZRgDIAEoCUgAiAEBEhcKCnN0YXJ0X2RhdGUYBCABKAlIAYgBARIVCghlbmRfZGF0ZRgFIAEoCUgCiAEBEhgKC3RpbWVfb2ZfZGF5GAYgASgJSAOIAQESPQoGcmVwZWF0GAcgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXBlYXREdG9CDAoKX3RpbWVfem9uZUINCgtfc3RhcnRfZGF0ZUILCglfZW5kX2RhdGVCDgoMX3RpbWVfb2ZfZGF5IrgFChVTY2hlZHVsZWRQbGFuUmVzcG9uc2USCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRINCgVzY29wZRgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEiEKFGRlZmluaXRpb25fZmlsZV9wYXRoGAUgASgJSACIAQESDAoEbmFtZRgGIAEoCRIPCgdlbmFibGVkGAcgASgIEhEKBGljb24YCCABKAlIAYgBARISCgVjb2xvchgJIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkEKCHNjaGVkdWxlGAwgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGA0gASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgOIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRINCgVzdGF0ZRgPIAEoCRIvCgtuZXh0X3J1bl9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoKZXhjZXB0aW9ucxgRIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USHAoPaW5wdXRfZmlsZV9wYXRoGBIgASgJSAOIAQFCFwoVX2RlZmluaXRpb25fZmlsZV9wYXRoQgcKBV9pY29uQggKBl9jb2xvckISChBfaW5wdXRfZmlsZV9wYXRoIkcKIVNjaGVkdWxlZFBsYW5EZWZpbml0aW9uUHJvYmxlbUR0bxIRCglmaWxlX3BhdGgYASABKAkSDwoHbWVzc2FnZRgCIAEoCSLTAQofU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIMCgRtb2RlGAEgASgJEhEKBHJ1bGUYAiABKAlIAIgBARIQCgh3ZWVrZGF5cxgDIAMoCRIXCgpzdGFydF9kYXRlGAQgASgJSAGIAQESFQoIZW5kX2RhdGUYBSABKAlIAogBARIYCgt0aW1lX29mX2RheRgGIAEoCUgDiAEBQgcKBV9ydWxlQg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIOCgxfdGltZV9vZl9kYXki6gMKH1NjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USDwoHcGxhbl9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEjEKDW9jY3VycmVuY2VfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBG5hbWUYBCABKAkSDAoEdHlwZRgFIAEoCRIPCgdlbmFibGVkGAYgASgIEhEKBGljb24YByABKAlIAIgBARISCgVjb2xvchgIIAEoCUgBiAEBEg0KBXN0YXRlGAkgASgJEh8KEnNjaGVkdWxlX3RpbWVfem9uZRgKIAEoCUgCiAEBEkoKCnJlY3VycmVuY2UYCyABKAsyNi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIvCgtuZXh0X3J1bl9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLb3JpZ2luYWxfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2lzX21vZGlmaWVkGA4gASgIQgcKBV9pY29uQggKBl9jb2xvckIVChNfc2NoZWR1bGVfdGltZV96b25lIpMCCiNTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVBhZ2VSZXNwb25zZRIvCgtyYW5nZV9zdGFydBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJcmFuZ2VfZW5kGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFkaXNwbGF5X3RpbWVfem9uZRgDIAEoCRJHCgdlbnRyaWVzGAQgAygLMjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USGAoLbmV4dF9jdXJzb3IYBSABKAlIAIgBAUIOCgxfbmV4dF9jdXJzb3Ii0QIKGFNjaGVkdWxlZFBsYW5TYXZlUmVxdWVzdBIMCgR0eXBlGAEgASgJEhIKBXNjb3BlGAIgASgJSACIAQESDAoEbmFtZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIEhEKBGljb24YBSABKAlIAYgBARISCgVjb2xvchgGIAEoCUgCiAEBEkEKCHNjaGVkdWxlGAcgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGAggASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIICgZfc2NvcGVCBwoFX2ljb25CCAoGX2NvbG9yIo4CCiJTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0EjEKDW9jY3VycmVuY2VfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEioKBnJ1bl9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgDIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYBCABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIs4DChJDaGF0SGVyb1N1bW1hcnlEdG8SDwoHaGVyb19pZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKDWV4ZWN1dG9yX3R5cGUYBSABKAkSGQoMYWdlbnRfY2xpX2lkGAYgASgJSAKIAQESGwoOYWdlbnRfY2xpX25hbWUYByABKAlIA4gBARIbCg5hZ2VudF9jbGlfaWNvbhgIIAEoCUgEiAEBEhUKCG1vZGVsX2lkGAkgASgJSAWIAQESFwoKbW9kZWxfbmFtZRgKIAEoCUgGiAEBEhcKCm1vZGVsX2ljb24YCyABKAlIB4gBARIiChVzZWNvbmRhcnlfbW9kZWxfbGFiZWwYDCABKAlICIgBAUIOCgxfZGVzY3JpcHRpb25CBwoFX2ljb25CDwoNX2FnZW50X2NsaV9pZEIRCg9fYWdlbnRfY2xpX25hbWVCEQoPX2FnZW50X2NsaV9pY29uQgsKCV9tb2RlbF9pZEINCgtfbW9kZWxfbmFtZUINCgtfbW9kZWxfaWNvbkIYChZfc2Vjb25kYXJ5X21vZGVsX2xhYmVsIjgKFE9wZW5TcGVjVGFza1Byb2dyZXNzEhEKCWNvbXBsZXRlZBgBIAEoBRINCgV0b3RhbBgCIAEoBSKAAgoQT3BlblNwZWNGaWxlSW5mbxIRCglmaWxlX25hbWUYASABKAkSFQoNcmVsYXRpdmVfcGF0aBgCIAEoCRIOCgZleGlzdHMYAyABKAgSEQoJZmlsZV90eXBlGAQgASgJEhMKC2lzX3JlcXVpcmVkGAUgASgIEhMKC2lzX2FyY2hpdmVkGAYgASgIEjEKDWFyY2hpdmVkX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkIKDXRhc2tfcHJvZ3Jlc3MYCCABKAsyKy5oYWdpY29kZS5jb21tdW5pdHkudjEuT3BlblNwZWNUYXNrUHJvZ3Jlc3MiXgoRT3BlblNwZWNGaWxlc0luZm8SEQoJYmFzZV9wYXRoGAEgASgJEjYKBWZpbGVzGAIgAygLMicuaGFnaWNvZGUuY29tbXVuaXR5LnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIrcLChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEkEKD29wZW5fc3BlY19maWxlcxgOIAEoCzIoLmhhZ2ljb2RlLmNvbW11bml0eS52MS5PcGVuU3BlY0ZpbGVzSW5mbxIdChVwZW5kaW5nX21lc3NhZ2VfY291bnQYDyABKAUSRQoOcXVldWVfbWVzc2FnZXMYECADKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuUXVldWVNZXNzYWdlU3VtbWFyeUR0bxIeChF3b3JraW5nX2RpcmVjdG9yeRgRIAEoCUgDiAEBEhUKCG1ldGFkYXRhGBIgASgJSASIAQESHwoSY2hhdF9leGVjdXRvcl90eXBlGBMgASgJSAWIAQESPAoJY2hhdF9oZXJvGBQgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJbChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPy5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlRXhlY3V0b3JNYXBFbnRyeRJmChhzdGFnZV9oZXJvX3NlbGVjdGlvbl9tYXAYFiADKAsyRC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlSGVyb1NlbGVjdGlvbk1hcEVudHJ5EiAKE3J1bnRpbWVfbW9kZWxfbGFiZWwYFyABKAlIBogBARI5ChVwcm9jZXNzaW5nX3N0YXJ0ZWRfYXQYGCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkQKDXNlc3Npb25fdXNhZ2UYGSABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJECg1ub3RpZmljYXRpb25zGBsgAygLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNlc3Npb25Ob3RpZmljYXRpb25EdG8aZAoVU3RhZ2VFeGVjdXRvck1hcEVudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TdGFnZUV4ZWN1dG9ySW5mb0R0bzoCOAEaagoaU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSCwoDa2V5GAEgASgJEjsKBXZhbHVlGAIgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMiLgobU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvEg8KB3BsYW5faWQYASABKAky0AsKFVNjaGVkdWxlZFBsYW5zU2VydmljZRJ5ChJMaXN0U2NoZWR1bGVkUGxhbnMSMC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBoxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhbnNSZXNwb25zZRJzChBHZXRTY2hlZHVsZWRQbGFuEi4uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXF1ZXN0Gi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXNwb25zZRKOAQoZTGlzdFNjaGVkdWxlZFBsYW5Qcm9ibGVtcxI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBo4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVzcG9uc2USlwEKHExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXMSOi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1JlcXVlc3QaOy5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1Jlc3BvbnNlEnwKE0NyZWF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE1VwZGF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE0RlbGV0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEpQBChtFZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOS5oYWdpY29kZS5jb21tdW5pdHkudjEuRWRpdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5FZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXNwb25zZRKaAQodRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOy5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0GjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2UScwoQUnVuU2NoZWR1bGVkUGxhbhIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVxdWVzdBovLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVzcG9uc2USeQoSU3RhcnRTY2hlZHVsZWRQbGFuEjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YXJ0U2NoZWR1bGVkUGxhblJlcXVlc3QaMS5oYWdpY29kZS5jb21tdW5pdHkudjEuU3RhcnRTY2hlZHVsZWRQbGFuUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ne,Ee]),Lu=G(Ce,1),ju=G(Ce,3),Tu=G(Ce,9),Hu=G(Ce,11),Qu=G(Ce,19),Mu=G(Ce,21),sa=G(Ce,33),Ou=Ve(Ce,0),Du=q("Ci1oYWdpY29kZS9jb21tdW5pdHkvdjEvY29tbXVuaXR5X3ByZXNldHMucHJvdG8SFWhhZ2ljb2RlLmNvbW11bml0eS52MSIdChtMaXN0Q29tbXVuaXR5UHJlc2V0c1JlcXVlc3QiYwocTGlzdENvbW11bml0eVByZXNldHNSZXNwb25zZRJDCgZyZXN1bHQYASABKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RSZXNwb25zZUR0byJmCh1JbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVxdWVzdBJFCgRib2R5GAEgASgLMjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvImwKHkluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8ifAogU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3QSEQoJcHJlc2V0X2lkGAEgASgJEkUKBGJvZHkYAiABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8ibwohU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRPcGVyYXRpb25SZXNwb25zZUR0byI0Ch9Vbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXF1ZXN0EhEKCXByZXNldF9pZBgBIAEoCSJuCiBVbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8iIAoeUmVmcmVzaENvbW11bml0eVByZXNldHNSZXF1ZXN0IiEKH1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UihwEKFkNvbW11bml0eVByZXNldFJpc2tEdG8SGQoRZGVjbGFyZXNfY29tbWFuZHMYASABKAgSFwoPZGVjbGFyZXNfc2tpbGxzGAIgASgIEhYKDmRlY2xhcmVzX2hvb2tzGAMgASgIEiEKGWRlY2xhcmVzX2NsaV9yZXF1aXJlbWVudHMYBCABKAgi2QQKGExvY2FsSGFnaVRhc2tMaXN0SXRlbUR0bxIRCglwcmVzZXRfaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEwoLc291cmNlX2tpbmQYBCABKAkSGQoRaW5zdGFsbGF0aW9uX2tpbmQYBSABKAkSFwoPbWFuYWdlbWVudF9raW5kGAYgASgJEiAKGGlzX3Nlc3Npb25fY3JlYXRpb25fb25seRgHIAEoCBIPCgdlbmFibGVkGAggASgIEhQKDGlzX3JlbW92YWJsZRgJIAEoCBIRCglwdWJsaXNoZXIYCiABKAkSHQoQc291cmNlX3JlZmVyZW5jZRgLIAEoCUgAiAEBEhsKDmFyY2hpdmVfc2hhMjU2GAwgASgJSAGIAQESNAoQaW5zdGFsbGVkX2F0X3V0YxgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoScmVsYXRpdmVfZGlyZWN0b3J5GA4gASgJEhgKC2Rlc2NyaXB0aW9uGA8gASgJSAKIAQESPAoFcmlza3MYECABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0Umlza0R0bxIWCglzb3VyY2VfaWQYESABKAlIA4gBARIRCgRpY29uGBIgASgJSASIAQFCEwoRX3NvdXJjZV9yZWZlcmVuY2VCEQoPX2FyY2hpdmVfc2hhMjU2Qg4KDF9kZXNjcmlwdGlvbkIMCgpfc291cmNlX2lkQgcKBV9pY29uIloKHVByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIRCgRwYXRoGAMgASgJSACIAQFCBwoFX3BhdGgiqQEKHExvY2FsSGFnaVRhc2tMaXN0UmVzcG9uc2VEdG8SPgoFaXRlbXMYASADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RJdGVtRHRvEkkKC2RpYWdub3N0aWNzGAIgAygLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvIqwDCh5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SEQoJcHJlc2V0X2lkGAEgASgJEhYKCW5hbWVzcGFjZRgCIAEoCUgAiAEBEg8KB3ZlcnNpb24YAyABKAkSEQoJcHVibGlzaGVyGAQgASgJEh0KEHNvdXJjZV9yZWZlcmVuY2UYBSABKAlIAYgBARIWCg5hcmNoaXZlX3NoYTI1NhgGIAEoCRI0ChBpbnN0YWxsZWRfYXRfdXRjGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJyZWxhdGl2ZV9kaXJlY3RvcnkYCCABKAkSDwoHZW5hYmxlZBgJIAEoCBI8CgVyaXNrcxgKIAEoCzItLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRSaXNrRHRvEhYKCXNvdXJjZV9pZBgLIAEoCUgCiAEBEhEKBGljb24YDCABKAlIA4gBAUIMCgpfbmFtZXNwYWNlQhMKEV9zb3VyY2VfcmVmZXJlbmNlQgwKCl9zb3VyY2VfaWRCBwoFX2ljb24ilAIKI0NvbW11bml0eVByZXNldE9wZXJhdGlvblJlc3BvbnNlRHRvEhEKCXN1Y2NlZWRlZBgBIAEoCBIWCglwcmVzZXRfaWQYAiABKAlIAIgBARISCgVlcnJvchgDIAEoCUgBiAEBEksKDGluc3RhbGxhdGlvbhgEIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SSQoLZGlhZ25vc3RpY3MYBSADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG9CDAoKX3ByZXNldF9pZEIICgZfZXJyb3IisgIKIENvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvEhYKDmFyY2hpdmVfYmFzZTY0GAEgASgJEh8KEmV4cGVjdGVkX3ByZXNldF9pZBgCIAEoCUgAiAEBEh0KEGV4cGVjdGVkX3ZlcnNpb24YAyABKAlIAYgBARIcCg9leHBlY3RlZF9zaGEyNTYYBCABKAlIAogBARIWCglwdWJsaXNoZXIYBSABKAlIA4gBARIdChBzb3VyY2VfcmVmZXJlbmNlGAYgASgJSASIAQFCFQoTX2V4cGVjdGVkX3ByZXNldF9pZEITChFfZXhwZWN0ZWRfdmVyc2lvbkISChBfZXhwZWN0ZWRfc2hhMjU2QgwKCl9wdWJsaXNoZXJCEwoRX3NvdXJjZV9yZWZlcmVuY2UiMwogQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8SDwoHZW5hYmxlZBgBIAEoCDLMBQoXQ29tbXVuaXR5UHJlc2V0c1NlcnZpY2USfwoUTGlzdENvbW11bml0eVByZXNldHMSMi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdENvbW11bml0eVByZXNldHNSZXF1ZXN0GjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UShQEKFkluc3RhbGxDb21tdW5pdHlQcmVzZXQSNC5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNS5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlc3BvbnNlEo4BChlTZXRDb21tdW5pdHlQcmVzZXRFbmFibGVkEjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXF1ZXN0GjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXNwb25zZRKLAQoYVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0EjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNy5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVzcG9uc2USiAEKF1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzEjUuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVxdWVzdBo2LmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZWZyZXNoQ29tbXVuaXR5UHJlc2V0c1Jlc3BvbnNlQiuqAihQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuQ29tbXVuaXR5LlYxYgZwcm90bzM",[Ee]),Qn=q("CihoYWdpY29kZS9jb21tdW5pdHkvdjEvcHJlc2V0X3Rhc2tzLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiHQobR2V0UHJlc2V0VGFza0NhdGFsb2dSZXF1ZXN0ImMKHEdldFByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2VEdG8ibwoiQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0byJzCiNDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRJMCgZyZXN1bHQYASABKAsyPC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tSZXNwb25zZUR0byIeChxMaXN0UHJlc2V0VGFza1NjaGVtYXNSZXF1ZXN0ImIKHUxpc3RQcmVzZXRUYXNrU2NoZW1hc1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU3VtbWFyeUR0byI0ChpHZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSJhChtHZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0byLKAQogUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDgoGc3RhdHVzGAQgASgJEhgKEHBsdWdpbl9yb290X3BhdGgYBSABKAkSSQoLZGlhZ25vc3RpY3MYBiADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG8iPQodUHJlc2V0VGFza0FnZW50UmVxdWlyZW1lbnREdG8SDAoEbW9kZRgBIAEoCRIOCgZhZ2VudHMYAiADKAki6gEKFFByZXNldFRhc2tDb21tYW5kRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEg0KBWxhYmVsGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhIKBXNraWxsGAUgASgJSACIAQESEAoDdXJsGAYgASgJSAGIAQESFgoJZG9jc19zbHVnGAcgASgJSAKIAQESHQoQcHJlbHVkZV90ZW1wbGF0ZRgIIAEoCUgDiAEBQggKBl9za2lsbEIGCgRfdXJsQgwKCl9kb2NzX3NsdWdCEwoRX3ByZWx1ZGVfdGVtcGxhdGUiNgoZUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCSLMAQobUHJlc2V0VGFza0NvbW1hbmRDYXRhbG9nRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxI9Cghjb21tYW5kcxgEIAMoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tbWFuZER0byJWChpQcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxIOCgZsZWdhY3kYASABKAkSDwoHYmluZGluZxgCIAEoCRIXCg9kaWFnbm9zdGljX2NvZGUYAyABKAkidAoWUHJlc2V0VGFza0V4ZWN1dGlvbkR0bxIWCg5zY2hlbWFfdmVyc2lvbhgBIAEoCRIQCghzdHJhdGVneRgCIAEoCRIcCg9leHRlbnNpb25fcG9pbnQYAyABKAlIAIgBAUISChBfZXh0ZW5zaW9uX3BvaW50Ip8CChlQcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEg0KBWlucHV0GAEgASgJEh0KEHByb21wdF9wYXJhbWV0ZXIYAiABKAlIAIgBARIZCgxtZXRhZGF0YV9rZXkYAyABKAlIAYgBARIQCghyZXF1aXJlZBgEIAEoCBIVCghwcm9kdWNlchgFIAEoCUgCiAEBEhcKCnZhbHVlX3R5cGUYBiABKAlIA4gBARIWCgl0cmFuc2Zvcm0YByABKAlIBIgBARIPCgdhbGlhc2VzGAggAygJQhMKEV9wcm9tcHRfcGFyYW1ldGVyQg8KDV9tZXRhZGF0YV9rZXlCCwoJX3Byb2R1Y2VyQg0KC192YWx1ZV90eXBlQgwKCl90cmFuc2Zvcm0iOAoYUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEg0KBXZhbHVlGAEgASgJEg0KBWxhYmVsGAIgASgJIt4DCiBQcmVzZXRUYXNrRmllbGRDb21wb25lbnRQcm9wc0R0bxIgChN0YXJnZXRfc2VsZWN0aW9uX2lkGAEgASgJSACIAQESFwoKZW1wdHlfdGV4dBgCIAEoCUgBiAEBEiMKFmFsbG93X291dHB1dF9zZWxlY3Rpb24YAyABKAhIAogBARIlChhyZXF1aXJlX291dHB1dF9zZWxlY3Rpb24YBCABKAhIA4gBARIYCgtlbXB0eV90aXRsZRgFIAEoCUgEiAEBEh4KEWVtcHR5X2Rlc2NyaXB0aW9uGAYgASgJSAWIAQESHQoQcmVxdWlyZWRfbWVzc2FnZRgHIAEoCUgGiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvQhYKFF90YXJnZXRfc2VsZWN0aW9uX2lkQg0KC19lbXB0eV90ZXh0QhkKF19hbGxvd19vdXRwdXRfc2VsZWN0aW9uQhsKGV9yZXF1aXJlX291dHB1dF9zZWxlY3Rpb25CDgoMX2VtcHR5X3RpdGxlQhQKEl9lbXB0eV9kZXNjcmlwdGlvbkITChFfcmVxdWlyZWRfbWVzc2FnZSL3AgoXUHJlc2V0VGFza1BhbmVsRmllbGREdG8SCgoCaWQYASABKAkSEAoIcmVuZGVyZXIYAiABKAkSEgoKaW5wdXRfdHlwZRgDIAEoCRISCgp2YWx1ZV90eXBlGAQgASgJEhIKBWxhYmVsGAUgASgJSACIAQESEQoEaGludBgGIAEoCUgBiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAKIAQESEAoIcmVxdWlyZWQYCCABKAgSEwoGb3V0cHV0GAkgASgJSAOIAQESGwoOc2VsZWN0aW9uX21vZGUYCiABKAlIBIgBARJQCg9jb21wb25lbnRfcHJvcHMYCyABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkQ29tcG9uZW50UHJvcHNEdG9CCAoGX2xhYmVsQgcKBV9oaW50Qg4KDF9wbGFjZWhvbGRlckIJCgdfb3V0cHV0QhEKD19zZWxlY3Rpb25fbW9kZSJ3ChlQcmVzZXRUYXNrUGFuZWxTZWN0aW9uRHRvEgoKAmlkGAEgASgJEg4KBmxheW91dBgCIAEoCRI+CgZmaWVsZHMYAyADKAsyLi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BhbmVsRmllbGREdG8iyQEKIVByZXNldFRhc2tQcm9tcHRWYXJpYW50U3VtbWFyeUR0bxIKCgJpZBgBIAEoCRJSCgVtYXRjaBgCIAMoCzJDLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUHJvbXB0VmFyaWFudFN1bW1hcnlEdG8uTWF0Y2hFbnRyeRpECgpNYXRjaEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi/gEKIlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SDAoEdHlwZRgBIAEoCRIWCg5kZWZhdWx0X2xvY2FsZRgCIAEoCRIZChFzdXBwb3J0ZWRfbG9jYWxlcxgDIAMoCRIRCglzZWxlY3RvcnMYBCADKAkSSgoIdmFyaWFudHMYBSADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1Byb21wdFZhcmlhbnRTdW1tYXJ5RHRvEiAKE2ZhbGxiYWNrX3ZhcmlhbnRfaWQYBiABKAlIAIgBAUIWChRfZmFsbGJhY2tfdmFyaWFudF9pZCJFChhQcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SDAoEdHlwZRgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBW5hbWVzGAMgAygJIqoDCh5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSYQoPdGl0bGVfYnlfbG9jYWxlGAQgAygLMkguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZVJlZ2lzdHJhdGlvbkR0by5UaXRsZUJ5TG9jYWxlRW50cnkSZQoRc3VtbWFyeV9ieV9sb2NhbGUYBSADKAsySi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjZW5lUmVnaXN0cmF0aW9uRHRvLlN1bW1hcnlCeUxvY2FsZUVudHJ5Eh0KFWJhY2tncm91bmRfaW1hZ2Vfc2xvdBgGIAEoBRo0ChJUaXRsZUJ5TG9jYWxlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo2ChRTdW1tYXJ5QnlMb2NhbGVFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIo8BChJQcmVzZXRUYXNrU2NlbmVEdG8SEAoIcHJvdmlkZXIYASABKAkSGQoRZGVmYXVsdF9zY2VuZV9rZXkYAiABKAkSTAoNcmVnaXN0cmF0aW9ucxgDIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8ivAEKHFByZXNldFRhc2tUYXJnZXRTZWxlY3Rpb25EdG8SCgoCaWQYASABKAkSDAoEa2luZBgCIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgDIAEoCRIcChRhbGxvd2VkX2FjY2Vzc190eXBlcxgEIAMoCRIOCgZvdXRwdXQYBSABKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEAoIcmVxdWlyZWQYByABKAhCDwoNX3Njb3BlX3NvdXJjZSLBCAoYUHJlc2V0VGFza0NhdGFsb2dJdGVtRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEhMKC3NvdXJjZV9raW5kGAMgASgJEg8KB3ZlcnNpb24YBCABKAkSEQoEaWNvbhgFIAEoCUgAiAEBEhQKDGRpc3BsYXlfbmFtZRgGIAEoCRINCgV0aXRsZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIVCg1kZWZhdWx0X3RpdGxlGAkgASgJEhQKDHN1Ym1pdF9sYWJlbBgKIAEoCRIYChBzdWJtaXR0aW5nX2xhYmVsGAsgASgJEhsKE2RlZmF1bHRfdGFyZ2V0X3R5cGUYDCABKAkSGwoTYWxsb3dfaGVyb19vdmVycmlkZRgNIAEoCBISCgpzb3J0X29yZGVyGA4gASgFEhkKEXN1cHBvcnRlZF9sb2NhbGVzGA8gAygJEkIKCHNlY3Rpb25zGBAgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQYW5lbFNlY3Rpb25EdG8SSwoPY29tbWFuZF9jYXRhbG9nGBEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDb21tYW5kQ2F0YWxvZ0R0bxJOChF0YXJnZXRfc2VsZWN0aW9ucxgSIAMoCzIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrVGFyZ2V0U2VsZWN0aW9uRHRvEk8KEWFnZW50X3JlcXVpcmVtZW50GBMgASgLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tBZ2VudFJlcXVpcmVtZW50RHRvEkUKDHJlcXVpcmVtZW50cxgUIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SUgoPcHJvbXB0X3N0cmF0ZWd5GBUgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SQAoJZXhlY3V0aW9uGBYgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tFeGVjdXRpb25EdG8SSAoNY29tcGF0aWJpbGl0eRgXIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxJICg5pbnB1dF9iaW5kaW5ncxgYIAMoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEjgKBXNjZW5lGBkgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZUR0b0IHCgVfaWNvbiKvAQocUHJlc2V0VGFza0NhdGFsb2dSZXNwb25zZUR0bxI+CgVpdGVtcxgBIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ2F0YWxvZ0l0ZW1EdG8STwoOZGlzYWJsZWRfaXRlbXMYAiADKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8iSAonUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tEaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSK1AQohUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvEgwKBHR5cGUYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZwYXNzZWQYAyABKAgSDwoHbWVzc2FnZRgEIAEoCRJTCgtkaWFnbm9zdGljcxgFIAMoCzI+LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnRDaGVja0RpYWdub3N0aWNEdG8iowEKJVByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVzcG9uc2VEdG8SFgoOcHJlc2V0X3Rhc2tfaWQYASABKAkSEgoKYWxsX3Bhc3NlZBgCIAEoCBJOCgxyZXF1aXJlbWVudHMYAyADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvIj4KJFByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0bxIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSLKAQoaUHJlc2V0VGFza1NjaGVtYVN1bW1hcnlEdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDwoHdmVyc2lvbhgEIAEoCRINCgV0aXRsZRgFIAEoCRITCgtkZXNjcmlwdGlvbhgGIAEoCRIUCgx0YXJnZXRfY291bnQYByABKAUSFQoNY29tbWFuZF9jb3VudBgIIAEoBRIXCg9wYXJhbWV0ZXJfY291bnQYCSABKAUieAoaUHJlc2V0VGFza1NjaGVtYUNvbW1hbmREdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEAoDdXJsGAUgASgJSACIAQFCBgoEX3VybCLSAQobUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxJDCghjb21tYW5kcxgEIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hQ29tbWFuZER0byI7ChhQcmVzZXRUYXNrU2NoZW1hQWxpYXNEdG8SCwoDa2V5GAEgASgJEhIKCmRlcHJlY2F0ZWQYAiABKAgitAIKHFByZXNldFRhc2tTY2hlbWFQYXJhbWV0ZXJEdG8SCwoDa2V5GAEgASgJEg4KBm9yaWdpbhgCIAEoCRIVCghwcm9kdWNlchgDIAEoCUgAiAEBEhIKCnZhbHVlX3R5cGUYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSDQoFbGFiZWwYBiABKAkSEQoEaGludBgHIAEoCUgBiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEkAKB2FsaWFzZXMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUFsaWFzRHRvQgsKCV9wcm9kdWNlckIHCgVfaGludCKHAQoaUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SDgoGbWV0aG9kGAEgASgJEgwKBHBhdGgYAiABKAkSHAoUcHJlc2V0X3Rhc2tfaWRfZmllbGQYAyABKAkSFAoMbG9jYWxlX2ZpZWxkGAQgASgJEhcKD3JlcXVpcmVkX2ZpZWxkcxgFIAMoCSJ4CiRQcmVzZXRUYXNrU2NoZW1hU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSHQoVYmFja2dyb3VuZF9pbWFnZV9zbG90GAQgASgFIpwBChlQcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEhAKCHByb3ZpZGVyGAEgASgJEhkKEWRlZmF1bHRfc2NlbmVfa2V5GAIgASgJElIKDXJlZ2lzdHJhdGlvbnMYAyADKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVNjZW5lUmVnaXN0cmF0aW9uRHRvIvQBChlQcmVzZXRUYXNrU2NoZW1hVGFyZ2V0RHRvEgoKAmlkGAEgASgJEgwKBGtpbmQYAiABKAkSFgoOc2VsZWN0aW9uX21vZGUYAyABKAkSEAoIcmVxdWlyZWQYBCABKAgSHAoUYWxsb3dlZF9hY2Nlc3NfdHlwZXMYBSADKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEwoLcmVxdWVzdF9rZXkYByABKAkSHgoRc2NvcGVfcmVxdWVzdF9rZXkYCCABKAlIAYgBAUIPCg1fc2NvcGVfc291cmNlQhQKEl9zY29wZV9yZXF1ZXN0X2tleSJ6ChhQcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SGwoTZGVmYXVsdF90YXJnZXRfdHlwZRgBIAEoCRJBCgd0YXJnZXRzGAIgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2hlbWFUYXJnZXREdG8i4wQKG1ByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0bxIKCgJpZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEg4KBmxvY2FsZRgDIAEoCRINCgV0aXRsZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRI+CgVzY29wZRgGIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SRAoIY29tbWFuZHMYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEkcKCnBhcmFtZXRlcnMYCCADKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVBhcmFtZXRlckR0bxJFCgxyZXF1aXJlbWVudHMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50RHRvEkAKBnNjZW5lcxgKIAEoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEkIKB3JlcXVlc3QYCyABKAsyMS5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SLQoMaW5wdXRfc2NoZW1hGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIoCgdleGFtcGxlGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdDKvBAoSUHJlc2V0VGFza3NTZXJ2aWNlEn8KFEdldFByZXNldFRhc2tDYXRhbG9nEjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFByZXNldFRhc2tDYXRhbG9nUmVxdWVzdBozLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrQ2F0YWxvZ1Jlc3BvbnNlEpQBChtDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHMSOS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5DaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRKCAQoVTGlzdFByZXNldFRhc2tTY2hlbWFzEjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RQcmVzZXRUYXNrU2NoZW1hc1JlcXVlc3QaNC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFByZXNldFRhc2tTY2hlbWFzUmVzcG9uc2USfAoTR2V0UHJlc2V0VGFza1NjaGVtYRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ne,Du]),_u=G(Qn,5),Pu=G(Qn,7),$u=Ve(Qn,0),te=q("CiloYWdpY29kZS9jb21tdW5pdHkvdjEvc2tpbGxfZ2FsbGVyeS5wcm90bxIVaGFnaWNvZGUuY29tbXVuaXR5LnYxIhcKFUdldExvY2FsU2tpbGxzUmVxdWVzdCJfChZHZXRMb2NhbFNraWxsc1Jlc3BvbnNlEkUKBnJlc3VsdBgBIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8iLAocR2V0QnVpbHRJblNraWxsRGV0YWlsUmVxdWVzdBIMCgRzbHVnGAEgASgJIl0KHUdldEJ1aWx0SW5Ta2lsbERldGFpbFJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5CdWlsdEluU2tpbGxEZXRhaWxEdG8iYAoaVW5pbnN0YWxsTG9jYWxTa2lsbFJlcXVlc3QSQgoEYm9keRgBIAEoCzI0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Vbmluc3RhbGxMb2NhbFNraWxsUmVxdWVzdER0byJiChtVbmluc3RhbGxMb2NhbFNraWxsUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXN1bHREdG8icAoiU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVxdWVzdBJKCgRib2R5GAEgASgLMjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlcXVlc3REdG8icgojU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVzcG9uc2USSwoGcmVzdWx0GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0byI2ChZHZXRTa2lsbEdhbGxlcnlSZXF1ZXN0EhIKBXF1ZXJ5GAEgASgJSACIAQFCCAoGX3F1ZXJ5IlkKF0dldFNraWxsR2FsbGVyeVJlc3BvbnNlEj4KBnJlc3VsdBgBIAEoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Ta2lsbEdhbGxlcnlSZXNwb25zZUR0byI6ChxHZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCSJdCh1HZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXNwb25zZRI8CgZyZXN1bHQYASABKAsyLC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5RGV0YWlsRHRvIkIKJEdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkibQolR2V0U2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHRSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHREdG8iIQofR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVxdWVzdCJuCiBHZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8ibgohVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0EkkKBGJvZHkYASABKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvInAKIlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVzcG9uc2USSgoGcmVzdWx0GAEgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyTGlzdFJlc3BvbnNlRHRvIm4KIURlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdER0byJwCiJEZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckxpc3RSZXNwb25zZUR0byIjCiFSZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QicAoiUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8iUgoTSW5zdGFsbFNraWxsUmVxdWVzdBI7CgRib2R5GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlcXVlc3REdG8iVAoUSW5zdGFsbFNraWxsUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlc3VsdER0byL3AQoYTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvEg8KB2VuYWJsZWQYASABKAgSFAoHdmVyc2lvbhgCIAEoCUgAiAEBEhMKBnNvdXJjZRgDIAEoCUgBiAEBEhcKCnJlcG9zaXRvcnkYBCABKAlIAogBARIQCgNyZWYYBSABKAlIA4gBARIRCgRwYXRoGAYgASgJSASIAQESGQoMY29udGVudF9oYXNoGAcgASgJSAWIAQFCCgoIX3ZlcnNpb25CCQoHX3NvdXJjZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQg8KDV9jb250ZW50X2hhc2givAIKI0xvY2FsU2tpbGxNYW5hZ2VkSW5zdGFsbE1ldGFkYXRhRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgFEhAKCHNraWxsX2lkGAIgASgJEg4KBnNvdXJjZRgDIAEoCRISCgpza2lsbF9zbHVnGAQgASgJEhQKB3ZlcnNpb24YBSABKAlIAIgBARIhChRub3JtYWxpemVkX3NraWxsX2tleRgGIAEoCUgBiAEBEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSAKIAQESMwoPcmVjb3JkZWRfYXRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfdmVyc2lvbkIXChVfbm9ybWFsaXplZF9za2lsbF9rZXlCFAoSX2luc3RhbGxfcmVmZXJlbmNlIosCChFMb2NhbFNraWxsSXRlbUR0bxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBXNjb3BlGAMgASgJEgwKBHBhdGgYBCABKAkSDgoGYWdlbnRzGAUgAygJElwKGG1hbmFnZWRfaW5zdGFsbF9tZXRhZGF0YRgGIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsTWFuYWdlZEluc3RhbGxNZXRhZGF0YUR0bxIOCgZvcmlnaW4YByABKAkSQQoIYnVpbHRfaW4YCCABKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvIo8BCh5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNwoFaXRlbXMYAiADKAsyKC5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEl0ZW1EdG8isQEKG0J1aWx0SW5Ta2lsbERldGFpbFNvdXJjZUR0bxIRCgR0eXBlGAEgASgJSACIAQESFwoKcmVwb3NpdG9yeRgCIAEoCUgBiAEBEhAKA3JlZhgDIAEoCUgCiAEBEhEKBHBhdGgYBCABKAlIA4gBARIQCgN1cmwYBSABKAlIBIgBAUIHCgVfdHlwZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQgYKBF91cmwiPAoYQnVpbHRJblNraWxsRmlsZUVudHJ5RHRvEgwKBHBhdGgYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoAyI5ChtCdWlsdEluU2tpbGxNZXRhZGF0YVBhaXJEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJIo4EChVCdWlsdEluU2tpbGxEZXRhaWxEdG8SDAoEc2x1ZxgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhQKB3ZlcnNpb24YBCABKAlIAIgBARIPCgdlbmFibGVkGAUgASgIEkQKCG1ldGFkYXRhGAYgAygLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbE1ldGFkYXRhUGFpckR0bxJCCgZzb3VyY2UYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQnVpbHRJblNraWxsRGV0YWlsU291cmNlRHRvEhkKDGNvbnRlbnRfaGFzaBgIIAEoCUgBiAEBEj4KBWZpbGVzGAkgAygLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbEZpbGVFbnRyeUR0bxISCgpmaWxlX2NvdW50GAogASgFEhgKEHRvdGFsX3NpemVfYnl0ZXMYCyABKAMSFwoPZmlsZXNfdHJ1bmNhdGVkGAwgASgIEhUKDWxpY2Vuc2VfZmlsZXMYDSADKAkSDAoEYm9keRgOIAEoCRIWCg5ib2R5X3RydW5jYXRlZBgPIAEoCBIXCg9ib2R5X3NpemVfYnl0ZXMYECABKANCCgoIX3ZlcnNpb25CDwoNX2NvbnRlbnRfaGFzaCLXAQocVW5pbnN0YWxsTG9jYWxTa2lsbFJlc3VsdER0bxISCgpza2lsbF9uYW1lGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIZCgx1c2VyX21lc3NhZ2UYAyABKAlIAIgBARIfChJkaWFnbm9zdGljX21lc3NhZ2UYBCABKAlIAYgBARIvCgtvY2N1cnJlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX3VzZXJfbWVzc2FnZUIVChNfZGlhZ25vc3RpY19tZXNzYWdlIjMKHVVuaW5zdGFsbExvY2FsU2tpbGxSZXF1ZXN0RHRvEhIKCnNraWxsX25hbWUYASABKAkivAEKJFNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0bxIMCgRzbHVnGAEgASgJEg8KB2VuYWJsZWQYAiABKAgSEQoJc3VjY2VlZGVkGAMgASgIEhkKDHVzZXJfbWVzc2FnZRgEIAEoCUgAiAEBEh8KEmRpYWdub3N0aWNfbWVzc2FnZRgFIAEoCUgBiAEBQg8KDV91c2VyX21lc3NhZ2VCFQoTX2RpYWdub3N0aWNfbWVzc2FnZSJGCiVTZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHlSZXF1ZXN0RHRvEgwKBHNsdWcYASABKAkSDwoHZW5hYmxlZBgCIAEoCCKlAgoiU2tpbGxHYWxsZXJ5UmVwb3NpdG9yeURpc2NvdmVyeUR0bxIMCgRtb2RlGAEgASgJEhwKD3JlcXVlc3RlZF9xdWVyeRgCIAEoCUgAiAEBEh4KEW5vcm1hbGl6ZWRfc291cmNlGAMgASgJSAGIAQESGwoOcmVwb3NpdG9yeV91cmwYBCABKAlIAogBARIPCgdvdXRjb21lGAUgASgJEhcKCmVycm9yX2NvZGUYBiABKAlIA4gBARIUCgdtZXNzYWdlGAcgASgJSASIAQFCEgoQX3JlcXVlc3RlZF9xdWVyeUIUChJfbm9ybWFsaXplZF9zb3VyY2VCEQoPX3JlcG9zaXRvcnlfdXJsQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIuYBCiNUcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSHgoRbWF0Y2hlZF9ydWxlX3R5cGUYBCABKAlIAIgBARIfChJtYXRjaGVkX3J1bGVfdmFsdWUYBSABKAlIAYgBARIRCglpc19wcmVzZXQYBiABKAhCFAoSX21hdGNoZWRfcnVsZV90eXBlQhUKE19tYXRjaGVkX3J1bGVfdmFsdWUiwwEKFFNraWxsR2FsbGVyeVNraWxsRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc291cmNlGAMgASgJEhAKCGluc3RhbGxzGAQgASgFEhkKEWlzX3RydXN0ZWRfc291cmNlGAUgASgIElQKEHRydXN0ZWRfcHJvdmlkZXIYBiABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJUcnVzdFN1bW1hcnlEdG8i5AEKF1NraWxsR2FsbGVyeVJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKBWl0ZW1zGAIgAygLMisuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVNraWxsRHRvElcKFHJlcG9zaXRvcnlfZGlzY292ZXJ5GAMgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVJlcG9zaXRvcnlEaXNjb3ZlcnlEdG8i7AUKFVNraWxsR2FsbGVyeURldGFpbER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhwKD3JlcG9zaXRvcnlfbmFtZRgFIAEoCUgBiAEBEiEKFHJlcG9zaXRvcnlfZnVsbF9uYW1lGAYgASgJSAKIAQESGwoOcmVwb3NpdG9yeV91cmwYByABKAlIA4gBARImChlyZXBvc2l0b3J5X2RlZmF1bHRfYnJhbmNoGAggASgJSASIAQESHwoScmVwb3NpdG9yeV9wcml2YXRlGAkgASgISAWIAQESFgoOaXNfaW5zdGFsbGFibGUYCiABKAgSGQoRaXNfdHJ1c3RlZF9zb3VyY2UYCyABKAgSVAoQdHJ1c3RlZF9wcm92aWRlchgMIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxIeChFpbnN0YWxsX3JlZmVyZW5jZRgNIAEoCUgGiAEBEiQKF2luc3RhbGxfY29tbWFuZF9wcmV2aWV3GA4gASgJSAeIAQESHAoPaW5zdGFsbF92ZXJzaW9uGA8gASgJSAiIAQESGQoMaW5zdGFsbF9oaW50GBAgASgJSAmIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9yZXBvc2l0b3J5X25hbWVCFwoVX3JlcG9zaXRvcnlfZnVsbF9uYW1lQhEKD19yZXBvc2l0b3J5X3VybEIcChpfcmVwb3NpdG9yeV9kZWZhdWx0X2JyYW5jaEIVChNfcmVwb3NpdG9yeV9wcml2YXRlQhQKEl9pbnN0YWxsX3JlZmVyZW5jZUIaChhfaW5zdGFsbF9jb21tYW5kX3ByZXZpZXdCEgoQX2luc3RhbGxfdmVyc2lvbkIPCg1faW5zdGFsbF9oaW50Iq4DCh1Ta2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIWCg5pc19pbnN0YWxsYWJsZRgEIAEoCBIZChFpc190cnVzdGVkX3NvdXJjZRgFIAEoCBJUChB0cnVzdGVkX3Byb3ZpZGVyGAYgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyVHJ1c3RTdW1tYXJ5RHRvEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSACIAQESJAoXaW5zdGFsbF9jb21tYW5kX3ByZXZpZXcYCCABKAlIAYgBARIcCg9pbnN0YWxsX3ZlcnNpb24YCSABKAlIAogBARIZCgxpbnN0YWxsX2hpbnQYCiABKAlIA4gBAUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCGgoYX2luc3RhbGxfY29tbWFuZF9wcmV2aWV3QhIKEF9pbnN0YWxsX3ZlcnNpb25CDwoNX2luc3RhbGxfaGludCJFCiBUcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0bxISCgptYXRjaF90eXBlGAEgASgJEg0KBXZhbHVlGAIgASgJIo8CChdUcnVzdGVkU2tpbGxQcm92aWRlckR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSEQoJaXNfcHJlc2V0GAQgASgIEhIKCmlzX2VuYWJsZWQYBSABKAgSEgoKc29ydF9vcmRlchgGIAEoBRISCgpydWxlX2NvdW50GAcgASgFEhcKD3NvdXJjZV9leGFtcGxlcxgIIAMoCRJMCgttYXRjaF9ydWxlcxgJIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0byKrAQojVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHdmVyc2lvbhgCIAEoBRI9CgVpdGVtcxgDIAMoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckR0byLxAQokVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtiYWRnZV9sYWJlbBgDIAEoCUgAiAEBEhIKCmlzX2VuYWJsZWQYBCABKAgSEgoKc29ydF9vcmRlchgFIAEoBRJMCgttYXRjaF9ydWxlcxgGIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0b0IOCgxfYmFkZ2VfbGFiZWwiOwokRGVsZXRlVHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJIrgDChVJbnN0YWxsU2tpbGxSZXN1bHREdG8SEAoIc2tpbGxfaWQYASABKAkSDgoGc291cmNlGAIgASgJEhIKCnNraWxsX3NsdWcYAyABKAkSIQoUbm9ybWFsaXplZF9za2lsbF9rZXkYBCABKAlIAIgBARIeChFpbnN0YWxsX3JlZmVyZW5jZRgFIAEoCUgBiAEBEhwKD2NvbW1hbmRfcHJldmlldxgGIAEoCUgCiAEBEhQKB3ZlcnNpb24YByABKAlIA4gBARIOCgZzdGF0dXMYCCABKAkSGQoMdXNlcl9tZXNzYWdlGAkgASgJSASIAQESHwoSZGlhZ25vc3RpY19tZXNzYWdlGAogASgJSAWIAQESLwoLb2NjdXJyZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhcKFV9ub3JtYWxpemVkX3NraWxsX2tleUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCEgoQX2NvbW1hbmRfcHJldmlld0IKCghfdmVyc2lvbkIPCg1fdXNlcl9tZXNzYWdlQhUKE19kaWFnbm9zdGljX21lc3NhZ2UiagoWSW5zdGFsbFNraWxsUmVxdWVzdER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIUCgd2ZXJzaW9uGAQgASgJSACIAQFCCgoIX3ZlcnNpb24y5QwKE1NraWxsR2FsbGVyeVNlcnZpY2USbQoOR2V0TG9jYWxTa2lsbHMSLC5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0TG9jYWxTa2lsbHNSZXF1ZXN0Gi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldExvY2FsU2tpbGxzUmVzcG9uc2USggEKFUdldEJ1aWx0SW5Ta2lsbERldGFpbBIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRCdWlsdEluU2tpbGxEZXRhaWxSZXF1ZXN0GjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldEJ1aWx0SW5Ta2lsbERldGFpbFJlc3BvbnNlEnwKE1VuaW5zdGFsbExvY2FsU2tpbGwSMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsTG9jYWxTa2lsbFJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsTG9jYWxTa2lsbFJlc3BvbnNlEpQBChtTZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHkSOS5oYWdpY29kZS5jb21tdW5pdHkudjEuU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHlSZXNwb25zZRJwCg9HZXRTa2lsbEdhbGxlcnkSLS5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5UmVxdWVzdBouLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlSZXNwb25zZRKCAQoVR2V0U2tpbGxHYWxsZXJ5RGV0YWlsEjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeURldGFpbFJlcXVlc3QaNC5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5RGV0YWlsUmVzcG9uc2USmgEKHUdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0EjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0UmVxdWVzdBo8LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dFJlc3BvbnNlEosBChhHZXRUcnVzdGVkU2tpbGxQcm92aWRlcnMSNi5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVxdWVzdBo3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRKRAQoaVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXISOC5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0GjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVzcG9uc2USkQEKGkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyEjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBo5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5EZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEpEBChpSZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVycxI4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QaOS5oYWdpY29kZS5jb21tdW5pdHkudjEuUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJnCgxJbnN0YWxsU2tpbGwSKi5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbFNraWxsUmVxdWVzdBorLmhhZ2ljb2RlLmNvbW11bml0eS52MS5JbnN0YWxsU2tpbGxSZXNwb25zZUIrqgIoUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLkNvbW11bml0eS5WMWIGcHJvdG8z",[Ee]),qu=G(te,1),ed=G(te,5),td=G(te,7),nd=G(te,9),od=G(te,11),ad=G(te,15),rd=G(te,17),id=G(te,19),sd=G(te,21),ld=G(te,23),cd=G(te,33),ud=G(te,35),dd=G(te,45),md=G(te,46),hd=G(te,48),bd=Ve(te,0),Lr=q("CiVoYWdpY29kZS9wbGF0Zm9ybS92MS9zdGF0aXN0aWNzLnByb3RvEhRoYWdpY29kZS5wbGF0Zm9ybS52MSJ1ChhHZXRBZ2dyZWdhdGVkRGF0YVJlcXVlc3QSFQoNZm9yY2VfcmVmcmVzaBgBIAEoCBIlChhnaXRfYXV0b19yZWZyZXNoX2VuYWJsZWQYAiABKAhIAIgBAUIbChlfZ2l0X2F1dG9fcmVmcmVzaF9lbmFibGVkIl0KGUdldEFnZ3JlZ2F0ZWREYXRhUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucGxhdGZvcm0udjEuRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8iHQobR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXF1ZXN0ImIKHEdldFRva2VuTW9uaXRvclVzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yVXNhZ2VTbmFwc2hvdER0byIlCiNHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVxdWVzdCJgCiRHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0RHRvIkQKIEdldFRva2VuVGhyb3VnaHB1dEhpc3RvcnlSZXF1ZXN0EhQKB21pbnV0ZXMYASABKAVIAIgBAUIKCghfbWludXRlcyJiCiFHZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5UmVzcG9uc2USPQoGcmVzdWx0GAEgAygLMi0uaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0U25hcHNob3QiOAoaR2V0SGVyb0JhdHRsZVJlcG9ydFJlcXVlc3QSEQoEZGF0ZRgBIAEoCUgAiAEBQgcKBV9kYXRlIlgKG0dldEhlcm9CYXR0bGVSZXBvcnRSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0RHRvIkAKIEdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXF1ZXN0EhIKBXJhbmdlGAEgASgJSACIAQFCCAoGX3JhbmdlImcKIUdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzUmVwb3J0RHRvIuwCChxHZXRIaXN0b3JpY2FsVGltZWxpbmVSZXF1ZXN0EhgKC2VudGl0eV90eXBlGAEgASgJSACIAQESFgoJZW50aXR5X2lkGAIgASgJSAGIAQESFwoKcHJvamVjdF9pZBgDIAEoCUgCiAEBEhcKCnNlc3Npb25faWQYBCABKAlIA4gBARIzCg9yYW5nZV9zdGFydF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXJhbmdlX2VuZF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBmN1cnNvchgHIAEoCUgEiAEBEhYKCXBhZ2Vfc2l6ZRgIIAEoBUgFiAEBQg4KDF9lbnRpdHlfdHlwZUIMCgpfZW50aXR5X2lkQg0KC19wcm9qZWN0X2lkQg0KC19zZXNzaW9uX2lkQgkKB19jdXJzb3JCDAoKX3BhZ2Vfc2l6ZSJpCh1HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXNwb25zZRJICgZyZXN1bHQYASABKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVRdWVyeVJlc3BvbnNlRHRvIiUKI0dldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXF1ZXN0InIKJEdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVzcG9uc2VEdG8iqgEKFkFnZ3JlZ2F0aW9uTWV0YWRhdGFEdG8SLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg50b3RhbF9wcm9qZWN0cxgCIAEoBRIaChJ0b3RhbF9yZXBvc2l0b3JpZXMYAyABKAUSFwoPZmFpbGVkX3Byb2plY3RzGAQgASgFEhQKDGhhc19mYWlsdXJlcxgFIAEoCCKyBQoYUmVwb3NpdG9yeUFnZ3JlZ2F0aW9uRHRvEhEKBGNvZGUYASABKAlIAIgBARIMCgRuYW1lGAIgASgJEgwKBHBhdGgYAyABKAkSFQoNcmVsYXRpdmVfcGF0aBgEIAEoCRIUCgxkaXNwbGF5X25hbWUYBSABKAkSEQoEdHlwZRgGIAEoCUgBiAEBEgwKBHRhZ3MYByADKAkSEQoEaWNvbhgIIAEoCUgCiAEBEhAKA3VybBgJIAEoCUgDiAEBEhgKEGNvbGxhcHNlX3RvX21vcmUYCiABKAgSGQoRaXNfdmFsaWRfZ2l0X3JlcG8YCyABKAgSHAoUZ2l0X3N0YXR1c19hdmFpbGFibGUYDCABKAgSEwoGYnJhbmNoGA0gASgJSASIAQESHwoXaGFzX3VuY29tbWl0dGVkX2NoYW5nZXMYDiABKAgSHQoVdW5wdXNoZWRfY29tbWl0X2NvdW50GA8gASgFEhsKE2hhc190cmFja2luZ19icmFuY2gYECABKAgSNQoPdHJhY2tpbmdfYnJhbmNoGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEhMKC2FoZWFkX2NvdW50GBIgASgFEhQKDGJlaGluZF9jb3VudBgTIAEoBRIXCgpzeW5jX3N0YXRlGBQgASgJSAWIAQESEwoLaXNfb3B0aW9uYWwYFSABKAgSFAoMaXNfc2FuaXRpemVkGBYgASgIEhsKE3Nhbml0aXphdGlvbl9yZWFzb24YFyABKAkSGAoQaGFzX25hbWVfd2FybmluZxgYIAEoCBIVCg1uYW1lX3dhcm5pbmdzGBkgAygJQgcKBV9jb2RlQgcKBV90eXBlQgcKBV9pY29uQgYKBF91cmxCCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSK6BAoVUHJvamVjdEFnZ3JlZ2F0aW9uRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhUKDWlzX21vbm9fc3BlY3MYBSABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAYgASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgHIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgIIAEoCEgDiAEBEkQKDHJlcG9zaXRvcmllcxgJIAMoCzIuLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlJlcG9zaXRvcnlBZ2dyZWdhdGlvbkR0bxJBCh1naXRfc25hcHNob3RfcmVmcmVzaGVkX2F0X3V0YxgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIQoZZ2l0X3NuYXBzaG90X3NlcnZlZF9zdGFsZRgLIAEoCBIrCgVlcnJvchgMIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIRCgloYXNfZXJyb3IYDSABKAhCDgoMX2Rlc2NyaXB0aW9uQhUKE19tb25vX3NwZWNzX3ZlcnNpb25CHAoaX21vbm9fc3BlY3NfcmVwb19kaXJlY3RvcnlCIQofX21vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZSKbAQoaRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8SPQoIcHJvamVjdHMYASADKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Qcm9qZWN0QWdncmVnYXRpb25EdG8SPgoIbWV0YWRhdGEYAiABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5BZ2dyZWdhdGlvbk1ldGFkYXRhRHRvIq0CChxUb2tlbk1vbml0b3JVc2FnZVNuYXBzaG90RHRvEg4KBnN0YXR1cxgBIAEoCRIOCgZzb3VyY2UYAiABKAkSGwoOZmFpbHVyZV9yZWFzb24YAyABKAlIAIgBARIVCghkYXRlX2tleRgEIAEoCUgBiAEBEhkKDHRvdGFsX3Rva2VucxgFIAEoA0gCiAEBEhUKCGNvc3RfdXNkGAYgASgBSAOIAQESLwoLcmVhZF9hdF91dGMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEHNuYXBzaG90X3ZlcnNpb24YCCABKANCEQoPX2ZhaWx1cmVfcmVhc29uQgsKCV9kYXRlX2tleUIPCg1fdG90YWxfdG9rZW5zQgsKCV9jb3N0X3VzZCLYAgoSVG9rZW5UaHJvdWdocHV0RHRvEh8KF2lucHV0X3Rva2Vuc19wZXJfbWludXRlGAEgASgFEiAKGG91dHB1dF90b2tlbnNfcGVyX21pbnV0ZRgCIAEoBRIaChJ0b3RhbF9pbnB1dF90b2tlbnMYAyABKAMSGwoTdG90YWxfb3V0cHV0X3Rva2VucxgEIAEoAxIwCgxsYXN0X3VwZGF0ZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEicKH3JlZ3VsYXJfaW5wdXRfdG9rZW5zX3Blcl9taW51dGUYBiABKAUSJQodY2FjaGVfaW5wdXRfdG9rZW5zX3Blcl9taW51dGUYByABKAUSIgoadG90YWxfcmVndWxhcl9pbnB1dF90b2tlbnMYCCABKAMSIAoYdG90YWxfY2FjaGVfaW5wdXRfdG9rZW5zGAkgASgDIq8BChdUb2tlblRocm91Z2hwdXRTbmFwc2hvdBItCgl0aW1lc3RhbXAYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhQKDGlucHV0X3Rva2VucxgCIAEoBRIVCg1vdXRwdXRfdG9rZW5zGAMgASgFEhwKFHJlZ3VsYXJfaW5wdXRfdG9rZW5zGAQgASgFEhoKEmNhY2hlX2lucHV0X3Rva2VucxgFIAEoBSLgAQosSGVyb0JhdHRsZVJlcG9ydExhdGVzdFVubG9ja2VkQWNoaWV2ZW1lbnREdG8SFQoNY2Fub25pY2FsX2tleRgBIAEoCRIQCghuYW1lX2tleRgCIAEoCRITCgtzb3VyY2Vfa2luZBgDIAEoCRIzCg91bmxvY2tlZF9hdF91dGMYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDnByb2dyZXNzX2FmdGVyGAUgASgFEg4KBnRhcmdldBgGIAEoBRIVCg1yZXdhcmRfYW1vdW50GAcgASgDIrsBCilIZXJvQmF0dGxlUmVwb3J0UGVuZGluZ0FjaGlldmVtZW50SGludER0bxIVCg1jYW5vbmljYWxfa2V5GAEgASgJEhAKCG5hbWVfa2V5GAIgASgJEhEKCWdvYWxfdHlwZRgDIAEoCRIQCghwcm9ncmVzcxgEIAEoBRIOCgZ0YXJnZXQYBSABKAUSFwoPcmVtYWluaW5nX2NvdW50GAYgASgFEhcKD2NvbXBsZXRpb25fcmF0ZRgHIAEoASK9AgolSGVyb0JhdHRsZVJlcG9ydEFjaGlldmVtZW50U3VtbWFyeUR0bxIYChBoYXNfYXJjaGl2ZV9kYXRhGAEgASgIEhcKD2NvbXBsZXRlZF9jb3VudBgCIAEoBRITCgt0b3RhbF9jb3VudBgDIAEoBRIXCg9jb21wbGV0aW9uX3JhdGUYBCABKAESWwoPbGF0ZXN0X3VubG9ja2VkGAUgASgLMkIuaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydExhdGVzdFVubG9ja2VkQWNoaWV2ZW1lbnREdG8SVgoNcGVuZGluZ19oaW50cxgGIAMoCzI/LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRQZW5kaW5nQWNoaWV2ZW1lbnRIaW50RHRvIvQCCiNIZXJvQmF0dGxlUmVwb3J0SGlnaGxpZ2h0U2Vzc2lvbkR0bxISCgpzZXNzaW9uX2lkGAEgASgJEhIKBXRpdGxlGAIgASgJSACIAQESGQoMc2Vzc2lvbl9jb2RlGAMgASgJSAGIAQESGQoMc2Vzc2lvbl90eXBlGAQgASgJSAKIAQESGgoNcHJvcG9zYWxfbmFtZRgFIAEoCUgDiAEBEhYKDmFjdGl2aXR5X2NvdW50GAYgASgFEiIKGmNvbXBsZXRlZF9hc3Npc3RhbmNlX2NvdW50GAcgASgFEh8KF3Byb3Bvc2FsX2V4ZWN1dGVkX2NvdW50GAggASgFEjgKFGxhc3RfYWN0aXZpdHlfYXRfdXRjGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIICgZfdGl0bGVCDwoNX3Nlc3Npb25fY29kZUIPCg1fc2Vzc2lvbl90eXBlQhAKDl9wcm9wb3NhbF9uYW1lIqcDCiJIZXJvQmF0dGxlUmVwb3J0QWN0aXZpdHlTdW1tYXJ5RHRvEh0KFXNlc3Npb25fY3JlYXRlZF9jb3VudBgBIAEoBRIiChpjaGF0X3Nlc3Npb25fY3JlYXRlZF9jb3VudBgCIAEoBRImCh5wcm9wb3NhbF9zZXNzaW9uX2NyZWF0ZWRfY291bnQYAyABKAUSFgoOcHJvcG9zYWxfY291bnQYBCABKAUSIAoYcHJvcG9zYWxfZ2VuZXJhdGVkX2NvdW50GAUgASgFEh8KF3Byb3Bvc2FsX2V4ZWN1dGVkX2NvdW50GAYgASgFEh8KF3Byb3Bvc2FsX2FyY2hpdmVkX2NvdW50GAcgASgFEiIKGmFzc2lzdGFuY2VfY29tcGxldGVkX2NvdW50GAggASgFEh8KF2Fzc2lzdGFuY2VfZmFpbGVkX2NvdW50GAkgASgFElUKEmhpZ2hsaWdodF9zZXNzaW9ucxgKIAMoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRIaWdobGlnaHRTZXNzaW9uRHRvIkYKI0hlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvEhAKCHByZXZpb3VzGAEgASgDEg0KBWRlbHRhGAIgASgDIrwFCh1IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbkR0bxIYChBoYXNfcHJldmlvdXNfZGF5GAEgASgIEhoKDXByZXZpb3VzX2RhdGUYAiABKAlIAIgBARJUChFhY3RpdmVfaGVyb19jb3VudBgDIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElIKD2V4ZWN1dGlvbl9jb3VudBgEIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElIKD3Rvb2xfY2FsbF9jb3VudBgFIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvEk8KDHRvdGFsX3Rva2VucxgGIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElgKFXNlc3Npb25fY3JlYXRlZF9jb3VudBgHIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElEKDnByb3Bvc2FsX2NvdW50GAggASgLMjkuaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydENvbXBhcmlzb25NZXRyaWNEdG8SVwoUaGFnaXBvd2VyX25ldF9jaGFuZ2UYCSABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0b0IQCg5fcHJldmlvdXNfZGF0ZSLGAQobSGVyb0JhdHRsZVJlcG9ydEV4ZWN1dG9yRHRvEhUKDWV4ZWN1dG9yX3R5cGUYASABKAkSEgoKaGVyb19jb3VudBgCIAEoBRIZChFhY3RpdmVfaGVyb19jb3VudBgDIAEoBRIXCg9leGVjdXRpb25fY291bnQYBCABKAUSFwoPdG9vbF9jYWxsX2NvdW50GAUgASgFEhQKDHRvdGFsX3Rva2VucxgGIAEoAxIZChF0b3RhbF9kdXJhdGlvbl9tcxgHIAEoAyK4AQohSGVyb0JhdHRsZVJlcG9ydEhhZ2lwb3dlclBvaW50RHRvEjUKEWJ1Y2tldF9taW51dGVfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdiYWxhbmNlGAIgASgDEhUKDXRvdGFsX2JhbGFuY2UYAyABKAMSIQoZYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgEIAEoAxIRCglpc19maWxsZWQYBSABKAgi3AMKHEhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJEdG8SMwoPcmFuZ2Vfc3RhcnRfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1yYW5nZV9lbmRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5idWNrZXRfbWludXRlcxgDIAEoBRIXCg9oYXNfZmlsbGVkX2dhcHMYBCABKAgSHAoUaGFzX3JlY29yZGVkX2hpc3RvcnkYBSABKAgSHgoWY3VycmVudF9wdWJsaWNfYmFsYW5jZRgGIAEoAxIdChVjdXJyZW50X3RvdGFsX2JhbGFuY2UYByABKAMSKQohY3VycmVudF9hY2N1bXVsYXRlZF90b3RhbF9iYWxhbmNlGAggASgDEhIKCm5ldF9jaGFuZ2UYCSABKAMSNwoTbGFzdF91cGRhdGVkX2F0X3V0YxgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTgoNcHVibGljX3NlcmllcxgLIAMoCzI3LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJQb2ludER0byKJBAoXSGVyb0JhdHRsZVJlcG9ydEhlcm9EdG8SDwoHaGVyb19pZBgBIAEoCRIRCgloZXJvX25hbWUYAiABKAkSFgoJaGVyb19pY29uGAMgASgJSACIAQESFQoNZXhlY3V0b3JfdHlwZRgEIAEoCRISCgVtb2RlbBgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESDAoEcmFuaxgHIAEoBRIOCgZzdGF0dXMYCCABKAkSDQoFZ3JhZGUYCSABKAkSFAoMYmF0dGxlX3Njb3JlGAogASgFEhcKD2V4ZWN1dGlvbl9jb3VudBgLIAEoBRIXCg90b29sX2NhbGxfY291bnQYDCABKAUSFAoMaW5wdXRfdG9rZW5zGA0gASgDEhoKEmNhY2hlX2lucHV0X3Rva2VucxgOIAEoAxIVCg1vdXRwdXRfdG9rZW5zGA8gASgDEhsKE2NhY2hlX291dHB1dF90b2tlbnMYECABKAMSFAoMdG90YWxfdG9rZW5zGBEgASgDEhkKEXRvdGFsX2R1cmF0aW9uX21zGBIgASgDEjkKFWxhc3RfY29tcGxldGVkX2F0X3V0YxgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDAoKX2hlcm9faWNvbkIICgZfbW9kZWxCDgoMX2Rlc2NyaXB0aW9uIoACCiJIZXJvQmF0dGxlUmVwb3J0UHJvamVjdEFjdGl2aXR5RHRvEhIKCnByb2plY3RfaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhYKDmFjdGl2aXR5X2NvdW50GAMgASgFEh0KFXNlc3Npb25fY3JlYXRlZF9jb3VudBgEIAEoBRIWCg5wcm9wb3NhbF9jb3VudBgFIAEoBRIiChphc3Npc3RhbmNlX2NvbXBsZXRlZF9jb3VudBgGIAEoBRIfChdhc3Npc3RhbmNlX2ZhaWxlZF9jb3VudBgHIAEoBRIWCg5hY3Rpdml0eV9zaGFyZRgIIAEoAUIHCgVfbmFtZSL6AQohSGVyb0JhdHRsZVJlcG9ydFByb2plY3RQcm9maWxlRHRvEhAKCGhhc19kYXRhGAEgASgIEh0KFXByb2plY3RfY3JlYXRlZF9jb3VudBgCIAEoAxIdChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYAyABKAMSIAoYcHJvcG9zYWxfZ2VuZXJhdGVkX2NvdW50GAQgASgDEh8KF3Byb3Bvc2FsX2V4ZWN1dGVkX2NvdW50GAUgASgDEhMKC3Rva2VuX3RvdGFsGAYgASgDEi0KCWFzX29mX3V0YxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAijQIKG0hlcm9CYXR0bGVSZXBvcnRQcm9qZWN0c0R0bxIbChN0b3RhbF9wcm9qZWN0X2NvdW50GAEgASgFEhwKFGFjdGl2ZV9wcm9qZWN0X2NvdW50GAIgASgFEhkKEW5ld19wcm9qZWN0X2NvdW50GAMgASgFEk4KDHRvcF9wcm9qZWN0cxgEIAMoCzI4LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0QWN0aXZpdHlEdG8SSAoHcHJvZmlsZRgFIAEoCzI3LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0UHJvZmlsZUR0byKtAgoWSGVyb0JhdHRsZVJlcG9ydE12cER0bxIPCgdoZXJvX2lkGAEgASgJEhEKCWhlcm9fbmFtZRgCIAEoCRIWCgloZXJvX2ljb24YAyABKAlIAIgBARIVCg1leGVjdXRvcl90eXBlGAQgASgJEhIKBW1vZGVsGAUgASgJSAGIAQESDAoEcmFuaxgGIAEoBRIUCgxiYXR0bGVfc2NvcmUYByABKAUSDQoFZ3JhZGUYCCABKAkSFwoPZXhlY3V0aW9uX2NvdW50GAkgASgFEhcKD3Rvb2xfY2FsbF9jb3VudBgKIAEoBRIUCgx0b3RhbF90b2tlbnMYCyABKAMSGQoRdG90YWxfZHVyYXRpb25fbXMYDCABKANCDAoKX2hlcm9faWNvbkIICgZfbW9kZWwi2QIKGkhlcm9CYXR0bGVSZXBvcnRTdW1tYXJ5RHRvEhgKEHRvdGFsX2hlcm9fY291bnQYASABKAUSGQoRYWN0aXZlX2hlcm9fY291bnQYAiABKAUSGgoSdG90YWxfYmF0dGxlX3Njb3JlGAMgASgFEhgKEHRvdGFsX3Rvb2xfY2FsbHMYBCABKAUSFAoMdG90YWxfdG9rZW5zGAUgASgDEhkKEXRvdGFsX2R1cmF0aW9uX21zGAYgASgDEhQKDGlucHV0X3Rva2VucxgHIAEoAxIaChJjYWNoZV9pbnB1dF90b2tlbnMYCCABKAMSFQoNb3V0cHV0X3Rva2VucxgJIAEoAxIbChNjYWNoZV9vdXRwdXRfdG9rZW5zGAogASgDEjkKA212cBgLIAEoCzIsLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRNdnBEdG8ipgYKE0hlcm9CYXR0bGVSZXBvcnREdG8SEwoLcmVwb3J0X2RhdGUYASABKAkSNAoQZ2VuZXJhdGVkX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoMdGltZV96b25lX2lkGAMgASgJEjUKEWNvdmVyZWRfc3RhcnRfdXRjGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9jb3ZlcmVkX2VuZF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkUKCWhhZ2lwb3dlchgGIAEoCzIyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJEdG8SQQoHc3VtbWFyeRgHIAEoCzIwLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRTdW1tYXJ5RHRvElEKDGFjaGlldmVtZW50cxgIIAEoCzI7LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRBY2hpZXZlbWVudFN1bW1hcnlEdG8SUgoQYWN0aXZpdHlfc3VtbWFyeRgJIAEoCzI4LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRBY3Rpdml0eVN1bW1hcnlEdG8SRwoKY29tcGFyaXNvbhgKIAEoCzIzLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uRHRvEkQKCWV4ZWN1dG9ycxgLIAMoCzIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRFeGVjdXRvckR0bxJDCghwcm9qZWN0cxgMIAEoCzIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0c0R0bxI9CgZoZXJvZXMYDSADKAsyLS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGVyb0R0byK1AQoeSGFnaXBvd2VyUHVibGljSGlzdG9yeVBvaW50RHRvEjUKEWJ1Y2tldF9taW51dGVfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdiYWxhbmNlGAIgASgDEhUKDXRvdGFsX2JhbGFuY2UYAyABKAMSIQoZYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgEIAEoAxIRCglpc19maWxsZWQYBSABKAgi1wEKHkhhZ2lwb3dlclN0YXRpc3RpY3NNZXRhZGF0YUR0bxIzCg9yYW5nZV9zdGFydF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXJhbmdlX2VuZF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmJ1Y2tldF9taW51dGVzGAMgASgFEhcKD2hhc19maWxsZWRfZ2FwcxgEIAEoCBIcChRoYXNfcmVjb3JkZWRfaGlzdG9yeRgFIAEoCCLWAQodSGFnaXBvd2VyU3RhdGlzdGljc1N1bW1hcnlEdG8SHgoWY3VycmVudF9wdWJsaWNfYmFsYW5jZRgBIAEoAxIdChVjdXJyZW50X3RvdGFsX2JhbGFuY2UYAiABKAMSKQohY3VycmVudF9hY2N1bXVsYXRlZF90b3RhbF9iYWxhbmNlGAMgASgDEhIKCm5ldF9jaGFuZ2UYBCABKAMSNwoTbGFzdF91cGRhdGVkX2F0X3V0YxgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiAIKHEhhZ2lwb3dlclN0YXRpc3RpY3NSZXBvcnREdG8SDQoFcmFuZ2UYASABKAkSRgoIbWV0YWRhdGEYAiABKAsyNC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzTWV0YWRhdGFEdG8SRAoHc3VtbWFyeRgDIAEoCzIzLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhhZ2lwb3dlclN0YXRpc3RpY3NTdW1tYXJ5RHRvEksKDXB1YmxpY19zZXJpZXMYBCADKAsyNC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJQdWJsaWNIaXN0b3J5UG9pbnREdG8iuwMKGkhpc3RvcmljYWxUaW1lbGluZUV2ZW50RHRvEhAKCGV2ZW50X2lkGAEgASgJEjMKD29jY3VycmVkX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOY3JlYXRlZF9hdF91dGMYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2VudGl0eV90eXBlGAQgASgJEhEKCWVudGl0eV9pZBgFIAEoCRIXCgpwcm9qZWN0X2lkGAYgASgJSACIAQESFwoKc2Vzc2lvbl9pZBgHIAEoCUgBiAEBEgwKBGNvZGUYCCABKAkSKAoIbWV0YWRhdGEYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSEwoGc291cmNlGAogASgJSAKIAQESFQoIYWN0b3JfaWQYCyABKAlIA4gBARIbCg5jb3JyZWxhdGlvbl9pZBgMIAEoCUgEiAEBQg0KC19wcm9qZWN0X2lkQg0KC19zZXNzaW9uX2lkQgkKB19zb3VyY2VCCwoJX2FjdG9yX2lkQhEKD19jb3JyZWxhdGlvbl9pZCKIAQofSGlzdG9yaWNhbFRpbWVsaW5lUGFnaW5hdGlvbkR0bxIRCglwYWdlX3NpemUYASABKAUSFgoOcmV0dXJuZWRfY291bnQYAiABKAUSEAoIaGFzX21vcmUYAyABKAgSGAoLbmV4dF9jdXJzb3IYBCABKAlIAIgBAUIOCgxfbmV4dF9jdXJzb3IisAEKIkhpc3RvcmljYWxUaW1lbGluZVF1ZXJ5UmVzcG9uc2VEdG8SPwoFaXRlbXMYASADKAsyMC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVFdmVudER0bxJJCgpwYWdpbmF0aW9uGAIgASgLMjUuaGFnaWNvZGUucGxhdGZvcm0udjEuSGlzdG9yaWNhbFRpbWVsaW5lUGFnaW5hdGlvbkR0byKbAwogSGlzdG9yaWNhbFRpbWVsaW5lRXZlbnRTYW1wbGVEdG8SEwoLZW50aXR5X3R5cGUYASABKAkSDAoEY29kZRgCIAEoCRIYChBzYW1wbGVfZW50aXR5X2lkGAMgASgJEh4KEXNhbXBsZV9wcm9qZWN0X2lkGAQgASgJSACIAQESHgoRc2FtcGxlX3Nlc3Npb25faWQYBSABKAlIAYgBARIaCg1zYW1wbGVfc291cmNlGAYgASgJSAKIAQESHAoPc2FtcGxlX2FjdG9yX2lkGAcgASgJSAOIAQESIgoVc2FtcGxlX2NvcnJlbGF0aW9uX2lkGAggASgJSASIAQESMAoQbWV0YWRhdGFfZXhhbXBsZRgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIUChJfc2FtcGxlX3Byb2plY3RfaWRCFAoSX3NhbXBsZV9zZXNzaW9uX2lkQhAKDl9zYW1wbGVfc291cmNlQhIKEF9zYW1wbGVfYWN0b3JfaWRCGAoWX3NhbXBsZV9jb3JyZWxhdGlvbl9pZCJtCiRIaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVzcG9uc2VEdG8SRQoFaXRlbXMYASADKAsyNi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVFdmVudFNhbXBsZUR0bzLVCAoRU3RhdGlzdGljc1NlcnZpY2USdAoRR2V0QWdncmVnYXRlZERhdGESLi5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRBZ2dyZWdhdGVkRGF0YVJlcXVlc3QaLy5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRBZ2dyZWdhdGVkRGF0YVJlc3BvbnNlEn0KFEdldFRva2VuTW9uaXRvclVzYWdlEjEuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXF1ZXN0GjIuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXNwb25zZRKVAQocR2V0VG9rZW5UaHJvdWdocHV0U3RhdGlzdGljcxI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuVGhyb3VnaHB1dFN0YXRpc3RpY3NSZXF1ZXN0GjouaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5UaHJvdWdocHV0U3RhdGlzdGljc1Jlc3BvbnNlEowBChlHZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5EjYuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5UaHJvdWdocHV0SGlzdG9yeVJlcXVlc3QaNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5UmVzcG9uc2USegoTR2V0SGVyb0JhdHRsZVJlcG9ydBIwLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhlcm9CYXR0bGVSZXBvcnRSZXF1ZXN0GjEuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGVyb0JhdHRsZVJlcG9ydFJlc3BvbnNlEowBChlHZXRIYWdpcG93ZXJIaXN0b3J5UmVwb3J0EjYuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGFnaXBvd2VySGlzdG9yeVJlcG9ydFJlcXVlc3QaNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIYWdpcG93ZXJIaXN0b3J5UmVwb3J0UmVzcG9uc2USgAEKFUdldEhpc3RvcmljYWxUaW1lbGluZRIyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhpc3RvcmljYWxUaW1lbGluZVJlcXVlc3QaMy5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXNwb25zZRKVAQocR2V0SGlzdG9yaWNhbFRpbWVsaW5lU2FtcGxlcxI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXF1ZXN0GjouaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGlzdG9yaWNhbFRpbWVsaW5lU2FtcGxlc1Jlc3BvbnNlQiqqAidQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuUGxhdGZvcm0uVjFiBnByb3RvMw",[Ne,Ee,cr]),gd=G(Lr,1),pd=Ve(Lr,0),ae=q("CiJoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25zLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIlUKFk9wZW5DaGF0U2Vzc2lvblJlcXVlc3QSOwoEYm9keRgBIAEoCzItLmhhZ2ljb2RlLnNlc3Npb24udjEuQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0IlIKF09wZW5DaGF0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIk0KEk9wZW5TZXNzaW9uUmVxdWVzdBI3CgRib2R5GAEgASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVTZXNzaW9uUmVxdWVzdCJOChNPcGVuU2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIicKEUdldFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiTQoSR2V0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvImEKElNhdmVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjcKBGJvZHkYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlVwZGF0ZVNlc3Npb25SZXF1ZXN0Ik4KE1NhdmVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8izAEKE0xpc3RTZXNzaW9uc1JlcXVlc3QSEQoEdHlwZRgBIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAIgASgISAGIAQESHQoQaW5jbHVkZV9hcmNoaXZlZBgDIAEoCEgCiAEBEhcKCnByb2plY3RfaWQYBCABKAlIA4gBARITCgtwcm9qZWN0X2lkcxgFIAMoCUIHCgVfdHlwZUIOCgxfYWN0aXZlX29ubHlCEwoRX2luY2x1ZGVfYXJjaGl2ZWRCDQoLX3Byb2plY3RfaWQiUwoUTGlzdFNlc3Npb25zUmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTGlzdFJlc3BvbnNlRHRvIkAKFERlbGV0ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSFAoMZGVsZXRlX2ZpbGVzGAIgASgIIlYKFURlbGV0ZVNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byIvChlBcmNoaXZlQ2hhdFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWwoaQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8idAoZU3dpdGNoU3RvcHBlZEFnZW50UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEkMKBGJvZHkYAiABKAsyNS5oYWdpY29kZS5zZXNzaW9uLnYxLlN3aXRjaFN0b3BwZWRTZXNzaW9uQWdlbnRSZXF1ZXN0IlUKGlN3aXRjaFN0b3BwZWRBZ2VudFJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIl4KG1N0YXJ0SGFnaVRhc2tTZXNzaW9uUmVxdWVzdBI/CgRib2R5GAEgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVIYWdpVGFza1Nlc3Npb25SZXF1ZXN0IlcKHFN0YXJ0SGFnaVRhc2tTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iZAohU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0Ej8KBGJvZHkYASABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNyZWF0ZUhhZ2lUYXNrU2Vzc2lvblJlcXVlc3QiXQoiU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXNwb25zZRI3CgZyZXN1bHQYASABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0byLOAwoSQ2hhdEhlcm9TdW1tYXJ5RHRvEg8KB2hlcm9faWQYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhEKBGljb24YBCABKAlIAYgBARIVCg1leGVjdXRvcl90eXBlGAUgASgJEhkKDGFnZW50X2NsaV9pZBgGIAEoCUgCiAEBEhsKDmFnZW50X2NsaV9uYW1lGAcgASgJSAOIAQESGwoOYWdlbnRfY2xpX2ljb24YCCABKAlIBIgBARIVCghtb2RlbF9pZBgJIAEoCUgFiAEBEhcKCm1vZGVsX25hbWUYCiABKAlIBogBARIXCgptb2RlbF9pY29uGAsgASgJSAeIAQESIgoVc2Vjb25kYXJ5X21vZGVsX2xhYmVsGAwgASgJSAiIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQg8KDV9hZ2VudF9jbGlfaWRCEQoPX2FnZW50X2NsaV9uYW1lQhEKD19hZ2VudF9jbGlfaWNvbkILCglfbW9kZWxfaWRCDQoLX21vZGVsX25hbWVCDQoLX21vZGVsX2ljb25CGAoWX3NlY29uZGFyeV9tb2RlbF9sYWJlbCI4ChRPcGVuU3BlY1Rhc2tQcm9ncmVzcxIRCgljb21wbGV0ZWQYASABKAUSDQoFdG90YWwYAiABKAUi/gEKEE9wZW5TcGVjRmlsZUluZm8SEQoJZmlsZV9uYW1lGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhEKCWZpbGVfdHlwZRgEIAEoCRITCgtpc19yZXF1aXJlZBgFIAEoCBITCgtpc19hcmNoaXZlZBgGIAEoCBIxCg1hcmNoaXZlZF9kYXRlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJACg10YXNrX3Byb2dyZXNzGAggASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcGVuU3BlY1Rhc2tQcm9ncmVzcyJcChFPcGVuU3BlY0ZpbGVzSW5mbxIRCgliYXNlX3BhdGgYASABKAkSNAoFZmlsZXMYAiADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIqULChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEj8KD29wZW5fc3BlY19maWxlcxgOIAEoCzImLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNwZWNGaWxlc0luZm8SHQoVcGVuZGluZ19tZXNzYWdlX2NvdW50GA8gASgFEkMKDnF1ZXVlX21lc3NhZ2VzGBAgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEh4KEXdvcmtpbmdfZGlyZWN0b3J5GBEgASgJSAOIAQESFQoIbWV0YWRhdGEYEiABKAlIBIgBARIfChJjaGF0X2V4ZWN1dG9yX3R5cGUYEyABKAlIBYgBARI6CgljaGF0X2hlcm8YFCABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJZChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPS5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0by5TdGFnZUV4ZWN1dG9yTWFwRW50cnkSZAoYc3RhZ2VfaGVyb19zZWxlY3Rpb25fbWFwGBYgAygLMkIuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8uU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSIAoTcnVudGltZV9tb2RlbF9sYWJlbBgXIAEoCUgGiAEBEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgYIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQgoNc2Vzc2lvbl91c2FnZRgZIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJCCg1ub3RpZmljYXRpb25zGBsgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTm90aWZpY2F0aW9uRHRvGmIKFVN0YWdlRXhlY3V0b3JNYXBFbnRyeRILCgNrZXkYASABKAkSOAoFdmFsdWUYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlRXhlY3V0b3JJbmZvRHRvOgI4ARpoChpTdGFnZUhlcm9TZWxlY3Rpb25NYXBFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMieQoYQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0Eg0KBXRpdGxlGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSGAoQaXNfZGVmYXVsdF90aXRsZRgDIAEoCBIUCgdoZXJvX2lkGAQgASgJSACIAQFCCgoIX2hlcm9faWQivgIKEFBhdGhSZWZlcmVuY2VEdG8SCgoCaWQYASABKAkSDgoGc291cmNlGAIgASgJEhUKDWRpc3BsYXlfdmFsdWUYAyABKAkSFQoNcGh5c2ljYWxfcGF0aBgEIAEoCRINCgVzdGFydBgFIAEoBRILCgNlbmQYBiABKAUSFgoJZW50aXR5X2lkGAcgASgJSACIAQESFwoKcHJvamVjdF9pZBgIIAEoCUgBiAEBEkUKCG1ldGFkYXRhGAkgAygLMjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9lbnRpdHlfaWRCDQoLX3Byb2plY3RfaWQi+wEKGVNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghpbWFnZV9pZBgCIAEoCRIWCg5oYWdpX2ltYWdlX3VybBgDIAEoCRIYCgtwcmV2aWV3X3VybBgEIAEoCUgAiAEBEhYKCWZpbGVfbmFtZRgFIAEoCUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgGIAEoCUgCiAEBEhYKCWZpbGVfc2l6ZRgHIAEoA0gDiAEBQg4KDF9wcmV2aWV3X3VybEIMCgpfZmlsZV9uYW1lQg8KDV9jb250ZW50X3R5cGVCDAoKX2ZpbGVfc2l6ZSJ+ChlUYXJnZXRQcm9qZWN0UmVmZXJlbmNlRHRvEhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhgKC2FjY2Vzc190eXBlGAQgASgJSACIAQFCDgoMX2FjY2Vzc190eXBlIocBChNUYXJnZXRSZXBvc2l0b3J5RHRvEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIZCgxkaXNwbGF5X25hbWUYAyABKAlIAIgBARIYCgthY2Nlc3NfdHlwZRgEIAEoCUgBiAEBQg8KDV9kaXNwbGF5X25hbWVCDgoMX2FjY2Vzc190eXBlIj0KGFRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxIMCgRtb2RlGAEgASgJEhMKC2FjY2Vzc190eXBlGAIgASgJIpUFChRDcmVhdGVTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIcCg9jaGllZl9jb21wbGFpbnQYAiABKAlIAIgBARIlChhvcmlnaW5hbF9jaGllZl9jb21wbGFpbnQYAyABKAlIAYgBARJIChBkcmFmdF9pbWFnZV9yZWZzGAQgAygLMi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTWVzc2FnZUltYWdlUmVmRHRvEhEKBHR5cGUYBSABKAlIAogBARISCgpwcm9qZWN0X2lkGAYgASgJEkUKE3RhcmdldF9yZXBvc2l0b3JpZXMYByADKAsyKC5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlEdG8STgoXdGFyZ2V0X3JlcG9zaXRvcnlfc2NvcGUYCCABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxJHCg90YXJnZXRfcHJvamVjdHMYCSADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFByb2plY3RSZWZlcmVuY2VEdG8SPgoPcGF0aF9yZWZlcmVuY2VzGAogAygLMiUuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvEhgKEGlzX2RlZmF1bHRfdGl0bGUYCyABKAgSJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgMIAEoCUgDiAEBQhIKEF9jaGllZl9jb21wbGFpbnRCGwoZX29yaWdpbmFsX2NoaWVmX2NvbXBsYWludEIHCgVfdHlwZUIcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZSKTAQoUVXBkYXRlU2Vzc2lvblJlcXVlc3QSDQoFdGl0bGUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARITCgZzdGF0dXMYAyABKAlIAYgBARIVCghtZXRhZGF0YRgEIAEoCUgCiAEBQg4KDF9kZXNjcmlwdGlvbkIJCgdfc3RhdHVzQgsKCV9tZXRhZGF0YSJTChZTZXNzaW9uTGlzdFJlc3BvbnNlRHRvEjkKCHNlc3Npb25zGAEgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iKwoYU2ltcGxlTWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkiMwogU3dpdGNoU3RvcHBlZFNlc3Npb25BZ2VudFJlcXVlc3QSDwoHaGVyb19pZBgBIAEoCSLrCAocQ3JlYXRlSGFnaVRhc2tTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIYChBpc19kZWZhdWx0X3RpdGxlGAIgASgIEhIKCnByb2plY3RfaWQYAyABKAkSFgoJcHJvbXB0X2lkGAQgASgJSACIAQESFAoHbWVzc2FnZRgFIAEoCUgBiAEBEkgKEGRyYWZ0X2ltYWdlX3JlZnMYBiADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAcgASgJSAKIAQESGAoLdGFyZ2V0X3R5cGUYCCABKAlIA4gBARIVCgh2YXVsdF9pZBgJIAEoCUgEiAEBEhwKD291dHB1dF92YXVsdF9pZBgKIAEoCUgFiAEBEhsKE3JlZmVyZW5jZV92YXVsdF9pZHMYCyADKAkSGgoSZWRpdGFibGVfdmF1bHRfaWRzGAwgAygJEkcKD3RhcmdldF9wcm9qZWN0cxgNIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuVGFyZ2V0UHJvamVjdFJlZmVyZW5jZUR0bxIfChJyZXNlYXJjaF9kaXJlY3Rpb24YDiABKAlIBogBARIbCg5wcmVzZXRfdGFza19pZBgPIAEoCUgHiAEBEh8KEnByZXNldF90YXNrX2xvY2FsZRgQIAEoCUgIiAEBEjEKEXByZXNldF90YXNrX2lucHV0GBEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhcKD3JlcG9zaXRvcnlfdXJscxgSIAMoCRITCgtwcm9qZWN0X2lkcxgTIAMoCRIRCgluZWVkX3B1c2gYFCABKAgSJAoXcHVsbF9yZWJhc2VfYmVmb3JlX3B1c2gYFSABKAhICYgBARIfChJ0YXJnZXRfYnJhbmNoX21vZGUYFiABKAlICogBARIfChJ0YXJnZXRfYnJhbmNoX25hbWUYFyABKAlIC4gBARIXCgpzY3JpcHRfa2V5GBggASgJSAyIAQESFAoHaGVyb19pZBgZIAEoCUgNiAEBEiAKE2hlcm9fc2VsZWN0aW9uX21vZGUYGiABKAlIDogBAUIMCgpfcHJvbXB0X2lkQgoKCF9tZXNzYWdlQhIKEF9yZXBvc2l0b3J5X3BhdGhCDgoMX3RhcmdldF90eXBlQgsKCV92YXVsdF9pZEISChBfb3V0cHV0X3ZhdWx0X2lkQhUKE19yZXNlYXJjaF9kaXJlY3Rpb25CEQoPX3ByZXNldF90YXNrX2lkQhUKE19wcmVzZXRfdGFza19sb2NhbGVCGgoYX3B1bGxfcmViYXNlX2JlZm9yZV9wdXNoQhUKE190YXJnZXRfYnJhbmNoX21vZGVCFQoTX3RhcmdldF9icmFuY2hfbmFtZUINCgtfc2NyaXB0X2tleUIKCghfaGVyb19pZEIWChRfaGVyb19zZWxlY3Rpb25fbW9kZTLqCAoPU2Vzc2lvbnNTZXJ2aWNlEmwKD09wZW5DaGF0U2Vzc2lvbhIrLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVzcG9uc2USYAoLT3BlblNlc3Npb24SJy5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TZXNzaW9uUmVxdWVzdBooLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNlc3Npb25SZXNwb25zZRJdCgpHZXRTZXNzaW9uEiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUmVxdWVzdBonLmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblJlc3BvbnNlEmAKC1NhdmVTZXNzaW9uEicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TYXZlU2Vzc2lvblJlcXVlc3QaKC5oYWdpY29kZS5zZXNzaW9uLnYxLlNhdmVTZXNzaW9uUmVzcG9uc2USYwoMTGlzdFNlc3Npb25zEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXNwb25zZRJmCg1EZWxldGVTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5EZWxldGVTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuRGVsZXRlU2Vzc2lvblJlc3BvbnNlEnUKEkFyY2hpdmVDaGF0U2Vzc2lvbhIuLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USdQoSU3dpdGNoU3RvcHBlZEFnZW50Ei4uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXNwb25zZRJ7ChRTdGFydEhhZ2lUYXNrU2Vzc2lvbhIwLmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydEhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlEo0BChpTdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvbhI2LmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuU2Vzc2lvbi5WMWIGcHJvdG8z",[Ne,Ee]),Ad=G(ae,1),Zd=G(ae,3),fd=G(ae,5),Rd=G(ae,7),Ed=G(ae,9),Nd=G(ae,11),Gd=G(ae,13),Vd=G(ae,17),Wd=G(ae,30),Sd=G(ae,36),vd=G(ae,37),Xd=G(ae,41),Yd=Ve(ae,0),ht=q("CitoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fbWVzc2FnaW5nLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIr0BChlHZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSEQoEcGFnZRgCIAEoBUgAiAEBEhYKCXBhZ2Vfc2l6ZRgDIAEoBUgBiAEBEhoKDWhpc3Rvcnlfc2NvcGUYBCABKAlIAogBARISCgVvcmRlchgFIAEoCUgDiAEBQgcKBV9wYWdlQgwKCl9wYWdlX3NpemVCEAoOX2hpc3Rvcnlfc2NvcGVCCAoGX29yZGVyIlkKGkdldFNlc3Npb25NZXNzYWdlc1Jlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZUxpc3RSZXNwb25zZUR0byIqChRDYW5jZWxTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlYKFUNhbmNlbFNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFNlc3Npb25SZXNwb25zZUR0byI3CiFHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJeCiJHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvY2Vzc2luZ1N0YXR1c0R0byJGChtDYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgtxdWV1ZV9pbmRleBgCIAEoBSJcChxDYW5jZWxQZW5kaW5nTWVzc2FnZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsUGVuZGluZ01lc3NhZ2VEdG8iZAoTU3RlZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjkKBGJvZHkYAiABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25TdGVlclJlcXVlc3REdG8iVAoUU3RlZXJTZXNzaW9uUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uU3RlZXJSZXNwb25zZUR0byKFAQoZU3RlZXJRdWV1ZWRNZXNzYWdlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEhMKC3F1ZXVlX2luZGV4GAIgASgFEj8KBGJvZHkYAyABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLlF1ZXVlZE1lc3NhZ2VTdGVlclJlcXVlc3REdG8iYAoaU3RlZXJRdWV1ZWRNZXNzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZWRNZXNzYWdlU3RlZXJSZXNwb25zZUR0byJmChlQb3N0U2Vzc2lvbk1lc3NhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSNQoEYm9keRgCIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXF1ZXN0IlkKGlBvc3RTZXNzaW9uTWVzc2FnZVJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXNwb25zZUR0byJgCipHZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgZsb2NhbGUYAiABKAlIAIgBAUIJCgdfbG9jYWxlIn8KK0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2USUAoGcmVzdWx0GAEgASgLMkAuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlc3BvbnNlRHRvInEKH1N1Ym1pdFNlc3Npb25Bbm5vdGF0aW9uc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI6CgRib2R5GAIgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Bbm5vdGF0aW9uU3VibWlzc2lvbkR0byJoCiBTdWJtaXRTZXNzaW9uQW5ub3RhdGlvbnNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5zZXNzaW9uLnYxLkFubm90YXRpb25TdWJtaXNzaW9uUmVzcG9uc2VEdG8i+gEKFk1lc3NhZ2VIZXJvU25hcHNob3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBEhYKCWhlcm9fbmFtZRgCIAEoCUgBiAEBEhYKCWhlcm9faWNvbhgDIAEoCUgCiAEBEhoKDWV4ZWN1dG9yX3R5cGUYBCABKAlIA4gBARITCgZzb3VyY2UYBSABKAlIBIgBARIWCglzdGFnZV9rZXkYBiABKAlIBYgBAUIKCghfaGVyb19pZEIMCgpfaGVyb19uYW1lQgwKCl9oZXJvX2ljb25CEAoOX2V4ZWN1dG9yX3R5cGVCCQoHX3NvdXJjZUIMCgpfc3RhZ2Vfa2V5IlIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25BbnN3ZXJEdG8SEAoIcXVlc3Rpb24YASABKAkSDgoGdmFsdWVzGAIgAygJEhAKCHJlamVjdGVkGAMgASgIIkIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25PcHRpb25EdG8SDQoFbGFiZWwYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiyAEKGk1lc3NhZ2VVc2VyUXVlc3Rpb25JdGVtRHRvEhAKCHF1ZXN0aW9uGAEgASgJEg4KBmhlYWRlchgCIAEoCRIUCgxtdWx0aV9zZWxlY3QYAyABKAgSQgoHb3B0aW9ucxgEIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbk9wdGlvbkR0bxIbChNhbGxvd19jdXN0b21fYW5zd2VyGAUgASgIEhEKCWlzX3NlY3JldBgGIAEoCCJaChxNZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvEhkKEW1heF9hbnN3ZXJfbGVuZ3RoGAEgASgFEh8KF21heF92YWx1ZXNfcGVyX3F1ZXN0aW9uGAIgASgFItgCChZNZXNzYWdlVXNlclF1ZXN0aW9uRHRvEhMKC3F1ZXN0aW9uX2lkGAEgASgJEhMKBnJ1bl9pZBgCIAEoCUgAiAEBEg0KBXN0YXRlGAMgASgJEkIKCXF1ZXN0aW9ucxgEIAMoCzIvLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkl0ZW1EdG8SQgoHYW5zd2VycxgFIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkFuc3dlckR0bxIvCgthbnN3ZXJlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoGbGltaXRzGAcgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvQgkKB19ydW5faWQi1gMKEk1lc3NhZ2VSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEgwKBHR5cGUYAyABKAkSDAoEbW9kZRgEIAEoCRItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDWNyZWF0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KDmNvbnRlbnRfYmxvY2tzGAcgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhIKBW1vZGVsGAggASgJSACIAQESFQoIcHJvdmlkZXIYCSABKAlIAYgBARJCCg1oZXJvX3NuYXBzaG90GAogASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlSGVyb1NuYXBzaG90RHRvEkIKDXVzZXJfcXVlc3Rpb24YCyABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLk1lc3NhZ2VVc2VyUXVlc3Rpb25EdG8SGAoLc3RlZXJfc3RhdGUYDCABKAlIAogBAUIICgZfbW9kZWxCCwoJX3Byb3ZpZGVyQg4KDF9zdGVlcl9zdGF0ZSKyAQoWTWVzc2FnZUxpc3RSZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEgwKBHBhZ2UYAiABKAUSEQoJcGFnZV9zaXplGAMgASgFEhMKC3RvdGFsX2NvdW50GAQgASgFEhMKC3RvdGFsX3BhZ2VzGAUgASgFEjkKCG1lc3NhZ2VzGAYgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlUmVzcG9uc2VEdG8ikAEKGENhbmNlbFNlc3Npb25SZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIwCgxjYW5jZWxsZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBnJ1bl9pZBgEIAEoCUgAiAEBQgkKB19ydW5faWQi3gEKE1Byb2Nlc3NpbmdTdGF0dXNEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIVCg1pc19wcm9jZXNzaW5nGAIgASgIEhwKFHF1ZXVlZF9tZXNzYWdlX2NvdW50GAMgASgFEkMKDnF1ZXVlX21lc3NhZ2VzGAQgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiPQoUQ2FuY2VsbGVkTWVzc2FnZUluZm8SDAoEbW9kZRgBIAEoCRIXCg9jb250ZW50X3ByZXZpZXcYAiABKAkiwwEKF0NhbmNlbFBlbmRpbmdNZXNzYWdlRHRvEhIKCnNlc3Npb25faWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBITCgtxdWV1ZV9pbmRleBgDIAEoBRIXCg9yZW1haW5pbmdfY291bnQYBCABKAUSDwoHbWVzc2FnZRgFIAEoCRJEChFjYW5jZWxsZWRfbWVzc2FnZRgGIAEoCzIpLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsbGVkTWVzc2FnZUluZm8iUgoXU2Vzc2lvblN0ZWVyUmVzcG9uc2VEdG8SDwoHb3V0Y29tZRgBIAEoCRIXCgptZXNzYWdlX2lkGAIgASgJSACIAQFCDQoLX21lc3NhZ2VfaWQiKQoWU2Vzc2lvblN0ZWVyUmVxdWVzdER0bxIPCgdjb250ZW50GAEgASgJIjAKHVF1ZXVlZE1lc3NhZ2VTdGVlclJlc3BvbnNlRHRvEg8KB291dGNvbWUYASABKAkiPAocUXVldWVkTWVzc2FnZVN0ZWVyUmVxdWVzdER0bxIcChRleGVjdXRpb25fbWVzc2FnZV9pZBgBIAEoCSIpChZQb3N0TWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkitwEKElBvc3RNZXNzYWdlUmVxdWVzdBIPCgdjb250ZW50GAEgASgJEgwKBG1vZGUYAiABKAkSQgoKaW1hZ2VfcmVmcxgDIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvbk1lc3NhZ2VJbWFnZVJlZkR0bxI+Cg9wYXRoX3JlZmVyZW5jZXMYBCADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLlBhdGhSZWZlcmVuY2VEdG8iXgorQ29udmVydFRvUHJvcG9zYWxIYWdpU2tpbGxQcm9tcHRSZXNwb25zZUR0bxIPCgdvdXRjb21lGAEgASgJEhMKBnByb21wdBgCIAEoCUgAiAEBQgkKB19wcm9tcHQiYAofQW5ub3RhdGlvblN1Ym1pc3Npb25SZXNwb25zZUR0bxIPCgdtZXNzYWdlGAEgASgJEhgKEGFubm90YXRpb25fY291bnQYAiABKAUSEgoKZmlsZV9jb3VudBgDIAEoBSLKAQoSQmxvY2tBbm5vdGF0aW9uRHRvEhkKEXN0YXJ0X2xpbmVfbnVtYmVyGAEgASgFEhcKD2VuZF9saW5lX251bWJlchgCIAEoBRIYChBvcmlnaW5hbF9jb250ZW50GAMgASgJEhIKCmJsb2NrX3R5cGUYBCABKAkSFwoPYW5ub3RhdGlvbl90ZXh0GAUgASgJEi0KCXRpbWVzdGFtcBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASCgoCaWQYByABKAkirwEKEUZpbGVBbm5vdGF0aW9uRHRvEhEKCWZpbGVfbmFtZRgBIAEoCRIRCglmaWxlX3BhdGgYAiABKAkSQgoRYmxvY2tfYW5ub3RhdGlvbnMYAyADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkJsb2NrQW5ub3RhdGlvbkR0bxIcCg9maWxlX2Fubm90YXRpb24YBCABKAlIAIgBAUISChBfZmlsZV9hbm5vdGF0aW9uIt8BChdBbm5vdGF0aW9uU3VibWlzc2lvbkR0bxISCgpzZXNzaW9uX2lkGAEgASgJEjUKBWZpbGVzGAIgAygLMiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5GaWxlQW5ub3RhdGlvbkR0bxIZChF0b3RhbF9hbm5vdGF0aW9ucxgDIAEoBRIwCgxzdWJtaXR0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKDWdsb2JhbF9wcm9tcHQYBSABKAlIAIgBAUIQCg5fZ2xvYmFsX3Byb21wdDKNCQoXU2Vzc2lvbk1lc3NhZ2luZ1NlcnZpY2USdQoSR2V0U2Vzc2lvbk1lc3NhZ2VzEi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXNwb25zZRJmCg1DYW5jZWxTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsU2Vzc2lvblJlc3BvbnNlEo0BChpHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1cxI2LmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblByb2Nlc3NpbmdTdGF0dXNSZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEnsKFENhbmNlbFBlbmRpbmdNZXNzYWdlEjAuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QaMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFBlbmRpbmdNZXNzYWdlUmVzcG9uc2USYwoMU3RlZXJTZXNzaW9uEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXNwb25zZRJ1ChJTdGVlclF1ZXVlZE1lc3NhZ2USLi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlcXVlc3QaLy5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlc3BvbnNlEnUKElBvc3RTZXNzaW9uTWVzc2FnZRIuLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVzcG9uc2USqAEKI0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0Ej8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QaQC5oYWdpY29kZS5zZXNzaW9uLnYxLkdldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2UShwEKGFN1Ym1pdFNlc3Npb25Bbm5vdGF0aW9ucxI0LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVxdWVzdBo1LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVzcG9uc2VCKaoCJlBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5TZXNzaW9uLlYxYgZwcm90bzM",[Ne,Ee,ae]),Id=G(ht,13),yd=G(ht,17),Cd=G(ht,35),Bd=G(ht,40),Fd=Ve(ht,0),pe=q("CipoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fcHJvcG9zYWwucHJvdG8SE2hhZ2ljb2RlLnNlc3Npb24udjEicAoeT3B0aW1pemVTZXNzaW9uUHJvcG9zYWxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSOgoEYm9keRgCIAEoCzIsLmhhZ2ljb2RlLnNlc3Npb24udjEuT3B0aW1pemVQcm9wb3NhbFJlcXVlc3QibQofT3B0aW1pemVTZXNzaW9uUHJvcG9zYWxSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlUmVzcG9uc2VEdG8ibAoXR2VuZXJhdGVQcm9wb3NhbFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI9CgRib2R5GAIgASgLMi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZW5lcmF0ZVByb3Bvc2FsUmVxdWVzdER0byJZChhHZW5lcmF0ZVByb3Bvc2FsUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8iaAoVQXJjaGl2ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSOwoEYm9keRgCIAEoCzItLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZVNlc3Npb25SZXF1ZXN0RHRvIlEKFkFyY2hpdmVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iagoWRXhlY3V0ZVByb3Bvc2FsUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjwKBGJvZHkYAiABKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLkV4ZWN1dGVQcm9wb3NhbFJlcXVlc3REdG8iWAoXRXhlY3V0ZVByb3Bvc2FsUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8iLAoWQ29tcGxldGVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlIKF0NvbXBsZXRlU2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIjMKHVZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWgoeVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZVJlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblJlc3VsdER0byIxChtWYWxpZGF0ZVNlc3Npb25TdGFydFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJYChxWYWxpZGF0ZVNlc3Npb25TdGFydFJlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblJlc3VsdER0byIzCh1WYWxpZGF0ZVNlc3Npb25BcmNoaXZlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIloKHlZhbGlkYXRlU2Vzc2lvbkFyY2hpdmVSZXNwb25zZRI4CgZyZXN1bHQYASABKAsyKC5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRpb25SZXN1bHREdG8icgohUHJvcG9zYWxPcHRpbWl6YXRpb25EaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSEAoIc2V2ZXJpdHkYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRISCgVmaWVsZBgEIAEoCUgAiAEBQggKBl9maWVsZCKOAQotUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVWYWxpZGF0aW9uUmVzdWx0RHRvEhAKCGlzX3ZhbGlkGAEgASgIEksKC2RpYWdub3N0aWNzGAIgAygLMjYuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkRpYWdub3N0aWNEdG8i3AMKJ1Byb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0bxIXCgpzY3JpcHRfa2V5GAEgASgJSACIAQESHQoQc2VsZWN0ZWRfaGVyb19pZBgCIAEoCUgBiAEBEhwKD2NhcHRhaW5faGVyb19pZBgDIAEoCUgCiAEBEhYKCXJvc3Rlcl9pZBgEIAEoCUgDiAEBEmsKEGV4dGVuc2lvbl9maWVsZHMYBSADKAsyUS5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0by5FeHRlbnNpb25GaWVsZHNFbnRyeRIWCglzdGFnZV9rZXkYBiABKAlIBIgBARIdChBzZWxlY3Rpb25fc291cmNlGAcgASgJSAWIAQEaNgoURXh0ZW5zaW9uRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUINCgtfc2NyaXB0X2tleUITChFfc2VsZWN0ZWRfaGVyb19pZEISChBfY2FwdGFpbl9oZXJvX2lkQgwKCl9yb3N0ZXJfaWRCDAoKX3N0YWdlX2tleUITChFfc2VsZWN0aW9uX3NvdXJjZSK+AwojUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVSZXN1bHREdG8SHAoPb3B0aW1pemVkX3RpdGxlGAEgASgJSACIAQESKAobb3B0aW1pemVkX3Byb3Bvc2FsX21hcmtkb3duGAIgASgJSAGIAQESHwoXb3B0aW1pemVkX3Byb3Bvc2FsX25hbWUYAyABKAkSHQoVb3B0aW1pemVkX2Rlc2NyaXB0aW9uGAQgASgJElcKEXNjZW5hcmlvX3NldHRpbmdzGAUgASgLMjwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvblNjZW5hcmlvU2V0dGluZ3NEdG8SVgoKdmFsaWRhdGlvbhgGIAEoCzJCLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVWYWxpZGF0aW9uUmVzdWx0RHRvEhkKDHJhd19yZXNwb25zZRgHIAEoCUgCiAEBQhIKEF9vcHRpbWl6ZWRfdGl0bGVCHgocX29wdGltaXplZF9wcm9wb3NhbF9tYXJrZG93bkIPCg1fcmF3X3Jlc3BvbnNlItIICiRQcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVN1bW1hcnlEdG8SGwoTcmVxdWVzdF9maW5nZXJwcmludBgBIAEoCRI0ChBnZW5lcmF0ZWRfYXRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzb3VyY2UYAyABKAkSFQoNYXBwbGllZF90aXRsZRgEIAEoCRIdChVhcHBsaWVkX3Byb3Bvc2FsX25hbWUYBSABKAkSIAoYcHJvcG9zYWxfZHJhZnRfYXZhaWxhYmxlGAYgASgIEiAKGHNjZW5hcmlvX3NldHRpbmdzX3N0YXR1cxgHIAEoCRIaChJhcHBsaWVkX3RpdGxlX21vZGUYCCABKAkSEAoIaXNfdmFsaWQYCSABKAgSSwoLZGlhZ25vc3RpY3MYCiADKAsyNi5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uRGlhZ25vc3RpY0R0bxImChlvcHRpbWl6ZWRfdGl0bGVfY2FuZGlkYXRlGAsgASgJSACIAQESIwoWcHJvcG9zYWxfZHJhZnRfcHJldmlldxgMIAEoCUgBiAEBEhoKDWFydGlmYWN0X3BhdGgYDSABKAlIAogBARIbCg5jb3JyZWxhdGlvbl9pZBgOIAEoCUgDiAEBEh0KEHJlc29sdmVkX2hlcm9faWQYDyABKAlIBIgBARIfChJyZXNvbHZlZF9oZXJvX25hbWUYECABKAlIBYgBARIfChJyZXNvbHZlZF9oZXJvX2ljb24YESABKAlIBogBARIoChtyZXNvbHZlZF9oZXJvX2V4ZWN1dG9yX3R5cGUYEiABKAlIB4gBARIiChVoZXJvX3NlbGVjdGlvbl9zb3VyY2UYEyABKAlICIgBARIjChZoZXJvX3JvdXRpbmdfc3RhZ2Vfa2V5GBQgASgJSAmIAQESJAoXaGVyb19yb3V0aW5nX3NjcmlwdF9rZXkYFSABKAlICogBARIkChdvcHRpbWl6YXRpb25fY2Vzc2lvbl9pZBgWIAEoCUgLiAEBQhwKGl9vcHRpbWl6ZWRfdGl0bGVfY2FuZGlkYXRlQhkKF19wcm9wb3NhbF9kcmFmdF9wcmV2aWV3QhAKDl9hcnRpZmFjdF9wYXRoQhEKD19jb3JyZWxhdGlvbl9pZEITChFfcmVzb2x2ZWRfaGVyb19pZEIVChNfcmVzb2x2ZWRfaGVyb19uYW1lQhUKE19yZXNvbHZlZF9oZXJvX2ljb25CHgocX3Jlc29sdmVkX2hlcm9fZXhlY3V0b3JfdHlwZUIYChZfaGVyb19zZWxlY3Rpb25fc291cmNlQhkKF19oZXJvX3JvdXRpbmdfc3RhZ2Vfa2V5QhoKGF9oZXJvX3JvdXRpbmdfc2NyaXB0X2tleUIaChhfb3B0aW1pemF0aW9uX2Nlc3Npb25faWQi1QEKJVByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlUmVzcG9uc2VEdG8SSAoGcmVzdWx0GAEgASgLMjguaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVJlc3VsdER0bxJKCgdzdW1tYXJ5GAIgASgLMjkuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVN1bW1hcnlEdG8SFgoOY29ycmVsYXRpb25faWQYAyABKAkiiQMKF09wdGltaXplUHJvcG9zYWxSZXF1ZXN0EhMKC2Rlc2NyaXB0aW9uGAEgASgJEiYKGXByb3Bvc2FsX2NvbnRlbnRfbGFuZ3VhZ2UYAiABKAlIAIgBARIjChZvcHRpbWl6YXRpb25fZGlyZWN0aW9uGAMgASgJSAGIAQESEgoFdGl0bGUYBCABKAlIAogBARIYChBpc19kZWZhdWx0X3RpdGxlGAUgASgIEiUKGG9yaWdpbmFsX2NoaWVmX2NvbXBsYWludBgGIAEoCUgDiAEBElcKEXNjZW5hcmlvX3NldHRpbmdzGAcgASgLMjwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvblNjZW5hcmlvU2V0dGluZ3NEdG9CHAoaX3Byb3Bvc2FsX2NvbnRlbnRfbGFuZ3VhZ2VCGQoXX29wdGltaXphdGlvbl9kaXJlY3Rpb25CCAoGX3RpdGxlQhsKGV9vcmlnaW5hbF9jaGllZl9jb21wbGFpbnQiRQoaUGxhbm5pbmdEaXJlY3Rpb25PcHRpb25EdG8SDwoCaWQYASABKAlIAIgBARIPCgdlbmFibGVkGAIgASgIQgUKA19pZCKMAgoaR2VuZXJhdGVQcm9wb3NhbFJlcXVlc3REdG8SIAoTZW5hYmxlX2V4cGxvcmVfbW9kZRgBIAEoCEgAiAEBEkwKE3BsYW5uaW5nX2RpcmVjdGlvbnMYAiADKAsyLy5oYWdpY29kZS5zZXNzaW9uLnYxLlBsYW5uaW5nRGlyZWN0aW9uT3B0aW9uRHRvEiYKGXByb3Bvc2FsX2NvbnRlbnRfbGFuZ3VhZ2UYAyABKAlIAYgBARIUCgdoZXJvX2lkGAQgASgJSAKIAQFCFgoUX2VuYWJsZV9leHBsb3JlX21vZGVCHAoaX3Byb3Bvc2FsX2NvbnRlbnRfbGFuZ3VhZ2VCCgoIX2hlcm9faWQiPAoYQXJjaGl2ZVNlc3Npb25SZXF1ZXN0RHRvEhQKB2hlcm9faWQYASABKAlIAIgBAUIKCghfaGVyb19pZCI9ChlFeGVjdXRlUHJvcG9zYWxSZXF1ZXN0RHRvEhQKB2hlcm9faWQYASABKAlIAIgBAUIKCghfaGVyb19pZCJXCgtDb25mbGljdER0bxIMCgR0eXBlGAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRISCgpyZXNvbHV0aW9uGAQgASgJImsKElZhbGlkYXRpb25Jc3N1ZUR0bxIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEAoIc2V2ZXJpdHkYAyABKAkSFgoJZW50aXR5X2lkGAQgASgJSACIAQFCDAoKX2VudGl0eV9pZCKFAQoUVmFsaWRhdGlvblN1bW1hcnlEdG8SFQoNcHJvamVjdF9jb3VudBgBIAEoBRIVCg1zZXNzaW9uX2NvdW50GAIgASgFEh8KF2R1cGxpY2F0ZV9wcm9qZWN0X2NvdW50GAMgASgFEh4KFm9ycGhhbmVkX3Nlc3Npb25fY291bnQYBCABKAUijAIKE1ZhbGlkYXRpb25SZXN1bHREdG8SEAoIaXNfdmFsaWQYASABKAgSOQoId2FybmluZ3MYAiADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRpb25Jc3N1ZUR0bxI3CgZlcnJvcnMYAyADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRpb25Jc3N1ZUR0bxIzCgljb25mbGljdHMYBCADKAsyIC5oYWdpY29kZS5zZXNzaW9uLnYxLkNvbmZsaWN0RHRvEjoKB3N1bW1hcnkYBSABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRpb25TdW1tYXJ5RHRvMtwHChZTZXNzaW9uUHJvcG9zYWxTZXJ2aWNlEoQBChdPcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbBIzLmhhZ2ljb2RlLnNlc3Npb24udjEuT3B0aW1pemVTZXNzaW9uUHJvcG9zYWxSZXF1ZXN0GjQuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlc3BvbnNlEm8KEEdlbmVyYXRlUHJvcG9zYWwSLC5oYWdpY29kZS5zZXNzaW9uLnYxLkdlbmVyYXRlUHJvcG9zYWxSZXF1ZXN0Gi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZW5lcmF0ZVByb3Bvc2FsUmVzcG9uc2USaQoOQXJjaGl2ZVNlc3Npb24SKi5oYWdpY29kZS5zZXNzaW9uLnYxLkFyY2hpdmVTZXNzaW9uUmVxdWVzdBorLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZVNlc3Npb25SZXNwb25zZRJsCg9FeGVjdXRlUHJvcG9zYWwSKy5oYWdpY29kZS5zZXNzaW9uLnYxLkV4ZWN1dGVQcm9wb3NhbFJlcXVlc3QaLC5oYWdpY29kZS5zZXNzaW9uLnYxLkV4ZWN1dGVQcm9wb3NhbFJlc3BvbnNlEmwKD0NvbXBsZXRlU2Vzc2lvbhIrLmhhZ2ljb2RlLnNlc3Npb24udjEuQ29tcGxldGVTZXNzaW9uUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuQ29tcGxldGVTZXNzaW9uUmVzcG9uc2USgQEKFlZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGUSMi5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGVSZXF1ZXN0GjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0ZVNlc3Npb25FeGVjdXRlUmVzcG9uc2USewoUVmFsaWRhdGVTZXNzaW9uU3RhcnQSMC5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvblN0YXJ0UmVxdWVzdBoxLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uU3RhcnRSZXNwb25zZRKBAQoWVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZRIyLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZVJlcXVlc3QaMy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvbkFyY2hpdmVSZXNwb25zZUIpqgImUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlNlc3Npb24uVjFiBnByb3RvMw",[Ee,ae]),wd=G(pe,1),Ud=G(pe,3),Jd=G(pe,5),kd=G(pe,7),Kd=G(pe,9),xd=G(pe,22),zd=G(pe,24),Ld=G(pe,25),jd=G(pe,26),Td=Ve(pe,0),_t=new Set([h.INT64,h.UINT64,h.SINT64,h.FIXED64,h.SFIXED64]),jr=e=>e.typeName.startsWith("google.protobuf.");function Pt(e){if(typeof e!="string")return e;const t=Number(e);return Number.isSafeInteger(t)?t:e}function Wt(e,t){if(t==null||typeof t!="object"||Array.isArray(t)||jr(e))return t;const n=t;for(const o of e.fields){const a=n[o.jsonName];a!==void 0&&(n[o.jsonName]=Hd(o,a))}return n}function Hd(e,t){switch(e.fieldKind){case"scalar":return _t.has(e.scalar)?Pt(t):t;case"message":return Wt(e.message,t);case"list":return Array.isArray(t)?e.listKind==="scalar"?_t.has(e.scalar)?t.map(Pt):t:e.listKind==="message"?t.map(n=>Wt(e.message,n)):t:t;case"map":{if(t===null||typeof t!="object"||Array.isArray(t))return t;const n=t;for(const o of Object.keys(n))e.mapKind==="scalar"&&_t.has(e.scalar)?n[o]=Pt(n[o]):e.mapKind==="message"&&(n[o]=Wt(e.message,n[o]));return n}default:return t}}function Qd(e,t){return Wt(e,hr(e,t,{alwaysEmitImplicit:!0}))}function Md(e,t){return Qd(e,t).result}function St(e,t,n=0){if(t===null||typeof t!="object"||Array.isArray(t)||jr(e)||n>8)return t;const o=t;for(const a of e.fields){const r=o[a.jsonName];if(!(r===null||typeof r!="object")){if(a.fieldKind==="message")St(a.message,r,n+1);else if(a.fieldKind==="list"&&a.listKind==="message"&&Array.isArray(r))r.forEach(i=>St(a.message,i,n+1));else if(a.fieldKind==="map"&&!Array.isArray(r)){const i=r;for(const s of Object.keys(i)){const l=i[s];a.mapKind==="scalar"&&a.scalar===h.STRING?l===null?delete i[s]:(typeof l=="number"||typeof l=="boolean")&&(i[s]=String(l)):a.mapKind==="message"&&St(a.message,l,n+1)}}}}return t}function H(e,t){return fr(e,t===void 0?t:St(e,JSON.parse(JSON.stringify(t))),{ignoreUnknownFields:!0})}function la(e,t){const n=Cr(e);if(n)throw t.forEach((o,a)=>{n.metadata.append(a,o)}),n;if(!t.has("Grpc-Status")&&!e.has("Grpc-Status"))throw new S("protocol error: missing status",R.Internal)}function Od(e,t,n,o){var a,r;const i=new Headers(n??{});i.set(jc,e?_c:Pc),i.set(Dc,"1");const s=(r=(a=i.get("User-Agent"))!==null&&a!==void 0?a:i.get("X-User-Agent"))!==null&&r!==void 0?r:"connect-es/2.2.0";return i.set(Oc,s),o&&i.set(Mc,s),t!==void 0&&i.set(Hc,`${t}m`),i}function ca(e,t,n,o,a,r){const i=Od(e,t,n,r);return a!=null&&i.set(Ir,a.name),o.length>0&&i.set(Tc,o.map(s=>s.name).join(",")),i}function Dd(e){switch(e){case 400:return R.Internal;case 401:return R.Unauthenticated;case 403:return R.PermissionDenied;case 404:return R.Unimplemented;case 429:return R.Unavailable;case 502:return R.Unavailable;case 503:return R.Unavailable;case 504:return R.Unavailable;default:return R.Unknown}}function _d(e,t){var n;if(e>=200&&e<300)return{foundStatus:t.has(yr),headerError:Cr(t)};throw new S(decodeURIComponent((n=t.get("Grpc-Message"))!==null&&n!==void 0?n:`HTTP ${e}`),Dd(e),t)}function ua(e,t,n){const{foundStatus:o,headerError:a}=_d(t,n);let r;const i=n.get(Ir);if(i!==null&&i.toLowerCase()!=="identity"&&(r=e.find(s=>s.name===i),!r))throw new S(`unsupported response encoding "${i}"`,R.Internal,n);return{foundStatus:o,compression:r,headerError:a}}var da=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},Xe=function(e){return this instanceof Xe?(this.v=e,this):new Xe(e)},Pd=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(N){return Promise.resolve(N).then(Z,p)}}function s(Z,N){o[Z]&&(a[Z]=function(V){return new Promise(function(C,J){r.push([Z,V,C,J])>1||l(Z,V)})},N&&(a[Z]=N(a[Z])))}function l(Z,N){try{c(o[Z](N))}catch(V){f(r[0][3],V)}}function c(Z){Z.value instanceof Xe?Promise.resolve(Z.value.v).then(m,p):f(r[0][2],Z)}function m(Z){l("next",Z)}function p(Z){l("throw",Z)}function f(Z,N){Z(N),r.shift(),r.length&&l(r[0][0],r[0][1])}};function $d(e){return{async unary(t,n,o,a,r,i){const s=na(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,await nu({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!1,service:t.parent,method:t,requestMethod:"POST",url:ta(e.baseUrl,t),header:ca(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??qo(),message:r},next:async l=>{const c=await e.httpClient({url:l.url,method:l.requestMethod,header:l.header,signal:l.signal,body:Vt(vr([l.message]),Mo(s.getI(e.useBinaryFormat)),Do(e.sendCompression,e.compressMinBytes),Po(),{propagateDownStreamError:!0})}),{compression:m,headerError:p}=ua(e.acceptCompression,c.status,c.header),{trailer:f,message:Z}=await Ic(c.body,$o(e.readMaxBytes),_o(m??null,e.readMaxBytes),Oo(s.getO(e.useBinaryFormat),128,ea()),async N=>{var V,C,J,u;let d,g;try{for(var b=!0,A=da(N),E;E=await A.next(),V=E.done,!V;b=!0){u=E.value,b=!1;const v=u;if(v.end){if(g!==void 0)throw new S("protocol error: received extra trailer",R.Unimplemented);g=v.value}else{if(d!==void 0)throw new S("protocol error: received extra output message for unary method",R.Unimplemented);d=v.value}}}catch(v){C={error:v}}finally{try{!b&&!V&&(J=A.return)&&await J.call(A)}finally{if(C)throw C.error}}return{trailer:g,message:d}},{propagateDownStreamError:!1});if(f===void 0)throw p??new S("protocol error: missing trailer",c.header.has("Grpc-Status")?R.Unimplemented:R.Unknown);if(la(f,c.header),Z===void 0)throw new S("protocol error: missing output message for unary method",f.has("Grpc-Status")?R.Unimplemented:R.Unknown);return{stream:!1,service:t.parent,method:t,header:c.header,message:Z,trailer:f}}})},async stream(t,n,o,a,r,i){const s=na(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,ou({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!0,service:t.parent,method:t,requestMethod:"POST",url:ta(e.baseUrl,t),header:ca(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??qo(),message:r},next:async l=>{const c=await e.httpClient({url:l.url,method:l.requestMethod,header:l.header,signal:l.signal,body:Vt(l.message,Mo(s.getI(e.useBinaryFormat)),Do(e.sendCompression,e.compressMinBytes),Po(),{propagateDownStreamError:!0})}),{compression:m,foundStatus:p,headerError:f}=ua(e.acceptCompression,c.status,c.header);if(f)throw f;const Z=Object.assign(Object.assign({},l),{header:c.header,trailer:new Headers,message:Vt(c.body,$o(e.readMaxBytes),_o(m??null,e.readMaxBytes),Oo(s.getO(e.useBinaryFormat),128,ea()),function(N){return Pd(this,arguments,function*(){var V,C,J,u;if(p){if((yield Xe(N[Symbol.asyncIterator]().next())).done!==!0)throw new S("protocol error: extra data for trailers-only",R.InvalidArgument);return yield Xe(void 0)}let d=!1;try{for(var g=!0,b=da(N),A;A=yield Xe(b.next()),V=A.done,!V;g=!0){u=A.value,g=!1;const E=u;if(E.end){if(d)throw new S("protocol error: received extra trailer",R.InvalidArgument);d=!0,la(E.value,c.header),E.value.forEach((v,U)=>Z.trailer.set(U,v));continue}if(d)throw new S("protocol error: received extra message after trailer",R.InvalidArgument);yield yield Xe(E.value)}}catch(E){C={error:E}}finally{try{!g&&!V&&(J=b.return)&&(yield Xe(J.call(b)))}finally{if(C)throw C.error}}if(!d)throw new S("protocol error: missing trailer",R.Internal)})},{propagateDownStreamError:!0})});return Z}})}}}function Kt(e){let t=R.Internal;const n=Mn(e).map(xt);n.some(a=>a.code=="ERR_STREAM_WRITE_AFTER_END")||n.some(a=>a.code=="ERR_STREAM_DESTROYED"||a.code=="ERR_HTTP2_INVALID_STREAM"||a.code=="ECONNRESET")?t=R.Aborted:n.some(a=>a.code=="ETIMEDOUT"||a.code=="ENOTFOUND"||a.code=="EAI_AGAIN"||a.code=="ECONNREFUSED")&&(t=R.Unavailable);const o=S.from(e,t);return o!==e&&(o.cause=e),o}function Mn(e){const t=[];for(;!(!(e instanceof Error)||t.includes(e)||(t.push(e),!("cause"in e)));)e=e.cause;return t}function xt(e){const t={};return e instanceof Error&&("code"in e&&typeof e.code=="string"&&(t.code=e.code),"syscall"in e&&typeof e.syscall=="string"&&(t.syscall=e.syscall)),t}function qd(e){switch(e){case M.PROTOCOL_ERROR:case M.INTERNAL_ERROR:case M.FLOW_CONTROL_ERROR:case M.SETTINGS_TIMEOUT:case M.FRAME_SIZE_ERROR:case M.COMPRESSION_ERROR:case M.CONNECT_ERROR:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Internal);case M.REFUSED_STREAM:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Unavailable);case M.CANCEL:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Canceled);case M.ENHANCE_YOUR_CALM:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.ResourceExhausted);case M.INADEQUATE_SECURITY:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.PermissionDenied);case M.HTTP_1_1_REQUIRED:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.PermissionDenied);default:break}}var M;(function(e){e[e.PROTOCOL_ERROR=1]="PROTOCOL_ERROR",e[e.INTERNAL_ERROR=2]="INTERNAL_ERROR",e[e.FLOW_CONTROL_ERROR=3]="FLOW_CONTROL_ERROR",e[e.SETTINGS_TIMEOUT=4]="SETTINGS_TIMEOUT",e[e.STREAM_CLOSED=5]="STREAM_CLOSED",e[e.FRAME_SIZE_ERROR=6]="FRAME_SIZE_ERROR",e[e.REFUSED_STREAM=7]="REFUSED_STREAM",e[e.CANCEL=8]="CANCEL",e[e.COMPRESSION_ERROR=9]="COMPRESSION_ERROR",e[e.CONNECT_ERROR=10]="CONNECT_ERROR",e[e.ENHANCE_YOUR_CALM=11]="ENHANCE_YOUR_CALM",e[e.INADEQUATE_SECURITY=12]="INADEQUATE_SECURITY",e[e.HTTP_1_1_REQUIRED=13]="HTTP_1_1_REQUIRED"})(M||(M={}));var em=(0,Ct.promisify)(Me.gzip),tm=(0,Ct.promisify)(Me.gunzip),nm=(0,Ct.promisify)(Me.brotliCompress),om=(0,Ct.promisify)(Me.brotliDecompress),am={name:"gzip",compress(e){return Yt(em(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Tr(tm(e,{maxOutputLength:t}),t))}},rm={name:"br",compress(e){return Yt(nm(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Tr(om(e,{maxOutputLength:t}),t))}};function Yt(e){return e.then(t=>t.buffer instanceof ArrayBuffer?t:new Uint8Array(t))}function Tr(e,t){return e.catch(n=>{var o;const a=xt(n);let r=R.Internal,i="decompression failed";switch(a.code){case"ERR_BUFFER_TOO_LARGE":r=R.ResourceExhausted,i=`message is larger than configured readMaxBytes ${t} after decompression`;break;case"Z_DATA_ERROR":case"ERR_PADDING_2":r=R.InvalidArgument;break;default:!((o=a.code)===null||o===void 0)&&o.startsWith("ERR__ERROR_FORMAT_")&&(r=R.InvalidArgument);break}return Promise.reject(new S(i,r,void 0,void 0,n))})}function zt(e){const t=new Headers;for(const[n,o]of Object.entries(e))if(!n.startsWith(":")&&o!==void 0)if(typeof o=="string")t.append(n,o);else if(typeof o=="number")t.append(n,String(o));else for(const a of o)t.append(n,a);return t}function Hr(e,t){if(e===void 0&&t===void 0)return;const n=Object.create(null);if(t!==void 0)if(Array.isArray(t))for(let o=0;o+1<t.length;o+=2){const a=t[o],r=t[o+1];Array.isArray(n[a])?n[a].push(r):typeof n[a]=="string"?n[a]=[n[a],r]:n[a]=r}else for(const[o,a]of Object.entries(t))Array.isArray(a)?n[o]=a.concat():a!==void 0&&(n[o]=a);if(e!==void 0)if(Array.isArray(e))for(const[o,a]of e)$t(n,o,a);else if("forEach"in e)typeof e.forEach=="function"&&e.forEach((o,a)=>{$t(n,a,o)});else for(const[o,a]of Object.entries(e))$t(n,o,a);return n}function $t(e,t,n){t=t.toLowerCase();const o=e[t];Array.isArray(o)?o.push(n):o===void 0?e[t]=n:e[t]=[o.toString(),n]}var Qr=class{state(){return this.s.t=="ready"?this.verifying!==void 0?"verifying":this.s.streamCount()>0?"open":"idle":this.s.t}error(){if(this.s.t=="error")return this.s.reason}constructor(e,t,n){var o,a,r,i;this.s=bn(),this.shuttingDown=[],this.authority=new URL(e).origin,this.http2SessionOptions=n,this.options={pingIntervalMs:(o=t?.pingIntervalMs)!==null&&o!==void 0?o:Number.POSITIVE_INFINITY,pingTimeoutMs:(a=t?.pingTimeoutMs)!==null&&a!==void 0?a:1e3*15,pingIdleConnection:(r=t?.pingIdleConnection)!==null&&r!==void 0?r:!1,idleConnectionTimeoutMs:(i=t?.idleConnectionTimeoutMs)!==null&&i!==void 0?i:1e3*60*15}}async connect(){try{return(await this.gotoReady()).streamCount()>0?"open":"idle"}catch{return"error"}}async request(e,t,n,o){for(;;){const a=await this.gotoReady();try{const r=a.conn.request(Object.assign(Object.assign({},n),{":method":e,":path":t}),o);return a.registerRequest(r),r}catch(r){if(a.conn.closed||a.conn.destroyed)continue;throw r}}}notifyResponseByteRead(e){this.s.t=="ready"&&this.s.responseByteRead(e);for(const t of this.shuttingDown)t.responseByteRead(e)}abort(e){var t,n,o;const a=e??new S("connection aborted",R.Canceled);(n=(t=this.s).abort)===null||n===void 0||n.call(t,a);for(const r of this.shuttingDown)(o=r.abort)===null||o===void 0||o.call(r,a);this.setState(Zt(a))}async gotoReady(){for(this.s.t=="ready"?this.s.isShuttingDown()||this.s.conn.closed||this.s.conn.destroyed?this.setState(qt(this.authority,this.http2SessionOptions)):this.s.requiresVerify()&&await this.verify(this.s):(this.s.t=="closed"||this.s.t=="error")&&this.setState(qt(this.authority,this.http2SessionOptions));this.s.t!=="ready";){if(this.s.t==="error")throw this.s.reason;this.s.t==="connecting"&&await this.s.conn}return this.s}setState(e){var t,n;if((n=(t=this.s).onExitState)===null||n===void 0||n.call(t),this.s.t=="ready"&&this.s.isShuttingDown()){const o=this.s;this.shuttingDown.push(o),o.onClose=o.onError=()=>{const a=this.shuttingDown.indexOf(o);a!==-1&&this.shuttingDown.splice(a,1)}}switch(e.t){case"connecting":e.conn.then(o=>{this.setState(sm(o,this.options))},o=>{this.setState(Zt(o))});break;case"ready":e.onClose=()=>this.setState(bn()),e.onError=o=>this.setState(Zt(o));break;case"closed":break;case"error":break}this.s=e}verify(e){return this.verifying!==void 0?this.verifying:(this.verifying=e.verify().then(t=>{t||this.setState(qt(this.authority,this.http2SessionOptions))},t=>{this.setState(Zt(t))}).finally(()=>{this.verifying=void 0}),this.verifying)}};function bn(){return{t:"closed"}}function im(e){return{t:"error",reason:e}}function Zt(e){return e instanceof S&&S.from(e).code==R.Canceled?bn():im(e)}function qt(e,t){let n,o;const a=new Promise((c,m)=>{n=c,o=m}),r=he.connect(e,t);r.on("connect",i),r.on("error",s);function i(){n?.(r),l()}function s(c){o?.(Kt(c)),l()}function l(){r.off("connect",i),r.off("error",s)}return{t:"connecting",conn:a,abort(c){r.destroyed||r.destroy(void 0,he.constants.NGHTTP2_CANCEL),o?.(c)},onExitState(){l()}}}function sm(e,t){lm(e),e.unref();let n=Date.now(),o=0,a,r,i=!1,s=!1,l;V();const c={t:"ready",conn:e,streamCount(){return o},requiresVerify(){return Date.now()-n>t.pingIntervalMs},isShuttingDown(){return i},onClose:void 0,onError:void 0,registerRequest(b){o++,o==1&&(e.ref(),m(),N()),b.once("response",()=>{n=Date.now(),m()}),b.once("close",()=>{o--,o==0&&(e.unref(),m(),V())})},responseByteRead(b){b.session===e&&(e.closed||e.destroyed||o<=0||(n=Date.now(),m()))},verify(){return e.ref(),new Promise(b=>{const A=()=>{b(!1)};Z(()=>{o==0&&e.unref(),e.off("error",A),e.off("close",A),b(!0)}),e.once("error",A),e.once("close",A)})},abort(b){e.destroyed||(e.once("error",()=>{}),e.destroy(b,he.constants.NGHTTP2_CANCEL))},onExitState(){c.isShuttingDown()||(g(),this.onError=void 0,this.onClose=void 0)}};function m(){p(),(o>0||t.pingIdleConnection)&&(a=en(f,t.pingIntervalMs))}function p(){clearTimeout(a),clearTimeout(r)}function f(){Z(m)}function Z(b){clearTimeout(r),r=en(()=>{e.destroy(new S("PING timed out",R.Unavailable),he.constants.NGHTTP2_CANCEL)},t.pingTimeoutMs),e.ping((A,E)=>{if(clearTimeout(r),A===null){if(E>t.pingTimeoutMs){e.destroy(new S("PING timed out",R.Unavailable),he.constants.NGHTTP2_CANCEL);return}n=Date.now(),b()}})}function N(){clearTimeout(l)}function V(){l=en(C,t.idleConnectionTimeoutMs)}function C(){e.close(),u()}function J(b,A,E){if(b===he.constants.NGHTTP2_NO_ERROR&&o===0){e.destroy(new S("received GOAWAY without any open streams",R.Canceled),he.constants.NGHTTP2_NO_ERROR);return}i=!0;const v=Buffer.from("too_many_pings","ascii");E?.equals(v)&&(t.pingIntervalMs=t.pingIntervalMs*2,s=!0)}function u(){var b;g(),(b=c.onClose)===null||b===void 0||b.call(c)}function d(b){var A,E;if(g(),s){const v=new S(`http/2 connection closed with error code ENHANCE_YOUR_CALM (0x${he.constants.NGHTTP2_ENHANCE_YOUR_CALM.toString(16)}), too_many_pings, doubled the interval`,R.ResourceExhausted);(A=c.onError)===null||A===void 0||A.call(c,v)}else(E=c.onError)===null||E===void 0||E.call(c,Kt(b))}function g(){p(),N(),e.off("error",d),e.off("close",u),e.off("goaway",J)}return e.on("error",d),e.on("close",u),e.on("goaway",J),c}function en(e,t){if(!(t>2147483647))return setTimeout(e,t).unref()}function lm(e){if(e.connecting)throw new S("expected open session, but it is connecting",R.Internal);if(e.destroyed)throw new S("expected open session, but it is destroyed",R.Internal);if(e.closed)throw new S("expected open session, but it is closed",R.Internal)}function ma(e){var t;return e.httpVersion=="1.1"?cm(e.nodeOptions):um((t=e.sessionProvider)!==null&&t!==void 0?t:(n=>new Qr(n)))}function cm(e){return async function(n){const o=Or(n.signal);return new Promise((a,r)=>{o.onError(i=>{r(i)}),dm(o,n.url,Object.assign(Object.assign({},e),{headers:Hr(n.header,e?.headers),method:n.method}),i=>{Mr(n,i,o),i.on("response",s=>{var l;s.on("error",o.error),o.onError(m=>s.destroy(m));const c=new Headers;a({status:(l=s.statusCode)!==null&&l!==void 0?l:0,header:zt(s.headers),body:mm(o,s,c),trailer:c})})})})}}function um(e){return function(n){const o=Or(n.signal),a=e(n.url);return new Promise((r,i)=>{o.onError(s=>{i(s)}),hm(o,a,n.url,n.method,Hr(n.header),{},s=>{Mr(n,s,o),s.on("response",l=>{var c;r({status:(c=l[":status"])!==null&&c!==void 0?c:0,header:zt(l),body:gm(o,s,a),trailer:bm(s)})})})})}}function dm(e,t,n,o){let a;new URL(t).protocol.startsWith("https")?a=on.request(t,n):a=nn.request(t,n),e.onError(r=>a.destroy(r)),a.flushHeaders(),a.on("error",e.error),a.on("socket",function(i){function s(){i.off("connect",s),o(a)}i.readyState==="open"?o(a):i.on("connect",s)})}function mm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&(zt(t.trailers).forEach((r,i)=>{n.set(i,r)}),e.close()),a},throw(a){throw e.error(a),a}}}}}function hm(e,t,n,o,a,r,i){const s=new URL(n);if(s.origin!==t.authority){const l=`cannot make a request to ${s.origin}: the http2 session is connected to ${t.authority}`;e.error(new S(l,R.Internal));return}t.request(o,s.pathname+s.search,a,{}).then(l=>{e.onError(c=>{if(l.closed)return;const m=c.code==R.Canceled?M.CANCEL:M.INTERNAL_ERROR;return new Promise(p=>l.close(m,p))}),l.on("error",function(m){l.writableEnded&&Mn(m).map(xt).some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END")||e.error(m)}),l.on("close",function(){const m=qd(l.rstCode);m&&e.error(m)}),i(l)},l=>{e.error(l)})}function bm(e){const t=new Headers;return e.on("trailers",n=>{zt(n).forEach((o,a)=>{t.set(a,o)})}),t}function gm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&e.close(),n?.notifyResponseByteRead(t),a},throw(a){throw e.error(a),a}}}}}async function Mr(e,t,n){if(e.body===void 0){await new Promise(a=>t.end(a));return}const o=e.body[Symbol.asyncIterator]();return new Promise(a=>{r();function r(){n.isClosed()||o.next().then(i=>{if(i.done===!0){t.end(a);return}t.write(i.value,"binary",s=>{if(s==null){r();return}o.throw!==void 0&&o.throw(Kt(s)).catch(()=>{}),!(t.writableEnded&&Mn(s).map(xt).some(l=>l.code=="ERR_STREAM_WRITE_AFTER_END"))&&n.error(s)})},i=>{n.error(i)})}})}function Or(e){let t,n=!1,o,a=[];const r={error(l){if(!n){n=!0,o=l instanceof S?l:Kt(l),t?.(o);for(const c of a)c(o);i()}},close(){n||(n=!0,t&&t(new S("sentinel completed early",R.Internal)),i())},isClosed(){return n},onError(l){n?o!==void 0&&l(o):a.push(l)},race(l){let c;const m=new Promise((p,f)=>{c=p,t=f});return l.then(p=>{c?.(p)},p=>{t?.(p)}),n&&t?.(o??new S("sentinel completed early",R.Internal)),m}};function i(){e&&e.removeEventListener("abort",s),a=[],t=void 0}function s(){r.error(lt(this))}return e&&(e.addEventListener("abort",s),e.aborted&&r.error(lt(e))),r}function pm(e){var t,n,o,a;let r;if(e.httpVersion=="2"){let i;e.sessionManager?i=e.sessionManager:i=new Qr(e.baseUrl,{pingIntervalMs:e.pingIntervalMs,pingIdleConnection:e.pingIdleConnection,pingTimeoutMs:e.pingTimeoutMs,idleConnectionTimeoutMs:e.idleConnectionTimeoutMs},e.nodeOptions),r=ma({httpVersion:"2",sessionProvider:()=>i})}else r=ma({httpVersion:"1.1",nodeOptions:e.nodeOptions});return Object.assign(Object.assign(Object.assign({},e),{httpClient:r,useBinaryFormat:(t=e.useBinaryFormat)!==null&&t!==void 0?t:!0,interceptors:(n=e.interceptors)!==null&&n!==void 0?n:[],sendCompression:(o=e.sendCompression)!==null&&o!==void 0?o:null,acceptCompression:(a=e.acceptCompression)!==null&&a!==void 0?a:[am,rm]}),Nc(e.readMaxBytes,e.writeMaxBytes,e.compressMinBytes))}function Am(e){return $d(pm(e))}function Zm(e){return`cli/${e??"unknown"}`}var fm=Zm("0.1.0-dev.35.1.85ebf75"),Rm="/grpc";function Em(e){return`${e.replace(/\/+$/,"")}${Rm}`}var Nm=e=>async t=>{const{token:n,lang:o}=zr();return t.header.set("X-Hagi-Client",fm),n&&t.header.set("Authorization",`Bearer ${n}`),o&&t.header.set("Accept-Language",o),e(t)},ft;function Se(){const e=Em(zr().baseUrl);return(!ft||ft.baseUrl!==e)&&(ft={baseUrl:e,transport:Am({baseUrl:e,httpVersion:"1.1",useBinaryFormat:!0,interceptors:[Nm]})}),ft.transport}var de=()=>Ge(Cu,Se()),Te=()=>Ge(zu,Se()),Fe=()=>Ge(Ou,Se()),ha=()=>Ge($u,Se()),me=()=>Ge(bd,Se()),Gm=()=>Ge(pd,Se()),ve=()=>Ge(Yd,Se()),ba=()=>Ge(Fd,Se()),tt=()=>Ge(Td,Se());async function y(e,t){return Md(e,await t)}function Vm(){return{listSessions:async e=>y(Ed,ve().listSessions({type:e.type,activeOnly:e.activeOnly,includeArchived:e.includeArchived,projectId:e.projectId,projectIds:e.projectIds??[]})),getSession:async e=>y(fd,ve().getSession({sessionId:e})),createProposalSession:async e=>y(Zd,ve().openSession({body:H(Sd,e)})),createChatSession:async e=>y(Ad,ve().openChatSession({body:H(Wd,e)})),createHagiTaskSession:async e=>y(Vd,ve().startHagiTaskSession({body:H(Xd,e)})),listHagiTaskSchemas:async()=>y(_u,ha().listPresetTaskSchemas({})),getHagiTaskSchema:async e=>y(Pu,ha().getPresetTaskSchema({presetTaskId:e})),updateSession:async(e,t)=>y(Rd,ve().saveSession({sessionId:e,body:H(vd,t)})),deleteSession:async(e,t)=>y(Nd,ve().deleteSession({sessionId:e,deleteFiles:t??!1})),sendMessage:async(e,t)=>y(Id,ba().postSessionMessage({sessionId:e,body:H(Cd,t)})),optimizeProposal:async(e,t)=>y(wd,tt().optimizeSessionProposal({sessionId:e,body:H(xd,t)})),generateProposal:async(e,t)=>y(Ud,tt().generateProposal({sessionId:e,body:H(zd,t)})),executeProposal:async(e,t)=>y(kd,tt().executeProposal({sessionId:e,body:H(jd,t??{})})),archiveProposal:async(e,t)=>y(Jd,tt().archiveSession({sessionId:e,body:H(Ld,t??{})})),completeProposal:async e=>y(Kd,tt().completeSession({sessionId:e})),submitAnnotations:async(e,t)=>y(yd,ba().submitSessionAnnotations({sessionId:e,body:H(Bd,t)})),listProjects:async()=>y(gd,Gm().getAggregatedData({forceRefresh:!1})),createProject:async e=>y(Zu,de().createProject({body:H(vu,e)})),updateProject:async(e,t)=>y(fu,de().updateProject({id:e,body:H(Xu,t)})),deleteProject:async e=>{await de().deleteProject({id:e})},getMonoSpecsManagement:async e=>y(Ru,de().getMonoSpecsManagement({projectId:e})),saveMonoSpecsManagement:async(e,t)=>y(Wu,de().updateMonoSpecsManagement({projectId:e,body:H(Iu,t)})),initializeMonoSpecsManagement:async e=>y(Vu,de().initializeMonoSpecs({projectId:e})),reloadMonoSpecsManagement:async e=>y(Eu,de().reloadMonoSpecs({projectId:e})),validateMonoSpecs:async e=>y(Su,de().validateMonoSpecsConfig({body:H(yu,e)})),cloneMonoSpecsRepositories:async(e,t)=>y(Nu,de().cloneMonoSpecsRepositories({projectId:e,body:H(Yu,t)})),removeMonoSpecsRepositoryCheckout:async(e,t,n)=>y(Gu,de().removeMonoSpecsRepositoryCheckout({projectId:e,path:t,force:n})),listPlans:async()=>y(Lu,Fe().listScheduledPlans({})),getPlan:async e=>y(ju,Fe().getScheduledPlan({id:e})),createPlan:async e=>y(Tu,Fe().createScheduledPlan({body:H(sa,e)})),updatePlan:async(e,t)=>y(Hu,Fe().updateScheduledPlan({id:e,body:H(sa,t)})),deletePlan:async e=>{await Fe().deleteScheduledPlan({id:e})},runPlan:async e=>y(Qu,Fe().runScheduledPlan({id:e})),startPlan:async e=>y(Mu,Fe().startScheduledPlan({id:e})),listVaults:async()=>y(Bu,Te().listVaults({})),createVault:async e=>y(Fu,Te().createVault({body:H(Ku,e)})),updateVault:async(e,t)=>y(wu,Te().updateVault({id:e,body:H(xu,t)})),deleteVault:async(e,t)=>y(Uu,Te().deleteVault({id:e,deleteLocalFiles:t??!1})),listVaultFiles:async(e,t)=>y(Ju,Te().getVaultFiles({id:e,path:t})),previewVaultFile:async(e,t)=>y(ku,Te().getVaultFilePreview({id:e,path:t})),archiveChat:async e=>y(Gd,ve().archiveChatSession({sessionId:e})),listLocalSkills:async()=>y(qu,me().getLocalSkills({})),uninstallLocalSkill:async e=>y(ed,me().uninstallLocalSkill({body:H(cd,e)})),setBuiltInSkillAvailability:async e=>y(td,me().setBuiltInSkillAvailability({body:H(ud,e)})),searchSkillGallery:async e=>y(nd,me().getSkillGallery({query:e})),getSkillGalleryDetail:async(e,t)=>y(od,me().getSkillGalleryDetail({id:e,source:t})),installGallerySkill:async e=>y(ld,me().installSkill({body:H(hd,e)})),listTrustedSkillProviders:async()=>y(ad,me().getTrustedSkillProviders({})),upsertTrustedSkillProvider:async e=>y(rd,me().upsertTrustedSkillProvider({body:H(dd,e)})),deleteTrustedSkillProvider:async e=>y(id,me().deleteTrustedSkillProvider({body:H(md,e)})),resetTrustedSkillProviders:async()=>y(sd,me().resetTrustedSkillProviders({}))}}function B(e){const t=e?.trim();return t||void 0}function F(e,t){const n=B(e);if(!n)throw new w(`${t} is required.`);return n}function gn(e){const t=e?.map(n=>B(n)).filter(Boolean);return t&&t.length>0?t:void 0}function Dr(e=process.env,t={stdout:n=>{process.stdout.write(n)},stderr:n=>{process.stderr.write(n)}}){return{api:Vm(),env:e,io:t}}function Wm(e){return e.option("--base-url <url>",'Backend API base URL. Overrides HAGI_API_BASE_URL and the "baseUrl" config file entry.').option("--token <token>","Bearer token for backend API calls. Overrides HAGI_API_TOKEN.").option("--lang <lang>","Accept-Language value for backend API calls. Overrides HAGI_API_LANG.")}function X(e){return e.option("--json","Emit deterministic JSON instead of human-readable text.")}function Y(e,t){const n=e.optsWithGlobals();return{api:t.api,env:t.env,io:t.io,outputJson:n.json===!0,runtime:pu({baseUrl:n.baseUrl,token:n.token,lang:n.lang},t.env)}}function Sm(e,t){X(e.command("archive").description("Archive a chat session through the dedicated chat archive endpoint.")).requiredOption("--session-id <id>","Chat session id to archive.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.archiveChat(r);if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message}));return}a.io.stdout(`Chat archived
34
+ `}var mu="--base-url",bu="HAGI_API_BASE_URL";function Ze(e){const t=e?.trim();return t||void 0}function Kr(e=process.env){return(0,to.join)(Ze(e.XDG_CONFIG_HOME)??(0,to.join)((0,vi.homedir)(),".config"),"hagi","config.json")}function hu(e=process.env){const t=Kr(e);let n;try{n=(0,Si.readFileSync)(t,"utf8")}catch(r){if(r.code==="ENOENT")return;throw new U(`Cannot read CLI config file ${t}: ${r instanceof Error?r.message:String(r)}`)}let o;try{o=JSON.parse(n)}catch{throw new U(`CLI config file ${t} is not valid JSON.`)}const a=o&&typeof o=="object"&&!Array.isArray(o)?o.baseUrl:void 0;return typeof a=="string"?Ze(a):void 0}function gu(e={},t=process.env){const n=Ze(e.baseUrl)??Ze(t.HAGI_API_BASE_URL)??hu(t);if(!n)throw new U(`No backend base URL is configured. Set ${mu} <url>, the ${bu} environment variable, or "baseUrl" in ${Kr(t)}.`);return{baseUrl:n,token:Ze(e.token)??Ze(t.HAGI_API_TOKEN),lang:Ze(e.lang)??Ze(t.HAGI_API_LANG)}}var ct;function pu(e={},t=process.env){return ct=gu(e,t),ct}function zr(){if(!ct)throw new U("The backend connection is not configured. Resolve the API runtime before calling the backend.");return ct}function Au(){return Ze(ct?.baseUrl)}var ee=q("CiFoYWdpY29kZS9wcm9qZWN0L3YxL3Byb2plY3QucHJvdG8SE2hhZ2ljb2RlLnByb2plY3QudjEiSwoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSMwoEYm9keRgBIAEoCzIlLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdER0byJIChVDcmVhdGVQcm9qZWN0UmVzcG9uc2USLwoGcmVzdWx0GAEgASgLMh8uaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0RHRvIhoKGENyZWF0ZURlbW9Qcm9qZWN0UmVxdWVzdCJMChlDcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEi8KBnJlc3VsdBgBIAEoCzIfLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdER0byJXChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRIzCgRib2R5GAIgASgLMiUuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0RHRvIkgKFVVwZGF0ZVByb2plY3RSZXNwb25zZRIvCgZyZXN1bHQYASABKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REdG8iIgoURGVsZXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiFwoVRGVsZXRlUHJvamVjdFJlc3BvbnNlIkUKHkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg8KB3JlZnJlc2gYAiABKAgiZwofR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzUmVzcG9uc2VEdG8iPgooR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJInsKKUdldFByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8ikAEKKVNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSTwoEYm9keRgCIAEoCzJBLmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3REdG8ifAoqU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8iMwodR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJdCh5HZXRNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvIiwKFlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJWChdSZWxvYWRNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8igAEKIUNsb25lTW9ub1NwZWNzUmVwb3NpdG9yaWVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkcKBGJvZHkYAiABKAsyOS5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yaWVzUmVxdWVzdER0byJwCiJDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0byJpCihSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEQoEcGF0aBgCIAEoCUgAiAEBEg0KBWZvcmNlGAMgASgIQgcKBV9wYXRoInQKKVJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0byIwChpJbml0aWFsaXplTW9ub1NwZWNzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIloKG0luaXRpYWxpemVNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8ifgogVXBkYXRlTW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRJGCgRib2R5GAIgASgLMjguaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0byJgCiFVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvImcKH0dldFByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIcCg9yZXBvc2l0b3J5X3BhdGgYAiABKAlIAIgBAUISChBfcmVwb3NpdG9yeV9wYXRoImEKIEdldFByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdERlc2lnbkRvY3VtZW50RHRvIoABCiBTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkgKBGJvZHkYAiABKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8ibAohU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3VsdER0byI2CiBHZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJImMKIUdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXNwb25zZRI+CgZyZXN1bHQYASABKAsyLi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhEdG8iRwojR2V0UHJvamVjdERlc2lnblNpdGVEb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRzbHVnGAIgASgJImkKJEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXNwb25zZRJBCgZyZXN1bHQYASABKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlRG9jdW1lbnREdG8ieQocVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhMKC2JyYW5jaF9uYW1lGAIgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgDIAEoCUgAiAEBQhIKEF9yZXBvc2l0b3J5X3BhdGgiYQodVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucHJvamVjdC52MS5CcmFuY2hWYWxpZGF0aW9uUmVzcG9uc2VEdG8iKgoaVmFsaWRhdGVQcm9qZWN0UGF0aFJlcXVlc3QSDAoEcGF0aBgBIAEoCSJdChtWYWxpZGF0ZVByb2plY3RQYXRoUmVzcG9uc2USPgoGcmVzdWx0GAEgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5QYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvIlcKGlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0EjkKBGJvZHkYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc1JlcXVlc3REdG8iWwobU2NhbkdpdFJlcG9zaXRvcmllc1Jlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnByb2plY3QudjEuU2NhbkdpdFJlcG9zUmVzcG9uc2VEdG8iYAoeVmFsaWRhdGVNb25vU3BlY3NDb25maWdSZXF1ZXN0Ej4KBGJvZHkYASABKAsyMC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzUmVxdWVzdER0byJkCh9WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAEoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVNb25vU3BlY3NSZXNwb25zZUR0byItChdHZXRQcm9qZWN0VmF1bHRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIlUKGEdldFByb2plY3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIqABCh5PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgCIAEoCUgAiAEBEhUKCHN1Yl9wYXRoGAMgASgJSAGIAQFCHQobX2N1cnJlbnRfaW50ZXJmYWNlX2xhbmd1YWdlQgsKCV9zdWJfcGF0aCJlCh9PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlc3BvbnNlEkIKBnJlc3VsdBgBIAEoCzIyLmhhZ2ljb2RlLnByb2plY3QudjEuVnNDb2RlU2VydmVyTGF1bmNoUmVzcG9uc2VEdG8iNQofR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIl4KIEdldFByb2plY3RHaXRXYXRjaFN0YXR1c1Jlc3BvbnNlEjoKBnJlc3VsdBgBIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdEdpdFdhdGNoU3RhdHVzIkAKDlN1YlJlcG9JbmZvRHRvEgwKBG5hbWUYASABKAkSDAoEcGF0aBgCIAEoCRISCgpoYXNfYWdlbnRzGAMgASgIIvEDCgpQcm9qZWN0RHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjEKDWNyZWF0aW9uX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmxhc3RfbW9kaWZpY2F0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhUKDWlzX21vbm9fc3BlY3MYByABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAggASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgJIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgKIAEoCEgDiAEBEj0KEHN1Yl9yZXBvc2l0b3JpZXMYCyADKAsyIy5oYWdpY29kZS5wcm9qZWN0LnYxLlN1YlJlcG9JbmZvRHRvQg4KDF9kZXNjcmlwdGlvbkIVChNfbW9ub19zcGVjc192ZXJzaW9uQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiWAoQQ3JlYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iWAoQVXBkYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24i5gIKG1Byb2plY3RTdGFuZGFyZFdvcmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIWCglwYXJlbnRfaWQYAyABKAlIAIgBARIPCgdlbmFibGVkGAQgASgIEg0KBW9yZGVyGAUgASgFEhMKC3NvdXJjZV90eXBlGAYgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAcgASgJEgwKBHRhZ3MYCCADKAkSFQoIbGFuZ3VhZ2UYCSABKAlIAYgBARJQCghtZXRhZGF0YRgKIAMoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIu0CChxQcm9qZWN0U3RhbmRhcmRXb3JkUGhyYXNlRHRvEhAKCGdyb3VwX2lkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIWCg5zdWJtaXR0ZWRfdGV4dBgEIAEoCRIPCgdlbmFibGVkGAUgASgIEg0KBW9yZGVyGAYgASgFEhMKC3NvdXJjZV90eXBlGAcgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAggASgJEgwKBHRhZ3MYCSADKAkSFQoIbGFuZ3VhZ2UYCiABKAlIAIgBARJRCghtZXRhZGF0YRgLIAMoCzI/LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFBocmFzZUR0by5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUILCglfbGFuZ3VhZ2UinAEKHFByb2plY3RTdGFuZGFyZFdvcmRTb3VyY2VEdG8SDAoEdHlwZRgBIAEoCRIVCg1yZWxhdGl2ZV9wYXRoGAIgASgJEhEKCWZ1bGxfcGF0aBgDIAEoCRIOCgZleGlzdHMYBCABKAgSNAoQbGFzdF9tb2RpZmllZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiygEKIVByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGAoLc291cmNlX3R5cGUYBCABKAlIAIgBARIaCg1yZWxhdGl2ZV9wYXRoGAUgASgJSAGIAQESEgoFZmllbGQYBiABKAlIAogBAUIOCgxfc291cmNlX3R5cGVCEAoOX3JlbGF0aXZlX3BhdGhCCAoGX2ZpZWxkIr0DCh9Qcm9qZWN0U3RhbmRhcmRXb3Jkc1Jlc3BvbnNlRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKZnJvbV9jYWNoZRgFIAEoCBJCCgdzb3VyY2VzGAYgAygLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3JkU291cmNlRHRvEkAKBmdyb3VwcxgHIAMoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvEkIKB3BocmFzZXMYCCADKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRQaHJhc2VEdG8SSwoLZGlhZ25vc3RpY3MYCSADKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0byK6AgolUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZVBocmFzZUR0bxILCgNrZXkYASABKAkSDQoFbGFiZWwYAiABKAkSFgoOc3VibWl0dGVkX3RleHQYAyABKAkSDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSACIAQESWgoIbWV0YWRhdGEYCCADKAsySC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCwoJX2xhbmd1YWdlIpIDCiRQcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSFgoJcGFyZW50X2lkGAMgASgJSACIAQESDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSAGIAQESWQoIbWV0YWRhdGEYCCADKAsyRy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVHcm91cER0by5NZXRhZGF0YUVudHJ5EksKB3BocmFzZXMYCSADKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8aLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIsQBCiVQcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEhMKC3NvdXJjZV90eXBlGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhMKC2dyb3VwX2NvdW50GAQgASgFEhQKDHBocmFzZV9jb3VudBgFIAEoBRI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLWAQokUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhMKC3NvdXJjZV90eXBlGAIgASgJEhUKDXJlbGF0aXZlX3BhdGgYAyABKAkSEQoJZnVsbF9wYXRoGAQgASgJEg4KBmV4aXN0cxgFIAEoCBI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglzaWduYXR1cmUYByABKAkilgEKIVByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxITCgtncm91cF9jb3VudBgBIAEoBRIUCgxwaHJhc2VfY291bnQYAiABKAUSHAoUZGlzYWJsZWRfZW50cnlfY291bnQYAyABKAUSEQoJdGFnX2NvdW50GAQgASgFEhUKDXNvdXJjZV9zdGF0dXMYBSABKAki8wQKKVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudERvY3VtZW50RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoGZ3JvdXBzGAUgAygLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SQgoHc291cmNlcxgGIAMoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFNvdXJjZUR0bxJaChZ1c2VyX292ZXJsYXlfc3VtbWFyaWVzGAcgAygLMjouaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEkoKCnN0YXRpc3RpY3MYCCABKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxJRCg5zb3VyY2VfdmVyc2lvbhgJIAEoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEksKC2RpYWdub3N0aWNzGAogAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0RpYWdub3N0aWNEdG8i5AEKLFNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEkkKBmdyb3VwcxgCIAMoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZUdyb3VwRHRvElEKDnNvdXJjZV92ZXJzaW9uGAMgASgLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc1NvdXJjZVZlcnNpb25EdG8iVQojTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJEhIKCnZhbHVlX2tpbmQYAyABKAki5gQKIE1vbm9TcGVjc01hbmFnZW1lbnRSZXBvc2l0b3J5RHRvEgwKBG5hbWUYASABKAkSEQoEY29kZRgCIAEoCUgAiAEBEgwKBHBhdGgYAyABKAkSEAoDdXJsGAQgASgJSAGIAQESGQoMZGlzcGxheV9uYW1lGAUgASgJSAKIAQESEQoEdHlwZRgGIAEoCUgDiAEBEhEKBGljb24YByABKAlIBIgBARIQCghvcHRpb25hbBgIIAEoCBIMCgR0YWdzGAkgAygJEkoKCG1ldGFkYXRhGAogAygLMjguaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50TWV0YWRhdGFFbnRyeUR0bxIZChFpc192YWxpZF9naXRfcmVwbxgLIAEoCBITCgZicmFuY2gYDCABKAlIBYgBARIfChdoYXNfdW5jb21taXR0ZWRfY2hhbmdlcxgNIAEoCBIdChV1bnB1c2hlZF9jb21taXRfY291bnQYDiABKAUSGwoTaGFzX3RyYWNraW5nX2JyYW5jaBgPIAEoCBI1Cg90cmFja2luZ19icmFuY2gYECABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSEwoLYWhlYWRfY291bnQYESABKAUSFAoMYmVoaW5kX2NvdW50GBIgASgFEhcKCnN5bmNfc3RhdGUYEyABKAlIBogBAUIHCgVfY29kZUIGCgRfdXJsQg8KDV9kaXNwbGF5X25hbWVCBwoFX3R5cGVCBwoFX2ljb25CCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSKiAgoWTW9ub1NwZWNzTWFuYWdlbWVudER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhMKC2NvbmZpZ19wYXRoGAMgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYBCABKAgSFAoMeWFtbF9wcmV2aWV3GAUgASgJEksKDHJlcG9zaXRvcmllcxgGIAMoCzI1LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudFJlcG9zaXRvcnlEdG8SSgoIbWV0YWRhdGEYByADKAsyOC5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnRNZXRhZGF0YUVudHJ5RHRvImMKIU1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yeVJlc3VsdER0bxIMCgRwYXRoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIUCgdtZXNzYWdlGAMgASgJSACIAQFCCgoIX21lc3NhZ2UicAolTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0bxJHCgdyZXN1bHRzGAEgAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDbG9uZVJlcG9zaXRvcnlSZXN1bHREdG8iTwokTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXF1ZXN0RHRvEg0KBXBhdGhzGAEgAygJEhgKEGluY2x1ZGVfb3B0aW9uYWwYAiABKAgiZQoiTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0bxIMCgRwYXRoGAEgASgJEg8KB3JlbW92ZWQYAiABKAgSFAoHbWVzc2FnZRgDIAEoCUgAiAEBQgoKCF9tZXNzYWdlIoQCCiNVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYAyABKAgSSwoMcmVwb3NpdG9yaWVzGAQgAygLMjUuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50UmVwb3NpdG9yeUR0bxJKCghtZXRhZGF0YRgFIAMoCzI4LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8inQEKGFByb2plY3REZXNpZ25Eb2N1bWVudER0bxIMCgRwYXRoGAEgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgCIAEoCUgAiAEBEg8KB2NvbnRlbnQYAyABKAkSDgoGZXhpc3RzGAQgASgIEhQKB3ZlcnNpb24YBSABKAlIAYgBAUISChBfcmVwb3NpdG9yeV9wYXRoQgoKCF92ZXJzaW9uIoYBCiJTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzdWx0RHRvEgwKBHBhdGgYASABKAkSHAoPcmVwb3NpdG9yeV9wYXRoGAIgASgJSACIAQESDwoHY3JlYXRlZBgDIAEoCBIPCgd2ZXJzaW9uGAQgASgJQhIKEF9yZXBvc2l0b3J5X3BhdGgingEKJVVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAEgASgJSACIAQESDwoHY29udGVudBgCIAEoCRIdChBleHBlY3RlZF92ZXJzaW9uGAMgASgJSAGIAQFCEgoQX3JlcG9zaXRvcnlfcGF0aEITChFfZXhwZWN0ZWRfdmVyc2lvbiLAAQoeUHJvamVjdERlc2lnblNpdGVJbmRleEVudHJ5RHRvEgwKBHNsdWcYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHc3VtbWFyeRgDIAEoCRISCgpkZXRhaWxfdXJsGAQgASgJEhsKE2Rlc2lnbl9kb3dubG9hZF91cmwYBSABKAkSHwoXcHJldmlld19saWdodF9pbWFnZV91cmwYBiABKAkSHgoWcHJldmlld19kYXJrX2ltYWdlX3VybBgHIAEoCSK+AgoZUHJvamVjdERlc2lnblNpdGVJbmRleER0bxITCgtjYXRhbG9nX3VybBgBIAEoCRIVCg1zb3VyY2Vfc3RhdHVzGAIgASgJEhMKC2VudHJ5X2NvdW50GAMgASgFEkQKB2VudHJpZXMYBCADKAsyMy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhFbnRyeUR0bxIaCg1jYWNoZV9jb250cm9sGAUgASgJSACIAQESEgoFZV90YWcYBiABKAlIAYgBARIaCg1sYXN0X21vZGlmaWVkGAcgASgJSAKIAQESFAoHZXhwaXJlcxgIIAEoCUgDiAEBQhAKDl9jYWNoZV9jb250cm9sQggKBl9lX3RhZ0IQCg5fbGFzdF9tb2RpZmllZEIKCghfZXhwaXJlcyKZAgocUHJvamVjdERlc2lnblNpdGVEb2N1bWVudER0bxIMCgRzbHVnGAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB2NvbnRlbnQYAyABKAkSEgoKZGV0YWlsX3VybBgEIAEoCRIbChNkZXNpZ25fZG93bmxvYWRfdXJsGAUgASgJEhoKDWNhY2hlX2NvbnRyb2wYBiABKAlIAIgBARISCgVlX3RhZxgHIAEoCUgBiAEBEhoKDWxhc3RfbW9kaWZpZWQYCCABKAlIAogBARIUCgdleHBpcmVzGAkgASgJSAOIAQFCEAoOX2NhY2hlX2NvbnRyb2xCCAoGX2VfdGFnQhAKDl9sYXN0X21vZGlmaWVkQgoKCF9leHBpcmVzImoKG0JyYW5jaFZhbGlkYXRpb25SZXNwb25zZUR0bxIOCgZleGlzdHMYASABKAgSEAoIaXNfdmFsaWQYAiABKAgSFAoMaXNfYXZhaWxhYmxlGAMgASgIEhMKC2JyYW5jaF9uYW1lGAQgASgJIogDChlQYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvEhAKCGlzX3ZhbGlkGAEgASgIEg4KBnN0YXR1cxgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhYKCXBhdGhfdHlwZRgEIAEoCUgAiAEBEiIKFWhhc19tb25vX3NwZWNzX2NvbmZpZxgFIAEoCEgBiAEBEiMKFm1vbm9fc3BlY3NfY29uZmlnX3BhdGgYBiABKAlIAogBARImChltb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5GAcgASgJSAOIAQESKwoebW9ub19zcGVjc19jb21taXRfd2hlbl9hcmNoaXZlGAggASgISASIAQFCDAoKX3BhdGhfdHlwZUIYChZfaGFzX21vbm9fc3BlY3NfY29uZmlnQhkKF19tb25vX3NwZWNzX2NvbmZpZ19wYXRoQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiVgoKR2l0UmVwb0R0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSFQoNcmVsYXRpdmVfcGF0aBgDIAEoCRIVCg1pc19tb25vX3NwZWNzGAQgASgIIqQBChdTY2FuR2l0UmVwb3NSZXNwb25zZUR0bxI1CgxyZXBvc2l0b3JpZXMYASADKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLkdpdFJlcG9EdG8SEwoLdG90YWxfY291bnQYAiABKAUSDwoHc3VjY2VzcxgDIAEoCBIaCg1lcnJvcl9tZXNzYWdlGAQgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UijwEKFlNjYW5HaXRSZXBvc1JlcXVlc3REdG8SEQoJcm9vdF9wYXRoGAEgASgJEhEKCW1heF9kZXB0aBgCIAEoBRIWCg5leGNsdWRlX2hpZGRlbhgDIAEoCBIdChVtYXhfZm9sZGVyc19wZXJfbGV2ZWwYBCABKAUSGAoQZXhjbHVkZV9wYXR0ZXJucxgFIAMoCSJEChlNb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEg8KB3ZlcnNpb24YASABKAkSFgoOcmVwb19kaXJlY3RvcnkYAiABKAkikgEKHFZhbGlkYXRlTW9ub1NwZWNzUmVzcG9uc2VEdG8SEAoIaXNfdmFsaWQYASABKAgSPgoGY29uZmlnGAIgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEhAKCHdhcm5pbmdzGAMgAygJEg4KBmVycm9ycxgEIAMoCSIzChtWYWxpZGF0ZU1vbm9TcGVjc1JlcXVlc3REdG8SFAoMcHJvamVjdF9wYXRoGAEgASgJInwKG1ZhdWx0Qm9vdHN0cmFwRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGgoNcmVsYXRpdmVfcGF0aBgEIAEoCUgAiAEBQhAKDl9yZWxhdGl2ZV9wYXRoIt8CCgxWYXVsdEl0ZW1EdG8SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhUKDXBoeXNpY2FsX3BhdGgYBCABKAkSFAoHZ2l0X3VybBgFIAEoCUgAiAEBEjIKDmNyZWF0ZWRfYXRfdXRjGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg51cGRhdGVkX2F0X3V0YxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTwoVYm9vdHN0cmFwX2RpYWdub3N0aWNzGAggAygLMjAuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEJvb3RzdHJhcERpYWdub3N0aWNEdG8SDQoFc2NvcGUYCSABKAkSFwoKcHJvamVjdF9pZBgKIAEoCUgBiAEBQgoKCF9naXRfdXJsQg0KC19wcm9qZWN0X2lkIn4KFFZhdWx0TGlzdFJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKBWl0ZW1zGAIgAygLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8inwQKHFZzQ29kZVNlcnZlclJ1bnRpbWVTdGF0dXNEdG8SDgoGc3RhdHVzGAEgASgJEhsKE2FjdGl2ZV9jYXBhYmlsaXRpZXMYAiADKAkSEQoEaG9zdBgDIAEoCUgAiAEBEhwKD2NvbmZpZ3VyZWRfcG9ydBgEIAEoBUgBiAEBEhsKDmVmZmVjdGl2ZV9wb3J0GAUgASgFSAKIAQESFQoIYmFzZV91cmwYBiABKAlIA4gBARIWCglhdXRoX21vZGUYByABKAlIBIgBARITCgZzb3VyY2UYCCABKAlIBYgBARIVCg1zb3VyY2VfbG9ja2VkGAkgASgIEhIKCmhhc19zZWNyZXQYCiABKAgSGgoNc2VjcmV0X3NvdXJjZRgLIAEoCUgGiAEBEjkKFWxhc3RfYXR0ZW1wdGVkX2F0X3V0YxgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKbGFzdF9lcnJvchgNIAEoCUgHiAEBEhsKDnN0YXR1c19tZXNzYWdlGA4gASgJSAiIAQFCBwoFX2hvc3RCEgoQX2NvbmZpZ3VyZWRfcG9ydEIRCg9fZWZmZWN0aXZlX3BvcnRCCwoJX2Jhc2VfdXJsQgwKCl9hdXRoX21vZGVCCQoHX3NvdXJjZUIQCg5fc2VjcmV0X3NvdXJjZUINCgtfbGFzdF9lcnJvckIRCg9fc3RhdHVzX21lc3NhZ2UinAIKHVZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvEhIKCmxhdW5jaF91cmwYASABKAkSHQoQY29ubmVjdGlvbl90b2tlbhgCIAEoCUgAiAEBEhEKCW9wZW5fbW9kZRgDIAEoCRJCCgdydW50aW1lGAQgASgLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Wc0NvZGVTZXJ2ZXJSdW50aW1lU3RhdHVzRHRvEhgKC2luc3RhbmNlX2lkGAUgASgJSAGIAQESMgoOZXhwaXJlc19hdF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9jb25uZWN0aW9uX3Rva2VuQg4KDF9pbnN0YW5jZV9pZCKXAgoVUHJvamVjdEdpdFdhdGNoU3RhdHVzEh4KFm1vbml0b3JlZF9yZXBvc2l0b3JpZXMYASADKAkSNAoQbGFzdF9zY2FuX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbmV4dF9zY2FuX2F0X3V0YxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQcmVwb3NpdG9yeV9jb3VudBgEIAEoBRISCgppc19ydW5uaW5nGAUgASgIEiIKGm1heF9tb25pdG9yZWRfcmVwb3NpdG9yaWVzGAYgASgFEiAKGGdpdF9hdXRvX3JlZnJlc2hfZW5hYmxlZBgHIAEoCDL1GAoOUHJvamVjdFNlcnZpY2USZgoNQ3JlYXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVByb2plY3RSZXNwb25zZRJyChFDcmVhdGVEZW1vUHJvamVjdBItLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlRGVtb1Byb2plY3RSZXF1ZXN0Gi4uaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEmYKDVVwZGF0ZVByb2plY3QSKS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3RSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0UmVzcG9uc2USZgoNRGVsZXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkRlbGV0ZVByb2plY3RSZXNwb25zZRKEAQoXR2V0UHJvamVjdFN0YW5kYXJkV29yZHMSMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRKiAQohR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50Ej0uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0Gj4uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKlAQoiU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudBI+LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3QaPy5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKBAQoWR2V0TW9ub1NwZWNzTWFuYWdlbWVudBIyLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QaMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldE1vbm9TcGVjc01hbmFnZW1lbnRSZXNwb25zZRJsCg9SZWxvYWRNb25vU3BlY3MSKy5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QaLC5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1Jlc3BvbnNlEo0BChpDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllcxI2LmhhZ2ljb2RlLnByb2plY3QudjEuQ2xvbmVNb25vU3BlY3NSZXBvc2l0b3JpZXNSZXF1ZXN0GjcuaGFnaWNvZGUucHJvamVjdC52MS5DbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEqIBCiFSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXQSPS5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlcXVlc3QaPi5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEngKE0luaXRpYWxpemVNb25vU3BlY3MSLy5oYWdpY29kZS5wcm9qZWN0LnYxLkluaXRpYWxpemVNb25vU3BlY3NSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5Jbml0aWFsaXplTW9ub1NwZWNzUmVzcG9uc2USigEKGVVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2UShwEKGEdldFByb2plY3REZXNpZ25Eb2N1bWVudBI0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBo1LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGVNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5TYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGUdldFByb2plY3REZXNpZ25TaXRlSW5kZXgSNS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVzcG9uc2USkwEKHEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnQSOC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXF1ZXN0GjkuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZURvY3VtZW50UmVzcG9uc2USfgoVVmFsaWRhdGVQcm9qZWN0QnJhbmNoEjEuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXF1ZXN0GjIuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXNwb25zZRJ4ChNWYWxpZGF0ZVByb2plY3RQYXRoEi8uaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RQYXRoUmVxdWVzdBowLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVQcm9qZWN0UGF0aFJlc3BvbnNlEngKE1NjYW5HaXRSZXBvc2l0b3JpZXMSLy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5TY2FuR2l0UmVwb3NpdG9yaWVzUmVzcG9uc2UShAEKF1ZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnEjMuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1JlcXVlc3QaNC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnUmVzcG9uc2USbwoQR2V0UHJvamVjdFZhdWx0cxIsLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFZhdWx0c1JlcXVlc3QaLS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RWYXVsdHNSZXNwb25zZRKEAQoXT3BlblByb2plY3RJbkNvZGVTZXJ2ZXISMy5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5Qcm9qZWN0SW5Db2RlU2VydmVyUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuT3BlblByb2plY3RJbkNvZGVTZXJ2ZXJSZXNwb25zZRKHAQoYR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzEjQuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXF1ZXN0GjUuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXNwb25zZUIpqgImUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlByb2plY3QuVjFiBnByb3RvMw",[Ee,cr]),Zu=N(ee,1),Ru=N(ee,5),fu=N(ee,15),Eu=N(ee,17),Vu=N(ee,19),Nu=N(ee,21),Gu=N(ee,23),Wu=N(ee,25),Su=N(ee,41),vu=N(ee,50),Xu=N(ee,51),Yu=N(ee,69),Iu=N(ee,71),yu=N(ee,85),Bu=Ge(ee,0),We=q("Ch9oYWdpY29kZS9wcm9qZWN0L3YxL3ZhdWx0LnByb3RvEhNoYWdpY29kZS5wcm9qZWN0LnYxIhMKEUxpc3RWYXVsdHNSZXF1ZXN0Ik8KEkxpc3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIk4KEkNyZWF0ZVZhdWx0UmVxdWVzdBI4CgRib2R5GAEgASgLMiouaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3REdG8iSAoTQ3JlYXRlVmF1bHRSZXNwb25zZRIxCgZyZXN1bHQYASABKAsyIS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0SXRlbUR0byJaChJVcGRhdGVWYXVsdFJlcXVlc3QSCgoCaWQYASABKAkSOAoEYm9keRgCIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXF1ZXN0RHRvIkgKE1VwZGF0ZVZhdWx0UmVzcG9uc2USMQoGcmVzdWx0GAEgASgLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8iPAoSRGVsZXRlVmF1bHRSZXF1ZXN0EgoKAmlkGAEgASgJEhoKEmRlbGV0ZV9sb2NhbF9maWxlcxgCIAEoCCJSChNEZWxldGVWYXVsdFJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXNwb25zZUR0byI+ChRHZXRWYXVsdEZpbGVzUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRwYXRoGAIgASgJSACIAQFCBwoFX3BhdGgiVgoVR2V0VmF1bHRGaWxlc1Jlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlTGlzdFJlc3BvbnNlRHRvIjYKGkdldFZhdWx0RmlsZVByZXZpZXdSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBHBhdGgYAiABKAkiXwobR2V0VmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlEkAKBnJlc3VsdBgBIAEoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlRHRvIo4BChxPcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBHBhdGgYAiABKAlIAIgBARInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgDIAEoCUgBiAEBQgcKBV9wYXRoQh0KG19jdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZSJjCh1PcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wcm9qZWN0LnYxLlZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvImwKFUNyZWF0ZVZhdWx0UmVxdWVzdER0bxIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSFQoNcGh5c2ljYWxfcGF0aBgDIAEoCRIUCgdnaXRfdXJsGAQgASgJSACIAQFCCgoIX2dpdF91cmwibAoVVXBkYXRlVmF1bHRSZXF1ZXN0RHRvEgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhQKB2dpdF91cmwYBCABKAlIAIgBAUIKCghfZ2l0X3VybCKdAQoWRGVsZXRlVmF1bHRSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRIPCgdkZWxldGVkGAIgASgIEiQKHGRlbGV0ZV9sb2NhbF9maWxlc19yZXF1ZXN0ZWQYAyABKAgSIwobbG9jYWxfZmlsZXNfZGVsZXRpb25fc3RhdHVzGAQgASgJEhsKE2xvY2FsX2ZpbGVzX2RlbGV0ZWQYBSABKAgizAEKEVZhdWx0RmlsZUVudHJ5RHRvEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSEQoJZmlsZV9uYW1lGAIgASgJEhQKDGlzX2RpcmVjdG9yeRgDIAEoCBIRCglleHRlbnNpb24YBCABKAkSEgoKc2l6ZV9ieXRlcxgFIAEoAxI1ChFsYXN0X21vZGlmaWVkX3V0YxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoRcHJldmlld19zdXBwb3J0ZWQYByABKAgimAIKGFZhdWx0RmlsZUxpc3RSZXNwb25zZUR0bxIQCgh2YXVsdF9pZBgBIAEoCRISCgp2YXVsdF9uYW1lGAIgASgJEhUKDXBoeXNpY2FsX3BhdGgYAyABKAkSDgoGc3RhdHVzGAQgASgJEhcKCmVycm9yX2NvZGUYBSABKAlIAIgBARIUCgdtZXNzYWdlGAYgASgJSAGIAQESFAoMaXNfdHJ1bmNhdGVkGAcgASgIEhgKEHRvdGFsX2ZpbGVfY291bnQYCCABKAUSNQoFaXRlbXMYCSADKAsyJi5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0RmlsZUVudHJ5RHRvQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIpQDChtWYXVsdEZpbGVQcmV2aWV3UmVzcG9uc2VEdG8SEAoIdmF1bHRfaWQYASABKAkSEgoKdmF1bHRfbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhUKDXJlbGF0aXZlX3BhdGgYBCABKAkSEQoJZmlsZV9uYW1lGAUgASgJEhEKCWV4dGVuc2lvbhgGIAEoCRISCgpzaXplX2J5dGVzGAcgASgDEjUKEWxhc3RfbW9kaWZpZWRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzdGF0dXMYCSABKAkSFwoKZXJyb3JfY29kZRgKIAEoCUgAiAEBEhQKB21lc3NhZ2UYCyABKAlIAYgBARIZChFwcmV2aWV3X3N1cHBvcnRlZBgMIAEoCBIZChFjb250ZW50X3RydW5jYXRlZBgNIAEoCBIUCgdjb250ZW50GA4gASgJSAKIAQFCDQoLX2Vycm9yX2NvZGVCCgoIX21lc3NhZ2VCCgoIX2NvbnRlbnQy9QUKDFZhdWx0U2VydmljZRJdCgpMaXN0VmF1bHRzEiYuaGFnaWNvZGUucHJvamVjdC52MS5MaXN0VmF1bHRzUmVxdWVzdBonLmhhZ2ljb2RlLnByb2plY3QudjEuTGlzdFZhdWx0c1Jlc3BvbnNlEmAKC0NyZWF0ZVZhdWx0EicuaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3QaKC5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVZhdWx0UmVzcG9uc2USYAoLVXBkYXRlVmF1bHQSJy5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVZhdWx0UmVxdWVzdBooLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXNwb25zZRJgCgtEZWxldGVWYXVsdBInLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXF1ZXN0GiguaGFnaWNvZGUucHJvamVjdC52MS5EZWxldGVWYXVsdFJlc3BvbnNlEmYKDUdldFZhdWx0RmlsZXMSKS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZXNSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5HZXRWYXVsdEZpbGVzUmVzcG9uc2USeAoTR2V0VmF1bHRGaWxlUHJldmlldxIvLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0VmF1bHRGaWxlUHJldmlld1JlcXVlc3QaMC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZVByZXZpZXdSZXNwb25zZRJ+ChVPcGVuVmF1bHRJbkNvZGVTZXJ2ZXISMS5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlcXVlc3QaMi5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuUHJvamVjdC5WMWIGcHJvdG8z",[Ee,ee]),Cu=N(We,1),Fu=N(We,3),Uu=N(We,5),wu=N(We,7),Ju=N(We,9),ku=N(We,11),xu=N(We,14),Ku=N(We,15),zu=Ge(We,0),Be=q("CitoYWdpY29kZS9jb21tdW5pdHkvdjEvc2NoZWR1bGVkX3BsYW5zLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiQwoZTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBIXCgpwcm9qZWN0X2lkGAEgASgJSACIAQFCDQoLX3Byb2plY3RfaWQiWgoaTGlzdFNjaGVkdWxlZFBsYW5zUmVzcG9uc2USPAoGcmVzdWx0GAEgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSIlChdHZXRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJYChhHZXRTY2hlZHVsZWRQbGFuUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSI2CiBMaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIm0KIUxpc3RTY2hlZHVsZWRQbGFuUHJvYmxlbXNSZXNwb25zZRJICgZyZXN1bHQYASADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkRlZmluaXRpb25Qcm9ibGVtRHRvIvMBCiNMaXN0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VzUmVxdWVzdBIYCgtyYW5nZV9zdGFydBgBIAEoCUgAiAEBEhYKCXJhbmdlX2VuZBgCIAEoCUgBiAEBEh4KEWRpc3BsYXlfdGltZV96b25lGAMgASgJSAKIAQESEwoGY3Vyc29yGAQgASgJSAOIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgEiAEBQg4KDF9yYW5nZV9zdGFydEIMCgpfcmFuZ2VfZW5kQhQKEl9kaXNwbGF5X3RpbWVfem9uZUIJCgdfY3Vyc29yQg0KC19wcm9qZWN0X2lkInIKJExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VQYWdlUmVzcG9uc2UiWwoaQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSPQoEYm9keRgBIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiZwoaVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkSPQoEYm9keRgCIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiKAoaRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiHQobRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlInkKIkVkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlcXVlc3QSCgoCaWQYASABKAkSRwoEYm9keRgCIAEoCzI5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0ImMKI0VkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiYAokRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhoKDW9jY3VycmVuY2VfYXQYAiABKAlIAIgBAUIQCg5fb2NjdXJyZW5jZV9hdCJlCiVEZWxldGVTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiJQoXUnVuU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiVQoYUnVuU2NoZWR1bGVkUGxhblJlc3BvbnNlEjkKBnJlc3VsdBgBIAEoCzIpLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXNzaW9uUmVzcG9uc2VEdG8iJwoZU3RhcnRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJgChpTdGFydFNjaGVkdWxlZFBsYW5SZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvIigKFVNjaGVkdWxlZFBsYW5BZ2VudER0bxIPCgdoZXJvX2lkGAEgASgJImsKGVNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SEAoIc3RyYXRlZ3kYASABKAkSPAoGYWdlbnRzGAIgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudER0byLgAQonU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEioKBnJ1bl9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgCIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYAyABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIuMBCh5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USLwoLb3JpZ2luYWxfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBGtpbmQYAiABKAkSUAoIb3ZlcnJpZGUYAyABKAsyPi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEhwKD2lucHV0X2ZpbGVfcGF0aBgEIAEoCUgAiAEBQhIKEF9pbnB1dF9maWxlX3BhdGgiOAoWU2NoZWR1bGVkUGxhblJlcGVhdER0bxIMCgRydWxlGAEgASgJEhAKCHdlZWtkYXlzGAIgAygJIq8CChhTY2hlZHVsZWRQbGFuU2NoZWR1bGVEdG8SDAoEbW9kZRgBIAEoCRIqCgZydW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKCXRpbWVfem9uZRgDIAEoCUgAiAEBEhcKCnN0YXJ0X2RhdGUYBCABKAlIAYgBARIVCghlbmRfZGF0ZRgFIAEoCUgCiAEBEhgKC3RpbWVfb2ZfZGF5GAYgASgJSAOIAQESPQoGcmVwZWF0GAcgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXBlYXREdG9CDAoKX3RpbWVfem9uZUINCgtfc3RhcnRfZGF0ZUILCglfZW5kX2RhdGVCDgoMX3RpbWVfb2ZfZGF5IrgFChVTY2hlZHVsZWRQbGFuUmVzcG9uc2USCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRINCgVzY29wZRgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEiEKFGRlZmluaXRpb25fZmlsZV9wYXRoGAUgASgJSACIAQESDAoEbmFtZRgGIAEoCRIPCgdlbmFibGVkGAcgASgIEhEKBGljb24YCCABKAlIAYgBARISCgVjb2xvchgJIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkEKCHNjaGVkdWxlGAwgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGA0gASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgOIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRINCgVzdGF0ZRgPIAEoCRIvCgtuZXh0X3J1bl9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoKZXhjZXB0aW9ucxgRIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USHAoPaW5wdXRfZmlsZV9wYXRoGBIgASgJSAOIAQFCFwoVX2RlZmluaXRpb25fZmlsZV9wYXRoQgcKBV9pY29uQggKBl9jb2xvckISChBfaW5wdXRfZmlsZV9wYXRoIkcKIVNjaGVkdWxlZFBsYW5EZWZpbml0aW9uUHJvYmxlbUR0bxIRCglmaWxlX3BhdGgYASABKAkSDwoHbWVzc2FnZRgCIAEoCSLTAQofU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIMCgRtb2RlGAEgASgJEhEKBHJ1bGUYAiABKAlIAIgBARIQCgh3ZWVrZGF5cxgDIAMoCRIXCgpzdGFydF9kYXRlGAQgASgJSAGIAQESFQoIZW5kX2RhdGUYBSABKAlIAogBARIYCgt0aW1lX29mX2RheRgGIAEoCUgDiAEBQgcKBV9ydWxlQg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIOCgxfdGltZV9vZl9kYXki6gMKH1NjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USDwoHcGxhbl9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEjEKDW9jY3VycmVuY2VfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBG5hbWUYBCABKAkSDAoEdHlwZRgFIAEoCRIPCgdlbmFibGVkGAYgASgIEhEKBGljb24YByABKAlIAIgBARISCgVjb2xvchgIIAEoCUgBiAEBEg0KBXN0YXRlGAkgASgJEh8KEnNjaGVkdWxlX3RpbWVfem9uZRgKIAEoCUgCiAEBEkoKCnJlY3VycmVuY2UYCyABKAsyNi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIvCgtuZXh0X3J1bl9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLb3JpZ2luYWxfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2lzX21vZGlmaWVkGA4gASgIQgcKBV9pY29uQggKBl9jb2xvckIVChNfc2NoZWR1bGVfdGltZV96b25lIpMCCiNTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVBhZ2VSZXNwb25zZRIvCgtyYW5nZV9zdGFydBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJcmFuZ2VfZW5kGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFkaXNwbGF5X3RpbWVfem9uZRgDIAEoCRJHCgdlbnRyaWVzGAQgAygLMjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USGAoLbmV4dF9jdXJzb3IYBSABKAlIAIgBAUIOCgxfbmV4dF9jdXJzb3Ii0QIKGFNjaGVkdWxlZFBsYW5TYXZlUmVxdWVzdBIMCgR0eXBlGAEgASgJEhIKBXNjb3BlGAIgASgJSACIAQESDAoEbmFtZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIEhEKBGljb24YBSABKAlIAYgBARISCgVjb2xvchgGIAEoCUgCiAEBEkEKCHNjaGVkdWxlGAcgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGAggASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIICgZfc2NvcGVCBwoFX2ljb25CCAoGX2NvbG9yIo4CCiJTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0EjEKDW9jY3VycmVuY2VfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEioKBnJ1bl9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgDIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYBCABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIs4DChJDaGF0SGVyb1N1bW1hcnlEdG8SDwoHaGVyb19pZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKDWV4ZWN1dG9yX3R5cGUYBSABKAkSGQoMYWdlbnRfY2xpX2lkGAYgASgJSAKIAQESGwoOYWdlbnRfY2xpX25hbWUYByABKAlIA4gBARIbCg5hZ2VudF9jbGlfaWNvbhgIIAEoCUgEiAEBEhUKCG1vZGVsX2lkGAkgASgJSAWIAQESFwoKbW9kZWxfbmFtZRgKIAEoCUgGiAEBEhcKCm1vZGVsX2ljb24YCyABKAlIB4gBARIiChVzZWNvbmRhcnlfbW9kZWxfbGFiZWwYDCABKAlICIgBAUIOCgxfZGVzY3JpcHRpb25CBwoFX2ljb25CDwoNX2FnZW50X2NsaV9pZEIRCg9fYWdlbnRfY2xpX25hbWVCEQoPX2FnZW50X2NsaV9pY29uQgsKCV9tb2RlbF9pZEINCgtfbW9kZWxfbmFtZUINCgtfbW9kZWxfaWNvbkIYChZfc2Vjb25kYXJ5X21vZGVsX2xhYmVsIjgKFE9wZW5TcGVjVGFza1Byb2dyZXNzEhEKCWNvbXBsZXRlZBgBIAEoBRINCgV0b3RhbBgCIAEoBSKAAgoQT3BlblNwZWNGaWxlSW5mbxIRCglmaWxlX25hbWUYASABKAkSFQoNcmVsYXRpdmVfcGF0aBgCIAEoCRIOCgZleGlzdHMYAyABKAgSEQoJZmlsZV90eXBlGAQgASgJEhMKC2lzX3JlcXVpcmVkGAUgASgIEhMKC2lzX2FyY2hpdmVkGAYgASgIEjEKDWFyY2hpdmVkX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkIKDXRhc2tfcHJvZ3Jlc3MYCCABKAsyKy5oYWdpY29kZS5jb21tdW5pdHkudjEuT3BlblNwZWNUYXNrUHJvZ3Jlc3MiXgoRT3BlblNwZWNGaWxlc0luZm8SEQoJYmFzZV9wYXRoGAEgASgJEjYKBWZpbGVzGAIgAygLMicuaGFnaWNvZGUuY29tbXVuaXR5LnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIrcLChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEkEKD29wZW5fc3BlY19maWxlcxgOIAEoCzIoLmhhZ2ljb2RlLmNvbW11bml0eS52MS5PcGVuU3BlY0ZpbGVzSW5mbxIdChVwZW5kaW5nX21lc3NhZ2VfY291bnQYDyABKAUSRQoOcXVldWVfbWVzc2FnZXMYECADKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuUXVldWVNZXNzYWdlU3VtbWFyeUR0bxIeChF3b3JraW5nX2RpcmVjdG9yeRgRIAEoCUgDiAEBEhUKCG1ldGFkYXRhGBIgASgJSASIAQESHwoSY2hhdF9leGVjdXRvcl90eXBlGBMgASgJSAWIAQESPAoJY2hhdF9oZXJvGBQgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJbChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPy5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlRXhlY3V0b3JNYXBFbnRyeRJmChhzdGFnZV9oZXJvX3NlbGVjdGlvbl9tYXAYFiADKAsyRC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlSGVyb1NlbGVjdGlvbk1hcEVudHJ5EiAKE3J1bnRpbWVfbW9kZWxfbGFiZWwYFyABKAlIBogBARI5ChVwcm9jZXNzaW5nX3N0YXJ0ZWRfYXQYGCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkQKDXNlc3Npb25fdXNhZ2UYGSABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJECg1ub3RpZmljYXRpb25zGBsgAygLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNlc3Npb25Ob3RpZmljYXRpb25EdG8aZAoVU3RhZ2VFeGVjdXRvck1hcEVudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TdGFnZUV4ZWN1dG9ySW5mb0R0bzoCOAEaagoaU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSCwoDa2V5GAEgASgJEjsKBXZhbHVlGAIgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMiLgobU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvEg8KB3BsYW5faWQYASABKAky0AsKFVNjaGVkdWxlZFBsYW5zU2VydmljZRJ5ChJMaXN0U2NoZWR1bGVkUGxhbnMSMC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBoxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhbnNSZXNwb25zZRJzChBHZXRTY2hlZHVsZWRQbGFuEi4uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXF1ZXN0Gi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXNwb25zZRKOAQoZTGlzdFNjaGVkdWxlZFBsYW5Qcm9ibGVtcxI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBo4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVzcG9uc2USlwEKHExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXMSOi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1JlcXVlc3QaOy5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1Jlc3BvbnNlEnwKE0NyZWF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE1VwZGF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE0RlbGV0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEpQBChtFZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOS5oYWdpY29kZS5jb21tdW5pdHkudjEuRWRpdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5FZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXNwb25zZRKaAQodRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOy5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0GjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2UScwoQUnVuU2NoZWR1bGVkUGxhbhIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVxdWVzdBovLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVzcG9uc2USeQoSU3RhcnRTY2hlZHVsZWRQbGFuEjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YXJ0U2NoZWR1bGVkUGxhblJlcXVlc3QaMS5oYWdpY29kZS5jb21tdW5pdHkudjEuU3RhcnRTY2hlZHVsZWRQbGFuUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ve,Ee]),Lu=N(Be,1),ju=N(Be,3),Hu=N(Be,9),Tu=N(Be,11),Qu=N(Be,19),Mu=N(Be,21),la=N(Be,33),Ou=Ge(Be,0),Du=q("Ci1oYWdpY29kZS9jb21tdW5pdHkvdjEvY29tbXVuaXR5X3ByZXNldHMucHJvdG8SFWhhZ2ljb2RlLmNvbW11bml0eS52MSIdChtMaXN0Q29tbXVuaXR5UHJlc2V0c1JlcXVlc3QiYwocTGlzdENvbW11bml0eVByZXNldHNSZXNwb25zZRJDCgZyZXN1bHQYASABKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RSZXNwb25zZUR0byJmCh1JbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVxdWVzdBJFCgRib2R5GAEgASgLMjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvImwKHkluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8ifAogU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3QSEQoJcHJlc2V0X2lkGAEgASgJEkUKBGJvZHkYAiABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8ibwohU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRPcGVyYXRpb25SZXNwb25zZUR0byI0Ch9Vbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXF1ZXN0EhEKCXByZXNldF9pZBgBIAEoCSJuCiBVbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8iIAoeUmVmcmVzaENvbW11bml0eVByZXNldHNSZXF1ZXN0IiEKH1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UihwEKFkNvbW11bml0eVByZXNldFJpc2tEdG8SGQoRZGVjbGFyZXNfY29tbWFuZHMYASABKAgSFwoPZGVjbGFyZXNfc2tpbGxzGAIgASgIEhYKDmRlY2xhcmVzX2hvb2tzGAMgASgIEiEKGWRlY2xhcmVzX2NsaV9yZXF1aXJlbWVudHMYBCABKAgi2QQKGExvY2FsSGFnaVRhc2tMaXN0SXRlbUR0bxIRCglwcmVzZXRfaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEwoLc291cmNlX2tpbmQYBCABKAkSGQoRaW5zdGFsbGF0aW9uX2tpbmQYBSABKAkSFwoPbWFuYWdlbWVudF9raW5kGAYgASgJEiAKGGlzX3Nlc3Npb25fY3JlYXRpb25fb25seRgHIAEoCBIPCgdlbmFibGVkGAggASgIEhQKDGlzX3JlbW92YWJsZRgJIAEoCBIRCglwdWJsaXNoZXIYCiABKAkSHQoQc291cmNlX3JlZmVyZW5jZRgLIAEoCUgAiAEBEhsKDmFyY2hpdmVfc2hhMjU2GAwgASgJSAGIAQESNAoQaW5zdGFsbGVkX2F0X3V0YxgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoScmVsYXRpdmVfZGlyZWN0b3J5GA4gASgJEhgKC2Rlc2NyaXB0aW9uGA8gASgJSAKIAQESPAoFcmlza3MYECABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0Umlza0R0bxIWCglzb3VyY2VfaWQYESABKAlIA4gBARIRCgRpY29uGBIgASgJSASIAQFCEwoRX3NvdXJjZV9yZWZlcmVuY2VCEQoPX2FyY2hpdmVfc2hhMjU2Qg4KDF9kZXNjcmlwdGlvbkIMCgpfc291cmNlX2lkQgcKBV9pY29uIloKHVByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIRCgRwYXRoGAMgASgJSACIAQFCBwoFX3BhdGgiqQEKHExvY2FsSGFnaVRhc2tMaXN0UmVzcG9uc2VEdG8SPgoFaXRlbXMYASADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RJdGVtRHRvEkkKC2RpYWdub3N0aWNzGAIgAygLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvIqwDCh5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SEQoJcHJlc2V0X2lkGAEgASgJEhYKCW5hbWVzcGFjZRgCIAEoCUgAiAEBEg8KB3ZlcnNpb24YAyABKAkSEQoJcHVibGlzaGVyGAQgASgJEh0KEHNvdXJjZV9yZWZlcmVuY2UYBSABKAlIAYgBARIWCg5hcmNoaXZlX3NoYTI1NhgGIAEoCRI0ChBpbnN0YWxsZWRfYXRfdXRjGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJyZWxhdGl2ZV9kaXJlY3RvcnkYCCABKAkSDwoHZW5hYmxlZBgJIAEoCBI8CgVyaXNrcxgKIAEoCzItLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRSaXNrRHRvEhYKCXNvdXJjZV9pZBgLIAEoCUgCiAEBEhEKBGljb24YDCABKAlIA4gBAUIMCgpfbmFtZXNwYWNlQhMKEV9zb3VyY2VfcmVmZXJlbmNlQgwKCl9zb3VyY2VfaWRCBwoFX2ljb24ilAIKI0NvbW11bml0eVByZXNldE9wZXJhdGlvblJlc3BvbnNlRHRvEhEKCXN1Y2NlZWRlZBgBIAEoCBIWCglwcmVzZXRfaWQYAiABKAlIAIgBARISCgVlcnJvchgDIAEoCUgBiAEBEksKDGluc3RhbGxhdGlvbhgEIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SSQoLZGlhZ25vc3RpY3MYBSADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG9CDAoKX3ByZXNldF9pZEIICgZfZXJyb3IisgIKIENvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvEhYKDmFyY2hpdmVfYmFzZTY0GAEgASgJEh8KEmV4cGVjdGVkX3ByZXNldF9pZBgCIAEoCUgAiAEBEh0KEGV4cGVjdGVkX3ZlcnNpb24YAyABKAlIAYgBARIcCg9leHBlY3RlZF9zaGEyNTYYBCABKAlIAogBARIWCglwdWJsaXNoZXIYBSABKAlIA4gBARIdChBzb3VyY2VfcmVmZXJlbmNlGAYgASgJSASIAQFCFQoTX2V4cGVjdGVkX3ByZXNldF9pZEITChFfZXhwZWN0ZWRfdmVyc2lvbkISChBfZXhwZWN0ZWRfc2hhMjU2QgwKCl9wdWJsaXNoZXJCEwoRX3NvdXJjZV9yZWZlcmVuY2UiMwogQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8SDwoHZW5hYmxlZBgBIAEoCDLMBQoXQ29tbXVuaXR5UHJlc2V0c1NlcnZpY2USfwoUTGlzdENvbW11bml0eVByZXNldHMSMi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdENvbW11bml0eVByZXNldHNSZXF1ZXN0GjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UShQEKFkluc3RhbGxDb21tdW5pdHlQcmVzZXQSNC5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNS5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlc3BvbnNlEo4BChlTZXRDb21tdW5pdHlQcmVzZXRFbmFibGVkEjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXF1ZXN0GjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXNwb25zZRKLAQoYVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0EjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNy5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVzcG9uc2USiAEKF1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzEjUuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVxdWVzdBo2LmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZWZyZXNoQ29tbXVuaXR5UHJlc2V0c1Jlc3BvbnNlQiuqAihQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuQ29tbXVuaXR5LlYxYgZwcm90bzM",[Ee]),Qn=q("CihoYWdpY29kZS9jb21tdW5pdHkvdjEvcHJlc2V0X3Rhc2tzLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiHQobR2V0UHJlc2V0VGFza0NhdGFsb2dSZXF1ZXN0ImMKHEdldFByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2VEdG8ibwoiQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0byJzCiNDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRJMCgZyZXN1bHQYASABKAsyPC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tSZXNwb25zZUR0byIeChxMaXN0UHJlc2V0VGFza1NjaGVtYXNSZXF1ZXN0ImIKHUxpc3RQcmVzZXRUYXNrU2NoZW1hc1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU3VtbWFyeUR0byI0ChpHZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSJhChtHZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0byLKAQogUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDgoGc3RhdHVzGAQgASgJEhgKEHBsdWdpbl9yb290X3BhdGgYBSABKAkSSQoLZGlhZ25vc3RpY3MYBiADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG8iPQodUHJlc2V0VGFza0FnZW50UmVxdWlyZW1lbnREdG8SDAoEbW9kZRgBIAEoCRIOCgZhZ2VudHMYAiADKAki6gEKFFByZXNldFRhc2tDb21tYW5kRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEg0KBWxhYmVsGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhIKBXNraWxsGAUgASgJSACIAQESEAoDdXJsGAYgASgJSAGIAQESFgoJZG9jc19zbHVnGAcgASgJSAKIAQESHQoQcHJlbHVkZV90ZW1wbGF0ZRgIIAEoCUgDiAEBQggKBl9za2lsbEIGCgRfdXJsQgwKCl9kb2NzX3NsdWdCEwoRX3ByZWx1ZGVfdGVtcGxhdGUiNgoZUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCSLMAQobUHJlc2V0VGFza0NvbW1hbmRDYXRhbG9nRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxI9Cghjb21tYW5kcxgEIAMoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tbWFuZER0byJWChpQcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxIOCgZsZWdhY3kYASABKAkSDwoHYmluZGluZxgCIAEoCRIXCg9kaWFnbm9zdGljX2NvZGUYAyABKAkidAoWUHJlc2V0VGFza0V4ZWN1dGlvbkR0bxIWCg5zY2hlbWFfdmVyc2lvbhgBIAEoCRIQCghzdHJhdGVneRgCIAEoCRIcCg9leHRlbnNpb25fcG9pbnQYAyABKAlIAIgBAUISChBfZXh0ZW5zaW9uX3BvaW50Ip8CChlQcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEg0KBWlucHV0GAEgASgJEh0KEHByb21wdF9wYXJhbWV0ZXIYAiABKAlIAIgBARIZCgxtZXRhZGF0YV9rZXkYAyABKAlIAYgBARIQCghyZXF1aXJlZBgEIAEoCBIVCghwcm9kdWNlchgFIAEoCUgCiAEBEhcKCnZhbHVlX3R5cGUYBiABKAlIA4gBARIWCgl0cmFuc2Zvcm0YByABKAlIBIgBARIPCgdhbGlhc2VzGAggAygJQhMKEV9wcm9tcHRfcGFyYW1ldGVyQg8KDV9tZXRhZGF0YV9rZXlCCwoJX3Byb2R1Y2VyQg0KC192YWx1ZV90eXBlQgwKCl90cmFuc2Zvcm0iOAoYUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEg0KBXZhbHVlGAEgASgJEg0KBWxhYmVsGAIgASgJIt4DCiBQcmVzZXRUYXNrRmllbGRDb21wb25lbnRQcm9wc0R0bxIgChN0YXJnZXRfc2VsZWN0aW9uX2lkGAEgASgJSACIAQESFwoKZW1wdHlfdGV4dBgCIAEoCUgBiAEBEiMKFmFsbG93X291dHB1dF9zZWxlY3Rpb24YAyABKAhIAogBARIlChhyZXF1aXJlX291dHB1dF9zZWxlY3Rpb24YBCABKAhIA4gBARIYCgtlbXB0eV90aXRsZRgFIAEoCUgEiAEBEh4KEWVtcHR5X2Rlc2NyaXB0aW9uGAYgASgJSAWIAQESHQoQcmVxdWlyZWRfbWVzc2FnZRgHIAEoCUgGiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvQhYKFF90YXJnZXRfc2VsZWN0aW9uX2lkQg0KC19lbXB0eV90ZXh0QhkKF19hbGxvd19vdXRwdXRfc2VsZWN0aW9uQhsKGV9yZXF1aXJlX291dHB1dF9zZWxlY3Rpb25CDgoMX2VtcHR5X3RpdGxlQhQKEl9lbXB0eV9kZXNjcmlwdGlvbkITChFfcmVxdWlyZWRfbWVzc2FnZSL3AgoXUHJlc2V0VGFza1BhbmVsRmllbGREdG8SCgoCaWQYASABKAkSEAoIcmVuZGVyZXIYAiABKAkSEgoKaW5wdXRfdHlwZRgDIAEoCRISCgp2YWx1ZV90eXBlGAQgASgJEhIKBWxhYmVsGAUgASgJSACIAQESEQoEaGludBgGIAEoCUgBiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAKIAQESEAoIcmVxdWlyZWQYCCABKAgSEwoGb3V0cHV0GAkgASgJSAOIAQESGwoOc2VsZWN0aW9uX21vZGUYCiABKAlIBIgBARJQCg9jb21wb25lbnRfcHJvcHMYCyABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkQ29tcG9uZW50UHJvcHNEdG9CCAoGX2xhYmVsQgcKBV9oaW50Qg4KDF9wbGFjZWhvbGRlckIJCgdfb3V0cHV0QhEKD19zZWxlY3Rpb25fbW9kZSJ3ChlQcmVzZXRUYXNrUGFuZWxTZWN0aW9uRHRvEgoKAmlkGAEgASgJEg4KBmxheW91dBgCIAEoCRI+CgZmaWVsZHMYAyADKAsyLi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BhbmVsRmllbGREdG8iyQEKIVByZXNldFRhc2tQcm9tcHRWYXJpYW50U3VtbWFyeUR0bxIKCgJpZBgBIAEoCRJSCgVtYXRjaBgCIAMoCzJDLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUHJvbXB0VmFyaWFudFN1bW1hcnlEdG8uTWF0Y2hFbnRyeRpECgpNYXRjaEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi/gEKIlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SDAoEdHlwZRgBIAEoCRIWCg5kZWZhdWx0X2xvY2FsZRgCIAEoCRIZChFzdXBwb3J0ZWRfbG9jYWxlcxgDIAMoCRIRCglzZWxlY3RvcnMYBCADKAkSSgoIdmFyaWFudHMYBSADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1Byb21wdFZhcmlhbnRTdW1tYXJ5RHRvEiAKE2ZhbGxiYWNrX3ZhcmlhbnRfaWQYBiABKAlIAIgBAUIWChRfZmFsbGJhY2tfdmFyaWFudF9pZCJFChhQcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SDAoEdHlwZRgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBW5hbWVzGAMgAygJIqoDCh5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSYQoPdGl0bGVfYnlfbG9jYWxlGAQgAygLMkguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZVJlZ2lzdHJhdGlvbkR0by5UaXRsZUJ5TG9jYWxlRW50cnkSZQoRc3VtbWFyeV9ieV9sb2NhbGUYBSADKAsySi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjZW5lUmVnaXN0cmF0aW9uRHRvLlN1bW1hcnlCeUxvY2FsZUVudHJ5Eh0KFWJhY2tncm91bmRfaW1hZ2Vfc2xvdBgGIAEoBRo0ChJUaXRsZUJ5TG9jYWxlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo2ChRTdW1tYXJ5QnlMb2NhbGVFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIo8BChJQcmVzZXRUYXNrU2NlbmVEdG8SEAoIcHJvdmlkZXIYASABKAkSGQoRZGVmYXVsdF9zY2VuZV9rZXkYAiABKAkSTAoNcmVnaXN0cmF0aW9ucxgDIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8ivAEKHFByZXNldFRhc2tUYXJnZXRTZWxlY3Rpb25EdG8SCgoCaWQYASABKAkSDAoEa2luZBgCIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgDIAEoCRIcChRhbGxvd2VkX2FjY2Vzc190eXBlcxgEIAMoCRIOCgZvdXRwdXQYBSABKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEAoIcmVxdWlyZWQYByABKAhCDwoNX3Njb3BlX3NvdXJjZSLBCAoYUHJlc2V0VGFza0NhdGFsb2dJdGVtRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEhMKC3NvdXJjZV9raW5kGAMgASgJEg8KB3ZlcnNpb24YBCABKAkSEQoEaWNvbhgFIAEoCUgAiAEBEhQKDGRpc3BsYXlfbmFtZRgGIAEoCRINCgV0aXRsZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIVCg1kZWZhdWx0X3RpdGxlGAkgASgJEhQKDHN1Ym1pdF9sYWJlbBgKIAEoCRIYChBzdWJtaXR0aW5nX2xhYmVsGAsgASgJEhsKE2RlZmF1bHRfdGFyZ2V0X3R5cGUYDCABKAkSGwoTYWxsb3dfaGVyb19vdmVycmlkZRgNIAEoCBISCgpzb3J0X29yZGVyGA4gASgFEhkKEXN1cHBvcnRlZF9sb2NhbGVzGA8gAygJEkIKCHNlY3Rpb25zGBAgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQYW5lbFNlY3Rpb25EdG8SSwoPY29tbWFuZF9jYXRhbG9nGBEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDb21tYW5kQ2F0YWxvZ0R0bxJOChF0YXJnZXRfc2VsZWN0aW9ucxgSIAMoCzIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrVGFyZ2V0U2VsZWN0aW9uRHRvEk8KEWFnZW50X3JlcXVpcmVtZW50GBMgASgLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tBZ2VudFJlcXVpcmVtZW50RHRvEkUKDHJlcXVpcmVtZW50cxgUIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SUgoPcHJvbXB0X3N0cmF0ZWd5GBUgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SQAoJZXhlY3V0aW9uGBYgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tFeGVjdXRpb25EdG8SSAoNY29tcGF0aWJpbGl0eRgXIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxJICg5pbnB1dF9iaW5kaW5ncxgYIAMoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEjgKBXNjZW5lGBkgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZUR0b0IHCgVfaWNvbiKvAQocUHJlc2V0VGFza0NhdGFsb2dSZXNwb25zZUR0bxI+CgVpdGVtcxgBIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ2F0YWxvZ0l0ZW1EdG8STwoOZGlzYWJsZWRfaXRlbXMYAiADKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8iSAonUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tEaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSK1AQohUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvEgwKBHR5cGUYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZwYXNzZWQYAyABKAgSDwoHbWVzc2FnZRgEIAEoCRJTCgtkaWFnbm9zdGljcxgFIAMoCzI+LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnRDaGVja0RpYWdub3N0aWNEdG8iowEKJVByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVzcG9uc2VEdG8SFgoOcHJlc2V0X3Rhc2tfaWQYASABKAkSEgoKYWxsX3Bhc3NlZBgCIAEoCBJOCgxyZXF1aXJlbWVudHMYAyADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvIj4KJFByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0bxIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSLKAQoaUHJlc2V0VGFza1NjaGVtYVN1bW1hcnlEdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDwoHdmVyc2lvbhgEIAEoCRINCgV0aXRsZRgFIAEoCRITCgtkZXNjcmlwdGlvbhgGIAEoCRIUCgx0YXJnZXRfY291bnQYByABKAUSFQoNY29tbWFuZF9jb3VudBgIIAEoBRIXCg9wYXJhbWV0ZXJfY291bnQYCSABKAUieAoaUHJlc2V0VGFza1NjaGVtYUNvbW1hbmREdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEAoDdXJsGAUgASgJSACIAQFCBgoEX3VybCLSAQobUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxJDCghjb21tYW5kcxgEIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hQ29tbWFuZER0byI7ChhQcmVzZXRUYXNrU2NoZW1hQWxpYXNEdG8SCwoDa2V5GAEgASgJEhIKCmRlcHJlY2F0ZWQYAiABKAgitAIKHFByZXNldFRhc2tTY2hlbWFQYXJhbWV0ZXJEdG8SCwoDa2V5GAEgASgJEg4KBm9yaWdpbhgCIAEoCRIVCghwcm9kdWNlchgDIAEoCUgAiAEBEhIKCnZhbHVlX3R5cGUYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSDQoFbGFiZWwYBiABKAkSEQoEaGludBgHIAEoCUgBiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEkAKB2FsaWFzZXMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUFsaWFzRHRvQgsKCV9wcm9kdWNlckIHCgVfaGludCKHAQoaUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SDgoGbWV0aG9kGAEgASgJEgwKBHBhdGgYAiABKAkSHAoUcHJlc2V0X3Rhc2tfaWRfZmllbGQYAyABKAkSFAoMbG9jYWxlX2ZpZWxkGAQgASgJEhcKD3JlcXVpcmVkX2ZpZWxkcxgFIAMoCSJ4CiRQcmVzZXRUYXNrU2NoZW1hU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSHQoVYmFja2dyb3VuZF9pbWFnZV9zbG90GAQgASgFIpwBChlQcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEhAKCHByb3ZpZGVyGAEgASgJEhkKEWRlZmF1bHRfc2NlbmVfa2V5GAIgASgJElIKDXJlZ2lzdHJhdGlvbnMYAyADKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVNjZW5lUmVnaXN0cmF0aW9uRHRvIvQBChlQcmVzZXRUYXNrU2NoZW1hVGFyZ2V0RHRvEgoKAmlkGAEgASgJEgwKBGtpbmQYAiABKAkSFgoOc2VsZWN0aW9uX21vZGUYAyABKAkSEAoIcmVxdWlyZWQYBCABKAgSHAoUYWxsb3dlZF9hY2Nlc3NfdHlwZXMYBSADKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEwoLcmVxdWVzdF9rZXkYByABKAkSHgoRc2NvcGVfcmVxdWVzdF9rZXkYCCABKAlIAYgBAUIPCg1fc2NvcGVfc291cmNlQhQKEl9zY29wZV9yZXF1ZXN0X2tleSJ6ChhQcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SGwoTZGVmYXVsdF90YXJnZXRfdHlwZRgBIAEoCRJBCgd0YXJnZXRzGAIgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2hlbWFUYXJnZXREdG8i4wQKG1ByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0bxIKCgJpZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEg4KBmxvY2FsZRgDIAEoCRINCgV0aXRsZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRI+CgVzY29wZRgGIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SRAoIY29tbWFuZHMYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEkcKCnBhcmFtZXRlcnMYCCADKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVBhcmFtZXRlckR0bxJFCgxyZXF1aXJlbWVudHMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50RHRvEkAKBnNjZW5lcxgKIAEoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEkIKB3JlcXVlc3QYCyABKAsyMS5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SLQoMaW5wdXRfc2NoZW1hGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIoCgdleGFtcGxlGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdDKvBAoSUHJlc2V0VGFza3NTZXJ2aWNlEn8KFEdldFByZXNldFRhc2tDYXRhbG9nEjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFByZXNldFRhc2tDYXRhbG9nUmVxdWVzdBozLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrQ2F0YWxvZ1Jlc3BvbnNlEpQBChtDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHMSOS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5DaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRKCAQoVTGlzdFByZXNldFRhc2tTY2hlbWFzEjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RQcmVzZXRUYXNrU2NoZW1hc1JlcXVlc3QaNC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFByZXNldFRhc2tTY2hlbWFzUmVzcG9uc2USfAoTR2V0UHJlc2V0VGFza1NjaGVtYRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ve,Du]),_u=N(Qn,5),Pu=N(Qn,7),$u=Ge(Qn,0),te=q("CiloYWdpY29kZS9jb21tdW5pdHkvdjEvc2tpbGxfZ2FsbGVyeS5wcm90bxIVaGFnaWNvZGUuY29tbXVuaXR5LnYxIhcKFUdldExvY2FsU2tpbGxzUmVxdWVzdCJfChZHZXRMb2NhbFNraWxsc1Jlc3BvbnNlEkUKBnJlc3VsdBgBIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8iLAocR2V0QnVpbHRJblNraWxsRGV0YWlsUmVxdWVzdBIMCgRzbHVnGAEgASgJIl0KHUdldEJ1aWx0SW5Ta2lsbERldGFpbFJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5CdWlsdEluU2tpbGxEZXRhaWxEdG8iYAoaVW5pbnN0YWxsTG9jYWxTa2lsbFJlcXVlc3QSQgoEYm9keRgBIAEoCzI0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Vbmluc3RhbGxMb2NhbFNraWxsUmVxdWVzdER0byJiChtVbmluc3RhbGxMb2NhbFNraWxsUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXN1bHREdG8icAoiU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVxdWVzdBJKCgRib2R5GAEgASgLMjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlcXVlc3REdG8icgojU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVzcG9uc2USSwoGcmVzdWx0GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0byI2ChZHZXRTa2lsbEdhbGxlcnlSZXF1ZXN0EhIKBXF1ZXJ5GAEgASgJSACIAQFCCAoGX3F1ZXJ5IlkKF0dldFNraWxsR2FsbGVyeVJlc3BvbnNlEj4KBnJlc3VsdBgBIAEoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Ta2lsbEdhbGxlcnlSZXNwb25zZUR0byI6ChxHZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCSJdCh1HZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXNwb25zZRI8CgZyZXN1bHQYASABKAsyLC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5RGV0YWlsRHRvIkIKJEdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkibQolR2V0U2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHRSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHREdG8iIQofR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVxdWVzdCJuCiBHZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8ibgohVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0EkkKBGJvZHkYASABKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvInAKIlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVzcG9uc2USSgoGcmVzdWx0GAEgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyTGlzdFJlc3BvbnNlRHRvIm4KIURlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdER0byJwCiJEZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckxpc3RSZXNwb25zZUR0byIjCiFSZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QicAoiUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8iUgoTSW5zdGFsbFNraWxsUmVxdWVzdBI7CgRib2R5GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlcXVlc3REdG8iVAoUSW5zdGFsbFNraWxsUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlc3VsdER0byL3AQoYTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvEg8KB2VuYWJsZWQYASABKAgSFAoHdmVyc2lvbhgCIAEoCUgAiAEBEhMKBnNvdXJjZRgDIAEoCUgBiAEBEhcKCnJlcG9zaXRvcnkYBCABKAlIAogBARIQCgNyZWYYBSABKAlIA4gBARIRCgRwYXRoGAYgASgJSASIAQESGQoMY29udGVudF9oYXNoGAcgASgJSAWIAQFCCgoIX3ZlcnNpb25CCQoHX3NvdXJjZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQg8KDV9jb250ZW50X2hhc2givAIKI0xvY2FsU2tpbGxNYW5hZ2VkSW5zdGFsbE1ldGFkYXRhRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgFEhAKCHNraWxsX2lkGAIgASgJEg4KBnNvdXJjZRgDIAEoCRISCgpza2lsbF9zbHVnGAQgASgJEhQKB3ZlcnNpb24YBSABKAlIAIgBARIhChRub3JtYWxpemVkX3NraWxsX2tleRgGIAEoCUgBiAEBEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSAKIAQESMwoPcmVjb3JkZWRfYXRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfdmVyc2lvbkIXChVfbm9ybWFsaXplZF9za2lsbF9rZXlCFAoSX2luc3RhbGxfcmVmZXJlbmNlIosCChFMb2NhbFNraWxsSXRlbUR0bxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBXNjb3BlGAMgASgJEgwKBHBhdGgYBCABKAkSDgoGYWdlbnRzGAUgAygJElwKGG1hbmFnZWRfaW5zdGFsbF9tZXRhZGF0YRgGIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsTWFuYWdlZEluc3RhbGxNZXRhZGF0YUR0bxIOCgZvcmlnaW4YByABKAkSQQoIYnVpbHRfaW4YCCABKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvIo8BCh5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNwoFaXRlbXMYAiADKAsyKC5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEl0ZW1EdG8isQEKG0J1aWx0SW5Ta2lsbERldGFpbFNvdXJjZUR0bxIRCgR0eXBlGAEgASgJSACIAQESFwoKcmVwb3NpdG9yeRgCIAEoCUgBiAEBEhAKA3JlZhgDIAEoCUgCiAEBEhEKBHBhdGgYBCABKAlIA4gBARIQCgN1cmwYBSABKAlIBIgBAUIHCgVfdHlwZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQgYKBF91cmwiPAoYQnVpbHRJblNraWxsRmlsZUVudHJ5RHRvEgwKBHBhdGgYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoAyI5ChtCdWlsdEluU2tpbGxNZXRhZGF0YVBhaXJEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJIo4EChVCdWlsdEluU2tpbGxEZXRhaWxEdG8SDAoEc2x1ZxgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhQKB3ZlcnNpb24YBCABKAlIAIgBARIPCgdlbmFibGVkGAUgASgIEkQKCG1ldGFkYXRhGAYgAygLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbE1ldGFkYXRhUGFpckR0bxJCCgZzb3VyY2UYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQnVpbHRJblNraWxsRGV0YWlsU291cmNlRHRvEhkKDGNvbnRlbnRfaGFzaBgIIAEoCUgBiAEBEj4KBWZpbGVzGAkgAygLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbEZpbGVFbnRyeUR0bxISCgpmaWxlX2NvdW50GAogASgFEhgKEHRvdGFsX3NpemVfYnl0ZXMYCyABKAMSFwoPZmlsZXNfdHJ1bmNhdGVkGAwgASgIEhUKDWxpY2Vuc2VfZmlsZXMYDSADKAkSDAoEYm9keRgOIAEoCRIWCg5ib2R5X3RydW5jYXRlZBgPIAEoCBIXCg9ib2R5X3NpemVfYnl0ZXMYECABKANCCgoIX3ZlcnNpb25CDwoNX2NvbnRlbnRfaGFzaCLXAQocVW5pbnN0YWxsTG9jYWxTa2lsbFJlc3VsdER0bxISCgpza2lsbF9uYW1lGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIZCgx1c2VyX21lc3NhZ2UYAyABKAlIAIgBARIfChJkaWFnbm9zdGljX21lc3NhZ2UYBCABKAlIAYgBARIvCgtvY2N1cnJlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX3VzZXJfbWVzc2FnZUIVChNfZGlhZ25vc3RpY19tZXNzYWdlIjMKHVVuaW5zdGFsbExvY2FsU2tpbGxSZXF1ZXN0RHRvEhIKCnNraWxsX25hbWUYASABKAkivAEKJFNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0bxIMCgRzbHVnGAEgASgJEg8KB2VuYWJsZWQYAiABKAgSEQoJc3VjY2VlZGVkGAMgASgIEhkKDHVzZXJfbWVzc2FnZRgEIAEoCUgAiAEBEh8KEmRpYWdub3N0aWNfbWVzc2FnZRgFIAEoCUgBiAEBQg8KDV91c2VyX21lc3NhZ2VCFQoTX2RpYWdub3N0aWNfbWVzc2FnZSJGCiVTZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHlSZXF1ZXN0RHRvEgwKBHNsdWcYASABKAkSDwoHZW5hYmxlZBgCIAEoCCKlAgoiU2tpbGxHYWxsZXJ5UmVwb3NpdG9yeURpc2NvdmVyeUR0bxIMCgRtb2RlGAEgASgJEhwKD3JlcXVlc3RlZF9xdWVyeRgCIAEoCUgAiAEBEh4KEW5vcm1hbGl6ZWRfc291cmNlGAMgASgJSAGIAQESGwoOcmVwb3NpdG9yeV91cmwYBCABKAlIAogBARIPCgdvdXRjb21lGAUgASgJEhcKCmVycm9yX2NvZGUYBiABKAlIA4gBARIUCgdtZXNzYWdlGAcgASgJSASIAQFCEgoQX3JlcXVlc3RlZF9xdWVyeUIUChJfbm9ybWFsaXplZF9zb3VyY2VCEQoPX3JlcG9zaXRvcnlfdXJsQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIuYBCiNUcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSHgoRbWF0Y2hlZF9ydWxlX3R5cGUYBCABKAlIAIgBARIfChJtYXRjaGVkX3J1bGVfdmFsdWUYBSABKAlIAYgBARIRCglpc19wcmVzZXQYBiABKAhCFAoSX21hdGNoZWRfcnVsZV90eXBlQhUKE19tYXRjaGVkX3J1bGVfdmFsdWUiwwEKFFNraWxsR2FsbGVyeVNraWxsRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc291cmNlGAMgASgJEhAKCGluc3RhbGxzGAQgASgFEhkKEWlzX3RydXN0ZWRfc291cmNlGAUgASgIElQKEHRydXN0ZWRfcHJvdmlkZXIYBiABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJUcnVzdFN1bW1hcnlEdG8i5AEKF1NraWxsR2FsbGVyeVJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKBWl0ZW1zGAIgAygLMisuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVNraWxsRHRvElcKFHJlcG9zaXRvcnlfZGlzY292ZXJ5GAMgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVJlcG9zaXRvcnlEaXNjb3ZlcnlEdG8i7AUKFVNraWxsR2FsbGVyeURldGFpbER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhwKD3JlcG9zaXRvcnlfbmFtZRgFIAEoCUgBiAEBEiEKFHJlcG9zaXRvcnlfZnVsbF9uYW1lGAYgASgJSAKIAQESGwoOcmVwb3NpdG9yeV91cmwYByABKAlIA4gBARImChlyZXBvc2l0b3J5X2RlZmF1bHRfYnJhbmNoGAggASgJSASIAQESHwoScmVwb3NpdG9yeV9wcml2YXRlGAkgASgISAWIAQESFgoOaXNfaW5zdGFsbGFibGUYCiABKAgSGQoRaXNfdHJ1c3RlZF9zb3VyY2UYCyABKAgSVAoQdHJ1c3RlZF9wcm92aWRlchgMIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxIeChFpbnN0YWxsX3JlZmVyZW5jZRgNIAEoCUgGiAEBEiQKF2luc3RhbGxfY29tbWFuZF9wcmV2aWV3GA4gASgJSAeIAQESHAoPaW5zdGFsbF92ZXJzaW9uGA8gASgJSAiIAQESGQoMaW5zdGFsbF9oaW50GBAgASgJSAmIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9yZXBvc2l0b3J5X25hbWVCFwoVX3JlcG9zaXRvcnlfZnVsbF9uYW1lQhEKD19yZXBvc2l0b3J5X3VybEIcChpfcmVwb3NpdG9yeV9kZWZhdWx0X2JyYW5jaEIVChNfcmVwb3NpdG9yeV9wcml2YXRlQhQKEl9pbnN0YWxsX3JlZmVyZW5jZUIaChhfaW5zdGFsbF9jb21tYW5kX3ByZXZpZXdCEgoQX2luc3RhbGxfdmVyc2lvbkIPCg1faW5zdGFsbF9oaW50Iq4DCh1Ta2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIWCg5pc19pbnN0YWxsYWJsZRgEIAEoCBIZChFpc190cnVzdGVkX3NvdXJjZRgFIAEoCBJUChB0cnVzdGVkX3Byb3ZpZGVyGAYgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyVHJ1c3RTdW1tYXJ5RHRvEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSACIAQESJAoXaW5zdGFsbF9jb21tYW5kX3ByZXZpZXcYCCABKAlIAYgBARIcCg9pbnN0YWxsX3ZlcnNpb24YCSABKAlIAogBARIZCgxpbnN0YWxsX2hpbnQYCiABKAlIA4gBAUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCGgoYX2luc3RhbGxfY29tbWFuZF9wcmV2aWV3QhIKEF9pbnN0YWxsX3ZlcnNpb25CDwoNX2luc3RhbGxfaGludCJFCiBUcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0bxISCgptYXRjaF90eXBlGAEgASgJEg0KBXZhbHVlGAIgASgJIo8CChdUcnVzdGVkU2tpbGxQcm92aWRlckR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSEQoJaXNfcHJlc2V0GAQgASgIEhIKCmlzX2VuYWJsZWQYBSABKAgSEgoKc29ydF9vcmRlchgGIAEoBRISCgpydWxlX2NvdW50GAcgASgFEhcKD3NvdXJjZV9leGFtcGxlcxgIIAMoCRJMCgttYXRjaF9ydWxlcxgJIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0byKrAQojVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHdmVyc2lvbhgCIAEoBRI9CgVpdGVtcxgDIAMoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckR0byLxAQokVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtiYWRnZV9sYWJlbBgDIAEoCUgAiAEBEhIKCmlzX2VuYWJsZWQYBCABKAgSEgoKc29ydF9vcmRlchgFIAEoBRJMCgttYXRjaF9ydWxlcxgGIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0b0IOCgxfYmFkZ2VfbGFiZWwiOwokRGVsZXRlVHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJIrgDChVJbnN0YWxsU2tpbGxSZXN1bHREdG8SEAoIc2tpbGxfaWQYASABKAkSDgoGc291cmNlGAIgASgJEhIKCnNraWxsX3NsdWcYAyABKAkSIQoUbm9ybWFsaXplZF9za2lsbF9rZXkYBCABKAlIAIgBARIeChFpbnN0YWxsX3JlZmVyZW5jZRgFIAEoCUgBiAEBEhwKD2NvbW1hbmRfcHJldmlldxgGIAEoCUgCiAEBEhQKB3ZlcnNpb24YByABKAlIA4gBARIOCgZzdGF0dXMYCCABKAkSGQoMdXNlcl9tZXNzYWdlGAkgASgJSASIAQESHwoSZGlhZ25vc3RpY19tZXNzYWdlGAogASgJSAWIAQESLwoLb2NjdXJyZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhcKFV9ub3JtYWxpemVkX3NraWxsX2tleUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCEgoQX2NvbW1hbmRfcHJldmlld0IKCghfdmVyc2lvbkIPCg1fdXNlcl9tZXNzYWdlQhUKE19kaWFnbm9zdGljX21lc3NhZ2UiagoWSW5zdGFsbFNraWxsUmVxdWVzdER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIUCgd2ZXJzaW9uGAQgASgJSACIAQFCCgoIX3ZlcnNpb24iGwoZTGlzdFVzZXJTa2lsbEJhc2VzUmVxdWVzdCJfChpMaXN0VXNlclNraWxsQmFzZXNSZXNwb25zZRJBCgZyZXN1bHQYASABKAsyMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVXNlclNraWxsQmFzZUxpc3RSZXN1bHREdG8iWgoXQWRkVXNlclNraWxsQmFzZVJlcXVlc3QSPwoEYm9keRgBIAEoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVxdWVzdER0byJZChhBZGRVc2VyU2tpbGxCYXNlUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VSZXN1bHREdG8iLQoaUmVtb3ZlVXNlclNraWxsQmFzZVJlcXVlc3QSDwoHYmFzZV9pZBgBIAEoCSJiChtSZW1vdmVVc2VyU2tpbGxCYXNlUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlbW92ZVVzZXJTa2lsbEJhc2VSZXN1bHREdG8iLQoaUmVzY2FuVXNlclNraWxsQmFzZVJlcXVlc3QSDwoHYmFzZV9pZBgBIAEoCSJcChtSZXNjYW5Vc2VyU2tpbGxCYXNlUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VSZXN1bHREdG8iYAoaU2V0VXNlclNraWxsRW5hYmxlZFJlcXVlc3QSQgoEYm9keRgBIAEoCzI0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVxdWVzdER0byJiChtTZXRVc2VyU2tpbGxFbmFibGVkUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldFVzZXJTa2lsbEVuYWJsZWRSZXN1bHREdG8i+AEKEFVzZXJTa2lsbEJhc2VEdG8SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSDAoEcGF0aBgDIAEoCRIOCgZzdGF0dXMYBCABKAkSGgoNc3RhdHVzX3JlYXNvbhgFIAEoCUgAiAEBEhsKDnN0YXR1c19tZXNzYWdlGAYgASgJSAGIAQESMwoGc2tpbGxzGAcgAygLMiMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbER0bxIYChBza2lsbHNfdHJ1bmNhdGVkGAggASgIQhAKDl9zdGF0dXNfcmVhc29uQhEKD19zdGF0dXNfbWVzc2FnZSL9AQoMVXNlclNraWxsRHRvEgwKBHNsdWcYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg8KB2VuYWJsZWQYBCABKAgSDgoGc3RhdHVzGAUgASgJEhsKDmNvbmZsaWN0c193aXRoGAYgASgJSAGIAQESPAoIcHJvYmxlbXMYByADKAsyKi5oYWdpY29kZS5jb21tdW5pdHkudjEuVXNlclNraWxsUHJvYmxlbUR0bxIKCgJpZBgIIAEoCRIMCgRwYXRoGAkgASgJQg4KDF9kZXNjcmlwdGlvbkIRCg9fY29uZmxpY3RzX3dpdGgiNAoTVXNlclNraWxsUHJvYmxlbUR0bxIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkiSAoaQWRkVXNlclNraWxsQmFzZVJlcXVlc3REdG8SDAoEcGF0aBgBIAEoCRISCgVsYWJlbBgCIAEoCUgAiAEBQggKBl9sYWJlbCKTAQoaVXNlclNraWxsQmFzZUxpc3RSZXN1bHREdG8SEQoJc3VjY2VlZGVkGAEgASgIEhkKDHVzZXJfbWVzc2FnZRgCIAEoCUgAiAEBEjYKBWJhc2VzGAMgAygLMicuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VEdG9CDwoNX3VzZXJfbWVzc2FnZSKOAQoWVXNlclNraWxsQmFzZVJlc3VsdER0bxIRCglzdWNjZWVkZWQYASABKAgSGQoMdXNlcl9tZXNzYWdlGAIgASgJSACIAQESNQoEYmFzZRgDIAEoCzInLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Vc2VyU2tpbGxCYXNlRHRvQg8KDV91c2VyX21lc3NhZ2UibgocUmVtb3ZlVXNlclNraWxsQmFzZVJlc3VsdER0bxIRCglzdWNjZWVkZWQYASABKAgSGQoMdXNlcl9tZXNzYWdlGAIgASgJSACIAQESDwoHYmFzZV9pZBgDIAEoCUIPCg1fdXNlcl9tZXNzYWdlIlUKHVNldFVzZXJTa2lsbEVuYWJsZWRSZXF1ZXN0RHRvEg8KB2Jhc2VfaWQYASABKAkSEgoKc2tpbGxfc2x1ZxgCIAEoCRIPCgdlbmFibGVkGAMgASgIIpMBChxTZXRVc2VyU2tpbGxFbmFibGVkUmVzdWx0RHRvEhEKCXN1Y2NlZWRlZBgBIAEoCBIZCgx1c2VyX21lc3NhZ2UYAiABKAlIAIgBARIPCgdiYXNlX2lkGAMgASgJEhIKCnNraWxsX3NsdWcYBCABKAkSDwoHZW5hYmxlZBgFIAEoCEIPCg1fdXNlcl9tZXNzYWdlMs8RChNTa2lsbEdhbGxlcnlTZXJ2aWNlEm0KDkdldExvY2FsU2tpbGxzEiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldExvY2FsU2tpbGxzUmVxdWVzdBotLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRMb2NhbFNraWxsc1Jlc3BvbnNlEoIBChVHZXRCdWlsdEluU2tpbGxEZXRhaWwSMy5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0QnVpbHRJblNraWxsRGV0YWlsUmVxdWVzdBo0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRCdWlsdEluU2tpbGxEZXRhaWxSZXNwb25zZRJ8ChNVbmluc3RhbGxMb2NhbFNraWxsEjEuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXF1ZXN0GjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXNwb25zZRKUAQobU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5EjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlcXVlc3QaOi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVzcG9uc2UScAoPR2V0U2tpbGxHYWxsZXJ5Ei0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeVJlcXVlc3QaLi5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5UmVzcG9uc2USggEKFUdldFNraWxsR2FsbGVyeURldGFpbBIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXF1ZXN0GjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeURldGFpbFJlc3BvbnNlEpoBCh1HZXRTa2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dBI7LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dFJlcXVlc3QaPC5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHRSZXNwb25zZRKLAQoYR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzEjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QaNy5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVzcG9uc2USkQEKGlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyEjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBo5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5VcHNlcnRUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEpEBChpEZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlchI4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5EZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlcXVlc3QaOS5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlVHJ1c3RlZFNraWxsUHJvdmlkZXJSZXNwb25zZRKRAQoaUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnMSOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXF1ZXN0GjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlc2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVzcG9uc2USZwoMSW5zdGFsbFNraWxsEiouaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlcXVlc3QaKy5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbFNraWxsUmVzcG9uc2USeQoSTGlzdFVzZXJTa2lsbEJhc2VzEjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RVc2VyU2tpbGxCYXNlc1JlcXVlc3QaMS5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFVzZXJTa2lsbEJhc2VzUmVzcG9uc2UScwoQQWRkVXNlclNraWxsQmFzZRIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVxdWVzdBovLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTUmVtb3ZlVXNlclNraWxsQmFzZRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZW1vdmVVc2VyU2tpbGxCYXNlUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZW1vdmVVc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTUmVzY2FuVXNlclNraWxsQmFzZRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZXNjYW5Vc2VyU2tpbGxCYXNlUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZXNjYW5Vc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTU2V0VXNlclNraWxsRW5hYmxlZBIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ee]),qu=N(te,1),ed=N(te,5),td=N(te,7),nd=N(te,9),od=N(te,11),ad=N(te,15),rd=N(te,17),id=N(te,19),ld=N(te,21),sd=N(te,23),cd=N(te,33),ud=N(te,35),dd=N(te,45),md=N(te,46),bd=N(te,48),hd=Ge(te,0),Lr=q("CiVoYWdpY29kZS9wbGF0Zm9ybS92MS9zdGF0aXN0aWNzLnByb3RvEhRoYWdpY29kZS5wbGF0Zm9ybS52MSJ1ChhHZXRBZ2dyZWdhdGVkRGF0YVJlcXVlc3QSFQoNZm9yY2VfcmVmcmVzaBgBIAEoCBIlChhnaXRfYXV0b19yZWZyZXNoX2VuYWJsZWQYAiABKAhIAIgBAUIbChlfZ2l0X2F1dG9fcmVmcmVzaF9lbmFibGVkIl0KGUdldEFnZ3JlZ2F0ZWREYXRhUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucGxhdGZvcm0udjEuRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8iHQobR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXF1ZXN0ImIKHEdldFRva2VuTW9uaXRvclVzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yVXNhZ2VTbmFwc2hvdER0byIlCiNHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVxdWVzdCJgCiRHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0RHRvIkQKIEdldFRva2VuVGhyb3VnaHB1dEhpc3RvcnlSZXF1ZXN0EhQKB21pbnV0ZXMYASABKAVIAIgBAUIKCghfbWludXRlcyJiCiFHZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5UmVzcG9uc2USPQoGcmVzdWx0GAEgAygLMi0uaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0U25hcHNob3QiOAoaR2V0SGVyb0JhdHRsZVJlcG9ydFJlcXVlc3QSEQoEZGF0ZRgBIAEoCUgAiAEBQgcKBV9kYXRlIlgKG0dldEhlcm9CYXR0bGVSZXBvcnRSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0RHRvIkAKIEdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXF1ZXN0EhIKBXJhbmdlGAEgASgJSACIAQFCCAoGX3JhbmdlImcKIUdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzUmVwb3J0RHRvIuwCChxHZXRIaXN0b3JpY2FsVGltZWxpbmVSZXF1ZXN0EhgKC2VudGl0eV90eXBlGAEgASgJSACIAQESFgoJZW50aXR5X2lkGAIgASgJSAGIAQESFwoKcHJvamVjdF9pZBgDIAEoCUgCiAEBEhcKCnNlc3Npb25faWQYBCABKAlIA4gBARIzCg9yYW5nZV9zdGFydF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXJhbmdlX2VuZF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBmN1cnNvchgHIAEoCUgEiAEBEhYKCXBhZ2Vfc2l6ZRgIIAEoBUgFiAEBQg4KDF9lbnRpdHlfdHlwZUIMCgpfZW50aXR5X2lkQg0KC19wcm9qZWN0X2lkQg0KC19zZXNzaW9uX2lkQgkKB19jdXJzb3JCDAoKX3BhZ2Vfc2l6ZSJpCh1HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXNwb25zZRJICgZyZXN1bHQYASABKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVRdWVyeVJlc3BvbnNlRHRvIiUKI0dldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXF1ZXN0InIKJEdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVzcG9uc2VEdG8iqgEKFkFnZ3JlZ2F0aW9uTWV0YWRhdGFEdG8SLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg50b3RhbF9wcm9qZWN0cxgCIAEoBRIaChJ0b3RhbF9yZXBvc2l0b3JpZXMYAyABKAUSFwoPZmFpbGVkX3Byb2plY3RzGAQgASgFEhQKDGhhc19mYWlsdXJlcxgFIAEoCCKyBQoYUmVwb3NpdG9yeUFnZ3JlZ2F0aW9uRHRvEhEKBGNvZGUYASABKAlIAIgBARIMCgRuYW1lGAIgASgJEgwKBHBhdGgYAyABKAkSFQoNcmVsYXRpdmVfcGF0aBgEIAEoCRIUCgxkaXNwbGF5X25hbWUYBSABKAkSEQoEdHlwZRgGIAEoCUgBiAEBEgwKBHRhZ3MYByADKAkSEQoEaWNvbhgIIAEoCUgCiAEBEhAKA3VybBgJIAEoCUgDiAEBEhgKEGNvbGxhcHNlX3RvX21vcmUYCiABKAgSGQoRaXNfdmFsaWRfZ2l0X3JlcG8YCyABKAgSHAoUZ2l0X3N0YXR1c19hdmFpbGFibGUYDCABKAgSEwoGYnJhbmNoGA0gASgJSASIAQESHwoXaGFzX3VuY29tbWl0dGVkX2NoYW5nZXMYDiABKAgSHQoVdW5wdXNoZWRfY29tbWl0X2NvdW50GA8gASgFEhsKE2hhc190cmFja2luZ19icmFuY2gYECABKAgSNQoPdHJhY2tpbmdfYnJhbmNoGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEhMKC2FoZWFkX2NvdW50GBIgASgFEhQKDGJlaGluZF9jb3VudBgTIAEoBRIXCgpzeW5jX3N0YXRlGBQgASgJSAWIAQESEwoLaXNfb3B0aW9uYWwYFSABKAgSFAoMaXNfc2FuaXRpemVkGBYgASgIEhsKE3Nhbml0aXphdGlvbl9yZWFzb24YFyABKAkSGAoQaGFzX25hbWVfd2FybmluZxgYIAEoCBIVCg1uYW1lX3dhcm5pbmdzGBkgAygJQgcKBV9jb2RlQgcKBV90eXBlQgcKBV9pY29uQgYKBF91cmxCCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSK6BAoVUHJvamVjdEFnZ3JlZ2F0aW9uRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhUKDWlzX21vbm9fc3BlY3MYBSABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAYgASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgHIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgIIAEoCEgDiAEBEkQKDHJlcG9zaXRvcmllcxgJIAMoCzIuLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlJlcG9zaXRvcnlBZ2dyZWdhdGlvbkR0bxJBCh1naXRfc25hcHNob3RfcmVmcmVzaGVkX2F0X3V0YxgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIQoZZ2l0X3NuYXBzaG90X3NlcnZlZF9zdGFsZRgLIAEoCBIrCgVlcnJvchgMIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIRCgloYXNfZXJyb3IYDSABKAhCDgoMX2Rlc2NyaXB0aW9uQhUKE19tb25vX3NwZWNzX3ZlcnNpb25CHAoaX21vbm9fc3BlY3NfcmVwb19kaXJlY3RvcnlCIQofX21vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZSKbAQoaRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8SPQoIcHJvamVjdHMYASADKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Qcm9qZWN0QWdncmVnYXRpb25EdG8SPgoIbWV0YWRhdGEYAiABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5BZ2dyZWdhdGlvbk1ldGFkYXRhRHRvIqkDChxUb2tlbk1vbml0b3JVc2FnZVNuYXBzaG90RHRvEg4KBnN0YXR1cxgBIAEoCRIOCgZzb3VyY2UYAiABKAkSGwoOZmFpbHVyZV9yZWFzb24YAyABKAlIAIgBARIVCghkYXRlX2tleRgEIAEoCUgBiAEBEhkKDHRvdGFsX3Rva2VucxgFIAEoA0gCiAEBEhUKCGNvc3RfdXNkGAYgASgBSAOIAQESLwoLcmVhZF9hdF91dGMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEHNuYXBzaG90X3ZlcnNpb24YCCABKAMSOwoGbGltaXRzGAkgASgLMisuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yTGltaXRzRHRvEj0KB3BlcmlvZHMYCiABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2RzRHRvQhEKD19mYWlsdXJlX3JlYXNvbkILCglfZGF0ZV9rZXlCDwoNX3RvdGFsX3Rva2Vuc0ILCglfY29zdF91c2QiugEKFVRva2VuTW9uaXRvckxpbWl0c0R0bxIyCg51cGRhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKcmVmcmVzaF9tcxgCIAEoBUgAiAEBEkUKCXByb3ZpZGVycxgDIAMoCzIyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvckxpbWl0UHJvdmlkZXJEdG9CDQoLX3JlZnJlc2hfbXMi0wIKHFRva2VuTW9uaXRvckxpbWl0UHJvdmlkZXJEdG8SEAoIcHJvdmlkZXIYASABKAkSDgoGc3RhdHVzGAIgASgJEhcKCnBsYW5fbGFiZWwYAyABKAlIAIgBARIyCg51cGRhdGVkX2F0X3V0YxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoHd2luZG93cxgFIAMoCzIwLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvckxpbWl0V2luZG93RHRvEhgKC2JhbGFuY2VfdXNkGAYgASgBSAGIAQESSAoNcmVzZXRfY3JlZGl0cxgHIAEoCzIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvclJlc2V0Q3JlZGl0c0R0b0INCgtfcGxhbl9sYWJlbEIOCgxfYmFsYW5jZV91c2Qi9QMKGlRva2VuTW9uaXRvckxpbWl0V2luZG93RHRvEgwKBGtpbmQYASABKAkSEgoFbGFiZWwYAiABKAlIAIgBARIZCgx1c2VkX3BlcmNlbnQYAyABKAFIAYgBARIeChFyZW1haW5pbmdfcGVyY2VudBgEIAEoAUgCiAEBEhEKBHVzZWQYBSABKAFIA4gBARISCgVsaW1pdBgGIAEoAUgEiAEBEhYKCXJlbWFpbmluZxgHIAEoAUgFiAEBEhUKCGN1cnJlbmN5GAggASgJSAaIAQESMQoNcmVzZXRzX2F0X3V0YxgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOd2luZG93X21pbnV0ZXMYCiABKAVIB4gBARIeChFyZXNldF9kZXNjcmlwdGlvbhgLIAEoCUgIiAEBEhoKDW1ldGVyX3Zpc2libGUYDCABKAhICYgBAUIICgZfbGFiZWxCDwoNX3VzZWRfcGVyY2VudEIUChJfcmVtYWluaW5nX3BlcmNlbnRCBwoFX3VzZWRCCAoGX2xpbWl0QgwKCl9yZW1haW5pbmdCCwoJX2N1cnJlbmN5QhEKD193aW5kb3dfbWludXRlc0IUChJfcmVzZXRfZGVzY3JpcHRpb25CEAoOX21ldGVyX3Zpc2libGUivQEKG1Rva2VuTW9uaXRvclJlc2V0Q3JlZGl0c0R0bxIcCg9hdmFpbGFibGVfY291bnQYASABKAVIAIgBARI3ChNuZXh0X2V4cGlyZXNfYXRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9leHBpcmF0aW9uc191dGMYAyADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhIKEF9hdmFpbGFibGVfY291bnQizwEKFlRva2VuTW9uaXRvclBlcmlvZHNEdG8SOgoFdG9kYXkYASABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8SOgoFbW9udGgYAiABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8SPQoIYWxsX3RpbWUYAyABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8iigQKFVRva2VuTW9uaXRvclBlcmlvZER0bxIUCgx0b3RhbF90b2tlbnMYASABKAMSEAoIY29zdF91c2QYAiABKAESHgoRY2FjaGVfcmVhZF90b2tlbnMYAyABKANIAIgBARIfChJjYWNoZV93cml0ZV90b2tlbnMYBCABKANIAYgBARIaCg1vdXRwdXRfdG9rZW5zGAUgASgDSAKIAQESGQoMdGltZWRfdG9rZW5zGAYgASgDSAOIAQESIAoTdGltZWRfb3V0cHV0X3Rva2VucxgHIAEoA0gEiAEBEh4KEXRpbWVkX2R1cmF0aW9uX21zGAggASgDSAWIAQESTQoMY2FwYWJpbGl0aWVzGAkgASgLMjcuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yUGVyaW9kQ2FwYWJpbGl0aWVzRHRvEkIKB2NsaWVudHMYCiADKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2RDbGllbnREdG9CFAoSX2NhY2hlX3JlYWRfdG9rZW5zQhUKE19jYWNoZV93cml0ZV90b2tlbnNCEAoOX291dHB1dF90b2tlbnNCDwoNX3RpbWVkX3Rva2Vuc0IWChRfdGltZWRfb3V0cHV0X3Rva2Vuc0IUChJfdGltZWRfZHVyYXRpb25fbXMifwohVG9rZW5Nb25pdG9yUGVyaW9kQ2FwYWJpbGl0aWVzRHRvEh0KEHRva2VuX2NvbXBvbmVudHMYASABKAhIAIgBARIXCgp0aHJvdWdocHV0GAIgASgISAGIAQFCEwoRX3Rva2VuX2NvbXBvbmVudHNCDQoLX3Rocm91Z2hwdXQiTwobVG9rZW5Nb25pdG9yUGVyaW9kQ2xpZW50RHRvEg4KBmNsaWVudBgBIAEoCRIOCgZ0b2tlbnMYAiABKAMSEAoIY29zdF91c2QYAyABKAEi2AIKElRva2VuVGhyb3VnaHB1dER0bxIfChdpbnB1dF90b2tlbnNfcGVyX21pbnV0ZRgBIAEoBRIgChhvdXRwdXRfdG9rZW5zX3Blcl9taW51dGUYAiABKAUSGgoSdG90YWxfaW5wdXRfdG9rZW5zGAMgASgDEhsKE3RvdGFsX291dHB1dF90b2tlbnMYBCABKAMSMAoMbGFzdF91cGRhdGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBInCh9yZWd1bGFyX2lucHV0X3Rva2Vuc19wZXJfbWludXRlGAYgASgFEiUKHWNhY2hlX2lucHV0X3Rva2Vuc19wZXJfbWludXRlGAcgASgFEiIKGnRvdGFsX3JlZ3VsYXJfaW5wdXRfdG9rZW5zGAggASgDEiAKGHRvdGFsX2NhY2hlX2lucHV0X3Rva2VucxgJIAEoAyKvAQoXVG9rZW5UaHJvdWdocHV0U25hcHNob3QSLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxpbnB1dF90b2tlbnMYAiABKAUSFQoNb3V0cHV0X3Rva2VucxgDIAEoBRIcChRyZWd1bGFyX2lucHV0X3Rva2VucxgEIAEoBRIaChJjYWNoZV9pbnB1dF90b2tlbnMYBSABKAUi4AEKLEhlcm9CYXR0bGVSZXBvcnRMYXRlc3RVbmxvY2tlZEFjaGlldmVtZW50RHRvEhUKDWNhbm9uaWNhbF9rZXkYASABKAkSEAoIbmFtZV9rZXkYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSMwoPdW5sb2NrZWRfYXRfdXRjGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5wcm9ncmVzc19hZnRlchgFIAEoBRIOCgZ0YXJnZXQYBiABKAUSFQoNcmV3YXJkX2Ftb3VudBgHIAEoAyK7AQopSGVyb0JhdHRsZVJlcG9ydFBlbmRpbmdBY2hpZXZlbWVudEhpbnREdG8SFQoNY2Fub25pY2FsX2tleRgBIAEoCRIQCghuYW1lX2tleRgCIAEoCRIRCglnb2FsX3R5cGUYAyABKAkSEAoIcHJvZ3Jlc3MYBCABKAUSDgoGdGFyZ2V0GAUgASgFEhcKD3JlbWFpbmluZ19jb3VudBgGIAEoBRIXCg9jb21wbGV0aW9uX3JhdGUYByABKAEivQIKJUhlcm9CYXR0bGVSZXBvcnRBY2hpZXZlbWVudFN1bW1hcnlEdG8SGAoQaGFzX2FyY2hpdmVfZGF0YRgBIAEoCBIXCg9jb21wbGV0ZWRfY291bnQYAiABKAUSEwoLdG90YWxfY291bnQYAyABKAUSFwoPY29tcGxldGlvbl9yYXRlGAQgASgBElsKD2xhdGVzdF91bmxvY2tlZBgFIAEoCzJCLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRMYXRlc3RVbmxvY2tlZEFjaGlldmVtZW50RHRvElYKDXBlbmRpbmdfaGludHMYBiADKAsyPy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UGVuZGluZ0FjaGlldmVtZW50SGludER0byL0AgojSGVyb0JhdHRsZVJlcG9ydEhpZ2hsaWdodFNlc3Npb25EdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRISCgV0aXRsZRgCIAEoCUgAiAEBEhkKDHNlc3Npb25fY29kZRgDIAEoCUgBiAEBEhkKDHNlc3Npb25fdHlwZRgEIAEoCUgCiAEBEhoKDXByb3Bvc2FsX25hbWUYBSABKAlIA4gBARIWCg5hY3Rpdml0eV9jb3VudBgGIAEoBRIiChpjb21wbGV0ZWRfYXNzaXN0YW5jZV9jb3VudBgHIAEoBRIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgIIAEoBRI4ChRsYXN0X2FjdGl2aXR5X2F0X3V0YxgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCAoGX3RpdGxlQg8KDV9zZXNzaW9uX2NvZGVCDwoNX3Nlc3Npb25fdHlwZUIQCg5fcHJvcG9zYWxfbmFtZSKnAwoiSGVyb0JhdHRsZVJlcG9ydEFjdGl2aXR5U3VtbWFyeUR0bxIdChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYASABKAUSIgoaY2hhdF9zZXNzaW9uX2NyZWF0ZWRfY291bnQYAiABKAUSJgoecHJvcG9zYWxfc2Vzc2lvbl9jcmVhdGVkX2NvdW50GAMgASgFEhYKDnByb3Bvc2FsX2NvdW50GAQgASgFEiAKGHByb3Bvc2FsX2dlbmVyYXRlZF9jb3VudBgFIAEoBRIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgGIAEoBRIfChdwcm9wb3NhbF9hcmNoaXZlZF9jb3VudBgHIAEoBRIiChphc3Npc3RhbmNlX2NvbXBsZXRlZF9jb3VudBgIIAEoBRIfChdhc3Npc3RhbmNlX2ZhaWxlZF9jb3VudBgJIAEoBRJVChJoaWdobGlnaHRfc2Vzc2lvbnMYCiADKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGlnaGxpZ2h0U2Vzc2lvbkR0byJGCiNIZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxIQCghwcmV2aW91cxgBIAEoAxINCgVkZWx0YRgCIAEoAyK8BQodSGVyb0JhdHRsZVJlcG9ydENvbXBhcmlzb25EdG8SGAoQaGFzX3ByZXZpb3VzX2RheRgBIAEoCBIaCg1wcmV2aW91c19kYXRlGAIgASgJSACIAQESVAoRYWN0aXZlX2hlcm9fY291bnQYAyABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJSCg9leGVjdXRpb25fY291bnQYBCABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJSCg90b29sX2NhbGxfY291bnQYBSABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJPCgx0b3RhbF90b2tlbnMYBiABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJYChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYByABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJRCg5wcm9wb3NhbF9jb3VudBgIIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElcKFGhhZ2lwb3dlcl9uZXRfY2hhbmdlGAkgASgLMjkuaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydENvbXBhcmlzb25NZXRyaWNEdG9CEAoOX3ByZXZpb3VzX2RhdGUixgEKG0hlcm9CYXR0bGVSZXBvcnRFeGVjdXRvckR0bxIVCg1leGVjdXRvcl90eXBlGAEgASgJEhIKCmhlcm9fY291bnQYAiABKAUSGQoRYWN0aXZlX2hlcm9fY291bnQYAyABKAUSFwoPZXhlY3V0aW9uX2NvdW50GAQgASgFEhcKD3Rvb2xfY2FsbF9jb3VudBgFIAEoBRIUCgx0b3RhbF90b2tlbnMYBiABKAMSGQoRdG90YWxfZHVyYXRpb25fbXMYByABKAMiuAEKIUhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJQb2ludER0bxI1ChFidWNrZXRfbWludXRlX3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHYmFsYW5jZRgCIAEoAxIVCg10b3RhbF9iYWxhbmNlGAMgASgDEiEKGWFjY3VtdWxhdGVkX3RvdGFsX2JhbGFuY2UYBCABKAMSEQoJaXNfZmlsbGVkGAUgASgIItwDChxIZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyRHRvEjMKD3JhbmdlX3N0YXJ0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNcmFuZ2VfZW5kX3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOYnVja2V0X21pbnV0ZXMYAyABKAUSFwoPaGFzX2ZpbGxlZF9nYXBzGAQgASgIEhwKFGhhc19yZWNvcmRlZF9oaXN0b3J5GAUgASgIEh4KFmN1cnJlbnRfcHVibGljX2JhbGFuY2UYBiABKAMSHQoVY3VycmVudF90b3RhbF9iYWxhbmNlGAcgASgDEikKIWN1cnJlbnRfYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgIIAEoAxISCgpuZXRfY2hhbmdlGAkgASgDEjcKE2xhc3RfdXBkYXRlZF9hdF91dGMYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEk4KDXB1YmxpY19zZXJpZXMYCyADKAsyNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyUG9pbnREdG8iiQQKF0hlcm9CYXR0bGVSZXBvcnRIZXJvRHRvEg8KB2hlcm9faWQYASABKAkSEQoJaGVyb19uYW1lGAIgASgJEhYKCWhlcm9faWNvbhgDIAEoCUgAiAEBEhUKDWV4ZWN1dG9yX3R5cGUYBCABKAkSEgoFbW9kZWwYBSABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgGIAEoCUgCiAEBEgwKBHJhbmsYByABKAUSDgoGc3RhdHVzGAggASgJEg0KBWdyYWRlGAkgASgJEhQKDGJhdHRsZV9zY29yZRgKIAEoBRIXCg9leGVjdXRpb25fY291bnQYCyABKAUSFwoPdG9vbF9jYWxsX2NvdW50GAwgASgFEhQKDGlucHV0X3Rva2VucxgNIAEoAxIaChJjYWNoZV9pbnB1dF90b2tlbnMYDiABKAMSFQoNb3V0cHV0X3Rva2VucxgPIAEoAxIbChNjYWNoZV9vdXRwdXRfdG9rZW5zGBAgASgDEhQKDHRvdGFsX3Rva2VucxgRIAEoAxIZChF0b3RhbF9kdXJhdGlvbl9tcxgSIAEoAxI5ChVsYXN0X2NvbXBsZXRlZF9hdF91dGMYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9oZXJvX2ljb25CCAoGX21vZGVsQg4KDF9kZXNjcmlwdGlvbiKAAgoiSGVyb0JhdHRsZVJlcG9ydFByb2plY3RBY3Rpdml0eUR0bxISCgpwcm9qZWN0X2lkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIWCg5hY3Rpdml0eV9jb3VudBgDIAEoBRIdChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYBCABKAUSFgoOcHJvcG9zYWxfY291bnQYBSABKAUSIgoaYXNzaXN0YW5jZV9jb21wbGV0ZWRfY291bnQYBiABKAUSHwoXYXNzaXN0YW5jZV9mYWlsZWRfY291bnQYByABKAUSFgoOYWN0aXZpdHlfc2hhcmUYCCABKAFCBwoFX25hbWUi+gEKIUhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0UHJvZmlsZUR0bxIQCghoYXNfZGF0YRgBIAEoCBIdChVwcm9qZWN0X2NyZWF0ZWRfY291bnQYAiABKAMSHQoVc2Vzc2lvbl9jcmVhdGVkX2NvdW50GAMgASgDEiAKGHByb3Bvc2FsX2dlbmVyYXRlZF9jb3VudBgEIAEoAxIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgFIAEoAxITCgt0b2tlbl90b3RhbBgGIAEoAxItCglhc19vZl91dGMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIo0CChtIZXJvQmF0dGxlUmVwb3J0UHJvamVjdHNEdG8SGwoTdG90YWxfcHJvamVjdF9jb3VudBgBIAEoBRIcChRhY3RpdmVfcHJvamVjdF9jb3VudBgCIAEoBRIZChFuZXdfcHJvamVjdF9jb3VudBgDIAEoBRJOCgx0b3BfcHJvamVjdHMYBCADKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdEFjdGl2aXR5RHRvEkgKB3Byb2ZpbGUYBSABKAsyNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdFByb2ZpbGVEdG8irQIKFkhlcm9CYXR0bGVSZXBvcnRNdnBEdG8SDwoHaGVyb19pZBgBIAEoCRIRCgloZXJvX25hbWUYAiABKAkSFgoJaGVyb19pY29uGAMgASgJSACIAQESFQoNZXhlY3V0b3JfdHlwZRgEIAEoCRISCgVtb2RlbBgFIAEoCUgBiAEBEgwKBHJhbmsYBiABKAUSFAoMYmF0dGxlX3Njb3JlGAcgASgFEg0KBWdyYWRlGAggASgJEhcKD2V4ZWN1dGlvbl9jb3VudBgJIAEoBRIXCg90b29sX2NhbGxfY291bnQYCiABKAUSFAoMdG90YWxfdG9rZW5zGAsgASgDEhkKEXRvdGFsX2R1cmF0aW9uX21zGAwgASgDQgwKCl9oZXJvX2ljb25CCAoGX21vZGVsItkCChpIZXJvQmF0dGxlUmVwb3J0U3VtbWFyeUR0bxIYChB0b3RhbF9oZXJvX2NvdW50GAEgASgFEhkKEWFjdGl2ZV9oZXJvX2NvdW50GAIgASgFEhoKEnRvdGFsX2JhdHRsZV9zY29yZRgDIAEoBRIYChB0b3RhbF90b29sX2NhbGxzGAQgASgFEhQKDHRvdGFsX3Rva2VucxgFIAEoAxIZChF0b3RhbF9kdXJhdGlvbl9tcxgGIAEoAxIUCgxpbnB1dF90b2tlbnMYByABKAMSGgoSY2FjaGVfaW5wdXRfdG9rZW5zGAggASgDEhUKDW91dHB1dF90b2tlbnMYCSABKAMSGwoTY2FjaGVfb3V0cHV0X3Rva2VucxgKIAEoAxI5CgNtdnAYCyABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0TXZwRHRvIqYGChNIZXJvQmF0dGxlUmVwb3J0RHRvEhMKC3JlcG9ydF9kYXRlGAEgASgJEjQKEGdlbmVyYXRlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhQKDHRpbWVfem9uZV9pZBgDIAEoCRI1ChFjb3ZlcmVkX3N0YXJ0X3V0YxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoPY292ZXJlZF9lbmRfdXRjGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJFCgloYWdpcG93ZXIYBiABKAsyMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyRHRvEkEKB3N1bW1hcnkYByABKAsyMC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0U3VtbWFyeUR0bxJRCgxhY2hpZXZlbWVudHMYCCABKAsyOy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0QWNoaWV2ZW1lbnRTdW1tYXJ5RHRvElIKEGFjdGl2aXR5X3N1bW1hcnkYCSABKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0QWN0aXZpdHlTdW1tYXJ5RHRvEkcKCmNvbXBhcmlzb24YCiABKAsyMy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbkR0bxJECglleGVjdXRvcnMYCyADKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0RXhlY3V0b3JEdG8SQwoIcHJvamVjdHMYDCABKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdHNEdG8SPQoGaGVyb2VzGA0gAygLMi0uaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydEhlcm9EdG8itQEKHkhhZ2lwb3dlclB1YmxpY0hpc3RvcnlQb2ludER0bxI1ChFidWNrZXRfbWludXRlX3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHYmFsYW5jZRgCIAEoAxIVCg10b3RhbF9iYWxhbmNlGAMgASgDEiEKGWFjY3VtdWxhdGVkX3RvdGFsX2JhbGFuY2UYBCABKAMSEQoJaXNfZmlsbGVkGAUgASgIItcBCh5IYWdpcG93ZXJTdGF0aXN0aWNzTWV0YWRhdGFEdG8SMwoPcmFuZ2Vfc3RhcnRfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1yYW5nZV9lbmRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5idWNrZXRfbWludXRlcxgDIAEoBRIXCg9oYXNfZmlsbGVkX2dhcHMYBCABKAgSHAoUaGFzX3JlY29yZGVkX2hpc3RvcnkYBSABKAgi1gEKHUhhZ2lwb3dlclN0YXRpc3RpY3NTdW1tYXJ5RHRvEh4KFmN1cnJlbnRfcHVibGljX2JhbGFuY2UYASABKAMSHQoVY3VycmVudF90b3RhbF9iYWxhbmNlGAIgASgDEikKIWN1cnJlbnRfYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgDIAEoAxISCgpuZXRfY2hhbmdlGAQgASgDEjcKE2xhc3RfdXBkYXRlZF9hdF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIogCChxIYWdpcG93ZXJTdGF0aXN0aWNzUmVwb3J0RHRvEg0KBXJhbmdlGAEgASgJEkYKCG1ldGFkYXRhGAIgASgLMjQuaGFnaWNvZGUucGxhdGZvcm0udjEuSGFnaXBvd2VyU3RhdGlzdGljc01ldGFkYXRhRHRvEkQKB3N1bW1hcnkYAyABKAsyMy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzU3VtbWFyeUR0bxJLCg1wdWJsaWNfc2VyaWVzGAQgAygLMjQuaGFnaWNvZGUucGxhdGZvcm0udjEuSGFnaXBvd2VyUHVibGljSGlzdG9yeVBvaW50RHRvIrsDChpIaXN0b3JpY2FsVGltZWxpbmVFdmVudER0bxIQCghldmVudF9pZBgBIAEoCRIzCg9vY2N1cnJlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmNyZWF0ZWRfYXRfdXRjGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtlbnRpdHlfdHlwZRgEIAEoCRIRCgllbnRpdHlfaWQYBSABKAkSFwoKcHJvamVjdF9pZBgGIAEoCUgAiAEBEhcKCnNlc3Npb25faWQYByABKAlIAYgBARIMCgRjb2RlGAggASgJEigKCG1ldGFkYXRhGAkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhMKBnNvdXJjZRgKIAEoCUgCiAEBEhUKCGFjdG9yX2lkGAsgASgJSAOIAQESGwoOY29ycmVsYXRpb25faWQYDCABKAlIBIgBAUINCgtfcHJvamVjdF9pZEINCgtfc2Vzc2lvbl9pZEIJCgdfc291cmNlQgsKCV9hY3Rvcl9pZEIRCg9fY29ycmVsYXRpb25faWQiiAEKH0hpc3RvcmljYWxUaW1lbGluZVBhZ2luYXRpb25EdG8SEQoJcGFnZV9zaXplGAEgASgFEhYKDnJldHVybmVkX2NvdW50GAIgASgFEhAKCGhhc19tb3JlGAMgASgIEhgKC25leHRfY3Vyc29yGAQgASgJSACIAQFCDgoMX25leHRfY3Vyc29yIrABCiJIaXN0b3JpY2FsVGltZWxpbmVRdWVyeVJlc3BvbnNlRHRvEj8KBWl0ZW1zGAEgAygLMjAuaGFnaWNvZGUucGxhdGZvcm0udjEuSGlzdG9yaWNhbFRpbWVsaW5lRXZlbnREdG8SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhpc3RvcmljYWxUaW1lbGluZVBhZ2luYXRpb25EdG8imwMKIEhpc3RvcmljYWxUaW1lbGluZUV2ZW50U2FtcGxlRHRvEhMKC2VudGl0eV90eXBlGAEgASgJEgwKBGNvZGUYAiABKAkSGAoQc2FtcGxlX2VudGl0eV9pZBgDIAEoCRIeChFzYW1wbGVfcHJvamVjdF9pZBgEIAEoCUgAiAEBEh4KEXNhbXBsZV9zZXNzaW9uX2lkGAUgASgJSAGIAQESGgoNc2FtcGxlX3NvdXJjZRgGIAEoCUgCiAEBEhwKD3NhbXBsZV9hY3Rvcl9pZBgHIAEoCUgDiAEBEiIKFXNhbXBsZV9jb3JyZWxhdGlvbl9pZBgIIAEoCUgEiAEBEjAKEG1ldGFkYXRhX2V4YW1wbGUYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVCFAoSX3NhbXBsZV9wcm9qZWN0X2lkQhQKEl9zYW1wbGVfc2Vzc2lvbl9pZEIQCg5fc2FtcGxlX3NvdXJjZUISChBfc2FtcGxlX2FjdG9yX2lkQhgKFl9zYW1wbGVfY29ycmVsYXRpb25faWQibQokSGlzdG9yaWNhbFRpbWVsaW5lU2FtcGxlc1Jlc3BvbnNlRHRvEkUKBWl0ZW1zGAEgAygLMjYuaGFnaWNvZGUucGxhdGZvcm0udjEuSGlzdG9yaWNhbFRpbWVsaW5lRXZlbnRTYW1wbGVEdG8y1QgKEVN0YXRpc3RpY3NTZXJ2aWNlEnQKEUdldEFnZ3JlZ2F0ZWREYXRhEi4uaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0QWdncmVnYXRlZERhdGFSZXF1ZXN0Gi8uaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0QWdncmVnYXRlZERhdGFSZXNwb25zZRJ9ChRHZXRUb2tlbk1vbml0b3JVc2FnZRIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuTW9uaXRvclVzYWdlUmVxdWVzdBoyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuTW9uaXRvclVzYWdlUmVzcG9uc2USlQEKHEdldFRva2VuVGhyb3VnaHB1dFN0YXRpc3RpY3MSOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVxdWVzdBo6LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuVGhyb3VnaHB1dFN0YXRpc3RpY3NSZXNwb25zZRKMAQoZR2V0VG9rZW5UaHJvdWdocHV0SGlzdG9yeRI2LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuVGhyb3VnaHB1dEhpc3RvcnlSZXF1ZXN0GjcuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5UaHJvdWdocHV0SGlzdG9yeVJlc3BvbnNlEnoKE0dldEhlcm9CYXR0bGVSZXBvcnQSMC5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIZXJvQmF0dGxlUmVwb3J0UmVxdWVzdBoxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhlcm9CYXR0bGVSZXBvcnRSZXNwb25zZRKMAQoZR2V0SGFnaXBvd2VySGlzdG9yeVJlcG9ydBI2LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXF1ZXN0GjcuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGFnaXBvd2VySGlzdG9yeVJlcG9ydFJlc3BvbnNlEoABChVHZXRIaXN0b3JpY2FsVGltZWxpbmUSMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXF1ZXN0GjMuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGlzdG9yaWNhbFRpbWVsaW5lUmVzcG9uc2USlQEKHEdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXMSOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVxdWVzdBo6LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXNwb25zZUIqqgInUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlBsYXRmb3JtLlYxYgZwcm90bzM",[Ve,Ee,cr]),gd=N(Lr,1),pd=Ge(Lr,0),ae=q("CiJoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25zLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIlUKFk9wZW5DaGF0U2Vzc2lvblJlcXVlc3QSOwoEYm9keRgBIAEoCzItLmhhZ2ljb2RlLnNlc3Npb24udjEuQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0IlIKF09wZW5DaGF0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIk0KEk9wZW5TZXNzaW9uUmVxdWVzdBI3CgRib2R5GAEgASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVTZXNzaW9uUmVxdWVzdCJOChNPcGVuU2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIicKEUdldFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiTQoSR2V0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvImEKElNhdmVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjcKBGJvZHkYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlVwZGF0ZVNlc3Npb25SZXF1ZXN0Ik4KE1NhdmVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8izAEKE0xpc3RTZXNzaW9uc1JlcXVlc3QSEQoEdHlwZRgBIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAIgASgISAGIAQESHQoQaW5jbHVkZV9hcmNoaXZlZBgDIAEoCEgCiAEBEhcKCnByb2plY3RfaWQYBCABKAlIA4gBARITCgtwcm9qZWN0X2lkcxgFIAMoCUIHCgVfdHlwZUIOCgxfYWN0aXZlX29ubHlCEwoRX2luY2x1ZGVfYXJjaGl2ZWRCDQoLX3Byb2plY3RfaWQiUwoUTGlzdFNlc3Npb25zUmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTGlzdFJlc3BvbnNlRHRvIkAKFERlbGV0ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSFAoMZGVsZXRlX2ZpbGVzGAIgASgIIlYKFURlbGV0ZVNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byIvChlBcmNoaXZlQ2hhdFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWwoaQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8idAoZU3dpdGNoU3RvcHBlZEFnZW50UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEkMKBGJvZHkYAiABKAsyNS5oYWdpY29kZS5zZXNzaW9uLnYxLlN3aXRjaFN0b3BwZWRTZXNzaW9uQWdlbnRSZXF1ZXN0IlUKGlN3aXRjaFN0b3BwZWRBZ2VudFJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIl4KG1N0YXJ0SGFnaVRhc2tTZXNzaW9uUmVxdWVzdBI/CgRib2R5GAEgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVIYWdpVGFza1Nlc3Npb25SZXF1ZXN0IlcKHFN0YXJ0SGFnaVRhc2tTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iZAohU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0Ej8KBGJvZHkYASABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNyZWF0ZUhhZ2lUYXNrU2Vzc2lvblJlcXVlc3QiXQoiU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXNwb25zZRI3CgZyZXN1bHQYASABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0byLOAwoSQ2hhdEhlcm9TdW1tYXJ5RHRvEg8KB2hlcm9faWQYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhEKBGljb24YBCABKAlIAYgBARIVCg1leGVjdXRvcl90eXBlGAUgASgJEhkKDGFnZW50X2NsaV9pZBgGIAEoCUgCiAEBEhsKDmFnZW50X2NsaV9uYW1lGAcgASgJSAOIAQESGwoOYWdlbnRfY2xpX2ljb24YCCABKAlIBIgBARIVCghtb2RlbF9pZBgJIAEoCUgFiAEBEhcKCm1vZGVsX25hbWUYCiABKAlIBogBARIXCgptb2RlbF9pY29uGAsgASgJSAeIAQESIgoVc2Vjb25kYXJ5X21vZGVsX2xhYmVsGAwgASgJSAiIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQg8KDV9hZ2VudF9jbGlfaWRCEQoPX2FnZW50X2NsaV9uYW1lQhEKD19hZ2VudF9jbGlfaWNvbkILCglfbW9kZWxfaWRCDQoLX21vZGVsX25hbWVCDQoLX21vZGVsX2ljb25CGAoWX3NlY29uZGFyeV9tb2RlbF9sYWJlbCI4ChRPcGVuU3BlY1Rhc2tQcm9ncmVzcxIRCgljb21wbGV0ZWQYASABKAUSDQoFdG90YWwYAiABKAUi/gEKEE9wZW5TcGVjRmlsZUluZm8SEQoJZmlsZV9uYW1lGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhEKCWZpbGVfdHlwZRgEIAEoCRITCgtpc19yZXF1aXJlZBgFIAEoCBITCgtpc19hcmNoaXZlZBgGIAEoCBIxCg1hcmNoaXZlZF9kYXRlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJACg10YXNrX3Byb2dyZXNzGAggASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcGVuU3BlY1Rhc2tQcm9ncmVzcyJcChFPcGVuU3BlY0ZpbGVzSW5mbxIRCgliYXNlX3BhdGgYASABKAkSNAoFZmlsZXMYAiADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIqULChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEj8KD29wZW5fc3BlY19maWxlcxgOIAEoCzImLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNwZWNGaWxlc0luZm8SHQoVcGVuZGluZ19tZXNzYWdlX2NvdW50GA8gASgFEkMKDnF1ZXVlX21lc3NhZ2VzGBAgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEh4KEXdvcmtpbmdfZGlyZWN0b3J5GBEgASgJSAOIAQESFQoIbWV0YWRhdGEYEiABKAlIBIgBARIfChJjaGF0X2V4ZWN1dG9yX3R5cGUYEyABKAlIBYgBARI6CgljaGF0X2hlcm8YFCABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJZChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPS5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0by5TdGFnZUV4ZWN1dG9yTWFwRW50cnkSZAoYc3RhZ2VfaGVyb19zZWxlY3Rpb25fbWFwGBYgAygLMkIuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8uU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSIAoTcnVudGltZV9tb2RlbF9sYWJlbBgXIAEoCUgGiAEBEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgYIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQgoNc2Vzc2lvbl91c2FnZRgZIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJCCg1ub3RpZmljYXRpb25zGBsgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTm90aWZpY2F0aW9uRHRvGmIKFVN0YWdlRXhlY3V0b3JNYXBFbnRyeRILCgNrZXkYASABKAkSOAoFdmFsdWUYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlRXhlY3V0b3JJbmZvRHRvOgI4ARpoChpTdGFnZUhlcm9TZWxlY3Rpb25NYXBFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMieQoYQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0Eg0KBXRpdGxlGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSGAoQaXNfZGVmYXVsdF90aXRsZRgDIAEoCBIUCgdoZXJvX2lkGAQgASgJSACIAQFCCgoIX2hlcm9faWQivgIKEFBhdGhSZWZlcmVuY2VEdG8SCgoCaWQYASABKAkSDgoGc291cmNlGAIgASgJEhUKDWRpc3BsYXlfdmFsdWUYAyABKAkSFQoNcGh5c2ljYWxfcGF0aBgEIAEoCRINCgVzdGFydBgFIAEoBRILCgNlbmQYBiABKAUSFgoJZW50aXR5X2lkGAcgASgJSACIAQESFwoKcHJvamVjdF9pZBgIIAEoCUgBiAEBEkUKCG1ldGFkYXRhGAkgAygLMjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9lbnRpdHlfaWRCDQoLX3Byb2plY3RfaWQi+wEKGVNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghpbWFnZV9pZBgCIAEoCRIWCg5oYWdpX2ltYWdlX3VybBgDIAEoCRIYCgtwcmV2aWV3X3VybBgEIAEoCUgAiAEBEhYKCWZpbGVfbmFtZRgFIAEoCUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgGIAEoCUgCiAEBEhYKCWZpbGVfc2l6ZRgHIAEoA0gDiAEBQg4KDF9wcmV2aWV3X3VybEIMCgpfZmlsZV9uYW1lQg8KDV9jb250ZW50X3R5cGVCDAoKX2ZpbGVfc2l6ZSJ+ChlUYXJnZXRQcm9qZWN0UmVmZXJlbmNlRHRvEhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhgKC2FjY2Vzc190eXBlGAQgASgJSACIAQFCDgoMX2FjY2Vzc190eXBlIocBChNUYXJnZXRSZXBvc2l0b3J5RHRvEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIZCgxkaXNwbGF5X25hbWUYAyABKAlIAIgBARIYCgthY2Nlc3NfdHlwZRgEIAEoCUgBiAEBQg8KDV9kaXNwbGF5X25hbWVCDgoMX2FjY2Vzc190eXBlIj0KGFRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxIMCgRtb2RlGAEgASgJEhMKC2FjY2Vzc190eXBlGAIgASgJIpUFChRDcmVhdGVTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIcCg9jaGllZl9jb21wbGFpbnQYAiABKAlIAIgBARIlChhvcmlnaW5hbF9jaGllZl9jb21wbGFpbnQYAyABKAlIAYgBARJIChBkcmFmdF9pbWFnZV9yZWZzGAQgAygLMi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTWVzc2FnZUltYWdlUmVmRHRvEhEKBHR5cGUYBSABKAlIAogBARISCgpwcm9qZWN0X2lkGAYgASgJEkUKE3RhcmdldF9yZXBvc2l0b3JpZXMYByADKAsyKC5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlEdG8STgoXdGFyZ2V0X3JlcG9zaXRvcnlfc2NvcGUYCCABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxJHCg90YXJnZXRfcHJvamVjdHMYCSADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFByb2plY3RSZWZlcmVuY2VEdG8SPgoPcGF0aF9yZWZlcmVuY2VzGAogAygLMiUuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvEhgKEGlzX2RlZmF1bHRfdGl0bGUYCyABKAgSJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgMIAEoCUgDiAEBQhIKEF9jaGllZl9jb21wbGFpbnRCGwoZX29yaWdpbmFsX2NoaWVmX2NvbXBsYWludEIHCgVfdHlwZUIcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZSKTAQoUVXBkYXRlU2Vzc2lvblJlcXVlc3QSDQoFdGl0bGUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARITCgZzdGF0dXMYAyABKAlIAYgBARIVCghtZXRhZGF0YRgEIAEoCUgCiAEBQg4KDF9kZXNjcmlwdGlvbkIJCgdfc3RhdHVzQgsKCV9tZXRhZGF0YSJTChZTZXNzaW9uTGlzdFJlc3BvbnNlRHRvEjkKCHNlc3Npb25zGAEgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iKwoYU2ltcGxlTWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkiMwogU3dpdGNoU3RvcHBlZFNlc3Npb25BZ2VudFJlcXVlc3QSDwoHaGVyb19pZBgBIAEoCSLrCAocQ3JlYXRlSGFnaVRhc2tTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIYChBpc19kZWZhdWx0X3RpdGxlGAIgASgIEhIKCnByb2plY3RfaWQYAyABKAkSFgoJcHJvbXB0X2lkGAQgASgJSACIAQESFAoHbWVzc2FnZRgFIAEoCUgBiAEBEkgKEGRyYWZ0X2ltYWdlX3JlZnMYBiADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAcgASgJSAKIAQESGAoLdGFyZ2V0X3R5cGUYCCABKAlIA4gBARIVCgh2YXVsdF9pZBgJIAEoCUgEiAEBEhwKD291dHB1dF92YXVsdF9pZBgKIAEoCUgFiAEBEhsKE3JlZmVyZW5jZV92YXVsdF9pZHMYCyADKAkSGgoSZWRpdGFibGVfdmF1bHRfaWRzGAwgAygJEkcKD3RhcmdldF9wcm9qZWN0cxgNIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuVGFyZ2V0UHJvamVjdFJlZmVyZW5jZUR0bxIfChJyZXNlYXJjaF9kaXJlY3Rpb24YDiABKAlIBogBARIbCg5wcmVzZXRfdGFza19pZBgPIAEoCUgHiAEBEh8KEnByZXNldF90YXNrX2xvY2FsZRgQIAEoCUgIiAEBEjEKEXByZXNldF90YXNrX2lucHV0GBEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhcKD3JlcG9zaXRvcnlfdXJscxgSIAMoCRITCgtwcm9qZWN0X2lkcxgTIAMoCRIRCgluZWVkX3B1c2gYFCABKAgSJAoXcHVsbF9yZWJhc2VfYmVmb3JlX3B1c2gYFSABKAhICYgBARIfChJ0YXJnZXRfYnJhbmNoX21vZGUYFiABKAlICogBARIfChJ0YXJnZXRfYnJhbmNoX25hbWUYFyABKAlIC4gBARIXCgpzY3JpcHRfa2V5GBggASgJSAyIAQESFAoHaGVyb19pZBgZIAEoCUgNiAEBEiAKE2hlcm9fc2VsZWN0aW9uX21vZGUYGiABKAlIDogBAUIMCgpfcHJvbXB0X2lkQgoKCF9tZXNzYWdlQhIKEF9yZXBvc2l0b3J5X3BhdGhCDgoMX3RhcmdldF90eXBlQgsKCV92YXVsdF9pZEISChBfb3V0cHV0X3ZhdWx0X2lkQhUKE19yZXNlYXJjaF9kaXJlY3Rpb25CEQoPX3ByZXNldF90YXNrX2lkQhUKE19wcmVzZXRfdGFza19sb2NhbGVCGgoYX3B1bGxfcmViYXNlX2JlZm9yZV9wdXNoQhUKE190YXJnZXRfYnJhbmNoX21vZGVCFQoTX3RhcmdldF9icmFuY2hfbmFtZUINCgtfc2NyaXB0X2tleUIKCghfaGVyb19pZEIWChRfaGVyb19zZWxlY3Rpb25fbW9kZTLqCAoPU2Vzc2lvbnNTZXJ2aWNlEmwKD09wZW5DaGF0U2Vzc2lvbhIrLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVzcG9uc2USYAoLT3BlblNlc3Npb24SJy5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TZXNzaW9uUmVxdWVzdBooLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNlc3Npb25SZXNwb25zZRJdCgpHZXRTZXNzaW9uEiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUmVxdWVzdBonLmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblJlc3BvbnNlEmAKC1NhdmVTZXNzaW9uEicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TYXZlU2Vzc2lvblJlcXVlc3QaKC5oYWdpY29kZS5zZXNzaW9uLnYxLlNhdmVTZXNzaW9uUmVzcG9uc2USYwoMTGlzdFNlc3Npb25zEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXNwb25zZRJmCg1EZWxldGVTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5EZWxldGVTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuRGVsZXRlU2Vzc2lvblJlc3BvbnNlEnUKEkFyY2hpdmVDaGF0U2Vzc2lvbhIuLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USdQoSU3dpdGNoU3RvcHBlZEFnZW50Ei4uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXNwb25zZRJ7ChRTdGFydEhhZ2lUYXNrU2Vzc2lvbhIwLmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydEhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlEo0BChpTdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvbhI2LmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuU2Vzc2lvbi5WMWIGcHJvdG8z",[Ve,Ee]),Ad=N(ae,1),Zd=N(ae,3),Rd=N(ae,5),fd=N(ae,7),Ed=N(ae,9),Vd=N(ae,11),Nd=N(ae,13),Gd=N(ae,17),Wd=N(ae,30),Sd=N(ae,36),vd=N(ae,37),Xd=N(ae,41),Yd=Ge(ae,0),bt=q("CitoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fbWVzc2FnaW5nLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIr0BChlHZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSEQoEcGFnZRgCIAEoBUgAiAEBEhYKCXBhZ2Vfc2l6ZRgDIAEoBUgBiAEBEhoKDWhpc3Rvcnlfc2NvcGUYBCABKAlIAogBARISCgVvcmRlchgFIAEoCUgDiAEBQgcKBV9wYWdlQgwKCl9wYWdlX3NpemVCEAoOX2hpc3Rvcnlfc2NvcGVCCAoGX29yZGVyIlkKGkdldFNlc3Npb25NZXNzYWdlc1Jlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZUxpc3RSZXNwb25zZUR0byIqChRDYW5jZWxTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlYKFUNhbmNlbFNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFNlc3Npb25SZXNwb25zZUR0byI3CiFHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJeCiJHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvY2Vzc2luZ1N0YXR1c0R0byJGChtDYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgtxdWV1ZV9pbmRleBgCIAEoBSJcChxDYW5jZWxQZW5kaW5nTWVzc2FnZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsUGVuZGluZ01lc3NhZ2VEdG8iZAoTU3RlZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjkKBGJvZHkYAiABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25TdGVlclJlcXVlc3REdG8iVAoUU3RlZXJTZXNzaW9uUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uU3RlZXJSZXNwb25zZUR0byKFAQoZU3RlZXJRdWV1ZWRNZXNzYWdlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEhMKC3F1ZXVlX2luZGV4GAIgASgFEj8KBGJvZHkYAyABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLlF1ZXVlZE1lc3NhZ2VTdGVlclJlcXVlc3REdG8iYAoaU3RlZXJRdWV1ZWRNZXNzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZWRNZXNzYWdlU3RlZXJSZXNwb25zZUR0byJmChlQb3N0U2Vzc2lvbk1lc3NhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSNQoEYm9keRgCIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXF1ZXN0IlkKGlBvc3RTZXNzaW9uTWVzc2FnZVJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXNwb25zZUR0byJgCipHZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgZsb2NhbGUYAiABKAlIAIgBAUIJCgdfbG9jYWxlIn8KK0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2USUAoGcmVzdWx0GAEgASgLMkAuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlc3BvbnNlRHRvInEKH1N1Ym1pdFNlc3Npb25Bbm5vdGF0aW9uc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI6CgRib2R5GAIgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Bbm5vdGF0aW9uU3VibWlzc2lvbkR0byJoCiBTdWJtaXRTZXNzaW9uQW5ub3RhdGlvbnNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5zZXNzaW9uLnYxLkFubm90YXRpb25TdWJtaXNzaW9uUmVzcG9uc2VEdG8i+gEKFk1lc3NhZ2VIZXJvU25hcHNob3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBEhYKCWhlcm9fbmFtZRgCIAEoCUgBiAEBEhYKCWhlcm9faWNvbhgDIAEoCUgCiAEBEhoKDWV4ZWN1dG9yX3R5cGUYBCABKAlIA4gBARITCgZzb3VyY2UYBSABKAlIBIgBARIWCglzdGFnZV9rZXkYBiABKAlIBYgBAUIKCghfaGVyb19pZEIMCgpfaGVyb19uYW1lQgwKCl9oZXJvX2ljb25CEAoOX2V4ZWN1dG9yX3R5cGVCCQoHX3NvdXJjZUIMCgpfc3RhZ2Vfa2V5IlIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25BbnN3ZXJEdG8SEAoIcXVlc3Rpb24YASABKAkSDgoGdmFsdWVzGAIgAygJEhAKCHJlamVjdGVkGAMgASgIIkIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25PcHRpb25EdG8SDQoFbGFiZWwYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiyAEKGk1lc3NhZ2VVc2VyUXVlc3Rpb25JdGVtRHRvEhAKCHF1ZXN0aW9uGAEgASgJEg4KBmhlYWRlchgCIAEoCRIUCgxtdWx0aV9zZWxlY3QYAyABKAgSQgoHb3B0aW9ucxgEIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbk9wdGlvbkR0bxIbChNhbGxvd19jdXN0b21fYW5zd2VyGAUgASgIEhEKCWlzX3NlY3JldBgGIAEoCCJaChxNZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvEhkKEW1heF9hbnN3ZXJfbGVuZ3RoGAEgASgFEh8KF21heF92YWx1ZXNfcGVyX3F1ZXN0aW9uGAIgASgFItgCChZNZXNzYWdlVXNlclF1ZXN0aW9uRHRvEhMKC3F1ZXN0aW9uX2lkGAEgASgJEhMKBnJ1bl9pZBgCIAEoCUgAiAEBEg0KBXN0YXRlGAMgASgJEkIKCXF1ZXN0aW9ucxgEIAMoCzIvLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkl0ZW1EdG8SQgoHYW5zd2VycxgFIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkFuc3dlckR0bxIvCgthbnN3ZXJlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoGbGltaXRzGAcgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvQgkKB19ydW5faWQi1gMKEk1lc3NhZ2VSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEgwKBHR5cGUYAyABKAkSDAoEbW9kZRgEIAEoCRItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDWNyZWF0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KDmNvbnRlbnRfYmxvY2tzGAcgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhIKBW1vZGVsGAggASgJSACIAQESFQoIcHJvdmlkZXIYCSABKAlIAYgBARJCCg1oZXJvX3NuYXBzaG90GAogASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlSGVyb1NuYXBzaG90RHRvEkIKDXVzZXJfcXVlc3Rpb24YCyABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLk1lc3NhZ2VVc2VyUXVlc3Rpb25EdG8SGAoLc3RlZXJfc3RhdGUYDCABKAlIAogBAUIICgZfbW9kZWxCCwoJX3Byb3ZpZGVyQg4KDF9zdGVlcl9zdGF0ZSKyAQoWTWVzc2FnZUxpc3RSZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEgwKBHBhZ2UYAiABKAUSEQoJcGFnZV9zaXplGAMgASgFEhMKC3RvdGFsX2NvdW50GAQgASgFEhMKC3RvdGFsX3BhZ2VzGAUgASgFEjkKCG1lc3NhZ2VzGAYgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlUmVzcG9uc2VEdG8ikAEKGENhbmNlbFNlc3Npb25SZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIwCgxjYW5jZWxsZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBnJ1bl9pZBgEIAEoCUgAiAEBQgkKB19ydW5faWQi3gEKE1Byb2Nlc3NpbmdTdGF0dXNEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIVCg1pc19wcm9jZXNzaW5nGAIgASgIEhwKFHF1ZXVlZF9tZXNzYWdlX2NvdW50GAMgASgFEkMKDnF1ZXVlX21lc3NhZ2VzGAQgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiPQoUQ2FuY2VsbGVkTWVzc2FnZUluZm8SDAoEbW9kZRgBIAEoCRIXCg9jb250ZW50X3ByZXZpZXcYAiABKAkiwwEKF0NhbmNlbFBlbmRpbmdNZXNzYWdlRHRvEhIKCnNlc3Npb25faWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBITCgtxdWV1ZV9pbmRleBgDIAEoBRIXCg9yZW1haW5pbmdfY291bnQYBCABKAUSDwoHbWVzc2FnZRgFIAEoCRJEChFjYW5jZWxsZWRfbWVzc2FnZRgGIAEoCzIpLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsbGVkTWVzc2FnZUluZm8iUgoXU2Vzc2lvblN0ZWVyUmVzcG9uc2VEdG8SDwoHb3V0Y29tZRgBIAEoCRIXCgptZXNzYWdlX2lkGAIgASgJSACIAQFCDQoLX21lc3NhZ2VfaWQiKQoWU2Vzc2lvblN0ZWVyUmVxdWVzdER0bxIPCgdjb250ZW50GAEgASgJIjAKHVF1ZXVlZE1lc3NhZ2VTdGVlclJlc3BvbnNlRHRvEg8KB291dGNvbWUYASABKAkiPAocUXVldWVkTWVzc2FnZVN0ZWVyUmVxdWVzdER0bxIcChRleGVjdXRpb25fbWVzc2FnZV9pZBgBIAEoCSIpChZQb3N0TWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkitwEKElBvc3RNZXNzYWdlUmVxdWVzdBIPCgdjb250ZW50GAEgASgJEgwKBG1vZGUYAiABKAkSQgoKaW1hZ2VfcmVmcxgDIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvbk1lc3NhZ2VJbWFnZVJlZkR0bxI+Cg9wYXRoX3JlZmVyZW5jZXMYBCADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLlBhdGhSZWZlcmVuY2VEdG8iXgorQ29udmVydFRvUHJvcG9zYWxIYWdpU2tpbGxQcm9tcHRSZXNwb25zZUR0bxIPCgdvdXRjb21lGAEgASgJEhMKBnByb21wdBgCIAEoCUgAiAEBQgkKB19wcm9tcHQiYAofQW5ub3RhdGlvblN1Ym1pc3Npb25SZXNwb25zZUR0bxIPCgdtZXNzYWdlGAEgASgJEhgKEGFubm90YXRpb25fY291bnQYAiABKAUSEgoKZmlsZV9jb3VudBgDIAEoBSLKAQoSQmxvY2tBbm5vdGF0aW9uRHRvEhkKEXN0YXJ0X2xpbmVfbnVtYmVyGAEgASgFEhcKD2VuZF9saW5lX251bWJlchgCIAEoBRIYChBvcmlnaW5hbF9jb250ZW50GAMgASgJEhIKCmJsb2NrX3R5cGUYBCABKAkSFwoPYW5ub3RhdGlvbl90ZXh0GAUgASgJEi0KCXRpbWVzdGFtcBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASCgoCaWQYByABKAkirwEKEUZpbGVBbm5vdGF0aW9uRHRvEhEKCWZpbGVfbmFtZRgBIAEoCRIRCglmaWxlX3BhdGgYAiABKAkSQgoRYmxvY2tfYW5ub3RhdGlvbnMYAyADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkJsb2NrQW5ub3RhdGlvbkR0bxIcCg9maWxlX2Fubm90YXRpb24YBCABKAlIAIgBAUISChBfZmlsZV9hbm5vdGF0aW9uIt8BChdBbm5vdGF0aW9uU3VibWlzc2lvbkR0bxISCgpzZXNzaW9uX2lkGAEgASgJEjUKBWZpbGVzGAIgAygLMiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5GaWxlQW5ub3RhdGlvbkR0bxIZChF0b3RhbF9hbm5vdGF0aW9ucxgDIAEoBRIwCgxzdWJtaXR0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKDWdsb2JhbF9wcm9tcHQYBSABKAlIAIgBAUIQCg5fZ2xvYmFsX3Byb21wdDKNCQoXU2Vzc2lvbk1lc3NhZ2luZ1NlcnZpY2USdQoSR2V0U2Vzc2lvbk1lc3NhZ2VzEi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXNwb25zZRJmCg1DYW5jZWxTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsU2Vzc2lvblJlc3BvbnNlEo0BChpHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1cxI2LmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblByb2Nlc3NpbmdTdGF0dXNSZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEnsKFENhbmNlbFBlbmRpbmdNZXNzYWdlEjAuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QaMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFBlbmRpbmdNZXNzYWdlUmVzcG9uc2USYwoMU3RlZXJTZXNzaW9uEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXNwb25zZRJ1ChJTdGVlclF1ZXVlZE1lc3NhZ2USLi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlcXVlc3QaLy5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlc3BvbnNlEnUKElBvc3RTZXNzaW9uTWVzc2FnZRIuLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVzcG9uc2USqAEKI0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0Ej8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QaQC5oYWdpY29kZS5zZXNzaW9uLnYxLkdldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2UShwEKGFN1Ym1pdFNlc3Npb25Bbm5vdGF0aW9ucxI0LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVxdWVzdBo1LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVzcG9uc2VCKaoCJlBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5TZXNzaW9uLlYxYgZwcm90bzM",[Ve,Ee,ae]),Id=N(bt,13),yd=N(bt,17),Bd=N(bt,35),Cd=N(bt,40),Fd=Ge(bt,0),pe=q("CipoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fcHJvcG9zYWwucHJvdG8SE2hhZ2ljb2RlLnNlc3Npb24udjEiOAoiTGlzdFVubGlua2VkT3BlblNwZWNDaGFuZ2VzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJInIKI0xpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEksKBnJlc3VsdBgBIAEoCzI7LmhhZ2ljb2RlLnNlc3Npb24udjEuVW5saW5rZWRPcGVuU3BlY0NoYW5nZXNMaXN0UmVzcG9uc2VEdG8ijQIKGVVubGlua2VkT3BlblNwZWNDaGFuZ2VEdG8SDAoEbmFtZRgBIAEoCRINCgV0aXRsZRgCIAEoCRIPCgdzdW1tYXJ5GAMgASgJEhwKD3Rhc2tzX2NvbXBsZXRlZBgEIAEoBUgAiAEBEhgKC3Rhc2tzX3RvdGFsGAUgASgFSAGIAQESGQoRaGFzX3Byb3Bvc2FsX2ZpbGUYBiABKAgSDQoFZmlsZXMYByADKAkSIgoVbm90X2ltcG9ydGFibGVfcmVhc29uGAggASgJSAKIAQFCEgoQX3Rhc2tzX2NvbXBsZXRlZEIOCgxfdGFza3NfdG90YWxCGAoWX25vdF9pbXBvcnRhYmxlX3JlYXNvbiJpCiZVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc0xpc3RSZXNwb25zZUR0bxI/CgdjaGFuZ2VzGAEgAygLMi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5VbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRHRvIjkKI0NvdW50VW5saW5rZWRPcGVuU3BlY0NoYW5nZXNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiawokQ291bnRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEkMKBnJlc3VsdBgBIAEoCzIzLmhhZ2ljb2RlLnNlc3Npb24udjEuVW5saW5rZWRPcGVuU3BlY0NoYW5nZUNvdW50RHRvIi8KHlVubGlua2VkT3BlblNwZWNDaGFuZ2VDb3VudER0bxINCgVjb3VudBgBIAEoBSJiCiRHZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRITCgtjaGFuZ2VfbmFtZRgCIAEoCRIRCglmaWxlX3BhdGgYAyABKAkiawolR2V0VW5saW5rZWRPcGVuU3BlY0NoYW5nZUZpbGVSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5zZXNzaW9uLnYxLlVubGlua2VkT3BlblNwZWNDaGFuZ2VGaWxlRHRvIkMKHVVubGlua2VkT3BlblNwZWNDaGFuZ2VGaWxlRHRvEhEKCWZpbGVfcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgJIkgKHEltcG9ydE9wZW5TcGVjQ2hhbmdlc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIUCgxjaGFuZ2VfbmFtZXMYAiADKAkiZAodSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5JbXBvcnRPcGVuU3BlY0NoYW5nZXNSZXN1bHREdG8iZAoeSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzdWx0RHRvEkIKB3Jlc3VsdHMYASADKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLkltcG9ydE9wZW5TcGVjQ2hhbmdlRW50cnlEdG8imAEKHEltcG9ydE9wZW5TcGVjQ2hhbmdlRW50cnlEdG8SDAoEbmFtZRgBIAEoCRIOCgZzdGF0dXMYAiABKAkSOAoHc2Vzc2lvbhgDIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvEhQKB21lc3NhZ2UYBCABKAlIAIgBAUIKCghfbWVzc2FnZSJwCh5PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI6CgRib2R5GAIgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcHRpbWl6ZVByb3Bvc2FsUmVxdWVzdCJtCh9PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVSZXNwb25zZUR0byJsChdHZW5lcmF0ZVByb3Bvc2FsUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEj0KBGJvZHkYAiABKAsyLy5oYWdpY29kZS5zZXNzaW9uLnYxLkdlbmVyYXRlUHJvcG9zYWxSZXF1ZXN0RHRvIlkKGEdlbmVyYXRlUHJvcG9zYWxSZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byJoChVBcmNoaXZlU2Vzc2lvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI7CgRib2R5GAIgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5BcmNoaXZlU2Vzc2lvblJlcXVlc3REdG8iUQoWQXJjaGl2ZVNlc3Npb25SZXNwb25zZRI3CgZyZXN1bHQYASABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0byJqChZFeGVjdXRlUHJvcG9zYWxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSPAoEYm9keRgCIAEoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVxdWVzdER0byJYChdFeGVjdXRlUHJvcG9zYWxSZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byIsChZDb21wbGV0ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiUgoXQ29tcGxldGVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iMwodVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJaCh5WYWxpZGF0ZVNlc3Npb25FeGVjdXRlUmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0aW9uUmVzdWx0RHRvIjEKG1ZhbGlkYXRlU2Vzc2lvblN0YXJ0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlgKHFZhbGlkYXRlU2Vzc2lvblN0YXJ0UmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0aW9uUmVzdWx0RHRvIjMKHVZhbGlkYXRlU2Vzc2lvbkFyY2hpdmVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWgoeVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZVJlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblJlc3VsdER0byJyCiFQcm9wb3NhbE9wdGltaXphdGlvbkRpYWdub3N0aWNEdG8SDAoEY29kZRgBIAEoCRIQCghzZXZlcml0eRgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhIKBWZpZWxkGAQgASgJSACIAQFCCAoGX2ZpZWxkIo4BCi1Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVZhbGlkYXRpb25SZXN1bHREdG8SEAoIaXNfdmFsaWQYASABKAgSSwoLZGlhZ25vc3RpY3MYAiADKAsyNi5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uRGlhZ25vc3RpY0R0byLcAwonUHJvcG9zYWxPcHRpbWl6YXRpb25TY2VuYXJpb1NldHRpbmdzRHRvEhcKCnNjcmlwdF9rZXkYASABKAlIAIgBARIdChBzZWxlY3RlZF9oZXJvX2lkGAIgASgJSAGIAQESHAoPY2FwdGFpbl9oZXJvX2lkGAMgASgJSAKIAQESFgoJcm9zdGVyX2lkGAQgASgJSAOIAQESawoQZXh0ZW5zaW9uX2ZpZWxkcxgFIAMoCzJRLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25TY2VuYXJpb1NldHRpbmdzRHRvLkV4dGVuc2lvbkZpZWxkc0VudHJ5EhYKCXN0YWdlX2tleRgGIAEoCUgEiAEBEh0KEHNlbGVjdGlvbl9zb3VyY2UYByABKAlIBYgBARo2ChRFeHRlbnNpb25GaWVsZHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19zY3JpcHRfa2V5QhMKEV9zZWxlY3RlZF9oZXJvX2lkQhIKEF9jYXB0YWluX2hlcm9faWRCDAoKX3Jvc3Rlcl9pZEIMCgpfc3RhZ2Vfa2V5QhMKEV9zZWxlY3Rpb25fc291cmNlIr4DCiNQcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVJlc3VsdER0bxIcCg9vcHRpbWl6ZWRfdGl0bGUYASABKAlIAIgBARIoChtvcHRpbWl6ZWRfcHJvcG9zYWxfbWFya2Rvd24YAiABKAlIAYgBARIfChdvcHRpbWl6ZWRfcHJvcG9zYWxfbmFtZRgDIAEoCRIdChVvcHRpbWl6ZWRfZGVzY3JpcHRpb24YBCABKAkSVwoRc2NlbmFyaW9fc2V0dGluZ3MYBSABKAsyPC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0bxJWCgp2YWxpZGF0aW9uGAYgASgLMkIuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVZhbGlkYXRpb25SZXN1bHREdG8SGQoMcmF3X3Jlc3BvbnNlGAcgASgJSAKIAQFCEgoQX29wdGltaXplZF90aXRsZUIeChxfb3B0aW1pemVkX3Byb3Bvc2FsX21hcmtkb3duQg8KDV9yYXdfcmVzcG9uc2Ui0ggKJFByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlU3VtbWFyeUR0bxIbChNyZXF1ZXN0X2ZpbmdlcnByaW50GAEgASgJEjQKEGdlbmVyYXRlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBnNvdXJjZRgDIAEoCRIVCg1hcHBsaWVkX3RpdGxlGAQgASgJEh0KFWFwcGxpZWRfcHJvcG9zYWxfbmFtZRgFIAEoCRIgChhwcm9wb3NhbF9kcmFmdF9hdmFpbGFibGUYBiABKAgSIAoYc2NlbmFyaW9fc2V0dGluZ3Nfc3RhdHVzGAcgASgJEhoKEmFwcGxpZWRfdGl0bGVfbW9kZRgIIAEoCRIQCghpc192YWxpZBgJIAEoCBJLCgtkaWFnbm9zdGljcxgKIAMoCzI2LmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25EaWFnbm9zdGljRHRvEiYKGW9wdGltaXplZF90aXRsZV9jYW5kaWRhdGUYCyABKAlIAIgBARIjChZwcm9wb3NhbF9kcmFmdF9wcmV2aWV3GAwgASgJSAGIAQESGgoNYXJ0aWZhY3RfcGF0aBgNIAEoCUgCiAEBEhsKDmNvcnJlbGF0aW9uX2lkGA4gASgJSAOIAQESHQoQcmVzb2x2ZWRfaGVyb19pZBgPIAEoCUgEiAEBEh8KEnJlc29sdmVkX2hlcm9fbmFtZRgQIAEoCUgFiAEBEh8KEnJlc29sdmVkX2hlcm9faWNvbhgRIAEoCUgGiAEBEigKG3Jlc29sdmVkX2hlcm9fZXhlY3V0b3JfdHlwZRgSIAEoCUgHiAEBEiIKFWhlcm9fc2VsZWN0aW9uX3NvdXJjZRgTIAEoCUgIiAEBEiMKFmhlcm9fcm91dGluZ19zdGFnZV9rZXkYFCABKAlICYgBARIkChdoZXJvX3JvdXRpbmdfc2NyaXB0X2tleRgVIAEoCUgKiAEBEiQKF29wdGltaXphdGlvbl9jZXNzaW9uX2lkGBYgASgJSAuIAQFCHAoaX29wdGltaXplZF90aXRsZV9jYW5kaWRhdGVCGQoXX3Byb3Bvc2FsX2RyYWZ0X3ByZXZpZXdCEAoOX2FydGlmYWN0X3BhdGhCEQoPX2NvcnJlbGF0aW9uX2lkQhMKEV9yZXNvbHZlZF9oZXJvX2lkQhUKE19yZXNvbHZlZF9oZXJvX25hbWVCFQoTX3Jlc29sdmVkX2hlcm9faWNvbkIeChxfcmVzb2x2ZWRfaGVyb19leGVjdXRvcl90eXBlQhgKFl9oZXJvX3NlbGVjdGlvbl9zb3VyY2VCGQoXX2hlcm9fcm91dGluZ19zdGFnZV9rZXlCGgoYX2hlcm9fcm91dGluZ19zY3JpcHRfa2V5QhoKGF9vcHRpbWl6YXRpb25fY2Vzc2lvbl9pZCLVAQolUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVSZXNwb25zZUR0bxJICgZyZXN1bHQYASABKAsyOC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlUmVzdWx0RHRvEkoKB3N1bW1hcnkYAiABKAsyOS5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlU3VtbWFyeUR0bxIWCg5jb3JyZWxhdGlvbl9pZBgDIAEoCSKJAwoXT3B0aW1pemVQcm9wb3NhbFJlcXVlc3QSEwoLZGVzY3JpcHRpb24YASABKAkSJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgCIAEoCUgAiAEBEiMKFm9wdGltaXphdGlvbl9kaXJlY3Rpb24YAyABKAlIAYgBARISCgV0aXRsZRgEIAEoCUgCiAEBEhgKEGlzX2RlZmF1bHRfdGl0bGUYBSABKAgSJQoYb3JpZ2luYWxfY2hpZWZfY29tcGxhaW50GAYgASgJSAOIAQESVwoRc2NlbmFyaW9fc2V0dGluZ3MYByABKAsyPC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0b0IcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZUIZChdfb3B0aW1pemF0aW9uX2RpcmVjdGlvbkIICgZfdGl0bGVCGwoZX29yaWdpbmFsX2NoaWVmX2NvbXBsYWludCJFChpQbGFubmluZ0RpcmVjdGlvbk9wdGlvbkR0bxIPCgJpZBgBIAEoCUgAiAEBEg8KB2VuYWJsZWQYAiABKAhCBQoDX2lkIowCChpHZW5lcmF0ZVByb3Bvc2FsUmVxdWVzdER0bxIgChNlbmFibGVfZXhwbG9yZV9tb2RlGAEgASgISACIAQESTAoTcGxhbm5pbmdfZGlyZWN0aW9ucxgCIAMoCzIvLmhhZ2ljb2RlLnNlc3Npb24udjEuUGxhbm5pbmdEaXJlY3Rpb25PcHRpb25EdG8SJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgDIAEoCUgBiAEBEhQKB2hlcm9faWQYBCABKAlIAogBAUIWChRfZW5hYmxlX2V4cGxvcmVfbW9kZUIcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZUIKCghfaGVyb19pZCI8ChhBcmNoaXZlU2Vzc2lvblJlcXVlc3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBQgoKCF9oZXJvX2lkIj0KGUV4ZWN1dGVQcm9wb3NhbFJlcXVlc3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBQgoKCF9oZXJvX2lkIlcKC0NvbmZsaWN0RHRvEgwKBHR5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhIKCnJlc29sdXRpb24YBCABKAkiawoSVmFsaWRhdGlvbklzc3VlRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIQCghzZXZlcml0eRgDIAEoCRIWCgllbnRpdHlfaWQYBCABKAlIAIgBAUIMCgpfZW50aXR5X2lkIoUBChRWYWxpZGF0aW9uU3VtbWFyeUR0bxIVCg1wcm9qZWN0X2NvdW50GAEgASgFEhUKDXNlc3Npb25fY291bnQYAiABKAUSHwoXZHVwbGljYXRlX3Byb2plY3RfY291bnQYAyABKAUSHgoWb3JwaGFuZWRfc2Vzc2lvbl9jb3VudBgEIAEoBSKMAgoTVmFsaWRhdGlvblJlc3VsdER0bxIQCghpc192YWxpZBgBIAEoCBI5Cgh3YXJuaW5ncxgCIAMoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvbklzc3VlRHRvEjcKBmVycm9ycxgDIAMoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvbklzc3VlRHRvEjMKCWNvbmZsaWN0cxgEIAMoCzIgLmhhZ2ljb2RlLnNlc3Npb24udjEuQ29uZmxpY3REdG8SOgoHc3VtbWFyeRgFIAEoCzIpLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblN1bW1hcnlEdG8yngwKFlNlc3Npb25Qcm9wb3NhbFNlcnZpY2UShAEKF09wdGltaXplU2Vzc2lvblByb3Bvc2FsEjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlcXVlc3QaNC5oYWdpY29kZS5zZXNzaW9uLnYxLk9wdGltaXplU2Vzc2lvblByb3Bvc2FsUmVzcG9uc2USbwoQR2VuZXJhdGVQcm9wb3NhbBIsLmhhZ2ljb2RlLnNlc3Npb24udjEuR2VuZXJhdGVQcm9wb3NhbFJlcXVlc3QaLS5oYWdpY29kZS5zZXNzaW9uLnYxLkdlbmVyYXRlUHJvcG9zYWxSZXNwb25zZRJpCg5BcmNoaXZlU2Vzc2lvbhIqLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZVNlc3Npb25SZXF1ZXN0GisuaGFnaWNvZGUuc2Vzc2lvbi52MS5BcmNoaXZlU2Vzc2lvblJlc3BvbnNlEmwKD0V4ZWN1dGVQcm9wb3NhbBIrLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVzcG9uc2USbAoPQ29tcGxldGVTZXNzaW9uEisuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db21wbGV0ZVNlc3Npb25SZXF1ZXN0GiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db21wbGV0ZVNlc3Npb25SZXNwb25zZRKBAQoWVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZRIyLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZVJlcXVlc3QaMy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGVSZXNwb25zZRJ7ChRWYWxpZGF0ZVNlc3Npb25TdGFydBIwLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uU3RhcnRSZXF1ZXN0GjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0ZVNlc3Npb25TdGFydFJlc3BvbnNlEoEBChZWYWxpZGF0ZVNlc3Npb25BcmNoaXZlEjIuaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0ZVNlc3Npb25BcmNoaXZlUmVxdWVzdBozLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZVJlc3BvbnNlEpABChtMaXN0VW5saW5rZWRPcGVuU3BlY0NoYW5nZXMSNy5oYWdpY29kZS5zZXNzaW9uLnYxLkxpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1JlcXVlc3QaOC5oYWdpY29kZS5zZXNzaW9uLnYxLkxpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEpMBChxDb3VudFVubGlua2VkT3BlblNwZWNDaGFuZ2VzEjguaGFnaWNvZGUuc2Vzc2lvbi52MS5Db3VudFVubGlua2VkT3BlblNwZWNDaGFuZ2VzUmVxdWVzdBo5LmhhZ2ljb2RlLnNlc3Npb24udjEuQ291bnRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEpYBCh1HZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZRI5LmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0VW5saW5rZWRPcGVuU3BlY0NoYW5nZUZpbGVSZXF1ZXN0GjouaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZVJlc3BvbnNlEn4KFUltcG9ydE9wZW5TcGVjQ2hhbmdlcxIxLmhhZ2ljb2RlLnNlc3Npb24udjEuSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVxdWVzdBoyLmhhZ2ljb2RlLnNlc3Npb24udjEuSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzcG9uc2VCKaoCJlBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5TZXNzaW9uLlYxYgZwcm90bzM",[Ee,ae]),Ud=N(pe,15),wd=N(pe,17),Jd=N(pe,19),kd=N(pe,21),xd=N(pe,23),Kd=N(pe,36),zd=N(pe,38),Ld=N(pe,39),jd=N(pe,40),Hd=Ge(pe,0),_t=new Set([b.INT64,b.UINT64,b.SINT64,b.FIXED64,b.SFIXED64]),jr=e=>e.typeName.startsWith("google.protobuf.");function Pt(e){if(typeof e!="string")return e;const t=Number(e);return Number.isSafeInteger(t)?t:e}function Wt(e,t){if(t==null||typeof t!="object"||Array.isArray(t)||jr(e))return t;const n=t;for(const o of e.fields){const a=n[o.jsonName];a!==void 0&&(n[o.jsonName]=Td(o,a))}return n}function Td(e,t){switch(e.fieldKind){case"scalar":return _t.has(e.scalar)?Pt(t):t;case"message":return Wt(e.message,t);case"list":return Array.isArray(t)?e.listKind==="scalar"?_t.has(e.scalar)?t.map(Pt):t:e.listKind==="message"?t.map(n=>Wt(e.message,n)):t:t;case"map":{if(t===null||typeof t!="object"||Array.isArray(t))return t;const n=t;for(const o of Object.keys(n))e.mapKind==="scalar"&&_t.has(e.scalar)?n[o]=Pt(n[o]):e.mapKind==="message"&&(n[o]=Wt(e.message,n[o]));return n}default:return t}}function Qd(e,t){return Wt(e,br(e,t,{alwaysEmitImplicit:!0}))}function Md(e,t){return Qd(e,t).result}function St(e,t,n=0){if(t===null||typeof t!="object"||Array.isArray(t)||jr(e)||n>8)return t;const o=t;for(const a of e.fields){const r=o[a.jsonName];if(!(r===null||typeof r!="object")){if(a.fieldKind==="message")St(a.message,r,n+1);else if(a.fieldKind==="list"&&a.listKind==="message"&&Array.isArray(r))r.forEach(i=>St(a.message,i,n+1));else if(a.fieldKind==="map"&&!Array.isArray(r)){const i=r;for(const l of Object.keys(i)){const s=i[l];a.mapKind==="scalar"&&a.scalar===b.STRING?s===null?delete i[l]:(typeof s=="number"||typeof s=="boolean")&&(i[l]=String(s)):a.mapKind==="message"&&St(a.message,s,n+1)}}}}return t}function T(e,t){return Rr(e,t===void 0?t:St(e,JSON.parse(JSON.stringify(t))),{ignoreUnknownFields:!0})}function sa(e,t){const n=Br(e);if(n)throw t.forEach((o,a)=>{n.metadata.append(a,o)}),n;if(!t.has("Grpc-Status")&&!e.has("Grpc-Status"))throw new S("protocol error: missing status",f.Internal)}function Od(e,t,n,o){var a,r;const i=new Headers(n??{});i.set(jc,e?_c:Pc),i.set(Dc,"1");const l=(r=(a=i.get("User-Agent"))!==null&&a!==void 0?a:i.get("X-User-Agent"))!==null&&r!==void 0?r:"connect-es/2.2.0";return i.set(Oc,l),o&&i.set(Mc,l),t!==void 0&&i.set(Tc,`${t}m`),i}function ca(e,t,n,o,a,r){const i=Od(e,t,n,r);return a!=null&&i.set(Ir,a.name),o.length>0&&i.set(Hc,o.map(l=>l.name).join(",")),i}function Dd(e){switch(e){case 400:return f.Internal;case 401:return f.Unauthenticated;case 403:return f.PermissionDenied;case 404:return f.Unimplemented;case 429:return f.Unavailable;case 502:return f.Unavailable;case 503:return f.Unavailable;case 504:return f.Unavailable;default:return f.Unknown}}function _d(e,t){var n;if(e>=200&&e<300)return{foundStatus:t.has(yr),headerError:Br(t)};throw new S(decodeURIComponent((n=t.get("Grpc-Message"))!==null&&n!==void 0?n:`HTTP ${e}`),Dd(e),t)}function ua(e,t,n){const{foundStatus:o,headerError:a}=_d(t,n);let r;const i=n.get(Ir);if(i!==null&&i.toLowerCase()!=="identity"&&(r=e.find(l=>l.name===i),!r))throw new S(`unsupported response encoding "${i}"`,f.Internal,n);return{foundStatus:o,compression:r,headerError:a}}var da=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(l,s){i=e[r](i),a(l,s,i.done,i.value)})}}function a(r,i,l,s){Promise.resolve(s).then(function(c){r({value:c,done:l})},i)}},Xe=function(e){return this instanceof Xe?(this.v=e,this):new Xe(e)},Pd=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,p)}}function l(Z,V){o[Z]&&(a[Z]=function(G){return new Promise(function(B,J){r.push([Z,G,B,J])>1||s(Z,G)})},V&&(a[Z]=V(a[Z])))}function s(Z,V){try{c(o[Z](V))}catch(G){R(r[0][3],G)}}function c(Z){Z.value instanceof Xe?Promise.resolve(Z.value.v).then(m,p):R(r[0][2],Z)}function m(Z){s("next",Z)}function p(Z){s("throw",Z)}function R(Z,V){Z(V),r.shift(),r.length&&s(r[0][0],r[0][1])}};function $d(e){return{async unary(t,n,o,a,r,i){const l=na(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,await nu({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!1,service:t.parent,method:t,requestMethod:"POST",url:ta(e.baseUrl,t),header:ca(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??qo(),message:r},next:async s=>{const c=await e.httpClient({url:s.url,method:s.requestMethod,header:s.header,signal:s.signal,body:Gt(vr([s.message]),Mo(l.getI(e.useBinaryFormat)),Do(e.sendCompression,e.compressMinBytes),Po(),{propagateDownStreamError:!0})}),{compression:m,headerError:p}=ua(e.acceptCompression,c.status,c.header),{trailer:R,message:Z}=await Ic(c.body,$o(e.readMaxBytes),_o(m??null,e.readMaxBytes),Oo(l.getO(e.useBinaryFormat),128,ea()),async V=>{var G,B,J,u;let d,g;try{for(var h=!0,A=da(V),E;E=await A.next(),G=E.done,!G;h=!0){u=E.value,h=!1;const v=u;if(v.end){if(g!==void 0)throw new S("protocol error: received extra trailer",f.Unimplemented);g=v.value}else{if(d!==void 0)throw new S("protocol error: received extra output message for unary method",f.Unimplemented);d=v.value}}}catch(v){B={error:v}}finally{try{!h&&!G&&(J=A.return)&&await J.call(A)}finally{if(B)throw B.error}}return{trailer:g,message:d}},{propagateDownStreamError:!1});if(R===void 0)throw p??new S("protocol error: missing trailer",c.header.has("Grpc-Status")?f.Unimplemented:f.Unknown);if(sa(R,c.header),Z===void 0)throw new S("protocol error: missing output message for unary method",R.has("Grpc-Status")?f.Unimplemented:f.Unknown);return{stream:!1,service:t.parent,method:t,header:c.header,message:Z,trailer:R}}})},async stream(t,n,o,a,r,i){const l=na(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,ou({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!0,service:t.parent,method:t,requestMethod:"POST",url:ta(e.baseUrl,t),header:ca(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??qo(),message:r},next:async s=>{const c=await e.httpClient({url:s.url,method:s.requestMethod,header:s.header,signal:s.signal,body:Gt(s.message,Mo(l.getI(e.useBinaryFormat)),Do(e.sendCompression,e.compressMinBytes),Po(),{propagateDownStreamError:!0})}),{compression:m,foundStatus:p,headerError:R}=ua(e.acceptCompression,c.status,c.header);if(R)throw R;const Z=Object.assign(Object.assign({},s),{header:c.header,trailer:new Headers,message:Gt(c.body,$o(e.readMaxBytes),_o(m??null,e.readMaxBytes),Oo(l.getO(e.useBinaryFormat),128,ea()),function(V){return Pd(this,arguments,function*(){var G,B,J,u;if(p){if((yield Xe(V[Symbol.asyncIterator]().next())).done!==!0)throw new S("protocol error: extra data for trailers-only",f.InvalidArgument);return yield Xe(void 0)}let d=!1;try{for(var g=!0,h=da(V),A;A=yield Xe(h.next()),G=A.done,!G;g=!0){u=A.value,g=!1;const E=u;if(E.end){if(d)throw new S("protocol error: received extra trailer",f.InvalidArgument);d=!0,sa(E.value,c.header),E.value.forEach((v,w)=>Z.trailer.set(w,v));continue}if(d)throw new S("protocol error: received extra message after trailer",f.InvalidArgument);yield yield Xe(E.value)}}catch(E){B={error:E}}finally{try{!g&&!G&&(J=h.return)&&(yield Xe(J.call(h)))}finally{if(B)throw B.error}}if(!d)throw new S("protocol error: missing trailer",f.Internal)})},{propagateDownStreamError:!0})});return Z}})}}}function xt(e){let t=f.Internal;const n=Mn(e).map(Kt);n.some(a=>a.code=="ERR_STREAM_WRITE_AFTER_END")||n.some(a=>a.code=="ERR_STREAM_DESTROYED"||a.code=="ERR_HTTP2_INVALID_STREAM"||a.code=="ECONNRESET")?t=f.Aborted:n.some(a=>a.code=="ETIMEDOUT"||a.code=="ENOTFOUND"||a.code=="EAI_AGAIN"||a.code=="ECONNREFUSED")&&(t=f.Unavailable);const o=S.from(e,t);return o!==e&&(o.cause=e),o}function Mn(e){const t=[];for(;!(!(e instanceof Error)||t.includes(e)||(t.push(e),!("cause"in e)));)e=e.cause;return t}function Kt(e){const t={};return e instanceof Error&&("code"in e&&typeof e.code=="string"&&(t.code=e.code),"syscall"in e&&typeof e.syscall=="string"&&(t.syscall=e.syscall)),t}function qd(e){switch(e){case M.PROTOCOL_ERROR:case M.INTERNAL_ERROR:case M.FLOW_CONTROL_ERROR:case M.SETTINGS_TIMEOUT:case M.FRAME_SIZE_ERROR:case M.COMPRESSION_ERROR:case M.CONNECT_ERROR:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.Internal);case M.REFUSED_STREAM:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.Unavailable);case M.CANCEL:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.Canceled);case M.ENHANCE_YOUR_CALM:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.ResourceExhausted);case M.INADEQUATE_SECURITY:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.PermissionDenied);case M.HTTP_1_1_REQUIRED:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.PermissionDenied);default:break}}var M;(function(e){e[e.PROTOCOL_ERROR=1]="PROTOCOL_ERROR",e[e.INTERNAL_ERROR=2]="INTERNAL_ERROR",e[e.FLOW_CONTROL_ERROR=3]="FLOW_CONTROL_ERROR",e[e.SETTINGS_TIMEOUT=4]="SETTINGS_TIMEOUT",e[e.STREAM_CLOSED=5]="STREAM_CLOSED",e[e.FRAME_SIZE_ERROR=6]="FRAME_SIZE_ERROR",e[e.REFUSED_STREAM=7]="REFUSED_STREAM",e[e.CANCEL=8]="CANCEL",e[e.COMPRESSION_ERROR=9]="COMPRESSION_ERROR",e[e.CONNECT_ERROR=10]="CONNECT_ERROR",e[e.ENHANCE_YOUR_CALM=11]="ENHANCE_YOUR_CALM",e[e.INADEQUATE_SECURITY=12]="INADEQUATE_SECURITY",e[e.HTTP_1_1_REQUIRED=13]="HTTP_1_1_REQUIRED"})(M||(M={}));var em=(0,Bt.promisify)(Me.gzip),tm=(0,Bt.promisify)(Me.gunzip),nm=(0,Bt.promisify)(Me.brotliCompress),om=(0,Bt.promisify)(Me.brotliDecompress),am={name:"gzip",compress(e){return Yt(em(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Hr(tm(e,{maxOutputLength:t}),t))}},rm={name:"br",compress(e){return Yt(nm(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Hr(om(e,{maxOutputLength:t}),t))}};function Yt(e){return e.then(t=>t.buffer instanceof ArrayBuffer?t:new Uint8Array(t))}function Hr(e,t){return e.catch(n=>{var o;const a=Kt(n);let r=f.Internal,i="decompression failed";switch(a.code){case"ERR_BUFFER_TOO_LARGE":r=f.ResourceExhausted,i=`message is larger than configured readMaxBytes ${t} after decompression`;break;case"Z_DATA_ERROR":case"ERR_PADDING_2":r=f.InvalidArgument;break;default:!((o=a.code)===null||o===void 0)&&o.startsWith("ERR__ERROR_FORMAT_")&&(r=f.InvalidArgument);break}return Promise.reject(new S(i,r,void 0,void 0,n))})}function zt(e){const t=new Headers;for(const[n,o]of Object.entries(e))if(!n.startsWith(":")&&o!==void 0)if(typeof o=="string")t.append(n,o);else if(typeof o=="number")t.append(n,String(o));else for(const a of o)t.append(n,a);return t}function Tr(e,t){if(e===void 0&&t===void 0)return;const n=Object.create(null);if(t!==void 0)if(Array.isArray(t))for(let o=0;o+1<t.length;o+=2){const a=t[o],r=t[o+1];Array.isArray(n[a])?n[a].push(r):typeof n[a]=="string"?n[a]=[n[a],r]:n[a]=r}else for(const[o,a]of Object.entries(t))Array.isArray(a)?n[o]=a.concat():a!==void 0&&(n[o]=a);if(e!==void 0)if(Array.isArray(e))for(const[o,a]of e)$t(n,o,a);else if("forEach"in e)typeof e.forEach=="function"&&e.forEach((o,a)=>{$t(n,a,o)});else for(const[o,a]of Object.entries(e))$t(n,o,a);return n}function $t(e,t,n){t=t.toLowerCase();const o=e[t];Array.isArray(o)?o.push(n):o===void 0?e[t]=n:e[t]=[o.toString(),n]}var Qr=class{state(){return this.s.t=="ready"?this.verifying!==void 0?"verifying":this.s.streamCount()>0?"open":"idle":this.s.t}error(){if(this.s.t=="error")return this.s.reason}constructor(e,t,n){var o,a,r,i;this.s=hn(),this.shuttingDown=[],this.authority=new URL(e).origin,this.http2SessionOptions=n,this.options={pingIntervalMs:(o=t?.pingIntervalMs)!==null&&o!==void 0?o:Number.POSITIVE_INFINITY,pingTimeoutMs:(a=t?.pingTimeoutMs)!==null&&a!==void 0?a:1e3*15,pingIdleConnection:(r=t?.pingIdleConnection)!==null&&r!==void 0?r:!1,idleConnectionTimeoutMs:(i=t?.idleConnectionTimeoutMs)!==null&&i!==void 0?i:1e3*60*15}}async connect(){try{return(await this.gotoReady()).streamCount()>0?"open":"idle"}catch{return"error"}}async request(e,t,n,o){for(;;){const a=await this.gotoReady();try{const r=a.conn.request(Object.assign(Object.assign({},n),{":method":e,":path":t}),o);return a.registerRequest(r),r}catch(r){if(a.conn.closed||a.conn.destroyed)continue;throw r}}}notifyResponseByteRead(e){this.s.t=="ready"&&this.s.responseByteRead(e);for(const t of this.shuttingDown)t.responseByteRead(e)}abort(e){var t,n,o;const a=e??new S("connection aborted",f.Canceled);(n=(t=this.s).abort)===null||n===void 0||n.call(t,a);for(const r of this.shuttingDown)(o=r.abort)===null||o===void 0||o.call(r,a);this.setState(Zt(a))}async gotoReady(){for(this.s.t=="ready"?this.s.isShuttingDown()||this.s.conn.closed||this.s.conn.destroyed?this.setState(qt(this.authority,this.http2SessionOptions)):this.s.requiresVerify()&&await this.verify(this.s):(this.s.t=="closed"||this.s.t=="error")&&this.setState(qt(this.authority,this.http2SessionOptions));this.s.t!=="ready";){if(this.s.t==="error")throw this.s.reason;this.s.t==="connecting"&&await this.s.conn}return this.s}setState(e){var t,n;if((n=(t=this.s).onExitState)===null||n===void 0||n.call(t),this.s.t=="ready"&&this.s.isShuttingDown()){const o=this.s;this.shuttingDown.push(o),o.onClose=o.onError=()=>{const a=this.shuttingDown.indexOf(o);a!==-1&&this.shuttingDown.splice(a,1)}}switch(e.t){case"connecting":e.conn.then(o=>{this.setState(lm(o,this.options))},o=>{this.setState(Zt(o))});break;case"ready":e.onClose=()=>this.setState(hn()),e.onError=o=>this.setState(Zt(o));break;case"closed":break;case"error":break}this.s=e}verify(e){return this.verifying!==void 0?this.verifying:(this.verifying=e.verify().then(t=>{t||this.setState(qt(this.authority,this.http2SessionOptions))},t=>{this.setState(Zt(t))}).finally(()=>{this.verifying=void 0}),this.verifying)}};function hn(){return{t:"closed"}}function im(e){return{t:"error",reason:e}}function Zt(e){return e instanceof S&&S.from(e).code==f.Canceled?hn():im(e)}function qt(e,t){let n,o;const a=new Promise((c,m)=>{n=c,o=m}),r=be.connect(e,t);r.on("connect",i),r.on("error",l);function i(){n?.(r),s()}function l(c){o?.(xt(c)),s()}function s(){r.off("connect",i),r.off("error",l)}return{t:"connecting",conn:a,abort(c){r.destroyed||r.destroy(void 0,be.constants.NGHTTP2_CANCEL),o?.(c)},onExitState(){s()}}}function lm(e,t){sm(e),e.unref();let n=Date.now(),o=0,a,r,i=!1,l=!1,s;G();const c={t:"ready",conn:e,streamCount(){return o},requiresVerify(){return Date.now()-n>t.pingIntervalMs},isShuttingDown(){return i},onClose:void 0,onError:void 0,registerRequest(h){o++,o==1&&(e.ref(),m(),V()),h.once("response",()=>{n=Date.now(),m()}),h.once("close",()=>{o--,o==0&&(e.unref(),m(),G())})},responseByteRead(h){h.session===e&&(e.closed||e.destroyed||o<=0||(n=Date.now(),m()))},verify(){return e.ref(),new Promise(h=>{const A=()=>{h(!1)};Z(()=>{o==0&&e.unref(),e.off("error",A),e.off("close",A),h(!0)}),e.once("error",A),e.once("close",A)})},abort(h){e.destroyed||(e.once("error",()=>{}),e.destroy(h,be.constants.NGHTTP2_CANCEL))},onExitState(){c.isShuttingDown()||(g(),this.onError=void 0,this.onClose=void 0)}};function m(){p(),(o>0||t.pingIdleConnection)&&(a=en(R,t.pingIntervalMs))}function p(){clearTimeout(a),clearTimeout(r)}function R(){Z(m)}function Z(h){clearTimeout(r),r=en(()=>{e.destroy(new S("PING timed out",f.Unavailable),be.constants.NGHTTP2_CANCEL)},t.pingTimeoutMs),e.ping((A,E)=>{if(clearTimeout(r),A===null){if(E>t.pingTimeoutMs){e.destroy(new S("PING timed out",f.Unavailable),be.constants.NGHTTP2_CANCEL);return}n=Date.now(),h()}})}function V(){clearTimeout(s)}function G(){s=en(B,t.idleConnectionTimeoutMs)}function B(){e.close(),u()}function J(h,A,E){if(h===be.constants.NGHTTP2_NO_ERROR&&o===0){e.destroy(new S("received GOAWAY without any open streams",f.Canceled),be.constants.NGHTTP2_NO_ERROR);return}i=!0;const v=Buffer.from("too_many_pings","ascii");E?.equals(v)&&(t.pingIntervalMs=t.pingIntervalMs*2,l=!0)}function u(){var h;g(),(h=c.onClose)===null||h===void 0||h.call(c)}function d(h){var A,E;if(g(),l){const v=new S(`http/2 connection closed with error code ENHANCE_YOUR_CALM (0x${be.constants.NGHTTP2_ENHANCE_YOUR_CALM.toString(16)}), too_many_pings, doubled the interval`,f.ResourceExhausted);(A=c.onError)===null||A===void 0||A.call(c,v)}else(E=c.onError)===null||E===void 0||E.call(c,xt(h))}function g(){p(),V(),e.off("error",d),e.off("close",u),e.off("goaway",J)}return e.on("error",d),e.on("close",u),e.on("goaway",J),c}function en(e,t){if(!(t>2147483647))return setTimeout(e,t).unref()}function sm(e){if(e.connecting)throw new S("expected open session, but it is connecting",f.Internal);if(e.destroyed)throw new S("expected open session, but it is destroyed",f.Internal);if(e.closed)throw new S("expected open session, but it is closed",f.Internal)}function ma(e){var t;return e.httpVersion=="1.1"?cm(e.nodeOptions):um((t=e.sessionProvider)!==null&&t!==void 0?t:(n=>new Qr(n)))}function cm(e){return async function(n){const o=Or(n.signal);return new Promise((a,r)=>{o.onError(i=>{r(i)}),dm(o,n.url,Object.assign(Object.assign({},e),{headers:Tr(n.header,e?.headers),method:n.method}),i=>{Mr(n,i,o),i.on("response",l=>{var s;l.on("error",o.error),o.onError(m=>l.destroy(m));const c=new Headers;a({status:(s=l.statusCode)!==null&&s!==void 0?s:0,header:zt(l.headers),body:mm(o,l,c),trailer:c})})})})}}function um(e){return function(n){const o=Or(n.signal),a=e(n.url);return new Promise((r,i)=>{o.onError(l=>{i(l)}),bm(o,a,n.url,n.method,Tr(n.header),{},l=>{Mr(n,l,o),l.on("response",s=>{var c;r({status:(c=s[":status"])!==null&&c!==void 0?c:0,header:zt(s),body:gm(o,l,a),trailer:hm(l)})})})})}}function dm(e,t,n,o){let a;new URL(t).protocol.startsWith("https")?a=on.request(t,n):a=nn.request(t,n),e.onError(r=>a.destroy(r)),a.flushHeaders(),a.on("error",e.error),a.on("socket",function(i){function l(){i.off("connect",l),o(a)}i.readyState==="open"?o(a):i.on("connect",l)})}function mm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&(zt(t.trailers).forEach((r,i)=>{n.set(i,r)}),e.close()),a},throw(a){throw e.error(a),a}}}}}function bm(e,t,n,o,a,r,i){const l=new URL(n);if(l.origin!==t.authority){const s=`cannot make a request to ${l.origin}: the http2 session is connected to ${t.authority}`;e.error(new S(s,f.Internal));return}t.request(o,l.pathname+l.search,a,{}).then(s=>{e.onError(c=>{if(s.closed)return;const m=c.code==f.Canceled?M.CANCEL:M.INTERNAL_ERROR;return new Promise(p=>s.close(m,p))}),s.on("error",function(m){s.writableEnded&&Mn(m).map(Kt).some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END")||e.error(m)}),s.on("close",function(){const m=qd(s.rstCode);m&&e.error(m)}),i(s)},s=>{e.error(s)})}function hm(e){const t=new Headers;return e.on("trailers",n=>{zt(n).forEach((o,a)=>{t.set(a,o)})}),t}function gm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&e.close(),n?.notifyResponseByteRead(t),a},throw(a){throw e.error(a),a}}}}}async function Mr(e,t,n){if(e.body===void 0){await new Promise(a=>t.end(a));return}const o=e.body[Symbol.asyncIterator]();return new Promise(a=>{r();function r(){n.isClosed()||o.next().then(i=>{if(i.done===!0){t.end(a);return}t.write(i.value,"binary",l=>{if(l==null){r();return}o.throw!==void 0&&o.throw(xt(l)).catch(()=>{}),!(t.writableEnded&&Mn(l).map(Kt).some(s=>s.code=="ERR_STREAM_WRITE_AFTER_END"))&&n.error(l)})},i=>{n.error(i)})}})}function Or(e){let t,n=!1,o,a=[];const r={error(s){if(!n){n=!0,o=s instanceof S?s:xt(s),t?.(o);for(const c of a)c(o);i()}},close(){n||(n=!0,t&&t(new S("sentinel completed early",f.Internal)),i())},isClosed(){return n},onError(s){n?o!==void 0&&s(o):a.push(s)},race(s){let c;const m=new Promise((p,R)=>{c=p,t=R});return s.then(p=>{c?.(p)},p=>{t?.(p)}),n&&t?.(o??new S("sentinel completed early",f.Internal)),m}};function i(){e&&e.removeEventListener("abort",l),a=[],t=void 0}function l(){r.error(st(this))}return e&&(e.addEventListener("abort",l),e.aborted&&r.error(st(e))),r}function pm(e){var t,n,o,a;let r;if(e.httpVersion=="2"){let i;e.sessionManager?i=e.sessionManager:i=new Qr(e.baseUrl,{pingIntervalMs:e.pingIntervalMs,pingIdleConnection:e.pingIdleConnection,pingTimeoutMs:e.pingTimeoutMs,idleConnectionTimeoutMs:e.idleConnectionTimeoutMs},e.nodeOptions),r=ma({httpVersion:"2",sessionProvider:()=>i})}else r=ma({httpVersion:"1.1",nodeOptions:e.nodeOptions});return Object.assign(Object.assign(Object.assign({},e),{httpClient:r,useBinaryFormat:(t=e.useBinaryFormat)!==null&&t!==void 0?t:!0,interceptors:(n=e.interceptors)!==null&&n!==void 0?n:[],sendCompression:(o=e.sendCompression)!==null&&o!==void 0?o:null,acceptCompression:(a=e.acceptCompression)!==null&&a!==void 0?a:[am,rm]}),Vc(e.readMaxBytes,e.writeMaxBytes,e.compressMinBytes))}function Am(e){return $d(pm(e))}function Zm(e){return`cli/${e??"unknown"}`}var Rm=Zm("0.1.0-dev.36.1.f325b1d"),fm="/grpc";function Em(e){return`${e.replace(/\/+$/,"")}${fm}`}var Vm=e=>async t=>{const{token:n,lang:o}=zr();return t.header.set("X-Hagi-Client",Rm),n&&t.header.set("Authorization",`Bearer ${n}`),o&&t.header.set("Accept-Language",o),e(t)},Rt;function Se(){const e=Em(zr().baseUrl);return(!Rt||Rt.baseUrl!==e)&&(Rt={baseUrl:e,transport:Am({baseUrl:e,httpVersion:"1.1",useBinaryFormat:!0,interceptors:[Vm]})}),Rt.transport}var de=()=>Ne(Bu,Se()),He=()=>Ne(zu,Se()),Fe=()=>Ne(Ou,Se()),ba=()=>Ne($u,Se()),me=()=>Ne(hd,Se()),Nm=()=>Ne(pd,Se()),ve=()=>Ne(Yd,Se()),ha=()=>Ne(Fd,Se()),tt=()=>Ne(Hd,Se());async function y(e,t){return Md(e,await t)}function Gm(){return{listSessions:async e=>y(Ed,ve().listSessions({type:e.type,activeOnly:e.activeOnly,includeArchived:e.includeArchived,projectId:e.projectId,projectIds:e.projectIds??[]})),getSession:async e=>y(Rd,ve().getSession({sessionId:e})),createProposalSession:async e=>y(Zd,ve().openSession({body:T(Sd,e)})),createChatSession:async e=>y(Ad,ve().openChatSession({body:T(Wd,e)})),createHagiTaskSession:async e=>y(Gd,ve().startHagiTaskSession({body:T(Xd,e)})),listHagiTaskSchemas:async()=>y(_u,ba().listPresetTaskSchemas({})),getHagiTaskSchema:async e=>y(Pu,ba().getPresetTaskSchema({presetTaskId:e})),updateSession:async(e,t)=>y(fd,ve().saveSession({sessionId:e,body:T(vd,t)})),deleteSession:async(e,t)=>y(Vd,ve().deleteSession({sessionId:e,deleteFiles:t??!1})),sendMessage:async(e,t)=>y(Id,ha().postSessionMessage({sessionId:e,body:T(Bd,t)})),optimizeProposal:async(e,t)=>y(Ud,tt().optimizeSessionProposal({sessionId:e,body:T(Kd,t)})),generateProposal:async(e,t)=>y(wd,tt().generateProposal({sessionId:e,body:T(zd,t)})),executeProposal:async(e,t)=>y(kd,tt().executeProposal({sessionId:e,body:T(jd,t??{})})),archiveProposal:async(e,t)=>y(Jd,tt().archiveSession({sessionId:e,body:T(Ld,t??{})})),completeProposal:async e=>y(xd,tt().completeSession({sessionId:e})),submitAnnotations:async(e,t)=>y(yd,ha().submitSessionAnnotations({sessionId:e,body:T(Cd,t)})),listProjects:async()=>y(gd,Nm().getAggregatedData({forceRefresh:!1})),createProject:async e=>y(Zu,de().createProject({body:T(vu,e)})),updateProject:async(e,t)=>y(Ru,de().updateProject({id:e,body:T(Xu,t)})),deleteProject:async e=>{await de().deleteProject({id:e})},getMonoSpecsManagement:async e=>y(fu,de().getMonoSpecsManagement({projectId:e})),saveMonoSpecsManagement:async(e,t)=>y(Wu,de().updateMonoSpecsManagement({projectId:e,body:T(Iu,t)})),initializeMonoSpecsManagement:async e=>y(Gu,de().initializeMonoSpecs({projectId:e})),reloadMonoSpecsManagement:async e=>y(Eu,de().reloadMonoSpecs({projectId:e})),validateMonoSpecs:async e=>y(Su,de().validateMonoSpecsConfig({body:T(yu,e)})),cloneMonoSpecsRepositories:async(e,t)=>y(Vu,de().cloneMonoSpecsRepositories({projectId:e,body:T(Yu,t)})),removeMonoSpecsRepositoryCheckout:async(e,t,n)=>y(Nu,de().removeMonoSpecsRepositoryCheckout({projectId:e,path:t,force:n})),listPlans:async()=>y(Lu,Fe().listScheduledPlans({})),getPlan:async e=>y(ju,Fe().getScheduledPlan({id:e})),createPlan:async e=>y(Hu,Fe().createScheduledPlan({body:T(la,e)})),updatePlan:async(e,t)=>y(Tu,Fe().updateScheduledPlan({id:e,body:T(la,t)})),deletePlan:async e=>{await Fe().deleteScheduledPlan({id:e})},runPlan:async e=>y(Qu,Fe().runScheduledPlan({id:e})),startPlan:async e=>y(Mu,Fe().startScheduledPlan({id:e})),listVaults:async()=>y(Cu,He().listVaults({})),createVault:async e=>y(Fu,He().createVault({body:T(xu,e)})),updateVault:async(e,t)=>y(Uu,He().updateVault({id:e,body:T(Ku,t)})),deleteVault:async(e,t)=>y(wu,He().deleteVault({id:e,deleteLocalFiles:t??!1})),listVaultFiles:async(e,t)=>y(Ju,He().getVaultFiles({id:e,path:t})),previewVaultFile:async(e,t)=>y(ku,He().getVaultFilePreview({id:e,path:t})),archiveChat:async e=>y(Nd,ve().archiveChatSession({sessionId:e})),listLocalSkills:async()=>y(qu,me().getLocalSkills({})),uninstallLocalSkill:async e=>y(ed,me().uninstallLocalSkill({body:T(cd,e)})),setBuiltInSkillAvailability:async e=>y(td,me().setBuiltInSkillAvailability({body:T(ud,e)})),searchSkillGallery:async e=>y(nd,me().getSkillGallery({query:e})),getSkillGalleryDetail:async(e,t)=>y(od,me().getSkillGalleryDetail({id:e,source:t})),installGallerySkill:async e=>y(sd,me().installSkill({body:T(bd,e)})),listTrustedSkillProviders:async()=>y(ad,me().getTrustedSkillProviders({})),upsertTrustedSkillProvider:async e=>y(rd,me().upsertTrustedSkillProvider({body:T(dd,e)})),deleteTrustedSkillProvider:async e=>y(id,me().deleteTrustedSkillProvider({body:T(md,e)})),resetTrustedSkillProviders:async()=>y(ld,me().resetTrustedSkillProviders({}))}}function C(e){const t=e?.trim();return t||void 0}function F(e,t){const n=C(e);if(!n)throw new U(`${t} is required.`);return n}function gn(e){const t=e?.map(n=>C(n)).filter(Boolean);return t&&t.length>0?t:void 0}function Dr(e=process.env,t={stdout:n=>{process.stdout.write(n)},stderr:n=>{process.stderr.write(n)}}){return{api:Gm(),env:e,io:t}}function Wm(e){return e.option("--base-url <url>",'Backend API base URL. Overrides HAGI_API_BASE_URL and the "baseUrl" config file entry.').option("--token <token>","Bearer token for backend API calls. Overrides HAGI_API_TOKEN.").option("--lang <lang>","Accept-Language value for backend API calls. Overrides HAGI_API_LANG.")}function X(e){return e.option("--json","Emit deterministic JSON instead of human-readable text.")}function Y(e,t){const n=e.optsWithGlobals();return{api:t.api,env:t.env,io:t.io,outputJson:n.json===!0,runtime:pu({baseUrl:n.baseUrl,token:n.token,lang:n.lang},t.env)}}function Sm(e,t){X(e.command("archive").description("Archive a chat session through the dedicated chat archive endpoint.")).requiredOption("--session-id <id>","Chat session id to archive.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.archiveChat(r);if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message}));return}a.io.stdout(`Chat archived
35
35
  sessionId ${r}
36
36
  message ${i.message}
37
- `)})}var _r=(function(e){return e.INIT="Init",e.COMPLETED="Completed",e.ARCHIVED="Archived",e.DRAFTING="Drafting",e.EXECUTION_COMPLETED="ExecutionCompleted",e.OPTIMIZING="Optimizing",e.OPENSPECING="Openspecing",e.REVIEWING="Reviewing",e.EXECUTING="Executing",e.ARCHIVING="Archiving",e})({});function Pr(e){return e.replace(/\s+/g," ").trim()}function ne(e,t){const n=t.map(r=>e.map(i=>Pr(i.value(r)))),o=e.map((r,i)=>{const s=n.map(l=>l[i].length);return Math.max(r.header.length,...s)}),a=r=>r.map((i,s)=>i.padEnd(o[s])).join(" ").trimEnd();return[a(e.map(r=>r.header)),a(o.map(r=>"-".repeat(r))),...n.map(a)].join(`
37
+ `)})}var _r=(function(e){return e.INIT="Init",e.COMPLETED="Completed",e.ARCHIVED="Archived",e.DRAFTING="Drafting",e.EXECUTION_COMPLETED="ExecutionCompleted",e.OPTIMIZING="Optimizing",e.OPENSPECING="Openspecing",e.REVIEWING="Reviewing",e.EXECUTING="Executing",e.ARCHIVING="Archiving",e})({});function Pr(e){return e.replace(/\s+/g," ").trim()}function ne(e,t){const n=t.map(r=>e.map(i=>Pr(i.value(r)))),o=e.map((r,i)=>{const l=n.map(s=>s[i].length);return Math.max(r.header.length,...l)}),a=r=>r.map((i,l)=>i.padEnd(o[l])).join(" ").trimEnd();return[a(e.map(r=>r.header)),a(o.map(r=>"-".repeat(r))),...n.map(a)].join(`
38
38
  `)}function _(e){const t=e.filter(([,o])=>o!==void 0&&o!==""),n=Math.max(...t.map(([o])=>o.length));return`${t.map(([o,a])=>`${o.padEnd(n)} ${Pr(a??"")}`).join(`
39
39
  `)}
40
- `}function ga(e){return typeof e=="string"?e.trim():e?.value?.trim()??""}function Be(e){return{sessionId:ga(e.sessionId),title:e.title,type:e.type,status:e.status,projectId:ga(e.projectId),proposalName:e.proposalName??void 0,archived:e.status===_r.ARCHIVED,lastActiveAt:e.lastActiveAt??void 0,enableIndependentWorkspace:e.enableIndependentWorkspace,baseBranch:e.baseBranch??void 0,metadata:e.metadata??void 0,chatExecutorType:e.chatExecutorType??void 0}}function $r(e){return{sessions:e.sessions.map(Be)}}function qr(e,t){return t.length===0?`No ${e.toLowerCase()} found.
40
+ `}function ga(e){return typeof e=="string"?e.trim():e?.value?.trim()??""}function Ce(e){return{sessionId:ga(e.sessionId),title:e.title,type:e.type,status:e.status,projectId:ga(e.projectId),proposalName:e.proposalName??void 0,archived:e.status===_r.ARCHIVED,lastActiveAt:e.lastActiveAt??void 0,enableIndependentWorkspace:e.enableIndependentWorkspace,baseBranch:e.baseBranch??void 0,metadata:e.metadata??void 0,chatExecutorType:e.chatExecutorType??void 0}}function $r(e){return{sessions:e.sessions.map(Ce)}}function qr(e,t){return t.length===0?`No ${e.toLowerCase()} found.
41
41
  `:`${e} (${t.length})
42
42
  ${ne([{header:"Session ID",value:n=>n.sessionId},{header:"Title",value:n=>n.title},{header:"Status",value:n=>n.status},{header:"Project ID",value:n=>n.projectId},{header:"Archived",value:n=>n.archived?"yes":"no"}],t)}
43
43
  `}function ze(e,t=[]){return _([["sessionId",e.sessionId],["type",e.type],["title",e.title],["status",e.status],["projectId",e.projectId],["proposalName",e.proposalName],["independentWorkspace",String(e.enableIndependentWorkspace)],["baseBranch",e.baseBranch],["chatExecutorType",e.chatExecutorType],["metadata",e.metadata],...t])}function On(e,t,n,o=[]){return`${e}
44
- ${_([["sessionId",t],["message",n.message],...o])}`}var Lt=(function(e){return e.CLAUDE_CODE_CLI="ClaudeCodeCli",e.CODEX_CLI="CodexCli",e.GIT_HUB_COPILOT="GitHubCopilot",e.CODEBUDDY_CLI="CodebuddyCli",e.OPEN_CODE_CLI="OpenCodeCli",e.IFLOW_CLI="IFlowCli",e.HERMES_CLI="HermesCli",e.QODER_CLI="QoderCli",e.KIRO_CLI="KiroCli",e.KIMI_CLI="KimiCli",e.GEMINI_CLI="GeminiCli",e.DEEP_AGENTS_CLI="DeepAgentsCli",e})({});function vm(e,t){X(e.command("create").description("Create a normal chat session.")).requiredOption("--title <title>","Chat session title.").requiredOption("--project-id <id>","Owning project id.").option("--hero-id <id>","Optional bound hero id.").addOption(new Ye("--executor-type <type>","Optional executor override.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=Be(await a.api.createChatSession({title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),heroId:B(o.heroId),executorType:o.executorType}));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Chat session created
44
+ ${_([["sessionId",t],["message",n.message],...o])}`}var Lt=(function(e){return e.CLAUDE_CODE_CLI="ClaudeCodeCli",e.CODEX_CLI="CodexCli",e.GIT_HUB_COPILOT="GitHubCopilot",e.CODEBUDDY_CLI="CodebuddyCli",e.OPEN_CODE_CLI="OpenCodeCli",e.IFLOW_CLI="IFlowCli",e.HERMES_CLI="HermesCli",e.QODER_CLI="QoderCli",e.KIRO_CLI="KiroCli",e.KIMI_CLI="KimiCli",e.GEMINI_CLI="GeminiCli",e.DEEP_AGENTS_CLI="DeepAgentsCli",e})({});function vm(e,t){X(e.command("create").description("Create a normal chat session.")).requiredOption("--title <title>","Chat session title.").requiredOption("--project-id <id>","Owning project id.").option("--hero-id <id>","Optional bound hero id.").addOption(new Ye("--executor-type <type>","Optional executor override.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=Ce(await a.api.createChatSession({title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),heroId:C(o.heroId),executorType:o.executorType}));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Chat session created
45
45
  ${ze(r)}`)})}function Xm(e,t){X(e.command("delete").description("Delete a chat session.")).requiredOption("--session-id <id>","Chat session id to delete.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.deleteSession(r,!1);if(a.outputJson){a.io.stdout(I({sessionId:r,deleted:!0,message:i.message}));return}a.io.stdout(`Chat deleted
46
46
  sessionId ${r}
47
47
  message ${i.message}
48
- `)})}var Dn=(function(e){return e.CHAT="Chat",e.PROPOSAL="Proposal",e})({});function Ym(e,t){X(e.command("list").description("List normal chat sessions.")).action(async function(o){if(o.projectId&&o.projectIds?.length)throw new w("Use either --project-id or --project-ids, not both.");const a=Y(this,t),r=$r(await a.api.listSessions({type:Dn.CHAT,projectId:B(o.projectId),projectIds:gn(o.projectIds),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(qr("Chat sessions",r.sessions))}).option("--project-id <id>","Filter chat sessions by a single project id.").option("--project-ids <ids...>","Filter chat sessions by multiple project ids.").option("--active-only","Only return non-archived chat sessions.").option("--include-archived","Include archived chat sessions.")}var _n=(function(e){return e.READONLY="Readonly",e.EDIT="Edit",e})({});function Im(e,t){X(e.command("send").description("Send a follow-up message to a chat session.")).requiredOption("--session-id <id>","Chat session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("Chat message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function ym(e,t){const n=e.command("chat").description("Manage normal chat sessions.");Ym(n,t),vm(n,t),Sm(n,t),Xm(n,t),Im(n,t)}async function Cm(){const e=[];for await(const t of process.stdin)e.push(typeof t=="string"?Buffer.from(t):t);return Buffer.concat(e).toString("utf8")}async function jt(e){const t=e.trim();if(!t)throw new w("Provide --input <file> or --input - for stdin.");const n=t==="-"?await Cm():await(0,Xi.readFile)(t,"utf8");try{return JSON.parse(n)}catch(o){throw new w(`Invalid JSON input from ${t}: ${o instanceof Error?o.message:String(o)}`)}}var Bm=["first","random"];async function Fm(e){let t;try{t=await jt(e)}catch(n){throw n instanceof w?n:new w(`Cannot read HagiTask input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new w(`HagiTask input from ${e} must be a JSON object.`);return t}function wm(e,t,n){if(!t&&!n)throw new w("Provide --task-id or --prompt-id.");if(e.input!==void 0&&!t)throw new w("--input requires --task-id.");if(e.targetBranchName&&e.targetBranchMode!=="new-custom")throw new w("--target-branch-name requires --target-branch-mode new-custom.");if(e.targetBranchMode==="new-custom"&&!B(e.targetBranchName))throw new w("--target-branch-name is required when --target-branch-mode is new-custom.");const o=B(e.heroSelectionMode);if(o&&!Bm.includes(o))throw new w("--hero-selection-mode must be first or random.")}function Um(e,t){X(e.command("create").description("Create a HagiTask session. Read the task schema first with `hagitask schema --task-id <id>`, then pass the input JSON with --input.")).requiredOption("--title <title>","HagiTask session title.").requiredOption("--project-id <id>","Owning project id.").option("--task-id <id>","HagiTask id from `hagitask list`. Required with --input.").option("--prompt-id <id>","Prompt template id, for example auto-compose-commit.en-US. Used when there is no --task-id.").option("--input <file|->","Structured task input: a JSON object file, or - to read it from stdin. Needs --task-id.").option("--message <text>","Optional message that overrides the prompt template.").option("--locale <locale>","Locale for the HagiTask prompt, for example en-US.").option("--repository-path <path>","Optional MonoSpecs sub-repository path, for example repos/cli.").option("--target-type <type>","Explicit target type: repository or vault.").option("--vault-id <id>","Registered vault id for vault-targeted execution.").option("--output-vault-id <id>","Output vault id for research-investigation tasks.").option("--reference-vault-id <ids...>","Reference vault ids the session may read.").option("--editable-vault-id <ids...>","Vault ids the session may edit.").option("--hero-id <id>","Preferred hero id. Takes precedence over --hero-selection-mode.").option("--hero-selection-mode <mode>","Hero choice when --hero-id is not given: first (default) or random.").option("--need-push","Request a push after commit creation when supported.").option("--pull-rebase","Run git pull --rebase before pushing, when push is requested.").option("--target-branch-mode <mode>","Optional target branch mode, for example current or new-custom.").option("--target-branch-name <name>","Custom target branch name. Requires --target-branch-mode new-custom.").option("--script-key <key>","Optional stable scenario script key.").action(async function(o){const a=B(o.taskId),r=B(o.promptId);wm(o,a,r);const i=o.input!==void 0?await Fm(F(o.input,"--input")):void 0,s=Y(this,t),l={title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),promptId:r,presetTaskId:a,presetTaskLocale:B(o.locale),presetTaskInput:i,message:B(o.message),repositoryPath:B(o.repositoryPath),targetType:B(o.targetType),vaultId:B(o.vaultId),outputVaultId:B(o.outputVaultId),referenceVaultIds:gn(o.referenceVaultId),editableVaultIds:gn(o.editableVaultId),heroId:B(o.heroId),heroSelectionMode:B(o.heroSelectionMode),needPush:o.needPush?!0:void 0,pullRebaseBeforePush:o.pullRebase?!0:void 0,targetBranchMode:B(o.targetBranchMode),targetBranchName:B(o.targetBranchName),scriptKey:B(o.scriptKey)},c=Be(await s.api.createHagiTaskSession(l));if(s.outputJson){s.io.stdout(I({session:c,presetTaskId:l.presetTaskId??null,promptId:l.promptId??null,requested:l}));return}s.io.stdout(`HagiTask session created
49
- ${ze(c,[["presetTaskId",l.presetTaskId??void 0],["presetTaskLocale",l.presetTaskLocale??void 0],["promptId",l.promptId??void 0],["repositoryPath",l.repositoryPath??void 0],["targetBranchMode",l.targetBranchMode??void 0],["targetBranchName",l.targetBranchName??void 0],["scriptKey",l.scriptKey??void 0],["heroId",l.heroId??void 0],["heroSelectionMode",l.heroSelectionMode??void 0]])}`)})}var j="-";function pa(e){return e?"yes":"no"}function Aa(e){return e&&e.length>0?e.join(", "):j}function It(e){if(Array.isArray(e))return e.map(t=>It(t));if(e&&typeof e=="object"){const t=e;return Object.fromEntries(Object.keys(t).sort().map(n=>[n,It(t[n])]))}return e}function ei(e){return[...e].sort((t,n)=>{const o=t.id??"",a=n.id??"";return o<a?-1:o>a?1:0})}function Jm(e){return It({tasks:ei(e)})}function km(e){if(e.length===0)return`No HagiTask is available.
48
+ `)})}var Dn=(function(e){return e.CHAT="Chat",e.PROPOSAL="Proposal",e})({});function Ym(e,t){X(e.command("list").description("List normal chat sessions.")).action(async function(o){if(o.projectId&&o.projectIds?.length)throw new U("Use either --project-id or --project-ids, not both.");const a=Y(this,t),r=$r(await a.api.listSessions({type:Dn.CHAT,projectId:C(o.projectId),projectIds:gn(o.projectIds),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(qr("Chat sessions",r.sessions))}).option("--project-id <id>","Filter chat sessions by a single project id.").option("--project-ids <ids...>","Filter chat sessions by multiple project ids.").option("--active-only","Only return non-archived chat sessions.").option("--include-archived","Include archived chat sessions.")}var _n=(function(e){return e.READONLY="Readonly",e.EDIT="Edit",e})({});function Im(e,t){X(e.command("send").description("Send a follow-up message to a chat session.")).requiredOption("--session-id <id>","Chat session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("Chat message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function ym(e,t){const n=e.command("chat").description("Manage normal chat sessions.");Ym(n,t),vm(n,t),Sm(n,t),Xm(n,t),Im(n,t)}async function Bm(){const e=[];for await(const t of process.stdin)e.push(typeof t=="string"?Buffer.from(t):t);return Buffer.concat(e).toString("utf8")}async function jt(e){const t=e.trim();if(!t)throw new U("Provide --input <file> or --input - for stdin.");const n=t==="-"?await Bm():await(0,Xi.readFile)(t,"utf8");try{return JSON.parse(n)}catch(o){throw new U(`Invalid JSON input from ${t}: ${o instanceof Error?o.message:String(o)}`)}}var Cm=["first","random"];async function Fm(e){let t;try{t=await jt(e)}catch(n){throw n instanceof U?n:new U(`Cannot read HagiTask input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new U(`HagiTask input from ${e} must be a JSON object.`);return t}function Um(e,t,n){if(!t&&!n)throw new U("Provide --task-id or --prompt-id.");if(e.input!==void 0&&!t)throw new U("--input requires --task-id.");if(e.targetBranchName&&e.targetBranchMode!=="new-custom")throw new U("--target-branch-name requires --target-branch-mode new-custom.");if(e.targetBranchMode==="new-custom"&&!C(e.targetBranchName))throw new U("--target-branch-name is required when --target-branch-mode is new-custom.");const o=C(e.heroSelectionMode);if(o&&!Cm.includes(o))throw new U("--hero-selection-mode must be first or random.")}function wm(e,t){X(e.command("create").description("Create a HagiTask session. Read the task schema first with `hagitask schema --task-id <id>`, then pass the input JSON with --input.")).requiredOption("--title <title>","HagiTask session title.").requiredOption("--project-id <id>","Owning project id.").option("--task-id <id>","HagiTask id from `hagitask list`. Required with --input.").option("--prompt-id <id>","Prompt template id, for example auto-compose-commit.en-US. Used when there is no --task-id.").option("--input <file|->","Structured task input: a JSON object file, or - to read it from stdin. Needs --task-id.").option("--message <text>","Optional message that overrides the prompt template.").option("--locale <locale>","Locale for the HagiTask prompt, for example en-US.").option("--repository-path <path>","Optional MonoSpecs sub-repository path, for example repos/cli.").option("--target-type <type>","Explicit target type: repository or vault.").option("--vault-id <id>","Registered vault id for vault-targeted execution.").option("--output-vault-id <id>","Output vault id for research-investigation tasks.").option("--reference-vault-id <ids...>","Reference vault ids the session may read.").option("--editable-vault-id <ids...>","Vault ids the session may edit.").option("--hero-id <id>","Preferred hero id. Takes precedence over --hero-selection-mode.").option("--hero-selection-mode <mode>","Hero choice when --hero-id is not given: first (default) or random.").option("--need-push","Request a push after commit creation when supported.").option("--pull-rebase","Run git pull --rebase before pushing, when push is requested.").option("--target-branch-mode <mode>","Optional target branch mode, for example current or new-custom.").option("--target-branch-name <name>","Custom target branch name. Requires --target-branch-mode new-custom.").option("--script-key <key>","Optional stable scenario script key.").action(async function(o){const a=C(o.taskId),r=C(o.promptId);Um(o,a,r);const i=o.input!==void 0?await Fm(F(o.input,"--input")):void 0,l=Y(this,t),s={title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),promptId:r,presetTaskId:a,presetTaskLocale:C(o.locale),presetTaskInput:i,message:C(o.message),repositoryPath:C(o.repositoryPath),targetType:C(o.targetType),vaultId:C(o.vaultId),outputVaultId:C(o.outputVaultId),referenceVaultIds:gn(o.referenceVaultId),editableVaultIds:gn(o.editableVaultId),heroId:C(o.heroId),heroSelectionMode:C(o.heroSelectionMode),needPush:o.needPush?!0:void 0,pullRebaseBeforePush:o.pullRebase?!0:void 0,targetBranchMode:C(o.targetBranchMode),targetBranchName:C(o.targetBranchName),scriptKey:C(o.scriptKey)},c=Ce(await l.api.createHagiTaskSession(s));if(l.outputJson){l.io.stdout(I({session:c,presetTaskId:s.presetTaskId??null,promptId:s.promptId??null,requested:s}));return}l.io.stdout(`HagiTask session created
49
+ ${ze(c,[["presetTaskId",s.presetTaskId??void 0],["presetTaskLocale",s.presetTaskLocale??void 0],["promptId",s.promptId??void 0],["repositoryPath",s.repositoryPath??void 0],["targetBranchMode",s.targetBranchMode??void 0],["targetBranchName",s.targetBranchName??void 0],["scriptKey",s.scriptKey??void 0],["heroId",s.heroId??void 0],["heroSelectionMode",s.heroSelectionMode??void 0]])}`)})}var j="-";function pa(e){return e?"yes":"no"}function Aa(e){return e&&e.length>0?e.join(", "):j}function It(e){if(Array.isArray(e))return e.map(t=>It(t));if(e&&typeof e=="object"){const t=e;return Object.fromEntries(Object.keys(t).sort().map(n=>[n,It(t[n])]))}return e}function ei(e){return[...e].sort((t,n)=>{const o=t.id??"",a=n.id??"";return o<a?-1:o>a?1:0})}function Jm(e){return It({tasks:ei(e)})}function km(e){if(e.length===0)return`No HagiTask is available.
50
50
  `;const t=ei(e);return`HagiTasks (${t.length})
51
51
  ${ne([{header:"ID",value:n=>n.id??j},{header:"Version",value:n=>n.version??j},{header:"Title",value:n=>n.title??j},{header:"Description",value:n=>n.description??j}],t)}
52
- `}function Km(e){const t=[];e.origin==="derived"&&t.push(e.producer?`derived by ${e.producer}`:"derived");for(const n of e.aliases??[])n.key&&t.push(`alias ${n.key} (deprecated)`);return e.options&&e.options.length>0&&t.push(`options: ${e.options.map(n=>n.value??"").join(", ")}`),t.length>0?t.join("; "):j}function xm(e){const t=e.id??j,n=[];n.push(_([["id",e.id??void 0],["title",e.title??void 0],["version",e.version??void 0],["locale",e.locale??void 0],["description",e.description??void 0]]));const o=e.scope?.targets??[];n.push(`Target scope (default ${e.scope?.defaultTargetType??j})${o.length===0?`
52
+ `}function xm(e){const t=[];e.origin==="derived"&&t.push(e.producer?`derived by ${e.producer}`:"derived");for(const n of e.aliases??[])n.key&&t.push(`alias ${n.key} (deprecated)`);return e.options&&e.options.length>0&&t.push(`options: ${e.options.map(n=>n.value??"").join(", ")}`),t.length>0?t.join("; "):j}function Km(e){const t=e.id??j,n=[];n.push(_([["id",e.id??void 0],["title",e.title??void 0],["version",e.version??void 0],["locale",e.locale??void 0],["description",e.description??void 0]]));const o=e.scope?.targets??[];n.push(`Target scope (default ${e.scope?.defaultTargetType??j})${o.length===0?`
53
53
  None.
54
54
  `:`
55
55
  ${ne([{header:"ID",value:c=>c.id??j},{header:"Kind",value:c=>c.kind??j},{header:"Selection",value:c=>c.selectionMode??j},{header:"Required",value:c=>pa(c.required)},{header:"Access",value:c=>Aa(c.allowedAccessTypes)},{header:"Input key",value:c=>c.requestKey??j},{header:"Scope key",value:c=>c.scopeRequestKey??j}],o)}
@@ -60,105 +60,105 @@ ${ne([{header:"ID",value:c=>c.id??j},{header:"Group",value:c=>c.groupId??j},{hea
60
60
  `}`);const r=e.parameters??[];n.push(`Parameters${r.length===0?`
61
61
  None.
62
62
  `:`
63
- ${ne([{header:"Key",value:c=>c.key??j},{header:"Required",value:c=>pa(c.required)},{header:"Origin",value:c=>c.origin??j},{header:"Type",value:c=>c.valueType??j},{header:"Label",value:c=>c.label??j},{header:"Notes",value:Km}],r)}
63
+ ${ne([{header:"Key",value:c=>c.key??j},{header:"Required",value:c=>pa(c.required)},{header:"Origin",value:c=>c.origin??j},{header:"Type",value:c=>c.valueType??j},{header:"Label",value:c=>c.label??j},{header:"Notes",value:xm}],r)}
64
64
  `}`);const i=e.requirements??[];n.push(`Requirements${i.length===0?`
65
65
  None.
66
66
  `:`
67
67
  ${i.map(c=>`- ${c.type??j}: ${c.name??Aa(c.names)}`).join(`
68
68
  `)}
69
- `}`);const s=e.scenes?.registrations??[];n.push(`Scenes${s.length===0?`
69
+ `}`);const l=e.scenes?.registrations??[];n.push(`Scenes${l.length===0?`
70
70
  None.
71
71
  `:`
72
- ${s.map(c=>`- ${c.sceneKey??j}: ${c.title??j}`).join(`
72
+ ${l.map(c=>`- ${c.sceneKey??j}: ${c.title??j}`).join(`
73
73
  `)}
74
- `}`);const l=e.request;return n.push(_([["endpoint",l?`${l.method??j} ${l.path??j}`:void 0],["presetTaskIdField",l?.presetTaskIdField??void 0],["localeField",l?.localeField??void 0],["requiredFields",l?.requiredFields&&l.requiredFields.length>0?l.requiredFields.join(", "):void 0]])),n.push(`Example
74
+ `}`);const s=e.request;return n.push(_([["endpoint",s?`${s.method??j} ${s.path??j}`:void 0],["presetTaskIdField",s?.presetTaskIdField??void 0],["localeField",s?.localeField??void 0],["requiredFields",s?.requiredFields&&s.requiredFields.length>0?s.requiredFields.join(", "):void 0]])),n.push(`Example
75
75
  hagi hagitask schema --task-id ${t} --json # full input JSON Schema and example body
76
76
  hagi hagitask create --title "<title>" --project-id <project-id> --task-id ${t} --input input.json
77
77
  `),n.join(`
78
- `)}function zm(e){return It(e)}function Lm(e,t){X(e.command("list").description("List the active HagiTasks with their id, version, title and description.")).action(async function(){const o=Y(this,t),a=await o.api.listHagiTaskSchemas();if(o.outputJson){o.io.stdout(I(Jm(a)));return}o.io.stdout(km(a))})}function jm(e,t){const n=e&&typeof e=="object"?e[t]:void 0;return typeof n=="string"&&n.trim()?n.trim():void 0}function Tm(e){const t=e&&typeof e=="object"?e.diagnostics:void 0;return Array.isArray(t)?t:[]}async function Hm(e,t){try{return await e.getHagiTaskSchema(t)}catch(n){const o=Jr(n);if(o?.status===404){const a=Tm(o.body);if(a.length>0){const r=a.map(i=>{const s=i.path?` (${i.path})`:"";return` - ${i.code??"diagnostic"}: ${i.message??""}${s}`});throw new xe(404,[jm(o.body,"error")??`HagiTask ${t} is not available.`,...r].join(`
79
- `),o.body)}}throw n}}function Qm(e,t){X(e.command("schema").description("Show the creation schema of one HagiTask: scope, commands, parameters, requirements, scenes and an example. --json prints the full schema, including the input JSON Schema.")).requiredOption("--task-id <id>","HagiTask id to read.").action(async function(o){const a=F(o.taskId,"--task-id"),r=Y(this,t),i=await Hm(r.api,a);if(r.outputJson){r.io.stdout(I(zm(i)));return}r.io.stdout(xm(i))})}function Mm(e,t){X(e.command("send").description("Send a follow-up message to a HagiTask session.")).requiredOption("--session-id <id>","HagiTask session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("HagiTask message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function Om(e,t){const n=e.command("hagitask").description("Manage HagiTask sessions: list tasks, read a task schema, create a session from it, and send follow-up messages.");Lm(n,t),Qm(n,t),Um(n,t),Mm(n,t)}function le(e){const t=e?.trim();return t||void 0}function ti(e){if(!e)return"";const t=le(e.mode);if(t==="once")return["once",le(e.runAt)].filter(Boolean).join(" ");const n=le(e.repeat?.rule)??t??"";return[n,n==="weekly"?(e.repeat?.weekdays??[]).map(o=>o.trim().slice(0,3).toLowerCase()).join(","):void 0,le(e.timeOfDay),le(e.timeZone)].filter(Boolean).join(" ")}function we(e){return{id:le(e.id)??"",type:le(e.type)??"",name:le(e.name)??"",enabled:e.enabled===!0,state:le(e.state)??"",nextRunAt:le(e.nextRunAt)??null,schedule:e.schedule,agentPool:e.agentPool,payload:e.payload}}function Dm(e){return{plans:e.map(we)}}function _m(e){return e.length===0?`No scheduled plans found.
78
+ `)}function zm(e){return It(e)}function Lm(e,t){X(e.command("list").description("List the active HagiTasks with their id, version, title and description.")).action(async function(){const o=Y(this,t),a=await o.api.listHagiTaskSchemas();if(o.outputJson){o.io.stdout(I(Jm(a)));return}o.io.stdout(km(a))})}function jm(e,t){const n=e&&typeof e=="object"?e[t]:void 0;return typeof n=="string"&&n.trim()?n.trim():void 0}function Hm(e){const t=e&&typeof e=="object"?e.diagnostics:void 0;return Array.isArray(t)?t:[]}async function Tm(e,t){try{return await e.getHagiTaskSchema(t)}catch(n){const o=Jr(n);if(o?.status===404){const a=Hm(o.body);if(a.length>0){const r=a.map(i=>{const l=i.path?` (${i.path})`:"";return` - ${i.code??"diagnostic"}: ${i.message??""}${l}`});throw new Ke(404,[jm(o.body,"error")??`HagiTask ${t} is not available.`,...r].join(`
79
+ `),o.body)}}throw n}}function Qm(e,t){X(e.command("schema").description("Show the creation schema of one HagiTask: scope, commands, parameters, requirements, scenes and an example. --json prints the full schema, including the input JSON Schema.")).requiredOption("--task-id <id>","HagiTask id to read.").action(async function(o){const a=F(o.taskId,"--task-id"),r=Y(this,t),i=await Tm(r.api,a);if(r.outputJson){r.io.stdout(I(zm(i)));return}r.io.stdout(Km(i))})}function Mm(e,t){X(e.command("send").description("Send a follow-up message to a HagiTask session.")).requiredOption("--session-id <id>","HagiTask session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("HagiTask message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function Om(e,t){const n=e.command("hagitask").description("Manage HagiTask sessions: list tasks, read a task schema, create a session from it, and send follow-up messages.");Lm(n,t),Qm(n,t),wm(n,t),Mm(n,t)}function se(e){const t=e?.trim();return t||void 0}function ti(e){if(!e)return"";const t=se(e.mode);if(t==="once")return["once",se(e.runAt)].filter(Boolean).join(" ");const n=se(e.repeat?.rule)??t??"";return[n,n==="weekly"?(e.repeat?.weekdays??[]).map(o=>o.trim().slice(0,3).toLowerCase()).join(","):void 0,se(e.timeOfDay),se(e.timeZone)].filter(Boolean).join(" ")}function Ue(e){return{id:se(e.id)??"",type:se(e.type)??"",name:se(e.name)??"",enabled:e.enabled===!0,state:se(e.state)??"",nextRunAt:se(e.nextRunAt)??null,schedule:e.schedule,agentPool:e.agentPool,payload:e.payload}}function Dm(e){return{plans:e.map(Ue)}}function _m(e){return e.length===0?`No scheduled plans found.
80
80
  `:`Plans (${e.length})
81
81
  ${ne([{header:"ID",value:t=>t.id},{header:"Type",value:t=>t.type},{header:"Name",value:t=>t.name},{header:"Enabled",value:t=>t.enabled?"yes":"no"},{header:"State",value:t=>t.state},{header:"Next Run",value:t=>t.nextRunAt??"-"},{header:"Schedule",value:t=>ti(t.schedule)}],e)}
82
- `}function bt(e){return _([["id",e.id],["type",e.type],["name",e.name],["enabled",e.enabled?"yes":"no"],["state",e.state],["nextRun",e.nextRunAt??"-"],["schedule",ti(e.schedule)]])}function Pm(e){return{planId:e,deleted:!0}}function $m(e){return`Plan deleted
83
- ${_([["planId",e.planId],["deleted",String(e.deleted)]])}`}function qm(e){return{planId:le(e.planId)??"",accepted:!0}}function eh(e){return`Plan run accepted
84
- ${_([["planId",e.planId],["accepted",String(e.accepted)]])}`}var th=["id","createdAt","updatedAt","state","nextRunAt"];async function ni(e){let t;try{t=await jt(e)}catch(n){throw n instanceof w?n:new w(`Cannot read plan input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new w(`Plan input from ${e} must be a JSON object.`);return t}function yt(e){const t={...e};for(const n of th)delete t[n];return t}function nh(e){return{strategy:"random",agents:[{heroId:e}]}}function oi(e){return{...e.name!==void 0?{name:e.name}:{},...e.heroId!==void 0?{agentPool:nh(e.heroId)}:{},...e.enabled!==void 0?{enabled:e.enabled}:{}}}function ai(e,t){return{...yt(e),...yt(t)}}function oh(e,t){X(e.command("create").description("Create a scheduled plan from a JSON document. Plans are enabled unless --disabled or the document says otherwise.")).requiredOption("--input <file|->","Plan JSON file path, or - to read from stdin.").option("--name <name>","Plan name. Overrides the document name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the document agent pool.").option("--disabled","Create the plan disabled. Overrides the document enabled value.").action(async function(o){const a=Y(this,t),r=yt(await ni(o.input)),i=we(await a.api.createPlan({enabled:!0,...r,...oi({name:B(o.name),heroId:B(o.heroId),enabled:o.disabled?!1:void 0})}));if(a.outputJson){a.io.stdout(I({plan:i}));return}a.io.stdout(`Plan created
85
- ${bt(i)}`)})}function ah(e,t){X(e.command("delete").description("Delete a scheduled plan by id.")).requiredOption("--id <id>","Plan id to delete.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id");await a.api.deletePlan(r);const i=Pm(r);if(a.outputJson){a.io.stdout(I(i));return}a.io.stdout($m(i))})}async function ri(e,t,n){const o=await e.api.getPlan(t);return we(o).enabled===n?{view:we(o),changed:!1}:{view:we(await e.api.updatePlan(t,ai(o,{enabled:n}))),changed:!0}}function rh(e,t){X(e.command("disable").description("Disable a scheduled plan. Nothing is sent when it is already disabled.")).requiredOption("--id <id>","Plan id to disable.").action(async function(o){const a=Y(this,t),{view:r,changed:i}=await ri(a,F(o.id,"--id"),!1);if(a.outputJson){a.io.stdout(I({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan disabled":"Plan was already disabled"}
86
- ${bt(r)}`)})}function ih(e,t){X(e.command("enable").description("Enable a scheduled plan. Nothing is sent when it is already enabled.")).requiredOption("--id <id>","Plan id to enable.").action(async function(o){const a=Y(this,t),{view:r,changed:i}=await ri(a,F(o.id,"--id"),!0);if(a.outputJson){a.io.stdout(I({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan enabled":"Plan was already enabled"}
87
- ${bt(r)}`)})}function sh(e,t){X(e.command("get").description("Show one scheduled plan, including its schedule, agent pool and payload in --json mode.")).requiredOption("--id <id>","Plan id to read.").action(async function(o){const a=Y(this,t),r=we(await a.api.getPlan(F(o.id,"--id")));if(a.outputJson){a.io.stdout(I({plan:r}));return}a.io.stdout(bt(r))})}function lh(e,t){X(e.command("list").description("List scheduled plans with their state, next run time and schedule.")).action(async function(){const o=Y(this,t),a=Dm(await o.api.listPlans());if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(_m(a.plans))})}function ch(e,t){X(e.command("run").description("Run a scheduled plan now from its stored inputs. The schedule is not changed.")).requiredOption("--id <id>","Plan id to run.").option("--background","Start the run and print the accepted plan id without waiting for the session.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id");if(o.background){const s=qm(await a.api.startPlan(r));if(a.outputJson){a.io.stdout(I(s));return}a.io.stdout(eh(s));return}const i=Be(await a.api.runPlan(r));if(a.outputJson){a.io.stdout(I({session:i}));return}a.io.stdout(`Plan run created a session
88
- ${ze(i)}`)})}function uh(e,t){X(e.command("update").description("Update a scheduled plan. The current plan is read first and only the given fields change.")).requiredOption("--id <id>","Plan id to update.").option("--input <file|->","JSON document whose top-level fields replace the same fields of the plan.").option("--name <name>","Updated plan name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the agent pool.").option("--enabled","Enable the plan.").option("--disabled","Disable the plan.").action(async function(o){const a=F(o.id,"--id"),r=B(o.input),i=B(o.name),s=B(o.heroId);if(o.enabled&&o.disabled)throw new w("Pass either --enabled or --disabled, not both.");const l=o.enabled?!0:o.disabled?!1:void 0;if(!r&&!i&&!s&&l===void 0)throw new w("Provide at least one change: --input, --name, --enabled, --disabled, or --hero-id.");const c=r?yt(await ni(r)):{},m=Y(this,t),p=await m.api.getPlan(a),f=we(await m.api.updatePlan(a,ai(p,{...c,...oi({name:i,heroId:s,enabled:l})})));if(m.outputJson){m.io.stdout(I({plan:f}));return}m.io.stdout(`Plan updated
89
- ${bt(f)}`)})}function dh(e,t){const n=e.command("plan").description("Manage scheduled plans: saved proposal or HagiTask inputs that run on a schedule.");lh(n,t),sh(n,t),oh(n,t),uh(n,t),ih(n,t),rh(n,t),ah(n,t),ch(n,t)}function re(e){const t=e?.trim();return t||void 0}function Pn(e){return{id:re(e.id)??"",name:re(e.name)??"",path:re(e.path)??"",description:re(e.description),isMonoSpecs:e.isMonoSpecs===!0,monoSpecsVersion:re(e.monoSpecsVersion),monoSpecsRepoDirectory:re(e.monoSpecsRepoDirectory),monoSpecsCommitWhenArchive:typeof e.monoSpecsCommitWhenArchive=="boolean"?e.monoSpecsCommitWhenArchive:void 0,hasError:"hasError"in e?e.hasError===!0:!1,error:"error"in e?re(e.error):void 0}}function ii(e){return{projects:(e??[]).map(Pn)}}function mh(e){return e.length===0?`No projects found.
82
+ `}function ht(e){return _([["id",e.id],["type",e.type],["name",e.name],["enabled",e.enabled?"yes":"no"],["state",e.state],["nextRun",e.nextRunAt??"-"],["schedule",ti(e.schedule)]])}function Pm(e){return{planId:e,deleted:!0}}function $m(e){return`Plan deleted
83
+ ${_([["planId",e.planId],["deleted",String(e.deleted)]])}`}function qm(e){return{planId:se(e.planId)??"",accepted:!0}}function eb(e){return`Plan run accepted
84
+ ${_([["planId",e.planId],["accepted",String(e.accepted)]])}`}var tb=["id","createdAt","updatedAt","state","nextRunAt"];async function ni(e){let t;try{t=await jt(e)}catch(n){throw n instanceof U?n:new U(`Cannot read plan input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new U(`Plan input from ${e} must be a JSON object.`);return t}function yt(e){const t={...e};for(const n of tb)delete t[n];return t}function nb(e){return{strategy:"random",agents:[{heroId:e}]}}function oi(e){return{...e.name!==void 0?{name:e.name}:{},...e.heroId!==void 0?{agentPool:nb(e.heroId)}:{},...e.enabled!==void 0?{enabled:e.enabled}:{}}}function ai(e,t){return{...yt(e),...yt(t)}}function ob(e,t){X(e.command("create").description("Create a scheduled plan from a JSON document. Plans are enabled unless --disabled or the document says otherwise.")).requiredOption("--input <file|->","Plan JSON file path, or - to read from stdin.").option("--name <name>","Plan name. Overrides the document name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the document agent pool.").option("--disabled","Create the plan disabled. Overrides the document enabled value.").action(async function(o){const a=Y(this,t),r=yt(await ni(o.input)),i=Ue(await a.api.createPlan({enabled:!0,...r,...oi({name:C(o.name),heroId:C(o.heroId),enabled:o.disabled?!1:void 0})}));if(a.outputJson){a.io.stdout(I({plan:i}));return}a.io.stdout(`Plan created
85
+ ${ht(i)}`)})}function ab(e,t){X(e.command("delete").description("Delete a scheduled plan by id.")).requiredOption("--id <id>","Plan id to delete.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id");await a.api.deletePlan(r);const i=Pm(r);if(a.outputJson){a.io.stdout(I(i));return}a.io.stdout($m(i))})}async function ri(e,t,n){const o=await e.api.getPlan(t);return Ue(o).enabled===n?{view:Ue(o),changed:!1}:{view:Ue(await e.api.updatePlan(t,ai(o,{enabled:n}))),changed:!0}}function rb(e,t){X(e.command("disable").description("Disable a scheduled plan. Nothing is sent when it is already disabled.")).requiredOption("--id <id>","Plan id to disable.").action(async function(o){const a=Y(this,t),{view:r,changed:i}=await ri(a,F(o.id,"--id"),!1);if(a.outputJson){a.io.stdout(I({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan disabled":"Plan was already disabled"}
86
+ ${ht(r)}`)})}function ib(e,t){X(e.command("enable").description("Enable a scheduled plan. Nothing is sent when it is already enabled.")).requiredOption("--id <id>","Plan id to enable.").action(async function(o){const a=Y(this,t),{view:r,changed:i}=await ri(a,F(o.id,"--id"),!0);if(a.outputJson){a.io.stdout(I({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan enabled":"Plan was already enabled"}
87
+ ${ht(r)}`)})}function lb(e,t){X(e.command("get").description("Show one scheduled plan, including its schedule, agent pool and payload in --json mode.")).requiredOption("--id <id>","Plan id to read.").action(async function(o){const a=Y(this,t),r=Ue(await a.api.getPlan(F(o.id,"--id")));if(a.outputJson){a.io.stdout(I({plan:r}));return}a.io.stdout(ht(r))})}function sb(e,t){X(e.command("list").description("List scheduled plans with their state, next run time and schedule.")).action(async function(){const o=Y(this,t),a=Dm(await o.api.listPlans());if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(_m(a.plans))})}function cb(e,t){X(e.command("run").description("Run a scheduled plan now from its stored inputs. The schedule is not changed.")).requiredOption("--id <id>","Plan id to run.").option("--background","Start the run and print the accepted plan id without waiting for the session.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id");if(o.background){const l=qm(await a.api.startPlan(r));if(a.outputJson){a.io.stdout(I(l));return}a.io.stdout(eb(l));return}const i=Ce(await a.api.runPlan(r));if(a.outputJson){a.io.stdout(I({session:i}));return}a.io.stdout(`Plan run created a session
88
+ ${ze(i)}`)})}function ub(e,t){X(e.command("update").description("Update a scheduled plan. The current plan is read first and only the given fields change.")).requiredOption("--id <id>","Plan id to update.").option("--input <file|->","JSON document whose top-level fields replace the same fields of the plan.").option("--name <name>","Updated plan name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the agent pool.").option("--enabled","Enable the plan.").option("--disabled","Disable the plan.").action(async function(o){const a=F(o.id,"--id"),r=C(o.input),i=C(o.name),l=C(o.heroId);if(o.enabled&&o.disabled)throw new U("Pass either --enabled or --disabled, not both.");const s=o.enabled?!0:o.disabled?!1:void 0;if(!r&&!i&&!l&&s===void 0)throw new U("Provide at least one change: --input, --name, --enabled, --disabled, or --hero-id.");const c=r?yt(await ni(r)):{},m=Y(this,t),p=await m.api.getPlan(a),R=Ue(await m.api.updatePlan(a,ai(p,{...c,...oi({name:i,heroId:l,enabled:s})})));if(m.outputJson){m.io.stdout(I({plan:R}));return}m.io.stdout(`Plan updated
89
+ ${ht(R)}`)})}function db(e,t){const n=e.command("plan").description("Manage scheduled plans: saved proposal or HagiTask inputs that run on a schedule.");sb(n,t),lb(n,t),ob(n,t),ub(n,t),ib(n,t),rb(n,t),ab(n,t),cb(n,t)}function re(e){const t=e?.trim();return t||void 0}function Pn(e){return{id:re(e.id)??"",name:re(e.name)??"",path:re(e.path)??"",description:re(e.description),isMonoSpecs:e.isMonoSpecs===!0,monoSpecsVersion:re(e.monoSpecsVersion),monoSpecsRepoDirectory:re(e.monoSpecsRepoDirectory),monoSpecsCommitWhenArchive:typeof e.monoSpecsCommitWhenArchive=="boolean"?e.monoSpecsCommitWhenArchive:void 0,hasError:"hasError"in e?e.hasError===!0:!1,error:"error"in e?re(e.error):void 0}}function ii(e){return{projects:(e??[]).map(Pn)}}function mb(e){return e.length===0?`No projects found.
90
90
  `:`Projects (${e.length})
91
91
  ${ne([{header:"Project ID",value:t=>t.id},{header:"Name",value:t=>t.name},{header:"Path",value:t=>t.path},{header:"MonoSpecs",value:t=>t.isMonoSpecs?"yes":"no"},{header:"Error",value:t=>t.hasError?"yes":"no"}],e)}
92
- `}function si(e,t=[]){return _([["id",e.id],["name",e.name],["path",e.path],["description",e.description],["isMonoSpecs",String(e.isMonoSpecs)],["monoSpecsVersion",e.monoSpecsVersion],["monoSpecsRepoDirectory",e.monoSpecsRepoDirectory],["monoSpecsCommitWhenArchive",typeof e.monoSpecsCommitWhenArchive=="boolean"?String(e.monoSpecsCommitWhenArchive):void 0],["hasError",String(e.hasError)],["error",e.error],...t])}function hh(e){return{projectId:re(e.id)??"",name:re(e.name)??"",isMonoSpecs:e.isMonoSpecs===!0,hasError:e.hasError===!0,error:re(e.error),repositories:(e.repositories??[]).map(t=>({name:re(t.name),path:t.path??void 0,displayName:re(t.displayName),type:re(t.type),branch:re(t.branch),isValidGitRepo:typeof t.isValidGitRepo=="boolean"?t.isValidGitRepo:void 0}))}}function bh(e){return`${_([["projectId",e.projectId],["name",e.name],["isMonoSpecs",String(e.isMonoSpecs)],["hasError",String(e.hasError)],["error",e.error??(e.hasError?"The project failed to load; its repository list may be incomplete.":void 0)]])}
92
+ `}function li(e,t=[]){return _([["id",e.id],["name",e.name],["path",e.path],["description",e.description],["isMonoSpecs",String(e.isMonoSpecs)],["monoSpecsVersion",e.monoSpecsVersion],["monoSpecsRepoDirectory",e.monoSpecsRepoDirectory],["monoSpecsCommitWhenArchive",typeof e.monoSpecsCommitWhenArchive=="boolean"?String(e.monoSpecsCommitWhenArchive):void 0],["hasError",String(e.hasError)],["error",e.error],...t])}function bb(e){return{projectId:re(e.id)??"",name:re(e.name)??"",isMonoSpecs:e.isMonoSpecs===!0,hasError:e.hasError===!0,error:re(e.error),repositories:(e.repositories??[]).map(t=>({name:re(t.name),path:t.path??void 0,displayName:re(t.displayName),type:re(t.type),branch:re(t.branch),isValidGitRepo:typeof t.isValidGitRepo=="boolean"?t.isValidGitRepo:void 0}))}}function hb(e){return`${_([["projectId",e.projectId],["name",e.name],["isMonoSpecs",String(e.isMonoSpecs)],["hasError",String(e.hasError)],["error",e.error??(e.hasError?"The project failed to load; its repository list may be incomplete.":void 0)]])}
93
93
  ${e.repositories.length===0?`This project lists no repositories.
94
94
  `:`${ne([{header:"Name",value:t=>t.name??""},{header:"Path",value:t=>t.path??""},{header:"Display name",value:t=>t.displayName??""},{header:"Type",value:t=>t.type??""},{header:"Branch",value:t=>t.branch??""}],e.repositories)}
95
- `}`}function gh(e,t){X(e.command("create").description("Create a project through the generated project client.")).requiredOption("--name <name>","Project display name.").requiredOption("--path <path>","Project root path.").option("--description <text>","Optional project description.").action(async function(o){const a=Y(this,t),r=Pn(await a.api.createProject({name:F(o.name,"--name"),path:F(o.path,"--path"),description:B(o.description)}));if(a.outputJson){a.io.stdout(I({project:r}));return}a.io.stdout(`Project created
96
- ${si(r)}`)})}function ph(e,t){X(e.command("delete").description("Delete a project by id.")).requiredOption("--id <id>","Project id to delete.").action(async function(o){const a=Y(this,t),r=o.id.trim();if(await a.api.deleteProject(r),a.outputJson){a.io.stdout(I({projectId:r,deleted:!0}));return}a.io.stdout(`Project deleted
95
+ `}`}function gb(e,t){X(e.command("create").description("Create a project through the generated project client.")).requiredOption("--name <name>","Project display name.").requiredOption("--path <path>","Project root path.").option("--description <text>","Optional project description.").action(async function(o){const a=Y(this,t),r=Pn(await a.api.createProject({name:F(o.name,"--name"),path:F(o.path,"--path"),description:C(o.description)}));if(a.outputJson){a.io.stdout(I({project:r}));return}a.io.stdout(`Project created
96
+ ${li(r)}`)})}function pb(e,t){X(e.command("delete").description("Delete a project by id.")).requiredOption("--id <id>","Project id to delete.").action(async function(o){const a=Y(this,t),r=o.id.trim();if(await a.api.deleteProject(r),a.outputJson){a.io.stdout(I({projectId:r,deleted:!0}));return}a.io.stdout(`Project deleted
97
97
  projectId ${r}
98
- `)})}function Ah(e,t){X(e.command("list").description("List projects from the aggregation endpoint.")).action(async function(){const o=Y(this,t),a=ii((await o.api.listProjects()).projects);if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(mh(a.projects))})}function $(e){const t=e?.trim();return t||void 0}function li(e){return{key:e.key??"",value:e.value??"",valueKind:e.valueKind??"string"}}function Zh(e){const t=e.isValidGitRepo===!0;return{name:$(e.name),code:$(e.code),path:e.path??"",url:$(e.url),displayName:$(e.displayName),type:$(e.type),icon:$(e.icon),optional:e.optional===!0,tags:e.tags??[],metadata:(e.metadata??[]).map(li),isValidGitRepo:t,branch:t?$(e.branch):void 0,hasUncommittedChanges:e.hasUncommittedChanges===!0,unpushedCommitCount:e.unpushedCommitCount??0,hasTrackingBranch:e.hasTrackingBranch===!0,trackingBranch:$(e.trackingBranch),aheadCount:e.aheadCount??0,behindCount:e.behindCount??0,syncState:t?$(e.syncState):void 0}}function ci(e){return{version:$(e.version)??"",repoDirectory:$(e.repoDirectory)??"",configPath:$(e.configPath)??"",commitWhenArchive:e.commitWhenArchive===!0,yamlPreview:e.yamlPreview??"",metadata:(e.metadata??[]).map(li),repositories:(e.repositories??[]).map(Zh)}}function fh(e){return e.isValidGitRepo?[e.branch??"no branch",e.syncState,e.hasUncommittedChanges?"uncommitted changes":void 0].filter(Boolean).join(", "):"missing or not a Git repository"}function ui(e,t={}){return`${_([["version",e.version],["repoDirectory",e.repoDirectory],["configPath",e.configPath],["commitWhenArchive",String(e.commitWhenArchive)]])}
98
+ `)})}function Ab(e,t){X(e.command("list").description("List projects from the aggregation endpoint.")).action(async function(){const o=Y(this,t),a=ii((await o.api.listProjects()).projects);if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(mb(a.projects))})}function $(e){const t=e?.trim();return t||void 0}function si(e){return{key:e.key??"",value:e.value??"",valueKind:e.valueKind??"string"}}function Zb(e){const t=e.isValidGitRepo===!0;return{name:$(e.name),code:$(e.code),path:e.path??"",url:$(e.url),displayName:$(e.displayName),type:$(e.type),icon:$(e.icon),optional:e.optional===!0,tags:e.tags??[],metadata:(e.metadata??[]).map(si),isValidGitRepo:t,branch:t?$(e.branch):void 0,hasUncommittedChanges:e.hasUncommittedChanges===!0,unpushedCommitCount:e.unpushedCommitCount??0,hasTrackingBranch:e.hasTrackingBranch===!0,trackingBranch:$(e.trackingBranch),aheadCount:e.aheadCount??0,behindCount:e.behindCount??0,syncState:t?$(e.syncState):void 0}}function ci(e){return{version:$(e.version)??"",repoDirectory:$(e.repoDirectory)??"",configPath:$(e.configPath)??"",commitWhenArchive:e.commitWhenArchive===!0,yamlPreview:e.yamlPreview??"",metadata:(e.metadata??[]).map(si),repositories:(e.repositories??[]).map(Zb)}}function Rb(e){return e.isValidGitRepo?[e.branch??"no branch",e.syncState,e.hasUncommittedChanges?"uncommitted changes":void 0].filter(Boolean).join(", "):"missing or not a Git repository"}function ui(e,t={}){return`${_([["version",e.version],["repoDirectory",e.repoDirectory],["configPath",e.configPath],["commitWhenArchive",String(e.commitWhenArchive)]])}
99
99
  ${e.repositories.length===0?`This document lists no repositories.
100
- `:`${ne([{header:"Path",value:n=>n.path},{header:"Name",value:n=>n.name??""},{header:"Type",value:n=>n.type??""},{header:"URL",value:n=>n.url??""},{header:"Local state",value:n=>fh(n)}],e.repositories)}
100
+ `:`${ne([{header:"Path",value:n=>n.path},{header:"Name",value:n=>n.name??""},{header:"Type",value:n=>n.type??""},{header:"URL",value:n=>n.url??""},{header:"Local state",value:n=>Rb(n)}],e.repositories)}
101
101
  `}${t.yaml?`
102
102
  YAML
103
103
  ${e.yamlPreview}${e.yamlPreview.endsWith(`
104
104
  `)?"":`
105
105
  `}`:""}`}function di(e){return{results:(e??[]).map(t=>({path:t.path??"",status:t.status??"",message:$(t.message)}))}}function mi(e){return e.results.length===0?`No repositories were selected for cloning.
106
106
  `:`${ne([{header:"Path",value:t=>t.path},{header:"Status",value:t=>t.status},{header:"Message",value:t=>t.message??""}],e.results)}
107
- `}function Rh(e){return{isValid:e.isValid===!0,config:e.config?{version:$(e.config.version),repoDirectory:$(e.config.repoDirectory)}:null,warnings:e.warnings??[],errors:e.errors??[]}}function Eh(e){const t=e.isValid?"MonoSpecs configuration is valid.":"MonoSpecs configuration is invalid.",n=_([["version",e.config?.version],["repoDirectory",e.config?.repoDirectory]]),o=e.warnings.map(r=>` - ${r}
107
+ `}function fb(e){return{isValid:e.isValid===!0,config:e.config?{version:$(e.config.version),repoDirectory:$(e.config.repoDirectory)}:null,warnings:e.warnings??[],errors:e.errors??[]}}function Eb(e){const t=e.isValid?"MonoSpecs configuration is valid.":"MonoSpecs configuration is invalid.",n=_([["version",e.config?.version],["repoDirectory",e.config?.repoDirectory]]),o=e.warnings.map(r=>` - ${r}
108
108
  `).join(""),a=e.errors.map(r=>` - ${r}
109
109
  `).join("");return[t,n.trimEnd(),e.warnings.length>0?`Warnings:
110
110
  ${o}`.trimEnd():"",e.errors.length>0?`Errors:
111
111
  ${a}`.trimEnd():""].filter(Boolean).join(`
112
112
  `)+`
113
- `}function Nh(e){return{path:e.path??"",removed:e.removed===!0,message:$(e.message)}}function Gh(e){const t=e.removed?`Removed checkout ${e.path}`:`Checkout ${e.path} was not removed`;return`${e.message?`${t}
113
+ `}function Vb(e){return{path:e.path??"",removed:e.removed===!0,message:$(e.message)}}function Nb(e){const t=e.removed?`Removed checkout ${e.path}`:`Checkout ${e.path} was not removed`;return`${e.message?`${t}
114
114
  ${e.message}`:t}
115
115
  `}function $n(e,t,n={}){const o=ci(t);if(e.outputJson){e.io.stdout(I(o));return}const a=n.heading?`${n.heading}
116
- `:"";e.io.stdout(`${a}${ui(o,{yaml:n.yaml})}`)}function pn(e,t){return[...t,e]}function Qe(e){const t=e.trim().replace(/\\/g,"/").replace(/^(\.\/)+/,"").replace(/\/+$/,"");if(!t||t===".")throw new w(`Repository path must name a directory below the project root: "${e}".`);return t}function Vh(e,t){X(e.command("clone").description("Clone the configured repositories that are missing on the backend host. Exits with code 30 when any clone fails.")).requiredOption("--id <id>","Project id.").option("--path <path>","Configured repository path to clone. Repeatable; omit to clone every missing repository.",pn,[]).option("--include-optional","Also clone optional repositories when no --path is given.").action(async function(o){const a=o.path.map(Qe),r=Y(this,t),i=F(o.id,"--id"),s=o.includeOptional===!0,l=di((await r.api.cloneMonoSpecsRepositories(i,a.length>0?{paths:a,includeOptional:s}:{includeOptional:s})).results);r.outputJson?r.io.stdout(I(l)):r.io.stdout(mi(l));const c=l.results.filter(m=>m.status==="failed");if(c.length>0)throw new mt(`${c.length} repository clone(s) failed. See the results above.`)})}function Wh(e,t){X(e.command("init").description("Initialize the MonoSpecs configuration of a project. An initialized project returns its existing document.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t);$n(a,await a.api.initializeMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration initialized."})})}function Sh(e,t){X(e.command("reload").description("Reread monospecs.yaml on the backend host and refresh the local Git state of its repositories.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t);$n(a,await a.api.reloadMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration reloaded."})})}function vh(e,t){X(e.command("remove-checkout").description("Delete the local checkout of one configured repository on the backend host. monospecs.yaml is not changed.")).requiredOption("--id <id>","Project id.").requiredOption("--path <path>","Configured repository path whose local checkout to delete.").option("--force","Delete the checkout even with uncommitted changes, unpushed commits or no upstream branch.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id"),i=Qe(F(o.path,"--path")),s=o.force===!0;let l;try{l=await a.api.removeMonoSpecsRepositoryCheckout(r,i,s)}catch(m){const p=kr(m);throw p.status===409&&!s&&/force/i.test(p.message)?new xe(409,`${p.message}
117
- Re-run with --force to delete this checkout anyway.`,p.details):m}const c=Nh(l);a.outputJson?a.io.stdout(I(c)):a.io.stdout(Gh(c))})}var Xh="--version, --repo-directory, --commit-when-archive, --add-repository, --remove-repository";function Yh(e){return{name:e.name,code:e.code,path:e.path,url:e.url,displayName:e.displayName,type:e.type,icon:e.icon,optional:e.optional,tags:e.tags,metadata:e.metadata}}function Ih(e){return e.split("/").at(-1)??e}function tn(e,t,n){const o=ci(t),a=n?di(n.results):void 0;if(e.outputJson){e.io.stdout(I(a?{...o,clone:a}:o));return}e.io.stdout(`MonoSpecs configuration saved.
116
+ `:"";e.io.stdout(`${a}${ui(o,{yaml:n.yaml})}`)}function pn(e,t){return[...t,e]}function Qe(e){const t=e.trim().replace(/\\/g,"/").replace(/^(\.\/)+/,"").replace(/\/+$/,"");if(!t||t===".")throw new U(`Repository path must name a directory below the project root: "${e}".`);return t}function Gb(e,t){X(e.command("clone").description("Clone the configured repositories that are missing on the backend host. Exits with code 30 when any clone fails.")).requiredOption("--id <id>","Project id.").option("--path <path>","Configured repository path to clone. Repeatable; omit to clone every missing repository.",pn,[]).option("--include-optional","Also clone optional repositories when no --path is given.").action(async function(o){const a=o.path.map(Qe),r=Y(this,t),i=F(o.id,"--id"),l=o.includeOptional===!0,s=di((await r.api.cloneMonoSpecsRepositories(i,a.length>0?{paths:a,includeOptional:l}:{includeOptional:l})).results);r.outputJson?r.io.stdout(I(s)):r.io.stdout(mi(s));const c=s.results.filter(m=>m.status==="failed");if(c.length>0)throw new mt(`${c.length} repository clone(s) failed. See the results above.`)})}function Wb(e,t){X(e.command("init").description("Initialize the MonoSpecs configuration of a project. An initialized project returns its existing document.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t);$n(a,await a.api.initializeMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration initialized."})})}function Sb(e,t){X(e.command("reload").description("Reread monospecs.yaml on the backend host and refresh the local Git state of its repositories.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t);$n(a,await a.api.reloadMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration reloaded."})})}function vb(e,t){X(e.command("remove-checkout").description("Delete the local checkout of one configured repository on the backend host. monospecs.yaml is not changed.")).requiredOption("--id <id>","Project id.").requiredOption("--path <path>","Configured repository path whose local checkout to delete.").option("--force","Delete the checkout even with uncommitted changes, unpushed commits or no upstream branch.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id"),i=Qe(F(o.path,"--path")),l=o.force===!0;let s;try{s=await a.api.removeMonoSpecsRepositoryCheckout(r,i,l)}catch(m){const p=kr(m);throw p.status===409&&!l&&/force/i.test(p.message)?new Ke(409,`${p.message}
117
+ Re-run with --force to delete this checkout anyway.`,p.details):m}const c=Vb(s);a.outputJson?a.io.stdout(I(c)):a.io.stdout(Nb(c))})}var Xb="--version, --repo-directory, --commit-when-archive, --add-repository, --remove-repository";function Yb(e){return{name:e.name,code:e.code,path:e.path,url:e.url,displayName:e.displayName,type:e.type,icon:e.icon,optional:e.optional,tags:e.tags,metadata:e.metadata}}function Ib(e){return e.split("/").at(-1)??e}function tn(e,t,n){const o=ci(t),a=n?di(n.results):void 0;if(e.outputJson){e.io.stdout(I(a?{...o,clone:a}:o));return}e.io.stdout(`MonoSpecs configuration saved.
118
118
  ${ui(o)}`),a&&e.io.stdout(`
119
119
  Clone results
120
- ${mi(a)}`)}function yh(e,t){X(e.command("set").description("Change the MonoSpecs metadata or repositories. Reads the document, applies the given options and saves it.")).requiredOption("--id <id>","Project id.").option("--version <value>","MonoSpecs configuration version.").option("--repo-directory <dir>","Repository directory relative to the project root.").option("--commit-when-archive <true|false>","Whether archiving commits the MonoSpecs changes.").option("--add-repository <path>","Configured repository path to add. Repeatable.",pn,[]).option("--remove-repository <path>","Configured repository path to remove. Repeatable.",pn,[]).option("--url <url>","Clone URL of the single added repository.").option("--name <name>","Name of the single added repository. Defaults to the last path segment.").option("--display-name <name>","Display name of the single added repository.").option("--type <type>","Type of the single added repository.").option("--clone","Clone the added repositories after saving. Requires at least one --add-repository.").action(async function(o){const a=o.addRepository.map(Qe),r=o.removeRepository.map(Qe);if(!(o.version!==void 0||o.repoDirectory!==void 0||o.commitWhenArchive!==void 0)&&a.length===0&&r.length===0)throw new w(`Provide at least one change: ${Xh}.`);if(o.clone&&a.length===0)throw new w("--clone requires at least one --add-repository.");const i=[o.url!==void 0?"--url":void 0,o.name!==void 0?"--name":void 0,o.displayName!==void 0?"--display-name":void 0,o.type!==void 0?"--type":void 0].filter(Boolean);if(i.length>0&&a.length!==1)throw new w(`${i.join(", ")} apply to a single --add-repository only.`);let s;if(o.commitWhenArchive!==void 0){if(o.commitWhenArchive!=="true"&&o.commitWhenArchive!=="false")throw new w("--commit-when-archive must be true or false.");s=o.commitWhenArchive==="true"}const l=Y(this,t),c=F(o.id,"--id"),m=await l.api.getMonoSpecsManagement(c),p=(m.repositories??[]).map(Yh);for(const V of r){const C=p.findIndex(J=>Qe(J.path??"")===V);if(C<0)throw new w(`Repository path ${V} is not configured, so it cannot be removed.`);p.splice(C,1)}for(const V of a){if(p.some(C=>Qe(C.path??"")===V))throw new w(`Repository path ${V} is already configured.`);p.push({name:o.name??Ih(V),code:null,path:V,url:o.url??null,displayName:o.displayName??null,type:o.type??null,icon:null,optional:!1,tags:[],metadata:[]})}const f=await l.api.saveMonoSpecsManagement(c,{version:o.version??m.version,repoDirectory:o.repoDirectory??m.repoDirectory,commitWhenArchive:s??m.commitWhenArchive,repositories:p,metadata:m.metadata??[]});if(!o.clone){tn(l,f);return}let Z;try{Z=(await l.api.cloneMonoSpecsRepositories(c,{paths:a,includeOptional:!1})).results??[]}catch(V){throw tn(l,f),V}tn(l,f,{results:Z});const N=Z.filter(V=>V.status==="failed");if(N.length>0)throw new mt(`The configuration was saved, but ${N.length} repository clone(s) failed. See the clone results above.`)})}function Ch(e,t){X(e.command("show").description("Show the MonoSpecs management document of a project, with local Git state per repository.")).requiredOption("--id <id>","Project id.").option("--yaml","Also print the YAML preview in human-readable mode.").action(async function(o){const a=Y(this,t);$n(a,await a.api.getMonoSpecsManagement(F(o.id,"--id")),{yaml:o.yaml===!0})})}function Bh(e,t){X(e.command("validate").description("Validate the MonoSpecs configuration of a project. Exits with code 30 when it is invalid.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id"),i=((await a.api.listProjects()).projects??[]).find(l=>l.id===r);if(!i?.path)throw new xe(404,`Project ${r} was not found in the aggregation snapshot.`);const s=Rh(await a.api.validateMonoSpecs({projectPath:i.path}));if(a.outputJson?a.io.stdout(I(s)):a.io.stdout(Eh(s)),!s.isValid)throw new mt("MonoSpecs configuration is invalid. See the errors above.")})}function Fh(e,t){const n=e.command("monospecs").description("Manage the MonoSpecs configuration and the local repository checkouts of a project.");Ch(n,t),Wh(n,t),yh(n,t),Bh(n,t),Sh(n,t),Vh(n,t),vh(n,t)}function wh(e,t){X(e.command("repositories").description("List the repositories of one project from the aggregation snapshot.")).requiredOption("--id <id>","Project id whose repositories to list.").action(async function(o){const a=Y(this,t),r=o.id.trim(),i=((await a.api.listProjects()).projects??[]).find(l=>l.id===r);if(!i)throw new xe(404,`Project ${r} was not found in the aggregation snapshot.`);const s=hh(i);if(a.outputJson){a.io.stdout(I(s));return}a.io.stdout(bh(s))})}function Uh(e,t){X(e.command("update").description("Update a project by merging provided fields into the aggregation snapshot.")).requiredOption("--id <id>","Project id to update.").option("--name <name>","Updated project name.").option("--path <path>","Updated project path.").option("--description <text>","Updated project description.").option("--clear-description","Clear the stored description.").action(async function(o){if(!o.name&&!o.path&&!o.description&&!o.clearDescription)throw new w("Provide at least one field to update: --name, --path, --description, or --clear-description.");if(o.description&&o.clearDescription)throw new w("Use either --description or --clear-description, not both.");const a=Y(this,t),r=o.id.trim(),i=ii((await a.api.listProjects()).projects).projects.find(l=>l.id===r);if(!i)throw new xe(404,`Project ${r} was not found in the aggregation snapshot.`);const s=Pn(await a.api.updateProject(r,{name:B(o.name)??i.name,path:B(o.path)??i.path,description:o.clearDescription?null:B(o.description)??i.description??null}));if(a.outputJson){a.io.stdout(I({project:s}));return}a.io.stdout(`Project updated
121
- ${si(s)}`)})}function Jh(e,t){const n=e.command("project").description("Manage Hagi projects through generated project and aggregation APIs.");Ah(n,t),wh(n,t),gh(n,t),Uh(n,t),ph(n,t),Fh(n,t)}function kh(e,t){if(!t||typeof t!="object"||Array.isArray(t))throw new w("Annotation input must be a JSON object.");const n=t;if(!Array.isArray(n.files))throw new w("Annotation input must include a files array.");const o=typeof n.totalAnnotations=="number"?n.totalAnnotations:n.files.length,a=typeof n.submittedAt=="string"&&n.submittedAt.trim()?n.submittedAt:new Date().toISOString();return{...n,sessionId:e,totalAnnotations:o,submittedAt:a,files:n.files}}function Kh(e,t){X(e.command("annotate").description("Submit proposal annotations from structured JSON input.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=kh(r,await jt(o.input)),s=await a.api.submitAnnotations(r,i);if(a.outputJson){a.io.stdout(I({sessionId:r,message:s.message,annotationCount:s.annotationCount??i.totalAnnotations,fileCount:s.fileCount??i.files.length}));return}a.io.stdout(`Proposal annotations submitted
120
+ ${mi(a)}`)}function yb(e,t){X(e.command("set").description("Change the MonoSpecs metadata or repositories. Reads the document, applies the given options and saves it.")).requiredOption("--id <id>","Project id.").option("--version <value>","MonoSpecs configuration version.").option("--repo-directory <dir>","Repository directory relative to the project root.").option("--commit-when-archive <true|false>","Whether archiving commits the MonoSpecs changes.").option("--add-repository <path>","Configured repository path to add. Repeatable.",pn,[]).option("--remove-repository <path>","Configured repository path to remove. Repeatable.",pn,[]).option("--url <url>","Clone URL of the single added repository.").option("--name <name>","Name of the single added repository. Defaults to the last path segment.").option("--display-name <name>","Display name of the single added repository.").option("--type <type>","Type of the single added repository.").option("--clone","Clone the added repositories after saving. Requires at least one --add-repository.").action(async function(o){const a=o.addRepository.map(Qe),r=o.removeRepository.map(Qe);if(!(o.version!==void 0||o.repoDirectory!==void 0||o.commitWhenArchive!==void 0)&&a.length===0&&r.length===0)throw new U(`Provide at least one change: ${Xb}.`);if(o.clone&&a.length===0)throw new U("--clone requires at least one --add-repository.");const i=[o.url!==void 0?"--url":void 0,o.name!==void 0?"--name":void 0,o.displayName!==void 0?"--display-name":void 0,o.type!==void 0?"--type":void 0].filter(Boolean);if(i.length>0&&a.length!==1)throw new U(`${i.join(", ")} apply to a single --add-repository only.`);let l;if(o.commitWhenArchive!==void 0){if(o.commitWhenArchive!=="true"&&o.commitWhenArchive!=="false")throw new U("--commit-when-archive must be true or false.");l=o.commitWhenArchive==="true"}const s=Y(this,t),c=F(o.id,"--id"),m=await s.api.getMonoSpecsManagement(c),p=(m.repositories??[]).map(Yb);for(const G of r){const B=p.findIndex(J=>Qe(J.path??"")===G);if(B<0)throw new U(`Repository path ${G} is not configured, so it cannot be removed.`);p.splice(B,1)}for(const G of a){if(p.some(B=>Qe(B.path??"")===G))throw new U(`Repository path ${G} is already configured.`);p.push({name:o.name??Ib(G),code:null,path:G,url:o.url??null,displayName:o.displayName??null,type:o.type??null,icon:null,optional:!1,tags:[],metadata:[]})}const R=await s.api.saveMonoSpecsManagement(c,{version:o.version??m.version,repoDirectory:o.repoDirectory??m.repoDirectory,commitWhenArchive:l??m.commitWhenArchive,repositories:p,metadata:m.metadata??[]});if(!o.clone){tn(s,R);return}let Z;try{Z=(await s.api.cloneMonoSpecsRepositories(c,{paths:a,includeOptional:!1})).results??[]}catch(G){throw tn(s,R),G}tn(s,R,{results:Z});const V=Z.filter(G=>G.status==="failed");if(V.length>0)throw new mt(`The configuration was saved, but ${V.length} repository clone(s) failed. See the clone results above.`)})}function Bb(e,t){X(e.command("show").description("Show the MonoSpecs management document of a project, with local Git state per repository.")).requiredOption("--id <id>","Project id.").option("--yaml","Also print the YAML preview in human-readable mode.").action(async function(o){const a=Y(this,t);$n(a,await a.api.getMonoSpecsManagement(F(o.id,"--id")),{yaml:o.yaml===!0})})}function Cb(e,t){X(e.command("validate").description("Validate the MonoSpecs configuration of a project. Exits with code 30 when it is invalid.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id"),i=((await a.api.listProjects()).projects??[]).find(s=>s.id===r);if(!i?.path)throw new Ke(404,`Project ${r} was not found in the aggregation snapshot.`);const l=fb(await a.api.validateMonoSpecs({projectPath:i.path}));if(a.outputJson?a.io.stdout(I(l)):a.io.stdout(Eb(l)),!l.isValid)throw new mt("MonoSpecs configuration is invalid. See the errors above.")})}function Fb(e,t){const n=e.command("monospecs").description("Manage the MonoSpecs configuration and the local repository checkouts of a project.");Bb(n,t),Wb(n,t),yb(n,t),Cb(n,t),Sb(n,t),Gb(n,t),vb(n,t)}function Ub(e,t){X(e.command("repositories").description("List the repositories of one project from the aggregation snapshot.")).requiredOption("--id <id>","Project id whose repositories to list.").action(async function(o){const a=Y(this,t),r=o.id.trim(),i=((await a.api.listProjects()).projects??[]).find(s=>s.id===r);if(!i)throw new Ke(404,`Project ${r} was not found in the aggregation snapshot.`);const l=bb(i);if(a.outputJson){a.io.stdout(I(l));return}a.io.stdout(hb(l))})}function wb(e,t){X(e.command("update").description("Update a project by merging provided fields into the aggregation snapshot.")).requiredOption("--id <id>","Project id to update.").option("--name <name>","Updated project name.").option("--path <path>","Updated project path.").option("--description <text>","Updated project description.").option("--clear-description","Clear the stored description.").action(async function(o){if(!o.name&&!o.path&&!o.description&&!o.clearDescription)throw new U("Provide at least one field to update: --name, --path, --description, or --clear-description.");if(o.description&&o.clearDescription)throw new U("Use either --description or --clear-description, not both.");const a=Y(this,t),r=o.id.trim(),i=ii((await a.api.listProjects()).projects).projects.find(s=>s.id===r);if(!i)throw new Ke(404,`Project ${r} was not found in the aggregation snapshot.`);const l=Pn(await a.api.updateProject(r,{name:C(o.name)??i.name,path:C(o.path)??i.path,description:o.clearDescription?null:C(o.description)??i.description??null}));if(a.outputJson){a.io.stdout(I({project:l}));return}a.io.stdout(`Project updated
121
+ ${li(l)}`)})}function Jb(e,t){const n=e.command("project").description("Manage Hagi projects through generated project and aggregation APIs.");Ab(n,t),Ub(n,t),gb(n,t),wb(n,t),pb(n,t),Fb(n,t)}function kb(e,t){if(!t||typeof t!="object"||Array.isArray(t))throw new U("Annotation input must be a JSON object.");const n=t;if(!Array.isArray(n.files))throw new U("Annotation input must include a files array.");const o=typeof n.totalAnnotations=="number"?n.totalAnnotations:n.files.length,a=typeof n.submittedAt=="string"&&n.submittedAt.trim()?n.submittedAt:new Date().toISOString();return{...n,sessionId:e,totalAnnotations:o,submittedAt:a,files:n.files}}function xb(e,t){X(e.command("annotate").description("Submit proposal annotations from structured JSON input.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=kb(r,await jt(o.input)),l=await a.api.submitAnnotations(r,i);if(a.outputJson){a.io.stdout(I({sessionId:r,message:l.message,annotationCount:l.annotationCount??i.totalAnnotations,fileCount:l.fileCount??i.files.length}));return}a.io.stdout(`Proposal annotations submitted
122
122
  sessionId ${r}
123
- message ${s.message}
124
- annotationCount ${s.annotationCount??i.totalAnnotations}
125
- fileCount ${s.fileCount??i.files.length}
126
- `)})}function xh(e,t){X(e.command("archive").description("Archive a proposal session through the explicit archive endpoint.")).requiredOption("--session-id <id>","Proposal session id to archive.").option("--hero-id <id>","Optional hero override for archiving.").action(async function(o){const a=Y(this,t),r=Be(await a.api.archiveProposal(o.sessionId.trim(),{heroId:B(o.heroId)}));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Proposal archive started
127
- ${ze(r)}`)})}function zh(e,t){X(e.command("complete").description("Mark a proposal session as completed through the dedicated completion endpoint.")).requiredOption("--session-id <id>","Proposal session id to complete.").action(async function(o){const a=Y(this,t),r=Be(await a.api.completeProposal(o.sessionId.trim()));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Proposal completed
128
- ${ze(r)}`)})}function Lh(e){return Be(e)}function jh(e){return $r(e)}function Th(e){return qr("Proposal sessions",e)}function Hh(e,t=[]){return ze(e,t)}var hi="New Proposal";function Qh(e){const t=B(e.title);if(t)return t;if(e.defaultTitle)return hi;throw new w("Provide --title or pass --default-title to use the placeholder proposal title.")}function Mh(e,t){X(e.command("create").description("Create a proposal session only. This command does not trigger later lifecycle APIs.")).requiredOption("--project-id <id>","Project id that owns the new proposal session.").requiredOption("--chief-complaint <text>","Proposal chief complaint to store on the new session.").option("--original-chief-complaint <text>","Optional raw chief complaint text to keep alongside the stitched content.").option("--title <title>","Explicit proposal session title.").option("--default-title",`Mark the title as the placeholder title (${hi}).`).option("--enable-independent-workspace","Request an independent workspace for the proposal session.").option("--base-branch <branch>","Optional base branch for the independent workspace.").action(async function(o){const a=Y(this,t),r=Qh(o),i=Lh(await a.api.createProposalSession({title:r,chiefComplaint:o.chiefComplaint.trim(),originalChiefComplaint:B(o.originalChiefComplaint),type:Dn.PROPOSAL,projectId:o.projectId.trim(),enableIndependentWorkspace:o.enableIndependentWorkspace?!0:void 0,baseBranch:B(o.baseBranch),isDefaultTitle:!!o.defaultTitle})),s=`hagi proposal optimize-description --session-id ${i.sessionId} --description "<description>"`;if(a.outputJson){a.io.stdout(I({session:i,nextCommand:s}));return}a.io.stdout(`Proposal session created
129
- ${Hh(i,[["next",s]])}`)})}function Oh(e,t){X(e.command("execute").description("Start proposal execution only. This command maps to the execute-proposal backend action.")).requiredOption("--session-id <id>","Proposal session id to execute.").option("--hero-id <id>","Optional hero override for the execute stage.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=B(o.heroId),s=await a.api.executeProposal(r,{heroId:i});if(a.outputJson){a.io.stdout(I({sessionId:r,message:s.message,requested:{heroId:i}}));return}a.io.stdout(`Proposal execution started
130
- sessionId ${r}
131
- message ${s.message}
132
- `)})}var An=["zh-CN","zh-Hant","en-US","ja-JP","ko-KR","de-DE","fr-FR","es-ES","pt-BR","ru-RU"];function Dh(e){if(e.enableExploreMode&&e.disableExploreMode)throw new w("Use either --enable-explore-mode or --disable-explore-mode, not both.");if(e.enableExploreMode)return!0;if(e.disableExploreMode)return!1}function _h(e){const t=e.trim();if(!An.includes(t))throw new w(`--proposal-content-language must be one of: ${An.join(", ")}.`);return t}function Ph(e,t){X(e.command("generate").description("Start proposal generation only. This command does not execute the proposal.")).requiredOption("--session-id <id>","Proposal session id to generate.").requiredOption("--proposal-content-language <language>",`Language of the generated proposal content (${An.join(", ")}).`).option("--enable-explore-mode","Explicitly enable explore mode for proposal generation.").option("--disable-explore-mode","Explicitly disable explore mode for proposal generation.").option("--hero-id <id>","Optional hero override for the generate stage.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=Dh(o),s=_h(o.proposalContentLanguage),l=await a.api.generateProposal(r,{enableExploreMode:i,heroId:B(o.heroId),proposalContentLanguage:s}),c=`hagi proposal execute --session-id ${r}`;if(a.outputJson){a.io.stdout(I({sessionId:r,message:l.message,requested:{enableExploreMode:i,heroId:B(o.heroId),proposalContentLanguage:s},nextCommand:c}));return}a.io.stdout(`Proposal generation started
123
+ message ${l.message}
124
+ annotationCount ${l.annotationCount??i.totalAnnotations}
125
+ fileCount ${l.fileCount??i.files.length}
126
+ `)})}function Kb(e,t){X(e.command("archive").description("Archive a proposal session through the explicit archive endpoint.")).requiredOption("--session-id <id>","Proposal session id to archive.").option("--hero-id <id>","Optional hero override for archiving.").action(async function(o){const a=Y(this,t),r=Ce(await a.api.archiveProposal(o.sessionId.trim(),{heroId:C(o.heroId)}));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Proposal archive started
127
+ ${ze(r)}`)})}function zb(e,t){X(e.command("complete").description("Mark a proposal session as completed through the dedicated completion endpoint.")).requiredOption("--session-id <id>","Proposal session id to complete.").action(async function(o){const a=Y(this,t),r=Ce(await a.api.completeProposal(o.sessionId.trim()));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Proposal completed
128
+ ${ze(r)}`)})}function Lb(e){return Ce(e)}function jb(e){return $r(e)}function Hb(e){return qr("Proposal sessions",e)}function Tb(e,t=[]){return ze(e,t)}var bi="New Proposal";function Qb(e){const t=C(e.title);if(t)return t;if(e.defaultTitle)return bi;throw new U("Provide --title or pass --default-title to use the placeholder proposal title.")}function Mb(e,t){X(e.command("create").description("Create a proposal session only. This command does not trigger later lifecycle APIs.")).requiredOption("--project-id <id>","Project id that owns the new proposal session.").requiredOption("--chief-complaint <text>","Proposal chief complaint to store on the new session.").option("--original-chief-complaint <text>","Optional raw chief complaint text to keep alongside the stitched content.").option("--title <title>","Explicit proposal session title.").option("--default-title",`Mark the title as the placeholder title (${bi}).`).option("--enable-independent-workspace","Request an independent workspace for the proposal session.").option("--base-branch <branch>","Optional base branch for the independent workspace.").action(async function(o){const a=Y(this,t),r=Qb(o),i=Lb(await a.api.createProposalSession({title:r,chiefComplaint:o.chiefComplaint.trim(),originalChiefComplaint:C(o.originalChiefComplaint),type:Dn.PROPOSAL,projectId:o.projectId.trim(),enableIndependentWorkspace:o.enableIndependentWorkspace?!0:void 0,baseBranch:C(o.baseBranch),isDefaultTitle:!!o.defaultTitle})),l=`hagi proposal optimize-description --session-id ${i.sessionId} --description "<description>"`;if(a.outputJson){a.io.stdout(I({session:i,nextCommand:l}));return}a.io.stdout(`Proposal session created
129
+ ${Tb(i,[["next",l]])}`)})}function Ob(e,t){X(e.command("execute").description("Start proposal execution only. This command maps to the execute-proposal backend action.")).requiredOption("--session-id <id>","Proposal session id to execute.").option("--hero-id <id>","Optional hero override for the execute stage.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=C(o.heroId),l=await a.api.executeProposal(r,{heroId:i});if(a.outputJson){a.io.stdout(I({sessionId:r,message:l.message,requested:{heroId:i}}));return}a.io.stdout(`Proposal execution started
133
130
  sessionId ${r}
134
131
  message ${l.message}
132
+ `)})}var An=["zh-CN","zh-Hant","en-US","ja-JP","ko-KR","de-DE","fr-FR","es-ES","pt-BR","ru-RU"];function Db(e){if(e.enableExploreMode&&e.disableExploreMode)throw new U("Use either --enable-explore-mode or --disable-explore-mode, not both.");if(e.enableExploreMode)return!0;if(e.disableExploreMode)return!1}function _b(e){const t=e.trim();if(!An.includes(t))throw new U(`--proposal-content-language must be one of: ${An.join(", ")}.`);return t}function Pb(e,t){X(e.command("generate").description("Start proposal generation only. This command does not execute the proposal.")).requiredOption("--session-id <id>","Proposal session id to generate.").requiredOption("--proposal-content-language <language>",`Language of the generated proposal content (${An.join(", ")}).`).option("--enable-explore-mode","Explicitly enable explore mode for proposal generation.").option("--disable-explore-mode","Explicitly disable explore mode for proposal generation.").option("--hero-id <id>","Optional hero override for the generate stage.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=Db(o),l=_b(o.proposalContentLanguage),s=await a.api.generateProposal(r,{enableExploreMode:i,heroId:C(o.heroId),proposalContentLanguage:l}),c=`hagi proposal execute --session-id ${r}`;if(a.outputJson){a.io.stdout(I({sessionId:r,message:s.message,requested:{enableExploreMode:i,heroId:C(o.heroId),proposalContentLanguage:l},nextCommand:c}));return}a.io.stdout(`Proposal generation started
133
+ sessionId ${r}
134
+ message ${s.message}
135
135
  next Wait for the session to reach Reviewing, then run ${c}
136
- `)})}function $h(e,t){X(e.command("list").description("List proposal sessions from the backend Sessions API.")).option("--project-id <id>","Filter proposal sessions by a single project id.").option("--project-ids <ids...>","Filter proposal sessions by multiple project ids.").option("--active-only","Only return non-archived proposal sessions.").option("--include-archived","Include archived proposal sessions in the result set.").action(async function(o){if(o.projectId&&o.projectIds?.length)throw new w("Use either --project-id or --project-ids, not both.");const a=Y(this,t),r=jh(await a.api.listSessions({type:Dn.PROPOSAL,projectId:B(o.projectId),projectIds:o.projectIds?.map(B).filter(Boolean),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Th(r.sessions))})}function qh(e,t){const n=t.summary,o=t.result,a=o?.validation?.isValid===!0,r=n?.appliedTitle||o?.optimizedTitle||"",i=n?.appliedProposalName||o?.optimizedProposalName||"",s=o?.validation?.diagnostics??[],l=[a?"Proposal optimized":"Proposal optimization returned diagnostics",`sessionId ${e}`,`title ${r}`,`proposalName ${i}`,`valid ${a?"yes":"no"}`];for(const c of s)l.push(`diagnostic ${c.code??"UNKNOWN"}: ${c.message??""}`.trimEnd());return a&&l.push(`next hagi proposal generate --session-id ${e}`),`${l.join(`
136
+ `)})}function $b(e,t){X(e.command("list").description("List proposal sessions from the backend Sessions API.")).option("--project-id <id>","Filter proposal sessions by a single project id.").option("--project-ids <ids...>","Filter proposal sessions by multiple project ids.").option("--active-only","Only return non-archived proposal sessions.").option("--include-archived","Include archived proposal sessions in the result set.").action(async function(o){if(o.projectId&&o.projectIds?.length)throw new U("Use either --project-id or --project-ids, not both.");const a=Y(this,t),r=jb(await a.api.listSessions({type:Dn.PROPOSAL,projectId:C(o.projectId),projectIds:o.projectIds?.map(C).filter(Boolean),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Hb(r.sessions))})}function qb(e,t){const n=t.summary,o=t.result,a=o?.validation?.isValid===!0,r=n?.appliedTitle||o?.optimizedTitle||"",i=n?.appliedProposalName||o?.optimizedProposalName||"",l=o?.validation?.diagnostics??[],s=[a?"Proposal optimized":"Proposal optimization returned diagnostics",`sessionId ${e}`,`title ${r}`,`proposalName ${i}`,`valid ${a?"yes":"no"}`];for(const c of l)s.push(`diagnostic ${c.code??"UNKNOWN"}: ${c.message??""}`.trimEnd());return a&&s.push(`next hagi proposal generate --session-id ${e}`),`${s.join(`
137
137
  `)}
138
- `}function eb(e,t){X(e.command("optimize-description").description("Optimize the proposal description, title, and name in one backend step.")).requiredOption("--session-id <id>","Proposal session id to optimize.").requiredOption("--description <text>","Description text to optimize.").option("--title <title>","Current title snapshot. The session title is used when omitted.").option("--default-title","Treat the current title as the placeholder title.").option("--optimization-direction <text>","Optional optimization direction for AI guidance.").option("--original-chief-complaint <text>","Optional original chief complaint to keep as context.").action(async function(o){const a=Y(this,t),r=F(o.sessionId,"--session-id"),i=await a.api.optimizeProposal(r,{description:F(o.description,"--description"),title:B(o.title),isDefaultTitle:o.defaultTitle?!0:void 0,optimizationDirection:B(o.optimizationDirection),originalChiefComplaint:B(o.originalChiefComplaint)});if(a.outputJson){a.io.stdout(I({sessionId:r,...i}));return}a.io.stdout(qh(r,i))})}function tb(e,t){X(e.command("send").description("Send a follow-up message to a proposal session.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("Proposal message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function nb(e,t){X(e.command("status").description("Update proposal session status through read-before-write merging.")).requiredOption("--session-id <id>","Proposal session id.").addOption(new Ye("--status <status>","Target session status.").choices(Object.values(_r)).makeOptionMandatory()).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.getSession(r);await a.api.updateSession(r,{title:i.title,description:i.description,status:o.status,metadata:i.metadata});const s=Be({...i,status:o.status});if(a.outputJson){a.io.stdout(I({session:s}));return}a.io.stdout(`Proposal status updated
139
- ${ze(s)}`)})}function ob(e,t){const n=e.command("proposal").description("Manage proposal sessions through backend session APIs.");$h(n,t),Mh(n,t),eb(n,t),Ph(n,t),Kh(n,t),Oh(n,t),xh(n,t),nb(n,t),zh(n,t),tb(n,t)}function Je(e){return e?"yes":"no"}function ab(e){return e&&e.length>0?e.join(", "):"-"}function bi(e){return e.origin??"user"}function gi(e){return bi(e)==="built-in"}function rb(e){return gi(e)?Je(e.builtIn?.enabled):"-"}function ib(e){return(gi(e)?e.builtIn?.version:e.managedInstallMetadata?.version)??"-"}function sb(e){const t=e.items??[];return t.length===0?`No local skills installed.
138
+ `}function eh(e,t){X(e.command("optimize-description").description("Optimize the proposal description, title, and name in one backend step.")).requiredOption("--session-id <id>","Proposal session id to optimize.").requiredOption("--description <text>","Description text to optimize.").option("--title <title>","Current title snapshot. The session title is used when omitted.").option("--default-title","Treat the current title as the placeholder title.").option("--optimization-direction <text>","Optional optimization direction for AI guidance.").option("--original-chief-complaint <text>","Optional original chief complaint to keep as context.").action(async function(o){const a=Y(this,t),r=F(o.sessionId,"--session-id"),i=await a.api.optimizeProposal(r,{description:F(o.description,"--description"),title:C(o.title),isDefaultTitle:o.defaultTitle?!0:void 0,optimizationDirection:C(o.optimizationDirection),originalChiefComplaint:C(o.originalChiefComplaint)});if(a.outputJson){a.io.stdout(I({sessionId:r,...i}));return}a.io.stdout(qb(r,i))})}function th(e,t){X(e.command("send").description("Send a follow-up message to a proposal session.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("Proposal message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function nh(e,t){X(e.command("status").description("Update proposal session status through read-before-write merging.")).requiredOption("--session-id <id>","Proposal session id.").addOption(new Ye("--status <status>","Target session status.").choices(Object.values(_r)).makeOptionMandatory()).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.getSession(r);await a.api.updateSession(r,{title:i.title,description:i.description,status:o.status,metadata:i.metadata});const l=Ce({...i,status:o.status});if(a.outputJson){a.io.stdout(I({session:l}));return}a.io.stdout(`Proposal status updated
139
+ ${ze(l)}`)})}function oh(e,t){const n=e.command("proposal").description("Manage proposal sessions through backend session APIs.");$b(n,t),Mb(n,t),eh(n,t),Pb(n,t),xb(n,t),Ob(n,t),Kb(n,t),nh(n,t),zb(n,t),th(n,t)}function Je(e){return e?"yes":"no"}function ah(e){return e&&e.length>0?e.join(", "):"-"}function hi(e){return e.origin??"user"}function gi(e){return hi(e)==="built-in"}function rh(e){return gi(e)?Je(e.builtIn?.enabled):"-"}function ih(e){return(gi(e)?e.builtIn?.version:e.managedInstallMetadata?.version)??"-"}function lh(e){const t=e.items??[];return t.length===0?`No local skills installed.
140
140
  `:`Local skills (${t.length})
141
- ${ne([{header:"Name",value:n=>n.name??"-"},{header:"Origin",value:bi},{header:"Enabled",value:rb},{header:"Version",value:ib},{header:"Scope",value:n=>n.scope??"-"},{header:"Agents",value:n=>ab(n.agents)},{header:"Path",value:n=>n.path??"-"}],t)}
142
- `}function lb(e){return _([["skillName",e.skillName??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function cb(e){return _([["skillName",e.slug??void 0],["enabled",Je(e.enabled)],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function ub(e){const t=e.items??[];return t.length===0?`No gallery skills found.
141
+ ${ne([{header:"Name",value:n=>n.name??"-"},{header:"Origin",value:hi},{header:"Enabled",value:rh},{header:"Version",value:ih},{header:"Scope",value:n=>n.scope??"-"},{header:"Agents",value:n=>ah(n.agents)},{header:"Path",value:n=>n.path??"-"}],t)}
142
+ `}function sh(e){return _([["skillName",e.skillName??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function ch(e){return _([["skillName",e.slug??void 0],["enabled",Je(e.enabled)],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function uh(e){const t=e.items??[];return t.length===0?`No gallery skills found.
143
143
  `:`Gallery skills (${t.length})
144
144
  ${ne([{header:"ID",value:n=>n.id??"-"},{header:"Source",value:n=>n.source??"-"},{header:"Installs",value:n=>String(n.installs??0)},{header:"Trusted",value:n=>Je(n.isTrustedSource)}],t)}
145
- `}function db(e){const t=e.trustedProvider;return _([["id",e.id??void 0],["source",e.source??void 0],["skillSlug",e.skillSlug??void 0],["installable",Je(e.isInstallable)],["description",e.description??void 0],["repository",e.repositoryFullName??e.repositoryName??void 0],["repositoryUrl",e.repositoryUrl??void 0],["defaultBranch",e.repositoryDefaultBranch??void 0],["trustedSource",Je(e.isTrustedSource)],["trustedProvider",t?`${t.displayName??t.providerId??"-"}`:void 0],["installReference",e.installReference??void 0],["installCommand",e.installCommandPreview??void 0],["installVersion",e.installVersion??void 0],["installHint",e.installHint??void 0]])}function mb(e){return _([["installReference",e.installReference??void 0],["normalizedSkillKey",e.normalizedSkillKey??void 0],["version",e.version??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0],["commandPreview",e.commandPreview??void 0]])}function Rt(e){const t=e.items??[];return t.length===0?`No trusted providers (directory version ${e.version??0}).
145
+ `}function dh(e){const t=e.trustedProvider;return _([["id",e.id??void 0],["source",e.source??void 0],["skillSlug",e.skillSlug??void 0],["installable",Je(e.isInstallable)],["description",e.description??void 0],["repository",e.repositoryFullName??e.repositoryName??void 0],["repositoryUrl",e.repositoryUrl??void 0],["defaultBranch",e.repositoryDefaultBranch??void 0],["trustedSource",Je(e.isTrustedSource)],["trustedProvider",t?`${t.displayName??t.providerId??"-"}`:void 0],["installReference",e.installReference??void 0],["installCommand",e.installCommandPreview??void 0],["installVersion",e.installVersion??void 0],["installHint",e.installHint??void 0]])}function mh(e){return _([["installReference",e.installReference??void 0],["normalizedSkillKey",e.normalizedSkillKey??void 0],["version",e.version??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0],["commandPreview",e.commandPreview??void 0]])}function ft(e){const t=e.items??[];return t.length===0?`No trusted providers (directory version ${e.version??0}).
146
146
  `:`Trusted providers (${t.length}, directory version ${e.version??0})
147
147
  ${ne([{header:"Provider ID",value:n=>n.providerId??"-"},{header:"Name",value:n=>n.displayName??"-"},{header:"Enabled",value:n=>Je(n.isEnabled)},{header:"Preset",value:n=>Je(n.isPreset)},{header:"Rules",value:n=>String(n.ruleCount??0)}],t)}
148
- `}function hb(e,t){const n=e.command("gallery").description("Search the skill gallery, read skill details, and start managed installs.");X(n.command("search").description("Search the skill gallery by keyword.")).option("--query <query>","Keyword to search for. Omit to list the gallery.").action(async function(a){const r=Y(this,t),i=await r.api.searchSkillGallery(B(a.query));if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(ub(i))}),X(n.command("detail").description("Show one gallery skill with installability, trust, and repository details.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").action(async function(a){const r=Y(this,t),i=await r.api.getSkillGalleryDetail(F(a.id,"--id"),F(a.source,"--source"));if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(db(i))}),X(n.command("install").description("Start a managed install of one gallery skill.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").requiredOption("--skill-slug <slug>","Skill slug inside the source repository.").option("--version <version>","Optional version token to install.").action(async function(a){const r=Y(this,t),i=await r.api.installGallerySkill({id:F(a.id,"--id"),source:F(a.source,"--source"),skillSlug:F(a.skillSlug,"--skill-slug"),version:B(a.version)});if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(mb(i))})}var bb="The change applies to agent runs that start afterwards; a run already in progress keeps its skills.";function Za(e,t,n){const o=n?"enable":"disable";X(e.command(o).description(`${n?"Turn on":"Turn off"} one built-in skill by name. ${bb}`)).requiredOption("--skill-name <name>",`Built-in skill name to ${o}.`).action(async function(r){const i=Y(this,t),s=await i.api.setBuiltInSkillAvailability({slug:F(r.skillName,"--skill-name"),enabled:n});if(i.outputJson?i.io.stdout(I(s)):i.io.stdout(cb(s)),!s.succeeded)throw new mt(s.userMessage??`The built-in skill availability was not changed for ${s.slug??r.skillName}.`)})}function gb(e,t){const n=e.command("local").description("List, enable or disable built-in skills, and uninstall user-installed local skills.");X(n.command("list").description("List installed local skills with their managed install metadata.")).action(async function(){const a=Y(this,t),r=await a.api.listLocalSkills();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(sb(r))}),Za(n,t,!0),Za(n,t,!1),X(n.command("uninstall").description("Uninstall one user-installed local skill by name. Built-in skills cannot be uninstalled; use `skills local disable --skill-name <name>` to stop one from loading.")).requiredOption("--skill-name <name>","Local skill name to uninstall.").action(async function(a){const r=Y(this,t),i=await r.api.uninstallLocalSkill({skillName:F(a.skillName,"--skill-name")});if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(lb(i))})}async function pb(e,t){const n=await jt(e);if(!n||typeof n!="object"||Array.isArray(n))throw new w(`${t} must be a JSON object.`);return n}function Ab(e,t){const n=e.command("trusted").description("Manage the trusted skill provider directory.");X(n.command("list").description("List trusted skill providers.")).action(async function(){const a=Y(this,t),r=await a.api.listTrustedSkillProviders();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Rt(r))}),X(n.command("upsert").description("Create or update a trusted provider from a JSON document.")).requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(a){const r=Y(this,t),i=await pb(F(a.input,"--input"),"Trusted provider input"),s=await r.api.upsertTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(I(s));return}r.io.stdout(Rt(s))}),X(n.command("delete").description("Delete one trusted provider by id.")).requiredOption("--provider-id <id>","Trusted provider id to delete.").action(async function(a){const r=Y(this,t),i={providerId:F(a.providerId,"--provider-id")},s=await r.api.deleteTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(I(s));return}r.io.stdout(Rt(s))}),X(n.command("reset").description("Reset trusted providers to the backend defaults.")).action(async function(){const a=Y(this,t),r=await a.api.resetTrustedSkillProviders();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Rt(r))})}function Zb(e,t){const n=e.command("skills").description("Manage local skills, the skill gallery, and trusted providers.");gb(n,t),hb(n,t),Ab(n,t)}function x(e){const t=e?.trim();return t||void 0}function fb(e){return{severity:x(e.severity)??"",code:x(e.code)??"",message:x(e.message)??"",relativePath:x(e.relativePath)}}function qn(e){return{id:x(e.id)??"",name:x(e.name)??"",type:x(e.type)??"",physicalPath:x(e.physicalPath)??"",gitUrl:x(e.gitUrl),createdAtUtc:x(e.createdAtUtc),updatedAtUtc:x(e.updatedAtUtc),bootstrapDiagnostics:(e.bootstrapDiagnostics??[]).map(fb)}}function pi(e){return{generatedAtUtc:x(e.generatedAtUtc),vaults:(e.items??[]).map(qn)}}function Rb(e){return e.length===0?`No vaults found.
148
+ `}function bh(e,t){const n=e.command("gallery").description("Search the skill gallery, read skill details, and start managed installs.");X(n.command("search").description("Search the skill gallery by keyword.")).option("--query <query>","Keyword to search for. Omit to list the gallery.").action(async function(a){const r=Y(this,t),i=await r.api.searchSkillGallery(C(a.query));if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(uh(i))}),X(n.command("detail").description("Show one gallery skill with installability, trust, and repository details.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").action(async function(a){const r=Y(this,t),i=await r.api.getSkillGalleryDetail(F(a.id,"--id"),F(a.source,"--source"));if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(dh(i))}),X(n.command("install").description("Start a managed install of one gallery skill.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").requiredOption("--skill-slug <slug>","Skill slug inside the source repository.").option("--version <version>","Optional version token to install.").action(async function(a){const r=Y(this,t),i=await r.api.installGallerySkill({id:F(a.id,"--id"),source:F(a.source,"--source"),skillSlug:F(a.skillSlug,"--skill-slug"),version:C(a.version)});if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(mh(i))})}var hh="The change applies to agent runs that start afterwards; a run already in progress keeps its skills.";function Za(e,t,n){const o=n?"enable":"disable";X(e.command(o).description(`${n?"Turn on":"Turn off"} one built-in skill by name. ${hh}`)).requiredOption("--skill-name <name>",`Built-in skill name to ${o}.`).action(async function(r){const i=Y(this,t),l=await i.api.setBuiltInSkillAvailability({slug:F(r.skillName,"--skill-name"),enabled:n});if(i.outputJson?i.io.stdout(I(l)):i.io.stdout(ch(l)),!l.succeeded)throw new mt(l.userMessage??`The built-in skill availability was not changed for ${l.slug??r.skillName}.`)})}function gh(e,t){const n=e.command("local").description("List, enable or disable built-in skills, and uninstall user-installed local skills.");X(n.command("list").description("List installed local skills with their managed install metadata.")).action(async function(){const a=Y(this,t),r=await a.api.listLocalSkills();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(lh(r))}),Za(n,t,!0),Za(n,t,!1),X(n.command("uninstall").description("Uninstall one user-installed local skill by name. Built-in skills cannot be uninstalled; use `skills local disable --skill-name <name>` to stop one from loading.")).requiredOption("--skill-name <name>","Local skill name to uninstall.").action(async function(a){const r=Y(this,t),i=await r.api.uninstallLocalSkill({skillName:F(a.skillName,"--skill-name")});if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(sh(i))})}async function ph(e,t){const n=await jt(e);if(!n||typeof n!="object"||Array.isArray(n))throw new U(`${t} must be a JSON object.`);return n}function Ah(e,t){const n=e.command("trusted").description("Manage the trusted skill provider directory.");X(n.command("list").description("List trusted skill providers.")).action(async function(){const a=Y(this,t),r=await a.api.listTrustedSkillProviders();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(ft(r))}),X(n.command("upsert").description("Create or update a trusted provider from a JSON document.")).requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(a){const r=Y(this,t),i=await ph(F(a.input,"--input"),"Trusted provider input"),l=await r.api.upsertTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(I(l));return}r.io.stdout(ft(l))}),X(n.command("delete").description("Delete one trusted provider by id.")).requiredOption("--provider-id <id>","Trusted provider id to delete.").action(async function(a){const r=Y(this,t),i={providerId:F(a.providerId,"--provider-id")},l=await r.api.deleteTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(I(l));return}r.io.stdout(ft(l))}),X(n.command("reset").description("Reset trusted providers to the backend defaults.")).action(async function(){const a=Y(this,t),r=await a.api.resetTrustedSkillProviders();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(ft(r))})}function Zh(e,t){const n=e.command("skills").description("Manage local skills, the skill gallery, and trusted providers.");gh(n,t),bh(n,t),Ah(n,t)}function K(e){const t=e?.trim();return t||void 0}function Rh(e){return{severity:K(e.severity)??"",code:K(e.code)??"",message:K(e.message)??"",relativePath:K(e.relativePath)}}function qn(e){return{id:K(e.id)??"",name:K(e.name)??"",type:K(e.type)??"",physicalPath:K(e.physicalPath)??"",gitUrl:K(e.gitUrl),createdAtUtc:K(e.createdAtUtc),updatedAtUtc:K(e.updatedAtUtc),bootstrapDiagnostics:(e.bootstrapDiagnostics??[]).map(Rh)}}function pi(e){return{generatedAtUtc:K(e.generatedAtUtc),vaults:(e.items??[]).map(qn)}}function fh(e){return e.length===0?`No vaults found.
149
149
  `:`Vaults (${e.length})
150
150
  ${ne([{header:"Vault ID",value:t=>t.id},{header:"Type",value:t=>t.type},{header:"Name",value:t=>t.name},{header:"Path",value:t=>t.physicalPath}],e)}
151
- `}function Ai(e,t=[]){return _([["id",e.id],["name",e.name],["type",e.type],["physicalPath",e.physicalPath],["gitUrl",e.gitUrl],["createdAtUtc",e.createdAtUtc],["updatedAtUtc",e.updatedAtUtc],["bootstrapDiagnostics",String(e.bootstrapDiagnostics.length)],...t])}function Eb(e){return{relativePath:x(e.relativePath)??"",fileName:x(e.fileName)??"",isDirectory:e.isDirectory===!0,extension:x(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:x(e.lastModifiedUtc),previewSupported:e.previewSupported===!0}}function Nb(e){return{vaultId:x(e.id)??"",deleted:e.deleted===!0,deleteLocalFilesRequested:e.deleteLocalFilesRequested===!0,localFilesDeletionStatus:x(e.localFilesDeletionStatus),localFilesDeleted:e.localFilesDeleted===!0}}function Gb(e){return`Vault deleted
152
- ${_([["vaultId",e.vaultId],["deleted",String(e.deleted)],["deleteLocalFilesRequested",String(e.deleteLocalFilesRequested)],["localFilesDeletionStatus",e.localFilesDeletionStatus],["localFilesDeleted",String(e.localFilesDeleted)]])}`}function Vb(e){return{vaultId:x(e.vaultId)??"",vaultName:x(e.vaultName)??"",physicalPath:x(e.physicalPath)??"",status:x(e.status)??"",errorCode:x(e.errorCode),message:x(e.message),isTruncated:e.isTruncated===!0,totalFileCount:typeof e.totalFileCount=="number"?e.totalFileCount:0,items:(e.items??[]).map(Eb)}}function Wb(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["status",e.status],["errorCode",e.errorCode],["message",e.message],["isTruncated",String(e.isTruncated)],["totalFileCount",String(e.totalFileCount)]]);return e.items.length===0?`Vault files
151
+ `}function Ai(e,t=[]){return _([["id",e.id],["name",e.name],["type",e.type],["physicalPath",e.physicalPath],["gitUrl",e.gitUrl],["createdAtUtc",e.createdAtUtc],["updatedAtUtc",e.updatedAtUtc],["bootstrapDiagnostics",String(e.bootstrapDiagnostics.length)],...t])}function Eh(e){return{relativePath:K(e.relativePath)??"",fileName:K(e.fileName)??"",isDirectory:e.isDirectory===!0,extension:K(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:K(e.lastModifiedUtc),previewSupported:e.previewSupported===!0}}function Vh(e){return{vaultId:K(e.id)??"",deleted:e.deleted===!0,deleteLocalFilesRequested:e.deleteLocalFilesRequested===!0,localFilesDeletionStatus:K(e.localFilesDeletionStatus),localFilesDeleted:e.localFilesDeleted===!0}}function Nh(e){return`Vault deleted
152
+ ${_([["vaultId",e.vaultId],["deleted",String(e.deleted)],["deleteLocalFilesRequested",String(e.deleteLocalFilesRequested)],["localFilesDeletionStatus",e.localFilesDeletionStatus],["localFilesDeleted",String(e.localFilesDeleted)]])}`}function Gh(e){return{vaultId:K(e.vaultId)??"",vaultName:K(e.vaultName)??"",physicalPath:K(e.physicalPath)??"",status:K(e.status)??"",errorCode:K(e.errorCode),message:K(e.message),isTruncated:e.isTruncated===!0,totalFileCount:typeof e.totalFileCount=="number"?e.totalFileCount:0,items:(e.items??[]).map(Eh)}}function Wh(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["status",e.status],["errorCode",e.errorCode],["message",e.message],["isTruncated",String(e.isTruncated)],["totalFileCount",String(e.totalFileCount)]]);return e.items.length===0?`Vault files
153
153
  ${t}No files found.
154
154
  `:`Vault files
155
155
  ${t}${ne([{header:"Relative Path",value:n=>n.relativePath},{header:"Directory",value:n=>n.isDirectory?"yes":"no"},{header:"Extension",value:n=>n.extension},{header:"Size",value:n=>String(n.sizeBytes)},{header:"Preview",value:n=>n.previewSupported?"yes":"no"}],e.items)}
156
- `}function Sb(e){return{vaultId:x(e.vaultId)??"",vaultName:x(e.vaultName)??"",physicalPath:x(e.physicalPath)??"",relativePath:x(e.relativePath)??"",fileName:x(e.fileName)??"",extension:x(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:x(e.lastModifiedUtc),status:x(e.status)??"",errorCode:x(e.errorCode),message:x(e.message),previewSupported:e.previewSupported===!0,contentTruncated:e.contentTruncated===!0,content:x(e.content)}}function vb(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["relativePath",e.relativePath],["fileName",e.fileName],["extension",e.extension],["sizeBytes",String(e.sizeBytes)],["lastModifiedUtc",e.lastModifiedUtc],["status",e.status],["errorCode",e.errorCode],["message",e.message],["previewSupported",String(e.previewSupported)],["contentTruncated",String(e.contentTruncated)]]);if(!e.content)return`Vault file preview
156
+ `}function Sh(e){return{vaultId:K(e.vaultId)??"",vaultName:K(e.vaultName)??"",physicalPath:K(e.physicalPath)??"",relativePath:K(e.relativePath)??"",fileName:K(e.fileName)??"",extension:K(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:K(e.lastModifiedUtc),status:K(e.status)??"",errorCode:K(e.errorCode),message:K(e.message),previewSupported:e.previewSupported===!0,contentTruncated:e.contentTruncated===!0,content:K(e.content)}}function vh(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["relativePath",e.relativePath],["fileName",e.fileName],["extension",e.extension],["sizeBytes",String(e.sizeBytes)],["lastModifiedUtc",e.lastModifiedUtc],["status",e.status],["errorCode",e.errorCode],["message",e.message],["previewSupported",String(e.previewSupported)],["contentTruncated",String(e.contentTruncated)]]);if(!e.content)return`Vault file preview
157
157
  ${t}`;const n=e.content.endsWith(`
158
158
  `)?"":`
159
159
  `;return`Vault file preview
160
160
  ${t}content
161
161
  -------
162
- ${e.content}${n}`}function Xb(e,t){X(e.command("create").description("Create a vault through the generated vault client.")).requiredOption("--name <name>","Vault display name.").requiredOption("--type <type>","Vault type, such as folder, obsidian, or coderef.").requiredOption("--physical-path <path>","Vault physical path.").option("--git-url <url>","Optional git remote URL for git-backed vaults.").action(async function(o){const a=Y(this,t),r=qn(await a.api.createVault({name:F(o.name,"--name"),type:F(o.type,"--type"),physicalPath:F(o.physicalPath,"--physical-path"),gitUrl:B(o.gitUrl)}));if(a.outputJson){a.io.stdout(I({vault:r}));return}a.io.stdout(`Vault created
163
- ${Ai(r)}`)})}function Yb(e,t){X(e.command("delete").description("Delete a vault by id and optionally request local file cleanup.")).requiredOption("--id <id>","Vault id to delete.").option("--delete-local-files","Request backend deletion of local vault files.").action(async function(o){const a=Y(this,t),r=Nb(await a.api.deleteVault(F(o.id,"--id"),o.deleteLocalFiles===!0));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Gb(r))})}function Ib(e,t){X(e.command("list").description("List files under a registered vault path.")).requiredOption("--id <id>","Vault id to browse.").option("--path <path>","Optional relative path under the vault root.").action(async function(o){const a=Y(this,t),r=Vb(await a.api.listVaultFiles(F(o.id,"--id"),B(o.path)));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Wb(r))})}function yb(e,t){X(e.command("preview").description("Preview supported file content from a registered vault.")).requiredOption("--id <id>","Vault id to browse.").requiredOption("--path <path>","Relative file path to preview.").action(async function(o){const a=Y(this,t),r=Sb(await a.api.previewVaultFile(F(o.id,"--id"),F(o.path,"--path")));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(vb(r))})}function Cb(e,t){X(e.command("list").description("List registered vaults through the generated vault client.")).action(async function(){const o=Y(this,t),a=pi(await o.api.listVaults());if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(Rb(a.vaults))})}function Bb(e,t){X(e.command("update").description("Update a vault by merging provided fields into the current vault snapshot.")).requiredOption("--id <id>","Vault id to update.").option("--name <name>","Updated vault display name.").option("--type <type>","Updated vault type.").option("--physical-path <path>","Updated vault physical path.").option("--git-url <url>","Updated git remote URL.").action(async function(o){const a=B(o.name),r=B(o.type),i=B(o.physicalPath),s=B(o.gitUrl);if(!a&&!r&&!i&&!s)throw new w("Provide at least one field to update: --name, --type, --physical-path, or --git-url.");const l=Y(this,t),c=F(o.id,"--id"),m=pi(await l.api.listVaults()).vaults.find(f=>f.id===c);if(!m)throw new xe(404,`Vault ${c} was not found in the latest vault snapshot.`);const p=qn(await l.api.updateVault(c,{name:a??m.name,type:r??m.type,physicalPath:i??m.physicalPath,gitUrl:s??m.gitUrl??null}));if(l.outputJson){l.io.stdout(I({vault:p}));return}l.io.stdout(`Vault updated
164
- ${Ai(p)}`)})}function Fb(e,t){const n=e.command("vault").description("Manage Hagi vaults and vault file browsing through generated backend APIs.");Cb(n,t),Xb(n,t),Bb(n,t),Yb(n,t);const o=n.command("files").description("Browse registered vault files and preview supported content.");Ib(o,t),yb(o,t)}function wb(e){return e.includes("--json")}function Zi(e=Dr(),t=!1){const n=new Fi;return n.name("hagi").description("HagiCode CLI for project, proposal, vault, chat, HagiTask, and scheduled plan management.").showHelpAfterError().exitOverride(),n.configureOutput({writeOut:o=>{e.io.stdout(o)},writeErr:o=>{t||e.io.stderr(o)},getOutHelpWidth:()=>100,getErrHelpWidth:()=>100}),Wm(n),Jh(n,e),ob(n,e),Fb(n,e),ym(n,e),Om(n,e),dh(n,e),Zb(n,e),n}function Ub(e,t,n){return e.exitCode===0||e.code==="commander.helpDisplayed"||e.code==="commander.version"?0:(n&&t.io.stderr(Kr({exitCode:P.USAGE,message:e.message},{json:!0})),P.USAGE)}async function Jb(e=process.argv,t=Dr()){const n=wb(e),o=Zi(t,n);try{return await o.parseAsync([...e]),0}catch(a){if(a instanceof Bi)return Ub(a,t,n);const r=kr(a,{baseUrl:Au()});return t.io.stderr(Kr(r,{json:n})),r.exitCode}}Object.defineProperty(exports,"EXIT_CODES",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"createCliApp",{enumerable:!0,get:function(){return Zi}});Object.defineProperty(exports,"runCli",{enumerable:!0,get:function(){return Jb}});
162
+ ${e.content}${n}`}function Xh(e,t){X(e.command("create").description("Create a vault through the generated vault client.")).requiredOption("--name <name>","Vault display name.").requiredOption("--type <type>","Vault type, such as folder, obsidian, or coderef.").requiredOption("--physical-path <path>","Vault physical path.").option("--git-url <url>","Optional git remote URL for git-backed vaults.").action(async function(o){const a=Y(this,t),r=qn(await a.api.createVault({name:F(o.name,"--name"),type:F(o.type,"--type"),physicalPath:F(o.physicalPath,"--physical-path"),gitUrl:C(o.gitUrl)}));if(a.outputJson){a.io.stdout(I({vault:r}));return}a.io.stdout(`Vault created
163
+ ${Ai(r)}`)})}function Yh(e,t){X(e.command("delete").description("Delete a vault by id and optionally request local file cleanup.")).requiredOption("--id <id>","Vault id to delete.").option("--delete-local-files","Request backend deletion of local vault files.").action(async function(o){const a=Y(this,t),r=Vh(await a.api.deleteVault(F(o.id,"--id"),o.deleteLocalFiles===!0));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Nh(r))})}function Ih(e,t){X(e.command("list").description("List files under a registered vault path.")).requiredOption("--id <id>","Vault id to browse.").option("--path <path>","Optional relative path under the vault root.").action(async function(o){const a=Y(this,t),r=Gh(await a.api.listVaultFiles(F(o.id,"--id"),C(o.path)));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Wh(r))})}function yh(e,t){X(e.command("preview").description("Preview supported file content from a registered vault.")).requiredOption("--id <id>","Vault id to browse.").requiredOption("--path <path>","Relative file path to preview.").action(async function(o){const a=Y(this,t),r=Sh(await a.api.previewVaultFile(F(o.id,"--id"),F(o.path,"--path")));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(vh(r))})}function Bh(e,t){X(e.command("list").description("List registered vaults through the generated vault client.")).action(async function(){const o=Y(this,t),a=pi(await o.api.listVaults());if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(fh(a.vaults))})}function Ch(e,t){X(e.command("update").description("Update a vault by merging provided fields into the current vault snapshot.")).requiredOption("--id <id>","Vault id to update.").option("--name <name>","Updated vault display name.").option("--type <type>","Updated vault type.").option("--physical-path <path>","Updated vault physical path.").option("--git-url <url>","Updated git remote URL.").action(async function(o){const a=C(o.name),r=C(o.type),i=C(o.physicalPath),l=C(o.gitUrl);if(!a&&!r&&!i&&!l)throw new U("Provide at least one field to update: --name, --type, --physical-path, or --git-url.");const s=Y(this,t),c=F(o.id,"--id"),m=pi(await s.api.listVaults()).vaults.find(R=>R.id===c);if(!m)throw new Ke(404,`Vault ${c} was not found in the latest vault snapshot.`);const p=qn(await s.api.updateVault(c,{name:a??m.name,type:r??m.type,physicalPath:i??m.physicalPath,gitUrl:l??m.gitUrl??null}));if(s.outputJson){s.io.stdout(I({vault:p}));return}s.io.stdout(`Vault updated
164
+ ${Ai(p)}`)})}function Fh(e,t){const n=e.command("vault").description("Manage Hagi vaults and vault file browsing through generated backend APIs.");Bh(n,t),Xh(n,t),Ch(n,t),Yh(n,t);const o=n.command("files").description("Browse registered vault files and preview supported content.");Ih(o,t),yh(o,t)}function Uh(e){return e.includes("--json")}function Zi(e=Dr(),t=!1){const n=new Fi;return n.name("hagi").description("HagiCode CLI for project, proposal, vault, chat, HagiTask, and scheduled plan management.").showHelpAfterError().exitOverride(),n.configureOutput({writeOut:o=>{e.io.stdout(o)},writeErr:o=>{t||e.io.stderr(o)},getOutHelpWidth:()=>100,getErrHelpWidth:()=>100}),Wm(n),Jb(n,e),oh(n,e),Fh(n,e),ym(n,e),Om(n,e),db(n,e),Zh(n,e),n}function wh(e,t,n){return e.exitCode===0||e.code==="commander.helpDisplayed"||e.code==="commander.version"?0:(n&&t.io.stderr(xr({exitCode:P.USAGE,message:e.message},{json:!0})),P.USAGE)}async function Jh(e=process.argv,t=Dr()){const n=Uh(e),o=Zi(t,n);try{return await o.parseAsync([...e]),0}catch(a){if(a instanceof Ci)return wh(a,t,n);const r=kr(a,{baseUrl:Au()});return t.io.stderr(xr(r,{json:n})),r.exitCode}}Object.defineProperty(exports,"EXIT_CODES",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"createCliApp",{enumerable:!0,get:function(){return Zi}});Object.defineProperty(exports,"runCli",{enumerable:!0,get:function(){return Jh}});