@augmentcode/auggie 1.2.0-prerelease.202610211516 → 1.2.0-prerelease.202610220922

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.
@@ -129,7 +129,7 @@ gpgsig`+sm(s)+`
129
129
  `).join(`
130
130
  `)}`:"",h=typeof n=="string"?n.toUpperCase():String(n??"INFO").toUpperCase();return`${t} ${h.padEnd(5)}${l} ${r}${d}${u}`})),SJ=we.default.format.combine(we.default.format.timestamp(),we.default.format.errors({stack:!0}),RZ(),we.default.format(e=>{let t=e[Hh];return t!==void 0&&e.meta_level===void 0&&(e.meta_level=t),e})(),we.default.format.json()),Vr,ZZ=Kh,zh,VZ,Ya=!1,gZ,ya,XJ={fallback:"The requested log file is unavailable. Logs will use the default file.",disabled:"File logging is unavailable. The session will continue without file logs.",runtime:"A logging error occurred. The session will continue, but file logs may be incomplete."},pZ=new Set,Ca=[],Th=!1;function WJ(){if(!Th){Th=!0;try{for(;gZ&&Ca.length>0;){let e=Ca.shift();if(e)try{gZ(XJ[e])}catch{}}}finally{Th=!1}}}function Dh(e){Ya||pZ.has(e)||(pZ.add(e),Ca.push(e),WJ())}function Mh(){Dh("runtime")}function Oh(){return Vr||(Vr=we.default.createLogger({level:IJ(),transports:[new we.default.transports.Console({silent:!0})]}),Vr.on("error",Mh),Vr.once("finish",()=>{ya=void 0})),Vr}var Lh=class extends we.default.transports.Stream{destination;constructor(t,n){let r=bJ(t,{flags:"a",mode:384});super({stream:r,format:n}),this.destination=r,r.on("error",()=>{this.silent=!0,Mh()})}_final(t){if(this.destination.destroyed||this.destination.writableFinished){t();return}this.destination.end(()=>t())}close(){this.destination.end()}};async function GJ(e){let t=EZ.exec(e)?.[1];if(t!==void 0){let n=Number(t);if(!Number.isSafeInteger(n)||n<3)throw new Error("Invalid inherited log descriptor");let r=await fZ(e);if(!(r.isFile()||r.isFIFO()))throw new Error("Invalid inherited log target");await Qh(e,_h.W_OK);return}await fJ(mZ(e),{recursive:!0}),await Qh(mZ(e),_h.W_OK);try{if(await Qh(e,_h.W_OK),!(await fZ(e)).isFile())throw new Error("Invalid log file target")}catch(n){if(n.code!=="ENOENT")throw n}}async function SZ(e,t,n){let r=Oh(),o=()=>ya===n&&!Ya;if(!o())return;let i=e.shift();if(!i){r.clear().add(new we.default.transports.Console({silent:!0})),Dh("disabled");return}let s;try{if(await GJ(i),!o())return;let l=process.env.AUGMENT_LOG_FORMAT==="json"?SJ:ZJ;s=EZ.test(i)?new Lh(i,l):new we.default.transports.File({filename:i,options:{flags:"a",mode:384},format:l})}catch{await SZ(e,t,n);return}s.on("error",()=>{s.silent=!0,Mh()}),ZZ=i,r.clear().add(s),i!==t&&Dh("fallback")}function IJ(){return zh??(process.env.LOG_LEVEL||"info")}function NJ(e,t){zh=t||process.env.LOG_LEVEL||"info";let n=Oh();if(n.level=zh,Ya)return;let r=AZ(e&&e!=="-"?QV(e):Kh);if(VZ===r)return;VZ=r;let o={};ya=o,ZZ=r,n.clear().add(new we.default.transports.Console({silent:!0})),SZ([...new Set([r,AZ(Kh)])],r,o)}var L=new Proxy({},{get(e,t,n){return Vr||NJ(),Reflect.get(Vr,t,n)}});function XZ(){Ya=!0,ya=void 0,Ca.length=0,Oh().clear().add(new we.default.transports.Console({silent:!0}))}var It=class extends Error{statusCode;statusText;responseBody;serverMessage;errorReason;constructor(t,n,r,o,i){let s=o??(r||void 0),l=s&&s.length>200?`${s.slice(0,200)}\u2026[truncated]`:s;super(l?`API call failed: ${t} ${n}: ${l}`:`API call failed: ${t} ${n}`),this.name="PoseidonRpcError",this.statusCode=t,this.statusText=n,this.responseBody=r,this.serverMessage=o,this.errorReason=i}get status(){return this.statusCode}},Li=class extends Error{constructor(t){super(t),this.name="UsageError"}},bo=class extends Error{residentId;resourceVersion;constructor(t,n){super(`Unable to find resident ${t} or resource version ${n}`),this.name="ResidentVersionLookupError",this.residentId=t,this.resourceVersion=n}},fo;(function(e){e[e.REASON_UNSPECIFIED=0]="REASON_UNSPECIFIED",e[e.END_TURN=1]="END_TURN",e[e.MAX_TOKENS=2]="MAX_TOKENS",e[e.TOOL_USE_REQUESTED=3]="TOOL_USE_REQUESTED",e[e.SAFETY=4]="SAFETY",e[e.RECITATION=5]="RECITATION",e[e.MALFORMED_FUNCTION_CALL=6]="MALFORMED_FUNCTION_CALL",e[e.STOP_REASON_ERROR=7]="STOP_REASON_ERROR"})(fo||(fo={}));var jh;(function(e){e.chat="CHAT",e.agent="AGENT",e.remoteAgent="REMOTE_AGENT",e.orientation="ORIENTATION",e.cliAgent="CLI_AGENT",e.cliNoninteractive="CLI_NONINTERACTIVE"})(jh||(jh={}));var Ph;(function(e){e[e.UNSET=0]="UNSET",e[e.POSITIVE=1]="POSITIVE",e[e.NEGATIVE=2]="NEGATIVE"})(Ph||(Ph={}));var qh;(function(e){e[e.TEXT=0]="TEXT",e[e.TOOL_RESULT=1]="TOOL_RESULT",e[e.IMAGE=2]="IMAGE",e[e.IMAGE_ID=3]="IMAGE_ID",e[e.IDE_STATE=4]="IDE_STATE",e[e.EDIT_EVENTS=5]="EDIT_EVENTS",e[e.CHECKPOINT_REF=6]="CHECKPOINT_REF",e[e.FILE=8]="FILE",e[e.FILE_ID=9]="FILE_ID",e[e.HISTORY_SUMMARY=10]="HISTORY_SUMMARY"})(qh||(qh={}));var $h;(function(e){e[e.RAW_RESPONSE=0]="RAW_RESPONSE",e[e.SUGGESTED_QUESTIONS=1]="SUGGESTED_QUESTIONS",e[e.MAIN_TEXT_FINISHED=2]="MAIN_TEXT_FINISHED",e[e.WORKSPACE_FILE_CHUNKS=3]="WORKSPACE_FILE_CHUNKS",e[e.RELEVANT_SOURCES=4]="RELEVANT_SOURCES",e[e.TOOL_USE=5]="TOOL_USE",e[e.AGENT_MEMORY=6]="AGENT_MEMORY",e[e.TOOL_USE_START=7]="TOOL_USE_START",e[e.THINKING=8]="THINKING",e[e.BILLING_METADATA=9]="BILLING_METADATA",e[e.TOKEN_USAGE=10]="TOKEN_USAGE"})($h||($h={}));var eb;(function(e){e[e.ALWAYS_ATTACHED=0]="ALWAYS_ATTACHED",e[e.MANUAL=1]="MANUAL",e[e.AGENT_REQUESTED=2]="AGENT_REQUESTED"})(eb||(eb={}));var D;(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"})(D||(D={}));function Hi(e){let t=D[e];return typeof t!="string"?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var Ua;function WZ(e){if(!Ua){Ua={};for(let t of Object.values(D))typeof t!="string"&&(Ua[Hi(t)]=t)}return Ua[e]}var se=class e extends Error{constructor(t,n=D.Unknown,r,o,i){super(FJ(t,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=t,this.code=n,this.metadata=new Headers(r??{}),this.details=o??[],this.cause=i}static from(t,n=D.Unknown){return t instanceof e?t:t instanceof Error?t.name=="AbortError"||t.name=="TimeoutError"?new e(t.message,D.Canceled):new e(t.message,n,void 0,void 0,t):new e(String(t),n,void 0,void 0,t)}static[Symbol.hasInstance](t){return t instanceof Error?Object.getPrototypeOf(t)===e.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){let n=t.kind==="message"?{getMessage:o=>o===t.typeName?t:void 0}:t,r=[];for(let o of this.details){if("desc"in o){n.getMessage(o.desc.typeName)&&r.push(ke(o.desc,o.value));continue}let i=n.getMessage(o.type);if(i)try{r.push(nn(i,o.value))}catch{}}return r}};function FJ(e,t){return e.length?`[${Hi(t)}] ${e}`:`[${Hi(t)}]`}function tb(...e){let t=new Headers;for(let n of e)n.forEach((r,o)=>{t.append(o,r)});return t}function GZ(e,t){let n={};for(let r of e.methods){let o=t(r);o!=null&&(n[r.localName]=o)}return n}var wa=1;function IZ(e,t,n=!1){if(t>e){let r=`message size is larger than configured readMaxBytes ${e}`;throw n&&(r=`message size ${t} is larger than configured readMaxBytes ${e}`),new se(r,D.ResourceExhausted)}}function BJ(e){return new nb(e)}var nb=class{constructor(t){this.readMaxBytes=t,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((t,n)=>t+n.byteLength,0)}decode(t){this.buf.push(t);let n=[];for(;;){let r=this.pop();if(!r)break;n.push(r)}return n}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){let t=this.env;return this.env=void 0,t}}head(){if(!this.cons(this.header))return;let t=this.headerView.getUint8(0),n=this.headerView.getUint32(1);return IZ(this.readMaxBytes,n,!0),{flags:t,data:new Uint8Array(n)}}cons(t){let n=t.byteLength;if(this.byteLength<n)return!1;let r=0;for(;r<n;){let o=this.buf.shift();o.byteLength>n-r?(t.set(o.subarray(0,n-r),r),this.buf.unshift(o.subarray(n-r)),r+=n-r):(t.set(o,r),r+=o.byteLength)}return!0}};function rb(e){let t,n=BJ(4294967295);return new ReadableStream({start(){t=e.getReader()},async pull(r){let o=!1;for(;!o;){let i=await t.read();if(i.done)n.byteLength>0&&r.error(new se("protocol error: incomplete envelope",D.InvalidArgument)),r.close();else for(let s of n.decode(i.value))r.enqueue(s),o=!0}}})}function ob(e,t){let n=new Uint8Array(t.length+5);n.set(t,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,e),r.setUint32(1,t.length),n}var CJ=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={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(l,a){s=e[i](s),o(l,a,s.done,s.value)})}}function o(i,s,l,a){Promise.resolve(a).then(function(c){i({value:c,done:l})},s)}},Mi=function(e){return this instanceof Mi?(this.v=e,this):new Mi(e)},YJ=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(b){return function(f){return Promise.resolve(f).then(b,u)}}function l(b,f){r[b]&&(o[b]=function(A){return new Promise(function(m,V){i.push([b,A,m,V])>1||a(b,A)})},f&&(o[b]=f(o[b])))}function a(b,f){try{c(r[b](f))}catch(A){h(i[0][3],A)}}function c(b){b.value instanceof Mi?Promise.resolve(b.value.v).then(d,u):h(i[0][2],b)}function d(b){a("next",b)}function u(b){a("throw",b)}function h(b,f){b(f),i.shift(),i.length&&a(i[0][0],i[0][1])}},yJ=function(e){var t,n;return t={},r("next"),r("throw",function(o){throw o}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(o,i){t[o]=e[o]?function(s){return(n=!n)?{value:Mi(e[o](s)),done:!1}:i?i(s):s}:i}};function NZ(e){return YJ(this,arguments,function*(){yield Mi(yield*yJ(CJ(e)))})}var FZ=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={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(l,a){s=e[i](s),o(l,a,s.done,s.value)})}}function o(i,s,l,a){Promise.resolve(a).then(function(c){i({value:c,done:l})},s)}},mo=function(e){return this instanceof mo?(this.v=e,this):new mo(e)},UJ=function(e){var t,n;return t={},r("next"),r("throw",function(o){throw o}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(o,i){t[o]=e[o]?function(s){return(n=!n)?{value:mo(e[o](s)),done:!1}:i?i(s):s}:i}},wJ=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(b){return function(f){return Promise.resolve(f).then(b,u)}}function l(b,f){r[b]&&(o[b]=function(A){return new Promise(function(m,V){i.push([b,A,m,V])>1||a(b,A)})},f&&(o[b]=f(o[b])))}function a(b,f){try{c(r[b](f))}catch(A){h(i[0][3],A)}}function c(b){b.value instanceof mo?Promise.resolve(b.value.v).then(d,u):h(i[0][2],b)}function d(b){a("next",b)}function u(b){a("throw",b)}function h(b,f){b(f),i.shift(),i.length&&a(i[0][0],i[0][1])}};function ib(e,t){return GZ(e,n=>{switch(n.methodKind){case"unary":return xJ(t,n);case"server_streaming":return vJ(t,n);case"client_streaming":return JJ(t,n);case"bidi_streaming":return kJ(t,n);default:return null}})}function xJ(e,t){return async(n,r)=>{var o,i;let s=await e.unary(t,r?.signal,r?.timeoutMs,r?.headers,n,r?.contextValues);return(o=r?.onHeader)===null||o===void 0||o.call(r,s.header),(i=r?.onTrailer)===null||i===void 0||i.call(r,s.trailer),s.message}}function vJ(e,t){return(n,r)=>BZ(e.stream(t,r?.signal,r?.timeoutMs,r?.headers,NZ([n]),r?.contextValues),r)}function JJ(e,t){return async(n,r)=>{var o,i,s,l,a,c;let d=await e.stream(t,r?.signal,r?.timeoutMs,r?.headers,n,r?.contextValues);(a=r?.onHeader)===null||a===void 0||a.call(r,d.header);let u,h=0;try{for(var b=!0,f=FZ(d.message),A;A=await f.next(),o=A.done,!o;b=!0)l=A.value,b=!1,u=l,h++}catch(m){i={error:m}}finally{try{!b&&!o&&(s=f.return)&&await s.call(f)}finally{if(i)throw i.error}}if(!u)throw new se("protocol error: missing response message",D.Unimplemented);if(h>1)throw new se("protocol error: received extra messages for client streaming method",D.Unimplemented);return(c=r?.onTrailer)===null||c===void 0||c.call(r,d.trailer),u}}function kJ(e,t){return(n,r)=>BZ(e.stream(t,r?.signal,r?.timeoutMs,r?.headers,n,r?.contextValues),r)}function BZ(e,t){let n=(function(){return wJ(this,arguments,function*(){var r,o;let i=yield mo(e);(r=t?.onHeader)===null||r===void 0||r.call(t,i.header),yield mo(yield*UJ(FZ(i.message))),(o=t?.onTrailer)===null||o===void 0||o.call(t,i.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function CZ(...e){let t=new AbortController,n=e.filter(o=>o!==void 0).concat(t.signal);for(let o of n){if(o.aborted){r.apply(o);break}o.addEventListener("abort",r)}function r(){t.signal.aborted||t.abort(sb(this));for(let o of n)o.removeEventListener("abort",r)}return t}function YZ(e){let t=new AbortController,n=()=>{t.abort(new se("the operation timed out",D.DeadlineExceeded))},r;return e!==void 0&&(e<=0?n():r=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(r)}}function sb(e){if(!e.aborted)return;if(e.reason!==void 0)return e.reason;let t=new Error("This operation was aborted");return t.name="AbortError",t}function xa(){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 va(e,t,...n){if(n.length>0)throw new Error;return e.services[t]}function Ja(e,t){return e.toString().replace(/\/?$/,`/${t.parent.typeName}/${t.name}`)}function lb(e,t){return ke(e,t)}function yZ(e,t){function n(r){return r.done===!0?r:{done:r.done,value:lb(e,r.value)}}return{[Symbol.asyncIterator](){let r=t[Symbol.asyncIterator](),o={next:()=>r.next().then(n)};return r.throw!==void 0&&(o.throw=i=>r.throw(i).then(n)),r.return!==void 0&&(o.return=i=>r.return(i).then(n)),o}}}function ab(e,t){if(!t)return e;for(let n of t.concat().reverse())e=n(e);return e}function ka(e){var t;let n=Object.assign({},e);return(t=n.ignoreUnknownFields)!==null&&t!==void 0||(n.ignoreUnknownFields=!0),n}function _a(e,t,n,r){let o=t?UZ(e.input,r):wZ(e.input,n);return{parse:(t?UZ(e.output,r):wZ(e.output,n)).parse,serialize:o.serialize}}function UZ(e,t){return{parse(n){try{return nn(e,n,t)}catch(r){let o=r instanceof Error?r.message:String(r);throw new se(`parse binary: ${o}`,D.Internal)}},serialize(n){try{return Vi(e,n,t)}catch(r){let o=r instanceof Error?r.message:String(r);throw new se(`serialize binary: ${o}`,D.Internal)}}}}function wZ(e,t){var n,r;let o=(n=t?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,i=(r=t?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,s=ka(t);return{parse(l){try{let a=i.decode(l);return xV(e,a,s)}catch(a){throw se.from(a,D.InvalidArgument)}},serialize(l){try{let a=CV(e,l,s);return o.encode(a)}catch(a){throw se.from(a,D.Internal)}}}}var _J=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var xZ="application/proto",vZ="application/json",JZ="application/connect+proto",kZ="application/connect+json";function _Z(e){let t=e?.match(_J);if(!t)return;let n=!!t[1],r=!!t[3];return{stream:n,binary:r}}function Oi(e,t,n){var r;if(t&&new Headers(t).forEach((l,a)=>n.metadata.append(a,l)),typeof e!="object"||e==null||Array.isArray(e))throw n;let o=n.code;"code"in e&&typeof e.code=="string"&&(o=(r=WZ(e.code))!==null&&r!==void 0?r:o);let i=e.message;if(i!=null&&typeof i!="string")throw n;let s=new se(i??"",o,t);if("details"in e&&Array.isArray(e.details))for(let l of e.details){if(l===null||typeof l!="object"||Array.isArray(l)||typeof l.type!="string"||typeof l.value!="string")throw n;try{s.details.push({type:l.type,value:Hr(l.value),debug:l.debug})}catch{throw n}}return s}var Qa=2;function cb(e){let t=new se("invalid end stream",D.Unknown),n;try{n=JSON.parse(typeof e=="string"?e:new TextDecoder().decode(e))}catch{throw t}if(typeof n!="object"||n==null||Array.isArray(n))throw t;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw t;for(let[i,s]of Object.entries(n.metadata)){if(!Array.isArray(s)||s.some(l=>typeof l!="string"))throw t;for(let l of s)r.append(i,l)}}let o="error"in n&&n.error!=null?Oi(n.error,r,t):void 0;return{metadata:r,error:o}}var gr="Content-Type",QZ="Content-Length",ji="Content-Encoding";var db="Accept-Encoding";var TZ="Connect-Timeout-Ms",Ta="Connect-Protocol-Version",ub="User-Agent";function KZ(e){switch(e){case 400:return D.Internal;case 401:return D.Unauthenticated;case 403:return D.PermissionDenied;case 404:return D.Unimplemented;case 429:return D.Unavailable;case 502:return D.Unavailable;case 503:return D.Unavailable;case 504:return D.Unavailable;default:return D.Unknown}}function Ka(e){let t=new Headers,n=new Headers;return e.forEach((r,o)=>{o.toLowerCase().startsWith("trailer-")?n.append(o.substring(8),r):t.append(o,r)}),[t,n]}var za="1";function Da(e,t,n,r,o){let i=new Headers(r??{});return n!==void 0&&i.set(TZ,`${n}`),i.set(gr,e=="unary"?t?xZ:vZ:t?JZ:kZ),i.set(Ta,za),!i.has(ub)&&o&&i.set(ub,"connect-es/2.0.4"),i}function La(e,t,n,r){let o=r.get(gr),i=_Z(o);if(n!==200){let l=new se(`HTTP ${n}`,KZ(n),r);if(e=="unary"&&i&&!i.binary)return{isUnaryError:!0,unaryError:l};throw l}let s={binary:t,stream:e!=="unary"};if(i?.binary!==s.binary||i.stream!==s.stream)throw new se(`unsupported content type ${o}`,i===void 0?D.Unknown:D.Internal,r);return{isUnaryError:!1}}var zZ="application/";function KJ(e,t){return t?bi(e,"url"):encodeURIComponent(new TextDecoder().decode(e))}function hb(e,t,n){let r=`?connect=v${za}`,o=e.header.get(gr);o?.indexOf(zZ)===0&&(r+="&encoding="+encodeURIComponent(o.slice(zZ.length)));let i=e.header.get(ji);i!==null&&i!=="identity"&&(r+="&compression="+encodeURIComponent(i),n=!0),n&&(r+="&base64=1"),r+="&message="+KJ(t,n);let s=e.url+r,l=new Headers(e.header);for(let a of[Ta,gr,QZ,ji,db])l.delete(a);return Object.assign(Object.assign({},e),{requestMethod:"GET",url:s,header:l})}function bb(e){let t=ab(e.next,e.interceptors),[n,r,o]=DZ(e),i=Object.assign(Object.assign({},e.req),{message:lb(e.req.method.input,e.req.message),signal:n});return t(i).then(s=>(o(),s),r)}function fb(e){let t=ab(e.next,e.interceptors),[n,r,o]=DZ(e),i=Object.assign(Object.assign({},e.req),{message:yZ(e.req.method.input,e.req.message),signal:n}),s=!1;return n.addEventListener("abort",function(){var l,a;let c=e.req.message[Symbol.asyncIterator]();s||(l=c.throw)===null||l===void 0||l.call(c,this.reason).catch(()=>{}),(a=c.return)===null||a===void 0||a.call(c).catch(()=>{})}),t(i).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){let a=l.message[Symbol.asyncIterator]();return{next(){return a.next().then(c=>(c.done==!0&&(s=!0,o()),c),r)}}}}}),r)}function DZ(e){let{signal:t,cleanup:n}=YZ(e.timeoutMs),r=CZ(e.signal,t);return[r.signal,function(i){let s=se.from(t.aborted?sb(t):i);return r.abort(s),n(),Promise.reject(s)},function(){n(),r.abort()}]}var LZ=k("ChVnb29nbGUvYXBpL2h0dHAucHJvdG8SCmdvb2dsZS5hcGkiVAoESHR0cBIjCgVydWxlcxgBIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGUSJwofZnVsbHlfZGVjb2RlX3Jlc2VydmVkX2V4cGFuc2lvbhgCIAEoCCKBAgoISHR0cFJ1bGUSEAoIc2VsZWN0b3IYASABKAkSDQoDZ2V0GAIgASgJSAASDQoDcHV0GAMgASgJSAASDgoEcG9zdBgEIAEoCUgAEhAKBmRlbGV0ZRgFIAEoCUgAEg8KBXBhdGNoGAYgASgJSAASLwoGY3VzdG9tGAggASgLMh0uZ29vZ2xlLmFwaS5DdXN0b21IdHRwUGF0dGVybkgAEgwKBGJvZHkYByABKAkSFQoNcmVzcG9uc2VfYm9keRgMIAEoCRIxChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZUIJCgdwYXR0ZXJuIi8KEUN1c3RvbUh0dHBQYXR0ZXJuEgwKBGtpbmQYASABKAkSDAoEcGF0aBgCIAEoCUJnCg5jb20uZ29vZ2xlLmFwaUIJSHR0cFByb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIER0FQSWIGcHJvdG8z");var Pi=k("Chxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvEgpnb29nbGUuYXBpOksKBGh0dHASHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiwyrwiIAEoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBGh0dHBCbgoOY29tLmdvb2dsZS5hcGlCEEFubm90YXRpb25zUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgRHQVBJYgZwcm90bzM",[LZ,tn]),HZ=eu(Pi,0);var Cn=k("Chdnb29nbGUvcnBjL3N0YXR1cy5wcm90bxIKZ29vZ2xlLnJwYyJOCgZTdGF0dXMSDAoEY29kZRgBIAEoBRIPCgdtZXNzYWdlGAIgASgJEiUKB2RldGFpbHMYAyADKAsyFC5nb29nbGUucHJvdG9idWYuQW55QmEKDmNvbS5nb29nbGUucnBjQgtTdGF0dXNQcm90b1ABWjdnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL3JwYy9zdGF0dXM7c3RhdHVz+AEBogIDUlBDYgZwcm90bzM",[nr]);var Vt=k("CiBiYXNlL2Jsb2JfbmFtZXMvYmxvYl9uYW1lcy5wcm90bxIPYmFzZS5ibG9iX25hbWVzImcKBUJsb2JzEiMKFmJhc2VsaW5lX2NoZWNrcG9pbnRfaWQYASABKAlIAIgBARINCgVhZGRlZBgCIAMoDBIPCgdkZWxldGVkGAMgAygMQhkKF19iYXNlbGluZV9jaGVja3BvaW50X2lkYgZwcm90bzM");var OZ=k("Ci9zZXJ2aWNlcy9iaWxsaW5nL2NlbnRyYWwvYmlsbGluZ19lbnRpdGllcy5wcm90bxIHYmlsbGluZypPCglVc2FnZVVuaXQSFgoSVVNBR0VfVU5JVF9VTktOT1dOEAASFgoSVVNBR0VfVU5JVF9DUkVESVRTEAESEgoOVVNBR0VfVU5JVF9VU0QQAkJQWk5naXRodWIuY29tL2F1Z21lbnRjb2RlL2F1Z21lbnQvc2VydmljZXMvYmlsbGluZy9jZW50cmFsL2JpbGxpbmdfZW50aXRpZXNfcHJvdG9iBnByb3RvMw",[ee]),MZ;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.CREDITS=1]="CREDITS",e[e.USD=2]="USD"})(MZ||(MZ={}));var n2=k("Ch1zZXJ2aWNlcy9saWIvcHJvdG8vY2hhdC5wcm90bxIEY2hhdCJ+ChVDaGF0UmVxdWVzdEVkaXRFdmVudHMSLgoLZWRpdF9ldmVudHMYASADKAsyGS5jaGF0LkNoYXRSZXF1ZXN0RmlsZUVkaXQSKgoGc291cmNlGAIgASgOMhUuY2hhdC5FZGl0RXZlbnRTb3VyY2VIAIgBAUIJCgdfc291cmNlIoYBCg9DaGF0UmVxdWVzdEZpbGUSEQoJZmlsZV9kYXRhGAEgASgJEhIKCm1lZGlhX3R5cGUYAiABKAkSFgoJZmlsZV9uYW1lGAMgASgJSACIAQESFwoKcGFnZV9jb3VudBgEIAEoBUgBiAEBQgwKCl9maWxlX25hbWVCDQoLX3BhZ2VfY291bnQitQEKE0NoYXRSZXF1ZXN0RmlsZUVkaXQSDAoEcGF0aBgBIAEoCRIdChBiZWZvcmVfYmxvYl9uYW1lGAIgASgJSACIAQESHAoPYWZ0ZXJfYmxvYl9uYW1lGAMgASgJSAGIAQESKgoFZWRpdHMYBCADKAsyGy5jaGF0LkNoYXRSZXF1ZXN0U2luZ2xlRWRpdEITChFfYmVmb3JlX2Jsb2JfbmFtZUISChBfYWZ0ZXJfYmxvYl9uYW1lIrgBChNDaGF0UmVxdWVzdElkZVN0YXRlEjQKEXdvcmtzcGFjZV9mb2xkZXJzGAEgAygLMhkuY2hhdC5Xb3Jrc3BhY2VGb2xkZXJJbmZvEiMKG3dvcmtzcGFjZV9mb2xkZXJzX3VuY2hhbmdlZBgCIAEoCBIxChBjdXJyZW50X3Rlcm1pbmFsGAMgASgLMhIuY2hhdC5UZXJtaW5hbEluZm9IAIgBAUITChFfY3VycmVudF90ZXJtaW5hbCJNChBDaGF0UmVxdWVzdEltYWdlEhIKCmltYWdlX2RhdGEYASABKAkSJQoGZm9ybWF0GAIgASgOMhUuY2hhdC5JbWFnZUZvcm1hdFR5cGUidQoVQ2hhdFJlcXVlc3RTaW5nbGVFZGl0EhkKEWJlZm9yZV9saW5lX3N0YXJ0GAEgASgNEhMKC2JlZm9yZV90ZXh0GAIgASgJEhgKEGFmdGVyX2xpbmVfc3RhcnQYAyABKA0SEgoKYWZ0ZXJfdGV4dBgEIAEoCSIiCg9DaGF0UmVxdWVzdFRleHQSDwoHY29udGVudBgBIAEoCSLxAgoVQ2hhdFJlcXVlc3RUb29sUmVzdWx0EhMKC3Rvb2xfdXNlX2lkGAEgASgJEg8KB2NvbnRlbnQYAiABKAkSEAoIaXNfZXJyb3IYAyABKAgSFwoKcmVxdWVzdF9pZBgEIAEoCUgAiAEBEjIKDWNvbnRlbnRfbm9kZXMYBSADKAsyGy5jaGF0LlRvb2xSZXN1bHRDb250ZW50Tm9kZRIYCgtkdXJhdGlvbl9tcxgGIAEoA0gBiAEBEhoKDXN0YXJ0X3RpbWVfbXMYByABKANIAogBARI7CghtZXRhZGF0YRgIIAMoCzIpLmNoYXQuQ2hhdFJlcXVlc3RUb29sUmVzdWx0Lk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19yZXF1ZXN0X2lkQg4KDF9kdXJhdGlvbl9tc0IQCg5fc3RhcnRfdGltZV9tcyLaAQoWQ2hhdFJlc3VsdE5vZGVNZXRhZGF0YRIWCglvcGVuYWlfaWQYASABKAlIAIgBARIWCglnb29nbGVfdHMYAiABKAxIAYgBARIVCghwcm92aWRlchgDIAEoCUgCiAEBEhIKBXBoYXNlGAQgASgJSAOIAQESHQoQc291cmNlX2V2ZW50X3NlcRgFIAEoA0gEiAEBQgwKCl9vcGVuYWlfaWRCDAoKX2dvb2dsZV90c0ILCglfcHJvdmlkZXJCCAoGX3BoYXNlQhMKEV9zb3VyY2VfZXZlbnRfc2VxItoBChJDaGF0UmVzdWx0VGhpbmtpbmcSFAoHc3VtbWFyeRgBIAEoCUgAiAEBEh4KEWVuY3J5cHRlZF9jb250ZW50GAIgASgJSAGIAQESFAoHY29udGVudBgDIAEoCUgCiAEBEikKHG9wZW5haV9yZXNwb25zZXNfYXBpX2l0ZW1faWQYBCABKAlIA4gBAUIKCghfc3VtbWFyeUIUChJfZW5jcnlwdGVkX2NvbnRlbnRCCgoIX2NvbnRlbnRCHwodX29wZW5haV9yZXNwb25zZXNfYXBpX2l0ZW1faWQi4AUKFENoYXRSZXN1bHRUb2tlblVzYWdlEhkKDGlucHV0X3Rva2VucxgBIAEoBUgAiAEBEhoKDW91dHB1dF90b2tlbnMYAiABKAVIAYgBARIkChdjYWNoZV9yZWFkX2lucHV0X3Rva2VucxgDIAEoBUgCiAEBEigKG2NhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucxgEIAEoBUgDiAEBEiEKFHN5c3RlbV9wcm9tcHRfdG9rZW5zGAUgASgFSASIAQESIAoTY2hhdF9oaXN0b3J5X3Rva2VucxgGIAEoBUgFiAEBEiMKFmN1cnJlbnRfbWVzc2FnZV90b2tlbnMYByABKAVIBogBARIfChJtYXhfY29udGV4dF90b2tlbnMYCCABKAVIB4gBARIkChd0b29sX2RlZmluaXRpb25zX3Rva2VucxgJIAEoBUgIiAEBEh8KEnRvb2xfcmVzdWx0X3Rva2VucxgKIAEoBUgJiAEBEiYKGWFzc2lzdGFudF9yZXNwb25zZV90b2tlbnMYCyABKAVICogBARIeChFtYXhfb3V0cHV0X3Rva2VucxgMIAEoBUgLiAEBQg8KDV9pbnB1dF90b2tlbnNCEAoOX291dHB1dF90b2tlbnNCGgoYX2NhY2hlX3JlYWRfaW5wdXRfdG9rZW5zQh4KHF9jYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnNCFwoVX3N5c3RlbV9wcm9tcHRfdG9rZW5zQhYKFF9jaGF0X2hpc3RvcnlfdG9rZW5zQhkKF19jdXJyZW50X21lc3NhZ2VfdG9rZW5zQhUKE19tYXhfY29udGV4dF90b2tlbnNCGgoYX3Rvb2xfZGVmaW5pdGlvbnNfdG9rZW5zQhUKE190b29sX3Jlc3VsdF90b2tlbnNCHAoaX2Fzc2lzdGFudF9yZXNwb25zZV90b2tlbnNCFAoSX21heF9vdXRwdXRfdG9rZW5zImMKEUNoYXRSZXN1bHRUb29sVXNlEhMKC3Rvb2xfdXNlX2lkGAEgASgJEhEKCXRvb2xfbmFtZRgCIAEoCRISCgppbnB1dF9qc29uGAMgASgJEhIKCmlzX3BhcnRpYWwYBCABKAgiRgoMVGVybWluYWxJbmZvEhMKC3Rlcm1pbmFsX2lkGAEgASgNEiEKGWN1cnJlbnRfd29ya2luZ19kaXJlY3RvcnkYAiABKAkiTgoOVG9vbERlZmluaXRpb24SDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIZChFpbnB1dF9zY2hlbWFfanNvbhgDIAEoCSK4AQoVVG9vbFJlc3VsdENvbnRlbnROb2RlEi0KBHR5cGUYASABKA4yHy5jaGF0LlRvb2xSZXN1bHRDb250ZW50Tm9kZVR5cGUSGQoMdGV4dF9jb250ZW50GAIgASgJSACIAQESMgoNaW1hZ2VfY29udGVudBgDIAEoCzIWLmNoYXQuQ2hhdFJlcXVlc3RJbWFnZUgBiAEBQg8KDV90ZXh0X2NvbnRlbnRCEAoOX2ltYWdlX2NvbnRlbnQiQwoTV29ya3NwYWNlRm9sZGVySW5mbxIXCg9yZXBvc2l0b3J5X3Jvb3QYASABKAkSEwoLZm9sZGVyX3Jvb3QYAiABKAkqqQEKE0NoYXRSZXF1ZXN0Tm9kZVR5cGUSCAoEVEVYVBAAEg8KC1RPT0xfUkVTVUxUEAESCQoFSU1BR0UQAhIMCghJTUFHRV9JRBADEg0KCUlERV9TVEFURRAEEg8KC0VESVRfRVZFTlRTEAUSEgoOQ0hFQ0tQT0lOVF9SRUYQBhIICgRGSUxFEAgSCwoHRklMRV9JRBAJEhMKD0hJU1RPUllfU1VNTUFSWRAKKusBChJDaGF0UmVzdWx0Tm9kZVR5cGUSEAoMUkFXX1JFU1BPTlNFEAASFwoTU1VHR0VTVEVEX1FVRVNUSU9OUxABEhYKEk1BSU5fVEVYVF9GSU5JU0hFRBACEhkKFVdPUktTUEFDRV9GSUxFX0NIVU5LUxADEhQKEFJFTEVWQU5UX1NPVVJDRVMQBBIMCghUT09MX1VTRRAFEhIKDlRPT0xfVVNFX1NUQVJUEAcSDAoIVEhJTktJTkcQCBIUChBCSUxMSU5HX01FVEFEQVRBEAkSDwoLVE9LRU5fVVNBR0UQCiIECAYQBiIECAsQCyquAQoOQ2hhdFN0b3BSZWFzb24SFgoSUkVBU09OX1VOU1BFQ0lGSUVEEAASDAoIRU5EX1RVUk4QARIOCgpNQVhfVE9LRU5TEAISFgoSVE9PTF9VU0VfUkVRVUVTVEVEEAMSCgoGU0FGRVRZEAQSDgoKUkVDSVRBVElPThAFEhsKF01BTEZPUk1FRF9GVU5DVElPTl9DQUxMEAYSFQoRU1RPUF9SRUFTT05fRVJST1IQBypICg9FZGl0RXZlbnRTb3VyY2USDwoLVU5TUEVDSUZJRUQQABINCglVU0VSX0VESVQQARIVChFDSEVDS1BPSU5UX1JFVkVSVBACKlUKD0ltYWdlRm9ybWF0VHlwZRIcChhJTUFHRV9GT1JNQVRfVU5TUEVDSUZJRUQQABIHCgNQTkcQARIICgRKUEVHEAISBwoDR0lGEAMSCAoEV0VCUBAEKl4KGVRvb2xSZXN1bHRDb250ZW50Tm9kZVR5cGUSHAoYQ09OVEVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASEAoMQ09OVEVOVF9URVhUEAESEQoNQ09OVEVOVF9JTUFHRRACQjhaNmdpdGh1Yi5jb20vYXVnbWVudGNvZGUvYXVnbWVudC9zZXJ2aWNlcy9saWIvcHJvdG8vY2hhdGIGcHJvdG8z");var jZ;(function(e){e[e.TEXT=0]="TEXT",e[e.TOOL_RESULT=1]="TOOL_RESULT",e[e.IMAGE=2]="IMAGE",e[e.IMAGE_ID=3]="IMAGE_ID",e[e.IDE_STATE=4]="IDE_STATE",e[e.EDIT_EVENTS=5]="EDIT_EVENTS",e[e.CHECKPOINT_REF=6]="CHECKPOINT_REF",e[e.FILE=8]="FILE",e[e.FILE_ID=9]="FILE_ID",e[e.HISTORY_SUMMARY=10]="HISTORY_SUMMARY"})(jZ||(jZ={}));var PZ;(function(e){e[e.RAW_RESPONSE=0]="RAW_RESPONSE",e[e.SUGGESTED_QUESTIONS=1]="SUGGESTED_QUESTIONS",e[e.MAIN_TEXT_FINISHED=2]="MAIN_TEXT_FINISHED",e[e.WORKSPACE_FILE_CHUNKS=3]="WORKSPACE_FILE_CHUNKS",e[e.RELEVANT_SOURCES=4]="RELEVANT_SOURCES",e[e.TOOL_USE=5]="TOOL_USE",e[e.TOOL_USE_START=7]="TOOL_USE_START",e[e.THINKING=8]="THINKING",e[e.BILLING_METADATA=9]="BILLING_METADATA",e[e.TOKEN_USAGE=10]="TOKEN_USAGE"})(PZ||(PZ={}));var qZ;(function(e){e[e.REASON_UNSPECIFIED=0]="REASON_UNSPECIFIED",e[e.END_TURN=1]="END_TURN",e[e.MAX_TOKENS=2]="MAX_TOKENS",e[e.TOOL_USE_REQUESTED=3]="TOOL_USE_REQUESTED",e[e.SAFETY=4]="SAFETY",e[e.RECITATION=5]="RECITATION",e[e.MALFORMED_FUNCTION_CALL=6]="MALFORMED_FUNCTION_CALL",e[e.STOP_REASON_ERROR=7]="STOP_REASON_ERROR"})(qZ||(qZ={}));var $Z;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.USER_EDIT=1]="USER_EDIT",e[e.CHECKPOINT_REVERT=2]="CHECKPOINT_REVERT"})($Z||($Z={}));var e2;(function(e){e[e.IMAGE_FORMAT_UNSPECIFIED=0]="IMAGE_FORMAT_UNSPECIFIED",e[e.PNG=1]="PNG",e[e.JPEG=2]="JPEG",e[e.GIF=3]="GIF",e[e.WEBP=4]="WEBP"})(e2||(e2={}));var t2;(function(e){e[e.CONTENT_TYPE_UNSPECIFIED=0]="CONTENT_TYPE_UNSPECIFIED",e[e.CONTENT_TEXT=1]="CONTENT_TEXT",e[e.CONTENT_IMAGE=2]="CONTENT_IMAGE"})(t2||(t2={}));var Yn=k("Ch1zZXJ2aWNlcy9jaGF0X2hvc3QvY2hhdC5wcm90bxIEY2hhdCJECg9CcmluZ1lvdXJPd25LZXkSJAoIcHJvdmlkZXIYASABKA4yEi5jaGF0LkJZT0tQcm92aWRlchILCgNrZXkYAiABKAki6AMKEENoYW5nZWRGaWxlU3RhdHMSNwoQYWRkZWRfZmlsZV9zdGF0cxgBIAEoCzIdLmNoYXQuUGVyVHlwZUNoYW5nZWRGaWxlU3RhdHMSOAoRYnJva2VuX2ZpbGVfc3RhdHMYAiABKAsyHS5jaGF0LlBlclR5cGVDaGFuZ2VkRmlsZVN0YXRzEjgKEWNvcGllZF9maWxlX3N0YXRzGAMgASgLMh0uY2hhdC5QZXJUeXBlQ2hhbmdlZEZpbGVTdGF0cxI5ChJkZWxldGVkX2ZpbGVfc3RhdHMYBCABKAsyHS5jaGF0LlBlclR5cGVDaGFuZ2VkRmlsZVN0YXRzEjoKE21vZGlmaWVkX2ZpbGVfc3RhdHMYBSABKAsyHS5jaGF0LlBlclR5cGVDaGFuZ2VkRmlsZVN0YXRzEjkKEnJlbmFtZWRfZmlsZV9zdGF0cxgGIAEoCzIdLmNoYXQuUGVyVHlwZUNoYW5nZWRGaWxlU3RhdHMSOgoTdW5tZXJnZWRfZmlsZV9zdGF0cxgHIAEoCzIdLmNoYXQuUGVyVHlwZUNoYW5nZWRGaWxlU3RhdHMSOQoSdW5rbm93bl9maWxlX3N0YXRzGAggASgLMh0uY2hhdC5QZXJUeXBlQ2hhbmdlZEZpbGVTdGF0cyLxAQoZQ2hhdEZlYXR1cmVEZXRlY3Rpb25GbGFncxIlChhzdXBwb3J0X3JlbGV2YW50X3NvdXJjZXMYAyABKAhIAIgBARIjChZzdXBwb3J0X3Rvb2xfdXNlX3N0YXJ0GAQgASgISAGIAQESJgoZc3VwcG9ydF9wYXJhbGxlbF90b29sX3VzZRgFIAEoCEgCiAEBQhsKGV9zdXBwb3J0X3JlbGV2YW50X3NvdXJjZXNCGQoXX3N1cHBvcnRfdG9vbF91c2Vfc3RhcnRCHAoaX3N1cHBvcnRfcGFyYWxsZWxfdG9vbF91c2VKBAgBEAJKBAgCEAMiywYKE0NoYXRIaXN0b3J5TWV0YWRhdGESJgoJY2hhdF9tb2RlGAEgASgOMg4uY2hhdC5DaGF0TW9kZUgAiAEBEjMKCmNyZWF0ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESFgoJaXNfc2lsZW50GAMgASgISAKIAQESGgoNaXNfc3VjY2Vzc2Z1bBgEIAEoCEgDiAEBEhcKCm1vZGVsX25hbWUYBSABKAlIBIgBARIXCgpyZXF1ZXN0X2lkGAYgASgJSAWIAQESFAoHdHVybl9pZBgHIAEoCUgGiAEBEiMKFnBhcmVudF9jb252ZXJzYXRpb25faWQYCCABKAlIB4gBARIhChRyb290X2NvbnZlcnNhdGlvbl9pZBgJIAEoCUgIiAEBEigKG3BlcnNpc3RlZF90aHJvdWdoX2V2ZW50X3NlcRgKIAEoA0gJiAEBEhcKCmlzX3BhcnRpYWwYCyABKAhICogBARIcCg9zdWJzY3JpcHRpb25faWQYDCABKAlIC4gBARIbCg5zZW5kZXJfdXNlcl9pZBgNIAEoCUgMiAEBEjMKE3Zmc19maWxlX3JlZmVyZW5jZXMYDiADKAsyFi5jaGF0LlZGU0ZpbGVSZWZlcmVuY2USMwoTbWNwX3Rvb2xfcmVmZXJlbmNlcxgPIAMoCzIWLmNoYXQuTUNQVG9vbFJlZmVyZW5jZRIqCgtzaWxlbnRfdHlwZRgQIAEoDjIQLmNoYXQuU2lsZW50VHlwZUgNiAEBQgwKCl9jaGF0X21vZGVCDQoLX2NyZWF0ZWRfYXRCDAoKX2lzX3NpbGVudEIQCg5faXNfc3VjY2Vzc2Z1bEINCgtfbW9kZWxfbmFtZUINCgtfcmVxdWVzdF9pZEIKCghfdHVybl9pZEIZChdfcGFyZW50X2NvbnZlcnNhdGlvbl9pZEIXChVfcm9vdF9jb252ZXJzYXRpb25faWRCHgocX3BlcnNpc3RlZF90aHJvdWdoX2V2ZW50X3NlcUINCgtfaXNfcGFydGlhbEISChBfc3Vic2NyaXB0aW9uX2lkQhEKD19zZW5kZXJfdXNlcl9pZEIOCgxfc2lsZW50X3R5cGUiSwoMQ2hhdFBvc2l0aW9uEhQKDHByZWZpeF9iZWdpbhgBIAEoBRISCgpzdWZmaXhfZW5kGAIgASgFEhEKCWJsb2JfbmFtZRgDIAEoCSJfCg9DaGF0UmVwbGFjZVRleHQSGAoQcmVwbGFjZW1lbnRfdGV4dBgBIAEoCRIZChFzdGFydF9saW5lX251bWJlchgCIAEoBRIXCg9lbmRfbGluZV9udW1iZXIYAyABKAUi/BUKC0NoYXRSZXF1ZXN0EhIKCm1vZGVsX25hbWUYASABKAkSDAoEcGF0aBgCIAEoCRIOCgZwcmVmaXgYAyABKAkSFQoNc2VsZWN0ZWRfY29kZRgEIAEoCRIOCgZzdWZmaXgYBSABKAkSDwoHbWVzc2FnZRgGIAEoCRIkCgxjaGF0X2hpc3RvcnkYByADKAsyDi5jaGF0LkV4Y2hhbmdlEiQKCHBvc2l0aW9uGAggASgLMhIuY2hhdC5DaGF0UG9zaXRpb24SDAoEbGFuZxgKIAEoCRITCgtzZXF1ZW5jZV9pZBgLIAEoDRIlCgVibG9icxgMIAMoCzIWLmJhc2UuYmxvYl9uYW1lcy5CbG9icxIkChxlbmFibGVfcHJlZmVyZW5jZV9jb2xsZWN0aW9uGA0gASgIEhkKEXVzZXJfZ3VpZGVkX2Jsb2JzGA4gAygJEhsKE2V4dGVybmFsX3NvdXJjZV9pZHMYECADKAkSKAogY29udGV4dF9jb2RlX2V4Y2hhbmdlX3JlcXVlc3RfaWQYDyABKAkSJQodZGlzYWJsZV9hdXRvX2V4dGVybmFsX3NvdXJjZXMYESABKAgSHQoVcHJvbXB0X2Zvcm1hdHRlcl9uYW1lGBIgASgJEjcKEmNoYW5nZWRfZmlsZV9zdGF0cxgTIAEoCzIWLmNoYXQuQ2hhbmdlZEZpbGVTdGF0c0gAiAEBEhEKBGRpZmYYFCABKAlIAYgBARIgChhyZWxldmFudF9jb21taXRfbWVzc2FnZXMYFSADKAkSHwoXZXhhbXBsZV9jb21taXRfbWVzc2FnZXMYFiADKAkSHAoPdXNlcl9ndWlkZWxpbmVzGBcgASgJSAKIAQESIQoUd29ya3NwYWNlX2d1aWRlbGluZXMYGCABKAlIA4gBARJFChdmZWF0dXJlX2RldGVjdGlvbl9mbGFncxgZIAEoCzIfLmNoYXQuQ2hhdEZlYXR1cmVEZXRlY3Rpb25GbGFnc0gEiAEBEi4KEHRvb2xfZGVmaW5pdGlvbnMYGiADKAsyFC5jaGF0LlRvb2xEZWZpbml0aW9uEiQKBW5vZGVzGBsgAygLMhUuY2hhdC5DaGF0UmVxdWVzdE5vZGUSLAoMcGVyc29uYV90eXBlGB0gASgOMhEuY2hhdC5QZXJzb25hVHlwZUgFiAEBEhUKDWlzX3N1c3BpY2lvdXMYHiABKAgSGQoFcnVsZXMYHyADKAsyCi5jaGF0LlJ1bGUSDgoGc2lsZW50GCAgASgIEhgKC2FnZW50X3Rhc2tzGCEgASgJSAaIAQESJQoLY2xpZW50X3R5cGUYIiABKA4yEC5jaGF0LkNsaWVudFR5cGUSJgoJY2hhdF9tb2RlGCMgASgOMg4uY2hhdC5DaGF0TW9kZUgHiAEBEjsKFHRoaXJkX3BhcnR5X292ZXJyaWRlGCQgASgLMhguY2hhdC5UaGlyZFBhcnR5T3ZlcnJpZGVICIgBARIcCg9jb252ZXJzYXRpb25faWQYJSABKAlICYgBARIqCgtzaWxlbnRfdHlwZRgmIAEoDjIQLmNoYXQuU2lsZW50VHlwZUgKiAEBEiMKFnN5c3RlbV9wcm9tcHRfb3ZlcnJpZGUYJyABKAlIC4gBARJBChpzeXN0ZW1fcHJvbXB0X3JlcGxhY2VtZW50cxgoIAMoCzIdLmNoYXQuU3lzdGVtUHJvbXB0UmVwbGFjZW1lbnQSGwoGc2tpbGxzGCogAygLMgsuY2hhdC5Ta2lsbBIhChRzeXN0ZW1fcHJvbXB0X2FwcGVuZBgrIAEoCUgMiAEBEi8KImNvbnN1bWVfY3JlZGl0c19vbl9zaWxlbnRfcmVxdWVzdHMYLCABKAhIDYgBARIUCgd0dXJuX2lkGC0gASgJSA6IAQESIwoWcGFyZW50X2NvbnZlcnNhdGlvbl9pZBguIAEoCUgPiAEBEiEKFHJvb3RfY29udmVyc2F0aW9uX2lkGC8gASgJSBCIAQESHQoQZGlzYWJsZV90aGlua2luZxgwIAEoCEgRiAEBEjYKEmJyaW5nX3lvdXJfb3duX2tleRgxIAEoCzIVLmNoYXQuQnJpbmdZb3VyT3duS2V5SBKIAQESIQoUcmVxdWVzdGVkX21vZGVsX25hbWUYMiABKAlIE4gBARIcCg9zdWJzY3JpcHRpb25faWQYMyABKAlIFIgBARIyCg9jbGllbnRfbWV0YWRhdGEYNCABKAsyFC5jaGF0LkNsaWVudE1ldGFkYXRhSBWIAQESJgoZaW50ZXJuYWxfYWdlbnRfcGVyc29uYV9pZBg1IAEoCUgWiAEBEhwKD3BlcnNvbmFfcHJvbXB0cxg2IAEoCUgXiAEBEicKGnNraXBfY29udmVyc2F0aW9uX2luZGV4aW5nGDcgASgISBiIAQESGwoOc2VuZGVyX3VzZXJfaWQYOCABKAlIGYgBARIeChFldV9pbmZlcmVuY2Vfb25seRg5IAEoCEgaiAEBEkoKHGN1c3RvbV9idXRsZXJfcm91dGluZ19jb25maWcYOiABKAsyHy5jaGF0LkN1c3RvbUJ1dGxlclJvdXRpbmdDb25maWdIG4gBARIzChN2ZnNfZmlsZV9yZWZlcmVuY2VzGDsgAygLMhYuY2hhdC5WRlNGaWxlUmVmZXJlbmNlEjMKE21jcF90b29sX3JlZmVyZW5jZXMYPCADKAsyFi5jaGF0Lk1DUFRvb2xSZWZlcmVuY2USHQoQcmVhc29uaW5nX2VmZm9ydBg9IAEoCUgciAEBEhYKCWV4cGVydF9pZBg+IAEoCUgdiAEBQhUKE19jaGFuZ2VkX2ZpbGVfc3RhdHNCBwoFX2RpZmZCEgoQX3VzZXJfZ3VpZGVsaW5lc0IXChVfd29ya3NwYWNlX2d1aWRlbGluZXNCGgoYX2ZlYXR1cmVfZGV0ZWN0aW9uX2ZsYWdzQg8KDV9wZXJzb25hX3R5cGVCDgoMX2FnZW50X3Rhc2tzQgwKCl9jaGF0X21vZGVCFwoVX3RoaXJkX3BhcnR5X292ZXJyaWRlQhIKEF9jb252ZXJzYXRpb25faWRCDgoMX3NpbGVudF90eXBlQhkKF19zeXN0ZW1fcHJvbXB0X292ZXJyaWRlQhcKFV9zeXN0ZW1fcHJvbXB0X2FwcGVuZEIlCiNfY29uc3VtZV9jcmVkaXRzX29uX3NpbGVudF9yZXF1ZXN0c0IKCghfdHVybl9pZEIZChdfcGFyZW50X2NvbnZlcnNhdGlvbl9pZEIXChVfcm9vdF9jb252ZXJzYXRpb25faWRCEwoRX2Rpc2FibGVfdGhpbmtpbmdCFQoTX2JyaW5nX3lvdXJfb3duX2tleUIXChVfcmVxdWVzdGVkX21vZGVsX25hbWVCEgoQX3N1YnNjcmlwdGlvbl9pZEISChBfY2xpZW50X21ldGFkYXRhQhwKGl9pbnRlcm5hbF9hZ2VudF9wZXJzb25hX2lkQhIKEF9wZXJzb25hX3Byb21wdHNCHQobX3NraXBfY29udmVyc2F0aW9uX2luZGV4aW5nQhEKD19zZW5kZXJfdXNlcl9pZEIUChJfZXVfaW5mZXJlbmNlX29ubHlCHwodX2N1c3RvbV9idXRsZXJfcm91dGluZ19jb25maWdCEwoRX3JlYXNvbmluZ19lZmZvcnRCDAoKX2V4cGVydF9pZEoECAkQCkoECBwQHUoECCkQKlIJY2FudmFzX2lkIvMDCg9DaGF0UmVxdWVzdE5vZGUSCgoCaWQYASABKAUSJwoEdHlwZRgCIAEoDjIZLmNoYXQuQ2hhdFJlcXVlc3ROb2RlVHlwZRItCgl0ZXh0X25vZGUYAyABKAsyFS5jaGF0LkNoYXRSZXF1ZXN0VGV4dEgAiAEBEjoKEHRvb2xfcmVzdWx0X25vZGUYBCABKAsyGy5jaGF0LkNoYXRSZXF1ZXN0VG9vbFJlc3VsdEgBiAEBEi8KCmltYWdlX25vZGUYBSABKAsyFi5jaGF0LkNoYXRSZXF1ZXN0SW1hZ2VIAogBARI2Cg5pZGVfc3RhdGVfbm9kZRgHIAEoCzIZLmNoYXQuQ2hhdFJlcXVlc3RJZGVTdGF0ZUgDiAEBEjoKEGVkaXRfZXZlbnRzX25vZGUYCCABKAsyGy5jaGF0LkNoYXRSZXF1ZXN0RWRpdEV2ZW50c0gEiAEBEi0KCWZpbGVfbm9kZRgJIAEoCzIVLmNoYXQuQ2hhdFJlcXVlc3RGaWxlSAWIAQFCDAoKX3RleHRfbm9kZUITChFfdG9vbF9yZXN1bHRfbm9kZUINCgtfaW1hZ2Vfbm9kZUIRCg9faWRlX3N0YXRlX25vZGVCEwoRX2VkaXRfZXZlbnRzX25vZGVCDAoKX2ZpbGVfbm9kZUoECAYQByLEBAoMQ2hhdFJlc3BvbnNlEgwKBHRleHQYASABKAkSGgoSdW5rbm93bl9ibG9iX25hbWVzGAIgAygJEhwKFGNoZWNrcG9pbnRfbm90X2ZvdW5kGAMgASgIEjcKFXdvcmtzcGFjZV9maWxlX2NodW5rcxgEIAMoCzIYLmNoYXQuV29ya3NwYWNlRmlsZUNodW5rEkcKHWluY29ycG9yYXRlZF9leHRlcm5hbF9zb3VyY2VzGAUgAygLMiAuY2hhdC5JbmNvcnBvcmF0ZWRFeHRlcm5hbFNvdXJjZRI5ChVyZXBsYWNlX3RleHRfcmVzcG9uc2UYBiABKAsyFS5jaGF0LkNoYXRSZXBsYWNlVGV4dEgAiAEBEiMKBW5vZGVzGAcgAygLMhQuY2hhdC5DaGF0UmVzdWx0Tm9kZRI2CgtzdGF0dXNfY29kZRgIIAEoDjIcLmNoYXQuQ2hhdFJlc3BvbnNlU3RhdHVzQ29kZUgBiAEBEi4KC3N0b3BfcmVhc29uGAkgASgOMhQuY2hhdC5DaGF0U3RvcFJlYXNvbkgCiAEBEhoKDWVycm9yX21lc3NhZ2UYCiABKAlIA4gBARIhChRlZmZlY3RpdmVfbW9kZWxfbmFtZRgLIAEoCUgEiAEBQhgKFl9yZXBsYWNlX3RleHRfcmVzcG9uc2VCDgoMX3N0YXR1c19jb2RlQg4KDF9zdG9wX3JlYXNvbkIQCg5fZXJyb3JfbWVzc2FnZUIXChVfZWZmZWN0aXZlX21vZGVsX25hbWUixgIKGUNoYXRSZXN1bHRCaWxsaW5nTWV0YWRhdGESGwoOdHJhbnNhY3Rpb25faWQYASABKAlIAIgBARIYChBjcmVkaXRzX2NvbnN1bWVkGAIgASgFEhAKCGNvc3RfdXNkGAcgASgJEiYKCnVzYWdlX3VuaXQYCCABKA4yEi5iaWxsaW5nLlVzYWdlVW5pdBIhChRlZmZlY3RpdmVfbW9kZWxfbmFtZRgJIAEoCUgBiAEBQhEKD190cmFuc2FjdGlvbl9pZEIXChVfZWZmZWN0aXZlX21vZGVsX25hbWVKBAgDEARKBAgEEAVKBAgFEAZKBAgGEAdSDGlucHV0X3Rva2Vuc1INb3V0cHV0X3Rva2Vuc1IXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnNSG2NhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyLuAwoOQ2hhdFJlc3VsdE5vZGUSCgoCaWQYASABKAUSJgoEdHlwZRgCIAEoDjIYLmNoYXQuQ2hhdFJlc3VsdE5vZGVUeXBlEg8KB2NvbnRlbnQYAyABKAkSLgoIdG9vbF91c2UYBCABKAsyFy5jaGF0LkNoYXRSZXN1bHRUb29sVXNlSACIAQESLwoIdGhpbmtpbmcYBSABKAsyGC5jaGF0LkNoYXRSZXN1bHRUaGlua2luZ0gBiAEBEj4KEGJpbGxpbmdfbWV0YWRhdGEYBiABKAsyHy5jaGF0LkNoYXRSZXN1bHRCaWxsaW5nTWV0YWRhdGFIAogBARI0Cgt0b2tlbl91c2FnZRgIIAEoCzIaLmNoYXQuQ2hhdFJlc3VsdFRva2VuVXNhZ2VIA4gBARIzCghtZXRhZGF0YRgHIAEoCzIcLmNoYXQuQ2hhdFJlc3VsdE5vZGVNZXRhZGF0YUgEiAEBEhkKDHRpbWVzdGFtcF9tcxgKIAEoBEgFiAEBQgsKCV90b29sX3VzZUILCglfdGhpbmtpbmdCEwoRX2JpbGxpbmdfbWV0YWRhdGFCDgoMX3Rva2VuX3VzYWdlQgsKCV9tZXRhZGF0YUIPCg1fdGltZXN0YW1wX21zSgQICRAKUg1jb250ZXh0X3VzYWdlIr4BCg5DbGllbnRNZXRhZGF0YRITCgtjbGllbnRfbmFtZRgBIAEoCRIWCg5jbGllbnRfdmVyc2lvbhgCIAEoCRIWCg5jbGllbnRfc3VidHlwZRgDIAEoCRIXCg9hY3BfY2xpZW50X25hbWUYBCABKAkSGgoSYWNwX2NsaWVudF92ZXJzaW9uGAUgASgJEhIKCnVzZXJfYWdlbnQYBiABKAkSEAoIcGxhdGZvcm0YByABKAkSDAoEYXJjaBgIIAEoCSLDAgoZQ3VzdG9tQnV0bGVyUm91dGluZ0NvbmZpZxIVCg1kZWZhdWx0X21vZGVsGAEgASgJEkQKC3RpZXJfbW9kZWxzGAIgAygLMi8uY2hhdC5DdXN0b21CdXRsZXJSb3V0aW5nQ29uZmlnLlRpZXJNb2RlbHNFbnRyeRJZChZ0aWVyX3JlYXNvbmluZ19lZmZvcnRzGAMgAygLMjkuY2hhdC5DdXN0b21CdXRsZXJSb3V0aW5nQ29uZmlnLlRpZXJSZWFzb25pbmdFZmZvcnRzRW50cnkaMQoPVGllck1vZGVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaOwoZVGllclJlYXNvbmluZ0VmZm9ydHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIsUCCghFeGNoYW5nZRIXCg9yZXF1ZXN0X21lc3NhZ2UYASABKAkSGgoNcmVzcG9uc2VfdGV4dBgCIAEoCUgAiAEBEhcKCnJlcXVlc3RfaWQYAyABKAlIAYgBARIsCg1yZXF1ZXN0X25vZGVzGAQgAygLMhUuY2hhdC5DaGF0UmVxdWVzdE5vZGUSLAoOcmVzcG9uc2Vfbm9kZXMYBSADKAsyFC5jaGF0LkNoYXRSZXN1bHROb2RlEjMKCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGQoMY29tcG9zaXRlX2lkGAcgASgJSAOIAQFCEAoOX3Jlc3BvbnNlX3RleHRCDQoLX3JlcXVlc3RfaWRCDQoLX2NyZWF0ZWRfYXRCDwoNX2NvbXBvc2l0ZV9pZCJlChRFeGNoYW5nZVdpdGhNZXRhZGF0YRIgCghleGNoYW5nZRgBIAEoCzIOLmNoYXQuRXhjaGFuZ2USKwoIbWV0YWRhdGEYAiABKAsyGS5jaGF0LkNoYXRIaXN0b3J5TWV0YWRhdGEiYAoaSW5jb3Jwb3JhdGVkRXh0ZXJuYWxTb3VyY2USEwoLc291cmNlX25hbWUYASABKAkSEQoEbGluaxgCIAEoCUgAiAEBEhEKCXNvdXJjZV9pZBgDIAEoCUIHCgVfbGluayJLChBNQ1BUb29sUmVmZXJlbmNlEhEKCXNlcnZlcl9pZBgBIAEoCRIWCgl0b29sX25hbWUYAiABKAlIAIgBAUIMCgpfdG9vbF9uYW1lIm8KElBlckZpbGVDaGFuZ2VTdGF0cxIRCglmaWxlX3BhdGgYASABKAkSFwoPaW5zZXJ0aW9uX2NvdW50GAIgASgFEhYKDmRlbGV0aW9uX2NvdW50GAMgASgFEhUKDW9sZF9maWxlX3BhdGgYBCABKAkisQEKF1BlclR5cGVDaGFuZ2VkRmlsZVN0YXRzEhoKEmNoYW5nZWRfZmlsZV9jb3VudBgBIAEoBRI8ChpwZXJfZmlsZV9jaGFuZ2Vfc3RhdHNfaGVhZBgCIAMoCzIYLmNoYXQuUGVyRmlsZUNoYW5nZVN0YXRzEjwKGnBlcl9maWxlX2NoYW5nZV9zdGF0c190YWlsGAMgAygLMhguY2hhdC5QZXJGaWxlQ2hhbmdlU3RhdHMibQoEUnVsZRIcCgR0eXBlGAEgASgOMg4uY2hhdC5SdWxlVHlwZRIMCgRwYXRoGAIgASgJEg8KB2NvbnRlbnQYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iPAoFU2tpbGwSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIQCghsb2NhdGlvbhgDIAEoCSI6ChdTeXN0ZW1Qcm9tcHRSZXBsYWNlbWVudBIOCgZzZWFyY2gYASABKAkSDwoHcmVwbGFjZRgCIAEoCSKUAQoSVGhpcmRQYXJ0eU92ZXJyaWRlEiAKE3Byb3ZpZGVyX21vZGVsX25hbWUYASABKAlIAIgBARIUCgdhcGlfa2V5GAIgASgJSAGIAQESFQoIYmFzZV91cmwYAyABKAlIAogBAUIWChRfcHJvdmlkZXJfbW9kZWxfbmFtZUIKCghfYXBpX2tleUILCglfYmFzZV91cmwiagoQVkZTRmlsZVJlZmVyZW5jZRIPCgdmaWxlX2lkGAEgASgJEhUKDWZpbGVzeXN0ZW1faWQYAiABKAkSDAoEcGF0aBgDIAEoCRIQCghzcGFjZV9pZBgEIAEoCRIOCgZpc19kaXIYBSABKAgiTQoSV29ya3NwYWNlRmlsZUNodW5rEhIKCmNoYXJfc3RhcnQYASABKAUSEAoIY2hhcl9lbmQYAiABKAUSEQoJYmxvYl9uYW1lGAMgASgJKvQBCgxCWU9LUHJvdmlkZXISFAoQUFJPVklERVJfVU5LTk9XThAAEhYKElBST1ZJREVSX0FOVEhST1BJQxABEhMKD1BST1ZJREVSX09QRU5BSRACEhQKEFBST1ZJREVSX0JFRFJPQ0sQAxIWChJQUk9WSURFUl9GSVJFV09SS1MQBBIfChtQUk9WSURFUl9WRVJURVhBSV9BTlRIUk9QSUMQBRIcChhQUk9WSURFUl9WRVJURVhBSV9HRU1JTkkQBhIbChdQUk9WSURFUl9CRURST0NLX09QRU5BSRAHEhcKE1BST1ZJREVSX09QRU5ST1VURVIQCCrlAQoIQ2hhdE1vZGUSCAoEQ0hBVBAAEgkKBUFHRU5UEAESDwoLT1JJRU5UQVRJT04QAxIQCgxSRU1PVEVfQUdFTlQQBRINCglDTElfQUdFTlQQBhIWChJDTElfTk9OSU5URVJBQ1RJVkUQBxIPCgtDT0RFX1JFVklFVxAIEhUKEUFHRU5USUNfU0xBQ0tfQk9UEAkSFgoSQ09OVEVYVF9FTkdJTkVfU0RLEAoSFgoSQ09OVEVYVF9FTkdJTkVfTUNQEAsSFgoSUE9TRUlET05fQ0xJX0FHRU5UEAwiBAgCEAIiBAgEEAQqegoWQ2hhdFJlc3BvbnNlU3RhdHVzQ29kZRIGCgJPSxAAEhkKFUVYQ0VFRF9DT05URVhUX0xFTkdUSBABEg8KC1dBU19CTE9DS0VEEAISEwoPSU5WQUxJRF9SRVFVRVNUEAMSFwoTU1VNTUFSSVpFX0FORF9SRVRSWRAEKkUKCkNsaWVudFR5cGUSCwoHVU5LTk9XThAAEgcKA0NMSRABEgoKBlZTQ09ERRACEgwKCElOVEVMTElKEAMSBwoDV0VCEAQqSAoLUGVyc29uYVR5cGUSCwoHREVGQVVMVBAAEg4KClBST1RPVFlQRVIQARIOCgpCUkFJTlNUT1JNEAISDAoIUkVWSUVXRVIQAypACghSdWxlVHlwZRITCg9BTFdBWVNfQVRUQUNIRUQQABIKCgZNQU5VQUwQARITCg9BR0VOVF9SRVFVRVNURUQQAirzBAoKU2lsZW50VHlwZRIbChdTSUxFTlRfVFlQRV9VTlNQRUNJRklFRBAAEhcKE1NJTEVOVF9UWVBFX1VOS05PV04QExIeChpSRVdSSVRFX1BST01QVF9JTlNUUlVDVElPThABEhoKFkhJU1RPUllfU1VNTUFSWV9QUk9NUFQQAhIfChtDTEFTU0lGWV9BTkRfRElTVElMTF9QUk9NUFQQAxInCiNDTEFTU0lGWV9BTkRfRElTVElMTF9TVUNDRVNTX1BST01QVBAEEhQKEElOSkVDVElPTl9QUk9NUFQQBRIbChdTVU1NQVJZX0VYQ0hBTkdFX1BST01QVBAGEhsKF1VQREFURV9UQVNLX0xJU1RfUFJPTVBUEAcSHQoZR0VORVJBVEVfUVVFU1RJT05TX1BST01QVBAIEhoKFlBST0pFQ1RfU1VNTUFSWV9QUk9NUFQQCRIWChJDT01QUkVTU0lPTl9QUk9NUFQQChIgChxMQU5HVUFHRV9MT0NBTElaQVRJT05fUFJPTVBUEAwSGwoXREVURUNUX0xBTkdVQUdFU19QUk9NUFQQDRIiCh5PUklFTlRBVElPTl9DT01QUkVTU0lPTl9QUk9NUFQQDhIgChxPUklFTlRBVElPTl9CVUlMRF9URVNUX1FVRVJZEA8SJAogSEVMUEZVTF9TT0ZUV0FSRV9FTkdJTkVFUl9QUk9NUFQQEBIbChdBR0VOVF9PTkJPQVJESU5HX1BST01QVBAREiAKHEVNUFRZX01FU1NBR0VfV0lUSF9UT09MX0NBTEwQEhIWChJUT09MX1NFQVJDSF9QUk9NUFQQFCIECAsQC1AEYgZwcm90bzM",[Vt,ee,Cn,OZ,n2]);var r2;(function(e){e[e.PROVIDER_UNKNOWN=0]="PROVIDER_UNKNOWN",e[e.PROVIDER_ANTHROPIC=1]="PROVIDER_ANTHROPIC",e[e.PROVIDER_OPENAI=2]="PROVIDER_OPENAI",e[e.PROVIDER_BEDROCK=3]="PROVIDER_BEDROCK",e[e.PROVIDER_FIREWORKS=4]="PROVIDER_FIREWORKS",e[e.PROVIDER_VERTEXAI_ANTHROPIC=5]="PROVIDER_VERTEXAI_ANTHROPIC",e[e.PROVIDER_VERTEXAI_GEMINI=6]="PROVIDER_VERTEXAI_GEMINI",e[e.PROVIDER_BEDROCK_OPENAI=7]="PROVIDER_BEDROCK_OPENAI",e[e.PROVIDER_OPENROUTER=8]="PROVIDER_OPENROUTER"})(r2||(r2={}));var o2;(function(e){e[e.CHAT=0]="CHAT",e[e.AGENT=1]="AGENT",e[e.ORIENTATION=3]="ORIENTATION",e[e.REMOTE_AGENT=5]="REMOTE_AGENT",e[e.CLI_AGENT=6]="CLI_AGENT",e[e.CLI_NONINTERACTIVE=7]="CLI_NONINTERACTIVE",e[e.CODE_REVIEW=8]="CODE_REVIEW",e[e.AGENTIC_SLACK_BOT=9]="AGENTIC_SLACK_BOT",e[e.CONTEXT_ENGINE_SDK=10]="CONTEXT_ENGINE_SDK",e[e.CONTEXT_ENGINE_MCP=11]="CONTEXT_ENGINE_MCP",e[e.POSEIDON_CLI_AGENT=12]="POSEIDON_CLI_AGENT"})(o2||(o2={}));var i2;(function(e){e[e.OK=0]="OK",e[e.EXCEED_CONTEXT_LENGTH=1]="EXCEED_CONTEXT_LENGTH",e[e.WAS_BLOCKED=2]="WAS_BLOCKED",e[e.INVALID_REQUEST=3]="INVALID_REQUEST",e[e.SUMMARIZE_AND_RETRY=4]="SUMMARIZE_AND_RETRY"})(i2||(i2={}));var s2;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.CLI=1]="CLI",e[e.VSCODE=2]="VSCODE",e[e.INTELLIJ=3]="INTELLIJ",e[e.WEB=4]="WEB"})(s2||(s2={}));var l2;(function(e){e[e.DEFAULT=0]="DEFAULT",e[e.PROTOTYPER=1]="PROTOTYPER",e[e.BRAINSTORM=2]="BRAINSTORM",e[e.REVIEWER=3]="REVIEWER"})(l2||(l2={}));var a2;(function(e){e[e.ALWAYS_ATTACHED=0]="ALWAYS_ATTACHED",e[e.MANUAL=1]="MANUAL",e[e.AGENT_REQUESTED=2]="AGENT_REQUESTED"})(a2||(a2={}));var c2;(function(e){e[e.SILENT_TYPE_UNSPECIFIED=0]="SILENT_TYPE_UNSPECIFIED",e[e.SILENT_TYPE_UNKNOWN=19]="SILENT_TYPE_UNKNOWN",e[e.REWRITE_PROMPT_INSTRUCTION=1]="REWRITE_PROMPT_INSTRUCTION",e[e.HISTORY_SUMMARY_PROMPT=2]="HISTORY_SUMMARY_PROMPT",e[e.CLASSIFY_AND_DISTILL_PROMPT=3]="CLASSIFY_AND_DISTILL_PROMPT",e[e.CLASSIFY_AND_DISTILL_SUCCESS_PROMPT=4]="CLASSIFY_AND_DISTILL_SUCCESS_PROMPT",e[e.INJECTION_PROMPT=5]="INJECTION_PROMPT",e[e.SUMMARY_EXCHANGE_PROMPT=6]="SUMMARY_EXCHANGE_PROMPT",e[e.UPDATE_TASK_LIST_PROMPT=7]="UPDATE_TASK_LIST_PROMPT",e[e.GENERATE_QUESTIONS_PROMPT=8]="GENERATE_QUESTIONS_PROMPT",e[e.PROJECT_SUMMARY_PROMPT=9]="PROJECT_SUMMARY_PROMPT",e[e.COMPRESSION_PROMPT=10]="COMPRESSION_PROMPT",e[e.LANGUAGE_LOCALIZATION_PROMPT=12]="LANGUAGE_LOCALIZATION_PROMPT",e[e.DETECT_LANGUAGES_PROMPT=13]="DETECT_LANGUAGES_PROMPT",e[e.ORIENTATION_COMPRESSION_PROMPT=14]="ORIENTATION_COMPRESSION_PROMPT",e[e.ORIENTATION_BUILD_TEST_QUERY=15]="ORIENTATION_BUILD_TEST_QUERY",e[e.HELPFUL_SOFTWARE_ENGINEER_PROMPT=16]="HELPFUL_SOFTWARE_ENGINEER_PROMPT",e[e.AGENT_ONBOARDING_PROMPT=17]="AGENT_ONBOARDING_PROMPT",e[e.EMPTY_MESSAGE_WITH_TOOL_CALL=18]="EMPTY_MESSAGE_WITH_TOOL_CALL",e[e.TOOL_SEARCH_PROMPT=20]="TOOL_SEARCH_PROMPT"})(c2||(c2={}));var Ha=k("CiFiYXNlL2RpZmZfdXRpbHMvZWRpdF9ldmVudHMucHJvdG8SD2Jhc2UuZGlmZl91dGlscyJqCgpTaW5nbGVFZGl0EhQKDGJlZm9yZV9zdGFydBgBIAEoDRIYCgtiZWZvcmVfdGV4dBgCIAEoCUIDgAEBEhMKC2FmdGVyX3N0YXJ0GAMgASgNEhcKCmFmdGVyX3RleHQYBCABKAlCA4ABASKFAQoRR3JhbnVsYXJFZGl0RXZlbnQSEQoEcGF0aBgBIAEoCUIDgAEBEhgKEGJlZm9yZV9ibG9iX25hbWUYAiABKAkSFwoPYWZ0ZXJfYmxvYl9uYW1lGAMgASgJEioKBWVkaXRzGAQgAygLMhsuYmFzZS5kaWZmX3V0aWxzLlNpbmdsZUVkaXRiBnByb3RvMw");var h2=k("ChxzZXJ2aWNlcy9hZ2VudHMvYWdlbnRzLnByb3RvEgZhZ2VudHMi9gQKG0NvZGViYXNlUmV0cmlldmFsUmF3UmVxdWVzdBIqCgdxdWVyaWVzGAEgAygLMhkuYWdlbnRzLlJhd1JldHJpZXZhbFF1ZXJ5EiUKBWJsb2JzGAIgAygLMhYuYmFzZS5ibG9iX25hbWVzLkJsb2JzEhIKCm1heF9jaHVua3MYAyABKAUSGQoRbWF4X291dHB1dF9sZW5ndGgYBCABKAUSGQoRdXNlcl9ndWlkZWRfYmxvYnMYBSADKAkSGwoTZXh0ZXJuYWxfc291cmNlX2lkcxgGIAMoCRIlCh1kaXNhYmxlX2F1dG9fZXh0ZXJuYWxfc291cmNlcxgHIAEoCBIMCgRwYXRoGAggASgJEg4KBnByZWZpeBgJIAEoCRIOCgZzdWZmaXgYCiABKAkSFQoNc2VsZWN0ZWRfY29kZRgLIAEoCRIeCgZkaWFsb2cYDCADKAsyDi5jaGF0LkV4Y2hhbmdlEiMKG2luY2x1ZGVfZm9ybWF0dGVkX3JldHJpZXZhbBgNIAEoCBIcChRpbmNsdWRlX2xpbmVfbnVtYmVycxgOIAEoCBIcCg9jb252ZXJzYXRpb25faWQYDyABKAlIAIgBARIjChZwYXJlbnRfY29udmVyc2F0aW9uX2lkGBAgASgJSAGIAQESIQoUcm9vdF9jb252ZXJzYXRpb25faWQYESABKAlIAogBARIUCgd0dXJuX2lkGBIgASgJSAOIAQFCEgoQX2NvbnZlcnNhdGlvbl9pZEIZChdfcGFyZW50X2NvbnZlcnNhdGlvbl9pZEIXChVfcm9vdF9jb252ZXJzYXRpb25faWRCCgoIX3R1cm5faWQioAEKHENvZGViYXNlUmV0cmlldmFsUmF3UmVzcG9uc2USKQoGY2h1bmtzGAEgAygLMhkuYWdlbnRzLlJhd1JldHJpZXZlZENodW5rEhsKE2Zvcm1hdHRlZF9yZXRyaWV2YWwYAiABKAkSGgoSdW5rbm93bl9ibG9iX25hbWVzGAMgAygJEhwKFGNoZWNrcG9pbnRfbm90X2ZvdW5kGAQgASgIIqQEChhDb2RlYmFzZVJldHJpZXZhbFJlcXVlc3QSGwoTaW5mb3JtYXRpb25fcmVxdWVzdBgBIAEoCRIeCgZkaWFsb2cYAiADKAsyDi5jaGF0LkV4Y2hhbmdlEiUKBWJsb2JzGAMgAygLMhYuYmFzZS5ibG9iX25hbWVzLkJsb2JzEhkKEW1heF9vdXRwdXRfbGVuZ3RoGAQgASgFEiIKGmRpc2FibGVfY29kZWJhc2VfcmV0cmlldmFsGAUgASgIEh8KF2VuYWJsZV9jb21taXRfcmV0cmlldmFsGAYgASgIEiUKHWVuYWJsZV9jb252ZXJzYXRpb25fcmV0cmlldmFsGAcgASgIEjYKEmJyaW5nX3lvdXJfb3duX2tleRgIIAEoCzIVLmNoYXQuQnJpbmdZb3VyT3duS2V5SACIAQESHAoPY29udmVyc2F0aW9uX2lkGAkgASgJSAGIAQESIwoWcGFyZW50X2NvbnZlcnNhdGlvbl9pZBgKIAEoCUgCiAEBEiEKFHJvb3RfY29udmVyc2F0aW9uX2lkGAsgASgJSAOIAQESFAoHdHVybl9pZBgMIAEoCUgEiAEBQhUKE19icmluZ195b3VyX293bl9rZXlCEgoQX2NvbnZlcnNhdGlvbl9pZEIZChdfcGFyZW50X2NvbnZlcnNhdGlvbl9pZEIXChVfcm9vdF9jb252ZXJzYXRpb25faWRCCgoIX3R1cm5faWQiuwYKGUNvZGViYXNlUmV0cmlldmFsUmVzcG9uc2USGwoTZm9ybWF0dGVkX3JldHJpZXZhbBgBIAEoCRIlCh1jb2RlYmFzZV9yZXRyaWV2YWxfZWxhcHNlZF9tcxgCIAEoBRIpCiFjb252ZXJzYXRpb25fcmV0cmlldmFsX2VsYXBzZWRfbXMYAyABKAUSKQohY29udmVyc2F0aW9uX2luaXRpYWxfcmV0cmlldmFsX21zGAQgASgFEicKH2NvbnZlcnNhdGlvbl9xdWVyeV9yZXdyaXRpbmdfbXMYBSABKAUSKgoiY29udmVyc2F0aW9uX2ZvbGxvd3VwX3JldHJpZXZhbF9tcxgGIAEoBRIbChNibG9iX25hbWVfbG9va3VwX21zGAcgASgFEiEKGWNvZGViYXNlX2NodW5rc19yZXRyaWV2ZWQYCCABKAUSIwobY29udmVyc2F0aW9uX2NodW5rc19pbml0aWFsGAkgASgFEiYKHmNvbnZlcnNhdGlvbl9xdWVyaWVzX2dlbmVyYXRlZBgKIAEoBRIkChxjb252ZXJzYXRpb25fY2h1bmtzX2ZvbGxvd3VwGAsgASgFEiQKHGNvbnZlcnNhdGlvbl9jaHVua3NfY29tYmluZWQYDCABKAUSKgoiY29kZWJhc2VfcmVzdWx0X2xlbl9wcmVfdHJ1bmNhdGlvbhgNIAEoBRIbChNjb2RlYmFzZV9yZXN1bHRfbGVuGA4gASgFEi4KJmNvbnZlcnNhdGlvbl9yZXN1bHRfbGVuX3ByZV90cnVuY2F0aW9uGA8gASgFEh8KF2NvbnZlcnNhdGlvbl9yZXN1bHRfbGVuGBAgASgFEhsKE2NvbWJpbmVkX3Jlc3VsdF9sZW4YESABKAUSFAoMdG90YWxfYnVkZ2V0GBIgASgFEhcKD2NvZGViYXNlX2J1ZGdldBgTIAEoBRIbChNjb252ZXJzYXRpb25fYnVkZ2V0GBQgASgFEhoKEmNvZGViYXNlX3RydW5jYXRlZBgVIAEoCBIeChZjb252ZXJzYXRpb25fdHJ1bmNhdGVkGBYgASgIEhcKD2ZpbmFsX3RydW5jYXRlZBgXIAEoCCJ0Cg9FZGl0RmlsZVJlcXVlc3QSEQoJZmlsZV9wYXRoGAEgASgJEhQKDGVkaXRfc3VtbWFyeRgCIAEoCRIhChlkZXRhaWxlZF9lZGl0X2Rlc2NyaXB0aW9uGAMgASgJEhUKDWZpbGVfY29udGVudHMYBCABKAkiRAoQRWRpdEZpbGVSZXNwb25zZRIeChZtb2RpZmllZF9maWxlX2NvbnRlbnRzGAEgASgJEhAKCGlzX2Vycm9yGAIgASgIImMKEVJhd1JldHJpZXZhbFF1ZXJ5EhMKC2Rlc2NyaXB0aW9uGAEgASgJEgwKBHBhdGgYAiABKAkSFwoPY29udGFpbnNfc3RyaW5nGAMgASgJEhIKCm1heF9jaHVua3MYBCABKAUihgIKEVJhd1JldHJpZXZlZENodW5rEgwKBHRleHQYASABKAkSDAoEcGF0aBgCIAEoCRISCgpjaGFyX3N0YXJ0GAMgASgFEhAKCGNoYXJfZW5kGAQgASgFEhIKCmxpbmVfc3RhcnQYBSABKAUSFwoPbGVuZ3RoX2luX2xpbmVzGAYgASgFEhEKCWJsb2JfbmFtZRgHIAEoCRINCgVzY29yZRgIIAEoAhIOCgZvcmlnaW4YCSABKAkSFgoObWF0Y2hlZF9zdHJpbmcYCiABKAkSGgoSZXh0ZXJuYWxfc291cmNlX2lkGAsgASgJEhwKFGV4dGVybmFsX3NvdXJjZV9uYW1lGAwgASgJIrkCChVSdW5SZW1vdGVUb29sUmVzcG9uc2USEwoLdG9vbF9vdXRwdXQYASABKAkSGwoTdG9vbF9yZXN1bHRfbWVzc2FnZRgCIAEoCRIUCghpc19lcnJvchgDIAEoCEICGAESMAoGc3RhdHVzGAQgASgOMiAuYWdlbnRzLlJlbW90ZVRvb2xSZXNwb25zZVN0YXR1cxIjChZjb21wcmVzc2VkX2Z1bGxfb3V0cHV0GAUgASgJSACIAQESHQoQZnVsbF9vdXRwdXRfc2l6ZRgGIAEoA0gBiAEBEjIKDWNvbnRlbnRfbm9kZXMYByADKAsyGy5jaGF0LlRvb2xSZXN1bHRDb250ZW50Tm9kZUIZChdfY29tcHJlc3NlZF9mdWxsX291dHB1dEITChFfZnVsbF9vdXRwdXRfc2l6ZSqrAgoMUmVtb3RlVG9vbElkEgsKB1VOS05PV04QABIOCgpXRUJfU0VBUkNIEAESDgoKR0lUSFVCX0FQSRAIEhsKF0dJVEhVQl9BUFBfUkVBRE9OTFlfQVBJEBISGwoXR0lUSFVCX0FQUF9QT1NUX0NPTU1FTlQQExIdChlHSVRIVUJfQVBQX1BSX0RFU0NSSVBUSU9OEBQSCgoGTElORUFSEAwSCAoESklSQRANEg4KCkNPTkZMVUVOQ0UQDhIKCgZOT1RJT04QDxIMCghTVVBBQkFTRRAQEgkKBUdMRUFOEBEiBAgCEAIiBAgDEAMiBAgEEAQiBAgFEAUiBAgGEAYiBAgHEAciBAgJEAkiBAgKEAoiBAgLEAsiBAgVEBUqDkNPTlRFWFRfQ0FOVkFTKtYBChhSZW1vdGVUb29sUmVzcG9uc2VTdGF0dXMSIQodVE9PTF9FWEVDVVRJT05fVU5LTk9XTl9TVEFUVVMQABIaChZUT09MX0VYRUNVVElPTl9TVUNDRVNTEAESEgoOVE9PTF9OT1RfRk9VTkQQAhIWChJJTlZBTElEX1RPT0xfSU5QVVQQAxIYChRUT09MX0VYRUNVVElPTl9FUlJPUhAEEhYKElRPT0xfTk9UX0FWQUlMQUJMRRAFEh0KGVRPT0xfQVVUSEVOVElDQVRJT05fRVJST1IQBmIGcHJvdG8z",[Vt,Cn,Yn]);var d2;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.WEB_SEARCH=1]="WEB_SEARCH",e[e.GITHUB_API=8]="GITHUB_API",e[e.GITHUB_APP_READONLY_API=18]="GITHUB_APP_READONLY_API",e[e.GITHUB_APP_POST_COMMENT=19]="GITHUB_APP_POST_COMMENT",e[e.GITHUB_APP_PR_DESCRIPTION=20]="GITHUB_APP_PR_DESCRIPTION",e[e.LINEAR=12]="LINEAR",e[e.JIRA=13]="JIRA",e[e.CONFLUENCE=14]="CONFLUENCE",e[e.NOTION=15]="NOTION",e[e.SUPABASE=16]="SUPABASE",e[e.GLEAN=17]="GLEAN"})(d2||(d2={}));var u2;(function(e){e[e.TOOL_EXECUTION_UNKNOWN_STATUS=0]="TOOL_EXECUTION_UNKNOWN_STATUS",e[e.TOOL_EXECUTION_SUCCESS=1]="TOOL_EXECUTION_SUCCESS",e[e.TOOL_NOT_FOUND=2]="TOOL_NOT_FOUND",e[e.INVALID_TOOL_INPUT=3]="INVALID_TOOL_INPUT",e[e.TOOL_EXECUTION_ERROR=4]="TOOL_EXECUTION_ERROR",e[e.TOOL_NOT_AVAILABLE=5]="TOOL_NOT_AVAILABLE",e[e.TOOL_AUTHENTICATION_ERROR=6]="TOOL_AUTHENTICATION_ERROR"})(u2||(u2={}));var $e=k("CjBzZXJ2aWNlcy9hdXRoL2NlbnRyYWwvc2VydmVyL2F1dGhfZW50aXRpZXMucHJvdG8SDWF1dGhfZW50aXRpZXMipQEKBlVzZXJJZBI2Cgx1c2VyX2lkX3R5cGUYASABKA4yIC5hdXRoX2VudGl0aWVzLlVzZXJJZC5Vc2VySWRUeXBlEg8KB3VzZXJfaWQYAiABKAkiUgoKVXNlcklkVHlwZRILCgdVTktOT1dOEAASCwoHQVVHTUVOVBABEg0KCUFQSV9UT0tFThACEgkKBVNMQUNLEAMSEAoMSU5URVJOQUxfSUFQEAQqjgEKB0JvdFR5cGUSGAoUQk9UX1RZUEVfVU5TUEVDSUZJRUQQABITCg9DT0RFX1JFVklFV19CT1QQARIYChRDT0RFX1JFVklFV19FVkFMX0JPVBACEg4KCkFUSEVOQV9CT1QQAxINCglTTEFDS19CT1QQBBIOCgpMSU5FQVJfQk9UEAUSCwoHU0FOREJPWBAGKlMKCFVzZXJUeXBlEhkKFVVTRVJfVFlQRV9VTlNQRUNJRklFRBAAEhUKEVVTRVJfVFlQRV9SRUdVTEFSEAESFQoRVVNFUl9UWVBFX1NFUlZJQ0UQAkJRWk9naXRodWIuY29tL2F1Z21lbnRjb2RlL2F1Z21lbnQvc2VydmljZXMvYXV0aC9jZW50cmFsL3NlcnZlci9hdXRoX2VudGl0aWVzX3Byb3RvYgZwcm90bzM",[ee]);var b2;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.AUGMENT=1]="AUGMENT",e[e.API_TOKEN=2]="API_TOKEN",e[e.SLACK=3]="SLACK",e[e.INTERNAL_IAP=4]="INTERNAL_IAP"})(b2||(b2={}));var f2;(function(e){e[e.BOT_TYPE_UNSPECIFIED=0]="BOT_TYPE_UNSPECIFIED",e[e.CODE_REVIEW_BOT=1]="CODE_REVIEW_BOT",e[e.CODE_REVIEW_EVAL_BOT=2]="CODE_REVIEW_EVAL_BOT",e[e.ATHENA_BOT=3]="ATHENA_BOT",e[e.SLACK_BOT=4]="SLACK_BOT",e[e.LINEAR_BOT=5]="LINEAR_BOT",e[e.SANDBOX=6]="SANDBOX"})(f2||(f2={}));var m2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.REGULAR=1]="REGULAR",e[e.SERVICE=2]="SERVICE"})(m2||(m2={}));var V2=k("CidzZXJ2aWNlcy9hdXRoL2NlbnRyYWwvc2VydmVyL2F1dGgucHJvdG8SBGF1dGgipAIKGUNhbmNlbFN1YnNjcmlwdGlvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSGgoSY2FuY2VsX2ltbWVkaWF0ZWx5GAMgASgIEjoKCGZlZWRiYWNrGAQgASgLMiguYXV0aC5DYW5jZWxTdWJzY3JpcHRpb25SZXF1ZXN0LkZlZWRiYWNrEg4KBnJlYXNvbhgFIAEoCRp7CghGZWVkYmFjaxI1ChNjYW5jZWxsYXRpb25fcmVhc29uGAEgASgOMhguYXV0aC5DYW5jZWxsYXRpb25SZWFzb24SIAoTYWRkaXRpb25hbF9mZWVkYmFjaxgCIAEoCUgAiAEBQhYKFF9hZGRpdGlvbmFsX2ZlZWRiYWNrKugHChJDYW5jZWxsYXRpb25SZWFzb24SIwofQ0FOQ0VMTEFUSU9OX1JFQVNPTl9VTlNQRUNJRklFRBAAEiUKIUNBTkNFTExBVElPTl9SRUFTT05fVE9PX0VYUEVOU0lWRRABEigKJENBTkNFTExBVElPTl9SRUFTT05fTk9UX1VTSU5HX0VOT1VHSBACEigKJENBTkNFTExBVElPTl9SRUFTT05fTUlTU0lOR19GRUFUVVJFUxADEigKJENBTkNFTExBVElPTl9SRUFTT05fVEVDSE5JQ0FMX0lTU1VFUxAEEi8KK0NBTkNFTExBVElPTl9SRUFTT05fU1dJVENISU5HX1RPX0NPTVBFVElUT1IQBRIwCixDQU5DRUxMQVRJT05fUkVBU09OX1NXSVRDSElOR19UT19DTEFVREVfQ09ERRAGEioKJkNBTkNFTExBVElPTl9SRUFTT05fU1dJVENISU5HX1RPX0NPREVYEAcSLworQ0FOQ0VMTEFUSU9OX1JFQVNPTl9TV0lUQ0hJTkdfVE9fR0VNSU5JX0NMSRAIEisKJ0NBTkNFTExBVElPTl9SRUFTT05fU1dJVENISU5HX1RPX0NVUlNPUhAJEi0KKUNBTkNFTExBVElPTl9SRUFTT05fU1dJVENISU5HX1RPX1dJTkRTVVJGEAoSLAooQ0FOQ0VMTEFUSU9OX1JFQVNPTl9TV0lUQ0hJTkdfVE9fQ09QSUxPVBALEioKJkNBTkNFTExBVElPTl9SRUFTT05fU1dJVENISU5HX1RPX0NMSU5FEAwSKgomQ0FOQ0VMTEFUSU9OX1JFQVNPTl9TV0lUQ0hJTkdfVE9fREVWSU4QDRIoCiRDQU5DRUxMQVRJT05fUkVBU09OX1NXSVRDSElOR19UT19ST08QDhIsCihDQU5DRUxMQVRJT05fUkVBU09OX1NXSVRDSElOR19UT19MT1ZBQkxFEA8SLAooQ0FOQ0VMTEFUSU9OX1JFQVNPTl9TV0lUQ0hJTkdfVE9fRkFDVE9SWRAQEi8KK0NBTkNFTExBVElPTl9SRUFTT05fU1dJVENISU5HX1RPX09USEVSX1RPT0wQERIoCiRDQU5DRUxMQVRJT05fUkVBU09OX05PX0xPTkdFUl9ORUVERUQQEhIdChlDQU5DRUxMQVRJT05fUkVBU09OX09USEVSEBMSMwovQ0FOQ0VMTEFUSU9OX1JFQVNPTl9SRVFVSVJFX0NPTVBMRVRJT05TX0ZFQVRVUkUQFBIxCi1DQU5DRUxMQVRJT05fUkVBU09OX1JFUVVJUkVfTkVYVF9FRElUX0ZFQVRVUkUQFUJDWkFnaXRodWIuY29tL2F1Z21lbnRjb2RlL2F1Z21lbnQvc2VydmljZXMvYXV0aC9jZW50cmFsL3NlcnZlci9wcm90b2IGcHJvdG8z",[ee,$e]);var A2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TOO_EXPENSIVE=1]="TOO_EXPENSIVE",e[e.NOT_USING_ENOUGH=2]="NOT_USING_ENOUGH",e[e.MISSING_FEATURES=3]="MISSING_FEATURES",e[e.TECHNICAL_ISSUES=4]="TECHNICAL_ISSUES",e[e.SWITCHING_TO_COMPETITOR=5]="SWITCHING_TO_COMPETITOR",e[e.SWITCHING_TO_CLAUDE_CODE=6]="SWITCHING_TO_CLAUDE_CODE",e[e.SWITCHING_TO_CODEX=7]="SWITCHING_TO_CODEX",e[e.SWITCHING_TO_GEMINI_CLI=8]="SWITCHING_TO_GEMINI_CLI",e[e.SWITCHING_TO_CURSOR=9]="SWITCHING_TO_CURSOR",e[e.SWITCHING_TO_WINDSURF=10]="SWITCHING_TO_WINDSURF",e[e.SWITCHING_TO_COPILOT=11]="SWITCHING_TO_COPILOT",e[e.SWITCHING_TO_CLINE=12]="SWITCHING_TO_CLINE",e[e.SWITCHING_TO_DEVIN=13]="SWITCHING_TO_DEVIN",e[e.SWITCHING_TO_ROO=14]="SWITCHING_TO_ROO",e[e.SWITCHING_TO_LOVABLE=15]="SWITCHING_TO_LOVABLE",e[e.SWITCHING_TO_FACTORY=16]="SWITCHING_TO_FACTORY",e[e.SWITCHING_TO_OTHER_TOOL=17]="SWITCHING_TO_OTHER_TOOL",e[e.NO_LONGER_NEEDED=18]="NO_LONGER_NEEDED",e[e.OTHER=19]="OTHER",e[e.REQUIRE_COMPLETIONS_FEATURE=20]="REQUIRE_COMPLETIONS_FEATURE",e[e.REQUIRE_NEXT_EDIT_FEATURE=21]="REQUIRE_NEXT_EDIT_FEATURE"})(A2||(A2={}));var p2=k("Ci5zZXJ2aWNlcy9iaWxsaW5nL21ldGVyaW5nL21ldGVyaW5nX2V2ZW50LnByb3RvEg5tZXRlcmluZ19ldmVudCKRBAoOUmVxdWVzdENvbnRleHQSFgoOcmVxdWVzdF9zb3VyY2UYASABKAkSEgoKcmVxdWVzdF9pZBgCIAEoCRISCgpzZXNzaW9uX2lkGAMgASgJEhEKCXRlbmFudF9pZBgFIAEoCRImCgd1c2VyX2lkGAYgASgLMhUuYXV0aF9lbnRpdGllcy5Vc2VySWQSGwoTdXNlcl9lbWFpbF9vdmVycmlkZRgHIAEoCRIXCg9jb252ZXJzYXRpb25faWQYCCABKAkSHgoWcGFyZW50X2NvbnZlcnNhdGlvbl9pZBgJIAEoCRIcChRyb290X2NvbnZlcnNhdGlvbl9pZBgKIAEoCRIPCgd0dXJuX2lkGAsgASgJEioKCXVzZXJfdHlwZRgMIAEoDjIXLmF1dGhfZW50aXRpZXMuVXNlclR5cGUSKAoIYm90X3R5cGUYDSABKA4yFi5hdXRoX2VudGl0aWVzLkJvdFR5cGUSDwoHaXNfYnlvaxgOIAEoCBIRCglleHBlcnRfaWQYDyABKAkSGQoRZXVfaW5mZXJlbmNlX29ubHkYECABKAgSEwoLd29ya2Zsb3dfaWQYESABKAkSEwoLcmVzaWRlbnRfaWQYEiABKAkSFgoOZW52aXJvbm1lbnRfaWQYEyABKAkSEAoIYWdlbnRfaWQYFCABKAkSEAoIc3BhY2VfaWQYFSABKAlKBAgEEAUiiAEKFUFnZW50TWV0ZXJpbmdNZXRhZGF0YRIdChVhY3Rpdml0eV9kaXNwbGF5X25hbWUYASABKAkSGgoSbW9kZWxfZGlzcGxheV9uYW1lGAIgASgJEhwKFHJlcXVlc3RlZF9tb2RlbF9uYW1lGAMgASgJEhYKDnJvdXRpbmdfcmVhc29uGAQgASgJIloKHUNvbnRleHRFbmdpbmVNZXRlcmluZ01ldGFkYXRhEh0KFWFjdGl2aXR5X2Rpc3BsYXlfbmFtZRgBIAEoCRIaChJtb2RlbF9kaXNwbGF5X25hbWUYAiABKAkiYwoXQ29tcHV0ZU1ldGVyaW5nTWV0YWRhdGESHQoVYWN0aXZpdHlfZGlzcGxheV9uYW1lGAEgASgJEhoKEm1vZGVsX2Rpc3BsYXlfbmFtZRgCIAEoCRINCgV2bV9pZBgDIAEoCSKgBAoLQ29zdENvbnRleHQSGwoTYWN0aXZpdHlfbXVsdGlwbGllchgBIAEoARIUCgxpbnB1dF90b2tlbnMYAiABKAUSFQoNb3V0cHV0X3Rva2VucxgDIAEoBRIZChFjYWNoZV9yZWFkX3Rva2VucxgEIAEoBRIaChJjYWNoZV93cml0ZV90b2tlbnMYBSABKAUSEgoKbW9kZWxfbmFtZRgGIAEoCRIWCg50b3RhbF9jb3N0X3VzZBgHIAEoARIaChJieW9rX3Byb3ZpZGVyX25hbWUYCCABKAkSFgoOc3VyY2hhcmdlX3JhdGUYCSABKAESFQoNc3VyY2hhcmdlX3VzZBgKIAEoCRIVCg1iYXNlX2Nvc3RfdXNkGAsgASgJEhAKCHZtX2NvdW50GAwgASgFEhoKEnRvdGFsX2NwdV9jb3N0X3VzZBgNIAEoARIdChV0b3RhbF9tZW1vcnlfY29zdF91c2QYDiABKAESHgoWdG90YWxfYmlsbGFibGVfc2Vjb25kcxgPIAEoARIRCgljcHVfY29yZXMYECABKAISFwoPbWVtb3J5X3NpemVfbWliGBEgASgFEhcKD3Byb3ZpZGVyX3JlZ2lvbhgSIAEoCRIWCg5lbmRwb2ludF9zY29wZRgTIAEoCRIgChNyZWdpb25hbF9tdWx0aXBsaWVyGBQgASgBSACIAQFCFgoUX3JlZ2lvbmFsX211bHRpcGxpZXIizwUKDU1ldGVyaW5nRXZlbnQSFgoOaWRlbXBvdGVuY3lfaWQYASABKAkSOwoKdXNhZ2VfdHlwZRgCIAEoDjInLm1ldGVyaW5nX2V2ZW50Lk1ldGVyaW5nRXZlbnQuVXNhZ2VUeXBlEjcKD3JlcXVlc3RfY29udGV4dBgDIAEoCzIeLm1ldGVyaW5nX2V2ZW50LlJlcXVlc3RDb250ZXh0EkgKF2FnZW50X21ldGVyaW5nX21ldGFkYXRhGAQgASgLMiUubWV0ZXJpbmdfZXZlbnQuQWdlbnRNZXRlcmluZ01ldGFkYXRhSAASWQogY29udGV4dF9lbmdpbmVfbWV0ZXJpbmdfbWV0YWRhdGEYByABKAsyLS5tZXRlcmluZ19ldmVudC5Db250ZXh0RW5naW5lTWV0ZXJpbmdNZXRhZGF0YUgAEkwKGWNvbXB1dGVfbWV0ZXJpbmdfbWV0YWRhdGEYCyABKAsyJy5tZXRlcmluZ19ldmVudC5Db21wdXRlTWV0ZXJpbmdNZXRhZGF0YUgAEi0KCXRpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQY3JlZGl0c19jb25zdW1lZBgGIAEoARIxCgxjb3N0X2NvbnRleHQYCCABKAsyGy5tZXRlcmluZ19ldmVudC5Db3N0Q29udGV4dBIPCgdkcnlfcnVuGAkgASgIEhMKB2lzX2J5b2sYCiABKAhCAhgBEhkKEWJpbGxlZF9hbW91bnRfdXNkGA4gASgJEiMKG2VzdGltYXRlZF9jdXN0b21lcl9jb3N0X3VzZBgPIAEoCSJPCglVc2FnZVR5cGUSFgoSVVNBR0VfVFlQRV9VTktOT1dOEAASCQoFQUdFTlQQARISCg5DT05URVhUX0VOR0lORRACEgsKB0NPTVBVVEUQA0IKCghtZXRhZGF0YUJGWkRnaXRodWIuY29tL2F1Z21lbnRjb2RlL2F1Z21lbnQvc2VydmljZXMvYmlsbGluZy9tZXRlcmluZ19ldmVudF9wcm90b2IGcHJvdG8z",[ee,$e]);var g2;(function(e){e[e.USAGE_TYPE_UNKNOWN=0]="USAGE_TYPE_UNKNOWN",e[e.AGENT=1]="AGENT",e[e.CONTEXT_ENGINE=2]="CONTEXT_ENGINE",e[e.COMPUTE=3]="COMPUTE"})(g2||(g2={}));var E2=k("CilzZXJ2aWNlcy9jb21wbGV0aW9uX2hvc3QvY29tcGxldGlvbi5wcm90bxIKY29tcGxldGlvbiJECg9HaXREaWZmRmlsZUluZm8SGQoRY29udGVudF9ibG9iX25hbWUYASABKAkSFgoOZmlsZV9ibG9iX25hbWUYAiABKAki6wEKC1JlY2VuY3lJbmZvEjUKEXRhYl9zd2l0Y2hfZXZlbnRzGAEgAygLMhouY29tcGxldGlvbi5UYWJTd2l0Y2hFdmVudBI3ChJnaXRfZGlmZl9maWxlX2luZm8YAiADKAsyGy5jb21wbGV0aW9uLkdpdERpZmZGaWxlSW5mbxIzCg5yZWNlbnRfY2hhbmdlcxgDIAMoCzIbLmNvbXBsZXRpb24uUmVwbGFjZW1lbnRUZXh0EjcKD3ZpZXdlZF9jb250ZW50cxgEIAMoCzIeLmNvbXBsZXRpb24uVmlld2VkQ29udGVudEV2ZW50IoUCCg9SZXBsYWNlbWVudFRleHQSEQoJYmxvYl9uYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSEgoKY2hhcl9zdGFydBgDIAEoDRIQCghjaGFyX2VuZBgEIAEoDRIYChByZXBsYWNlbWVudF90ZXh0GAUgASgJEhcKD3ByZXNlbnRfaW5fYmxvYhgGIAEoCBIfChJleHBlY3RlZF9ibG9iX25hbWUYByABKAlIAIgBARIyCgl0aW1lc3RhbXAYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCFQoTX2V4cGVjdGVkX2Jsb2JfbmFtZUIMCgpfdGltZXN0YW1wIjYKDlRhYlN3aXRjaEV2ZW50EgwKBHBhdGgYASABKAkSFgoOZmlsZV9ibG9iX25hbWUYAiABKAkizgEKElZpZXdlZENvbnRlbnRFdmVudBIMCgRwYXRoGAEgASgJEhYKDmZpbGVfYmxvYl9uYW1lGAIgASgJEhcKD3Zpc2libGVfY29udGVudBgDIAEoCRISCgpsaW5lX3N0YXJ0GAQgASgNEhAKCGxpbmVfZW5kGAUgASgNEhIKCmNoYXJfc3RhcnQYBiABKA0SEAoIY2hhcl9lbmQYByABKA0SLQoJdGltZXN0YW1wGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcGIGcHJvdG8z",[Vt,Ha,ee]);var R2=k("Ch1zZXJ2aWNlcy9lZGl0X2hvc3QvZWRpdC5wcm90bxIEZWRpdCJLCgxFZGl0UG9zaXRpb24SFAoMcHJlZml4X2JlZ2luGAEgASgFEhIKCnN1ZmZpeF9lbmQYAiABKAUSEQoJYmxvYl9uYW1lGAMgASgJIvEBCgtFZGl0UmVxdWVzdBISCgptb2RlbF9uYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSDgoGcHJlZml4GAMgASgJEhUKDXNlbGVjdGVkX3RleHQYBCABKAkSDgoGc3VmZml4GAUgASgJEhMKC2luc3RydWN0aW9uGAYgASgJEiQKCHBvc2l0aW9uGAcgASgLMhIuZWRpdC5FZGl0UG9zaXRpb24SDAoEbGFuZxgJIAEoCRITCgtzZXF1ZW5jZV9pZBgKIAEoDRIlCgVibG9icxgLIAEoCzIWLmJhc2UuYmxvYl9uYW1lcy5CbG9ic0oECAgQCSJWCgxFZGl0UmVzcG9uc2USDAoEdGV4dBgBIAEoCRIaChJ1bmtub3duX2Jsb2JfbmFtZXMYAiADKAkSHAoUY2hlY2twb2ludF9ub3RfZm91bmQYAyABKAgieQoIRXhjaGFuZ2USFwoPcmVxdWVzdF9tZXNzYWdlGAEgASgJEhoKDXJlc3BvbnNlX3RleHQYAiABKAlIAIgBARIXCgpyZXF1ZXN0X2lkGAMgASgJSAGIAQFCEAoOX3Jlc3BvbnNlX3RleHRCDQoLX3JlcXVlc3RfaWQijwEKHEluc3RydWN0aW9uQWdncmVnYXRlUmVzcG9uc2USDAoEdGV4dBgBIAEoCRIaChJ1bmtub3duX2Jsb2JfbmFtZXMYAiADKAkSHAoUY2hlY2twb2ludF9ub3RfZm91bmQYAyABKAgSJwoMcmVwbGFjZV90ZXh0GAQgAygLMhEuZWRpdC5SZXBsYWNlVGV4dCLwBAoSSW5zdHJ1Y3Rpb25SZXF1ZXN0EhIKCm1vZGVsX25hbWUYASABKAkSDAoEcGF0aBgCIAEoCRIOCgZwcmVmaXgYAyABKAkSFQoNc2VsZWN0ZWRfdGV4dBgEIAEoCRIOCgZzdWZmaXgYBSABKAkSEwoLaW5zdHJ1Y3Rpb24YBiABKAkSJAoIcG9zaXRpb24YByABKAsyEi5lZGl0LkVkaXRQb3NpdGlvbhIMCgRsYW5nGAggASgJEhMKC3NlcXVlbmNlX2lkGAkgASgNEiUKBWJsb2JzGAogASgLMhYuYmFzZS5ibG9iX25hbWVzLkJsb2JzEiQKDGNoYXRfaGlzdG9yeRgLIAMoCzIOLmVkaXQuRXhjaGFuZ2USFwoKY29kZV9ibG9jaxgMIAEoCUgAiAEBEh0KEHRhcmdldF9maWxlX3BhdGgYDSABKAlIAYgBARIgChN0YXJnZXRfZmlsZV9jb250ZW50GA4gASgJSAKIAQESLQogY29udGV4dF9jb2RlX2V4Y2hhbmdlX3JlcXVlc3RfaWQYDyABKAlIA4gBARIcCg91c2VyX2d1aWRlbGluZXMYECABKAlIBIgBARIhChR3b3Jrc3BhY2VfZ3VpZGVsaW5lcxgRIAEoCUgFiAEBQg0KC19jb2RlX2Jsb2NrQhMKEV90YXJnZXRfZmlsZV9wYXRoQhYKFF90YXJnZXRfZmlsZV9jb250ZW50QiMKIV9jb250ZXh0X2NvZGVfZXhjaGFuZ2VfcmVxdWVzdF9pZEISChBfdXNlcl9ndWlkZWxpbmVzQhcKFV93b3Jrc3BhY2VfZ3VpZGVsaW5lcyKuAQoLUmVwbGFjZVRleHQSEQoEdGV4dBgBIAEoCUgAiAEBEhcKCnN0YXJ0X2xpbmUYAiABKA1IAYgBARIVCghlbmRfbGluZRgDIAEoDUgCiAEBEhUKCG9sZF90ZXh0GAQgASgJSAOIAQESEwoLc2VxdWVuY2VfaWQYBSABKA1CBwoFX3RleHRCDQoLX3N0YXJ0X2xpbmVCCwoJX2VuZF9saW5lQgsKCV9vbGRfdGV4dGIGcHJvdG8z",[Vt]);var Z2=k("Ci9zZXJ2aWNlcy9pbnRlZ3JhdGlvbnMvZ2l0aHViL2dpdGh1Yl9ldmVudC5wcm90bxIMZ2l0aHViX2V2ZW50InkKDUV2ZW50TWV0YWRhdGESFwoPaW5zdGFsbGF0aW9uX2lkGAEgASgDEhEKCXRlbmFudF9pZBgCIAEoCRITCgt0ZW5hbnRfbmFtZRgEIAEoCRISCgpyZXF1ZXN0X2lkGAMgASgJEhMKC2RlbGl2ZXJ5X2lkGAUgASgJIkQKClJlcG9zaXRvcnkSEQoEbmFtZRgBIAEoCUIDgAEBEhIKBW93bmVyGAIgASgJQgOAAQESDwoHbm9kZV9pZBgDIAEoCSKAAgoJUHVzaEV2ZW50EiwKCnJlcG9zaXRvcnkYASABKAsyGC5naXRodWJfZXZlbnQuUmVwb3NpdG9yeRIQCgNyZWYYAiABKAlCA4ABARIXCgpiZWZvcmVfc2hhGAMgASgJQgOAAQESFgoJYWZ0ZXJfc2hhGAQgASgJQgOAAQESNwoTcHVzaGVkX2F0X3RpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGZm9yY2VkGAYgASgIEjkKFWhlYWRfY29tbWl0X3RpbWVzdGFtcBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiQwoIVXNlckluZm8SEgoFbG9naW4YASABKAlCA4ABARISCgVlbWFpbBgCIAEoCUIDgAEBEg8KB25vZGVfaWQYAyABKAkiwgEKEUluc3RhbGxhdGlvbkV2ZW50EicKBXJlcG9zGAEgAygLMhguZ2l0aHViX2V2ZW50LlJlcG9zaXRvcnkSDgoGYWN0aW9uGAIgASgJEisKBnNlbmRlchgDIAEoCzIWLmdpdGh1Yl9ldmVudC5Vc2VySW5mb0gAiAEBEi4KCXJlcXVlc3RlchgEIAEoCzIWLmdpdGh1Yl9ldmVudC5Vc2VySW5mb0gBiAEBQgkKB19zZW5kZXJCDAoKX3JlcXVlc3RlciKtBQoQUHVsbFJlcXVlc3RFdmVudBIsCgpyZXBvc2l0b3J5GAEgASgLMhguZ2l0aHViX2V2ZW50LlJlcG9zaXRvcnkSDgoGYWN0aW9uGAIgASgJEg4KBm51bWJlchgDIAEoDRISCgV0aXRsZRgEIAEoCUIDgAEBEhEKBGJvZHkYBSABKAlCA4ABARINCgVzdGF0ZRgGIAEoCRImCgZhdXRob3IYByABKAsyFi5naXRodWJfZXZlbnQuVXNlckluZm8SLQoIYXNzaWduZWUYCCABKAsyFi5naXRodWJfZXZlbnQuVXNlckluZm9IAIgBARITCgZsYWJlbHMYCSADKAlCA4ABARIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCghoZWFkX3JlZhgMIAEoCUIDgAEBEhUKCGhlYWRfc2hhGA0gASgJQgOAAQESFQoIYmFzZV9yZWYYDiABKAlCA4ABARIVCghiYXNlX3NoYRgPIAEoCUIDgAEBEjMKE3JlcXVlc3RlZF9yZXZpZXdlcnMYECADKAsyFi5naXRodWJfZXZlbnQuVXNlckluZm8SDQoFZHJhZnQYESABKAgSDgoGbWVyZ2VkGBIgASgIEjIKCW1lcmdlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIWCglhZGRpdGlvbnMYFCABKANIAogBARIWCglkZWxldGlvbnMYFSABKANIA4gBAUILCglfYXNzaWduZWVCDAoKX21lcmdlZF9hdEIMCgpfYWRkaXRpb25zQgwKCl9kZWxldGlvbnMi4gEKB0NvbW1lbnQSEQoEYm9keRgBIAEoCUIDgAEBEgoKAmlkGAIgASgDEiQKBHVzZXIYAyABKAsyFi5naXRodWJfZXZlbnQuVXNlckluZm8SLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEcGF0aBgGIAEoCUIDgAEBEgwKBGxpbmUYByABKAUSEQoJY29tbWl0X2lkGAggASgJIocCCh1QdWxsUmVxdWVzdFJldmlld0NvbW1lbnRFdmVudBIsCgpyZXBvc2l0b3J5GAEgASgLMhguZ2l0aHViX2V2ZW50LlJlcG9zaXRvcnkSDgoGYWN0aW9uGAIgASgJEg4KBm51bWJlchgDIAEoDRImCgdjb21tZW50GAQgASgLMhUuZ2l0aHViX2V2ZW50LkNvbW1lbnQSHwoScHVsbF9yZXF1ZXN0X3RpdGxlGAUgASgJQgOAAQESGgoScHVsbF9yZXF1ZXN0X3N0YXRlGAYgASgJEjMKE3B1bGxfcmVxdWVzdF9hdXRob3IYByABKAsyFi5naXRodWJfZXZlbnQuVXNlckluZm8i7gEKCkNoZWNrU3VpdGUSCgoCaWQYASABKAMSFQoIaGVhZF9zaGEYAiABKAlCA4ABARIOCgZzdGF0dXMYAyABKAkSEgoKY29uY2x1c2lvbhgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI5Cg1wdWxsX3JlcXVlc3RzGAcgAygLMiIuZ2l0aHViX2V2ZW50LlB1bGxSZXF1ZXN0UmVmZXJlbmNlInEKFFB1bGxSZXF1ZXN0UmVmZXJlbmNlEg4KBm51bWJlchgBIAEoDRISCgV0aXRsZRgCIAEoCUIDgAEBEg0KBXN0YXRlGAMgASgJEiYKBmF1dGhvchgEIAEoCzIWLmdpdGh1Yl9ldmVudC5Vc2VySW5mbyJ+Cg9DaGVja1N1aXRlRXZlbnQSLAoKcmVwb3NpdG9yeRgBIAEoCzIYLmdpdGh1Yl9ldmVudC5SZXBvc2l0b3J5Eg4KBmFjdGlvbhgCIAEoCRItCgtjaGVja19zdWl0ZRgDIAEoCzIYLmdpdGh1Yl9ldmVudC5DaGVja1N1aXRlIrMBCgxJc3N1ZUNvbW1lbnQSEQoEYm9keRgBIAEoCUIDgAEBEgoKAmlkGAIgASgDEiQKBHVzZXIYAyABKAsyFi5naXRodWJfZXZlbnQuVXNlckluZm8SLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihAIKEUlzc3VlQ29tbWVudEV2ZW50EiwKCnJlcG9zaXRvcnkYASABKAsyGC5naXRodWJfZXZlbnQuUmVwb3NpdG9yeRIOCgZhY3Rpb24YAiABKAkSDgoGbnVtYmVyGAMgASgNEisKB2NvbW1lbnQYBCABKAsyGi5naXRodWJfZXZlbnQuSXNzdWVDb21tZW50EhgKC2lzc3VlX3RpdGxlGAUgASgJQgOAAQESEwoLaXNzdWVfc3RhdGUYBiABKAkSFwoPaXNfcHVsbF9yZXF1ZXN0GAcgASgIEiwKDGlzc3VlX2F1dGhvchgIIAEoCzIWLmdpdGh1Yl9ldmVudC5Vc2VySW5mbyLQAQoMQ29tbWl0U3RhdHVzEg0KBXN0YXRlGAEgASgJEhcKCnRhcmdldF91cmwYAiABKAlCA4ABARIYCgtkZXNjcmlwdGlvbhgDIAEoCUIDgAEBEhQKB2NvbnRleHQYBCABKAlCA4ABARIzCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIDgAEBEjMKCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgOAAQEiwwEKC1N0YXR1c0V2ZW50EjEKCnJlcG9zaXRvcnkYASABKAsyGC5naXRodWJfZXZlbnQuUmVwb3NpdG9yeUIDgAEBEgsKA3NoYRgCIAEoCRINCgVzdGF0ZRgDIAEoCRIqCgZzdGF0dXMYBCABKAsyGi5naXRodWJfZXZlbnQuQ29tbWl0U3RhdHVzEjkKDXB1bGxfcmVxdWVzdHMYBSADKAsyIi5naXRodWJfZXZlbnQuUHVsbFJlcXVlc3RSZWZlcmVuY2Ui+wMKC0dpdGh1YkV2ZW50Ei0KCG1ldGFkYXRhGAEgASgLMhsuZ2l0aHViX2V2ZW50LkV2ZW50TWV0YWRhdGESEgoKZXZlbnRfdHlwZRgCIAEoCRInCgRwdXNoGAMgASgLMhcuZ2l0aHViX2V2ZW50LlB1c2hFdmVudEgAEjcKDGluc3RhbGxhdGlvbhgEIAEoCzIfLmdpdGh1Yl9ldmVudC5JbnN0YWxsYXRpb25FdmVudEgAEjYKDHB1bGxfcmVxdWVzdBgFIAEoCzIeLmdpdGh1Yl9ldmVudC5QdWxsUmVxdWVzdEV2ZW50SAASUgobcHVsbF9yZXF1ZXN0X3Jldmlld19jb21tZW50GAYgASgLMisuZ2l0aHViX2V2ZW50LlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudEV2ZW50SAASNAoLY2hlY2tfc3VpdGUYByABKAsyHS5naXRodWJfZXZlbnQuQ2hlY2tTdWl0ZUV2ZW50SAASOAoNaXNzdWVfY29tbWVudBgIIAEoCzIfLmdpdGh1Yl9ldmVudC5Jc3N1ZUNvbW1lbnRFdmVudEgAEisKBnN0YXR1cxgJIAEoCzIZLmdpdGh1Yl9ldmVudC5TdGF0dXNFdmVudEgAEhUKCHJhd19qc29uGAogASgJQgOAAQFCBwoFZXZlbnRiBnByb3RvMw",[ee]);var Ma=k("CidzZXJ2aWNlcy9pbnRlZ3JhdGlvbnMvZ2xlYW4vZ2xlYW4ucHJvdG8SBWdsZWFuIq8FCghEb2N1bWVudBITCgtkb2N1bWVudF9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIPCgdjb250ZW50GAMgASgJEioKDWRvY3VtZW50X3R5cGUYBCABKA4yEy5nbGVhbi5Eb2N1bWVudFR5cGUSJgoLZGF0YV9zb3VyY2UYBSABKA4yES5nbGVhbi5EYXRhU291cmNlEgsKA3VybBgGIAEoCRIhCghjaGlsZHJlbhgHIAMoCzIPLmdsZWFuLkRvY3VtZW50Eh0KBmF1dGhvchgIIAEoCzINLmdsZWFuLlBlcnNvbhIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp2aXNpYmlsaXR5GAsgASgOMhouZ2xlYW4uRG9jdW1lbnQuVmlzaWJpbGl0eRIpCghzbmlwcGV0cxgMIAMoCzIXLmdsZWFuLkRvY3VtZW50LlNuaXBwZXQSGAoQZGF0YV9zb3VyY2VfbmFtZRgNIAEoCRpUCgdTbmlwcGV0EgwKBHRleHQYASABKAkSEwoLc3RhcnRfcmFuZ2UYAiABKAUSEQoJZW5kX3JhbmdlGAMgASgFEhMKC2RvY3VtZW50X2lkGAQgASgJIp8BCgpWaXNpYmlsaXR5EhoKFlVOU1BFQ0lGSUVEX1ZJU0lCSUxJVFkQABIPCgtQVUJMSUNfTElOSxABEhIKDlBVQkxJQ19WSVNJQkxFEAISEgoORE9NQUlOX1ZJU0lCTEUQAxIPCgtET01BSU5fTElOSxAEEgsKB1BSSVZBVEUQBRIeChpTUEVDSUZJQ19QRU9QTEVfQU5EX0dST1VQUxAGIiIKBlBlcnNvbhIMCgRuYW1lGAEgASgJEgoKAmlkGAIgASgJImEKDVNlYXJjaFJlcXVlc3QSDQoFcXVlcnkYASABKAkSHAoUaW5jbHVkZV9wcml2YXRlX2RvY3MYAiABKAgSDwoHdXNlcl9pZBgDIAEoCRISCgp1c2VyX2VtYWlsGAQgASgJIlwKDlNlYXJjaFJlc3BvbnNlEiIKCWRvY3VtZW50cxgBIAMoCzIPLmdsZWFuLkRvY3VtZW50EhEKCW9hdXRoX3VybBgCIAEoCRITCgtzdGF0dXNfY29kZRgDIAEoBSpYCgpEYXRhU291cmNlEhsKF1VOU1BFQ0lGSUVEX0RBVEFfU09VUkNFEAASCQoFU0xBQ0sQARIKCgZOT1RJT04QAhIKCgZMSU5FQVIQAxIKCgZHSVRIVUIQBCpuCgxEb2N1bWVudFR5cGUSHQoZVU5TUEVDSUZJRURfRE9DVU1FTlRfVFlQRRAAEggKBFBBR0UQARILCgdNRVNTQUdFEAISCwoHQ0hBTk5FTBADEhAKDENPTlZFUlNBVElPThAEEgkKBUlTU1VFEAVCQlpAZ2l0aHViLmNvbS9hdWdtZW50Y29kZS9hdWdtZW50L3NlcnZpY2VzL2ludGVncmF0aW9ucy9nbGVhbi9wcm90b2IGcHJvdG8z",[ee]);var S2;(function(e){e[e.UNSPECIFIED_VISIBILITY=0]="UNSPECIFIED_VISIBILITY",e[e.PUBLIC_LINK=1]="PUBLIC_LINK",e[e.PUBLIC_VISIBLE=2]="PUBLIC_VISIBLE",e[e.DOMAIN_VISIBLE=3]="DOMAIN_VISIBLE",e[e.DOMAIN_LINK=4]="DOMAIN_LINK",e[e.PRIVATE=5]="PRIVATE",e[e.SPECIFIC_PEOPLE_AND_GROUPS=6]="SPECIFIC_PEOPLE_AND_GROUPS"})(S2||(S2={}));var X2;(function(e){e[e.UNSPECIFIED_DATA_SOURCE=0]="UNSPECIFIED_DATA_SOURCE",e[e.SLACK=1]="SLACK",e[e.NOTION=2]="NOTION",e[e.LINEAR=3]="LINEAR",e[e.GITHUB=4]="GITHUB"})(X2||(X2={}));var W2;(function(e){e[e.UNSPECIFIED_DOCUMENT_TYPE=0]="UNSPECIFIED_DOCUMENT_TYPE",e[e.PAGE=1]="PAGE",e[e.MESSAGE=2]="MESSAGE",e[e.CHANNEL=3]="CHANNEL",e[e.CONVERSATION=4]="CONVERSATION",e[e.ISSUE=5]="ISSUE"})(W2||(W2={}));var G2=k("CjFzZXJ2aWNlcy9pbnRlZ3JhdGlvbnMvc2xhY2tfYm90L3NsYWNrX2V2ZW50LnByb3RvEghzbGFja2JvdCKzAQoNRXZlbnRNZXRhZGF0YRIPCgd0ZWFtX2lkGAEgASgJEhUKDWVudGVycHJpc2VfaWQYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCnJlcXVlc3RfaWQYBCABKAkSEwoLdGVuYW50X25hbWUYBSABKAkSFwoPc2hhcmRfbmFtZXNwYWNlGAYgASgJEhMKC3JpX2V2ZW50X2lkGAcgASgJEhAKCGV2ZW50X2lkGAggASgJIrEBCg9BcHBNZW50aW9uRXZlbnQSEQoEdGV4dBgDIAEoCUIDgAEBEgwKBHVzZXIYBCABKAkSEQoJdGltZXN0YW1wGAUgASgJEhgKEHRocmVhZF90aW1lc3RhbXAYBiABKAkSDwoHY2hhbm5lbBgHIAEoCRIXCg9ldmVudF90aW1lc3RhbXAYCCABKAkSEQoJdXNlcl90ZWFtGAkgASgJEhMKC3NvdXJjZV90ZWFtGAogASgJIvcBCgxNZXNzYWdlRXZlbnQSFQoNY2xpZW50X21zZ19pZBgBIAEoCRIMCgR1c2VyGAIgASgJEgwKBHRleHQYAyABKAkSGAoQdGhyZWFkX3RpbWVzdGFtcBgEIAEoCRIRCgl0aW1lc3RhbXAYBSABKAkSDwoHY2hhbm5lbBgGIAEoCRIUCgxjaGFubmVsX3R5cGUYByABKAkSFwoPZXZlbnRfdGltZXN0YW1wGAggASgJEhEKCXVzZXJfdGVhbRgJIAEoCRITCgtzb3VyY2VfdGVhbRgKIAEoCRIPCgdzdWJ0eXBlGAsgASgJEg4KBmJvdF9pZBgMIAEoCSKhAQoSUmVhY3Rpb25BZGRlZEV2ZW50EgwKBHVzZXIYASABKAkSEQoJaXRlbV91c2VyGAIgASgJEhcKD2V2ZW50X3RpbWVzdGFtcBgDIAEoCRIRCglpdGVtX3R5cGUYBCABKAkSFAoMaXRlbV9jaGFubmVsGAUgASgJEhAKCHJlYWN0aW9uGAYgASgJEhYKDml0ZW1fdGltZXN0YW1wGAcgASgJImMKGE1lbWJlckpvaW5lZENoYW5uZWxFdmVudBIMCgR1c2VyGAEgASgJEg8KB2NoYW5uZWwYAiABKAkSFwoPZXZlbnRfdGltZXN0YW1wGAMgASgJEg8KB2ludml0ZXIYBCABKAkiPgoTQXBwVW5pbnN0YWxsZWRFdmVudBIXCg9ldmVudF90aW1lc3RhbXAYASABKAMSDgoGYXBwX2lkGAIgASgJIkwKEkFwcEhvbWVPcGVuZWRFdmVudBIMCgR1c2VyGAEgASgJEg8KB2NoYW5uZWwYAiABKAkSFwoPZXZlbnRfdGltZXN0YW1wGAMgASgJImQKEkNoYW5uZWxDcmVhdGVkSW5mbxIKCgJpZBgBIAEoCRISCgppc19jaGFubmVsGAIgASgIEgwKBG5hbWUYAyABKAkSDwoHY3JlYXRlZBgEIAEoAxIPCgdjcmVhdG9yGAUgASgJIl0KE0NoYW5uZWxDcmVhdGVkRXZlbnQSLQoHY2hhbm5lbBgBIAEoCzIcLnNsYWNrYm90LkNoYW5uZWxDcmVhdGVkSW5mbxIXCg9ldmVudF90aW1lc3RhbXAYAiABKAki7QMKClNsYWNrRXZlbnQSKQoIbWV0YWRhdGEYASABKAsyFy5zbGFja2JvdC5FdmVudE1ldGFkYXRhEhIKCmV2ZW50X3R5cGUYAiABKAkSMAoLYXBwX21lbnRpb24YAyABKAsyGS5zbGFja2JvdC5BcHBNZW50aW9uRXZlbnRIABIpCgdtZXNzYWdlGAQgASgLMhYuc2xhY2tib3QuTWVzc2FnZUV2ZW50SAASNgoOcmVhY3Rpb25fYWRkZWQYBSABKAsyHC5zbGFja2JvdC5SZWFjdGlvbkFkZGVkRXZlbnRIABJDChVtZW1iZXJfam9pbmVkX2NoYW5uZWwYBiABKAsyIi5zbGFja2JvdC5NZW1iZXJKb2luZWRDaGFubmVsRXZlbnRIABI4Cg9hcHBfdW5pbnN0YWxsZWQYByABKAsyHS5zbGFja2JvdC5BcHBVbmluc3RhbGxlZEV2ZW50SAASNwoPYXBwX2hvbWVfb3BlbmVkGAggASgLMhwuc2xhY2tib3QuQXBwSG9tZU9wZW5lZEV2ZW50SAASOAoPY2hhbm5lbF9jcmVhdGVkGAogASgLMh0uc2xhY2tib3QuQ2hhbm5lbENyZWF0ZWRFdmVudEgAEhAKCHJhd19qc29uGAkgASgJQgcKBWV2ZW50YgZwcm90bzM");var I2=k("CiBzZXJ2aWNlcy9zZXR0aW5ncy9zZXR0aW5ncy5wcm90bxIIc2V0dGluZ3Mi9AUKE01jcE9BdXRoQ3JlZGVudGlhbHMSFAoMYWNjZXNzX3Rva2VuGAEgASgJEhoKDXJlZnJlc2hfdG9rZW4YAiABKAlIAIgBARJAChdhY2Nlc3NfdG9rZW5fZXhwaXJlc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgp0b2tlbl90eXBlGAQgASgJSAKIAQESEgoFc2NvcGUYBSABKAlIA4gBARIeChZhdXRob3JpemF0aW9uX2VuZHBvaW50GAYgASgJEhYKDnRva2VuX2VuZHBvaW50GAcgASgJEhMKBmlzc3VlchgIIAEoCUgEiAEBEhEKCWNsaWVudF9pZBgJIAEoCRIaCg1jbGllbnRfc2VjcmV0GAogASgJSAWIAQESHgoRaGFzX3JlZnJlc2hfdG9rZW4YCyABKAhIBogBARIdChBvYXV0aF9zZWNyZXRfa2V5GAwgASgJSAeIAQESKQocb2F1dGhfc2VjcmV0X293bmVyX2NvbmZpZ19pZBgNIAEoCUgIiAEBEicKGnRva2VuX2VuZHBvaW50X2F1dGhfbWV0aG9kGA4gASgJSAmIAQESLAokb2F1dGhfc2VjcmV0X293bmVyX2NvbmZpZ19pZF9hbGlhc2VzGA8gAygJEhwKD29hdXRoX3NlY3JldF9pZBgQIAEoCUgKiAEBQhAKDl9yZWZyZXNoX3Rva2VuQhoKGF9hY2Nlc3NfdG9rZW5fZXhwaXJlc19hdEINCgtfdG9rZW5fdHlwZUIICgZfc2NvcGVCCQoHX2lzc3VlckIQCg5fY2xpZW50X3NlY3JldEIUChJfaGFzX3JlZnJlc2hfdG9rZW5CEwoRX29hdXRoX3NlY3JldF9rZXlCHwodX29hdXRoX3NlY3JldF9vd25lcl9jb25maWdfaWRCHQobX3Rva2VuX2VuZHBvaW50X2F1dGhfbWV0aG9kQhIKEF9vYXV0aF9zZWNyZXRfaWRiBnByb3RvMw",[tn,ee,$e,Ma]);var y2=k("CipzZXJ2aWNlcy9yZW1vdGVfYWdlbnRzL3JlbW90ZV9hZ2VudHMucHJvdG8SDXJlbW90ZV9hZ2VudHMiQAoQQWRkU1NIS2V5UmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkSEwoLcHVibGljX2tleXMYAiADKAkiRgoRQWRkU1NIS2V5UmVzcG9uc2USMQoKc3NoX2NvbmZpZxgBIAEoCzIdLnJlbW90ZV9hZ2VudHMuQWdlbnRTU0hDb25maWcixwMKBUFnZW50EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCRIqCgZzdGF0dXMYAiABKA4yGi5yZW1vdGVfYWdlbnRzLkFnZW50U3RhdHVzEioKBmNvbmZpZxgDIAEoCzIaLnJlbW90ZV9hZ2VudHMuQWdlbnRDb25maWcSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoKc3NoX2NvbmZpZxgGIAEoCzIdLnJlbW90ZV9hZ2VudHMuQWdlbnRTU0hDb25maWdIAIgBARIYCgtoYXNfdXBkYXRlcxgHIAEoCEgBiAEBEjgKEHdvcmtzcGFjZV9zdGF0dXMYCCABKA4yHi5yZW1vdGVfYWdlbnRzLldvcmtzcGFjZVN0YXR1cxIzCgpleHBpcmVzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQg0KC19zc2hfY29uZmlnQg4KDF9oYXNfdXBkYXRlc0INCgtfZXhwaXJlc19hdCL2BgoLQWdlbnRDb25maWcSNgoPd29ya3NwYWNlX3NldHVwGAEgASgLMh0ucmVtb3RlX2FnZW50cy5Xb3Jrc3BhY2VTZXR1cBItCg5zdGFydGluZ19ub2RlcxgCIAMoCzIVLmNoYXQuQ2hhdFJlcXVlc3ROb2RlEhwKD3VzZXJfZ3VpZGVsaW5lcxgDIAEoCUgAiAEBEiEKFHdvcmtzcGFjZV9ndWlkZWxpbmVzGAQgASgJSAGIAQESEgoFbW9kZWwYBiABKAlIAogBARIiChVpc19zZXR1cF9zY3JpcHRfYWdlbnQYByABKAhIA4gBARIzCgttY3Bfc2VydmVycxgIIAMoCzIeLnJlbW90ZV9hZ2VudHMuTWNwU2VydmVyQ29uZmlnEhIKBXRpdGxlGAkgASgJSASIAQESOQoOcmVxdWVzdF9zb3VyY2UYCiABKA4yHC5yZW1vdGVfYWdlbnRzLlJlcXVlc3RTb3VyY2VIBYgBARIWCg5kaXNhYmxlZF90b29scxgMIAMoCRJSChVtY3Bfb2F1dGhfY3JlZGVudGlhbHMYDSADKAsyMy5yZW1vdGVfYWdlbnRzLkFnZW50Q29uZmlnLk1jcE9hdXRoQ3JlZGVudGlhbHNFbnRyeRItCghib3RfdHlwZRgOIAEoDjIWLmF1dGhfZW50aXRpZXMuQm90VHlwZUgGiAEBEhsKDmNvcnJlbGF0aW9uX2lkGA8gASgJSAeIAQESLwoic2tpcF9mZWF0dXJlX2dhdGluZ19mb3JfZnJlZV90cmlhbBgQIAEoCEgIiAEBGlkKGE1jcE9hdXRoQ3JlZGVudGlhbHNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKAsyHS5zZXR0aW5ncy5NY3BPQXV0aENyZWRlbnRpYWxzOgI4AUISChBfdXNlcl9ndWlkZWxpbmVzQhcKFV93b3Jrc3BhY2VfZ3VpZGVsaW5lc0IICgZfbW9kZWxCGAoWX2lzX3NldHVwX3NjcmlwdF9hZ2VudEIICgZfdGl0bGVCEQoPX3JlcXVlc3Rfc291cmNlQgsKCV9ib3RfdHlwZUIRCg9fY29ycmVsYXRpb25faWRCJQojX3NraXBfZmVhdHVyZV9nYXRpbmdfZm9yX2ZyZWVfdHJpYWxKBAgFEAZKBAgLEAwicwoOQWdlbnRTU0hDb25maWcSEwoLcHVibGljX2tleXMYASADKAkSEAoIaG9zdG5hbWUYAiABKAkSOgoSc3NoX2NvbmZpZ19vcHRpb25zGAMgAygLMh4ucmVtb3RlX2FnZW50cy5TU0hDb25maWdPcHRpb24iYgoLQ2hhdFJlcXVlc3QSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEjoKD3JlcXVlc3RfZGV0YWlscxgCIAEoCzIhLnJlbW90ZV9hZ2VudHMuQ2hhdFJlcXVlc3REZXRhaWxzIo8CChJDaGF0UmVxdWVzdERldGFpbHMSLAoNcmVxdWVzdF9ub2RlcxgBIAMoCzIVLmNoYXQuQ2hhdFJlcXVlc3ROb2RlEhwKD3VzZXJfZ3VpZGVsaW5lcxgCIAEoCUgAiAEBEiEKFHdvcmtzcGFjZV9ndWlkZWxpbmVzGAMgASgJSAGIAQESFQoIbW9kZWxfaWQYBSABKAlIAogBARIzCgttY3Bfc2VydmVycxgGIAMoCzIeLnJlbW90ZV9hZ2VudHMuTWNwU2VydmVyQ29uZmlnQhIKEF91c2VyX2d1aWRlbGluZXNCFwoVX3dvcmtzcGFjZV9ndWlkZWxpbmVzQgsKCV9tb2RlbF9pZEoECAQQBSIOCgxDaGF0UmVzcG9uc2UiaAoSQ3JlYXRlQWdlbnRSZXF1ZXN0EioKBmNvbmZpZxgBIAEoCzIaLnJlbW90ZV9hZ2VudHMuQWdlbnRDb25maWcSFwoKaW1hZ2VfbmFtZRgCIAEoCUgAiAEBQg0KC19pbWFnZV9uYW1lIjoKE0NyZWF0ZUFnZW50UmVzcG9uc2USIwoFYWdlbnQYASABKAsyFC5yZW1vdGVfYWdlbnRzLkFnZW50Ii0KEkRlbGV0ZUFnZW50UmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkiFQoTRGVsZXRlQWdlbnRSZXNwb25zZSJ4ChZEaWZmRXhwbGFuYXRpb25TZWN0aW9uEg0KBXRpdGxlGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEjoKCHNlY3Rpb25zGAMgAygLMigucmVtb3RlX2FnZW50cy5EaWZmRXhwbGFuYXRpb25TdWJTZWN0aW9uIqEBChlEaWZmRXhwbGFuYXRpb25TdWJTZWN0aW9uEg0KBXRpdGxlGAEgASgJEkkKDGRlc2NyaXB0aW9ucxgCIAMoCzIzLnJlbW90ZV9hZ2VudHMuRGlmZkV4cGxhbmF0aW9uU3ViU2VjdGlvbkRlc2NyaXB0aW9uEioKCWRpZmZfdHlwZRgDIAEoDjIXLnJlbW90ZV9hZ2VudHMuRGlmZlR5cGUifgokRGlmZkV4cGxhbmF0aW9uU3ViU2VjdGlvbkRlc2NyaXB0aW9uEgwKBHBhdGgYASABKAkSDAoEdGV4dBgCIAEoCRIjCgVyYW5nZRgDIAEoCzIULnJlbW90ZV9hZ2VudHMuUmFuZ2USFQoNc2VsZWN0ZWRfY29kZRgEIAEoCSJlChZHZW5lcmF0ZVN1bW1hcnlSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCRIZChFzdGFydF9zZXF1ZW5jZV9pZBgCIAEoDRIXCg9lbmRfc2VxdWVuY2VfaWQYAyABKA0iWwoXR2VuZXJhdGVTdW1tYXJ5UmVzcG9uc2USQAoRZGlmZl9kZXNjcmlwdGlvbnMYASADKAsyJS5yZW1vdGVfYWdlbnRzLkRpZmZFeHBsYW5hdGlvblNlY3Rpb24iJQoJR2l0aHViUmVmEgsKA3VybBgBIAEoCRILCgNyZWYYAiABKAkiMAoVSW50ZXJydXB0QWdlbnRSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCSIYChZJbnRlcnJ1cHRBZ2VudFJlc3BvbnNlIoMDCg9NY3BTZXJ2ZXJDb25maWcSFAoHY29tbWFuZBgBIAEoCUgAiAEBEgwKBGFyZ3MYAiADKAkSFwoKdGltZW91dF9tcxgDIAEoBUgBiAEBEjQKA2VudhgEIAMoCzInLnJlbW90ZV9hZ2VudHMuTWNwU2VydmVyQ29uZmlnLkVudkVudHJ5EiQKF3VzZV9zaGVsbF9pbnRlcnBvbGF0aW9uGAUgASgISAKIAQESEQoEbmFtZRgGIAEoCUgDiAEBEhUKCGRpc2FibGVkGAcgASgISASIAQESEQoEdHlwZRgIIAEoCUgFiAEBEhAKA3VybBgJIAEoCUgGiAEBGioKCEVudkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCgoIX2NvbW1hbmRCDQoLX3RpbWVvdXRfbXNCGgoYX3VzZV9zaGVsbF9pbnRlcnBvbGF0aW9uQgcKBV9uYW1lQgsKCV9kaXNhYmxlZEIHCgVfdHlwZUIGCgRfdXJsIiwKEVBhdXNlQWdlbnRSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCSIUChJQYXVzZUFnZW50UmVzcG9uc2UiIwoFUmFuZ2USDQoFc3RhcnQYASABKAUSCwoDZW5kGAIgASgFIi0KElJlc3VtZUFnZW50UmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkiFQoTUmVzdW1lQWdlbnRSZXNwb25zZSJsChZSZXN1bWVIaW50QWdlbnRSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCRI5CgtoaW50X3JlYXNvbhgCIAEoDjIkLnJlbW90ZV9hZ2VudHMuUmVzdW1lSGludEFnZW50UmVhc29uIjEKF1Jlc3VtZUhpbnRBZ2VudFJlc3BvbnNlEhYKDnJlc3VtZV9zdGFydGVkGAEgASgIIi0KD1NTSENvbmZpZ09wdGlvbhILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkiUwoSVXBkYXRlQWdlbnRSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCRIWCgluZXdfdGl0bGUYAiABKAlIAIgBAUIMCgpfbmV3X3RpdGxlIjoKE1VwZGF0ZUFnZW50UmVzcG9uc2USIwoFYWdlbnQYASABKAsyFC5yZW1vdGVfYWdlbnRzLkFnZW50ItACCg5Xb3Jrc3BhY2VTZXR1cBIuCgpnaXRodWJfcmVmGAEgASgLMhgucmVtb3RlX2FnZW50cy5HaXRodWJSZWZIABISCgVwYXRjaBgCIAEoCUgBiAEBEhkKDHNldHVwX3NjcmlwdBgDIAEoCUgCiAEBEhIKBXRva2VuGAQgASgJSAOIAQESFAoHYXBpX3VybBgFIAEoCUgEiAEBEkAKCmdpdF9jb25maWcYBiADKAsyLC5yZW1vdGVfYWdlbnRzLldvcmtzcGFjZVNldHVwLkdpdENvbmZpZ0VudHJ5GjAKDkdpdENvbmZpZ0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCEAoOc3RhcnRpbmdfZmlsZXNCCAoGX3BhdGNoQg8KDV9zZXR1cF9zY3JpcHRCCAoGX3Rva2VuQgoKCF9hcGlfdXJsKoACCgtBZ2VudFN0YXR1cxIcChhBR0VOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIYChRBR0VOVF9TVEFUVVNfUEVORElORxAFEhkKFUFHRU5UX1NUQVRVU19TVEFSVElORxABEhgKFEFHRU5UX1NUQVRVU19SVU5OSU5HEAISFQoRQUdFTlRfU1RBVFVTX0lETEUQAxIXChNBR0VOVF9TVEFUVVNfRkFJTEVEEAQSGAoUQUdFTlRfU1RBVFVTX1BBVVNJTkcQBhIXChNBR0VOVF9TVEFUVVNfUEFVU0VEEAcSIQodQUdFTlRfU1RBVFVTX1BFTkRJTkdfREVMRVRJT04QCCqJAQoIRGlmZlR5cGUSDwoLVU5TUEVDSUZJRUQQABIHCgNGSVgQARILCgdGRUFUVVJFEAISDAoIUkVGQUNUT1IQAxIRCg1ET0NVTUVOVEFUSU9OEAQSCQoFU1RZTEUQBRIICgRURVNUEAYSCQoFQ0hPUkUQBxIKCgZSRVZFUlQQCBIJCgVPVEhFUhAJKt8BCg1SZXF1ZXN0U291cmNlEh4KGlJFUVVFU1RfU09VUkNFX1VOU1BFQ0lGSUVEEAASFgoSUkVRVUVTVF9TT1VSQ0VfSURFEAESIgoeUkVRVUVTVF9TT1VSQ0VfQVVHTUVOVF9BQ1RJT05TEAISHAoYUkVRVUVTVF9TT1VSQ0VfU0xBQ0tfQk9UEAMSHQoZUkVRVUVTVF9TT1VSQ0VfR0lUSFVCX0JPVBAEEh0KGVJFUVVFU1RfU09VUkNFX0xJTkVBUl9CT1QQBRIWChJSRVFVRVNUX1NPVVJDRV9DTEkQBiqaAQoVUmVzdW1lSGludEFnZW50UmVhc29uEigKJFJFU1VNRV9BR0VOVF9ISU5UX1JFQVNPTl9VTlNQRUNJRklFRBAAEisKJ1JFU1VNRV9BR0VOVF9ISU5UX1JFQVNPTl9UWVBJTkdfTUVTU0FHRRABEioKJlJFU1VNRV9BR0VOVF9ISU5UX1JFQVNPTl9WSUVXSU5HX0FHRU5UEAIqygEKD1dvcmtzcGFjZVN0YXR1cxIgChxXT1JLU1BBQ0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHAoYV09SS1NQQUNFX1NUQVRVU19SVU5OSU5HEAESHAoYV09SS1NQQUNFX1NUQVRVU19QQVVTSU5HEAISGwoXV09SS1NQQUNFX1NUQVRVU19QQVVTRUQQAxIdChlXT1JLU1BBQ0VfU1RBVFVTX1JFU1VNSU5HEAQSHQoZV09SS1NQQUNFX1NUQVRVU19ERUxFVElORxAFYgZwcm90bzM",[ee,$e,Yn,I2]);var N2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.PENDING=5]="PENDING",e[e.STARTING=1]="STARTING",e[e.RUNNING=2]="RUNNING",e[e.IDLE=3]="IDLE",e[e.FAILED=4]="FAILED",e[e.PAUSING=6]="PAUSING",e[e.PAUSED=7]="PAUSED",e[e.PENDING_DELETION=8]="PENDING_DELETION"})(N2||(N2={}));var F2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.FIX=1]="FIX",e[e.FEATURE=2]="FEATURE",e[e.REFACTOR=3]="REFACTOR",e[e.DOCUMENTATION=4]="DOCUMENTATION",e[e.STYLE=5]="STYLE",e[e.TEST=6]="TEST",e[e.CHORE=7]="CHORE",e[e.REVERT=8]="REVERT",e[e.OTHER=9]="OTHER"})(F2||(F2={}));var B2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.IDE=1]="IDE",e[e.AUGMENT_ACTIONS=2]="AUGMENT_ACTIONS",e[e.SLACK_BOT=3]="SLACK_BOT",e[e.GITHUB_BOT=4]="GITHUB_BOT",e[e.LINEAR_BOT=5]="LINEAR_BOT",e[e.CLI=6]="CLI"})(B2||(B2={}));var C2;(function(e){e[e.RESUME_AGENT_HINT_REASON_UNSPECIFIED=0]="RESUME_AGENT_HINT_REASON_UNSPECIFIED",e[e.RESUME_AGENT_HINT_REASON_TYPING_MESSAGE=1]="RESUME_AGENT_HINT_REASON_TYPING_MESSAGE",e[e.RESUME_AGENT_HINT_REASON_VIEWING_AGENT=2]="RESUME_AGENT_HINT_REASON_VIEWING_AGENT"})(C2||(C2={}));var Y2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.RUNNING=1]="RUNNING",e[e.PAUSING=2]="PAUSING",e[e.PAUSED=3]="PAUSED",e[e.RESUMING=4]="RESUMING",e[e.DELETING=5]="DELETING"})(Y2||(Y2={}));var U2=k("ChpzZXJ2aWNlcy9zaGFyZS9zaGFyZS5wcm90bxIFc2hhcmUicQoMQ2hhdEV4Y2hhbmdlEhIKCnJlcXVlc3RfaWQYASABKAkSFAoHbWVzc2FnZRgCIAEoCUIDgAEBEhUKCHJlc3BvbnNlGAMgASgJQgOAAQESIAoTcmVzcG9uc2Vfbm9kZXNfanNvbhgEIAEoCUIDgAEBIioKGkdldENoYXRDb252ZXJzYXRpb25SZXF1ZXN0EgwKBHV1aWQYASABKAkiswEKG0dldENoYXRDb252ZXJzYXRpb25SZXNwb25zZRIMCgR1dWlkGAEgASgJEigKBGRhdGUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBHVzZXIYAyABKAkSFwoPY29udmVyc2F0aW9uX2lkGAQgASgJEiEKBGNoYXQYBSADKAsyEy5zaGFyZS5DaGF0RXhjaGFuZ2USEgoFdGl0bGUYBiABKAlCA4ABASJ7ChtTYXZlQ2hhdENvbnZlcnNhdGlvblJlcXVlc3QSDAoEdXNlchgBIAEoCRIXCg9jb252ZXJzYXRpb25faWQYAiABKAkSIQoEY2hhdBgDIAMoCzITLnNoYXJlLkNoYXRFeGNoYW5nZRISCgV0aXRsZRgEIAEoCUIDgAEBIiwKHFNhdmVDaGF0Q29udmVyc2F0aW9uUmVzcG9uc2USDAoEdXVpZBgBIAEoCTLGAQoFU2hhcmUSXAoTR2V0Q2hhdENvbnZlcnNhdGlvbhIhLnNoYXJlLkdldENoYXRDb252ZXJzYXRpb25SZXF1ZXN0GiIuc2hhcmUuR2V0Q2hhdENvbnZlcnNhdGlvblJlc3BvbnNlEl8KFFNhdmVDaGF0Q29udmVyc2F0aW9uEiIuc2hhcmUuU2F2ZUNoYXRDb252ZXJzYXRpb25SZXF1ZXN0GiMuc2hhcmUuU2F2ZUNoYXRDb252ZXJzYXRpb25SZXNwb25zZWIGcHJvdG8z",[ee]);var d0=k("Ci5zZXJ2aWNlcy9yZXF1ZXN0X2luc2lnaHQvcmVxdWVzdF9pbnNpZ2h0LnByb3RvEg9yZXF1ZXN0X2luc2lnaHQiYgoNQWdlbnRGZWVkYmFjaxIvCgZyYXRpbmcYASABKA4yHy5yZXF1ZXN0X2luc2lnaHQuRmVlZGJhY2tSYXRpbmcSDAoEbm90ZRgCIAEoCRISCgp1c2VyX2FnZW50GAMgASgJIk0KFUFnZW50SW50ZXJydXB0aW9uRGF0YRISCgpyZXF1ZXN0X2lkGAEgASgJEiAKGGN1cnJfY29udmVyc2F0aW9uX2xlbmd0aBgCIAEoDSKjAgoRQWdlbnRSZXF1ZXN0RXZlbnQSWAofY2hhdF9oaXN0b3J5X3N1bW1hcml6YXRpb25fZGF0YRgFIAEoCzItLnJlcXVlc3RfaW5zaWdodC5DaGF0SGlzdG9yeVN1bW1hcml6YXRpb25EYXRhSAASSAoXZmlyc3RfdG9rZW5fdGltaW5nX2RhdGEYBiABKAsyJS5yZXF1ZXN0X2luc2lnaHQuRmlyc3RUb2tlblRpbWluZ0RhdGFIABISCgpldmVudF9uYW1lGAEgASgJEhIKCnVzZXJfYWdlbnQYAiABKAkSFwoPY29udmVyc2F0aW9uX2lkGAMgASgJEhsKE2NoYXRfaGlzdG9yeV9sZW5ndGgYBCABKA1CDAoKZXZlbnRfZGF0YSIUChJBZ2VudFJldmVyc2lvbkRhdGEiugoKEUFnZW50U2Vzc2lvbkV2ZW50EkMKFGFnZW50X3JldmVyc2lvbl9kYXRhGAQgASgLMiMucmVxdWVzdF9pbnNpZ2h0LkFnZW50UmV2ZXJzaW9uRGF0YUgAEkkKF2FnZW50X2ludGVycnVwdGlvbl9kYXRhGAUgASgLMiYucmVxdWVzdF9pbnNpZ2h0LkFnZW50SW50ZXJydXB0aW9uRGF0YUgAEkgKF3JlbWVtYmVyX3Rvb2xfY2FsbF9kYXRhGAYgASgLMiUucmVxdWVzdF9pbnNpZ2h0LlJlbWVtYmVyVG9vbENhbGxEYXRhSAASSAoXbWVtb3JpZXNfZmlsZV9vcGVuX2RhdGEYByABKAsyJS5yZXF1ZXN0X2luc2lnaHQuTWVtb3JpZXNGaWxlT3BlbkRhdGFIABJLChhpbml0aWFsX29yaWVudGF0aW9uX2RhdGEYCCABKAsyJy5yZXF1ZXN0X2luc2lnaHQuSW5pdGlhbE9yaWVudGF0aW9uRGF0YUgAEkwKGWNsYXNzaWZ5X2FuZF9kaXN0aWxsX2RhdGEYCSABKAsyJy5yZXF1ZXN0X2luc2lnaHQuQ2xhc3NpZnlBbmREaXN0aWxsRGF0YUgAEkEKE2ZsdXNoX21lbW9yaWVzX2RhdGEYCiABKAsyIi5yZXF1ZXN0X2luc2lnaHQuRmx1c2hNZW1vcmllc0RhdGFIABI/ChJtZW1vcmllc19tb3ZlX2RhdGEYCyABKAsyIS5yZXF1ZXN0X2luc2lnaHQuTWVtb3JpZXNNb3ZlRGF0YUgAEkEKE3J1bGVzX2ltcG9ydGVkX2RhdGEYDCABKAsyIi5yZXF1ZXN0X2luc2lnaHQuUnVsZXNJbXBvcnRlZERhdGFIABJCChR0YXNrX2xpc3RfdXNhZ2VfZGF0YRgNIAEoCzIiLnJlcXVlc3RfaW5zaWdodC5UYXNrTGlzdFVzYWdlRGF0YUgAEkkKF2NvbnRlbnRfdHJ1bmNhdGlvbl9kYXRhGA4gASgLMiYucmVxdWVzdF9pbnNpZ2h0LkNvbnRlbnRUcnVuY2F0aW9uRGF0YUgAElAKG21vZGVsX3NlbGVjdGlvbl9jaGFuZ2VfZGF0YRgPIAEoCzIpLnJlcXVlc3RfaW5zaWdodC5Nb2RlbFNlbGVjdGlvbkNoYW5nZURhdGFIABJMChlzY3JpcHRfY2FwdHVyZV9iYXNpY19kYXRhGBAgASgLMicucmVxdWVzdF9pbnNpZ2h0LlNjcmlwdENhcHR1cmVCYXNpY0RhdGFIABI9ChFtZW1vcnlfdXNhZ2VfZGF0YRgRIAEoCzIgLnJlcXVlc3RfaW5zaWdodC5NZW1vcnlVc2FnZURhdGFIABJRChxza2lsbHNfaW5jbHVkZWRfaW5fY2hhdF9kYXRhGBIgASgLMikucmVxdWVzdF9pbnNpZ2h0LlNraWxsc0luY2x1ZGVkSW5DaGF0RGF0YUgAEkwKGXNraWxsX2NvbnRlbnRfbG9hZGVkX2RhdGEYEyABKAsyJy5yZXF1ZXN0X2luc2lnaHQuU2tpbGxDb250ZW50TG9hZGVkRGF0YUgAEkEKE3JldHJpZXZhbF90b29sX2RhdGEYFCABKAsyIi5yZXF1ZXN0X2luc2lnaHQuUmV0cmlldmFsVG9vbERhdGFIABISCgpldmVudF9uYW1lGAEgASgJEhIKCnVzZXJfYWdlbnQYAiABKAkSFwoPY29udmVyc2F0aW9uX2lkGAMgASgJQgwKCmV2ZW50X2RhdGEivggKEEFnZW50VHJhY2luZ0RhdGESOwoFZmxhZ3MYAyADKAsyLC5yZXF1ZXN0X2luc2lnaHQuQWdlbnRUcmFjaW5nRGF0YS5GbGFnc0VudHJ5EjkKBG51bXMYBCADKAsyKy5yZXF1ZXN0X2luc2lnaHQuQWdlbnRUcmFjaW5nRGF0YS5OdW1zRW50cnkSSAoMc3RyaW5nX3N0YXRzGAUgAygLMjIucmVxdWVzdF9pbnNpZ2h0LkFnZW50VHJhY2luZ0RhdGEuU3RyaW5nU3RhdHNFbnRyeRJGCgtyZXF1ZXN0X2lkcxgGIAMoCzIxLnJlcXVlc3RfaW5zaWdodC5BZ2VudFRyYWNpbmdEYXRhLlJlcXVlc3RJZHNFbnRyeRozCgtTdHJpbmdTdGF0cxIRCgludW1fbGluZXMYASABKAUSEQoJbnVtX2NoYXJzGAIgASgFGkwKDFRpbWVkQm9vbGVhbhINCgV2YWx1ZRgBIAEoCBItCgl0aW1lc3RhbXAYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGksKC1RpbWVkTnVtYmVyEg0KBXZhbHVlGAEgASgBEi0KCXRpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAafwoQVGltZWRTdHJpbmdTdGF0cxI8CgV2YWx1ZRgBIAEoCzItLnJlcXVlc3RfaW5zaWdodC5BZ2VudFRyYWNpbmdEYXRhLlN0cmluZ1N0YXRzEi0KCXRpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAaSwoLVGltZWRTdHJpbmcSDQoFdmFsdWUYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBpcCgpGbGFnc0VudHJ5EgsKA2tleRgBIAEoCRI9CgV2YWx1ZRgCIAEoCzIuLnJlcXVlc3RfaW5zaWdodC5BZ2VudFRyYWNpbmdEYXRhLlRpbWVkQm9vbGVhbjoCOAEaWgoJTnVtc0VudHJ5EgsKA2tleRgBIAEoCRI8CgV2YWx1ZRgCIAEoCzItLnJlcXVlc3RfaW5zaWdodC5BZ2VudFRyYWNpbmdEYXRhLlRpbWVkTnVtYmVyOgI4ARpmChBTdHJpbmdTdGF0c0VudHJ5EgsKA2tleRgBIAEoCRJBCgV2YWx1ZRgCIAEoCzIyLnJlcXVlc3RfaW5zaWdodC5BZ2VudFRyYWNpbmdEYXRhLlRpbWVkU3RyaW5nU3RhdHM6AjgBGmAKD1JlcXVlc3RJZHNFbnRyeRILCgNrZXkYASABKAkSPAoFdmFsdWUYAiABKAsyLS5yZXF1ZXN0X2luc2lnaHQuQWdlbnRUcmFjaW5nRGF0YS5UaW1lZFN0cmluZzoCOAEipwEKFUFwaUh0dHBSZXF1ZXN0RGV0YWlscxITCgtoZWFkZXJfanNvbhgBIAEoCRItCg5vcGFxdWVfdXNlcl9pZBgCIAEoCzIVLmF1dGhfZW50aXRpZXMuVXNlcklkEjIKDHJlcXVlc3RfdHlwZRgDIAEoDjIcLnJlcXVlc3RfaW5zaWdodC5SZXF1ZXN0VHlwZRIWCg5yZXF1ZXN0X3BhcmFtcxgEIAEoCSI2Cg9BcGlIdHRwUmVzcG9uc2USDAoEY29kZRgBIAEoDRIVCg1lcnJvcl9tZXNzYWdlGAIgASgJIqYCChBBdXRvVG9wVXBTZXR0aW5nEhcKD29yYl9jdXN0b21lcl9pZBgBIAEoCRJBCgZhY3Rpb24YAiABKA4yMS5yZXF1ZXN0X2luc2lnaHQuQXV0b1RvcFVwU2V0dGluZy5BdXRvVG9wVXBBY3Rpb24SEQoJdGhyZXNob2xkGAMgASgDEg4KBmFtb3VudBgEIAEoAxIZChFiaWxsaW5nX2VudGl0eV9pZBgFIAEoCRIYChB0b3BfdXBfdGhyZXNob2xkGAYgASgJEhUKDXRvcF91cF9hbW91bnQYByABKAkiRwoPQXV0b1RvcFVwQWN0aW9uEhkKFVVOS05PV05fVE9QX1VQX0FDVElPThAAEgsKB0VOQUJMRUQQARIMCghESVNBQkxFRBACImsKFEJ1dGxlclBsYW5uZXJBdHRlbXB0Eg8KB2F0dGVtcHQYASABKAUSFAoMcmF3X3Jlc3BvbnNlGAIgASgJEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBAUIQCg5fZXJyb3JfbWVzc2FnZSKaCQoVQnV0bGVyUm91dGluZ1Jlc3BvbnNlEhYKDnNlbGVjdGVkX21vZGVsGAEgASgJEhUKDXJvdXRpbmdfbW9kZWwYAiABKAkSFgoOcm91dGluZ19yZWFzb24YAyABKAkSGQoMcGxhbm5lcl90aWVyGAQgASgJSACIAQESNwoIYXR0ZW1wdHMYBSADKAsyJS5yZXF1ZXN0X2luc2lnaHQuQnV0bGVyUGxhbm5lckF0dGVtcHQSFAoMcm91dGluZ19wYXRoGAYgASgJEiUKGHBsYW5uZXJfZXN0aW1hdGVkX3JvdW5kcxgHIAEoBUgBiAEBEiMKFnBsYW5uZXJfaGlnaF9yZWFzb25pbmcYCCABKAhIAogBARIeChFwbGFubmVyX2Jhc2VfdGllchgJIAEoCUgDiAEBEigKG3BsYW5uZXJfdXNlcl9yZXF1ZXN0ZWRfdGllchgKIAEoCUgEiAEBEiAKE3BsYW5uZXJfcHJvbXB0X2hhc2gYCyABKAlIBYgBARIXCg9jb252ZXJzYXRpb25faWQYDCABKAkSDwoHdHVybl9pZBgNIAEoCRIZChFidXRsZXJfbW9kZWxfbmFtZRgOIAEoCRIRCglpc19zaWxlbnQYDyABKAgSGwoTaXNfdG9vbF9yZXN1bHRfdHVybhgQIAEoCBJECg1zZXNzaW9uX3N0YXRlGBEgASgLMigucmVxdWVzdF9pbnNpZ2h0LkJ1dGxlclNlc3Npb25DYWNoZVN0YXRlSAaIAQESUQoWcGVuZGluZ19yZXRyeV9kZWNpc2lvbhgSIAEoCzIsLnJlcXVlc3RfaW5zaWdodC5CdXRsZXJTdW1tYXJpemVSZXRyeVBlbmRpbmdIB4gBARIUCgxzcnBfZGVjaXNpb24YEyABKAkSHQoQcF93ZWFrX2Nhbl9zb2x2ZRgUIAEoAkgIiAEBEiMKFndlYWtfcHJvYmFiaWxpdHlfZmxvb3IYFSABKAJICYgBARIhChRwcmlzbV9wbGFubmVyX3N0YXR1cxgWIAEoCUgKiAEBEiIKFXByaXNtX3BsYW5uZXJfdmVyc2lvbhgXIAEoCUgLiAEBEiUKGHByaXNtX3BsYW5uZXJfbGF0ZW5jeV9tcxgYIAEoBUgMiAEBQg8KDV9wbGFubmVyX3RpZXJCGwoZX3BsYW5uZXJfZXN0aW1hdGVkX3JvdW5kc0IZChdfcGxhbm5lcl9oaWdoX3JlYXNvbmluZ0IUChJfcGxhbm5lcl9iYXNlX3RpZXJCHgocX3BsYW5uZXJfdXNlcl9yZXF1ZXN0ZWRfdGllckIWChRfcGxhbm5lcl9wcm9tcHRfaGFzaEIQCg5fc2Vzc2lvbl9zdGF0ZUIZChdfcGVuZGluZ19yZXRyeV9kZWNpc2lvbkITChFfcF93ZWFrX2Nhbl9zb2x2ZUIZChdfd2Vha19wcm9iYWJpbGl0eV9mbG9vckIXChVfcHJpc21fcGxhbm5lcl9zdGF0dXNCGAoWX3ByaXNtX3BsYW5uZXJfdmVyc2lvbkIbChlfcHJpc21fcGxhbm5lcl9sYXRlbmN5X21zInAKF0J1dGxlclNlc3Npb25DYWNoZVN0YXRlEhIKCmxhc3RfbW9kZWwYASABKAkSGQoRY29uc2VjdXRpdmVfdHVybnMYAiABKAUSFQoNY2FjaGVkX3Rva2VucxgDIAEoAxIPCgdsYXN0X3RzGAQgASgBIkYKG0J1dGxlclN1bW1hcml6ZVJldHJ5UGVuZGluZxIPCgd0dXJuX2lkGAEgASgJEhYKDnNlbGVjdGVkX21vZGVsGAIgASgJIuIBChJDYW5jZWxTdWJzY3JpcHRpb24SGwoTb3JiX3N1YnNjcmlwdGlvbl9pZBgBIAEoCRI6CghmZWVkYmFjaxgCIAEoCzIoLmF1dGguQ2FuY2VsU3Vic2NyaXB0aW9uUmVxdWVzdC5GZWVkYmFjaxIbChNjYW5jZWxsYXRpb25fcmVhc29uGAMgASgJEh4KFnN0cmlwZV9zdWJzY3JpcHRpb25faWQYBCABKAkSGQoRYmlsbGluZ19lbnRpdHlfaWQYBSABKAkSGwoTYWRkaXRpb25hbF9mZWVkYmFjaxgGIAEoCSIUChJDaGFuZ2VzQXBwbGllZERhdGEiYQoMQ2hhdEZlZWRiYWNrEi8KBnJhdGluZxgBIAEoDjIfLnJlcXVlc3RfaW5zaWdodC5GZWVkYmFja1JhdGluZxIMCgRub3RlGAIgASgJEhIKCnVzZXJfYWdlbnQYAyABKAki6wQKHENoYXRIaXN0b3J5U3VtbWFyaXphdGlvbkRhdGESIAoYdG90YWxfaGlzdG9yeV9jaGFyX2NvdW50GAEgASgNEiQKHHRvdGFsX2hpc3RvcnlfZXhjaGFuZ2VfY291bnQYAiABKA0SFwoPaGVhZF9jaGFyX2NvdW50GAMgASgNEhsKE2hlYWRfZXhjaGFuZ2VfY291bnQYBCABKA0SHAoUaGVhZF9sYXN0X3JlcXVlc3RfaWQYBSABKAkSFwoPdGFpbF9jaGFyX2NvdW50GAYgASgNEhsKE3RhaWxfZXhjaGFuZ2VfY291bnQYByABKA0SHAoUdGFpbF9sYXN0X3JlcXVlc3RfaWQYCCABKAkSGgoSc3VtbWFyeV9jaGFyX2NvdW50GAkgASgNEiEKGXN1bW1hcml6YXRpb25fZHVyYXRpb25fbXMYCiABKA0SIAoYaXNfY2FjaGVfYWJvdXRfdG9fZXhwaXJlGAsgASgIEhIKCmlzX2Fib3J0ZWQYDCABKAgSJgoZdG90YWxfaGlzdG9yeV90b2tlbl9jb3VudBgNIAEoDUgAiAEBEh0KEGhlYWRfdG9rZW5fY291bnQYDiABKA1IAYgBARIdChB0YWlsX3Rva2VuX2NvdW50GA8gASgNSAKIAQESIAoTdG9rZW5zX2Zyb21fYmFja2VuZBgQIAEoCEgDiAEBQhwKGl90b3RhbF9oaXN0b3J5X3Rva2VuX2NvdW50QhMKEV9oZWFkX3Rva2VuX2NvdW50QhMKEV90YWlsX3Rva2VuX2NvdW50QhYKFF90b2tlbnNfZnJvbV9iYWNrZW5kIhkKF0NoYXRJbnB1dENvbXBsZXRpb25FbWl0IjEKHUNoYXRJbnB1dENvbXBsZXRpb25SZXNvbHV0aW9uEhAKCGFjY2VwdGVkGAEgASgIIqAGCg9DaGF0VXNlck1lc3NhZ2USPAoJY2hhdF9tb2RlGAEgASgOMikucmVxdWVzdF9pbnNpZ2h0LkNoYXRVc2VyTWVzc2FnZS5DaGF0TW9kZRIbChNjaGF0X2hpc3RvcnlfbGVuZ3RoGAIgASgNEhgKEGltYWdlX25vZGVfY291bnQYAyABKA0SFwoPY2hhcmFjdGVyX2NvdW50GAQgASgNEhIKCmxpbmVfY291bnQYBSABKA0SLQoOb3BhcXVlX3VzZXJfaWQYBiABKAsyFS5hdXRoX2VudGl0aWVzLlVzZXJJZBIXCgptb2RlbF9uYW1lGAcgASgJSACIAQESHAoPY29udmVyc2F0aW9uX2lkGAggASgJSAGIAQESKAoIYm90X3R5cGUYCSABKA4yFi5hdXRoX2VudGl0aWVzLkJvdFR5cGUSHQoQYWdlbnRfcGVyc29uYV9pZBgKIAEoCUgCiAEBIoMDCghDaGF0TW9kZRISCg5DSEFUX01PREVfQ0hBVBAAEhMKD0NIQVRfTU9ERV9BR0VOVBABEhYKEkNIQVRfTU9ERV9NRU1PUklFUxACEhkKFUNIQVRfTU9ERV9PUklFTlRBVElPThADEiIKHkNIQVRfTU9ERV9NRU1PUklFU19DT01QUkVTU0lPThAEEhoKFkNIQVRfTU9ERV9SRU1PVEVfQUdFTlQQBRIXChNDSEFUX01PREVfQ0xJX0FHRU5UEAYSIAocQ0hBVF9NT0RFX0NMSV9OT05JTlRFUkFDVElWRRAHEhkKFUNIQVRfTU9ERV9DT0RFX1JFVklFVxAIEh8KG0NIQVRfTU9ERV9BR0VOVElDX1NMQUNLX0JPVBAJEiAKHENIQVRfTU9ERV9DT05URVhUX0VOR0lORV9TREsQChIgChxDSEFUX01PREVfQ09OVEVYVF9FTkdJTkVfTUNQEAsSIAocQ0hBVF9NT0RFX1BPU0VJRE9OX0NMSV9BR0VOVBAMQg0KC19tb2RlbF9uYW1lQhIKEF9jb252ZXJzYXRpb25faWRCEwoRX2FnZW50X3BlcnNvbmFfaWQiUQoWQ2xhc3NpZnlBbmREaXN0aWxsRGF0YRI3Cgx0cmFjaW5nX2RhdGEYASABKAsyIS5yZXF1ZXN0X2luc2lnaHQuQWdlbnRUcmFjaW5nRGF0YSJlChBDbGlBZ2VudEZlZWRiYWNrEi8KBnJhdGluZxgBIAEoDjIfLnJlcXVlc3RfaW5zaWdodC5GZWVkYmFja1JhdGluZxIMCgRub3RlGAIgASgJEhIKCnVzZXJfYWdlbnQYAyABKAki6QEKGENsaWVudENvbXBsZXRpb25UaW1lbGluZRI4ChRpbml0aWFsX3JlcXVlc3RfdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOYXBpX3N0YXJ0X3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGFwaV9lbmRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJZW1pdF90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJcCgxDbGllbnRNZXRyaWMSEgoKZXZlbnRfbmFtZRgBIAEoCRISCgp1c2VyX2FnZW50GAIgASgJEhUKDWNsaWVudF9tZXRyaWMYAyABKAkSDQoFdmFsdWUYBCABKAQiawoRQ2xvc2VTdWJzY3JpcHRpb24SGwoTb3JiX3N1YnNjcmlwdGlvbl9pZBgBIAEoCRIeChZzdHJpcGVfc3Vic2NyaXB0aW9uX2lkGAIgASgJEhkKEWJpbGxpbmdfZW50aXR5X2lkGAMgASgJImEKH0NvbW1pdEF0dHJpYnV0aW9uTW9kZWxCcmVha2Rvd24SEgoKbW9kZWxfbmFtZRgBIAEoCRITCgtsaW5lc19hZGRlZBgCIAEoBRIVCg1saW5lc19kZWxldGVkGAMgASgFIu0CChhDb21taXRBdHRyaWJ1dGlvblN1bW1hcnkSGwoTYXR0cmlidXRpb25fdmVyc2lvbhgBIAEoCRIUCgxjb250ZW50X2hhc2gYAiABKAkSNAoQY29tbWl0X3RpbWVzdGFtcBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoRdG90YWxfbGluZXNfYWRkZWQYBCABKAUSGwoTdG90YWxfbGluZXNfZGVsZXRlZBgFIAEoBRJJCg9tb2RlbF9icmVha2Rvd24YBiADKAsyMC5yZXF1ZXN0X2luc2lnaHQuQ29tbWl0QXR0cmlidXRpb25Nb2RlbEJyZWFrZG93bhISCgp3aW5kb3dfc2VjGAcgASgFEhcKD3NvdXJjZV9ldmVudF9pZBgIIAEoCRIgChNpc19mcm9tX21haW5fYnJhbmNoGAkgASgISACIAQFCFgoUX2lzX2Zyb21fbWFpbl9icmFuY2gihAEKEENvbW1pdEZpbGVDaGFuZ2USEwoLY2hhbmdlX3R5cGUYASABKAkSEQoJZmlsZV9wYXRoGAIgASgJEhoKDW9sZF9maWxlX3BhdGgYAyABKAlIAIgBARIRCgRkaWZmGAQgASgJSAGIAQFCEAoOX29sZF9maWxlX3BhdGhCBwoFX2RpZmYivAIKEkNvbW1pdFNlc3Npb25FdmVudBIMCgRoYXNoGAEgASgJEi0KCXRpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHc3ViamVjdBgFIAEoCRIMCgRib2R5GAYgASgJEjcKDGZpbGVfY2hhbmdlcxgHIAMoCzIhLnJlcXVlc3RfaW5zaWdodC5Db21taXRGaWxlQ2hhbmdlEhIKCnVzZXJfYWdlbnQYCCABKAkSNwoTY29tbWl0dGVyX3RpbWVzdGFtcBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIAoTaXNfZnJvbV9tYWluX2JyYW5jaBgKIAEoCEgAiAEBQhYKFF9pc19mcm9tX21haW5fYnJhbmNoSgQIAhADSgQIAxAEIhAKDkNvbXBsZXRpb25FbWl0IlMKEkNvbXBsZXRpb25GZWVkYmFjaxIvCgZyYXRpbmcYASABKA4yHy5yZXF1ZXN0X2luc2lnaHQuRmVlZGJhY2tSYXRpbmcSDAoEbm90ZRgCIAEoCSLbBQoVQ29tcGxldGlvbkhvc3RSZXF1ZXN0EgwKBHNlZWQYAiABKAQSFAoMZW9zX3Rva2VuX2lkGAQgAygFEg0KBXRvcF9rGAUgASgFEg0KBXRvcF9wGAYgASgCEhMKC3RlbXBlcmF0dXJlGAcgASgCEhIKCm91dHB1dF9sZW4YCCABKAUSGgoSZW5hYmxlX3BhdGhfcHJlZml4GAkgASgIEiAKGGVuYWJsZV9wcmVmZXJlbmNlX3Rva2VucxgKIAEoCBIhChllbmFibGVfZmlsbF9pbl90aGVfbWlkZGxlGAsgASgIEhMKC2VuYWJsZV9ibTI1GA0gASgIEh4KFmVuYWJsZV9kZW5zZV9yZXRyaWV2YWwYDiABKAgSDQoFbW9kZWwYDyABKAkSDgoGcHJlZml4GBAgASgJEgwKBHBhdGgYESABKAkSDgoGc3VmZml4GBIgASgJEhIKCmJsb2JfbmFtZXMYEyADKAkSDAoEbGFuZxgUIAEoCRJACghwb3NpdGlvbhgVIAEoCzIuLnJlcXVlc3RfaW5zaWdodC5Db21wbGV0aW9uSG9zdFJlcXVlc3RQb3NpdGlvbhISCgpwcm9iZV9vbmx5GBYgASgIEiUKBWJsb2JzGBcgASgLMhYuYmFzZS5ibG9iX25hbWVzLkJsb2JzEi0KDHJlY2VuY3lfaW5mbxgYIAEoCzIXLmNvbXBsZXRpb24uUmVjZW5jeUluZm8SMwoMdG9rZW5pemF0aW9uGBkgASgLMh0ucmVxdWVzdF9pbnNpZ2h0LlRva2VuaXphdGlvbhIiChV1c2VyX2ZpbHRlcl90aHJlc2hvbGQYGiABKAJIAIgBARI3CgtlZGl0X2V2ZW50cxgbIAMoCzIiLmJhc2UuZGlmZl91dGlscy5HcmFudWxhckVkaXRFdmVudEIYChZfdXNlcl9maWx0ZXJfdGhyZXNob2xkSgQIARACSgQIDBANInUKHUNvbXBsZXRpb25Ib3N0UmVxdWVzdFBvc2l0aW9uEhQKDHByZWZpeF9iZWdpbhgBIAEoBRIXCg9jdXJzb3JfcG9zaXRpb24YAiABKAUSEgoKc3VmZml4X2VuZBgDIAEoBRIRCglibG9iX25hbWUYBCABKAkihgMKFkNvbXBsZXRpb25Ib3N0UmVzcG9uc2USDAoEdGV4dBgCIAEoCRIaChJ1bmtub3duX2Jsb2JfbmFtZXMYAyADKAkSFgoOc2tpcHBlZF9zdWZmaXgYBiABKAkSHwoXc3VmZml4X3JlcGxhY2VtZW50X3RleHQYByABKAkSHAoUY2hlY2twb2ludF9ub3RfZm91bmQYCCABKAgSMwoMdG9rZW5pemF0aW9uGAkgASgLMh0ucmVxdWVzdF9pbnNpZ2h0LlRva2VuaXphdGlvbhIeChFpc19lbXB0eV9yZXNwb25zZRgKIAEoCEgAiAEBEiAKE2NvbnRhaW5zX3NraXBfdG9rZW4YCyABKAhIAYgBARIeChF2YWxpZF9yZXBsYWNlbWVudBgMIAEoCEgCiAEBQhQKEl9pc19lbXB0eV9yZXNwb25zZUIWChRfY29udGFpbnNfc2tpcF90b2tlbkIUChJfdmFsaWRfcmVwbGFjZW1lbnRKBAgBEAJKBAgEEAVKBAgFEAYi5QIKFUNvbXBsZXRpb25Qb3N0UHJvY2VzcxIfCg5pc19sb3dfcXVhbGl0eRgBIAEoCEICGAFIAIgBARIUCgxmaWx0ZXJfc2NvcmUYDCABKAISJQoYYXBwbGllZF9maWx0ZXJfdGhyZXNob2xkGA0gASgCSAGIAQESTwoNZmlsdGVyX3JlYXNvbhgOIAEoDjIzLnJlcXVlc3RfaW5zaWdodC5Db21wbGV0aW9uUG9zdFByb2Nlc3MuRmlsdGVyUmVhc29uSAKIAQEiWwoMRmlsdGVyUmVhc29uEhkKFVVOS05PV05fRklMVEVSX1JFQVNPThAAEhAKDE5PVF9GSUxURVJFRBABEg8KC0xPV19RVUFMSVRZEAISDQoJREVOWV9MSVNUEANCEQoPX2lzX2xvd19xdWFsaXR5QhsKGV9hcHBsaWVkX2ZpbHRlcl90aHJlc2hvbGRCEAoOX2ZpbHRlcl9yZWFzb24iWgoeQ29tcGxldGlvblJlcXVlc3RJZElzc3VlZEV2ZW50EhIKCnJlcXVlc3RfaWQYASABKAkSFgoJZmlsZV9wYXRoGAIgASgJSACIAQFCDAoKX2ZpbGVfcGF0aCIsChRDb21wbGV0aW9uUmVzb2x1dGlvbhIUCgxhY2NlcHRlZF9pZHgYASABKAUiRAoNQ29udGVudENoYW5nZRIMCgR0ZXh0GAEgASgJEiUKBXJhbmdlGAIgASgLMhYucmVxdWVzdF9pbnNpZ2h0LlJhbmdlIo4BCh1Db250ZW50TWFuYWdlckNoZWNrcG9pbnRCbG9icxIVCg1jaGVja3BvaW50X2lkGAEgASgJEh4KFmJhc2VsaW5lX2NoZWNrcG9pbnRfaWQYAiABKAkSGQoRYWRkZWRfYmxvYnNfY291bnQYAyABKA0SGwoTZGVsZXRlZF9ibG9ic19jb3VudBgEIAEoDSK8AQoZQ29udGVudE1hbmFnZXJVcGxvYWRCbG9icxJTCg51cGxvYWRlZF9ibG9icxgBIAMoCzI7LnJlcXVlc3RfaW5zaWdodC5Db250ZW50TWFuYWdlclVwbG9hZEJsb2JzLlVwbG9hZGVkQmxvYkluZm8aSgoQVXBsb2FkZWRCbG9iSW5mbxIRCglibG9iX25hbWUYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoBBIPCgdleGlzdGVkGAMgASgIIqABChVDb250ZW50VHJ1bmNhdGlvbkRhdGESGwoTb3JpZ2luYWxfY2hhcl9jb3VudBgBIAEoDRIbChNvcmlnaW5hbF9saW5lX2NvdW50GAIgASgNEhwKFHRydW5jYXRlZF9jaGFyX2NvdW50GAMgASgNEhwKFHRydW5jYXRlZF9saW5lX2NvdW50GAQgASgNEhEKCXRvb2xfdHlwZRgFIAEoCSK+AQoOQ29zbW9zRmVlZGJhY2sSLwoGcmF0aW5nGAEgASgOMh8ucmVxdWVzdF9pbnNpZ2h0LkZlZWRiYWNrUmF0aW5nEgwKBG5vdGUYAiABKAkSEgoKdXNlcl9hZ2VudBgDIAEoCRIUCgxyZWFzb25fY29kZXMYBCADKAkSEwoLZXhwZXJ0X25hbWUYBSABKAkSEwoLdGVuYW50X3RpZXIYBiABKAkSGQoRdGVhbV9kaXNwbGF5X25hbWUYByABKAkiDwoNQ3JlYXRlZFBSRGF0YSKPAwoWQ3VzdG9tZXJVSVNlc3Npb25FdmVudBJNCg1zZXNzaW9uX3N0YXJ0GAIgASgLMjQucmVxdWVzdF9pbnNpZ2h0LkN1c3RvbWVyVUlTZXNzaW9uRXZlbnQuU2Vzc2lvblN0YXJ0SAASSQoLc2Vzc2lvbl9lbmQYAyABKAsyMi5yZXF1ZXN0X2luc2lnaHQuQ3VzdG9tZXJVSVNlc3Npb25FdmVudC5TZXNzaW9uRW5kSAASDwoHdXNlcl9pZBgBIAEoCRokCgxTZXNzaW9uU3RhcnQSFAoMcmVkaXJlY3RfdXJsGAEgASgJGpoBCgpTZXNzaW9uRW5kEkkKBnJlYXNvbhgBIAEoDjI5LnJlcXVlc3RfaW5zaWdodC5DdXN0b21lclVJU2Vzc2lvbkV2ZW50LlNlc3Npb25FbmQuUmVhc29uIkEKBlJlYXNvbhIeChpVTktOT1dOX1NFU1NJT05fRU5EX1JFQVNPThAAEgoKBkxPR09VVBABEgsKB1RJTUVPVVQQAkIHCgVldmVudCJZChlEYWlseVJlcXVlc3RMaW1pdEV4Y2VlZGVkEi0KDm9wYXF1ZV91c2VyX2lkGAEgASgLMhUuYXV0aF9lbnRpdGllcy5Vc2VySWQSDQoFbGltaXQYAiABKAUiOQoNRGlmZlBhbmVsRGF0YRIXCg9sb2FkaW5nX3RpbWVfbXMYASABKAUSDwoHYXBwbGllZBgCIAEoCCIKCghFZGl0RW1pdCJUChhFZGl0UmVxdWVzdElkSXNzdWVkRXZlbnQSEgoKcmVxdWVzdF9pZBgBIAEoCRIWCglmaWxlX3BhdGgYAiABKAlIAIgBAUIMCgpfZmlsZV9wYXRoIpMBCg5FZGl0UmVzb2x1dGlvbhITCgtpc19hY2NlcHRlZBgBIAEoCBIbCg5hbm5vdGF0ZWRfdGV4dBgCIAEoCUgAiAEBEiIKFWFubm90YXRlZF9pbnN0cnVjdGlvbhgDIAEoCUgBiAEBQhEKD19hbm5vdGF0ZWRfdGV4dEIYChZfYW5ub3RhdGVkX2luc3RydWN0aW9uIqkBChdFbWJlZGRpbmdzU2VhcmNoUmVxdWVzdBISCgpibG9iX25hbWVzGAEgAygJEhMKC251bV9yZXN1bHRzGAIgASgFEhoKEnRyYW5zZm9ybWF0aW9uX2tleRgDIAEoCRIPCgdzdWJfa2V5GAQgASgJEiUKBWJsb2JzGAUgAygLMhYuYmFzZS5ibG9iX25hbWVzLkJsb2JzEhEKCW51bV9ibG9icxgGIAEoBSKEAQoYRW1iZWRkaW5nc1NlYXJjaFJlc3BvbnNlEhoKEm1pc3NpbmdfYmxvYl9uYW1lcxgBIAMoCRI4CgdyZXN1bHRzGAIgAygLMicucmVxdWVzdF9pbnNpZ2h0LkVtYmVkZGluZ3NTZWFyY2hSZXN1bHQSEgoKYmxvYl9jb3VudBgDIAEoDSJPChZFbWJlZGRpbmdzU2VhcmNoUmVzdWx0EhEKCWJsb2JfbmFtZRgBIAEoCRITCgtjaHVua19pbmRleBgCIAEoDRINCgV2YWx1ZRgDIAEoAiLrAQoORXh0ZW5zaW9uRXJyb3ISIAoTb3JpZ2luYWxfcmVxdWVzdF9pZBgBIAEoCUgAiAEBEg8KB21lc3NhZ2UYAiABKAkSEwoLc3RhY2tfdHJhY2UYAyABKAkSRQoLZGlhZ25vc3RpY3MYBCADKAsyMC5yZXF1ZXN0X2luc2lnaHQuRXh0ZW5zaW9uRXJyb3IuRGlhZ25vc3RpY3NFbnRyeRoyChBEaWFnbm9zdGljc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCFgoUX29yaWdpbmFsX3JlcXVlc3RfaWQisQEKFUV4dGVuc2lvblNlc3Npb25FdmVudBISCgpldmVudF9uYW1lGAEgASgJEhIKCnVzZXJfYWdlbnQYAiABKAkSSAoPYWRkaXRpb25hbF9kYXRhGAMgAygLMi8ucmVxdWVzdF9pbnNpZ2h0LkV4dGVuc2lvblNlc3Npb25FdmVudC5LZXlWYWx1ZRomCghLZXlWYWx1ZRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkiiQEKFEZpcnN0VG9rZW5UaW1pbmdEYXRhEiYKHnVzZXJfbWVzc2FnZV9zZW50X3RpbWVzdGFtcF9tcxgBIAEoBBIpCiFmaXJzdF90b2tlbl9yZWNlaXZlZF90aW1lc3RhbXBfbXMYAiABKAQSHgoWdGltZV90b19maXJzdF90b2tlbl9tcxgDIAEoDSJMChFGbHVzaE1lbW9yaWVzRGF0YRI3Cgx0cmFjaW5nX2RhdGEYASABKAsyIS5yZXF1ZXN0X2luc2lnaHQuQWdlbnRUcmFjaW5nRGF0YSImChBHaXRodWJBUElGYWlsdXJlEhIKCmVycm9yX2NvZGUYASABKAUimgMKHEdpdGh1YlB1bGxSZXF1ZXN0TWVyZ2VkRXZlbnQSFwoKcmVwb19vd25lchgBIAEoCUgAiAEBEhYKCXJlcG9fbmFtZRgCIAEoCUgBiAEBEhYKCXByX251bWJlchgDIAEoDUgCiAEBEjIKCW1lcmdlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARIcCg9tZXJnZWRfYnlfbG9naW4YBSABKAlIBIgBARIWCglhZGRpdGlvbnMYBiABKA1IBYgBARIWCglkZWxldGlvbnMYByABKA1IBogBARIVCghoZWFkX3NoYRgIIAEoCUgHiAEBEhUKCGJhc2VfcmVmGAkgASgJSAiIAQFCDQoLX3JlcG9fb3duZXJCDAoKX3JlcG9fbmFtZUIMCgpfcHJfbnVtYmVyQgwKCl9tZXJnZWRfYXRCEgoQX21lcmdlZF9ieV9sb2dpbkIMCgpfYWRkaXRpb25zQgwKCl9kZWxldGlvbnNCCwoJX2hlYWRfc2hhQgsKCV9iYXNlX3JlZiItChNHaXRodWJVc2VyQXV0aG9yaXplEhYKDmdpdGh1Yl91c2VyX2lkGAEgASgDItYDCgxJbmZlclJlcXVlc3QSDQoFbW9kZWwYASABKAkSDgoGcHJvbXB0GAIgASgJEgwKBHBhdGgYAyABKAkSDgoGc3VmZml4GAQgASgJEhAKCG1lbW9yaWVzGAUgAygJEg0KBXRvcF9rGAYgASgFEg0KBXRvcF9wGAcgASgCEhMKC3RlbXBlcmF0dXJlGAggASgCEhIKCm1heF90b2tlbnMYCSABKAUSEgoKc2Vzc2lvbl9pZBgLIAEoCRIMCgRsYW5nGAwgASgJEhIKCnVzZXJfYWdlbnQYDSABKAkSEwoLc2VxdWVuY2VfaWQYDiABKA0SEgoKcHJvYmVfb25seRgPIAEoCBIlCgVibG9icxgQIAEoCzIWLmJhc2UuYmxvYl9uYW1lcy5CbG9icxItCgxyZWNlbmN5X2luZm8YESABKAsyFy5jb21wbGV0aW9uLlJlY2VuY3lJbmZvEiIKFXVzZXJfZmlsdGVyX3RocmVzaG9sZBgSIAEoAkgAiAEBEjcKC2VkaXRfZXZlbnRzGBMgAygLMiIuYmFzZS5kaWZmX3V0aWxzLkdyYW51bGFyRWRpdEV2ZW50QhgKFl91c2VyX2ZpbHRlcl90aHJlc2hvbGRKBAgKEAsiaQoVSW5mZXJlbmNlSG9zdFJlc3BvbnNlEhUKDWN1bV9sb2dfcHJvYnMYAiABKAISMwoMdG9rZW5pemF0aW9uGAMgASgLMh0ucmVxdWVzdF9pbnNpZ2h0LlRva2VuaXphdGlvbkoECAEQAiLfAQoWSW5pdGlhbE9yaWVudGF0aW9uRGF0YRJJCgZjYWxsZXIYASABKA4yOS5yZXF1ZXN0X2luc2lnaHQuSW5pdGlhbE9yaWVudGF0aW9uRGF0YS5PcmllbnRhdGlvbkNhbGxlchI3Cgx0cmFjaW5nX2RhdGEYAiABKAsyIS5yZXF1ZXN0X2luc2lnaHQuQWdlbnRUcmFjaW5nRGF0YSJBChFPcmllbnRhdGlvbkNhbGxlchIPCgtVTlNQRUNJRklFRBAAEg4KCk9OQk9BUkRJTkcQARILCgdDT01NQU5EEAIiEQoPSW5zdHJ1Y3Rpb25FbWl0ImEKFUluc3RydWN0aW9uUmVzb2x1dGlvbhIaChJpc19hY2NlcHRlZF9jaHVua3MYASADKAgSFQoNaXNfYWNjZXB0X2FsbBgCIAEoCBIVCg1pc19yZWplY3RfYWxsGAMgASgIImUKEE1lbW9yaWVzRmVlZGJhY2sSLwoGcmF0aW5nGAEgASgOMh8ucmVxdWVzdF9pbnNpZ2h0LkZlZWRiYWNrUmF0aW5nEgwKBG5vdGUYAiABKAkSEgoKdXNlcl9hZ2VudBgDIAEoCSI3ChRNZW1vcmllc0ZpbGVPcGVuRGF0YRIfChdtZW1vcmllc19wYXRoX3VuZGVmaW5lZBgBIAEoCCKfAQoQTWVtb3JpZXNNb3ZlRGF0YRI4CgZ0YXJnZXQYASABKA4yKC5yZXF1ZXN0X2luc2lnaHQuTWVtb3JpZXNNb3ZlRGF0YS5UYXJnZXQiUQoGVGFyZ2V0Eg8KC1VOU1BFQ0lGSUVEEAASEwoPVVNFUl9HVUlERUxJTkVTEAESFgoSQVVHTUVOVF9HVUlERUxJTkVTEAISCQoFUlVMRVMQAyK5AQoPTWVtb3J5VXNhZ2VEYXRhEg4KBmFjdGlvbhgBIAEoBRIWCgltZW1vcnlfaWQYAiABKAlIAIgBARIUCgx0cmlnZ2VyZWRfYnkYAyABKAUSGQoMbWVtb3J5X3N0YXRlGAQgASgJSAGIAQESGwoObWVtb3J5X3ZlcnNpb24YBSABKAlIAogBAUIMCgpfbWVtb3J5X2lkQg8KDV9tZW1vcnlfc3RhdGVCEQoPX21lbW9yeV92ZXJzaW9uIu4CChBNb2RlU2VsZWN0b3JEYXRhEkQKBmFjdGlvbhgBIAEoDjI0LnJlcXVlc3RfaW5zaWdodC5Nb2RlU2VsZWN0b3JEYXRhLk1vZGVTZWxlY3RvckFjdGlvbhI0CgRtb2RlGAIgASgOMiYucmVxdWVzdF9pbnNpZ2h0Lk1vZGVTZWxlY3RvckRhdGEuTW9kZRI6Cg5zb3VyY2VfY29udHJvbBgDIAEoDjIiLnJlcXVlc3RfaW5zaWdodC5Tb3VyY2VDb250cm9sVHlwZSI/CgRNb2RlEhAKDFVOS05PV05fTU9ERRAAEggKBENIQVQQARIJCgVBR0VOVBACEhAKDFJFTU9URV9BR0VOVBADImEKEk1vZGVTZWxlY3RvckFjdGlvbhIgChxVTktOT1dOX01PREVfU0VMRUNUT1JfQUNUSU9OEAASCAoET1BFThABEgkKBUNMT1NFEAISCgoGU0VMRUNUEAMSCAoESU5JVBAEIoABChhNb2RlbFNlbGVjdGlvbkNoYW5nZURhdGESGQoRcHJldmlvdXNfbW9kZWxfaWQYASABKAkSGwoTcHJldmlvdXNfbW9kZWxfbmFtZRgCIAEoCRIUCgxuZXdfbW9kZWxfaWQYAyABKAkSFgoObmV3X21vZGVsX25hbWUYBCABKAkiyQEKFE5vdGlmaWNhdGlvbkJlbGxEYXRhEk8KCmJlbGxfc3RhdGUYASABKA4yOy5yZXF1ZXN0X2luc2lnaHQuTm90aWZpY2F0aW9uQmVsbERhdGEuTm90aWZpY2F0aW9uQmVsbFN0YXRlImAKFU5vdGlmaWNhdGlvbkJlbGxTdGF0ZRILCgdVTktOT1dOEAASDQoJQUNUSVZBVEVEEAESDwoLREVBQ1RJVkFURUQQAhIMCghOT1RJRklFRBAEEgwKCEFDQ0VQVEVEEAMiQAoWT25ib2FyZGluZ1Nlc3Npb25FdmVudBISCgpldmVudF9uYW1lGAEgASgJEhIKCnVzZXJfYWdlbnQYAiABKAkiiQEKFVBhcmVudGhlc2lzVHJ1bmNhdGlvbhIVCg1vcmlnaW5hbF90ZXh0GAEgASgJEhYKDnRydW5jYXRlZF90ZXh0GAIgASgJEhUKDXdhc190cnVuY2F0ZWQYAyABKAgSHAoUY291bGRfaGF2ZV90cnVuY2F0ZWQYBCABKAgSDAoEcGF0aBgFIAEoCSJMChRQYXJzZWRSb3V0ZXJSZXNwb25zZRIQCghjYXRlZ29yeRgBIAEoCRIRCglmaWxlbmFtZXMYAiADKAkSDwoHZG9jc2V0cxgDIAMoCSLCAgoWUG9zZWlkb25BbmFseXRpY3NFdmVudBJKChVwb3NlaWRvbl9wcl9hbmFseXRpY3MYBCABKAsyKS5yZXF1ZXN0X2luc2lnaHQuUG9zZWlkb25QckFuYWx5dGljc0V2ZW50SAASTwoTb3V0Y29tZV9vYnNlcnZhdGlvbhgFIAEoCzIwLnJlcXVlc3RfaW5zaWdodC5Qb3NlaWRvbk91dGNvbWVPYnNlcnZhdGlvbkV2ZW50SAASLQoEdGltZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIVCghldmVudF9pZBgCIAEoCUgCiAEBEhcKCnJlcXVlc3RfaWQYAyABKAlIA4gBAUIHCgVldmVudEIHCgVfdGltZUILCglfZXZlbnRfaWRCDQoLX3JlcXVlc3RfaWQirgQKH1Bvc2VpZG9uT3V0Y29tZU9ic2VydmF0aW9uRXZlbnQSEQoEbmFtZRgBIAEoCUgAiAEBEhQKB3N1YmplY3QYAiABKAlIAYgBARIZCgxzdWJqZWN0X3R5cGUYAyABKAlIAogBARITCgZzb3VyY2UYBCABKAlIA4gBARI0CgtvYnNlcnZlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARJICgR0YWdzGAYgAygLMjoucmVxdWVzdF9pbnNpZ2h0LlBvc2VpZG9uT3V0Y29tZU9ic2VydmF0aW9uRXZlbnQuVGFnc0VudHJ5EhoKDW1ldGFkYXRhX2pzb24YCCABKAlIBYgBARJOCgdtZXRyaWNzGAkgAygLMj0ucmVxdWVzdF9pbnNpZ2h0LlBvc2VpZG9uT3V0Y29tZU9ic2VydmF0aW9uRXZlbnQuTWV0cmljc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGi4KDE1ldHJpY3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBQgcKBV9uYW1lQgoKCF9zdWJqZWN0Qg8KDV9zdWJqZWN0X3R5cGVCCQoHX3NvdXJjZUIOCgxfb2JzZXJ2ZWRfYXRCEAoOX21ldGFkYXRhX2pzb25KBAgHEAhSEGF0dHJpYnV0aW9uX3RhZ3Mi4gkKGFBvc2VpZG9uUHJBbmFseXRpY3NFdmVudBIRCgRyZXBvGAEgASgJSACIAQESFgoJcHJfbnVtYmVyGAIgASgDSAGIAQESGgoNZXZlbnRfdHJpZ2dlchgDIAEoCUgCiAEBEjMKCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAOIAQESGQoMYXV0aG9yX2xvZ2luGAUgASgJSASIAQESMgoJbWVyZ2VkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEiYKGWFwcHJvdmVkX2J5X3Jpc2tfYW5hbHl6ZXIYByABKAhIBogBARIwCiNudW1fY29tbWVudHNfYWRkcmVzc2VkX2J5X3ByX2F1dGhvchgIIAEoA0gHiAEBEh8KEnByX2F1dGhvcl9hc3Npc3RlZBgJIAEoCEgIiAEBEi0KIGRlZXBfcmV2aWV3ZXJfbnVtYmVyX29mX2NvbW1lbnRzGAogASgDSAmIAQESLQogcGFpcl9yZXZpZXdlcl9udW1iZXJfb2ZfY29tbWVudHMYCyABKANICogBARIWCglpc19yZXZlcnQYDCABKAhIC4gBARIXCgppc19idWdfZml4GA0gASgISAyIAQESGAoLbG9jX2NoYW5nZWQYDiABKANIDYgBARIfChJudW1faHVtYW5fY29tbWVudHMYDyABKANIDogBARIgChNudW1fY29zbW9zX2NvbW1lbnRzGBAgASgDSA+IAQESFQoIcGxhdGZvcm0YESABKAlIEIgBARIqCh1kZWVwX2NvZGVfcmV2aWV3ZXJfc2Vzc2lvbl9pZBgSIAEoCUgRiAEBEigKG3ByX3Jpc2tfYW5hbHl6ZXJfc2Vzc2lvbl9pZBgTIAEoCUgSiAEBEiUKGHBhaXJfcmV2aWV3ZXJfc2Vzc2lvbl9pZBgUIAEoCUgTiAEBEiEKFHByX2F1dGhvcl9zZXNzaW9uX2lkGBUgASgJSBSIAQFCBwoFX3JlcG9CDAoKX3ByX251bWJlckIQCg5fZXZlbnRfdHJpZ2dlckINCgtfY3JlYXRlZF9hdEIPCg1fYXV0aG9yX2xvZ2luQgwKCl9tZXJnZWRfYXRCHAoaX2FwcHJvdmVkX2J5X3Jpc2tfYW5hbHl6ZXJCJgokX251bV9jb21tZW50c19hZGRyZXNzZWRfYnlfcHJfYXV0aG9yQhUKE19wcl9hdXRob3JfYXNzaXN0ZWRCIwohX2RlZXBfcmV2aWV3ZXJfbnVtYmVyX29mX2NvbW1lbnRzQiMKIV9wYWlyX3Jldmlld2VyX251bWJlcl9vZl9jb21tZW50c0IMCgpfaXNfcmV2ZXJ0Qg0KC19pc19idWdfZml4Qg4KDF9sb2NfY2hhbmdlZEIVChNfbnVtX2h1bWFuX2NvbW1lbnRzQhYKFF9udW1fY29zbW9zX2NvbW1lbnRzQgsKCV9wbGF0Zm9ybUIgCh5fZGVlcF9jb2RlX3Jldmlld2VyX3Nlc3Npb25faWRCHgocX3ByX3Jpc2tfYW5hbHl6ZXJfc2Vzc2lvbl9pZEIbChlfcGFpcl9yZXZpZXdlcl9zZXNzaW9uX2lkQhcKFV9wcl9hdXRob3Jfc2Vzc2lvbl9pZCKOAQoTUG9zdHByb2Nlc3NSZXNwb25zZRI4Cgx0b2tlbml6YXRpb24YASABKAsyHS5yZXF1ZXN0X2luc2lnaHQuVG9rZW5pemF0aW9uSACIAQESGgoNZXJyb3JfbWVzc2FnZRgCIAEoCUgBiAEBQg8KDV90b2tlbml6YXRpb25CEAoOX2Vycm9yX21lc3NhZ2UipwEKEFByZWZlcmVuY2VTYW1wbGUSEwoLcmVxdWVzdF9pZHMYASADKAkSPQoGc2NvcmVzGAIgAygLMi0ucmVxdWVzdF9pbnNpZ2h0LlByZWZlcmVuY2VTYW1wbGUuU2NvcmVzRW50cnkSEAoIZmVlZGJhY2sYAyABKAkaLQoLU2NvcmVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASK0AgoQUHJvbXB0Q2FjaGVVc2FnZRIUCgxpbnB1dF90b2tlbnMYASABKA0SHwoXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMYAiABKA0SIwobY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zGAMgASgNEhkKEXRleHRfaW5wdXRfdG9rZW5zGAQgASgNEhkKEXRvb2xfaW5wdXRfdG9rZW5zGAUgASgNEhoKEnRleHRfb3V0cHV0X3Rva2VucxgGIAEoDRIaChJ0b29sX291dHB1dF90b2tlbnMYByABKA0SGQoMbW9kZWxfY2FsbGVyGAggASgJSACIAQESGQoMc2VydmljZV90aWVyGAkgASgJSAGIAQFCDwoNX21vZGVsX2NhbGxlckIPCg1fc2VydmljZV90aWVyIj8KD1B1cmNoYXNlQ3JlZGl0cxIbChNvcmJfc3Vic2NyaXB0aW9uX2lkGAEgASgJEg8KB2NyZWRpdHMYAiABKAIiUwomUklBZ2VudGljU2xhY2tib3RSZWFjdGlvblJlY2VpdmVkRXZlbnQSKQoLc2xhY2tfZXZlbnQYASABKAsyFC5zbGFja2JvdC5TbGFja0V2ZW50IjcKDVJJQmF0Y2hVcGxvYWQSEgoKYmxvYl9jb3VudBgBIAEoBRISCgp0b3RhbF9zaXplGAIgASgDIvcDChNSSUNoYXRNZXRlcmluZ0V2ZW50EjUKDm1ldGVyaW5nX2V2ZW50GAEgASgLMh0ubWV0ZXJpbmdfZXZlbnQuTWV0ZXJpbmdFdmVudBIbChNhY3Rpdml0eV9tdWx0aXBsaWVyGAIgASgBEhQKDGlucHV0X3Rva2VucxgDIAEoBRIVCg1vdXRwdXRfdG9rZW5zGAQgASgFEhkKEWNhY2hlX3JlYWRfdG9rZW5zGAUgASgFEhoKEmNhY2hlX3dyaXRlX3Rva2VucxgGIAEoBRIWCg50b3RhbF9jb3N0X3VzZBgLIAEoARISCgptb2RlbF9uYW1lGAwgASgJEhwKD2NvbnZlcnNhdGlvbl9pZBgNIAEoCUgAiAEBEhsKDnJvdXRpbmdfcmVhc29uGA4gASgJSAGIAQESHAoPcHJvdmlkZXJfcmVnaW9uGA8gASgJSAKIAQESGwoOZW5kcG9pbnRfc2NvcGUYECABKAlIA4gBARIgChNyZWdpb25hbF9tdWx0aXBsaWVyGBEgASgBSASIAQFCEgoQX2NvbnZlcnNhdGlvbl9pZEIRCg9fcm91dGluZ19yZWFzb25CEgoQX3Byb3ZpZGVyX3JlZ2lvbkIRCg9fZW5kcG9pbnRfc2NvcGVCFgoUX3JlZ2lvbmFsX211bHRpcGxpZXIi7wEKDVJJQ2hhdFJlcXVlc3QSIgoHcmVxdWVzdBgBIAEoCzIRLmNoYXQuQ2hhdFJlcXVlc3QSOQoQcmV0cmlldmVkX2NodW5rcxgDIAMoCzIfLnJlcXVlc3RfaW5zaWdodC5SZXRyaWV2YWxDaHVuaxIzCgx0b2tlbml6YXRpb24YBCABKAsyHS5yZXF1ZXN0X2luc2lnaHQuVG9rZW5pemF0aW9uEhsKE2V4dGVybmFsX3NvdXJjZV9pZHMYBSADKAkSFgoOcmVxdWVzdF9zb3VyY2UYBiABKAlKBAgCEANKBAgHEAhSCWV4cGVydF9pZCLAAgoOUklDaGF0UmVzcG9uc2USJAoIcmVzcG9uc2UYASABKAsyEi5jaGF0LkNoYXRSZXNwb25zZRIzCgx0b2tlbml6YXRpb24YAyABKAsyHS5yZXF1ZXN0X2luc2lnaHQuVG9rZW5pemF0aW9uEhoKDWVycm9yX21lc3NhZ2UYBCABKAlIAIgBARIOCgZzaWxlbnQYBSABKAgSKgoLc2lsZW50X3R5cGUYBiABKA4yEC5jaGF0LlNpbGVudFR5cGVIAYgBARI/Cg9yZWZ1c2FsX3N1bW1hcnkYByABKAsyIS5yZXF1ZXN0X2luc2lnaHQuUklSZWZ1c2FsU3VtbWFyeUgCiAEBQhAKDl9lcnJvcl9tZXNzYWdlQg4KDF9zaWxlbnRfdHlwZUISChBfcmVmdXNhbF9zdW1tYXJ5SgQIAhADIqkBCg1SSUVkaXRSZXF1ZXN0EiIKB3JlcXVlc3QYASABKAsyES5lZGl0LkVkaXRSZXF1ZXN0EjkKEHJldHJpZXZlZF9jaHVua3MYAyADKAsyHy5yZXF1ZXN0X2luc2lnaHQuUmV0cmlldmFsQ2h1bmsSMwoMdG9rZW5pemF0aW9uGAQgASgLMh0ucmVxdWVzdF9pbnNpZ2h0LlRva2VuaXphdGlvbkoECAIQAyJxCg5SSUVkaXRSZXNwb25zZRIkCghyZXNwb25zZRgBIAEoCzISLmVkaXQuRWRpdFJlc3BvbnNlEjMKDHRva2VuaXphdGlvbhgDIAEoCzIdLnJlcXVlc3RfaW5zaWdodC5Ub2tlbml6YXRpb25KBAgCEAMiaAoNUklGaW5kTWlzc2luZxISCgptb2RlbF9uYW1lGAEgASgJEhIKCmJsb2JfY291bnQYAiABKAUSFQoNbWlzc2luZ19jb3VudBgDIAEoBRIYChBub25pbmRleGVkX2NvdW50GAQgASgFInkKHFJJR2l0aHViQXBwSW5zdGFsbGF0aW9uRXZlbnQSIgoGc3RhdHVzGAEgASgLMhIuZ29vZ2xlLnJwYy5TdGF0dXMSNQoKZXZlbnRfdHlwZRgCIAEoDjIhLnJlcXVlc3RfaW5zaWdodC5JbnN0YWxsRXZlbnRUeXBlIkAKDVJJR2l0aHViRXZlbnQSLwoMZ2l0aHViX2V2ZW50GAEgASgLMhkuZ2l0aHViX2V2ZW50LkdpdGh1YkV2ZW50ItEEChhSSUdpdGh1YlByb2Nlc3NpbmdSZXN1bHQSIgoGc3RhdHVzGAEgASgLMhIuZ29vZ2xlLnJwYy5TdGF0dXMSGwoTbGFzdF91cGRhdGVkX2NvbW1pdBgCIAEoCRJGCgpkaWZmX2luZm9zGAMgAygLMjIucmVxdWVzdF9pbnNpZ2h0LlJJR2l0aHViUHJvY2Vzc2luZ1Jlc3VsdC5EaWZmSW5mbxIdChVmaWxlbmFtZXNfdG9fZG93bmxvYWQYBCADKAkSTQoRaWdub3JlX2RpZmZfaW5mb3MYByADKAsyMi5yZXF1ZXN0X2luc2lnaHQuUklHaXRodWJQcm9jZXNzaW5nUmVzdWx0LkRpZmZJbmZvEiQKHGlnbm9yZV9maWxlbmFtZXNfdG9fZG93bmxvYWQYCCADKAkSMAoQY2hlY2twb2ludF9ibG9icxgFIAEoCzIWLmJhc2UuYmxvYl9uYW1lcy5CbG9icxIXCg9naXRfYXBwbHlfZXJyb3IYBiABKAkSGwoTZmlsZV9kb3dubG9hZF9lcnJvchgJIAEoCRIWCg5kaWZmX2Jsb2JfbmFtZRgKIAEoCRIVCg1pZ25vcmVkX2ZpbGVzGAsgAygJGoABCghEaWZmSW5mbxIQCghmaWxlbmFtZRgBIAEoCRIUCgxvbGRfYmxvYm5hbWUYAiABKAkSFAoMbmV3X2Jsb2JuYW1lGAMgASgJEhQKDG9sZF9maWxlbmFtZRgEIAEoCRIPCgdyZW1vdmVkGAUgASgIEg8KB3JlbmFtZWQYBiABKAgiGAoWUklHbGVhbk9BdXRoVVJMUmVxdWVzdCIsChdSSUdsZWFuT0F1dGhVUkxSZXNwb25zZRIRCglvYXV0aF91cmwYASABKAki0QIKDlJJR2xlYW5SZXF1ZXN0EiUKB3JlcXVlc3QYASABKAsyFC5nbGVhbi5TZWFyY2hSZXF1ZXN0EhYKDnJlcXVlc3Rfc291cmNlGAIgASgJElsKFnF1ZXJ5X3Byb2Nlc3Nvcl9jb25maWcYAyABKAsyOy5yZXF1ZXN0X2luc2lnaHQuUklHbGVhblJlcXVlc3QuUklHbGVhblF1ZXJ5UHJvY2Vzc29yQ29uZmlnGqIBChtSSUdsZWFuUXVlcnlQcm9jZXNzb3JDb25maWcSFgoOZ2NwX3Byb2plY3RfaWQYASABKAkSEgoKZ2NwX3JlZ2lvbhgCIAEoCRISCgptb2RlbF9uYW1lGAMgASgJEhMKC3RlbXBlcmF0dXJlGAQgASgCEhkKEW1heF9vdXRwdXRfdG9rZW5zGAUgASgFEhMKC21heF9yZXN1bHRzGAYgASgFIrYBCg9SSUdsZWFuUmVzcG9uc2USJwoIcmVzcG9uc2UYASABKAsyFS5nbGVhbi5TZWFyY2hSZXNwb25zZRJQCh9nZW5lcmF0ZV9zZWFyY2hfcXVlcmllc19yZXF1ZXN0GAIgASgLMicucmVxdWVzdF9pbnNpZ2h0LlRoaXJkUGFydHlNb2RlbFJlcXVlc3QSKAogZ2VuZXJhdGVfc2VhcmNoX3F1ZXJpZXNfcmVzcG9uc2UYAyADKAkisQEKFFJJSW5zdHJ1Y3Rpb25SZXF1ZXN0EikKB3JlcXVlc3QYASABKAsyGC5lZGl0Lkluc3RydWN0aW9uUmVxdWVzdBI5ChByZXRyaWV2ZWRfY2h1bmtzGAIgAygLMh8ucmVxdWVzdF9pbnNpZ2h0LlJldHJpZXZhbENodW5rEjMKDHRva2VuaXphdGlvbhgDIAEoCzIdLnJlcXVlc3RfaW5zaWdodC5Ub2tlbml6YXRpb24isAEKFVJJSW5zdHJ1Y3Rpb25SZXNwb25zZRI0CghyZXNwb25zZRgBIAEoCzIiLmVkaXQuSW5zdHJ1Y3Rpb25BZ2dyZWdhdGVSZXNwb25zZRIzCgx0b2tlbml6YXRpb24YAiABKAsyHS5yZXF1ZXN0X2luc2lnaHQuVG9rZW5pemF0aW9uEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBAUIQCg5fZXJyb3JfbWVzc2FnZSKvAQoeUklJbnRlZ3JhdGlvbkluc3RhbGxhdGlvbkV2ZW50EiIKBnN0YXR1cxgBIAEoCzISLmdvb2dsZS5ycGMuU3RhdHVzEjUKCmV2ZW50X3R5cGUYAiABKA4yIS5yZXF1ZXN0X2luc2lnaHQuSW5zdGFsbEV2ZW50VHlwZRITCgtpbnRlZ3JhdGlvbhgDIAEoCRINCgVzY29wZRgEIAEoCRIOCgZtZXRob2QYBSABKAki0AEKDlJJTW9kZWxBUElDYWxsEhIKCm1vZGVsX25hbWUYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSEwoGcmVnaW9uGAMgASgJSACIAQESIAoTcmVxdWVzdF9wYXJhbXNfanNvbhgEIAEoCUgBiAEBEiMKFnJlc3BvbnNlX21ldGFkYXRhX2pzb24YBSABKAlIAogBAUIJCgdfcmVnaW9uQhYKFF9yZXF1ZXN0X3BhcmFtc19qc29uQhkKF19yZXNwb25zZV9tZXRhZGF0YV9qc29uImgKEFJJUmVmdXNhbFN1bW1hcnkSEAoIcHJvdmlkZXIYASABKAkSEgoKbW9kZWxfbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhAKCGNhdGVnb3J5GAQgASgJEg4KBnNvdXJjZRgFIAEoCSLGAgoXUklSZW1vdGVUb29sQ2FsbFJlcXVlc3QSRgoaY29kZWJhc2VfcmV0cmlldmFsX3JlcXVlc3QYASABKAsyIC5hZ2VudHMuQ29kZWJhc2VSZXRyaWV2YWxSZXF1ZXN0SAASNAoRZWRpdF9maWxlX3JlcXVlc3QYAiABKAsyFy5hZ2VudHMuRWRpdEZpbGVSZXF1ZXN0SAASTQoacmlfcnVuX3JlbW90ZV90b29sX3JlcXVlc3QYBCABKAsyJy5yZXF1ZXN0X2luc2lnaHQuUklSdW5SZW1vdGVUb29sUmVxdWVzdEgAEk0KHmNvZGViYXNlX3JldHJpZXZhbF9yYXdfcmVxdWVzdBgFIAEoCzIjLmFnZW50cy5Db2RlYmFzZVJldHJpZXZhbFJhd1JlcXVlc3RIAEIJCgdyZXF1ZXN0SgQIAxAEIrwCChhSSVJlbW90ZVRvb2xDYWxsUmVzcG9uc2USSAobY29kZWJhc2VfcmV0cmlldmFsX3Jlc3BvbnNlGAEgASgLMiEuYWdlbnRzLkNvZGViYXNlUmV0cmlldmFsUmVzcG9uc2VIABI2ChJlZGl0X2ZpbGVfcmVzcG9uc2UYAiABKAsyGC5hZ2VudHMuRWRpdEZpbGVSZXNwb25zZUgAEkEKGHJ1bl9yZW1vdGVfdG9vbF9yZXNwb25zZRgDIAEoCzIdLmFnZW50cy5SdW5SZW1vdGVUb29sUmVzcG9uc2VIABJPCh9jb2RlYmFzZV9yZXRyaWV2YWxfcmF3X3Jlc3BvbnNlGAQgASgLMiQuYWdlbnRzLkNvZGViYXNlUmV0cmlldmFsUmF3UmVzcG9uc2VIAEIKCghyZXNwb25zZSJvChZSSVJ1blJlbW90ZVRvb2xSZXF1ZXN0EhUKCXRvb2xfbmFtZRgBIAEoCUICGAESFwoPdG9vbF9pbnB1dF9qc29uGAIgASgJEiUKB3Rvb2xfaWQYAyABKA4yFC5hZ2VudHMuUmVtb3RlVG9vbElkIksKFVJJU2hhcmVHZXRDaGF0UmVxdWVzdBIyCgdyZXF1ZXN0GAEgASgLMiEuc2hhcmUuR2V0Q2hhdENvbnZlcnNhdGlvblJlcXVlc3QiTgoWUklTaGFyZUdldENoYXRSZXNwb25zZRI0CghyZXNwb25zZRgBIAEoCzIiLnNoYXJlLkdldENoYXRDb252ZXJzYXRpb25SZXNwb25zZSJNChZSSVNoYXJlU2F2ZUNoYXRSZXF1ZXN0EjMKB3JlcXVlc3QYASABKAsyIi5zaGFyZS5TYXZlQ2hhdENvbnZlcnNhdGlvblJlcXVlc3QiUAoXUklTaGFyZVNhdmVDaGF0UmVzcG9uc2USNQoIcmVzcG9uc2UYASABKAsyIy5zaGFyZS5TYXZlQ2hhdENvbnZlcnNhdGlvblJlc3BvbnNlIngKG1JJU2xhY2tib3RJbnN0YWxsYXRpb25FdmVudBIiCgZzdGF0dXMYASABKAsyEi5nb29nbGUucnBjLlN0YXR1cxI1CgpldmVudF90eXBlGAIgASgOMiEucmVxdWVzdF9pbnNpZ2h0Lkluc3RhbGxFdmVudFR5cGUiiwIKEVJJU2xhY2tib3RSZXF1ZXN0EikKC3NsYWNrX2V2ZW50GAEgASgLMhQuc2xhY2tib3QuU2xhY2tFdmVudBJECgxjaGFubmVsX3R5cGUYAiABKA4yLi5yZXF1ZXN0X2luc2lnaHQuUklTbGFja2JvdFJlcXVlc3QuQ2hhbm5lbFR5cGUihAEKC0NoYW5uZWxUeXBlEhgKFFVOS05PV05fQ0hBTk5FTF9UWVBFEAASBgoCSU0QARIICgRNUElNEAISEgoOU0hBUkVEX0NIQU5ORUwQAxITCg9QUklWQVRFX0NIQU5ORUwQBBITCg9HRU5FUkFMX0NIQU5ORUwQBRILCgdDSEFOTkVMEAYi/QMKElJJU2xhY2tib3RSZXNwb25zZRIPCgdjaGFubmVsGAEgASgJEhgKEHRocmVhZF90aW1lc3RhbXAYAiABKAkSIQoZcmVxdWVzdF9tZXNzYWdlX3RpbWVzdGFtcBgDIAEoCRJCCg9yZXNwb25zZV9ldmVudHMYBCADKAsyKS5yZXF1ZXN0X2luc2lnaHQuUklTbGFja2JvdFJlc3BvbnNlLkV2ZW50GtABCgVFdmVudBJHCgxwb3N0X21lc3NhZ2UYAiABKAsyLy5yZXF1ZXN0X2luc2lnaHQuUklTbGFja2JvdFJlc3BvbnNlLlBvc3RNZXNzYWdlSAASSwoOdXBkYXRlX21lc3NhZ2UYAyABKAsyMS5yZXF1ZXN0X2luc2lnaHQuUklTbGFja2JvdFJlc3BvbnNlLlVwZGF0ZU1lc3NhZ2VIABIoCgR0aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIHCgVldmVudBo/CgtQb3N0TWVzc2FnZRIiChpyZXNwb25zZV9tZXNzYWdlX3RpbWVzdGFtcBgBIAEoCRIMCgR0ZXh0GAIgASgJGkEKDVVwZGF0ZU1lc3NhZ2USIgoacmVzcG9uc2VfbWVzc2FnZV90aW1lc3RhbXAYASABKAkSDAoEdGV4dBgCIAEoCSIjCgVSYW5nZRINCgVzdGFydBgBIAEoBRILCgNlbmQYAiABKAUioQIKFFJlbWVtYmVyVG9vbENhbGxEYXRhEkgKBmNhbGxlchgBIAEoDjI4LnJlcXVlc3RfaW5zaWdodC5SZW1lbWJlclRvb2xDYWxsRGF0YS5SZW1lbWJlclRvb2xDYWxsZXISHQoVaXNfY29tcGxleF9uZXdfbWVtb3J5GAIgASgIEjcKDHRyYWNpbmdfZGF0YRgDIAEoCzIhLnJlcXVlc3RfaW5zaWdodC5BZ2VudFRyYWNpbmdEYXRhImcKElJlbWVtYmVyVG9vbENhbGxlchIPCgtVTlNQRUNJRklFRBAAEhgKFENMQVNTSUZZX0FORF9ESVNUSUxMEAESDwoLT1JJRU5UQVRJT04QAhIVChFNRU1PUllfQUNDRVBUQU5DRRADIkIKElJlbW90ZUFnZW50Q3JlYXRlZBIUCgxjaGFuZ2VkX3JlcG8YASABKAgSFgoOY2hhbmdlZF9icmFuY2gYAiABKAgiaAoTUmVtb3RlQWdlbnRGZWVkYmFjaxIvCgZyYXRpbmcYASABKA4yHy5yZXF1ZXN0X2luc2lnaHQuRmVlZGJhY2tSYXRpbmcSDAoEbm90ZRgCIAEoCRISCgp1c2VyX2FnZW50GAMgASgJItoBChZSZW1vdGVBZ2VudExhdGVuY3lEYXRhElQKDGxhdGVuY3lfdHlwZRgBIAEoDjI+LnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudExhdGVuY3lEYXRhLlJlbW90ZUFnZW50TGF0ZW5jeVR5cGUSEgoKbGF0ZW5jeV9tcxgCIAEoDSJWChZSZW1vdGVBZ2VudExhdGVuY3lUeXBlEhgKFFVOS05PV05fTEFURU5DWV9UWVBFEAASEAoMQ1JFQVRFX0FHRU5UEAESEAoMUkVTVU1FX0FHRU5UEAIi2wEKDlJlbW90ZUFnZW50TG9nEjUKB2VudHJpZXMYASADKAsyJC5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRMb2dFbnRyeRIXCg9yZW1vdGVfYWdlbnRfaWQYAiABKAkSEQoJY29tcG9uZW50GAMgASgJEjMKD3N0YXJ0X3RpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNZW5kX3RpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiaAoTUmVtb3RlQWdlbnRMb2dFbnRyeRIPCgdtZXNzYWdlGAEgASgJEhEKCXRyYW5zcG9ydBgCIAEoCRItCgl0aW1lc3RhbXAYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIscDCh5SZW1vdGVBZ2VudE5ld1RocmVhZEJ1dHRvbkRhdGESYAoGYWN0aW9uGAEgASgOMlAucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50TmV3VGhyZWFkQnV0dG9uRGF0YS5SZW1vdGVBZ2VudE5ld1RocmVhZEJ1dHRvbkFjdGlvbhJPCgt0aHJlYWRfdHlwZRgCIAEoDjI6LnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudE5ld1RocmVhZEJ1dHRvbkRhdGEuVGhyZWFkVHlwZRI6Cg5zb3VyY2VfY29udHJvbBgDIAEoDjIiLnJlcXVlc3RfaW5zaWdodC5Tb3VyY2VDb250cm9sVHlwZSJoCiBSZW1vdGVBZ2VudE5ld1RocmVhZEJ1dHRvbkFjdGlvbhIkCiBVTktOT1dOX05FV19USFJFQURfQlVUVE9OX0FDVElPThAAEgkKBUNMSUNLEAESCAoET1BFThACEgkKBUNMT1NFEAMiTAoKVGhyZWFkVHlwZRIXChNVTktOT1dOX1RIUkVBRF9UWVBFEAASCAoEQ0hBVBABEgkKBUFHRU5UEAISEAoMUkVNT1RFX0FHRU5UEAMipQkKF1JlbW90ZUFnZW50U2Vzc2lvbkV2ZW50EkgKF3JlbW90ZV9hZ2VudF9zZXR1cF9kYXRhGAQgASgLMiUucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50U2V0dXBEYXRhSAASSAoRc2V0dXBfc2NyaXB0X2RhdGEYBSABKAsyKy5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRTZXR1cFNjcmlwdERhdGFIABJDChRzc2hfaW50ZXJhY3Rpb25fZGF0YRgGIAEoCzIjLnJlcXVlc3RfaW5zaWdodC5TU0hJbnRlcmFjdGlvbkRhdGFIABJHChZub3RpZmljYXRpb25fYmVsbF9kYXRhGAcgASgLMiUucmVxdWVzdF9pbnNpZ2h0Lk5vdGlmaWNhdGlvbkJlbGxEYXRhSAASOQoPZGlmZl9wYW5lbF9kYXRhGAggASgLMh4ucmVxdWVzdF9pbnNpZ2h0LkRpZmZQYW5lbERhdGFIABI9ChFzZXR1cF9wYWdlX29wZW5lZBgJIAEoCzIgLnJlcXVlc3RfaW5zaWdodC5TZXR1cFBhZ2VPcGVuZWRIABI/ChJnaXRodWJfYXBpX2ZhaWx1cmUYCiABKAsyIS5yZXF1ZXN0X2luc2lnaHQuR2l0aHViQVBJRmFpbHVyZUgAEkMKFHJlbW90ZV9hZ2VudF9jcmVhdGVkGAsgASgLMiMucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50Q3JlYXRlZEgAEkMKFGNoYW5nZXNfYXBwbGllZF9kYXRhGAwgASgLMiMucmVxdWVzdF9pbnNpZ2h0LkNoYW5nZXNBcHBsaWVkRGF0YUgAEjkKD2NyZWF0ZWRfcHJfZGF0YRgNIAEoCzIeLnJlcXVlc3RfaW5zaWdodC5DcmVhdGVkUFJEYXRhSAASPwoSbW9kZV9zZWxlY3Rvcl9kYXRhGA4gASgLMiEucmVxdWVzdF9pbnNpZ2h0Lk1vZGVTZWxlY3RvckRhdGFIABJVCh5yZW1vdGVfYWdlbnRfc2V0dXBfd2luZG93X2RhdGEYDyABKAsyKy5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRTZXR1cFdpbmRvd0RhdGFIABJTCh1yZW1vdGVfYWdlbnRfdGhyZWFkX2xpc3RfZGF0YRgQIAEoCzIqLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudFRocmVhZExpc3REYXRhSAASXgojcmVtb3RlX2FnZW50X25ld190aHJlYWRfYnV0dG9uX2RhdGEYESABKAsyLy5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnROZXdUaHJlYWRCdXR0b25EYXRhSAASTAoZcmVtb3RlX2FnZW50X2xhdGVuY3lfZGF0YRgSIAEoCzInLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudExhdGVuY3lEYXRhSAASEgoKZXZlbnRfbmFtZRgBIAEoCRISCgp1c2VyX2FnZW50GAIgASgJEhcKD3JlbW90ZV9hZ2VudF9pZBgDIAEoCUIMCgpldmVudF9kYXRhIs4BChRSZW1vdGVBZ2VudFNldHVwRGF0YRIjCht1c2VkX2dlbmVyYXRlZF9zZXR1cF9zY3JpcHQYASABKAgSUAoLc2V0dXBfc3RhdGUYAiABKA4yOy5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRTZXR1cERhdGEuUmVtb3RlQWdlbnRTZXR1cFN0YXRlIj8KFVJlbW90ZUFnZW50U2V0dXBTdGF0ZRILCgdVTktOT1dOEAASDQoJQ09NUExFVEVEEAESCgoGRkFJTEVEEAIigwEKGlJlbW90ZUFnZW50U2V0dXBTY3JpcHREYXRhEhEKCW51bV90cmllcxgBIAEoBRIZChFudW1fbWVzc2FnZXNfc2VudBgDIAEoBRIaChJnZW5lcmF0aW9uX3RpbWVfbXMYBCABKAUSGwoTbWFudWFsX21vZGlmaWNhdGlvbhgFIAEoCCKWBQoaUmVtb3RlQWdlbnRTZXR1cFdpbmRvd0RhdGESWAoGYWN0aW9uGAEgASgOMkgucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50U2V0dXBXaW5kb3dEYXRhLlJlbW90ZUFnZW50U2V0dXBXaW5kb3dBY3Rpb24SEQoJcmVwb19oYXNoGAIgASgJEhMKC2JyYW5jaF9oYXNoGAMgASgJEiEKGWhhc19zZXR1cF9zY3JpcHRfc2VsZWN0ZWQYBCABKAgSIgoaZ2l0aHViX2ludGVncmF0aW9uX2VuYWJsZWQYBSABKAgSGwoTbnVtX3JlcG9zX2F2YWlsYWJsZRgGIAEoDRI6Cg5zb3VyY2VfY29udHJvbBgHIAEoDjIiLnJlcXVlc3RfaW5zaWdodC5Tb3VyY2VDb250cm9sVHlwZSLVAgocUmVtb3RlQWdlbnRTZXR1cFdpbmRvd0FjdGlvbhIfChtVTktOT1dOX1NFVFVQX1dJTkRPV19BQ1RJT04QABIICgRPUEVOEAESCQoFQ0xPU0UQAhIPCgtTRUxFQ1RfUkVQTxADEhEKDVNFTEVDVF9CUkFOQ0gQBBIXChNTRUxFQ1RfU0VUVVBfU0NSSVBUEAUSHgoaQVVUT19HRU5FUkFURV9TRVRVUF9TQ1JJUFQQBhIgChxNQU5VQUxMWV9DUkVBVEVfU0VUVVBfU0NSSVBUEAcSGQoVVFlQRV9JTl9QUk9NUFRfV0lORE9XEAgSGAoUQ0xJQ0tfUkVXUklURV9QUk9NUFQQCRIYChRFTkFCTEVfTk9USUZJQ0FUSU9OUxAKEhkKFURJU0FCTEVfTk9USUZJQ0FUSU9OUxALEhYKEkNMSUNLX0NSRUFURV9BR0VOVBAMIuMCChlSZW1vdGVBZ2VudFRocmVhZExpc3REYXRhElYKBmFjdGlvbhgBIAEoDjJGLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudFRocmVhZExpc3REYXRhLlJlbW90ZUFnZW50VGhyZWFkTGlzdEFjdGlvbhIaChJudW1fYWdlbnRzX2luX2xpc3QYAiABKA0SOgoOc291cmNlX2NvbnRyb2wYAyABKA4yIi5yZXF1ZXN0X2luc2lnaHQuU291cmNlQ29udHJvbFR5cGUilQEKG1JlbW90ZUFnZW50VGhyZWFkTGlzdEFjdGlvbhIdChlVTktOT1dOX0FHRU5UX0xJU1RfQUNUSU9OEAASCAoET1BFThABEgkKBUNMT1NFEAISEAoMU0VMRUNUX0FHRU5UEAMSEAoMREVMRVRFX0FHRU5UEAQSDQoJUElOX0FHRU5UEAUSDwoLVU5QSU5fQUdFTlQQBiJ+ChpSZW1vdGVBZ2VudFdvcmtzcGFjZVVwdGltZRIwCgx1cHRpbWVfc3RhcnQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwdGltZV9lbmQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIlAKHFJlbW90ZUFnZW50c0FkZFNTSEtleVJlcXVlc3QSMAoHcmVxdWVzdBgBIAEoCzIfLnJlbW90ZV9hZ2VudHMuQWRkU1NIS2V5UmVxdWVzdCJTCh1SZW1vdGVBZ2VudHNBZGRTU0hLZXlSZXNwb25zZRIyCghyZXNwb25zZRgBIAEoCzIgLnJlbW90ZV9hZ2VudHMuQWRkU1NIS2V5UmVzcG9uc2UiRgoXUmVtb3RlQWdlbnRzQ2hhdFJlcXVlc3QSKwoHcmVxdWVzdBgBIAEoCzIaLnJlbW90ZV9hZ2VudHMuQ2hhdFJlcXVlc3QiSQoYUmVtb3RlQWdlbnRzQ2hhdFJlc3BvbnNlEi0KCHJlc3BvbnNlGAEgASgLMhsucmVtb3RlX2FnZW50cy5DaGF0UmVzcG9uc2UiTwoZUmVtb3RlQWdlbnRzQ3JlYXRlUmVxdWVzdBIyCgdyZXF1ZXN0GAEgASgLMiEucmVtb3RlX2FnZW50cy5DcmVhdGVBZ2VudFJlcXVlc3QiUgoaUmVtb3RlQWdlbnRzQ3JlYXRlUmVzcG9uc2USNAoIcmVzcG9uc2UYASABKAsyIi5yZW1vdGVfYWdlbnRzLkNyZWF0ZUFnZW50UmVzcG9uc2UiTwoZUmVtb3RlQWdlbnRzRGVsZXRlUmVxdWVzdBIyCgdyZXF1ZXN0GAEgASgLMiEucmVtb3RlX2FnZW50cy5EZWxldGVBZ2VudFJlcXVlc3QiUgoaUmVtb3RlQWdlbnRzRGVsZXRlUmVzcG9uc2USNAoIcmVzcG9uc2UYASABKAsyIi5yZW1vdGVfYWdlbnRzLkRlbGV0ZUFnZW50UmVzcG9uc2UiXAoiUmVtb3RlQWdlbnRzR2VuZXJhdGVTdW1tYXJ5UmVxdWVzdBI2CgdyZXF1ZXN0GAEgASgLMiUucmVtb3RlX2FnZW50cy5HZW5lcmF0ZVN1bW1hcnlSZXF1ZXN0Il8KI1JlbW90ZUFnZW50c0dlbmVyYXRlU3VtbWFyeVJlc3BvbnNlEjgKCHJlc3BvbnNlGAEgASgLMiYucmVtb3RlX2FnZW50cy5HZW5lcmF0ZVN1bW1hcnlSZXNwb25zZSJVChxSZW1vdGVBZ2VudHNJbnRlcnJ1cHRSZXF1ZXN0EjUKB3JlcXVlc3QYASABKAsyJC5yZW1vdGVfYWdlbnRzLkludGVycnVwdEFnZW50UmVxdWVzdCJYCh1SZW1vdGVBZ2VudHNJbnRlcnJ1cHRSZXNwb25zZRI3CghyZXNwb25zZRgBIAEoCzIlLnJlbW90ZV9hZ2VudHMuSW50ZXJydXB0QWdlbnRSZXNwb25zZSJNChhSZW1vdGVBZ2VudHNQYXVzZVJlcXVlc3QSMQoHcmVxdWVzdBgBIAEoCzIgLnJlbW90ZV9hZ2VudHMuUGF1c2VBZ2VudFJlcXVlc3QiUAoZUmVtb3RlQWdlbnRzUGF1c2VSZXNwb25zZRIzCghyZXNwb25zZRgBIAEoCzIhLnJlbW90ZV9hZ2VudHMuUGF1c2VBZ2VudFJlc3BvbnNlIlwKIlJlbW90ZUFnZW50c1Jlc3VtZUhpbnRBZ2VudFJlcXVlc3QSNgoHcmVxdWVzdBgBIAEoCzIlLnJlbW90ZV9hZ2VudHMuUmVzdW1lSGludEFnZW50UmVxdWVzdCJfCiNSZW1vdGVBZ2VudHNSZXN1bWVIaW50QWdlbnRSZXNwb25zZRI4CghyZXNwb25zZRgBIAEoCzImLnJlbW90ZV9hZ2VudHMuUmVzdW1lSGludEFnZW50UmVzcG9uc2UiTwoZUmVtb3RlQWdlbnRzUmVzdW1lUmVxdWVzdBIyCgdyZXF1ZXN0GAEgASgLMiEucmVtb3RlX2FnZW50cy5SZXN1bWVBZ2VudFJlcXVlc3QiUgoaUmVtb3RlQWdlbnRzUmVzdW1lUmVzcG9uc2USNAoIcmVzcG9uc2UYASABKAsyIi5yZW1vdGVfYWdlbnRzLlJlc3VtZUFnZW50UmVzcG9uc2UiTwoZUmVtb3RlQWdlbnRzVXBkYXRlUmVxdWVzdBIyCgdyZXF1ZXN0GAEgASgLMiEucmVtb3RlX2FnZW50cy5VcGRhdGVBZ2VudFJlcXVlc3QiUgoaUmVtb3RlQWdlbnRzVXBkYXRlUmVzcG9uc2USNAoIcmVzcG9uc2UYASABKAsyIi5yZW1vdGVfYWdlbnRzLlVwZGF0ZUFnZW50UmVzcG9uc2UiZwoOUmVxdWVzdEJsb2NrZWQSLQoOb3BhcXVlX3VzZXJfaWQYASABKAsyFS5hdXRoX2VudGl0aWVzLlVzZXJJZBISCgp1c2VyX2VtYWlsGAIgASgJEhIKCmNoZWNrX3R5cGUYAyABKAkiwj4KDFJlcXVlc3RFdmVudBI2Cg1pbmZlcl9yZXF1ZXN0GAIgASgLMh0ucmVxdWVzdF9pbnNpZ2h0LkluZmVyUmVxdWVzdEgAEkkKF2NvbXBsZXRpb25faG9zdF9yZXF1ZXN0GAggASgLMiYucmVxdWVzdF9pbnNpZ2h0LkNvbXBsZXRpb25Ib3N0UmVxdWVzdEgAEkkKF2luZmVyZW5jZV9ob3N0X3Jlc3BvbnNlGAogASgLMiYucmVxdWVzdF9pbnNpZ2h0LkluZmVyZW5jZUhvc3RSZXNwb25zZUgAEksKGGNvbXBsZXRpb25faG9zdF9yZXNwb25zZRgJIAEoCzInLnJlcXVlc3RfaW5zaWdodC5Db21wbGV0aW9uSG9zdFJlc3BvbnNlSAASPQoRYXBpX2h0dHBfcmVzcG9uc2UYByABKAsyIC5yZXF1ZXN0X2luc2lnaHQuQXBpSHR0cFJlc3BvbnNlSAASTQoZZW1iZWRkaW5nc19zZWFyY2hfcmVxdWVzdBgLIAEoCzIoLnJlcXVlc3RfaW5zaWdodC5FbWJlZGRpbmdzU2VhcmNoUmVxdWVzdEgAEk8KGmVtYmVkZGluZ3Nfc2VhcmNoX3Jlc3BvbnNlGAwgASgLMikucmVxdWVzdF9pbnNpZ2h0LkVtYmVkZGluZ3NTZWFyY2hSZXNwb25zZUgAEjoKD2NvbXBsZXRpb25fZW1pdBgNIAEoCzIfLnJlcXVlc3RfaW5zaWdodC5Db21wbGV0aW9uRW1pdEgAEkYKFWNvbXBsZXRpb25fcmVzb2x1dGlvbhgOIAEoCzIlLnJlcXVlc3RfaW5zaWdodC5Db21wbGV0aW9uUmVzb2x1dGlvbkgAEjsKEWVkaXRfaG9zdF9yZXF1ZXN0GA8gASgLMh4ucmVxdWVzdF9pbnNpZ2h0LlJJRWRpdFJlcXVlc3RIABI9ChJlZGl0X2hvc3RfcmVzcG9uc2UYECABKAsyHy5yZXF1ZXN0X2luc2lnaHQuUklFZGl0UmVzcG9uc2VIABJCChNjb21wbGV0aW9uX2ZlZWRiYWNrGBEgASgLMiMucmVxdWVzdF9pbnNpZ2h0LkNvbXBsZXRpb25GZWVkYmFja0gAEi4KCWVkaXRfZW1pdBgSIAEoCzIZLnJlcXVlc3RfaW5zaWdodC5FZGl0RW1pdEgAEjoKD2VkaXRfcmVzb2x1dGlvbhgTIAEoCzIfLnJlcXVlc3RfaW5zaWdodC5FZGl0UmVzb2x1dGlvbkgAEjwKEHJlcXVlc3RfbWV0YWRhdGEYFCABKAsyIC5yZXF1ZXN0X2luc2lnaHQuUmVxdWVzdE1ldGFkYXRhSAASQAoScmV0cmlldmFsX3Jlc3BvbnNlGBUgASgLMiIucmVxdWVzdF9pbnNpZ2h0LlJldHJpZXZhbFJlc3BvbnNlSAASOwoRY2hhdF9ob3N0X3JlcXVlc3QYFiABKAsyHi5yZXF1ZXN0X2luc2lnaHQuUklDaGF0UmVxdWVzdEgAEj0KEmNoYXRfaG9zdF9yZXNwb25zZRgXIAEoCzIfLnJlcXVlc3RfaW5zaWdodC5SSUNoYXRSZXNwb25zZUgAEjoKD2V4dGVuc2lvbl9lcnJvchgYIAEoCzIfLnJlcXVlc3RfaW5zaWdodC5FeHRlbnNpb25FcnJvckgAEkkKF2NvbXBsZXRpb25fcG9zdF9wcm9jZXNzGBkgASgLMiYucmVxdWVzdF9pbnNpZ2h0LkNvbXBsZXRpb25Qb3N0UHJvY2Vzc0gAEj4KEXByZWZlcmVuY2Vfc2FtcGxlGBsgASgLMiEucmVxdWVzdF9pbnNpZ2h0LlByZWZlcmVuY2VTYW1wbGVIABI2Cg1jaGF0X2ZlZWRiYWNrGBwgASgLMh0ucmVxdWVzdF9pbnNpZ2h0LkNoYXRGZWVkYmFja0gAEj4KEXJlcmFua2VyX3Jlc3BvbnNlGB0gASgLMiEucmVxdWVzdF9pbnNpZ2h0LlJlcmFua2VyUmVzcG9uc2VIABJPChpjbGllbnRfY29tcGxldGlvbl90aW1lbGluZRggIAEoCzIpLnJlcXVlc3RfaW5zaWdodC5DbGllbnRDb21wbGV0aW9uVGltZWxpbmVIABJJChhpbnN0cnVjdGlvbl9ob3N0X3JlcXVlc3QYJiABKAsyJS5yZXF1ZXN0X2luc2lnaHQuUklJbnN0cnVjdGlvblJlcXVlc3RIABJLChlpbnN0cnVjdGlvbl9ob3N0X3Jlc3BvbnNlGCcgASgLMiYucmVxdWVzdF9pbnNpZ2h0LlJJSW5zdHJ1Y3Rpb25SZXNwb25zZUgAEj4KEHNsYWNrYm90X3JlcXVlc3QYKCABKAsyIi5yZXF1ZXN0X2luc2lnaHQuUklTbGFja2JvdFJlcXVlc3RIABJAChFzbGFja2JvdF9yZXNwb25zZRgpIAEoCzIjLnJlcXVlc3RfaW5zaWdodC5SSVNsYWNrYm90UmVzcG9uc2VIABI2CgxnaXRodWJfZXZlbnQYKiABKAsyHi5yZXF1ZXN0X2luc2lnaHQuUklHaXRodWJFdmVudEgAEk0KGGdpdGh1Yl9wcm9jZXNzaW5nX3Jlc3VsdBgrIAEoCzIpLnJlcXVlc3RfaW5zaWdodC5SSUdpdGh1YlByb2Nlc3NpbmdSZXN1bHRIABJKChdzaGFyZV9zYXZlX2NoYXRfcmVxdWVzdBgsIAEoCzInLnJlcXVlc3RfaW5zaWdodC5SSVNoYXJlU2F2ZUNoYXRSZXF1ZXN0SAASTAoYc2hhcmVfc2F2ZV9jaGF0X3Jlc3BvbnNlGC0gASgLMigucmVxdWVzdF9pbnNpZ2h0LlJJU2hhcmVTYXZlQ2hhdFJlc3BvbnNlSAASSAoWc2hhcmVfZ2V0X2NoYXRfcmVxdWVzdBguIAEoCzImLnJlcXVlc3RfaW5zaWdodC5SSVNoYXJlR2V0Q2hhdFJlcXVlc3RIABJKChdzaGFyZV9nZXRfY2hhdF9yZXNwb25zZRgvIAEoCzInLnJlcXVlc3RfaW5zaWdodC5SSVNoYXJlR2V0Q2hhdFJlc3BvbnNlSAASUAobc21hcnRfcGFzdGVfY2xpZW50X3RpbWVsaW5lGDAgASgLMikucmVxdWVzdF9pbnNpZ2h0LlNtYXJ0UGFzdGVDbGllbnRUaW1lbGluZUgAEkcKFnNtYXJ0X3Bhc3RlX3Jlc29sdXRpb24YMSABKAsyJS5yZXF1ZXN0X2luc2lnaHQuU21hcnRQYXN0ZVJlc29sdXRpb25IABJWCh1naXRodWJfYXBwX2luc3RhbGxhdGlvbl9ldmVudBgyIAEoCzItLnJlcXVlc3RfaW5zaWdodC5SSUdpdGh1YkFwcEluc3RhbGxhdGlvbkV2ZW50SAASUwobc2xhY2tib3RfaW5zdGFsbGF0aW9uX2V2ZW50GDMgASgLMiwucmVxdWVzdF9pbnNpZ2h0LlJJU2xhY2tib3RJbnN0YWxsYXRpb25FdmVudEgAEkgKFmluc3RydWN0aW9uX3Jlc29sdXRpb24YNCABKAsyJi5yZXF1ZXN0X2luc2lnaHQuSW5zdHJ1Y3Rpb25SZXNvbHV0aW9uSAASPAoQaW5zdHJ1Y3Rpb25fZW1pdBg1IAEoCzIgLnJlcXVlc3RfaW5zaWdodC5JbnN0cnVjdGlvbkVtaXRIABI+ChFzbGFja2JvdF9mZWVkYmFjaxg2IAEoCzIhLnJlcXVlc3RfaW5zaWdodC5TbGFja2JvdEZlZWRiYWNrSAASOAoNZ2xlYW5fcmVxdWVzdBg7IAEoCzIfLnJlcXVlc3RfaW5zaWdodC5SSUdsZWFuUmVxdWVzdEgAEjoKDmdsZWFuX3Jlc3BvbnNlGDwgASgLMiAucmVxdWVzdF9pbnNpZ2h0LlJJR2xlYW5SZXNwb25zZUgAEkoKF2dsZWFuX29hdXRoX3VybF9yZXF1ZXN0GD0gASgLMicucmVxdWVzdF9pbnNpZ2h0LlJJR2xlYW5PQXV0aFVSTFJlcXVlc3RIABJMChhnbGVhbl9vYXV0aF91cmxfcmVzcG9uc2UYPiABKAsyKC5yZXF1ZXN0X2luc2lnaHQuUklHbGVhbk9BdXRoVVJMUmVzcG9uc2VIABJMChhyZW1vdGVfdG9vbF9jYWxsX3JlcXVlc3QYQSABKAsyKC5yZXF1ZXN0X2luc2lnaHQuUklSZW1vdGVUb29sQ2FsbFJlcXVlc3RIABJOChlyZW1vdGVfdG9vbF9jYWxsX3Jlc3BvbnNlGEIgASgLMikucmVxdWVzdF9pbnNpZ2h0LlJJUmVtb3RlVG9vbENhbGxSZXNwb25zZUgAEjsKEHN1Yl9hZ2VudF9kaWFsb2cYQyABKAsyHy5yZXF1ZXN0X2luc2lnaHQuU3ViQWdlbnREaWFsb2dIABI/ChJwcm9tcHRfY2FjaGVfdXNhZ2UYRCABKAsyIS5yZXF1ZXN0X2luc2lnaHQuUHJvbXB0Q2FjaGVVc2FnZUgAEjUKDXRvb2xfdXNlX2RhdGEYRSABKAsyHC5yZXF1ZXN0X2luc2lnaHQuVG9vbFVzZURhdGFIABI6Cg9yb3V0ZXJfcmVzcG9uc2UYRiABKAsyHy5yZXF1ZXN0X2luc2lnaHQuUm91dGVyUmVzcG9uc2VIABJEChRwb3N0cHJvY2Vzc19yZXNwb25zZRhHIAEoCzIkLnJlcXVlc3RfaW5zaWdodC5Qb3N0cHJvY2Vzc1Jlc3BvbnNlSAASQQoTYWdlbnRfcmVxdWVzdF9ldmVudBhIIAEoCzIiLnJlcXVlc3RfaW5zaWdodC5BZ2VudFJlcXVlc3RFdmVudEgAEjgKDmFnZW50X2ZlZWRiYWNrGEkgASgLMh4ucmVxdWVzdF9pbnNpZ2h0LkFnZW50RmVlZGJhY2tIABI6Cg9yZXF1ZXN0X2Jsb2NrZWQYSiABKAsyHy5yZXF1ZXN0X2luc2lnaHQuUmVxdWVzdEJsb2NrZWRIABJAChJyZXF1ZXN0X3N1c3BpY2lvdXMYSyABKAsyIi5yZXF1ZXN0X2luc2lnaHQuUmVxdWVzdFN1c3BpY2lvdXNIABJDChR0b2tlbl9leGNoYW5nZV9lcnJvchhMIAEoCzIjLnJlcXVlc3RfaW5zaWdodC5Ub2tlbkV4Y2hhbmdlRXJyb3JIABI2CgxmaW5kX21pc3NpbmcYTSABKAsyHi5yZXF1ZXN0X2luc2lnaHQuUklGaW5kTWlzc2luZ0gAEjYKDGJhdGNoX3VwbG9hZBhOIAEoCzIeLnJlcXVlc3RfaW5zaWdodC5SSUJhdGNoVXBsb2FkSAASUgoccmVtb3RlX2FnZW50c19jcmVhdGVfcmVxdWVzdBhPIAEoCzIqLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudHNDcmVhdGVSZXF1ZXN0SAASVAodcmVtb3RlX2FnZW50c19jcmVhdGVfcmVzcG9uc2UYUCABKAsyKy5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRzQ3JlYXRlUmVzcG9uc2VIABJOChpyZW1vdGVfYWdlbnRzX2NoYXRfcmVxdWVzdBhRIAEoCzIoLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudHNDaGF0UmVxdWVzdEgAElAKG3JlbW90ZV9hZ2VudHNfY2hhdF9yZXNwb25zZRhSIAEoCzIpLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudHNDaGF0UmVzcG9uc2VIABJYCh9yZW1vdGVfYWdlbnRzX2ludGVycnVwdF9yZXF1ZXN0GFMgASgLMi0ucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c0ludGVycnVwdFJlcXVlc3RIABJaCiByZW1vdGVfYWdlbnRzX2ludGVycnVwdF9yZXNwb25zZRhUIAEoCzIuLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudHNJbnRlcnJ1cHRSZXNwb25zZUgAElIKHHJlbW90ZV9hZ2VudHNfZGVsZXRlX3JlcXVlc3QYVSABKAsyKi5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRzRGVsZXRlUmVxdWVzdEgAElQKHXJlbW90ZV9hZ2VudHNfZGVsZXRlX3Jlc3BvbnNlGFYgASgLMisucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c0RlbGV0ZVJlc3BvbnNlSAASWgohcmVtb3RlX2FnZW50c19hZGRfc3NoX2tleV9yZXF1ZXN0GFcgASgLMi0ucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c0FkZFNTSEtleVJlcXVlc3RIABJcCiJyZW1vdGVfYWdlbnRzX2FkZF9zc2hfa2V5X3Jlc3BvbnNlGFggASgLMi4ucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c0FkZFNTSEtleVJlc3BvbnNlSAASUgocZGFpbHlfcmVxdWVzdF9saW1pdF9leGNlZWRlZBhZIAEoCzIqLnJlcXVlc3RfaW5zaWdodC5EYWlseVJlcXVlc3RMaW1pdEV4Y2VlZGVkSAASPQoRY2hhdF91c2VyX21lc3NhZ2UYWiABKAsyIC5yZXF1ZXN0X2luc2lnaHQuQ2hhdFVzZXJNZXNzYWdlSAASSAoWcGFyZW50aGVzaXNfdHJ1bmNhdGlvbhhbIAEoCzImLnJlcXVlc3RfaW5zaWdodC5QYXJlbnRoZXNpc1RydW5jYXRpb25IABJFChVyZW1vdGVfYWdlbnRfZmVlZGJhY2sYXCABKAsyJC5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRGZWVkYmFja0gAElAKG3JlbW90ZV9hZ2VudHNfcGF1c2VfcmVxdWVzdBhdIAEoCzIpLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudHNQYXVzZVJlcXVlc3RIABJSChxyZW1vdGVfYWdlbnRzX3BhdXNlX3Jlc3BvbnNlGF4gASgLMioucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c1BhdXNlUmVzcG9uc2VIABJSChxyZW1vdGVfYWdlbnRzX3Jlc3VtZV9yZXF1ZXN0GF8gASgLMioucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c1Jlc3VtZVJlcXVlc3RIABJUCh1yZW1vdGVfYWdlbnRzX3Jlc3VtZV9yZXNwb25zZRhgIAEoCzIrLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudHNSZXN1bWVSZXNwb25zZUgAEjkKDm1vZGVsX2FwaV9jYWxsGGEgASgLMh8ucmVxdWVzdF9pbnNpZ2h0LlJJTW9kZWxBUElDYWxsSAASZgoncmVtb3RlX2FnZW50c19yZXN1bWVfaGludF9hZ2VudF9yZXF1ZXN0GGIgASgLMjMucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c1Jlc3VtZUhpbnRBZ2VudFJlcXVlc3RIABJoCihyZW1vdGVfYWdlbnRzX3Jlc3VtZV9oaW50X2FnZW50X3Jlc3BvbnNlGGMgASgLMjQucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c1Jlc3VtZUhpbnRBZ2VudFJlc3BvbnNlSAASUgoccmVtb3RlX2FnZW50c191cGRhdGVfcmVxdWVzdBhkIAEoCzIqLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudHNVcGRhdGVSZXF1ZXN0SAASVAodcmVtb3RlX2FnZW50c191cGRhdGVfcmVzcG9uc2UYZSABKAsyKy5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRzVXBkYXRlUmVzcG9uc2VIABJlCiZyZW1vdGVfYWdlbnRzX2dlbmVyYXRlX3N1bW1hcnlfcmVxdWVzdBhmIAEoCzIzLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudHNHZW5lcmF0ZVN1bW1hcnlSZXF1ZXN0SAASZwoncmVtb3RlX2FnZW50c19nZW5lcmF0ZV9zdW1tYXJ5X3Jlc3BvbnNlGGcgASgLMjQucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50c0dlbmVyYXRlU3VtbWFyeVJlc3BvbnNlSAASPgoRbWVtb3JpZXNfZmVlZGJhY2sYaCABKAsyIS5yZXF1ZXN0X2luc2lnaHQuTWVtb3JpZXNGZWVkYmFja0gAEj8KEmNsaV9hZ2VudF9mZWVkYmFjaxhpIAEoCzIhLnJlcXVlc3RfaW5zaWdodC5DbGlBZ2VudEZlZWRiYWNrSAASSgoYYXBpX2h0dHBfcmVxdWVzdF9kZXRhaWxzGGogASgLMiYucmVxdWVzdF9pbnNpZ2h0LkFwaUh0dHBSZXF1ZXN0RGV0YWlsc0gAElkKIHJldmlld19ib3RfcHVsbF9yZXF1ZXN0X3Jldmlld2VkGGsgASgLMi0ucmVxdWVzdF9pbnNpZ2h0LlJldmlld0JvdFB1bGxSZXF1ZXN0UmV2aWV3ZWRIABJMChlyZXZpZXdfYm90X2Vtb2ppX3JlYWN0aW9uGGwgASgLMicucmVxdWVzdF9pbnNpZ2h0LlJldmlld0JvdEVtb2ppUmVhY3Rpb25IABJDChNjaGF0X21ldGVyaW5nX2V2ZW50GG0gASgLMiQucmVxdWVzdF9pbnNpZ2h0LlJJQ2hhdE1ldGVyaW5nRXZlbnRIABJMChlyZXZpZXdfYm90X2F1dG9tYXRlZF9ldmFsGG4gASgLMicucmVxdWVzdF9pbnNpZ2h0LlJldmlld0JvdEF1dG9tYXRlZEV2YWxIABJKChhyZXZpZXdfYm90X3Bvc3RlZF9yZXZpZXcYbyABKAsyJi5yZXF1ZXN0X2luc2lnaHQuUmV2aWV3Qm90UG9zdGVkUmV2aWV3SAASTAoZcmV2aWV3X2JvdF9wb3N0ZWRfY29tbWVudBhwIAEoCzInLnJlcXVlc3RfaW5zaWdodC5SZXZpZXdCb3RQb3N0ZWRDb21tZW50SAASTgoaY2hhdF9pbnB1dF9jb21wbGV0aW9uX2VtaXQYcSABKAsyKC5yZXF1ZXN0X2luc2lnaHQuQ2hhdElucHV0Q29tcGxldGlvbkVtaXRIABJaCiBjaGF0X2lucHV0X2NvbXBsZXRpb25fcmVzb2x1dGlvbhhyIAEoCzIuLnJlcXVlc3RfaW5zaWdodC5DaGF0SW5wdXRDb21wbGV0aW9uUmVzb2x1dGlvbkgAEk4KGnJldmlld19ib3RfcmVwb3NfY29ubmVjdGVkGHMgASgLMigucmVxdWVzdF9pbnNpZ2h0LlJldmlld0JvdFJlcG9zQ29ubmVjdGVkSAASawooYWdlbnRpY19zbGFja2JvdF9yZWFjdGlvbl9yZWNlaXZlZF9ldmVudBh0IAEoCzI3LnJlcXVlc3RfaW5zaWdodC5SSUFnZW50aWNTbGFja2JvdFJlYWN0aW9uUmVjZWl2ZWRFdmVudEgAEk4KGnJldmlld19ib3RfYWdlbnRfY29tcGxldGVkGHYgASgLMigucmVxdWVzdF9pbnNpZ2h0LlJldmlld0JvdEFnZW50Q29tcGxldGVkSAASUwoaZ2l0aHViX3B1bGxfcmVxdWVzdF9tZXJnZWQYdyABKAsyLS5yZXF1ZXN0X2luc2lnaHQuR2l0aHViUHVsbFJlcXVlc3RNZXJnZWRFdmVudEgAEkkKF2J1dGxlcl9yb3V0aW5nX3Jlc3BvbnNlGHggASgLMiYucmVxdWVzdF9pbnNpZ2h0LkJ1dGxlclJvdXRpbmdSZXNwb25zZUgAEjoKD2Nvc21vc19mZWVkYmFjaxh5IAEoCzIfLnJlcXVlc3RfaW5zaWdodC5Db3Ntb3NGZWVkYmFja0gAElkKHmludGVncmF0aW9uX2luc3RhbGxhdGlvbl9ldmVudBh6IAEoCzIvLnJlcXVlc3RfaW5zaWdodC5SSUludGVncmF0aW9uSW5zdGFsbGF0aW9uRXZlbnRIABI9ChF2b2ljZV9tb2RlbF9pbnB1dBh7IAEoCzIgLnJlcXVlc3RfaW5zaWdodC5Wb2ljZU1vZGVsSW5wdXRIABIoCgR0aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCghldmVudF9pZBglIAEoCUgBiAEBQgcKBWV2ZW50QgsKCV9ldmVudF9pZEoECAMQBEoECAQQBUoECAUQBkoECDcQOEoECDgQOUoECDkQOkoECDoQO0oECD8QQEoECEAQQUoECBoQG0oECB4QH0oECB8QIEoECCEQIkoECCIQI0oECCMQJEoECCQQJUoECHUQdlIUbGxtX2dlbmVyYXRlX3JlcXVlc3RSFWxsbV9nZW5lcmF0ZV9yZXNwb25zZVIWbmV4dF9lZGl0X2hvc3RfcmVxdWVzdFIXbmV4dF9lZGl0X2hvc3RfcmVzcG9uc2VSEm5leHRfZWRpdF9mZWVkYmFja1IUbmV4dF9lZGl0X3Jlc29sdXRpb25SDm5leHRfZWRpdF9lbWl0IsQCCg9SZXF1ZXN0TWV0YWRhdGESMgoMcmVxdWVzdF90eXBlGAEgASgOMhwucmVxdWVzdF9pbnNpZ2h0LlJlcXVlc3RUeXBlEhIKCnNlc3Npb25faWQYAiABKAkSDwoHdXNlcl9pZBgDIAEoCRISCgp1c2VyX2FnZW50GAQgASgJEi0KDm9wYXF1ZV91c2VyX2lkGAUgASgLMhUuYXV0aF9lbnRpdGllcy5Vc2VySWQSFwoKdXNlcl9lbWFpbBgGIAEoCUgAiAEBEhEKCXNvdXJjZV9pcBgHIAEoCRIoCghib3RfdHlwZRgIIAEoDjIWLmF1dGhfZW50aXRpZXMuQm90VHlwZRIcCg9jb252ZXJzYXRpb25faWQYCSABKAlIAYgBAUINCgtfdXNlcl9lbWFpbEISChBfY29udmVyc2F0aW9uX2lkImoKEVJlcXVlc3RTdXNwaWNpb3VzEi0KDm9wYXF1ZV91c2VyX2lkGAEgASgLMhUuYXV0aF9lbnRpdGllcy5Vc2VySWQSEgoKdXNlcl9lbWFpbBgCIAEoCRISCgpjaGVja190eXBlGAMgASgJIrQBCg1SZXJhbmtlckNodW5rEgwKBHRleHQYASABKAkSDAoEcGF0aBgCIAEoCRITCgtjaGFyX29mZnNldBgDIAEoBRIQCghjaGFyX2VuZBgEIAEoBRIRCglibG9iX25hbWUYBSABKAkSEwoLY2h1bmtfaW5kZXgYBiABKAUSDgoGb3JpZ2luGAcgASgJEg0KBXNjb3JlGAggASgCEhkKEXNob3J0X2Rlc2NyaXB0aW9uGAkgASgJIooBChBSZXJhbmtlclJlc3BvbnNlEjcKD3JlcmFua2VkX2NodW5rcxgBIAMoCzIeLnJlcXVlc3RfaW5zaWdodC5SZXJhbmtlckNodW5rEjcKEHJlcmFua2VyX3Byb21wdHMYAyADKAsyHS5yZXF1ZXN0X2luc2lnaHQuVG9rZW5pemF0aW9uSgQIAhADIuIBCg5SZXRyaWV2YWxDaHVuaxIMCgR0ZXh0GAUgASgJEgwKBHBhdGgYBiABKAkSEwoLY2hhcl9vZmZzZXQYBCABKAUSEAoIY2hhcl9lbmQYByABKAUSEQoJYmxvYl9uYW1lGAIgASgJEhMKC2NodW5rX2luZGV4GAMgASgFEg4KBm9yaWdpbhgIIAEoCRINCgVzY29yZRgJIAEoAhIyCgl0aW1lc3RhbXAYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDAoKX3RpbWVzdGFtcEoECAEQAiLBAQoRUmV0cmlldmFsUmVzcG9uc2USNgoOcmV0cmlldmFsX3R5cGUYASABKA4yHi5yZXF1ZXN0X2luc2lnaHQuUmV0cmlldmFsVHlwZRI5ChByZXRyaWV2ZWRfY2h1bmtzGAMgAygLMh8ucmVxdWVzdF9pbnNpZ2h0LlJldHJpZXZhbENodW5rEjMKDHF1ZXJ5X3Byb21wdBgEIAEoCzIdLnJlcXVlc3RfaW5zaWdodC5Ub2tlbml6YXRpb25KBAgCEAMi2wcKEVJldHJpZXZhbFRvb2xEYXRhEhYKDnJldHJpZXZhbF9tb2RlGAEgASgJEhgKEHRvdGFsX2VsYXBzZWRfbXMYAiABKAUSGwoTYXBpX2NhbGxfZWxhcHNlZF9tcxgDIAEoBRIZChFyZXJhbmtfZWxhcHNlZF9tcxgEIAEoBRIZChFlbnJpY2hfZWxhcHNlZF9tcxgFIAEoBRIlCh1jb2RlYmFzZV9yZXRyaWV2YWxfZWxhcHNlZF9tcxgGIAEoBRIpCiFjb252ZXJzYXRpb25fcmV0cmlldmFsX2VsYXBzZWRfbXMYByABKAUSKQohY29udmVyc2F0aW9uX2luaXRpYWxfcmV0cmlldmFsX21zGAggASgFEicKH2NvbnZlcnNhdGlvbl9xdWVyeV9yZXdyaXRpbmdfbXMYCSABKAUSKgoiY29udmVyc2F0aW9uX2ZvbGxvd3VwX3JldHJpZXZhbF9tcxgKIAEoBRIbChNibG9iX25hbWVfbG9va3VwX21zGAsgASgFEiEKGWNvZGViYXNlX2NodW5rc19yZXRyaWV2ZWQYDCABKAUSIwobY29udmVyc2F0aW9uX2NodW5rc19pbml0aWFsGA0gASgFEiYKHmNvbnZlcnNhdGlvbl9xdWVyaWVzX2dlbmVyYXRlZBgOIAEoBRIkChxjb252ZXJzYXRpb25fY2h1bmtzX2ZvbGxvd3VwGA8gASgFEiQKHGNvbnZlcnNhdGlvbl9jaHVua3NfY29tYmluZWQYECABKAUSKAogY29udmVyc2F0aW9uX2NodW5rc19hZnRlcl9yZXJhbmsYESABKAUSKgoiY29kZWJhc2VfcmVzdWx0X2xlbl9wcmVfdHJ1bmNhdGlvbhgSIAEoBRIbChNjb2RlYmFzZV9yZXN1bHRfbGVuGBMgASgFEi4KJmNvbnZlcnNhdGlvbl9yZXN1bHRfbGVuX3ByZV90cnVuY2F0aW9uGBQgASgFEh8KF2NvbnZlcnNhdGlvbl9yZXN1bHRfbGVuGBUgASgFEhsKE2NvbWJpbmVkX3Jlc3VsdF9sZW4YFiABKAUSFAoMdG90YWxfYnVkZ2V0GBcgASgFEhcKD2NvZGViYXNlX2J1ZGdldBgYIAEoBRIbChNjb252ZXJzYXRpb25fYnVkZ2V0GBkgASgFEhoKEmNvZGViYXNlX3RydW5jYXRlZBgaIAEoCBIeChZjb252ZXJzYXRpb25fdHJ1bmNhdGVkGBsgASgIEhcKD2ZpbmFsX3RydW5jYXRlZBgcIAEoCBIUCgxpc19zdWJfYWdlbnQYHSABKAgiqQEKF1Jldmlld0JvdEFnZW50Q29tcGxldGVkEhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCRISCgpyZXBvX293bmVyGAIgASgJEhEKCXJlcG9fbmFtZRgDIAEoCRIRCglwcl9udW1iZXIYBCABKA0SDwoHb3V0Y29tZRgFIAEoCRIPCgdhdHRlbXB0GAYgASgFEhkKEXJldmlld19yZXF1ZXN0X2lkGAcgASgJIrECChZSZXZpZXdCb3RBdXRvbWF0ZWRFdmFsEhQKDHJlcG9fbm9kZV9pZBgBIAEoCRIRCglwcl9udW1iZXIYAiABKA0SFwoPcmVtb3RlX2FnZW50X2lkGAMgASgJEhEKCWFkZHJlc3NlZBgEIAEoCBISCgpjb21tZW50X2lkGAUgASgJEhgKEHByaW1hcnlfY2F0ZWdvcnkYBiABKAkSEwoLc3ViY2F0ZWdvcnkYByABKAkSGwoTYXVnbWVudF9ib3RfY29tbWVudBgIIAEoCBIdChVjdXN0b21fZ3VpZGVsaW5lX2FyZWEYCSABKAkSGwoTY3VzdG9tX2d1aWRlbGluZV9pZBgKIAEoCRIXCgphY3Rpb25hYmxlGAsgASgISACIAQFCDQoLX2FjdGlvbmFibGUibwoWUmV2aWV3Qm90RW1vamlSZWFjdGlvbhIUCgxyZXBvX25vZGVfaWQYASABKAkSEQoJcHJfbnVtYmVyGAIgASgNEh0KFWNvbW1lbnRfZGlzY3Vzc2lvbl9pZBgDIAEoDRINCgVlbW9qaRgEIAEoCSJ7ChZSZXZpZXdCb3RQb3N0ZWRDb21tZW50EhEKCXJldmlld19pZBgBIAEoCRISCgpjb21tZW50X2lkGAIgASgJEhEKCXByX251bWJlchgDIAEoDRIQCghzZXZlcml0eRgEIAEoCRIVCg1mcF9saWtlbGlob29kGAUgASgCIkAKFVJldmlld0JvdFBvc3RlZFJldmlldxIUCgxudW1fY29tbWVudHMYASABKA0SEQoJcmV2aWV3X2lkGAIgASgJIo8JChxSZXZpZXdCb3RQdWxsUmVxdWVzdFJldmlld2VkEhQKDHJlcG9fbm9kZV9pZBgBIAEoCRIRCglwcl9udW1iZXIYAiABKA0SDwoHdHJpZ2dlchgDIAEoCRIXCg9yZW1vdGVfYWdlbnRfaWQYBCABKAkSEgoKcmVwb19vd25lchgFIAEoCRIRCglyZXBvX25hbWUYBiABKAkSGwoTYXV0aG9yX2dpdGh1Yl9sb2dpbhgHIAEoCRIbChNhdXRob3JfZ2l0aHViX2VtYWlsGAggASgJEh0KFWF1dGhvcl9naXRodWJfbm9kZV9pZBgJIAEoCRIoChtjb21tZW50X2F1dGhvcl9naXRodWJfbG9naW4YCiABKAlIAIgBARIoChtjb21tZW50X2F1dGhvcl9naXRodWJfZW1haWwYCyABKAlIAYgBARIqCh1jb21tZW50X2F1dGhvcl9naXRodWJfbm9kZV9pZBgMIAEoCUgCiAEBEhgKC2xpbmVzX2FkZGVkGA0gASgNSAOIAQESGgoNbGluZXNfcmVtb3ZlZBgOIAEoDUgEiAEBEhIKCm1vZGVsX25hbWUYDyABKAkSHQoQZXN0aW1hdGVkX3Rva2VucxgQIAEoDUgFiAEBEhgKEHVzZWRfbGFyZ2VfbW9kZWwYESABKAgSHgoRZGlmZl9wYXRjaF9sZW5ndGgYEiABKANIBogBARIlChhjdXN0b21fZ3VpZGVsaW5lc19sZW5ndGgYEyABKANIB4gBARIjChZ3b3Jrc3BhY2VfcnVsZXNfbGVuZ3RoGBQgASgDSAiIAQESJAoXd29ya3NwYWNlX3J1bGVzX2VuYWJsZWQYFSABKAhICYgBARIeChFydWxlX2ZpbGVzX2xvYWRlZBgWIAEoBUgKiAEBEiUKGGV4aXN0aW5nX2NvbW1lbnRzX2xlbmd0aBgXIAEoA0gLiAEBEhsKDnByX2JvZHlfbGVuZ3RoGBggASgDSAyIAQESIAoTY2hhbmdlZF9maWxlc19jb3VudBgZIAEoBUgNiAEBEhQKB291dGNvbWUYGiABKAlIDogBAUIeChxfY29tbWVudF9hdXRob3JfZ2l0aHViX2xvZ2luQh4KHF9jb21tZW50X2F1dGhvcl9naXRodWJfZW1haWxCIAoeX2NvbW1lbnRfYXV0aG9yX2dpdGh1Yl9ub2RlX2lkQg4KDF9saW5lc19hZGRlZEIQCg5fbGluZXNfcmVtb3ZlZEITChFfZXN0aW1hdGVkX3Rva2Vuc0IUChJfZGlmZl9wYXRjaF9sZW5ndGhCGwoZX2N1c3RvbV9ndWlkZWxpbmVzX2xlbmd0aEIZChdfd29ya3NwYWNlX3J1bGVzX2xlbmd0aEIaChhfd29ya3NwYWNlX3J1bGVzX2VuYWJsZWRCFAoSX3J1bGVfZmlsZXNfbG9hZGVkQhsKGV9leGlzdGluZ19jb21tZW50c19sZW5ndGhCEQoPX3ByX2JvZHlfbGVuZ3RoQhYKFF9jaGFuZ2VkX2ZpbGVzX2NvdW50QgoKCF9vdXRjb21lIpoBChdSZXZpZXdCb3RSZXBvc0Nvbm5lY3RlZBITCgt0b3RhbF9jb3VudBgBIAEoDRIlCh1hdXRvX3Jldmlld19vbl9wcl9yZWFkeV9jb3VudBgCIAEoDRIrCiNtYW51YWxfd2l0aF9jb21tZW50X2tleXBocmFzZV9jb3VudBgDIAEoDRIWCg5kaXNhYmxlZF9jb3VudBgEIAEoDSKeAgoOUm91dGVyUmVzcG9uc2USNAoNcHJvbXB0X3Rva2VucxgBIAEoCzIdLnJlcXVlc3RfaW5zaWdodC5Ub2tlbml6YXRpb24SOwoPcmVzcG9uc2VfdG9rZW5zGAIgASgLMh0ucmVxdWVzdF9pbnNpZ2h0LlRva2VuaXphdGlvbkgAiAEBEkMKD3BhcnNlZF9yZXNwb25zZRgDIAEoCzIlLnJlcXVlc3RfaW5zaWdodC5QYXJzZWRSb3V0ZXJSZXNwb25zZUgBiAEBEhoKDWVycm9yX21lc3NhZ2UYBCABKAlIAogBAUISChBfcmVzcG9uc2VfdG9rZW5zQhIKEF9wYXJzZWRfcmVzcG9uc2VCEAoOX2Vycm9yX21lc3NhZ2Ui0QEKEVJ1bGVzSW1wb3J0ZWREYXRhEjUKBHR5cGUYASABKA4yJy5yZXF1ZXN0X2luc2lnaHQuUnVsZXNJbXBvcnRlZERhdGEuVHlwZRIRCgludW1fZmlsZXMYAiABKA0SDgoGc291cmNlGAMgASgJImIKBFR5cGUSDwoLVU5TUEVDSUZJRUQQABIUChBNQU5VQUxMWV9DUkVBVEVEEAESCAoEQVVUTxACEhYKElNFTEVDVEVEX0RJUkVDVE9SWRADEhEKDVNFTEVDVEVEX0ZJTEUQBCKsAQoSU1NISW50ZXJhY3Rpb25EYXRhEk0KEGludGVyYWN0aW9uX3R5cGUYASABKA4yMy5yZXF1ZXN0X2luc2lnaHQuU1NISW50ZXJhY3Rpb25EYXRhLkludGVyYWN0aW9uVHlwZSJHCg9JbnRlcmFjdGlvblR5cGUSCwoHVU5LTk9XThAAEgsKB0NMSUNLRUQQARIaChZSRU1PVEVfU0VTU0lPTl9TVEFSVEVEEAIiTwoWU2NyaXB0Q2FwdHVyZUJhc2ljRGF0YRISCgpzaGVsbF9uYW1lGAEgASgJEhAKCHBsYXRmb3JtGAIgASgJEg8KB21lc3NhZ2UYAyABKAki/w4KDFNlc3Npb25FdmVudBJLChhvbmJvYXJkaW5nX3Nlc3Npb25fZXZlbnQYBCABKAsyJy5yZXF1ZXN0X2luc2lnaHQuT25ib2FyZGluZ1Nlc3Npb25FdmVudEgAEjYKDWNsaWVudF9tZXRyaWMYBSABKAsyHS5yZXF1ZXN0X2luc2lnaHQuQ2xpZW50TWV0cmljSAASSQoXZXh0ZW5zaW9uX3Nlc3Npb25fZXZlbnQYCiABKAsyJi5yZXF1ZXN0X2luc2lnaHQuRXh0ZW5zaW9uU2Vzc2lvbkV2ZW50SAASTAoZY3VzdG9tZXJfdWlfc2Vzc2lvbl9ldmVudBgLIAEoCzInLnJlcXVlc3RfaW5zaWdodC5DdXN0b21lclVJU2Vzc2lvbkV2ZW50SAASQQoTYWdlbnRfc2Vzc2lvbl9ldmVudBgMIAEoCzIiLnJlcXVlc3RfaW5zaWdodC5BZ2VudFNlc3Npb25FdmVudEgAElIKHGNvbnRlbnRfbWFuYWdlcl91cGxvYWRfYmxvYnMYDSABKAsyKi5yZXF1ZXN0X2luc2lnaHQuQ29udGVudE1hbmFnZXJVcGxvYWRCbG9ic0gAEloKIGNvbnRlbnRfbWFuYWdlcl9jaGVja3BvaW50X2Jsb2JzGA4gASgLMi4ucmVxdWVzdF9pbnNpZ2h0LkNvbnRlbnRNYW5hZ2VyQ2hlY2twb2ludEJsb2JzSAASTgoacmVtb3RlX2FnZW50X3Nlc3Npb25fZXZlbnQYDyABKAsyKC5yZXF1ZXN0X2luc2lnaHQuUmVtb3RlQWdlbnRTZXNzaW9uRXZlbnRIABI8ChBwdXJjaGFzZV9jcmVkaXRzGBAgASgLMiAucmVxdWVzdF9pbnNpZ2h0LlB1cmNoYXNlQ3JlZGl0c0gAEkIKE2NhbmNlbF9zdWJzY3JpcHRpb24YESABKAsyIy5yZXF1ZXN0X2luc2lnaHQuQ2FuY2VsU3Vic2NyaXB0aW9uSAAScgosdW5zY2hlZHVsZV9wZW5kaW5nX3N1YnNjcmlwdGlvbl9jYW5jZWxsYXRpb24YEiABKAsyOi5yZXF1ZXN0X2luc2lnaHQuVW5zY2hlZHVsZVBlbmRpbmdTdWJzY3JpcHRpb25DYW5jZWxsYXRpb25IABI7ChByZW1vdGVfYWdlbnRfbG9nGBMgASgLMh8ucmVxdWVzdF9pbnNpZ2h0LlJlbW90ZUFnZW50TG9nSAASSQoXdW5zY2hlZHVsZV9wbGFuX2NoYW5nZXMYFSABKAsyJi5yZXF1ZXN0X2luc2lnaHQuVW5zY2hlZHVsZVBsYW5DaGFuZ2VzSAASRQoVZ2l0aHViX3VzZXJfYXV0aG9yaXplGBYgASgLMiQucmVxdWVzdF9pbnNpZ2h0LkdpdGh1YlVzZXJBdXRob3JpemVIABJUCh1yZW1vdGVfYWdlbnRfd29ya3NwYWNlX3VwdGltZRgXIAEoCzIrLnJlcXVlc3RfaW5zaWdodC5SZW1vdGVBZ2VudFdvcmtzcGFjZVVwdGltZUgAEkgKF3VzZXJfZ2l0aHViX29yZ19tYXBwaW5nGBggASgLMiUucmVxdWVzdF9pbnNpZ2h0LlVzZXJHaXRodWJPcmdNYXBwaW5nSAASQAoTYXV0b190b3BfdXBfc2V0dGluZxgZIAEoCzIhLnJlcXVlc3RfaW5zaWdodC5BdXRvVG9wVXBTZXR0aW5nSAASQwoUY29tbWl0X3Nlc3Npb25fZXZlbnQYGiABKAsyIy5yZXF1ZXN0X2luc2lnaHQuQ29tbWl0U2Vzc2lvbkV2ZW50SAASTwoaY29tbWl0X2F0dHJpYnV0aW9uX3N1bW1hcnkYGyABKAsyKS5yZXF1ZXN0X2luc2lnaHQuQ29tbWl0QXR0cmlidXRpb25TdW1tYXJ5SAASQAoSY2xvc2Vfc3Vic2NyaXB0aW9uGBwgASgLMiIucmVxdWVzdF9pbnNpZ2h0LkNsb3NlU3Vic2NyaXB0aW9uSAASMwoJdGV4dF9lZGl0GAYgASgLMh4ucmVxdWVzdF9pbnNpZ2h0LlRleHRFZGl0RXZlbnRIABJXChxjb21wbGV0aW9uX3JlcXVlc3RfaWRfaXNzdWVkGAcgASgLMi8ucmVxdWVzdF9pbnNpZ2h0LkNvbXBsZXRpb25SZXF1ZXN0SWRJc3N1ZWRFdmVudEgAEksKFmVkaXRfcmVxdWVzdF9pZF9pc3N1ZWQYCCABKAsyKS5yZXF1ZXN0X2luc2lnaHQuRWRpdFJlcXVlc3RJZElzc3VlZEV2ZW50SAASKAoEdGltZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoIZXZlbnRfaWQYAyABKAlIAYgBAUIHCgVldmVudEILCglfZXZlbnRfaWRKBAgCEANKBAgJEApKBAgUEBVSF25leHRfZWRpdF9zZXNzaW9uX2V2ZW50UhtuZXh0X2VkaXRfcmVxdWVzdF9pZF9pc3N1ZWRSFWZlYXR1cmVfdmVjdG9yX3JlcG9ydCIRCg9TZXR1cFBhZ2VPcGVuZWQibwoWU2tpbGxDb250ZW50TG9hZGVkRGF0YRISCgpza2lsbF9uYW1lGAEgASgJEhQKDHNraWxsX3NvdXJjZRgCIAEoCRIWCg5jb250ZW50X2xlbmd0aBgDIAEoDRITCgtzb3VyY2VfdG9vbBgEIAEoCSI1CglTa2lsbEluZm8SEgoKc2tpbGxfbmFtZRgBIAEoCRIUCgxza2lsbF9zb3VyY2UYAiABKAkiWwoYU2tpbGxzSW5jbHVkZWRJbkNoYXREYXRhEioKBnNraWxscxgBIAMoCzIaLnJlcXVlc3RfaW5zaWdodC5Ta2lsbEluZm8SEwoLc2tpbGxfY291bnQYAiABKA0ijQEKEFNsYWNrYm90RmVlZGJhY2sSIAoYc2xhY2tfcmVzcG9uc2VfdGltZXN0YW1wGAEgASgJEhgKEHNsYWNrX2NoYW5uZWxfaWQYAiABKAkSLwoGcmF0aW5nGAMgASgOMh8ucmVxdWVzdF9pbnNpZ2h0LkZlZWRiYWNrUmF0aW5nEgwKBG5vdGUYBCABKAkivAEKGFNtYXJ0UGFzdGVDbGllbnRUaW1lbGluZRI4ChRpbml0aWFsX3JlcXVlc3RfdGltZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoSc3RyZWFtX2ZpbmlzaF90aW1lGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgphcHBseV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJgChRTbWFydFBhc3RlUmVzb2x1dGlvbhIaChJpc19hY2NlcHRlZF9jaHVua3MYASADKAgSFQoNaXNfYWNjZXB0X2FsbBgCIAEoCBIVCg1pc19yZWplY3RfYWxsGAMgASgIIjAKDlN1YkFnZW50RGlhbG9nEh4KBmRpYWxvZxgDIAMoCzIOLmNoYXQuRXhjaGFuZ2UiqQQKEVRhc2tMaXN0VXNhZ2VEYXRhEkEKBmFjdGlvbhgBIAEoDjIxLnJlcXVlc3RfaW5zaWdodC5UYXNrTGlzdFVzYWdlRGF0YS5UYXNrTGlzdEFjdGlvbhIZChF0b3RhbF90YXNrc19jb3VudBgCIAEoDRJGCgx0cmlnZ2VyZWRfYnkYAyABKA4yMC5yZXF1ZXN0X2luc2lnaHQuVGFza0xpc3RVc2FnZURhdGEuQWN0aW9uVHJpZ2dlciKyAgoOVGFza0xpc3RBY3Rpb24SDwoLVU5TUEVDSUZJRUQQABIMCghBRERfVEFTSxABEg8KC0FERF9TVUJUQVNLEAISFgoSVVBEQVRFX1RBU0tfU1RBVFVTEAMSFAoQVVBEQVRFX1RBU0tfTkFNRRAEEhsKF1VQREFURV9UQVNLX0RFU0NSSVBUSU9OEAUSGAoUUkVPUkdBTklaRV9UQVNLX0xJU1QQBhIPCgtERUxFVEVfVEFTSxAHEhMKD1JVTl9TSU5HTEVfVEFTSxAIEhEKDVJVTl9BTExfVEFTS1MQCRISCg5WSUVXX1RBU0tfTElTVBAKEhQKEEVYUE9SVF9UQVNLX0xJU1QQCxIUChBJTVBPUlRfVEFTS19MSVNUEAwSEgoOU1lOQ19UQVNLX0xJU1QQDSI5Cg1BY3Rpb25UcmlnZ2VyEhMKD1VOS05PV05fVFJJR0dFUhAAEggKBFVTRVIQARIJCgVBR0VOVBACIr0DCg1UZXh0RWRpdEV2ZW50EjoKBnJlYXNvbhgBIAEoDjIlLnJlcXVlc3RfaW5zaWdodC5UZXh0RWRpdEV2ZW50LlJlYXNvbkgAiAEBEjcKD2NvbnRlbnRfY2hhbmdlcxgCIAMoCzIeLnJlcXVlc3RfaW5zaWdodC5Db250ZW50Q2hhbmdlEhYKCWZpbGVfcGF0aBgDIAEoCUgBiAEBEh8KEmFmdGVyX2NoYW5nZXNfaGFzaBgEIAEoCUgCiAEBEjAKEGhhc2hfY2hhcl9yYW5nZXMYBSADKAsyFi5yZXF1ZXN0X2luc2lnaHQuUmFuZ2USHwoSc291cmNlX2ZvbGRlcl9yb290GAYgASgJSAOIAQESHQoQYWZ0ZXJfZG9jX2xlbmd0aBgHIAEoDUgEiAEBIjAKBlJlYXNvbhISCg5VTktOT1dOX1JFQVNPThAAEggKBFVORE8QARIICgRSRURPEAJCCQoHX3JlYXNvbkIMCgpfZmlsZV9wYXRoQhUKE19hZnRlcl9jaGFuZ2VzX2hhc2hCFQoTX3NvdXJjZV9mb2xkZXJfcm9vdEITChFfYWZ0ZXJfZG9jX2xlbmd0aCJQCh1UaGlyZFBhcnR5TW9kZWxNZXNzYWdlSGlzdG9yeRIUCgx1c2VyX21lc3NhZ2UYASABKAkSGQoRYXNzaXN0YW50X21lc3NhZ2UYAiABKAkigQEKFlRoaXJkUGFydHlNb2RlbFJlcXVlc3QSDgoGcHJvbXB0GAEgASgJEhUKDXN5c3RlbV9wcm9tcHQYAiABKAkSQAoIbWVzc2FnZXMYAyADKAsyLi5yZXF1ZXN0X2luc2lnaHQuVGhpcmRQYXJ0eU1vZGVsTWVzc2FnZUhpc3RvcnkiwwEKElRva2VuRXhjaGFuZ2VFcnJvchI6CgZyZWFzb24YASABKA4yKi5yZXF1ZXN0X2luc2lnaHQuVG9rZW5FeGNoYW5nZUVycm9yLlJlYXNvbhItCg5vcGFxdWVfdXNlcl9pZBgCIAEoCzIVLmF1dGhfZW50aXRpZXMuVXNlcklkEhIKCnVzZXJfZW1haWwYAyABKAkiLgoGUmVhc29uEgsKB1VOS05PV04QABIXChNURU5BTlRfTk9UX0lOX1NIQVJEEAEiUwoMVG9rZW5pemF0aW9uEhEKCXRva2VuX2lkcxgBIAMoBRIPCgdvZmZzZXRzGAIgAygNEhEKCWxvZ19wcm9icxgDIAMoAhIMCgR0ZXh0GAQgASgJIscGCgtUb29sVXNlRGF0YRIRCgl0b29sX25hbWUYASABKAkSEwoLdG9vbF91c2VfaWQYAiABKAkSIQoUdG9vbF9vdXRwdXRfaXNfZXJyb3IYAyABKAhIAIgBARIcChR0b29sX3J1bl9kdXJhdGlvbl9tcxgEIAEoDRISCgp0b29sX2lucHV0GAUgASgJEhgKC2lzX21jcF90b29sGAYgASgISAGIAQESHAoPY29udmVyc2F0aW9uX2lkGAcgASgJSAKIAQESIAoTY2hhdF9oaXN0b3J5X2xlbmd0aBgIIAEoDUgDiAEBEhwKD3Rvb2xfcmVxdWVzdF9pZBgJIAEoCUgEiAEBEhwKD3Rvb2xfb3V0cHV0X2xlbhgKIAEoDUgFiAEBEhsKDnRvb2xfaW5wdXRfbGVuGAsgASgNSAaIAQESHQoQdG9vbF9saW5lc19hZGRlZBgMIAEoDUgHiAEBEh8KEnRvb2xfbGluZXNfZGVsZXRlZBgNIAEoDUgIiAEBEjgKDXRvb2xfdXNlX2RpZmYYDiABKAsyHC5yZXF1ZXN0X2luc2lnaHQuVG9vbFVzZURpZmZICYgBARIXCgptY3Bfc2VydmVyGA8gASgJSAqIAQESGgoNbWNwX3Rvb2xfbmFtZRgQIAEoCUgLiAEBEh0KEHRvb2xfZXJyb3JfY2xhc3MYESABKAlIDIgBARIfChJ0b29sX2Vycm9yX3NuaXBwZXQYEiABKAlIDYgBAUIXChVfdG9vbF9vdXRwdXRfaXNfZXJyb3JCDgoMX2lzX21jcF90b29sQhIKEF9jb252ZXJzYXRpb25faWRCFgoUX2NoYXRfaGlzdG9yeV9sZW5ndGhCEgoQX3Rvb2xfcmVxdWVzdF9pZEISChBfdG9vbF9vdXRwdXRfbGVuQhEKD190b29sX2lucHV0X2xlbkITChFfdG9vbF9saW5lc19hZGRlZEIVChNfdG9vbF9saW5lc19kZWxldGVkQhAKDl90b29sX3VzZV9kaWZmQg0KC19tY3Bfc2VydmVyQhAKDl9tY3BfdG9vbF9uYW1lQhMKEV90b29sX2Vycm9yX2NsYXNzQhUKE190b29sX2Vycm9yX3NuaXBwZXQiWwoLVG9vbFVzZURpZmYSEQoJcm9vdF9wYXRoGAEgASgJEgwKBHBhdGgYAiABKAkSKwoFZWRpdHMYAyADKAsyHC5yZXF1ZXN0X2luc2lnaHQuVG9vbFVzZUVkaXQiSgoLVG9vbFVzZUVkaXQSEwoLYmVmb3JlX3RleHQYASABKAkSEgoKYWZ0ZXJfdGV4dBgCIAEoCRISCgpsaW5lX3N0YXJ0GAMgASgNIkgKKVVuc2NoZWR1bGVQZW5kaW5nU3Vic2NyaXB0aW9uQ2FuY2VsbGF0aW9uEhsKE29yYl9zdWJzY3JpcHRpb25faWQYASABKAkiNAoVVW5zY2hlZHVsZVBsYW5DaGFuZ2VzEhsKE29yYl9zdWJzY3JpcHRpb25faWQYASABKAkihQIKFFVzZXJHaXRodWJPcmdNYXBwaW5nEgoKAmlkGAEgASgDEg0KBWxvZ2luGAIgASgJEgwKBG5hbWUYAyABKAkSDwoHY29tcGFueRgEIAEoCRIQCghsb2NhdGlvbhgFIAEoCRINCgVlbWFpbBgGIAEoCRIYChB0d2l0dGVyX3VzZXJuYW1lGAcgASgJEhMKC2Rlc2NyaXB0aW9uGAggASgJEhcKD2ZvbGxvd2Vyc19jb3VudBgJIAEoBRISCgpkaXNrX3VzYWdlGAogASgFEhEKCXBsYW5fbmFtZRgLIAEoCRIUCgxmaWxsZWRfc2VhdHMYDCABKAUSDQoFc2VhdHMYDSABKAUi5AIKD1ZvaWNlTW9kZWxJbnB1dBIzCgRraW5kGAEgASgOMiUucmVxdWVzdF9pbnNpZ2h0LlZvaWNlTW9kZWxJbnB1dC5LaW5kEhAKCHByb3ZpZGVyGAIgASgJEg0KBW1vZGVsGAMgASgJEhsKE3Byb3ZpZGVyX3Nlc3Npb25faWQYBCABKAkSEAoIYWdlbnRfaWQYBSABKAkSFAoMaW5zdHJ1Y3Rpb25zGAYgASgJEhQKDGhpc3RvcnlfanNvbhgHIAEoCRISCgpldmVudF9qc29uGAggASgJEhkKEXByb3ZpZGVyX2V2ZW50X2lkGAkgASgJEhIKCnNlbmRfb3JkZXIYCiABKAQSEgoKaW5wdXRfdHlwZRgLIAEoCSJJCgRLaW5kEhQKEEtJTkRfVU5TUEVDSUZJRUQQABITCg9JTklUSUFMX1NFU1NJT04QARIWChJEQVRBX0NIQU5ORUxfRVZFTlQQAio3Cg5GZWVkYmFja1JhdGluZxIJCgVVTlNFVBAAEgwKCFBPU0lUSVZFEAESDAoITkVHQVRJVkUQAipOChBJbnN0YWxsRXZlbnRUeXBlEh4KGlVOS05PV05fSU5TVEFMTF9FVkVOVF9UWVBFEAASDQoJVU5JTlNUQUxMEAESCwoHSU5TVEFMTBACKscFCgtSZXF1ZXN0VHlwZRIYChRVTktOT1dOX1JFUVVFU1RfVFlQRRAAEg4KCkNPTVBMRVRJT04QARIICgRFRElUEAISCAoEQ0hBVBADEhMKD0VYVEVOU0lPTl9FUlJPUhAEEhEKDVNMQUNLQk9UX0NIQVQQBhITCg9TSEFSRV9TQVZFX0NIQVQQBxISCg5TSEFSRV9HRVRfQ0hBVBAIEhEKDUFVVE9GSVhfQ0hFQ0sQCRIQCgxBVVRPRklYX1BMQU4QChIQCgxMTE1fR0VORVJBVEUQCxIUChBSRU1PVEVfVE9PTF9DQUxMEAwSEAoMUkVNT1RFX0FHRU5UEA0SDgoKQUdFTlRfQ0hBVBAOEhAKDExJTkVBUl9PQVVUSBAPEgwKCE1FTU9SSUVTEBASDwoLT1JJRU5UQVRJT04QERIYChRNRU1PUklFU19DT01QUkVTU0lPThASEhUKEVJFTU9URV9BR0VOVF9DSEFUEBMSFAoQUkVNT1RFX0FHRU5UX0xPRxAUEhIKDkNMSV9BR0VOVF9DSEFUEBUSEwoPVE9LRU5fRlJPTV9DT0RFEBYSIQodQ0xJX0FHRU5UX0NIQVRfTk9OSU5URVJBQ1RJVkUQFxIZChVDSEFUX0lOUFVUX0NPTVBMRVRJT04QGBIPCgtDT0RFX1JFVklFVxAZEh8KG1JFTU9URV9NQ1BfU0VSVkVSX1RPT0xfQ0FMTBAaEh8KG0RZTkFNSUNfQ0xJRU5UX1JFR0lTVFJBVElPThAbEhUKEUFHRU5USUNfU0xBQ0tfQk9UEBwSGwoXQ09OVEVYVF9FTkdJTkVfU0RLX0NIQVQQHRIbChdDT05URVhUX0VOR0lORV9NQ1BfQ0hBVBAeEhsKF1BPU0VJRE9OX0NMSV9BR0VOVF9DSEFUEB8SCQoFVk9JQ0UQICIECAUQBSoJTkVYVF9FRElUKm0KDVJldHJpZXZhbFR5cGUSGgoWVU5LTk9XTl9SRVRSSUVWQUxfVFlQRRAAEgkKBURFTlNFEAESDQoJU0lHTkFUVVJFEAISCwoHUkVDRU5DWRADEg8KC1VTRVJfR1VJREVEEAQSCAoERElGRhAFKkQKEVNvdXJjZUNvbnRyb2xUeXBlEhoKFlVOS05PV05fU09VUkNFX0NPTlRST0wQABIHCgNHSVQQARIKCgZHSVRIVUIQAmIGcHJvdG8z",[Vt,Ha,ee,Cn,h2,V2,$e,p2,Yn,E2,R2,Z2,Ma,G2,y2,U2]);var w2;(function(e){e[e.UNKNOWN_TOP_UP_ACTION=0]="UNKNOWN_TOP_UP_ACTION",e[e.ENABLED=1]="ENABLED",e[e.DISABLED=2]="DISABLED"})(w2||(w2={}));var x2;(function(e){e[e.CHAT=0]="CHAT",e[e.AGENT=1]="AGENT",e[e.MEMORIES=2]="MEMORIES",e[e.ORIENTATION=3]="ORIENTATION",e[e.MEMORIES_COMPRESSION=4]="MEMORIES_COMPRESSION",e[e.REMOTE_AGENT=5]="REMOTE_AGENT",e[e.CLI_AGENT=6]="CLI_AGENT",e[e.CLI_NONINTERACTIVE=7]="CLI_NONINTERACTIVE",e[e.CODE_REVIEW=8]="CODE_REVIEW",e[e.AGENTIC_SLACK_BOT=9]="AGENTIC_SLACK_BOT",e[e.CONTEXT_ENGINE_SDK=10]="CONTEXT_ENGINE_SDK",e[e.CONTEXT_ENGINE_MCP=11]="CONTEXT_ENGINE_MCP",e[e.POSEIDON_CLI_AGENT=12]="POSEIDON_CLI_AGENT"})(x2||(x2={}));var v2;(function(e){e[e.UNKNOWN_FILTER_REASON=0]="UNKNOWN_FILTER_REASON",e[e.NOT_FILTERED=1]="NOT_FILTERED",e[e.LOW_QUALITY=2]="LOW_QUALITY",e[e.DENY_LIST=3]="DENY_LIST"})(v2||(v2={}));var J2;(function(e){e[e.UNKNOWN_SESSION_END_REASON=0]="UNKNOWN_SESSION_END_REASON",e[e.LOGOUT=1]="LOGOUT",e[e.TIMEOUT=2]="TIMEOUT"})(J2||(J2={}));var k2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ONBOARDING=1]="ONBOARDING",e[e.COMMAND=2]="COMMAND"})(k2||(k2={}));var _2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.USER_GUIDELINES=1]="USER_GUIDELINES",e[e.AUGMENT_GUIDELINES=2]="AUGMENT_GUIDELINES",e[e.RULES=3]="RULES"})(_2||(_2={}));var Q2;(function(e){e[e.UNKNOWN_MODE=0]="UNKNOWN_MODE",e[e.CHAT=1]="CHAT",e[e.AGENT=2]="AGENT",e[e.REMOTE_AGENT=3]="REMOTE_AGENT"})(Q2||(Q2={}));var T2;(function(e){e[e.UNKNOWN_MODE_SELECTOR_ACTION=0]="UNKNOWN_MODE_SELECTOR_ACTION",e[e.OPEN=1]="OPEN",e[e.CLOSE=2]="CLOSE",e[e.SELECT=3]="SELECT",e[e.INIT=4]="INIT"})(T2||(T2={}));var K2;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACTIVATED=1]="ACTIVATED",e[e.DEACTIVATED=2]="DEACTIVATED",e[e.NOTIFIED=4]="NOTIFIED",e[e.ACCEPTED=3]="ACCEPTED"})(K2||(K2={}));var z2;(function(e){e[e.UNKNOWN_CHANNEL_TYPE=0]="UNKNOWN_CHANNEL_TYPE",e[e.IM=1]="IM",e[e.MPIM=2]="MPIM",e[e.SHARED_CHANNEL=3]="SHARED_CHANNEL",e[e.PRIVATE_CHANNEL=4]="PRIVATE_CHANNEL",e[e.GENERAL_CHANNEL=5]="GENERAL_CHANNEL",e[e.CHANNEL=6]="CHANNEL"})(z2||(z2={}));var D2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.CLASSIFY_AND_DISTILL=1]="CLASSIFY_AND_DISTILL",e[e.ORIENTATION=2]="ORIENTATION",e[e.MEMORY_ACCEPTANCE=3]="MEMORY_ACCEPTANCE"})(D2||(D2={}));var L2;(function(e){e[e.UNKNOWN_LATENCY_TYPE=0]="UNKNOWN_LATENCY_TYPE",e[e.CREATE_AGENT=1]="CREATE_AGENT",e[e.RESUME_AGENT=2]="RESUME_AGENT"})(L2||(L2={}));var H2;(function(e){e[e.UNKNOWN_NEW_THREAD_BUTTON_ACTION=0]="UNKNOWN_NEW_THREAD_BUTTON_ACTION",e[e.CLICK=1]="CLICK",e[e.OPEN=2]="OPEN",e[e.CLOSE=3]="CLOSE"})(H2||(H2={}));var M2;(function(e){e[e.UNKNOWN_THREAD_TYPE=0]="UNKNOWN_THREAD_TYPE",e[e.CHAT=1]="CHAT",e[e.AGENT=2]="AGENT",e[e.REMOTE_AGENT=3]="REMOTE_AGENT"})(M2||(M2={}));var O2;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.COMPLETED=1]="COMPLETED",e[e.FAILED=2]="FAILED"})(O2||(O2={}));var j2;(function(e){e[e.UNKNOWN_SETUP_WINDOW_ACTION=0]="UNKNOWN_SETUP_WINDOW_ACTION",e[e.OPEN=1]="OPEN",e[e.CLOSE=2]="CLOSE",e[e.SELECT_REPO=3]="SELECT_REPO",e[e.SELECT_BRANCH=4]="SELECT_BRANCH",e[e.SELECT_SETUP_SCRIPT=5]="SELECT_SETUP_SCRIPT",e[e.AUTO_GENERATE_SETUP_SCRIPT=6]="AUTO_GENERATE_SETUP_SCRIPT",e[e.MANUALLY_CREATE_SETUP_SCRIPT=7]="MANUALLY_CREATE_SETUP_SCRIPT",e[e.TYPE_IN_PROMPT_WINDOW=8]="TYPE_IN_PROMPT_WINDOW",e[e.CLICK_REWRITE_PROMPT=9]="CLICK_REWRITE_PROMPT",e[e.ENABLE_NOTIFICATIONS=10]="ENABLE_NOTIFICATIONS",e[e.DISABLE_NOTIFICATIONS=11]="DISABLE_NOTIFICATIONS",e[e.CLICK_CREATE_AGENT=12]="CLICK_CREATE_AGENT"})(j2||(j2={}));var P2;(function(e){e[e.UNKNOWN_AGENT_LIST_ACTION=0]="UNKNOWN_AGENT_LIST_ACTION",e[e.OPEN=1]="OPEN",e[e.CLOSE=2]="CLOSE",e[e.SELECT_AGENT=3]="SELECT_AGENT",e[e.DELETE_AGENT=4]="DELETE_AGENT",e[e.PIN_AGENT=5]="PIN_AGENT",e[e.UNPIN_AGENT=6]="UNPIN_AGENT"})(P2||(P2={}));var q2;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.MANUALLY_CREATED=1]="MANUALLY_CREATED",e[e.AUTO=2]="AUTO",e[e.SELECTED_DIRECTORY=3]="SELECTED_DIRECTORY",e[e.SELECTED_FILE=4]="SELECTED_FILE"})(q2||(q2={}));var $2;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.CLICKED=1]="CLICKED",e[e.REMOTE_SESSION_STARTED=2]="REMOTE_SESSION_STARTED"})($2||($2={}));var e0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ADD_TASK=1]="ADD_TASK",e[e.ADD_SUBTASK=2]="ADD_SUBTASK",e[e.UPDATE_TASK_STATUS=3]="UPDATE_TASK_STATUS",e[e.UPDATE_TASK_NAME=4]="UPDATE_TASK_NAME",e[e.UPDATE_TASK_DESCRIPTION=5]="UPDATE_TASK_DESCRIPTION",e[e.REORGANIZE_TASK_LIST=6]="REORGANIZE_TASK_LIST",e[e.DELETE_TASK=7]="DELETE_TASK",e[e.RUN_SINGLE_TASK=8]="RUN_SINGLE_TASK",e[e.RUN_ALL_TASKS=9]="RUN_ALL_TASKS",e[e.VIEW_TASK_LIST=10]="VIEW_TASK_LIST",e[e.EXPORT_TASK_LIST=11]="EXPORT_TASK_LIST",e[e.IMPORT_TASK_LIST=12]="IMPORT_TASK_LIST",e[e.SYNC_TASK_LIST=13]="SYNC_TASK_LIST"})(e0||(e0={}));var t0;(function(e){e[e.UNKNOWN_TRIGGER=0]="UNKNOWN_TRIGGER",e[e.USER=1]="USER",e[e.AGENT=2]="AGENT"})(t0||(t0={}));var n0;(function(e){e[e.UNKNOWN_REASON=0]="UNKNOWN_REASON",e[e.UNDO=1]="UNDO",e[e.REDO=2]="REDO"})(n0||(n0={}));var r0;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TENANT_NOT_IN_SHARD=1]="TENANT_NOT_IN_SHARD"})(r0||(r0={}));var o0;(function(e){e[e.KIND_UNSPECIFIED=0]="KIND_UNSPECIFIED",e[e.INITIAL_SESSION=1]="INITIAL_SESSION",e[e.DATA_CHANNEL_EVENT=2]="DATA_CHANNEL_EVENT"})(o0||(o0={}));var i0;(function(e){e[e.UNSET=0]="UNSET",e[e.POSITIVE=1]="POSITIVE",e[e.NEGATIVE=2]="NEGATIVE"})(i0||(i0={}));var s0;(function(e){e[e.UNKNOWN_INSTALL_EVENT_TYPE=0]="UNKNOWN_INSTALL_EVENT_TYPE",e[e.UNINSTALL=1]="UNINSTALL",e[e.INSTALL=2]="INSTALL"})(s0||(s0={}));var l0;(function(e){e[e.UNKNOWN_REQUEST_TYPE=0]="UNKNOWN_REQUEST_TYPE",e[e.COMPLETION=1]="COMPLETION",e[e.EDIT=2]="EDIT",e[e.CHAT=3]="CHAT",e[e.EXTENSION_ERROR=4]="EXTENSION_ERROR",e[e.SLACKBOT_CHAT=6]="SLACKBOT_CHAT",e[e.SHARE_SAVE_CHAT=7]="SHARE_SAVE_CHAT",e[e.SHARE_GET_CHAT=8]="SHARE_GET_CHAT",e[e.AUTOFIX_CHECK=9]="AUTOFIX_CHECK",e[e.AUTOFIX_PLAN=10]="AUTOFIX_PLAN",e[e.LLM_GENERATE=11]="LLM_GENERATE",e[e.REMOTE_TOOL_CALL=12]="REMOTE_TOOL_CALL",e[e.REMOTE_AGENT=13]="REMOTE_AGENT",e[e.AGENT_CHAT=14]="AGENT_CHAT",e[e.LINEAR_OAUTH=15]="LINEAR_OAUTH",e[e.MEMORIES=16]="MEMORIES",e[e.ORIENTATION=17]="ORIENTATION",e[e.MEMORIES_COMPRESSION=18]="MEMORIES_COMPRESSION",e[e.REMOTE_AGENT_CHAT=19]="REMOTE_AGENT_CHAT",e[e.REMOTE_AGENT_LOG=20]="REMOTE_AGENT_LOG",e[e.CLI_AGENT_CHAT=21]="CLI_AGENT_CHAT",e[e.TOKEN_FROM_CODE=22]="TOKEN_FROM_CODE",e[e.CLI_AGENT_CHAT_NONINTERACTIVE=23]="CLI_AGENT_CHAT_NONINTERACTIVE",e[e.CHAT_INPUT_COMPLETION=24]="CHAT_INPUT_COMPLETION",e[e.CODE_REVIEW=25]="CODE_REVIEW",e[e.REMOTE_MCP_SERVER_TOOL_CALL=26]="REMOTE_MCP_SERVER_TOOL_CALL",e[e.DYNAMIC_CLIENT_REGISTRATION=27]="DYNAMIC_CLIENT_REGISTRATION",e[e.AGENTIC_SLACK_BOT=28]="AGENTIC_SLACK_BOT",e[e.CONTEXT_ENGINE_SDK_CHAT=29]="CONTEXT_ENGINE_SDK_CHAT",e[e.CONTEXT_ENGINE_MCP_CHAT=30]="CONTEXT_ENGINE_MCP_CHAT",e[e.POSEIDON_CLI_AGENT_CHAT=31]="POSEIDON_CLI_AGENT_CHAT",e[e.VOICE=32]="VOICE"})(l0||(l0={}));var a0;(function(e){e[e.UNKNOWN_RETRIEVAL_TYPE=0]="UNKNOWN_RETRIEVAL_TYPE",e[e.DENSE=1]="DENSE",e[e.SIGNATURE=2]="SIGNATURE",e[e.RECENCY=3]="RECENCY",e[e.USER_GUIDED=4]="USER_GUIDED",e[e.DIFF=5]="DIFF"})(a0||(a0={}));var c0;(function(e){e[e.UNKNOWN_SOURCE_CONTROL=0]="UNKNOWN_SOURCE_CONTROL",e[e.GIT=1]="GIT",e[e.GITHUB=2]="GITHUB"})(c0||(c0={}));var u0=k("CjdzZXJ2aWNlcy9saWIvZ3JwYy9jb25uZWN0X2ZvcndhcmQvZm9yd2FyZF9vcHRpb25zLnByb3RvEg9mb3J3YXJkX29wdGlvbnMiRAoXUmVxdWlyZWRGZWF0dXJlRmxhZ0Jvb2wSEQoJZmxhZ19uYW1lGAEgASgJEhYKDmV4cGVjdGVkX3ZhbHVlGAIgASgIIkYKGVJlcXVpcmVkRmVhdHVyZUZsYWdTdHJpbmcSEQoJZmxhZ19uYW1lGAEgASgJEhYKDmV4cGVjdGVkX3ZhbHVlGAIgASgJOlAKE2ZvcndhcmRfbWV0aG9kX25hbWUSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxjThgMgASgJUhFmb3J3YXJkTWV0aG9kTmFtZTphChxza2lwX3RlbmFudF91c2VyX2VuZm9yY2VtZW50Eh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMY1IYDIAEoCFIZc2tpcFRlbmFudFVzZXJFbmZvcmNlbWVudDpZChhza2lwX3VzZXJfaWRfZW5mb3JjZW1lbnQSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxjVhgMgASgIUhVza2lwVXNlcklkRW5mb3JjZW1lbnQ6SQoPZW50ZXJwcmlzZV9vbmx5Eh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMY1oYDIAEoCFIOZW50ZXJwcmlzZU9ubHk6hwEKGnJlcXVpcmVkX2ZlYXR1cmVfZmxhZ19ib29sEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMY14YDIAMoCzIoLmZvcndhcmRfb3B0aW9ucy5SZXF1aXJlZEZlYXR1cmVGbGFnQm9vbFIXcmVxdWlyZWRGZWF0dXJlRmxhZ0Jvb2w6jQEKHHJlcXVpcmVkX2ZlYXR1cmVfZmxhZ19zdHJpbmcSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxjYhgMgAygLMiouZm9yd2FyZF9vcHRpb25zLlJlcXVpcmVkRmVhdHVyZUZsYWdTdHJpbmdSGXJlcXVpcmVkRmVhdHVyZUZsYWdTdHJpbmc6QwoMc2tpcF9jb2RlZ2VuEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMY2YYDIAEoCFILc2tpcENvZGVnZW46PwoKYWRtaW5fb25seRIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGNqGAyABKAhSCWFkbWluT25seTpRChNyZXF1aXJlZF9wZXJtaXNzaW9uEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMY24YDIAMoCVIScmVxdWlyZWRQZXJtaXNzaW9uYgZwcm90bzM",[tn]);var Oa=k("CihzZXJ2aWNlcy93ZWJfcnBjX3Byb3h5L2ZsZWV0X3Byb3h5LnByb3RvEg13ZWJfcnBjX3Byb3h5IiYKFEZsZWV0U3RyaW5nTGlzdFZhbHVlEg4KBnZhbHVlcxgBIAMoCSLxAQoXRmxlZXRDb25maWd1cmF0aW9uVmFsdWUSCwoDa2V5GAEgASgJEhQKCnRleHRfdmFsdWUYAiABKAlIABJAChFzdHJpbmdfbGlzdF92YWx1ZRgDIAEoCzIjLndlYl9ycGNfcHJveHkuRmxlZXRTdHJpbmdMaXN0VmFsdWVIABIYCg5lbnZpcm9ubWVudF9pZBgEIAEoCUgAEhoKEHNlY3JldF9yZWZlcmVuY2UYBSABKAlIABIZCg9pbnRlZ3JhdGlvbl9rZXkYBiABKAlIABIXCg1ib29sZWFuX3ZhbHVlGAcgASgISABCBwoFdmFsdWUilQIKFUFwcGx5RmxlZXRGbG93UmVxdWVzdBIQCghzcGFjZV9pZBgBIAEoCRIQCghmbG93X2tleRgCIAEoCRITCgt2YXJpYW50X2tleRgDIAEoCRIXCg9jYXRhbG9nX3ZlcnNpb24YBCABKAUSPQoNY29uZmlndXJhdGlvbhgFIAMoCzImLndlYl9ycGNfcHJveHkuRmxlZXRDb25maWd1cmF0aW9uVmFsdWUSFwoPaWRlbXBvdGVuY3lfa2V5GAYgASgJEjIKC3J1bl9hc19tb2RlGAcgASgOMh0ud2ViX3JwY19wcm94eS5GbGVldFJ1bkFzTW9kZRIeChZzZWxlY3RlZF9hY3Rvcl91c2VyX2lkGAggASgJIjsKFEZsZWV0SW5zdGFsbGVkRXhwZXJ0EhAKCHNsb3Rfa2V5GAEgASgJEhEKCWV4cGVydF9pZBgCIAEoCSLwAQoWQXBwbHlGbGVldEZsb3dSZXNwb25zZRIXCg9pbnN0YWxsYXRpb25faWQYASABKAkSLwoGc3RhdHVzGAIgASgOMh8ud2ViX3JwY19wcm94eS5GbGVldEFwcGx5U3RhdHVzEhEKCWV4cGVydF9pZBgDIAEoCRIZChFpZGVtcG90ZW50X3JlcGxheRgEIAEoCBI+ChFpbnN0YWxsZWRfZXhwZXJ0cxgFIAMoCzIjLndlYl9ycGNfcHJveHkuRmxlZXRJbnN0YWxsZWRFeHBlcnQSHgoWZGlzYWJsZWRfdHJpZ2dlcl9jb3VudBgGIAEoBSJBChNBcm1GbGVldEZsb3dSZXF1ZXN0EhcKD2luc3RhbGxhdGlvbl9pZBgBIAEoCRIRCgljb25maXJtZWQYAiABKAgidgoUQXJtRmxlZXRGbG93UmVzcG9uc2USFwoPaW5zdGFsbGF0aW9uX2lkGAEgASgJEg0KBWFybWVkGAIgASgIEhsKE2FybWVkX3RyaWdnZXJfY291bnQYAyABKAUSGQoRaWRlbXBvdGVudF9yZXBsYXkYBCABKAgiSAoaRGVhY3RpdmF0ZUZsZWV0Rmxvd1JlcXVlc3QSFwoPaW5zdGFsbGF0aW9uX2lkGAEgASgJEhEKCWNvbmZpcm1lZBgCIAEoCCJ0ChtEZWFjdGl2YXRlRmxlZXRGbG93UmVzcG9uc2USFwoPaW5zdGFsbGF0aW9uX2lkGAEgASgJEiEKGWRlYWN0aXZhdGVkX3RyaWdnZXJfY291bnQYAiABKAUSGQoRaWRlbXBvdGVudF9yZXBsYXkYAyABKAgiRwoZVW5pbnN0YWxsRmxlZXRGbG93UmVxdWVzdBIXCg9pbnN0YWxsYXRpb25faWQYASABKAkSEQoJY29uZmlybWVkGAIgASgIIvUBChpVbmluc3RhbGxGbGVldEZsb3dSZXNwb25zZRIXCg9pbnN0YWxsYXRpb25faWQYASABKAkSHAoUZGVsZXRlZF9leHBlcnRfY291bnQYAiABKAUSHgoWZGVsZXRlZF93b3JrZmxvd19jb3VudBgDIAEoBRIZChFpZGVtcG90ZW50X3JlcGxheRgEIAEoCBJLChNyZW1haW5pbmdfcmVzb3VyY2VzGAUgAygLMi4ud2ViX3JwY19wcm94eS5GbGVldFVuaW5zdGFsbFJlbWFpbmluZ1Jlc291cmNlEhgKEGNsZWFudXBfY29tcGxldGUYBiABKAgiTQofRmxlZXRVbmluc3RhbGxSZW1haW5pbmdSZXNvdXJjZRIVCg1yZXNvdXJjZV90eXBlGAEgASgJEhMKC3Jlc291cmNlX2lkGAIgASgJIvABChlDb25maWd1cmVGbGVldEZsb3dSZXF1ZXN0EhcKD2luc3RhbGxhdGlvbl9pZBgBIAEoCRI9Cg1jb25maWd1cmF0aW9uGAIgAygLMiYud2ViX3JwY19wcm94eS5GbGVldENvbmZpZ3VyYXRpb25WYWx1ZRIjChtleHBlY3RlZF9jb25maWd1cmF0aW9uX2hhc2gYBSABKAkSPwoJaW5zdGFuY2VzGAMgAygLMiwud2ViX3JwY19wcm94eS5GbGVldEluc3RhbGxhYmxlSW5zdGFuY2VJbnB1dBIVCg1oYXNfaW5zdGFuY2VzGAQgASgIIooBCh1GbGVldEluc3RhbGxhYmxlSW5zdGFuY2VJbnB1dBITCgtpbnN0YW5jZV9pZBgBIAEoCRIXCg9pbnN0YWxsYWJsZV9rZXkYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEg8KB2VuYWJsZWQYBCABKAgSFAoMZXh0cmFfcHJvbXB0GAUgASgJIvYBChpDb25maWd1cmVGbGVldEZsb3dSZXNwb25zZRIXCg9pbnN0YWxsYXRpb25faWQYASABKAkSQwoTY29uZmlndXJhdGlvbl9zdGF0ZRgCIAEoDjImLndlYl9ycGNfcHJveHkuRmxlZXRDb25maWd1cmF0aW9uU3RhdGUSIgoabWlzc2luZ19jb25maWd1cmF0aW9uX2tleXMYAyADKAkSOgoJaW5zdGFuY2VzGAQgAygLMicud2ViX3JwY19wcm94eS5GbGVldEluc3RhbGxhYmxlSW5zdGFuY2USGgoSY29uZmlndXJhdGlvbl9oYXNoGAUgASgJIkQKFlJlcGFpckZsZWV0Rmxvd1JlcXVlc3QSFwoPaW5zdGFsbGF0aW9uX2lkGAEgASgJEhEKCWNvbmZpcm1lZBgCIAEoCCJ4ChdSZXBhaXJGbGVldEZsb3dSZXNwb25zZRIXCg9pbnN0YWxsYXRpb25faWQYASABKAkSHQoVcmVzdG9yZWRfZXhwZXJ0X2NvdW50GAIgASgFEiUKHXJlc3RvcmVkX3dvcmtmbG93X2FjdG9yX2NvdW50GAMgASgFIlcKHEdldEZsZWV0Rmxvd0xpZmVjeWNsZVJlcXVlc3QSEAoIc3BhY2VfaWQYASABKAkSEAoIZmxvd19rZXkYAiABKAkSEwoLdmFyaWFudF9rZXkYAyABKAkitwEKEkZsZWV0TWFuYWdlZEV4cGVydBIQCghzbG90X2tleRgBIAEoCRIRCglleHBlcnRfaWQYAiABKAkSDwoHbWFuYWdlZBgDIAEoCBIVCg1hY3Rvcl91c2VyX2lkGAQgASgJEhgKEGFjdG9yX292ZXJyaWRkZW4YBSABKAgSDAoEbmFtZRgGIAEoCRITCgtpbnN0YW5jZV9pZBgHIAEoCRIXCg9pbnN0YWxsYWJsZV9rZXkYCCABKAkizAYKEkZsZWV0Rmxvd0xpZmVjeWNsZRIXCg9pbnN0YWxsYXRpb25faWQYASABKAkSEAoIZmxvd19rZXkYAiABKAkSEwoLdmFyaWFudF9rZXkYAyABKAkSLwoGc3RhdHVzGAQgASgOMh8ud2ViX3JwY19wcm94eS5GbGVldEFwcGx5U3RhdHVzEjIKB2V4cGVydHMYBSADKAsyIS53ZWJfcnBjX3Byb3h5LkZsZWV0TWFuYWdlZEV4cGVydBIeChZkaXNhYmxlZF90cmlnZ2VyX2NvdW50GAYgASgFEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKEW1hbmFnZXJfZXhwZXJ0X2lkGAkgASgJEj8KFGFsbG93ZWRfbmV4dF9hY3Rpb25zGAsgAygOMiEud2ViX3JwY19wcm94eS5GbGVldEFsbG93ZWRBY3Rpb24SQwoTY29uZmlndXJhdGlvbl9zdGF0ZRgMIAEoDjImLndlYl9ycGNfcHJveHkuRmxlZXRDb25maWd1cmF0aW9uU3RhdGUSIgoabWlzc2luZ19jb25maWd1cmF0aW9uX2tleXMYDSADKAkSGAoQcmVwb3NpdG9yeV9zY29wZRgOIAMoCRIXCg90cmlnZ2Vyc19hY3RpdmUYDyABKAgSFQoNYWN0b3JfdXNlcl9pZBgQIAEoCRIyCgtydW5fYXNfbW9kZRgRIAEoDjIdLndlYl9ycGNfcHJveHkuRmxlZXRSdW5Bc01vZGUSGAoQYWN0b3Jfb3ZlcnJpZGRlbhgSIAEoCBIXCg9pZGVtcG90ZW5jeV9rZXkYEyABKAkSMwoLYWN0b3Jfc3RhdGUYFCABKA4yHi53ZWJfcnBjX3Byb3h5LkZsZWV0QWN0b3JTdGF0ZRI6CglpbnN0YW5jZXMYFSADKAsyJy53ZWJfcnBjX3Byb3h5LkZsZWV0SW5zdGFsbGFibGVJbnN0YW5jZRIqCiJ1bmV4cGVjdGVkbHlfZW5hYmxlZF90cmlnZ2VyX2NvdW50GBYgASgFIoUBChhGbGVldEluc3RhbGxhYmxlSW5zdGFuY2USEwoLaW5zdGFuY2VfaWQYASABKAkSFwoPaW5zdGFsbGFibGVfa2V5GAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIEhQKDGV4dHJhX3Byb21wdBgFIAEoCSJZCh1HZXRGbGVldEZsb3dMaWZlY3ljbGVSZXNwb25zZRI4Cg1pbnN0YWxsYXRpb25zGAEgAygLMiEud2ViX3JwY19wcm94eS5GbGVldEZsb3dMaWZlY3ljbGUiMQodTGlzdEZsZWV0SW5zdGFsbGF0aW9uc1JlcXVlc3QSEAoIc3BhY2VfaWQYASABKAkiWgoeTGlzdEZsZWV0SW5zdGFsbGF0aW9uc1Jlc3BvbnNlEjgKDWluc3RhbGxhdGlvbnMYASADKAsyIS53ZWJfcnBjX3Byb3h5LkZsZWV0Rmxvd0xpZmVjeWNsZSI/CiRHZXRGbGVldENvbmZpZ3VyYXRpb25Eb2N1bWVudFJlcXVlc3QSFwoPaW5zdGFsbGF0aW9uX2lkGAEgASgJIscCCiVHZXRGbGVldENvbmZpZ3VyYXRpb25Eb2N1bWVudFJlc3BvbnNlEhcKD2luc3RhbGxhdGlvbl9pZBgBIAEoCRIXCg9jYXRhbG9nX3ZlcnNpb24YAiABKAUSEAoIZmxvd19rZXkYAyABKAkSEwoLdmFyaWFudF9rZXkYBCABKAkSPQoNY29uZmlndXJhdGlvbhgFIAMoCzImLndlYl9ycGNfcHJveHkuRmxlZXRDb25maWd1cmF0aW9uVmFsdWUSOgoJaW5zdGFuY2VzGAYgAygLMicud2ViX3JwY19wcm94eS5GbGVldEluc3RhbGxhYmxlSW5zdGFuY2USGgoSY29uZmlndXJhdGlvbl9oYXNoGAcgASgJEi4KCnVwZGF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIioKFkdldEZsZWV0Q2F0YWxvZ1JlcXVlc3QSEAoIc3BhY2VfaWQYASABKAkizAEKF0dldEZsZWV0Q2F0YWxvZ1Jlc3BvbnNlEj0KDGF2YWlsYWJpbGl0eRgBIAEoDjInLndlYl9ycGNfcHJveHkuRmxlZXRDYXRhbG9nQXZhaWxhYmlsaXR5EhcKD2NhdGFsb2dfdmVyc2lvbhgCIAEoBRInCgVmbG93cxgDIAMoCzIYLndlYl9ycGNfcHJveHkuRmxlZXRGbG93EjAKCmNhdGVnb3JpZXMYBCADKAsyHC53ZWJfcnBjX3Byb3h5LkZsZWV0Q2F0ZWdvcnkiRgoQRmxlZXRSZXF1aXJlbWVudBILCgNrZXkYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIcmVxdWlyZWQYAyABKAgijgEKEUZsZWV0QXZhaWxhYmlsaXR5EjQKBXN0YXRlGAEgASgOMiUud2ViX3JwY19wcm94eS5GbGVldEF2YWlsYWJpbGl0eVN0YXRlEj0KFG1pc3NpbmdfcmVxdWlyZW1lbnRzGAMgAygLMh8ud2ViX3JwY19wcm94eS5GbGVldFJlcXVpcmVtZW50SgQIAhADIlYKDUZsZWV0Q29yZVNsb3QSCwoDa2V5GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCHJlcXVpcmVkGAMgASgIEhEKCWZ1bGZpbGxlZBgEIAEoCCLuAgoMRmxlZXRWYXJpYW50EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEjYKDGF2YWlsYWJpbGl0eRgFIAEoCzIgLndlYl9ycGNfcHJveHkuRmxlZXRBdmFpbGFiaWxpdHkSMAoKY29yZV9zbG90cxgGIAMoCzIcLndlYl9ycGNfcHJveHkuRmxlZXRDb3JlU2xvdBI6Cg9hbGxvd2VkX2FjdGlvbnMYByADKA4yIS53ZWJfcnBjX3Byb3h5LkZsZWV0QWxsb3dlZEFjdGlvbhJDChNpbnN0YWxsYXRpb25fc3RhdHVzGAggASgOMiYud2ViX3JwY19wcm94eS5GbGVldEluc3RhbGxhdGlvblN0YXR1cxIUCgxleHBlcnRfbmFtZXMYCSADKAkSLQoEa2luZBgKIAEoDjIfLndlYl9ycGNfcHJveHkuRmxlZXRWYXJpYW50S2luZCJCChBGbGVldFNldHVwT3B0aW9uEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJImEKE0ZsZWV0U2V0dXBDb25kaXRpb24SCwoDa2V5GAEgASgJEhgKDmJvb2xlYW5fZXF1YWxzGAIgASgISAASFwoNY2hvaWNlX2VxdWFscxgDIAEoCUgAQgoKCGV4cGVjdGVkIqQCCg9GbGVldFNldHVwSW5wdXQSCwoDa2V5GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEjAKBHR5cGUYAyABKA4yIi53ZWJfcnBjX3Byb3h5LkZsZWV0U2V0dXBJbnB1dFR5cGUSEAoIcmVxdWlyZWQYBCABKAgSFQoNZGVmYXVsdF92YWx1ZRgFIAEoCRIwCgdvcHRpb25zGAYgAygLMh8ud2ViX3JwY19wcm94eS5GbGVldFNldHVwT3B0aW9uEjgKDHZpc2libGVfd2hlbhgIIAEoCzIiLndlYl9ycGNfcHJveHkuRmxlZXRTZXR1cENvbmRpdGlvbhIRCgltdWx0aWxpbmUYCSABKAhKBAgHEAhSD2VtcHR5X21lYW5zX2FsbCJAChxGbGVldFBhcnRpY2lwYXRpb25NZXRyaWNQYXJ0EgsKA2tleRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCSKcAQoYRmxlZXRQYXJ0aWNpcGF0aW9uTWV0cmljEj4KCW51bWVyYXRvchgBIAEoCzIrLndlYl9ycGNfcHJveHkuRmxlZXRQYXJ0aWNpcGF0aW9uTWV0cmljUGFydBJACgtkZW5vbWluYXRvchgCIAEoCzIrLndlYl9ycGNfcHJveHkuRmxlZXRQYXJ0aWNpcGF0aW9uTWV0cmljUGFydCLoAQoSRmxlZXRQYXJ0aWNpcGF0aW9uEjMKBG1vZGUYASABKA4yJS53ZWJfcnBjX3Byb3h5LkZsZWV0UGFydGljaXBhdGlvbk1vZGUSOQoHY2FkZW5jZRgCIAEoDjIoLndlYl9ycGNfcHJveHkuRmxlZXRQYXJ0aWNpcGF0aW9uQ2FkZW5jZRIpCgZhY3RvcnMYAyADKA4yGS53ZWJfcnBjX3Byb3h5LkZsZWV0QWN0b3ISNwoGbWV0cmljGAQgASgLMicud2ViX3JwY19wcm94eS5GbGVldFBhcnRpY2lwYXRpb25NZXRyaWMiKgoNRmxlZXRDYXRlZ29yeRILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCSKYBAoJRmxlZXRGbG93EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAYgASgJEjYKDGF2YWlsYWJpbGl0eRgHIAEoCzIgLndlYl9ycGNfcHJveHkuRmxlZXRBdmFpbGFiaWxpdHkSMAoKY29yZV9zbG90cxgJIAMoCzIcLndlYl9ycGNfcHJveHkuRmxlZXRDb3JlU2xvdBItCgh2YXJpYW50cxgKIAMoCzIbLndlYl9ycGNfcHJveHkuRmxlZXRWYXJpYW50EjQKDHNldHVwX2lucHV0cxgLIAMoCzIeLndlYl9ycGNfcHJveHkuRmxlZXRTZXR1cElucHV0EjgKDXBhcnRpY2lwYXRpb24YDCABKAsyIS53ZWJfcnBjX3Byb3h5LkZsZWV0UGFydGljaXBhdGlvbhI6Cg9hbGxvd2VkX2FjdGlvbnMYDSADKA4yIS53ZWJfcnBjX3Byb3h5LkZsZWV0QWxsb3dlZEFjdGlvbhJDChNpbnN0YWxsYXRpb25fc3RhdHVzGA4gASgOMiYud2ViX3JwY19wcm94eS5GbGVldEluc3RhbGxhdGlvblN0YXR1cxIUCgxjYXRlZ29yeV9rZXkYDyABKAkSNQoMaW5zdGFsbGFibGVzGBAgAygLMh8ud2ViX3JwY19wcm94eS5GbGVldEluc3RhbGxhYmxlSgQICBAJIqcCChBGbGVldEluc3RhbGxhYmxlEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEj8KC2NhcmRpbmFsaXR5GAQgASgOMioud2ViX3JwY19wcm94eS5GbGVldEluc3RhbGxhYmxlQ2FyZGluYWxpdHkSHQoVc3VwcG9ydHNfZXh0cmFfcHJvbXB0GAUgASgIEhwKFGluc3RhbGxlZF9ieV9kZWZhdWx0GAYgASgIEjQKDHNldHVwX2lucHV0cxgHIAMoCzIeLndlYl9ycGNfcHJveHkuRmxlZXRTZXR1cElucHV0EhQKDHZhcmlhbnRfa2V5cxgIIAMoCRIZChFleHRyYV9pbnB1dF9sYWJlbBgJIAEoCSqpAQoORmxlZXRSdW5Bc01vZGUSIQodRkxFRVRfUlVOX0FTX01PREVfVU5TUEVDSUZJRUQQABIdChlGTEVFVF9SVU5fQVNfTU9ERV9NQU5BR0VEEAESJQohRkxFRVRfUlVOX0FTX01PREVfSU5TVEFMTElOR19VU0VSEAISLgoqRkxFRVRfUlVOX0FTX01PREVfRVhJU1RJTkdfU0VSVklDRV9BQ0NPVU5UEAMqeAoPRmxlZXRBY3RvclN0YXRlEiEKHUZMRUVUX0FDVE9SX1NUQVRFX1VOU1BFQ0lGSUVEEAASHwobRkxFRVRfQUNUT1JfU1RBVEVfQVZBSUxBQkxFEAESIQodRkxFRVRfQUNUT1JfU1RBVEVfVU5BVkFJTEFCTEUQAirJAQoQRmxlZXRBcHBseVN0YXR1cxIiCh5GTEVFVF9BUFBMWV9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtGTEVFVF9BUFBMWV9TVEFUVVNfQVBQTFlJTkcQARIjCh9GTEVFVF9BUFBMWV9TVEFUVVNfUkVBRFlfVE9fQVJNEAISJwojRkxFRVRfQVBQTFlfU1RBVFVTX0ZBSUxFRF9SRVRSWUFCTEUQAxIcChhGTEVFVF9BUFBMWV9TVEFUVVNfQVJNRUQQBSIECAQQBCrCAQoYRmxlZXRDYXRhbG9nQXZhaWxhYmlsaXR5EioKJkZMRUVUX0NBVEFMT0dfQVZBSUxBQklMSVRZX1VOU1BFQ0lGSUVEEAASKAokRkxFRVRfQ0FUQUxPR19BVkFJTEFCSUxJVFlfQVZBSUxBQkxFEAESJAogRkxFRVRfQ0FUQUxPR19BVkFJTEFCSUxJVFlfU1RBTEUQAhIqCiZGTEVFVF9DQVRBTE9HX0FWQUlMQUJJTElUWV9VTkFWQUlMQUJMRRADKskBChZGbGVldEF2YWlsYWJpbGl0eVN0YXRlEigKJEZMRUVUX0FWQUlMQUJJTElUWV9TVEFURV9VTlNQRUNJRklFRBAAEiYKIkZMRUVUX0FWQUlMQUJJTElUWV9TVEFURV9BVkFJTEFCTEUQARIxCi1GTEVFVF9BVkFJTEFCSUxJVFlfU1RBVEVfQkxPQ0tFRF9SRVFVSVJFTUVOVFMQAhIqCiZGTEVFVF9BVkFJTEFCSUxJVFlfU1RBVEVfTk9UX0FWQUlMQUJMRRADKsoCChNGbGVldFNldHVwSW5wdXRUeXBlEiYKIkZMRUVUX1NFVFVQX0lOUFVUX1RZUEVfVU5TUEVDSUZJRUQQABIfChtGTEVFVF9TRVRVUF9JTlBVVF9UWVBFX1RFWFQQARImCiJGTEVFVF9TRVRVUF9JTlBVVF9UWVBFX1NUUklOR19MSVNUEAISJgoiRkxFRVRfU0VUVVBfSU5QVVRfVFlQRV9FTlZJUk9OTUVOVBADEisKJ0ZMRUVUX1NFVFVQX0lOUFVUX1RZUEVfU0VDUkVUX1JFRkVSRU5DRRAEEiYKIkZMRUVUX1NFVFVQX0lOUFVUX1RZUEVfSU5URUdSQVRJT04QBRIiCh5GTEVFVF9TRVRVUF9JTlBVVF9UWVBFX0JPT0xFQU4QBhIhCh1GTEVFVF9TRVRVUF9JTlBVVF9UWVBFX0NIT0lDRRAHKuYBChZGbGVldFBhcnRpY2lwYXRpb25Nb2RlEigKJEZMRUVUX1BBUlRJQ0lQQVRJT05fTU9ERV9VTlNQRUNJRklFRBAAEigKJEZMRUVUX1BBUlRJQ0lQQVRJT05fTU9ERV9JTlRFUkFDVElWRRABEioKJkZMRUVUX1BBUlRJQ0lQQVRJT05fTU9ERV9IVU1BTl9PTl9MT09QEAISJwojRkxFRVRfUEFSVElDSVBBVElPTl9NT0RFX0FVVE9OT01PVVMQAxIjCh9GTEVFVF9QQVJUSUNJUEFUSU9OX01PREVfSFlCUklEEAQq+AEKGUZsZWV0UGFydGljaXBhdGlvbkNhZGVuY2USKwonRkxFRVRfUEFSVElDSVBBVElPTl9DQURFTkNFX1VOU1BFQ0lGSUVEEAASKQolRkxFRVRfUEFSVElDSVBBVElPTl9DQURFTkNFX09OX0RFTUFORBABEiwKKEZMRUVUX1BBUlRJQ0lQQVRJT05fQ0FERU5DRV9FVkVOVF9EUklWRU4QAhIpCiVGTEVFVF9QQVJUSUNJUEFUSU9OX0NBREVOQ0VfU0NIRURVTEVEEAMSKgomRkxFRVRfUEFSVElDSVBBVElPTl9DQURFTkNFX0NPTlRJTlVPVVMQBCrFAQoKRmxlZXRBY3RvchIbChdGTEVFVF9BQ1RPUl9VTlNQRUNJRklFRBAAEhsKF0ZMRUVUX0FDVE9SX0VOR0lORUVSSU5HEAESFwoTRkxFRVRfQUNUT1JfUFJPRFVDVBACEhoKFkZMRUVUX0FDVE9SX09QRVJBVElPTlMQAxIYChRGTEVFVF9BQ1RPUl9CVVNJTkVTUxAEEhcKE0ZMRUVUX0FDVE9SX1NVUFBPUlQQBRIVChFGTEVFVF9BQ1RPUl9TQUxFUxAGKuQBChJGbGVldEFsbG93ZWRBY3Rpb24SJAogRkxFRVRfQUxMT1dFRF9BQ1RJT05fVU5TUEVDSUZJRUQQABIdChlGTEVFVF9BTExPV0VEX0FDVElPTl9WSUVXEAESIAocRkxFRVRfQUxMT1dFRF9BQ1RJT05fSU5TVEFMTBACEhwKGEZMRUVUX0FMTE9XRURfQUNUSU9OX0FSTRAEEiIKHkZMRUVUX0FMTE9XRURfQUNUSU9OX0NPTkZJR1VSRRAFEh8KG0ZMRUVUX0FMTE9XRURfQUNUSU9OX1JFUEFJUhAGIgQIAxADKlIKEEZsZWV0VmFyaWFudEtpbmQSIgoeRkxFRVRfVkFSSUFOVF9LSU5EX1VOU1BFQ0lGSUVEEAASGgoWRkxFRVRfVkFSSUFOVF9LSU5EX1NDTRABKroBChdGbGVldENvbmZpZ3VyYXRpb25TdGF0ZRIpCiVGTEVFVF9DT05GSUdVUkFUSU9OX1NUQVRFX1VOU1BFQ0lGSUVEEAASIwofRkxFRVRfQ09ORklHVVJBVElPTl9TVEFURV9SRUFEWRABEigKJEZMRUVUX0NPTkZJR1VSQVRJT05fU1RBVEVfSU5DT01QTEVURRACEiUKIUZMRUVUX0NPTkZJR1VSQVRJT05fU1RBVEVfVU5LTk9XThADKqACChdGbGVldEluc3RhbGxhdGlvblN0YXR1cxIpCiVGTEVFVF9JTlNUQUxMQVRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASJQohRkxFRVRfSU5TVEFMTEFUSU9OX1NUQVRVU19VTktOT1dOEAESKwonRkxFRVRfSU5TVEFMTEFUSU9OX1NUQVRVU19OT1RfSU5TVEFMTEVEEAISMQotRkxFRVRfSU5TVEFMTEFUSU9OX1NUQVRVU19QQVJUSUFMTFlfSU5TVEFMTEVEEAMSJwojRkxFRVRfSU5TVEFMTEFUSU9OX1NUQVRVU19JTlNUQUxMRUQQBBIqCiZGTEVFVF9JTlNUQUxMQVRJT05fU1RBVFVTX05FRURTX1JFUEFJUhAFKt0BChtGbGVldEluc3RhbGxhYmxlQ2FyZGluYWxpdHkSLQopRkxFRVRfSU5TVEFMTEFCTEVfQ0FSRElOQUxJVFlfVU5TUEVDSUZJRUQQABIrCidGTEVFVF9JTlNUQUxMQUJMRV9DQVJESU5BTElUWV9TSU5HTEVUT04QARI0CjBGTEVFVF9JTlNUQUxMQUJMRV9DQVJESU5BTElUWV9PUFRJT05BTF9TSU5HTEVUT04QAhIsCihGTEVFVF9JTlNUQUxMQUJMRV9DQVJESU5BTElUWV9SRVBFQVRBQkxFEAMy2Q4KEUZsZWV0UHJveHlTZXJ2aWNlEqoBCg9HZXRGbGVldENhdGFsb2cSJS53ZWJfcnBjX3Byb3h5LkdldEZsZWV0Q2F0YWxvZ1JlcXVlc3QaJi53ZWJfcnBjX3Byb3h5LkdldEZsZWV0Q2F0YWxvZ1Jlc3BvbnNlIkiatRglcG9zZWlkb24uRmxlZXRTZXJ2aWNlL0dldEZsZWV0Q2F0YWxvZ7q1GBsKF2ZsZWV0X3dvcmtmbG93c19lbmFibGVkEAESpgEKDkFwcGx5RmxlZXRGbG93EiQud2ViX3JwY19wcm94eS5BcHBseUZsZWV0Rmxvd1JlcXVlc3QaJS53ZWJfcnBjX3Byb3h5LkFwcGx5RmxlZXRGbG93UmVzcG9uc2UiR5q1GCRwb3NlaWRvbi5GbGVldFNlcnZpY2UvQXBwbHlGbGVldEZsb3e6tRgbChdmbGVldF93b3JrZmxvd3NfZW5hYmxlZBABEp4BCgxBcm1GbGVldEZsb3cSIi53ZWJfcnBjX3Byb3h5LkFybUZsZWV0Rmxvd1JlcXVlc3QaIy53ZWJfcnBjX3Byb3h5LkFybUZsZWV0Rmxvd1Jlc3BvbnNlIkWatRgicG9zZWlkb24uRmxlZXRTZXJ2aWNlL0FybUZsZWV0Rmxvd7q1GBsKF2ZsZWV0X3dvcmtmbG93c19lbmFibGVkEAESugEKE0RlYWN0aXZhdGVGbGVldEZsb3cSKS53ZWJfcnBjX3Byb3h5LkRlYWN0aXZhdGVGbGVldEZsb3dSZXF1ZXN0Gioud2ViX3JwY19wcm94eS5EZWFjdGl2YXRlRmxlZXRGbG93UmVzcG9uc2UiTJq1GClwb3NlaWRvbi5GbGVldFNlcnZpY2UvRGVhY3RpdmF0ZUZsZWV0Rmxvd7q1GBsKF2ZsZWV0X3dvcmtmbG93c19lbmFibGVkEAEStgEKElVuaW5zdGFsbEZsZWV0RmxvdxIoLndlYl9ycGNfcHJveHkuVW5pbnN0YWxsRmxlZXRGbG93UmVxdWVzdBopLndlYl9ycGNfcHJveHkuVW5pbnN0YWxsRmxlZXRGbG93UmVzcG9uc2UiS5q1GChwb3NlaWRvbi5GbGVldFNlcnZpY2UvVW5pbnN0YWxsRmxlZXRGbG93urUYGwoXZmxlZXRfd29ya2Zsb3dzX2VuYWJsZWQQARK2AQoSQ29uZmlndXJlRmxlZXRGbG93Eigud2ViX3JwY19wcm94eS5Db25maWd1cmVGbGVldEZsb3dSZXF1ZXN0Gikud2ViX3JwY19wcm94eS5Db25maWd1cmVGbGVldEZsb3dSZXNwb25zZSJLmrUYKHBvc2VpZG9uLkZsZWV0U2VydmljZS9Db25maWd1cmVGbGVldEZsb3e6tRgbChdmbGVldF93b3JrZmxvd3NfZW5hYmxlZBABEqoBCg9SZXBhaXJGbGVldEZsb3cSJS53ZWJfcnBjX3Byb3h5LlJlcGFpckZsZWV0Rmxvd1JlcXVlc3QaJi53ZWJfcnBjX3Byb3h5LlJlcGFpckZsZWV0Rmxvd1Jlc3BvbnNlIkiatRglcG9zZWlkb24uRmxlZXRTZXJ2aWNlL1JlcGFpckZsZWV0Rmxvd7q1GBsKF2ZsZWV0X3dvcmtmbG93c19lbmFibGVkEAESwgEKFUdldEZsZWV0Rmxvd0xpZmVjeWNsZRIrLndlYl9ycGNfcHJveHkuR2V0RmxlZXRGbG93TGlmZWN5Y2xlUmVxdWVzdBosLndlYl9ycGNfcHJveHkuR2V0RmxlZXRGbG93TGlmZWN5Y2xlUmVzcG9uc2UiTpq1GCtwb3NlaWRvbi5GbGVldFNlcnZpY2UvR2V0RmxlZXRGbG93TGlmZWN5Y2xlurUYGwoXZmxlZXRfd29ya2Zsb3dzX2VuYWJsZWQQARLGAQoWTGlzdEZsZWV0SW5zdGFsbGF0aW9ucxIsLndlYl9ycGNfcHJveHkuTGlzdEZsZWV0SW5zdGFsbGF0aW9uc1JlcXVlc3QaLS53ZWJfcnBjX3Byb3h5Lkxpc3RGbGVldEluc3RhbGxhdGlvbnNSZXNwb25zZSJPmrUYLHBvc2VpZG9uLkZsZWV0U2VydmljZS9MaXN0RmxlZXRJbnN0YWxsYXRpb25zurUYGwoXZmxlZXRfd29ya2Zsb3dzX2VuYWJsZWQQARLiAQodR2V0RmxlZXRDb25maWd1cmF0aW9uRG9jdW1lbnQSMy53ZWJfcnBjX3Byb3h5LkdldEZsZWV0Q29uZmlndXJhdGlvbkRvY3VtZW50UmVxdWVzdBo0LndlYl9ycGNfcHJveHkuR2V0RmxlZXRDb25maWd1cmF0aW9uRG9jdW1lbnRSZXNwb25zZSJWmrUYM3Bvc2VpZG9uLkZsZWV0U2VydmljZS9HZXRGbGVldENvbmZpZ3VyYXRpb25Eb2N1bWVudLq1GBsKF2ZsZWV0X3dvcmtmbG93c19lbmFibGVkEAFiBnByb3RvMw",[ee,u0]);var h0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.MANAGED=1]="MANAGED",e[e.INSTALLING_USER=2]="INSTALLING_USER",e[e.EXISTING_SERVICE_ACCOUNT=3]="EXISTING_SERVICE_ACCOUNT"})(h0||(h0={}));var b0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.AVAILABLE=1]="AVAILABLE",e[e.UNAVAILABLE=2]="UNAVAILABLE"})(b0||(b0={}));var f0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.APPLYING=1]="APPLYING",e[e.READY_TO_ARM=2]="READY_TO_ARM",e[e.FAILED_RETRYABLE=3]="FAILED_RETRYABLE",e[e.ARMED=5]="ARMED"})(f0||(f0={}));var m0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.AVAILABLE=1]="AVAILABLE",e[e.STALE=2]="STALE",e[e.UNAVAILABLE=3]="UNAVAILABLE"})(m0||(m0={}));var A0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.AVAILABLE=1]="AVAILABLE",e[e.BLOCKED_REQUIREMENTS=2]="BLOCKED_REQUIREMENTS",e[e.NOT_AVAILABLE=3]="NOT_AVAILABLE"})(A0||(A0={}));var V0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TEXT=1]="TEXT",e[e.STRING_LIST=2]="STRING_LIST",e[e.ENVIRONMENT=3]="ENVIRONMENT",e[e.SECRET_REFERENCE=4]="SECRET_REFERENCE",e[e.INTEGRATION=5]="INTEGRATION",e[e.BOOLEAN=6]="BOOLEAN",e[e.CHOICE=7]="CHOICE"})(V0||(V0={}));var g0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.INTERACTIVE=1]="INTERACTIVE",e[e.HUMAN_ON_LOOP=2]="HUMAN_ON_LOOP",e[e.AUTONOMOUS=3]="AUTONOMOUS",e[e.HYBRID=4]="HYBRID"})(g0||(g0={}));var p0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ON_DEMAND=1]="ON_DEMAND",e[e.EVENT_DRIVEN=2]="EVENT_DRIVEN",e[e.SCHEDULED=3]="SCHEDULED",e[e.CONTINUOUS=4]="CONTINUOUS"})(p0||(p0={}));var E0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ENGINEERING=1]="ENGINEERING",e[e.PRODUCT=2]="PRODUCT",e[e.OPERATIONS=3]="OPERATIONS",e[e.BUSINESS=4]="BUSINESS",e[e.SUPPORT=5]="SUPPORT",e[e.SALES=6]="SALES"})(E0||(E0={}));var R0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.VIEW=1]="VIEW",e[e.INSTALL=2]="INSTALL",e[e.ARM=4]="ARM",e[e.CONFIGURE=5]="CONFIGURE",e[e.REPAIR=6]="REPAIR"})(R0||(R0={}));var Z0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SCM=1]="SCM"})(Z0||(Z0={}));var S0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.READY=1]="READY",e[e.INCOMPLETE=2]="INCOMPLETE",e[e.UNKNOWN=3]="UNKNOWN"})(S0||(S0={}));var X0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.UNKNOWN=1]="UNKNOWN",e[e.NOT_INSTALLED=2]="NOT_INSTALLED",e[e.PARTIALLY_INSTALLED=3]="PARTIALLY_INSTALLED",e[e.INSTALLED=4]="INSTALLED",e[e.NEEDS_REPAIR=5]="NEEDS_REPAIR"})(X0||(X0={}));var W0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SINGLETON=1]="SINGLETON",e[e.OPTIONAL_SINGLETON=2]="OPTIONAL_SINGLETON",e[e.REPEATABLE=3]="REPEATABLE"})(W0||(W0={}));var qi=k("CiNzZXJ2aWNlcy9hcGlfcHJveHkvcHVibGljX2FwaS5wcm90bxIKcHVibGljX2FwaSI1CgpBY3Rpb25JdGVtEg0KBXRpdGxlGAEgASgJEhAKA3VybBgCIAEoCUgAiAEBQgYKBF91cmwiKQoaQWN0aW9uc0dldFVzZXJTdGF0ZVJlcXVlc3QSCwoDa2V5GAEgASgJIkQKG0FjdGlvbnNHZXRVc2VyU3RhdGVSZXNwb25zZRINCgV2YWx1ZRgBIAEoCRIWCg52ZXJzaW9uX251bWJlchgCIAEoAyJoChpBY3Rpb25zU2V0VXNlclN0YXRlUmVxdWVzdBILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkSGwoOdmVyc2lvbl9udW1iZXIYAyABKANIAIgBAUIRCg9fdmVyc2lvbl9udW1iZXIiNQobQWN0aW9uc1NldFVzZXJTdGF0ZVJlc3BvbnNlEhYKDnZlcnNpb25fbnVtYmVyGAEgASgDImIKEkFjdGl2ZVN1YnNjcmlwdGlvbhIsCghlbmRfZGF0ZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHgoWdXNhZ2VfYmFsYW5jZV9kZXBsZXRlZBgCIAEoCCLhAQoPQWdlbnRDYXBhYmlsaXR5EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSLwoFc2NvcGUYAyABKA4yIC5wdWJsaWNfYXBpLkFnZW50Q2FwYWJpbGl0eVNjb3BlEj8KDG5hdGl2ZV90b29scxgEIAMoCzIpLnB1YmxpY19hcGkuQWdlbnRDYXBhYmlsaXR5VG9vbERlZmluaXRpb24SOQoLbWNwX3NlcnZlcnMYBSADKAsyJC5wdWJsaWNfYXBpLkFnZW50Q2FwYWJpbGl0eU1DUFNlcnZlciJkChhBZ2VudENhcGFiaWxpdHlNQ1BTZXJ2ZXISEwoLc2VydmVyX25hbWUYASABKAkSEgoKc2VydmVyX3VybBgCIAEoCRIfChdyZXF1aXJlZF9jcmVkZW50aWFsX2tleRgDIAEoCSJhChhBZ2VudENhcGFiaWxpdHlSZWZlcmVuY2USFwoPY2FwYWJpbGl0eV9uYW1lGAEgASgJEhUKDWFsbG93ZWRfdG9vbHMYAiADKAkSFQoNYmxvY2tlZF90b29scxgDIAMoCSIyCh1BZ2VudENhcGFiaWxpdHlUb29sRGVmaW5pdGlvbhIRCgl0b29sX25hbWUYASABKAki+gMKC0FnZW50Q29uZmlnEjMKD3dvcmtzcGFjZV9zZXR1cBgBIAEoCzIaLnB1YmxpY19hcGkuV29ya3NwYWNlU2V0dXASMwoOc3RhcnRpbmdfbm9kZXMYAiADKAsyGy5wdWJsaWNfYXBpLkNoYXRSZXF1ZXN0Tm9kZRIcCg91c2VyX2d1aWRlbGluZXMYAyABKAlIAIgBARIhChR3b3Jrc3BhY2VfZ3VpZGVsaW5lcxgEIAEoCUgBiAEBEhIKBW1vZGVsGAYgASgJSAKIAQESIgoVaXNfc2V0dXBfc2NyaXB0X2FnZW50GAcgASgISAOIAQESMAoLbWNwX3NlcnZlcnMYCCADKAsyGy5wdWJsaWNfYXBpLk1jcFNlcnZlckNvbmZpZxISCgV0aXRsZRgJIAEoCUgEiAEBEjYKDnJlcXVlc3Rfc291cmNlGAogASgOMhkucHVibGljX2FwaS5SZXF1ZXN0U291cmNlSAWIAQESFgoOZGlzYWJsZWRfdG9vbHMYCyADKAlCEgoQX3VzZXJfZ3VpZGVsaW5lc0IXChVfd29ya3NwYWNlX2d1aWRlbGluZXNCCAoGX21vZGVsQhgKFl9pc19zZXR1cF9zY3JpcHRfYWdlbnRCCAoGX3RpdGxlQhEKD19yZXF1ZXN0X3NvdXJjZUoECAUQBiKQAgoSQWdlbnRIaXN0b3J5VXBkYXRlEjAKBHR5cGUYASABKA4yIi5wdWJsaWNfYXBpLkFnZW50SGlzdG9yeVVwZGF0ZVR5cGUSNgoIZXhjaGFuZ2UYAiABKAsyHy5wdWJsaWNfYXBpLlJlbW90ZUFnZW50RXhjaGFuZ2VIAIgBARI4Cg9leGNoYW5nZV91cGRhdGUYAyABKAsyGi5wdWJsaWNfYXBpLkV4Y2hhbmdlVXBkYXRlSAGIAQESKwoFYWdlbnQYBCABKAsyFy5wdWJsaWNfYXBpLlJlbW90ZUFnZW50SAKIAQFCCwoJX2V4Y2hhbmdlQhIKEF9leGNoYW5nZV91cGRhdGVCCAoGX2FnZW50IuwCCg9BZ2VudExpc3RVcGRhdGUSLQoEdHlwZRgBIAEoDjIfLnB1YmxpY19hcGkuQWdlbnRMaXN0VXBkYXRlVHlwZRI0ChB1cGRhdGVfdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgVhZ2VudBgDIAEoCzIXLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRIAIgBARIdChBkZWxldGVkX2FnZW50X2lkGAQgASgJSAGIAQESKwoKYWxsX2FnZW50cxgFIAMoCzIXLnB1YmxpY19hcGkuUmVtb3RlQWdlbnQSFwoKbWF4X2FnZW50cxgGIAEoBUgCiAEBEh4KEW1heF9hY3RpdmVfYWdlbnRzGAcgASgFSAOIAQFCCAoGX2FnZW50QhMKEV9kZWxldGVkX2FnZW50X2lkQg0KC19tYXhfYWdlbnRzQhQKEl9tYXhfYWN0aXZlX2FnZW50cyKiAQoMQWdlbnRQZXJzb25hEgoKAmlkGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEiwKBXNjb3BlGAMgASgOMh0ucHVibGljX2FwaS5BZ2VudFBlcnNvbmFTY29wZRJDChVyZXF1aXJlZF9jYXBhYmlsaXRpZXMYBCADKAsyJC5wdWJsaWNfYXBpLkFnZW50Q2FwYWJpbGl0eVJlZmVyZW5jZSJfChlBZ2VudFdvcmtzcGFjZUNoYXRSZXF1ZXN0EkIKD3JlcXVlc3RfZGV0YWlscxgBIAEoCzIpLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRDaGF0UmVxdWVzdERldGFpbHMiQQomQWdlbnRXb3Jrc3BhY2VHZXRMYXN0U2VxdWVuY2VJZFJlcXVlc3QSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJIk0KJ0FnZW50V29ya3NwYWNlR2V0TGFzdFNlcXVlbmNlSWRSZXNwb25zZRIiChpsYXN0X3Byb2Nlc3NlZF9zZXF1ZW5jZV9pZBgBIAEoDSIZChdBZ2VudFdvcmtzcGFjZUludGVycnVwdCJeCh9BZ2VudFdvcmtzcGFjZVBvbGxVcGRhdGVSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCRIiChpsYXN0X3Byb2Nlc3NlZF9zZXF1ZW5jZV9pZBgCIAEoDSJVCiBBZ2VudFdvcmtzcGFjZVBvbGxVcGRhdGVSZXNwb25zZRIxCgd1cGRhdGVzGAEgAygLMiAucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZVVwZGF0ZSJ4CiZBZ2VudFdvcmtzcGFjZVJlcG9ydENoYXRIaXN0b3J5UmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkSNQoMY2hhdF9oaXN0b3J5GAIgAygLMh8ucHVibGljX2FwaS5SZW1vdGVBZ2VudEV4Y2hhbmdlIikKJ0FnZW50V29ya3NwYWNlUmVwb3J0Q2hhdEhpc3RvcnlSZXNwb25zZSJoCilBZ2VudFdvcmtzcGFjZVJlcG9ydExhc3RTZXF1ZW5jZUlkUmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkSIgoabGFzdF9wcm9jZXNzZWRfc2VxdWVuY2VfaWQYAiABKA0iLAoqQWdlbnRXb3Jrc3BhY2VSZXBvcnRMYXN0U2VxdWVuY2VJZFJlc3BvbnNlIocBCiRBZ2VudFdvcmtzcGFjZVJlcG9ydFNldHVwTG9nc1JlcXVlc3QSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEkYKFndvcmtzcGFjZV9zZXR1cF9zdGF0dXMYAyABKAsyJi5wdWJsaWNfYXBpLlJlbW90ZVdvcmtzcGFjZVNldHVwU3RhdHVzIicKJUFnZW50V29ya3NwYWNlUmVwb3J0U2V0dXBMb2dzUmVzcG9uc2UisQEKIUFnZW50V29ya3NwYWNlUmVwb3J0U3RhdHVzUmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkSLQoGc3RhdHVzGAIgASgOMh0ucHVibGljX2FwaS5SZW1vdGVBZ2VudFN0YXR1cxImChloYXNfYWN0aXZlX3NzaF9jb25uZWN0aW9uGAMgASgISACIAQFCHAoaX2hhc19hY3RpdmVfc3NoX2Nvbm5lY3Rpb24iJAoiQWdlbnRXb3Jrc3BhY2VSZXBvcnRTdGF0dXNSZXNwb25zZSJaChtBZ2VudFdvcmtzcGFjZVN0cmVhbVJlcXVlc3QSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEiIKGmxhc3RfcHJvY2Vzc2VkX3NlcXVlbmNlX2lkGAIgASgNIlcKHEFnZW50V29ya3NwYWNlU3RyZWFtUmVzcG9uc2USNwoHdXBkYXRlcxgBIAMoCzImLnB1YmxpY19hcGkuQWdlbnRXb3Jrc3BhY2VTdHJlYW1VcGRhdGUigwIKGkFnZW50V29ya3NwYWNlU3RyZWFtVXBkYXRlEjIKBHR5cGUYASABKA4yJC5wdWJsaWNfYXBpLkFnZW50V29ya3NwYWNlVXBkYXRlVHlwZRITCgtzZXF1ZW5jZV9pZBgCIAEoDRI7CglpbnRlcnJ1cHQYAyABKAsyIy5wdWJsaWNfYXBpLkFnZW50V29ya3NwYWNlSW50ZXJydXB0SACIAQESQAoMY2hhdF9yZXF1ZXN0GAQgASgLMiUucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZUNoYXRSZXF1ZXN0SAGIAQFCDAoKX2ludGVycnVwdEIPCg1fY2hhdF9yZXF1ZXN0Iq4BChRBZ2VudFdvcmtzcGFjZVVwZGF0ZRI4CglpbnRlcnJ1cHQYAiABKAsyIy5wdWJsaWNfYXBpLkFnZW50V29ya3NwYWNlSW50ZXJydXB0SAASPQoMY2hhdF9yZXF1ZXN0GAMgASgLMiUucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZUNoYXRSZXF1ZXN0SAASEwoLc2VxdWVuY2VfaWQYASABKA1CCAoGdXBkYXRlInsKGEFnZ3JlZ2F0ZWRPdXRjb21lTWV0cmljcxIMCgRuYW1lGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRINCgVjb3VudBgDIAEoBBIsCgZ2YWx1ZXMYBCABKAsyHC5wdWJsaWNfYXBpLkFnZ3JlZ2F0ZWRWYWx1ZXMilAEKEEFnZ3JlZ2F0ZWRWYWx1ZXMSCwoDc3VtGAEgASgBEgsKA2F2ZxgCIAEoARILCgNtaW4YAyABKAESCwoDbWF4GAQgASgBEgsKA3AyNRgFIAEoARILCgNwNTAYBiABKAESCwoDcDc1GAcgASgBEgsKA3A5MBgIIAEoARILCgNwOTUYCSABKAESCwoDcDk5GAogASgBIuYBChNBbmFseXRpY3NUYWdTdW1tYXJ5EgsKA2tleRgBIAEoCRIVCg1zZXNzaW9uX2NvdW50GAIgASgEEhkKEW9ic2VydmF0aW9uX2NvdW50GAQgASgEEh4KFmRpc3RpbmN0X3N1YmplY3RfY291bnQYBSABKAQSNAoGdmFsdWVzGAYgAygLMiQucHVibGljX2FwaS5BbmFseXRpY3NUYWdWYWx1ZVN1bW1hcnkSEwoLZGlzcGxheV9rZXkYByABKAkSJQoGc291cmNlGAggASgOMhUucHVibGljX2FwaS5UYWdTb3VyY2UikgEKGEFuYWx5dGljc1RhZ1ZhbHVlU3VtbWFyeRINCgV2YWx1ZRgBIAEoCRIVCg1kaXNwbGF5X3ZhbHVlGAIgASgJEhUKDXNlc3Npb25fY291bnQYAyABKAQSGQoRb2JzZXJ2YXRpb25fY291bnQYBSABKAQSHgoWZGlzdGluY3Rfc3ViamVjdF9jb3VudBgGIAEoBCJbChdBdGxhc3NpYW5Ub29sRXh0cmFJbnB1dBISCgpzZXJ2ZXJfdXJsGAEgASgJEhoKEnBlcnNvbmFsX2FwaV90b2tlbhgCIAEoCRIQCgh1c2VybmFtZRgDIAEoCSIqCgxCYW5uZXJCdXR0b24SDQoFdGl0bGUYASABKAkSCwoDdXJsGAIgASgJItcDChFCYW5uZXJJbmZvcm1hdGlvbhIPCgdtZXNzYWdlGAEgASgJEi0KBmJ1dHRvbhgCIAEoCzIYLnB1YmxpY19hcGkuQmFubmVyQnV0dG9uSACIAQESPQoLYmFubmVyX3R5cGUYAyABKA4yKC5wdWJsaWNfYXBpLkJhbm5lckluZm9ybWF0aW9uLkJhbm5lclR5cGUSRwoNZGlzcGxheV9zdHlsZRgEIAEoDjIwLnB1YmxpY19hcGkuQmFubmVySW5mb3JtYXRpb24uQmFubmVyRGlzcGxheVN0eWxlIoUBCgpCYW5uZXJUeXBlEhcKE0JBTk5FUl9UWVBFX1VOS05PV04QABIMCghVUkxfTElOSxABEhoKFlVTQUdFX0JBTEFOQ0VfREVQTEVURUQQAhIVChFVU0FHRV9CQUxBTkNFX0xPVxADEh0KGVJFUVVJUkVfUEFZTUVOVF9GT1JfVFJJQUwQBCJnChJCYW5uZXJEaXNwbGF5U3R5bGUSIAocQkFOTkVSX0RJU1BMQVlfU1RZTEVfVU5LTk9XThAAEggKBElORk8QARINCglQUk9NT1RJT04QAhILCgdXQVJOSU5HEAMSCQoFQUxFUlQQBEIJCgdfYnV0dG9uIjsKEkJhdGNoVXBsb2FkUmVxdWVzdBIlCgVibG9icxgBIAMoCzIWLnB1YmxpY19hcGkuVXBsb2FkQmxvYiIpChNCYXRjaFVwbG9hZFJlc3BvbnNlEhIKCmJsb2JfbmFtZXMYASADKAkiYQoFQmxvYnMSGgoNY2hlY2twb2ludF9pZBgBIAEoCUgAiAEBEhMKC2FkZGVkX2Jsb2JzGAIgAygJEhUKDWRlbGV0ZWRfYmxvYnMYAyADKAlCEAoOX2NoZWNrcG9pbnRfaWQiigEKEUJvb3RzdHJhcFNldHRpbmdzElMKHXJlcG9zaXRvcnlfYWxsb3dsaXN0X3NldHRpbmdzGAEgASgLMicucHVibGljX2FwaS5SZXBvc2l0b3J5QWxsb3dsaXN0U2V0dGluZ3NIAIgBAUIgCh5fcmVwb3NpdG9yeV9hbGxvd2xpc3Rfc2V0dGluZ3Mi3wEKC0NoYW5nZWRGaWxlEhAKCG9sZF9wYXRoGAEgASgJEhAKCG5ld19wYXRoGAIgASgJEjsKC2NoYW5nZV90eXBlGAMgASgOMiYucHVibGljX2FwaS5DaGFuZ2VkRmlsZS5GaWxlQ2hhbmdlVHlwZRIUCgxvbGRfY29udGVudHMYBCABKAkSFAoMbmV3X2NvbnRlbnRzGAUgASgJIkMKDkZpbGVDaGFuZ2VUeXBlEgkKBUFEREVEEAASCwoHREVMRVRFRBABEgwKCE1PRElGSUVEEAISCwoHUkVOQU1FRBADIpgEChBDaGFuZ2VkRmlsZVN0YXRzEj0KEGFkZGVkX2ZpbGVfc3RhdHMYASABKAsyIy5wdWJsaWNfYXBpLlBlclR5cGVDaGFuZ2VkRmlsZVN0YXRzEj4KEWJyb2tlbl9maWxlX3N0YXRzGAIgASgLMiMucHVibGljX2FwaS5QZXJUeXBlQ2hhbmdlZEZpbGVTdGF0cxI+ChFjb3BpZWRfZmlsZV9zdGF0cxgDIAEoCzIjLnB1YmxpY19hcGkuUGVyVHlwZUNoYW5nZWRGaWxlU3RhdHMSPwoSZGVsZXRlZF9maWxlX3N0YXRzGAQgASgLMiMucHVibGljX2FwaS5QZXJUeXBlQ2hhbmdlZEZpbGVTdGF0cxJAChNtb2RpZmllZF9maWxlX3N0YXRzGAUgASgLMiMucHVibGljX2FwaS5QZXJUeXBlQ2hhbmdlZEZpbGVTdGF0cxI/ChJyZW5hbWVkX2ZpbGVfc3RhdHMYBiABKAsyIy5wdWJsaWNfYXBpLlBlclR5cGVDaGFuZ2VkRmlsZVN0YXRzEkAKE3VubWVyZ2VkX2ZpbGVfc3RhdHMYByABKAsyIy5wdWJsaWNfYXBpLlBlclR5cGVDaGFuZ2VkRmlsZVN0YXRzEj8KEnVua25vd25fZmlsZV9zdGF0cxgIIAEoCzIjLnB1YmxpY19hcGkuUGVyVHlwZUNoYW5nZWRGaWxlU3RhdHMi2QIKGUNoYXRGZWF0dXJlRGV0ZWN0aW9uRmxhZ3MSIQoQc3VwcG9ydF9tYXJrZG93bhgBIAEoCEICGAFIAIgBARIjChJzdXBwb3J0X3Jhd19vdXRwdXQYAiABKAhCAhgBSAGIAQESJQoYc3VwcG9ydF9yZWxldmFudF9zb3VyY2VzGAMgASgISAKIAQESIwoWc3VwcG9ydF90b29sX3VzZV9zdGFydBgEIAEoCEgDiAEBEiYKGXN1cHBvcnRfcGFyYWxsZWxfdG9vbF91c2UYBSABKAhIBIgBAUITChFfc3VwcG9ydF9tYXJrZG93bkIVChNfc3VwcG9ydF9yYXdfb3V0cHV0QhsKGV9zdXBwb3J0X3JlbGV2YW50X3NvdXJjZXNCGQoXX3N1cHBvcnRfdG9vbF91c2Vfc3RhcnRCHAoaX3N1cHBvcnRfcGFyYWxsZWxfdG9vbF91c2UikAEKDENoYXRGZWVkYmFjaxISCgpyZXF1ZXN0X2lkGAEgASgJEioKBnJhdGluZxgCIAEoDjIaLnB1YmxpY19hcGkuRmVlZGJhY2tSYXRpbmcSDAoEbm90ZRgDIAEoCRIcCgRtb2RlGAQgASgOMg4uY2hhdC5DaGF0TW9kZRIUCgxyZWFzb25fY29kZXMYBSADKAkiFgoUQ2hhdEZlZWRiYWNrUmVzcG9uc2Ui1QIKGkNoYXRJbnB1dENvbXBsZXRpb25SZXF1ZXN0EhIKBW1vZGVsGAEgASgJSACIAQESDgoGcHJvbXB0GAIgASgJEgwKBHBhdGgYAyABKAkSEwoGc3VmZml4GAQgASgJSAGIAQESIAoFYmxvYnMYBSABKAsyES5wdWJsaWNfYXBpLkJsb2JzEjIKDHJlY2VuY3lfaW5mbxgGIAEoCzIXLnB1YmxpY19hcGkuUmVjZW5jeUluZm9IAogBARIRCgRsYW5nGAcgASgJSAOIAQESGAoLc2VxdWVuY2VfaWQYCCABKA1IBIgBARIuCgtlZGl0X2V2ZW50cxgJIAMoCzIZLnB1YmxpY19hcGkuRmlsZUVkaXRFdmVudEIICgZfbW9kZWxCCQoHX3N1ZmZpeEIPCg1fcmVjZW5jeV9pbmZvQgcKBV9sYW5nQg4KDF9zZXF1ZW5jZV9pZCKpAQodQ2hhdElucHV0Q29tcGxldGlvblJlc29sdXRpb24SEgoKcmVxdWVzdF9pZBgBIAEoCRIVCg1lbWl0X3RpbWVfc2VjGAIgASgDEhYKDmVtaXRfdGltZV9uc2VjGAMgASgFEhgKEHJlc29sdmVfdGltZV9zZWMYBCABKAMSGQoRcmVzb2x2ZV90aW1lX25zZWMYBSABKAUSEAoIYWNjZXB0ZWQYBiABKAgiJwolQ2hhdElucHV0Q29tcGxldGlvblJlc29sdXRpb25SZXNwb25zZSLnAQobQ2hhdElucHV0Q29tcGxldGlvblJlc3BvbnNlEgwKBHRleHQYASABKAkSHAoUdW5rbm93bl9tZW1vcnlfbmFtZXMYAiADKAkSIwobc3VnZ2VzdGVkX3ByZWZpeF9jaGFyX2NvdW50GAMgASgNEiMKG3N1Z2dlc3RlZF9zdWZmaXhfY2hhcl9jb3VudBgEIAEoDRI0ChBjb21wbGV0aW9uX2l0ZW1zGAUgAygLMhoucHVibGljX2FwaS5Db21wbGV0aW9uSXRlbRIcChRjaGVja3BvaW50X25vdF9mb3VuZBgGIAEoCCL5EQoLQ2hhdFJlcXVlc3QSEgoFbW9kZWwYASABKAlIAIgBARIRCgRwYXRoGAIgASgJSAGIAQESEwoGcHJlZml4GAMgASgJSAKIAQESGgoNc2VsZWN0ZWRfY29kZRgEIAEoCUgDiAEBEhMKBnN1ZmZpeBgFIAEoCUgEiAEBEg8KB21lc3NhZ2UYBiABKAkSKgoMY2hhdF9oaXN0b3J5GAcgAygLMhQucHVibGljX2FwaS5FeGNoYW5nZRIWCglibG9iX25hbWUYCCABKAlIBYgBARIZCgxwcmVmaXhfYmVnaW4YCSABKAVIBogBARIcCg9jdXJzb3JfcG9zaXRpb24YCiABKAVIB4gBARIXCgpzdWZmaXhfZW5kGAsgASgFSAiIAQESFgoKYmxvYl9uYW1lcxgMIAMoCUICGAESEQoEbGFuZxgNIAEoCUgJiAEBEhMKC3NlcXVlbmNlX2lkGA4gASgNEiAKBWJsb2JzGA8gASgLMhEucHVibGljX2FwaS5CbG9icxIZChF1c2VyX2d1aWRlZF9ibG9icxgRIAMoCRIbChNleHRlcm5hbF9zb3VyY2VfaWRzGBMgAygJEikKHGVuYWJsZV9wcmVmZXJlbmNlX2NvbGxlY3Rpb24YECABKAhICogBARItCiBjb250ZXh0X2NvZGVfZXhjaGFuZ2VfcmVxdWVzdF9pZBgSIAEoCUgLiAEBEioKHWRpc2FibGVfYXV0b19leHRlcm5hbF9zb3VyY2VzGBQgASgISAyIAQESSwoXZmVhdHVyZV9kZXRlY3Rpb25fZmxhZ3MYFSABKAsyJS5wdWJsaWNfYXBpLkNoYXRGZWF0dXJlRGV0ZWN0aW9uRmxhZ3NIDYgBARIcCg91c2VyX2d1aWRlbGluZXMYFiABKAlIDogBARIhChR3b3Jrc3BhY2VfZ3VpZGVsaW5lcxgXIAEoCUgPiAEBEjQKEHRvb2xfZGVmaW5pdGlvbnMYGCADKAsyGi5wdWJsaWNfYXBpLlRvb2xEZWZpbml0aW9uEioKBW5vZGVzGBkgAygLMhsucHVibGljX2FwaS5DaGF0UmVxdWVzdE5vZGUSHAoEbW9kZRgaIAEoDjIOLmNoYXQuQ2hhdE1vZGUSMgoMcGVyc29uYV90eXBlGBwgASgOMhcucHVibGljX2FwaS5QZXJzb25hVHlwZUgQiAEBEh8KBXJ1bGVzGB0gAygLMhAucHVibGljX2FwaS5SdWxlEhMKBnNpbGVudBgeIAEoCEgRiAEBEjsKFHRoaXJkX3BhcnR5X292ZXJyaWRlGB8gASgLMhguY2hhdC5UaGlyZFBhcnR5T3ZlcnJpZGVIEogBARIcCg9jb252ZXJzYXRpb25faWQYICABKAlIE4gBARIaCg1zeXN0ZW1fcHJvbXB0GCEgASgJSBSIAQESRwoac3lzdGVtX3Byb21wdF9yZXBsYWNlbWVudHMYIiADKAsyIy5wdWJsaWNfYXBpLlN5c3RlbVByb21wdFJlcGxhY2VtZW50EiEKBnNraWxscxgkIAMoCzIRLnB1YmxpY19hcGkuU2tpbGwSHQoQYWdlbnRfcGVyc29uYV9pZBglIAEoCUgViAEBEhQKB3R1cm5faWQYJiABKAlIFogBARIjChZwYXJlbnRfY29udmVyc2F0aW9uX2lkGCcgASgJSBeIAQESIQoUcm9vdF9jb252ZXJzYXRpb25faWQYKCABKAlIGIgBARIhChRzeXN0ZW1fcHJvbXB0X2FwcGVuZBgpIAEoCUgZiAEBEjYKEmJyaW5nX3lvdXJfb3duX2tleRgqIAEoCzIVLmNoYXQuQnJpbmdZb3VyT3duS2V5SBqIAQESHAoPc3Vic2NyaXB0aW9uX2lkGCsgASgJSBuIAQESEwoLcGVyc29uYV9pZHMYLCADKAkSGwoOc2VuZGVyX3VzZXJfaWQYLSABKAlIHIgBARIkChdwb3NlaWRvbl9zZW5kZXJfdXNlcl9pZBguIAEoCUgdiAEBEjMKE3Zmc19maWxlX3JlZmVyZW5jZXMYLyADKAsyFi5jaGF0LlZGU0ZpbGVSZWZlcmVuY2USMwoTbWNwX3Rvb2xfcmVmZXJlbmNlcxgwIAMoCzIWLmNoYXQuTUNQVG9vbFJlZmVyZW5jZRIdChByZWFzb25pbmdfZWZmb3J0GDEgASgJSB6IAQFCCAoGX21vZGVsQgcKBV9wYXRoQgkKB19wcmVmaXhCEAoOX3NlbGVjdGVkX2NvZGVCCQoHX3N1ZmZpeEIMCgpfYmxvYl9uYW1lQg8KDV9wcmVmaXhfYmVnaW5CEgoQX2N1cnNvcl9wb3NpdGlvbkINCgtfc3VmZml4X2VuZEIHCgVfbGFuZ0IfCh1fZW5hYmxlX3ByZWZlcmVuY2VfY29sbGVjdGlvbkIjCiFfY29udGV4dF9jb2RlX2V4Y2hhbmdlX3JlcXVlc3RfaWRCIAoeX2Rpc2FibGVfYXV0b19leHRlcm5hbF9zb3VyY2VzQhoKGF9mZWF0dXJlX2RldGVjdGlvbl9mbGFnc0ISChBfdXNlcl9ndWlkZWxpbmVzQhcKFV93b3Jrc3BhY2VfZ3VpZGVsaW5lc0IPCg1fcGVyc29uYV90eXBlQgkKB19zaWxlbnRCFwoVX3RoaXJkX3BhcnR5X292ZXJyaWRlQhIKEF9jb252ZXJzYXRpb25faWRCEAoOX3N5c3RlbV9wcm9tcHRCEwoRX2FnZW50X3BlcnNvbmFfaWRCCgoIX3R1cm5faWRCGQoXX3BhcmVudF9jb252ZXJzYXRpb25faWRCFwoVX3Jvb3RfY29udmVyc2F0aW9uX2lkQhcKFV9zeXN0ZW1fcHJvbXB0X2FwcGVuZEIVChNfYnJpbmdfeW91cl9vd25fa2V5QhIKEF9zdWJzY3JpcHRpb25faWRCEQoPX3NlbmRlcl91c2VyX2lkQhoKGF9wb3NlaWRvbl9zZW5kZXJfdXNlcl9pZEITChFfcmVhc29uaW5nX2VmZm9ydEoECBsQHEoECCMQJFIJY2FudmFzX2lkIooBChVDaGF0UmVxdWVzdEVkaXRFdmVudHMSNAoLZWRpdF9ldmVudHMYASADKAsyHy5wdWJsaWNfYXBpLkNoYXRSZXF1ZXN0RmlsZUVkaXQSMAoGc291cmNlGAIgASgOMhsucHVibGljX2FwaS5FZGl0RXZlbnRTb3VyY2VIAIgBAUIJCgdfc291cmNlIoYBCg9DaGF0UmVxdWVzdEZpbGUSEQoJZmlsZV9kYXRhGAEgASgJEhIKCm1lZGlhX3R5cGUYAiABKAkSFgoJZmlsZV9uYW1lGAMgASgJSACIAQESFwoKcGFnZV9jb3VudBgEIAEoBUgBiAEBQgwKCl9maWxlX25hbWVCDQoLX3BhZ2VfY291bnQiuwEKE0NoYXRSZXF1ZXN0RmlsZUVkaXQSDAoEcGF0aBgBIAEoCRIdChBiZWZvcmVfYmxvYl9uYW1lGAIgASgJSACIAQESHAoPYWZ0ZXJfYmxvYl9uYW1lGAMgASgJSAGIAQESMAoFZWRpdHMYBCADKAsyIS5wdWJsaWNfYXBpLkNoYXRSZXF1ZXN0U2luZ2xlRWRpdEITChFfYmVmb3JlX2Jsb2JfbmFtZUISChBfYWZ0ZXJfYmxvYl9uYW1lIsQBChNDaGF0UmVxdWVzdElkZVN0YXRlEjoKEXdvcmtzcGFjZV9mb2xkZXJzGAEgAygLMh8ucHVibGljX2FwaS5Xb3Jrc3BhY2VGb2xkZXJJbmZvEiMKG3dvcmtzcGFjZV9mb2xkZXJzX3VuY2hhbmdlZBgCIAEoCBI3ChBjdXJyZW50X3Rlcm1pbmFsGAMgASgLMhgucHVibGljX2FwaS5UZXJtaW5hbEluZm9IAIgBAUITChFfY3VycmVudF90ZXJtaW5hbCJTChBDaGF0UmVxdWVzdEltYWdlEhIKCmltYWdlX2RhdGEYASABKAkSKwoGZm9ybWF0GAIgASgOMhsucHVibGljX2FwaS5JbWFnZUZvcm1hdFR5cGUiowQKD0NoYXRSZXF1ZXN0Tm9kZRIKCgJpZBgBIAEoBRItCgR0eXBlGAIgASgOMh8ucHVibGljX2FwaS5DaGF0UmVxdWVzdE5vZGVUeXBlEjMKCXRleHRfbm9kZRgDIAEoCzIbLnB1YmxpY19hcGkuQ2hhdFJlcXVlc3RUZXh0SACIAQESQAoQdG9vbF9yZXN1bHRfbm9kZRgEIAEoCzIhLnB1YmxpY19hcGkuQ2hhdFJlcXVlc3RUb29sUmVzdWx0SAGIAQESNQoKaW1hZ2Vfbm9kZRgFIAEoCzIcLnB1YmxpY19hcGkuQ2hhdFJlcXVlc3RJbWFnZUgCiAEBEjwKDmlkZV9zdGF0ZV9ub2RlGAcgASgLMh8ucHVibGljX2FwaS5DaGF0UmVxdWVzdElkZVN0YXRlSAOIAQESQAoQZWRpdF9ldmVudHNfbm9kZRgIIAEoCzIhLnB1YmxpY19hcGkuQ2hhdFJlcXVlc3RFZGl0RXZlbnRzSASIAQESMwoJZmlsZV9ub2RlGAogASgLMhsucHVibGljX2FwaS5DaGF0UmVxdWVzdEZpbGVIBYgBAUIMCgpfdGV4dF9ub2RlQhMKEV90b29sX3Jlc3VsdF9ub2RlQg0KC19pbWFnZV9ub2RlQhEKD19pZGVfc3RhdGVfbm9kZUITChFfZWRpdF9ldmVudHNfbm9kZUIMCgpfZmlsZV9ub2RlSgQIBhAHSgQICRAKInUKFUNoYXRSZXF1ZXN0U2luZ2xlRWRpdBIZChFiZWZvcmVfbGluZV9zdGFydBgBIAEoDRITCgtiZWZvcmVfdGV4dBgCIAEoCRIYChBhZnRlcl9saW5lX3N0YXJ0GAMgASgNEhIKCmFmdGVyX3RleHQYBCABKAkiIgoPQ2hhdFJlcXVlc3RUZXh0Eg8KB2NvbnRlbnQYASABKAki/QIKFUNoYXRSZXF1ZXN0VG9vbFJlc3VsdBITCgt0b29sX3VzZV9pZBgBIAEoCRIPCgdjb250ZW50GAIgASgJEhAKCGlzX2Vycm9yGAMgASgIEhcKCnJlcXVlc3RfaWQYBCABKAlIAIgBARI4Cg1jb250ZW50X25vZGVzGAUgAygLMiEucHVibGljX2FwaS5Ub29sUmVzdWx0Q29udGVudE5vZGUSGAoLZHVyYXRpb25fbXMYBiABKANIAYgBARIaCg1zdGFydF90aW1lX21zGAcgASgDSAKIAQESQQoIbWV0YWRhdGEYCCADKAsyLy5wdWJsaWNfYXBpLkNoYXRSZXF1ZXN0VG9vbFJlc3VsdC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUINCgtfcmVxdWVzdF9pZEIOCgxfZHVyYXRpb25fbXNCEAoOX3N0YXJ0X3RpbWVfbXMijwMKDENoYXRSZXNwb25zZRIMCgR0ZXh0GAEgASgJEhoKEnVua25vd25fYmxvYl9uYW1lcxgCIAMoCRIcChRjaGVja3BvaW50X25vdF9mb3VuZBgDIAEoCBI9ChV3b3Jrc3BhY2VfZmlsZV9jaHVua3MYBCADKAsyHi5wdWJsaWNfYXBpLldvcmtzcGFjZUZpbGVDaHVuaxJNCh1pbmNvcnBvcmF0ZWRfZXh0ZXJuYWxfc291cmNlcxgFIAMoCzImLnB1YmxpY19hcGkuSW5jb3Jwb3JhdGVkRXh0ZXJuYWxTb3VyY2USKQoFbm9kZXMYBiADKAsyGi5wdWJsaWNfYXBpLkNoYXRSZXN1bHROb2RlEjQKC3N0b3BfcmVhc29uGAcgASgOMhoucHVibGljX2FwaS5DaGF0U3RvcFJlYXNvbkgAiAEBEiAKE3N1bW1hcml6ZV9hbmRfcmV0cnkYCCABKAhIAYgBAUIOCgxfc3RvcF9yZWFzb25CFgoUX3N1bW1hcml6ZV9hbmRfcmV0cnkiyQIKGUNoYXRSZXN1bHRCaWxsaW5nTWV0YWRhdGESGwoOdHJhbnNhY3Rpb25faWQYASABKAlIAIgBARIYChBjcmVkaXRzX2NvbnN1bWVkGAIgASgFEhAKCGNvc3RfdXNkGAcgASgJEikKCnVzYWdlX3VuaXQYCCABKA4yFS5wdWJsaWNfYXBpLlVzYWdlVW5pdBIhChRlZmZlY3RpdmVfbW9kZWxfbmFtZRgJIAEoCUgBiAEBQhEKD190cmFuc2FjdGlvbl9pZEIXChVfZWZmZWN0aXZlX21vZGVsX25hbWVKBAgDEARKBAgEEAVKBAgFEAZKBAgGEAdSDGlucHV0X3Rva2Vuc1INb3V0cHV0X3Rva2Vuc1IXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnNSG2NhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyKSBAoOQ2hhdFJlc3VsdE5vZGUSCgoCaWQYASABKAUSLAoEdHlwZRgCIAEoDjIeLnB1YmxpY19hcGkuQ2hhdFJlc3VsdE5vZGVUeXBlEg8KB2NvbnRlbnQYAyABKAkSNAoIdG9vbF91c2UYBCABKAsyHS5wdWJsaWNfYXBpLkNoYXRSZXN1bHRUb29sVXNlSACIAQESNQoIdGhpbmtpbmcYBSABKAsyHi5wdWJsaWNfYXBpLkNoYXRSZXN1bHRUaGlua2luZ0gBiAEBEkQKEGJpbGxpbmdfbWV0YWRhdGEYBiABKAsyJS5wdWJsaWNfYXBpLkNoYXRSZXN1bHRCaWxsaW5nTWV0YWRhdGFIAogBARI5CghtZXRhZGF0YRgHIAEoCzIiLnB1YmxpY19hcGkuQ2hhdFJlc3VsdE5vZGVNZXRhZGF0YUgDiAEBEjoKC3Rva2VuX3VzYWdlGAggASgLMiAucHVibGljX2FwaS5DaGF0UmVzdWx0VG9rZW5Vc2FnZUgEiAEBEhkKDHRpbWVzdGFtcF9tcxgKIAEoBEgFiAEBQgsKCV90b29sX3VzZUILCglfdGhpbmtpbmdCEwoRX2JpbGxpbmdfbWV0YWRhdGFCCwoJX21ldGFkYXRhQg4KDF90b2tlbl91c2FnZUIPCg1fdGltZXN0YW1wX21zSgQICRAKUg1jb250ZXh0X3VzYWdlIqYBChZDaGF0UmVzdWx0Tm9kZU1ldGFkYXRhEhYKCW9wZW5haV9pZBgBIAEoCUgAiAEBEhYKCWdvb2dsZV90cxgCIAEoDEgBiAEBEhUKCHByb3ZpZGVyGAMgASgJSAKIAQESEgoFcGhhc2UYBCABKAlIA4gBAUIMCgpfb3BlbmFpX2lkQgwKCl9nb29nbGVfdHNCCwoJX3Byb3ZpZGVyQggKBl9waGFzZSLaAQoSQ2hhdFJlc3VsdFRoaW5raW5nEhQKB3N1bW1hcnkYASABKAlIAIgBARIeChFlbmNyeXB0ZWRfY29udGVudBgCIAEoCUgBiAEBEhQKB2NvbnRlbnQYAyABKAlIAogBARIpChxvcGVuYWlfcmVzcG9uc2VzX2FwaV9pdGVtX2lkGAQgASgJSAOIAQFCCgoIX3N1bW1hcnlCFAoSX2VuY3J5cHRlZF9jb250ZW50QgoKCF9jb250ZW50Qh8KHV9vcGVuYWlfcmVzcG9uc2VzX2FwaV9pdGVtX2lkIuAFChRDaGF0UmVzdWx0VG9rZW5Vc2FnZRIZCgxpbnB1dF90b2tlbnMYASABKAVIAIgBARIaCg1vdXRwdXRfdG9rZW5zGAIgASgFSAGIAQESJAoXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMYAyABKAVIAogBARIoChtjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMYBCABKAVIA4gBARIhChRzeXN0ZW1fcHJvbXB0X3Rva2VucxgFIAEoBUgEiAEBEiAKE2NoYXRfaGlzdG9yeV90b2tlbnMYBiABKAVIBYgBARIjChZjdXJyZW50X21lc3NhZ2VfdG9rZW5zGAcgASgFSAaIAQESHwoSbWF4X2NvbnRleHRfdG9rZW5zGAggASgFSAeIAQESJAoXdG9vbF9kZWZpbml0aW9uc190b2tlbnMYCSABKAVICIgBARIfChJ0b29sX3Jlc3VsdF90b2tlbnMYCiABKAVICYgBARImChlhc3Npc3RhbnRfcmVzcG9uc2VfdG9rZW5zGAsgASgFSAqIAQESHgoRbWF4X291dHB1dF90b2tlbnMYDSABKAVIC4gBAUIPCg1faW5wdXRfdG9rZW5zQhAKDl9vdXRwdXRfdG9rZW5zQhoKGF9jYWNoZV9yZWFkX2lucHV0X3Rva2Vuc0IeChxfY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zQhcKFV9zeXN0ZW1fcHJvbXB0X3Rva2Vuc0IWChRfY2hhdF9oaXN0b3J5X3Rva2Vuc0IZChdfY3VycmVudF9tZXNzYWdlX3Rva2Vuc0IVChNfbWF4X2NvbnRleHRfdG9rZW5zQhoKGF90b29sX2RlZmluaXRpb25zX3Rva2Vuc0IVChNfdG9vbF9yZXN1bHRfdG9rZW5zQhwKGl9hc3Npc3RhbnRfcmVzcG9uc2VfdG9rZW5zQhQKEl9tYXhfb3V0cHV0X3Rva2VucyJjChFDaGF0UmVzdWx0VG9vbFVzZRITCgt0b29sX3VzZV9pZBgBIAEoCRIRCgl0b29sX25hbWUYAiABKAkSEgoKaW5wdXRfanNvbhgDIAEoCRISCgppc19wYXJ0aWFsGAQgASgIIlwKFkNoZWNrVG9vbFNhZmV0eVJlcXVlc3QSKQoHdG9vbF9pZBgBIAEoDjIYLnB1YmxpY19hcGkuUmVtb3RlVG9vbElkEhcKD3Rvb2xfaW5wdXRfanNvbhgCIAEoCSIqChdDaGVja1Rvb2xTYWZldHlSZXNwb25zZRIPCgdpc19zYWZlGAEgASgIIjoKFkNoZWNrcG9pbnRCbG9ic1JlcXVlc3QSIAoFYmxvYnMYASABKAsyES5wdWJsaWNfYXBpLkJsb2JzIjQKF0NoZWNrcG9pbnRCbG9ic1Jlc3BvbnNlEhkKEW5ld19jaGVja3BvaW50X2lkGAEgASgJIpACChhDbGllbnRDb21wbGV0aW9uVGltZWxpbmUSEgoKcmVxdWVzdF9pZBgBIAEoCRIgChhpbml0aWFsX3JlcXVlc3RfdGltZV9zZWMYAiABKAMSIQoZaW5pdGlhbF9yZXF1ZXN0X3RpbWVfbnNlYxgDIAEoBRIaChJhcGlfc3RhcnRfdGltZV9zZWMYBCABKAMSGwoTYXBpX3N0YXJ0X3RpbWVfbnNlYxgFIAEoBRIYChBhcGlfZW5kX3RpbWVfc2VjGAYgASgDEhkKEWFwaV9lbmRfdGltZV9uc2VjGAcgASgFEhUKDWVtaXRfdGltZV9zZWMYCCABKAMSFgoOZW1pdF90aW1lX25zZWMYCSABKAUiWgofQ2xpZW50Q29tcGxldGlvblRpbWVsaW5lUmVxdWVzdBI3Cgl0aW1lbGluZXMYASADKAsyJC5wdWJsaWNfYXBpLkNsaWVudENvbXBsZXRpb25UaW1lbGluZSIiCiBDbGllbnRDb21wbGV0aW9uVGltZWxpbmVSZXNwb25zZSI6ChJDbGllbnRNZXRyaWNzRXZlbnQSFQoNY2xpZW50X21ldHJpYxgBIAEoCRINCgV2YWx1ZRgCIAEoBCJHChRDbGllbnRNZXRyaWNzUmVxdWVzdBIvCgdtZXRyaWNzGAEgAygLMh4ucHVibGljX2FwaS5DbGllbnRNZXRyaWNzRXZlbnQiFwoVQ2xpZW50TWV0cmljc1Jlc3BvbnNlIq8BChBDbG91ZEFjY2Vzc0VudHJ5EhYKDnByaW5jaXBhbF90eXBlGAEgASgJEhQKDHByaW5jaXBhbF9pZBgCIAEoCRIMCgRyb2xlGAMgASgJEhIKCmdyYW50ZWRfYnkYBCABKAkSEgoKY3JlYXRlZF9hdBgFIAEoCRIXCg9wcmluY2lwYWxfZW1haWwYBiABKAkSHgoWcHJpbmNpcGFsX2Rpc3BsYXlfbmFtZRgHIAEoCSKEAQoXQ2xvdWRBY2Nlc3NHcmFudFJlcXVlc3QSEwoLb2JqZWN0X3R5cGUYASABKAkSEQoJb2JqZWN0X2lkGAIgASgJEjMKCXByaW5jaXBhbBgDIAEoCzIgLnB1YmxpY19hcGkuQ2xvdWRBY2Nlc3NQcmluY2lwYWwSDAoEcm9sZRgEIAEoCSIaChhDbG91ZEFjY2Vzc0dyYW50UmVzcG9uc2UiQAoWQ2xvdWRBY2Nlc3NMaXN0UmVxdWVzdBITCgtvYmplY3RfdHlwZRgBIAEoCRIRCglvYmplY3RfaWQYAiABKAkiSAoXQ2xvdWRBY2Nlc3NMaXN0UmVzcG9uc2USLQoHZW50cmllcxgBIAMoCzIcLnB1YmxpY19hcGkuQ2xvdWRBY2Nlc3NFbnRyeSK3AQoUQ2xvdWRBY2Nlc3NQcmluY2lwYWwSEQoHdXNlcl9pZBgBIAEoCUgAEg8KBWVtYWlsGAIgASgJSAASEAoGdGVuYW50GAMgASgISAASEgoIZ3JvdXBfaWQYBCABKAlIABIcChJzZXJ2aWNlX2FjY291bnRfaWQYBSABKAlIABIPCgVncm91cBgGIAEoCUgAEhkKD3NlcnZpY2VfYWNjb3VudBgHIAEoCUgAQgsKCXByaW5jaXBhbCJ3ChhDbG91ZEFjY2Vzc1Jldm9rZVJlcXVlc3QSEwoLb2JqZWN0X3R5cGUYASABKAkSEQoJb2JqZWN0X2lkGAIgASgJEjMKCXByaW5jaXBhbBgDIAEoCzIgLnB1YmxpY19hcGkuQ2xvdWRBY2Nlc3NQcmluY2lwYWwiGwoZQ2xvdWRBY2Nlc3NSZXZva2VSZXNwb25zZSKuBQoKQ2xvdWRBZ2VudBIQCghhZ2VudF9pZBgBIAEoCRISCgphZ2VudF9uYW1lGAIgASgJEjYKDGNhcGFiaWxpdGllcxgDIAMoDjIgLnB1YmxpY19hcGkuQ2xvdWRBZ2VudENhcGFiaWxpdHkSLAoGc3RhdHVzGAQgASgOMhwucHVibGljX2FwaS5DbG91ZEFnZW50U3RhdHVzEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC3dvcmtmbG93X2lkGAcgASgJEhkKDW1lc3NhZ2VfY291bnQYCCABKA1CAhgBEhEKCWV4cGVydF9pZBgJIAEoCRIdChVleGVjdXRpb25fZW52aXJvbm1lbnQYCiABKAkSEAoIYXJjaGl2ZWQYCyABKAgSEAoIc3BhY2VfaWQYDCABKAkSFgoOZW52aXJvbm1lbnRfaWQYDSABKAkSEQoJZGFlbW9uX2lkGA4gASgJEhYKDmRhZW1vbl9wb29sX2lkGA8gASgJEhMKC3Jlc2lkZW50X2lkGBAgASgJEhEKCXZtX3N0YXR1cxgRIAEoCRIYChB2bV9lcnJvcl9tZXNzYWdlGBIgASgJEj4KEHZtX2Vycm9yX2RldGFpbHMYEyABKAsyJC5wdWJsaWNfYXBpLkNsb3VkQWdlbnRWbUVycm9yRGV0YWlscxIXCg9wYXJlbnRfYWdlbnRfaWQYFCABKAkSEgoFbW9kZWwYFSABKAlIAIgBARIdChByZWFzb25pbmdfZWZmb3J0GBYgASgJSAGIAQFCCAoGX21vZGVsQhMKEV9yZWFzb25pbmdfZWZmb3J0InAKF0Nsb3VkQWdlbnRTZXNzaW9uQ29uZmlnEjcKD2FnZW50X2xvb3BfdHlwZRgBIAEoDjIeLnB1YmxpY19hcGkuQ2xvdWRBZ2VudExvb3BUeXBlEhIKBW1vZGVsGAIgASgJSACIAQFCCAoGX21vZGVsInEKGENsb3VkQWdlbnRWbUVycm9yRGV0YWlscxIPCgdzdW1tYXJ5GAEgASgJEgwKBGhpbnQYAiABKAkSEQoJcmF3X2Vycm9yGAMgASgJEhEKCWJ1aWxkX2xvZxgEIAEoCRIQCghidWlsZF9pZBgFIAEoCSIyCh5DbG91ZEFnZW50c0FyY2hpdmVBZ2VudFJlcXVlc3QSEAoIYWdlbnRfaWQYASABKAkiMwofQ2xvdWRBZ2VudHNBcmNoaXZlQWdlbnRSZXNwb25zZRIQCghhZ2VudF9pZBgBIAEoCSI0CiRDbG91ZEFnZW50c0F6dXJlRGV2T3BzUHJvdmlkZXJQYXJhbXMSDAoEaG9zdBgBIAEoCSI8CidDbG91ZEFnZW50c0JhdGNoR2V0TWVzc2FnZUNvdW50c1JlcXVlc3QSEQoJYWdlbnRfaWRzGAEgAygJIskBCihDbG91ZEFnZW50c0JhdGNoR2V0TWVzc2FnZUNvdW50c1Jlc3BvbnNlEmUKEmNvdW50c19ieV9hZ2VudF9pZBgBIAMoCzJJLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNCYXRjaEdldE1lc3NhZ2VDb3VudHNSZXNwb25zZS5Db3VudHNCeUFnZW50SWRFbnRyeRo2ChRDb3VudHNCeUFnZW50SWRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKA06AjgBIssCChdDbG91ZEFnZW50c0NvbnRlbnRCbG9jaxIwCgR0ZXh0GAEgASgLMiAucHVibGljX2FwaS5DbG91ZEFnZW50c1RleHRCbG9ja0gAEjcKCHRvb2xfdXNlGAIgASgLMiMucHVibGljX2FwaS5DbG91ZEFnZW50c1Rvb2xVc2VCbG9ja0gAEj0KC3Rvb2xfcmVzdWx0GAMgASgLMiYucHVibGljX2FwaS5DbG91ZEFnZW50c1Rvb2xSZXN1bHRCbG9ja0gAEjgKCHRoaW5raW5nGAQgASgLMiQucHVibGljX2FwaS5DbG91ZEFnZW50c1RoaW5raW5nQmxvY2tIABJDCg5leHRlcm5hbF9ldmVudBgFIAEoCzIpLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNFeHRlcm5hbEV2ZW50QmxvY2tIAEIHCgVibG9jayK2AgodQ2xvdWRBZ2VudHNDcmVhdGVBZ2VudFJlcXVlc3QSEgoKYWdlbnRfbmFtZRgBIAEoCRI2CgxjYXBhYmlsaXRpZXMYAiADKA4yIC5wdWJsaWNfYXBpLkNsb3VkQWdlbnRDYXBhYmlsaXR5EhwKD2luaXRpYWxfbWVzc2FnZRgDIAEoCUgAiAEBEkAKDnNlc3Npb25fY29uZmlnGAQgASgLMiMucHVibGljX2FwaS5DbG91ZEFnZW50U2Vzc2lvbkNvbmZpZ0gBiAEBEhwKD2lkZW1wb3RlbmN5X2tleRgFIAEoCUgCiAEBEhAKCHNwYWNlX2lkGAYgASgJQhIKEF9pbml0aWFsX21lc3NhZ2VCEQoPX3Nlc3Npb25fY29uZmlnQhIKEF9pZGVtcG90ZW5jeV9rZXkiRwoeQ2xvdWRBZ2VudHNDcmVhdGVBZ2VudFJlc3BvbnNlEiUKBWFnZW50GAEgASgLMhYucHVibGljX2FwaS5DbG91ZEFnZW50IjEKHUNsb3VkQWdlbnRzRGVsZXRlQWdlbnRSZXF1ZXN0EhAKCGFnZW50X2lkGAEgASgJIkMKHkNsb3VkQWdlbnRzRGVsZXRlQWdlbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhAKCGFnZW50X2lkGAIgASgJIpcBCh1DbG91ZEFnZW50c0V4dGVybmFsRXZlbnRCbG9jaxIOCgZzb3VyY2UYASABKAkSEgoKZXZlbnRfdHlwZRgCIAEoCRIPCgdzdW1tYXJ5GAMgASgJEg8KB2RldGFpbHMYBCABKAkSHAoPc3Vic2NyaXB0aW9uX2lkGAUgASgJSACIAQFCEgoQX3N1YnNjcmlwdGlvbl9pZCIuChpDbG91ZEFnZW50c0dldEFnZW50UmVxdWVzdBIQCghhZ2VudF9pZBgBIAEoCSJEChtDbG91ZEFnZW50c0dldEFnZW50UmVzcG9uc2USJQoFYWdlbnQYASABKAsyFi5wdWJsaWNfYXBpLkNsb3VkQWdlbnQi5wIKHUNsb3VkQWdlbnRzR2V0TWVzc2FnZXNSZXF1ZXN0EhAKCGFnZW50X2lkGAEgASgJEiEKEGFmdGVyX21lc3NhZ2VfaWQYAiABKAlCAhgBSACIAQESEgoFbGltaXQYAyABKA1IAYgBARI4Cg9hZnRlcl90aW1lc3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESOQoQYmVmb3JlX3RpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARIkChdpbmNsdWRlX3JlcGxheV9maWRlbGl0eRgGIAEoCEgEiAEBQhMKEV9hZnRlcl9tZXNzYWdlX2lkQggKBl9saW1pdEISChBfYWZ0ZXJfdGltZXN0YW1wQhMKEV9iZWZvcmVfdGltZXN0YW1wQhoKGF9pbmNsdWRlX3JlcGxheV9maWRlbGl0eSKHBAoeQ2xvdWRBZ2VudHNHZXRNZXNzYWdlc1Jlc3BvbnNlEjAKCG1lc3NhZ2VzGAEgAygLMh4ucHVibGljX2FwaS5DbG91ZEFnZW50c01lc3NhZ2USEAoIaGFzX25leHQYAiABKAgSHQoQZmlyc3RfbWVzc2FnZV9pZBgDIAEoCUgAiAEBEhwKD2xhc3RfbWVzc2FnZV9pZBgEIAEoCUgBiAEBEjIKDGFnZW50X3N0YXR1cxgFIAEoDjIcLnB1YmxpY19hcGkuQ2xvdWRBZ2VudFN0YXR1cxI+ChBwZW5kaW5nX21lc3NhZ2VzGAYgAygLMiQucHVibGljX2FwaS5DbG91ZEFnZW50c1F1ZXVlZE1lc3NhZ2USFAoMcXVldWVfcGF1c2VkGAcgASgIEhEKCWhhc19uZXdlchgIIAEoCBI5ChBvbGRlc3RfdGltZXN0YW1wGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjkKEG5ld2VzdF90aW1lc3RhbXAYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAOIAQFCEwoRX2ZpcnN0X21lc3NhZ2VfaWRCEgoQX2xhc3RfbWVzc2FnZV9pZEITChFfb2xkZXN0X3RpbWVzdGFtcEITChFfbmV3ZXN0X3RpbWVzdGFtcCJrCiNDbG91ZEFnZW50c0dldE1lc3NhZ2VzU3RyZWFtUmVxdWVzdBIQCghhZ2VudF9pZBgBIAEoCRIdChBhZnRlcl9tZXNzYWdlX2lkGAIgASgJSACIAQFCEwoRX2FmdGVyX21lc3NhZ2VfaWQi1wEKJENsb3VkQWdlbnRzR2V0TWVzc2FnZXNTdHJlYW1SZXNwb25zZRIQCghhZ2VudF9pZBgBIAEoCRIwCghtZXNzYWdlcxgCIAMoCzIeLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNNZXNzYWdlEh0KFXBlbmRpbmdfbWVzc2FnZV9jb3VudBgDIAEoDRIeChFsYXRlc3RfbWVzc2FnZV9pZBgEIAEoCUgAiAEBEhYKDnN0cmVhbV90aW1lb3V0GAUgASgIQhQKEl9sYXRlc3RfbWVzc2FnZV9pZCI+Ch9DbG91ZEFnZW50c0dpdEh1YlByb3ZpZGVyUGFyYW1zEgwKBGhvc3QYASABKAkSDQoFb3duZXIYAiABKAkiLwofQ2xvdWRBZ2VudHNHaXRMYWJQcm92aWRlclBhcmFtcxIMCgRob3N0GAEgASgJIroCCiNDbG91ZEFnZW50c0hhbmRvZmZUb1Bvc2VpZG9uUmVxdWVzdBIYChB0YXNrX2Rlc2NyaXB0aW9uGAEgASgJEhgKEGluaXRpYWxfbWVzc2FnZXMYAiADKAkSFgoJZXhwZXJ0X2lkGAMgASgJSACIAQESFwoKYWdlbnRfbmFtZRgEIAEoCUgBiAEBEhUKDXRvdWNoZWRfZmlsZXMYBSADKAkSHwoSd29ya2luZ190cmVlX3BhdGNoGAYgASgJSAKIAQESJQoYZXhpc3RpbmdfY29udmVyc2F0aW9uX2lkGAcgASgJSAOIAQFCDAoKX2V4cGVydF9pZEINCgtfYWdlbnRfbmFtZUIVChNfd29ya2luZ190cmVlX3BhdGNoQhsKGV9leGlzdGluZ19jb252ZXJzYXRpb25faWQiOAokQ2xvdWRBZ2VudHNIYW5kb2ZmVG9Qb3NlaWRvblJlc3BvbnNlEhAKCGFnZW50X2lkGAEgASgJIoADChxDbG91ZEFnZW50c0xpc3RBZ2VudHNSZXF1ZXN0EhQKDHNlYXJjaF9xdWVyeRgBIAEoCRIYChBpbmNsdWRlX2FyY2hpdmVkGAIgASgIEhEKCWV4cGVydF9pZBgDIAEoCRIxCg1jcmVhdGVkX2FmdGVyGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5jcmVhdGVkX2JlZm9yZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOaW5jbHVkZV9zaGFyZWQYBiABKAgSGwoTaW5jbHVkZV9vbGFjX3NoYXJlZBgHIAEoCBINCgVsaW1pdBgIIAEoDRISCgpwYWdlX3Rva2VuGAkgASgJEhAKCHNwYWNlX2lkGAogASgJEhoKEmRlZmF1bHRfc3BhY2Vfb25seRgLIAEoCBIcCg9wYXJlbnRfYWdlbnRfaWQYDCABKAlIAIgBAUISChBfcGFyZW50X2FnZW50X2lkInIKHUNsb3VkQWdlbnRzTGlzdEFnZW50c1Jlc3BvbnNlEiYKBmFnZW50cxgBIAMoCzIWLnB1YmxpY19hcGkuQ2xvdWRBZ2VudBIQCghoYXNfbW9yZRgCIAEoCBIXCg9uZXh0X3BhZ2VfdG9rZW4YAyABKAki0QEKI0Nsb3VkQWdlbnRzTWNwQ3JlZGVudGlhbFJlcXVpcmVtZW50EhYKDnJlcXVpcmVtZW50X2lkGAEgASgJEhUKDW1jcF9jb25maWdfaWQYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEhEKCWF1dGhfdHlwZRgEIAEoBRIOCgZyZWFzb24YBSABKAkSLgoKZXhwaXJlc19hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKcmVxdWVzdF9pZBgHIAEoCSJWChtDbG91ZEFnZW50c01jcFRvb2xSZWZlcmVuY2USEQoJc2VydmVyX2lkGAEgASgJEhYKCXRvb2xfbmFtZRgCIAEoCUgAiAEBQgwKCl90b29sX25hbWUijAIKEkNsb3VkQWdlbnRzTWVzc2FnZRIKCgJpZBgBIAEoCRIMCgRyb2xlGAIgASgJEjQKB2NvbnRlbnQYAyADKAsyIy5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzQ29udGVudEJsb2NrEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj0KCG1ldGFkYXRhGAUgASgLMiYucHVibGljX2FwaS5DbG91ZEFnZW50c01lc3NhZ2VNZXRhZGF0YUgAiAEBEhkKDGNvbXBvc2l0ZV9pZBgGIAEoCUgBiAEBQgsKCV9tZXRhZGF0YUIPCg1fY29tcG9zaXRlX2lkIs4BCiFDbG91ZEFnZW50c01lc3NhZ2VCaWxsaW5nTWV0YWRhdGESFgoOdHJhbnNhY3Rpb25faWQYASABKAkSGAoQY3JlZGl0c19jb25zdW1lZBgCIAEoBRIQCghjb3N0X3VzZBgDIAEoCRIpCgp1c2FnZV91bml0GAQgASgOMhUucHVibGljX2FwaS5Vc2FnZVVuaXQSIQoUZWZmZWN0aXZlX21vZGVsX25hbWUYBSABKAlIAIgBAUIXChVfZWZmZWN0aXZlX21vZGVsX25hbWUi2AUKGkNsb3VkQWdlbnRzTWVzc2FnZU1ldGFkYXRhEhcKCnJlcXVlc3RfaWQYASABKAlIAIgBARIYCgtzdG9wX3JlYXNvbhgCIAEoCUgBiAEBEhIKBW1vZGVsGAMgASgJSAKIAQESOwoLdG9rZW5fdXNhZ2UYBCABKAsyIS5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzVG9rZW5Vc2FnZUgDiAEBEhwKD3R1cm5fcmVxdWVzdF9pZBgFIAEoCUgEiAEBEhcKCmlzX3BhcnRpYWwYBiABKAhIBYgBARIVCghpc19maW5hbBgHIAEoCEgGiAEBEigKG3BlcnNpc3RlZF90aHJvdWdoX2V2ZW50X3NlcRgIIAEoA0gHiAEBEhwKD3N1YnNjcmlwdGlvbl9pZBgJIAEoCUgIiAEBEhsKDnNlbmRlcl91c2VyX2lkGAogASgJSAmIAQESRwoQYmlsbGluZ19tZXRhZGF0YRgLIAMoCzItLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNNZXNzYWdlQmlsbGluZ01ldGFkYXRhEkQKE3Zmc19maWxlX3JlZmVyZW5jZXMYDCADKAsyJy5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzVmZzRmlsZVJlZmVyZW5jZRJEChNtY3BfdG9vbF9yZWZlcmVuY2VzGA0gAygLMicucHVibGljX2FwaS5DbG91ZEFnZW50c01jcFRvb2xSZWZlcmVuY2VCDQoLX3JlcXVlc3RfaWRCDgoMX3N0b3BfcmVhc29uQggKBl9tb2RlbEIOCgxfdG9rZW5fdXNhZ2VCEgoQX3R1cm5fcmVxdWVzdF9pZEINCgtfaXNfcGFydGlhbEILCglfaXNfZmluYWxCHgocX3BlcnNpc3RlZF90aHJvdWdoX2V2ZW50X3NlcUISChBfc3Vic2NyaXB0aW9uX2lkQhEKD19zZW5kZXJfdXNlcl9pZCJQChlDbG91ZEFnZW50c1Byb3ZpZGVyUGFyYW1zEhAKCHByb3ZpZGVyGAEgASgJEgwKBGhvc3QYAiABKAkSEwoLcGF0aF9wcmVmaXgYAyABKAkibgoYQ2xvdWRBZ2VudHNRdWV1ZWRNZXNzYWdlEhAKCGV2ZW50X2lkGAEgASgJEi8KC3JlY2VpdmVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdjb250ZW50GAMgASgJIq4DCidDbG91ZEFnZW50c1JlZnJlc2hHaXRDcmVkZW50aWFsc1JlcXVlc3QSPQoGZ2l0aHViGAMgASgLMisucHVibGljX2FwaS5DbG91ZEFnZW50c0dpdEh1YlByb3ZpZGVyUGFyYW1zSAASPQoGZ2l0bGFiGAQgASgLMisucHVibGljX2FwaS5DbG91ZEFnZW50c0dpdExhYlByb3ZpZGVyUGFyYW1zSAASSAoMYXp1cmVfZGV2b3BzGAUgASgLMjAucHVibGljX2FwaS5DbG91ZEFnZW50c0F6dXJlRGV2T3BzUHJvdmlkZXJQYXJhbXNIABI4CgdnZW5lcmljGAkgASgLMiUucHVibGljX2FwaS5DbG91ZEFnZW50c1Byb3ZpZGVyUGFyYW1zSAASHgoWY2FwYWJpbGl0eV9pbnN0YW5jZV9pZBgBIAEoCRISCgpza2lwX2NhY2hlGAIgASgIEhAKCGFnZW50X2lkGAYgASgJEhIKCnJlcXVlc3RfaWQYByABKAkSFAoMZGFlbW9uX3ZtX2lkGAggASgJQhEKD3Byb3ZpZGVyX3BhcmFtcyIqCihDbG91ZEFnZW50c1JlZnJlc2hHaXRDcmVkZW50aWFsc1Jlc3BvbnNlIkMKHUNsb3VkQWdlbnRzUmVuYW1lQWdlbnRSZXF1ZXN0EhAKCGFnZW50X2lkGAEgASgJEhAKCG5ld19uYW1lGAIgASgJIkcKHkNsb3VkQWdlbnRzUmVuYW1lQWdlbnRSZXNwb25zZRIlCgVhZ2VudBgBIAEoCzIWLnB1YmxpY19hcGkuQ2xvdWRBZ2VudCJhCiJDbG91ZEFnZW50c1JlcXVlc3RNY3BTZXJ2ZXJSZXF1ZXN0EhAKCGFnZW50X2lkGAEgASgJEhUKDW1jcF9jb25maWdfaWQYAiABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSKmAQojQ2xvdWRBZ2VudHNSZXF1ZXN0TWNwU2VydmVyUmVzcG9uc2USDgoGc3RhdHVzGAEgASgJElQKFmNyZWRlbnRpYWxfcmVxdWlyZW1lbnQYAiABKAsyLy5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzTWNwQ3JlZGVudGlhbFJlcXVpcmVtZW50SACIAQFCGQoXX2NyZWRlbnRpYWxfcmVxdWlyZW1lbnQidAodQ2xvdWRBZ2VudHNTZW5kTWVzc2FnZVJlcXVlc3QSEAoIYWdlbnRfaWQYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIcCg9pZGVtcG90ZW5jeV9rZXkYAyABKAlIAIgBAUISChBfaWRlbXBvdGVuY3lfa2V5ImsKHkNsb3VkQWdlbnRzU2VuZE1lc3NhZ2VSZXNwb25zZRIlCgVhZ2VudBgBIAEoCzIWLnB1YmxpY19hcGkuQ2xvdWRBZ2VudBIOCgZxdWV1ZWQYAiABKAgSEgoKcmVxdWVzdF9pZBgDIAEoCSKOAQoUQ2xvdWRBZ2VudHNUZXh0QmxvY2sSDAoEdGV4dBgBIAEoCRIWCglnb29nbGVfdHMYAiABKAxIAIgBARIWCglvcGVuYWlfaWQYAyABKAlIAYgBARISCgVwaGFzZRgEIAEoCUgCiAEBQgwKCl9nb29nbGVfdHNCDAoKX29wZW5haV9pZEIICgZfcGhhc2UizQEKGENsb3VkQWdlbnRzVGhpbmtpbmdCbG9jaxIPCgdjb250ZW50GAEgASgJEhQKB3N1bW1hcnkYAiABKAlIAIgBARIeChFlbmNyeXB0ZWRfY29udGVudBgDIAEoCUgBiAEBEhUKCHByb3ZpZGVyGAQgASgJSAKIAQESFgoJb3BlbmFpX2lkGAUgASgJSAOIAQFCCgoIX3N1bW1hcnlCFAoSX2VuY3J5cHRlZF9jb250ZW50QgsKCV9wcm92aWRlckIMCgpfb3BlbmFpX2lkIvwCChVDbG91ZEFnZW50c1Rva2VuVXNhZ2USFAoMaW5wdXRfdG9rZW5zGAEgASgNEhUKDW91dHB1dF90b2tlbnMYAiABKA0SHwoXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMYAyABKA0SIwobY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zGAQgASgNEhwKFHN5c3RlbV9wcm9tcHRfdG9rZW5zGAUgASgNEhsKE2NoYXRfaGlzdG9yeV90b2tlbnMYBiABKA0SHgoWY3VycmVudF9tZXNzYWdlX3Rva2VucxgHIAEoDRIaChJtYXhfY29udGV4dF90b2tlbnMYCCABKA0SHwoXdG9vbF9kZWZpbml0aW9uc190b2tlbnMYCSABKA0SGgoSdG9vbF9yZXN1bHRfdG9rZW5zGAogASgNEiEKGWFzc2lzdGFudF9yZXNwb25zZV90b2tlbnMYCyABKA0SGQoRbWF4X291dHB1dF90b2tlbnMYDCABKA0iZgoaQ2xvdWRBZ2VudHNUb29sUmVzdWx0QmxvY2sSEwoLdG9vbF91c2VfaWQYASABKAkSDwoHY29udGVudBgCIAEoCRIVCghpc19lcnJvchgDIAEoCEgAiAEBQgsKCV9pc19lcnJvciKsAQoXQ2xvdWRBZ2VudHNUb29sVXNlQmxvY2sSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgVpbnB1dBgDIAEoCRIWCglnb29nbGVfdHMYBCABKAxIAIgBARIWCglvcGVuYWlfaWQYBSABKAlIAYgBARISCgVwaGFzZRgGIAEoCUgCiAEBQgwKCl9nb29nbGVfdHNCDAoKX29wZW5haV9pZEIICgZfcGhhc2UiNAogQ2xvdWRBZ2VudHNVbmFyY2hpdmVBZ2VudFJlcXVlc3QSEAoIYWdlbnRfaWQYASABKAkiNQohQ2xvdWRBZ2VudHNVbmFyY2hpdmVBZ2VudFJlc3BvbnNlEhAKCGFnZW50X2lkGAEgASgJImgKKENsb3VkQWdlbnRzVXBkYXRlQWdlbnRTZXNzaW9uVGFnc1JlcXVlc3QSEAoIYWdlbnRfaWQYASABKAkSCwoDa2V5GAIgASgJEg0KBXZhbHVlGAMgASgJEg4KBmRlbGV0ZRgEIAEoCCJSCilDbG91ZEFnZW50c1VwZGF0ZUFnZW50U2Vzc2lvblRhZ3NSZXNwb25zZRIlCgVhZ2VudBgBIAEoCzIWLnB1YmxpY19hcGkuQ2xvdWRBZ2VudCJ2CiVDbG91ZEFnZW50c1VwZGF0ZVNlc3Npb25Db25maWdSZXF1ZXN0EhAKCGFnZW50X2lkGAEgASgJEjsKDnNlc3Npb25fY29uZmlnGAIgASgLMiMucHVibGljX2FwaS5DbG91ZEFnZW50U2Vzc2lvbkNvbmZpZyJPCiZDbG91ZEFnZW50c1VwZGF0ZVNlc3Npb25Db25maWdSZXNwb25zZRIlCgVhZ2VudBgBIAEoCzIWLnB1YmxpY19hcGkuQ2xvdWRBZ2VudCJ1ChtDbG91ZEFnZW50c1Zmc0ZpbGVSZWZlcmVuY2USDwoHZmlsZV9pZBgBIAEoCRIVCg1maWxlc3lzdGVtX2lkGAIgASgJEgwKBHBhdGgYAyABKAkSEAoIc3BhY2VfaWQYBCABKAkSDgoGaXNfZGlyGAUgASgIIvkCCg9DbG91ZERhZW1vblBvb2wSCgoCaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhIKCnZpc2liaWxpdHkYBCABKAUSGgoSY3JlYXRlZF9ieV91c2VyX2lkGAUgASgJEhwKFGNyZWF0ZWRfYnlfdXNlcl9uYW1lGAYgASgJEhIKCmNyZWF0ZWRfYXQYByABKAkSEgoKdXBkYXRlZF9hdBgIIAEoCRIYChByZXNvdXJjZV92ZXJzaW9uGAkgASgDEhIKCmRlbGV0ZWRfYXQYCiABKAkSIAoYZGFlbW9uX2Nvbm5lY3Rvcl91c2VyX2lkGAsgASgJEhAKCHNwYWNlX2lkGAwgASgJElcKGndvcmtzcGFjZV9pc29sYXRpb25fcG9saWN5GA0gASgOMjMucHVibGljX2FwaS5DbG91ZERhZW1vblBvb2xXb3Jrc3BhY2VJc29sYXRpb25Qb2xpY3kiXwodQ2xvdWREYWVtb25Qb29sQ29ubmVjdG9ySW5wdXQSEQoHdXNlcl9pZBgBIAEoCUgAEh4KFHNlcnZpY2VfYWNjb3VudF9uYW1lGAIgASgJSABCCwoJY29ubmVjdG9yIssBChVDbG91ZERhZW1vblBvb2xEYWVtb24SDQoFdm1faWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtzbG90c190b3RhbBgDIAEoBRIUCgxzbG90c19pbl91c2UYBCABKAUSFgoOd29ya3NwYWNlX3BhdGgYBSABKAkSFAoMY29ubmVjdGVkX2F0GAYgASgJEhYKDmxhc3RfaGVhcnRiZWF0GAcgASgJEg8KB3Bvb2xfaWQYCCABKAkSEwoLY2xpX3ZlcnNpb24YCSABKAkiwgEKFUNsb3VkRGFlbW9uUG9vbFN0YXR1cxIWCg5kYWVtb25zX29ubGluZRgBIAEoBRITCgtzbG90c190b3RhbBgCIAEoBRIUCgxzbG90c19pbl91c2UYAyABKAUSGAoQbGFzdF9kYWVtb25fc2VlbhgEIAEoCRIqCh13b3JrdHJlZV9jYXBhYmxlX2RhZW1vbl9jb3VudBgFIAEoBUgAiAEBQiAKHl93b3JrdHJlZV9jYXBhYmxlX2RhZW1vbl9jb3VudCLeBQoQQ2xvdWRFbnZpcm9ubWVudBIQCghpbWFnZV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSFwoPY3VycmVudF92ZXJzaW9uGAQgASgJEhIKBnN0YXR1cxgFIAEoBUICGAESEgoKdmlzaWJpbGl0eRgGIAEoBRIWCg5tb2RhbF9pbWFnZV9pZBgHIAEoCRISCgpjcmVhdGVkX2F0GAggASgJEhIKCnVwZGF0ZWRfYXQYCSABKAkSGAoQcmVzb3VyY2VfdmVyc2lvbhgKIAEoAxI6CgVyZXBvcxgLIAMoCzIrLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudENsb25lUmVwb3NpdG9yeRJEChVlbnZpcm9ubWVudF92YXJpYWJsZXMYDCABKAsyJS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRWYXJpYWJsZXMSEgoKYmFzZV9pbWFnZRgNIAEoCRIXCg9yZWZyZXNoX2VuYWJsZWQYDiABKAgSEAoIc3BhY2VfaWQYDyABKAkSNAoEdGFncxgQIAMoCzImLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudC5UYWdzRW50cnkSPAoQbGlmZWN5Y2xlX3N0YXR1cxgRIAEoDjIiLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFN0YXR1cxIbChNzYW5kYm94X3Byb3ZpZGVyX2lkGBIgASgJEjoKEHNhbmRib3hfcHJvdmlkZXIYEyABKAsyIC5wdWJsaWNfYXBpLkNsb3VkU2FuZGJveFByb3ZpZGVyEjcKCXZtX2NvbmZpZxgUIAEoCzIkLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFZNQ29uZmlnGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIm0KH0Nsb3VkRW52aXJvbm1lbnRDbG9uZVJlcG9zaXRvcnkSDQoFb3duZXIYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZicmFuY2gYAyABKAkSDAoEaG9zdBgEIAEoCRIPCgdwcm9qZWN0GAUgASgJItcDChZDbG91ZEVudmlyb25tZW50Q29uZmlnEhQKDGRpc3BsYXlfbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRISCgp2aXNpYmlsaXR5GAMgASgFEjoKBXJlcG9zGAQgAygLMisucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50Q2xvbmVSZXBvc2l0b3J5EkQKFWVudmlyb25tZW50X3ZhcmlhYmxlcxgFIAEoCzIlLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFZhcmlhYmxlcxISCgpiYXNlX2ltYWdlGAYgASgJEhcKD3JlZnJlc2hfZW5hYmxlZBgHIAEoCBIQCghzcGFjZV9pZBgIIAEoCRI6CgR0YWdzGAkgAygLMiwucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50Q29uZmlnLlRhZ3NFbnRyeRIbChNzYW5kYm94X3Byb3ZpZGVyX2lkGAogASgJEjcKCXZtX2NvbmZpZxgLIAEoCzIkLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFZNQ29uZmlnGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIrsEChlDbG91ZEVudmlyb25tZW50T3BlcmF0aW9uEhQKDG9wZXJhdGlvbl9pZBgBIAEoCRJBCg5vcGVyYXRpb25fdHlwZRgCIAEoDjIpLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvblR5cGUSFgoOZW52aXJvbm1lbnRfaWQYAyABKAkSOQoFc3RhdGUYBCABKA4yKi5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRPcGVyYXRpb25TdGF0ZRI5CgVwaGFzZRgFIAEoDjIqLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvblBoYXNlEhIKCmNyZWF0ZWRfYXQYBiABKAkSEgoKc3RhcnRlZF9hdBgHIAEoCRISCgp1cGRhdGVkX2F0GAggASgJEhQKDGNvbXBsZXRlZF9hdBgJIAEoCRIdChBzdGFydGluZ192ZXJzaW9uGAogASgJSACIAQESIQoZc3RhcnRpbmdfcmVzb3VyY2VfdmVyc2lvbhgLIAEoAxI7CgZyZXN1bHQYDSABKAsyKy5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRPcGVyYXRpb25SZXN1bHQSOQoFZXJyb3IYDiABKAsyKi5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRPcGVyYXRpb25FcnJvckITChFfc3RhcnRpbmdfdmVyc2lvbkoECAwQDVIQY2FuY2VsX3JlcXVlc3RlZCKCAQoeQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvbkVycm9yEjwKBGNvZGUYASABKA4yLi5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRPcGVyYXRpb25FcnJvckNvZGUSDwoHbWVzc2FnZRgCIAEoCRIRCglyZXRyeWFibGUYAyABKAgiZAofQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvblJlc3VsdBIWCg5tb2RhbF9pbWFnZV9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YAyABKAMiagoTQ2xvdWRFbnZpcm9ubWVudFJlZhIXCg1iYXNlX2ltYWdlX2lkGAEgASgJSAASGAoOZGFlbW9uX3Bvb2xfaWQYAiABKAlIABIWCgxkYWVtb25fdm1faWQYAyABKAlIAEIICgZ0YXJnZXQiOAoZQ2xvdWRFbnZpcm9ubWVudFJlc291cmNlcxILCgNjcHUYASABKAkSDgoGbWVtb3J5GAIgASgJIocFChdDbG91ZEVudmlyb25tZW50U3VtbWFyeRI4Cgtwb29sX3N0YXR1cxgUIAEoCzIhLnB1YmxpY19hcGkuQ2xvdWREYWVtb25Qb29sU3RhdHVzSAASOgoIdW5wb29sZWQYFSABKAsyJi5wdWJsaWNfYXBpLkNsb3VkVW5wb29sZWREYWVtb25TdW1tYXJ5SAASCgoCaWQYASABKAkSLgoEa2luZBgCIAEoDjIgLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudEtpbmQSFAoMZGlzcGxheV9uYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhIKCnZpc2liaWxpdHkYBSABKAUSEgoKY3JlYXRlZF9hdBgGIAEoCRISCgp1cGRhdGVkX2F0GAcgASgJEhoKEmNyZWF0ZWRfYnlfdXNlcl9pZBgIIAEoCRIcChRjcmVhdGVkX2J5X3VzZXJfbmFtZRgJIAEoCRIQCghzcGFjZV9pZBgKIAEoCRIXCg9jdXJyZW50X3ZlcnNpb24YCyABKAkSMgoGc3RhdHVzGAwgASgOMiIucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50U3RhdHVzElcKGndvcmtzcGFjZV9pc29sYXRpb25fcG9saWN5GA0gASgOMjMucHVibGljX2FwaS5DbG91ZERhZW1vblBvb2xXb3Jrc3BhY2VJc29sYXRpb25Qb2xpY3kSGwoTc2FuZGJveF9wcm92aWRlcl9pZBgOIAEoCRI6ChBzYW5kYm94X3Byb3ZpZGVyGA8gASgLMiAucHVibGljX2FwaS5DbG91ZFNhbmRib3hQcm92aWRlckIICgZleHRyYXMiggEKGENsb3VkRW52aXJvbm1lbnRWTUNvbmZpZxI4CglyZXNvdXJjZXMYAyABKAsyJS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRSZXNvdXJjZXMSFwoKdm1fcnVudGltZRgCIAEoCEgAiAEBQg0KC192bV9ydW50aW1lSgQIARACIjcKGENsb3VkRW52aXJvbm1lbnRWYXJpYWJsZRIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgJIlQKGUNsb3VkRW52aXJvbm1lbnRWYXJpYWJsZXMSNwoJdmFyaWFibGVzGAEgAygLMiQucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50VmFyaWFibGUiswIKF0Nsb3VkRW52aXJvbm1lbnRWZXJzaW9uEhAKCGltYWdlX2lkGAEgASgJEg8KB3ZlcnNpb24YAiABKAkSFQoNZ2NwX2ltYWdlX3VybBgDIAEoCRIXCg91cHN0cmVhbV9kaWdlc3QYBCABKAkSEgoKY3JlYXRlZF9hdBgFIAEoCRISCgZzdGF0dXMYBiABKAVCAhgBEhUKDWVycm9yX21lc3NhZ2UYByABKAkSFgoObW9kYWxfaW1hZ2VfaWQYCCABKAkSFQoNdXBkYXRlX3NjcmlwdBgJIAEoCRIZChFoYXNfdXBkYXRlX3NjcmlwdBgKIAEoCBI8ChBsaWZlY3ljbGVfc3RhdHVzGAsgASgOMiIucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50U3RhdHVzIqsBChxDbG91ZEVudmlyb25tZW50VmVyc2lvbkVudHJ5EhgKEHJlc291cmNlX3ZlcnNpb24YASABKAMSMgoGY29uZmlnGAIgASgLMiIucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50Q29uZmlnEhMKC21vZGlmaWVkX2J5GAMgASgJEhMKC21vZGlmaWVkX2F0GAQgASgJEhMKC2NoYW5nZV90eXBlGAUgASgJIj8KJ0Nsb3VkRW52aXJvbm1lbnRzQ2FuY2VsT3BlcmF0aW9uUmVxdWVzdBIUCgxvcGVyYXRpb25faWQYASABKAkiZAooQ2xvdWRFbnZpcm9ubWVudHNDYW5jZWxPcGVyYXRpb25SZXNwb25zZRI4CglvcGVyYXRpb24YASABKAsyJS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRPcGVyYXRpb24ihQEKJ0Nsb3VkRW52aXJvbm1lbnRzQ3JlYXRlQmFzZUltYWdlUmVxdWVzdBIyCgZjb25maWcYASABKAsyIi5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRDb25maWcSFwoKYmFzZV9pbWFnZRgCIAEoCUgAiAEBQg0KC19iYXNlX2ltYWdlIl0KKENsb3VkRW52aXJvbm1lbnRzQ3JlYXRlQmFzZUltYWdlUmVzcG9uc2USMQoLZW52aXJvbm1lbnQYASABKAsyHC5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnQipgIKKENsb3VkRW52aXJvbm1lbnRzQ3JlYXRlRGFlbW9uUG9vbFJlcXVlc3QSFAoMZGlzcGxheV9uYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhcKCnZpc2liaWxpdHkYAyABKAVIAIgBARI8Cgljb25uZWN0b3IYBCABKAsyKS5wdWJsaWNfYXBpLkNsb3VkRGFlbW9uUG9vbENvbm5lY3RvcklucHV0EhAKCHNwYWNlX2lkGAUgASgJElcKGndvcmtzcGFjZV9pc29sYXRpb25fcG9saWN5GAYgASgOMjMucHVibGljX2FwaS5DbG91ZERhZW1vblBvb2xXb3Jrc3BhY2VJc29sYXRpb25Qb2xpY3lCDQoLX3Zpc2liaWxpdHkiVgopQ2xvdWRFbnZpcm9ubWVudHNDcmVhdGVEYWVtb25Qb29sUmVzcG9uc2USKQoEcG9vbBgBIAEoCzIbLnB1YmxpY19hcGkuQ2xvdWREYWVtb25Qb29sItoBCi1DbG91ZEVudmlyb25tZW50c0NyZWF0ZVNhbmRib3hQcm92aWRlclJlcXVlc3QSDAoEc2x1ZxgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSFAoHZW5hYmxlZBgFIAEoCEgAiAEBEhEKCXNwYWNlX2lkcxgGIAMoCRIXCgphbGxfc3BhY2VzGAcgASgISAGIAQFCCgoIX2VuYWJsZWRCDQoLX2FsbF9zcGFjZXNKBAgEEAVSDXByb3ZpZGVyX3R5cGUiZAouQ2xvdWRFbnZpcm9ubWVudHNDcmVhdGVTYW5kYm94UHJvdmlkZXJSZXNwb25zZRIyCghwcm92aWRlchgBIAEoCzIgLnB1YmxpY19hcGkuQ2xvdWRTYW5kYm94UHJvdmlkZXIiOwonQ2xvdWRFbnZpcm9ubWVudHNEZWxldGVCYXNlSW1hZ2VSZXF1ZXN0EhAKCGltYWdlX2lkGAEgASgJIioKKENsb3VkRW52aXJvbm1lbnRzRGVsZXRlQmFzZUltYWdlUmVzcG9uc2UiNgooQ2xvdWRFbnZpcm9ubWVudHNEZWxldGVEYWVtb25Qb29sUmVxdWVzdBIKCgJpZBgBIAEoCSIrCilDbG91ZEVudmlyb25tZW50c0RlbGV0ZURhZW1vblBvb2xSZXNwb25zZSJeCi1DbG91ZEVudmlyb25tZW50c0RlbGV0ZVNhbmRib3hQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkSIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgCIAEoAyIwCi5DbG91ZEVudmlyb25tZW50c0RlbGV0ZVNhbmRib3hQcm92aWRlclJlc3BvbnNlIocBCipDbG91ZEVudmlyb25tZW50c0R1cGxpY2F0ZUJhc2VJbWFnZVJlcXVlc3QSFwoPc291cmNlX2ltYWdlX2lkGAEgASgJEhgKEG5ld19kaXNwbGF5X25hbWUYAiABKAkSFwoKdmlzaWJpbGl0eRgDIAEoBUgAiAEBQg0KC192aXNpYmlsaXR5ImAKK0Nsb3VkRW52aXJvbm1lbnRzRHVwbGljYXRlQmFzZUltYWdlUmVzcG9uc2USMQoLZW52aXJvbm1lbnQYASABKAsyHC5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnQiRAoqQ2xvdWRFbnZpcm9ubWVudHNHZXRBY3RpdmVPcGVyYXRpb25SZXF1ZXN0EhYKDmVudmlyb25tZW50X2lkGAEgASgJImcKK0Nsb3VkRW52aXJvbm1lbnRzR2V0QWN0aXZlT3BlcmF0aW9uUmVzcG9uc2USOAoJb3BlcmF0aW9uGAEgASgLMiUucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50T3BlcmF0aW9uIq4BCiZDbG91ZEVudmlyb25tZW50c0dldEVudmlyb25tZW50UmVxdWVzdBIUCghpbWFnZV9pZBgBIAEoCUICGAESHAoQaW5jbHVkZV92ZXJzaW9ucxgCIAEoCEICGAESLAoDcmVmGAMgASgLMh8ucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50UmVmEiIKGnJlc29sdmVfdXNlcl9kaXNwbGF5X25hbWVzGAQgASgIIocDCidDbG91ZEVudmlyb25tZW50c0dldEVudmlyb25tZW50UmVzcG9uc2USMgoKYmFzZV9pbWFnZRgEIAEoCzIcLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudEgAEjIKC2RhZW1vbl9wb29sGAUgASgLMhsucHVibGljX2FwaS5DbG91ZERhZW1vblBvb2xIABJBCg91bnBvb2xlZF9kYWVtb24YBiABKAsyJi5wdWJsaWNfYXBpLkNsb3VkVW5wb29sZWREYWVtb25TdW1tYXJ5SAASNQoLZW52aXJvbm1lbnQYASABKAsyHC5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRCAhgBEjkKCHZlcnNpb25zGAIgAygLMiMucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50VmVyc2lvbkICGAESNAoHc3VtbWFyeRgDIAEoCzIjLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFN1bW1hcnlCCQoHZGV0YWlscyI8CiRDbG91ZEVudmlyb25tZW50c0dldE9wZXJhdGlvblJlcXVlc3QSFAoMb3BlcmF0aW9uX2lkGAEgASgJImEKJUNsb3VkRW52aXJvbm1lbnRzR2V0T3BlcmF0aW9uUmVzcG9uc2USOAoJb3BlcmF0aW9uGAEgASgLMiUucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50T3BlcmF0aW9uIncKKkNsb3VkRW52aXJvbm1lbnRzR2V0U2FuZGJveFByb3ZpZGVyUmVxdWVzdBIMCgRzbHVnGAEgASgJEhcKD2luY2x1ZGVfZGVsZXRlZBgCIAEoCBIVCghzcGFjZV9pZBgDIAEoCUgAiAEBQgsKCV9zcGFjZV9pZCJhCitDbG91ZEVudmlyb25tZW50c0dldFNhbmRib3hQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAucHVibGljX2FwaS5DbG91ZFNhbmRib3hQcm92aWRlciJQCiJDbG91ZEVudmlyb25tZW50c0dldFZlcnNpb25SZXF1ZXN0EhAKCGltYWdlX2lkGAEgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YAiABKAMiYAojQ2xvdWRFbnZpcm9ubWVudHNHZXRWZXJzaW9uUmVzcG9uc2USOQoHdmVyc2lvbhgBIAEoCzIoLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFZlcnNpb25FbnRyeSJfCitDbG91ZEVudmlyb25tZW50c0xpc3RCYXNlSW1hZ2VCdWlsZHNSZXF1ZXN0EhAKCGltYWdlX2lkGAEgASgJEh4KFmluY2x1ZGVfdXBkYXRlX3NjcmlwdHMYAiABKAgiYwosQ2xvdWRFbnZpcm9ubWVudHNMaXN0QmFzZUltYWdlQnVpbGRzUmVzcG9uc2USMwoGYnVpbGRzGAEgAygLMiMucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50VmVyc2lvbiJACi1DbG91ZEVudmlyb25tZW50c0xpc3REYWVtb25Qb29sRGFlbW9uc1JlcXVlc3QSDwoHcG9vbF9pZBgBIAEoCSJkCi5DbG91ZEVudmlyb25tZW50c0xpc3REYWVtb25Qb29sRGFlbW9uc1Jlc3BvbnNlEjIKB2RhZW1vbnMYASADKAsyIS5wdWJsaWNfYXBpLkNsb3VkRGFlbW9uUG9vbERhZW1vbiKIAwooQ2xvdWRFbnZpcm9ubWVudHNMaXN0RW52aXJvbm1lbnRzUmVxdWVzdBIXCg9pbmNsdWRlX2RlbGV0ZWQYASABKAgSIgoacmVzb2x2ZV91c2VyX2Rpc3BsYXlfbmFtZXMYAiABKAgSLwoFa2luZHMYAyADKA4yIC5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRLaW5kEhEKCXBhZ2Vfc2l6ZRgEIAEoBRISCgpwYWdlX3Rva2VuGAUgASgJEjkKCG9yZGVyX2J5GAYgASgOMicucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50TGlzdE9yZGVyQnkSFAoMc2VhcmNoX3F1ZXJ5GAcgASgJEhIKCm93bmVkX29ubHkYCCABKAgSNAoFc2NvcGUYCSABKA4yJS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRMaXN0U2NvcGUSEAoIc3BhY2VfaWQYCiABKAkSGgoSZGVmYXVsdF9zcGFjZV9vbmx5GAsgASgIItUBCilDbG91ZEVudmlyb25tZW50c0xpc3RFbnZpcm9ubWVudHNSZXNwb25zZRI2CgxlbnZpcm9ubWVudHMYASADKAsyHC5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRCAhgBEkIKFWVudmlyb25tZW50X3N1bW1hcmllcxgCIAMoCzIjLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFN1bW1hcnkSFwoPbmV4dF9wYWdlX3Rva2VuGAMgASgJEhMKC3RvdGFsX2NvdW50GAQgASgFImsKLENsb3VkRW52aXJvbm1lbnRzTGlzdFNhbmRib3hQcm92aWRlcnNSZXF1ZXN0EhcKD2luY2x1ZGVfZGVsZXRlZBgBIAEoCBIVCghzcGFjZV9pZBgCIAEoCUgAiAEBQgsKCV9zcGFjZV9pZCJkCi1DbG91ZEVudmlyb25tZW50c0xpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAucHVibGljX2FwaS5DbG91ZFNhbmRib3hQcm92aWRlciJHCiRDbG91ZEVudmlyb25tZW50c0xpc3RWZXJzaW9uc1JlcXVlc3QSEAoIaW1hZ2VfaWQYASABKAkSDQoFbGltaXQYAiABKAUiYwolQ2xvdWRFbnZpcm9ubWVudHNMaXN0VmVyc2lvbnNSZXNwb25zZRI6Cgh2ZXJzaW9ucxgBIAMoCzIoLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFZlcnNpb25FbnRyeSLxAQooQ2xvdWRFbnZpcm9ubWVudHNSZWJ1aWxkQmFzZUltYWdlUmVxdWVzdBIQCghpbWFnZV9pZBgBIAEoCRIdChBwcm92aXNpb25fc2NyaXB0GAIgASgJSACIAQESHgoRdm1fc3RhcnR1cF9zY3JpcHQYAyABKAlIAYgBARIbCg5iYXNlX2ltYWdlX3JlZhgEIAEoCUgCiAEBQhMKEV9wcm92aXNpb25fc2NyaXB0QhQKEl92bV9zdGFydHVwX3NjcmlwdEIRCg9fYmFzZV9pbWFnZV9yZWZKBAgFEAZSE3VzZV9kZWZhdWx0X3NjcmlwdHMibQopQ2xvdWRFbnZpcm9ubWVudHNSZWJ1aWxkQmFzZUltYWdlUmVzcG9uc2USFgoObW9kYWxfaW1hZ2VfaWQYASABKAkSEgoKdXBkYXRlZF9hdBgDIAEoCUoECAIQA1IOYXVnbWVudF9jb21taXQicAooQ2xvdWRFbnZpcm9ubWVudHNSZWZyZXNoQmFzZUltYWdlUmVxdWVzdBIQCghpbWFnZV9pZBgBIAEoCRIfCg5lbnZpcm9ubWVudF9pZBgCIAEoCUICGAFIAIgBAUIRCg9fZW52aXJvbm1lbnRfaWQiKwopQ2xvdWRFbnZpcm9ubWVudHNSZWZyZXNoQmFzZUltYWdlUmVzcG9uc2UiPAooQ2xvdWRFbnZpcm9ubWVudHNSZXN0b3JlQmFzZUltYWdlUmVxdWVzdBIQCghpbWFnZV9pZBgBIAEoCSJeCilDbG91ZEVudmlyb25tZW50c1Jlc3RvcmVCYXNlSW1hZ2VSZXNwb25zZRIxCgtlbnZpcm9ubWVudBgBIAEoCzIcLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudCI3CilDbG91ZEVudmlyb25tZW50c1Jlc3RvcmVEYWVtb25Qb29sUmVxdWVzdBIKCgJpZBgBIAEoCSJXCipDbG91ZEVudmlyb25tZW50c1Jlc3RvcmVEYWVtb25Qb29sUmVzcG9uc2USKQoEcG9vbBgBIAEoCzIbLnB1YmxpY19hcGkuQ2xvdWREYWVtb25Qb29sIl8KLkNsb3VkRW52aXJvbm1lbnRzUmVzdG9yZVNhbmRib3hQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkSIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgCIAEoAyJlCi9DbG91ZEVudmlyb25tZW50c1Jlc3RvcmVTYW5kYm94UHJvdmlkZXJSZXNwb25zZRIyCghwcm92aWRlchgBIAEoCzIgLnB1YmxpY19hcGkuQ2xvdWRTYW5kYm94UHJvdmlkZXIi5wEKLENsb3VkRW52aXJvbm1lbnRzU3RhcnRCYXNlSW1hZ2VDcmVhdGVSZXF1ZXN0EjIKBmNvbmZpZxgBIAEoCzIiLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudENvbmZpZxIXCgpiYXNlX2ltYWdlGAIgASgJSACIAQESFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEiUKGHJlZ2lzdHJ5X2NyZWRlbnRpYWxfbmFtZRgEIAEoCUgBiAEBQg0KC19iYXNlX2ltYWdlQhsKGV9yZWdpc3RyeV9jcmVkZW50aWFsX25hbWUinAEKLUNsb3VkRW52aXJvbm1lbnRzU3RhcnRCYXNlSW1hZ2VDcmVhdGVSZXNwb25zZRIxCgtlbnZpcm9ubWVudBgBIAEoCzIcLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudBI4CglvcGVyYXRpb24YAiABKAsyJS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRPcGVyYXRpb24ivgIKLUNsb3VkRW52aXJvbm1lbnRzU3RhcnRCYXNlSW1hZ2VSZWJ1aWxkUmVxdWVzdBIWCg5lbnZpcm9ubWVudF9pZBgBIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAiABKAkSHQoQcHJvdmlzaW9uX3NjcmlwdBgDIAEoCUgAiAEBEh4KEXZtX3N0YXJ0dXBfc2NyaXB0GAQgASgJSAGIAQESGwoOYmFzZV9pbWFnZV9yZWYYBSABKAlIAogBARIlChhyZWdpc3RyeV9jcmVkZW50aWFsX25hbWUYBiABKAlIA4gBAUITChFfcHJvdmlzaW9uX3NjcmlwdEIUChJfdm1fc3RhcnR1cF9zY3JpcHRCEQoPX2Jhc2VfaW1hZ2VfcmVmQhsKGV9yZWdpc3RyeV9jcmVkZW50aWFsX25hbWUiagouQ2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVJlYnVpbGRSZXNwb25zZRI4CglvcGVyYXRpb24YASABKAsyJS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRPcGVyYXRpb24iYAotQ2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVJlZnJlc2hSZXF1ZXN0EhYKDmVudmlyb25tZW50X2lkGAEgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgCIAEoCSJqCi5DbG91ZEVudmlyb25tZW50c1N0YXJ0QmFzZUltYWdlUmVmcmVzaFJlc3BvbnNlEjgKCW9wZXJhdGlvbhgBIAEoCzIlLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvbiLPAQo5Q2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVJlcG9zaXRvcnlSZWNvbmNpbGVSZXF1ZXN0EkMKBnVwZGF0ZRgBIAEoCzIzLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVCYXNlSW1hZ2VSZXF1ZXN0EhcKD2lkZW1wb3RlbmN5X2tleRgCIAEoCRIkChhleHBlY3RlZF9jdXJyZW50X3ZlcnNpb24YAyABKAlCAhgBEg4KBnJlcGFpchgEIAEoCCJ2CjpDbG91ZEVudmlyb25tZW50c1N0YXJ0QmFzZUltYWdlUmVwb3NpdG9yeVJlY29uY2lsZVJlc3BvbnNlEjgKCW9wZXJhdGlvbhgBIAEoCzIlLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvbiK7AQo0Q2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVNuYXBzaG90VXBkYXRlUmVxdWVzdBIWCg5lbnZpcm9ubWVudF9pZBgBIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAiABKAkSDgoGc2NyaXB0GAMgASgJEiUKGGV4cGVjdGVkX2N1cnJlbnRfdmVyc2lvbhgEIAEoCUgAiAEBQhsKGV9leHBlY3RlZF9jdXJyZW50X3ZlcnNpb24icQo1Q2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVNuYXBzaG90VXBkYXRlUmVzcG9uc2USOAoJb3BlcmF0aW9uGAEgASgLMiUucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50T3BlcmF0aW9uIpEGCidDbG91ZEVudmlyb25tZW50c1VwZGF0ZUJhc2VJbWFnZVJlcXVlc3QSEAoIaW1hZ2VfaWQYASABKAkSGQoMZGlzcGxheV9uYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIXCgp2aXNpYmlsaXR5GAQgASgFSAKIAQESJgoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgFIAEoA0gDiAEBEjoKBXJlcG9zGAYgAygLMisucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50Q2xvbmVSZXBvc2l0b3J5EkQKFWVudmlyb25tZW50X3ZhcmlhYmxlcxgHIAEoCzIlLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudFZhcmlhYmxlcxIRCgloYXNfcmVwb3MYCCABKAgSFwoKYmFzZV9pbWFnZRgJIAEoCUgEiAEBEhwKD3JlZnJlc2hfZW5hYmxlZBgKIAEoCEgFiAEBEhUKCHNwYWNlX2lkGAsgASgJSAaIAQESSwoEdGFncxgMIAMoCzI9LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVCYXNlSW1hZ2VSZXF1ZXN0LlRhZ3NFbnRyeRIQCghoYXNfdGFncxgNIAEoCBIgChNzYW5kYm94X3Byb3ZpZGVyX2lkGA4gASgJSAeIAQESNwoJdm1fY29uZmlnGA8gASgLMiQucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50Vk1Db25maWcaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDwoNX2Rpc3BsYXlfbmFtZUIOCgxfZGVzY3JpcHRpb25CDQoLX3Zpc2liaWxpdHlCHAoaX2V4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb25CDQoLX2Jhc2VfaW1hZ2VCEgoQX3JlZnJlc2hfZW5hYmxlZEILCglfc3BhY2VfaWRCFgoUX3NhbmRib3hfcHJvdmlkZXJfaWQiXQooQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVCYXNlSW1hZ2VSZXNwb25zZRIxCgtlbnZpcm9ubWVudBgBIAEoCzIcLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudCLZAwooQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVEYWVtb25Qb29sUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEhcKCnZpc2liaWxpdHkYBCABKAVIAogBARJcChp3b3Jrc3BhY2VfaXNvbGF0aW9uX3BvbGljeRgFIAEoDjIzLnB1YmxpY19hcGkuQ2xvdWREYWVtb25Qb29sV29ya3NwYWNlSXNvbGF0aW9uUG9saWN5SAOIAQESPAoJY29ubmVjdG9yGAYgASgLMikucHVibGljX2FwaS5DbG91ZERhZW1vblBvb2xDb25uZWN0b3JJbnB1dBIVCghzcGFjZV9pZBgHIAEoCUgEiAEBEiYKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YCCABKANIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfdmlzaWJpbGl0eUIdChtfd29ya3NwYWNlX2lzb2xhdGlvbl9wb2xpY3lCCwoJX3NwYWNlX2lkQhwKGl9leHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uIlYKKUNsb3VkRW52aXJvbm1lbnRzVXBkYXRlRGFlbW9uUG9vbFJlc3BvbnNlEikKBHBvb2wYASABKAsyGy5wdWJsaWNfYXBpLkNsb3VkRGFlbW9uUG9vbCKRAgotQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhkKDGRpc3BsYXlfbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESFAoHZW5hYmxlZBgEIAEoCEgCiAEBEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YBSABKAMSEQoJc3BhY2VfaWRzGAYgAygJEhcKCmFsbF9zcGFjZXMYByABKAhIA4gBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIKCghfZW5hYmxlZEINCgtfYWxsX3NwYWNlcyJkCi5DbG91ZEVudmlyb25tZW50c1VwZGF0ZVNhbmRib3hQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAucHVibGljX2FwaS5DbG91ZFNhbmRib3hQcm92aWRlciKnAQomQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVTbmFwc2hvdFJlcXVlc3QSEAoIaW1hZ2VfaWQYASABKAkSDgoGc2NyaXB0GAIgASgJEiUKGGV4cGVjdGVkX2N1cnJlbnRfdmVyc2lvbhgDIAEoCUgAiAEBEhcKD2lkZW1wb3RlbmN5X2tleRgEIAEoCUIbChlfZXhwZWN0ZWRfY3VycmVudF92ZXJzaW9uIlIKJ0Nsb3VkRW52aXJvbm1lbnRzVXBkYXRlU25hcHNob3RSZXNwb25zZRIWCg5tb2RhbF9pbWFnZV9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJItsBCgpDbG91ZEV2ZW50EhAKCGV2ZW50X2lkGAEgASgJEg4KBnNvdXJjZRgCIAEoCRISCgpldmVudF90eXBlGAMgASgJEhQKDHBheWxvYWRfanNvbhgEIAEoCRIvCgtyZWNlaXZlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoJdGVuYW50X2lkGAYgASgJEg8KB3VzZXJfaWQYByABKAkSEgoKd2ViaG9va19pZBgIIAEoCRIYChBwYXlsb2FkX3JlZGFjdGVkGAkgASgIIpsBChxDbG91ZEV2ZW50c0xpc3RFdmVudHNSZXF1ZXN0Eg0KBWxpbWl0GAEgASgNEhIKCnBhZ2VfdG9rZW4YAiABKAkSDgoGc291cmNlGAMgASgJEhYKDmZpbHRlcl9wYXlsb2FkGAQgASgJEhIKCmV2ZW50X3R5cGUYBSABKAkSDQoFc2luY2UYBiABKAkSDQoFdW50aWwYByABKAkidQodQ2xvdWRFdmVudHNMaXN0RXZlbnRzUmVzcG9uc2USJgoGZXZlbnRzGAEgAygLMhYucHVibGljX2FwaS5DbG91ZEV2ZW50EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoBSLyAwoLQ2xvdWRFeHBlcnQSEQoJZXhwZXJ0X2lkGAEgASgJEisKBXNjb3BlGAIgASgOMhwucHVibGljX2FwaS5DbG91ZEV4cGVydFNjb3BlEi0KBmNvbmZpZxgDIAEoCzIdLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRDb25maWcSDwoHdXNlcl9pZBgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIYChByZXNvdXJjZV92ZXJzaW9uGAcgASgDEi4KCmRlbGV0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmVmZmVjdGl2ZV9yb2xlGAkgASgJEjoKDXNwYWNlX3N1bW1hcnkYCyABKAsyIy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0U3BhY2VTdW1tYXJ5EgwKBHNsdWcYDCABKAkSQgoRZGVwZW5kZW5jeV9oZWFsdGgYDSABKAsyJy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0RGVwZW5kZW5jeUhlYWx0aEoECAoQC1INdGFnX3N1bW1hcmllcyJXChpDbG91ZEV4cGVydENsb25lUmVwb3NpdG9yeRINCgVvd25lchgBIAEoCRIMCgRuYW1lGAIgASgJEg4KBmJyYW5jaBgDIAEoCRIMCgRob3N0GAQgASgJIpwHChFDbG91ZEV4cGVydENvbmZpZxIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhgKEGluaXRpYWxfbWVzc2FnZXMYAyADKAkSRgoUYnVpbHRpbl9jYXBhYmlsaXRpZXMYBCADKA4yKC5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0QnVpbHRpbkNhcGFiaWxpdHkSOwoLdG9vbF9jb25maWcYBiABKAsyIS5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0VG9vbENvbmZpZ0gAiAEBEkEKDnNlc3Npb25fY29uZmlnGAcgASgLMiQucHVibGljX2FwaS5DbG91ZEV4cGVydFNlc3Npb25Db25maWdIAYgBARI3Cgl2bV9jb25maWcYCCABKAsyHy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0Vk1Db25maWdIAogBARIZChF3b3JrZXJfZXhwZXJ0X2lkcxgJIAMoCRIZChF1c2VyX2luc3RydWN0aW9ucxgKIAEoCRIdChBwbGFjZWhvbGRlcl90ZXh0GBAgASgJSAOIAQESIgoadXNlX2FsbF9leHBlcnRzX2FzX3dvcmtlcnMYCyABKAgSFgoObWNwX2NvbmZpZ19pZHMYDCADKAkSGgoSaGFzX21jcF9jb25maWdfaWRzGA0gASgIEhMKBmhpZGRlbhgOIAEoCEgEiAEBEkEKDnJvdXRpbmdfdGFyZ2V0GA8gASgLMiQucHVibGljX2FwaS5DbG91ZEV4cGVydFJvdXRpbmdUYXJnZXRIBYgBARI1CgR0YWdzGBEgAygLMicucHVibGljX2FwaS5DbG91ZEV4cGVydENvbmZpZy5UYWdzRW50cnkSEAoIaGFzX3RhZ3MYEiABKAgSGAoQY2FwYWJpbGl0eV9uYW1lcxgTIAMoCRIpChx1c2VfYWxsX2J1aWx0aW5fY2FwYWJpbGl0aWVzGBQgASgISAaIAQEaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDgoMX3Rvb2xfY29uZmlnQhEKD19zZXNzaW9uX2NvbmZpZ0IMCgpfdm1fY29uZmlnQhMKEV9wbGFjZWhvbGRlcl90ZXh0QgkKB19oaWRkZW5CEQoPX3JvdXRpbmdfdGFyZ2V0Qh8KHV91c2VfYWxsX2J1aWx0aW5fY2FwYWJpbGl0aWVzSgQIBRAGInAKG0Nsb3VkRXhwZXJ0RGVwZW5kZW5jeUhlYWx0aBI2CgZpc3N1ZXMYASADKAsyJi5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0RGVwZW5kZW5jeUlzc3VlEhkKEWJsb2Nrc19uZXdfbGF1bmNoGAIgASgIIrMCChpDbG91ZEV4cGVydERlcGVuZGVuY3lJc3N1ZRJDCgxyZWxhdGlvbnNoaXAYASABKA4yLS5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0RGVwZW5kZW5jeVJlbGF0aW9uc2hpcBI3CgZzdGF0dXMYAiABKA4yJy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0RGVwZW5kZW5jeVN0YXR1cxIYChB0YXJnZXRfZXhwZXJ0X2lkGAMgASgJEhoKEnRhcmdldF9leHBlcnRfc2x1ZxgEIAEoCRIaChJ0YXJnZXRfZXhwZXJ0X25hbWUYBSABKAkSRQoOcmVwYWlyX2FjdGlvbnMYBiADKA4yLS5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0RGVwZW5kZW5jeVJlcGFpckFjdGlvbiI9Ch5DbG91ZEV4cGVydEVudmlyb25tZW50VmFyaWFibGUSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCSJgCh9DbG91ZEV4cGVydEVudmlyb25tZW50VmFyaWFibGVzEj0KCXZhcmlhYmxlcxgBIAMoCzIqLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRFbnZpcm9ubWVudFZhcmlhYmxlIkQKG0Nsb3VkRXhwZXJ0TWFjaGluZVJlc291cmNlcxIRCgljcHVfY29yZXMYASABKAISEgoKbWVtb3J5X21pYhgCIAEoBSJPChhDbG91ZEV4cGVydFJvdXRpbmdUYXJnZXQSFgoMZGFlbW9uX3ZtX2lkGAEgASgJSAASEQoHcG9vbF9pZBgCIAEoCUgAQggKBnRhcmdldCKKAwoYQ2xvdWRFeHBlcnRTZXNzaW9uQ29uZmlnEhIKBW1vZGVsGAEgASgJSACIAQESJQodaW5jbHVkZV9kZWZhdWx0X3N5c3RlbV9wcm9tcHQYAiABKAgSFQoNc3lzdGVtX3Byb21wdBgDIAEoCRI8Cgp2aXNpYmlsaXR5GAQgASgOMigucHVibGljX2FwaS5DbG91ZEV4cGVydFNlc3Npb25WaXNpYmlsaXR5Ek0KDXVzZXJfbWV0YWRhdGEYBSADKAsyNi5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0U2Vzc2lvbkNvbmZpZy5Vc2VyTWV0YWRhdGFFbnRyeRIcChRhdXRvX2NsZWFudXBfb25faWRsZRgGIAEoCBIdChByZWFzb25pbmdfZWZmb3J0GAcgASgJSAGIAQEaMwoRVXNlck1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIICgZfbW9kZWxCEwoRX3JlYXNvbmluZ19lZmZvcnQiQQoXQ2xvdWRFeHBlcnRTcGFjZVN1bW1hcnkSEAoIc3BhY2VfaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJIp8BChVDbG91ZEV4cGVydFRvb2xDb25maWcSFgoJdG9vbF9uYW1lGAEgASgJSACIAQESHQoQdG9vbF9kZXNjcmlwdGlvbhgCIAEoCUgBiAEBEhcKD3RpbWVvdXRfc2Vjb25kcxgDIAEoDRITCgthbGxvd19hc3luYxgEIAEoCEIMCgpfdG9vbF9uYW1lQhMKEV90b29sX2Rlc2NyaXB0aW9uIskEChNDbG91ZEV4cGVydFZNQ29uZmlnEhIKCmJhc2VfaW1hZ2UYASABKAkSEwoLc25hcHNob3RfaWQYAiABKAkSEQoJY3B1X2NvcmVzGAMgASgFEhIKCm1lbW9yeV9taWIYBCABKAUSFwoPdGltZW91dF9zZWNvbmRzGAUgASgFEhwKFGlkbGVfdGltZW91dF9zZWNvbmRzGAYgASgFEh8KF2luc3RhbGxfZ2l0X2NyZWRlbnRpYWxzGAcgASgIEhwKFGluc3RhbGxfdXNlcl9zZWNyZXRzGAggASgIEjoKDGltYWdlX3NvdXJjZRgJIAEoDjIkLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRWTUltYWdlU291cmNlEhUKDWJhc2VfaW1hZ2VfaWQYCiABKAkSOwoLY2xvbmVfcmVwb3MYCyADKAsyJi5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0Q2xvbmVSZXBvc2l0b3J5Ej8KCXJlc291cmNlcxgMIAEoCzInLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRNYWNoaW5lUmVzb3VyY2VzSACIAQESIgoaYmFzZV9pbWFnZV9jdXJyZW50X3ZlcnNpb24YDSABKAkSTwoVZW52aXJvbm1lbnRfdmFyaWFibGVzGA4gASgLMisucHVibGljX2FwaS5DbG91ZEV4cGVydEVudmlyb25tZW50VmFyaWFibGVzSAGIAQFCDAoKX3Jlc291cmNlc0IYChZfZW52aXJvbm1lbnRfdmFyaWFibGVzIs4BChdDbG91ZEV4cGVydFZlcnNpb25FbnRyeRIYChByZXNvdXJjZV92ZXJzaW9uGAEgASgDEi0KBmNvbmZpZxgCIAEoCzIdLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRDb25maWcSKwoFc2NvcGUYAyABKA4yHC5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0U2NvcGUSEwoLbW9kaWZpZWRfYnkYBCABKAkSEwoLbW9kaWZpZWRfYXQYBSABKAkSEwoLY2hhbmdlX3R5cGUYBiABKAkijgEKFENsb3VkRXhwZXJ0V2l0aFVzYWdlEicKBmV4cGVydBgBIAEoCzIXLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnQSMAoMbGFzdF91c2VkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChN3ZWVrbHlfYWN0aXZlX3VzZXJzGAMgASgFIrMDCihDbG91ZEV4cGVydHNDcmVhdGVBZ2VudEZyb21FeHBlcnRSZXF1ZXN0EhEKCWV4cGVydF9pZBgBIAEoCRIXCgphZ2VudF9uYW1lGAIgASgJSACIAQESIgoVc2VuZF9pbml0aWFsX21lc3NhZ2VzGAMgASgISAGIAQESJQoYZXhpc3RpbmdfY29udmVyc2F0aW9uX2lkGAQgASgJSAKIAQESHAoPaW5pdGlhbF9tZXNzYWdlGAUgASgJSAOIAQESHAoPaWRlbXBvdGVuY3lfa2V5GAYgASgJSASIAQESEAoIc3BhY2VfaWQYByABKAkSQQoOcm91dGluZ190YXJnZXQYCCABKAsyJC5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0Um91dGluZ1RhcmdldEgFiAEBQg0KC19hZ2VudF9uYW1lQhgKFl9zZW5kX2luaXRpYWxfbWVzc2FnZXNCGwoZX2V4aXN0aW5nX2NvbnZlcnNhdGlvbl9pZEISChBfaW5pdGlhbF9tZXNzYWdlQhIKEF9pZGVtcG90ZW5jeV9rZXlCEQoPX3JvdXRpbmdfdGFyZ2V0IlIKKUNsb3VkRXhwZXJ0c0NyZWF0ZUFnZW50RnJvbUV4cGVydFJlc3BvbnNlEiUKBWFnZW50GAEgASgLMhYucHVibGljX2FwaS5DbG91ZEFnZW50IvgBCh9DbG91ZEV4cGVydHNDcmVhdGVFeHBlcnRSZXF1ZXN0EisKBXNjb3BlGAEgASgOMhwucHVibGljX2FwaS5DbG91ZEV4cGVydFNjb3BlEi0KBmNvbmZpZxgCIAEoCzIdLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRDb25maWcSEAoIc3BhY2VfaWQYBCABKAkSQgoRY2FwYWJpbGl0eV9zb3VyY2UYBSABKA4yJy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0Q2FwYWJpbGl0eVNvdXJjZRIUCgxkZXNpcmVkX3NsdWcYBiABKAlKBAgDEARSB3RhZ19pZHMiSwogQ2xvdWRFeHBlcnRzQ3JlYXRlRXhwZXJ0UmVzcG9uc2USJwoGZXhwZXJ0GAEgASgLMhcucHVibGljX2FwaS5DbG91ZEV4cGVydCI1Ch9DbG91ZEV4cGVydHNEZWxldGVFeHBlcnRSZXF1ZXN0EhIKCmV4cGVydF9pZHMYASADKAkiWQogQ2xvdWRFeHBlcnRzRGVsZXRlRXhwZXJ0UmVzcG9uc2USGgoSZGVsZXRlZF9leHBlcnRfaWRzGAEgAygJEhkKEWZhaWxlZF9leHBlcnRfaWRzGAIgAygJIjEKHENsb3VkRXhwZXJ0c0dldEV4cGVydFJlcXVlc3QSEQoJZXhwZXJ0X2lkGAEgASgJIkgKHUNsb3VkRXhwZXJ0c0dldEV4cGVydFJlc3BvbnNlEicKBmV4cGVydBgBIAEoCzIXLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnQiTAodQ2xvdWRFeHBlcnRzR2V0VmVyc2lvblJlcXVlc3QSEQoJZXhwZXJ0X2lkGAEgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YAiABKAMiVgoeQ2xvdWRFeHBlcnRzR2V0VmVyc2lvblJlc3BvbnNlEjQKB3ZlcnNpb24YASABKAsyIy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0VmVyc2lvbkVudHJ5Io4BCh5DbG91ZEV4cGVydHNMaXN0RXhwZXJ0c1JlcXVlc3QSFwoPaW5jbHVkZV9kZWxldGVkGAEgASgIEhAKCHNwYWNlX2lkGAIgASgJEhoKEmRlZmF1bHRfc3BhY2Vfb25seRgDIAEoCBIRCglwYWdlX3NpemUYBCABKAUSEgoKcGFnZV90b2tlbhgFIAEoCSJ5Ch9DbG91ZEV4cGVydHNMaXN0RXhwZXJ0c1Jlc3BvbnNlEigKB2V4cGVydHMYASADKAsyFy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoBSJwCidDbG91ZEV4cGVydHNMaXN0RXhwZXJ0c1dpdGhVc2FnZVJlcXVlc3QSFwoPbWF4X3Blcl9zZWN0aW9uGAEgASgFEhAKCHNwYWNlX2lkGAIgASgJEhoKEmRlZmF1bHRfc3BhY2Vfb25seRgDIAEoCCLHAQooQ2xvdWRFeHBlcnRzTGlzdEV4cGVydHNXaXRoVXNhZ2VSZXNwb25zZRI3Cg1yZWNlbnRseV91c2VkGAEgAygLMiAucHVibGljX2FwaS5DbG91ZEV4cGVydFdpdGhVc2FnZRIxCgdwb3B1bGFyGAIgAygLMiAucHVibGljX2FwaS5DbG91ZEV4cGVydFdpdGhVc2FnZRIvCgVvdGhlchgDIAMoCzIgLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRXaXRoVXNhZ2UiQwofQ2xvdWRFeHBlcnRzTGlzdFZlcnNpb25zUmVxdWVzdBIRCglleHBlcnRfaWQYASABKAkSDQoFbGltaXQYAiABKAUiWQogQ2xvdWRFeHBlcnRzTGlzdFZlcnNpb25zUmVzcG9uc2USNQoIdmVyc2lvbnMYASADKAsyIy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0VmVyc2lvbkVudHJ5IjUKIENsb3VkRXhwZXJ0c1Jlc3RvcmVFeHBlcnRSZXF1ZXN0EhEKCWV4cGVydF9pZBgBIAEoCSJMCiFDbG91ZEV4cGVydHNSZXN0b3JlRXhwZXJ0UmVzcG9uc2USJwoGZXhwZXJ0GAEgASgLMhcucHVibGljX2FwaS5DbG91ZEV4cGVydCLsAgofQ2xvdWRFeHBlcnRzVXBkYXRlRXhwZXJ0UmVxdWVzdBIRCglleHBlcnRfaWQYASABKAkSMgoGY29uZmlnGAIgASgLMh0ucHVibGljX2FwaS5DbG91ZEV4cGVydENvbmZpZ0gAiAEBEiYKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKANIAYgBARIwCgVzY29wZRgEIAEoDjIcLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRTY29wZUgCiAEBEhUKCHNwYWNlX2lkGAYgASgJSAOIAQESQgoRY2FwYWJpbGl0eV9zb3VyY2UYByABKA4yJy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0Q2FwYWJpbGl0eVNvdXJjZUIJCgdfY29uZmlnQhwKGl9leHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uQggKBl9zY29wZUILCglfc3BhY2VfaWRKBAgFEAZSB3RhZ19pZHMiSwogQ2xvdWRFeHBlcnRzVXBkYXRlRXhwZXJ0UmVzcG9uc2USJwoGZXhwZXJ0GAEgASgLMhcucHVibGljX2FwaS5DbG91ZEV4cGVydCJ9CgpDbG91ZEdyb3VwEhAKCGdyb3VwX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEgoKY3JlYXRlZF9ieRgEIAEoCRISCgpjcmVhdGVkX2F0GAUgASgJEhIKCnVwZGF0ZWRfYXQYBiABKAki5gEKEENsb3VkR3JvdXBNZW1iZXISDwoHdXNlcl9pZBgBIAEoCRIQCghhZGRlZF9hdBgCIAEoCRIQCghhZGRlZF9ieRgDIAEoCRINCgVlbWFpbBgEIAEoCRISCgpnaXZlbl9uYW1lGAUgASgJEhMKC2ZhbWlseV9uYW1lGAYgASgJEhUKDWFkZGVkX2J5X25hbWUYByABKAkSOAoOcHJpbmNpcGFsX2tpbmQYCCABKA4yIC5wdWJsaWNfYXBpLkNsb3VkR3JvdXBNZW1iZXJLaW5kEhQKDHNlcnZpY2VfbmFtZRgJIAEoCSJTChhDbG91ZEdyb3VwTWVtYmVyU2VsZWN0b3ISEAoGbWVtYmVyGAEgASgJSAASGQoPc2VydmljZV9hY2NvdW50GAIgASgJSABCCgoIc2VsZWN0b3IiegocQ2xvdWRHcm91cHNBZGRNZW1iZXJzUmVxdWVzdBIQCghncm91cF9pZBgBIAEoCRIPCgdtZW1iZXJzGAIgAygJEjcKCXNlbGVjdG9ycxgDIAMoCzIkLnB1YmxpY19hcGkuQ2xvdWRHcm91cE1lbWJlclNlbGVjdG9yIlgKHUNsb3VkR3JvdXBzQWRkTWVtYmVyc1Jlc3BvbnNlEhYKDmFkZGVkX3VzZXJfaWRzGAEgAygJEh8KF2FscmVhZHlfbWVtYmVyX3VzZXJfaWRzGAIgAygJIj0KGENsb3VkR3JvdXBzQ3JlYXRlUmVxdWVzdBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJIkIKGUNsb3VkR3JvdXBzQ3JlYXRlUmVzcG9uc2USJQoFZ3JvdXAYASABKAsyFi5wdWJsaWNfYXBpLkNsb3VkR3JvdXAiLAoYQ2xvdWRHcm91cHNEZWxldGVSZXF1ZXN0EhAKCGdyb3VwX2lkGAEgASgJIhsKGUNsb3VkR3JvdXBzRGVsZXRlUmVzcG9uc2UiWAodQ2xvdWRHcm91cHNMaXN0TWVtYmVyc1JlcXVlc3QSEAoIZ3JvdXBfaWQYASABKAkSEQoJcGFnZV9zaXplGAIgASgNEhIKCnBhZ2VfdG9rZW4YAyABKAkikwEKHkNsb3VkR3JvdXBzTGlzdE1lbWJlcnNSZXNwb25zZRItCgdtZW1iZXJzGAEgAygLMhwucHVibGljX2FwaS5DbG91ZEdyb3VwTWVtYmVyEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRIpCiFzZXJ2aWNlX2FjY291bnRfc2VsZWN0b3JzX2VuYWJsZWQYAyABKAgiPwoWQ2xvdWRHcm91cHNMaXN0UmVxdWVzdBIRCglwYWdlX3NpemUYASABKA0SEgoKcGFnZV90b2tlbhgCIAEoCSJaChdDbG91ZEdyb3Vwc0xpc3RSZXNwb25zZRImCgZncm91cHMYASADKAsyFi5wdWJsaWNfYXBpLkNsb3VkR3JvdXASFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIn0KH0Nsb3VkR3JvdXBzUmVtb3ZlTWVtYmVyc1JlcXVlc3QSEAoIZ3JvdXBfaWQYASABKAkSDwoHbWVtYmVycxgCIAMoCRI3CglzZWxlY3RvcnMYAyADKAsyJC5wdWJsaWNfYXBpLkNsb3VkR3JvdXBNZW1iZXJTZWxlY3RvciJZCiBDbG91ZEdyb3Vwc1JlbW92ZU1lbWJlcnNSZXNwb25zZRIYChByZW1vdmVkX3VzZXJfaWRzGAEgAygJEhsKE25vdF9tZW1iZXJfdXNlcl9pZHMYAiADKAkicgoYQ2xvdWRHcm91cHNVcGRhdGVSZXF1ZXN0EhAKCGdyb3VwX2lkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbiJCChlDbG91ZEdyb3Vwc1VwZGF0ZVJlc3BvbnNlEiUKBWdyb3VwGAEgASgLMhYucHVibGljX2FwaS5DbG91ZEdyb3VwIkoKL0Nsb3VkSW50ZWdyYXRpb25zQ2FuY2VsRXZlbnRTdWJzY3JpcHRpb25SZXF1ZXN0EhcKD3N1YnNjcmlwdGlvbl9pZBgBIAEoCSIyCjBDbG91ZEludGVncmF0aW9uc0NhbmNlbEV2ZW50U3Vic2NyaXB0aW9uUmVzcG9uc2UiMQovQ2xvdWRJbnRlZ3JhdGlvbnNDaGVja0F0bGFzc2lhbkFwcFN0YXR1c1JlcXVlc3QidQowQ2xvdWRJbnRlZ3JhdGlvbnNDaGVja0F0bGFzc2lhbkFwcFN0YXR1c1Jlc3BvbnNlEhQKDGlzX2luc3RhbGxlZBgBIAEoCBIRCglzaXRlX25hbWUYAiABKAkSGAoQZW5hYmxlZF9wcm9kdWN0cxgDIAMoCSIuCixDbG91ZEludGVncmF0aW9uc0NoZWNrR2l0SHViQXBwU3RhdHVzUmVxdWVzdCJFCi1DbG91ZEludGVncmF0aW9uc0NoZWNrR2l0SHViQXBwU3RhdHVzUmVzcG9uc2USFAoMaXNfaW5zdGFsbGVkGAEgASgIIisKKUNsb3VkSW50ZWdyYXRpb25zQ2hlY2tMaW5lYXJTdGF0dXNSZXF1ZXN0IkIKKkNsb3VkSW50ZWdyYXRpb25zQ2hlY2tMaW5lYXJTdGF0dXNSZXNwb25zZRIUCgxpc19jb25uZWN0ZWQYASABKAgiKgooQ2xvdWRJbnRlZ3JhdGlvbnNDaGVja1NsYWNrU3RhdHVzUmVxdWVzdCJBCilDbG91ZEludGVncmF0aW9uc0NoZWNrU2xhY2tTdGF0dXNSZXNwb25zZRIUCgxpc19jb25uZWN0ZWQYASABKAgilAEKL0Nsb3VkSW50ZWdyYXRpb25zQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25SZXF1ZXN0EhAKCGFnZW50X2lkGAEgASgJEg4KBnNvdXJjZRgCIAEoCRISCgpldmVudF90eXBlGAMgASgJEhYKDmZpbHRlcl9wYXlsb2FkGAQgASgJEhMKC2Rlc2NyaXB0aW9uGAUgASgJIksKMENsb3VkSW50ZWdyYXRpb25zQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25SZXNwb25zZRIXCg9zdWJzY3JpcHRpb25faWQYASABKAkiyAEKIkNsb3VkSW50ZWdyYXRpb25zRXZlbnRTdWJzY3JpcHRpb24SFwoPc3Vic2NyaXB0aW9uX2lkGAEgASgJEhAKCGFnZW50X2lkGAIgASgJEg4KBnNvdXJjZRgDIAEoCRISCgpldmVudF90eXBlGAQgASgJEhYKDmZpbHRlcl9wYXlsb2FkGAUgASgJEhMKC2Rlc2NyaXB0aW9uGAYgASgJEhIKCmNyZWF0ZWRfYXQYByABKAkSEgoKZXhwaXJlc19hdBgIIAEoCSIzCjFDbG91ZEludGVncmF0aW9uc0dldEF0bGFzc2lhbkFwcEluc3RhbGxVcmxSZXF1ZXN0IkkKMkNsb3VkSW50ZWdyYXRpb25zR2V0QXRsYXNzaWFuQXBwSW5zdGFsbFVybFJlc3BvbnNlEhMKC2luc3RhbGxfdXJsGAEgASgJIjAKLkNsb3VkSW50ZWdyYXRpb25zR2V0R2l0SHViQXBwSW5zdGFsbFVybFJlcXVlc3QiRgovQ2xvdWRJbnRlZ3JhdGlvbnNHZXRHaXRIdWJBcHBJbnN0YWxsVXJsUmVzcG9uc2USEwoLaW5zdGFsbF91cmwYASABKAkiKwopQ2xvdWRJbnRlZ3JhdGlvbnNHZXRMaW5lYXJPQXV0aFVybFJlcXVlc3QiPwoqQ2xvdWRJbnRlZ3JhdGlvbnNHZXRMaW5lYXJPQXV0aFVybFJlc3BvbnNlEhEKCW9hdXRoX3VybBgBIAEoCSIqCihDbG91ZEludGVncmF0aW9uc0dldFNsYWNrT0F1dGhVcmxSZXF1ZXN0Ij4KKUNsb3VkSW50ZWdyYXRpb25zR2V0U2xhY2tPQXV0aFVybFJlc3BvbnNlEhEKCW9hdXRoX3VybBgBIAEoCSJOCiJDbG91ZEludGVncmF0aW9uc0ludGVncmF0aW9uQWN0aW9uEgwKBGtpbmQYASABKAkSDQoFbGFiZWwYAiABKAkSCwoDdXJsGAMgASgJIpgCCiZDbG91ZEludGVncmF0aW9uc0ludGVncmF0aW9uRGVmaW5pdGlvbhIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIRCgljb25uZWN0ZWQYBCABKAgSEwoLc3RhdHVzX2tpbmQYBSABKAkSFAoMc3RhdHVzX2xhYmVsGAYgASgJEj8KB2RldGFpbHMYByADKAsyLi5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zSW50ZWdyYXRpb25EZXRhaWwSPwoHYWN0aW9ucxgIIAMoCzIuLnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNJbnRlZ3JhdGlvbkFjdGlvbiJPCiJDbG91ZEludGVncmF0aW9uc0ludGVncmF0aW9uRGV0YWlsEgsKA2tleRgBIAEoCRINCgVsYWJlbBgCIAEoCRINCgV2YWx1ZRgDIAEoCSJMCiRDbG91ZEludGVncmF0aW9uc0ludm9rZUFjdGlvblJlcXVlc3QSFgoOaW50ZWdyYXRpb25faWQYASABKAkSDAoEa2luZBgCIAEoCSKWAQolQ2xvdWRJbnRlZ3JhdGlvbnNJbnZva2VBY3Rpb25SZXNwb25zZRITCgt1cmxfdG9fb3BlbhgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEkcKC2ludGVncmF0aW9uGAMgASgLMjIucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0ludGVncmF0aW9uRGVmaW5pdGlvbiJCCi5DbG91ZEludGVncmF0aW9uc0xpc3RFdmVudFN1YnNjcmlwdGlvbnNSZXF1ZXN0EhAKCGFnZW50X2lkGAEgASgJIngKL0Nsb3VkSW50ZWdyYXRpb25zTGlzdEV2ZW50U3Vic2NyaXB0aW9uc1Jlc3BvbnNlEkUKDXN1YnNjcmlwdGlvbnMYASADKAsyLi5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zRXZlbnRTdWJzY3JpcHRpb24iHgocQ2xvdWRJbnRlZ3JhdGlvbnNMaXN0UmVxdWVzdCJpCh1DbG91ZEludGVncmF0aW9uc0xpc3RSZXNwb25zZRJICgxpbnRlZ3JhdGlvbnMYASADKAsyMi5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zSW50ZWdyYXRpb25EZWZpbml0aW9uIkoKKUNsb3VkSW50ZWdyYXRpb25zTGlzdFNsYWNrQ2hhbm5lbHNSZXF1ZXN0Eg4KBmN1cnNvchgBIAEoCRINCgVsaW1pdBgCIAEoDSKNAQoqQ2xvdWRJbnRlZ3JhdGlvbnNMaXN0U2xhY2tDaGFubmVsc1Jlc3BvbnNlEjsKCGNoYW5uZWxzGAEgAygLMikucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc1NsYWNrQ2hhbm5lbBITCgtuZXh0X2N1cnNvchgCIAEoCRINCgVlcnJvchgDIAEoCSIrCilDbG91ZEludGVncmF0aW9uc1Jldm9rZUdpdGh1Yk9BdXRoUmVxdWVzdCIsCipDbG91ZEludGVncmF0aW9uc1Jldm9rZUdpdGh1Yk9BdXRoUmVzcG9uc2UiKwopQ2xvdWRJbnRlZ3JhdGlvbnNSZXZva2VMaW5lYXJPQXV0aFJlcXVlc3QiLAoqQ2xvdWRJbnRlZ3JhdGlvbnNSZXZva2VMaW5lYXJPQXV0aFJlc3BvbnNlImAKHUNsb3VkSW50ZWdyYXRpb25zU2xhY2tDaGFubmVsEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEgoKaXNfcHJpdmF0ZRgDIAEoCBIRCglpc19tZW1iZXIYBCABKAgi8gEKDENsb3VkUHJvamVjdBISCgpwcm9qZWN0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKY3JlYXRlZF9ieRgGIAEoCRI3CgZhZ2VudHMYByADKAsyJy5wdWJsaWNfYXBpLkNsb3VkUHJvamVjdEFnZW50TWVtYmVyc2hpcCJdChtDbG91ZFByb2plY3RBZ2VudE1lbWJlcnNoaXASEAoIYWdlbnRfaWQYASABKAkSLAoIYWRkZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkQKHENsb3VkUHJvamVjdHNBZGRBZ2VudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIQCghhZ2VudF9pZBgCIAEoCSJKCh1DbG91ZFByb2plY3RzQWRkQWdlbnRSZXNwb25zZRIpCgdwcm9qZWN0GAEgASgLMhgucHVibGljX2FwaS5DbG91ZFByb2plY3QiRgohQ2xvdWRQcm9qZWN0c0NyZWF0ZVByb2plY3RSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiTwoiQ2xvdWRQcm9qZWN0c0NyZWF0ZVByb2plY3RSZXNwb25zZRIpCgdwcm9qZWN0GAEgASgLMhgucHVibGljX2FwaS5DbG91ZFByb2plY3QiNwohQ2xvdWRQcm9qZWN0c0RlbGV0ZVByb2plY3RSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiJAoiQ2xvdWRQcm9qZWN0c0RlbGV0ZVByb2plY3RSZXNwb25zZSI0Ch5DbG91ZFByb2plY3RzR2V0UHJvamVjdFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJMCh9DbG91ZFByb2plY3RzR2V0UHJvamVjdFJlc3BvbnNlEikKB3Byb2plY3QYASABKAsyGC5wdWJsaWNfYXBpLkNsb3VkUHJvamVjdCIiCiBDbG91ZFByb2plY3RzTGlzdFByb2plY3RzUmVxdWVzdCJPCiFDbG91ZFByb2plY3RzTGlzdFByb2plY3RzUmVzcG9uc2USKgoIcHJvamVjdHMYASADKAsyGC5wdWJsaWNfYXBpLkNsb3VkUHJvamVjdCJHCh9DbG91ZFByb2plY3RzUmVtb3ZlQWdlbnRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEAoIYWdlbnRfaWQYAiABKAkiTQogQ2xvdWRQcm9qZWN0c1JlbW92ZUFnZW50UmVzcG9uc2USKQoHcHJvamVjdBgBIAEoCzIYLnB1YmxpY19hcGkuQ2xvdWRQcm9qZWN0Ip8ECg1DbG91ZFJlc2lkZW50EhMKC3Jlc2lkZW50X2lkGAEgASgJEi0KBXNjb3BlGAIgASgOMh4ucHVibGljX2FwaS5DbG91ZFJlc2lkZW50U2NvcGUSLwoGY29uZmlnGAMgASgLMh8ucHVibGljX2FwaS5DbG91ZFJlc2lkZW50Q29uZmlnEg8KB3VzZXJfaWQYBCABKAkSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQcmVzb3VyY2VfdmVyc2lvbhgHIAEoAxIYChBjdXJyZW50X2FnZW50X2lkGAggASgJEi4KCnN0YXJ0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmVmZmVjdGl2ZV9yb2xlGAogASgJEi4KCmRlbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkAKD3ByZXNlbmNlX3N0YXR1cxgMIAEoCzInLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudFByZXNlbmNlU3RhdHVzEjoKDXNwYWNlX3N1bW1hcnkYDSABKAsyIy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0U3BhY2VTdW1tYXJ5IsQDChNDbG91ZFJlc2lkZW50Q29uZmlnEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEQoJZXhwZXJ0X2lkGAMgASgJEhwKD2luaXRpYWxfbWVzc2FnZRgEIAEoCUgAiAEBEjoKCW92ZXJyaWRlcxgFIAEoCzIiLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudE92ZXJyaWRlc0gBiAEBEhsKDnJ1bl9hc191c2VyX2lkGAYgASgJSAKIAQESOAoIcHJlc2VuY2UYByABKAsyIS5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRQcmVzZW5jZUgDiAEBEgwKBGljb24YCCABKAkSNwoEdGFncxgJIAMoCzIpLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudENvbmZpZy5UYWdzRW50cnkSEAoIaGFzX3RhZ3MYCiABKAgaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCEgoQX2luaXRpYWxfbWVzc2FnZUIMCgpfb3ZlcnJpZGVzQhEKD19ydW5fYXNfdXNlcl9pZEILCglfcHJlc2VuY2UiggEKGENsb3VkUmVzaWRlbnRFbnZWTUNvbmZpZxIVCg1iYXNlX2ltYWdlX2lkGAEgASgJEkEKCXJlc291cmNlcxgCIAEoCzIpLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudE1hY2hpbmVSZXNvdXJjZXNIAIgBAUIMCgpfcmVzb3VyY2VzIkYKHUNsb3VkUmVzaWRlbnRNYWNoaW5lUmVzb3VyY2VzEhEKCWNwdV9jb3JlcxgBIAEoAhISCgptZW1vcnlfbWliGAIgASgFIrIBChZDbG91ZFJlc2lkZW50T3ZlcnJpZGVzEjkKCXZtX2NvbmZpZxgCIAEoCzIkLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudEVudlZNQ29uZmlnSAASFgoMZGFlbW9uX3ZtX2lkGAMgASgJSAASGAoOZGFlbW9uX3Bvb2xfaWQYBCABKAlIABISCgVtb2RlbBgBIAEoCUgBiAEBQg0KC2Vudmlyb25tZW50QggKBl9tb2RlbCJTChVDbG91ZFJlc2lkZW50UHJlc2VuY2USLQoFc2xhY2sYASABKAsyHi5wdWJsaWNfYXBpLkNsb3VkU2xhY2tQcmVzZW5jZUoECAIQA1IFdGVhbXMiXwobQ2xvdWRSZXNpZGVudFByZXNlbmNlU3RhdHVzEjMKBXNsYWNrGAEgASgLMiQucHVibGljX2FwaS5DbG91ZFNsYWNrUHJlc2VuY2VTdGF0dXNKBAgCEANSBXRlYW1zIp0BChtDbG91ZFJlc2lkZW50U2Vzc2lvblN1bW1hcnkSEAoIYWdlbnRfaWQYASABKAkSDgoGc3RhdHVzGAIgASgJEi4KCnN0YXJ0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCGVuZGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLUAQoZQ2xvdWRSZXNpZGVudFZlcnNpb25FbnRyeRIYChByZXNvdXJjZV92ZXJzaW9uGAEgASgDEi8KBmNvbmZpZxgCIAEoCzIfLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudENvbmZpZxItCgVzY29wZRgDIAEoDjIeLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudFNjb3BlEhMKC21vZGlmaWVkX2J5GAQgASgJEhMKC21vZGlmaWVkX2F0GAUgASgJEhMKC2NoYW5nZV90eXBlGAYgASgJIoUBCiNDbG91ZFJlc2lkZW50c0NyZWF0ZVJlc2lkZW50UmVxdWVzdBItCgVzY29wZRgBIAEoDjIeLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudFNjb3BlEi8KBmNvbmZpZxgCIAEoCzIfLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudENvbmZpZyJTCiRDbG91ZFJlc2lkZW50c0NyZWF0ZVJlc2lkZW50UmVzcG9uc2USKwoIcmVzaWRlbnQYASABKAsyGS5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnQiUAojQ2xvdWRSZXNpZGVudHNEZWxldGVSZXNpZGVudFJlcXVlc3QSFAoMcmVzaWRlbnRfaWRzGAEgAygJEhMKC2hhcmRfZGVsZXRlGAIgASgIImEKJENsb3VkUmVzaWRlbnRzRGVsZXRlUmVzaWRlbnRSZXNwb25zZRIcChRkZWxldGVkX3Jlc2lkZW50X2lkcxgBIAMoCRIbChNmYWlsZWRfcmVzaWRlbnRfaWRzGAIgAygJIjcKIENsb3VkUmVzaWRlbnRzR2V0UmVzaWRlbnRSZXF1ZXN0EhMKC3Jlc2lkZW50X2lkGAEgASgJIlAKIUNsb3VkUmVzaWRlbnRzR2V0UmVzaWRlbnRSZXNwb25zZRIrCghyZXNpZGVudBgBIAEoCzIZLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudCJQCh9DbG91ZFJlc2lkZW50c0dldFZlcnNpb25SZXF1ZXN0EhMKC3Jlc2lkZW50X2lkGAEgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YAiABKAMiWgogQ2xvdWRSZXNpZGVudHNHZXRWZXJzaW9uUmVzcG9uc2USNgoHdmVyc2lvbhgBIAEoCzIlLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudFZlcnNpb25FbnRyeSKpAQoiQ2xvdWRSZXNpZGVudHNMaXN0UmVzaWRlbnRzUmVxdWVzdBIyCgVzY29wZRgBIAEoDjIeLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudFNjb3BlSACIAQESFwoPaW5jbHVkZV9kZWxldGVkGAIgASgIEhAKCHNwYWNlX2lkGAMgASgJEhoKEmRlZmF1bHRfc3BhY2Vfb25seRgEIAEoCEIICgZfc2NvcGUiUwojQ2xvdWRSZXNpZGVudHNMaXN0UmVzaWRlbnRzUmVzcG9uc2USLAoJcmVzaWRlbnRzGAEgAygLMhkucHVibGljX2FwaS5DbG91ZFJlc2lkZW50IjgKIUNsb3VkUmVzaWRlbnRzTGlzdFNlc3Npb25zUmVxdWVzdBITCgtyZXNpZGVudF9pZBgBIAEoCSJfCiJDbG91ZFJlc2lkZW50c0xpc3RTZXNzaW9uc1Jlc3BvbnNlEjkKCHNlc3Npb25zGAEgAygLMicucHVibGljX2FwaS5DbG91ZFJlc2lkZW50U2Vzc2lvblN1bW1hcnkiRwohQ2xvdWRSZXNpZGVudHNMaXN0VmVyc2lvbnNSZXF1ZXN0EhMKC3Jlc2lkZW50X2lkGAEgASgJEg0KBWxpbWl0GAIgASgFIl0KIkNsb3VkUmVzaWRlbnRzTGlzdFZlcnNpb25zUmVzcG9uc2USNwoIdmVyc2lvbnMYASADKAsyJS5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRWZXJzaW9uRW50cnkiOwokQ2xvdWRSZXNpZGVudHNSZXN0b3JlUmVzaWRlbnRSZXF1ZXN0EhMKC3Jlc2lkZW50X2lkGAEgASgJIlQKJUNsb3VkUmVzaWRlbnRzUmVzdG9yZVJlc2lkZW50UmVzcG9uc2USKwoIcmVzaWRlbnQYASABKAsyGS5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnQizQEKLENsb3VkUmVzaWRlbnRzU2V0UmVzaWRlbnRUZW5hbnRBY2Nlc3NSZXF1ZXN0EhMKC3Jlc2lkZW50X2lkGAEgASgJEi0KBXNjb3BlGAIgASgOMh4ucHVibGljX2FwaS5DbG91ZFJlc2lkZW50U2NvcGUSEwoLdGVuYW50X3JvbGUYAyABKAkSJgoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgEIAEoA0gAiAEBQhwKGl9leHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uIlwKLUNsb3VkUmVzaWRlbnRzU2V0UmVzaWRlbnRUZW5hbnRBY2Nlc3NSZXNwb25zZRIrCghyZXNpZGVudBgBIAEoCzIZLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudCJrCiJDbG91ZFJlc2lkZW50c1N0YXJ0UmVzaWRlbnRSZXF1ZXN0EhMKC3Jlc2lkZW50X2lkGAEgASgJEhwKD2luaXRpYWxfbWVzc2FnZRgCIAEoCUgAiAEBQhIKEF9pbml0aWFsX21lc3NhZ2UieQojQ2xvdWRSZXNpZGVudHNTdGFydFJlc2lkZW50UmVzcG9uc2USKwoIcmVzaWRlbnQYASABKAsyGS5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnQSJQoFYWdlbnQYAiABKAsyFi5wdWJsaWNfYXBpLkNsb3VkQWdlbnQiOAohQ2xvdWRSZXNpZGVudHNTdG9wUmVzaWRlbnRSZXF1ZXN0EhMKC3Jlc2lkZW50X2lkGAEgASgJIlEKIkNsb3VkUmVzaWRlbnRzU3RvcFJlc2lkZW50UmVzcG9uc2USKwoIcmVzaWRlbnQYASABKAsyGS5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnQi/wEKI0Nsb3VkUmVzaWRlbnRzVXBkYXRlUmVzaWRlbnRSZXF1ZXN0EhMKC3Jlc2lkZW50X2lkGAEgASgJEjQKBmNvbmZpZxgCIAEoCzIfLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudENvbmZpZ0gAiAEBEiYKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKANIAYgBARIyCgVzY29wZRgEIAEoDjIeLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudFNjb3BlSAKIAQFCCQoHX2NvbmZpZ0IcChpfZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbkIICgZfc2NvcGUiUwokQ2xvdWRSZXNpZGVudHNVcGRhdGVSZXNpZGVudFJlc3BvbnNlEisKCHJlc2lkZW50GAEgASgLMhkucHVibGljX2FwaS5DbG91ZFJlc2lkZW50ItgCChRDbG91ZFNhbmRib3hQcm92aWRlchIMCgRzbHVnGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIPCgdlbmFibGVkGAUgASgIEhoKEmNyZWF0ZWRfYnlfdXNlcl9pZBgGIAEoCRISCgpjcmVhdGVkX2F0GAcgASgJEhIKCnVwZGF0ZWRfYXQYCCABKAkSGAoQcmVzb3VyY2VfdmVyc2lvbhgJIAEoAxISCgpkZWxldGVkX2F0GAogASgJEgoKAmlkGAsgASgJEjsKDXByb3ZpZGVyX3R5cGUYDCABKA4yJC5wdWJsaWNfYXBpLkNsb3VkU2FuZGJveFByb3ZpZGVyVHlwZRIRCglzcGFjZV9pZHMYDSADKAkSEgoKYWxsX3NwYWNlcxgOIAEoCEoECAQQBVIOc3lzdGVtX21hbmFnZWQingEKEkNsb3VkU2xhY2tQcmVzZW5jZRITCgttZW50aW9uYWJsZRgBIAEoCBIYChB1c2VyZ3JvdXBfaGFuZGxlGAIgASgJEhcKD2hvbWVfY2hhbm5lbF9pZBgDIAEoCRIkChdkaXJlY3RfbWVzc2FnZXNfZW5hYmxlZBgEIAEoCEgAiAEBQhoKGF9kaXJlY3RfbWVzc2FnZXNfZW5hYmxlZCJxChhDbG91ZFNsYWNrUHJlc2VuY2VTdGF0dXMSEgoKc3VidGVhbV9pZBgBIAEoCRIyCg5sYXN0X3N5bmNlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFZXJyb3IYAyABKAki3AEKCkNsb3VkU3BhY2USEAoIc3BhY2VfaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhcKD25vcm1hbGl6ZWRfbmFtZRgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpjcmVhdGVkX2J5GAYgASgJEhkKEXBpbm5lZF9leHBlcnRfaWRzGAcgAygJIjUKHUNsb3VkU3BhY2VzQ3JlYXRlU3BhY2VSZXF1ZXN0EhQKDGRpc3BsYXlfbmFtZRgBIAEoCSJHCh5DbG91ZFNwYWNlc0NyZWF0ZVNwYWNlUmVzcG9uc2USJQoFc3BhY2UYASABKAsyFi5wdWJsaWNfYXBpLkNsb3VkU3BhY2UiMQodQ2xvdWRTcGFjZXNEZWxldGVTcGFjZVJlcXVlc3QSEAoIc3BhY2VfaWQYASABKAkiIAoeQ2xvdWRTcGFjZXNEZWxldGVTcGFjZVJlc3BvbnNlIi4KGkNsb3VkU3BhY2VzR2V0U3BhY2VSZXF1ZXN0EhAKCHNwYWNlX2lkGAEgASgJIkQKG0Nsb3VkU3BhY2VzR2V0U3BhY2VSZXNwb25zZRIlCgVzcGFjZRgBIAEoCzIWLnB1YmxpY19hcGkuQ2xvdWRTcGFjZSIeChxDbG91ZFNwYWNlc0xpc3RTcGFjZXNSZXF1ZXN0IkcKHUNsb3VkU3BhY2VzTGlzdFNwYWNlc1Jlc3BvbnNlEiYKBnNwYWNlcxgBIAMoCzIWLnB1YmxpY19hcGkuQ2xvdWRTcGFjZSJHCh1DbG91ZFNwYWNlc1VwZGF0ZVNwYWNlUmVxdWVzdBIQCghzcGFjZV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkiRwoeQ2xvdWRTcGFjZXNVcGRhdGVTcGFjZVJlc3BvbnNlEiUKBXNwYWNlGAEgASgLMhYucHVibGljX2FwaS5DbG91ZFNwYWNlIlgKJUNsb3VkVHJpZ2dlcnNDcmVhdGVFdmVudFNvdXJjZVJlcXVlc3QSGQoRZXZlbnRfc291cmNlX2pzb24YASABKAkSFAoMZGVzaXJlZF9zbHVnGAIgASgJIkMKJkNsb3VkVHJpZ2dlcnNDcmVhdGVFdmVudFNvdXJjZVJlc3BvbnNlEhkKEWV2ZW50X3NvdXJjZV9qc29uGAEgASgJIlEKIkNsb3VkVHJpZ2dlcnNDcmVhdGVXb3JrZmxvd1JlcXVlc3QSFQoNd29ya2Zsb3dfanNvbhgBIAEoCRIUCgxkZXNpcmVkX3NsdWcYAiABKAkiPAojQ2xvdWRUcmlnZ2Vyc0NyZWF0ZVdvcmtmbG93UmVzcG9uc2USFQoNd29ya2Zsb3dfanNvbhgBIAEoCSJCCiZDbG91ZFRyaWdnZXJzRGVsZXRlRXZlbnRTb3VyY2VzUmVxdWVzdBIYChBldmVudF9zb3VyY2VfaWRzGAEgAygJIn0KJ0Nsb3VkVHJpZ2dlcnNEZWxldGVFdmVudFNvdXJjZXNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEiAKGGRlbGV0ZWRfZXZlbnRfc291cmNlX2lkcxgCIAMoCRIfChdmYWlsZWRfZXZlbnRfc291cmNlX2lkcxgDIAMoCSJsCjJDbG91ZFRyaWdnZXJzRGVsZXRlV29ya2Zsb3dFeHBlY3RlZFJlc291cmNlVmVyc2lvbhITCgt3b3JrZmxvd19pZBgBIAEoCRIhChlleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uGAIgASgDIp4BCiJDbG91ZFRyaWdnZXJzRGVsZXRlV29ya2Zsb3dSZXF1ZXN0EhQKDHdvcmtmbG93X2lkcxgBIAMoCRJiChpleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9ucxgCIAMoCzI+LnB1YmxpY19hcGkuQ2xvdWRUcmlnZ2Vyc0RlbGV0ZVdvcmtmbG93RXhwZWN0ZWRSZXNvdXJjZVZlcnNpb24ikQEKI0Nsb3VkVHJpZ2dlcnNEZWxldGVXb3JrZmxvd1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSHAoUZGVsZXRlZF93b3JrZmxvd19pZHMYAiADKAkSGwoTZmFpbGVkX3dvcmtmbG93X2lkcxgDIAMoCRIeChZub3RfZm91bmRfd29ya2Zsb3dfaWRzGAQgAygJIj0KIkNsb3VkVHJpZ2dlcnNHZXRFdmVudFNvdXJjZVJlcXVlc3QSFwoPZXZlbnRfc291cmNlX2lkGAEgASgJIkAKI0Nsb3VkVHJpZ2dlcnNHZXRFdmVudFNvdXJjZVJlc3BvbnNlEhkKEWV2ZW50X3NvdXJjZV9qc29uGAEgASgJIjYKH0Nsb3VkVHJpZ2dlcnNHZXRXb3JrZmxvd1JlcXVlc3QSEwoLd29ya2Zsb3dfaWQYASABKAkiOQogQ2xvdWRUcmlnZ2Vyc0dldFdvcmtmbG93UmVzcG9uc2USFQoNd29ya2Zsb3dfanNvbhgBIAEoCSImCiRDbG91ZFRyaWdnZXJzTGlzdEV2ZW50U291cmNlc1JlcXVlc3QiQwolQ2xvdWRUcmlnZ2Vyc0xpc3RFdmVudFNvdXJjZXNSZXNwb25zZRIaChJldmVudF9zb3VyY2VzX2pzb24YASABKAkiTwohQ2xvdWRUcmlnZ2Vyc0xpc3RXb3JrZmxvd3NSZXF1ZXN0EhcKD2V2ZW50X3NvdXJjZV9pZBgBIAEoCRIRCglleHBlcnRfaWQYAiABKAkiPAoiQ2xvdWRUcmlnZ2Vyc0xpc3RXb3JrZmxvd3NSZXNwb25zZRIWCg53b3JrZmxvd3NfanNvbhgBIAEoCSJlCiVDbG91ZFRyaWdnZXJzVXBkYXRlRXZlbnRTb3VyY2VSZXF1ZXN0EhkKEWV2ZW50X3NvdXJjZV9qc29uGAEgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAiABKAMiQwomQ2xvdWRUcmlnZ2Vyc1VwZGF0ZUV2ZW50U291cmNlUmVzcG9uc2USGQoRZXZlbnRfc291cmNlX2pzb24YASABKAkiwwMKIkNsb3VkVHJpZ2dlcnNVcGRhdGVXb3JrZmxvd1JlcXVlc3QSEwoLd29ya2Zsb3dfaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhQKB2VuYWJsZWQYAyABKAhIAYgBARImChlleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uGAQgASgDSAKIAQESKgodb3ZlcnJpZGVfYXV0b19jbGVhbnVwX29uX2lkbGUYBSABKAhIA4gBARIqCh1wZXJfbWludXRlX2NyZWF0ZV9hZ2VudF9saW1pdBgGIAEoBUgEiAEBEiEKFGluaXRpYWxfaW5zdHJ1Y3Rpb25zGAcgASgJSAWIAQESGgoNYWN0b3JfdXNlcl9pZBgIIAEoCUgGiAEBQgcKBV9uYW1lQgoKCF9lbmFibGVkQhwKGl9leHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uQiAKHl9vdmVycmlkZV9hdXRvX2NsZWFudXBfb25faWRsZUIgCh5fcGVyX21pbnV0ZV9jcmVhdGVfYWdlbnRfbGltaXRCFwoVX2luaXRpYWxfaW5zdHJ1Y3Rpb25zQhAKDl9hY3Rvcl91c2VyX2lkIjwKI0Nsb3VkVHJpZ2dlcnNVcGRhdGVXb3JrZmxvd1Jlc3BvbnNlEhUKDXdvcmtmbG93X2pzb24YASABKAkiiAIKC0Nsb3VkVHVubmVsEhEKCXR1bm5lbF9pZBgBIAEoCRIQCghhZ2VudF9pZBgCIAEoCRINCgV2bV9pZBgDIAEoCRISCgpsb2NhbF9ob3N0GAQgASgJEhIKCmxvY2FsX3BvcnQYBSABKAUSDQoFbGFiZWwYBiABKAkSKQoEbW9kZRgHIAEoDjIbLnB1YmxpY19hcGkuQ2xvdWRUdW5uZWxNb2RlEi0KBnN0YXR1cxgIIAEoDjIdLnB1YmxpY19hcGkuQ2xvdWRUdW5uZWxTdGF0dXMSDAoEaG9zdBgJIAEoCRISCgpjcmVhdGVkX2F0GAogASgJEhIKCmV4cGlyZXNfYXQYCyABKAkiPQoYQ2xvdWRUdW5uZWxzQ2xvc2VSZXF1ZXN0EhEKCXR1bm5lbF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiRAoZQ2xvdWRUdW5uZWxzQ2xvc2VSZXNwb25zZRInCgZ0dW5uZWwYASABKAsyFy5wdWJsaWNfYXBpLkNsb3VkVHVubmVsIisKF0Nsb3VkVHVubmVsc0xpc3RSZXF1ZXN0EhAKCGFnZW50X2lkGAEgASgJIkQKGENsb3VkVHVubmVsc0xpc3RSZXNwb25zZRIoCgd0dW5uZWxzGAEgAygLMhcucHVibGljX2FwaS5DbG91ZFR1bm5lbCKGAQoXQ2xvdWRUdW5uZWxzT3BlblJlcXVlc3QSEAoIYWdlbnRfaWQYASABKAkSEgoKbG9jYWxfcG9ydBgCIAEoBRISCgpsb2NhbF9ob3N0GAMgASgJEg0KBWxhYmVsGAQgASgJEhUKCGFjdGl2YXRlGAUgASgISACIAQFCCwoJX2FjdGl2YXRlIkMKGENsb3VkVHVubmVsc09wZW5SZXNwb25zZRInCgZ0dW5uZWwYASABKAsyFy5wdWJsaWNfYXBpLkNsb3VkVHVubmVsIrABChpDbG91ZFVucG9vbGVkRGFlbW9uU3VtbWFyeRINCgV2bV9pZBgBIAEoCRIWCg53b3Jrc3BhY2VfcGF0aBgCIAEoCRISCgptYXhfYWdlbnRzGAMgASgFEhsKE2N1cnJlbnRfYWdlbnRfY291bnQYBCABKAUSFAoMY29ubmVjdGVkX2F0GAUgASgJEhYKDmxhc3RfaGVhcnRiZWF0GAYgASgJEgwKBG5hbWUYByABKAkiWQoaQ2xvdWRXZWJob29rc0NyZWF0ZVJlcXVlc3QSEwoLZGVzY3JpcHRpb24YASABKAkSDAoEdHlwZRgCIAEoCRIYChBjYXB0dXJlZF9oZWFkZXJzGAMgAygJInEKG0Nsb3VkV2ViaG9va3NDcmVhdGVSZXNwb25zZRIUCgx3ZWJob29rX2pzb24YASABKAkSCwoDdXJsGAIgASgJEg4KBnNlY3JldBgDIAEoCRIfChdzZXR1cF9pbnN0cnVjdGlvbnNfanNvbhgEIAEoCSIxChpDbG91ZFdlYmhvb2tzRGVsZXRlUmVxdWVzdBITCgt3ZWJob29rX2lkcxgBIAMoCSJnChtDbG91ZFdlYmhvb2tzRGVsZXRlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIbChNkZWxldGVkX3dlYmhvb2tfaWRzGAIgAygJEhoKEmZhaWxlZF93ZWJob29rX2lkcxgDIAMoCSItChdDbG91ZFdlYmhvb2tzR2V0UmVxdWVzdBISCgp3ZWJob29rX2lkGAEgASgJIjAKGENsb3VkV2ViaG9va3NHZXRSZXNwb25zZRIUCgx3ZWJob29rX2pzb24YASABKAkiTAooQ2xvdWRXZWJob29rc0dldFNldHVwSW5zdHJ1Y3Rpb25zUmVxdWVzdBISCgp3ZWJob29rX2lkGAEgASgJEgwKBHR5cGUYAiABKAkiTAopQ2xvdWRXZWJob29rc0dldFNldHVwSW5zdHJ1Y3Rpb25zUmVzcG9uc2USHwoXc2V0dXBfaW5zdHJ1Y3Rpb25zX2pzb24YASABKAkiGgoYQ2xvdWRXZWJob29rc0xpc3RSZXF1ZXN0IjIKGUNsb3VkV2ViaG9va3NMaXN0UmVzcG9uc2USFQoNd2ViaG9va3NfanNvbhgBIAEoCSJDCh1DbG91ZFdlYmhvb2tzU2V0U2VjcmV0UmVxdWVzdBISCgp3ZWJob29rX2lkGAEgASgJEg4KBnNlY3JldBgCIAEoCSI2Ch5DbG91ZFdlYmhvb2tzU2V0U2VjcmV0UmVzcG9uc2USFAoMd2ViaG9va19qc29uGAEgASgJIpUBChpDbG91ZFdlYmhvb2tzVXBkYXRlUmVxdWVzdBISCgp3ZWJob29rX2lkGAEgASgJEhgKC2Rlc2NyaXB0aW9uGAIgASgJSACIAQESGAoQY2FwdHVyZWRfaGVhZGVycxgDIAMoCRIfChd1cGRhdGVfY2FwdHVyZWRfaGVhZGVycxgEIAEoCEIOCgxfZGVzY3JpcHRpb24iMwobQ2xvdWRXZWJob29rc1VwZGF0ZVJlc3BvbnNlEhQKDHdlYmhvb2tfanNvbhgBIAEoCSL7BAobQ29kZWJhc2VSZXRyaWV2YWxSYXdSZXF1ZXN0Ei4KB3F1ZXJpZXMYASADKAsyHS5wdWJsaWNfYXBpLlJhd1JldHJpZXZhbFF1ZXJ5EiAKBWJsb2JzGAIgASgLMhEucHVibGljX2FwaS5CbG9icxISCgptYXhfY2h1bmtzGAMgASgFEhkKEW1heF9vdXRwdXRfbGVuZ3RoGAQgASgFEhkKEXVzZXJfZ3VpZGVkX2Jsb2JzGAUgAygJEhsKE2V4dGVybmFsX3NvdXJjZV9pZHMYBiADKAkSJQodZGlzYWJsZV9hdXRvX2V4dGVybmFsX3NvdXJjZXMYByABKAgSDAoEcGF0aBgIIAEoCRIOCgZwcmVmaXgYCSABKAkSDgoGc3VmZml4GAogASgJEhUKDXNlbGVjdGVkX2NvZGUYCyABKAkSJAoGZGlhbG9nGAwgAygLMhQucHVibGljX2FwaS5FeGNoYW5nZRIjChtpbmNsdWRlX2Zvcm1hdHRlZF9yZXRyaWV2YWwYDSABKAgSHAoUaW5jbHVkZV9saW5lX251bWJlcnMYDiABKAgSHAoPY29udmVyc2F0aW9uX2lkGA8gASgJSACIAQESIwoWcGFyZW50X2NvbnZlcnNhdGlvbl9pZBgQIAEoCUgBiAEBEiEKFHJvb3RfY29udmVyc2F0aW9uX2lkGBEgASgJSAKIAQESFAoHdHVybl9pZBgSIAEoCUgDiAEBQhIKEF9jb252ZXJzYXRpb25faWRCGQoXX3BhcmVudF9jb252ZXJzYXRpb25faWRCFwoVX3Jvb3RfY29udmVyc2F0aW9uX2lkQgoKCF90dXJuX2lkIqQBChxDb2RlYmFzZVJldHJpZXZhbFJhd1Jlc3BvbnNlEi0KBmNodW5rcxgBIAMoCzIdLnB1YmxpY19hcGkuUmF3UmV0cmlldmVkQ2h1bmsSGwoTZm9ybWF0dGVkX3JldHJpZXZhbBgCIAEoCRIaChJ1bmtub3duX2Jsb2JfbmFtZXMYAyADKAkSHAoUY2hlY2twb2ludF9ub3RfZm91bmQYBCABKAgipQQKGENvZGViYXNlUmV0cmlldmFsUmVxdWVzdBIbChNpbmZvcm1hdGlvbl9yZXF1ZXN0GAEgASgJEiQKBmRpYWxvZxgCIAMoCzIULnB1YmxpY19hcGkuRXhjaGFuZ2USIAoFYmxvYnMYAyABKAsyES5wdWJsaWNfYXBpLkJsb2JzEhkKEW1heF9vdXRwdXRfbGVuZ3RoGAQgASgFEiIKGmRpc2FibGVfY29kZWJhc2VfcmV0cmlldmFsGAUgASgIEh8KF2VuYWJsZV9jb21taXRfcmV0cmlldmFsGAYgASgIEiUKHWVuYWJsZV9jb252ZXJzYXRpb25fcmV0cmlldmFsGAcgASgIEjYKEmJyaW5nX3lvdXJfb3duX2tleRgIIAEoCzIVLmNoYXQuQnJpbmdZb3VyT3duS2V5SACIAQESHAoPY29udmVyc2F0aW9uX2lkGAkgASgJSAGIAQESIwoWcGFyZW50X2NvbnZlcnNhdGlvbl9pZBgKIAEoCUgCiAEBEiEKFHJvb3RfY29udmVyc2F0aW9uX2lkGAsgASgJSAOIAQESFAoHdHVybl9pZBgMIAEoCUgEiAEBQhUKE19icmluZ195b3VyX293bl9rZXlCEgoQX2NvbnZlcnNhdGlvbl9pZEIZChdfcGFyZW50X2NvbnZlcnNhdGlvbl9pZEIXChVfcm9vdF9jb252ZXJzYXRpb25faWRCCgoIX3R1cm5faWQiuwYKGUNvZGViYXNlUmV0cmlldmFsUmVzcG9uc2USGwoTZm9ybWF0dGVkX3JldHJpZXZhbBgBIAEoCRIlCh1jb2RlYmFzZV9yZXRyaWV2YWxfZWxhcHNlZF9tcxgCIAEoBRIpCiFjb252ZXJzYXRpb25fcmV0cmlldmFsX2VsYXBzZWRfbXMYAyABKAUSKQohY29udmVyc2F0aW9uX2luaXRpYWxfcmV0cmlldmFsX21zGAQgASgFEicKH2NvbnZlcnNhdGlvbl9xdWVyeV9yZXdyaXRpbmdfbXMYBSABKAUSKgoiY29udmVyc2F0aW9uX2ZvbGxvd3VwX3JldHJpZXZhbF9tcxgGIAEoBRIbChNibG9iX25hbWVfbG9va3VwX21zGAcgASgFEiEKGWNvZGViYXNlX2NodW5rc19yZXRyaWV2ZWQYCCABKAUSIwobY29udmVyc2F0aW9uX2NodW5rc19pbml0aWFsGAkgASgFEiYKHmNvbnZlcnNhdGlvbl9xdWVyaWVzX2dlbmVyYXRlZBgKIAEoBRIkChxjb252ZXJzYXRpb25fY2h1bmtzX2ZvbGxvd3VwGAsgASgFEiQKHGNvbnZlcnNhdGlvbl9jaHVua3NfY29tYmluZWQYDCABKAUSKgoiY29kZWJhc2VfcmVzdWx0X2xlbl9wcmVfdHJ1bmNhdGlvbhgNIAEoBRIbChNjb2RlYmFzZV9yZXN1bHRfbGVuGA4gASgFEi4KJmNvbnZlcnNhdGlvbl9yZXN1bHRfbGVuX3ByZV90cnVuY2F0aW9uGA8gASgFEh8KF2NvbnZlcnNhdGlvbl9yZXN1bHRfbGVuGBAgASgFEhsKE2NvbWJpbmVkX3Jlc3VsdF9sZW4YESABKAUSFAoMdG90YWxfYnVkZ2V0GBIgASgFEhcKD2NvZGViYXNlX2J1ZGdldBgTIAEoBRIbChNjb252ZXJzYXRpb25fYnVkZ2V0GBQgASgFEhoKEmNvZGViYXNlX3RydW5jYXRlZBgVIAEoCBIeChZjb252ZXJzYXRpb25fdHJ1bmNhdGVkGBYgASgIEhcKD2ZpbmFsX3RydW5jYXRlZBgXIAEoCCJiChJDb21wbGV0aW9uRmVlZGJhY2sSEgoKcmVxdWVzdF9pZBgBIAEoCRIqCgZyYXRpbmcYAiABKA4yGi5wdWJsaWNfYXBpLkZlZWRiYWNrUmF0aW5nEgwKBG5vdGUYAyABKAkiHAoaQ29tcGxldGlvbkZlZWRiYWNrUmVzcG9uc2UigwEKDkNvbXBsZXRpb25JdGVtEgwKBHRleHQYASABKAkSFgoOc2tpcHBlZF9zdWZmaXgYAiABKAkSHwoXc3VmZml4X3JlcGxhY2VtZW50X3RleHQYAyABKAkSGQoMZmlsdGVyX3Njb3JlGAQgASgCSACIAQFCDwoNX2ZpbHRlcl9zY29yZSLKBgoRQ29tcGxldGlvblJlcXVlc3QSEgoFbW9kZWwYASABKAlIAIgBARIOCgZwcm9tcHQYAiABKAkSDAoEcGF0aBgDIAEoCRITCgZzdWZmaXgYBCABKAlIAYgBARIUCghtZW1vcmllcxgFIAMoCUICGAESEgoFdG9wX2sYBiABKAVIAogBARISCgV0b3BfcBgHIAEoAkgDiAEBEhgKC3RlbXBlcmF0dXJlGAggASgCSASIAQESFwoKbWF4X3Rva2VucxgJIAEoBUgFiAEBEhEKBGxhbmcYCiABKAlIBogBARIWCglibG9iX25hbWUYCyABKAlIB4gBARIZCgxwcmVmaXhfYmVnaW4YDCABKAVICIgBARIcCg9jdXJzb3JfcG9zaXRpb24YDSABKAVICYgBARIXCgpzdWZmaXhfZW5kGA4gASgFSAqIAQESMgoMcmVjZW5jeV9pbmZvGA8gASgLMhcucHVibGljX2FwaS5SZWNlbmN5SW5mb0gLiAEBEiAKBWJsb2JzGBAgASgLMhEucHVibGljX2FwaS5CbG9icxIYCgtzZXF1ZW5jZV9pZBgRIAEoDUgMiAEBEhsKCnByb2JlX29ubHkYEiABKAhCAhgBSA2IAQESHQoQZmlsdGVyX3RocmVzaG9sZBgTIAEoAkgOiAEBEi4KC2VkaXRfZXZlbnRzGBQgAygLMhkucHVibGljX2FwaS5GaWxlRWRpdEV2ZW50EjgKD2NvbXBsZXRpb25fdHlwZRgVIAEoDjIaLnB1YmxpY19hcGkuQ29tcGxldGlvblR5cGVID4gBAUIICgZfbW9kZWxCCQoHX3N1ZmZpeEIICgZfdG9wX2tCCAoGX3RvcF9wQg4KDF90ZW1wZXJhdHVyZUINCgtfbWF4X3Rva2Vuc0IHCgVfbGFuZ0IMCgpfYmxvYl9uYW1lQg8KDV9wcmVmaXhfYmVnaW5CEgoQX2N1cnNvcl9wb3NpdGlvbkINCgtfc3VmZml4X2VuZEIPCg1fcmVjZW5jeV9pbmZvQg4KDF9zZXF1ZW5jZV9pZEINCgtfcHJvYmVfb25seUITChFfZmlsdGVyX3RocmVzaG9sZEISChBfY29tcGxldGlvbl90eXBlIqQBChRDb21wbGV0aW9uUmVzb2x1dGlvbhISCgpyZXF1ZXN0X2lkGAEgASgJEhUKDWVtaXRfdGltZV9zZWMYAiABKAMSFgoOZW1pdF90aW1lX25zZWMYAyABKAUSGAoQcmVzb2x2ZV90aW1lX3NlYxgEIAEoAxIZChFyZXNvbHZlX3RpbWVfbnNlYxgFIAEoBRIUCgxhY2NlcHRlZF9pZHgYBiABKAUi4gIKEkNvbXBsZXRpb25SZXNwb25zZRIMCgR0ZXh0GAEgASgJEhwKFHVua25vd25fbWVtb3J5X25hbWVzGAIgAygJEiMKG3N1Z2dlc3RlZF9wcmVmaXhfY2hhcl9jb3VudBgDIAEoDRIjChtzdWdnZXN0ZWRfc3VmZml4X2NoYXJfY291bnQYBCABKA0SJgoVdW5rbm93bl9jaGVja3BvaW50X2lkGAUgASgJQgIYAUgAiAEBEiYKFWNvbXBsZXRpb25fdGltZW91dF9tcxgGIAEoDUICGAFIAYgBARI0ChBjb21wbGV0aW9uX2l0ZW1zGAcgAygLMhoucHVibGljX2FwaS5Db21wbGV0aW9uSXRlbRIcChRjaGVja3BvaW50X25vdF9mb3VuZBgIIAEoCEIYChZfdW5rbm93bl9jaGVja3BvaW50X2lkQhgKFl9jb21wbGV0aW9uX3RpbWVvdXRfbXMiowMKEENvbnZlcnNhdGlvbkluZm8SFwoPY29udmVyc2F0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRINCgV0aXRsZRgDIAEoCRIRCglpc19waW5uZWQYBCABKAgSKgoEdHlwZRgFIAEoDjIcLnB1YmxpY19hcGkuQ29udmVyc2F0aW9uVHlwZRIzCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjMKCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESKAobZm9ya2VkX2Zyb21fY29udmVyc2F0aW9uX2lkGAggASgJSAKIAQESJAoXZm9ya2VkX2Zyb21fZXhjaGFuZ2VfaWQYCSABKAlIA4gBAUINCgtfY3JlYXRlZF9hdEINCgtfdXBkYXRlZF9hdEIeChxfZm9ya2VkX2Zyb21fY29udmVyc2F0aW9uX2lkQhoKGF9mb3JrZWRfZnJvbV9leGNoYW5nZV9pZCLEAQoWQ29zdEFuYWx5dGljc0RhdGFQb2ludBI2CgpkYXRlX3JhbmdlGAEgASgLMiIucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzRGF0ZVJhbmdlEjEKB21ldHJpY3MYAiABKAsyIC5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NNZXRyaWNzEj8KD2dyb3VwX2J5X3ZhbHVlcxgDIAEoCzImLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc0dyb3VwQnlWYWx1ZXMidgoWQ29zdEFuYWx5dGljc0RhdGVSYW5nZRIuCgpzdGFydF9kYXRlGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfZGF0ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiOgoXQ29zdEFuYWx5dGljc0V4cGVydEluZm8SEQoJZXhwZXJ0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkiewoUQ29zdEFuYWx5dGljc0ZpbHRlcnMSEAoIdXNlcl9pZHMYASADKAkSHQoVcHJvZHVjdF9kaXNwbGF5X25hbWVzGAIgAygJEh4KFnJlc291cmNlX2Rpc3BsYXlfbmFtZXMYAyADKAkSEgoKZXhwZXJ0X2lkcxgEIAMoCSL8AgoaQ29zdEFuYWx5dGljc0dyb3VwQnlWYWx1ZXMSGgoSbW9kZWxfZGlzcGxheV9uYW1lGAEgASgJEh0KFWFjdGl2aXR5X2Rpc3BsYXlfbmFtZRgCIAEoCRI0Cgl1c2VyX2luZm8YAyABKAsyIS5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NVc2VySW5mbxI4CgtieW9rX3N0YXR1cxgEIAEoDjIjLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc0J5b2tTdGF0dXMSHQoVcmVzb3VyY2VfZGlzcGxheV9uYW1lGAUgASgJEhwKFHByb2R1Y3RfZGlzcGxheV9uYW1lGAYgASgJEjwKDXJlc291cmNlX3R5cGUYByABKA4yJS5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NSZXNvdXJjZVR5cGUSOAoLZXhwZXJ0X2luZm8YCCABKAsyIy5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NFeHBlcnRJbmZvIpkCChRDb3N0QW5hbHl0aWNzTWV0cmljcxIZChFiaWxsZWRfYW1vdW50X3VzZBgBIAEoCRIjChtlc3RpbWF0ZWRfY3VzdG9tZXJfY29zdF91c2QYAiABKAkSFQoNYmFzZV9jb3N0X3VzZBgDIAEoCRIVCg1zdXJjaGFyZ2VfdXNkGAQgASgJEhQKDGlucHV0X3Rva2VucxgFIAEoBBIVCg1vdXRwdXRfdG9rZW5zGAYgASgEEhkKEWNhY2hlX3JlYWRfdG9rZW5zGAcgASgEEhoKEmNhY2hlX3dyaXRlX3Rva2VucxgIIAEoBBIYChBjcmVkaXRzX2NvbnN1bWVkGAkgASgJEhUKDXNlc3Npb25fY291bnQYCiABKAQicgoWQ29zdEFuYWx5dGljc1RhZ0ZpbHRlchILCgNrZXkYASABKAkSDgoGdmFsdWVzGAIgAygJEjsKC2ZpbHRlcl90eXBlGAMgASgOMiYucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzVGFnRmlsdGVyVHlwZSJ1ChVDb3N0QW5hbHl0aWNzVXNlckluZm8SDwoHdXNlcl9pZBgBIAEoCRI0Cgl1c2VyX3R5cGUYAiABKA4yIS5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NVc2VyVHlwZRIVCg1lbWFpbF9vcl9uYW1lGAMgASgJIsgBChhDb3N0QW5hbHl0aWNzVjJEYXRhUG9pbnQSNgoKZGF0ZV9yYW5nZRgBIAEoCzIiLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc0RhdGVSYW5nZRIxCgdtZXRyaWNzGAIgASgLMiAucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzTWV0cmljcxJBCg9ncm91cF9ieV92YWx1ZXMYAyABKAsyKC5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NWMkdyb3VwQnlWYWx1ZXMiUQoWQ29zdEFuYWx5dGljc1YyRmlsdGVycxI3Cgt0YWdfZmlsdGVycxgBIAMoCzIiLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc1RhZ0ZpbHRlciKiAgocQ29zdEFuYWx5dGljc1YyR3JvdXBCeVZhbHVlcxJACgR0YWdzGAEgAygLMjIucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzVjJHcm91cEJ5VmFsdWVzLlRhZ3NFbnRyeRJaChJ0YWdfZGlzcGxheV92YWx1ZXMYAiADKAsyPi5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NWMkdyb3VwQnlWYWx1ZXMuVGFnRGlzcGxheVZhbHVlc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjcKFVRhZ0Rpc3BsYXlWYWx1ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpMBChdDb3VudENoYXRIaXN0b3J5UmVxdWVzdBIYChBjb252ZXJzYXRpb25faWRzGAEgAygJEhsKDmV4Y2x1ZGVfc2lsZW50GAIgASgISACIAQESGwoOZXhjbHVkZV9mYWlsZWQYAyABKAhIAYgBAUIRCg9fZXhjbHVkZV9zaWxlbnRCEQoPX2V4Y2x1ZGVfZmFpbGVkIlAKGENvdW50Q2hhdEhpc3RvcnlSZXNwb25zZRI0CgdyZXN1bHRzGAEgAygLMiMucHVibGljX2FwaS5Db3VudENvbnZlcnNhdGlvblJlc3VsdCJeChdDb3VudENvbnZlcnNhdGlvblJlc3VsdBIPCgVjb3VudBgCIAEoBUgAEg8KBWVycm9yGAMgASgJSAASFwoPY29udmVyc2F0aW9uX2lkGAEgASgJQggKBnJlc3VsdCK9AgoZQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdBIUCgx3b3Jrc3BhY2VfaWQYASABKAkSDQoFdGl0bGUYAiABKAkSEQoJaXNfcGlubmVkGAMgASgIEioKBHR5cGUYBCABKA4yHC5wdWJsaWNfYXBpLkNvbnZlcnNhdGlvblR5cGUSHAoPY29udmVyc2F0aW9uX2lkGAUgASgJSACIAQESKAobZm9ya2VkX2Zyb21fY29udmVyc2F0aW9uX2lkGAYgASgJSAGIAQESJAoXZm9ya2VkX2Zyb21fZXhjaGFuZ2VfaWQYByABKAlIAogBAUISChBfY29udmVyc2F0aW9uX2lkQh4KHF9mb3JrZWRfZnJvbV9jb252ZXJzYXRpb25faWRCGgoYX2ZvcmtlZF9mcm9tX2V4Y2hhbmdlX2lkIjUKGkNyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlEhcKD2NvbnZlcnNhdGlvbl9pZBgBIAEoCSKIAQoYQ3JlYXRlUHVsbFJlcXVlc3RSZXF1ZXN0EiQKBHJlcG8YASABKAsyFi5wdWJsaWNfYXBpLkdpdGh1YlJlcG8SDQoFdGl0bGUYAiABKAkSDAoEYm9keRgDIAEoCRIMCgRoZWFkGAQgASgJEgwKBGJhc2UYBSABKAkSDQoFZHJhZnQYBiABKAgiUAoZQ3JlYXRlUHVsbFJlcXVlc3RSZXNwb25zZRIzCgxwdWxsX3JlcXVlc3QYASABKAsyHS5wdWJsaWNfYXBpLkdpdGh1YlB1bGxSZXF1ZXN0IqoDChhDcmVhdGVSZW1vdGVBZ2VudFJlcXVlc3QSPgoPd29ya3NwYWNlX3NldHVwGAEgASgLMiUucHVibGljX2FwaS5SZW1vdGVBZ2VudFdvcmtzcGFjZVNldHVwEkoKF2luaXRpYWxfcmVxdWVzdF9kZXRhaWxzGAIgASgLMikucHVibGljX2FwaS5SZW1vdGVBZ2VudENoYXRSZXF1ZXN0RGV0YWlscxISCgVtb2RlbBgDIAEoCUgAiAEBEhkKDHNldHVwX3NjcmlwdBgEIAEoCUgBiAEBEhIKBXRva2VuGAUgASgJSAKIAQESIgoVaXNfc2V0dXBfc2NyaXB0X2FnZW50GAYgASgISAOIAQESEgoFdGl0bGUYByABKAlIBIgBARIXCgppbWFnZV9uYW1lGAggASgJSAWIAQESFgoOZGlzYWJsZWRfdG9vbHMYCSADKAlCCAoGX21vZGVsQg8KDV9zZXR1cF9zY3JpcHRCCAoGX3Rva2VuQhgKFl9pc19zZXR1cF9zY3JpcHRfYWdlbnRCCAoGX3RpdGxlQg0KC19pbWFnZV9uYW1lImMKGUNyZWF0ZVJlbW90ZUFnZW50UmVzcG9uc2USFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEi0KBnN0YXR1cxgCIAEoDjIdLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRTdGF0dXMiTwoUQ3JlYXRlVHJpZ2dlclJlcXVlc3QSNwoNY29uZmlndXJhdGlvbhgBIAEoCzIgLnB1YmxpY19hcGkuVHJpZ2dlckNvbmZpZ3VyYXRpb24iPQoVQ3JlYXRlVHJpZ2dlclJlc3BvbnNlEiQKB3RyaWdnZXIYASABKAsyEy5wdWJsaWNfYXBpLlRyaWdnZXIiLAoWQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJSgQIAhADIi8KF0NyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlEhQKDHdvcmtzcGFjZV9pZBgBIAEoCSIyChFDcmVkaXREZXRhaWxzSW5mbxINCgVsYWJlbBgBIAEoCRIOCgZhbW91bnQYAiABKAEijgEKEUNyZWRpdERpc3BsYXlJbmZvEh8KF3VzYWdlX3VuaXRfZGlzcGxheV9uYW1lGAEgASgJEhkKEXBsYW5fZGlzcGxheV9uYW1lGAIgASgJEjIKBmJhbm5lchgDIAEoCzIdLnB1YmxpY19hcGkuQmFubmVySW5mb3JtYXRpb25IAIgBAUIJCgdfYmFubmVyIjMKGERlbGV0ZVJlbW90ZUFnZW50UmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkiGwoZRGVsZXRlUmVtb3RlQWdlbnRSZXNwb25zZSJDChlEZWxldGVUZW5hbnRTZWNyZXRSZXF1ZXN0EgwKBG5hbWUYASABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgCIAEoCSItChpEZWxldGVUZW5hbnRTZWNyZXRSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIioKFERlbGV0ZVRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYASABKAkiFwoVRGVsZXRlVHJpZ2dlclJlc3BvbnNlInwKF0RlbGV0ZVVzZXJTZWNyZXRSZXF1ZXN0EgwKBG5hbWUYASABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgCIAEoCRImCgVzY29wZRgDIAEoDjIXLnB1YmxpY19hcGkuU2VjcmV0U2NvcGUSEQoJc2VjcmV0X2lkGAQgASgJIisKGERlbGV0ZVVzZXJTZWNyZXRSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIInUKFkRpZmZFeHBsYW5hdGlvblNlY3Rpb24SDQoFdGl0bGUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSNwoIc2VjdGlvbnMYAyADKAsyJS5wdWJsaWNfYXBpLkRpZmZFeHBsYW5hdGlvblN1YlNlY3Rpb24imwEKGURpZmZFeHBsYW5hdGlvblN1YlNlY3Rpb24SDQoFdGl0bGUYASABKAkSRgoMZGVzY3JpcHRpb25zGAIgAygLMjAucHVibGljX2FwaS5EaWZmRXhwbGFuYXRpb25TdWJTZWN0aW9uRGVzY3JpcHRpb24SJwoJZGlmZl90eXBlGAMgASgOMhQucHVibGljX2FwaS5EaWZmVHlwZSJ7CiREaWZmRXhwbGFuYXRpb25TdWJTZWN0aW9uRGVzY3JpcHRpb24SDAoEcGF0aBgBIAEoCRIMCgR0ZXh0GAIgASgJEiAKBXJhbmdlGAMgASgLMhEucHVibGljX2FwaS5SYW5nZRIVCg1zZWxlY3RlZF9jb2RlGAQgASgJIlAKFERpc21pc3NFbnRpdHlSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhEKCWRpc21pc3NlZBgDIAEoCCIXChVEaXNtaXNzRW50aXR5UmVzcG9uc2UidAoYRHJvcHBlZFNoYXJlZFNlcnZlck9wdEluEhEKCXNlcnZlcl9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkSGQoRb3B0X2luX2dlbmVyYXRpb24YAyABKAMSGgoSY3VycmVudF9nZW5lcmF0aW9uGAQgASgDInQKD0VkaXRGaWxlUmVxdWVzdBIRCglmaWxlX3BhdGgYASABKAkSFAoMZWRpdF9zdW1tYXJ5GAIgASgJEiEKGWRldGFpbGVkX2VkaXRfZGVzY3JpcHRpb24YAyABKAkSFQoNZmlsZV9jb250ZW50cxgEIAEoCSJEChBFZGl0RmlsZVJlc3BvbnNlEh4KFm1vZGlmaWVkX2ZpbGVfY29udGVudHMYASABKAkSEAoIaXNfZXJyb3IYAiABKAgijQMKC0VkaXRSZXF1ZXN0EhIKBW1vZGVsGAEgASgJSACIAQESDgoGcHJlZml4GAIgASgJEhUKDXNlbGVjdGVkX3RleHQYAyABKAkSDgoGc3VmZml4GAQgASgJEhYKCmJsb2JfbmFtZXMYBSADKAlCAhgBEhEKBHBhdGgYBiABKAlIAYgBARITCgtpbnN0cnVjdGlvbhgHIAEoCRIRCgRsYW5nGAggASgJSAKIAQESFgoJYmxvYl9uYW1lGAkgASgJSAOIAQESGQoMcHJlZml4X2JlZ2luGAogASgFSASIAQESFwoKc3VmZml4X2VuZBgLIAEoBUgFiAEBEhgKC3NlcXVlbmNlX2lkGAwgASgNSAaIAQESIAoFYmxvYnMYDSABKAsyES5wdWJsaWNfYXBpLkJsb2JzQggKBl9tb2RlbEIHCgVfcGF0aEIHCgVfbGFuZ0IMCgpfYmxvYl9uYW1lQg8KDV9wcmVmaXhfYmVnaW5CDQoLX3N1ZmZpeF9lbmRCDgoMX3NlcXVlbmNlX2lkIqQCCg5FZGl0UmVzb2x1dGlvbhIXCgtjbGllbnRfbmFtZRgBIAEoCUICGAESEgoKcmVxdWVzdF9pZBgCIAEoCRIVCg1lbWl0X3RpbWVfc2VjGAMgASgDEhYKDmVtaXRfdGltZV9uc2VjGAQgASgFEhgKEHJlc29sdmVfdGltZV9zZWMYBSABKAMSGQoRcmVzb2x2ZV90aW1lX25zZWMYBiABKAUSEwoLaXNfYWNjZXB0ZWQYByABKAgSGwoOYW5ub3RhdGVkX3RleHQYCCABKAlIAIgBARIiChVhbm5vdGF0ZWRfaW5zdHJ1Y3Rpb24YCSABKAlIAYgBAUIRCg9fYW5ub3RhdGVkX3RleHRCGAoWX2Fubm90YXRlZF9pbnN0cnVjdGlvbiJWCgxFZGl0UmVzcG9uc2USDAoEdGV4dBgBIAEoCRIaChJ1bmtub3duX2Jsb2JfbmFtZXMYAiADKAkSHAoUY2hlY2twb2ludF9ub3RfZm91bmQYAyABKAgiGAoWRW50ZXJwcmlzZVN1YnNjcmlwdGlvbiKNAgoIRXhjaGFuZ2USFwoPcmVxdWVzdF9tZXNzYWdlGAEgASgJEhoKDXJlc3BvbnNlX3RleHQYAiABKAlIAIgBARIXCgpyZXF1ZXN0X2lkGAMgASgJSAGIAQESMgoNcmVxdWVzdF9ub2RlcxgEIAMoCzIbLnB1YmxpY19hcGkuQ2hhdFJlcXVlc3ROb2RlEjIKDnJlc3BvbnNlX25vZGVzGAUgAygLMhoucHVibGljX2FwaS5DaGF0UmVzdWx0Tm9kZRIZCgxjb21wb3NpdGVfaWQYBiABKAlIAogBAUIQCg5fcmVzcG9uc2VfdGV4dEINCgtfcmVxdWVzdF9pZEIPCg1fY29tcG9zaXRlX2lkItEBCg5FeGNoYW5nZVVwZGF0ZRIXCgpyZXF1ZXN0X2lkGAEgASgJSACIAQESEwoLc2VxdWVuY2VfaWQYAiABKA0SFQoNYXBwZW5kZWRfdGV4dBgDIAEoCRIyCg5hcHBlbmRlZF9ub2RlcxgEIAMoCzIaLnB1YmxpY19hcGkuQ2hhdFJlc3VsdE5vZGUSNwoWYXBwZW5kZWRfY2hhbmdlZF9maWxlcxgFIAMoCzIXLnB1YmxpY19hcGkuQ2hhbmdlZEZpbGVCDQoLX3JlcXVlc3RfaWQiiQIKGUV4ZWN1dGVNYW51YWxBZ2VudFJlcXVlc3QSEQoJZW50aXR5X2lkGAEgASgJEj0KEmdpdGh1Yl9lbnRpdHlfdHlwZRgCIAEoDjIcLnB1YmxpY19hcGkuR2l0SHViRW50aXR5VHlwZUgAiAEBEj0KEmxpbmVhcl9lbnRpdHlfdHlwZRgDIAEoDjIcLnB1YmxpY19hcGkuTGluZWFyRW50aXR5VHlwZUgBiAEBEi0KDGFnZW50X2NvbmZpZxgEIAEoCzIXLnB1YmxpY19hcGkuQWdlbnRDb25maWdCFQoTX2dpdGh1Yl9lbnRpdHlfdHlwZUIVChNfbGluZWFyX2VudGl0eV90eXBlIoYBChpFeGVjdXRlTWFudWFsQWdlbnRSZXNwb25zZRIUCgxleGVjdXRpb25faWQYASABKAkSHAoPcmVtb3RlX2FnZW50X2lkGAIgASgJSACIAQESFAoHbWVzc2FnZRgDIAEoCUgBiAEBQhIKEF9yZW1vdGVfYWdlbnRfaWRCCgoIX21lc3NhZ2UicgodRXhlY3V0ZVRyaWdnZXJNYW51YWxseVJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAkSGQoMZXh0cmFfcHJvbXB0GAMgASgJSACIAQFCDwoNX2V4dHJhX3Byb21wdCKKAQoeRXhlY3V0ZVRyaWdnZXJNYW51YWxseVJlc3BvbnNlEhQKDGV4ZWN1dGlvbl9pZBgBIAEoCRIcCg9yZW1vdGVfYWdlbnRfaWQYAiABKAlIAIgBARIUCgdtZXNzYWdlGAMgASgJSAGIAQFCEgoQX3JlbW90ZV9hZ2VudF9pZEIKCghfbWVzc2FnZSJuCg5FeHRlcm5hbFNvdXJjZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAQgASgJEg0KBXRpdGxlGAIgASgJEjMKC3NvdXJjZV90eXBlGAMgASgOMh4ucHVibGljX2FwaS5FeHRlcm5hbFNvdXJjZVR5cGUi+wUKDkZlYXR1cmVDb250cm9sEj0KDWZlYXR1cmVfdHlwZXMYASADKA4yJi5wdWJsaWNfYXBpLkZlYXR1cmVDb250cm9sLkZlYXR1cmVUeXBlEjYKBXN0YXRlGAIgASgOMicucHVibGljX2FwaS5GZWF0dXJlQ29udHJvbC5GZWF0dXJlU3RhdGUSSQoPZGlzYWJsZWRfcmVhc29uGAMgASgOMjAucHVibGljX2FwaS5GZWF0dXJlQ29udHJvbC5GZWF0dXJlRGlzYWJsZWRSZWFzb24SLAoIZW5kX2RhdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjsKDGRpc3BsYXlfaW5mbxgFIAEoCzIlLnB1YmxpY19hcGkuRmVhdHVyZUNvbnRyb2xEaXNwbGF5SW5mbyLqAQoLRmVhdHVyZVR5cGUSCwoHVU5LTk9XThAAEhAKDEFMTF9GRUFUVVJFUxABEggKBENIQVQQAhIJCgVBR0VOVBADEhAKDFJFTU9URV9BR0VOVBAEEg0KCUNMSV9BR0VOVBAFEg8KC09SSUVOVEFUSU9OEAcSDwoLQ09ERV9SRVZJRVcQCRIiCh5DSEFUX1NUUkVBTV9DUkVESVRfQ09OU1VNUFRJT04QFRISCg5DT05URVhUX0VOR0lORRAWEgwKCFBPU0VJRE9OEBkSEgoOSU5ERVhJTkdfSU5GUkEQHCIECAYQBiIECAgQCCI8CgxGZWF0dXJlU3RhdGUSEQoNU1RBVEVfVU5LTk9XThAAEgsKB0VOQUJMRUQQARIMCghESVNBQkxFRBACIpABChVGZWF0dXJlRGlzYWJsZWRSZWFzb24SEgoOUkVBU09OX1VOS05PV04QABIZChVJTkFDVElWRV9TVUJTQ1JJUFRJT04QARIaChZVU0FHRV9CQUxBTkNFX0RFUExFVEVEEAISGAoUTk9UX0lOQ0xVREVEX0lOX1BMQU4QAxISCg5RVU9UQV9FWENFRURFRBAEIlAKGUZlYXR1cmVDb250cm9sRGlzcGxheUluZm8SLQoGYmFubmVyGAIgASgLMh0ucHVibGljX2FwaS5CYW5uZXJJbmZvcm1hdGlvbkoECAEQAiJJChFGZWF0dXJlR2F0aW5nSW5mbxI0ChBmZWF0dXJlX2NvbnRyb2xzGAEgAygLMhoucHVibGljX2FwaS5GZWF0dXJlQ29udHJvbCJeCghGaWxlRWRpdBIUCgxiZWZvcmVfc3RhcnQYASABKA0SEwoLYmVmb3JlX3RleHQYAiABKAkSEwoLYWZ0ZXJfc3RhcnQYAyABKA0SEgoKYWZ0ZXJfdGV4dBgEIAEoCSJ1Cg1GaWxlRWRpdEV2ZW50EgwKBHBhdGgYASABKAkSGAoQYmVmb3JlX2Jsb2JfbmFtZRgCIAEoCRIXCg9hZnRlcl9ibG9iX25hbWUYAyABKAkSIwoFZWRpdHMYBCADKAsyFC5wdWJsaWNfYXBpLkZpbGVFZGl0IkwKEkZpbmRNaXNzaW5nUmVxdWVzdBISCgVtb2RlbBgBIAEoCUgAiAEBEhgKEG1lbV9vYmplY3RfbmFtZXMYAiADKAlCCAoGX21vZGVsIlIKE0ZpbmRNaXNzaW5nUmVzcG9uc2USHAoUdW5rbm93bl9tZW1vcnlfbmFtZXMYAiADKAkSHQoVbm9uaW5kZXhlZF9ibG9iX25hbWVzGAMgAygJItMBChxHZW5lcmF0ZUNvbW1pdE1lc3NhZ2VSZXF1ZXN0Ej0KEmNoYW5nZWRfZmlsZV9zdGF0cxgBIAEoCzIcLnB1YmxpY19hcGkuQ2hhbmdlZEZpbGVTdGF0c0gAiAEBEhEKBGRpZmYYAiABKAlIAYgBARIgChhyZWxldmFudF9jb21taXRfbWVzc2FnZXMYAyADKAkSHwoXZXhhbXBsZV9jb21taXRfbWVzc2FnZXMYBCADKAlCFQoTX2NoYW5nZWRfZmlsZV9zdGF0c0IHCgVfZGlmZiItCh1HZW5lcmF0ZUNvbW1pdE1lc3NhZ2VSZXNwb25zZRIMCgR0ZXh0GAEgASgJIiQKFkdldEFnZW50UGVyc29uYVJlcXVlc3QSCgoCaWQYASABKAkiSgoXR2V0QWdlbnRQZXJzb25hUmVzcG9uc2USLwoNYWdlbnRfcGVyc29uYRgBIAEoCzIYLnB1YmxpY19hcGkuQWdlbnRQZXJzb25hIhoKGEdldEJpbGxpbmdTdW1tYXJ5UmVxdWVzdCL5AQoZR2V0QmlsbGluZ1N1bW1hcnlSZXNwb25zZRIRCglwbGFuX25hbWUYASABKAkSGAoQYW1vdW50X3JlbWFpbmluZxgCIAEoCRIhChlhbW91bnRfaW5jbHVkZWRfcGVyX2N5Y2xlGAMgASgJEikKCnVzYWdlX3VuaXQYBCABKA4yFS5wdWJsaWNfYXBpLlVzYWdlVW5pdBIiChpiaWxsaW5nX2N5Y2xlX2VuZF9kYXRlX2lzbxgFIAEoCRIyCgZiYW5uZXIYBiABKAsyHS5wdWJsaWNfYXBpLkJhbm5lckluZm9ybWF0aW9uSACIAQFCCQoHX2Jhbm5lciJHChZHZXRDb252ZXJzYXRpb25SZXF1ZXN0EhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIXCg9jb252ZXJzYXRpb25faWQYAiABKAkiTQoXR2V0Q29udmVyc2F0aW9uUmVzcG9uc2USMgoMY29udmVyc2F0aW9uGAEgASgLMhwucHVibGljX2FwaS5Db252ZXJzYXRpb25JbmZvIqMCChdHZXRDb3N0QW5hbHl0aWNzUmVxdWVzdBI2CgpkYXRlX3JhbmdlGAEgASgLMiIucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzRGF0ZVJhbmdlEjcKDWdyb3VwX2J5X2tleXMYAiADKA4yIC5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NHcm91cEJ5Ej0KC2dyYW51bGFyaXR5GAMgASgOMigucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzVGltZUdyYW51bGFyaXR5EhEKCXBhZ2Vfc2l6ZRgEIAEoDRISCgpwYWdlX3Rva2VuGAUgASgJEjEKB2ZpbHRlcnMYBiABKAsyIC5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NGaWx0ZXJzImwKGEdldENvc3RBbmFseXRpY3NSZXNwb25zZRI3CgtkYXRhX3BvaW50cxgBIAMoCzIiLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc0RhdGFQb2ludBIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiiQIKGUdldENvc3RBbmFseXRpY3NWMlJlcXVlc3QSNgoKZGF0ZV9yYW5nZRgBIAEoCzIiLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc0RhdGVSYW5nZRI9CgtncmFudWxhcml0eRgCIAEoDjIoLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc1RpbWVHcmFudWxhcml0eRIZChF0YWdfZ3JvdXBfYnlfa2V5cxgDIAMoCRIzCgdmaWx0ZXJzGAQgASgLMiIucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzVjJGaWx0ZXJzEhEKCXBhZ2Vfc2l6ZRgFIAEoDRISCgpwYWdlX3Rva2VuGAYgASgJInAKGkdldENvc3RBbmFseXRpY3NWMlJlc3BvbnNlEjkKC2RhdGFfcG9pbnRzGAEgAygLMiQucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzVjJEYXRhUG9pbnQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIhYKFEdldENyZWRpdEluZm9SZXF1ZXN0IskDChVHZXRDcmVkaXRJbmZvUmVzcG9uc2USHQoVdXNhZ2VfdW5pdHNfcmVtYWluaW5nGAEgASgBEjMKJ3VzYWdlX3VuaXRzX3RvdGFsX2N1cnJlbnRfYmlsbGluZ19jeWNsZRgCIAEoAUICGAESKAocdXNhZ2VfdW5pdHNfdG90YWxfYWRkaXRpb25hbBgDIAEoAUICGAESHQoVaXNfY3JlZGl0X2JhbGFuY2VfbG93GAQgASgIEjMKDGRpc3BsYXlfaW5mbxgFIAEoCzIdLnB1YmxpY19hcGkuQ3JlZGl0RGlzcGxheUluZm8SMAoMcmVmcmVzaGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCiZpbmNsdWRlZF91c2FnZV91bml0c19wZXJfYmlsbGluZ19jeWNsZRgHIAEoARIqCiJjdXJyZW50X2JpbGxpbmdfY3ljbGVfZW5kX2RhdGVfaXNvGAggASgJEjUKDmNyZWRpdF9kZXRhaWxzGAkgAygLMh0ucHVibGljX2FwaS5DcmVkaXREZXRhaWxzSW5mbxIZChF1c2FnZV91bml0c190b3RhbBgKIAEoASLzAgoXR2V0RW50aXR5RGV0YWlsc1JlcXVlc3QSEQoJZW50aXR5X2lkGAEgASgJEi0KDGV2ZW50X3NvdXJjZRgCIAEoDjIXLnB1YmxpY19hcGkuRXZlbnRTb3VyY2USPQoSZ2l0aHViX2VudGl0eV90eXBlGAMgASgOMhwucHVibGljX2FwaS5HaXRIdWJFbnRpdHlUeXBlSACIAQESPQoSbGluZWFyX2VudGl0eV90eXBlGAQgASgOMhwucHVibGljX2FwaS5MaW5lYXJFbnRpdHlUeXBlSAGIAQESFwoKcmVwb3NpdG9yeRgFIAEoCUgCiAEBEiUKGGluY2x1ZGVfcmVsYXRlZF9lbnRpdGllcxgGIAEoCEgDiAEBQhUKE19naXRodWJfZW50aXR5X3R5cGVCFQoTX2xpbmVhcl9lbnRpdHlfdHlwZUINCgtfcmVwb3NpdG9yeUIbChlfaW5jbHVkZV9yZWxhdGVkX2VudGl0aWVzIucBChhHZXRFbnRpdHlEZXRhaWxzUmVzcG9uc2USNAoNZ2l0aHViX2VudGl0eRgBIAEoCzIYLnB1YmxpY19hcGkuR2l0SHViRW50aXR5SACIAQESNAoNbGluZWFyX2VudGl0eRgCIAEoCzIYLnB1YmxpY19hcGkuTGluZWFyRW50aXR5SAGIAQESDQoFZm91bmQYAyABKAgSGgoNZXJyb3JfbWVzc2FnZRgEIAEoCUgCiAEBQhAKDl9naXRodWJfZW50aXR5QhAKDl9saW5lYXJfZW50aXR5QhAKDl9lcnJvcl9tZXNzYWdlIjwKFEdldEdpdGh1YlJlcG9SZXF1ZXN0EiQKBHJlcG8YASABKAsyFi5wdWJsaWNfYXBpLkdpdGh1YlJlcG8iPQoVR2V0R2l0aHViUmVwb1Jlc3BvbnNlEiQKBHJlcG8YASABKAsyFi5wdWJsaWNfYXBpLkdpdGh1YlJlcG8iNAohR2V0SW1wbGljaXRFeHRlcm5hbFNvdXJjZXNSZXF1ZXN0Eg8KB21lc3NhZ2UYASABKAkiUQoiR2V0SW1wbGljaXRFeHRlcm5hbFNvdXJjZXNSZXNwb25zZRIrCgdzb3VyY2VzGAEgAygLMhoucHVibGljX2FwaS5FeHRlcm5hbFNvdXJjZSI7CiRHZXRMYXRlc3RJbmRleGVkQ29tbWl0QmxvYnNldFJlcXVlc3QSEwoLY29tbWl0X3NoYXMYASADKAkikgEKJUdldExhdGVzdEluZGV4ZWRDb21taXRCbG9ic2V0UmVzcG9uc2USEgoKY29tbWl0X3NoYRgBIAEoCRI1CgpmaWxlX2luZm9zGAIgAygLMiEucHVibGljX2FwaS5JbmRleGVkQ29tbWl0RmlsZUluZm8SHgoWYmFzZWxpbmVfY2hlY2twb2ludF9pZBgDIAEoCSLkAgoaR2V0TWF0Y2hpbmdFbnRpdGllc1JlcXVlc3QSFwoKdHJpZ2dlcl9pZBgBIAEoCUgAiAEBEjYKCmNvbmRpdGlvbnMYAiABKAsyHS5wdWJsaWNfYXBpLlRyaWdnZXJDb25kaXRpb25zSAGIAQESLQoMZXZlbnRfc291cmNlGAMgASgOMhcucHVibGljX2FwaS5FdmVudFNvdXJjZRISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBEhIKBXNpbmNlGAYgASgJSASIAQESEgoFdW50aWwYByABKAlIBYgBARIbCg5zaG93X2Rpc21pc3NlZBgIIAEoCEgGiAEBQg0KC190cmlnZ2VyX2lkQg0KC19jb25kaXRpb25zQggKBl9saW1pdEIJCgdfb2Zmc2V0QggKBl9zaW5jZUIICgZfdW50aWxCEQoPX3Nob3dfZGlzbWlzc2VkItcCChtHZXRNYXRjaGluZ0VudGl0aWVzUmVzcG9uc2USMQoPZ2l0aHViX2VudGl0aWVzGAEgAygLMhgucHVibGljX2FwaS5HaXRIdWJFbnRpdHkSMQoPbGluZWFyX2VudGl0aWVzGAIgAygLMhgucHVibGljX2FwaS5MaW5lYXJFbnRpdHkSEwoLdG90YWxfY291bnQYAyABKA0SEAoIaGFzX21vcmUYBCABKAgSHgoRcXVlcnlfZXhwbGFuYXRpb24YBSABKAlIAIgBARIjChZ0b3RhbF9lbnRpdGllc19jaGVja2VkGAYgASgNSAGIAQESNQoRc2NoZWR1bGVfZW50aXRpZXMYByADKAsyGi5wdWJsaWNfYXBpLlNjaGVkdWxlRW50aXR5QhQKEl9xdWVyeV9leHBsYW5hdGlvbkIZChdfdG90YWxfZW50aXRpZXNfY2hlY2tlZCI0ChxHZXRNY3BDYXRhbG9nTWV0YWRhdGFSZXF1ZXN0EhQKDHByb2R1Y3RfdHlwZRgBIAEoBSJVCh1HZXRNY3BDYXRhbG9nTWV0YWRhdGFSZXNwb25zZRI0CgdlbnRyaWVzGAEgAygLMiMucHVibGljX2FwaS5NY3BDYXRhbG9nTWV0YWRhdGFFbnRyeSJXChdHZXRNY3BDb25maWdCeUlkUmVxdWVzdBIRCgljb25maWdfaWQYASABKAkSKQoFc2NvcGUYAiABKA4yGi5wdWJsaWNfYXBpLk1jcENvbmZpZ1Njb3BlIkEKGEdldE1jcENvbmZpZ0J5SWRSZXNwb25zZRIlCgZjb25maWcYASABKAsyFS5wdWJsaWNfYXBpLk1jcENvbmZpZyJVChNHZXRNY3BTZWNyZXRSZXF1ZXN0EgwKBG5hbWUYASABKAkSHAoPYWN0aXZlX3NwYWNlX2lkGAIgASgJSACIAQFCEgoQX2FjdGl2ZV9zcGFjZV9pZCI9ChRHZXRNY3BTZWNyZXRSZXNwb25zZRIlCgZzZWNyZXQYASABKAsyFS5wdWJsaWNfYXBpLk1jcFNlY3JldCJOChpHZXRNY3BUZW5hbnRDb25maWdzUmVxdWVzdBIwCgxwcm9kdWN0X3R5cGUYASABKA4yGi5wdWJsaWNfYXBpLk1jcFByb2R1Y3RUeXBlIkkKG0dldE1jcFRlbmFudENvbmZpZ3NSZXNwb25zZRIqCgttY3BfY29uZmlncxgBIAMoCzIVLnB1YmxpY19hcGkuTWNwQ29uZmlnIh0KG0dldE1jcFRlbmFudFNldHRpbmdzUmVxdWVzdCJbChxHZXRNY3BUZW5hbnRTZXR0aW5nc1Jlc3BvbnNlEioKC21jcF9jb25maWdzGAEgAygLMhUucHVibGljX2FwaS5NY3BDb25maWcSDwoHdmVyc2lvbhgCIAEoCSJMChhHZXRNY3BVc2VyQ29uZmlnc1JlcXVlc3QSMAoMcHJvZHVjdF90eXBlGAEgASgOMhoucHVibGljX2FwaS5NY3BQcm9kdWN0VHlwZSKJAwoZR2V0TWNwVXNlckNvbmZpZ3NSZXNwb25zZRIqCgttY3BfY29uZmlncxgBIAMoCzIVLnB1YmxpY19hcGkuTWNwQ29uZmlnEiEKGWVuYWJsZWRfc2hhcmVkX3NlcnZlcl9pZHMYAiADKAkSZwoac2VydmVyX3Byb2R1Y3RfcHJlZmVyZW5jZXMYAyADKAsyQy5wdWJsaWNfYXBpLkdldE1jcFVzZXJDb25maWdzUmVzcG9uc2UuU2VydmVyUHJvZHVjdFByZWZlcmVuY2VzRW50cnkSSwodZHJvcHBlZF9zaGFyZWRfc2VydmVyX29wdF9pbnMYBCADKAsyJC5wdWJsaWNfYXBpLkRyb3BwZWRTaGFyZWRTZXJ2ZXJPcHRJbhpnCh1TZXJ2ZXJQcm9kdWN0UHJlZmVyZW5jZXNFbnRyeRILCgNrZXkYASABKAkSNQoFdmFsdWUYAiABKAsyJi5wdWJsaWNfYXBpLk1jcFNlcnZlclByb2R1Y3RQcmVmZXJlbmNlOgI4ASIbChlHZXRNY3BVc2VyU2V0dGluZ3NSZXF1ZXN0IlkKGkdldE1jcFVzZXJTZXR0aW5nc1Jlc3BvbnNlEioKC21jcF9jb25maWdzGAEgAygLMhUucHVibGljX2FwaS5NY3BDb25maWcSDwoHdmVyc2lvbhgCIAEoCSISChBHZXRNb2RlbHNSZXF1ZXN0IuvbAQoRR2V0TW9kZWxzUmVzcG9uc2USGgoNZGVmYXVsdF9tb2RlbBgBIAEoCUgAiAEBEiEKBm1vZGVscxgCIAMoCzIRLnB1YmxpY19hcGkuTW9kZWwSJwoJbGFuZ3VhZ2VzGAMgAygLMhQucHVibGljX2FwaS5MYW5ndWFnZRJGCg1mZWF0dXJlX2ZsYWdzGAQgASgLMioucHVibGljX2FwaS5HZXRNb2RlbHNSZXNwb25zZS5GZWF0dXJlRmxhZ3NIAYgBARI5Cgl1c2VyX3RpZXIYBSABKA4yJi5wdWJsaWNfYXBpLkdldE1vZGVsc1Jlc3BvbnNlLlVzZXJUaWVyEjUKBHVzZXIYBiABKAsyIi5wdWJsaWNfYXBpLkdldE1vZGVsc1Jlc3BvbnNlLlVzZXJIAogBARI+ChJib290c3RyYXBfc2V0dGluZ3MYByABKAsyHS5wdWJsaWNfYXBpLkJvb3RzdHJhcFNldHRpbmdzSAOIAQEajtYBCgxGZWF0dXJlRmxhZ3MSIgoRZW5hYmxlX2NvZGVfZWRpdHMYASABKAhCAhgBSACIAQESGAoLZW5hYmxlX2NoYXQYBSABKAhIAYgBARIoChtlbmFibGVfd29ya3NwYWNlX21hbmFnZXJfdWkYBiABKAhIAogBARIhChRlbmFibGVfaW50ZWxsaWpfY2hhdBgHIAEoCEgDiAEBEi8KImVuYWJsZV93b3Jrc3BhY2VfbWFuYWdlcl91aV9sYXVuY2gYCCABKAhIBIgBARIjChZhZGRpdGlvbmFsX2NoYXRfbW9kZWxzGAkgASgJSAWIAQESJgoZaW50ZWxsaWpfY2hhdF9taW5fdmVyc2lvbhgKIAEoCUgGiAEBEigKG3ZzY29kZV9mbHl3aGVlbF9taW5fdmVyc2lvbhgMIAEoCUgHiAEBEjgKK3ZzY29kZV9leHRlcm5hbF9zb3VyY2VzX2luX2NoYXRfbWluX3ZlcnNpb24YDSABKAlICIgBARIgChNlbmFibGVfaW5zdHJ1Y3Rpb25zGA4gASgISAmIAQESHwoSZW5hYmxlX3NtYXJ0X3Bhc3RlGA8gASgISAqIAQESKwoeZW5hYmxlX3NtYXJ0X3Bhc3RlX21pbl92ZXJzaW9uGBEgASgJSAuIAQESJgoZZW5hYmxlX3ZpZXdfdGV4dF9kb2N1bWVudBgSIAEoCEgMiAEBEiAKE2NoZWNrcG9pbnRfYmxvYnNfdjIYEyABKAhIDYgBARIjChZlbmFibGVfZGF0YV9jb2xsZWN0aW9uGBQgASgISA6IAQESIQoUc21hbGxfc3luY190aHJlc2hvbGQYFSABKANID4gBARIfChJiaWdfc3luY190aHJlc2hvbGQYFiABKANIEIgBARIjChZieXBhc3NfbGFuZ3VhZ2VfZmlsdGVyGBcgASgISBGIAQESHQoQZW5hYmxlX2hpbmRzaWdodBgYIAEoCEgSiAEBEiIKFW1heF91cGxvYWRfc2l6ZV9ieXRlcxgZIAEoA0gTiAEBEjIKJWludGVsbGlqX2ZvcmNlX2NvbXBsZXRpb25fbWluX3ZlcnNpb24YGiABKAlIFIgBARIwCh9lbmFibGVfZXh0ZXJuYWxfc291cmNlc19pbl9jaGF0GBsgASgIQgIYAUgViAEBEiUKGG1heF90cmFja2FibGVfZmlsZV9jb3VudBgcIAEoA0gWiAEBEjgKK21heF90cmFja2FibGVfZmlsZV9jb3VudF93aXRob3V0X3Blcm1pc3Npb24YHSABKANIF4gBARI3CiptaW5fdXBsb2FkZWRfcGVyY2VudGFnZV93aXRob3V0X3Blcm1pc3Npb24YHiABKANIGIgBARI0Cid2c2NvZGVfY2hhdF9oaW50X2RlY29yYXRpb25fbWluX3ZlcnNpb24YHyABKAlIGYgBARIvCiJlbmFibGVfY29tcGxldGlvbl9maWxlX2VkaXRfZXZlbnRzGCEgASgISBqIAQESJwoadnNjb2RlX3NvdXJjZXNfbWluX3ZlcnNpb24YIiABKAlIG4gBARImChl2c2NvZGVfZW5hYmxlX2NwdV9wcm9maWxlGCMgASgISByIAQESKQocdmVyaWZ5X2ZvbGRlcl9pc19zb3VyY2VfcmVwbxgkIAEoCEgdiAEBEiwKH3JlZnVzZV90b19zeW5jX2hvbWVfZGlyZWN0b3JpZXMYJSABKAhIHogBARI2CillbmFibGVfZmlsZV9saW1pdHNfZm9yX3N5bmNpbmdfcGVybWlzc2lvbhgmIAEoCEgfiAEBEiUKGHZzY29kZV9zaGFyZV9taW5fdmVyc2lvbhgnIAEoCUggiAEBEicKGmludGVsbGlqX3NoYXJlX21pbl92ZXJzaW9uGCggASgJSCGIAQESIgoVZW5hYmxlX3N1bW1hcnlfdGl0bGVzGCkgASgISCKIAQESKQocZW5hYmxlX2NoYXRfbWVybWFpZF9kaWFncmFtcxgqIAEoCEgjiAEBEigKG3NtYXJ0X3Bhc3RlX3ByZWNvbXB1dGVfbW9kZRgrIAEoCUgkiAEBEjAKI3ZzY29kZV9uZXdfdGhyZWFkc19tZW51X21pbl92ZXJzaW9uGCwgASgJSCWIAQESMgolaW50ZWxsaWpfbmV3X3RocmVhZHNfbWVudV9taW5fdmVyc2lvbhgtIAEoCUgmiAEBEjAKI3ZzY29kZV9lZGl0YWJsZV9oaXN0b3J5X21pbl92ZXJzaW9uGC4gASgJSCeIAQESIgoVaW50ZWxsaWpfc2hvd19zdW1tYXJ5GC8gASgISCiIAQESHgoRZW5hYmxlX2d1aWRlbGluZXMYMCABKAhIKYgBARI8Ci92c2NvZGVfZW5hYmxlX2NoYXRfbWVybWFpZF9kaWFncmFtc19taW5fdmVyc2lvbhgxIAEoCUgqiAEBEiYKGXZzY29kZV9kZXByZWNhdGVkX3ZlcnNpb24YMiABKAlIK4gBARIoChtpbnRlbGxpal9kZXByZWNhdGVkX3ZlcnNpb24YMyABKAlILIgBARI+CjF2c2NvZGVfdXNlX2NoZWNrcG9pbnRfbWFuYWdlcl9jb250ZXh0X21pbl92ZXJzaW9uGDQgASgJSC2IAQESNwoqdnNjb2RlX3ZhbGlkYXRlX2NoZWNrcG9pbnRfbWFuYWdlcl9jb250ZXh0GDUgASgISC6IAQESLQogaW50ZWxsaWpfc21hcnRfcGFzdGVfbWluX3ZlcnNpb24YNyABKAlIL4gBARI+CjF2c2NvZGVfZGVzaWduX3N5c3RlbV9yaWNoX3RleHRfZWRpdG9yX21pbl92ZXJzaW9uGDogASgJSDCIAQESMAojYWxsb3dfY2xpZW50X2ZlYXR1cmVfZmxhZ19vdmVycmlkZXMYOyABKAhIMYgBARIvCiJ2c2NvZGVfY2hhdF93aXRoX3Rvb2xzX21pbl92ZXJzaW9uGDwgASgJSDKIAQESMQokaW50ZWxsaWpfY2hhdF93aXRoX3Rvb2xzX21pbl92ZXJzaW9uGD0gASgJSDOIAQESLwoidnNjb2RlX2NoYXRfbXVsdGltb2RhbF9taW5fdmVyc2lvbhg+IAEoCUg0iAEBEjEKJGludGVsbGlqX2NoYXRfbXVsdGltb2RhbF9taW5fdmVyc2lvbhg/IAEoCUg1iAEBEj4KMWludGVsbGlqX2VuYWJsZV9jaGF0X21lcm1haWRfZGlhZ3JhbXNfbWluX3ZlcnNpb24YQCABKAlINogBARIqCh12c2NvZGVfYWdlbnRfbW9kZV9taW5fdmVyc2lvbhhBIAEoCUg3iAEBEiwKH2ludGVsbGlqX2FnZW50X21vZGVfbWluX3ZlcnNpb24YQiABKAlIOIgBARImChlpbnRlbGxpal9ibG9ja2VkX3ZlcnNpb25zGEMgASgJSDmIAQESQAozaW50ZWxsaWpfZGVzaWduX3N5c3RlbV9yaWNoX3RleHRfZWRpdG9yX21pbl92ZXJzaW9uGEQgASgJSDqIAQESMgolaW50ZWxsaWpfc3luY2luZ19wcm9ncmVzc19taW5fdmVyc2lvbhhFIAEoCUg7iAEBEiQKF2Vsb19tb2RlbF9jb25maWd1cmF0aW9uGEcgASgJSDyIAQESIwoWdnNjb2RlX2FnZW50X2VkaXRfdG9vbBhJIAEoCUg9iAEBEjkKLGludGVsbGlqX2Fza19mb3Jfc3luY19wZXJtaXNzaW9uX21pbl92ZXJzaW9uGEogASgJSD6IAQESMQokdnNjb2RlX2JhY2tncm91bmRfYWdlbnRzX21pbl92ZXJzaW9uGEsgASgJSD+IAQESMwomaW50ZWxsaWpfYmFja2dyb3VuZF9hZ2VudHNfbWluX3ZlcnNpb24YTCABKAlIQIgBARIpChx1c2VyX2d1aWRlbGluZXNfbGVuZ3RoX2xpbWl0GE0gASgDSEGIAQESLgohd29ya3NwYWNlX2d1aWRlbGluZXNfbGVuZ3RoX2xpbWl0GE4gASgDSEKIAQESNAondnNjb2RlX3JpY2hfY2hlY2twb2ludF9pbmZvX21pbl92ZXJzaW9uGE8gASgJSEOIAQESLAofaW50ZWxsaWpfZW5hYmxlX3VzZXJfZ3VpZGVsaW5lcxhSIAEoCEhEiAEBEjEKJGludGVsbGlqX2VuYWJsZV93b3Jrc3BhY2VfZ3VpZGVsaW5lcxhTIAEoCEhFiAEBEjEKJHZzY29kZV9hZ2VudF9tb2RlX21pbl9zdGFibGVfdmVyc2lvbhhUIAEoCUhGiAEBEjoKLWludGVsbGlqX3ZpcnR1YWxpemVkX21lc3NhZ2VfbGlzdF9taW5fdmVyc2lvbhhWIAEoCUhHiAEBEj0KMHZzY29kZV9jaGF0X3N0YWJsZV9wcmVmaXhfdHJ1bmNhdGlvbl9taW5fdmVyc2lvbhhXIAEoCUhIiAEBEioKHWFnZW50X2VkaXRfdG9vbF9taW5fdmlld19zaXplGFggASgDSEmIAQESMQokaW50ZWxsaWpfdXNlcl9ndWlkZWxpbmVzX2luX3NldHRpbmdzGFkgASgISEqIAQESKAobYWdlbnRfZWRpdF90b29sX3NjaGVtYV90eXBlGFogASgJSEuIAQESLAofdnNjb2RlX2RpcmVjdF9hcHBseV9taW5fdmVyc2lvbhhbIAEoCUhMiAEBEi0KIHZzY29kZV9wZXJzb25hbGl0aWVzX21pbl92ZXJzaW9uGFwgASgJSE2IAQESNwoqYWdlbnRfc2F2ZV9maWxlX3Rvb2xfaW5zdHJ1Y3Rpb25zX3JlbWluZGVyGF4gASgISE6IAQESOgotcmVtb3RlX2FnZW50X2NoYXRfaGlzdG9yeV9wb2xsaW5nX2ludGVydmFsX21zGF8gASgDSE+IAQESMgolcmVtb3RlX2FnZW50X2xpc3RfcG9sbGluZ19pbnRlcnZhbF9tcxhgIAEoA0hQiAEBEj8KMmludGVsbGlqX3ByZWZlcmVuY2VfY29sbGVjdGlvbl9hbGxvd2VkX21pbl92ZXJzaW9uGGIgASgJSFGIAQESLwoiaW50ZWxsaWpfZW5hYmxlX2hvbWVzcHVuX2dpdGlnbm9yZRhjIAEoCEhSiAEBEjcKKnZzY29kZV9nZW5lcmF0ZV9jb21taXRfbWVzc2FnZV9taW5fdmVyc2lvbhhkIAEoCUhTiAEBEhkKDGVuYWJsZV9ydWxlcxhlIAEoCEhUiAEBEjIKJWFnZW50X2VkaXRfdG9vbF9lbmFibGVfZnV6enlfbWF0Y2hpbmcYZyABKAhIVYgBARI4CithZ2VudF9lZGl0X3Rvb2xfZnV6enlfbWF0Y2hfc3VjY2Vzc19tZXNzYWdlGGggASgJSFaIAQESMQokYWdlbnRfZWRpdF90b29sX2Z1enp5X21hdGNoX21heF9kaWZmGGkgASgDSFeIAQESNwoqYWdlbnRfZWRpdF90b29sX2Z1enp5X21hdGNoX21heF9kaWZmX3JhdGlvGGogASgBSFiIAQESSwo+YWdlbnRfZWRpdF90b29sX2Z1enp5X21hdGNoX21pbl9hbGxfbWF0Y2hfc3RyZWFrX2JldHdlZW5fZGlmZnMYayABKANIWYgBARIjChZlbmFibGVfcHJvbXB0X2VuaGFuY2VyGGwgASgISFqIAQESLQogaW50ZWxsaWpfcHJvbXB0X2VuaGFuY2VyX2VuYWJsZWQYbyABKAhIW4gBARIyCiVhZ2VudF9lZGl0X3Rvb2xfaW5zdHJ1Y3Rpb25zX3JlbWluZGVyGHAgASgISFyIAQESIwoWaW50ZWxsaWpfZW5hYmxlX3NlbnRyeRhxIAEoCEhdiAEBEjEKJGludGVsbGlqX3dlYnZpZXdfZXJyb3Jfc2FtcGxpbmdfcmF0ZRhyIAEoAUheiAEBEjAKI2ludGVsbGlqX3BsdWdpbl9lcnJvcl9zYW1wbGluZ19yYXRlGHMgASgBSF+IAQESMQokaW50ZWxsaWpfd2Vidmlld190cmFjZV9zYW1wbGluZ19yYXRlGHQgASgBSGCIAQESMAojaW50ZWxsaWpfcGx1Z2luX3RyYWNlX3NhbXBsaW5nX3JhdGUYdSABKAFIYYgBARIpChxvcGVuX2ZpbGVfbWFuYWdlcl92Ml9lbmFibGVkGHYgASgISGKIAQESOwouaW50ZWxsaWpfZW5hYmxlX3dlYnZpZXdfcGVyZm9ybWFuY2VfbW9uaXRvcmluZxh3IAEoCEhjiAEBEikKHHZzY29kZV90YXNrX2xpc3RfbWluX3ZlcnNpb24YeCABKAlIZIgBARIwCiNhZ2VudF9lZGl0X3Rvb2xfc2hvd19yZXN1bHRfc25pcHBldBh5IAEoCEhliAEBEjIKJWludGVsbGlqX2VkdF9mcmVlemVfZGV0ZWN0aW9uX2VuYWJsZWQYeiABKAhIZogBARIgChNjbGllbnRfYW5ub3VuY2VtZW50GHsgASgJSGeIAQESMAojdnNjb2RlX3JlbW90ZV9hZ2VudF9zc2hfbWluX3ZlcnNpb24YfCABKAlIaIgBARImChlhZ2VudF9lZGl0X3Rvb2xfbWF4X2xpbmVzGH0gASgDSGmIAQESJAoXZ3JlcF9zZWFyY2hfdG9vbF9lbmFibGUYfiABKAhIaogBARIrCh5ncmVwX3NlYXJjaF90b29sX3RpbWVsaW1pdF9zZWMYfyABKANIa4gBARIxCiNncmVwX3NlYXJjaF90b29sX291dHB1dF9jaGFyc19saW1pdBiAASABKANIbIgBARIwCiJncmVwX3NlYXJjaF90b29sX251bV9jb250ZXh0X2xpbmVzGIEBIAEoA0htiAEBEiQKFmVuYWJsZV9hZ2VudF9hdXRvX21vZGUYggEgASgISG6IAQESNAomYWdlbnRfcmVwb3J0X3N0cmVhbWVkX2NoYXRfZXZlcnlfY2h1bmsYgwEgASgDSG+IAQESNgooYWdlbnRfbWF4X3RvdGFsX2NoYW5nZWRfZmlsZXNfc2l6ZV9ieXRlcxiEASABKANIcIgBARIzCiVhZ2VudF9tYXhfY2hhbmdlZF9maWxlc19za2lwcGVkX3BhdGhzGIUBIAEoA0hxiAEBEjIKJGFnZW50X2lkbGVfc3RhdHVzX3VwZGF0ZV9pbnRlcnZhbF9tcxiGASABKANIcogBARIiChRhZ2VudF9tYXhfaXRlcmF0aW9ucxiHASABKANIc4gBARI0CiZhZ2VudF9zc2hfY29ubmVjdGlvbl9jaGVja19pbnRlcnZhbF9tcxiIASABKANIdIgBARI4CiphZ2VudF9zc2hfY29ubmVjdGlvbl9jaGVja19sb2dfaW50ZXJ2YWxfbXMYiQEgASgDSHWIAQESJQoXYmVhY2hoZWFkX2VuYWJsZV9zZW50cnkYigEgASgISHaIAQESKwodYmVhY2hoZWFkX2Vycm9yX3NhbXBsaW5nX3JhdGUYiwEgASgBSHeIAQESKwodYmVhY2hoZWFkX3RyYWNlX3NhbXBsaW5nX3JhdGUYjAEgASgBSHiIAQESNwopdnNjb2RlX3N1cHBvcnRfdG9vbF91c2Vfc3RhcnRfbWluX3ZlcnNpb24YjQEgASgJSHmIAQESKQobaGlzdG9yeV9zdW1tYXJ5X21pbl92ZXJzaW9uGI8BIAEoCUh6iAEBEisKGWhpc3Rvcnlfc3VtbWFyeV9tYXhfY2hhcnMYkAEgASgDQgIYAUh7iAEBEi0KG2hpc3Rvcnlfc3VtbWFyeV9sb3dlcl9jaGFycxiRASABKANCAhgBSHyIAQESJQoXZW5hYmxlX25ld190aHJlYWRzX2xpc3QYkgEgASgISH2IAQESJAoWaGlzdG9yeV9zdW1tYXJ5X3Byb21wdBiTASABKAlIfogBARIwCiJlbmFibGVfdW50cnVuY2F0ZWRfY29udGVudF9zdG9yYWdlGJQBIAEoCEh/iAEBEjAKIW1heF9saW5lc190ZXJtaW5hbF9wcm9jZXNzX291dHB1dBiVASABKANIgAGIAQESJQoWZW5hYmxlX2NvbW1pdF9pbmRleGluZxiXASABKAhIgQGIAQESIwoUbWF4X2NvbW1pdHNfdG9faW5kZXgYmAEgASgDSIIBiAEBEi0KHmludGVsbGlqX3Rhc2tfbGlzdF9taW5fdmVyc2lvbhiZASABKAlIgwGIAQESJgoXZW5hYmxlX2V4Y2hhbmdlX3N0b3JhZ2UYmgEgASgISIQBiAEBEikKGnJldHJ5X2NoYXRfc3RyZWFtX3RpbWVvdXRzGJsBIAEoCEiFAYgBARIsCh1lbmFibGVfdG9vbF91c2Vfc3RhdGVfc3RvcmFnZRicASABKAhIhgGIAQESLQoecmVtb3RlX2FnZW50X2N1cnJlbnRfd29ya3NwYWNlGJ0BIAEoCEiHAYgBARIlChZoaXN0b3J5X3N1bW1hcnlfcGFyYW1zGJ8BIAEoCUiIAYgBARIgChFlbmFibGVfYWdlbnRfdGFicxigASABKAhIiQGIAQESIAoRZW5hYmxlX3N3YXJtX21vZGUYoQEgASgISIoBiAEBEi4KH2JlYWNoaGVhZF9lbmFibGVfc3ViX2FnZW50X3Rvb2wYogEgASgISIsBiAEBEiMKFGVuYWJsZV9ncm91cGVkX3Rvb2xzGKMBIAEoCEiMAYgBARI7CixyZW1vdGVfYWdlbnRzX3Jlc3VtZV9oaW50X2F2YWlsYWJsZV90dGxfZGF5cxikASABKANIjQGIAQESJAoVZW5hYmxlX3BhcmFsbGVsX3Rvb2xzGKUBIAEoCEiOAYgBARIgChFjbGllbnRfZGVwcmVjYXRlZBimASABKAhIjwGIAQESLQoeZW5hYmxlX3ZpZXdlZF9jb250ZW50X3RyYWNraW5nGKcBIAEoCEiQAYgBARIzCiR2aWV3ZWRfY29udGVudF9jbG9zZV9yYW5nZV90aHJlc2hvbGQYqAEgASgDSJEBiAEBEjUKJnZpZXdlZF9jb250ZW50X2Rpc2NyZXRlX2p1bXBfdGhyZXNob2xkGKkBIAEoA0iSAYgBARIuCh92aWV3ZWRfY29udGVudF9taW5fZXZlbnRfYWdlX21zGKoBIAEoA0iTAYgBARIuCh92aWV3ZWRfY29udGVudF9tYXhfZXZlbnRfYWdlX21zGKsBIAEoA0iUAYgBARInChhlbmFibGVfbmF0aXZlX3JlbW90ZV9tY3AYrAEgASgISJUBiAEBEi8KIG5vdGlmaWNhdGlvbl9wb2xsaW5nX2ludGVydmFsX21zGK0BIAEoA0iWAYgBARInChhlbmFibGVfYWdlbnRfZ2l0X3RyYWNrZXIYrgEgASgISJcBiAEBEi4KH3RydW5jYXRpb25fZm9vdGVyX2FkZGl0aW9uX3RleHQYrwEgASgJSJgBiAEBEhwKDWVuYWJsZV9zZW50cnkYsAEgASgISJkBiAEBEioKG3dlYnZpZXdfZXJyb3Jfc2FtcGxpbmdfcmF0ZRixASABKAFImgGIAQESKgobd2Vidmlld190cmFjZV9zYW1wbGluZ19yYXRlGLIBIAEoAUibAYgBARIlChZhZ2VudF92aWV3X3Rvb2xfcGFyYW1zGLMBIAEoCUicAYgBARInChh2c2NvZGVfdGVybWluYWxfc3RyYXRlZ3kYtAEgASgJSJ0BiAEBEh8KEGFnZW50X2NoYXRfbW9kZWwYtQEgASgJSJ4BiAEBEjEKImNsb3VkX2FnZW50X2RlZmF1bHRfbW9kZWxfb3ZlcnJpZGUYtQIgASgJSJ8BiAEBEiIKE21vZGVsX2luZm9fcmVnaXN0cnkYtgEgASgJSKABiAEBEkEKMm1heF9saW5lc190ZXJtaW5hbF9wcm9jZXNzX291dHB1dF9hZnRlcl90cnVuY2F0aW9uGLcBIAEoA0ihAYgBARI0CiVlbmFibGVfbm90aWZpY2F0aW9uc19zZXJ2aWNlX2ludGVsbGlqGLgBIAEoCEiiAYgBARIiChNlbmFibGVfbHVjaWRlX2ljb25zGLkBIAEoCEijAYgBARIvCiBlbmFibGVfZW5oYW5jZWRfZGVoeWRyYXRpb25fbW9kZRi8ASABKAhIpAGIAQESNwoodnNjb2RlX3Nob3dfdGhpbmtpbmdfc3VtbWFyeV9taW5fdmVyc2lvbhi9ASABKAlIpQGIAQESOQoqaW50ZWxsaWpfc2hvd190aGlua2luZ19zdW1tYXJ5X21pbl92ZXJzaW9uGL4BIAEoCUimAYgBARIyCiNpbnRlbGxpal9lbmFibGVfZmlsZV9pbnRha2Vfc2VydmljZRjAASABKAhIpwGIAQESOgoraW50ZWxsaWpfZW5hYmxlX3NlZ21lbnRfYW5hbHl0aWNzX3JlcG9ydGluZxjBASABKAhIqAGIAQESIAoRY2xpX2VuYWJsZV9zZW50cnkYwgEgASgISKkBiAEBEiYKF2NsaV9lcnJvcl9zYW1wbGluZ19yYXRlGMMBIAEoAUiqAYgBARImChdjbGlfdHJhY2Vfc2FtcGxpbmdfcmF0ZRjEASABKAFIqwGIAQESMQoiY2xpX2NoYXRfc3RyZWFtX3JldHJ5X2hhcmRfc3RvcF9tcxjFASABKANIrAGIAQESIwoUY2xpX2VuYWJsZV9hbmFseXRpY3MYxwEgASgISK0BiAEBEiYKF2NsaV9hbmFseXRpY3Nfd3JpdGVfa2V5GMgBIAEoCUiuAYgBARIqChtwYXJ0bmVyX21jcF9sYXVuY2hfMjAyNTA5MTYYyQEgASgISK8BiAEBEiEKEmNsaV9wYXJhbGxlbF90b29scxjKASABKAhIsAGIAQESKQoaZW5hYmxlX2J1bGtfZGVsZXRlX3RocmVhZHMYywEgASgISLEBiAEBEjMKJGVuYWJsZV9pbnRlcnNlY3Rpb25fb2JzZXJ2ZXJfbWFuYWdlchjMASABKAhIsgGIAQESMwokZW5hYmxlX3RlbmFudF9sZXZlbF90b29sX3Blcm1pc3Npb25zGM0BIAEoCEizAYgBARIyCiN3ZWJ2aWV3X3JlcGxheXNfc2Vzc2lvbl9zYW1wbGVfcmF0ZRjOASABKAFItAGIAQESMwokd2Vidmlld19yZXBsYXlzX29uX2Vycm9yX3NhbXBsZV9yYXRlGM8BIAEoAUi1AYgBARIwCiF2c2NvZGVfcGx1Z2luX2Vycm9yX3NhbXBsaW5nX3JhdGUY0AEgASgBSLYBiAEBEjAKIXZzY29kZV9wbHVnaW5fdHJhY2Vfc2FtcGxpbmdfcmF0ZRjRASABKAFItwGIAQESKQoaZW5hYmxlX2NyZWRpdHNfaW5fc2V0dGluZ3MY0gEgASgISLgBiAEBEi8KIGVuYWJsZV9jcmVkaXRfYmFubmVyX2luX3NldHRpbmdzGNMBIAEoCEi5AYgBARIyCiNlbmFibGVfY2hhdF9pbnB1dF9pbmxpbmVfY29tcGxldGlvbhjUASABKAhIugGIAQESKgobY2xpX2VuYWJsZV9hY2NvdW50X2NvbW1hbmRzGNUBIAEoCEi7AYgBARIjChRlbmFibGVfb25ib2FyZGluZ192MhjWASABKAhIvAGIAQESJwoYY2xpX2VuYWJsZV9tZXNzYWdlX3F1ZXVlGNcBIAEoCEi9AYgBARIrChxlbmFibGVfZ3JwY190b19pZGVfbWVzc2FnaW5nGNgBIAEoCEi+AYgBARI4CiljbGlfZW5hYmxlX2FzeW5jX3dvcmtzcGFjZV9pbml0aWFsaXphdGlvbhjZASABKAhIvwGIAQESKQoabWF4X2xpbmVfbGVuZ3RoX2NoYXJhY3RlcnMY2gEgASgFSMABiAEBEjYKJ2VuYWJsZV9jcmVkaXRzX2NvbnN1bWVkX2luX3R1cm5fc3VtbWFyeRjbASABKAhIwQGIAQESMwokZ2l0aHViX2ludGVncmF0aW9uX25vdGlmaWNhdGlvbl9qc29uGNwBIAEoCUjCAYgBARIwCiFlbmFibGVfZGVlcF9saW5rX2NoYXRfd2l0aF9wcm9tcHQY3gEgASgISMMBiAEBEisKHGVuYWJsZV9jb21taXRfc2Vzc2lvbl9ldmVudHMY3wEgASgISMQBiAEBEi8KIHVzZV9pbnRha2Vfc2VydmljZV9mb3JfZmlsZV93YWxrGOABIAEoCEjFAYgBARImChdlbmFibGVfYXBwbHlfcGF0Y2hfdG9vbBjhASABKAhIxgGIAQESMQoiY3VzdG9tZXJfdWlfc2VjcmV0X21hbmFnZXJfZW5hYmxlZBjiASABKAhIxwGIAQESKgobY2hhdF9pbnB1dF9jb21wbGV0aW9uX21vZGVsGOMBIAEoCUjIAYgBARI+Ci92c2NvZGVfcHJvbXB0X2VuaGFuY2VyX25ld19lbmRwb2ludF9yb2xsb3V0X3BjdBjkASABKAVIyQGIAQESQAoxaW50ZWxsaWpfcHJvbXB0X2VuaGFuY2VyX25ld19lbmRwb2ludF9yb2xsb3V0X3BjdBjlASABKAVIygGIAQESOwosY2xpX3Byb21wdF9lbmhhbmNlcl9uZXdfZW5kcG9pbnRfcm9sbG91dF9wY3QY5gEgASgFSMsBiAEBEjMKJGNsaV9lbmFibGVfd29ya2VyX3RocmVhZF9wYXRoX2ZpbHRlchjoASABKAhIzAGIAQESOgorYXBpX3Byb3h5X2NsaV9ub25faW50ZXJhY3RpdmVfbW9kZV9kaXNhYmxlZBjrASABKAhIzQGIAQESKAoZZW5hYmxlX3NldHRpbmdzX2hvbWVfcGFnZRjsASABKAhIzgGIAQESIwoUY2xpX2VuYWJsZV9iYXNoX21vZGUY7QEgASgISM8BiAEBEi8KIGVuYWJsZV9jb2RlX3Jldmlld19zbGFzaF9jb21tYW5kGO4BIAEoCEjQAYgBARIbCgxlbmFibGVfaG9va3MY7wEgASgISNEBiAEBEigKGWVuYWJsZV9oaWVyYXJjaGljYWxfcnVsZXMY8AEgASgISNIBiAEBEi4KH2NhbnZhc19leHRlbnNpb25fZmVhdHVyZV9lbmFibGUY8QEgASgISNMBiAEBEiQKFWVuYWJsZV9kZWJ1Z19mZWF0dXJlcxjyASABKAhI1AGIAQESKAoZZW5hYmxlX3BsdWdpbl9tYXJrZXRwbGFjZRjzASABKAhI1QGIAQESRAo1YmVhY2hoZWFkX2ZpbGVzeXN0ZW1fY2hhbmdlX3RyYWNrZXJfbWF4X2dpdF9wcm9jZXNzZXMY9QEgASgFSNYBiAEBEisKHGNsaV9lbmFibGVfd29ya3NwYWNlX2NvbW1hbmQY9gEgASgISNcBiAEBEiUKFnB1YmxpY19iZXRhX29wdF9pbl9hbGwY9wEgASgISNgBiAEBEjoKK3B1YmxpY19iZXRhX2NhbnZhc19leHRlbnNpb25fZmVhdHVyZV9lbmFibGUY+AEgASgISNkBiAEBEiYKF2VuYWJsZV9wdWJsaWNfYmV0YV9wYWdlGPkBIAEoCEjaAYgBARIxCiJlbmFibGVfd29ya3NwYWNlX2NvbnZlcnNhdGlvbl9zeW5jGPoBIAEoCEjbAYgBARIcCg1lbmFibGVfc2tpbGxzGPwBIAEoCEjcAYgBARIrChxyZXBvc2l0b3J5X2FsbG93bGlzdF9lbmFibGVkGP0BIAEoCEjdAYgBARIrChxjbGlfbmV3X2ZlYXR1cmVfYW5ub3VuY2VtZW50GP8BIAEoCUjeAYgBARIlChZlbmFibGVfY3VzdG9tX2NvbW1hbmRzGIACIAEoCEjfAYgBARImChdjbGlfZW5hYmxlX2Nsb3VkX2FnZW50cxiBAiABKAhI4AGIAQESPgovZW5hYmxlX3dvcmtzcGFjZV9jb252ZXJzYXRpb25fY2hhdF9oaXN0b3J5X3N5bmMYggIgASgISOEBiAEBEjEKInB1YmxpY19iZXRhX2VuYWJsZV9jdXN0b21fY29tbWFuZHMYhAIgASgISOIBiAEBEiMKFGVuYWJsZV9tZXNzYWdlX3F1ZXVlGIUCIAEoCEjjAYgBARInChhlbmFibGVfc2hhcmVkX2d1aWRlbGluZXMYhgIgASgISOQBiAEBEkIKM3ZzY29kZV91cGRhdGVfdmVyc2lvbl9ub3RpZmljYXRpb25fcG9sbGluZ19pbnRlcnZhbBiHAiABKANI5QGIAQESRAo1aW50ZWxsaWpfdXBkYXRlX3ZlcnNpb25fbm90aWZpY2F0aW9uX3BvbGxpbmdfaW50ZXJ2YWwYiAIgASgDSOYBiAEBEiEKEmNsaV9lbmFibGVfcGVyc29uYRiJAiABKAhI5wGIAQESNwooY2xpX2VuYWJsZV9sYXVuY2hfcHJvY2Vzc19ldmVudF9saXN0ZW5lchiKAiABKAhI6AGIAQESOAopdnNjb2RlX2VuYWJsZV91cGRhdGVfdmVyc2lvbl9ub3RpZmljYXRpb24YiwIgASgISOkBiAEBEiMKFGNsaV9lbmFibGVfcGxhbl9tb2RlGIwCIAEoCEjqAYgBARIvCiBjb2xkX3N0YXJ0X2dpdF9zaGFfaW5kZXhfZW5hYmxlZBiNAiABKAhI6wGIAQESOgoraW50ZWxsaWpfZW5hYmxlX3VwZGF0ZV92ZXJzaW9uX25vdGlmaWNhdGlvbhiOAiABKAhI7AGIAQESKgobZW5hYmxlX3JlYWRfcHJvY2Vzc190cmFja2VyGJACIAEoCEjtAYgBARIsCh1yZWFkX3Byb2Nlc3NfbWF4X3dhaXRfc2Vjb25kcxiRAiABKANI7gGIAQESMwokcmVhZF9wcm9jZXNzX3N0dWNrX3BvbGxpbmdfdGhyZXNob2xkGJICIAEoA0jvAYgBARIhChJlbmFibGVfY29tcGxldGlvbnMYkwIgASgISPABiAEBEh8KEGVuYWJsZV9zdWJhZ2VudHMYlAIgASgISPEBiAEBEicKGGNsaV9hbGxvd190b29sX292ZXJyaWRlcxiVAiABKAhI8gGIAQESJwoYY2xpX2VuYWJsZV9jb250ZXh0X3VzYWdlGJYCIAEoCEjzAYgBARIsCh1lbmFibGVfY29udmVyc2F0aW9uX3JldHJpZXZhbBiXAiABKAhI9AGIAQESJQoWY2xpX2VuYWJsZV9kaWZmX3ZpZXdlchiYAiABKAhI9QGIAQESLQoeaW50ZWxsaWpfc2lkZWNhcl9lbmFibGVfc2VudHJ5GJkCIAEoCEj2AYgBARIzCiRpbnRlbGxpal9zaWRlY2FyX2Vycm9yX3NhbXBsaW5nX3JhdGUYmgIgASgBSPcBiAEBEjMKJGludGVsbGlqX3NpZGVjYXJfdHJhY2Vfc2FtcGxpbmdfcmF0ZRibAiABKAFI+AGIAQESKAoZY2xpX2VuYWJsZV9hc3luY19pbmRleGluZxicAiABKAhI+QGIAQESKAoZcHVibGljX2JldGFfZW5hYmxlX3NraWxscxidAiABKAhI+gGIAQESLwogcHVibGljX2JldGFfZW5hYmxlX21lc3NhZ2VfcXVldWUYngIgASgISPsBiAEBEisKHHB1YmxpY19iZXRhX2VuYWJsZV9zdWJhZ2VudHMYnwIgASgISPwBiAEBEiYKF2NsaV9lbmFibGVfc2hvd19jcmVkaXRzGKACIAEoCEj9AYgBARInChhpZGVfZW5hYmxlX2Fza191c2VyX3Rvb2wYoQIgASgISP4BiAEBEisKHGVuYWJsZV9jaGF0X2hpc3RvcnlfcmVjb3ZlcnkYogIgASgISP8BiAEBEjEKImludGVsbGlqX3N0YXRlX3BvbGxpbmdfaW50ZXJ2YWxfbXMYowIgASgDSIACiAEBEi8KIHZzY29kZV9zdGF0ZV9wb2xsaW5nX2ludGVydmFsX21zGKQCIAEoA0iBAogBARIpChpjbGlfZGVmYXVsdF9wb3NlaWRvbl9hZ2VudBilAiABKAhIggKIAQESKQoaY2xpX2VuYWJsZV9zZXNzaW9uX2FuYWx5emUYpgIgASgISIMCiAEBEh8KEGVuYWJsZV9maWdtYV9tY3AYpwIgASgISIQCiAEBEiYKF2VuYWJsZV9oeWJyaWRfcmV0cmlldmFsGKgCIAEoCEiFAogBARIrChxjb252ZXJzYXRpb25fcmVyYW5raW5nX21vZGVsGKkCIAEoCUiGAogBARI3CihiZWFjaGhlYWRfZW5hYmxlX3BhcmFsbGVsX3Rvb2xfZXhlY3V0aW9uGKoCIAEoCEiHAogBARIqChtlbmFibGVfY29udGV4dF93aW5kb3dfdXNhZ2UYqwIgASgISIgCiAEBEiwKHWVuYWJsZV9wbHVnaW5fbWFya2V0cGxhY2VfaWRlGKwCIAEoCEiJAogBARIaCgtlbmFibGVfYnlvaxitAiABKAhIigKIAQESKgoXcG9zZWlkb25fZGFlbW9uX2VuYWJsZWQYrgIgASgIQgIYAUiLAogBARIpChplbmFibGVfY29udGV4dF91c2FnZV9tb2RhbBivAiABKAhIjAKIAQESKQoadG9vbF9zZWFyY2hfc3VtbWFyeV9wcm9tcHQYsgIgASgJSI0CiAEBEisKHHRvb2xfc2VhcmNoX2ZpbmRfdG9vbF9wcm9tcHQYswIgASgJSI4CiAEBEicKGGNsaV9lbmFibGVfc2Vzc2lvbl9zdGF0cxi0AiABKAhIjwKIAQESJgoXZW5hYmxlX21pZF9zdHJlYW1fcmV0cnkYtgIgASgISJACiAEBEh0KDmNsaV9lbmFibGVfYnR3GLcCIAEoCEiRAogBARInChhjbGlfZW5hYmxlX2NvbnRleHRfc3RhdHMYuAIgASgISJICiAEBEioKG2VuYWJsZV9pZGVfaGFuZG9mZl90b19jbG91ZBi5AiABKAhIkwKIAQESMwokY2xpX2VuYWJsZV9jbG91ZF9hZ2VudF9hc2tfdXNlcl90b29sGLoCIAEoCEiUAogBARIiChN1c2VfYWNwX2NvbXBsZXRpb25zGLsCIAEoCEiVAogBARIsCh1lbmFibGVfY29kZWJhc2VfcmV0cmlldmFsX3Jhdxi8AiABKAhIlgKIAQESHgoPd2Vidmlld191c2VfYWNwGL0CIAEoCEiXAogBARIqChtjbGlfZW5hYmxlX2hhbmRvZmZfdG9fY2xvdWQYvgIgASgISJgCiAEBEi0KHnN1YmFnZW50c192aXNpYmlsaXR5X292ZXJyaWRlcxi/AiABKAlImQKIAQESMwokY2xpX2VuYWJsZV9jb2xsYXBzZV9sb25nX3Bhc3RlZF90ZXh0GMACIAEoCEiaAogBARIkChVtYXhfdG9vbF9vdXRwdXRfYnl0ZXMYwQIgASgFSJsCiAEBEicKGGNsaV9jb21wYWN0X3Rvb2xfc3VyZmFjZRjCAiABKAhInAKIAQESJgoXY29zbW9zX2VuYWJsZV9yZXNpZGVudHMYwwIgASgISJ0CiAEBEicKGGNvc21vc19yZXNpZGVudF9wcmVzZW5jZRjLAiABKAhIngKIAQESNgonY2xpX3JlY29yZF9zdW1tYXJpemF0aW9uc19hbmRfc3ViYWdlbnRzGMQCIAEoCEifAogBARIqChtjb3Ntb3NfbW9yZV9jdXN0b21fd2ViaG9va3MYxQIgASgISKACiAEBEjEKImNsaV91c2Vfc3RyZWFtaW5nX3Zmc19maWxlX2NvbnRlbnQYxgIgASgISKECiAEBEiIKE2NsaV90dW5uZWxfY29tbWFuZHMYxwIgASgISKICiAEBEi0KHmNsaV9wb3NlaWRvbl9hbmFseXRpY3NfZW5hYmxlZBjIAiABKAhIowKIAQESLgofY2xpX2RhZW1vbl9wb29sX2FjY2Vzc19jb21tYW5kcxjJAiABKAhIpAKIAQESMAohY29zbW9zX211bHRpX3JlcG9fY29udGV4dF9lbmFibGVkGMoCIAEoCEilAogBARIuCh9jb3Ntb3NfbmVzdGVkX2FnZW50c19tZF9lbmFibGVkGNMCIAEoCEimAogBARIoChl2ZnNfZHVyYWJsZV9maWxlX2lkZW50aXR5GMwCIAEoCEinAogBARIkChVpZGVfZXh0ZW5zaW9uX3JldGlyZWQYzQIgASgISKgCiAEBEjEKImNsaV9lbmFibGVfdmZzX2NvbW1lbnRzX3Byb2plY3Rpb24YzgIgASgISKkCiAEBEjUKJmNsaV9zbGVlcF9yZXN1bWVfd2F0Y2hkb2dfdGhyZXNob2xkX21zGM8CIAEoA0iqAogBARIjChR2ZnNfZXh0ZW5kZWRfc2hhcmluZxjQAiABKAhIqwKIAQESLQoeY2xpX2RhZW1vbl9hdXRvX3VwZGF0ZV9lbmFibGVkGNECIAEoCEisAogBARIhChJpZGVfbWlncmF0aW9uX21vZGUY0gIgASgISK0CiAEBEi0KHmlkZV9taWdyYXRpb25fYW5hbHlzaXNfZW5hYmxlZBjUAiABKAhIrgKIAQESKwocaWRlX21pZ3JhdGlvbl9hbmFseXNpc19tb2RlbBjVAiABKAlIrwKIAQESLwogY2xpX2Vudmlyb25tZW50X3NuYXBzaG90X3VwZGF0ZXMY1gIgASgISLACiAEBEjYKJ2Nvc21vc19jbGlfYmFja2dyb3VuZF9zdWJhZ2VudHNfZW5hYmxlZBjXAiABKAhIsQKIAQESJwoYY2xpX3NlY3JldF9vbGFjX2NvbW1hbmRzGNgCIAEoCEiyAogBARIjChRjbGlfZGVza3RvcF9jb21tYW5kcxjZAiABKAhIswKIAQESLgofY2xpX2VuYWJsZV9zcGFjZV9waW5uZWRfZXhwZXJ0cxjaAiABKAhItAKIAQESNgojcG9zZWlkb25fcHJlZmV0Y2hfdmZzX2JlZm9yZV9hdWdnaWUY2wIgASgIQgIYAUi1AogBARIgChFjb21wYWN0aW9uX2NvbmZpZxjcAiABKAlItgKIAQESQAoxcG9zZWlkb25faW1hZ2VzX2FzeW5jX2Vudmlyb25tZW50X3JlYnVpbGRfZW5hYmxlZBjdAiABKAhItwKIAQESJwoYY2xpX3Zmc19iYWxhbmNlZF9zdHJlYW1zGN4CIAEoCEi4AogBARJACjFwb3NlaWRvbl9pbWFnZXNfYXN5bmNfZW52aXJvbm1lbnRfcmVmcmVzaF9lbmFibGVkGN8CIAEoCEi5AogBARJNCj5wb3NlaWRvbl9pbWFnZXNfYXN5bmNfZW52aXJvbm1lbnRfcmVwb3NpdG9yeV9yZWNvbmNpbGVfZW5hYmxlZBjgAiABKAhIugKIAQESIAoRY2xpX3N5bmNfZnJlZV92ZnMY4QIgASgISLsCiAEBEj8KMHBvc2VpZG9uX2ltYWdlc19hc3luY19lbnZpcm9ubWVudF91cGRhdGVfZW5hYmxlZBjiAiABKAhIvAKIAQESKAoZY29zbW9zX2F1Z2dpZV9lYXJseV9zdGFydBjjAiABKAhIvQKIAQESOgorY29zbW9zX2Vudmlyb25tZW50X3J1bnRpbWVfc2VsZWN0b3JfZW5hYmxlZBjkAiABKAhIvgKIAQESJgoXY29zbW9zX21jcF9hZ2VudF9hdHRhY2gY5QIgASgISL8CiAEBEiYKF2NsaV9zdGFydHVwX2Jhbm5lcl90ZXh0GOYCIAEoCUjAAogBARIpChpwb3NlaWRvbl92ZnNfbWF4X2ZpbGVfc2l6ZRjnAiABKANIwQKIAQESNwooZW5hYmxlX2NvZGViYXNlX3JldHJpZXZhbF90b29sX2F1Z2dpZV92MhjoAiABKAhIwgKIAQESMgojY29zbW9zX2F1Z2dpZV9lbmFibGVfY29udGV4dF9lbmdpbmUY6QIgASgISMMCiAEBEioKG3VzZV92c2NvZGVfc2VydmVyX2Zvcl9maWxlcxjqAiABKAhIxAKIAQFCFAoSX2VuYWJsZV9jb2RlX2VkaXRzQg4KDF9lbmFibGVfY2hhdEIeChxfZW5hYmxlX3dvcmtzcGFjZV9tYW5hZ2VyX3VpQhcKFV9lbmFibGVfaW50ZWxsaWpfY2hhdEIlCiNfZW5hYmxlX3dvcmtzcGFjZV9tYW5hZ2VyX3VpX2xhdW5jaEIZChdfYWRkaXRpb25hbF9jaGF0X21vZGVsc0IcChpfaW50ZWxsaWpfY2hhdF9taW5fdmVyc2lvbkIeChxfdnNjb2RlX2ZseXdoZWVsX21pbl92ZXJzaW9uQi4KLF92c2NvZGVfZXh0ZXJuYWxfc291cmNlc19pbl9jaGF0X21pbl92ZXJzaW9uQhYKFF9lbmFibGVfaW5zdHJ1Y3Rpb25zQhUKE19lbmFibGVfc21hcnRfcGFzdGVCIQofX2VuYWJsZV9zbWFydF9wYXN0ZV9taW5fdmVyc2lvbkIcChpfZW5hYmxlX3ZpZXdfdGV4dF9kb2N1bWVudEIWChRfY2hlY2twb2ludF9ibG9ic192MkIZChdfZW5hYmxlX2RhdGFfY29sbGVjdGlvbkIXChVfc21hbGxfc3luY190aHJlc2hvbGRCFQoTX2JpZ19zeW5jX3RocmVzaG9sZEIZChdfYnlwYXNzX2xhbmd1YWdlX2ZpbHRlckITChFfZW5hYmxlX2hpbmRzaWdodEIYChZfbWF4X3VwbG9hZF9zaXplX2J5dGVzQigKJl9pbnRlbGxpal9mb3JjZV9jb21wbGV0aW9uX21pbl92ZXJzaW9uQiIKIF9lbmFibGVfZXh0ZXJuYWxfc291cmNlc19pbl9jaGF0QhsKGV9tYXhfdHJhY2thYmxlX2ZpbGVfY291bnRCLgosX21heF90cmFja2FibGVfZmlsZV9jb3VudF93aXRob3V0X3Blcm1pc3Npb25CLQorX21pbl91cGxvYWRlZF9wZXJjZW50YWdlX3dpdGhvdXRfcGVybWlzc2lvbkIqCihfdnNjb2RlX2NoYXRfaGludF9kZWNvcmF0aW9uX21pbl92ZXJzaW9uQiUKI19lbmFibGVfY29tcGxldGlvbl9maWxlX2VkaXRfZXZlbnRzQh0KG192c2NvZGVfc291cmNlc19taW5fdmVyc2lvbkIcChpfdnNjb2RlX2VuYWJsZV9jcHVfcHJvZmlsZUIfCh1fdmVyaWZ5X2ZvbGRlcl9pc19zb3VyY2VfcmVwb0IiCiBfcmVmdXNlX3RvX3N5bmNfaG9tZV9kaXJlY3Rvcmllc0IsCipfZW5hYmxlX2ZpbGVfbGltaXRzX2Zvcl9zeW5jaW5nX3Blcm1pc3Npb25CGwoZX3ZzY29kZV9zaGFyZV9taW5fdmVyc2lvbkIdChtfaW50ZWxsaWpfc2hhcmVfbWluX3ZlcnNpb25CGAoWX2VuYWJsZV9zdW1tYXJ5X3RpdGxlc0IfCh1fZW5hYmxlX2NoYXRfbWVybWFpZF9kaWFncmFtc0IeChxfc21hcnRfcGFzdGVfcHJlY29tcHV0ZV9tb2RlQiYKJF92c2NvZGVfbmV3X3RocmVhZHNfbWVudV9taW5fdmVyc2lvbkIoCiZfaW50ZWxsaWpfbmV3X3RocmVhZHNfbWVudV9taW5fdmVyc2lvbkImCiRfdnNjb2RlX2VkaXRhYmxlX2hpc3RvcnlfbWluX3ZlcnNpb25CGAoWX2ludGVsbGlqX3Nob3dfc3VtbWFyeUIUChJfZW5hYmxlX2d1aWRlbGluZXNCMgowX3ZzY29kZV9lbmFibGVfY2hhdF9tZXJtYWlkX2RpYWdyYW1zX21pbl92ZXJzaW9uQhwKGl92c2NvZGVfZGVwcmVjYXRlZF92ZXJzaW9uQh4KHF9pbnRlbGxpal9kZXByZWNhdGVkX3ZlcnNpb25CNAoyX3ZzY29kZV91c2VfY2hlY2twb2ludF9tYW5hZ2VyX2NvbnRleHRfbWluX3ZlcnNpb25CLQorX3ZzY29kZV92YWxpZGF0ZV9jaGVja3BvaW50X21hbmFnZXJfY29udGV4dEIjCiFfaW50ZWxsaWpfc21hcnRfcGFzdGVfbWluX3ZlcnNpb25CNAoyX3ZzY29kZV9kZXNpZ25fc3lzdGVtX3JpY2hfdGV4dF9lZGl0b3JfbWluX3ZlcnNpb25CJgokX2FsbG93X2NsaWVudF9mZWF0dXJlX2ZsYWdfb3ZlcnJpZGVzQiUKI192c2NvZGVfY2hhdF93aXRoX3Rvb2xzX21pbl92ZXJzaW9uQicKJV9pbnRlbGxpal9jaGF0X3dpdGhfdG9vbHNfbWluX3ZlcnNpb25CJQojX3ZzY29kZV9jaGF0X211bHRpbW9kYWxfbWluX3ZlcnNpb25CJwolX2ludGVsbGlqX2NoYXRfbXVsdGltb2RhbF9taW5fdmVyc2lvbkI0CjJfaW50ZWxsaWpfZW5hYmxlX2NoYXRfbWVybWFpZF9kaWFncmFtc19taW5fdmVyc2lvbkIgCh5fdnNjb2RlX2FnZW50X21vZGVfbWluX3ZlcnNpb25CIgogX2ludGVsbGlqX2FnZW50X21vZGVfbWluX3ZlcnNpb25CHAoaX2ludGVsbGlqX2Jsb2NrZWRfdmVyc2lvbnNCNgo0X2ludGVsbGlqX2Rlc2lnbl9zeXN0ZW1fcmljaF90ZXh0X2VkaXRvcl9taW5fdmVyc2lvbkIoCiZfaW50ZWxsaWpfc3luY2luZ19wcm9ncmVzc19taW5fdmVyc2lvbkIaChhfZWxvX21vZGVsX2NvbmZpZ3VyYXRpb25CGQoXX3ZzY29kZV9hZ2VudF9lZGl0X3Rvb2xCLwotX2ludGVsbGlqX2Fza19mb3Jfc3luY19wZXJtaXNzaW9uX21pbl92ZXJzaW9uQicKJV92c2NvZGVfYmFja2dyb3VuZF9hZ2VudHNfbWluX3ZlcnNpb25CKQonX2ludGVsbGlqX2JhY2tncm91bmRfYWdlbnRzX21pbl92ZXJzaW9uQh8KHV91c2VyX2d1aWRlbGluZXNfbGVuZ3RoX2xpbWl0QiQKIl93b3Jrc3BhY2VfZ3VpZGVsaW5lc19sZW5ndGhfbGltaXRCKgooX3ZzY29kZV9yaWNoX2NoZWNrcG9pbnRfaW5mb19taW5fdmVyc2lvbkIiCiBfaW50ZWxsaWpfZW5hYmxlX3VzZXJfZ3VpZGVsaW5lc0InCiVfaW50ZWxsaWpfZW5hYmxlX3dvcmtzcGFjZV9ndWlkZWxpbmVzQicKJV92c2NvZGVfYWdlbnRfbW9kZV9taW5fc3RhYmxlX3ZlcnNpb25CMAouX2ludGVsbGlqX3ZpcnR1YWxpemVkX21lc3NhZ2VfbGlzdF9taW5fdmVyc2lvbkIzCjFfdnNjb2RlX2NoYXRfc3RhYmxlX3ByZWZpeF90cnVuY2F0aW9uX21pbl92ZXJzaW9uQiAKHl9hZ2VudF9lZGl0X3Rvb2xfbWluX3ZpZXdfc2l6ZUInCiVfaW50ZWxsaWpfdXNlcl9ndWlkZWxpbmVzX2luX3NldHRpbmdzQh4KHF9hZ2VudF9lZGl0X3Rvb2xfc2NoZW1hX3R5cGVCIgogX3ZzY29kZV9kaXJlY3RfYXBwbHlfbWluX3ZlcnNpb25CIwohX3ZzY29kZV9wZXJzb25hbGl0aWVzX21pbl92ZXJzaW9uQi0KK19hZ2VudF9zYXZlX2ZpbGVfdG9vbF9pbnN0cnVjdGlvbnNfcmVtaW5kZXJCMAouX3JlbW90ZV9hZ2VudF9jaGF0X2hpc3RvcnlfcG9sbGluZ19pbnRlcnZhbF9tc0IoCiZfcmVtb3RlX2FnZW50X2xpc3RfcG9sbGluZ19pbnRlcnZhbF9tc0I1CjNfaW50ZWxsaWpfcHJlZmVyZW5jZV9jb2xsZWN0aW9uX2FsbG93ZWRfbWluX3ZlcnNpb25CJQojX2ludGVsbGlqX2VuYWJsZV9ob21lc3B1bl9naXRpZ25vcmVCLQorX3ZzY29kZV9nZW5lcmF0ZV9jb21taXRfbWVzc2FnZV9taW5fdmVyc2lvbkIPCg1fZW5hYmxlX3J1bGVzQigKJl9hZ2VudF9lZGl0X3Rvb2xfZW5hYmxlX2Z1enp5X21hdGNoaW5nQi4KLF9hZ2VudF9lZGl0X3Rvb2xfZnV6enlfbWF0Y2hfc3VjY2Vzc19tZXNzYWdlQicKJV9hZ2VudF9lZGl0X3Rvb2xfZnV6enlfbWF0Y2hfbWF4X2RpZmZCLQorX2FnZW50X2VkaXRfdG9vbF9mdXp6eV9tYXRjaF9tYXhfZGlmZl9yYXRpb0JBCj9fYWdlbnRfZWRpdF90b29sX2Z1enp5X21hdGNoX21pbl9hbGxfbWF0Y2hfc3RyZWFrX2JldHdlZW5fZGlmZnNCGQoXX2VuYWJsZV9wcm9tcHRfZW5oYW5jZXJCIwohX2ludGVsbGlqX3Byb21wdF9lbmhhbmNlcl9lbmFibGVkQigKJl9hZ2VudF9lZGl0X3Rvb2xfaW5zdHJ1Y3Rpb25zX3JlbWluZGVyQhkKF19pbnRlbGxpal9lbmFibGVfc2VudHJ5QicKJV9pbnRlbGxpal93ZWJ2aWV3X2Vycm9yX3NhbXBsaW5nX3JhdGVCJgokX2ludGVsbGlqX3BsdWdpbl9lcnJvcl9zYW1wbGluZ19yYXRlQicKJV9pbnRlbGxpal93ZWJ2aWV3X3RyYWNlX3NhbXBsaW5nX3JhdGVCJgokX2ludGVsbGlqX3BsdWdpbl90cmFjZV9zYW1wbGluZ19yYXRlQh8KHV9vcGVuX2ZpbGVfbWFuYWdlcl92Ml9lbmFibGVkQjEKL19pbnRlbGxpal9lbmFibGVfd2Vidmlld19wZXJmb3JtYW5jZV9tb25pdG9yaW5nQh8KHV92c2NvZGVfdGFza19saXN0X21pbl92ZXJzaW9uQiYKJF9hZ2VudF9lZGl0X3Rvb2xfc2hvd19yZXN1bHRfc25pcHBldEIoCiZfaW50ZWxsaWpfZWR0X2ZyZWV6ZV9kZXRlY3Rpb25fZW5hYmxlZEIWChRfY2xpZW50X2Fubm91bmNlbWVudEImCiRfdnNjb2RlX3JlbW90ZV9hZ2VudF9zc2hfbWluX3ZlcnNpb25CHAoaX2FnZW50X2VkaXRfdG9vbF9tYXhfbGluZXNCGgoYX2dyZXBfc2VhcmNoX3Rvb2xfZW5hYmxlQiEKH19ncmVwX3NlYXJjaF90b29sX3RpbWVsaW1pdF9zZWNCJgokX2dyZXBfc2VhcmNoX3Rvb2xfb3V0cHV0X2NoYXJzX2xpbWl0QiUKI19ncmVwX3NlYXJjaF90b29sX251bV9jb250ZXh0X2xpbmVzQhkKF19lbmFibGVfYWdlbnRfYXV0b19tb2RlQikKJ19hZ2VudF9yZXBvcnRfc3RyZWFtZWRfY2hhdF9ldmVyeV9jaHVua0IrCilfYWdlbnRfbWF4X3RvdGFsX2NoYW5nZWRfZmlsZXNfc2l6ZV9ieXRlc0IoCiZfYWdlbnRfbWF4X2NoYW5nZWRfZmlsZXNfc2tpcHBlZF9wYXRoc0InCiVfYWdlbnRfaWRsZV9zdGF0dXNfdXBkYXRlX2ludGVydmFsX21zQhcKFV9hZ2VudF9tYXhfaXRlcmF0aW9uc0IpCidfYWdlbnRfc3NoX2Nvbm5lY3Rpb25fY2hlY2tfaW50ZXJ2YWxfbXNCLQorX2FnZW50X3NzaF9jb25uZWN0aW9uX2NoZWNrX2xvZ19pbnRlcnZhbF9tc0IaChhfYmVhY2hoZWFkX2VuYWJsZV9zZW50cnlCIAoeX2JlYWNoaGVhZF9lcnJvcl9zYW1wbGluZ19yYXRlQiAKHl9iZWFjaGhlYWRfdHJhY2Vfc2FtcGxpbmdfcmF0ZUIsCipfdnNjb2RlX3N1cHBvcnRfdG9vbF91c2Vfc3RhcnRfbWluX3ZlcnNpb25CHgocX2hpc3Rvcnlfc3VtbWFyeV9taW5fdmVyc2lvbkIcChpfaGlzdG9yeV9zdW1tYXJ5X21heF9jaGFyc0IeChxfaGlzdG9yeV9zdW1tYXJ5X2xvd2VyX2NoYXJzQhoKGF9lbmFibGVfbmV3X3RocmVhZHNfbGlzdEIZChdfaGlzdG9yeV9zdW1tYXJ5X3Byb21wdEIlCiNfZW5hYmxlX3VudHJ1bmNhdGVkX2NvbnRlbnRfc3RvcmFnZUIkCiJfbWF4X2xpbmVzX3Rlcm1pbmFsX3Byb2Nlc3Nfb3V0cHV0QhkKF19lbmFibGVfY29tbWl0X2luZGV4aW5nQhcKFV9tYXhfY29tbWl0c190b19pbmRleEIhCh9faW50ZWxsaWpfdGFza19saXN0X21pbl92ZXJzaW9uQhoKGF9lbmFibGVfZXhjaGFuZ2Vfc3RvcmFnZUIdChtfcmV0cnlfY2hhdF9zdHJlYW1fdGltZW91dHNCIAoeX2VuYWJsZV90b29sX3VzZV9zdGF0ZV9zdG9yYWdlQiEKH19yZW1vdGVfYWdlbnRfY3VycmVudF93b3Jrc3BhY2VCGQoXX2hpc3Rvcnlfc3VtbWFyeV9wYXJhbXNCFAoSX2VuYWJsZV9hZ2VudF90YWJzQhQKEl9lbmFibGVfc3dhcm1fbW9kZUIiCiBfYmVhY2hoZWFkX2VuYWJsZV9zdWJfYWdlbnRfdG9vbEIXChVfZW5hYmxlX2dyb3VwZWRfdG9vbHNCLwotX3JlbW90ZV9hZ2VudHNfcmVzdW1lX2hpbnRfYXZhaWxhYmxlX3R0bF9kYXlzQhgKFl9lbmFibGVfcGFyYWxsZWxfdG9vbHNCFAoSX2NsaWVudF9kZXByZWNhdGVkQiEKH19lbmFibGVfdmlld2VkX2NvbnRlbnRfdHJhY2tpbmdCJwolX3ZpZXdlZF9jb250ZW50X2Nsb3NlX3JhbmdlX3RocmVzaG9sZEIpCidfdmlld2VkX2NvbnRlbnRfZGlzY3JldGVfanVtcF90aHJlc2hvbGRCIgogX3ZpZXdlZF9jb250ZW50X21pbl9ldmVudF9hZ2VfbXNCIgogX3ZpZXdlZF9jb250ZW50X21heF9ldmVudF9hZ2VfbXNCGwoZX2VuYWJsZV9uYXRpdmVfcmVtb3RlX21jcEIjCiFfbm90aWZpY2F0aW9uX3BvbGxpbmdfaW50ZXJ2YWxfbXNCGwoZX2VuYWJsZV9hZ2VudF9naXRfdHJhY2tlckIiCiBfdHJ1bmNhdGlvbl9mb290ZXJfYWRkaXRpb25fdGV4dEIQCg5fZW5hYmxlX3NlbnRyeUIeChxfd2Vidmlld19lcnJvcl9zYW1wbGluZ19yYXRlQh4KHF93ZWJ2aWV3X3RyYWNlX3NhbXBsaW5nX3JhdGVCGQoXX2FnZW50X3ZpZXdfdG9vbF9wYXJhbXNCGwoZX3ZzY29kZV90ZXJtaW5hbF9zdHJhdGVneUITChFfYWdlbnRfY2hhdF9tb2RlbEIlCiNfY2xvdWRfYWdlbnRfZGVmYXVsdF9tb2RlbF9vdmVycmlkZUIWChRfbW9kZWxfaW5mb19yZWdpc3RyeUI1CjNfbWF4X2xpbmVzX3Rlcm1pbmFsX3Byb2Nlc3Nfb3V0cHV0X2FmdGVyX3RydW5jYXRpb25CKAomX2VuYWJsZV9ub3RpZmljYXRpb25zX3NlcnZpY2VfaW50ZWxsaWpCFgoUX2VuYWJsZV9sdWNpZGVfaWNvbnNCIwohX2VuYWJsZV9lbmhhbmNlZF9kZWh5ZHJhdGlvbl9tb2RlQisKKV92c2NvZGVfc2hvd190aGlua2luZ19zdW1tYXJ5X21pbl92ZXJzaW9uQi0KK19pbnRlbGxpal9zaG93X3RoaW5raW5nX3N1bW1hcnlfbWluX3ZlcnNpb25CJgokX2ludGVsbGlqX2VuYWJsZV9maWxlX2ludGFrZV9zZXJ2aWNlQi4KLF9pbnRlbGxpal9lbmFibGVfc2VnbWVudF9hbmFseXRpY3NfcmVwb3J0aW5nQhQKEl9jbGlfZW5hYmxlX3NlbnRyeUIaChhfY2xpX2Vycm9yX3NhbXBsaW5nX3JhdGVCGgoYX2NsaV90cmFjZV9zYW1wbGluZ19yYXRlQiUKI19jbGlfY2hhdF9zdHJlYW1fcmV0cnlfaGFyZF9zdG9wX21zQhcKFV9jbGlfZW5hYmxlX2FuYWx5dGljc0IaChhfY2xpX2FuYWx5dGljc193cml0ZV9rZXlCHgocX3BhcnRuZXJfbWNwX2xhdW5jaF8yMDI1MDkxNkIVChNfY2xpX3BhcmFsbGVsX3Rvb2xzQh0KG19lbmFibGVfYnVsa19kZWxldGVfdGhyZWFkc0InCiVfZW5hYmxlX2ludGVyc2VjdGlvbl9vYnNlcnZlcl9tYW5hZ2VyQicKJV9lbmFibGVfdGVuYW50X2xldmVsX3Rvb2xfcGVybWlzc2lvbnNCJgokX3dlYnZpZXdfcmVwbGF5c19zZXNzaW9uX3NhbXBsZV9yYXRlQicKJV93ZWJ2aWV3X3JlcGxheXNfb25fZXJyb3Jfc2FtcGxlX3JhdGVCJAoiX3ZzY29kZV9wbHVnaW5fZXJyb3Jfc2FtcGxpbmdfcmF0ZUIkCiJfdnNjb2RlX3BsdWdpbl90cmFjZV9zYW1wbGluZ19yYXRlQh0KG19lbmFibGVfY3JlZGl0c19pbl9zZXR0aW5nc0IjCiFfZW5hYmxlX2NyZWRpdF9iYW5uZXJfaW5fc2V0dGluZ3NCJgokX2VuYWJsZV9jaGF0X2lucHV0X2lubGluZV9jb21wbGV0aW9uQh4KHF9jbGlfZW5hYmxlX2FjY291bnRfY29tbWFuZHNCFwoVX2VuYWJsZV9vbmJvYXJkaW5nX3YyQhsKGV9jbGlfZW5hYmxlX21lc3NhZ2VfcXVldWVCHwodX2VuYWJsZV9ncnBjX3RvX2lkZV9tZXNzYWdpbmdCLAoqX2NsaV9lbmFibGVfYXN5bmNfd29ya3NwYWNlX2luaXRpYWxpemF0aW9uQh0KG19tYXhfbGluZV9sZW5ndGhfY2hhcmFjdGVyc0IqCihfZW5hYmxlX2NyZWRpdHNfY29uc3VtZWRfaW5fdHVybl9zdW1tYXJ5QicKJV9naXRodWJfaW50ZWdyYXRpb25fbm90aWZpY2F0aW9uX2pzb25CJAoiX2VuYWJsZV9kZWVwX2xpbmtfY2hhdF93aXRoX3Byb21wdEIfCh1fZW5hYmxlX2NvbW1pdF9zZXNzaW9uX2V2ZW50c0IjCiFfdXNlX2ludGFrZV9zZXJ2aWNlX2Zvcl9maWxlX3dhbGtCGgoYX2VuYWJsZV9hcHBseV9wYXRjaF90b29sQiUKI19jdXN0b21lcl91aV9zZWNyZXRfbWFuYWdlcl9lbmFibGVkQh4KHF9jaGF0X2lucHV0X2NvbXBsZXRpb25fbW9kZWxCMgowX3ZzY29kZV9wcm9tcHRfZW5oYW5jZXJfbmV3X2VuZHBvaW50X3JvbGxvdXRfcGN0QjQKMl9pbnRlbGxpal9wcm9tcHRfZW5oYW5jZXJfbmV3X2VuZHBvaW50X3JvbGxvdXRfcGN0Qi8KLV9jbGlfcHJvbXB0X2VuaGFuY2VyX25ld19lbmRwb2ludF9yb2xsb3V0X3BjdEInCiVfY2xpX2VuYWJsZV93b3JrZXJfdGhyZWFkX3BhdGhfZmlsdGVyQi4KLF9hcGlfcHJveHlfY2xpX25vbl9pbnRlcmFjdGl2ZV9tb2RlX2Rpc2FibGVkQhwKGl9lbmFibGVfc2V0dGluZ3NfaG9tZV9wYWdlQhcKFV9jbGlfZW5hYmxlX2Jhc2hfbW9kZUIjCiFfZW5hYmxlX2NvZGVfcmV2aWV3X3NsYXNoX2NvbW1hbmRCDwoNX2VuYWJsZV9ob29rc0IcChpfZW5hYmxlX2hpZXJhcmNoaWNhbF9ydWxlc0IiCiBfY2FudmFzX2V4dGVuc2lvbl9mZWF0dXJlX2VuYWJsZUIYChZfZW5hYmxlX2RlYnVnX2ZlYXR1cmVzQhwKGl9lbmFibGVfcGx1Z2luX21hcmtldHBsYWNlQjgKNl9iZWFjaGhlYWRfZmlsZXN5c3RlbV9jaGFuZ2VfdHJhY2tlcl9tYXhfZ2l0X3Byb2Nlc3Nlc0IfCh1fY2xpX2VuYWJsZV93b3Jrc3BhY2VfY29tbWFuZEIZChdfcHVibGljX2JldGFfb3B0X2luX2FsbEIuCixfcHVibGljX2JldGFfY2FudmFzX2V4dGVuc2lvbl9mZWF0dXJlX2VuYWJsZUIaChhfZW5hYmxlX3B1YmxpY19iZXRhX3BhZ2VCJQojX2VuYWJsZV93b3Jrc3BhY2VfY29udmVyc2F0aW9uX3N5bmNCEAoOX2VuYWJsZV9za2lsbHNCHwodX3JlcG9zaXRvcnlfYWxsb3dsaXN0X2VuYWJsZWRCHwodX2NsaV9uZXdfZmVhdHVyZV9hbm5vdW5jZW1lbnRCGQoXX2VuYWJsZV9jdXN0b21fY29tbWFuZHNCGgoYX2NsaV9lbmFibGVfY2xvdWRfYWdlbnRzQjIKMF9lbmFibGVfd29ya3NwYWNlX2NvbnZlcnNhdGlvbl9jaGF0X2hpc3Rvcnlfc3luY0IlCiNfcHVibGljX2JldGFfZW5hYmxlX2N1c3RvbV9jb21tYW5kc0IXChVfZW5hYmxlX21lc3NhZ2VfcXVldWVCGwoZX2VuYWJsZV9zaGFyZWRfZ3VpZGVsaW5lc0I2CjRfdnNjb2RlX3VwZGF0ZV92ZXJzaW9uX25vdGlmaWNhdGlvbl9wb2xsaW5nX2ludGVydmFsQjgKNl9pbnRlbGxpal91cGRhdGVfdmVyc2lvbl9ub3RpZmljYXRpb25fcG9sbGluZ19pbnRlcnZhbEIVChNfY2xpX2VuYWJsZV9wZXJzb25hQisKKV9jbGlfZW5hYmxlX2xhdW5jaF9wcm9jZXNzX2V2ZW50X2xpc3RlbmVyQiwKKl92c2NvZGVfZW5hYmxlX3VwZGF0ZV92ZXJzaW9uX25vdGlmaWNhdGlvbkIXChVfY2xpX2VuYWJsZV9wbGFuX21vZGVCIwohX2NvbGRfc3RhcnRfZ2l0X3NoYV9pbmRleF9lbmFibGVkQi4KLF9pbnRlbGxpal9lbmFibGVfdXBkYXRlX3ZlcnNpb25fbm90aWZpY2F0aW9uQh4KHF9lbmFibGVfcmVhZF9wcm9jZXNzX3RyYWNrZXJCIAoeX3JlYWRfcHJvY2Vzc19tYXhfd2FpdF9zZWNvbmRzQicKJV9yZWFkX3Byb2Nlc3Nfc3R1Y2tfcG9sbGluZ190aHJlc2hvbGRCFQoTX2VuYWJsZV9jb21wbGV0aW9uc0ITChFfZW5hYmxlX3N1YmFnZW50c0IbChlfY2xpX2FsbG93X3Rvb2xfb3ZlcnJpZGVzQhsKGV9jbGlfZW5hYmxlX2NvbnRleHRfdXNhZ2VCIAoeX2VuYWJsZV9jb252ZXJzYXRpb25fcmV0cmlldmFsQhkKF19jbGlfZW5hYmxlX2RpZmZfdmlld2VyQiEKH19pbnRlbGxpal9zaWRlY2FyX2VuYWJsZV9zZW50cnlCJwolX2ludGVsbGlqX3NpZGVjYXJfZXJyb3Jfc2FtcGxpbmdfcmF0ZUInCiVfaW50ZWxsaWpfc2lkZWNhcl90cmFjZV9zYW1wbGluZ19yYXRlQhwKGl9jbGlfZW5hYmxlX2FzeW5jX2luZGV4aW5nQhwKGl9wdWJsaWNfYmV0YV9lbmFibGVfc2tpbGxzQiMKIV9wdWJsaWNfYmV0YV9lbmFibGVfbWVzc2FnZV9xdWV1ZUIfCh1fcHVibGljX2JldGFfZW5hYmxlX3N1YmFnZW50c0IaChhfY2xpX2VuYWJsZV9zaG93X2NyZWRpdHNCGwoZX2lkZV9lbmFibGVfYXNrX3VzZXJfdG9vbEIfCh1fZW5hYmxlX2NoYXRfaGlzdG9yeV9yZWNvdmVyeUIlCiNfaW50ZWxsaWpfc3RhdGVfcG9sbGluZ19pbnRlcnZhbF9tc0IjCiFfdnNjb2RlX3N0YXRlX3BvbGxpbmdfaW50ZXJ2YWxfbXNCHQobX2NsaV9kZWZhdWx0X3Bvc2VpZG9uX2FnZW50Qh0KG19jbGlfZW5hYmxlX3Nlc3Npb25fYW5hbHl6ZUITChFfZW5hYmxlX2ZpZ21hX21jcEIaChhfZW5hYmxlX2h5YnJpZF9yZXRyaWV2YWxCHwodX2NvbnZlcnNhdGlvbl9yZXJhbmtpbmdfbW9kZWxCKwopX2JlYWNoaGVhZF9lbmFibGVfcGFyYWxsZWxfdG9vbF9leGVjdXRpb25CHgocX2VuYWJsZV9jb250ZXh0X3dpbmRvd191c2FnZUIgCh5fZW5hYmxlX3BsdWdpbl9tYXJrZXRwbGFjZV9pZGVCDgoMX2VuYWJsZV9ieW9rQhoKGF9wb3NlaWRvbl9kYWVtb25fZW5hYmxlZEIdChtfZW5hYmxlX2NvbnRleHRfdXNhZ2VfbW9kYWxCHQobX3Rvb2xfc2VhcmNoX3N1bW1hcnlfcHJvbXB0Qh8KHV90b29sX3NlYXJjaF9maW5kX3Rvb2xfcHJvbXB0QhsKGV9jbGlfZW5hYmxlX3Nlc3Npb25fc3RhdHNCGgoYX2VuYWJsZV9taWRfc3RyZWFtX3JldHJ5QhEKD19jbGlfZW5hYmxlX2J0d0IbChlfY2xpX2VuYWJsZV9jb250ZXh0X3N0YXRzQh4KHF9lbmFibGVfaWRlX2hhbmRvZmZfdG9fY2xvdWRCJwolX2NsaV9lbmFibGVfY2xvdWRfYWdlbnRfYXNrX3VzZXJfdG9vbEIWChRfdXNlX2FjcF9jb21wbGV0aW9uc0IgCh5fZW5hYmxlX2NvZGViYXNlX3JldHJpZXZhbF9yYXdCEgoQX3dlYnZpZXdfdXNlX2FjcEIeChxfY2xpX2VuYWJsZV9oYW5kb2ZmX3RvX2Nsb3VkQiEKH19zdWJhZ2VudHNfdmlzaWJpbGl0eV9vdmVycmlkZXNCJwolX2NsaV9lbmFibGVfY29sbGFwc2VfbG9uZ19wYXN0ZWRfdGV4dEIYChZfbWF4X3Rvb2xfb3V0cHV0X2J5dGVzQhsKGV9jbGlfY29tcGFjdF90b29sX3N1cmZhY2VCGgoYX2Nvc21vc19lbmFibGVfcmVzaWRlbnRzQhsKGV9jb3Ntb3NfcmVzaWRlbnRfcHJlc2VuY2VCKgooX2NsaV9yZWNvcmRfc3VtbWFyaXphdGlvbnNfYW5kX3N1YmFnZW50c0IeChxfY29zbW9zX21vcmVfY3VzdG9tX3dlYmhvb2tzQiUKI19jbGlfdXNlX3N0cmVhbWluZ192ZnNfZmlsZV9jb250ZW50QhYKFF9jbGlfdHVubmVsX2NvbW1hbmRzQiEKH19jbGlfcG9zZWlkb25fYW5hbHl0aWNzX2VuYWJsZWRCIgogX2NsaV9kYWVtb25fcG9vbF9hY2Nlc3NfY29tbWFuZHNCJAoiX2Nvc21vc19tdWx0aV9yZXBvX2NvbnRleHRfZW5hYmxlZEIiCiBfY29zbW9zX25lc3RlZF9hZ2VudHNfbWRfZW5hYmxlZEIcChpfdmZzX2R1cmFibGVfZmlsZV9pZGVudGl0eUIYChZfaWRlX2V4dGVuc2lvbl9yZXRpcmVkQiUKI19jbGlfZW5hYmxlX3Zmc19jb21tZW50c19wcm9qZWN0aW9uQikKJ19jbGlfc2xlZXBfcmVzdW1lX3dhdGNoZG9nX3RocmVzaG9sZF9tc0IXChVfdmZzX2V4dGVuZGVkX3NoYXJpbmdCIQofX2NsaV9kYWVtb25fYXV0b191cGRhdGVfZW5hYmxlZEIVChNfaWRlX21pZ3JhdGlvbl9tb2RlQiEKH19pZGVfbWlncmF0aW9uX2FuYWx5c2lzX2VuYWJsZWRCHwodX2lkZV9taWdyYXRpb25fYW5hbHlzaXNfbW9kZWxCIwohX2NsaV9lbnZpcm9ubWVudF9zbmFwc2hvdF91cGRhdGVzQioKKF9jb3Ntb3NfY2xpX2JhY2tncm91bmRfc3ViYWdlbnRzX2VuYWJsZWRCGwoZX2NsaV9zZWNyZXRfb2xhY19jb21tYW5kc0IXChVfY2xpX2Rlc2t0b3BfY29tbWFuZHNCIgogX2NsaV9lbmFibGVfc3BhY2VfcGlubmVkX2V4cGVydHNCJgokX3Bvc2VpZG9uX3ByZWZldGNoX3Zmc19iZWZvcmVfYXVnZ2llQhQKEl9jb21wYWN0aW9uX2NvbmZpZ0I0CjJfcG9zZWlkb25faW1hZ2VzX2FzeW5jX2Vudmlyb25tZW50X3JlYnVpbGRfZW5hYmxlZEIbChlfY2xpX3Zmc19iYWxhbmNlZF9zdHJlYW1zQjQKMl9wb3NlaWRvbl9pbWFnZXNfYXN5bmNfZW52aXJvbm1lbnRfcmVmcmVzaF9lbmFibGVkQkEKP19wb3NlaWRvbl9pbWFnZXNfYXN5bmNfZW52aXJvbm1lbnRfcmVwb3NpdG9yeV9yZWNvbmNpbGVfZW5hYmxlZEIUChJfY2xpX3N5bmNfZnJlZV92ZnNCMwoxX3Bvc2VpZG9uX2ltYWdlc19hc3luY19lbnZpcm9ubWVudF91cGRhdGVfZW5hYmxlZEIcChpfY29zbW9zX2F1Z2dpZV9lYXJseV9zdGFydEIuCixfY29zbW9zX2Vudmlyb25tZW50X3J1bnRpbWVfc2VsZWN0b3JfZW5hYmxlZEIaChhfY29zbW9zX21jcF9hZ2VudF9hdHRhY2hCGgoYX2NsaV9zdGFydHVwX2Jhbm5lcl90ZXh0Qh0KG19wb3NlaWRvbl92ZnNfbWF4X2ZpbGVfc2l6ZUIrCilfZW5hYmxlX2NvZGViYXNlX3JldHJpZXZhbF90b29sX2F1Z2dpZV92MkImCiRfY29zbW9zX2F1Z2dpZV9lbmFibGVfY29udGV4dF9lbmdpbmVCHgocX3VzZV92c2NvZGVfc2VydmVyX2Zvcl9maWxlc0oECAIQA0oECAMQBEoECAQQBUoGCI8CEJACSgQICxAMSgQIEBARSgQIIBAhSgQINhA3SgQIOBA5SgQIORA6SgQIRhBHSgQISBBJSgQIUBBRSgQIURBSSgQIVRBWSgQIXRBeSgQIYRBiSgQIZhBnSgQIbRBuSgQIbhBvSgYIjgEQjwFKBgiWARCXAUoGCJ4BEJ8BSgYIugEQuwFKBgi7ARC8AUoGCL8BEMABSgYIxgEQxwFKBgjdARDeAUoGCOcBEOgBSgYI6QEQ6gFKBgjqARDrAUoGCPQBEPUBSgYI+wEQ/AFKBgiDAhCEAkoGCLACELECSgYIsQIQsgJSHHZzY29kZV9uZXh0X2VkaXRfbWluX3ZlcnNpb25SFW5leHRfZWRpdF9kZWJvdW5jZV9tc1IoaW50ZWxsaWpfY29tcGxldGlvbnNfaGlzdG9yeV9taW5fdmVyc2lvblIgdnNjb2RlX25leHRfZWRpdF91eDFfbWF4X3ZlcnNpb25SIHZzY29kZV9uZXh0X2VkaXRfdXgyX21heF92ZXJzaW9uUil2c2NvZGVfbmV4dF9lZGl0X2JvdHRvbV9wYW5lbF9taW5fdmVyc2lvblIrdnNjb2RlX3ZpcnR1YWxpemVkX21lc3NhZ2VfbGlzdF9taW5fdmVyc2lvblIVZW5hYmxlX21vZGVsX3JlZ2lzdHJ5Ug5tb2RlbF9yZWdpc3RyeVIUZnJhdWRfc2lnbl9lbmRwb2ludHNSOGdpdGh1Yl9pbnRlZ3JhdGlvbl9ub3RpZmljYXRpb25fb25fZmlyc3RfbWVzc2FnZV9lbmFibGVkUidpc19vbmJvYXJkaW5nX2ZlYXR1cmVfaGlnaGxpZ2h0X2VuYWJsZWRSLnZzY29kZV9nZW5lcmF0ZV9jb252ZXJzYXRpb25fdGl0bGVfcm9sbG91dF9wY3RSMGludGVsbGlqX2dlbmVyYXRlX2NvbnZlcnNhdGlvbl90aXRsZV9yb2xsb3V0X3BjdFIcdnNjb2RlX2F1dG9faW5kZXhfcGVybWlzc2lvblIVZW5hYmxlX2NvbnRleHRfY2FudmFzUhdlbmFibGVfbWNwX3JlZ2lzdHJ5X2NsaVIZZW5hYmxlX21jcF9yZWdpc3RyeV9jbG91ZBrEAQoEVXNlchIKCgJpZBgBIAEoCRISCgVlbWFpbBgCIAEoCUgAiAEBEhYKCXRlbmFudF9pZBgDIAEoCUgBiAEBEhgKC3RlbmFudF9uYW1lGAQgASgJSAKIAQESMwoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBAUIICgZfZW1haWxCDAoKX3RlbmFudF9pZEIOCgxfdGVuYW50X25hbWVCDQoLX2NyZWF0ZWRfYXQiVwoIVXNlclRpZXISCwoHVU5LTk9XThAAEhIKDkNPTU1VTklUWV9USUVSEAESFQoRUFJPRkVTU0lPTkFMX1RJRVIQAhITCg9FTlRFUlBSSVNFX1RJRVIQA0IQCg5fZGVmYXVsdF9tb2RlbEIQCg5fZmVhdHVyZV9mbGFnc0IHCgVfdXNlckIVChNfYm9vdHN0cmFwX3NldHRpbmdzItQCChpHZXRPdXRjb21lQW5hbHl0aWNzUmVxdWVzdBI2CgpkYXRlX3JhbmdlGAEgASgLMiIucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzRGF0ZVJhbmdlEhkKEXRhZ19ncm91cF9ieV9rZXlzGAIgAygJEjQKB2ZpbHRlcnMYAyABKAsyIy5wdWJsaWNfYXBpLk91dGNvbWVBbmFseXRpY3NGaWx0ZXJzEhwKFGluY2x1ZGVfY29zdF9tZXRyaWNzGAQgASgIEj0KC2dyYW51bGFyaXR5GAUgASgOMigucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzVGltZUdyYW51bGFyaXR5Eh0KFWRpc2FibGVfZ3JvdXBfYnlfbmFtZRgGIAEoCBIxCg5vdXRjb21lX29yaWdpbhgHIAEoDjIZLnB1YmxpY19hcGkuT3V0Y29tZU9yaWdpbiJZChtHZXRPdXRjb21lQW5hbHl0aWNzUmVzcG9uc2USOgoLZGF0YV9wb2ludHMYASADKAsyJS5wdWJsaWNfYXBpLk91dGNvbWVBbmFseXRpY3NEYXRhUG9pbnQiIgogR2V0UG9zZWlkb25UZW5hbnRTZXR0aW5nc1JlcXVlc3QiQgohR2V0UG9zZWlkb25UZW5hbnRTZXR0aW5nc1Jlc3BvbnNlEh0KFWRlZmF1bHRfYmFzZV9pbWFnZV9pZBgBIAEoCSIgCh5HZXRQb3NlaWRvblVzZXJTZXR0aW5nc1JlcXVlc3QifgofR2V0UG9zZWlkb25Vc2VyU2V0dGluZ3NSZXNwb25zZRIeChZkZWZhdWx0X2Vudmlyb25tZW50X2lkGAEgASgJEjUKDHBpbm5lZF9vcmRlchgDIAMoCzIfLnB1YmxpY19hcGkuUG9zZWlkb25QaW5uZWRFbnRyeUoECAIQAyKFAQogR2V0UmVtb3RlQWdlbnRDaGF0SGlzdG9yeVJlcXVlc3QSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEiIKGmxhc3RfcHJvY2Vzc2VkX3NlcXVlbmNlX2lkGAIgASgNEhYKCXBlZWtfb25seRgDIAEoCEgAiAEBQgwKCl9wZWVrX29ubHki0QEKIUdldFJlbW90ZUFnZW50Q2hhdEhpc3RvcnlSZXNwb25zZRI1CgxjaGF0X2hpc3RvcnkYAiADKAsyHy5wdWJsaWNfYXBpLlJlbW90ZUFnZW50RXhjaGFuZ2USHAoPc2Vzc2lvbl9zdW1tYXJ5GAMgASgJSACIAQESMgoMcmVtb3RlX2FnZW50GAQgASgLMhcucHVibGljX2FwaS5SZW1vdGVBZ2VudEgBiAEBQhIKEF9zZXNzaW9uX3N1bW1hcnlCDwoNX3JlbW90ZV9hZ2VudCKHAQoiR2V0UmVtb3RlQWdlbnRIaXN0b3J5U3RyZWFtUmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkSIgoabGFzdF9wcm9jZXNzZWRfc2VxdWVuY2VfaWQYAiABKA0SFgoJcGVla19vbmx5GAMgASgISACIAQFCDAoKX3BlZWtfb25seSJWCiNHZXRSZW1vdGVBZ2VudEhpc3RvcnlTdHJlYW1SZXNwb25zZRIvCgd1cGRhdGVzGAEgAygLMh4ucHVibGljX2FwaS5BZ2VudEhpc3RvcnlVcGRhdGUi4QEKGkdldFNlc3Npb25BbmFseXRpY3NSZXF1ZXN0EjYKCmRhdGVfcmFuZ2UYASABKAsyIi5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NEYXRlUmFuZ2USNAoHZmlsdGVycxgCIAEoCzIjLnB1YmxpY19hcGkuT3V0Y29tZUFuYWx5dGljc0ZpbHRlcnMSHAoUaW5jbHVkZV9jb3N0X21ldHJpY3MYAyABKAgSEQoJcGFnZV9zaXplGAQgASgNEhIKCnBhZ2VfdG9rZW4YBSABKAkSEAoIYWdlbnRfaWQYBiABKAkiqAEKG0dldFNlc3Npb25BbmFseXRpY3NSZXNwb25zZRIzCghzZXNzaW9ucxgBIAMoCzIhLnB1YmxpY19hcGkuT3V0Y29tZVNlc3Npb25TdW1tYXJ5EjsKDG9ic2VydmF0aW9ucxgCIAMoCzIlLnB1YmxpY19hcGkuT3V0Y29tZVNlc3Npb25PYnNlcnZhdGlvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAyABKAkiKgoWR2V0U2Vzc2lvblVzYWdlUmVxdWVzdBIQCghhZ2VudF9pZBgBIAEoCSKPAQoXR2V0U2Vzc2lvblVzYWdlUmVzcG9uc2USNwoVdXNhZ2VfY3VycmVudF9zZXNzaW9uGAEgASgLMhgucHVibGljX2FwaS5TZXNzaW9uVXNhZ2USOwoZdXNhZ2Vfd2l0aF9jaGlsZF9zZXNzaW9ucxgCIAEoCzIYLnB1YmxpY19hcGkuU2Vzc2lvblVzYWdlIh4KHEdldFN1YnNjcmlwdGlvbkJhbm5lclJlcXVlc3QiTgodR2V0U3Vic2NyaXB0aW9uQmFubmVyUmVzcG9uc2USLQoGYmFubmVyGAEgASgLMh0ucHVibGljX2FwaS5CYW5uZXJJbmZvcm1hdGlvbiIcChpHZXRTdWJzY3JpcHRpb25JbmZvUmVxdWVzdCKxAgobR2V0U3Vic2NyaXB0aW9uSW5mb1Jlc3BvbnNlEjwKCmVudGVycHJpc2UYASABKAsyIi5wdWJsaWNfYXBpLkVudGVycHJpc2VTdWJzY3JpcHRpb25CAhgBSAASQQoTYWN0aXZlX3N1YnNjcmlwdGlvbhgCIAEoCzIeLnB1YmxpY19hcGkuQWN0aXZlU3Vic2NyaXB0aW9uQgIYAUgAEkUKFWluYWN0aXZlX3N1YnNjcmlwdGlvbhgDIAEoCzIgLnB1YmxpY19hcGkuSW5hY3RpdmVTdWJzY3JpcHRpb25CAhgBSAASOgoTZmVhdHVyZV9nYXRpbmdfaW5mbxgEIAEoCzIdLnB1YmxpY19hcGkuRmVhdHVyZUdhdGluZ0luZm9CDgoMc3Vic2NyaXB0aW9uIloKFkdldFRlbmFudFNlY3JldFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIfCg5pbmNsdWRlX3ZhbHVlcxgCIAEoCEICGAFIAIgBAUIRCg9faW5jbHVkZV92YWx1ZXMiQwoXR2V0VGVuYW50U2VjcmV0UmVzcG9uc2USKAoGc2VjcmV0GAEgASgLMhgucHVibGljX2FwaS5UZW5hbnRTZWNyZXQiKAoXR2V0VGVuYW50U2VjcmV0c1JlcXVlc3QSDQoFbmFtZXMYASADKAkiRQoYR2V0VGVuYW50U2VjcmV0c1Jlc3BvbnNlEikKB3NlY3JldHMYASADKAsyGC5wdWJsaWNfYXBpLlRlbmFudFNlY3JldCIhCh9HZXRUZW5hbnRUb29sUGVybWlzc2lvbnNSZXF1ZXN0ImoKIEdldFRlbmFudFRvb2xQZXJtaXNzaW9uc1Jlc3BvbnNlEkYKGXRvb2xfcGVybWlzc2lvbnNfc2V0dGluZ3MYASABKAsyIy5wdWJsaWNfYXBpLlRvb2xQZXJtaXNzaW9uc1NldHRpbmdzIm8KG0dldFRyaWdnZXJFeGVjdXRpb25zUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAEgASgJEhIKBWxpbWl0GAIgASgNSACIAQESEwoGb2Zmc2V0GAMgASgNSAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQiZQocR2V0VHJpZ2dlckV4ZWN1dGlvbnNSZXNwb25zZRIwCgpleGVjdXRpb25zGAEgAygLMhwucHVibGljX2FwaS5UcmlnZ2VyRXhlY3V0aW9uEhMKC3RvdGFsX2NvdW50GAIgASgNIpMBChRHZXRVc2VyU2VjcmV0UmVxdWVzdBIMCgRuYW1lGAEgASgJEiYKBXNjb3BlGAIgASgOMhcucHVibGljX2FwaS5TZWNyZXRTY29wZRIfCg5pbmNsdWRlX3ZhbHVlcxgDIAEoCEICGAFIAIgBARIRCglzZWNyZXRfaWQYBCABKAlCEQoPX2luY2x1ZGVfdmFsdWVzIj8KFUdldFVzZXJTZWNyZXRSZXNwb25zZRImCgZzZWNyZXQYASABKAsyFi5wdWJsaWNfYXBpLlVzZXJTZWNyZXQiTgoVR2V0VXNlclNlY3JldHNSZXF1ZXN0Eg0KBW5hbWVzGAEgAygJEiYKBXNjb3BlGAIgASgOMhcucHVibGljX2FwaS5TZWNyZXRTY29wZSJBChZHZXRVc2VyU2VjcmV0c1Jlc3BvbnNlEicKB3NlY3JldHMYASADKAsyFi5wdWJsaWNfYXBpLlVzZXJTZWNyZXQiRAoPR2l0RGlmZkZpbGVJbmZvEhkKEWNvbnRlbnRfYmxvYl9uYW1lGAEgASgJEhYKDmZpbGVfYmxvYl9uYW1lGAIgASgJIpcBCg5HaXRIdWJDaGVja1J1bhIKCgJpZBgBIAEoAxIMCgRuYW1lGAIgASgJEg4KBnN0YXR1cxgDIAEoCRISCgpjb25jbHVzaW9uGAQgASgJEhIKCnN0YXJ0ZWRfYXQYBSABKAkSFAoMY29tcGxldGVkX2F0GAYgASgJEgsKA3VybBgHIAEoCRIQCghodG1sX3VybBgIIAEoCSJ2ChBHaXRIdWJDaGVja1N1aXRlEhAKCGFwcF9uYW1lGAEgASgJEhIKCmNvbmNsdXNpb24YAiABKAkSEgoKY3JlYXRlZF9hdBgDIAEoCRIQCghodG1sX3VybBgEIAEoCRIWCg5jaGVja19ydW5zX3VybBgFIAEoCSLfAgoMR2l0SHViRW50aXR5EgoKAmlkGAEgASgJEioKBHR5cGUYAiABKA4yHC5wdWJsaWNfYXBpLkdpdEh1YkVudGl0eVR5cGUSNgoKcmVwb3NpdG9yeRgDIAEoCzIiLnB1YmxpY19hcGkuR2l0SHViRW50aXR5UmVwb3NpdG9yeRIRCgl0aW1lc3RhbXAYBCABKAkSPgoMcHVsbF9yZXF1ZXN0GAUgASgLMiMucHVibGljX2FwaS5HaXRIdWJQdWxsUmVxdWVzdEVudGl0eUgAiAEBEj4KDHdvcmtmbG93X3J1bhgGIAEoCzIjLnB1YmxpY19hcGkuR2l0SHViV29ya2Zsb3dSdW5FbnRpdHlIAYgBARIZCgxpc19kaXNtaXNzZWQYByABKAhIAogBAUIPCg1fcHVsbF9yZXF1ZXN0Qg8KDV93b3JrZmxvd19ydW5CDwoNX2lzX2Rpc21pc3NlZCKDAQoWR2l0SHViRW50aXR5UmVwb3NpdG9yeRINCgVvd25lchgBIAEoCRIMCgRuYW1lGAIgASgJEhEKCWZ1bGxfbmFtZRgDIAEoCRIQCghodG1sX3VybBgEIAEoCRIWCg5kZWZhdWx0X2JyYW5jaBgFIAEoCRIPCgdwcml2YXRlGAYgASgIIlMKEEdpdEh1YkVudGl0eVVzZXISDQoFbG9naW4YASABKAkSEgoKYXZhdGFyX3VybBgCIAEoCRIQCghodG1sX3VybBgDIAEoCRIKCgJpZBgEIAEoAyKyAQoSR2l0SHViSXNzdWVDb21tZW50EgoKAmlkGAEgASgDEiwKBmF1dGhvchgCIAEoCzIcLnB1YmxpY19hcGkuR2l0SHViRW50aXR5VXNlchIMCgRib2R5GAMgASgJEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCRIQCghodG1sX3VybBgGIAEoCRIaChJhdXRob3JfYXNzb2NpYXRpb24YByABKAkiwAgKF0dpdEh1YlB1bGxSZXF1ZXN0RW50aXR5Eg4KBm51bWJlchgBIAEoBRINCgV0aXRsZRgCIAEoCRIMCgRib2R5GAMgASgJEg0KBXN0YXRlGAQgASgJEhAKCGh0bWxfdXJsGAUgASgJEhIKCmNyZWF0ZWRfYXQYBiABKAkSEgoKdXBkYXRlZF9hdBgHIAEoCRIWCgltZXJnZWRfYXQYCCABKAlIAIgBARIWCgljbG9zZWRfYXQYCSABKAlIAYgBARIqCgR1c2VyGAogASgLMhwucHVibGljX2FwaS5HaXRIdWJFbnRpdHlVc2VyEi8KCWFzc2lnbmVlcxgLIAMoCzIcLnB1YmxpY19hcGkuR2l0SHViRW50aXR5VXNlchI5ChNyZXF1ZXN0ZWRfcmV2aWV3ZXJzGAwgAygLMhwucHVibGljX2FwaS5HaXRIdWJFbnRpdHlVc2VyEhAKCGhlYWRfcmVmGA0gASgJEhAKCGJhc2VfcmVmGA4gASgJEhAKCGhlYWRfc2hhGA8gASgJEhAKCGJhc2Vfc2hhGBAgASgJEg4KBm1lcmdlZBgRIAEoCBINCgVkcmFmdBgSIAEoCBIOCgZsYWJlbHMYEyADKAkSEAoIY29tbWVudHMYFCABKAUSDwoHY29tbWl0cxgVIAEoBRIRCglhZGRpdGlvbnMYFiABKAUSEQoJZGVsZXRpb25zGBcgASgFEhUKDWNoYW5nZWRfZmlsZXMYGCABKAUSFgoJbWVyZ2VhYmxlGBkgASgISAKIAQESFwoPbWVyZ2VhYmxlX3N0YXRlGBogASgJEjIKDGNoZWNrX3N1aXRlcxgbIAMoCzIcLnB1YmxpY19hcGkuR2l0SHViQ2hlY2tTdWl0ZRIqCghzdGF0dXNlcxgcIAMoCzIYLnB1YmxpY19hcGkuR2l0SHViU3RhdHVzEjgKD3Jldmlld19jb21tZW50cxgdIAMoCzIfLnB1YmxpY19hcGkuR2l0SHViUmV2aWV3Q29tbWVudBI2Cg5pc3N1ZV9jb21tZW50cxgeIAMoCzIeLnB1YmxpY19hcGkuR2l0SHViSXNzdWVDb21tZW50Ei4KCmNoZWNrX3J1bnMYHyADKAsyGi5wdWJsaWNfYXBpLkdpdEh1YkNoZWNrUnVuEj4KD3JlcXVpcmVkX2NoZWNrcxggIAEoCzIgLnB1YmxpY19hcGkuR2l0SHViUmVxdWlyZWRDaGVja3NIA4gBARI0Cg13b3JrZmxvd19ydW5zGCEgAygLMh0ucHVibGljX2FwaS5HaXRIdWJXb3JrZmxvd1J1bhIpCgdyZXZpZXdzGCIgAygLMhgucHVibGljX2FwaS5HaXRIdWJSZXZpZXdCDAoKX21lcmdlZF9hdEIMCgpfY2xvc2VkX2F0QgwKCl9tZXJnZWFibGVCEgoQX3JlcXVpcmVkX2NoZWNrcyKxAwoiR2l0SHViUHVsbFJlcXVlc3RUcmlnZ2VyQ29uZGl0aW9ucxIXCgpyZXBvc2l0b3J5GAEgASgJSACIAQESEwoGYXV0aG9yGAIgASgJSAGIAQESFQoIYXNzaWduZWUYAyABKAlIAogBARIVCghyZXZpZXdlchgEIAEoCUgDiAEBEg4KBmxhYmVscxgFIAMoCRIaCg5hY3Rpdml0eV90eXBlcxgGIAMoCUICGAESEgoFZHJhZnQYByABKAhIBIgBARIbCg50aXRsZV9jb250YWlucxgIIAEoCUgFiAEBEhgKC2Jhc2VfYnJhbmNoGAkgASgJSAaIAQESGAoLaGVhZF9icmFuY2gYCiABKAlIB4gBARISCgVldmVudBgLIAEoCUgIiAEBEg8KB2FjdGlvbnMYDCADKAlCDQoLX3JlcG9zaXRvcnlCCQoHX2F1dGhvckILCglfYXNzaWduZWVCCwoJX3Jldmlld2VyQggKBl9kcmFmdEIRCg9fdGl0bGVfY29udGFpbnNCDgoMX2Jhc2VfYnJhbmNoQg4KDF9oZWFkX2JyYW5jaEIICgZfZXZlbnQitgEKD0dpdEh1YlJlYWN0aW9ucxIQCghwbHVzX29uZRgBIAEoBRIRCgltaW51c19vbmUYAiABKAUSEAoIY29uZnVzZWQYAyABKAUSDAoEZXllcxgEIAEoBRINCgVoZWFydBgFIAEoBRIOCgZob29yYXkYBiABKAUSDQoFbGF1Z2gYByABKAUSDgoGcm9ja2V0GAggASgFEhMKC3RvdGFsX2NvdW50GAkgASgFEgsKA3VybBgKIAEoCSJ4ChRHaXRIdWJSZXF1aXJlZENoZWNrcxIZChFyZXF1aXJlZF9jb250ZXh0cxgBIAMoCRIZChFlbmZvcmNlbWVudF9sZXZlbBgCIAEoCRITCgtzdHJpY3RfbW9kZRgDIAEoCBIVCg10YXJnZXRfYnJhbmNoGAQgASgJIqABCgxHaXRIdWJSZXZpZXcSCgoCaWQYASABKAMSLAoGYXV0aG9yGAIgASgLMhwucHVibGljX2FwaS5HaXRIdWJFbnRpdHlVc2VyEgwKBGJvZHkYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMc3VibWl0dGVkX2F0GAUgASgJEhEKCWNvbW1pdF9pZBgGIAEoCRIQCghodG1sX3VybBgHIAEoCSKZBQoTR2l0SHViUmV2aWV3Q29tbWVudBIsCgZhdXRob3IYASABKAsyHC5wdWJsaWNfYXBpLkdpdEh1YkVudGl0eVVzZXISDAoEYm9keRgCIAEoCRISCgpjcmVhdGVkX2F0GAMgASgJEhAKCGh0bWxfdXJsGAQgASgJEhgKC2xpbmVfbnVtYmVyGAUgASgFSACIAQESEQoEcGF0aBgGIAEoCUgBiAEBEhYKCWRpZmZfaHVuaxgHIAEoCUgCiAEBEhUKCHBvc2l0aW9uGAggASgFSAOIAQESFgoJY29tbWl0X2lkGAkgASgJSASIAQESFwoKc3RhcnRfbGluZRgKIAEoBUgFiAEBEhEKBHNpZGUYCyABKAlIBogBARIKCgJpZBgMIAEoAxISCgp1cGRhdGVkX2F0GA0gASgJEi4KCXJlYWN0aW9ucxgOIAEoCzIbLnB1YmxpY19hcGkuR2l0SHViUmVhY3Rpb25zEh4KFnB1bGxfcmVxdWVzdF9yZXZpZXdfaWQYDyABKAMSGwoOaW5fcmVwbHlfdG9faWQYECABKANIB4gBARILCgN1cmwYESABKAkSGgoSb3JpZ2luYWxfY29tbWl0X2lkGBIgASgJEhoKDW9yaWdpbmFsX2xpbmUYEyABKAVICIgBARIZChFvcmlnaW5hbF9wb3NpdGlvbhgUIAEoBRIUCgxzdWJqZWN0X3R5cGUYFSABKAlCDgoMX2xpbmVfbnVtYmVyQgcKBV9wYXRoQgwKCl9kaWZmX2h1bmtCCwoJX3Bvc2l0aW9uQgwKCl9jb21taXRfaWRCDQoLX3N0YXJ0X2xpbmVCBwoFX3NpZGVCEQoPX2luX3JlcGx5X3RvX2lkQhAKDl9vcmlnaW5hbF9saW5lIpMBCgxHaXRIdWJTdGF0dXMSDwoHY29udGV4dBgBIAEoCRINCgVzdGF0ZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIXCgp0YXJnZXRfdXJsGAQgASgJSACIAQESEgoKY3JlYXRlZF9hdBgFIAEoCRISCgp1cGRhdGVkX2F0GAYgASgJQg0KC190YXJnZXRfdXJsIikKFEdpdEh1YlRvb2xFeHRyYUlucHV0EhEKCWFwaV90b2tlbhgBIAEoCSKEAgoXR2l0SHViVHJpZ2dlckNvbmRpdGlvbnMSMQoLZW50aXR5X3R5cGUYASABKA4yHC5wdWJsaWNfYXBpLkdpdEh1YkVudGl0eVR5cGUSSQoMcHVsbF9yZXF1ZXN0GAIgASgLMi4ucHVibGljX2FwaS5HaXRIdWJQdWxsUmVxdWVzdFRyaWdnZXJDb25kaXRpb25zSACIAQESSQoMd29ya2Zsb3dfcnVuGAMgASgLMi4ucHVibGljX2FwaS5HaXRIdWJXb3JrZmxvd1J1blRyaWdnZXJDb25kaXRpb25zSAGIAQFCDwoNX3B1bGxfcmVxdWVzdEIPCg1fd29ya2Zsb3dfcnVuIr4BChFHaXRIdWJXb3JrZmxvd1J1bhIKCgJpZBgBIAEoAxIMCgRuYW1lGAIgASgJEgwKBHBhdGgYAyABKAkSDgoGc3RhdHVzGAQgASgJEhIKCmNvbmNsdXNpb24YBSABKAkSEgoKY3JlYXRlZF9hdBgGIAEoCRISCgp1cGRhdGVkX2F0GAcgASgJEgsKA3VybBgIIAEoCRIQCghodG1sX3VybBgJIAEoCRIWCg5jaGVja19zdWl0ZV9pZBgKIAEoAyLqAwoXR2l0SHViV29ya2Zsb3dSdW5FbnRpdHkSCgoCaWQYASABKAMSDAoEbmFtZRgCIAEoCRIVCg1kaXNwbGF5X3RpdGxlGAMgASgJEhIKCnJ1bl9udW1iZXIYBCABKAUSDQoFZXZlbnQYBSABKAkSDgoGc3RhdHVzGAYgASgJEhcKCmNvbmNsdXNpb24YByABKAlIAIgBARITCgt3b3JrZmxvd19pZBgIIAEoCRIVCg13b3JrZmxvd19uYW1lGAkgASgJEhAKCGh0bWxfdXJsGAogASgJEhIKCmNyZWF0ZWRfYXQYCyABKAkSEgoKdXBkYXRlZF9hdBgMIAEoCRIbCg5ydW5fc3RhcnRlZF9hdBgNIAEoCUgBiAEBEisKBWFjdG9yGA4gASgLMhwucHVibGljX2FwaS5HaXRIdWJFbnRpdHlVc2VyEjYKEHRyaWdnZXJpbmdfYWN0b3IYDyABKAsyHC5wdWJsaWNfYXBpLkdpdEh1YkVudGl0eVVzZXISEwoLaGVhZF9icmFuY2gYECABKAkSEAoIaGVhZF9zaGEYESABKAkSDAoEcGF0aBgSIAEoCRITCgtydW5fYXR0ZW1wdBgTIAEoBUINCgtfY29uY2x1c2lvbkIRCg9fcnVuX3N0YXJ0ZWRfYXQi5wIKIkdpdEh1YldvcmtmbG93UnVuVHJpZ2dlckNvbmRpdGlvbnMSFwoKcmVwb3NpdG9yeRgBIAEoCUgAiAEBEhIKBWFjdG9yGAIgASgJSAGIAQESHQoQdHJpZ2dlcmluZ19hY3RvchgDIAEoCUgCiAEBEhEKCXdvcmtmbG93cxgEIAMoCRISCgVldmVudBgFIAEoCUgDiAEBEhMKBnN0YXR1cxgGIAEoCUgEiAEBEhcKCmNvbmNsdXNpb24YByABKAlIBYgBARITCgZicmFuY2gYCCABKAlIBogBARIbCg50aXRsZV9jb250YWlucxgJIAEoCUgHiAEBQg0KC19yZXBvc2l0b3J5QggKBl9hY3RvckITChFfdHJpZ2dlcmluZ19hY3RvckIICgZfZXZlbnRCCQoHX3N0YXR1c0INCgtfY29uY2x1c2lvbkIJCgdfYnJhbmNoQhEKD190aXRsZV9jb250YWlucyJfCgxHaXRodWJCcmFuY2gSDAoEbmFtZRgBIAEoCRIuCgZjb21taXQYAiABKAsyHi5wdWJsaWNfYXBpLkdpdGh1YkJyYW5jaENvbW1pdBIRCglwcm90ZWN0ZWQYAyABKAgiLgoSR2l0aHViQnJhbmNoQ29tbWl0EgsKA3NoYRgBIAEoCRILCgN1cmwYAiABKAkiWAoPR2l0aHViQ29tbWl0UmVmEhYKDnJlcG9zaXRvcnlfdXJsGAEgASgJEg8KB2dpdF9yZWYYAiABKAkSEgoFcGF0Y2gYAyABKAlIAIgBAUIICgZfcGF0Y2ginAMKEUdpdGh1YlB1bGxSZXF1ZXN0Eg4KBm51bWJlchgBIAEoBRINCgV0aXRsZRgCIAEoCRIMCgRib2R5GAMgASgJEg0KBXN0YXRlGAQgASgJEhAKCGh0bWxfdXJsGAUgASgJEhIKCmNyZWF0ZWRfYXQYBiABKAkSEgoKdXBkYXRlZF9hdBgHIAEoCRIRCgltZXJnZWRfYXQYCCABKAkSEQoJY2xvc2VkX2F0GAkgASgJEiQKBHVzZXIYCiABKAsyFi5wdWJsaWNfYXBpLkdpdGh1YlVzZXISEAoIaGVhZF9yZWYYCyABKAkSEAoIYmFzZV9yZWYYDCABKAkSEAoIaGVhZF9zaGEYDSABKAkSEAoIYmFzZV9zaGEYDiABKAkSDgoGbWVyZ2VkGA8gASgIEg0KBWRyYWZ0GBAgASgIEhAKCGNvbW1lbnRzGBEgASgFEg8KB2NvbW1pdHMYEiABKAUSEQoJYWRkaXRpb25zGBMgASgFEhEKCWRlbGV0aW9ucxgUIAEoBRIVCg1jaGFuZ2VkX2ZpbGVzGBUgASgFIo8BChpHaXRodWJQdWxsUmVxdWVzdEZpbGVFbnRyeRIQCghmaWxlbmFtZRgBIAEoCRIOCgZzdGF0dXMYAiABKAkSEQoJYWRkaXRpb25zGAMgASgFEhEKCWRlbGV0aW9ucxgEIAEoBRILCgNzaGEYBSABKAkSEgoFcGF0Y2gYBiABKAlIAIgBAUIICgZfcGF0Y2giJQoJR2l0aHViUmVmEgsKA3VybBgBIAEoCRILCgNyZWYYAiABKAkizQEKCkdpdGh1YlJlcG8SDQoFb3duZXIYASABKAkSDAoEbmFtZRgCIAEoCRIVCghodG1sX3VybBgDIAEoCUgAiAEBEhcKCmNyZWF0ZWRfYXQYBCABKAlIAYgBARIXCgp1cGRhdGVkX2F0GAUgASgJSAKIAQESGwoOZGVmYXVsdF9icmFuY2gYBiABKAlIA4gBAUILCglfaHRtbF91cmxCDQoLX2NyZWF0ZWRfYXRCDQoLX3VwZGF0ZWRfYXRCEQoPX2RlZmF1bHRfYnJhbmNoIkEKCkdpdGh1YlVzZXISDQoFbG9naW4YASABKAkSEgoKYXZhdGFyX3VybBgCIAEoCRIQCghodG1sX3VybBgDIAEoCSIWChRJbmFjdGl2ZVN1YnNjcmlwdGlvbiJNChpJbmNvcnBvcmF0ZWRFeHRlcm5hbFNvdXJjZRITCgtzb3VyY2VfbmFtZRgBIAEoCRIRCgRsaW5rGAIgASgJSACIAQFCBwoFX2xpbmsiPQoVSW5kZXhlZENvbW1pdEZpbGVJbmZvEhEKCWZpbGVfcGF0aBgBIAEoCRIRCglibG9iX25hbWUYAiABKAkiPAoRSW5kZXhlZENvbW1pdEluZm8SEgoKY29tbWl0X3NoYRgBIAEoCRITCgtjb21taXRfdGltZRgCIAEoCSJiChhJbnNlcnRDaGF0SGlzdG9yeVJlcXVlc3QSFwoPY29udmVyc2F0aW9uX2lkGAEgASgJEi0KCWV4Y2hhbmdlcxgCIAMoCzIaLmNoYXQuRXhjaGFuZ2VXaXRoTWV0YWRhdGEiwQEKGUluc2VydENoYXRIaXN0b3J5UmVzcG9uc2USPAoHZW50cmllcxgBIAMoCzIrLnB1YmxpY19hcGkuSW5zZXJ0Q2hhdEhpc3RvcnlSZXNwb25zZS5FbnRyeRpmCgVFbnRyeRINCgVpbmRleBgBIAEoAxIiCgZzdGF0dXMYAiABKAsyEi5nb29nbGUucnBjLlN0YXR1cxIZCgxjb21wb3NpdGVfaWQYAyABKAlIAIgBAUIPCg1fY29tcG9zaXRlX2lkIoAGChJJbnN0cnVjdGlvblJlcXVlc3QSEgoFbW9kZWwYASABKAlIAIgBARIOCgZwcmVmaXgYAiABKAkSFQoNc2VsZWN0ZWRfdGV4dBgDIAEoCRIOCgZzdWZmaXgYBCABKAkSEQoEcGF0aBgFIAEoCUgBiAEBEhMKC2luc3RydWN0aW9uGAYgASgJEhEKBGxhbmcYByABKAlIAogBARIWCglibG9iX25hbWUYCCABKAlIA4gBARIZCgxwcmVmaXhfYmVnaW4YCSABKAVIBIgBARIXCgpzdWZmaXhfZW5kGAogASgFSAWIAQESGAoLc2VxdWVuY2VfaWQYCyABKA1IBogBARIgCgVibG9icxgMIAEoCzIRLnB1YmxpY19hcGkuQmxvYnMSKgoMY2hhdF9oaXN0b3J5GA0gAygLMhQucHVibGljX2FwaS5FeGNoYW5nZRIXCgpjb2RlX2Jsb2NrGA4gASgJSAeIAQESHQoQdGFyZ2V0X2ZpbGVfcGF0aBgPIAEoCUgIiAEBEiAKE3RhcmdldF9maWxlX2NvbnRlbnQYECABKAlICYgBARItCiBjb250ZXh0X2NvZGVfZXhjaGFuZ2VfcmVxdWVzdF9pZBgRIAEoCUgKiAEBEhwKD3VzZXJfZ3VpZGVsaW5lcxgSIAEoCUgLiAEBEiEKFHdvcmtzcGFjZV9ndWlkZWxpbmVzGBMgASgJSAyIAQFCCAoGX21vZGVsQgcKBV9wYXRoQgcKBV9sYW5nQgwKCl9ibG9iX25hbWVCDwoNX3ByZWZpeF9iZWdpbkINCgtfc3VmZml4X2VuZEIOCgxfc2VxdWVuY2VfaWRCDQoLX2NvZGVfYmxvY2tCEwoRX3RhcmdldF9maWxlX3BhdGhCFgoUX3RhcmdldF9maWxlX2NvbnRlbnRCIwohX2NvbnRleHRfY29kZV9leGNoYW5nZV9yZXF1ZXN0X2lkQhIKEF91c2VyX2d1aWRlbGluZXNCFwoVX3dvcmtzcGFjZV9ndWlkZWxpbmVzIosDChNJbnN0cnVjdGlvblJlc3BvbnNlEgwKBHRleHQYASABKAkSGgoSdW5rbm93bl9ibG9iX25hbWVzGAIgAygJEhwKFGNoZWNrcG9pbnRfbm90X2ZvdW5kGAMgASgIEh0KEHJlcGxhY2VtZW50X3RleHQYBCABKAlIAIgBARIjChZyZXBsYWNlbWVudF9zdGFydF9saW5lGAUgASgNSAGIAQESIQoUcmVwbGFjZW1lbnRfZW5kX2xpbmUYBiABKA1IAogBARIhChRyZXBsYWNlbWVudF9vbGRfdGV4dBgHIAEoCUgDiAEBEiQKF3JlcGxhY2VtZW50X3NlcXVlbmNlX2lkGAggASgNSASIAQFCEwoRX3JlcGxhY2VtZW50X3RleHRCGQoXX3JlcGxhY2VtZW50X3N0YXJ0X2xpbmVCFwoVX3JlcGxhY2VtZW50X2VuZF9saW5lQhcKFV9yZXBsYWNlbWVudF9vbGRfdGV4dEIaChhfcmVwbGFjZW1lbnRfc2VxdWVuY2VfaWQiNgobSW50ZXJydXB0UmVtb3RlQWdlbnRSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCSJNChxJbnRlcnJ1cHRSZW1vdGVBZ2VudFJlc3BvbnNlEi0KBnN0YXR1cxgBIAEoDjIdLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRTdGF0dXMiHwodSXNVc2VyR2l0aHViQ29uZmlndXJlZFJlcXVlc3QihwEKHklzVXNlckdpdGh1YkNvbmZpZ3VyZWRSZXNwb25zZRIVCg1pc19jb25maWd1cmVkGAEgASgIEhEKCW9hdXRoX3VybBgCIAEoCRIjChtjb25maWd1cmVkX2J1dF9uZWVkc191cGRhdGUYAyABKAgSFgoOdXBkYXRlZF9zY29wZXMYBCABKAkiKgoMS2V5VmFsdWVQYWlyEgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCSJBCghMYW5ndWFnZRIMCgRuYW1lGAEgASgJEhMKC3ZzY29kZV9uYW1lGAIgASgJEhIKCmV4dGVuc2lvbnMYAyADKAkiwgEKDExpbmVhckVudGl0eRIKCgJpZBgBIAEoCRIqCgR0eXBlGAIgASgOMhwucHVibGljX2FwaS5MaW5lYXJFbnRpdHlUeXBlEhEKCXRpbWVzdGFtcBgDIAEoCRIxCgVpc3N1ZRgEIAEoCzIdLnB1YmxpY19hcGkuTGluZWFySXNzdWVFbnRpdHlIAIgBARIZCgxpc19kaXNtaXNzZWQYBSABKAhIAYgBAUIICgZfaXNzdWVCDwoNX2lzX2Rpc21pc3NlZCJ1ChFMaW5lYXJFbnRpdHlMYWJlbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEgoFY29sb3IYBCABKAlIAYgBAUIOCgxfZGVzY3JpcHRpb25CCAoGX2NvbG9yIoIBChNMaW5lYXJFbnRpdHlQcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgVzdGF0ZRgEIAEoCRIQCgN1cmwYBSABKAlIAYgBAUIOCgxfZGVzY3JpcHRpb25CBgoEX3VybCJjChBMaW5lYXJFbnRpdHlUZWFtEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQFCDgoMX2Rlc2NyaXB0aW9uInkKEExpbmVhckVudGl0eVVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIUCgxkaXNwbGF5X25hbWUYAyABKAkSDQoFZW1haWwYBCABKAkSFwoKYXZhdGFyX3VybBgFIAEoCUgAiAEBQg0KC19hdmF0YXJfdXJsIosBChlMaW5lYXJFbnRpdHlXb3JrZmxvd1N0YXRlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEdHlwZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhIKBWNvbG9yGAUgASgJSAGIAQFCDgoMX2Rlc2NyaXB0aW9uQggKBl9jb2xvciLvBQoRTGluZWFySXNzdWVFbnRpdHkSCgoCaWQYASABKAkSEgoKaWRlbnRpZmllchgCIAEoCRINCgV0aXRsZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhAKCHByaW9yaXR5GAUgASgFEgsKA3VybBgGIAEoCRISCgpjcmVhdGVkX2F0GAcgASgJEhIKCnVwZGF0ZWRfYXQYCCABKAkSFwoKc3RhcnRlZF9hdBgJIAEoCUgBiAEBEhkKDGNvbXBsZXRlZF9hdBgKIAEoCUgCiAEBEhgKC2NhbmNlbGVkX2F0GAsgASgJSAOIAQESFQoIZHVlX2RhdGUYDCABKAlIBIgBARIVCghlc3RpbWF0ZRgNIAEoAUgFiAEBEi0KB2NyZWF0b3IYDiABKAsyHC5wdWJsaWNfYXBpLkxpbmVhckVudGl0eVVzZXISMwoIYXNzaWduZWUYDyABKAsyHC5wdWJsaWNfYXBpLkxpbmVhckVudGl0eVVzZXJIBogBARIqCgR0ZWFtGBAgASgLMhwucHVibGljX2FwaS5MaW5lYXJFbnRpdHlUZWFtEjQKBXN0YXRlGBEgASgLMiUucHVibGljX2FwaS5MaW5lYXJFbnRpdHlXb3JrZmxvd1N0YXRlEjUKB3Byb2plY3QYEiABKAsyHy5wdWJsaWNfYXBpLkxpbmVhckVudGl0eVByb2plY3RIB4gBARItCgZsYWJlbHMYEyADKAsyHS5wdWJsaWNfYXBpLkxpbmVhckVudGl0eUxhYmVsEhUKDWNvbW1lbnRfY291bnQYFCABKAUSGAoQc3Vic2NyaWJlcl9jb3VudBgVIAEoBUIOCgxfZGVzY3JpcHRpb25CDQoLX3N0YXJ0ZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIOCgxfY2FuY2VsZWRfYXRCCwoJX2R1ZV9kYXRlQgsKCV9lc3RpbWF0ZUILCglfYXNzaWduZWVCCgoIX3Byb2plY3QiiwMKHExpbmVhcklzc3VlVHJpZ2dlckNvbmRpdGlvbnMSEQoEdGVhbRgBIAEoCUgAiAEBEhQKB2NyZWF0b3IYAiABKAlIAYgBARIVCghhc3NpZ25lZRgDIAEoCUgCiAEBEg4KBnN0YXRlcxgEIAMoCRITCgtzdGF0ZV90eXBlcxgFIAMoCRISCgpwcmlvcml0aWVzGAYgAygFEg4KBmxhYmVscxgHIAMoCRIUCgdwcm9qZWN0GAggASgJSAOIAQESFgoOYWN0aXZpdHlfdHlwZXMYCSADKAkSGwoOdGl0bGVfY29udGFpbnMYCiABKAlIBIgBARIZCgxtaW5fZXN0aW1hdGUYCyABKAFIBYgBARIZCgxtYXhfZXN0aW1hdGUYDCABKAFIBogBAUIHCgVfdGVhbUIKCghfY3JlYXRvckILCglfYXNzaWduZWVCCgoIX3Byb2plY3RCEQoPX3RpdGxlX2NvbnRhaW5zQg8KDV9taW5fZXN0aW1hdGVCDwoNX21heF9lc3RpbWF0ZSIpChRMaW5lYXJUb29sRXh0cmFJbnB1dBIRCglhcGlfdG9rZW4YASABKAkilAEKF0xpbmVhclRyaWdnZXJDb25kaXRpb25zEjEKC2VudGl0eV90eXBlGAEgASgOMhwucHVibGljX2FwaS5MaW5lYXJFbnRpdHlUeXBlEjwKBWlzc3VlGAIgASgLMigucHVibGljX2FwaS5MaW5lYXJJc3N1ZVRyaWdnZXJDb25kaXRpb25zSACIAQFCCAoGX2lzc3VlIh4KHExpc3RBZ2VudENhcGFiaWxpdGllc1JlcXVlc3QiWAodTGlzdEFnZW50Q2FwYWJpbGl0aWVzUmVzcG9uc2USNwoSYWdlbnRfY2FwYWJpbGl0aWVzGAEgAygLMhsucHVibGljX2FwaS5BZ2VudENhcGFiaWxpdHkiGgoYTGlzdEFnZW50UGVyc29uYXNSZXF1ZXN0Ik0KGUxpc3RBZ2VudFBlcnNvbmFzUmVzcG9uc2USMAoOYWdlbnRfcGVyc29uYXMYASADKAsyGC5wdWJsaWNfYXBpLkFnZW50UGVyc29uYSLtAgoWTGlzdENoYXRIaXN0b3J5UmVxdWVzdBIXCg9jb252ZXJzYXRpb25faWQYASABKAkSOAoPc3RhcnRfdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjYKDWVuZF90aW1lc3RhbXAYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESGwoOZXhjbHVkZV9zaWxlbnQYBCABKAhIAogBARISCgVsaW1pdBgFIAEoBUgDiAEBEi4KIWV4Y2x1ZGVfcmV0cmllZF9zdG9wcGVkX2V4Y2hhbmdlcxgGIAEoCEgEiAEBQhIKEF9zdGFydF90aW1lc3RhbXBCEAoOX2VuZF90aW1lc3RhbXBCEQoPX2V4Y2x1ZGVfc2lsZW50QggKBl9saW1pdEIkCiJfZXhjbHVkZV9yZXRyaWVkX3N0b3BwZWRfZXhjaGFuZ2VzIj8KF0xpc3RDaGF0SGlzdG9yeVJlc3BvbnNlEiQKDGNoYXRfaGlzdG9yeRgBIAMoCzIOLmNoYXQuRXhjaGFuZ2UiMAoYTGlzdENvbnZlcnNhdGlvbnNSZXF1ZXN0EhQKDHdvcmtzcGFjZV9pZBgBIAEoCSJQChlMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlEjMKDWNvbnZlcnNhdGlvbnMYASADKAsyHC5wdWJsaWNfYXBpLkNvbnZlcnNhdGlvbkluZm8iIAoeTGlzdEV4dGVybmFsU291cmNlVHlwZXNSZXF1ZXN0IlcKH0xpc3RFeHRlcm5hbFNvdXJjZVR5cGVzUmVzcG9uc2USNAoMc291cmNlX3R5cGVzGAEgAygOMh4ucHVibGljX2FwaS5FeHRlcm5hbFNvdXJjZVR5cGUiYQodTGlzdEdpdGh1YlJlcG9CcmFuY2hlc1JlcXVlc3QSJAoEcmVwbxgBIAEoCzIWLnB1YmxpY19hcGkuR2l0aHViUmVwbxIRCgRwYWdlGAIgASgFSACIAQFCBwoFX3BhZ2UidgoeTGlzdEdpdGh1YlJlcG9CcmFuY2hlc1Jlc3BvbnNlEioKCGJyYW5jaGVzGAEgAygLMhgucHVibGljX2FwaS5HaXRodWJCcmFuY2gSFQoNaGFzX25leHRfcGFnZRgCIAEoCBIRCgluZXh0X3BhZ2UYAyABKAUiSAoqTGlzdEdpdGh1YlJlcG9zRm9yQXV0aGVudGljYXRlZFVzZXJSZXF1ZXN0EhEKBHBhZ2UYASABKAVIAIgBAUIHCgVfcGFnZSJ+CitMaXN0R2l0aHViUmVwb3NGb3JBdXRoZW50aWNhdGVkVXNlclJlc3BvbnNlEiUKBXJlcG9zGAEgAygLMhYucHVibGljX2FwaS5HaXRodWJSZXBvEhUKDWhhc19uZXh0X3BhZ2UYAiABKAgSEQoJbmV4dF9wYWdlGAMgASgFIkoKHUxpc3RHaXRodWJTZXR1cFNjcmlwdHNSZXF1ZXN0EikKCmdpdGh1Yl9yZWYYASABKAsyFS5wdWJsaWNfYXBpLkdpdGh1YlJlZiI2Ch5MaXN0R2l0aHViU2V0dXBTY3JpcHRzUmVzcG9uc2USFAoMc2NyaXB0X3BhdGhzGAEgAygJIq4CChtMaXN0UHVsbFJlcXVlc3RGaWxlc1JlcXVlc3QSEgoKcmVwb3NpdG9yeRgBIAEoCRIRCglwcl9udW1iZXIYAiABKAUSEQoEcGFnZRgDIAEoBUgAiAEBEhUKCHBlcl9wYWdlGAQgASgFSAGIAQESGgoNaW5jbHVkZV9wYXRjaBgFIAEoCEgCiAEBEhwKD21heF9wYXRjaF9ieXRlcxgGIAEoBUgDiAEBEigKG2luY2x1ZGVfdG90YWxfY2hhbmdlZF9maWxlcxgHIAEoCEgEiAEBQgcKBV9wYWdlQgsKCV9wZXJfcGFnZUIQCg5faW5jbHVkZV9wYXRjaEISChBfbWF4X3BhdGNoX2J5dGVzQh4KHF9pbmNsdWRlX3RvdGFsX2NoYW5nZWRfZmlsZXMixwEKHExpc3RQdWxsUmVxdWVzdEZpbGVzUmVzcG9uc2USNQoFZmlsZXMYASADKAsyJi5wdWJsaWNfYXBpLkdpdGh1YlB1bGxSZXF1ZXN0RmlsZUVudHJ5EhAKCGhhc19tb3JlGAIgASgIEhYKCW5leHRfcGFnZRgDIAEoBUgAiAEBEiAKE3RvdGFsX2NoYW5nZWRfZmlsZXMYBCABKAVIAYgBAUIMCgpfbmV4dF9wYWdlQhYKFF90b3RhbF9jaGFuZ2VkX2ZpbGVzIhkKF0xpc3RSZW1vdGVBZ2VudHNSZXF1ZXN0IocBChhMaXN0UmVtb3RlQWdlbnRzUmVzcG9uc2USLgoNcmVtb3RlX2FnZW50cxgBIAMoCzIXLnB1YmxpY19hcGkuUmVtb3RlQWdlbnQSGQoRbWF4X3JlbW90ZV9hZ2VudHMYAiABKAUSIAoYbWF4X2FjdGl2ZV9yZW1vdGVfYWdlbnRzGAMgASgFInkKHUxpc3RSZW1vdGVBZ2VudHNTdHJlYW1SZXF1ZXN0Ej4KFWxhc3RfdXBkYXRlX3RpbWVzdGFtcBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIYChZfbGFzdF91cGRhdGVfdGltZXN0YW1wIk4KHkxpc3RSZW1vdGVBZ2VudHNTdHJlYW1SZXNwb25zZRIsCgd1cGRhdGVzGAEgAygLMhsucHVibGljX2FwaS5BZ2VudExpc3RVcGRhdGUiYgoWTGlzdFJlbW90ZVRvb2xzUmVxdWVzdBI3Cgx0b29sX2lkX2xpc3QYASABKAsyHC5wdWJsaWNfYXBpLlJlbW90ZVRvb2xJZExpc3RIAIgBAUIPCg1fdG9vbF9pZF9saXN0IlQKF0xpc3RSZW1vdGVUb29sc1Jlc3BvbnNlEjkKBXRvb2xzGAEgAygLMioucHVibGljX2FwaS5MaXN0UmVtb3RlVG9vbHNSZXNwb25zZU1lc3NhZ2UiiAIKHkxpc3RSZW1vdGVUb29sc1Jlc3BvbnNlTWVzc2FnZRIzCg90b29sX2RlZmluaXRpb24YASABKAsyGi5wdWJsaWNfYXBpLlRvb2xEZWZpbml0aW9uEjAKDnJlbW90ZV90b29sX2lkGAIgASgOMhgucHVibGljX2FwaS5SZW1vdGVUb29sSWQSPwoTYXZhaWxhYmlsaXR5X3N0YXR1cxgDIAEoDjIiLnB1YmxpY19hcGkuVG9vbEF2YWlsYWJpbGl0eVN0YXR1cxIrCgt0b29sX3NhZmV0eRgEIAEoDjIWLnB1YmxpY19hcGkuVG9vbFNhZmV0eRIRCglvYXV0aF91cmwYBSABKAkipQIKD0xpc3RUYWdzUmVxdWVzdBIuCgh0YWdfdHlwZRgBIAEoDjIcLnB1YmxpY19hcGkuQW5hbHl0aWNzVGFnVHlwZRI2CgpkYXRlX3JhbmdlGAIgASgLMiIucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzRGF0ZVJhbmdlEjgKDGNvc3RfZmlsdGVycxgDIAEoCzIiLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc1YyRmlsdGVycxI8Cg9vdXRjb21lX2ZpbHRlcnMYBCABKAsyIy5wdWJsaWNfYXBpLk91dGNvbWVBbmFseXRpY3NGaWx0ZXJzEhYKDmluY2x1ZGVfdmFsdWVzGAUgASgIEhoKEm1heF92YWx1ZXNfcGVyX3RhZxgGIAEoDSJBChBMaXN0VGFnc1Jlc3BvbnNlEi0KBHRhZ3MYASADKAsyHy5wdWJsaWNfYXBpLkFuYWx5dGljc1RhZ1N1bW1hcnkinwEKGExpc3RUZW5hbnRTZWNyZXRzUmVxdWVzdBIUCgxuYW1lX3BhdHRlcm4YASABKAkSKgoLdGFnX2ZpbHRlcnMYAiADKAsyFS5wdWJsaWNfYXBpLlRhZ0ZpbHRlchIaCg5pbmNsdWRlX3ZhbHVlcxgDIAEoCEICGAESEQoJcGFnZV9zaXplGAQgASgFEhIKCnBhZ2VfdG9rZW4YBSABKAkidAoZTGlzdFRlbmFudFNlY3JldHNSZXNwb25zZRIpCgdzZWNyZXRzGAEgAygLMhgucHVibGljX2FwaS5UZW5hbnRTZWNyZXQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhMKC3RvdGFsX2NvdW50GAMgASgFIhUKE0xpc3RUcmlnZ2Vyc1JlcXVlc3QiPQoUTGlzdFRyaWdnZXJzUmVzcG9uc2USJQoIdHJpZ2dlcnMYASADKAsyEy5wdWJsaWNfYXBpLlRyaWdnZXIi6QEKFkxpc3RVc2VyU2VjcmV0c1JlcXVlc3QSFAoMbmFtZV9wYXR0ZXJuGAEgASgJEioKC3RhZ19maWx0ZXJzGAIgAygLMhUucHVibGljX2FwaS5UYWdGaWx0ZXISGgoOaW5jbHVkZV92YWx1ZXMYAyABKAhCAhgBEhEKCXBhZ2Vfc2l6ZRgEIAEoBRISCgpwYWdlX3Rva2VuGAUgASgJEiYKBXNjb3BlGAYgASgOMhcucHVibGljX2FwaS5TZWNyZXRTY29wZRIVCghzcGFjZV9pZBgHIAEoCUgAiAEBQgsKCV9zcGFjZV9pZCLIAQoXTGlzdFVzZXJTZWNyZXRzUmVzcG9uc2USJwoHc2VjcmV0cxgBIAMoCzIWLnB1YmxpY19hcGkuVXNlclNlY3JldBIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUSKAogc2VjcmV0X3Njb3BlZF9yZXNvbHV0aW9uX2VuYWJsZWQYBCABKAgSLAokc2VjcmV0X211bHRpX3NwYWNlX3RhcmdldGluZ19lbmFibGVkGAUgASgIIhcKFUxpc3RXb3Jrc3BhY2VzUmVxdWVzdCJHChZMaXN0V29ya3NwYWNlc1Jlc3BvbnNlEi0KCndvcmtzcGFjZXMYASADKAsyGS5wdWJsaWNfYXBpLldvcmtzcGFjZUluZm8ibgodTWFya05vdGlmaWNhdGlvbkFzUmVhZFJlcXVlc3QSFwoPbm90aWZpY2F0aW9uX2lkGAEgASgJEh4KEWFjdGlvbl9pdGVtX3RpdGxlGAIgASgJSACIAQFCFAoSX2FjdGlvbl9pdGVtX3RpdGxlIiAKHk1hcmtOb3RpZmljYXRpb25Bc1JlYWRSZXNwb25zZSKMAQoXTWNwQ2F0YWxvZ01ldGFkYXRhRW50cnkSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIRCglhdXRoX3R5cGUYBCABKAkSLwoFc3RhdGUYBSABKA4yIC5wdWJsaWNfYXBpLk1jcENhdGFsb2dFbnRyeVN0YXRlIuYBCglNY3BDb25maWcSCgoCaWQYASABKAkSMAoGY29uZmlnGAIgASgLMiAucHVibGljX2FwaS5SZW1vdGVBZ2VudE1jcENvbmZpZxI0ChBlbmFibGVkX3Byb2R1Y3RzGAMgAygOMhoucHVibGljX2FwaS5NY3BQcm9kdWN0VHlwZRIdChVoYXNfb2F1dGhfY3JlZGVudGlhbHMYBCABKAgSFQoIc3BhY2VfaWQYBSABKAlIAIgBARIVCghhZGRlZF9ieRgGIAEoCUgBiAEBQgsKCV9zcGFjZV9pZEILCglfYWRkZWRfYnkirwEKCU1jcFNlY3JldBINCgV2YWx1ZRgBIAEoCRItCgR0YWdzGAIgAygLMh8ucHVibGljX2FwaS5NY3BTZWNyZXQuVGFnc0VudHJ5Eg8KB3ZlcnNpb24YAyABKAkSJgoFc2NvcGUYBCABKA4yFy5wdWJsaWNfYXBpLlNlY3JldFNjb3BlGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIoADCg9NY3BTZXJ2ZXJDb25maWcSFAoHY29tbWFuZBgBIAEoCUgAiAEBEgwKBGFyZ3MYAiADKAkSFwoKdGltZW91dF9tcxgDIAEoBUgBiAEBEjEKA2VudhgEIAMoCzIkLnB1YmxpY19hcGkuTWNwU2VydmVyQ29uZmlnLkVudkVudHJ5EiQKF3VzZV9zaGVsbF9pbnRlcnBvbGF0aW9uGAUgASgISAKIAQESEQoEbmFtZRgGIAEoCUgDiAEBEhUKCGRpc2FibGVkGAcgASgISASIAQESEQoEdHlwZRgIIAEoCUgFiAEBEhAKA3VybBgJIAEoCUgGiAEBGioKCEVudkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCgoIX2NvbW1hbmRCDQoLX3RpbWVvdXRfbXNCGgoYX3VzZV9zaGVsbF9pbnRlcnBvbGF0aW9uQgcKBV9uYW1lQgsKCV9kaXNhYmxlZEIHCgVfdHlwZUIGCgRfdXJsIlIKGk1jcFNlcnZlclByb2R1Y3RQcmVmZXJlbmNlEjQKEGVuYWJsZWRfcHJvZHVjdHMYASADKA4yGi5wdWJsaWNfYXBpLk1jcFByb2R1Y3RUeXBlImMKD01lbW9yaXplUmVxdWVzdBIRCgVtb2RlbBgBIAEoCUICGAESCQoBdBgCIAEoCRIMCgRwYXRoGAMgASgJEhYKCWJsb2JfbmFtZRgEIAEoCUgAiAEBQgwKCl9ibG9iX25hbWUiKwoQTWVtb3JpemVSZXNwb25zZRIXCg9tZW1fb2JqZWN0X25hbWUYASABKAkiogEKHU1pZ3JhdGVVc2VyU2VjcmV0U2NvcGVSZXF1ZXN0EgwKBG5hbWUYASABKAkSLQoMc291cmNlX3Njb3BlGAIgASgOMhcucHVibGljX2FwaS5TZWNyZXRTY29wZRItCgx0YXJnZXRfc2NvcGUYAyABKA4yFy5wdWJsaWNfYXBpLlNlY3JldFNjb3BlEhUKDWRlbGV0ZV9zb3VyY2UYBCABKAgiYAoeTWlncmF0ZVVzZXJTZWNyZXRTY29wZVJlc3BvbnNlEiYKBnNlY3JldBgBIAEoCzIWLnB1YmxpY19hcGkuVXNlclNlY3JldBIWCg5zb3VyY2VfZGVsZXRlZBgCIAEoCCLUAQoFTW9kZWwSIwobc3VnZ2VzdGVkX3ByZWZpeF9jaGFyX2NvdW50GAEgASgNEiMKG3N1Z2dlc3RlZF9zdWZmaXhfY2hhcl9jb3VudBgCIAEoDRIfChdtYXhfbWVtb3JpemVfc2l6ZV9ieXRlcxgDIAEoDRIMCgRuYW1lGAUgASgJEhoKDWludGVybmFsX25hbWUYBiABKAlIAIgBARISCgppc19kZWZhdWx0GAcgASgIQhAKDl9pbnRlcm5hbF9uYW1lSgQIBBAFSgQIChALSgQICxAMIs8BCgxOb3RpZmljYXRpb24SLAoFbGV2ZWwYASABKA4yHS5wdWJsaWNfYXBpLk5vdGlmaWNhdGlvbkxldmVsEg8KB21lc3NhZ2UYAiABKAkSLAoMYWN0aW9uX2l0ZW1zGAMgAygLMhYucHVibGljX2FwaS5BY3Rpb25JdGVtEhcKD25vdGlmaWNhdGlvbl9pZBgGIAEoCRI5CgxkaXNwbGF5X3R5cGUYByABKA4yIy5wdWJsaWNfYXBpLk5vdGlmaWNhdGlvbkRpc3BsYXlUeXBlIikKFE5vdGlvblRvb2xFeHRyYUlucHV0EhEKCWFwaV90b2tlbhgBIAEoCSJdChZPbmJvYXJkaW5nU2Vzc2lvbkV2ZW50EhYKDmV2ZW50X3RpbWVfc2VjGAEgASgDEhcKD2V2ZW50X3RpbWVfbnNlYxgCIAEoBRISCgpldmVudF9uYW1lGAMgASgJIlEKG09uYm9hcmRpbmdTZXNzaW9uRXZlbnRCYXRjaBIyCgZldmVudHMYASADKAsyIi5wdWJsaWNfYXBpLk9uYm9hcmRpbmdTZXNzaW9uRXZlbnQiIAoeT25ib2FyZGluZ1Nlc3Npb25FdmVudFJlc3BvbnNlIv8BChlPdXRjb21lQW5hbHl0aWNzRGF0YVBvaW50EjYKCmRhdGVfcmFuZ2UYASABKAsyIi5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NEYXRlUmFuZ2USMwoPb3V0Y29tZV9tZXRyaWNzGAIgASgLMhoucHVibGljX2FwaS5PdXRjb21lTWV0cmljcxJCCg9ncm91cF9ieV92YWx1ZXMYAyABKAsyKS5wdWJsaWNfYXBpLk91dGNvbWVBbmFseXRpY3NHcm91cEJ5VmFsdWVzEjEKB21ldHJpY3MYBCABKAsyIC5wdWJsaWNfYXBpLkNvc3RBbmFseXRpY3NNZXRyaWNzImQKF091dGNvbWVBbmFseXRpY3NGaWx0ZXJzEg0KBW5hbWVzGAEgAygJEjoKC3RhZ19maWx0ZXJzGAIgAygLMiUucHVibGljX2FwaS5PdXRjb21lQW5hbHl0aWNzVGFnRmlsdGVyIskCCh1PdXRjb21lQW5hbHl0aWNzR3JvdXBCeVZhbHVlcxIMCgRuYW1lGAEgASgJEkEKBHRhZ3MYAiADKAsyMy5wdWJsaWNfYXBpLk91dGNvbWVBbmFseXRpY3NHcm91cEJ5VmFsdWVzLlRhZ3NFbnRyeRJbChJ0YWdfZGlzcGxheV92YWx1ZXMYAyADKAsyPy5wdWJsaWNfYXBpLk91dGNvbWVBbmFseXRpY3NHcm91cEJ5VmFsdWVzLlRhZ0Rpc3BsYXlWYWx1ZXNFbnRyeRIUCgxkaXNwbGF5X25hbWUYBCABKAkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaNwoVVGFnRGlzcGxheVZhbHVlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEidQoZT3V0Y29tZUFuYWx5dGljc1RhZ0ZpbHRlchILCgNrZXkYASABKAkSDgoGdmFsdWVzGAIgAygJEjsKC2ZpbHRlcl90eXBlGAMgASgOMiYucHVibGljX2FwaS5Db3N0QW5hbHl0aWNzVGFnRmlsdGVyVHlwZSKCAQoOT3V0Y29tZU1ldHJpY3MSGQoRb2JzZXJ2YXRpb25fY291bnQYASABKAQSHgoWZGlzdGluY3Rfc3ViamVjdF9jb3VudBgCIAEoBBI1CgdtZXRyaWNzGAMgAygLMiQucHVibGljX2FwaS5BZ2dyZWdhdGVkT3V0Y29tZU1ldHJpY3MilQQKGU91dGNvbWVTZXNzaW9uT2JzZXJ2YXRpb24SEAoIZXZlbnRfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIPCgdzdWJqZWN0GAMgASgJEhQKDHN1YmplY3RfdHlwZRgEIAEoCRIOCgZzb3VyY2UYBSABKAkSLwoLb2JzZXJ2ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhEKCXRhZ3NfanNvbhgHIAEoCRJQCg5lZmZlY3RpdmVfdGFncxgJIAMoCzI4LnB1YmxpY19hcGkuT3V0Y29tZVNlc3Npb25PYnNlcnZhdGlvbi5FZmZlY3RpdmVUYWdzRW50cnkSagocZWZmZWN0aXZlX3RhZ19kaXNwbGF5X3ZhbHVlcxgKIAMoCzJELnB1YmxpY19hcGkuT3V0Y29tZVNlc3Npb25PYnNlcnZhdGlvbi5FZmZlY3RpdmVUYWdEaXNwbGF5VmFsdWVzRW50cnkSFQoNbWV0YWRhdGFfanNvbhgLIAEoCRo0ChJFZmZlY3RpdmVUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5FZmZlY3RpdmVUYWdEaXNwbGF5VmFsdWVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAgQCVIKdmFsdWVfanNvbiLJBAoVT3V0Y29tZVNlc3Npb25TdW1tYXJ5EjUKEWZpcnN0X29ic2VydmVkX2F0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI0ChBsYXN0X29ic2VydmVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFvYnNlcnZhdGlvbl9jb3VudBgDIAEoBBIeChZkaXN0aW5jdF9zdWJqZWN0X2NvdW50GAQgASgEEhUKDW91dGNvbWVfbmFtZXMYBSADKAkSTAoOZWZmZWN0aXZlX3RhZ3MYBiADKAsyNC5wdWJsaWNfYXBpLk91dGNvbWVTZXNzaW9uU3VtbWFyeS5FZmZlY3RpdmVUYWdzRW50cnkSMQoHbWV0cmljcxgHIAEoCzIgLnB1YmxpY19hcGkuQ29zdEFuYWx5dGljc01ldHJpY3MSZgocZWZmZWN0aXZlX3RhZ19kaXNwbGF5X3ZhbHVlcxgIIAMoCzJALnB1YmxpY19hcGkuT3V0Y29tZVNlc3Npb25TdW1tYXJ5LkVmZmVjdGl2ZVRhZ0Rpc3BsYXlWYWx1ZXNFbnRyeRIQCghhZ2VudF9pZBgJIAEoCRo0ChJFZmZlY3RpdmVUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5FZmZlY3RpdmVUYWdEaXNwbGF5VmFsdWVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJvChJQZXJGaWxlQ2hhbmdlU3RhdHMSEQoJZmlsZV9wYXRoGAEgASgJEhcKD2luc2VydGlvbl9jb3VudBgCIAEoBRIWCg5kZWxldGlvbl9jb3VudBgDIAEoBRIVCg1vbGRfZmlsZV9wYXRoGAQgASgJIr0BChdQZXJUeXBlQ2hhbmdlZEZpbGVTdGF0cxIaChJjaGFuZ2VkX2ZpbGVfY291bnQYASABKAUSQgoacGVyX2ZpbGVfY2hhbmdlX3N0YXRzX2hlYWQYAiADKAsyHi5wdWJsaWNfYXBpLlBlckZpbGVDaGFuZ2VTdGF0cxJCChpwZXJfZmlsZV9jaGFuZ2Vfc3RhdHNfdGFpbBgDIAMoCzIeLnB1YmxpY19hcGkuUGVyRmlsZUNoYW5nZVN0YXRzIi8KGVBpblBvc2VpZG9uU2Vzc2lvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSIcChpQaW5Qb3NlaWRvblNlc3Npb25SZXNwb25zZSI9ChNQb3NlaWRvblBpbm5lZEVudHJ5EhIKCnNlc3Npb25faWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCSKiAQoQUHJlZmVyZW5jZVNhbXBsZRITCgtyZXF1ZXN0X2lkcxgBIAMoCRI4CgZzY29yZXMYAiADKAsyKC5wdWJsaWNfYXBpLlByZWZlcmVuY2VTYW1wbGUuU2NvcmVzRW50cnkSEAoIZmVlZGJhY2sYAyABKAkaLQoLU2NvcmVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASIaChhQcmVmZXJlbmNlU2FtcGxlUmVzcG9uc2UiXQoVUHJvY2Vzc1dlYmhvb2tSZXF1ZXN0EhIKCndlYmhvb2tfaWQYASABKAkSDwoHaGVhZGVycxgCIAEoCRIMCgRib2R5GAMgASgJEhEKCXNvdXJjZV9pcBgEIAEoCSIpChZQcm9jZXNzV2ViaG9va1Jlc3BvbnNlEg8KB21lc3NhZ2UYASABKAkiIwoFUmFuZ2USDQoFc3RhcnQYASABKAUSCwoDZW5kGAIgASgFImMKEVJhd1JldHJpZXZhbFF1ZXJ5EhMKC2Rlc2NyaXB0aW9uGAEgASgJEgwKBHBhdGgYAiABKAkSFwoPY29udGFpbnNfc3RyaW5nGAMgASgJEhIKCm1heF9jaHVua3MYBCABKAUihgIKEVJhd1JldHJpZXZlZENodW5rEgwKBHRleHQYASABKAkSDAoEcGF0aBgCIAEoCRISCgpjaGFyX3N0YXJ0GAMgASgFEhAKCGNoYXJfZW5kGAQgASgFEhIKCmxpbmVfc3RhcnQYBSABKAUSFwoPbGVuZ3RoX2luX2xpbmVzGAYgASgFEhEKCWJsb2JfbmFtZRgHIAEoCRINCgVzY29yZRgIIAEoAhIOCgZvcmlnaW4YCSABKAkSFgoObWF0Y2hlZF9zdHJpbmcYCiABKAkSGgoSZXh0ZXJuYWxfc291cmNlX2lkGAsgASgJEhwKFGV4dGVybmFsX3NvdXJjZV9uYW1lGAwgASgJIl4KHFJlYWRHaXRodWJTZXR1cFNjcmlwdFJlcXVlc3QSKQoKZ2l0aHViX3JlZhgBIAEoCzIVLnB1YmxpY19hcGkuR2l0aHViUmVmEhMKC3NjcmlwdF9wYXRoGAIgASgJIjAKHVJlYWRHaXRodWJTZXR1cFNjcmlwdFJlc3BvbnNlEg8KB2NvbnRlbnQYASABKAkiGgoYUmVhZE5vdGlmaWNhdGlvbnNSZXF1ZXN0IkwKGVJlYWROb3RpZmljYXRpb25zUmVzcG9uc2USLwoNbm90aWZpY2F0aW9ucxgBIAMoCzIYLnB1YmxpY19hcGkuTm90aWZpY2F0aW9uIusBCgtSZWNlbmN5SW5mbxI1ChF0YWJfc3dpdGNoX2V2ZW50cxgBIAMoCzIaLnB1YmxpY19hcGkuVGFiU3dpdGNoRXZlbnQSNwoSZ2l0X2RpZmZfZmlsZV9pbmZvGAIgAygLMhsucHVibGljX2FwaS5HaXREaWZmRmlsZUluZm8SMwoOcmVjZW50X2NoYW5nZXMYAyADKAsyGy5wdWJsaWNfYXBpLlJlcGxhY2VtZW50VGV4dBI3Cg92aWV3ZWRfY29udGVudHMYBCADKAsyHi5wdWJsaWNfYXBpLlZpZXdlZENvbnRlbnRFdmVudCJxCiRSZWNvcmRQb3NlaWRvbkFuYWx5dGljc0V2ZW50c1JlcXVlc3QSEAoIYWdlbnRfaWQYASABKAkSNwoGZXZlbnRzGAIgAygLMicucmVxdWVzdF9pbnNpZ2h0LlBvc2VpZG9uQW5hbHl0aWNzRXZlbnQiJwolUmVjb3JkUG9zZWlkb25BbmFseXRpY3NFdmVudHNSZXNwb25zZSJLChpSZWNvcmRSZXF1ZXN0RXZlbnRzUmVxdWVzdBItCgZldmVudHMYASADKAsyHS5yZXF1ZXN0X2luc2lnaHQuUmVxdWVzdEV2ZW50Ih0KG1JlY29yZFJlcXVlc3RFdmVudHNSZXNwb25zZSJLChpSZWNvcmRTZXNzaW9uRXZlbnRzUmVxdWVzdBItCgZldmVudHMYASADKAsyHS5yZXF1ZXN0X2luc2lnaHQuU2Vzc2lvbkV2ZW50Ih0KG1JlY29yZFNlc3Npb25FdmVudHNSZXNwb25zZSJ2CiNSZWdpc3RlckluZGV4ZWRDb21taXRCbG9ic2V0UmVxdWVzdBItCgZjb21taXQYASABKAsyHS5wdWJsaWNfYXBpLkluZGV4ZWRDb21taXRJbmZvEiAKBWJsb2JzGAIgASgLMhEucHVibGljX2FwaS5CbG9icyI3CiRSZWdpc3RlckluZGV4ZWRDb21taXRCbG9ic2V0UmVzcG9uc2USDwoHY3JlYXRlZBgBIAEoCCLoBAoLUmVtb3RlQWdlbnQSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEj4KD3dvcmtzcGFjZV9zZXR1cBgCIAEoCzIlLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRXb3Jrc3BhY2VTZXR1cBItCgZzdGF0dXMYAyABKA4yHS5wdWJsaWNfYXBpLlJlbW90ZUFnZW50U3RhdHVzEi4KCnN0YXJ0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD3Nlc3Npb25fc3VtbWFyeRgGIAEoCRIWCg50dXJuX3N1bW1hcmllcxgHIAMoCRI5Cgpzc2hfY29uZmlnGAggASgLMiAucHVibGljX2FwaS5SZW1vdGVBZ2VudFNTSENvbmZpZ0gAiAEBEiIKFWlzX3NldHVwX3NjcmlwdF9hZ2VudBgJIAEoCEgBiAEBEhgKC2hhc191cGRhdGVzGAogASgISAKIAQESQAoQd29ya3NwYWNlX3N0YXR1cxgLIAEoDjImLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRXb3Jrc3BhY2VTdGF0dXMSLgoKZXhwaXJlc19hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoFdGl0bGUYDSABKAlIA4gBAUINCgtfc3NoX2NvbmZpZ0IYChZfaXNfc2V0dXBfc2NyaXB0X2FnZW50Qg4KDF9oYXNfdXBkYXRlc0IICgZfdGl0bGUiSwobUmVtb3RlQWdlbnRBZGRTU0hLZXlSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCRITCgtwdWJsaWNfa2V5cxgCIAMoCSJUChxSZW1vdGVBZ2VudEFkZFNTSEtleVJlc3BvbnNlEjQKCnNzaF9jb25maWcYASABKAsyIC5wdWJsaWNfYXBpLlJlbW90ZUFnZW50U1NIQ29uZmlnInUKFlJlbW90ZUFnZW50Q2hhdFJlcXVlc3QSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEkIKD3JlcXVlc3RfZGV0YWlscxgCIAEoCzIpLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRDaGF0UmVxdWVzdERldGFpbHMinQIKHVJlbW90ZUFnZW50Q2hhdFJlcXVlc3REZXRhaWxzEjIKDXJlcXVlc3Rfbm9kZXMYASADKAsyGy5wdWJsaWNfYXBpLkNoYXRSZXF1ZXN0Tm9kZRIcCg91c2VyX2d1aWRlbGluZXMYAiABKAlIAIgBARIhChR3b3Jrc3BhY2VfZ3VpZGVsaW5lcxgDIAEoCUgBiAEBEhUKCG1vZGVsX2lkGAUgASgJSAKIAQESMAoLbWNwX3NlcnZlcnMYBiADKAsyGy5wdWJsaWNfYXBpLk1jcFNlcnZlckNvbmZpZ0ISChBfdXNlcl9ndWlkZWxpbmVzQhcKFV93b3Jrc3BhY2VfZ3VpZGVsaW5lc0ILCglfbW9kZWxfaWRKBAgEEAUiGQoXUmVtb3RlQWdlbnRDaGF0UmVzcG9uc2UiyAIKE1JlbW90ZUFnZW50RXhjaGFuZ2USJgoIZXhjaGFuZ2UYASABKAsyFC5wdWJsaWNfYXBpLkV4Y2hhbmdlEi4KDWNoYW5nZWRfZmlsZXMYAiADKAsyFy5wdWJsaWNfYXBpLkNoYW5nZWRGaWxlEhMKC3NlcXVlbmNlX2lkGAMgASgNEhkKDHR1cm5fc3VtbWFyeRgEIAEoCUgAiAEBEi8KC2ZpbmlzaGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIdChVjaGFuZ2VkX2ZpbGVzX3NraXBwZWQYBiADKAkSKAobY2hhbmdlZF9maWxlc19za2lwcGVkX2NvdW50GAcgASgNSAGIAQFCDwoNX3R1cm5fc3VtbWFyeUIeChxfY2hhbmdlZF9maWxlc19za2lwcGVkX2NvdW50InAKIVJlbW90ZUFnZW50R2VuZXJhdGVTdW1tYXJ5UmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkSGQoRc3RhcnRfc2VxdWVuY2VfaWQYAiABKA0SFwoPZW5kX3NlcXVlbmNlX2lkGAMgASgNImMKIlJlbW90ZUFnZW50R2VuZXJhdGVTdW1tYXJ5UmVzcG9uc2USPQoRZGlmZl9kZXNjcmlwdGlvbnMYASADKAsyIi5wdWJsaWNfYXBpLkRpZmZFeHBsYW5hdGlvblNlY3Rpb24ilwQKFFJlbW90ZUFnZW50TWNwQ29uZmlnEhQKB2NvbW1hbmQYASABKAlIAIgBARIMCgRhcmdzGAIgAygJEhcKCnRpbWVvdXRfbXMYAyABKAVIAYgBARI2CgNlbnYYBCADKAsyKS5wdWJsaWNfYXBpLlJlbW90ZUFnZW50TWNwQ29uZmlnLkVudkVudHJ5EiQKF3VzZV9zaGVsbF9pbnRlcnBvbGF0aW9uGAUgASgISAKIAQESEQoEbmFtZRgGIAEoCUgDiAEBEhUKCGRpc2FibGVkGAcgASgISASIAQESEQoEdHlwZRgIIAEoCUgFiAEBEhAKA3VybBgJIAEoCUgGiAEBEi8KCWF1dGhfdHlwZRgKIAEoDjIXLnB1YmxpY19hcGkuTWNwQXV0aFR5cGVIB4gBARIVCghpY29uX3VybBgLIAEoCUgIiAEBEhgKC2Rlc2NyaXB0aW9uGAwgASgJSAmIAQEaKgoIRW52RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIKCghfY29tbWFuZEINCgtfdGltZW91dF9tc0IaChhfdXNlX3NoZWxsX2ludGVycG9sYXRpb25CBwoFX25hbWVCCwoJX2Rpc2FibGVkQgcKBV90eXBlQgYKBF91cmxCDAoKX2F1dGhfdHlwZUILCglfaWNvbl91cmxCDgoMX2Rlc2NyaXB0aW9uIjIKF1JlbW90ZUFnZW50UGF1c2VSZXF1ZXN0EhcKD3JlbW90ZV9hZ2VudF9pZBgBIAEoCSIaChhSZW1vdGVBZ2VudFBhdXNlUmVzcG9uc2UidQocUmVtb3RlQWdlbnRSZXN1bWVIaW50UmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkSPAoLaGludF9yZWFzb24YAiABKA4yJy5wdWJsaWNfYXBpLlJlbW90ZUFnZW50UmVzdW1lSGludFJlYXNvbiI3Ch1SZW1vdGVBZ2VudFJlc3VtZUhpbnRSZXNwb25zZRIWCg5yZXN1bWVfc3RhcnRlZBgBIAEoCCIzChhSZW1vdGVBZ2VudFJlc3VtZVJlcXVlc3QSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJIhsKGVJlbW90ZUFnZW50UmVzdW1lUmVzcG9uc2UidgoUUmVtb3RlQWdlbnRTU0hDb25maWcSEwoLcHVibGljX2tleXMYASADKAkSEAoIaG9zdG5hbWUYAiABKAkSNwoSc3NoX2NvbmZpZ19vcHRpb25zGAMgAygLMhsucHVibGljX2FwaS5TU0hDb25maWdPcHRpb24ivAEKH1JlbW90ZUFnZW50V29ya3NwYWNlTG9nc1JlcXVlc3QSFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEiAKE2xhc3RfcHJvY2Vzc2VkX3N0ZXAYAiABKA1IAIgBARInChpsYXN0X3Byb2Nlc3NlZF9zZXF1ZW5jZV9pZBgDIAEoDUgBiAEBQhYKFF9sYXN0X3Byb2Nlc3NlZF9zdGVwQh0KG19sYXN0X3Byb2Nlc3NlZF9zZXF1ZW5jZV9pZCKDAQogUmVtb3RlQWdlbnRXb3Jrc3BhY2VMb2dzUmVzcG9uc2USFwoPcmVtb3RlX2FnZW50X2lkGAEgASgJEkYKFndvcmtzcGFjZV9zZXR1cF9zdGF0dXMYAyABKAsyJi5wdWJsaWNfYXBpLlJlbW90ZVdvcmtzcGFjZVNldHVwU3RhdHVzIuMBChlSZW1vdGVBZ2VudFdvcmtzcGFjZVNldHVwEjgKEWdpdGh1Yl9jb21taXRfcmVmGAEgASgLMhsucHVibGljX2FwaS5HaXRodWJDb21taXRSZWZIABJICgpnaXRfY29uZmlnGAIgAygLMjQucHVibGljX2FwaS5SZW1vdGVBZ2VudFdvcmtzcGFjZVNldHVwLkdpdENvbmZpZ0VudHJ5GjAKDkdpdENvbmZpZ0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCEAoOc3RhcnRpbmdfZmlsZXMiPgoQUmVtb3RlVG9vbElkTGlzdBIqCgh0b29sX2lkcxgBIAMoDjIYLnB1YmxpY19hcGkuUmVtb3RlVG9vbElkIlEKGlJlbW90ZVdvcmtzcGFjZVNldHVwU3RhdHVzEjMKBXN0ZXBzGAEgAygLMiQucHVibGljX2FwaS5SZW1vdGVXb3Jrc3BhY2VTZXR1cFN0ZXAiqAEKGFJlbW90ZVdvcmtzcGFjZVNldHVwU3RlcBIYChBzdGVwX2Rlc2NyaXB0aW9uGAEgASgJEgwKBGxvZ3MYAiABKAkSOgoGc3RhdHVzGAMgASgOMioucHVibGljX2FwaS5SZW1vdGVXb3Jrc3BhY2VTZXR1cFN0ZXBTdGF0dXMSEwoLc2VxdWVuY2VfaWQYBCABKA0SEwoLc3RlcF9udW1iZXIYBSABKA0iSwocUmVtb3ZlTWNwVGVuYW50Q29uZmlnUmVxdWVzdBIRCgljb25maWdfaWQYASABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgCIAEoCSJBCh1SZW1vdmVNY3BUZW5hbnRDb25maWdSZXNwb25zZRIPCgdyZW1vdmVkGAEgASgIEg8KB3ZlcnNpb24YAiABKAkiSQoaUmVtb3ZlTWNwVXNlckNvbmZpZ1JlcXVlc3QSEQoJY29uZmlnX2lkGAEgASgJEhgKEGV4cGVjdGVkX3ZlcnNpb24YAiABKAkiPwobUmVtb3ZlTWNwVXNlckNvbmZpZ1Jlc3BvbnNlEg8KB3JlbW92ZWQYASABKAgSDwoHdmVyc2lvbhgCIAEoCSI+ChdSZW5hbWVVc2VyU2VjcmV0UmVxdWVzdBIRCglzZWNyZXRfaWQYASABKAkSEAoIbmV3X25hbWUYAiABKAkiQgoYUmVuYW1lVXNlclNlY3JldFJlc3BvbnNlEiYKBnNlY3JldBgBIAEoCzIWLnB1YmxpY19hcGkuVXNlclNlY3JldCKFAgoPUmVwbGFjZW1lbnRUZXh0EhEKCWJsb2JfbmFtZRgBIAEoCRIMCgRwYXRoGAIgASgJEhIKCmNoYXJfc3RhcnQYAyABKA0SEAoIY2hhcl9lbmQYBCABKA0SGAoQcmVwbGFjZW1lbnRfdGV4dBgFIAEoCRIXCg9wcmVzZW50X2luX2Jsb2IYBiABKAgSHwoSZXhwZWN0ZWRfYmxvYl9uYW1lGAcgASgJSACIAQESMgoJdGltZXN0YW1wGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQhUKE19leHBlY3RlZF9ibG9iX25hbWVCDAoKX3RpbWVzdGFtcCKtAQoSUmVwb3J0RXJyb3JSZXF1ZXN0EiAKE29yaWdpbmFsX3JlcXVlc3RfaWQYASABKAlIAIgBARIZChFzYW5pdGl6ZWRfbWVzc2FnZRgCIAEoCRITCgtzdGFja190cmFjZRgDIAEoCRItCgtkaWFnbm9zdGljcxgEIAMoCzIYLnB1YmxpY19hcGkuS2V5VmFsdWVQYWlyQhYKFF9vcmlnaW5hbF9yZXF1ZXN0X2lkIhUKE1JlcG9ydEVycm9yUmVzcG9uc2UipQEKGlJlcG9ydEZlYXR1cmVWZWN0b3JSZXF1ZXN0ElEKDmZlYXR1cmVfdmVjdG9yGAEgAygLMjkucHVibGljX2FwaS5SZXBvcnRGZWF0dXJlVmVjdG9yUmVxdWVzdC5GZWF0dXJlVmVjdG9yRW50cnkaNAoSRmVhdHVyZVZlY3RvckVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoCToCOAEiHQobUmVwb3J0RmVhdHVyZVZlY3RvclJlc3BvbnNlIkwKG1JlcG9zaXRvcnlBbGxvd2xpc3RTZXR0aW5ncxIXCg9yZXBvc2l0b3J5X3VybHMYASADKAkSFAoMaXNfZGVueV9saXN0GAIgASgIInkKElJlc29sdmVDb21wbGV0aW9ucxIcCgtjbGllbnRfbmFtZRgBIAEoCUICGAFIAIgBARI1CgtyZXNvbHV0aW9ucxgCIAMoCzIgLnB1YmxpY19hcGkuQ29tcGxldGlvblJlc29sdXRpb25CDgoMX2NsaWVudF9uYW1lIhUKE1Jlc29sdmVFZGl0UmVzcG9uc2UiIAoeUmV2b2tlQ3VycmVudFVzZXJUb2tlbnNSZXF1ZXN0IjkKH1Jldm9rZUN1cnJlbnRVc2VyVG9rZW5zUmVzcG9uc2USFgoOdG9rZW5zX2RlbGV0ZWQYASABKAUiRAoXUmV2b2tlVG9vbEFjY2Vzc1JlcXVlc3QSKQoHdG9vbF9pZBgBIAEoDjIYLnB1YmxpY19hcGkuUmVtb3RlVG9vbElkIk4KGFJldm9rZVRvb2xBY2Nlc3NSZXNwb25zZRIyCgZzdGF0dXMYASABKA4yIi5wdWJsaWNfYXBpLlJldm9rZVRvb2xBY2Nlc3NTdGF0dXMicwoEUnVsZRIiCgR0eXBlGAEgASgOMhQucHVibGljX2FwaS5SdWxlVHlwZRIMCgRwYXRoGAIgASgJEg8KB2NvbnRlbnQYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24itgMKFFJ1blJlbW90ZVRvb2xSZXF1ZXN0EkkKGmF0bGFzc2lhbl90b29sX2V4dHJhX2lucHV0GAQgASgLMiMucHVibGljX2FwaS5BdGxhc3NpYW5Ub29sRXh0cmFJbnB1dEgAEkMKF25vdGlvbl90b29sX2V4dHJhX2lucHV0GAUgASgLMiAucHVibGljX2FwaS5Ob3Rpb25Ub29sRXh0cmFJbnB1dEgAEkMKF2xpbmVhcl90b29sX2V4dHJhX2lucHV0GAYgASgLMiAucHVibGljX2FwaS5MaW5lYXJUb29sRXh0cmFJbnB1dEgAEkMKF2dpdGh1Yl90b29sX2V4dHJhX2lucHV0GAcgASgLMiAucHVibGljX2FwaS5HaXRIdWJUb29sRXh0cmFJbnB1dEgAEhUKCXRvb2xfbmFtZRgBIAEoCUICGAESFwoPdG9vbF9pbnB1dF9qc29uGAIgASgJEi4KB3Rvb2xfaWQYAyABKA4yGC5wdWJsaWNfYXBpLlJlbW90ZVRvb2xJZEgBiAEBQhIKEGV4dHJhX3Rvb2xfaW5wdXRCCgoIX3Rvb2xfaWRKBAgIEAkiwwIKFVJ1blJlbW90ZVRvb2xSZXNwb25zZRITCgt0b29sX291dHB1dBgBIAEoCRIbChN0b29sX3Jlc3VsdF9tZXNzYWdlGAIgASgJEhQKCGlzX2Vycm9yGAMgASgIQgIYARI0CgZzdGF0dXMYBCABKA4yJC5wdWJsaWNfYXBpLlJlbW90ZVRvb2xSZXNwb25zZVN0YXR1cxIjChZjb21wcmVzc2VkX2Z1bGxfb3V0cHV0GAUgASgJSACIAQESHQoQZnVsbF9vdXRwdXRfc2l6ZRgGIAEoA0gBiAEBEjgKDWNvbnRlbnRfbm9kZXMYByADKAsyIS5wdWJsaWNfYXBpLlRvb2xSZXN1bHRDb250ZW50Tm9kZUIZChdfY29tcHJlc3NlZF9mdWxsX291dHB1dEITChFfZnVsbF9vdXRwdXRfc2l6ZSItCg9TU0hDb25maWdPcHRpb24SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJIl0KD1NhdmVDaGF0UmVxdWVzdBIXCg9jb252ZXJzYXRpb25faWQYASABKAkSIgoEY2hhdBgCIAMoCzIULnB1YmxpY19hcGkuRXhjaGFuZ2USDQoFdGl0bGUYAyABKAkiLQoQU2F2ZUNoYXRSZXNwb25zZRIMCgR1dWlkGAEgASgJEgsKA3VybBgCIAEoCSKoAQoOU2NoZWR1bGVFbnRpdHkSCgoCaWQYASABKAkSLAoEdHlwZRgCIAEoDjIeLnB1YmxpY19hcGkuU2NoZWR1bGVFbnRpdHlUeXBlEhEKCXRpbWVzdGFtcBgDIAEoCRI7CglleGVjdXRpb24YBCABKAsyIy5wdWJsaWNfYXBpLlNjaGVkdWxlRXhlY3V0aW9uRW50aXR5SACIAQFCDAoKX2V4ZWN1dGlvbiLeAQoXU2NoZWR1bGVFeGVjdXRpb25FbnRpdHkSEgoKdHJpZ2dlcl9pZBgBIAEoCRIXCg9jcm9uX2V4cHJlc3Npb24YAiABKAkSFgoOZXhlY3V0aW9uX3RpbWUYAyABKAkSFQoIdGltZXpvbmUYBCABKAlIAIgBARIXCgpzdGFydF9kYXRlGAUgASgJSAGIAQESFQoIZW5kX2RhdGUYBiABKAlIAogBARIOCgZzdGF0dXMYByABKAlCCwoJX3RpbWV6b25lQg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZSKGAgoZU2NoZWR1bGVUcmlnZ2VyQ29uZGl0aW9ucxIXCg9jcm9uX2V4cHJlc3Npb24YASABKAkSFQoIdGltZXpvbmUYAiABKAlIAIgBARIzCgpzdGFydF9kYXRlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjEKCGVuZF9kYXRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhgKC2Rlc2NyaXB0aW9uGAUgASgJSAOIAQFCCwoJX3RpbWV6b25lQg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIOCgxfZGVzY3JpcHRpb24iHgoMU2NyaXB0UG9saWN5Eg4KBnNjcmlwdBgBIAEoCSJjChxTZWFyY2hFeHRlcm5hbFNvdXJjZXNSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEjQKDHNvdXJjZV90eXBlcxgCIAMoDjIeLnB1YmxpY19hcGkuRXh0ZXJuYWxTb3VyY2VUeXBlIkwKHVNlYXJjaEV4dGVybmFsU291cmNlc1Jlc3BvbnNlEisKB3NvdXJjZXMYASADKAsyGi5wdWJsaWNfYXBpLkV4dGVybmFsU291cmNlIkQKDFNlc3Npb25Vc2FnZRI0Cgt0b3RhbF91c2FnZRgBIAEoCzIfLnB1YmxpY19hcGkuU2Vzc2lvblVzYWdlTWV0cmljcyK4AQoTU2Vzc2lvblVzYWdlTWV0cmljcxIjChtlc3RpbWF0ZWRfY3VzdG9tZXJfY29zdF91c2QYASABKAkSGAoQY3JlZGl0c19jb25zdW1lZBgCIAEoCRIUCgxpbnB1dF90b2tlbnMYAyABKAQSFQoNb3V0cHV0X3Rva2VucxgEIAEoBBIZChFjYWNoZV9yZWFkX3Rva2VucxgFIAEoBBIaChJjYWNoZV93cml0ZV90b2tlbnMYBiABKAQiIAoQU2ltcGxlUGVybWlzc2lvbhIMCgR0eXBlGAEgASgJIjwKBVNraWxsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIbG9jYXRpb24YAyABKAki4AIKFFNtYXJ0UGFzdGVSZXNvbHV0aW9uEhIKCnJlcXVlc3RfaWQYASABKAkSGgoSaXNfYWNjZXB0ZWRfY2h1bmtzGAIgAygIEhUKDWlzX2FjY2VwdF9hbGwYAyABKAgSFQoNaXNfcmVqZWN0X2FsbBgEIAEoCBIgChhpbml0aWFsX3JlcXVlc3RfdGltZV9zZWMYBSABKAMSIQoZaW5pdGlhbF9yZXF1ZXN0X3RpbWVfbnNlYxgGIAEoBRIeChZzdHJlYW1fZmluaXNoX3RpbWVfc2VjGAcgASgDEh8KF3N0cmVhbV9maW5pc2hfdGltZV9uc2VjGAggASgFEhYKDmFwcGx5X3RpbWVfc2VjGAkgASgDEhcKD2FwcGx5X3RpbWVfbnNlYxgKIAEoBRIYChByZXNvbHZlX3RpbWVfc2VjGAsgASgDEhkKEXJlc29sdmVfdGltZV9uc2VjGAwgASgFIh4KHFNtYXJ0UGFzdGVSZXNvbHV0aW9uUmVzcG9uc2UiOgoXU3lzdGVtUHJvbXB0UmVwbGFjZW1lbnQSDgoGc2VhcmNoGAEgASgJEg8KB3JlcGxhY2UYAiABKAkiNgoOVGFiU3dpdGNoRXZlbnQSDAoEcGF0aBgBIAEoCRIWCg5maWxlX2Jsb2JfbmFtZRgCIAEoCSJLCglUYWdGaWx0ZXISCwoDa2V5GAEgASgJEg4KBnZhbHVlcxgCIAMoCRIRCgltYXRjaF9hbnkYAyABKAgSDgoGaW52ZXJ0GAQgASgIIuUCCgxUZW5hbnRTZWNyZXQSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIwCgR0YWdzGAMgAygLMiIucHVibGljX2FwaS5UZW5hbnRTZWNyZXQuVGFnc0VudHJ5Ei4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2Rlc2NyaXB0aW9uGAYgASgJEg8KB3ZlcnNpb24YByABKAkSGAoQdmFsdWVfc2l6ZV9ieXRlcxgIIAEoBRISCgpjcmVhdGVkX2J5GAkgASgJEhEKCXNlY3JldF9pZBgKIAEoCRISCgpvbGFjX3JlYWR5GAsgASgIGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkYKDFRlcm1pbmFsSW5mbxITCgt0ZXJtaW5hbF9pZBgBIAEoDRIhChljdXJyZW50X3dvcmtpbmdfZGlyZWN0b3J5GAIgASgJIkYKGVRlc3RUb29sQ29ubmVjdGlvblJlcXVlc3QSKQoHdG9vbF9pZBgBIAEoDjIYLnB1YmxpY19hcGkuUmVtb3RlVG9vbElkIlIKGlRlc3RUb29sQ29ubmVjdGlvblJlc3BvbnNlEjQKBnN0YXR1cxgBIAEoDjIkLnB1YmxpY19hcGkuVGVzdFRvb2xDb25uZWN0aW9uU3RhdHVzIk4KDlRvb2xEZWZpbml0aW9uEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSGQoRaW5wdXRfc2NoZW1hX2pzb24YAyABKAkihwIKElRvb2xQZXJtaXNzaW9uUnVsZRI5ChFzaW1wbGVfcGVybWlzc2lvbhgCIAEoCzIcLnB1YmxpY19hcGkuU2ltcGxlUGVybWlzc2lvbkgAEjMKDndlYmhvb2tfcG9saWN5GAMgASgLMhkucHVibGljX2FwaS5XZWJob29rUG9saWN5SAASMQoNc2NyaXB0X3BvbGljeRgEIAEoCzIYLnB1YmxpY19hcGkuU2NyaXB0UG9saWN5SAASEQoJdG9vbF9uYW1lGAEgASgJEhIKCmV2ZW50X3R5cGUYBSABKAkSGQoRc2hlbGxfaW5wdXRfcmVnZXgYBiABKAlCDAoKcGVybWlzc2lvbiJIChdUb29sUGVybWlzc2lvbnNTZXR0aW5ncxItCgVydWxlcxgBIAMoCzIeLnB1YmxpY19hcGkuVG9vbFBlcm1pc3Npb25SdWxlIsQBChVUb29sUmVzdWx0Q29udGVudE5vZGUSMwoEdHlwZRgBIAEoDjIlLnB1YmxpY19hcGkuVG9vbFJlc3VsdENvbnRlbnROb2RlVHlwZRIZCgx0ZXh0X2NvbnRlbnQYAiABKAlIAIgBARI4Cg1pbWFnZV9jb250ZW50GAMgASgLMhwucHVibGljX2FwaS5DaGF0UmVxdWVzdEltYWdlSAGIAQFCDwoNX3RleHRfY29udGVudEIQCg5faW1hZ2VfY29udGVudCLfAgoHVHJpZ2dlchISCgp0cmlnZ2VyX2lkGAEgASgJEjcKDWNvbmZpZ3VyYXRpb24YAiABKAsyIC5wdWJsaWNfYXBpLlRyaWdnZXJDb25maWd1cmF0aW9uEi4KCmNyZWF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2V4ZWN1dGlvbl9jb3VudBgFIAEoDRI6ChFsYXN0X2V4ZWN1dGlvbl9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIiChVsYXN0X2V4ZWN1dGlvbl9zdGF0dXMYByABKAlIAYgBAUIUChJfbGFzdF9leGVjdXRpb25fYXRCGAoWX2xhc3RfZXhlY3V0aW9uX3N0YXR1cyKYAgoRVHJpZ2dlckNvbmRpdGlvbnMSLgoEdHlwZRgBIAEoDjIgLnB1YmxpY19hcGkuVHJpZ2dlckNvbmRpdGlvblR5cGUSOAoGZ2l0aHViGAIgASgLMiMucHVibGljX2FwaS5HaXRIdWJUcmlnZ2VyQ29uZGl0aW9uc0gAiAEBEjgKBmxpbmVhchgDIAEoCzIjLnB1YmxpY19hcGkuTGluZWFyVHJpZ2dlckNvbmRpdGlvbnNIAYgBARI8CghzY2hlZHVsZRgEIAEoCzIlLnB1YmxpY19hcGkuU2NoZWR1bGVUcmlnZ2VyQ29uZGl0aW9uc0gCiAEBQgkKB19naXRodWJCCQoHX2xpbmVhckILCglfc2NoZWR1bGUihwMKFFRyaWdnZXJDb25maWd1cmF0aW9uEgwKBG5hbWUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARItCgxldmVudF9zb3VyY2UYAyABKA4yFy5wdWJsaWNfYXBpLkV2ZW50U291cmNlEjEKCmNvbmRpdGlvbnMYBCABKAsyHS5wdWJsaWNfYXBpLlRyaWdnZXJDb25kaXRpb25zEi0KDGFnZW50X2NvbmZpZxgFIAEoCzIXLnB1YmxpY19hcGkuQWdlbnRDb25maWcSFAoHZW5hYmxlZBgGIAEoCEgBiAEBEhgKC3RlbXBsYXRlX2lkGAcgASgJSAKIAQESGgoNdGVtcGxhdGVfbmFtZRgIIAEoCUgDiAEBEhoKDXRlbXBsYXRlX2pzb24YCSABKAlIBIgBAUIOCgxfZGVzY3JpcHRpb25CCgoIX2VuYWJsZWRCDgoMX3RlbXBsYXRlX2lkQhAKDl90ZW1wbGF0ZV9uYW1lQhAKDl90ZW1wbGF0ZV9qc29uItQCChBUcmlnZ2VyRXhlY3V0aW9uEhQKDGV4ZWN1dGlvbl9pZBgBIAEoCRISCgp0cmlnZ2VyX2lkGAIgASgJEhAKCGV2ZW50X2lkGAMgASgJEhwKD3JlbW90ZV9hZ2VudF9pZBgEIAEoCUgAiAEBEi4KCnN0YXJ0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDGNvbXBsZXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIaCg1lcnJvcl9tZXNzYWdlGAcgASgJSAKIAQESGgoNZXZlbnRfcGF5bG9hZBgIIAEoCUgDiAEBQhIKEF9yZW1vdGVfYWdlbnRfaWRCDwoNX2NvbXBsZXRlZF9hdEIQCg5fZXJyb3JfbWVzc2FnZUIQCg5fZXZlbnRfcGF5bG9hZCIxChtVbnBpblBvc2VpZG9uU2Vzc2lvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSIeChxVbnBpblBvc2VpZG9uU2Vzc2lvblJlc3BvbnNlIo4BChlVcGRhdGVDb252ZXJzYXRpb25SZXF1ZXN0EhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIXCg9jb252ZXJzYXRpb25faWQYAiABKAkSEgoFdGl0bGUYAyABKAlIAIgBARIWCglpc19waW5uZWQYBCABKAhIAYgBAUIICgZfdGl0bGVCDAoKX2lzX3Bpbm5lZCJQChpVcGRhdGVDb252ZXJzYXRpb25SZXNwb25zZRIyCgxjb252ZXJzYXRpb24YASABKAsyHC5wdWJsaWNfYXBpLkNvbnZlcnNhdGlvbkluZm8iRAojVXBkYXRlUG9zZWlkb25UZW5hbnRTZXR0aW5nc1JlcXVlc3QSHQoVZGVmYXVsdF9iYXNlX2ltYWdlX2lkGAEgASgJIiYKJFVwZGF0ZVBvc2VpZG9uVGVuYW50U2V0dGluZ3NSZXNwb25zZSJDCiFVcGRhdGVQb3NlaWRvblVzZXJTZXR0aW5nc1JlcXVlc3QSHgoWZGVmYXVsdF9lbnZpcm9ubWVudF9pZBgBIAEoCSIkCiJVcGRhdGVQb3NlaWRvblVzZXJTZXR0aW5nc1Jlc3BvbnNlIlkKGFVwZGF0ZVJlbW90ZUFnZW50UmVxdWVzdBIXCg9yZW1vdGVfYWdlbnRfaWQYASABKAkSFgoJbmV3X3RpdGxlGAIgASgJSACIAQFCDAoKX25ld190aXRsZSJDChlVcGRhdGVSZW1vdGVBZ2VudFJlc3BvbnNlEiYKBWFnZW50GAEgASgLMhcucHVibGljX2FwaS5SZW1vdGVBZ2VudCJjChRVcGRhdGVUcmlnZ2VyUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAEgASgJEjcKDWNvbmZpZ3VyYXRpb24YAiABKAsyIC5wdWJsaWNfYXBpLlRyaWdnZXJDb25maWd1cmF0aW9uIj0KFVVwZGF0ZVRyaWdnZXJSZXNwb25zZRIkCgd0cmlnZ2VyGAEgASgLMhMucHVibGljX2FwaS5UcmlnZ2VyIjwKFlVwZGF0ZVdvcmtzcGFjZVJlcXVlc3QSFAoMd29ya3NwYWNlX2lkGAEgASgJEgwKBG5hbWUYAiABKAkiRwoXVXBkYXRlV29ya3NwYWNlUmVzcG9uc2USLAoJd29ya3NwYWNlGAEgASgLMhkucHVibGljX2FwaS5Xb3Jrc3BhY2VJbmZvIlEKClVwbG9hZEJsb2ISDwoHY29udGVudBgBIAEoCRIMCgRwYXRoGAIgASgJEhYKCWJsb2JfbmFtZRgDIAEoCUgAiAEBQgwKCl9ibG9iX25hbWUiXwocVXBzZXJ0TWNwVGVuYW50Q29uZmlnUmVxdWVzdBIlCgZjb25maWcYASABKAsyFS5wdWJsaWNfYXBpLk1jcENvbmZpZxIYChBleHBlY3RlZF92ZXJzaW9uGAIgASgJIkEKHVVwc2VydE1jcFRlbmFudENvbmZpZ1Jlc3BvbnNlEg8KB2NyZWF0ZWQYASABKAgSDwoHdmVyc2lvbhgCIAEoCSJdChpVcHNlcnRNY3BVc2VyQ29uZmlnUmVxdWVzdBIlCgZjb25maWcYASABKAsyFS5wdWJsaWNfYXBpLk1jcENvbmZpZxIYChBleHBlY3RlZF92ZXJzaW9uGAIgASgJIj8KG1Vwc2VydE1jcFVzZXJDb25maWdSZXNwb25zZRIPCgdjcmVhdGVkGAEgASgIEg8KB3ZlcnNpb24YAiABKAki8QEKGVVwc2VydFRlbmFudFNlY3JldFJlcXVlc3QSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRI9CgR0YWdzGAMgAygLMi8ucHVibGljX2FwaS5VcHNlcnRUZW5hbnRTZWNyZXRSZXF1ZXN0LlRhZ3NFbnRyeRITCgtkZXNjcmlwdGlvbhgEIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAUgASgJEhwKFG1heF92YWx1ZV9zaXplX2J5dGVzGAYgASgFGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkYKGlVwc2VydFRlbmFudFNlY3JldFJlc3BvbnNlEigKBnNlY3JldBgBIAEoCzIYLnB1YmxpY19hcGkuVGVuYW50U2VjcmV0IqIEChdVcHNlcnRVc2VyU2VjcmV0UmVxdWVzdBIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgJEjsKBHRhZ3MYAyADKAsyLS5wdWJsaWNfYXBpLlVwc2VydFVzZXJTZWNyZXRSZXF1ZXN0LlRhZ3NFbnRyeRITCgtkZXNjcmlwdGlvbhgEIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAUgASgJEhwKFG1heF92YWx1ZV9zaXplX2J5dGVzGAYgASgFEiYKBXNjb3BlGAcgASgOMhcucHVibGljX2FwaS5TZWNyZXRTY29wZRIVCghzcGFjZV9pZBgIIAEoCUgAiAEBEjsKDWFwcGxpY2FiaWxpdHkYCSABKA4yHy5wdWJsaWNfYXBpLlNlY3JldEFwcGxpY2FiaWxpdHlIAYgBARIRCglzcGFjZV9pZHMYCiADKAkSEgoKYWxsX3NwYWNlcxgLIAEoCBIVCg11cGRhdGVfc3BhY2VzGAwgASgIEhEKCXNlY3JldF9pZBgNIAEoCRITCgt1cGRhdGVfdGFncxgOIAEoCBIaChJ1cGRhdGVfZGVzY3JpcHRpb24YDyABKAgSFgoOcHJlc2VydmVfdmFsdWUYECABKAgaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCwoJX3NwYWNlX2lkQhAKDl9hcHBsaWNhYmlsaXR5IkIKGFVwc2VydFVzZXJTZWNyZXRSZXNwb25zZRImCgZzZWNyZXQYASABKAsyFi5wdWJsaWNfYXBpLlVzZXJTZWNyZXQi+AMKClVzZXJTZWNyZXQSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIuCgR0YWdzGAMgAygLMiAucHVibGljX2FwaS5Vc2VyU2VjcmV0LlRhZ3NFbnRyeRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtkZXNjcmlwdGlvbhgGIAEoCRIPCgd2ZXJzaW9uGAcgASgJEhgKEHZhbHVlX3NpemVfYnl0ZXMYCCABKAUSJgoFc2NvcGUYCSABKA4yFy5wdWJsaWNfYXBpLlNlY3JldFNjb3BlEhUKCHNwYWNlX2lkGAogASgJSACIAQESEQoJc2VjcmV0X2lkGAsgASgJEhIKCm9sYWNfcmVhZHkYDCABKAgSNgoNYXBwbGljYWJpbGl0eRgNIAEoDjIfLnB1YmxpY19hcGkuU2VjcmV0QXBwbGljYWJpbGl0eRIRCglzcGFjZV9pZHMYDiADKAkSEgoKYWxsX3NwYWNlcxgPIAEoCBorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUILCglfc3BhY2VfaWQizgEKElZpZXdlZENvbnRlbnRFdmVudBIMCgRwYXRoGAEgASgJEhYKDmZpbGVfYmxvYl9uYW1lGAIgASgJEhcKD3Zpc2libGVfY29udGVudBgDIAEoCRISCgpsaW5lX3N0YXJ0GAQgASgNEhAKCGxpbmVfZW5kGAUgASgNEhIKCmNoYXJfc3RhcnQYBiABKA0SEAoIY2hhcl9lbmQYByABKA0SLQoJdGltZXN0YW1wGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIkCg1XZWJob29rUG9saWN5EhMKC3dlYmhvb2tfdXJsGAEgASgJIk0KEldvcmtzcGFjZUZpbGVDaHVuaxISCgpjaGFyX3N0YXJ0GAEgASgFEhAKCGNoYXJfZW5kGAIgASgFEhEKCWJsb2JfbmFtZRgDIAEoCSJDChNXb3Jrc3BhY2VGb2xkZXJJbmZvEhcKD3JlcG9zaXRvcnlfcm9vdBgBIAEoCRITCgtmb2xkZXJfcm9vdBgCIAEoCSLBAQoNV29ya3NwYWNlSW5mbxIUCgx3b3Jrc3BhY2VfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIzCgpjcmVhdGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjMKCnVwZGF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCDQoLX2NyZWF0ZWRfYXRCDQoLX3VwZGF0ZWRfYXRKBAgFEAYiigIKDldvcmtzcGFjZVNldHVwEisKCmdpdGh1Yl9yZWYYASABKAsyFS5wdWJsaWNfYXBpLkdpdGh1YlJlZkgAEhIKBXBhdGNoGAIgASgJSAGIAQESGQoMc2V0dXBfc2NyaXB0GAMgASgJSAKIAQESPQoKZ2l0X2NvbmZpZxgEIAMoCzIpLnB1YmxpY19hcGkuV29ya3NwYWNlU2V0dXAuR2l0Q29uZmlnRW50cnkaMAoOR2l0Q29uZmlnRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIQCg5zdGFydGluZ19maWxlc0IICgZfcGF0Y2hCDwoNX3NldHVwX3NjcmlwdCpcChRBZ2VudENhcGFiaWxpdHlTY29wZRIhCh1BR0VOVF9DQVBBQklMSVRZX1NDT1BFX0dMT0JBTBAAEiEKHUFHRU5UX0NBUEFCSUxJVFlfU0NPUEVfVEVOQU5UEAEqogEKFkFnZW50SGlzdG9yeVVwZGF0ZVR5cGUSKQolQUdFTlRfSElTVE9SWV9VUERBVEVfVFlQRV9VTlNQRUNJRklFRBAAEhoKFkFHRU5UX0hJU1RPUllfRVhDSEFOR0UQARIhCh1BR0VOVF9ISVNUT1JZX0VYQ0hBTkdFX1VQREFURRACEh4KGkFHRU5UX0hJU1RPUllfQUdFTlRfU1RBVFVTEAMqsAEKE0FnZW50TGlzdFVwZGF0ZVR5cGUSJgoiQUdFTlRfTElTVF9VUERBVEVfVFlQRV9VTlNQRUNJRklFRBAAEhoKFkFHRU5UX0xJU1RfQUdFTlRfQURERUQQARIcChhBR0VOVF9MSVNUX0FHRU5UX1VQREFURUQQAhIcChhBR0VOVF9MSVNUX0FHRU5UX0RFTEVURUQQAxIZChVBR0VOVF9MSVNUX0FMTF9BR0VOVFMQBCpxChFBZ2VudFBlcnNvbmFTY29wZRIeChpBR0VOVF9QRVJTT05BX1NDT1BFX0dMT0JBTBAAEh4KGkFHRU5UX1BFUlNPTkFfU0NPUEVfVEVOQU5UEAESHAoYQUdFTlRfUEVSU09OQV9TQ09QRV9VU0VSEAIqlgEKGEFnZW50V29ya3NwYWNlVXBkYXRlVHlwZRIrCidBR0VOVF9XT1JLU1BBQ0VfVVBEQVRFX1RZUEVfVU5TUEVDSUZJRUQQABIkCiBBR0VOVF9XT1JLU1BBQ0VfVVBEQVRFX0lOVEVSUlVQVBABEicKI0FHRU5UX1dPUktTUEFDRV9VUERBVEVfQ0hBVF9SRVFVRVNUEAIqbwoQQW5hbHl0aWNzVGFnVHlwZRIeChpBTkFMWVRJQ1NfVEFHX1RZUEVfVU5LTk9XThAAEhsKF0FOQUxZVElDU19UQUdfVFlQRV9DT1NUEAESHgoaQU5BTFlUSUNTX1RBR19UWVBFX09VVENPTUUQAiq9AQoTQ2hhdFJlcXVlc3ROb2RlVHlwZRIICgRURVhUEAASDwoLVE9PTF9SRVNVTFQQARIJCgVJTUFHRRACEgwKCElNQUdFX0lEEAMSDQoJSURFX1NUQVRFEAQSDwoLRURJVF9FVkVOVFMQBRISCg5DSEVDS1BPSU5UX1JFRhAGEhIKDkNIQVRfTk9ERV9GSUxFEAgSFQoRQ0hBVF9OT0RFX0ZJTEVfSUQQCRITCg9ISVNUT1JZX1NVTU1BUlkQCirrAQoSQ2hhdFJlc3VsdE5vZGVUeXBlEhAKDFJBV19SRVNQT05TRRAAEhcKE1NVR0dFU1RFRF9RVUVTVElPTlMQARIWChJNQUlOX1RFWFRfRklOSVNIRUQQAhIZChVXT1JLU1BBQ0VfRklMRV9DSFVOS1MQAxIUChBSRUxFVkFOVF9TT1VSQ0VTEAQSDAoIVE9PTF9VU0UQBRISCg5UT09MX1VTRV9TVEFSVBAHEgwKCFRISU5LSU5HEAgSFAoQQklMTElOR19NRVRBREFUQRAJEg8KC1RPS0VOX1VTQUdFEAoiBAgGEAYiBAgLEAsqrgEKDkNoYXRTdG9wUmVhc29uEhYKElJFQVNPTl9VTlNQRUNJRklFRBAAEgwKCEVORF9UVVJOEAESDgoKTUFYX1RPS0VOUxACEhYKElRPT0xfVVNFX1JFUVVFU1RFRBADEgoKBlNBRkVUWRAEEg4KClJFQ0lUQVRJT04QBRIbChdNQUxGT1JNRURfRlVOQ1RJT05fQ0FMTBAGEhUKEVNUT1BfUkVBU09OX0VSUk9SEAcqygEKFENsb3VkQWdlbnRDYXBhYmlsaXR5EiIKHkNMT1VEX0FHRU5UX0NBUEFCSUxJVFlfVU5LTk9XThAAEiUKIUNMT1VEX0FHRU5UX0NBUEFCSUxJVFlfV0VCX0FDQ0VTUxABEh4KGkNMT1VEX0FHRU5UX0NBUEFCSUxJVFlfTUNQEAISJAogQ0xPVURfQUdFTlRfQ0FQQUJJTElUWV9DTElfVE9PTFMQBBIhCh1DTE9VRF9BR0VOVF9DQVBBQklMSVRZX0dJVEhVQhAFKn4KEkNsb3VkQWdlbnRMb29wVHlwZRIlCiFDTE9VRF9BR0VOVF9MT09QX1RZUEVfVU5TUEVDSUZJRUQQABIfChtDTE9VRF9BR0VOVF9MT09QX1RZUEVfU0FMU0EQARIgChxDTE9VRF9BR0VOVF9MT09QX1RZUEVfQVVHR0lFEAIqggIKEENsb3VkQWdlbnRTdGF0dXMSHgoaQ0xPVURfQUdFTlRfU1RBVFVTX1VOS05PV04QABIbChdDTE9VRF9BR0VOVF9TVEFUVVNfSURMRRABEiEKHUNMT1VEX0FHRU5UX1NUQVRVU19QUk9DRVNTSU5HEAISIQodQ0xPVURfQUdFTlRfU1RBVFVTX1RFUk1JTkFURUQQAxIgChxDTE9VRF9BR0VOVF9TVEFUVVNfQ09NUExFVEVEEAQSHwobQ0xPVURfQUdFTlRfU1RBVFVTX1NUQVJUSU5HEAUSKAokQ0xPVURfQUdFTlRfU1RBVFVTX1dBSVRJTkdfRk9SX0lOUFVUEAYq5wEKJ0Nsb3VkRGFlbW9uUG9vbFdvcmtzcGFjZUlzb2xhdGlvblBvbGljeRI8CjhDTE9VRF9EQUVNT05fUE9PTF9XT1JLU1BBQ0VfSVNPTEFUSU9OX1BPTElDWV9VTlNQRUNJRklFRBAAEj8KO0NMT1VEX0RBRU1PTl9QT09MX1dPUktTUEFDRV9JU09MQVRJT05fUE9MSUNZX0ZPUkNFX0lTT0xBVEVEEAESPQo5Q0xPVURfREFFTU9OX1BPT0xfV09SS1NQQUNFX0lTT0xBVElPTl9QT0xJQ1lfRk9SQ0VfU0hBUkVEEAIquQEKFENsb3VkRW52aXJvbm1lbnRLaW5kEiYKIkNMT1VEX0VOVklST05NRU5UX0tJTkRfVU5TUEVDSUZJRUQQABIlCiFDTE9VRF9FTlZJUk9OTUVOVF9LSU5EX0JBU0VfSU1BR0UQARImCiJDTE9VRF9FTlZJUk9OTUVOVF9LSU5EX0RBRU1PTl9QT09MEAISKgomQ0xPVURfRU5WSVJPTk1FTlRfS0lORF9VTlBPT0xFRF9EQUVNT04QAyqWBQobQ2xvdWRFbnZpcm9ubWVudExpc3RPcmRlckJ5Ei8KK0NMT1VEX0VOVklST05NRU5UX0xJU1RfT1JERVJfQllfVU5TUEVDSUZJRUQQABIsCihDTE9VRF9FTlZJUk9OTUVOVF9MSVNUX09SREVSX0JZX05BTUVfQVNDEAESLQopQ0xPVURfRU5WSVJPTk1FTlRfTElTVF9PUkRFUl9CWV9OQU1FX0RFU0MQAhIyCi5DTE9VRF9FTlZJUk9OTUVOVF9MSVNUX09SREVSX0JZX0NSRUFURURfQllfQVNDEAMSMwovQ0xPVURfRU5WSVJPTk1FTlRfTElTVF9PUkRFUl9CWV9DUkVBVEVEX0JZX0RFU0MQBBIsCihDTE9VRF9FTlZJUk9OTUVOVF9MSVNUX09SREVSX0JZX1NJWkVfQVNDEAUSLQopQ0xPVURfRU5WSVJPTk1FTlRfTElTVF9PUkRFUl9CWV9TSVpFX0RFU0MQBhItCilDTE9VRF9FTlZJUk9OTUVOVF9MSVNUX09SREVSX0JZX1JFUE9TX0FTQxAHEi4KKkNMT1VEX0VOVklST05NRU5UX0xJU1RfT1JERVJfQllfUkVQT1NfREVTQxAIEi8KK0NMT1VEX0VOVklST05NRU5UX0xJU1RfT1JERVJfQllfVVBEQVRFRF9BU0MQCRIwCixDTE9VRF9FTlZJUk9OTUVOVF9MSVNUX09SREVSX0JZX1VQREFURURfREVTQxAKEi8KK0NMT1VEX0VOVklST05NRU5UX0xJU1RfT1JERVJfQllfQ1JFQVRFRF9BU0MQCxIwCixDTE9VRF9FTlZJUk9OTUVOVF9MSVNUX09SREVSX0JZX0NSRUFURURfREVTQxAMKp0BChlDbG91ZEVudmlyb25tZW50TGlzdFNjb3BlEiwKKENMT1VEX0VOVklST05NRU5UX0xJU1RfU0NPUEVfVU5TUEVDSUZJRUQQABIpCiVDTE9VRF9FTlZJUk9OTUVOVF9MSVNUX1NDT1BFX1BFUlNPTkFMEAESJwojQ0xPVURfRU5WSVJPTk1FTlRfTElTVF9TQ09QRV9TSEFSRUQQAir7AwoiQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvbkVycm9yQ29kZRI2CjJDTE9VRF9FTlZJUk9OTUVOVF9PUEVSQVRJT05fRVJST1JfQ09ERV9VTlNQRUNJRklFRBAAEjcKM0NMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9FUlJPUl9DT0RFX0JVSUxEX0ZBSUxFRBABEkAKPENMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9FUlJPUl9DT0RFX0VYRUNVVElPTl9JTlRFUlJVUFRFRBACEjMKL0NMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9FUlJPUl9DT0RFX0lOVEVSTkFMEAMSOwo3Q0xPVURfRU5WSVJPTk1FTlRfT1BFUkFUSU9OX0VSUk9SX0NPREVfVkVSU0lPTl9DT05GTElDVBAEEjkKNUNMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9FUlJPUl9DT0RFX1JFRlJFU0hfRkFJTEVEEAUSOwo3Q0xPVURfRU5WSVJPTk1FTlRfT1BFUkFUSU9OX0VSUk9SX0NPREVfUkVDT05DSUxFX0ZBSUxFRBAGEjgKNENMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9FUlJPUl9DT0RFX1VQREFURV9GQUlMRUQQByr3AgoeQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvblBoYXNlEjEKLUNMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9QSEFTRV9VTlNQRUNJRklFRBAAEiwKKENMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9QSEFTRV9RVUVVRUQQARIvCitDTE9VRF9FTlZJUk9OTUVOVF9PUEVSQVRJT05fUEhBU0VfUFJFUEFSSU5HEAISLgoqQ0xPVURfRU5WSVJPTk1FTlRfT1BFUkFUSU9OX1BIQVNFX0JVSUxESU5HEAMSLworQ0xPVURfRU5WSVJPTk1FTlRfT1BFUkFUSU9OX1BIQVNFX1BST01PVElORxAEEi4KKkNMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9QSEFTRV9VUERBVElORxAGIgQIBRAFKixDTE9VRF9FTlZJUk9OTUVOVF9PUEVSQVRJT05fUEhBU0VfUkVGUkVTSElORyr4AgoeQ2xvdWRFbnZpcm9ubWVudE9wZXJhdGlvblN0YXRlEjEKLUNMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9TVEFURV9VTlNQRUNJRklFRBAAEi0KKUNMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9TVEFURV9QRU5ESU5HEAESLQopQ0xPVURfRU5WSVJPTk1FTlRfT1BFUkFUSU9OX1NUQVRFX1JVTk5JTkcQAhI2CjJDTE9VRF9FTlZJUk9OTUVOVF9PUEVSQVRJT05fU1RBVEVfQ0FOQ0VMX1JFUVVFU1RFRBADEi8KK0NMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9TVEFURV9TVUNDRUVERUQQBBIsCihDTE9VRF9FTlZJUk9OTUVOVF9PUEVSQVRJT05fU1RBVEVfRkFJTEVEEAUSLgoqQ0xPVURfRU5WSVJPTk1FTlRfT1BFUkFUSU9OX1NUQVRFX0NBTkNFTEVEEAYq1wIKHUNsb3VkRW52aXJvbm1lbnRPcGVyYXRpb25UeXBlEjAKLENMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASNwozQ0xPVURfRU5WSVJPTk1FTlRfT1BFUkFUSU9OX1RZUEVfQkFTRV9JTUFHRV9SRUJVSUxEEAESNQoxQ0xPVURfRU5WSVJPTk1FTlRfT1BFUkFUSU9OX1RZUEVfQkFTRV9JTUFHRV9CVUlMRBACEiwKKENMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9UWVBFX1JFRlJFU0gQAxI5CjVDTE9VRF9FTlZJUk9OTUVOVF9PUEVSQVRJT05fVFlQRV9SRVBPU0lUT1JZX1JFQ09OQ0lMRRAEEisKJ0NMT1VEX0VOVklST05NRU5UX09QRVJBVElPTl9UWVBFX1VQREFURRAFKoMCChZDbG91ZEVudmlyb25tZW50U3RhdHVzEigKJENMT1VEX0VOVklST05NRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEiMKH0NMT1VEX0VOVklST05NRU5UX1NUQVRVU19BQ1RJVkUQARIlCiFDTE9VRF9FTlZJUk9OTUVOVF9TVEFUVVNfQlVJTERJTkcQAhIjCh9DTE9VRF9FTlZJUk9OTUVOVF9TVEFUVVNfRkFJTEVEEAMSJwojQ0xPVURfRU5WSVJPTk1FTlRfU1RBVFVTX0RFUFJFQ0FURUQQBBIlCiFDTE9VRF9FTlZJUk9OTUVOVF9TVEFUVVNfREVMRVRJTkcQBSroCQocQ2xvdWRFeHBlcnRCdWlsdGluQ2FwYWJpbGl0eRIrCidDTE9VRF9FWFBFUlRfQlVJTFRJTl9DQVBBQklMSVRZX1VOS05PV04QABIuCipDTE9VRF9FWFBFUlRfQlVJTFRJTl9DQVBBQklMSVRZX1dFQl9BQ0NFU1MQARItCilDTE9VRF9FWFBFUlRfQlVJTFRJTl9DQVBBQklMSVRZX0NMSV9UT09MUxAEEioKJkNMT1VEX0VYUEVSVF9CVUlMVElOX0NBUEFCSUxJVFlfR0lUSFVCEAcSKgomQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9MSU5FQVIQCBIoCiRDTE9VRF9FWFBFUlRfQlVJTFRJTl9DQVBBQklMSVRZX0VDSE8QCRIpCiVDTE9VRF9FWFBFUlRfQlVJTFRJTl9DQVBBQklMSVRZX1NMQUNLEAsSLgoqQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9HSVRIVUJfQVBQEAwSLgoqQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9MSU5FQVJfQVBQEA0SMgouQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9DVVNUT01fV0VCSE9PSxATEioKJkNMT1VEX0VYUEVSVF9CVUlMVElOX0NBUEFCSUxJVFlfR0lUTEFCEBQSLgoqQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9HSVRMQUJfQVBQEBUSKAokQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9KSVJBEBcSLgoqQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9DT05GTFVFTkNFEBgSLAooQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9KSVJBX0FQUBAZEjIKLkNMT1VEX0VYUEVSVF9CVUlMVElOX0NBUEFCSUxJVFlfQ09ORkxVRU5DRV9BUFAQGhIpCiVDTE9VRF9FWFBFUlRfQlVJTFRJTl9DQVBBQklMSVRZX1RFQU1TEBsSMAosQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9BWlVSRV9ERVZPUFMQHBI0CjBDTE9VRF9FWFBFUlRfQlVJTFRJTl9DQVBBQklMSVRZX0FaVVJFX0RFVk9QU19BUFAQHSIECAIQAiIECAMQAyIECAUQBSIECAYQBiIECAoQCiIECA4QDiIECA8QDyIECBAQECIECBEQESIECBIQEiIECBYQFiouQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9HQ1BfTU9OSVRPUklORyorQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9HQ1BfTE9HR0lORyonQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9LVUJFQ1RMKilDTE9VRF9FWFBFUlRfQlVJTFRJTl9DQVBBQklMSVRZX1BBR0VSRFVUWSooQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9FTkdfSU5GTyozQ0xPVURfRVhQRVJUX0JVSUxUSU5fQ0FQQUJJTElUWV9DTE9VRF9BR0VOVF9DT05UUk9MKrABChtDbG91ZEV4cGVydENhcGFiaWxpdHlTb3VyY2USLgoqQ0xPVURfRVhQRVJUX0NBUEFCSUxJVFlfU09VUkNFX1VOU1BFQ0lGSUVEEAASNwozQ0xPVURfRVhQRVJUX0NBUEFCSUxJVFlfU09VUkNFX0JVSUxUSU5fQ0FQQUJJTElUSUVTEAESKAokQ0xPVURfRVhQRVJUX0NBUEFCSUxJVFlfU09VUkNFX05BTUVTEAIqkwEKIUNsb3VkRXhwZXJ0RGVwZW5kZW5jeVJlbGF0aW9uc2hpcBI0CjBDTE9VRF9FWFBFUlRfREVQRU5ERU5DWV9SRUxBVElPTlNISVBfVU5TUEVDSUZJRUQQABI4CjRDTE9VRF9FWFBFUlRfREVQRU5ERU5DWV9SRUxBVElPTlNISVBfUkVRVUlSRURfV09SS0VSEAEq0QEKIUNsb3VkRXhwZXJ0RGVwZW5kZW5jeVJlcGFpckFjdGlvbhI1CjFDTE9VRF9FWFBFUlRfREVQRU5ERU5DWV9SRVBBSVJfQUNUSU9OX1VOU1BFQ0lGSUVEEAASOAo0Q0xPVURfRVhQRVJUX0RFUEVOREVOQ1lfUkVQQUlSX0FDVElPTl9SRVNUT1JFX1RBUkdFVBABEjsKN0NMT1VEX0VYUEVSVF9ERVBFTkRFTkNZX1JFUEFJUl9BQ1RJT05fRURJVF9ERVBFTkRFTkNJRVMQAirWAQobQ2xvdWRFeHBlcnREZXBlbmRlbmN5U3RhdHVzEi4KKkNMT1VEX0VYUEVSVF9ERVBFTkRFTkNZX1NUQVRVU19VTlNQRUNJRklFRBAAEioKJkNMT1VEX0VYUEVSVF9ERVBFTkRFTkNZX1NUQVRVU19NSVNTSU5HEAESKgomQ0xPVURfRVhQRVJUX0RFUEVOREVOQ1lfU1RBVFVTX0RFTEVURUQQAhIvCitDTE9VRF9FWFBFUlRfREVQRU5ERU5DWV9TVEFUVVNfSU5BQ0NFU1NJQkxFEAMqbgoQQ2xvdWRFeHBlcnRTY29wZRIeChpDTE9VRF9FWFBFUlRfU0NPUEVfVU5LTk9XThAAEh0KGUNMT1VEX0VYUEVSVF9TQ09QRV9URU5BTlQQARIbChdDTE9VRF9FWFBFUlRfU0NPUEVfVVNFUhACKqgBChxDbG91ZEV4cGVydFNlc3Npb25WaXNpYmlsaXR5Ei8KK0NMT1VEX0VYUEVSVF9TRVNTSU9OX1ZJU0lCSUxJVFlfVU5TUEVDSUZJRUQQABIqCiZDTE9VRF9FWFBFUlRfU0VTU0lPTl9WSVNJQklMSVRZX1NIQVJFRBABEisKJ0NMT1VEX0VYUEVSVF9TRVNTSU9OX1ZJU0lCSUxJVFlfUFJJVkFURRACKqkBChhDbG91ZEV4cGVydFZNSW1hZ2VTb3VyY2USLAooQ0xPVURfRVhQRVJUX1ZNX0lNQUdFX1NPVVJDRV9VTlNQRUNJRklFRBAAEicKI0NMT1VEX0VYUEVSVF9WTV9JTUFHRV9TT1VSQ0VfUFVCTElDEAESNgoyQ0xPVURfRVhQRVJUX1ZNX0lNQUdFX1NPVVJDRV9HQ1BfQVJUSUZBQ1RfUkVHSVNUUlkQAiqPAQoUQ2xvdWRHcm91cE1lbWJlcktpbmQSJwojQ0xPVURfR1JPVVBfTUVNQkVSX0tJTkRfVU5TUEVDSUZJRUQQABIhCh1DTE9VRF9HUk9VUF9NRU1CRVJfS0lORF9IVU1BThABEisKJ0NMT1VEX0dST1VQX01FTUJFUl9LSU5EX1NFUlZJQ0VfQUNDT1VOVBACKnYKEkNsb3VkUmVzaWRlbnRTY29wZRIgChxDTE9VRF9SRVNJREVOVF9TQ09QRV9VTktOT1dOEAASHwobQ0xPVURfUkVTSURFTlRfU0NPUEVfVEVOQU5UEAESHQoZQ0xPVURfUkVTSURFTlRfU0NPUEVfVVNFUhACKqUBChhDbG91ZFNhbmRib3hQcm92aWRlclR5cGUSKwonQ0xPVURfU0FOREJPWF9QUk9WSURFUl9UWVBFX1VOU1BFQ0lGSUVEEAASLgoqQ0xPVURfU0FOREJPWF9QUk9WSURFUl9UWVBFX1NZU1RFTV9NQU5BR0VEEAESLAooQ0xPVURfU0FOREJPWF9QUk9WSURFUl9UWVBFX1VTRVJfTUFOQUdFRBACKnYKD0Nsb3VkVHVubmVsTW9kZRIhCh1DTE9VRF9UVU5ORUxfTU9ERV9VTlNQRUNJRklFRBAAEiEKHUNMT1VEX1RVTk5FTF9NT0RFX1dFQl9QUkVWSUVXEAESHQoZQ0xPVURfVFVOTkVMX01PREVfRElTUExBWRACKqACChFDbG91ZFR1bm5lbFN0YXR1cxIjCh9DTE9VRF9UVU5ORUxfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobQ0xPVURfVFVOTkVMX1NUQVRVU19QRU5ESU5HEAESHgoaQ0xPVURfVFVOTkVMX1NUQVRVU19BQ1RJVkUQAhIkCiBDTE9VRF9UVU5ORUxfU1RBVFVTX0RJU0NPTk5FQ1RFRBADEh8KG0NMT1VEX1RVTk5FTF9TVEFUVVNfUkVWT0tFRBAEEh8KG0NMT1VEX1RVTk5FTF9TVEFUVVNfRVhQSVJFRBAFEh4KGkNMT1VEX1RVTk5FTF9TVEFUVVNfQ0xPU0VEEAYSHQoZQ0xPVURfVFVOTkVMX1NUQVRVU19FUlJPUhAHKmsKDkNvbXBsZXRpb25UeXBlEh8KG0NPTVBMRVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEhgKFENPTVBMRVRJT05fVFlQRV9DT0RFEAESHgoaQ09NUExFVElPTl9UWVBFX0NIQVRfSU5QVVQQAipuChBDb252ZXJzYXRpb25UeXBlEiEKHUNPTlZFUlNBVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASGgoWQ09OVkVSU0FUSU9OX1RZUEVfQ0hBVBABEhsKF0NPTlZFUlNBVElPTl9UWVBFX0FHRU5UEAIqjwEKF0Nvc3RBbmFseXRpY3NCeW9rU3RhdHVzEiYKIkNPU1RfQU5BTFlUSUNTX0JZT0tfU1RBVFVTX1VOS05PV04QABInCiNDT1NUX0FOQUxZVElDU19CWU9LX1NUQVRVU19OT05fQllPSxABEiMKH0NPU1RfQU5BTFlUSUNTX0JZT0tfU1RBVFVTX0JZT0sQAiqBAgoUQ29zdEFuYWx5dGljc0dyb3VwQnkSIwofQ09TVF9BTkFMWVRJQ1NfR1JPVVBfQllfVU5LTk9XThAAEiAKHENPU1RfQU5BTFlUSUNTX0dST1VQX0JZX1VTRVIQAhInCiNDT1NUX0FOQUxZVElDU19HUk9VUF9CWV9CWU9LX1NUQVRVUxAEEiQKIENPU1RfQU5BTFlUSUNTX0dST1VQX0JZX1JFU09VUkNFEAUSIwofQ09TVF9BTkFMWVRJQ1NfR1JPVVBfQllfUFJPRFVDVBAGEiIKHkNPU1RfQU5BTFlUSUNTX0dST1VQX0JZX0VYUEVSVBAHIgQIARABIgQIAxADKpcBChlDb3N0QW5hbHl0aWNzUmVzb3VyY2VUeXBlEigKJENPU1RfQU5BTFlUSUNTX1JFU09VUkNFX1RZUEVfVU5LTk9XThAAEiYKIkNPU1RfQU5BTFlUSUNTX1JFU09VUkNFX1RZUEVfTU9ERUwQARIoCiRDT1NUX0FOQUxZVElDU19SRVNPVVJDRV9UWVBFX0NPTVBVVEUQAiqnAQoaQ29zdEFuYWx5dGljc1RhZ0ZpbHRlclR5cGUSKQolQ09TVF9BTkFMWVRJQ1NfVEFHX0ZJTFRFUl9UWVBFX1ZBTFVFUxAAEiwKKENPU1RfQU5BTFlUSUNTX1RBR19GSUxURVJfVFlQRV9BTllfVkFMVUUQARIwCixDT1NUX0FOQUxZVElDU19UQUdfRklMVEVSX1RZUEVfTUlTU0lOR19WQUxVRRACKskBChxDb3N0QW5hbHl0aWNzVGltZUdyYW51bGFyaXR5EisKJ0NPU1RfQU5BTFlUSUNTX1RJTUVfR1JBTlVMQVJJVFlfVU5LTk9XThAAEikKJUNPU1RfQU5BTFlUSUNTX1RJTUVfR1JBTlVMQVJJVFlfVE9UQUwQARInCiNDT1NUX0FOQUxZVElDU19USU1FX0dSQU5VTEFSSVRZX0RBWRACEigKJENPU1RfQU5BTFlUSUNTX1RJTUVfR1JBTlVMQVJJVFlfV0VFSxADKrABChVDb3N0QW5hbHl0aWNzVXNlclR5cGUSJAogQ09TVF9BTkFMWVRJQ1NfVVNFUl9UWVBFX1VOS05PV04QABIhCh1DT1NUX0FOQUxZVElDU19VU0VSX1RZUEVfVVNFUhABEiwKKENPU1RfQU5BTFlUSUNTX1VTRVJfVFlQRV9TRVJWSUNFX0FDQ09VTlQQAhIgChxDT1NUX0FOQUxZVElDU19VU0VSX1RZUEVfQk9UEAMq7QEKCERpZmZUeXBlEhkKFURJRkZfVFlQRV9VTlNQRUNJRklFRBAAEhEKDURJRkZfVFlQRV9GSVgQARIVChFESUZGX1RZUEVfRkVBVFVSRRACEhYKEkRJRkZfVFlQRV9SRUZBQ1RPUhADEhsKF0RJRkZfVFlQRV9ET0NVTUVOVEFUSU9OEAQSEwoPRElGRl9UWVBFX1NUWUxFEAUSEgoORElGRl9UWVBFX1RFU1QQBhITCg9ESUZGX1RZUEVfQ0hPUkUQBxIUChBESUZGX1RZUEVfUkVWRVJUEAgSEwoPRElGRl9UWVBFX09USEVSEAkqbAoPRWRpdEV2ZW50U291cmNlEhsKF0VESVRfU09VUkNFX1VOU1BFQ0lGSUVEEAASGQoVRURJVF9TT1VSQ0VfVVNFUl9FRElUEAESIQodRURJVF9TT1VSQ0VfQ0hFQ0tQT0lOVF9SRVZFUlQQAiqYAQoLRXZlbnRTb3VyY2USHAoYRVZFTlRfU09VUkNFX1VOU1BFQ0lGSUVEEAASFwoTRVZFTlRfU09VUkNFX0dJVEhVQhABEhcKE0VWRU5UX1NPVVJDRV9MSU5FQVIQAhIZChVFVkVOVF9TT1VSQ0VfU0NIRURVTEUQAxIeChpFVkVOVF9TT1VSQ0VfU0NIRURVTEVfVEVNUBAEKj8KEkV4dGVybmFsU291cmNlVHlwZRISCg5VTktOT1dOX1NPVVJDRRAAEhUKEURPQ1VNRU5UQVRJT05fU0VUEAEqNwoORmVlZGJhY2tSYXRpbmcSCQoFVU5TRVQQABIMCghQT1NJVElWRRABEgwKCE5FR0FUSVZFEAIqgAEKEEdpdEh1YkVudGl0eVR5cGUSIgoeR0lUSFVCX0VOVElUWV9UWVBFX1VOU1BFQ0lGSUVEEAASIwofR0lUSFVCX0VOVElUWV9UWVBFX1BVTExfUkVRVUVTVBABEiMKH0dJVEhVQl9FTlRJVFlfVFlQRV9XT1JLRkxPV19SVU4QAipVCg9JbWFnZUZvcm1hdFR5cGUSHAoYSU1BR0VfRk9STUFUX1VOU1BFQ0lGSUVEEAASBwoDUE5HEAESCAoESlBFRxACEgcKA0dJRhADEggKBFdFQlAQBCpUChBMaW5lYXJFbnRpdHlUeXBlEiIKHkxJTkVBUl9FTlRJVFlfVFlQRV9VTlNQRUNJRklFRBAAEhwKGExJTkVBUl9FTlRJVFlfVFlQRV9JU1NVRRABKngKC01jcEF1dGhUeXBlEh0KGU1DUF9BVVRIX1RZUEVfVU5TUEVDSUZJRUQQABIWChJNQ1BfQVVUSF9UWVBFX05PTkUQARIXChNNQ1BfQVVUSF9UWVBFX09BVVRIEAISGQoVTUNQX0FVVEhfVFlQRV9BUElfS0VZEAMqkwEKFE1jcENhdGFsb2dFbnRyeVN0YXRlEicKI01DUF9DQVRBTE9HX0VOVFJZX1NUQVRFX1VOU1BFQ0lGSUVEEAASJQohTUNQX0NBVEFMT0dfRU5UUllfU1RBVEVfQVZBSUxBQkxFEAESKwonTUNQX0NBVEFMT0dfRU5UUllfU1RBVEVfT1BUX0lOX1JFUVVJUkVEEAIqagoOTWNwQ29uZmlnU2NvcGUSIAocTUNQX0NPTkZJR19TQ09QRV9VTlNQRUNJRklFRBAAEhkKFU1DUF9DT05GSUdfU0NPUEVfVVNFUhABEhsKF01DUF9DT05GSUdfU0NPUEVfVEVOQU5UEAIqbgoOTWNwUHJvZHVjdFR5cGUSIAocTUNQX1BST0RVQ1RfVFlQRV9VTlNQRUNJRklFRBAAEhgKFE1DUF9QUk9EVUNUX1RZUEVfQ0xJEAESIAocTUNQX1BST0RVQ1RfVFlQRV9DTE9VRF9BR0VOVBACKmgKF05vdGlmaWNhdGlvbkRpc3BsYXlUeXBlEhwKGERJU1BMQVlfVFlQRV9VTlNQRUNJRklFRBAAEhYKEkRJU1BMQVlfVFlQRV9UT0FTVBABEhcKE0RJU1BMQVlfVFlQRV9CQU5ORVIQAiqSAQoRTm90aWZpY2F0aW9uTGV2ZWwSIgoeTk9USUZJQ0FUSU9OX0xFVkVMX1VOU1BFQ0lGSUVEEAASGwoXTk9USUZJQ0FUSU9OX0xFVkVMX0lORk8QARIeChpOT1RJRklDQVRJT05fTEVWRUxfV0FSTklORxACEhwKGE5PVElGSUNBVElPTl9MRVZFTF9FUlJPUhADKmUKDU91dGNvbWVPcmlnaW4SGgoWT1VUQ09NRV9PUklHSU5fVU5LTk9XThAAEhkKFU9VVENPTUVfT1JJR0lOX0NPU01PUxABEh0KGU9VVENPTUVfT1JJR0lOX05PTl9DT1NNT1MQAipICgtQZXJzb25hVHlwZRILCgdERUZBVUxUEAASDgoKUFJPVE9UWVBFUhABEg4KCkJSQUlOU1RPUk0QAhIMCghSRVZJRVdFUhADKqABChtSZW1vdGVBZ2VudFJlc3VtZUhpbnRSZWFzb24SKAokUkVTVU1FX0FHRU5UX0hJTlRfUkVBU09OX1VOU1BFQ0lGSUVEEAASKwonUkVTVU1FX0FHRU5UX0hJTlRfUkVBU09OX1RZUElOR19NRVNTQUdFEAESKgomUkVTVU1FX0FHRU5UX0hJTlRfUkVBU09OX1ZJRVdJTkdfQUdFTlQQAiqrAQoRUmVtb3RlQWdlbnRTdGF0dXMSFQoRQUdFTlRfVU5TUEVDSUZJRUQQABIRCg1BR0VOVF9QRU5ESU5HEAUSEgoOQUdFTlRfU1RBUlRJTkcQARIRCg1BR0VOVF9SVU5OSU5HEAISDgoKQUdFTlRfSURMRRADEhAKDEFHRU5UX0ZBSUxFRBAEEhEKDUFHRU5UX1BBVVNJTkcQBhIQCgxBR0VOVF9QQVVTRUQQByqjAgoaUmVtb3RlQWdlbnRXb3Jrc3BhY2VTdGF0dXMSLQopUkVNT1RFX0FHRU5UX1dPUktTUEFDRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIpCiVSRU1PVEVfQUdFTlRfV09SS1NQQUNFX1NUQVRVU19SVU5OSU5HEAESKQolUkVNT1RFX0FHRU5UX1dPUktTUEFDRV9TVEFUVVNfUEFVU0lORxACEigKJFJFTU9URV9BR0VOVF9XT1JLU1BBQ0VfU1RBVFVTX1BBVVNFRBADEioKJlJFTU9URV9BR0VOVF9XT1JLU1BBQ0VfU1RBVFVTX1JFU1VNSU5HEAQSKgomUkVNT1RFX0FHRU5UX1dPUktTUEFDRV9TVEFUVVNfREVMRVRJTkcQBSqrAgoMUmVtb3RlVG9vbElkEgsKB1VOS05PV04QABIOCgpXRUJfU0VBUkNIEAESDgoKR0lUSFVCX0FQSRAIEhsKF0dJVEhVQl9BUFBfUkVBRE9OTFlfQVBJEBISGwoXR0lUSFVCX0FQUF9QT1NUX0NPTU1FTlQQExIdChlHSVRIVUJfQVBQX1BSX0RFU0NSSVBUSU9OEBQSCgoGTElORUFSEAwSCAoESklSQRANEg4KCkNPTkZMVUVOQ0UQDhIKCgZOT1RJT04QDxIMCghTVVBBQkFTRRAQEgkKBUdMRUFOEBEiBAgCEAIiBAgDEAMiBAgEEAQiBAgFEAUiBAgGEAYiBAgHEAciBAgJEAkiBAgKEAoiBAgLEAsiBAgVEBUqDkNPTlRFWFRfQ0FOVkFTKtYBChhSZW1vdGVUb29sUmVzcG9uc2VTdGF0dXMSIQodVE9PTF9FWEVDVVRJT05fVU5LTk9XTl9TVEFUVVMQABIaChZUT09MX0VYRUNVVElPTl9TVUNDRVNTEAESEgoOVE9PTF9OT1RfRk9VTkQQAhIWChJJTlZBTElEX1RPT0xfSU5QVVQQAxIYChRUT09MX0VYRUNVVElPTl9FUlJPUhAEEhYKElRPT0xfTk9UX0FWQUlMQUJMRRAFEh0KGVRPT0xfQVVUSEVOVElDQVRJT05fRVJST1IQBiqQAgoeUmVtb3RlV29ya3NwYWNlU2V0dXBTdGVwU3RhdHVzEi4KKlJFTU9URV9XT1JLU1BBQ0VfU0VUVVBfU1RFUF9TVEFUVVNfVU5LTk9XThAAEi4KKlJFTU9URV9XT1JLU1BBQ0VfU0VUVVBfU1RFUF9TVEFUVVNfUlVOTklORxABEi4KKlJFTU9URV9XT1JLU1BBQ0VfU0VUVVBfU1RFUF9TVEFUVVNfU1VDQ0VTUxACEi4KKlJFTU9URV9XT1JLU1BBQ0VfU0VUVVBfU1RFUF9TVEFUVVNfRkFJTFVSRRADEi4KKlJFTU9URV9XT1JLU1BBQ0VfU0VUVVBfU1RFUF9TVEFUVVNfU0tJUFBFRBAEKt8BCg1SZXF1ZXN0U291cmNlEh4KGlJFUVVFU1RfU09VUkNFX1VOU1BFQ0lGSUVEEAASFgoSUkVRVUVTVF9TT1VSQ0VfSURFEAESIgoeUkVRVUVTVF9TT1VSQ0VfQVVHTUVOVF9BQ1RJT05TEAISHAoYUkVRVUVTVF9TT1VSQ0VfU0xBQ0tfQk9UEAMSHQoZUkVRVUVTVF9TT1VSQ0VfR0lUSFVCX0JPVBAEEh0KGVJFUVVFU1RfU09VUkNFX0xJTkVBUl9CT1QQBRIWChJSRVFVRVNUX1NPVVJDRV9DTEkQBiqMAgoWUmV2b2tlVG9vbEFjY2Vzc1N0YXR1cxIlCiFSRVZPS0VfVE9PTF9BQ0NFU1NfU1RBVFVTX1VOS05PV04QABIrCidSRVZPS0VfVE9PTF9BQ0NFU1NfU1RBVFVTX1VOSU1QTEVNRU5URUQQARInCiNSRVZPS0VfVE9PTF9BQ0NFU1NfU1RBVFVTX05PVF9GT1VORBACEiUKIVJFVk9LRV9UT09MX0FDQ0VTU19TVEFUVVNfU1VDQ0VTUxADEigKJFJFVk9LRV9UT09MX0FDQ0VTU19TVEFUVVNfTk9UX0FDVElWRRAEEiQKIFJFVk9LRV9UT09MX0FDQ0VTU19TVEFUVVNfRkFJTEVEEAUqQAoIUnVsZVR5cGUSEwoPQUxXQVlTX0FUVEFDSEVEEAASCgoGTUFOVUFMEAESEwoPQUdFTlRfUkVRVUVTVEVEEAIqXgoSU2NoZWR1bGVFbnRpdHlUeXBlEiQKIFNDSEVEVUxFX0VOVElUWV9UWVBFX1VOU1BFQ0lGSUVEEAASIgoeU0NIRURVTEVfRU5USVRZX1RZUEVfRVhFQ1VUSU9OEAEqpQEKE1NlY3JldEFwcGxpY2FiaWxpdHkSJAogU0VDUkVUX0FQUExJQ0FCSUxJVFlfVU5TUEVDSUZJRUQQABIhCh1TRUNSRVRfQVBQTElDQUJJTElUWV9QRVJTT05BTBABEh4KGlNFQ1JFVF9BUFBMSUNBQklMSVRZX1NQQUNFEAISJQohU0VDUkVUX0FQUExJQ0FCSUxJVFlfT1JHQU5JWkFUSU9OEAMqXgoLU2VjcmV0U2NvcGUSHAoYU0VDUkVUX1NDT1BFX1VOU1BFQ0lGSUVEEAASGAoUU0VDUkVUX1NDT1BFX1BSSVZBVEUQARIXChNTRUNSRVRfU0NPUEVfU0hBUkVEEAIqUQoJVGFnU291cmNlEhYKElRBR19TT1VSQ0VfVU5LTk9XThAAEhUKEVRBR19TT1VSQ0VfU1lTVEVNEAESFQoRVEFHX1NPVVJDRV9DVVNUT00QAirTAgoYVGVzdFRvb2xDb25uZWN0aW9uU3RhdHVzEicKI1RFU1RfVE9PTF9DT05ORUNUSU9OX1NUQVRVU19VTktOT1dOEAASLQopVEVTVF9UT09MX0NPTk5FQ1RJT05fU1RBVFVTX1VOSU1QTEVNRU5URUQQARIpCiVURVNUX1RPT0xfQ09OTkVDVElPTl9TVEFUVVNfTk9UX0ZPVU5EEAISIgoeVEVTVF9UT09MX0NPTk5FQ1RJT05fU1RBVFVTX09LEAMSJQohVEVTVF9UT09MX0NPTk5FQ1RJT05fU1RBVFVTX0VSUk9SEAQSMwovVEVTVF9UT09MX0NPTk5FQ1RJT05fU1RBVFVTX1NFUlZJQ0VfVU5BVkFJTEFCTEUQBRI0CjBURVNUX1RPT0xfQ09OTkVDVElPTl9TVEFUVVNfQVVUSEVOVElDQVRJT05fRVJST1IQBipVChZUb29sQXZhaWxhYmlsaXR5U3RhdHVzEhIKDlVOS05PV05fU1RBVFVTEAASDQoJQVZBSUxBQkxFEAESGAoUVVNFUl9DT05GSUdfUkVRVUlSRUQQAipeChlUb29sUmVzdWx0Q29udGVudE5vZGVUeXBlEhwKGENPTlRFTlRfVFlQRV9VTlNQRUNJRklFRBAAEhAKDENPTlRFTlRfVEVYVBABEhEKDUNPTlRFTlRfSU1BR0UQAio8CgpUb29sU2FmZXR5Eg8KC1RPT0xfVU5TQUZFEAASDQoJVE9PTF9TQUZFEAESDgoKVE9PTF9DSEVDSxACKpoBChRUcmlnZ2VyQ29uZGl0aW9uVHlwZRImCiJUUklHR0VSX0NPTkRJVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASHAoYVFJJR0dFUl9DT05ESVRJT05fR0lUSFVCEAESHAoYVFJJR0dFUl9DT05ESVRJT05fTElORUFSEAISHgoaVFJJR0dFUl9DT05ESVRJT05fU0NIRURVTEUQAypPCglVc2FnZVVuaXQSFgoSVVNBR0VfVU5JVF9VTktOT1dOEAASFgoSVVNBR0VfVU5JVF9DUkVESVRTEAESEgoOVVNBR0VfVU5JVF9VU0QQAkI+WjxnaXRodWIuY29tL2F1Z21lbnRjb2RlL2F1Z21lbnQvc2VydmljZXMvYXBpX3Byb3h5L3B1YmxpY19hcGliBnByb3RvMw",[Pi,nr,tn,ee,Cn,Yn,d0,Oa]);var G0;(function(e){e[e.BANNER_TYPE_UNKNOWN=0]="BANNER_TYPE_UNKNOWN",e[e.URL_LINK=1]="URL_LINK",e[e.USAGE_BALANCE_DEPLETED=2]="USAGE_BALANCE_DEPLETED",e[e.USAGE_BALANCE_LOW=3]="USAGE_BALANCE_LOW",e[e.REQUIRE_PAYMENT_FOR_TRIAL=4]="REQUIRE_PAYMENT_FOR_TRIAL"})(G0||(G0={}));var I0;(function(e){e[e.BANNER_DISPLAY_STYLE_UNKNOWN=0]="BANNER_DISPLAY_STYLE_UNKNOWN",e[e.INFO=1]="INFO",e[e.PROMOTION=2]="PROMOTION",e[e.WARNING=3]="WARNING",e[e.ALERT=4]="ALERT"})(I0||(I0={}));var N0;(function(e){e[e.ADDED=0]="ADDED",e[e.DELETED=1]="DELETED",e[e.MODIFIED=2]="MODIFIED",e[e.RENAMED=3]="RENAMED"})(N0||(N0={}));var F0;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ALL_FEATURES=1]="ALL_FEATURES",e[e.CHAT=2]="CHAT",e[e.AGENT=3]="AGENT",e[e.REMOTE_AGENT=4]="REMOTE_AGENT",e[e.CLI_AGENT=5]="CLI_AGENT",e[e.ORIENTATION=7]="ORIENTATION",e[e.CODE_REVIEW=9]="CODE_REVIEW",e[e.CHAT_STREAM_CREDIT_CONSUMPTION=21]="CHAT_STREAM_CREDIT_CONSUMPTION",e[e.CONTEXT_ENGINE=22]="CONTEXT_ENGINE",e[e.POSEIDON=25]="POSEIDON",e[e.INDEXING_INFRA=28]="INDEXING_INFRA"})(F0||(F0={}));var B0;(function(e){e[e.STATE_UNKNOWN=0]="STATE_UNKNOWN",e[e.ENABLED=1]="ENABLED",e[e.DISABLED=2]="DISABLED"})(B0||(B0={}));var C0;(function(e){e[e.REASON_UNKNOWN=0]="REASON_UNKNOWN",e[e.INACTIVE_SUBSCRIPTION=1]="INACTIVE_SUBSCRIPTION",e[e.USAGE_BALANCE_DEPLETED=2]="USAGE_BALANCE_DEPLETED",e[e.NOT_INCLUDED_IN_PLAN=3]="NOT_INCLUDED_IN_PLAN",e[e.QUOTA_EXCEEDED=4]="QUOTA_EXCEEDED"})(C0||(C0={}));var HS=O(qi,528,0);var Y0;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.COMMUNITY_TIER=1]="COMMUNITY_TIER",e[e.PROFESSIONAL_TIER=2]="PROFESSIONAL_TIER",e[e.ENTERPRISE_TIER=3]="ENTERPRISE_TIER"})(Y0||(Y0={}));var MS=O(qi,633);var OS=O(qi,737);var y0;(function(e){e[e.GLOBAL=0]="GLOBAL",e[e.TENANT=1]="TENANT"})(y0||(y0={}));var U0;(function(e){e[e.AGENT_HISTORY_UPDATE_TYPE_UNSPECIFIED=0]="AGENT_HISTORY_UPDATE_TYPE_UNSPECIFIED",e[e.AGENT_HISTORY_EXCHANGE=1]="AGENT_HISTORY_EXCHANGE",e[e.AGENT_HISTORY_EXCHANGE_UPDATE=2]="AGENT_HISTORY_EXCHANGE_UPDATE",e[e.AGENT_HISTORY_AGENT_STATUS=3]="AGENT_HISTORY_AGENT_STATUS"})(U0||(U0={}));var w0;(function(e){e[e.AGENT_LIST_UPDATE_TYPE_UNSPECIFIED=0]="AGENT_LIST_UPDATE_TYPE_UNSPECIFIED",e[e.AGENT_LIST_AGENT_ADDED=1]="AGENT_LIST_AGENT_ADDED",e[e.AGENT_LIST_AGENT_UPDATED=2]="AGENT_LIST_AGENT_UPDATED",e[e.AGENT_LIST_AGENT_DELETED=3]="AGENT_LIST_AGENT_DELETED",e[e.AGENT_LIST_ALL_AGENTS=4]="AGENT_LIST_ALL_AGENTS"})(w0||(w0={}));var x0;(function(e){e[e.GLOBAL=0]="GLOBAL",e[e.TENANT=1]="TENANT",e[e.USER=2]="USER"})(x0||(x0={}));var v0;(function(e){e[e.AGENT_WORKSPACE_UPDATE_TYPE_UNSPECIFIED=0]="AGENT_WORKSPACE_UPDATE_TYPE_UNSPECIFIED",e[e.AGENT_WORKSPACE_UPDATE_INTERRUPT=1]="AGENT_WORKSPACE_UPDATE_INTERRUPT",e[e.AGENT_WORKSPACE_UPDATE_CHAT_REQUEST=2]="AGENT_WORKSPACE_UPDATE_CHAT_REQUEST"})(v0||(v0={}));var J0;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.COST=1]="COST",e[e.OUTCOME=2]="OUTCOME"})(J0||(J0={}));var k0;(function(e){e[e.TEXT=0]="TEXT",e[e.TOOL_RESULT=1]="TOOL_RESULT",e[e.IMAGE=2]="IMAGE",e[e.IMAGE_ID=3]="IMAGE_ID",e[e.IDE_STATE=4]="IDE_STATE",e[e.EDIT_EVENTS=5]="EDIT_EVENTS",e[e.CHECKPOINT_REF=6]="CHECKPOINT_REF",e[e.CHAT_NODE_FILE=8]="CHAT_NODE_FILE",e[e.CHAT_NODE_FILE_ID=9]="CHAT_NODE_FILE_ID",e[e.HISTORY_SUMMARY=10]="HISTORY_SUMMARY"})(k0||(k0={}));var _0;(function(e){e[e.RAW_RESPONSE=0]="RAW_RESPONSE",e[e.SUGGESTED_QUESTIONS=1]="SUGGESTED_QUESTIONS",e[e.MAIN_TEXT_FINISHED=2]="MAIN_TEXT_FINISHED",e[e.WORKSPACE_FILE_CHUNKS=3]="WORKSPACE_FILE_CHUNKS",e[e.RELEVANT_SOURCES=4]="RELEVANT_SOURCES",e[e.TOOL_USE=5]="TOOL_USE",e[e.TOOL_USE_START=7]="TOOL_USE_START",e[e.THINKING=8]="THINKING",e[e.BILLING_METADATA=9]="BILLING_METADATA",e[e.TOKEN_USAGE=10]="TOKEN_USAGE"})(_0||(_0={}));var Q0;(function(e){e[e.REASON_UNSPECIFIED=0]="REASON_UNSPECIFIED",e[e.END_TURN=1]="END_TURN",e[e.MAX_TOKENS=2]="MAX_TOKENS",e[e.TOOL_USE_REQUESTED=3]="TOOL_USE_REQUESTED",e[e.SAFETY=4]="SAFETY",e[e.RECITATION=5]="RECITATION",e[e.MALFORMED_FUNCTION_CALL=6]="MALFORMED_FUNCTION_CALL",e[e.STOP_REASON_ERROR=7]="STOP_REASON_ERROR"})(Q0||(Q0={}));var T0;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.WEB_ACCESS=1]="WEB_ACCESS",e[e.MCP=2]="MCP",e[e.CLI_TOOLS=4]="CLI_TOOLS",e[e.GITHUB=5]="GITHUB"})(T0||(T0={}));var K0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SALSA=1]="SALSA",e[e.AUGGIE=2]="AUGGIE"})(K0||(K0={}));var z0;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.IDLE=1]="IDLE",e[e.PROCESSING=2]="PROCESSING",e[e.TERMINATED=3]="TERMINATED",e[e.COMPLETED=4]="COMPLETED",e[e.STARTING=5]="STARTING",e[e.WAITING_FOR_INPUT=6]="WAITING_FOR_INPUT"})(z0||(z0={}));var D0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.FORCE_ISOLATED=1]="FORCE_ISOLATED",e[e.FORCE_SHARED=2]="FORCE_SHARED"})(D0||(D0={}));var L0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.BASE_IMAGE=1]="BASE_IMAGE",e[e.DAEMON_POOL=2]="DAEMON_POOL",e[e.UNPOOLED_DAEMON=3]="UNPOOLED_DAEMON"})(L0||(L0={}));var H0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.NAME_ASC=1]="NAME_ASC",e[e.NAME_DESC=2]="NAME_DESC",e[e.CREATED_BY_ASC=3]="CREATED_BY_ASC",e[e.CREATED_BY_DESC=4]="CREATED_BY_DESC",e[e.SIZE_ASC=5]="SIZE_ASC",e[e.SIZE_DESC=6]="SIZE_DESC",e[e.REPOS_ASC=7]="REPOS_ASC",e[e.REPOS_DESC=8]="REPOS_DESC",e[e.UPDATED_ASC=9]="UPDATED_ASC",e[e.UPDATED_DESC=10]="UPDATED_DESC",e[e.CREATED_ASC=11]="CREATED_ASC",e[e.CREATED_DESC=12]="CREATED_DESC"})(H0||(H0={}));var M0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.PERSONAL=1]="PERSONAL",e[e.SHARED=2]="SHARED"})(M0||(M0={}));var O0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.BUILD_FAILED=1]="BUILD_FAILED",e[e.EXECUTION_INTERRUPTED=2]="EXECUTION_INTERRUPTED",e[e.INTERNAL=3]="INTERNAL",e[e.VERSION_CONFLICT=4]="VERSION_CONFLICT",e[e.REFRESH_FAILED=5]="REFRESH_FAILED",e[e.RECONCILE_FAILED=6]="RECONCILE_FAILED",e[e.UPDATE_FAILED=7]="UPDATE_FAILED"})(O0||(O0={}));var j0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.QUEUED=1]="QUEUED",e[e.PREPARING=2]="PREPARING",e[e.BUILDING=3]="BUILDING",e[e.PROMOTING=4]="PROMOTING",e[e.UPDATING=6]="UPDATING"})(j0||(j0={}));var P0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.PENDING=1]="PENDING",e[e.RUNNING=2]="RUNNING",e[e.CANCEL_REQUESTED=3]="CANCEL_REQUESTED",e[e.SUCCEEDED=4]="SUCCEEDED",e[e.FAILED=5]="FAILED",e[e.CANCELED=6]="CANCELED"})(P0||(P0={}));var ln;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.BASE_IMAGE_REBUILD=1]="BASE_IMAGE_REBUILD",e[e.BASE_IMAGE_BUILD=2]="BASE_IMAGE_BUILD",e[e.REFRESH=3]="REFRESH",e[e.REPOSITORY_RECONCILE=4]="REPOSITORY_RECONCILE",e[e.UPDATE=5]="UPDATE"})(ln||(ln={}));var q0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ACTIVE=1]="ACTIVE",e[e.BUILDING=2]="BUILDING",e[e.FAILED=3]="FAILED",e[e.DEPRECATED=4]="DEPRECATED",e[e.DELETING=5]="DELETING"})(q0||(q0={}));var pr;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.WEB_ACCESS=1]="WEB_ACCESS",e[e.CLI_TOOLS=4]="CLI_TOOLS",e[e.GITHUB=7]="GITHUB",e[e.LINEAR=8]="LINEAR",e[e.ECHO=9]="ECHO",e[e.SLACK=11]="SLACK",e[e.GITHUB_APP=12]="GITHUB_APP",e[e.LINEAR_APP=13]="LINEAR_APP",e[e.CUSTOM_WEBHOOK=19]="CUSTOM_WEBHOOK",e[e.GITLAB=20]="GITLAB",e[e.GITLAB_APP=21]="GITLAB_APP",e[e.JIRA=23]="JIRA",e[e.CONFLUENCE=24]="CONFLUENCE",e[e.JIRA_APP=25]="JIRA_APP",e[e.CONFLUENCE_APP=26]="CONFLUENCE_APP",e[e.TEAMS=27]="TEAMS",e[e.AZURE_DEVOPS=28]="AZURE_DEVOPS",e[e.AZURE_DEVOPS_APP=29]="AZURE_DEVOPS_APP"})(pr||(pr={}));var mb;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.BUILTIN_CAPABILITIES=1]="BUILTIN_CAPABILITIES",e[e.NAMES=2]="NAMES"})(mb||(mb={}));var $0;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.REQUIRED_WORKER=1]="REQUIRED_WORKER"})($0||($0={}));var eS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.RESTORE_TARGET=1]="RESTORE_TARGET",e[e.EDIT_DEPENDENCIES=2]="EDIT_DEPENDENCIES"})(eS||(eS={}));var tS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.MISSING=1]="MISSING",e[e.DELETED=2]="DELETED",e[e.INACCESSIBLE=3]="INACCESSIBLE"})(tS||(tS={}));var Ab;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TENANT=1]="TENANT",e[e.USER=2]="USER"})(Ab||(Ab={}));var nS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SHARED=1]="SHARED",e[e.PRIVATE=2]="PRIVATE"})(nS||(nS={}));var rS;(function(e){e[e.CLOUD_EXPERT_VM_IMAGE_SOURCE_UNSPECIFIED=0]="CLOUD_EXPERT_VM_IMAGE_SOURCE_UNSPECIFIED",e[e.CLOUD_EXPERT_VM_IMAGE_SOURCE_PUBLIC=1]="CLOUD_EXPERT_VM_IMAGE_SOURCE_PUBLIC",e[e.CLOUD_EXPERT_VM_IMAGE_SOURCE_GCP_ARTIFACT_REGISTRY=2]="CLOUD_EXPERT_VM_IMAGE_SOURCE_GCP_ARTIFACT_REGISTRY"})(rS||(rS={}));var oS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.HUMAN=1]="HUMAN",e[e.SERVICE_ACCOUNT=2]="SERVICE_ACCOUNT"})(oS||(oS={}));var iS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TENANT=1]="TENANT",e[e.USER=2]="USER"})(iS||(iS={}));var sS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SYSTEM_MANAGED=1]="SYSTEM_MANAGED",e[e.USER_MANAGED=2]="USER_MANAGED"})(sS||(sS={}));var lS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.WEB_PREVIEW=1]="WEB_PREVIEW",e[e.DISPLAY=2]="DISPLAY"})(lS||(lS={}));var aS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.PENDING=1]="PENDING",e[e.ACTIVE=2]="ACTIVE",e[e.DISCONNECTED=3]="DISCONNECTED",e[e.REVOKED=4]="REVOKED",e[e.EXPIRED=5]="EXPIRED",e[e.CLOSED=6]="CLOSED",e[e.ERROR=7]="ERROR"})(aS||(aS={}));var cS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.CODE=1]="CODE",e[e.CHAT_INPUT=2]="CHAT_INPUT"})(cS||(cS={}));var dS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.CHAT=1]="CHAT",e[e.AGENT=2]="AGENT"})(dS||(dS={}));var uS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.NON_BYOK=1]="NON_BYOK",e[e.BYOK=2]="BYOK"})(uS||(uS={}));var hS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.USER=2]="USER",e[e.BYOK_STATUS=4]="BYOK_STATUS",e[e.RESOURCE=5]="RESOURCE",e[e.PRODUCT=6]="PRODUCT",e[e.EXPERT=7]="EXPERT"})(hS||(hS={}));var bS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.MODEL=1]="MODEL",e[e.COMPUTE=2]="COMPUTE"})(bS||(bS={}));var fS;(function(e){e[e.VALUES=0]="VALUES",e[e.ANY_VALUE=1]="ANY_VALUE",e[e.MISSING_VALUE=2]="MISSING_VALUE"})(fS||(fS={}));var mS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TOTAL=1]="TOTAL",e[e.DAY=2]="DAY",e[e.WEEK=3]="WEEK"})(mS||(mS={}));var AS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.USER=1]="USER",e[e.SERVICE_ACCOUNT=2]="SERVICE_ACCOUNT",e[e.BOT=3]="BOT"})(AS||(AS={}));var VS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.FIX=1]="FIX",e[e.FEATURE=2]="FEATURE",e[e.REFACTOR=3]="REFACTOR",e[e.DOCUMENTATION=4]="DOCUMENTATION",e[e.STYLE=5]="STYLE",e[e.TEST=6]="TEST",e[e.CHORE=7]="CHORE",e[e.REVERT=8]="REVERT",e[e.OTHER=9]="OTHER"})(VS||(VS={}));var gS;(function(e){e[e.EDIT_SOURCE_UNSPECIFIED=0]="EDIT_SOURCE_UNSPECIFIED",e[e.EDIT_SOURCE_USER_EDIT=1]="EDIT_SOURCE_USER_EDIT",e[e.EDIT_SOURCE_CHECKPOINT_REVERT=2]="EDIT_SOURCE_CHECKPOINT_REVERT"})(gS||(gS={}));var pS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.GITHUB=1]="GITHUB",e[e.LINEAR=2]="LINEAR",e[e.SCHEDULE=3]="SCHEDULE",e[e.SCHEDULE_TEMP=4]="SCHEDULE_TEMP"})(pS||(pS={}));var ES;(function(e){e[e.UNKNOWN_SOURCE=0]="UNKNOWN_SOURCE",e[e.DOCUMENTATION_SET=1]="DOCUMENTATION_SET"})(ES||(ES={}));var RS;(function(e){e[e.UNSET=0]="UNSET",e[e.POSITIVE=1]="POSITIVE",e[e.NEGATIVE=2]="NEGATIVE"})(RS||(RS={}));var ZS;(function(e){e[e.GITHUB_ENTITY_TYPE_UNSPECIFIED=0]="GITHUB_ENTITY_TYPE_UNSPECIFIED",e[e.GITHUB_ENTITY_TYPE_PULL_REQUEST=1]="GITHUB_ENTITY_TYPE_PULL_REQUEST",e[e.GITHUB_ENTITY_TYPE_WORKFLOW_RUN=2]="GITHUB_ENTITY_TYPE_WORKFLOW_RUN"})(ZS||(ZS={}));var SS;(function(e){e[e.IMAGE_FORMAT_UNSPECIFIED=0]="IMAGE_FORMAT_UNSPECIFIED",e[e.PNG=1]="PNG",e[e.JPEG=2]="JPEG",e[e.GIF=3]="GIF",e[e.WEBP=4]="WEBP"})(SS||(SS={}));var XS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ISSUE=1]="ISSUE"})(XS||(XS={}));var WS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.NONE=1]="NONE",e[e.OAUTH=2]="OAUTH",e[e.API_KEY=3]="API_KEY"})(WS||(WS={}));var GS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.AVAILABLE=1]="AVAILABLE",e[e.OPT_IN_REQUIRED=2]="OPT_IN_REQUIRED"})(GS||(GS={}));var IS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.USER=1]="USER",e[e.TENANT=2]="TENANT"})(IS||(IS={}));var NS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.CLI=1]="CLI",e[e.CLOUD_AGENT=2]="CLOUD_AGENT"})(NS||(NS={}));var FS;(function(e){e[e.DISPLAY_TYPE_UNSPECIFIED=0]="DISPLAY_TYPE_UNSPECIFIED",e[e.DISPLAY_TYPE_TOAST=1]="DISPLAY_TYPE_TOAST",e[e.DISPLAY_TYPE_BANNER=2]="DISPLAY_TYPE_BANNER"})(FS||(FS={}));var BS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.INFO=1]="INFO",e[e.WARNING=2]="WARNING",e[e.ERROR=3]="ERROR"})(BS||(BS={}));var CS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.COSMOS=1]="COSMOS",e[e.NON_COSMOS=2]="NON_COSMOS"})(CS||(CS={}));var YS;(function(e){e[e.DEFAULT=0]="DEFAULT",e[e.PROTOTYPER=1]="PROTOTYPER",e[e.BRAINSTORM=2]="BRAINSTORM",e[e.REVIEWER=3]="REVIEWER"})(YS||(YS={}));var yS;(function(e){e[e.RESUME_AGENT_HINT_REASON_UNSPECIFIED=0]="RESUME_AGENT_HINT_REASON_UNSPECIFIED",e[e.RESUME_AGENT_HINT_REASON_TYPING_MESSAGE=1]="RESUME_AGENT_HINT_REASON_TYPING_MESSAGE",e[e.RESUME_AGENT_HINT_REASON_VIEWING_AGENT=2]="RESUME_AGENT_HINT_REASON_VIEWING_AGENT"})(yS||(yS={}));var US;(function(e){e[e.AGENT_UNSPECIFIED=0]="AGENT_UNSPECIFIED",e[e.AGENT_PENDING=5]="AGENT_PENDING",e[e.AGENT_STARTING=1]="AGENT_STARTING",e[e.AGENT_RUNNING=2]="AGENT_RUNNING",e[e.AGENT_IDLE=3]="AGENT_IDLE",e[e.AGENT_FAILED=4]="AGENT_FAILED",e[e.AGENT_PAUSING=6]="AGENT_PAUSING",e[e.AGENT_PAUSED=7]="AGENT_PAUSED"})(US||(US={}));var wS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.RUNNING=1]="RUNNING",e[e.PAUSING=2]="PAUSING",e[e.PAUSED=3]="PAUSED",e[e.RESUMING=4]="RESUMING",e[e.DELETING=5]="DELETING"})(wS||(wS={}));var an;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.WEB_SEARCH=1]="WEB_SEARCH",e[e.GITHUB_API=8]="GITHUB_API",e[e.GITHUB_APP_READONLY_API=18]="GITHUB_APP_READONLY_API",e[e.GITHUB_APP_POST_COMMENT=19]="GITHUB_APP_POST_COMMENT",e[e.GITHUB_APP_PR_DESCRIPTION=20]="GITHUB_APP_PR_DESCRIPTION",e[e.LINEAR=12]="LINEAR",e[e.JIRA=13]="JIRA",e[e.CONFLUENCE=14]="CONFLUENCE",e[e.NOTION=15]="NOTION",e[e.SUPABASE=16]="SUPABASE",e[e.GLEAN=17]="GLEAN"})(an||(an={}));var Vb;(function(e){e[e.TOOL_EXECUTION_UNKNOWN_STATUS=0]="TOOL_EXECUTION_UNKNOWN_STATUS",e[e.TOOL_EXECUTION_SUCCESS=1]="TOOL_EXECUTION_SUCCESS",e[e.TOOL_NOT_FOUND=2]="TOOL_NOT_FOUND",e[e.INVALID_TOOL_INPUT=3]="INVALID_TOOL_INPUT",e[e.TOOL_EXECUTION_ERROR=4]="TOOL_EXECUTION_ERROR",e[e.TOOL_NOT_AVAILABLE=5]="TOOL_NOT_AVAILABLE",e[e.TOOL_AUTHENTICATION_ERROR=6]="TOOL_AUTHENTICATION_ERROR"})(Vb||(Vb={}));var xS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.RUNNING=1]="RUNNING",e[e.SUCCESS=2]="SUCCESS",e[e.FAILURE=3]="FAILURE",e[e.SKIPPED=4]="SKIPPED"})(xS||(xS={}));var vS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.IDE=1]="IDE",e[e.AUGMENT_ACTIONS=2]="AUGMENT_ACTIONS",e[e.SLACK_BOT=3]="SLACK_BOT",e[e.GITHUB_BOT=4]="GITHUB_BOT",e[e.LINEAR_BOT=5]="LINEAR_BOT",e[e.CLI=6]="CLI"})(vS||(vS={}));var JS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.UNIMPLEMENTED=1]="UNIMPLEMENTED",e[e.NOT_FOUND=2]="NOT_FOUND",e[e.SUCCESS=3]="SUCCESS",e[e.NOT_ACTIVE=4]="NOT_ACTIVE",e[e.FAILED=5]="FAILED"})(JS||(JS={}));var kS;(function(e){e[e.ALWAYS_ATTACHED=0]="ALWAYS_ATTACHED",e[e.MANUAL=1]="MANUAL",e[e.AGENT_REQUESTED=2]="AGENT_REQUESTED"})(kS||(kS={}));var _S;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.EXECUTION=1]="EXECUTION"})(_S||(_S={}));var cn;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.PERSONAL=1]="PERSONAL",e[e.SPACE=2]="SPACE",e[e.ORGANIZATION=3]="ORGANIZATION"})(cn||(cn={}));var Ao;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.PRIVATE=1]="PRIVATE",e[e.SHARED=2]="SHARED"})(Ao||(Ao={}));var QS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.SYSTEM=1]="SYSTEM",e[e.CUSTOM=2]="CUSTOM"})(QS||(QS={}));var TS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.UNIMPLEMENTED=1]="UNIMPLEMENTED",e[e.NOT_FOUND=2]="NOT_FOUND",e[e.OK=3]="OK",e[e.ERROR=4]="ERROR",e[e.SERVICE_UNAVAILABLE=5]="SERVICE_UNAVAILABLE",e[e.AUTHENTICATION_ERROR=6]="AUTHENTICATION_ERROR"})(TS||(TS={}));var gb;(function(e){e[e.UNKNOWN_STATUS=0]="UNKNOWN_STATUS",e[e.AVAILABLE=1]="AVAILABLE",e[e.USER_CONFIG_REQUIRED=2]="USER_CONFIG_REQUIRED"})(gb||(gb={}));var KS;(function(e){e[e.CONTENT_TYPE_UNSPECIFIED=0]="CONTENT_TYPE_UNSPECIFIED",e[e.CONTENT_TEXT=1]="CONTENT_TEXT",e[e.CONTENT_IMAGE=2]="CONTENT_IMAGE"})(KS||(KS={}));var zS;(function(e){e[e.TOOL_UNSAFE=0]="TOOL_UNSAFE",e[e.TOOL_SAFE=1]="TOOL_SAFE",e[e.TOOL_CHECK=2]="TOOL_CHECK"})(zS||(zS={}));var DS;(function(e){e[e.TRIGGER_CONDITION_TYPE_UNSPECIFIED=0]="TRIGGER_CONDITION_TYPE_UNSPECIFIED",e[e.TRIGGER_CONDITION_GITHUB=1]="TRIGGER_CONDITION_GITHUB",e[e.TRIGGER_CONDITION_LINEAR=2]="TRIGGER_CONDITION_LINEAR",e[e.TRIGGER_CONDITION_SCHEDULE=3]="TRIGGER_CONDITION_SCHEDULE"})(DS||(DS={}));var LS;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.CREDITS=1]="CREDITS",e[e.USD=2]="USD"})(LS||(LS={}));var jS=k("CiRzZXJ2aWNlcy9wb3NlaWRvbi9jYXBhYmlsaXRpZXMucHJvdG8SCHBvc2VpZG9uIlEKEUNsaVRvb2xEZWZpbml0aW9uEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSGQoRaW5wdXRfc2NoZW1hX2pzb24YAyABKAliBnByb3RvMw",[Vt,ee,$e]);var ja=k("CipzZXJ2aWNlcy9wb3NlaWRvbi92aXJ0dWFsX2ZpbGVzeXN0ZW0ucHJvdG8SCHBvc2VpZG9uImwKF0FwcGVuZFZGU0NvbW1lbnRSZXF1ZXN0EhUKDWZpbGVzeXN0ZW1faWQYASABKAkSKAoFZXZlbnQYAiABKAsyGS5wb3NlaWRvbi5WRlNDb21tZW50RXZlbnQSEAoIc3BhY2VfaWQYAyABKAkiRAoYQXBwZW5kVkZTQ29tbWVudFJlc3BvbnNlEigKBWV2ZW50GAEgASgLMhkucG9zZWlkb24uVkZTQ29tbWVudEV2ZW50IrsBChdDb21taXRWRlNDaGFuZ2VzUmVxdWVzdBIVCg1maWxlc3lzdGVtX2lkGAEgASgJEi0KDGZpbGVfY2hhbmdlcxgCIAMoCzIXLnBvc2VpZG9uLlZGU0ZpbGVDaGFuZ2USEwoLbW9kaWZpZWRfYnkYAyABKAkSFQoIYWdlbnRfaWQYBCABKAlIAIgBARIQCghzcGFjZV9pZBgFIAEoCRIPCgdmaWxlX2lkGAYgASgJQgsKCV9hZ2VudF9pZCJZChhDb21taXRWRlNDaGFuZ2VzUmVzcG9uc2USDwoHbmV3X3NlcRgBIAEoAxIsCg1za2lwcGVkX2ZpbGVzGAIgAygLMhUucG9zZWlkb24uU2tpcHBlZEZpbGUiVQocRW5zdXJlVkZTRmlsZUlkZW50aXR5UmVxdWVzdBIVCg1maWxlc3lzdGVtX2lkGAEgASgJEgwKBHBhdGgYAiABKAkSEAoIc3BhY2VfaWQYAyABKAkiewoWRmV0Y2hWRlNDaGFuZ2VzUmVxdWVzdBIVCg1maWxlc3lzdGVtX2lkGAEgASgJEhEKCWFmdGVyX3NlcRgCIAEoAxIQCghzcGFjZV9pZBgDIAEoCRIQCghhZ2VudF9pZBgEIAEoCRITCgtwYXRoX3ByZWZpeBgFIAEoCSJaChdGZXRjaFZGU0NoYW5nZXNSZXNwb25zZRIrCgdjaGFuZ2VzGAEgAygLMhoucG9zZWlkb24uVkZTQ2hhbmdlU3VtbWFyeRISCgpsYXRlc3Rfc2VxGAIgASgDIncKGkZldGNoVkZTRmlsZUNvbnRlbnRSZXF1ZXN0EhUKDWZpbGVzeXN0ZW1faWQYASABKAkSDQoFcGF0aHMYAiADKAkSEAoIc3BhY2VfaWQYAyABKAkSDwoHZmlsZV9pZBgEIAEoCRIQCghhZ2VudF9pZBgFIAEoCSJGChtGZXRjaFZGU0ZpbGVDb250ZW50UmVzcG9uc2USJwoFZmlsZXMYASADKAsyGC5wb3NlaWRvbi5WRlNGaWxlQ29udGVudCKHAQoWTGlzdFZGU0NvbW1lbnRzUmVxdWVzdBIVCg1maWxlc3lzdGVtX2lkGAEgASgJEgwKBHBhdGgYAiABKAkSEQoJcGFnZV9zaXplGAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkSEAoIc3BhY2VfaWQYBSABKAkSDwoHZmlsZV9pZBgGIAEoCSJdChdMaXN0VkZTQ29tbWVudHNSZXNwb25zZRIpCgZldmVudHMYASADKAsyGS5wb3NlaWRvbi5WRlNDb21tZW50RXZlbnQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIosBChpMaXN0VkZTRmlsZVZlcnNpb25zUmVxdWVzdBIVCg1maWxlc3lzdGVtX2lkGAEgASgJEgwKBHBhdGgYAiABKAkSEQoJcGFnZV9zaXplGAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkSEAoIc3BhY2VfaWQYBSABKAkSDwoHZmlsZV9pZBgGIAEoCSJnChtMaXN0VkZTRmlsZVZlcnNpb25zUmVzcG9uc2USLwoIdmVyc2lvbnMYASADKAsyHS5wb3NlaWRvbi5WRlNGaWxlVmVyc2lvbkVudHJ5EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKHAQocTGlzdFZGU1ZlcnNpb25lZEZpbGVzUmVxdWVzdBIVCg1maWxlc3lzdGVtX2lkGAEgASgJEhcKD2luY2x1ZGVfZGVsZXRlZBgCIAEoCBIRCglwYWdlX3NpemUYAyABKAUSEgoKcGFnZV90b2tlbhgEIAEoCRIQCghzcGFjZV9pZBgFIAEoCSJqCh1MaXN0VkZTVmVyc2lvbmVkRmlsZXNSZXNwb25zZRIwCgVmaWxlcxgBIAMoCzIhLnBvc2VpZG9uLlZGU1ZlcnNpb25lZEZpbGVTdW1tYXJ5EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKDAQoZUmVhZFZGU0ZpbGVWZXJzaW9uUmVxdWVzdBIVCg1maWxlc3lzdGVtX2lkGAEgASgJEgwKBHBhdGgYAiABKAkSEQoJdGltZXN0YW1wGAMgASgJEgsKA3NlcRgEIAEoAxIQCghzcGFjZV9pZBgFIAEoCRIPCgdmaWxlX2lkGAYgASgJIl0KGlJlYWRWRlNGaWxlVmVyc2lvblJlc3BvbnNlEg8KB2NvbnRlbnQYASABKAwSCwoDc2VxGAIgASgDEgwKBHNpemUYAyABKAMSEwoLbW9kaWZpZWRfYnkYBCABKAkiMAodUmVzb2x2ZVZGU0ZpbGVJZGVudGl0eVJlcXVlc3QSDwoHZmlsZV9pZBgBIAEoCSIrCgtTa2lwcGVkRmlsZRIMCgRwYXRoGAEgASgJEg4KBnJlYXNvbhgCIAEoCSKBAQoQVkZTQ2hhbmdlU3VtbWFyeRIMCgRwYXRoGAEgASgJEgwKBHNpemUYAiABKAMSDQoFbXRpbWUYAyABKAMSEwoLbW9kaWZpZWRfYnkYBCABKAkSCwoDc2VxGAUgASgDEg8KB2RlbGV0ZWQYBiABKAgSDwoHZmlsZV9pZBgHIAEoCSKTAQoQVkZTQ29tbWVudEFuY2hvchITCgt2ZXJzaW9uX3NlcRgBIAEoAxINCgVxdW90ZRgCIAEoCRIRCglsaW5lX2hpbnQYAyABKAUSFAoMc3RhcnRfb2Zmc2V0GAQgASgFEhIKCmVuZF9vZmZzZXQYBSABKAUSDgoGcHJlZml4GAYgASgJEg4KBnN1ZmZpeBgHIAEoCSKwAwoPVkZTQ29tbWVudEV2ZW50EhAKCGV2ZW50X2lkGAEgASgJEhIKCmNvbW1lbnRfaWQYAiABKAkSDAoEcGF0aBgDIAEoCRIrCgRraW5kGAQgASgOMh0ucG9zZWlkb24uVkZTQ29tbWVudEV2ZW50S2luZBIMCgRib2R5GAYgASgJEioKBmFuY2hvchgHIAEoCzIaLnBvc2VpZG9uLlZGU0NvbW1lbnRBbmNob3ISEgoKY3JlYXRlZF9hdBgIIAEoCRIRCglwYXJlbnRfaWQYCSABKAkSEQoJYXV0aG9yX2lkGAogASgJEg8KB2ZpbGVfaWQYCyABKAkSLQoIbWVudGlvbnMYDCADKAsyGy5wb3NlaWRvbi5WRlNDb21tZW50TWVudGlvbhIWCg5yZWFjdGlvbl9lbW9qaRgNIAEoCRIzCgtyZWFjdGlvbl9vcBgOIAEoDjIeLnBvc2VpZG9uLlZGU0NvbW1lbnRSZWFjdGlvbk9wEhsKE2F1dGhvcl9kaXNwbGF5X25hbWUYDyABKAkSEAoIYWdlbnRfaWQYECABKAlKBAgFEAZSBmF1dGhvciKMAQoRVkZTQ29tbWVudE1lbnRpb24SLQoEdHlwZRgBIAEoDjIfLnBvc2VpZG9uLlZGU0NvbW1lbnRNZW50aW9uVHlwZRIKCgJpZBgCIAEoCRIPCgdkaXNwbGF5GAMgASgJEg0KBXN0YXJ0GAQgASgFEg4KBmxlbmd0aBgFIAEoBRIMCgRwYXRoGAYgASgJIlEKDVZGU0ZpbGVDaGFuZ2USDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgMEg8KB2RlbGV0ZWQYAyABKAgSEAoIYmFzZV9zZXEYBCABKAMiPAoOVkZTRmlsZUNvbnRlbnQSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgMEgsKA3NlcRgDIAEoAyL4AQoTVkZTRmlsZUlkZW50aXR5SW5mbxIPCgdmaWxlX2lkGAEgASgJEhUKDWZpbGVzeXN0ZW1faWQYAiABKAkSEAoIc3BhY2VfaWQYAyABKAkSFAoMY3VycmVudF9wYXRoGAQgASgJEhMKC2N1cnJlbnRfc2VxGAUgASgDEg8KB2RlbGV0ZWQYBiABKAgSKAoFc2NvcGUYByABKA4yGS5wb3NlaWRvbi5GaWxlc3lzdGVtU2NvcGUSFQoNb3duZXJfdXNlcl9pZBgIIAEoCRIWCg5lZmZlY3RpdmVfcm9sZRgJIAEoCRISCgp1cGRhdGVkX2F0GAogASgJIuEBChNWRlNGaWxlVmVyc2lvbkVudHJ5EhEKCXRpbWVzdGFtcBgBIAEoCRILCgNzZXEYAiABKAMSDAoEc2l6ZRgDIAEoAxITCgttb2RpZmllZF9ieRgEIAEoCRIPCgdkZWxldGVkGAUgASgIEg8KB2ZpbGVfaWQYBiABKAkSFwoPcGF0aF9hdF92ZXJzaW9uGAcgASgJEhAKCGFnZW50X2lkGAggASgJEhsKE21vZGlmaWVkX2J5X3VzZXJfaWQYCSABKAkSHQoVbW9kaWZpZWRfYnlfdXNlcl9uYW1lGAogASgJImkKF1ZGU1ZlcnNpb25lZEZpbGVTdW1tYXJ5EgwKBHBhdGgYASABKAkSFQoNdmVyc2lvbl9jb3VudBgCIAEoBRIYChBsYXRlc3RfdGltZXN0YW1wGAMgASgJEg8KB2RlbGV0ZWQYBCABKAgqhwEKD0ZpbGVzeXN0ZW1TY29wZRIgChxGSUxFU1lTVEVNX1NDT1BFX1VOU1BFQ0lGSUVEEAASGwoXRklMRVNZU1RFTV9TQ09QRV9URU5BTlQQARIZChVGSUxFU1lTVEVNX1NDT1BFX1VTRVIQAhIaChZGSUxFU1lTVEVNX1NDT1BFX1NQQUNFEAMqvgIKE1ZGU0NvbW1lbnRFdmVudEtpbmQSJgoiVkZTX0NPTU1FTlRfRVZFTlRfS0lORF9VTlNQRUNJRklFRBAAEiIKHlZGU19DT01NRU5UX0VWRU5UX0tJTkRfQ1JFQVRFRBABEiEKHVZGU19DT01NRU5UX0VWRU5UX0tJTkRfRURJVEVEEAISIwofVkZTX0NPTU1FTlRfRVZFTlRfS0lORF9SRVNPTFZFRBADEiIKHlZGU19DT01NRU5UX0VWRU5UX0tJTkRfREVMRVRFRBAEEiUKIVZGU19DT01NRU5UX0VWRU5UX0tJTkRfUkVBTkNIT1JFRBAFEiMKH1ZGU19DT01NRU5UX0VWRU5UX0tJTkRfUkVPUEVORUQQBhIjCh9WRlNfQ09NTUVOVF9FVkVOVF9LSU5EX1JFQUNUSU9OEAcqhwEKFVZGU0NvbW1lbnRNZW50aW9uVHlwZRIoCiRWRlNfQ09NTUVOVF9NRU5USU9OX1RZUEVfVU5TUEVDSUZJRUQQABIhCh1WRlNfQ09NTUVOVF9NRU5USU9OX1RZUEVfVVNFUhABEiEKHVZGU19DT01NRU5UX01FTlRJT05fVFlQRV9GSUxFEAIqhAEKFFZGU0NvbW1lbnRSZWFjdGlvbk9wEicKI1ZGU19DT01NRU5UX1JFQUNUSU9OX09QX1VOU1BFQ0lGSUVEEAASHwobVkZTX0NPTU1FTlRfUkVBQ1RJT05fT1BfQUREEAESIgoeVkZTX0NPTU1FTlRfUkVBQ1RJT05fT1BfUkVNT1ZFEAJiBnByb3RvMw",[ee]);var PS;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TENANT=1]="TENANT",e[e.USER=2]="USER",e[e.SPACE=3]="SPACE"})(PS||(PS={}));var qS;(function(e){e[e.VFS_COMMENT_EVENT_KIND_UNSPECIFIED=0]="VFS_COMMENT_EVENT_KIND_UNSPECIFIED",e[e.VFS_COMMENT_EVENT_KIND_CREATED=1]="VFS_COMMENT_EVENT_KIND_CREATED",e[e.VFS_COMMENT_EVENT_KIND_EDITED=2]="VFS_COMMENT_EVENT_KIND_EDITED",e[e.VFS_COMMENT_EVENT_KIND_RESOLVED=3]="VFS_COMMENT_EVENT_KIND_RESOLVED",e[e.VFS_COMMENT_EVENT_KIND_DELETED=4]="VFS_COMMENT_EVENT_KIND_DELETED",e[e.VFS_COMMENT_EVENT_KIND_REANCHORED=5]="VFS_COMMENT_EVENT_KIND_REANCHORED",e[e.VFS_COMMENT_EVENT_KIND_REOPENED=6]="VFS_COMMENT_EVENT_KIND_REOPENED",e[e.VFS_COMMENT_EVENT_KIND_REACTION=7]="VFS_COMMENT_EVENT_KIND_REACTION"})(qS||(qS={}));var $S;(function(e){e[e.VFS_COMMENT_MENTION_TYPE_UNSPECIFIED=0]="VFS_COMMENT_MENTION_TYPE_UNSPECIFIED",e[e.VFS_COMMENT_MENTION_TYPE_USER=1]="VFS_COMMENT_MENTION_TYPE_USER",e[e.VFS_COMMENT_MENTION_TYPE_FILE=2]="VFS_COMMENT_MENTION_TYPE_FILE"})($S||($S={}));var eX;(function(e){e[e.VFS_COMMENT_REACTION_OP_UNSPECIFIED=0]="VFS_COMMENT_REACTION_OP_UNSPECIFIED",e[e.VFS_COMMENT_REACTION_OP_ADD=1]="VFS_COMMENT_REACTION_OP_ADD",e[e.VFS_COMMENT_REACTION_OP_REMOVE=2]="VFS_COMMENT_REACTION_OP_REMOVE"})(eX||(eX={}));var iX=k("CiBzZXJ2aWNlcy9wb3NlaWRvbi9wb3NlaWRvbi5wcm90bxIIcG9zZWlkb24i/wIKE0Nvbm5lY3RDbGlWbVJlcXVlc3QSEAoIYWdlbnRfaWQYASABKAkSDQoFdm1faWQYAiABKAkSFgoOd29ya3NwYWNlX3BhdGgYAyABKAkSHgoWY2FwYWJpbGl0eV9pbnN0YW5jZV9pZBgEIAEoCRI0Cg9hdmFpbGFibGVfdG9vbHMYBSADKAsyGy5wb3NlaWRvbi5DbGlUb29sRGVmaW5pdGlvbhI0Cg9jb25uZWN0aW9uX21vZGUYBiABKA4yGy5wb3NlaWRvbi5DbGlDb25uZWN0aW9uTW9kZRIUCgxwYXJlbnRfdm1faWQYByABKAkSGQoRZGFlbW9uX2NvbW1hbmRfaWQYCCABKAkSGwoTY2xpZW50X2NhcGFiaWxpdGllcxgJIAMoCRITCgtjbGlfdmVyc2lvbhgKIAEoCRIkChdwcm92aXNpb25pbmdfZ2VuZXJhdGlvbhgLIAEoA0gAiAEBQhoKGF9wcm92aXNpb25pbmdfZ2VuZXJhdGlvbiLjAwoUQ29ubmVjdENsaVZtUmVzcG9uc2USDQoFdm1faWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBIVCg1lcnJvcl9tZXNzYWdlGAMgASgJEjQKDHJlbW90ZV90b29scxgEIAMoCzIeLnBvc2VpZG9uLlJlbW90ZVRvb2xEZWZpbml0aW9uEjYKDnNlc3Npb25fY29uZmlnGAUgASgLMh4ucG9zZWlkb24uU2Vzc2lvbkNvbmZpZ3VyYXRpb24SFgoObWNwX2NvbmZpZ19pZHMYBiADKAkSSwoPdmZzX2ZpbGVzeXN0ZW1zGAcgAygLMjIucG9zZWlkb24uQ29ubmVjdENsaVZtUmVzcG9uc2UuVmZzRmlsZXN5c3RlbXNFbnRyeRIRCglleHBlcnRfaWQYCyABKAkSEwoLcGVyc29uYV9pZHMYDCADKAkSEAoIc3BhY2VfaWQYDSABKAkSEwoLd29ya2Zsb3dfaWQYDiABKAkSHwoXYWN0aXZlX2dlbmVyYXRpb25fZXBvY2gYDyABKAMSGgoSY29ubmVjdGlvbl92ZXJzaW9uGBAgASgDGjUKE1Zmc0ZpbGVzeXN0ZW1zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK4AQohQ3JlYXRlSG9zdGVkQXJ0aWZhY3RVcGxvYWRSZXF1ZXN0EjYKCnZpc2liaWxpdHkYASABKA4yIi5wb3NlaWRvbi5Ib3N0ZWRBcnRpZmFjdFZpc2liaWxpdHkSEgoKbWVkaWFfdHlwZRgCIAEoCRISCgpzaXplX2J5dGVzGAMgASgDEhIKCnNoYTI1Nl9oZXgYBCABKAkSDQoFbGFiZWwYBSABKAkSEAoIZmlsZW5hbWUYBiABKAkiwQIKIkNyZWF0ZUhvc3RlZEFydGlmYWN0VXBsb2FkUmVzcG9uc2USGgoSaG9zdGVkX2FydGlmYWN0X2lkGAEgASgJEhYKDnNpZ25lZF9wdXRfdXJsGAIgASgJElsKEHJlcXVpcmVkX2hlYWRlcnMYAyADKAsyQS5wb3NlaWRvbi5DcmVhdGVIb3N0ZWRBcnRpZmFjdFVwbG9hZFJlc3BvbnNlLlJlcXVpcmVkSGVhZGVyc0VudHJ5EjkKFXNpZ25lZF91cmxfZXhwaXJlc19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAaNgoUUmVxdWlyZWRIZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAUQBlIRZXhpc3RpbmdfYXJ0aWZhY3QiUAobRGVsZXRlSG9zdGVkQXJ0aWZhY3RSZXF1ZXN0EhoKEmhvc3RlZF9hcnRpZmFjdF9pZBgBIAEoCRIVCg1jYW5vbmljYWxfdXJsGAIgASgJIh4KHERlbGV0ZUhvc3RlZEFydGlmYWN0UmVzcG9uc2UiTQodRmluYWxpemVIb3N0ZWRBcnRpZmFjdFJlcXVlc3QSGgoSaG9zdGVkX2FydGlmYWN0X2lkGAEgASgJEhAKCGZpbGVuYW1lGAIgASgJIkwKHkZpbmFsaXplSG9zdGVkQXJ0aWZhY3RSZXNwb25zZRIqCghhcnRpZmFjdBgBIAEoCzIYLnBvc2VpZG9uLkhvc3RlZEFydGlmYWN0Ir0CCg5Ib3N0ZWRBcnRpZmFjdBIaChJob3N0ZWRfYXJ0aWZhY3RfaWQYASABKAkSNgoKdmlzaWJpbGl0eRgCIAEoDjIiLnBvc2VpZG9uLkhvc3RlZEFydGlmYWN0VmlzaWJpbGl0eRISCgptZWRpYV90eXBlGAMgASgJEhIKCnNpemVfYnl0ZXMYBCABKAMSEgoKc2hhMjU2X2hleBgFIAEoCRINCgVsYWJlbBgGIAEoCRIVCg1vd25lcl91c2VyX2lkGAcgASgJEhUKDWNhbm9uaWNhbF91cmwYCCABKAkSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiaQoUUmVtb3RlVG9vbERlZmluaXRpb24SDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIZChFpbnB1dF9zY2hlbWFfanNvbhgDIAEoCRITCgt0b29sX3NhZmV0eRgEIAEoCSLoAwoUU2Vzc2lvbkNvbmZpZ3VyYXRpb24SEgoFbW9kZWwYASABKAlIAIgBARIlCh1pbmNsdWRlX2RlZmF1bHRfc3lzdGVtX3Byb21wdBgCIAEoCBIVCg1zeXN0ZW1fcHJvbXB0GAMgASgJEi8KCnZpc2liaWxpdHkYBCABKA4yGy5wb3NlaWRvbi5TZXNzaW9uVmlzaWJpbGl0eRI0Cg9hZ2VudF9sb29wX3R5cGUYBSABKA4yFy5wb3NlaWRvbi5BZ2VudExvb3BUeXBlQgIYARJHCg11c2VyX21ldGFkYXRhGAYgAygLMjAucG9zZWlkb24uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uVXNlck1ldGFkYXRhRW50cnkSHAoUYXV0b19jbGVhbnVwX29uX2lkbGUYByABKAgSGQoRd29ya2VyX2V4cGVydF9pZHMYCCADKAkSIgoadXNlX2FsbF9leHBlcnRzX2FzX3dvcmtlcnMYCSABKAgSHQoQcmVhc29uaW5nX2VmZm9ydBgKIAEoCUgBiAEBGjMKEVVzZXJNZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCAoGX21vZGVsQhMKEV9yZWFzb25pbmdfZWZmb3J0KmcKDUFnZW50TG9vcFR5cGUSHwobQUdFTlRfTE9PUF9UWVBFX1VOU1BFQ0lGSUVEEAASGQoVQUdFTlRfTE9PUF9UWVBFX1NBTFNBEAESGgoWQUdFTlRfTE9PUF9UWVBFX0FVR0dJRRACKpsBChFDbGlDb25uZWN0aW9uTW9kZRIfChtDTElfQ09OTkVDVElPTl9NT0RFX1VOS05PV04QABIlCiFDTElfQ09OTkVDVElPTl9NT0RFX1RPT0xfUFJPVklERVIQARIdChlDTElfQ09OTkVDVElPTl9NT0RFX0FHRU5UEAISHwobQ0xJX0NPTk5FQ1RJT05fTU9ERV9XQUlUSU5HEAMqmAEKGEhvc3RlZEFydGlmYWN0VmlzaWJpbGl0eRIqCiZIT1NURURfQVJUSUZBQ1RfVklTSUJJTElUWV9VTlNQRUNJRklFRBAAEikKJUhPU1RFRF9BUlRJRkFDVF9WSVNJQklMSVRZX1NFQ1JFVF9VUkwQARIlCiFIT1NURURfQVJUSUZBQ1RfVklTSUJJTElUWV9URU5BTlQQAip2ChFTZXNzaW9uVmlzaWJpbGl0eRIiCh5TRVNTSU9OX1ZJU0lCSUxJVFlfVU5TUEVDSUZJRUQQABIdChlTRVNTSU9OX1ZJU0lCSUxJVFlfU0hBUkVEEAESHgoaU0VTU0lPTl9WSVNJQklMSVRZX1BSSVZBVEUQAmIGcHJvdG8z",[nr,WV,ee,$e,jS,ja]);var tX;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SALSA=1]="SALSA",e[e.AUGGIE=2]="AUGGIE"})(tX||(tX={}));var nX;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TOOL_PROVIDER=1]="TOOL_PROVIDER",e[e.AGENT=2]="AGENT",e[e.WAITING=3]="WAITING"})(nX||(nX={}));var rX;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SECRET_URL=1]="SECRET_URL",e[e.TENANT=2]="TENANT"})(rX||(rX={}));var oX;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SHARED=1]="SHARED",e[e.PRIVATE=2]="PRIVATE"})(oX||(oX={}));var zJ=k("CitzZXJ2aWNlcy9hcGlfcHJveHkvcHVibGljX2FwaV9zZXJ2aWNlLnByb3RvEgpwdWJsaWNfYXBpIpIBCixDbG91ZEFnZW50c0Vuc3VyZVZGU0ZpbGVJZGVudGl0eUh0dHBSZXNwb25zZRIvCghpZGVudGl0eRgBIAEoCzIdLnBvc2VpZG9uLlZGU0ZpbGVJZGVudGl0eUluZm8SGAoQd2ViX2FwcF9iYXNlX3VybBgCIAEoCRIXCg9hcHBfcGF0aF9wcmVmaXgYAyABKAkieAotQ2xvdWRBZ2VudHNSZXNvbHZlVkZTRmlsZUlkZW50aXR5SHR0cFJlc3BvbnNlEi8KCGlkZW50aXR5GAEgASgLMh0ucG9zZWlkb24uVkZTRmlsZUlkZW50aXR5SW5mbxIWCg5jYWxsZXJfdXNlcl9pZBgCIAEoCTLZ8AIKEEF1Z21lbnRQdWJsaWNBcGkSaAoLQmF0Y2hVcGxvYWQSHi5wdWJsaWNfYXBpLkJhdGNoVXBsb2FkUmVxdWVzdBofLnB1YmxpY19hcGkuQmF0Y2hVcGxvYWRSZXNwb25zZSIYgtPkkwISIg0vYmF0Y2gtdXBsb2FkOgEqEksKBENoYXQSFy5wdWJsaWNfYXBpLkNoYXRSZXF1ZXN0GhgucHVibGljX2FwaS5DaGF0UmVzcG9uc2UiEILT5JMCCiIFL2NoYXQ6ASoSWgoKQ2hhdFN0cmVhbRIXLnB1YmxpY19hcGkuQ2hhdFJlcXVlc3QaGC5wdWJsaWNfYXBpLkNoYXRSZXNwb25zZSIXgtPkkwIRIgwvY2hhdC1zdHJlYW06ASowARJiCg5Qcm9tcHRFbmhhbmNlchIXLnB1YmxpY19hcGkuQ2hhdFJlcXVlc3QaGC5wdWJsaWNfYXBpLkNoYXRSZXNwb25zZSIbgtPkkwIVIhAvcHJvbXB0LWVuaGFuY2VyOgEqMAESoAEKG0dlbmVyYXRlQ29tbWl0TWVzc2FnZVN0cmVhbRIoLnB1YmxpY19hcGkuR2VuZXJhdGVDb21taXRNZXNzYWdlUmVxdWVzdBopLnB1YmxpY19hcGkuR2VuZXJhdGVDb21taXRNZXNzYWdlUmVzcG9uc2UiKoLT5JMCJCIfL2dlbmVyYXRlLWNvbW1pdC1tZXNzYWdlLXN0cmVhbToBKjABEnUKEFNtYXJ0UGFzdGVTdHJlYW0SHi5wdWJsaWNfYXBpLkluc3RydWN0aW9uUmVxdWVzdBofLnB1YmxpY19hcGkuSW5zdHJ1Y3Rpb25SZXNwb25zZSIegtPkkwIYIhMvc21hcnQtcGFzdGUtc3RyZWFtOgEqMAESeAoPQ2hlY2twb2ludEJsb2JzEiIucHVibGljX2FwaS5DaGVja3BvaW50QmxvYnNSZXF1ZXN0GiMucHVibGljX2FwaS5DaGVja3BvaW50QmxvYnNSZXNwb25zZSIcgtPkkwIWIhEvY2hlY2twb2ludC1ibG9iczoBKhJjCgpDb21wbGV0aW9uEh0ucHVibGljX2FwaS5Db21wbGV0aW9uUmVxdWVzdBoeLnB1YmxpY19hcGkuQ29tcGxldGlvblJlc3BvbnNlIhaC0+STAhAiCy9jb21wbGV0aW9uOgEqEokBChNDaGF0SW5wdXRDb21wbGV0aW9uEiYucHVibGljX2FwaS5DaGF0SW5wdXRDb21wbGV0aW9uUmVxdWVzdBonLnB1YmxpY19hcGkuQ2hhdElucHV0Q29tcGxldGlvblJlc3BvbnNlIiGC0+STAhsiFi9jaGF0LWlucHV0LWNvbXBsZXRpb246ASoSegoVUmVzb2x2ZUNvbXBsZXRpb25zUnBjEh4ucHVibGljX2FwaS5SZXNvbHZlQ29tcGxldGlvbnMaIC5wdWJsaWNfYXBpLkNvbXBsZXRpb25SZXNvbHV0aW9uIh+C0+STAhkiFC9yZXNvbHZlLWNvbXBsZXRpb25zOgEqEoABChFSZXNvbHZlU21hcnRQYXN0ZRIgLnB1YmxpY19hcGkuU21hcnRQYXN0ZVJlc29sdXRpb24aKC5wdWJsaWNfYXBpLlNtYXJ0UGFzdGVSZXNvbHV0aW9uUmVzcG9uc2UiH4LT5JMCGSIUL3Jlc29sdmUtc21hcnQtcGFzdGU6ASoSpQEKGlJlc29sdmVDaGF0SW5wdXRDb21wbGV0aW9uEikucHVibGljX2FwaS5DaGF0SW5wdXRDb21wbGV0aW9uUmVzb2x1dGlvbhoxLnB1YmxpY19hcGkuQ2hhdElucHV0Q29tcGxldGlvblJlc29sdXRpb25SZXNwb25zZSIpgtPkkwIjIh4vcmVzb2x2ZS1jaGF0LWlucHV0LWNvbXBsZXRpb246ASoSSwoERWRpdBIXLnB1YmxpY19hcGkuRWRpdFJlcXVlc3QaGC5wdWJsaWNfYXBpLkVkaXRSZXNwb25zZSIQgtPkkwIKIgUvZWRpdDoBKhJkCgtSZXNvbHZlRWRpdBIaLnB1YmxpY19hcGkuRWRpdFJlc29sdXRpb24aHy5wdWJsaWNfYXBpLlJlc29sdmVFZGl0UmVzcG9uc2UiGILT5JMCEiINL3Jlc29sdmUtZWRpdDoBKhKaAQoWT25ib2FyZGluZ1Nlc3Npb25FdmVudBInLnB1YmxpY19hcGkuT25ib2FyZGluZ1Nlc3Npb25FdmVudEJhdGNoGioucHVibGljX2FwaS5PbmJvYXJkaW5nU2Vzc2lvbkV2ZW50UmVzcG9uc2UiK4LT5JMCJSIgL3JlY29yZC1vbmJvYXJkaW5nLXNlc3Npb24tZXZlbnQ6ASoSggEKFlJlY29yZFByZWZlcmVuY2VTYW1wbGUSHC5wdWJsaWNfYXBpLlByZWZlcmVuY2VTYW1wbGUaJC5wdWJsaWNfYXBpLlByZWZlcmVuY2VTYW1wbGVSZXNwb25zZSIkgtPkkwIeIhkvcmVjb3JkLXByZWZlcmVuY2Utc2FtcGxlOgEqEmgKC0ZpbmRNaXNzaW5nEh4ucHVibGljX2FwaS5GaW5kTWlzc2luZ1JlcXVlc3QaHy5wdWJsaWNfYXBpLkZpbmRNaXNzaW5nUmVzcG9uc2UiGILT5JMCEiINL2ZpbmQtbWlzc2luZzoBKhKXAQoXTGlzdEV4dGVybmFsU291cmNlVHlwZXMSKi5wdWJsaWNfYXBpLkxpc3RFeHRlcm5hbFNvdXJjZVR5cGVzUmVxdWVzdBorLnB1YmxpY19hcGkuTGlzdEV4dGVybmFsU291cmNlVHlwZXNSZXNwb25zZSIjgtPkkwIdIhsvbGlzdC1leHRlcm5hbC1zb3VyY2UtdHlwZXMSkQEKFVNlYXJjaEV4dGVybmFsU291cmNlcxIoLnB1YmxpY19hcGkuU2VhcmNoRXh0ZXJuYWxTb3VyY2VzUmVxdWVzdBopLnB1YmxpY19hcGkuU2VhcmNoRXh0ZXJuYWxTb3VyY2VzUmVzcG9uc2UiI4LT5JMCHSIYL3NlYXJjaC1leHRlcm5hbC1zb3VyY2VzOgEqEqYBChpHZXRJbXBsaWNpdEV4dGVybmFsU291cmNlcxItLnB1YmxpY19hcGkuR2V0SW1wbGljaXRFeHRlcm5hbFNvdXJjZXNSZXF1ZXN0Gi4ucHVibGljX2FwaS5HZXRJbXBsaWNpdEV4dGVybmFsU291cmNlc1Jlc3BvbnNlIimC0+STAiMiHi9nZXQtaW1wbGljaXQtZXh0ZXJuYWwtc291cmNlczoBKhJdCglHZXRNb2RlbHMSHC5wdWJsaWNfYXBpLkdldE1vZGVsc1JlcXVlc3QaHS5wdWJsaWNfYXBpLkdldE1vZGVsc1Jlc3BvbnNlIhOC0+STAg0iCy9nZXQtbW9kZWxzEl4KCE1lbW9yaXplEhsucHVibGljX2FwaS5NZW1vcml6ZVJlcXVlc3QaHC5wdWJsaWNfYXBpLk1lbW9yaXplUmVzcG9uc2UiF4gCAYLT5JMCDiIJL21lbW9yaXplOgEqEmgKC1JlcG9ydEVycm9yEh4ucHVibGljX2FwaS5SZXBvcnRFcnJvclJlcXVlc3QaHy5wdWJsaWNfYXBpLlJlcG9ydEVycm9yUmVzcG9uc2UiGILT5JMCEiINL3JlcG9ydC1lcnJvcjoBKhJxCg1HZXRDcmVkaXRJbmZvEiAucHVibGljX2FwaS5HZXRDcmVkaXRJbmZvUmVxdWVzdBohLnB1YmxpY19hcGkuR2V0Q3JlZGl0SW5mb1Jlc3BvbnNlIhuC0+STAhUiEC9nZXQtY3JlZGl0LWluZm86ASoSfQoQR2V0Q29zdEFuYWx5dGljcxIjLnB1YmxpY19hcGkuR2V0Q29zdEFuYWx5dGljc1JlcXVlc3QaJC5wdWJsaWNfYXBpLkdldENvc3RBbmFseXRpY3NSZXNwb25zZSIegtPkkwIYIhMvZ2V0LWNvc3QtYW5hbHl0aWNzOgEqEoYBChJHZXRDb3N0QW5hbHl0aWNzVjISJS5wdWJsaWNfYXBpLkdldENvc3RBbmFseXRpY3NWMlJlcXVlc3QaJi5wdWJsaWNfYXBpLkdldENvc3RBbmFseXRpY3NWMlJlc3BvbnNlIiGC0+STAhsiFi9nZXQtY29zdC1hbmFseXRpY3MtdjI6ASoSiQEKE0dldE91dGNvbWVBbmFseXRpY3MSJi5wdWJsaWNfYXBpLkdldE91dGNvbWVBbmFseXRpY3NSZXF1ZXN0GicucHVibGljX2FwaS5HZXRPdXRjb21lQW5hbHl0aWNzUmVzcG9uc2UiIYLT5JMCGyIWL2dldC1vdXRjb21lLWFuYWx5dGljczoBKhJcCghMaXN0VGFncxIbLnB1YmxpY19hcGkuTGlzdFRhZ3NSZXF1ZXN0GhwucHVibGljX2FwaS5MaXN0VGFnc1Jlc3BvbnNlIhWC0+STAg8iCi9saXN0LXRhZ3M6ASoSiQEKE0dldFNlc3Npb25BbmFseXRpY3MSJi5wdWJsaWNfYXBpLkdldFNlc3Npb25BbmFseXRpY3NSZXF1ZXN0GicucHVibGljX2FwaS5HZXRTZXNzaW9uQW5hbHl0aWNzUmVzcG9uc2UiIYLT5JMCGyIWL2dldC1zZXNzaW9uLWFuYWx5dGljczoBKhJ5Cg9HZXRTZXNzaW9uVXNhZ2USIi5wdWJsaWNfYXBpLkdldFNlc3Npb25Vc2FnZVJlcXVlc3QaIy5wdWJsaWNfYXBpLkdldFNlc3Npb25Vc2FnZVJlc3BvbnNlIh2C0+STAhciEi9nZXQtc2Vzc2lvbi11c2FnZToBKhKBAQoRR2V0QmlsbGluZ1N1bW1hcnkSJC5wdWJsaWNfYXBpLkdldEJpbGxpbmdTdW1tYXJ5UmVxdWVzdBolLnB1YmxpY19hcGkuR2V0QmlsbGluZ1N1bW1hcnlSZXNwb25zZSIfgtPkkwIZIhQvZ2V0LWJpbGxpbmctc3VtbWFyeToBKhJ2ChNSZXBvcnRDbGllbnRNZXRyaWNzEiAucHVibGljX2FwaS5DbGllbnRNZXRyaWNzUmVxdWVzdBohLnB1YmxpY19hcGkuQ2xpZW50TWV0cmljc1Jlc3BvbnNlIhqC0+STAhQiDy9jbGllbnQtbWV0cmljczoBKhKJAQoTUmVwb3J0RmVhdHVyZVZlY3RvchImLnB1YmxpY19hcGkuUmVwb3J0RmVhdHVyZVZlY3RvclJlcXVlc3QaJy5wdWJsaWNfYXBpLlJlcG9ydEZlYXR1cmVWZWN0b3JSZXNwb25zZSIhgtPkkwIbIhYvcmVwb3J0LWZlYXR1cmUtdmVjdG9yOgEqEoEBChZTZW5kQ29tcGxldGlvbkZlZWRiYWNrEh4ucHVibGljX2FwaS5Db21wbGV0aW9uRmVlZGJhY2saJi5wdWJsaWNfYXBpLkNvbXBsZXRpb25GZWVkYmFja1Jlc3BvbnNlIh+C0+STAhkiFC9jb21wbGV0aW9uLWZlZWRiYWNrOgEqEmkKEFNlbmRDaGF0RmVlZGJhY2sSGC5wdWJsaWNfYXBpLkNoYXRGZWVkYmFjaxogLnB1YmxpY19hcGkuQ2hhdEZlZWRiYWNrUmVzcG9uc2UiGYLT5JMCEyIOL2NoYXQtZmVlZGJhY2s6ASoSogEKHFNlbmRDbGllbnRDb21wbGV0aW9uVGltZWxpbmUSKy5wdWJsaWNfYXBpLkNsaWVudENvbXBsZXRpb25UaW1lbGluZVJlcXVlc3QaLC5wdWJsaWNfYXBpLkNsaWVudENvbXBsZXRpb25UaW1lbGluZVJlc3BvbnNlIieC0+STAiEiHC9jbGllbnQtY29tcGxldGlvbi10aW1lbGluZXM6ASoSfgoQVXBzZXJ0VXNlclNlY3JldBIjLnB1YmxpY19hcGkuVXBzZXJ0VXNlclNlY3JldFJlcXVlc3QaJC5wdWJsaWNfYXBpLlVwc2VydFVzZXJTZWNyZXRSZXNwb25zZSIfgtPkkwIZIhQvdXNlci1zZWNyZXRzL3Vwc2VydDoBKhJyCg1HZXRVc2VyU2VjcmV0EiAucHVibGljX2FwaS5HZXRVc2VyU2VjcmV0UmVxdWVzdBohLnB1YmxpY19hcGkuR2V0VXNlclNlY3JldFJlc3BvbnNlIhyC0+STAhYiES91c2VyLXNlY3JldHMvZ2V0OgEqEm4KDEdldE1jcFNlY3JldBIfLnB1YmxpY19hcGkuR2V0TWNwU2VjcmV0UmVxdWVzdBogLnB1YmxpY19hcGkuR2V0TWNwU2VjcmV0UmVzcG9uc2UiG4LT5JMCFSIQL21jcC1zZWNyZXRzL2dldDoBKhJ5Cg9MaXN0VXNlclNlY3JldHMSIi5wdWJsaWNfYXBpLkxpc3RVc2VyU2VjcmV0c1JlcXVlc3QaIy5wdWJsaWNfYXBpLkxpc3RVc2VyU2VjcmV0c1Jlc3BvbnNlIh2C0+STAhciEi91c2VyLXNlY3JldHMvbGlzdDoBKhJ+ChBEZWxldGVVc2VyU2VjcmV0EiMucHVibGljX2FwaS5EZWxldGVVc2VyU2VjcmV0UmVxdWVzdBokLnB1YmxpY19hcGkuRGVsZXRlVXNlclNlY3JldFJlc3BvbnNlIh+C0+STAhkiFC91c2VyLXNlY3JldHMvZGVsZXRlOgEqEnsKDkdldFVzZXJTZWNyZXRzEiEucHVibGljX2FwaS5HZXRVc2VyU2VjcmV0c1JlcXVlc3QaIi5wdWJsaWNfYXBpLkdldFVzZXJTZWNyZXRzUmVzcG9uc2UiIoLT5JMCHCIXL3VzZXItc2VjcmV0cy9nZXQtYmF0Y2g6ASoSlwEKFk1pZ3JhdGVVc2VyU2VjcmV0U2NvcGUSKS5wdWJsaWNfYXBpLk1pZ3JhdGVVc2VyU2VjcmV0U2NvcGVSZXF1ZXN0GioucHVibGljX2FwaS5NaWdyYXRlVXNlclNlY3JldFNjb3BlUmVzcG9uc2UiJoLT5JMCICIbL3VzZXItc2VjcmV0cy9taWdyYXRlLXNjb3BlOgEqEn4KEFJlbmFtZVVzZXJTZWNyZXQSIy5wdWJsaWNfYXBpLlJlbmFtZVVzZXJTZWNyZXRSZXF1ZXN0GiQucHVibGljX2FwaS5SZW5hbWVVc2VyU2VjcmV0UmVzcG9uc2UiH4LT5JMCGSIUL3VzZXItc2VjcmV0cy9yZW5hbWU6ASoSegoPR2V0VGVuYW50U2VjcmV0EiIucHVibGljX2FwaS5HZXRUZW5hbnRTZWNyZXRSZXF1ZXN0GiMucHVibGljX2FwaS5HZXRUZW5hbnRTZWNyZXRSZXNwb25zZSIegtPkkwIYIhMvdGVuYW50LXNlY3JldHMvZ2V0OgEqEoMBChBHZXRUZW5hbnRTZWNyZXRzEiMucHVibGljX2FwaS5HZXRUZW5hbnRTZWNyZXRzUmVxdWVzdBokLnB1YmxpY19hcGkuR2V0VGVuYW50U2VjcmV0c1Jlc3BvbnNlIiSC0+STAh4iGS90ZW5hbnQtc2VjcmV0cy9nZXQtYmF0Y2g6ASoShgEKElVwc2VydFRlbmFudFNlY3JldBIlLnB1YmxpY19hcGkuVXBzZXJ0VGVuYW50U2VjcmV0UmVxdWVzdBomLnB1YmxpY19hcGkuVXBzZXJ0VGVuYW50U2VjcmV0UmVzcG9uc2UiIYLT5JMCGyIWL3RlbmFudC1zZWNyZXRzL3Vwc2VydDoBKhKBAQoRTGlzdFRlbmFudFNlY3JldHMSJC5wdWJsaWNfYXBpLkxpc3RUZW5hbnRTZWNyZXRzUmVxdWVzdBolLnB1YmxpY19hcGkuTGlzdFRlbmFudFNlY3JldHNSZXNwb25zZSIfgtPkkwIZIhQvdGVuYW50LXNlY3JldHMvbGlzdDoBKhKGAQoSRGVsZXRlVGVuYW50U2VjcmV0EiUucHVibGljX2FwaS5EZWxldGVUZW5hbnRTZWNyZXRSZXF1ZXN0GiYucHVibGljX2FwaS5EZWxldGVUZW5hbnRTZWNyZXRSZXNwb25zZSIhgtPkkwIbIhYvdGVuYW50LXNlY3JldHMvZGVsZXRlOgEqElwKCFNhdmVDaGF0EhsucHVibGljX2FwaS5TYXZlQ2hhdFJlcXVlc3QaHC5wdWJsaWNfYXBpLlNhdmVDaGF0UmVzcG9uc2UiFYLT5JMCDyIKL3NhdmUtY2hhdDoBKhKJAQoTUmVjb3JkUmVxdWVzdEV2ZW50cxImLnB1YmxpY19hcGkuUmVjb3JkUmVxdWVzdEV2ZW50c1JlcXVlc3QaJy5wdWJsaWNfYXBpLlJlY29yZFJlcXVlc3RFdmVudHNSZXNwb25zZSIhgtPkkwIbIhYvcmVjb3JkLXJlcXVlc3QtZXZlbnRzOgEqEokBChNSZWNvcmRTZXNzaW9uRXZlbnRzEiYucHVibGljX2FwaS5SZWNvcmRTZXNzaW9uRXZlbnRzUmVxdWVzdBonLnB1YmxpY19hcGkuUmVjb3JkU2Vzc2lvbkV2ZW50c1Jlc3BvbnNlIiGC0+STAhsiFi9yZWNvcmQtc2Vzc2lvbi1ldmVudHM6ASoSsgEKHVJlY29yZFBvc2VpZG9uQW5hbHl0aWNzRXZlbnRzEjAucHVibGljX2FwaS5SZWNvcmRQb3NlaWRvbkFuYWx5dGljc0V2ZW50c1JlcXVlc3QaMS5wdWJsaWNfYXBpLlJlY29yZFBvc2VpZG9uQW5hbHl0aWNzRXZlbnRzUmVzcG9uc2UiLILT5JMCJiIhL3JlY29yZC1wb3NlaWRvbi1hbmFseXRpY3MtZXZlbnRzOgEqEocBChFDb2RlYmFzZVJldHJpZXZhbBIkLnB1YmxpY19hcGkuQ29kZWJhc2VSZXRyaWV2YWxSZXF1ZXN0GiUucHVibGljX2FwaS5Db2RlYmFzZVJldHJpZXZhbFJlc3BvbnNlIiWC0+STAh8iGi9hZ2VudHMvY29kZWJhc2UtcmV0cmlldmFsOgEqEpQBChRDb2RlYmFzZVJldHJpZXZhbFJhdxInLnB1YmxpY19hcGkuQ29kZWJhc2VSZXRyaWV2YWxSYXdSZXF1ZXN0GigucHVibGljX2FwaS5Db2RlYmFzZVJldHJpZXZhbFJhd1Jlc3BvbnNlIimC0+STAiMiHi9hZ2VudHMvY29kZWJhc2UtcmV0cmlldmFsLXJhdzoBKhJjCghFZGl0RmlsZRIbLnB1YmxpY19hcGkuRWRpdEZpbGVSZXF1ZXN0GhwucHVibGljX2FwaS5FZGl0RmlsZVJlc3BvbnNlIhyC0+STAhYiES9hZ2VudHMvZWRpdC1maWxlOgEqEoABCg9MaXN0UmVtb3RlVG9vbHMSIi5wdWJsaWNfYXBpLkxpc3RSZW1vdGVUb29sc1JlcXVlc3QaIy5wdWJsaWNfYXBpLkxpc3RSZW1vdGVUb29sc1Jlc3BvbnNlIiSC0+STAh4iGS9hZ2VudHMvbGlzdC1yZW1vdGUtdG9vbHM6ASoSeAoNUnVuUmVtb3RlVG9vbBIgLnB1YmxpY19hcGkuUnVuUmVtb3RlVG9vbFJlcXVlc3QaIS5wdWJsaWNfYXBpLlJ1blJlbW90ZVRvb2xSZXNwb25zZSIigtPkkwIcIhcvYWdlbnRzL3J1bi1yZW1vdGUtdG9vbDoBKhKEAQoQUmV2b2tlVG9vbEFjY2VzcxIjLnB1YmxpY19hcGkuUmV2b2tlVG9vbEFjY2Vzc1JlcXVlc3QaJC5wdWJsaWNfYXBpLlJldm9rZVRvb2xBY2Nlc3NSZXNwb25zZSIlgtPkkwIfIhovYWdlbnRzL3Jldm9rZS10b29sLWFjY2VzczoBKhKMAQoSVGVzdFRvb2xDb25uZWN0aW9uEiUucHVibGljX2FwaS5UZXN0VG9vbENvbm5lY3Rpb25SZXF1ZXN0GiYucHVibGljX2FwaS5UZXN0VG9vbENvbm5lY3Rpb25SZXNwb25zZSIngtPkkwIhIhwvYWdlbnRzL3Rlc3QtdG9vbC1jb25uZWN0aW9uOgEqEoABCg9DaGVja1Rvb2xTYWZldHkSIi5wdWJsaWNfYXBpLkNoZWNrVG9vbFNhZmV0eVJlcXVlc3QaIy5wdWJsaWNfYXBpLkNoZWNrVG9vbFNhZmV0eVJlc3BvbnNlIiSC0+STAh4iGS9hZ2VudHMvY2hlY2stdG9vbC1zYWZldHk6ASoSggEKEUNyZWF0ZVJlbW90ZUFnZW50EiQucHVibGljX2FwaS5DcmVhdGVSZW1vdGVBZ2VudFJlcXVlc3QaJS5wdWJsaWNfYXBpLkNyZWF0ZVJlbW90ZUFnZW50UmVzcG9uc2UiIILT5JMCGiIVL3JlbW90ZS1hZ2VudHMvY3JlYXRlOgEqEoIBChFEZWxldGVSZW1vdGVBZ2VudBIkLnB1YmxpY19hcGkuRGVsZXRlUmVtb3RlQWdlbnRSZXF1ZXN0GiUucHVibGljX2FwaS5EZWxldGVSZW1vdGVBZ2VudFJlc3BvbnNlIiCC0+STAhoiFS9yZW1vdGUtYWdlbnRzL2RlbGV0ZToBKhJ9ChBMaXN0UmVtb3RlQWdlbnRzEiMucHVibGljX2FwaS5MaXN0UmVtb3RlQWdlbnRzUmVxdWVzdBokLnB1YmxpY19hcGkuTGlzdFJlbW90ZUFnZW50c1Jlc3BvbnNlIh6C0+STAhgiEy9yZW1vdGUtYWdlbnRzL2xpc3Q6ASoSmAEKFkxpc3RSZW1vdGVBZ2VudHNTdHJlYW0SKS5wdWJsaWNfYXBpLkxpc3RSZW1vdGVBZ2VudHNTdHJlYW1SZXF1ZXN0GioucHVibGljX2FwaS5MaXN0UmVtb3RlQWdlbnRzU3RyZWFtUmVzcG9uc2UiJYLT5JMCHyIaL3JlbW90ZS1hZ2VudHMvbGlzdC1zdHJlYW06ASowARKkAQoZR2V0UmVtb3RlQWdlbnRDaGF0SGlzdG9yeRIsLnB1YmxpY19hcGkuR2V0UmVtb3RlQWdlbnRDaGF0SGlzdG9yeVJlcXVlc3QaLS5wdWJsaWNfYXBpLkdldFJlbW90ZUFnZW50Q2hhdEhpc3RvcnlSZXNwb25zZSIqgtPkkwIkIh8vcmVtb3RlLWFnZW50cy9nZXQtY2hhdC1oaXN0b3J5OgEqErABChtHZXRSZW1vdGVBZ2VudEhpc3RvcnlTdHJlYW0SLi5wdWJsaWNfYXBpLkdldFJlbW90ZUFnZW50SGlzdG9yeVN0cmVhbVJlcXVlc3QaLy5wdWJsaWNfYXBpLkdldFJlbW90ZUFnZW50SGlzdG9yeVN0cmVhbVJlc3BvbnNlIi6C0+STAigiIy9yZW1vdGUtYWdlbnRzL2FnZW50LWhpc3Rvcnktc3RyZWFtOgEqMAESegoPUmVtb3RlQWdlbnRDaGF0EiIucHVibGljX2FwaS5SZW1vdGVBZ2VudENoYXRSZXF1ZXN0GiMucHVibGljX2FwaS5SZW1vdGVBZ2VudENoYXRSZXNwb25zZSIegtPkkwIYIhMvcmVtb3RlLWFnZW50cy9jaGF0OgEqEo4BChRJbnRlcnJ1cHRSZW1vdGVBZ2VudBInLnB1YmxpY19hcGkuSW50ZXJydXB0UmVtb3RlQWdlbnRSZXF1ZXN0GigucHVibGljX2FwaS5JbnRlcnJ1cHRSZW1vdGVBZ2VudFJlc3BvbnNlIiOC0+STAh0iGC9yZW1vdGUtYWdlbnRzL2ludGVycnVwdDoBKhKQAQoUUmVtb3RlQWdlbnRBZGRTU0hLZXkSJy5wdWJsaWNfYXBpLlJlbW90ZUFnZW50QWRkU1NIS2V5UmVxdWVzdBooLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRBZGRTU0hLZXlSZXNwb25zZSIlgtPkkwIfIhovcmVtb3RlLWFnZW50cy9hZGQtc3NoLWtleToBKhKVAQoYUmVtb3RlQWdlbnRXb3Jrc3BhY2VMb2dzEisucHVibGljX2FwaS5SZW1vdGVBZ2VudFdvcmtzcGFjZUxvZ3NSZXF1ZXN0GiwucHVibGljX2FwaS5SZW1vdGVBZ2VudFdvcmtzcGFjZUxvZ3NSZXNwb25zZSIegtPkkwIYIhMvcmVtb3RlLWFnZW50cy9sb2dzOgEqEn4KEFBhdXNlUmVtb3RlQWdlbnQSIy5wdWJsaWNfYXBpLlJlbW90ZUFnZW50UGF1c2VSZXF1ZXN0GiQucHVibGljX2FwaS5SZW1vdGVBZ2VudFBhdXNlUmVzcG9uc2UiH4LT5JMCGSIUL3JlbW90ZS1hZ2VudHMvcGF1c2U6ASoSggEKEVJlc3VtZVJlbW90ZUFnZW50EiQucHVibGljX2FwaS5SZW1vdGVBZ2VudFJlc3VtZVJlcXVlc3QaJS5wdWJsaWNfYXBpLlJlbW90ZUFnZW50UmVzdW1lUmVzcG9uc2UiIILT5JMCGiIVL3JlbW90ZS1hZ2VudHMvcmVzdW1lOgEqEpMBChVSZXN1bWVIaW50UmVtb3RlQWdlbnQSKC5wdWJsaWNfYXBpLlJlbW90ZUFnZW50UmVzdW1lSGludFJlcXVlc3QaKS5wdWJsaWNfYXBpLlJlbW90ZUFnZW50UmVzdW1lSGludFJlc3BvbnNlIiWC0+STAh8iGi9yZW1vdGUtYWdlbnRzL3Jlc3VtZS1oaW50OgEqEoIBChFVcGRhdGVSZW1vdGVBZ2VudBIkLnB1YmxpY19hcGkuVXBkYXRlUmVtb3RlQWdlbnRSZXF1ZXN0GiUucHVibGljX2FwaS5VcGRhdGVSZW1vdGVBZ2VudFJlc3BvbnNlIiCC0+STAhoiFS9yZW1vdGUtYWdlbnRzL3VwZGF0ZToBKhKGAQoNQ3JlYXRlVHJpZ2dlchIgLnB1YmxpY19hcGkuQ3JlYXRlVHJpZ2dlclJlcXVlc3QaIS5wdWJsaWNfYXBpLkNyZWF0ZVRyaWdnZXJSZXNwb25zZSIwgtPkkwIqIiUvcmVtb3RlLWFnZW50LWFjdGlvbnMvdHJpZ2dlcnMvY3JlYXRlOgEqEoEBCgxMaXN0VHJpZ2dlcnMSHy5wdWJsaWNfYXBpLkxpc3RUcmlnZ2Vyc1JlcXVlc3QaIC5wdWJsaWNfYXBpLkxpc3RUcmlnZ2Vyc1Jlc3BvbnNlIi6C0+STAigiIy9yZW1vdGUtYWdlbnQtYWN0aW9ucy90cmlnZ2Vycy9saXN0OgEqEoYBCg1VcGRhdGVUcmlnZ2VyEiAucHVibGljX2FwaS5VcGRhdGVUcmlnZ2VyUmVxdWVzdBohLnB1YmxpY19hcGkuVXBkYXRlVHJpZ2dlclJlc3BvbnNlIjCC0+STAioiJS9yZW1vdGUtYWdlbnQtYWN0aW9ucy90cmlnZ2Vycy91cGRhdGU6ASoShgEKDURlbGV0ZVRyaWdnZXISIC5wdWJsaWNfYXBpLkRlbGV0ZVRyaWdnZXJSZXF1ZXN0GiEucHVibGljX2FwaS5EZWxldGVUcmlnZ2VyUmVzcG9uc2UiMILT5JMCKiIlL3JlbW90ZS1hZ2VudC1hY3Rpb25zL3RyaWdnZXJzL2RlbGV0ZToBKhKfAQoUR2V0VHJpZ2dlckV4ZWN1dGlvbnMSJy5wdWJsaWNfYXBpLkdldFRyaWdnZXJFeGVjdXRpb25zUmVxdWVzdBooLnB1YmxpY19hcGkuR2V0VHJpZ2dlckV4ZWN1dGlvbnNSZXNwb25zZSI0gtPkkwIuIikvcmVtb3RlLWFnZW50LWFjdGlvbnMvdHJpZ2dlcnMvZXhlY3V0aW9uczoBKhKjAQoTR2V0TWF0Y2hpbmdFbnRpdGllcxImLnB1YmxpY19hcGkuR2V0TWF0Y2hpbmdFbnRpdGllc1JlcXVlc3QaJy5wdWJsaWNfYXBpLkdldE1hdGNoaW5nRW50aXRpZXNSZXNwb25zZSI7gtPkkwI1IjAvcmVtb3RlLWFnZW50LWFjdGlvbnMvdHJpZ2dlcnMvbWF0Y2hpbmctZW50aXRpZXM6ASoSjgEKDURpc21pc3NFbnRpdHkSIC5wdWJsaWNfYXBpLkRpc21pc3NFbnRpdHlSZXF1ZXN0GiEucHVibGljX2FwaS5EaXNtaXNzRW50aXR5UmVzcG9uc2UiOILT5JMCMiItL3JlbW90ZS1hZ2VudC1hY3Rpb25zL3RyaWdnZXJzL2Rpc21pc3MtZW50aXR5OgEqEqsBChZFeGVjdXRlVHJpZ2dlck1hbnVhbGx5EikucHVibGljX2FwaS5FeGVjdXRlVHJpZ2dlck1hbnVhbGx5UmVxdWVzdBoqLnB1YmxpY19hcGkuRXhlY3V0ZVRyaWdnZXJNYW51YWxseVJlc3BvbnNlIjqC0+STAjQiLy9yZW1vdGUtYWdlbnQtYWN0aW9ucy90cmlnZ2Vycy9leGVjdXRlLW1hbnVhbGx5OgEqEpoBChJFeGVjdXRlTWFudWFsQWdlbnQSJS5wdWJsaWNfYXBpLkV4ZWN1dGVNYW51YWxBZ2VudFJlcXVlc3QaJi5wdWJsaWNfYXBpLkV4ZWN1dGVNYW51YWxBZ2VudFJlc3BvbnNlIjWC0+STAi8iKi9yZW1vdGUtYWdlbnQtYWN0aW9ucy9leGVjdXRlLW1hbnVhbC1hZ2VudDoBKhKSAQoQR2V0RW50aXR5RGV0YWlscxIjLnB1YmxpY19hcGkuR2V0RW50aXR5RGV0YWlsc1JlcXVlc3QaJC5wdWJsaWNfYXBpLkdldEVudGl0eURldGFpbHNSZXNwb25zZSIzgtPkkwItIigvcmVtb3RlLWFnZW50LWFjdGlvbnMvZ2V0LWVudGl0eS1kZXRhaWxzOgEqEpkBChRMaXN0UHVsbFJlcXVlc3RGaWxlcxInLnB1YmxpY19hcGkuTGlzdFB1bGxSZXF1ZXN0RmlsZXNSZXF1ZXN0GigucHVibGljX2FwaS5MaXN0UHVsbFJlcXVlc3RGaWxlc1Jlc3BvbnNlIi6C0+STAigiIy9yZW1vdGUtYWdlbnQtYWN0aW9ucy9saXN0LXByLWZpbGVzOgEqEqcBChpSZW1vdGVBZ2VudEdlbmVyYXRlU3VtbWFyeRItLnB1YmxpY19hcGkuUmVtb3RlQWdlbnRHZW5lcmF0ZVN1bW1hcnlSZXF1ZXN0Gi4ucHVibGljX2FwaS5SZW1vdGVBZ2VudEdlbmVyYXRlU3VtbWFyeVJlc3BvbnNlIiqC0+STAiQiHy9yZW1vdGUtYWdlbnRzL2dlbmVyYXRlLXN1bW1hcnk6ASoSpAEKFkxpc3RHaXRodWJTZXR1cFNjcmlwdHMSKS5wdWJsaWNfYXBpLkxpc3RHaXRodWJTZXR1cFNjcmlwdHNSZXF1ZXN0GioucHVibGljX2FwaS5MaXN0R2l0aHViU2V0dXBTY3JpcHRzUmVzcG9uc2UiM4LT5JMCLSIoL3JlbW90ZS1hZ2VudHMvbGlzdC1naXRodWItc2V0dXAtc2NyaXB0czoBKhKgAQoVUmVhZEdpdGh1YlNldHVwU2NyaXB0EigucHVibGljX2FwaS5SZWFkR2l0aHViU2V0dXBTY3JpcHRSZXF1ZXN0GikucHVibGljX2FwaS5SZWFkR2l0aHViU2V0dXBTY3JpcHRSZXNwb25zZSIygtPkkwIsIicvcmVtb3RlLWFnZW50cy9yZWFkLWdpdGh1Yi1zZXR1cC1zY3JpcHQ6ASoSpgEKGkFnZW50V29ya3NwYWNlUmVwb3J0U3RhdHVzEi0ucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZVJlcG9ydFN0YXR1c1JlcXVlc3QaLi5wdWJsaWNfYXBpLkFnZW50V29ya3NwYWNlUmVwb3J0U3RhdHVzUmVzcG9uc2UiKYLT5JMCIyIeL2FnZW50LXdvcmtzcGFjZS9yZXBvcnQtc3RhdHVzOgEqErsBCh9BZ2VudFdvcmtzcGFjZVJlcG9ydENoYXRIaXN0b3J5EjIucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZVJlcG9ydENoYXRIaXN0b3J5UmVxdWVzdBozLnB1YmxpY19hcGkuQWdlbnRXb3Jrc3BhY2VSZXBvcnRDaGF0SGlzdG9yeVJlc3BvbnNlIi+C0+STAikiJC9hZ2VudC13b3Jrc3BhY2UvcmVwb3J0LWNoYXQtaGlzdG9yeToBKhKeAQoYQWdlbnRXb3Jrc3BhY2VQb2xsVXBkYXRlEisucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZVBvbGxVcGRhdGVSZXF1ZXN0GiwucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZVBvbGxVcGRhdGVSZXNwb25zZSIngtPkkwIhIhwvYWdlbnQtd29ya3NwYWNlL3BvbGwtdXBkYXRlOgEqEo8BChRBZ2VudFdvcmtzcGFjZVN0cmVhbRInLnB1YmxpY19hcGkuQWdlbnRXb3Jrc3BhY2VTdHJlYW1SZXF1ZXN0GigucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZVN0cmVhbVJlc3BvbnNlIiKC0+STAhwiFy9hZ2VudC13b3Jrc3BhY2Uvc3RyZWFtOgEqMAESwwEKIkFnZW50V29ya3NwYWNlUmVwb3J0TGFzdFNlcXVlbmNlSWQSNS5wdWJsaWNfYXBpLkFnZW50V29ya3NwYWNlUmVwb3J0TGFzdFNlcXVlbmNlSWRSZXF1ZXN0GjYucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZVJlcG9ydExhc3RTZXF1ZW5jZUlkUmVzcG9uc2UiLoLT5JMCKCIjL2FnZW50LXdvcmtzcGFjZS9yZXBvcnQtbGFzdC1zZXEtaWQ6ASoStwEKH0FnZW50V29ya3NwYWNlR2V0TGFzdFNlcXVlbmNlSWQSMi5wdWJsaWNfYXBpLkFnZW50V29ya3NwYWNlR2V0TGFzdFNlcXVlbmNlSWRSZXF1ZXN0GjMucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZUdldExhc3RTZXF1ZW5jZUlkUmVzcG9uc2UiK4LT5JMCJSIgL2FnZW50LXdvcmtzcGFjZS9nZXQtbGFzdC1zZXEtaWQ6ASoSswEKHUFnZW50V29ya3NwYWNlUmVwb3J0U2V0dXBMb2dzEjAucHVibGljX2FwaS5BZ2VudFdvcmtzcGFjZVJlcG9ydFNldHVwTG9nc1JlcXVlc3QaMS5wdWJsaWNfYXBpLkFnZW50V29ya3NwYWNlUmVwb3J0U2V0dXBMb2dzUmVzcG9uc2UiLYLT5JMCJyIiL2FnZW50LXdvcmtzcGFjZS9yZXBvcnQtc2V0dXAtbG9nczoBKhJ7Cg9MaXN0Q2hhdEhpc3RvcnkSIi5wdWJsaWNfYXBpLkxpc3RDaGF0SGlzdG9yeVJlcXVlc3QaIy5wdWJsaWNfYXBpLkxpc3RDaGF0SGlzdG9yeVJlc3BvbnNlIh+C0+STAhkiFC9jaGF0L2V4Y2hhbmdlcy9saXN0OgEqEn8KEENvdW50Q2hhdEhpc3RvcnkSIy5wdWJsaWNfYXBpLkNvdW50Q2hhdEhpc3RvcnlSZXF1ZXN0GiQucHVibGljX2FwaS5Db3VudENoYXRIaXN0b3J5UmVzcG9uc2UiIILT5JMCGiIVL2NoYXQvZXhjaGFuZ2VzL2NvdW50OgEqEoMBChFJbnNlcnRDaGF0SGlzdG9yeRIkLnB1YmxpY19hcGkuSW5zZXJ0Q2hhdEhpc3RvcnlSZXF1ZXN0GiUucHVibGljX2FwaS5JbnNlcnRDaGF0SGlzdG9yeVJlc3BvbnNlIiGC0+STAhsiFi9jaGF0L2V4Y2hhbmdlcy9pbnNlcnQ6ASoSfQoPQ3JlYXRlV29ya3NwYWNlEiIucHVibGljX2FwaS5DcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0GiMucHVibGljX2FwaS5DcmVhdGVXb3Jrc3BhY2VSZXNwb25zZSIhgtPkkwIbIhYvY2hhdC93b3Jrc3BhY2UvY3JlYXRlOgEqEn0KD1VwZGF0ZVdvcmtzcGFjZRIiLnB1YmxpY19hcGkuVXBkYXRlV29ya3NwYWNlUmVxdWVzdBojLnB1YmxpY19hcGkuVXBkYXRlV29ya3NwYWNlUmVzcG9uc2UiIYLT5JMCGyIWL2NoYXQvd29ya3NwYWNlL3VwZGF0ZToBKhJ4Cg5MaXN0V29ya3NwYWNlcxIhLnB1YmxpY19hcGkuTGlzdFdvcmtzcGFjZXNSZXF1ZXN0GiIucHVibGljX2FwaS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIh+C0+STAhkiFC9jaGF0L3dvcmtzcGFjZS9saXN0OgEqEokBChJDcmVhdGVDb252ZXJzYXRpb24SJS5wdWJsaWNfYXBpLkNyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3QaJi5wdWJsaWNfYXBpLkNyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlIiSC0+STAh4iGS9jaGF0L2NvbnZlcnNhdGlvbi9jcmVhdGU6ASoSiQEKElVwZGF0ZUNvbnZlcnNhdGlvbhIlLnB1YmxpY19hcGkuVXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdBomLnB1YmxpY19hcGkuVXBkYXRlQ29udmVyc2F0aW9uUmVzcG9uc2UiJILT5JMCHiIZL2NoYXQvY29udmVyc2F0aW9uL3VwZGF0ZToBKhJ9Cg9HZXRDb252ZXJzYXRpb24SIi5wdWJsaWNfYXBpLkdldENvbnZlcnNhdGlvblJlcXVlc3QaIy5wdWJsaWNfYXBpLkdldENvbnZlcnNhdGlvblJlc3BvbnNlIiGC0+STAhsiFi9jaGF0L2NvbnZlcnNhdGlvbi9nZXQ6ASoShAEKEUxpc3RDb252ZXJzYXRpb25zEiQucHVibGljX2FwaS5MaXN0Q29udmVyc2F0aW9uc1JlcXVlc3QaJS5wdWJsaWNfYXBpLkxpc3RDb252ZXJzYXRpb25zUmVzcG9uc2UiIoLT5JMCHCIXL2NoYXQvY29udmVyc2F0aW9uL2xpc3Q6ASoStQEKI0xpc3RHaXRodWJSZXBvc0ZvckF1dGhlbnRpY2F0ZWRVc2VyEjYucHVibGljX2FwaS5MaXN0R2l0aHViUmVwb3NGb3JBdXRoZW50aWNhdGVkVXNlclJlcXVlc3QaNy5wdWJsaWNfYXBpLkxpc3RHaXRodWJSZXBvc0ZvckF1dGhlbnRpY2F0ZWRVc2VyUmVzcG9uc2UiHYLT5JMCFyISL2dpdGh1Yi9saXN0LXJlcG9zOgEqEpEBChZMaXN0R2l0aHViUmVwb0JyYW5jaGVzEikucHVibGljX2FwaS5MaXN0R2l0aHViUmVwb0JyYW5jaGVzUmVxdWVzdBoqLnB1YmxpY19hcGkuTGlzdEdpdGh1YlJlcG9CcmFuY2hlc1Jlc3BvbnNlIiCC0+STAhoiFS9naXRodWIvbGlzdC1icmFuY2hlczoBKhJxCg1HZXRHaXRodWJSZXBvEiAucHVibGljX2FwaS5HZXRHaXRodWJSZXBvUmVxdWVzdBohLnB1YmxpY19hcGkuR2V0R2l0aHViUmVwb1Jlc3BvbnNlIhuC0+STAhUiEC9naXRodWIvZ2V0LXJlcG86ASoSlgEKFklzVXNlckdpdGh1YkNvbmZpZ3VyZWQSKS5wdWJsaWNfYXBpLklzVXNlckdpdGh1YkNvbmZpZ3VyZWRSZXF1ZXN0GioucHVibGljX2FwaS5Jc1VzZXJHaXRodWJDb25maWd1cmVkUmVzcG9uc2UiJYLT5JMCHyIaL2dpdGh1Yi9pcy11c2VyLWNvbmZpZ3VyZWQ6ASoSiAEKEUNyZWF0ZVB1bGxSZXF1ZXN0EiQucHVibGljX2FwaS5DcmVhdGVQdWxsUmVxdWVzdFJlcXVlc3QaJS5wdWJsaWNfYXBpLkNyZWF0ZVB1bGxSZXF1ZXN0UmVzcG9uc2UiJoLT5JMCICIbL2dpdGh1Yi9jcmVhdGUtcHVsbC1yZXF1ZXN0OgEqEq8BChxSZWdpc3RlckluZGV4ZWRDb21taXRCbG9ic2V0Ei8ucHVibGljX2FwaS5SZWdpc3RlckluZGV4ZWRDb21taXRCbG9ic2V0UmVxdWVzdBowLnB1YmxpY19hcGkuUmVnaXN0ZXJJbmRleGVkQ29tbWl0QmxvYnNldFJlc3BvbnNlIiyC0+STAiYiIS9pbmRleGVkLWNvbW1pdHMvcmVnaXN0ZXItYmxvYnNldDoBKhK2AQodR2V0TGF0ZXN0SW5kZXhlZENvbW1pdEJsb2JzZXQSMC5wdWJsaWNfYXBpLkdldExhdGVzdEluZGV4ZWRDb21taXRCbG9ic2V0UmVxdWVzdBoxLnB1YmxpY19hcGkuR2V0TGF0ZXN0SW5kZXhlZENvbW1pdEJsb2JzZXRSZXNwb25zZSIugtPkkwIoIiMvaW5kZXhlZC1jb21taXRzL2dldC1sYXRlc3QtYmxvYnNldDoBKjABEoUBChNHZXRTdWJzY3JpcHRpb25JbmZvEiYucHVibGljX2FwaS5HZXRTdWJzY3JpcHRpb25JbmZvUmVxdWVzdBonLnB1YmxpY19hcGkuR2V0U3Vic2NyaXB0aW9uSW5mb1Jlc3BvbnNlIh2C0+STAhciEi9zdWJzY3JpcHRpb24taW5mbzoBKhKNAQoVR2V0U3Vic2NyaXB0aW9uQmFubmVyEigucHVibGljX2FwaS5HZXRTdWJzY3JpcHRpb25CYW5uZXJSZXF1ZXN0GikucHVibGljX2FwaS5HZXRTdWJzY3JpcHRpb25CYW5uZXJSZXNwb25zZSIfgtPkkwIZIhQvc3Vic2NyaXB0aW9uLWJhbm5lcjoBKhKaAQoXUmV2b2tlQ3VycmVudFVzZXJUb2tlbnMSKi5wdWJsaWNfYXBpLlJldm9rZUN1cnJlbnRVc2VyVG9rZW5zUmVxdWVzdBorLnB1YmxpY19hcGkuUmV2b2tlQ3VycmVudFVzZXJUb2tlbnNSZXNwb25zZSImgtPkkwIgIhsvcmV2b2tlLWN1cnJlbnQtdXNlci10b2tlbnM6ASoSgAEKEVJlYWROb3RpZmljYXRpb25zEiQucHVibGljX2FwaS5SZWFkTm90aWZpY2F0aW9uc1JlcXVlc3QaJS5wdWJsaWNfYXBpLlJlYWROb3RpZmljYXRpb25zUmVzcG9uc2UiHoLT5JMCGCITL25vdGlmaWNhdGlvbnMvcmVhZDoBKhKXAQoWTWFya05vdGlmaWNhdGlvbkFzUmVhZBIpLnB1YmxpY19hcGkuTWFya05vdGlmaWNhdGlvbkFzUmVhZFJlcXVlc3QaKi5wdWJsaWNfYXBpLk1hcmtOb3RpZmljYXRpb25Bc1JlYWRSZXNwb25zZSImgtPkkwIgIhsvbm90aWZpY2F0aW9ucy9tYXJrLWFzLXJlYWQ6ASoSlwEKE0FjdGlvbnNTZXRVc2VyU3RhdGUSJi5wdWJsaWNfYXBpLkFjdGlvbnNTZXRVc2VyU3RhdGVSZXF1ZXN0GicucHVibGljX2FwaS5BY3Rpb25zU2V0VXNlclN0YXRlUmVzcG9uc2UiL4LT5JMCKSIkL3JlbW90ZS1hZ2VudC1hY3Rpb25zL3VzZXItc3RhdGUvc2V0OgEqEpcBChNBY3Rpb25zR2V0VXNlclN0YXRlEiYucHVibGljX2FwaS5BY3Rpb25zR2V0VXNlclN0YXRlUmVxdWVzdBonLnB1YmxpY19hcGkuQWN0aW9uc0dldFVzZXJTdGF0ZVJlc3BvbnNlIi+C0+STAikiJC9yZW1vdGUtYWdlbnQtYWN0aW9ucy91c2VyLXN0YXRlL2dldDoBKhKnAQoYR2V0VGVuYW50VG9vbFBlcm1pc3Npb25zEisucHVibGljX2FwaS5HZXRUZW5hbnRUb29sUGVybWlzc2lvbnNSZXF1ZXN0GiwucHVibGljX2FwaS5HZXRUZW5hbnRUb29sUGVybWlzc2lvbnNSZXNwb25zZSIwgtPkkwIqIiUvc2V0dGluZ3MvZ2V0LXRlbmFudC10b29sLXBlcm1pc3Npb25zOgEqEpMBChNHZXRNY3BUZW5hbnRDb25maWdzEiYucHVibGljX2FwaS5HZXRNY3BUZW5hbnRDb25maWdzUmVxdWVzdBonLnB1YmxpY19hcGkuR2V0TWNwVGVuYW50Q29uZmlnc1Jlc3BvbnNlIiuC0+STAiUiIC9zZXR0aW5ncy9nZXQtbWNwLXRlbmFudC1jb25maWdzOgEqEosBChFHZXRNY3BVc2VyQ29uZmlncxIkLnB1YmxpY19hcGkuR2V0TWNwVXNlckNvbmZpZ3NSZXF1ZXN0GiUucHVibGljX2FwaS5HZXRNY3BVc2VyQ29uZmlnc1Jlc3BvbnNlIimC0+STAiMiHi9zZXR0aW5ncy9nZXQtbWNwLXVzZXItY29uZmlnczoBKhKbAQoVR2V0TWNwQ2F0YWxvZ01ldGFkYXRhEigucHVibGljX2FwaS5HZXRNY3BDYXRhbG9nTWV0YWRhdGFSZXF1ZXN0GikucHVibGljX2FwaS5HZXRNY3BDYXRhbG9nTWV0YWRhdGFSZXNwb25zZSItgtPkkwInIiIvc2V0dGluZ3MvZ2V0LW1jcC1jYXRhbG9nLW1ldGFkYXRhOgEqEogBChBHZXRNY3BDb25maWdCeUlkEiMucHVibGljX2FwaS5HZXRNY3BDb25maWdCeUlkUmVxdWVzdBokLnB1YmxpY19hcGkuR2V0TWNwQ29uZmlnQnlJZFJlc3BvbnNlIimC0+STAiMiHi9zZXR0aW5ncy9nZXQtbWNwLWNvbmZpZy1ieS1pZDoBKhKPAQoSR2V0TWNwVXNlclNldHRpbmdzEiUucHVibGljX2FwaS5HZXRNY3BVc2VyU2V0dGluZ3NSZXF1ZXN0GiYucHVibGljX2FwaS5HZXRNY3BVc2VyU2V0dGluZ3NSZXNwb25zZSIqgtPkkwIkIh8vc2V0dGluZ3MvZ2V0LW1jcC11c2VyLXNldHRpbmdzOgEqEpcBChRHZXRNY3BUZW5hbnRTZXR0aW5ncxInLnB1YmxpY19hcGkuR2V0TWNwVGVuYW50U2V0dGluZ3NSZXF1ZXN0GigucHVibGljX2FwaS5HZXRNY3BUZW5hbnRTZXR0aW5nc1Jlc3BvbnNlIiyC0+STAiYiIS9zZXR0aW5ncy9nZXQtbWNwLXRlbmFudC1zZXR0aW5nczoBKhKjAQoXR2V0UG9zZWlkb25Vc2VyU2V0dGluZ3MSKi5wdWJsaWNfYXBpLkdldFBvc2VpZG9uVXNlclNldHRpbmdzUmVxdWVzdBorLnB1YmxpY19hcGkuR2V0UG9zZWlkb25Vc2VyU2V0dGluZ3NSZXNwb25zZSIvgtPkkwIpIiQvc2V0dGluZ3MvZ2V0LXBvc2VpZG9uLXVzZXItc2V0dGluZ3M6ASoSrwEKGlVwZGF0ZVBvc2VpZG9uVXNlclNldHRpbmdzEi0ucHVibGljX2FwaS5VcGRhdGVQb3NlaWRvblVzZXJTZXR0aW5nc1JlcXVlc3QaLi5wdWJsaWNfYXBpLlVwZGF0ZVBvc2VpZG9uVXNlclNldHRpbmdzUmVzcG9uc2UiMoLT5JMCLCInL3NldHRpbmdzL3VwZGF0ZS1wb3NlaWRvbi11c2VyLXNldHRpbmdzOgEqEo4BChJQaW5Qb3NlaWRvblNlc3Npb24SJS5wdWJsaWNfYXBpLlBpblBvc2VpZG9uU2Vzc2lvblJlcXVlc3QaJi5wdWJsaWNfYXBpLlBpblBvc2VpZG9uU2Vzc2lvblJlc3BvbnNlIimC0+STAiMiHi9zZXR0aW5ncy9waW4tcG9zZWlkb24tc2Vzc2lvbjoBKhKWAQoUVW5waW5Qb3NlaWRvblNlc3Npb24SJy5wdWJsaWNfYXBpLlVucGluUG9zZWlkb25TZXNzaW9uUmVxdWVzdBooLnB1YmxpY19hcGkuVW5waW5Qb3NlaWRvblNlc3Npb25SZXNwb25zZSIrgtPkkwIlIiAvc2V0dGluZ3MvdW5waW4tcG9zZWlkb24tc2Vzc2lvbjoBKhKrAQoZR2V0UG9zZWlkb25UZW5hbnRTZXR0aW5ncxIsLnB1YmxpY19hcGkuR2V0UG9zZWlkb25UZW5hbnRTZXR0aW5nc1JlcXVlc3QaLS5wdWJsaWNfYXBpLkdldFBvc2VpZG9uVGVuYW50U2V0dGluZ3NSZXNwb25zZSIxgtPkkwIrIiYvc2V0dGluZ3MvZ2V0LXBvc2VpZG9uLXRlbmFudC1zZXR0aW5nczoBKhK3AQocVXBkYXRlUG9zZWlkb25UZW5hbnRTZXR0aW5ncxIvLnB1YmxpY19hcGkuVXBkYXRlUG9zZWlkb25UZW5hbnRTZXR0aW5nc1JlcXVlc3QaMC5wdWJsaWNfYXBpLlVwZGF0ZVBvc2VpZG9uVGVuYW50U2V0dGluZ3NSZXNwb25zZSI0gtPkkwIuIikvc2V0dGluZ3MvdXBkYXRlLXBvc2VpZG9uLXRlbmFudC1zZXR0aW5nczoBKhKTAQoTVXBzZXJ0TWNwVXNlckNvbmZpZxImLnB1YmxpY19hcGkuVXBzZXJ0TWNwVXNlckNvbmZpZ1JlcXVlc3QaJy5wdWJsaWNfYXBpLlVwc2VydE1jcFVzZXJDb25maWdSZXNwb25zZSIrgtPkkwIlIiAvc2V0dGluZ3MvdXBzZXJ0LW1jcC11c2VyLWNvbmZpZzoBKhKbAQoVVXBzZXJ0TWNwVGVuYW50Q29uZmlnEigucHVibGljX2FwaS5VcHNlcnRNY3BUZW5hbnRDb25maWdSZXF1ZXN0GikucHVibGljX2FwaS5VcHNlcnRNY3BUZW5hbnRDb25maWdSZXNwb25zZSItgtPkkwInIiIvc2V0dGluZ3MvdXBzZXJ0LW1jcC10ZW5hbnQtY29uZmlnOgEqEpMBChNSZW1vdmVNY3BVc2VyQ29uZmlnEiYucHVibGljX2FwaS5SZW1vdmVNY3BVc2VyQ29uZmlnUmVxdWVzdBonLnB1YmxpY19hcGkuUmVtb3ZlTWNwVXNlckNvbmZpZ1Jlc3BvbnNlIiuC0+STAiUiIC9zZXR0aW5ncy9yZW1vdmUtbWNwLXVzZXItY29uZmlnOgEqEpsBChVSZW1vdmVNY3BUZW5hbnRDb25maWcSKC5wdWJsaWNfYXBpLlJlbW92ZU1jcFRlbmFudENvbmZpZ1JlcXVlc3QaKS5wdWJsaWNfYXBpLlJlbW92ZU1jcFRlbmFudENvbmZpZ1Jlc3BvbnNlIi2C0+STAiciIi9zZXR0aW5ncy9yZW1vdmUtbWNwLXRlbmFudC1jb25maWc6ASoSigEKEUxpc3RBZ2VudFBlcnNvbmFzEiQucHVibGljX2FwaS5MaXN0QWdlbnRQZXJzb25hc1JlcXVlc3QaJS5wdWJsaWNfYXBpLkxpc3RBZ2VudFBlcnNvbmFzUmVzcG9uc2UiKILT5JMCIiIdL2FnZW50LXBlcnNvbmFzL2xpc3QtcGVyc29uYXM6ASoSggEKD0dldEFnZW50UGVyc29uYRIiLnB1YmxpY19hcGkuR2V0QWdlbnRQZXJzb25hUmVxdWVzdBojLnB1YmxpY19hcGkuR2V0QWdlbnRQZXJzb25hUmVzcG9uc2UiJoLT5JMCICIbL2FnZW50LXBlcnNvbmFzL2dldC1wZXJzb25hOgEqEpoBChVMaXN0QWdlbnRDYXBhYmlsaXRpZXMSKC5wdWJsaWNfYXBpLkxpc3RBZ2VudENhcGFiaWxpdGllc1JlcXVlc3QaKS5wdWJsaWNfYXBpLkxpc3RBZ2VudENhcGFiaWxpdGllc1Jlc3BvbnNlIiyC0+STAiYiIS9hZ2VudC1wZXJzb25hcy9saXN0LWNhcGFiaWxpdGllczoBKhKXAQoWQ2xvdWRBZ2VudHNDcmVhdGVBZ2VudBIpLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNDcmVhdGVBZ2VudFJlcXVlc3QaKi5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzQ3JlYXRlQWdlbnRSZXNwb25zZSImgtPkkwIgIhsvY2xvdWQtYWdlbnRzL2FnZW50cy9jcmVhdGU6ASoSiwEKE0Nsb3VkQWdlbnRzR2V0QWdlbnQSJi5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzR2V0QWdlbnRSZXF1ZXN0GicucHVibGljX2FwaS5DbG91ZEFnZW50c0dldEFnZW50UmVzcG9uc2UiI4LT5JMCHSIYL2Nsb3VkLWFnZW50cy9hZ2VudHMvZ2V0OgEqEp0BChZDbG91ZEFnZW50c1NlbmRNZXNzYWdlEikucHVibGljX2FwaS5DbG91ZEFnZW50c1NlbmRNZXNzYWdlUmVxdWVzdBoqLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNTZW5kTWVzc2FnZVJlc3BvbnNlIiyC0+STAiYiIS9jbG91ZC1hZ2VudHMvYWdlbnRzL3NlbmQtbWVzc2FnZToBKhKdAQoWQ2xvdWRBZ2VudHNHZXRNZXNzYWdlcxIpLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNHZXRNZXNzYWdlc1JlcXVlc3QaKi5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzR2V0TWVzc2FnZXNSZXNwb25zZSIsgtPkkwImIiEvY2xvdWQtYWdlbnRzL2FnZW50cy9nZXQtbWVzc2FnZXM6ASoSuAEKHENsb3VkQWdlbnRzR2V0TWVzc2FnZXNTdHJlYW0SLy5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzR2V0TWVzc2FnZXNTdHJlYW1SZXF1ZXN0GjAucHVibGljX2FwaS5DbG91ZEFnZW50c0dldE1lc3NhZ2VzU3RyZWFtUmVzcG9uc2UiM4LT5JMCLSIoL2Nsb3VkLWFnZW50cy9hZ2VudHMvZ2V0LW1lc3NhZ2VzLXN0cmVhbToBKjABEpcBChZDbG91ZEFnZW50c1JlbmFtZUFnZW50EikucHVibGljX2FwaS5DbG91ZEFnZW50c1JlbmFtZUFnZW50UmVxdWVzdBoqLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNSZW5hbWVBZ2VudFJlc3BvbnNlIiaC0+STAiAiGy9jbG91ZC1hZ2VudHMvYWdlbnRzL3JlbmFtZToBKhLFAQohQ2xvdWRBZ2VudHNVcGRhdGVBZ2VudFNlc3Npb25UYWdzEjQucHVibGljX2FwaS5DbG91ZEFnZW50c1VwZGF0ZUFnZW50U2Vzc2lvblRhZ3NSZXF1ZXN0GjUucHVibGljX2FwaS5DbG91ZEFnZW50c1VwZGF0ZUFnZW50U2Vzc2lvblRhZ3NSZXNwb25zZSIzgtPkkwItIigvY2xvdWQtYWdlbnRzL2FnZW50cy91cGRhdGUtc2Vzc2lvbi10YWdzOgEqEpcBChZDbG91ZEFnZW50c0RlbGV0ZUFnZW50EikucHVibGljX2FwaS5DbG91ZEFnZW50c0RlbGV0ZUFnZW50UmVxdWVzdBoqLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNEZWxldGVBZ2VudFJlc3BvbnNlIiaC0+STAiAiGy9jbG91ZC1hZ2VudHMvYWdlbnRzL2RlbGV0ZToBKhKbAQoXQ2xvdWRBZ2VudHNBcmNoaXZlQWdlbnQSKi5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzQXJjaGl2ZUFnZW50UmVxdWVzdBorLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNBcmNoaXZlQWdlbnRSZXNwb25zZSIngtPkkwIhIhwvY2xvdWQtYWdlbnRzL2FnZW50cy9hcmNoaXZlOgEqEqMBChlDbG91ZEFnZW50c1VuYXJjaGl2ZUFnZW50EiwucHVibGljX2FwaS5DbG91ZEFnZW50c1VuYXJjaGl2ZUFnZW50UmVxdWVzdBotLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNVbmFyY2hpdmVBZ2VudFJlc3BvbnNlIimC0+STAiMiHi9jbG91ZC1hZ2VudHMvYWdlbnRzL3VuYXJjaGl2ZToBKhLHAQogQ2xvdWRBZ2VudHNCYXRjaEdldE1lc3NhZ2VDb3VudHMSMy5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzQmF0Y2hHZXRNZXNzYWdlQ291bnRzUmVxdWVzdBo0LnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNCYXRjaEdldE1lc3NhZ2VDb3VudHNSZXNwb25zZSI4gtPkkwIyIi0vY2xvdWQtYWdlbnRzL2FnZW50cy9iYXRjaC1nZXQtbWVzc2FnZS1jb3VudHM6ASoSxgEKIENsb3VkQWdlbnRzUmVmcmVzaEdpdENyZWRlbnRpYWxzEjMucHVibGljX2FwaS5DbG91ZEFnZW50c1JlZnJlc2hHaXRDcmVkZW50aWFsc1JlcXVlc3QaNC5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzUmVmcmVzaEdpdENyZWRlbnRpYWxzUmVzcG9uc2UiN4LT5JMCMSIsL2Nsb3VkLWFnZW50cy9hZ2VudHMvcmVmcmVzaC1naXQtY3JlZGVudGlhbHM6ASoSsgEKG0Nsb3VkQWdlbnRzUmVxdWVzdE1jcFNlcnZlchIuLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNSZXF1ZXN0TWNwU2VydmVyUmVxdWVzdBovLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNSZXF1ZXN0TWNwU2VydmVyUmVzcG9uc2UiMoLT5JMCLCInL2Nsb3VkLWFnZW50cy9hZ2VudHMvcmVxdWVzdC1tY3Atc2VydmVyOgEqErYBChxDbG91ZEFnZW50c0hhbmRvZmZUb1Bvc2VpZG9uEi8ucHVibGljX2FwaS5DbG91ZEFnZW50c0hhbmRvZmZUb1Bvc2VpZG9uUmVxdWVzdBowLnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNIYW5kb2ZmVG9Qb3NlaWRvblJlc3BvbnNlIjOC0+STAi0iKC9jbG91ZC1hZ2VudHMvYWdlbnRzL2hhbmRvZmYtdG8tcG9zZWlkb246ASoSnwEKGENsb3VkRXhwZXJ0c0NyZWF0ZUV4cGVydBIrLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzQ3JlYXRlRXhwZXJ0UmVxdWVzdBosLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzQ3JlYXRlRXhwZXJ0UmVzcG9uc2UiKILT5JMCIiIdL2Nsb3VkLWV4cGVydHMvZXhwZXJ0cy9jcmVhdGU6ASoSkwEKFUNsb3VkRXhwZXJ0c0dldEV4cGVydBIoLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzR2V0RXhwZXJ0UmVxdWVzdBopLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzR2V0RXhwZXJ0UmVzcG9uc2UiJYLT5JMCHyIaL2Nsb3VkLWV4cGVydHMvZXhwZXJ0cy9nZXQ6ASoSnwEKGENsb3VkRXhwZXJ0c1VwZGF0ZUV4cGVydBIrLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzVXBkYXRlRXhwZXJ0UmVxdWVzdBosLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzVXBkYXRlRXhwZXJ0UmVzcG9uc2UiKILT5JMCIiIdL2Nsb3VkLWV4cGVydHMvZXhwZXJ0cy91cGRhdGU6ASoSnwEKGENsb3VkRXhwZXJ0c0RlbGV0ZUV4cGVydBIrLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzRGVsZXRlRXhwZXJ0UmVxdWVzdBosLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzRGVsZXRlRXhwZXJ0UmVzcG9uc2UiKILT5JMCIiIdL2Nsb3VkLWV4cGVydHMvZXhwZXJ0cy9kZWxldGU6ASoSmgEKF0Nsb3VkRXhwZXJ0c0xpc3RFeHBlcnRzEioucHVibGljX2FwaS5DbG91ZEV4cGVydHNMaXN0RXhwZXJ0c1JlcXVlc3QaKy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0c0xpc3RFeHBlcnRzUmVzcG9uc2UiJoLT5JMCICIbL2Nsb3VkLWV4cGVydHMvZXhwZXJ0cy9saXN0OgEqEsABCiBDbG91ZEV4cGVydHNMaXN0RXhwZXJ0c1dpdGhVc2FnZRIzLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzTGlzdEV4cGVydHNXaXRoVXNhZ2VSZXF1ZXN0GjQucHVibGljX2FwaS5DbG91ZEV4cGVydHNMaXN0RXhwZXJ0c1dpdGhVc2FnZVJlc3BvbnNlIjGC0+STAisiJi9jbG91ZC1leHBlcnRzL2V4cGVydHMvbGlzdC13aXRoLXVzYWdlOgEqEqYBChhDbG91ZEV4cGVydHNMaXN0VmVyc2lvbnMSKy5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0c0xpc3RWZXJzaW9uc1JlcXVlc3QaLC5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0c0xpc3RWZXJzaW9uc1Jlc3BvbnNlIi+C0+STAikiJC9jbG91ZC1leHBlcnRzL2V4cGVydHMvdmVyc2lvbnMvbGlzdDoBKhKfAQoWQ2xvdWRFeHBlcnRzR2V0VmVyc2lvbhIpLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzR2V0VmVyc2lvblJlcXVlc3QaKi5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0c0dldFZlcnNpb25SZXNwb25zZSIugtPkkwIoIiMvY2xvdWQtZXhwZXJ0cy9leHBlcnRzL3ZlcnNpb25zL2dldDoBKhKjAQoZQ2xvdWRFeHBlcnRzUmVzdG9yZUV4cGVydBIsLnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzUmVzdG9yZUV4cGVydFJlcXVlc3QaLS5wdWJsaWNfYXBpLkNsb3VkRXhwZXJ0c1Jlc3RvcmVFeHBlcnRSZXNwb25zZSIpgtPkkwIjIh4vY2xvdWQtZXhwZXJ0cy9leHBlcnRzL3Jlc3RvcmU6ASoSwAEKIUNsb3VkRXhwZXJ0c0NyZWF0ZUFnZW50RnJvbUV4cGVydBI0LnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzQ3JlYXRlQWdlbnRGcm9tRXhwZXJ0UmVxdWVzdBo1LnB1YmxpY19hcGkuQ2xvdWRFeHBlcnRzQ3JlYXRlQWdlbnRGcm9tRXhwZXJ0UmVzcG9uc2UiLoLT5JMCKCIjL2Nsb3VkLWV4cGVydHMvZXhwZXJ0cy9jcmVhdGUtYWdlbnQ6ASoSigEKFENsb3VkRmxlZXRHZXRDYXRhbG9nEiUud2ViX3JwY19wcm94eS5HZXRGbGVldENhdGFsb2dSZXF1ZXN0GiYud2ViX3JwY19wcm94eS5HZXRGbGVldENhdGFsb2dSZXNwb25zZSIjgtPkkwIdIhgvY2xvdWQtZmxlZXQvY2F0YWxvZy9nZXQ6ASoSiwEKD0Nsb3VkRmxlZXRBcHBseRIkLndlYl9ycGNfcHJveHkuQXBwbHlGbGVldEZsb3dSZXF1ZXN0GiUud2ViX3JwY19wcm94eS5BcHBseUZsZWV0Rmxvd1Jlc3BvbnNlIiuC0+STAiUiIC9jbG91ZC1mbGVldC9pbnN0YWxsYXRpb25zL2FwcGx5OgEqEoMBCg1DbG91ZEZsZWV0QXJtEiIud2ViX3JwY19wcm94eS5Bcm1GbGVldEZsb3dSZXF1ZXN0GiMud2ViX3JwY19wcm94eS5Bcm1GbGVldEZsb3dSZXNwb25zZSIpgtPkkwIjIh4vY2xvdWQtZmxlZXQvaW5zdGFsbGF0aW9ucy9hcm06ASoSnwEKFENsb3VkRmxlZXREZWFjdGl2YXRlEikud2ViX3JwY19wcm94eS5EZWFjdGl2YXRlRmxlZXRGbG93UmVxdWVzdBoqLndlYl9ycGNfcHJveHkuRGVhY3RpdmF0ZUZsZWV0Rmxvd1Jlc3BvbnNlIjCC0+STAioiJS9jbG91ZC1mbGVldC9pbnN0YWxsYXRpb25zL2RlYWN0aXZhdGU6ASoSmwEKE0Nsb3VkRmxlZXRVbmluc3RhbGwSKC53ZWJfcnBjX3Byb3h5LlVuaW5zdGFsbEZsZWV0Rmxvd1JlcXVlc3QaKS53ZWJfcnBjX3Byb3h5LlVuaW5zdGFsbEZsZWV0Rmxvd1Jlc3BvbnNlIi+C0+STAikiJC9jbG91ZC1mbGVldC9pbnN0YWxsYXRpb25zL3VuaW5zdGFsbDoBKhKbAQoTQ2xvdWRGbGVldENvbmZpZ3VyZRIoLndlYl9ycGNfcHJveHkuQ29uZmlndXJlRmxlZXRGbG93UmVxdWVzdBopLndlYl9ycGNfcHJveHkuQ29uZmlndXJlRmxlZXRGbG93UmVzcG9uc2UiL4LT5JMCKSIkL2Nsb3VkLWZsZWV0L2luc3RhbGxhdGlvbnMvY29uZmlndXJlOgEqEo8BChBDbG91ZEZsZWV0UmVwYWlyEiUud2ViX3JwY19wcm94eS5SZXBhaXJGbGVldEZsb3dSZXF1ZXN0GiYud2ViX3JwY19wcm94eS5SZXBhaXJGbGVldEZsb3dSZXNwb25zZSIsgtPkkwImIiEvY2xvdWQtZmxlZXQvaW5zdGFsbGF0aW9ucy9yZXBhaXI6ASoSqAEKFkNsb3VkRmxlZXRHZXRMaWZlY3ljbGUSKy53ZWJfcnBjX3Byb3h5LkdldEZsZWV0Rmxvd0xpZmVjeWNsZVJlcXVlc3QaLC53ZWJfcnBjX3Byb3h5LkdldEZsZWV0Rmxvd0xpZmVjeWNsZVJlc3BvbnNlIjOC0+STAi0iKC9jbG91ZC1mbGVldC9pbnN0YWxsYXRpb25zL2xpZmVjeWNsZS9nZXQ6ASoSpgEKG0Nsb3VkRmxlZXRMaXN0SW5zdGFsbGF0aW9ucxIsLndlYl9ycGNfcHJveHkuTGlzdEZsZWV0SW5zdGFsbGF0aW9uc1JlcXVlc3QaLS53ZWJfcnBjX3Byb3h5Lkxpc3RGbGVldEluc3RhbGxhdGlvbnNSZXNwb25zZSIqgtPkkwIkIh8vY2xvdWQtZmxlZXQvaW5zdGFsbGF0aW9ucy9saXN0OgEqEsgBCiJDbG91ZEZsZWV0R2V0Q29uZmlndXJhdGlvbkRvY3VtZW50EjMud2ViX3JwY19wcm94eS5HZXRGbGVldENvbmZpZ3VyYXRpb25Eb2N1bWVudFJlcXVlc3QaNC53ZWJfcnBjX3Byb3h5LkdldEZsZWV0Q29uZmlndXJhdGlvbkRvY3VtZW50UmVzcG9uc2UiN4LT5JMCMSIsL2Nsb3VkLWZsZWV0L2luc3RhbGxhdGlvbnMvY29uZmlndXJhdGlvbi9nZXQ6ASoSrwEKHENsb3VkUmVzaWRlbnRzQ3JlYXRlUmVzaWRlbnQSLy5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRzQ3JlYXRlUmVzaWRlbnRSZXF1ZXN0GjAucHVibGljX2FwaS5DbG91ZFJlc2lkZW50c0NyZWF0ZVJlc2lkZW50UmVzcG9uc2UiLILT5JMCJiIhL2Nsb3VkLXJlc2lkZW50cy9yZXNpZGVudHMvY3JlYXRlOgEqEqMBChlDbG91ZFJlc2lkZW50c0dldFJlc2lkZW50EiwucHVibGljX2FwaS5DbG91ZFJlc2lkZW50c0dldFJlc2lkZW50UmVxdWVzdBotLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNHZXRSZXNpZGVudFJlc3BvbnNlIimC0+STAiMiHi9jbG91ZC1yZXNpZGVudHMvcmVzaWRlbnRzL2dldDoBKhKvAQocQ2xvdWRSZXNpZGVudHNVcGRhdGVSZXNpZGVudBIvLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNVcGRhdGVSZXNpZGVudFJlcXVlc3QaMC5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRzVXBkYXRlUmVzaWRlbnRSZXNwb25zZSIsgtPkkwImIiEvY2xvdWQtcmVzaWRlbnRzL3Jlc2lkZW50cy91cGRhdGU6ASoS1QEKJUNsb3VkUmVzaWRlbnRzU2V0UmVzaWRlbnRUZW5hbnRBY2Nlc3MSOC5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRzU2V0UmVzaWRlbnRUZW5hbnRBY2Nlc3NSZXF1ZXN0GjkucHVibGljX2FwaS5DbG91ZFJlc2lkZW50c1NldFJlc2lkZW50VGVuYW50QWNjZXNzUmVzcG9uc2UiN4LT5JMCMSIsL2Nsb3VkLXJlc2lkZW50cy9yZXNpZGVudHMvc2V0LXRlbmFudC1hY2Nlc3M6ASoSrwEKHENsb3VkUmVzaWRlbnRzRGVsZXRlUmVzaWRlbnQSLy5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRzRGVsZXRlUmVzaWRlbnRSZXF1ZXN0GjAucHVibGljX2FwaS5DbG91ZFJlc2lkZW50c0RlbGV0ZVJlc2lkZW50UmVzcG9uc2UiLILT5JMCJiIhL2Nsb3VkLXJlc2lkZW50cy9yZXNpZGVudHMvZGVsZXRlOgEqEqoBChtDbG91ZFJlc2lkZW50c0xpc3RSZXNpZGVudHMSLi5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRzTGlzdFJlc2lkZW50c1JlcXVlc3QaLy5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRzTGlzdFJlc2lkZW50c1Jlc3BvbnNlIiqC0+STAiQiHy9jbG91ZC1yZXNpZGVudHMvcmVzaWRlbnRzL2xpc3Q6ASoSqwEKG0Nsb3VkUmVzaWRlbnRzU3RhcnRSZXNpZGVudBIuLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNTdGFydFJlc2lkZW50UmVxdWVzdBovLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNTdGFydFJlc2lkZW50UmVzcG9uc2UiK4LT5JMCJSIgL2Nsb3VkLXJlc2lkZW50cy9yZXNpZGVudHMvc3RhcnQ6ASoSpwEKGkNsb3VkUmVzaWRlbnRzU3RvcFJlc2lkZW50Ei0ucHVibGljX2FwaS5DbG91ZFJlc2lkZW50c1N0b3BSZXNpZGVudFJlcXVlc3QaLi5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRzU3RvcFJlc2lkZW50UmVzcG9uc2UiKoLT5JMCJCIfL2Nsb3VkLXJlc2lkZW50cy9yZXNpZGVudHMvc3RvcDoBKhKwAQoaQ2xvdWRSZXNpZGVudHNMaXN0U2Vzc2lvbnMSLS5wdWJsaWNfYXBpLkNsb3VkUmVzaWRlbnRzTGlzdFNlc3Npb25zUmVxdWVzdBouLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNMaXN0U2Vzc2lvbnNSZXNwb25zZSIzgtPkkwItIigvY2xvdWQtcmVzaWRlbnRzL3Jlc2lkZW50cy9zZXNzaW9ucy9saXN0OgEqErABChpDbG91ZFJlc2lkZW50c0xpc3RWZXJzaW9ucxItLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNMaXN0VmVyc2lvbnNSZXF1ZXN0Gi4ucHVibGljX2FwaS5DbG91ZFJlc2lkZW50c0xpc3RWZXJzaW9uc1Jlc3BvbnNlIjOC0+STAi0iKC9jbG91ZC1yZXNpZGVudHMvcmVzaWRlbnRzL3ZlcnNpb25zL2xpc3Q6ASoSqQEKGENsb3VkUmVzaWRlbnRzR2V0VmVyc2lvbhIrLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNHZXRWZXJzaW9uUmVxdWVzdBosLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNHZXRWZXJzaW9uUmVzcG9uc2UiMoLT5JMCLCInL2Nsb3VkLXJlc2lkZW50cy9yZXNpZGVudHMvdmVyc2lvbnMvZ2V0OgEqErMBCh1DbG91ZFJlc2lkZW50c1Jlc3RvcmVSZXNpZGVudBIwLnB1YmxpY19hcGkuQ2xvdWRSZXNpZGVudHNSZXN0b3JlUmVzaWRlbnRSZXF1ZXN0GjEucHVibGljX2FwaS5DbG91ZFJlc2lkZW50c1Jlc3RvcmVSZXNpZGVudFJlc3BvbnNlIi2C0+STAiciIi9jbG91ZC1yZXNpZGVudHMvcmVzaWRlbnRzL3Jlc3RvcmU6ASoSwgEKIUNsb3VkRW52aXJvbm1lbnRzTGlzdEVudmlyb25tZW50cxI0LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNMaXN0RW52aXJvbm1lbnRzUmVxdWVzdBo1LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNMaXN0RW52aXJvbm1lbnRzUmVzcG9uc2UiMILT5JMCKiIlL2Nsb3VkLWVudmlyb25tZW50cy9lbnZpcm9ubWVudHMvbGlzdDoBKhK7AQofQ2xvdWRFbnZpcm9ubWVudHNHZXRFbnZpcm9ubWVudBIyLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNHZXRFbnZpcm9ubWVudFJlcXVlc3QaMy5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzR2V0RW52aXJvbm1lbnRSZXNwb25zZSIvgtPkkwIpIiQvY2xvdWQtZW52aXJvbm1lbnRzL2Vudmlyb25tZW50cy9nZXQ6ASoS7gEKIENsb3VkRW52aXJvbm1lbnRzQ3JlYXRlQmFzZUltYWdlEjMucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0NyZWF0ZUJhc2VJbWFnZVJlcXVlc3QaNC5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzQ3JlYXRlQmFzZUltYWdlUmVzcG9uc2UiX4LT5JMCWSImL2Nsb3VkLWVudmlyb25tZW50cy9iYXNlLWltYWdlcy9jcmVhdGU6ASpaLCInL2Nsb3VkLWVudmlyb25tZW50cy9lbnZpcm9ubWVudHMvY3JlYXRlOgEqEokCCiVDbG91ZEVudmlyb25tZW50c1N0YXJ0QmFzZUltYWdlQ3JlYXRlEjgucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c1N0YXJ0QmFzZUltYWdlQ3JlYXRlUmVxdWVzdBo5LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZUNyZWF0ZVJlc3BvbnNlImuC0+STAmUiLC9jbG91ZC1lbnZpcm9ubWVudHMvYmFzZS1pbWFnZXMvY3JlYXRlL3N0YXJ0OgEqWjIiLS9jbG91ZC1lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRzL2NyZWF0ZS9zdGFydDoBKhLuAQogQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVCYXNlSW1hZ2USMy5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzVXBkYXRlQmFzZUltYWdlUmVxdWVzdBo0LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVCYXNlSW1hZ2VSZXNwb25zZSJfgtPkkwJZIiYvY2xvdWQtZW52aXJvbm1lbnRzL2Jhc2UtaW1hZ2VzL3VwZGF0ZToBKlosIicvY2xvdWQtZW52aXJvbm1lbnRzL2Vudmlyb25tZW50cy91cGRhdGU6ASoS7gEKIENsb3VkRW52aXJvbm1lbnRzRGVsZXRlQmFzZUltYWdlEjMucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0RlbGV0ZUJhc2VJbWFnZVJlcXVlc3QaNC5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzRGVsZXRlQmFzZUltYWdlUmVzcG9uc2UiX4LT5JMCWSImL2Nsb3VkLWVudmlyb25tZW50cy9iYXNlLWltYWdlcy9kZWxldGU6ASpaLCInL2Nsb3VkLWVudmlyb25tZW50cy9lbnZpcm9ubWVudHMvZGVsZXRlOgEqEvMBCiFDbG91ZEVudmlyb25tZW50c1Jlc3RvcmVCYXNlSW1hZ2USNC5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzUmVzdG9yZUJhc2VJbWFnZVJlcXVlc3QaNS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzUmVzdG9yZUJhc2VJbWFnZVJlc3BvbnNlImGC0+STAlsiJy9jbG91ZC1lbnZpcm9ubWVudHMvYmFzZS1pbWFnZXMvcmVzdG9yZToBKlotIigvY2xvdWQtZW52aXJvbm1lbnRzL2Vudmlyb25tZW50cy9yZXN0b3JlOgEqEvMBCh1DbG91ZEVudmlyb25tZW50c0xpc3RWZXJzaW9ucxIwLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNMaXN0VmVyc2lvbnNSZXF1ZXN0GjEucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0xpc3RWZXJzaW9uc1Jlc3BvbnNlIm2C0+STAmciLS9jbG91ZC1lbnZpcm9ubWVudHMvYmFzZS1pbWFnZXMvdmVyc2lvbnMvbGlzdDoBKlozIi4vY2xvdWQtZW52aXJvbm1lbnRzL2Vudmlyb25tZW50cy92ZXJzaW9ucy9saXN0OgEqEusBChtDbG91ZEVudmlyb25tZW50c0dldFZlcnNpb24SLi5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzR2V0VmVyc2lvblJlcXVlc3QaLy5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzR2V0VmVyc2lvblJlc3BvbnNlImuC0+STAmUiLC9jbG91ZC1lbnZpcm9ubWVudHMvYmFzZS1pbWFnZXMvdmVyc2lvbnMvZ2V0OgEqWjIiLS9jbG91ZC1lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRzL3ZlcnNpb25zL2dldDoBKhLRAQokQ2xvdWRFbnZpcm9ubWVudHNMaXN0QmFzZUltYWdlQnVpbGRzEjcucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0xpc3RCYXNlSW1hZ2VCdWlsZHNSZXF1ZXN0GjgucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0xpc3RCYXNlSW1hZ2VCdWlsZHNSZXNwb25zZSI2gtPkkwIwIisvY2xvdWQtZW52aXJvbm1lbnRzL2Jhc2UtaW1hZ2VzL2J1aWxkcy9saXN0OgEqEv0BCiNDbG91ZEVudmlyb25tZW50c0R1cGxpY2F0ZUJhc2VJbWFnZRI2LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNEdXBsaWNhdGVCYXNlSW1hZ2VSZXF1ZXN0GjcucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0R1cGxpY2F0ZUJhc2VJbWFnZVJlc3BvbnNlImWC0+STAl8iKS9jbG91ZC1lbnZpcm9ubWVudHMvYmFzZS1pbWFnZXMvZHVwbGljYXRlOgEqWi8iKi9jbG91ZC1lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRzL2R1cGxpY2F0ZToBKhLzAQohQ2xvdWRFbnZpcm9ubWVudHNSZWZyZXNoQmFzZUltYWdlEjQucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c1JlZnJlc2hCYXNlSW1hZ2VSZXF1ZXN0GjUucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c1JlZnJlc2hCYXNlSW1hZ2VSZXNwb25zZSJhgtPkkwJbIicvY2xvdWQtZW52aXJvbm1lbnRzL2Jhc2UtaW1hZ2VzL3JlZnJlc2g6ASpaLSIoL2Nsb3VkLWVudmlyb25tZW50cy9lbnZpcm9ubWVudHMvcmVmcmVzaDoBKhL9AQofQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVTbmFwc2hvdBIyLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVTbmFwc2hvdFJlcXVlc3QaMy5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzVXBkYXRlU25hcHNob3RSZXNwb25zZSJxgtPkkwJrIi8vY2xvdWQtZW52aXJvbm1lbnRzL2Jhc2UtaW1hZ2VzL3VwZGF0ZS1zbmFwc2hvdDoBKlo1IjAvY2xvdWQtZW52aXJvbm1lbnRzL2Vudmlyb25tZW50cy91cGRhdGUtc25hcHNob3Q6ASoS9gEKLUNsb3VkRW52aXJvbm1lbnRzU3RhcnRCYXNlSW1hZ2VTbmFwc2hvdFVwZGF0ZRJALnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVNuYXBzaG90VXBkYXRlUmVxdWVzdBpBLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVNuYXBzaG90VXBkYXRlUmVzcG9uc2UiQILT5JMCOiI1L2Nsb3VkLWVudmlyb25tZW50cy9iYXNlLWltYWdlcy91cGRhdGUtc25hcHNob3Qvc3RhcnQ6ASoS8wEKIUNsb3VkRW52aXJvbm1lbnRzUmVidWlsZEJhc2VJbWFnZRI0LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNSZWJ1aWxkQmFzZUltYWdlUmVxdWVzdBo1LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNSZWJ1aWxkQmFzZUltYWdlUmVzcG9uc2UiYYLT5JMCWyInL2Nsb3VkLWVudmlyb25tZW50cy9iYXNlLWltYWdlcy9yZWJ1aWxkOgEqWi0iKC9jbG91ZC1lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRzL3JlYnVpbGQ6ASoS2QEKJkNsb3VkRW52aXJvbm1lbnRzU3RhcnRCYXNlSW1hZ2VSZWJ1aWxkEjkucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c1N0YXJ0QmFzZUltYWdlUmVidWlsZFJlcXVlc3QaOi5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzU3RhcnRCYXNlSW1hZ2VSZWJ1aWxkUmVzcG9uc2UiOILT5JMCMiItL2Nsb3VkLWVudmlyb25tZW50cy9iYXNlLWltYWdlcy9yZWJ1aWxkL3N0YXJ0OgEqEtkBCiZDbG91ZEVudmlyb25tZW50c1N0YXJ0QmFzZUltYWdlUmVmcmVzaBI5LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVJlZnJlc2hSZXF1ZXN0GjoucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c1N0YXJ0QmFzZUltYWdlUmVmcmVzaFJlc3BvbnNlIjiC0+STAjIiLS9jbG91ZC1lbnZpcm9ubWVudHMvYmFzZS1pbWFnZXMvcmVmcmVzaC9zdGFydDoBKhKMAgoyQ2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVJlcG9zaXRvcnlSZWNvbmNpbGUSRS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzU3RhcnRCYXNlSW1hZ2VSZXBvc2l0b3J5UmVjb25jaWxlUmVxdWVzdBpGLnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNTdGFydEJhc2VJbWFnZVJlcG9zaXRvcnlSZWNvbmNpbGVSZXNwb25zZSJHgtPkkwJBIjwvY2xvdWQtZW52aXJvbm1lbnRzL2Jhc2UtaW1hZ2VzL3JlcG9zaXRvcmllcy9yZWNvbmNpbGUvc3RhcnQ6ASoSswEKHUNsb3VkRW52aXJvbm1lbnRzR2V0T3BlcmF0aW9uEjAucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0dldE9wZXJhdGlvblJlcXVlc3QaMS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzR2V0T3BlcmF0aW9uUmVzcG9uc2UiLYLT5JMCJyIiL2Nsb3VkLWVudmlyb25tZW50cy9vcGVyYXRpb25zL2dldDoBKhLMAQojQ2xvdWRFbnZpcm9ubWVudHNHZXRBY3RpdmVPcGVyYXRpb24SNi5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzR2V0QWN0aXZlT3BlcmF0aW9uUmVxdWVzdBo3LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNHZXRBY3RpdmVPcGVyYXRpb25SZXNwb25zZSI0gtPkkwIuIikvY2xvdWQtZW52aXJvbm1lbnRzL29wZXJhdGlvbnMvYWN0aXZlL2dldDoBKhK/AQogQ2xvdWRFbnZpcm9ubWVudHNDYW5jZWxPcGVyYXRpb24SMy5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzQ2FuY2VsT3BlcmF0aW9uUmVxdWVzdBo0LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNDYW5jZWxPcGVyYXRpb25SZXNwb25zZSIwgtPkkwIqIiUvY2xvdWQtZW52aXJvbm1lbnRzL29wZXJhdGlvbnMvY2FuY2VsOgEqEsABCiVDbG91ZEVudmlyb25tZW50c0xpc3RTYW5kYm94UHJvdmlkZXJzEjgucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBo5LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNMaXN0U2FuZGJveFByb3ZpZGVyc1Jlc3BvbnNlIiKC0+STAhwiFy9zYW5kYm94LXByb3ZpZGVycy9saXN0OgEqErkBCiNDbG91ZEVudmlyb25tZW50c0dldFNhbmRib3hQcm92aWRlchI2LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNHZXRTYW5kYm94UHJvdmlkZXJSZXF1ZXN0GjcucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0dldFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGC0+STAhsiFi9zYW5kYm94LXByb3ZpZGVycy9nZXQ6ASoSxQEKJkNsb3VkRW52aXJvbm1lbnRzQ3JlYXRlU2FuZGJveFByb3ZpZGVyEjkucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0NyZWF0ZVNhbmRib3hQcm92aWRlclJlcXVlc3QaOi5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzQ3JlYXRlU2FuZGJveFByb3ZpZGVyUmVzcG9uc2UiJILT5JMCHiIZL3NhbmRib3gtcHJvdmlkZXJzL2NyZWF0ZToBKhLFAQomQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVTYW5kYm94UHJvdmlkZXISOS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzVXBkYXRlU2FuZGJveFByb3ZpZGVyUmVxdWVzdBo6LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVTYW5kYm94UHJvdmlkZXJSZXNwb25zZSIkgtPkkwIeIhkvc2FuZGJveC1wcm92aWRlcnMvdXBkYXRlOgEqEsUBCiZDbG91ZEVudmlyb25tZW50c0RlbGV0ZVNhbmRib3hQcm92aWRlchI5LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNEZWxldGVTYW5kYm94UHJvdmlkZXJSZXF1ZXN0GjoucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0RlbGV0ZVNhbmRib3hQcm92aWRlclJlc3BvbnNlIiSC0+STAh4iGS9zYW5kYm94LXByb3ZpZGVycy9kZWxldGU6ASoSyQEKJ0Nsb3VkRW52aXJvbm1lbnRzUmVzdG9yZVNhbmRib3hQcm92aWRlchI6LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNSZXN0b3JlU2FuZGJveFByb3ZpZGVyUmVxdWVzdBo7LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNSZXN0b3JlU2FuZGJveFByb3ZpZGVyUmVzcG9uc2UiJYLT5JMCHyIaL3NhbmRib3gtcHJvdmlkZXJzL3Jlc3RvcmU6ASoSvQEKIUNsb3VkRW52aXJvbm1lbnRzQ3JlYXRlRGFlbW9uUG9vbBI0LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNDcmVhdGVEYWVtb25Qb29sUmVxdWVzdBo1LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNDcmVhdGVEYWVtb25Qb29sUmVzcG9uc2UiK4LT5JMCJSIgL2Nsb3VkLWVudmlyb25tZW50cy9wb29scy9jcmVhdGU6ASoSvQEKIUNsb3VkRW52aXJvbm1lbnRzVXBkYXRlRGFlbW9uUG9vbBI0LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVEYWVtb25Qb29sUmVxdWVzdBo1LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNVcGRhdGVEYWVtb25Qb29sUmVzcG9uc2UiK4LT5JMCJSIgL2Nsb3VkLWVudmlyb25tZW50cy9wb29scy91cGRhdGU6ASoSvQEKIUNsb3VkRW52aXJvbm1lbnRzRGVsZXRlRGFlbW9uUG9vbBI0LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNEZWxldGVEYWVtb25Qb29sUmVxdWVzdBo1LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNEZWxldGVEYWVtb25Qb29sUmVzcG9uc2UiK4LT5JMCJSIgL2Nsb3VkLWVudmlyb25tZW50cy9wb29scy9kZWxldGU6ASoSwQEKIkNsb3VkRW52aXJvbm1lbnRzUmVzdG9yZURhZW1vblBvb2wSNS5wdWJsaWNfYXBpLkNsb3VkRW52aXJvbm1lbnRzUmVzdG9yZURhZW1vblBvb2xSZXF1ZXN0GjYucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c1Jlc3RvcmVEYWVtb25Qb29sUmVzcG9uc2UiLILT5JMCJiIhL2Nsb3VkLWVudmlyb25tZW50cy9wb29scy9yZXN0b3JlOgEqEtIBCiZDbG91ZEVudmlyb25tZW50c0xpc3REYWVtb25Qb29sRGFlbW9ucxI5LnB1YmxpY19hcGkuQ2xvdWRFbnZpcm9ubWVudHNMaXN0RGFlbW9uUG9vbERhZW1vbnNSZXF1ZXN0GjoucHVibGljX2FwaS5DbG91ZEVudmlyb25tZW50c0xpc3REYWVtb25Qb29sRGFlbW9uc1Jlc3BvbnNlIjGC0+STAisiJi9jbG91ZC1lbnZpcm9ubWVudHMvcG9vbHMvZGFlbW9ucy9saXN0OgEqEpIBChVDbG91ZEV2ZW50c0xpc3RFdmVudHMSKC5wdWJsaWNfYXBpLkNsb3VkRXZlbnRzTGlzdEV2ZW50c1JlcXVlc3QaKS5wdWJsaWNfYXBpLkNsb3VkRXZlbnRzTGlzdEV2ZW50c1Jlc3BvbnNlIiSC0+STAh4iGS9jbG91ZC1ldmVudHMvZXZlbnRzL2xpc3Q6ASoShQEKEENsb3VkVHVubmVsc09wZW4SIy5wdWJsaWNfYXBpLkNsb3VkVHVubmVsc09wZW5SZXF1ZXN0GiQucHVibGljX2FwaS5DbG91ZFR1bm5lbHNPcGVuUmVzcG9uc2UiJoLT5JMCICIbL2Nsb3VkLXR1bm5lbHMvdHVubmVscy9vcGVuOgEqEokBChFDbG91ZFR1bm5lbHNDbG9zZRIkLnB1YmxpY19hcGkuQ2xvdWRUdW5uZWxzQ2xvc2VSZXF1ZXN0GiUucHVibGljX2FwaS5DbG91ZFR1bm5lbHNDbG9zZVJlc3BvbnNlIieC0+STAiEiHC9jbG91ZC10dW5uZWxzL3R1bm5lbHMvY2xvc2U6ASoShQEKEENsb3VkVHVubmVsc0xpc3QSIy5wdWJsaWNfYXBpLkNsb3VkVHVubmVsc0xpc3RSZXF1ZXN0GiQucHVibGljX2FwaS5DbG91ZFR1bm5lbHNMaXN0UmVzcG9uc2UiJoLT5JMCICIbL2Nsb3VkLXR1bm5lbHMvdHVubmVscy9saXN0OgEqEqYBChpDbG91ZFRyaWdnZXJzTGlzdFdvcmtmbG93cxItLnB1YmxpY19hcGkuQ2xvdWRUcmlnZ2Vyc0xpc3RXb3JrZmxvd3NSZXF1ZXN0Gi4ucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzTGlzdFdvcmtmbG93c1Jlc3BvbnNlIimC0+STAiMiHi9jbG91ZC10cmlnZ2Vycy93b3JrZmxvd3MvbGlzdDoBKhKfAQoYQ2xvdWRUcmlnZ2Vyc0dldFdvcmtmbG93EisucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzR2V0V29ya2Zsb3dSZXF1ZXN0GiwucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzR2V0V29ya2Zsb3dSZXNwb25zZSIogtPkkwIiIh0vY2xvdWQtdHJpZ2dlcnMvd29ya2Zsb3dzL2dldDoBKhKrAQobQ2xvdWRUcmlnZ2Vyc0RlbGV0ZVdvcmtmbG93Ei4ucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzRGVsZXRlV29ya2Zsb3dSZXF1ZXN0Gi8ucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzRGVsZXRlV29ya2Zsb3dSZXNwb25zZSIrgtPkkwIlIiAvY2xvdWQtdHJpZ2dlcnMvd29ya2Zsb3dzL2RlbGV0ZToBKhKrAQobQ2xvdWRUcmlnZ2Vyc0NyZWF0ZVdvcmtmbG93Ei4ucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzQ3JlYXRlV29ya2Zsb3dSZXF1ZXN0Gi8ucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzQ3JlYXRlV29ya2Zsb3dSZXNwb25zZSIrgtPkkwIlIiAvY2xvdWQtdHJpZ2dlcnMvd29ya2Zsb3dzL2NyZWF0ZToBKhKrAQobQ2xvdWRUcmlnZ2Vyc1VwZGF0ZVdvcmtmbG93Ei4ucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzVXBkYXRlV29ya2Zsb3dSZXF1ZXN0Gi8ucHVibGljX2FwaS5DbG91ZFRyaWdnZXJzVXBkYXRlV29ya2Zsb3dSZXNwb25zZSIrgtPkkwIlIiAvY2xvdWQtdHJpZ2dlcnMvd29ya2Zsb3dzL3VwZGF0ZToBKhKzAQodQ2xvdWRUcmlnZ2Vyc0xpc3RFdmVudFNvdXJjZXMSMC5wdWJsaWNfYXBpLkNsb3VkVHJpZ2dlcnNMaXN0RXZlbnRTb3VyY2VzUmVxdWVzdBoxLnB1YmxpY19hcGkuQ2xvdWRUcmlnZ2Vyc0xpc3RFdmVudFNvdXJjZXNSZXNwb25zZSItgtPkkwInIiIvY2xvdWQtdHJpZ2dlcnMvZXZlbnQtc291cmNlcy9saXN0OgEqEqwBChtDbG91ZFRyaWdnZXJzR2V0RXZlbnRTb3VyY2USLi5wdWJsaWNfYXBpLkNsb3VkVHJpZ2dlcnNHZXRFdmVudFNvdXJjZVJlcXVlc3QaLy5wdWJsaWNfYXBpLkNsb3VkVHJpZ2dlcnNHZXRFdmVudFNvdXJjZVJlc3BvbnNlIiyC0+STAiYiIS9jbG91ZC10cmlnZ2Vycy9ldmVudC1zb3VyY2VzL2dldDoBKhK7AQofQ2xvdWRUcmlnZ2Vyc0RlbGV0ZUV2ZW50U291cmNlcxIyLnB1YmxpY19hcGkuQ2xvdWRUcmlnZ2Vyc0RlbGV0ZUV2ZW50U291cmNlc1JlcXVlc3QaMy5wdWJsaWNfYXBpLkNsb3VkVHJpZ2dlcnNEZWxldGVFdmVudFNvdXJjZXNSZXNwb25zZSIvgtPkkwIpIiQvY2xvdWQtdHJpZ2dlcnMvZXZlbnQtc291cmNlcy9kZWxldGU6ASoSuAEKHkNsb3VkVHJpZ2dlcnNDcmVhdGVFdmVudFNvdXJjZRIxLnB1YmxpY19hcGkuQ2xvdWRUcmlnZ2Vyc0NyZWF0ZUV2ZW50U291cmNlUmVxdWVzdBoyLnB1YmxpY19hcGkuQ2xvdWRUcmlnZ2Vyc0NyZWF0ZUV2ZW50U291cmNlUmVzcG9uc2UiL4LT5JMCKSIkL2Nsb3VkLXRyaWdnZXJzL2V2ZW50LXNvdXJjZXMvY3JlYXRlOgEqErgBCh5DbG91ZFRyaWdnZXJzVXBkYXRlRXZlbnRTb3VyY2USMS5wdWJsaWNfYXBpLkNsb3VkVHJpZ2dlcnNVcGRhdGVFdmVudFNvdXJjZVJlcXVlc3QaMi5wdWJsaWNfYXBpLkNsb3VkVHJpZ2dlcnNVcGRhdGVFdmVudFNvdXJjZVJlc3BvbnNlIi+C0+STAikiJC9jbG91ZC10cmlnZ2Vycy9ldmVudC1zb3VyY2VzL3VwZGF0ZToBKhKKAQoRQ2xvdWRXZWJob29rc0xpc3QSJC5wdWJsaWNfYXBpLkNsb3VkV2ViaG9va3NMaXN0UmVxdWVzdBolLnB1YmxpY19hcGkuQ2xvdWRXZWJob29rc0xpc3RSZXNwb25zZSIogtPkkwIiIh0vY2xvdWQtd2ViaG9va3Mvd2ViaG9va3MvbGlzdDoBKhKSAQoTQ2xvdWRXZWJob29rc0NyZWF0ZRImLnB1YmxpY19hcGkuQ2xvdWRXZWJob29rc0NyZWF0ZVJlcXVlc3QaJy5wdWJsaWNfYXBpLkNsb3VkV2ViaG9va3NDcmVhdGVSZXNwb25zZSIqgtPkkwIkIh8vY2xvdWQtd2ViaG9va3Mvd2ViaG9va3MvY3JlYXRlOgEqEoYBChBDbG91ZFdlYmhvb2tzR2V0EiMucHVibGljX2FwaS5DbG91ZFdlYmhvb2tzR2V0UmVxdWVzdBokLnB1YmxpY19hcGkuQ2xvdWRXZWJob29rc0dldFJlc3BvbnNlIieC0+STAiEiHC9jbG91ZC13ZWJob29rcy93ZWJob29rcy9nZXQ6ASoSkgEKE0Nsb3VkV2ViaG9va3NEZWxldGUSJi5wdWJsaWNfYXBpLkNsb3VkV2ViaG9va3NEZWxldGVSZXF1ZXN0GicucHVibGljX2FwaS5DbG91ZFdlYmhvb2tzRGVsZXRlUmVzcG9uc2UiKoLT5JMCJCIfL2Nsb3VkLXdlYmhvb2tzL3dlYmhvb2tzL2RlbGV0ZToBKhKSAQoTQ2xvdWRXZWJob29rc1VwZGF0ZRImLnB1YmxpY19hcGkuQ2xvdWRXZWJob29rc1VwZGF0ZVJlcXVlc3QaJy5wdWJsaWNfYXBpLkNsb3VkV2ViaG9va3NVcGRhdGVSZXNwb25zZSIqgtPkkwIkIh8vY2xvdWQtd2ViaG9va3Mvd2ViaG9va3MvdXBkYXRlOgEqEp8BChZDbG91ZFdlYmhvb2tzU2V0U2VjcmV0EikucHVibGljX2FwaS5DbG91ZFdlYmhvb2tzU2V0U2VjcmV0UmVxdWVzdBoqLnB1YmxpY19hcGkuQ2xvdWRXZWJob29rc1NldFNlY3JldFJlc3BvbnNlIi6C0+STAigiIy9jbG91ZC13ZWJob29rcy93ZWJob29rcy9zZXQtc2VjcmV0OgEqEsgBCiFDbG91ZFdlYmhvb2tzR2V0U2V0dXBJbnN0cnVjdGlvbnMSNC5wdWJsaWNfYXBpLkNsb3VkV2ViaG9va3NHZXRTZXR1cEluc3RydWN0aW9uc1JlcXVlc3QaNS5wdWJsaWNfYXBpLkNsb3VkV2ViaG9va3NHZXRTZXR1cEluc3RydWN0aW9uc1Jlc3BvbnNlIjaC0+STAjAiKy9jbG91ZC13ZWJob29rcy93ZWJob29rcy9zZXR1cC1pbnN0cnVjdGlvbnM6ASoSkgEKFUNsb3VkU3BhY2VzTGlzdFNwYWNlcxIoLnB1YmxpY19hcGkuQ2xvdWRTcGFjZXNMaXN0U3BhY2VzUmVxdWVzdBopLnB1YmxpY19hcGkuQ2xvdWRTcGFjZXNMaXN0U3BhY2VzUmVzcG9uc2UiJILT5JMCHiIZL2Nsb3VkLXNwYWNlcy9zcGFjZXMvbGlzdDoBKhKLAQoTQ2xvdWRTcGFjZXNHZXRTcGFjZRImLnB1YmxpY19hcGkuQ2xvdWRTcGFjZXNHZXRTcGFjZVJlcXVlc3QaJy5wdWJsaWNfYXBpLkNsb3VkU3BhY2VzR2V0U3BhY2VSZXNwb25zZSIjgtPkkwIdIhgvY2xvdWQtc3BhY2VzL3NwYWNlcy9nZXQ6ASoSlwEKFkNsb3VkU3BhY2VzQ3JlYXRlU3BhY2USKS5wdWJsaWNfYXBpLkNsb3VkU3BhY2VzQ3JlYXRlU3BhY2VSZXF1ZXN0GioucHVibGljX2FwaS5DbG91ZFNwYWNlc0NyZWF0ZVNwYWNlUmVzcG9uc2UiJoLT5JMCICIbL2Nsb3VkLXNwYWNlcy9zcGFjZXMvY3JlYXRlOgEqEpcBChZDbG91ZFNwYWNlc0RlbGV0ZVNwYWNlEikucHVibGljX2FwaS5DbG91ZFNwYWNlc0RlbGV0ZVNwYWNlUmVxdWVzdBoqLnB1YmxpY19hcGkuQ2xvdWRTcGFjZXNEZWxldGVTcGFjZVJlc3BvbnNlIiaC0+STAiAiGy9jbG91ZC1zcGFjZXMvc3BhY2VzL2RlbGV0ZToBKhKXAQoWQ2xvdWRTcGFjZXNVcGRhdGVTcGFjZRIpLnB1YmxpY19hcGkuQ2xvdWRTcGFjZXNVcGRhdGVTcGFjZVJlcXVlc3QaKi5wdWJsaWNfYXBpLkNsb3VkU3BhY2VzVXBkYXRlU3BhY2VSZXNwb25zZSImgtPkkwIgIhsvY2xvdWQtc3BhY2VzL3NwYWNlcy91cGRhdGU6ASoSeQoPQ2xvdWRHcm91cHNMaXN0EiIucHVibGljX2FwaS5DbG91ZEdyb3Vwc0xpc3RSZXF1ZXN0GiMucHVibGljX2FwaS5DbG91ZEdyb3Vwc0xpc3RSZXNwb25zZSIdgtPkkwIXIhIvY2xvdWQtZ3JvdXBzL2xpc3Q6ASoSgQEKEUNsb3VkR3JvdXBzQ3JlYXRlEiQucHVibGljX2FwaS5DbG91ZEdyb3Vwc0NyZWF0ZVJlcXVlc3QaJS5wdWJsaWNfYXBpLkNsb3VkR3JvdXBzQ3JlYXRlUmVzcG9uc2UiH4LT5JMCGSIUL2Nsb3VkLWdyb3Vwcy9jcmVhdGU6ASoSgQEKEUNsb3VkR3JvdXBzVXBkYXRlEiQucHVibGljX2FwaS5DbG91ZEdyb3Vwc1VwZGF0ZVJlcXVlc3QaJS5wdWJsaWNfYXBpLkNsb3VkR3JvdXBzVXBkYXRlUmVzcG9uc2UiH4LT5JMCGSIUL2Nsb3VkLWdyb3Vwcy91cGRhdGU6ASoSgQEKEUNsb3VkR3JvdXBzRGVsZXRlEiQucHVibGljX2FwaS5DbG91ZEdyb3Vwc0RlbGV0ZVJlcXVlc3QaJS5wdWJsaWNfYXBpLkNsb3VkR3JvdXBzRGVsZXRlUmVzcG9uc2UiH4LT5JMCGSIUL2Nsb3VkLWdyb3Vwcy9kZWxldGU6ASoSlgEKFkNsb3VkR3JvdXBzTGlzdE1lbWJlcnMSKS5wdWJsaWNfYXBpLkNsb3VkR3JvdXBzTGlzdE1lbWJlcnNSZXF1ZXN0GioucHVibGljX2FwaS5DbG91ZEdyb3Vwc0xpc3RNZW1iZXJzUmVzcG9uc2UiJYLT5JMCHyIaL2Nsb3VkLWdyb3Vwcy9tZW1iZXJzL2xpc3Q6ASoSkgEKFUNsb3VkR3JvdXBzQWRkTWVtYmVycxIoLnB1YmxpY19hcGkuQ2xvdWRHcm91cHNBZGRNZW1iZXJzUmVxdWVzdBopLnB1YmxpY19hcGkuQ2xvdWRHcm91cHNBZGRNZW1iZXJzUmVzcG9uc2UiJILT5JMCHiIZL2Nsb3VkLWdyb3Vwcy9tZW1iZXJzL2FkZDoBKhKeAQoYQ2xvdWRHcm91cHNSZW1vdmVNZW1iZXJzEisucHVibGljX2FwaS5DbG91ZEdyb3Vwc1JlbW92ZU1lbWJlcnNSZXF1ZXN0GiwucHVibGljX2FwaS5DbG91ZEdyb3Vwc1JlbW92ZU1lbWJlcnNSZXNwb25zZSIngtPkkwIhIhwvY2xvdWQtZ3JvdXBzL21lbWJlcnMvcmVtb3ZlOgEqEnMKD0Nsb3VkQWNjZXNzTGlzdBIiLnB1YmxpY19hcGkuQ2xvdWRBY2Nlc3NMaXN0UmVxdWVzdBojLnB1YmxpY19hcGkuQ2xvdWRBY2Nlc3NMaXN0UmVzcG9uc2UiF4LT5JMCESIML2FjY2Vzcy9saXN0OgEqEncKEENsb3VkQWNjZXNzR3JhbnQSIy5wdWJsaWNfYXBpLkNsb3VkQWNjZXNzR3JhbnRSZXF1ZXN0GiQucHVibGljX2FwaS5DbG91ZEFjY2Vzc0dyYW50UmVzcG9uc2UiGILT5JMCEiINL2FjY2Vzcy9ncmFudDoBKhJ7ChFDbG91ZEFjY2Vzc1Jldm9rZRIkLnB1YmxpY19hcGkuQ2xvdWRBY2Nlc3NSZXZva2VSZXF1ZXN0GiUucHVibGljX2FwaS5DbG91ZEFjY2Vzc1Jldm9rZVJlc3BvbnNlIhmC0+STAhMiDi9hY2Nlc3MvcmV2b2tlOgEqEqIBChlDbG91ZFByb2plY3RzTGlzdFByb2plY3RzEiwucHVibGljX2FwaS5DbG91ZFByb2plY3RzTGlzdFByb2plY3RzUmVxdWVzdBotLnB1YmxpY19hcGkuQ2xvdWRQcm9qZWN0c0xpc3RQcm9qZWN0c1Jlc3BvbnNlIiiC0+STAiIiHS9jbG91ZC1wcm9qZWN0cy9wcm9qZWN0cy9saXN0OgEqEpsBChdDbG91ZFByb2plY3RzR2V0UHJvamVjdBIqLnB1YmxpY19hcGkuQ2xvdWRQcm9qZWN0c0dldFByb2plY3RSZXF1ZXN0GisucHVibGljX2FwaS5DbG91ZFByb2plY3RzR2V0UHJvamVjdFJlc3BvbnNlIieC0+STAiEiHC9jbG91ZC1wcm9qZWN0cy9wcm9qZWN0cy9nZXQ6ASoSpwEKGkNsb3VkUHJvamVjdHNDcmVhdGVQcm9qZWN0Ei0ucHVibGljX2FwaS5DbG91ZFByb2plY3RzQ3JlYXRlUHJvamVjdFJlcXVlc3QaLi5wdWJsaWNfYXBpLkNsb3VkUHJvamVjdHNDcmVhdGVQcm9qZWN0UmVzcG9uc2UiKoLT5JMCJCIfL2Nsb3VkLXByb2plY3RzL3Byb2plY3RzL2NyZWF0ZToBKhKnAQoaQ2xvdWRQcm9qZWN0c0RlbGV0ZVByb2plY3QSLS5wdWJsaWNfYXBpLkNsb3VkUHJvamVjdHNEZWxldGVQcm9qZWN0UmVxdWVzdBouLnB1YmxpY19hcGkuQ2xvdWRQcm9qZWN0c0RlbGV0ZVByb2plY3RSZXNwb25zZSIqgtPkkwIkIh8vY2xvdWQtcHJvamVjdHMvcHJvamVjdHMvZGVsZXRlOgEqEpsBChVDbG91ZFByb2plY3RzQWRkQWdlbnQSKC5wdWJsaWNfYXBpLkNsb3VkUHJvamVjdHNBZGRBZ2VudFJlcXVlc3QaKS5wdWJsaWNfYXBpLkNsb3VkUHJvamVjdHNBZGRBZ2VudFJlc3BvbnNlIi2C0+STAiciIi9jbG91ZC1wcm9qZWN0cy9wcm9qZWN0cy9hZGQtYWdlbnQ6ASoSpwEKGENsb3VkUHJvamVjdHNSZW1vdmVBZ2VudBIrLnB1YmxpY19hcGkuQ2xvdWRQcm9qZWN0c1JlbW92ZUFnZW50UmVxdWVzdBosLnB1YmxpY19hcGkuQ2xvdWRQcm9qZWN0c1JlbW92ZUFnZW50UmVzcG9uc2UiMILT5JMCKiIlL2Nsb3VkLXByb2plY3RzL3Byb2plY3RzL3JlbW92ZS1hZ2VudDoBKhK9AQohQ2xvdWRJbnRlZ3JhdGlvbnNDaGVja1NsYWNrU3RhdHVzEjQucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0NoZWNrU2xhY2tTdGF0dXNSZXF1ZXN0GjUucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0NoZWNrU2xhY2tTdGF0dXNSZXNwb25zZSIrgtPkkwIlIiAvY2xvdWQtaW50ZWdyYXRpb25zL3NsYWNrL3N0YXR1czoBKhLAAQohQ2xvdWRJbnRlZ3JhdGlvbnNHZXRTbGFja09BdXRoVXJsEjQucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0dldFNsYWNrT0F1dGhVcmxSZXF1ZXN0GjUucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0dldFNsYWNrT0F1dGhVcmxSZXNwb25zZSIugtPkkwIoIiMvY2xvdWQtaW50ZWdyYXRpb25zL3NsYWNrL29hdXRoLXVybDoBKhLHAQoiQ2xvdWRJbnRlZ3JhdGlvbnNMaXN0U2xhY2tDaGFubmVscxI1LnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNMaXN0U2xhY2tDaGFubmVsc1JlcXVlc3QaNi5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zTGlzdFNsYWNrQ2hhbm5lbHNSZXNwb25zZSIygtPkkwIsIicvY2xvdWQtaW50ZWdyYXRpb25zL3NsYWNrL2xpc3QtY2hhbm5lbHM6ASoSwQEKIkNsb3VkSW50ZWdyYXRpb25zQ2hlY2tMaW5lYXJTdGF0dXMSNS5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zQ2hlY2tMaW5lYXJTdGF0dXNSZXF1ZXN0GjYucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0NoZWNrTGluZWFyU3RhdHVzUmVzcG9uc2UiLILT5JMCJiIhL2Nsb3VkLWludGVncmF0aW9ucy9saW5lYXIvc3RhdHVzOgEqEsQBCiJDbG91ZEludGVncmF0aW9uc0dldExpbmVhck9BdXRoVXJsEjUucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0dldExpbmVhck9BdXRoVXJsUmVxdWVzdBo2LnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNHZXRMaW5lYXJPQXV0aFVybFJlc3BvbnNlIi+C0+STAikiJC9jbG91ZC1pbnRlZ3JhdGlvbnMvbGluZWFyL29hdXRoLXVybDoBKhLOAQolQ2xvdWRJbnRlZ3JhdGlvbnNDaGVja0dpdEh1YkFwcFN0YXR1cxI4LnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNDaGVja0dpdEh1YkFwcFN0YXR1c1JlcXVlc3QaOS5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zQ2hlY2tHaXRIdWJBcHBTdGF0dXNSZXNwb25zZSIwgtPkkwIqIiUvY2xvdWQtaW50ZWdyYXRpb25zL2dpdGh1Yi1hcHAvc3RhdHVzOgEqEtkBCidDbG91ZEludGVncmF0aW9uc0dldEdpdEh1YkFwcEluc3RhbGxVcmwSOi5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zR2V0R2l0SHViQXBwSW5zdGFsbFVybFJlcXVlc3QaOy5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zR2V0R2l0SHViQXBwSW5zdGFsbFVybFJlc3BvbnNlIjWC0+STAi8iKi9jbG91ZC1pbnRlZ3JhdGlvbnMvZ2l0aHViLWFwcC9pbnN0YWxsLXVybDoBKhLaAQooQ2xvdWRJbnRlZ3JhdGlvbnNDaGVja0F0bGFzc2lhbkFwcFN0YXR1cxI7LnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNDaGVja0F0bGFzc2lhbkFwcFN0YXR1c1JlcXVlc3QaPC5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zQ2hlY2tBdGxhc3NpYW5BcHBTdGF0dXNSZXNwb25zZSIzgtPkkwItIigvY2xvdWQtaW50ZWdyYXRpb25zL2F0bGFzc2lhbi1hcHAvc3RhdHVzOgEqEuUBCipDbG91ZEludGVncmF0aW9uc0dldEF0bGFzc2lhbkFwcEluc3RhbGxVcmwSPS5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zR2V0QXRsYXNzaWFuQXBwSW5zdGFsbFVybFJlcXVlc3QaPi5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zR2V0QXRsYXNzaWFuQXBwSW5zdGFsbFVybFJlc3BvbnNlIjiC0+STAjIiLS9jbG91ZC1pbnRlZ3JhdGlvbnMvYXRsYXNzaWFuLWFwcC9pbnN0YWxsLXVybDoBKhKRAQoVQ2xvdWRJbnRlZ3JhdGlvbnNMaXN0EigucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0xpc3RSZXF1ZXN0GikucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0xpc3RSZXNwb25zZSIjgtPkkwIdIhgvY2xvdWQtaW50ZWdyYXRpb25zL2xpc3Q6ASoSsgEKHUNsb3VkSW50ZWdyYXRpb25zSW52b2tlQWN0aW9uEjAucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0ludm9rZUFjdGlvblJlcXVlc3QaMS5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zSW52b2tlQWN0aW9uUmVzcG9uc2UiLILT5JMCJiIhL2Nsb3VkLWludGVncmF0aW9ucy9pbnZva2UtYWN0aW9uOgEqEuABCihDbG91ZEludGVncmF0aW9uc0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uEjsucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uUmVxdWVzdBo8LnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNDcmVhdGVFdmVudFN1YnNjcmlwdGlvblJlc3BvbnNlIjmC0+STAjMiLi9jbG91ZC1pbnRlZ3JhdGlvbnMvZXZlbnQtc3Vic2NyaXB0aW9ucy9jcmVhdGU6ASoS2wEKJ0Nsb3VkSW50ZWdyYXRpb25zTGlzdEV2ZW50U3Vic2NyaXB0aW9ucxI6LnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNMaXN0RXZlbnRTdWJzY3JpcHRpb25zUmVxdWVzdBo7LnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNMaXN0RXZlbnRTdWJzY3JpcHRpb25zUmVzcG9uc2UiN4LT5JMCMSIsL2Nsb3VkLWludGVncmF0aW9ucy9ldmVudC1zdWJzY3JpcHRpb25zL2xpc3Q6ASoS4AEKKENsb3VkSW50ZWdyYXRpb25zQ2FuY2VsRXZlbnRTdWJzY3JpcHRpb24SOy5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zQ2FuY2VsRXZlbnRTdWJzY3JpcHRpb25SZXF1ZXN0GjwucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc0NhbmNlbEV2ZW50U3Vic2NyaXB0aW9uUmVzcG9uc2UiOYLT5JMCMyIuL2Nsb3VkLWludGVncmF0aW9ucy9ldmVudC1zdWJzY3JpcHRpb25zL2NhbmNlbDoBKhLHAQoiQ2xvdWRJbnRlZ3JhdGlvbnNSZXZva2VHaXRodWJPQXV0aBI1LnB1YmxpY19hcGkuQ2xvdWRJbnRlZ3JhdGlvbnNSZXZva2VHaXRodWJPQXV0aFJlcXVlc3QaNi5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zUmV2b2tlR2l0aHViT0F1dGhSZXNwb25zZSIygtPkkwIsIicvY2xvdWQtaW50ZWdyYXRpb25zL2dpdGh1Yi9yZXZva2Utb2F1dGg6ASoSxwEKIkNsb3VkSW50ZWdyYXRpb25zUmV2b2tlTGluZWFyT0F1dGgSNS5wdWJsaWNfYXBpLkNsb3VkSW50ZWdyYXRpb25zUmV2b2tlTGluZWFyT0F1dGhSZXF1ZXN0GjYucHVibGljX2FwaS5DbG91ZEludGVncmF0aW9uc1Jldm9rZUxpbmVhck9BdXRoUmVzcG9uc2UiMoLT5JMCLCInL2Nsb3VkLWludGVncmF0aW9ucy9saW5lYXIvcmV2b2tlLW9hdXRoOgEqEnoKDlByb2Nlc3NXZWJob29rEiEucHVibGljX2FwaS5Qcm9jZXNzV2ViaG9va1JlcXVlc3QaIi5wdWJsaWNfYXBpLlByb2Nlc3NXZWJob29rUmVzcG9uc2UiIYLT5JMCGyIWL3dlYmhvb2tzL3t3ZWJob29rX2lkfToBKhKSAQoVQ2xvdWRBZ2VudHNMaXN0QWdlbnRzEigucHVibGljX2FwaS5DbG91ZEFnZW50c0xpc3RBZ2VudHNSZXF1ZXN0GikucHVibGljX2FwaS5DbG91ZEFnZW50c0xpc3RBZ2VudHNSZXNwb25zZSIkgtPkkwIeIhkvY2xvdWQtYWdlbnRzL2FnZW50cy9saXN0OgEqEr4BCh5DbG91ZEFnZW50c1VwZGF0ZVNlc3Npb25Db25maWcSMS5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzVXBkYXRlU2Vzc2lvbkNvbmZpZ1JlcXVlc3QaMi5wdWJsaWNfYXBpLkNsb3VkQWdlbnRzVXBkYXRlU2Vzc2lvbkNvbmZpZ1Jlc3BvbnNlIjWC0+STAi8iKi9jbG91ZC1hZ2VudHMvYWdlbnRzL3VwZGF0ZS1zZXNzaW9uLWNvbmZpZzoBKhKBAQoXQ2xvdWRBZ2VudHNDb25uZWN0Q2xpVm0SHS5wb3NlaWRvbi5Db25uZWN0Q2xpVm1SZXF1ZXN0Gh4ucG9zZWlkb24uQ29ubmVjdENsaVZtUmVzcG9uc2UiJ4LT5JMCISIcL3ZtLWJlYWNoaGVhZC9jb25uZWN0LWNsaS12bToBKhKNAQoaQ2xvdWRBZ2VudHNGZXRjaFZGU0NoYW5nZXMSIC5wb3NlaWRvbi5GZXRjaFZGU0NoYW5nZXNSZXF1ZXN0GiEucG9zZWlkb24uRmV0Y2hWRlNDaGFuZ2VzUmVzcG9uc2UiKoLT5JMCJCIfL2Nsb3VkLWFnZW50cy92ZnMvZmV0Y2gtY2hhbmdlczoBKhKZAQoeQ2xvdWRBZ2VudHNGZXRjaFZGU0ZpbGVDb250ZW50EiQucG9zZWlkb24uRmV0Y2hWRlNGaWxlQ29udGVudFJlcXVlc3QaJS5wb3NlaWRvbi5GZXRjaFZGU0ZpbGVDb250ZW50UmVzcG9uc2UiKoLT5JMCJCIfL2Nsb3VkLWFnZW50cy92ZnMvZmV0Y2gtY29udGVudDoBKhKQAQofQ2xvdWRBZ2VudHNTdHJlYW1WRlNGaWxlQ29udGVudBIkLnBvc2VpZG9uLkZldGNoVkZTRmlsZUNvbnRlbnRSZXF1ZXN0GhgucG9zZWlkb24uVkZTRmlsZUNvbnRlbnQiK4LT5JMCJSIgL2Nsb3VkLWFnZW50cy92ZnMvc3RyZWFtLWNvbnRlbnQ6ASowARKRAQobQ2xvdWRBZ2VudHNDb21taXRWRlNDaGFuZ2VzEiEucG9zZWlkb24uQ29tbWl0VkZTQ2hhbmdlc1JlcXVlc3QaIi5wb3NlaWRvbi5Db21taXRWRlNDaGFuZ2VzUmVzcG9uc2UiK4LT5JMCJSIgL2Nsb3VkLWFnZW50cy92ZnMvY29tbWl0LWNoYW5nZXM6ASoStwEKIENsb3VkQWdlbnRzRW5zdXJlVkZTRmlsZUlkZW50aXR5EiYucG9zZWlkb24uRW5zdXJlVkZTRmlsZUlkZW50aXR5UmVxdWVzdBo4LnB1YmxpY19hcGkuQ2xvdWRBZ2VudHNFbnN1cmVWRlNGaWxlSWRlbnRpdHlIdHRwUmVzcG9uc2UiMYLT5JMCKyImL2Nsb3VkLWFnZW50cy92ZnMvZW5zdXJlLWZpbGUtaWRlbnRpdHk6ASoSuwEKIUNsb3VkQWdlbnRzUmVzb2x2ZVZGU0ZpbGVJZGVudGl0eRInLnBvc2VpZG9uLlJlc29sdmVWRlNGaWxlSWRlbnRpdHlSZXF1ZXN0GjkucHVibGljX2FwaS5DbG91ZEFnZW50c1Jlc29sdmVWRlNGaWxlSWRlbnRpdHlIdHRwUmVzcG9uc2UiMoLT5JMCLCInL2Nsb3VkLWFnZW50cy92ZnMvcmVzb2x2ZS1maWxlLWlkZW50aXR5OgEqEp4BCh5DbG91ZEFnZW50c0xpc3RWRlNGaWxlVmVyc2lvbnMSJC5wb3NlaWRvbi5MaXN0VkZTRmlsZVZlcnNpb25zUmVxdWVzdBolLnBvc2VpZG9uLkxpc3RWRlNGaWxlVmVyc2lvbnNSZXNwb25zZSIvgtPkkwIpIiQvY2xvdWQtYWdlbnRzL3Zmcy9saXN0LWZpbGUtdmVyc2lvbnM6ASoSmgEKHUNsb3VkQWdlbnRzUmVhZFZGU0ZpbGVWZXJzaW9uEiMucG9zZWlkb24uUmVhZFZGU0ZpbGVWZXJzaW9uUmVxdWVzdBokLnBvc2VpZG9uLlJlYWRWRlNGaWxlVmVyc2lvblJlc3BvbnNlIi6C0+STAigiIy9jbG91ZC1hZ2VudHMvdmZzL3JlYWQtZmlsZS12ZXJzaW9uOgEqEqYBCiBDbG91ZEFnZW50c0xpc3RWRlNWZXJzaW9uZWRGaWxlcxImLnBvc2VpZG9uLkxpc3RWRlNWZXJzaW9uZWRGaWxlc1JlcXVlc3QaJy5wb3NlaWRvbi5MaXN0VkZTVmVyc2lvbmVkRmlsZXNSZXNwb25zZSIxgtPkkwIrIiYvY2xvdWQtYWdlbnRzL3Zmcy9saXN0LXZlcnNpb25lZC1maWxlczoBKhKRAQobQ2xvdWRBZ2VudHNBcHBlbmRWRlNDb21tZW50EiEucG9zZWlkb24uQXBwZW5kVkZTQ29tbWVudFJlcXVlc3QaIi5wb3NlaWRvbi5BcHBlbmRWRlNDb21tZW50UmVzcG9uc2UiK4LT5JMCJSIgL2Nsb3VkLWFnZW50cy92ZnMvYXBwZW5kLWNvbW1lbnQ6ASoSjQEKGkNsb3VkQWdlbnRzTGlzdFZGU0NvbW1lbnRzEiAucG9zZWlkb24uTGlzdFZGU0NvbW1lbnRzUmVxdWVzdBohLnBvc2VpZG9uLkxpc3RWRlNDb21tZW50c1Jlc3BvbnNlIiqC0+STAiQiHy9jbG91ZC1hZ2VudHMvdmZzL2xpc3QtY29tbWVudHM6ASoStAEKJUNsb3VkQWdlbnRzQ3JlYXRlSG9zdGVkQXJ0aWZhY3RVcGxvYWQSKy5wb3NlaWRvbi5DcmVhdGVIb3N0ZWRBcnRpZmFjdFVwbG9hZFJlcXVlc3QaLC5wb3NlaWRvbi5DcmVhdGVIb3N0ZWRBcnRpZmFjdFVwbG9hZFJlc3BvbnNlIjCC0+STAioiJS9jbG91ZC1hZ2VudHMvYXJ0aWZhY3RzL2NyZWF0ZS11cGxvYWQ6ASoSowEKIUNsb3VkQWdlbnRzRmluYWxpemVIb3N0ZWRBcnRpZmFjdBInLnBvc2VpZG9uLkZpbmFsaXplSG9zdGVkQXJ0aWZhY3RSZXF1ZXN0GigucG9zZWlkb24uRmluYWxpemVIb3N0ZWRBcnRpZmFjdFJlc3BvbnNlIiuC0+STAiUiIC9jbG91ZC1hZ2VudHMvYXJ0aWZhY3RzL2ZpbmFsaXplOgEqEpsBCh9DbG91ZEFnZW50c0RlbGV0ZUhvc3RlZEFydGlmYWN0EiUucG9zZWlkb24uRGVsZXRlSG9zdGVkQXJ0aWZhY3RSZXF1ZXN0GiYucG9zZWlkb24uRGVsZXRlSG9zdGVkQXJ0aWZhY3RSZXNwb25zZSIpgtPkkwIjIh4vY2xvdWQtYWdlbnRzL2FydGlmYWN0cy9kZWxldGU6ASpiBnByb3RvMw",[Pi,qi,iX,ja,Oa]);var Vo=va(zJ,0);function sX(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var $i=function(e){return this instanceof $i?(this.v=e,this):new $i(e)},DJ=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(b){return function(f){return Promise.resolve(f).then(b,u)}}function l(b,f){r[b]&&(o[b]=function(A){return new Promise(function(m,V){i.push([b,A,m,V])>1||a(b,A)})},f&&(o[b]=f(o[b])))}function a(b,f){try{c(r[b](f))}catch(A){h(i[0][3],A)}}function c(b){b.value instanceof $i?Promise.resolve(b.value.v).then(d,u):h(i[0][2],b)}function d(b){a("next",b)}function u(b){a("throw",b)}function h(b,f){b(f),i.shift(),i.length&&a(i[0][0],i[0][1])}},lX={redirect:"error"};function pb(e){var t;sX();let n=(t=e.useBinaryFormat)!==null&&t!==void 0?t:!1;return{async unary(r,o,i,s,l,a){let{serialize:c,parse:d}=_a(r,n,e.jsonOptions,e.binaryOptions);return i=i===void 0?e.defaultTimeoutMs:i<=0?void 0:i,await bb({interceptors:e.interceptors,signal:o,timeoutMs:i,req:{stream:!1,service:r.parent,method:r,requestMethod:"POST",url:Ja(e.baseUrl,r),header:Da(r.methodKind,n,i,s,!1),contextValues:a??xa(),message:l},next:async u=>{var h;let b=e.useHttpGet===!0&&r.idempotency===pl.NO_SIDE_EFFECTS,f=null;b?u=hb(u,c(u.message),n):f=c(u.message);let m=await((h=e.fetch)!==null&&h!==void 0?h:globalThis.fetch)(u.url,Object.assign(Object.assign({},lX),{method:u.requestMethod,headers:u.header,signal:u.signal,body:f})),{isUnaryError:V,unaryError:E}=La(r.methodKind,n,m.status,m.headers);if(V)throw Oi(await m.json(),tb(...Ka(m.headers)),E);let[R,G]=Ka(m.headers);return{stream:!1,service:r.parent,method:r,header:R,message:n?d(new Uint8Array(await m.arrayBuffer())):pi(r.output,await m.json(),ka(e.jsonOptions)),trailer:G}}})},async stream(r,o,i,s,l,a){let{serialize:c,parse:d}=_a(r,n,e.jsonOptions,e.binaryOptions);function u(b,f,A,m){return DJ(this,arguments,function*(){let E=rb(b).getReader(),R=!1;for(;;){let G=yield $i(E.read());if(G.done)break;let{flags:S,data:N}=G.value;if((S&wa)===wa)throw new se("protocol error: received unsupported compressed output",D.Internal);if((S&Qa)===Qa){R=!0;let g=cb(N);if(g.error){let Z=g.error;throw A.forEach((p,F)=>{Z.metadata.append(F,p)}),Z}g.metadata.forEach((Z,p)=>f.set(p,Z));continue}yield yield $i(d(N))}if("throwIfAborted"in m&&m.throwIfAborted(),!R)throw"missing EndStreamResponse"})}async function h(b){if(r.methodKind!="server_streaming")throw"The fetch API does not support streaming request bodies";let f=await b[Symbol.asyncIterator]().next();if(f.done==!0)throw"missing request message";return ob(0,c(f.value))}return i=i===void 0?e.defaultTimeoutMs:i<=0?void 0:i,await fb({interceptors:e.interceptors,timeoutMs:i,signal:o,req:{stream:!0,service:r.parent,method:r,requestMethod:"POST",url:Ja(e.baseUrl,r),header:Da(r.methodKind,n,i,s,!1),contextValues:a??xa(),message:l},next:async b=>{var f;let m=await((f=e.fetch)!==null&&f!==void 0?f:globalThis.fetch)(b.url,Object.assign(Object.assign({},lX),{method:b.requestMethod,headers:b.header,signal:b.signal,body:await h(b.message)}));if(La(r.methodKind,n,m.status,m.headers),m.body===null)throw"missing response body";let V=new Headers;return Object.assign(Object.assign({},b),{header:m.headers,trailer:V,message:u(m.body,V,m.headers,b.signal)})}})}}}import{randomUUID as aX}from"node:crypto";async function Pa(e){return typeof e=="function"?await e():e}function es(e,t,n){n&&!e.has(t)&&e.set(t,n)}function Eb(e){return t=>async n=>{n.header.has("x-request-id")||n.header.set("x-request-id",aX()),es(n.header,"x-request-session-id",await Pa(e.sessionId)),es(n.header,"x-expert-id",await Pa(e.expertId)),es(n.header,"x-workflow-id",await Pa(e.workflowId));let r=await Pa(e.apiToken);return r&&!n.header.has("authorization")&&n.header.set("authorization",`Bearer ${r}`),es(n.header,"user-agent",e.userAgent),es(n.header,"x-augment-source-agent-id",e.sourceAgentId??process.env.AUGMENT_SOURCE_AGENT_ID),await t(n)}}function LJ(e){return e?e.replace(/ \(\/[^()]+\)/g,""):""}function HJ(e){return e instanceof se?D[e.code]??"unknown":"unknown"}async function MJ(e,t,n,r){let o=typeof r.apiToken=="function"?await r.apiToken():r.apiToken,i=typeof r.sessionId=="function"?r.sessionId():r.sessionId,s=new URL("report-error",e.replace(/\/?$/,"/")),l=AbortSignal.timeout(1e3);await t(s,{method:"POST",headers:{"Content-Type":"application/json","x-request-id":aX(),...i?{"x-request-session-id":i}:{},...o?{authorization:`Bearer ${o}`}:{}},body:JSON.stringify({original_request_id:n.requestId,sanitized_message:`${n.endpoint} call failed with status ${HJ(n.error)}`,stack_trace:LJ(n.error.stack),diagnostics:[{key:"start_time",value:String(n.startTime)},{key:"duration_ms",value:String(n.durationMs)},{key:"message",value:n.error.message}]}),signal:l})}function OJ(e,t,n){return!!(t?.aborted||n.toLowerCase()==="reporterror"||e instanceof se&&e.code===D.Canceled)}function Rb(e){if(e.errorReporting===!1)return n=>r=>n(r);let t=typeof e.errorReporting=="function"?e.errorReporting:n=>MJ(e.baseUrl,e.fetch??globalThis.fetch,n,e);return n=>async r=>{let o=Date.now(),i=s=>{if(OJ(s,r.signal,r.method.name))return;let l=r.header.get("x-request-id")??"",a={endpoint:r.url,requestId:l,error:s instanceof Error?s:new Error(String(s)),startTime:o,durationMs:Date.now()-o};Promise.resolve().then(()=>t(a)).catch(()=>{})};try{let s=await n(r);if(s.stream){let l=s.message;async function*a(){try{for await(let c of l)yield c}catch(c){throw i(c),c}}return{...s,message:a()}}return s}catch(s){throw i(s),s}}}var Zb;function cX(){if(Zb)return Zb;let e=new Map,t=`/${Vo.typeName}/`;for(let n of Object.values(Vo.methods)){let r=ou(n,HZ),o;typeof r?.pattern.value=="string"?o=r.pattern.value:r?.pattern.case==="custom"&&(o=r.pattern.value.path),o&&!o.includes("{")&&e.set(`${t}${n.name}`,o)}return Zb=e,e}function jJ(e){switch(e){case 400:return"invalid_argument";case 401:return"unauthenticated";case 403:return"permission_denied";case 404:return"not_found";case 408:case 504:return"deadline_exceeded";case 409:return"already_exists";case 412:return"failed_precondition";case 413:case 429:return"resource_exhausted";case 499:return"canceled";case 501:return"unimplemented";case 502:case 503:return"unavailable";default:return e>=500&&e<600?"internal":"unknown"}}function PJ(e){try{let t=JSON.parse(e);if(typeof t=="object"&&t!==null)return t}catch{}}async function dX(e){try{let t=await e.text(),n=PJ(t),r=typeof n?.code=="string"?n.code:jJ(e.status),o=typeof n?.message=="string"&&n.message||typeof n?.error=="string"&&n.error||t.trim()||e.statusText||r,i=Array.isArray(n?.details)?n.details:void 0,s=new Headers(e.headers);return s.set("Content-Type","application/json"),new Response(JSON.stringify({code:r,message:o,...i?{details:i}:{}}),{status:e.status,statusText:e.statusText,headers:s})}catch{return e}}function Sb(e=globalThis.fetch,t=cX()){return async(n,r)=>{let o;typeof n=="string"?o=n:n instanceof URL?o=n.toString():o=n.url;let i=new URL(o),s=t.get(i.pathname),l;return s?(i.pathname=s,typeof n=="string"||n instanceof URL?l=await e(i.toString(),r):l=await e(new Request(i.toString(),n),r)):l=await e(n,r),l.ok?l:await dX(l)}}function Xb(e){let t=[Eb(e),Rb(e),...e.interceptors??[]],n=e.fetch??globalThis.fetch,r=e.disableRouteMapping?n:Sb(n);return pb({baseUrl:e.baseUrl,useBinaryFormat:!1,defaultTimeoutMs:e.timeoutMs??12e4,jsonOptions:{useProtoFieldName:!0,enumAsInteger:!0,...e.jsonOptions},fetch:r,interceptors:t})}function Wb(e){let t="unary"in e?e:Xb(e);return ib(Vo,t)}var qJ={0:"unknown",1:"tenant",2:"user",CLOUD_EXPERT_SCOPE_UNKNOWN:"unknown",CLOUD_EXPERT_SCOPE_TENANT:"tenant",CLOUD_EXPERT_SCOPE_USER:"user",EXPERT_SCOPE_UNSPECIFIED:"unknown",EXPERT_SCOPE_TENANT:"tenant",EXPERT_SCOPE_USER:"user"},$J={CLOUD_EXPERT_SCOPE_UNKNOWN:0,CLOUD_EXPERT_SCOPE_TENANT:1,CLOUD_EXPERT_SCOPE_USER:2,EXPERT_SCOPE_UNSPECIFIED:0,EXPERT_SCOPE_TENANT:1,EXPERT_SCOPE_USER:2},e5={CLOUD_EXPERT_SESSION_VISIBILITY_UNSPECIFIED:0,CLOUD_EXPERT_SESSION_VISIBILITY_SHARED:1,CLOUD_EXPERT_SESSION_VISIBILITY_PRIVATE:2},Ib={unspecified:0,builtin_capabilities:1,names:2};function Gb(e){if(Array.isArray(e))return e.map(t=>Gb(t));if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=Gb(r));return t}return e}function hX(e){let t=e.modified_at??e.modifiedAt;return{resourceVersion:e.resource_version??e.resourceVersion??0,config:e.config,scope:qJ[e.scope??0]??"unknown",modifiedBy:e.modified_by??e.modifiedBy??"",modifiedAt:t?new Date(t):void 0,changeType:e.change_type??e.changeType??""}}function t5(e){return typeof e=="number"?e:typeof e=="string"?$J[e]??0:0}function n5(e){if(typeof e=="number")return e;if(typeof e=="string"){let t=e.replace(/^(?:CLOUD_EXPERT_BUILTIN_CAPABILITY_|AGENT_CAPABILITY_)/,""),n=pr[t];return typeof n=="number"?n:void 0}}function r5(e){if(typeof e=="number")return e;if(typeof e=="string")return e5[e]}function o5(e){if(e.routing_target?.pool_id===void 0)return e.routing_target?.daemon_vm_id??e.daemon_vm_id}function bX(e,t,n){let r=e.capabilityNames??[],o=(e.builtinCapabilities??[]).map(c=>pr[c]??"UNKNOWN"),i=o.every(c=>c&&c!=="UNKNOWN"),s=i&&o.every(c=>r.includes(c)),l=i&&r.every(c=>o.includes(c));if(s&&l)return r;let a=new Error(`inconsistent capabilities from api call ${t}`);if(n(a),s)return r;if(l)return o;throw a}function qa(e){let t=e;return{name:t.name,description:t.description,initialMessages:t.initial_messages||[],builtinCapabilities:(t.builtin_capabilities||[]).map(n=>n5(n)??pr.UNKNOWN),...t.capability_names===void 0?{}:{capabilityNames:t.capability_names},...t.use_all_builtin_capabilities===void 0?{}:{useAllBuiltinCapabilities:t.use_all_builtin_capabilities},capabilityInstanceIds:t.capability_instance_ids||[],toolConfig:t.tool_config?{toolName:t.tool_config.tool_name,toolDescription:t.tool_config.tool_description,timeoutSeconds:t.tool_config.timeout_seconds,allowAsync:t.tool_config.allow_async}:void 0,sessionConfig:t.session_config?{model:t.session_config.model,reasoningEffort:t.session_config.reasoning_effort,includeDefaultSystemPrompt:t.session_config.include_default_system_prompt,systemPrompt:t.session_config.system_prompt,visibility:r5(t.session_config.visibility),userMetadata:t.session_config.user_metadata,autoCleanupOnIdle:t.session_config.auto_cleanup_on_idle}:void 0,vmConfig:t.vm_config?{baseImage:t.vm_config.base_image,snapshotId:t.vm_config.snapshot_id,cpuCores:t.vm_config.cpu_cores,memoryMib:t.vm_config.memory_mib,timeoutSeconds:t.vm_config.timeout_seconds,idleTimeoutSeconds:t.vm_config.idle_timeout_seconds,installGitCredentials:t.vm_config.install_git_credentials,installUserSecrets:t.vm_config.install_user_secrets,imageSource:t.vm_config.image_source,baseImageId:t.vm_config.base_image_id,cloneRepos:(t.vm_config.clone_repos||[]).map(n=>({owner:n.owner,name:n.name,branch:n.branch})),resources:t.vm_config.resources?{cpuCores:t.vm_config.resources.cpu_cores,memoryMib:t.vm_config.resources.memory_mib}:void 0,baseImageCurrentVersion:t.vm_config.base_image_current_version,environmentVariables:t.vm_config.environment_variables?{variables:(t.vm_config.environment_variables.variables||[]).map(n=>({name:n.name,value:n.value}))}:void 0}:void 0,daemonVmId:o5(t),poolId:t.routing_target?.pool_id,workerExpertIds:t.worker_expert_ids||[],useAllExpertsAsWorkers:t.use_all_experts_as_workers??!1,userInstructions:t.user_instructions,placeholderText:t.placeholder_text,mcpConfigIds:t.mcp_config_ids||[],hidden:t.hidden??!1,...t.tags&&Object.keys(t.tags).length>0?{tags:t.tags}:{}}}function fX(e){return{expertId:e.expert_id,slug:e.slug,scope:t5(e.scope),config:e.config?qa(e.config):void 0,userId:e.user_id,createdAt:e.created_at?new Date(e.created_at):void 0,updatedAt:e.updated_at?new Date(e.updated_at):void 0,resourceVersion:e.resource_version,deletedAt:e.deleted_at?new Date(e.deleted_at):void 0,effectiveRole:e.effective_role||void 0,...e.space_summary?{spaceSummary:{spaceId:e.space_summary.space_id??"",displayName:e.space_summary.display_name??""}}:{}}}function uX(e){let t=e?.trim();return t&&t.length>0?t:void 0}function i5(e,t){if(e!==void 0)return{pool_id:e};if(t!==void 0)return{daemon_vm_id:t}}function Nb(e){let t=e.mcpConfigIds!==void 0,n=e.mcpConfigIds??[],r=e.tags!==void 0,o=uX(e.poolId),i=uX(e.daemonVmId),s={name:e.name,description:e.description,initial_messages:e.initialMessages||[],builtin_capabilities:e.builtinCapabilities||[],capability_names:e.capabilityNames,use_all_builtin_capabilities:e.useAllBuiltinCapabilities,capability_instance_ids:e.capabilityInstanceIds||[],tool_config:e.toolConfig?{tool_name:e.toolConfig.toolName,tool_description:e.toolConfig.toolDescription,timeout_seconds:e.toolConfig.timeoutSeconds,allow_async:e.toolConfig.allowAsync}:void 0,session_config:e.sessionConfig?{model:e.sessionConfig.model,reasoning_effort:e.sessionConfig.reasoningEffort,include_default_system_prompt:e.sessionConfig.includeDefaultSystemPrompt,system_prompt:e.sessionConfig.systemPrompt,visibility:e.sessionConfig.visibility,user_metadata:e.sessionConfig.userMetadata,auto_cleanup_on_idle:e.sessionConfig.autoCleanupOnIdle}:void 0,vm_config:e.vmConfig?{base_image:e.vmConfig.baseImage,snapshot_id:e.vmConfig.snapshotId,cpu_cores:e.vmConfig.cpuCores,memory_mib:e.vmConfig.memoryMib,timeout_seconds:e.vmConfig.timeoutSeconds,idle_timeout_seconds:e.vmConfig.idleTimeoutSeconds,install_git_credentials:e.vmConfig.installGitCredentials,install_user_secrets:e.vmConfig.installUserSecrets,image_source:e.vmConfig.imageSource,base_image_id:e.vmConfig.baseImageId,clone_repos:(e.vmConfig.cloneRepos||[]).map(l=>({owner:l.owner,name:l.name,branch:l.branch})),resources:e.vmConfig.resources?{cpu_cores:e.vmConfig.resources.cpuCores,memory_mib:e.vmConfig.resources.memoryMib}:void 0,base_image_current_version:e.vmConfig.baseImageCurrentVersion,environment_variables:e.vmConfig.environmentVariables?{variables:e.vmConfig.environmentVariables.variables.map(l=>({name:l.name,value:l.value}))}:void 0}:void 0,routing_target:i5(o,i),worker_expert_ids:e.useAllExpertsAsWorkers?[]:e.workerExpertIds||[],use_all_experts_as_workers:e.useAllExpertsAsWorkers??!1,user_instructions:e.userInstructions,placeholder_text:e.placeholderText,mcp_config_ids:n,has_mcp_config_ids:t,hidden:e.hidden??!1,tags:e.tags,has_tags:r?!0:void 0};return Gb(s)}var Fb={apiCallTimeoutMs:3e4,imageBuildTimeoutMs:6e5,environmentSnapshotUpdateTimeoutMs:6e5,maxRetries:3,retryBaseDelayMs:500};var s5={EVENT_SOURCE_TYPE_SLACK:1,EVENT_SOURCE_TYPE_GITHUB:2,EVENT_SOURCE_TYPE_LINEAR:3,EVENT_SOURCE_TYPE_WEBHOOK:4,EVENT_SOURCE_TYPE_SCHEDULED:5,EVENT_SOURCE_TYPE_PAGERDUTY:6,EVENT_SOURCE_TYPE_JIRA:7,EVENT_SOURCE_TYPE_CONFLUENCE:8,EVENT_SOURCE_TYPE_GITLAB:9,EVENT_SOURCE_TYPE_TEAMS:10,EVENT_SOURCE_TYPE_AZURE_DEVOPS:11};function l5(e){if(typeof e=="number")return e;if(typeof e=="string")return s5[e]??void 0}function mX(e){if(typeof e=="number")return e;if(typeof e=="string"){let t=Number(e);return Number.isFinite(t)?t:void 0}}function yn(e){let t=e,n=t.workflow_id??t.workflowId??"",r=t.slug??"",o=t.event_source_id??t.eventSourceId??"",i=t.expert_id??t.expertId??"",s=mX(t.resource_version??t.resourceVersion),l=t.created_at??t.createdAt,a=t.override_auto_cleanup_on_idle??t.overrideAutoCleanupOnIdle,c=t.initial_instructions??t.initialInstructions,d=t.actor_user_id??t.actorUserId,u=t.per_minute_create_agent_limit??t.perMinuteCreateAgentLimit,h=typeof u=="number"?u:void 0;return{workflowId:n,...r?{slug:r}:{},eventSourceId:o,name:e.name??"",description:e.description,enabled:e.enabled??!0,...typeof a=="boolean"?{overrideAutoCleanupOnIdle:a}:{},...typeof c=="string"?{initialInstructions:c}:{},...typeof d=="string"?{actorUserId:d}:{},...h===void 0?{}:{perMinuteCreateAgentLimit:h},expertId:i,resourceVersion:s,createdAt:l?new Date(l):void 0,raw:e}}function Er(e){let t=e,n=t.event_source_id??t.eventSourceId??"",r=t.slug??"",o=l5(t.event_source_type??t.eventSourceType),i=t.user_id??t.userId,s=t.tenant_id??t.tenantId,l=mX(t.resource_version??t.resourceVersion),a=t.created_at??t.createdAt;return{eventSourceId:n,...r?{slug:r}:{},eventSourceType:o,name:e.name??n,active:e.active??!0,userId:i,tenantId:s,resourceVersion:l,createdAt:a?new Date(a):void 0,raw:e}}function AX(e,t=64){if(!e)return;let n=e.replace(/[^a-zA-Z0-9!#$%&'*+-.^_`|~]/g,"").slice(0,t);return n.length>0?n:void 0}function Bb(e){if(!e)return;let t=e.split("/").map(n=>AX(n)).filter(n=>!!n);return t.length>0?t.join("/"):void 0}var d5={debug:()=>{},error:()=>{},info:()=>{},warn:()=>{}},u5={0:"ok",1:"cancelled",2:"unknown",3:"unavailable",4:"unimplemented",5:"invalidArgument",6:"resourceExhausted",7:"unauthenticated",8:"permissionDenied",9:"deadlineExceeded",10:"augmentTooLarge",11:"augmentClientTimeout",12:"augmentUpgradeRequired"},gX=500,Cb=3e4,Ro=class extends It{apiStatus;originalError;errorDetails;responseBodyMessage;responseBodyText;httpUrl;httpStatus;httpRetryAfter;retryBehavior;isRetriable;shouldBackoff;requestId;constructor(t,n,r,o={}){super(n?.status??0,n?.statusText??"",o.responseBodyText??"",o.responseBodyMessage,o.errorReason??o.errorDetails),t!==void 0&&(this.message=t),this.name="APIError",this.apiStatus=n?h5(n.status):3,this.originalError=o.originalError,this.errorDetails=o.errorDetails,this.responseBodyMessage=o.responseBodyMessage,this.responseBodyText=o.responseBodyText,this.httpUrl=f5(n?.url),this.httpStatus=n?.status;let i=n?.headers.get("retry-after");this.httpRetryAfter=i?S5(i):void 0,this.retryBehavior=b5(n?.status),this.isRetriable=this.status===1||this.status===3,this.shouldBackoff=n?.status===429,this.requestId=n?.headers.get("x-request-id")??r}get status(){return this.apiStatus}},oc=class extends Error{status=3;isRetriable=!0;shouldBackoff=!1;originalError;constructor(t,n){super(t,{cause:n}),this.name="APITransportError",this.originalError=n}};function h5(e){let t={400:5,401:7,403:8,404:4,408:11,413:10,426:12,429:6,499:1,504:9};return t[e]!==void 0?t[e]:e>=500&&e<600?3:2}function b5(e){if(e===429||e===503)return"retry";if(e===402||e===403)return"sinkhole"}function f5(e){try{return e?new URL(e):void 0}catch{return}}function m5(e){return e.length>gX?`${e.slice(0,gX)}\u2026(truncated, ${e.length} chars total)`:e}var A5=/^[\uDC00-\uDFFF]|[\uD800-\uDBFF]$/g,V5=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g;function g5(e){return JSON.stringify(e,(t,n)=>typeof n=="string"?n.replace(A5,"").replace(V5,"\uFFFD"):n)}function p5(e){try{return JSON.stringify(e).length}catch{return 0}}function E5(e){let t="0123456789ABCDEFGHJKMNPQRSTVWXYZ",n=0n;if(e.length!==26)throw new Error("agent id is not a 26-character ULID");for(let o of e.toUpperCase()){let i=t.indexOf(o);if(i<0)throw new Error("agent id contains an invalid ULID character");n=n*32n+BigInt(i)}let r=n.toString(16).padStart(32,"0").slice(-32);return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}function R5(e,t){return t?.aborted?!1:e instanceof Ro?[1,4,8].includes(e.status)?!1:e.httpStatus!==402:!(e instanceof It&&e.statusCode===402)}async function Z5(e,t){let n=await e.text(),r=n.trim()?m5(n.trim()):void 0,o,i,s;try{let l=JSON.parse(n);i=l.error_details,s=l.error_reason??l.errorReason,typeof l.error=="string"?o=l.error:typeof l.message=="string"&&(o=l.message)}catch{}return new Ro(void 0,e,t,{errorDetails:i,errorReason:s,responseBodyMessage:o,responseBodyText:r})}function S5(e){let t=Number(e);if(Number.isFinite(t))return new Date(Date.now()+t*1e3);let n=new Date(e);return Number.isNaN(n.getTime())?void 0:n}function X5(e){return e.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function W5(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}function wn(e){return Array.isArray(e)?e.map(wn):e===null||typeof e!="object"?e:Object.fromEntries(Object.entries(e).map(([t,n])=>[W5(t),wn(n)]))}function G5(e,t){if(typeof e!="string")throw new Error(`Expected ${t} to be a string`);return e}function Yb(e,t){if(!Array.isArray(e)||e.some(n=>typeof n!="string"))throw new Error(`Expected ${t} to be an array of strings`);return e}function I5(e){if(typeof e=="number")return e;if(typeof e=="string")return fo[e]??fo.REASON_UNSPECIFIED}function N5(e){if(!e||typeof e!="object")return;let t=e;return{...typeof t.code=="number"?{code:t.code}:{},...typeof t.message=="string"?{message:t.message}:{},...typeof t.detail=="string"?{detail:t.detail}:{}}}function rc(e){return{checkpoint_id:e.checkpointId,added_blobs:e.addedBlobs,deleted_blobs:e.deletedBlobs}}function F5(e,t){if(!t)return{};if(e===13||e===14)return{extra_tool_input:{atlassian_tool_extra_input:{server_url:t.serverUrl,personal_api_token:t.personalApiToken,username:t.username}}};let n;return e===15?n="notion_tool_extra_input":e===12?n="linear_tool_extra_input":e===8&&(n="github_tool_extra_input"),n?{extra_tool_input:{[n]:{api_token:t.apiToken}}}:{}}function B5(e){let t={},n={enableParallelTools:"enable_parallel_tool_use",language:"lang",pathName:"path",senderUserId:"poseidon_sender_user_id",thirdPartyOverride:"third_party_override"};for(let[r,o]of Object.entries(e))if(!(r==="signal"||r==="sessionId"||o===void 0))if(r==="thirdPartyOverride"){let i=e.thirdPartyOverride;t.third_party_override={...i?.providerModelName===void 0?{}:{provider_model_name:i.providerModelName},...i?.apiKey===void 0?{}:{api_key:i.apiKey},...i?.baseUrl===void 0?{}:{base_url:i.baseUrl}}}else t[n[r]??X5(r)]=r==="blobs"?rc(o):o;return t.tool_definitions??=[],t.nodes??=[],t.rules??=[],t.skills??=[],t.mode??="CHAT",t.feature_detection_flags={support_tool_use_start:e.enableSupportToolUseStart,support_parallel_tool_use:e.enableParallelTools},t}function C5(e){if(typeof e!="string")return"unknown";let t=e.toLowerCase().replace("_tier","");return t==="community"||t==="professional"||t==="enterprise"?t:"unknown"}var ic={UNSPECIFIED:0,SECRET_URL:1,TENANT:2};function Y5(e){if(!e.startsWith("https://"))return!1;try{return new URL(e).hostname!==""}catch{return!1}}var y5={"secret-url":ic.SECRET_URL,tenant:ic.TENANT};function U5(e,t){return e===ic.TENANT||e==="HOSTED_ARTIFACT_VISIBILITY_TENANT"?"tenant":e===ic.SECRET_URL||e==="HOSTED_ARTIFACT_VISIBILITY_SECRET_URL"?"secret-url":t}function w5(e){let t=typeof e.size_bytes=="string"?Number(e.size_bytes):e.size_bytes??0;return{hostedArtifactId:e.hosted_artifact_id??"",visibility:U5(e.visibility,"secret-url"),mediaType:e.media_type??"",sizeBytes:t,sha256Hex:e.sha256_hex??"",label:e.label??"",ownerUserId:e.owner_user_id??"",canonicalUrl:e.canonical_url??"",createdAt:e.created_at??"",expiresAt:e.expires_at??""}}var yb="environment",x5={1:"pending",2:"running",3:"cancel_requested",4:"succeeded",5:"failed",6:"canceled"},v5={1:"queued",2:"preparing",3:"building",4:"promoting",6:"building"},J5=5,k5={[ln.BASE_IMAGE_REBUILD]:"build",[ln.BASE_IMAGE_BUILD]:"build",[ln.REFRESH]:"refresh",[ln.REPOSITORY_RECONCILE]:"reconcile",[J5]:"update"};function _5(e){if(e===void 0)return"build";if(e!==ln.UNSPECIFIED)return k5[e]??"unknown"}function pX({sandboxProviderId:e,displayName:t,description:n,visibility:r,baseImage:o,refreshEnabled:i,repos:s,environmentVariables:l,tags:a,spaceId:c}){return{config:{...e===void 0?{}:{sandbox_provider_id:e},display_name:t,description:n,visibility:r,...s?{repos:s.map(d=>({owner:d.owner,name:d.name,branch:d.branch,...d.host?{host:d.host}:{},...d.project?{project:d.project}:{}}))}:{},...l?{environment_variables:{variables:l.variables.map(d=>({name:d.name,value:d.value}))}}:{},...i===void 0?{}:{refresh_enabled:i},tags:a??{},...c===void 0?{}:{space_id:c}},...o?{base_image:o}:{}}}function EX({imageId:e,sandboxProviderId:t,displayName:n,description:r,visibility:o,baseImage:i,refreshEnabled:s,repos:l,environmentVariables:a,expectedResourceVersion:c,tags:d,spaceId:u}){return{image_id:e,...t===void 0?{}:{sandbox_provider_id:t},...n===void 0?{}:{display_name:n},...r===void 0?{}:{description:r},...o===void 0?{}:{visibility:o},...i===void 0?{}:{base_image:i},...s===void 0?{}:{refresh_enabled:s},...l?{repos:l.map(h=>({owner:h.owner,name:h.name,...h.branch?{branch:h.branch}:{},...h.host?{host:h.host}:{},...h.project?{project:h.project}:{}})),has_repos:!0}:{},...a?{environment_variables:{variables:a.variables.map(h=>({name:h.name,value:h.value}))}}:{},...c===void 0?{}:{expected_resource_version:c},...d===void 0?{}:{tags:d,has_tags:!0},...u===void 0?{}:{space_id:u}}}function Q5(e){return{eventId:e.event_id??"",source:e.source??"",eventType:e.event_type??"",payloadJson:e.payload_json??"",receivedAt:e.received_at?new Date(e.received_at):void 0,tenantId:e.tenant_id,userId:e.user_id,webhookId:e.webhook_id||void 0}}var T5=50,Ub="expert",K5=1e3;function wb(e){return{groupId:e.group_id??"",name:e.name??"",description:e.description??"",createdBy:e.created_by??"",createdAt:e.created_at??"",updatedAt:e.updated_at??""}}function z5(e){switch(e){case 1:case"CLOUD_GROUP_MEMBER_KIND_HUMAN":return"human";case 2:case"CLOUD_GROUP_MEMBER_KIND_SERVICE_ACCOUNT":return"service_account";default:return"unspecified"}}function D5(e){return{userId:e.user_id??"",addedAt:e.added_at??"",addedBy:e.added_by??"",email:e.email??"",givenName:e.given_name??"",familyName:e.family_name??"",addedByName:e.added_by_name??"",principalKind:z5(e.principal_kind),serviceName:e.service_name??""}}function RX(e,t){let n=t.members??[],r=t.serviceAccounts??[];return r.length===0?{group_id:e,members:n}:{group_id:e,selectors:[...n.map(o=>({member:o})),...r.map(o=>({service_account:o}))]}}var L5="This deployment does not support service-account selectors yet. Pass the service account's user id as a member instead.";function H5(e,t){return t.selectors===void 0||t.members!==void 0||!(e instanceof It)||e.statusCode!==400?!1:[e.serverMessage,e.responseBody,e.message].some(n=>n!==void 0&&/\bmembers is required\b/.test(n))}async function ZX(e,t){try{return await e()}catch(n){throw H5(n,t)?new Error(L5):n}}function SX(e){return{id:e.id??"",label:e.label??"",description:e.description??"",connected:e.connected??!1,statusKind:e.status_kind??"",statusLabel:e.status_label??"",details:(e.details??[]).map(t=>({key:t.key??"",label:t.label??"",value:t.value??""})),actions:(e.actions??[]).map(t=>({kind:t.kind??"",label:t.label??"",url:t.url??""}))}}var M5=404,XX={UNSPECIFIED:0,USER:1,TENANT:2},O5={user:XX.USER,tenant:XX.TENANT},xb="daemon_pool";function j5(e){return e===1||e==="1"||e==="DAEMON_POOL_WORKSPACE_ISOLATION_POLICY_FORCE_ISOLATED"||e==="CLOUD_DAEMON_POOL_WORKSPACE_ISOLATION_POLICY_FORCE_ISOLATED"?"isolated":e===2||e==="2"||e==="DAEMON_POOL_WORKSPACE_ISOLATION_POLICY_FORCE_SHARED"||e==="CLOUD_DAEMON_POOL_WORKSPACE_ISOLATION_POLICY_FORCE_SHARED"?"shared":"unspecified"}var vb="sandbox_backend";function P5(e){return e.provider_type===1||e.provider_type==="CLOUD_SANDBOX_PROVIDER_TYPE_SYSTEM_MANAGED"?"system-managed":(e.provider_type===2||e.provider_type==="CLOUD_SANDBOX_PROVIDER_TYPE_USER_MANAGED","user-managed")}function Rr(e){return{id:e.id??"",slug:e.slug??"",displayName:e.display_name??e.slug??"",description:e.description||void 0,type:P5(e),enabled:e.enabled===!0,createdByUserId:e.created_by_user_id||void 0,createdAt:e.created_at?new Date(e.created_at):void 0,updatedAt:e.updated_at?new Date(e.updated_at):void 0,resourceVersion:String(e.resource_version??""),deletedAt:e.deleted_at?new Date(e.deleted_at):void 0,spaceIds:e.space_ids??[],allSpaces:e.all_spaces??e.space_ids===void 0}}function WX({connectorUserId:e,connectorServiceAccount:t}){if(e!==void 0&&t!==void 0)throw new Error("Use only one of connectorUserId or connectorServiceAccount.");if(e!==void 0)return{user_id:e};if(t!==void 0)return{service_account_name:t}}function $a(e){let t=e.connector,n=q5(e.resource_version);return{id:e.id??"",displayName:e.display_name??e.id??"",description:e.description,visibility:e.visibility,daemonConnectorUserId:e.daemon_connector_user_id??(typeof t?.user_id=="string"?t.user_id:void 0),daemonConnectorServiceAccountName:e.daemon_connector_service_account_name??(typeof t?.service_account_name=="string"?t.service_account_name:void 0),spaceId:e.space_id,workspaceIsolation:j5(e.workspace_isolation_policy??e.workspace_isolation),createdByUserId:e.created_by_user_id,createdByUserName:e.created_by_user_name,createdAt:e.created_at?new Date(e.created_at):void 0,updatedAt:e.updated_at?new Date(e.updated_at):void 0,resourceVersion:n}}function q5(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isInteger(t)&&t>=0?t:void 0}}function $5(e){if(e)return{daemonsOnline:e.daemons_online,slotsTotal:e.slots_total,slotsInUse:e.slots_in_use,lastDaemonSeen:e.last_daemon_seen?new Date(e.last_daemon_seen):void 0}}function ek(e){return{vmId:e.vm_id??"",name:e.name,slotsTotal:e.slots_total,slotsInUse:e.slots_in_use,workspacePath:e.workspace_path,connectedAt:e.connected_at?new Date(e.connected_at):void 0,lastHeartbeat:e.last_heartbeat?new Date(e.last_heartbeat):void 0,poolId:e.pool_id,cliVersion:e.cli_version}}function tk(e){return{agentId:e.agent_id??"",addedAt:e.added_at??""}}function ts(e){return{projectId:e.project_id??"",name:e.name??"",description:e.description??"",createdAt:e.created_at??"",updatedAt:e.updated_at??"",createdBy:e.created_by??"",agents:(e.agents??[]).map(tk)}}var Jb="resident";function yX(e){return typeof e=="number"?e:e==="CLOUD_RESIDENT_SCOPE_TENANT"?1:e==="CLOUD_RESIDENT_SCOPE_USER"?2:0}function nk(e){let t;return e.vm_config!=null?t={type:"base_image",vmConfig:{baseImageId:e.vm_config.base_image_id,...e.vm_config.resources==null?{}:{resources:{cpuCores:e.vm_config.resources.cpu_cores,memoryMib:e.vm_config.resources.memory_mib}}}}:e.daemon_vm_id!=null?t={type:"daemon",daemonVmId:e.daemon_vm_id}:e.daemon_pool_id!=null&&(t={type:"pool",daemonPoolId:e.daemon_pool_id}),{...e.model===void 0?{}:{model:e.model},...e.reasoning_effort===void 0?{}:{reasoningEffort:e.reasoning_effort},...t===void 0?{}:{environment:t}}}function rk(e){return{...e.slack?{slack:{mentionable:e.slack.mentionable??!1,...e.slack.usergroup_handle===void 0?{}:{usergroupHandle:e.slack.usergroup_handle},...e.slack.home_channel_id===void 0?{}:{homeChannelId:e.slack.home_channel_id},...e.slack.direct_messages_enabled===void 0?{}:{directMessagesEnabled:e.slack.direct_messages_enabled}}}:{}}}function ok(e){return{...e.slack?{slack:{...e.slack.subteam_id===void 0?{}:{subteamId:e.slack.subteam_id},...e.slack.last_synced_at?{lastSyncedAt:new Date(e.slack.last_synced_at)}:{},...e.slack.error===void 0?{}:{error:e.slack.error}}}:{}}}function UX(e){return{name:e.name,description:e.description,expertId:e.expert_id,initialMessage:e.initial_message,overrides:e.overrides?nk(e.overrides):void 0,runAsUserId:e.run_as_user_id,presence:e.presence?rk(e.presence):void 0,icon:e.icon,tags:e.tags??{}}}function Zr(e){return{residentId:e.resident_id,scope:yX(e.scope),config:e.config?UX(e.config):void 0,userId:e.user_id,createdAt:e.created_at?new Date(e.created_at):void 0,updatedAt:e.updated_at?new Date(e.updated_at):void 0,resourceVersion:e.resource_version,currentAgentId:e.current_agent_id,startedAt:e.started_at?new Date(e.started_at):void 0,effectiveRole:e.effective_role||void 0,deletedAt:e.deleted_at?new Date(e.deleted_at):void 0,presenceStatus:e.presence_status?ok(e.presence_status):void 0,...e.space_summary?{spaceSummary:{spaceId:e.space_summary.space_id??"",displayName:e.space_summary.display_name??""}}:{}}}function ik(e){return{agentId:e.agent_id,status:e.status??"",startedAt:e.started_at?new Date(e.started_at):void 0,endedAt:e.ended_at?new Date(e.ended_at):void 0}}function GX(e){return{resourceVersion:e.resource_version??0,config:e.config?UX(e.config):void 0,scope:yX(e.scope),modifiedBy:e.modified_by??"",modifiedAt:e.modified_at?new Date(e.modified_at):void 0,changeType:e.change_type??""}}function sk(e){let t={};e.model!==void 0&&(t.model=e.model),e.reasoningEffort!==void 0&&(t.reasoning_effort=e.reasoningEffort);let n=e.environment;if(n)switch(n.type){case"base_image":t.vm_config={base_image_id:n.vmConfig.baseImageId,...n.vmConfig.resources==null?{}:{resources:{cpu_cores:n.vmConfig.resources.cpuCores,memory_mib:n.vmConfig.resources.memoryMib}}};break;case"daemon":t.daemon_vm_id=n.daemonVmId;break;case"pool":t.daemon_pool_id=n.daemonPoolId;break}return t}function lk(e){let t={};return e.slack&&(t.slack={mentionable:e.slack.mentionable,...e.slack.usergroupHandle===void 0?{}:{usergroup_handle:e.slack.usergroupHandle},...e.slack.homeChannelId===void 0?{}:{home_channel_id:e.slack.homeChannelId},...e.slack.directMessagesEnabled===void 0?{}:{direct_messages_enabled:e.slack.directMessagesEnabled}}),t}function IX(e){return{name:e.name,...e.description===void 0?{}:{description:e.description},expert_id:e.expertId,...e.initialMessage===void 0?{}:{initial_message:e.initialMessage},...e.overrides===void 0?{}:{overrides:sk(e.overrides)},...e.runAsUserId===void 0?{}:{run_as_user_id:e.runAsUserId},...e.presence===void 0?{}:{presence:lk(e.presence)},...e.icon===void 0?{}:{icon:e.icon},...e.tags===void 0?{}:{tags:e.tags,has_tags:!0}}}var ak={personal:1,space:2,organization:3},wX={user:1,tenant:2};function ck(e){let t={name:e.name,scope:wX[e.scope]};if(e.value!==void 0&&(t.value=e.value),e.expectedVersion!==void 0?t.expected_version=e.expectedVersion:e.secretId===void 0&&(t.expected_version="0"),e.secretId===void 0){if(e.applicability===void 0)throw new Error("applicability is required for stable create");if(e.value===void 0)throw new Error("value is required for stable create");t.applicability=ak[e.applicability]}else t.secret_id=e.secretId,e.value===void 0&&(t.preserve_value=!0);return dk(t,e),uk(t,e),t}function dk(e,t){if(t.allSpaces===!0&&(t.spaceIds?.length??0)>0)throw new Error("allSpaces and non-empty spaceIds are mutually exclusive");if(t.allSpaces===!0){e.update_spaces=!0,e.all_spaces=!0,e.space_ids=[];return}(t.applicability==="space"||t.spaceIds!==void 0)&&(e.update_spaces=!0,e.all_spaces=!1,e.space_ids=[...t.spaceIds??[]].sort())}function uk(e,t){t.description!==void 0&&(e.description=t.description,t.secretId!==void 0&&(e.update_description=!0)),t.tags!==void 0&&(e.tags=t.tags,t.secretId!==void 0&&(e.update_tags=!0))}var ns={user:1,tenant:2};function hk(e){switch(e){case 1:case"SECRET_APPLICABILITY_PERSONAL":return"personal";case 2:case"SECRET_APPLICABILITY_SPACE":return"space";case 3:case"SECRET_APPLICABILITY_ORGANIZATION":return"organization";default:return}}function ec(e,t,n){let r=hk(e.applicability),o=r!==void 0||Array.isArray(e.space_ids)||typeof e.all_spaces=="boolean",i;o&&(i=Array.isArray(e.space_ids)?e.space_ids.filter(l=>typeof l=="string"):[]);let s=o?e.all_spaces===!0:void 0;return{name:e.name??t,scope:n,description:e.description??"",tags:e.tags??{},version:e.version??"",createdAt:e.created_at??"",updatedAt:e.updated_at??"",valueSizeBytes:e.value_size_bytes??0,...i===void 0?{}:{spaceIds:i},...s===void 0?{}:{allSpaces:s},...r===void 0?{}:{applicability:r},...e.secret_id===void 0?{}:{secretId:e.secret_id},...e.olac_ready===void 0?{}:{olacReady:e.olac_ready}}}function bk(e){if(e===void 0)return;let t=Object.entries(e);return t.length===0?void 0:t.map(([n,r])=>({key:n,values:[r]}))}var kb="secret",Un=L.child({prefix:"cloud-http"});var xX=1e4,fk=2,mk={UNKNOWN:0,TOOL_PROVIDER:1,AGENT:2,WAITING:3},Ak=["vfs_space_id","command_handler_ready","mcp_credential_revision","desktop_ensure","mcp_targeted_credential_update","mcp_target_material_v1","mcp_passive_credential_install_v1","mcp_target_material_stdio_v1","provisioning_generation","mcp_scoped_secret_revision_domain_v1"],Vk={0:"UNKNOWN",1:"IDLE",2:"PROCESSING",3:"TERMINATED",4:"COMPLETED",5:"STARTING",6:"WAITING_FOR_INPUT"},gk={0:"unspecified",1:"CLI",2:"cloud VM",3:"local daemon",AGENT_EXECUTION_ENVIRONMENT_UNSPECIFIED:"unspecified",AGENT_EXECUTION_ENVIRONMENT_CLI:"CLI",AGENT_EXECUTION_ENVIRONMENT_MODAL_VM:"cloud VM",AGENT_EXECUTION_ENVIRONMENT_DAEMON:"local daemon"};function NX(e,t,n){if(typeof e!="string"&&typeof e!="number")return;let r=String(e);return r in t?t[r]??r:r.startsWith(n)?r.slice(n.length):r}function FX(e){return e instanceof Date?e.toISOString():e}function pk(e={}){let t={limit:e.limit??100};return e.parentAgentId&&(t.parent_agent_id=e.parentAgentId),e.includeOlacShared!==void 0&&(t.include_olac_shared=e.includeOlacShared),e.spaceId&&(t.space_id=e.spaceId),e.searchQuery&&(t.search_query=e.searchQuery),e.includeArchived&&(t.include_archived=!0),e.expertId&&(t.expert_id=e.expertId),e.createdAfter&&(t.created_after=FX(e.createdAfter)),e.createdBefore&&(t.created_before=FX(e.createdBefore)),(e.includeShared!==void 0||e.includeTenantShared!==void 0)&&(t.include_shared=e.includeShared??e.includeTenantShared),e.defaultSpaceOnly&&(t.default_space_only=!0),e.pageToken&&(t.page_token=e.pageToken),t}function po(e){let t=r=>typeof r=="string"?new Date(r):void 0,n=r=>typeof r=="string"&&r?r:void 0;return{agentId:n(e.agent_id)??"",agentName:n(e.agent_name)??"",status:NX(e.status,Vk,"CLOUD_AGENT_STATUS_"),...Array.isArray(e.capabilities)?{capabilities:e.capabilities.filter(r=>typeof r=="number")}:{},createdAt:t(e.created_at),updatedAt:t(e.updated_at),...Array.isArray(e.tags)?{tags:e.tags.filter(r=>typeof r=="string")}:{},expertId:n(e.expert_id),spaceId:n(e.space_id),workflowId:n(e.workflow_id),model:n(e.model),reasoningEffort:n(e.reasoning_effort),environmentId:n(e.environment_id),daemonId:n(e.daemon_id),daemonPoolId:n(e.daemon_pool_id),parentAgentId:n(e.parent_agent_id),...typeof e.archived=="boolean"?{archived:e.archived}:{},...e.execution_environment===void 0?{}:{executionEnvironment:NX(e.execution_environment,gk,"AGENT_EXECUTION_ENVIRONMENT_")}}}function Ek(e,t){let n={agent_id:e.agentId,workspace_path:e.workspacePath,connection_mode:t,available_tools:[],client_capabilities:[...Ak,...e.extraClientCapabilities??[]]};return e.vmId!==void 0&&(n.vm_id=e.vmId),e.capabilityInstanceId&&(n.capability_instance_id=e.capabilityInstanceId),e.provisioningGeneration!==void 0&&(n.provisioning_generation=e.provisioningGeneration),e.parentVmId!==void 0&&(n.parent_vm_id=e.parentVmId),e.daemonCommandId!==void 0&&(n.daemon_command_id=e.daemonCommandId),e.cliVersion&&(n.cli_version=e.cliVersion),n}function Rk(e,t,n){let r={vmId:n,agentId:e.agentId},o=t.active_generation_epoch;typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&(r.activeGenerationEpoch=o);let i=t.connection_version;typeof i=="number"&&Number.isSafeInteger(i)&&i>0&&(r.connectionVersion=i),t.session_config&&(r.sessionConfig=Zk(t.session_config));let s=Sk(t.remote_tools);return s.length>0&&(r.remoteTools=s),t.vfs_filesystems&&Object.keys(t.vfs_filesystems).length>0&&(r.vfsFilesystems=t.vfs_filesystems),t.space_id&&(r.spaceId=t.space_id),t.expert_id&&(r.expertId=t.expert_id),t.workflow_id&&(r.workflowId=t.workflow_id),r}function Zk(e){return{systemPrompt:e.system_prompt,includeDefaultSystemPrompt:e.include_default_system_prompt,model:e.model,reasoningEffort:e.reasoning_effort??e.reasoningEffort,userMetadata:e.user_metadata,useAllExpertsAsWorkers:e.use_all_experts_as_workers}}function Sk(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!="object")continue;let r=n,o=typeof r.name=="string"?r.name:"";o&&t.push({name:o,description:typeof r.description=="string"?r.description:"",inputSchemaJson:typeof r.input_schema_json=="string"?r.input_schema_json:"",toolSafety:typeof r.tool_safety=="string"?r.tool_safety:""})}return t}function Sr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Eo(e,...t){for(let n of t){let r=e[n];if(Sr(r))return r}}function Te(e,...t){for(let n of t){let r=e[n];if(typeof r=="string")return r}}function Xk(e){if(!Sr(e))return{};let t={},n=Te(e,"stop_reason","stopReason"),r=e.is_partial??e.isPartial,o=e.is_final??e.isFinal;return n!==void 0&&(t.stopReason=n),typeof r=="boolean"&&(t.isPartial=r),typeof o=="boolean"&&(t.isFinal=o),t}function Wk(e,t){let n=[];if(Array.isArray(e.content))for(let o of e.content){let i=Gk(o);if(i!==null){n.push(i);continue}if(o==null||Ik(o))continue;let s=Sr(o)?`object keys=[${Object.keys(o).join(",")}]`:`type=${typeof o}`;Un.warn(`getMessages: dropping unparseable content block in agent ${t} message ${e.id??"<unknown>"}: ${s}`)}let r=n.filter(o=>o.kind==="text").map(o=>o.text).join("");return{messageId:e.id??"",role:e.role??"",content:r,contentBlocks:n,createdAt:e.created_at?new Date(e.created_at):void 0,...Xk(e.metadata)}}function Gk(e){if(typeof e=="string")return e.trim().length>0?{kind:"text",text:e}:null;if(!Sr(e))return null;let t=Sr(e.block)?e.block:e,n=Eo(t,"text","Text");if(n){let l=Te(n,"text");if(l!==void 0&&l.trim().length>0)return{kind:"text",text:l}}let r=Eo(t,"tool_use","toolUse","ToolUse");if(r){let l=Te(r,"id"),a=Te(r,"name");if(!l||!a)return null;let c=Te(r,"input");return{kind:"tool_use",toolUseId:l,toolName:a,inputJson:c&&c.trim().length>0?c:"{}"}}let o=Eo(t,"tool_result","toolResult","ToolResult");if(o){let l=Te(o,"tool_use_id","toolUseId");if(!l)return null;let a=o.is_error??o.isError;return{kind:"tool_result",toolUseId:l,content:Te(o,"content")??"",isError:typeof a=="boolean"?a:!1}}let i=Eo(t,"thinking","Thinking");if(i){let l=Te(i,"content"),a=Te(i,"summary"),c=Te(i,"encrypted_content","encryptedContent"),d=Te(i,"provider");if(l!==void 0||a!==void 0||c!==void 0)return{kind:"thinking",content:l??"",...a===void 0?{}:{summary:a},...c===void 0?{}:{encryptedContent:c},...d===void 0?{}:{provider:d}}}let s=Eo(t,"external_event","externalEvent","ExternalEvent");if(s){let l=Te(s,"source")??"",a=Te(s,"event_type","eventType")??"",c=Te(s,"summary")??"";return l===""&&a===""&&c===""?null:{kind:"external_event",source:l,eventType:a,summary:c,details:Te(s,"details")??"",subscriptionId:Te(s,"subscription_id","subscriptionId")}}return null}function Ik(e){if(typeof e=="string")return e.trim().length===0;if(!Sr(e))return!1;let t=Sr(e.block)?e.block:e,n=Eo(t,"text","Text");if(!n)return!1;let r=Te(n,"text");return r!==void 0&&r.trim().length===0}function Nk(e){return"poolId"in e?{pool_id:e.poolId}:{daemon_vm_id:e.daemonVmId}}var _b="space";function tc(e){return{spaceId:e.space_id??"",displayName:e.display_name??"",normalizedName:e.normalized_name??"",createdAt:e.created_at??"",updatedAt:e.updated_at??"",createdBy:e.created_by??"",pinnedExpertIds:e.pinned_expert_ids??[]}}function Qb(e){return{tunnelId:e.tunnel_id??"",agentId:e.agent_id??"",vmId:e.vm_id??"",localHost:e.local_host??"",localPort:e.local_port??0,label:e.label??"",mode:e.mode??0,status:e.status??0,host:e.host??"",createdAt:e.created_at??"",expiresAt:e.expires_at??""}}var go={user:Ao.PRIVATE,tenant:Ao.SHARED},Fk={personal:cn.PERSONAL,space:cn.SPACE,organization:cn.ORGANIZATION};function Kb(e){return Array.isArray(e)?e.map(Kb):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,t==="value"&&typeof n=="string"?"<redacted>":Kb(n)])):e}function Bk(e){if(e===cn.PERSONAL||e==="SECRET_APPLICABILITY_PERSONAL")return"personal";if(e===cn.SPACE||e==="SECRET_APPLICABILITY_SPACE")return"space";if(e===cn.ORGANIZATION||e==="SECRET_APPLICABILITY_ORGANIZATION")return"organization"}function nc(e,t){let n=e.scope===Ao.SHARED||e.scope==="SECRET_SCOPE_SHARED"?"tenant":t,r=Bk(e.applicability),o=e.space_ids??(e.space_id===void 0||e.space_id===""?[]:[e.space_id]);return{name:e.name??"",scope:n,description:e.description??"",tags:e.tags??{},version:e.version??"",createdAt:e.created_at??"",updatedAt:e.updated_at??"",valueSizeBytes:e.value_size_bytes??0,spaceIds:o,allSpaces:e.all_spaces===!0,...r?{applicability:r}:{},...e.secret_id?{secretId:e.secret_id}:{},...e.olac_ready===void 0?{}:{olacReady:e.olac_ready}}}function Ck(e){if(!(!e||Object.keys(e).length===0))return Object.entries(e).map(([t,n])=>({key:t,values:[n]}))}var Qt="/cloud-agents/vfs",Yk=3e4;function BX(e){return{event_id:e.event_id??e.eventId,comment_id:e.comment_id??e.commentId,path:e.path,kind:e.kind,author_display_name:e.author_display_name??e.authorDisplayName,author_id:e.author_id??e.authorId,body:e.body,anchor:e.anchor?{version_seq:e.anchor.version_seq??e.anchor.versionSeq,quote:e.anchor.quote,line_hint:e.anchor.line_hint??e.anchor.lineHint}:void 0,created_at:e.created_at??e.createdAt,parent_id:e.parent_id??e.parentId}}var sc=[{name:"bearer",proto:"WEBHOOK_TYPE_BEARER",numeric:1,creatable:!0},{name:"gitlab",proto:"WEBHOOK_TYPE_GITLAB",numeric:2,creatable:!0},{name:"jira",proto:"WEBHOOK_TYPE_JIRA",numeric:3,creatable:!0},{name:"github",proto:"WEBHOOK_TYPE_GITHUB",numeric:6,creatable:!0},{name:"harness-code",proto:"WEBHOOK_TYPE_HARNESS_CODE",numeric:58,creatable:!0},{name:"harness-pipeline-notification",proto:"WEBHOOK_TYPE_HARNESS_PIPELINE_NOTIFICATION",numeric:59,creatable:!0},{name:"stripe",proto:"WEBHOOK_TYPE_STRIPE",numeric:5,creatable:!0},{name:"sentry",proto:"WEBHOOK_TYPE_SENTRY",numeric:9,creatable:!0},{name:"datadog",proto:"WEBHOOK_TYPE_DATADOG",numeric:10,creatable:!0},{name:"buildkite",proto:"WEBHOOK_TYPE_BUILDKITE",numeric:11,creatable:!0},{name:"launchdarkly",proto:"WEBHOOK_TYPE_LAUNCHDARKLY",numeric:12,creatable:!0},{name:"circleci",proto:"WEBHOOK_TYPE_CIRCLECI",numeric:13,creatable:!0},{name:"snyk",proto:"WEBHOOK_TYPE_SNYK",numeric:14,creatable:!0},{name:"sonarqube",proto:"WEBHOOK_TYPE_SONARQUBE",numeric:15,creatable:!0},{name:"semgrep",proto:"WEBHOOK_TYPE_SEMGREP",numeric:16,creatable:!0},{name:"argocd",proto:"WEBHOOK_TYPE_ARGOCD",numeric:17,creatable:!0},{name:"terraform-cloud",proto:"WEBHOOK_TYPE_TERRAFORM_CLOUD",numeric:18,creatable:!0},{name:"opsgenie",proto:"WEBHOOK_TYPE_OPSGENIE",numeric:19,creatable:!0},{name:"pagerduty",proto:"WEBHOOK_TYPE_PAGERDUTY",numeric:8,creatable:!0},{name:"azure-devops",proto:"WEBHOOK_TYPE_AZURE_DEVOPS",numeric:20,creatable:!0},{name:"bitbucket",proto:"WEBHOOK_TYPE_BITBUCKET",numeric:21,creatable:!0},{name:"auth0",proto:"WEBHOOK_TYPE_AUTH0",numeric:22,creatable:!0},{name:"okta",proto:"WEBHOOK_TYPE_OKTA",numeric:23,creatable:!0},{name:"zendesk",proto:"WEBHOOK_TYPE_ZENDESK",numeric:24,creatable:!0},{name:"intercom",proto:"WEBHOOK_TYPE_INTERCOM",numeric:25,creatable:!0},{name:"posthog",proto:"WEBHOOK_TYPE_POSTHOG",numeric:26,creatable:!0},{name:"resend",proto:"WEBHOOK_TYPE_RESEND",numeric:27,creatable:!0},{name:"chargebee",proto:"WEBHOOK_TYPE_CHARGEBEE",numeric:28,creatable:!0},{name:"workos",proto:"WEBHOOK_TYPE_WORKOS",numeric:29,creatable:!0},{name:"hubspot",proto:"WEBHOOK_TYPE_HUBSPOT",numeric:30,creatable:!0},{name:"notion",proto:"WEBHOOK_TYPE_NOTION",numeric:31,creatable:!0},{name:"jsm-operations",proto:"WEBHOOK_TYPE_JSM_OPERATIONS",numeric:32,creatable:!0},{name:"incident-io",proto:"WEBHOOK_TYPE_INCIDENT_IO",numeric:33,creatable:!0},{name:"sendgrid",proto:"WEBHOOK_TYPE_SENDGRID",numeric:34,creatable:!0},{name:"mailgun",proto:"WEBHOOK_TYPE_MAILGUN",numeric:35,creatable:!0},{name:"twilio",proto:"WEBHOOK_TYPE_TWILIO",numeric:36,creatable:!0},{name:"customer-io",proto:"WEBHOOK_TYPE_CUSTOMER_IO",numeric:37,creatable:!0},{name:"vanta",proto:"WEBHOOK_TYPE_VANTA",numeric:38,creatable:!1},{name:"new-relic",proto:"WEBHOOK_TYPE_NEW_RELIC",numeric:39,creatable:!0},{name:"grafana",proto:"WEBHOOK_TYPE_GRAFANA",numeric:40,creatable:!0},{name:"jfrog-xray",proto:"WEBHOOK_TYPE_JFROG_XRAY",numeric:41,creatable:!0},{name:"vercel",proto:"WEBHOOK_TYPE_VERCEL",numeric:42,creatable:!0},{name:"cloudflare",proto:"WEBHOOK_TYPE_CLOUDFLARE",numeric:43,creatable:!0},{name:"pulumi",proto:"WEBHOOK_TYPE_PULUMI",numeric:44,creatable:!0},{name:"harbor",proto:"WEBHOOK_TYPE_HARBOR",numeric:45,creatable:!0},{name:"aws-eventbridge",proto:"WEBHOOK_TYPE_AWS_EVENTBRIDGE",numeric:46,creatable:!0},{name:"clerk",proto:"WEBHOOK_TYPE_CLERK",numeric:47,creatable:!0},{name:"replicate",proto:"WEBHOOK_TYPE_REPLICATE",numeric:48,creatable:!0},{name:"daytona",proto:"WEBHOOK_TYPE_DAYTONA",numeric:49,creatable:!0},{name:"netlify",proto:"WEBHOOK_TYPE_NETLIFY",numeric:50,creatable:!0},{name:"azure-event-grid",proto:"WEBHOOK_TYPE_AZURE_EVENT_GRID",numeric:51,creatable:!0},{name:"rootly",proto:"WEBHOOK_TYPE_ROOTLY",numeric:52,creatable:!0},{name:"firehydrant",proto:"WEBHOOK_TYPE_FIREHYDRANT",numeric:53,creatable:!0},{name:"statuspage",proto:"WEBHOOK_TYPE_STATUSPAGE",numeric:54,creatable:!0},{name:"devrev",proto:"WEBHOOK_TYPE_DEVREV",numeric:55,creatable:!0},{name:"pylon",proto:"WEBHOOK_TYPE_PYLON",numeric:56,creatable:!1},{name:"plain",proto:"WEBHOOK_TYPE_PLAIN",numeric:57,creatable:!0}],yk=sc.filter(e=>e.creatable).map(e=>e.name),Tb="webhook",CX=Object.fromEntries(sc.map(e=>[e.name,e.proto])),Uk={WEBHOOK_TYPE_UNSPECIFIED:"bearer",...Object.fromEntries(sc.map(e=>[e.proto,e.name]))},wk=Object.fromEntries(sc.map(e=>[e.numeric,e.name]));function YX(e){if(e)return{steps:(e.steps??[]).map(t=>({title:t.title??"",bodyMarkdown:t.bodyMarkdown??t.body_markdown??""})),fields:(e.fields??[]).map(vk),webhookUrl:e.webhookUrl??e.webhook_url??"",secretSource:xk(e.secretSource??e.secret_source)}}function xk(e){return e===1||e==="SECRET_SOURCE_AUGMENT_GENERATED"?"augment_generated":e===2||e==="SECRET_SOURCE_SERVICE_PROVIDED"?"service_provided":"unknown"}function vk(e){let t=e.valueKind??e.value_kind;return{label:e.label??"",value:e.value??"",valueKind:Jk(t),literalValue:e.literalValue??e.literal_value??"",secret:e.secret===!0}}function Jk(e){return e===1||e==="SETUP_FIELD_VALUE_KIND_WEBHOOK_URL"?"webhook_url":e===2||e==="SETUP_FIELD_VALUE_KIND_SECRET"?"secret":e===3||e==="SETUP_FIELD_VALUE_KIND_LITERAL"?"literal":"unknown"}function kk(e){let t=e.failedWebhookIds??e.failed_webhook_ids??[];return{success:e.success??t.length===0,deletedWebhookIds:e.deletedWebhookIds??e.deleted_webhook_ids??[],failedWebhookIds:t}}function rs(e){return{webhookId:e.webhookId??e.webhook_id??"",description:e.description,url:e.url,type:_k(e.type),active:e.active??!1,userId:e.userId??e.user_id,tenantId:e.tenantId??e.tenant_id,createdAt:Qk(e.createdAt??e.created_at),capturedHeaders:e.capturedHeaders??e.captured_headers??[],raw:e}}function _k(e){return typeof e=="number"?wk[e]??"bearer":e?Uk[e]??"bearer":"bearer"}function Qk(e){if(!e)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}var Xr=class e{static userAgent;instanceUserAgent;static setUserAgent(t){e.userAgent=Bb(t)}static getUserAgent(){return e.userAgent??"augment-api-sdk"}apiToken;apiUrl;fetchImpl;sessionId=VX();logger;poseidonConfig;onExpertCapabilityMismatch;reportedExpertEndpoints=new Set;expertId;workflowId;constructor(t,n,r,o,i,s){let l="apiToken"in t?t:{apiToken:r??"",apiUrl:n??"",fetchImpl:s,logger:t,userAgent:o,apiCallTimeoutMs:i?.apiCallTimeoutMs};this.apiToken=l.apiToken,this.apiUrl=l.apiUrl.endsWith("/")?l.apiUrl:`${l.apiUrl}/`,this.instanceUserAgent=l.userAgent,this.fetchImpl=l.fetchImpl??globalThis.fetch,this.logger=l.logger??d5,this.onExpertCapabilityMismatch=l.onExpertCapabilityMismatch,this.poseidonConfig={...Fb,...l.apiCallTimeoutMs===void 0?{}:{apiCallTimeoutMs:l.apiCallTimeoutMs}}}getRpcClient(){return Wb({baseUrl:this.apiUrl,apiToken:this.apiToken,fetch:this.fetchImpl,sessionId:this.sessionId,expertId:()=>this.expertId,workflowId:()=>this.workflowId,userAgent:this.getUserAgent(),timeoutMs:this.poseidonConfig.apiCallTimeoutMs,errorReporting:t=>this.reportRequestFailure({bodyLength:t.bodyLength??0,endpoint:t.endpoint,error:t.error,requestId:t.requestId,startTime:t.startTime})})}getApiUrl(){return this.apiUrl}getAuthToken(){return this.apiToken}getUserAgent(){return e.userAgent??this.instanceUserAgent??"augment-api-sdk"}setUserAgent(t){e.setUserAgent(t)}getAuthHeaders(){return{Authorization:`Bearer ${this.apiToken}`,"User-Agent":this.getUserAgent()}}createRequestId(){return VX()}setExpertId(t){this.expertId=t}setWorkflowId(t){this.workflowId=t}async reportRequestFailure({bodyLength:t,endpoint:n,error:r,requestId:o,signal:i,startTime:s}){if(n==="report-error"||!R5(r,i))return;let l=r instanceof Ro||r instanceof oc?r.status:2;await this.reportError(o,`${n} call failed with APIStatus ${u5[l]??"unknown"}`,r.stack??"",[{key:"body_length",value:String(t)},{key:"start_time",value:String(s)},{key:"end_time",value:String(Date.now())},{key:"message",value:r.message}])}async request(t,n,r=this.createRequestId(),o,i=12e4,s=this.sessionId){let l=Date.now();try{return await this.requestWithoutReporting(t,n,r,o,i,s)}catch(a){let c=a instanceof Error?a:new Error(String(a));throw await this.reportRequestFailure({bodyLength:p5(n),endpoint:t,error:c,requestId:r,signal:o,startTime:l}),a}}async requestWithoutReporting(t,n,r,o,i,s){let l=new Headers({"x-request-id":r,"x-request-session-id":s,...this.expertId?{"x-expert-id":this.expertId}:{},...this.workflowId?{"x-workflow-id":this.workflowId}:{}}),a=AbortSignal.timeout(i),c=o&&typeof AbortSignal.any=="function"?AbortSignal.any([o,a]):o??a,d;try{d=await this.fetchImpl(new URL(t,this.apiUrl),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiToken}`,"User-Agent":this.getUserAgent(),...Object.fromEntries(l),...process.env.AUGMENT_SOURCE_AGENT_ID?{"x-augment-source-agent-id":process.env.AUGMENT_SOURCE_AGENT_ID}:{}},body:g5(n),signal:c})}catch(u){let h=u instanceof Error?u:void 0;throw new oc(`Augment request to ${new URL(t,this.apiUrl).toString()} failed: ${h?.message??String(u)}`,h)}if(!d.ok)throw await Z5(d,r);return d}async reportError(t,n,r,o){let i=r.replace(/ \(\/[^()]+\)/g,"");try{await this.requestWithoutReporting("report-error",{original_request_id:t,sanitized_message:n,stack_trace:i,diagnostics:o},this.createRequestId(),void 0,500,this.sessionId)}catch{}}poseidonRequestSessionId(){let t=process.env.AUGMENT_SOURCE_AGENT_ID;if(!t)return this.sessionId;try{return E5(t)}catch(n){return this.logger.warn("Failed to derive request session ID: %s",String(n)),this.sessionId}}async callApi(t,n,r){let i=await(await this.request(t.replace(/^\//,""),n,void 0,r?.signal,r?.timeoutMs??this.poseidonConfig.apiCallTimeoutMs,this.poseidonRequestSessionId())).text();if(i)return this.base_parseJson(i,`Augment request to ${t}`)}async getModelConfig(){let t=await this.callApi("get-models",{});return{defaultModel:t.default_model??"",models:(t.models??[]).map(n=>({name:n.name??"",suggestedPrefixCharCount:n.suggested_prefix_char_count??0,suggestedSuffixCharCount:n.suggested_suffix_char_count??0,completionTimeoutMs:n.completion_timeout_ms,internalName:n.internal_name})),featureFlagsV2:pi(HS,wn(t.feature_flags??{}),{ignoreUnknownFields:!0}),userTier:C5(t.user_tier),user:t.user}}async chatFeedback(t){await this.callApi("chat-feedback",{request_id:t.requestId,rating:t.rating,note:t.note,mode:t.mode})}async chat(t,n,r,o,i,s,l,a,c,d,u,h,b,f,A){let V=await(await this.request("chat",{model:l,path:h,prefix:d,selected_code:c,suffix:u,message:n,chat_history:r,lang:b,blobs:rc(o),user_guided_blobs:i,external_source_ids:s,context_code_exchange_request_id:a,feature_detection_flags:{},...f?{system_prompt:f}:{},system_prompt_replacements:A??[]},t,void 0,3e5)).text();return this.toChatResult(V?JSON.parse(V):{})}async chatStream(t,n){let r=await this.request("chat-stream",B5(n),t,n.signal,12e5,typeof n.sessionId=="string"?n.sessionId:this.sessionId);if(!r.body)throw new Ro("Chat stream response had no body",r,t);let o=r.body.getReader(),i=l=>{try{return this.toChatResult(JSON.parse(l))}catch{return}};async function*s(){let l=new TextDecoder,a="";try{for(;;){let{done:d,value:u}=await o.read();if(d)break;a+=l.decode(u,{stream:!0});let h=a.indexOf(`
131
131
  `);for(;h>=0;){let b=a.slice(0,h).trim();a=a.slice(h+1);let f=i(b);f&&(yield f),h=a.indexOf(`
132
- `)}}let c=i(a.trim());c&&(yield c)}finally{await o.cancel().catch(()=>{})}}return s()}toChatResult(t){if(typeof t.error=="string")return{text:"",error:{displayErrorMessage:t.error,errorDetails:N5(t.error_details)}};let n=t.error;return{text:typeof t.text=="string"?t.text:"",unknownBlobNames:t.unknown_blob_names??[],checkpointNotFound:t.checkpoint_not_found??!1,workspaceFileChunks:wn(t.workspace_file_chunks)??[],nodes:t.nodes,stop_reason:I5(t.stop_reason),summarizeAndRetry:t.summarize_and_retry,error:n?{displayErrorMessage:String(n.display_error_message??n.displayErrorMessage??"Unknown stream error"),isRetriable:!!(n.is_retriable??n.isRetriable),shouldBackoff:!!(n.should_backoff??n.shouldBackoff)}:void 0}}async checkpointBlobs(t){let n=await this.callApi("checkpoint-blobs",{blobs:rc(t)},{timeoutMs:Cb});return{newCheckpointId:G5(n.new_checkpoint_id,"new_checkpoint_id")}}async batchUpload(t){let n=await this.callApi("batch-upload",{blobs:t.map(r=>({blob_name:r.blobName,path:r.pathName,content:r.text}))},{timeoutMs:Cb});return{blobNames:Yb(n.blob_names,"blob_names")}}async findMissing(t,n){let r=await this.callApi("find-missing",{model:n,mem_object_names:[...t].sort()},{timeoutMs:Cb});return{unknownBlobNames:Yb(r.unknown_memory_names,"unknown_memory_names"),nonindexedBlobNames:Yb(r.nonindexed_blob_names,"nonindexed_blob_names")}}async agentCodebaseRetrieval(t,n,r,o,i,s,l){let a=await this.request("agents/codebase-retrieval",{information_request:n,blobs:rc(r),dialog:o,max_output_length:i,disable_codebase_retrieval:s?.disableCodebaseRetrieval??!1,enable_commit_retrieval:s?.enableCommitRetrieval??!1,enable_conversation_retrieval:s?.enableConversationRetrieval??!1,...s?.conversationId?{conversation_id:s.conversationId}:{},...s?.parentConversationId?{parent_conversation_id:s.parentConversationId}:{},...s?.rootConversationId?{root_conversation_id:s.rootConversationId}:{},...s?.turnId?{turn_id:s.turnId}:{},...s?.bringYourOwnKey?{bring_your_own_key:s.bringYourOwnKey}:{}},t,l);return wn(await a.json())}async revokeCurrentUserTokens(){return await this.callApi("revoke-current-user-tokens",{})}async listRemoteTools(t){let n=await this.getRpcClient().listRemoteTools({toolIdList:{toolIds:t??[]}});return wn(Xl(MS,n,{enumAsInteger:!0,alwaysEmitImplicit:!0}))}async runRemoteTool(t,n,r,o,i,s,l){if(l!==void 0){let d=await this.request("agents/run-remote-tool",{tool_name:n,tool_input_json:r,tool_id:o,...F5(o,i),bot_type:l},t,s);return wn(await d.json())}let a;if(i)switch(o){case an.JIRA:case an.CONFLUENCE:a={case:"atlassianToolExtraInput",value:{serverUrl:i.serverUrl,personalApiToken:i.personalApiToken,username:i.username}};break;case an.NOTION:a={case:"notionToolExtraInput",value:{apiToken:i.apiToken}};break;case an.LINEAR:a={case:"linearToolExtraInput",value:{apiToken:i.apiToken}};break;case an.GITHUB_API:a={case:"githubToolExtraInput",value:{apiToken:i.apiToken}};break;default:break}let c=await this.getRpcClient().runRemoteTool({toolName:n,toolInputJson:r,toolId:o,extraToolInput:a},{signal:s,headers:{"x-request-id":t}});return{...wn(Xl(OS,c,{enumAsInteger:!0})),toolOutput:c.toolOutput,toolResultMessage:c.toolResultMessage,status:c.status,...c.fullOutputSize===void 0?{}:{fullOutputSize:Number(c.fullOutputSize)}}}async logAgentSessionEvent(t){await this.request("record-session-events",{events:t.map(n=>({time:new Date(n.event_time_sec*1e3+n.event_time_nsec/1e6).toISOString(),event:{agent_session_event:{...n,user_agent:this.getUserAgent()}}}))})}async logAgentRequestEvent(t){let n=Map.groupBy(t,r=>r.request_id);for(let[r,o]of n)await this.request("record-request-events",{events:o.map(({request_id:i,...s})=>({time:new Date(s.event_time_sec*1e3+s.event_time_nsec/1e6).toISOString(),event:{agent_request_event:{...s,user_agent:this.getUserAgent()}}}))},r)}async logToolUseRequestEvent(t){let n=Map.groupBy(t,r=>r.requestId);await Promise.all([...n].map(async([r,o])=>{await this.request("record-request-events",{events:o.map(i=>{let s=JSON.stringify(i.toolInput);return{time:new Date(i.eventTimeSec*1e3+i.eventTimeNsec/1e6).toISOString(),event:{tool_use_data:{tool_name:i.toolName,tool_use_id:i.toolUseId,tool_output_is_error:i.toolOutputIsError,tool_run_duration_ms:i.toolRunDurationMs,tool_input:s,tool_input_len:s.length,is_mcp_tool:i.isMcpTool,conversation_id:i.conversationId,chat_history_length:i.chatHistoryLength,tool_output_len:i.toolOutputLen,tool_lines_added:i.toolLinesAdded,tool_lines_deleted:i.toolLinesDeleted,tool_use_diff:i.toolUseDiff,tool_error_class:i.toolErrorClass,tool_error_snippet:i.toolErrorSnippet}}}})},r)}))}base_getApiUrl(){return this.apiUrl}base_getAuthToken(){return this.apiToken}base_getUserAgent(){return this.getUserAgent()}base_getAuthHeaders(){return{Authorization:`Bearer ${this.apiToken}`,"User-Agent":this.getUserAgent()}}base_parseJson(t,n){try{return JSON.parse(t)}catch(r){throw new Error(`Failed to parse ${n} response as JSON: ${r instanceof Error?r.message:String(r)}. Response length: ${t.length}`)}}async base_listObjectRoleBindings(t,n){return((await this.callApi("/access/list",{object_type:t,object_id:n})).entries??[]).map(o=>this.base_parseObjectRoleBinding(o))}async base_grantObjectRole(t,n,r,o){await this.callApi("/access/grant",{object_type:t,object_id:n,principal:this.base_accessPrincipal(r),role:o})}async base_revokeObjectRole(t,n,r){await this.callApi("/access/revoke",{object_type:t,object_id:n,principal:this.base_accessPrincipal(r)})}base_parseObjectRoleBinding(t){return{principalType:t.principal_type??t.principalType??"unknown",principalId:t.principal_id??t.principalId??"",principalEmail:t.principal_email??t.principalEmail,principalDisplayName:t.principal_display_name??t.principalDisplayName,role:t.role??"",grantedBy:t.granted_by??t.grantedBy,createdAt:this.base_parseTimestamp(t.created_at??t.createdAt)}}base_accessPrincipal(t){return"email"in t?{email:t.email}:"tenant"in t?{tenant:!0}:"groupId"in t?{group_id:t.groupId}:"serviceAccountId"in t?{service_account_id:t.serviceAccountId}:"group"in t?{group:t.group}:"serviceAccount"in t?{service_account:t.serviceAccount}:{user_id:t.userId}}base_parseTimestamp(t){if(typeof t=="string"){let n=new Date(t);return Number.isNaN(n.getTime())?void 0:n}if(t!==null&&typeof t=="object"&&"seconds"in t){let n=t;return new Date(Number(n.seconds)*1e3+Math.floor(Number(n.nanos??0)/1e6))}}async recordPoseidonAnalyticsEvents({events:t}){this.logger.debug("Recording %d Poseidon analytics event(s)",t.length),await this.callApi("/record-poseidon-analytics-events",{events:t})}async getCostAnalytics(t){return this.logger.debug("Fetching cost analytics"),await this.callApi("/get-cost-analytics",t)}async getCostAnalyticsV2(t){return this.logger.debug("Fetching cost analytics (v2)"),await this.callApi("/get-cost-analytics-v2",t)}async listTags(t){return this.logger.debug("Fetching analytics tag catalog"),await this.callApi("/list-tags",t)}async getSessionAnalytics(t){return this.logger.debug("Fetching outcome session analytics"),await this.callApi("/get-session-analytics",t)}async getOutcomeAnalytics(t){return this.logger.debug("Fetching outcome analytics"),await this.callApi("/get-outcome-analytics",t)}async createUpload(t){let n={visibility:y5[t.visibility],media_type:t.mediaType,size_bytes:t.sizeBytes,sha256_hex:t.sha256Hex};t.label!==void 0&&(n.label=t.label),t.filename!==void 0&&(n.filename=t.filename);let r=await this.callApi("/cloud-agents/artifacts/create-upload",n);return{hostedArtifactId:r.hosted_artifact_id??"",signedPutUrl:r.signed_put_url??"",requiredHeaders:r.required_headers??{},signedUrlExpiresAt:r.signed_url_expires_at??""}}async finalizeHostedArtifact(t){let n={hosted_artifact_id:t.hostedArtifactId};t.filename!==void 0&&(n.filename=t.filename);let r=await this.callApi("/cloud-agents/artifacts/finalize",n);if(r.artifact===void 0)throw new Error(`Finalize response missing artifact payload for ${t.hostedArtifactId}`);return w5(r.artifact)}async deleteHostedArtifact(t){let n=Y5(t)?{canonical_url:t}:{hosted_artifact_id:t};await this.callApi("/cloud-agents/artifacts/delete",n)}listEnvironmentRoleBindings(t){return this.base_listObjectRoleBindings(yb,t)}grantEnvironmentRole({imageId:t,principal:n,role:r}){return this.base_grantObjectRole(yb,t,n,r)}revokeEnvironmentRole({imageId:t,principal:n}){return this.base_revokeObjectRole(yb,t,n)}async getEnvironment(t){let n=await this.callApi("/cloud-environments/environments/get",{ref:this.environment_toApiEnvironmentRef(t)}),r=n.summary;if(!r?.id)throw new Error(`Environment target not found: ${t.id}`);let o=r;return t.type==="environment"?o=n.details?.base_image??r:t.type==="pool"?o=n.details?.daemon_pool??r:o=n.details?.unpooled_daemon??n.details?.unpooled??r,{id:r.id,type:this.environment_environmentKindToType(r.kind),displayName:r.display_name??r.id,description:r.description,visibility:r.visibility,raw:o}}async listBaseImages(t){let n=await this.callApi("/cloud-environments/environments/list",{...t?.includeDeleted?{include_deleted:!0}:{},kinds:[1],...t?.resolveUserDisplayNames?{resolve_user_display_names:!0}:{},...t?.orderBy===void 0?{}:{order_by:t.orderBy},...t?.searchQuery?{search_query:t.searchQuery}:{},...t?.ownedOnly?{owned_only:!0}:{},...t?.scope===void 0?{}:{scope:t.scope},...t?.spaceId?{space_id:t.spaceId}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}}),r=(n.environment_summaries??[]).filter(o=>(o.kind??0)===1&&typeof o.id=="string"&&o.id.length>0).map(o=>this.environment_parseBaseImage({id:o.id,image_id:o.id,display_name:o.display_name,description:o.description,visibility:o.visibility,created_at:o.created_at,updated_at:o.updated_at,created_by_user_name:o.created_by_user_name,space_id:o.space_id,sandbox_provider_id:o.sandbox_provider_id,sandbox_provider:o.sandbox_provider}));return r.length>0?r:(n.environments??[]).filter(o=>{let i=o.image_id??o.id;return typeof i=="string"&&i.length>0}).map(o=>this.environment_parseBaseImage(o))}async listCloudEnvironments(t){let n=await this.callApi("/cloud-environments/environments/list",{...t?.includeDeleted?{include_deleted:!0}:{},kinds:[1,2,3],...t?.resolveUserDisplayNames?{resolve_user_display_names:!0}:{},...t?.orderBy===void 0?{}:{order_by:t.orderBy},...t?.searchQuery?{search_query:t.searchQuery}:{},...t?.ownedOnly?{owned_only:!0}:{},...t?.scope===void 0?{}:{scope:t.scope},...t?.spaceId?{space_id:t.spaceId}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}}),r=(n.environment_summaries??[]).filter(o=>typeof o.id=="string"&&o.id.length>0).map(o=>this.environment_parseCloudEnvironmentSummary(o));return r.length>0?r:(n.environments??[]).filter(o=>{let i=o.image_id??o.id;return typeof i=="string"&&i.length>0}).map(o=>{let i=this.environment_parseBaseImage(o);return{sandboxProviderId:i.sandboxProviderId,sandboxProvider:i.sandboxProvider,kind:"base_image",id:i.imageId,displayName:i.displayName,description:i.description,visibility:i.visibility,currentVersion:i.currentVersion,status:i.status,raw:i.raw??{}}})}async createBaseImage(t){let n=await this.callApi("/cloud-environments/base-images/create",pX(t),{timeoutMs:this.poseidonConfig.imageBuildTimeoutMs});if(!n.environment)throw new Error(`Failed to create environment: ${t.displayName}`);return this.environment_parseBaseImage(n.environment)}async getBaseImage(t){let n=await this.callApi("/cloud-environments/environments/get",{ref:{base_image_id:t}}),r=n.details?.base_image??n.environment;if(!r)throw new Error(`Environment not found: ${t}`);return this.environment_parseBaseImage(r)}async updateBaseImage({imageId:t,sandboxProviderId:n,displayName:r,description:o,visibility:i,baseImage:s,refreshEnabled:l,repos:a,environmentVariables:c,expectedResourceVersion:d,tags:u,spaceId:h}){let b=await this.callApi("/cloud-environments/base-images/update",EX({imageId:t,sandboxProviderId:n,displayName:r,description:o,visibility:i,baseImage:s,refreshEnabled:l,repos:a,environmentVariables:c,expectedResourceVersion:d,tags:u,spaceId:h}));return this.environment_parseBaseImage(b?.environment??b)}async deleteBaseImage(t){await this.callApi("/cloud-environments/base-images/delete",{image_id:t})}async getBaseImageVersions(t,n=!1){return((await this.callApi("/cloud-environments/base-images/builds/list",{image_id:t,...n?{include_update_scripts:!0}:{}})).builds??[]).map(o=>({imageId:o.image_id??t,version:o.version??"",gcpImageUrl:o.gcp_image_url,upstreamDigest:o.upstream_digest,createdAt:o.created_at?new Date(o.created_at):void 0,status:o.lifecycle_status??o.status,errorMessage:o.error_message,modalImageId:o.modal_image_id,updateScript:n?o.update_script:void 0,hasUpdateScript:o.has_update_script??!!o.update_script}))}listEnvironmentBuilds(t,n=!1){return this.getBaseImageVersions(t,n)}async restoreEnvironment(t){let n=await this.callApi("/cloud-environments/base-images/restore",{image_id:t});if(!n.environment)throw new Error(`Failed to restore environment: ${t}`);return this.environment_parseBaseImage(n.environment)}async listEnvironmentVersions({environmentId:t,limit:n}){return((await this.callApi("/cloud-environments/base-images/versions/list",{image_id:t,limit:n??50})).versions??[]).map(o=>this.environment_parseEnvironmentVersion(o))}async getEnvironmentVersion({environmentId:t,resourceVersion:n}){let r=await this.callApi("/cloud-environments/base-images/versions/get",{image_id:t,resource_version:n});if(!r.version)throw new Error(`Version ${n} not found for environment ${t}`);return this.environment_parseEnvironmentVersion(r.version)}async runImageUpdate({imageId:t,provisionScript:n,vmStartupScript:r,baseImageRef:o,useDefaultScripts:i}){let s=await this.callApi("/cloud-environments/base-images/rebuild",{image_id:t,...n===void 0?{}:{provision_script:n},...r===void 0?{}:{vm_startup_script:r},...o===void 0?{}:{base_image_ref:o},...i===void 0?{}:{use_default_scripts:i}},{timeoutMs:this.poseidonConfig.imageBuildTimeoutMs});return{modalImageId:s.modal_image_id??"",updatedAt:s.updated_at?new Date(s.updated_at):void 0}}async startEnvironmentRebuild({environmentId:t,idempotencyKey:n,provisionScript:r,vmStartupScript:o,baseImageRef:i,registryCredentialName:s},l){let a=await this.environment_callAbortableApi("/cloud-environments/base-images/rebuild/start",{environment_id:t,idempotency_key:n,...r===void 0?{}:{provision_script:r},...o===void 0?{}:{vm_startup_script:o},...i===void 0?{}:{base_image_ref:i},...s===void 0?{}:{registry_credential_name:s}},l);return this.environment_parseEnvironmentOperation(a.operation)}async startEnvironmentRefresh({environmentId:t,idempotencyKey:n},r){let o=await this.environment_callAbortableApi("/cloud-environments/base-images/refresh/start",{environment_id:t,idempotency_key:n},r);return this.environment_parseEnvironmentOperation(o.operation)}async startEnvironmentSnapshotUpdate({environmentId:t,idempotencyKey:n,script:r,expectedCurrentVersion:o},i){let s=await this.environment_callAbortableApi("/cloud-environments/base-images/update-snapshot/start",{environment_id:t,idempotency_key:n,script:r,expected_current_version:o},i);return this.environment_parseEnvironmentOperation(s.operation)}async startEnvironmentRepositoryReconcile({environmentId:t,idempotencyKey:n,expectedCurrentVersion:r,...o},i){let s=await this.environment_callAbortableApi("/cloud-environments/base-images/repositories/reconcile/start",{update:EX({imageId:t,...o}),idempotency_key:n,...r===void 0?{}:{expected_current_version:r}},i);return this.environment_parseEnvironmentOperation(s.operation)}async startEnvironmentCreate({config:t,idempotencyKey:n,registryCredentialName:r},o){let i=await this.environment_callAbortableApi("/cloud-environments/base-images/create/start",{...pX(t),idempotency_key:n,...r===void 0?{}:{registry_credential_name:r}},o);if(!i.environment)throw new Error(`Failed to start environment create: ${t.displayName}`);return{environment:this.environment_parseBaseImage(i.environment),operation:this.environment_parseEnvironmentOperation(i.operation)}}async getEnvironmentOperation(t,n){let r=await this.environment_callAbortableApi("/cloud-environments/operations/get",{operation_id:t},n);return this.environment_parseEnvironmentOperation(r.operation)}async getActiveEnvironmentOperation(t,n){let r=await this.environment_callAbortableApi("/cloud-environments/operations/active/get",{environment_id:t},n);return r.operation?this.environment_parseEnvironmentOperation(r.operation):void 0}async cancelEnvironmentOperation(t,n){let r=await this.environment_callAbortableApi("/cloud-environments/operations/cancel",{operation_id:t},n);return this.environment_parseEnvironmentOperation(r.operation)}async updateEnvironmentSnapshot({environmentId:t,script:n,expectedCurrentVersion:r,idempotencyKey:o}){let i=await this.callApi("/cloud-environments/base-images/update-snapshot",{image_id:t,script:n,expected_current_version:r,idempotency_key:o},{timeoutMs:this.poseidonConfig.imageBuildTimeoutMs});return{modalImageId:i.modal_image_id??"",version:i.version??""}}async refreshEnvironment(t){await this.callApi("/cloud-environments/base-images/refresh",{image_id:t})}async duplicateBaseImage({sourceImageId:t,newDisplayName:n,visibility:r}){let o=await this.callApi("/cloud-environments/base-images/duplicate",{source_image_id:t,new_display_name:n,...r===void 0?{}:{visibility:r}}),i=o.environment??o.image;if(!i)throw new Error(`Failed to duplicate environment: ${t}`);return this.environment_parseBaseImage(i)}environment_parseEnvironmentOperation(t){let n=_5(t?.operation_type),r=t?.state===void 0?void 0:x5[t.state],o=t?.phase===void 0?void 0:v5[t.phase];if(!t?.operation_id||!t.environment_id||!n||!r||!o)throw new Error("Invalid environment operation response");let i=Number(t.result?.resource_version);if(r==="succeeded"&&(!t.result?.modal_image_id||!t.result.version||!Number.isSafeInteger(i)))throw new Error("Invalid environment operation response");return{operationId:t.operation_id,environmentId:t.environment_id,operationType:n,state:r,phase:o,result:t.result?{modalImageId:t.result.modal_image_id??"",version:t.result.version??"",resourceVersion:i}:void 0,error:t.error?{code:t.error.code??0,message:t.error.message??"",retryable:t.error.retryable??!1}:void 0}}async environment_callAbortableApi(t,n,r){let o=this.callApi(t,n,{signal:r});if(!r)return o;if(r.aborted)throw r.reason;let i,s=new Promise((l,a)=>{i=()=>a(r.reason),r.addEventListener("abort",i,{once:!0})});try{return await Promise.race([o,s])}finally{i&&r.removeEventListener("abort",i)}}environment_parseCloudEnvironmentSummary(t){let n=this.environment_cloudEnvironmentKind(t.kind),r={kind:n,id:t.id??"",displayName:t.display_name??t.id??"",description:t.description,visibility:t.visibility,raw:t},o=t.extras?.pool_status,i=t.extras?.unpooled;return n==="base_image"?(r.sandboxProviderId=t.sandbox_provider_id,r.sandboxProvider=t.sandbox_provider?Rr(t.sandbox_provider):void 0,r.currentVersion=t.current_version,r.status=t.status):n==="daemon_pool"&&o?r.poolStatus={daemonsOnline:o.daemons_online,slotsTotal:o.slots_total,slotsInUse:o.slots_in_use}:n==="daemon"&&i&&(r.daemon={vmId:i.vm_id,workspacePath:i.workspace_path,maxAgents:i.max_agents,currentAgentCount:i.current_agent_count}),r}environment_cloudEnvironmentKind(t){switch(t){case 2:return"daemon_pool";case 3:return"daemon";default:return"base_image"}}environment_parseEnvironmentVersion(t){return{resourceVersion:t.resource_version??0,config:t.config?this.environment_parseEnvironmentConfig(t.config):void 0,modifiedBy:t.modified_by??"",modifiedAt:t.modified_at?new Date(t.modified_at):void 0,changeType:t.change_type??""}}environment_parseEnvironmentConfig(t){return{sandboxProviderId:t.sandbox_provider_id,displayName:t.display_name??"",description:t.description,visibility:t.visibility,baseImage:t.base_image,refreshEnabled:t.refresh_enabled,repos:(t.repos??[]).map(n=>({owner:n.owner??"",name:n.name??"",...n.branch?{branch:n.branch}:{},...n.host?{host:n.host}:{},...n.project?{project:n.project}:{}})),environmentVariables:t.environment_variables?{variables:(t.environment_variables.variables??[]).map(n=>({name:n.name??"",value:n.value??""}))}:void 0,spaceId:typeof t.space_id=="string"?t.space_id:void 0,tags:t.tags??{}}}environment_parseBaseImage(t){let n=t.image_id??t.id??"",r=t.space_id;return{sandboxProviderId:t.sandbox_provider_id,sandboxProvider:t.sandbox_provider?Rr(t.sandbox_provider):void 0,imageId:n,displayName:t.display_name??n,description:t.description,currentVersion:t.current_version,status:t.lifecycle_status??t.status,visibility:t.visibility,modalImageId:t.modal_image_id,resourceVersion:t.resource_version,createdAt:t.created_at?new Date(t.created_at):void 0,updatedAt:t.updated_at?new Date(t.updated_at):void 0,spaceId:typeof r=="string"?r:void 0,tags:t.tags??{},raw:t}}environment_toApiEnvironmentRef(t){switch(t.type){case"environment":return{base_image_id:t.id};case"pool":return{daemon_pool_id:t.id};case"daemon":return{daemon_vm_id:t.id}}}environment_environmentKindToType(t){switch(t){case 1:return"environment";case 2:return"pool";case 3:return"daemon";default:throw new Error(`Unknown environment kind: ${t??"unset"}`)}}async getDefaultEnvironment(t){return t==="team"?(await this.callApi("/settings/get-poseidon-tenant-settings",{})).default_base_image_id??"":(await this.callApi("/settings/get-poseidon-user-settings",{})).default_environment_id??""}async setDefaultEnvironment(t,n){if(t==="team"){await this.callApi("/settings/update-poseidon-tenant-settings",{default_base_image_id:n});return}await this.callApi("/settings/update-poseidon-user-settings",{default_environment_id:n})}async unsetDefaultEnvironment(t){await this.setDefaultEnvironment(t,"")}async listEvents({limit:t,pageToken:n,source:r,filterPayload:o,eventType:i,since:s,until:l}={}){this.logger.debug("Listing cloud events");let a=await this.callApi("/cloud-events/events/list",{...t===void 0?{}:{limit:t},...n?{page_token:n}:{},...r?{source:r}:{},...o?{filter_payload:o}:{},...i?{event_type:i}:{},...s?{since:s}:{},...l?{until:l}:{}});return{events:(a.events??[]).map(Q5),nextPageToken:a.next_page_token,totalCount:a.total_count}}listExpertRoleBindings(t){return this.base_listObjectRoleBindings(Ub,t)}grantExpertRole({expertId:t,principal:n,role:r}){return this.base_grantObjectRole(Ub,t,n,r)}revokeExpertRole({expertId:t,principal:n}){return this.base_revokeObjectRole(Ub,t,n)}readExpertCapabilities(t,n){return bX(t,n,r=>{if(!this.reportedExpertEndpoints.has(n)){this.reportedExpertEndpoints.add(n),this.logger.warn(r.message);try{this.onExpertCapabilityMismatch?this.onExpertCapabilityMismatch(r,n):this.reportError(null,r.message,"",[{key:"api_call",value:n}])}catch{this.logger.warn("Failed to report expert capability mismatch.")}}})}parseExpertResponse(t,n){let r=fX(t);return r.config&&(r.config.capabilityNames=this.readExpertCapabilities(r.config,n)),r}parseExpertVersionResponse(t,n){let r=hX(t);return r.config&&(r.config={...r.config,capability_names:this.readExpertCapabilities(qa(r.config),n)}),r}async createExpert({scope:t,config:n,desiredSlug:r,spaceId:o,capabilitySource:i}){let s=await this.callApi("/cloud-experts/experts/create",{scope:t,config:Nb(n),...r===void 0?{}:{desired_slug:r},...o===void 0?{}:{space_id:o},...i===void 0?{}:{capability_source:Ib[i]}});if(!s.expert)throw new Error("Failed to create expert: no expert in response");return this.parseExpertResponse(s.expert,"/cloud-experts/experts/create")}async getExpert(t){let n=await this.callApi("/cloud-experts/experts/get",{expert_id:t});if(!n.expert)throw new Error(`Expert not found: ${t}`);return this.parseExpertResponse(n.expert,"/cloud-experts/experts/get")}async updateExpert({expertId:t,config:n,scope:r,expectedResourceVersion:o,spaceId:i,capabilitySource:s}){let l=await this.callApi("/cloud-experts/experts/update",{expert_id:t,...n?{config:Nb(n)}:{},...r===void 0?{}:{scope:r},...o===void 0?{}:{expected_resource_version:o},...i===void 0?{}:{space_id:i},...s===void 0?{}:{capability_source:Ib[s]}});if(!l.expert)throw new Error(`Failed to update expert: ${t}`);return this.parseExpertResponse(l.expert,"/cloud-experts/experts/update")}async deleteExperts({expertIds:t}){let n=await this.callApi("/cloud-experts/experts/delete",{expert_ids:t});return{deletedExpertIds:n.deleted_expert_ids??[],failedExpertIds:n.failed_expert_ids??[]}}async listExperts(t){return((await this.callApi("/cloud-experts/experts/list",{...t?.includeDeleted?{include_deleted:!0}:{},...t?.spaceId?{space_id:t.spaceId}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}})).experts??[]).map(r=>this.parseExpertResponse(r,"/cloud-experts/experts/list"))}async listExpertsWithUsage(t){let n=await this.callApi("/cloud-experts/experts/list-with-usage",{max_per_section:K5,...t?.spaceId?{space_id:t.spaceId}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}}),r=(o,i)=>(o??[]).filter(s=>s.expert).map(s=>({expert:this.parseExpertResponse(s.expert,"/cloud-experts/experts/list-with-usage"),...i.lastUsed&&s.last_used_at?{lastUsedAt:new Date(s.last_used_at)}:{},...i.weeklyActiveUsers&&s.weekly_active_users!==void 0?{weeklyActiveUsers:s.weekly_active_users}:{}}));return{recentlyUsed:r(n.recently_used,{lastUsed:!0}),popular:r(n.popular,{weeklyActiveUsers:!0}),other:r(n.other,{})}}async restoreExpert(t){let n=await this.callApi("/cloud-experts/experts/restore",{expert_id:t});if(!n.expert)throw new Error(`Failed to restore expert: ${t}`);return this.parseExpertResponse(n.expert,"/cloud-experts/experts/restore")}async listExpertVersions({expertId:t,limit:n}){return((await this.callApi("/cloud-experts/experts/versions/list",{expert_id:t,limit:n??T5})).versions??[]).map(o=>this.parseExpertVersionResponse(o,"/cloud-experts/experts/versions/list"))}async getExpertVersion({expertId:t,resourceVersion:n}){let r=await this.callApi("/cloud-experts/experts/versions/get",{expert_id:t,resource_version:n});if(!r.version)throw new Error(`Version ${n} not found for expert ${t}`);return this.parseExpertVersionResponse(r.version,"/cloud-experts/experts/versions/get")}async listWorkflows(t={}){let n=await this.callApi("/cloud-triggers/workflows/list",{...t.eventSourceId?{event_source_id:t.eventSourceId}:{},...t.expertId?{expert_id:t.expertId}:{}});return this.base_parseJson(n.workflows_json||"[]","listWorkflows").map(o=>yn(o))}async deleteExpertWorkflows(t){let n=await this.callApi("/cloud-triggers/workflows/delete",{workflow_ids:[t]});return{success:n.success??!0,deletedWorkflowIds:n.deleted_workflow_ids??[],failedWorkflowIds:n.failed_workflow_ids??[]}}async createWorkflow(t){let n=await this.callApi("/cloud-triggers/workflows/create",{...t.desiredSlug===void 0?{}:{desired_slug:t.desiredSlug},workflow_json:JSON.stringify({event_source_id:t.eventSourceId,name:t.name,...t.description===void 0?{}:{description:t.description},enabled:t.enabled,expert_id:t.expertId,...t.eventFilter?t.eventFilter:{},...t.overrideAutoCleanupOnIdle===void 0?{}:{override_auto_cleanup_on_idle:t.overrideAutoCleanupOnIdle},...t.initialInstructions===void 0?{}:{initial_instructions:t.initialInstructions},...t.actorUserId===void 0?{}:{actor_user_id:t.actorUserId},...t.perMinuteCreateAgentLimit===void 0?{}:{per_minute_create_agent_limit:t.perMinuteCreateAgentLimit}})}),r=this.base_parseJson(n.workflow_json||"null","createWorkflow");if(!r)throw new Error("Failed to create workflow: no workflow in response");return yn(r)}async updateWorkflow({workflowId:t,name:n,enabled:r,expectedResourceVersion:o,overrideAutoCleanupOnIdle:i,initialInstructions:s,actorUserId:l,perMinuteCreateAgentLimit:a}){let c=await this.callApi("/cloud-triggers/workflows/update",{workflow_id:t,...n===void 0?{}:{name:n},...r===void 0?{}:{enabled:r},...o===void 0?{}:{expected_resource_version:o},...i===void 0?{}:{override_auto_cleanup_on_idle:i},...s===void 0?{}:{initial_instructions:s},...l===void 0?{}:{actor_user_id:l},...a===void 0?{}:{per_minute_create_agent_limit:a}}),d=this.base_parseJson(c.workflow_json||"null","updateWorkflow");if(!d)throw new Error(`Failed to update workflow: ${t}`);return yn(d)}async listEventSources(){let t=await this.callApi("/cloud-triggers/event-sources/list",{});return this.base_parseJson(t.event_sources_json||"[]","listEventSources").map(r=>Er(r))}async deleteEventSources(t){let n=await this.callApi("/cloud-triggers/event-sources/delete",{event_source_ids:t});return{success:n.success??!0,deletedEventSourceIds:n.deleted_event_source_ids??[],failedEventSourceIds:n.failed_event_source_ids??[]}}async createEventSource(t){let n=await this.callApi("/cloud-triggers/event-sources/create",{...t.desiredSlug===void 0?{}:{desired_slug:t.desiredSlug},event_source_json:JSON.stringify({name:t.name,event_source_type:t.eventSourceType,...t.config})}),r=this.base_parseJson(n.event_source_json||"null","createEventSource");if(!r)throw new Error("Failed to create event source: no event_source in response");return Er(r)}async updateEventSource(t){let n=await this.callApi("/cloud-triggers/event-sources/update",{expected_resource_version:t.expectedResourceVersion,event_source_json:JSON.stringify({event_source_id:t.eventSourceId,name:t.name,event_source_type:t.eventSourceType,active:t.active,...t.config})}),r=this.base_parseJson(n.event_source_json||"null","updateEventSource");if(!r)throw new Error(`Failed to update event source: ${t.eventSourceId}`);return Er(r)}async listGroups(){this.logger.debug("Listing tenant groups");let t=[],n="";do{let r=await this.callApi("/cloud-groups/list",{page_token:n});t.push(...(r.groups??[]).map(wb)),n=r.next_page_token??""}while(n.length>0);return t}async createGroup(t,n){this.logger.info("Creating group %s",t);let r=await this.callApi("/cloud-groups/create",{name:t,description:n});if(!r.group)throw new Error("Failed to create group: no group in response");return wb(r.group)}async updateGroup(t,n){this.logger.info("Updating group %s",t);let r={group_id:t};n.name!==void 0&&(r.name=n.name),n.description!==void 0&&(r.description=n.description);let o=await this.callApi("/cloud-groups/update",r);if(!o.group)throw new Error("Failed to update group: no group in response");return wb(o.group)}async deleteGroup(t){this.logger.info("Deleting group %s",t),await this.callApi("/cloud-groups/delete",{group_id:t})}async listGroupMembers(t){this.logger.debug("Listing members of group %s",t);let n=[],r="";do{let o=await this.callApi("/cloud-groups/members/list",{group_id:t,page_token:r});n.push(...(o.members??[]).map(D5)),r=o.next_page_token??""}while(r.length>0);return n}async addGroupMembers(t,n){this.logger.info("Adding %d member(s) and %d service account(s) to group %s",n.members?.length??0,n.serviceAccounts?.length??0,t);let r=RX(t,n),o=await ZX(()=>this.callApi("/cloud-groups/members/add",r),r);return{addedUserIds:o.added_user_ids??[],alreadyMemberUserIds:o.already_member_user_ids??[]}}async removeGroupMembers(t,n){this.logger.info("Removing %d member(s) and %d service account(s) from group %s",n.members?.length??0,n.serviceAccounts?.length??0,t);let r=RX(t,n),o=await ZX(()=>this.callApi("/cloud-groups/members/remove",r),r);return{removedUserIds:o.removed_user_ids??[],notMemberUserIds:o.not_member_user_ids??[]}}async listIntegrations(){return this.logger.debug("Listing integrations"),((await this.callApi("/cloud-integrations/list",{})).integrations??[]).map(SX)}async invokeIntegrationAction({integrationId:t,kind:n}){this.logger.info("Invoking integration action %s on %s",n,t);let r=await this.callApi("/cloud-integrations/invoke-action",{integration_id:t,kind:n});return{urlToOpen:r.url_to_open??"",message:r.message??"",integration:r.integration?SX(r.integration):void 0}}async upsertMcpConfig({scope:t,config:n,expectedVersion:r}){let o=t==="tenant"?"/settings/upsert-mcp-tenant-config":"/settings/upsert-mcp-user-config";this.logger.debug("Upserting MCP config (scope=%s, id=%s)",t,n.id);let i={config:n};return r!==void 0&&(i.expected_version=r),await this.callApi(o,i)}async removeMcpConfig({scope:t,configId:n,expectedVersion:r}){let o=t==="tenant"?"/settings/remove-mcp-tenant-config":"/settings/remove-mcp-user-config";this.logger.debug("Removing MCP config (scope=%s, id=%s)",t,n);let i={config_id:n};return r!==void 0&&(i.expected_version=r),await this.callApi(o,i)}async getMcpTenantConfigs(){this.logger.debug("Getting tenant MCP configs");let t=await this.callApi("/settings/get-mcp-tenant-settings",{});return{configs:t.mcp_configs??[],version:t.version??""}}async getMcpUserConfigs(){this.logger.debug("Getting user MCP configs");let t=await this.callApi("/settings/get-mcp-user-settings",{});return{configs:t.mcp_configs??[],version:t.version??""}}async getMcpConfigById({configId:t,scope:n}){this.logger.debug("Getting MCP config by id (scope=%s, id=%s)",n,t);try{return(await this.callApi("/settings/get-mcp-config-by-id",{config_id:t,scope:O5[n]})).config??null}catch(r){if(r instanceof It&&r.statusCode===M5)return null;throw r}}async listSandboxProviders(t){return((await this.callApi("/sandbox-providers/list",{...t?.includeDeleted?{include_deleted:!0}:{},...t?.spaceId===void 0?{}:{space_id:t.spaceId}})).providers??[]).map(Rr)}async getSandboxProvider(t,n){let r=await this.callApi("/sandbox-providers/get",{slug:t,...n?.includeDeleted?{include_deleted:!0}:{},...n?.spaceId===void 0?{}:{space_id:n.spaceId}});if(!r.provider)throw new Error(`Sandbox provider not found: ${t}`);return Rr(r.provider)}async createSandboxProvider({slug:t,displayName:n,description:r,enabled:o,spaceIds:i,allSpaces:s}){let l=await this.callApi("/sandbox-providers/create",{slug:t,display_name:n,...r===void 0?{}:{description:r},...o===void 0?{}:{enabled:o},space_ids:i,all_spaces:s});if(!l.provider)throw new Error(`Failed to create sandbox provider: ${t}`);return Rr(l.provider)}async updateSandboxProvider({id:t,displayName:n,description:r,enabled:o,expectedResourceVersion:i,spaceIds:s,allSpaces:l}){let a=await this.callApi("/sandbox-providers/update",{id:t,...n===void 0?{}:{display_name:n},...r===void 0?{}:{description:r},...o===void 0?{}:{enabled:o},expected_resource_version:i,...s===void 0?{}:{space_ids:s},...l===void 0?{}:{all_spaces:l}});if(!a.provider)throw new Error(`Failed to update sandbox provider: ${t}`);return Rr(a.provider)}async deleteSandboxProvider({id:t,expectedResourceVersion:n}){await this.callApi("/sandbox-providers/delete",{id:t,expected_resource_version:n})}async restoreSandboxProvider({id:t,expectedResourceVersion:n}){let r=await this.callApi("/sandbox-providers/restore",{id:t,expected_resource_version:n});if(!r.provider)throw new Error(`Failed to restore sandbox provider: ${t}`);return Rr(r.provider)}listSandboxProviderRoleBindings(t){return this.base_listObjectRoleBindings(vb,t)}grantSandboxProviderRole({providerId:t,principal:n,role:r}){return this.base_grantObjectRole(vb,t,n,r)}revokeSandboxProviderRole({providerId:t,principal:n}){return this.base_revokeObjectRole(vb,t,n)}async listPools(t){return this.logger.debug("Listing daemon pools"),((await this.callApi("/cloud-environments/environments/list",{...t?.includeDeleted?{include_deleted:!0}:{},kinds:[2],resolve_user_display_names:!0})).environment_summaries??[]).filter(r=>(r.kind??0)===2&&typeof r.id=="string"&&r.id.length>0).map(r=>({...$a({id:r.id,display_name:r.display_name,description:r.description,visibility:r.visibility,created_by_user_id:r.created_by_user_id,created_by_user_name:r.created_by_user_name,created_at:r.created_at,updated_at:r.updated_at}),status:$5(r.extras?.pool_status)}))}async createPool({displayName:t,description:n,visibility:r,connectorUserId:o,connectorServiceAccount:i,workspaceIsolationPolicy:s,spaceId:l}){this.logger.info("Creating daemon pool %s",t);let a=WX({connectorUserId:o,connectorServiceAccount:i}),c=await this.callApi("/cloud-environments/pools/create",{display_name:t,...n===void 0?{}:{description:n},...r===void 0?{}:{visibility:r},...a===void 0?{}:{connector:a},...s===void 0?{}:{workspace_isolation_policy:s},...l===void 0?{}:{space_id:l}});if(!c.pool)throw new Error(`Failed to create daemon pool: ${t}`);return $a(c.pool)}async getPool(t,n){let r=await this.callApi("/cloud-environments/environments/get",{ref:{daemon_pool_id:t}},{signal:n}),o=r.summary,i=r.details?.daemon_pool;if(!o?.id&&!i?.id)throw new Error(`Daemon pool not found: ${t}`);return $a({...o,...i,id:i?.id??o?.id})}async updatePool({poolId:t,displayName:n,description:r,visibility:o,connectorUserId:i,connectorServiceAccount:s,workspaceIsolationPolicy:l,expectedResourceVersion:a,spaceId:c}){let d=WX({connectorUserId:i,connectorServiceAccount:s}),u=await this.callApi("/cloud-environments/pools/update",{id:t,...n===void 0?{}:{display_name:n},...r===void 0?{}:{description:r},...o===void 0?{}:{visibility:o},...d===void 0?{}:{connector:d},workspace_isolation_policy:l,expected_resource_version:a,...c===void 0?{}:{space_id:c}});return $a(u.pool??u)}async deletePool(t){this.logger.info("Deleting daemon pool %s",t),await this.callApi("/cloud-environments/pools/delete",{id:t})}async listPoolDaemons(t){return this.logger.debug("Listing daemons for pool %s",t),((await this.callApi("/cloud-environments/pools/daemons/list",{pool_id:t})).daemons??[]).filter(r=>typeof r.vm_id=="string"&&r.vm_id.length>0).map(ek)}listPoolRoleBindings(t){return this.logger.debug("Listing daemon_pool role bindings for %s",t),this.base_listObjectRoleBindings(xb,t)}grantPoolRole({poolId:t,principal:n,role:r}){return this.logger.debug("Granting daemon_pool role %s for %s",r,t),this.base_grantObjectRole(xb,t,n,r)}revokePoolRole({poolId:t,principal:n}){return this.logger.debug("Revoking daemon_pool roles for %s",t),this.base_revokeObjectRole(xb,t,n)}async listProjects(){return this.logger.debug("Listing projects"),((await this.callApi("/cloud-projects/projects/list",{})).projects??[]).map(ts)}async getProject(t){this.logger.debug("Getting project %s",t);let n=await this.callApi("/cloud-projects/projects/get",{project_id:t});if(!n.project)throw new Error("Failed to get project: no project in response");return ts(n.project)}async createProject(t){this.logger.info("Creating project %s",t.name);let n=await this.callApi("/cloud-projects/projects/create",{name:t.name,description:t.description});if(!n.project)throw new Error("Failed to create project: no project in response");return ts(n.project)}async deleteProject(t){this.logger.info("Deleting project %s",t),await this.callApi("/cloud-projects/projects/delete",{project_id:t})}async addProjectAgent(t){this.logger.info("Adding agent %s to project %s",t.agentId,t.projectId);let n=await this.callApi("/cloud-projects/projects/add-agent",{project_id:t.projectId,agent_id:t.agentId});if(!n.project)throw new Error("Failed to add agent: no project in response");return ts(n.project)}async removeProjectAgent(t){this.logger.info("Removing agent %s from project %s",t.agentId,t.projectId);let n=await this.callApi("/cloud-projects/projects/remove-agent",{project_id:t.projectId,agent_id:t.agentId});if(!n.project)throw new Error("Failed to remove agent: no project in response");return ts(n.project)}listResidentRoleBindings(t){return this.base_listObjectRoleBindings(Jb,t)}grantResidentRole({residentId:t,principal:n,role:r}){return this.base_grantObjectRole(Jb,t,n,r)}revokeResidentRole({residentId:t,principal:n}){return this.base_revokeObjectRole(Jb,t,n)}async createResident(t){let n=await this.callApi("/cloud-residents/residents/create",{scope:t.scope,config:IX(t.config)});if(!n.resident)throw new Error("Failed to create resident: no resident in response");return Zr(n.resident)}async getResident(t){let n=await this.callApi("/cloud-residents/residents/get",{resident_id:t});if(!n.resident)throw new Error(`Resident not found: ${t}`);return Zr(n.resident)}async updateResident(t){let n=await this.callApi("/cloud-residents/residents/update",{resident_id:t.residentId,...t.config?{config:IX(t.config)}:{},...t.scope===void 0?{}:{scope:t.scope},...t.expectedResourceVersion===void 0?{}:{expected_resource_version:t.expectedResourceVersion}});if(!n.resident)throw new Error(`Failed to update resident: ${t.residentId}`);return Zr(n.resident)}async deleteResidents(t){let n=await this.callApi("/cloud-residents/residents/delete",{resident_ids:t.residentIds,...t.hardDeletion?{hard_delete:!0}:{}});return{deletedResidentIds:n.deleted_resident_ids??[],failedResidentIds:n.failed_resident_ids??[]}}async listResidents(t){return((await this.callApi("/cloud-residents/residents/list",{...t?.scope===void 0?{}:{scope:t.scope},...t?.spaceId?{space_id:t.spaceId}:{},...t?.includeDeleted?{include_deleted:!0}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}})).residents??[]).map(Zr)}async startResident(t){let n=await this.callApi("/cloud-residents/residents/start",{resident_id:t.residentId,...t.initialMessage?{initial_message:t.initialMessage}:{}});if(!n.resident)throw new Error(`Failed to start resident: ${t.residentId}`);return{resident:Zr(n.resident),agent:n.agent}}async stopResident(t){let n=await this.callApi("/cloud-residents/residents/stop",{resident_id:t.residentId});if(!n.resident)throw new Error(`Failed to stop resident: ${t.residentId}`);return Zr(n.resident)}async listResidentSessions(t){return((await this.callApi("/cloud-residents/residents/sessions/list",{resident_id:t.residentId})).sessions??[]).map(ik)}async getResidentVersion(t){let n;try{n=await this.callApi("/cloud-residents/residents/versions/get",{resident_id:t.residentId,resource_version:t.resourceVersion})}catch(r){throw r instanceof It&&r.statusCode===404?new bo(t.residentId,t.resourceVersion):r}if(!n.version)throw new bo(t.residentId,t.resourceVersion);return GX(n.version)}async listResidentVersions(t){return((await this.callApi("/cloud-residents/residents/versions/list",{resident_id:t.residentId,...t.limit===void 0?{}:{limit:t.limit}})).versions??[]).map(GX)}async restoreResident(t){let n=await this.callApi("/cloud-residents/residents/restore",{resident_id:t.residentId});if(!n.resident)throw new Error(`Failed to restore resident: ${t.residentId}`);return Zr(n.resident)}async listSlackChannels(t){let n=await this.callApi("/cloud-integrations/slack/list-channels",{...t.cursor===void 0?{}:{cursor:t.cursor},...t.limit===void 0?{}:{limit:t.limit}});return{channels:(n.channels??[]).map(r=>({id:r.id??"",name:r.name??"",isPrivate:r.is_private??!1,isMember:r.is_member??!1})),nextCursor:n.next_cursor??"",error:n.error??""}}async writeScopedSecret(t){let n=ck(t),r=await this.callApi("/user-secrets/upsert",n);if(r.secret===void 0)throw new Error(`Create response missing secret payload for ${t.name}`);let o=ec(r.secret,t.name,t.scope);return o.applicability===void 0&&t.applicability!==void 0?{...o,applicability:t.applicability}:o}async deleteScopedSecret({name:t,scope:n,secretId:r,expectedVersion:o}){let i={name:t,scope:wX[n],secret_id:r};return o!==void 0&&(i.expected_version=o),(await this.callApi("/user-secrets/delete",i)).deleted??!1}async listSecretMetadata(t){if(t.scope==="all"){let[a,c]=await Promise.all([this.listSecretMetadata({...t,scope:"user"}),this.listSecretMetadata({...t,scope:"tenant"})]);return[...a,...c].sort((d,u)=>d.scope===u.scope?d.name.localeCompare(u.name):d.scope==="user"?-1:1)}let n=t.scope==="tenant",r=n?"/tenant-secrets/list":"/user-secrets/list",o={include_values:!1},i=bk(t.tagFilter);i!==void 0&&(o.tag_filters=i),t.pageSize!==void 0&&(o.page_size=t.pageSize),t.pageToken!==void 0&&(o.page_token=t.pageToken),n||(o.scope=ns[t.scope],t.spaceId!==void 0&&(o.space_id=t.spaceId));let s=await this.callApi(r,o),l=n?"tenant":"user";return(s.secrets??[]).map(a=>ec(a,a.name??"",l))}async isSecretMetadataScopedResolutionEnabled(){return(await this.callApi("/user-secrets/list",{include_values:!1,page_size:1,scope:ns.user})).secret_scoped_resolution_enabled===!0}async isSecretMultiSpaceTargetingEnabled(){return(await this.callApi("/user-secrets/list",{include_values:!1,page_size:1,scope:ns.user})).secret_multi_space_targeting_enabled===!0}async getOptionalSecretMetadata(t,n){try{return await this.getSecretMetadata(t,n)}catch(r){if(r instanceof It&&r.statusCode===404)return;throw r}}async getSecretMetadata(t,n){try{return await this.secretMetadata_getPinned(t,n)}catch(r){if(n!=="user"||!(r instanceof It)||r.statusCode!==404)throw r;let o=await this.secretMetadata_findExactUserMatches(t);if(o.length===0)throw r;if(o.length>1)throw new Li(`More than one user secret is named '${t}'; use a unique name to manage it.`);let i=o[0];if(i?.secretId===void 0||i.secretId==="")throw r;return this.secretMetadata_getPinned(t,n,i.secretId)}}async secretMetadata_getPinned(t,n,r){let o=n==="tenant",i=o?"/tenant-secrets/get":"/user-secrets/get",s={name:t,include_values:!1};o||(s.scope=ns[n],r!==void 0&&(s.secret_id=r));let l=await this.callApi(i,s);if(l.secret===void 0)throw new Error(`Get response missing secret payload for ${t}`);return ec(l.secret,t,n)}async secretMetadata_findExactUserMatches(t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return((await this.callApi("/user-secrets/list",{name_pattern:`^${n}$`,include_values:!1,page_size:2,scope:ns.user})).secrets??[]).filter(o=>o.name===t).map(o=>ec(o,t,"user"))}async isSecretOlacEnabled(){return(await this.callApi("/get-models",{})).feature_flags?.cli_secret_olac_commands===!0}async renameSecret({secretId:t,newName:n}){let r=await this.callApi("/user-secrets/rename",{secret_id:t,new_name:n});if(this.logger.debug("Renamed secret %s",t),r.secret===void 0)throw new Error(`Rename response missing secret payload for ${t}`);return{name:r.secret.name??"",version:r.secret.version??"",secretId:r.secret.secret_id??t,olacReady:r.secret.olac_ready??!1}}listSecretRoleBindings(t){return this.base_listObjectRoleBindings(kb,t)}grantSecretRole({secretId:t,principal:n,role:r}){return this.base_grantObjectRole(kb,t,n,r)}revokeSecretRole({secretId:t,principal:n}){return this.base_revokeObjectRole(kb,t,n)}async listAgentsPaginated(t){let n=await this.callApi("/cloud-agents/agents/list",pk(t));return{agents:(n.agents??[]).map(po),hasMore:n.has_more??!1,...n.next_page_token?{nextPageToken:n.next_page_token}:{}}}async getAgent(t){let n=await this.callApi("/cloud-agents/agents/get",{agent_id:t});if(!n.agent)throw new Error(`Agent not found: ${t}`);return po(n.agent)}async registerVm(t){let n=t.mode??mk.AGENT;Un.info(`registerVm: agent=${t.agentId} mode=${n} cwd=${t.workspacePath}`);let r=Ek(t,n),o=await this.callApi("/vm-beachhead/connect-cli-vm",r);if(!o.success)throw new Error(`connect-cli-vm rejected by server: ${o.error_message??"unknown error"}`);let i=o.vm_id;if(!i)throw new Error("connect-cli-vm returned no vm_id");return Rk(t,o,i)}async createAgent(t){Un.info(`createAgent: name=${t.name}`);let n={agent_loop_type:fk};t.model&&(n.model=t.model);let r={agent_name:t.name,capabilities:t.capabilities??[],tags:t.tags??[],session_config:n};t.initialMessage&&(r.initial_message=t.initialMessage);let i=(await this.callApi("/cloud-agents/agents/create",r)).agent;if(!i?.agent_id)throw new Error("createAgent: server returned no agent");return po({...i,agent_name:i.agent_name??t.name})}async updateSessionConfig(t){Un.info(`updateSessionConfig: agent=${t.agentId} model=${t.model??"<unset>"}`),await this.callApi("/cloud-agents/agents/update-session-config",{agent_id:t.agentId,session_config:{...t.model===void 0?{}:{model:t.model}}})}async requestSessionMcpServer(t){Un.info(`requestSessionMcpServer: agent=${t.agentId} config=${t.mcpConfigId} request=${t.requestId}`);let n=await this.callApi("/cloud-agents/agents/request-mcp-server",{agent_id:t.agentId,mcp_config_id:t.mcpConfigId,request_id:t.requestId},{timeoutMs:xX});return{status:typeof n?.status=="string"?n.status:""}}async getMessages(t,n){Un.info(`getMessages: agent=${t} limit=${n??"<default>"}`);let o=(await this.callApi("/cloud-agents/agents/get-messages",{agent_id:t,...n===void 0?{}:{limit:n},include_replay_fidelity:!0})).messages;return o==null?[]:Array.isArray(o)?o.map(i=>Wk(i,t)):(Un.warn(`getMessages: unexpected response shape for agent ${t}: messages is ${typeof o}, not an array`),[])}async sendMessage(t,n){Un.info(`sendMessage: agent=${t} length=${n.length}`),await this.callApi("/cloud-agents/agents/send-message",{agent_id:t,message:n})}async listWorkerSessions(t,n){this.logger.debug("Listing worker sessions for parent %s",t);let r=n?.pageLimit??100,o=[],i;do{let s=await this.listAgentsPaginated({limit:r,parentAgentId:t,includeArchived:!0,pageToken:i});for(let l of s.agents)l.parentAgentId===t&&o.push(l);i=s.hasMore?s.nextPageToken:void 0}while(i);return o}async batchGetAgentMessageCounts(t){if(t.length===0)return{};this.logger.debug("Fetching message counts for %d agents",t.length);let r=(await this.callApi("/cloud-agents/agents/batch-get-message-counts",{agent_ids:t})).counts_by_agent_id;if(!r||typeof r!="object")return{};let o={};for(let[i,s]of Object.entries(r))typeof s=="number"&&(o[i]=s);return o}async createAgentFromExpert(t){this.logger.info("Creating agent from expert %s",t.expertId);let n=await this.callApi("/cloud-experts/experts/create-agent",{expert_id:t.expertId,...t.agentName?{agent_name:t.agentName}:{},...t.initialMessage?{initial_message:t.initialMessage}:{},idempotency_key:c5(),send_initial_messages:!1,...t.spaceId?{space_id:t.spaceId}:{},...t.routingTarget?{routing_target:Nk(t.routingTarget)}:{}});if(!n.agent)throw new Error("Failed to create agent from expert: no agent in response");return{agentId:n.agent.agent_id,agentName:n.agent.agent_name}}async getSessionUsage(t){this.logger.debug("Fetching session usage for %s",t.agentId);let n=await this.callApi("/get-session-usage",{agent_id:t.agentId});return{currentSession:{estimatedCustomerCostUsd:n.usage_current_session?.total_usage?.estimated_customer_cost_usd},withChildSessions:{estimatedCustomerCostUsd:n.usage_with_child_sessions?.total_usage?.estimated_customer_cost_usd}}}async renameAgent(t,n){this.logger.info("Renaming agent %s",t);let r=await this.callApi("/cloud-agents/agents/rename",{agent_id:t,new_name:n});if(!r.agent)throw new Error("Failed to rename agent: no agent in response");return po(r.agent)}async updateAgentSessionTag(t,n,r,o){this.logger.info("Updating session tag '%s' for agent %s",n,t);let i=await this.callApi("/cloud-agents/agents/update-session-tags",{agent_id:t,key:n,value:r,delete:o});if(!i.agent)throw new Error("Failed to update session tags: no agent in response");return po(i.agent)}async deleteAgent(t){this.logger.info("Deleting agent %s",t);let n=await this.callApi("/cloud-agents/agents/delete",{agent_id:t});if(n.success===!1)throw new Error(n.error_message||`Failed to delete agent: ${t}`)}async archiveAgent(t){this.logger.info("Archiving agent %s",t),await this.callApi("/cloud-agents/agents/archive",{agent_id:t})}async unarchiveAgent(t){this.logger.info("Unarchiving agent %s",t),await this.callApi("/cloud-agents/agents/unarchive",{agent_id:t})}async pinSession(t){this.logger.debug("Pinning session %s",t),await this.callApi("/settings/pin-poseidon-session",{session_id:t})}async unpinSession(t){this.logger.debug("Unpinning session %s",t),await this.callApi("/settings/unpin-poseidon-session",{session_id:t})}async getPinnedSessions(){return this.logger.debug("Listing pinned sessions"),((await this.callApi("/settings/get-poseidon-user-settings",{})).pinned_order??[]).map(n=>({sessionId:n.session_id||void 0,projectId:n.project_id||void 0}))}listSpaceRoleBindings(t){return this.base_listObjectRoleBindings(_b,t)}grantSpaceRole({spaceId:t,principal:n,role:r}){return this.base_grantObjectRole(_b,t,n,r)}revokeSpaceRole({spaceId:t,principal:n}){return this.base_revokeObjectRole(_b,t,n)}async listSpaces(){return this.logger.debug("Listing tenant spaces"),((await this.callApi("/cloud-spaces/spaces/list",{})).spaces??[]).map(tc)}async createSpace(t){this.logger.info("Creating space %s",t);let n=await this.callApi("/cloud-spaces/spaces/create",{display_name:t});if(!n.space)throw new Error("Failed to create space: no space in response");return tc(n.space)}async updateSpace(t,n){this.logger.info("Renaming space %s to %s",t,n);let r=await this.callApi("/cloud-spaces/spaces/update",{space_id:t,display_name:n});if(!r.space)throw new Error("Failed to rename space: no space in response");return tc(r.space)}async deleteSpace(t){return this.logger.info("Deleting space %s",t),(await this.callApi("/cloud-spaces/spaces/delete",{space_id:t})).success??!1}async getSpace(t,n){this.logger.debug("Getting space %s",t||"(default)");let r=await this.callApi("/cloud-spaces/spaces/get",{space_id:t},{signal:n});return r.space?tc(r.space):void 0}async openTunnel(t){this.logger.debug("Opening Poseidon tunnel for agent %s",t.agentId);let n=await this.callApi("/cloud-tunnels/tunnels/open",{agent_id:t.agentId,local_port:t.localPort,...t.localHost?{local_host:t.localHost}:{},...t.label?{label:t.label}:{},activate:t.activate??!0});if(!n.tunnel)throw new Error("Failed to open tunnel: response did not include a tunnel");return Qb(n.tunnel)}async closeTunnel(t){this.logger.debug("Closing Poseidon tunnel %s",t.tunnelId);let n=await this.callApi("/cloud-tunnels/tunnels/close",{tunnel_id:t.tunnelId,...t.reason?{reason:t.reason}:{}});return n.tunnel?Qb(n.tunnel):void 0}async listTunnels(t){return this.logger.debug("Listing Poseidon tunnels for agent %s",t),((await this.callApi("/cloud-tunnels/tunnels/list",{agent_id:t})).tunnels??[]).map(Qb)}async isScopedResolutionEnabled(){return(await this.callApi("/user-secrets/list",{include_values:!1,page_size:1,scope:1})).secret_scoped_resolution_enabled===!0}async listUserSecrets(t){if(t.scope==="all")return(await Promise.all([this.listUserSecrets({...t,scope:"user"}),this.listUserSecrets({...t,scope:"tenant"})])).flat().sort((l,a)=>l.scope===a.scope?l.name.localeCompare(a.name):l.scope==="user"?-1:1);let n=t.scope==="tenant",r={},o=Ck(t.tagFilter);return o&&(r.tag_filters=o),t.includeValues!==void 0&&(r.include_values=t.includeValues),t.pageSize!==void 0&&(r.page_size=t.pageSize),t.pageToken!==void 0&&(r.page_token=t.pageToken),n||(r.scope=go.user,t.spaceId!==void 0&&(r.space_id=t.spaceId)),((await this.callApi(n?"/tenant-secrets/list":"/user-secrets/list",r)).secrets??[]).map(s=>nc(s,t.scope))}async getUserSecret(t,n){let r=n==="tenant",o=await this.callApi(r?"/tenant-secrets/get":"/user-secrets/get",r?{name:t}:{name:t,scope:go[n]});if(!o.secret)throw new Error(`Get response missing secret payload for ${t}`);return{...nc(o.secret,n),value:o.secret.value??""}}async upsertUserSecret(t){let n=t.scope==="tenant",r={name:t.name,value:t.value};if(t.description!==void 0&&(r.description=t.description),t.tags!==void 0&&(r.tags=t.tags),t.expectedVersion!==void 0&&(r.expected_version=t.expectedVersion),t.maxValueSizeBytes!==void 0&&(r.max_value_size_bytes=t.maxValueSizeBytes),!n&&(r.scope=go[t.scope],t.secretId!==void 0&&(r.secret_id=t.secretId),t.secretId&&t.description!==void 0&&(r.update_description=!0),t.secretId&&t.tags!==void 0&&(r.update_tags=!0),t.applicability&&(r.applicability=Fk[t.applicability]),t.updateSpaces)){if(t.allSpaces&&(t.spaceIds?.length??0)>0)throw new Error("allSpaces and non-empty spaceIds are mutually exclusive");r.update_spaces=!0,r.all_spaces=t.allSpaces===!0,r.space_ids=t.allSpaces?[]:[...t.spaceIds??[]].sort()}let o=await this.callApi(n?"/tenant-secrets/upsert":"/user-secrets/upsert",r);if(this.logger.debug("Upserted secret (response=%o)",Kb(o)),!o.secret)throw new Error(`Upsert response missing secret payload for ${t.name}`);return nc(o.secret,t.scope)}async deleteUserSecret(t,n,r,o){let i=n==="tenant",s={name:t};return r!==void 0&&(s.expected_version=r),i||(s.scope=go[n],o!==void 0&&(s.secret_id=o)),(await this.callApi(i?"/tenant-secrets/delete":"/user-secrets/delete",s)).deleted??!1}async migrateUserSecret(t){let n=await this.callApi("/user-secrets/migrate-scope",{name:t.name,source_scope:go[t.fromScope],target_scope:go[t.toScope],delete_source:t.deleteSource});if(!n.secret)throw new Error(`Migrate response missing secret payload for ${t.name}`);return{secret:nc(n.secret,t.toScope),sourceDeleted:n.source_deleted??!1}}async listFileVersions(t){let n={filesystem_id:t.filesystemId,space_id:t.spaceId,path:t.path};return t.pageToken&&(n.page_token=t.pageToken),await this.callApi(`${Qt}/list-file-versions`,n)}async readFileVersion(t){let n={filesystem_id:t.filesystemId,space_id:t.spaceId,path:t.path,timestamp:t.timestamp};return t.seq&&t.seq>0&&(n.seq=t.seq),await this.callApi(`${Qt}/read-file-version`,n)}async listVersionedFiles(t){let n={filesystem_id:t.filesystemId,space_id:t.spaceId,include_deleted:t.includeDeleted};return t.pageToken&&(n.page_token=t.pageToken),await this.callApi(`${Qt}/list-versioned-files`,n)}async fetchChanges(t){return await this.callApi(`${Qt}/fetch-changes`,{filesystem_id:t.filesystemId,space_id:t.spaceId,after_seq:t.afterSeq})}async fetchContent(t){let n=`${Qt}/fetch-content`,r="fileId"in t?{file_id:t.fileId}:{filesystem_id:t.filesystemId,paths:[t.path],space_id:t.spaceId},s=(await(await this.request(n.replace(/^\//,""),r,void 0,void 0,Yk)).json()).files?.[0];if(!s&&"fileId"in t)throw new Error("FetchVFSFileContent returned no content for this file");return s??null}async fetchContentByFileId(t){let n=await this.fetchContent({fileId:t});if(!n)throw new Error("FetchVFSFileContent returned no content for this file");return n}async commitChanges(t){return await this.callApi(`${Qt}/commit-changes`,{filesystem_id:t.filesystemId,space_id:t.spaceId,file_changes:t.fileChanges.map(n=>({path:n.path,content:a5.from(n.content).toString("base64"),deleted:n.deleted,base_seq:n.baseSeq})),modified_by:t.modifiedBy,...t.agentId?{agent_id:t.agentId}:{}})}async ensureFileIdentity(t){let n=await this.callApi(`${Qt}/ensure-file-identity`,{filesystem_id:t.filesystemId,space_id:t.spaceId,path:t.path}),r=n.identity?.file_id;if(!r)throw new Error("EnsureVFSFileIdentity response did not include a file_id");return{fileId:r,currentPath:n.identity?.current_path??t.path,webAppBaseUrl:n.web_app_base_url,appPathPrefix:n.app_path_prefix}}async resolveFileIdentity(t){let n=await this.callApi(`${Qt}/resolve-file-identity`,{file_id:t}),r=n.identity;if(!r)throw new Error("ResolveVFSFileIdentity response did not include an identity");return{filesystemId:r.filesystem_id,spaceId:r.space_id,ownerUserId:r.owner_user_id,callerUserId:n.caller_user_id,currentPath:r.current_path,deleted:r.deleted===!0}}async appendComment(t){let n=await this.callApi(`${Qt}/append-comment`,{filesystem_id:t.filesystemId,space_id:t.spaceId,event:t.event});return{event:n.event?BX(n.event):void 0}}async listComments(t){let n={filesystem_id:t.filesystemId,space_id:t.spaceId};t.path&&(n.path=t.path),t.fileId&&(n.file_id=t.fileId),t.pageToken&&(n.page_token=t.pageToken);let r=await this.callApi(`${Qt}/list-comments`,n);return{events:r.events?.map(BX),raw_events:r.events,next_page_token:r.next_page_token??r.nextPageToken}}listWebhookRoleBindings(t){return this.base_listObjectRoleBindings(Tb,t)}grantWebhookRole({webhookId:t,principal:n,role:r}){return this.base_grantObjectRole(Tb,t,n,r)}revokeWebhookRole({webhookId:t,principal:n}){return this.base_revokeObjectRole(Tb,t,n)}async createWebhook(t){let n=await this.callApi("/cloud-webhooks/webhooks/create",{description:t.description??"",type:CX[t.type],captured_headers:t.capturedHeaders??[]}),r=n.webhookJson??n.webhook_json??"";if(!r)throw new Error("Failed to create webhook: response did not include webhook");let o=rs(this.base_parseJson(r,"create webhook")),i=n.url??o.url??"",s=n.setupInstructionsJson??n.setup_instructions_json??"",l=s?YX(this.base_parseJson(s,"create webhook setup instructions")):void 0;return{webhook:o,url:i,secret:n.secret??"",setupInstructions:l?{...l,webhookUrl:l.webhookUrl||i}:void 0}}async listWebhooks(){let t=await this.callApi("/cloud-webhooks/webhooks/list",{}),n=t.webhooksJson??t.webhooks_json??"";return n?this.base_parseJson(n,"list webhooks").filter(o=>o.webhookId||o.webhook_id).map(rs):[]}async getWebhook(t){let n=await this.callApi("/cloud-webhooks/webhooks/get",{webhook_id:t}),r=n.webhookJson??n.webhook_json??"";if(!r)throw new Error(`Webhook not found: ${t}`);return rs(this.base_parseJson(r,"get webhook"))}async deleteWebhook(t){let n=await this.callApi("/cloud-webhooks/webhooks/delete",{webhook_ids:[t]});return kk(n)}async updateWebhook(t){let n={webhook_id:t.webhookId};t.description!==void 0&&(n.description=t.description),t.capturedHeaders!==void 0&&(n.captured_headers=t.capturedHeaders,n.update_captured_headers=!0);let r=await this.callApi("/cloud-webhooks/webhooks/update",n),o=r.webhookJson??r.webhook_json??"";if(!o)throw new Error(`Failed to update webhook: ${t.webhookId}`);return{webhook:rs(this.base_parseJson(o,"update webhook"))}}async setWebhookSecret(t){let n=await this.callApi("/cloud-webhooks/webhooks/set-secret",{webhook_id:t.webhookId,secret:t.secret}),r=n.webhookJson??n.webhook_json??"";if(!r)throw new Error("Failed to set webhook secret: response did not include webhook");return{webhook:rs(this.base_parseJson(r,"set webhook secret"))}}async getWebhookSetupInstructions(t){let n=await this.callApi("/cloud-webhooks/webhooks/setup-instructions",{...t.webhookId?{webhook_id:t.webhookId}:{},...t.type?{type:CX[t.type]}:{}}),r=n.setupInstructionsJson??n.setup_instructions_json??"";return r?YX(this.base_parseJson(r,"webhook setup instructions"))??{steps:[],fields:[],webhookUrl:"",secretSource:"unknown"}:{steps:[],fields:[],webhookUrl:"",secretSource:"unknown"}}async workflow_listWorkflows(t={}){let n=await this.callApi("/cloud-triggers/workflows/list",{...t.eventSourceId?{event_source_id:t.eventSourceId}:{},...t.expertId?{expert_id:t.expertId}:{}});return this.base_parseJson(n.workflows_json||"[]","listWorkflows").map(o=>yn(o))}async getWorkflow(t){let n=await this.callApi("/cloud-triggers/workflows/get",{workflow_id:t}),r=this.base_parseJson(n.workflow_json||"null","getWorkflow");if(!r)throw new Error(`Workflow not found: ${t}`);return yn(r)}async deleteWorkflowResource({workflowId:t,expectedResourceVersion:n}){let r=await this.callApi("/cloud-triggers/workflows/delete",{workflow_ids:[t],...n===void 0?{}:{expected_resource_versions:[{workflow_id:t,expected_resource_version:n}]}});return{success:r.success??!0,deletedWorkflowIds:r.deleted_workflow_ids||r.deletedWorkflowIds||[],failedWorkflowIds:r.failed_workflow_ids||r.failedWorkflowIds||[],notFoundWorkflowIds:r.not_found_workflow_ids||r.notFoundWorkflowIds||[]}}async workflow_updateWorkflow({workflowId:t,name:n,enabled:r,expectedResourceVersion:o,overrideAutoCleanupOnIdle:i,initialInstructions:s,actorUserId:l,perMinuteCreateAgentLimit:a}){let c=await this.callApi("/cloud-triggers/workflows/update",{workflow_id:t,...n===void 0?{}:{name:n},...r===void 0?{}:{enabled:r},...o===void 0?{}:{expected_resource_version:o},...i===void 0?{}:{override_auto_cleanup_on_idle:i},...s===void 0?{}:{initial_instructions:s},...l===void 0?{}:{actor_user_id:l},...a===void 0?{}:{per_minute_create_agent_limit:a}}),d=this.base_parseJson(c.workflow_json||"null","updateWorkflow");if(!d)throw new Error(`Failed to update workflow: ${t}`);return yn(d)}async workflow_listEventSources(){let t=await this.callApi("/cloud-triggers/event-sources/list",{});return this.base_parseJson(t.event_sources_json||"[]","listEventSources").map(r=>Er(r))}async getEventSource(t){let n=await this.callApi("/cloud-triggers/event-sources/get",{event_source_id:t}),r=this.base_parseJson(n.event_source_json||"null","getEventSource");if(!r)throw new Error(`Event source not found: ${t}`);return Er(r)}deleteWorkflow(t){return typeof t=="string"?this.deleteExpertWorkflows(t):this.deleteWorkflowResource(t)}};function zb(e){return new Xr(e)}var Tt=L.child({prefix:"AugmentApiAdapter"}),lc=class{api;apiUrl;apiToken;constructor(t,n,r){this.api=t,this.apiUrl=n.endsWith("/")?n:`${n}/`,this.apiToken=r}async batchUpload(t){Tt.debug(`batchUpload \u2192 ${t.length} blob(s)`);let n=t.map(o=>({pathName:o.pathName,text:o.text,blobName:o.blobName,metadata:o.metadata})),r=await this.api.batchUpload(n);return Tt.debug("batchUpload \u2190 done"),r}async checkpointBlobs(t){Tt.debug(`checkpointBlobs \u2192 +${t.addedBlobs.length} -${t.deletedBlobs.length} (checkpoint=${t.checkpointId??"new"})`);let n=await this.api.checkpointBlobs({checkpointId:t.checkpointId,addedBlobs:t.addedBlobs,deletedBlobs:t.deletedBlobs});return Tt.debug(`checkpointBlobs \u2190 checkpoint=${n.newCheckpointId??"none"}`),n}async findMissing(t){Tt.debug(`findMissing \u2192 ${t.length} blob(s)`);let n=await this.api.findMissing(t,void 0),r=n.nonindexedBlobNames.length,o=n.unknownBlobNames.length,i=t.length-r-o;return Tt.debug(`findMissing \u2190 ${i} indexed, ${r} non-indexed, ${o} unknown`),n}async*getLatestIndexedCommitBlobset(t,n){Tt.debug(`getLatestIndexedCommitBlobset \u2192 ${t.commit_shas.length} commit(s)`);let r=new URL("indexed-commits/get-latest-blobset",this.apiUrl),o=await fetch(r.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiToken}`},body:JSON.stringify({commit_shas:t.commit_shas}),signal:n});if(!o.ok)throw new Error(`getLatestIndexedCommitBlobset failed: ${o.status} ${o.statusText}`);let i=o.body?.getReader();if(!i)return;let s=new TextDecoder,l="";for(;;){let{value:a,done:c}=await i.read();if(c)break;for(l+=s.decode(a,{stream:!0});l.includes(`
132
+ `)}}let c=i(a.trim());c&&(yield c)}finally{await o.cancel().catch(()=>{})}}return s()}toChatResult(t){if(typeof t.error=="string")return{text:"",error:{displayErrorMessage:t.error,errorDetails:N5(t.error_details)}};let n=t.error;return{text:typeof t.text=="string"?t.text:"",unknownBlobNames:t.unknown_blob_names??[],checkpointNotFound:t.checkpoint_not_found??!1,workspaceFileChunks:wn(t.workspace_file_chunks)??[],nodes:t.nodes,stop_reason:I5(t.stop_reason),summarizeAndRetry:t.summarize_and_retry,error:n?{displayErrorMessage:String(n.display_error_message??n.displayErrorMessage??"Unknown stream error"),isRetriable:!!(n.is_retriable??n.isRetriable),shouldBackoff:!!(n.should_backoff??n.shouldBackoff)}:void 0}}async checkpointBlobs(t){let n=await this.callApi("checkpoint-blobs",{blobs:rc(t)},{timeoutMs:Cb});return{newCheckpointId:G5(n.new_checkpoint_id,"new_checkpoint_id")}}async batchUpload(t){let n=await this.callApi("batch-upload",{blobs:t.map(r=>({blob_name:r.blobName,path:r.pathName,content:r.text}))},{timeoutMs:Cb});return{blobNames:Yb(n.blob_names,"blob_names")}}async findMissing(t,n){let r=await this.callApi("find-missing",{model:n,mem_object_names:[...t].sort()},{timeoutMs:Cb});return{unknownBlobNames:Yb(r.unknown_memory_names,"unknown_memory_names"),nonindexedBlobNames:Yb(r.nonindexed_blob_names,"nonindexed_blob_names")}}async agentCodebaseRetrieval(t,n,r,o,i,s,l){let a=await this.request("agents/codebase-retrieval",{information_request:n,blobs:rc(r),dialog:o,max_output_length:i,disable_codebase_retrieval:s?.disableCodebaseRetrieval??!1,enable_commit_retrieval:s?.enableCommitRetrieval??!1,enable_conversation_retrieval:s?.enableConversationRetrieval??!1,...s?.conversationId?{conversation_id:s.conversationId}:{},...s?.parentConversationId?{parent_conversation_id:s.parentConversationId}:{},...s?.rootConversationId?{root_conversation_id:s.rootConversationId}:{},...s?.turnId?{turn_id:s.turnId}:{},...s?.bringYourOwnKey?{bring_your_own_key:s.bringYourOwnKey}:{}},t,l);return wn(await a.json())}async revokeCurrentUserTokens(){return await this.callApi("revoke-current-user-tokens",{})}async listRemoteTools(t){let n=await this.getRpcClient().listRemoteTools({toolIdList:{toolIds:t??[]}});return wn(Xl(MS,n,{enumAsInteger:!0,alwaysEmitImplicit:!0}))}async runRemoteTool(t,n,r,o,i,s,l){if(l!==void 0){let d=await this.request("agents/run-remote-tool",{tool_name:n,tool_input_json:r,tool_id:o,...F5(o,i),bot_type:l},t,s);return wn(await d.json())}let a;if(i)switch(o){case an.JIRA:case an.CONFLUENCE:a={case:"atlassianToolExtraInput",value:{serverUrl:i.serverUrl,personalApiToken:i.personalApiToken,username:i.username}};break;case an.NOTION:a={case:"notionToolExtraInput",value:{apiToken:i.apiToken}};break;case an.LINEAR:a={case:"linearToolExtraInput",value:{apiToken:i.apiToken}};break;case an.GITHUB_API:a={case:"githubToolExtraInput",value:{apiToken:i.apiToken}};break;default:break}let c=await this.getRpcClient().runRemoteTool({toolName:n,toolInputJson:r,toolId:o,extraToolInput:a},{signal:s,headers:{"x-request-id":t}});return{...wn(Xl(OS,c,{enumAsInteger:!0})),toolOutput:c.toolOutput,toolResultMessage:c.toolResultMessage,status:c.status,...c.fullOutputSize===void 0?{}:{fullOutputSize:Number(c.fullOutputSize)}}}async logAgentSessionEvent(t){await this.request("record-session-events",{events:t.map(n=>({time:new Date(n.event_time_sec*1e3+n.event_time_nsec/1e6).toISOString(),event:{agent_session_event:{...n,user_agent:this.getUserAgent()}}}))})}async logAgentRequestEvent(t){let n=Map.groupBy(t,r=>r.request_id);for(let[r,o]of n)await this.request("record-request-events",{events:o.map(({request_id:i,...s})=>({time:new Date(s.event_time_sec*1e3+s.event_time_nsec/1e6).toISOString(),event:{agent_request_event:{...s,user_agent:this.getUserAgent()}}}))},r)}async logToolUseRequestEvent(t){let n=Map.groupBy(t,r=>r.requestId);await Promise.all([...n].map(async([r,o])=>{await this.request("record-request-events",{events:o.map(i=>{let s=JSON.stringify(i.toolInput);return{time:new Date(i.eventTimeSec*1e3+i.eventTimeNsec/1e6).toISOString(),event:{tool_use_data:{tool_name:i.toolName,tool_use_id:i.toolUseId,tool_output_is_error:i.toolOutputIsError,tool_run_duration_ms:i.toolRunDurationMs,tool_input:s,tool_input_len:s.length,is_mcp_tool:i.isMcpTool,conversation_id:i.conversationId,chat_history_length:i.chatHistoryLength,tool_output_len:i.toolOutputLen,tool_lines_added:i.toolLinesAdded,tool_lines_deleted:i.toolLinesDeleted,tool_use_diff:i.toolUseDiff,tool_error_class:i.toolErrorClass,tool_error_snippet:i.toolErrorSnippet}}}})},r)}))}base_getApiUrl(){return this.apiUrl}base_getAuthToken(){return this.apiToken}base_getUserAgent(){return this.getUserAgent()}base_getAuthHeaders(){return{Authorization:`Bearer ${this.apiToken}`,"User-Agent":this.getUserAgent()}}base_parseJson(t,n){try{return JSON.parse(t)}catch(r){throw new Error(`Failed to parse ${n} response as JSON: ${r instanceof Error?r.message:String(r)}. Response length: ${t.length}`)}}async base_listObjectRoleBindings(t,n){return((await this.callApi("/access/list",{object_type:t,object_id:n})).entries??[]).map(o=>this.base_parseObjectRoleBinding(o))}async base_grantObjectRole(t,n,r,o){await this.callApi("/access/grant",{object_type:t,object_id:n,principal:this.base_accessPrincipal(r),role:o})}async base_revokeObjectRole(t,n,r){await this.callApi("/access/revoke",{object_type:t,object_id:n,principal:this.base_accessPrincipal(r)})}base_parseObjectRoleBinding(t){return{principalType:t.principal_type??t.principalType??"unknown",principalId:t.principal_id??t.principalId??"",principalEmail:t.principal_email??t.principalEmail,principalDisplayName:t.principal_display_name??t.principalDisplayName,role:t.role??"",grantedBy:t.granted_by??t.grantedBy,createdAt:this.base_parseTimestamp(t.created_at??t.createdAt)}}base_accessPrincipal(t){return"email"in t?{email:t.email}:"tenant"in t?{tenant:!0}:"groupId"in t?{group_id:t.groupId}:"serviceAccountId"in t?{service_account_id:t.serviceAccountId}:"group"in t?{group:t.group}:"serviceAccount"in t?{service_account:t.serviceAccount}:{user_id:t.userId}}base_parseTimestamp(t){if(typeof t=="string"){let n=new Date(t);return Number.isNaN(n.getTime())?void 0:n}if(t!==null&&typeof t=="object"&&"seconds"in t){let n=t;return new Date(Number(n.seconds)*1e3+Math.floor(Number(n.nanos??0)/1e6))}}async recordPoseidonAnalyticsEvents({events:t}){this.logger.debug("Recording %d Poseidon analytics event(s)",t.length),await this.callApi("/record-poseidon-analytics-events",{events:t})}async getCostAnalytics(t){return this.logger.debug("Fetching cost analytics"),await this.callApi("/get-cost-analytics",t)}async getCostAnalyticsV2(t){return this.logger.debug("Fetching cost analytics (v2)"),await this.callApi("/get-cost-analytics-v2",t)}async listTags(t){return this.logger.debug("Fetching analytics tag catalog"),await this.callApi("/list-tags",t)}async getSessionAnalytics(t){return this.logger.debug("Fetching outcome session analytics"),await this.callApi("/get-session-analytics",t)}async getOutcomeAnalytics(t){return this.logger.debug("Fetching outcome analytics"),await this.callApi("/get-outcome-analytics",t)}async createUpload(t){let n={visibility:y5[t.visibility],media_type:t.mediaType,size_bytes:t.sizeBytes,sha256_hex:t.sha256Hex};t.label!==void 0&&(n.label=t.label),t.filename!==void 0&&(n.filename=t.filename);let r=await this.callApi("/cloud-agents/artifacts/create-upload",n);return{hostedArtifactId:r.hosted_artifact_id??"",signedPutUrl:r.signed_put_url??"",requiredHeaders:r.required_headers??{},signedUrlExpiresAt:r.signed_url_expires_at??""}}async finalizeHostedArtifact(t){let n={hosted_artifact_id:t.hostedArtifactId};t.filename!==void 0&&(n.filename=t.filename);let r=await this.callApi("/cloud-agents/artifacts/finalize",n);if(r.artifact===void 0)throw new Error(`Finalize response missing artifact payload for ${t.hostedArtifactId}`);return w5(r.artifact)}async deleteHostedArtifact(t){let n=Y5(t)?{canonical_url:t}:{hosted_artifact_id:t};await this.callApi("/cloud-agents/artifacts/delete",n)}listEnvironmentRoleBindings(t){return this.base_listObjectRoleBindings(yb,t)}grantEnvironmentRole({imageId:t,principal:n,role:r}){return this.base_grantObjectRole(yb,t,n,r)}revokeEnvironmentRole({imageId:t,principal:n}){return this.base_revokeObjectRole(yb,t,n)}async getEnvironment(t){let n=await this.callApi("/cloud-environments/environments/get",{ref:this.environment_toApiEnvironmentRef(t)}),r=n.summary;if(!r?.id)throw new Error(`Environment target not found: ${t.id}`);let o=r;return t.type==="environment"?o=n.details?.base_image??r:t.type==="pool"?o=n.details?.daemon_pool??r:o=n.details?.unpooled_daemon??n.details?.unpooled??r,{id:r.id,type:this.environment_environmentKindToType(r.kind),displayName:r.display_name??r.id,description:r.description,visibility:r.visibility,raw:o}}async listBaseImages(t){let n=await this.callApi("/cloud-environments/environments/list",{...t?.includeDeleted?{include_deleted:!0}:{},kinds:[1],...t?.resolveUserDisplayNames?{resolve_user_display_names:!0}:{},...t?.orderBy===void 0?{}:{order_by:t.orderBy},...t?.searchQuery?{search_query:t.searchQuery}:{},...t?.ownedOnly?{owned_only:!0}:{},...t?.scope===void 0?{}:{scope:t.scope},...t?.spaceId?{space_id:t.spaceId}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}}),r=(n.environment_summaries??[]).filter(o=>(o.kind??0)===1&&typeof o.id=="string"&&o.id.length>0).map(o=>this.environment_parseBaseImage({id:o.id,image_id:o.id,display_name:o.display_name,description:o.description,visibility:o.visibility,created_at:o.created_at,updated_at:o.updated_at,created_by_user_name:o.created_by_user_name,space_id:o.space_id,sandbox_provider_id:o.sandbox_provider_id,sandbox_provider:o.sandbox_provider}));return r.length>0?r:(n.environments??[]).filter(o=>{let i=o.image_id??o.id;return typeof i=="string"&&i.length>0}).map(o=>this.environment_parseBaseImage(o))}async listCloudEnvironments(t){let n=await this.callApi("/cloud-environments/environments/list",{...t?.includeDeleted?{include_deleted:!0}:{},kinds:[1,2,3],...t?.resolveUserDisplayNames?{resolve_user_display_names:!0}:{},...t?.orderBy===void 0?{}:{order_by:t.orderBy},...t?.searchQuery?{search_query:t.searchQuery}:{},...t?.ownedOnly?{owned_only:!0}:{},...t?.scope===void 0?{}:{scope:t.scope},...t?.spaceId?{space_id:t.spaceId}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}}),r=(n.environment_summaries??[]).filter(o=>typeof o.id=="string"&&o.id.length>0).map(o=>this.environment_parseCloudEnvironmentSummary(o));return r.length>0?r:(n.environments??[]).filter(o=>{let i=o.image_id??o.id;return typeof i=="string"&&i.length>0}).map(o=>{let i=this.environment_parseBaseImage(o);return{sandboxProviderId:i.sandboxProviderId,sandboxProvider:i.sandboxProvider,kind:"base_image",id:i.imageId,displayName:i.displayName,description:i.description,visibility:i.visibility,currentVersion:i.currentVersion,status:i.status,raw:i.raw??{}}})}async createBaseImage(t){let n=await this.callApi("/cloud-environments/base-images/create",pX(t),{timeoutMs:this.poseidonConfig.imageBuildTimeoutMs});if(!n.environment)throw new Error(`Failed to create environment: ${t.displayName}`);return this.environment_parseBaseImage(n.environment)}async getBaseImage(t){let n=await this.callApi("/cloud-environments/environments/get",{ref:{base_image_id:t}}),r=n.details?.base_image??n.environment;if(!r)throw new Error(`Environment not found: ${t}`);return this.environment_parseBaseImage(r)}async updateBaseImage({imageId:t,sandboxProviderId:n,displayName:r,description:o,visibility:i,baseImage:s,refreshEnabled:l,repos:a,environmentVariables:c,expectedResourceVersion:d,tags:u,spaceId:h}){let b=await this.callApi("/cloud-environments/base-images/update",EX({imageId:t,sandboxProviderId:n,displayName:r,description:o,visibility:i,baseImage:s,refreshEnabled:l,repos:a,environmentVariables:c,expectedResourceVersion:d,tags:u,spaceId:h}));return this.environment_parseBaseImage(b?.environment??b)}async deleteBaseImage(t){await this.callApi("/cloud-environments/base-images/delete",{image_id:t})}async getBaseImageVersions(t,n=!1){return((await this.callApi("/cloud-environments/base-images/builds/list",{image_id:t,...n?{include_update_scripts:!0}:{}})).builds??[]).map(o=>({imageId:o.image_id??t,version:o.version??"",gcpImageUrl:o.gcp_image_url,upstreamDigest:o.upstream_digest,createdAt:o.created_at?new Date(o.created_at):void 0,status:o.lifecycle_status??o.status,errorMessage:o.error_message,modalImageId:o.modal_image_id,updateScript:n?o.update_script:void 0,hasUpdateScript:o.has_update_script??!!o.update_script}))}listEnvironmentBuilds(t,n=!1){return this.getBaseImageVersions(t,n)}async restoreEnvironment(t){let n=await this.callApi("/cloud-environments/base-images/restore",{image_id:t});if(!n.environment)throw new Error(`Failed to restore environment: ${t}`);return this.environment_parseBaseImage(n.environment)}async listEnvironmentVersions({environmentId:t,limit:n}){return((await this.callApi("/cloud-environments/base-images/versions/list",{image_id:t,limit:n??50})).versions??[]).map(o=>this.environment_parseEnvironmentVersion(o))}async getEnvironmentVersion({environmentId:t,resourceVersion:n}){let r=await this.callApi("/cloud-environments/base-images/versions/get",{image_id:t,resource_version:n});if(!r.version)throw new Error(`Version ${n} not found for environment ${t}`);return this.environment_parseEnvironmentVersion(r.version)}async runImageUpdate({imageId:t,provisionScript:n,vmStartupScript:r,baseImageRef:o,useDefaultScripts:i}){let s=await this.callApi("/cloud-environments/base-images/rebuild",{image_id:t,...n===void 0?{}:{provision_script:n},...r===void 0?{}:{vm_startup_script:r},...o===void 0?{}:{base_image_ref:o},...i===void 0?{}:{use_default_scripts:i}},{timeoutMs:this.poseidonConfig.imageBuildTimeoutMs});return{modalImageId:s.modal_image_id??"",updatedAt:s.updated_at?new Date(s.updated_at):void 0}}async startEnvironmentRebuild({environmentId:t,idempotencyKey:n,provisionScript:r,vmStartupScript:o,baseImageRef:i,registryCredentialName:s},l){let a=await this.environment_callAbortableApi("/cloud-environments/base-images/rebuild/start",{environment_id:t,idempotency_key:n,...r===void 0?{}:{provision_script:r},...o===void 0?{}:{vm_startup_script:o},...i===void 0?{}:{base_image_ref:i},...s===void 0?{}:{registry_credential_name:s}},l);return this.environment_parseEnvironmentOperation(a.operation)}async startEnvironmentRefresh({environmentId:t,idempotencyKey:n},r){let o=await this.environment_callAbortableApi("/cloud-environments/base-images/refresh/start",{environment_id:t,idempotency_key:n},r);return this.environment_parseEnvironmentOperation(o.operation)}async startEnvironmentSnapshotUpdate({environmentId:t,idempotencyKey:n,script:r,expectedCurrentVersion:o},i){let s=await this.environment_callAbortableApi("/cloud-environments/base-images/update-snapshot/start",{environment_id:t,idempotency_key:n,script:r,expected_current_version:o},i);return this.environment_parseEnvironmentOperation(s.operation)}async startEnvironmentRepositoryReconcile({environmentId:t,idempotencyKey:n,expectedCurrentVersion:r,...o},i){let s=await this.environment_callAbortableApi("/cloud-environments/base-images/repositories/reconcile/start",{update:EX({imageId:t,...o}),idempotency_key:n,...r===void 0?{}:{expected_current_version:r}},i);return this.environment_parseEnvironmentOperation(s.operation)}async startEnvironmentCreate({config:t,idempotencyKey:n,registryCredentialName:r},o){let i=await this.environment_callAbortableApi("/cloud-environments/base-images/create/start",{...pX(t),idempotency_key:n,...r===void 0?{}:{registry_credential_name:r}},o);if(!i.environment)throw new Error(`Failed to start environment create: ${t.displayName}`);return{environment:this.environment_parseBaseImage(i.environment),operation:this.environment_parseEnvironmentOperation(i.operation)}}async getEnvironmentOperation(t,n){let r=await this.environment_callAbortableApi("/cloud-environments/operations/get",{operation_id:t},n);return this.environment_parseEnvironmentOperation(r.operation)}async getActiveEnvironmentOperation(t,n){let r=await this.environment_callAbortableApi("/cloud-environments/operations/active/get",{environment_id:t},n);return r.operation?this.environment_parseEnvironmentOperation(r.operation):void 0}async cancelEnvironmentOperation(t,n){let r=await this.environment_callAbortableApi("/cloud-environments/operations/cancel",{operation_id:t},n);return this.environment_parseEnvironmentOperation(r.operation)}async updateEnvironmentSnapshot({environmentId:t,script:n,expectedCurrentVersion:r,idempotencyKey:o}){let i=await this.callApi("/cloud-environments/base-images/update-snapshot",{image_id:t,script:n,expected_current_version:r,idempotency_key:o},{timeoutMs:this.poseidonConfig.imageBuildTimeoutMs});return{modalImageId:i.modal_image_id??"",version:i.version??""}}async refreshEnvironment(t){await this.callApi("/cloud-environments/base-images/refresh",{image_id:t})}async duplicateBaseImage({sourceImageId:t,newDisplayName:n,visibility:r}){let o=await this.callApi("/cloud-environments/base-images/duplicate",{source_image_id:t,new_display_name:n,...r===void 0?{}:{visibility:r}}),i=o.environment??o.image;if(!i)throw new Error(`Failed to duplicate environment: ${t}`);return this.environment_parseBaseImage(i)}environment_parseEnvironmentOperation(t){let n=_5(t?.operation_type),r=t?.state===void 0?void 0:x5[t.state],o=t?.phase===void 0?void 0:v5[t.phase];if(!t?.operation_id||!t.environment_id||!n||!r||!o)throw new Error("Invalid environment operation response");let i=Number(t.result?.resource_version);if(r==="succeeded"&&(!t.result?.modal_image_id||!t.result.version||!Number.isSafeInteger(i)))throw new Error("Invalid environment operation response");return{operationId:t.operation_id,environmentId:t.environment_id,operationType:n,state:r,phase:o,result:t.result?{modalImageId:t.result.modal_image_id??"",version:t.result.version??"",resourceVersion:i}:void 0,error:t.error?{code:t.error.code??0,message:t.error.message??"",retryable:t.error.retryable??!1}:void 0}}async environment_callAbortableApi(t,n,r){let o=this.callApi(t,n,{signal:r});if(!r)return o;if(r.aborted)throw r.reason;let i,s=new Promise((l,a)=>{i=()=>a(r.reason),r.addEventListener("abort",i,{once:!0})});try{return await Promise.race([o,s])}finally{i&&r.removeEventListener("abort",i)}}environment_parseCloudEnvironmentSummary(t){let n=this.environment_cloudEnvironmentKind(t.kind),r={kind:n,id:t.id??"",displayName:t.display_name??t.id??"",description:t.description,visibility:t.visibility,raw:t},o=t.extras?.pool_status,i=t.extras?.unpooled;return n==="base_image"?(r.sandboxProviderId=t.sandbox_provider_id,r.sandboxProvider=t.sandbox_provider?Rr(t.sandbox_provider):void 0,r.currentVersion=t.current_version,r.status=t.status):n==="daemon_pool"&&o?r.poolStatus={daemonsOnline:o.daemons_online,slotsTotal:o.slots_total,slotsInUse:o.slots_in_use}:n==="daemon"&&i&&(r.daemon={vmId:i.vm_id,workspacePath:i.workspace_path,maxAgents:i.max_agents,currentAgentCount:i.current_agent_count}),r}environment_cloudEnvironmentKind(t){switch(t){case 2:return"daemon_pool";case 3:return"daemon";default:return"base_image"}}environment_parseEnvironmentVersion(t){return{resourceVersion:t.resource_version??0,config:t.config?this.environment_parseEnvironmentConfig(t.config):void 0,modifiedBy:t.modified_by??"",modifiedAt:t.modified_at?new Date(t.modified_at):void 0,changeType:t.change_type??""}}environment_parseEnvironmentConfig(t){return{sandboxProviderId:t.sandbox_provider_id,displayName:t.display_name??"",description:t.description,visibility:t.visibility,baseImage:t.base_image,refreshEnabled:t.refresh_enabled,repos:(t.repos??[]).map(n=>({owner:n.owner??"",name:n.name??"",...n.branch?{branch:n.branch}:{},...n.host?{host:n.host}:{},...n.project?{project:n.project}:{}})),environmentVariables:t.environment_variables?{variables:(t.environment_variables.variables??[]).map(n=>({name:n.name??"",value:n.value??""}))}:void 0,spaceId:typeof t.space_id=="string"?t.space_id:void 0,tags:t.tags??{}}}environment_parseBaseImage(t){let n=t.image_id??t.id??"",r=t.space_id;return{sandboxProviderId:t.sandbox_provider_id,sandboxProvider:t.sandbox_provider?Rr(t.sandbox_provider):void 0,imageId:n,displayName:t.display_name??n,description:t.description,currentVersion:t.current_version,status:t.lifecycle_status??t.status,visibility:t.visibility,modalImageId:t.modal_image_id,resourceVersion:t.resource_version,createdAt:t.created_at?new Date(t.created_at):void 0,updatedAt:t.updated_at?new Date(t.updated_at):void 0,spaceId:typeof r=="string"?r:void 0,tags:t.tags??{},raw:t}}environment_toApiEnvironmentRef(t){switch(t.type){case"environment":return{base_image_id:t.id};case"pool":return{daemon_pool_id:t.id};case"daemon":return{daemon_vm_id:t.id}}}environment_environmentKindToType(t){switch(t){case 1:return"environment";case 2:return"pool";case 3:return"daemon";default:throw new Error(`Unknown environment kind: ${t??"unset"}`)}}async getDefaultEnvironment(t){return t==="team"?(await this.callApi("/settings/get-poseidon-tenant-settings",{})).default_base_image_id??"":(await this.callApi("/settings/get-poseidon-user-settings",{})).default_environment_id??""}async setDefaultEnvironment(t,n){if(t==="team"){await this.callApi("/settings/update-poseidon-tenant-settings",{default_base_image_id:n});return}await this.callApi("/settings/update-poseidon-user-settings",{default_environment_id:n})}async unsetDefaultEnvironment(t){await this.setDefaultEnvironment(t,"")}async listEvents({limit:t,pageToken:n,source:r,filterPayload:o,eventType:i,since:s,until:l}={}){this.logger.debug("Listing cloud events");let a=await this.callApi("/cloud-events/events/list",{...t===void 0?{}:{limit:t},...n?{page_token:n}:{},...r?{source:r}:{},...o?{filter_payload:o}:{},...i?{event_type:i}:{},...s?{since:s}:{},...l?{until:l}:{}});return{events:(a.events??[]).map(Q5),nextPageToken:a.next_page_token,totalCount:a.total_count}}listExpertRoleBindings(t){return this.base_listObjectRoleBindings(Ub,t)}grantExpertRole({expertId:t,principal:n,role:r}){return this.base_grantObjectRole(Ub,t,n,r)}revokeExpertRole({expertId:t,principal:n}){return this.base_revokeObjectRole(Ub,t,n)}readExpertCapabilities(t,n){return bX(t,n,r=>{if(!this.reportedExpertEndpoints.has(n)){this.reportedExpertEndpoints.add(n),this.logger.warn(r.message);try{this.onExpertCapabilityMismatch?this.onExpertCapabilityMismatch(r,n):this.reportError(null,r.message,"",[{key:"api_call",value:n}])}catch{this.logger.warn("Failed to report expert capability mismatch.")}}})}parseExpertResponse(t,n){let r=fX(t);return r.config&&(r.config.capabilityNames=this.readExpertCapabilities(r.config,n)),r}parseExpertVersionResponse(t,n){let r=hX(t);return r.config&&(r.config={...r.config,capability_names:this.readExpertCapabilities(qa(r.config),n)}),r}async createExpert({scope:t,config:n,desiredSlug:r,spaceId:o,capabilitySource:i}){let s=await this.callApi("/cloud-experts/experts/create",{scope:t,config:Nb(n),...r===void 0?{}:{desired_slug:r},...o===void 0?{}:{space_id:o},...i===void 0?{}:{capability_source:Ib[i]}});if(!s.expert)throw new Error("Failed to create expert: no expert in response");return this.parseExpertResponse(s.expert,"/cloud-experts/experts/create")}async getExpert(t){let n=await this.callApi("/cloud-experts/experts/get",{expert_id:t});if(!n.expert)throw new Error(`Expert not found: ${t}`);return this.parseExpertResponse(n.expert,"/cloud-experts/experts/get")}async updateExpert({expertId:t,config:n,scope:r,expectedResourceVersion:o,spaceId:i,capabilitySource:s}){let l=await this.callApi("/cloud-experts/experts/update",{expert_id:t,...n?{config:Nb(n)}:{},...r===void 0?{}:{scope:r},...o===void 0?{}:{expected_resource_version:o},...i===void 0?{}:{space_id:i},...s===void 0?{}:{capability_source:Ib[s]}});if(!l.expert)throw new Error(`Failed to update expert: ${t}`);return this.parseExpertResponse(l.expert,"/cloud-experts/experts/update")}async deleteExperts({expertIds:t}){let n=await this.callApi("/cloud-experts/experts/delete",{expert_ids:t});return{deletedExpertIds:n.deleted_expert_ids??[],failedExpertIds:n.failed_expert_ids??[]}}async listExperts(t){return((await this.callApi("/cloud-experts/experts/list",{...t?.includeDeleted?{include_deleted:!0}:{},...t?.spaceId?{space_id:t.spaceId}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}})).experts??[]).map(r=>this.parseExpertResponse(r,"/cloud-experts/experts/list"))}async listExpertsWithUsage(t){let n=await this.callApi("/cloud-experts/experts/list-with-usage",{max_per_section:K5,...t?.spaceId?{space_id:t.spaceId}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}}),r=(o,i)=>(o??[]).filter(s=>s.expert).map(s=>({expert:this.parseExpertResponse(s.expert,"/cloud-experts/experts/list-with-usage"),...i.lastUsed&&s.last_used_at?{lastUsedAt:new Date(s.last_used_at)}:{},...i.weeklyActiveUsers&&s.weekly_active_users!==void 0?{weeklyActiveUsers:s.weekly_active_users}:{}}));return{recentlyUsed:r(n.recently_used,{lastUsed:!0}),popular:r(n.popular,{weeklyActiveUsers:!0}),other:r(n.other,{})}}async restoreExpert(t){let n=await this.callApi("/cloud-experts/experts/restore",{expert_id:t});if(!n.expert)throw new Error(`Failed to restore expert: ${t}`);return this.parseExpertResponse(n.expert,"/cloud-experts/experts/restore")}async listExpertVersions({expertId:t,limit:n}){return((await this.callApi("/cloud-experts/experts/versions/list",{expert_id:t,limit:n??T5})).versions??[]).map(o=>this.parseExpertVersionResponse(o,"/cloud-experts/experts/versions/list"))}async getExpertVersion({expertId:t,resourceVersion:n}){let r=await this.callApi("/cloud-experts/experts/versions/get",{expert_id:t,resource_version:n});if(!r.version)throw new Error(`Version ${n} not found for expert ${t}`);return this.parseExpertVersionResponse(r.version,"/cloud-experts/experts/versions/get")}async listWorkflows(t={}){let n=await this.callApi("/cloud-triggers/workflows/list",{...t.eventSourceId?{event_source_id:t.eventSourceId}:{},...t.expertId?{expert_id:t.expertId}:{}});return this.base_parseJson(n.workflows_json||"[]","listWorkflows").map(o=>yn(o))}async deleteExpertWorkflows(t){let n=await this.callApi("/cloud-triggers/workflows/delete",{workflow_ids:[t]});return{success:n.success??!0,deletedWorkflowIds:n.deleted_workflow_ids??[],failedWorkflowIds:n.failed_workflow_ids??[]}}async createWorkflow(t){let n=await this.callApi("/cloud-triggers/workflows/create",{...t.desiredSlug===void 0?{}:{desired_slug:t.desiredSlug},workflow_json:JSON.stringify({event_source_id:t.eventSourceId,name:t.name,...t.description===void 0?{}:{description:t.description},enabled:t.enabled,expert_id:t.expertId,...t.eventFilter?t.eventFilter:{},...t.overrideAutoCleanupOnIdle===void 0?{}:{override_auto_cleanup_on_idle:t.overrideAutoCleanupOnIdle},...t.initialInstructions===void 0?{}:{initial_instructions:t.initialInstructions},...t.actorUserId===void 0?{}:{actor_user_id:t.actorUserId},...t.perMinuteCreateAgentLimit===void 0?{}:{per_minute_create_agent_limit:t.perMinuteCreateAgentLimit}})}),r=this.base_parseJson(n.workflow_json||"null","createWorkflow");if(!r)throw new Error("Failed to create workflow: no workflow in response");return yn(r)}async updateWorkflow({workflowId:t,name:n,enabled:r,expectedResourceVersion:o,overrideAutoCleanupOnIdle:i,initialInstructions:s,actorUserId:l,perMinuteCreateAgentLimit:a}){let c=await this.callApi("/cloud-triggers/workflows/update",{workflow_id:t,...n===void 0?{}:{name:n},...r===void 0?{}:{enabled:r},...o===void 0?{}:{expected_resource_version:o},...i===void 0?{}:{override_auto_cleanup_on_idle:i},...s===void 0?{}:{initial_instructions:s},...l===void 0?{}:{actor_user_id:l},...a===void 0?{}:{per_minute_create_agent_limit:a}}),d=this.base_parseJson(c.workflow_json||"null","updateWorkflow");if(!d)throw new Error(`Failed to update workflow: ${t}`);return yn(d)}async listEventSources(){let t=await this.callApi("/cloud-triggers/event-sources/list",{});return this.base_parseJson(t.event_sources_json||"[]","listEventSources").map(r=>Er(r))}async deleteEventSources(t){let n=await this.callApi("/cloud-triggers/event-sources/delete",{event_source_ids:t});return{success:n.success??!0,deletedEventSourceIds:n.deleted_event_source_ids??[],failedEventSourceIds:n.failed_event_source_ids??[]}}async createEventSource(t){let n=await this.callApi("/cloud-triggers/event-sources/create",{...t.desiredSlug===void 0?{}:{desired_slug:t.desiredSlug},event_source_json:JSON.stringify({name:t.name,event_source_type:t.eventSourceType,...t.config})}),r=this.base_parseJson(n.event_source_json||"null","createEventSource");if(!r)throw new Error("Failed to create event source: no event_source in response");return Er(r)}async updateEventSource(t){let n=await this.callApi("/cloud-triggers/event-sources/update",{expected_resource_version:t.expectedResourceVersion,event_source_json:JSON.stringify({event_source_id:t.eventSourceId,name:t.name,event_source_type:t.eventSourceType,active:t.active,...t.config})}),r=this.base_parseJson(n.event_source_json||"null","updateEventSource");if(!r)throw new Error(`Failed to update event source: ${t.eventSourceId}`);return Er(r)}async listGroups(){this.logger.debug("Listing tenant groups");let t=[],n="";do{let r=await this.callApi("/cloud-groups/list",{page_token:n});t.push(...(r.groups??[]).map(wb)),n=r.next_page_token??""}while(n.length>0);return t}async createGroup(t,n){this.logger.info("Creating group %s",t);let r=await this.callApi("/cloud-groups/create",{name:t,description:n});if(!r.group)throw new Error("Failed to create group: no group in response");return wb(r.group)}async updateGroup(t,n){this.logger.info("Updating group %s",t);let r={group_id:t};n.name!==void 0&&(r.name=n.name),n.description!==void 0&&(r.description=n.description);let o=await this.callApi("/cloud-groups/update",r);if(!o.group)throw new Error("Failed to update group: no group in response");return wb(o.group)}async deleteGroup(t){this.logger.info("Deleting group %s",t),await this.callApi("/cloud-groups/delete",{group_id:t})}async listGroupMembers(t){this.logger.debug("Listing members of group %s",t);let n=[],r="";do{let o=await this.callApi("/cloud-groups/members/list",{group_id:t,page_token:r});n.push(...(o.members??[]).map(D5)),r=o.next_page_token??""}while(r.length>0);return n}async addGroupMembers(t,n){this.logger.info("Adding %d member(s) and %d service account(s) to group %s",n.members?.length??0,n.serviceAccounts?.length??0,t);let r=RX(t,n),o=await ZX(()=>this.callApi("/cloud-groups/members/add",r),r);return{addedUserIds:o.added_user_ids??[],alreadyMemberUserIds:o.already_member_user_ids??[]}}async removeGroupMembers(t,n){this.logger.info("Removing %d member(s) and %d service account(s) from group %s",n.members?.length??0,n.serviceAccounts?.length??0,t);let r=RX(t,n),o=await ZX(()=>this.callApi("/cloud-groups/members/remove",r),r);return{removedUserIds:o.removed_user_ids??[],notMemberUserIds:o.not_member_user_ids??[]}}async listIntegrations(){return this.logger.debug("Listing integrations"),((await this.callApi("/cloud-integrations/list",{})).integrations??[]).map(SX)}async invokeIntegrationAction({integrationId:t,kind:n}){this.logger.info("Invoking integration action %s on %s",n,t);let r=await this.callApi("/cloud-integrations/invoke-action",{integration_id:t,kind:n});return{urlToOpen:r.url_to_open??"",message:r.message??"",integration:r.integration?SX(r.integration):void 0}}async upsertMcpConfig({scope:t,config:n,expectedVersion:r}){let o=t==="tenant"?"/settings/upsert-mcp-tenant-config":"/settings/upsert-mcp-user-config";this.logger.debug("Upserting MCP config (scope=%s, id=%s)",t,n.id);let i={config:n};return r!==void 0&&(i.expected_version=r),await this.callApi(o,i)}async removeMcpConfig({scope:t,configId:n,expectedVersion:r}){let o=t==="tenant"?"/settings/remove-mcp-tenant-config":"/settings/remove-mcp-user-config";this.logger.debug("Removing MCP config (scope=%s, id=%s)",t,n);let i={config_id:n};return r!==void 0&&(i.expected_version=r),await this.callApi(o,i)}async getMcpTenantConfigs(){this.logger.debug("Getting tenant MCP configs");let t=await this.callApi("/settings/get-mcp-tenant-settings",{});return{configs:t.mcp_configs??[],version:t.version??""}}async getMcpUserConfigs(){this.logger.debug("Getting user MCP configs");let t=await this.callApi("/settings/get-mcp-user-settings",{});return{configs:t.mcp_configs??[],version:t.version??""}}async getMcpConfigById({configId:t,scope:n}){this.logger.debug("Getting MCP config by id (scope=%s, id=%s)",n,t);try{return(await this.callApi("/settings/get-mcp-config-by-id",{config_id:t,scope:O5[n]})).config??null}catch(r){if(r instanceof It&&r.statusCode===M5)return null;throw r}}async listSandboxProviders(t){return((await this.callApi("/sandbox-providers/list",{...t?.includeDeleted?{include_deleted:!0}:{},...t?.spaceId===void 0?{}:{space_id:t.spaceId}})).providers??[]).map(Rr)}async getSandboxProvider(t,n){let r=await this.callApi("/sandbox-providers/get",{slug:t,...n?.includeDeleted?{include_deleted:!0}:{},...n?.spaceId===void 0?{}:{space_id:n.spaceId}});if(!r.provider)throw new Error(`Sandbox provider not found: ${t}`);return Rr(r.provider)}async createSandboxProvider({slug:t,displayName:n,description:r,enabled:o,spaceIds:i,allSpaces:s}){let l=await this.callApi("/sandbox-providers/create",{slug:t,display_name:n,...r===void 0?{}:{description:r},...o===void 0?{}:{enabled:o},space_ids:i,all_spaces:s});if(!l.provider)throw new Error(`Failed to create sandbox provider: ${t}`);return Rr(l.provider)}async updateSandboxProvider({id:t,displayName:n,description:r,enabled:o,expectedResourceVersion:i,spaceIds:s,allSpaces:l}){let a=await this.callApi("/sandbox-providers/update",{id:t,...n===void 0?{}:{display_name:n},...r===void 0?{}:{description:r},...o===void 0?{}:{enabled:o},expected_resource_version:i,...s===void 0?{}:{space_ids:s},...l===void 0?{}:{all_spaces:l}});if(!a.provider)throw new Error(`Failed to update sandbox provider: ${t}`);return Rr(a.provider)}async deleteSandboxProvider({id:t,expectedResourceVersion:n}){await this.callApi("/sandbox-providers/delete",{id:t,expected_resource_version:n})}async restoreSandboxProvider({id:t,expectedResourceVersion:n}){let r=await this.callApi("/sandbox-providers/restore",{id:t,expected_resource_version:n});if(!r.provider)throw new Error(`Failed to restore sandbox provider: ${t}`);return Rr(r.provider)}listSandboxProviderRoleBindings(t){return this.base_listObjectRoleBindings(vb,t)}grantSandboxProviderRole({providerId:t,principal:n,role:r}){return this.base_grantObjectRole(vb,t,n,r)}revokeSandboxProviderRole({providerId:t,principal:n}){return this.base_revokeObjectRole(vb,t,n)}async listPools(t){return this.logger.debug("Listing daemon pools"),((await this.callApi("/cloud-environments/environments/list",{...t?.includeDeleted?{include_deleted:!0}:{},kinds:[2],resolve_user_display_names:!0})).environment_summaries??[]).filter(r=>(r.kind??0)===2&&typeof r.id=="string"&&r.id.length>0).map(r=>({...$a({id:r.id,display_name:r.display_name,description:r.description,visibility:r.visibility,created_by_user_id:r.created_by_user_id,created_by_user_name:r.created_by_user_name,created_at:r.created_at,updated_at:r.updated_at}),status:$5(r.extras?.pool_status)}))}async createPool({displayName:t,description:n,visibility:r,connectorUserId:o,connectorServiceAccount:i,workspaceIsolationPolicy:s,spaceId:l}){this.logger.info("Creating daemon pool %s",t);let a=WX({connectorUserId:o,connectorServiceAccount:i}),c=await this.callApi("/cloud-environments/pools/create",{display_name:t,...n===void 0?{}:{description:n},...r===void 0?{}:{visibility:r},...a===void 0?{}:{connector:a},...s===void 0?{}:{workspace_isolation_policy:s},...l===void 0?{}:{space_id:l}});if(!c.pool)throw new Error(`Failed to create daemon pool: ${t}`);return $a(c.pool)}async getPool(t,n){let r=await this.callApi("/cloud-environments/environments/get",{ref:{daemon_pool_id:t}},{signal:n}),o=r.summary,i=r.details?.daemon_pool;if(!o?.id&&!i?.id)throw new Error(`Daemon pool not found: ${t}`);return $a({...o,...i,id:i?.id??o?.id})}async updatePool({poolId:t,displayName:n,description:r,visibility:o,connectorUserId:i,connectorServiceAccount:s,workspaceIsolationPolicy:l,expectedResourceVersion:a,spaceId:c}){let d=WX({connectorUserId:i,connectorServiceAccount:s}),u=await this.callApi("/cloud-environments/pools/update",{id:t,...n===void 0?{}:{display_name:n},...r===void 0?{}:{description:r},...o===void 0?{}:{visibility:o},...d===void 0?{}:{connector:d},workspace_isolation_policy:l,expected_resource_version:a,...c===void 0?{}:{space_id:c}});return $a(u.pool??u)}async deletePool(t){this.logger.info("Deleting daemon pool %s",t),await this.callApi("/cloud-environments/pools/delete",{id:t})}async listPoolDaemons(t){return this.logger.debug("Listing daemons for pool %s",t),((await this.callApi("/cloud-environments/pools/daemons/list",{pool_id:t})).daemons??[]).filter(r=>typeof r.vm_id=="string"&&r.vm_id.length>0).map(ek)}listPoolRoleBindings(t){return this.logger.debug("Listing daemon_pool role bindings for %s",t),this.base_listObjectRoleBindings(xb,t)}grantPoolRole({poolId:t,principal:n,role:r}){return this.logger.debug("Granting daemon_pool role %s for %s",r,t),this.base_grantObjectRole(xb,t,n,r)}revokePoolRole({poolId:t,principal:n}){return this.logger.debug("Revoking daemon_pool roles for %s",t),this.base_revokeObjectRole(xb,t,n)}async listProjects(){return this.logger.debug("Listing projects"),((await this.callApi("/cloud-projects/projects/list",{})).projects??[]).map(ts)}async getProject(t){this.logger.debug("Getting project %s",t);let n=await this.callApi("/cloud-projects/projects/get",{project_id:t});if(!n.project)throw new Error("Failed to get project: no project in response");return ts(n.project)}async createProject(t){this.logger.info("Creating project %s",t.name);let n=await this.callApi("/cloud-projects/projects/create",{name:t.name,description:t.description});if(!n.project)throw new Error("Failed to create project: no project in response");return ts(n.project)}async deleteProject(t){this.logger.info("Deleting project %s",t),await this.callApi("/cloud-projects/projects/delete",{project_id:t})}async addProjectAgent(t){this.logger.info("Adding agent %s to project %s",t.agentId,t.projectId);let n=await this.callApi("/cloud-projects/projects/add-agent",{project_id:t.projectId,agent_id:t.agentId});if(!n.project)throw new Error("Failed to add agent: no project in response");return ts(n.project)}async removeProjectAgent(t){this.logger.info("Removing agent %s from project %s",t.agentId,t.projectId);let n=await this.callApi("/cloud-projects/projects/remove-agent",{project_id:t.projectId,agent_id:t.agentId});if(!n.project)throw new Error("Failed to remove agent: no project in response");return ts(n.project)}listResidentRoleBindings(t){return this.base_listObjectRoleBindings(Jb,t)}grantResidentRole({residentId:t,principal:n,role:r}){return this.base_grantObjectRole(Jb,t,n,r)}revokeResidentRole({residentId:t,principal:n}){return this.base_revokeObjectRole(Jb,t,n)}async createResident(t){let n=await this.callApi("/cloud-residents/residents/create",{scope:t.scope,config:IX(t.config)});if(!n.resident)throw new Error("Failed to create resident: no resident in response");return Zr(n.resident)}async getResident(t){let n=await this.callApi("/cloud-residents/residents/get",{resident_id:t});if(!n.resident)throw new Error(`Resident not found: ${t}`);return Zr(n.resident)}async updateResident(t){let n=await this.callApi("/cloud-residents/residents/update",{resident_id:t.residentId,...t.config?{config:IX(t.config)}:{},...t.scope===void 0?{}:{scope:t.scope},...t.expectedResourceVersion===void 0?{}:{expected_resource_version:t.expectedResourceVersion}});if(!n.resident)throw new Error(`Failed to update resident: ${t.residentId}`);return Zr(n.resident)}async deleteResidents(t){let n=await this.callApi("/cloud-residents/residents/delete",{resident_ids:t.residentIds,...t.hardDeletion?{hard_delete:!0}:{}});return{deletedResidentIds:n.deleted_resident_ids??[],failedResidentIds:n.failed_resident_ids??[]}}async listResidents(t){return((await this.callApi("/cloud-residents/residents/list",{...t?.scope===void 0?{}:{scope:t.scope},...t?.spaceId?{space_id:t.spaceId}:{},...t?.includeDeleted?{include_deleted:!0}:{},...t?.defaultSpaceOnly?{default_space_only:!0}:{}})).residents??[]).map(Zr)}async startResident(t){let n=await this.callApi("/cloud-residents/residents/start",{resident_id:t.residentId,...t.initialMessage?{initial_message:t.initialMessage}:{}});if(!n.resident)throw new Error(`Failed to start resident: ${t.residentId}`);return{resident:Zr(n.resident),agent:n.agent}}async stopResident(t){let n=await this.callApi("/cloud-residents/residents/stop",{resident_id:t.residentId});if(!n.resident)throw new Error(`Failed to stop resident: ${t.residentId}`);return Zr(n.resident)}async listResidentSessions(t){return((await this.callApi("/cloud-residents/residents/sessions/list",{resident_id:t.residentId})).sessions??[]).map(ik)}async getResidentVersion(t){let n;try{n=await this.callApi("/cloud-residents/residents/versions/get",{resident_id:t.residentId,resource_version:t.resourceVersion})}catch(r){throw r instanceof It&&r.statusCode===404?new bo(t.residentId,t.resourceVersion):r}if(!n.version)throw new bo(t.residentId,t.resourceVersion);return GX(n.version)}async listResidentVersions(t){return((await this.callApi("/cloud-residents/residents/versions/list",{resident_id:t.residentId,...t.limit===void 0?{}:{limit:t.limit}})).versions??[]).map(GX)}async restoreResident(t){let n=await this.callApi("/cloud-residents/residents/restore",{resident_id:t.residentId});if(!n.resident)throw new Error(`Failed to restore resident: ${t.residentId}`);return Zr(n.resident)}async listSlackChannels(t){let n=await this.callApi("/cloud-integrations/slack/list-channels",{...t.cursor===void 0?{}:{cursor:t.cursor},...t.limit===void 0?{}:{limit:t.limit}});return{channels:(n.channels??[]).map(r=>({id:r.id??"",name:r.name??"",isPrivate:r.is_private??!1,isMember:r.is_member??!1})),nextCursor:n.next_cursor??"",error:n.error??""}}async writeScopedSecret(t){let n=ck(t),r=await this.callApi("/user-secrets/upsert",n);if(r.secret===void 0)throw new Error(`Create response missing secret payload for ${t.name}`);let o=ec(r.secret,t.name,t.scope);return o.applicability===void 0&&t.applicability!==void 0?{...o,applicability:t.applicability}:o}async deleteScopedSecret({name:t,scope:n,secretId:r,expectedVersion:o}){let i={name:t,scope:wX[n],secret_id:r};return o!==void 0&&(i.expected_version=o),(await this.callApi("/user-secrets/delete",i)).deleted??!1}async listSecretMetadata(t){if(t.scope==="all"){let[l,a]=await Promise.all([this.listSecretMetadata({...t,scope:"user"}),this.listSecretMetadata({...t,scope:"tenant"})]);return[...l,...a].sort((c,d)=>c.scope===d.scope?c.name.localeCompare(d.name):c.scope==="user"?-1:1)}let n=t.scope==="tenant",r={include_values:!1,scope:ns[t.scope]},o=bk(t.tagFilter);o!==void 0&&(r.tag_filters=o),t.pageSize!==void 0&&(r.page_size=t.pageSize),t.pageToken!==void 0&&(r.page_token=t.pageToken),!n&&t.spaceId!==void 0&&(r.space_id=t.spaceId);let i=await this.callApi("/user-secrets/list",r),s=n?"tenant":"user";return(i.secrets??[]).map(l=>ec(l,l.name??"",s))}async isSecretMetadataScopedResolutionEnabled(){return(await this.callApi("/user-secrets/list",{include_values:!1,page_size:1,scope:ns.user})).secret_scoped_resolution_enabled===!0}async isSecretMultiSpaceTargetingEnabled(){return(await this.callApi("/user-secrets/list",{include_values:!1,page_size:1,scope:ns.user})).secret_multi_space_targeting_enabled===!0}async getOptionalSecretMetadata(t,n){try{return await this.getSecretMetadata(t,n)}catch(r){if(r instanceof It&&r.statusCode===404)return;throw r}}async getSecretMetadata(t,n){try{return await this.secretMetadata_getPinned(t,n)}catch(r){if(n!=="user"||!(r instanceof It)||r.statusCode!==404)throw r;let o=await this.secretMetadata_findExactUserMatches(t);if(o.length===0)throw r;if(o.length>1)throw new Li(`More than one user secret is named '${t}'; use a unique name to manage it.`);let i=o[0];if(i?.secretId===void 0||i.secretId==="")throw r;return this.secretMetadata_getPinned(t,n,i.secretId)}}async secretMetadata_getPinned(t,n,r){let o={name:t,include_values:!1,scope:ns[n]};n==="user"&&r!==void 0&&(o.secret_id=r);let i=await this.callApi("/user-secrets/get",o);if(i.secret===void 0)throw new Error(`Get response missing secret payload for ${t}`);return ec(i.secret,t,n)}async secretMetadata_findExactUserMatches(t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return((await this.callApi("/user-secrets/list",{name_pattern:`^${n}$`,include_values:!1,page_size:2,scope:ns.user})).secrets??[]).filter(o=>o.name===t).map(o=>ec(o,t,"user"))}async isSecretOlacEnabled(){return(await this.callApi("/get-models",{})).feature_flags?.cli_secret_olac_commands===!0}async renameSecret({secretId:t,newName:n}){let r=await this.callApi("/user-secrets/rename",{secret_id:t,new_name:n});if(this.logger.debug("Renamed secret %s",t),r.secret===void 0)throw new Error(`Rename response missing secret payload for ${t}`);return{name:r.secret.name??"",version:r.secret.version??"",secretId:r.secret.secret_id??t,olacReady:r.secret.olac_ready??!1}}listSecretRoleBindings(t){return this.base_listObjectRoleBindings(kb,t)}grantSecretRole({secretId:t,principal:n,role:r}){return this.base_grantObjectRole(kb,t,n,r)}revokeSecretRole({secretId:t,principal:n}){return this.base_revokeObjectRole(kb,t,n)}async listAgentsPaginated(t){let n=await this.callApi("/cloud-agents/agents/list",pk(t));return{agents:(n.agents??[]).map(po),hasMore:n.has_more??!1,...n.next_page_token?{nextPageToken:n.next_page_token}:{}}}async getAgent(t){let n=await this.callApi("/cloud-agents/agents/get",{agent_id:t});if(!n.agent)throw new Error(`Agent not found: ${t}`);return po(n.agent)}async registerVm(t){let n=t.mode??mk.AGENT;Un.info(`registerVm: agent=${t.agentId} mode=${n} cwd=${t.workspacePath}`);let r=Ek(t,n),o=await this.callApi("/vm-beachhead/connect-cli-vm",r);if(!o.success)throw new Error(`connect-cli-vm rejected by server: ${o.error_message??"unknown error"}`);let i=o.vm_id;if(!i)throw new Error("connect-cli-vm returned no vm_id");return Rk(t,o,i)}async createAgent(t){Un.info(`createAgent: name=${t.name}`);let n={agent_loop_type:fk};t.model&&(n.model=t.model);let r={agent_name:t.name,capabilities:t.capabilities??[],tags:t.tags??[],session_config:n};t.initialMessage&&(r.initial_message=t.initialMessage);let i=(await this.callApi("/cloud-agents/agents/create",r)).agent;if(!i?.agent_id)throw new Error("createAgent: server returned no agent");return po({...i,agent_name:i.agent_name??t.name})}async updateSessionConfig(t){Un.info(`updateSessionConfig: agent=${t.agentId} model=${t.model??"<unset>"}`),await this.callApi("/cloud-agents/agents/update-session-config",{agent_id:t.agentId,session_config:{...t.model===void 0?{}:{model:t.model}}})}async requestSessionMcpServer(t){Un.info(`requestSessionMcpServer: agent=${t.agentId} config=${t.mcpConfigId} request=${t.requestId}`);let n=await this.callApi("/cloud-agents/agents/request-mcp-server",{agent_id:t.agentId,mcp_config_id:t.mcpConfigId,request_id:t.requestId},{timeoutMs:xX});return{status:typeof n?.status=="string"?n.status:""}}async getMessages(t,n){Un.info(`getMessages: agent=${t} limit=${n??"<default>"}`);let o=(await this.callApi("/cloud-agents/agents/get-messages",{agent_id:t,...n===void 0?{}:{limit:n},include_replay_fidelity:!0})).messages;return o==null?[]:Array.isArray(o)?o.map(i=>Wk(i,t)):(Un.warn(`getMessages: unexpected response shape for agent ${t}: messages is ${typeof o}, not an array`),[])}async sendMessage(t,n){Un.info(`sendMessage: agent=${t} length=${n.length}`),await this.callApi("/cloud-agents/agents/send-message",{agent_id:t,message:n})}async listWorkerSessions(t,n){this.logger.debug("Listing worker sessions for parent %s",t);let r=n?.pageLimit??100,o=[],i;do{let s=await this.listAgentsPaginated({limit:r,parentAgentId:t,includeArchived:!0,pageToken:i});for(let l of s.agents)l.parentAgentId===t&&o.push(l);i=s.hasMore?s.nextPageToken:void 0}while(i);return o}async batchGetAgentMessageCounts(t){if(t.length===0)return{};this.logger.debug("Fetching message counts for %d agents",t.length);let r=(await this.callApi("/cloud-agents/agents/batch-get-message-counts",{agent_ids:t})).counts_by_agent_id;if(!r||typeof r!="object")return{};let o={};for(let[i,s]of Object.entries(r))typeof s=="number"&&(o[i]=s);return o}async createAgentFromExpert(t){this.logger.info("Creating agent from expert %s",t.expertId);let n=await this.callApi("/cloud-experts/experts/create-agent",{expert_id:t.expertId,...t.agentName?{agent_name:t.agentName}:{},...t.initialMessage?{initial_message:t.initialMessage}:{},idempotency_key:c5(),send_initial_messages:!1,...t.spaceId?{space_id:t.spaceId}:{},...t.routingTarget?{routing_target:Nk(t.routingTarget)}:{}});if(!n.agent)throw new Error("Failed to create agent from expert: no agent in response");return{agentId:n.agent.agent_id,agentName:n.agent.agent_name}}async getSessionUsage(t){this.logger.debug("Fetching session usage for %s",t.agentId);let n=await this.callApi("/get-session-usage",{agent_id:t.agentId});return{currentSession:{estimatedCustomerCostUsd:n.usage_current_session?.total_usage?.estimated_customer_cost_usd},withChildSessions:{estimatedCustomerCostUsd:n.usage_with_child_sessions?.total_usage?.estimated_customer_cost_usd}}}async renameAgent(t,n){this.logger.info("Renaming agent %s",t);let r=await this.callApi("/cloud-agents/agents/rename",{agent_id:t,new_name:n});if(!r.agent)throw new Error("Failed to rename agent: no agent in response");return po(r.agent)}async updateAgentSessionTag(t,n,r,o){this.logger.info("Updating session tag '%s' for agent %s",n,t);let i=await this.callApi("/cloud-agents/agents/update-session-tags",{agent_id:t,key:n,value:r,delete:o});if(!i.agent)throw new Error("Failed to update session tags: no agent in response");return po(i.agent)}async deleteAgent(t){this.logger.info("Deleting agent %s",t);let n=await this.callApi("/cloud-agents/agents/delete",{agent_id:t});if(n.success===!1)throw new Error(n.error_message||`Failed to delete agent: ${t}`)}async archiveAgent(t){this.logger.info("Archiving agent %s",t),await this.callApi("/cloud-agents/agents/archive",{agent_id:t})}async unarchiveAgent(t){this.logger.info("Unarchiving agent %s",t),await this.callApi("/cloud-agents/agents/unarchive",{agent_id:t})}async pinSession(t){this.logger.debug("Pinning session %s",t),await this.callApi("/settings/pin-poseidon-session",{session_id:t})}async unpinSession(t){this.logger.debug("Unpinning session %s",t),await this.callApi("/settings/unpin-poseidon-session",{session_id:t})}async getPinnedSessions(){return this.logger.debug("Listing pinned sessions"),((await this.callApi("/settings/get-poseidon-user-settings",{})).pinned_order??[]).map(n=>({sessionId:n.session_id||void 0,projectId:n.project_id||void 0}))}listSpaceRoleBindings(t){return this.base_listObjectRoleBindings(_b,t)}grantSpaceRole({spaceId:t,principal:n,role:r}){return this.base_grantObjectRole(_b,t,n,r)}revokeSpaceRole({spaceId:t,principal:n}){return this.base_revokeObjectRole(_b,t,n)}async listSpaces(){return this.logger.debug("Listing tenant spaces"),((await this.callApi("/cloud-spaces/spaces/list",{})).spaces??[]).map(tc)}async createSpace(t){this.logger.info("Creating space %s",t);let n=await this.callApi("/cloud-spaces/spaces/create",{display_name:t});if(!n.space)throw new Error("Failed to create space: no space in response");return tc(n.space)}async updateSpace(t,n){this.logger.info("Renaming space %s to %s",t,n);let r=await this.callApi("/cloud-spaces/spaces/update",{space_id:t,display_name:n});if(!r.space)throw new Error("Failed to rename space: no space in response");return tc(r.space)}async deleteSpace(t){return this.logger.info("Deleting space %s",t),(await this.callApi("/cloud-spaces/spaces/delete",{space_id:t})).success??!1}async getSpace(t,n){this.logger.debug("Getting space %s",t||"(default)");let r=await this.callApi("/cloud-spaces/spaces/get",{space_id:t},{signal:n});return r.space?tc(r.space):void 0}async openTunnel(t){this.logger.debug("Opening Poseidon tunnel for agent %s",t.agentId);let n=await this.callApi("/cloud-tunnels/tunnels/open",{agent_id:t.agentId,local_port:t.localPort,...t.localHost?{local_host:t.localHost}:{},...t.label?{label:t.label}:{},activate:t.activate??!0});if(!n.tunnel)throw new Error("Failed to open tunnel: response did not include a tunnel");return Qb(n.tunnel)}async closeTunnel(t){this.logger.debug("Closing Poseidon tunnel %s",t.tunnelId);let n=await this.callApi("/cloud-tunnels/tunnels/close",{tunnel_id:t.tunnelId,...t.reason?{reason:t.reason}:{}});return n.tunnel?Qb(n.tunnel):void 0}async listTunnels(t){return this.logger.debug("Listing Poseidon tunnels for agent %s",t),((await this.callApi("/cloud-tunnels/tunnels/list",{agent_id:t})).tunnels??[]).map(Qb)}async isScopedResolutionEnabled(){return(await this.callApi("/user-secrets/list",{include_values:!1,page_size:1,scope:1})).secret_scoped_resolution_enabled===!0}async listUserSecrets(t){if(t.scope==="all")return(await Promise.all([this.listUserSecrets({...t,scope:"user"}),this.listUserSecrets({...t,scope:"tenant"})])).flat().sort((l,a)=>l.scope===a.scope?l.name.localeCompare(a.name):l.scope==="user"?-1:1);let n=t.scope==="tenant",r={},o=Ck(t.tagFilter);return o&&(r.tag_filters=o),t.includeValues!==void 0&&(r.include_values=t.includeValues),t.pageSize!==void 0&&(r.page_size=t.pageSize),t.pageToken!==void 0&&(r.page_token=t.pageToken),n||(r.scope=go.user,t.spaceId!==void 0&&(r.space_id=t.spaceId)),((await this.callApi(n?"/tenant-secrets/list":"/user-secrets/list",r)).secrets??[]).map(s=>nc(s,t.scope))}async getUserSecret(t,n){let r=n==="tenant",o=await this.callApi(r?"/tenant-secrets/get":"/user-secrets/get",r?{name:t}:{name:t,scope:go[n]});if(!o.secret)throw new Error(`Get response missing secret payload for ${t}`);return{...nc(o.secret,n),value:o.secret.value??""}}async upsertUserSecret(t){let n=t.scope==="tenant",r={name:t.name,value:t.value};if(t.description!==void 0&&(r.description=t.description),t.tags!==void 0&&(r.tags=t.tags),t.expectedVersion!==void 0&&(r.expected_version=t.expectedVersion),t.maxValueSizeBytes!==void 0&&(r.max_value_size_bytes=t.maxValueSizeBytes),!n&&(r.scope=go[t.scope],t.secretId!==void 0&&(r.secret_id=t.secretId),t.secretId&&t.description!==void 0&&(r.update_description=!0),t.secretId&&t.tags!==void 0&&(r.update_tags=!0),t.applicability&&(r.applicability=Fk[t.applicability]),t.updateSpaces)){if(t.allSpaces&&(t.spaceIds?.length??0)>0)throw new Error("allSpaces and non-empty spaceIds are mutually exclusive");r.update_spaces=!0,r.all_spaces=t.allSpaces===!0,r.space_ids=t.allSpaces?[]:[...t.spaceIds??[]].sort()}let o=await this.callApi(n?"/tenant-secrets/upsert":"/user-secrets/upsert",r);if(this.logger.debug("Upserted secret (response=%o)",Kb(o)),!o.secret)throw new Error(`Upsert response missing secret payload for ${t.name}`);return nc(o.secret,t.scope)}async deleteUserSecret(t,n,r,o){let i=n==="tenant",s={name:t};return r!==void 0&&(s.expected_version=r),i||(s.scope=go[n],o!==void 0&&(s.secret_id=o)),(await this.callApi(i?"/tenant-secrets/delete":"/user-secrets/delete",s)).deleted??!1}async migrateUserSecret(t){let n=await this.callApi("/user-secrets/migrate-scope",{name:t.name,source_scope:go[t.fromScope],target_scope:go[t.toScope],delete_source:t.deleteSource});if(!n.secret)throw new Error(`Migrate response missing secret payload for ${t.name}`);return{secret:nc(n.secret,t.toScope),sourceDeleted:n.source_deleted??!1}}async listFileVersions(t){let n={filesystem_id:t.filesystemId,space_id:t.spaceId,path:t.path};return t.pageToken&&(n.page_token=t.pageToken),await this.callApi(`${Qt}/list-file-versions`,n)}async readFileVersion(t){let n={filesystem_id:t.filesystemId,space_id:t.spaceId,path:t.path,timestamp:t.timestamp};return t.seq&&t.seq>0&&(n.seq=t.seq),await this.callApi(`${Qt}/read-file-version`,n)}async listVersionedFiles(t){let n={filesystem_id:t.filesystemId,space_id:t.spaceId,include_deleted:t.includeDeleted};return t.pageToken&&(n.page_token=t.pageToken),await this.callApi(`${Qt}/list-versioned-files`,n)}async fetchChanges(t){return await this.callApi(`${Qt}/fetch-changes`,{filesystem_id:t.filesystemId,space_id:t.spaceId,after_seq:t.afterSeq})}async fetchContent(t){let n=`${Qt}/fetch-content`,r="fileId"in t?{file_id:t.fileId}:{filesystem_id:t.filesystemId,paths:[t.path],space_id:t.spaceId},s=(await(await this.request(n.replace(/^\//,""),r,void 0,void 0,Yk)).json()).files?.[0];if(!s&&"fileId"in t)throw new Error("FetchVFSFileContent returned no content for this file");return s??null}async fetchContentByFileId(t){let n=await this.fetchContent({fileId:t});if(!n)throw new Error("FetchVFSFileContent returned no content for this file");return n}async commitChanges(t){return await this.callApi(`${Qt}/commit-changes`,{filesystem_id:t.filesystemId,space_id:t.spaceId,file_changes:t.fileChanges.map(n=>({path:n.path,content:a5.from(n.content).toString("base64"),deleted:n.deleted,base_seq:n.baseSeq})),modified_by:t.modifiedBy,...t.agentId?{agent_id:t.agentId}:{}})}async ensureFileIdentity(t){let n=await this.callApi(`${Qt}/ensure-file-identity`,{filesystem_id:t.filesystemId,space_id:t.spaceId,path:t.path}),r=n.identity?.file_id;if(!r)throw new Error("EnsureVFSFileIdentity response did not include a file_id");return{fileId:r,currentPath:n.identity?.current_path??t.path,webAppBaseUrl:n.web_app_base_url,appPathPrefix:n.app_path_prefix}}async resolveFileIdentity(t){let n=await this.callApi(`${Qt}/resolve-file-identity`,{file_id:t}),r=n.identity;if(!r)throw new Error("ResolveVFSFileIdentity response did not include an identity");return{filesystemId:r.filesystem_id,spaceId:r.space_id,ownerUserId:r.owner_user_id,callerUserId:n.caller_user_id,currentPath:r.current_path,deleted:r.deleted===!0}}async appendComment(t){let n=await this.callApi(`${Qt}/append-comment`,{filesystem_id:t.filesystemId,space_id:t.spaceId,event:t.event});return{event:n.event?BX(n.event):void 0}}async listComments(t){let n={filesystem_id:t.filesystemId,space_id:t.spaceId};t.path&&(n.path=t.path),t.fileId&&(n.file_id=t.fileId),t.pageToken&&(n.page_token=t.pageToken);let r=await this.callApi(`${Qt}/list-comments`,n);return{events:r.events?.map(BX),raw_events:r.events,next_page_token:r.next_page_token??r.nextPageToken}}listWebhookRoleBindings(t){return this.base_listObjectRoleBindings(Tb,t)}grantWebhookRole({webhookId:t,principal:n,role:r}){return this.base_grantObjectRole(Tb,t,n,r)}revokeWebhookRole({webhookId:t,principal:n}){return this.base_revokeObjectRole(Tb,t,n)}async createWebhook(t){let n=await this.callApi("/cloud-webhooks/webhooks/create",{description:t.description??"",type:CX[t.type],captured_headers:t.capturedHeaders??[]}),r=n.webhookJson??n.webhook_json??"";if(!r)throw new Error("Failed to create webhook: response did not include webhook");let o=rs(this.base_parseJson(r,"create webhook")),i=n.url??o.url??"",s=n.setupInstructionsJson??n.setup_instructions_json??"",l=s?YX(this.base_parseJson(s,"create webhook setup instructions")):void 0;return{webhook:o,url:i,secret:n.secret??"",setupInstructions:l?{...l,webhookUrl:l.webhookUrl||i}:void 0}}async listWebhooks(){let t=await this.callApi("/cloud-webhooks/webhooks/list",{}),n=t.webhooksJson??t.webhooks_json??"";return n?this.base_parseJson(n,"list webhooks").filter(o=>o.webhookId||o.webhook_id).map(rs):[]}async getWebhook(t){let n=await this.callApi("/cloud-webhooks/webhooks/get",{webhook_id:t}),r=n.webhookJson??n.webhook_json??"";if(!r)throw new Error(`Webhook not found: ${t}`);return rs(this.base_parseJson(r,"get webhook"))}async deleteWebhook(t){let n=await this.callApi("/cloud-webhooks/webhooks/delete",{webhook_ids:[t]});return kk(n)}async updateWebhook(t){let n={webhook_id:t.webhookId};t.description!==void 0&&(n.description=t.description),t.capturedHeaders!==void 0&&(n.captured_headers=t.capturedHeaders,n.update_captured_headers=!0);let r=await this.callApi("/cloud-webhooks/webhooks/update",n),o=r.webhookJson??r.webhook_json??"";if(!o)throw new Error(`Failed to update webhook: ${t.webhookId}`);return{webhook:rs(this.base_parseJson(o,"update webhook"))}}async setWebhookSecret(t){let n=await this.callApi("/cloud-webhooks/webhooks/set-secret",{webhook_id:t.webhookId,secret:t.secret}),r=n.webhookJson??n.webhook_json??"";if(!r)throw new Error("Failed to set webhook secret: response did not include webhook");return{webhook:rs(this.base_parseJson(r,"set webhook secret"))}}async getWebhookSetupInstructions(t){let n=await this.callApi("/cloud-webhooks/webhooks/setup-instructions",{...t.webhookId?{webhook_id:t.webhookId}:{},...t.type?{type:CX[t.type]}:{}}),r=n.setupInstructionsJson??n.setup_instructions_json??"";return r?YX(this.base_parseJson(r,"webhook setup instructions"))??{steps:[],fields:[],webhookUrl:"",secretSource:"unknown"}:{steps:[],fields:[],webhookUrl:"",secretSource:"unknown"}}async workflow_listWorkflows(t={}){let n=await this.callApi("/cloud-triggers/workflows/list",{...t.eventSourceId?{event_source_id:t.eventSourceId}:{},...t.expertId?{expert_id:t.expertId}:{}});return this.base_parseJson(n.workflows_json||"[]","listWorkflows").map(o=>yn(o))}async getWorkflow(t){let n=await this.callApi("/cloud-triggers/workflows/get",{workflow_id:t}),r=this.base_parseJson(n.workflow_json||"null","getWorkflow");if(!r)throw new Error(`Workflow not found: ${t}`);return yn(r)}async deleteWorkflowResource({workflowId:t,expectedResourceVersion:n}){let r=await this.callApi("/cloud-triggers/workflows/delete",{workflow_ids:[t],...n===void 0?{}:{expected_resource_versions:[{workflow_id:t,expected_resource_version:n}]}});return{success:r.success??!0,deletedWorkflowIds:r.deleted_workflow_ids||r.deletedWorkflowIds||[],failedWorkflowIds:r.failed_workflow_ids||r.failedWorkflowIds||[],notFoundWorkflowIds:r.not_found_workflow_ids||r.notFoundWorkflowIds||[]}}async workflow_updateWorkflow({workflowId:t,name:n,enabled:r,expectedResourceVersion:o,overrideAutoCleanupOnIdle:i,initialInstructions:s,actorUserId:l,perMinuteCreateAgentLimit:a}){let c=await this.callApi("/cloud-triggers/workflows/update",{workflow_id:t,...n===void 0?{}:{name:n},...r===void 0?{}:{enabled:r},...o===void 0?{}:{expected_resource_version:o},...i===void 0?{}:{override_auto_cleanup_on_idle:i},...s===void 0?{}:{initial_instructions:s},...l===void 0?{}:{actor_user_id:l},...a===void 0?{}:{per_minute_create_agent_limit:a}}),d=this.base_parseJson(c.workflow_json||"null","updateWorkflow");if(!d)throw new Error(`Failed to update workflow: ${t}`);return yn(d)}async workflow_listEventSources(){let t=await this.callApi("/cloud-triggers/event-sources/list",{});return this.base_parseJson(t.event_sources_json||"[]","listEventSources").map(r=>Er(r))}async getEventSource(t){let n=await this.callApi("/cloud-triggers/event-sources/get",{event_source_id:t}),r=this.base_parseJson(n.event_source_json||"null","getEventSource");if(!r)throw new Error(`Event source not found: ${t}`);return Er(r)}deleteWorkflow(t){return typeof t=="string"?this.deleteExpertWorkflows(t):this.deleteWorkflowResource(t)}};function zb(e){return new Xr(e)}var Tt=L.child({prefix:"AugmentApiAdapter"}),lc=class{api;apiUrl;apiToken;constructor(t,n,r){this.api=t,this.apiUrl=n.endsWith("/")?n:`${n}/`,this.apiToken=r}async batchUpload(t){Tt.debug(`batchUpload \u2192 ${t.length} blob(s)`);let n=t.map(o=>({pathName:o.pathName,text:o.text,blobName:o.blobName,metadata:o.metadata})),r=await this.api.batchUpload(n);return Tt.debug("batchUpload \u2190 done"),r}async checkpointBlobs(t){Tt.debug(`checkpointBlobs \u2192 +${t.addedBlobs.length} -${t.deletedBlobs.length} (checkpoint=${t.checkpointId??"new"})`);let n=await this.api.checkpointBlobs({checkpointId:t.checkpointId,addedBlobs:t.addedBlobs,deletedBlobs:t.deletedBlobs});return Tt.debug(`checkpointBlobs \u2190 checkpoint=${n.newCheckpointId??"none"}`),n}async findMissing(t){Tt.debug(`findMissing \u2192 ${t.length} blob(s)`);let n=await this.api.findMissing(t,void 0),r=n.nonindexedBlobNames.length,o=n.unknownBlobNames.length,i=t.length-r-o;return Tt.debug(`findMissing \u2190 ${i} indexed, ${r} non-indexed, ${o} unknown`),n}async*getLatestIndexedCommitBlobset(t,n){Tt.debug(`getLatestIndexedCommitBlobset \u2192 ${t.commit_shas.length} commit(s)`);let r=new URL("indexed-commits/get-latest-blobset",this.apiUrl),o=await fetch(r.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiToken}`},body:JSON.stringify({commit_shas:t.commit_shas}),signal:n});if(!o.ok)throw new Error(`getLatestIndexedCommitBlobset failed: ${o.status} ${o.statusText}`);let i=o.body?.getReader();if(!i)return;let s=new TextDecoder,l="";for(;;){let{value:a,done:c}=await i.read();if(c)break;for(l+=s.decode(a,{stream:!0});l.includes(`
133
133
  `);){let d=l.indexOf(`
134
134
  `),u=l.slice(0,d);if(l=l.slice(d+1),!u.trim())continue;let h=JSON.parse(u);yield{commit_sha:h.commit_sha,file_infos:h.file_infos??[],checkpoint_id:h.baseline_checkpoint_id}}}if(l.trim()){let a=JSON.parse(l);yield{commit_sha:a.commit_sha,file_infos:a.file_infos??[],checkpoint_id:a.baseline_checkpoint_id}}}async registerIndexedCommitBlobset(t){Tt.debug(`registerIndexedCommitBlobset \u2192 sha=${t.commit.commit_sha} checkpoint=${t.blobs.checkpointId}`);let n=new URL("indexed-commits/register-blobset",this.apiUrl),r=await fetch(n.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiToken}`},body:JSON.stringify({commit:{commit_sha:t.commit.commit_sha,commit_time:t.commit.commit_time},blobs:{checkpoint_id:t.blobs.checkpointId,added_blobs:t.blobs.addedBlobs,deleted_blobs:t.blobs.deletedBlobs}})});if(!r.ok){let o=await r.text().catch(()=>"");throw new Error(`registerIndexedCommitBlobset failed: ${r.status} ${r.statusText} ${o}`)}Tt.debug("registerIndexedCommitBlobset \u2190 ok")}async agentCodebaseRetrieval(t,n,r,o,i){return Tt.debug(`agentCodebaseRetrieval \u2192 "${n.slice(0,80)}..."`),{formattedRetrieval:(await this.api.agentCodebaseRetrieval(t,n,{checkpointId:r.checkpointId,addedBlobs:r.addedBlobs,deletedBlobs:r.deletedBlobs},o,0,void 0,i)).formattedRetrieval}}};import{relative as f9,resolve as m9}from"node:path";import{exec as Hk}from"node:child_process";import{existsSync as Mk}from"node:fs";import{join as Ok}from"node:path";import{promisify as jk}from"node:util";import{execFile as Kk}from"node:child_process";import{promisify as zk}from"node:util";var vX=zk(Kk);async function JX(e,t){L.child({prefix:"GitDeltaCalculator"}).info(`Calculating git delta from commit ${t}`);let[r,o]=await Promise.all([Dk(e,t),Lk(e)]);return{modified:r.modified,added:r.added,deleted:r.deleted,untracked:o}}async function Dk(e,t){let n=new Set,r=new Set,o=new Set,i=L.child({prefix:"GitDeltaCalculator"});try{let{stdout:s}=await vX("git",["diff","--name-status",t],{cwd:e,maxBuffer:52428800});for(let l of s.split(`
135
135
  `)){if(!l.trim())continue;let[a,...c]=l.split(" "),d=c[0];if(d)switch(a[0]){case"M":case"T":n.add(d);break;case"A":r.add(d);break;case"D":o.add(d);break;case"R":o.add(d),c[1]&&r.add(c[1]);break;case"C":c[1]&&r.add(c[1]);break}}}catch(s){i.warn("Failed to get tracked changes",{error:s})}return{modified:n,added:r,deleted:o}}async function Lk(e){let t=new Set,n=L.child({prefix:"GitDeltaCalculator"});try{let{stdout:r}=await vX("git",["ls-files","--others","--exclude-standard"],{cwd:e,maxBuffer:52428800});for(let o of r.split(`