@verdaccio/ui-theme 9.0.0-next-9.5 → 9.0.0-next-9.6
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.
- package/README.md +10 -10
- package/package.json +4 -4
- package/static/AddUser.eKXf9lwI.js +1 -0
- package/static/ChangePassword.R_eB3MG9.js +1 -0
- package/static/Dependencies.-_CHeIpS.js +2 -0
- package/static/Dependencies.YXtyTZr0.js +1 -0
- package/static/Front.C1b9iTV3.js +1 -0
- package/static/Login.BrdJcjmu.js +1 -0
- package/static/{NoItems.BU5Jb4OW.js → NoItems.zeTuTuh1.js} +2 -2
- package/static/Success.CGCwgIFa.js +1 -0
- package/static/UpLinks.BDdvvxLq.js +2 -0
- package/static/UpLinks.DN9lHtz5.js +1 -0
- package/static/Version.DKFAMw-W.js +1 -0
- package/static/Versions.BY9mQiM-.js +1 -0
- package/static/Versions.C1_awxkv.js +8 -0
- package/static/main.CBS1UEjc.js +93 -0
- package/static/manifest.json +1 -1
- package/static/{utils.GdLDo5re.js → utils.oTIDNzj9.js} +3 -3
- package/static/{vendors.DzxewqGz.js → vendors.B0uBcSLZ.js} +3 -3
- package/static/AddUser.CE2cqeBk.js +0 -1
- package/static/ChangePassword.Djuy7VlT.js +0 -1
- package/static/Dependencies.DKJk3FJg.js +0 -1
- package/static/Dependencies.WiqIiiNc.js +0 -2
- package/static/Front.BN1xUnZh.js +0 -1
- package/static/Login.CXgQki6i.js +0 -1
- package/static/Success.LxqH8EKI.js +0 -1
- package/static/UpLinks.BrT0HF1G.js +0 -2
- package/static/UpLinks.CUbfcVE1.js +0 -1
- package/static/Version.BaDuR-HL.js +0 -1
- package/static/Versions.D5ze9Txd.js +0 -1
- package/static/Versions.DcjOtm18.js +0 -2
- package/static/main.D5c9YasT.js +0 -51
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["Version.DKFAMw-W.js","vendors.B0uBcSLZ.js","rolldown-runtime.M0LkISsN.js","vendors.O9qAgvA5.css","Versions.C1_awxkv.js","utils.oTIDNzj9.js","Dependencies.-_CHeIpS.js","NoItems.zeTuTuh1.js","UpLinks.BDdvvxLq.js","Front.C1b9iTV3.js","Login.BrdJcjmu.js","Success.CGCwgIFa.js","AddUser.eKXf9lwI.js","ChangePassword.R_eB3MG9.js","Versions.BY9mQiM-.js","UpLinks.DN9lHtz5.js","Dependencies.YXtyTZr0.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e}from"./rolldown-runtime.M0LkISsN.js";import{$ as t,$n as n,$t as r,A as i,An as a,At as o,B as s,Bn as c,Bt as l,C as u,Cn as d,Ct as f,D as p,Dn as m,Dt as h,E as g,En as _,Et as ee,F as v,Ft as te,G as y,Gn as b,Gt as x,H as ne,Hn as re,Ht as ie,I as ae,It as S,J as oe,Jn as se,Jt as ce,K as le,Kn as ue,Kt as de,L as fe,Ln as pe,Lt as me,M as he,Mt as ge,N as _e,Nt as C,O as ve,On as ye,Ot as be,P as xe,Pn as Se,Pt as w,Q as Ce,Qn as we,Qt as Te,R as Ee,Rt as De,S as Oe,Sn as ke,St as Ae,T as je,Tn as Me,Tt as Ne,U as Pe,Un as Fe,Ut as T,V as Ie,Vn as E,Vt as Le,W as Re,Wn as ze,Wt as Be,X as Ve,Xn as D,Xt as He,Y as Ue,Yn as We,Yt as Ge,Z as Ke,Zn as qe,Zt as Je,_ as Ye,_t as Xe,an as Ze,at as Qe,b as $e,bn as O,bt as et,cn as tt,ct as nt,dn as k,dt as rt,en as A,er as j,et as it,fn as at,ft as ot,g as st,gn as M,gt as ct,h as lt,ht as ut,in as dt,it as ft,j as pt,jt as mt,k as ht,kn as gt,kt as _t,ln as vt,lt as yt,m as bt,mn as N,mt as xt,nn as St,nr as Ct,nt as wt,on as P,ot as Tt,p as Et,pn as Dt,q as Ot,qn as kt,qt as F,rn as At,rt as jt,st as Mt,tn as Nt,tr as Pt,tt as Ft,un as It,ut as Lt,v as Rt,vt as zt,w as Bt,wn as I,wt as Vt,x as Ht,xn as Ut,xt as Wt,y as Gt,yt as Kt,z as qt,zt as Jt}from"./vendors.B0uBcSLZ.js";import{_ as Yt,a as Xt,c as Zt,d as Qt,f as $t,i as L,l as en,n as tn,o as nn,p as rn,r as R,s as an,t as on,u as sn,v as z}from"./utils.oTIDNzj9.js";import{C as cn,D as ln,E as un,S as dn,T as fn,_ as pn,a as mn,b as hn,c as gn,d as _n,f as vn,g as yn,h as bn,i as xn,l as Sn,m as Cn,n as wn,o as Tn,p as En,r as Dn,s as On,u as kn,v as An,w as B,x as V,y as jn}from"./Versions.C1_awxkv.js";import{n as H}from"./UpLinks.BDdvvxLq.js";import"./NoItems.zeTuTuh1.js";import"./Dependencies.-_CHeIpS.js";var Mn=Pt(),U=e(Ct(),1),Nn=e=>t=>{t.preventDefault(),navigator.clipboard.writeText(e)},W=we(),Pn=n(`div`)({display:`flex`,alignItems:`center`,justifyContent:`space-between`}),Fn=n(`span`)(({theme:e})=>({display:`inline-block`,overflow:`hidden`,textOverflow:`ellipsis`,height:`auto`,whiteSpace:`break-spaces`,fontSize:e.fontSize.sm}));function G({text:e,children:t,dataTestId:n,title:r,...i}){return(0,W.jsxs)(Pn,{...i,children:[(0,W.jsx)(Fn,{children:t??e}),r?(0,W.jsx)(c,{disableFocusListener:!0,title:r,children:(0,W.jsx)(E,{"data-testid":n,onClick:Nn(e),size:`small`,children:(0,W.jsx)(Fe,{fontSize:`small`})})}):(0,W.jsx)(E,{"data-testid":n,onClick:Nn(e),size:`small`,children:(0,W.jsx)(Fe,{fontSize:`small`})})]})}var In=gt??void 0??a,Ln=e=>{let{children:t,onClose:n}=e;return(0,W.jsxs)(d,{sx:{m:0,p:2},children:[t,n?(0,W.jsx)(E,{"aria-label":`close`,"data-testid":`close-raw-viewer`,onClick:n,sx:{position:`absolute`,right:8,top:8,color:e=>e.palette.grey[500]},children:(0,W.jsx)(ye,{})}):null]})},Rn=({isOpen:e=!1,onClose:t,packageMeta:n})=>{let{t:r}=O(),i=kt();return(0,W.jsxs)(_,{"data-testid":`rawViewer--dialog`,fullScreen:!0,open:e,children:[(0,W.jsx)(Ln,{id:`viewer-title`,onClose:t,children:r(`action-bar-action.raw-title`,{package:n.latest.name})}),(0,W.jsx)(Me,{children:(0,W.jsx)(In,{collapseStringsAfterLength:200,collapsed:2,enableClipboard:!0,groupArraysAfterLength:10,src:n,theme:i.palette.mode==`light`?`bright:inverted`:`bright`})})]})},zn=n(Nt)(({theme:e})=>({backgroundColor:e.palette.mode===`dark`?e.palette.secondary.main:e.palette.primary.main,"&:hover":{backgroundColor:e.palette.mode===`dark`?ln:void 0,color:e.palette.mode===`light`?e.palette.primary.main:D.white},color:D.white})),Bn=({type:e,link:t,action:n})=>{let{t:r}=O(),{isLoading:i}=jn(),{downloadTarball:a}=xn(),o=(0,U.useCallback)(async()=>{a?.({link:t})},[t,a]);switch(e){case`VISIT_HOMEPAGE`:return(0,W.jsx)(c,{title:r(`action-bar-action.visit-home-page`),children:(0,W.jsx)(H,{to:t,variant:`button`,children:(0,W.jsx)(zn,{color:`primary`,size:`small`,children:(0,W.jsx)(At,{})})})});case`OPEN_AN_ISSUE`:return(0,W.jsx)(c,{title:r(`action-bar-action.open-an-issue`),children:(0,W.jsx)(H,{to:t,variant:`button`,children:(0,W.jsx)(zn,{size:`small`,children:(0,W.jsx)(Ze,{})})})});case`DOWNLOAD_TARBALL`:return(0,W.jsx)(c,{title:r(`action-bar-action.download-tarball`),children:i?(0,W.jsx)(re,{sx:{marginX:0}}):(0,W.jsx)(zn,{"data-testid":`download-tarball-btn`,onClick:o,size:`small`,children:(0,W.jsx)(dt,{})})});case`RAW_DATA`:return(0,W.jsx)(c,{title:r(`action-bar-action.raw`),children:(0,W.jsx)(zn,{"data-testid":`raw-btn`,onClick:n,size:`small`,children:(0,W.jsx)(St,{})})})}},Vn=({showRaw:e,showDownloadTarball:t=!0,packageMeta:n})=>{let[i,a]=(0,U.useState)(!1);if(!n?.latest)return null;let{homepage:o,bugs:s,dist:c}=n.latest,l=[];return o&&z(o)&&l.push({type:`VISIT_HOMEPAGE`,link:o}),s?.url&&z(s.url)&&l.push({type:`OPEN_AN_ISSUE`,link:s.url}),c?.tarball&&z(c.tarball)&&t&&l.push({type:`DOWNLOAD_TARBALL`,link:c.tarball}),e&&l.push({type:`RAW_DATA`,action:()=>a(!0)}),(0,W.jsx)(A,{alignItems:`center`,display:`flex`,sx:{my:2},children:(0,W.jsxs)(r,{direction:`row`,spacing:1,children:[l.map(e=>(0,W.jsx)(Bn,{...e},e.type)),i&&(0,W.jsx)(Rn,{isOpen:i,onClose:()=>{a(!1)},packageMeta:n})]})})},Hn=({person:e})=>(0,W.jsxs)(I,{"data-testid":e.name+`-tooltip`,children:[e.name,e.email&&Yt(e.email)&&(0,W.jsxs)(H,{to:`mailto:${e.email}`,children:[(0,W.jsx)(`br`,{}),e.email]}),e.url&&z(e.url)&&(0,W.jsxs)(H,{to:e.url,children:[(0,W.jsx)(`br`,{}),e.url]})]});function Un(e,t,n){return e.email&&Yt(e.email)?`mailto:${e.email}?subject=${t} v${n}`:e.url&&z(e.url)?e.url:``}function Wn(e){return e?e.toLowerCase()===`anonymous`?Se.t(`author-anonymous`):e:Se.t(`author-unknown`)}var Gn=({person:e,packageName:t,version:n,withText:r=!1})=>{let i=Un(e,t,n),a=(0,W.jsx)(x,{alt:e.name,src:e.avatar,sx:{width:40,height:40,ml:0,mr:1}});return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(c,{"data-testid":e.name,title:(0,W.jsx)(Hn,{person:e}),children:i.length>0?(0,W.jsx)(H,{to:i,children:a}):a},e.email),r&&(0,W.jsx)(I,{sx:{ml:1},variant:`subtitle2`,children:Wn(e.name)})]})},Kn=n(I)(e=>({fontWeight:e.theme.fontWeight.bold})),qn=n(C)({padding:0,":hover":{backgroundColor:`transparent`}}),Jn=({packageMeta:e})=>{let{t}=O();if(!e)return null;let{author:n,name:r,version:i}=e.latest;return n?(0,W.jsx)(w,{subheader:(0,W.jsx)(Kn,{variant:`subtitle1`,children:t(`sidebar.author.title`)}),children:(0,W.jsx)(qn,{sx:{my:1},children:(0,W.jsx)(Gn,{packageName:r,person:n,version:i,withText:!0})})}):null},Yn=({message:e})=>(0,W.jsx)(Ge,{severity:`warning`,sx:{marginTop:1,marginBottom:1},children:e}),Xn=function(e){return e.CONTRIBUTORS=`contributors`,e.MAINTAINERS=`maintainers`,e}({}),Zn=({type:e})=>{let{t}=O();switch(e){case Xn.CONTRIBUTORS:return(0,W.jsx)(Qn,{variant:`subtitle1`,children:t(`sidebar.contributors.title`)});case Xn.MAINTAINERS:return(0,W.jsx)(Qn,{variant:`subtitle1`,children:t(`sidebar.maintainers.title`)})}},Qn=n(I)(({theme:e})=>({fontWeight:e.fontWeight.bold,marginBottom:`10px`}));function $n(e){return e?e.reduce((e,t)=>e.some(e=>e.email===t.email)?e:[...e,t],[]):[]}var er=n(Nt)(e=>({backgroundColor:e.theme.palette.primary.main,color:D.white})),tr=n(A)({"> *":{marginRight:5}}),nr=({type:e,visibleMax:t=6,packageMeta:n})=>{let r=(0,U.useMemo)(()=>$n(n?.latest[e]),[n,e]),[i,a]=(0,U.useState)(t),[o,s]=(0,U.useState)(r);(0,U.useEffect)(()=>{r.length&&s(r.slice(0,i))},[r,i]);let c=(0,U.useCallback)(()=>{a(i+6)},[i]);if(!o||!r.length)return null;let{name:l,version:u}=n.latest;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Zn,{type:e}),(0,W.jsxs)(tr,{display:`flex`,flexWrap:`wrap`,margin:`10px 0 10px 0`,children:[o.map((e,t)=>(0,W.jsx)(Gn,{packageName:l,person:e,version:u},t)),i<r.length&&(0,W.jsx)(er,{"data-testid":`fab-add`,onClick:c,size:`small`,children:(0,W.jsx)(Ae,{})})]})]})},rr=n(I)(e=>({fontWeight:e.theme.fontWeight.bold,textTransform:`capitalize`})),ir=n(C)({paddingLeft:0,paddingRight:0,flexWrap:`wrap`}),ar=n(F)({marginRight:5,textTransform:`capitalize`,marginTop:5}),or=({name:e,children:t})=>t?(0,W.jsx)(ar,{label:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`b`,{children:e}),`: `,t]})}):null,sr=({packageMeta:e})=>{let{t}=O();if(!e?.latest)return null;let{dist:n,license:r}=e.latest;return!n&&!r?null:(0,W.jsx)(w,{subheader:(0,W.jsx)(rr,{variant:`subtitle1`,children:t(`sidebar.distribution.title`)}),children:(0,W.jsxs)(ir,{children:[n?.fileCount&&(0,W.jsx)(or,{name:t(`sidebar.distribution.file-count`),children:`${n.fileCount}`}),n?.unpackedSize?(0,W.jsx)(or,{name:t(`sidebar.distribution.size`),children:en(n.unpackedSize)}):null,(0,W.jsx)(or,{name:t(`sidebar.distribution.license`),children:$t(r)})]})})},K=function({ref:e,size:t=`md`,title:n,...r}){return(0,W.jsx)(lr,{size:t,titleAccess:n,...r,ref:e})},cr=e=>e===`md`?{width:18,height:18}:{width:14,height:16},lr=n(ze)(({size:e})=>({...cr(e)})),ur=function({ref:e,...t}){return(0,W.jsx)(K,{height:16,viewBox:`0 0 14 16`,width:14,...t,ref:e,children:(0,W.jsx)(`path`,{d:`M13 3H7c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 8H8V5h4v6zM4 4h1v1H4v6h1v1H4c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zM1 5h1v1H1v4h1v1H1c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1z`,fillRule:`evenodd`})})};ur.displayName=`Version`;var dr=function({ref:e,...t}){return(0,W.jsxs)(K,{viewBox:`0 0 24 24`,...t,ref:e,children:[(0,W.jsx)(`path`,{d:`M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z`}),(0,W.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,W.jsx)(`path`,{d:`M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z`})]})};dr.displayName=`Time`;var fr=function({ref:e,...t}){return(0,W.jsx)(K,{viewBox:`0 0 14 16`,...t,ref:e,children:(0,W.jsx)(`path`,{d:`M8.5 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4.5L8.5 1zM11 14H1V2h7l3 3v9zM5 6.98L3.5 8.5 5 10l-.5 1L2 8.5 4.5 6l.5.98zM7.5 6L10 8.5 7.5 11l-.5-.98L8.5 8.5 7 7l.5-1z`})})};fr.displayName=`FileBinary`;var pr=function({ref:e,...t}){return(0,W.jsx)(K,{viewBox:`0 0 14 16`,...t,ref:e,children:(0,W.jsx)(`path`,{d:`M7 4c-.83 0-1.5-.67-1.5-1.5S6.17 1 7 1s1.5.67 1.5 1.5S7.83 4 7 4zm7 6c0 1.11-.89 2-2 2h-1c-1.11 0-2-.89-2-2l2-4h-1c-.55 0-1-.45-1-1H8v8c.42 0 1 .45 1 1h1c.42 0 1 .45 1 1H3c0-.55.58-1 1-1h1c0-.55.58-1 1-1h.03L6 5H5c0 .55-.45 1-1 1H3l2 4c0 1.11-.89 2-2 2H2c-1.11 0-2-.89-2-2l2-4H1V5h3c0-.55.45-1 1-1h4c.55 0 1 .45 1 1h3v1h-1l2 4zM2.5 7L1 10h3L2.5 7zM13 10l-1.5-3-1.5 3h3z`,fillRule:`evenodd`})})};pr.displayName=`Law`;var mr=function({ref:e,...t}){return(0,W.jsxs)(K,{viewBox:`0 0 490.652 490.652`,...t,ref:e,children:[(0,W.jsx)(`path`,{d:`M456.607 9.904H34.04C15.269 9.904 0 25.17 0 43.945V310.17c0 18.77 15.269 34.039 34.04 34.039h260.642c-4.043-10.35-6.534-21.737-7.159-33.742l-253.974-.297.491-266.718 423.063.493V310.17c0 .279-.23.492-.495.492l-15.251-.019c-.637 11.942-3.111 23.263-7.138 33.565h22.389c18.777 0 34.045-15.27 34.045-34.039V43.945c-.001-18.775-15.268-34.041-34.046-34.041z`}),(0,W.jsx)(`path`,{d:`M364.447 381.02c33.354 0 60.386-34.152 60.386-76.289 0-42.131-27.031-76.284-60.386-76.284-33.35 0-60.38 34.153-60.38 76.284 0 42.137 27.031 76.289 60.38 76.289zM81.087 118.345h149.561c9.273 0 16.776-7.499 16.776-16.772 0-9.271-7.504-16.775-16.776-16.775H81.087c-9.271 0-16.771 7.504-16.771 16.775 0 9.273 7.499 16.772 16.771 16.772zm334.08 58.716c0-9.273-7.505-16.779-16.776-16.779H81.087c-9.271 0-16.771 7.506-16.771 16.779 0 9.271 7.499 16.77 16.771 16.77h317.304c9.271 0 16.776-7.498 16.776-16.77zm-334.08 58.707c-9.271 0-16.771 7.504-16.771 16.771 0 9.273 7.499 16.777 16.771 16.777h149.561c9.273 0 16.776-7.504 16.776-16.777 0-9.268-7.504-16.771-16.776-16.771H81.087zm334.338 138.684c-.065.082-23.295 26.869-55.728 23.081l40.331 81.577a2.93 2.93 0 002.637 1.639h.215a2.95 2.95 0 002.571-2.031l10.174-31.234a3.024 3.024 0 011.488-1.728 3.07 3.07 0 012.28-.13l30.977 10.88c.324.112.651.163.98.163.836 0 1.623-.348 2.195-.982.803-.9.964-2.18.441-3.244l-38.561-77.991zm-101.772.146c-.049-.047-.118-.096-.185-.146l-38.561 77.973a2.953 2.953 0 00.448 3.262 2.961 2.961 0 003.174.819l30.978-10.88c.328-.113.658-.16.982-.16.442 0 .884.096 1.294.29.706.36 1.245.987 1.493 1.741l10.173 31.221c.378 1.133 1.391 1.936 2.572 2.014h.21a2.95 2.95 0 002.642-1.621l26.206-53.01-16.755-33.893c-.066-.034-14.672-5.884-24.671-17.61z`})]})};mr.displayName=`License`;var hr=function({ref:e,...t}){return(0,W.jsxs)(K,{viewBox:`0 0 45 45`,...t,ref:e,children:[(0,W.jsxs)(`defs`,{children:[(0,W.jsx)(`clipPath`,{id:`prefix__a`,children:(0,W.jsx)(`path`,{d:`M0 36h36V0H0v36z`})}),(0,W.jsx)(`clipPath`,{id:`prefix__b`,children:(0,W.jsx)(`path`,{d:`M18 36C8.059 36 0 27.941 0 18S8.059 0 18 0s18 8.059 18 18-8.059 18-18 18z`})})]}),(0,W.jsx)(`g`,{clipPath:`url(#prefix__a)`,transform:`matrix(1.25 0 0 -1.25 0 45)`,children:(0,W.jsx)(`path`,{d:`M36 18c0-9.941-8.059-18-18-18S0 8.059 0 18s8.059 18 18 18 18-8.059 18-18`,fill:`#88c9f9`})}),(0,W.jsx)(`g`,{clipPath:`url(#prefix__b)`,transform:`matrix(1.25 0 0 -1.25 0 45)`,children:(0,W.jsx)(`path`,{d:`M3.627 28.952c-.45 2.93 2.195 4.156 3.607 4.47 1.412.314 2.776.62 2.933-.006.156-.628.311-1.46 1.173-1.148.862.314 3.043.56 4.063 1.342 1.02.783 2.244.787 3.264.473 1.02-.313 3.877-.227 3.25-1.167-.627-.94-1.825-.827-2.45-1.924-.628-1.099.171-1.826 1.033-1.826.865 0 1.71-.135 2.26.727.548.863-.383 2.463.324 2.357.706-.106 1.477-.866 2.03-2.043.547-1.176 1.408-.47 1.723-1.176.313-.705 2.04-2.039 1.177-1.804-.864.236-1.726.392-1.96-.47-.237-.863.388-1.726-.237-1.647-.627.08-.86-.089-1.725-.004-.862.083-1.333.631-2.039-.545-.705-1.175-1.254-1.96-1.567-2.509-.315-.549-.785-.86-.55-1.96.235-1.099-.628-.785-.628.156 0 .94-.548 1.098-1.253.942-.706-.157-1.803-.313-1.724-1.098.077-.784-.315-1.725.313-2.352.627-.629 1.33.076 1.723-.158.393-.237 1.525-.023 1.133-.416-.393-.39-1.76-.88-.976-1.509a4.831 4.831 0 011.893-.907c.313-.08.062.774 1.083 1.166 1.017.392 2.608 1.29 3 .584.391-.705.338-.595 1.75-.75 1.41-.156 1.79-.585 2.417-1.917.626-1.333.446-1.192 1.462-1.58 1.021-.394 1.678-.223.737-1.087-.94-.86-1.65-.814-2.199-1.833-.55-1.017-.153-1.73-1.25-2.75A20.755 20.755 0 0024 4c-.618-.37-2.162-2.07-3.083-2.667-.834-.54-1.083 0-1.083 0s.256 1.667.964 2.372c.704.705 1.105 3.344.87 4.128-.235.783-1.36 1.02-1.75 1.333-.393.312-1.418 1.548-1.418 2.334 0 .784 1.71 2.81 1.71 2.81.218-1.089-1.039.328-1.627.523-.47.157-1.542 1.656-2.459 1.814-.916.16-1.363.7-2.068 1.25-.706.55-2.43 1.332-2.353 2.195.08.862-1.725 1.568-2.038 1.568-.314 0-1.019 0-1.647 1.098-.627 1.098-1.725 2.196-1.41 2.98.312.783.391 1.726.233 2.588-.156.862-1.332 1.176-1.567.941-.235-.236-1.489-1.335-1.647-.315`,fill:`#5c913b`})})]})};hr.displayName=`Earth`;var gr=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMEgzNlYzNkgwVjBaIiBmaWxsPSIjMTk3NkQyIi8+CjxwYXRoIGQ9Ik0xNC4wMTM3IDEyLjIwMzFWMjVIMTEuMTU3MlYxMi4yMDMxSDE0LjAxMzdaTTE3LjkwNzIgMTIuMjAzMVYxNC40MjY4SDcuMzQyNzdWMTIuMjAzMUgxNy45MDcyWk0yMy4zNzQgMjVIMjAuNTYxNUwyMC41NzkxIDIyLjc4NTJIMjMuMzc0QzI0LjAxMjcgMjIuNzg1MiAyNC41NTE4IDIyLjYzODcgMjQuOTkxMiAyMi4zNDU3QzI1LjQzMDcgMjIuMDQ2OSAyNS43NjQ2IDIxLjYwNzQgMjUuOTkzMiAyMS4wMjczQzI2LjIyMTcgMjAuNDQxNCAyNi4zMzU5IDE5LjcyOTUgMjYuMzM1OSAxOC44OTE2VjE4LjMwMjdDMjYuMzM1OSAxNy42Njk5IDI2LjI3MTUgMTcuMTEzMyAyNi4xNDI2IDE2LjYzMjhDMjYuMDEzNyAxNi4xNDY1IDI1LjgyMzIgMTUuNzM5MyAyNS41NzEzIDE1LjQxMTFDMjUuMzE5MyAxNS4wODMgMjUuMDA1OSAxNC44MzY5IDI0LjYzMDkgMTQuNjcyOUMyNC4yNjE3IDE0LjUwODggMjMuODM2OSAxNC40MjY4IDIzLjM1NjQgMTQuNDI2OEgyMC41MDg4VjEyLjIwMzFIMjMuMzU2NEMyNC4yMjM2IDEyLjIwMzEgMjUuMDE0NiAxMi4zNDk2IDI1LjcyOTUgMTIuNjQyNkMyNi40NTAyIDEyLjkzNTUgMjcuMDcxMyAxMy4zNTQ1IDI3LjU5MjggMTMuODk5NEMyOC4xMjAxIDE0LjQ0NDMgMjguNTI3MyAxNS4wODg5IDI4LjgxNDUgMTUuODMzQzI5LjEwMTYgMTYuNTc3MSAyOS4yNDUxIDE3LjQwNjIgMjkuMjQ1MSAxOC4zMjAzVjE4Ljg5MTZDMjkuMjQ1MSAxOS43OTk4IDI5LjEwMTYgMjAuNjI4OSAyOC44MTQ1IDIxLjM3ODlDMjguNTI3MyAyMi4xMjMgMjguMTIwMSAyMi43Njc2IDI3LjU5MjggMjMuMzEyNUMyNy4wNzEzIDIzLjg1MTYgMjYuNDUzMSAyNC4yNjc2IDI1LjczODMgMjQuNTYwNUMyNS4wMjM0IDI0Ljg1MzUgMjQuMjM1NCAyNSAyMy4zNzQgMjVaTTIyLjE4NzUgMTIuMjAzMVYyNUgxOS4zMjIzVjEyLjIwMzFIMjIuMTg3NVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=`;function _r(){return(0,W.jsx)(`img`,{alt:`typescript`,height:`20`,src:gr,width:`20`})}var vr=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMEgzNlYzNkgwVjBaIiBmaWxsPSIjRkZEMTAyIi8+CjxwYXRoIGQ9Ik05LjQxMTEzIDIxLjcxMDlIMTIuMjU4OEMxMi4yMTE5IDIyLjU4OTggMTEuOTcxNyAyMy4zNjYyIDExLjUzODEgMjQuMDRDMTEuMTEwNCAyNC43MDggMTAuNTE1NiAyNS4yMzI0IDkuNzUzOTEgMjUuNjEzM0M4Ljk5MjE5IDI1Ljk4ODMgOC4wODY5MSAyNi4xNzU4IDcuMDM4MDkgMjYuMTc1OEM2LjIwMDIgMjYuMTc1OCA1LjQ1MDIgMjYuMDMyMiA0Ljc4ODA5IDI1Ljc0NTFDNC4xMjU5OCAyNS40NTggMy41NjM0OCAyNS4wNDc5IDMuMTAwNTkgMjQuNTE0NkMyLjY0MzU1IDIzLjk3NTYgMi4yOTE5OSAyMy4zMjgxIDIuMDQ1OSAyMi41NzIzQzEuODA1NjYgMjEuODEwNSAxLjY4NTU1IDIwLjk1MjEgMS42ODU1NSAxOS45OTcxVjE5LjIxNDhDMS42ODU1NSAxOC4yNTk4IDEuODExNTIgMTcuNDAxNCAyLjA2MzQ4IDE2LjYzOTZDMi4zMTU0MyAxNS44Nzc5IDIuNjc1NzggMTUuMjI3NSAzLjE0NDUzIDE0LjY4ODVDMy42MTMyOCAxNC4xNDk0IDQuMTc1NzggMTMuNzM2MyA0LjgzMjAzIDEzLjQ0OTJDNS40ODgyOCAxMy4xNjIxIDYuMjIwNyAxMy4wMTg2IDcuMDI5MyAxMy4wMTg2QzguMTE5MTQgMTMuMDE4NiA5LjAzOTA2IDEzLjIxNDggOS43ODkwNiAxMy42MDc0QzEwLjUzOTEgMTQgMTEuMTE5MSAxNC41MzkxIDExLjUyOTMgMTUuMjI0NkMxMS45NDUzIDE1LjkxMDIgMTIuMTk0MyAxNi42OTI0IDEyLjI3NjQgMTcuNTcxM0g5LjQxOTkyQzkuMzk2NDggMTcuMDczMiA5LjMwMjczIDE2LjY1NDMgOS4xMzg2NyAxNi4zMTQ1QzguOTc0NjEgMTUuOTY4OCA4LjcyMjY2IDE1LjcwOCA4LjM4MjgxIDE1LjUzMjJDOC4wNDI5NyAxNS4zNTY0IDcuNTkxOCAxNS4yNjg2IDcuMDI5MyAxNS4yNjg2QzYuNjE5MTQgMTUuMjY4NiA2LjI1ODc5IDE1LjM0NDcgNS45NDgyNCAxNS40OTcxQzUuNjQzNTUgMTUuNjQ5NCA1LjM4ODY3IDE1Ljg4NjcgNS4xODM1OSAxNi4yMDlDNC45ODQzOCAxNi41MzEyIDQuODM0OTYgMTYuOTQxNCA0LjczNTM1IDE3LjQzOTVDNC42MzU3NCAxNy45MzE2IDQuNTg1OTQgMTguNTE3NiA0LjU4NTk0IDE5LjE5NzNWMTkuOTk3MUM0LjU4NTk0IDIwLjY3MDkgNC42Mjk4OCAyMS4yNTM5IDQuNzE3NzcgMjEuNzQ2MUM0LjgwNTY2IDIyLjIzODMgNC45NDYyOSAyMi42NDU1IDUuMTM5NjUgMjIuOTY3OEM1LjMzODg3IDIzLjI5IDUuNTkzNzUgMjMuNTMwMyA1LjkwNDMgMjMuNjg4NUM2LjIxNDg0IDIzLjg0NjcgNi41OTI3NyAyMy45MjU4IDcuMDM4MDkgMjMuOTI1OEM3LjU0Nzg1IDIzLjkyNTggNy45NzI2NiAyMy44NDY3IDguMzEyNSAyMy42ODg1QzguNjUyMzQgMjMuNTI0NCA4LjkxMzA5IDIzLjI3ODMgOS4wOTQ3MyAyMi45NTAyQzkuMjc2MzcgMjIuNjIyMSA5LjM4MTg0IDIyLjIwOSA5LjQxMTEzIDIxLjcxMDlaTTE4Ljk5MTIgMjIuMDI3M1YxMy4yMDMxSDIxLjgzODlWMjIuMDI3M0MyMS44Mzg5IDIyLjg4MjggMjEuNjQ1NSAyMy42MjExIDIxLjI1ODggMjQuMjQyMkMyMC44Nzc5IDI0Ljg1NzQgMjAuMzU5NCAyNS4zMzUgMTkuNzAzMSAyNS42NzQ4QzE5LjA1MjcgMjYuMDA4OCAxOC4zMTc0IDI2LjE3NTggMTcuNDk3MSAyNi4xNzU4QzE2LjY1MzMgMjYuMTc1OCAxNS45MDMzIDI2LjAzNTIgMTUuMjQ3MSAyNS43NTM5QzE0LjU5MDggMjUuNDY2OCAxNC4wNzUyIDI1LjAzMDMgMTMuNzAwMiAyNC40NDQzQzEzLjMzMTEgMjMuODUyNSAxMy4xNDY1IDIzLjA5OTYgMTMuMTQ2NSAyMi4xODU1SDE2LjAxMTdDMTYuMDExNyAyMi42MzY3IDE2LjA2NzQgMjIuOTk0MSAxNi4xNzg3IDIzLjI1NzhDMTYuMjk1OSAyMy41MTU2IDE2LjQ2NTggMjMuNjk3MyAxNi42ODg1IDIzLjgwMjdDMTYuOTExMSAyMy45MDgyIDE3LjE4MDcgMjMuOTYwOSAxNy40OTcxIDIzLjk2MDlDMTcuODAxOCAyMy45NjA5IDE4LjA2NTQgMjMuODg3NyAxOC4yODgxIDIzLjc0MTJDMTguNTEwNyAyMy41ODg5IDE4LjY4MzYgMjMuMzY5MSAxOC44MDY2IDIzLjA4MkMxOC45Mjk3IDIyLjc4OTEgMTguOTkxMiAyMi40Mzc1IDE4Ljk5MTIgMjIuMDI3M1pNMzAuNTc1MiAyMi42MjVDMzAuNTc1MiAyMi40MDgyIDMwLjU0MyAyMi4yMTQ4IDMwLjQ3ODUgMjIuMDQ0OUMzMC40MTQxIDIxLjg2OTEgMzAuMjk2OSAyMS43MDggMzAuMTI3IDIxLjU2MTVDMjkuOTU3IDIxLjQxNSAyOS43MTY4IDIxLjI2ODYgMjkuNDA2MiAyMS4xMjIxQzI5LjA5NTcgMjAuOTY5NyAyOC42ODg1IDIwLjgxNDUgMjguMTg0NiAyMC42NTYyQzI3LjYxMDQgMjAuNDY4OCAyNy4wNjI1IDIwLjI1NzggMjYuNTQxIDIwLjAyMzRDMjYuMDI1NCAxOS43ODMyIDI1LjU2NTQgMTkuNTA0OSAyNS4xNjExIDE5LjE4ODVDMjQuNzU2OCAxOC44NzIxIDI0LjQzNzUgMTguNTAyOSAyNC4yMDMxIDE4LjA4MTFDMjMuOTc0NiAxNy42NTkyIDIzLjg2MDQgMTcuMTY3IDIzLjg2MDQgMTYuNjA0NUMyMy44NjA0IDE2LjA1OTYgMjMuOTgwNSAxNS41Njc0IDI0LjIyMDcgMTUuMTI3OUMyNC40NjA5IDE0LjY4ODUgMjQuNzk3OSAxNC4zMTM1IDI1LjIzMTQgMTQuMDAyOUMyNS42NjUgMTMuNjg2NSAyNi4xNzQ4IDEzLjQ0NjMgMjYuNzYwNyAxMy4yODIyQzI3LjM0NjcgMTMuMTEyMyAyNy45OTEyIDEzLjAyNzMgMjguNjk0MyAxMy4wMjczQzI5LjYzMTggMTMuMDI3MyAzMC40NTUxIDEzLjE5NDMgMzEuMTY0MSAxMy41MjgzQzMxLjg3ODkgMTMuODU2NCAzMi40MzU1IDE0LjMxOTMgMzIuODM0IDE0LjkxN0MzMy4yMzI0IDE1LjUwODggMzMuNDMxNiAxNi4xOTczIDMzLjQzMTYgMTYuOTgyNEgzMC41ODRDMzAuNTg0IDE2LjYzNjcgMzAuNTEwNyAxNi4zMzIgMzAuMzY0MyAxNi4wNjg0QzMwLjIyMzYgMTUuNzk4OCAzMC4wMDY4IDE1LjU4NzkgMjkuNzEzOSAxNS40MzU1QzI5LjQyNjggMTUuMjgzMiAyOS4wNjY0IDE1LjIwNyAyOC42MzI4IDE1LjIwN0MyOC4yMTA5IDE1LjIwNyAyNy44NTY0IDE1LjI3MTUgMjcuNTY5MyAxNS40MDA0QzI3LjI4ODEgMTUuNTIzNCAyNy4wNzQyIDE1LjY5MzQgMjYuOTI3NyAxNS45MTAyQzI2Ljc4NzEgMTYuMTI3IDI2LjcxNjggMTYuMzY0MyAyNi43MTY4IDE2LjYyMjFDMjYuNzE2OCAxNi44MjcxIDI2Ljc2OTUgMTcuMDE0NiAyNi44NzUgMTcuMTg0NkMyNi45ODYzIDE3LjM0ODYgMjcuMTQ0NSAxNy41MDM5IDI3LjM0OTYgMTcuNjUwNEMyNy41NjA1IDE3Ljc5MSAyNy44MTg0IDE3LjkyNTggMjguMTIzIDE4LjA1NDdDMjguNDI3NyAxOC4xODM2IDI4Ljc3NjQgMTguMzA2NiAyOS4xNjg5IDE4LjQyMzhDMjkuODU0NSAxOC42NDA2IDMwLjQ2MDkgMTguODgwOSAzMC45ODgzIDE5LjE0NDVDMzEuNTIxNSAxOS40MDgyIDMxLjk2OTcgMTkuNzA3IDMyLjMzMyAyMC4wNDFDMzIuNjk2MyAyMC4zNzUgMzIuOTY4OCAyMC43NTI5IDMzLjE1MDQgMjEuMTc0OEMzMy4zMzc5IDIxLjU5NjcgMzMuNDMxNiAyMi4wNzQyIDMzLjQzMTYgMjIuNjA3NEMzMy40MzE2IDIzLjE3NTggMzMuMzIwMyAyMy42Nzk3IDMzLjA5NzcgMjQuMTE5MUMzMi44ODA5IDI0LjU1ODYgMzIuNTY0NSAyNC45MzM2IDMyLjE0ODQgMjUuMjQ0MUMzMS43MzgzIDI1LjU0ODggMzEuMjQ2MSAyNS43ODAzIDMwLjY3MTkgMjUuOTM4NUMzMC4wOTc3IDI2LjA5NjcgMjkuNDU2MSAyNi4xNzU4IDI4Ljc0NzEgMjYuMTc1OEMyOC4xMDI1IDI2LjE3NTggMjcuNDY2OCAyNi4wOTM4IDI2LjgzOTggMjUuOTI5N0MyNi4yMTI5IDI1Ljc1OTggMjUuNjQ0NSAyNS41MDIgMjUuMTM0OCAyNS4xNTYyQzI0LjYzMDkgMjQuODEwNSAyNC4yMjY2IDI0LjM3MTEgMjMuOTIxOSAyMy44Mzc5QzIzLjYyMyAyMy4yOTg4IDIzLjQ3MzYgMjIuNjYwMiAyMy40NzM2IDIxLjkyMTlIMjYuMzM4OUMyNi4zMzg5IDIyLjMwODYgMjYuMzk0NSAyMi42MzY3IDI2LjUwNTkgMjIuOTA2MkMyNi42MTcyIDIzLjE2OTkgMjYuNzc1NCAyMy4zODM4IDI2Ljk4MDUgMjMuNTQ3OUMyNy4xOTE0IDIzLjcxMTkgMjcuNDQ2MyAyMy44MjkxIDI3Ljc0NTEgMjMuODk5NEMyOC4wNDM5IDIzLjk2OTcgMjguMzc3OSAyNC4wMDQ5IDI4Ljc0NzEgMjQuMDA0OUMyOS4xNzQ4IDI0LjAwNDkgMjkuNTIwNSAyMy45NDYzIDI5Ljc4NDIgMjMuODI5MUMzMC4wNTM3IDIzLjcwNjEgMzAuMjUyOSAyMy41MzkxIDMwLjM4MTggMjMuMzI4MUMzMC41MTA3IDIzLjExNzIgMzAuNTc1MiAyMi44ODI4IDMwLjU3NTIgMjIuNjI1WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==`;function yr(){return(0,W.jsx)(`img`,{alt:`commonjs`,height:`20`,src:vr,width:`20`})}var br=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMEgzNlYzNkgwVjBaIiBmaWxsPSIjOTNDMkRCIi8+CjxwYXRoIGQ9Ik0xMS43NTU5IDIyLjc4NTJWMjVINC45NDQzNFYyMi43ODUySDExLjc1NTlaTTUuOTE5OTIgMTIuMjAzMVYyNUgzLjA1NDY5VjEyLjIwMzFINS45MTk5MlpNMTAuODc3IDE3LjM1MzVWMTkuNDk4SDQuOTQ0MzRWMTcuMzUzNUgxMC44NzdaTTExLjc2NDYgMTIuMjAzMVYxNC40MjY4SDQuOTQ0MzRWMTIuMjAzMUgxMS43NjQ2Wk0xOS43OTc5IDIxLjYyNUMxOS43OTc5IDIxLjQwODIgMTkuNzY1NiAyMS4yMTQ4IDE5LjcwMTIgMjEuMDQ0OUMxOS42MzY3IDIwLjg2OTEgMTkuNTE5NSAyMC43MDggMTkuMzQ5NiAyMC41NjE1QzE5LjE3OTcgMjAuNDE1IDE4LjkzOTUgMjAuMjY4NiAxOC42Mjg5IDIwLjEyMjFDMTguMzE4NCAxOS45Njk3IDE3LjkxMTEgMTkuODE0NSAxNy40MDcyIDE5LjY1NjJDMTYuODMzIDE5LjQ2ODggMTYuMjg1MiAxOS4yNTc4IDE1Ljc2MzcgMTkuMDIzNEMxNS4yNDggMTguNzgzMiAxNC43ODgxIDE4LjUwNDkgMTQuMzgzOCAxOC4xODg1QzEzLjk3OTUgMTcuODcyMSAxMy42NjAyIDE3LjUwMjkgMTMuNDI1OCAxNy4wODExQzEzLjE5NzMgMTYuNjU5MiAxMy4wODMgMTYuMTY3IDEzLjA4MyAxNS42MDQ1QzEzLjA4MyAxNS4wNTk2IDEzLjIwMzEgMTQuNTY3NCAxMy40NDM0IDE0LjEyNzlDMTMuNjgzNiAxMy42ODg1IDE0LjAyMDUgMTMuMzEzNSAxNC40NTQxIDEzLjAwMjlDMTQuODg3NyAxMi42ODY1IDE1LjM5NzUgMTIuNDQ2MyAxNS45ODM0IDEyLjI4MjJDMTYuNTY5MyAxMi4xMTIzIDE3LjIxMzkgMTIuMDI3MyAxNy45MTcgMTIuMDI3M0MxOC44NTQ1IDEyLjAyNzMgMTkuNjc3NyAxMi4xOTQzIDIwLjM4NjcgMTIuNTI4M0MyMS4xMDE2IDEyLjg1NjQgMjEuNjU4MiAxMy4zMTkzIDIyLjA1NjYgMTMuOTE3QzIyLjQ1NTEgMTQuNTA4OCAyMi42NTQzIDE1LjE5NzMgMjIuNjU0MyAxNS45ODI0SDE5LjgwNjZDMTkuODA2NiAxNS42MzY3IDE5LjczMzQgMTUuMzMyIDE5LjU4NjkgMTUuMDY4NEMxOS40NDYzIDE0Ljc5ODggMTkuMjI5NSAxNC41ODc5IDE4LjkzNjUgMTQuNDM1NUMxOC42NDk0IDE0LjI4MzIgMTguMjg5MSAxNC4yMDcgMTcuODU1NSAxNC4yMDdDMTcuNDMzNiAxNC4yMDcgMTcuMDc5MSAxNC4yNzE1IDE2Ljc5MiAxNC40MDA0QzE2LjUxMDcgMTQuNTIzNCAxNi4yOTY5IDE0LjY5MzQgMTYuMTUwNCAxNC45MTAyQzE2LjAwOTggMTUuMTI3IDE1LjkzOTUgMTUuMzY0MyAxNS45Mzk1IDE1LjYyMjFDMTUuOTM5NSAxNS44MjcxIDE1Ljk5MjIgMTYuMDE0NiAxNi4wOTc3IDE2LjE4NDZDMTYuMjA5IDE2LjM0ODYgMTYuMzY3MiAxNi41MDM5IDE2LjU3MjMgMTYuNjUwNEMxNi43ODMyIDE2Ljc5MSAxNy4wNDEgMTYuOTI1OCAxNy4zNDU3IDE3LjA1NDdDMTcuNjUwNCAxNy4xODM2IDE3Ljk5OSAxNy4zMDY2IDE4LjM5MTYgMTcuNDIzOEMxOS4wNzcxIDE3LjY0MDYgMTkuNjgzNiAxNy44ODA5IDIwLjIxMDkgMTguMTQ0NUMyMC43NDQxIDE4LjQwODIgMjEuMTkyNCAxOC43MDcgMjEuNTU1NyAxOS4wNDFDMjEuOTE4OSAxOS4zNzUgMjIuMTkxNCAxOS43NTI5IDIyLjM3MyAyMC4xNzQ4QzIyLjU2MDUgMjAuNTk2NyAyMi42NTQzIDIxLjA3NDIgMjIuNjU0MyAyMS42MDc0QzIyLjY1NDMgMjIuMTc1OCAyMi41NDMgMjIuNjc5NyAyMi4zMjAzIDIzLjExOTFDMjIuMTAzNSAyMy41NTg2IDIxLjc4NzEgMjMuOTMzNiAyMS4zNzExIDI0LjI0NDFDMjAuOTYwOSAyNC41NDg4IDIwLjQ2ODggMjQuNzgwMyAxOS44OTQ1IDI0LjkzODVDMTkuMzIwMyAyNS4wOTY3IDE4LjY3ODcgMjUuMTc1OCAxNy45Njk3IDI1LjE3NThDMTcuMzI1MiAyNS4xNzU4IDE2LjY4OTUgMjUuMDkzOCAxNi4wNjI1IDI0LjkyOTdDMTUuNDM1NSAyNC43NTk4IDE0Ljg2NzIgMjQuNTAyIDE0LjM1NzQgMjQuMTU2MkMxMy44NTM1IDIzLjgxMDUgMTMuNDQ5MiAyMy4zNzExIDEzLjE0NDUgMjIuODM3OUMxMi44NDU3IDIyLjI5ODggMTIuNjk2MyAyMS42NjAyIDEyLjY5NjMgMjAuOTIxOUgxNS41NjE1QzE1LjU2MTUgMjEuMzA4NiAxNS42MTcyIDIxLjYzNjcgMTUuNzI4NSAyMS45MDYyQzE1LjgzOTggMjIuMTY5OSAxNS45OTggMjIuMzgzOCAxNi4yMDMxIDIyLjU0NzlDMTYuNDE0MSAyMi43MTE5IDE2LjY2ODkgMjIuODI5MSAxNi45Njc4IDIyLjg5OTRDMTcuMjY2NiAyMi45Njk3IDE3LjYwMDYgMjMuMDA0OSAxNy45Njk3IDIzLjAwNDlDMTguMzk3NSAyMy4wMDQ5IDE4Ljc0MzIgMjIuOTQ2MyAxOS4wMDY4IDIyLjgyOTFDMTkuMjc2NCAyMi43MDYxIDE5LjQ3NTYgMjIuNTM5MSAxOS42MDQ1IDIyLjMyODFDMTkuNzMzNCAyMi4xMTcyIDE5Ljc5NzkgMjEuODgyOCAxOS43OTc5IDIxLjYyNVpNMzAuNzIyNyAxMi4wNDQ5SDMxLjE0NDVWMTQuMjI0NkgzMC45ODYzQzMwLjM3MTEgMTQuMjI0NiAyOS44MDg2IDE0LjMxMjUgMjkuMjk4OCAxNC40ODgzQzI4Ljc5NDkgMTQuNjY0MSAyOC4zNTg0IDE0LjkyNDggMjcuOTg5MyAxNS4yNzA1QzI3LjYyMDEgMTUuNjEwNCAyNy4zMzU5IDE2LjAzMjIgMjcuMTM2NyAxNi41MzYxQzI2Ljk0MzQgMTcuMDM0MiAyNi44NDY3IDE3LjYwODQgMjYuODQ2NyAxOC4yNTg4VjIwLjQzODVDMjYuODQ2NyAyMC44Nzc5IDI2Ljg4NDggMjEuMjYxNyAyNi45NjA5IDIxLjU4OThDMjcuMDQzIDIxLjkxMjEgMjcuMTYwMiAyMi4xODE2IDI3LjMxMjUgMjIuMzk4NEMyNy40NzA3IDIyLjYwOTQgMjcuNjYxMSAyMi43NzA1IDI3Ljg4MzggMjIuODgxOEMyOC4xMDY0IDIyLjk4NzMgMjguMzU4NCAyMy4wNCAyOC42Mzk2IDIzLjA0QzI4Ljg5MTYgMjMuMDQgMjkuMTIzIDIyLjk4NDQgMjkuMzM0IDIyLjg3M0MyOS41NDQ5IDIyLjc2MTcgMjkuNzI2NiAyMi42MDM1IDI5Ljg3ODkgMjIuMzk4NEMzMC4wMzEyIDIyLjE5MzQgMzAuMTQ4NCAyMS45NTYxIDMwLjIzMDUgMjEuNjg2NUMzMC4zMTI1IDIxLjQxMTEgMzAuMzUzNSAyMS4xMTIzIDMwLjM1MzUgMjAuNzlDMzAuMzUzNSAyMC40NTAyIDMwLjMwOTYgMjAuMTQyNiAzMC4yMjE3IDE5Ljg2NzJDMzAuMTM5NiAxOS41ODU5IDMwLjAxOTUgMTkuMzQ1NyAyOS44NjEzIDE5LjE0NjVDMjkuNzA5IDE4Ljk0NzMgMjkuNTIxNSAxOC43OTQ5IDI5LjI5ODggMTguNjg5NUMyOS4wNzYyIDE4LjU3ODEgMjguODMwMSAxOC41MjI1IDI4LjU2MDUgMTguNTIyNUMyOC4xNzM4IDE4LjUyMjUgMjcuODM5OCAxOC42MTA0IDI3LjU1ODYgMTguNzg2MUMyNy4yNzczIDE4Ljk2MTkgMjcuMDYwNSAxOS4xODc1IDI2LjkwODIgMTkuNDYyOUMyNi43NTU5IDE5LjczODMgMjYuNjc2OCAyMC4wMTk1IDI2LjY3MDkgMjAuMzA2NkwyNS45NDE0IDE5LjcwMDJDMjUuOTQxNCAxOS4zMDE4IDI2LjAyMDUgMTguOTA5MiAyNi4xNzg3IDE4LjUyMjVDMjYuMzQyOCAxOC4xMjk5IDI2LjU3NDIgMTcuNzc1NCAyNi44NzMgMTcuNDU5QzI3LjE3MTkgMTcuMTM2NyAyNy41MzgxIDE2Ljg4MTggMjcuOTcxNyAxNi42OTQzQzI4LjQxMTEgMTYuNTAxIDI4LjkxMjEgMTYuNDA0MyAyOS40NzQ2IDE2LjQwNDNDMzAuMDY2NCAxNi40MDQzIDMwLjU4NzkgMTYuNTE4NiAzMS4wMzkxIDE2Ljc0NzFDMzEuNDkwMiAxNi45Njk3IDMxLjg2ODIgMTcuMjgwMyAzMi4xNzI5IDE3LjY3ODdDMzIuNDgzNCAxOC4wNzcxIDMyLjcxNDggMTguNTQzIDMyLjg2NzIgMTkuMDc2MkMzMy4wMjU0IDE5LjYwMzUgMzMuMTA0NSAyMC4xNjg5IDMzLjEwNDUgMjAuNzcyNUMzMy4xMDQ1IDIxLjM5MzYgMzIuOTk2MSAyMS45NzM2IDMyLjc3OTMgMjIuNTEyN0MzMi41Njg0IDIzLjA0NTkgMzIuMjY5NSAyMy41MTE3IDMxLjg4MjggMjMuOTEwMkMzMS40OTYxIDI0LjMwODYgMzEuMDMzMiAyNC42MTkxIDMwLjQ5NDEgMjQuODQxOEMyOS45NjA5IDI1LjA2NDUgMjkuMzY2MiAyNS4xNzU4IDI4LjcxIDI1LjE3NThDMjguMDMwMyAyNS4xNzU4IDI3LjQwOTIgMjUuMDU1NyAyNi44NDY3IDI0LjgxNTRDMjYuMjkgMjQuNTc1MiAyNS44MDM3IDI0LjIzMjQgMjUuMzg3NyAyMy43ODcxQzI0Ljk3NzUgMjMuMzM1OSAyNC42NTgyIDIyLjc5NjkgMjQuNDI5NyAyMi4xNjk5QzI0LjIwNyAyMS41NDMgMjQuMDk1NyAyMC44Mzk4IDI0LjA5NTcgMjAuMDYwNVYxOS4wMzIyQzI0LjA5NTcgMTcuOTY1OCAyNC4yNTk4IDE3LjAwNDkgMjQuNTg3OSAxNi4xNDk0QzI0LjkyMTkgMTUuMjkzOSAyNS4zODQ4IDE0LjU2MTUgMjUuOTc2NiAxMy45NTIxQzI2LjU3NDIgMTMuMzM2OSAyNy4yNzczIDEyLjg2NTIgMjguMDg1OSAxMi41MzcxQzI4Ljg5NDUgMTIuMjA5IDI5Ljc3MzQgMTIuMDQ0OSAzMC43MjI3IDEyLjA0NDlaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K`;function xr(){return(0,W.jsx)(`img`,{alt:`es6 modules`,height:`20`,src:br,width:`20`})}var Sr=`data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjI4OXB4IiB2aWV3Qm94PSIwIDAgMjU2IDI4OSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8Zz4KICAgICAgICA8cGF0aCBkPSJNMTI3Ljk5OTk5OSwyODguNDYzNzcxIEMxMjQuMDI0ODQ0LDI4OC40NjM3NzEgMTIwLjMxNDY5OSwyODcuNDAzNzI4IDExNi44Njk1NjQsMjg1LjU0ODY1NiBMODEuNjIzMTg4NCwyNjQuNjEyODM4IEM3Ni4zMjI5OCwyNjEuNjk3NzI0IDc4Ljk3MzA4NTQsMjYwLjYzNzY4MiA4MC41NjMxNDU4LDI2MC4xMDc2NjEgQzg3LjcxODQyNTksMjU3LjcyMjU3IDg5LjA0MzQ3NzUsMjU3LjE5MjU0NyA5Ni40NjM3Njg4LDI1Mi45NTIzODEgQzk3LjI1ODc5NzksMjUyLjQyMjM2MSA5OC4zMTg4NDA1LDI1Mi42ODczNzIgOTkuMTEzODcxOCwyNTMuMjE3MzkyIEwxMjYuMTQ0OTI3LDI2OS4zODMwMjQgQzEyNy4yMDQ5NywyNjkuOTEzMDQ1IDEyOC41MzAwMjEsMjY5LjkxMzA0NSAxMjkuMzI1MDUzLDI2OS4zODMwMjQgTDIzNS4wNjQxODIsMjA4LjE2NTYzNCBDMjM2LjEyNDIyNSwyMDcuNjM1NjExIDIzNi42NTQyNDUsMjA2LjU3NTU3MSAyMzYuNjU0MjQ1LDIwNS4yNTA1MTkgTDIzNi42NTQyNDUsODMuMDgwNzQ2NyBDMjM2LjY1NDI0NSw4MS43NTU2OTI5IDIzNi4xMjQyMjUsODAuNjk1NjUyNiAyMzUuMDY0MTgyLDgwLjE2NTYzMjQgTDEyOS4zMjUwNTMsMTkuMjEzMjUwNiBDMTI4LjI2NTAxLDE4LjY4MzIzMDUgMTI2LjkzOTk1OSwxOC42ODMyMzA1IDEyNi4xNDQ5MjcsMTkuMjEzMjUwNiBMMjAuNDA1Nzk1NCw4MC4xNjU2MzI0IEMxOS4zNDU3NTUxLDgwLjY5NTY1MjYgMTguODE1NzM0OSw4Mi4wMjA3MDQxIDE4LjgxNTczNDksODMuMDgwNzQ2NyBMMTguODE1NzM0OSwyMDUuMjUwNTE5IEMxOC44MTU3MzQ5LDIwNi4zMTA1NiAxOS4zNDU3NTUxLDIwNy42MzU2MTEgMjAuNDA1Nzk1NCwyMDguMTY1NjM0IEw0OS4yOTE5MjQ3LDIyNC44NjEyODYgQzY0LjkyNzUzNjQsMjMyLjgxMTU5NSA3NC43MzI5MTk2LDIyMy41MzYyMzQgNzQuNzMyOTE5NiwyMTQuMjYwODcxIEw3NC43MzI5MTk2LDkzLjY4MTE1OSBDNzQuNzMyOTE5Niw5Mi4wOTEwOTg1IDc2LjA1Nzk3MTEsOTAuNTAxMDM1OCA3Ny45MTMwNDI4LDkwLjUwMTAzNTggTDkxLjQyODU3MTYsOTAuNTAxMDM1OCBDOTMuMDE4NjM0Myw5MC41MDEwMzU4IDk0LjYwODY5NDgsOTEuODI2MDg3MyA5NC42MDg2OTQ4LDkzLjY4MTE1OSBMOTQuNjA4Njk0OCwyMTQuMjYwODcxIEM5NC42MDg2OTQ4LDIzNS4xOTY2ODkgODMuMjEzMjUxMiwyNDcuMzg3MTY0IDYzLjMzNzQ3MzcsMjQ3LjM4NzE2NCBDNTcuMjQyMjM2MiwyNDcuMzg3MTY0IDUyLjQ3MjA1MDIsMjQ3LjM4NzE2NCAzOC45NTY1MjE0LDI0MC43NjE5MDYgTDExLjEzMDQzNDcsMjI0Ljg2MTI4NiBDNC4yNDAxNjU4MSwyMjAuODg2MTI5IDUuNjg0MzQxODllLTE0LDIxMy40NjU4NCA1LjY4NDM0MTg5ZS0xNCwyMDUuNTE1NTI4IEw1LjY4NDM0MTg5ZS0xNCw4My4zNDU3NTU3IEM1LjY4NDM0MTg5ZS0xNCw3NS4zOTU0NDY1IDQuMjQwMTY1ODEsNjcuOTc1MTU1MiAxMS4xMzA0MzQ3LDY0LjAwMDAwMDYgTDExNi44Njk1NjQsMi43ODI2MDc1MiBDMTIzLjQ5NDgyNCwtMC45Mjc1MzU4NDEgMTMyLjUwNTE3NiwtMC45Mjc1MzU4NDEgMTM5LjEzMDQzNiwyLjc4MjYwNzUyIEwyNDQuODY5NTY1LDY0LjAwMDAwMDYgQzI1MS43NTk4MzQsNjcuOTc1MTU1MiAyNTYsNzUuMzk1NDQ2NSAyNTYsODMuMzQ1NzU1NyBMMjU2LDIwNS41MTU1MjggQzI1NiwyMTMuNDY1ODQgMjUxLjc1OTgzNCwyMjAuODg2MTI5IDI0NC44Njk1NjUsMjI0Ljg2MTI4NiBMMTM5LjEzMDQzNiwyODYuMDc4Njc2IEMxMzUuNjg1Mjk5LDI4Ny42Njg3MzkgMTMxLjcxMDE0NSwyODguNDYzNzcxIDEyNy45OTk5OTksMjg4LjQ2Mzc3MSBMMTI3Ljk5OTk5OSwyODguNDYzNzcxIFogTTE2MC41OTYyNzQsMjA0LjQ1NTQ4OCBDMTE0LjIxOTQ2MSwyMDQuNDU1NDg4IDEwNC42NzkwODksMTgzLjI1NDY1OSAxMDQuNjc5MDg5LDE2NS4yMzM5NTUgQzEwNC42NzkwODksMTYzLjY0Mzg5MyAxMDYuMDA0MTQxLDE2Mi4wNTM4MzIgMTA3Ljg1OTIxMiwxNjIuMDUzODMyIEwxMjEuNjM5NzUyLDE2Mi4wNTM4MzIgQzEyMy4yMjk4MTMsMTYyLjA1MzgzMiAxMjQuNTU0ODY0LDE2My4xMTM4NzIgMTI0LjU1NDg2NCwxNjQuNzAzOTM1IEMxMjYuNjc0OTQ3LDE3OC43NDk0ODQgMTMyLjc3MDE4NywxODUuNjM5NzUzIDE2MC44NjEyODMsMTg1LjYzOTc1MyBDMTgzLjEyMjE1NCwxODUuNjM5NzUzIDE5Mi42NjI1MjYsMTgwLjYwNDU1NiAxOTIuNjYyNTI2LDE2OC42NzkwOSBDMTkyLjY2MjUyNiwxNjEuNzg4ODIxIDE5MC4wMTI0MjMsMTU2Ljc1MzYyNCAxNTUuMjk2MDY1LDE1My4zMDg0ODkgQzEyNi40MDk5MzgsMTUwLjM5MzM3NSAxMDguMzg5MjM1LDE0NC4wMzMxMjYgMTA4LjM4OTIzNSwxMjAuOTc3MjI2IEMxMDguMzg5MjM1LDk5LjUxMTM4NzUgMTI2LjQwOTkzOCw4Ni43OTA4OTAxIDE1Ni42MjExMTksODYuNzkwODkwMSBDMTkwLjU0MjQ0Myw4Ni43OTA4OTAxIDIwNy4yMzgwOTUsOTguNDUxMzQ3MiAyMDkuMzU4MTc4LDEyMy44OTIzNCBDMjA5LjM1ODE3OCwxMjQuNjg3MzcxIDIwOS4wOTMxNjcsMTI1LjQ4MjQwMyAyMDguNTYzMTQ3LDEyNi4yNzc0MzQgQzIwOC4wMzMxMjcsMTI2LjgwNzQ1NCAyMDcuMjM4MDk1LDEyNy4zMzc0NzQgMjA2LjQ0MzA2NCwxMjcuMzM3NDc0IEwxOTIuNjYyNTI2LDEyNy4zMzc0NzQgQzE5MS4zMzc0NzUsMTI3LjMzNzQ3NCAxOTAuMDEyNDIzLDEyNi4yNzc0MzQgMTg5Ljc0NzQxMiwxMjQuOTUyMzgyIEMxODYuNTY3Mjg5LDExMC4zNzY4MTMgMTc4LjM1MTk2NiwxMDUuNjA2NjI1IDE1Ni42MjExMTksMTA1LjYwNjYyNSBDMTMyLjI0MDE2NSwxMDUuNjA2NjI1IDEyOS4zMjUwNTMsMTE0LjA4Njk1NyAxMjkuMzI1MDUzLDEyMC40NDcyMDUgQzEyOS4zMjUwNTMsMTI4LjEzMjUwNiAxMzIuNzcwMTg3LDEzMC41MTc2IDE2NS42MzE0NzEsMTM0Ljc1Nzc2NiBDMTk4LjIyNzc0NCwxMzguOTk3OTMxIDIxMy41OTgzNDQsMTQ1LjA5MzE2OSAyMTMuNTk4MzQ0LDE2Ny44ODQwNTggQzIxMy4zMzMzMzMsMTkxLjIwNDk3IDE5NC4yNTI1ODksMjA0LjQ1NTQ4OCAxNjAuNTk2Mjc0LDIwNC40NTU0ODggTDE2MC41OTYyNzQsMjA0LjQ1NTQ4OCBaIiBmaWxsPSIjNTM5RTQzIj48L3BhdGg+CiAgICA8L2c+Cjwvc3ZnPgo=`;function Cr(){return(0,W.jsx)(`img`,{alt:`nodejs`,height:`20`,src:Sr,width:`20`})}var wr=`data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI5NyIgaGVpZ2h0PSI5NyI+CiAgPHBhdGggZmlsbD0iI0YwNTEzMyIgZD0iTTkyLjcxIDQ0LjQwOCA1Mi41OTEgNC4yOTFjLTIuMzEtMi4zMTEtNi4wNTctMi4zMTEtOC4zNjkgMGwtOC4zMyA4LjMzMkw0Ni40NTkgMjMuMTljMi40NTYtLjgzIDUuMjcyLS4yNzMgNy4yMjkgMS42ODUgMS45NjkgMS45NyAyLjUyMSA0LjgxIDEuNjcgNy4yNzVsMTAuMTg2IDEwLjE4NWMyLjQ2NS0uODUgNS4zMDctLjMgNy4yNzUgMS42NzEgMi43NSAyLjc1IDIuNzUgNy4yMDYgMCA5Ljk1OC0yLjc1MiAyLjc1MS03LjIwOCAyLjc1MS05Ljk2MSAwLTIuMDY4LTIuMDctMi41OC01LjExLTEuNTMxLTcuNjU4bC05LjUtOS40OTl2MjQuOTk3Yy42Ny4zMzIgMS4zMDMuNzc0IDEuODYxIDEuMzMyIDIuNzUgMi43NSAyLjc1IDcuMjA2IDAgOS45NTktMi43NSAyLjc0OS03LjIwOSAyLjc0OS05Ljk1NyAwLTIuNzUtMi43NTQtMi43NS03LjIxIDAtOS45NTkuNjgtLjY3OSAxLjQ2Ny0xLjE5MyAyLjMwNy0xLjUzN3YtMjUuMjNjLS44NC0uMzQ0LTEuNjI1LS44NTMtMi4zMDctMS41MzctMi4wODMtMi4wODItMi41ODQtNS4xNC0xLjUxNi03LjY5OEwzMS43OTggMTYuNzE1IDQuMjg4IDQ0LjIyMmMtMi4zMTEgMi4zMTMtMi4zMTEgNi4wNiAwIDguMzcxbDQwLjEyMSA0MC4xMThjMi4zMSAyLjMxMSA2LjA1NiAyLjMxMSA4LjM2OSAwTDkyLjcxIDUyLjc3OWMyLjMxMS0yLjMxMSAyLjMxMS02LjA2IDAtOC4zNzF6Ii8+Cjwvc3ZnPg==`;function Tr(){return(0,W.jsx)(`img`,{alt:`git`,height:`20`,src:wr,width:`20`})}var Er=`data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjU2IDI1NiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cjxwb2x5Z29uIGZpbGw9IiNDQzAwMDAiIHBvaW50cz0iMjMsNjUuNiAxMzAsMy4zIDIzNyw2NS42IDIzNywxOTAuMSAxMzAsMjUyLjQgMjMsMTkwLjEgIi8+Cjxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMTMzLDEyNy44IDIzMi41LDcwLjUgMjM2LjUsMTg2IDEzMywyNDguNSAiLz4KPGc+Cgk8cGF0aCBmaWxsPSIjQ0MwMDAwIiBkPSJNMjM0LDY3bC0wLjMsMTIyLjRsLTEwMy44LDYwLjJsLTAuNS0xMjAuM0wyMzQsNjd6IE0xNDYuNywxMzkuM2wwLjMsODAuNGwzNC41LTIwLjFsLTAuMS02MC42bDE3LjQtMTAuMwoJCWwwLDYwLjhsMTcuNC0xMC4ybDAuMS04MS40TDE0Ni43LDEzOS4zeiIvPgo8L2c+CjxwYXRoIGZpbGw9IiM5MTA1MDUiIGQ9Ik0xMzYuOCw0LjJjLTQuOC0yLjctMTIuNS0yLjctMTcuMywwTDI0LjcsNTguN2MtNC44LDIuNy04LjYsOS41LTguNiwxNC45djEwOWMwLDUuNSwzLjksMTIuMiw4LjYsMTQuOQoJbDk0LjgsNTQuNWM0LjgsMi43LDEyLjUsMi43LDE3LjMsMGw5NC44LTU0LjVjNC44LTIuNyw4LjYtOS41LDguNi0xNC45di0xMDljMC01LjUtMy45LTEyLjItOC42LTE0LjlMMTM2LjgsNC4yeiBNMjIwLjksNjEuMgoJYzQuOCwyLjcsNC44LDcuMiwwLDkuOWwtODMsNDcuN2MtNC44LDIuNy0xMi41LDIuNy0xNy4zLDBMMzYuNCw3MC40Yy00LjgtMi43LTQuOC03LjIsMC05LjlsODMtNDcuN2M0LjgtMi43LDEyLjUtMi43LDE3LjMsMAoJTDIyMC45LDYxLjJ6IE0yMy41LDgxLjVjMC01LjUsMy45LTcuNyw4LjYtNWw4NC45LDQ4LjhjNC44LDIuNyw4LjYsOS41LDguNiwxNC45VjIzN2MwLDUuNS0zLjksNy43LTguNiw1bC04NC45LTQ4LjgKCWMtNC44LTIuNy04LjYtOS41LTguNi0xNC45VjgxLjV6IE0xNDEuOCwyNDAuNWMtNC44LDIuNy04LjYsMC41LTguNi01di05NS4zYzAtNS41LDMuOS0xMi4yLDguNi0xNC45TDIyNC4yLDc4CgljNC44LTIuNyw4LjYtMC41LDguNiw1djk1LjNjMCw1LjUtMy45LDEyLjItOC42LDE0LjlMMTQxLjgsMjQwLjV6Ii8+Cjwvc3ZnPgo=`;function Dr(){return(0,W.jsx)(`img`,{alt:`npm package manager`,height:`20`,src:Er,width:`20`})}var Or=`data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9IjY2LjA5MTU3ODA5NDc0MTQyIDMzLjUgMTg0LjUgMTg0LjQ5OTk5OTk5OTk5OTk3IiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCI+PGRlZnM+PHBhdGggZD0iTTY3LjU5IDM1TDI0Ny41OSAzNUwyNDcuNTkgMjE1TDY3LjU5IDIxNUw2Ny41OSAzNVoiIGlkPSJiMkpaWmNBM2ZUIj48L3BhdGg+PHBhdGggZD0iTTIzNy42IDk1TDE4Ny42IDk1TDE4Ny42IDQ1TDIzNy42IDQ1TDIzNy42IDk1WiIgaWQ9ImJqMHRiMFk4cSI+PC9wYXRoPjxwYXRoIGQ9Ik0xODIuNTkgOTVMMTMyLjU5IDk1TDEzMi41OSA0NUwxODIuNTkgNDVMMTgyLjU5IDk1WiIgaWQ9ImRrRFNUelBqMyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjcuNTkgOTVMNzcuNTkgOTVMNzcuNTkgNDVMMTI3LjU5IDQ1TDEyNy41OSA5NVoiIGlkPSJhNHZOZGNOTHBGIj48L3BhdGg+PHBhdGggZD0iTTIzNy42IDE1MEwxODcuNiAxNTBMMTg3LjYgMTAwTDIzNy42IDEwMEwyMzcuNiAxNTBaIiBpZD0iaDJ0NFpqMWpTVSI+PC9wYXRoPjxwYXRoIGQ9Ik0xODIuNTkgMTUwTDEzMi41OSAxNTBMMTMyLjU5IDEwMEwxODIuNTkgMTAwTDE4Mi41OSAxNTBaIiBpZD0iYjR0NXBuZ3d2VCI+PC9wYXRoPjxwYXRoIGQ9Ik0xODIuNTkgMjA1TDEzMi41OSAyMDVMMTMyLjU5IDE1NUwxODIuNTkgMTU1TDE4Mi41OSAyMDVaIiBpZD0iYjlzMWdkNW0yIj48L3BhdGg+PHBhdGggZD0iTTIzNy42IDIwNUwxODcuNiAyMDVMMTg3LjYgMTU1TDIzNy42IDE1NUwyMzcuNiAyMDVaIiBpZD0iY210OVdMdno3Ij48L3BhdGg+PHBhdGggZD0iTTEyNy41OSAyMDVMNzcuNTkgMjA1TDc3LjU5IDE1NUwxMjcuNTkgMTU1TDEyNy41OSAyMDVaIiBpZD0iYkpVTnFnRlNnIj48L3BhdGg+PC9kZWZzPjxnPjxnPjx1c2UgeGxpbms6aHJlZj0iI2IySlpaY0EzZlQiIG9wYWNpdHk9IjEiIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMSI+PC91c2U+PC9nPjxnPjx1c2UgeGxpbms6aHJlZj0iI2JqMHRiMFk4cSIgb3BhY2l0eT0iMSIgZmlsbD0iI2Y5YWQwMCIgZmlsbC1vcGFjaXR5PSIxIj48L3VzZT48L2c+PGc+PHVzZSB4bGluazpocmVmPSIjZGtEU1R6UGozIiBvcGFjaXR5PSIxIiBmaWxsPSIjZjlhZDAwIiBmaWxsLW9wYWNpdHk9IjEiPjwvdXNlPjwvZz48Zz48dXNlIHhsaW5rOmhyZWY9IiNhNHZOZGNOTHBGIiBvcGFjaXR5PSIxIiBmaWxsPSIjZjlhZDAwIiBmaWxsLW9wYWNpdHk9IjEiPjwvdXNlPjwvZz48Zz48dXNlIHhsaW5rOmhyZWY9IiNoMnQ0WmoxalNVIiBvcGFjaXR5PSIxIiBmaWxsPSIjZjlhZDAwIiBmaWxsLW9wYWNpdHk9IjEiPjwvdXNlPjwvZz48Zz48dXNlIHhsaW5rOmhyZWY9IiNiNHQ1cG5nd3ZUIiBvcGFjaXR5PSIxIiBmaWxsPSIjNGU0ZTRlIiBmaWxsLW9wYWNpdHk9IjEiPjwvdXNlPjwvZz48Zz48dXNlIHhsaW5rOmhyZWY9IiNiOXMxZ2Q1bTIiIG9wYWNpdHk9IjEiIGZpbGw9IiM0ZTRlNGUiIGZpbGwtb3BhY2l0eT0iMSI+PC91c2U+PC9nPjxnPjx1c2UgeGxpbms6aHJlZj0iI2NtdDlXTHZ6NyIgb3BhY2l0eT0iMSIgZmlsbD0iIzRlNGU0ZSIgZmlsbC1vcGFjaXR5PSIxIj48L3VzZT48L2c+PGc+PHVzZSB4bGluazpocmVmPSIjYkpVTnFnRlNnIiBvcGFjaXR5PSIxIiBmaWxsPSIjNGU0ZTRlIiBmaWxsLW9wYWNpdHk9IjEiPjwvdXNlPjwvZz48L2c+PC9zdmc+`;function kr(){return(0,W.jsx)(`img`,{alt:`pnpm package manager`,height:`20`,src:Or,width:`20`})}var Ar=`data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTE4IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTI1OSAwYzE0MyAwIDI1OSAxMTYgMjU5IDI1OVM0MDIgNTE4IDI1OSA1MTggMCA0MDIgMCAyNTkgMTE2IDAgMjU5IDB6Ii8+PHBhdGggY2xhc3M9InN0MSIgZD0iTTQzNS4yIDMzNy41Yy0xLjgtMTQuMi0xMy44LTI0LTI5LjItMjMuOC0yMyAuMy00Mi4zIDEyLjItNTUuMSAyMC4xLTUgMy4xLTkuMyA1LjQtMTMgNy4xLjgtMTEuNi4xLTI2LjgtNS45LTQzLjUtNy4zLTIwLTE3LjEtMzIuMy0yNC4xLTM5LjQgOC4xLTExLjggMTkuMi0yOSAyNC40LTU1LjYgNC41LTIyLjcgMy4xLTU4LTcuMi03Ny44LTIuMS00LTUuNi02LjktMTAtOC4xLTEuOC0uNS01LjItMS41LTExLjkuNEMyOTMuMSA5NiAyODkuNiA5My44IDI4Ni45IDkyYy01LjYtMy42LTEyLjItNC40LTE4LjQtMi4xLTguMyAzLTE1LjQgMTEtMjIuMSAyNS4yLTEgMi4xLTEuOSA0LjEtMi43IDYuMS0xMi43LjktMzIuNyA1LjUtNDkuNiAyMy44LTIuMSAyLjMtNi4yIDQtMTAuNSA1LjZoLjFjLTguOCAzLjEtMTIuOCAxMC4zLTE3LjcgMjMuMy02LjggMTguMi4yIDM2LjEgNy4xIDQ3LjctOS40IDguNC0yMS45IDIxLjgtMjguNSAzNy41LTguMiAxOS40LTkuMSAzOC40LTguOCA0OC43LTcgNy40LTE3LjggMjEuMy0xOSAzNi45LTEuNiAyMS44IDYuMyAzNi42IDkuOCA0MiAxIDEuNiAyLjEgMi45IDMuMyA0LjItLjQgMi43LS41IDUuNi4xIDguNiAxLjMgNyA1LjcgMTIuNyAxMi40IDE2LjMgMTMuMiA3IDMxLjYgMTAgNDUuOCAyLjkgNS4xIDUuNCAxNC40IDEwLjYgMzEuMyAxMC42aDFjNC4zIDAgNTguOS0yLjkgNzQuOC02LjggNy4xLTEuNyAxMi00LjcgMTUuMi03LjQgMTAuMi0zLjIgMzguNC0xMi44IDY1LTMwIDE4LjgtMTIuMiAyNS4zLTE0LjggMzkuMy0xOC4yIDEzLjYtMy4zIDIyLjEtMTUuNyAyMC40LTI5LjR6bS0yMy44IDE0LjdjLTE2IDMuOC0yNC4xIDcuMy00My45IDIwLjItMzAuOSAyMC02NC43IDI5LjMtNjQuNyAyOS4zcy0yLjggNC4yLTEwLjkgNi4xYy0xNCAzLjQtNjYuNyA2LjMtNzEuNSA2LjQtMTIuOS4xLTIwLjgtMy4zLTIzLTguNi02LjctMTYgOS42LTIzIDkuNi0yM3MtMy42LTIuMi01LjctNC4yYy0xLjktMS45LTMuOS01LjctNC41LTQuMy0yLjUgNi4xLTMuOCAyMS0xMC41IDI3LjctOS4yIDkuMy0yNi42IDYuMi0zNi45LjgtMTEuMy02IC44LTIwLjEuOC0yMC4xcy02LjEgMy42LTExLTMuOGMtNC40LTYuOC04LjUtMTguNC03LjQtMzIuNyAxLjItMTYuMyAxOS40LTMyLjEgMTkuNC0zMi4xcy0zLjItMjQuMSA3LjMtNDguOGM5LjUtMjIuNSAzNS4xLTQwLjYgMzUuMS00MC42cy0yMS41LTIzLjgtMTMuNS00NS4yYzUuMi0xNCA3LjMtMTMuOSA5LTE0LjUgNi0yLjMgMTEuOC00LjggMTYuMS05LjUgMjEuNS0yMy4yIDQ4LjktMTguOCA0OC45LTE4LjhzMTMtMzkuNSAyNS0zMS44YzMuNyAyLjQgMTcgMzIgMTcgMzJzMTQuMi04LjMgMTUuOC01LjJjOC42IDE2LjcgOS42IDQ4LjYgNS44IDY4LTYuNCAzMi0yMi40IDQ5LjItMjguOCA2MC0xLjUgMi41IDE3LjIgMTAuNCAyOSA0My4xIDEwLjkgMjkuOSAxLjIgNTUgMi45IDU3LjguMy41LjQuNy40LjdzMTIuNSAxIDM3LjYtMTQuNWMxMy40LTguMyAyOS4zLTE3LjYgNDcuNC0xNy44IDE3LjUtLjMgMTguNCAyMC4yIDUuMiAyMy40eiIvPjwvc3ZnPg==`;function jr(){return(0,W.jsx)(`img`,{alt:`npm package manager`,height:`20`,src:Ar,width:`20`})}var Mr=n(I)(e=>({fontWeight:e.theme.fontWeight.bold,textTransform:`capitalize`})),Nr=n(C)({padding:0}),Pr=({title:e,element:t,engineText:n})=>(0,W.jsx)(S,{size:{xs:6},children:(0,W.jsx)(w,{subheader:(0,W.jsx)(Mr,{variant:`subtitle1`,children:e}),children:(0,W.jsxs)(Nr,{children:[(0,W.jsx)(x,{sx:{backgroundColor:`transparent`,marginLeft:0,padding:0},children:t}),(0,W.jsx)(I,{sx:{margin:0,padding:`0 0 0 10px`},variant:`subtitle2`,children:n})]})})}),Fr=({packageMeta:e})=>{let{t}=O(),n=e?.latest?.engines;return n?(0,W.jsxs)(S,{container:!0,children:[n.node?(0,W.jsx)(Pr,{element:(0,W.jsx)(Cr,{}),engineText:n.node,title:t(`sidebar.engines.node-js`)}):null,n.npm?(0,W.jsx)(Pr,{element:(0,W.jsx)(Dr,{}),engineText:n.npm,title:t(`sidebar.engines.npm-version`)}):null,n.yarn?(0,W.jsx)(Pr,{element:(0,W.jsx)(jr,{}),engineText:n.yarn,title:t(`sidebar.engines.yarn-version`)}):null,n.pnpm?(0,W.jsx)(Pr,{element:(0,W.jsx)(kr,{}),engineText:n.pnpm,title:t(`sidebar.engines.pnpm-version`)}):null]}):null},Ir=n(H)(({theme:e})=>({marginTop:e.spacing(2),marginBottom:e.spacing(2),textDecoration:`none`,display:`block`})),Lr=n(Wt)(({theme:e})=>({color:e.palette.orange})),Rr=n(`strong`)({marginRight:3}),zr=({packageMeta:e})=>{let t=e?.latest?.funding?.url;return z(t)?(0,W.jsx)(Ir,{to:t,variant:`button`,children:(0,W.jsx)(T,{color:`primary`,fullWidth:!0,startIcon:(0,W.jsx)(Lr,{}),variant:`outlined`,children:(0,W.jsx)(Ut,{components:[(0,W.jsx)(Rr,{},`fund`)],i18nKey:`button.fund-this-package`})})}):null},q=function({ref:e,variant:t=`h6`,...n}){return(0,W.jsx)(I,{...n,ref:e,variant:t})},Br=o,Vr=({packageName:e})=>{let{t}=O(),{localSettings:n,updateSettings:r}=gn(),{configOptions:i}=B(),[a,o]=U.useState(null),s=!!a,c=e=>{o(e.currentTarget)},l=()=>{r({...n,[e]:{global:n[e]?.global,latest:!n[e]?.latest}}),o(null)},u=()=>{r({...n,[e]:{global:!n[e]?.global,latest:n[e]?.latest}}),o(null)},d=()=>{let e=!n?.yarnModern;r({...n,yarnModern:e}),o(null)},f=()=>{o(null)},p=n[e]?.latest,m=n[e]?.global;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(E,{"aria-controls":s?`basic-menu`:void 0,"aria-expanded":s?`true`:void 0,"aria-haspopup":`true`,id:`basic-button`,onClick:c,size:`small`,children:(0,W.jsx)(Kt,{fontSize:`small`})}),(0,W.jsxs)(Br,{anchorEl:a,anchorOrigin:{vertical:`bottom`,horizontal:`right`},id:`basic-menu`,onClose:f,open:s,slotProps:{list:{"aria-labelledby":`basic-button`}},transformOrigin:{vertical:`top`,horizontal:`right`},children:[(0,W.jsxs)(_t,{onClick:l,children:[` `,p===!0?(0,W.jsx)(ge,{children:(0,W.jsx)(et,{})}):null,t(`sidebar.installation.latest`)]}),(0,W.jsxs)(_t,{onClick:u,children:[` `,m===!0?(0,W.jsx)(ge,{children:(0,W.jsx)(et,{})}):null,t(`sidebar.installation.global`)]}),i?.pkgManagers?.includes(`yarn`)&&(0,W.jsxs)(_t,{onClick:d,children:[` `,n?.yarnModern?(0,W.jsx)(ge,{children:(0,W.jsx)(et,{})}):null,t(`sidebar.installation.yarnModern`)]})]})]})},Hr=n(C)({padding:0,":hover":{backgroundColor:`transparent`}}),Ur=n(mt)({padding:`0 0 0 10px`,margin:0}),Wr=n(x)({backgroundColor:`transparent`,padding:0,marginLeft:0}),J=function(e){return e.NPM=`npm`,e.YARN=`yarn`,e.PNPM=`pnpm`,e}({});function Y(e,t,n,r,i=!1){return(t?`${i?``:`-g`} ${n&&!e?`${r}@${n}`:r}`:n&&!e?`${r}@${n}`:r).trim()}var Gr=({packageName:e,dependencyManager:t,packageVersion:n})=>{let{localSettings:r}=gn(),i=r[e]?.latest??!1,a=r[e]?.global??!1;switch(t){case J.NPM:return(0,W.jsxs)(Hr,{"data-testid":`installListItem-npm`,children:[(0,W.jsx)(Wr,{alt:`npm`,sx:{bgcolor:D.white},children:(0,W.jsx)(Dr,{})}),(0,W.jsx)(Ur,{primary:(0,W.jsx)(G,{dataTestId:`installNpm`,text:`npm install ${Y(i,a,n,e)}`,title:`npm install ${Y(i,a,n,e)}`})})]});case J.YARN:return(0,W.jsxs)(Hr,{"data-testid":`installListItem-yarn`,children:[(0,W.jsx)(Wr,{alt:`yarn`,sx:{bgcolor:D.white},children:(0,W.jsx)(jr,{})}),(0,W.jsx)(Ur,{primary:(0,W.jsx)(G,{dataTestId:`installYarn`,text:a?`yarn ${r.yarnModern?``:`global`} add ${Y(a,n,e,!0)}`:`yarn add ${Y(i,a,n,e,!0)}`,title:a?`yarn global add ${Y(a,n,e,!0)}`:`yarn add ${Y(i,a,n,e,!0)}`})})]});case J.PNPM:return(0,W.jsxs)(Hr,{"data-testid":`installListItem-pnpm`,children:[(0,W.jsx)(Wr,{alt:`pnpm`,sx:{bgcolor:D.white},children:(0,W.jsx)(kr,{})}),(0,W.jsx)(Ur,{primary:(0,W.jsx)(G,{dataTestId:`installPnpm`,text:`pnpm install ${Y(i,a,n,e)}`,title:`pnpm install ${Y(i,a,n,e)}`})})]});default:return null}},Kr=n(I)(e=>({fontWeight:e.theme.fontWeight.bold,textTransform:`capitalize`})),qr=n(`div`)({display:`flex`,alignItems:`center`,justifyContent:`space-between`}),Jr=({packageMeta:e,packageName:t,configOptions:n})=>{let{t:r}=O();if(!e||!t)return null;let i=n?.pkgManagers?.includes(`npm`),a=n?.pkgManagers?.includes(`yarn`),o=n?.pkgManagers?.includes(`pnpm`)??!0;return i||o||a?(0,W.jsx)(W.Fragment,{children:(0,W.jsxs)(w,{"data-testid":`installList`,subheader:(0,W.jsxs)(qr,{children:[(0,W.jsx)(Kr,{variant:`subtitle1`,children:r(`sidebar.installation.title`)}),(0,W.jsx)(Vr,{packageName:t})]}),children:[i&&(0,W.jsx)(Gr,{dependencyManager:J.NPM,packageName:t,packageVersion:e.latest.version}),a&&(0,W.jsx)(Gr,{dependencyManager:J.YARN,packageName:t,packageVersion:e.latest.version}),o&&(0,W.jsx)(Gr,{dependencyManager:J.PNPM,packageName:t,packageVersion:e.latest.version})]})}):null},Yr=({keywords:e})=>{let t=typeof e==`string`?e.replace(/,/g,` `).split(` `):e;return t?(0,W.jsx)(C,{sx:{px:0,mt:0,flexWrap:`wrap`},children:t.sort().map((e,t)=>(0,W.jsx)(F,{label:e,size:`small`,sx:{mt:.5,mr:.5}},t))}):null},Xr=({packageMeta:e})=>{let{t}=O(),n=kt();return e?.latest?.keywords?(0,W.jsx)(w,{"data-testid":`keyword-list`,subheader:(0,W.jsx)(I,{sx:{fontWeight:n.fontWeight.bold,textTransform:`capitalize`},variant:`subtitle1`,children:t(`sidebar.keywords.title`)}),children:(0,W.jsx)(Yr,{keywords:e?.latest?.keywords})}):null},Zr=new ct(ut({async:!1,highlight(e,t){let n=Xe.getLanguage(t)?t:`plaintext`;return Xe.highlight(e,{language:n}).value}}));Zr.setOptions({renderer:new Zr.Renderer,pedantic:!1,gfm:!0,breaks:!1});function Qr(e){let t=Zr.parse(e);return zt.sanitize(t)}var $r=D.white,ei=(e,t)=>{let n=t||fn.primary.main,r=e===`dark`?{main:$r}:{main:n};return e===`dark`?{mode:e,primary:r,secondary:{main:`#424242`},background:{default:`#1a202c`,paper:`#2d3748`}}:{mode:e,primary:r,secondary:fn.secondary,background:{default:`#f4f4f4`,paper:`#ffffff`}}},ti={xxl:26,xl:24,lg:21,md:18,default:16,sm:14,ssm:12},ni={light:300,regular:400,semiBold:500,bold:700},ri={xsmall:400,small:576,medium:768,large:1024,container:1240,xlarge:1275},ii={fontSize:ti,fontWeight:ni,breakPoints:ri},ai=(e,t)=>se({palette:ei(e,t),typography:{fontFamily:[`-apple-system`,`BlinkMacSystemFont`,`"Helvetica Neue"`,`Arial`,`sans-serif`].join(`,`)},components:{MuiPaper:{styleOverrides:{root:{backgroundImage:`unset`}}}},...ii}),oi=(0,U.createContext)(void 0);function si(e){let t=window.matchMedia?.(`(prefers-color-scheme:dark)`).matches;return typeof e==`boolean`?e:t}var ci=({children:e})=>{let{configOptions:t}=B(),n=si(t.darkMode),r=t.showThemeSwitch,[i,a]=pn(`darkMode`,n),o=r===!0?i:n,s=ai(o?`dark`:`light`,t.primaryColor);return(0,W.jsx)(oi.Provider,{value:{isDarkMode:o,setIsDarkMode:a},children:(0,W.jsx)(qe,{injectFirst:!0,children:(0,W.jsx)(ke,{theme:s,children:e})})})},li=()=>(0,U.useContext)(oi),ui=({description:e})=>{let{isDarkMode:t}=li();return(0,W.jsx)(ie,{sx:{mb:2},children:(0,W.jsx)(l,{children:(0,W.jsx)(A,{"data-testid":`readme`,sx:{m:2},children:(0,W.jsx)(di,{className:`markdown-body ${t?`markdown-dark`:`markdown-light`}`,dangerouslySetInnerHTML:{__html:Qr(e)}})})})})},di=n(`div`)({ul:{listStyle:`disc`},img:{maxWidth:`100%`}}),fi=e(pe(),1),pi=`L LTS`;function mi(e){return(0,fi.default)(new Date(e)).format(pi)}function hi(e){return(0,fi.default)(new Date(e)).fromNow()}var gi=n.div(({theme:e})=>({marginLeft:e.spacing(1)})),_i=({module:e})=>e===`commonjs`?(0,W.jsx)(gi,{children:(0,W.jsx)(yr,{})}):e===`module`?(0,W.jsx)(gi,{children:(0,W.jsx)(xr,{})}):null,vi=({description:e,packageName:t,version:n,isLatest:r,hasTypes:i,moduleTypes:a,time:o})=>{let{t:s}=O();return(0,W.jsxs)(A,{className:`detail-info`,display:`flex`,flexDirection:`column`,marginBottom:`8px`,children:[(0,W.jsx)(bi,{children:(0,W.jsx)(yi,{children:(0,W.jsxs)(W.Fragment,{children:[t,i&&(0,W.jsx)(gi,{children:(0,W.jsx)(_r,{})}),a.map((e,t)=>(0,W.jsx)(_i,{module:e},t))]})})}),e&&(0,W.jsx)(`div`,{children:e}),(0,W.jsxs)(xi,{title:mi(o),children:[s(r?`sidebar.detail.latest-version`:`sidebar.detail.version`,{version:n}),o?` - `+s(`sidebar.detail.published`)+` `+hi(o):s(`versions.not-available`)]})]})},yi=n.div({display:`flex`,alignItems:`center`}),bi=n(q)({fontSize:`1rem`,fontWeight:700}),xi=n(A)(({theme:e})=>({color:e.palette.text.secondary,fontSize:e.fontSize.sm})),Si=n(`div`)(e=>({fontWeight:e.theme.fontWeight[e.weight],textTransform:e.capitalize?`capitalize`:`none`})),Ci=({text:e=``,capitalize:t=!1,weight:n=`regular`,...r})=>(0,W.jsx)(Si,{capitalize:t,weight:n,...r,children:e}),wi=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PGZpbHRlciB4PSItMTkuOCUiIHk9Ii0xMS43JSIgd2lkdGg9IjEzOS42JSIgaGVpZ2h0PSIxNDAuNCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImEiPjxmZU9mZnNldCBkeT0iNCIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSIvPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjIuNSIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIi8+PGZlQ29tcG9zaXRlIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0ib3V0IiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMDkwNjY0NjI4NiAwIiBpbj0ic2hhZG93Qmx1ck91dGVyMSIvPjwvZmlsdGVyPjxmaWx0ZXIgeD0iLTMzLjklIiB5PSItNTAlIiB3aWR0aD0iMTY3LjklIiBoZWlnaHQ9IjI3Mi43JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iYyI+PGZlT2Zmc2V0IGR5PSI0IiBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIi8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMi41IiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMDkwNjY0NjI4NiAwIiBpbj0ic2hhZG93Qmx1ck91dGVyMSIvPjwvZmlsdGVyPjxwYXRoIGlkPSJiIiBkPSJNNDggMTYuNzI5TDMyLjY3MiA0N2gtOC44NzRMMCAwaDE1LjMyOGwxMi45MDcgMjUuNDkyIDQuNDM3LTguNzYzSDQ4eiIvPjxwYXRoIGQ9Ik0zNS4yIDExSDI4VjguNjQzaDguNGwxLjItMi4zNTdIMzJWMy45MjloNi44bC44LTEuNTcySDM2VjBoMjBsLTUuNiAxMUgzNS4yeiIgaWQ9ImQiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cmVjdCBmaWxsPSIjMDAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgcng9IjM3Ii8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjIgMzApIj48dXNlIGZpbGw9IiMwMDAiIGZpbHRlcj0idXJsKCNhKSIgeGxpbms6aHJlZj0iI2IiLz48dXNlIGZpbGwtb3BhY2l0eT0iLjYiIGZpbGw9IiNGRkYiIHhsaW5rOmhyZWY9IiNiIi8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyIDMwKSI+PHVzZSBmaWxsPSIjMDAwIiBmaWx0ZXI9InVybCgjYykiIHhsaW5rOmhyZWY9IiNkIi8+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjZCIvPjwvZz48cGF0aCBmaWxsPSIjRkZGIiBkPSJNNTQuNzg1IDc3SDQ1Ljg4TDIyIDMwaDE1LjM4TDU4IDcwLjcxOHoiLz48L2c+PC9zdmc+`,Ti=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgaWQ9InZlcmRhY2NpbyI+PFRpdGxlPlZlcmRhY2NpbzwvVGl0bGU+PGRlZnM+PHBhdGggaWQ9ImIiIGQ9Ik00OCAxNy42TDMyLjggNDhIMjRMLjQuOGgxNS4ybDEyLjggMjUuNiA0LjQtOC44SDQ4eiIvPjxmaWx0ZXIgeD0iLTIwJSIgeT0iLTExLjclIiB3aWR0aD0iMTM5LjklIiBoZWlnaHQ9IjE0MC4zJSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iYSI+PGZlT2Zmc2V0IGR5PSI0IiBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIi8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMi41IiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiLz48ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4wOTA2NjQ2Mjg2IDAiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIi8+PC9maWx0ZXI+PHBhdGggaWQ9ImQiIGQ9Ik01MC44IDEySDM1LjZMNDEuMi44aDE1LjJMNTAuOCAxMnoiLz48ZmlsdGVyIHg9Ii00NS43JSIgeT0iLTQ5LjElIiB3aWR0aD0iMTkxLjMlIiBoZWlnaHQ9IjI2OS42JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iYyI+PGZlT2Zmc2V0IGR5PSI0IiBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIi8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMi41IiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiLz48ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4wOTA2NjQ2Mjg2IDAiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIi8+PC9maWx0ZXI+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHJlY3QgZmlsbD0iI0Y3RjhGNiIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIHJ4PSIzNyIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyIDI5KSI+PHVzZSBmaWxsPSIjMDAwIiBmaWx0ZXI9InVybCgjYSkiIHhsaW5rOmhyZWY9IiNiIi8+PHBhdGggc3Ryb2tlPSIjNDA1MjM2IiBzdHJva2Utd2lkdGg9IjIuNCIgZD0iTTQ2LjA1OCAxOC44SDMzLjU0MkwyOC40IDI5LjA4MyAxNC44NTggMkgyLjM0MmwyMi40IDQ0LjhoNy4zMTZsMTQtMjh6IiBzdHJva2UtbGluZWpvaW49InNxdWFyZSIgZmlsbD0iIzQwNTIzNiIvPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMiAyOSkiPjx1c2UgZmlsbD0iIzAwMCIgZmlsdGVyPSJ1cmwoI2MpIiB4bGluazpocmVmPSIjZCIvPjxwYXRoIHN0cm9rZT0iI0NENDAwMCIgc3Ryb2tlLXdpZHRoPSIyLjQiIGQ9Ik01MC4wNTggMTAuOGw0LjQtOC44SDQxLjk0MmwtNC40IDguOGgxMi41MTZ6IiBzdHJva2UtbGluZWpvaW49InNxdWFyZSIgZmlsbD0iI0NENDAwMCIvPjwvZz48cGF0aCBkPSJNNTQuMDYgNzUuOGwyLjU3NS01LjExMkwzNi44NTcgMzFIMjQuMzQybDIyLjQgNDQuOGg3LjMxOXoiIHN0cm9rZT0iIzQwNTIzNiIgc3Ryb2tlLXdpZHRoPSIyLjQiIGZpbGw9IiM0QTVFM0YiLz48cGF0aCBkPSJNNTkuNiAzMWgxNS4yMjFNNTUuNiAzNWgxNS4yMjFNNTEuNiAzOS44aDE1LjIyMSIgc3Ryb2tlPSIjQ0Q0MDAwIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjwvZz48L3N2Zz4K`,Ei={"x-small":`30px`,small:`40px`,big:`90px`},Di={light:Ti,dark:wi},Oi=({size:e,onClick:t,className:n,isDefault:r=!1,title:i=``})=>{let{configOptions:a}=B(),o=kt();if(!r&&a?.logo){let e=o.palette.mode===`dark`&&a.logoDark?a.logoDark:a.logo;return(0,W.jsx)(ki,{className:n,onClick:t,children:(0,W.jsx)(`img`,{alt:i,"data-testid":`custom-logo`,height:`40px`,src:e})})}return(0,W.jsx)(Ai,{className:n,"data-testid":`default-logo`,onClick:t,size:e,title:i})},ki=n(`div`)({fontSize:0}),Ai=n(`div`)(({size:e=`small`,theme:t})=>({display:`inline-block`,verticalAlign:`middle`,boxSizing:`border-box`,backgroundPosition:`center`,backgroundSize:`contain`,backgroundImage:`url(${Di[t.palette.mode]})`,backgroundRepeat:` no-repeat`,width:Ei[e],height:Ei[e]})),ji=function({ref:e,component:t=`li`,...n}){return(0,W.jsx)(Mi,{component:t,...n,ref:e})},Mi=n(_t)({outline:`none`}),Ni=()=>{let e=N(),{t}=O(),n=(0,U.useCallback)(()=>{e(`/`)},[e]);return(0,W.jsxs)(A,{alignItems:`center`,"data-testid":`404`,display:`flex`,flexDirection:`column`,flexGrow:1,justifyContent:`center`,p:2,children:[(0,W.jsx)(Pi,{children:(0,W.jsx)(ot,{color:`primary`,style:{fontSize:236}})}),(0,W.jsx)(Fi,{className:`not-found-text`,variant:`h4`,children:t(`error.404.sorry-we-could-not-find-it`)}),(0,W.jsx)(T,{"data-testid":`not-found-go-to-home-button`,onClick:n,variant:`contained`,children:t(`button.go-to-the-home-page`)})]})},Pi=n(`div`)({margin:`0 auto`}),Fi=n(q)(({theme:e})=>({color:e.palette.mode===`light`?e.palette.primary.main:D.white,marginBottom:16})),Ii=n(`div`)({margin:`0 auto`}),Li=n(q)(({theme:e})=>({color:e.palette.mode===`light`?e.palette.primary.main:D.white,marginBottom:16})),Ri=()=>{let e=N(),{t}=O(),n=(0,U.useCallback)(()=>{e(`/`)},[e]);return(0,W.jsxs)(A,{alignItems:`center`,"data-testid":`404`,display:`flex`,flexDirection:`column`,flexGrow:1,justifyContent:`center`,p:2,children:[(0,W.jsx)(Ii,{children:(0,W.jsx)(rt,{color:`primary`,style:{fontSize:236}})}),(0,W.jsx)(Li,{className:`not-found-text`,variant:`h4`,children:t(`error.401.sorry-no-access`)}),(0,W.jsx)(T,{"data-testid":`not-found-go-to-home-button`,onClick:n,variant:`contained`,children:t(`button.go-to-the-home-page`)})]})},zi=({onClose:e})=>{let{t}=O();return(0,W.jsxs)(A,{alignItems:`center`,display:`flex`,flexDirection:`column`,position:`relative`,children:[e&&(0,W.jsx)(Vi,{"aria-label":t(`button.close`),onClick:e,children:(0,W.jsx)(ye,{})}),(0,W.jsx)(Bi,{children:(0,W.jsx)(Lt,{})}),(0,W.jsx)(q,{children:t(`button.login`)})]})},Bi=n(x)(({theme:e})=>({margin:e.spacing(1),backgroundColor:e.palette.mode===`light`?e.palette.primary.main:e.palette.cyanBlue,color:D.white})),Vi=n(E)(({theme:e})=>({position:`absolute`,right:e.spacing()/2,top:e.spacing()/2,color:e.palette.grey[500]})),Hi=n(E)(({theme:e})=>({position:`absolute`,right:e.spacing()/2,top:e.spacing()/2,color:e.palette.grey[500],zIndex:99})),Ui=({onClose:e})=>{let{t}=O();return(0,W.jsx)(d,{children:(0,W.jsx)(Hi,{"data-testid":`close-login-dialog-button`,onClick:e,children:(0,W.jsx)(ye,{titleAccess:t(`button.close`)})})})},Wi=n(be)(({theme:e})=>({backgroundColor:e.palette.error.dark,marginTop:e.spacing(2),color:D.white})),Gi=n(yt)(({theme:e})=>({fontSize:20,opacity:.9,marginRight:e.spacing(1)})),Ki=(0,U.memo)(({error:e})=>(0,W.jsx)(Wi,{message:(0,W.jsxs)(A,{alignItems:`center`,"data-testid":`error`,display:`flex`,children:[(0,W.jsx)(Gi,{}),e.message]})})),qi=n(Vt)(({theme:e})=>({marginTop:e.spacing(2)})),Ji=({register:e,errors:t})=>{let{t:n}=O();return(0,W.jsx)(qi,{autoComplete:`current-password`,error:!!t.password,fullWidth:!0,helperText:t.password?.message,id:`login--dialog-password`,...e(`password`,{required:{value:!0,message:n(`form-validation.required-field`)}}),"data-testid":`password`,label:n(`form.password`),placeholder:n(`form-placeholder.password`),required:!0,type:`password`,variant:`outlined`})},Yi=n(Vt)(({theme:e})=>({marginTop:e.spacing(2)})),Xi=({register:e,errors:t})=>{let{t:n}=O();return(0,W.jsx)(Yi,{autoComplete:`username`,error:!!t.username,fullWidth:!0,helperText:t.username?.message,id:`login--dialog-username`,...e(`username`,{required:{value:!0,message:n(`form-validation.required-field`)}}),label:n(`form.username`),placeholder:n(`form-placeholder.username`),required:!0,variant:`outlined`})},Zi=n(`form`)(({theme:e})=>({marginTop:e.spacing(1)})),Qi=n(T)(({theme:e})=>({margin:e.spacing(3,0,2)})),$i=({register:e,handleSubmit:t,onSubmit:n,errors:r,isValid:i})=>{let{t:a}=O(),o=V()?.flags?.changePassword;return(0,W.jsxs)(Zi,{noValidate:!0,onSubmit:t(n),children:[(0,W.jsx)(Xi,{errors:r,register:e}),(0,W.jsx)(Ji,{errors:r,register:e}),r.root&&(0,W.jsx)(Ki,{error:r.root}),(0,W.jsx)(Qi,{color:`primary`,"data-testid":`login-dialog-form-login-button`,disabled:!i,fullWidth:!0,id:`login--dialog-button-submit`,size:`large`,type:`submit`,variant:`contained`,children:a(`button.login`)}),o&&(0,W.jsx)(I,{align:`center`,sx:{mt:2,fontSize:12},variant:`body2`,children:(0,W.jsx)(P,{href:R.CHANGE_PASSWORD,sx:{ml:1},children:a(`security.changePassword.title`)})})]})},ea=Mt().required().min(2).matches(/^[-a-zA-Z0-9_.!~*'()@]+$/,`security.error.username-must-be-url-safe`),ta=Mt().required().min(2),na=Tt({username:ea,password:ta}),ra=Tt({username:ea,password:ta,email:Mt().email().required()}),ia=Tt({username:ea,oldPassword:ta,newPassword:ta,confirmPassword:Mt().required().oneOf([nt(`newPassword`)],`security.error.password-mismatch`)});function aa({onSuccess:e}={}){let{handleLogin:t}=kn(),n=Qe({mode:`onChange`,resolver:ft(na)}),{setError:r}=n,i=(0,U.useCallback)(async n=>{try{await t?.(n),e?.()}catch{r(`root`,{type:`server`,message:`Invalid username or password`})}},[t,r,e]);return{...n,onSubmit:i}}var oa=()=>{let{register:e,handleSubmit:t,formState:{isValid:n,errors:r},onSubmit:i}=aa();return(0,W.jsx)($i,{errors:r,handleSubmit:t,isValid:n,onSubmit:i,register:e})},sa=({onClose:e,open:t=!1})=>{let{userState:n}=kn();return(0,U.useEffect)(()=>{n?.token&&e()},[e,n]),(0,W.jsxs)(_,{"data-testid":`login--dialog`,fullWidth:!0,maxWidth:`sm`,onClose:e,open:t,children:[(0,W.jsx)(Ui,{onClose:e}),(0,W.jsxs)(Me,{"data-testid":`dialogContentLogin`,children:[(0,W.jsx)(zi,{}),(0,W.jsx)(oa,{})]})]})},ca=n(`div`)({width:`100%`,position:`relative`,zIndex:1}),la=({suggestions:e=[],onSuggestionsFetch:t,onCleanSuggestions:n,renderInput:r,renderOption:i,getOptionLabel:a,onSelectItem:o,suggestionsLoading:s=!1})=>{let{t:c}=O(),[l,u]=(0,U.useState)(``);return(0,W.jsx)(ca,{children:(0,W.jsx)(de,{clearOnBlur:!0,disablePortal:!0,filterOptions:(e,t)=>t.inputValue.trim()?e:[],fullWidth:!0,getOptionLabel:a,id:`search-header-suggest`,inputValue:l,loading:s,loadingText:c(`autoComplete.loading`),noOptionsText:c(`autoComplete.no-results-found`),onChange:o,onClose:e=>{n(e),u(``)},onInputChange:(e,r,i)=>{i===`input`?(e.preventDefault(),t({value:r}),u(r)):i===`clear`&&(n(e),u(``))},options:e,renderInput:r,renderOption:i,renderTags:()=>null})})};function ua(e){let t;do t=e,e=e.replace(/<[^>]*>?/gm,``);while(e!==t);return e}function da(e){let t=e;return t=ua(t),t=t.replace(/\(.*?\)/gm,``).replace(/(\[!?|\])/gm,``),t}var fa=n.div({display:`flex`,alignItems:`center`,width:`100%`}),pa=n(`div`)(({theme:e})=>({display:`none`,color:e.palette.greyLight2,lineHeight:`1.5rem`,whiteSpace:`nowrap`,textOverflow:`ellipsis`,alignItems:`center`,overflow:`hidden`,paddingLeft:e.spacing(),fontSize:e.fontSize.ssm,[`@media (min-width: ${e.breakPoints.medium}px)`]:{display:`block`,width:`300px`},[`@media (min-width: ${e.breakPoints.large}px)`]:{display:`block`,width:`500px`},"@media (min-width: 1440px)":{display:`block`,width:`600px`}})),ma=n.span({display:`flex`,flex:`1`}),ha=n(`span`)(({theme:e})=>({fontWeight:`700`,fontSize:e.fontSize.sm})),ga=n(`span`)(({theme:e})=>({fontSize:e.fontSize.ssm})),_a=({name:e,description:t,isPrivate:n=!1,isRemote:i=!1,isCached:a=!1,version:o,...s})=>{let{t:c}=O(),{configOptions:l}=B(),u=()=>{};return(0,W.jsxs)(`li`,{...s,style:{flexDirection:`column`},children:[(0,W.jsxs)(fa,{children:[(0,W.jsxs)(ma,{children:[(0,W.jsx)(ha,{children:e}),t&&(0,W.jsx)(pa,{children:da(t)})]}),o&&(0,W.jsx)(ga,{children:o})]}),l?.showUplinks&&(0,W.jsx)(fa,{children:(0,W.jsxs)(r,{direction:`row`,spacing:1,children:[n&&(0,W.jsx)(F,{color:`primary`,deleteIcon:(0,W.jsx)(wt,{}),label:c(`search.isPrivate`),onDelete:u,size:`small`}),i&&!n&&(0,W.jsx)(F,{deleteIcon:(0,W.jsx)(Ft,{}),label:c(`search.isRemote`),onDelete:u,size:`small`,variant:`outlined`}),a&&(0,W.jsx)(F,{deleteIcon:(0,W.jsx)(jt,{}),label:c(`search.isCached`),onDelete:u,size:`small`,variant:`outlined`})]})})]})},va=n(Vt)(e=>({"& .MuiInputBase-root":{":before":{content:`''`,border:`none`},":after":{borderColor:D.white},":hover:before":{content:`none`},":hover:after":{content:`none`,transform:`scaleX(1)`},[`@media screen and (min-width: ${e.theme.breakPoints.medium}px)`]:{":hover:after":{content:`''`}}},"& .MuiInputBase-input":{[`@media screen and (min-width: ${e.theme.breakPoints.medium}px)`]:{color:D.white}}})),ya=n(te)(()=>({color:D.white})),ba=e(xt(),1),xa={API_DELAY:300,ABORT_ERROR:`AbortError`},Sa=()=>{let{t:e}=O(),t=N(),{searchResults:n,isLoading:r,doSearch:i}=Tn(),{configOptions:{flags:a}}=B(),o=a?.searchRemote??!1,s=(0,U.useRef)(null),c=(0,U.useCallback)(()=>{s.current&&=(s.current.abort(),null)},[]),l=(0,U.useCallback)(e=>{e.stopPropagation(),c()},[c]),u=(0,U.useCallback)((e,n,r)=>{if(e.stopPropagation(),r===`selectOption`){let e=n.package?.name??n.name;t(`${R.DETAIL}${e}`)}},[t,o]),d=(0,U.useRef)(i);d.current=i;let f=(0,U.useCallback)(async({value:e})=>{if(e?.trim()!==``){c();let t=new AbortController;s.current=t;try{await d.current?.({text:e,signal:t.signal})}catch(e){e.name===xa.ABORT_ERROR?console.warn(`Search request aborted`):console.error(`Search error:`,e)}}},[c]),p=(0,U.useMemo)(()=>(0,ba.default)(f,xa.API_DELAY),[f]);return(0,U.useEffect)(()=>()=>{p.cancel?.(),c()},[p,c]),(0,W.jsx)(la,{getOptionLabel:e=>e?.package?.name,onCleanSuggestions:l,onSelectItem:u,onSuggestionsFetch:p,placeholder:e(`search.packages`),renderInput:t=>(0,W.jsx)(va,{...t,InputProps:{...t.InputProps,startAdornment:(0,W.jsx)(ya,{position:`start`,children:(0,W.jsx)(it,{})})},label:``,placeholder:e(`search.packages`),variant:`standard`}),renderOption:(e,t)=>{let{key:n,...r}=e;if(o){let e=t.package,i=t?.verdaccioPrivate,a=t?.verdaccioPkgCached,o=!a&&!i;return(0,W.jsx)(_a,{...r,description:e?.description,isCached:a,isPrivate:i,isRemote:o,name:e?.name,version:e?.version},n)}else{let e=t.package;return(0,W.jsx)(_a,{...r,description:e?.description,name:e?.name,version:e?.version},n)}},suggestions:n,suggestionsLoading:r})},Ca=n(d)(({theme:e})=>({backgroundColor:e.palette.mode===`light`?e.palette.primary.main:e.palette.cyanBlue,color:D.white,fontSize:e.fontSize.lg})),wa=n(Me)(({theme:e})=>({padding:`0 24px`,backgroundColor:e.palette.background.default}));n(`div`)(({theme:e})=>({padding:`10px 24px`,backgroundColor:e.palette.background.default}));var Ta=({open:e=!1,children:t,onClose:n,title:r=``})=>{let{t:i}=O();return(0,W.jsxs)(_,{"data-testid":`registryInfo--dialog`,id:`registryInfo--dialog-container`,maxWidth:`sm`,onClose:n,open:e,children:[(0,W.jsx)(Ca,{children:r}),(0,W.jsx)(wa,{children:t}),(0,W.jsx)(De,{children:(0,W.jsx)(T,{color:`inherit`,id:`registryInfo--dialog-close`,onClick:n,children:i(`button.close`)})})]})};function Ea(e){return{id:`simple-tab-${e}`,"aria-controls":`simple-tabpanel-${e}`}}function Da(e){let{children:t,value:n,index:r,...i}=e;return(0,W.jsx)(`div`,{"aria-labelledby":`simple-tab-${r}`,hidden:n!==r,id:`simple-tabpanel-${r}`,role:`tabpanel`,...i,children:n===r&&(0,W.jsx)(A,{sx:{paddingTop:3},children:t})})}var Oa=({onCloseDialog:e,isOpen:t,tabs:n=null,tabPanels:r=null,dialogTitle:i})=>{let[a,o]=U.useState(0),s=(e,t)=>{o(t)};return(0,W.jsx)(Ta,{onClose:e,open:t,title:i,children:(0,W.jsxs)(A,{sx:{width:`100%`},children:[(0,W.jsx)(A,{sx:{borderBottom:1,borderColor:`divider`},children:(0,W.jsx)(Ne,{"aria-label":`infoTabs`,"data-testid":`tabs`,onChange:s,value:a,children:n?n.map((e,t)=>(0,W.jsx)(h,{label:e.label,...Ea(t),...e},e.label)):null})}),r?r.map((e,t)=>(0,W.jsx)(Da,{index:t,value:a,children:e.element},t)):null]})})},ka=({size:e=50,centered:t=!1})=>(0,W.jsx)(Aa,{centered:t,children:(0,W.jsx)(ja,{size:e})}),Aa=n(`div`)(({centered:e})=>({display:`flex`,alignItems:`center`,justifyContent:`center`,...e&&{position:`absolute`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`}})),ja=n(re)(({theme:e})=>({color:e.palette.mode===`dark`?D.white:e.palette.primary.main})),Ma=n(`div`)({transform:`translate(-50%, -50%)`,top:`50%`,left:`50%`,position:`absolute`}),Na=n(`div`)(({theme:e})=>({margin:`0 0 30px 0`,padding:5,borderRadius:25,boxShadow:`0 10px 20px 0 rgba(69, 58, 100, 0.2)`,background:e.palette.mode===`dark`?e.palette.black:`#f7f8f6`})),Pa=()=>(0,W.jsxs)(Ma,{"data-testid":`loading`,children:[(0,W.jsx)(Na,{children:(0,W.jsx)(Oi,{size:`big`})}),(0,W.jsx)(ka,{"data-testid":`spinnerLogo`})]}),X=n(`span`)(({theme:e})=>({display:`flex`,alignItems:`center`,margin:`0 20px 0 0`,color:e.palette.mode===`light`?e.palette.greyDark2:D.white,fontSize:12,[`@media (max-width: ${e.breakPoints.medium}px)`]:{":nth-of-type(3)":{display:`none`}},[`@media (max-width: ${e.breakPoints.small}px)`]:{":nth-of-type(4)":{display:`none`}}})),Fa=n(`span`)({margin:`0 5px 0 0`}),Ia=n(`span`)({marginLeft:`5px`,lineHeight:1.5,display:`flex`,flexDirection:`column`}),La=n(`div`)({display:`flex`,alignItems:`center`}),Ra=n(x)({width:`20px`,height:`20px`}),za=n(vt)({textDecoration:`none`}),Ba=n(`span`)(({theme:e})=>({fontWeight:e.fontWeight.bold,fontSize:20,display:`block`,color:e.palette.primary.main,cursor:`pointer`,textDecoration:`none`,wordBreak:`break-word`,[`@media (max-width: ${e.breakPoints.small}px)`]:{fontSize:16}})),Va=n(S)({display:`flex`,alignItems:`center`,justifyContent:`flex-end`}),Ha=n(w)(({theme:e})=>({"&:hover":{backgroundColor:e.palette.action.hover}})),Ua=n(E)({padding:6,svg:{fontSize:16}}),Wa=n(mt)({paddingRight:0}),Ga=n(`span`)(({theme:e})=>({color:e.palette.mode===`light`?un:D.white,fontSize:`14px`,paddingRight:0})),Ka=({author:{name:e,avatar:t},bugs:n,description:r,dist:i,homepage:a,keywords:o,license:s,name:l,time:u,showDownload:d=!0,version:f})=>{let p=V(),{t:m}=O(),{isLoading:h}=Cn(),{downloadTarball:g}=xn(),_=(0,U.useCallback)(async e=>{let t=e.replace(`https://registry.npmjs.org/`,p.base);g?.({link:t})},[p,g]),ee=()=>f&&(0,W.jsxs)(X,{children:[(0,W.jsx)(Ja,{}),m(`package.version`,{version:f})]}),v=()=>{let n=rn(e);return(0,W.jsx)(X,{children:(0,W.jsxs)(La,{children:[(0,W.jsx)(Ra,{alt:n,src:t}),(0,W.jsx)(Ia,{children:n})]})})},te=()=>i?.unpackedSize&&(0,W.jsxs)(X,{children:[(0,W.jsx)(Ya,{}),en(i.unpackedSize)]}),y=()=>s&&(0,W.jsxs)(X,{children:[(0,W.jsx)(Xa,{}),s]}),b=()=>u&&(0,W.jsxs)(X,{children:[(0,W.jsx)(Za,{}),(0,W.jsx)(Fa,{title:sn(u),children:m(`package.published-on`,{time:Qt(u)})})]}),x=()=>a&&z(a)&&(0,W.jsx)(H,{to:a,children:(0,W.jsx)(c,{"aria-label":m(`package.homepage`),title:m(`package.visit-home-page`),children:(0,W.jsx)(Ua,{"aria-label":m(`package.homepage`),color:`primary`,size:`large`,children:(0,W.jsx)(At,{})})})}),ne=()=>n?.url&&z(n.url)&&(0,W.jsx)(H,{to:n.url,children:(0,W.jsx)(c,{"aria-label":m(`package.bugs`),title:m(`package.open-an-issue`),children:(0,W.jsx)(Ua,{"aria-label":m(`package.bugs`),color:`primary`,size:`large`,children:(0,W.jsx)(Ze,{})})})}),ie=()=>i?.tarball&&z(i.tarball)&&(0,W.jsx)(wn,{onClick:()=>{_(i.tarball)},to:`#`,children:(0,W.jsx)(c,{"aria-label":m(`package.download`,{what:m(`package.the-tar-file`)}),title:m(`package.tarball`),children:(0,W.jsx)(Ua,{"aria-label":m(`package.download`),color:`primary`,"data-testid":`download-tarball`,size:`large`,children:h?(0,W.jsx)(re,{size:13}):(0,W.jsx)(dt,{})})})}),ae=()=>(0,W.jsxs)(S,{alignItems:`center`,container:!0,size:{xs:12},wrap:`wrap`,children:[(0,W.jsx)(S,{size:`grow`,children:(0,W.jsx)(za,{to:`${R.DETAIL}${l}`,children:(0,W.jsx)(Ba,{className:`package-title`,"data-testid":`package-title`,children:l})})}),(0,W.jsxs)(Va,{size:`auto`,children:[x(),ne(),d&&ie()]})]}),oe=()=>(0,W.jsx)(Ga,{children:r}),se=()=>(0,W.jsx)(Wa,{primary:ae(),secondary:oe()}),ce=()=>(0,W.jsx)(C,{alignItems:`flex-start`,sx:{py:0,my:0},children:(0,W.jsx)(w,{sx:{p:0,my:0},children:(0,W.jsx)(Yr,{keywords:o})})});return(0,W.jsxs)(Ha,{className:`package`,"data-testid":`package-item-list`,children:[(0,W.jsx)(C,{alignItems:`flex-start`,sx:{mb:0},children:se()}),o&&o?.length>0?ce():null,(0,W.jsxs)(C,{alignItems:`flex-start`,sx:{mt:0},children:[v(),ee(),b(),te(),y()]})]})},qa=({theme:e})=>j`
|
|
3
|
+
margin: 0 10px 0 0;
|
|
4
|
+
fill: ${e.palette.mode===`light`?We[900]:D.white};
|
|
5
|
+
`,Ja=n(ur)`
|
|
6
|
+
${qa};
|
|
7
|
+
`,Ya=n(fr)`
|
|
8
|
+
${qa};
|
|
9
|
+
`,Xa=n(pr)`
|
|
10
|
+
${qa};
|
|
11
|
+
`,Za=n(dr)`
|
|
12
|
+
${qa};
|
|
13
|
+
`,Qa=n(ie)({maxWidth:600,margin:`auto`});function $a(e,t){return(0,W.jsxs)(U.Fragment,{children:[(0,W.jsx)(I,{variant:`body1`,children:e}),(0,W.jsx)(G,{dataTestId:`segments`,text:t})]})}var eo=()=>{let{configOptions:e}=B(),t=e.base,{t:n}=O();return(0,W.jsxs)(Qa,{"data-testid":`help-card`,id:`help-card`,children:[(0,W.jsxs)(l,{children:[(0,W.jsx)(q,{gutterBottom:!0,id:`help-card__title`,variant:`h5`,children:n(`help.title`)}),(0,W.jsx)(q,{color:`textSecondary`,gutterBottom:!0,sx:{marginBottom:1},children:n(`help.sub-title`)}),$a(n(`help.first-step`),n(`help.first-step-command-line`,{registryUrl:t})),$a(n(`help.second-step`),n(`help.second-step-command-line`,{registryUrl:t})),(0,W.jsx)(I,{variant:`body1`,children:n(`help.third-step`)})]}),(0,W.jsx)(Le,{children:(0,W.jsx)(T,{color:`primary`,href:`https://verdaccio.org/docs/cli-registry`,size:`small`,children:n(`button.learn-more`)})})]})},to=t(),no=Ce(),ro=Ke(),io=Ve(),ao=new no.CellMeasurerCache({fixedWidth:!0,defaultHeight:100}),oo=({packages:e})=>{let{configOptions:t}=B(),n=({index:n,key:r,parent:i,style:a})=>{let{name:o,version:s,description:c,time:l,keywords:u,dist:d,homepage:f,bugs:p,author:m,license:h}=e[n],g=$t(h);return(0,W.jsx)(no.CellMeasurer,{cache:ao,columnIndex:0,parent:i,rowIndex:n,children:(0,W.jsxs)(`div`,{style:a,children:[n!==0&&(0,W.jsx)(me,{}),(0,W.jsx)(Ka,{author:m,bugs:p,description:c,dist:d,homepage:f,keywords:u,license:g,name:o,showDownload:t.showDownloadTarball,time:l,version:s})]})},r)};return e?.length>0?(0,W.jsx)(Dn,{children:(0,W.jsx)(io.WindowScroller,{children:({height:t,isScrolling:r,scrollTop:i,onChildScroll:a})=>(0,W.jsx)(to.AutoSizer,{disableHeight:!0,children:({width:o})=>(0,W.jsx)(ro.List,{autoHeight:!0,deferredMeasurementCache:ao,height:t,isScrolling:r,onScroll:a,overscanRowCount:3,rowCount:e?.length,rowHeight:ao.rowHeight,rowRenderer:n,scrollTop:i,width:o})})})}):(0,W.jsx)(eo,{})},so=class extends U.Component{state={hasError:!1,error:null};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`ErrorBoundary caught:`,e,t)}render(){let{hasError:e,error:t}=this.state,{children:n}=this.props;return e?(0,W.jsxs)(`div`,{role:`alert`,children:[(0,W.jsx)(`h1`,{children:`Something went wrong.`}),(0,W.jsx)(`pre`,{children:t?.message})]}):n}},co=L(()=>M(()=>import(`./Version.DKFAMw-W.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8]))),lo=L(()=>M(()=>import(`./Front.C1b9iTV3.js`),__vite__mapDeps([9,1,2,3,4,5,6,7,8]))),uo=L(()=>M(()=>import(`./Login.BrdJcjmu.js`),__vite__mapDeps([10,1,2,3,4,5,6,7,8]))),fo=L(()=>M(()=>import(`./Success.CGCwgIFa.js`),__vite__mapDeps([11,1,2,3,4,5,6,7,8]))),po=L(()=>M(()=>import(`./AddUser.eKXf9lwI.js`),__vite__mapDeps([12,1,2,3,4,5,6,7,8]))),mo=L(()=>M(()=>import(`./ChangePassword.R_eB3MG9.js`),__vite__mapDeps([13,1,2,3,4,5,6,7,8]))),ho=(0,W.jsx)(An,{children:(0,W.jsx)(co,{})}),go=()=>{let{configOptions:e}=B(),t=e?.flags?.createUser,n=e?.flags?.changePassword;return(0,W.jsxs)(at,{children:[(0,W.jsx)(k,{element:(0,W.jsx)(En,{children:(0,W.jsx)(lo,{})}),path:R.ROOT}),(0,W.jsx)(k,{element:ho,path:R.SCOPE_PACKAGE_VERSION}),(0,W.jsx)(k,{element:ho,path:R.SCOPE_PACKAGE}),(0,W.jsx)(k,{element:ho,path:R.PACKAGE_VERSION}),(0,W.jsx)(k,{element:ho,path:R.PACKAGE}),(0,W.jsxs)(k,{element:(0,W.jsx)(It,{}),children:[(0,W.jsx)(k,{element:(0,W.jsx)(uo,{}),path:R.LOGIN}),(0,W.jsx)(k,{element:(0,W.jsx)(fo,{}),path:R.SUCCESS}),t&&(0,W.jsx)(k,{element:(0,W.jsx)(po,{}),path:R.ADD_USER}),n&&(0,W.jsx)(k,{element:(0,W.jsx)(mo,{}),path:R.CHANGE_PASSWORD})]}),(0,W.jsx)(k,{element:(0,W.jsx)(Ni,{}),path:`*`})]})},_o=n(I)(e=>({fontWeight:e.theme.fontWeight.bold,textTransform:`capitalize`})),vo=n(C)({padding:0,":hover":{backgroundColor:`transparent`}}),yo=n(mt)({padding:`0 0 0 10px`,margin:0}),bo=n(x)({padding:0,marginLeft:0,backgroundColor:`transparent`}),xo=({packageMeta:e})=>{let{t}=O(),n=e?.latest?.repository?.url;if(!n||!z(n))return null;let r=n.includes(`git+`)?n.split(`git+`)[1]:n;return(0,W.jsx)(w,{dense:!0,subheader:(0,W.jsx)(_o,{variant:`subtitle1`,children:t(`sidebar.repository.title`)}),children:(0,W.jsxs)(vo,{children:[(0,W.jsx)(bo,{sx:{bgcolor:D.white},children:(0,W.jsx)(Tr,{})}),(0,W.jsx)(yo,{primary:(0,W.jsx)(G,{dataTestId:`repositoryID`,text:r,title:r,children:(0,W.jsx)(H,{to:r,variant:`outline`,children:r})})})]})})},So=e=>{if(!e.latest)return[];let t=[e.latest.type||`commonjs`];return e.latest.main&&t.push(`commonjs`),Array.from(new Set(t))},Co=()=>{let{packageMeta:e,packageName:t,packageVersion:n}=jn(),{configOptions:r}=B(),i=n||e?.latest.version||``,a=e?.time?e.time[i]:``;return!e||!t?null:(0,W.jsxs)(m,{"data-testid":`sidebar`,sx:{position:`sticky`,top:0,p:2,ml:{xs:0,md:2}},children:[(0,W.jsx)(vi,{description:e.latest?.description,hasTypes:typeof e.latest?.types==`string`,isLatest:n===void 0,moduleTypes:So(e),packageName:t,time:a,version:i}),(0,W.jsx)(Dn,{children:(0,W.jsx)(Vn,{packageMeta:e,showDownloadTarball:r.showDownloadTarball,showRaw:r.showRaw})}),(0,W.jsx)(zr,{packageMeta:e}),(0,W.jsx)(Jr,{configOptions:r,packageMeta:e,packageName:t}),(0,W.jsx)(xo,{packageMeta:e}),(0,W.jsx)(Fr,{packageMeta:e}),(0,W.jsx)(sr,{packageMeta:e}),(0,W.jsx)(Xr,{packageMeta:e}),(0,W.jsx)(Jn,{packageMeta:e}),(0,W.jsx)(nr,{packageMeta:e,type:Xn.MAINTAINERS}),(0,W.jsx)(nr,{packageMeta:e,type:Xn.CONTRIBUTORS})]})},wo=({description:e})=>e?(0,W.jsx)(ui,{description:e}):null,To=function(e){return e.README=`readme`,e.DEPENDENCIES=`dependencies`,e.VERSIONS=`versions`,e.UPLINKS=`uplinks`,e}({}),Eo=L(()=>M(()=>import(`./Versions.BY9mQiM-.js`),__vite__mapDeps([14,1,2,3,4,5]))),Do=L(()=>M(()=>import(`./UpLinks.DN9lHtz5.js`),__vite__mapDeps([15,1,2,3,8,7,5]))),Oo=L(()=>M(()=>import(`./Dependencies.YXtyTZr0.js`),__vite__mapDeps([16,1,2,3,6,7,5]))),ko=({tabPosition:e,readDescription:t})=>{let{packageMeta:n,packageName:r}=jn();switch(e){case To.README:return(0,W.jsx)(wo,{description:t});case To.UPLINKS:return(0,W.jsx)(Do,{packageMeta:n});case To.VERSIONS:return(0,W.jsx)(Eo,{packageMeta:n,packageName:r});case To.DEPENDENCIES:return(0,W.jsx)(Oo,{packageMeta:n});default:return null}},Ao=({tabPosition:e,onChange:t,showUplinks:n})=>{let{t:r}=O(),i=f(`(max-width:599px)`);return(0,W.jsxs)(jo,{allowScrollButtonsMobile:!0,onChange:t,scrollButtons:i?`auto`:!1,value:e,variant:i?`scrollable`:`fullWidth`,children:[(0,W.jsx)(h,{"data-testid":`readme-tab`,id:`readme-tab`,label:r(`tab.readme`)}),(0,W.jsx)(h,{"data-testid":`dependencies-tab`,id:`dependencies-tab`,label:r(`tab.dependencies`)}),(0,W.jsx)(h,{"data-testid":`versions-tab`,id:`versions-tab`,label:r(`tab.versions`)}),n&&(0,W.jsx)(h,{"data-testid":`uplinks-tab`,id:`uplinks-tab`,label:r(`tab.uplinks`)})]})},jo=n(Ne)({marginBottom:16}),Mo=function(e){return e.README=`readme`,e.DEPENDENCIES=`dependencies`,e.VERSIONS=`versions`,e.UPLINKS=`uplinks`,e}({}),No=()=>{let{configOptions:e}=B(),t=e.showUplinks?Object.values(Mo):Object.values(Mo).filter(e=>e!==Mo.UPLINKS),[n,r]=(0,U.useState)(0),{readMe:i,packageMeta:a}=jn();return(0,W.jsxs)(A,{component:`div`,display:`flex`,flexDirection:`column`,minWidth:0,padding:0,children:[(0,W.jsx)(Ao,{onChange:(e,t)=>{r(t)},showUplinks:e.showUplinks,tabPosition:n}),a?.latest?.deprecated&&(0,W.jsx)(Yn,{message:a?.latest?.deprecated}),(0,W.jsx)(ko,{readDescription:i,tabPosition:t[n]})]})},Po=n(ee)({justifyContent:`space-between`,alignItems:`center`,padding:0}),Fo=n(`span`)({margin:`0 5px 0 0`}),Io=n(`div`)(e=>({alignItems:`center`,display:`flex`,borderBottom:`1px solid ${e.theme.palette.greyLight}`,padding:`8px`,position:`relative`})),Lo=n(`div`)(e=>({borderRadius:`4px`,backgroundColor:e.theme.palette.greyLight,color:D.white,width:`100%`,padding:`0 5px`,margin:`0 10px 0 0`})),Ro=n(E)({}),zo=n(E)({}),Bo=n(E)({}),Vo=n(E)({}),Ho=n(`div`)({display:`none`,width:`100%`,marginLeft:20}),Uo=n(ce)(({theme:e})=>({backgroundColor:e.palette.mode===`light`?e.palette.primary.main:e.palette.cyanBlue,color:D.white,minHeight:60,display:`flex`,justifyContent:`center`,[`@media (max-width: ${e.breakPoints.xsmall}px)`]:j`
|
|
14
|
+
[data-testid='header--tooltip-info'] {
|
|
15
|
+
display: none;
|
|
16
|
+
}
|
|
17
|
+
[data-testid='header--button--dark'],
|
|
18
|
+
[data-testid='header--button--light'] {
|
|
19
|
+
display: none;
|
|
20
|
+
}
|
|
21
|
+
[data-testid='header--tooltip-settings'] {
|
|
22
|
+
display: none;
|
|
23
|
+
}
|
|
24
|
+
`,[`@media (min-width: ${e.breakPoints.medium}px)`]:j`
|
|
25
|
+
[data-testid='search-container'] {
|
|
26
|
+
display: flex;
|
|
27
|
+
}
|
|
28
|
+
[data-testid='header--tooltip-search'] {
|
|
29
|
+
display: none;
|
|
30
|
+
}
|
|
31
|
+
[data-testid='mobile-nav-bar'] {
|
|
32
|
+
display: none;
|
|
33
|
+
}
|
|
34
|
+
`,[`@media (min-width: ${e.breakPoints.large}px)`]:j`
|
|
35
|
+
[data-testid='inner-nav-bar'] {
|
|
36
|
+
padding: 0 16px;
|
|
37
|
+
}
|
|
38
|
+
`,[`@media (min-width: ${e.breakPoints.xlarge}px)`]:j`
|
|
39
|
+
[data-testid='inner-nav-bar'] {
|
|
40
|
+
max-width: 1240px;
|
|
41
|
+
width: 100%;
|
|
42
|
+
margin: 0 auto;
|
|
43
|
+
}
|
|
44
|
+
`})),Wo=({showSearch:e})=>(0,W.jsxs)(ee,{sx:{display:`flex`,padding:0,marginLeft:1,flex:1,"@media (min-width: 600px)":{padding:0,marginLeft:1,marginRight:`20px`}},children:[(0,W.jsx)(vt,{to:`/`,children:(0,W.jsx)(Oi,{})}),e&&(0,W.jsx)(Ho,{"data-testid":`search-container`,children:(0,W.jsx)(Sa,{})})]}),Go=({username:e})=>{let{t}=O();return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Fo,{children:t(`header.greetings`)}),(0,W.jsx)(Ci,{"data-testid":`greetings-label`,text:e,weight:`bold`})]})},Ko=({onLogout:e,username:t,isMenuOpen:n=!1,anchorEl:r,onLoggedInMenu:i,onLoggedInMenuClose:a})=>{let{t:s}=O();return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(E,{color:`inherit`,"data-testid":`logInDialogIcon`,id:`header--button-account`,onClick:i,size:`large`,children:(0,W.jsx)(Ue,{})}),(0,W.jsxs)(o,{anchorEl:r,onClose:a,open:n,slotProps:{root:{anchorOrigin:{vertical:`bottom`,horizontal:`right`},transformOrigin:{vertical:`top`,horizontal:`right`}}},children:[(0,W.jsx)(ji,{children:(0,W.jsx)(Go,{username:t})}),(0,W.jsx)(ji,{"data-testid":`logOutDialogIcon`,id:`logOutDialogIcon`,onClick:e,children:s(`button.logout`)})]})]})},qo=function({ref:e,tooltipIconType:t,onClick:n}){switch(t){case`info`:return(0,W.jsx)(zo,{color:`inherit`,"data-testid":`header--tooltip-info`,id:`header--button-registryInfo`,onClick:n,ref:e,size:`large`,children:(0,W.jsx)(oe,{})});case`settings`:return(0,W.jsx)(Vo,{color:`inherit`,"data-testid":`header--tooltip-settings`,id:`header--button-settings`,onClick:n,ref:e,size:`large`,children:(0,W.jsx)(Kt,{})});case`search`:return(0,W.jsx)(Ro,{"data-testid":`header--tooltip-search`,color:`inherit`,onClick:n,ref:e,children:(0,W.jsx)(it,{})});case`dark-mode`:return(0,W.jsx)(Bo,{color:`inherit`,"data-testid":`header--button--dark`,onClick:n,ref:e,size:`large`,children:(0,W.jsx)(Ot,{})});case`light-mode`:return(0,W.jsx)(Bo,{color:`inherit`,"data-testid":`header--button--light`,onClick:n,ref:e,size:`large`,children:(0,W.jsx)(le,{})});default:return null}},Jo=({tooltipIconType:e,onClick:t})=>(0,W.jsx)(qo,{onClick:t,tooltipIconType:e}),Yo=({showSearch:e,username:t,onToggleLogin:n,hasLogin:r,showInfo:i,showSettings:a,showThemeSwitch:o,onLogout:s,onToggleMobileNav:c,onOpenRegistryInfoDialog:l,onOpenSettingsDialog:u})=>{let{isDarkMode:d,setIsDarkMode:f}=li(),[p,m]=(0,U.useState)(null),[h,g]=(0,U.useState)(!1),_=r===!1,{t:v}=O();(0,U.useEffect)(()=>{g(!!p)},[p]);let te=e=>{m(e.currentTarget)},y=()=>{m(null)},b=()=>{m(null),n()},x=()=>{setTimeout(()=>{f(!d)},300)};return(0,W.jsxs)(ee,{"data-testid":`header-right`,sx:{display:`flex`,padding:0,marginRight:0,"@media (min-width: 600px)":{padding:0,marginRight:0}},children:[e===!0&&(0,W.jsx)(Jo,{onClick:c,title:v(`search.packages`),tooltipIconType:`search`}),a===!0&&(0,W.jsx)(Jo,{onClick:u,title:v(`header.settings`),tooltipIconType:`settings`}),i===!0&&(0,W.jsx)(Jo,{onClick:l,title:v(`header.registry-info`),tooltipIconType:`info`}),o===!0&&(0,W.jsx)(Jo,{onClick:x,title:v(`header.documentation`),tooltipIconType:d?`dark-mode`:`light-mode`}),!_&&(0,W.jsx)(W.Fragment,{children:t?(0,W.jsx)(Ko,{anchorEl:p,isMenuOpen:h,onLoggedInMenu:te,onLoggedInMenuClose:y,onLogout:s,username:t}):(0,W.jsx)(T,{color:`inherit`,"data-testid":`header--button-login`,onClick:b,children:v(`button.login`)})})]})},Xo=n(ie)(({theme:e})=>({backgroundColor:e.palette.grey[600],opacity:`0.9`,color:e.palette.error.contrastText,fontWeight:`bold`})),Zo=n(ie)(({theme:e})=>({cursor:`pointer`,":hover":{backgroundColor:e.palette.greyGainsboro}})),Qo=({translation:e,icon:t})=>(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(l,{children:(0,W.jsx)(I,{display:`block`,gutterBottom:!0,variant:`caption`,children:e})}),(0,W.jsx)(l,{children:t})]}),$o=()=>{let{language:e,setLanguage:t,listLanguages:n}=yn(),r=n.reduce((e,t)=>(e[t.lng]={translation:t.menuKey,icon:t.icon},e),{}),[i]=(0,U.useState)(Object.keys(Se.options?.resources||{})),{t:a}=O(),o=e,s=(0,U.useCallback)(e=>{let t=r[e]||r[`en-US`];return{icon:(0,W.jsx)(t.icon,{}),translation:a(t.translation)}},[r,a]),c=(0,U.useCallback)(e=>{t(e)},[t]);return(0,W.jsx)(`div`,{children:(0,W.jsx)(S,{columns:{xs:12,sm:12,md:12},container:!0,spacing:{xs:1,md:1},children:i.map((e,t)=>{let{icon:n,translation:r}=s(e);return(0,W.jsx)(S,{size:{sm:2,xs:6},children:e===o?(0,W.jsx)(Xo,{sx:{maxWidth:80},children:(0,W.jsx)(Qo,{icon:n,translation:r})}):(0,W.jsx)(Zo,{onClick:()=>c(e),children:(0,W.jsx)(Qo,{icon:n,translation:r})})},t)})})})},es=n(`div`)(({theme:e})=>({paddingBottom:`10px`,backgroundColor:e.palette.background.default})),ts=n(`div`)(()=>({fontSize:`1rem`,fontStyle:`italic`})),Z={npm:`npm`,yarn:`yarn`,pnpm:`pnpm`},ns=(e,t)=>(0,W.jsxs)(A,{display:`flex`,flexDirection:`column`,children:[(0,W.jsx)(G,{dataTestId:`copy`,text:an(`${Z.npm} set`,e,t)}),(0,W.jsx)(G,{dataTestId:`copy`,text:Zt(`${Z.npm} adduser`,t)}),(0,W.jsx)(G,{dataTestId:`copy`,text:Xt(Z.npm,t)})]}),rs=(e,t)=>(0,W.jsxs)(A,{display:`flex`,flexDirection:`column`,children:[(0,W.jsx)(G,{dataTestId:`copy`,text:an(`${Z.pnpm} set`,e,t)}),(0,W.jsx)(G,{dataTestId:`copy`,text:Zt(`${Z.pnpm} adduser`,t)}),(0,W.jsx)(G,{dataTestId:`copy`,text:Xt(Z.pnpm,t)})]}),is=(e,t)=>(0,W.jsx)(A,{display:`flex`,flexDirection:`column`,children:(0,W.jsx)(G,{dataTestId:`copy`,text:an(`${Z.yarn} config set`,e,t)})}),as=(e,t)=>(0,W.jsx)(A,{display:`flex`,flexDirection:`column`,children:(0,W.jsx)(G,{dataTestId:`copy`,text:nn(e,t)})}),os=n(`div`)({padding:0,paddingLeft:0,paddingRight:0}),ss=n(`div`)({padding:5}),cs=n(`div`)({margin:10,marginLeft:0}),ls=({scope:e,registryUrl:t})=>{let{t:n}=O(),{configOptions:r}=B(),i=r?.pkgManagers?.includes(`npm`),a=r?.pkgManagers?.includes(`yarn`),o=r?.pkgManagers?.includes(`pnpm`);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(es,{children:n(`packageManagers.description`)}),(0,W.jsxs)(os,{children:[(0,W.jsxs)(Te,{disabled:!i,children:[(0,W.jsx)(He,{"aria-controls":`panel1a-content`,expandIcon:(0,W.jsx)(Re,{}),id:`panel1a-header`,children:(0,W.jsx)(I,{sx:{fontSize:`1rem`,fontWeight:`bold`},children:`npm`})}),(0,W.jsx)(Je,{children:(0,W.jsx)(ss,{"data-testid":`tab-content`,children:ns(e,t)})})]}),(0,W.jsxs)(Te,{disabled:!a,children:[(0,W.jsx)(He,{"aria-controls":`panel2a-content`,expandIcon:(0,W.jsx)(Re,{}),id:`panel2a-header`,children:(0,W.jsx)(I,{sx:{fontSize:`1rem`,fontWeight:`bold`},children:`yarn`})}),(0,W.jsxs)(Je,{children:[(0,W.jsx)(ts,{children:(0,W.jsx)(y,{children:n(`packageManagers.yarnclassicDetails`)})}),(0,W.jsx)(ss,{"data-testid":`tab-content`,children:is(e,t)}),(0,W.jsx)(ts,{children:(0,W.jsx)(y,{children:n(`packageManagers.yarnBerryDetails`)})}),(0,W.jsx)(ss,{"data-testid":`tab-content`,children:as(e,t)})]})]}),(0,W.jsxs)(Te,{disabled:!o,children:[(0,W.jsx)(He,{"aria-controls":`panel3a-content`,expandIcon:(0,W.jsx)(Re,{}),id:`panel3a-header`,children:(0,W.jsx)(I,{sx:{fontSize:`1rem`,fontWeight:`bold`},children:`pnpm`})}),(0,W.jsx)(Je,{children:(0,W.jsx)(ss,{"data-testid":`tab-content`,children:rs(e,t)})})]}),(0,W.jsx)(cs,{children:(0,W.jsx)(P,{href:`https://verdaccio.org/docs/cli-registry`,target:`_blank`,children:(0,W.jsx)(I,{children:n(`header.registry-info-link`)})})})]})]})};function us(e){return{id:`simple-tab-${e}`,"aria-controls":`simple-tabpanel-${e}`}}function ds(e){let{children:t,value:n,index:r,...i}=e;return(0,W.jsx)(`div`,{"aria-labelledby":`simple-tab-${r}`,hidden:n!==r,id:`simple-tabpanel-${r}`,role:`tabpanel`,...i,children:n===r&&(0,W.jsx)(A,{sx:{paddingTop:3},children:t})})}var fs=n(`div`)(({theme:e})=>({padding:`10px 0`,backgroundColor:e.palette.background.default})),ps=({onCloseDialog:e,isOpen:t})=>{let[n,r]=U.useState(0),i=(e,t)=>{r(t)},{scope:a,base:o}=V(),{t:s}=O();return(0,W.jsx)(Ta,{onClose:e,open:t,title:s(`dialog.settings.title`),children:(0,W.jsxs)(A,{sx:{width:`100%`},children:[(0,W.jsx)(A,{sx:{borderBottom:1,borderColor:`divider`},children:(0,W.jsxs)(Ne,{"aria-label":`basic tabs example`,onChange:i,value:n,children:[(0,W.jsx)(h,{label:s(`packageManagers.title`),...us(0)}),(0,W.jsx)(h,{label:s(`language.title`),...us(1)})]})}),(0,W.jsx)(ds,{index:0,value:n,children:(0,W.jsx)(ls,{registryUrl:o,scope:a})}),(0,W.jsxs)(ds,{index:1,value:n,children:[(0,W.jsx)(fs,{children:s(`language.description`)}),(0,W.jsx)($o,{}),(0,W.jsx)(y,{children:s(`language.contribute`)})]})]})})},ms=({HeaderInfoDialog:e,isPlainHeader:t,tokenCheckIntervalMs:n=3600*1e3})=>{let{t:r}=O(),[i,a]=(0,U.useState)(!1),[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(!1),[u,d]=(0,U.useState)(!1),{configOptions:f}=B(),{userState:p,logOutUser:m}=kn(),h=(0,U.useRef)(p?.token);(0,U.useEffect)(()=>{h.current=p?.token},[p?.token]),(0,U.useEffect)(()=>{function e(){let e=h.current;e&&on(e)&&m?.()}e();let t=setInterval(e,n);return()=>clearInterval(t)},[n]);let g=()=>{m?.(),d(!1)};return t?(0,W.jsx)(Uo,{"data-testid":`header`,position:`static`,children:(0,W.jsxs)(Po,{"data-testid":`inner-nav-bar`,children:[(0,W.jsx)(Wo,{showSearch:!1}),(0,W.jsx)(Yo,{hasLogin:!1,onLogout:()=>{},onOpenRegistryInfoDialog:()=>{},onOpenSettingsDialog:()=>{},onToggleLogin:()=>{},onToggleMobileNav:()=>{},showInfo:!1,showSearch:!1,showSettings:!1,showThemeSwitch:!1,username:``})]})}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(Uo,{"data-testid":`header`,position:`static`,children:[(0,W.jsxs)(Po,{"data-testid":`inner-nav-bar`,children:[(0,W.jsx)(Wo,{showSearch:f.showSearch}),(0,W.jsx)(Yo,{hasLogin:f?.login,onLogout:g,onOpenRegistryInfoDialog:()=>a(!0),onOpenSettingsDialog:()=>s(!0),onToggleLogin:()=>d(!u),onToggleMobileNav:()=>l(!c),showInfo:f.showInfo,showSearch:f.showSearch,showSettings:f.showSettings,showThemeSwitch:f.showThemeSwitch,username:p?.username})]}),(0,W.jsx)(ps,{isOpen:o,onCloseDialog:()=>s(!1)}),e?(0,W.jsx)(e,{dialogTitle:r(`dialog.registry-info.title`),isOpen:i,onCloseDialog:()=>a(!1)}):null]}),c&&(0,W.jsxs)(Io,{"data-testid":`mobile-nav-bar`,children:[(0,W.jsx)(Lo,{children:(0,W.jsx)(Sa,{})}),(0,W.jsx)(T,{color:`inherit`,onClick:()=>l(!1),children:r(`button.cancel`)})]}),!p?.username&&(0,W.jsx)(sa,{onClose:()=>d(!1),open:u})]})},hs=()=>{let e=Cn();return e.isError?(0,W.jsx)(`div`,{children:`Error loading manifests`}):(0,W.jsxs)(`div`,{className:`container content`,"data-testid":`home-page-container`,children:[e.isLoading?(0,W.jsx)(Pa,{}):(0,W.jsx)(oo,{packages:e.manifests}),e.isError&&(0,W.jsx)(`div`,{children:`Error loading manifests`})]})},gs=n(`div`)(({theme:e})=>({background:e.palette.mode===`light`?e.palette.snow:e.palette.cyanBlue,borderTop:`1px solid ${e.palette.greyGainsboro}`,color:e.palette.mode===`dark`?D.white:e.palette.nobel01,fontSize:`14px`,padding:`20px`})),_s=n(`div`)(({theme:e})=>({display:`flex`,alignItems:`center`,justifyContent:`flex-end`,paddingLeft:16,paddingRight:16,width:`100%`,[`@media (min-width: ${e.breakPoints.medium}px)`]:{minWidth:400,maxWidth:800,margin:`auto`,justifyContent:`space-between`},[`@media (min-width: ${e.breakPoints.large}px)`]:{maxWidth:1240}})),vs=n(`div`)(({theme:e})=>({alignItems:`center`,display:`none`,[`@media (min-width: ${e.breakPoints.medium}px)`]:{display:`flex`},marginLeft:1})),ys=n(vs)({display:`flex`,marginRight:1}),bs=n(`span`)(({theme:e})=>({color:e.palette.love,padding:`0 5px`}));function xs(){window.open(`https://verdaccio.org`,`_blank`)}var Ss=()=>{let{t:e}=O(),{configOptions:t}=B();return(0,W.jsx)(gs,{"data-testid":`footer`,children:(0,W.jsxs)(_s,{children:[(0,W.jsxs)(vs,{children:[(0,W.jsx)(Ut,{components:[(0,W.jsx)(bs,{},`love`)],i18nKey:`footer.made-with-love-on`}),(0,W.jsxs)(Es,{children:[(0,W.jsx)(ws,{}),(0,W.jsxs)(Ts,{"data-flags":`true`,children:[(0,W.jsx)(Q,{children:(0,W.jsx)(s,{title:e(`flag.spain`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(ne,{title:e(`flag.nicaragua`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(Ie,{title:e(`flag.india`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(ae,{title:e(`flag.brazil`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(Ee,{title:e(`flag.china`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(v,{title:e(`flag.australia`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(qt,{title:e(`flag.germany`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(Pe,{title:e(`flag.taiwan`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(xe,{title:e(`flag.austria`)})}),(0,W.jsx)(Q,{children:(0,W.jsx)(fe,{title:e(`flag.canada`)})})]})]})]}),(0,W.jsx)(ys,{children:t?.version&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Cs,{"data-testid":`version-footer`,children:e(`footer.powered-by`)}),(0,W.jsx)(Oi,{isDefault:!0,onClick:xs,size:`x-small`,title:t.version})]})})]})})},Cs=n(`span`)(()=>({paddingRight:`5px`})),ws=n(hr)(({theme:e})=>({margin:e.spacing(0,1)})),Ts=n(`span`)(({theme:e})=>({display:`inline-grid`,gridTemplateColumns:`repeat(10, max-content)`,gridGap:e.spacing(0,1),position:`absolute`,background:e.palette.greyAthens,padding:`1px 4px`,borderRadius:3,height:20,alignItems:`center`,visibility:`hidden`,top:-2,":before":{content:`''`,position:`absolute`,top:`29%`,left:-4,marginLeft:-5,border:`5px solid`,borderColor:`${e.palette.greyAthens} transparent transparent transparent`,transform:`rotate(90deg)`}})),Q=n(`div`)({width:`10px`}),Es=n(`span`)({position:`relative`,height:`18px`,":hover":{'& [data-flags="true"]':{visibility:`visible`}}}),Ds=b(A)({display:`flex`,flexDirection:`column`,minHeight:`100vh`,maxWidth:`500px`,margin:`0 auto`}),Os=b(A)({flex:1,marginTop:`100px`}),ks=({children:e})=>(0,W.jsx)(Ds,{children:(0,W.jsx)(Os,{children:e})}),As=b(A)(({theme:e})=>({display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,minHeight:`100%`,padding:e.spacing(2),backgroundColor:e.palette.background.default})),js=b(A)(({theme:e})=>({width:`100%`,maxWidth:420,padding:e.spacing(4),backgroundColor:e.palette.background.paper,borderRadius:e.shape.borderRadius,boxShadow:e.shadows[3]})),Ms=b(Vt)(({theme:e})=>({width:`100%`,marginTop:e.spacing(1),marginBottom:e.spacing(1)})),Ns=function(e){return e.Login=`Login`,e.ChangePassword=`ChangePassword`,e.AddUser=`AddUser`,e.Success=`Success`,e}({}),Ps=()=>{let{t:e}=O(),t=Dt(),n=new URLSearchParams(t.search).get(`messageType`),r=e(n?`security.success.message${n}`:`security.success.messageSuccess`);return(0,W.jsx)(ks,{children:(0,W.jsx)(As,{children:(0,W.jsxs)(js,{children:[(0,W.jsx)(_e,{color:`success`}),(0,W.jsx)(I,{component:`h1`,gutterBottom:!0,variant:`h4`,children:e(`security.success.title`)}),(0,W.jsx)(I,{color:`text.secondary`,paragraph:!0,variant:`body1`,children:r}),(0,W.jsx)(T,{color:`primary`,onClick:()=>{window.location.href=`/`},sx:{mt:2},variant:`contained`,children:e(`security.success.submit`)})]})})})};he();function Fs(e){let t=new URLSearchParams(e.search),n=t.get(`next`)||``;n.length>0&&(!n.startsWith(R.LOGIN_API)||!n.match(/\/[-0-9a-f]{36}$/))&&(n=``);let r=t.get(`user`)||``;return r.length>0&&!r.match(/^[a-zA-Z0-9-_]{1,255}$/)&&(r=``),{next:n,user:r}}var Is=V(),Ls=hn(Is.base),Rs=()=>{let{t:e}=O(),t=Dt(),n=N(),{next:r}=Fs(t),i=Is?.flags?.createUser,a=R.ADD_USER+(r?`?next=`+r:``),{data:o,isMutating:s,trigger:c}=vn(Ls,r,`POST`),{setError:l,handleSubmit:u,register:d,formState:{isValid:f,errors:p}}=Qe({mode:`onChange`,resolver:ft(na)}),m=async e=>{try{await c(e)}catch(e){throw _n(e)}},h=(0,U.useCallback)(()=>{n(`${R.SUCCESS}?messageType=${Ns.Login}`)},[n]),g=(0,U.useCallback)(async e=>{try{await m?.(e),h()}catch{l(`root`,{type:`server`,message:`Invalid username or password`})}},[m,l,h]);return(0,U.useEffect)(()=>{o&&!s&&o.username&&o.token&&dn(o.username,o.token)},[o,s]),r?(0,W.jsx)(ks,{children:(0,W.jsx)(As,{children:(0,W.jsxs)(js,{children:[(0,W.jsx)(zi,{}),(0,W.jsx)($i,{errors:p,handleSubmit:u,isValid:f,onSubmit:g,register:d}),i&&(0,W.jsxs)(I,{align:`center`,sx:{mt:2,fontSize:12},variant:`body2`,children:[e(`security.login.noUserQuestion`),(0,W.jsx)(P,{href:a,sx:{ml:1},children:e(`security.login.createUser`)})]})]})})}):(0,W.jsx)(Ni,{})},zs=()=>{let{t:e}=O(),t=Dt(),n=N(),r=V(),i=hn(r.base),{next:a,user:o}=Fs(t),s=R.LOGIN+(a?`?next=${encodeURIComponent(a)}`:``),c=r?.flags?.createUser,{setError:l,handleSubmit:u,register:d,watch:f,formState:{isValid:p,errors:m}}=Qe({mode:`onChange`,defaultValues:{username:typeof o==`string`?o:``,password:``,email:``},resolver:ft(ra)}),h=f(`username`),{trigger:g}=vn(i,`${R.ADD_USER}:${encodeURIComponent(h)}`,`PUT`),_=(0,U.useCallback)(async e=>{try{await g(e)}catch(e){throw _n(e)}},[g]),ee=(0,U.useCallback)(async e=>{try{await _({name:e.username,password:e.password,email:e.email}),n(`${R.SUCCESS}?messageType=${Ns.AddUser}`)}catch{l(`root`,{type:`server`,message:`Failed to create user`})}},[_,l,n]);return(0,U.useEffect)(()=>{c||n(`/`)},[c,n]),c?(0,W.jsx)(ks,{children:(0,W.jsx)(As,{children:(0,W.jsxs)(js,{component:`form`,onSubmit:u(ee),children:[(0,W.jsx)(I,{align:`center`,component:`h1`,gutterBottom:!0,variant:`h4`,children:e(`security.addUser.title`)}),(0,W.jsx)(Xi,{errors:m,register:d}),(0,W.jsx)(Ji,{errors:m,register:d}),(0,W.jsx)(Ms,{label:e(`security.addUser.email`),type:`email`,...d(`email`)}),(0,W.jsx)(I,{color:`text.secondary`,paragraph:!0,sx:{fontSize:12},variant:`body2`,children:e(`security.addUser.emailDescription`)}),m.root&&(0,W.jsx)(Ki,{error:m.root}),(0,W.jsx)(T,{color:`primary`,disabled:!p,fullWidth:!0,sx:{mt:2},type:`submit`,variant:`contained`,children:e(`security.addUser.submit`)}),(0,W.jsxs)(I,{align:`center`,sx:{mt:2,fontSize:12},variant:`body2`,children:[e(`security.addUser.alreadyUserQuestion`),(0,W.jsx)(P,{href:s,sx:{ml:1},children:e(`security.addUser.login`)})]})]})})}):null},Bs=()=>{let{t:e}=O(),t=N(),n=V(),r=hn(n.base),i=n?.flags?.changePassword,{setError:a,handleSubmit:o,register:s,formState:{isValid:c,errors:l}}=Qe({mode:`onChange`,defaultValues:{username:``,oldPassword:``,newPassword:``,confirmPassword:``},resolver:ft(ia)}),{trigger:u}=vn(r,tn.RESET_PASSWORD,`PUT`),d=(0,U.useCallback)(async e=>{try{await u(e)}catch(e){throw _n(e)}},[u]),f=(0,U.useCallback)(async e=>{try{await d({password:{old:e.oldPassword,new:e.newPassword}}),t(`${R.SUCCESS}?messageType=${Ns.ChangePassword}`)}catch{a(`root`,{type:`server`,message:`Failed to change password`})}},[d,a,t]);return(0,U.useEffect)(()=>{i||t(`/`)},[i,t]),i?(0,W.jsx)(ks,{children:(0,W.jsx)(As,{children:(0,W.jsxs)(js,{component:`form`,onSubmit:o(f),children:[(0,W.jsx)(I,{align:`center`,component:`h1`,gutterBottom:!0,variant:`h4`,children:e(`security.changePassword.title`)}),(0,W.jsx)(Ms,{error:!!l.username,helperText:l.username?.message,label:e(`security.changePassword.username`),...s(`username`),required:!0}),(0,W.jsx)(Ms,{error:!!l.oldPassword,helperText:l.oldPassword?.message,label:e(`security.changePassword.oldPassword`),...s(`oldPassword`),required:!0,type:`password`}),(0,W.jsx)(Ms,{error:!!l.newPassword,helperText:l.newPassword?.message,label:e(`security.changePassword.newPassword`),...s(`newPassword`),required:!0,type:`password`}),(0,W.jsx)(Ms,{error:!!l.confirmPassword,helperText:l.confirmPassword?.message,label:e(`security.changePassword.confirmPassword`),...s(`confirmPassword`),required:!0,type:`password`}),l.root&&(0,W.jsx)(Ki,{error:l.root}),(0,W.jsx)(T,{color:`primary`,disabled:!c,fullWidth:!0,sx:{mt:2},type:`submit`,variant:`contained`,children:e(`security.changePassword.submit`)})]})})}):null},Vs=hs,Hs=()=>(0,W.jsxs)(S,{className:`container content`,container:!0,"data-testid":`version-layout`,spacing:0,children:[(0,W.jsx)(S,{size:{md:8,xs:12},children:(0,W.jsx)(No,{})}),(0,W.jsx)(S,{size:{md:4,xs:12},children:(0,W.jsx)(Co,{})})]}),Us=()=>{let{hasNotBeenFound:e,isForbidden:t,isUnAuthorized:n,isLoading:r}=jn();return r?(0,W.jsx)(Pa,{}):n||t?(0,W.jsx)(Ri,{}):e?(0,W.jsx)(Ni,{}):(0,W.jsx)(Hs,{})},Ws=Rs,Gs=Ps,Ks=zs,qs=Bs,Js=({children:e})=>(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ue,{styles:e=>({"html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video":{fontFamily:`"Roboto", Helvetica Neue, Arial, sans-serif`},strong:{fontWeight:e.fontWeight.semiBold},"html, body, #root":{height:`100%`},ul:{margin:0,padding:0,listStyle:`none`},".container":{paddingTop:15,paddingBottom:15,flex:1,height:`100%`,[`@media screen and (min-width: ${e.breakPoints.container}px)`]:{maxWidth:e.breakPoints.container,width:`100%`,marginLeft:`auto`,marginRight:`auto`}}})}),e]}),Ys=()=>(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Jt,{}),(0,W.jsx)(Js,{})]}),Xs=JSON.parse(`[{"username":"juanpicado","id":558752},{"username":"rlidwka","id":999113},{"username":"sergiohgz","id":14012309},{"username":"mbtools","id":59966492},{"username":"ayusharma","id":6918450},{"username":"priscilawebdev","id":29228205},{"username":"griffithtp","id":20119184},{"username":"DanielRuf","id":827205},{"username":"030","id":7524528},{"username":"dianmorales","id":558740},{"username":"anikethsaha","id":26347874},{"username":"kgrubb","id":8471701},{"username":"tmkn","id":2671613},{"username":"jamesgeorge007","id":25279263},{"username":"trentearl","id":802857},{"username":"rblaine95","id":4052340},{"username":"jmwilkinson","id":17836030},{"username":"coolsp","id":1246647},{"username":"antoinechalifour","id":6087868},{"username":"lgaitan","id":5970350},{"username":"Meeeeow","id":90692458},{"username":"ashishsurana","id":5610944},{"username":"dlouzan","id":223870},{"username":"mlucool","id":1813603},{"username":"ryan-codingintrigue","id":9048902},{"username":"ramonornela","id":187946},{"username":"UnitedMarsupials-zz","id":1486340},{"username":"jinliming2","id":10294977},{"username":"marconipoveda","id":47533},{"username":"buffaybu","id":2025661},{"username":"lirantal","id":316371},{"username":"n4bb12","id":6810177},{"username":"honzahommer","id":2045468},{"username":"NBloemendal","id":21055136},{"username":"Eomm","id":11404065},{"username":"davidgaya","id":85780},{"username":"dunxen","id":3072149},{"username":"vip30","id":4260833},{"username":"kuoruan","id":8685618},{"username":"bufferoverflow","id":378909},{"username":"jachstet-sea","id":7993508},{"username":"gweesin","id":42909374},{"username":"dnafication","id":6381587},{"username":"leometzger","id":15220162},{"username":"zkochan","id":1927579},{"username":"KukuruzaAndrii","id":16447219},{"username":"clintonsteiner","id":47841949},{"username":"markpeterfejes","id":7912231},{"username":"jharris4","id":7042043},{"username":"Utwo","id":282668},{"username":"CrispyConductor","id":2132722},{"username":"BartDubois","id":1180931},{"username":"SnirBroshi","id":26556598},{"username":"semoal","id":22656541},{"username":"greshilov","id":814614},{"username":"Jason-Cooke","id":5185660},{"username":"kai-chu","id":13230499},{"username":"rwdalpe","id":824357},{"username":"aboks","id":815524},{"username":"dickp","id":318648},{"username":"fossabot","id":29791463},{"username":"VentyCZ","id":3247664},{"username":"ant1m4tt3r","id":23644433},{"username":"alfonsoar","id":22054505},{"username":"kav","id":216737},{"username":"osher","id":803101},{"username":"wiggisser","id":3647678},{"username":"Tobbe","id":30793},{"username":"rluvaton","id":16746759},{"username":"rmkanda","id":38713281},{"username":"brenordr","id":19731692},{"username":"karfau","id":135657},{"username":"gkalpak","id":8604205},{"username":"kfatehi","id":175305},{"username":"frimuchkov","id":19934346},{"username":"ddhp","id":1715380},{"username":"omerdrukman","id":15276624},{"username":"alexjurkiewicz","id":379509},{"username":"favoyang","id":125390},{"username":"jamiebuilds","id":952783},{"username":"Dharmender-Singh","id":12389415},{"username":"vineetmadan","id":12544662},{"username":"sixth","id":11591445},{"username":"Ivasan7","id":39991502},{"username":"bighuggies","id":597021},{"username":"jhonmike","id":2499937},{"username":"somethingSTRANGE","id":6905832},{"username":"plitex","id":2946823},{"username":"naveensrinivasan","id":172697},{"username":"nphyatt","id":6487450},{"username":"mysiar","id":13708162},{"username":"innosatyam","id":85342175},{"username":"Marin-Kitagawa","id":49131888},{"username":"varijkapil13","id":8291077},{"username":"Jinshichi","id":8655722},{"username":"amitgilad3","id":7702311},{"username":"polemius","id":48512663},{"username":"0neSe7en","id":2234539},{"username":"danielo515","id":2270425},{"username":"SheetJSDev","id":6070939},{"username":"okv","id":465522},{"username":"s-h-a-d-o-w","id":16936908},{"username":"alan-agius4","id":17563226},{"username":"awshanks","id":18176417},{"username":"imsnif","id":795598},{"username":"brennorris","id":108427046},{"username":"carloslfu","id":5993168},{"username":"drubin","id":237513},{"username":"denisbabineau","id":12616025},{"username":"idangozlan","id":1991021},{"username":"guitarrapc","id":3856350},{"username":"monkeywithacupcake","id":7316730},{"username":"josephg","id":47413},{"username":"marnel","id":3189424},{"username":"kba","id":273367},{"username":"aledbf","id":161571},{"username":"MasterOdin","id":1845314},{"username":"Shreynik","id":25787910},{"username":"hydra13","id":12191825},{"username":"millerick","id":26394493},{"username":"mknj","id":4385662},{"username":"willsmythe","id":2503052},{"username":"bl-ue","id":54780737},{"username":"danez","id":231804},{"username":"MichielDeMey","id":793406},{"username":"weyert","id":7049},{"username":"buschtoens","id":834636},{"username":"Slowki","id":5911086},{"username":"juanmanual","id":8243576},{"username":"juangabreil","id":2673705},{"username":"jbtbnl","id":639688},{"username":"serratedserenade","id":5120805},{"username":"dfrencham","id":198807},{"username":"hangxingliu","id":4303130},{"username":"paulbrimicombe","id":10939697},{"username":"barrywoolgar","id":6248009},{"username":"AvailCat","id":19658647},{"username":"pranaygon","id":28007499},{"username":"mrlannigan","id":730443},{"username":"alessiodionisi","id":1165381},{"username":"kopax","id":1866564},{"username":"hdmr14","id":58992133},{"username":"jfthuong","id":1401809},{"username":"dogrod","id":21096842},{"username":"pshanoop","id":1174257},{"username":"todpunk","id":1166358},{"username":"h3rmanj","id":11387548},{"username":"Skn0tt","id":14912729},{"username":"starizard","id":4953349},{"username":"saurabh-gohil","id":7500357},{"username":"saintmalik","id":37118134},{"username":"rmg","id":17978},{"username":"rouanw","id":2362668},{"username":"rostislav-simonik","id":25525736},{"username":"fhp","id":374671},{"username":"stephanebachelier","id":172615},{"username":"swapnilmmane","id":7145848},{"username":"TLDMain","id":119927819},{"username":"tarun1793","id":1783440},{"username":"teofanis","id":47872542},{"username":"tcort","id":216720},{"username":"thomir","id":372783},{"username":"datWeazel","id":3285115},{"username":"Tiny-Fendy","id":8954107},{"username":"bwalding","id":47446},{"username":"morlay","id":1667873},{"username":"morrain","id":9381634},{"username":"oltodo","id":483842},{"username":"nprail","id":10778661},{"username":"noamkush","id":7412829},{"username":"ndelangen","id":3070389},{"username":"omaskery","id":121959},{"username":"OmriBarZik","id":16163470},{"username":"oscard0m","id":2574275},{"username":"oussamafilani","id":42185573},{"username":"patrickdevivo","id":57259},{"username":"Vrtak-CZ","id":112567},{"username":"devversion","id":4987015},{"username":"paulorenanmelo","id":5646288},{"username":"rafacesar","id":71136},{"username":"rbpinheiro","id":1257483},{"username":"r3wald","id":190202},{"username":"prssn","id":951218},{"username":"Beanow","id":497556},{"username":"RodrigoBalest","id":4810463},{"username":"tomcoonen","id":988013},{"username":"iketiunn","id":10249208},{"username":"jeremy-albuixech","id":6742170},{"username":"jjaakola","id":3587824},{"username":"jjangga0214","id":28584151},{"username":"legobeat","id":109787230},{"username":"maxlaverse","id":3045354},{"username":"oeph","id":2753218},{"username":"okyanusoz","id":46757266},{"username":"omasakun","id":21339163},{"username":"profanis","id":7045092},{"username":"robi-wan","id":30210},{"username":"ryanvanoss","id":137956},{"username":"samuelmaier","id":35006454},{"username":"silverwind","id":115237},{"username":"toolsofraj","id":2507152},{"username":"tzachshabtay","id":1819001},{"username":"undefined-moe","id":29992205},{"username":"vegawong","id":17271745},{"username":"wandertaker","id":23746861},{"username":"wellingguzman","id":1531291},{"username":"hiwanz","id":338102},{"username":"melodyVoid","id":26846212},{"username":"grrowl","id":907140},{"username":"tlvince","id":323761},{"username":"patrinos","id":2036180},{"username":"TJBlackman","id":18412429},{"username":"trivikr","id":16024985},{"username":"varungandhi-src","id":93103176},{"username":"vdakalov","id":1996423},{"username":"stek29","id":11808223},{"username":"vsugrob","id":1497471},{"username":"vitalybaev","id":724423},{"username":"lordvlad","id":1217769},{"username":"wporta","id":932674},{"username":"wpasternak","id":958449},{"username":"xavierpriour","id":2295912},{"username":"yannickcr","id":13209},{"username":"yassine-klilich","id":24640070},{"username":"yogevyuval","id":962869},{"username":"haquezameer","id":20766601},{"username":"ambar","id":105919},{"username":"silkentrance","id":6068824},{"username":"Claude-Ray","id":19264508},{"username":"darkgl0w","id":31093081},{"username":"dasmikko","id":4254869},{"username":"divdavem","id":1152706},{"username":"bchenSyd","id":8207081},{"username":"iambrandonn","id":1644549},{"username":"bmuenzenmeyer","id":298435},{"username":"recallwei","id":62941121},{"username":"cascandaliato","id":8927157},{"username":"ngash","id":6511656},{"username":"moglerdev","id":39583780},{"username":"christopherklint97","id":53100317},{"username":"cdtinney","id":3266047},{"username":"CommanderRoot","id":4395417},{"username":"conorhastings","id":8263298},{"username":"Copilot","id":198982749},{"username":"coreyjewett","id":12782},{"username":"DAmarkday","id":41852530},{"username":"devnill","id":717064},{"username":"spangenberg","id":236406},{"username":"dbroadhurst","id":5667105},{"username":"deg","id":90383},{"username":"dschaller","id":1004789},{"username":"dafanasiev","id":5094703},{"username":"jchilton","id":181054},{"username":"hedocode","id":22884999},{"username":"itsabdelrahman","id":11808903},{"username":"adamko147","id":6449059},{"username":"aszmyd","id":3050805},{"username":"MathurAditya724","id":57684218},{"username":"dxwebster","id":61834475},{"username":"A1bi","id":962845},{"username":"sashashura","id":93376818},{"username":"alex-dixon","id":9045165},{"username":"estliberitas","id":568962},{"username":"aremishevsky-chegg","id":34542986},{"username":"Alexandre-io","id":8135542},{"username":"AlphaDio","id":1067597},{"username":"amirmohsen","id":7075106},{"username":"zensharp","id":48300131},{"username":"tiandrey","id":152357},{"username":"andrii-bodnar","id":29282228},{"username":"hafffe","id":3322693},{"username":"artifishvr","id":59352535},{"username":"sethidden","id":5359825},{"username":"4SS1S","id":7684575},{"username":"BarthV","id":1901955},{"username":"byara","id":6979966},{"username":"btucker","id":6181},{"username":"jondlm","id":3290587},{"username":"Joon","id":94231},{"username":"Mearman","id":1331872},{"username":"patroclos","id":5959583},{"username":"josedepaz","id":93216209},{"username":"GromNaN","id":400034},{"username":"speier","id":415836},{"username":"FodderMK","id":1096012},{"username":"kodypeterson","id":1934708},{"username":"Ku3mi41","id":1100530},{"username":"larsgw","id":14018963},{"username":"LekoArts","id":16143594},{"username":"caoxiemeihao","id":26263658},{"username":"mavimo","id":43941},{"username":"markormesher","id":6496999},{"username":"marvinthepa","id":51218},{"username":"mrblackus","id":2353980},{"username":"mshindal","id":3990260},{"username":"metaa","id":87772017},{"username":"0815fox","id":8955528},{"username":"ericmutta","id":20465797},{"username":"einfallstoll","id":619048},{"username":"felipeplets","id":119980},{"username":"falegh","id":49175237},{"username":"gramakri","id":82041},{"username":"lbguilherme","id":546954},{"username":"guikcd","id":676032},{"username":"gecruz","id":29457476},{"username":"iztsv","id":3539802},{"username":"inyong37","id":20737479},{"username":"ItamarGronich","id":14963977},{"username":"jrussellsmyth","id":2998207},{"username":"jirutka","id":949228},{"username":"kingjan1999","id":3208269},{"username":"vStone","id":356719},{"username":"jlguenego","id":2842446},{"username":"zaventh","id":669283},{"username":"jeremymoritz","id":2779583},{"username":"johanneslosch","id":15651065},{"username":"johannespfeiffer","id":6780316},{"username":"notsag","id":674589},{"username":"askz","id":854038},{"username":"bgmncwj","id":10156310},{"username":"citypaul","id":5850178},{"username":"Locour","id":18704970},{"username":"jeredepp","id":5755315},{"username":"Kaifuny","id":16386583},{"username":"terribleplan","id":4420655},{"username":"ajaygupta4F7X1B","id":188564162},{"username":"slicejunk","id":5887100},{"username":"fiws","id":3409958},{"username":"redi-wadash","id":11162172},{"username":"michaellotz-iart","id":64487748},{"username":"Splaktar","id":3506071},{"username":"shrirambalaji","id":11358903},{"username":"nszilard","id":10596547},{"username":"dreamline2","id":4657845},{"username":"abc516","id":8355075},{"username":"g3hxqe-contrib","id":60308087},{"username":"satyamkondle","id":11826045},{"username":"bartsidee","id":521633},{"username":"dgaya","id":10657038},{"username":"MrCube42","id":1512210},{"username":"kongdewen","id":10659566},{"username":"donbowman","id":5131923},{"username":"eromano","id":1030050},{"username":"hersentino","id":26276665},{"username":"viceice","id":1798109},{"username":"marcel-camp","id":190417169},{"username":"Disane87","id":956158},{"username":"martin31821","id":5557633},{"username":"MatthewWid","id":7445205},{"username":"MParvin","id":7812338},{"username":"MiK546","id":6929336},{"username":"owenvoke","id":1899334},{"username":"pmorgan3","id":11764711},{"username":"troyanskiy","id":1538862},{"username":"ygaberman","id":57370779},{"username":"mrwacky42","id":355590},{"username":"TomGrill","id":9935213},{"username":"twaldecker","id":277003},{"username":"Fer0x","id":110616},{"username":"yoannfleurydev","id":3920615},{"username":"zypA13510","id":8077540},{"username":"javier-garcia-meteologica","id":61506396},{"username":"samuelpecher","id":25039919},{"username":"rchaser53","id":9676954},{"username":"reviewher","id":24845478},{"username":"abdielou","id":1036734},{"username":"AceVentura","id":3084589},{"username":"acj","id":27923},{"username":"akanshgulati","id":5287100},{"username":"xkcdstickfigure","id":97917457},{"username":"asifwani","id":70949803},{"username":"benharold","id":997712},{"username":"deisterhold","id":2267691},{"username":"dariodotcom","id":1570989},{"username":"douglaseggleton","id":1008377},{"username":"draganjakovljevic","id":20555765},{"username":"yurtaev","id":444503},{"username":"friederbluemle","id":743291},{"username":"hertzg","id":1886698},{"username":"edenhermelin","id":10133343},{"username":"Kylir","id":1781461},{"username":"JayaKrishnaNamburu","id":11075561},{"username":"johanhelsing-attensi","id":80466796},{"username":"Metrakit","id":3305600},{"username":"jhutchings1","id":12853539},{"username":"ktorresno","id":1203192},{"username":"kgeis","id":2237299},{"username":"kylecesmat","id":1633837},{"username":"lkraav","id":147228},{"username":"way2ex","id":24694223},{"username":"liamjack","id":821228},{"username":"pmmmwh","id":9338255},{"username":"mikollaay","id":6240735},{"username":"sombochea","id":7059827},{"username":"sumanbh","id":12093664},{"username":"tugsanunlu","id":2070277},{"username":"a666","id":19142162},{"username":"himanshumehta1114","id":25463496},{"username":"tso1158687","id":9198263},{"username":"nauxliu","id":9570112},{"username":"gzuzmark","id":5327036},{"username":"imjacobclark","id":1641689},{"username":"JackyChan","id":260615},{"username":"JGjorgji","id":1335321},{"username":"gagandeepp","id":34858937},{"username":"FilipMessa","id":6354326},{"username":"bpedersen","id":1903016},{"username":"smithandrewl","id":490251},{"username":"rokkoo","id":25004016},{"username":"maxxDaddy","id":1451149},{"username":"duboisph","id":33081},{"username":"sebastian-x86","id":5750970},{"username":"ksrt12","id":11806131},{"username":"kimxogus","id":11684628},{"username":"tomashejatko","id":1197578},{"username":"yasn77","id":2234002},{"username":"zzvara","id":8371789},{"username":"andre161292","id":1634927},{"username":"cfiehe","id":11977877},{"username":"maslow","id":7122237},{"username":"shcherbak","id":14364672},{"username":"ymrsmns","id":25608325},{"username":"Hechamon","id":32613113},{"username":"v0112358","id":5784623},{"username":"pohldk","id":47821325},{"username":"marekaf","id":16442967},{"username":"LoicGombeaud","id":1173317},{"username":"jchanam","id":6512096},{"username":"machadovilaca","id":21959383},{"username":"jfrancisco0","id":40362916},{"username":"jfoechsler","id":4612720},{"username":"casserlyprogramming","id":337812},{"username":"Cubid","id":37664014},{"username":"bycEEE","id":8891115},{"username":"arthur2308","id":9389109},{"username":"alexis974","id":43278953}]`),Zs=e=>`https://avatars3.githubusercontent.com/u/${e}?s=120&v=4`,Qs=()=>(0,W.jsx)(W.Fragment,{children:(0,W.jsx)(P,{href:`https://verdaccio.org/contributors`,rel:`noreferrer`,target:`_blank`,children:(0,W.jsx)(Be,{max:11,spacing:15,total:400,children:Xs?.map(({username:e,id:t})=>(0,W.jsx)(`div`,{children:(0,W.jsx)(x,{alt:e,src:Zs(t)})},e))})})}),$s=`Support people affected by the war in Ukraine`,ec=[{href:`https://www.youtube.com/watch?v=LeG09zu_p_g`,text:`Ask Ukrainian open-source developers about war — Twitter Space`},{href:`https://snyk.io/blog/celebrating-amazing-open-source-innovation-ukraine/`,text:`Snyk blog - Learn more about Open Source developers in Ukraine`},{href:`https://www.savethechildren.org/us/where-we-work/ukraine/`,text:`Donate to save children in Ukraine`},{href:`https://www.ifrc.org/`,text:`Donate to the International Red Cross`},{href:`https://www.hrw.org/news/2022/03/10/ukraine-russian-air-dropped-bombs-hit-residential-area/`,text:`Read reports from Human Rights Watch`},{href:`https://europeanbloodalliance.eu/`,text:`Donate blood in Europe`}],tc=()=>{let e=ec.map(e=>(0,W.jsx)(`li`,{children:(0,W.jsx)(P,{href:e.href,target:`_blank`,children:(0,W.jsx)(I,{children:e.text})})},e.text));return(0,W.jsx)(W.Fragment,{children:(0,W.jsxs)(S,{container:!0,spacing:2,children:[(0,W.jsx)(S,{item:!0,xs:12,children:(0,W.jsx)(I,{component:`h2`,variant:`h6`,children:$s})}),(0,W.jsxs)(S,{item:!0,lg:12,xs:12,children:[(0,W.jsx)(`span`,{style:{fontStyle:`italic`,fontSize:`0.75rem`},children:(0,W.jsx)(I,{children:`Hi, this is a message that I've composed to call your attention to ask
|
|
45
|
+
for humanitarian support for more than 44 million Ukrainians that are having
|
|
46
|
+
a hard time suffering for a horrible and unjustified war. It would be great if you
|
|
47
|
+
decide today to make a difference and help others. You could help by donating
|
|
48
|
+
to very well-known humanitarian organizations, helping in your local
|
|
49
|
+
area with food, clothes, donate blood, toys for kids, or your own time. Any help is very welcome.`})}),(0,W.jsx)(`ul`,{style:{padding:`10px 0`},children:e}),(0,W.jsx)(`div`,{children:(0,W.jsx)(I,{variant:`div`,children:`Spread the voice, make the difference today.`})}),(0,W.jsx)(`div`,{style:{padding:`10px 0`,fontWeight:600},children:(0,W.jsx)(I,{variant:`div`,children:`Att: Verdaccio Lead Mantainer, Juan P.`})})]})]})})},nc=`Verdaccio is an open source lightweight private proxy Node.js registry,
|
|
50
|
+
you can [learn more about the project in our blog](https://verdaccio.org/blog/2019/02/08/the-crazy-story-of-verdaccio).
|
|
51
|
+
|
|
52
|
+
#### Useful links
|
|
53
|
+
|
|
54
|
+
- [Installation](https://verdaccio.org/docs/installation)
|
|
55
|
+
- [Translate](https://translate.verdaccio.org/)
|
|
56
|
+
- [Best Practices](https://verdaccio.org/docs/best)
|
|
57
|
+
- [Security Policy](https://github.com/verdaccio/verdaccio/security/policy)
|
|
58
|
+
- [Sponsor via Open Collective](https://opencollective.com/verdaccio)
|
|
59
|
+
- [Sponsor via GitHub](https://github.com/sponsors/verdaccio)
|
|
60
|
+
|
|
61
|
+
#### How to connect
|
|
62
|
+
|
|
63
|
+
- [Discussions](https://github.com/verdaccio/verdaccio/discussions)
|
|
64
|
+
- [YouTube Channel](https://www.youtube.com/channel/UC5i20v6o7lSjXzAHOvatt0w)
|
|
65
|
+
- [Discord Chat](https://discord.gg/hv42jfs)
|
|
66
|
+
|
|
67
|
+
https://www.verdaccio.org
|
|
68
|
+
|
|
69
|
+
#### Meet the contributors
|
|
70
|
+
`,rc=`MIT License
|
|
71
|
+
|
|
72
|
+
Copyright (c) 2025 Verdaccio contributors
|
|
73
|
+
|
|
74
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
75
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
76
|
+
in the Software without restriction, including without limitation the rights
|
|
77
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
78
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
79
|
+
furnished to do so, subject to the following conditions:
|
|
80
|
+
|
|
81
|
+
The above copyright notice and this permission notice shall be included in all
|
|
82
|
+
copies or substantial portions of the Software.
|
|
83
|
+
|
|
84
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
85
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
86
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
87
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
88
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
89
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
90
|
+
SOFTWARE.
|
|
91
|
+
`,ic={"registry-info":{title:`Information`},settings:{title:`Configuration`},license:`Licence`,totalContributors:`Počet přispěvovatelů`},ac={documentation:`Dokumentace`,"registry-info":`Informace o registru`,"registry-info-link":`Více informací`,settings:`Nastavení`,help:`Help`,"registry-no-conf":`Hledat balíčky`,greetings:`Ahoj `},oc={packages:`Hledat balíčky`,isPrivate:`Private`,isRemote:`Remote`,isCached:`Cached`},sc={loading:`Načítání...`,"no-results-found":`Nebyly nalezeny žádné výsledky`,clear:`Vyčistit`,expand:`Otevřít`,collapse:`Zavřít`},cc={uplinks:`Uplinky`,versions:`Verze`,dependencies:`Závislosti`,readme:`Přečti si mě`},lc={title:`Uplinky`,"no-items":`{{name}} nemá žádné uplinky.`},uc={"current-tags":`Aktuální značky`,"version-history":`Version History`,"not-available":`Nedostupné`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},dc={"has-no-dependencies":`{{package}} nemá žádné závislosti.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},fc={username:`Uživatelské jméno`,password:`Heslo`},pc={title:`Zatím nebyl zveřejně žádný balíček.`,"sub-title":`Pro zveřejnění vašeho prvního balíčku proveďte následující:`,"first-step":`1. Create user`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Zveřejněte balíček`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Obnovte tuto stránku.`},mc={detail:{"latest-version":`Nejnovější v{{version}}`,version:`v{{version}}`,published:`Published`},installation:{title:`Instalace`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Repozitář`},author:{title:`Autor`},distribution:{title:`Distribution`,license:`Licence`,size:`Velikost`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Správci`},contributors:{title:`Přispěvatelé`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},hc={"powered-by":`Pohání`,"made-with-love-on":`Tvořeno s <0>♥</0> na`},gc={close:`Zavřít`,cancel:`Zrušit`,login:`Přihlásit se`,logout:`Odhlásit se`,"go-to-the-home-page":`Přejít na domovskou stránku`,"learn-more":`Více informací`,"fund-this-package":`<0>Sponzorovat</0> tento balíček`},_c={unspecific:`Něco se pokazilo.`,404:{"sorry-we-could-not-find-it":`Omlouváme se, ale nepodařilo se nám to najít...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`Kontext aplikace nebyl použit správným způsobem`,"theme-context-not-correct-used":`Kontext šablony nebyl použit správným způsobem`,"package-meta-is-required-at-detail-context":`packageMeta je vyžadováno v DetailContext`},vc={english:`Anglicky`,czech:`Čeština`,japanese:`Japonština`,portuguese:`Portugalština`,spanish:`Španělsky`,irish:`Irish`,german:`Německy`,italian:`Italian`,french:`Francouzsky`,russian:`Ruský`,turkish:`Turečtina`,ukraine:`Ukrajinština`,khmer:`Khmerština`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},yc={austria:`Rakousko`,australia:`Australia`,brazil:`Brazílie`,canada:`Canada`,spain:`Španělsko`,nicaragua:`Nikaragua`,india:`Indie`,china:`Čína`,germany:`Německo`,taiwan:`Tchaj-wan`},bc={title:`Package Managers`,description:`This is the configuration details for the registry. Each package manager could have different configuration, expand each section for more details. If the section is disable review your configuration.`,yarnclassicDetails:`Yarn classic configuration differs from Yarn 2+ configuration. For more details, please visit [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry does not support the `--registry` flag, instead all configurarion should be defined on the `yarnrc.yaml` file in the root of your project. For more details, please visit [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},xc={title:`Překlady`,contribute:`Pokud zde není uveden Váš jazyk nebo není zcela přeložen, prosím přispějte svým překladem. Postup naleznete na stránce [s repozitářem aplikace](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`This is the configuration details for the language. Select a language to select a client side translation.`},Sc={"copy-to-clipboard":`Zkopírovat do schránky`,"author-anonymous":`Anonymní`,"author-unknown":`Neznámý`,"action-bar-action":{"visit-home-page":`Navštívit domovskou stránku`,"open-an-issue":`Otevřít otázku`,"download-tarball":`Stáhnout archív (Tar)`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:ic,header:ac,search:oc,autoComplete:sc,tab:cc,uplinks:lc,versions:uc,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Navštívit domovskou stránku`,homepage:`Domovská stránka`,"open-an-issue":`Otevřít otázku`,bugs:`Chyby`,download:`Stáhnout {{what}}`,"the-tar-file":`tar soubor`,tarball:`Archív (Tar)`},dependencies:dc,form:fc,"form-placeholder":{username:`Vaše uživatelské jméno`,password:`Vaše silné heslo"`},"form-validation":{"required-field":`Toto pole je povinné`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Přihlášení se nezdařilo`,"username-or-password-cant-be-empty":`Uživatelské jméno nebo heslo nemohou být prázdné!`},help:pc,sidebar:mc,footer:hc,button:gc,error:_c,lng:vc,flag:yc,packageManagers:bc,language:xc},Cc={"registry-info":{title:`Information`},settings:{title:`Konfiguration`},license:`Lizenz`,totalContributors:`Totale Contributor`},wc={documentation:`Dokumentation`,"registry-info":`Registry-Informationen`,"registry-info-link":`Mehr erfahren`,settings:`Einstellungen`,help:`Hilfe`,"registry-no-conf":`Keine Konfigurationen verfügbar`,greetings:`Hi `},Tc={packages:`Pakete durchsuchen`,isPrivate:`Private`,isRemote:`Remote`,isCached:`Zwischengespeichert`},Ec={loading:`Laden...`,"no-results-found":`Keine Resultate gefunden`,clear:`Leeren`,expand:`Ausklappen`,collapse:`Einklappen`},Dc={uplinks:`Uplinks`,versions:`Versionen`,dependencies:`Abhängigkeiten`,readme:`Readme`},Oc={title:`Uplinks`,"no-items":`{{name}} hat keine Uplinks.`},kc={"current-tags":`Aktuelle Tags`,"version-history":`Versionsgeschichte`,"not-available":`Nicht verfügbar`,deprecated:`Veraltet`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`Veraltete Versionen sind in der globalen Konfiguration ausgeblendet`},Ac={"has-no-dependencies":`{{package}} hat keine Abhängigkeiten.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},jc={username:`Nutzername`,password:`Passwort`},Mc={title:`Es gibt noch keine veröffentlichten Pakete.`,"sub-title":`Um Ihr erstes Paket zu veröffentlichen, müssen Sie nur:`,"first-step":`1. Benutzer erstellen`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Veröffentlichen`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Diese Seite aktualisieren`},Nc={detail:{"latest-version":`Neueste v{{version}}`,version:`v{{version}}`,published:`Veröffentlicht`},installation:{title:`Installation`,latest:`latest version`,global:`global package`,yarnModern:`yarn neue syntax`},repository:{title:`Repository`},author:{title:`Autor`},distribution:{title:`Distribution`,license:`Lizenz`,size:`Größe`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Maintainer`},contributors:{title:`Contributor`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},Pc={"powered-by":`Umgesetzt mit`,"made-with-love-on":`Gemacht mit <0>♥</0> in`},Fc={close:`Schließen`,cancel:`Abbrechen`,login:`Einloggen`,logout:`Abmelden`,"go-to-the-home-page":`Zur Startseite gehen`,"learn-more":`Mehr erfahren`,"fund-this-package":`Dieses Paket <0>unterstützen</0>`},Ic={unspecific:`Etwas ist schiefgegangen.`,404:{"sorry-we-could-not-find-it":`Sorry, das haben wir nicht gefunden...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`Der App-Kontext wurde nicht korrekt benutzt`,"theme-context-not-correct-used":`Der Theme-Kontext wurde nicht korrekt benutzt`,"package-meta-is-required-at-detail-context":`packageMetadata wird im DetailContext zwingend benötigt`},Lc={english:`Englisch`,czech:`Tschechisch`,japanese:`Japanisch`,portuguese:`Portugiesisch`,spanish:`Spanisch`,irish:`Irish`,german:`Deutsch`,italian:`Italian`,french:`Französisch`,russian:`Russisch`,turkish:`Türkisch`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},Rc={austria:`Österreich`,australia:`Australia`,brazil:`Brasilien`,canada:`Canada`,spain:`Spanien`,nicaragua:`Nicaragua`,india:`Indien`,china:`China`,germany:`Deutschland`,taiwan:`Taiwan`},zc={title:`Paket-Manager`,description:`Dies sind die Konfigurationsdetails für die Bibliothek. Jeder Paketmanager kann eine andere Konfiguration haben, erweitern Sie jeden Abschnitt für weitere Details. Wenn der Abschnitt deaktiviert ist, überprüfen Sie Ihre Konfiguration.`,yarnclassicDetails:`Die klassische Yarn Konfiguration unterscheidet sich von der Yarn 2+-Konfiguration. Weitere Einzelheiten finden Sie unter [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:`Yarn Berry unterstützt den Flag „--registry“ nicht, stattdessen sollten alle Konfigurationen in der Datei „yarnrc.yaml“ im Stammverzeichnis Ihres Projekts definiert werden. Weitere Einzelheiten finden Sie unter [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x).`},Bc={title:`Übersetzungen`,contribute:`Yarn Berry unterstützt den Flag „--registry“ nicht, stattdessen sollten alle Konfigurationen in der Datei „yarnrc.yaml“ im Stammverzeichnis Ihres Projekts definiert werden. Weitere Einzelheiten finden Sie unter [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)`,description:`Dies sind die Konfigurationsdetails für die Sprache. Wählen Sie eine Sprache aus, um eine clientseitige Übersetzung auszuwählen.`},Vc={"copy-to-clipboard":`In die Zwischenablage kopieren`,"author-anonymous":`Anonym`,"author-unknown":`Unbekannt`,"action-bar-action":{"visit-home-page":`Website besuchen`,"open-an-issue":`Ein Issue erstellen`,"download-tarball":`Tarball herunterladen`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:Cc,header:wc,search:Tc,autoComplete:Ec,tab:Dc,uplinks:Oc,versions:kc,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Website besuchen`,homepage:`Website`,"open-an-issue":`Ein Issue erstellen`,bugs:`Bugs`,download:`{{what}} herunterladen`,"the-tar-file":`die Tar-Datei`,tarball:`Tarball`},dependencies:Ac,form:jc,"form-placeholder":{username:`Ihr Nutzername`,password:`Ihr starkes Passwort`},"form-validation":{"required-field":`Dies ist ein Pflichtfeld`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Anmelden nicht möglich`,"username-or-password-cant-be-empty":`Nutzername und Passwort können nicht leer sein!`},help:Mc,sidebar:Nc,footer:Pc,button:Fc,error:Ic,lng:Lc,flag:Rc,packageManagers:zc,language:Bc},Hc={"registry-info":{title:`Información`},settings:{title:`Configuración`},license:`Licencia`,totalContributors:`Contribuciones`},Uc={documentation:`Documentación`,"registry-info":`Información del Registro`,"registry-info-link":`Aprender mas`,settings:`Configuración`,help:`Ayuda`,"registry-no-conf":`No hay configuración disponible`,greetings:`Hola `},Wc={packages:`Buscar paquetes`,isPrivate:`Privado`,isRemote:`Remoto`,isCached:`Cached`},Gc={loading:`Cargando...`,"no-results-found":`No se encontraron resultados`,clear:`Borrar`,expand:`Expandir`,collapse:`Colapsar`},Kc={uplinks:`Uplinks`,versions:`Versiones`,dependencies:`Dependencias`,readme:`Léeme`},qc={title:`Uplinks`,"no-items":`{{name}} no tiene uplinks.`},Jc={"current-tags":`Etiquetas actuales`,"version-history":`Control de Versiones`,"not-available":`No disponible`,deprecated:`Obsoleto`,"search.placeholder":`Busque una versión por rango de version semantica, por ejemplo: ^1.0.0.`,"hide-deprecated":`Todas las versiones are ocultas por la configuración global`},Yc={"has-no-dependencies":`{{package}} no tiene dependencias.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},Xc={username:`Usuario`,password:`Contraseña`},Zc={title:`Ningún paquete ha sido publicado aún.`,"sub-title":`Para publicar tu primer paquete:`,"first-step":`1. Crear Usuario`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Publica`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Refresca la página`},Qc={detail:{"latest-version":`Última v{{version}}`,version:`v{{version}}`,published:`Publicado`},installation:{title:`Instalación`,latest:`latest version`,global:`paquete global`,yarnModern:`sintaxis moderna de yarn`},repository:{title:`Repositorio`},author:{title:`Autor`},distribution:{title:`Distribución`,license:`Licencia`,size:`Tamaño`,"file-count":`Archivos`},keywords:{title:`Palabras clave`},maintainers:{title:`Mantenedores`},contributors:{title:`Contribuidores`},engines:{"npm-version":`Versión de Npm`,"pnpm-version":`Versión de Pnpm`,"yarn-version":`Versión de Yarn`,"node-js":`Node.js`}},$c={"powered-by":`Hecho con`,"made-with-love-on":`Hecho con <0>♥</0>`},el={close:`Cerrar`,cancel:`Cancelar`,login:`Iniciar sesión`,logout:`Cerrar sesión`,"go-to-the-home-page":`Ir a la página principal`,"learn-more":`Aprender más`,"fund-this-package":`<0>Donar</0> a este paquet`},tl={unspecific:`Algo salió mal.`,404:{"sorry-we-could-not-find-it":`Lo siento, no pudimos encontrarlo...`},401:{"sorry-no-access":`Lo siento, necesitas credenciales para poder ver esta página.`},"app-context-not-correct-used":`El contexto de la aplicación no fue correctamente usado`,"theme-context-not-correct-used":`El contexto del tema no fue correctamente usado`,"package-meta-is-required-at-detail-context":`packageMeta es requerido en DetailContext`},nl={english:`Inglés`,czech:`Checo`,japanese:`Japonés`,portuguese:`Portugués`,spanish:`Español`,irish:`Irlandes`,german:`Alemán`,italian:`Italian`,french:`Francés`,russian:`Ruso`,turkish:`Turco`,ukraine:`Ucrania`,khmer:`khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},rl={austria:`Austria`,australia:`Australia`,brazil:`Brasil`,canada:`Canadá`,spain:`España`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Alemania`,taiwan:`Taiwán`},il={title:`Manejador de paquetes`,description:`Este es el detalle de configuracion para el registro. Cada manejador de paquetes podria tener una configuracion diferente, expande cada secion para mas detalles. Si la secion esta desactivada revisa tu configuracion.`,yarnclassicDetails:`La configuración de Yarn clasico difere de la configuración de Yarn 2. Para mas detalles, visita la documentación de [Yarn Clasico](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn berry no da soporte a la propiedad `--registry`, en vez de eso, todas las configuraciones deben ser definidas en el archivo \n`yarnrc.yaml` en la raiz del proyecto. Para mas detalles, porfavor visita [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},al={title:`Traduciones`,contribute:`Si su idioma no esta listado aqui o no esta completamente traducido, porfavor contribulla con las traduciones. Puedes encontrar el codigo fuente en [nuestro repositorio principal](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`Esta es la configuración para los idiomas. Selecione el lenguage deseado para la tradución en el cliente.`},ol={"copy-to-clipboard":`Copiar al portapapeles`,"author-anonymous":`Anónimo`,"author-unknown":`Desconocido`,"action-bar-action":{"visit-home-page":`Visitar página principal`,"open-an-issue":`Reportar un error`,"download-tarball":`Descargar librería`,raw:`Ver manifiesto`,"raw-title":`Manifiesto de {{package}}`},dialog:Hc,header:Uc,search:Wc,autoComplete:Gc,tab:Kc,uplinks:qc,versions:Jc,package:{"published-on":`Publicado {{time}}`,version:`v{{version}}`,"visit-home-page":`Visitar página principal`,homepage:`Página principal`,"open-an-issue":`Reportar un error`,bugs:`Error`,download:`Descargar {{what}}`,"the-tar-file":`el archivo tar`,tarball:`Librería`},dependencies:Yc,form:Xc,"form-placeholder":{username:`Tu usuario`,password:`Tu contraseña segura`},"form-validation":{"required-field":`Este campo es requerido`,"required-min-length":`Esta propiedad es requerida un mínimo de {{length}}`,"unable-to-sign-in":`No se pudo iniciar sesión`,"username-or-password-cant-be-empty":`El nombre de usuario o la contraseña no pueden estar vacíos!`},help:Zc,sidebar:Qc,footer:$c,button:el,error:tl,lng:nl,flag:rl,packageManagers:il,language:al},sl={"registry-info":{title:`Information`},settings:{title:`Configuration`},license:`Licence`,totalContributors:`Contributeurs totaux`},cl={documentation:`Documentation`,"registry-info":`Informations du Registry`,"registry-info-link":`En savoir plus`,settings:`Paramètres`,help:`Aide`,"registry-no-conf":`Aucune configuration disponible`,greetings:`Bonjour`},ll={packages:`Rechercher des paquets`,isPrivate:`Privé`,isRemote:`Remote`,isCached:`Cached`},ul={loading:`En cours de chargement...`,"no-results-found":`Aucun resultat trouvé`,clear:`Nettoyer`,expand:`Développer`,collapse:`Se rétracter`},dl={uplinks:`Uplinks`,versions:`Versions`,dependencies:`Dépendances`,readme:`Readme`},fl={title:`Uplinks`,"no-items":`{{name}} n'a pas de uplink.`},pl={"current-tags":`Tags courants`,"version-history":`Historique de la version`,"not-available":`Non disponible`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},ml={"has-no-dependencies":`{{package}} n'a aucune dépendance.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},hl={username:`Nom d'utilisateur`,password:`Mot de passe`},gl={title:`Aucun paquet publié pour l'instant.`,"sub-title":`Pour publier votre premier paquet:`,"first-step":`1. Créer un utilisateur`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Publier`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Recharger cette page.`},_l={detail:{"latest-version":`Dernière v{{version}}`,version:`v{{version}}`,published:`Publié`},installation:{title:`Installation`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Dépôt`},author:{title:`Auteur`},distribution:{title:`Distribution`,license:`Licence`,size:`Taille`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Mainteneurs`},contributors:{title:`Contributeurs`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},vl={"powered-by":`Propulsé par`,"made-with-love-on":`Fait avec <0>♥</0> sur`},yl={close:`Fermer`,cancel:`Annuler`,login:`Se connecter`,logout:`Se déconnecter`,"go-to-the-home-page":`Aller à la page d'accueil`,"learn-more":`En savoir plus`,"fund-this-package":`<0>Financer</0> ce paquet`},bl={unspecific:`Quelque chose a mal tourné.`,404:{"sorry-we-could-not-find-it":`Desolé, nous n'avons rien retrouvé...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},xl={english:`Anglais`,czech:`Czech`,japanese:`Japonnais`,portuguese:`Portuguese`,spanish:`Espagnol`,irish:`Irish`,german:`German`,italian:`Italian`,french:`Français`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},Sl={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},Cl={title:`Gestionnaires de paquets`,description:`This is the configuration details for the registry. Each package manager could have different configuration, expand each section for more details. If the section is disable review your configuration.`,yarnclassicDetails:`Yarn classic configuration differs from Yarn 2+ configuration. For more details, please visit [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry does not support the `--registry` flag, instead all configurarion should be defined on the `yarnrc.yaml` file in the root of your project. For more details, please visit [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},wl={title:`Traductions`,contribute:`Si votre langue n'est pas listée ici ou si elle n'est pas entièrement traduite, pensez à contribuer à la traduction. Vous pouvez retrouver le code source dans notre [dépôt principal](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`Ceci est la configuration de la langue. Sélectionnez une langue pour choisir la langue d'affichage de la page.`},Tl={"copy-to-clipboard":`Copier dans le presse-papier`,"author-anonymous":`Anonyme`,"author-unknown":`Inconnue`,"action-bar-action":{"visit-home-page":`Visiter la page d'accueil`,"open-an-issue":`Ouvrir un ticket`,"download-tarball":`Télécharger l'archive`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:sl,header:cl,search:ll,autoComplete:ul,tab:dl,uplinks:fl,versions:pl,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Visiter la page d'accueil`,homepage:`Page d'accueil`,"open-an-issue":`Ouvrir un ticket`,bugs:`Bugs`,download:`Télécharger {{what}}`,"the-tar-file":`le fichier tar`,tarball:`Archive`},dependencies:ml,form:hl,"form-placeholder":{username:`Nom d'utilisateur`,password:`Mot de passe`},"form-validation":{"required-field":`Ce champ est obligatoire`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Connexion impossible`,"username-or-password-cant-be-empty":`Le nom d'utilisateur ou mot de passe ne peut pas être vide!`},help:gl,sidebar:_l,footer:vl,button:yl,error:bl,lng:xl,flag:Sl,packageManagers:Cl,language:wl},El={"registry-info":{title:`Eolas`},settings:{title:`Cumraíocht`},license:`Ceadúnas`,totalContributors:`Ranníocóirí iomlána`},Dl={documentation:`Doiciméadúchán`,"registry-info":`Faisnéis Chlárlainne`,"registry-info-link":`Foghlaim níos mó`,settings:`Socruithe`,help:`Cabhrú`,"registry-no-conf":`Níl aon chumraíochtaí ar fáil`,greetings:`Haigh `},Ol={packages:`Pacáistí Cuardaigh`,isPrivate:`Príobháideach`,isRemote:`Iargúlta`,isCached:`I dtaisce`},kl={loading:`Á lódáil...`,"no-results-found":`Níor aimsíodh aon torthaí`,clear:`Glan`,expand:`Leathnaigh`,collapse:`Laghdaigh`},Al={uplinks:`Uplinks`,versions:`Leaganacha`,dependencies:`Spleáchais`,readme:`Léim`},jl={title:`Uplinks`,"no-items":`Níl naisc ar bith ag {{name}}.`},Ml={"current-tags":`Clibeanna Reatha`,"version-history":`Stair Leaganacha`,"not-available":`Níl sé ar fáil`,deprecated:`Dímheasta`,"search.placeholder":`Déan cuardach do leagan de réir raoin semver, m.sh., ^1.0.0.`,"hide-deprecated":`Tá gach leagan dímheasta i bhfolach ag cumraíocht dhomhanda`},Nl={"has-no-dependencies":`Níl aon spleáchais ag {{package}}.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},Pl={username:`Ainm úsáideora`,password:`Pasfhocal`},Fl={title:`Níl Pacáiste Foilsithe fós.`,"sub-title":`Chun do chéad phacáiste a fhoilsiú díreach:`,"first-step":`1. Cruthaigh úsáideoir`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Foilsigh`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Athnuaigh an leathanach seo`},Il={detail:{"latest-version":`V{{version}} is déanaí`,version:`v{{version}}`,published:`Foilsithe`},installation:{title:`Suiteáil`,latest:`leagan is déanaí`,global:`pacáiste domhanda`,yarnModern:`snáth comhréir nua-aimseartha`},repository:{title:`Stór`},author:{title:`Údar`},distribution:{title:`Dáileadh`,license:`Ceadúnas`,size:`Méid`,"file-count":`Comhaireamh Comhad`},keywords:{title:`Eochairfhocail`},maintainers:{title:`Cothabhálaithe`},contributors:{title:`Rannpháirtithe`},engines:{"npm-version":`Leagan Npm`,"pnpm-version":`Leagan pnpm`,"yarn-version":`Leagan Snáth`,"node-js":`Node.js`}},Ll={"powered-by":`Cumhachtaithe ag`,"made-with-love-on":`Déanta le <0>♥</0> ar siúl`},Rl={close:`Dún`,cancel:`Cealaigh`,login:`Logáil isteach`,logout:`Logáil Amach`,"go-to-the-home-page":`Téigh go dtí an leathanach baile`,"learn-more":`Foghlaim níos mó`,"fund-this-package":`<0>Ciste</0> an pacáiste seo`},zl={unspecific:`Chuaigh rud eigin mícheart.`,404:{"sorry-we-could-not-find-it":`Ár leithscéal, ní raibh muid in ann é a aimsiú...`},401:{"sorry-no-access":`Ár leithscéal, tá rochtain dintiúir uait chun an leathanach seo a fheiceáil.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},Bl={english:`Béarla`,czech:`Czech`,japanese:`Seapánach`,portuguese:`Portuguese`,spanish:`Spainnis`,irish:`Irish`,german:`German`,italian:`Italian`,french:`Fraincis`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},Vl={austria:`Austria`,australia:`Astráil`,brazil:`Brazil`,canada:`Ceanada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},Hl={title:`Bainisteoirí Pacáiste`,description:`Seo sonraí cumraíochta na clárlainne. D'fhéadfadh cumraíocht dhifriúil a bheith ag gach bainisteoir pacáiste, leathnaigh gach rannóg le haghaidh tuilleadh sonraí. Má tá an chuid díchumasaithe athbhreithnigh do chumraíocht.`,yarnclassicDetails:`Tá cumraíocht clasaiceach snáth difriúil ó chumraíocht Snáth 2+. Le haghaidh tuilleadh sonraí, tabhair cuairt le do thoil ar [Snáth Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Ní thacaíonn Snáth Berry leis an mbratach `--registry`, ina ionad sin ba cheart gach cumraíocht a shainmhíniú ar an gcomhad `yarnrc.yaml` i bhfréamh do thionscadal. Le haghaidh tuilleadh sonraí, tabhair cuairt le do thoil ar [Snáth Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},Ul={title:`Aistriúcháin`,contribute:`Mura bhfuil do theanga liostaithe anseo nó mura bhfuil sí aistrithe go hiomlán, cuir leis an aistriúchán le do thoil. Is féidir leat an cód foinse a fháil ar [ár bpríomhstór](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`Seo sonraí cumraíochta na teanga. Roghnaigh teanga chun aistriúchán taobh cliaint a roghnú.`},Wl={"copy-to-clipboard":`Cóipeáil chuig an ngearrthaisce`,"author-anonymous":`Gan ainm`,"author-unknown":`Anaithnid`,"action-bar-action":{"visit-home-page":`Tabhair cuairt ar leathanach baile`,"open-an-issue":`Oscail ceist`,"download-tarball":`Íosluchtaigh cluiche tarball`,raw:`Amharc ar léiriú`,"raw-title":`Manifest de {{package}}`},dialog:El,header:Dl,search:Ol,autoComplete:kl,tab:Al,uplinks:jl,versions:Ml,package:{"published-on":`Foilsithe {{time}}`,version:`v{{version}}`,"visit-home-page":`Tabhair cuairt ar leathanach baile`,homepage:`Leathanach baile`,"open-an-issue":`Oscail ceist`,bugs:`Fabhtanna`,download:`Íoslódáil {{what}}`,"the-tar-file":`an comhad tarra`,tarball:`Tarball`},dependencies:Nl,form:Pl,"form-placeholder":{username:`D'ainm úsáideora`,password:`Do phasfhocal láidir`},"form-validation":{"required-field":`Tá an réimse seo ag teastáil`,"required-min-length":`Teastaíonn an réimse seo le fad íosta {{length}}`,"unable-to-sign-in":`Ní féidir síniú isteach`,"username-or-password-cant-be-empty":`Ní féidir ainm úsáideora nó pasfhocal a bheith folamh!`},help:Fl,sidebar:Il,footer:Ll,button:Rl,error:zl,lng:Bl,flag:Vl,packageManagers:Hl,language:Ul},Gl={"registry-info":{title:`Information`},settings:{title:`Configuration`},license:`Licenza`,totalContributors:`Total contributors`},Kl={documentation:`Documentación`,"registry-info":`Información do Rexistro`,"registry-info-link":`Aprender máis`,settings:`Settings`,help:`Help`,"registry-no-conf":`Non hai configuracións dispoñibles`,greetings:`Ola `},ql={packages:`Buscar Paquetes`,isPrivate:`Private`,isRemote:`Remote`,isCached:`Cached`},Jl={loading:`Cargando...`,"no-results-found":`Non se atoparon resultados`,clear:`Limpar`,expand:`Expandir`,collapse:`Colapso`},Yl={uplinks:`Uplinks`,versions:`Versións`,dependencies:`Dependencias`,readme:`Renomear`},Xl={title:`Uplinks`,"no-items":`{{name}} non ten ligazóns ascendentes.`},Zl={"current-tags":`Etiquetas Actuais`,"version-history":`Version History`,"not-available":`Non dispoñible`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},Ql={"has-no-dependencies":`{{package}} non ten dependencias.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},$l={username:`Nome de Usuario`,password:`Contrasinal`},eu={title:`Aínda non se publicou ningún paquete.`,"sub-title":`Para publicar o teu primeiro paquete só tes que:`,"first-step":`1. Create user`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Publicar`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Refrescar a Páxina`},tu={detail:{"latest-version":`Última v{{version}}`,version:`v{{version}}`,published:`Published`},installation:{title:`Instalación`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Repositorio`},author:{title:`Autor`},distribution:{title:`Distribution`,license:`Licenza`,size:`Tamaño`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Mantedores`},contributors:{title:`Contribuidores/as`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},nu={"powered-by":`Feito por`,"made-with-love-on":`Feito con <0>♥</0>`},ru={close:`Pechar`,cancel:`Cancelar`,login:`Iniciar Sesión`,logout:`Cerrar Sesión`,"go-to-the-home-page":`Ir a páxina inicial`,"learn-more":`Aprenda máis`,"fund-this-package":`<0>Financia</0> este paquete`},iu={unspecific:`Algo saíu mal.`,404:{"sorry-we-could-not-find-it":`Sentímolo, non puidemos atopalo...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},au={english:`English`,czech:`Czech`,japanese:`Japanese`,portuguese:`Portuguese`,spanish:`Spanish`,irish:`Irish`,german:`German`,italian:`Italian`,french:`French`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},ou={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},su={title:`Xestor de Paquetes`,description:`Estes son os detalles de configuración do rexistro. Cada xestor de paquetes pode ter unha configuración diferente, expanda cada sección para obter máis detalles. Se a sección está desactivada, revise a súa configuración.`,yarnclassicDetails:`A configuración clásica de Yarn é diferente da configuración de Yarn 2+. Para obter máis información, visite [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry does not support the `--registry` flag, instead all configurarion should be defined on the `yarnrc.yaml` file in the root of your project. For more details, please visit [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},cu={title:`Traducións`,contribute:`Se o teu idioma non aparece aquí ou non está totalmente traducido, contribúe á tradución. Podes atopar o código fonte en [o noso repositorio principal](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`Estes son os detalles de configuración para o idioma. Seleccione un idioma para seleccionar unha tradución do lado do cliente.`},lu={"copy-to-clipboard":`Copiar ao portapapeis`,"author-anonymous":`Anónimo`,"author-unknown":`Descoñecido`,"action-bar-action":{"visit-home-page":`Visita a páxina de inicio`,"open-an-issue":`Abre un problema`,"download-tarball":`Descargar tarball`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:Gl,header:Kl,search:ql,autoComplete:Jl,tab:Yl,uplinks:Xl,versions:Zl,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Visita a páxina de inicio`,homepage:`Páxina Principal`,"open-an-issue":`Abre un problema`,bugs:`Fallo`,download:`Descargar {{what}}`,"the-tar-file":`o ficheiro tar`,tarball:`Tarball`},dependencies:Ql,form:$l,"form-placeholder":{username:`O teu usuario`,password:`O teu contrasinal seguro`},"form-validation":{"required-field":`Este campo é necesario`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Non se puido iniciar sesión`,"username-or-password-cant-be-empty":`O Nome de Usuario ou a Contrasinal non poden estar baleiro!`},help:eu,sidebar:tu,footer:nu,button:ru,error:iu,lng:au,flag:ou,packageManagers:su,language:cu},uu={"registry-info":{title:`Informazioni`},settings:{title:`Configurazione`},license:`Licenza`,totalContributors:`Collaboratori totali`},du={documentation:`Documentazione`,"registry-info":`Informazioni del Registro`,"registry-info-link":`Scopri di più`,settings:`Impostazioni`,help:`Aiuto`,"registry-no-conf":`Nessuna configurazione disponibile`,greetings:`Ciao `},fu={packages:`Cerca i Pacchetti`,isPrivate:`Privato`,isRemote:`Remoto`,isCached:`Nella Cache`},pu={loading:`Caricamento...`,"no-results-found":`Nessun risultato trovato`,clear:`Cancella`,expand:`Espandi`,collapse:`Comprimi`},mu={uplinks:`Uplink`,versions:`Versioni`,dependencies:`Dipendenze`,readme:`Readme`},hu={title:`Uplink`,"no-items":`{{name}} non ha uplink.`},gu={"current-tags":`Tag Correnti`,"version-history":`Storico delle Versioni`,"not-available":`Non disponibile`,deprecated:`Deprecata`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`Tutte le versioni deprecate sono nascoste dalla configurazione globale`},_u={"has-no-dependencies":`{{package}} non ha alcuna dipendenza.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},vu={username:`Nome Utente`,password:`Password`},yu={title:`Ancora Nessun Pacchetto Pubblicato.`,"sub-title":`Per pubblicare il tuo primo pacchetto, basta:`,"first-step":`1. Crea utente`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Pubblica`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Ricarica questa pagina`},bu={detail:{"latest-version":`Ultima v{{version}}`,version:`v{{version}}`,published:`Pubblicato`},installation:{title:`Installazione`,latest:`ultima versione`,global:`pacchetto globale`,yarnModern:`sintassi moderna di yarn`},repository:{title:`Repository`},author:{title:`Autore`},distribution:{title:`Distribution`,license:`Licenza`,size:`Dimensioni`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Manutentori`},contributors:{title:`Collaboratori`},engines:{"npm-version":`Versione Npm`,"pnpm-version":`Versione Pnpm`,"yarn-version":`Versione di Yarn`,"node-js":`Node.js`}},xu={"powered-by":`Sviluppato da`,"made-with-love-on":`Creato con <0>♥</0> il`},Su={close:`Chiudi`,cancel:`Annulla`,login:`Accedi`,logout:`Disconnettiti`,"go-to-the-home-page":`Vai alla home page`,"learn-more":`Scopri di Più`,"fund-this-package":`<0>Finanzia</0> questo pacchetto`},Cu={unspecific:`Qualcosa è andato storto.`,404:{"sorry-we-could-not-find-it":`Spiacenti, non siamo riusciti a trovarla...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`Il contesto dell'app non è stato usato correttamente`,"theme-context-not-correct-used":`Il contesto del tema non è stato usato correttamente`,"package-meta-is-required-at-detail-context":`packageMeta è necessario in DetailContext`},wu={english:`Inglese`,czech:`Ceco`,japanese:`Giapponese`,portuguese:`Portoghese`,spanish:`Spagnolo`,irish:`Irish`,german:`Tedesco`,italian:`Italian`,french:`Francese`,russian:`Russo`,turkish:`Turco`,ukraine:`Ucraino`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},Tu={austria:`Austria`,australia:`Australia`,brazil:`Brasile`,canada:`Canada`,spain:`Spagna`,nicaragua:`Nicaragua`,india:`India`,china:`Cina`,germany:`Germania`,taiwan:`Taiwan`},Eu={title:`Gestore pacchetti`,description:`Questi sono i dettagli di configurazione per il registro. Ogni gestore di pacchetti può avere configurazioni differenti, espandi ogni sezione per maggiori dettagli. Se la sezione è disabilitata, rivedi la tua configurazione.`,yarnclassicDetails:`La configurazione classica di Yarn è diversa dalla configurazione di Yarn 2+. Per più dettagli si prega di visitare [Yarn classico](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:`Yarn Berry non supporta il flag '--registry', invece, tutte le configurazioni dovrebbero esser definite nel file 'yarnrc.yaml' nel root del tuo progetto. Per ulteriori dettagli, sei pregato di visitare [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x).`},Du={title:`Traduzioni`,contribute:`Se la tua lingua non è qui elencata o non è completamente tradotta, si prega di contribuire alla traduzione. Puoi trovare il codice sorgente nel [nostro repository principale].(https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`Questi sono i dettagli di configurazione per la lingua. Seleziona una lingua per scegliere una traduzione lato client.`},Ou={"copy-to-clipboard":`Copia negli appunti`,"author-anonymous":`Anonimo`,"author-unknown":`Sconosciuto`,"action-bar-action":{"visit-home-page":`Visita la homepage`,"open-an-issue":`Apri una questione`,"download-tarball":`Scarica tarball`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:uu,header:du,search:fu,autoComplete:pu,tab:mu,uplinks:hu,versions:gu,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Visita la homepage`,homepage:`Homepage`,"open-an-issue":`Apri una questione`,bugs:`Bug`,download:`Scarica {{what}}`,"the-tar-file":`il file tar`,tarball:`Tarball`},dependencies:_u,form:vu,"form-placeholder":{username:`Il tuo nome utente`,password:`La tua password forte`},"form-validation":{"required-field":`Questo campo è necessario`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Impossibile accedere`,"username-or-password-cant-be-empty":`Il nome utente o la password non possono essere vuoti!`},help:yu,sidebar:bu,footer:xu,button:Su,error:Cu,lng:wu,flag:Tu,packageManagers:Eu,language:Du},ku={"registry-info":{title:`정보`},settings:{title:`구성`},license:`라이선스`,totalContributors:`총 기여자`},Au={documentation:`문서`,"registry-info":`레지스트리 정보`,"registry-info-link":`더 알아보기`,settings:`설정`,help:`도움`,"registry-no-conf":`사용 가능한 구성이 없습니다.`,greetings:`안녕 `},ju={packages:`패키지 검색`,isPrivate:`Private`,isRemote:`원격`,isCached:`캐시됨`},Mu={loading:`로딩 중...`,"no-results-found":`결과를 찾을 수 없음`,clear:`삭제`,expand:`펼치기`,collapse:`접기`},Nu={uplinks:`Uplinks`,versions:`버전`,dependencies:`의존성`,readme:`읽어보기`},Pu={title:`Uplinks`,"no-items":`{{name}} 에 uplink가 없습니다.`},Fu={"current-tags":`현재 태그`,"version-history":`버전 기록`,"not-available":`사용할 수 없음`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},Iu={"has-no-dependencies":`{{package}} 에는 의존성이 없습니다.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},Lu={username:`사용자 이름`,password:`비밀번호`},Ru={title:`아직 게시된 패키지가 없습니다.`,"sub-title":`첫 번째 패키지를 게시하려면:`,"first-step":`1. 유저 생성`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. 게시하기`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. 이 페이지 새로 고침`},zu={detail:{"latest-version":`최신 v{{version}}`,version:`v{{version}}`,published:`게시됨`},installation:{title:`설치`,latest:`최신 버전`,global:`글로벌 패키지`,yarnModern:`yarn modern syntax`},repository:{title:`저장소`},author:{title:`게시자`},distribution:{title:`Distribution`,license:`라이선스`,size:`크기`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`관리자`},contributors:{title:`기여자`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},Bu={"powered-by":`Powered by`,"made-with-love-on":`Made with <0>♥</0> on`},Vu={close:`닫기`,cancel:`취소`,login:`로그인`,logout:`로그아웃`,"go-to-the-home-page":`홈으로`,"learn-more":`더 알아보기`,"fund-this-package":`이 패키지를 위한 <0>지원</0>`},Hu={unspecific:`문제가 발생했습니다.`,404:{"sorry-we-could-not-find-it":`죄송합니다. 찾지 못했습니다...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},Uu={english:`English`,czech:`Czech`,japanese:`Japanese`,portuguese:`Portuguese`,spanish:`Spanish`,irish:`Irish`,german:`German`,italian:`Italian`,french:`French`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},Wu={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},Gu={title:`패키지 관리자`,description:`레지스트리에 대한 구성 세부 정보입니다. 각 패키지 관리자의 구성이 다를 수 있습니다. 자세한 내용을 보려면 각 섹션을 확장하십시오. 섹션이 비활성화되면 구성을 검토하십시오. `,yarnclassicDetails:`Yarn 클래식 구성은 Yarn 2+ 구성과 다릅니다. 자세한 내용은 [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x)을 참조하십시오.`,yarnBerryDetails:`Yann Berry는 "--registry" 플래그를 지원하지 않습니다. 대신 모든 구성은 프로젝트의 루트에 있는 "yarnrc.yaml" 파일에 정의되어야 합니다. 자세한 내용은 [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)을 참조하십시오.`},Ku={title:`번역`,contribute:`귀하의 언어가 여기에 나열되지 않았거나 완전히 번역되지 않은 경우 번역에 기여하십시오. 소스 코드는 [우리의 메인 저장소](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)에서 확인할 수 있습니다.`,description:`언어에 대한 구성 세부 정보입니다. 클라이언트 측 번역을 선택하려면 언어를 선택하십시오.`},qu={"copy-to-clipboard":`클립보드에 복사`,"author-anonymous":`익명`,"author-unknown":`알 수 없는`,"action-bar-action":{"visit-home-page":`홈페이지 방문`,"open-an-issue":`이슈 열기`,"download-tarball":`Tarball 다운로드`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:ku,header:Au,search:ju,autoComplete:Mu,tab:Nu,uplinks:Pu,versions:Fu,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`홈페이지 방문`,homepage:`홈페이지`,"open-an-issue":`이슈 열기`,bugs:`버그`,download:`{{what}} 다운로드`,"the-tar-file":`tar 파일`,tarball:`Tarball`},dependencies:Iu,form:Lu,"form-placeholder":{username:`사용자 이름`,password:`강력한 암호`},"form-validation":{"required-field":`이 필드는 필수입니다`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`로그인 할 수 없습니다`,"username-or-password-cant-be-empty":`사용자 이름 또는 암호는 비워 둘 수 없습니다!`},help:Ru,sidebar:zu,footer:Bu,button:Vu,error:Hu,lng:Uu,flag:Wu,packageManagers:Gu,language:Ku},Ju={"registry-info":{title:`Informacje`},settings:{title:`Configuration`},license:`Licencja`,totalContributors:`Wszyscy współpracujący`},Yu={documentation:`Dokumentacja`,"registry-info":`Informacje o repozytorium`,"registry-info-link":`Dowiedz się więcej`,settings:`Ustawienia`,help:`Pomoc`,"registry-no-conf":`Brak dostępnej konfiguracji`,greetings:`Witaj `},Xu={packages:`Wyszukaj pakiet`,isPrivate:`Private`,isRemote:`Zdalny`,isCached:`W kopii lokalnej`},Zu={loading:`Ładowanie...`,"no-results-found":`Brak wyników`,clear:`Wyczyść`,expand:`Rozwiń`,collapse:`Zwiń`},Qu={uplinks:`Uplinks`,versions:`Wersje`,dependencies:`Zależności`,readme:`Przeczytaj`},$u={title:`Uplinks`,"no-items":`{{name}} nie posiada uplinków.`},ed={"current-tags":`Bieżące tagi`,"version-history":`Historia wersji`,"not-available":`Nie dostępna`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},td={"has-no-dependencies":`Pakiet {{package}} nie posiada zależności.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},nd={username:`Nazwa użytkownika`,password:`Hasło`},rd={title:`Brak opublikowanych pakietów.`,"sub-title":`Aby opublikować swój pierwszy pakiet, wykonaj następujące kroki:`,"first-step":`1. Utwórz użytkownika`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Opublikuj`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Odśwież tę stronę`},id={detail:{"latest-version":`Najnowsza wersja v{{version}}`,version:`v{{version}}`,published:`Opublikowany`},installation:{title:`Instalacja`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Repozytorium`},author:{title:`Autor`},distribution:{title:`Distribution`,license:`Licencja`,size:`Rozmiar`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Utrzymujący`},contributors:{title:`Współpracujący`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},ad={"powered-by":`Zasilany przez`,"made-with-love-on":`Stworzone z <0>♥</0> do`},od={close:`Zamknij`,cancel:`Anuluj`,login:`Zaloguj`,logout:`Wyloguj`,"go-to-the-home-page":`Przejdź do strony domowej`,"learn-more":`Dowiedz się więcej`,"fund-this-package":`Bądź <0>fundatorem</0> tego pakietu`},sd={unspecific:`Coś poszło źle.`,404:{"sorry-we-could-not-find-it":`Przepraszamy. Nie możemy znaleźć tego...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},cd={english:`English`,czech:`Czech`,japanese:`Japanese`,portuguese:`Portuguese`,spanish:`Spanish`,irish:`Irish`,german:`German`,italian:`Italian`,french:`French`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},ld={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},ud={title:`Menadżer pakietów`,description:`To są szczegóły konfiguracji dla rejestru. Każdy menadżer pakietów może mieć inną konfigurację, rozwiń każdą sekcję, aby uzyskać więcej szczegółów. Jeśli sekcja jest wyłączona, sprawdź swoją konfigurację.`,yarnclassicDetails:`Konfiguracja Yarn Classic różni się od konfiguracji Yarn 2+. Więcej szczegółów znajdziesz na stronie [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:`Yarn Berry nie obsługuje flagi --registry, zamiast tego cała konfiguracja powinna być zdefiniowana w pliku yarnrc.yaml w głównym katalogu twojego projektu. Więcej szczegółów znajdziesz na stronie [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x).`},dd={title:`Tłumaczenia`,contribute:`Jeśli twój język nie znajduje się na liście lub nie posiada pełnego tłumaczenia, prosimy o współpracę. Kod źródłowy udostępniony jest na stronie [głównego repozytorium](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`To są szczegóły konfiguracji języka. Wybierz język, aby wybrać tłumaczenie po stronie klienta.`},fd={"copy-to-clipboard":`Skopiuj do schowka`,"author-anonymous":`Anonim`,"author-unknown":`Autor nieznany`,"action-bar-action":{"visit-home-page":`Odwiedź stronę domową`,"open-an-issue":`Otwórz zgłoszenie`,"download-tarball":`Pobierz archiwum`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:Ju,header:Yu,search:Xu,autoComplete:Zu,tab:Qu,uplinks:$u,versions:ed,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Odwiedź stronę domową`,homepage:`Strona domowa`,"open-an-issue":`Otwórz zgłoszenie`,bugs:`Błędy`,download:`Pobierz {{what}}`,"the-tar-file":`plik tar`,tarball:`Archiwum`},dependencies:td,form:nd,"form-placeholder":{username:`Twoja nazwa użytkownika`,password:`Twoje silne hasło`},"form-validation":{"required-field":`Pole obowiązkowe`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Nie można się zalogować`,"username-or-password-cant-be-empty":`Nazwa użytkownika lub hasło nie mogą być puste!`},help:rd,sidebar:id,footer:ad,button:od,error:sd,lng:cd,flag:ld,packageManagers:ud,language:dd},pd={"registry-info":{title:`Informação`},settings:{title:`Configuração`},license:`Licença`,totalContributors:`Total de contribuidores`},md={documentation:`Documentação`,"registry-info":`Informações do Registro`,"registry-info-link":`Aprenda mais`,settings:`Configurações`,help:`Ajuda`,"registry-no-conf":`Sem configurações disponíveis`,greetings:`Oi `},hd={packages:`Pesquisar Pacotes`,isPrivate:`Privado`,isRemote:`Remoto`,isCached:`Em cache`},gd={loading:`Carregando...`,"no-results-found":`"Nenhum resultado encontrado`,clear:`Limpar`,expand:`Expandir`,collapse:`Retrair`},_d={uplinks:`Uplinks`,versions:`Versões`,dependencies:`Dependências`,readme:`Leia-me`},vd={title:`Uplinks`,"no-items":`{{name}} não tem uplinks.`},yd={"current-tags":`Tags atuais`,"version-history":`Histórico de versão`,"not-available":`Não disponível`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},bd={"has-no-dependencies":`{{package}} não tem dependências.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},xd={username:`Nome do usuário`,password:`Senha`},Sd={title:`Nenhum pacote publicado ainda.`,"sub-title":`Para publicar seu primeiro pacote apenas:`,"first-step":`Criar usuário`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Publique`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Atualize esta página.`},Cd={detail:{"latest-version":`Última versão: v{{version}}`,version:`v{{version}}`,published:`Publicado`},installation:{title:`Instalação`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Repositório`},author:{title:`Autor(a)`},distribution:{title:`Distribution`,license:`Licença`,size:`Tamanho`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Mantenedores(as)`},contributors:{title:`Contribuidores(as)`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},wd={"powered-by":`Feito por`,"made-with-love-on":`Feito com amor <0>♥</0> no(a)`},Td={close:`Fechar`,cancel:`Cancelar`,login:`Conectar`,logout:`Desconectar`,"go-to-the-home-page":`Ir para a página inicial`,"learn-more":`Leia mais`,"fund-this-package":`<0>Financie</0> este pacote`},Ed={unspecific:`Algo deu errado.`,404:{"sorry-we-could-not-find-it":`Desculpe, não conseguimos encontrar...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},Dd={english:`Inglês`,czech:`Czech`,japanese:`Japonês`,portuguese:`Portuguese`,spanish:`Espanhol`,irish:`Irish`,german:`Alemão`,italian:`Italian`,french:`Francês`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},Od={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},kd={title:`Gerenciadores de Pacotes`,description:`Estes são os detalhes de configuração do registro. Cada gerenciador de pacotes pode ter configurações diferentes, expanda cada seção para obter mais detalhes. Se a seção estiver desativada, revise sua configuração.`,yarnclassicDetails:`A configuração do Yarn clássico difere da configuração do Yarn 2+. Para mais detalhes, por favor visite [Yarn Clássico](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry não suporta o parâmetro `--registry`, em vez disso, toda a configuração deve ser definida no arquivo `yarnrc.yaml` na raiz do projeto. Para mais detalhes, por favor visite [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},Ad={title:`Traduções`,contribute:`Se o seu idioma não estiver listado aqui ou não estiver totalmente traduzido, contribua com a tradução. Você pode encontrar o código-fonte em [nosso repositório main](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`Estes são os detalhes de configuração para o idioma. Selecione um idioma para selecionar uma tradução do lado do cliente.`},jd={"copy-to-clipboard":`Copiar para área de transferência`,"author-anonymous":`Anônimo(a)`,"author-unknown":`Desconhecido`,"action-bar-action":{"visit-home-page":`Visitar a página inicial`,"open-an-issue":`Criar um incident`,"download-tarball":`Baixar Tarball`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:pd,header:md,search:hd,autoComplete:gd,tab:_d,uplinks:vd,versions:yd,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Visitar a página inicial`,homepage:`Página inicial`,"open-an-issue":`Criar um incident`,bugs:`Erros`,download:`Baixar {{what}}`,"the-tar-file":`o arquivo tar`,tarball:`Tarball`},dependencies:bd,form:xd,"form-placeholder":{username:`O seu nome`,password:`A sua senha forte`},"form-validation":{"required-field":`Este campo é obrigatório`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Não foi possível fazer login`,"username-or-password-cant-be-empty":`Nome de usuário ou senha não podem estar vazios!`},help:Sd,sidebar:Cd,footer:wd,button:Td,error:Ed,lng:Dd,flag:Od,packageManagers:kd,language:Ad},Md={"registry-info":{title:`Информация`},settings:{title:`Конфигурация`},license:`Лицензия`,totalContributors:`Всего разработчиков`},Nd={documentation:`Документация`,"registry-info":`Информация о реестре`,"registry-info-link":`Подробнее`,settings:`Настройки`,help:`Помощь`,"registry-no-conf":`Нет доступных конфигураций`,greetings:`Привет `},Pd={packages:`Поиск пакетов`,isPrivate:`Приватный`,isRemote:`Удаленно`,isCached:`Кэшированный`},Fd={loading:`Загрузка ...`,"no-results-found":`Ничего не найдено`,clear:`Очистить`,expand:`Развернуть`,collapse:`Свернуть`},Id={uplinks:`Аплинки`,versions:`Версии`,dependencies:`Зависимости`,readme:`Описание`},Ld={title:`Аплинки`,"no-items":`{{name}} не опубликован.`},Rd={"current-tags":`Текущие теги`,"version-history":`История Версий`,"not-available":`Недоступен`,deprecated:`Устаревшие`,"search.placeholder":`Найдите версию по диапазону значений, например ^1.0.0.`,"hide-deprecated":`Все устаревшие версии скрыты глобальной конфигурацией`},zd={"has-no-dependencies":`{{package}} не имеет зависимостей.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},Bd={username:`Имя пользователя`,password:`Пароль`},Vd={title:`Нет опубликованных пакетов.`,"sub-title":`Опубликовать свой первый пакет просто:`,"first-step":`1. Создать пользователя`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Опубликуйте`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Обновите эту страницу.`},Hd={detail:{"latest-version":`Последняя версия v{{version}}`,version:`v{{version}}`,published:`Опубликованные`},installation:{title:`Установка`,latest:`последняя версия`,global:`глобальный пакет`,yarnModern:`современный синтаксис yarn`},repository:{title:`Хранилище`},author:{title:`Автор`},distribution:{title:`Distribution`,license:`Лицензия`,size:`Размер`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Техническое сопровождени`},contributors:{title:`Авторы`},engines:{"npm-version":`Версия npm`,"pnpm-version":`Версия pnpm`,"yarn-version":`Версия yarn`,"node-js":`Node.js`}},Ud={"powered-by":`Работает на`,"made-with-love-on":`Сделано с <0>♥</0> на`},Wd={close:`Закрыть`,cancel:`Отмена`,login:`Войти`,logout:`Выйти`,"go-to-the-home-page":`Перейдите на главную страницу`,"learn-more":`Изучайте больше`,"fund-this-package":`<0>Поддержать</0> этот паке`},Gd={unspecific:`Что-то пошло не так.`,404:{"sorry-we-could-not-find-it":`К сожалению, мы не смогли его найти ...`},401:{"sorry-no-access":`Извините, вам требуется доступ через учетные данные, чтобы увидеть эту страницу.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},Kd={english:`Английский`,czech:`Czech`,japanese:`Японский`,portuguese:`Portuguese`,spanish:`Испанский`,irish:`Irish`,german:`Немецкий`,italian:`Italian`,french:`Французский`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},qd={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},Jd={title:`Менеджеры пакетов`,description:`Это детали конфигурации для рапозитория. Каждый менеджер пакетов может иметь различную конфигурацию, разверните каждый раздел для получения более подробной информации. Если раздел недоступен, проверьте свою конфигурацию.`,yarnclassicDetails:`Классическая конфигурация Yarn отличается от конфигурации Yarn 2+. Для получения более подробной информации, пожалуйста, посетите [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry не поддерживает `--registry` флаг, вместо этого вся конфигурация должна быть определена в `yarnrc.yaml` файле в корне вашего проекта. Для получения более подробной информации, пожалуйста, посетите [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},Yd={title:`Переводы`,contribute:`Если ваш язык не указан здесь или переведен не полностью, пожалуйста, внесите свой вклад в перевод. Вы можете найти исходный код в [нашем основном репозитории](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`Это детали конфигурации языка. Выберите язык для перевода клиентской части.`},Xd={"copy-to-clipboard":`Копировать в буфер обмена`,"author-anonymous":`Анонимный`,"author-unknown":`неизвестно`,"action-bar-action":{"visit-home-page":`Посетить домашнюю страницу`,"open-an-issue":`Открыть вопрос, проблему`,"download-tarball":`Скачать архив`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:Md,header:Nd,search:Pd,autoComplete:Fd,tab:Id,uplinks:Ld,versions:Rd,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Посетить домашнюю страницу`,homepage:`Домашняя страница`,"open-an-issue":`Открыть вопрос, проблему, ...`,bugs:`Ошибки`,download:`Скачать {{what}}`,"the-tar-file":`файл tar`,tarball:`Скачать`},dependencies:zd,form:Bd,"form-placeholder":{username:`Ваше имя пользователя`,password:`Ваш надежный пароль`},"form-validation":{"required-field":`Это поле является обязательны`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Невозможно войти`,"username-or-password-cant-be-empty":`Имя пользователя или пароль не могут быть пустыми!`},help:Vd,sidebar:Hd,footer:Ud,button:Wd,error:Gd,lng:Kd,flag:qd,packageManagers:Jd,language:Yd},Zd={"registry-info":{title:`Information`},settings:{title:`Configuration`},license:`License`,totalContributors:`Total contributors`},Qd={documentation:`Documentation`,"registry-info":`Registry Information`,"registry-info-link":`Learn more`,settings:`Settings`,help:`Help`,"registry-no-conf":`No configurations available`,greetings:`Hi `},$d={packages:`Search Packages`,isPrivate:`Private`,isRemote:`Remote`,isCached:`Cached`},ef={loading:`Loading...`,"no-results-found":`No results found`,clear:`Clear`,expand:`Expand`,collapse:`Collapse`},tf={uplinks:`Uplinks`,versions:`Versions`,dependencies:`Dependencies`,readme:`Readme`},nf={title:`Uplinks`,"no-items":`{{name}} has no uplinks.`},rf={"current-tags":`Current Tags`,"version-history":`Version History`,"not-available":`Not available`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},af={"has-no-dependencies":`{{package}} has no dependencies.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},of={username:`Username`,password:`Password`},sf={title:`No Package Published Yet.`,"sub-title":`To publish your first package just:`,"first-step":`1. Create user`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Publish`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Refresh this page`},cf={detail:{"latest-version":`Latest v{{version}}`,version:`v{{version}}`,published:`Published`},installation:{title:`Instalacija`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Repository`},author:{title:`Author`},distribution:{title:`Distribution`,license:`License`,size:`Size`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Maintainers`},contributors:{title:`Contributors`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},lf={"powered-by":`Powered by`,"made-with-love-on":`Made with <0>♥</0> on`},uf={close:`Close`,cancel:`Cancel`,login:`Login`,logout:`Logout`,"go-to-the-home-page":`Go to the home page`,"learn-more":`Learn More`,"fund-this-package":`<0>Fund</0> this package`},df={unspecific:`Something went wrong.`,404:{"sorry-we-could-not-find-it":`Sorry, we couldn't find it...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},ff={english:`English`,czech:`Czech`,japanese:`Japanese`,portuguese:`Portuguese`,spanish:`Spanish`,irish:`Irish`,german:`German`,italian:`Italian`,french:`French`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},pf={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},mf={title:`Package Managers`,description:`This is the configuration details for the registry. Each package manager could have different configuration, expand each section for more details. If the section is disable review your configuration.`,yarnclassicDetails:`Yarn classic configuration differs from Yarn 2+ configuration. For more details, please visit [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry does not support the `--registry` flag, instead all configurarion should be defined on the `yarnrc.yaml` file in the root of your project. For more details, please visit [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},hf={title:`Translations`,contribute:`If your language is not listed here or is not fully translated, please contribute to the translation. You can find the source code on [our main repository](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`This is the configuration details for the language. Select a language to select a client side translation.`},gf={"copy-to-clipboard":`Copy to clipboard`,"author-anonymous":`Anonymous`,"author-unknown":`Unknown`,"action-bar-action":{"visit-home-page":`Visit homepage`,"open-an-issue":`Open an issue`,"download-tarball":`Download tarball`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:Zd,header:Qd,search:$d,autoComplete:ef,tab:tf,uplinks:nf,versions:rf,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Visit homepage`,homepage:`Homepage`,"open-an-issue":`Open an issue`,bugs:`Bugs`,download:`Download {{what}}`,"the-tar-file":`the tar file`,tarball:`Tarball`},dependencies:af,form:of,"form-placeholder":{username:`Your username`,password:`Your strong password`},"form-validation":{"required-field":`This field is required`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Unable to sign in`,"username-or-password-cant-be-empty":`Username or password can't be empty!`},help:sf,sidebar:cf,footer:lf,button:uf,error:df,lng:ff,flag:pf,packageManagers:mf,language:hf},_f={"registry-info":{title:`Bilgi`},settings:{title:`Konfigürasyon`},license:`Lisans`,totalContributors:`Toplam katkıda bulunanlar`},vf={documentation:`Dokümantasyon`,"registry-info":`Kayıt Bilgileri`,"registry-info-link":`Daha fazla öğren`,settings:`Ayarlar`,help:`Yardım`,"registry-no-conf":`Kullanabilir yapılandırma yok`,greetings:`Merhaba `},yf={packages:`Paket Ara`,isPrivate:`Private`,isRemote:`Uzak`,isCached:`Önbelleğe alınmış`},bf={loading:`Yükleniyor...`,"no-results-found":`Sonuç bulunamadı`,clear:`Temizle`,expand:`Genişlet`,collapse:`Dök`},xf={uplinks:`Bağlantılar`,versions:`Versiyonlar`,dependencies:`Bağımlılıklar`,readme:`Beni Oku`},Sf={title:`Bağlantılar`,"no-items":`{{name}} bağlantısı yok`},Cf={"current-tags":`Mevcut Etiketler`,"version-history":`Sürüm Geçmişi`,"not-available":`Mevcut değil`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},wf={"has-no-dependencies":`{{package}} bağımlılığı yok.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},Tf={username:`Kullanıcı Adı`,password:`Parola`},Ef={title:`Henüz Paket Yayınlanmadı.`,"sub-title":`İlk paketinizi yayınlamak için:`,"first-step":`1. Kullanıcı oluştur`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Yayınla`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Sayfayı yenile.`},Df={detail:{"latest-version":`En son sürüm v{{version}}`,version:`v{{version}}`,published:`Yayınlanan`},installation:{title:`Kurulum`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Depo`},author:{title:`Yazar`},distribution:{title:`Distribution`,license:`Lisans`,size:`Boyut`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Bakımcılar`},contributors:{title:`Katkıda bulunanlar`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},Of={"powered-by":`Destekleyen`,"made-with-love-on":`<0>♥</0> ile yapılmıştı`},kf={close:`Kapat`,cancel:`İptal`,login:`Giriş`,logout:`Çıkış`,"go-to-the-home-page":`Ana sayfaya git`,"learn-more":`Daha Fazlasını Öğren`,"fund-this-package":`Bu paketi <0>fonla</0>`},Af={unspecific:`Bir şeyler ters gitti.`,404:{"sorry-we-could-not-find-it":`Üzgünüz, bunu bulamadık..`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},jf={english:`English`,czech:`Czech`,japanese:`Japanese`,portuguese:`Portuguese`,spanish:`Spanish`,irish:`Irish`,german:`German`,italian:`Italian`,french:`French`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},Mf={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},Nf={title:`Paket Yöneticileri`,description:`Bu kayıt defteri için yapılandırma ayrıntılarıdır. Her paket yöneticisinin farklı yapılandırması olabilir, daha fazla ayrıntı için her bölümü genişletin. Bölüm devre dışı ise, yapılandırmanızı gözden geçirin.`,yarnclassicDetails:`Yarn classic konfigürasyonu Yarn 2+ konfigürasyonundan farklıdır. Daha fazla ayrıntı için lütfen [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x) adresini ziyaret edin.`,yarnBerryDetails:`Yarn Berry, "--registry" işaretini desteklemez, bunun yerine tüm yapılandırma, projenizin kök dizinindeki "yarnrc.yaml" dosyasında tanımlanmalıdır. Daha fazla ayrıntı için lütfen [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x) adresini ziyaret edin.`},Pf={title:`Çeviriler`,contribute:`Diliniz burada listelenmiyorsa veya tam olarak çevrilmemişse, lütfen çeviriye katkıda bulunun. Kaynak kodunu [ana depomuzda](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md) bulabilirsiniz`,description:`Bu, dil için yapılandırma ayrıntılarıdır. Bir istemci tarafı çevirisi seçmek için bir dil seçin.`},Ff={"copy-to-clipboard":`Panoya kopyala`,"author-anonymous":`Anonim`,"author-unknown":`Bilinmeyen`,"action-bar-action":{"visit-home-page":`Ana sayfayı ziyaret et`,"open-an-issue":`Sorunları aç`,"download-tarball":`Arşivi indir`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:_f,header:vf,search:yf,autoComplete:bf,tab:xf,uplinks:Sf,versions:Cf,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Ana sayfayı ziyaret et`,homepage:`Ana sayfa`,"open-an-issue":`Sorunları aç`,bugs:`Hatalar`,download:`İndir {{what}}`,"the-tar-file":`arşiv dosyası`,tarball:`Arşiv`},dependencies:wf,form:Tf,"form-placeholder":{username:`Kullanıcı adınız`,password:`Parolanız`},"form-validation":{"required-field":`Bu alan gereklidir`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Oturum açılamıyor`,"username-or-password-cant-be-empty":`Kullanıcı adı veya parola boş olamaz!`},help:Ef,sidebar:Df,footer:Of,button:kf,error:Af,lng:jf,flag:Mf,packageManagers:Nf,language:Pf},If={"registry-info":{title:`Information`},settings:{title:`Cấu hình`},license:`License`,totalContributors:`Total contributors`},Lf={documentation:`Documentation`,"registry-info":`Registry Information`,"registry-info-link":`Learn more`,settings:`Settings`,help:`Trợ giúp`,"registry-no-conf":`No configurations available`,greetings:`Hi `},Rf={packages:`Search Packages`,isPrivate:`Private`,isRemote:`Remote`,isCached:`Cached`},zf={loading:`Loading...`,"no-results-found":`No results found`,clear:`Clear`,expand:`Expand`,collapse:`Collapse`},Bf={uplinks:`Uplinks`,versions:`Phiên bản`,dependencies:`Dependencies`,readme:`Readme`},Vf={title:`Uplinks`,"no-items":`{{name}} has no uplinks.`},Hf={"current-tags":`Current Tags`,"version-history":`Version History`,"not-available":`Not available`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},Uf={"has-no-dependencies":`{{package}} has no dependencies.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},Wf={username:`Username`,password:`Password`},Gf={title:`No Package Published Yet.`,"sub-title":`To publish your first package just:`,"first-step":`1. Create user`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Publish`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Refresh this page`},Kf={detail:{"latest-version":`Latest v{{version}}`,version:`v{{version}}`,published:`Published`},installation:{title:`Installation`,latest:`phiên bản mới nhất`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Repository`},author:{title:`Author`},distribution:{title:`Distribution`,license:`License`,size:`Size`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Maintainers`},contributors:{title:`Contributors`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},qf={"powered-by":`Powered by`,"made-with-love-on":`Made with <0>♥</0> on`},Jf={close:`Đóng`,cancel:`Cancel`,login:`Login`,logout:`Logout`,"go-to-the-home-page":`Go to the home page`,"learn-more":`Learn More`,"fund-this-package":`<0>Fund</0> this package`},Yf={unspecific:`Something went wrong.`,404:{"sorry-we-could-not-find-it":`Sorry, we couldn't find it...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},Xf={english:`English`,czech:`Czech`,japanese:`Japanese`,portuguese:`Portuguese`,spanish:`Spanish`,irish:`Irish`,german:`German`,italian:`Italian`,french:`French`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},Zf={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},Qf={title:`Package Managers`,description:`This is the configuration details for the registry. Each package manager could have different configuration, expand each section for more details. If the section is disable review your configuration.`,yarnclassicDetails:`Yarn classic configuration differs from Yarn 2+ configuration. For more details, please visit [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry does not support the `--registry` flag, instead all configurarion should be defined on the `yarnrc.yaml` file in the root of your project. For more details, please visit [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},$f={title:`Translations`,contribute:`If your language is not listed here or is not fully translated, please contribute to the translation. You can find the source code on [our main repository](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`This is the configuration details for the language. Select a language to select a client side translation.`},ep={"copy-to-clipboard":`Copy to clipboard`,"author-anonymous":`Anonymous`,"author-unknown":`Unknown`,"action-bar-action":{"visit-home-page":`Visit homepage`,"open-an-issue":`Open an issue`,"download-tarball":`Download tarball`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:If,header:Lf,search:Rf,autoComplete:zf,tab:Bf,uplinks:Vf,versions:Hf,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Visit homepage`,homepage:`Homepage`,"open-an-issue":`Open an issue`,bugs:`Bugs`,download:`Download {{what}}`,"the-tar-file":`the tar file`,tarball:`Tarball`},dependencies:Uf,form:Wf,"form-placeholder":{username:`Your username`,password:`Your strong password`},"form-validation":{"required-field":`This field is required`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Unable to sign in`,"username-or-password-cant-be-empty":`Username or password can't be empty!`},help:Gf,sidebar:Kf,footer:qf,button:Jf,error:Yf,lng:Xf,flag:Zf,packageManagers:Qf,language:$f},tp={"registry-info":{title:`Information`},settings:{title:`Configuration`},license:`License`,totalContributors:`Total contributors`},np={documentation:`Documentation`,"registry-info":`Registry Information`,"registry-info-link":`Learn more`,settings:`Settings`,help:`Help`,"registry-no-conf":`No configurations available`,greetings:`Hi `},rp={packages:`Search Packages`,isPrivate:`Private`,isRemote:`Remote`,isCached:`Cached`},ip={loading:`Loading...`,"no-results-found":`No results found`,clear:`Clear`,expand:`Expand`,collapse:`Collapse`},ap={uplinks:`Uplinks`,versions:`Versions`,dependencies:`Dependencies`,readme:`Readme`},op={title:`Uplinks`,"no-items":`{{name}} has no uplinks.`},sp={"current-tags":`Current Tags`,"version-history":`Version History`,"not-available":`Not available`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},cp={"has-no-dependencies":`{{package}} has no dependencies.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},lp={username:`Username`,password:`Password`},up={title:`No Package Published Yet.`,"sub-title":`To publish your first package just:`,"first-step":`1. Create user`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Publish`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Refresh this page`},dp={detail:{"latest-version":`Latest v{{version}}`,version:`v{{version}}`,published:`Published`},installation:{title:`Ifi sori ẹrọ`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Repository`},author:{title:`Author`},distribution:{title:`Distribution`,license:`License`,size:`Size`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Maintainers`},contributors:{title:`Contributors`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},fp={"powered-by":`Powered by`,"made-with-love-on":`Made with <0>♥</0> on`},pp={close:`Close`,cancel:`Cancel`,login:`Login`,logout:`Logout`,"go-to-the-home-page":`Go to the home page`,"learn-more":`Learn More`,"fund-this-package":`<0>Fund</0> this package`},mp={unspecific:`Something went wrong.`,404:{"sorry-we-could-not-find-it":`Sorry, we couldn't find it...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},hp={english:`Gẹẹsi`,czech:`Czech`,japanese:`Japanisi`,portuguese:`Portuguese`,spanish:`Sipanisi`,irish:`Irish`,german:`Jamani`,italian:`Italian`,french:`Faranse`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},gp={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},_p={title:`Package Managers`,description:`This is the configuration details for the registry. Each package manager could have different configuration, expand each section for more details. If the section is disable review your configuration.`,yarnclassicDetails:`Yarn classic configuration differs from Yarn 2+ configuration. For more details, please visit [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry does not support the `--registry` flag, instead all configurarion should be defined on the `yarnrc.yaml` file in the root of your project. For more details, please visit [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},vp={title:`Translations`,contribute:`If your language is not listed here or is not fully translated, please contribute to the translation. You can find the source code on [our main repository](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`This is the configuration details for the language. Select a language to select a client side translation.`},yp={"copy-to-clipboard":`Copy to clipboard`,"author-anonymous":`Anonymous`,"author-unknown":`Unknown`,"action-bar-action":{"visit-home-page":`Visit homepage`,"open-an-issue":`Open an issue`,"download-tarball":`Download tarball`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:tp,header:np,search:rp,autoComplete:ip,tab:ap,uplinks:op,versions:sp,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Visit homepage`,homepage:`Homepage`,"open-an-issue":`Open an issue`,bugs:`Bugs`,download:`Download {{what}}`,"the-tar-file":`the tar file`,tarball:`Tarball`},dependencies:cp,form:lp,"form-placeholder":{username:`Your username`,password:`Your strong password`},"form-validation":{"required-field":`This field is required`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Unable to sign in`,"username-or-password-cant-be-empty":`Username or password can't be empty!`},help:up,sidebar:dp,footer:fp,button:pp,error:mp,lng:hp,flag:gp,packageManagers:_p,language:vp},bp={"registry-info":{title:`信息`},settings:{title:`配置`},license:`许可`,totalContributors:`贡献者总数`},xp={documentation:`文档`,"registry-info":`Registry 信息`,"registry-info-link":`了解更多`,settings:`设置`,help:`帮助`,"registry-no-conf":`沒有可用的配置`,greetings:`您好 `},Sp={packages:`搜索软件包`,isPrivate:`私有性`,isRemote:`远端`,isCached:`已缓存`},Cp={loading:`加载中...`,"no-results-found":`没有找到结果`,clear:`清除`,expand:`展开`,collapse:`折叠`},wp={uplinks:`上游链接`,versions:`版本`,dependencies:`依赖`,readme:`Readme`},Tp={title:`上游链接`,"no-items":`{{name}} 无上游链接。`},Ep={"current-tags":`当前标签`,"version-history":`版本历史`,"not-available":`不可用`,deprecated:`已弃用`,"search.placeholder":`按版本范围搜索,例如:^1.0.0。`,"hide-deprecated":`通过全局配置隐藏所有过时的版本`},Dp={"has-no-dependencies":`{{package}} 没有依赖包。`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},Op={username:`用户名`,password:`密码`},kp={title:`尚无软件包发布。`,"sub-title":`要发布你的首个包,只需:`,"first-step":`1. 创建用户`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. 发布`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. 刷新当前页面`},Ap={detail:{"latest-version":`最新版本 v{{version}}`,version:`v{{version}}`,published:`发布`},installation:{title:`安装`,latest:`最新版本`,global:`全局软件包`,yarnModern:`yarn 现代语法`},repository:{title:`仓库`},author:{title:`作者`},distribution:{title:`分发`,license:`许可`,size:`大小`,"file-count":`文件数量`},keywords:{title:`关键词`},maintainers:{title:`维护者`},contributors:{title:`贡献者`},engines:{"npm-version":`Npm 版本`,"pnpm-version":`Pnpm 版本`,"yarn-version":`Yarn 版本`,"node-js":`Node.js`}},jp={"powered-by":`Powered by`,"made-with-love-on":`用<0>♥</0>制作,来自`},Mp={close:`关闭`,cancel:`取消`,login:`登录`,logout:`注销`,"go-to-the-home-page":`跳转到主页`,"learn-more":`了解更多`,"fund-this-package":`<0>捐助</0>此软件包`},Np={unspecific:`发生了一些错误。`,404:{"sorry-we-could-not-find-it":`对不起,请求内容未找到……`},401:{"sorry-no-access":`抱歉,您需要凭据才能查看此页面。`},"app-context-not-correct-used":`未正确使用应用上下文`,"theme-context-not-correct-used":`未正确使用主题上下文`,"package-meta-is-required-at-detail-context":`packageMeta 在 DetailContext 中是必需的`},Pp={english:`英语`,czech:`捷克语`,japanese:`日语`,portuguese:`葡萄牙语`,spanish:`西班牙语`,irish:`爱尔兰语`,german:`德语`,italian:`意大利语`,french:`法语`,russian:`俄语`,turkish:`土耳其语`,ukraine:`乌克兰语`,khmer:`柬埔寨语`,chinese:`中文简体`,chineseTraditional:`中文繁体`},Fp={austria:`奥地利`,australia:`澳大利亚`,brazil:`巴西`,canada:`加拿大`,spain:`西班牙`,nicaragua:`尼加拉瓜`,india:`印度`,china:`中国`,germany:`德国`,taiwan:`台湾`},Ip={title:`包管理器`,description:`下面是配置 registry 的详细说明。每个包管理器有不同的配置,展开每项了解更多细节。如果某一项是禁用的,请检查你的配置。`,yarnclassicDetails:`Yarn 经典版本的配置不同于 Yarn 2+。如需了解更多,请访问 [Yarn 经典版本](https://verdaccio.org/docs/cli-registry#yarn-1x)。`,yarnBerryDetails:"Yarn Berry 不支持 `--registry` 这个参数,而是所有的配置需要定义在项目根目录下的 `yarnrc.yaml` 文件里。如需了解更多,请访问 [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)。"},Lp={title:`翻译`,contribute:`如果你的语言未在此列出,或者未完全翻译,请一起来协助翻译吧。你可以在[我们的主源码仓库](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)找到源码。`,description:`下方是所有可选择的语言,请选择一种语言来应用页面翻译。`},Rp={"copy-to-clipboard":`复制到剪贴板`,"author-anonymous":`匿名`,"author-unknown":`未知`,"action-bar-action":{"visit-home-page":`访问主页`,"open-an-issue":`提交问题`,"download-tarball":`下载压缩包`,raw:`查看 Manifest`,"raw-title":`{{package}} 的 Manifest`},dialog:bp,header:xp,search:Sp,autoComplete:Cp,tab:wp,uplinks:Tp,versions:Ep,package:{"published-on":`发布于 {{time}}`,version:`v{{version}}`,"visit-home-page":`访问主页`,homepage:`主页`,"open-an-issue":`提交问题`,bugs:`缺陷`,download:`下载 {{what}}`,"the-tar-file":`tar 文件`,tarball:`压缩包`},dependencies:Dp,form:Op,"form-placeholder":{username:`你的用户名`,password:`尽可能健壮的密码`},"form-validation":{"required-field":`必填项`,"required-min-length":`这个字段的最小长度是 {{length}}`,"unable-to-sign-in":`无法登录`,"username-or-password-cant-be-empty":`用户名或密码不能为空!`},help:kp,sidebar:Ap,footer:jp,button:Mp,error:Np,lng:Pp,flag:Fp,packageManagers:Ip,language:Lp},zp={"registry-info":{title:`Information`},settings:{title:`設定檔案`},license:`許可`,totalContributors:`Total contributors`},Bp={documentation:`文件`,"registry-info":`註冊資訊`,"registry-info-link":`了解更多`,settings:`Settings`,help:`幫助`,"registry-no-conf":`沒有可用設定`,greetings:`你好 `},Vp={packages:`找尋套件`,isPrivate:`私有的`,isRemote:`遠端`,isCached:`已暫存。`},Hp={loading:`載入中...`,"no-results-found":`無結果`,clear:`清除`,expand:`展開`,collapse:`收縮`},Up={uplinks:`上行連結`,versions:`版本`,dependencies:`相依`,readme:`Readme`},Wp={title:`上行連結`,"no-items":`{{name}} 沒有上游連結。`},Gp={"current-tags":`當前標籤`,"version-history":`Version History`,"not-available":`無法取得`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},Kp={"has-no-dependencies":`{{package}} 沒有相依套件.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},qp={username:`使用者名稱`,password:`密碼`},Jp={title:`尚未發布任何 Npm 套件.`,"sub-title":`發布第一個 NPM 套件:`,"first-step":`1. Create user`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. 發布`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. 重新整理頁面。`},Yp={detail:{"latest-version":`最新版本 v{{version}}`,version:`v{{version}}`,published:`Published`},installation:{title:`安装`,latest:`最新版本`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`儲存庫`},author:{title:`作者`},distribution:{title:`Distribution`,license:`許可`,size:`大小`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`維護人員`},contributors:{title:`貢獻人員`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},Xp={"powered-by":`Powered by`,"made-with-love-on":`用 <0>♥</0> 製作`},Zp={close:`關閉`,cancel:`取消`,login:`登入`,logout:`登出`,"go-to-the-home-page":`前往首頁`,"learn-more":`了解更多`,"fund-this-package":`<0>贊助</0> 這個套件`},Qp={unspecific:`發生錯誤。`,404:{"sorry-we-could-not-find-it":`不好意思, 找不到...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},$p={english:`English`,czech:`Czech`,japanese:`日語`,portuguese:`Portuguese`,spanish:`西班牙語`,irish:`Irish`,german:`德語`,italian:`Italian`,french:`法語`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},em={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},tm={title:`套件管理器`,description:`此為本套件管理庫的詳細設定檔案。每個套件管理器都可以有不同的設定檔案,展開每一個區塊以獲得更多資訊。若區塊無法展開,請檢視您的設定檔案。`,yarnclassicDetails:`Yarn classic 設定檔與 Yarn 2+ 設定檔有些許不同。需要更多詳細資訊請點擊:[Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x)。`,yarnBerryDetails:"Yarn Berry does not support the `--registry` flag, instead all configurarion should be defined on the `yarnrc.yaml` file in the root of your project. For more details, please visit [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},nm={title:`翻譯`,contribute:`如果你的語言並沒有被陳列在這裡,或沒有被完整的翻譯,請踴躍貢獻您的翻譯。您可以在 [我們的 Repository](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)找到原始碼。`,description:`這邊是語言設定檔案,結果將顯示在您的應用程式介面上。`},rm={"copy-to-clipboard":`複製到剪貼簿`,"author-anonymous":`匿名`,"author-unknown":`未知`,"action-bar-action":{"visit-home-page":`瀏覽首頁`,"open-an-issue":`提交問題`,"download-tarball":`下載 tarball`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:zp,header:Bp,search:Vp,autoComplete:Hp,tab:Up,uplinks:Wp,versions:Gp,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`瀏覽首頁`,homepage:`首頁`,"open-an-issue":`提交問題`,bugs:`漏洞`,download:`下载 {{what}}`,"the-tar-file":`tar 檔案`,tarball:`壓縮檔`},dependencies:Kp,form:qp,"form-placeholder":{username:`你的使用者名稱`,password:`你的密碼`},"form-validation":{"required-field":`必填欄位`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`無法登入`,"username-or-password-cant-be-empty":`使用者名稱或密碼不可空白`},help:Jp,sidebar:Yp,footer:Xp,button:Zp,error:Qp,lng:$p,flag:em,packageManagers:tm,language:nm},im={"registry-info":{title:`Information`},settings:{title:`Configuration`},license:`License`,totalContributors:`Total contributors`},am={documentation:`Documentation`,"registry-info":`Registry Information`,"registry-info-link":`Learn more`,settings:`Settings`,help:`Help`,"registry-no-conf":`No configurations available`,greetings:`Hi `},om={packages:`Search Packages`,isPrivate:`Private`,isRemote:`Remote`,isCached:`Cached`},sm={loading:`Loading...`,"no-results-found":`No results found`,clear:`Clear`,expand:`Expand`,collapse:`Collapse`},cm={uplinks:`Uplinks`,versions:`Versions`,dependencies:`Dependencies`,readme:`Readme`},lm={title:`Uplinks`,"no-items":`{{name}} has no uplinks.`},um={"current-tags":`Current Tags`,"version-history":`Version History`,"not-available":`Not available`,deprecated:`Deprecated`,"search.placeholder":`Search for a version by semver range, e.g., ^1.0.0.`,"hide-deprecated":`All deprecated versions are hidden by global configuration`},dm={"has-no-dependencies":`{{package}} has no dependencies.`,"dependency-block":`{{package}}: {{version}}`,"dependency-block-bundle":`{{package}}`},fm={username:`Username`,password:`Password`},pm={title:`No Package Published Yet.`,"sub-title":`To publish your first package just:`,"first-step":`1. Create user`,"first-step-command-line":`npm adduser --registry {{registryUrl}}`,"second-step":`2. Publish`,"second-step-command-line":`npm publish --registry {{registryUrl}}`,"third-step":`3. Refresh this page`},mm={detail:{"latest-version":`Latest v{{version}}`,version:`v{{version}}`,published:`Published`},installation:{title:`Installation`,latest:`latest version`,global:`global package`,yarnModern:`yarn modern syntax`},repository:{title:`Repository`},author:{title:`Author`},distribution:{title:`Distribution`,license:`License`,size:`Size`,"file-count":`File Count`},keywords:{title:`Keywords`},maintainers:{title:`Maintainers`},contributors:{title:`Contributors`},engines:{"npm-version":`Npm Version`,"pnpm-version":`Pnpm Version`,"yarn-version":`Yarn Version`,"node-js":`Node.js`}},hm={"powered-by":`Powered by`,"made-with-love-on":`Made with <0>♥</0> on`},gm={close:`Close`,cancel:`Cancel`,login:`Login`,logout:`Logout`,"go-to-the-home-page":`Go to the home page`,"learn-more":`Learn More`,"fund-this-package":`<0>Fund</0> this package`},_m={unspecific:`Something went wrong.`,404:{"sorry-we-could-not-find-it":`Sorry, we couldn't find it...`},401:{"sorry-no-access":`Sorry, you need credentials access to see this page.`},"app-context-not-correct-used":`The app context was not used correctly`,"theme-context-not-correct-used":`The theme context was not used correctly`,"package-meta-is-required-at-detail-context":`packageMeta is required at DetailContext`},vm={english:`English`,czech:`Czech`,japanese:`Japanese`,portuguese:`Portuguese`,spanish:`Spanish`,irish:`Irish`,german:`German`,italian:`Italian`,french:`French`,russian:`Russian`,turkish:`Turkish`,ukraine:`Ukraine`,khmer:`Khmer`,chinese:`Chinese Simplified`,chineseTraditional:`Chinese Traditional`},ym={austria:`Austria`,australia:`Australia`,brazil:`Brazil`,canada:`Canada`,spain:`Spain`,nicaragua:`Nicaragua`,india:`India`,china:`China`,germany:`Germany`,taiwan:`Taiwan`},bm={title:`Package Managers`,description:`This is the configuration details for the registry. Each package manager could have different configuration, expand each section for more details. If the section is disable review your configuration.`,yarnclassicDetails:`Yarn classic configuration differs from Yarn 2+ configuration. For more details, please visit [Yarn Classic](https://verdaccio.org/docs/cli-registry#yarn-1x).`,yarnBerryDetails:"Yarn Berry does not support the `--registry` flag, instead all configurarion should be defined on the `yarnrc.yaml` file in the root of your project. For more details, please visit [Yarn Berry](https://verdaccio.org/docs/cli-registry#yarn-berry-2x)."},xm={title:`Translations`,contribute:`If your language is not listed here or is not fully translated, please contribute to the translation. You can find the source code on [our main repository](https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md)`,description:`This is the configuration details for the language. Select a language to select a client side translation.`},Sm={"copy-to-clipboard":`Copy to clipboard`,"author-anonymous":`Anonymous`,"author-unknown":`Unknown`,"action-bar-action":{"visit-home-page":`Visit homepage`,"open-an-issue":`Open an issue`,"download-tarball":`Download tarball`,raw:`View manifest`,"raw-title":`Manifest of {{package}}`},dialog:im,header:am,search:om,autoComplete:sm,tab:cm,uplinks:lm,versions:um,package:{"published-on":`Published {{time}}`,version:`v{{version}}`,"visit-home-page":`Visit homepage`,homepage:`Homepage`,"open-an-issue":`Open an issue`,bugs:`Bugs`,download:`Download {{what}}`,"the-tar-file":`the tar file`,tarball:`Tarball`},dependencies:dm,form:fm,"form-placeholder":{username:`Your username`,password:`Your strong password`},"form-validation":{"required-field":`This field is required`,"required-min-length":`This field required with a minimum length of {{length}}`,"unable-to-sign-in":`Unable to sign in`,"username-or-password-cant-be-empty":`Username or password can't be empty!`},help:pm,sidebar:mm,footer:hm,button:gm,error:_m,lng:vm,flag:ym,packageManagers:bm,language:xm},Cm=Object.assign({"./download_translations/cs-CZ/ui.json":Sc,"./download_translations/de-DE/ui.json":Vc,"./download_translations/es-ES/ui.json":ol,"./download_translations/fr-FR/ui.json":Tl,"./download_translations/ga-IE/ui.json":Wl,"./download_translations/gl-ES/ui.json":lu,"./download_translations/it-IT/ui.json":Ou,"./download_translations/ko-KR/ui.json":qu,"./download_translations/pl-PL/ui.json":fd,"./download_translations/pt-BR/ui.json":jd,"./download_translations/ru-RU/ui.json":Xd,"./download_translations/sr-CS/ui.json":gf,"./download_translations/tr-TR/ui.json":Ff,"./download_translations/vi-VN/ui.json":ep,"./download_translations/yo-NG/ui.json":yp,"./download_translations/zh-CN/ui.json":Rp,"./download_translations/zh-TW/ui.json":rm});function wm(e){return e===`en-US`?Sm:Cm[`./download_translations/${e}/ui.json`]??Sm}var Tm=`en-US`,Em=[{lng:Tm,icon:pt,menuKey:`lng.english`},{lng:`cs-CZ`,icon:Gt,menuKey:`lng.czech`},{lng:`pt-BR`,icon:Ye,menuKey:`lng.portuguese`},{lng:`es-ES`,icon:Ht,menuKey:`lng.spanish`},{lng:`ga-IE`,icon:u,menuKey:`lng.irish`},{lng:`de-DE`,icon:$e,menuKey:`lng.german`},{lng:`it-IT`,icon:Bt,menuKey:`lng.italian`},{lng:`fr-FR`,icon:Oe,menuKey:`lng.french`},{lng:`ja-JP`,icon:je,menuKey:`lng.japanese`},{lng:`ru-RU`,icon:p,menuKey:`lng.russian`},{lng:`tr-TR`,icon:ve,menuKey:`lng.turkish`},{lng:`uk-UA`,icon:i,menuKey:`lng.ukraine`},{lng:`km-KH`,icon:g,menuKey:`lng.khmer`},{lng:`zh-CN`,icon:Rt,menuKey:`lng.chinese`},{lng:`zh-TW`,icon:ht,menuKey:`lng.chineseTraditional`}],Dm=Em.reduce((e,t)=>(e.push(t.lng),e),[]),Om=Em.reduce((e,t)=>(e[t.lng]={translation:t.lng===`en-US`?wm(Tm):wm(t.lng)},e),{});st.use(lt).init({lng:window?.__VERDACCIO_BASENAME_UI_OPTIONS?.language||`en-US`,fallbackLng:Tm,whitelist:[...Dm],load:`currentOnly`,react:{useSuspense:!1},resources:Om,debug:!1,interpolation:{escapeValue:!1}});var km=st,$=e(Et());function Am(){let e=st.options.fallbackLng;if(Array.isArray(e))return e[0];if(typeof e==`string`)return e}async function jm(){let t=Am();switch((st.language||t)?.toLowerCase()){case`pt-br`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.o())),__vite__mapDeps([1,2,3])),$.default.locale(`pt-br`);break;case`de-de`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.d())),__vite__mapDeps([1,2,3])),$.default.locale(`de`);break;case`es-es`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.l())),__vite__mapDeps([1,2,3])),$.default.locale(`es`);break;case`fr-fr`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.c())),__vite__mapDeps([1,2,3])),$.default.locale(`fr`);break;case`zh-cn`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.n())),__vite__mapDeps([1,2,3])),$.default.locale(`zh-cn`);break;case`ja-jp`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.s())),__vite__mapDeps([1,2,3])),$.default.locale(`ja`);break;case`ru-ru`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.a())),__vite__mapDeps([1,2,3])),$.default.locale(`ru`);break;case`tr-tr`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.i())),__vite__mapDeps([1,2,3])),$.default.locale(`tr`);break;case`uk-ua`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.r())),__vite__mapDeps([1,2,3])),$.default.locale(`uk`);break;case`zh-tw`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.t())),__vite__mapDeps([1,2,3])),$.default.locale(`zh-tw`);break;case`cs-cz`:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.f())),__vite__mapDeps([1,2,3])),$.default.locale(`cs`);break;default:await M(()=>import(`./vendors.B0uBcSLZ.js`).then(t=>e(t.u())),__vite__mapDeps([1,2,3])),$.default.locale(`en`);break}}var Mm=b(A)(({theme:e})=>({backgroundColor:e.palette.background.default})),Nm=b(A)({[`@media screen and (min-width: ${ri.container}px)`]:{maxWidth:ri.container,width:`100%`,marginLeft:`auto`,marginRight:`auto`}}),Pm=b(`span`)(()=>({width:`25px`}));function Fm({onCloseDialog:e,title:t,isOpen:n}){let{t:r}=bt();return(0,W.jsx)(Oa,{dialogTitle:t,isOpen:n,onCloseDialog:e,tabPanels:[{element:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(y,{children:nc}),(0,W.jsx)(Qs,{})]})},{element:(0,W.jsx)(y,{children:rc})},{element:(0,W.jsx)(tc,{})}],tabs:[{label:r(`about`)},{label:r(`dialog.license`)},{label:``,icon:(0,W.jsx)(Pm,{children:(0,W.jsx)(i,{})})}]})}var Im=()=>{let{configOptions:e}=B(),t=Dt(),n=[R.LOGIN,R.SUCCESS,R.ADD_USER,R.CHANGE_PASSWORD].includes(t.pathname);return(0,U.useEffect)(()=>{jm()},[]),(0,W.jsxs)(Mm,{display:`flex`,flexDirection:`column`,height:`100%`,children:[(0,W.jsx)(mn,{children:(0,W.jsx)(ms,{HeaderInfoDialog:Fm,isPlainHeader:n})}),(0,W.jsx)(Nm,{flexGrow:1,children:(0,W.jsx)(go,{})}),e.showFooter&&(0,W.jsx)(Ss,{})]})},Lm=window?.__VERDACCIO_BASENAME_UI_OPTIONS?.url_prefix,Rm=()=>(0,W.jsx)(U.StrictMode,{children:(0,W.jsx)(so,{children:(0,W.jsx)(bn,{i18n:km,listLanguages:Em,onMount:()=>jm,children:(0,W.jsx)(U.Suspense,{fallback:(0,W.jsx)(Pa,{}),children:(0,W.jsx)(tt,{basename:Lm,children:(0,W.jsx)(Im,{})})})})})}),zm=document.getElementById(`root`);if(!zm)throw Error(`Root container missing`);(0,Mn.createRoot)(zm).render((0,W.jsx)(()=>(0,W.jsx)(so,{children:(0,W.jsx)(cn,{children:(0,W.jsxs)(ci,{children:[(0,W.jsx)(Ys,{}),(0,W.jsx)(On,{children:(0,W.jsx)(Sn,{children:(0,W.jsx)(Rm,{})})})]})})}),{}));export{Us as a,Ws as i,Ks as n,Vs as o,Gs as r,qs as t};
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,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QkFBZ0IsQ0FDZCxJQUFpQixFQUNoQixFQUFFLENBQUMsRUFFTixVQUNHLEdBQUQsQ0FBVyxRQUFRLE9BQU8sY0FBYyxTQUFTLE9BQU8sZ0JBQXhELFdBQ0csR0FBRCxvQkFDRyxHQUFELENBQVEsaUJBQWtCLEdBQWlDLGdCQUFpQixFQUM3RCxZQUNoQixHQUFELENBQWtCLFNBQVUscUJBQ3pCLEdBQUQsRUFBWSxFQUNLLEVBQ2xCLEVBQWMsc0JBQWUsR0FBRCxFQUFVLEVBQzdCLElBS1YsR0FBVyxRQUFRLGlDQUFpQyxXQUVwRCxRQUNKLFNBQ0csYUFBRCxvQkFDRyxHQUFELG9CQUNHLEdBQUQsQ0FDUSxRQUNTLGlCQUNmLFlBQWUsc0JBRWQsV0FBRCxDQUFVLG1CQUFXLEdBQUQsRUFBVyxxQkFDNUIsR0FBRCxDQUF5QiwrQkFDdEIsR0FBRCxFQUFjLEVBQ0EsRUFDUCxFQUNRLEVBQ1AsRUFDTCxFQ2xIWCxHQUFZLFNBQVMsZUFBZSxPQUFPLENBRWpELEdBQUksQ0FBQyxHQUNILE1BQVUsTUFBTSx5QkFBeUIsRUFHckMsaUJBQWtCLEdBQVUsQ0FpQjdCLHNCQWZDLFNBQ0gsR0FBRCxvQkFDRyxHQUFELHFCQUNHLEdBQUQscUJBQ0csR0FBRCxFQUFpQixZQUNoQixHQUFELG9CQUNHLEdBQUQsb0JBQ0csR0FBRCxFQUFPLEVBQ00sRUFDWSxFQUNmLEdBQ1MsRUFDYixFQUdOLEVBQWdCLEVBQUMiLCJuYW1lcyI6WyJXcmFwcGVyIiwic3R5bGVkIiwiQ29udGVudCIsIkZpbGVDb3B5IiwiUmVhY3RKc29uVmlld01vZHVsZS5kZWZhdWx0IiwiUmVhY3RKc29uVmlld01vZHVsZSIsIkNsb3NlSWNvbiIsIkZhYiIsIkZhYk1VSSIsIkhvbWVJY29uIiwiQnVnUmVwb3J0IiwiRG93bmxvYWRJY29uIiwiUmF3T25JY29uIiwiaTE4bmV4dCIsIkZyYWdtZW50JDEiLCJTdHlsZWRUZXh0IiwiQXV0aG9yIiwiTGlzdCIsIlRpdGxlIiwiU3R5bGVkQm94IiwiQWRkIiwiTWF0ZXJpYWxVSVN2Z0ljb24iLCJWZXJzaW9uIiwiRmF2b3JpdGUiLCJTZXR0aW5ncyIsIk1hdGVyaWFsVUlNZW51SXRlbSIsIkNoZWNrIiwiTWFya2VkIiwiaGxqcyIsIkRPTVB1cmlmeSIsIkljb24iLCJTdHlsZWRIZWFkaW5nIiwiQ29udGFpbmVyIiwiRm9sZGVyT2ZmSWNvbiIsIkxvY2tJY29uIiwiU3R5bGVkSWNvbkJ1dHRvbiIsIkxvY2tPdXRsaW5lZCIsIkVycm9yIiwiU3R5bGVkVGV4dEZpZWxkIiwiUm91dGUiLCJ5dXAuc3RyaW5nIiwieXVwLm9iamVjdCIsInl1cC5yZWYiLCJ5dXBSZXNvbHZlciIsIkRlc2NyaXB0aW9uIiwiSHR0cHNJY29uIiwiU3luY0FsdCIsIkNhY2hlZCIsIlNlYXJjaE11aSIsImExMXlQcm9wcyIsIlRhYlBhbmVsIiwiTGluayIsIkF2YXRhciIsImZvcm1hdERhdGUiLCJmb3JtYXREYXRlRGlzdGFuY2UiLCJJY29uQnV0dG9uIiwiRnJhZ21lbnQiLCJDZWxsTWVhc3VyZXJDYWNoZSIsIkNlbGxNZWFzdXJlciIsIldpbmRvd1Njcm9sbGVyIiwiQXV0b1NpemVyIiwiQ29tcG9uZW50IiwiTG9naW4iLCJTdWNjZXNzIiwiQWRkVXNlciIsIkNoYW5nZVBhc3N3b3JkIiwiVGFiUG9zaXRpb24iLCJBY2NvdW50Q2lyY2xlIiwiSW5mbyIsIk5pZ2h0c1N0YXkiLCJXYlN1bm55IiwiVGV4dENvbnRlbnQiLCJFeHBhbmRNb3JlSWNvbiIsIlJlYWN0TWFya2Rvd24iLCJGbGFncyIsIkZsYWdzSWNvbi5FUyIsIkZsYWdzSWNvbi5OSSIsIkZsYWdzSWNvbi5JTiIsIkZsYWdzSWNvbi5CUiIsIkZsYWdzSWNvbi5DTiIsIkZsYWdzSWNvbi5BVSIsIkZsYWdzSWNvbi5ERSIsIkZsYWdzSWNvbi5UVyIsIkZsYWdzSWNvbi5BVCIsIkZsYWdzSWNvbi5DQSIsIkNoZWNrQ2lyY2xlSWNvbiIsIkxpbmskMSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvQ29weUNsaXBib2FyZC91dGlscy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvQ29weUNsaXBib2FyZC9Db3B5VG9DbGlwQm9hcmQubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1Jhd1ZpZXdlci9SYXdWaWV3ZXIubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0FjdGlvbkJhci9BY3Rpb25CYXJBY3Rpb24ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0FjdGlvbkJhci9BY3Rpb25CYXIubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1BlcnNvbi9QZXJzb25Ub29sdGlwLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9QZXJzb24vdXRpbHMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1BlcnNvbi9QZXJzb24ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0F1dGhvci9zdHlsZXMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0F1dGhvci9BdXRob3IubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0RlcHJlY2F0ZWQvRGVwcmVjYXRlZC5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvRGV2ZWxvcGVycy9EZXZlbG9wZXJUeXBlLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9EZXZlbG9wZXJzL1RpdGxlLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9EZXZlbG9wZXJzL2dldC11bmlxdWUtZGV2ZWxvcGVyLXZhbHVlcy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvRGV2ZWxvcGVycy9EZXZlbG9wZXJzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9EaXN0cmlidXRpb24vc3R5bGVzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9EaXN0cmlidXRpb24vRGlzdC5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvU3ZnSWNvbi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvVmVyc2lvbi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvVGltZS5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvRmlsZUJpbmFyeS5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvTGF3Lm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JY29ucy9MaWNlbnNlLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JY29ucy9FYXJ0aC5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvRGV2c0ljb25zL3R5cGVzY3JpcHQubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0ljb25zL0RldnNJY29ucy9UeXBlU2NyaXB0Mi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvRGV2c0ljb25zL2NvbW1vbmpzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvQ29tbW9uSlMyLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvZXM2bW9kdWxlLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvRVM2TW9kdWxlMi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvRGV2c0ljb25zL25vZGVqcy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvSWNvbnMvRGV2c0ljb25zL05vZGVKUzIubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0ljb25zL0RldnNJY29ucy9naXQubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0ljb25zL0RldnNJY29ucy9HaXQyLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JY29ucy9NYW5hZ2Vycy9ucG0ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0ljb25zL01hbmFnZXJzL05wbTIubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0ljb25zL01hbmFnZXJzL3BucG0ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0ljb25zL01hbmFnZXJzL1BucG0yLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JY29ucy9NYW5hZ2Vycy95YXJuLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JY29ucy9NYW5hZ2Vycy9ZYXJuMi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvRW5naW5lcy9zdHlsZXMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0VuZ2luZXMvRW5naW5lcy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvRnVuZEJ1dHRvbi9GdW5kQnV0dG9uLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9IZWFkaW5nL0hlYWRpbmcubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1NldHRpbmdzTWVudS9TZXR0aW5nc01lbnUubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0luc3RhbGwvSW5zdGFsbExpc3RJdGVtLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9JbnN0YWxsL0luc3RhbGwubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0tleXdvcmRzL0tleXdvcmRMaXN0SXRlbXMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0tleXdvcmRzL0tleXdvcmRzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9SZWFkbWUvdXRpbHMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9UaGVtZS9tb2Rlcy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL1RoZW1lL3Rva2Vucy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL1RoZW1lL3RoZW1lLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvVGhlbWUvVGhlbWVQcm92aWRlci5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvUmVhZG1lL1JlYWRtZS5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvU2lkZUJhclRpdGxlL3V0aWxzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9TaWRlQmFyVGl0bGUvU2lkZUJhclRpdGxlLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvTG9nby9pbWcvbG9nby1ibGFjay1hbmQtd2hpdGUubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0xvZ28vaW1nL2xvZ28ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0xvZ28vTG9nby5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvTWVudUl0ZW0vTWVudUl0ZW0ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL05vdEZvdW5kL05vdEZvdW5kLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9Gb3JiaWRkZW4vRm9yYmlkZGVuLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9Mb2dpbkZvcm0vc3R5bGVzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9Mb2dpbkRpYWxvZy9Mb2dpbkRpYWxvZ0Nsb3NlQnV0dG9uLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9Mb2dpbkRpYWxvZy9Mb2dpbkRpYWxvZ0Zvcm1FcnJvci5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvTG9naW5Gb3JtL1Bhc3N3b3JkRmllbGQubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0xvZ2luRm9ybS9Vc2VybmFtZUZpZWxkLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9Mb2dpbkZvcm0vTG9naW4ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC91dGlscy9zY2hlbWFzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9Mb2dpbkZvcm0vdXNlTG9naW5Gb3JtLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9Mb2dpbkRpYWxvZy9Mb2dpbkRpYWxvZ0Zvcm0ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0xvZ2luRGlhbG9nL0xvZ2luRGlhbG9nLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9TZWFyY2gvQXV0b0NvbXBsZXRlL3N0eWxlcy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvU2VhcmNoL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGUubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1NlYXJjaC91dGlscy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvU2VhcmNoL1NlYXJjaEl0ZW0ubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1NlYXJjaC9zdHlsZXMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1NlYXJjaC9TZWFyY2gubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1JlZ2lzdHJ5SW5mb0RpYWxvZy9zdHlsZXMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1JlZ2lzdHJ5SW5mb0RpYWxvZy9SZWdpc3RyeUluZm9EaWFsb2cubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0hlYWRlckluZm9EaWFsb2cvSGVhZGVySW5mb0RpYWxvZy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL2NvbXBvbmVudHMvTG9hZGluZy9TcGlubmVyL1NwaW5uZXIubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0xvYWRpbmcvc3R5bGVzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9Mb2FkaW5nL0xvYWRpbmcubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1BhY2thZ2Uvc3R5bGVzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9QYWNrYWdlL1BhY2thZ2UubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0hlbHAvc3R5bGVzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9IZWxwL0hlbHAubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL1BhY2thZ2VMaXN0L1BhY2thZ2VMaXN0Lm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9FcnJvckJvdW5kYXJ5L0Vycm9yQm91bmRhcnkubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9jb21wb25lbnRzL0FwcFJvdXRlL0FwcFJvdXRlLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvY29tcG9uZW50cy9SZXBvc2l0b3J5L1JlcG9zaXRvcnkubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9TaWRlQmFyL1NpZGViYXIubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9EZXRhaWwvUmVhZG1lU2VjdGlvbi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3NlY3Rpb25zL0RldGFpbC9Db250YWluZXJDb250ZW50Lm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvc2VjdGlvbnMvRGV0YWlsL1RhYnMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9EZXRhaWwvRGV0YWlsLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvc2VjdGlvbnMvSGVhZGVyL3N0eWxlcy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3NlY3Rpb25zL0hlYWRlci9IZWFkZXJMZWZ0Lm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvc2VjdGlvbnMvSGVhZGVyL0hlYWRlckdyZWV0aW5ncy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3NlY3Rpb25zL0hlYWRlci9IZWFkZXJNZW51Lm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvc2VjdGlvbnMvSGVhZGVyL0hlYWRlclRvb2xUaXBJY29uLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvc2VjdGlvbnMvSGVhZGVyL0hlYWRlclRvb2xUaXAubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9IZWFkZXIvSGVhZGVyUmlnaHQubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9IZWFkZXIvTGFuZ3VhZ2VTd2l0Y2gubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9IZWFkZXIvUmVnaXN0cnlJbmZvQ29udGVudC9zdHlsZXMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9IZWFkZXIvUmVnaXN0cnlJbmZvQ29udGVudC9SZWdpc3RyeUluZm9Db250ZW50Lm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvc2VjdGlvbnMvSGVhZGVyL0hlYWRlclNldHRpbmdzRGlhbG9nLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvc2VjdGlvbnMvSGVhZGVyL0hlYWRlci5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3NlY3Rpb25zL0hvbWUvSG9tZS5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3NlY3Rpb25zL0Zvb3Rlci9zdHlsZXMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9Gb290ZXIvRm9vdGVyLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvbGF5b3V0cy9TZWN1cml0eS9EaWFsb2cubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9TZWN1cml0eS9zdHlsZXMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9TZWN1cml0eS9TdWNjZXNzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvc2VjdGlvbnMvU2VjdXJpdHkvdXRpbHMubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9TZWN1cml0eS9Mb2dpbi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3NlY3Rpb25zL1NlY3VyaXR5L0FkZFVzZXIubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9zZWN0aW9ucy9TZWN1cml0eS9DaGFuZ2VQYXNzd29yZC5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3BhZ2VzL0Zyb250L0hvbWUubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9sYXlvdXRzL1ZlcnNpb24vVmVyc2lvbi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3BhZ2VzL1ZlcnNpb24vVmVyc2lvbi5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3BhZ2VzL1NlY3VyaXR5L0xvZ2luLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvcGFnZXMvU2VjdXJpdHkvU3VjY2Vzcy5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL3BhZ2VzL1NlY3VyaXR5L0FkZFVzZXIubWpzIiwiLi4vLi4vLi4vdWktY29tcG9uZW50cy9idWlsZC9wYWdlcy9TZWN1cml0eS9DaGFuZ2VQYXNzd29yZC5tanMiLCIuLi8uLi8uLi91aS1jb21wb25lbnRzL2J1aWxkL1RoZW1lL1Jlc2V0U3R5bGVzLm1qcyIsIi4uLy4uLy4uL3VpLWNvbXBvbmVudHMvYnVpbGQvVGhlbWUvU3R5bGVCYXNlbGluZS5tanMiLCIuLi9zcmMvY29tcG9uZW50cy9Db250cmlidXRvcnMvQ29udHJpYnV0b3JzLnRzeCIsIi4uL3NyYy9jb21wb25lbnRzL1N1cHBvcnQvU3VwcG9ydC50c3giLCIuLi9zcmMvY29tcG9uZW50cy9hYm91dC5tZCIsIi4uL3NyYy9jb21wb25lbnRzL2xpY2Vuc2UubWQiLCIuLi9zcmMvaTE4bi9sb2FkVHJhbnNsYXRpb25GaWxlLnRzIiwiLi4vc3JjL2kxOG4vZW5hYmxlZExhbmd1YWdlcy50cyIsIi4uL3NyYy9pMThuL2NvbmZpZy50cyIsIi4uL3NyYy9pMThuL2xvYWQtZGF5anMtbG9jYWxlLnRzIiwiLi4vc3JjL0FwcC9BcHAudHN4IiwiLi4vc3JjL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvQ29weUNsaXBib2FyZC91dGlscy50c1xudmFyIGNvcHlUb0NsaXBCb2FyZFV0aWxpdHkgPSAoc3RyKSA9PiAoZXZlbnQpID0+IHtcblx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoc3RyKTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IGNvcHlUb0NsaXBCb2FyZFV0aWxpdHkgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMubWpzLm1hcCIsImltcG9ydCB7IGNvcHlUb0NsaXBCb2FyZFV0aWxpdHkgfSBmcm9tIFwiLi91dGlscy5tanNcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IEZpbGVDb3B5IGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0ZpbGVDb3B5XCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uXCI7XG5pbXBvcnQgVG9vbHRpcCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Ub29sdGlwXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvQ29weUNsaXBib2FyZC9Db3B5VG9DbGlwQm9hcmQudHN4XG52YXIgV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHRqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCJcbn0pO1xudmFyIENvbnRlbnQgPSBzdHlsZWQoXCJzcGFuXCIpKCh7IHRoZW1lIH0pID0+ICh7XG5cdGRpc3BsYXk6IFwiaW5saW5lLWJsb2NrXCIsXG5cdG92ZXJmbG93OiBcImhpZGRlblwiLFxuXHR0ZXh0T3ZlcmZsb3c6IFwiZWxsaXBzaXNcIixcblx0aGVpZ2h0OiBcImF1dG9cIixcblx0d2hpdGVTcGFjZTogXCJicmVhay1zcGFjZXNcIixcblx0Zm9udFNpemU6IHRoZW1lLmZvbnRTaXplLnNtXG59KSk7XG5mdW5jdGlvbiBDb3B5VG9DbGlwQm9hcmQoeyB0ZXh0LCBjaGlsZHJlbiwgZGF0YVRlc3RJZCwgdGl0bGUsIC4uLnByb3BzIH0pIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFdyYXBwZXIsIHtcblx0XHQuLi5wcm9wcyxcblx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goQ29udGVudCwgeyBjaGlsZHJlbjogY2hpbGRyZW4gPz8gdGV4dCB9KSwgdGl0bGUgPyAvKiBAX19QVVJFX18gKi8ganN4KFRvb2x0aXAsIHtcblx0XHRcdGRpc2FibGVGb2N1c0xpc3RlbmVyOiB0cnVlLFxuXHRcdFx0dGl0bGUsXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChJY29uQnV0dG9uLCB7XG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogZGF0YVRlc3RJZCxcblx0XHRcdFx0b25DbGljazogY29weVRvQ2xpcEJvYXJkVXRpbGl0eSh0ZXh0KSxcblx0XHRcdFx0c2l6ZTogXCJzbWFsbFwiLFxuXHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChGaWxlQ29weSwgeyBmb250U2l6ZTogXCJzbWFsbFwiIH0pXG5cdFx0XHR9KVxuXHRcdH0pIDogLyogQF9fUFVSRV9fICovIGpzeChJY29uQnV0dG9uLCB7XG5cdFx0XHRcImRhdGEtdGVzdGlkXCI6IGRhdGFUZXN0SWQsXG5cdFx0XHRvbkNsaWNrOiBjb3B5VG9DbGlwQm9hcmRVdGlsaXR5KHRleHQpLFxuXHRcdFx0c2l6ZTogXCJzbWFsbFwiLFxuXHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmlsZUNvcHksIHsgZm9udFNpemU6IFwic21hbGxcIiB9KVxuXHRcdH0pXVxuXHR9KTtcbn1cbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgQ29weVRvQ2xpcEJvYXJkIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q29weVRvQ2xpcEJvYXJkLm1qcy5tYXAiLCJpbXBvcnQgSWNvbkJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgKiBhcyBSZWFjdEpzb25WaWV3TW9kdWxlIGZyb20gXCJAbWljcm9saW5rL3JlYWN0LWpzb24tdmlld1wiO1xuaW1wb3J0IENsb3NlSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9DbG9zZVwiO1xuaW1wb3J0IERpYWxvZyBmcm9tIFwiQG11aS9tYXRlcmlhbC9EaWFsb2dcIjtcbmltcG9ydCBEaWFsb2dDb250ZW50IGZyb20gXCJAbXVpL21hdGVyaWFsL0RpYWxvZ0NvbnRlbnRcIjtcbmltcG9ydCBEaWFsb2dUaXRsZSBmcm9tIFwiQG11aS9tYXRlcmlhbC9EaWFsb2dUaXRsZVwiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9zdHlsZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9SYXdWaWV3ZXIvUmF3Vmlld2VyLnRzeFxudmFyIFJlYWN0SnNvbiA9IFJlYWN0SnNvblZpZXdNb2R1bGUuZGVmYXVsdCA/PyBSZWFjdEpzb25WaWV3TW9kdWxlLnJlYWN0SnNvblZpZXcgPz8gUmVhY3RKc29uVmlld01vZHVsZTtcbnZhciBWaWV3ZXJUaXRsZSA9IChwcm9wcykgPT4ge1xuXHRjb25zdCB7IGNoaWxkcmVuLCBvbkNsb3NlIH0gPSBwcm9wcztcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKERpYWxvZ1RpdGxlLCB7XG5cdFx0c3g6IHtcblx0XHRcdG06IDAsXG5cdFx0XHRwOiAyXG5cdFx0fSxcblx0XHRjaGlsZHJlbjogW2NoaWxkcmVuLCBvbkNsb3NlID8gLyogQF9fUFVSRV9fICovIGpzeChJY29uQnV0dG9uLCB7XG5cdFx0XHRcImFyaWEtbGFiZWxcIjogXCJjbG9zZVwiLFxuXHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcImNsb3NlLXJhdy12aWV3ZXJcIixcblx0XHRcdG9uQ2xpY2s6IG9uQ2xvc2UsXG5cdFx0XHRzeDoge1xuXHRcdFx0XHRwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuXHRcdFx0XHRyaWdodDogOCxcblx0XHRcdFx0dG9wOiA4LFxuXHRcdFx0XHRjb2xvcjogKHRoZW1lKSA9PiB0aGVtZS5wYWxldHRlLmdyZXlbNTAwXVxuXHRcdFx0fSxcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KENsb3NlSWNvbiwge30pXG5cdFx0fSkgOiBudWxsXVxuXHR9KTtcbn07XG52YXIgUmF3Vmlld2VyID0gKHsgaXNPcGVuID0gZmFsc2UsIG9uQ2xvc2UsIHBhY2thZ2VNZXRhIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhEaWFsb2csIHtcblx0XHRcImRhdGEtdGVzdGlkXCI6IFwicmF3Vmlld2VyLS1kaWFsb2dcIixcblx0XHRmdWxsU2NyZWVuOiB0cnVlLFxuXHRcdG9wZW46IGlzT3Blbixcblx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goVmlld2VyVGl0bGUsIHtcblx0XHRcdGlkOiBcInZpZXdlci10aXRsZVwiLFxuXHRcdFx0b25DbG9zZSxcblx0XHRcdGNoaWxkcmVuOiB0KFwiYWN0aW9uLWJhci1hY3Rpb24ucmF3LXRpdGxlXCIsIHsgcGFja2FnZTogcGFja2FnZU1ldGEubGF0ZXN0Lm5hbWUgfSlcblx0XHR9KSwgLyogQF9fUFVSRV9fICovIGpzeChEaWFsb2dDb250ZW50LCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFJlYWN0SnNvbiwge1xuXHRcdFx0Y29sbGFwc2VTdHJpbmdzQWZ0ZXJMZW5ndGg6IDIwMCxcblx0XHRcdGNvbGxhcHNlZDogMixcblx0XHRcdGVuYWJsZUNsaXBib2FyZDogdHJ1ZSxcblx0XHRcdGdyb3VwQXJyYXlzQWZ0ZXJMZW5ndGg6IDEwLFxuXHRcdFx0c3JjOiBwYWNrYWdlTWV0YSxcblx0XHRcdHRoZW1lOiB0aGVtZS5wYWxldHRlLm1vZGUgPT0gXCJsaWdodFwiID8gXCJicmlnaHQ6aW52ZXJ0ZWRcIiA6IFwiYnJpZ2h0XCJcblx0XHR9KSB9KV1cblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBSYXdWaWV3ZXIgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1SYXdWaWV3ZXIubWpzLm1hcCIsImltcG9ydCB7IGdyZXlNZWRpdW0gfSBmcm9tIFwiLi4vLi4vVGhlbWUvY29sb3JzLm1qc1wiO1xuaW1wb3J0IHsgdXNlVmVyc2lvbiB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvVmVyc2lvblByb3ZpZGVyL1ZlcnNpb25Qcm92aWRlci5tanNcIjtcbmltcG9ydCB7IHVzZURvd25sb2FkIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9Eb3dubG9hZFByb3ZpZGVyL0Rvd25sb2FkUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9wcm92aWRlcnMvaW5kZXgubWpzXCI7XG5pbXBvcnQgTGlua0V4dGVybmFsIGZyb20gXCIuLi9MaW5rRXh0ZXJuYWwvTGlua0V4dGVybmFsLm1qc1wiO1xuaW1wb3J0IFwiLi4vTGlua0V4dGVybmFsL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgVG9vbHRpcCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Ub29sdGlwXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgQnVnUmVwb3J0IGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0J1Z1JlcG9ydFwiO1xuaW1wb3J0IERvd25sb2FkSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9DbG91ZERvd25sb2FkXCI7XG5pbXBvcnQgSG9tZUljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvSG9tZVwiO1xuaW1wb3J0IFJhd09uSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9SYXdPblwiO1xuaW1wb3J0IENpcmN1bGFyUHJvZ3Jlc3MgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQ2lyY3VsYXJQcm9ncmVzc1wiO1xuaW1wb3J0IEZhYk1VSSBmcm9tIFwiQG11aS9tYXRlcmlhbC9GYWJcIjtcbmltcG9ydCB7IGNvbW1vbiB9IGZyb20gXCJAbXVpL21hdGVyaWFsL2NvbG9yc1wiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0FjdGlvbkJhci9BY3Rpb25CYXJBY3Rpb24udHN4XG52YXIgRmFiID0gc3R5bGVkKEZhYk1VSSkoKHsgdGhlbWUgfSkgPT4gKHtcblx0YmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLm1vZGUgPT09IFwiZGFya1wiID8gdGhlbWUucGFsZXR0ZS5zZWNvbmRhcnkubWFpbiA6IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluLFxuXHRcIiY6aG92ZXJcIjoge1xuXHRcdGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImRhcmtcIiA/IGdyZXlNZWRpdW0gOiB2b2lkIDAsXG5cdFx0Y29sb3I6IHRoZW1lLnBhbGV0dGUubW9kZSA9PT0gXCJsaWdodFwiID8gdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4gOiBjb21tb24ud2hpdGVcblx0fSxcblx0Y29sb3I6IGNvbW1vbi53aGl0ZVxufSkpO1xudmFyIEFjdGlvbkJhckFjdGlvbiA9ICh7IHR5cGUsIGxpbmssIGFjdGlvbiB9KSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0Y29uc3QgeyBpc0xvYWRpbmcgfSA9IHVzZVZlcnNpb24oKTtcblx0Y29uc3QgeyBkb3dubG9hZFRhcmJhbGwgfSA9IHVzZURvd25sb2FkKCk7XG5cdGNvbnN0IGhhbmRsZURvd25sb2FkID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuXHRcdGRvd25sb2FkVGFyYmFsbD8uKHsgbGluayB9KTtcblx0fSwgW2xpbmssIGRvd25sb2FkVGFyYmFsbF0pO1xuXHRzd2l0Y2ggKHR5cGUpIHtcblx0XHRjYXNlIFwiVklTSVRfSE9NRVBBR0VcIjogcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVG9vbHRpcCwge1xuXHRcdFx0dGl0bGU6IHQoXCJhY3Rpb24tYmFyLWFjdGlvbi52aXNpdC1ob21lLXBhZ2VcIiksXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChMaW5rRXh0ZXJuYWwsIHtcblx0XHRcdFx0dG86IGxpbmssXG5cdFx0XHRcdHZhcmlhbnQ6IFwiYnV0dG9uXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEZhYiwge1xuXHRcdFx0XHRcdGNvbG9yOiBcInByaW1hcnlcIixcblx0XHRcdFx0XHRzaXplOiBcInNtYWxsXCIsXG5cdFx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goSG9tZUljb24sIHt9KVxuXHRcdFx0XHR9KVxuXHRcdFx0fSlcblx0XHR9KTtcblx0XHRjYXNlIFwiT1BFTl9BTl9JU1NVRVwiOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUb29sdGlwLCB7XG5cdFx0XHR0aXRsZTogdChcImFjdGlvbi1iYXItYWN0aW9uLm9wZW4tYW4taXNzdWVcIiksXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChMaW5rRXh0ZXJuYWwsIHtcblx0XHRcdFx0dG86IGxpbmssXG5cdFx0XHRcdHZhcmlhbnQ6IFwiYnV0dG9uXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEZhYiwge1xuXHRcdFx0XHRcdHNpemU6IFwic21hbGxcIixcblx0XHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChCdWdSZXBvcnQsIHt9KVxuXHRcdFx0XHR9KVxuXHRcdFx0fSlcblx0XHR9KTtcblx0XHRjYXNlIFwiRE9XTkxPQURfVEFSQkFMTFwiOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUb29sdGlwLCB7XG5cdFx0XHR0aXRsZTogdChcImFjdGlvbi1iYXItYWN0aW9uLmRvd25sb2FkLXRhcmJhbGxcIiksXG5cdFx0XHRjaGlsZHJlbjogaXNMb2FkaW5nID8gLyogQF9fUFVSRV9fICovIGpzeChDaXJjdWxhclByb2dyZXNzLCB7IHN4OiB7IG1hcmdpblg6IDAgfSB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goRmFiLCB7XG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJkb3dubG9hZC10YXJiYWxsLWJ0blwiLFxuXHRcdFx0XHRvbkNsaWNrOiBoYW5kbGVEb3dubG9hZCxcblx0XHRcdFx0c2l6ZTogXCJzbWFsbFwiLFxuXHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChEb3dubG9hZEljb24sIHt9KVxuXHRcdFx0fSlcblx0XHR9KTtcblx0XHRjYXNlIFwiUkFXX0RBVEFcIjogcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVG9vbHRpcCwge1xuXHRcdFx0dGl0bGU6IHQoXCJhY3Rpb24tYmFyLWFjdGlvbi5yYXdcIiksXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChGYWIsIHtcblx0XHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcInJhdy1idG5cIixcblx0XHRcdFx0b25DbGljazogYWN0aW9uLFxuXHRcdFx0XHRzaXplOiBcInNtYWxsXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFJhd09uSWNvbiwge30pXG5cdFx0XHR9KVxuXHRcdH0pO1xuXHR9XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBBY3Rpb25CYXJBY3Rpb24gYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1BY3Rpb25CYXJBY3Rpb24ubWpzLm1hcCIsImltcG9ydCB7IGlzVVJMIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3VybC5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3V0aWxzL2luZGV4Lm1qc1wiO1xuaW1wb3J0IFJhd1ZpZXdlciBmcm9tIFwiLi4vUmF3Vmlld2VyL1Jhd1ZpZXdlci5tanNcIjtcbmltcG9ydCBcIi4uL1Jhd1ZpZXdlci9pbmRleC5tanNcIjtcbmltcG9ydCBBY3Rpb25CYXJBY3Rpb24gZnJvbSBcIi4vQWN0aW9uQmFyQWN0aW9uLm1qc1wiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IEJveCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Cb3hcIjtcbmltcG9ydCBTdGFjayBmcm9tIFwiQG11aS9tYXRlcmlhbC9TdGFja1wiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0FjdGlvbkJhci9BY3Rpb25CYXIudHN4XG52YXIgQWN0aW9uQmFyID0gKHsgc2hvd1Jhdywgc2hvd0Rvd25sb2FkVGFyYmFsbCA9IHRydWUsIHBhY2thZ2VNZXRhIH0pID0+IHtcblx0Y29uc3QgW2lzUmF3Vmlld2VyT3Blbiwgc2V0SXNSYXdWaWV3ZXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblx0aWYgKCFwYWNrYWdlTWV0YT8ubGF0ZXN0KSByZXR1cm4gbnVsbDtcblx0Y29uc3QgeyBob21lcGFnZSwgYnVncywgZGlzdCB9ID0gcGFja2FnZU1ldGEubGF0ZXN0O1xuXHRjb25zdCBhY3Rpb25zID0gW107XG5cdGlmIChob21lcGFnZSAmJiBpc1VSTChob21lcGFnZSkpIGFjdGlvbnMucHVzaCh7XG5cdFx0dHlwZTogXCJWSVNJVF9IT01FUEFHRVwiLFxuXHRcdGxpbms6IGhvbWVwYWdlXG5cdH0pO1xuXHRpZiAoYnVncz8udXJsICYmIGlzVVJMKGJ1Z3MudXJsKSkgYWN0aW9ucy5wdXNoKHtcblx0XHR0eXBlOiBcIk9QRU5fQU5fSVNTVUVcIixcblx0XHRsaW5rOiBidWdzLnVybFxuXHR9KTtcblx0aWYgKGRpc3Q/LnRhcmJhbGwgJiYgaXNVUkwoZGlzdC50YXJiYWxsKSAmJiBzaG93RG93bmxvYWRUYXJiYWxsKSBhY3Rpb25zLnB1c2goe1xuXHRcdHR5cGU6IFwiRE9XTkxPQURfVEFSQkFMTFwiLFxuXHRcdGxpbms6IGRpc3QudGFyYmFsbFxuXHR9KTtcblx0aWYgKHNob3dSYXcpIGFjdGlvbnMucHVzaCh7XG5cdFx0dHlwZTogXCJSQVdfREFUQVwiLFxuXHRcdGFjdGlvbjogKCkgPT4gc2V0SXNSYXdWaWV3ZXJPcGVuKHRydWUpXG5cdH0pO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChCb3gsIHtcblx0XHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdHN4OiB7IG15OiAyIH0sXG5cdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFN0YWNrLCB7XG5cdFx0XHRkaXJlY3Rpb246IFwicm93XCIsXG5cdFx0XHRzcGFjaW5nOiAxLFxuXHRcdFx0Y2hpbGRyZW46IFthY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiAvKiBAX19QVVJFX18gKi8ganN4KEFjdGlvbkJhckFjdGlvbiwgeyAuLi5hY3Rpb24gfSwgYWN0aW9uLnR5cGUpKSwgaXNSYXdWaWV3ZXJPcGVuICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goUmF3Vmlld2VyLCB7XG5cdFx0XHRcdGlzT3BlbjogaXNSYXdWaWV3ZXJPcGVuLFxuXHRcdFx0XHRvbkNsb3NlOiAoKSA9PiB7XG5cdFx0XHRcdFx0c2V0SXNSYXdWaWV3ZXJPcGVuKGZhbHNlKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0cGFja2FnZU1ldGFcblx0XHRcdH0pXVxuXHRcdH0pXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgQWN0aW9uQmFyIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QWN0aW9uQmFyLm1qcy5tYXAiLCJpbXBvcnQgeyBpc0VtYWlsLCBpc1VSTCB9IGZyb20gXCIuLi8uLi91dGlscy91cmwubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi91dGlscy9pbmRleC5tanNcIjtcbmltcG9ydCBMaW5rRXh0ZXJuYWwgZnJvbSBcIi4uL0xpbmtFeHRlcm5hbC9MaW5rRXh0ZXJuYWwubWpzXCI7XG5pbXBvcnQgXCIuLi9MaW5rRXh0ZXJuYWwvaW5kZXgubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tIFwiQG11aS9tYXRlcmlhbC9UeXBvZ3JhcGh5XCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvUGVyc29uL1BlcnNvblRvb2x0aXAudHN4XG52YXIgUGVyc29uVG9vbHRpcCA9ICh7IHBlcnNvbiB9KSA9PiAvKiBAX19QVVJFX18gKi8ganN4cyhUeXBvZ3JhcGh5LCB7XG5cdFwiZGF0YS10ZXN0aWRcIjogcGVyc29uLm5hbWUgKyBcIi10b29sdGlwXCIsXG5cdGNoaWxkcmVuOiBbXG5cdFx0cGVyc29uLm5hbWUsXG5cdFx0cGVyc29uLmVtYWlsICYmIGlzRW1haWwocGVyc29uLmVtYWlsKSAmJiAvKiBAX19QVVJFX18gKi8ganN4cyhMaW5rRXh0ZXJuYWwsIHtcblx0XHRcdHRvOiBgbWFpbHRvOiR7cGVyc29uLmVtYWlsfWAsXG5cdFx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goXCJiclwiLCB7fSksIHBlcnNvbi5lbWFpbF1cblx0XHR9KSxcblx0XHRwZXJzb24udXJsICYmIGlzVVJMKHBlcnNvbi51cmwpICYmIC8qIEBfX1BVUkVfXyAqLyBqc3hzKExpbmtFeHRlcm5hbCwge1xuXHRcdFx0dG86IHBlcnNvbi51cmwsXG5cdFx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goXCJiclwiLCB7fSksIHBlcnNvbi51cmxdXG5cdFx0fSlcblx0XVxufSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFBlcnNvblRvb2x0aXAgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1QZXJzb25Ub29sdGlwLm1qcy5tYXAiLCJpbXBvcnQgeyBpc0VtYWlsLCBpc1VSTCB9IGZyb20gXCIuLi8uLi91dGlscy91cmwubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi91dGlscy9pbmRleC5tanNcIjtcbmltcG9ydCBpMThuZXh0IGZyb20gXCJpMThuZXh0XCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvUGVyc29uL3V0aWxzLnRzXG5mdW5jdGlvbiBnZXRMaW5rKHBlcnNvbiwgcGFja2FnZU5hbWUsIHZlcnNpb24pIHtcblx0cmV0dXJuIHBlcnNvbi5lbWFpbCAmJiBpc0VtYWlsKHBlcnNvbi5lbWFpbCkgPyBgbWFpbHRvOiR7cGVyc29uLmVtYWlsfT9zdWJqZWN0PSR7cGFja2FnZU5hbWV9IHYke3ZlcnNpb259YCA6IHBlcnNvbi51cmwgJiYgaXNVUkwocGVyc29uLnVybCkgPyBwZXJzb24udXJsIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGdldE5hbWUobmFtZSkge1xuXHRyZXR1cm4gIW5hbWUgPyBpMThuZXh0LnQoXCJhdXRob3ItdW5rbm93blwiKSA6IG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gXCJhbm9ueW1vdXNcIiA/IGkxOG5leHQudChcImF1dGhvci1hbm9ueW1vdXNcIikgOiBuYW1lO1xufVxuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBnZXRMaW5rLCBnZXROYW1lIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLm1qcy5tYXAiLCJpbXBvcnQgTGlua0V4dGVybmFsIGZyb20gXCIuLi9MaW5rRXh0ZXJuYWwvTGlua0V4dGVybmFsLm1qc1wiO1xuaW1wb3J0IFwiLi4vTGlua0V4dGVybmFsL2luZGV4Lm1qc1wiO1xuaW1wb3J0IFBlcnNvblRvb2x0aXAgZnJvbSBcIi4vUGVyc29uVG9vbHRpcC5tanNcIjtcbmltcG9ydCB7IGdldExpbmssIGdldE5hbWUgfSBmcm9tIFwiLi91dGlscy5tanNcIjtcbmltcG9ydCBUb29sdGlwIGZyb20gXCJAbXVpL21hdGVyaWFsL1Rvb2x0aXBcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBGcmFnbWVudCQxLCBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IEF2YXRhciBmcm9tIFwiQG11aS9tYXRlcmlhbC9BdmF0YXJcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9QZXJzb24vUGVyc29uLnRzeFxudmFyIFBlcnNvbiA9ICh7IHBlcnNvbiwgcGFja2FnZU5hbWUsIHZlcnNpb24sIHdpdGhUZXh0ID0gZmFsc2UgfSkgPT4ge1xuXHRjb25zdCBsaW5rID0gZ2V0TGluayhwZXJzb24sIHBhY2thZ2VOYW1lLCB2ZXJzaW9uKTtcblx0Y29uc3QgYXZhdGFyQ29tcG9uZW50ID0gLyogQF9fUFVSRV9fICovIGpzeChBdmF0YXIsIHtcblx0XHRhbHQ6IHBlcnNvbi5uYW1lLFxuXHRcdHNyYzogcGVyc29uLmF2YXRhcixcblx0XHRzeDoge1xuXHRcdFx0d2lkdGg6IDQwLFxuXHRcdFx0aGVpZ2h0OiA0MCxcblx0XHRcdG1sOiAwLFxuXHRcdFx0bXI6IDFcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQkMSwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goVG9vbHRpcCwge1xuXHRcdFwiZGF0YS10ZXN0aWRcIjogcGVyc29uLm5hbWUsXG5cdFx0dGl0bGU6IC8qIEBfX1BVUkVfXyAqLyBqc3goUGVyc29uVG9vbHRpcCwgeyBwZXJzb24gfSksXG5cdFx0Y2hpbGRyZW46IGxpbmsubGVuZ3RoID4gMCA/IC8qIEBfX1BVUkVfXyAqLyBqc3goTGlua0V4dGVybmFsLCB7XG5cdFx0XHR0bzogbGluayxcblx0XHRcdGNoaWxkcmVuOiBhdmF0YXJDb21wb25lbnRcblx0XHR9KSA6IGF2YXRhckNvbXBvbmVudFxuXHR9LCBwZXJzb24uZW1haWwpLCB3aXRoVGV4dCAmJiAvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHRzeDogeyBtbDogMSB9LFxuXHRcdHZhcmlhbnQ6IFwic3VidGl0bGUyXCIsXG5cdFx0Y2hpbGRyZW46IGdldE5hbWUocGVyc29uLm5hbWUpXG5cdH0pXSB9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFBlcnNvbiBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBlcnNvbi5tanMubWFwIiwiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCBMaXN0SXRlbSBmcm9tIFwiQG11aS9tYXRlcmlhbC9MaXN0SXRlbVwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0F1dGhvci9zdHlsZXMudHNcbnZhciBTdHlsZWRUZXh0ID0gc3R5bGVkKFR5cG9ncmFwaHkpKChwcm9wcykgPT4gKHsgZm9udFdlaWdodDogcHJvcHMudGhlbWUuZm9udFdlaWdodC5ib2xkIH0pKTtcbnZhciBBdXRob3JMaXN0SXRlbSA9IHN0eWxlZChMaXN0SXRlbSkoe1xuXHRwYWRkaW5nOiAwLFxuXHRcIjpob3ZlclwiOiB7IGJhY2tncm91bmRDb2xvcjogXCJ0cmFuc3BhcmVudFwiIH1cbn0pO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBBdXRob3JMaXN0SXRlbSwgU3R5bGVkVGV4dCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMubWpzLm1hcCIsImltcG9ydCBQZXJzb24gZnJvbSBcIi4uL1BlcnNvbi9QZXJzb24ubWpzXCI7XG5pbXBvcnQgXCIuLi9QZXJzb24vaW5kZXgubWpzXCI7XG5pbXBvcnQgeyBBdXRob3JMaXN0SXRlbSwgU3R5bGVkVGV4dCB9IGZyb20gXCIuL3N0eWxlcy5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBMaXN0IGZyb20gXCJAbXVpL21hdGVyaWFsL0xpc3RcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9BdXRob3IvQXV0aG9yLnRzeFxudmFyIEF1dGhvciA9ICh7IHBhY2thZ2VNZXRhIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRpZiAoIXBhY2thZ2VNZXRhKSByZXR1cm4gbnVsbDtcblx0Y29uc3QgeyBhdXRob3IsIG5hbWU6IHBhY2thZ2VOYW1lLCB2ZXJzaW9uIH0gPSBwYWNrYWdlTWV0YS5sYXRlc3Q7XG5cdGlmICghYXV0aG9yKSByZXR1cm4gbnVsbDtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTGlzdCwge1xuXHRcdHN1YmhlYWRlcjogLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRUZXh0LCB7XG5cdFx0XHR2YXJpYW50OiBcInN1YnRpdGxlMVwiLFxuXHRcdFx0Y2hpbGRyZW46IHQoXCJzaWRlYmFyLmF1dGhvci50aXRsZVwiKVxuXHRcdH0pLFxuXHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEF1dGhvckxpc3RJdGVtLCB7XG5cdFx0XHRzeDogeyBteTogMSB9LFxuXHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUGVyc29uLCB7XG5cdFx0XHRcdHBhY2thZ2VOYW1lLFxuXHRcdFx0XHRwZXJzb246IGF1dGhvcixcblx0XHRcdFx0dmVyc2lvbixcblx0XHRcdFx0d2l0aFRleHQ6IHRydWVcblx0XHRcdH0pXG5cdFx0fSlcblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBBdXRob3IgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1BdXRob3IubWpzLm1hcCIsImltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBBbGVydCBmcm9tIFwiQG11aS9tYXRlcmlhbC9BbGVydFwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0RlcHJlY2F0ZWQvRGVwcmVjYXRlZC50c3hcbnZhciBEZXByZWNhdGVkID0gKHsgbWVzc2FnZSB9KSA9PiB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEFsZXJ0LCB7XG5cdFx0c2V2ZXJpdHk6IFwid2FybmluZ1wiLFxuXHRcdHN4OiB7XG5cdFx0XHRtYXJnaW5Ub3A6IDEsXG5cdFx0XHRtYXJnaW5Cb3R0b206IDFcblx0XHR9LFxuXHRcdGNoaWxkcmVuOiBtZXNzYWdlXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRGVwcmVjYXRlZCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURlcHJlY2F0ZWQubWpzLm1hcCIsIi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9EZXZlbG9wZXJzL0RldmVsb3BlclR5cGUudHN4XG52YXIgRGV2ZWxvcGVyVHlwZSA9IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbihEZXZlbG9wZXJUeXBlKSB7XG5cdERldmVsb3BlclR5cGVbXCJDT05UUklCVVRPUlNcIl0gPSBcImNvbnRyaWJ1dG9yc1wiO1xuXHREZXZlbG9wZXJUeXBlW1wiTUFJTlRBSU5FUlNcIl0gPSBcIm1haW50YWluZXJzXCI7XG5cdHJldHVybiBEZXZlbG9wZXJUeXBlO1xufSh7fSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IERldmVsb3BlclR5cGUgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGV2ZWxvcGVyVHlwZS5tanMubWFwIiwiaW1wb3J0IHsgRGV2ZWxvcGVyVHlwZSB9IGZyb20gXCIuL0RldmVsb3BlclR5cGUubWpzXCI7XG5pbXBvcnQgXCIuL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tIFwiQG11aS9tYXRlcmlhbC9UeXBvZ3JhcGh5XCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvRGV2ZWxvcGVycy9UaXRsZS50c3hcbnZhciBUaXRsZSA9ICh7IHR5cGUgfSkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdHN3aXRjaCAodHlwZSkge1xuXHRcdGNhc2UgRGV2ZWxvcGVyVHlwZS5DT05UUklCVVRPUlM6IHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFN0eWxlZFRleHQsIHtcblx0XHRcdHZhcmlhbnQ6IFwic3VidGl0bGUxXCIsXG5cdFx0XHRjaGlsZHJlbjogdChcInNpZGViYXIuY29udHJpYnV0b3JzLnRpdGxlXCIpXG5cdFx0fSk7XG5cdFx0Y2FzZSBEZXZlbG9wZXJUeXBlLk1BSU5UQUlORVJTOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRUZXh0LCB7XG5cdFx0XHR2YXJpYW50OiBcInN1YnRpdGxlMVwiLFxuXHRcdFx0Y2hpbGRyZW46IHQoXCJzaWRlYmFyLm1haW50YWluZXJzLnRpdGxlXCIpXG5cdFx0fSk7XG5cdH1cbn07XG52YXIgU3R5bGVkVGV4dCA9IHN0eWxlZChUeXBvZ3JhcGh5KSgoeyB0aGVtZSB9KSA9PiAoe1xuXHRmb250V2VpZ2h0OiB0aGVtZS5mb250V2VpZ2h0LmJvbGQsXG5cdG1hcmdpbkJvdHRvbTogXCIxMHB4XCJcbn0pKTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgVGl0bGUgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaXRsZS5tanMubWFwIiwiLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0RldmVsb3BlcnMvZ2V0LXVuaXF1ZS1kZXZlbG9wZXItdmFsdWVzLnRzXG5mdW5jdGlvbiBnZXRVbmlxdWVEZXZlbG9wZXJWYWx1ZXMoZGV2ZWxvcGVycykge1xuXHRpZiAoIWRldmVsb3BlcnMpIHJldHVybiBbXTtcblx0cmV0dXJuIGRldmVsb3BlcnMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4gYWNjdW11bGF0b3Iuc29tZSgoZGV2ZWxvcGVyKSA9PiBkZXZlbG9wZXIuZW1haWwgPT09IGN1cnJlbnQuZW1haWwpID8gYWNjdW11bGF0b3IgOiBbLi4uYWNjdW11bGF0b3IsIGN1cnJlbnRdLCBbXSk7XG59XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IGdldFVuaXF1ZURldmVsb3BlclZhbHVlcyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC11bmlxdWUtZGV2ZWxvcGVyLXZhbHVlcy5tanMubWFwIiwiaW1wb3J0IFBlcnNvbiBmcm9tIFwiLi4vUGVyc29uL1BlcnNvbi5tanNcIjtcbmltcG9ydCBcIi4uL1BlcnNvbi9pbmRleC5tanNcIjtcbmltcG9ydCBUaXRsZSBmcm9tIFwiLi9UaXRsZS5tanNcIjtcbmltcG9ydCBnZXRVbmlxdWVEZXZlbG9wZXJWYWx1ZXMgZnJvbSBcIi4vZ2V0LXVuaXF1ZS1kZXZlbG9wZXItdmFsdWVzLm1qc1wiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgRnJhZ21lbnQkMSwganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQm94IGZyb20gXCJAbXVpL21hdGVyaWFsL0JveFwiO1xuaW1wb3J0IEZhYk1VSSBmcm9tIFwiQG11aS9tYXRlcmlhbC9GYWJcIjtcbmltcG9ydCB7IGNvbW1vbiB9IGZyb20gXCJAbXVpL21hdGVyaWFsL2NvbG9yc1wiO1xuaW1wb3J0IEFkZCBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9BZGRcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9EZXZlbG9wZXJzL0RldmVsb3BlcnMudHN4XG52YXIgRmFiID0gc3R5bGVkKEZhYk1VSSkoKHByb3BzKSA9PiAoe1xuXHRiYWNrZ3JvdW5kQ29sb3I6IHByb3BzLnRoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluLFxuXHRjb2xvcjogY29tbW9uLndoaXRlXG59KSk7XG52YXIgU3R5bGVkQm94ID0gc3R5bGVkKEJveCkoeyBcIj4gKlwiOiB7IG1hcmdpblJpZ2h0OiA1IH0gfSk7XG52YXIgRGV2ZWxvcGVycyA9ICh7IHR5cGUsIHZpc2libGVNYXggPSA2LCBwYWNrYWdlTWV0YSB9KSA9PiB7XG5cdGNvbnN0IGRldmVsb3BlcnMgPSB1c2VNZW1vKCgpID0+IGdldFVuaXF1ZURldmVsb3BlclZhbHVlcyhwYWNrYWdlTWV0YT8ubGF0ZXN0W3R5cGVdKSwgW3BhY2thZ2VNZXRhLCB0eXBlXSk7XG5cdGNvbnN0IFt2aXNpYmxlRGV2ZWxvcGVyc01heCwgc2V0VmlzaWJsZURldmVsb3BlcnNNYXhdID0gdXNlU3RhdGUodmlzaWJsZU1heCk7XG5cdGNvbnN0IFt2aXNpYmxlRGV2ZWxvcGVycywgc2V0VmlzaWJsZURldmVsb3BlcnNdID0gdXNlU3RhdGUoZGV2ZWxvcGVycyk7XG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKCFkZXZlbG9wZXJzLmxlbmd0aCkgcmV0dXJuO1xuXHRcdHNldFZpc2libGVEZXZlbG9wZXJzKGRldmVsb3BlcnMuc2xpY2UoMCwgdmlzaWJsZURldmVsb3BlcnNNYXgpKTtcblx0fSwgW2RldmVsb3BlcnMsIHZpc2libGVEZXZlbG9wZXJzTWF4XSk7XG5cdGNvbnN0IGhhbmRsZVNldFZpc2libGVEZXZlbG9wZXJzTWF4ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuXHRcdHNldFZpc2libGVEZXZlbG9wZXJzTWF4KHZpc2libGVEZXZlbG9wZXJzTWF4ICsgNik7XG5cdH0sIFt2aXNpYmxlRGV2ZWxvcGVyc01heF0pO1xuXHRpZiAoIXZpc2libGVEZXZlbG9wZXJzIHx8ICFkZXZlbG9wZXJzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cdGNvbnN0IHsgbmFtZTogcGFja2FnZU5hbWUsIHZlcnNpb24gfSA9IHBhY2thZ2VNZXRhLmxhdGVzdDtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50JDEsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KFRpdGxlLCB7IHR5cGUgfSksIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFN0eWxlZEJveCwge1xuXHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdGZsZXhXcmFwOiBcIndyYXBcIixcblx0XHRtYXJnaW46IFwiMTBweCAwIDEwcHggMFwiLFxuXHRcdGNoaWxkcmVuOiBbdmlzaWJsZURldmVsb3BlcnMubWFwKCh2aXNpYmxlRGV2ZWxvcGVyLCBpbmRleCkgPT4ge1xuXHRcdFx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUGVyc29uLCB7XG5cdFx0XHRcdHBhY2thZ2VOYW1lLFxuXHRcdFx0XHRwZXJzb246IHZpc2libGVEZXZlbG9wZXIsXG5cdFx0XHRcdHZlcnNpb25cblx0XHRcdH0sIGluZGV4KTtcblx0XHR9KSwgdmlzaWJsZURldmVsb3BlcnNNYXggPCBkZXZlbG9wZXJzLmxlbmd0aCAmJiAvKiBAX19QVVJFX18gKi8ganN4KEZhYiwge1xuXHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcImZhYi1hZGRcIixcblx0XHRcdG9uQ2xpY2s6IGhhbmRsZVNldFZpc2libGVEZXZlbG9wZXJzTWF4LFxuXHRcdFx0c2l6ZTogXCJzbWFsbFwiLFxuXHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQWRkLCB7fSlcblx0XHR9KV1cblx0fSldIH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRGV2ZWxvcGVycyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURldmVsb3BlcnMubWpzLm1hcCIsImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVHlwb2dyYXBoeVwiO1xuaW1wb3J0IExpc3RJdGVtIGZyb20gXCJAbXVpL21hdGVyaWFsL0xpc3RJdGVtXCI7XG5pbXBvcnQgQ2hpcCBmcm9tIFwiQG11aS9tYXRlcmlhbC9DaGlwXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvRGlzdHJpYnV0aW9uL3N0eWxlcy50c1xudmFyIFN0eWxlZFRleHQgPSBzdHlsZWQoVHlwb2dyYXBoeSkoKHByb3BzKSA9PiAoe1xuXHRmb250V2VpZ2h0OiBwcm9wcy50aGVtZS5mb250V2VpZ2h0LmJvbGQsXG5cdHRleHRUcmFuc2Zvcm06IFwiY2FwaXRhbGl6ZVwiXG59KSk7XG52YXIgRGlzdExpc3RJdGVtID0gc3R5bGVkKExpc3RJdGVtKSh7XG5cdHBhZGRpbmdMZWZ0OiAwLFxuXHRwYWRkaW5nUmlnaHQ6IDAsXG5cdGZsZXhXcmFwOiBcIndyYXBcIlxufSk7XG52YXIgRGlzdENoaXBzID0gc3R5bGVkKENoaXApKHtcblx0bWFyZ2luUmlnaHQ6IDUsXG5cdHRleHRUcmFuc2Zvcm06IFwiY2FwaXRhbGl6ZVwiLFxuXHRtYXJnaW5Ub3A6IDVcbn0pO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBEaXN0Q2hpcHMsIERpc3RMaXN0SXRlbSwgU3R5bGVkVGV4dCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMubWpzLm1hcCIsImltcG9ydCB7IGZpbGVTaXplU0ksIGZvcm1hdExpY2Vuc2UgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXRpbHMubWpzXCI7XG5pbXBvcnQgeyBEaXN0Q2hpcHMsIERpc3RMaXN0SXRlbSwgU3R5bGVkVGV4dCB9IGZyb20gXCIuL3N0eWxlcy5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBGcmFnbWVudCQxLCBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBMaXN0IGZyb20gXCJAbXVpL21hdGVyaWFsL0xpc3RcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9EaXN0cmlidXRpb24vRGlzdC50c3hcbnZhciBEaXN0Q2hpcCA9ICh7IG5hbWUsIGNoaWxkcmVuIH0pID0+IGNoaWxkcmVuID8gLyogQF9fUFVSRV9fICovIGpzeChEaXN0Q2hpcHMsIHsgbGFiZWw6IC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50JDEsIHsgY2hpbGRyZW46IFtcblx0LyogQF9fUFVSRV9fICovIGpzeChcImJcIiwgeyBjaGlsZHJlbjogbmFtZSB9KSxcblx0XCI6IFwiLFxuXHRjaGlsZHJlblxuXSB9KSB9KSA6IG51bGw7XG52YXIgRGlzdCA9ICh7IHBhY2thZ2VNZXRhIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRpZiAoIXBhY2thZ2VNZXRhPy5sYXRlc3QpIHJldHVybiBudWxsO1xuXHRjb25zdCB7IGRpc3QsIGxpY2Vuc2UgfSA9IHBhY2thZ2VNZXRhLmxhdGVzdDtcblx0aWYgKCFkaXN0ICYmICFsaWNlbnNlKSByZXR1cm4gbnVsbDtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTGlzdCwge1xuXHRcdHN1YmhlYWRlcjogLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRUZXh0LCB7XG5cdFx0XHR2YXJpYW50OiBcInN1YnRpdGxlMVwiLFxuXHRcdFx0Y2hpbGRyZW46IHQoXCJzaWRlYmFyLmRpc3RyaWJ1dGlvbi50aXRsZVwiKVxuXHRcdH0pLFxuXHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhEaXN0TGlzdEl0ZW0sIHsgY2hpbGRyZW46IFtcblx0XHRcdGRpc3Q/LmZpbGVDb3VudCAmJiAvKiBAX19QVVJFX18gKi8ganN4KERpc3RDaGlwLCB7XG5cdFx0XHRcdG5hbWU6IHQoXCJzaWRlYmFyLmRpc3RyaWJ1dGlvbi5maWxlLWNvdW50XCIpLFxuXHRcdFx0XHRjaGlsZHJlbjogYCR7ZGlzdC5maWxlQ291bnR9YFxuXHRcdFx0fSksXG5cdFx0XHRkaXN0Py51bnBhY2tlZFNpemUgPyAvKiBAX19QVVJFX18gKi8ganN4KERpc3RDaGlwLCB7XG5cdFx0XHRcdG5hbWU6IHQoXCJzaWRlYmFyLmRpc3RyaWJ1dGlvbi5zaXplXCIpLFxuXHRcdFx0XHRjaGlsZHJlbjogZmlsZVNpemVTSShkaXN0LnVucGFja2VkU2l6ZSlcblx0XHRcdH0pIDogbnVsbCxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goRGlzdENoaXAsIHtcblx0XHRcdFx0bmFtZTogdChcInNpZGViYXIuZGlzdHJpYnV0aW9uLmxpY2Vuc2VcIiksXG5cdFx0XHRcdGNoaWxkcmVuOiBmb3JtYXRMaWNlbnNlKGxpY2Vuc2UpXG5cdFx0XHR9KVxuXHRcdF0gfSlcblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBEaXN0IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlzdC5tanMubWFwIiwiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgTWF0ZXJpYWxVSVN2Z0ljb24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvU3ZnSWNvblwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0ljb25zL1N2Z0ljb24udHN4XG52YXIgU3ZnSWNvbiA9IGZ1bmN0aW9uIFN2Z0ljb24oeyByZWYsIHNpemUgPSBcIm1kXCIsIHRpdGxlLCAuLi5wcm9wcyB9KSB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFN0eWxlZE1hdGVyaWFsVUlTdmdJY29uLCB7XG5cdFx0c2l6ZSxcblx0XHR0aXRsZUFjY2VzczogdGl0bGUsXG5cdFx0Li4ucHJvcHMsXG5cdFx0cmVmXG5cdH0pO1xufTtcbnZhciBnZXRTaXplID0gKHNpemUpID0+IHtcblx0aWYgKHNpemUgPT09IFwibWRcIikgcmV0dXJuIHtcblx0XHR3aWR0aDogMTgsXG5cdFx0aGVpZ2h0OiAxOFxuXHR9O1xuXHRyZXR1cm4ge1xuXHRcdHdpZHRoOiAxNCxcblx0XHRoZWlnaHQ6IDE2XG5cdH07XG59O1xudmFyIFN0eWxlZE1hdGVyaWFsVUlTdmdJY29uID0gc3R5bGVkKE1hdGVyaWFsVUlTdmdJY29uKSgoeyBzaXplIH0pID0+ICh7IC4uLmdldFNpemUoc2l6ZSkgfSkpO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBTdmdJY29uIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN2Z0ljb24ubWpzLm1hcCIsImltcG9ydCB7IFN2Z0ljb24gfSBmcm9tIFwiLi9TdmdJY29uLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0ljb25zL1ZlcnNpb24udHN4XG52YXIgVmVyc2lvbiA9IGZ1bmN0aW9uIFZlcnNpb24oeyByZWYsIC4uLnByb3BzIH0pIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU3ZnSWNvbiwge1xuXHRcdGhlaWdodDogMTYsXG5cdFx0dmlld0JveDogXCIwIDAgMTQgMTZcIixcblx0XHR3aWR0aDogMTQsXG5cdFx0Li4ucHJvcHMsXG5cdFx0cmVmLFxuXHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwicGF0aFwiLCB7XG5cdFx0XHRkOiBcIk0xMyAzSDdjLS41NSAwLTEgLjQ1LTEgMXY4YzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xVjRjMC0uNTUtLjQ1LTEtMS0xem0tMSA4SDhWNWg0djZ6TTQgNGgxdjFINHY2aDF2MUg0Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMXpNMSA1aDF2MUgxdjRoMXYxSDFjLS41NSAwLTEtLjQ1LTEtMVY2YzAtLjU1LjQ1LTEgMS0xelwiLFxuXHRcdFx0ZmlsbFJ1bGU6IFwiZXZlbm9kZFwiXG5cdFx0fSlcblx0fSk7XG59O1xuVmVyc2lvbi5kaXNwbGF5TmFtZSA9IFwiVmVyc2lvblwiO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBWZXJzaW9uIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVZlcnNpb24ubWpzLm1hcCIsImltcG9ydCB7IFN2Z0ljb24gfSBmcm9tIFwiLi9TdmdJY29uLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0ljb25zL1RpbWUudHN4XG52YXIgVGltZSA9IGZ1bmN0aW9uIFRpbWUoeyByZWYsIC4uLnByb3BzIH0pIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFN2Z0ljb24sIHtcblx0XHR2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuXHRcdC4uLnByb3BzLFxuXHRcdHJlZixcblx0XHRjaGlsZHJlbjogW1xuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChcInBhdGhcIiwgeyBkOiBcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCIgfSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KFwicGF0aFwiLCB7XG5cdFx0XHRcdGQ6IFwiTTAgMGgyNHYyNEgwelwiLFxuXHRcdFx0XHRmaWxsOiBcIm5vbmVcIlxuXHRcdFx0fSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KFwicGF0aFwiLCB7IGQ6IFwiTTEyLjUgN0gxMXY2bDUuMjUgMy4xNS43NS0xLjIzLTQuNS0yLjY3elwiIH0pXG5cdFx0XVxuXHR9KTtcbn07XG5UaW1lLmRpc3BsYXlOYW1lID0gXCJUaW1lXCI7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFRpbWUgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGltZS5tanMubWFwIiwiaW1wb3J0IHsgU3ZnSWNvbiB9IGZyb20gXCIuL1N2Z0ljb24ubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvSWNvbnMvRmlsZUJpbmFyeS50c3hcbnZhciBGaWxlQmluYXJ5ID0gZnVuY3Rpb24gRmlsZUJpbmFyeSh7IHJlZiwgLi4ucHJvcHMgfSkge1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTdmdJY29uLCB7XG5cdFx0dmlld0JveDogXCIwIDAgMTQgMTZcIixcblx0XHQuLi5wcm9wcyxcblx0XHRyZWYsXG5cdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJwYXRoXCIsIHsgZDogXCJNOC41IDFIMWMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDEwYy41NSAwIDEtLjQ1IDEtMVY0LjVMOC41IDF6TTExIDE0SDFWMmg3bDMgM3Y5ek01IDYuOThMMy41IDguNSA1IDEwbC0uNSAxTDIgOC41IDQuNSA2bC41Ljk4ek03LjUgNkwxMCA4LjUgNy41IDExbC0uNS0uOThMOC41IDguNSA3IDdsLjUtMXpcIiB9KVxuXHR9KTtcbn07XG5GaWxlQmluYXJ5LmRpc3BsYXlOYW1lID0gXCJGaWxlQmluYXJ5XCI7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IEZpbGVCaW5hcnkgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RmlsZUJpbmFyeS5tanMubWFwIiwiaW1wb3J0IHsgU3ZnSWNvbiB9IGZyb20gXCIuL1N2Z0ljb24ubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvSWNvbnMvTGF3LnRzeFxudmFyIExhdyA9IGZ1bmN0aW9uIExhdyh7IHJlZiwgLi4ucHJvcHMgfSkge1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTdmdJY29uLCB7XG5cdFx0dmlld0JveDogXCIwIDAgMTQgMTZcIixcblx0XHQuLi5wcm9wcyxcblx0XHRyZWYsXG5cdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJwYXRoXCIsIHtcblx0XHRcdGQ6IFwiTTcgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuMTcgMSA3IDFzMS41LjY3IDEuNSAxLjVTNy44MyA0IDcgNHptNyA2YzAgMS4xMS0uODkgMi0yIDJoLTFjLTEuMTEgMC0yLS44OS0yLTJsMi00aC0xYy0uNTUgMC0xLS40NS0xLTFIOHY4Yy40MiAwIDEgLjQ1IDEgMWgxYy40MiAwIDEgLjQ1IDEgMUgzYzAtLjU1LjU4LTEgMS0xaDFjMC0uNTUuNTgtMSAxLTFoLjAzTDYgNUg1YzAgLjU1LS40NSAxLTEgMUgzbDIgNGMwIDEuMTEtLjg5IDItMiAySDJjLTEuMTEgMC0yLS44OS0yLTJsMi00SDFWNWgzYzAtLjU1LjQ1LTEgMS0xaDRjLjU1IDAgMSAuNDUgMSAxaDN2MWgtMWwyIDR6TTIuNSA3TDEgMTBoM0wyLjUgN3pNMTMgMTBsLTEuNS0zLTEuNSAzaDN6XCIsXG5cdFx0XHRmaWxsUnVsZTogXCJldmVub2RkXCJcblx0XHR9KVxuXHR9KTtcbn07XG5MYXcuZGlzcGxheU5hbWUgPSBcIkxhd1wiO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBMYXcgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TGF3Lm1qcy5tYXAiLCJpbXBvcnQgeyBTdmdJY29uIH0gZnJvbSBcIi4vU3ZnSWNvbi5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9MaWNlbnNlLnRzeFxudmFyIExpY2Vuc2UgPSBmdW5jdGlvbiBMaWNlbnNlKHsgcmVmLCAuLi5wcm9wcyB9KSB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhTdmdJY29uLCB7XG5cdFx0dmlld0JveDogXCIwIDAgNDkwLjY1MiA0OTAuNjUyXCIsXG5cdFx0Li4ucHJvcHMsXG5cdFx0cmVmLFxuXHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChcInBhdGhcIiwgeyBkOiBcIk00NTYuNjA3IDkuOTA0SDM0LjA0QzE1LjI2OSA5LjkwNCAwIDI1LjE3IDAgNDMuOTQ1VjMxMC4xN2MwIDE4Ljc3IDE1LjI2OSAzNC4wMzkgMzQuMDQgMzQuMDM5aDI2MC42NDJjLTQuMDQzLTEwLjM1LTYuNTM0LTIxLjczNy03LjE1OS0zMy43NDJsLTI1My45NzQtLjI5Ny40OTEtMjY2LjcxOCA0MjMuMDYzLjQ5M1YzMTAuMTdjMCAuMjc5LS4yMy40OTItLjQ5NS40OTJsLTE1LjI1MS0uMDE5Yy0uNjM3IDExLjk0Mi0zLjExMSAyMy4yNjMtNy4xMzggMzMuNTY1aDIyLjM4OWMxOC43NzcgMCAzNC4wNDUtMTUuMjcgMzQuMDQ1LTM0LjAzOVY0My45NDVjLS4wMDEtMTguNzc1LTE1LjI2OC0zNC4wNDEtMzQuMDQ2LTM0LjA0MXpcIiB9KSwgLyogQF9fUFVSRV9fICovIGpzeChcInBhdGhcIiwgeyBkOiBcIk0zNjQuNDQ3IDM4MS4wMmMzMy4zNTQgMCA2MC4zODYtMzQuMTUyIDYwLjM4Ni03Ni4yODkgMC00Mi4xMzEtMjcuMDMxLTc2LjI4NC02MC4zODYtNzYuMjg0LTMzLjM1IDAtNjAuMzggMzQuMTUzLTYwLjM4IDc2LjI4NCAwIDQyLjEzNyAyNy4wMzEgNzYuMjg5IDYwLjM4IDc2LjI4OXpNODEuMDg3IDExOC4zNDVoMTQ5LjU2MWM5LjI3MyAwIDE2Ljc3Ni03LjQ5OSAxNi43NzYtMTYuNzcyIDAtOS4yNzEtNy41MDQtMTYuNzc1LTE2Ljc3Ni0xNi43NzVIODEuMDg3Yy05LjI3MSAwLTE2Ljc3MSA3LjUwNC0xNi43NzEgMTYuNzc1IDAgOS4yNzMgNy40OTkgMTYuNzcyIDE2Ljc3MSAxNi43NzJ6bTMzNC4wOCA1OC43MTZjMC05LjI3My03LjUwNS0xNi43NzktMTYuNzc2LTE2Ljc3OUg4MS4wODdjLTkuMjcxIDAtMTYuNzcxIDcuNTA2LTE2Ljc3MSAxNi43NzkgMCA5LjI3MSA3LjQ5OSAxNi43NyAxNi43NzEgMTYuNzdoMzE3LjMwNGM5LjI3MSAwIDE2Ljc3Ni03LjQ5OCAxNi43NzYtMTYuNzd6bS0zMzQuMDggNTguNzA3Yy05LjI3MSAwLTE2Ljc3MSA3LjUwNC0xNi43NzEgMTYuNzcxIDAgOS4yNzMgNy40OTkgMTYuNzc3IDE2Ljc3MSAxNi43NzdoMTQ5LjU2MWM5LjI3MyAwIDE2Ljc3Ni03LjUwNCAxNi43NzYtMTYuNzc3IDAtOS4yNjgtNy41MDQtMTYuNzcxLTE2Ljc3Ni0xNi43NzFIODEuMDg3em0zMzQuMzM4IDEzOC42ODRjLS4wNjUuMDgyLTIzLjI5NSAyNi44NjktNTUuNzI4IDIzLjA4MWw0MC4zMzEgODEuNTc3YTIuOTMgMi45MyAwIDAwMi42MzcgMS42MzloLjIxNWEyLjk1IDIuOTUgMCAwMDIuNTcxLTIuMDMxbDEwLjE3NC0zMS4yMzRhMy4wMjQgMy4wMjQgMCAwMTEuNDg4LTEuNzI4IDMuMDcgMy4wNyAwIDAxMi4yOC0uMTNsMzAuOTc3IDEwLjg4Yy4zMjQuMTEyLjY1MS4xNjMuOTguMTYzLjgzNiAwIDEuNjIzLS4zNDggMi4xOTUtLjk4Mi44MDMtLjkuOTY0LTIuMTguNDQxLTMuMjQ0bC0zOC41NjEtNzcuOTkxem0tMTAxLjc3Mi4xNDZjLS4wNDktLjA0Ny0uMTE4LS4wOTYtLjE4NS0uMTQ2bC0zOC41NjEgNzcuOTczYTIuOTUzIDIuOTUzIDAgMDAuNDQ4IDMuMjYyIDIuOTYxIDIuOTYxIDAgMDAzLjE3NC44MTlsMzAuOTc4LTEwLjg4Yy4zMjgtLjExMy42NTgtLjE2Ljk4Mi0uMTYuNDQyIDAgLjg4NC4wOTYgMS4yOTQuMjkuNzA2LjM2IDEuMjQ1Ljk4NyAxLjQ5MyAxLjc0MWwxMC4xNzMgMzEuMjIxYy4zNzggMS4xMzMgMS4zOTEgMS45MzYgMi41NzIgMi4wMTRoLjIxYTIuOTUgMi45NSAwIDAwMi42NDItMS42MjFsMjYuMjA2LTUzLjAxLTE2Ljc1NS0zMy44OTNjLS4wNjYtLjAzNC0xNC42NzItNS44ODQtMjQuNjcxLTE3LjYxelwiIH0pXVxuXHR9KTtcbn07XG5MaWNlbnNlLmRpc3BsYXlOYW1lID0gXCJMaWNlbnNlXCI7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IExpY2Vuc2UgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TGljZW5zZS5tanMubWFwIiwiaW1wb3J0IHsgU3ZnSWNvbiB9IGZyb20gXCIuL1N2Z0ljb24ubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvSWNvbnMvRWFydGgudHN4XG52YXIgRWFydGggPSBmdW5jdGlvbiBFYXJ0aCh7IHJlZiwgLi4ucHJvcHMgfSkge1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoU3ZnSWNvbiwge1xuXHRcdHZpZXdCb3g6IFwiMCAwIDQ1IDQ1XCIsXG5cdFx0Li4ucHJvcHMsXG5cdFx0cmVmLFxuXHRcdGNoaWxkcmVuOiBbXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4cyhcImRlZnNcIiwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goXCJjbGlwUGF0aFwiLCB7XG5cdFx0XHRcdGlkOiBcInByZWZpeF9fYVwiLFxuXHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInBhdGhcIiwgeyBkOiBcIk0wIDM2aDM2VjBIMHYzNnpcIiB9KVxuXHRcdFx0fSksIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJjbGlwUGF0aFwiLCB7XG5cdFx0XHRcdGlkOiBcInByZWZpeF9fYlwiLFxuXHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInBhdGhcIiwgeyBkOiBcIk0xOCAzNkM4LjA1OSAzNiAwIDI3Ljk0MSAwIDE4UzguMDU5IDAgMTggMHMxOCA4LjA1OSAxOCAxOC04LjA1OSAxOC0xOCAxOHpcIiB9KVxuXHRcdFx0fSldIH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChcImdcIiwge1xuXHRcdFx0XHRjbGlwUGF0aDogXCJ1cmwoI3ByZWZpeF9fYSlcIixcblx0XHRcdFx0dHJhbnNmb3JtOiBcIm1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ1KVwiLFxuXHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInBhdGhcIiwge1xuXHRcdFx0XHRcdGQ6IFwiTTM2IDE4YzAtOS45NDEtOC4wNTktMTgtMTgtMThTMCA4LjA1OSAwIDE4czguMDU5IDE4IDE4IDE4IDE4LTguMDU5IDE4LTE4XCIsXG5cdFx0XHRcdFx0ZmlsbDogXCIjODhjOWY5XCJcblx0XHRcdFx0fSlcblx0XHRcdH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChcImdcIiwge1xuXHRcdFx0XHRjbGlwUGF0aDogXCJ1cmwoI3ByZWZpeF9fYilcIixcblx0XHRcdFx0dHJhbnNmb3JtOiBcIm1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ1KVwiLFxuXHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInBhdGhcIiwge1xuXHRcdFx0XHRcdGQ6IFwiTTMuNjI3IDI4Ljk1MmMtLjQ1IDIuOTMgMi4xOTUgNC4xNTYgMy42MDcgNC40NyAxLjQxMi4zMTQgMi43NzYuNjIgMi45MzMtLjAwNi4xNTYtLjYyOC4zMTEtMS40NiAxLjE3My0xLjE0OC44NjIuMzE0IDMuMDQzLjU2IDQuMDYzIDEuMzQyIDEuMDIuNzgzIDIuMjQ0Ljc4NyAzLjI2NC40NzMgMS4wMi0uMzEzIDMuODc3LS4yMjcgMy4yNS0xLjE2Ny0uNjI3LS45NC0xLjgyNS0uODI3LTIuNDUtMS45MjQtLjYyOC0xLjA5OS4xNzEtMS44MjYgMS4wMzMtMS44MjYuODY1IDAgMS43MS0uMTM1IDIuMjYuNzI3LjU0OC44NjMtLjM4MyAyLjQ2My4zMjQgMi4zNTcuNzA2LS4xMDYgMS40NzctLjg2NiAyLjAzLTIuMDQzLjU0Ny0xLjE3NiAxLjQwOC0uNDcgMS43MjMtMS4xNzYuMzEzLS43MDUgMi4wNC0yLjAzOSAxLjE3Ny0xLjgwNC0uODY0LjIzNi0xLjcyNi4zOTItMS45Ni0uNDctLjIzNy0uODYzLjM4OC0xLjcyNi0uMjM3LTEuNjQ3LS42MjcuMDgtLjg2LS4wODktMS43MjUtLjAwNC0uODYyLjA4My0xLjMzMy42MzEtMi4wMzktLjU0NS0uNzA1LTEuMTc1LTEuMjU0LTEuOTYtMS41NjctMi41MDktLjMxNS0uNTQ5LS43ODUtLjg2LS41NS0xLjk2LjIzNS0xLjA5OS0uNjI4LS43ODUtLjYyOC4xNTYgMCAuOTQtLjU0OCAxLjA5OC0xLjI1My45NDItLjcwNi0uMTU3LTEuODAzLS4zMTMtMS43MjQtMS4wOTguMDc3LS43ODQtLjMxNS0xLjcyNS4zMTMtMi4zNTIuNjI3LS42MjkgMS4zMy4wNzYgMS43MjMtLjE1OC4zOTMtLjIzNyAxLjUyNS0uMDIzIDEuMTMzLS40MTYtLjM5My0uMzktMS43Ni0uODgtLjk3Ni0xLjUwOWE0LjgzMSA0LjgzMSAwIDAxMS44OTMtLjkwN2MuMzEzLS4wOC4wNjIuNzc0IDEuMDgzIDEuMTY2IDEuMDE3LjM5MiAyLjYwOCAxLjI5IDMgLjU4NC4zOTEtLjcwNS4zMzgtLjU5NSAxLjc1LS43NSAxLjQxLS4xNTYgMS43OS0uNTg1IDIuNDE3LTEuOTE3LjYyNi0xLjMzMy40NDYtMS4xOTIgMS40NjItMS41OCAxLjAyMS0uMzk0IDEuNjc4LS4yMjMuNzM3LTEuMDg3LS45NC0uODYtMS42NS0uODE0LTIuMTk5LTEuODMzLS41NS0xLjAxNy0uMTUzLTEuNzMtMS4yNS0yLjc1QTIwLjc1NSAyMC43NTUgMCAwMDI0IDRjLS42MTgtLjM3LTIuMTYyLTIuMDctMy4wODMtMi42NjctLjgzNC0uNTQtMS4wODMgMC0xLjA4MyAwcy4yNTYgMS42NjcuOTY0IDIuMzcyYy43MDQuNzA1IDEuMTA1IDMuMzQ0Ljg3IDQuMTI4LS4yMzUuNzgzLTEuMzYgMS4wMi0xLjc1IDEuMzMzLS4zOTMuMzEyLTEuNDE4IDEuNTQ4LTEuNDE4IDIuMzM0IDAgLjc4NCAxLjcxIDIuODEgMS43MSAyLjgxLjIxOC0xLjA4OS0xLjAzOS4zMjgtMS42MjcuNTIzLS40Ny4xNTctMS41NDIgMS42NTYtMi40NTkgMS44MTQtLjkxNi4xNi0xLjM2My43LTIuMDY4IDEuMjUtLjcwNi41NS0yLjQzIDEuMzMyLTIuMzUzIDIuMTk1LjA4Ljg2Mi0xLjcyNSAxLjU2OC0yLjAzOCAxLjU2OC0uMzE0IDAtMS4wMTkgMC0xLjY0NyAxLjA5OC0uNjI3IDEuMDk4LTEuNzI1IDIuMTk2LTEuNDEgMi45OC4zMTIuNzgzLjM5MSAxLjcyNi4yMzMgMi41ODgtLjE1Ni44NjItMS4zMzIgMS4xNzYtMS41NjcuOTQxLS4yMzUtLjIzNi0xLjQ4OS0xLjMzNS0xLjY0Ny0uMzE1XCIsXG5cdFx0XHRcdFx0ZmlsbDogXCIjNWM5MTNiXCJcblx0XHRcdFx0fSlcblx0XHRcdH0pXG5cdFx0XVxuXHR9KTtcbn07XG5FYXJ0aC5kaXNwbGF5TmFtZSA9IFwiRWFydGhcIjtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRWFydGggfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RWFydGgubWpzLm1hcCIsIi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvdHlwZXNjcmlwdC5zdmdcbnZhciB0eXBlc2NyaXB0X2RlZmF1bHQgPSBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU16WWlJR2hsYVdkb2REMGlNellpSUhacFpYZENiM2c5SWpBZ01DQXpOaUF6TmlJZ1ptbHNiRDBpYm05dVpTSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtQSEJoZEdnZ1pEMGlUVEFnTUVnek5sWXpOa2d3VmpCYUlpQm1hV3hzUFNJak1UazNOa1F5SWk4K0NqeHdZWFJvSUdROUlrMHhOQzR3TVRNM0lERXlMakl3TXpGV01qVklNVEV1TVRVM01sWXhNaTR5TURNeFNERTBMakF4TXpkYVRURTNMamt3TnpJZ01USXVNakF6TVZZeE5DNDBNalk0U0RjdU16UXlOemRXTVRJdU1qQXpNVWd4Tnk0NU1EY3lXazB5TXk0ek56UWdNalZJTWpBdU5UWXhOVXd5TUM0MU56a3hJREl5TGpjNE5USklNak11TXpjMFF6STBMakF4TWpjZ01qSXVOemcxTWlBeU5DNDFOVEU0SURJeUxqWXpPRGNnTWpRdU9Ua3hNaUF5TWk0ek5EVTNRekkxTGpRek1EY2dNakl1TURRMk9TQXlOUzQzTmpRMklESXhMall3TnpRZ01qVXVPVGt6TWlBeU1TNHdNamN6UXpJMkxqSXlNVGNnTWpBdU5EUXhOQ0F5Tmk0ek16VTVJREU1TGpjeU9UVWdNall1TXpNMU9TQXhPQzQ0T1RFMlZqRTRMak13TWpkRE1qWXVNek0xT1NBeE55NDJOams1SURJMkxqSTNNVFVnTVRjdU1URXpNeUF5Tmk0eE5ESTJJREUyTGpZek1qaERNall1TURFek55QXhOaTR4TkRZMUlESTFMamd5TXpJZ01UVXVOek01TXlBeU5TNDFOekV6SURFMUxqUXhNVEZETWpVdU16RTVNeUF4TlM0d09ETWdNalV1TURBMU9TQXhOQzQ0TXpZNUlESTBMall6TURrZ01UUXVOamN5T1VNeU5DNHlOakUzSURFMExqVXdPRGdnTWpNdU9ETTJPU0F4TkM0ME1qWTRJREl6TGpNMU5qUWdNVFF1TkRJMk9FZ3lNQzQxTURnNFZqRXlMakl3TXpGSU1qTXVNelUyTkVNeU5DNHlNak0ySURFeUxqSXdNekVnTWpVdU1ERTBOaUF4TWk0ek5EazJJREkxTGpjeU9UVWdNVEl1TmpReU5rTXlOaTQwTlRBeUlERXlMamt6TlRVZ01qY3VNRGN4TXlBeE15NHpOVFExSURJM0xqVTVNamdnTVRNdU9EazVORU15T0M0eE1qQXhJREUwTGpRME5ETWdNamd1TlRJM015QXhOUzR3T0RnNUlESTRMamd4TkRVZ01UVXVPRE16UXpJNUxqRXdNVFlnTVRZdU5UYzNNU0F5T1M0eU5EVXhJREUzTGpRd05qSWdNamt1TWpRMU1TQXhPQzR6TWpBelZqRTRMamc1TVRaRE1qa3VNalExTVNBeE9TNDNPVGs0SURJNUxqRXdNVFlnTWpBdU5qSTRPU0F5T0M0NE1UUTFJREl4TGpNM09EbERNamd1TlRJM015QXlNaTR4TWpNZ01qZ3VNVEl3TVNBeU1pNDNOamMySURJM0xqVTVNamdnTWpNdU16RXlOVU15Tnk0d056RXpJREl6TGpnMU1UWWdNall1TkRVek1TQXlOQzR5TmpjMklESTFMamN6T0RNZ01qUXVOVFl3TlVNeU5TNHdNak0wSURJMExqZzFNelVnTWpRdU1qTTFOQ0F5TlNBeU15NHpOelFnTWpWYVRUSXlMakU0TnpVZ01USXVNakF6TVZZeU5VZ3hPUzR6TWpJelZqRXlMakl3TXpGSU1qSXVNVGczTlZvaUlHWnBiR3c5SW5kb2FYUmxJaTgrQ2p3dmMzWm5QZ289XCI7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IHR5cGVzY3JpcHRfZGVmYXVsdCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzY3JpcHQubWpzLm1hcCIsImltcG9ydCB0eXBlc2NyaXB0X2RlZmF1bHQgZnJvbSBcIi4vdHlwZXNjcmlwdC5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvVHlwZVNjcmlwdC50c3hcbmZ1bmN0aW9uIFR5cGVTY3JpcHQoKSB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiaW1nXCIsIHtcblx0XHRhbHQ6IFwidHlwZXNjcmlwdFwiLFxuXHRcdGhlaWdodDogXCIyMFwiLFxuXHRcdHNyYzogdHlwZXNjcmlwdF9kZWZhdWx0LFxuXHRcdHdpZHRoOiBcIjIwXCJcblx0fSk7XG59XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFR5cGVTY3JpcHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VHlwZVNjcmlwdDIubWpzLm1hcCIsIi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvY29tbW9uanMuc3ZnXG52YXIgY29tbW9uanNfZGVmYXVsdCA9IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTXpZaUlHaGxhV2RvZEQwaU16WWlJSFpwWlhkQ2IzZzlJakFnTUNBek5pQXpOaUlnWm1sc2JEMGlibTl1WlNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S1BIQmhkR2dnWkQwaVRUQWdNRWd6TmxZek5rZ3dWakJhSWlCbWFXeHNQU0lqUmtaRU1UQXlJaTgrQ2p4d1lYUm9JR1E5SWswNUxqUXhNVEV6SURJeExqY3hNRGxJTVRJdU1qVTRPRU14TWk0eU1URTVJREl5TGpVNE9UZ2dNVEV1T1RjeE55QXlNeTR6TmpZeUlERXhMalV6T0RFZ01qUXVNRFJETVRFdU1URXdOQ0F5TkM0M01EZ2dNVEF1TlRFMU5pQXlOUzR5TXpJMElEa3VOelV6T1RFZ01qVXVOakV6TTBNNExqazVNakU1SURJMUxqazRPRE1nT0M0d09EWTVNU0F5Tmk0eE56VTRJRGN1TURNNE1Ea2dNall1TVRjMU9FTTJMakl3TURJZ01qWXVNVGMxT0NBMUxqUTFNRElnTWpZdU1ETXlNaUEwTGpjNE9EQTVJREkxTGpjME5URkROQzR4TWpVNU9DQXlOUzQwTlRnZ015NDFOak0wT0NBeU5TNHdORGM1SURNdU1UQXdOVGtnTWpRdU5URTBOa015TGpZME16VTFJREl6TGprM05UWWdNaTR5T1RFNU9TQXlNeTR6TWpneElESXVNRFExT1NBeU1pNDFOekl6UXpFdU9EQTFOallnTWpFdU9ERXdOU0F4TGpZNE5UVTFJREl3TGprMU1qRWdNUzQyT0RVMU5TQXhPUzQ1T1RjeFZqRTVMakl4TkRoRE1TNDJPRFUxTlNBeE9DNHlOVGs0SURFdU9ERXhOVElnTVRjdU5EQXhOQ0F5TGpBMk16UTRJREUyTGpZek9UWkRNaTR6TVRVME15QXhOUzQ0TnpjNUlESXVOamMxTnpnZ01UVXVNakkzTlNBekxqRTBORFV6SURFMExqWTRPRFZETXk0Mk1UTXlPQ0F4TkM0eE5EazBJRFF1TVRjMU56Z2dNVE11TnpNMk15QTBMamd6TWpBeklERXpMalEwT1RKRE5TNDBPRGd5T0NBeE15NHhOakl4SURZdU1qSXdOeUF4TXk0d01UZzJJRGN1TURJNU15QXhNeTR3TVRnMlF6Z3VNVEU1TVRRZ01UTXVNREU0TmlBNUxqQXpPVEEySURFekxqSXhORGdnT1M0M09Ea3dOaUF4TXk0Mk1EYzBRekV3TGpVek9URWdNVFFnTVRFdU1URTVNU0F4TkM0MU16a3hJREV4TGpVeU9UTWdNVFV1TWpJME5rTXhNUzQ1TkRVeklERTFMamt4TURJZ01USXVNVGswTXlBeE5pNDJPVEkwSURFeUxqSTNOalFnTVRjdU5UY3hNMGc1TGpReE9Ua3lRemt1TXprMk5EZ2dNVGN1TURjek1pQTVMak13TWpjeklERTJMalkxTkRNZ09TNHhNemcyTnlBeE5pNHpNVFExUXpndU9UYzBOakVnTVRVdU9UWTRPQ0E0TGpjeU1qWTJJREUxTGpjd09DQTRMak00TWpneElERTFMalV6TWpKRE9DNHdOREk1TnlBeE5TNHpOVFkwSURjdU5Ua3hPQ0F4TlM0eU5qZzJJRGN1TURJNU15QXhOUzR5TmpnMlF6WXVOakU1TVRRZ01UVXVNalk0TmlBMkxqSTFPRGM1SURFMUxqTTBORGNnTlM0NU5EZ3lOQ0F4TlM0ME9UY3hRelV1TmpRek5UVWdNVFV1TmpRNU5DQTFMak00T0RZM0lERTFMamc0TmpjZ05TNHhPRE0xT1NBeE5pNHlNRGxETkM0NU9EUXpPQ0F4Tmk0MU16RXlJRFF1T0RNME9UWWdNVFl1T1RReE5DQTBMamN6TlRNMUlERTNMalF6T1RWRE5DNDJNelUzTkNBeE55NDVNekUySURRdU5UZzFPVFFnTVRndU5URTNOaUEwTGpVNE5UazBJREU1TGpFNU56TldNVGt1T1RrM01VTTBMalU0TlRrMElESXdMalkzTURrZ05DNDJNams0T0NBeU1TNHlOVE01SURRdU56RTNOemNnTWpFdU56UTJNVU0wTGpnd05UWTJJREl5TGpJek9ETWdOQzQ1TkRZeU9TQXlNaTQyTkRVMUlEVXVNVE01TmpVZ01qSXVPVFkzT0VNMUxqTXpPRGczSURJekxqSTVJRFV1TlRrek56VWdNak11TlRNd015QTFMamt3TkRNZ01qTXVOamc0TlVNMkxqSXhORGcwSURJekxqZzBOamNnTmk0MU9USTNOeUF5TXk0NU1qVTRJRGN1TURNNE1Ea2dNak11T1RJMU9FTTNMalUwTnpnMUlESXpMamt5TlRnZ055NDVOekkyTmlBeU15NDRORFkzSURndU16RXlOU0F5TXk0Mk9EZzFRemd1TmpVeU16UWdNak11TlRJME5DQTRMamt4TXpBNUlESXpMakkzT0RNZ09TNHdPVFEzTXlBeU1pNDVOVEF5UXprdU1qYzJNemNnTWpJdU5qSXlNU0E1TGpNNE1UZzBJREl5TGpJd09TQTVMalF4TVRFeklESXhMamN4TURsYVRURTRMams1TVRJZ01qSXVNREkzTTFZeE15NHlNRE14U0RJeExqZ3pPRGxXTWpJdU1ESTNNME15TVM0NE16ZzVJREl5TGpnNE1qZ2dNakV1TmpRMU5TQXlNeTQyTWpFeElESXhMakkxT0RnZ01qUXVNalF5TWtNeU1DNDROemM1SURJMExqZzFOelFnTWpBdU16VTVOQ0F5TlM0ek16VWdNVGt1TnpBek1TQXlOUzQyTnpRNFF6RTVMakExTWpjZ01qWXVNREE0T0NBeE9DNHpNVGMwSURJMkxqRTNOVGdnTVRjdU5EazNNU0F5Tmk0eE56VTRRekUyTGpZMU16TWdNall1TVRjMU9DQXhOUzQ1TURNeklESTJMakF6TlRJZ01UVXVNalEzTVNBeU5TNDNOVE01UXpFMExqVTVNRGdnTWpVdU5EWTJPQ0F4TkM0d056VXlJREkxTGpBek1ETWdNVE11TnpBd01pQXlOQzQwTkRRelF6RXpMak16TVRFZ01qTXVPRFV5TlNBeE15NHhORFkxSURJekxqQTVPVFlnTVRNdU1UUTJOU0F5TWk0eE9EVTFTREUyTGpBeE1UZERNVFl1TURFeE55QXlNaTQyTXpZM0lERTJMakEyTnpRZ01qSXVPVGswTVNBeE5pNHhOemczSURJekxqSTFOemhETVRZdU1qazFPU0F5TXk0MU1UVTJJREUyTGpRMk5UZ2dNak11TmprM015QXhOaTQyT0RnMUlESXpMamd3TWpkRE1UWXVPVEV4TVNBeU15NDVNRGd5SURFM0xqRTRNRGNnTWpNdU9UWXdPU0F4Tnk0ME9UY3hJREl6TGprMk1EbERNVGN1T0RBeE9DQXlNeTQ1TmpBNUlERTRMakEyTlRRZ01qTXVPRGczTnlBeE9DNHlPRGd4SURJekxqYzBNVEpETVRndU5URXdOeUF5TXk0MU9EZzVJREU0TGpZNE16WWdNak11TXpZNU1TQXhPQzQ0TURZMklESXpMakE0TWtNeE9DNDVNamszSURJeUxqYzRPVEVnTVRndU9Ua3hNaUF5TWk0ME16YzFJREU0TGprNU1USWdNakl1TURJM00xcE5NekF1TlRjMU1pQXlNaTQyTWpWRE16QXVOVGMxTWlBeU1pNDBNRGd5SURNd0xqVTBNeUF5TWk0eU1UUTRJRE13TGpRM09EVWdNakl1TURRME9VTXpNQzQwTVRReElESXhMamcyT1RFZ016QXVNamsyT1NBeU1TNDNNRGdnTXpBdU1USTNJREl4TGpVMk1UVkRNamt1T1RVM0lESXhMalF4TlNBeU9TNDNNVFk0SURJeExqSTJPRFlnTWprdU5EQTJNaUF5TVM0eE1qSXhRekk1TGpBNU5UY2dNakF1T1RZNU55QXlPQzQyT0RnMUlESXdMamd4TkRVZ01qZ3VNVGcwTmlBeU1DNDJOVFl5UXpJM0xqWXhNRFFnTWpBdU5EWTRPQ0F5Tnk0d05qSTFJREl3TGpJMU56Z2dNall1TlRReElESXdMakF5TXpSRE1qWXVNREkxTkNBeE9TNDNPRE15SURJMUxqVTJOVFFnTVRrdU5UQTBPU0F5TlM0eE5qRXhJREU1TGpFNE9EVkRNalF1TnpVMk9DQXhPQzQ0TnpJeElESTBMalF6TnpVZ01UZ3VOVEF5T1NBeU5DNHlNRE14SURFNExqQTRNVEZETWpNdU9UYzBOaUF4Tnk0Mk5Ua3lJREl6TGpnMk1EUWdNVGN1TVRZM0lESXpMamcyTURRZ01UWXVOakEwTlVNeU15NDROakEwSURFMkxqQTFPVFlnTWpNdU9UZ3dOU0F4TlM0MU5qYzBJREkwTGpJeU1EY2dNVFV1TVRJM09VTXlOQzQwTmpBNUlERTBMalk0T0RVZ01qUXVOemszT1NBeE5DNHpNVE0xSURJMUxqSXpNVFFnTVRRdU1EQXlPVU15TlM0Mk5qVWdNVE11TmpnMk5TQXlOaTR4TnpRNElERXpMalEwTmpNZ01qWXVOell3TnlBeE15NHlPREl5UXpJM0xqTTBOamNnTVRNdU1URXlNeUF5Tnk0NU9URXlJREV6TGpBeU56TWdNamd1TmprME15QXhNeTR3TWpjelF6STVMall6TVRnZ01UTXVNREkzTXlBek1DNDBOVFV4SURFekxqRTVORE1nTXpFdU1UWTBNU0F4TXk0MU1qZ3pRek14TGpnM09Ea2dNVE11T0RVMk5DQXpNaTQwTXpVMUlERTBMak14T1RNZ016SXVPRE0wSURFMExqa3hOME16TXk0eU16STBJREUxTGpVd09EZ2dNek11TkRNeE5pQXhOaTR4T1RjeklETXpMalF6TVRZZ01UWXVPVGd5TkVnek1DNDFPRFJETXpBdU5UZzBJREUyTGpZek5qY2dNekF1TlRFd055QXhOaTR6TXpJZ016QXVNelkwTXlBeE5pNHdOamcwUXpNd0xqSXlNellnTVRVdU56azRPQ0F6TUM0d01EWTRJREUxTGpVNE56a2dNamt1TnpFek9TQXhOUzQwTXpVMVF6STVMalF5TmpnZ01UVXVNamd6TWlBeU9TNHdOalkwSURFMUxqSXdOeUF5T0M0Mk16STRJREUxTGpJd04wTXlPQzR5TVRBNUlERTFMakl3TnlBeU55NDROVFkwSURFMUxqSTNNVFVnTWpjdU5UWTVNeUF4TlM0ME1EQTBRekkzTGpJNE9ERWdNVFV1TlRJek5DQXlOeTR3TnpReUlERTFMalk1TXpRZ01qWXVPVEkzTnlBeE5TNDVNVEF5UXpJMkxqYzROekVnTVRZdU1USTNJREkyTGpjeE5qZ2dNVFl1TXpZME15QXlOaTQzTVRZNElERTJMall5TWpGRE1qWXVOekUyT0NBeE5pNDRNamN4SURJMkxqYzJPVFVnTVRjdU1ERTBOaUF5Tmk0NE56VWdNVGN1TVRnME5rTXlOaTQ1T0RZeklERTNMak0wT0RZZ01qY3VNVFEwTlNBeE55NDFNRE01SURJM0xqTTBPVFlnTVRjdU5qVXdORU15Tnk0MU5qQTFJREUzTGpjNU1TQXlOeTQ0TVRnMElERTNMamt5TlRnZ01qZ3VNVEl6SURFNExqQTFORGRETWpndU5ESTNOeUF4T0M0eE9ETTJJREk0TGpjM05qUWdNVGd1TXpBMk5pQXlPUzR4TmpnNUlERTRMalF5TXpoRE1qa3VPRFUwTlNBeE9DNDJOREEySURNd0xqUTJNRGtnTVRndU9EZ3dPU0F6TUM0NU9EZ3pJREU1TGpFME5EVkRNekV1TlRJeE5TQXhPUzQwTURneUlETXhMamsyT1RjZ01Ua3VOekEzSURNeUxqTXpNeUF5TUM0d05ERkRNekl1TmprMk15QXlNQzR6TnpVZ016SXVPVFk0T0NBeU1DNDNOVEk1SURNekxqRTFNRFFnTWpFdU1UYzBPRU16TXk0ek16YzVJREl4TGpVNU5qY2dNek11TkRNeE5pQXlNaTR3TnpReUlETXpMalF6TVRZZ01qSXVOakEzTkVNek15NDBNekUySURJekxqRTNOVGdnTXpNdU16SXdNeUF5TXk0Mk56azNJRE16TGpBNU56Y2dNalF1TVRFNU1VTXpNaTQ0T0RBNUlESTBMalUxT0RZZ016SXVOVFkwTlNBeU5DNDVNek0ySURNeUxqRTBPRFFnTWpVdU1qUTBNVU16TVM0M016Z3pJREkxTGpVME9EZ2dNekV1TWpRMk1TQXlOUzQzT0RBeklETXdMalkzTVRrZ01qVXVPVE00TlVNek1DNHdPVGMzSURJMkxqQTVOamNnTWprdU5EVTJNU0F5Tmk0eE56VTRJREk0TGpjME56RWdNall1TVRjMU9FTXlPQzR4TURJMUlESTJMakUzTlRnZ01qY3VORFkyT0NBeU5pNHdPVE00SURJMkxqZ3pPVGdnTWpVdU9USTVOME15Tmk0eU1USTVJREkxTGpjMU9UZ2dNalV1TmpRME5TQXlOUzQxTURJZ01qVXVNVE0wT0NBeU5TNHhOVFl5UXpJMExqWXpNRGtnTWpRdU9ERXdOU0F5TkM0eU1qWTJJREkwTGpNM01URWdNak11T1RJeE9TQXlNeTQ0TXpjNVF6SXpMall5TXlBeU15NHlPVGc0SURJekxqUTNNellnTWpJdU5qWXdNaUF5TXk0ME56TTJJREl4TGpreU1UbElNall1TXpNNE9VTXlOaTR6TXpnNUlESXlMak13T0RZZ01qWXVNemswTlNBeU1pNDJNelkzSURJMkxqVXdOVGtnTWpJdU9UQTJNa015Tmk0Mk1UY3lJREl6TGpFMk9Ua2dNall1TnpjMU5DQXlNeTR6T0RNNElESTJMams0TURVZ01qTXVOVFEzT1VNeU55NHhPVEUwSURJekxqY3hNVGtnTWpjdU5EUTJNeUF5TXk0NE1qa3hJREkzTGpjME5URWdNak11T0RrNU5FTXlPQzR3TkRNNUlESXpMamsyT1RjZ01qZ3VNemMzT1NBeU5DNHdNRFE1SURJNExqYzBOekVnTWpRdU1EQTBPVU15T1M0eE56UTRJREkwTGpBd05Ea2dNamt1TlRJd05TQXlNeTQ1TkRZeklESTVMamM0TkRJZ01qTXVPREk1TVVNek1DNHdOVE0zSURJekxqY3dOakVnTXpBdU1qVXlPU0F5TXk0MU16a3hJRE13TGpNNE1UZ2dNak11TXpJNE1VTXpNQzQxTVRBM0lESXpMakV4TnpJZ016QXVOVGMxTWlBeU1pNDRPREk0SURNd0xqVTNOVElnTWpJdU5qSTFXaUlnWm1sc2JEMGlkMmhwZEdVaUx6NEtQQzl6ZG1jK0NnPT1cIjtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgY29tbW9uanNfZGVmYXVsdCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbW1vbmpzLm1qcy5tYXAiLCJpbXBvcnQgY29tbW9uanNfZGVmYXVsdCBmcm9tIFwiLi9jb21tb25qcy5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvQ29tbW9uSlMudHN4XG5mdW5jdGlvbiBDb21tb25KUygpIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJpbWdcIiwge1xuXHRcdGFsdDogXCJjb21tb25qc1wiLFxuXHRcdGhlaWdodDogXCIyMFwiLFxuXHRcdHNyYzogY29tbW9uanNfZGVmYXVsdCxcblx0XHR3aWR0aDogXCIyMFwiXG5cdH0pO1xufVxuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBDb21tb25KUyB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db21tb25KUzIubWpzLm1hcCIsIi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvZXM2bW9kdWxlLnN2Z1xudmFyIGVzNm1vZHVsZV9kZWZhdWx0ID0gXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNellpSUdobGFXZG9kRDBpTXpZaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TmlBek5pSWdabWxzYkQwaWJtOXVaU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajRLUEhCaGRHZ2daRDBpVFRBZ01FZ3pObFl6Tmtnd1ZqQmFJaUJtYVd4c1BTSWpPVE5ETWtSQ0lpOCtDanh3WVhSb0lHUTlJazB4TVM0M05UVTVJREl5TGpjNE5USldNalZJTkM0NU5EUXpORll5TWk0M09EVXlTREV4TGpjMU5UbGFUVFV1T1RFNU9USWdNVEl1TWpBek1WWXlOVWd6TGpBMU5EWTVWakV5TGpJd016RklOUzQ1TVRrNU1scE5NVEF1T0RjM0lERTNMak0xTXpWV01Ua3VORGs0U0RRdU9UUTBNelJXTVRjdU16VXpOVWd4TUM0NE56ZGFUVEV4TGpjMk5EWWdNVEl1TWpBek1WWXhOQzQwTWpZNFNEUXVPVFEwTXpSV01USXVNakF6TVVneE1TNDNOalEyV2sweE9TNDNPVGM1SURJeExqWXlOVU14T1M0M09UYzVJREl4TGpRd09ESWdNVGt1TnpZMU5pQXlNUzR5TVRRNElERTVMamN3TVRJZ01qRXVNRFEwT1VNeE9TNDJNelkzSURJd0xqZzJPVEVnTVRrdU5URTVOU0F5TUM0M01EZ2dNVGt1TXpRNU5pQXlNQzQxTmpFMVF6RTVMakUzT1RjZ01qQXVOREUxSURFNExqa3pPVFVnTWpBdU1qWTROaUF4T0M0Mk1qZzVJREl3TGpFeU1qRkRNVGd1TXpFNE5DQXhPUzQ1TmprM0lERTNMamt4TVRFZ01Ua3VPREUwTlNBeE55NDBNRGN5SURFNUxqWTFOakpETVRZdU9ETXpJREU1TGpRMk9EZ2dNVFl1TWpnMU1pQXhPUzR5TlRjNElERTFMamMyTXpjZ01Ua3VNREl6TkVNeE5TNHlORGdnTVRndU56Z3pNaUF4TkM0M09EZ3hJREU0TGpVd05Ea2dNVFF1TXpnek9DQXhPQzR4T0RnMVF6RXpMamszT1RVZ01UY3VPRGN5TVNBeE15NDJOakF5SURFM0xqVXdNamtnTVRNdU5ESTFPQ0F4Tnk0d09ERXhRekV6TGpFNU56TWdNVFl1TmpVNU1pQXhNeTR3T0RNZ01UWXVNVFkzSURFekxqQTRNeUF4TlM0Mk1EUTFRekV6TGpBNE15QXhOUzR3TlRrMklERXpMakl3TXpFZ01UUXVOVFkzTkNBeE15NDBORE0wSURFMExqRXlOemxETVRNdU5qZ3pOaUF4TXk0Mk9EZzFJREUwTGpBeU1EVWdNVE11TXpFek5TQXhOQzQwTlRReElERXpMakF3TWpsRE1UUXVPRGczTnlBeE1pNDJPRFkxSURFMUxqTTVOelVnTVRJdU5EUTJNeUF4TlM0NU9ETTBJREV5TGpJNE1qSkRNVFl1TlRZNU15QXhNaTR4TVRJeklERTNMakl4TXprZ01USXVNREkzTXlBeE55NDVNVGNnTVRJdU1ESTNNME14T0M0NE5UUTFJREV5TGpBeU56TWdNVGt1TmpjM055QXhNaTR4T1RReklESXdMak00TmpjZ01USXVOVEk0TTBNeU1TNHhNREUySURFeUxqZzFOalFnTWpFdU5qVTRNaUF4TXk0ek1Ua3pJREl5TGpBMU5qWWdNVE11T1RFM1F6SXlMalExTlRFZ01UUXVOVEE0T0NBeU1pNDJOVFF6SURFMUxqRTVOek1nTWpJdU5qVTBNeUF4TlM0NU9ESTBTREU1TGpnd05qWkRNVGt1T0RBMk5pQXhOUzQyTXpZM0lERTVMamN6TXpRZ01UVXVNek15SURFNUxqVTROamtnTVRVdU1EWTRORU14T1M0ME5EWXpJREUwTGpjNU9EZ2dNVGt1TWpJNU5TQXhOQzQxT0RjNUlERTRMamt6TmpVZ01UUXVORE0xTlVNeE9DNDJORGswSURFMExqSTRNeklnTVRndU1qZzVNU0F4TkM0eU1EY2dNVGN1T0RVMU5TQXhOQzR5TURkRE1UY3VORE16TmlBeE5DNHlNRGNnTVRjdU1EYzVNU0F4TkM0eU56RTFJREUyTGpjNU1pQXhOQzQwTURBMFF6RTJMalV4TURjZ01UUXVOVEl6TkNBeE5pNHlPVFk1SURFMExqWTVNelFnTVRZdU1UVXdOQ0F4TkM0NU1UQXlRekUyTGpBd09UZ2dNVFV1TVRJM0lERTFMamt6T1RVZ01UVXVNelkwTXlBeE5TNDVNemsxSURFMUxqWXlNakZETVRVdU9UTTVOU0F4TlM0NE1qY3hJREUxTGprNU1qSWdNVFl1TURFME5pQXhOaTR3T1RjM0lERTJMakU0TkRaRE1UWXVNakE1SURFMkxqTTBPRFlnTVRZdU16WTNNaUF4Tmk0MU1ETTVJREUyTGpVM01qTWdNVFl1TmpVd05FTXhOaTQzT0RNeUlERTJMamM1TVNBeE55NHdOREVnTVRZdU9USTFPQ0F4Tnk0ek5EVTNJREUzTGpBMU5EZERNVGN1TmpVd05DQXhOeTR4T0RNMklERTNMams1T1NBeE55NHpNRFkySURFNExqTTVNVFlnTVRjdU5ESXpPRU14T1M0d056Y3hJREUzTGpZME1EWWdNVGt1Tmpnek5pQXhOeTQ0T0RBNUlESXdMakl4TURrZ01UZ3VNVFEwTlVNeU1DNDNORFF4SURFNExqUXdPRElnTWpFdU1Ua3lOQ0F4T0M0M01EY2dNakV1TlRVMU55QXhPUzR3TkRGRE1qRXVPVEU0T1NBeE9TNHpOelVnTWpJdU1Ua3hOQ0F4T1M0M05USTVJREl5TGpNM015QXlNQzR4TnpRNFF6SXlMalUyTURVZ01qQXVOVGsyTnlBeU1pNDJOVFF6SURJeExqQTNORElnTWpJdU5qVTBNeUF5TVM0Mk1EYzBRekl5TGpZMU5ETWdNakl1TVRjMU9DQXlNaTQxTkRNZ01qSXVOamM1TnlBeU1pNHpNakF6SURJekxqRXhPVEZETWpJdU1UQXpOU0F5TXk0MU5UZzJJREl4TGpjNE56RWdNak11T1RNek5pQXlNUzR6TnpFeElESTBMakkwTkRGRE1qQXVPVFl3T1NBeU5DNDFORGc0SURJd0xqUTJPRGdnTWpRdU56Z3dNeUF4T1M0NE9UUTFJREkwTGprek9EVkRNVGt1TXpJd015QXlOUzR3T1RZM0lERTRMalkzT0RjZ01qVXVNVGMxT0NBeE55NDVOamszSURJMUxqRTNOVGhETVRjdU16STFNaUF5TlM0eE56VTRJREUyTGpZNE9UVWdNalV1TURrek9DQXhOaTR3TmpJMUlESTBMamt5T1RkRE1UVXVORE0xTlNBeU5DNDNOVGs0SURFMExqZzJOeklnTWpRdU5UQXlJREUwTGpNMU56UWdNalF1TVRVMk1rTXhNeTQ0TlRNMUlESXpMamd4TURVZ01UTXVORFE1TWlBeU15NHpOekV4SURFekxqRTBORFVnTWpJdU9ETTNPVU14TWk0NE5EVTNJREl5TGpJNU9EZ2dNVEl1TmprMk15QXlNUzQyTmpBeUlERXlMalk1TmpNZ01qQXVPVEl4T1VneE5TNDFOakUxUXpFMUxqVTJNVFVnTWpFdU16QTROaUF4TlM0Mk1UY3lJREl4TGpZek5qY2dNVFV1TnpJNE5TQXlNUzQ1TURZeVF6RTFMamd6T1RnZ01qSXVNVFk1T1NBeE5TNDVPVGdnTWpJdU16Z3pPQ0F4Tmk0eU1ETXhJREl5TGpVME56bERNVFl1TkRFME1TQXlNaTQzTVRFNUlERTJMalkyT0RrZ01qSXVPREk1TVNBeE5pNDVOamM0SURJeUxqZzVPVFJETVRjdU1qWTJOaUF5TWk0NU5qazNJREUzTGpZd01EWWdNak11TURBME9TQXhOeTQ1TmprM0lESXpMakF3TkRsRE1UZ3VNemszTlNBeU15NHdNRFE1SURFNExqYzBNeklnTWpJdU9UUTJNeUF4T1M0d01EWTRJREl5TGpneU9URkRNVGt1TWpjMk5DQXlNaTQzTURZeElERTVMalEzTlRZZ01qSXVOVE01TVNBeE9TNDJNRFExSURJeUxqTXlPREZETVRrdU56TXpOQ0F5TWk0eE1UY3lJREU1TGpjNU56a2dNakV1T0RneU9DQXhPUzQzT1RjNUlESXhMall5TlZwTk16QXVOekl5TnlBeE1pNHdORFE1U0RNeExqRTBORFZXTVRRdU1qSTBOa2d6TUM0NU9EWXpRek13TGpNM01URWdNVFF1TWpJME5pQXlPUzQ0TURnMklERTBMak14TWpVZ01qa3VNams0T0NBeE5DNDBPRGd6UXpJNExqYzVORGtnTVRRdU5qWTBNU0F5T0M0ek5UZzBJREUwTGpreU5EZ2dNamN1T1RnNU15QXhOUzR5TnpBMVF6STNMall5TURFZ01UVXVOakV3TkNBeU55NHpNelU1SURFMkxqQXpNaklnTWpjdU1UTTJOeUF4Tmk0MU16WXhRekkyTGprME16UWdNVGN1TURNME1pQXlOaTQ0TkRZM0lERTNMall3T0RRZ01qWXVPRFEyTnlBeE9DNHlOVGc0VmpJd0xqUXpPRFZETWpZdU9EUTJOeUF5TUM0NE56YzVJREkyTGpnNE5EZ2dNakV1TWpZeE55QXlOaTQ1TmpBNUlESXhMalU0T1RoRE1qY3VNRFF6SURJeExqa3hNakVnTWpjdU1UWXdNaUF5TWk0eE9ERTJJREkzTGpNeE1qVWdNakl1TXprNE5FTXlOeTQwTnpBM0lESXlMall3T1RRZ01qY3VOall4TVNBeU1pNDNOekExSURJM0xqZzRNemdnTWpJdU9EZ3hPRU15T0M0eE1EWTBJREl5TGprNE56TWdNamd1TXpVNE5DQXlNeTR3TkNBeU9DNDJNemsySURJekxqQTBRekk0TGpnNU1UWWdNak11TURRZ01qa3VNVEl6SURJeUxqazRORFFnTWprdU16TTBJREl5TGpnM00wTXlPUzQxTkRRNUlESXlMamMyTVRjZ01qa3VOekkyTmlBeU1pNDJNRE0xSURJNUxqZzNPRGtnTWpJdU16azRORU16TUM0d016RXlJREl5TGpFNU16UWdNekF1TVRRNE5DQXlNUzQ1TlRZeElETXdMakl6TURVZ01qRXVOamcyTlVNek1DNHpNVEkxSURJeExqUXhNVEVnTXpBdU16VXpOU0F5TVM0eE1USXpJRE13TGpNMU16VWdNakF1TnpsRE16QXVNelV6TlNBeU1DNDBOVEF5SURNd0xqTXdPVFlnTWpBdU1UUXlOaUF6TUM0eU1qRTNJREU1TGpnMk56SkRNekF1TVRNNU5pQXhPUzQxT0RVNUlETXdMakF4T1RVZ01Ua3VNelExTnlBeU9TNDROakV6SURFNUxqRTBOalZETWprdU56QTVJREU0TGprME56TWdNamt1TlRJeE5TQXhPQzQzT1RRNUlESTVMakk1T0RnZ01UZ3VOamc1TlVNeU9TNHdOell5SURFNExqVTNPREVnTWpndU9ETXdNU0F4T0M0MU1qSTFJREk0TGpVMk1EVWdNVGd1TlRJeU5VTXlPQzR4TnpNNElERTRMalV5TWpVZ01qY3VPRE01T0NBeE9DNDJNVEEwSURJM0xqVTFPRFlnTVRndU56ZzJNVU15Tnk0eU56Y3pJREU0TGprMk1Ua2dNamN1TURZd05TQXhPUzR4T0RjMUlESTJMamt3T0RJZ01Ua3VORFl5T1VNeU5pNDNOVFU1SURFNUxqY3pPRE1nTWpZdU5qYzJPQ0F5TUM0d01UazFJREkyTGpZM01Ea2dNakF1TXpBMk5rd3lOUzQ1TkRFMElERTVMamN3TURKRE1qVXVPVFF4TkNBeE9TNHpNREU0SURJMkxqQXlNRFVnTVRndU9UQTVNaUF5Tmk0eE56ZzNJREU0TGpVeU1qVkRNall1TXpReU9DQXhPQzR4TWprNUlESTJMalUzTkRJZ01UY3VOemMxTkNBeU5pNDROek1nTVRjdU5EVTVRekkzTGpFM01Ua2dNVGN1TVRNMk55QXlOeTQxTXpneElERTJMamc0TVRnZ01qY3VPVGN4TnlBeE5pNDJPVFF6UXpJNExqUXhNVEVnTVRZdU5UQXhJREk0TGpreE1qRWdNVFl1TkRBME15QXlPUzQwTnpRMklERTJMalF3TkRORE16QXVNRFkyTkNBeE5pNDBNRFF6SURNd0xqVTROemtnTVRZdU5URTROaUF6TVM0d016a3hJREUyTGpjME56RkRNekV1TkRrd01pQXhOaTQ1TmprM0lETXhMamcyT0RJZ01UY3VNamd3TXlBek1pNHhOekk1SURFM0xqWTNPRGRETXpJdU5EZ3pOQ0F4T0M0d056Y3hJRE15TGpjeE5EZ2dNVGd1TlRReklETXlMamcyTnpJZ01Ua3VNRGMyTWtNek15NHdNalUwSURFNUxqWXdNelVnTXpNdU1UQTBOU0F5TUM0eE5qZzVJRE16TGpFd05EVWdNakF1TnpjeU5VTXpNeTR4TURRMUlESXhMak01TXpZZ016SXVPVGsyTVNBeU1TNDVOek0ySURNeUxqYzNPVE1nTWpJdU5URXlOME16TWk0MU5qZzBJREl6TGpBME5Ua2dNekl1TWpZNU5TQXlNeTQxTVRFM0lETXhMamc0TWpnZ01qTXVPVEV3TWtNek1TNDBPVFl4SURJMExqTXdPRFlnTXpFdU1ETXpNaUF5TkM0Mk1Ua3hJRE13TGpRNU5ERWdNalF1T0RReE9FTXlPUzQ1TmpBNUlESTFMakEyTkRVZ01qa3VNelkyTWlBeU5TNHhOelU0SURJNExqY3hJREkxTGpFM05UaERNamd1TURNd015QXlOUzR4TnpVNElESTNMalF3T1RJZ01qVXVNRFUxTnlBeU5pNDRORFkzSURJMExqZ3hOVFJETWpZdU1qa2dNalF1TlRjMU1pQXlOUzQ0TURNM0lESTBMakl6TWpRZ01qVXVNemczTnlBeU15NDNPRGN4UXpJMExqazNOelVnTWpNdU16TTFPU0F5TkM0Mk5UZ3lJREl5TGpjNU5qa2dNalF1TkRJNU55QXlNaTR4TmprNVF6STBMakl3TnlBeU1TNDFORE1nTWpRdU1EazFOeUF5TUM0NE16azRJREkwTGpBNU5UY2dNakF1TURZd05WWXhPUzR3TXpJeVF6STBMakE1TlRjZ01UY3VPVFkxT0NBeU5DNHlOVGs0SURFM0xqQXdORGtnTWpRdU5UZzNPU0F4Tmk0eE5EazBRekkwTGpreU1Ua2dNVFV1TWprek9TQXlOUzR6T0RRNElERTBMalUyTVRVZ01qVXVPVGMyTmlBeE15NDVOVEl4UXpJMkxqVTNORElnTVRNdU16TTJPU0F5Tnk0eU56Y3pJREV5TGpnMk5USWdNamd1TURnMU9TQXhNaTQxTXpjeFF6STRMamc1TkRVZ01USXVNakE1SURJNUxqYzNNelFnTVRJdU1EUTBPU0F6TUM0M01qSTNJREV5TGpBME5EbGFJaUJtYVd4c1BTSjNhR2wwWlNJdlBnbzhMM04yWno0S1wiO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBlczZtb2R1bGVfZGVmYXVsdCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVzNm1vZHVsZS5tanMubWFwIiwiaW1wb3J0IGVzNm1vZHVsZV9kZWZhdWx0IGZyb20gXCIuL2VzNm1vZHVsZS5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvRVM2TW9kdWxlLnRzeFxuZnVuY3Rpb24gRVM2TW9kdWxlcygpIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJpbWdcIiwge1xuXHRcdGFsdDogXCJlczYgbW9kdWxlc1wiLFxuXHRcdGhlaWdodDogXCIyMFwiLFxuXHRcdHNyYzogZXM2bW9kdWxlX2RlZmF1bHQsXG5cdFx0d2lkdGg6IFwiMjBcIlxuXHR9KTtcbn1cbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRVM2TW9kdWxlcyB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1FUzZNb2R1bGUyLm1qcy5tYXAiLCIvLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvSWNvbnMvRGV2c0ljb25zL25vZGVqcy5zdmdcbnZhciBub2RlanNfZGVmYXVsdCA9IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lJSE4wWVc1a1lXeHZibVU5SW01dklqOCtDanh6ZG1jZ2QybGtkR2c5SWpJMU5uQjRJaUJvWldsbmFIUTlJakk0T1hCNElpQjJhV1YzUW05NFBTSXdJREFnTWpVMklESTRPU0lnZG1WeWMybHZiajBpTVM0eElpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCd2NtVnpaWEoyWlVGemNHVmpkRkpoZEdsdlBTSjRUV2xrV1UxcFpDSStDaUFnSUNBOFp6NEtJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5NVEkzTGprNU9UazVPU3d5T0RndU5EWXpOemN4SUVNeE1qUXVNREkwT0RRMExESTRPQzQwTmpNM056RWdNVEl3TGpNeE5EWTVPU3d5T0RjdU5EQXpOekk0SURFeE5pNDROamsxTmpRc01qZzFMalUwT0RZMU5pQk1PREV1TmpJek1UZzROQ3d5TmpRdU5qRXlPRE00SUVNM05pNHpNakk1T0N3eU5qRXVOamszTnpJMElEYzRMamszTXpBNE5UUXNNall3TGpZek56WTRNaUE0TUM0MU5qTXhORFU0TERJMk1DNHhNRGMyTmpFZ1F6ZzNMamN4T0RReU5Ua3NNalUzTGpjeU1qVTNJRGc1TGpBME16UTNOelVzTWpVM0xqRTVNalUwTnlBNU5pNDBOak0zTmpnNExESTFNaTQ1TlRJek9ERWdRemszTGpJMU9EYzVOemtzTWpVeUxqUXlNak0yTVNBNU9DNHpNVGc0TkRBMUxESTFNaTQyT0Rjek56SWdPVGt1TVRFek9EY3hPQ3d5TlRNdU1qRTNNemt5SUV3eE1qWXVNVFEwT1RJM0xESTJPUzR6T0RNd01qUWdRekV5Tnk0eU1EUTVOeXd5TmprdU9URXpNRFExSURFeU9DNDFNekF3TWpFc01qWTVMamt4TXpBME5TQXhNamt1TXpJMU1EVXpMREkyT1M0ek9ETXdNalFnVERJek5TNHdOalF4T0RJc01qQTRMakUyTlRZek5DQkRNak0yTGpFeU5ESXlOU3d5TURjdU5qTTFOakV4SURJek5pNDJOVFF5TkRVc01qQTJMalUzTlRVM01TQXlNell1TmpVME1qUTFMREl3TlM0eU5UQTFNVGtnVERJek5pNDJOVFF5TkRVc09ETXVNRGd3TnpRMk55QkRNak0yTGpZMU5ESTBOU3c0TVM0M05UVTJPVEk1SURJek5pNHhNalF5TWpVc09EQXVOamsxTmpVeU5pQXlNelV1TURZME1UZ3lMRGd3TGpFMk5UWXpNalFnVERFeU9TNHpNalV3TlRNc01Ua3VNakV6TWpVd05pQkRNVEk0TGpJMk5UQXhMREU0TGpZNE16SXpNRFVnTVRJMkxqa3pPVGsxT1N3eE9DNDJPRE15TXpBMUlERXlOaTR4TkRRNU1qY3NNVGt1TWpFek1qVXdOaUJNTWpBdU5EQTFOemsxTkN3NE1DNHhOalUyTXpJMElFTXhPUzR6TkRVM05UVXhMRGd3TGpZNU5UWTFNallnTVRndU9ERTFOek0wT1N3NE1pNHdNakEzTURReElERTRMamd4TlRjek5Ea3NPRE11TURnd056UTJOeUJNTVRndU9ERTFOek0wT1N3eU1EVXVNalV3TlRFNUlFTXhPQzQ0TVRVM016UTVMREl3Tmk0ek1UQTFOaUF4T1M0ek5EVTNOVFV4TERJd055NDJNelUyTVRFZ01qQXVOREExTnprMU5Dd3lNRGd1TVRZMU5qTTBJRXcwT1M0eU9URTVNalEzTERJeU5DNDROakV5T0RZZ1F6WTBMamt5TnpVek5qUXNNak15TGpneE1UVTVOU0EzTkM0M016STVNVGsyTERJeU15NDFNell5TXpRZ056UXVOek15T1RFNU5pd3lNVFF1TWpZd09EY3hJRXczTkM0M016STVNVGsyTERrekxqWTRNVEUxT1NCRE56UXVOek15T1RFNU5pdzVNaTR3T1RFd09UZzFJRGMyTGpBMU56azNNVEVzT1RBdU5UQXhNRE0xT0NBM055NDVNVE13TkRJNExEa3dMalV3TVRBek5UZ2dURGt4TGpReU9EVTNNVFlzT1RBdU5UQXhNRE0xT0NCRE9UTXVNREU0TmpNME15dzVNQzQxTURFd016VTRJRGswTGpZd09EWTVORGdzT1RFdU9ESTJNRGczTXlBNU5DNDJNRGcyT1RRNExEa3pMalk0TVRFMU9TQk1PVFF1TmpBNE5qazBPQ3d5TVRRdU1qWXdPRGN4SUVNNU5DNDJNRGcyT1RRNExESXpOUzR4T1RZMk9Ea2dPRE11TWpFek1qVXhNaXd5TkRjdU16ZzNNVFkwSURZekxqTXpOelEzTXpjc01qUTNMak00TnpFMk5DQkROVGN1TWpReU1qTTJNaXd5TkRjdU16ZzNNVFkwSURVeUxqUTNNakExTURJc01qUTNMak00TnpFMk5DQXpPQzQ1TlRZMU1qRTBMREkwTUM0M05qRTVNRFlnVERFeExqRXpNRFF6TkRjc01qSTBMamcyTVRJNE5pQkROQzR5TkRBeE5qVTRNU3d5TWpBdU9EZzJNVEk1SURVdU5qZzBNelF4T0RsbExURTBMREl4TXk0ME5qVTROQ0ExTGpZNE5ETTBNVGc1WlMweE5Dd3lNRFV1TlRFMU5USTRJRXcxTGpZNE5ETTBNVGc1WlMweE5DdzRNeTR6TkRVM05UVTNJRU0xTGpZNE5ETTBNVGc1WlMweE5DdzNOUzR6T1RVME5EWTFJRFF1TWpRd01UWTFPREVzTmpjdU9UYzFNVFUxTWlBeE1TNHhNekEwTXpRM0xEWTBMakF3TURBd01EWWdUREV4Tmk0NE5qazFOalFzTWk0M09ESTJNRGMxTWlCRE1USXpMalE1TkRneU5Dd3RNQzQ1TWpjMU16VTROREVnTVRNeUxqVXdOVEUzTml3dE1DNDVNamMxTXpVNE5ERWdNVE01TGpFek1EUXpOaXd5TGpjNE1qWXdOelV5SUV3eU5EUXVPRFk1TlRZMUxEWTBMakF3TURBd01EWWdRekkxTVM0M05UazRNelFzTmpjdU9UYzFNVFUxTWlBeU5UWXNOelV1TXprMU5EUTJOU0F5TlRZc09ETXVNelExTnpVMU55Qk1NalUyTERJd05TNDFNVFUxTWpnZ1F6STFOaXd5TVRNdU5EWTFPRFFnTWpVeExqYzFPVGd6TkN3eU1qQXVPRGcyTVRJNUlESTBOQzQ0TmprMU5qVXNNakkwTGpnMk1USTROaUJNTVRNNUxqRXpNRFF6Tml3eU9EWXVNRGM0TmpjMklFTXhNelV1TmpnMU1qazVMREk0Tnk0Mk5qZzNNemtnTVRNeExqY3hNREUwTlN3eU9EZ3VORFl6TnpjeElERXlOeTQ1T1RrNU9Ua3NNamc0TGpRMk16YzNNU0JNTVRJM0xqazVPVGs1T1N3eU9EZ3VORFl6TnpjeElGb2dUVEUyTUM0MU9UWXlOelFzTWpBMExqUTFOVFE0T0NCRE1URTBMakl4T1RRMk1Td3lNRFF1TkRVMU5EZzRJREV3TkM0Mk56a3dPRGtzTVRnekxqSTFORFkxT1NBeE1EUXVOamM1TURnNUxERTJOUzR5TXpNNU5UVWdRekV3TkM0Mk56a3dPRGtzTVRZekxqWTBNemc1TXlBeE1EWXVNREEwTVRReExERTJNaTR3TlRNNE16SWdNVEEzTGpnMU9USXhNaXd4TmpJdU1EVXpPRE15SUV3eE1qRXVOak01TnpVeUxERTJNaTR3TlRNNE16SWdRekV5TXk0eU1qazRNVE1zTVRZeUxqQTFNemd6TWlBeE1qUXVOVFUwT0RZMExERTJNeTR4TVRNNE56SWdNVEkwTGpVMU5EZzJOQ3d4TmpRdU56QXpPVE0xSUVNeE1qWXVOamMwT1RRM0xERTNPQzQzTkRrME9EUWdNVE15TGpjM01ERTROeXd4T0RVdU5qTTVOelV6SURFMk1DNDROakV5T0RNc01UZzFMall6T1RjMU15QkRNVGd6TGpFeU1qRTFOQ3d4T0RVdU5qTTVOelV6SURFNU1pNDJOakkxTWpZc01UZ3dMall3TkRVMU5pQXhPVEl1TmpZeU5USTJMREUyT0M0Mk56a3dPU0JETVRreUxqWTJNalV5Tml3eE5qRXVOemc0T0RJeElERTVNQzR3TVRJME1qTXNNVFUyTGpjMU16WXlOQ0F4TlRVdU1qazJNRFkxTERFMU15NHpNRGcwT0RrZ1F6RXlOaTQwTURrNU16Z3NNVFV3TGpNNU16TTNOU0F4TURndU16ZzVNak0xTERFME5DNHdNek14TWpZZ01UQTRMak00T1RJek5Td3hNakF1T1RjM01qSTJJRU14TURndU16ZzVNak0xTERrNUxqVXhNVE00TnpVZ01USTJMalF3T1Rrek9DdzROaTQzT1RBNE9UQXhJREUxTmk0Mk1qRXhNVGtzT0RZdU56a3dPRGt3TVNCRE1Ua3dMalUwTWpRME15dzROaTQzT1RBNE9UQXhJREl3Tnk0eU16Z3dPVFVzT1RndU5EVXhNelEzTWlBeU1Ea3VNelU0TVRjNExERXlNeTQ0T1RJek5DQkRNakE1TGpNMU9ERTNPQ3d4TWpRdU5qZzNNemN4SURJd09TNHdPVE14Tmpjc01USTFMalE0TWpRd015QXlNRGd1TlRZek1UUTNMREV5Tmk0eU56YzBNelFnUXpJd09DNHdNek14TWpjc01USTJMamd3TnpRMU5DQXlNRGN1TWpNNE1EazFMREV5Tnk0ek16YzBOelFnTWpBMkxqUTBNekEyTkN3eE1qY3VNek0zTkRjMElFd3hPVEl1TmpZeU5USTJMREV5Tnk0ek16YzBOelFnUXpFNU1TNHpNemMwTnpVc01USTNMak16TnpRM05DQXhPVEF1TURFeU5ESXpMREV5Tmk0eU56YzBNelFnTVRnNUxqYzBOelF4TWl3eE1qUXVPVFV5TXpneUlFTXhPRFl1TlRZM01qZzVMREV4TUM0ek56WTRNVE1nTVRjNExqTTFNVGsyTml3eE1EVXVOakEyTmpJMUlERTFOaTQyTWpFeE1Ua3NNVEExTGpZd05qWXlOU0JETVRNeUxqSTBNREUyTlN3eE1EVXVOakEyTmpJMUlERXlPUzR6TWpVd05UTXNNVEUwTGpBNE5qazFOeUF4TWprdU16STFNRFV6TERFeU1DNDBORGN5TURVZ1F6RXlPUzR6TWpVd05UTXNNVEk0TGpFek1qVXdOaUF4TXpJdU56Y3dNVGczTERFek1DNDFNVGMySURFMk5TNDJNekUwTnpFc01UTTBMamMxTnpjMk5pQkRNVGs0TGpJeU56YzBOQ3d4TXpndU9UazNPVE14SURJeE15NDFPVGd6TkRRc01UUTFMakE1TXpFMk9TQXlNVE11TlRrNE16UTBMREUyTnk0NE9EUXdOVGdnUXpJeE15NHpNek16TXpNc01Ua3hMakl3TkRrM0lERTVOQzR5TlRJMU9Ea3NNakEwTGpRMU5UUTRPQ0F4TmpBdU5UazJNamMwTERJd05DNDBOVFUwT0RnZ1RERTJNQzQxT1RZeU56UXNNakEwTGpRMU5UUTRPQ0JhSWlCbWFXeHNQU0lqTlRNNVJUUXpJajQ4TDNCaGRHZytDaUFnSUNBOEwyYytDand2YzNablBnbz1cIjtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgbm9kZWpzX2RlZmF1bHQgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub2RlanMubWpzLm1hcCIsImltcG9ydCBub2RlanNfZGVmYXVsdCBmcm9tIFwiLi9ub2RlanMubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvSWNvbnMvRGV2c0ljb25zL05vZGVKUy50c3hcbmZ1bmN0aW9uIE5vZGVKUygpIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJpbWdcIiwge1xuXHRcdGFsdDogXCJub2RlanNcIixcblx0XHRoZWlnaHQ6IFwiMjBcIixcblx0XHRzcmM6IG5vZGVqc19kZWZhdWx0LFxuXHRcdHdpZHRoOiBcIjIwXCJcblx0fSk7XG59XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IE5vZGVKUyB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ob2RlSlMyLm1qcy5tYXAiLCIvLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvSWNvbnMvRGV2c0ljb25zL2dpdC5zdmdcbnZhciBnaXRfZGVmYXVsdCA9IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRHB6Y0dGalpUMGljSEpsYzJWeWRtVWlJSGRwWkhSb1BTSTVOeUlnYUdWcFoyaDBQU0k1TnlJK0NpQWdQSEJoZEdnZ1ptbHNiRDBpSTBZd05URXpNeUlnWkQwaVRUa3lMamN4SURRMExqUXdPQ0ExTWk0MU9URWdOQzR5T1RGakxUSXVNekV0TWk0ek1URXROaTR3TlRjdE1pNHpNVEV0T0M0ek5qa2dNR3d0T0M0ek15QTRMak16TWt3ME5pNDBOVGtnTWpNdU1UbGpNaTQwTlRZdExqZ3pJRFV1TWpjeUxTNHlOek1nTnk0eU1qa2dNUzQyT0RVZ01TNDVOamtnTVM0NU55QXlMalV5TVNBMExqZ3hJREV1TmpjZ055NHlOelZzTVRBdU1UZzJJREV3TGpFNE5XTXlMalEyTlMwdU9EVWdOUzR6TURjdExqTWdOeTR5TnpVZ01TNDJOekVnTWk0M05TQXlMamMxSURJdU56VWdOeTR5TURZZ01DQTVMamsxT0MweUxqYzFNaUF5TGpjMU1TMDNMakl3T0NBeUxqYzFNUzA1TGprMk1TQXdMVEl1TURZNExUSXVNRGN0TWk0MU9DMDFMakV4TFRFdU5UTXhMVGN1TmpVNGJDMDVMalV0T1M0ME9UbDJNalF1T1RrM1l5NDJOeTR6TXpJZ01TNHpNRE11TnpjMElERXVPRFl4SURFdU16TXlJREl1TnpVZ01pNDNOU0F5TGpjMUlEY3VNakEySURBZ09TNDVOVGt0TWk0M05TQXlMamMwT1MwM0xqSXdPU0F5TGpjME9TMDVMamsxTnlBd0xUSXVOelV0TWk0M05UUXRNaTQzTlMwM0xqSXhJREF0T1M0NU5Ua3VOamd0TGpZM09TQXhMalEyTnkweExqRTVNeUF5TGpNd055MHhMalV6TjNZdE1qVXVNak5qTFM0NE5DMHVNelEwTFRFdU5qSTFMUzQ0TlRNdE1pNHpNRGN0TVM0MU16Y3RNaTR3T0RNdE1pNHdPREl0TWk0MU9EUXROUzR4TkMweExqVXhOaTAzTGpZNU9Fd3pNUzQzT1RnZ01UWXVOekUxSURRdU1qZzRJRFEwTGpJeU1tTXRNaTR6TVRFZ01pNHpNVE10TWk0ek1URWdOaTR3TmlBd0lEZ3VNemN4YkRRd0xqRXlNU0EwTUM0eE1UaGpNaTR6TVNBeUxqTXhNU0EyTGpBMU5pQXlMak14TVNBNExqTTJPU0F3VERreUxqY3hJRFV5TGpjM09XTXlMak14TVMweUxqTXhNU0F5TGpNeE1TMDJMakEySURBdE9DNHpOekY2SWk4K0Nqd3ZjM1puUGc9PVwiO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBnaXRfZGVmYXVsdCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdpdC5tanMubWFwIiwiaW1wb3J0IGdpdF9kZWZhdWx0IGZyb20gXCIuL2dpdC5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9EZXZzSWNvbnMvR2l0LnRzeFxuZnVuY3Rpb24gR2l0KCkge1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImltZ1wiLCB7XG5cdFx0YWx0OiBcImdpdFwiLFxuXHRcdGhlaWdodDogXCIyMFwiLFxuXHRcdHNyYzogZ2l0X2RlZmF1bHQsXG5cdFx0d2lkdGg6IFwiMjBcIlxuXHR9KTtcbn1cbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgR2l0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUdpdDIubWpzLm1hcCIsIi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9NYW5hZ2Vycy9ucG0uc3ZnXG52YXIgbnBtX2RlZmF1bHQgPSBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjJaWEp6YVc5dVBTSXhMakVpSUdsa1BTSk1ZWGxsY2w4eElpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCNFBTSXdjSGdpSUhrOUlqQndlQ0lLQ1NCMmFXVjNRbTk0UFNJd0lEQWdNalUySURJMU5pSWdaVzVoWW14bExXSmhZMnRuY205MWJtUTlJbTVsZHlBd0lEQWdNalUySURJMU5pSWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4d2IyeDVaMjl1SUdacGJHdzlJaU5EUXpBd01EQWlJSEJ2YVc1MGN6MGlNak1zTmpVdU5pQXhNekFzTXk0eklESXpOeXcyTlM0MklESXpOeXd4T1RBdU1TQXhNekFzTWpVeUxqUWdNak1zTVRrd0xqRWdJaTgrQ2p4d2IyeDVaMjl1SUdacGJHdzlJaU5HUmtaR1JrWWlJSEJ2YVc1MGN6MGlNVE16TERFeU55NDRJREl6TWk0MUxEY3dMalVnTWpNMkxqVXNNVGcySURFek15d3lORGd1TlNBaUx6NEtQR2MrQ2drOGNHRjBhQ0JtYVd4c1BTSWpRME13TURBd0lpQmtQU0pOTWpNMExEWTNiQzB3TGpNc01USXlMalJzTFRFd015NDRMRFl3TGpKc0xUQXVOUzB4TWpBdU0wd3lNelFzTmpkNklFMHhORFl1Tnl3eE16a3VNMnd3TGpNc09EQXVOR3d6TkM0MUxUSXdMakZzTFRBdU1TMDJNQzQyYkRFM0xqUXRNVEF1TXdvSkNXd3dMRFl3TGpoc01UY3VOQzB4TUM0eWJEQXVNUzA0TVM0MFRERTBOaTQzTERFek9TNHplaUl2UGdvOEwyYytDanh3WVhSb0lHWnBiR3c5SWlNNU1UQTFNRFVpSUdROUlrMHhNell1T0N3MExqSmpMVFF1T0MweUxqY3RNVEl1TlMweUxqY3RNVGN1TXl3d1RESTBMamNzTlRndU4yTXROQzQ0TERJdU55MDRMallzT1M0MUxUZ3VOaXd4TkM0NWRqRXdPV013TERVdU5Td3pMamtzTVRJdU1pdzRMallzTVRRdU9Rb0piRGswTGpnc05UUXVOV00wTGpnc01pNDNMREV5TGpVc01pNDNMREUzTGpNc01HdzVOQzQ0TFRVMExqVmpOQzQ0TFRJdU55dzRMall0T1M0MUxEZ3VOaTB4TkM0NWRpMHhNRGxqTUMwMUxqVXRNeTQ1TFRFeUxqSXRPQzQyTFRFMExqbE1NVE0yTGpnc05DNHllaUJOTWpJd0xqa3NOakV1TWdvSll6UXVPQ3d5TGpjc05DNDRMRGN1TWl3d0xEa3VPV3d0T0RNc05EY3VOMk10TkM0NExESXVOeTB4TWk0MUxESXVOeTB4Tnk0ekxEQk1Nell1TkN3M01DNDBZeTAwTGpndE1pNDNMVFF1T0MwM0xqSXNNQzA1TGpsc09ETXRORGN1TjJNMExqZ3RNaTQzTERFeUxqVXRNaTQzTERFM0xqTXNNQW9KVERJeU1DNDVMRFl4TGpKNklFMHlNeTQxTERneExqVmpNQzAxTGpVc015NDVMVGN1Tnl3NExqWXROV3c0TkM0NUxEUTRMamhqTkM0NExESXVOeXc0TGpZc09TNDFMRGd1Tml3eE5DNDVWakl6TjJNd0xEVXVOUzB6TGprc055NDNMVGd1Tml3MWJDMDROQzQ1TFRRNExqZ0tDV010TkM0NExUSXVOeTA0TGpZdE9TNDFMVGd1TmkweE5DNDVWamd4TGpWNklFMHhOREV1T0N3eU5EQXVOV010TkM0NExESXVOeTA0TGpZc01DNDFMVGd1TmkwMWRpMDVOUzR6WXpBdE5TNDFMRE11T1MweE1pNHlMRGd1TmkweE5DNDVUREl5TkM0eUxEYzRDZ2xqTkM0NExUSXVOeXc0TGpZdE1DNDFMRGd1Tml3MWRqazFMak5qTUN3MUxqVXRNeTQ1TERFeUxqSXRPQzQyTERFMExqbE1NVFF4TGpnc01qUXdMalY2SWk4K0Nqd3ZjM1puUGdvPVwiO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBucG1fZGVmYXVsdCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5wbS5tanMubWFwIiwiaW1wb3J0IG5wbV9kZWZhdWx0IGZyb20gXCIuL25wbS5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9NYW5hZ2Vycy9OcG0udHN4XG5mdW5jdGlvbiBOcG0oKSB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiaW1nXCIsIHtcblx0XHRhbHQ6IFwibnBtIHBhY2thZ2UgbWFuYWdlclwiLFxuXHRcdGhlaWdodDogXCIyMFwiLFxuXHRcdHNyYzogbnBtX2RlZmF1bHQsXG5cdFx0d2lkdGg6IFwiMjBcIlxuXHR9KTtcbn1cbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgTnBtIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5wbTIubWpzLm1hcCIsIi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9NYW5hZ2Vycy9wbnBtLnN2Z1xudmFyIHBucG1fZGVmYXVsdCA9IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIQnlaWE5sY25abFFYTndaV04wVW1GMGFXODlJbmhOYVdSWlRXbGtJRzFsWlhRaUlIWnBaWGRDYjNnOUlqWTJMakE1TVRVM09EQTVORGMwTVRReUlETXpMalVnTVRnMExqVWdNVGcwTGpRNU9UazVPVGs1T1RrNU9UazNJaUIzYVdSMGFEMGlNVGd3SWlCb1pXbG5hSFE5SWpFNE1DSStQR1JsWm5NK1BIQmhkR2dnWkQwaVRUWTNMalU1SURNMVRESTBOeTQxT1NBek5Vd3lORGN1TlRrZ01qRTFURFkzTGpVNUlESXhOVXcyTnk0MU9TQXpOVm9pSUdsa1BTSmlNa3BhV21OQk0yWlVJajQ4TDNCaGRHZytQSEJoZEdnZ1pEMGlUVEl6Tnk0MklEazFUREU0Tnk0MklEazFUREU0Tnk0MklEUTFUREl6Tnk0MklEUTFUREl6Tnk0MklEazFXaUlnYVdROUltSnFNSFJpTUZrNGNTSStQQzl3WVhSb1BqeHdZWFJvSUdROUlrMHhPREl1TlRrZ09UVk1NVE15TGpVNUlEazFUREV6TWk0MU9TQTBOVXd4T0RJdU5Ua2dORFZNTVRneUxqVTVJRGsxV2lJZ2FXUTlJbVJyUkZOVWVsQnFNeUkrUEM5d1lYUm9Qanh3WVhSb0lHUTlJazB4TWpjdU5Ua2dPVFZNTnpjdU5Ua2dPVFZNTnpjdU5Ua2dORFZNTVRJM0xqVTVJRFExVERFeU55NDFPU0E1TlZvaUlHbGtQU0poTkhaT1pHTk9USEJHSWo0OEwzQmhkR2crUEhCaGRHZ2daRDBpVFRJek55NDJJREUxTUV3eE9EY3VOaUF4TlRCTU1UZzNMallnTVRBd1RESXpOeTQySURFd01Fd3lNemN1TmlBeE5UQmFJaUJwWkQwaWFESjBORnBxTVdwVFZTSStQQzl3WVhSb1BqeHdZWFJvSUdROUlrMHhPREl1TlRrZ01UVXdUREV6TWk0MU9TQXhOVEJNTVRNeUxqVTVJREV3TUV3eE9ESXVOVGtnTVRBd1RERTRNaTQxT1NBeE5UQmFJaUJwWkQwaVlqUjBOWEJ1WjNkMlZDSStQQzl3WVhSb1BqeHdZWFJvSUdROUlrMHhPREl1TlRrZ01qQTFUREV6TWk0MU9TQXlNRFZNTVRNeUxqVTVJREUxTlV3eE9ESXVOVGtnTVRVMVRERTRNaTQxT1NBeU1EVmFJaUJwWkQwaVlqbHpNV2RrTlcweUlqNDhMM0JoZEdnK1BIQmhkR2dnWkQwaVRUSXpOeTQySURJd05Vd3hPRGN1TmlBeU1EVk1NVGczTGpZZ01UVTFUREl6Tnk0MklERTFOVXd5TXpjdU5pQXlNRFZhSWlCcFpEMGlZMjEwT1ZkTWRubzNJajQ4TDNCaGRHZytQSEJoZEdnZ1pEMGlUVEV5Tnk0MU9TQXlNRFZNTnpjdU5Ua2dNakExVERjM0xqVTVJREUxTlV3eE1qY3VOVGtnTVRVMVRERXlOeTQxT1NBeU1EVmFJaUJwWkQwaVlrcFZUbkZuUmxObklqNDhMM0JoZEdnK1BDOWtaV1p6UGp4blBqeG5QangxYzJVZ2VHeHBibXM2YUhKbFpqMGlJMkl5U2xwYVkwRXpabFFpSUc5d1lXTnBkSGs5SWpFaUlHWnBiR3c5SWlObVptWm1abVlpSUdacGJHd3RiM0JoWTJsMGVUMGlNU0krUEM5MWMyVStQQzluUGp4blBqeDFjMlVnZUd4cGJtczZhSEpsWmowaUkySnFNSFJpTUZrNGNTSWdiM0JoWTJsMGVUMGlNU0lnWm1sc2JEMGlJMlk1WVdRd01DSWdabWxzYkMxdmNHRmphWFI1UFNJeElqNDhMM1Z6WlQ0OEwyYytQR2MrUEhWelpTQjRiR2x1YXpwb2NtVm1QU0lqWkd0RVUxUjZVR296SWlCdmNHRmphWFI1UFNJeElpQm1hV3hzUFNJalpqbGhaREF3SWlCbWFXeHNMVzl3WVdOcGRIazlJakVpUGp3dmRYTmxQand2Wno0OFp6NDhkWE5sSUhoc2FXNXJPbWh5WldZOUlpTmhOSFpPWkdOT1RIQkdJaUJ2Y0dGamFYUjVQU0l4SWlCbWFXeHNQU0lqWmpsaFpEQXdJaUJtYVd4c0xXOXdZV05wZEhrOUlqRWlQand2ZFhObFBqd3ZaejQ4Wno0OGRYTmxJSGhzYVc1ck9taHlaV1k5SWlOb01uUTBXbW94YWxOVklpQnZjR0ZqYVhSNVBTSXhJaUJtYVd4c1BTSWpaamxoWkRBd0lpQm1hV3hzTFc5d1lXTnBkSGs5SWpFaVBqd3ZkWE5sUGp3dlp6NDhaejQ4ZFhObElIaHNhVzVyT21oeVpXWTlJaU5pTkhRMWNHNW5kM1pVSWlCdmNHRmphWFI1UFNJeElpQm1hV3hzUFNJak5HVTBaVFJsSWlCbWFXeHNMVzl3WVdOcGRIazlJakVpUGp3dmRYTmxQand2Wno0OFp6NDhkWE5sSUhoc2FXNXJPbWh5WldZOUlpTmlPWE14WjJRMWJUSWlJRzl3WVdOcGRIazlJakVpSUdacGJHdzlJaU0wWlRSbE5HVWlJR1pwYkd3dGIzQmhZMmwwZVQwaU1TSStQQzkxYzJVK1BDOW5QanhuUGp4MWMyVWdlR3hwYm1zNmFISmxaajBpSTJOdGREbFhUSFo2TnlJZ2IzQmhZMmwwZVQwaU1TSWdabWxzYkQwaUl6UmxOR1UwWlNJZ1ptbHNiQzF2Y0dGamFYUjVQU0l4SWo0OEwzVnpaVDQ4TDJjK1BHYytQSFZ6WlNCNGJHbHVhenBvY21WbVBTSWpZa3BWVG5GblJsTm5JaUJ2Y0dGamFYUjVQU0l4SWlCbWFXeHNQU0lqTkdVMFpUUmxJaUJtYVd4c0xXOXdZV05wZEhrOUlqRWlQand2ZFhObFBqd3ZaejQ4TDJjK1BDOXpkbWMrXCI7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IHBucG1fZGVmYXVsdCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBucG0ubWpzLm1hcCIsImltcG9ydCBwbnBtX2RlZmF1bHQgZnJvbSBcIi4vcG5wbS5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9NYW5hZ2Vycy9QbnBtLnRzeFxuZnVuY3Rpb24gUG5wbSgpIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJpbWdcIiwge1xuXHRcdGFsdDogXCJwbnBtIHBhY2thZ2UgbWFuYWdlclwiLFxuXHRcdGhlaWdodDogXCIyMFwiLFxuXHRcdHNyYzogcG5wbV9kZWZhdWx0LFxuXHRcdHdpZHRoOiBcIjIwXCJcblx0fSk7XG59XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFBucG0gfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG5wbTIubWpzLm1hcCIsIi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JY29ucy9NYW5hZ2Vycy95YXJuLnN2Z1xudmFyIHlhcm5fZGVmYXVsdCA9IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCcFpEMGlUR0Y1WlhKZk1TSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjJhV1YzUW05NFBTSXdJREFnTlRFNElEVXhPQ0krUEhOMGVXeGxQaTV6ZERCN1ptbHNiRG9qTW1NNFpXSmlmUzV6ZERGN1ptbHNiRG9qWm1abWZUd3ZjM1I1YkdVK1BIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEkxT1NBd1l6RTBNeUF3SURJMU9TQXhNVFlnTWpVNUlESTFPVk0wTURJZ05URTRJREkxT1NBMU1UZ2dNQ0EwTURJZ01DQXlOVGtnTVRFMklEQWdNalU1SURCNklpOCtQSEJoZEdnZ1kyeGhjM005SW5OME1TSWdaRDBpVFRRek5TNHlJRE16Tnk0MVl5MHhMamd0TVRRdU1pMHhNeTQ0TFRJMExUSTVMakl0TWpNdU9DMHlNeUF1TXkwME1pNHpJREV5TGpJdE5UVXVNU0F5TUM0eExUVWdNeTR4TFRrdU15QTFMalF0TVRNZ055NHhMamd0TVRFdU5pNHhMVEkyTGpndE5TNDVMVFF6TGpVdE55NHpMVEl3TFRFM0xqRXRNekl1TXkweU5DNHhMVE01TGpRZ09DNHhMVEV4TGpnZ01Ua3VNaTB5T1NBeU5DNDBMVFUxTGpZZ05DNDFMVEl5TGpjZ015NHhMVFU0TFRjdU1pMDNOeTQ0TFRJdU1TMDBMVFV1TmkwMkxqa3RNVEF0T0M0eExURXVPQzB1TlMwMUxqSXRNUzQxTFRFeExqa3VORU15T1RNdU1TQTVOaUF5T0RrdU5pQTVNeTQ0SURJNE5pNDVJRGt5WXkwMUxqWXRNeTQyTFRFeUxqSXROQzQwTFRFNExqUXRNaTR4TFRndU15QXpMVEUxTGpRZ01URXRNakl1TVNBeU5TNHlMVEVnTWk0eExURXVPU0EwTGpFdE1pNDNJRFl1TVMweE1pNDNMamt0TXpJdU55QTFMalV0TkRrdU5pQXlNeTQ0TFRJdU1TQXlMak10Tmk0eUlEUXRNVEF1TlNBMUxqWm9MakZqTFRndU9DQXpMakV0TVRJdU9DQXhNQzR6TFRFM0xqY2dNak11TXkwMkxqZ2dNVGd1TWk0eUlETTJMakVnTnk0eElEUTNMamN0T1M0MElEZ3VOQzB5TVM0NUlESXhMamd0TWpndU5TQXpOeTQxTFRndU1pQXhPUzQwTFRrdU1TQXpPQzQwTFRndU9DQTBPQzQzTFRjZ055NDBMVEUzTGpnZ01qRXVNeTB4T1NBek5pNDVMVEV1TmlBeU1TNDRJRFl1TXlBek5pNDJJRGt1T0NBME1pQXhJREV1TmlBeUxqRWdNaTQ1SURNdU15QTBMakl0TGpRZ01pNDNMUzQxSURVdU5pNHhJRGd1TmlBeExqTWdOeUExTGpjZ01USXVOeUF4TWk0MElERTJMak1nTVRNdU1pQTNJRE14TGpZZ01UQWdORFV1T0NBeUxqa2dOUzR4SURVdU5DQXhOQzQwSURFd0xqWWdNekV1TXlBeE1DNDJhREZqTkM0eklEQWdOVGd1T1MweUxqa2dOelF1T0MwMkxqZ2dOeTR4TFRFdU55QXhNaTAwTGpjZ01UVXVNaTAzTGpRZ01UQXVNaTB6TGpJZ016Z3VOQzB4TWk0NElEWTFMVE13SURFNExqZ3RNVEl1TWlBeU5TNHpMVEUwTGpnZ016a3VNeTB4T0M0eUlERXpMall0TXk0eklESXlMakV0TVRVdU55QXlNQzQwTFRJNUxqUjZiUzB5TXk0NElERTBMamRqTFRFMklETXVPQzB5TkM0eElEY3VNeTAwTXk0NUlESXdMakl0TXpBdU9TQXlNQzAyTkM0M0lESTVMak10TmpRdU55QXlPUzR6Y3kweUxqZ2dOQzR5TFRFd0xqa2dOaTR4WXkweE5DQXpMalF0TmpZdU55QTJMak10TnpFdU5TQTJMalF0TVRJdU9TNHhMVEl3TGpndE15NHpMVEl6TFRndU5pMDJMamN0TVRZZ09TNDJMVEl6SURrdU5pMHlNM010TXk0MkxUSXVNaTAxTGpjdE5DNHlZeTB4TGprdE1TNDVMVE11T1MwMUxqY3ROQzQxTFRRdU15MHlMalVnTmk0eExUTXVPQ0F5TVMweE1DNDFJREkzTGpjdE9TNHlJRGt1TXkweU5pNDJJRFl1TWkwek5pNDVMamd0TVRFdU15MDJJQzQ0TFRJd0xqRXVPQzB5TUM0eGN5MDJMakVnTXk0MkxURXhMVE11T0dNdE5DNDBMVFl1T0MwNExqVXRNVGd1TkMwM0xqUXRNekl1TnlBeExqSXRNVFl1TXlBeE9TNDBMVE15TGpFZ01Ua3VOQzB6TWk0eGN5MHpMakl0TWpRdU1TQTNMak10TkRndU9HTTVMalV0TWpJdU5TQXpOUzR4TFRRd0xqWWdNelV1TVMwME1DNDJjeTB5TVM0MUxUSXpMamd0TVRNdU5TMDBOUzR5WXpVdU1pMHhOQ0EzTGpNdE1UTXVPU0E1TFRFMExqVWdOaTB5TGpNZ01URXVPQzAwTGpnZ01UWXVNUzA1TGpVZ01qRXVOUzB5TXk0eUlEUTRMamt0TVRndU9DQTBPQzQ1TFRFNExqaHpNVE10TXprdU5TQXlOUzB6TVM0NFl6TXVOeUF5TGpRZ01UY2dNeklnTVRjZ016SnpNVFF1TWkwNExqTWdNVFV1T0MwMUxqSmpPQzQySURFMkxqY2dPUzQySURRNExqWWdOUzQ0SURZNExUWXVOQ0F6TWkweU1pNDBJRFE1TGpJdE1qZ3VPQ0EyTUMweExqVWdNaTQxSURFM0xqSWdNVEF1TkNBeU9TQTBNeTR4SURFd0xqa2dNamt1T1NBeExqSWdOVFVnTWk0NUlEVTNMamd1TXk0MUxqUXVOeTQwTGpkek1USXVOU0F4SURNM0xqWXRNVFF1TldNeE15NDBMVGd1TXlBeU9TNHpMVEUzTGpZZ05EY3VOQzB4Tnk0NElERTNMalV0TGpNZ01UZ3VOQ0F5TUM0eUlEVXVNaUF5TXk0MGVpSXZQand2YzNablBnPT1cIjtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgeWFybl9kZWZhdWx0IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9eWFybi5tanMubWFwIiwiaW1wb3J0IHlhcm5fZGVmYXVsdCBmcm9tIFwiLi95YXJuLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0ljb25zL01hbmFnZXJzL1lhcm4udHN4XG5mdW5jdGlvbiBZYXJuKCkge1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImltZ1wiLCB7XG5cdFx0YWx0OiBcIm5wbSBwYWNrYWdlIG1hbmFnZXJcIixcblx0XHRoZWlnaHQ6IFwiMjBcIixcblx0XHRzcmM6IHlhcm5fZGVmYXVsdCxcblx0XHR3aWR0aDogXCIyMFwiXG5cdH0pO1xufVxuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBZYXJuIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVlhcm4yLm1qcy5tYXAiLCJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gXCJAbXVpL21hdGVyaWFsL1R5cG9ncmFwaHlcIjtcbmltcG9ydCBMaXN0SXRlbSBmcm9tIFwiQG11aS9tYXRlcmlhbC9MaXN0SXRlbVwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0VuZ2luZXMvc3R5bGVzLnRzXG52YXIgU3R5bGVkVGV4dCA9IHN0eWxlZChUeXBvZ3JhcGh5KSgocHJvcHMpID0+ICh7XG5cdGZvbnRXZWlnaHQ6IHByb3BzLnRoZW1lLmZvbnRXZWlnaHQuYm9sZCxcblx0dGV4dFRyYW5zZm9ybTogXCJjYXBpdGFsaXplXCJcbn0pKTtcbnZhciBFbmdpbmVMaXN0SXRlbSA9IHN0eWxlZChMaXN0SXRlbSkoeyBwYWRkaW5nOiAwIH0pO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBFbmdpbmVMaXN0SXRlbSwgU3R5bGVkVGV4dCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMubWpzLm1hcCIsImltcG9ydCB7IE5vZGVKUyB9IGZyb20gXCIuLi9JY29ucy9EZXZzSWNvbnMvTm9kZUpTMi5tanNcIjtcbmltcG9ydCB7IE5wbSB9IGZyb20gXCIuLi9JY29ucy9NYW5hZ2Vycy9OcG0yLm1qc1wiO1xuaW1wb3J0IHsgUG5wbSB9IGZyb20gXCIuLi9JY29ucy9NYW5hZ2Vycy9QbnBtMi5tanNcIjtcbmltcG9ydCB7IFlhcm4gfSBmcm9tIFwiLi4vSWNvbnMvTWFuYWdlcnMvWWFybjIubWpzXCI7XG5pbXBvcnQgXCIuLi9JY29ucy9pbmRleC5tanNcIjtcbmltcG9ydCB7IEVuZ2luZUxpc3RJdGVtLCBTdHlsZWRUZXh0IH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IExpc3QgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdFwiO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgQXZhdGFyIGZyb20gXCJAbXVpL21hdGVyaWFsL0F2YXRhclwiO1xuaW1wb3J0IEdyaWQgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvR3JpZFwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0VuZ2luZXMvRW5naW5lcy50c3hcbi8qKlxuKlxuKlxuKiBAY2F0ZWdvcnkgQ29tcG9uZW50XG4qL1xudmFyIEVuZ2luZUl0ZW0gPSAoeyB0aXRsZSwgZWxlbWVudCwgZW5naW5lVGV4dCB9KSA9PiAvKiBAX19QVVJFX18gKi8ganN4KEdyaWQsIHtcblx0c2l6ZTogeyB4czogNiB9LFxuXHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChMaXN0LCB7XG5cdFx0c3ViaGVhZGVyOiAvKiBAX19QVVJFX18gKi8ganN4KFN0eWxlZFRleHQsIHtcblx0XHRcdHZhcmlhbnQ6IFwic3VidGl0bGUxXCIsXG5cdFx0XHRjaGlsZHJlbjogdGl0bGVcblx0XHR9KSxcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoRW5naW5lTGlzdEl0ZW0sIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KEF2YXRhciwge1xuXHRcdFx0c3g6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG5cdFx0XHRcdG1hcmdpbkxlZnQ6IDAsXG5cdFx0XHRcdHBhZGRpbmc6IDBcblx0XHRcdH0sXG5cdFx0XHRjaGlsZHJlbjogZWxlbWVudFxuXHRcdH0pLCAvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHRcdHN4OiB7XG5cdFx0XHRcdG1hcmdpbjogMCxcblx0XHRcdFx0cGFkZGluZzogXCIwIDAgMCAxMHB4XCJcblx0XHRcdH0sXG5cdFx0XHR2YXJpYW50OiBcInN1YnRpdGxlMlwiLFxuXHRcdFx0Y2hpbGRyZW46IGVuZ2luZVRleHRcblx0XHR9KV0gfSlcblx0fSlcbn0pO1xuLyoqXG4qXG4qXG4qIEBjYXRlZ29yeSBDb21wb25lbnRcbiovXG52YXIgRW5naW5lID0gKHsgcGFja2FnZU1ldGEgfSkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdGNvbnN0IGVuZ2luZXMgPSBwYWNrYWdlTWV0YT8ubGF0ZXN0Py5lbmdpbmVzO1xuXHRpZiAoIWVuZ2luZXMpIHJldHVybiBudWxsO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoR3JpZCwge1xuXHRcdGNvbnRhaW5lcjogdHJ1ZSxcblx0XHRjaGlsZHJlbjogW1xuXHRcdFx0ZW5naW5lcy5ub2RlID8gLyogQF9fUFVSRV9fICovIGpzeChFbmdpbmVJdGVtLCB7XG5cdFx0XHRcdGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3goTm9kZUpTLCB7fSksXG5cdFx0XHRcdGVuZ2luZVRleHQ6IGVuZ2luZXMubm9kZSxcblx0XHRcdFx0dGl0bGU6IHQoXCJzaWRlYmFyLmVuZ2luZXMubm9kZS1qc1wiKVxuXHRcdFx0fSkgOiBudWxsLFxuXHRcdFx0ZW5naW5lcy5ucG0gPyAvKiBAX19QVVJFX18gKi8ganN4KEVuZ2luZUl0ZW0sIHtcblx0XHRcdFx0ZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeChOcG0sIHt9KSxcblx0XHRcdFx0ZW5naW5lVGV4dDogZW5naW5lcy5ucG0sXG5cdFx0XHRcdHRpdGxlOiB0KFwic2lkZWJhci5lbmdpbmVzLm5wbS12ZXJzaW9uXCIpXG5cdFx0XHR9KSA6IG51bGwsXG5cdFx0XHRlbmdpbmVzLnlhcm4gPyAvKiBAX19QVVJFX18gKi8ganN4KEVuZ2luZUl0ZW0sIHtcblx0XHRcdFx0ZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeChZYXJuLCB7fSksXG5cdFx0XHRcdGVuZ2luZVRleHQ6IGVuZ2luZXMueWFybixcblx0XHRcdFx0dGl0bGU6IHQoXCJzaWRlYmFyLmVuZ2luZXMueWFybi12ZXJzaW9uXCIpXG5cdFx0XHR9KSA6IG51bGwsXG5cdFx0XHRlbmdpbmVzLnBucG0gPyAvKiBAX19QVVJFX18gKi8ganN4KEVuZ2luZUl0ZW0sIHtcblx0XHRcdFx0ZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeChQbnBtLCB7fSksXG5cdFx0XHRcdGVuZ2luZVRleHQ6IGVuZ2luZXMucG5wbSxcblx0XHRcdFx0dGl0bGU6IHQoXCJzaWRlYmFyLmVuZ2luZXMucG5wbS12ZXJzaW9uXCIpXG5cdFx0XHR9KSA6IG51bGxcblx0XHRdXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRW5naW5lIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW5naW5lcy5tanMubWFwIiwiaW1wb3J0IHsgaXNVUkwgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXJsLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vdXRpbHMvaW5kZXgubWpzXCI7XG5pbXBvcnQgTGlua0V4dGVybmFsIGZyb20gXCIuLi9MaW5rRXh0ZXJuYWwvTGlua0V4dGVybmFsLm1qc1wiO1xuaW1wb3J0IFwiLi4vTGlua0V4dGVybmFsL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBUcmFucyB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgRmF2b3JpdGUgZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvRmF2b3JpdGVcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQnV0dG9uXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvRnVuZEJ1dHRvbi9GdW5kQnV0dG9uLnRzeFxudmFyIFN0eWxlZExpbmsgPSBzdHlsZWQoTGlua0V4dGVybmFsKSgoeyB0aGVtZSB9KSA9PiAoe1xuXHRtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMiksXG5cdG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZygyKSxcblx0dGV4dERlY29yYXRpb246IFwibm9uZVwiLFxuXHRkaXNwbGF5OiBcImJsb2NrXCJcbn0pKTtcbnZhciBTdHlsZWRGYXZvcml0ZUljb24gPSBzdHlsZWQoRmF2b3JpdGUpKCh7IHRoZW1lIH0pID0+ICh7IGNvbG9yOiB0aGVtZS5wYWxldHRlLm9yYW5nZSB9KSk7XG52YXIgU3R5bGVkRnVuZFN0cm9uZyA9IHN0eWxlZChcInN0cm9uZ1wiKSh7IG1hcmdpblJpZ2h0OiAzIH0pO1xudmFyIEZ1bmRCdXR0b24gPSAoeyBwYWNrYWdlTWV0YSB9KSA9PiB7XG5cdGNvbnN0IGZ1bmRpbmdVcmwgPSBwYWNrYWdlTWV0YT8ubGF0ZXN0Py5mdW5kaW5nPy51cmw7XG5cdGlmICghaXNVUkwoZnVuZGluZ1VybCkpIHJldHVybiBudWxsO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRMaW5rLCB7XG5cdFx0dG86IGZ1bmRpbmdVcmwsXG5cdFx0dmFyaWFudDogXCJidXR0b25cIixcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChCdXR0b24sIHtcblx0XHRcdGNvbG9yOiBcInByaW1hcnlcIixcblx0XHRcdGZ1bGxXaWR0aDogdHJ1ZSxcblx0XHRcdHN0YXJ0SWNvbjogLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRGYXZvcml0ZUljb24sIHt9KSxcblx0XHRcdHZhcmlhbnQ6IFwib3V0bGluZWRcIixcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFRyYW5zLCB7XG5cdFx0XHRcdGNvbXBvbmVudHM6IFsvKiBAX19QVVJFX18gKi8ganN4KFN0eWxlZEZ1bmRTdHJvbmcsIHt9LCBcImZ1bmRcIildLFxuXHRcdFx0XHRpMThuS2V5OiBcImJ1dHRvbi5mdW5kLXRoaXMtcGFja2FnZVwiXG5cdFx0XHR9KVxuXHRcdH0pXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRnVuZEJ1dHRvbiBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZ1bmRCdXR0b24ubWpzLm1hcCIsImltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gXCJAbXVpL21hdGVyaWFsL1R5cG9ncmFwaHlcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9IZWFkaW5nL0hlYWRpbmcudHN4XG52YXIgSGVhZGluZyA9IGZ1bmN0aW9uIEhlYWRpbmcoeyByZWYsIHZhcmlhbnQgPSBcImg2XCIsIC4uLnByb3BzIH0pIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVHlwb2dyYXBoeSwge1xuXHRcdC4uLnByb3BzLFxuXHRcdHJlZixcblx0XHR2YXJpYW50XG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgSGVhZGluZyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUhlYWRpbmcubWpzLm1hcCIsImltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci5tanNcIjtcbmltcG9ydCB7IHVzZVNldHRpbmdzIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9QZXJzaXN0ZW5jZVNldHRpbmdQcm92aWRlci9QZXJzaXN0ZW5jZVNldHRpbmdQcm92aWRlci5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3Byb3ZpZGVycy9QZXJzaXN0ZW5jZVNldHRpbmdQcm92aWRlci9pbmRleC5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3Byb3ZpZGVycy9pbmRleC5tanNcIjtcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gXCJAbXVpL21hdGVyaWFsL0ljb25CdXR0b25cIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZyYWdtZW50IGFzIEZyYWdtZW50JDEsIGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IENoZWNrIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0NoZWNrXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvU2V0dGluZ3NcIjtcbmltcG9ydCBMaXN0SXRlbUljb24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdEl0ZW1JY29uXCI7XG5pbXBvcnQgTWVudSBmcm9tIFwiQG11aS9tYXRlcmlhbC9NZW51XCI7XG5pbXBvcnQgTWF0ZXJpYWxVSU1lbnVJdGVtIGZyb20gXCJAbXVpL21hdGVyaWFsL01lbnVJdGVtXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvU2V0dGluZ3NNZW51L1NldHRpbmdzTWVudS50c3hcbnZhciBUeXBlZE1lbnUgPSBNZW51O1xudmFyIFNldHRpbmdzTWVudSA9ICh7IHBhY2thZ2VOYW1lIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRjb25zdCB7IGxvY2FsU2V0dGluZ3MsIHVwZGF0ZVNldHRpbmdzIH0gPSB1c2VTZXR0aW5ncygpO1xuXHRjb25zdCB7IGNvbmZpZ09wdGlvbnMgfSA9IHVzZUNvbmZpZygpO1xuXHRjb25zdCBbYW5jaG9yRWwsIHNldEFuY2hvckVsXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuXHRjb25zdCBvcGVuID0gQm9vbGVhbihhbmNob3JFbCk7XG5cdGNvbnN0IGhhbmRsZU9wZW5NZW51ID0gKGV2ZW50KSA9PiB7XG5cdFx0c2V0QW5jaG9yRWwoZXZlbnQuY3VycmVudFRhcmdldCk7XG5cdH07XG5cdGNvbnN0IGhhbmRsZUxhdGVzdFNlbGVjdCA9ICgpID0+IHtcblx0XHR1cGRhdGVTZXR0aW5ncyh7XG5cdFx0XHQuLi5sb2NhbFNldHRpbmdzLFxuXHRcdFx0W3BhY2thZ2VOYW1lXToge1xuXHRcdFx0XHRnbG9iYWw6IGxvY2FsU2V0dGluZ3NbcGFja2FnZU5hbWVdPy5nbG9iYWwsXG5cdFx0XHRcdGxhdGVzdDogIWxvY2FsU2V0dGluZ3NbcGFja2FnZU5hbWVdPy5sYXRlc3Rcblx0XHRcdH1cblx0XHR9KTtcblx0XHRzZXRBbmNob3JFbChudWxsKTtcblx0fTtcblx0Y29uc3QgaGFuZGxlR2xvYmFsU2VsZWN0ID0gKCkgPT4ge1xuXHRcdHVwZGF0ZVNldHRpbmdzKHtcblx0XHRcdC4uLmxvY2FsU2V0dGluZ3MsXG5cdFx0XHRbcGFja2FnZU5hbWVdOiB7XG5cdFx0XHRcdGdsb2JhbDogIWxvY2FsU2V0dGluZ3NbcGFja2FnZU5hbWVdPy5nbG9iYWwsXG5cdFx0XHRcdGxhdGVzdDogbG9jYWxTZXR0aW5nc1twYWNrYWdlTmFtZV0/LmxhdGVzdFxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHNldEFuY2hvckVsKG51bGwpO1xuXHR9O1xuXHRjb25zdCBoYW5kbGVHbG9iYWxZYXJuTW9kZXJuID0gKCkgPT4ge1xuXHRcdGNvbnN0IHN0YXR1c1lhcm5Nb2Rlcm4gPSAhbG9jYWxTZXR0aW5ncz8ueWFybk1vZGVybjtcblx0XHR1cGRhdGVTZXR0aW5ncyh7XG5cdFx0XHQuLi5sb2NhbFNldHRpbmdzLFxuXHRcdFx0eWFybk1vZGVybjogc3RhdHVzWWFybk1vZGVyblxuXHRcdH0pO1xuXHRcdHNldEFuY2hvckVsKG51bGwpO1xuXHR9O1xuXHRjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcblx0XHRzZXRBbmNob3JFbChudWxsKTtcblx0fTtcblx0Y29uc3Qgc3RhdHVzTGF0ZXN0ID0gbG9jYWxTZXR0aW5nc1twYWNrYWdlTmFtZV0/LmxhdGVzdDtcblx0Y29uc3Qgc3RhdHVzR2xvYmFsID0gbG9jYWxTZXR0aW5nc1twYWNrYWdlTmFtZV0/Lmdsb2JhbDtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50JDEsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KEljb25CdXR0b24sIHtcblx0XHRcImFyaWEtY29udHJvbHNcIjogb3BlbiA/IFwiYmFzaWMtbWVudVwiIDogdm9pZCAwLFxuXHRcdFwiYXJpYS1leHBhbmRlZFwiOiBvcGVuID8gXCJ0cnVlXCIgOiB2b2lkIDAsXG5cdFx0XCJhcmlhLWhhc3BvcHVwXCI6IFwidHJ1ZVwiLFxuXHRcdGlkOiBcImJhc2ljLWJ1dHRvblwiLFxuXHRcdG9uQ2xpY2s6IGhhbmRsZU9wZW5NZW51LFxuXHRcdHNpemU6IFwic21hbGxcIixcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChTZXR0aW5ncywgeyBmb250U2l6ZTogXCJzbWFsbFwiIH0pXG5cdH0pLCAvKiBAX19QVVJFX18gKi8ganN4cyhUeXBlZE1lbnUsIHtcblx0XHRhbmNob3JFbCxcblx0XHRhbmNob3JPcmlnaW46IHtcblx0XHRcdHZlcnRpY2FsOiBcImJvdHRvbVwiLFxuXHRcdFx0aG9yaXpvbnRhbDogXCJyaWdodFwiXG5cdFx0fSxcblx0XHRpZDogXCJiYXNpYy1tZW51XCIsXG5cdFx0b25DbG9zZTogaGFuZGxlQ2xvc2UsXG5cdFx0b3Blbixcblx0XHRzbG90UHJvcHM6IHsgbGlzdDogeyBcImFyaWEtbGFiZWxsZWRieVwiOiBcImJhc2ljLWJ1dHRvblwiIH0gfSxcblx0XHR0cmFuc2Zvcm1PcmlnaW46IHtcblx0XHRcdHZlcnRpY2FsOiBcInRvcFwiLFxuXHRcdFx0aG9yaXpvbnRhbDogXCJyaWdodFwiXG5cdFx0fSxcblx0XHRjaGlsZHJlbjogW1xuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeHMoTWF0ZXJpYWxVSU1lbnVJdGVtLCB7XG5cdFx0XHRcdG9uQ2xpY2s6IGhhbmRsZUxhdGVzdFNlbGVjdCxcblx0XHRcdFx0Y2hpbGRyZW46IFtcblx0XHRcdFx0XHRcIiBcIixcblx0XHRcdFx0XHRzdGF0dXNMYXRlc3QgPT09IHRydWUgPyAvKiBAX19QVVJFX18gKi8ganN4KExpc3RJdGVtSWNvbiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChDaGVjaywge30pIH0pIDogbnVsbCxcblx0XHRcdFx0XHR0KFwic2lkZWJhci5pbnN0YWxsYXRpb24ubGF0ZXN0XCIpXG5cdFx0XHRcdF1cblx0XHRcdH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeHMoTWF0ZXJpYWxVSU1lbnVJdGVtLCB7XG5cdFx0XHRcdG9uQ2xpY2s6IGhhbmRsZUdsb2JhbFNlbGVjdCxcblx0XHRcdFx0Y2hpbGRyZW46IFtcblx0XHRcdFx0XHRcIiBcIixcblx0XHRcdFx0XHRzdGF0dXNHbG9iYWwgPT09IHRydWUgPyAvKiBAX19QVVJFX18gKi8ganN4KExpc3RJdGVtSWNvbiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChDaGVjaywge30pIH0pIDogbnVsbCxcblx0XHRcdFx0XHR0KFwic2lkZWJhci5pbnN0YWxsYXRpb24uZ2xvYmFsXCIpXG5cdFx0XHRcdF1cblx0XHRcdH0pLFxuXHRcdFx0Y29uZmlnT3B0aW9ucz8ucGtnTWFuYWdlcnM/LmluY2x1ZGVzKFwieWFyblwiKSAmJiAvKiBAX19QVVJFX18gKi8ganN4cyhNYXRlcmlhbFVJTWVudUl0ZW0sIHtcblx0XHRcdFx0b25DbGljazogaGFuZGxlR2xvYmFsWWFybk1vZGVybixcblx0XHRcdFx0Y2hpbGRyZW46IFtcblx0XHRcdFx0XHRcIiBcIixcblx0XHRcdFx0XHRsb2NhbFNldHRpbmdzPy55YXJuTW9kZXJuID8gLyogQF9fUFVSRV9fICovIGpzeChMaXN0SXRlbUljb24sIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ2hlY2ssIHt9KSB9KSA6IG51bGwsXG5cdFx0XHRcdFx0dChcInNpZGViYXIuaW5zdGFsbGF0aW9uLnlhcm5Nb2Rlcm5cIilcblx0XHRcdFx0XVxuXHRcdFx0fSlcblx0XHRdXG5cdH0pXSB9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFNldHRpbmdzTWVudSBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNldHRpbmdzTWVudS5tanMubWFwIiwiaW1wb3J0IENvcHlUb0NsaXBCb2FyZCBmcm9tIFwiLi4vQ29weUNsaXBib2FyZC9Db3B5VG9DbGlwQm9hcmQubWpzXCI7XG5pbXBvcnQgXCIuLi9Db3B5Q2xpcGJvYXJkL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgdXNlU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL1BlcnNpc3RlbmNlU2V0dGluZ1Byb3ZpZGVyL1BlcnNpc3RlbmNlU2V0dGluZ1Byb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vcHJvdmlkZXJzL1BlcnNpc3RlbmNlU2V0dGluZ1Byb3ZpZGVyL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgTnBtIH0gZnJvbSBcIi4uL0ljb25zL01hbmFnZXJzL05wbTIubWpzXCI7XG5pbXBvcnQgeyBQbnBtIH0gZnJvbSBcIi4uL0ljb25zL01hbmFnZXJzL1BucG0yLm1qc1wiO1xuaW1wb3J0IHsgWWFybiB9IGZyb20gXCIuLi9JY29ucy9NYW5hZ2Vycy9ZYXJuMi5tanNcIjtcbmltcG9ydCBcIi4uL0ljb25zL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9jb2xvcnNcIjtcbmltcG9ydCBBdmF0YXIgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQXZhdGFyXCI7XG5pbXBvcnQgTGlzdEl0ZW0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdEl0ZW1cIjtcbmltcG9ydCBMaXN0SXRlbVRleHQgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdEl0ZW1UZXh0XCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvSW5zdGFsbC9JbnN0YWxsTGlzdEl0ZW0udHN4XG52YXIgSW5zdGFsbEl0ZW0gPSBzdHlsZWQoTGlzdEl0ZW0pKHtcblx0cGFkZGluZzogMCxcblx0XCI6aG92ZXJcIjogeyBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIiB9XG59KTtcbnZhciBJbnN0YWxsTGlzdEl0ZW1UZXh0ID0gc3R5bGVkKExpc3RJdGVtVGV4dCkoe1xuXHRwYWRkaW5nOiBcIjAgMCAwIDEwcHhcIixcblx0bWFyZ2luOiAwXG59KTtcbnZhciBQYWNrYWdlTWFuZ2VyQXZhdGFyID0gc3R5bGVkKEF2YXRhcikoe1xuXHRiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcblx0cGFkZGluZzogMCxcblx0bWFyZ2luTGVmdDogMFxufSk7XG52YXIgRGVwZW5kZW5jeU1hbmFnZXIgPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oRGVwZW5kZW5jeU1hbmFnZXIpIHtcblx0RGVwZW5kZW5jeU1hbmFnZXJbXCJOUE1cIl0gPSBcIm5wbVwiO1xuXHREZXBlbmRlbmN5TWFuYWdlcltcIllBUk5cIl0gPSBcInlhcm5cIjtcblx0RGVwZW5kZW5jeU1hbmFnZXJbXCJQTlBNXCJdID0gXCJwbnBtXCI7XG5cdHJldHVybiBEZXBlbmRlbmN5TWFuYWdlcjtcbn0oe30pO1xuZnVuY3Rpb24gZ2V0R2xvYmFsSW5zdGFsbChpc0xhdGVzdCwgaXNHbG9iYWwsIHBhY2thZ2VWZXJzaW9uLCBwYWNrYWdlTmFtZSwgaXNZYXJuID0gZmFsc2UpIHtcblx0cmV0dXJuIChpc0dsb2JhbCA/IGAke2lzWWFybiA/IFwiXCIgOiBcIi1nXCJ9ICR7cGFja2FnZVZlcnNpb24gJiYgIWlzTGF0ZXN0ID8gYCR7cGFja2FnZU5hbWV9QCR7cGFja2FnZVZlcnNpb259YCA6IHBhY2thZ2VOYW1lfWAgOiBwYWNrYWdlVmVyc2lvbiAmJiAhaXNMYXRlc3QgPyBgJHtwYWNrYWdlTmFtZX1AJHtwYWNrYWdlVmVyc2lvbn1gIDogcGFja2FnZU5hbWUpLnRyaW0oKTtcbn1cbnZhciBJbnN0YWxsTGlzdEl0ZW0gPSAoeyBwYWNrYWdlTmFtZSwgZGVwZW5kZW5jeU1hbmFnZXIsIHBhY2thZ2VWZXJzaW9uIH0pID0+IHtcblx0Y29uc3QgeyBsb2NhbFNldHRpbmdzIH0gPSB1c2VTZXR0aW5ncygpO1xuXHRjb25zdCBpc0xhdGVzdCA9IGxvY2FsU2V0dGluZ3NbcGFja2FnZU5hbWVdPy5sYXRlc3QgPz8gZmFsc2U7XG5cdGNvbnN0IGlzR2xvYmFsID0gbG9jYWxTZXR0aW5nc1twYWNrYWdlTmFtZV0/Lmdsb2JhbCA/PyBmYWxzZTtcblx0c3dpdGNoIChkZXBlbmRlbmN5TWFuYWdlcikge1xuXHRcdGNhc2UgRGVwZW5kZW5jeU1hbmFnZXIuTlBNOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoSW5zdGFsbEl0ZW0sIHtcblx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJpbnN0YWxsTGlzdEl0ZW0tbnBtXCIsXG5cdFx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goUGFja2FnZU1hbmdlckF2YXRhciwge1xuXHRcdFx0XHRhbHQ6IFwibnBtXCIsXG5cdFx0XHRcdHN4OiB7IGJnY29sb3I6IGNvbW1vbi53aGl0ZSB9LFxuXHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChOcG0sIHt9KVxuXHRcdFx0fSksIC8qIEBfX1BVUkVfXyAqLyBqc3goSW5zdGFsbExpc3RJdGVtVGV4dCwgeyBwcmltYXJ5OiAvKiBAX19QVVJFX18gKi8ganN4KENvcHlUb0NsaXBCb2FyZCwge1xuXHRcdFx0XHRkYXRhVGVzdElkOiBcImluc3RhbGxOcG1cIixcblx0XHRcdFx0dGV4dDogYG5wbSBpbnN0YWxsICR7Z2V0R2xvYmFsSW5zdGFsbChpc0xhdGVzdCwgaXNHbG9iYWwsIHBhY2thZ2VWZXJzaW9uLCBwYWNrYWdlTmFtZSl9YCxcblx0XHRcdFx0dGl0bGU6IGBucG0gaW5zdGFsbCAke2dldEdsb2JhbEluc3RhbGwoaXNMYXRlc3QsIGlzR2xvYmFsLCBwYWNrYWdlVmVyc2lvbiwgcGFja2FnZU5hbWUpfWBcblx0XHRcdH0pIH0pXVxuXHRcdH0pO1xuXHRcdGNhc2UgRGVwZW5kZW5jeU1hbmFnZXIuWUFSTjogcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEluc3RhbGxJdGVtLCB7XG5cdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwiaW5zdGFsbExpc3RJdGVtLXlhcm5cIixcblx0XHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChQYWNrYWdlTWFuZ2VyQXZhdGFyLCB7XG5cdFx0XHRcdGFsdDogXCJ5YXJuXCIsXG5cdFx0XHRcdHN4OiB7IGJnY29sb3I6IGNvbW1vbi53aGl0ZSB9LFxuXHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChZYXJuLCB7fSlcblx0XHRcdH0pLCAvKiBAX19QVVJFX18gKi8ganN4KEluc3RhbGxMaXN0SXRlbVRleHQsIHsgcHJpbWFyeTogLyogQF9fUFVSRV9fICovIGpzeChDb3B5VG9DbGlwQm9hcmQsIHtcblx0XHRcdFx0ZGF0YVRlc3RJZDogXCJpbnN0YWxsWWFyblwiLFxuXHRcdFx0XHR0ZXh0OiBpc0dsb2JhbCA/IGB5YXJuICR7bG9jYWxTZXR0aW5ncy55YXJuTW9kZXJuID8gXCJcIiA6IFwiZ2xvYmFsXCJ9IGFkZCAke2dldEdsb2JhbEluc3RhbGwoaXNHbG9iYWwsIHBhY2thZ2VWZXJzaW9uLCBwYWNrYWdlTmFtZSwgdHJ1ZSl9YCA6IGB5YXJuIGFkZCAke2dldEdsb2JhbEluc3RhbGwoaXNMYXRlc3QsIGlzR2xvYmFsLCBwYWNrYWdlVmVyc2lvbiwgcGFja2FnZU5hbWUsIHRydWUpfWAsXG5cdFx0XHRcdHRpdGxlOiBpc0dsb2JhbCA/IGB5YXJuIGdsb2JhbCBhZGQgJHtnZXRHbG9iYWxJbnN0YWxsKGlzR2xvYmFsLCBwYWNrYWdlVmVyc2lvbiwgcGFja2FnZU5hbWUsIHRydWUpfWAgOiBgeWFybiBhZGQgJHtnZXRHbG9iYWxJbnN0YWxsKGlzTGF0ZXN0LCBpc0dsb2JhbCwgcGFja2FnZVZlcnNpb24sIHBhY2thZ2VOYW1lLCB0cnVlKX1gXG5cdFx0XHR9KSB9KV1cblx0XHR9KTtcblx0XHRjYXNlIERlcGVuZGVuY3lNYW5hZ2VyLlBOUE06IHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhJbnN0YWxsSXRlbSwge1xuXHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcImluc3RhbGxMaXN0SXRlbS1wbnBtXCIsXG5cdFx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goUGFja2FnZU1hbmdlckF2YXRhciwge1xuXHRcdFx0XHRhbHQ6IFwicG5wbVwiLFxuXHRcdFx0XHRzeDogeyBiZ2NvbG9yOiBjb21tb24ud2hpdGUgfSxcblx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUG5wbSwge30pXG5cdFx0XHR9KSwgLyogQF9fUFVSRV9fICovIGpzeChJbnN0YWxsTGlzdEl0ZW1UZXh0LCB7IHByaW1hcnk6IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29weVRvQ2xpcEJvYXJkLCB7XG5cdFx0XHRcdGRhdGFUZXN0SWQ6IFwiaW5zdGFsbFBucG1cIixcblx0XHRcdFx0dGV4dDogYHBucG0gaW5zdGFsbCAke2dldEdsb2JhbEluc3RhbGwoaXNMYXRlc3QsIGlzR2xvYmFsLCBwYWNrYWdlVmVyc2lvbiwgcGFja2FnZU5hbWUpfWAsXG5cdFx0XHRcdHRpdGxlOiBgcG5wbSBpbnN0YWxsICR7Z2V0R2xvYmFsSW5zdGFsbChpc0xhdGVzdCwgaXNHbG9iYWwsIHBhY2thZ2VWZXJzaW9uLCBwYWNrYWdlTmFtZSl9YFxuXHRcdFx0fSkgfSldXG5cdFx0fSk7XG5cdFx0ZGVmYXVsdDogcmV0dXJuIG51bGw7XG5cdH1cbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IERlcGVuZGVuY3lNYW5hZ2VyLCBJbnN0YWxsTGlzdEl0ZW0gYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1JbnN0YWxsTGlzdEl0ZW0ubWpzLm1hcCIsImltcG9ydCBTZXR0aW5nc01lbnUgZnJvbSBcIi4uL1NldHRpbmdzTWVudS9TZXR0aW5nc01lbnUubWpzXCI7XG5pbXBvcnQgXCIuLi9TZXR0aW5nc01lbnUvaW5kZXgubWpzXCI7XG5pbXBvcnQgSW5zdGFsbExpc3RJdGVtLCB7IERlcGVuZGVuY3lNYW5hZ2VyIH0gZnJvbSBcIi4vSW5zdGFsbExpc3RJdGVtLm1qc1wiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgRnJhZ21lbnQkMSwganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgTGlzdCBmcm9tIFwiQG11aS9tYXRlcmlhbC9MaXN0XCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9JbnN0YWxsL0luc3RhbGwudHN4XG52YXIgU3R5bGVkVGV4dCA9IHN0eWxlZChUeXBvZ3JhcGh5KSgocHJvcHMpID0+ICh7XG5cdGZvbnRXZWlnaHQ6IHByb3BzLnRoZW1lLmZvbnRXZWlnaHQuYm9sZCxcblx0dGV4dFRyYW5zZm9ybTogXCJjYXBpdGFsaXplXCJcbn0pKTtcbnZhciBXcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcblx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG5cdGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIlxufSk7XG52YXIgSW5zdGFsbCA9ICh7IHBhY2thZ2VNZXRhLCBwYWNrYWdlTmFtZSwgY29uZmlnT3B0aW9ucyB9KSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0aWYgKCFwYWNrYWdlTWV0YSB8fCAhcGFja2FnZU5hbWUpIHJldHVybiBudWxsO1xuXHRjb25zdCBoYXNOcG0gPSBjb25maWdPcHRpb25zPy5wa2dNYW5hZ2Vycz8uaW5jbHVkZXMoXCJucG1cIik7XG5cdGNvbnN0IGhhc1lhcm4gPSBjb25maWdPcHRpb25zPy5wa2dNYW5hZ2Vycz8uaW5jbHVkZXMoXCJ5YXJuXCIpO1xuXHRjb25zdCBoYXNQbnBtID0gY29uZmlnT3B0aW9ucz8ucGtnTWFuYWdlcnM/LmluY2x1ZGVzKFwicG5wbVwiKSA/PyB0cnVlO1xuXHRyZXR1cm4gaGFzTnBtIHx8IGhhc1BucG0gfHwgaGFzWWFybiA/IC8qIEBfX1BVUkVfXyAqLyBqc3goRnJhZ21lbnQkMSwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoTGlzdCwge1xuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCJpbnN0YWxsTGlzdFwiLFxuXHRcdHN1YmhlYWRlcjogLyogQF9fUFVSRV9fICovIGpzeHMoV3JhcHBlciwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkVGV4dCwge1xuXHRcdFx0dmFyaWFudDogXCJzdWJ0aXRsZTFcIixcblx0XHRcdGNoaWxkcmVuOiB0KFwic2lkZWJhci5pbnN0YWxsYXRpb24udGl0bGVcIilcblx0XHR9KSwgLyogQF9fUFVSRV9fICovIGpzeChTZXR0aW5nc01lbnUsIHsgcGFja2FnZU5hbWUgfSldIH0pLFxuXHRcdGNoaWxkcmVuOiBbXG5cdFx0XHRoYXNOcG0gJiYgLyogQF9fUFVSRV9fICovIGpzeChJbnN0YWxsTGlzdEl0ZW0sIHtcblx0XHRcdFx0ZGVwZW5kZW5jeU1hbmFnZXI6IERlcGVuZGVuY3lNYW5hZ2VyLk5QTSxcblx0XHRcdFx0cGFja2FnZU5hbWUsXG5cdFx0XHRcdHBhY2thZ2VWZXJzaW9uOiBwYWNrYWdlTWV0YS5sYXRlc3QudmVyc2lvblxuXHRcdFx0fSksXG5cdFx0XHRoYXNZYXJuICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSW5zdGFsbExpc3RJdGVtLCB7XG5cdFx0XHRcdGRlcGVuZGVuY3lNYW5hZ2VyOiBEZXBlbmRlbmN5TWFuYWdlci5ZQVJOLFxuXHRcdFx0XHRwYWNrYWdlTmFtZSxcblx0XHRcdFx0cGFja2FnZVZlcnNpb246IHBhY2thZ2VNZXRhLmxhdGVzdC52ZXJzaW9uXG5cdFx0XHR9KSxcblx0XHRcdGhhc1BucG0gJiYgLyogQF9fUFVSRV9fICovIGpzeChJbnN0YWxsTGlzdEl0ZW0sIHtcblx0XHRcdFx0ZGVwZW5kZW5jeU1hbmFnZXI6IERlcGVuZGVuY3lNYW5hZ2VyLlBOUE0sXG5cdFx0XHRcdHBhY2thZ2VOYW1lLFxuXHRcdFx0XHRwYWNrYWdlVmVyc2lvbjogcGFja2FnZU1ldGEubGF0ZXN0LnZlcnNpb25cblx0XHRcdH0pXG5cdFx0XVxuXHR9KSB9KSA6IG51bGw7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBJbnN0YWxsIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SW5zdGFsbC5tanMubWFwIiwiaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IExpc3RJdGVtIGZyb20gXCJAbXVpL21hdGVyaWFsL0xpc3RJdGVtXCI7XG5pbXBvcnQgQ2hpcCBmcm9tIFwiQG11aS9tYXRlcmlhbC9DaGlwXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvS2V5d29yZHMvS2V5d29yZExpc3RJdGVtcy50c3hcbnZhciBLZXl3b3JkTGlzdEl0ZW1zID0gKHsga2V5d29yZHMgfSkgPT4ge1xuXHRjb25zdCBrZXl3b3JkTGlzdCA9IHR5cGVvZiBrZXl3b3JkcyA9PT0gXCJzdHJpbmdcIiA/IGtleXdvcmRzLnJlcGxhY2UoLywvZywgXCIgXCIpLnNwbGl0KFwiIFwiKSA6IGtleXdvcmRzO1xuXHRpZiAoIWtleXdvcmRMaXN0KSByZXR1cm4gbnVsbDtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTGlzdEl0ZW0sIHtcblx0XHRzeDoge1xuXHRcdFx0cHg6IDAsXG5cdFx0XHRtdDogMCxcblx0XHRcdGZsZXhXcmFwOiBcIndyYXBcIlxuXHRcdH0sXG5cdFx0Y2hpbGRyZW46IGtleXdvcmRMaXN0LnNvcnQoKS5tYXAoKGtleXdvcmQsIGluZGV4KSA9PiAvKiBAX19QVVJFX18gKi8ganN4KENoaXAsIHtcblx0XHRcdGxhYmVsOiBrZXl3b3JkLFxuXHRcdFx0c2l6ZTogXCJzbWFsbFwiLFxuXHRcdFx0c3g6IHtcblx0XHRcdFx0bXQ6IC41LFxuXHRcdFx0XHRtcjogLjVcblx0XHRcdH1cblx0XHR9LCBpbmRleCkpXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgS2V5d29yZExpc3RJdGVtcyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUtleXdvcmRMaXN0SXRlbXMubWpzLm1hcCIsImltcG9ydCBLZXl3b3JkTGlzdEl0ZW1zIGZyb20gXCIuL0tleXdvcmRMaXN0SXRlbXMubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IExpc3QgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdFwiO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVHlwb2dyYXBoeVwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0tleXdvcmRzL0tleXdvcmRzLnRzeFxudmFyIEtleXdvcmRzID0gKHsgcGFja2FnZU1ldGEgfSkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcblx0aWYgKCFwYWNrYWdlTWV0YT8ubGF0ZXN0Py5rZXl3b3JkcykgcmV0dXJuIG51bGw7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KExpc3QsIHtcblx0XHRcImRhdGEtdGVzdGlkXCI6IFwia2V5d29yZC1saXN0XCIsXG5cdFx0c3ViaGVhZGVyOiAvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHRcdHN4OiB7XG5cdFx0XHRcdGZvbnRXZWlnaHQ6IHRoZW1lLmZvbnRXZWlnaHQuYm9sZCxcblx0XHRcdFx0dGV4dFRyYW5zZm9ybTogXCJjYXBpdGFsaXplXCJcblx0XHRcdH0sXG5cdFx0XHR2YXJpYW50OiBcInN1YnRpdGxlMVwiLFxuXHRcdFx0Y2hpbGRyZW46IHQoXCJzaWRlYmFyLmtleXdvcmRzLnRpdGxlXCIpXG5cdFx0fSksXG5cdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goS2V5d29yZExpc3RJdGVtcywgeyBrZXl3b3JkczogcGFja2FnZU1ldGE/LmxhdGVzdD8ua2V5d29yZHMgfSlcblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBLZXl3b3JkcyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUtleXdvcmRzLm1qcy5tYXAiLCJpbXBvcnQgRE9NUHVyaWZ5IGZyb20gXCJkb21wdXJpZnlcIjtcbmltcG9ydCBobGpzIGZyb20gXCJoaWdobGlnaHQuanNcIjtcbmltcG9ydCB7IE1hcmtlZCB9IGZyb20gXCJtYXJrZWRcIjtcbmltcG9ydCB7IG1hcmtlZEhpZ2hsaWdodCB9IGZyb20gXCJtYXJrZWQtaGlnaGxpZ2h0XCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvUmVhZG1lL3V0aWxzLnRzXG52YXIgbWFya2VkID0gbmV3IE1hcmtlZChtYXJrZWRIaWdobGlnaHQoe1xuXHRhc3luYzogZmFsc2UsXG5cdGhpZ2hsaWdodChjb2RlLCBsYW5nKSB7XG5cdFx0Y29uc3QgbGFuZ3VhZ2UgPSBobGpzLmdldExhbmd1YWdlKGxhbmcpID8gbGFuZyA6IFwicGxhaW50ZXh0XCI7XG5cdFx0cmV0dXJuIGhsanMuaGlnaGxpZ2h0KGNvZGUsIHsgbGFuZ3VhZ2UgfSkudmFsdWU7XG5cdH1cbn0pKTtcbm1hcmtlZC5zZXRPcHRpb25zKHtcblx0cmVuZGVyZXI6IG5ldyBtYXJrZWQuUmVuZGVyZXIoKSxcblx0cGVkYW50aWM6IGZhbHNlLFxuXHRnZm06IHRydWUsXG5cdGJyZWFrczogZmFsc2Vcbn0pO1xuZnVuY3Rpb24gcGFyc2VSZWFkbWUocmVhZG1lKSB7XG5cdGNvbnN0IGh0bWwgPSBtYXJrZWQucGFyc2UocmVhZG1lKTtcblx0cmV0dXJuIERPTVB1cmlmeS5zYW5pdGl6ZShodG1sKTtcbn1cbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgcGFyc2VSZWFkbWUgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMubWpzLm1hcCIsImltcG9ydCB7IGJhc2VDb2xvcnMgfSBmcm9tIFwiLi9jb2xvcnMubWpzXCI7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9jb2xvcnNcIjtcbi8vI3JlZ2lvbiBzcmMvVGhlbWUvbW9kZXMudHNcbnZhciBEQVJLX01PREVfUFJJTUFSWSA9IGNvbW1vbi53aGl0ZTtcbnZhciBnZXRNb2RlUGFsZXR0ZSA9IChtb2RlLCBwcmltYXJ5Q29sb3IpID0+IHtcblx0Y29uc3QgYmFzZVByaW1hcnkgPSBwcmltYXJ5Q29sb3IgfHwgYmFzZUNvbG9ycy5wcmltYXJ5Lm1haW47XG5cdGNvbnN0IHByaW1hcnkgPSBtb2RlID09PSBcImRhcmtcIiA/IHsgbWFpbjogREFSS19NT0RFX1BSSU1BUlkgfSA6IHsgbWFpbjogYmFzZVByaW1hcnkgfTtcblx0aWYgKG1vZGUgPT09IFwiZGFya1wiKSByZXR1cm4ge1xuXHRcdG1vZGUsXG5cdFx0cHJpbWFyeSxcblx0XHRzZWNvbmRhcnk6IHsgbWFpbjogXCIjNDI0MjQyXCIgfSxcblx0XHRiYWNrZ3JvdW5kOiB7XG5cdFx0XHRkZWZhdWx0OiBcIiMxYTIwMmNcIixcblx0XHRcdHBhcGVyOiBcIiMyZDM3NDhcIlxuXHRcdH1cblx0fTtcblx0cmV0dXJuIHtcblx0XHRtb2RlLFxuXHRcdHByaW1hcnksXG5cdFx0c2Vjb25kYXJ5OiBiYXNlQ29sb3JzLnNlY29uZGFyeSxcblx0XHRiYWNrZ3JvdW5kOiB7XG5cdFx0XHRkZWZhdWx0OiBcIiNmNGY0ZjRcIixcblx0XHRcdHBhcGVyOiBcIiNmZmZmZmZcIlxuXHRcdH1cblx0fTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IGdldE1vZGVQYWxldHRlIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZGVzLm1qcy5tYXAiLCIvLyNyZWdpb24gc3JjL1RoZW1lL3Rva2Vucy50c1xudmFyIGZvbnRTaXplID0ge1xuXHR4eGw6IDI2LFxuXHR4bDogMjQsXG5cdGxnOiAyMSxcblx0bWQ6IDE4LFxuXHRkZWZhdWx0OiAxNixcblx0c206IDE0LFxuXHRzc206IDEyXG59O1xudmFyIGZvbnRXZWlnaHQgPSB7XG5cdGxpZ2h0OiAzMDAsXG5cdHJlZ3VsYXI6IDQwMCxcblx0c2VtaUJvbGQ6IDUwMCxcblx0Ym9sZDogNzAwXG59O1xudmFyIGJyZWFrUG9pbnRzID0ge1xuXHR4c21hbGw6IDQwMCxcblx0c21hbGw6IDU3Nixcblx0bWVkaXVtOiA3NjgsXG5cdGxhcmdlOiAxMDI0LFxuXHRjb250YWluZXI6IDEyNDAsXG5cdHhsYXJnZTogMTI3NVxufTtcbnZhciBjdXN0b21pemVkVGhlbWUgPSB7XG5cdGZvbnRTaXplLFxuXHRmb250V2VpZ2h0LFxuXHRicmVha1BvaW50c1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgYnJlYWtQb2ludHMsIGN1c3RvbWl6ZWRUaGVtZSwgZm9udFNpemUsIGZvbnRXZWlnaHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dG9rZW5zLm1qcy5tYXAiLCJpbXBvcnQgeyBnZXRNb2RlUGFsZXR0ZSB9IGZyb20gXCIuL21vZGVzLm1qc1wiO1xuaW1wb3J0IHsgY3VzdG9taXplZFRoZW1lIH0gZnJvbSBcIi4vdG9rZW5zLm1qc1wiO1xuaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9zdHlsZXNcIjtcbi8vI3JlZ2lvbiBzcmMvVGhlbWUvdGhlbWUudHNcbnZhciBnZXRUaGVtZSA9IChtb2RlLCBwcmltYXJ5Q29sb3IpID0+IHtcblx0cmV0dXJuIGNyZWF0ZVRoZW1lKHtcblx0XHRwYWxldHRlOiBnZXRNb2RlUGFsZXR0ZShtb2RlLCBwcmltYXJ5Q29sb3IpLFxuXHRcdHR5cG9ncmFwaHk6IHsgZm9udEZhbWlseTogW1xuXHRcdFx0XCItYXBwbGUtc3lzdGVtXCIsXG5cdFx0XHRcIkJsaW5rTWFjU3lzdGVtRm9udFwiLFxuXHRcdFx0XCJcXFwiSGVsdmV0aWNhIE5ldWVcXFwiXCIsXG5cdFx0XHRcIkFyaWFsXCIsXG5cdFx0XHRcInNhbnMtc2VyaWZcIlxuXHRcdF0uam9pbihcIixcIikgfSxcblx0XHRjb21wb25lbnRzOiB7IE11aVBhcGVyOiB7IHN0eWxlT3ZlcnJpZGVzOiB7IHJvb3Q6IHsgYmFja2dyb3VuZEltYWdlOiBcInVuc2V0XCIgfSB9IH0gfSxcblx0XHQuLi5jdXN0b21pemVkVGhlbWVcblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBnZXRUaGVtZSB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwIiwiaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSBcIi4uL3Byb3ZpZGVycy9BcHBDb25maWd1cmF0aW9uUHJvdmlkZXIvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IFwiLi4vcHJvdmlkZXJzL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci9pbmRleC5tanNcIjtcbmltcG9ydCB1c2VMb2NhbFN0b3JhZ2UgZnJvbSBcIi4uL2hvb2tzL3VzZUxvY2FsU3RvcmFnZS5tanNcIjtcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSBcIi4vdGhlbWUubWpzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IFN0eWxlZEVuZ2luZVByb3ZpZGVyLCBUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG4vLyNyZWdpb24gc3JjL1RoZW1lL1RoZW1lUHJvdmlkZXIudHN4XG52YXIgVGhlbWVDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gZ2V0RGFya01vZGVEZWZhdWx0KGRhcmtNb2RlQ29uZmlnKSB7XG5cdGNvbnN0IHByZWZlcnNEYXJrTW9kZSA9IHdpbmRvdy5tYXRjaE1lZGlhPy4oXCIocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyaylcIikubWF0Y2hlcztcblx0aWYgKHR5cGVvZiBkYXJrTW9kZUNvbmZpZyA9PT0gXCJib29sZWFuXCIpIHJldHVybiBkYXJrTW9kZUNvbmZpZztcblx0ZWxzZSByZXR1cm4gcHJlZmVyc0RhcmtNb2RlO1xufVxudmFyIFRoZW1lUHJvdmlkZXIkMSA9ICh7IGNoaWxkcmVuIH0pID0+IHtcblx0Y29uc3QgeyBjb25maWdPcHRpb25zIH0gPSB1c2VDb25maWcoKTtcblx0Y29uc3QgaXNEYXJrTW9kZURlZmF1bHQgPSBnZXREYXJrTW9kZURlZmF1bHQoY29uZmlnT3B0aW9ucy5kYXJrTW9kZSk7XG5cdGNvbnN0IGlzU3dpdGNoVGhlbWVFbmFibGVkID0gY29uZmlnT3B0aW9ucy5zaG93VGhlbWVTd2l0Y2g7XG5cdGNvbnN0IFtpc0RhcmtNb2RlU3RvcmFnZSwgc2V0SXNEYXJrTW9kZV0gPSB1c2VMb2NhbFN0b3JhZ2UoXCJkYXJrTW9kZVwiLCBpc0RhcmtNb2RlRGVmYXVsdCk7XG5cdGNvbnN0IGlzRGFya01vZGUgPSBpc1N3aXRjaFRoZW1lRW5hYmxlZCA9PT0gdHJ1ZSA/IGlzRGFya01vZGVTdG9yYWdlIDogaXNEYXJrTW9kZURlZmF1bHQ7XG5cdGNvbnN0IGN1cnJlbnRUaGVtZSA9IGdldFRoZW1lKGlzRGFya01vZGUgPyBcImRhcmtcIiA6IFwibGlnaHRcIiwgY29uZmlnT3B0aW9ucy5wcmltYXJ5Q29sb3IpO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUaGVtZUNvbnRleHQuUHJvdmlkZXIsIHtcblx0XHR2YWx1ZToge1xuXHRcdFx0aXNEYXJrTW9kZSxcblx0XHRcdHNldElzRGFya01vZGVcblx0XHR9LFxuXHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFN0eWxlZEVuZ2luZVByb3ZpZGVyLCB7XG5cdFx0XHRpbmplY3RGaXJzdDogdHJ1ZSxcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFRoZW1lUHJvdmlkZXIsIHtcblx0XHRcdFx0dGhlbWU6IGN1cnJlbnRUaGVtZSxcblx0XHRcdFx0Y2hpbGRyZW5cblx0XHRcdH0pXG5cdFx0fSlcblx0fSk7XG59O1xudmFyIHVzZUN1c3RvbVRoZW1lID0gKCkgPT4gdXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBUaGVtZVByb3ZpZGVyJDEgYXMgVGhlbWVQcm92aWRlciwgdXNlQ3VzdG9tVGhlbWUgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGhlbWVQcm92aWRlci5tanMubWFwIiwiLyogZW1wdHkgY3NzICAgICAgICAgICAgICAgICAqL1xuaW1wb3J0IHsgcGFyc2VSZWFkbWUgfSBmcm9tIFwiLi91dGlscy5tanNcIjtcbmltcG9ydCB7IHVzZUN1c3RvbVRoZW1lIH0gZnJvbSBcIi4uLy4uL1RoZW1lL1RoZW1lUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9pbmRleC5tanNcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IEJveCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Cb3hcIjtcbmltcG9ydCBDYXJkIGZyb20gXCJAbXVpL21hdGVyaWFsL0NhcmRcIjtcbmltcG9ydCBDYXJkQ29udGVudCBmcm9tIFwiQG11aS9tYXRlcmlhbC9DYXJkQ29udGVudFwiO1xuaW1wb3J0IFwiaGlnaGxpZ2h0LmpzL3N0eWxlcy9naXRodWItZGFyay5jc3NcIjtcbmltcG9ydCBcImhpZ2hsaWdodC5qcy9zdHlsZXMvZ2l0aHViLmNzc1wiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL1JlYWRtZS9SZWFkbWUudHN4XG52YXIgUmVhZG1lID0gKHsgZGVzY3JpcHRpb24gfSkgPT4ge1xuXHRjb25zdCB7IGlzRGFya01vZGUgfSA9IHVzZUN1c3RvbVRoZW1lKCk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENhcmQsIHtcblx0XHRzeDogeyBtYjogMiB9LFxuXHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KENhcmRDb250ZW50LCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEJveCwge1xuXHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcInJlYWRtZVwiLFxuXHRcdFx0c3g6IHsgbTogMiB9LFxuXHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goV3JhcHBlciwge1xuXHRcdFx0XHRjbGFzc05hbWU6IGBtYXJrZG93bi1ib2R5ICR7aXNEYXJrTW9kZSA/IFwibWFya2Rvd24tZGFya1wiIDogXCJtYXJrZG93bi1saWdodFwifWAsXG5cdFx0XHRcdGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7IF9faHRtbDogcGFyc2VSZWFkbWUoZGVzY3JpcHRpb24pIH1cblx0XHRcdH0pXG5cdFx0fSkgfSlcblx0fSk7XG59O1xudmFyIFdyYXBwZXIgPSBzdHlsZWQoXCJkaXZcIikoe1xuXHR1bDogeyBsaXN0U3R5bGU6IFwiZGlzY1wiIH0sXG5cdGltZzogeyBtYXhXaWR0aDogXCIxMDAlXCIgfVxufSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFJlYWRtZSBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWRtZS5tanMubWFwIiwiaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL1NpZGVCYXJUaXRsZS91dGlscy50c1xudmFyIFRJTUVGT1JNQVQgPSBcIkwgTFRTXCI7XG5mdW5jdGlvbiBmb3JtYXREYXRlKGxhc3RVcGRhdGUpIHtcblx0cmV0dXJuIGRheWpzKG5ldyBEYXRlKGxhc3RVcGRhdGUpKS5mb3JtYXQoVElNRUZPUk1BVCk7XG59XG5mdW5jdGlvbiBmb3JtYXREYXRlRGlzdGFuY2UobGFzdFVwZGF0ZSkge1xuXHRyZXR1cm4gZGF5anMobmV3IERhdGUobGFzdFVwZGF0ZSkpLmZyb21Ob3coKTtcbn1cbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgZm9ybWF0RGF0ZSwgZm9ybWF0RGF0ZURpc3RhbmNlIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLm1qcy5tYXAiLCJpbXBvcnQgeyBUeXBlU2NyaXB0IH0gZnJvbSBcIi4uL0ljb25zL0RldnNJY29ucy9UeXBlU2NyaXB0Mi5tanNcIjtcbmltcG9ydCB7IENvbW1vbkpTIH0gZnJvbSBcIi4uL0ljb25zL0RldnNJY29ucy9Db21tb25KUzIubWpzXCI7XG5pbXBvcnQgeyBFUzZNb2R1bGVzIH0gZnJvbSBcIi4uL0ljb25zL0RldnNJY29ucy9FUzZNb2R1bGUyLm1qc1wiO1xuaW1wb3J0IFwiLi4vSWNvbnMvaW5kZXgubWpzXCI7XG5pbXBvcnQgSGVhZGluZyBmcm9tIFwiLi4vSGVhZGluZy9IZWFkaW5nLm1qc1wiO1xuaW1wb3J0IFwiLi4vSGVhZGluZy9pbmRleC5tanNcIjtcbmltcG9ydCB7IGZvcm1hdERhdGUsIGZvcm1hdERhdGVEaXN0YW5jZSB9IGZyb20gXCIuL3V0aWxzLm1qc1wiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgRnJhZ21lbnQkMSwganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQm94IGZyb20gXCJAbXVpL21hdGVyaWFsL0JveFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL1NpZGVCYXJUaXRsZS9TaWRlQmFyVGl0bGUudHN4XG52YXIgSWNvbiA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHsgbWFyZ2luTGVmdDogdGhlbWUuc3BhY2luZygxKSB9KSk7XG52YXIgTW9kdWxlSlMgPSAoeyBtb2R1bGUgfSkgPT4ge1xuXHRpZiAobW9kdWxlID09PSBcImNvbW1vbmpzXCIpIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tbW9uSlMsIHt9KSB9KTtcblx0ZWxzZSBpZiAobW9kdWxlID09PSBcIm1vZHVsZVwiKSByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEVTNk1vZHVsZXMsIHt9KSB9KTtcblx0ZWxzZSByZXR1cm4gbnVsbDtcbn07XG52YXIgRGV0YWlsU2lkZWJhclRpdGxlID0gKHsgZGVzY3JpcHRpb24sIHBhY2thZ2VOYW1lLCB2ZXJzaW9uLCBpc0xhdGVzdCwgaGFzVHlwZXMsIG1vZHVsZVR5cGVzLCB0aW1lIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoQm94LCB7XG5cdFx0Y2xhc3NOYW1lOiBcImRldGFpbC1pbmZvXCIsXG5cdFx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdFx0ZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcblx0XHRtYXJnaW5Cb3R0b206IFwiOHB4XCIsXG5cdFx0Y2hpbGRyZW46IFtcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkSGVhZGluZywgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChUaXRsZVdyYXBwZXIsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50JDEsIHsgY2hpbGRyZW46IFtcblx0XHRcdFx0cGFja2FnZU5hbWUsXG5cdFx0XHRcdGhhc1R5cGVzICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChUeXBlU2NyaXB0LCB7fSkgfSksXG5cdFx0XHRcdG1vZHVsZVR5cGVzLm1hcCgobW9kdWxlLCBpbmRleCkgPT4gLyogQF9fUFVSRV9fICovIGpzeChNb2R1bGVKUywgeyBtb2R1bGUgfSwgaW5kZXgpKVxuXHRcdFx0XSB9KSB9KSB9KSxcblx0XHRcdGRlc2NyaXB0aW9uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjaGlsZHJlbjogZGVzY3JpcHRpb24gfSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4cyhTdHlsZWRCb3hWZXJzaW9uLCB7XG5cdFx0XHRcdHRpdGxlOiBmb3JtYXREYXRlKHRpbWUpLFxuXHRcdFx0XHRjaGlsZHJlbjogW2lzTGF0ZXN0ID8gdChcInNpZGViYXIuZGV0YWlsLmxhdGVzdC12ZXJzaW9uXCIsIHsgdmVyc2lvbiB9KSA6IHQoXCJzaWRlYmFyLmRldGFpbC52ZXJzaW9uXCIsIHsgdmVyc2lvbiB9KSwgdGltZSA/IFwiIC0gXCIgKyB0KFwic2lkZWJhci5kZXRhaWwucHVibGlzaGVkXCIpICsgXCIgXCIgKyBmb3JtYXREYXRlRGlzdGFuY2UodGltZSkgOiB0KFwidmVyc2lvbnMubm90LWF2YWlsYWJsZVwiKV1cblx0XHRcdH0pXG5cdFx0XVxuXHR9KTtcbn07XG52YXIgVGl0bGVXcmFwcGVyID0gc3R5bGVkLmRpdih7XG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiXG59KTtcbnZhciBTdHlsZWRIZWFkaW5nID0gc3R5bGVkKEhlYWRpbmcpKHtcblx0Zm9udFNpemU6IFwiMXJlbVwiLFxuXHRmb250V2VpZ2h0OiA3MDBcbn0pO1xudmFyIFN0eWxlZEJveFZlcnNpb24gPSBzdHlsZWQoQm94KSgoeyB0aGVtZSB9KSA9PiAoe1xuXHRjb2xvcjogdGhlbWUucGFsZXR0ZS50ZXh0LnNlY29uZGFyeSxcblx0Zm9udFNpemU6IHRoZW1lLmZvbnRTaXplLnNtXG59KSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IERldGFpbFNpZGViYXJUaXRsZSBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNpZGVCYXJUaXRsZS5tanMubWFwIiwiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvTGFiZWwvTGFiZWwudHN4XG52YXIgV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSgocHJvcHMpID0+ICh7XG5cdGZvbnRXZWlnaHQ6IHByb3BzLnRoZW1lLmZvbnRXZWlnaHRbcHJvcHMud2VpZ2h0XSxcblx0dGV4dFRyYW5zZm9ybTogcHJvcHMuY2FwaXRhbGl6ZSA/IFwiY2FwaXRhbGl6ZVwiIDogXCJub25lXCJcbn0pKTtcbnZhciBMYWJlbCA9ICh7IHRleHQgPSBcIlwiLCBjYXBpdGFsaXplID0gZmFsc2UsIHdlaWdodCA9IFwicmVndWxhclwiLCAuLi5wcm9wcyB9KSA9PiB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFdyYXBwZXIsIHtcblx0XHRjYXBpdGFsaXplLFxuXHRcdHdlaWdodCxcblx0XHQuLi5wcm9wcyxcblx0XHRjaGlsZHJlbjogdGV4dFxuXHR9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IExhYmVsIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TGFiZWwubWpzLm1hcCIsIi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9Mb2dvL2ltZy9sb2dvLWJsYWNrLWFuZC13aGl0ZS5zdmdcbnZhciBsb2dvX2JsYWNrX2FuZF93aGl0ZV9kZWZhdWx0ID0gXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNVEF3SWlCb1pXbG5hSFE5SWpFd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJK1BHUmxabk0rUEdacGJIUmxjaUI0UFNJdE1Ua3VPQ1VpSUhrOUlpMHhNUzQzSlNJZ2QybGtkR2c5SWpFek9TNDJKU0lnYUdWcFoyaDBQU0l4TkRBdU5DVWlJR1pwYkhSbGNsVnVhWFJ6UFNKdlltcGxZM1JDYjNWdVpHbHVaMEp2ZUNJZ2FXUTlJbUVpUGp4bVpVOW1abk5sZENCa2VUMGlOQ0lnYVc0OUlsTnZkWEpqWlVGc2NHaGhJaUJ5WlhOMWJIUTlJbk5vWVdSdmQwOW1abk5sZEU5MWRHVnlNU0l2UGp4bVpVZGhkWE56YVdGdVFteDFjaUJ6ZEdSRVpYWnBZWFJwYjI0OUlqSXVOU0lnYVc0OUluTm9ZV1J2ZDA5bVpuTmxkRTkxZEdWeU1TSWdjbVZ6ZFd4MFBTSnphR0ZrYjNkQ2JIVnlUM1YwWlhJeElpOCtQR1psUTI5dGNHOXphWFJsSUdsdVBTSnphR0ZrYjNkQ2JIVnlUM1YwWlhJeElpQnBiakk5SWxOdmRYSmpaVUZzY0doaElpQnZjR1Z5WVhSdmNqMGliM1YwSWlCeVpYTjFiSFE5SW5Ob1lXUnZkMEpzZFhKUGRYUmxjakVpTHo0OFptVkRiMnh2Y2sxaGRISnBlQ0IyWVd4MVpYTTlJakFnTUNBd0lEQWdNQ0F3SURBZ01DQXdJREFnTUNBd0lEQWdNQ0F3SURBZ01DQXdJREF1TURrd05qWTBOakk0TmlBd0lpQnBiajBpYzJoaFpHOTNRbXgxY2s5MWRHVnlNU0l2UGp3dlptbHNkR1Z5UGp4bWFXeDBaWElnZUQwaUxUTXpMamtsSWlCNVBTSXROVEFsSWlCM2FXUjBhRDBpTVRZM0xqa2xJaUJvWldsbmFIUTlJakkzTWk0M0pTSWdabWxzZEdWeVZXNXBkSE05SW05aWFtVmpkRUp2ZFc1a2FXNW5RbTk0SWlCcFpEMGlZeUkrUEdabFQyWm1jMlYwSUdSNVBTSTBJaUJwYmowaVUyOTFjbU5sUVd4d2FHRWlJSEpsYzNWc2REMGljMmhoWkc5M1QyWm1jMlYwVDNWMFpYSXhJaTgrUEdabFIyRjFjM05wWVc1Q2JIVnlJSE4wWkVSbGRtbGhkR2x2YmowaU1pNDFJaUJwYmowaWMyaGhaRzkzVDJabWMyVjBUM1YwWlhJeElpQnlaWE4xYkhROUluTm9ZV1J2ZDBKc2RYSlBkWFJsY2pFaUx6NDhabVZEYjJ4dmNrMWhkSEpwZUNCMllXeDFaWE05SWpBZ01DQXdJREFnTUNBd0lEQWdNQ0F3SURBZ01DQXdJREFnTUNBd0lEQWdNQ0F3SURBdU1Ea3dOalkwTmpJNE5pQXdJaUJwYmowaWMyaGhaRzkzUW14MWNrOTFkR1Z5TVNJdlBqd3ZabWxzZEdWeVBqeHdZWFJvSUdsa1BTSmlJaUJrUFNKTk5EZ2dNVFl1TnpJNVRETXlMalkzTWlBME4yZ3RPQzQ0TnpSTU1DQXdhREUxTGpNeU9Hd3hNaTQ1TURjZ01qVXVORGt5SURRdU5ETTNMVGd1TnpZelNEUTRlaUl2UGp4d1lYUm9JR1E5SWswek5TNHlJREV4U0RJNFZqZ3VOalF6YURndU5Hd3hMakl0TWk0ek5UZElNekpXTXk0NU1qbG9OaTQ0YkM0NExURXVOVGN5U0RNMlZqQm9NakJzTFRVdU5pQXhNVWd6TlM0eWVpSWdhV1E5SW1RaUx6NDhMMlJsWm5NK1BHY2dabWxzYkQwaWJtOXVaU0lnWm1sc2JDMXlkV3hsUFNKbGRtVnViMlJrSWo0OGNtVmpkQ0JtYVd4c1BTSWpNREF3SWlCM2FXUjBhRDBpTVRBd0lpQm9aV2xuYUhROUlqRXdNQ0lnY25nOUlqTTNJaTgrUEdjZ2RISmhibk5tYjNKdFBTSjBjbUZ1YzJ4aGRHVW9NaklnTXpBcElqNDhkWE5sSUdacGJHdzlJaU13TURBaUlHWnBiSFJsY2owaWRYSnNLQ05oS1NJZ2VHeHBibXM2YUhKbFpqMGlJMklpTHo0OGRYTmxJR1pwYkd3dGIzQmhZMmwwZVQwaUxqWWlJR1pwYkd3OUlpTkdSa1lpSUhoc2FXNXJPbWh5WldZOUlpTmlJaTgrUEM5blBqeG5JSFJ5WVc1elptOXliVDBpZEhKaGJuTnNZWFJsS0RJeUlETXdLU0krUEhWelpTQm1hV3hzUFNJak1EQXdJaUJtYVd4MFpYSTlJblZ5YkNnall5a2lJSGhzYVc1ck9taHlaV1k5SWlOa0lpOCtQSFZ6WlNCbWFXeHNQU0lqUmtaR0lpQjRiR2x1YXpwb2NtVm1QU0lqWkNJdlBqd3ZaejQ4Y0dGMGFDQm1hV3hzUFNJalJrWkdJaUJrUFNKTk5UUXVOemcxSURjM1NEUTFMamc0VERJeUlETXdhREUxTGpNNFREVTRJRGN3TGpjeE9Ib2lMejQ4TDJjK1BDOXpkbWMrXCI7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IGxvZ29fYmxhY2tfYW5kX3doaXRlX2RlZmF1bHQgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1sb2dvLWJsYWNrLWFuZC13aGl0ZS5tanMubWFwIiwiLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0xvZ28vaW1nL2xvZ28uc3ZnXG52YXIgbG9nb19kZWZhdWx0ID0gXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNVEF3SWlCb1pXbG5hSFE5SWpFd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJZ2FXUTlJblpsY21SaFkyTnBieUkrUEZScGRHeGxQbFpsY21SaFkyTnBiend2VkdsMGJHVStQR1JsWm5NK1BIQmhkR2dnYVdROUltSWlJR1E5SWswME9DQXhOeTQyVERNeUxqZ2dORGhJTWpSTUxqUXVPR2d4TlM0eWJERXlMamdnTWpVdU5pQTBMalF0T0M0NFNEUTRlaUl2UGp4bWFXeDBaWElnZUQwaUxUSXdKU0lnZVQwaUxURXhMamNsSWlCM2FXUjBhRDBpTVRNNUxqa2xJaUJvWldsbmFIUTlJakUwTUM0ekpTSWdabWxzZEdWeVZXNXBkSE05SW05aWFtVmpkRUp2ZFc1a2FXNW5RbTk0SWlCcFpEMGlZU0krUEdabFQyWm1jMlYwSUdSNVBTSTBJaUJwYmowaVUyOTFjbU5sUVd4d2FHRWlJSEpsYzNWc2REMGljMmhoWkc5M1QyWm1jMlYwVDNWMFpYSXhJaTgrUEdabFIyRjFjM05wWVc1Q2JIVnlJSE4wWkVSbGRtbGhkR2x2YmowaU1pNDFJaUJwYmowaWMyaGhaRzkzVDJabWMyVjBUM1YwWlhJeElpQnlaWE4xYkhROUluTm9ZV1J2ZDBKc2RYSlBkWFJsY2pFaUx6NDhabVZEYjIxd2IzTnBkR1VnYVc0OUluTm9ZV1J2ZDBKc2RYSlBkWFJsY2pFaUlHbHVNajBpVTI5MWNtTmxRV3h3YUdFaUlHOXdaWEpoZEc5eVBTSnZkWFFpSUhKbGMzVnNkRDBpYzJoaFpHOTNRbXgxY2s5MWRHVnlNU0l2UGp4bVpVTnZiRzl5VFdGMGNtbDRJSFpoYkhWbGN6MGlNQ0F3SURBZ01DQXdJREFnTUNBd0lEQWdNQ0F3SURBZ01DQXdJREFnTUNBd0lEQWdNQzR3T1RBMk5qUTJNamcySURBaUlHbHVQU0p6YUdGa2IzZENiSFZ5VDNWMFpYSXhJaTgrUEM5bWFXeDBaWEkrUEhCaGRHZ2dhV1E5SW1RaUlHUTlJazAxTUM0NElERXlTRE0xTGpaTU5ERXVNaTQ0YURFMUxqSk1OVEF1T0NBeE1ub2lMejQ4Wm1sc2RHVnlJSGc5SWkwME5TNDNKU0lnZVQwaUxUUTVMakVsSWlCM2FXUjBhRDBpTVRreExqTWxJaUJvWldsbmFIUTlJakkyT1M0MkpTSWdabWxzZEdWeVZXNXBkSE05SW05aWFtVmpkRUp2ZFc1a2FXNW5RbTk0SWlCcFpEMGlZeUkrUEdabFQyWm1jMlYwSUdSNVBTSTBJaUJwYmowaVUyOTFjbU5sUVd4d2FHRWlJSEpsYzNWc2REMGljMmhoWkc5M1QyWm1jMlYwVDNWMFpYSXhJaTgrUEdabFIyRjFjM05wWVc1Q2JIVnlJSE4wWkVSbGRtbGhkR2x2YmowaU1pNDFJaUJwYmowaWMyaGhaRzkzVDJabWMyVjBUM1YwWlhJeElpQnlaWE4xYkhROUluTm9ZV1J2ZDBKc2RYSlBkWFJsY2pFaUx6NDhabVZEYjIxd2IzTnBkR1VnYVc0OUluTm9ZV1J2ZDBKc2RYSlBkWFJsY2pFaUlHbHVNajBpVTI5MWNtTmxRV3h3YUdFaUlHOXdaWEpoZEc5eVBTSnZkWFFpSUhKbGMzVnNkRDBpYzJoaFpHOTNRbXgxY2s5MWRHVnlNU0l2UGp4bVpVTnZiRzl5VFdGMGNtbDRJSFpoYkhWbGN6MGlNQ0F3SURBZ01DQXdJREFnTUNBd0lEQWdNQ0F3SURBZ01DQXdJREFnTUNBd0lEQWdNQzR3T1RBMk5qUTJNamcySURBaUlHbHVQU0p6YUdGa2IzZENiSFZ5VDNWMFpYSXhJaTgrUEM5bWFXeDBaWEkrUEM5a1pXWnpQanhuSUdacGJHdzlJbTV2Ym1VaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSStQSEpsWTNRZ1ptbHNiRDBpSTBZM1JqaEdOaUlnZDJsa2RHZzlJakV3TUNJZ2FHVnBaMmgwUFNJeE1EQWlJSEo0UFNJek55SXZQanhuSUhSeVlXNXpabTl5YlQwaWRISmhibk5zWVhSbEtESXlJREk1S1NJK1BIVnpaU0JtYVd4c1BTSWpNREF3SWlCbWFXeDBaWEk5SW5WeWJDZ2pZU2tpSUhoc2FXNXJPbWh5WldZOUlpTmlJaTgrUEhCaGRHZ2djM1J5YjJ0bFBTSWpOREExTWpNMklpQnpkSEp2YTJVdGQybGtkR2c5SWpJdU5DSWdaRDBpVFRRMkxqQTFPQ0F4T0M0NFNETXpMalUwTWt3eU9DNDBJREk1TGpBNE15QXhOQzQ0TlRnZ01rZ3lMak0wTW13eU1pNDBJRFEwTGpob055NHpNVFpzTVRRdE1qaDZJaUJ6ZEhKdmEyVXRiR2x1WldwdmFXNDlJbk54ZFdGeVpTSWdabWxzYkQwaUl6UXdOVEl6TmlJdlBqd3ZaejQ4WnlCMGNtRnVjMlp2Y20wOUluUnlZVzV6YkdGMFpTZ3lNaUF5T1NraVBqeDFjMlVnWm1sc2JEMGlJekF3TUNJZ1ptbHNkR1Z5UFNKMWNtd29JMk1wSWlCNGJHbHVhenBvY21WbVBTSWpaQ0l2UGp4d1lYUm9JSE4wY205clpUMGlJME5FTkRBd01DSWdjM1J5YjJ0bExYZHBaSFJvUFNJeUxqUWlJR1E5SWswMU1DNHdOVGdnTVRBdU9HdzBMalF0T0M0NFNEUXhMamswTW13dE5DNDBJRGd1T0dneE1pNDFNVFo2SWlCemRISnZhMlV0YkdsdVpXcHZhVzQ5SW5OeGRXRnlaU0lnWm1sc2JEMGlJME5FTkRBd01DSXZQand2Wno0OGNHRjBhQ0JrUFNKTk5UUXVNRFlnTnpVdU9Hd3lMalUzTlMwMUxqRXhNa3d6Tmk0NE5UY2dNekZJTWpRdU16UXliREl5TGpRZ05EUXVPR2czTGpNeE9Yb2lJSE4wY205clpUMGlJelF3TlRJek5pSWdjM1J5YjJ0bExYZHBaSFJvUFNJeUxqUWlJR1pwYkd3OUlpTTBRVFZGTTBZaUx6NDhjR0YwYUNCa1BTSk5OVGt1TmlBek1XZ3hOUzR5TWpGTk5UVXVOaUF6TldneE5TNHlNakZOTlRFdU5pQXpPUzQ0YURFMUxqSXlNU0lnYzNSeWIydGxQU0lqUTBRME1EQXdJaUJ6ZEhKdmEyVXRkMmxrZEdnOUlqSXVOQ0lnYzNSeWIydGxMV3hwYm1WallYQTlJbk54ZFdGeVpTSXZQand2Wno0OEwzTjJaejRLXCI7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IGxvZ29fZGVmYXVsdCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvZ28ubWpzLm1hcCIsImltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci5tanNcIjtcbmltcG9ydCBsb2dvX2JsYWNrX2FuZF93aGl0ZV9kZWZhdWx0IGZyb20gXCIuL2ltZy9sb2dvLWJsYWNrLWFuZC13aGl0ZS5tanNcIjtcbmltcG9ydCBsb2dvX2RlZmF1bHQgZnJvbSBcIi4vaW1nL2xvZ28ubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9pbmRleC5tanNcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9zdHlsZXNcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9Mb2dvL0xvZ28udHN4XG52YXIgc2l6ZXMgPSB7XG5cdFwieC1zbWFsbFwiOiBcIjMwcHhcIixcblx0c21hbGw6IFwiNDBweFwiLFxuXHRiaWc6IFwiOTBweFwiXG59O1xudmFyIGxvZ29zID0ge1xuXHRsaWdodDogbG9nb19kZWZhdWx0LFxuXHRkYXJrOiBsb2dvX2JsYWNrX2FuZF93aGl0ZV9kZWZhdWx0XG59O1xudmFyIExvZ28gPSAoeyBzaXplLCBvbkNsaWNrLCBjbGFzc05hbWUsIGlzRGVmYXVsdCA9IGZhbHNlLCB0aXRsZSA9IFwiXCIgfSkgPT4ge1xuXHRjb25zdCB7IGNvbmZpZ09wdGlvbnMgfSA9IHVzZUNvbmZpZygpO1xuXHRjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG5cdGlmICghaXNEZWZhdWx0ICYmIGNvbmZpZ09wdGlvbnM/LmxvZ28pIHtcblx0XHRjb25zdCBsb2dvU3JjID0gdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImRhcmtcIiAmJiBjb25maWdPcHRpb25zLmxvZ29EYXJrID8gY29uZmlnT3B0aW9ucy5sb2dvRGFyayA6IGNvbmZpZ09wdGlvbnMubG9nbztcblx0XHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChJbWFnZUxvZ28sIHtcblx0XHRcdGNsYXNzTmFtZSxcblx0XHRcdG9uQ2xpY2ssXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcImltZ1wiLCB7XG5cdFx0XHRcdGFsdDogdGl0bGUsXG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJjdXN0b20tbG9nb1wiLFxuXHRcdFx0XHRoZWlnaHQ6IFwiNDBweFwiLFxuXHRcdFx0XHRzcmM6IGxvZ29TcmNcblx0XHRcdH0pXG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkTG9nbywge1xuXHRcdGNsYXNzTmFtZSxcblx0XHRcImRhdGEtdGVzdGlkXCI6IFwiZGVmYXVsdC1sb2dvXCIsXG5cdFx0b25DbGljayxcblx0XHRzaXplLFxuXHRcdHRpdGxlXG5cdH0pO1xufTtcbnZhciBJbWFnZUxvZ28gPSBzdHlsZWQoXCJkaXZcIikoeyBmb250U2l6ZTogMCB9KTtcbnZhciBTdHlsZWRMb2dvID0gc3R5bGVkKFwiZGl2XCIpKCh7IHNpemUgPSBcInNtYWxsXCIsIHRoZW1lIH0pID0+ICh7XG5cdGRpc3BsYXk6IFwiaW5saW5lLWJsb2NrXCIsXG5cdHZlcnRpY2FsQWxpZ246IFwibWlkZGxlXCIsXG5cdGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG5cdGJhY2tncm91bmRQb3NpdGlvbjogXCJjZW50ZXJcIixcblx0YmFja2dyb3VuZFNpemU6IFwiY29udGFpblwiLFxuXHRiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHtsb2dvc1t0aGVtZS5wYWxldHRlLm1vZGVdfSlgLFxuXHRiYWNrZ3JvdW5kUmVwZWF0OiBcIiBuby1yZXBlYXRcIixcblx0d2lkdGg6IHNpemVzW3NpemVdLFxuXHRoZWlnaHQ6IHNpemVzW3NpemVdXG59KSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IExvZ28gYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Mb2dvLm1qcy5tYXAiLCJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBNYXRlcmlhbFVJTWVudUl0ZW0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTWVudUl0ZW1cIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9NZW51SXRlbS9NZW51SXRlbS50c3hcbnZhciBNZW51SXRlbSA9IGZ1bmN0aW9uIE1lbnVJdGVtKHsgcmVmLCBjb21wb25lbnQgPSBcImxpXCIsIC4uLnByb3BzIH0pIHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkTWF0ZXJpYWxVSU1lbnVJdGVtLCB7XG5cdFx0Y29tcG9uZW50LFxuXHRcdC4uLnByb3BzLFxuXHRcdHJlZlxuXHR9KTtcbn07XG52YXIgU3R5bGVkTWF0ZXJpYWxVSU1lbnVJdGVtID0gc3R5bGVkKE1hdGVyaWFsVUlNZW51SXRlbSkoeyBvdXRsaW5lOiBcIm5vbmVcIiB9KTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgTWVudUl0ZW0gYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1NZW51SXRlbS5tanMubWFwIiwiaW1wb3J0IEhlYWRpbmcgZnJvbSBcIi4uL0hlYWRpbmcvSGVhZGluZy5tanNcIjtcbmltcG9ydCBcIi4uL0hlYWRpbmcvaW5kZXgubWpzXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBCb3ggZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQm94XCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9jb2xvcnNcIjtcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlclwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9CdXR0b25cIjtcbmltcG9ydCBGb2xkZXJPZmZJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0ZvbGRlck9mZlwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL05vdEZvdW5kL05vdEZvdW5kLnRzeFxudmFyIE5vdEZvdW5kID0gKCkgPT4ge1xuXHRjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0Y29uc3QgaGFuZGxlR29Ib21lID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuXHRcdG5hdmlnYXRlKFwiL1wiKTtcblx0fSwgW25hdmlnYXRlXSk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhCb3gsIHtcblx0XHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCI0MDRcIixcblx0XHRkaXNwbGF5OiBcImZsZXhcIixcblx0XHRmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuXHRcdGZsZXhHcm93OiAxLFxuXHRcdGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuXHRcdHA6IDIsXG5cdFx0Y2hpbGRyZW46IFtcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goQ29udGFpbmVyLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEZvbGRlck9mZkljb24sIHtcblx0XHRcdFx0Y29sb3I6IFwicHJpbWFyeVwiLFxuXHRcdFx0XHRzdHlsZTogeyBmb250U2l6ZTogMjM2IH1cblx0XHRcdH0pIH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRIZWFkaW5nLCB7XG5cdFx0XHRcdGNsYXNzTmFtZTogXCJub3QtZm91bmQtdGV4dFwiLFxuXHRcdFx0XHR2YXJpYW50OiBcImg0XCIsXG5cdFx0XHRcdGNoaWxkcmVuOiB0KFwiZXJyb3IuNDA0LnNvcnJ5LXdlLWNvdWxkLW5vdC1maW5kLWl0XCIpXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goQnV0dG9uLCB7XG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJub3QtZm91bmQtZ28tdG8taG9tZS1idXR0b25cIixcblx0XHRcdFx0b25DbGljazogaGFuZGxlR29Ib21lLFxuXHRcdFx0XHR2YXJpYW50OiBcImNvbnRhaW5lZFwiLFxuXHRcdFx0XHRjaGlsZHJlbjogdChcImJ1dHRvbi5nby10by10aGUtaG9tZS1wYWdlXCIpXG5cdFx0XHR9KVxuXHRcdF1cblx0fSk7XG59O1xudmFyIENvbnRhaW5lciA9IHN0eWxlZChcImRpdlwiKSh7IG1hcmdpbjogXCIwIGF1dG9cIiB9KTtcbnZhciBTdHlsZWRIZWFkaW5nID0gc3R5bGVkKEhlYWRpbmcpKCh7IHRoZW1lIH0pID0+ICh7XG5cdGNvbG9yOiB0aGVtZS5wYWxldHRlLm1vZGUgPT09IFwibGlnaHRcIiA/IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluIDogY29tbW9uLndoaXRlLFxuXHRtYXJnaW5Cb3R0b206IDE2XG59KSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IE5vdEZvdW5kIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Tm90Rm91bmQubWpzLm1hcCIsImltcG9ydCBIZWFkaW5nIGZyb20gXCIuLi9IZWFkaW5nL0hlYWRpbmcubWpzXCI7XG5pbXBvcnQgXCIuLi9IZWFkaW5nL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQm94IGZyb20gXCJAbXVpL21hdGVyaWFsL0JveFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHsgY29tbW9uIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvY29sb3JzXCI7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gXCJyZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQnV0dG9uXCI7XG5pbXBvcnQgTG9ja0ljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvTG9ja1wiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0ZvcmJpZGRlbi9Gb3JiaWRkZW4udHN4XG52YXIgQ29udGFpbmVyID0gc3R5bGVkKFwiZGl2XCIpKHsgbWFyZ2luOiBcIjAgYXV0b1wiIH0pO1xudmFyIFN0eWxlZEhlYWRpbmcgPSBzdHlsZWQoSGVhZGluZykoKHsgdGhlbWUgfSkgPT4gKHtcblx0Y29sb3I6IHRoZW1lLnBhbGV0dGUubW9kZSA9PT0gXCJsaWdodFwiID8gdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4gOiBjb21tb24ud2hpdGUsXG5cdG1hcmdpbkJvdHRvbTogMTZcbn0pKTtcbnZhciBGb3JiaWRkZW4gPSAoKSA9PiB7XG5cdGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRjb25zdCBoYW5kbGVHb0hvbWUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG5cdFx0bmF2aWdhdGUoXCIvXCIpO1xuXHR9LCBbbmF2aWdhdGVdKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEJveCwge1xuXHRcdGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG5cdFx0XCJkYXRhLXRlc3RpZFwiOiBcIjQwNFwiLFxuXHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG5cdFx0ZmxleEdyb3c6IDEsXG5cdFx0anVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG5cdFx0cDogMixcblx0XHRjaGlsZHJlbjogW1xuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChDb250YWluZXIsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTG9ja0ljb24sIHtcblx0XHRcdFx0Y29sb3I6IFwicHJpbWFyeVwiLFxuXHRcdFx0XHRzdHlsZTogeyBmb250U2l6ZTogMjM2IH1cblx0XHRcdH0pIH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRIZWFkaW5nLCB7XG5cdFx0XHRcdGNsYXNzTmFtZTogXCJub3QtZm91bmQtdGV4dFwiLFxuXHRcdFx0XHR2YXJpYW50OiBcImg0XCIsXG5cdFx0XHRcdGNoaWxkcmVuOiB0KFwiZXJyb3IuNDAxLnNvcnJ5LW5vLWFjY2Vzc1wiKVxuXHRcdFx0fSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEJ1dHRvbiwge1xuXHRcdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwibm90LWZvdW5kLWdvLXRvLWhvbWUtYnV0dG9uXCIsXG5cdFx0XHRcdG9uQ2xpY2s6IGhhbmRsZUdvSG9tZSxcblx0XHRcdFx0dmFyaWFudDogXCJjb250YWluZWRcIixcblx0XHRcdFx0Y2hpbGRyZW46IHQoXCJidXR0b24uZ28tdG8tdGhlLWhvbWUtcGFnZVwiKVxuXHRcdFx0fSlcblx0XHRdXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRm9yYmlkZGVuIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Rm9yYmlkZGVuLm1qcy5tYXAiLCJpbXBvcnQgSGVhZGluZyBmcm9tIFwiLi4vSGVhZGluZy9IZWFkaW5nLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vaW5kZXgubWpzXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gXCJAbXVpL21hdGVyaWFsL0ljb25CdXR0b25cIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBCb3ggZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQm94XCI7XG5pbXBvcnQgQ2xvc2VJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0Nsb3NlXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9jb2xvcnNcIjtcbmltcG9ydCBBdmF0YXIgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQXZhdGFyXCI7XG5pbXBvcnQgTG9ja091dGxpbmVkIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0xvY2tPdXRsaW5lZFwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0xvZ2luRm9ybS9zdHlsZXMudHN4XG52YXIgTG9naW5Gb3JtSGVhZGVyID0gKHsgb25DbG9zZSB9KSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEJveCwge1xuXHRcdGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG5cdFx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdFx0ZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcblx0XHRwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuXHRcdGNoaWxkcmVuOiBbXG5cdFx0XHRvbkNsb3NlICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkSWNvbkJ1dHRvbiwge1xuXHRcdFx0XHRcImFyaWEtbGFiZWxcIjogdChcImJ1dHRvbi5jbG9zZVwiKSxcblx0XHRcdFx0b25DbGljazogb25DbG9zZSxcblx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ2xvc2VJY29uLCB7fSlcblx0XHRcdH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRBdmF0YXIsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTG9ja091dGxpbmVkLCB7fSkgfSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEhlYWRpbmcsIHsgY2hpbGRyZW46IHQoXCJidXR0b24ubG9naW5cIikgfSlcblx0XHRdXG5cdH0pO1xufTtcbnZhciBTdHlsZWRBdmF0YXIgPSBzdHlsZWQoQXZhdGFyKSgoeyB0aGVtZSB9KSA9PiAoe1xuXHRtYXJnaW46IHRoZW1lLnNwYWNpbmcoMSksXG5cdGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImxpZ2h0XCIgPyB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbiA6IHRoZW1lLnBhbGV0dGUuY3lhbkJsdWUsXG5cdGNvbG9yOiBjb21tb24ud2hpdGVcbn0pKTtcbnZhciBTdHlsZWRJY29uQnV0dG9uID0gc3R5bGVkKEljb25CdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG5cdHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG5cdHJpZ2h0OiB0aGVtZS5zcGFjaW5nKCkgLyAyLFxuXHR0b3A6IHRoZW1lLnNwYWNpbmcoKSAvIDIsXG5cdGNvbG9yOiB0aGVtZS5wYWxldHRlLmdyZXlbNTAwXVxufSkpO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBMb2dpbkZvcm1IZWFkZXIgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMubWpzLm1hcCIsImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvblwiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IENsb3NlSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9DbG9zZVwiO1xuaW1wb3J0IERpYWxvZ1RpdGxlIGZyb20gXCJAbXVpL21hdGVyaWFsL0RpYWxvZ1RpdGxlXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvTG9naW5EaWFsb2cvTG9naW5EaWFsb2dDbG9zZUJ1dHRvbi50c3hcbnZhciBTdHlsZWRJY29uQnV0dG9uID0gc3R5bGVkKEljb25CdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG5cdHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG5cdHJpZ2h0OiB0aGVtZS5zcGFjaW5nKCkgLyAyLFxuXHR0b3A6IHRoZW1lLnNwYWNpbmcoKSAvIDIsXG5cdGNvbG9yOiB0aGVtZS5wYWxldHRlLmdyZXlbNTAwXSxcblx0ekluZGV4OiA5OVxufSkpO1xudmFyIExvZ2luRGlhbG9nQ2xvc2VCdXR0b24gPSAoeyBvbkNsb3NlIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEaWFsb2dUaXRsZSwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRJY29uQnV0dG9uLCB7XG5cdFx0XCJkYXRhLXRlc3RpZFwiOiBcImNsb3NlLWxvZ2luLWRpYWxvZy1idXR0b25cIixcblx0XHRvbkNsaWNrOiBvbkNsb3NlLFxuXHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KENsb3NlSWNvbiwgeyB0aXRsZUFjY2VzczogdChcImJ1dHRvbi5jbG9zZVwiKSB9KVxuXHR9KSB9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IExvZ2luRGlhbG9nQ2xvc2VCdXR0b24gYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Mb2dpbkRpYWxvZ0Nsb3NlQnV0dG9uLm1qcy5tYXAiLCJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IEJveCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Cb3hcIjtcbmltcG9ydCB7IGNvbW1vbiB9IGZyb20gXCJAbXVpL21hdGVyaWFsL2NvbG9yc1wiO1xuaW1wb3J0IEVycm9yIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0Vycm9yXCI7XG5pbXBvcnQgU25hY2tiYXJDb250ZW50IGZyb20gXCJAbXVpL21hdGVyaWFsL1NuYWNrYmFyQ29udGVudFwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0xvZ2luRGlhbG9nL0xvZ2luRGlhbG9nRm9ybUVycm9yLnRzeFxudmFyIFN0eWxlZFNuYWNrYmFyQ29udGVudCA9IHN0eWxlZChTbmFja2JhckNvbnRlbnQpKCh7IHRoZW1lIH0pID0+ICh7XG5cdGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5kYXJrLFxuXHRtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMiksXG5cdGNvbG9yOiBjb21tb24ud2hpdGVcbn0pKTtcbnZhciBTdHlsZWRFcnJvckljb24gPSBzdHlsZWQoRXJyb3IpKCh7IHRoZW1lIH0pID0+ICh7XG5cdGZvbnRTaXplOiAyMCxcblx0b3BhY2l0eTogLjksXG5cdG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjaW5nKDEpXG59KSk7XG52YXIgTG9naW5EaWFsb2dGb3JtRXJyb3IgPSBtZW1vKCh7IGVycm9yIH0pID0+IHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkU25hY2tiYXJDb250ZW50LCB7IG1lc3NhZ2U6IC8qIEBfX1BVUkVfXyAqLyBqc3hzKEJveCwge1xuXHRcdGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG5cdFx0XCJkYXRhLXRlc3RpZFwiOiBcImVycm9yXCIsXG5cdFx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdFx0Y2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KFN0eWxlZEVycm9ySWNvbiwge30pLCBlcnJvci5tZXNzYWdlXVxuXHR9KSB9KTtcbn0pO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBMb2dpbkRpYWxvZ0Zvcm1FcnJvciBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUxvZ2luRGlhbG9nRm9ybUVycm9yLm1qcy5tYXAiLCJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBUZXh0RmllbGQgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVGV4dEZpZWxkXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvTG9naW5Gb3JtL1Bhc3N3b3JkRmllbGQudHN4XG52YXIgU3R5bGVkVGV4dEZpZWxkID0gc3R5bGVkKFRleHRGaWVsZCkoKHsgdGhlbWUgfSkgPT4gKHsgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDIpIH0pKTtcbnZhciBQYXNzd29yZEZpZWxkID0gKHsgcmVnaXN0ZXIsIGVycm9ycyB9KSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkVGV4dEZpZWxkLCB7XG5cdFx0YXV0b0NvbXBsZXRlOiBcImN1cnJlbnQtcGFzc3dvcmRcIixcblx0XHRlcnJvcjogISFlcnJvcnMucGFzc3dvcmQsXG5cdFx0ZnVsbFdpZHRoOiB0cnVlLFxuXHRcdGhlbHBlclRleHQ6IGVycm9ycy5wYXNzd29yZD8ubWVzc2FnZSxcblx0XHRpZDogXCJsb2dpbi0tZGlhbG9nLXBhc3N3b3JkXCIsXG5cdFx0Li4ucmVnaXN0ZXIoXCJwYXNzd29yZFwiLCB7IHJlcXVpcmVkOiB7XG5cdFx0XHR2YWx1ZTogdHJ1ZSxcblx0XHRcdG1lc3NhZ2U6IHQoXCJmb3JtLXZhbGlkYXRpb24ucmVxdWlyZWQtZmllbGRcIilcblx0XHR9IH0pLFxuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCJwYXNzd29yZFwiLFxuXHRcdGxhYmVsOiB0KFwiZm9ybS5wYXNzd29yZFwiKSxcblx0XHRwbGFjZWhvbGRlcjogdChcImZvcm0tcGxhY2Vob2xkZXIucGFzc3dvcmRcIiksXG5cdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0dHlwZTogXCJwYXNzd29yZFwiLFxuXHRcdHZhcmlhbnQ6IFwib3V0bGluZWRcIlxuXHR9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFBhc3N3b3JkRmllbGQgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXNzd29yZEZpZWxkLm1qcy5tYXAiLCJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBUZXh0RmllbGQgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVGV4dEZpZWxkXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvTG9naW5Gb3JtL1VzZXJuYW1lRmllbGQudHN4XG52YXIgU3R5bGVkVGV4dEZpZWxkID0gc3R5bGVkKFRleHRGaWVsZCkoKHsgdGhlbWUgfSkgPT4gKHsgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDIpIH0pKTtcbnZhciBVc2VybmFtZUZpZWxkID0gKHsgcmVnaXN0ZXIsIGVycm9ycyB9KSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkVGV4dEZpZWxkLCB7XG5cdFx0YXV0b0NvbXBsZXRlOiBcInVzZXJuYW1lXCIsXG5cdFx0ZXJyb3I6ICEhZXJyb3JzLnVzZXJuYW1lLFxuXHRcdGZ1bGxXaWR0aDogdHJ1ZSxcblx0XHRoZWxwZXJUZXh0OiBlcnJvcnMudXNlcm5hbWU/Lm1lc3NhZ2UsXG5cdFx0aWQ6IFwibG9naW4tLWRpYWxvZy11c2VybmFtZVwiLFxuXHRcdC4uLnJlZ2lzdGVyKFwidXNlcm5hbWVcIiwgeyByZXF1aXJlZDoge1xuXHRcdFx0dmFsdWU6IHRydWUsXG5cdFx0XHRtZXNzYWdlOiB0KFwiZm9ybS12YWxpZGF0aW9uLnJlcXVpcmVkLWZpZWxkXCIpXG5cdFx0fSB9KSxcblx0XHRsYWJlbDogdChcImZvcm0udXNlcm5hbWVcIiksXG5cdFx0cGxhY2Vob2xkZXI6IHQoXCJmb3JtLXBsYWNlaG9sZGVyLnVzZXJuYW1lXCIpLFxuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdHZhcmlhbnQ6IFwib3V0bGluZWRcIlxuXHR9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFVzZXJuYW1lRmllbGQgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Vc2VybmFtZUZpZWxkLm1qcy5tYXAiLCJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gXCIuLi8uLi91dGlscy9yb3V0ZXMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi91dGlscy9pbmRleC5tanNcIjtcbmltcG9ydCB7IGdldENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbi5tanNcIjtcbmltcG9ydCBMb2dpbkRpYWxvZ0Zvcm1FcnJvciBmcm9tIFwiLi4vTG9naW5EaWFsb2cvTG9naW5EaWFsb2dGb3JtRXJyb3IubWpzXCI7XG5pbXBvcnQgUGFzc3dvcmRGaWVsZCBmcm9tIFwiLi9QYXNzd29yZEZpZWxkLm1qc1wiO1xuaW1wb3J0IFVzZXJuYW1lRmllbGQgZnJvbSBcIi4vVXNlcm5hbWVGaWVsZC5tanNcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IExpbmsgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlua1wiO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVHlwb2dyYXBoeVwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9CdXR0b25cIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9Mb2dpbkZvcm0vTG9naW4udHN4XG52YXIgU3R5bGVkRm9ybSA9IHN0eWxlZChcImZvcm1cIikoKHsgdGhlbWUgfSkgPT4gKHsgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDEpIH0pKTtcbnZhciBTdHlsZWRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoeyBtYXJnaW46IHRoZW1lLnNwYWNpbmcoMywgMCwgMikgfSkpO1xudmFyIExvZ2luRm9ybSA9ICh7IHJlZ2lzdGVyLCBoYW5kbGVTdWJtaXQsIG9uU3VibWl0LCBlcnJvcnMsIGlzVmFsaWQgfSkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdGNvbnN0IGNoYW5nZVBhc3N3b3JkRW5hYmxlZCA9IGdldENvbmZpZ3VyYXRpb24oKT8uZmxhZ3M/LmNoYW5nZVBhc3N3b3JkO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoU3R5bGVkRm9ybSwge1xuXHRcdG5vVmFsaWRhdGU6IHRydWUsXG5cdFx0b25TdWJtaXQ6IGhhbmRsZVN1Ym1pdChvblN1Ym1pdCksXG5cdFx0Y2hpbGRyZW46IFtcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goVXNlcm5hbWVGaWVsZCwge1xuXHRcdFx0XHRlcnJvcnMsXG5cdFx0XHRcdHJlZ2lzdGVyXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goUGFzc3dvcmRGaWVsZCwge1xuXHRcdFx0XHRlcnJvcnMsXG5cdFx0XHRcdHJlZ2lzdGVyXG5cdFx0XHR9KSxcblx0XHRcdGVycm9ycy5yb290ICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goTG9naW5EaWFsb2dGb3JtRXJyb3IsIHsgZXJyb3I6IGVycm9ycy5yb290IH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRCdXR0b24sIHtcblx0XHRcdFx0Y29sb3I6IFwicHJpbWFyeVwiLFxuXHRcdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwibG9naW4tZGlhbG9nLWZvcm0tbG9naW4tYnV0dG9uXCIsXG5cdFx0XHRcdGRpc2FibGVkOiAhaXNWYWxpZCxcblx0XHRcdFx0ZnVsbFdpZHRoOiB0cnVlLFxuXHRcdFx0XHRpZDogXCJsb2dpbi0tZGlhbG9nLWJ1dHRvbi1zdWJtaXRcIixcblx0XHRcdFx0c2l6ZTogXCJsYXJnZVwiLFxuXHRcdFx0XHR0eXBlOiBcInN1Ym1pdFwiLFxuXHRcdFx0XHR2YXJpYW50OiBcImNvbnRhaW5lZFwiLFxuXHRcdFx0XHRjaGlsZHJlbjogdChcImJ1dHRvbi5sb2dpblwiKVxuXHRcdFx0fSksXG5cdFx0XHRjaGFuZ2VQYXNzd29yZEVuYWJsZWQgJiYgLyogQF9fUFVSRV9fICovIGpzeChUeXBvZ3JhcGh5LCB7XG5cdFx0XHRcdGFsaWduOiBcImNlbnRlclwiLFxuXHRcdFx0XHRzeDoge1xuXHRcdFx0XHRcdG10OiAyLFxuXHRcdFx0XHRcdGZvbnRTaXplOiAxMlxuXHRcdFx0XHR9LFxuXHRcdFx0XHR2YXJpYW50OiBcImJvZHkyXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KExpbmssIHtcblx0XHRcdFx0XHRocmVmOiBSb3V0ZS5DSEFOR0VfUEFTU1dPUkQsXG5cdFx0XHRcdFx0c3g6IHsgbWw6IDEgfSxcblx0XHRcdFx0XHRjaGlsZHJlbjogdChcInNlY3VyaXR5LmNoYW5nZVBhc3N3b3JkLnRpdGxlXCIpXG5cdFx0XHRcdH0pXG5cdFx0XHR9KVxuXHRcdF1cblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBMb2dpbkZvcm0gYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Mb2dpbi5tanMubWFwIiwiaW1wb3J0ICogYXMgeXVwIGZyb20gXCJ5dXBcIjtcbnZhciB1c2VybmFtZVNjaGVtYSA9IHl1cC5zdHJpbmcoKS5yZXF1aXJlZCgpLm1pbigyKS5tYXRjaGVzKC9eWy1hLXpBLVowLTlfLiF+KicoKUBdKyQvLCBcInNlY3VyaXR5LmVycm9yLnVzZXJuYW1lLW11c3QtYmUtdXJsLXNhZmVcIik7XG52YXIgcGFzc3dvcmRTY2hlbWEgPSB5dXAuc3RyaW5nKCkucmVxdWlyZWQoKS5taW4oMik7XG52YXIgbG9naW5TY2hlbWEgPSB5dXAub2JqZWN0KHtcblx0dXNlcm5hbWU6IHVzZXJuYW1lU2NoZW1hLFxuXHRwYXNzd29yZDogcGFzc3dvcmRTY2hlbWFcbn0pO1xudmFyIGFkZFVzZXJTY2hlbWEgPSB5dXAub2JqZWN0KHtcblx0dXNlcm5hbWU6IHVzZXJuYW1lU2NoZW1hLFxuXHRwYXNzd29yZDogcGFzc3dvcmRTY2hlbWEsXG5cdGVtYWlsOiB5dXAuc3RyaW5nKCkuZW1haWwoKS5yZXF1aXJlZCgpXG59KTtcbnZhciBjaGFuZ2VQYXNzd29yZFNjaGVtYSA9IHl1cC5vYmplY3Qoe1xuXHR1c2VybmFtZTogdXNlcm5hbWVTY2hlbWEsXG5cdG9sZFBhc3N3b3JkOiBwYXNzd29yZFNjaGVtYSxcblx0bmV3UGFzc3dvcmQ6IHBhc3N3b3JkU2NoZW1hLFxuXHRjb25maXJtUGFzc3dvcmQ6IHl1cC5zdHJpbmcoKS5yZXF1aXJlZCgpLm9uZU9mKFt5dXAucmVmKFwibmV3UGFzc3dvcmRcIildLCBcInNlY3VyaXR5LmVycm9yLnBhc3N3b3JkLW1pc21hdGNoXCIpXG59KTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgYWRkVXNlclNjaGVtYSwgY2hhbmdlUGFzc3dvcmRTY2hlbWEsIGxvZ2luU2NoZW1hIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjaGVtYXMubWpzLm1hcCIsImltcG9ydCB7IHVzZUF1dGggfSBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL0F1dGhQcm92aWRlci9BdXRoUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9wcm92aWRlcnMvQXV0aFByb3ZpZGVyL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgbG9naW5TY2hlbWEgfSBmcm9tIFwiLi4vLi4vdXRpbHMvc2NoZW1hcy5tanNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB5dXBSZXNvbHZlciB9IGZyb20gXCJAaG9va2Zvcm0vcmVzb2x2ZXJzL3l1cFwiO1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gXCJyZWFjdC1ob29rLWZvcm1cIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9Mb2dpbkZvcm0vdXNlTG9naW5Gb3JtLnRzXG5mdW5jdGlvbiB1c2VMb2dpbkZvcm0oeyBvblN1Y2Nlc3MgfSA9IHt9KSB7XG5cdGNvbnN0IHsgaGFuZGxlTG9naW4gfSA9IHVzZUF1dGgoKTtcblx0Y29uc3QgZm9ybSA9IHVzZUZvcm0oe1xuXHRcdG1vZGU6IFwib25DaGFuZ2VcIixcblx0XHRyZXNvbHZlcjogeXVwUmVzb2x2ZXIobG9naW5TY2hlbWEpXG5cdH0pO1xuXHRjb25zdCB7IHNldEVycm9yIH0gPSBmb3JtO1xuXHRjb25zdCBvblN1Ym1pdCA9IHVzZUNhbGxiYWNrKGFzeW5jIChkYXRhKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IGhhbmRsZUxvZ2luPy4oZGF0YSk7XG5cdFx0XHRvblN1Y2Nlc3M/LigpO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0c2V0RXJyb3IoXCJyb290XCIsIHtcblx0XHRcdFx0dHlwZTogXCJzZXJ2ZXJcIixcblx0XHRcdFx0bWVzc2FnZTogXCJJbnZhbGlkIHVzZXJuYW1lIG9yIHBhc3N3b3JkXCJcblx0XHRcdH0pO1xuXHRcdH1cblx0fSwgW1xuXHRcdGhhbmRsZUxvZ2luLFxuXHRcdHNldEVycm9yLFxuXHRcdG9uU3VjY2Vzc1xuXHRdKTtcblx0cmV0dXJuIHtcblx0XHQuLi5mb3JtLFxuXHRcdG9uU3VibWl0XG5cdH07XG59XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IHVzZUxvZ2luRm9ybSB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VMb2dpbkZvcm0ubWpzLm1hcCIsImltcG9ydCBMb2dpbkZvcm0gZnJvbSBcIi4uL0xvZ2luRm9ybS9Mb2dpbi5tanNcIjtcbmltcG9ydCB7IHVzZUxvZ2luRm9ybSB9IGZyb20gXCIuLi9Mb2dpbkZvcm0vdXNlTG9naW5Gb3JtLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0xvZ2luRGlhbG9nL0xvZ2luRGlhbG9nRm9ybS50c3hcbnZhciBMb2dpbkRpYWxvZ0Zvcm0gPSAoKSA9PiB7XG5cdGNvbnN0IHsgcmVnaXN0ZXIsIGhhbmRsZVN1Ym1pdCwgZm9ybVN0YXRlOiB7IGlzVmFsaWQsIGVycm9ycyB9LCBvblN1Ym1pdCB9ID0gdXNlTG9naW5Gb3JtKCk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KExvZ2luRm9ybSwge1xuXHRcdGVycm9ycyxcblx0XHRoYW5kbGVTdWJtaXQsXG5cdFx0aXNWYWxpZCxcblx0XHRvblN1Ym1pdCxcblx0XHRyZWdpc3RlclxuXHR9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IExvZ2luRGlhbG9nRm9ybSBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUxvZ2luRGlhbG9nRm9ybS5tanMubWFwIiwiaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvQXV0aFByb3ZpZGVyL0F1dGhQcm92aWRlci5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3Byb3ZpZGVycy9BdXRoUHJvdmlkZXIvaW5kZXgubWpzXCI7XG5pbXBvcnQgTG9naW5Gb3JtSGVhZGVyIGZyb20gXCIuLi9Mb2dpbkZvcm0vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IExvZ2luRGlhbG9nQ2xvc2VCdXR0b24gZnJvbSBcIi4vTG9naW5EaWFsb2dDbG9zZUJ1dHRvbi5tanNcIjtcbmltcG9ydCBMb2dpbkRpYWxvZ0Zvcm0gZnJvbSBcIi4vTG9naW5EaWFsb2dGb3JtLm1qc1wiO1xuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvRGlhbG9nXCI7XG5pbXBvcnQgRGlhbG9nQ29udGVudCBmcm9tIFwiQG11aS9tYXRlcmlhbC9EaWFsb2dDb250ZW50XCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvTG9naW5EaWFsb2cvTG9naW5EaWFsb2cudHN4XG52YXIgTG9naW5EaWFsb2cgPSAoeyBvbkNsb3NlLCBvcGVuID0gZmFsc2UgfSkgPT4ge1xuXHRjb25zdCB7IHVzZXJTdGF0ZSB9ID0gdXNlQXV0aCgpO1xuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmICh1c2VyU3RhdGU/LnRva2VuKSBvbkNsb3NlKCk7XG5cdH0sIFtvbkNsb3NlLCB1c2VyU3RhdGVdKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKERpYWxvZywge1xuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCJsb2dpbi0tZGlhbG9nXCIsXG5cdFx0ZnVsbFdpZHRoOiB0cnVlLFxuXHRcdG1heFdpZHRoOiBcInNtXCIsXG5cdFx0b25DbG9zZSxcblx0XHRvcGVuLFxuXHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChMb2dpbkRpYWxvZ0Nsb3NlQnV0dG9uLCB7IG9uQ2xvc2UgfSksIC8qIEBfX1BVUkVfXyAqLyBqc3hzKERpYWxvZ0NvbnRlbnQsIHtcblx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJkaWFsb2dDb250ZW50TG9naW5cIixcblx0XHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChMb2dpbkZvcm1IZWFkZXIsIHt9KSwgLyogQF9fUFVSRV9fICovIGpzeChMb2dpbkRpYWxvZ0Zvcm0sIHt9KV1cblx0XHR9KV1cblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBMb2dpbkRpYWxvZyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUxvZ2luRGlhbG9nLm1qcy5tYXAiLCJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9TZWFyY2gvQXV0b0NvbXBsZXRlL3N0eWxlcy50c1xudmFyIFdyYXBwZXIgPSBzdHlsZWQoXCJkaXZcIikoe1xuXHR3aWR0aDogXCIxMDAlXCIsXG5cdHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG5cdHpJbmRleDogMVxufSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFdyYXBwZXIgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGVzLm1qcy5tYXAiLCJpbXBvcnQgeyBXcmFwcGVyIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IEF1dG9jb21wbGV0ZSBmcm9tIFwiQG11aS9tYXRlcmlhbC9BdXRvY29tcGxldGVcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9TZWFyY2gvQXV0b0NvbXBsZXRlL0F1dG9Db21wbGV0ZS50c3hcbnZhciBBdXRvQ29tcGxldGUgPSAoeyBzdWdnZXN0aW9ucyA9IFtdLCBvblN1Z2dlc3Rpb25zRmV0Y2gsIG9uQ2xlYW5TdWdnZXN0aW9ucywgcmVuZGVySW5wdXQsIHJlbmRlck9wdGlvbiwgZ2V0T3B0aW9uTGFiZWwsIG9uU2VsZWN0SXRlbSwgc3VnZ2VzdGlvbnNMb2FkaW5nID0gZmFsc2UgfSkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdGNvbnN0IFtpbnB1dFZhbHVlLCBzZXRJbnB1dFZhbHVlXSA9IHVzZVN0YXRlKFwiXCIpO1xuXHRjb25zdCBoYW5kbGVPbklucHV0Q2hhbmdlID0gKGV2ZW50LCB2YWx1ZSwgcmVhc29uKSA9PiB7XG5cdFx0aWYgKHJlYXNvbiA9PT0gXCJpbnB1dFwiKSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0b25TdWdnZXN0aW9uc0ZldGNoKHsgdmFsdWUgfSk7XG5cdFx0XHRzZXRJbnB1dFZhbHVlKHZhbHVlKTtcblx0XHR9IGVsc2UgaWYgKHJlYXNvbiA9PT0gXCJjbGVhclwiKSB7XG5cdFx0XHRvbkNsZWFuU3VnZ2VzdGlvbnMoZXZlbnQpO1xuXHRcdFx0c2V0SW5wdXRWYWx1ZShcIlwiKTtcblx0XHR9XG5cdH07XG5cdGNvbnN0IGhhbmRsZU9uQ2xvc2UgPSAoZXZlbnQpID0+IHtcblx0XHRvbkNsZWFuU3VnZ2VzdGlvbnMoZXZlbnQpO1xuXHRcdHNldElucHV0VmFsdWUoXCJcIik7XG5cdH07XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFdyYXBwZXIsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQXV0b2NvbXBsZXRlLCB7XG5cdFx0Y2xlYXJPbkJsdXI6IHRydWUsXG5cdFx0ZGlzYWJsZVBvcnRhbDogdHJ1ZSxcblx0XHRmaWx0ZXJPcHRpb25zOiAob3B0aW9ucywgc3RhdGUpID0+IHN0YXRlLmlucHV0VmFsdWUudHJpbSgpID8gb3B0aW9ucyA6IFtdLFxuXHRcdGZ1bGxXaWR0aDogdHJ1ZSxcblx0XHRnZXRPcHRpb25MYWJlbCxcblx0XHRpZDogXCJzZWFyY2gtaGVhZGVyLXN1Z2dlc3RcIixcblx0XHRpbnB1dFZhbHVlLFxuXHRcdGxvYWRpbmc6IHN1Z2dlc3Rpb25zTG9hZGluZyxcblx0XHRsb2FkaW5nVGV4dDogdChcImF1dG9Db21wbGV0ZS5sb2FkaW5nXCIpLFxuXHRcdG5vT3B0aW9uc1RleHQ6IHQoXCJhdXRvQ29tcGxldGUubm8tcmVzdWx0cy1mb3VuZFwiKSxcblx0XHRvbkNoYW5nZTogb25TZWxlY3RJdGVtLFxuXHRcdG9uQ2xvc2U6IGhhbmRsZU9uQ2xvc2UsXG5cdFx0b25JbnB1dENoYW5nZTogaGFuZGxlT25JbnB1dENoYW5nZSxcblx0XHRvcHRpb25zOiBzdWdnZXN0aW9ucyxcblx0XHRyZW5kZXJJbnB1dCxcblx0XHRyZW5kZXJPcHRpb24sXG5cdFx0cmVuZGVyVGFnczogKCkgPT4gbnVsbFxuXHR9KSB9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IEF1dG9Db21wbGV0ZSBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUF1dG9Db21wbGV0ZS5tanMubWFwIiwiLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL1NlYXJjaC91dGlscy50c1xuZnVuY3Rpb24gcmVtb3ZlSHRtbFRhZ3MoaW5wdXQpIHtcblx0bGV0IHByZXZpb3VzO1xuXHRkbyB7XG5cdFx0cHJldmlvdXMgPSBpbnB1dDtcblx0XHRpbnB1dCA9IGlucHV0LnJlcGxhY2UoLzxbXj5dKj4/L2dtLCBcIlwiKTtcblx0fSB3aGlsZSAoaW5wdXQgIT09IHByZXZpb3VzKTtcblx0cmV0dXJuIGlucHV0O1xufVxuZnVuY3Rpb24gY2xlYW5EZXNjcmlwdGlvbihkZXNjcmlwdGlvbikge1xuXHRsZXQgb3V0cHV0ID0gZGVzY3JpcHRpb247XG5cdG91dHB1dCA9IHJlbW92ZUh0bWxUYWdzKG91dHB1dCk7XG5cdG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXCguKj9cXCkvZ20sIFwiXCIpLnJlcGxhY2UoLyhcXFshP3xcXF0pL2dtLCBcIlwiKTtcblx0cmV0dXJuIG91dHB1dDtcbn1cbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgY2xlYW5EZXNjcmlwdGlvbiB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFwIiwiaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9BcHBDb25maWd1cmF0aW9uUHJvdmlkZXIvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IHsgY2xlYW5EZXNjcmlwdGlvbiB9IGZyb20gXCIuL3V0aWxzLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vaW5kZXgubWpzXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBTdGFjayBmcm9tIFwiQG11aS9tYXRlcmlhbC9TdGFja1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IENoaXAgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQ2hpcFwiO1xuaW1wb3J0IENhY2hlZCBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9DYWNoZWRcIjtcbmltcG9ydCBIdHRwc0ljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvSHR0cHNcIjtcbmltcG9ydCBTeW5jQWx0IGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL1N5bmNBbHRcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9TZWFyY2gvU2VhcmNoSXRlbS50c3hcbnZhciBXcmFwcGVyID0gc3R5bGVkLmRpdih7XG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHR3aWR0aDogXCIxMDAlXCJcbn0pO1xudmFyIERlc2NyaXB0aW9uID0gc3R5bGVkKFwiZGl2XCIpKCh7IHRoZW1lIH0pID0+ICh7XG5cdGRpc3BsYXk6IFwibm9uZVwiLFxuXHRjb2xvcjogdGhlbWUucGFsZXR0ZS5ncmV5TGlnaHQyLFxuXHRsaW5lSGVpZ2h0OiBcIjEuNXJlbVwiLFxuXHR3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuXHR0ZXh0T3ZlcmZsb3c6IFwiZWxsaXBzaXNcIixcblx0YWxpZ25JdGVtczogXCJjZW50ZXJcIixcblx0b3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cdHBhZGRpbmdMZWZ0OiB0aGVtZS5zcGFjaW5nKCksXG5cdGZvbnRTaXplOiB0aGVtZS5mb250U2l6ZS5zc20sXG5cdFtgQG1lZGlhIChtaW4td2lkdGg6ICR7dGhlbWUuYnJlYWtQb2ludHMubWVkaXVtfXB4KWBdOiB7XG5cdFx0ZGlzcGxheTogXCJibG9ja1wiLFxuXHRcdHdpZHRoOiBcIjMwMHB4XCJcblx0fSxcblx0W2BAbWVkaWEgKG1pbi13aWR0aDogJHt0aGVtZS5icmVha1BvaW50cy5sYXJnZX1weClgXToge1xuXHRcdGRpc3BsYXk6IFwiYmxvY2tcIixcblx0XHR3aWR0aDogXCI1MDBweFwiXG5cdH0sXG5cdFtgQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweClgXToge1xuXHRcdGRpc3BsYXk6IFwiYmxvY2tcIixcblx0XHR3aWR0aDogXCI2MDBweFwiXG5cdH1cbn0pKTtcbnZhciBOYW1lR3JvdXAgPSBzdHlsZWQuc3Bhbih7XG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRmbGV4OiBcIjFcIlxufSk7XG52YXIgTmFtZSA9IHN0eWxlZChcInNwYW5cIikoKHsgdGhlbWUgfSkgPT4gKHtcblx0Zm9udFdlaWdodDogXCI3MDBcIixcblx0Zm9udFNpemU6IHRoZW1lLmZvbnRTaXplLnNtXG59KSk7XG52YXIgVmVyc2lvbiA9IHN0eWxlZChcInNwYW5cIikoKHsgdGhlbWUgfSkgPT4gKHsgZm9udFNpemU6IHRoZW1lLmZvbnRTaXplLnNzbSB9KSk7XG52YXIgU2VhcmNoSXRlbSA9ICh7IG5hbWUsIGRlc2NyaXB0aW9uLCBpc1ByaXZhdGUgPSBmYWxzZSwgaXNSZW1vdGUgPSBmYWxzZSwgaXNDYWNoZWQgPSBmYWxzZSwgdmVyc2lvbiwgLi4ucHJvcHMgfSkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdGNvbnN0IHsgY29uZmlnT3B0aW9ucyB9ID0gdXNlQ29uZmlnKCk7XG5cdGNvbnN0IGhhbmRsZURlbGV0ZSA9ICgpID0+IHt9O1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJsaVwiLCB7XG5cdFx0Li4ucHJvcHMsXG5cdFx0c3R5bGU6IHsgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIiB9LFxuXHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeHMoV3JhcHBlciwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3hzKE5hbWVHcm91cCwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goTmFtZSwgeyBjaGlsZHJlbjogbmFtZSB9KSwgZGVzY3JpcHRpb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChEZXNjcmlwdGlvbiwgeyBjaGlsZHJlbjogY2xlYW5EZXNjcmlwdGlvbihkZXNjcmlwdGlvbikgfSldIH0pLCB2ZXJzaW9uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goVmVyc2lvbiwgeyBjaGlsZHJlbjogdmVyc2lvbiB9KV0gfSksIGNvbmZpZ09wdGlvbnM/LnNob3dVcGxpbmtzICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goV3JhcHBlciwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoU3RhY2ssIHtcblx0XHRcdGRpcmVjdGlvbjogXCJyb3dcIixcblx0XHRcdHNwYWNpbmc6IDEsXG5cdFx0XHRjaGlsZHJlbjogW1xuXHRcdFx0XHRpc1ByaXZhdGUgJiYgLyogQF9fUFVSRV9fICovIGpzeChDaGlwLCB7XG5cdFx0XHRcdFx0Y29sb3I6IFwicHJpbWFyeVwiLFxuXHRcdFx0XHRcdGRlbGV0ZUljb246IC8qIEBfX1BVUkVfXyAqLyBqc3goSHR0cHNJY29uLCB7fSksXG5cdFx0XHRcdFx0bGFiZWw6IHQoXCJzZWFyY2guaXNQcml2YXRlXCIpLFxuXHRcdFx0XHRcdG9uRGVsZXRlOiBoYW5kbGVEZWxldGUsXG5cdFx0XHRcdFx0c2l6ZTogXCJzbWFsbFwiXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRpc1JlbW90ZSAmJiAhaXNQcml2YXRlICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goQ2hpcCwge1xuXHRcdFx0XHRcdGRlbGV0ZUljb246IC8qIEBfX1BVUkVfXyAqLyBqc3goU3luY0FsdCwge30pLFxuXHRcdFx0XHRcdGxhYmVsOiB0KFwic2VhcmNoLmlzUmVtb3RlXCIpLFxuXHRcdFx0XHRcdG9uRGVsZXRlOiBoYW5kbGVEZWxldGUsXG5cdFx0XHRcdFx0c2l6ZTogXCJzbWFsbFwiLFxuXHRcdFx0XHRcdHZhcmlhbnQ6IFwib3V0bGluZWRcIlxuXHRcdFx0XHR9KSxcblx0XHRcdFx0aXNDYWNoZWQgJiYgLyogQF9fUFVSRV9fICovIGpzeChDaGlwLCB7XG5cdFx0XHRcdFx0ZGVsZXRlSWNvbjogLyogQF9fUFVSRV9fICovIGpzeChDYWNoZWQsIHt9KSxcblx0XHRcdFx0XHRsYWJlbDogdChcInNlYXJjaC5pc0NhY2hlZFwiKSxcblx0XHRcdFx0XHRvbkRlbGV0ZTogaGFuZGxlRGVsZXRlLFxuXHRcdFx0XHRcdHNpemU6IFwic21hbGxcIixcblx0XHRcdFx0XHR2YXJpYW50OiBcIm91dGxpbmVkXCJcblx0XHRcdFx0fSlcblx0XHRcdF1cblx0XHR9KSB9KV1cblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBTZWFyY2hJdGVtIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VhcmNoSXRlbS5tanMubWFwIiwiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9jb2xvcnNcIjtcbmltcG9ydCB7IFRleHRGaWVsZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgSW5wdXRBZG9ybm1lbnQgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvSW5wdXRBZG9ybm1lbnRcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9TZWFyY2gvc3R5bGVzLnRzXG52YXIgU3R5bGVkVGV4dEZpZWxkID0gc3R5bGVkKFRleHRGaWVsZCkoKHByb3BzKSA9PiAoe1xuXHRcIiYgLk11aUlucHV0QmFzZS1yb290XCI6IHtcblx0XHRcIjpiZWZvcmVcIjoge1xuXHRcdFx0Y29udGVudDogXCInJ1wiLFxuXHRcdFx0Ym9yZGVyOiBcIm5vbmVcIlxuXHRcdH0sXG5cdFx0XCI6YWZ0ZXJcIjogeyBib3JkZXJDb2xvcjogY29tbW9uLndoaXRlIH0sXG5cdFx0XCI6aG92ZXI6YmVmb3JlXCI6IHsgY29udGVudDogXCJub25lXCIgfSxcblx0XHRcIjpob3ZlcjphZnRlclwiOiB7XG5cdFx0XHRjb250ZW50OiBcIm5vbmVcIixcblx0XHRcdHRyYW5zZm9ybTogXCJzY2FsZVgoMSlcIlxuXHRcdH0sXG5cdFx0W2BAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAke3Byb3BzLnRoZW1lLmJyZWFrUG9pbnRzLm1lZGl1bX1weClgXTogeyBcIjpob3ZlcjphZnRlclwiOiB7IGNvbnRlbnQ6IFwiJydcIiB9IH1cblx0fSxcblx0XCImIC5NdWlJbnB1dEJhc2UtaW5wdXRcIjogeyBbYEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR7cHJvcHMudGhlbWUuYnJlYWtQb2ludHMubWVkaXVtfXB4KWBdOiB7IGNvbG9yOiBjb21tb24ud2hpdGUgfSB9XG59KSk7XG52YXIgU3R5bGVkSW5wdXRBZG9ybm1lbnQgPSBzdHlsZWQoSW5wdXRBZG9ybm1lbnQpKCgpID0+ICh7IGNvbG9yOiBjb21tb24ud2hpdGUgfSkpO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBTdHlsZWRJbnB1dEFkb3JubWVudCwgU3R5bGVkVGV4dEZpZWxkIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5tanMubWFwIiwiaW1wb3J0IHsgUm91dGUgYXMgUm91dGUkMSB9IGZyb20gXCIuLi8uLi91dGlscy9yb3V0ZXMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi91dGlscy9pbmRleC5tanNcIjtcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci5tanNcIjtcbmltcG9ydCB7IHVzZVNlYXJjaCB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvU2VhcmNoUHJvdmlkZXIvU2VhcmNoUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgQXV0b0NvbXBsZXRlIGZyb20gXCIuL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGUubWpzXCI7XG5pbXBvcnQgXCIuL0F1dG9Db21wbGV0ZS9pbmRleC5tanNcIjtcbmltcG9ydCBTZWFyY2hJdGVtIGZyb20gXCIuL1NlYXJjaEl0ZW0ubWpzXCI7XG5pbXBvcnQgeyBTdHlsZWRJbnB1dEFkb3JubWVudCwgU3R5bGVkVGV4dEZpZWxkIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vaW5kZXgubWpzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyXCI7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSBcImxvZGFzaC9kZWJvdW5jZVwiO1xuaW1wb3J0IFNlYXJjaE11aSBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9TZWFyY2gvU2VhcmNoLnRzeFxudmFyIENPTlNUQU5UUyA9IHtcblx0QVBJX0RFTEFZOiAzMDAsXG5cdEFCT1JUX0VSUk9SOiBcIkFib3J0RXJyb3JcIlxufTtcbnZhciBTZWFyY2ggPSAoKSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0Y29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXHRjb25zdCB7IHNlYXJjaFJlc3VsdHMsIGlzTG9hZGluZywgZG9TZWFyY2ggfSA9IHVzZVNlYXJjaCgpO1xuXHRjb25zdCB7IGNvbmZpZ09wdGlvbnM6IHsgZmxhZ3MgfSB9ID0gdXNlQ29uZmlnKCk7XG5cdGNvbnN0IHNlYXJjaFJlbW90ZSA9IGZsYWdzPy5zZWFyY2hSZW1vdGUgPz8gZmFsc2U7XG5cdGNvbnN0IGFib3J0Q29udHJvbGxlclJlZiA9IHVzZVJlZihudWxsKTtcblx0Y29uc3QgY2FuY2VsQWxsU2VhcmNoUmVxdWVzdHMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG5cdFx0aWYgKGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50KSB7XG5cdFx0XHRhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudC5hYm9ydCgpO1xuXHRcdFx0YWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBudWxsO1xuXHRcdH1cblx0fSwgW10pO1xuXHRjb25zdCBoYW5kbGVPbkJsdXIgPSB1c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRjYW5jZWxBbGxTZWFyY2hSZXF1ZXN0cygpO1xuXHR9LCBbY2FuY2VsQWxsU2VhcmNoUmVxdWVzdHNdKTtcblx0Y29uc3QgaGFuZGxlQ2xpY2tTZWFyY2ggPSB1c2VDYWxsYmFjaygoZXZlbnQsIHZhbHVlLCByZWFzb24pID0+IHtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRpZiAocmVhc29uID09PSBcInNlbGVjdE9wdGlvblwiKSB7XG5cdFx0XHRjb25zdCBwa2dOYW1lID0gdmFsdWVbXCJwYWNrYWdlXCJdPy5uYW1lID8/IHZhbHVlLm5hbWU7XG5cdFx0XHRuYXZpZ2F0ZShgJHtSb3V0ZSQxLkRFVEFJTH0ke3BrZ05hbWV9YCk7XG5cdFx0fVxuXHR9LCBbbmF2aWdhdGUsIHNlYXJjaFJlbW90ZV0pO1xuXHRjb25zdCBkb1NlYXJjaFJlZiA9IHVzZVJlZihkb1NlYXJjaCk7XG5cdGRvU2VhcmNoUmVmLmN1cnJlbnQgPSBkb1NlYXJjaDtcblx0LyoqXG5cdCogU3RhYmxlIGZldGNoIGZ1bmN0aW9uIHRoYXQgcmVhZHMgdGhlIGxhdGVzdCBkb1NlYXJjaCBmcm9tIGEgcmVmLFxuXHQqIGF2b2lkaW5nIGRlcGVuZGVuY3kgY2hhbmdlcyB0aGF0IHdvdWxkIGJyZWFrIHRoZSBkZWJvdW5jZS5cblx0Ki9cblx0Y29uc3QgaGFuZGxlRmV0Y2hQYWNrYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICh7IHZhbHVlIH0pID0+IHtcblx0XHRpZiAodmFsdWU/LnRyaW0oKSAhPT0gXCJcIikge1xuXHRcdFx0Y2FuY2VsQWxsU2VhcmNoUmVxdWVzdHMoKTtcblx0XHRcdGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cdFx0XHRhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudCA9IGNvbnRyb2xsZXI7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBkb1NlYXJjaFJlZi5jdXJyZW50Py4oe1xuXHRcdFx0XHRcdHRleHQ6IHZhbHVlLFxuXHRcdFx0XHRcdHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcblx0XHRcdFx0fSk7XG5cdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdFx0aWYgKGVyci5uYW1lID09PSBDT05TVEFOVFMuQUJPUlRfRVJST1IpIGNvbnNvbGUud2FybihcIlNlYXJjaCByZXF1ZXN0IGFib3J0ZWRcIik7XG5cdFx0XHRcdGVsc2UgY29uc29sZS5lcnJvcihcIlNlYXJjaCBlcnJvcjpcIiwgZXJyKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sIFtjYW5jZWxBbGxTZWFyY2hSZXF1ZXN0c10pO1xuXHRjb25zdCBkZWJvdW5jZWRGZXRjaCA9IHVzZU1lbW8oKCkgPT4gZGVib3VuY2UoaGFuZGxlRmV0Y2hQYWNrYWdlcywgQ09OU1RBTlRTLkFQSV9ERUxBWSksIFtoYW5kbGVGZXRjaFBhY2thZ2VzXSk7XG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdGRlYm91bmNlZEZldGNoLmNhbmNlbD8uKCk7XG5cdFx0XHRjYW5jZWxBbGxTZWFyY2hSZXF1ZXN0cygpO1xuXHRcdH07XG5cdH0sIFtkZWJvdW5jZWRGZXRjaCwgY2FuY2VsQWxsU2VhcmNoUmVxdWVzdHNdKTtcblx0Y29uc3QgcmVuZGVyT3B0aW9uID0gKHByb3BzLCBvcHRpb24pID0+IHtcblx0XHRjb25zdCB7IGtleSwgLi4ub3RoZXJQcm9wcyB9ID0gcHJvcHM7XG5cdFx0aWYgKHNlYXJjaFJlbW90ZSkge1xuXHRcdFx0Y29uc3QgaXRlbSA9IG9wdGlvbi5wYWNrYWdlO1xuXHRcdFx0Y29uc3QgaXNQcml2YXRlID0gb3B0aW9uPy52ZXJkYWNjaW9Qcml2YXRlO1xuXHRcdFx0Y29uc3QgaXNDYWNoZWQgPSBvcHRpb24/LnZlcmRhY2Npb1BrZ0NhY2hlZDtcblx0XHRcdGNvbnN0IGlzUmVtb3RlID0gIWlzQ2FjaGVkICYmICFpc1ByaXZhdGU7XG5cdFx0XHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTZWFyY2hJdGVtLCB7XG5cdFx0XHRcdC4uLm90aGVyUHJvcHMsXG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBpdGVtPy5kZXNjcmlwdGlvbixcblx0XHRcdFx0aXNDYWNoZWQsXG5cdFx0XHRcdGlzUHJpdmF0ZSxcblx0XHRcdFx0aXNSZW1vdGUsXG5cdFx0XHRcdG5hbWU6IGl0ZW0/Lm5hbWUsXG5cdFx0XHRcdHZlcnNpb246IGl0ZW0/LnZlcnNpb25cblx0XHRcdH0sIGtleSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGl0ZW0gPSBvcHRpb24ucGFja2FnZTtcblx0XHRcdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNlYXJjaEl0ZW0sIHtcblx0XHRcdFx0Li4ub3RoZXJQcm9wcyxcblx0XHRcdFx0ZGVzY3JpcHRpb246IGl0ZW0/LmRlc2NyaXB0aW9uLFxuXHRcdFx0XHRuYW1lOiBpdGVtPy5uYW1lLFxuXHRcdFx0XHR2ZXJzaW9uOiBpdGVtPy52ZXJzaW9uXG5cdFx0XHR9LCBrZXkpO1xuXHRcdH1cblx0fTtcblx0Y29uc3QgcmVuZGVySW5wdXQgPSAocGFyYW1zKSA9PiB7XG5cdFx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkVGV4dEZpZWxkLCB7XG5cdFx0XHQuLi5wYXJhbXMsXG5cdFx0XHRJbnB1dFByb3BzOiB7XG5cdFx0XHRcdC4uLnBhcmFtcy5JbnB1dFByb3BzLFxuXHRcdFx0XHRzdGFydEFkb3JubWVudDogLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRJbnB1dEFkb3JubWVudCwge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBcInN0YXJ0XCIsXG5cdFx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goU2VhcmNoTXVpLCB7fSlcblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRsYWJlbDogXCJcIixcblx0XHRcdHBsYWNlaG9sZGVyOiB0KFwic2VhcmNoLnBhY2thZ2VzXCIpLFxuXHRcdFx0dmFyaWFudDogXCJzdGFuZGFyZFwiXG5cdFx0fSk7XG5cdH07XG5cdGNvbnN0IGdldE9wdGlvbkxhYmVsID0gKG9wdGlvbikgPT4ge1xuXHRcdHJldHVybiBvcHRpb24/LnBhY2thZ2U/Lm5hbWU7XG5cdH07XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEF1dG9Db21wbGV0ZSwge1xuXHRcdGdldE9wdGlvbkxhYmVsLFxuXHRcdG9uQ2xlYW5TdWdnZXN0aW9uczogaGFuZGxlT25CbHVyLFxuXHRcdG9uU2VsZWN0SXRlbTogaGFuZGxlQ2xpY2tTZWFyY2gsXG5cdFx0b25TdWdnZXN0aW9uc0ZldGNoOiBkZWJvdW5jZWRGZXRjaCxcblx0XHRwbGFjZWhvbGRlcjogdChcInNlYXJjaC5wYWNrYWdlc1wiKSxcblx0XHRyZW5kZXJJbnB1dCxcblx0XHRyZW5kZXJPcHRpb24sXG5cdFx0c3VnZ2VzdGlvbnM6IHNlYXJjaFJlc3VsdHMsXG5cdFx0c3VnZ2VzdGlvbnNMb2FkaW5nOiBpc0xvYWRpbmdcblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBTZWFyY2ggYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TZWFyY2gubWpzLm1hcCIsImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IERpYWxvZ0NvbnRlbnQgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvRGlhbG9nQ29udGVudFwiO1xuaW1wb3J0IERpYWxvZ1RpdGxlIGZyb20gXCJAbXVpL21hdGVyaWFsL0RpYWxvZ1RpdGxlXCI7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9jb2xvcnNcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9SZWdpc3RyeUluZm9EaWFsb2cvc3R5bGVzLnRzXG52YXIgVGl0bGUgPSBzdHlsZWQoRGlhbG9nVGl0bGUpKCh7IHRoZW1lIH0pID0+ICh7XG5cdGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImxpZ2h0XCIgPyB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbiA6IHRoZW1lLnBhbGV0dGUuY3lhbkJsdWUsXG5cdGNvbG9yOiBjb21tb24ud2hpdGUsXG5cdGZvbnRTaXplOiB0aGVtZS5mb250U2l6ZS5sZ1xufSkpO1xudmFyIENvbnRlbnQgPSBzdHlsZWQoRGlhbG9nQ29udGVudCkoKHsgdGhlbWUgfSkgPT4gKHtcblx0cGFkZGluZzogXCIwIDI0cHhcIixcblx0YmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQuZGVmYXVsdFxufSkpO1xuc3R5bGVkKFwiZGl2XCIpKCh7IHRoZW1lIH0pID0+ICh7XG5cdHBhZGRpbmc6IFwiMTBweCAyNHB4XCIsXG5cdGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kLmRlZmF1bHRcbn0pKTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgQ29udGVudCwgVGl0bGUgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGVzLm1qcy5tYXAiLCJpbXBvcnQgeyBDb250ZW50LCBUaXRsZSB9IGZyb20gXCIuL3N0eWxlcy5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvRGlhbG9nXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJAbXVpL21hdGVyaWFsL0J1dHRvblwiO1xuaW1wb3J0IERpYWxvZ0FjdGlvbnMgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvRGlhbG9nQWN0aW9uc1wiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL1JlZ2lzdHJ5SW5mb0RpYWxvZy9SZWdpc3RyeUluZm9EaWFsb2cudHN4XG52YXIgUmVnaXN0cnlJbmZvRGlhbG9nID0gKHsgb3BlbiA9IGZhbHNlLCBjaGlsZHJlbiwgb25DbG9zZSwgdGl0bGUgPSBcIlwiIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRGlhbG9nLCB7XG5cdFx0XCJkYXRhLXRlc3RpZFwiOiBcInJlZ2lzdHJ5SW5mby0tZGlhbG9nXCIsXG5cdFx0aWQ6IFwicmVnaXN0cnlJbmZvLS1kaWFsb2ctY29udGFpbmVyXCIsXG5cdFx0bWF4V2lkdGg6IFwic21cIixcblx0XHRvbkNsb3NlLFxuXHRcdG9wZW4sXG5cdFx0Y2hpbGRyZW46IFtcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goVGl0bGUsIHsgY2hpbGRyZW46IHRpdGxlIH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChDb250ZW50LCB7IGNoaWxkcmVuIH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChEaWFsb2dBY3Rpb25zLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEJ1dHRvbiwge1xuXHRcdFx0XHRjb2xvcjogXCJpbmhlcml0XCIsXG5cdFx0XHRcdGlkOiBcInJlZ2lzdHJ5SW5mby0tZGlhbG9nLWNsb3NlXCIsXG5cdFx0XHRcdG9uQ2xpY2s6IG9uQ2xvc2UsXG5cdFx0XHRcdGNoaWxkcmVuOiB0KFwiYnV0dG9uLmNsb3NlXCIpXG5cdFx0XHR9KSB9KVxuXHRcdF1cblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBSZWdpc3RyeUluZm9EaWFsb2cgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1SZWdpc3RyeUluZm9EaWFsb2cubWpzLm1hcCIsImltcG9ydCBSZWdpc3RyeUluZm9EaWFsb2cgZnJvbSBcIi4uL1JlZ2lzdHJ5SW5mb0RpYWxvZy9SZWdpc3RyeUluZm9EaWFsb2cubWpzXCI7XG5pbXBvcnQgXCIuLi9SZWdpc3RyeUluZm9EaWFsb2cvaW5kZXgubWpzXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBCb3ggZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQm94XCI7XG5pbXBvcnQgVGFiIGZyb20gXCJAbXVpL21hdGVyaWFsL1RhYlwiO1xuaW1wb3J0IFRhYnMgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVGFic1wiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0hlYWRlckluZm9EaWFsb2cvSGVhZGVySW5mb0RpYWxvZy50c3hcbmZ1bmN0aW9uIGExMXlQcm9wcyhpbmRleCkge1xuXHRyZXR1cm4ge1xuXHRcdGlkOiBgc2ltcGxlLXRhYi0ke2luZGV4fWAsXG5cdFx0XCJhcmlhLWNvbnRyb2xzXCI6IGBzaW1wbGUtdGFicGFuZWwtJHtpbmRleH1gXG5cdH07XG59XG5mdW5jdGlvbiBUYWJQYW5lbChwcm9wcykge1xuXHRjb25zdCB7IGNoaWxkcmVuLCB2YWx1ZSwgaW5kZXgsIC4uLm90aGVyIH0gPSBwcm9wcztcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwge1xuXHRcdFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGBzaW1wbGUtdGFiLSR7aW5kZXh9YCxcblx0XHRoaWRkZW46IHZhbHVlICE9PSBpbmRleCxcblx0XHRpZDogYHNpbXBsZS10YWJwYW5lbC0ke2luZGV4fWAsXG5cdFx0cm9sZTogXCJ0YWJwYW5lbFwiLFxuXHRcdC4uLm90aGVyLFxuXHRcdGNoaWxkcmVuOiB2YWx1ZSA9PT0gaW5kZXggJiYgLyogQF9fUFVSRV9fICovIGpzeChCb3gsIHtcblx0XHRcdHN4OiB7IHBhZGRpbmdUb3A6IDMgfSxcblx0XHRcdGNoaWxkcmVuXG5cdFx0fSlcblx0fSk7XG59XG52YXIgSGVhZGVySW5mb0RpYWxvZyA9ICh7IG9uQ2xvc2VEaWFsb2csIGlzT3BlbiwgdGFicyA9IG51bGwsIHRhYlBhbmVscyA9IG51bGwsIGRpYWxvZ1RpdGxlIH0pID0+IHtcblx0Y29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcblx0Y29uc3QgaGFuZGxlQ2hhbmdlID0gKF9ldmVudCwgbmV3VmFsdWUpID0+IHtcblx0XHRzZXRWYWx1ZShuZXdWYWx1ZSk7XG5cdH07XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFJlZ2lzdHJ5SW5mb0RpYWxvZywge1xuXHRcdG9uQ2xvc2U6IG9uQ2xvc2VEaWFsb2csXG5cdFx0b3BlbjogaXNPcGVuLFxuXHRcdHRpdGxlOiBkaWFsb2dUaXRsZSxcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoQm94LCB7XG5cdFx0XHRzeDogeyB3aWR0aDogXCIxMDAlXCIgfSxcblx0XHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChCb3gsIHtcblx0XHRcdFx0c3g6IHtcblx0XHRcdFx0XHRib3JkZXJCb3R0b206IDEsXG5cdFx0XHRcdFx0Ym9yZGVyQ29sb3I6IFwiZGl2aWRlclwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFRhYnMsIHtcblx0XHRcdFx0XHRcImFyaWEtbGFiZWxcIjogXCJpbmZvVGFic1wiLFxuXHRcdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJ0YWJzXCIsXG5cdFx0XHRcdFx0b25DaGFuZ2U6IGhhbmRsZUNoYW5nZSxcblx0XHRcdFx0XHR2YWx1ZSxcblx0XHRcdFx0XHRjaGlsZHJlbjogdGFicyA/IHRhYnMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVGFiLCB7XG5cdFx0XHRcdFx0XHRcdGxhYmVsOiBpdGVtLmxhYmVsLFxuXHRcdFx0XHRcdFx0XHQuLi5hMTF5UHJvcHMoaW5kZXgpLFxuXHRcdFx0XHRcdFx0XHQuLi5pdGVtXG5cdFx0XHRcdFx0XHR9LCBpdGVtLmxhYmVsKTtcblx0XHRcdFx0XHR9KSA6IG51bGxcblx0XHRcdFx0fSlcblx0XHRcdH0pLCB0YWJQYW5lbHMgPyB0YWJQYW5lbHMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUYWJQYW5lbCwge1xuXHRcdFx0XHRcdGluZGV4LFxuXHRcdFx0XHRcdHZhbHVlLFxuXHRcdFx0XHRcdGNoaWxkcmVuOiBpdGVtLmVsZW1lbnRcblx0XHRcdFx0fSwgaW5kZXgpO1xuXHRcdFx0fSkgOiBudWxsXVxuXHRcdH0pXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgSGVhZGVySW5mb0RpYWxvZyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUhlYWRlckluZm9EaWFsb2cubWpzLm1hcCIsImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IENpcmN1bGFyUHJvZ3Jlc3MgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQ2lyY3VsYXJQcm9ncmVzc1wiO1xuaW1wb3J0IHsgY29tbW9uIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvY29sb3JzXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvTG9hZGluZy9TcGlubmVyL1NwaW5uZXIudHN4XG52YXIgU3Bpbm5lciA9ICh7IHNpemUgPSA1MCwgY2VudGVyZWQgPSBmYWxzZSB9KSA9PiAvKiBAX19QVVJFX18gKi8ganN4KFdyYXBwZXIsIHtcblx0Y2VudGVyZWQsXG5cdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KENpcmN1bGFyLCB7IHNpemUgfSlcbn0pO1xudmFyIFdyYXBwZXIgPSBzdHlsZWQoXCJkaXZcIikoKHsgY2VudGVyZWQgfSkgPT4gKHtcblx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG5cdGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuXHQuLi5jZW50ZXJlZCAmJiB7XG5cdFx0cG9zaXRpb246IFwiYWJzb2x1dGVcIixcblx0XHR0b3A6IFwiNTAlXCIsXG5cdFx0bGVmdDogXCI1MCVcIixcblx0XHR0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpXCJcblx0fVxufSkpO1xudmFyIENpcmN1bGFyID0gc3R5bGVkKENpcmN1bGFyUHJvZ3Jlc3MpKCh7IHRoZW1lIH0pID0+ICh7IGNvbG9yOiB0aGVtZS5wYWxldHRlLm1vZGUgPT09IFwiZGFya1wiID8gY29tbW9uLndoaXRlIDogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4gfSkpO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBTcGlubmVyIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U3Bpbm5lci5tanMubWFwIiwiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvTG9hZGluZy9zdHlsZXMudHNcbnZhciBXcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcblx0dHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlLCAtNTAlKVwiLFxuXHR0b3A6IFwiNTAlXCIsXG5cdGxlZnQ6IFwiNTAlXCIsXG5cdHBvc2l0aW9uOiBcImFic29sdXRlXCJcbn0pO1xudmFyIEJhZGdlID0gc3R5bGVkKFwiZGl2XCIpKCh7IHRoZW1lIH0pID0+ICh7XG5cdG1hcmdpbjogXCIwIDAgMzBweCAwXCIsXG5cdHBhZGRpbmc6IDUsXG5cdGJvcmRlclJhZGl1czogMjUsXG5cdGJveFNoYWRvdzogXCIwIDEwcHggMjBweCAwIHJnYmEoNjksIDU4LCAxMDAsIDAuMilcIixcblx0YmFja2dyb3VuZDogdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImRhcmtcIiA/IHRoZW1lLnBhbGV0dGUuYmxhY2sgOiBcIiNmN2Y4ZjZcIlxufSkpO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBCYWRnZSwgV3JhcHBlciB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMubWpzLm1hcCIsImltcG9ydCBMb2dvIGZyb20gXCIuLi9Mb2dvL0xvZ28ubWpzXCI7XG5pbXBvcnQgU3Bpbm5lciBmcm9tIFwiLi9TcGlubmVyL1NwaW5uZXIubWpzXCI7XG5pbXBvcnQgXCIuL1NwaW5uZXIvaW5kZXgubWpzXCI7XG5pbXBvcnQgeyBCYWRnZSwgV3JhcHBlciB9IGZyb20gXCIuL3N0eWxlcy5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2luZGV4Lm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0xvYWRpbmcvTG9hZGluZy50c3hcbnZhciBMb2FkaW5nID0gKCkgPT4gLyogQF9fUFVSRV9fICovIGpzeHMoV3JhcHBlciwge1xuXHRcImRhdGEtdGVzdGlkXCI6IFwibG9hZGluZ1wiLFxuXHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goQmFkZ2UsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTG9nbywgeyBzaXplOiBcImJpZ1wiIH0pIH0pLCAvKiBAX19QVVJFX18gKi8ganN4KFNwaW5uZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcInNwaW5uZXJMb2dvXCIgfSldXG59KTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgTG9hZGluZyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUxvYWRpbmcubWpzLm1hcCIsImltcG9ydCB7IGdyZXlEYXJrIH0gZnJvbSBcIi4uLy4uL1RoZW1lL2NvbG9ycy5tanNcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvblwiO1xuaW1wb3J0IHsgY29tbW9uIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvY29sb3JzXCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcInJlYWN0LXJvdXRlclwiO1xuaW1wb3J0IExpc3QgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdFwiO1xuaW1wb3J0IEF2YXRhciBmcm9tIFwiQG11aS9tYXRlcmlhbC9BdmF0YXJcIjtcbmltcG9ydCBHcmlkIGZyb20gXCJAbXVpL21hdGVyaWFsL0dyaWRcIjtcbmltcG9ydCBMaXN0SXRlbVRleHQgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdEl0ZW1UZXh0XCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvUGFja2FnZS9zdHlsZXMudHNcbnZhciBPdmVydmlld0l0ZW0gPSBzdHlsZWQoXCJzcGFuXCIpKCh7IHRoZW1lIH0pID0+ICh7XG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHRtYXJnaW46IFwiMCAyMHB4IDAgMFwiLFxuXHRjb2xvcjogdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImxpZ2h0XCIgPyB0aGVtZS5wYWxldHRlLmdyZXlEYXJrMiA6IGNvbW1vbi53aGl0ZSxcblx0Zm9udFNpemU6IDEyLFxuXHRbYEBtZWRpYSAobWF4LXdpZHRoOiAke3RoZW1lLmJyZWFrUG9pbnRzLm1lZGl1bX1weClgXTogeyBcIjpudGgtb2YtdHlwZSgzKVwiOiB7IGRpc3BsYXk6IFwibm9uZVwiIH0gfSxcblx0W2BAbWVkaWEgKG1heC13aWR0aDogJHt0aGVtZS5icmVha1BvaW50cy5zbWFsbH1weClgXTogeyBcIjpudGgtb2YtdHlwZSg0KVwiOiB7IGRpc3BsYXk6IFwibm9uZVwiIH0gfVxufSkpO1xudmFyIFB1Ymxpc2hlZCA9IHN0eWxlZChcInNwYW5cIikoeyBtYXJnaW46IFwiMCA1cHggMCAwXCIgfSk7XG52YXIgRGV0YWlscyA9IHN0eWxlZChcInNwYW5cIikoe1xuXHRtYXJnaW5MZWZ0OiBcIjVweFwiLFxuXHRsaW5lSGVpZ2h0OiAxLjUsXG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiXG59KTtcbnZhciBBdXRob3IgPSBzdHlsZWQoXCJkaXZcIikoe1xuXHRkaXNwbGF5OiBcImZsZXhcIixcblx0YWxpZ25JdGVtczogXCJjZW50ZXJcIlxufSk7XG52YXIgQXZhdGFyJDEgPSBzdHlsZWQoQXZhdGFyKSh7XG5cdHdpZHRoOiBcIjIwcHhcIixcblx0aGVpZ2h0OiBcIjIwcHhcIlxufSk7XG52YXIgV3JhcHBlckxpbmsgPSBzdHlsZWQoTGluaykoeyB0ZXh0RGVjb3JhdGlvbjogXCJub25lXCIgfSk7XG52YXIgUGFja2FnZVRpdGxlID0gc3R5bGVkKFwic3BhblwiKSgoeyB0aGVtZSB9KSA9PiAoe1xuXHRmb250V2VpZ2h0OiB0aGVtZS5mb250V2VpZ2h0LmJvbGQsXG5cdGZvbnRTaXplOiAyMCxcblx0ZGlzcGxheTogXCJibG9ja1wiLFxuXHRjb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sXG5cdGN1cnNvcjogXCJwb2ludGVyXCIsXG5cdHRleHREZWNvcmF0aW9uOiBcIm5vbmVcIixcblx0d29yZEJyZWFrOiBcImJyZWFrLXdvcmRcIixcblx0W2BAbWVkaWEgKG1heC13aWR0aDogJHt0aGVtZS5icmVha1BvaW50cy5zbWFsbH1weClgXTogeyBmb250U2l6ZTogMTYgfVxufSkpO1xudmFyIEdyaWRSaWdodEFsaWduZWQgPSBzdHlsZWQoR3JpZCkoe1xuXHRkaXNwbGF5OiBcImZsZXhcIixcblx0YWxpZ25JdGVtczogXCJjZW50ZXJcIixcblx0anVzdGlmeUNvbnRlbnQ6IFwiZmxleC1lbmRcIlxufSk7XG52YXIgV3JhcHBlciA9IHN0eWxlZChMaXN0KSgoeyB0aGVtZSB9KSA9PiAoeyBcIiY6aG92ZXJcIjogeyBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYWN0aW9uLmhvdmVyIH0gfSkpO1xudmFyIEljb25CdXR0b24kMSA9IHN0eWxlZChJY29uQnV0dG9uKSh7XG5cdHBhZGRpbmc6IDYsXG5cdHN2ZzogeyBmb250U2l6ZTogMTYgfVxufSk7XG52YXIgUGFja2FnZUxpc3RJdGVtVGV4dCA9IHN0eWxlZChMaXN0SXRlbVRleHQpKHsgcGFkZGluZ1JpZ2h0OiAwIH0pO1xudmFyIERlc2NyaXB0aW9uID0gc3R5bGVkKFwic3BhblwiKSgoeyB0aGVtZSB9KSA9PiAoe1xuXHRjb2xvcjogdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImxpZ2h0XCIgPyBncmV5RGFyayA6IGNvbW1vbi53aGl0ZSxcblx0Zm9udFNpemU6IFwiMTRweFwiLFxuXHRwYWRkaW5nUmlnaHQ6IDBcbn0pKTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgQXV0aG9yLCBBdmF0YXIkMSBhcyBBdmF0YXIsIERlc2NyaXB0aW9uLCBEZXRhaWxzLCBHcmlkUmlnaHRBbGlnbmVkLCBJY29uQnV0dG9uJDEgYXMgSWNvbkJ1dHRvbiwgT3ZlcnZpZXdJdGVtLCBQYWNrYWdlTGlzdEl0ZW1UZXh0LCBQYWNrYWdlVGl0bGUsIFB1Ymxpc2hlZCwgV3JhcHBlciwgV3JhcHBlckxpbmsgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGVzLm1qcy5tYXAiLCJpbXBvcnQgeyBpc1VSTCB9IGZyb20gXCIuLi8uLi91dGlscy91cmwubWpzXCI7XG5pbXBvcnQgeyBmaWxlU2l6ZVNJLCBmb3JtYXREYXRlLCBmb3JtYXREYXRlRGlzdGFuY2UsIGdldEF1dGhvck5hbWUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXRpbHMubWpzXCI7XG5pbXBvcnQgeyBSb3V0ZSB9IGZyb20gXCIuLi8uLi91dGlscy9yb3V0ZXMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi91dGlscy9pbmRleC5tanNcIjtcbmltcG9ydCB7IGdldENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbi5tanNcIjtcbmltcG9ydCB7IHVzZU1hbmlmZXN0cyB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvTWFuaWZlc3RzUHJvdmlkZXIvTWFuaWZlc3RzUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgeyB1c2VEb3dubG9hZCB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvRG93bmxvYWRQcm92aWRlci9Eb3dubG9hZFByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IExpbmtFeHRlcm5hbCBmcm9tIFwiLi4vTGlua0V4dGVybmFsL0xpbmtFeHRlcm5hbC5tanNcIjtcbmltcG9ydCB7IFZlcnNpb24gfSBmcm9tIFwiLi4vSWNvbnMvVmVyc2lvbi5tanNcIjtcbmltcG9ydCB7IFRpbWUgfSBmcm9tIFwiLi4vSWNvbnMvVGltZS5tanNcIjtcbmltcG9ydCB7IEZpbGVCaW5hcnkgfSBmcm9tIFwiLi4vSWNvbnMvRmlsZUJpbmFyeS5tanNcIjtcbmltcG9ydCB7IExhdyB9IGZyb20gXCIuLi9JY29ucy9MYXcubWpzXCI7XG5pbXBvcnQgXCIuLi9JY29ucy9pbmRleC5tanNcIjtcbmltcG9ydCBLZXl3b3JkTGlzdEl0ZW1zIGZyb20gXCIuLi9LZXl3b3Jkcy9LZXl3b3JkTGlzdEl0ZW1zLm1qc1wiO1xuaW1wb3J0IExpbmsgZnJvbSBcIi4uL0xpbmsvTGluay5tanNcIjtcbmltcG9ydCB7IEF1dGhvciwgQXZhdGFyLCBEZXNjcmlwdGlvbiwgRGV0YWlscywgR3JpZFJpZ2h0QWxpZ25lZCwgSWNvbkJ1dHRvbiwgT3ZlcnZpZXdJdGVtLCBQYWNrYWdlTGlzdEl0ZW1UZXh0LCBQYWNrYWdlVGl0bGUsIFB1Ymxpc2hlZCwgV3JhcHBlciwgV3JhcHBlckxpbmsgfSBmcm9tIFwiLi9zdHlsZXMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9pbmRleC5tanNcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVG9vbHRpcFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IEJ1Z1JlcG9ydCBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9CdWdSZXBvcnRcIjtcbmltcG9ydCBEb3dubG9hZEljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvQ2xvdWREb3dubG9hZFwiO1xuaW1wb3J0IEhvbWVJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0hvbWVcIjtcbmltcG9ydCBDaXJjdWxhclByb2dyZXNzIGZyb20gXCJAbXVpL21hdGVyaWFsL0NpcmN1bGFyUHJvZ3Jlc3NcIjtcbmltcG9ydCB7IGNvbW1vbiwgZ3JleSB9IGZyb20gXCJAbXVpL21hdGVyaWFsL2NvbG9yc1wiO1xuaW1wb3J0IExpc3QgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdFwiO1xuaW1wb3J0IExpc3RJdGVtIGZyb20gXCJAbXVpL21hdGVyaWFsL0xpc3RJdGVtXCI7XG5pbXBvcnQgR3JpZCBmcm9tIFwiQG11aS9tYXRlcmlhbC9HcmlkXCI7XG5pbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9QYWNrYWdlL1BhY2thZ2UudHN4XG52YXIgUGFja2FnZSA9ICh7IGF1dGhvcjogeyBuYW1lOiBhdXRob3JOYW1lLCBhdmF0YXI6IGF1dGhvckF2YXRhciB9LCBidWdzLCBkZXNjcmlwdGlvbiwgZGlzdCwgaG9tZXBhZ2UsIGtleXdvcmRzLCBsaWNlbnNlLCBuYW1lOiBwYWNrYWdlTmFtZSwgdGltZSwgc2hvd0Rvd25sb2FkID0gdHJ1ZSwgdmVyc2lvbiB9KSA9PiB7XG5cdGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ3VyYXRpb24oKTtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRjb25zdCB7IGlzTG9hZGluZyB9ID0gdXNlTWFuaWZlc3RzKCk7XG5cdGNvbnN0IHsgZG93bmxvYWRUYXJiYWxsIH0gPSB1c2VEb3dubG9hZCgpO1xuXHRjb25zdCBoYW5kbGVEb3dubG9hZCA9IHVzZUNhbGxiYWNrKGFzeW5jICh0YXJiYWxsRGlzdCkgPT4ge1xuXHRcdGNvbnN0IGxpbmsgPSB0YXJiYWxsRGlzdC5yZXBsYWNlKGBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9gLCBjb25maWcuYmFzZSk7XG5cdFx0ZG93bmxvYWRUYXJiYWxsPy4oeyBsaW5rIH0pO1xuXHR9LCBbY29uZmlnLCBkb3dubG9hZFRhcmJhbGxdKTtcblx0Y29uc3QgcmVuZGVyVmVyc2lvbkluZm8gPSAoKSA9PiB2ZXJzaW9uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3hzKE92ZXJ2aWV3SXRlbSwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkVmVyc2lvbiwge30pLCB0KFwicGFja2FnZS52ZXJzaW9uXCIsIHsgdmVyc2lvbiB9KV0gfSk7XG5cdGNvbnN0IHJlbmRlckF1dGhvckluZm8gPSAoKSA9PiB7XG5cdFx0Y29uc3QgbmFtZSA9IGdldEF1dGhvck5hbWUoYXV0aG9yTmFtZSk7XG5cdFx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goT3ZlcnZpZXdJdGVtLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhBdXRob3IsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KEF2YXRhciwge1xuXHRcdFx0YWx0OiBuYW1lLFxuXHRcdFx0c3JjOiBhdXRob3JBdmF0YXJcblx0XHR9KSwgLyogQF9fUFVSRV9fICovIGpzeChEZXRhaWxzLCB7IGNoaWxkcmVuOiBuYW1lIH0pXSB9KSB9KTtcblx0fTtcblx0Y29uc3QgcmVuZGVyRmlsZVNpemUgPSAoKSA9PiBkaXN0Py51bnBhY2tlZFNpemUgJiYgLyogQF9fUFVSRV9fICovIGpzeHMoT3ZlcnZpZXdJdGVtLCB7IGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRGaWxlQmluYXJ5LCB7fSksIGZpbGVTaXplU0koZGlzdC51bnBhY2tlZFNpemUpXSB9KTtcblx0Y29uc3QgcmVuZGVyTGljZW5zZUluZm8gPSAoKSA9PiBsaWNlbnNlICYmIC8qIEBfX1BVUkVfXyAqLyBqc3hzKE92ZXJ2aWV3SXRlbSwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goU3R5bGVkTGF3LCB7fSksIGxpY2Vuc2VdIH0pO1xuXHRjb25zdCByZW5kZXJQdWJsaXNoZWRJbmZvID0gKCkgPT4gdGltZSAmJiAvKiBAX19QVVJFX18gKi8ganN4cyhPdmVydmlld0l0ZW0sIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KFN0eWxlZFRpbWUsIHt9KSwgLyogQF9fUFVSRV9fICovIGpzeChQdWJsaXNoZWQsIHtcblx0XHR0aXRsZTogZm9ybWF0RGF0ZSh0aW1lKSxcblx0XHRjaGlsZHJlbjogdChcInBhY2thZ2UucHVibGlzaGVkLW9uXCIsIHsgdGltZTogZm9ybWF0RGF0ZURpc3RhbmNlKHRpbWUpIH0pXG5cdH0pXSB9KTtcblx0Y29uc3QgcmVuZGVySG9tZVBhZ2VMaW5rID0gKCkgPT4gaG9tZXBhZ2UgJiYgaXNVUkwoaG9tZXBhZ2UpICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goTGlua0V4dGVybmFsLCB7XG5cdFx0dG86IGhvbWVwYWdlLFxuXHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFRvb2x0aXAsIHtcblx0XHRcdFwiYXJpYS1sYWJlbFwiOiB0KFwicGFja2FnZS5ob21lcGFnZVwiKSxcblx0XHRcdHRpdGxlOiB0KFwicGFja2FnZS52aXNpdC1ob21lLXBhZ2VcIiksXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChJY29uQnV0dG9uLCB7XG5cdFx0XHRcdFwiYXJpYS1sYWJlbFwiOiB0KFwicGFja2FnZS5ob21lcGFnZVwiKSxcblx0XHRcdFx0Y29sb3I6IFwicHJpbWFyeVwiLFxuXHRcdFx0XHRzaXplOiBcImxhcmdlXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEhvbWVJY29uLCB7fSlcblx0XHRcdH0pXG5cdFx0fSlcblx0fSk7XG5cdGNvbnN0IHJlbmRlckJ1Z3NMaW5rID0gKCkgPT4gYnVncz8udXJsICYmIGlzVVJMKGJ1Z3MudXJsKSAmJiAvKiBAX19QVVJFX18gKi8ganN4KExpbmtFeHRlcm5hbCwge1xuXHRcdHRvOiBidWdzLnVybCxcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChUb29sdGlwLCB7XG5cdFx0XHRcImFyaWEtbGFiZWxcIjogdChcInBhY2thZ2UuYnVnc1wiKSxcblx0XHRcdHRpdGxlOiB0KFwicGFja2FnZS5vcGVuLWFuLWlzc3VlXCIpLFxuXHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbkJ1dHRvbiwge1xuXHRcdFx0XHRcImFyaWEtbGFiZWxcIjogdChcInBhY2thZ2UuYnVnc1wiKSxcblx0XHRcdFx0Y29sb3I6IFwicHJpbWFyeVwiLFxuXHRcdFx0XHRzaXplOiBcImxhcmdlXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEJ1Z1JlcG9ydCwge30pXG5cdFx0XHR9KVxuXHRcdH0pXG5cdH0pO1xuXHRjb25zdCByZW5kZXJEb3dubG9hZExpbmsgPSAoKSA9PiBkaXN0Py50YXJiYWxsICYmIGlzVVJMKGRpc3QudGFyYmFsbCkgJiYgLyogQF9fUFVSRV9fICovIGpzeChMaW5rLCB7XG5cdFx0b25DbGljazogKCkgPT4ge1xuXHRcdFx0aGFuZGxlRG93bmxvYWQoZGlzdC50YXJiYWxsKTtcblx0XHR9LFxuXHRcdHRvOiBcIiNcIixcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChUb29sdGlwLCB7XG5cdFx0XHRcImFyaWEtbGFiZWxcIjogdChcInBhY2thZ2UuZG93bmxvYWRcIiwgeyB3aGF0OiB0KFwicGFja2FnZS50aGUtdGFyLWZpbGVcIikgfSksXG5cdFx0XHR0aXRsZTogdChcInBhY2thZ2UudGFyYmFsbFwiKSxcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEljb25CdXR0b24sIHtcblx0XHRcdFx0XCJhcmlhLWxhYmVsXCI6IHQoXCJwYWNrYWdlLmRvd25sb2FkXCIpLFxuXHRcdFx0XHRjb2xvcjogXCJwcmltYXJ5XCIsXG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJkb3dubG9hZC10YXJiYWxsXCIsXG5cdFx0XHRcdHNpemU6IFwibGFyZ2VcIixcblx0XHRcdFx0Y2hpbGRyZW46IGlzTG9hZGluZyA/IC8qIEBfX1BVUkVfXyAqLyBqc3goQ2lyY3VsYXJQcm9ncmVzcywgeyBzaXplOiAxMyB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goRG93bmxvYWRJY29uLCB7fSlcblx0XHRcdH0pXG5cdFx0fSlcblx0fSk7XG5cdGNvbnN0IHJlbmRlclByaW1hcnlDb21wb25lbnQgPSAoKSA9PiB7XG5cdFx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEdyaWQsIHtcblx0XHRcdGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG5cdFx0XHRjb250YWluZXI6IHRydWUsXG5cdFx0XHRzaXplOiB7IHhzOiAxMiB9LFxuXHRcdFx0d3JhcDogXCJ3cmFwXCIsXG5cdFx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goR3JpZCwge1xuXHRcdFx0XHRzaXplOiBcImdyb3dcIixcblx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goV3JhcHBlckxpbmssIHtcblx0XHRcdFx0XHR0bzogYCR7Um91dGUuREVUQUlMfSR7cGFja2FnZU5hbWV9YCxcblx0XHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChQYWNrYWdlVGl0bGUsIHtcblx0XHRcdFx0XHRcdGNsYXNzTmFtZTogXCJwYWNrYWdlLXRpdGxlXCIsXG5cdFx0XHRcdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwicGFja2FnZS10aXRsZVwiLFxuXHRcdFx0XHRcdFx0Y2hpbGRyZW46IHBhY2thZ2VOYW1lXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fSlcblx0XHRcdH0pLCAvKiBAX19QVVJFX18gKi8ganN4cyhHcmlkUmlnaHRBbGlnbmVkLCB7XG5cdFx0XHRcdHNpemU6IFwiYXV0b1wiLFxuXHRcdFx0XHRjaGlsZHJlbjogW1xuXHRcdFx0XHRcdHJlbmRlckhvbWVQYWdlTGluaygpLFxuXHRcdFx0XHRcdHJlbmRlckJ1Z3NMaW5rKCksXG5cdFx0XHRcdFx0c2hvd0Rvd25sb2FkICYmIHJlbmRlckRvd25sb2FkTGluaygpXG5cdFx0XHRcdF1cblx0XHRcdH0pXVxuXHRcdH0pO1xuXHR9O1xuXHRjb25zdCByZW5kZXJTZWNvbmRhcnlDb21wb25lbnQgPSAoKSA9PiAvKiBAX19QVVJFX18gKi8ganN4KERlc2NyaXB0aW9uLCB7IGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KTtcblx0Y29uc3QgcmVuZGVyUGFja2FnZUxpc3RJdGVtVGV4dCA9ICgpID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goUGFja2FnZUxpc3RJdGVtVGV4dCwge1xuXHRcdHByaW1hcnk6IHJlbmRlclByaW1hcnlDb21wb25lbnQoKSxcblx0XHRzZWNvbmRhcnk6IHJlbmRlclNlY29uZGFyeUNvbXBvbmVudCgpXG5cdH0pO1xuXHRjb25zdCByZW5kZXJLZXl3b3JkcyA9ICgpID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goTGlzdEl0ZW0sIHtcblx0XHRhbGlnbkl0ZW1zOiBcImZsZXgtc3RhcnRcIixcblx0XHRzeDoge1xuXHRcdFx0cHk6IDAsXG5cdFx0XHRteTogMFxuXHRcdH0sXG5cdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTGlzdCwge1xuXHRcdFx0c3g6IHtcblx0XHRcdFx0cDogMCxcblx0XHRcdFx0bXk6IDBcblx0XHRcdH0sXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChLZXl3b3JkTGlzdEl0ZW1zLCB7IGtleXdvcmRzIH0pXG5cdFx0fSlcblx0fSk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhXcmFwcGVyLCB7XG5cdFx0Y2xhc3NOYW1lOiBcInBhY2thZ2VcIixcblx0XHRcImRhdGEtdGVzdGlkXCI6IFwicGFja2FnZS1pdGVtLWxpc3RcIixcblx0XHRjaGlsZHJlbjogW1xuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChMaXN0SXRlbSwge1xuXHRcdFx0XHRhbGlnbkl0ZW1zOiBcImZsZXgtc3RhcnRcIixcblx0XHRcdFx0c3g6IHsgbWI6IDAgfSxcblx0XHRcdFx0Y2hpbGRyZW46IHJlbmRlclBhY2thZ2VMaXN0SXRlbVRleHQoKVxuXHRcdFx0fSksXG5cdFx0XHRrZXl3b3JkcyAmJiBrZXl3b3Jkcz8ubGVuZ3RoID4gMCA/IHJlbmRlcktleXdvcmRzKCkgOiBudWxsLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeHMoTGlzdEl0ZW0sIHtcblx0XHRcdFx0YWxpZ25JdGVtczogXCJmbGV4LXN0YXJ0XCIsXG5cdFx0XHRcdHN4OiB7IG10OiAwIH0sXG5cdFx0XHRcdGNoaWxkcmVuOiBbXG5cdFx0XHRcdFx0cmVuZGVyQXV0aG9ySW5mbygpLFxuXHRcdFx0XHRcdHJlbmRlclZlcnNpb25JbmZvKCksXG5cdFx0XHRcdFx0cmVuZGVyUHVibGlzaGVkSW5mbygpLFxuXHRcdFx0XHRcdHJlbmRlckZpbGVTaXplKCksXG5cdFx0XHRcdFx0cmVuZGVyTGljZW5zZUluZm8oKVxuXHRcdFx0XHRdXG5cdFx0XHR9KVxuXHRcdF1cblx0fSk7XG59O1xudmFyIGljb25TdHlsZSA9ICh7IHRoZW1lIH0pID0+IGNzc2BcbiAgbWFyZ2luOiAwIDEwcHggMCAwO1xuICBmaWxsOiAke3RoZW1lLnBhbGV0dGUubW9kZSA9PT0gXCJsaWdodFwiID8gZ3JleVs5MDBdIDogY29tbW9uLndoaXRlfTtcbmA7XG52YXIgU3R5bGVkVmVyc2lvbiA9IHN0eWxlZChWZXJzaW9uKWBcbiAgJHtpY29uU3R5bGV9O1xuYDtcbnZhciBTdHlsZWRGaWxlQmluYXJ5ID0gc3R5bGVkKEZpbGVCaW5hcnkpYFxuICAke2ljb25TdHlsZX07XG5gO1xudmFyIFN0eWxlZExhdyA9IHN0eWxlZChMYXcpYFxuICAke2ljb25TdHlsZX07XG5gO1xudmFyIFN0eWxlZFRpbWUgPSBzdHlsZWQoVGltZSlgXG4gICR7aWNvblN0eWxlfTtcbmA7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFBhY2thZ2UgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYWNrYWdlLm1qcy5tYXAiLCJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBDYXJkIGZyb20gXCJAbXVpL21hdGVyaWFsL0NhcmRcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9IZWxwL3N0eWxlcy50c1xudmFyIENhcmRTdHlsZWQgPSBzdHlsZWQoQ2FyZCkoe1xuXHRtYXhXaWR0aDogNjAwLFxuXHRtYXJnaW46IFwiYXV0b1wiXG59KTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgQ2FyZFN0eWxlZCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMubWpzLm1hcCIsImltcG9ydCBDb3B5VG9DbGlwQm9hcmQgZnJvbSBcIi4uL0NvcHlDbGlwYm9hcmQvQ29weVRvQ2xpcEJvYXJkLm1qc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9BcHBDb25maWd1cmF0aW9uUHJvdmlkZXIvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IEhlYWRpbmcgZnJvbSBcIi4uL0hlYWRpbmcvSGVhZGluZy5tanNcIjtcbmltcG9ydCB7IENhcmRTdHlsZWQgfSBmcm9tIFwiLi9zdHlsZXMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9pbmRleC5tanNcIjtcbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gXCJAbXVpL21hdGVyaWFsL1R5cG9ncmFwaHlcIjtcbmltcG9ydCBDYXJkQ29udGVudCBmcm9tIFwiQG11aS9tYXRlcmlhbC9DYXJkQ29udGVudFwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9CdXR0b25cIjtcbmltcG9ydCBDYXJkQWN0aW9ucyBmcm9tIFwiQG11aS9tYXRlcmlhbC9DYXJkQWN0aW9uc1wiO1xuLy8jcmVnaW9uIHNyYy9jb21wb25lbnRzL0hlbHAvSGVscC50c3hcbmZ1bmN0aW9uIHJlbmRlckhlYWRpbmdDbGlwYm9hcmRTZWdtZW50cyh0aXRsZSwgdGV4dCkge1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHR2YXJpYW50OiBcImJvZHkxXCIsXG5cdFx0Y2hpbGRyZW46IHRpdGxlXG5cdH0pLCAvKiBAX19QVVJFX18gKi8ganN4KENvcHlUb0NsaXBCb2FyZCwge1xuXHRcdGRhdGFUZXN0SWQ6IFwic2VnbWVudHNcIixcblx0XHR0ZXh0XG5cdH0pXSB9KTtcbn1cbnZhciBIZWxwID0gKCkgPT4ge1xuXHRjb25zdCB7IGNvbmZpZ09wdGlvbnMgfSA9IHVzZUNvbmZpZygpO1xuXHRjb25zdCByZWdpc3RyeVVybCA9IGNvbmZpZ09wdGlvbnMuYmFzZTtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoQ2FyZFN0eWxlZCwge1xuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCJoZWxwLWNhcmRcIixcblx0XHRpZDogXCJoZWxwLWNhcmRcIixcblx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3hzKENhcmRDb250ZW50LCB7IGNoaWxkcmVuOiBbXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEhlYWRpbmcsIHtcblx0XHRcdFx0Z3V0dGVyQm90dG9tOiB0cnVlLFxuXHRcdFx0XHRpZDogXCJoZWxwLWNhcmRfX3RpdGxlXCIsXG5cdFx0XHRcdHZhcmlhbnQ6IFwiaDVcIixcblx0XHRcdFx0Y2hpbGRyZW46IHQoXCJoZWxwLnRpdGxlXCIpXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goSGVhZGluZywge1xuXHRcdFx0XHRjb2xvcjogXCJ0ZXh0U2Vjb25kYXJ5XCIsXG5cdFx0XHRcdGd1dHRlckJvdHRvbTogdHJ1ZSxcblx0XHRcdFx0c3g6IHsgbWFyZ2luQm90dG9tOiAxIH0sXG5cdFx0XHRcdGNoaWxkcmVuOiB0KFwiaGVscC5zdWItdGl0bGVcIilcblx0XHRcdH0pLFxuXHRcdFx0cmVuZGVySGVhZGluZ0NsaXBib2FyZFNlZ21lbnRzKHQoXCJoZWxwLmZpcnN0LXN0ZXBcIiksIHQoXCJoZWxwLmZpcnN0LXN0ZXAtY29tbWFuZC1saW5lXCIsIHsgcmVnaXN0cnlVcmwgfSkpLFxuXHRcdFx0cmVuZGVySGVhZGluZ0NsaXBib2FyZFNlZ21lbnRzKHQoXCJoZWxwLnNlY29uZC1zdGVwXCIpLCB0KFwiaGVscC5zZWNvbmQtc3RlcC1jb21tYW5kLWxpbmVcIiwgeyByZWdpc3RyeVVybCB9KSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHRcdFx0dmFyaWFudDogXCJib2R5MVwiLFxuXHRcdFx0XHRjaGlsZHJlbjogdChcImhlbHAudGhpcmQtc3RlcFwiKVxuXHRcdFx0fSlcblx0XHRdIH0pLCAvKiBAX19QVVJFX18gKi8ganN4KENhcmRBY3Rpb25zLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEJ1dHRvbiwge1xuXHRcdFx0Y29sb3I6IFwicHJpbWFyeVwiLFxuXHRcdFx0aHJlZjogXCJodHRwczovL3ZlcmRhY2Npby5vcmcvZG9jcy9jbGktcmVnaXN0cnlcIixcblx0XHRcdHNpemU6IFwic21hbGxcIixcblx0XHRcdGNoaWxkcmVuOiB0KFwiYnV0dG9uLmxlYXJuLW1vcmVcIilcblx0XHR9KSB9KV1cblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBIZWxwIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGVscC5tanMubWFwIiwiaW1wb3J0IHsgZm9ybWF0TGljZW5zZSB9IGZyb20gXCIuLi8uLi91dGlscy91dGlscy5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3V0aWxzL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9BcHBDb25maWd1cmF0aW9uUHJvdmlkZXIvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IHsgRG93bmxvYWRQcm92aWRlciB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvRG93bmxvYWRQcm92aWRlci9Eb3dubG9hZFByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IFBhY2thZ2UgZnJvbSBcIi4uL1BhY2thZ2UvUGFja2FnZS5tanNcIjtcbmltcG9ydCBIZWxwIGZyb20gXCIuLi9IZWxwL0hlbHAubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9pbmRleC5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBEaXZpZGVyIGZyb20gXCJAbXVpL21hdGVyaWFsL0RpdmlkZXJcIjtcbmltcG9ydCB7IEF1dG9TaXplciB9IGZyb20gXCJyZWFjdC12aXJ0dWFsaXplZC9kaXN0L2NvbW1vbmpzL0F1dG9TaXplclwiO1xuaW1wb3J0IHsgQ2VsbE1lYXN1cmVyLCBDZWxsTWVhc3VyZXJDYWNoZSB9IGZyb20gXCJyZWFjdC12aXJ0dWFsaXplZC9kaXN0L2NvbW1vbmpzL0NlbGxNZWFzdXJlclwiO1xuaW1wb3J0IHsgTGlzdCB9IGZyb20gXCJyZWFjdC12aXJ0dWFsaXplZC9kaXN0L2NvbW1vbmpzL0xpc3RcIjtcbmltcG9ydCB7IFdpbmRvd1Njcm9sbGVyIH0gZnJvbSBcInJlYWN0LXZpcnR1YWxpemVkL2Rpc3QvY29tbW9uanMvV2luZG93U2Nyb2xsZXJcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9QYWNrYWdlTGlzdC9QYWNrYWdlTGlzdC50c3hcbnZhciBjYWNoZSA9IG5ldyBDZWxsTWVhc3VyZXJDYWNoZSh7XG5cdGZpeGVkV2lkdGg6IHRydWUsXG5cdGRlZmF1bHRIZWlnaHQ6IDEwMFxufSk7XG52YXIgUGFja2FnZUxpc3QgPSAoeyBwYWNrYWdlcyB9KSA9PiB7XG5cdGNvbnN0IHsgY29uZmlnT3B0aW9ucyB9ID0gdXNlQ29uZmlnKCk7XG5cdGNvbnN0IHJlbmRlclJvdyA9ICh7IGluZGV4LCBrZXksIHBhcmVudCwgc3R5bGUgfSkgPT4ge1xuXHRcdGNvbnN0IHsgbmFtZSwgdmVyc2lvbiwgZGVzY3JpcHRpb24sIHRpbWUsIGtleXdvcmRzLCBkaXN0LCBob21lcGFnZSwgYnVncywgYXV0aG9yLCBsaWNlbnNlIH0gPSBwYWNrYWdlc1tpbmRleF07XG5cdFx0Y29uc3QgZm9ybWF0dGVkTGljZW5zZSA9IGZvcm1hdExpY2Vuc2UobGljZW5zZSk7XG5cdFx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ2VsbE1lYXN1cmVyLCB7XG5cdFx0XHRjYWNoZSxcblx0XHRcdGNvbHVtbkluZGV4OiAwLFxuXHRcdFx0cGFyZW50LFxuXHRcdFx0cm93SW5kZXg6IGluZGV4LFxuXHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHtcblx0XHRcdFx0c3R5bGUsXG5cdFx0XHRcdGNoaWxkcmVuOiBbaW5kZXggIT09IDAgJiYgLyogQF9fUFVSRV9fICovIGpzeChEaXZpZGVyLCB7fSksIC8qIEBfX1BVUkVfXyAqLyBqc3goUGFja2FnZSwge1xuXHRcdFx0XHRcdGF1dGhvcixcblx0XHRcdFx0XHRidWdzLFxuXHRcdFx0XHRcdGRlc2NyaXB0aW9uLFxuXHRcdFx0XHRcdGRpc3QsXG5cdFx0XHRcdFx0aG9tZXBhZ2UsXG5cdFx0XHRcdFx0a2V5d29yZHMsXG5cdFx0XHRcdFx0bGljZW5zZTogZm9ybWF0dGVkTGljZW5zZSxcblx0XHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRcdHNob3dEb3dubG9hZDogY29uZmlnT3B0aW9ucy5zaG93RG93bmxvYWRUYXJiYWxsLFxuXHRcdFx0XHRcdHRpbWUsXG5cdFx0XHRcdFx0dmVyc2lvblxuXHRcdFx0XHR9KV1cblx0XHRcdH0pXG5cdFx0fSwga2V5KTtcblx0fTtcblx0aWYgKCEocGFja2FnZXM/Lmxlbmd0aCA+IDApKSByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChIZWxwLCB7fSk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERvd25sb2FkUHJvdmlkZXIsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goV2luZG93U2Nyb2xsZXIsIHsgY2hpbGRyZW46ICh7IGhlaWdodCwgaXNTY3JvbGxpbmcsIHNjcm9sbFRvcCwgb25DaGlsZFNjcm9sbCB9KSA9PiAvKiBAX19QVVJFX18gKi8ganN4KEF1dG9TaXplciwge1xuXHRcdGRpc2FibGVIZWlnaHQ6IHRydWUsXG5cdFx0Y2hpbGRyZW46ICh7IHdpZHRoIH0pID0+IHtcblx0XHRcdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KExpc3QsIHtcblx0XHRcdFx0YXV0b0hlaWdodDogdHJ1ZSxcblx0XHRcdFx0ZGVmZXJyZWRNZWFzdXJlbWVudENhY2hlOiBjYWNoZSxcblx0XHRcdFx0aGVpZ2h0LFxuXHRcdFx0XHRpc1Njcm9sbGluZyxcblx0XHRcdFx0b25TY3JvbGw6IG9uQ2hpbGRTY3JvbGwsXG5cdFx0XHRcdG92ZXJzY2FuUm93Q291bnQ6IDMsXG5cdFx0XHRcdHJvd0NvdW50OiBwYWNrYWdlcz8ubGVuZ3RoLFxuXHRcdFx0XHRyb3dIZWlnaHQ6IGNhY2hlLnJvd0hlaWdodCxcblx0XHRcdFx0cm93UmVuZGVyZXI6IHJlbmRlclJvdyxcblx0XHRcdFx0c2Nyb2xsVG9wLFxuXHRcdFx0XHR3aWR0aFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9KSB9KSB9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFBhY2thZ2VMaXN0IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGFja2FnZUxpc3QubWpzLm1hcCIsImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyNyZWdpb24gc3JjL2NvbXBvbmVudHMvRXJyb3JCb3VuZGFyeS9FcnJvckJvdW5kYXJ5LnRzeFxudmFyIEVycm9yQm91bmRhcnkgPSBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG5cdHN0YXRlID0ge1xuXHRcdGhhc0Vycm9yOiBmYWxzZSxcblx0XHRlcnJvcjogbnVsbFxuXHR9O1xuXHRzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGhhc0Vycm9yOiB0cnVlLFxuXHRcdFx0ZXJyb3Jcblx0XHR9O1xuXHR9XG5cdGNvbXBvbmVudERpZENhdGNoKGVycm9yLCBpbmZvKSB7XG5cdFx0Y29uc29sZS5lcnJvcihcIkVycm9yQm91bmRhcnkgY2F1Z2h0OlwiLCBlcnJvciwgaW5mbyk7XG5cdH1cblx0cmVuZGVyKCkge1xuXHRcdGNvbnN0IHsgaGFzRXJyb3IsIGVycm9yIH0gPSB0aGlzLnN0YXRlO1xuXHRcdGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XG5cdFx0aWYgKGhhc0Vycm9yKSByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwge1xuXHRcdFx0cm9sZTogXCJhbGVydFwiLFxuXHRcdFx0Y2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KFwiaDFcIiwgeyBjaGlsZHJlbjogXCJTb21ldGhpbmcgd2VudCB3cm9uZy5cIiB9KSwgLyogQF9fUFVSRV9fICovIGpzeChcInByZVwiLCB7IGNoaWxkcmVuOiBlcnJvcj8ubWVzc2FnZSB9KV1cblx0XHR9KTtcblx0XHRyZXR1cm4gY2hpbGRyZW47XG5cdH1cbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IEVycm9yQm91bmRhcnkgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1FcnJvckJvdW5kYXJ5Lm1qcy5tYXAiLCJpbXBvcnQgbG9hZGFibGVfZGVmYXVsdCBmcm9tIFwiLi4vLi4vdXRpbHMvbG9hZGFibGUubWpzXCI7XG5pbXBvcnQgeyBSb3V0ZSBhcyBSb3V0ZSQxIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3JvdXRlcy5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3V0aWxzL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9BcHBDb25maWd1cmF0aW9uUHJvdmlkZXIvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IFZlcnNpb25Qcm92aWRlciBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL1ZlcnNpb25Qcm92aWRlci9WZXJzaW9uUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgTWFuaWZlc3RzUHJvdmlkZXIgZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9NYW5pZmVzdHNQcm92aWRlci9NYW5pZmVzdHNQcm92aWRlci5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3Byb3ZpZGVycy9pbmRleC5tanNcIjtcbmltcG9ydCBOb3RGb3VuZCBmcm9tIFwiLi4vTm90Rm91bmQvTm90Rm91bmQubWpzXCI7XG5pbXBvcnQgXCIuLi9Ob3RGb3VuZC9pbmRleC5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IE91dGxldCwgUm91dGUsIFJvdXRlcyB9IGZyb20gXCJyZWFjdC1yb3V0ZXJcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9BcHBSb3V0ZS9BcHBSb3V0ZS50c3hcbnZhciBWZXJzaW9uUGFnZSA9IGxvYWRhYmxlX2RlZmF1bHQoKCkgPT4gaW1wb3J0KFwiLi4vLi4vcGFnZXMvVmVyc2lvbi9pbmRleC5tanNcIikpO1xudmFyIEZyb250ID0gbG9hZGFibGVfZGVmYXVsdCgoKSA9PiBpbXBvcnQoXCIuLi8uLi9wYWdlcy9Gcm9udC9pbmRleC5tanNcIikpO1xudmFyIExvZ2luID0gbG9hZGFibGVfZGVmYXVsdCgoKSA9PiBpbXBvcnQoXCIuLi8uLi9wYWdlcy9TZWN1cml0eS9Mb2dpbi5tanNcIikpO1xudmFyIFN1Y2Nlc3MgPSBsb2FkYWJsZV9kZWZhdWx0KCgpID0+IGltcG9ydChcIi4uLy4uL3BhZ2VzL1NlY3VyaXR5L1N1Y2Nlc3MubWpzXCIpKTtcbnZhciBBZGRVc2VyID0gbG9hZGFibGVfZGVmYXVsdCgoKSA9PiBpbXBvcnQoXCIuLi8uLi9wYWdlcy9TZWN1cml0eS9BZGRVc2VyLm1qc1wiKSk7XG52YXIgQ2hhbmdlUGFzc3dvcmQgPSBsb2FkYWJsZV9kZWZhdWx0KCgpID0+IGltcG9ydChcIi4uLy4uL3BhZ2VzL1NlY3VyaXR5L0NoYW5nZVBhc3N3b3JkLm1qc1wiKSk7XG52YXIgdmVyc2lvbkVsZW1lbnQgPSAvKiBAX19QVVJFX18gKi8ganN4KFZlcnNpb25Qcm92aWRlciwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChWZXJzaW9uUGFnZSwge30pIH0pO1xudmFyIEFwcFJvdXRlID0gKCkgPT4ge1xuXHRjb25zdCB7IGNvbmZpZ09wdGlvbnMgfSA9IHVzZUNvbmZpZygpO1xuXHRjb25zdCBjcmVhdGVVc2VyRW5hYmxlZCA9IGNvbmZpZ09wdGlvbnM/LmZsYWdzPy5jcmVhdGVVc2VyO1xuXHRjb25zdCBjaGFuZ2VQYXNzd29yZEVuYWJsZWQgPSBjb25maWdPcHRpb25zPy5mbGFncz8uY2hhbmdlUGFzc3dvcmQ7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhSb3V0ZXMsIHsgY2hpbGRyZW46IFtcblx0XHQvKiBAX19QVVJFX18gKi8ganN4KFJvdXRlLCB7XG5cdFx0XHRlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4KE1hbmlmZXN0c1Byb3ZpZGVyLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEZyb250LCB7fSkgfSksXG5cdFx0XHRwYXRoOiBSb3V0ZSQxLlJPT1Rcblx0XHR9KSxcblx0XHQvKiBAX19QVVJFX18gKi8ganN4KFJvdXRlLCB7XG5cdFx0XHRlbGVtZW50OiB2ZXJzaW9uRWxlbWVudCxcblx0XHRcdHBhdGg6IFJvdXRlJDEuU0NPUEVfUEFDS0FHRV9WRVJTSU9OXG5cdFx0fSksXG5cdFx0LyogQF9fUFVSRV9fICovIGpzeChSb3V0ZSwge1xuXHRcdFx0ZWxlbWVudDogdmVyc2lvbkVsZW1lbnQsXG5cdFx0XHRwYXRoOiBSb3V0ZSQxLlNDT1BFX1BBQ0tBR0Vcblx0XHR9KSxcblx0XHQvKiBAX19QVVJFX18gKi8ganN4KFJvdXRlLCB7XG5cdFx0XHRlbGVtZW50OiB2ZXJzaW9uRWxlbWVudCxcblx0XHRcdHBhdGg6IFJvdXRlJDEuUEFDS0FHRV9WRVJTSU9OXG5cdFx0fSksXG5cdFx0LyogQF9fUFVSRV9fICovIGpzeChSb3V0ZSwge1xuXHRcdFx0ZWxlbWVudDogdmVyc2lvbkVsZW1lbnQsXG5cdFx0XHRwYXRoOiBSb3V0ZSQxLlBBQ0tBR0Vcblx0XHR9KSxcblx0XHQvKiBAX19QVVJFX18gKi8ganN4cyhSb3V0ZSwge1xuXHRcdFx0ZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeChPdXRsZXQsIHt9KSxcblx0XHRcdGNoaWxkcmVuOiBbXG5cdFx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goUm91dGUsIHtcblx0XHRcdFx0XHRlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4KExvZ2luLCB7fSksXG5cdFx0XHRcdFx0cGF0aDogUm91dGUkMS5MT0dJTlxuXHRcdFx0XHR9KSxcblx0XHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChSb3V0ZSwge1xuXHRcdFx0XHRcdGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3goU3VjY2Vzcywge30pLFxuXHRcdFx0XHRcdHBhdGg6IFJvdXRlJDEuU1VDQ0VTU1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0Y3JlYXRlVXNlckVuYWJsZWQgJiYgLyogQF9fUFVSRV9fICovIGpzeChSb3V0ZSwge1xuXHRcdFx0XHRcdGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3goQWRkVXNlciwge30pLFxuXHRcdFx0XHRcdHBhdGg6IFJvdXRlJDEuQUREX1VTRVJcblx0XHRcdFx0fSksXG5cdFx0XHRcdGNoYW5nZVBhc3N3b3JkRW5hYmxlZCAmJiAvKiBAX19QVVJFX18gKi8ganN4KFJvdXRlLCB7XG5cdFx0XHRcdFx0ZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeChDaGFuZ2VQYXNzd29yZCwge30pLFxuXHRcdFx0XHRcdHBhdGg6IFJvdXRlJDEuQ0hBTkdFX1BBU1NXT1JEXG5cdFx0XHRcdH0pXG5cdFx0XHRdXG5cdFx0fSksXG5cdFx0LyogQF9fUFVSRV9fICovIGpzeChSb3V0ZSwge1xuXHRcdFx0ZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeChOb3RGb3VuZCwge30pLFxuXHRcdFx0cGF0aDogXCIqXCJcblx0XHR9KVxuXHRdIH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgQXBwUm91dGUgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcHBSb3V0ZS5tanMubWFwIiwiaW1wb3J0IENvcHlUb0NsaXBCb2FyZCBmcm9tIFwiLi4vQ29weUNsaXBib2FyZC9Db3B5VG9DbGlwQm9hcmQubWpzXCI7XG5pbXBvcnQgXCIuLi9Db3B5Q2xpcGJvYXJkL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgaXNVUkwgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXJsLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vdXRpbHMvaW5kZXgubWpzXCI7XG5pbXBvcnQgTGlua0V4dGVybmFsIGZyb20gXCIuLi9MaW5rRXh0ZXJuYWwvTGlua0V4dGVybmFsLm1qc1wiO1xuaW1wb3J0IFwiLi4vTGlua0V4dGVybmFsL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgR2l0IH0gZnJvbSBcIi4uL0ljb25zL0RldnNJY29ucy9HaXQyLm1qc1wiO1xuaW1wb3J0IFwiLi4vSWNvbnMvaW5kZXgubWpzXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IGNvbW1vbiB9IGZyb20gXCJAbXVpL21hdGVyaWFsL2NvbG9yc1wiO1xuaW1wb3J0IExpc3QgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTGlzdFwiO1xuaW1wb3J0IEF2YXRhciBmcm9tIFwiQG11aS9tYXRlcmlhbC9BdmF0YXJcIjtcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gXCJAbXVpL21hdGVyaWFsL1R5cG9ncmFwaHlcIjtcbmltcG9ydCBMaXN0SXRlbSBmcm9tIFwiQG11aS9tYXRlcmlhbC9MaXN0SXRlbVwiO1xuaW1wb3J0IExpc3RJdGVtVGV4dCBmcm9tIFwiQG11aS9tYXRlcmlhbC9MaXN0SXRlbVRleHRcIjtcbi8vI3JlZ2lvbiBzcmMvY29tcG9uZW50cy9SZXBvc2l0b3J5L1JlcG9zaXRvcnkudHN4XG52YXIgU3R5bGVkVGV4dCA9IHN0eWxlZChUeXBvZ3JhcGh5KSgocHJvcHMpID0+ICh7XG5cdGZvbnRXZWlnaHQ6IHByb3BzLnRoZW1lLmZvbnRXZWlnaHQuYm9sZCxcblx0dGV4dFRyYW5zZm9ybTogXCJjYXBpdGFsaXplXCJcbn0pKTtcbnZhciBSZXBvc2l0b3J5TGlzdEl0ZW0gPSBzdHlsZWQoTGlzdEl0ZW0pKHtcblx0cGFkZGluZzogMCxcblx0XCI6aG92ZXJcIjogeyBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIiB9XG59KTtcbnZhciBSZXBvc2l0b3J5TGlzdEl0ZW1UZXh0ID0gc3R5bGVkKExpc3RJdGVtVGV4dCkoe1xuXHRwYWRkaW5nOiBcIjAgMCAwIDEwcHhcIixcblx0bWFyZ2luOiAwXG59KTtcbnZhciBSZXBvc2l0b3J5QXZhdGFyID0gc3R5bGVkKEF2YXRhcikoe1xuXHRwYWRkaW5nOiAwLFxuXHRtYXJnaW5MZWZ0OiAwLFxuXHRiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIlxufSk7XG52YXIgUmVwb3NpdG9yeSA9ICh7IHBhY2thZ2VNZXRhIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRjb25zdCB1cmwgPSBwYWNrYWdlTWV0YT8ubGF0ZXN0Py5yZXBvc2l0b3J5Py51cmw7XG5cdGlmICghdXJsIHx8ICFpc1VSTCh1cmwpKSByZXR1cm4gbnVsbDtcblx0Y29uc3QgZ2V0Q29ycmVjdFJlcG9zaXRvcnlVUkwgPSAoKSA9PiB7XG5cdFx0aWYgKCF1cmwuaW5jbHVkZXMoXCJnaXQrXCIpKSByZXR1cm4gdXJsO1xuXHRcdHJldHVybiB1cmwuc3BsaXQoXCJnaXQrXCIpWzFdO1xuXHR9O1xuXHRjb25zdCByZXBvc2l0b3J5VVJMID0gZ2V0Q29ycmVjdFJlcG9zaXRvcnlVUkwoKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTGlzdCwge1xuXHRcdGRlbnNlOiB0cnVlLFxuXHRcdHN1YmhlYWRlcjogLyogQF9fUFVSRV9fICovIGpzeChTdHlsZWRUZXh0LCB7XG5cdFx0XHR2YXJpYW50OiBcInN1YnRpdGxlMVwiLFxuXHRcdFx0Y2hpbGRyZW46IHQoXCJzaWRlYmFyLnJlcG9zaXRvcnkudGl0bGVcIilcblx0XHR9KSxcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoUmVwb3NpdG9yeUxpc3RJdGVtLCB7IGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChSZXBvc2l0b3J5QXZhdGFyLCB7XG5cdFx0XHRzeDogeyBiZ2NvbG9yOiBjb21tb24ud2hpdGUgfSxcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEdpdCwge30pXG5cdFx0fSksIC8qIEBfX1BVUkVfXyAqLyBqc3goUmVwb3NpdG9yeUxpc3RJdGVtVGV4dCwgeyBwcmltYXJ5OiAvKiBAX19QVVJFX18gKi8ganN4KENvcHlUb0NsaXBCb2FyZCwge1xuXHRcdFx0ZGF0YVRlc3RJZDogXCJyZXBvc2l0b3J5SURcIixcblx0XHRcdHRleHQ6IHJlcG9zaXRvcnlVUkwsXG5cdFx0XHR0aXRsZTogcmVwb3NpdG9yeVVSTCxcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KExpbmtFeHRlcm5hbCwge1xuXHRcdFx0XHR0bzogcmVwb3NpdG9yeVVSTCxcblx0XHRcdFx0dmFyaWFudDogXCJvdXRsaW5lXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiByZXBvc2l0b3J5VVJMXG5cdFx0XHR9KVxuXHRcdH0pIH0pXSB9KVxuXHR9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFJlcG9zaXRvcnkgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1SZXBvc2l0b3J5Lm1qcy5tYXAiLCJpbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci9BcHBDb25maWd1cmF0aW9uUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgeyB1c2VWZXJzaW9uIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9WZXJzaW9uUHJvdmlkZXIvVmVyc2lvblByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IHsgRG93bmxvYWRQcm92aWRlciB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvRG93bmxvYWRQcm92aWRlci9Eb3dubG9hZFByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vcHJvdmlkZXJzL2luZGV4Lm1qc1wiO1xuaW1wb3J0IEFjdGlvbkJhciBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9BY3Rpb25CYXIvQWN0aW9uQmFyLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9BY3Rpb25CYXIvaW5kZXgubWpzXCI7XG5pbXBvcnQgQXV0aG9yIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0F1dGhvci9BdXRob3IubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL0F1dGhvci9pbmRleC5tanNcIjtcbmltcG9ydCBEZXZlbG9wZXJzIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0RldmVsb3BlcnMvRGV2ZWxvcGVycy5tanNcIjtcbmltcG9ydCB7IERldmVsb3BlclR5cGUgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9EZXZlbG9wZXJzL0RldmVsb3BlclR5cGUubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL0RldmVsb3BlcnMvaW5kZXgubWpzXCI7XG5pbXBvcnQgRGlzdCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9EaXN0cmlidXRpb24vRGlzdC5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2NvbXBvbmVudHMvRGlzdHJpYnV0aW9uL2luZGV4Lm1qc1wiO1xuaW1wb3J0IEVuZ2luZSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9FbmdpbmVzL0VuZ2luZXMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL0VuZ2luZXMvaW5kZXgubWpzXCI7XG5pbXBvcnQgRnVuZEJ1dHRvbiBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9GdW5kQnV0dG9uL0Z1bmRCdXR0b24ubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL0Z1bmRCdXR0b24vaW5kZXgubWpzXCI7XG5pbXBvcnQgSW5zdGFsbCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9JbnN0YWxsL0luc3RhbGwubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL0luc3RhbGwvaW5kZXgubWpzXCI7XG5pbXBvcnQgS2V5d29yZHMgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvS2V5d29yZHMvS2V5d29yZHMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL0tleXdvcmRzL2luZGV4Lm1qc1wiO1xuaW1wb3J0IERldGFpbFNpZGViYXJUaXRsZSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9TaWRlQmFyVGl0bGUvU2lkZUJhclRpdGxlLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9TaWRlQmFyVGl0bGUvaW5kZXgubWpzXCI7XG5pbXBvcnQgUmVwb3NpdG9yeSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9SZXBvc2l0b3J5L1JlcG9zaXRvcnkubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL1JlcG9zaXRvcnkvaW5kZXgubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUGFwZXIgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvUGFwZXJcIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvU2lkZUJhci9TaWRlYmFyLnRzeFxudmFyIGdldE1vZHVsZVR5cGVzID0gKG1hbmlmZXN0KSA9PiB7XG5cdGlmICghbWFuaWZlc3QubGF0ZXN0KSByZXR1cm4gW107XG5cdGNvbnN0IG1vZHVsZVR5cGVzID0gW21hbmlmZXN0LmxhdGVzdC50eXBlIHx8IFwiY29tbW9uanNcIl07XG5cdGlmIChtYW5pZmVzdC5sYXRlc3QubWFpbikgbW9kdWxlVHlwZXMucHVzaChcImNvbW1vbmpzXCIpO1xuXHRyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KG1vZHVsZVR5cGVzKSk7XG59O1xudmFyIERldGFpbFNpZGViYXIgPSAoKSA9PiB7XG5cdGNvbnN0IHsgcGFja2FnZU1ldGEsIHBhY2thZ2VOYW1lLCBwYWNrYWdlVmVyc2lvbiB9ID0gdXNlVmVyc2lvbigpO1xuXHRjb25zdCB7IGNvbmZpZ09wdGlvbnMgfSA9IHVzZUNvbmZpZygpO1xuXHRjb25zdCB2ZXJzaW9uID0gcGFja2FnZVZlcnNpb24gfHwgcGFja2FnZU1ldGE/LmxhdGVzdC52ZXJzaW9uIHx8IFwiXCI7XG5cdGNvbnN0IHRpbWUgPSBwYWNrYWdlTWV0YT8udGltZSA/IHBhY2thZ2VNZXRhLnRpbWVbdmVyc2lvbl0gOiBcIlwiO1xuXHRpZiAoIXBhY2thZ2VNZXRhIHx8ICFwYWNrYWdlTmFtZSkgcmV0dXJuIG51bGw7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhQYXBlciwge1xuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCJzaWRlYmFyXCIsXG5cdFx0c3g6IHtcblx0XHRcdHBvc2l0aW9uOiBcInN0aWNreVwiLFxuXHRcdFx0dG9wOiAwLFxuXHRcdFx0cDogMixcblx0XHRcdG1sOiB7XG5cdFx0XHRcdHhzOiAwLFxuXHRcdFx0XHRtZDogMlxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Y2hpbGRyZW46IFtcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goRGV0YWlsU2lkZWJhclRpdGxlLCB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBwYWNrYWdlTWV0YS5sYXRlc3Q/LmRlc2NyaXB0aW9uLFxuXHRcdFx0XHRoYXNUeXBlczogdHlwZW9mIHBhY2thZ2VNZXRhLmxhdGVzdD8udHlwZXMgPT09IFwic3RyaW5nXCIsXG5cdFx0XHRcdGlzTGF0ZXN0OiB0eXBlb2YgcGFja2FnZVZlcnNpb24gPT09IFwidW5kZWZpbmVkXCIsXG5cdFx0XHRcdG1vZHVsZVR5cGVzOiBnZXRNb2R1bGVUeXBlcyhwYWNrYWdlTWV0YSksXG5cdFx0XHRcdHBhY2thZ2VOYW1lLFxuXHRcdFx0XHR0aW1lLFxuXHRcdFx0XHR2ZXJzaW9uXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goRG93bmxvYWRQcm92aWRlciwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChBY3Rpb25CYXIsIHtcblx0XHRcdFx0cGFja2FnZU1ldGEsXG5cdFx0XHRcdHNob3dEb3dubG9hZFRhcmJhbGw6IGNvbmZpZ09wdGlvbnMuc2hvd0Rvd25sb2FkVGFyYmFsbCxcblx0XHRcdFx0c2hvd1JhdzogY29uZmlnT3B0aW9ucy5zaG93UmF3XG5cdFx0XHR9KSB9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goRnVuZEJ1dHRvbiwgeyBwYWNrYWdlTWV0YSB9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goSW5zdGFsbCwge1xuXHRcdFx0XHRjb25maWdPcHRpb25zLFxuXHRcdFx0XHRwYWNrYWdlTWV0YSxcblx0XHRcdFx0cGFja2FnZU5hbWVcblx0XHRcdH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChSZXBvc2l0b3J5LCB7IHBhY2thZ2VNZXRhIH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChFbmdpbmUsIHsgcGFja2FnZU1ldGEgfSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KERpc3QsIHsgcGFja2FnZU1ldGEgfSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEtleXdvcmRzLCB7IHBhY2thZ2VNZXRhIH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChBdXRob3IsIHsgcGFja2FnZU1ldGEgfSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KERldmVsb3BlcnMsIHtcblx0XHRcdFx0cGFja2FnZU1ldGEsXG5cdFx0XHRcdHR5cGU6IERldmVsb3BlclR5cGUuTUFJTlRBSU5FUlNcblx0XHRcdH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChEZXZlbG9wZXJzLCB7XG5cdFx0XHRcdHBhY2thZ2VNZXRhLFxuXHRcdFx0XHR0eXBlOiBEZXZlbG9wZXJUeXBlLkNPTlRSSUJVVE9SU1xuXHRcdFx0fSlcblx0XHRdXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRGV0YWlsU2lkZWJhciBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNpZGViYXIubWpzLm1hcCIsImltcG9ydCBSZWFkbWUgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvUmVhZG1lL1JlYWRtZS5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2NvbXBvbmVudHMvUmVhZG1lL2luZGV4Lm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9EZXRhaWwvUmVhZG1lU2VjdGlvbi50c3hcbnZhciBEZXRhaWxDb250YWluZXJDb250ZW50UmVhZG1lID0gKHsgZGVzY3JpcHRpb24gfSkgPT4ge1xuXHRpZiAoIWRlc2NyaXB0aW9uKSByZXR1cm4gbnVsbDtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUmVhZG1lLCB7IGRlc2NyaXB0aW9uIH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRGV0YWlsQ29udGFpbmVyQ29udGVudFJlYWRtZSBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWRtZVNlY3Rpb24ubWpzLm1hcCIsImltcG9ydCBsb2FkYWJsZV9kZWZhdWx0IGZyb20gXCIuLi8uLi91dGlscy9sb2FkYWJsZS5tanNcIjtcbmltcG9ydCB7IHVzZVZlcnNpb24gfSBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL1ZlcnNpb25Qcm92aWRlci9WZXJzaW9uUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9wcm92aWRlcnMvaW5kZXgubWpzXCI7XG5pbXBvcnQgRGV0YWlsQ29udGFpbmVyQ29udGVudFJlYWRtZSBmcm9tIFwiLi9SZWFkbWVTZWN0aW9uLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9EZXRhaWwvQ29udGFpbmVyQ29udGVudC50c3hcbnZhciBUYWJQb3NpdGlvbiA9IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbihUYWJQb3NpdGlvbikge1xuXHRUYWJQb3NpdGlvbltcIlJFQURNRVwiXSA9IFwicmVhZG1lXCI7XG5cdFRhYlBvc2l0aW9uW1wiREVQRU5ERU5DSUVTXCJdID0gXCJkZXBlbmRlbmNpZXNcIjtcblx0VGFiUG9zaXRpb25bXCJWRVJTSU9OU1wiXSA9IFwidmVyc2lvbnNcIjtcblx0VGFiUG9zaXRpb25bXCJVUExJTktTXCJdID0gXCJ1cGxpbmtzXCI7XG5cdHJldHVybiBUYWJQb3NpdGlvbjtcbn0oe30pO1xudmFyIFZlcnNpb25zID0gbG9hZGFibGVfZGVmYXVsdCgoKSA9PiBpbXBvcnQoXCIuLi8uLi9jb21wb25lbnRzL1ZlcnNpb25zL2luZGV4Lm1qc1wiKSk7XG52YXIgVXBMaW5rcyA9IGxvYWRhYmxlX2RlZmF1bHQoKCkgPT4gaW1wb3J0KFwiLi4vLi4vY29tcG9uZW50cy9VcExpbmtzL2luZGV4Lm1qc1wiKSk7XG52YXIgRGVwZW5kZW5jaWVzID0gbG9hZGFibGVfZGVmYXVsdCgoKSA9PiBpbXBvcnQoXCIuLi8uLi9jb21wb25lbnRzL0RlcGVuZGVuY2llcy9pbmRleC5tanNcIikpO1xudmFyIENvbnRhaW5lckNvbnRlbnQgPSAoeyB0YWJQb3NpdGlvbiwgcmVhZERlc2NyaXB0aW9uIH0pID0+IHtcblx0Y29uc3QgeyBwYWNrYWdlTWV0YSwgcGFja2FnZU5hbWUgfSA9IHVzZVZlcnNpb24oKTtcblx0c3dpdGNoICh0YWJQb3NpdGlvbikge1xuXHRcdGNhc2UgVGFiUG9zaXRpb24uUkVBRE1FOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEZXRhaWxDb250YWluZXJDb250ZW50UmVhZG1lLCB7IGRlc2NyaXB0aW9uOiByZWFkRGVzY3JpcHRpb24gfSk7XG5cdFx0Y2FzZSBUYWJQb3NpdGlvbi5VUExJTktTOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChVcExpbmtzLCB7IHBhY2thZ2VNZXRhIH0pO1xuXHRcdGNhc2UgVGFiUG9zaXRpb24uVkVSU0lPTlM6IHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFZlcnNpb25zLCB7XG5cdFx0XHRwYWNrYWdlTWV0YSxcblx0XHRcdHBhY2thZ2VOYW1lXG5cdFx0fSk7XG5cdFx0Y2FzZSBUYWJQb3NpdGlvbi5ERVBFTkRFTkNJRVM6IHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERlcGVuZGVuY2llcywgeyBwYWNrYWdlTWV0YSB9KTtcblx0XHRkZWZhdWx0OiByZXR1cm4gbnVsbDtcblx0fVxufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgQ29udGFpbmVyQ29udGVudCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvbnRhaW5lckNvbnRlbnQubWpzLm1hcCIsImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IFRhYiBmcm9tIFwiQG11aS9tYXRlcmlhbC9UYWJcIjtcbmltcG9ydCBUYWJzIGZyb20gXCJAbXVpL21hdGVyaWFsL1RhYnNcIjtcbmltcG9ydCB1c2VNZWRpYVF1ZXJ5IGZyb20gXCJAbXVpL21hdGVyaWFsL3VzZU1lZGlhUXVlcnlcIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvRGV0YWlsL1RhYnMudHN4XG52YXIgRGV0YWlsQ29udGFpbmVyVGFicyA9ICh7IHRhYlBvc2l0aW9uLCBvbkNoYW5nZSwgc2hvd1VwbGlua3MgfSkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdGNvbnN0IGlzTW9iaWxlID0gdXNlTWVkaWFRdWVyeShcIihtYXgtd2lkdGg6NTk5cHgpXCIpO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoVGFicyQxLCB7XG5cdFx0YWxsb3dTY3JvbGxCdXR0b25zTW9iaWxlOiB0cnVlLFxuXHRcdG9uQ2hhbmdlLFxuXHRcdHNjcm9sbEJ1dHRvbnM6IGlzTW9iaWxlID8gXCJhdXRvXCIgOiBmYWxzZSxcblx0XHR2YWx1ZTogdGFiUG9zaXRpb24sXG5cdFx0dmFyaWFudDogaXNNb2JpbGUgPyBcInNjcm9sbGFibGVcIiA6IFwiZnVsbFdpZHRoXCIsXG5cdFx0Y2hpbGRyZW46IFtcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goVGFiLCB7XG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJyZWFkbWUtdGFiXCIsXG5cdFx0XHRcdGlkOiBcInJlYWRtZS10YWJcIixcblx0XHRcdFx0bGFiZWw6IHQoXCJ0YWIucmVhZG1lXCIpXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goVGFiLCB7XG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJkZXBlbmRlbmNpZXMtdGFiXCIsXG5cdFx0XHRcdGlkOiBcImRlcGVuZGVuY2llcy10YWJcIixcblx0XHRcdFx0bGFiZWw6IHQoXCJ0YWIuZGVwZW5kZW5jaWVzXCIpXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goVGFiLCB7XG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJ2ZXJzaW9ucy10YWJcIixcblx0XHRcdFx0aWQ6IFwidmVyc2lvbnMtdGFiXCIsXG5cdFx0XHRcdGxhYmVsOiB0KFwidGFiLnZlcnNpb25zXCIpXG5cdFx0XHR9KSxcblx0XHRcdHNob3dVcGxpbmtzICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goVGFiLCB7XG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJ1cGxpbmtzLXRhYlwiLFxuXHRcdFx0XHRpZDogXCJ1cGxpbmtzLXRhYlwiLFxuXHRcdFx0XHRsYWJlbDogdChcInRhYi51cGxpbmtzXCIpXG5cdFx0XHR9KVxuXHRcdF1cblx0fSk7XG59O1xudmFyIFRhYnMkMSA9IHN0eWxlZChUYWJzKSh7IG1hcmdpbkJvdHRvbTogMTYgfSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IERldGFpbENvbnRhaW5lclRhYnMgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJzLm1qcy5tYXAiLCJpbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci9BcHBDb25maWd1cmF0aW9uUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgeyB1c2VWZXJzaW9uIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9WZXJzaW9uUHJvdmlkZXIvVmVyc2lvblByb3ZpZGVyLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vcHJvdmlkZXJzL2luZGV4Lm1qc1wiO1xuaW1wb3J0IERlcHJlY2F0ZWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvRGVwcmVjYXRlZC9EZXByZWNhdGVkLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9EZXByZWNhdGVkL2luZGV4Lm1qc1wiO1xuaW1wb3J0IENvbnRhaW5lckNvbnRlbnQgZnJvbSBcIi4vQ29udGFpbmVyQ29udGVudC5tanNcIjtcbmltcG9ydCBEZXRhaWxDb250YWluZXJUYWJzIGZyb20gXCIuL1RhYnMubWpzXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQm94IGZyb20gXCJAbXVpL21hdGVyaWFsL0JveFwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9EZXRhaWwvRGV0YWlsLnRzeFxudmFyIFRhYlBvc2l0aW9uID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKFRhYlBvc2l0aW9uKSB7XG5cdFRhYlBvc2l0aW9uW1wiUkVBRE1FXCJdID0gXCJyZWFkbWVcIjtcblx0VGFiUG9zaXRpb25bXCJERVBFTkRFTkNJRVNcIl0gPSBcImRlcGVuZGVuY2llc1wiO1xuXHRUYWJQb3NpdGlvbltcIlZFUlNJT05TXCJdID0gXCJ2ZXJzaW9uc1wiO1xuXHRUYWJQb3NpdGlvbltcIlVQTElOS1NcIl0gPSBcInVwbGlua3NcIjtcblx0cmV0dXJuIFRhYlBvc2l0aW9uO1xufSh7fSk7XG52YXIgRGV0YWlsQ29udGFpbmVyID0gKCkgPT4ge1xuXHRjb25zdCB7IGNvbmZpZ09wdGlvbnMgfSA9IHVzZUNvbmZpZygpO1xuXHRjb25zdCB0YWJzID0gY29uZmlnT3B0aW9ucy5zaG93VXBsaW5rcyA/IE9iamVjdC52YWx1ZXMoVGFiUG9zaXRpb24pIDogT2JqZWN0LnZhbHVlcyhUYWJQb3NpdGlvbikuZmlsdGVyKCh0YWIpID0+IHRhYiAhPT0gVGFiUG9zaXRpb24uVVBMSU5LUyk7XG5cdGNvbnN0IFt0YWJQb3NpdGlvbiwgc2V0VGFiUG9zaXRpb25dID0gdXNlU3RhdGUoMCk7XG5cdGNvbnN0IHsgcmVhZE1lLCBwYWNrYWdlTWV0YSB9ID0gdXNlVmVyc2lvbigpO1xuXHRjb25zdCBoYW5kbGVDaGFuZ2UgPSAoZXZlbnQsIG5ld1ZhbHVlKSA9PiB7XG5cdFx0c2V0VGFiUG9zaXRpb24obmV3VmFsdWUpO1xuXHR9O1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoQm94LCB7XG5cdFx0Y29tcG9uZW50OiBcImRpdlwiLFxuXHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG5cdFx0bWluV2lkdGg6IDAsXG5cdFx0cGFkZGluZzogMCxcblx0XHRjaGlsZHJlbjogW1xuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChEZXRhaWxDb250YWluZXJUYWJzLCB7XG5cdFx0XHRcdG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG5cdFx0XHRcdHNob3dVcGxpbmtzOiBjb25maWdPcHRpb25zLnNob3dVcGxpbmtzLFxuXHRcdFx0XHR0YWJQb3NpdGlvblxuXHRcdFx0fSksXG5cdFx0XHRwYWNrYWdlTWV0YT8ubGF0ZXN0Py5kZXByZWNhdGVkICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goRGVwcmVjYXRlZCwgeyBtZXNzYWdlOiBwYWNrYWdlTWV0YT8ubGF0ZXN0Py5kZXByZWNhdGVkIH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChDb250YWluZXJDb250ZW50LCB7XG5cdFx0XHRcdHJlYWREZXNjcmlwdGlvbjogcmVhZE1lLFxuXHRcdFx0XHR0YWJQb3NpdGlvbjogdGFic1t0YWJQb3NpdGlvbl1cblx0XHRcdH0pXG5cdFx0XVxuXHR9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IERldGFpbENvbnRhaW5lciBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURldGFpbC5tanMubWFwIiwiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uXCI7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9jb2xvcnNcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVG9vbGJhclwiO1xuaW1wb3J0IEFwcEJhciBmcm9tIFwiQG11aS9tYXRlcmlhbC9BcHBCYXJcIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvSGVhZGVyL3N0eWxlcy50c1xudmFyIElubmVyTmF2QmFyID0gc3R5bGVkKFRvb2xiYXIpKHtcblx0anVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLFxuXHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHRwYWRkaW5nOiAwXG59KTtcbnZhciBHcmVldGluZ3MgPSBzdHlsZWQoXCJzcGFuXCIpKHsgbWFyZ2luOiBcIjAgNXB4IDAgMFwiIH0pO1xudmFyIE1vYmlsZU5hdkJhciA9IHN0eWxlZChcImRpdlwiKSgocHJvcHMpID0+ICh7XG5cdGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRib3JkZXJCb3R0b206IGAxcHggc29saWQgJHtwcm9wcy50aGVtZS5wYWxldHRlLmdyZXlMaWdodH1gLFxuXHRwYWRkaW5nOiBcIjhweFwiLFxuXHRwb3NpdGlvbjogXCJyZWxhdGl2ZVwiXG59KSk7XG52YXIgSW5uZXJNb2JpbGVOYXZCYXIgPSBzdHlsZWQoXCJkaXZcIikoKHByb3BzKSA9PiAoe1xuXHRib3JkZXJSYWRpdXM6IFwiNHB4XCIsXG5cdGJhY2tncm91bmRDb2xvcjogcHJvcHMudGhlbWUucGFsZXR0ZS5ncmV5TGlnaHQsXG5cdGNvbG9yOiBjb21tb24ud2hpdGUsXG5cdHdpZHRoOiBcIjEwMCVcIixcblx0cGFkZGluZzogXCIwIDVweFwiLFxuXHRtYXJnaW46IFwiMCAxMHB4IDAgMFwiXG59KSk7XG52YXIgSWNvblNlYXJjaEJ1dHRvbiA9IHN0eWxlZChJY29uQnV0dG9uKSh7fSk7XG52YXIgSW5mb0J1dHRvbiA9IHN0eWxlZChJY29uQnV0dG9uKSh7fSk7XG52YXIgU3dpdGNoVGhlbWVCdXR0b24gPSBzdHlsZWQoSWNvbkJ1dHRvbikoe30pO1xudmFyIFNldHRpbmdzQnV0dG9tID0gc3R5bGVkKEljb25CdXR0b24pKHt9KTtcbnZhciBTZWFyY2hXcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcblx0ZGlzcGxheTogXCJub25lXCIsXG5cdHdpZHRoOiBcIjEwMCVcIixcblx0bWFyZ2luTGVmdDogMjBcbn0pO1xudmFyIE5hdkJhciA9IHN0eWxlZChBcHBCYXIpKCh7IHRoZW1lIH0pID0+ICh7XG5cdGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImxpZ2h0XCIgPyB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbiA6IHRoZW1lLnBhbGV0dGUuY3lhbkJsdWUsXG5cdGNvbG9yOiBjb21tb24ud2hpdGUsXG5cdG1pbkhlaWdodDogNjAsXG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcblx0W2BAbWVkaWEgKG1heC13aWR0aDogJHt0aGVtZS5icmVha1BvaW50cy54c21hbGx9cHgpYF06IGNzc2BcbiAgICBbZGF0YS10ZXN0aWQ9J2hlYWRlci0tdG9vbHRpcC1pbmZvJ10ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgW2RhdGEtdGVzdGlkPSdoZWFkZXItLWJ1dHRvbi0tZGFyayddLFxuICAgIFtkYXRhLXRlc3RpZD0naGVhZGVyLS1idXR0b24tLWxpZ2h0J10ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgW2RhdGEtdGVzdGlkPSdoZWFkZXItLXRvb2x0aXAtc2V0dGluZ3MnXSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgYCxcblx0W2BAbWVkaWEgKG1pbi13aWR0aDogJHt0aGVtZS5icmVha1BvaW50cy5tZWRpdW19cHgpYF06IGNzc2BcbiAgICBbZGF0YS10ZXN0aWQ9J3NlYXJjaC1jb250YWluZXInXSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICBbZGF0YS10ZXN0aWQ9J2hlYWRlci0tdG9vbHRpcC1zZWFyY2gnXSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBbZGF0YS10ZXN0aWQ9J21vYmlsZS1uYXYtYmFyJ10ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIGAsXG5cdFtgQG1lZGlhIChtaW4td2lkdGg6ICR7dGhlbWUuYnJlYWtQb2ludHMubGFyZ2V9cHgpYF06IGNzc2BcbiAgICBbZGF0YS10ZXN0aWQ9J2lubmVyLW5hdi1iYXInXSB7XG4gICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgfVxuICBgLFxuXHRbYEBtZWRpYSAobWluLXdpZHRoOiAke3RoZW1lLmJyZWFrUG9pbnRzLnhsYXJnZX1weClgXTogY3NzYFxuICAgIFtkYXRhLXRlc3RpZD0naW5uZXItbmF2LWJhciddIHtcbiAgICAgIG1heC13aWR0aDogMTI0MHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIGBcbn0pKTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgR3JlZXRpbmdzLCBJY29uU2VhcmNoQnV0dG9uLCBJbmZvQnV0dG9uLCBJbm5lck1vYmlsZU5hdkJhciwgSW5uZXJOYXZCYXIsIE1vYmlsZU5hdkJhciwgTmF2QmFyLCBTZWFyY2hXcmFwcGVyLCBTZXR0aW5nc0J1dHRvbSwgU3dpdGNoVGhlbWVCdXR0b24gfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGVzLm1qcy5tYXAiLCJpbXBvcnQgTG9nbyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Mb2dvL0xvZ28ubWpzXCI7XG5pbXBvcnQgU2VhcmNoIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1NlYXJjaC9TZWFyY2gubWpzXCI7XG5pbXBvcnQgeyBTZWFyY2hXcmFwcGVyIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vaW5kZXgubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcInJlYWN0LXJvdXRlclwiO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVG9vbGJhclwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9IZWFkZXIvSGVhZGVyTGVmdC50c3hcbnZhciBIZWFkZXJMZWZ0ID0gKHsgc2hvd1NlYXJjaCB9KSA9PiAvKiBAX19QVVJFX18gKi8ganN4cyhUb29sYmFyLCB7XG5cdHN4OiB7XG5cdFx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdFx0cGFkZGluZzogMCxcblx0XHRtYXJnaW5MZWZ0OiAxLFxuXHRcdGZsZXg6IDEsXG5cdFx0XCJAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpXCI6IHtcblx0XHRcdHBhZGRpbmc6IDAsXG5cdFx0XHRtYXJnaW5MZWZ0OiAxLFxuXHRcdFx0bWFyZ2luUmlnaHQ6IFwiMjBweFwiXG5cdFx0fVxuXHR9LFxuXHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goTGluaywge1xuXHRcdHRvOiBcIi9cIixcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChMb2dvLCB7fSlcblx0fSksIHNob3dTZWFyY2ggJiYgLyogQF9fUFVSRV9fICovIGpzeChTZWFyY2hXcmFwcGVyLCB7XG5cdFx0XCJkYXRhLXRlc3RpZFwiOiBcInNlYXJjaC1jb250YWluZXJcIixcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChTZWFyY2gsIHt9KVxuXHR9KV1cbn0pO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBIZWFkZXJMZWZ0IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGVhZGVyTGVmdC5tanMubWFwIiwiaW1wb3J0IExhYmVsIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0xhYmVsL0xhYmVsLm1qc1wiO1xuaW1wb3J0IHsgR3JlZXRpbmdzIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vaW5kZXgubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgRnJhZ21lbnQkMSwganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG4vLyNyZWdpb24gc3JjL3NlY3Rpb25zL0hlYWRlci9IZWFkZXJHcmVldGluZ3MudHN4XG52YXIgSGVhZGVyR3JlZXRpbmdzID0gKHsgdXNlcm5hbWUgfSkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCQxLCB7IGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChHcmVldGluZ3MsIHsgY2hpbGRyZW46IHQoXCJoZWFkZXIuZ3JlZXRpbmdzXCIpIH0pLCAvKiBAX19QVVJFX18gKi8ganN4KExhYmVsLCB7XG5cdFx0XCJkYXRhLXRlc3RpZFwiOiBcImdyZWV0aW5ncy1sYWJlbFwiLFxuXHRcdHRleHQ6IHVzZXJuYW1lLFxuXHRcdHdlaWdodDogXCJib2xkXCJcblx0fSldIH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgSGVhZGVyR3JlZXRpbmdzIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGVhZGVyR3JlZXRpbmdzLm1qcy5tYXAiLCJpbXBvcnQgTWVudUl0ZW0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTWVudUl0ZW0vTWVudUl0ZW0ubWpzXCI7XG5pbXBvcnQgSGVhZGVyR3JlZXRpbmdzIGZyb20gXCIuL0hlYWRlckdyZWV0aW5ncy5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2luZGV4Lm1qc1wiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvblwiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IEZyYWdtZW50IGFzIEZyYWdtZW50JDEsIGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IE1lbnUgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTWVudVwiO1xuaW1wb3J0IEFjY291bnRDaXJjbGUgZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvQWNjb3VudENpcmNsZVwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9IZWFkZXIvSGVhZGVyTWVudS50c3hcbnZhciBIZWFkZXJNZW51ID0gKHsgb25Mb2dvdXQsIHVzZXJuYW1lLCBpc01lbnVPcGVuID0gZmFsc2UsIGFuY2hvckVsLCBvbkxvZ2dlZEluTWVudSwgb25Mb2dnZWRJbk1lbnVDbG9zZSB9KSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50JDEsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KEljb25CdXR0b24sIHtcblx0XHRjb2xvcjogXCJpbmhlcml0XCIsXG5cdFx0XCJkYXRhLXRlc3RpZFwiOiBcImxvZ0luRGlhbG9nSWNvblwiLFxuXHRcdGlkOiBcImhlYWRlci0tYnV0dG9uLWFjY291bnRcIixcblx0XHRvbkNsaWNrOiBvbkxvZ2dlZEluTWVudSxcblx0XHRzaXplOiBcImxhcmdlXCIsXG5cdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQWNjb3VudENpcmNsZSwge30pXG5cdH0pLCAvKiBAX19QVVJFX18gKi8ganN4cyhNZW51LCB7XG5cdFx0YW5jaG9yRWwsXG5cdFx0b25DbG9zZTogb25Mb2dnZWRJbk1lbnVDbG9zZSxcblx0XHRvcGVuOiBpc01lbnVPcGVuLFxuXHRcdHNsb3RQcm9wczogeyByb290OiB7XG5cdFx0XHRhbmNob3JPcmlnaW46IHtcblx0XHRcdFx0dmVydGljYWw6IFwiYm90dG9tXCIsXG5cdFx0XHRcdGhvcml6b250YWw6IFwicmlnaHRcIlxuXHRcdFx0fSxcblx0XHRcdHRyYW5zZm9ybU9yaWdpbjoge1xuXHRcdFx0XHR2ZXJ0aWNhbDogXCJ0b3BcIixcblx0XHRcdFx0aG9yaXpvbnRhbDogXCJyaWdodFwiXG5cdFx0XHR9XG5cdFx0fSB9LFxuXHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChNZW51SXRlbSwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChIZWFkZXJHcmVldGluZ3MsIHsgdXNlcm5hbWUgfSkgfSksIC8qIEBfX1BVUkVfXyAqLyBqc3goTWVudUl0ZW0sIHtcblx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJsb2dPdXREaWFsb2dJY29uXCIsXG5cdFx0XHRpZDogXCJsb2dPdXREaWFsb2dJY29uXCIsXG5cdFx0XHRvbkNsaWNrOiBvbkxvZ291dCxcblx0XHRcdGNoaWxkcmVuOiB0KFwiYnV0dG9uLmxvZ291dFwiKVxuXHRcdH0pXVxuXHR9KV0gfSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBIZWFkZXJNZW51IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGVhZGVyTWVudS5tanMubWFwIiwiaW1wb3J0IHsgSWNvblNlYXJjaEJ1dHRvbiwgSW5mb0J1dHRvbiwgU2V0dGluZ3NCdXR0b20sIFN3aXRjaFRoZW1lQnV0dG9uIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL1NldHRpbmdzXCI7XG5pbXBvcnQgU2VhcmNoTXVpIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL1NlYXJjaFwiO1xuaW1wb3J0IEluZm8gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvSW5mb1wiO1xuaW1wb3J0IE5pZ2h0c1N0YXkgZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvTmlnaHRzU3RheVwiO1xuaW1wb3J0IFdiU3VubnkgZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvV2JTdW5ueVwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9IZWFkZXIvSGVhZGVyVG9vbFRpcEljb24udHN4XG52YXIgSGVhZGVyVG9vbFRpcEljb24gPSBmdW5jdGlvbiBIZWFkZXJUb29sVGlwSWNvbih7IHJlZiwgdG9vbHRpcEljb25UeXBlLCBvbkNsaWNrIH0pIHtcblx0c3dpdGNoICh0b29sdGlwSWNvblR5cGUpIHtcblx0XHRjYXNlIFwiaW5mb1wiOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChJbmZvQnV0dG9uLCB7XG5cdFx0XHRjb2xvcjogXCJpbmhlcml0XCIsXG5cdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwiaGVhZGVyLS10b29sdGlwLWluZm9cIixcblx0XHRcdGlkOiBcImhlYWRlci0tYnV0dG9uLXJlZ2lzdHJ5SW5mb1wiLFxuXHRcdFx0b25DbGljayxcblx0XHRcdHJlZixcblx0XHRcdHNpemU6IFwibGFyZ2VcIixcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEluZm8sIHt9KVxuXHRcdH0pO1xuXHRcdGNhc2UgXCJzZXR0aW5nc1wiOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTZXR0aW5nc0J1dHRvbSwge1xuXHRcdFx0Y29sb3I6IFwiaW5oZXJpdFwiLFxuXHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcImhlYWRlci0tdG9vbHRpcC1zZXR0aW5nc1wiLFxuXHRcdFx0aWQ6IFwiaGVhZGVyLS1idXR0b24tc2V0dGluZ3NcIixcblx0XHRcdG9uQ2xpY2ssXG5cdFx0XHRyZWYsXG5cdFx0XHRzaXplOiBcImxhcmdlXCIsXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChTZXR0aW5ncywge30pXG5cdFx0fSk7XG5cdFx0Y2FzZSBcInNlYXJjaFwiOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChJY29uU2VhcmNoQnV0dG9uLCB7XG5cdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwiaGVhZGVyLS10b29sdGlwLXNlYXJjaFwiLFxuXHRcdFx0Y29sb3I6IFwiaW5oZXJpdFwiLFxuXHRcdFx0b25DbGljayxcblx0XHRcdHJlZixcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFNlYXJjaE11aSwge30pXG5cdFx0fSk7XG5cdFx0Y2FzZSBcImRhcmstbW9kZVwiOiByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTd2l0Y2hUaGVtZUJ1dHRvbiwge1xuXHRcdFx0Y29sb3I6IFwiaW5oZXJpdFwiLFxuXHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcImhlYWRlci0tYnV0dG9uLS1kYXJrXCIsXG5cdFx0XHRvbkNsaWNrLFxuXHRcdFx0cmVmLFxuXHRcdFx0c2l6ZTogXCJsYXJnZVwiLFxuXHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTmlnaHRzU3RheSwge30pXG5cdFx0fSk7XG5cdFx0Y2FzZSBcImxpZ2h0LW1vZGVcIjogcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU3dpdGNoVGhlbWVCdXR0b24sIHtcblx0XHRcdGNvbG9yOiBcImluaGVyaXRcIixcblx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJoZWFkZXItLWJ1dHRvbi0tbGlnaHRcIixcblx0XHRcdG9uQ2xpY2ssXG5cdFx0XHRyZWYsXG5cdFx0XHRzaXplOiBcImxhcmdlXCIsXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChXYlN1bm55LCB7fSlcblx0XHR9KTtcblx0XHRkZWZhdWx0OiByZXR1cm4gbnVsbDtcblx0fVxufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgSGVhZGVyVG9vbFRpcEljb24gYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1IZWFkZXJUb29sVGlwSWNvbi5tanMubWFwIiwiaW1wb3J0IEhlYWRlclRvb2xUaXBJY29uIGZyb20gXCIuL0hlYWRlclRvb2xUaXBJY29uLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9IZWFkZXIvSGVhZGVyVG9vbFRpcC50c3hcbnZhciBIZWFkZXJUb29sVGlwID0gKHsgdG9vbHRpcEljb25UeXBlLCBvbkNsaWNrIH0pID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goSGVhZGVyVG9vbFRpcEljb24sIHtcblx0b25DbGljayxcblx0dG9vbHRpcEljb25UeXBlXG59KTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgSGVhZGVyVG9vbFRpcCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUhlYWRlclRvb2xUaXAubWpzLm1hcCIsImltcG9ydCBIZWFkZXJNZW51IGZyb20gXCIuL0hlYWRlck1lbnUubWpzXCI7XG5pbXBvcnQgSGVhZGVyVG9vbFRpcCBmcm9tIFwiLi9IZWFkZXJUb29sVGlwLm1qc1wiO1xuaW1wb3J0IHsgdXNlQ3VzdG9tVGhlbWUgfSBmcm9tIFwiLi4vLi4vVGhlbWUvVGhlbWVQcm92aWRlci5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgRnJhZ21lbnQkMSwganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJAbXVpL21hdGVyaWFsL0J1dHRvblwiO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVG9vbGJhclwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9IZWFkZXIvSGVhZGVyUmlnaHQudHN4XG52YXIgSGVhZGVyUmlnaHQgPSAoeyBzaG93U2VhcmNoLCB1c2VybmFtZSwgb25Ub2dnbGVMb2dpbiwgaGFzTG9naW4sIHNob3dJbmZvLCBzaG93U2V0dGluZ3MsIHNob3dUaGVtZVN3aXRjaCwgb25Mb2dvdXQsIG9uVG9nZ2xlTW9iaWxlTmF2LCBvbk9wZW5SZWdpc3RyeUluZm9EaWFsb2csIG9uT3BlblNldHRpbmdzRGlhbG9nIH0pID0+IHtcblx0Y29uc3QgeyBpc0RhcmtNb2RlLCBzZXRJc0RhcmtNb2RlIH0gPSB1c2VDdXN0b21UaGVtZSgpO1xuXHRjb25zdCBbYW5jaG9yRWwsIHNldEFuY2hvckVsXSA9IHVzZVN0YXRlKG51bGwpO1xuXHRjb25zdCBbaXNNZW51T3Blbiwgc2V0SXNNZW51T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cdGNvbnN0IGhpZGVMb2dpblNlY3Rpb24gPSBoYXNMb2dpbiA9PT0gZmFsc2U7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRzZXRJc01lbnVPcGVuKEJvb2xlYW4oYW5jaG9yRWwpKTtcblx0fSwgW2FuY2hvckVsXSk7XG5cdC8qKlxuXHQqIG9wZW5zIHBvcG92ZXIgbWVudSBmb3IgbG9nZ2VkIGluIHVzZXIuXG5cdCovXG5cdGNvbnN0IGhhbmRsZUxvZ2dlZEluTWVudSA9IChldmVudCkgPT4ge1xuXHRcdHNldEFuY2hvckVsKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXHR9O1xuXHQvKipcblx0KiBjbG9zZXMgcG9wb3ZlciBtZW51IGZvciBsb2dnZWQgaW4gdXNlclxuXHQqL1xuXHRjb25zdCBoYW5kbGVMb2dnZWRJbk1lbnVDbG9zZSA9ICgpID0+IHtcblx0XHRzZXRBbmNob3JFbChudWxsKTtcblx0fTtcblx0LyoqXG5cdCogY2xvc2Uvb3BlbiBwb3BvdmVyIG1lbnUgZm9yIGxvZ2dlZCBpbiB1c2Vycy5cblx0Ki9cblx0Y29uc3QgaGFuZGxlVG9nZ2xlTG9naW4gPSAoKSA9PiB7XG5cdFx0c2V0QW5jaG9yRWwobnVsbCk7XG5cdFx0b25Ub2dnbGVMb2dpbigpO1xuXHR9O1xuXHRjb25zdCBoYW5kbGVUb2dnbGVEYXJrTGlnaHRNb2RlID0gKCkgPT4ge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0c2V0SXNEYXJrTW9kZSghaXNEYXJrTW9kZSk7XG5cdFx0fSwgMzAwKTtcblx0fTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFRvb2xiYXIsIHtcblx0XHRcImRhdGEtdGVzdGlkXCI6IFwiaGVhZGVyLXJpZ2h0XCIsXG5cdFx0c3g6IHtcblx0XHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdFx0cGFkZGluZzogMCxcblx0XHRcdG1hcmdpblJpZ2h0OiAwLFxuXHRcdFx0XCJAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpXCI6IHtcblx0XHRcdFx0cGFkZGluZzogMCxcblx0XHRcdFx0bWFyZ2luUmlnaHQ6IDBcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNoaWxkcmVuOiBbXG5cdFx0XHRzaG93U2VhcmNoID09PSB0cnVlICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSGVhZGVyVG9vbFRpcCwge1xuXHRcdFx0XHRvbkNsaWNrOiBvblRvZ2dsZU1vYmlsZU5hdixcblx0XHRcdFx0dGl0bGU6IHQoXCJzZWFyY2gucGFja2FnZXNcIiksXG5cdFx0XHRcdHRvb2x0aXBJY29uVHlwZTogXCJzZWFyY2hcIlxuXHRcdFx0fSksXG5cdFx0XHRzaG93U2V0dGluZ3MgPT09IHRydWUgJiYgLyogQF9fUFVSRV9fICovIGpzeChIZWFkZXJUb29sVGlwLCB7XG5cdFx0XHRcdG9uQ2xpY2s6IG9uT3BlblNldHRpbmdzRGlhbG9nLFxuXHRcdFx0XHR0aXRsZTogdChcImhlYWRlci5zZXR0aW5nc1wiKSxcblx0XHRcdFx0dG9vbHRpcEljb25UeXBlOiBcInNldHRpbmdzXCJcblx0XHRcdH0pLFxuXHRcdFx0c2hvd0luZm8gPT09IHRydWUgJiYgLyogQF9fUFVSRV9fICovIGpzeChIZWFkZXJUb29sVGlwLCB7XG5cdFx0XHRcdG9uQ2xpY2s6IG9uT3BlblJlZ2lzdHJ5SW5mb0RpYWxvZyxcblx0XHRcdFx0dGl0bGU6IHQoXCJoZWFkZXIucmVnaXN0cnktaW5mb1wiKSxcblx0XHRcdFx0dG9vbHRpcEljb25UeXBlOiBcImluZm9cIlxuXHRcdFx0fSksXG5cdFx0XHRzaG93VGhlbWVTd2l0Y2ggPT09IHRydWUgJiYgLyogQF9fUFVSRV9fICovIGpzeChIZWFkZXJUb29sVGlwLCB7XG5cdFx0XHRcdG9uQ2xpY2s6IGhhbmRsZVRvZ2dsZURhcmtMaWdodE1vZGUsXG5cdFx0XHRcdHRpdGxlOiB0KFwiaGVhZGVyLmRvY3VtZW50YXRpb25cIiksXG5cdFx0XHRcdHRvb2x0aXBJY29uVHlwZTogaXNEYXJrTW9kZSA/IFwiZGFyay1tb2RlXCIgOiBcImxpZ2h0LW1vZGVcIlxuXHRcdFx0fSksXG5cdFx0XHQhaGlkZUxvZ2luU2VjdGlvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KEZyYWdtZW50JDEsIHsgY2hpbGRyZW46IHVzZXJuYW1lID8gLyogQF9fUFVSRV9fICovIGpzeChIZWFkZXJNZW51LCB7XG5cdFx0XHRcdGFuY2hvckVsLFxuXHRcdFx0XHRpc01lbnVPcGVuLFxuXHRcdFx0XHRvbkxvZ2dlZEluTWVudTogaGFuZGxlTG9nZ2VkSW5NZW51LFxuXHRcdFx0XHRvbkxvZ2dlZEluTWVudUNsb3NlOiBoYW5kbGVMb2dnZWRJbk1lbnVDbG9zZSxcblx0XHRcdFx0b25Mb2dvdXQsXG5cdFx0XHRcdHVzZXJuYW1lXG5cdFx0XHR9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goQnV0dG9uLCB7XG5cdFx0XHRcdGNvbG9yOiBcImluaGVyaXRcIixcblx0XHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcImhlYWRlci0tYnV0dG9uLWxvZ2luXCIsXG5cdFx0XHRcdG9uQ2xpY2s6IGhhbmRsZVRvZ2dsZUxvZ2luLFxuXHRcdFx0XHRjaGlsZHJlbjogdChcImJ1dHRvbi5sb2dpblwiKVxuXHRcdFx0fSkgfSlcblx0XHRdXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgSGVhZGVyUmlnaHQgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1IZWFkZXJSaWdodC5tanMubWFwIiwiaW1wb3J0IHsgdXNlTGFuZ3VhZ2UgfSBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL1RyYW5zbGF0b3JQcm92aWRlci9UcmFuc2xhdG9yUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9pbmRleC5tanNcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBGcmFnbWVudCQxLCBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBpMThuZXh0IGZyb20gXCJpMThuZXh0XCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tIFwiQG11aS9tYXRlcmlhbC9UeXBvZ3JhcGh5XCI7XG5pbXBvcnQgQ2FyZCBmcm9tIFwiQG11aS9tYXRlcmlhbC9DYXJkXCI7XG5pbXBvcnQgQ2FyZENvbnRlbnQgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQ2FyZENvbnRlbnRcIjtcbmltcG9ydCBHcmlkIGZyb20gXCJAbXVpL21hdGVyaWFsL0dyaWRcIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvSGVhZGVyL0xhbmd1YWdlU3dpdGNoLnRzeFxudmFyIENhcmRTZWxlY3RlZCA9IHN0eWxlZChDYXJkKSgoeyB0aGVtZSB9KSA9PiB7XG5cdHJldHVybiB7XG5cdFx0YmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmdyZXlbXCI2MDBcIl0sXG5cdFx0b3BhY2l0eTogXCIwLjlcIixcblx0XHRjb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5jb250cmFzdFRleHQsXG5cdFx0Zm9udFdlaWdodDogXCJib2xkXCJcblx0fTtcbn0pO1xudmFyIENhcmRVblNlbGVjdGVkID0gc3R5bGVkKENhcmQpKCh7IHRoZW1lIH0pID0+IHtcblx0cmV0dXJuIHtcblx0XHRjdXJzb3I6IFwicG9pbnRlclwiLFxuXHRcdFwiOmhvdmVyXCI6IHsgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmdyZXlHYWluc2Jvcm8gfVxuXHR9O1xufSk7XG52YXIgTGFuZ3VhZ2VDb250ZW50ID0gKHsgdHJhbnNsYXRpb24sIGljb24gfSkgPT4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQkMSwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goQ2FyZENvbnRlbnQsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goVHlwb2dyYXBoeSwge1xuXHRkaXNwbGF5OiBcImJsb2NrXCIsXG5cdGd1dHRlckJvdHRvbTogdHJ1ZSxcblx0dmFyaWFudDogXCJjYXB0aW9uXCIsXG5cdGNoaWxkcmVuOiB0cmFuc2xhdGlvblxufSkgfSksIC8qIEBfX1BVUkVfXyAqLyBqc3goQ2FyZENvbnRlbnQsIHsgY2hpbGRyZW46IGljb24gfSldIH0pO1xudmFyIExhbmd1YWdlU3dpdGNoID0gKCkgPT4ge1xuXHRjb25zdCB7IGxhbmd1YWdlLCBzZXRMYW5ndWFnZSwgbGlzdExhbmd1YWdlcyB9ID0gdXNlTGFuZ3VhZ2UoKTtcblx0Y29uc3QgbGlzdENvbnZlcnRlZCA9IGxpc3RMYW5ndWFnZXMucmVkdWNlKChwcmV2LCBpdGVtKSA9PiB7XG5cdFx0cHJldltpdGVtLmxuZ10gPSB7XG5cdFx0XHR0cmFuc2xhdGlvbjogaXRlbS5tZW51S2V5LFxuXHRcdFx0aWNvbjogaXRlbS5pY29uXG5cdFx0fTtcblx0XHRyZXR1cm4gcHJldjtcblx0fSwge30pO1xuXHRjb25zdCBbbGFuZ3VhZ2VzXSA9IHVzZVN0YXRlKE9iamVjdC5rZXlzKGkxOG5leHQub3B0aW9ucz8ucmVzb3VyY2VzIHx8IHt9KSk7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0Y29uc3QgY3VycmVudExhbmd1YWdlID0gbGFuZ3VhZ2U7XG5cdGNvbnN0IGdldEN1cnJlbnRMbmdEZXRhaWxzID0gdXNlQ2FsbGJhY2soKGxhbmd1YWdlKSA9PiB7XG5cdFx0Y29uc3QgbG5nID0gbGlzdENvbnZlcnRlZFtsYW5ndWFnZV0gfHwgbGlzdENvbnZlcnRlZFtcImVuLVVTXCJdO1xuXHRcdHJldHVybiB7XG5cdFx0XHRpY29uOiAvKiBAX19QVVJFX18gKi8ganN4KGxuZy5pY29uLCB7fSksXG5cdFx0XHR0cmFuc2xhdGlvbjogdChsbmcudHJhbnNsYXRpb24pXG5cdFx0fTtcblx0fSwgW2xpc3RDb252ZXJ0ZWQsIHRdKTtcblx0Y29uc3QgaGFuZGxlQ2hhbmdlTGFuZ3VhZ2UgPSB1c2VDYWxsYmFjaygobGFuZ3VhZ2UpID0+IHtcblx0XHRzZXRMYW5ndWFnZShsYW5ndWFnZSk7XG5cdH0sIFtzZXRMYW5ndWFnZV0pO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEdyaWQsIHtcblx0XHRjb2x1bW5zOiB7XG5cdFx0XHR4czogMTIsXG5cdFx0XHRzbTogMTIsXG5cdFx0XHRtZDogMTJcblx0XHR9LFxuXHRcdGNvbnRhaW5lcjogdHJ1ZSxcblx0XHRzcGFjaW5nOiB7XG5cdFx0XHR4czogMSxcblx0XHRcdG1kOiAxXG5cdFx0fSxcblx0XHRjaGlsZHJlbjogbGFuZ3VhZ2VzLm1hcCgobGFuZ3VhZ2UsIGluZGV4KSA9PiB7XG5cdFx0XHRjb25zdCB7IGljb24sIHRyYW5zbGF0aW9uIH0gPSBnZXRDdXJyZW50TG5nRGV0YWlscyhsYW5ndWFnZSk7XG5cdFx0XHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChHcmlkLCB7XG5cdFx0XHRcdHNpemU6IHtcblx0XHRcdFx0XHRzbTogMixcblx0XHRcdFx0XHR4czogNlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRjaGlsZHJlbjogbGFuZ3VhZ2UgPT09IGN1cnJlbnRMYW5ndWFnZSA/IC8qIEBfX1BVUkVfXyAqLyBqc3goQ2FyZFNlbGVjdGVkLCB7XG5cdFx0XHRcdFx0c3g6IHsgbWF4V2lkdGg6IDgwIH0sXG5cdFx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTGFuZ3VhZ2VDb250ZW50LCB7XG5cdFx0XHRcdFx0XHRpY29uLFxuXHRcdFx0XHRcdFx0dHJhbnNsYXRpb25cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goQ2FyZFVuU2VsZWN0ZWQsIHtcblx0XHRcdFx0XHRvbkNsaWNrOiAoKSA9PiBoYW5kbGVDaGFuZ2VMYW5ndWFnZShsYW5ndWFnZSksXG5cdFx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTGFuZ3VhZ2VDb250ZW50LCB7XG5cdFx0XHRcdFx0XHRpY29uLFxuXHRcdFx0XHRcdFx0dHJhbnNsYXRpb25cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9KVxuXHRcdFx0fSwgaW5kZXgpO1xuXHRcdH0pXG5cdH0pIH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgTGFuZ3VhZ2VTd2l0Y2ggYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1MYW5ndWFnZVN3aXRjaC5tanMubWFwIiwiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG4vLyNyZWdpb24gc3JjL3NlY3Rpb25zL0hlYWRlci9SZWdpc3RyeUluZm9Db250ZW50L3N0eWxlcy50c1xudmFyIFRleHRDb250ZW50ID0gc3R5bGVkKFwiZGl2XCIpKCh7IHRoZW1lIH0pID0+ICh7XG5cdHBhZGRpbmdCb3R0b206IFwiMTBweFwiLFxuXHRiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0XG59KSk7XG52YXIgRGVzY3JpcHRpb24gPSBzdHlsZWQoXCJkaXZcIikoKCkgPT4gKHtcblx0Zm9udFNpemU6IFwiMXJlbVwiLFxuXHRmb250U3R5bGU6IFwiaXRhbGljXCJcbn0pKTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgRGVzY3JpcHRpb24sIFRleHRDb250ZW50IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5tanMubWFwIiwiaW1wb3J0IENvcHlUb0NsaXBCb2FyZCBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9Db3B5Q2xpcGJvYXJkL0NvcHlUb0NsaXBCb2FyZC5tanNcIjtcbmltcG9ydCB7IGdldENMSUNoYW5nZVBhc3N3b3JkLCBnZXRDTElTQmVycnlZYW1sUmVnaXN0cnksIGdldENMSVNldENvbmZpZ1JlZ2lzdHJ5LCBnZXRDTElTZXRSZWdpc3RyeSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9jbGktdXRpbHMubWpzXCI7XG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vcHJvdmlkZXJzL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci9BcHBDb25maWd1cmF0aW9uUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgeyBEZXNjcmlwdGlvbiwgVGV4dENvbnRlbnQgfSBmcm9tIFwiLi9zdHlsZXMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi8uLi9pbmRleC5tanNcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IEZyYWdtZW50IGFzIEZyYWdtZW50JDEsIGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IEJveCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Cb3hcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBMaW5rIGZyb20gXCJAbXVpL21hdGVyaWFsL0xpbmtcIjtcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gXCJAbXVpL21hdGVyaWFsL1R5cG9ncmFwaHlcIjtcbmltcG9ydCBSZWFjdE1hcmtkb3duIGZyb20gXCJyZWFjdC1tYXJrZG93blwiO1xuaW1wb3J0IEV4cGFuZE1vcmVJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0V4cGFuZE1vcmVcIjtcbmltcG9ydCBBY2NvcmRpb24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQWNjb3JkaW9uXCI7XG5pbXBvcnQgQWNjb3JkaW9uRGV0YWlscyBmcm9tIFwiQG11aS9tYXRlcmlhbC9BY2NvcmRpb25EZXRhaWxzXCI7XG5pbXBvcnQgQWNjb3JkaW9uU3VtbWFyeSBmcm9tIFwiQG11aS9tYXRlcmlhbC9BY2NvcmRpb25TdW1tYXJ5XCI7XG4vLyNyZWdpb24gc3JjL3NlY3Rpb25zL0hlYWRlci9SZWdpc3RyeUluZm9Db250ZW50L1JlZ2lzdHJ5SW5mb0NvbnRlbnQudHN4XG52YXIgTk9ERV9NQU5BR0VSID0ge1xuXHRucG06IFwibnBtXCIsXG5cdHlhcm46IFwieWFyblwiLFxuXHRwbnBtOiBcInBucG1cIlxufTtcbnZhciByZW5kZXJOcG1UYWIgPSAoc2NvcGUsIHJlZ2lzdHJ5VXJsKSA9PiB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhCb3gsIHtcblx0XHRkaXNwbGF5OiBcImZsZXhcIixcblx0XHRmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuXHRcdGNoaWxkcmVuOiBbXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KENvcHlUb0NsaXBCb2FyZCwge1xuXHRcdFx0XHRkYXRhVGVzdElkOiBcImNvcHlcIixcblx0XHRcdFx0dGV4dDogZ2V0Q0xJU2V0Q29uZmlnUmVnaXN0cnkoYCR7Tk9ERV9NQU5BR0VSLm5wbX0gc2V0YCwgc2NvcGUsIHJlZ2lzdHJ5VXJsKVxuXHRcdFx0fSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KENvcHlUb0NsaXBCb2FyZCwge1xuXHRcdFx0XHRkYXRhVGVzdElkOiBcImNvcHlcIixcblx0XHRcdFx0dGV4dDogZ2V0Q0xJU2V0UmVnaXN0cnkoYCR7Tk9ERV9NQU5BR0VSLm5wbX0gYWRkdXNlcmAsIHJlZ2lzdHJ5VXJsKVxuXHRcdFx0fSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KENvcHlUb0NsaXBCb2FyZCwge1xuXHRcdFx0XHRkYXRhVGVzdElkOiBcImNvcHlcIixcblx0XHRcdFx0dGV4dDogZ2V0Q0xJQ2hhbmdlUGFzc3dvcmQoTk9ERV9NQU5BR0VSLm5wbSwgcmVnaXN0cnlVcmwpXG5cdFx0XHR9KVxuXHRcdF1cblx0fSk7XG59O1xudmFyIHJlbmRlclBucG1UYWIgPSAoc2NvcGUsIHJlZ2lzdHJ5VXJsKSA9PiB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhCb3gsIHtcblx0XHRkaXNwbGF5OiBcImZsZXhcIixcblx0XHRmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuXHRcdGNoaWxkcmVuOiBbXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KENvcHlUb0NsaXBCb2FyZCwge1xuXHRcdFx0XHRkYXRhVGVzdElkOiBcImNvcHlcIixcblx0XHRcdFx0dGV4dDogZ2V0Q0xJU2V0Q29uZmlnUmVnaXN0cnkoYCR7Tk9ERV9NQU5BR0VSLnBucG19IHNldGAsIHNjb3BlLCByZWdpc3RyeVVybClcblx0XHRcdH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChDb3B5VG9DbGlwQm9hcmQsIHtcblx0XHRcdFx0ZGF0YVRlc3RJZDogXCJjb3B5XCIsXG5cdFx0XHRcdHRleHQ6IGdldENMSVNldFJlZ2lzdHJ5KGAke05PREVfTUFOQUdFUi5wbnBtfSBhZGR1c2VyYCwgcmVnaXN0cnlVcmwpXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goQ29weVRvQ2xpcEJvYXJkLCB7XG5cdFx0XHRcdGRhdGFUZXN0SWQ6IFwiY29weVwiLFxuXHRcdFx0XHR0ZXh0OiBnZXRDTElDaGFuZ2VQYXNzd29yZChOT0RFX01BTkFHRVIucG5wbSwgcmVnaXN0cnlVcmwpXG5cdFx0XHR9KVxuXHRcdF1cblx0fSk7XG59O1xudmFyIHJlbmRlcllhcm5UYWIgPSAoc2NvcGUsIHJlZ2lzdHJ5VXJsKSA9PiB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEJveCwge1xuXHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG5cdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29weVRvQ2xpcEJvYXJkLCB7XG5cdFx0XHRkYXRhVGVzdElkOiBcImNvcHlcIixcblx0XHRcdHRleHQ6IGdldENMSVNldENvbmZpZ1JlZ2lzdHJ5KGAke05PREVfTUFOQUdFUi55YXJufSBjb25maWcgc2V0YCwgc2NvcGUsIHJlZ2lzdHJ5VXJsKVxuXHRcdH0pXG5cdH0pO1xufTtcbnZhciByZW5kZXJZYXJuQmVycnlUYWIgPSAoc2NvcGUsIHJlZ2lzdHJ5VXJsKSA9PiB7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEJveCwge1xuXHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG5cdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29weVRvQ2xpcEJvYXJkLCB7XG5cdFx0XHRkYXRhVGVzdElkOiBcImNvcHlcIixcblx0XHRcdHRleHQ6IGdldENMSVNCZXJyeVlhbWxSZWdpc3RyeShzY29wZSwgcmVnaXN0cnlVcmwpXG5cdFx0fSlcblx0fSk7XG59O1xudmFyIEFjY29yZGlvbkNvbnRhaW5lciA9IHN0eWxlZChcImRpdlwiKSh7XG5cdHBhZGRpbmc6IDAsXG5cdHBhZGRpbmdMZWZ0OiAwLFxuXHRwYWRkaW5nUmlnaHQ6IDBcbn0pO1xudmFyIENvbW1hbmRDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoeyBwYWRkaW5nOiA1IH0pO1xudmFyIExpbmtDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoe1xuXHRtYXJnaW46IDEwLFxuXHRtYXJnaW5MZWZ0OiAwXG59KTtcbnZhciBSZWdpc3RyeUluZm9Db250ZW50ID0gKHsgc2NvcGUsIHJlZ2lzdHJ5VXJsIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRjb25zdCB7IGNvbmZpZ09wdGlvbnMgfSA9IHVzZUNvbmZpZygpO1xuXHRjb25zdCBoYXNOcG0gPSBjb25maWdPcHRpb25zPy5wa2dNYW5hZ2Vycz8uaW5jbHVkZXMoXCJucG1cIik7XG5cdGNvbnN0IGhhc1lhcm4gPSBjb25maWdPcHRpb25zPy5wa2dNYW5hZ2Vycz8uaW5jbHVkZXMoXCJ5YXJuXCIpO1xuXHRjb25zdCBoYXNQbnBtID0gY29uZmlnT3B0aW9ucz8ucGtnTWFuYWdlcnM/LmluY2x1ZGVzKFwicG5wbVwiKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50JDEsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KFRleHRDb250ZW50LCB7IGNoaWxkcmVuOiB0KFwicGFja2FnZU1hbmFnZXJzLmRlc2NyaXB0aW9uXCIpIH0pLCAvKiBAX19QVVJFX18gKi8ganN4cyhBY2NvcmRpb25Db250YWluZXIsIHsgY2hpbGRyZW46IFtcblx0XHQvKiBAX19QVVJFX18gKi8ganN4cyhBY2NvcmRpb24sIHtcblx0XHRcdGRpc2FibGVkOiAhaGFzTnBtLFxuXHRcdFx0Y2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KEFjY29yZGlvblN1bW1hcnksIHtcblx0XHRcdFx0XCJhcmlhLWNvbnRyb2xzXCI6IFwicGFuZWwxYS1jb250ZW50XCIsXG5cdFx0XHRcdGV4cGFuZEljb246IC8qIEBfX1BVUkVfXyAqLyBqc3goRXhwYW5kTW9yZUljb24sIHt9KSxcblx0XHRcdFx0aWQ6IFwicGFuZWwxYS1oZWFkZXJcIixcblx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goVHlwb2dyYXBoeSwge1xuXHRcdFx0XHRcdHN4OiB7XG5cdFx0XHRcdFx0XHRmb250U2l6ZTogXCIxcmVtXCIsXG5cdFx0XHRcdFx0XHRmb250V2VpZ2h0OiBcImJvbGRcIlxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Y2hpbGRyZW46IFwibnBtXCJcblx0XHRcdFx0fSlcblx0XHRcdH0pLCAvKiBAX19QVVJFX18gKi8ganN4KEFjY29yZGlvbkRldGFpbHMsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tbWFuZENvbnRhaW5lciwge1xuXHRcdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwidGFiLWNvbnRlbnRcIixcblx0XHRcdFx0Y2hpbGRyZW46IHJlbmRlck5wbVRhYihzY29wZSwgcmVnaXN0cnlVcmwpXG5cdFx0XHR9KSB9KV1cblx0XHR9KSxcblx0XHQvKiBAX19QVVJFX18gKi8ganN4cyhBY2NvcmRpb24sIHtcblx0XHRcdGRpc2FibGVkOiAhaGFzWWFybixcblx0XHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChBY2NvcmRpb25TdW1tYXJ5LCB7XG5cdFx0XHRcdFwiYXJpYS1jb250cm9sc1wiOiBcInBhbmVsMmEtY29udGVudFwiLFxuXHRcdFx0XHRleHBhbmRJY29uOiAvKiBAX19QVVJFX18gKi8ganN4KEV4cGFuZE1vcmVJY29uLCB7fSksXG5cdFx0XHRcdGlkOiBcInBhbmVsMmEtaGVhZGVyXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHRcdFx0XHRzeDoge1xuXHRcdFx0XHRcdFx0Zm9udFNpemU6IFwiMXJlbVwiLFxuXHRcdFx0XHRcdFx0Zm9udFdlaWdodDogXCJib2xkXCJcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGNoaWxkcmVuOiBcInlhcm5cIlxuXHRcdFx0XHR9KVxuXHRcdFx0fSksIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEFjY29yZGlvbkRldGFpbHMsIHsgY2hpbGRyZW46IFtcblx0XHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChEZXNjcmlwdGlvbiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChSZWFjdE1hcmtkb3duLCB7IGNoaWxkcmVuOiB0KFwicGFja2FnZU1hbmFnZXJzLnlhcm5jbGFzc2ljRGV0YWlsc1wiKSB9KSB9KSxcblx0XHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChDb21tYW5kQ29udGFpbmVyLCB7XG5cdFx0XHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcInRhYi1jb250ZW50XCIsXG5cdFx0XHRcdFx0Y2hpbGRyZW46IHJlbmRlcllhcm5UYWIoc2NvcGUsIHJlZ2lzdHJ5VXJsKVxuXHRcdFx0XHR9KSxcblx0XHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChEZXNjcmlwdGlvbiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChSZWFjdE1hcmtkb3duLCB7IGNoaWxkcmVuOiB0KFwicGFja2FnZU1hbmFnZXJzLnlhcm5CZXJyeURldGFpbHNcIikgfSkgfSksXG5cdFx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tbWFuZENvbnRhaW5lciwge1xuXHRcdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJ0YWItY29udGVudFwiLFxuXHRcdFx0XHRcdGNoaWxkcmVuOiByZW5kZXJZYXJuQmVycnlUYWIoc2NvcGUsIHJlZ2lzdHJ5VXJsKVxuXHRcdFx0XHR9KVxuXHRcdFx0XSB9KV1cblx0XHR9KSxcblx0XHQvKiBAX19QVVJFX18gKi8ganN4cyhBY2NvcmRpb24sIHtcblx0XHRcdGRpc2FibGVkOiAhaGFzUG5wbSxcblx0XHRcdGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChBY2NvcmRpb25TdW1tYXJ5LCB7XG5cdFx0XHRcdFwiYXJpYS1jb250cm9sc1wiOiBcInBhbmVsM2EtY29udGVudFwiLFxuXHRcdFx0XHRleHBhbmRJY29uOiAvKiBAX19QVVJFX18gKi8ganN4KEV4cGFuZE1vcmVJY29uLCB7fSksXG5cdFx0XHRcdGlkOiBcInBhbmVsM2EtaGVhZGVyXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHRcdFx0XHRzeDoge1xuXHRcdFx0XHRcdFx0Zm9udFNpemU6IFwiMXJlbVwiLFxuXHRcdFx0XHRcdFx0Zm9udFdlaWdodDogXCJib2xkXCJcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGNoaWxkcmVuOiBcInBucG1cIlxuXHRcdFx0XHR9KVxuXHRcdFx0fSksIC8qIEBfX1BVUkVfXyAqLyBqc3goQWNjb3JkaW9uRGV0YWlscywgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChDb21tYW5kQ29udGFpbmVyLCB7XG5cdFx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJ0YWItY29udGVudFwiLFxuXHRcdFx0XHRjaGlsZHJlbjogcmVuZGVyUG5wbVRhYihzY29wZSwgcmVnaXN0cnlVcmwpXG5cdFx0XHR9KSB9KV1cblx0XHR9KSxcblx0XHQvKiBAX19QVVJFX18gKi8ganN4KExpbmtDb250YWluZXIsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTGluaywge1xuXHRcdFx0aHJlZjogXCJodHRwczovL3ZlcmRhY2Npby5vcmcvZG9jcy9jbGktcmVnaXN0cnlcIixcblx0XHRcdHRhcmdldDogXCJfYmxhbmtcIixcblx0XHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHsgY2hpbGRyZW46IHQoXCJoZWFkZXIucmVnaXN0cnktaW5mby1saW5rXCIpIH0pXG5cdFx0fSkgfSlcblx0XSB9KV0gfSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBSZWdpc3RyeUluZm9Db250ZW50IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmVnaXN0cnlJbmZvQ29udGVudC5tanMubWFwIiwiaW1wb3J0IHsgZ2V0Q29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9jb25maWd1cmF0aW9uLm1qc1wiO1xuaW1wb3J0IFJlZ2lzdHJ5SW5mb0RpYWxvZyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9SZWdpc3RyeUluZm9EaWFsb2cvUmVnaXN0cnlJbmZvRGlhbG9nLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9SZWdpc3RyeUluZm9EaWFsb2cvaW5kZXgubWpzXCI7XG5pbXBvcnQgTGFuZ3VhZ2VTd2l0Y2ggZnJvbSBcIi4vTGFuZ3VhZ2VTd2l0Y2gubWpzXCI7XG5pbXBvcnQgUmVnaXN0cnlJbmZvQ29udGVudCBmcm9tIFwiLi9SZWdpc3RyeUluZm9Db250ZW50L1JlZ2lzdHJ5SW5mb0NvbnRlbnQubWpzXCI7XG5pbXBvcnQgXCIuL1JlZ2lzdHJ5SW5mb0NvbnRlbnQvaW5kZXgubWpzXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IEJveCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Cb3hcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBUYWIgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVGFiXCI7XG5pbXBvcnQgVGFicyBmcm9tIFwiQG11aS9tYXRlcmlhbC9UYWJzXCI7XG5pbXBvcnQgUmVhY3RNYXJrZG93biBmcm9tIFwicmVhY3QtbWFya2Rvd25cIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvSGVhZGVyL0hlYWRlclNldHRpbmdzRGlhbG9nLnRzeFxuZnVuY3Rpb24gYTExeVByb3BzKGluZGV4KSB7XG5cdHJldHVybiB7XG5cdFx0aWQ6IGBzaW1wbGUtdGFiLSR7aW5kZXh9YCxcblx0XHRcImFyaWEtY29udHJvbHNcIjogYHNpbXBsZS10YWJwYW5lbC0ke2luZGV4fWBcblx0fTtcbn1cbmZ1bmN0aW9uIFRhYlBhbmVsKHByb3BzKSB7XG5cdGNvbnN0IHsgY2hpbGRyZW4sIHZhbHVlLCBpbmRleCwgLi4ub3RoZXIgfSA9IHByb3BzO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7XG5cdFx0XCJhcmlhLWxhYmVsbGVkYnlcIjogYHNpbXBsZS10YWItJHtpbmRleH1gLFxuXHRcdGhpZGRlbjogdmFsdWUgIT09IGluZGV4LFxuXHRcdGlkOiBgc2ltcGxlLXRhYnBhbmVsLSR7aW5kZXh9YCxcblx0XHRyb2xlOiBcInRhYnBhbmVsXCIsXG5cdFx0Li4ub3RoZXIsXG5cdFx0Y2hpbGRyZW46IHZhbHVlID09PSBpbmRleCAmJiAvKiBAX19QVVJFX18gKi8ganN4KEJveCwge1xuXHRcdFx0c3g6IHsgcGFkZGluZ1RvcDogMyB9LFxuXHRcdFx0Y2hpbGRyZW5cblx0XHR9KVxuXHR9KTtcbn1cbnZhciBUZXh0Q29udGVudCA9IHN0eWxlZChcImRpdlwiKSgoeyB0aGVtZSB9KSA9PiAoe1xuXHRwYWRkaW5nOiBcIjEwcHggMFwiLFxuXHRiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0XG59KSk7XG52YXIgSGVhZGVyU2V0dGluZ3NEaWFsb2cgPSAoeyBvbkNsb3NlRGlhbG9nLCBpc09wZW4gfSkgPT4ge1xuXHRjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuXHRjb25zdCBoYW5kbGVDaGFuZ2UgPSAoX2V2ZW50LCBuZXdWYWx1ZSkgPT4ge1xuXHRcdHNldFZhbHVlKG5ld1ZhbHVlKTtcblx0fTtcblx0Y29uc3QgeyBzY29wZSwgYmFzZSB9ID0gZ2V0Q29uZmlndXJhdGlvbigpO1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFJlZ2lzdHJ5SW5mb0RpYWxvZywge1xuXHRcdG9uQ2xvc2U6IG9uQ2xvc2VEaWFsb2csXG5cdFx0b3BlbjogaXNPcGVuLFxuXHRcdHRpdGxlOiB0KFwiZGlhbG9nLnNldHRpbmdzLnRpdGxlXCIpLFxuXHRcdGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhCb3gsIHtcblx0XHRcdHN4OiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxuXHRcdFx0Y2hpbGRyZW46IFtcblx0XHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChCb3gsIHtcblx0XHRcdFx0XHRzeDoge1xuXHRcdFx0XHRcdFx0Ym9yZGVyQm90dG9tOiAxLFxuXHRcdFx0XHRcdFx0Ym9yZGVyQ29sb3I6IFwiZGl2aWRlclwiXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoVGFicywge1xuXHRcdFx0XHRcdFx0XCJhcmlhLWxhYmVsXCI6IFwiYmFzaWMgdGFicyBleGFtcGxlXCIsXG5cdFx0XHRcdFx0XHRvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLFxuXHRcdFx0XHRcdFx0dmFsdWUsXG5cdFx0XHRcdFx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goVGFiLCB7XG5cdFx0XHRcdFx0XHRcdGxhYmVsOiB0KFwicGFja2FnZU1hbmFnZXJzLnRpdGxlXCIpLFxuXHRcdFx0XHRcdFx0XHQuLi5hMTF5UHJvcHMoMClcblx0XHRcdFx0XHRcdH0pLCAvKiBAX19QVVJFX18gKi8ganN4KFRhYiwge1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogdChcImxhbmd1YWdlLnRpdGxlXCIpLFxuXHRcdFx0XHRcdFx0XHQuLi5hMTF5UHJvcHMoMSlcblx0XHRcdFx0XHRcdH0pXVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KFRhYlBhbmVsLCB7XG5cdFx0XHRcdFx0aW5kZXg6IDAsXG5cdFx0XHRcdFx0dmFsdWUsXG5cdFx0XHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUmVnaXN0cnlJbmZvQ29udGVudCwge1xuXHRcdFx0XHRcdFx0cmVnaXN0cnlVcmw6IGJhc2UsXG5cdFx0XHRcdFx0XHRzY29wZVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4cyhUYWJQYW5lbCwge1xuXHRcdFx0XHRcdGluZGV4OiAxLFxuXHRcdFx0XHRcdHZhbHVlLFxuXHRcdFx0XHRcdGNoaWxkcmVuOiBbXG5cdFx0XHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KFRleHRDb250ZW50LCB7IGNoaWxkcmVuOiB0KFwibGFuZ3VhZ2UuZGVzY3JpcHRpb25cIikgfSksXG5cdFx0XHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KExhbmd1YWdlU3dpdGNoLCB7fSksXG5cdFx0XHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KFJlYWN0TWFya2Rvd24sIHsgY2hpbGRyZW46IHQoXCJsYW5ndWFnZS5jb250cmlidXRlXCIpIH0pXG5cdFx0XHRcdFx0XVxuXHRcdFx0XHR9KVxuXHRcdFx0XVxuXHRcdH0pXG5cdH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgSGVhZGVyU2V0dGluZ3NEaWFsb2cgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1IZWFkZXJTZXR0aW5nc0RpYWxvZy5tanMubWFwIiwiaW1wb3J0IHsgaXNUb2tlbkV4cGlyZSB9IGZyb20gXCIuLi8uLi91dGlscy90b2tlbi5tanNcIjtcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci5tanNcIjtcbmltcG9ydCB7IHVzZUF1dGggfSBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL0F1dGhQcm92aWRlci9BdXRoUHJvdmlkZXIubWpzXCI7XG5pbXBvcnQgTG9naW5EaWFsb2cgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTG9naW5EaWFsb2cvTG9naW5EaWFsb2cubWpzXCI7XG5pbXBvcnQgU2VhcmNoIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1NlYXJjaC9TZWFyY2gubWpzXCI7XG5pbXBvcnQgeyBJbm5lck1vYmlsZU5hdkJhciwgSW5uZXJOYXZCYXIsIE1vYmlsZU5hdkJhciwgTmF2QmFyIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IEhlYWRlckxlZnQgZnJvbSBcIi4vSGVhZGVyTGVmdC5tanNcIjtcbmltcG9ydCBIZWFkZXJSaWdodCBmcm9tIFwiLi9IZWFkZXJSaWdodC5tanNcIjtcbmltcG9ydCBIZWFkZXJTZXR0aW5nc0RpYWxvZyBmcm9tIFwiLi9IZWFkZXJTZXR0aW5nc0RpYWxvZy5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2luZGV4Lm1qc1wiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBGcmFnbWVudCQxLCBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvQnV0dG9uXCI7XG4vLyNyZWdpb24gc3JjL3NlY3Rpb25zL0hlYWRlci9IZWFkZXIudHN4XG52YXIgSGVhZGVyID0gKHsgSGVhZGVySW5mb0RpYWxvZywgaXNQbGFpbkhlYWRlciwgdG9rZW5DaGVja0ludGVydmFsTXMgPSAzNjAwICogMWUzIH0pID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRjb25zdCBbaXNJbmZvRGlhbG9nT3Blbiwgc2V0T3BlbkluZm9EaWFsb2ddID0gdXNlU3RhdGUoZmFsc2UpO1xuXHRjb25zdCBbaXNTZXR0aW5nc0RpYWxvZ09wZW4sIHNldFNldHRpbmdzRGlhbG9nT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cdGNvbnN0IFtzaG93TW9iaWxlTmF2QmFyLCBzZXRTaG93TW9iaWxlTmF2QmFyXSA9IHVzZVN0YXRlKGZhbHNlKTtcblx0Y29uc3QgW3Nob3dMb2dpbk1vZGFsLCBzZXRTaG93TG9naW5Nb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cdGNvbnN0IHsgY29uZmlnT3B0aW9ucyB9ID0gdXNlQ29uZmlnKCk7XG5cdGNvbnN0IHsgdXNlclN0YXRlLCBsb2dPdXRVc2VyIH0gPSB1c2VBdXRoKCk7XG5cdGNvbnN0IHRva2VuUmVmID0gdXNlUmVmKHVzZXJTdGF0ZT8udG9rZW4pO1xuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdHRva2VuUmVmLmN1cnJlbnQgPSB1c2VyU3RhdGU/LnRva2VuO1xuXHR9LCBbdXNlclN0YXRlPy50b2tlbl0pO1xuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGZ1bmN0aW9uIGNoZWNrVG9rZW4oKSB7XG5cdFx0XHRjb25zdCB0b2tlbiA9IHRva2VuUmVmLmN1cnJlbnQ7XG5cdFx0XHRpZiAodG9rZW4gJiYgaXNUb2tlbkV4cGlyZSh0b2tlbikpIGxvZ091dFVzZXI/LigpO1xuXHRcdH1cblx0XHRjaGVja1Rva2VuKCk7XG5cdFx0Y29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChjaGVja1Rva2VuLCB0b2tlbkNoZWNrSW50ZXJ2YWxNcyk7XG5cdFx0cmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuXHR9LCBbdG9rZW5DaGVja0ludGVydmFsTXNdKTtcblx0Y29uc3QgaGFuZGxlTG9nb3V0ID0gKCkgPT4ge1xuXHRcdGxvZ091dFVzZXI/LigpO1xuXHRcdHNldFNob3dMb2dpbk1vZGFsKGZhbHNlKTtcblx0fTtcblx0aWYgKGlzUGxhaW5IZWFkZXIpIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KE5hdkJhciwge1xuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCJoZWFkZXJcIixcblx0XHRwb3NpdGlvbjogXCJzdGF0aWNcIixcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoSW5uZXJOYXZCYXIsIHtcblx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJpbm5lci1uYXYtYmFyXCIsXG5cdFx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goSGVhZGVyTGVmdCwgeyBzaG93U2VhcmNoOiBmYWxzZSB9KSwgLyogQF9fUFVSRV9fICovIGpzeChIZWFkZXJSaWdodCwge1xuXHRcdFx0XHRoYXNMb2dpbjogZmFsc2UsXG5cdFx0XHRcdG9uTG9nb3V0OiAoKSA9PiB7fSxcblx0XHRcdFx0b25PcGVuUmVnaXN0cnlJbmZvRGlhbG9nOiAoKSA9PiB7fSxcblx0XHRcdFx0b25PcGVuU2V0dGluZ3NEaWFsb2c6ICgpID0+IHt9LFxuXHRcdFx0XHRvblRvZ2dsZUxvZ2luOiAoKSA9PiB7fSxcblx0XHRcdFx0b25Ub2dnbGVNb2JpbGVOYXY6ICgpID0+IHt9LFxuXHRcdFx0XHRzaG93SW5mbzogZmFsc2UsXG5cdFx0XHRcdHNob3dTZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRzaG93U2V0dGluZ3M6IGZhbHNlLFxuXHRcdFx0XHRzaG93VGhlbWVTd2l0Y2g6IGZhbHNlLFxuXHRcdFx0XHR1c2VybmFtZTogXCJcIlxuXHRcdFx0fSldXG5cdFx0fSlcblx0fSk7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCQxLCB7IGNoaWxkcmVuOiBbXG5cdFx0LyogQF9fUFVSRV9fICovIGpzeHMoTmF2QmFyLCB7XG5cdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwiaGVhZGVyXCIsXG5cdFx0XHRwb3NpdGlvbjogXCJzdGF0aWNcIixcblx0XHRcdGNoaWxkcmVuOiBbXG5cdFx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3hzKElubmVyTmF2QmFyLCB7XG5cdFx0XHRcdFx0XCJkYXRhLXRlc3RpZFwiOiBcImlubmVyLW5hdi1iYXJcIixcblx0XHRcdFx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goSGVhZGVyTGVmdCwgeyBzaG93U2VhcmNoOiBjb25maWdPcHRpb25zLnNob3dTZWFyY2ggfSksIC8qIEBfX1BVUkVfXyAqLyBqc3goSGVhZGVyUmlnaHQsIHtcblx0XHRcdFx0XHRcdGhhc0xvZ2luOiBjb25maWdPcHRpb25zPy5sb2dpbixcblx0XHRcdFx0XHRcdG9uTG9nb3V0OiBoYW5kbGVMb2dvdXQsXG5cdFx0XHRcdFx0XHRvbk9wZW5SZWdpc3RyeUluZm9EaWFsb2c6ICgpID0+IHNldE9wZW5JbmZvRGlhbG9nKHRydWUpLFxuXHRcdFx0XHRcdFx0b25PcGVuU2V0dGluZ3NEaWFsb2c6ICgpID0+IHNldFNldHRpbmdzRGlhbG9nT3Blbih0cnVlKSxcblx0XHRcdFx0XHRcdG9uVG9nZ2xlTG9naW46ICgpID0+IHNldFNob3dMb2dpbk1vZGFsKCFzaG93TG9naW5Nb2RhbCksXG5cdFx0XHRcdFx0XHRvblRvZ2dsZU1vYmlsZU5hdjogKCkgPT4gc2V0U2hvd01vYmlsZU5hdkJhcighc2hvd01vYmlsZU5hdkJhciksXG5cdFx0XHRcdFx0XHRzaG93SW5mbzogY29uZmlnT3B0aW9ucy5zaG93SW5mbyxcblx0XHRcdFx0XHRcdHNob3dTZWFyY2g6IGNvbmZpZ09wdGlvbnMuc2hvd1NlYXJjaCxcblx0XHRcdFx0XHRcdHNob3dTZXR0aW5nczogY29uZmlnT3B0aW9ucy5zaG93U2V0dGluZ3MsXG5cdFx0XHRcdFx0XHRzaG93VGhlbWVTd2l0Y2g6IGNvbmZpZ09wdGlvbnMuc2hvd1RoZW1lU3dpdGNoLFxuXHRcdFx0XHRcdFx0dXNlcm5hbWU6IHVzZXJTdGF0ZT8udXNlcm5hbWVcblx0XHRcdFx0XHR9KV1cblx0XHRcdFx0fSksXG5cdFx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goSGVhZGVyU2V0dGluZ3NEaWFsb2csIHtcblx0XHRcdFx0XHRpc09wZW46IGlzU2V0dGluZ3NEaWFsb2dPcGVuLFxuXHRcdFx0XHRcdG9uQ2xvc2VEaWFsb2c6ICgpID0+IHNldFNldHRpbmdzRGlhbG9nT3BlbihmYWxzZSlcblx0XHRcdFx0fSksXG5cdFx0XHRcdEhlYWRlckluZm9EaWFsb2cgPyAvKiBAX19QVVJFX18gKi8ganN4KEhlYWRlckluZm9EaWFsb2csIHtcblx0XHRcdFx0XHRkaWFsb2dUaXRsZTogdChcImRpYWxvZy5yZWdpc3RyeS1pbmZvLnRpdGxlXCIpLFxuXHRcdFx0XHRcdGlzT3BlbjogaXNJbmZvRGlhbG9nT3Blbixcblx0XHRcdFx0XHRvbkNsb3NlRGlhbG9nOiAoKSA9PiBzZXRPcGVuSW5mb0RpYWxvZyhmYWxzZSlcblx0XHRcdFx0fSkgOiBudWxsXG5cdFx0XHRdXG5cdFx0fSksXG5cdFx0c2hvd01vYmlsZU5hdkJhciAmJiAvKiBAX19QVVJFX18gKi8ganN4cyhNb2JpbGVOYXZCYXIsIHtcblx0XHRcdFwiZGF0YS10ZXN0aWRcIjogXCJtb2JpbGUtbmF2LWJhclwiLFxuXHRcdFx0Y2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KElubmVyTW9iaWxlTmF2QmFyLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFNlYXJjaCwge30pIH0pLCAvKiBAX19QVVJFX18gKi8ganN4KEJ1dHRvbiwge1xuXHRcdFx0XHRjb2xvcjogXCJpbmhlcml0XCIsXG5cdFx0XHRcdG9uQ2xpY2s6ICgpID0+IHNldFNob3dNb2JpbGVOYXZCYXIoZmFsc2UpLFxuXHRcdFx0XHRjaGlsZHJlbjogdChcImJ1dHRvbi5jYW5jZWxcIilcblx0XHRcdH0pXVxuXHRcdH0pLFxuXHRcdCF1c2VyU3RhdGU/LnVzZXJuYW1lICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goTG9naW5EaWFsb2csIHtcblx0XHRcdG9uQ2xvc2U6ICgpID0+IHNldFNob3dMb2dpbk1vZGFsKGZhbHNlKSxcblx0XHRcdG9wZW46IHNob3dMb2dpbk1vZGFsXG5cdFx0fSlcblx0XSB9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IEhlYWRlciBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUhlYWRlci5tanMubWFwIiwiaW1wb3J0IHsgdXNlTWFuaWZlc3RzIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9NYW5pZmVzdHNQcm92aWRlci9NYW5pZmVzdHNQcm92aWRlci5tanNcIjtcbmltcG9ydCBMb2FkaW5nIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0xvYWRpbmcvTG9hZGluZy5tanNcIjtcbmltcG9ydCBQYWNrYWdlTGlzdCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9QYWNrYWdlTGlzdC9QYWNrYWdlTGlzdC5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2luZGV4Lm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9Ib21lL0hvbWUudHN4XG52YXIgSG9tZSA9ICgpID0+IHtcblx0Y29uc3QgbWFuaWZlc3RzID0gdXNlTWFuaWZlc3RzKCk7XG5cdGlmIChtYW5pZmVzdHMuaXNFcnJvcikgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjaGlsZHJlbjogXCJFcnJvciBsb2FkaW5nIG1hbmlmZXN0c1wiIH0pO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwge1xuXHRcdGNsYXNzTmFtZTogXCJjb250YWluZXIgY29udGVudFwiLFxuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCJob21lLXBhZ2UtY29udGFpbmVyXCIsXG5cdFx0Y2hpbGRyZW46IFttYW5pZmVzdHMuaXNMb2FkaW5nID8gLyogQF9fUFVSRV9fICovIGpzeChMb2FkaW5nLCB7fSkgOiAvKiBAX19QVVJFX18gKi8ganN4KFBhY2thZ2VMaXN0LCB7IHBhY2thZ2VzOiBtYW5pZmVzdHMubWFuaWZlc3RzIH0pLCBtYW5pZmVzdHMuaXNFcnJvciAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2hpbGRyZW46IFwiRXJyb3IgbG9hZGluZyBtYW5pZmVzdHNcIiB9KV1cblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBIb21lIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SG9tZS5tanMubWFwIiwiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9jb2xvcnNcIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvRm9vdGVyL3N0eWxlcy50c1xudmFyIFdyYXBwZXIgPSBzdHlsZWQoXCJkaXZcIikoKHsgdGhlbWUgfSkgPT4gKHtcblx0YmFja2dyb3VuZDogdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImxpZ2h0XCIgPyB0aGVtZS5wYWxldHRlLnNub3cgOiB0aGVtZS5wYWxldHRlLmN5YW5CbHVlLFxuXHRib3JkZXJUb3A6IGAxcHggc29saWQgJHt0aGVtZS5wYWxldHRlLmdyZXlHYWluc2Jvcm99YCxcblx0Y29sb3I6IHRoZW1lLnBhbGV0dGUubW9kZSA9PT0gXCJkYXJrXCIgPyBjb21tb24ud2hpdGUgOiB0aGVtZS5wYWxldHRlLm5vYmVsMDEsXG5cdGZvbnRTaXplOiBcIjE0cHhcIixcblx0cGFkZGluZzogXCIyMHB4XCJcbn0pKTtcbnZhciBJbm5lciA9IHN0eWxlZChcImRpdlwiKSgoeyB0aGVtZSB9KSA9PiAoe1xuXHRkaXNwbGF5OiBcImZsZXhcIixcblx0YWxpZ25JdGVtczogXCJjZW50ZXJcIixcblx0anVzdGlmeUNvbnRlbnQ6IFwiZmxleC1lbmRcIixcblx0cGFkZGluZ0xlZnQ6IDE2LFxuXHRwYWRkaW5nUmlnaHQ6IDE2LFxuXHR3aWR0aDogXCIxMDAlXCIsXG5cdFtgQG1lZGlhIChtaW4td2lkdGg6ICR7dGhlbWUuYnJlYWtQb2ludHMubWVkaXVtfXB4KWBdOiB7XG5cdFx0bWluV2lkdGg6IDQwMCxcblx0XHRtYXhXaWR0aDogODAwLFxuXHRcdG1hcmdpbjogXCJhdXRvXCIsXG5cdFx0anVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiXG5cdH0sXG5cdFtgQG1lZGlhIChtaW4td2lkdGg6ICR7dGhlbWUuYnJlYWtQb2ludHMubGFyZ2V9cHgpYF06IHsgbWF4V2lkdGg6IDEyNDAgfVxufSkpO1xudmFyIExlZnQgPSBzdHlsZWQoXCJkaXZcIikoKHsgdGhlbWUgfSkgPT4gKHtcblx0YWxpZ25JdGVtczogXCJjZW50ZXJcIixcblx0ZGlzcGxheTogXCJub25lXCIsXG5cdFtgQG1lZGlhIChtaW4td2lkdGg6ICR7dGhlbWUuYnJlYWtQb2ludHMubWVkaXVtfXB4KWBdOiB7IGRpc3BsYXk6IFwiZmxleFwiIH0sXG5cdG1hcmdpbkxlZnQ6IDFcbn0pKTtcbnZhciBSaWdodCA9IHN0eWxlZChMZWZ0KSh7XG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRtYXJnaW5SaWdodDogMVxufSk7XG52YXIgTG92ZSA9IHN0eWxlZChcInNwYW5cIikoKHsgdGhlbWUgfSkgPT4gKHtcblx0Y29sb3I6IHRoZW1lLnBhbGV0dGUubG92ZSxcblx0cGFkZGluZzogXCIwIDVweFwiXG59KSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IElubmVyLCBMZWZ0LCBMb3ZlLCBSaWdodCwgV3JhcHBlciB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMubWpzLm1hcCIsImltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyL0FwcENvbmZpZ3VyYXRpb25Qcm92aWRlci5tanNcIjtcbmltcG9ydCB7IEVhcnRoIH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvSWNvbnMvRWFydGgubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL0ljb25zL2luZGV4Lm1qc1wiO1xuaW1wb3J0IExvZ28gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTG9nby9Mb2dvLm1qc1wiO1xuaW1wb3J0IHsgSW5uZXIsIExlZnQsIExvdmUsIFJpZ2h0LCBXcmFwcGVyIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vaW5kZXgubWpzXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBGcmFnbWVudCQxLCBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IFRyYW5zLCB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgKiBhcyBGbGFnc0ljb24gZnJvbSBcImNvdW50cnktZmxhZy1pY29ucy9yZWFjdC8zeDJcIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvRm9vdGVyL0Zvb3Rlci50c3hcbmZ1bmN0aW9uIGdvVG9WZXJkYWNjaW9XZWJzaXRlKCkge1xuXHR3aW5kb3cub3BlbihcImh0dHBzOi8vdmVyZGFjY2lvLm9yZ1wiLCBcIl9ibGFua1wiKTtcbn1cbnZhciBGb290ZXIgPSAoKSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0Y29uc3QgeyBjb25maWdPcHRpb25zIH0gPSB1c2VDb25maWcoKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goV3JhcHBlciwge1xuXHRcdFwiZGF0YS10ZXN0aWRcIjogXCJmb290ZXJcIixcblx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoSW5uZXIsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4cyhMZWZ0LCB7IGNoaWxkcmVuOiBbLyogQF9fUFVSRV9fICovIGpzeChUcmFucywge1xuXHRcdFx0Y29tcG9uZW50czogWy8qIEBfX1BVUkVfXyAqLyBqc3goTG92ZSwge30sIFwibG92ZVwiKV0sXG5cdFx0XHRpMThuS2V5OiBcImZvb3Rlci5tYWRlLXdpdGgtbG92ZS1vblwiXG5cdFx0fSksIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFRvb2xUaXAsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KFN0eWxlZEVhcnRoLCB7fSksIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZsYWdzLCB7XG5cdFx0XHRcImRhdGEtZmxhZ3NcIjogXCJ0cnVlXCIsXG5cdFx0XHRjaGlsZHJlbjogW1xuXHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmxhZ3NJY29uLkVTLCB7IHRpdGxlOiB0KFwiZmxhZy5zcGFpblwiKSB9KSB9KSxcblx0XHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEZsYWdzSWNvbi5OSSwgeyB0aXRsZTogdChcImZsYWcubmljYXJhZ3VhXCIpIH0pIH0pLFxuXHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmxhZ3NJY29uLklOLCB7IHRpdGxlOiB0KFwiZmxhZy5pbmRpYVwiKSB9KSB9KSxcblx0XHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEZsYWdzSWNvbi5CUiwgeyB0aXRsZTogdChcImZsYWcuYnJhemlsXCIpIH0pIH0pLFxuXHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmxhZ3NJY29uLkNOLCB7IHRpdGxlOiB0KFwiZmxhZy5jaGluYVwiKSB9KSB9KSxcblx0XHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEZsYWdzSWNvbi5BVSwgeyB0aXRsZTogdChcImZsYWcuYXVzdHJhbGlhXCIpIH0pIH0pLFxuXHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmxhZ3NJY29uLkRFLCB7IHRpdGxlOiB0KFwiZmxhZy5nZXJtYW55XCIpIH0pIH0pLFxuXHRcdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmxhZ3NJY29uLlRXLCB7IHRpdGxlOiB0KFwiZmxhZy50YWl3YW5cIikgfSkgfSksXG5cdFx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChGbGFnc0ljb24uQVQsIHsgdGl0bGU6IHQoXCJmbGFnLmF1c3RyaWFcIikgfSkgfSksXG5cdFx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChGbGFnc0ljb24uQ0EsIHsgdGl0bGU6IHQoXCJmbGFnLmNhbmFkYVwiKSB9KSB9KVxuXHRcdFx0XVxuXHRcdH0pXSB9KV0gfSksIC8qIEBfX1BVUkVfXyAqLyBqc3goUmlnaHQsIHsgY2hpbGRyZW46IGNvbmZpZ09wdGlvbnM/LnZlcnNpb24gJiYgLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQkMSwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goUG93ZXJlZEJ5LCB7XG5cdFx0XHRcImRhdGEtdGVzdGlkXCI6IFwidmVyc2lvbi1mb290ZXJcIixcblx0XHRcdGNoaWxkcmVuOiB0KFwiZm9vdGVyLnBvd2VyZWQtYnlcIilcblx0XHR9KSwgLyogQF9fUFVSRV9fICovIGpzeChMb2dvLCB7XG5cdFx0XHRpc0RlZmF1bHQ6IHRydWUsXG5cdFx0XHRvbkNsaWNrOiBnb1RvVmVyZGFjY2lvV2Vic2l0ZSxcblx0XHRcdHNpemU6IFwieC1zbWFsbFwiLFxuXHRcdFx0dGl0bGU6IGNvbmZpZ09wdGlvbnMudmVyc2lvblxuXHRcdH0pXSB9KSB9KV0gfSlcblx0fSk7XG59O1xudmFyIFBvd2VyZWRCeSA9IHN0eWxlZChcInNwYW5cIikoKCkgPT4gKHsgcGFkZGluZ1JpZ2h0OiBcIjVweFwiIH0pKTtcbnZhciBTdHlsZWRFYXJ0aCA9IHN0eWxlZChFYXJ0aCkoKHsgdGhlbWUgfSkgPT4gKHsgbWFyZ2luOiB0aGVtZS5zcGFjaW5nKDAsIDEpIH0pKTtcbnZhciBGbGFncyA9IHN0eWxlZChcInNwYW5cIikoKHsgdGhlbWUgfSkgPT4gKHtcblx0ZGlzcGxheTogXCJpbmxpbmUtZ3JpZFwiLFxuXHRncmlkVGVtcGxhdGVDb2x1bW5zOiBcInJlcGVhdCgxMCwgbWF4LWNvbnRlbnQpXCIsXG5cdGdyaWRHYXA6IHRoZW1lLnNwYWNpbmcoMCwgMSksXG5cdHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG5cdGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuZ3JleUF0aGVucyxcblx0cGFkZGluZzogXCIxcHggNHB4XCIsXG5cdGJvcmRlclJhZGl1czogMyxcblx0aGVpZ2h0OiAyMCxcblx0YWxpZ25JdGVtczogXCJjZW50ZXJcIixcblx0dmlzaWJpbGl0eTogXCJoaWRkZW5cIixcblx0dG9wOiAtMixcblx0XCI6YmVmb3JlXCI6IHtcblx0XHRjb250ZW50OiBcIicnXCIsXG5cdFx0cG9zaXRpb246IFwiYWJzb2x1dGVcIixcblx0XHR0b3A6IFwiMjklXCIsXG5cdFx0bGVmdDogLTQsXG5cdFx0bWFyZ2luTGVmdDogLTUsXG5cdFx0Ym9yZGVyOiBcIjVweCBzb2xpZFwiLFxuXHRcdGJvcmRlckNvbG9yOiBgJHt0aGVtZS5wYWxldHRlLmdyZXlBdGhlbnN9IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50YCxcblx0XHR0cmFuc2Zvcm06IFwicm90YXRlKDkwZGVnKVwiXG5cdH1cbn0pKTtcbnZhciBJY29uID0gc3R5bGVkKFwiZGl2XCIpKHsgd2lkdGg6IFwiMTBweFwiIH0pO1xudmFyIFRvb2xUaXAgPSBzdHlsZWQoXCJzcGFuXCIpKHtcblx0cG9zaXRpb246IFwicmVsYXRpdmVcIixcblx0aGVpZ2h0OiBcIjE4cHhcIixcblx0XCI6aG92ZXJcIjogeyBcIiYgW2RhdGEtZmxhZ3M9XFxcInRydWVcXFwiXVwiOiB7IHZpc2liaWxpdHk6IFwidmlzaWJsZVwiIH0gfVxufSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IEZvb3RlciBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZvb3Rlci5tanMubWFwIiwiaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuLy8jcmVnaW9uIHNyYy9sYXlvdXRzL1NlY3VyaXR5L0RpYWxvZy50c3hcbnZhciBMYXlvdXRDb250YWluZXIgPSBzdHlsZWQoQm94KSh7XG5cdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuXHRtaW5IZWlnaHQ6IFwiMTAwdmhcIixcblx0bWF4V2lkdGg6IFwiNTAwcHhcIixcblx0bWFyZ2luOiBcIjAgYXV0b1wiXG59KTtcbnZhciBNYWluQ29udGVudCA9IHN0eWxlZChCb3gpKHtcblx0ZmxleDogMSxcblx0bWFyZ2luVG9wOiBcIjEwMHB4XCJcbn0pO1xudmFyIFNlY3VyaXR5TGF5b3V0ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChMYXlvdXRDb250YWluZXIsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goTWFpbkNvbnRlbnQsIHsgY2hpbGRyZW4gfSkgfSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBTZWN1cml0eUxheW91dCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURpYWxvZy5tanMubWFwIiwiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG5pbXBvcnQgeyBCb3gsIFRleHRGaWVsZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG4vLyNyZWdpb24gc3JjL3NlY3Rpb25zL1NlY3VyaXR5L3N0eWxlcy50c1xudmFyIFNlY3VyaXR5Q29udGFpbmVyID0gc3R5bGVkKEJveCkoKHsgdGhlbWUgfSkgPT4gKHtcblx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG5cdGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG5cdGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuXHRtaW5IZWlnaHQ6IFwiMTAwJVwiLFxuXHRwYWRkaW5nOiB0aGVtZS5zcGFjaW5nKDIpLFxuXHRiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0XG59KSk7XG52YXIgU2VjdXJpdHlGb3JtID0gc3R5bGVkKEJveCkoKHsgdGhlbWUgfSkgPT4gKHtcblx0d2lkdGg6IFwiMTAwJVwiLFxuXHRtYXhXaWR0aDogNDIwLFxuXHRwYWRkaW5nOiB0aGVtZS5zcGFjaW5nKDQpLFxuXHRiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcixcblx0Ym9yZGVyUmFkaXVzOiB0aGVtZS5zaGFwZS5ib3JkZXJSYWRpdXMsXG5cdGJveFNoYWRvdzogdGhlbWUuc2hhZG93c1szXVxufSkpO1xudmFyIFNlY3VyaXR5VGV4dEZpZWxkID0gc3R5bGVkKFRleHRGaWVsZCkoKHsgdGhlbWUgfSkgPT4gKHtcblx0d2lkdGg6IFwiMTAwJVwiLFxuXHRtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMSksXG5cdG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZygxKVxufSkpO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBTZWN1cml0eUNvbnRhaW5lciwgU2VjdXJpdHlGb3JtLCBTZWN1cml0eVRleHRGaWVsZCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMubWpzLm1hcCIsImltcG9ydCBTZWN1cml0eUxheW91dCBmcm9tIFwiLi4vLi4vbGF5b3V0cy9TZWN1cml0eS9EaWFsb2cubWpzXCI7XG5pbXBvcnQgeyBTZWN1cml0eUNvbnRhaW5lciwgU2VjdXJpdHlGb3JtIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHsgdXNlTG9jYXRpb24gfSBmcm9tIFwicmVhY3Qtcm91dGVyXCI7XG5pbXBvcnQgeyBCdXR0b24sIFR5cG9ncmFwaHkgfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IENoZWNrQ2lyY2xlSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9DaGVja0NpcmNsZVwiO1xuLy8jcmVnaW9uIHNyYy9zZWN0aW9ucy9TZWN1cml0eS9TdWNjZXNzLnRzeFxudmFyIE1lc3NhZ2VUeXBlID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKE1lc3NhZ2VUeXBlKSB7XG5cdE1lc3NhZ2VUeXBlW1wiTG9naW5cIl0gPSBcIkxvZ2luXCI7XG5cdE1lc3NhZ2VUeXBlW1wiQ2hhbmdlUGFzc3dvcmRcIl0gPSBcIkNoYW5nZVBhc3N3b3JkXCI7XG5cdE1lc3NhZ2VUeXBlW1wiQWRkVXNlclwiXSA9IFwiQWRkVXNlclwiO1xuXHRNZXNzYWdlVHlwZVtcIlN1Y2Nlc3NcIl0gPSBcIlN1Y2Nlc3NcIjtcblx0cmV0dXJuIE1lc3NhZ2VUeXBlO1xufSh7fSk7XG52YXIgU3VjY2VzcyA9ICgpID0+IHtcblx0Y29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXHRjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cdGNvbnN0IG1lc3NhZ2VUeXBlID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmdldChcIm1lc3NhZ2VUeXBlXCIpO1xuXHRjb25zdCBtZXNzYWdlID0gIW1lc3NhZ2VUeXBlID8gdChcInNlY3VyaXR5LnN1Y2Nlc3MubWVzc2FnZVN1Y2Nlc3NcIikgOiB0KGBzZWN1cml0eS5zdWNjZXNzLm1lc3NhZ2Uke21lc3NhZ2VUeXBlfWApO1xuXHRjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcblx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiL1wiO1xuXHR9O1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTZWN1cml0eUxheW91dCwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChTZWN1cml0eUNvbnRhaW5lciwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoU2VjdXJpdHlGb3JtLCB7IGNoaWxkcmVuOiBbXG5cdFx0LyogQF9fUFVSRV9fICovIGpzeChDaGVja0NpcmNsZUljb24sIHsgY29sb3I6IFwic3VjY2Vzc1wiIH0pLFxuXHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goVHlwb2dyYXBoeSwge1xuXHRcdFx0Y29tcG9uZW50OiBcImgxXCIsXG5cdFx0XHRndXR0ZXJCb3R0b206IHRydWUsXG5cdFx0XHR2YXJpYW50OiBcImg0XCIsXG5cdFx0XHRjaGlsZHJlbjogdChcInNlY3VyaXR5LnN1Y2Nlc3MudGl0bGVcIilcblx0XHR9KSxcblx0XHQvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHRcdGNvbG9yOiBcInRleHQuc2Vjb25kYXJ5XCIsXG5cdFx0XHRwYXJhZ3JhcGg6IHRydWUsXG5cdFx0XHR2YXJpYW50OiBcImJvZHkxXCIsXG5cdFx0XHRjaGlsZHJlbjogbWVzc2FnZVxuXHRcdH0pLFxuXHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goQnV0dG9uLCB7XG5cdFx0XHRjb2xvcjogXCJwcmltYXJ5XCIsXG5cdFx0XHRvbkNsaWNrOiBoYW5kbGVDbG9zZSxcblx0XHRcdHN4OiB7IG10OiAyIH0sXG5cdFx0XHR2YXJpYW50OiBcImNvbnRhaW5lZFwiLFxuXHRcdFx0Y2hpbGRyZW46IHQoXCJzZWN1cml0eS5zdWNjZXNzLnN1Ym1pdFwiKVxuXHRcdH0pXG5cdF0gfSkgfSkgfSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBNZXNzYWdlVHlwZSwgU3VjY2VzcyBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN1Y2Nlc3MubWpzLm1hcCIsImltcG9ydCB7IFJvdXRlIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3JvdXRlcy5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3V0aWxzL2luZGV4Lm1qc1wiO1xuaW1wb3J0IFwibG9kYXNoL2lzRW1wdHlcIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvU2VjdXJpdHkvdXRpbHMudHNcbmZ1bmN0aW9uIGdldFNlY3VyaXR5VXJsUGFyYW1zKGxvY2F0aW9uKSB7XG5cdGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuXHRsZXQgbmV4dCA9IHF1ZXJ5UGFyYW1zLmdldChcIm5leHRcIikgfHwgXCJcIjtcblx0aWYgKG5leHQubGVuZ3RoID4gMCAmJiAoIW5leHQuc3RhcnRzV2l0aChSb3V0ZS5MT0dJTl9BUEkpIHx8ICFuZXh0Lm1hdGNoKC9cXC9bLTAtOWEtZl17MzZ9JC8pKSkgbmV4dCA9IFwiXCI7XG5cdGxldCB1c2VyID0gcXVlcnlQYXJhbXMuZ2V0KFwidXNlclwiKSB8fCBcIlwiO1xuXHRpZiAodXNlci5sZW5ndGggPiAwICYmICF1c2VyLm1hdGNoKC9eW2EtekEtWjAtOS1fXXsxLDI1NX0kLykpIHVzZXIgPSBcIlwiO1xuXHRyZXR1cm4ge1xuXHRcdG5leHQsXG5cdFx0dXNlclxuXHR9O1xufVxuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBnZXRTZWN1cml0eVVybFBhcmFtcyB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFwIiwiaW1wb3J0IHsgUm91dGUgYXMgUm91dGUkMSB9IGZyb20gXCIuLi8uLi91dGlscy9yb3V0ZXMubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi91dGlscy9pbmRleC5tanNcIjtcbmltcG9ydCB7IHNhdmVBdXRoIH0gZnJvbSBcIi4uLy4uL3N0b3JlL3N0b3JhZ2UubWpzXCI7XG5pbXBvcnQgeyBnZXRDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb24ubWpzXCI7XG5pbXBvcnQgeyBzdHJpcFRyYWlsaW5nU2xhc2ggfSBmcm9tIFwiLi4vLi4vc3RvcmUvdXRpbHMubWpzXCI7XG5pbXBvcnQgeyB1c2VEYXRhTXV0YXRpb24gfSBmcm9tIFwiLi4vLi4vYXBpL3VzZS1kYXRhLW11dGF0aW9uLm1qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplQXV0aEVycm9yIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9BdXRoUHJvdmlkZXIvdXRpbHMubWpzXCI7XG5pbXBvcnQgTm90Rm91bmQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTm90Rm91bmQvTm90Rm91bmQubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL05vdEZvdW5kL2luZGV4Lm1qc1wiO1xuaW1wb3J0IExvZ2luRm9ybUhlYWRlciBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Mb2dpbkZvcm0vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IExvZ2luRm9ybSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Mb2dpbkZvcm0vTG9naW4ubWpzXCI7XG5pbXBvcnQgeyBsb2dpblNjaGVtYSB9IGZyb20gXCIuLi8uLi91dGlscy9zY2hlbWFzLm1qc1wiO1xuaW1wb3J0IFNlY3VyaXR5TGF5b3V0IGZyb20gXCIuLi8uLi9sYXlvdXRzL1NlY3VyaXR5L0RpYWxvZy5tanNcIjtcbmltcG9ydCB7IFNlY3VyaXR5Q29udGFpbmVyLCBTZWN1cml0eUZvcm0gfSBmcm9tIFwiLi9zdHlsZXMubWpzXCI7XG5pbXBvcnQgeyBNZXNzYWdlVHlwZSB9IGZyb20gXCIuL1N1Y2Nlc3MubWpzXCI7XG5pbXBvcnQgeyBnZXRTZWN1cml0eVVybFBhcmFtcyB9IGZyb20gXCIuL3V0aWxzLm1qc1wiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyB1c2VMb2NhdGlvbiwgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyXCI7XG5pbXBvcnQgeyBMaW5rIGFzIExpbmskMSwgVHlwb2dyYXBoeSB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgeyB5dXBSZXNvbHZlciB9IGZyb20gXCJAaG9va2Zvcm0vcmVzb2x2ZXJzL3l1cFwiO1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gXCJyZWFjdC1ob29rLWZvcm1cIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvU2VjdXJpdHkvTG9naW4udHN4XG52YXIgY29uZmlndXJhdGlvbiA9IGdldENvbmZpZ3VyYXRpb24oKTtcbnZhciBiYXNlUGF0aCA9IHN0cmlwVHJhaWxpbmdTbGFzaChjb25maWd1cmF0aW9uLmJhc2UpO1xudmFyIExvZ2luID0gKCkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblx0Y29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXHRjb25zdCB7IG5leHQgfSA9IGdldFNlY3VyaXR5VXJsUGFyYW1zKGxvY2F0aW9uKTtcblx0Y29uc3QgY3JlYXRlVXNlckVuYWJsZWQgPSBjb25maWd1cmF0aW9uPy5mbGFncz8uY3JlYXRlVXNlcjtcblx0Y29uc3QgYWRkVXNlckxpbmsgPSBSb3V0ZSQxLkFERF9VU0VSICsgKG5leHQgPyBcIj9uZXh0PVwiICsgbmV4dCA6IFwiXCIpO1xuXHRjb25zdCB7IGRhdGEsIGlzTXV0YXRpbmcsIHRyaWdnZXIgfSA9IHVzZURhdGFNdXRhdGlvbihiYXNlUGF0aCwgbmV4dCwgXCJQT1NUXCIpO1xuXHRjb25zdCB7IHNldEVycm9yLCBoYW5kbGVTdWJtaXQsIHJlZ2lzdGVyLCBmb3JtU3RhdGU6IHsgaXNWYWxpZCwgZXJyb3JzIH0gfSA9IHVzZUZvcm0oe1xuXHRcdG1vZGU6IFwib25DaGFuZ2VcIixcblx0XHRyZXNvbHZlcjogeXVwUmVzb2x2ZXIobG9naW5TY2hlbWEpXG5cdH0pO1xuXHRjb25zdCBoYW5kbGVMb2dpbiA9IGFzeW5jIChib2R5KSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IHRyaWdnZXIoYm9keSk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHR0aHJvdyBub3JtYWxpemVBdXRoRXJyb3IoZXJyKTtcblx0XHR9XG5cdH07XG5cdGNvbnN0IG9uU3VjY2VzcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcblx0XHRuYXZpZ2F0ZShgJHtSb3V0ZSQxLlNVQ0NFU1N9P21lc3NhZ2VUeXBlPSR7TWVzc2FnZVR5cGUuTG9naW59YCk7XG5cdH0sIFtuYXZpZ2F0ZV0pO1xuXHRjb25zdCBvblN1Ym1pdCA9IHVzZUNhbGxiYWNrKGFzeW5jIChkYXRhKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IGhhbmRsZUxvZ2luPy4oZGF0YSk7XG5cdFx0XHRvblN1Y2Nlc3MoKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHNldEVycm9yKFwicm9vdFwiLCB7XG5cdFx0XHRcdHR5cGU6IFwic2VydmVyXCIsXG5cdFx0XHRcdG1lc3NhZ2U6IFwiSW52YWxpZCB1c2VybmFtZSBvciBwYXNzd29yZFwiXG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sIFtcblx0XHRoYW5kbGVMb2dpbixcblx0XHRzZXRFcnJvcixcblx0XHRvblN1Y2Nlc3Ncblx0XSk7XG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKGRhdGEgJiYgIWlzTXV0YXRpbmcgJiYgZGF0YS51c2VybmFtZSAmJiBkYXRhLnRva2VuKSBzYXZlQXV0aChkYXRhLnVzZXJuYW1lLCBkYXRhLnRva2VuKTtcblx0fSwgW2RhdGEsIGlzTXV0YXRpbmddKTtcblx0cmV0dXJuICFuZXh0ID8gLyogQF9fUFVSRV9fICovIGpzeChOb3RGb3VuZCwge30pIDogLyogQF9fUFVSRV9fICovIGpzeChTZWN1cml0eUxheW91dCwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChTZWN1cml0eUNvbnRhaW5lciwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoU2VjdXJpdHlGb3JtLCB7IGNoaWxkcmVuOiBbXG5cdFx0LyogQF9fUFVSRV9fICovIGpzeChMb2dpbkZvcm1IZWFkZXIsIHt9KSxcblx0XHQvKiBAX19QVVJFX18gKi8ganN4KExvZ2luRm9ybSwge1xuXHRcdFx0ZXJyb3JzLFxuXHRcdFx0aGFuZGxlU3VibWl0LFxuXHRcdFx0aXNWYWxpZCxcblx0XHRcdG9uU3VibWl0LFxuXHRcdFx0cmVnaXN0ZXJcblx0XHR9KSxcblx0XHRjcmVhdGVVc2VyRW5hYmxlZCAmJiAvKiBAX19QVVJFX18gKi8ganN4cyhUeXBvZ3JhcGh5LCB7XG5cdFx0XHRhbGlnbjogXCJjZW50ZXJcIixcblx0XHRcdHN4OiB7XG5cdFx0XHRcdG10OiAyLFxuXHRcdFx0XHRmb250U2l6ZTogMTJcblx0XHRcdH0sXG5cdFx0XHR2YXJpYW50OiBcImJvZHkyXCIsXG5cdFx0XHRjaGlsZHJlbjogW3QoXCJzZWN1cml0eS5sb2dpbi5ub1VzZXJRdWVzdGlvblwiKSwgLyogQF9fUFVSRV9fICovIGpzeChMaW5rJDEsIHtcblx0XHRcdFx0aHJlZjogYWRkVXNlckxpbmssXG5cdFx0XHRcdHN4OiB7IG1sOiAxIH0sXG5cdFx0XHRcdGNoaWxkcmVuOiB0KFwic2VjdXJpdHkubG9naW4uY3JlYXRlVXNlclwiKVxuXHRcdFx0fSldXG5cdFx0fSlcblx0XSB9KSB9KSB9KTtcbn07XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IExvZ2luIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TG9naW4ubWpzLm1hcCIsImltcG9ydCB7IFJvdXRlIGFzIFJvdXRlJDEgfSBmcm9tIFwiLi4vLi4vdXRpbHMvcm91dGVzLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vdXRpbHMvaW5kZXgubWpzXCI7XG5pbXBvcnQgeyBnZXRDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb24ubWpzXCI7XG5pbXBvcnQgeyBzdHJpcFRyYWlsaW5nU2xhc2ggfSBmcm9tIFwiLi4vLi4vc3RvcmUvdXRpbHMubWpzXCI7XG5pbXBvcnQgeyB1c2VEYXRhTXV0YXRpb24gfSBmcm9tIFwiLi4vLi4vYXBpL3VzZS1kYXRhLW11dGF0aW9uLm1qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplQXV0aEVycm9yIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9BdXRoUHJvdmlkZXIvdXRpbHMubWpzXCI7XG5pbXBvcnQgTG9naW5EaWFsb2dGb3JtRXJyb3IgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTG9naW5EaWFsb2cvTG9naW5EaWFsb2dGb3JtRXJyb3IubWpzXCI7XG5pbXBvcnQgUGFzc3dvcmRGaWVsZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Mb2dpbkZvcm0vUGFzc3dvcmRGaWVsZC5tanNcIjtcbmltcG9ydCBVc2VybmFtZUZpZWxkIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0xvZ2luRm9ybS9Vc2VybmFtZUZpZWxkLm1qc1wiO1xuaW1wb3J0IHsgYWRkVXNlclNjaGVtYSB9IGZyb20gXCIuLi8uLi91dGlscy9zY2hlbWFzLm1qc1wiO1xuaW1wb3J0IFNlY3VyaXR5TGF5b3V0IGZyb20gXCIuLi8uLi9sYXlvdXRzL1NlY3VyaXR5L0RpYWxvZy5tanNcIjtcbmltcG9ydCB7IFNlY3VyaXR5Q29udGFpbmVyLCBTZWN1cml0eUZvcm0sIFNlY3VyaXR5VGV4dEZpZWxkIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IHsgTWVzc2FnZVR5cGUgfSBmcm9tIFwiLi9TdWNjZXNzLm1qc1wiO1xuaW1wb3J0IHsgZ2V0U2VjdXJpdHlVcmxQYXJhbXMgfSBmcm9tIFwiLi91dGlscy5tanNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHsgdXNlTG9jYXRpb24sIHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlclwiO1xuaW1wb3J0IHsgQnV0dG9uLCBMaW5rIGFzIExpbmskMSwgVHlwb2dyYXBoeSB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgeyB5dXBSZXNvbHZlciB9IGZyb20gXCJAaG9va2Zvcm0vcmVzb2x2ZXJzL3l1cFwiO1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gXCJyZWFjdC1ob29rLWZvcm1cIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvU2VjdXJpdHkvQWRkVXNlci50c3hcbnZhciBBZGRVc2VyID0gKCkgPT4ge1xuXHRjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cdGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblx0Y29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXHRjb25zdCBjb25maWd1cmF0aW9uID0gZ2V0Q29uZmlndXJhdGlvbigpO1xuXHRjb25zdCBiYXNlUGF0aCA9IHN0cmlwVHJhaWxpbmdTbGFzaChjb25maWd1cmF0aW9uLmJhc2UpO1xuXHRjb25zdCB7IG5leHQsIHVzZXIgfSA9IGdldFNlY3VyaXR5VXJsUGFyYW1zKGxvY2F0aW9uKTtcblx0Y29uc3QgbG9naW5MaW5rID0gUm91dGUkMS5MT0dJTiArIChuZXh0ID8gYD9uZXh0PSR7ZW5jb2RlVVJJQ29tcG9uZW50KG5leHQpfWAgOiBcIlwiKTtcblx0Y29uc3QgY3JlYXRlVXNlckVuYWJsZWQgPSBjb25maWd1cmF0aW9uPy5mbGFncz8uY3JlYXRlVXNlcjtcblx0Y29uc3QgeyBzZXRFcnJvciwgaGFuZGxlU3VibWl0LCByZWdpc3Rlciwgd2F0Y2gsIGZvcm1TdGF0ZTogeyBpc1ZhbGlkLCBlcnJvcnMgfSB9ID0gdXNlRm9ybSh7XG5cdFx0bW9kZTogXCJvbkNoYW5nZVwiLFxuXHRcdGRlZmF1bHRWYWx1ZXM6IHtcblx0XHRcdHVzZXJuYW1lOiB0eXBlb2YgdXNlciA9PT0gXCJzdHJpbmdcIiA/IHVzZXIgOiBcIlwiLFxuXHRcdFx0cGFzc3dvcmQ6IFwiXCIsXG5cdFx0XHRlbWFpbDogXCJcIlxuXHRcdH0sXG5cdFx0cmVzb2x2ZXI6IHl1cFJlc29sdmVyKGFkZFVzZXJTY2hlbWEpXG5cdH0pO1xuXHRjb25zdCB1c2VybmFtZSA9IHdhdGNoKFwidXNlcm5hbWVcIik7XG5cdGNvbnN0IHsgdHJpZ2dlciB9ID0gdXNlRGF0YU11dGF0aW9uKGJhc2VQYXRoLCBgJHtSb3V0ZSQxLkFERF9VU0VSfToke2VuY29kZVVSSUNvbXBvbmVudCh1c2VybmFtZSl9YCwgXCJQVVRcIik7XG5cdGNvbnN0IGhhbmRsZUFkZFVzZXIgPSB1c2VDYWxsYmFjayhhc3luYyAoYm9keSkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRhd2FpdCB0cmlnZ2VyKGJvZHkpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0dGhyb3cgbm9ybWFsaXplQXV0aEVycm9yKGVycik7XG5cdFx0fVxuXHR9LCBbdHJpZ2dlcl0pO1xuXHRjb25zdCBvblN1Ym1pdCA9IHVzZUNhbGxiYWNrKGFzeW5jIChkYXRhKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IGhhbmRsZUFkZFVzZXIoe1xuXHRcdFx0XHRuYW1lOiBkYXRhLnVzZXJuYW1lLFxuXHRcdFx0XHRwYXNzd29yZDogZGF0YS5wYXNzd29yZCxcblx0XHRcdFx0ZW1haWw6IGRhdGEuZW1haWxcblx0XHRcdH0pO1xuXHRcdFx0bmF2aWdhdGUoYCR7Um91dGUkMS5TVUNDRVNTfT9tZXNzYWdlVHlwZT0ke01lc3NhZ2VUeXBlLkFkZFVzZXJ9YCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRzZXRFcnJvcihcInJvb3RcIiwge1xuXHRcdFx0XHR0eXBlOiBcInNlcnZlclwiLFxuXHRcdFx0XHRtZXNzYWdlOiBcIkZhaWxlZCB0byBjcmVhdGUgdXNlclwiXG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sIFtcblx0XHRoYW5kbGVBZGRVc2VyLFxuXHRcdHNldEVycm9yLFxuXHRcdG5hdmlnYXRlXG5cdF0pO1xuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmICghY3JlYXRlVXNlckVuYWJsZWQpIG5hdmlnYXRlKFwiL1wiKTtcblx0fSwgW2NyZWF0ZVVzZXJFbmFibGVkLCBuYXZpZ2F0ZV0pO1xuXHRyZXR1cm4gY3JlYXRlVXNlckVuYWJsZWQgPyAvKiBAX19QVVJFX18gKi8ganN4KFNlY3VyaXR5TGF5b3V0LCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFNlY3VyaXR5Q29udGFpbmVyLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhTZWN1cml0eUZvcm0sIHtcblx0XHRjb21wb25lbnQ6IFwiZm9ybVwiLFxuXHRcdG9uU3VibWl0OiBoYW5kbGVTdWJtaXQob25TdWJtaXQpLFxuXHRcdGNoaWxkcmVuOiBbXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KFR5cG9ncmFwaHksIHtcblx0XHRcdFx0YWxpZ246IFwiY2VudGVyXCIsXG5cdFx0XHRcdGNvbXBvbmVudDogXCJoMVwiLFxuXHRcdFx0XHRndXR0ZXJCb3R0b206IHRydWUsXG5cdFx0XHRcdHZhcmlhbnQ6IFwiaDRcIixcblx0XHRcdFx0Y2hpbGRyZW46IHQoXCJzZWN1cml0eS5hZGRVc2VyLnRpdGxlXCIpXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goVXNlcm5hbWVGaWVsZCwge1xuXHRcdFx0XHRlcnJvcnMsXG5cdFx0XHRcdHJlZ2lzdGVyXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goUGFzc3dvcmRGaWVsZCwge1xuXHRcdFx0XHRlcnJvcnMsXG5cdFx0XHRcdHJlZ2lzdGVyXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goU2VjdXJpdHlUZXh0RmllbGQsIHtcblx0XHRcdFx0bGFiZWw6IHQoXCJzZWN1cml0eS5hZGRVc2VyLmVtYWlsXCIpLFxuXHRcdFx0XHR0eXBlOiBcImVtYWlsXCIsXG5cdFx0XHRcdC4uLnJlZ2lzdGVyKFwiZW1haWxcIilcblx0XHRcdH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChUeXBvZ3JhcGh5LCB7XG5cdFx0XHRcdGNvbG9yOiBcInRleHQuc2Vjb25kYXJ5XCIsXG5cdFx0XHRcdHBhcmFncmFwaDogdHJ1ZSxcblx0XHRcdFx0c3g6IHsgZm9udFNpemU6IDEyIH0sXG5cdFx0XHRcdHZhcmlhbnQ6IFwiYm9keTJcIixcblx0XHRcdFx0Y2hpbGRyZW46IHQoXCJzZWN1cml0eS5hZGRVc2VyLmVtYWlsRGVzY3JpcHRpb25cIilcblx0XHRcdH0pLFxuXHRcdFx0ZXJyb3JzLnJvb3QgJiYgLyogQF9fUFVSRV9fICovIGpzeChMb2dpbkRpYWxvZ0Zvcm1FcnJvciwgeyBlcnJvcjogZXJyb3JzLnJvb3QgfSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KEJ1dHRvbiwge1xuXHRcdFx0XHRjb2xvcjogXCJwcmltYXJ5XCIsXG5cdFx0XHRcdGRpc2FibGVkOiAhaXNWYWxpZCxcblx0XHRcdFx0ZnVsbFdpZHRoOiB0cnVlLFxuXHRcdFx0XHRzeDogeyBtdDogMiB9LFxuXHRcdFx0XHR0eXBlOiBcInN1Ym1pdFwiLFxuXHRcdFx0XHR2YXJpYW50OiBcImNvbnRhaW5lZFwiLFxuXHRcdFx0XHRjaGlsZHJlbjogdChcInNlY3VyaXR5LmFkZFVzZXIuc3VibWl0XCIpXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3hzKFR5cG9ncmFwaHksIHtcblx0XHRcdFx0YWxpZ246IFwiY2VudGVyXCIsXG5cdFx0XHRcdHN4OiB7XG5cdFx0XHRcdFx0bXQ6IDIsXG5cdFx0XHRcdFx0Zm9udFNpemU6IDEyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHZhcmlhbnQ6IFwiYm9keTJcIixcblx0XHRcdFx0Y2hpbGRyZW46IFt0KFwic2VjdXJpdHkuYWRkVXNlci5hbHJlYWR5VXNlclF1ZXN0aW9uXCIpLCAvKiBAX19QVVJFX18gKi8ganN4KExpbmskMSwge1xuXHRcdFx0XHRcdGhyZWY6IGxvZ2luTGluayxcblx0XHRcdFx0XHRzeDogeyBtbDogMSB9LFxuXHRcdFx0XHRcdGNoaWxkcmVuOiB0KFwic2VjdXJpdHkuYWRkVXNlci5sb2dpblwiKVxuXHRcdFx0XHR9KV1cblx0XHRcdH0pXG5cdFx0XVxuXHR9KSB9KSB9KSA6IG51bGw7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBBZGRVc2VyIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QWRkVXNlci5tanMubWFwIiwiaW1wb3J0IHsgQVBJUm91dGUsIFJvdXRlIGFzIFJvdXRlJDEgfSBmcm9tIFwiLi4vLi4vdXRpbHMvcm91dGVzLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vdXRpbHMvaW5kZXgubWpzXCI7XG5pbXBvcnQgeyBnZXRDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb24ubWpzXCI7XG5pbXBvcnQgeyBzdHJpcFRyYWlsaW5nU2xhc2ggfSBmcm9tIFwiLi4vLi4vc3RvcmUvdXRpbHMubWpzXCI7XG5pbXBvcnQgeyB1c2VEYXRhTXV0YXRpb24gfSBmcm9tIFwiLi4vLi4vYXBpL3VzZS1kYXRhLW11dGF0aW9uLm1qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplQXV0aEVycm9yIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9BdXRoUHJvdmlkZXIvdXRpbHMubWpzXCI7XG5pbXBvcnQgTG9naW5EaWFsb2dGb3JtRXJyb3IgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTG9naW5EaWFsb2cvTG9naW5EaWFsb2dGb3JtRXJyb3IubWpzXCI7XG5pbXBvcnQgeyBjaGFuZ2VQYXNzd29yZFNjaGVtYSB9IGZyb20gXCIuLi8uLi91dGlscy9zY2hlbWFzLm1qc1wiO1xuaW1wb3J0IFNlY3VyaXR5TGF5b3V0IGZyb20gXCIuLi8uLi9sYXlvdXRzL1NlY3VyaXR5L0RpYWxvZy5tanNcIjtcbmltcG9ydCB7IFNlY3VyaXR5Q29udGFpbmVyLCBTZWN1cml0eUZvcm0sIFNlY3VyaXR5VGV4dEZpZWxkIH0gZnJvbSBcIi4vc3R5bGVzLm1qc1wiO1xuaW1wb3J0IHsgTWVzc2FnZVR5cGUgfSBmcm9tIFwiLi9TdWNjZXNzLm1qc1wiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gXCJyZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IEJ1dHRvbiwgVHlwb2dyYXBoeSB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgeyB5dXBSZXNvbHZlciB9IGZyb20gXCJAaG9va2Zvcm0vcmVzb2x2ZXJzL3l1cFwiO1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gXCJyZWFjdC1ob29rLWZvcm1cIjtcbi8vI3JlZ2lvbiBzcmMvc2VjdGlvbnMvU2VjdXJpdHkvQ2hhbmdlUGFzc3dvcmQudHN4XG52YXIgQ2hhbmdlUGFzc3dvcmQgPSAoKSA9PiB7XG5cdGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblx0Y29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXHRjb25zdCBjb25maWd1cmF0aW9uID0gZ2V0Q29uZmlndXJhdGlvbigpO1xuXHRjb25zdCBiYXNlUGF0aCA9IHN0cmlwVHJhaWxpbmdTbGFzaChjb25maWd1cmF0aW9uLmJhc2UpO1xuXHRjb25zdCBjaGFuZ2VQYXNzd29yZEVuYWJsZWQgPSBjb25maWd1cmF0aW9uPy5mbGFncz8uY2hhbmdlUGFzc3dvcmQ7XG5cdGNvbnN0IHsgc2V0RXJyb3IsIGhhbmRsZVN1Ym1pdCwgcmVnaXN0ZXIsIGZvcm1TdGF0ZTogeyBpc1ZhbGlkLCBlcnJvcnMgfSB9ID0gdXNlRm9ybSh7XG5cdFx0bW9kZTogXCJvbkNoYW5nZVwiLFxuXHRcdGRlZmF1bHRWYWx1ZXM6IHtcblx0XHRcdHVzZXJuYW1lOiBcIlwiLFxuXHRcdFx0b2xkUGFzc3dvcmQ6IFwiXCIsXG5cdFx0XHRuZXdQYXNzd29yZDogXCJcIixcblx0XHRcdGNvbmZpcm1QYXNzd29yZDogXCJcIlxuXHRcdH0sXG5cdFx0cmVzb2x2ZXI6IHl1cFJlc29sdmVyKGNoYW5nZVBhc3N3b3JkU2NoZW1hKVxuXHR9KTtcblx0Y29uc3QgeyB0cmlnZ2VyIH0gPSB1c2VEYXRhTXV0YXRpb24oYmFzZVBhdGgsIEFQSVJvdXRlLlJFU0VUX1BBU1NXT1JELCBcIlBVVFwiKTtcblx0Y29uc3QgaGFuZGxlQ2hhbmdlUGFzc3dvcmQgPSB1c2VDYWxsYmFjayhhc3luYyAoYm9keSkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRhd2FpdCB0cmlnZ2VyKGJvZHkpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0dGhyb3cgbm9ybWFsaXplQXV0aEVycm9yKGVycik7XG5cdFx0fVxuXHR9LCBbdHJpZ2dlcl0pO1xuXHRjb25zdCBvblN1Ym1pdCA9IHVzZUNhbGxiYWNrKGFzeW5jIChkYXRhKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IGhhbmRsZUNoYW5nZVBhc3N3b3JkKHsgcGFzc3dvcmQ6IHtcblx0XHRcdFx0b2xkOiBkYXRhLm9sZFBhc3N3b3JkLFxuXHRcdFx0XHRuZXc6IGRhdGEubmV3UGFzc3dvcmRcblx0XHRcdH0gfSk7XG5cdFx0XHRuYXZpZ2F0ZShgJHtSb3V0ZSQxLlNVQ0NFU1N9P21lc3NhZ2VUeXBlPSR7TWVzc2FnZVR5cGUuQ2hhbmdlUGFzc3dvcmR9YCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRzZXRFcnJvcihcInJvb3RcIiwge1xuXHRcdFx0XHR0eXBlOiBcInNlcnZlclwiLFxuXHRcdFx0XHRtZXNzYWdlOiBcIkZhaWxlZCB0byBjaGFuZ2UgcGFzc3dvcmRcIlxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LCBbXG5cdFx0aGFuZGxlQ2hhbmdlUGFzc3dvcmQsXG5cdFx0c2V0RXJyb3IsXG5cdFx0bmF2aWdhdGVcblx0XSk7XG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKCFjaGFuZ2VQYXNzd29yZEVuYWJsZWQpIG5hdmlnYXRlKFwiL1wiKTtcblx0fSwgW2NoYW5nZVBhc3N3b3JkRW5hYmxlZCwgbmF2aWdhdGVdKTtcblx0cmV0dXJuIGNoYW5nZVBhc3N3b3JkRW5hYmxlZCA/IC8qIEBfX1BVUkVfXyAqLyBqc3goU2VjdXJpdHlMYXlvdXQsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goU2VjdXJpdHlDb250YWluZXIsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFNlY3VyaXR5Rm9ybSwge1xuXHRcdGNvbXBvbmVudDogXCJmb3JtXCIsXG5cdFx0b25TdWJtaXQ6IGhhbmRsZVN1Ym1pdChvblN1Ym1pdCksXG5cdFx0Y2hpbGRyZW46IFtcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goVHlwb2dyYXBoeSwge1xuXHRcdFx0XHRhbGlnbjogXCJjZW50ZXJcIixcblx0XHRcdFx0Y29tcG9uZW50OiBcImgxXCIsXG5cdFx0XHRcdGd1dHRlckJvdHRvbTogdHJ1ZSxcblx0XHRcdFx0dmFyaWFudDogXCJoNFwiLFxuXHRcdFx0XHRjaGlsZHJlbjogdChcInNlY3VyaXR5LmNoYW5nZVBhc3N3b3JkLnRpdGxlXCIpXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goU2VjdXJpdHlUZXh0RmllbGQsIHtcblx0XHRcdFx0ZXJyb3I6ICEhZXJyb3JzLnVzZXJuYW1lLFxuXHRcdFx0XHRoZWxwZXJUZXh0OiBlcnJvcnMudXNlcm5hbWU/Lm1lc3NhZ2UsXG5cdFx0XHRcdGxhYmVsOiB0KFwic2VjdXJpdHkuY2hhbmdlUGFzc3dvcmQudXNlcm5hbWVcIiksXG5cdFx0XHRcdC4uLnJlZ2lzdGVyKFwidXNlcm5hbWVcIiksXG5cdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHR9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goU2VjdXJpdHlUZXh0RmllbGQsIHtcblx0XHRcdFx0ZXJyb3I6ICEhZXJyb3JzLm9sZFBhc3N3b3JkLFxuXHRcdFx0XHRoZWxwZXJUZXh0OiBlcnJvcnMub2xkUGFzc3dvcmQ/Lm1lc3NhZ2UsXG5cdFx0XHRcdGxhYmVsOiB0KFwic2VjdXJpdHkuY2hhbmdlUGFzc3dvcmQub2xkUGFzc3dvcmRcIiksXG5cdFx0XHRcdC4uLnJlZ2lzdGVyKFwib2xkUGFzc3dvcmRcIiksXG5cdFx0XHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdFx0XHR0eXBlOiBcInBhc3N3b3JkXCJcblx0XHRcdH0pLFxuXHRcdFx0LyogQF9fUFVSRV9fICovIGpzeChTZWN1cml0eVRleHRGaWVsZCwge1xuXHRcdFx0XHRlcnJvcjogISFlcnJvcnMubmV3UGFzc3dvcmQsXG5cdFx0XHRcdGhlbHBlclRleHQ6IGVycm9ycy5uZXdQYXNzd29yZD8ubWVzc2FnZSxcblx0XHRcdFx0bGFiZWw6IHQoXCJzZWN1cml0eS5jaGFuZ2VQYXNzd29yZC5uZXdQYXNzd29yZFwiKSxcblx0XHRcdFx0Li4ucmVnaXN0ZXIoXCJuZXdQYXNzd29yZFwiKSxcblx0XHRcdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0XHRcdHR5cGU6IFwicGFzc3dvcmRcIlxuXHRcdFx0fSksXG5cdFx0XHQvKiBAX19QVVJFX18gKi8ganN4KFNlY3VyaXR5VGV4dEZpZWxkLCB7XG5cdFx0XHRcdGVycm9yOiAhIWVycm9ycy5jb25maXJtUGFzc3dvcmQsXG5cdFx0XHRcdGhlbHBlclRleHQ6IGVycm9ycy5jb25maXJtUGFzc3dvcmQ/Lm1lc3NhZ2UsXG5cdFx0XHRcdGxhYmVsOiB0KFwic2VjdXJpdHkuY2hhbmdlUGFzc3dvcmQuY29uZmlybVBhc3N3b3JkXCIpLFxuXHRcdFx0XHQuLi5yZWdpc3RlcihcImNvbmZpcm1QYXNzd29yZFwiKSxcblx0XHRcdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0XHRcdHR5cGU6IFwicGFzc3dvcmRcIlxuXHRcdFx0fSksXG5cdFx0XHRlcnJvcnMucm9vdCAmJiAvKiBAX19QVVJFX18gKi8ganN4KExvZ2luRGlhbG9nRm9ybUVycm9yLCB7IGVycm9yOiBlcnJvcnMucm9vdCB9KSxcblx0XHRcdC8qIEBfX1BVUkVfXyAqLyBqc3goQnV0dG9uLCB7XG5cdFx0XHRcdGNvbG9yOiBcInByaW1hcnlcIixcblx0XHRcdFx0ZGlzYWJsZWQ6ICFpc1ZhbGlkLFxuXHRcdFx0XHRmdWxsV2lkdGg6IHRydWUsXG5cdFx0XHRcdHN4OiB7IG10OiAyIH0sXG5cdFx0XHRcdHR5cGU6IFwic3VibWl0XCIsXG5cdFx0XHRcdHZhcmlhbnQ6IFwiY29udGFpbmVkXCIsXG5cdFx0XHRcdGNoaWxkcmVuOiB0KFwic2VjdXJpdHkuY2hhbmdlUGFzc3dvcmQuc3VibWl0XCIpXG5cdFx0XHR9KVxuXHRcdF1cblx0fSkgfSkgfSkgOiBudWxsO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgQ2hhbmdlUGFzc3dvcmQgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1DaGFuZ2VQYXNzd29yZC5tanMubWFwIiwiaW1wb3J0IEhvbWUgZnJvbSBcIi4uLy4uL3NlY3Rpb25zL0hvbWUvSG9tZS5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2luZGV4Lm1qc1wiO1xuLy8jcmVnaW9uIHNyYy9wYWdlcy9Gcm9udC9Ib21lLnRzXG52YXIgSG9tZV9kZWZhdWx0ID0gSG9tZTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgSG9tZV9kZWZhdWx0IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SG9tZS5tanMubWFwIiwiaW1wb3J0IERldGFpbFNpZGViYXIgZnJvbSBcIi4uLy4uL3NlY3Rpb25zL1NpZGVCYXIvU2lkZWJhci5tanNcIjtcbmltcG9ydCBEZXRhaWxDb250YWluZXIgZnJvbSBcIi4uLy4uL3NlY3Rpb25zL0RldGFpbC9EZXRhaWwubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9zZWN0aW9ucy9pbmRleC5tanNcIjtcbmltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBHcmlkIGZyb20gXCJAbXVpL21hdGVyaWFsL0dyaWRcIjtcbi8vI3JlZ2lvbiBzcmMvbGF5b3V0cy9WZXJzaW9uL1ZlcnNpb24udHN4XG52YXIgVmVyc2lvbkxheW91dCA9ICgpID0+IHtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEdyaWQsIHtcblx0XHRjbGFzc05hbWU6IFwiY29udGFpbmVyIGNvbnRlbnRcIixcblx0XHRjb250YWluZXI6IHRydWUsXG5cdFx0XCJkYXRhLXRlc3RpZFwiOiBcInZlcnNpb24tbGF5b3V0XCIsXG5cdFx0c3BhY2luZzogMCxcblx0XHRjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goR3JpZCwge1xuXHRcdFx0c2l6ZToge1xuXHRcdFx0XHRtZDogOCxcblx0XHRcdFx0eHM6IDEyXG5cdFx0XHR9LFxuXHRcdFx0Y2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRGV0YWlsQ29udGFpbmVyLCB7fSlcblx0XHR9KSwgLyogQF9fUFVSRV9fICovIGpzeChHcmlkLCB7XG5cdFx0XHRzaXplOiB7XG5cdFx0XHRcdG1kOiA0LFxuXHRcdFx0XHR4czogMTJcblx0XHRcdH0sXG5cdFx0XHRjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChEZXRhaWxTaWRlYmFyLCB7fSlcblx0XHR9KV1cblx0fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBWZXJzaW9uTGF5b3V0IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VmVyc2lvbi5tanMubWFwIiwiaW1wb3J0IHsgdXNlVmVyc2lvbiB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvVmVyc2lvblByb3ZpZGVyL1ZlcnNpb25Qcm92aWRlci5tanNcIjtcbmltcG9ydCBOb3RGb3VuZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Ob3RGb3VuZC9Ob3RGb3VuZC5tanNcIjtcbmltcG9ydCBGb3JiaWRkZW4gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvRm9yYmlkZGVuL0ZvcmJpZGRlbi5tanNcIjtcbmltcG9ydCBcIi4uLy4uL2NvbXBvbmVudHMvRm9yYmlkZGVuL2luZGV4Lm1qc1wiO1xuaW1wb3J0IExvYWRpbmcgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTG9hZGluZy9Mb2FkaW5nLm1qc1wiO1xuaW1wb3J0IFZlcnNpb25MYXlvdXQgZnJvbSBcIi4uLy4uL2xheW91dHMvVmVyc2lvbi9WZXJzaW9uLm1qc1wiO1xuaW1wb3J0IFwiLi4vLi4vaW5kZXgubWpzXCI7XG5pbXBvcnQgXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyNyZWdpb24gc3JjL3BhZ2VzL1ZlcnNpb24vVmVyc2lvbi50c3hcbnZhciBWZXJzaW9uID0gKCkgPT4ge1xuXHRjb25zdCB7IGhhc05vdEJlZW5Gb3VuZCwgaXNGb3JiaWRkZW4sIGlzVW5BdXRob3JpemVkLCBpc0xvYWRpbmcgfSA9IHVzZVZlcnNpb24oKTtcblx0aWYgKGlzTG9hZGluZykgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTG9hZGluZywge30pO1xuXHRpZiAoaXNVbkF1dGhvcml6ZWQpIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEZvcmJpZGRlbiwge30pO1xuXHRpZiAoaXNGb3JiaWRkZW4pIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEZvcmJpZGRlbiwge30pO1xuXHRpZiAoaGFzTm90QmVlbkZvdW5kKSByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChOb3RGb3VuZCwge30pO1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChWZXJzaW9uTGF5b3V0LCB7fSk7XG59O1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBWZXJzaW9uIGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VmVyc2lvbi5tanMubWFwIiwiaW1wb3J0IExvZ2luIGZyb20gXCIuLi8uLi9zZWN0aW9ucy9TZWN1cml0eS9Mb2dpbi5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3NlY3Rpb25zL1NlY3VyaXR5L2luZGV4Lm1qc1wiO1xuLy8jcmVnaW9uIHNyYy9wYWdlcy9TZWN1cml0eS9Mb2dpbi50c3hcbnZhciBMb2dpbl9kZWZhdWx0ID0gTG9naW47XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IExvZ2luX2RlZmF1bHQgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Mb2dpbi5tanMubWFwIiwiaW1wb3J0IFN1Y2Nlc3MgZnJvbSBcIi4uLy4uL3NlY3Rpb25zL1NlY3VyaXR5L1N1Y2Nlc3MubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9zZWN0aW9ucy9TZWN1cml0eS9pbmRleC5tanNcIjtcbi8vI3JlZ2lvbiBzcmMvcGFnZXMvU2VjdXJpdHkvU3VjY2Vzcy50c3hcbnZhciBTdWNjZXNzX2RlZmF1bHQgPSBTdWNjZXNzO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBTdWNjZXNzX2RlZmF1bHQgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdWNjZXNzLm1qcy5tYXAiLCJpbXBvcnQgQWRkVXNlciBmcm9tIFwiLi4vLi4vc2VjdGlvbnMvU2VjdXJpdHkvQWRkVXNlci5tanNcIjtcbmltcG9ydCBcIi4uLy4uL3NlY3Rpb25zL1NlY3VyaXR5L2luZGV4Lm1qc1wiO1xuLy8jcmVnaW9uIHNyYy9wYWdlcy9TZWN1cml0eS9BZGRVc2VyLnRzeFxudmFyIEFkZFVzZXJfZGVmYXVsdCA9IEFkZFVzZXI7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IEFkZFVzZXJfZGVmYXVsdCBhcyBkZWZhdWx0IH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFkZFVzZXIubWpzLm1hcCIsImltcG9ydCBDaGFuZ2VQYXNzd29yZCBmcm9tIFwiLi4vLi4vc2VjdGlvbnMvU2VjdXJpdHkvQ2hhbmdlUGFzc3dvcmQubWpzXCI7XG5pbXBvcnQgXCIuLi8uLi9zZWN0aW9ucy9TZWN1cml0eS9pbmRleC5tanNcIjtcbi8vI3JlZ2lvbiBzcmMvcGFnZXMvU2VjdXJpdHkvQ2hhbmdlUGFzc3dvcmQudHN4XG52YXIgQ2hhbmdlUGFzc3dvcmRfZGVmYXVsdCA9IENoYW5nZVBhc3N3b3JkO1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBDaGFuZ2VQYXNzd29yZF9kZWZhdWx0IGFzIGRlZmF1bHQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q2hhbmdlUGFzc3dvcmQubWpzLm1hcCIsImltcG9ydCBcInJlYWN0XCI7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBGcmFnbWVudCQxLCBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEdsb2JhbFN0eWxlcyB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG4vLyNyZWdpb24gc3JjL1RoZW1lL1Jlc2V0U3R5bGVzLnRzeFxudmFyIFJlc2V0U3R5bGVzID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQkMSwgeyBjaGlsZHJlbjogWy8qIEBfX1BVUkVfXyAqLyBqc3goR2xvYmFsU3R5bGVzLCB7IHN0eWxlczogKHRoZW1lKSA9PiAoe1xuXHRcdFwiaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSwgZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCwgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlb1wiOiB7IGZvbnRGYW1pbHk6IFwiXFxcIlJvYm90b1xcXCIsIEhlbHZldGljYSBOZXVlLCBBcmlhbCwgc2Fucy1zZXJpZlwiIH0sXG5cdFx0c3Ryb25nOiB7IGZvbnRXZWlnaHQ6IHRoZW1lLmZvbnRXZWlnaHQuc2VtaUJvbGQgfSxcblx0XHRcImh0bWwsIGJvZHksICNyb290XCI6IHsgaGVpZ2h0OiBcIjEwMCVcIiB9LFxuXHRcdHVsOiB7XG5cdFx0XHRtYXJnaW46IDAsXG5cdFx0XHRwYWRkaW5nOiAwLFxuXHRcdFx0bGlzdFN0eWxlOiBcIm5vbmVcIlxuXHRcdH0sXG5cdFx0XCIuY29udGFpbmVyXCI6IHtcblx0XHRcdHBhZGRpbmdUb3A6IDE1LFxuXHRcdFx0cGFkZGluZ0JvdHRvbTogMTUsXG5cdFx0XHRmbGV4OiAxLFxuXHRcdFx0aGVpZ2h0OiBcIjEwMCVcIixcblx0XHRcdFtgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHt0aGVtZS5icmVha1BvaW50cy5jb250YWluZXJ9cHgpYF06IHtcblx0XHRcdFx0bWF4V2lkdGg6IHRoZW1lLmJyZWFrUG9pbnRzLmNvbnRhaW5lcixcblx0XHRcdFx0d2lkdGg6IFwiMTAwJVwiLFxuXHRcdFx0XHRtYXJnaW5MZWZ0OiBcImF1dG9cIixcblx0XHRcdFx0bWFyZ2luUmlnaHQ6IFwiYXV0b1wiXG5cdFx0XHR9XG5cdFx0fVxuXHR9KSB9KSwgY2hpbGRyZW5dIH0pO1xufTtcbi8vI2VuZHJlZ2lvblxuZXhwb3J0IHsgUmVzZXRTdHlsZXMgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1SZXNldFN0eWxlcy5tanMubWFwIiwiaW1wb3J0IFJlc2V0U3R5bGVzIGZyb20gXCIuL1Jlc2V0U3R5bGVzLm1qc1wiO1xuaW1wb3J0IFwicmVhY3RcIjtcbmltcG9ydCB7IEZyYWdtZW50IGFzIEZyYWdtZW50JDEsIGpzeCwganN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IENzc0Jhc2VsaW5lIGZyb20gXCJAbXVpL21hdGVyaWFsL0Nzc0Jhc2VsaW5lXCI7XG5pbXBvcnQgXCJub3JtYWxpemUuY3NzXCI7XG4vLyNyZWdpb24gc3JjL1RoZW1lL1N0eWxlQmFzZWxpbmUudHN4XG52YXIgU3R5bGVCYXNlbGluZSA9ICgpID0+IC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50JDEsIHsgY2hpbGRyZW46IFsvKiBAX19QVVJFX18gKi8ganN4KENzc0Jhc2VsaW5lLCB7fSksIC8qIEBfX1BVUkVfXyAqLyBqc3goUmVzZXRTdHlsZXMsIHt9KV0gfSk7XG4vLyNlbmRyZWdpb25cbmV4cG9ydCB7IFN0eWxlQmFzZWxpbmUgYXMgZGVmYXVsdCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdHlsZUJhc2VsaW5lLm1qcy5tYXAiLCJpbXBvcnQgQXZhdGFyIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQXZhdGFyJztcbmltcG9ydCBBdmF0YXJHcm91cCBmcm9tICdAbXVpL21hdGVyaWFsL0F2YXRhckdyb3VwJztcbmltcG9ydCBMaW5rIGZyb20gJ0BtdWkvbWF0ZXJpYWwvTGluayc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgY29udHJpYnV0b3JzIGZyb20gJy4vZ2VuZXJhdGVkX2NvbnRyaWJ1dG9yc19saXN0Lmpzb24nO1xuXG5jb25zdCBnZW5lcmF0ZUltYWdlID0gKGlkKSA9PiBgaHR0cHM6Ly9hdmF0YXJzMy5naXRodWJ1c2VyY29udGVudC5jb20vdS8ke2lkfT9zPTEyMCZ2PTRgO1xuXG5jb25zdCBDb250cmlidXRvcnM6IFJlYWN0LkZDID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8TGluayBocmVmPXtgaHR0cHM6Ly92ZXJkYWNjaW8ub3JnL2NvbnRyaWJ1dG9yc2B9IHJlbD1cIm5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgPEF2YXRhckdyb3VwIG1heD17MTF9IHNwYWNpbmc9ezE1fSB0b3RhbD17NDAwfT5cbiAgICAgICAgICB7Y29udHJpYnV0b3JzPy5tYXAoKHsgdXNlcm5hbWUsIGlkIH0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXYga2V5PXt1c2VybmFtZX0+XG4gICAgICAgICAgICAgICAgPEF2YXRhciBhbHQ9e3VzZXJuYW1lfSBzcmM9e2dlbmVyYXRlSW1hZ2UoaWQpfSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvQXZhdGFyR3JvdXA+XG4gICAgICA8L0xpbms+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb250cmlidXRvcnM7XG4iLCJpbXBvcnQgeyBMaW5rIH0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5pbXBvcnQgR3JpZCBmcm9tICdAbXVpL21hdGVyaWFsL0dyaWQnO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSAnQG11aS9tYXRlcmlhbC9UeXBvZ3JhcGh5JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IHRpdGxlID0gJ1N1cHBvcnQgcGVvcGxlIGFmZmVjdGVkIGJ5IHRoZSB3YXIgaW4gVWtyYWluZSc7XG5cbmNvbnN0IGxpbmtzID0gW1xuICB7XG4gICAgaHJlZjogJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TGVHMDl6dV9wX2cnLFxuICAgIHRleHQ6ICdBc2sgVWtyYWluaWFuIG9wZW4tc291cmNlIGRldmVsb3BlcnMgYWJvdXQgd2FyIOKAlCBUd2l0dGVyIFNwYWNlJyxcbiAgfSxcbiAge1xuICAgIGhyZWY6ICdodHRwczovL3NueWsuaW8vYmxvZy9jZWxlYnJhdGluZy1hbWF6aW5nLW9wZW4tc291cmNlLWlubm92YXRpb24tdWtyYWluZS8nLFxuICAgIHRleHQ6ICdTbnlrIGJsb2cgLSBMZWFybiBtb3JlIGFib3V0IE9wZW4gU291cmNlIGRldmVsb3BlcnMgaW4gVWtyYWluZScsXG4gIH0sXG4gIHtcbiAgICBocmVmOiAnaHR0cHM6Ly93d3cuc2F2ZXRoZWNoaWxkcmVuLm9yZy91cy93aGVyZS13ZS13b3JrL3VrcmFpbmUvJyxcbiAgICB0ZXh0OiAnRG9uYXRlIHRvIHNhdmUgY2hpbGRyZW4gaW4gVWtyYWluZScsXG4gIH0sXG4gIHtcbiAgICBocmVmOiAnaHR0cHM6Ly93d3cuaWZyYy5vcmcvJyxcbiAgICB0ZXh0OiAnRG9uYXRlIHRvIHRoZSBJbnRlcm5hdGlvbmFsIFJlZCBDcm9zcycsXG4gIH0sXG4gIHtcbiAgICBocmVmOiAnaHR0cHM6Ly93d3cuaHJ3Lm9yZy9uZXdzLzIwMjIvMDMvMTAvdWtyYWluZS1ydXNzaWFuLWFpci1kcm9wcGVkLWJvbWJzLWhpdC1yZXNpZGVudGlhbC1hcmVhLycsXG4gICAgdGV4dDogJ1JlYWQgcmVwb3J0cyBmcm9tIEh1bWFuIFJpZ2h0cyBXYXRjaCcsXG4gIH0sXG4gIHtcbiAgICBocmVmOiAnaHR0cHM6Ly9ldXJvcGVhbmJsb29kYWxsaWFuY2UuZXUvJyxcbiAgICB0ZXh0OiAnRG9uYXRlIGJsb29kIGluIEV1cm9wZScsXG4gIH0sXG5dO1xuXG5jb25zdCBTdXBwb3J0ID0gKCkgPT4ge1xuICBjb25zdCBsaW5rRWxlbWVudHMgPSBsaW5rcy5tYXAoKGxpbmspID0+IChcbiAgICA8bGkga2V5PXtsaW5rLnRleHR9PlxuICAgICAgPExpbmsgaHJlZj17bGluay5ocmVmfSB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgPFR5cG9ncmFwaHk+e2xpbmsudGV4dH08L1R5cG9ncmFwaHk+XG4gICAgICA8L0xpbms+XG4gICAgPC9saT5cbiAgKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEdyaWQgY29udGFpbmVyPXt0cnVlfSBzcGFjaW5nPXsyfT5cbiAgICAgICAgPEdyaWQgaXRlbT17dHJ1ZX0geHM9ezEyfT5cbiAgICAgICAgICA8VHlwb2dyYXBoeSBjb21wb25lbnQ9XCJoMlwiIHZhcmlhbnQ9XCJoNlwiPlxuICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgICA8R3JpZCBpdGVtPXt0cnVlfSBsZz17MTJ9IHhzPXsxMn0+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZm9udFN0eWxlOiAnaXRhbGljJywgZm9udFNpemU6ICcwLjc1cmVtJyB9fT5cbiAgICAgICAgICAgIDxUeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICB7YEhpLCB0aGlzIGlzIGEgbWVzc2FnZSB0aGF0IEkndmUgY29tcG9zZWQgdG8gY2FsbCB5b3VyIGF0dGVudGlvbiB0byBhc2sgXG4gICAgICAgICAgICAgICAgZm9yIGh1bWFuaXRhcmlhbiBzdXBwb3J0IGZvciBtb3JlIHRoYW4gNDQgbWlsbGlvbiBVa3JhaW5pYW5zIHRoYXQgYXJlIGhhdmluZyBcbiAgICAgICAgICAgICAgICBhIGhhcmQgdGltZSBzdWZmZXJpbmcgZm9yIGEgaG9ycmlibGUgYW5kIHVuanVzdGlmaWVkIHdhci4gSXQgd291bGQgYmUgZ3JlYXQgaWYgeW91XG4gICAgICAgICAgICAgICAgZGVjaWRlIHRvZGF5IHRvIG1ha2UgYSBkaWZmZXJlbmNlIGFuZCBoZWxwIG90aGVycy4gWW91IGNvdWxkIGhlbHAgYnkgZG9uYXRpbmcgXG4gICAgICAgICAgICAgICAgdG8gdmVyeSB3ZWxsLWtub3duIGh1bWFuaXRhcmlhbiBvcmdhbml6YXRpb25zLCBoZWxwaW5nIGluIHlvdXIgbG9jYWwgXG4gICAgICAgICAgICAgICAgYXJlYSB3aXRoIGZvb2QsIGNsb3RoZXMsIGRvbmF0ZSBibG9vZCwgdG95cyBmb3Iga2lkcywgb3IgeW91ciBvd24gdGltZS4gQW55IGhlbHAgaXMgdmVyeSB3ZWxjb21lLmB9XG4gICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDx1bCBzdHlsZT17eyBwYWRkaW5nOiAnMTBweCAwJyB9fT57bGlua0VsZW1lbnRzfTwvdWw+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJkaXZcIj57YFNwcmVhZCB0aGUgdm9pY2UsIG1ha2UgdGhlIGRpZmZlcmVuY2UgdG9kYXkuYH08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiAnMTBweCAwJywgZm9udFdlaWdodDogNjAwIH19PlxuICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImRpdlwiPntgQXR0OiBWZXJkYWNjaW8gTGVhZCBNYW50YWluZXIsIEp1YW4gUC5gfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgPC9HcmlkPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU3VwcG9ydDtcbiIsIlZlcmRhY2NpbyBpcyBhbiBvcGVuIHNvdXJjZSBsaWdodHdlaWdodCBwcml2YXRlIHByb3h5IE5vZGUuanMgcmVnaXN0cnksXG55b3UgY2FuIFtsZWFybiBtb3JlIGFib3V0IHRoZSBwcm9qZWN0IGluIG91ciBibG9nXShodHRwczovL3ZlcmRhY2Npby5vcmcvYmxvZy8yMDE5LzAyLzA4L3RoZS1jcmF6eS1zdG9yeS1vZi12ZXJkYWNjaW8pLlxuXG4jIyMjIFVzZWZ1bCBsaW5rc1xuXG4tIFtJbnN0YWxsYXRpb25dKGh0dHBzOi8vdmVyZGFjY2lvLm9yZy9kb2NzL2luc3RhbGxhdGlvbilcbi0gW1RyYW5zbGF0ZV0oaHR0cHM6Ly90cmFuc2xhdGUudmVyZGFjY2lvLm9yZy8pXG4tIFtCZXN0IFByYWN0aWNlc10oaHR0cHM6Ly92ZXJkYWNjaW8ub3JnL2RvY3MvYmVzdClcbi0gW1NlY3VyaXR5IFBvbGljeV0oaHR0cHM6Ly9naXRodWIuY29tL3ZlcmRhY2Npby92ZXJkYWNjaW8vc2VjdXJpdHkvcG9saWN5KVxuLSBbU3BvbnNvciB2aWEgT3BlbiBDb2xsZWN0aXZlXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS92ZXJkYWNjaW8pXG4tIFtTcG9uc29yIHZpYSBHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy92ZXJkYWNjaW8pXG5cbiMjIyMgSG93IHRvIGNvbm5lY3RcblxuLSBbRGlzY3Vzc2lvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJkYWNjaW8vdmVyZGFjY2lvL2Rpc2N1c3Npb25zKVxuLSBbWW91VHViZSBDaGFubmVsXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDNWkyMHY2bzdsU2pYekFIT3ZhdHQwdylcbi0gW0Rpc2NvcmQgQ2hhdF0oaHR0cHM6Ly9kaXNjb3JkLmdnL2h2NDJqZnMpXG5cbmh0dHBzOi8vd3d3LnZlcmRhY2Npby5vcmdcblxuIyMjIyBNZWV0IHRoZSBjb250cmlidXRvcnNcbiIsIk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgMjAyNSBWZXJkYWNjaW8gY29udHJpYnV0b3JzXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5jb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG5JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG5TT0ZUV0FSRS5cbiIsIi8qKlxuICogVml0ZS1jb21wYXRpYmxlIHRyYW5zbGF0aW9uIGxvYWRlci5cbiAqIFVzZXMgaW1wb3J0Lm1ldGEuZ2xvYiAoc3VwcG9ydGVkIGJ5IGJvdGggVml0ZSBidWlsZHMgYW5kIFZpdGVzdClcbiAqIGluc3RlYWQgb2YgdGhlIENKUyByZXF1aXJlKCktYmFzZWQgQHZlcmRhY2Npby91aS1pMThuIHBhY2thZ2UuXG4gKi9cbmltcG9ydCBlblRyYW5zbGF0aW9ucyBmcm9tICcuL2Nyb3dkaW4vdWkuanNvbic7XG5cbmNvbnN0IHRyYW5zbGF0aW9uTW9kdWxlcyA9IGltcG9ydC5tZXRhLmdsb2IoJy4vZG93bmxvYWRfdHJhbnNsYXRpb25zLyovdWkuanNvbicsIHtcbiAgZWFnZXI6IHRydWUsXG4gIGltcG9ydDogJ2RlZmF1bHQnLFxufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBTkdVQUdFID0gJ2VuLVVTJztcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRUcmFuc2xhdGlvbkZpbGUobG5nOiBzdHJpbmcpIHtcbiAgaWYgKGxuZyA9PT0gREVGQVVMVF9MQU5HVUFHRSkge1xuICAgIHJldHVybiBlblRyYW5zbGF0aW9ucztcbiAgfVxuICBjb25zdCBrZXkgPSBgLi9kb3dubG9hZF90cmFuc2xhdGlvbnMvJHtsbmd9L3VpLmpzb25gO1xuICByZXR1cm4gKHRyYW5zbGF0aW9uTW9kdWxlc1trZXldIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID8/IGVuVHJhbnNsYXRpb25zO1xufVxuXG5leHBvcnQgZGVmYXVsdCBsb2FkVHJhbnNsYXRpb25GaWxlO1xuIiwiaW1wb3J0ICogYXMgRmxhZ3MgZnJvbSAnY291bnRyeS1mbGFnLWljb25zL3JlYWN0LzN4Mic7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBTkdVQUdFID0gJ2VuLVVTJztcblxuZXhwb3J0IHR5cGUgTGFuZ3VhZ2VDb25maWd1cmF0aW9uID0ge1xuICBsbmc6IHN0cmluZztcbiAgbWVudUtleTogc3RyaW5nO1xuICBpY29uOiBGbGFncy5GbGFnQ29tcG9uZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGxpc3RMYW5ndWFnZXM6IExhbmd1YWdlQ29uZmlndXJhdGlvbltdID0gW1xuICB7IGxuZzogREVGQVVMVF9MQU5HVUFHRSwgaWNvbjogRmxhZ3MuVVMsIG1lbnVLZXk6ICdsbmcuZW5nbGlzaCcgfSxcbiAgeyBsbmc6ICdjcy1DWicsIGljb246IEZsYWdzLkNaLCBtZW51S2V5OiAnbG5nLmN6ZWNoJyB9LFxuICB7IGxuZzogJ3B0LUJSJywgaWNvbjogRmxhZ3MuQlIsIG1lbnVLZXk6ICdsbmcucG9ydHVndWVzZScgfSxcbiAgeyBsbmc6ICdlcy1FUycsIGljb246IEZsYWdzLkVTLCBtZW51S2V5OiAnbG5nLnNwYW5pc2gnIH0sXG4gIHsgbG5nOiAnZ2EtSUUnLCBpY29uOiBGbGFncy5JRSwgbWVudUtleTogJ2xuZy5pcmlzaCcgfSxcbiAgeyBsbmc6ICdkZS1ERScsIGljb246IEZsYWdzLkRFLCBtZW51S2V5OiAnbG5nLmdlcm1hbicgfSxcbiAgeyBsbmc6ICdpdC1JVCcsIGljb246IEZsYWdzLklULCBtZW51S2V5OiAnbG5nLml0YWxpYW4nIH0sXG4gIHsgbG5nOiAnZnItRlInLCBpY29uOiBGbGFncy5GUiwgbWVudUtleTogJ2xuZy5mcmVuY2gnIH0sXG4gIHsgbG5nOiAnamEtSlAnLCBpY29uOiBGbGFncy5KUCwgbWVudUtleTogJ2xuZy5qYXBhbmVzZScgfSxcbiAgeyBsbmc6ICdydS1SVScsIGljb246IEZsYWdzLlJVLCBtZW51S2V5OiAnbG5nLnJ1c3NpYW4nIH0sXG4gIHsgbG5nOiAndHItVFInLCBpY29uOiBGbGFncy5UUiwgbWVudUtleTogJ2xuZy50dXJraXNoJyB9LFxuICB7IGxuZzogJ3VrLVVBJywgaWNvbjogRmxhZ3MuVUEsIG1lbnVLZXk6ICdsbmcudWtyYWluZScgfSxcbiAgeyBsbmc6ICdrbS1LSCcsIGljb246IEZsYWdzLktILCBtZW51S2V5OiAnbG5nLmtobWVyJyB9LFxuICB7IGxuZzogJ3poLUNOJywgaWNvbjogRmxhZ3MuQ04sIG1lbnVLZXk6ICdsbmcuY2hpbmVzZScgfSxcbiAgeyBsbmc6ICd6aC1UVycsIGljb246IEZsYWdzLlRXLCBtZW51S2V5OiAnbG5nLmNoaW5lc2VUcmFkaXRpb25hbCcgfSxcbl07XG5cbmNvbnN0IGxhbmd1YWdlcyA9IGxpc3RMYW5ndWFnZXMucmVkdWNlKChhY2MsIGl0ZW06IExhbmd1YWdlQ29uZmlndXJhdGlvbikgPT4ge1xuICBhY2MucHVzaChpdGVtLmxuZyk7XG4gIHJldHVybiBhY2M7XG59LCBbXSBhcyBzdHJpbmdbXSk7XG5cbmV4cG9ydCBjb25zdCBsaXN0TGFuZ3VhZ2VzQXNTdHJpbmcgPSBsYW5ndWFnZXM7XG5cbmV4cG9ydCB0eXBlIExhbmd1YWdlID0ga2V5b2YgdHlwZW9mIGxpc3RMYW5ndWFnZXNBc1N0cmluZztcbiIsImltcG9ydCBpMThuIGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHsgaW5pdFJlYWN0STE4bmV4dCB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbXBvcnQgbG9hZFRyYW5zbGF0aW9uRmlsZSBmcm9tICdAdmVyZGFjY2lvL3VpLWkxOG4nO1xuXG5pbXBvcnQgdHlwZSB7IExhbmd1YWdlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZW5hYmxlZExhbmd1YWdlcyc7XG5pbXBvcnQgeyBERUZBVUxUX0xBTkdVQUdFLCBsaXN0TGFuZ3VhZ2VzLCBsaXN0TGFuZ3VhZ2VzQXNTdHJpbmcgfSBmcm9tICcuL2VuYWJsZWRMYW5ndWFnZXMnO1xuXG5jb25zdCBsYW5ndWFnZXMgPSBsaXN0TGFuZ3VhZ2VzLnJlZHVjZSgoYWNjLCBpdGVtOiBMYW5ndWFnZUNvbmZpZ3VyYXRpb24pID0+IHtcbiAgYWNjW2l0ZW0ubG5nXSA9IHtcbiAgICB0cmFuc2xhdGlvbjpcbiAgICAgIGl0ZW0ubG5nID09PSBERUZBVUxUX0xBTkdVQUdFXG4gICAgICAgID8gbG9hZFRyYW5zbGF0aW9uRmlsZShERUZBVUxUX0xBTkdVQUdFKVxuICAgICAgICA6IGxvYWRUcmFuc2xhdGlvbkZpbGUoaXRlbS5sbmcpLFxuICB9O1xuICByZXR1cm4gYWNjO1xufSwge30pO1xuXG5pMThuXG4gIC8vIHBhc3MgdGhlIGkxOG4gaW5zdGFuY2UgdG8gcmVhY3QtaTE4bmV4dC5cbiAgLnVzZShpbml0UmVhY3RJMThuZXh0KVxuICAvLyBpbml0IGkxOG5leHRcbiAgLy8gZm9yIGFsbCBvcHRpb25zIHJlYWQ6IGh0dHBzOi8vd3d3LmkxOG5leHQuY29tL292ZXJ2aWV3L2NvbmZpZ3VyYXRpb24tb3B0aW9uc1xuICAuaW5pdCh7XG4gICAgLy8gaW4gY2FzZSB3aW5kb3cuVkVEQUNDSU9fTEFOR1VBR0UgaXMgdW5kZWZpbmVkLGl0IHdpbGwgZmFsbCBiYWNrIHRvICdlbi1VUydcbiAgICBsbmc6IHdpbmRvdz8uX19WRVJEQUNDSU9fQkFTRU5BTUVfVUlfT1BUSU9OUz8ubGFuZ3VhZ2UgfHwgREVGQVVMVF9MQU5HVUFHRSxcbiAgICBmYWxsYmFja0xuZzogREVGQVVMVF9MQU5HVUFHRSxcbiAgICB3aGl0ZWxpc3Q6IFsuLi5saXN0TGFuZ3VhZ2VzQXNTdHJpbmddLFxuICAgIGxvYWQ6ICdjdXJyZW50T25seScsXG4gICAgcmVhY3Q6IHtcbiAgICAgIHVzZVN1c3BlbnNlOiBmYWxzZSxcbiAgICB9LFxuICAgIHJlc291cmNlczogbGFuZ3VhZ2VzLFxuICAgIGRlYnVnOiBmYWxzZSxcbiAgICBpbnRlcnBvbGF0aW9uOiB7XG4gICAgICBlc2NhcGVWYWx1ZTogZmFsc2UsIC8vIHJlYWN0IGFscmVhZHkgc2FmZXMgZnJvbSB4c3NcbiAgICB9LFxuICB9KTtcblxuZXhwb3J0IGRlZmF1bHQgaTE4bjtcbiIsImltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgaTE4biBmcm9tICdpMThuZXh0JztcblxuZnVuY3Rpb24gZ2V0RmFsbEZhY2tMYW5ndWFnZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBmYWxsYmFja0xhbmd1YWdlID0gaTE4bi5vcHRpb25zLmZhbGxiYWNrTG5nO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGZhbGxiYWNrTGFuZ3VhZ2UpKSB7XG4gICAgcmV0dXJuIGZhbGxiYWNrTGFuZ3VhZ2VbMF07XG4gIH1cblxuICBpZiAodHlwZW9mIGZhbGxiYWNrTGFuZ3VhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbGxiYWNrTGFuZ3VhZ2U7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2FkRGF5SlNMb2NhbGUoKSB7XG4gIGNvbnN0IGZhbGxiYWNrTGFuZ3VhZ2UgPSBnZXRGYWxsRmFja0xhbmd1YWdlKCk7XG4gIGNvbnN0IGxvY2FsZSA9IGkxOG4ubGFuZ3VhZ2UgfHwgZmFsbGJhY2tMYW5ndWFnZTtcblxuICBzd2l0Y2ggKGxvY2FsZT8udG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ3B0LWJyJzpcbiAgICAgIGF3YWl0IGltcG9ydCgnZGF5anMvbG9jYWxlL3B0LWJyJyk7XG4gICAgICBkYXlqcy5sb2NhbGUoJ3B0LWJyJyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdkZS1kZSc6XG4gICAgICBhd2FpdCBpbXBvcnQoJ2RheWpzL2xvY2FsZS9kZScpO1xuICAgICAgZGF5anMubG9jYWxlKCdkZScpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZXMtZXMnOlxuICAgICAgYXdhaXQgaW1wb3J0KCdkYXlqcy9sb2NhbGUvZXMnKTtcbiAgICAgIGRheWpzLmxvY2FsZSgnZXMnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2ZyLWZyJzpcbiAgICAgIGF3YWl0IGltcG9ydCgnZGF5anMvbG9jYWxlL2ZyJyk7XG4gICAgICBkYXlqcy5sb2NhbGUoJ2ZyJyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd6aC1jbic6XG4gICAgICBhd2FpdCBpbXBvcnQoJ2RheWpzL2xvY2FsZS96aC1jbicpO1xuICAgICAgZGF5anMubG9jYWxlKCd6aC1jbicpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnamEtanAnOlxuICAgICAgYXdhaXQgaW1wb3J0KCdkYXlqcy9sb2NhbGUvamEnKTtcbiAgICAgIGRheWpzLmxvY2FsZSgnamEnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3J1LXJ1JzpcbiAgICAgIGF3YWl0IGltcG9ydCgnZGF5anMvbG9jYWxlL3J1Jyk7XG4gICAgICBkYXlqcy5sb2NhbGUoJ3J1Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0ci10cic6XG4gICAgICBhd2FpdCBpbXBvcnQoJ2RheWpzL2xvY2FsZS90cicpO1xuICAgICAgZGF5anMubG9jYWxlKCd0cicpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndWstdWEnOlxuICAgICAgYXdhaXQgaW1wb3J0KCdkYXlqcy9sb2NhbGUvdWsnKTtcbiAgICAgIGRheWpzLmxvY2FsZSgndWsnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3poLXR3JzpcbiAgICAgIGF3YWl0IGltcG9ydCgnZGF5anMvbG9jYWxlL3poLXR3Jyk7XG4gICAgICBkYXlqcy5sb2NhbGUoJ3poLXR3Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdjcy1jeic6XG4gICAgICBhd2FpdCBpbXBvcnQoJ2RheWpzL2xvY2FsZS9jcycpO1xuICAgICAgZGF5anMubG9jYWxlKCdjcycpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGF3YWl0IGltcG9ydCgnZGF5anMvbG9jYWxlL2VuJyk7XG4gICAgICBkYXlqcy5sb2NhbGUoJ2VuJyk7XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBsb2FkRGF5SlNMb2NhbGU7XG4iLCJpbXBvcnQgQm94IGZyb20gJ0BtdWkvbWF0ZXJpYWwvQm94JztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCAqIGFzIEZsYWdzSWNvbiBmcm9tICdjb3VudHJ5LWZsYWctaWNvbnMvcmVhY3QvM3gyJztcbmltcG9ydCBSZWFjdCwgeyBTdHJpY3RNb2RlLCBTdXNwZW5zZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCBSZWFjdE1hcmtkb3duIGZyb20gJ3JlYWN0LW1hcmtkb3duJztcbmltcG9ydCB7IEJyb3dzZXJSb3V0ZXIsIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyJztcblxuaW1wb3J0IHtcbiAgRXJyb3JCb3VuZGFyeSxcbiAgRm9vdGVyLFxuICBIZWFkZXIsXG4gIEhlYWRlckluZm9EaWFsb2csXG4gIExvYWRpbmcsXG4gIFJvdXRlLFxuICBTZWFyY2hQcm92aWRlcixcbiAgVHJhbnNsYXRvclByb3ZpZGVyLFxuICBicmVha1BvaW50cyxcbiAgdXNlQ29uZmlnLFxufSBmcm9tICdAdmVyZGFjY2lvL3VpLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgQ29udHJpYnV0b3JzIGZyb20gJy4uL2NvbXBvbmVudHMvQ29udHJpYnV0b3JzJztcbmltcG9ydCBTdXBwb3J0IGZyb20gJy4uL2NvbXBvbmVudHMvU3VwcG9ydCc7XG5pbXBvcnQgYWJvdXQgZnJvbSAnLi4vY29tcG9uZW50cy9hYm91dC5tZCc7XG5pbXBvcnQgbGljZW5zZSBmcm9tICcuLi9jb21wb25lbnRzL2xpY2Vuc2UubWQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vaTE4bi9jb25maWcnO1xuaW1wb3J0IHsgbGlzdExhbmd1YWdlcyB9IGZyb20gJy4uL2kxOG4vZW5hYmxlZExhbmd1YWdlcyc7XG5pbXBvcnQgbG9hZERheUpTTG9jYWxlIGZyb20gJy4uL2kxOG4vbG9hZC1kYXlqcy1sb2NhbGUnO1xuaW1wb3J0IEFwcFJvdXRlIGZyb20gJy4vQXBwUm91dGUnO1xuXG5jb25zdCBTdHlsZWRCb3ggPSBzdHlsZWQoQm94KSgoeyB0aGVtZSB9KSA9PiAoe1xuICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0LFxufSkpO1xuXG5jb25zdCBTdHlsZWRCb3hDb250ZW50ID0gc3R5bGVkKEJveCkoe1xuICBbYEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR7YnJlYWtQb2ludHMuY29udGFpbmVyfXB4KWBdOiB7XG4gICAgbWF4V2lkdGg6IGJyZWFrUG9pbnRzLmNvbnRhaW5lcixcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIG1hcmdpbkxlZnQ6ICdhdXRvJyxcbiAgICBtYXJnaW5SaWdodDogJ2F1dG8nLFxuICB9LFxufSk7XG5cbmNvbnN0IEZsYWdzID0gc3R5bGVkKCdzcGFuJykoKCkgPT4gKHtcbiAgd2lkdGg6ICcyNXB4Jyxcbn0pKTtcblxuZnVuY3Rpb24gQ3VzdG9tSW5mb0RpYWxvZyh7IG9uQ2xvc2VEaWFsb2csIHRpdGxlLCBpc09wZW4gfSkge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIHJldHVybiAoXG4gICAgPEhlYWRlckluZm9EaWFsb2dcbiAgICAgIGRpYWxvZ1RpdGxlPXt0aXRsZX1cbiAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgb25DbG9zZURpYWxvZz17b25DbG9zZURpYWxvZ31cbiAgICAgIHRhYlBhbmVscz17W1xuICAgICAgICB7XG4gICAgICAgICAgZWxlbWVudDogKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPFJlYWN0TWFya2Rvd24+e2Fib3V0fTwvUmVhY3RNYXJrZG93bj5cbiAgICAgICAgICAgICAgPENvbnRyaWJ1dG9ycyAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBlbGVtZW50OiA8UmVhY3RNYXJrZG93bj57bGljZW5zZX08L1JlYWN0TWFya2Rvd24+IH0sXG4gICAgICAgIHsgZWxlbWVudDogPFN1cHBvcnQgLz4gfSxcbiAgICAgIF19XG4gICAgICB0YWJzPXtbXG4gICAgICAgIHsgbGFiZWw6IHQoJ2Fib3V0JykgfSxcbiAgICAgICAgeyBsYWJlbDogdCgnZGlhbG9nLmxpY2Vuc2UnKSB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgIGljb246IChcbiAgICAgICAgICAgIDxGbGFncz5cbiAgICAgICAgICAgICAgPEZsYWdzSWNvbi5VQSAvPlxuICAgICAgICAgICAgPC9GbGFncz5cbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBBcHBDb250ZW50OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgeyBjb25maWdPcHRpb25zIH0gPSB1c2VDb25maWcoKTtcbiAgY29uc3QgbG9jYXRpb24gPSB1c2VMb2NhdGlvbigpO1xuICBjb25zdCBpc1BsYWluSGVhZGVyID0gW1xuICAgIFJvdXRlLkxPR0lOLFxuICAgIFJvdXRlLlNVQ0NFU1MsXG4gICAgUm91dGUuQUREX1VTRVIsXG4gICAgUm91dGUuQ0hBTkdFX1BBU1NXT1JELFxuICBdLmluY2x1ZGVzKGxvY2F0aW9uLnBhdGhuYW1lIGFzIFJvdXRlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvYWREYXlKU0xvY2FsZSgpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQm94IGRpc3BsYXk9XCJmbGV4XCIgZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgIDxTZWFyY2hQcm92aWRlcj5cbiAgICAgICAgPEhlYWRlciBIZWFkZXJJbmZvRGlhbG9nPXtDdXN0b21JbmZvRGlhbG9nfSBpc1BsYWluSGVhZGVyPXtpc1BsYWluSGVhZGVyfSAvPlxuICAgICAgPC9TZWFyY2hQcm92aWRlcj5cbiAgICAgIDxTdHlsZWRCb3hDb250ZW50IGZsZXhHcm93PXsxfT5cbiAgICAgICAgPEFwcFJvdXRlIC8+XG4gICAgICA8L1N0eWxlZEJveENvbnRlbnQ+XG4gICAgICB7Y29uZmlnT3B0aW9ucy5zaG93Rm9vdGVyICYmIDxGb290ZXIgLz59XG4gICAgPC9TdHlsZWRCb3g+XG4gICk7XG59O1xuXG4vLyBAdHMtaWdub3JlXG5jb25zdCBiYXNlbmFtZSA9IHdpbmRvdz8uX19WRVJEQUNDSU9fQkFTRU5BTUVfVUlfT1BUSU9OUz8udXJsX3ByZWZpeDtcblxuY29uc3QgQXBwOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8U3RyaWN0TW9kZT5cbiAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICA8VHJhbnNsYXRvclByb3ZpZGVyXG4gICAgICAgICAgaTE4bj17aTE4bn1cbiAgICAgICAgICBsaXN0TGFuZ3VhZ2VzPXtsaXN0TGFuZ3VhZ2VzfVxuICAgICAgICAgIG9uTW91bnQ9eygpID0+IGxvYWREYXlKU0xvY2FsZX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PExvYWRpbmcgLz59PlxuICAgICAgICAgICAgPEJyb3dzZXJSb3V0ZXIgYmFzZW5hbWU9e2Jhc2VuYW1lfT5cbiAgICAgICAgICAgICAgPEFwcENvbnRlbnQgLz5cbiAgICAgICAgICAgIDwvQnJvd3NlclJvdXRlcj5cbiAgICAgICAgICA8L1N1c3BlbnNlPlxuICAgICAgICA8L1RyYW5zbGF0b3JQcm92aWRlcj5cbiAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICA8L1N0cmljdE1vZGU+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHA7XG5leHBvcnQgeyBBcHBDb250ZW50IH07XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuXG5pbXBvcnQge1xuICBBcHBDb25maWd1cmF0aW9uUHJvdmlkZXIsXG4gIEF1dGhQcm92aWRlcixcbiAgRXJyb3JCb3VuZGFyeSxcbiAgUGVyc2lzdGVuY2VTZXR0aW5nUHJvdmlkZXIsXG4gIFN0eWxlQmFzZWxpbmUsXG4gIFRoZW1lUHJvdmlkZXIsXG59IGZyb20gJ0B2ZXJkYWNjaW8vdWktY29tcG9uZW50cyc7XG5cbmltcG9ydCBBcHAgZnJvbSAnLi9BcHAnO1xuXG5jb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcpO1xuXG5pZiAoIWNvbnRhaW5lcikge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1Jvb3QgY29udGFpbmVyIG1pc3NpbmcnKTtcbn1cblxuY29uc3Qgcm9vdCA9IGNyZWF0ZVJvb3QoY29udGFpbmVyKTtcblxuY29uc3QgQXBwQ29udGFpbmVyID0gKCkgPT4gKFxuICA8RXJyb3JCb3VuZGFyeT5cbiAgICA8QXBwQ29uZmlndXJhdGlvblByb3ZpZGVyPlxuICAgICAgPFRoZW1lUHJvdmlkZXI+XG4gICAgICAgIDxTdHlsZUJhc2VsaW5lIC8+XG4gICAgICAgIDxQZXJzaXN0ZW5jZVNldHRpbmdQcm92aWRlcj5cbiAgICAgICAgICA8QXV0aFByb3ZpZGVyPlxuICAgICAgICAgICAgPEFwcCAvPlxuICAgICAgICAgIDwvQXV0aFByb3ZpZGVyPlxuICAgICAgICA8L1BlcnNpc3RlbmNlU2V0dGluZ1Byb3ZpZGVyPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgIDwvQXBwQ29uZmlndXJhdGlvblByb3ZpZGVyPlxuICA8L0Vycm9yQm91bmRhcnk+XG4pO1xuXG5yb290LnJlbmRlcig8QXBwQ29udGFpbmVyIC8+KTtcbiJdLCJmaWxlIjoibWFpbi5DQlMxVUVqYy5qcyJ9
|