10 lines
32 KiB
JavaScript
10 lines
32 KiB
JavaScript
import * as ___react___ from 'react';
|
|
import * as ___react_dom___ from 'react-dom';
|
|
|
|
function require(mod) {
|
|
if (mod === 'react') return ___react___;
|
|
if (mod === 'react-dom') return ___react_dom___;
|
|
throw new Error(`Unknown module ${mod}`);
|
|
}
|
|
var w=new WeakMap;function k(e){let r=w.get(e);return r==null?null:(w.delete(e),r)}function g(e){let{abortSignal:r,durationMs:t}=e;r&&w.set(r,t)}function F(e){if(typeof performance.getEntriesByType!="function")return null;let r=performance.getEntriesByType("resource"),t=b(e.requestUrl),o=null,l=Number.POSITIVE_INFINITY;for(let d of r){let s=d;if(s.initiatorType!=="fetch"||!x(t,s.name,e.requestUrl)||s.startTime+1<e.requestStartedAt)continue;let u=Math.abs(s.startTime-e.requestStartedAt);u>l||(l=u,o=Math.round(s.duration))}return o}function b(e){try{let r=new URL(e);return{origin:r.origin,pathname:R(r.pathname)}}catch{return null}}function x(e,r,t){if(!e)return r===t;try{let o=new URL(r);return o.origin===e.origin&&R(o.pathname)===e.pathname}catch{return!1}}function R(e){return e.endsWith("/")&&e.length>1?e.slice(0,-1):e}async function y(e){let r=F({requestStartedAt:e.requestStartedAt,requestUrl:e.responseUrl});if(r!=null)return r;await new Promise(o=>{setTimeout(o,0)});let t=F({requestStartedAt:e.requestStartedAt,requestUrl:e.responseUrl});return t??Math.round(performance.now()-e.requestStartedAt)}function B(e){let{customHeaders:r,customPayload:t,resultDeserializerFn:o,url:l}=e,d=e.fetch||fetch;return{async execute(s,u){try{let i=performance.now(),n=await d(l,{body:JSON.stringify({customPayload:t,procedure:"query",query:s}),headers:{Accept:"application/json","Content-Type":"application/json",...r},method:"POST",signal:u?.abortSignal}),f=await y({requestStartedAt:i,responseUrl:n.url});if(g({abortSignal:u?.abortSignal,durationMs:f}),!n.ok){let c;try{c=await n.text()}catch{c="unknown error"}return[new Error(c)]}let[a,S]=await n.json();return a?[m(a)]:[null,o?.(S)||S]}catch(i){return[i]}},async executeSequence(s,u){try{let i=performance.now(),n=await d(l,{body:JSON.stringify({customPayload:t,procedure:"sequence",sequence:s}),headers:{Accept:"application/json","Content-Type":"application/json",...r},method:"POST",signal:u?.abortSignal}),f=await y({requestStartedAt:i,responseUrl:n.url});if(g({abortSignal:u?.abortSignal,durationMs:f}),!n.ok){let q;try{q=await n.text()}catch{q="unknown error"}return[[new Error(q)]]}let[[a,S],c]=await n.json();if(a)return[[m(a)]];let p=o?.(S)||S,[h,E]=c||[];return h?[[null,p],[m(h)]]:[[null,p],[null,o?.(E)||E]]}catch(i){return[[i]]}},async executeTransaction(s,u){try{let i=performance.now(),n=await d(l,{body:JSON.stringify({customPayload:t,procedure:"transaction",queries:s}),headers:{Accept:"application/json","Content-Type":"application/json",...r},method:"POST",signal:u?.abortSignal}),f=await y({requestStartedAt:i,responseUrl:n.url});if(g({abortSignal:u?.abortSignal,durationMs:f}),!n.ok){let p;try{p=await n.text()}catch{p="unknown error"}return[new Error(p)]}let[a,S]=await n.json();return a?[m(a)]:[null,(S??[]).map(p=>o?.(p)||p)]}catch(i){return[i]}},async lintSql(s,u){try{let i=performance.now(),n=await d(l,{body:JSON.stringify({customPayload:t,procedure:"sql-lint",schemaVersion:s.schemaVersion,sql:s.sql}),headers:{Accept:"application/json","Content-Type":"application/json",...r},method:"POST",signal:u?.abortSignal}),f=await y({requestStartedAt:i,responseUrl:n.url});if(g({abortSignal:u?.abortSignal,durationMs:f}),!n.ok){let c;try{c=await n.text()}catch{c="unknown error"}return[new Error(c)]}let[a,S]=await n.json();return a?[m(a)]:[null,S]}catch(i){return[i]}}}}function T(e){if(e instanceof AggregateError){let{name:r,message:t}=e,o=e.errors.map(T);return{name:r,message:t,errors:o}}if(e instanceof Error){let{name:r,message:t}=e;return{name:r,message:t}}return{name:"UnknownError",message:JSON.stringify(e)}}function m(e){let{name:r,message:t}=e;if(e.errors!==void 0){let l=e.errors.map(m),d=new AggregateError(l,t);return d.name=e.name,d}let o=new Error(e.message);return e.name=r,o}export{k as a,B as b,T as c,m as d};
|
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vZGF0YS9iZmYvYmZmLWNsaWVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBBZGFwdGVyU3FsTGludERpYWdub3N0aWMgfSBmcm9tIFwiLi4vYWRhcHRlclwiO1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRlT3B0aW9ucywgU2VxdWVuY2VFeGVjdXRvciB9IGZyb20gXCIuLi9leGVjdXRvclwiO1xuaW1wb3J0IHR5cGUgeyBRdWVyeSwgUXVlcnlSZXN1bHQgfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB0eXBlIHsgRWl0aGVyIH0gZnJvbSBcIi4uL3R5cGUtdXRpbHNcIjtcblxuY29uc3QgYmZmUmVxdWVzdER1cmF0aW9uQnlBYm9ydFNpZ25hbCA9IG5ldyBXZWFrTWFwPEFib3J0U2lnbmFsLCBudW1iZXI+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdW1lQmZmUmVxdWVzdER1cmF0aW9uTXNGb3JTaWduYWwoXG4gIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCxcbik6IG51bWJlciB8IG51bGwge1xuICBjb25zdCBkdXJhdGlvbiA9IGJmZlJlcXVlc3REdXJhdGlvbkJ5QWJvcnRTaWduYWwuZ2V0KGFib3J0U2lnbmFsKTtcblxuICBpZiAoZHVyYXRpb24gPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYmZmUmVxdWVzdER1cmF0aW9uQnlBYm9ydFNpZ25hbC5kZWxldGUoYWJvcnRTaWduYWwpO1xuICByZXR1cm4gZHVyYXRpb247XG59XG5cbmZ1bmN0aW9uIHJlY29yZEJmZlJlcXVlc3REdXJhdGlvbihhcmdzOiB7XG4gIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZDtcbiAgZHVyYXRpb25NczogbnVtYmVyO1xufSk6IHZvaWQge1xuICBjb25zdCB7IGFib3J0U2lnbmFsLCBkdXJhdGlvbk1zIH0gPSBhcmdzO1xuXG4gIGlmICghYWJvcnRTaWduYWwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBiZmZSZXF1ZXN0RHVyYXRpb25CeUFib3J0U2lnbmFsLnNldChhYm9ydFNpZ25hbCwgZHVyYXRpb25Ncyk7XG59XG5cbmZ1bmN0aW9uIGdldEJmZk5ldHdvcmtEdXJhdGlvbk1zKGFyZ3M6IHtcbiAgcmVxdWVzdFN0YXJ0ZWRBdDogbnVtYmVyO1xuICByZXF1ZXN0VXJsOiBzdHJpbmc7XG59KTogbnVtYmVyIHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBlbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcbiAgICBcInJlc291cmNlXCIsXG4gICkgYXMgUGVyZm9ybWFuY2VFbnRyeVtdO1xuICBjb25zdCBub3JtYWxpemVkUmVxdWVzdFVybCA9IG5vcm1hbGl6ZUNvbXBhcmFibGVSZXNvdXJjZVVybChhcmdzLnJlcXVlc3RVcmwpO1xuXG4gIGxldCBiZXN0RHVyYXRpb25NczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGxldCBiZXN0U3RhcnREZWx0YSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBmZXRjaEVudHJ5ID0gZW50cnkgYXMgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZztcblxuICAgIGlmIChmZXRjaEVudHJ5LmluaXRpYXRvclR5cGUgIT09IFwiZmV0Y2hcIikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIW1hdGNoZXNDb21wYXJhYmxlUmVzb3VyY2VVcmwoXG4gICAgICAgIG5vcm1hbGl6ZWRSZXF1ZXN0VXJsLFxuICAgICAgICBmZXRjaEVudHJ5Lm5hbWUsXG4gICAgICAgIGFyZ3MucmVxdWVzdFVybCxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChmZXRjaEVudHJ5LnN0YXJ0VGltZSArIDEgPCBhcmdzLnJlcXVlc3RTdGFydGVkQXQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0RGVsdGEgPSBNYXRoLmFicyhmZXRjaEVudHJ5LnN0YXJ0VGltZSAtIGFyZ3MucmVxdWVzdFN0YXJ0ZWRBdCk7XG5cbiAgICBpZiAoc3RhcnREZWx0YSA+IGJlc3RTdGFydERlbHRhKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBiZXN0U3RhcnREZWx0YSA9IHN0YXJ0RGVsdGE7XG4gICAgYmVzdER1cmF0aW9uTXMgPSBNYXRoLnJvdW5kKGZldGNoRW50cnkuZHVyYXRpb24pO1xuICB9XG5cbiAgcmV0dXJuIGJlc3REdXJhdGlvbk1zO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVDb21wYXJhYmxlUmVzb3VyY2VVcmwodXJsOiBzdHJpbmcpOiB7XG4gIG9yaWdpbjogc3RyaW5nO1xuICBwYXRobmFtZTogc3RyaW5nO1xufSB8IG51bGwge1xuICB0cnkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRVcmwgPSBuZXcgVVJMKHVybCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3JpZ2luOiBub3JtYWxpemVkVXJsLm9yaWdpbixcbiAgICAgIHBhdGhuYW1lOiB0cmltVHJhaWxpbmdTbGFzaChub3JtYWxpemVkVXJsLnBhdGhuYW1lKSxcbiAgICB9O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaGVzQ29tcGFyYWJsZVJlc291cmNlVXJsKFxuICBub3JtYWxpemVkUmVxdWVzdFVybDoge1xuICAgIG9yaWdpbjogc3RyaW5nO1xuICAgIHBhdGhuYW1lOiBzdHJpbmc7XG4gIH0gfCBudWxsLFxuICBjYW5kaWRhdGVVcmw6IHN0cmluZyxcbiAgZmFsbGJhY2tSZXF1ZXN0VXJsOiBzdHJpbmcsXG4pOiBib29sZWFuIHtcbiAgaWYgKCFub3JtYWxpemVkUmVxdWVzdFVybCkge1xuICAgIHJldHVybiBjYW5kaWRhdGVVcmwgPT09IGZhbGxiYWNrUmVxdWVzdFVybDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZENhbmRpZGF0ZVVybCA9IG5ldyBVUkwoY2FuZGlkYXRlVXJsKTtcblxuICAgIHJldHVybiAoXG4gICAgICBub3JtYWxpemVkQ2FuZGlkYXRlVXJsLm9yaWdpbiA9PT0gbm9ybWFsaXplZFJlcXVlc3RVcmwub3JpZ2luICYmXG4gICAgICB0cmltVHJhaWxpbmdTbGFzaChub3JtYWxpemVkQ2FuZGlkYXRlVXJsLnBhdGhuYW1lKSA9PT1cbiAgICAgICAgbm9ybWFsaXplZFJlcXVlc3RVcmwucGF0aG5hbWVcbiAgICApO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJpbVRyYWlsaW5nU2xhc2gocGF0aG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwYXRobmFtZS5lbmRzV2l0aChcIi9cIikgJiYgcGF0aG5hbWUubGVuZ3RoID4gMSkge1xuICAgIHJldHVybiBwYXRobmFtZS5zbGljZSgwLCAtMSk7XG4gIH1cblxuICByZXR1cm4gcGF0aG5hbWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEJmZlJlcXVlc3REdXJhdGlvbk1zKGFyZ3M6IHtcbiAgcmVxdWVzdFN0YXJ0ZWRBdDogbnVtYmVyO1xuICByZXNwb25zZVVybDogc3RyaW5nO1xufSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IGltbWVkaWF0ZUR1cmF0aW9uTXMgPSBnZXRCZmZOZXR3b3JrRHVyYXRpb25Ncyh7XG4gICAgcmVxdWVzdFN0YXJ0ZWRBdDogYXJncy5yZXF1ZXN0U3RhcnRlZEF0LFxuICAgIHJlcXVlc3RVcmw6IGFyZ3MucmVzcG9uc2VVcmwsXG4gIH0pO1xuXG4gIGlmIChpbW1lZGlhdGVEdXJhdGlvbk1zICE9IG51bGwpIHtcbiAgICByZXR1cm4gaW1tZWRpYXRlRHVyYXRpb25NcztcbiAgfVxuXG4gIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dChyZXNvbHZlLCAwKTtcbiAgfSk7XG5cbiAgY29uc3QgZGVsYXllZER1cmF0aW9uTXMgPSBnZXRCZmZOZXR3b3JrRHVyYXRpb25Ncyh7XG4gICAgcmVxdWVzdFN0YXJ0ZWRBdDogYXJncy5yZXF1ZXN0U3RhcnRlZEF0LFxuICAgIHJlcXVlc3RVcmw6IGFyZ3MucmVzcG9uc2VVcmwsXG4gIH0pO1xuXG4gIGlmIChkZWxheWVkRHVyYXRpb25NcyAhPSBudWxsKSB7XG4gICAgcmV0dXJuIGRlbGF5ZWREdXJhdGlvbk1zO1xuICB9XG5cbiAgcmV0dXJuIE1hdGgucm91bmQocGVyZm9ybWFuY2Uubm93KCkgLSBhcmdzLnJlcXVlc3RTdGFydGVkQXQpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0dWRpb0JGRkNsaWVudFByb3BzIHtcbiAgLyoqXG4gICAqIEFsbG93cyBwYXNzaW5nIGN1c3RvbSBoZWFkZXJzIHRvIHRoZSBCRkYuXG4gICAqXG4gICAqIGUuZy4gYXV0aG9yaXphdGlvbiB0b2tlbi5cbiAgICovXG4gIGN1c3RvbUhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgcGFzc2luZyBjdXN0b20gcGF5bG9hZCB0byB0aGUgQkZGIHZpYSBgYm9keS5jdXN0b21QYXlsb2FkYC5cbiAgICpcbiAgICogZS5nLiB0ZW5hbnQgaWQuXG4gICAqL1xuICBjdXN0b21QYXlsb2FkPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEFsbG93cyBvdmVycmlkaW5nIHRoZSBmZXRjaCBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbi5cbiAgICpcbiAgICogZS5nLiBmb3IgdGVzdGluZywgb3Igb2xkZXIgTm9kZS5qcyB2ZXJzaW9ucy5cbiAgICovXG4gIGZldGNoPzogdHlwZW9mIGdsb2JhbFRoaXMuZmV0Y2g7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGVzZXJpYWxpemUgdGhlIHJlc3VsdHMgb2YgcXVlcmllcy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIHJlc3VsdHMgYXJlIHJldHVybmVkIGFzIGlzIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgcHJvY2Vzc2luZy5cbiAgICovXG4gIHJlc3VsdERlc2VyaWFsaXplckZuPyh0aGlzOiB2b2lkLCByZXN1bHRzOiB1bmtub3duKTogdW5rbm93bltdO1xuXG4gIC8qKlxuICAgKiBCRkYgZW5kcG9pbnQgVVJMLlxuICAgKlxuICAgKiBlLmcuIGBodHRwczovL2FwaS5leGFtcGxlLmNvbS9zdHVkaW9gXG4gICAqL1xuICB1cmw6IHN0cmluZyB8IFVSTDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHVkaW9CRkZDbGllbnQgZXh0ZW5kcyBTZXF1ZW5jZUV4ZWN1dG9yIHtcbiAgLyoqXG4gICAqIFJlcXVlc3RzIEJGRiB0byBxdWVyeSB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIFRoZSBxdWVyeSBpcyBzZW50IGFzIGBib2R5LnF1ZXJ5YC5cbiAgICovXG4gIGV4ZWN1dGU8VD4oXG4gICAgdGhpczogdm9pZCxcbiAgICBxdWVyeTogUXVlcnk8VD4sXG4gICAgb3B0aW9ucz86IEV4ZWN1dGVPcHRpb25zLFxuICApOiBQcm9taXNlPEVpdGhlcjxFcnJvciwgUXVlcnlSZXN1bHQ8UXVlcnk8VD4+Pj47XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIEJGRiB0byBleGVjdXRlIGEgc2VxdWVuY2Ugb2YgcXVlcmllcy5cbiAgICpcbiAgICogVGhlIHNlcXVlbmNlIGlzIHNlbnQgYXMgYGJvZHkuc2VxdWVuY2VgLlxuICAgKi9cbiAgZXhlY3V0ZVNlcXVlbmNlPFQsIFM+KFxuICAgIHRoaXM6IHZvaWQsXG4gICAgc2VxdWVuY2U6IHJlYWRvbmx5IFtRdWVyeTxUPiwgUXVlcnk8Uz5dLFxuICAgIG9wdGlvbnM/OiBFeGVjdXRlT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxcbiAgICB8IFtbRXJyb3JdXVxuICAgIHwgW1tudWxsLCBRdWVyeVJlc3VsdDxRdWVyeTxUPj5dLCBFaXRoZXI8RXJyb3IsIFF1ZXJ5UmVzdWx0PFF1ZXJ5PFM+Pj5dXG4gID47XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIEJGRiB0byBleGVjdXRlIGEgdHJhbnNhY3Rpb25hbCBiYXRjaCBvZiBxdWVyaWVzLlxuICAgKlxuICAgKiBUaGUgcXVlcmllcyBhcmUgc2VudCBhcyBgYm9keS5xdWVyaWVzYC5cbiAgICovXG4gIGV4ZWN1dGVUcmFuc2FjdGlvbihcbiAgICB0aGlzOiB2b2lkLFxuICAgIHF1ZXJpZXM6IHJlYWRvbmx5IFF1ZXJ5PHVua25vd24+W10sXG4gICAgb3B0aW9ucz86IEV4ZWN1dGVPcHRpb25zLFxuICApOiBQcm9taXNlPEVpdGhlcjxFcnJvciwgUXVlcnlSZXN1bHQ8UXVlcnk8dW5rbm93bj4+W10+PjtcblxuICAvKipcbiAgICogUmVxdWVzdHMgQkZGIHRvIGxpbnQgU1FMIHZpYSBwYXJzZS9wbGFuIGRpYWdub3N0aWNzLlxuICAgKi9cbiAgbGludFNxbChcbiAgICB0aGlzOiB2b2lkLFxuICAgIGRldGFpbHM6IFN0dWRpb0JGRlNxbExpbnREZXRhaWxzLFxuICAgIG9wdGlvbnM/OiBFeGVjdXRlT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxFaXRoZXI8RXJyb3IsIFN0dWRpb0JGRlNxbExpbnRSZXN1bHQ+Pjtcbn1cblxuZXhwb3J0IHR5cGUgU3R1ZGlvQkZGUmVxdWVzdCA9XG4gIHwgU3R1ZGlvQkZGUXVlcnlSZXF1ZXN0XG4gIHwgU3R1ZGlvQkZGU2VxdWVuY2VSZXF1ZXN0XG4gIHwgU3R1ZGlvQkZGVHJhbnNhY3Rpb25SZXF1ZXN0XG4gIHwgU3R1ZGlvQkZGU3FsTGludFJlcXVlc3Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3R1ZGlvQkZGUXVlcnlSZXF1ZXN0IHtcbiAgY3VzdG9tUGF5bG9hZD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBwcm9jZWR1cmU6IFwicXVlcnlcIjtcbiAgcXVlcnk6IFF1ZXJ5PHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0dWRpb0JGRlNlcXVlbmNlUmVxdWVzdCB7XG4gIGN1c3RvbVBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcHJvY2VkdXJlOiBcInNlcXVlbmNlXCI7XG4gIHNlcXVlbmNlOiByZWFkb25seSBbUXVlcnk8dW5rbm93bj4sIFF1ZXJ5PHVua25vd24+XTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHVkaW9CRkZUcmFuc2FjdGlvblJlcXVlc3Qge1xuICBjdXN0b21QYXlsb2FkPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHByb2NlZHVyZTogXCJ0cmFuc2FjdGlvblwiO1xuICBxdWVyaWVzOiByZWFkb25seSBRdWVyeTx1bmtub3duPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0dWRpb0JGRlNxbExpbnREZXRhaWxzIHtcbiAgc2NoZW1hVmVyc2lvbj86IHN0cmluZztcbiAgc3FsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3R1ZGlvQkZGU3FsTGludFJlc3VsdCB7XG4gIGRpYWdub3N0aWNzOiBBZGFwdGVyU3FsTGludERpYWdub3N0aWNbXTtcbiAgc2NoZW1hVmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHVkaW9CRkZTcWxMaW50UmVxdWVzdCB7XG4gIGN1c3RvbVBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcHJvY2VkdXJlOiBcInNxbC1saW50XCI7XG4gIHNjaGVtYVZlcnNpb24/OiBzdHJpbmc7XG4gIHNxbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBTdHVkaW8gQkZGIGNsaWVudC4gQkZGIHN0YW5kcyBmb3IgXCJCYWNrZW5kIEZvciBGcm9udGVuZFwiIGJ0dy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0dWRpb0JGRkNsaWVudChcbiAgcHJvcHM6IFN0dWRpb0JGRkNsaWVudFByb3BzLFxuKTogU3R1ZGlvQkZGQ2xpZW50IHtcbiAgY29uc3QgeyBjdXN0b21IZWFkZXJzLCBjdXN0b21QYXlsb2FkLCByZXN1bHREZXNlcmlhbGl6ZXJGbiwgdXJsIH0gPSBwcm9wcztcbiAgY29uc3QgZmV0Y2hGbiA9IHByb3BzLmZldGNoIHx8IGZldGNoO1xuXG4gIHJldHVybiB7XG4gICAgYXN5bmMgZXhlY3V0ZShxdWVyeSwgb3B0aW9ucykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFN0YXJ0ZWRBdCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoRm4odXJsLCB7XG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY3VzdG9tUGF5bG9hZCxcbiAgICAgICAgICAgIHByb2NlZHVyZTogXCJxdWVyeVwiLFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgfSBzYXRpc2ZpZXMgU3R1ZGlvQkZGUXVlcnlSZXF1ZXN0KSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAuLi5jdXN0b21IZWFkZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICBzaWduYWw6IG9wdGlvbnM/LmFib3J0U2lnbmFsLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmVxdWVzdER1cmF0aW9uTXMgPSBhd2FpdCBnZXRCZmZSZXF1ZXN0RHVyYXRpb25Ncyh7XG4gICAgICAgICAgcmVxdWVzdFN0YXJ0ZWRBdCxcbiAgICAgICAgICByZXNwb25zZVVybDogcmVzcG9uc2UudXJsLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVjb3JkQmZmUmVxdWVzdER1cmF0aW9uKHtcbiAgICAgICAgICBhYm9ydFNpZ25hbDogb3B0aW9ucz8uYWJvcnRTaWduYWwsXG4gICAgICAgICAgZHVyYXRpb25NczogcmVxdWVzdER1cmF0aW9uTXMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICBsZXQgZXJyb3JUZXh0OiBzdHJpbmc7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZXJyb3JUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgZXJyb3JUZXh0ID0gXCJ1bmtub3duIGVycm9yXCI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFtuZXcgRXJyb3IoZXJyb3JUZXh0KV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbZXJyb3IsIHJlc3VsdHNdID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgW1xuICAgICAgICAgIFNlcmlhbGl6ZWRFcnJvcixcbiAgICAgICAgICB1bmtub3duLFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBbZGVzZXJpYWxpemVFcnJvcihlcnJvcildO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtudWxsLCAocmVzdWx0RGVzZXJpYWxpemVyRm4/LihyZXN1bHRzKSB8fCByZXN1bHRzKSBhcyBuZXZlcl07XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gW2Vycm9yIGFzIEVycm9yXTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXN5bmMgZXhlY3V0ZVNlcXVlbmNlKHNlcXVlbmNlLCBvcHRpb25zKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXF1ZXN0U3RhcnRlZEF0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hGbih1cmwsIHtcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjdXN0b21QYXlsb2FkLFxuICAgICAgICAgICAgcHJvY2VkdXJlOiBcInNlcXVlbmNlXCIsXG4gICAgICAgICAgICBzZXF1ZW5jZSxcbiAgICAgICAgICB9IHNhdGlzZmllcyBTdHVkaW9CRkZTZXF1ZW5jZVJlcXVlc3QpLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgIC4uLmN1c3RvbUhlYWRlcnMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgIHNpZ25hbDogb3B0aW9ucz8uYWJvcnRTaWduYWwsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXF1ZXN0RHVyYXRpb25NcyA9IGF3YWl0IGdldEJmZlJlcXVlc3REdXJhdGlvbk1zKHtcbiAgICAgICAgICByZXF1ZXN0U3RhcnRlZEF0LFxuICAgICAgICAgIHJlc3BvbnNlVXJsOiByZXNwb25zZS51cmwsXG4gICAgICAgIH0pO1xuICAgICAgICByZWNvcmRCZmZSZXF1ZXN0RHVyYXRpb24oe1xuICAgICAgICAgIGFib3J0U2lnbmFsOiBvcHRpb25zPy5hYm9ydFNpZ25hbCxcbiAgICAgICAgICBkdXJhdGlvbk1zOiByZXF1ZXN0RHVyYXRpb25NcyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIGxldCBlcnJvclRleHQ6IHN0cmluZztcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBlcnJvclRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICBlcnJvclRleHQgPSBcInVua25vd24gZXJyb3JcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gW1tuZXcgRXJyb3IoZXJyb3JUZXh0KV1dO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW1tmaXJzdEVycm9yLCBmaXJzdFJlc3VsdF0sIG1heWJlU2Vjb25kUmVzdWx0XSA9XG4gICAgICAgICAgKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgW1xuICAgICAgICAgICAgW1NlcmlhbGl6ZWRFcnJvciwgdW5rbm93bl0sXG4gICAgICAgICAgICAuLi5bU2VyaWFsaXplZEVycm9yLCB1bmtub3duXVtdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgaWYgKGZpcnN0RXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gW1tkZXNlcmlhbGl6ZUVycm9yKGZpcnN0RXJyb3IpXV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaXJzdERlc2VyaWFsaXplZFJlc3VsdCA9IChyZXN1bHREZXNlcmlhbGl6ZXJGbj8uKGZpcnN0UmVzdWx0KSB8fFxuICAgICAgICAgIGZpcnN0UmVzdWx0KSBhcyBuZXZlcjtcblxuICAgICAgICBjb25zdCBbc2Vjb25kRXJyb3IsIHNlY29uZFJlc3VsdF0gPSBtYXliZVNlY29uZFJlc3VsdCB8fCBbXTtcblxuICAgICAgICBpZiAoc2Vjb25kRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgW251bGwsIGZpcnN0RGVzZXJpYWxpemVkUmVzdWx0XSxcbiAgICAgICAgICAgIFtkZXNlcmlhbGl6ZUVycm9yKHNlY29uZEVycm9yKV0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgW251bGwsIGZpcnN0RGVzZXJpYWxpemVkUmVzdWx0XSxcbiAgICAgICAgICBbXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgKHJlc3VsdERlc2VyaWFsaXplckZuPy4oc2Vjb25kUmVzdWx0KSB8fCBzZWNvbmRSZXN1bHQpIGFzIG5ldmVyLFxuICAgICAgICAgIF0sXG4gICAgICAgIF07XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gW1tlcnJvciBhcyBFcnJvcl1dO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhc3luYyBleGVjdXRlVHJhbnNhY3Rpb24ocXVlcmllcywgb3B0aW9ucykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFN0YXJ0ZWRBdCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoRm4odXJsLCB7XG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY3VzdG9tUGF5bG9hZCxcbiAgICAgICAgICAgIHByb2NlZHVyZTogXCJ0cmFuc2FjdGlvblwiLFxuICAgICAgICAgICAgcXVlcmllcyxcbiAgICAgICAgICB9IHNhdGlzZmllcyBTdHVkaW9CRkZUcmFuc2FjdGlvblJlcXVlc3QpLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgIC4uLmN1c3RvbUhlYWRlcnMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgIHNpZ25hbDogb3B0aW9ucz8uYWJvcnRTaWduYWwsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXF1ZXN0RHVyYXRpb25NcyA9IGF3YWl0IGdldEJmZlJlcXVlc3REdXJhdGlvbk1zKHtcbiAgICAgICAgICByZXF1ZXN0U3RhcnRlZEF0LFxuICAgICAgICAgIHJlc3BvbnNlVXJsOiByZXNwb25zZS51cmwsXG4gICAgICAgIH0pO1xuICAgICAgICByZWNvcmRCZmZSZXF1ZXN0RHVyYXRpb24oe1xuICAgICAgICAgIGFib3J0U2lnbmFsOiBvcHRpb25zPy5hYm9ydFNpZ25hbCxcbiAgICAgICAgICBkdXJhdGlvbk1zOiByZXF1ZXN0RHVyYXRpb25NcyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIGxldCBlcnJvclRleHQ6IHN0cmluZztcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBlcnJvclRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICBlcnJvclRleHQgPSBcInVua25vd24gZXJyb3JcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gW25ldyBFcnJvcihlcnJvclRleHQpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFtlcnJvciwgcmVzdWx0c10gPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBbXG4gICAgICAgICAgU2VyaWFsaXplZEVycm9yLFxuICAgICAgICAgIHVua25vd25bXSxcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gW2Rlc2VyaWFsaXplRXJyb3IoZXJyb3IpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplZFJlc3VsdHMgPSAocmVzdWx0cyA/PyBbXSkubWFwKChyZXN1bHQpID0+XG4gICAgICAgICAgKHJlc3VsdERlc2VyaWFsaXplckZuPy4ocmVzdWx0KSB8fCByZXN1bHQpIGFzIG5ldmVyLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBbbnVsbCwgZGVzZXJpYWxpemVkUmVzdWx0c107XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gW2Vycm9yIGFzIEVycm9yXTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXN5bmMgbGludFNxbChkZXRhaWxzLCBvcHRpb25zKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXF1ZXN0U3RhcnRlZEF0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hGbih1cmwsIHtcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjdXN0b21QYXlsb2FkLFxuICAgICAgICAgICAgcHJvY2VkdXJlOiBcInNxbC1saW50XCIsXG4gICAgICAgICAgICBzY2hlbWFWZXJzaW9uOiBkZXRhaWxzLnNjaGVtYVZlcnNpb24sXG4gICAgICAgICAgICBzcWw6IGRldGFpbHMuc3FsLFxuICAgICAgICAgIH0gc2F0aXNmaWVzIFN0dWRpb0JGRlNxbExpbnRSZXF1ZXN0KSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAuLi5jdXN0b21IZWFkZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICBzaWduYWw6IG9wdGlvbnM/LmFib3J0U2lnbmFsLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmVxdWVzdER1cmF0aW9uTXMgPSBhd2FpdCBnZXRCZmZSZXF1ZXN0RHVyYXRpb25Ncyh7XG4gICAgICAgICAgcmVxdWVzdFN0YXJ0ZWRBdCxcbiAgICAgICAgICByZXNwb25zZVVybDogcmVzcG9uc2UudXJsLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVjb3JkQmZmUmVxdWVzdER1cmF0aW9uKHtcbiAgICAgICAgICBhYm9ydFNpZ25hbDogb3B0aW9ucz8uYWJvcnRTaWduYWwsXG4gICAgICAgICAgZHVyYXRpb25NczogcmVxdWVzdER1cmF0aW9uTXMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICBsZXQgZXJyb3JUZXh0OiBzdHJpbmc7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZXJyb3JUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgZXJyb3JUZXh0ID0gXCJ1bmtub3duIGVycm9yXCI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFtuZXcgRXJyb3IoZXJyb3JUZXh0KV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbZXJyb3IsIHJlc3VsdF0gPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBbXG4gICAgICAgICAgU2VyaWFsaXplZEVycm9yLFxuICAgICAgICAgIFN0dWRpb0JGRlNxbExpbnRSZXN1bHQsXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIFtkZXNlcmlhbGl6ZUVycm9yKGVycm9yKV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW251bGwsIHJlc3VsdF07XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gW2Vycm9yIGFzIEVycm9yXTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRFcnJvciB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBlcnJvcnM/OiBTZXJpYWxpemVkRXJyb3JbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZUVycm9yKGVycm9yOiB1bmtub3duKTogU2VyaWFsaXplZEVycm9yIHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgQWdncmVnYXRlRXJyb3IpIHtcbiAgICBjb25zdCB7IG5hbWUsIG1lc3NhZ2UgfSA9IGVycm9yO1xuICAgIGNvbnN0IGVycm9ycyA9IGVycm9yLmVycm9ycy5tYXAoc2VyaWFsaXplRXJyb3IpO1xuICAgIHJldHVybiB7IG5hbWUsIG1lc3NhZ2UsIGVycm9ycyB9O1xuICB9XG5cbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICBjb25zdCB7IG5hbWUsIG1lc3NhZ2UgfSA9IGVycm9yO1xuICAgIHJldHVybiB7IG5hbWUsIG1lc3NhZ2UgfTtcbiAgfVxuXG4gIHJldHVybiB7IG5hbWU6IGBVbmtub3duRXJyb3JgLCBtZXNzYWdlOiBKU09OLnN0cmluZ2lmeShlcnJvcikgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplRXJyb3IoZXJyb3I6IFNlcmlhbGl6ZWRFcnJvcik6IEVycm9yIHtcbiAgY29uc3QgeyBuYW1lLCBtZXNzYWdlIH0gPSBlcnJvcjtcblxuICBpZiAoZXJyb3IuZXJyb3JzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBlcnJvcnMgPSBlcnJvci5lcnJvcnMubWFwKGRlc2VyaWFsaXplRXJyb3IpO1xuICAgIGNvbnN0IGFnZ3JlZ2F0ZUVycm9yID0gbmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgbWVzc2FnZSk7XG4gICAgYWdncmVnYXRlRXJyb3IubmFtZSA9IGVycm9yLm5hbWU7XG4gICAgcmV0dXJuIGFnZ3JlZ2F0ZUVycm9yO1xuICB9XG5cbiAgY29uc3QgcmVndWxhckVycm9yID0gbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICBlcnJvci5uYW1lID0gbmFtZTtcbiAgcmV0dXJuIHJlZ3VsYXJFcnJvcjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7O0FBS0EsSUFBTUEsRUFBa0MsSUFBSSxRQUVyQyxTQUFTQyxFQUNkQyxFQUNlLENBQ2YsSUFBTUMsRUFBV0gsRUFBZ0MsSUFBSUUsQ0FBVyxFQUVoRSxPQUFJQyxHQUFZLEtBQ1AsTUFHVEgsRUFBZ0MsT0FBT0UsQ0FBVyxFQUMzQ0MsRUFDVCxDQUVBLFNBQVNDLEVBQXlCQyxFQUd6QixDQUNQLEdBQU0sQ0FBRSxZQUFBSCxFQUFhLFdBQUFJLENBQVcsRUFBSUQsRUFFL0JILEdB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QUFNLENBQUUsS0FBQWMsRUFBTSxRQUFBQyxDQUFRLEVBQUlmLEVBQ3BCZ0IsRUFBU2hCLEVBQU0sT0FBTyxJQUFJYSxDQUFjLEVBQzlDLE1BQU8sQ0FBRSxLQUFBQyxFQUFNLFFBQUFDLEVBQVMsT0FBQUMsQ0FBTyxDQUNqQyxDQUVBLEdBQUloQixhQUFpQixNQUFPLENBQzFCLEdBQU0sQ0FBRSxLQUFBYyxFQUFNLFFBQUFDLENBQVEsRUFBSWYsRUFDMUIsTUFBTyxDQUFFLEtBQUFjLEVBQU0sUUFBQUMsQ0FBUSxDQUN6QixDQUVBLE1BQU8sQ0FBRSxLQUFNLGVBQWdCLFFBQVMsS0FBSyxVQUFVZixDQUFLLENBQUUsQ0FDaEUsQ0FFTyxTQUFTRSxFQUFpQkYsRUFBK0IsQ0FDOUQsR0FBTSxDQUFFLEtBQUFjLEVBQU0sUUFBQUMsQ0FBUSxFQUFJZixFQUUxQixHQUFJQSxFQUFNLFNBQVcsT0FBVyxDQUM5QixJQUFNZ0IsRUFBU2hCLEVBQU0sT0FBTyxJQUFJRSxDQUFnQixFQUMxQ2UsRUFBaUIsSUFBSSxlQUFlRCxFQUFRRCxDQUFPLEVBQ3pELE9BQUFFLEVBQWUsS0FBT2pCLEVBQU0sS0FDckJpQixDQUNULENBRUEsSUFBTUMsRUFBZSxJQUFJLE1BQU1sQixFQUFNLE9BQU8sRUFDNUMsT0FBQUEsRUFBTSxLQUFPYyxFQUNOSSxDQUNUIiwKICAibmFtZXMiOiBbImJmZlJlcXVlc3REdXJhdGlvbkJ5QWJvcnRTaWduYWwiLCAiY29uc3VtZUJmZlJlcXVlc3REdXJhdGlvbk1zRm9yU2lnbmFsIiwgImFib3J0U2lnbmFsIiwgImR1cmF0aW9uIiwgInJlY29yZEJmZlJlcXVlc3REdXJhdGlvbiIsICJhcmdzIiwgImR1cmF0aW9uTXMiLCAiZ2V0QmZmTmV0d29ya0R1cmF0aW9uTXMiLCAiZW50cmllcyIsICJub3JtYWxpemVkUmVxdWVzdFVybCIsICJub3JtYWxpemVDb21wYXJhYmxlUmVzb3VyY2VVcmwiLCAiYmVzdER1cmF0aW9uTXMiLCAiYmVzdFN0YXJ0RGVsdGEiLCAiZW50cnkiLCAiZmV0Y2hFbnRyeSIsICJtYXRjaGVzQ29tcGFyYWJsZVJlc291cmNlVXJsIiwgInN0YXJ0RGVsdGEiLCAidXJsIiwgIm5vcm1hbGl6ZWRVcmwiLCAidHJpbVRyYWlsaW5nU2xhc2giLCAiY2FuZGlkYXRlVXJsIiwgImZhbGxiYWNrUmVxdWVzdFVybCIsICJub3JtYWxpemVkQ2FuZGlkYXRlVXJsIiwgInBhdGhuYW1lIiwgImdldEJmZlJlcXVlc3REdXJhdGlvbk1zIiwgImltbWVkaWF0ZUR1cmF0aW9uTXMiLCAicmVzb2x2ZSIsICJkZWxheWVkRHVyYXRpb25NcyIsICJjcmVhdGVTdHVkaW9CRkZDbGllbnQiLCAicHJvcHMiLCAiY3VzdG9tSGVhZGVycyIsICJjdXN0b21QYXlsb2FkIiwgInJlc3VsdERlc2VyaWFsaXplckZuIiwgImZldGNoRm4iLCAicXVlcnkiLCAib3B0aW9ucyIsICJyZXF1ZXN0U3RhcnRlZEF0IiwgInJlc3BvbnNlIiwgInJlcXVlc3REdXJhdGlvbk1zIiwgImVycm9yVGV4dCIsICJlcnJvciIsICJyZXN1bHRzIiwgImRlc2VyaWFsaXplRXJyb3IiLCAic2VxdWVuY2UiLCAiZmlyc3RFcnJvciIsICJmaXJzdFJlc3VsdCIsICJtYXliZVNlY29uZFJlc3VsdCIsICJmaXJzdERlc2VyaWFsaXplZFJlc3VsdCIsICJzZWNvbmRFcnJvciIsICJzZWNvbmRSZXN1bHQiLCAicXVlcmllcyIsICJyZXN1bHQiLCAiZGV0YWlscyIsICJzZXJpYWxpemVFcnJvciIsICJuYW1lIiwgIm1lc3NhZ2UiLCAiZXJyb3JzIiwgImFnZ3JlZ2F0ZUVycm9yIiwgInJlZ3VsYXJFcnJvciJdCn0K
|