/usr/share/grafana/public/app/plugins/datasource/grafana-testdata-datasource/dist
{"version":3,"file":"module.js","mappings":"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CN,CACEr6B,KAAMwnC,EAAAA,6BAA6BhsC,GACnCuI,KAAMs9B,EAAAA,UAAUuB,OAChBxoC,OAAQ,CACN,IACA,eACA,iBACA,sBACA,oBACA,sBACA,kBACA,oBACA,uBACA,cACA,gBACA,0BACA,gBACA,aACA,cACA,kBACA,yBACA,cACA,gBACA,eACA,UACA,sBACA,kBACA,iBACA,iBACA,gBACA,8BACA,sBACA,kBACA,wBACA,MACA,aACA,UACA,KACA,6BACA,eACA,oBACA,uBACA,mBACA,mBACA,0BACA,iBACA,gBACA,iBACA,yBACA,2BACA,mBACA,gBACA,YACA,YACA,SACA,iBACA,sBACA,uBACA,oBACA,cACA,iBACA,6BACA,uBACA,sBACA,mBACA,oBACA,2BACA,gBACA,kBACA,eACA,cACA,qBACA,SACA,sBAGJ,CACE4F,KAAMwnC,EAAAA,6BAA6Bv+B,MACnC8yB,OAAQ,CACN51B,YAAa,gBAEfpC,KAAMs9B,EAAAA,UAAUuB,OAChBxoC,OAAQ,CACN,IACA,eACA,iBACA,sBACA,oBACA,sBACA,kBACA,oBACA,uBACA,cACA,gBACA,0BACA,gBACA,aACA,cACA,kBACA,yBACA,cACA,gBACA,eACA,UACA,sBACA,kBACA,iBACA,iBACA,gBACA,8BACA,sBACA,kBACA,wBACA,MACA,aACA,UACA,KACA,6BACA,eACA,oBACA,uBACA,mBACA,mBACA,0BACA,iBACA,gBACA,iBACA,yBACA,2BACA,mBACA,gBACA,YACA,YACA,SACA,iBACA,sBACA,uBACA,oBACA,cACA,iBACA,6BACA,uBACA,sBACA,mBACA,oBACA,2BACA,gBACA,kBACA,eACA,cACA,qBACA,SACA,sBAGJ,CACE4F,KAAMwnC,EAAAA,6BAA6BM,SACnC/L,OAAQ,CACNqI,KAAM,OACNj+B,YAAa,yBAEfpC,KAAMs9B,EAAAA,UAAUG,OAChBpnC,OAAQ,CACN,kBACA,kBACA,KACA,kBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,KACA,kBACA,kBACA,kBACA,kBACA,gBACA,kBACA,KACA,kBACA,mBACA,KACA,KACA,KACA,kBACA,KACA,KACA,kBACA,kBACA,KACA,mBACA,KACA,KACA,KACA,oBACA,KACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,KACA,mBACA,KACA,kBACA,KACA,mBACA,kBACA,iBACA,KACA,kBACA,KACA,kBACA,mBACA,kBACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAGJ,CACE4F,KAAMwnC,EAAAA,6BAA6BO,cACnChM,OAAQ,CACNqI,KAAM,QACNj+B,YAAa,uBAEfpC,KAAMs9B,EAAAA,UAAUG,OAChBpnC,OAAQ,CACN,EACA,EACA,KACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,IACA,KACA,EACA,EACA,IACA,EACA,EACA,EACA,KACA,EACA,EACA,KACA,KACA,KACA,GACA,KACA,KACA,EACA,EACA,KACA,EACA,KACA,KACA,KACA,EACA,KACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KACA,EACA,KACA,EACA,KACA,EACA,EACA,EACA,KACA,EACA,KACA,EACA,EACA,EACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAGJ,CACE4F,KAAM,eACN+7B,OAAQ,CACN51B,YAAa,UACb8hC,MAAO,CACLG,WAAY,QACZn3B,KAAM,UAGVlN,KAAMs9B,EAAAA,UAAUG,OAChBpnC,OAAQ,CACN,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,iBAAmB,kBAAoB,kBAAoB,EAAG,kBAAoB,EACpG,kBAAoB,kBAAoB,kBAAoB,kBAAoB,EAAG,EAAG,EAAG,kBAAoB,EAC7G,EAAG,EAAG,EAAG,kBAAoB,EAAG,EAAG,iBAAmB,kBAAoB,EAAG,iBAAmB,EAAG,EAAG,EAAG,EAAG,EAC5G,iBAAmB,EAAG,EAAG,kBAAoB,kBAAoB,kBAAoB,iBACrF,kBAAoB,kBAAoB,EAAG,kBAAoB,EAAG,kBAAoB,EAAG,kBAAoB,EAC7G,EAAG,EAAG,EAAG,EAAG,EAAG,mBAAqB,kBAAoB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAG1F,CACE4F,KAAM,cACN+7B,OAAQ,CACN51B,YAAa,SACb8hC,MAAO,CACLG,WAAY,MACZn3B,KAAM,UAGVlN,KAAMs9B,EAAAA,UAAUG,OAChBpnC,OAAQ,CACN,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,qBAAwB,sBAA0B,qBAAsB,EAC1F,qBAAyB,EAAG,oBAAsB,qBAAyB,mBAC3E,qBAAuB,EAAG,EAAG,EAAG,mBAAqB,EAAG,EAAG,EAAG,EAAG,mBAAqB,EAAG,EACzF,qBAAuB,qBAAuB,EAAG,mBAAqB,EAAG,EAAG,EAAG,EAAG,EAAG,oBAAsB,EAAG,EAC9G,oBAAsB,qBAAwB,mBAAqB,oBAAsB,mBACzF,sBAAyB,EAAG,mBAAqB,EAAG,oBAAsB,EAAG,mBAAqB,EAAG,EAAG,EAAG,EAAG,EAC9G,EAAG,iBAAmB,mBAAqB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAI/EyoC,KAAM,CAAEC,2BAA4B,aACpC9iC,KAAM,SAGKqoC,GAAQ,CACnBhO,OAAQ,CACN,CACEr6B,KAAMwnC,EAAAA,6BAA6BhsC,GACnCuI,KAAMs9B,EAAAA,UAAUuB,OAChBxoC,OAAQ,CACN,8BACA,mCACA,wCACA,sCACA,oCACA,uCACA,8BACA,kCACA,gCACA,0CACA,gCACA,6BACA,8BACA,kCACA,yCACA,4BACA,6BACA,8BACA,+BACA,8BACA,oCACA,2BACA,4BACA,mCACA,mCACA,sCACA,gCACA,kCACA,qCACA,8CACA,mCACA,+BACA,qCACA,oCACA,kCACA,qCACA,uCACA,yCACA,0CACA,2BACA,wBACA,yBACA,6BACA,0BACA,6BACA,mCACA,gCACA,0BACA,iBACA,cACA,SACA,0CACA,yCACA,wCACA,oCACA,2CACA,kCACA,iCACA,kCACA,0CACA,qCACA,2CACA,2CACA,mDACA,8BACA,+BACA,mCACA,wCACA,gCACA,gCACA,6BACA,8BACA,qCACA,uCACA,iCACA,uCACA,sCACA,mCACA,yCACA,yCACA,+BACA,uCACA,sBACA,cACA,mBACA,kCACA,qCACA,sCACA,gCACA,mCACA,iDACA,2CACA,6BACA,wCACA,WACA,gBACA,8BACA,4BACA,6CACA,8CACA,kCACA,gCACA,8BACA,8BACA,oCACA,+BACA,6CACA,wCACA,cACA,0BACA,uBACA,8BACA,sBACA,+BACA,sCACA,kCACA,gCACA,2BACA,4CAGJ,CACE4F,KAAMwnC,EAAAA,6BAA6Bc,OACnCvkC,KAAMs9B,EAAAA,UAAUuB,OAChB7G,OAAQ,CAAC,EACT3hC,OAAQ,CACN,iBACA,sBACA,sBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,gBACA,gBACA,cACA,eACA,sBACA,kBACA,gBACA,gBACA,iBACA,oBACA,oBACA,gBACA,gBACA,gBACA,8BACA,iBACA,gBACA,gBACA,gBACA,gBACA,uBACA,uBACA,uBACA,wBACA,aACA,aACA,aACA,aACA,cACA,cACA,cACA,cACA,cACA,aACA,UACA,KACA,eACA,uBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,0BACA,2BACA,gBACA,gBACA,iBACA,iBACA,iBACA,iBACA,kBACA,kBACA,sBACA,sBACA,kBACA,kBACA,kBACA,kBACA,kBACA,yBACA,gBACA,gBACA,YACA,YACA,YACA,iBACA,iBACA,uBACA,cACA,oBACA,sBACA,sBACA,mBACA,oBACA,SACA,SACA,gBACA,gBACA,2BACA,kBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,wBACA,sBACA,MACA,UACA,UACA,kBACA,cACA,eACA,mBACA,kBACA,kBACA,oBACA,wBAGJ,CACE4F,KAAMwnC,EAAAA,6BAA6Bj/B,OACnCxE,KAAMs9B,EAAAA,UAAUuB,OAChB7G,OAAQ,CAAC,EACT3hC,OAAQ,CACN,eACA,eACA,oBACA,sBACA,oBACA,uBACA,cACA,kBACA,gBACA,0BACA,gBACA,aACA,cACA,kBACA,yBACA,cACA,eACA,kBACA,kBACA,UACA,oBACA,aACA,cACA,oBACA,iBACA,oBACA,kBACA,oBACA,uBACA,kBACA,oBACA,iBACA,uBACA,sBACA,oBACA,gBACA,kBACA,oBACA,oBACA,gBACA,aACA,cACA,kBACA,cACA,iBACA,uBACA,oBACA,cACA,MACA,MACA,MACA,6BACA,oBACA,uBACA,mBACA,0BACA,iBACA,gBACA,iBACA,yBACA,oBACA,0BACA,mBACA,0BACA,gBACA,iBACA,oBACA,yBACA,iBACA,iBACA,aACA,cACA,iBACA,mBACA,iBACA,uBACA,sBACA,mBACA,yBACA,kBACA,iBACA,yBACA,YACA,IACA,SACA,mBACA,sBACA,iBACA,oBACA,iBACA,6BACA,uBACA,YACA,sBACA,IACA,SACA,gBACA,cACA,oBACA,8BACA,oBACA,kBACA,gBACA,gBACA,sBACA,iBACA,uBACA,oBACA,UACA,kBACA,eACA,cACA,UACA,kBACA,qBACA,kBACA,gBACA,SACA,wBAGJ,CACE4F,KAAMwnC,EAAAA,6BAA6BM,SACnC/L,OAAQ,CACNqI,KAAM,OACNj+B,YAAa,yBAEfpC,KAAMs9B,EAAAA,UAAUG,OAChBpnC,OAAQ,CACN,kBACA,kBACA,mBACA,kBACA,kBACA,iBACA,iBACA,kBACA,mBACA,KACA,mBACA,kBACA,mBACA,iBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,iBACA,kBACA,kBACA,mBACA,mBACA,kBACA,KACA,kBACA,kBACA,kBACA,mBACA,kBACA,oBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,mBACA,kBACA,mBACA,kBACA,kBACA,kBACA,mBACA,oBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,oBACA,kBACA,oBACA,kBACA,mBACA,mBACA,mBACA,mBACA,iBACA,kBACA,mBACA,mBACA,kBACA,mBACA,oBACA,mBACA,mBACA,oBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,iBACA,iBACA,kBACA,kBACA,kBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,oBACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAGJ,CACE4F,KAAMwnC,EAAAA,6BAA6BO,cACnChM,OAAQ,CACNqI,KAAM,QACNj+B,YAAa,uBAEfpC,KAAMs9B,EAAAA,UAAUG,OAChBpnC,OAAQ,CACN,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,KACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,QAINyoC,KAAM,CAAEC,2BAA4B,aACpC9iC,KAAM,S,kkBC39BD,SAASuoC,GAAoBrO,EAAQ,GAAIE,GAC9C,MAAMH,EAAQ,GAERuO,EHbO,SAAapO,EAAOmG,KAAKJ,UACtC,IAAI54B,EAAgE,GAAvD,GAAK6yB,GAAQA,EAAO,EAAIA,EAAOmN,GAAMhH,KAAKkI,IAAIrO,IAC3D,MAAO,KAAO7yB,EANJ,QAMkBA,EALlB,WAKgC,EAAGggC,IAAOhgC,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AI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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AAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GACzG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KACtG,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAC7G,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAC1G,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC1G,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAC7G,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACzG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC5G,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAC1G,KAAM,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAC1G,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,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K,IAAK,IAAK,GAC5G,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5G,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC5G,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IACxG,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAC1G,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IACxG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC5G,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACxG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC5G,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC5G,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAC5G,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC5G,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC5G,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3G,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACzG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACxG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC1G,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAC1G,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAEjC2hC,OAAQ,CACNh4B,KAAM,CACJ4mC,KAAM,CACJ56B,KAAM,CACJ,QACA,uCACA,kCACA,2CACA,gCACA,qCACA,uCACA,0CACA,gDACA,iDACA,4CACA,6CACA,kBACA,yDACA,YACA,iBACA,qBACA,gCACA,eACA,iDACA,+CACA,4BACA,iDACA,yCACA,0BACA,uBACA,2BACA,oBACA,mBACA,+BACA,wBACA,sBACA,8BACA,yBACA,mBACA,qBACA,0BACA,gCACA,oBACA,2CACA,oBACA,sBACA,yBACA,gDACA,+CACA,6BACA,2BACA,kCACA,0BACA,gCACA,2BACA,yBACA,oBACA,uBACA,oBACA,iDACA,0BACA,+BACA,6BACA,oCACA,4BACA,mCACA,gCACA,qCACA,sCACA,sCACA,sCACA,2BACA,yBACA,qBACA,2BACA,sBACA,qBACA,kDACA,qCACA,wDACA,0CACA,qCACA,+CACA,+CACA,mCACA,iCACA,4BACA,oBACA,qBACA,4CACA,8CACA,gDACA,2DACA,0DACA,2CACA,0CACA,sCACA,4CACA,oBACA,aACA,+BACA,sCACA,6CACA,8CACA,0CACA,yCACA,2BACA,0CACA,2CACA,yBACA,mCACA,iCACA,8BACA,kDACA,+CACA,wEACA,yDACA,gEACA,yDACA,kEACA,6CACA,sDACA,4DACA,8DACA,qCACA,oDACA,2DACA,kEACA,+DACA,yEACA,+DACA,gEACA,+BACA,6BACA,kCACA,8BACA,kCACA,iCACA,yCACA,oDACA,+CACA,kDACA,cACA,2CACA,2BACA,mBACA,0BACA,mBACA,uBACA,uBACA,kBACA,wBACA,uBACA,mBACA,8BACA,mBACA,0BACA,0BACA,yCACA,mBACA,8CACA,4BACA,6BACA,cACA,YACA,qBACA,yBACA,oBACA,yCACA,sBACA,iDACA,6CACA,+EACA,uFACA,8EACA,yDACA,gDACA,+BACA,uBACA,8BACA,iCACA,eACA,sBACA,sBACA,kBACA,eACA,uCACA,mCACA,qCACA,iBACA,yBACA,oBACA,qBACA,mDACA,4CACA,gEACA,mEACA,kEACA,6DACA,kEACA,iBACA,gCACA,+BACA,iCACA,qCACA,kEACA,0DACA,qEACA,wEACA,0EACA,2BACA,0DACA,wBACA,8BACA,0CACA,uBACA,8BACA,mBACA,oBACA,eACA,eACA,kBACA,iCACA,uBACA,mCACA,mCACA,2BACA,kCACA,+BACA,2CACA,wCACA,wCACA,uDACA,2CACA,iEACA,4EACA,8EACA,6BACA,6BACA,wBACA,wBACA,gCACA,sCACA,oBACA,qBACA,4BACA,gBACA,8BACA,uCACA,oCACA,qCACA,0CACA,qCACA,uCACA,yCACA,oCACA,mCACA,qDACA,+CACA,sCACA,4BACA,6BACA,4BACA,yCACA,mBACA,mBACA,wBACA,0BACA,yBACA,iCACA,mBACA,mBACA,gBACA,mBACA,wBACA,uBACA,+CACA,8CACA,2BACA,2BACA,gCACA,sCACA,mBACA,wCACA,yCACA,+CACA,wDACA,sBACA,cACA,qBACA,qBACA,uBACA,wBACA,8BACA,wBACA,oBACA,kCACA,8CACA,cACA,uBACA,gCACA,eACA,oCACA,+BACA,oCACA,mDACA,qCACA,uBACA,2CACA,6CACA,gBACA,sBACA,2CACA,4BACA,2CACA,wBACA,8BACA,gCACA,gBACA,iBACA,qBACA,sBACA,gBACA,2CACA,kCACA,wCACA,wBACA,4BACA,yBACA,wBACA,qBACA,kCACA,2BACA,cACA,eACA,iBACA,mBACA,wCACA,YACA,6CACA,UACA,mBACA,aACA,uBACA,6BACA,uBACA,qBACA,oCACA,kBACA,4BACA,gBACA,kBACA,oCACA,UACA,6EACA,oBACA,kBACA,gCACA,kEACA,uDACA,yDACA,eACA,yCACA,wCACA,8CACA,6BACA,6BACA,gCACA,oDACA,qDACA,gEACA,qBACA,4DACA,qCACA,sCACA,8BACA,kCACA,mBACA,+BACA,sBACA,yBACA,+BACA,kBACA,0BACA,4BACA,wBACA,mBACA,kBACA,0BACA,oCACA,4BACA,qBACA,2BACA,qBACA,0BACA,wBACA,0BACA,4BACA,kBACA,+BACA,qBACA,4BACA,sBACA,4BACA,uBACA,kCACA,mBACA,oCACA,oCACA,+BACA,mCACA,mBACA,eACA,kBACA,wBACA,gBACA,kBACA,uBACA,uBACA,+BACA,uCACA,kFACA,kBACA,mBACA,oCACA,+BACA,kCACA,8BACA,mDACA,gBACA,iBACA,mBACA,uBACA,kBACA,oBACA,gBACA,oBACA,qBACA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CA,yFACA,iHACA,oEACA,yDACA,kDACA,4BACA,0CACA,+BACA,6BACA,kCACA,iCACA,8DACA,+DACA,mCACA,kDACA,+BACA,0CACA,+BACA,6BACA,kCACA,iCACA,8DACA,+DACA,mCACA,kDACA,2BACA,0CACA,6BACA,qEACA,+CACA,+BACA,0DACA,+DACA,6BACA,kCACA,kCACA,iCACA,8DACA,+DACA,mFACA,qEACA,qEACA,2DACA,6IACA,kGACA,kHACA,qDACA,yDACA,uDACA,wFACA,8FACA,sDACA,yEACA,qEACA,gFACA,+EACA,oEACA,6BACA,oCACA,qBACA,qCACA,gEACA,0EACA,8EACA,uFACA,2JACA,0CACA,gFACA,+CACA,kEACA,8DACA,yEACA,kEACA,uEACA,oFACA,qBACA,yEACA,kGACA,qCACA,2EACA,oCACA,0CACA,kDACA,sDACA,+DACA,kDACA,uEACA,6DACA,qDACA,iEACA,gFACA,+CACA,kEACA,8DACA,yEACA,kEACA,6BACA,0CACA,oCACA,qBACA,+BACA,wBACA,0BACA,oFACA,qBACA,qCACA,uCACA,0EACA,mCACA,kDACA,uEACA,wEACA,kDACA,yFACA,sFACA,4FACA,6JACA,oKACA,+EACA,mFACA,wGACA,yHACA,sCACA,uFACA,iKACA,iKACA,qFACA,4FACA,mHACA,sCACA,4FACA,qFACA,mMACA,6IACA,mMACA,kJACA,iGACA,kMACA,iJACA,8CACA,oDACA,yGACA,0GACA,wFACA,sDACA,+DACA,kDACA,yLACA,wIACA,gDACA,sHACA,6NACA,gDACA,yGACA,2FACA,oHACA,8GACA,mEACA,gDACA,sFACA,kGACA,oFACA,sEACA,6EACA,yGACA,gDACA,6GACA,8FACA,wFACA,sDACA,iCACA,wFACA,4FACA,kFACA,4GACA,iGACA,yCACA,8CACA,6DACA,qDACA,uFACA,oDACA,yDACA,uDACA,mJACA,qCACA,yDACA,uDACA,sIACA,yFACA,+EACA,yGACA,mIACA,8CACA,iDACA,mDACA,kDACA,oDACA,oDACA,+CACA,mEACA,yGACA,gDACA,wKACA,sHACA,mDACA,kDACA,8FACA,sHACA,uEACA,2FACA,4GACA,wEACA,qCACA,mGACA,gFACA,gFACA,0HACA,6FACA,oFACA,6GACA,sEACA,wCACA,4DACA,0GACA,mEACA,qEACA,iDACA,mDACA,kDACA,6BACA,oDACA,2CACA,2CACA,gEACA,iDACA,mDACA,kDACA,6BACA,4CACA,gOACA,gDACA,4GACA,uGACA,2DACA,yGACA,kEACA,iHACA,oEACA,yDACA,kDACA,4BACA,0CACA,6BACA,kCACA,mFACA,qEACA,qEACA,2DACA,6IACA,kGACA,kHACA,qDACA,yDACA,uDACA,wFACA,8FACA,sDACA,yEACA,qEACA,gFACA,+EACA,oEACA,6BACA,oCACA,qBACA,gEACA,0EACA,8EACA,uFACA,2JACA,0CACA,6DACA,qDACA,iEACA,gFACA,+CACA,kEACA,8DACA,yEACA,kEACA,+BACA,yFACA,sFACA,uFACA,iKACA,iKACA,qFACA,4FACA,mHACA,sCACA,4FACA,qFACA,mEACA,sHACA,+CACA,mEACA,yGACA,gDACA,sHACA,kFACA,+CACA,mEACA,yGACA,gDACA,kHACA,sHACA,+CACA,mEACA,yGACA,gDACA,oHACA,+FACA,qFACA,+GACA,yIACA,4FACA,6CACA,wCACA,qFACA,4DACA,sEAGJ,CACE4F,KAAM,OACN5F,OAAQ,CACN,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAC9G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAA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AAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC9G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC5G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG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","sources":["webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/ltr.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/internal/lrucache.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/valid.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/intersects.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/coerce.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/index.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/major.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/internal/debug.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/rsort.js","webpack://grafana-testdata-datasource/external amd \"rxjs\"","webpack://grafana-testdata-datasource/external amd \"module\"","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/eq.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/internal/identifiers.js","webpack://grafana-testdata-datasource/external amd \"@grafana/ui\"","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/subset.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/internal/constants.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/lt.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/min-satisfying.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/inc.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/classes/range.js","webpack://grafana-testdata-datasource/external amd \"rxjs/operators\"","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/satisfies.js","webpack://grafana-testdata-datasource/external amd \"lodash\"","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/to-comparators.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/compare.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/sort.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/gte.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/parse.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/lte.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/classes/semver.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/diff.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/cmp.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/patch.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/compare-loose.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/internal/re.js","webpack://grafana-testdata-datasource/external amd \"react\"","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/neq.js","webpack://grafana-testdata-datasource/external amd \"@emotion/css\"","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/prerelease.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/max-satisfying.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/gtr.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/min-version.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/compare-build.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/rcompare.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/outside.js","webpack://grafana-testdata-datasource/external amd \"@grafana/data\"","webpack://grafana-testdata-datasource/../../../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/ranges/simplify.js","webpack://grafana-testdata-datasource/external amd \"@grafana/runtime\"","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/clean.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/classes/comparator.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/gt.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/minor.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/internal/parse-options.js","webpack://grafana-testdata-datasource/../../../../../node_modules/react/jsx-runtime.js","webpack://grafana-testdata-datasource/../../../../../node_modules/semver/functions/valid.js","webpack://grafana-testdata-datasource/webpack/bootstrap","webpack://grafana-testdata-datasource/webpack/runtime/compat get default export","webpack://grafana-testdata-datasource/webpack/runtime/define property getters","webpack://grafana-testdata-datasource/webpack/runtime/hasOwnProperty shorthand","webpack://grafana-testdata-datasource/webpack/runtime/make namespace object","webpack://grafana-testdata-datasource/webpack/runtime/publicPath","webpack://grafana-testdata-datasource/./node_modules/grafana-public-path.js","webpack://grafana-testdata-datasource/./ConfigEditor.tsx","webpack://grafana-testdata-datasource/../../../../../node_modules/tslib/tslib.es6.mjs","webpack://grafana-testdata-datasource/../../../../../node_modules/react-use/esm/useAsyncFn.js","webpack://grafana-testdata-datasource/../../../../../node_modules/react-use/esm/useMountedState.js","webpack://grafana-testdata-datasource/../../../../../node_modules/react-use/esm/useAsync.js","webpack://grafana-testdata-datasource/../../../../../packages/grafana-e2e-selectors/src/resolver.ts","webpack://grafana-testdata-datasource/../../../../../packages/grafana-e2e-selectors/src/selectors/constants.ts","webpack://grafana-testdata-datasource/../../../../../packages/grafana-e2e-selectors/src/selectors/components.ts","webpack://grafana-testdata-datasource/../../../../../packages/grafana-e2e-selectors/src/selectors/index.ts","webpack://grafana-testdata-datasource/../../../../../packages/grafana-e2e-selectors/src/selectors/pages.ts","webpack://grafana-testdata-datasource/./components/CSVContentEditor.tsx","webpack://grafana-testdata-datasource/./components/CSVFileEditor.tsx","webpack://grafana-testdata-datasource/./dataquery.ts","webpack://grafana-testdata-datasource/./constants.ts","webpack://grafana-testdata-datasource/./components/CSVWaveEditor.tsx","webpack://grafana-testdata-datasource/./components/ErrorEditor.tsx","webpack://grafana-testdata-datasource/./components/ErrorWithSourceEditor.tsx","webpack://grafana-testdata-datasource/./components/GrafanaLiveEditor.tsx","webpack://grafana-testdata-datasource/./components/NodeGraphEditor.tsx","webpack://grafana-testdata-datasource/./components/PredictablePulseEditor.tsx","webpack://grafana-testdata-datasource/./components/RandomWalkEditor.tsx","webpack://grafana-testdata-datasource/./components/RawFrameEditor.tsx","webpack://grafana-testdata-datasource/./components/SimulationSchemaForm.tsx","webpack://grafana-testdata-datasource/./components/SimulationQueryEditor.tsx","webpack://grafana-testdata-datasource/./components/StreamingClientEditor.tsx","webpack://grafana-testdata-datasource/./components/USAQueryEditor.tsx","webpack://grafana-testdata-datasource/../../../../../node_modules/uuid/dist/esm-browser/native.js","webpack://grafana-testdata-datasource/../../../../../node_modules/uuid/dist/esm-browser/rng.js","webpack://grafana-testdata-datasource/../../../../../node_modules/uuid/dist/esm-browser/stringify.js","webpack://grafana-testdata-datasource/../../../../../node_modules/uuid/dist/esm-browser/v4.js","webpack://grafana-testdata-datasource/./LogIpsum.ts","webpack://grafana-testdata-datasource/./runStreams.ts","webpack://grafana-testdata-datasource/./QueryEditor.tsx","webpack://grafana-testdata-datasource/./TestInfoTab.tsx","webpack://grafana-testdata-datasource/./metricTree.ts","webpack://grafana-testdata-datasource/../../../../../node_modules/d3-random/src/lcg.js","webpack://grafana-testdata-datasource/./testData/serviceMapResponse.ts","webpack://grafana-testdata-datasource/./testData/serviceMapResponseMedium.ts","webpack://grafana-testdata-datasource/./nodeGraphUtils.ts","webpack://grafana-testdata-datasource/./testData/flameGraphResponse.ts","webpack://grafana-testdata-datasource/./variables.ts","webpack://grafana-testdata-datasource/./datasource.ts","webpack://grafana-testdata-datasource/./module.tsx","webpack://grafana-testdata-datasource/./MetaDataInspector.tsx"],"sourcesContent":["'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1269__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1308__;","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__2007__;","'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__3059__;","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","module.exports = __WEBPACK_EXTERNAL_MODULE__3241__;","'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numberic identifiers include numberic identifiers but can be longer.\n// Therefore non-numberic identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","module.exports = __WEBPACK_EXTERNAL_MODULE__5959__;","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6089__;","'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","module.exports = __WEBPACK_EXTERNAL_MODULE__7781__;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8531__;","'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"public/plugins/grafana-testdata-datasource/\";","\n import amdMetaModule from 'amd-module';\n\n __webpack_public_path__ =\n amdMetaModule && amdMetaModule.uri\n ? amdMetaModule.uri.slice(0, amdMetaModule.uri.lastIndexOf('/') + 1)\n : 'public/plugins/grafana-testdata-datasource/';\n ","// Libraries\nimport { memo } from 'react';\n\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\n\ntype Props = DataSourcePluginOptionsEditorProps;\n\n/**\n * Empty Config Editor -- settings to save\n */\nexport const ConfigEditor = memo<Props>(() => {\n return <div />;\n});\n\nConfigEditor.displayName = 'ConfigEditor';\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","import { useCallback, useEffect, useRef } from 'react';\nexport default function useMountedState() {\n var mountedRef = useRef(false);\n var get = useCallback(function () { return mountedRef.current; }, []);\n useEffect(function () {\n mountedRef.current = true;\n return function () {\n mountedRef.current = false;\n };\n }, []);\n return get;\n}\n","import { useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nexport default function useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\n","import { gte, compare, valid } from 'semver';\n\nimport {\n FunctionSelector,\n Selectors,\n SelectorsOf,\n StringSelector,\n VersionedSelectorGroup,\n VersionedSelectors,\n CssSelector,\n UrlSelector,\n FunctionSelectorTwoArgs,\n} from './types';\n\n/**\n * Resolves selectors based on the Grafana version\n */\nexport function resolveSelectors<T extends VersionedSelectorGroup>(\n versionedSelectors: T,\n grafanaVersion = 'latest'\n): SelectorsOf<T> {\n const version = grafanaVersion.replace(/\\-.*/, '');\n\n return resolveSelectorGroup(versionedSelectors, version);\n}\n\nfunction resolveSelectorGroup<T extends VersionedSelectorGroup>(group: T, grafanaVersion: string): SelectorsOf<T> {\n const result: Selectors = {};\n\n for (const [key, value] of Object.entries(group)) {\n if (isVersionedSelectorGroup(value)) {\n result[key] = resolveSelectorGroup(value, grafanaVersion);\n } else {\n assertIsSemverValid(value, key);\n result[key] = resolveSelector(value, grafanaVersion);\n }\n }\n\n return result as SelectorsOf<T>;\n}\n\nfunction isVersionedSelectorGroup(\n target: VersionedSelectors | VersionedSelectorGroup\n): target is VersionedSelectorGroup {\n if (typeof target === 'object') {\n const [first] = Object.keys(target);\n return !valid(first);\n }\n\n return false;\n}\n\nfunction resolveSelector(\n versionedSelector: VersionedSelectors,\n grafanaVersion: string\n): StringSelector | FunctionSelector | FunctionSelectorTwoArgs | CssSelector | UrlSelector {\n let versionToUse;\n let versions = Object.keys(versionedSelector).sort(compare);\n\n if (grafanaVersion === 'latest') {\n return versionedSelector[versions[versions.length - 1]];\n }\n\n for (const version of versions) {\n if (gte(grafanaVersion, version)) {\n versionToUse = version;\n }\n }\n\n if (!versionToUse) {\n versionToUse = versions[versions.length - 1];\n }\n\n return versionedSelector[versionToUse];\n}\n\nfunction assertIsSemverValid(versionedSelector: VersionedSelectors, selectorName: string) {\n if (!Object.keys(versionedSelector).every((version) => valid(version))) {\n throw new Error(`Invalid semver version: '${selectorName}'`);\n }\n}\n","export const MIN_GRAFANA_VERSION = '8.5.0';\n","// NOTE: by default Component string selectors are set up to be aria-labels,\n// however there are many cases where your component may not need an aria-label\n// (a <button> with clear text, for example, does not need an aria-label as it's already labeled)\n// but you still might need to select it for testing,\n// in that case please add the attribute data-testid={selector} in the component and\n// prefix your selector string with 'data-testid' so that when create the selectors we know to search for it on the right attribute\n\nimport { VersionedSelectorGroup } from '../types';\n\nimport { MIN_GRAFANA_VERSION } from './constants';\n\n/**\n * Selectors grouped/defined in Components\n */\nexport const versionedComponents = {\n RadioButton: {\n container: {\n '10.2.3': 'data-testid radio-button',\n },\n },\n Breadcrumbs: {\n breadcrumb: {\n '9.4.0': (title: string) => `data-testid ${title} breadcrumb`,\n },\n },\n CanvasGridAddActions: {\n addPanel: {\n '12.1.0': 'data-testid CanvasGridAddActions add-panel',\n },\n groupPanels: {\n '12.1.0': 'data-testid CanvasGridAddActions group-panels',\n },\n ungroup: {\n '12.1.0': 'data-testid CanvasGridAddActions ungroup',\n },\n ungroupRows: {\n '12.1.0': 'data-testid CanvasGridAddActions ungroup-rows',\n },\n addRow: {\n '12.1.0': 'data-testid CanvasGridAddActions add-row',\n },\n pasteRow: {\n '12.1.0': 'data-testid CanvasGridAddActions paste-row',\n },\n addTab: {\n '12.1.0': 'data-testid CanvasGridAddActions add-tab',\n },\n pasteTab: {\n '12.1.0': 'data-testid CanvasGridAddActions paste-tab',\n },\n pastePanel: {\n '12.1.0': 'data-testid CanvasGridAddActions paste-panel',\n },\n },\n DashboardEditPaneSplitter: {\n primaryBody: {\n '12.1.0': 'data-testid DashboardEditPaneSplitter primary body',\n },\n },\n EditPaneHeader: {\n deleteButton: {\n '12.1.0': 'data-testid EditPaneHeader delete panel',\n },\n copyDropdown: {\n '12.1.0': 'data-testid EditPaneHeader copy dropdown',\n },\n copy: {\n '12.1.0': 'data-testid EditPaneHeader copy',\n },\n duplicate: {\n '12.1.0': 'data-testid EditPaneHeader duplicate',\n },\n backButton: {\n '12.1.0': 'data-testid EditPaneHeader back',\n },\n },\n TimePicker: {\n openButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid TimePicker Open Button',\n },\n overlayContent: {\n '10.2.3': 'data-testid TimePicker Overlay Content',\n },\n fromField: {\n '10.2.3': 'data-testid Time Range from field',\n [MIN_GRAFANA_VERSION]: 'Time Range from field',\n },\n toField: {\n '10.2.3': 'data-testid Time Range to field',\n [MIN_GRAFANA_VERSION]: 'Time Range to field',\n },\n applyTimeRange: {\n [MIN_GRAFANA_VERSION]: 'data-testid TimePicker submit button',\n },\n copyTimeRange: {\n '10.4.0': 'data-testid TimePicker copy button',\n },\n pasteTimeRange: {\n '10.4.0': 'data-testid TimePicker paste button',\n },\n calendar: {\n label: {\n '10.2.3': 'data-testid Time Range calendar',\n [MIN_GRAFANA_VERSION]: 'Time Range calendar',\n },\n openButton: {\n '10.2.3': 'data-testid Open time range calendar',\n [MIN_GRAFANA_VERSION]: 'Open time range calendar',\n },\n closeButton: {\n '10.2.3': 'data-testid Close time range Calendar',\n [MIN_GRAFANA_VERSION]: 'Close time range Calendar',\n },\n },\n absoluteTimeRangeTitle: {\n [MIN_GRAFANA_VERSION]: 'data-testid-absolute-time-range-narrow',\n },\n },\n DataSourcePermissions: {\n form: { '9.5.0': () => 'form[name=\"addPermission\"]' },\n roleType: {\n '9.5.0': 'Role to add new permission to',\n },\n rolePicker: {\n '9.5.0': 'Built-in role picker',\n },\n permissionLevel: {\n '12.0.0': 'Permission level',\n '9.5.0': 'Permission Level',\n },\n },\n DateTimePicker: {\n input: {\n '10.2.3': 'data-testid date-time-input',\n },\n },\n DataSource: {\n TestData: {\n QueryTab: {\n scenarioSelectContainer: {\n [MIN_GRAFANA_VERSION]: 'Test Data Query scenario select container',\n },\n scenarioSelect: {\n [MIN_GRAFANA_VERSION]: 'Test Data Query scenario select',\n },\n max: {\n [MIN_GRAFANA_VERSION]: 'TestData max',\n },\n min: {\n [MIN_GRAFANA_VERSION]: 'TestData min',\n },\n noise: {\n [MIN_GRAFANA_VERSION]: 'TestData noise',\n },\n seriesCount: {\n [MIN_GRAFANA_VERSION]: 'TestData series count',\n },\n spread: {\n [MIN_GRAFANA_VERSION]: 'TestData spread',\n },\n startValue: {\n [MIN_GRAFANA_VERSION]: 'TestData start value',\n },\n drop: {\n [MIN_GRAFANA_VERSION]: 'TestData drop values',\n },\n },\n },\n DataSourceHttpSettings: {\n urlInput: {\n '10.4.0': 'data-testid Datasource HTTP settings url',\n [MIN_GRAFANA_VERSION]: 'Datasource HTTP settings url',\n },\n },\n Jaeger: {\n traceIDInput: {\n [MIN_GRAFANA_VERSION]: 'Trace ID',\n },\n },\n Prometheus: {\n configPage: {\n connectionSettings: {\n [MIN_GRAFANA_VERSION]: 'Data source connection URL', // aria-label in grafana experimental\n },\n manageAlerts: {\n '10.4.0': 'prometheus-alerts-manager', // id for switch component\n },\n allowAsRecordingRulesTarget: {\n '12.1.0': 'prometheus-recording-rules-target',\n },\n scrapeInterval: {\n '10.4.0': 'data-testid scrape interval',\n },\n queryTimeout: {\n '10.4.0': 'data-testid query timeout',\n },\n defaultEditor: {\n '10.4.0': 'data-testid default editor',\n },\n disableMetricLookup: {\n '10.4.0': 'disable-metric-lookup', // id for switch component\n },\n prometheusType: {\n '10.4.0': 'data-testid prometheus type',\n },\n prometheusVersion: {\n '10.4.0': 'data-testid prometheus version',\n },\n cacheLevel: {\n '10.4.0': 'data-testid cache level',\n },\n incrementalQuerying: {\n '10.4.0': 'prometheus-incremental-querying', // id for switch component\n },\n queryOverlapWindow: {\n '10.4.0': 'data-testid query overlap window',\n },\n disableRecordingRules: {\n '10.4.0': 'disable-recording-rules', // id for switch component\n },\n customQueryParameters: {\n '10.4.0': 'data-testid custom query parameters',\n },\n httpMethod: {\n '10.4.0': 'data-testid http method',\n },\n exemplarsAddButton: {\n '10.3.0': 'data-testid Add exemplar config button',\n [MIN_GRAFANA_VERSION]: 'Add exemplar config button',\n },\n internalLinkSwitch: {\n '10.3.0': 'data-testid Internal link switch',\n [MIN_GRAFANA_VERSION]: 'Internal link switch',\n },\n codeModeMetricNamesSuggestionLimit: {\n '11.1.0': 'data-testid code mode metric names suggestion limit',\n },\n seriesLimit: {\n '12.0.2': 'data-testid maximum series limit',\n },\n },\n queryEditor: {\n explain: {\n '10.4.0': 'data-testid prometheus explain switch wrapper',\n },\n editorToggle: {\n '10.4.0': 'data-testid QueryEditorModeToggle', // wrapper for toggle\n },\n options: {\n '10.4.0': 'data-testid prometheus options', // wrapper for options group\n },\n legend: {\n '10.4.0': 'data-testid prometheus legend wrapper', // wrapper for multiple compomnents\n },\n format: {\n '10.4.0': 'data-testid prometheus format',\n },\n step: {\n '10.4.0': 'data-testid prometheus-step', // id for autosize component\n },\n type: {\n '10.4.0': 'data-testid prometheus type', //wrapper for radio button group\n },\n exemplars: {\n '10.4.0': 'data-testid prometheus-exemplars', // id for editor switch component\n },\n builder: {\n // see QueryBuilder below for commented selectors\n metricSelect: {\n '10.4.0': 'data-testid metric select',\n },\n hints: {\n '10.4.0': 'data-testid prometheus hints', // wrapper for hints component\n },\n metricsExplorer: {\n '10.4.0': 'data-testid metrics explorer',\n },\n queryAdvisor: {\n '10.4.0': 'data-testid query advisor',\n },\n },\n code: {\n queryField: {\n '10.4.0': 'data-testid prometheus query field',\n },\n metricsCountInfo: {\n '11.1.0': 'data-testid metrics count disclaimer',\n },\n metricsBrowser: {\n openButton: {\n '10.4.0': 'data-testid open metrics browser',\n },\n selectMetric: {\n '10.4.0': 'data-testid select a metric',\n },\n seriesLimit: {\n '10.3.1': 'data-testid series limit',\n },\n metricList: {\n '10.4.0': 'data-testid metric list',\n },\n labelNamesFilter: {\n '10.4.0': 'data-testid label names filter',\n },\n labelValuesFilter: {\n '10.4.0': 'data-testid label values filter',\n },\n useQuery: {\n '10.4.0': 'data-testid use query',\n },\n useAsRateQuery: {\n '10.4.0': 'data-testid use as rate query',\n },\n validateSelector: {\n '10.4.0': 'data-testid validate selector',\n },\n clear: {\n '10.4.0': 'data-testid clear',\n },\n },\n },\n },\n exemplarMarker: {\n '10.3.0': 'data-testid Exemplar marker',\n [MIN_GRAFANA_VERSION]: 'Exemplar marker',\n },\n variableQueryEditor: {\n queryType: {\n '10.4.0': 'data-testid query type',\n },\n labelnames: {\n metricRegex: {\n '10.4.0': 'data-testid label names metric regex',\n },\n },\n labelValues: {\n labelSelect: {\n '10.4.0': 'data-testid label values label select',\n },\n },\n metricNames: {\n metricRegex: {\n '10.4.0': 'data-testid metric names metric regex',\n },\n },\n varQueryResult: {\n '10.4.0': 'data-testid variable query result',\n },\n seriesQuery: {\n '10.4.0': 'data-testid prometheus series query',\n },\n classicQuery: {\n '10.4.0': 'data-testid prometheus classic query',\n },\n },\n annotations: {\n minStep: {\n '10.4.0': 'data-testid prometheus-annotation-min-step', // id for autosize input\n },\n title: {\n '10.4.0': 'data-testid prometheus annotation title',\n },\n tags: {\n '10.4.0': 'data-testid prometheus annotation tags',\n },\n text: {\n '10.4.0': 'data-testid prometheus annotation text',\n },\n seriesValueAsTimestamp: {\n '10.4.0': 'data-testid prometheus annotation series value as timestamp',\n },\n },\n },\n },\n Menu: {\n MenuComponent: {\n [MIN_GRAFANA_VERSION]: (title: string) => `${title} menu`,\n },\n MenuGroup: {\n [MIN_GRAFANA_VERSION]: (title: string) => `${title} menu group`,\n },\n MenuItem: {\n [MIN_GRAFANA_VERSION]: (title: string) => `${title} menu item`,\n },\n SubMenu: {\n container: {\n '10.3.0': 'data-testid SubMenu container',\n [MIN_GRAFANA_VERSION]: 'SubMenu container',\n },\n icon: {\n '10.3.0': 'data-testid SubMenu icon',\n [MIN_GRAFANA_VERSION]: 'SubMenu icon',\n },\n },\n },\n Panels: {\n Panel: {\n title: {\n [MIN_GRAFANA_VERSION]: (title: string) => `data-testid Panel header ${title}`,\n },\n content: {\n '11.1.0': 'data-testid panel content',\n },\n headerContainer: {\n '9.5.0': 'data-testid header-container',\n },\n headerItems: {\n '10.2.0': (item: string) => `data-testid Panel header item ${item}`,\n },\n menuItems: {\n '9.5.0': (item: string) => `data-testid Panel menu item ${item}`,\n },\n menu: {\n '9.5.0': (title: string) => `data-testid Panel menu ${title}`,\n },\n containerByTitle: {\n [MIN_GRAFANA_VERSION]: (title: string) => `${title} panel`,\n },\n headerCornerInfo: {\n [MIN_GRAFANA_VERSION]: (mode: string) => `Panel header ${mode}`,\n },\n status: {\n '10.2.0': (status: string) => `data-testid Panel status ${status}`,\n [MIN_GRAFANA_VERSION]: (_: string) => 'Panel status',\n },\n loadingBar: {\n '10.0.0': () => `Panel loading bar`,\n },\n HoverWidget: {\n container: {\n '10.1.0': 'data-testid hover-header-container',\n [MIN_GRAFANA_VERSION]: 'hover-header-container',\n },\n dragIcon: {\n '10.0.0': 'data-testid drag-icon',\n },\n },\n PanelDataErrorMessage: {\n '10.4.0': 'data-testid Panel data error message',\n },\n },\n Visualization: {\n Graph: {\n container: {\n '9.5.0': 'Graph container',\n },\n VisualizationTab: {\n legendSection: {\n [MIN_GRAFANA_VERSION]: 'Legend section',\n },\n },\n Legend: {\n legendItemAlias: {\n [MIN_GRAFANA_VERSION]: (name: string) => `gpl alias ${name}`,\n },\n showLegendSwitch: {\n [MIN_GRAFANA_VERSION]: 'gpl show legend',\n },\n },\n xAxis: {\n labels: {\n [MIN_GRAFANA_VERSION]: () => 'div.flot-x-axis > div.flot-tick-label',\n },\n },\n },\n BarGauge: {\n valueV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Bar gauge value',\n },\n },\n PieChart: {\n svgSlice: {\n '10.3.0': 'data testid Pie Chart Slice',\n },\n },\n Text: {\n container: { [MIN_GRAFANA_VERSION]: () => '.markdown-html' },\n },\n Table: {\n header: {\n [MIN_GRAFANA_VERSION]: 'table header',\n },\n footer: {\n [MIN_GRAFANA_VERSION]: 'table-footer',\n },\n body: {\n '10.2.0': 'data-testid table body',\n },\n },\n TableNG: {\n Filters: {\n HeaderButton: {\n '12.1.0': 'data-testid tableng header filter',\n },\n Container: {\n '12.1.0': 'data-testid tablenf filter container',\n },\n SelectAll: {\n '12.1.0': 'data-testid tableng filter select-all',\n },\n },\n Tooltip: {\n Wrapper: {\n '12.2.0': 'data-testid tableng tooltip wrapper',\n },\n Caret: {\n '12.2.0': 'data-testid tableng tooltip caret',\n },\n },\n Footer: {\n ReducerLabel: {\n '12.2.0': 'data-testid tableng footer reducer-label',\n },\n Value: {\n '12.2.0': 'data-testid tableng footer value',\n },\n },\n },\n Tooltip: {\n Wrapper: {\n '12.3.0': 'data-testid viz-tooltip-wrapper',\n },\n },\n },\n },\n VizLegend: {\n seriesName: {\n '10.3.0': (name: string) => `data-testid VizLegend series ${name}`,\n },\n },\n Drawer: {\n General: {\n title: {\n [MIN_GRAFANA_VERSION]: (title: string) => `Drawer title ${title}`,\n },\n expand: {\n [MIN_GRAFANA_VERSION]: 'Drawer expand',\n },\n contract: {\n [MIN_GRAFANA_VERSION]: 'Drawer contract',\n },\n close: {\n '10.3.0': 'data-testid Drawer close',\n [MIN_GRAFANA_VERSION]: 'Drawer close',\n },\n rcContentWrapper: { '9.4.0': () => '.rc-drawer-content-wrapper' },\n subtitle: {\n '10.4.0': 'data-testid drawer subtitle',\n },\n },\n DashboardSaveDrawer: {\n saveButton: {\n '11.1.0': 'data-testid Save dashboard drawer button',\n },\n saveAsButton: {\n '11.1.0': 'data-testid Save as dashboard drawer button',\n },\n saveAsTitleInput: {\n '11.1.0': 'Save dashboard title field',\n },\n },\n },\n PanelEditor: {\n General: {\n content: {\n '11.1.0': 'data-testid Panel editor content',\n '8.0.0': 'Panel editor content',\n },\n },\n OptionsPane: {\n content: {\n '11.1.0': 'data-testid Panel editor option pane content',\n [MIN_GRAFANA_VERSION]: 'Panel editor option pane content',\n },\n select: {\n [MIN_GRAFANA_VERSION]: 'Panel editor option pane select',\n },\n fieldLabel: {\n [MIN_GRAFANA_VERSION]: (type: string) => `${type} field property editor`,\n },\n fieldInput: {\n '11.0.0': (title: string) => `data-testid Panel editor option pane field input ${title}`,\n },\n },\n DataPane: {\n content: {\n '11.1.0': 'data-testid Panel editor data pane content',\n [MIN_GRAFANA_VERSION]: 'Panel editor data pane content',\n },\n },\n applyButton: {\n '9.2.0': 'data-testid Apply changes and go back to dashboard',\n '9.1.0': 'Apply changes and go back to dashboard',\n '8.0.0': 'panel editor apply',\n },\n toggleVizPicker: {\n '10.0.0': 'data-testid toggle-viz-picker',\n '8.0.0': 'toggle-viz-picker',\n },\n toggleVizOptions: {\n '10.1.0': 'data-testid toggle-viz-options',\n [MIN_GRAFANA_VERSION]: 'toggle-viz-options',\n },\n toggleTableView: {\n '11.1.0': 'data-testid toggle-table-view',\n [MIN_GRAFANA_VERSION]: 'toggle-table-view',\n },\n\n // [Geomap] Map controls\n showZoomField: {\n '10.2.0': 'Map controls Show zoom control field property editor',\n },\n showAttributionField: {\n '10.2.0': 'Map controls Show attribution field property editor',\n },\n showScaleField: {\n '10.2.0': 'Map controls Show scale field property editor',\n },\n showMeasureField: {\n '10.2.0': 'Map controls Show measure tools field property editor',\n },\n showDebugField: {\n '10.2.0': 'Map controls Show debug field property editor',\n },\n\n measureButton: {\n '12.1.0': 'data-testid panel-editor-measure-button',\n '9.2.0': 'show measure tools',\n },\n\n Outline: {\n section: {\n '12.0.0': 'data-testid Outline section',\n },\n node: {\n '12.0.0': (type: string) => `data-testid outline node ${type}`,\n },\n item: {\n '12.0.0': (type: string) => `data-testid outline item ${type}`,\n },\n },\n ElementEditPane: {\n variableType: {\n '12.0.0': (type?: string) => `data-testid variable type ${type}`,\n },\n addVariableButton: {\n '12.0.0': 'data-testid add variable button',\n },\n variableNameInput: {\n '12.0.0': 'data-testid variable name input',\n },\n variableLabelInput: {\n '12.0.0': 'data-testid variable label input',\n },\n AutoGridLayout: {\n minColumnWidth: {\n '12.1.0': 'data-testid min column width selector',\n },\n customMinColumnWidth: {\n '12.1.0': 'data-testid custom min column width input',\n },\n clearCustomMinColumnWidth: {\n '12.1.0': 'data-testid clear custom min column width input',\n },\n maxColumns: {\n '12.1.0': 'data-testid max columns selector',\n },\n rowHeight: {\n '12.1.0': 'data-testid row height selector',\n },\n customRowHeight: {\n '12.1.0': 'data-testid custom row height input',\n },\n clearCustomRowHeight: {\n '12.1.0': 'data-testid clear custom row height input',\n },\n fillScreen: {\n '12.1.0': 'data-testid fill screen switch',\n },\n },\n TabsLayout: {\n titleInput: {\n '12.2.0': 'data-testid tab title input',\n },\n },\n },\n },\n PanelInspector: {\n Data: {\n content: {\n [MIN_GRAFANA_VERSION]: 'Panel inspector Data content',\n },\n },\n Stats: {\n content: {\n [MIN_GRAFANA_VERSION]: 'Panel inspector Stats content',\n },\n },\n Json: {\n content: {\n '11.1.0': 'data-testid Panel inspector Json content',\n [MIN_GRAFANA_VERSION]: 'Panel inspector Json content',\n },\n },\n Query: {\n content: {\n [MIN_GRAFANA_VERSION]: 'Panel inspector Query content',\n },\n refreshButton: {\n [MIN_GRAFANA_VERSION]: 'Panel inspector Query refresh button',\n },\n jsonObjectKeys: {\n [MIN_GRAFANA_VERSION]: () => '.json-formatter-key',\n },\n },\n },\n Tab: {\n title: {\n '11.2.0': (title: string) => `data-testid Tab ${title}`,\n },\n active: { [MIN_GRAFANA_VERSION]: () => '[class*=\"-activeTabStyle\"]' },\n },\n RefreshPicker: {\n runButtonV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid RefreshPicker run button',\n },\n intervalButtonV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid RefreshPicker interval button',\n },\n },\n QueryTab: {\n content: {\n [MIN_GRAFANA_VERSION]: 'Query editor tab content',\n },\n queryInspectorButton: {\n [MIN_GRAFANA_VERSION]: 'Query inspector button',\n },\n queryHistoryButton: {\n '10.2.0': 'data-testid query-history-button',\n [MIN_GRAFANA_VERSION]: 'query-history-button',\n },\n addQuery: {\n '10.2.0': 'data-testid query-tab-add-query',\n [MIN_GRAFANA_VERSION]: 'Query editor add query button',\n },\n addQueryFromLibrary: {\n '11.5.0': 'data-testid query-tab-add-query-from-library',\n },\n queryGroupTopSection: {\n '11.2.0': 'data-testid query group top section',\n },\n addExpression: {\n '11.2.0': 'data-testid query-tab-add-expression',\n },\n },\n QueryHistory: {\n queryText: {\n '9.0.0': 'Query text',\n },\n },\n QueryEditorRows: {\n rows: {\n [MIN_GRAFANA_VERSION]: 'Query editor row',\n },\n },\n QueryEditorRow: {\n actionButton: {\n '10.4.0': (title: string) => `data-testid ${title}`,\n },\n title: {\n [MIN_GRAFANA_VERSION]: (refId: string) => `Query editor row title ${refId}`,\n },\n container: {\n [MIN_GRAFANA_VERSION]: (refId: string) => `Query editor row ${refId}`,\n },\n },\n AlertTab: {\n content: {\n '10.2.3': 'data-testid Alert editor tab content',\n [MIN_GRAFANA_VERSION]: 'Alert editor tab content',\n },\n },\n AlertRules: {\n groupToggle: {\n '11.0.0': 'data-testid group-collapse-toggle',\n },\n toggle: {\n '11.0.0': 'data-testid collapse-toggle',\n },\n expandedContent: {\n '11.0.0': 'data-testid expanded-content',\n },\n previewButton: {\n '11.1.0': 'data-testid alert-rule preview-button',\n },\n ruleNameField: {\n '11.1.0': 'data-testid alert-rule name-field',\n },\n newFolderButton: {\n '11.1.0': 'data-testid alert-rule new-folder-button',\n },\n newFolderNameField: {\n '11.1.0': 'data-testid alert-rule name-folder-name-field',\n },\n newFolderNameCreateButton: {\n '11.1.0': 'data-testid alert-rule name-folder-name-create-button',\n },\n newEvaluationGroupButton: {\n '11.1.0': 'data-testid alert-rule new-evaluation-group-button',\n },\n newEvaluationGroupName: {\n '11.1.0': 'data-testid alert-rule new-evaluation-group-name',\n },\n newEvaluationGroupInterval: {\n '11.1.0': 'data-testid alert-rule new-evaluation-group-interval',\n },\n newEvaluationGroupCreate: {\n '11.1.0': 'data-testid alert-rule new-evaluation-group-create-button',\n },\n step: {\n '11.5.0': (stepNo: string) => `data-testid alert-rule step-${stepNo}`,\n },\n stepAdvancedModeSwitch: {\n '11.5.0': (stepNo: string) => `data-testid advanced-mode-switch step-${stepNo}`,\n },\n },\n Alert: {\n alertV2: {\n [MIN_GRAFANA_VERSION]: (severity: string) => `data-testid Alert ${severity}`,\n },\n },\n TransformTab: {\n content: {\n '10.1.0': 'data-testid Transform editor tab content',\n [MIN_GRAFANA_VERSION]: 'Transform editor tab content',\n },\n newTransform: {\n '10.1.0': (name: string) => `data-testid New transform ${name}`,\n },\n transformationEditor: {\n '10.1.0': (name: string) => `data-testid Transformation editor ${name}`,\n },\n transformationEditorDebugger: {\n '10.1.0': (name: string) => `data-testid Transformation editor debugger ${name}`,\n },\n },\n Transforms: {\n card: {\n '10.1.0': (name: string) => `data-testid New transform ${name}`,\n },\n disableTransformationButton: {\n '10.4.0': 'data-testid Disable transformation button',\n },\n Reduce: {\n modeLabel: {\n '10.2.3': 'data-testid Transform mode label',\n [MIN_GRAFANA_VERSION]: 'Transform mode label',\n },\n calculationsLabel: {\n '10.2.3': 'data-testid Transform calculations label',\n [MIN_GRAFANA_VERSION]: 'Transform calculations label',\n },\n },\n SpatialOperations: {\n actionLabel: {\n '9.1.2': 'root Action field property editor',\n },\n locationLabel: {\n '10.2.0': 'root Location Mode field property editor',\n },\n location: {\n autoOption: {\n '9.1.2': 'Auto location option',\n },\n coords: {\n option: {\n '9.1.2': 'Coords location option',\n },\n latitudeFieldLabel: {\n '9.1.2': 'root Latitude field field property editor',\n },\n longitudeFieldLabel: {\n '9.1.2': 'root Longitude field field property editor',\n },\n },\n geohash: {\n option: {\n '9.1.2': 'Geohash location option',\n },\n geohashFieldLabel: {\n '9.1.2': 'root Geohash field field property editor',\n },\n },\n lookup: {\n option: {\n '9.1.2': 'Lookup location option',\n },\n lookupFieldLabel: {\n '9.1.2': 'root Lookup field field property editor',\n },\n gazetteerFieldLabel: {\n '9.1.2': 'root Gazetteer field property editor',\n },\n },\n },\n },\n searchInput: {\n '10.2.3': 'data-testid search transformations',\n [MIN_GRAFANA_VERSION]: 'search transformations',\n },\n noTransformationsMessage: {\n '10.2.3': 'data-testid no transformations message',\n },\n addTransformationButton: {\n '10.1.0': 'data-testid add transformation button',\n [MIN_GRAFANA_VERSION]: 'add transformation button',\n },\n removeAllTransformationsButton: {\n '10.4.0': 'data-testid remove all transformations button',\n },\n },\n NavBar: {\n Configuration: {\n button: {\n '9.5.0': 'Configuration',\n },\n },\n Toggle: {\n button: {\n '10.2.3': 'data-testid Toggle menu',\n [MIN_GRAFANA_VERSION]: 'Toggle menu',\n },\n },\n Reporting: {\n button: {\n '9.5.0': 'Reporting',\n },\n },\n },\n NavMenu: {\n Menu: {\n '10.2.3': 'data-testid navigation mega-menu',\n },\n item: {\n '9.5.0': 'data-testid Nav menu item',\n },\n },\n NavToolbar: {\n container: {\n '9.4.0': 'data-testid Nav toolbar',\n },\n commandPaletteTrigger: {\n '11.5.0': 'data-testid Command palette trigger',\n },\n shareDashboard: {\n '11.1.0': 'data-testid Share dashboard',\n },\n markAsFavorite: {\n '11.1.0': 'data-testid Mark as favorite',\n },\n editDashboard: {\n editButton: {\n '11.1.0': 'data-testid Edit dashboard button',\n },\n saveButton: {\n '11.1.0': 'data-testid Save dashboard button',\n },\n exitButton: {\n '11.1.0': 'data-testid Exit edit mode button',\n },\n settingsButton: {\n '11.1.0': 'data-testid Dashboard settings',\n },\n addRowButton: {\n '11.1.0': 'data-testid Add row button',\n },\n addLibraryPanelButton: {\n '11.1.0': 'data-testid Add a panel from the panel library button',\n },\n addVisualizationButton: {\n '11.1.0': 'data-testid Add new visualization menu item',\n },\n pastePanelButton: {\n '11.1.0': 'data-testid Paste panel button',\n },\n discardChangesButton: {\n '11.1.0': 'data-testid Discard changes button',\n },\n discardLibraryPanelButton: {\n '11.1.0': 'data-testid Discard library panel button',\n },\n unlinkLibraryPanelButton: {\n '11.1.0': 'data-testid Unlink library panel button',\n },\n saveLibraryPanelButton: {\n '11.1.0': 'data-testid Save library panel button',\n },\n backToDashboardButton: {\n '11.1.0': 'data-testid Back to dashboard button',\n },\n },\n },\n\n PageToolbar: {\n container: { [MIN_GRAFANA_VERSION]: () => '.page-toolbar' },\n item: {\n [MIN_GRAFANA_VERSION]: (tooltip: string) => `${tooltip}`,\n },\n itemButton: {\n '9.5.0': (title: string) => `data-testid ${title}`,\n },\n },\n QueryEditorToolbarItem: {\n button: {\n [MIN_GRAFANA_VERSION]: (title: string) => `QueryEditor toolbar item button ${title}`,\n },\n },\n BackButton: {\n backArrow: {\n '10.3.0': 'data-testid Go Back',\n [MIN_GRAFANA_VERSION]: 'Go Back',\n },\n },\n OptionsGroup: {\n group: {\n '11.1.0': (title?: string) => (title ? `data-testid Options group ${title}` : 'data-testid Options group'),\n [MIN_GRAFANA_VERSION]: (title?: string) => (title ? `Options group ${title}` : 'Options group'),\n },\n toggle: {\n '11.1.0': (title?: string) =>\n title ? `data-testid Options group ${title} toggle` : 'data-testid Options group toggle',\n [MIN_GRAFANA_VERSION]: (title?: string) => (title ? `Options group ${title} toggle` : 'Options group toggle'),\n },\n },\n PluginVisualization: {\n item: {\n [MIN_GRAFANA_VERSION]: (title: string) => `Plugin visualization item ${title}`,\n },\n current: {\n [MIN_GRAFANA_VERSION]: () => '[class*=\"-currentVisualizationItem\"]',\n },\n },\n Select: {\n menu: {\n '11.5.0': 'data-testid Select menu',\n [MIN_GRAFANA_VERSION]: 'Select options menu',\n },\n option: {\n '11.1.0': 'data-testid Select option',\n [MIN_GRAFANA_VERSION]: 'Select option',\n },\n toggleAllOptions: {\n '11.3.0': 'data-testid toggle all options',\n },\n input: {\n [MIN_GRAFANA_VERSION]: () => 'input[id*=\"time-options-input\"]',\n },\n singleValue: {\n [MIN_GRAFANA_VERSION]: () => 'div[class*=\"-singleValue\"]',\n },\n },\n FieldConfigEditor: {\n content: {\n [MIN_GRAFANA_VERSION]: 'Field config editor content',\n },\n },\n OverridesConfigEditor: {\n content: {\n [MIN_GRAFANA_VERSION]: 'Field overrides editor content',\n },\n },\n FolderPicker: {\n containerV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Folder picker select container',\n },\n input: {\n '10.4.0': 'data-testid folder-picker-input',\n },\n },\n ReadonlyFolderPicker: {\n container: {\n [MIN_GRAFANA_VERSION]: 'data-testid Readonly folder picker select container',\n },\n },\n DataSourcePicker: {\n container: {\n '10.0.0': 'data-testid Data source picker select container',\n '8.0.0': 'Data source picker select container',\n },\n inputV2: {\n '10.1.0': 'data-testid Select a data source',\n [MIN_GRAFANA_VERSION]: 'Select a data source',\n },\n dataSourceList: {\n '10.4.0': 'data-testid Data source list dropdown',\n },\n advancedModal: {\n dataSourceList: {\n '10.4.0': 'data-testid Data source list',\n },\n builtInDataSourceList: {\n '10.4.0': 'data-testid Built in data source list',\n },\n },\n },\n TimeZonePicker: {\n containerV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Time zone picker select container',\n },\n changeTimeSettingsButton: {\n '11.0.0': 'data-testid Time zone picker Change time settings button',\n },\n },\n WeekStartPicker: {\n containerV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Choose starting day of the week',\n },\n placeholder: {\n [MIN_GRAFANA_VERSION]: 'Choose starting day of the week',\n },\n },\n TraceViewer: {\n spanBar: {\n '9.0.0': 'data-testid SpanBar--wrapper',\n },\n },\n QueryField: {\n container: {\n '10.3.0': 'data-testid Query field',\n [MIN_GRAFANA_VERSION]: 'Query field',\n },\n },\n QueryBuilder: {\n queryPatterns: {\n '10.3.0': 'data-testid Query patterns',\n [MIN_GRAFANA_VERSION]: 'Query patterns',\n },\n labelSelect: {\n '10.3.0': 'data-testid Select label',\n [MIN_GRAFANA_VERSION]: 'Select label',\n },\n inputSelect: {\n '11.1.0': 'data-testid Select label-input',\n },\n valueSelect: {\n '10.3.0': 'data-testid Select value',\n [MIN_GRAFANA_VERSION]: 'Select value',\n },\n matchOperatorSelect: {\n '10.3.0': 'data-testid Select match operator',\n [MIN_GRAFANA_VERSION]: 'Select match operator',\n },\n },\n ValuePicker: {\n button: {\n '10.3.0': (name: string) => `data-testid Value picker button ${name}`,\n },\n select: {\n '10.3.0': (name: string) => `data-testid Value picker select ${name}`,\n },\n },\n Search: {\n sectionV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Search section',\n },\n itemsV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Search items',\n },\n cards: {\n [MIN_GRAFANA_VERSION]: 'data-testid Search cards',\n },\n collapseFolder: {\n [MIN_GRAFANA_VERSION]: (sectionId: string) => `data-testid Collapse folder ${sectionId}`,\n },\n expandFolder: {\n [MIN_GRAFANA_VERSION]: (sectionId: string) => `data-testid Expand folder ${sectionId}`,\n },\n dashboardItem: {\n [MIN_GRAFANA_VERSION]: (item: string) => `data-testid Dashboard search item ${item}`,\n },\n dashboardCard: {\n [MIN_GRAFANA_VERSION]: (item: string) => `data-testid Search card ${item}`,\n },\n folderHeader: {\n '9.3.0': (folderName: string) => `data-testid Folder header ${folderName}`,\n },\n folderContent: {\n '9.3.0': (folderName: string) => `data-testid Folder content ${folderName}`,\n },\n dashboardItems: {\n [MIN_GRAFANA_VERSION]: 'data-testid Dashboard search item',\n },\n },\n DashboardLinks: {\n container: {\n [MIN_GRAFANA_VERSION]: 'data-testid Dashboard link container',\n },\n dropDown: {\n [MIN_GRAFANA_VERSION]: 'data-testid Dashboard link dropdown',\n },\n link: {\n [MIN_GRAFANA_VERSION]: 'data-testid Dashboard link',\n },\n },\n LoadingIndicator: {\n icon: {\n '10.4.0': 'data-testid Loading indicator',\n [MIN_GRAFANA_VERSION]: 'Loading indicator',\n },\n },\n CallToActionCard: {\n buttonV2: {\n [MIN_GRAFANA_VERSION]: (name: string) => `data-testid Call to action button ${name}`,\n },\n },\n DataLinksContextMenu: {\n singleLink: {\n '10.3.0': 'data-testid Data link',\n [MIN_GRAFANA_VERSION]: 'Data link',\n },\n },\n DataLinksActionsTooltip: {\n tooltipWrapper: {\n '12.1.0': 'data-testid Data links actions tooltip wrapper',\n },\n },\n CodeEditor: {\n container: {\n '10.2.3': 'data-testid Code editor container',\n [MIN_GRAFANA_VERSION]: 'Code editor container',\n },\n },\n ReactMonacoEditor: {\n editorLazy: {\n '11.1.0': 'data-testid ReactMonacoEditor editorLazy',\n },\n },\n DashboardImportPage: {\n textarea: {\n [MIN_GRAFANA_VERSION]: 'data-testid-import-dashboard-textarea',\n },\n submit: {\n [MIN_GRAFANA_VERSION]: 'data-testid-load-dashboard',\n },\n },\n ImportDashboardForm: {\n name: {\n [MIN_GRAFANA_VERSION]: 'data-testid-import-dashboard-title',\n },\n submit: {\n [MIN_GRAFANA_VERSION]: 'data-testid-import-dashboard-submit',\n },\n },\n PanelAlertTabContent: {\n content: {\n '10.2.3': 'data-testid Unified alert editor tab content',\n [MIN_GRAFANA_VERSION]: 'Unified alert editor tab content',\n },\n },\n VisualizationPreview: {\n card: {\n [MIN_GRAFANA_VERSION]: (name: string) => `data-testid suggestion-${name}`,\n },\n },\n ColorSwatch: {\n name: {\n [MIN_GRAFANA_VERSION]: 'data-testid-colorswatch',\n },\n },\n DashboardRow: {\n title: {\n [MIN_GRAFANA_VERSION]: (title: string) => `data-testid dashboard-row-title-${title}`,\n },\n wrapper: {\n '12.1.0': (title: string) => `data-testid dashboard-row-wrapper-for-${title}`,\n },\n },\n UserProfile: {\n profileSaveButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid-user-profile-save',\n },\n preferencesSaveButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid-shared-prefs-save',\n },\n orgsTable: {\n [MIN_GRAFANA_VERSION]: 'data-testid-user-orgs-table',\n },\n sessionsTable: {\n [MIN_GRAFANA_VERSION]: 'data-testid-user-sessions-table',\n },\n extensionPointTabs: {\n '10.2.3': 'data-testid-extension-point-tabs',\n },\n extensionPointTab: {\n '10.2.3': (tabId: string) => `data-testid-extension-point-tab-${tabId}`,\n },\n },\n FileUpload: {\n inputField: {\n '9.0.0': 'data-testid-file-upload-input-field',\n },\n fileNameSpan: {\n '9.0.0': 'data-testid-file-upload-file-name',\n },\n },\n DebugOverlay: {\n wrapper: {\n '9.2.0': 'debug-overlay',\n },\n },\n OrgRolePicker: {\n input: {\n '9.5.0': 'Role',\n },\n },\n AnalyticsToolbarButton: {\n button: {\n '9.5.0': 'Dashboard insights',\n },\n },\n Variables: {\n variableOption: {\n '9.5.0': 'data-testid variable-option',\n },\n variableLinkWrapper: {\n '11.1.1': 'data-testid variable-link-wrapper',\n },\n },\n Annotations: {\n annotationsTypeInput: {\n '11.1.0': 'data-testid annotations-type-input',\n [MIN_GRAFANA_VERSION]: 'annotations-type-input',\n },\n annotationsChoosePanelInput: {\n '11.1.0': 'data-testid choose-panels-input',\n [MIN_GRAFANA_VERSION]: 'choose-panels-input',\n },\n editor: {\n testButton: {\n '11.0.0': 'data-testid annotations-test-button',\n },\n resultContainer: {\n '11.0.0': 'data-testid annotations-query-result-container',\n },\n },\n },\n Tooltip: {\n container: {\n '10.2.0': 'data-testid tooltip',\n },\n },\n ReturnToPrevious: {\n buttonGroup: {\n '11.0.0': 'data-testid dismissable button group',\n },\n backButton: {\n '11.0.0': 'data-testid back',\n },\n dismissButton: {\n '11.0.0': 'data-testid dismiss',\n },\n },\n SQLQueryEditor: {\n selectColumn: {\n '11.0.0': 'data-testid select-column',\n },\n selectColumnInput: { '11.0.0': 'data-testid select-column-input' },\n selectFunctionParameter: { '11.0.0': (name: string) => `data-testid select-function-parameter-${name}` },\n selectAggregation: {\n '11.0.0': 'data-testid select-aggregation',\n },\n selectAggregationInput: { '11.0.0': 'data-testid select-aggregation-input' },\n selectAlias: {\n '11.0.0': 'data-testid select-alias',\n },\n selectAliasInput: { '11.0.0': 'data-testid select-alias-input' },\n selectInputParameter: { '11.0.0': 'data-testid select-input-parameter' },\n filterConjunction: {\n '11.0.0': 'data-testid filter-conjunction',\n },\n filterField: {\n '11.0.0': 'data-testid filter-field',\n },\n filterOperator: {\n '11.0.0': 'data-testid filter-operator',\n },\n headerTableSelector: {\n '11.0.0': 'data-testid header-table-selector',\n },\n headerFilterSwitch: {\n '11.0.0': 'data-testid header-filter-switch',\n },\n headerGroupSwitch: {\n '11.0.0': 'data-testid header-group-switch',\n },\n headerOrderSwitch: {\n '11.0.0': 'data-testid header-order-switch',\n },\n headerPreviewSwitch: {\n '11.0.0': 'data-testid header-preview-switch',\n },\n },\n EntityNotFound: {\n container: {\n '11.2.0': 'data-testid entity-not-found',\n },\n },\n Portal: {\n container: {\n '11.5.0': 'data-testid portal-container',\n },\n },\n ExportImage: {\n formatOptions: {\n container: {\n ['12.1.0']: 'data-testid export-image-format-options',\n },\n png: {\n ['12.1.0']: 'data-testid export-image-format-png',\n },\n jpg: {\n ['12.1.0']: 'data-testid export-image-format-jpg',\n },\n },\n rendererAlert: {\n container: {\n ['12.1.0']: 'data-testid export-image-renderer-alert',\n },\n title: {\n ['12.1.0']: 'data-testid export-image-renderer-alert-title',\n },\n description: {\n ['12.1.0']: 'data-testid export-image-renderer-alert-description',\n },\n },\n buttons: {\n generate: {\n ['12.1.0']: 'data-testid export-image-generate-button',\n },\n download: {\n ['12.1.0']: 'data-testid export-image-download-button',\n },\n cancel: {\n ['12.1.0']: 'data-testid export-image-cancel-button',\n },\n },\n preview: {\n container: {\n ['12.1.0']: 'data-testid export-image-preview-container',\n },\n loading: {\n ['12.1.0']: 'data-testid export-image-preview-loading',\n },\n image: {\n ['12.1.0']: 'data-testid export-image-preview',\n },\n error: {\n container: {\n ['12.1.0']: 'data-testid export-image-error',\n },\n title: {\n ['12.1.0']: 'data-testid export-image-error-title',\n },\n message: {\n ['12.1.0']: 'data-testid export-image-error-message',\n },\n },\n },\n },\n} satisfies VersionedSelectorGroup;\n\nexport type VersionedComponents = typeof versionedComponents;\n","import { resolveSelectors } from '../resolver';\nimport { E2ESelectors } from '../types';\n\nimport { versionedComponents, VersionedComponents } from './components';\nimport { versionedPages, VersionedPages } from './pages';\n\nconst Pages = resolveSelectors(versionedPages);\nconst Components = resolveSelectors(versionedComponents);\nconst selectors = { pages: Pages, components: Components };\n\n/**\n * Exposes Pages, Component selectors and E2ESelectors type in package for easy use in e2e tests and in production code\n */\nexport {\n Pages,\n Components,\n selectors,\n versionedComponents,\n versionedPages,\n resolveSelectors,\n type VersionedPages,\n type VersionedComponents,\n type E2ESelectors,\n};\n","import { VersionedSelectorGroup } from '../types';\n\nimport { MIN_GRAFANA_VERSION } from './constants';\n\n/**\n * Selectors grouped/defined in Pages\n */\nexport const versionedPages = {\n Alerting: {\n AddAlertRule: {\n url: {\n '10.1.0': '/alerting/new/alerting',\n [MIN_GRAFANA_VERSION]: '/alerting/new',\n },\n },\n EditAlertRule: {\n url: {\n [MIN_GRAFANA_VERSION]: (alertRuleUid: string) => `alerting/${alertRuleUid}/edit`,\n },\n },\n },\n Login: {\n url: {\n [MIN_GRAFANA_VERSION]: '/login',\n },\n username: {\n '10.2.3': 'data-testid Username input field',\n [MIN_GRAFANA_VERSION]: 'Username input field',\n },\n password: {\n '10.2.3': 'data-testid Password input field',\n [MIN_GRAFANA_VERSION]: 'Password input field',\n },\n submit: {\n '10.2.3': 'data-testid Login button',\n [MIN_GRAFANA_VERSION]: 'Login button',\n },\n skip: {\n '10.2.3': 'data-testid Skip change password button',\n },\n },\n PasswordlessLogin: {\n url: {\n [MIN_GRAFANA_VERSION]: '/login/passwordless/authenticate',\n },\n email: {\n '10.2.3': 'data-testid Email input field',\n [MIN_GRAFANA_VERSION]: 'Email input field',\n },\n submit: {\n '10.2.3': 'data-testid PasswordlessLogin button',\n [MIN_GRAFANA_VERSION]: 'PasswordlessLogin button',\n },\n },\n Home: {\n url: {\n [MIN_GRAFANA_VERSION]: '/',\n },\n },\n DataSource: {\n name: {\n '10.3.0': 'data-testid Data source settings page name input field',\n [MIN_GRAFANA_VERSION]: 'Data source settings page name input field',\n },\n delete: {\n [MIN_GRAFANA_VERSION]: 'Data source settings page Delete button',\n },\n readOnly: {\n '10.3.0': 'data-testid Data source settings page read only message',\n [MIN_GRAFANA_VERSION]: 'Data source settings page read only message',\n },\n saveAndTest: {\n '10.0.0': 'data-testid Data source settings page Save and Test button',\n [MIN_GRAFANA_VERSION]: 'Data source settings page Save and Test button',\n },\n alert: {\n '10.3.0': 'data-testid Data source settings page Alert',\n [MIN_GRAFANA_VERSION]: 'Data source settings page Alert',\n },\n },\n DataSources: {\n url: {\n [MIN_GRAFANA_VERSION]: '/datasources',\n },\n dataSources: {\n [MIN_GRAFANA_VERSION]: (dataSourceName: string) => `Data source list item ${dataSourceName}`,\n },\n },\n EditDataSource: {\n url: {\n '9.5.0': (dataSourceUid: string) => `/datasources/edit/${dataSourceUid}`,\n },\n settings: {\n '9.5.0': 'Datasource settings page basic settings',\n },\n },\n AddDataSource: {\n url: {\n [MIN_GRAFANA_VERSION]: '/datasources/new',\n },\n dataSourcePluginsV2: {\n '9.3.1': (pluginName: string) => `Add new data source ${pluginName}`,\n [MIN_GRAFANA_VERSION]: (pluginName: string) => `Data source plugin item ${pluginName}`,\n },\n },\n ConfirmModal: {\n delete: {\n '10.0.0': 'data-testid Confirm Modal Danger Button',\n [MIN_GRAFANA_VERSION]: 'Confirm Modal Danger Button',\n },\n input: {\n '12.2.0': 'data-testid Confirm Modal Input',\n },\n },\n SecretsManagement: {\n SecretForm: {\n '12.2.0': 'data-testid Secret Form',\n },\n },\n AddDashboard: {\n url: {\n [MIN_GRAFANA_VERSION]: '/dashboard/new',\n },\n itemButton: {\n '9.5.0': (title: string) => `data-testid ${title}`,\n },\n addNewPanel: {\n '11.1.0': 'data-testid Add new panel',\n '8.0.0': 'Add new panel',\n [MIN_GRAFANA_VERSION]: 'Add new panel',\n },\n itemButtonAddViz: {\n [MIN_GRAFANA_VERSION]: 'Add new visualization menu item',\n },\n addNewRow: {\n '11.1.0': 'data-testid Add new row',\n [MIN_GRAFANA_VERSION]: 'Add new row',\n },\n addNewPanelLibrary: {\n '11.1.0': 'data-testid Add new panel from panel library',\n [MIN_GRAFANA_VERSION]: 'Add new panel from panel library',\n },\n Settings: {\n Annotations: {\n List: {\n url: {\n [MIN_GRAFANA_VERSION]: '/dashboard/new?orgId=1&editview=annotations',\n },\n },\n Edit: {\n url: {\n [MIN_GRAFANA_VERSION]: (annotationIndex: string) =>\n `/dashboard/new?editview=annotations&editIndex=${annotationIndex}`,\n },\n },\n },\n Variables: {\n List: {\n url: {\n '11.3.0': '/dashboard/new?orgId=1&editview=variables',\n [MIN_GRAFANA_VERSION]: '/dashboard/new?orgId=1&editview=templating',\n },\n },\n Edit: {\n url: {\n '11.3.0': (editIndex: string) => `/dashboard/new?orgId=1&editview=variables&editIndex=${editIndex}`,\n [MIN_GRAFANA_VERSION]: (editIndex: string) =>\n `/dashboard/new?orgId=1&editview=templating&editIndex=${editIndex}`,\n },\n },\n },\n },\n },\n ImportDashboard: {\n url: {\n [MIN_GRAFANA_VERSION]: '/dashboard/import',\n },\n },\n Dashboard: {\n url: {\n [MIN_GRAFANA_VERSION]: (uid: string) => `/d/${uid}`,\n },\n DashNav: {\n nav: {\n [MIN_GRAFANA_VERSION]: 'Dashboard navigation',\n },\n navV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Dashboard navigation',\n },\n publicDashboardTag: {\n '9.1.0': 'data-testid public dashboard tag',\n },\n shareButton: {\n '10.4.0': 'data-testid share-button',\n },\n scrollContainer: {\n '11.1.0': 'data-testid Dashboard canvas scroll container',\n },\n newShareButton: {\n container: {\n '11.1.0': 'data-testid new share button',\n },\n shareLink: {\n '11.1.0': 'data-testid new share link-button',\n },\n arrowMenu: {\n '11.1.0': 'data-testid new share button arrow menu',\n },\n menu: {\n container: {\n '11.1.0': 'data-testid new share button menu',\n },\n shareInternally: {\n '11.1.0': 'data-testid new share button share internally',\n },\n shareExternally: {\n '11.1.1': 'data-testid new share button share externally',\n },\n shareSnapshot: {\n '11.2.0': 'data-testid new share button share snapshot',\n },\n },\n },\n NewExportButton: {\n container: {\n '11.2.0': 'data-testid new export button',\n },\n arrowMenu: {\n '11.2.0': 'data-testid new export button arrow menu',\n },\n Menu: {\n container: {\n '11.2.0': 'data-testid new export button menu',\n },\n exportAsJson: {\n '11.2.0': 'data-testid new export button export as json',\n },\n exportAsImage: {\n '12.1.0': 'data-testid new export button export as image',\n },\n },\n },\n playlistControls: {\n prev: {\n '11.0.0': 'data-testid playlist previous dashboard button',\n },\n stop: {\n '11.0.0': 'data-testid playlist stop dashboard button',\n },\n next: {\n '11.0.0': 'data-testid playlist next dashboard button',\n },\n },\n },\n Controls: {\n '11.1.0': 'data-testid dashboard controls',\n },\n SubMenu: {\n submenu: {\n [MIN_GRAFANA_VERSION]: 'Dashboard submenu',\n },\n submenuItem: {\n [MIN_GRAFANA_VERSION]: 'data-testid template variable',\n },\n submenuItemLabels: {\n [MIN_GRAFANA_VERSION]: (item: string) => `data-testid Dashboard template variables submenu Label ${item}`,\n },\n submenuItemValueDropDownValueLinkTexts: {\n [MIN_GRAFANA_VERSION]: (item: string) =>\n `data-testid Dashboard template variables Variable Value DropDown value link text ${item}`,\n },\n submenuItemValueDropDownDropDown: {\n [MIN_GRAFANA_VERSION]: 'Variable options',\n },\n submenuItemValueDropDownOptionTexts: {\n [MIN_GRAFANA_VERSION]: (item: string) =>\n `data-testid Dashboard template variables Variable Value DropDown option text ${item}`,\n },\n Annotations: {\n annotationsWrapper: {\n '10.0.0': 'data-testid annotation-wrapper',\n },\n annotationLabel: {\n '10.0.0': (label: string) => `data-testid Dashboard annotations submenu Label ${label}`,\n },\n annotationToggle: {\n '10.0.0': (label: string) => `data-testid Dashboard annotations submenu Toggle ${label}`,\n },\n },\n },\n Settings: {\n Actions: {\n close: {\n '9.5.0': 'data-testid dashboard-settings-close',\n },\n },\n General: {\n deleteDashBoard: {\n '11.1.0': 'data-testid Dashboard settings page delete dashboard button',\n },\n sectionItems: {\n [MIN_GRAFANA_VERSION]: (item: string) => `Dashboard settings section item ${item}`,\n },\n saveDashBoard: {\n [MIN_GRAFANA_VERSION]: 'Dashboard settings aside actions Save button',\n },\n saveAsDashBoard: {\n [MIN_GRAFANA_VERSION]: 'Dashboard settings aside actions Save As button',\n },\n title: {\n '11.2.0': 'General',\n },\n },\n Annotations: {\n Edit: {\n urlParams: {\n [MIN_GRAFANA_VERSION]: (annotationIndex: string) => `editview=annotations&editIndex=${annotationIndex}`,\n },\n },\n List: {\n url: {\n [MIN_GRAFANA_VERSION]: (dashboardUid: string) => `/d/${dashboardUid}?editview=annotations`,\n },\n addAnnotationCTAV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Call to action button Add annotation query',\n },\n annotations: {\n '10.4.0': 'data-testid list-annotations',\n },\n },\n Settings: {\n name: {\n '11.1.0': 'data-testid Annotations settings name input',\n [MIN_GRAFANA_VERSION]: 'Annotations settings name input',\n },\n },\n NewAnnotation: {\n panelFilterSelect: {\n '10.0.0': 'data-testid annotations-panel-filter',\n },\n showInLabel: {\n '11.1.0': 'data-testid show-in-label',\n },\n previewInDashboard: {\n '10.0.0': 'data-testid annotations-preview',\n },\n delete: {\n '10.4.0': 'data-testid annotations-delete',\n },\n apply: {\n '10.4.0': 'data-testid annotations-apply',\n },\n enable: {\n '10.4.0': 'data-testid annotation-enable',\n },\n hide: {\n '10.4.0': 'data-testid annotation-hide',\n },\n },\n },\n Variables: {\n List: {\n url: {\n '11.3.0': (dashboardUid: string) => `/d/${dashboardUid}?editview=variables`,\n [MIN_GRAFANA_VERSION]: (dashboardUid: string) => `/d/${dashboardUid}?editview=templating`,\n },\n addVariableCTAV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Call to action button Add variable',\n },\n newButton: {\n [MIN_GRAFANA_VERSION]: 'Variable editor New variable button',\n },\n table: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Table',\n },\n tableRowNameFields: {\n [MIN_GRAFANA_VERSION]: (variableName: string) => `Variable editor Table Name field ${variableName}`,\n },\n tableRowDefinitionFields: {\n '10.1.0': (variableName: string) => `Variable editor Table Definition field ${variableName}`,\n },\n tableRowArrowUpButtons: {\n [MIN_GRAFANA_VERSION]: (variableName: string) => `Variable editor Table ArrowUp button ${variableName}`,\n },\n tableRowArrowDownButtons: {\n [MIN_GRAFANA_VERSION]: (variableName: string) => `Variable editor Table ArrowDown button ${variableName}`,\n },\n tableRowDuplicateButtons: {\n [MIN_GRAFANA_VERSION]: (variableName: string) => `Variable editor Table Duplicate button ${variableName}`,\n },\n tableRowRemoveButtons: {\n [MIN_GRAFANA_VERSION]: (variableName: string) => `Variable editor Table Remove button ${variableName}`,\n },\n },\n Edit: {\n urlParams: {\n '11.3.0': (editIndex: string) => `editview=variables&editIndex=${editIndex}`,\n [MIN_GRAFANA_VERSION]: (editIndex: string) => `editview=templating&editIndex=${editIndex}`,\n },\n General: {\n headerLink: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Header link',\n },\n modeLabelNew: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Header mode New',\n },\n /**\n * @deprecated\n */\n modeLabelEdit: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Header mode Edit',\n },\n generalNameInput: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Name field',\n },\n generalNameInputV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Name field',\n },\n generalTypeSelect: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Type select',\n },\n generalTypeSelectV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Type select',\n },\n generalLabelInput: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Label field',\n },\n generalLabelInputV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Label field',\n },\n generalHideSelect: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Hide select',\n },\n generalHideSelectV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Hide select',\n },\n selectionOptionsAllowCustomValueSwitch: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Allow Custom Value switch',\n },\n selectionOptionsMultiSwitch: {\n '10.4.0': 'data-testid Variable editor Form Multi switch',\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Multi switch',\n },\n selectionOptionsIncludeAllSwitch: {\n '10.4.0': 'data-testid Variable editor Form IncludeAll switch',\n [MIN_GRAFANA_VERSION]: 'Variable editor Form IncludeAll switch',\n },\n selectionOptionsCustomAllInput: {\n '10.4.0': 'data-testid Variable editor Form IncludeAll field',\n [MIN_GRAFANA_VERSION]: 'Variable editor Form IncludeAll field',\n },\n previewOfValuesOption: {\n '10.4.0': 'data-testid Variable editor Preview of Values option',\n [MIN_GRAFANA_VERSION]: 'Variable editor Preview of Values option',\n },\n submitButton: {\n '10.4.0': 'data-testid Variable editor Run Query button',\n [MIN_GRAFANA_VERSION]: 'Variable editor Submit button',\n },\n applyButton: {\n '9.3.0': 'data-testid Variable editor Apply button',\n },\n },\n QueryVariable: {\n closeButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid Query Variable editor close button',\n },\n editor: {\n [MIN_GRAFANA_VERSION]: 'data-testid Query Variable editor',\n },\n previewButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid Query Variable editor preview button',\n },\n queryOptionsDataSourceSelect: {\n '10.4.0': 'data-testid Select a data source',\n '10.0.0': 'data-testid Data source picker select container',\n [MIN_GRAFANA_VERSION]: 'Data source picker select container',\n },\n queryOptionsOpenButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid Query Variable editor open button',\n },\n queryOptionsRefreshSelect: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Query Refresh select',\n },\n queryOptionsRefreshSelectV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Query Refresh select',\n },\n queryOptionsRegExInput: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Query RegEx field',\n },\n queryOptionsRegExInputV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Query RegEx field',\n },\n queryOptionsSortSelect: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Query Sort select',\n },\n queryOptionsSortSelectV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Query Sort select',\n },\n queryOptionsQueryInput: {\n '10.4.0': 'data-testid Variable editor Form Default Variable Query Editor textarea',\n },\n queryOptionsStaticOptionsToggle: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Query Static Options toggle',\n },\n queryOptionsStaticOptionsOrderDropdown: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Query Static Options Order dropdown',\n },\n valueGroupsTagsEnabledSwitch: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Query UseTags switch',\n },\n valueGroupsTagsTagsQueryInput: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Query TagsQuery field',\n },\n valueGroupsTagsTagsValuesQueryInput: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Query TagsValuesQuery field',\n },\n },\n ConstantVariable: {\n constantOptionsQueryInput: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form Constant Query field',\n },\n constantOptionsQueryInputV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Constant Query field',\n },\n },\n DatasourceVariable: {\n datasourceSelect: {\n [MIN_GRAFANA_VERSION]: 'data-testid datasource variable datasource type',\n },\n nameFilter: {\n [MIN_GRAFANA_VERSION]: 'data-testid datasource variable datasource name filter',\n },\n },\n TextBoxVariable: {\n textBoxOptionsQueryInput: {\n [MIN_GRAFANA_VERSION]: 'Variable editor Form TextBox Query field',\n },\n textBoxOptionsQueryInputV2: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form TextBox Query field',\n },\n },\n CustomVariable: {\n customValueInput: {\n [MIN_GRAFANA_VERSION]: 'data-testid custom-variable-input',\n },\n optionsOpenButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid custom-variable-options-open-button',\n },\n closeButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid custom-variable-close-button',\n },\n },\n IntervalVariable: {\n intervalsValueInput: {\n [MIN_GRAFANA_VERSION]: 'data-testid interval variable intervals input',\n },\n autoEnabledCheckbox: {\n '10.4.0': 'data-testid interval variable auto value checkbox',\n },\n stepCountIntervalSelect: {\n '10.4.0': 'data-testid interval variable step count input',\n },\n minIntervalInput: {\n '10.4.0': 'data-testid interval variable mininum interval input',\n },\n },\n GroupByVariable: {\n dataSourceSelect: {\n '10.4.0': 'data-testid Select a data source',\n },\n infoText: {\n '10.4.0': 'data-testid group by variable info text',\n },\n modeToggle: {\n '10.4.0': 'data-testid group by variable mode toggle',\n },\n },\n AdHocFiltersVariable: {\n datasourceSelect: {\n '10.4.0': 'data-testid Select a data source',\n },\n infoText: {\n '10.4.0': 'data-testid ad-hoc filters variable info text',\n },\n modeToggle: {\n '11.0.0': 'data-testid ad-hoc filters variable mode toggle',\n },\n },\n SwitchVariable: {\n valuePairTypeSelect: {\n ['12.3.0']: 'data-testid switch variable value pair type select',\n },\n enabledValueInput: {\n ['12.3.0']: 'data-testid switch variable enabled value input',\n },\n disabledValueInput: {\n ['12.3.0']: 'data-testid switch variable disabled value input',\n },\n },\n StaticOptionsEditor: {\n addButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Static Options Add button',\n },\n labelInput: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Static Options Label input',\n },\n valueInput: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Static Options Value input',\n },\n moveButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Static Options Move button',\n },\n deleteButton: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Static Options Delete button',\n },\n row: {\n [MIN_GRAFANA_VERSION]: 'data-testid Variable editor Form Static Options Row',\n },\n },\n },\n },\n },\n Annotations: {\n marker: {\n '10.0.0': 'data-testid annotation-marker',\n },\n },\n Rows: {\n Repeated: {\n ConfigSection: {\n warningMessage: {\n '10.2.0': 'data-testid Repeated rows warning message',\n },\n },\n },\n },\n },\n Dashboards: {\n url: {\n [MIN_GRAFANA_VERSION]: '/dashboards',\n },\n dashboards: {\n '10.2.0': (title: string) => `Dashboard search item ${title}`,\n },\n toggleView: {\n [MIN_GRAFANA_VERSION]: 'data-testid radio-button',\n },\n },\n SaveDashboardAsModal: {\n newName: {\n '10.2.0': 'Save dashboard title field',\n },\n save: {\n '10.2.0': 'Save dashboard button',\n },\n },\n SaveDashboardModal: {\n save: {\n '10.2.0': 'Dashboard settings Save Dashboard Modal Save button',\n },\n saveVariables: {\n '10.2.0': 'Dashboard settings Save Dashboard Modal Save variables checkbox',\n },\n saveTimerange: {\n '10.2.0': 'Dashboard settings Save Dashboard Modal Save timerange checkbox',\n },\n saveRefresh: {\n '11.1.0': 'Dashboard settings Save Dashboard Modal Save refresh checkbox',\n },\n variablesWarningAlert: {\n '12.2.0': 'Dashboard settings Save Dashboard Modal Save variables Variables With Errors Warning Alert',\n },\n },\n SharePanelModal: {\n linkToRenderedImage: {\n [MIN_GRAFANA_VERSION]: 'Link to rendered image',\n },\n },\n ShareDashboardModal: {\n PublicDashboard: {\n WillBePublicCheckbox: {\n '9.1.0': 'data-testid public dashboard will be public checkbox',\n },\n LimitedDSCheckbox: {\n '9.1.0': 'data-testid public dashboard limited datasources checkbox',\n },\n CostIncreaseCheckbox: {\n '9.1.0': 'data-testid public dashboard cost may increase checkbox',\n },\n PauseSwitch: {\n '9.5.0': 'data-testid public dashboard pause switch',\n },\n EnableAnnotationsSwitch: {\n '9.3.0': 'data-testid public dashboard on off switch for annotations',\n },\n CreateButton: {\n '9.5.0': 'data-testid public dashboard create button',\n },\n DeleteButton: {\n '9.3.0': 'data-testid public dashboard delete button',\n },\n CopyUrlInput: {\n '9.1.0': 'data-testid public dashboard copy url input',\n },\n CopyUrlButton: {\n '9.1.0': 'data-testid public dashboard copy url button',\n },\n SettingsDropdown: {\n '10.1.0': 'data-testid public dashboard settings dropdown',\n },\n TemplateVariablesWarningAlert: {\n '9.1.0': 'data-testid public dashboard disabled template variables alert',\n },\n UnsupportedDataSourcesWarningAlert: {\n '9.5.0': 'data-testid public dashboard unsupported data sources alert',\n },\n NoUpsertPermissionsWarningAlert: {\n '9.5.0': 'data-testid public dashboard no upsert permissions alert',\n },\n EnableTimeRangeSwitch: {\n '9.4.0': 'data-testid public dashboard on off switch for time range',\n },\n EmailSharingConfiguration: {\n Container: {\n '9.5.0': 'data-testid email sharing config container',\n },\n ShareType: {\n '9.5.0': 'data-testid public dashboard share type',\n },\n EmailSharingInput: {\n '9.5.0': 'data-testid public dashboard email sharing input',\n },\n EmailSharingInviteButton: {\n '9.5.0': 'data-testid public dashboard email sharing invite button',\n },\n EmailSharingList: {\n '9.5.0': 'data-testid public dashboard email sharing list',\n },\n DeleteEmail: {\n '9.5.0': 'data-testid public dashboard delete email button',\n },\n ReshareLink: {\n '9.5.0': 'data-testid public dashboard reshare link button',\n },\n },\n },\n SnapshotScene: {\n url: {\n '11.1.0': (key: string) => `/dashboard/snapshot/${key}`,\n },\n PublishSnapshot: {\n '11.1.0': 'data-testid publish snapshot button',\n },\n CopyUrlButton: {\n '11.1.0': 'data-testid snapshot copy url button',\n },\n CopyUrlInput: {\n '11.1.0': 'data-testid snapshot copy url input',\n },\n },\n },\n ShareDashboardDrawer: {\n ShareInternally: {\n container: {\n '11.3.0': 'data-testid share internally drawer container',\n },\n lockTimeRangeSwitch: {\n '11.3.0': 'data-testid share internally lock time range switch',\n },\n shortenUrlSwitch: {\n '11.3.0': 'data-testid share internally shorten url switch',\n },\n copyUrlButton: {\n '11.3.0': 'data-testid share internally copy url button',\n },\n SharePanel: {\n preview: {\n '11.5.0': 'data-testid share panel internally image generation preview',\n },\n widthInput: {\n '11.5.0': 'data-testid share panel internally width input',\n },\n heightInput: {\n '11.5.0': 'data-testid share panel internally height input',\n },\n scaleFactorInput: {\n '11.5.0': 'data-testid share panel internally scale factor input',\n },\n generateImageButton: {\n '11.5.0': 'data-testid share panel internally generate image button',\n },\n downloadImageButton: {\n '11.5.0': 'data-testid share panel internally download image button',\n },\n },\n },\n ShareExternally: {\n container: {\n '11.3.0': 'data-testid share externally drawer container',\n },\n publicAlert: {\n '11.3.0': 'data-testid public share alert',\n },\n emailSharingAlert: {\n '11.3.0': 'data-testid email share alert',\n },\n shareTypeSelect: {\n '11.3.0': 'data-testid share externally share type select',\n },\n Creation: {\n PublicShare: {\n createButton: {\n '11.3.0': 'data-testid public share dashboard create button',\n },\n cancelButton: {\n '11.3.0': 'data-testid public share dashboard cancel button',\n },\n },\n EmailShare: {\n createButton: {\n '11.3.0': 'data-testid email share dashboard create button',\n },\n cancelButton: {\n '11.3.0': 'data-testid email share dashboard cancel button',\n },\n },\n willBePublicCheckbox: {\n '11.3.0': 'data-testid share dashboard will be public checkbox',\n },\n },\n Configuration: {\n enableTimeRangeSwitch: {\n '11.3.0': 'data-testid share externally enable time range switch',\n },\n enableAnnotationsSwitch: {\n '11.3.0': 'data-testid share externally enable annotations switch',\n },\n copyUrlButton: {\n '11.3.0': 'data-testid share externally copy url button',\n },\n revokeAccessButton: {\n '11.3.0': 'data-testid share externally revoke access button',\n },\n toggleAccessButton: {\n '11.3.0': 'data-testid share externally pause or resume access button',\n },\n },\n },\n ShareSnapshot: {\n url: {\n '11.3.0': (key: string) => `/dashboard/snapshot/${key}`,\n },\n container: {\n '11.3.0': 'data-testid share snapshot drawer container',\n },\n publishSnapshot: {\n '11.3.0': 'data-testid share snapshot publish button',\n },\n copyUrlButton: {\n '11.3.0': 'data-testid share snapshot copy url button',\n },\n },\n },\n ExportDashboardDrawer: {\n ExportAsJson: {\n container: {\n '11.3.0': 'data-testid export as json drawer container',\n },\n codeEditor: {\n '11.3.0': 'data-testid export as json code editor',\n },\n exportExternallyToggle: {\n '11.3.0': 'data-testid export as json externally switch',\n },\n saveToFileButton: {\n '11.3.0': 'data-testid export as json save to file button',\n },\n copyToClipboardButton: {\n '11.3.0': 'data-testid export as json copy to clipboard button',\n },\n cancelButton: {\n '11.3.0': 'data-testid export as json cancel button',\n },\n },\n },\n PublicDashboard: {\n page: {\n '9.5.0': 'public-dashboard-page',\n },\n NotAvailable: {\n container: {\n '9.5.0': 'public-dashboard-not-available',\n },\n title: {\n '9.5.0': 'public-dashboard-title',\n },\n pausedDescription: {\n '9.5.0': 'public-dashboard-paused-description',\n },\n },\n footer: {\n '11.0.0': 'public-dashboard-footer',\n },\n },\n PublicDashboardScene: {\n loadingPage: {\n '11.0.0': 'public-dashboard-scene-loading-page',\n },\n page: {\n '11.0.0': 'public-dashboard-scene-page',\n },\n controls: {\n '11.0.0': 'public-dashboard-controls',\n },\n },\n RequestViewAccess: {\n form: {\n '9.5.0': 'request-view-access-form',\n },\n recipientInput: {\n '9.5.0': 'request-view-access-recipient-input',\n },\n submitButton: {\n '9.5.0': 'request-view-access-submit-button',\n },\n },\n PublicDashboardConfirmAccess: {\n submitButton: {\n '10.2.0': 'data-testid confirm-access-submit-button',\n },\n },\n Explore: {\n url: {\n [MIN_GRAFANA_VERSION]: '/explore',\n },\n General: {\n container: {\n [MIN_GRAFANA_VERSION]: 'data-testid Explore',\n },\n graph: {\n [MIN_GRAFANA_VERSION]: 'Explore Graph',\n },\n table: {\n [MIN_GRAFANA_VERSION]: 'Explore Table',\n },\n scrollView: {\n '9.0.0': 'data-testid explorer scroll view',\n },\n addFromQueryLibrary: {\n '11.5.0': 'data-testid explore add from query library button',\n },\n },\n QueryHistory: {\n container: {\n '11.1.0': 'data-testid QueryHistory',\n },\n },\n },\n SoloPanel: {\n url: {\n [MIN_GRAFANA_VERSION]: (page: string) => `/d-solo/${page}`,\n },\n },\n PluginsList: {\n page: {\n [MIN_GRAFANA_VERSION]: 'Plugins list page',\n },\n list: {\n [MIN_GRAFANA_VERSION]: 'Plugins list',\n },\n listItem: {\n [MIN_GRAFANA_VERSION]: 'Plugins list item',\n },\n signatureErrorNotice: {\n '10.3.0': 'data-testid Unsigned plugins notice',\n [MIN_GRAFANA_VERSION]: 'Unsigned plugins notice',\n },\n },\n PluginPage: {\n page: {\n [MIN_GRAFANA_VERSION]: 'Plugin page',\n },\n signatureInfo: {\n '10.3.0': 'data-testid Plugin signature info',\n [MIN_GRAFANA_VERSION]: 'Plugin signature info',\n },\n disabledInfo: {\n '10.3.0': 'data-testid Plugin disabled info',\n [MIN_GRAFANA_VERSION]: 'Plugin disabled info',\n },\n },\n PlaylistForm: {\n name: {\n [MIN_GRAFANA_VERSION]: 'Playlist name',\n },\n interval: {\n [MIN_GRAFANA_VERSION]: 'Playlist interval',\n },\n itemDelete: {\n '10.2.0': 'data-testid playlist-form-delete-item',\n },\n },\n BrowseDashboards: {\n table: {\n body: {\n '10.2.0': 'data-testid browse-dashboards-table',\n },\n row: {\n '10.2.0': (name: string) => `data-testid browse dashboards row ${name}`,\n },\n checkbox: {\n '10.0.0': (uid: string) => `data-testid ${uid} checkbox`,\n },\n },\n NewFolderForm: {\n form: {\n '10.2.0': 'data-testid new folder form',\n },\n nameInput: {\n '10.2.0': 'data-testid new-folder-name-input',\n },\n createButton: {\n '10.2.0': 'data-testid new-folder-create-button',\n },\n },\n },\n SearchDashboards: {\n table: {\n '10.2.0': 'Search results table',\n },\n },\n Search: {\n url: {\n '9.3.0': '/?search=openn',\n },\n FolderView: {\n url: {\n '9.3.0': '/?search=open&layout=folders',\n },\n },\n },\n PublicDashboards: {\n ListItem: {\n linkButton: {\n '9.3.0': 'public-dashboard-link-button',\n },\n configButton: {\n '9.3.0': 'public-dashboard-configuration-button',\n },\n trashcanButton: {\n '9.3.0': 'public-dashboard-remove-button',\n },\n pauseSwitch: {\n '10.1.0': 'data-testid public dashboard pause switch',\n },\n },\n },\n UserListPage: {\n tabs: {\n allUsers: {\n '10.0.0': 'data-testid all-users-tab',\n },\n orgUsers: {\n '10.0.0': 'data-testid org-users-tab',\n },\n anonUserDevices: {\n '10.2.3': 'data-testid anon-user-devices-tab',\n },\n publicDashboardsUsers: {\n '10.0.0': 'data-testid public-dashboards-users-tab',\n },\n users: {\n '10.0.0': 'data-testid users-tab',\n },\n },\n org: {\n url: {\n '10.2.0': '/admin/users',\n '9.5.0': '/org/users',\n },\n },\n admin: {\n url: {\n '9.5.0': '/admin/users',\n },\n },\n publicDashboards: {\n container: {\n '11.1.0': 'data-testid public-dashboards-users-list',\n },\n },\n UserListAdminPage: {\n container: {\n '10.0.0': 'data-testid user-list-admin-page',\n },\n },\n UsersListPage: {\n container: {\n '10.0.0': 'data-testid users-list-page',\n },\n },\n UserAnonListPage: {\n container: {\n '10.4.0': 'data-testid user-anon-list-page',\n },\n },\n UsersListPublicDashboardsPage: {\n container: {\n '10.0.0': 'data-testid users-list-public-dashboards-page',\n },\n DashboardsListModal: {\n listItem: {\n '10.0.0': (uid: string) => `data-testid dashboards-list-item-${uid}`,\n },\n },\n },\n },\n ProfilePage: {\n url: {\n '10.2.0': '/profile',\n },\n },\n Plugin: {\n url: {\n [MIN_GRAFANA_VERSION]: (pluginId: string) => `/plugins/${pluginId}`,\n },\n },\n MigrateToCloud: {\n url: {\n '11.2.0': '/admin/migrate-to-cloud',\n },\n },\n} satisfies VersionedSelectorGroup;\n\nexport type VersionedPages = typeof versionedPages;\n","import { CodeEditor } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\n\nexport const CSVContentEditor = ({ onChange, query }: EditorProps) => {\n const onSaveCSV = (csvContent: string) => {\n onChange({ ...query, csvContent });\n };\n\n return (\n <CodeEditor\n height={300}\n language=\"csv\"\n value={query.csvContent ?? ''}\n onBlur={onSaveCSV}\n onSave={onSaveCSV}\n showMiniMap={false}\n showLineNumbers={true}\n />\n );\n};\n","import { SelectableValue } from '@grafana/data';\nimport { InlineField, InlineFieldRow, Select } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\n\nexport const CSVFileEditor = ({ onChange, query }: EditorProps) => {\n const onChangeFileName = ({ value }: SelectableValue<string>) => {\n onChange({ ...query, csvFileName: value });\n };\n\n const files = [\n 'flight_info_by_state.csv',\n 'population_by_state.csv',\n 'gdp_per_capita.csv',\n 'js_libraries.csv',\n 'ohlc_dogecoin.csv',\n 'weight_height.csv',\n 'browser_marketshare.csv',\n 'automobiles.csv',\n ].map((name) => ({ label: name, value: name }));\n\n return (\n <InlineFieldRow>\n <InlineField label=\"File\" labelWidth={14}>\n <Select\n width={32}\n onChange={onChangeFileName}\n placeholder=\"Select csv file\"\n options={files}\n value={files.find((f) => f.value === query.csvFileName)}\n />\n </InlineField>\n </InlineFieldRow>\n );\n};\n","// Code was originally generated from cue\n// It must now be updated manually\n\nimport * as common from '@grafana/schema';\n\nexport enum TestDataQueryType {\n Annotations = 'annotations',\n Arrow = 'arrow',\n CSVContent = 'csv_content',\n CSVFile = 'csv_file',\n CSVMetricValues = 'csv_metric_values',\n DataPointsOutsideRange = 'datapoints_outside_range',\n ExponentialHeatmapBucketData = 'exponential_heatmap_bucket_data',\n FlameGraph = 'flame_graph',\n GrafanaAPI = 'grafana_api',\n LinearHeatmapBucketData = 'linear_heatmap_bucket_data',\n Live = 'live',\n Logs = 'logs',\n ManualEntry = 'manual_entry',\n NoDataPoints = 'no_data_points',\n NodeGraph = 'node_graph',\n PredictableCSVWave = 'predictable_csv_wave',\n PredictablePulse = 'predictable_pulse',\n QueryMeta = 'query_meta',\n RandomWalk = 'random_walk',\n RandomWalkTable = 'random_walk_table',\n RandomWalkWithError = 'random_walk_with_error',\n RawFrame = 'raw_frame',\n ServerError500 = 'server_error_500',\n Simulation = 'simulation',\n Steps = 'steps',\n SlowQuery = 'slow_query',\n StreamingClient = 'streaming_client',\n TableStatic = 'table_static',\n Trace = 'trace',\n USA = 'usa',\n VariablesQuery = 'variables-query',\n ErrorWithSource = 'error_with_source',\n}\n\nexport interface StreamingQuery {\n bands?: number;\n noise: number;\n speed: number;\n spread: number;\n type: 'signal' | 'logs' | 'fetch' | 'traces' | 'watch';\n url?: string;\n}\n\nexport interface PulseWaveQuery {\n offCount?: number;\n offValue?: number;\n onCount?: number;\n onValue?: number;\n timeStep?: number;\n}\n\nexport interface SimulationQuery {\n config?: Record<string, unknown>;\n key: {\n type: string;\n tick: number;\n uid?: string;\n };\n last?: boolean;\n stream?: boolean;\n}\n\nexport interface NodesQuery {\n count?: number;\n seed?: number;\n type?: 'random' | 'response_small' | 'response_medium' | 'random edges' | 'feature_showcase';\n}\n\nexport interface USAQuery {\n fields?: string[];\n mode?: string;\n period?: string;\n states?: string[];\n}\n\nexport const defaultUSAQuery: Partial<USAQuery> = {\n fields: [],\n states: [],\n};\n\nexport interface CSVWave {\n labels?: string;\n name?: string;\n timeStep?: number;\n valuesCSV?: string;\n}\n\n/**\n * TODO: Should this live here given it's not used in the dataquery?\n */\nexport interface Scenario {\n description?: string;\n hideAliasField?: boolean;\n id: string;\n name: string;\n stringInput: string;\n}\n\nexport interface TestDataDataQuery extends common.DataQuery {\n alias?: string;\n channel?: string;\n csvContent?: string;\n csvFileName?: string;\n csvWave?: CSVWave[]; // TODO can we prevent partial from being generated\n /**\n * Drop percentage (the chance we will lose a point 0-100)\n */\n dropPercent?: number;\n errorType?: 'server_panic' | 'frontend_exception' | 'frontend_observable';\n flamegraphDiff?: boolean;\n labels?: string;\n levelColumn?: boolean;\n lines?: number;\n nodes?: NodesQuery;\n points?: Array<Array<string | number>>;\n pulseWave?: PulseWaveQuery;\n rawFrameContent?: string;\n scenarioId?: TestDataQueryType;\n seriesCount?: number;\n sim?: SimulationQuery;\n spanCount?: number;\n stream?: StreamingQuery;\n stringInput?: string;\n usa?: USAQuery;\n errorSource?: 'plugin' | 'downstream';\n}\n\nexport const defaultTestDataDataQuery: Partial<TestDataDataQuery> = {\n csvWave: [],\n points: [],\n scenarioId: TestDataQueryType.RandomWalk,\n};\n","import { CSVWave, PulseWaveQuery, TestDataDataQuery, TestDataQueryType } from './dataquery';\n\nexport const defaultPulseQuery: PulseWaveQuery = {\n timeStep: 60,\n onCount: 3,\n onValue: 2,\n offCount: 3,\n offValue: 1,\n};\n\nexport const defaultCSVWaveQuery: CSVWave[] = [\n {\n timeStep: 60,\n valuesCSV: '0,0,2,2,1,1',\n },\n];\n\nexport const defaultQuery: TestDataDataQuery = {\n scenarioId: TestDataQueryType.RandomWalk,\n refId: '',\n};\n","import { memo, useState } from 'react';\nimport * as React from 'react';\n\nimport { Button, InlineField, InlineFieldRow, Input } from '@grafana/ui';\n\nimport { defaultCSVWaveQuery } from '../constants';\nimport type { CSVWave } from '../dataquery';\n\ninterface WavesProps {\n waves?: CSVWave[];\n onChange: (waves: CSVWave[]) => void;\n}\n\ninterface WaveProps {\n wave: CSVWave;\n index: number;\n last: boolean;\n onChange: (index: number, wave?: CSVWave) => void;\n onAdd: () => void;\n}\n\nconst CSVWaveEditor = (props: WaveProps) => {\n const { wave, last, index, onAdd, onChange } = props;\n const [valuesCSV, setValuesCSV] = useState(wave.valuesCSV || '');\n const [labels, setLabels] = useState(wave.labels || '');\n const [name, setName] = useState(wave.name || '');\n const onAction = () => {\n if (last) {\n onAdd();\n } else {\n onChange(index, undefined);\n }\n };\n const onValueChange = <K extends keyof CSVWave, V extends CSVWave[K]>(key: K, value: V) => {\n onChange(index, { ...wave, [key]: value });\n };\n const onKeyDown = (evt: React.KeyboardEvent<HTMLInputElement>) => {\n if (evt.key === 'Enter') {\n onValueChange('valuesCSV', valuesCSV);\n }\n };\n\n return (\n <InlineFieldRow>\n <InlineField\n label={'Values'}\n grow\n tooltip=\"Comma separated values. Each value may be an int, float, or null and must not be empty. Whitespace and trailing commas are removed\"\n >\n <Input\n value={valuesCSV}\n placeholder={'CSV values'}\n onChange={(e) => setValuesCSV(e.currentTarget.value)}\n autoFocus={true}\n onBlur={() => onValueChange('valuesCSV', valuesCSV)}\n onKeyDown={onKeyDown}\n />\n </InlineField>\n <InlineField label={'Step'} tooltip=\"The number of seconds between datapoints.\">\n <Input\n value={wave.timeStep}\n type=\"number\"\n placeholder={'60'}\n width={10}\n onChange={(e) => onValueChange('timeStep', e.currentTarget.valueAsNumber)}\n />\n </InlineField>\n <InlineField label={'Name'}>\n <Input\n value={name}\n placeholder={'name'}\n width={10}\n onChange={(e) => setName(e.currentTarget.value)}\n onBlur={() => onValueChange('name', name)}\n />\n </InlineField>\n <InlineField label={'Labels'}>\n <Input\n value={labels}\n placeholder={'labels'}\n width={12}\n onChange={(e) => setLabels(e.currentTarget.value)}\n onBlur={() => onValueChange('labels', labels)}\n />\n </InlineField>\n <Button\n aria-label={last ? 'Add wave' : 'Remove wave'}\n icon={last ? 'plus' : 'minus'}\n variant=\"secondary\"\n onClick={onAction}\n />\n </InlineFieldRow>\n );\n};\n\nexport const CSVWavesEditor = memo(({ waves, onChange }: WavesProps) => {\n const handleChange = (index: number, wave?: CSVWave) => {\n let wavesArray = [...(waves ?? defaultCSVWaveQuery)];\n if (wave) {\n wavesArray[index] = { ...wave };\n } else {\n // remove the element\n wavesArray.splice(index, 1);\n }\n onChange(wavesArray);\n };\n\n const onAdd = () => {\n const wavesArray = [...(waves ?? defaultCSVWaveQuery)];\n wavesArray.push({ ...defaultCSVWaveQuery[0] });\n onChange(wavesArray);\n };\n\n let wavesArray = waves ?? defaultCSVWaveQuery;\n if (!wavesArray.length) {\n wavesArray = defaultCSVWaveQuery;\n }\n\n return (\n <>\n {wavesArray.map((wave, index) => (\n <CSVWaveEditor\n key={`${index}/${wave.valuesCSV}`}\n wave={wave}\n index={index}\n onAdd={onAdd}\n onChange={handleChange}\n last={index === wavesArray.length - 1}\n />\n ))}\n </>\n );\n});\nCSVWavesEditor.displayName = 'CSVWavesEditor';\n","import { InlineField, InlineFieldRow, Select } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\n\nconst ERROR_OPTIONS = [\n {\n label: 'Server panic',\n value: 'server_panic',\n },\n {\n label: 'Frontend exception',\n value: 'frontend_exception',\n },\n {\n label: 'Frontend observable',\n value: 'frontend_observable',\n },\n];\n\nconst FrontendErrorQueryEditor = ({ query, onChange }: EditorProps) => {\n return (\n <InlineFieldRow>\n <InlineField labelWidth={14} label=\"Error type\">\n <Select\n options={ERROR_OPTIONS}\n value={query.errorType}\n onChange={(v) => {\n onChange({ ...query, errorType: v.value });\n }}\n />\n </InlineField>\n </InlineFieldRow>\n );\n};\n\nexport default FrontendErrorQueryEditor;\n","import { InlineField, InlineFieldRow, Select } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\n\nconst OPTIONS = [\n {\n label: 'Plugin',\n value: 'plugin',\n },\n {\n label: 'Downstream',\n value: 'downstream',\n },\n];\n\nconst ErrorWithSourceQueryEditor = ({ query, onChange }: EditorProps) => {\n return (\n <InlineFieldRow>\n <InlineField labelWidth={14} label=\"Error source\">\n <Select\n options={OPTIONS}\n value={query.errorSource}\n onChange={(v) => {\n onChange({ ...query, errorSource: v.value });\n }}\n />\n </InlineField>\n </InlineFieldRow>\n );\n};\n\nexport default ErrorWithSourceQueryEditor;\n","import { SelectableValue } from '@grafana/data';\nimport { InlineField, InlineFieldRow, Select } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\n\nconst liveTestDataChannels = [\n {\n label: 'random-2s-stream',\n value: 'random-2s-stream',\n description: 'Random stream with points every 2s',\n },\n {\n label: 'random-flakey-stream',\n value: 'random-flakey-stream',\n description: 'Stream that returns data in random intervals',\n },\n {\n label: 'random-labeled-stream',\n value: 'random-labeled-stream',\n description: 'Value with moving labels',\n },\n {\n label: 'random-20Hz-stream',\n value: 'random-20Hz-stream',\n description: 'Random stream with points in 20Hz',\n },\n];\n\nexport const GrafanaLiveEditor = ({ onChange, query }: EditorProps) => {\n const onChannelChange = ({ value }: SelectableValue<string>) => {\n onChange({ ...query, channel: value });\n };\n\n return (\n <InlineFieldRow>\n <InlineField label=\"Channel\" labelWidth={14}>\n <Select\n width={32}\n onChange={onChannelChange}\n placeholder=\"Select channel\"\n options={liveTestDataChannels}\n value={liveTestDataChannels.find((f) => f.value === query.channel)}\n />\n </InlineField>\n </InlineFieldRow>\n );\n};\n","import { Input, InlineFieldRow, InlineField, Select } from '@grafana/ui';\n\nimport { NodesQuery, TestDataDataQuery } from '../dataquery';\n\nexport interface Props {\n onChange: (value: NodesQuery) => void;\n query: TestDataDataQuery;\n}\nexport function NodeGraphEditor({ query, onChange }: Props) {\n const type = query.nodes?.type || 'random';\n return (\n <InlineFieldRow>\n <InlineField label=\"Data type\" labelWidth={14}>\n <Select<NodesQuery['type']>\n options={options.map((o) => ({\n label: o,\n value: o,\n }))}\n value={options.find((item) => item === type)}\n onChange={(value) => onChange({ ...query.nodes, type: value.value! })}\n width={32}\n />\n </InlineField>\n {(type === 'random' || type === 'random edges') && (\n <>\n <InlineField label=\"Count\" labelWidth={14}>\n <Input\n type=\"number\"\n name=\"count\"\n value={query.nodes?.count}\n width={32}\n onChange={(e) =>\n onChange({ ...query.nodes, count: e.currentTarget.value ? parseInt(e.currentTarget.value, 10) : 0 })\n }\n placeholder=\"10\"\n />\n </InlineField>\n <InlineField label=\"Seed\" labelWidth={14}>\n <Input\n type=\"number\"\n name=\"seed\"\n value={query.nodes?.seed}\n width={16}\n onChange={(e) =>\n onChange({ ...query.nodes, seed: e.currentTarget.value ? parseInt(e.currentTarget.value, 10) : 0 })\n }\n />\n </InlineField>\n </>\n )}\n </InlineFieldRow>\n );\n}\n\nconst options: Array<NodesQuery['type']> = [\n 'random',\n 'response_small',\n 'response_medium',\n 'random edges',\n 'feature_showcase',\n];\n","import { ChangeEvent } from 'react';\n\nimport { InlineField, InlineFieldRow, Input } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\nimport { PulseWaveQuery } from '../dataquery';\n\nconst fields: Array<{\n label: string;\n id: keyof PulseWaveQuery;\n placeholder: string;\n tooltip: string;\n}> = [\n { label: 'Step', id: 'timeStep', placeholder: '60', tooltip: 'The number of seconds between datapoints.' },\n {\n label: 'On Count',\n id: 'onCount',\n placeholder: '3',\n tooltip: 'The number of values within a cycle, at the start of the cycle, that should have the onValue.',\n },\n { label: 'Off Count', id: 'offCount', placeholder: '6', tooltip: 'The number of offValues within the cycle.' },\n {\n label: 'On Value',\n id: 'onValue',\n placeholder: '1',\n tooltip: 'The value for \"on values\", may be an int, float, or null.',\n },\n {\n label: 'Off Value',\n id: 'offValue',\n placeholder: '1',\n tooltip: 'The value for \"off values\", may be a int, float, or null.',\n },\n];\n\nexport const PredictablePulseEditor = ({ onChange, query }: EditorProps) => {\n // Convert values to numbers before saving\n const onInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const { name, value } = e.target;\n\n onChange({ target: { name, value: Number(value) } });\n };\n\n return (\n <InlineFieldRow>\n {fields.map(({ label, id, placeholder, tooltip }) => {\n return (\n <InlineField label={label} labelWidth={14} key={id} tooltip={tooltip}>\n <Input\n width={32}\n type=\"number\"\n name={id}\n id={`pulseWave.${id}-${query.refId}`}\n value={query.pulseWave?.[id]}\n placeholder={placeholder}\n onChange={onInputChange}\n />\n </InlineField>\n );\n })}\n </InlineFieldRow>\n );\n};\n","import { selectors } from '@grafana/e2e-selectors';\nimport { InlineField, InlineFieldRow, Input } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\nimport { TestDataDataQuery } from '../dataquery';\n\nconst randomWalkFields: Array<{\n label: string;\n id: Selector;\n placeholder: string;\n min?: number;\n step?: number;\n max?: number;\n tooltip?: string;\n}> = [\n { label: 'Series count', id: 'seriesCount', placeholder: '1', min: 1, step: 1 },\n { label: 'Start value', id: 'startValue', placeholder: 'auto', step: 1 },\n { label: 'Min', id: 'min', placeholder: 'none', step: 0.1 },\n { label: 'Max', id: 'max', placeholder: 'none', step: 0.1 },\n { label: 'Spread', id: 'spread', placeholder: '1', min: 0.5, step: 0.1 },\n { label: 'Noise', id: 'noise', placeholder: '0', min: 0, step: 0.1 },\n {\n label: 'Drop (%)',\n id: 'drop',\n placeholder: '0',\n min: 0,\n max: 100,\n step: 1,\n tooltip: 'Exclude some percent (chance) points',\n },\n];\n\nconst testSelectors = selectors.components.DataSource.TestData.QueryTab;\ntype Selector = 'max' | 'min' | 'noise' | 'seriesCount' | 'spread' | 'startValue' | 'drop';\n\nexport const RandomWalkEditor = ({ onChange, query }: EditorProps) => {\n return (\n <InlineFieldRow>\n {randomWalkFields.map(({ label, id, min, step, placeholder, tooltip }) => {\n const selector = testSelectors[id];\n return (\n <InlineField label={label} labelWidth={14} key={id} aria-label={selector} tooltip={tooltip}>\n <Input\n width={32}\n name={id}\n type=\"number\"\n id={`randomWalk-${id}-${query.refId}`}\n min={min}\n step={step}\n value={(query as any)[id as keyof TestDataDataQuery] ?? placeholder}\n placeholder={placeholder}\n onChange={onChange}\n />\n </InlineField>\n );\n })}\n </InlineFieldRow>\n );\n};\n","import { isArray } from 'lodash';\nimport { useState } from 'react';\n\nimport { dataFrameToJSON, toDataFrame, toDataFrameDTO } from '@grafana/data';\nimport { toDataQueryResponse } from '@grafana/runtime';\nimport { Alert, CodeEditor } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\n\nexport const RawFrameEditor = ({ onChange, query }: EditorProps) => {\n const [error, setError] = useState<string>();\n const [warning, setWarning] = useState<string>();\n\n const onSaveFrames = (rawFrameContent: string) => {\n try {\n const json = JSON.parse(rawFrameContent);\n if (isArray(json)) {\n setError(undefined);\n setWarning(undefined);\n onChange({ ...query, rawFrameContent });\n return;\n }\n\n let data = undefined;\n\n // Copy paste from panel json\n if (isArray(json.series) && json.state) {\n data = json.series.map((v: unknown) => toDataFrameDTO(toDataFrame(v)));\n } else {\n // Chek if it is a copy of the raw resuls\n const v = toDataQueryResponse({ data: json });\n if (v.data?.length && !v.error) {\n data = v.data.map((f) => dataFrameToJSON(f));\n }\n }\n\n if (data) {\n console.log('Original', json);\n console.log('Save', data);\n setError(undefined);\n setWarning('Converted to direct frame result');\n onChange({ ...query, rawFrameContent: JSON.stringify(data, null, 2) });\n return;\n }\n\n setError('Unable to read dataframes in text');\n } catch (e) {\n console.log('Error parsing json', e);\n setError('Enter JSON array of data frames (or raw query results body)');\n setWarning(undefined);\n }\n };\n\n return (\n <>\n {error && <Alert title={error} severity=\"error\" />}\n {warning && <Alert title={warning} severity=\"warning\" />}\n <CodeEditor\n height={300}\n language=\"json\"\n value={query.rawFrameContent ?? '[]'}\n onBlur={onSaveFrames}\n onSave={onSaveFrames}\n showMiniMap={true}\n showLineNumbers={true}\n />\n </>\n );\n};\n","import { css } from '@emotion/css';\nimport { FormEvent, useState, ChangeEvent } from 'react';\n\nimport { DataFrameSchema, FieldSchema, GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, TextArea, InlineField, Input, FieldSet, InlineSwitch } from '@grafana/ui';\n\nexport type Config = Record<string, any>;\n\ninterface SchemaFormProps {\n config: Config;\n schema: DataFrameSchema;\n onChange: (config: Config) => void;\n}\n\nconst renderInput = (field: FieldSchema, onChange: SchemaFormProps['onChange'], config: SchemaFormProps['config']) => {\n switch (field.type) {\n case 'number':\n return (\n <Input\n type=\"number\"\n defaultValue={config?.[field.name]}\n onChange={(e: FormEvent<HTMLInputElement>) => {\n const newValue = e.currentTarget.valueAsNumber;\n onChange({ ...config, [field.name]: newValue });\n }}\n />\n );\n case 'boolean':\n return (\n <InlineSwitch\n value={config?.[field.name] ?? true}\n onChange={() => {\n onChange({ ...config, [field.name]: !config[field.name] });\n }}\n />\n );\n default:\n return (\n <Input\n type=\"string\"\n value={config?.[field.name]}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n onChange({ ...config, [field.name]: newValue });\n }}\n />\n );\n }\n};\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n jsonView: css({\n marginBottom: theme.spacing(1),\n }),\n };\n};\n\nexport const SimulationSchemaForm = ({ config, schema, onChange }: SchemaFormProps) => {\n const [jsonView, setJsonView] = useState<boolean>(false);\n\n const styles = useStyles2(getStyles);\n\n const onUpdateTextArea = (event: FormEvent<HTMLTextAreaElement>) => {\n const element = event.currentTarget;\n onChange(JSON.parse(element.value));\n };\n\n return (\n <FieldSet label=\"Config\">\n <InlineSwitch\n className={styles.jsonView}\n label=\"JSON View\"\n showLabel\n value={jsonView}\n onChange={() => setJsonView(!jsonView)}\n />\n {jsonView ? (\n <TextArea defaultValue={JSON.stringify(config, null, 2)} rows={7} onChange={onUpdateTextArea} />\n ) : (\n <>\n {schema.fields.map((field) => (\n <InlineField label={field.name} key={field.name} labelWidth={14}>\n {renderInput(field, onChange, config)}\n </InlineField>\n ))}\n </>\n )}\n </FieldSet>\n );\n};\n","import { FormEvent, useMemo, useState } from 'react';\nimport { useAsync } from 'react-use';\n\nimport { DataFrameJSON, SelectableValue } from '@grafana/data';\nimport { InlineField, InlineFieldRow, InlineSwitch, Input, Label, Select } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\nimport { SimulationQuery } from '../dataquery';\n\nimport { SimulationSchemaForm, type Config } from './SimulationSchemaForm';\n\n// Type string `json:\"type\"`\n// Name string `json:\"name\"`\n// Description string `json:\"description\"`\n// OnlyForward bool `json:\"forward\"`\n// ConfigFields *data.Frame `json:\"config\"`\n\ninterface SimInfo {\n type: string;\n name: string;\n description: string;\n forward: boolean;\n config: DataFrameJSON;\n}\n\nexport const SimulationQueryEditor = ({ onChange, query, ds }: EditorProps) => {\n const simQuery = query.sim ?? ({} as SimulationQuery);\n const simKey = simQuery.key ?? {};\n // keep track of updated config state to pass down to form\n const [cfgValue, setCfgValue] = useState<Config>({});\n\n // This only changes once\n const info = useAsync(async () => {\n const v = await ds.getResource<SimInfo[]>('sims');\n return {\n sims: v,\n options: v.map((s) => ({ label: s.name, value: s.type, description: s.description })),\n };\n }, [ds]);\n\n const current = useMemo(() => {\n const type = simKey.type;\n if (!type || !info.value) {\n return {};\n }\n return {\n details: info.value.sims.find((v) => v.type === type),\n option: info.value.options.find((v) => v.value === type),\n };\n }, [info.value, simKey?.type]);\n\n let config = useAsync(async () => {\n let path = simKey.type + '/' + simKey.tick + 'hz';\n if (simKey.uid) {\n path += '/' + simKey.uid;\n }\n let config = (await ds.getResource('sim/' + path))?.config;\n setCfgValue(config.value);\n return config;\n }, [simKey.type, simKey.tick, simKey.uid]);\n\n const onUpdateKey = (key: typeof simQuery.key) => {\n onChange({ ...query, sim: { ...simQuery, key } });\n };\n\n const onUIDChanged = (e: FormEvent<HTMLInputElement>) => {\n const { value } = e.currentTarget;\n onUpdateKey({ ...simKey, uid: value ?? undefined });\n };\n\n const onTickChanged = (e: FormEvent<HTMLInputElement>) => {\n const tick = e.currentTarget.valueAsNumber;\n onUpdateKey({ ...simKey, tick });\n };\n\n const onTypeChange = (v: SelectableValue<string>) => {\n onUpdateKey({ ...simKey, type: v.value! });\n };\n\n const onToggleStream = () => {\n onChange({ ...query, sim: { ...simQuery, stream: !simQuery.stream } });\n };\n\n const onToggleLast = () => {\n onChange({ ...query, sim: { ...simQuery, last: !simQuery.last } });\n };\n\n const onSchemaFormChange = (config: Config) => {\n let path = simKey.type + '/' + simKey.tick + 'hz';\n if (simKey.uid) {\n path += '/' + simKey.uid;\n }\n ds.postResource<SimInfo>('sim/' + path, config).then((res) => {\n setCfgValue(res.config);\n });\n };\n return (\n <>\n <InlineFieldRow>\n <InlineField labelWidth={14} label=\"Simulation\" tooltip=\"\">\n <Select\n isLoading={info.loading}\n options={info.value?.options ?? []}\n value={current.option}\n onChange={onTypeChange}\n width={32}\n />\n </InlineField>\n </InlineFieldRow>\n <InlineFieldRow>\n <InlineField labelWidth={14} label=\"Stream\" tooltip=\"connect to the live channel\">\n <InlineSwitch value={Boolean(simQuery.stream)} onChange={onToggleStream} />\n </InlineField>\n\n <InlineField label=\"Interval\" tooltip=\"the rate a simulation will spit out events\">\n <Input\n width={10}\n type=\"number\"\n value={simKey.tick}\n onChange={onTickChanged}\n min={1 / 10}\n max={50}\n suffix=\"hz\"\n />\n </InlineField>\n\n <InlineField label=\"Last\" tooltip=\"Only return the last value\">\n <Label>\n <InlineSwitch value={Boolean(simQuery.last)} onChange={onToggleLast} />\n </Label>\n </InlineField>\n <InlineField label=\"UID\" tooltip=\"A UID will allow multiple simulations to run at the same time\">\n <Input type=\"text\" placeholder=\"optional\" value={simQuery.key.uid} onChange={onUIDChanged} />\n </InlineField>\n </InlineFieldRow>\n <SimulationSchemaForm\n onChange={onSchemaFormChange}\n config={cfgValue ?? config.value}\n schema={current.details?.config.schema ?? { fields: [] }}\n />\n </>\n );\n};\n","import { ChangeEvent } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { InlineField, InlineFieldRow, Input, Select } from '@grafana/ui';\n\nimport { EditorProps } from '../QueryEditor';\n\nconst streamingClientFields = [\n { label: 'Speed (ms)', id: 'speed', placeholder: 'value', min: 10, step: 10 },\n { label: 'Spread', id: 'spread', placeholder: 'value', min: 0.5, step: 0.1 },\n { label: 'Noise', id: 'noise', placeholder: 'value', min: 0, step: 0.1 },\n { label: 'Bands', id: 'bands', placeholder: 'bands', min: 0, step: 1 },\n] as const;\n\nconst types = [\n { value: 'signal', label: 'Signal' },\n { value: 'logs', label: 'Logs' },\n { value: 'fetch', label: 'Fetch' },\n { value: 'traces', label: 'Traces' },\n { value: 'watch', label: 'Watch' },\n];\n\nexport const StreamingClientEditor = ({ onChange, query }: EditorProps) => {\n const onSelectChange = ({ value }: SelectableValue) => {\n onChange({ target: { name: 'type', value } });\n };\n\n // Convert values to numbers before saving\n const onInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const { name, value } = e.target;\n onChange({ target: { name, value: Number(value) } });\n };\n\n const streamType = query?.stream?.type || 'signal';\n const fields =\n streamType === 'signal'\n ? streamingClientFields\n : ['logs', 'traces', 'watch'].includes(streamType)\n ? [streamingClientFields[0]] // speed\n : [];\n\n return (\n <InlineFieldRow>\n <InlineField label=\"Type\" labelWidth={14}>\n <Select\n width={32}\n onChange={onSelectChange}\n defaultValue={types[0]}\n options={types}\n value={query?.stream?.type}\n />\n </InlineField>\n {fields.map(({ label, id, min, step, placeholder }) => {\n return (\n <InlineField label={label} labelWidth={14} key={id}>\n <Input\n width={32}\n type=\"number\"\n id={`stream.${id}-${query.refId}`}\n name={id}\n min={min}\n step={step}\n value={query.stream?.[id]}\n placeholder={placeholder}\n onChange={onInputChange}\n />\n </InlineField>\n );\n })}\n\n {query?.stream?.type === 'fetch' && (\n <InlineField label=\"URL\" labelWidth={14} grow>\n <Input\n type=\"text\"\n name=\"url\"\n id={`stream.url-${query.refId}`}\n value={query?.stream?.url}\n placeholder=\"Fetch URL\"\n onChange={onChange}\n />\n </InlineField>\n )}\n </InlineFieldRow>\n );\n};\n","import { SelectableValue } from '@grafana/data';\nimport { InlineFieldRow, InlineField, Select, MultiSelect, Input } from '@grafana/ui';\n\nimport { USAQuery } from '../dataquery';\n\nexport interface Props {\n onChange: (value: USAQuery) => void;\n query: USAQuery;\n}\n\nexport function USAQueryEditor({ query, onChange }: Props) {\n return (\n <>\n <InlineFieldRow>\n <InlineField labelWidth={14} label=\"Mode\">\n <Select\n options={usaQueryModes}\n onChange={(v) => {\n onChange({ ...query, mode: v.value });\n }}\n width={32}\n value={usaQueryModes.find((ep) => ep.value === query.mode)}\n />\n </InlineField>\n <InlineField label=\"Period\">\n <Input\n value={query.period}\n placeholder={'30m'}\n onChange={(v) => {\n onChange({ ...query, period: v.currentTarget.value });\n }}\n />\n </InlineField>\n </InlineFieldRow>\n <InlineFieldRow>\n <InlineField labelWidth={14} label=\"Fields\">\n <MultiSelect\n options={fieldNames}\n onChange={(vals: SelectableValue[]) => {\n onChange({ ...query, fields: vals.map((v) => v.value) });\n }}\n width={32}\n placeholder=\"all\"\n value={query.fields}\n />\n </InlineField>\n <InlineField label=\"States\" grow>\n <MultiSelect\n options={stateNames}\n onChange={(vals: SelectableValue[]) => {\n onChange({ ...query, states: vals.map((v) => v.value) });\n }}\n placeholder=\"all\"\n value={query.states}\n />\n </InlineField>\n </InlineFieldRow>\n </>\n );\n}\n\nexport const usaQueryModes = [\n 'values-as-rows',\n 'values-as-fields',\n 'values-as-labeled-fields',\n 'timeseries',\n 'timeseries-wide',\n].map((f) => ({ label: f, value: f }));\n\nexport const fieldNames = [\n 'foo',\n 'bar',\n 'baz', // all short\n].map((f) => ({ label: f, value: f }));\n\nexport const stateNames = [\n 'AL',\n 'AK',\n 'AZ',\n 'AR',\n 'CA',\n 'CO',\n 'CT',\n 'DE',\n 'DC',\n 'FL',\n 'GA',\n 'HI',\n 'ID',\n 'IL',\n 'IN',\n 'IA',\n 'KS',\n 'KY',\n 'LA',\n 'ME',\n 'MT',\n 'NE',\n 'NV',\n 'NH',\n 'NJ',\n 'NM',\n 'NY',\n 'NC',\n 'ND',\n 'OH',\n 'OK',\n 'OR',\n 'MD',\n 'MA',\n 'MI',\n 'MN',\n 'MS',\n 'MO',\n 'PA',\n 'RI',\n 'SC',\n 'SD',\n 'TN',\n 'TX',\n 'UT',\n 'VT',\n 'VA',\n 'WA',\n 'WV',\n 'WI',\n 'WY',\n].map((f) => ({ label: f, value: f }));\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import { LogLevel } from '@grafana/data';\n\nlet index = 0;\n\nexport function getRandomLogLevel(): LogLevel {\n const v = Math.random();\n if (v > 0.9) {\n return LogLevel.critical;\n }\n if (v > 0.8) {\n return LogLevel.error;\n }\n if (v > 0.7) {\n return LogLevel.warning;\n }\n if (v > 0.4) {\n return LogLevel.info;\n }\n if (v > 0.3) {\n return LogLevel.debug;\n }\n if (v > 0.1) {\n return LogLevel.trace;\n }\n return LogLevel.unknown;\n}\n\nexport function getNextWord() {\n index = (index + Math.floor(Math.random() * 5)) % words.length;\n return words[index];\n}\n\nexport function getRandomLine(length = 60) {\n let line = getNextWord();\n while (line.length < length) {\n line += ' ' + getNextWord();\n }\n return line;\n}\n\nconst words = [\n 'At',\n 'vero',\n 'eos',\n 'et',\n 'accusamus',\n 'et',\n 'iusto',\n 'odio',\n 'dignissimos',\n 'ducimus',\n 'qui',\n 'blanditiis',\n 'praesentium',\n 'voluptatum',\n 'deleniti',\n 'atque',\n 'corrupti',\n 'quos',\n 'dolores',\n 'et',\n 'quas',\n 'molestias',\n 'excepturi',\n 'sint',\n 'occaecati',\n 'cupiditate',\n 'non',\n 'provident',\n 'similique',\n 'sunt',\n 'in',\n 'culpa',\n 'qui',\n 'officia',\n 'deserunt',\n 'mollitia',\n 'animi',\n 'id',\n 'est',\n 'laborum',\n 'et',\n 'dolorum',\n 'fuga',\n 'Et',\n 'harum',\n 'quidem',\n 'rerum',\n 'facilis',\n 'est',\n 'et',\n 'expedita',\n 'distinctio',\n 'Nam',\n 'libero',\n 'tempore',\n 'cum',\n 'soluta',\n 'nobis',\n 'est',\n 'eligendi',\n 'optio',\n 'cumque',\n 'nihil',\n 'impedit',\n 'quo',\n 'minus',\n 'id',\n 'quod',\n 'maxime',\n 'placeat',\n 'facere',\n 'possimus',\n 'omnis',\n 'voluptas',\n 'assumenda',\n 'est',\n 'omnis',\n 'dolor',\n 'repellendus',\n 'Temporibus',\n 'autem',\n 'quibusdam',\n 'et',\n 'aut',\n 'officiis',\n 'debitis',\n 'aut',\n 'rerum',\n 'necessitatibus',\n 'saepe',\n 'eveniet',\n 'ut',\n 'et',\n 'voluptates',\n 'repudiandae',\n 'sint',\n 'et',\n 'molestiae',\n 'non',\n 'recusandae',\n 'Itaque',\n 'earum',\n 'rerum',\n 'hic',\n 'tenetur',\n 'a',\n 'sapiente',\n 'delectus',\n 'ut',\n 'aut',\n 'reiciendis',\n 'voluptatibus',\n 'maiores',\n 'alias',\n 'consequatur',\n 'aut',\n 'perferendis',\n 'doloribus',\n 'asperiores',\n 'repellat',\n];\n","import { defaults } from 'lodash';\nimport { Observable, throwError } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DataQueryRequest,\n DataQueryResponse,\n FieldType,\n CircularDataFrame,\n CSVReader,\n Field,\n LoadingState,\n DataFrameSchema,\n DataFrameData,\n StreamingDataFrame,\n createDataFrame,\n addRow,\n getDisplayProcessor,\n createTheme,\n} from '@grafana/data';\nimport { getBackendSrv } from '@grafana/runtime';\n\nimport { getRandomLine } from './LogIpsum';\nimport { TestDataDataQuery, StreamingQuery } from './dataquery';\n\nexport const defaultStreamQuery: StreamingQuery = {\n type: 'signal',\n speed: 250, // ms\n spread: 3.5,\n noise: 2.2,\n bands: 1,\n};\n\nexport function runStream(\n target: TestDataDataQuery,\n req: DataQueryRequest<TestDataDataQuery>\n): Observable<DataQueryResponse> {\n const query = defaults(target.stream, defaultStreamQuery);\n switch (query.type) {\n case 'signal':\n return runSignalStream(target, query, req);\n case 'logs':\n return runLogsStream(target, query, req);\n case 'fetch':\n return runFetchStream(target, query, req);\n case 'traces':\n return runTracesStream(target, query, req);\n case 'watch':\n return runWatchStream(target, query, req);\n }\n throw new Error(`Unknown Stream Type: ${query.type}`);\n}\n\nexport function runSignalStream(\n target: TestDataDataQuery,\n query: StreamingQuery,\n req: DataQueryRequest<TestDataDataQuery>\n): Observable<DataQueryResponse> {\n return new Observable<DataQueryResponse>((subscriber) => {\n const streamId = `signal-${req.panelId || 'explore'}-${target.refId}`;\n const maxDataPoints = req.maxDataPoints || 1000;\n\n const schema: DataFrameSchema = {\n refId: target.refId,\n fields: [\n { name: 'time', type: FieldType.time },\n { name: target.alias ?? 'value', type: FieldType.number },\n ],\n };\n\n const { spread, speed, bands = 0, noise } = query;\n for (let i = 0; i < bands; i++) {\n const suffix = bands > 1 ? ` ${i + 1}` : '';\n schema.fields.push({ name: 'Min' + suffix, type: FieldType.number });\n schema.fields.push({ name: 'Max' + suffix, type: FieldType.number });\n }\n\n const frame = StreamingDataFrame.fromDataFrameJSON({ schema }, { maxLength: maxDataPoints });\n\n let value = Math.random() * 100;\n let timeoutId: ReturnType<typeof setTimeout>;\n let lastSent = -1;\n\n const addNextRow = (time: number) => {\n value += (Math.random() - 0.5) * spread;\n\n const data: DataFrameData = {\n values: [[time], [value]],\n };\n\n let min = value;\n let max = value;\n\n for (let i = 0; i < bands; i++) {\n min = min - Math.random() * noise;\n max = max + Math.random() * noise;\n\n data.values.push([min]);\n data.values.push([max]);\n }\n\n const event = { data };\n return frame.push(event);\n };\n\n // Fill the buffer on init\n let time = Date.now() - maxDataPoints * speed;\n for (let i = 0; i < maxDataPoints; i++) {\n addNextRow(time);\n time += speed;\n }\n\n const pushNextEvent = () => {\n lastSent = Date.now();\n addNextRow(lastSent);\n subscriber.next({\n data: [frame],\n key: streamId,\n state: LoadingState.Streaming,\n });\n timeoutId = setTimeout(pushNextEvent, speed);\n };\n\n // Send first event in 5ms\n setTimeout(pushNextEvent, 5);\n\n return () => {\n console.log('unsubscribing to stream ' + streamId);\n clearTimeout(timeoutId);\n };\n });\n}\n\nexport function runLogsStream(\n target: TestDataDataQuery,\n query: StreamingQuery,\n req: DataQueryRequest<TestDataDataQuery>\n): Observable<DataQueryResponse> {\n return new Observable<DataQueryResponse>((subscriber) => {\n const streamId = `logs-${req.panelId || 'explore'}-${target.refId}`;\n const maxDataPoints = req.maxDataPoints || 1000;\n\n const data = new CircularDataFrame({\n append: 'tail',\n capacity: maxDataPoints,\n });\n data.refId = target.refId;\n data.name = target.alias || 'Logs ' + target.refId;\n data.addField({ name: 'line', type: FieldType.string });\n data.addField({ name: 'time', type: FieldType.time });\n data.meta = { preferredVisualisationType: 'logs' };\n\n const { speed } = query;\n\n let timeoutId: ReturnType<typeof setTimeout>;\n\n const pushNextEvent = () => {\n data.fields[0].values.push(getRandomLine());\n data.fields[1].values.push(Date.now());\n\n subscriber.next({\n data: [data],\n key: streamId,\n state: LoadingState.Streaming,\n });\n\n timeoutId = setTimeout(pushNextEvent, speed);\n };\n\n // Send first event in 5ms\n setTimeout(pushNextEvent, 5);\n\n return () => {\n console.log('unsubscribing to stream ' + streamId);\n clearTimeout(timeoutId);\n };\n });\n}\n\ninterface StreamMessage {\n message: number; // incrementing number\n time: number;\n value: number;\n}\n\nexport function runWatchStream(\n target: TestDataDataQuery,\n query: StreamingQuery,\n req: DataQueryRequest<TestDataDataQuery>\n): Observable<DataQueryResponse> {\n const uid = req.targets[0].datasource?.uid;\n if (!uid) {\n return throwError(() => new Error('expected datasource uid'));\n }\n\n return new Observable<DataQueryResponse>((subscriber) => {\n const streamId = `watch-${req.panelId || 'explore'}-${target.refId}`;\n const data = new CircularDataFrame({\n append: 'tail',\n capacity: req.maxDataPoints || 1000,\n });\n data.refId = target.refId;\n data.name = target.alias || 'Logs ' + target.refId;\n data.addField({ name: 'time', type: FieldType.time });\n data.addField({ name: 'message', type: FieldType.number });\n data.addField({ name: 'value', type: FieldType.number });\n const decoder = new TextDecoder();\n\n const sub = getBackendSrv()\n .chunked({\n url: `api/datasources/uid/${uid}/resources/stream`,\n params: {\n count: req.maxDataPoints || 1000, // connection will close when done\n format: 'json',\n speed: `${query.speed ?? 250}ms`,\n flush: 85, // 85% (eg, sometimes send a few at a time)\n },\n })\n .subscribe({\n next: (chunk) => {\n if (!chunk.data || !chunk.ok) {\n console.info('chunk missing data', chunk);\n return;\n }\n decoder\n .decode(chunk.data, { stream: true })\n .split('\\n')\n .forEach((line) => {\n if (line?.length) {\n try {\n const msg: StreamMessage = JSON.parse(line);\n\n data.fields[0].values.push(msg.time);\n data.fields[1].values.push(msg.message);\n data.fields[2].values.push(msg.value);\n\n subscriber.next({\n data: [data],\n key: streamId,\n state: LoadingState.Streaming,\n });\n } catch (err) {\n console.warn('error parsing line', line, err);\n }\n }\n });\n },\n error: (err) => {\n console.warn('error in stream', streamId, err);\n },\n complete: () => {\n console.info('complete stream', streamId);\n },\n });\n\n return () => {\n console.log('unsubscribing to stream', streamId);\n sub.unsubscribe();\n };\n });\n}\n\nexport function runFetchStream(\n target: TestDataDataQuery,\n query: StreamingQuery,\n req: DataQueryRequest<TestDataDataQuery>\n): Observable<DataQueryResponse> {\n return new Observable<DataQueryResponse>((subscriber) => {\n const streamId = `fetch-${req.panelId || 'explore'}-${target.refId}`;\n const maxDataPoints = req.maxDataPoints || 1000;\n\n let data = new CircularDataFrame({\n append: 'tail',\n capacity: maxDataPoints,\n });\n data.refId = target.refId;\n data.name = target.alias || 'Fetch ' + target.refId;\n\n let reader: ReadableStreamDefaultReader<Uint8Array>;\n const csv = new CSVReader({\n callback: {\n onHeader: (fields: Field[]) => {\n // Clear any existing fields\n if (data.fields.length) {\n data = new CircularDataFrame({\n append: 'tail',\n capacity: maxDataPoints,\n });\n data.refId = target.refId;\n data.name = 'Fetch ' + target.refId;\n }\n for (const field of fields) {\n data.addField(field);\n }\n },\n onRow: (row) => {\n data.add(row);\n },\n },\n });\n\n const processChunk = async (\n value: ReadableStreamReadResult<Uint8Array>\n ): Promise<ReadableStreamReadResult<Uint8Array> | undefined> => {\n if (value.value) {\n const text = new TextDecoder().decode(value.value);\n csv.readCSV(text);\n }\n\n subscriber.next({\n data: [data],\n key: streamId,\n state: value.done ? LoadingState.Done : LoadingState.Streaming,\n });\n\n if (value.done) {\n console.log('Finished stream');\n subscriber.complete(); // necessary?\n return;\n }\n\n return reader.read().then(processChunk);\n };\n\n if (!query.url) {\n throw new Error('query.url is not defined');\n }\n\n fetch(new Request(query.url)).then((response) => {\n if (response.body) {\n reader = response.body.getReader();\n reader.read().then(processChunk);\n }\n });\n\n return () => {\n // Cancel fetch?\n console.log('unsubscribing to stream ' + streamId);\n };\n });\n}\n\nexport function runTracesStream(\n target: TestDataDataQuery,\n query: StreamingQuery,\n req: DataQueryRequest<TestDataDataQuery>\n): Observable<DataQueryResponse> {\n return new Observable<DataQueryResponse>((subscriber) => {\n const streamId = `traces-${req.panelId || 'explore'}-${target.refId}`;\n const data = createMainTraceFrame(target, req.maxDataPoints);\n let timeoutId: ReturnType<typeof setTimeout>;\n\n const pushNextEvent = () => {\n const subframe = createTraceSubFrame();\n addRow(subframe, [uuidv4(), Date.now(), 'Grafana', 1500]);\n addRow(data, [uuidv4(), Date.now(), 'Grafana', 'HTTP GET /explore', 1500, [subframe]]);\n\n subscriber.next({\n data: [data],\n key: streamId,\n state: LoadingState.Streaming,\n });\n\n timeoutId = setTimeout(pushNextEvent, query.speed);\n };\n\n // Send first event in 5ms\n setTimeout(pushNextEvent, 5);\n\n return () => {\n console.log('unsubscribing to stream ' + streamId);\n clearTimeout(timeoutId);\n };\n });\n}\n\nfunction createMainTraceFrame(target: TestDataDataQuery, maxDataPoints = 1000) {\n const data = new CircularDataFrame({\n append: 'head',\n capacity: maxDataPoints,\n });\n data.refId = target.refId;\n data.name = target.alias || 'Traces ' + target.refId;\n data.addField({ name: 'TraceID', type: FieldType.string });\n data.addField({ name: 'Start time', type: FieldType.time });\n data.addField({ name: 'Service', type: FieldType.string });\n data.addField({ name: 'Name', type: FieldType.string });\n data.addField({ name: 'Duration', type: FieldType.number, config: { unit: 'ms' } });\n data.addField({ name: 'nested', type: FieldType.nestedFrames });\n data.meta = {\n preferredVisualisationType: 'table',\n uniqueRowIdFields: [0],\n };\n return data;\n}\n\nfunction createTraceSubFrame() {\n const frame = createDataFrame({\n fields: [\n { name: 'SpanID', type: FieldType.string },\n { name: 'Start time', type: FieldType.time },\n { name: 'service.name', type: FieldType.string },\n { name: 'duration', type: FieldType.number },\n ],\n });\n\n // TODO: this should be removed later but right now there is an issue that applyFieldOverrides does not consider\n // nested frames.\n for (const f of frame.fields) {\n f.display = getDisplayProcessor({ field: f, theme });\n }\n return frame;\n}\n\nconst theme = createTheme();\n","import { FormEvent, useMemo } from 'react';\nimport { useAsync } from 'react-use';\n\nimport { QueryEditorProps, SelectableValue } from '@grafana/data';\nimport { selectors as editorSelectors } from '@grafana/e2e-selectors';\nimport { InlineField, InlineFieldRow, InlineSwitch, Input, Select, Icon, TextArea } from '@grafana/ui';\n\nimport { CSVContentEditor } from './components/CSVContentEditor';\nimport { CSVFileEditor } from './components/CSVFileEditor';\nimport { CSVWavesEditor } from './components/CSVWaveEditor';\nimport ErrorEditor from './components/ErrorEditor';\nimport ErrorWithSourceQueryEditor from './components/ErrorWithSourceEditor';\nimport { GrafanaLiveEditor } from './components/GrafanaLiveEditor';\nimport { NodeGraphEditor } from './components/NodeGraphEditor';\nimport { PredictablePulseEditor } from './components/PredictablePulseEditor';\nimport { RandomWalkEditor } from './components/RandomWalkEditor';\nimport { RawFrameEditor } from './components/RawFrameEditor';\nimport { SimulationQueryEditor } from './components/SimulationQueryEditor';\nimport { StreamingClientEditor } from './components/StreamingClientEditor';\nimport { USAQueryEditor, usaQueryModes } from './components/USAQueryEditor';\nimport { defaultCSVWaveQuery, defaultPulseQuery, defaultQuery } from './constants';\nimport { CSVWave, NodesQuery, TestDataDataQuery, TestDataQueryType, USAQuery } from './dataquery';\nimport { TestDataDataSource } from './datasource';\nimport { defaultStreamQuery } from './runStreams';\n\nconst endpoints = [\n { value: 'datasources', label: 'Data Sources' },\n { value: 'search', label: 'Search' },\n { value: 'annotations', label: 'Annotations' },\n];\n\nconst selectors = editorSelectors.components.DataSource.TestData.QueryTab;\n\nexport interface EditorProps {\n onChange: (value: any) => void;\n query: TestDataDataQuery;\n ds: TestDataDataSource;\n}\n\nexport type Props = QueryEditorProps<TestDataDataSource, TestDataDataQuery>;\n\nexport const QueryEditor = ({ query, datasource, onChange, onRunQuery }: Props) => {\n query = { ...defaultQuery, ...query };\n\n const { loading, value: scenarioList } = useAsync(async () => {\n // migrate manual_entry (unusable since 7, removed in 8)\n if (query.scenarioId === TestDataQueryType.ManualEntry && query.points) {\n let csvContent = 'Time,Value\\n';\n for (const point of query.points) {\n csvContent += `${point[1]},${point[0]}\\n`;\n }\n onChange({\n refId: query.refId,\n datasource: query.datasource,\n scenarioId: TestDataQueryType.CSVContent,\n csvContent,\n });\n }\n\n const vals = await datasource.getScenarios();\n const hideAlias = [TestDataQueryType.Simulation, TestDataQueryType.Annotations];\n return vals.map((v) => ({\n ...v,\n hideAliasField: hideAlias.includes(v.id as TestDataQueryType),\n }));\n }, []);\n\n const onUpdate = (query: TestDataDataQuery) => {\n onChange(query);\n onRunQuery();\n };\n\n const currentScenario = useMemo(\n () => scenarioList?.find((scenario) => scenario.id === query.scenarioId),\n [scenarioList, query]\n );\n const scenarioId = currentScenario?.id;\n const description = currentScenario?.description;\n\n const onScenarioChange = (item: SelectableValue<string>) => {\n const scenario = scenarioList?.find((sc) => sc.id === item.value);\n\n if (!scenario) {\n return;\n }\n\n // Clear model from existing props that belong to other scenarios\n const update: TestDataDataQuery = {\n scenarioId: item.value! as TestDataQueryType,\n refId: query.refId,\n alias: query.alias,\n datasource: query.datasource,\n };\n\n if (scenario.stringInput) {\n update.stringInput = scenario.stringInput;\n }\n\n switch (scenario.id) {\n case TestDataQueryType.GrafanaAPI:\n update.stringInput = 'datasources';\n break;\n case TestDataQueryType.StreamingClient:\n update.stream = defaultStreamQuery;\n break;\n case TestDataQueryType.Live:\n update.channel = 'random-2s-stream'; // default stream\n break;\n case TestDataQueryType.Simulation:\n update.sim = { key: { type: 'flight', tick: 10 } }; // default stream\n break;\n case TestDataQueryType.PredictablePulse:\n update.pulseWave = defaultPulseQuery;\n break;\n case TestDataQueryType.PredictableCSVWave:\n update.csvWave = defaultCSVWaveQuery;\n break;\n case TestDataQueryType.Annotations:\n update.lines = 10;\n break;\n case TestDataQueryType.Steps:\n update.csvContent = 'a\\nb\\nc\\n';\n break;\n case TestDataQueryType.USA:\n update.usa = {\n mode: usaQueryModes[0].value,\n };\n break;\n case TestDataQueryType.ErrorWithSource:\n update.errorSource = 'plugin';\n }\n\n onUpdate(update);\n };\n\n const onInputChange = (e: FormEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const { name, value, type } = e.currentTarget;\n let newValue: string | number | boolean = value;\n\n if (type === 'number') {\n newValue = Number(value);\n }\n\n if (name === 'levelColumn' && e.currentTarget instanceof HTMLInputElement) {\n newValue = e.currentTarget.checked;\n }\n\n onUpdate({ ...query, [name]: newValue });\n };\n\n const onFieldChange = (field: string) => (e: { target: { name: string; value: string; type: string } }) => {\n const { name, value, type } = e.target;\n let newValue: string | number = value;\n\n if (type === 'number') {\n newValue = Number(value);\n }\n\n onUpdate({ ...query, [field]: { ...(query as any)[field], [name]: newValue } });\n };\n\n const onEndPointChange = ({ value }: SelectableValue) => {\n onUpdate({ ...query, stringInput: value });\n };\n\n const onStreamClientChange = onFieldChange('stream');\n const onPulseWaveChange = onFieldChange('pulseWave');\n const onUSAStatsChange = (usa?: USAQuery) => {\n onUpdate({ ...query, usa });\n };\n\n const onCSVWaveChange = (csvWave?: CSVWave[]) => {\n onUpdate({ ...query, csvWave });\n };\n\n const options = useMemo(\n () =>\n (scenarioList || [])\n .map((item) => ({ label: item.name, value: item.id }))\n .sort((a, b) => a.label.localeCompare(b.label)),\n [scenarioList]\n );\n\n // Common options that can be added to various scenarios\n const show = useMemo(() => {\n const scenarioId = query.scenarioId ?? '';\n return {\n labels: ['random_walk', 'predictable_pulse'].includes(scenarioId),\n dropPercent: ['csv_content', 'csv_file'].includes(scenarioId),\n };\n }, [query?.scenarioId]);\n\n if (loading) {\n return null;\n }\n\n return (\n <>\n <InlineFieldRow aria-label={selectors.scenarioSelectContainer}>\n <InlineField labelWidth={14} label=\"Scenario\">\n <Select\n inputId={`test-data-scenario-select-${query.refId}`}\n options={options}\n value={options.find((item) => item.value === query.scenarioId)}\n onChange={onScenarioChange}\n width={32}\n />\n </InlineField>\n {currentScenario?.stringInput && (\n <InlineField label=\"String Input\">\n <Input\n width={32}\n id={`stringInput-${query.refId}`}\n name=\"stringInput\"\n placeholder={query.stringInput}\n value={query.stringInput}\n onChange={onInputChange}\n />\n </InlineField>\n )}\n {Boolean(!currentScenario?.hideAliasField) && (\n <InlineField label=\"Alias\" labelWidth={14}>\n <Input\n width={32}\n id={`alias-${query.refId}`}\n type=\"text\"\n placeholder=\"optional\"\n pattern='[^<>&\\\\\"]+'\n name=\"alias\"\n value={query.alias}\n onChange={onInputChange}\n />\n </InlineField>\n )}\n {show.dropPercent && (\n <InlineField label=\"Drop\" tooltip={'Drop a random set of points'}>\n <Input\n type=\"number\"\n min={0}\n max={100}\n step={5}\n width={8}\n onChange={onInputChange}\n name=\"dropPercent\"\n placeholder=\"0\"\n value={query.dropPercent}\n suffix={<Icon name=\"percentage\" />}\n />\n </InlineField>\n )}\n {show.labels && (\n <InlineField\n label=\"Labels\"\n labelWidth={14}\n tooltip={\n <>\n Set labels using a key=value syntax:\n <br />\n {`{ key = \"value\", key2 = \"value\" }`}\n <br />\n key="value", key2="value"\n <br />\n key=value, key2=value\n <br />\n Value can contain templates:\n <br />\n $seriesIndex - replaced with index of the series\n </>\n }\n >\n <Input\n width={32}\n id={`labels-${query.refId}`}\n name=\"labels\"\n onChange={onInputChange}\n value={query?.labels}\n placeholder=\"key=value, key2=value2\"\n />\n </InlineField>\n )}\n </InlineFieldRow>\n\n {scenarioId === TestDataQueryType.RandomWalk && (\n <RandomWalkEditor onChange={onInputChange} query={query} ds={datasource} />\n )}\n {scenarioId === TestDataQueryType.StreamingClient && (\n <StreamingClientEditor onChange={onStreamClientChange} query={query} ds={datasource} />\n )}\n {scenarioId === TestDataQueryType.Live && <GrafanaLiveEditor onChange={onUpdate} query={query} ds={datasource} />}\n {scenarioId === TestDataQueryType.Simulation && (\n <SimulationQueryEditor onChange={onUpdate} query={query} ds={datasource} />\n )}\n {scenarioId === TestDataQueryType.RawFrame && (\n <RawFrameEditor onChange={onUpdate} query={query} ds={datasource} />\n )}\n {scenarioId === TestDataQueryType.CSVFile && <CSVFileEditor onChange={onUpdate} query={query} ds={datasource} />}\n {scenarioId === TestDataQueryType.CSVContent && (\n <CSVContentEditor onChange={onUpdate} query={query} ds={datasource} />\n )}\n {scenarioId === TestDataQueryType.Steps && <CSVContentEditor onChange={onUpdate} query={query} ds={datasource} />}\n {scenarioId === TestDataQueryType.Logs && (\n <InlineFieldRow>\n <InlineField label=\"Lines\" labelWidth={14}>\n <Input\n type=\"number\"\n name=\"lines\"\n value={query.lines}\n width={32}\n onChange={onInputChange}\n placeholder=\"10\"\n />\n </InlineField>\n <InlineField label=\"Level\" labelWidth={14}>\n <InlineSwitch onChange={onInputChange} name=\"levelColumn\" value={!!query.levelColumn} />\n </InlineField>\n </InlineFieldRow>\n )}\n {scenarioId === TestDataQueryType.Annotations && (\n <InlineFieldRow>\n <InlineField label=\"Count\" labelWidth={14}>\n <Input\n type=\"number\"\n name=\"lines\"\n value={query.lines}\n width={32}\n onChange={onInputChange}\n placeholder=\"10\"\n />\n </InlineField>\n </InlineFieldRow>\n )}\n {scenarioId === TestDataQueryType.USA && <USAQueryEditor onChange={onUSAStatsChange} query={query.usa ?? {}} />}\n {scenarioId === TestDataQueryType.GrafanaAPI && (\n <InlineField labelWidth={14} label=\"Endpoint\">\n <Select\n options={endpoints}\n onChange={onEndPointChange}\n width={32}\n value={endpoints.find((ep) => ep.value === query.stringInput)}\n />\n </InlineField>\n )}\n\n {scenarioId === TestDataQueryType.Arrow && (\n <InlineField grow>\n <TextArea\n name=\"stringInput\"\n value={query.stringInput}\n rows={10}\n placeholder=\"Copy base64 text data from query result\"\n onChange={onInputChange}\n />\n </InlineField>\n )}\n\n {scenarioId === TestDataQueryType.FlameGraph && (\n <InlineField label={'Diff profile'} grow>\n <InlineSwitch\n value={Boolean(query.flamegraphDiff)}\n onChange={(e) => {\n onUpdate({ ...query, flamegraphDiff: e.currentTarget.checked });\n }}\n />\n </InlineField>\n )}\n\n {scenarioId === TestDataQueryType.PredictablePulse && (\n <PredictablePulseEditor onChange={onPulseWaveChange} query={query} ds={datasource} />\n )}\n {scenarioId === TestDataQueryType.PredictableCSVWave && (\n <CSVWavesEditor onChange={onCSVWaveChange} waves={query.csvWave} />\n )}\n {scenarioId === TestDataQueryType.NodeGraph && (\n <NodeGraphEditor onChange={(val: NodesQuery) => onChange({ ...query, nodes: val })} query={query} />\n )}\n {scenarioId === TestDataQueryType.ServerError500 && (\n <ErrorEditor onChange={onUpdate} query={query} ds={datasource} />\n )}\n {scenarioId === TestDataQueryType.Trace && (\n <InlineField labelWidth={14} label=\"Span count\">\n <Input\n type=\"number\"\n name=\"spanCount\"\n value={query.spanCount}\n width={32}\n onChange={onInputChange}\n placeholder=\"10\"\n />\n </InlineField>\n )}\n {scenarioId === TestDataQueryType.ErrorWithSource && (\n <ErrorWithSourceQueryEditor onChange={onUpdate} query={query} ds={datasource} />\n )}\n\n {description && <p>{description}</p>}\n </>\n );\n};\n","// Libraries\nimport { memo } from 'react';\n\nimport { PluginConfigPageProps, DataSourcePluginMeta, DataSourceJsonData } from '@grafana/data';\nimport { LinkButton } from '@grafana/ui';\n\n// Types\n\ninterface Props extends PluginConfigPageProps<DataSourcePluginMeta<DataSourceJsonData>> {}\n\nexport const TestInfoTab = memo<Props>(() => {\n return (\n <div>\n See github for more information about setting up a reproducible test environment.\n <br />\n <br />\n <LinkButton\n variant=\"secondary\"\n href=\"https://github.com/grafana/grafana/tree/main/devenv\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n GitHub\n </LinkButton>\n <br />\n </div>\n );\n});\n\nTestInfoTab.displayName = 'TestInfoTab';\n","export interface TreeNode {\n name: string;\n children: TreeNode[];\n}\n\n/*\n * Builds a nested tree like\n * [\n * {\n * name: 'A',\n * children: [\n * { name: 'AA', children: [] },\n * { name: 'AB', children: [] },\n * ]\n * }\n * ]\n */\nfunction buildMetricTree(parent: string, depth: number): TreeNode[] {\n const chars = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'];\n const children: TreeNode[] = [];\n\n if (depth > 5) {\n return [];\n }\n\n for (const letter of chars) {\n const nodeName = `${parent}${letter}`;\n children.push({\n name: nodeName,\n children: buildMetricTree(nodeName, depth + 1),\n });\n }\n\n return children;\n}\n\nfunction queryTree(children: TreeNode[], query: string[], queryIndex: number): TreeNode[] {\n if (queryIndex >= query.length) {\n return children;\n }\n\n if (query[queryIndex] === '*') {\n return children;\n }\n\n const nodeQuery = query[queryIndex];\n let result: TreeNode[] = [];\n let namesToMatch = [nodeQuery];\n\n // handle glob queries\n if (nodeQuery.startsWith('{')) {\n namesToMatch = nodeQuery.replace(/\\{|\\}/g, '').split(',');\n }\n\n for (const node of children) {\n for (const nameToMatch of namesToMatch) {\n if (nameToMatch.indexOf('*') !== -1) {\n const pattern = nameToMatch.replace('*', '');\n const regex = new RegExp(`^${pattern}.*`, 'gi');\n if (regex.test(node.name)) {\n result = result.concat(queryTree([node], query, queryIndex + 1));\n }\n } else if (node.name === nameToMatch) {\n result = result.concat(queryTree(node.children, query, queryIndex + 1));\n }\n }\n }\n\n return result;\n}\n\nexport function queryMetricTree(query: string): TreeNode[] {\n if (query.indexOf('value') === 0) {\n return [{ name: query, children: [] }];\n }\n\n const children = buildMetricTree('', 0);\n return queryTree(children, query.split('.'), 0);\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst mul = 0x19660D;\nconst inc = 0x3C6EF35F;\nconst eps = 1 / 0x100000000;\n\nexport default function lcg(seed = Math.random()) {\n let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;\n return () => (state = mul * state + inc | 0, eps * (state >>> 0));\n}\n","import { FieldColorModeId, FieldType, NodeGraphDataFrameFieldNames } from '@grafana/data';\n\nexport const nodes = {\n fields: [\n {\n name: NodeGraphDataFrameFieldNames.id,\n type: FieldType.string,\n config: {\n links: [\n {\n title: 'Traces/All',\n url: '',\n internal: {\n query: {\n queryType: 'getTraceSummaries',\n query: 'service(id(name: \"${__data.fields.name}\", type: \"${__data.fields.type}\"))',\n },\n datasourceUid: 'Ax4erxHGz',\n datasourceName: 'Trace data source',\n },\n },\n {\n title: 'Traces/OK',\n url: '',\n internal: {\n query: {\n queryType: 'getTraceSummaries',\n query: 'service(id(name: \"${__data.fields.name}\", type: \"${__data.fields.type}\")) { ok = true }',\n },\n datasourceUid: 'Ax4erxHGz',\n datasourceName: 'Trace data source',\n },\n },\n {\n title: 'Traces/Errors',\n url: '',\n internal: {\n query: {\n queryType: 'getTraceSummaries',\n query: 'service(id(name: \"${__data.fields.name}\", type: \"${__data.fields.type}\")) { error = true }',\n },\n datasourceUid: 'Ax4erxHGz',\n datasourceName: 'Trace data source',\n },\n },\n {\n title: 'Traces/Faults',\n url: '',\n internal: {\n query: {\n queryType: 'getTraceSummaries',\n query: 'service(id(name: \"${__data.fields.name}\", type: \"${__data.fields.type}\")) { fault = true }',\n },\n datasourceUid: 'Ax4erxHGz',\n datasourceName: 'Trace data source',\n },\n },\n ],\n },\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n },\n {\n name: NodeGraphDataFrameFieldNames.title,\n type: FieldType.string,\n config: { displayName: 'Name' },\n values: [\n 'auth',\n 'products',\n 'customers',\n 'orders',\n 'products',\n 'orders',\n 'api',\n 'shipping',\n 'orders',\n 'execute-api',\n 'shipping',\n 'www',\n 'api',\n 'www',\n 'products',\n 'test-client',\n 'test-api',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.subTitle,\n type: FieldType.string,\n config: { displayName: 'Type' },\n values: [\n 'Compute',\n 'SQL',\n 'SQL',\n 'SQL',\n 'remote',\n 'Function',\n 'Compute',\n 'Function',\n 'Function',\n 'remote',\n 'Function',\n 'Compute',\n 'client',\n 'client',\n 'Compute',\n 'ephemeral',\n 'ephemeral-api',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.mainStat,\n type: FieldType.number,\n config: { unit: 'ms/t', displayName: 'Average response time' },\n values: [\n 3.5394042646735553, 15.906441318223264, 4.913011921591567, 7.4163203042094095, 1092, 22.85961441405067,\n 56.135855729084696, 4.45946191601527, 12.818300278280843, 4.25, 12.565442646791492, 77.63447512700567,\n 40.387096774193544, 77.63447512700567, 27.648950187374872, 77.63447512700567, 27.648950187374872,\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.secondaryStat,\n type: FieldType.number,\n config: { unit: 't/min', displayName: 'Transactions per minute' },\n values: [\n 50.56317154501667, 682.4, 512.8416666666667, 125.64444444444445, 0.005585812037424941, 137.59722222222223,\n 300.0527777777778, 30.582348853370394, 125.77222222222223, 0.028706417080318163, 30.582348853370394, 165.675,\n 0.100021510002151, 165.675, 162.33055555555555, 165.675, 162.33055555555555,\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.arc + 'success',\n type: FieldType.number,\n config: { color: { mode: FieldColorModeId.Fixed, fixedColor: 'green' }, displayName: 'Sucesss' },\n values: [\n 0.9338865684765882, 1, 1, 1, 0.5, 1, 0.9901128505170387, 0.9069260134520997, 1, 0, 0.9069260134520997,\n 0.9624432037288534, 0, 0.9624432037288534, 0.9824945669843769, 0.9624432037288534, 0.9824945669843769,\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.arc + 'faults',\n type: FieldType.number,\n config: { color: { mode: FieldColorModeId.Fixed, fixedColor: 'red' }, displayName: 'Faults' },\n values: [\n 0, 0, 0, 0, 0.5, 0, 0.009479813736472288, 0, 0, 0, 0, 0.017168821152524185, 0, 0.017168821152524185,\n 0.01750543301562313, 0.017168821152524185, 0.01750543301562313,\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.arc + 'errors',\n type: FieldType.number,\n config: { color: { mode: FieldColorModeId.Fixed, fixedColor: 'semi-dark-yellow' }, displayName: 'Errors' },\n values: [\n 0.06611343152341174, 0, 0, 0, 0, 0, 0.0004073357464890436, 0.09307398654790038, 0, 1, 0.09307398654790038,\n 0.02038797511862247, 1, 0.02038797511862247, 0, 0.02038797511862247, 0,\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.arc + 'throttled',\n type: FieldType.number,\n config: { color: { mode: FieldColorModeId.Fixed, fixedColor: 'purple' }, displayName: 'Throttled' },\n values: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n ],\n meta: { preferredVisualisationType: 'nodeGraph' as const },\n name: 'nodes',\n};\n\nexport const edges = {\n fields: [\n {\n name: NodeGraphDataFrameFieldNames.id,\n type: FieldType.string,\n config: {\n links: [\n {\n title: 'Traces/All',\n url: '',\n internal: {\n query: {\n queryType: 'getTraceSummaries',\n query: 'edge(\"${__data.fields.sourceName}\", \"${__data.fields.targetName}\")',\n },\n datasourceUid: 'Ax4erxHGz',\n datasourceName: 'Trace data source',\n },\n },\n {\n title: 'Traces/OK',\n url: '',\n internal: {\n query: {\n queryType: 'getTraceSummaries',\n query: 'edge(\"${__data.fields.sourceName}\", \"${__data.fields.targetName}\") { ok = true }',\n },\n datasourceUid: 'Ax4erxHGz',\n datasourceName: 'Trace data source',\n },\n },\n {\n title: 'Traces/Errors',\n url: '',\n internal: {\n query: {\n queryType: 'getTraceSummaries',\n query: 'edge(\"${__data.fields.sourceName}\", \"${__data.fields.targetName}\") { error = true }',\n },\n datasourceUid: 'Ax4erxHGz',\n datasourceName: 'Trace data source',\n },\n },\n {\n title: 'Traces/Faults',\n url: '',\n internal: {\n query: {\n queryType: 'getTraceSummaries',\n query: 'edge(\"${__data.fields.sourceName}\", \"${__data.fields.targetName}\") { fault = true }',\n },\n datasourceUid: 'Ax4erxHGz',\n datasourceName: 'Trace data source',\n },\n },\n ],\n },\n values: [\n '0__2',\n '5__8',\n '6__0',\n '6__5',\n '6__9',\n '6__2',\n '6__14',\n '6__4',\n '8__3',\n '10__7',\n '11__0',\n '11__6',\n '12__6',\n '13__11',\n '14__1',\n '14__2',\n '14__10',\n '15__16',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.source,\n type: FieldType.string,\n config: {},\n values: [0, 5, 6, 6, 6, 6, 6, 6, 8, 10, 11, 11, 12, 13, 14, 14, 14, 15],\n },\n {\n name: 'sourceName',\n type: FieldType.string,\n config: {},\n values: [\n 'auth',\n 'orders',\n 'api',\n 'api',\n 'api',\n 'api',\n 'api',\n 'api',\n 'orders',\n 'shipping',\n 'www',\n 'www',\n 'api',\n 'www',\n 'products',\n 'products',\n 'products',\n 'test-client',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.target,\n type: FieldType.string,\n config: {},\n values: [2, 8, 0, 5, 9, 2, 14, 4, 3, 7, 0, 6, 6, 11, 1, 2, 10, 16],\n },\n {\n name: 'targetName',\n type: FieldType.string,\n config: {},\n values: [\n 'customers',\n 'orders',\n 'auth',\n 'orders',\n 'execute-api',\n 'customers',\n 'products',\n 'products',\n 'orders',\n 'shipping',\n 'auth',\n 'api',\n 'api',\n 'www',\n 'products',\n 'customers',\n 'shipping',\n 'test-api',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.mainStat,\n type: FieldType.string,\n config: { displayName: 'Response percentage' },\n values: [\n 'Success 100.00%',\n 'Success 100.00%',\n 'Success 100.00%',\n 'Success 100.00%',\n 'Errors 100.00%',\n 'Success 100.00%',\n 'Faults 1.75%',\n 'Faults 50.00%',\n 'Success 100.00%',\n 'Errors 9.31%',\n 'Errors 6.62%',\n 'Faults 1.13%',\n 'Errors 100.00%',\n 'Faults 1.72%',\n 'Success 100.00%',\n 'Success 100.00%',\n 'Faults 9.30%',\n 'Faults 9.30%',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.secondaryStat,\n type: FieldType.number,\n config: { unit: 't/min', displayName: 'Transactions per minute' },\n values: [\n 50.56317154501667, 125.77222222222223, 0.03333333333333333, 137.59722222222223, 0.022222222222222223,\n 299.96666666666664, 162.33055555555555, 0.005555555555555556, 125.64444444444445, 30.582348853370394,\n 50.51111111111111, 299.9166666666667, 0.100021510002151, 165.675, 682.4, 162.33055555555555, 30.558333333333334,\n 30.558333333333334,\n ],\n },\n ],\n meta: { preferredVisualisationType: 'nodeGraph' as const },\n name: 'edges',\n};\n","import { FieldType, NodeGraphDataFrameFieldNames } from '@grafana/data';\n\nexport const nodes = {\n fields: [\n {\n name: NodeGraphDataFrameFieldNames.id,\n type: FieldType.string,\n values: [\n '0',\n 'candycon2000',\n 'pantry-summary',\n 'compute-splines-api',\n 'send-notification',\n 'popcorn-distributor',\n 'caramel-gateway',\n 'candy-distributor',\n 'candy-query-frontend',\n 'candy-ruler',\n 'candy-querier',\n 'candy-chocolate-querier',\n 'candy-backend',\n 'candy-read',\n 'candy-write',\n 'popcorn-backend',\n 'popcorn-query-frontend',\n 'proxy-reads',\n 'proxy-gateway',\n 'proxy-writes',\n 'dentist',\n 'fudge-proxy-gateway',\n 'candy-admin-api',\n 'candy-disposer',\n 'candy-ingester',\n 'candy-gateway',\n 'candy-chocolate-write-proxy',\n 'candy-store-gateway',\n 'popcorn-querier',\n 'candy-query-scheduler',\n 'api',\n 'controller',\n 'gateway',\n 'db',\n 'marshmallow-popcorn-plugin',\n 'eggnog-query',\n 'licorice-ingester',\n 'licorice-distributor',\n 'licorice-gateway',\n 'licorice-querier',\n 'licorice-query-frontend',\n 'licorice-ruler',\n 'licorice-read',\n 'licorice-write',\n 'licorice-sugar-gateway',\n 'licorice-query-scheduler',\n 'popcorn-ingester',\n 'popcorn-ruler',\n 'peanutapi',\n 'almondapi',\n 'worker',\n 'toffee-gateway',\n 'marshmallow-gateway',\n 'toffee-proxy-gateway',\n 'mints-distributor',\n 'mints-agent',\n 'mints-ingester',\n 'marshmallow-query-frontend',\n 'marshmallow-ingester',\n 'marshmallow-querier',\n 'eating-scheduler',\n 'calorie-generator',\n 'candy-packaging-exporter',\n 'candy-manager',\n 'overeat-gateway',\n 'wrappers-api',\n 'overeat_api',\n 'licorice-admin-api',\n 'almond',\n 'almondops-gateway',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.title,\n config: {\n displayName: 'Service name',\n },\n type: FieldType.string,\n values: [\n '0',\n 'candycon2000',\n 'pantry-summary',\n 'compute-splines-api',\n 'send-notification',\n 'popcorn-distributor',\n 'caramel-gateway',\n 'candy-distributor',\n 'candy-query-frontend',\n 'candy-ruler',\n 'candy-querier',\n 'candy-chocolate-querier',\n 'candy-backend',\n 'candy-read',\n 'candy-write',\n 'popcorn-backend',\n 'popcorn-query-frontend',\n 'proxy-reads',\n 'proxy-gateway',\n 'proxy-writes',\n 'dentist',\n 'fudge-proxy-gateway',\n 'candy-admin-api',\n 'candy-disposer',\n 'candy-ingester',\n 'candy-gateway',\n 'candy-chocolate-write-proxy',\n 'candy-store-gateway',\n 'popcorn-querier',\n 'candy-query-scheduler',\n 'api',\n 'controller',\n 'gateway',\n 'db',\n 'marshmallow-popcorn-plugin',\n 'eggnog-query',\n 'licorice-ingester',\n 'licorice-distributor',\n 'licorice-gateway',\n 'licorice-querier',\n 'licorice-query-frontend',\n 'licorice-ruler',\n 'licorice-read',\n 'licorice-write',\n 'licorice-sugar-gateway',\n 'licorice-query-scheduler',\n 'popcorn-ingester',\n 'popcorn-ruler',\n 'peanutapi',\n 'almondapi',\n 'worker',\n 'toffee-gateway',\n 'marshmallow-gateway',\n 'toffee-proxy-gateway',\n 'mints-distributor',\n 'mints-agent',\n 'mints-ingester',\n 'marshmallow-query-frontend',\n 'marshmallow-ingester',\n 'marshmallow-querier',\n 'eating-scheduler',\n 'calorie-generator',\n 'candy-packaging-exporter',\n 'candy-manager',\n 'overeat-gateway',\n 'wrappers-api',\n 'overeat_api',\n 'licorice-admin-api',\n 'almond',\n 'almondops-gateway',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.mainStat,\n config: {\n unit: 'ms/r',\n displayName: 'Average response time',\n },\n type: FieldType.number,\n values: [\n 0.3792332384891563,\n 0.8672229016348518,\n null,\n 16.20695699632165,\n 39.928285334583585,\n 9.655124202033475,\n 21.05268555627574,\n 5.867123115073844,\n 2.4860418856893776,\n 355.53214166441546,\n 20.55178572103791,\n null,\n 38.89817349596472,\n 8.180751216025271,\n 0.8054812870678301,\n 40.77678203483556,\n 85.482797395998,\n 16.27026063145621,\n null,\n 19.87661445917064,\n 0.22942839760131845,\n null,\n null,\n null,\n 0.5613453804178244,\n null,\n null,\n 8.992145179555344,\n 304.9330783211414,\n null,\n 10.395531440216706,\n null,\n null,\n null,\n 0.015141602590812384,\n null,\n 2516.1181289425012,\n 1.753552009081408,\n 2.18723509171844,\n 2042.6033859578174,\n 35.584947433232884,\n 12.650689593313736,\n 11469.63275426663,\n 10032.233577903402,\n 2.7579124143530875,\n null,\n 12.313124260662056,\n null,\n 449.2619110960284,\n null,\n 457.68439141665425,\n 4.200223281332062,\n 3.22412985358373,\n null,\n 16.03316977154454,\n null,\n 5.830408312271875,\n 1460.8431543525896,\n 6.379590630002257,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.secondaryStat,\n config: {\n unit: 'r/sec',\n displayName: 'Requests per second',\n },\n type: FieldType.number,\n values: [\n 0,\n 0,\n null,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0.01,\n 0,\n 0.01,\n null,\n 0,\n 0,\n 0.02,\n 0,\n 0,\n 0,\n null,\n 0,\n 0,\n null,\n null,\n null,\n 0.1,\n null,\n null,\n 0,\n 0,\n null,\n 0,\n null,\n null,\n null,\n 0,\n null,\n 0.06,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n null,\n 0,\n null,\n 0,\n null,\n 0,\n 0,\n 0,\n null,\n 0,\n null,\n 0,\n 0,\n 0,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n ],\n },\n {\n name: 'arc__success',\n config: {\n displayName: 'Success',\n color: {\n fixedColor: 'green',\n mode: 'fixed',\n },\n },\n type: FieldType.number,\n values: [\n 1, 1, 1, 1, 0, 1, 0.999931271795046, 0.9999982854540072, 0.9999993106537873, 1, 0.9999988795927239, 1,\n 0.9984939706365067, 0.9999936988458762, 0.9374731810143394, 0.9981691514900277, 1, 1, 1, 0.6918050349578433, 1,\n 1, 1, 1, 0.9649904403274051, 1, 1, 0.996693264215713, 0.9990646675327494, 1, 0.989711501101388, 1, 1, 1, 1, 1,\n 0.974376082211577, 1, 1, 0.9979501689527777, 0.9999554801847671, 0.7997517799066115, 0.998393334495106,\n 0.8077280841753209, 0.9999889402832068, 1, 0.9267936098112096, 1, 0.9678190225122817, 1, 0.9664342727367723, 1,\n 1, 1, 1, 1, 1, 0.49879813934581896, 0.8514429797914538, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n ],\n },\n {\n name: 'arc__failed',\n config: {\n displayName: 'Failed',\n color: {\n fixedColor: 'red',\n mode: 'fixed',\n },\n },\n type: FieldType.number,\n values: [\n 0, 0, 0, 0, 1, 0, 0.00006872820495400671, 0.0000017145459928594954, 6.893462126672767e-7, 0,\n 0.000001120407275990985, 0, 0.001506029363493422, 0.000006301154123861364, 0.06252681898566055,\n 0.0018308485099723893, 0, 0, 0, 0.30819496504215677, 0, 0, 0, 0, 0.03500955967259495, 0, 0,\n 0.0033067357842869243, 0.0009353324672505954, 0, 0.01028849889861211, 0, 0, 0, 0, 0, 0.025623917788423094, 0, 0,\n 0.002049831047222383, 0.00004451981523281711, 0.20024822009338844, 0.001606665504893849, 0.19227191582467903,\n 0.000011059716793143872, 0, 0.07320639018879034, 0, 0.032180977487718344, 0, 0.03356572726322771, 0, 0, 0, 0, 0,\n 0, 0.501201860654181, 0.14855702020854625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ],\n },\n ],\n meta: { preferredVisualisationType: 'nodeGraph' as const },\n name: 'nodes',\n};\n\nexport const edges = {\n fields: [\n {\n name: NodeGraphDataFrameFieldNames.id,\n type: FieldType.string,\n values: [\n 'pantry-summary_candycon2000',\n 'compute-splines-api_candycon2000',\n 'compute-splines-api_send-notification',\n 'caramel-gateway_popcorn-distributor',\n 'caramel-gateway_candy-distributor',\n 'caramel-gateway_candy-query-frontend',\n 'caramel-gateway_candy-ruler',\n 'caramel-gateway_caramel-gateway',\n 'caramel-gateway_candy-querier',\n 'caramel-gateway_candy-chocolate-querier',\n 'caramel-gateway_candy-backend',\n 'caramel-gateway_candy-read',\n 'caramel-gateway_candy-write',\n 'caramel-gateway_popcorn-backend',\n 'caramel-gateway_popcorn-query-frontend',\n 'proxy-gateway_proxy-reads',\n 'proxy-gateway_proxy-writes',\n 'proxy-reads_caramel-gateway',\n 'proxy-writes_caramel-gateway',\n 'fudge-proxy-gateway_dentist',\n 'candy-admin-api_candy-distributor',\n 'candy-backend_candy-read',\n 'candy-backend_candy-write',\n 'candy-disposer_candy-distributor',\n 'candy-distributor_candy-ingester',\n 'candy-distributor_candy-distributor',\n 'candy-gateway_candy-admin-api',\n 'candy-gateway_candy-distributor',\n 'candy-gateway_candy-query-frontend',\n 'candy-chocolate-write-proxy_caramel-gateway',\n 'candy-ingester_candy-distributor',\n 'candy-querier_candy-ingester',\n 'candy-querier_candy-query-frontend',\n 'candy-querier_candy-store-gateway',\n 'candy-querier_candy-distributor',\n 'candy-query-frontend_candy-querier',\n 'candy-query-frontend_popcorn-querier',\n 'candy-query-frontend_candy-distributor',\n 'candy-query-scheduler_candy-distributor',\n 'candy-read_candy-backend',\n 'candy-read_candy-read',\n 'candy-read_candy-write',\n 'candy-read_popcorn-backend',\n 'candy-ruler_candy-ruler',\n 'candy-ruler_candy-ingester',\n 'candy-ruler_candy-query-frontend',\n 'candy-ruler_candy-distributor',\n 'candy-write_candy-write',\n 'controller_api',\n 'gateway_api',\n 'db_api',\n 'eggnog-query_marshmallow-popcorn-plugin',\n 'licorice-distributor_licorice-ingester',\n 'licorice-gateway_licorice-distributor',\n 'licorice-gateway_licorice-querier',\n 'licorice-gateway_licorice-query-frontend',\n 'licorice-gateway_licorice-ruler',\n 'licorice-gateway_licorice-read',\n 'licorice-gateway_licorice-write',\n 'licorice-querier_licorice-sugar-gateway',\n 'licorice-querier_licorice-ingester',\n 'licorice-querier_licorice-query-frontend',\n 'licorice-query-frontend_licorice-querier',\n 'licorice-query-scheduler_licorice-query-frontend',\n 'licorice-read_licorice-read',\n 'licorice-read_licorice-write',\n 'licorice-ruler_licorice-ingester',\n 'licorice-ruler_licorice-sugar-gateway',\n 'licorice-ruler_licorice-ruler',\n 'licorice-write_licorice-write',\n 'popcorn-backend_candy-read',\n 'popcorn-backend_candy-write',\n 'popcorn-distributor_candy-ingester',\n 'popcorn-distributor_popcorn-ingester',\n 'popcorn-querier_candy-ingester',\n 'popcorn-querier_candy-query-frontend',\n 'popcorn-querier_candy-store-gateway',\n 'popcorn-querier_popcorn-ingester',\n 'popcorn-querier_popcorn-query-frontend',\n 'popcorn-query-frontend_popcorn-querier',\n 'popcorn-ruler_candy-ingester',\n 'popcorn-ruler_popcorn-query-frontend',\n 'almondapi_peanutapi',\n 'peanutapi_0',\n 'peanutapi_worker',\n 'toffee-gateway_licorice-gateway',\n 'toffee-gateway_marshmallow-gateway',\n 'toffee-proxy-gateway_toffee-gateway',\n 'mints-agent_mints-distributor',\n 'mints-distributor_mints-ingester',\n 'marshmallow-gateway_marshmallow-query-frontend',\n 'marshmallow-querier_marshmallow-ingester',\n 'eating-scheduler_peanutapi',\n 'calorie-generator_compute-splines-api',\n 'worker_0',\n 'worker_worker',\n 'candy-backend_candy-backend',\n 'candy-gateway_candy-ruler',\n 'candy-packaging-exporter_candy-distributor',\n 'caramel-gateway_candy-chocolate-write-proxy',\n 'candy-manager_candy-distributor',\n 'candy-backend_popcorn-backend',\n 'candy-gateway_candy-manager',\n 'candy-gateway_candy-querier',\n 'candy-gateway_candy-store-gateway',\n 'candy-gateway_candy-disposer',\n 'candy-query-scheduler_candy-query-frontend',\n 'candy-store-gateway_candy-distributor',\n 'api_gateway',\n 'gateway_overeat-gateway',\n 'gateway_wrappers-api',\n 'overeat-gateway_overeat_api',\n 'overeat_api_gateway',\n 'wrappers-api_caramel-gateway',\n 'licorice-gateway_licorice-admin-api',\n 'popcorn-backend_popcorn-backend',\n 'popcorn-backend_candy-backend',\n 'almondops-gateway_almond',\n 'marshmallow-gateway_marshmallow-querier',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.source,\n type: FieldType.string,\n config: {},\n values: [\n 'pantry-summary',\n 'compute-splines-api',\n 'compute-splines-api',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'caramel-gateway',\n 'proxy-gateway',\n 'proxy-gateway',\n 'proxy-reads',\n 'proxy-writes',\n 'fudge-proxy-gateway',\n 'candy-admin-api',\n 'candy-backend',\n 'candy-backend',\n 'candy-disposer',\n 'candy-distributor',\n 'candy-distributor',\n 'candy-gateway',\n 'candy-gateway',\n 'candy-gateway',\n 'candy-chocolate-write-proxy',\n 'candy-ingester',\n 'candy-querier',\n 'candy-querier',\n 'candy-querier',\n 'candy-querier',\n 'candy-query-frontend',\n 'candy-query-frontend',\n 'candy-query-frontend',\n 'candy-query-scheduler',\n 'candy-read',\n 'candy-read',\n 'candy-read',\n 'candy-read',\n 'candy-ruler',\n 'candy-ruler',\n 'candy-ruler',\n 'candy-ruler',\n 'candy-write',\n 'controller',\n 'gateway',\n 'db',\n 'eggnog-query',\n 'licorice-distributor',\n 'licorice-gateway',\n 'licorice-gateway',\n 'licorice-gateway',\n 'licorice-gateway',\n 'licorice-gateway',\n 'licorice-gateway',\n 'licorice-querier',\n 'licorice-querier',\n 'licorice-querier',\n 'licorice-query-frontend',\n 'licorice-query-scheduler',\n 'licorice-read',\n 'licorice-read',\n 'licorice-ruler',\n 'licorice-ruler',\n 'licorice-ruler',\n 'licorice-write',\n 'popcorn-backend',\n 'popcorn-backend',\n 'popcorn-distributor',\n 'popcorn-distributor',\n 'popcorn-querier',\n 'popcorn-querier',\n 'popcorn-querier',\n 'popcorn-querier',\n 'popcorn-querier',\n 'popcorn-query-frontend',\n 'popcorn-ruler',\n 'popcorn-ruler',\n 'almondapi',\n 'peanutapi',\n 'peanutapi',\n 'toffee-gateway',\n 'toffee-gateway',\n 'toffee-proxy-gateway',\n 'mints-agent',\n 'mints-distributor',\n 'marshmallow-gateway',\n 'marshmallow-querier',\n 'eating-scheduler',\n 'calorie-generator',\n 'worker',\n 'worker',\n 'candy-backend',\n 'candy-gateway',\n 'candy-packaging-exporter',\n 'caramel-gateway',\n 'candy-manager',\n 'candy-backend',\n 'candy-gateway',\n 'candy-gateway',\n 'candy-gateway',\n 'candy-gateway',\n 'candy-query-scheduler',\n 'candy-store-gateway',\n 'api',\n 'gateway',\n 'gateway',\n 'overeat-gateway',\n 'overeat_api',\n 'wrappers-api',\n 'licorice-gateway',\n 'popcorn-backend',\n 'popcorn-backend',\n 'almondops-gateway',\n 'marshmallow-gateway',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.target,\n type: FieldType.string,\n config: {},\n values: [\n 'candycon2000',\n 'candycon2000',\n 'send-notification',\n 'popcorn-distributor',\n 'candy-distributor',\n 'candy-query-frontend',\n 'candy-ruler',\n 'caramel-gateway',\n 'candy-querier',\n 'candy-chocolate-querier',\n 'candy-backend',\n 'candy-read',\n 'candy-write',\n 'popcorn-backend',\n 'popcorn-query-frontend',\n 'proxy-reads',\n 'proxy-writes',\n 'caramel-gateway',\n 'caramel-gateway',\n 'dentist',\n 'candy-distributor',\n 'candy-read',\n 'candy-write',\n 'candy-distributor',\n 'candy-ingester',\n 'candy-distributor',\n 'candy-admin-api',\n 'candy-distributor',\n 'candy-query-frontend',\n 'caramel-gateway',\n 'candy-distributor',\n 'candy-ingester',\n 'candy-query-frontend',\n 'candy-store-gateway',\n 'candy-distributor',\n 'candy-querier',\n 'popcorn-querier',\n 'candy-distributor',\n 'candy-distributor',\n 'candy-backend',\n 'candy-read',\n 'candy-write',\n 'popcorn-backend',\n 'candy-ruler',\n 'candy-ingester',\n 'candy-query-frontend',\n 'candy-distributor',\n 'candy-write',\n 'api',\n 'api',\n 'api',\n 'marshmallow-popcorn-plugin',\n 'licorice-ingester',\n 'licorice-distributor',\n 'licorice-querier',\n 'licorice-query-frontend',\n 'licorice-ruler',\n 'licorice-read',\n 'licorice-write',\n 'licorice-sugar-gateway',\n 'licorice-ingester',\n 'licorice-query-frontend',\n 'licorice-querier',\n 'licorice-query-frontend',\n 'licorice-read',\n 'licorice-write',\n 'licorice-ingester',\n 'licorice-sugar-gateway',\n 'licorice-ruler',\n 'licorice-write',\n 'candy-read',\n 'candy-write',\n 'candy-ingester',\n 'popcorn-ingester',\n 'candy-ingester',\n 'candy-query-frontend',\n 'candy-store-gateway',\n 'popcorn-ingester',\n 'popcorn-query-frontend',\n 'popcorn-querier',\n 'candy-ingester',\n 'popcorn-query-frontend',\n 'peanutapi',\n '0',\n 'worker',\n 'licorice-gateway',\n 'marshmallow-gateway',\n 'toffee-gateway',\n 'mints-distributor',\n 'mints-ingester',\n 'marshmallow-query-frontend',\n 'marshmallow-ingester',\n 'peanutapi',\n 'compute-splines-api',\n '0',\n 'worker',\n 'candy-backend',\n 'candy-ruler',\n 'candy-distributor',\n 'candy-chocolate-write-proxy',\n 'candy-distributor',\n 'popcorn-backend',\n 'candy-manager',\n 'candy-querier',\n 'candy-store-gateway',\n 'candy-disposer',\n 'candy-query-frontend',\n 'candy-distributor',\n 'gateway',\n 'overeat-gateway',\n 'wrappers-api',\n 'overeat_api',\n 'gateway',\n 'caramel-gateway',\n 'licorice-admin-api',\n 'popcorn-backend',\n 'candy-backend',\n 'almond',\n 'marshmallow-querier',\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.mainStat,\n config: {\n unit: 'ms/r',\n displayName: 'Average response time',\n },\n type: FieldType.number,\n values: [\n 0.9961658833566494,\n 0.6756011854064742,\n 39.928285334583585,\n 9.655124202033475,\n 9.876837578844937,\n 81.6959176729049,\n 552.378420528502,\n 34.02406743798451,\n 2.7907819532876537,\n null,\n 1210.5999270997852,\n 40.22305442474939,\n 11.008270340421854,\n 1163.33527417596,\n 199.9200764328362,\n 16.27026063145621,\n 19.87661445917064,\n 7.9747137654137195,\n 20.135808118892268,\n 0.22942839760131845,\n 11.6566561294579,\n 75.22426032984903,\n 0.7326871862490554,\n 10.591500091052806,\n 0.43709820361586454,\n 7.681333333333334,\n null,\n 5.743161551306568,\n 22.56587650604559,\n 31.38290115791745,\n 11.375645375977152,\n 0.5974877233841939,\n 0.020271039373167783,\n 8.891949445529226,\n 10.293999999999995,\n 20.582963262267164,\n 405.7442187685195,\n 8.522692621843909,\n 6.924993219513745,\n 34.39516266769771,\n 5.952498150615941,\n 0.7842759237283988,\n 37.01067693570632,\n 6.956706372103876,\n 1.2689668998692378,\n 66.66971283621828,\n 13.622246129080805,\n 0.9078908605310487,\n 0.8179566076701271,\n 1.101057295936026,\n 19.887110234592154,\n 0.015141602590812384,\n 0.16393403903361325,\n 1.753552009081408,\n 1531278.5796188207,\n 46.231810748849455,\n 24.54774899949519,\n 345061.91461907607,\n 3.1331808761849147,\n 2.764448605690192,\n 2759.490189311903,\n 0.019420568056168524,\n 30.83859939288313,\n 0.026999999999999993,\n 2.405242467897073,\n 14607.641090479348,\n 11.449968675469439,\n 0.33363793667426944,\n 0.15786000187388566,\n 0.585213874210476,\n 41.39677023252635,\n 0.12979907013653832,\n 2.5827714948826848,\n 6.868234219946023,\n 21.107071160645475,\n 0.053417204821597085,\n 61.770970442855806,\n 42.998532007278904,\n 0.041043219084661645,\n 217.39742114991702,\n 0.21606213948511854,\n 13.174790215465455,\n 459.42768834463334,\n 0.30539630255527017,\n 447.5818111167013,\n 2.18723509171844,\n 3.22412985358373,\n 4.200223281332062,\n 16.03316977154454,\n 5.830408312271875,\n 1460.8431543525896,\n 6.379590630002257,\n 37.46723333208206,\n 16.20695699632165,\n 0.4593149548828589,\n 2693.186775574188,\n 0.034024049217002236,\n 196.843,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n ],\n },\n {\n name: NodeGraphDataFrameFieldNames.secondaryStat,\n config: {\n unit: 'r/sec',\n displayName: 'Requests per second',\n },\n type: FieldType.number,\n values: [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n null,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0.03,\n 0,\n null,\n 0,\n 0,\n 0,\n 0,\n 0.07,\n 0.01,\n 0,\n 0,\n 0.01,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0.02,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0.05,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n ],\n },\n ],\n meta: { preferredVisualisationType: 'nodeGraph' as const },\n name: 'edges',\n};\n","import { randomLcg } from 'd3-random';\n\nimport {\n FieldColorModeId,\n FieldDTO,\n FieldType,\n MutableDataFrame,\n NodeGraphDataFrameFieldNames,\n DataFrame,\n addRow,\n} from '@grafana/data';\n\nimport * as serviceMapResponseSmall from './testData/serviceMapResponse';\nimport * as serviceMapResponsMedium from './testData/serviceMapResponseMedium';\n\nexport function generateRandomNodes(count = 10, seed?: number) {\n const nodes = [];\n const edges: string[] = [];\n const rand = randomLcg(seed);\n\n const root = {\n id: 'root',\n title: 'root',\n subTitle: 'client',\n success: 1,\n error: 0,\n stat1: Math.random(),\n stat2: Math.random(),\n edges,\n };\n nodes.push(root);\n const nodesWithoutMaxEdges = [root];\n\n const maxEdges = 3;\n\n for (let i = 1; i < count; i++) {\n const node = makeRandomNode(i);\n nodes.push(node);\n const sourceIndex = Math.floor(rand() * Math.floor(nodesWithoutMaxEdges.length - 1));\n const source = nodesWithoutMaxEdges[sourceIndex];\n source.edges.push(node.id);\n if (source.edges.length >= maxEdges) {\n nodesWithoutMaxEdges.splice(sourceIndex, 1);\n }\n nodesWithoutMaxEdges.push(node);\n }\n\n // Add some random edges to create possible cycle\n const additionalEdges = Math.floor(count / 2);\n for (let i = 0; i <= additionalEdges; i++) {\n const sourceIndex = Math.floor(rand() * Math.floor(nodes.length - 1));\n const targetIndex = Math.floor(rand() * Math.floor(nodes.length - 1));\n if (sourceIndex === targetIndex || nodes[sourceIndex].id === '0' || nodes[targetIndex].id === '0') {\n continue;\n }\n\n nodes[sourceIndex].edges.push(nodes[targetIndex].id);\n }\n\n const { nodesFields, nodesFrame, edgesFrame } = makeDataFrames();\n\n const edgesSet = new Set();\n for (const node of nodes) {\n nodesFields.id.values.push(node.id);\n nodesFields.title.values.push(node.title);\n nodesFields[NodeGraphDataFrameFieldNames.subTitle].values.push(node.subTitle);\n nodesFields[NodeGraphDataFrameFieldNames.mainStat].values.push(node.stat1);\n nodesFields[NodeGraphDataFrameFieldNames.secondaryStat].values.push(node.stat2);\n nodesFields.arc__success.values.push(node.success);\n nodesFields.arc__errors.values.push(node.error);\n const rnd = Math.random();\n nodesFields[NodeGraphDataFrameFieldNames.icon].values.push(rnd > 0.9 ? 'database' : rnd < 0.1 ? 'cloud' : '');\n nodesFields[NodeGraphDataFrameFieldNames.nodeRadius].values.push(Math.max(rnd * 100, 30)); // ensure a minimum radius of 30 or icons will not fit well in the node\n nodesFields[NodeGraphDataFrameFieldNames.highlighted].values.push(Math.random() > 0.5);\n\n for (const edge of node.edges) {\n const id = `${node.id}--${edge}`;\n // We can have duplicate edges when we added some more by random\n if (edgesSet.has(id)) {\n continue;\n }\n edgesSet.add(id);\n edgesFrame.fields[0].values.push(`${node.id}--${edge}`);\n edgesFrame.fields[1].values.push(node.id);\n edgesFrame.fields[2].values.push(edge);\n edgesFrame.fields[3].values.push(Math.random() * 100);\n edgesFrame.fields[4].values.push(Math.random() > 0.5);\n edgesFrame.fields[5].values.push(Math.ceil(Math.random() * 15));\n }\n }\n edgesFrame.length = edgesFrame.fields[0].values.length;\n\n return [nodesFrame, edgesFrame];\n}\n\nfunction makeRandomNode(index: number) {\n const success = Math.random();\n const error = 1 - success;\n return {\n id: `service:${index}`,\n title: `service:${index}`,\n subTitle: 'service',\n success,\n error,\n stat1: Math.random(),\n stat2: Math.random(),\n edges: [],\n highlighted: Math.random() > 0.5,\n };\n}\n\nexport function savedNodesResponse(size: 'small' | 'medium'): [DataFrame, DataFrame] {\n const response = size === 'small' ? serviceMapResponseSmall : serviceMapResponsMedium;\n return [new MutableDataFrame(response.nodes), new MutableDataFrame(response.edges)];\n}\n\n// Generates node graph data but only returns the edges\nexport function generateRandomEdges(count = 10, seed = 1) {\n return generateRandomNodes(count, seed)[1];\n}\n\nfunction makeDataFrames(): {\n nodesFrame: DataFrame;\n edgesFrame: DataFrame;\n nodesFields: Record<string, Omit<FieldDTO, 'name'> & { values: unknown[] }>;\n} {\n const nodesFields: Record<string, Omit<FieldDTO, 'name'> & { values: unknown[] }> = {\n [NodeGraphDataFrameFieldNames.id]: {\n values: [],\n type: FieldType.string,\n config: {\n links: [\n {\n title: 'test data link',\n url: '',\n internal: {\n query: { scenarioId: 'logs', alias: 'from service graph', stringInput: 'tes' },\n datasourceUid: 'gdev-testdata',\n datasourceName: 'gdev-testdata',\n },\n },\n ],\n },\n },\n [NodeGraphDataFrameFieldNames.title]: {\n values: [],\n type: FieldType.string,\n },\n [NodeGraphDataFrameFieldNames.subTitle]: {\n values: [],\n type: FieldType.string,\n },\n [NodeGraphDataFrameFieldNames.mainStat]: {\n values: [],\n type: FieldType.number,\n config: { displayName: 'Transactions per second' },\n },\n [NodeGraphDataFrameFieldNames.secondaryStat]: {\n values: [],\n type: FieldType.number,\n config: { displayName: 'Average duration' },\n },\n [NodeGraphDataFrameFieldNames.arc + 'success']: {\n values: [],\n type: FieldType.number,\n config: { color: { fixedColor: 'green', mode: FieldColorModeId.Fixed }, displayName: 'Success' },\n },\n [NodeGraphDataFrameFieldNames.arc + 'errors']: {\n values: [],\n type: FieldType.number,\n config: { color: { fixedColor: 'red', mode: FieldColorModeId.Fixed }, displayName: 'Errors' },\n },\n [NodeGraphDataFrameFieldNames.icon]: {\n values: [],\n type: FieldType.string,\n },\n [NodeGraphDataFrameFieldNames.nodeRadius]: {\n values: [],\n type: FieldType.number,\n },\n [NodeGraphDataFrameFieldNames.highlighted]: {\n values: [],\n type: FieldType.boolean,\n },\n\n [NodeGraphDataFrameFieldNames.detail + 'test_value']: {\n values: [],\n config: {\n displayName: 'Test value',\n },\n type: FieldType.number,\n },\n };\n\n const nodesFrame = new MutableDataFrame({\n name: 'nodes',\n fields: Object.keys(nodesFields).map((key) => ({\n ...nodesFields[key],\n name: key,\n })),\n meta: { preferredVisualisationType: 'nodeGraph' },\n });\n\n const edgesFrame: DataFrame = {\n name: 'edges',\n fields: [\n { name: NodeGraphDataFrameFieldNames.id, values: [], type: FieldType.string, config: {} },\n { name: NodeGraphDataFrameFieldNames.source, values: [], type: FieldType.string, config: {} },\n { name: NodeGraphDataFrameFieldNames.target, values: [], type: FieldType.string, config: {} },\n { name: NodeGraphDataFrameFieldNames.mainStat, values: [], type: FieldType.number, config: {} },\n { name: NodeGraphDataFrameFieldNames.highlighted, values: [], type: FieldType.boolean, config: {} },\n { name: NodeGraphDataFrameFieldNames.thickness, values: [], type: FieldType.number, config: {} },\n { name: NodeGraphDataFrameFieldNames.color, values: [], type: FieldType.string, config: {} },\n { name: NodeGraphDataFrameFieldNames.strokeDasharray, values: [], type: FieldType.string, config: {} },\n ],\n meta: { preferredVisualisationType: 'nodeGraph' },\n length: 0,\n };\n\n return { nodesFrame, edgesFrame, nodesFields };\n}\n\nexport function generateShowcaseData() {\n const { nodesFrame, edgesFrame } = makeDataFrames();\n\n addRow(nodesFrame, {\n [NodeGraphDataFrameFieldNames.id]: 'root',\n [NodeGraphDataFrameFieldNames.title]: 'root',\n [NodeGraphDataFrameFieldNames.subTitle]: 'client',\n [NodeGraphDataFrameFieldNames.mainStat]: 1234,\n [NodeGraphDataFrameFieldNames.secondaryStat]: 5678,\n arc__success: 0.5,\n arc__errors: 0.5,\n [NodeGraphDataFrameFieldNames.icon]: '',\n [NodeGraphDataFrameFieldNames.nodeRadius]: 40,\n [NodeGraphDataFrameFieldNames.highlighted]: false,\n [NodeGraphDataFrameFieldNames.detail + 'test_value']: 1,\n });\n\n addRow(nodesFrame, {\n [NodeGraphDataFrameFieldNames.id]: 'app_service',\n [NodeGraphDataFrameFieldNames.title]: 'app service',\n [NodeGraphDataFrameFieldNames.subTitle]: 'with icon',\n [NodeGraphDataFrameFieldNames.mainStat]: 1.2,\n [NodeGraphDataFrameFieldNames.secondaryStat]: 2.3,\n arc__success: 1,\n arc__errors: 0,\n [NodeGraphDataFrameFieldNames.icon]: 'apps',\n [NodeGraphDataFrameFieldNames.nodeRadius]: 40,\n [NodeGraphDataFrameFieldNames.highlighted]: false,\n [NodeGraphDataFrameFieldNames.detail + 'test_value']: 42,\n });\n\n addRow(edgesFrame, {\n [NodeGraphDataFrameFieldNames.id]: 'root-app_service',\n [NodeGraphDataFrameFieldNames.source]: 'root',\n [NodeGraphDataFrameFieldNames.target]: 'app_service',\n [NodeGraphDataFrameFieldNames.mainStat]: 3.4,\n [NodeGraphDataFrameFieldNames.secondaryStat]: 4.5,\n [NodeGraphDataFrameFieldNames.thickness]: 4,\n [NodeGraphDataFrameFieldNames.color]: '',\n [NodeGraphDataFrameFieldNames.strokeDasharray]: '',\n });\n\n addRow(nodesFrame, {\n [NodeGraphDataFrameFieldNames.id]: 'auth_service',\n [NodeGraphDataFrameFieldNames.title]: 'auth service',\n [NodeGraphDataFrameFieldNames.subTitle]: 'highlighted',\n [NodeGraphDataFrameFieldNames.mainStat]: 3.4,\n [NodeGraphDataFrameFieldNames.secondaryStat]: 4.5,\n arc__success: 0,\n arc__errors: 1,\n [NodeGraphDataFrameFieldNames.icon]: '',\n [NodeGraphDataFrameFieldNames.nodeRadius]: 40,\n [NodeGraphDataFrameFieldNames.highlighted]: true,\n });\n\n addRow(edgesFrame, {\n [NodeGraphDataFrameFieldNames.id]: 'root-auth_service',\n [NodeGraphDataFrameFieldNames.source]: 'root',\n [NodeGraphDataFrameFieldNames.target]: 'auth_service',\n [NodeGraphDataFrameFieldNames.mainStat]: 113.4,\n [NodeGraphDataFrameFieldNames.secondaryStat]: 4.511,\n [NodeGraphDataFrameFieldNames.thickness]: 8,\n [NodeGraphDataFrameFieldNames.color]: 'red',\n [NodeGraphDataFrameFieldNames.strokeDasharray]: '',\n });\n\n addRow(nodesFrame, {\n [NodeGraphDataFrameFieldNames.id]: 'db',\n [NodeGraphDataFrameFieldNames.title]: 'db',\n [NodeGraphDataFrameFieldNames.subTitle]: 'bigger size',\n [NodeGraphDataFrameFieldNames.mainStat]: 9876.123,\n [NodeGraphDataFrameFieldNames.secondaryStat]: 123.9876,\n arc__success: 0.9,\n arc__errors: 0.1,\n [NodeGraphDataFrameFieldNames.icon]: 'database',\n [NodeGraphDataFrameFieldNames.nodeRadius]: 60,\n [NodeGraphDataFrameFieldNames.highlighted]: false,\n [NodeGraphDataFrameFieldNames.detail + 'test_value']: 1357,\n });\n\n addRow(edgesFrame, {\n [NodeGraphDataFrameFieldNames.id]: 'auth_service-db',\n [NodeGraphDataFrameFieldNames.source]: 'auth_service',\n [NodeGraphDataFrameFieldNames.target]: 'db',\n [NodeGraphDataFrameFieldNames.mainStat]: 1139.4,\n [NodeGraphDataFrameFieldNames.secondaryStat]: 477.511,\n [NodeGraphDataFrameFieldNames.thickness]: 2,\n [NodeGraphDataFrameFieldNames.color]: 'blue',\n [NodeGraphDataFrameFieldNames.strokeDasharray]: '2 2',\n });\n\n return [nodesFrame, edgesFrame];\n}\n","import { DataFrameDTO, FieldType } from '@grafana/data';\n\nexport const flameGraphData: DataFrameDTO = {\n name: 'response',\n // @ts-ignore\n meta: { preferredVisualisationType: 'flamegraph' },\n fields: [\n {\n name: 'level',\n values: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 12, 13, 14, 15, 16, 10, 11, 12, 13, 9, 10, 9, 9, 7, 7, 6, 5, 6, 7,\n 8, 8, 9, 10, 11, 12, 13, 8, 9, 10, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 11, 12,\n 13, 8, 8, 7, 8, 8, 7, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 9, 8, 8, 7, 8, 6, 7, 8, 8, 7, 6, 7, 8,\n 8, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8, 9, 9, 10, 11, 9, 10, 7, 4, 5, 6, 7, 8, 8, 7, 8, 9, 10, 11, 12, 13, 10, 10,\n 11, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 8, 9, 5, 6, 7, 6, 7, 6, 5, 6, 6, 6, 6, 5, 6, 7, 6, 5, 6, 7, 8, 4, 5,\n 6, 5, 6, 5, 4, 5, 5, 3, 4, 5, 6, 7, 7, 8, 7, 8, 9, 8, 9, 8, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 24, 25, 26, 24, 25, 22, 23, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 21, 22, 23, 24, 25, 26, 27, 26, 24, 25, 26, 25, 24, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 25, 26,\n 27, 25, 26, 24, 23, 24, 24, 25, 23, 23, 22, 23, 24, 24, 23, 24, 25, 26, 24, 25, 23, 24, 24, 25, 23, 23, 24, 24,\n 23, 23, 23, 23, 23, 24, 25, 22, 23, 24, 25, 22, 23, 24, 25, 26, 27, 28, 25, 26, 27, 28, 29, 24, 22, 23, 24, 25,\n 26, 27, 28, 29, 30, 31, 32, 33, 21, 22, 23, 23, 24, 24, 24, 22, 23, 24, 25, 24, 23, 24, 24, 23, 22, 23, 24, 25,\n 25, 26, 27, 24, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 24, 21, 22, 23, 24, 25, 26, 27, 28, 21, 22, 19, 20,\n 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 24, 25, 26, 27, 28, 23, 24, 25, 26, 27, 28, 19, 20,\n 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,\n 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 31, 30, 28, 29, 30, 31, 32, 33, 34,\n 35, 36, 37, 29, 30, 31, 26, 27, 28, 28, 28, 29, 27, 26, 27, 26, 25, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 30,\n 31, 32, 33, 34, 33, 34, 35, 36, 37, 38, 39, 29, 30, 31, 32, 32, 27, 28, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n 36, 37, 38, 39, 40, 27, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 28, 27, 28, 28, 29, 27, 27, 28, 27, 27, 26,\n 27, 28, 28, 29, 29, 29, 26, 27, 27, 28, 29, 30, 29, 30, 30, 29, 30, 31, 28, 29, 30, 28, 28, 28, 28, 29, 30, 29,\n 30, 27, 28, 28, 26, 27, 26, 27, 27, 28, 29, 26, 27, 28, 29, 28, 27, 28, 29, 30, 30, 28, 29, 30, 31, 32, 32, 27,\n 28, 26, 25, 25, 26, 27, 28, 29, 30, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 31, 30, 31, 32, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 29, 26, 27, 28,\n 29, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 30, 29, 29, 29, 25, 26, 27, 28, 26,\n 26, 27, 28, 27, 28, 28, 26, 27, 28, 28, 27, 28, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 25, 26, 27, 28, 25,\n 26, 24, 25, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 34, 34, 32, 33, 34, 34, 32, 28, 29, 30, 31, 27,\n 28, 29, 26, 27, 28, 29, 30, 31, 32, 33, 34, 26, 27, 28, 29, 24, 25, 26, 27, 28, 29, 30, 27, 28, 26, 27, 25, 26,\n 27, 28, 29, 26, 25, 26, 27, 26, 27, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 38, 39, 30, 31, 32, 26, 27,\n 28, 27, 28, 29, 25, 26, 27, 28, 29, 30, 31, 32, 28, 29, 28, 29, 28, 29, 27, 28, 29, 30, 31, 29, 30, 31, 32, 33,\n 34, 35, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 28, 29, 30, 31, 28, 29, 30, 31, 26, 25, 26, 27, 28, 29,\n 27, 28, 29, 30, 25, 26, 15, 14, 15, 16, 17, 13, 14, 15, 16, 15, 16, 17, 18, 19, 20, 12, 13, 14, 15, 16, 17, 10,\n 11, 12, 13, 14, 12, 13, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 4, 5, 6, 7, 8, 9, 2, 3, 1, 2, 3, 4, 5, 6,\n 6, 6, 6, 7, 8, 8, 9, 6, 7, 6, 6, 6, 6, 5, 5, 6, 5, 5, 5, 5, 5, 6, 7, 4, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9, 1, 2,\n 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 1, 2, 3, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 5,\n 5, 6, 7, 4, 5, 6, 4, 2, 3, 4, 3, 4, 5, 6, 5, 5, 6, 4, 1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,\n 23, 16, 17, 18, 19, 16, 17, 18, 19, 20, 21, 22, 23, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,\n 23, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4,\n ],\n },\n {\n name: 'value',\n values: [\n 16460000000, 4100000000, 4100000000, 3670000000, 1130000000, 1060000000, 1020000000, 150000000, 150000000,\n 50000000, 30000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 80000000, 40000000, 10000000, 10000000, 530000000, 80000000, 40000000, 70000000,\n 50000000, 50000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000,\n 390000000, 390000000, 180000000, 70000000, 50000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 20000000, 10000000, 10000000, 10000000, 110000000, 80000000, 60000000,\n 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 20000000, 10000000, 10000000, 30000000, 20000000, 40000000, 30000000, 20000000, 10000000, 10000000, 40000000,\n 40000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 210000000, 210000000, 210000000,\n 130000000, 130000000, 10000000, 50000000, 40000000, 40000000, 70000000, 10000000, 40000000, 1840000000,\n 240000000, 240000000, 50000000, 10000000, 10000000, 190000000, 130000000, 50000000, 20000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 80000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 60000000, 10000000, 1330000000, 1290000000, 320000000, 10000000,\n 10000000, 10000000, 130000000, 10000000, 10000000, 60000000, 30000000, 100000000, 40000000, 10000000, 10000000,\n 40000000, 30000000, 10000000, 10000000, 70000000, 10000000, 10000000, 50000000, 40000000, 10000000, 30000000,\n 20000000, 10000000, 430000000, 430000000, 430000000, 430000000, 10000000, 40000000, 20000000, 370000000,\n 20000000, 10000000, 180000000, 10000000, 30000000, 10000000, 10000000, 10000000, 5630000000, 5580000000,\n 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5540000000, 5540000000,\n 5530000000, 5510000000, 5500000000, 5490000000, 5490000000, 1610000000, 1610000000, 1540000000, 1540000000,\n 190000000, 170000000, 170000000, 10000000, 20000000, 120000000, 10000000, 10000000, 20000000, 20000000,\n 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 850000000, 350000000, 300000000, 120000000, 110000000, 80000000, 20000000, 10000000, 80000000,\n 40000000, 20000000, 10000000, 10000000, 50000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000,\n 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 370000000, 40000000, 20000000, 10000000, 100000000,\n 10000000, 10000000, 10000000, 30000000, 30000000, 80000000, 20000000, 10000000, 10000000, 10000000, 40000000,\n 10000000, 10000000, 10000000, 20000000, 10000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 110000000, 110000000, 60000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 480000000, 150000000, 10000000, 130000000, 10000000, 10000000,\n 50000000, 140000000, 80000000, 40000000, 10000000, 10000000, 20000000, 10000000, 10000000, 20000000, 120000000,\n 60000000, 40000000, 10000000, 10000000, 10000000, 10000000, 20000000, 30000000, 30000000, 20000000, 20000000,\n 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 60000000, 60000000, 60000000, 60000000,\n 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 30000000, 30000000, 30000000, 30000000,\n 30000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 3880000000, 3880000000, 3880000000,\n 3880000000, 3870000000, 3230000000, 3230000000, 3210000000, 320000000, 70000000, 70000000, 40000000, 40000000,\n 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000,\n 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000,\n 20000000, 20000000, 70000000, 60000000, 20000000, 30000000, 10000000, 10000000, 10000000, 100000000, 20000000,\n 50000000, 1850000000, 410000000, 110000000, 110000000, 90000000, 60000000, 60000000, 40000000, 20000000,\n 20000000, 20000000, 30000000, 30000000, 30000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000,\n 20000000, 20000000, 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 30000000, 20000000, 10000000,\n 40000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 40000000, 10000000, 80000000, 30000000, 30000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 20000000, 60000000, 30000000, 30000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 160000000, 120000000, 20000000, 100000000, 50000000, 10000000, 10000000,\n 640000000, 10000000, 550000000, 410000000, 80000000, 60000000, 260000000, 20000000, 170000000, 60000000,\n 30000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 20000000, 50000000, 40000000, 10000000,\n 10000000, 10000000, 70000000, 30000000, 40000000, 290000000, 90000000, 30000000, 10000000, 10000000, 10000000,\n 10000000, 210000000, 20000000, 10000000, 10000000, 10000000, 120000000, 90000000, 90000000, 60000000, 10000000,\n 30000000, 30000000, 30000000, 30000000, 10000000, 20000000, 50000000, 10000000, 10000000, 10000000, 280000000,\n 150000000, 150000000, 150000000, 60000000, 30000000, 80000000, 50000000, 20000000, 20000000, 20000000, 20000000,\n 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 130000000, 130000000, 130000000, 70000000, 30000000, 30000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 40000000, 10000000, 590000000, 20000000,\n 20000000, 10000000, 40000000, 150000000, 30000000, 30000000, 120000000, 10000000, 80000000, 370000000,\n 260000000, 40000000, 150000000, 110000000, 90000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 70000000, 60000000,\n 20000000, 20000000, 640000000, 640000000, 250000000, 250000000, 230000000, 180000000, 170000000, 170000000,\n 170000000, 170000000, 50000000, 10000000, 40000000, 10000000, 10000000, 60000000, 60000000, 10000000, 30000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 50000000, 50000000, 20000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 390000000,\n 60000000, 40000000, 30000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 30000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 90000000, 10000000, 10000000, 60000000, 10000000, 40000000,\n 40000000, 40000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 180000000, 170000000, 50000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 30000000, 30000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 90000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 70000000, 70000000,\n 70000000, 70000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000,\n 20000000, 20000000, 20000000, 10000000, 40000000, 40000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, 10000000, 6190000000, 6170000000,\n 6170000000, 6070000000, 4460000000, 10000000, 50000000, 440000000, 540000000, 20000000, 10000000, 10000000,\n 10000000, 980000000, 10000000, 50000000, 480000000, 540000000, 50000000, 210000000, 30000000, 30000000,\n 60000000, 180000000, 10000000, 210000000, 20000000, 20000000, 20000000, 100000000, 20000000, 20000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 40000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000,\n 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 170000000, 160000000, 70000000, 30000000,\n 10000000, 40000000, 10000000, 170000000, 90000000, 90000000, 70000000, 20000000, 10000000, 30000000, 30000000,\n 30000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 80000000,\n 10000000, 10000000, 70000000, 60000000, 10000000, 10000000, 20000000, 20000000, 20000000, 10000000, 80000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000,\n 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 50000000, 50000000, 50000000, 50000000, 50000000,\n 50000000, 50000000, 10000000, 10000000, 10000000, 60000000, 60000000, 60000000, 60000000, 60000000, 60000000,\n 60000000, 40000000, 40000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000,\n ],\n config: {\n unit: 'short',\n },\n },\n {\n name: 'self',\n values: [\n 16460, 4100, 4100, 3670, 1130, 1060, 1020, 150, 150, 50, 30, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 80,\n 40, 10, 10, 530, 80, 40, 70, 50, 50, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 10, 390, 390, 180, 70, 50, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 20, 10, 10, 10, 110, 80, 60, 10, 20, 20, 20,\n 10, 10, 10, 10, 10, 10, 10, 20, 10, 10, 30, 20, 40, 30, 20, 10, 10, 40, 40, 10, 10, 10, 10, 10, 10, 10, 210,\n 210, 210, 130, 130, 10, 50, 40, 40, 70, 10, 40, 1840, 240, 240, 50, 10, 10, 190, 130, 50, 20, 10, 10, 10, 10,\n 10, 10, 80, 20, 10, 10, 10, 10, 10, 10, 10, 10, 60, 10, 1330, 1290, 320, 10, 10, 10, 130, 10, 10, 60, 30, 100,\n 40, 10, 10, 40, 30, 10, 10, 70, 10, 10, 50, 40, 10, 30, 20, 10, 430, 430, 430, 430, 10, 40, 20, 370, 20, 10,\n 180, 10, 30, 10, 10, 10, 5630, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5540, 5540, 5530, 5510, 5500,\n 5490, 5490, 1610, 1610, 1540, 1540, 190, 170, 170, 10, 20, 120, 10, 10, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 850, 350, 300, 120, 110, 80, 20, 10, 80, 40, 20, 10, 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 10, 20, 20, 20, 20, 10, 10, 10, 10, 10, 370, 40, 20, 10, 100, 10, 10, 10, 30, 30, 80, 20, 10,\n 10, 10, 40, 10, 10, 10, 20, 10, 20, 10, 10, 10, 10, 10, 10, 10, 110, 110, 60, 20, 20, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 480, 150, 10, 130, 10, 10, 50, 140, 80, 40, 10, 10, 20,\n 10, 10, 20, 120, 60, 40, 10, 10, 10, 10, 20, 30, 30, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 10, 60, 60, 60, 60, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 30,\n 30, 30, 30, 30, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3880, 3880, 3880, 3880,\n 3870, 3230, 3230, 3210, 320, 70, 70, 40, 40, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 20, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 70, 60, 20, 30, 10, 10, 10, 100, 20, 50,\n 1850, 410, 110, 110, 90, 60, 60, 40, 20, 20, 20, 30, 30, 30, 10, 10, 20, 20, 20, 20, 20, 20, 10, 20, 20, 20, 10,\n 10, 30, 20, 10, 40, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 80, 30, 30, 10, 10, 10, 10, 10,\n 10, 10, 20, 60, 30, 30, 10, 10, 10, 10, 10, 10, 160, 120, 20, 100, 50, 10, 10, 640, 10, 550, 410, 80, 60, 260,\n 20, 170, 60, 30, 20, 20, 20, 10, 10, 10, 20, 50, 40, 10, 10, 10, 70, 30, 40, 290, 90, 30, 10, 10, 10, 10, 210,\n 20, 10, 10, 10, 120, 90, 90, 60, 10, 30, 30, 30, 30, 10, 20, 50, 10, 10, 10, 280, 150, 150, 150, 60, 30, 80, 50,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 130, 130, 130, 70, 30, 30, 10, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 590, 20, 20, 10, 40, 150, 30, 30, 120, 10, 80, 370, 260, 40,\n 150, 110, 90, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 70, 60, 20, 20, 640, 640, 250, 250,\n 230, 180, 170, 170, 170, 170, 50, 10, 40, 10, 10, 60, 60, 10, 30, 10, 10, 10, 10, 10, 50, 50, 20, 10, 10, 10,\n 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 390, 60, 40, 30, 20, 20, 10, 10, 10, 10, 10, 30, 10, 10, 10, 10, 10, 90,\n 10, 10, 60, 10, 40, 40, 40, 30, 30, 30, 30, 30, 30, 30, 30, 10, 10, 10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 180,\n 170, 50, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 30, 30, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 90, 10, 10,\n 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 70, 70, 70, 70, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 10, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 10, 10, 10, 10,\n 10, 20, 20, 20, 20, 20, 10, 40, 40, 10, 10, 10, 10, 10, 30, 30, 30, 30, 30, 30, 10, 10, 6190, 6170, 6170, 6070,\n 4460, 10, 50, 440, 540, 20, 10, 10, 10, 980, 10, 50, 480, 540, 50, 210, 30, 30, 60, 180, 10, 210, 20, 20, 20,\n 100, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20,\n 10, 10, 10, 10, 10, 170, 160, 70, 30, 10, 40, 10, 170, 90, 90, 70, 20, 10, 30, 30, 30, 30, 10, 10, 10, 10, 10,\n 10, 10, 10, 80, 10, 10, 70, 60, 10, 10, 20, 20, 20, 10, 80, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 10, 10, 10, 60, 60, 60, 60, 60, 60, 60, 40, 40, 30, 30, 30, 30, 30,\n 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n 10, 10, 10, 10,\n ],\n config: {\n unit: 'short',\n },\n },\n {\n name: 'label',\n type: FieldType.enum,\n values: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 16, 17, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25,\n 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 28, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 40, 28,\n 29, 45, 46, 47, 48, 49, 50, 51, 52, 53, 27, 53, 28, 54, 55, 27, 28, 56, 45, 46, 49, 50, 51, 31, 57, 58, 59, 60,\n 36, 53, 52, 54, 28, 54, 28, 36, 29, 12, 27, 28, 36, 29, 45, 46, 47, 48, 61, 62, 63, 6, 7, 8, 21, 9, 10, 11, 19,\n 20, 23, 64, 14, 15, 18, 65, 66, 15, 15, 15, 15, 15, 16, 65, 18, 16, 66, 18, 65, 66, 67, 68, 69, 31, 70, 71, 72,\n 18, 65, 73, 74, 75, 54, 12, 12, 76, 77, 78, 79, 80, 81, 82, 83, 84, 74, 85, 74, 86, 87, 88, 89, 90, 91, 92, 90,\n 93, 91, 94, 95, 96, 97, 12, 98, 12, 99, 100, 12, 101, 102, 103, 104, 99, 103, 105, 106, 107, 108, 109, 107, 110,\n 107, 111, 107, 112, 107, 113, 114, 115, 116, 117, 118, 119, 120, 95, 121, 122, 123, 124, 125, 126, 12, 127, 125,\n 54, 12, 28, 128, 51, 31, 57, 58, 129, 130, 131, 132, 133, 134, 135, 136, 137, 82, 83, 138, 139, 79, 12, 77, 82,\n 140, 141, 142, 143, 28, 144, 145, 146, 31, 147, 148, 149, 150, 54, 151, 152, 153, 154, 27, 155, 28, 36, 156,\n 157, 135, 158, 159, 160, 140, 150, 54, 53, 152, 153, 161, 160, 162, 159, 163, 164, 78, 79, 165, 166, 154, 138,\n 167, 137, 82, 168, 169, 170, 171, 172, 173, 140, 152, 153, 174, 175, 141, 142, 143, 28, 36, 82, 176, 28, 45, 46,\n 49, 50, 51, 31, 57, 58, 59, 60, 43, 27, 53, 28, 177, 56, 36, 55, 54, 28, 36, 53, 27, 52, 28, 178, 44, 40, 28,\n 29, 45, 46, 49, 155, 54, 28, 144, 145, 146, 31, 147, 148, 179, 180, 181, 29, 182, 183, 184, 185, 186, 187, 180,\n 188, 189, 190, 191, 192, 193, 194, 195, 62, 4, 26, 27, 28, 30, 31, 32, 33, 34, 35, 196, 197, 198, 199, 200, 29,\n 201, 197, 198, 199, 200, 29, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,\n 218, 107, 219, 220, 221, 222, 223, 224, 225, 226, 4, 5, 227, 228, 19, 20, 229, 230, 231, 232, 233, 234, 235,\n 236, 237, 235, 236, 238, 239, 240, 241, 242, 217, 243, 244, 26, 245, 40, 28, 30, 31, 32, 33, 34, 35, 27, 28, 29,\n 246, 247, 158, 248, 249, 12, 250, 251, 12, 252, 253, 254, 226, 4, 26, 27, 28, 29, 36, 37, 38, 245, 40, 28, 255,\n 29, 30, 31, 32, 33, 34, 35, 41, 5, 227, 228, 19, 9, 54, 28, 155, 256, 141, 142, 143, 28, 144, 145, 146, 31, 147,\n 148, 179, 180, 181, 257, 159, 140, 152, 153, 258, 175, 69, 31, 70, 71, 196, 83, 259, 248, 249, 12, 260, 249, 12,\n 261, 248, 262, 27, 53, 28, 36, 29, 56, 263, 260, 186, 187, 264, 265, 180, 188, 181, 266, 267, 268, 269, 267,\n 268, 149, 261, 270, 271, 180, 181, 264, 265, 27, 53, 28, 82, 83, 272, 149, 271, 264, 265, 273, 54, 28, 36, 12,\n 256, 274, 275, 159, 276, 141, 142, 143, 28, 29, 36, 158, 159, 277, 278, 279, 4, 5, 227, 244, 280, 228, 19, 20,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 235, 236, 238, 239, 240, 241, 242, 217, 281, 9, 10, 11, 282, 20,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 235, 236, 238, 239, 240, 241, 242, 217, 283, 62, 63, 227, 228, 9,\n 19, 281, 229, 230, 231, 232, 233, 234, 235, 236, 237, 284, 285, 286, 287, 288, 20, 289, 283, 244, 290, 291, 27,\n 28, 36, 149, 271, 264, 265, 180, 188, 181, 187, 180, 188, 181, 264, 265, 292, 293, 294, 54, 28, 30, 31, 32, 33,\n 34, 260, 295, 269, 267, 268, 296, 297, 298, 260, 299, 300, 301, 302, 303, 304, 31, 305, 306, 148, 179, 264, 180,\n 181, 188, 307, 180, 188, 181, 149, 308, 309, 269, 267, 310, 308, 309, 311, 31, 312, 313, 314, 315, 316, 317,\n 318, 31, 319, 306, 148, 320, 321, 284, 285, 286, 287, 288, 322, 12, 323, 53, 256, 141, 142, 143, 53, 159, 253,\n 273, 324, 254, 259, 226, 4, 26, 245, 40, 28, 30, 31, 32, 33, 34, 325, 35, 326, 27, 28, 29, 263, 27, 53, 186,\n 187, 180, 292, 293, 327, 328, 329, 330, 331, 332, 333, 334, 323, 53, 335, 54, 336, 329, 330, 331, 332, 337, 338,\n 339, 31, 340, 341, 342, 294, 54, 28, 45, 46, 49, 50, 51, 31, 57, 58, 343, 344, 345, 346, 217, 347, 215, 216,\n 217, 27, 14, 15, 18, 348, 349, 15, 16, 348, 257, 225, 251, 27, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,\n 360, 361, 362, 363, 364, 182, 183, 184, 185, 146, 365, 366, 367, 352, 353, 27, 53, 368, 355, 358, 359, 360, 361,\n 369, 236, 237, 370, 371, 372, 373, 238, 239, 240, 241, 242, 217, 374, 375, 376, 31, 377, 378, 35, 379, 380, 41,\n 326, 381, 382, 383, 384, 72, 196, 385, 196, 386, 387, 56, 388, 389, 390, 391, 392, 325, 393, 394, 382, 395, 396,\n 397, 398, 399, 400, 31, 401, 402, 403, 404, 405, 406, 407, 408, 409, 31, 410, 411, 412, 413, 414, 415, 213, 214,\n 215, 216, 217, 416, 417, 27, 28, 29, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,\n 433, 318, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 439, 444, 427, 445, 446, 435, 428, 435, 446, 447,\n 448, 449, 450, 352, 353, 451, 452, 408, 409, 31, 410, 411, 314, 315, 316, 317, 318, 236, 453, 239, 240, 241,\n 242, 217, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 203, 465, 205, 466, 467, 468, 469, 470, 40, 28,\n 45, 46, 49, 50, 471, 472, 473, 474, 148, 475, 476, 473, 474, 148, 307, 180, 181, 191, 477, 193, 478, 479, 480,\n 481, 482, 483, 67, 68, 69, 31, 70, 71, 72, 484, 485, 486, 487, 27, 28, 36, 488, 489, 490, 40, 28, 30, 31, 32,\n 33, 34, 35, 41, 491, 213, 214, 492,\n ],\n config: {\n type: {\n enum: {\n text: [\n 'total',\n 'test/pkg/agent.(*Target).start.func1',\n 'test/pkg/agent.(*Target).scrape',\n 'test/pkg/distributor.(*Distributor).Push',\n 'compress/gzip.(*Writer).Write',\n 'compress/flate.(*compressor).write',\n 'compress/flate.(*compressor).deflate',\n 'compress/flate.(*compressor).writeBlock',\n 'compress/flate.(*huffmanBitWriter).writeBlock',\n 'compress/flate.(*huffmanBitWriter).indexTokens',\n 'compress/flate.(*huffmanEncoder).generate',\n 'compress/flate.(*huffmanEncoder).bitCounts',\n 'runtime.memmove',\n 'compress/flate.(*huffmanEncoder).assignEncodingAndSize',\n 'sort.Sort',\n 'sort.quickSort',\n 'sort.insertionSort',\n 'compress/flate.(*byFreq).sort',\n 'sort.doPivot',\n 'compress/flate.(*huffmanBitWriter).writeTokens',\n 'compress/flate.(*huffmanBitWriter).writeCode',\n 'compress/flate.offsetCode',\n 'compress/flate.(*huffmanBitWriter).dynamicSize',\n 'compress/flate.(*compressor).findMatch',\n 'compress/flate.matchLen',\n 'compress/flate.hash4',\n 'compress/flate.NewWriter',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.scanobject',\n 'runtime.heapBitsSetType',\n 'runtime.heapBitsSetTypeGCProg',\n 'runtime.runGCProg',\n 'compress/flate.(*compressor).initDeflate',\n 'runtime.makeslice',\n 'runtime.pageIndexOf',\n 'test/pkg/pprof.OpenRaw',\n 'test/pkg/gen/google/v1.(*Profile).UnmarshalVT',\n 'test/pkg/gen/google/v1.(*Sample).UnmarshalVT',\n 'runtime.(*mcache).nextFree',\n 'runtime.(*mcache).refill',\n 'runtime.(*mcentral).uncacheSpan',\n 'runtime.(*spanSet).push',\n 'runtime.(*mcentral).cacheSpan',\n 'runtime.(*mcentral).grow',\n 'runtime.(*mheap).alloc',\n 'runtime.getMCache',\n 'runtime.nextFreeFast',\n 'runtime.growslice',\n 'test/pkg/gen/google/v1.(*Location).UnmarshalVT',\n 'runtime.heapBitsForAddr',\n 'runtime.(*mheap).alloc.func1',\n 'runtime.(*mheap).allocSpan',\n 'runtime.(*mheap).allocMSpanLocked',\n 'runtime.(*fixalloc).alloc',\n 'runtime.(*headTailIndex).incTail',\n 'compress/gzip.(*Writer).Close',\n 'compress/flate.(*compressor).close',\n 'test/pkg/pprof.(*Profile).Normalize',\n 'test/pkg/pprof.(*sortedSample).Less',\n 'test/pkg/pprof.(*sortedSample).Swap',\n 'runtime.gcWriteBarrierR8',\n 'runtime.gcWriteBarrier',\n 'runtime.wbBufFlush',\n 'runtime.wbBufFlush.func1',\n 'runtime.wbBufFlush1',\n 'runtime.findObject',\n 'test/pkg/pprof.(*Profile).clearSampleReferences',\n 'test/pkg/slices.RemoveInPlace[...]',\n 'test/pkg/pprof.(*Profile).clearSampleReferences.func1',\n 'test/pkg/pprof.StacktracesHasher.Hashes',\n 'github.com/cespare/xxhash/v2.round',\n 'github.com/cespare/xxhash/v2.(*Digest).Sum64',\n 'github.com/cespare/xxhash/v2.(*Digest).Write',\n 'github.com/cespare/xxhash/v2.u64',\n 'github.com/samber/lo.Uniq[...]',\n 'runtime.mapaccess2_fast64',\n 'runtime.memhash64',\n 'runtime.bucketMask',\n 'test/pkg/pprof.(*Profile).Normalize.func1',\n 'test/pkg/pprof.(*Profile).Normalize.func1.1',\n 'test/pkg/gen/google/v1.(*Profile).MarshalToVT',\n 'test/pkg/gen/google/v1.(*Profile).MarshalToSizedBufferVT',\n 'test/pkg/gen/google/v1.(*Sample).MarshalToSizedBufferVT',\n 'test/pkg/gen/google/v1.(*Profile).SizeVT',\n 'test/pkg/gen/google/v1.(*Sample).SizeVT',\n 'test/pkg/gen/google/v1.encodeVarint',\n 'test/pkg/gen/google/v1.(*Location).SizeVT',\n 'io/ioutil.ReadAll',\n 'io.ReadAll',\n 'compress/gzip.(*Reader).Read',\n 'compress/flate.(*decompressor).Read',\n 'compress/flate.(*dictDecoder).tryWriteCopy',\n 'compress/flate.(*decompressor).huffmanBlock',\n 'compress/flate.(*dictDecoder).writeCopy',\n 'compress/flate.(*decompressor).huffSym',\n 'bytes.(*Reader).ReadByte',\n 'compress/flate.(*decompressor).moreBits',\n 'compress/flate.(*decompressor).nextBlock',\n 'net/http.(*conn).serve',\n 'net/http.serverHandler.ServeHTTP',\n 'net/http.HandlerFunc.ServeHTTP',\n 'test/pkg/util.glob..func1.1',\n 'golang.org/x/net/http2/h2c.h2cHandler.ServeHTTP',\n 'test/pkg/create.(*create).initServer.func2.1',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.MiddlewareFunc.func5',\n 'github.com/weaveworks/common/middleware.Log.Wrap.func1',\n 'github.com/weaveworks/common/middleware.Instrument.Wrap.func1',\n 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics',\n 'github.com/weaveworks/common/middleware.Instrument.Wrap.func1.2',\n 'github.com/gorilla/mux.(*Router).ServeHTTP',\n 'github.com/bufbuild/connect-go.(*Handler).ServeHTTP',\n 'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1',\n 'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1.1',\n 'test/pkg/ingester.(*Ingester).Push',\n 'github.com/klauspost/compress/gzip.(*Reader).Read',\n 'github.com/klauspost/compress/flate.(*decompressor).Read',\n 'github.com/klauspost/compress/flate.(*dictDecoder).tryWriteCopy',\n 'github.com/klauspost/compress/flate.(*dictDecoder).writeByte',\n 'github.com/klauspost/compress/flate.(*decompressor).huffmanBytesReader',\n 'github.com/klauspost/compress/flate.(*dictDecoder).writeCopy',\n 'github.com/klauspost/compress/flate.(*decompressor).nextBlock',\n 'runtime.(*mcache).allocLarge',\n 'runtime.(*pageAlloc).alloc',\n 'runtime.(*pageAlloc).allocRange',\n 'runtime.(*pageAlloc).update',\n 'runtime.(*pallocBits).summarize',\n 'test/pkg/create.(*Head).Ingest',\n 'test/pkg/create.(*Head).convertSamples',\n 'test/pkg/create.(*deduplicatingSlice[...]).ingest',\n 'test/pkg/create.(*stacktracesHelper).rewrite',\n 'test/pkg/create.idConversionTable.rewriteUint64',\n 'runtime.add',\n 'test/pkg/create.(*stacktracesHelper).key',\n 'runtime.mapassign_fast64',\n 'runtime.hashGrow',\n 'runtime.makeBucketArray',\n 'runtime.newarray',\n 'runtime.profilealloc',\n 'runtime.mProf_Malloc',\n 'runtime.callers',\n 'runtime.callers.func1',\n 'runtime.gentraceback',\n 'runtime.findfunc',\n 'runtime.(*hmap).newoverflow',\n 'runtime.releasem',\n 'runtime.growWork_fast64',\n 'runtime.evacuate_fast64',\n 'encoding/binary.littleEndian.PutUint64',\n 'runtime.acquirem',\n 'test/pkg/create.(*labelCache).rewriteLabels',\n 'runtime.mapaccess1_fast64',\n 'runtime.mapaccess2_faststr',\n 'aeshashbody',\n 'memeqbody',\n 'runtime.mapaccess2',\n 'runtime.memhash_varlen',\n 'runtime.evacuated',\n 'test/pkg/create.(*locationsHelper).key',\n 'runtime.bucketShift',\n 'test/pkg/create.(*stringsHelper).addToRewriter',\n 'test/pkg/create.(*locationsHelper).rewrite',\n 'github.com/prometheus/client_golang/prometheus.(*CounterVec).WithLabelValues',\n 'github.com/prometheus/client_golang/prometheus.(*MetricVec).GetMetricWithLabelValues',\n 'github.com/prometheus/client_golang/prometheus.(*MetricVec).hashLabelValues',\n 'github.com/prometheus/client_golang/prometheus.hashAdd',\n 'test/pkg/create.(*deltaProfiles).computeDelta',\n 'test/pkg/create.deltaSamples',\n 'runtime.typedmemmove',\n 'runtime.bulkBarrierPreWrite',\n 'test/pkg/create.copySlice[...]',\n 'runtime.add1',\n 'runtime.roundupsize',\n 'runtime.pcdatavalue',\n 'runtime.pcvalue',\n 'runtime.step',\n 'github.com/go-kit/log.(*context).Log',\n 'github.com/go-kit/log.bindValues',\n 'github.com/go-kit/log.Caller.func1',\n 'runtime.Caller',\n 'runtime.(*Frames).Next',\n 'runtime.funcline1',\n 'runtime.readvarint',\n 'test/pkg/gen/google/v1.(*Profile).ReturnToVTPool',\n 'test/pkg/gen/google/v1.(*Profile).ResetVT',\n 'github.com/bufbuild/connect-go.(*errorTranslatingSender).Send',\n 'github.com/bufbuild/connect-go.(*connectUnaryHandlerSender).Send',\n 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).Marshal',\n 'github.com/bufbuild/connect-go.(*compressionPool).Compress',\n 'github.com/bufbuild/connect-go.(*compressionPool).putCompressor',\n 'runtime.spanOf',\n 'compress/gzip.(*Writer).Reset',\n 'compress/gzip.(*Writer).init',\n 'compress/flate.(*Writer).Reset',\n 'compress/flate.(*compressor).reset',\n 'github.com/bufbuild/connect-go.(*compressionPool).getCompressor',\n 'github.com/bufbuild/connect-go.receiveUnaryRequest[...]',\n 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Receive',\n 'github.com/bufbuild/connect-go.(*connectUnaryHandlerReceiver).Receive',\n 'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).UnmarshalFunc',\n 'bytes.(*Buffer).ReadFrom',\n 'github.com/weaveworks/common/middleware.(*reqBody).Read',\n 'net/http.(*body).Read',\n 'net/http.(*body).readLocked',\n 'net/http/internal.(*chunkedReader).Read',\n 'bufio.(*Reader).Read',\n 'net/http.(*connReader).Read',\n 'net.(*conn).Read',\n 'net.(*netFD).Read',\n 'syscall.Read',\n 'syscall.read',\n 'syscall.Syscall',\n 'net/http.(*ServeMux).ServeHTTP',\n 'net/http/pprof.Index',\n 'net/http/pprof.handler.ServeHTTP',\n 'runtime/pprof.(*Profile).WriteTo',\n 'runtime/pprof.writeAlloc',\n 'runtime/pprof.writeHeapInternal',\n 'runtime/pprof.writeHeapProto',\n 'runtime/pprof.(*profileBuilder).pbSample',\n 'runtime/pprof.(*profileBuilder).flush',\n 'compress/flate.(*compressor).encSpeed',\n 'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n 'github.com/felixge/httpsnoop.(*rw).Write',\n 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n 'net/http.(*response).Write',\n 'net/http.(*response).write',\n 'bufio.(*Writer).Write',\n 'bufio.(*Writer).Flush',\n 'net/http.(*chunkWriter).Write',\n 'net/http.checkConnErrorWriter.Write',\n 'net.(*conn).Write',\n 'net.(*netFD).Write',\n 'internal/poll.(*FD).Write',\n 'syscall.write',\n 'compress/flate.token.length',\n 'compress/flate.(*deflateFast).encode',\n 'compress/flate.(*compressor).init',\n 'runtime/pprof.writeHeapProto.func1',\n 'runtime/pprof.(*profileBuilder).pbLabel',\n 'runtime/pprof.(*protobuf).int64Opt',\n 'runtime/pprof.(*protobuf).endMessage',\n 'runtime/pprof.(*protobuf).startMessage',\n 'runtime/pprof.(*protobuf).uint64s',\n 'runtime/pprof.(*protobuf).int64s',\n 'runtime/pprof.(*profileBuilder).appendLocsForStack',\n 'runtime/pprof.(*profileBuilder).emitLocation',\n 'runtime.memclrNoHeapPointersChunked',\n 'runtime.mapassign_faststr',\n 'runtime.mapaccess1_faststr',\n 'runtime.memclrHasPointers',\n 'runtime/pprof.(*profileBuilder).pbLine',\n 'runtime.duffcopy',\n 'runtime.duffzero',\n 'runtime.CallersFrames',\n 'runtime/pprof.allFrames',\n 'runtime.funcInfo.entry',\n 'runtime.(*moduledata).textAddr',\n 'runtime.funcfile',\n 'runtime.findnull',\n 'indexbytebody',\n 'runtime.funcname',\n 'runtime.(*Func).Entry',\n 'runtime.pcdatavalue1',\n 'runtime/pprof.runtime_expandFinalInlineFrame',\n 'runtime/pprof.(*profileBuilder).stringIndex',\n 'runtime.growWork_faststr',\n 'runtime.evacuate_faststr',\n 'runtime.advanceEvacuationMark',\n 'runtime/pprof.(*protobuf).uint64Opt',\n 'runtime.funcdata',\n 'runtime/pprof.(*profileBuilder).build',\n 'compress/flate.(*deflateFast).matchLen',\n 'compress/flate.(*huffmanBitWriter).writeBits',\n 'compress/flate.(*huffmanBitWriter).writeDynamicHeader',\n 'compress/flate.hash',\n 'fmt.Fprintf',\n 'fmt.(*pp).doPrintf',\n 'fmt.(*pp).printArg',\n 'fmt.(*pp).fmtInteger',\n 'fmt.(*fmt).fmtInteger',\n 'compress/flate.token.offset',\n 'compress/flate.load64',\n 'runtime.FuncForPC',\n 'runtime/pprof.newProfileBuilder',\n 'runtime/pprof.(*profileBuilder).readMapping',\n 'os.ReadFile',\n 'runtime.(*Func).Name',\n 'runtime/pprof.scaleHeapSample',\n 'math.archExp',\n 'runtime.(*MemProfileRecord).Stack',\n 'runtime/pprof.writeGoroutine',\n 'runtime/pprof.writeRuntimeProfile',\n 'runtime/pprof.runtime_goroutineProfileWithLabels',\n 'runtime.goroutineProfileWithLabels',\n 'runtime.forEachGRace',\n 'runtime.goroutineProfileWithLabels.func4',\n 'runtime.goroutineProfileWithLabels.func4.1',\n 'runtime.saveg',\n 'runtime.funcspdelta',\n 'runtime.goroutineProfileWithLabels.func1',\n 'runtime.isSystemGoroutine',\n 'runtime.goroutineProfileWithLabels.func2',\n 'runtime.startTheWorld',\n 'runtime.startTheWorld.func1',\n 'runtime.startTheWorldWithSema',\n 'runtime.wakep',\n 'runtime.startm',\n 'runtime.notewakeup',\n 'runtime.futexwakeup',\n 'runtime.futex',\n 'runtime.goroutineProfileWithLabels.func3',\n 'runtime/pprof.printCountProfile',\n 'runtime/pprof.printCountProfile.func1',\n 'bytes.(*Buffer).Write',\n 'runtime.slicebytetostring',\n 'runtime.overLoadFactor',\n 'runtime.heapBits.bits',\n 'runtime.greyobject',\n 'runtime/pprof.parseProcSelfMaps',\n 'runtime/pprof.elfBuildID',\n 'os.OpenFile',\n 'syscall.Open',\n 'syscall.openat',\n 'syscall.Syscall6',\n 'runtime/pprof.parseProcSelfMaps.func1',\n 'bytes.Cut',\n 'runtime/pprof.(*profileBuilder).addMapping',\n 'os.Open',\n 'os.openFileNolog',\n 'os.newFile',\n 'runtime.SetFinalizer',\n 'runtime.SetFinalizer.func2',\n 'runtime.addfinalizer',\n 'runtime.addspecial',\n 'runtime.(*pageAlloc).allocToCache',\n 'os.(*File).Stat',\n 'internal/poll.(*FD).Fstat',\n 'syscall.Fstat',\n 'os.(*File).Read',\n 'runtime/pprof.(*keysByCount).Less',\n 'cmpbody',\n 'github.com/prometheus/client_golang/prometheus.(*GaugeVec).WithLabelValues',\n 'runtime.assertI2I',\n 'runtime.getitab',\n 'runtime.(*itabTableType).find',\n 'github.com/weaveworks/common/middleware.Instrument.getRouteName',\n 'github.com/weaveworks/common/middleware.getRouteName',\n 'github.com/weaveworks/common/middleware.MakeLabelValue',\n 'strings.Trim',\n 'github.com/gorilla/mux.(*Router).Match',\n 'github.com/gorilla/mux.(*Route).Match',\n 'github.com/gorilla/mux.(*routeRegexp).Match',\n 'regexp.(*Regexp).doExecute',\n 'regexp.(*Regexp).backtrack',\n 'regexp.(*Regexp).tryBacktrack',\n 'github.com/weaveworks/common/logging.gokit.Debugf',\n 'github.com/uber/jaeger-client-go.(*Tracer).Extract',\n 'github.com/uber/jaeger-client-go.(*TextMapPropagator).Extract',\n 'runtime.assertE2I2',\n 'github.com/weaveworks/common/middleware.Tracer.Wrap.func1',\n 'net/http.(*response).finishRequest',\n 'net/http.(*chunkWriter).writeHeader',\n 'net/http.Header.writeSubset',\n 'net/http.Header.sortedKeyValues',\n 'sync.(*Pool).Get',\n 'net/http.(*conn).readRequest',\n 'runtime.mapiterinit',\n 'runtime.gcBgMarkWorker',\n 'runtime.gcBgMarkWorker.func2',\n 'runtime.gcDrain',\n 'runtime.(*gcBits).bytep',\n 'runtime.(*mspan).objIndex',\n 'runtime.(*gcWork).put',\n 'runtime.getempty',\n 'runtime.putfull',\n 'runtime.(*lfstack).push',\n 'runtime.(*mspan).markBitsForIndex',\n 'runtime.markBits.isMarked',\n 'runtime.arenaIndex',\n 'runtime.(*gcWork).tryGet',\n 'runtime.trygetfull',\n 'runtime.spanOfUnchecked',\n 'runtime.heapBits.next',\n 'runtime.gcFlushBgCredit',\n 'runtime.(*gcWork).balance',\n 'runtime.handoff',\n 'runtime.(*gcWork).tryGetFast',\n 'runtime.gcMarkDone',\n 'runtime.gcMarkTermination',\n 'runtime.mProf_Flush',\n 'runtime.mProf_FlushLocked',\n 'runtime.(*bucket).mp',\n 'runtime.gcMarkTermination.func4',\n 'runtime.forEachP',\n 'runtime.gcMarkTermination.func4.1',\n 'runtime.(*mcache).prepareForSweep',\n 'runtime.(*mcache).releaseAll',\n 'net/http.(*persistConn).readLoop',\n 'runtime.selectgo',\n 'runtime.send',\n 'runtime.goready',\n 'runtime.goready.func1',\n 'runtime.ready',\n 'runtime.runqput',\n 'bufio.(*Reader).Peek',\n 'bufio.(*Reader).fill',\n 'net/http.(*persistConn).Read',\n 'net/http.(*persistConn).readResponse',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.(*Tracer).gotFirstResponseByte',\n 'runtime.bgsweep',\n 'runtime.sweepone',\n 'runtime.(*sweepLocker).tryAcquire',\n 'runtime.(*sweepLocked).sweep',\n 'runtime.(*gcBitsArena).tryAlloc',\n 'runtime.spanClass.sizeclass',\n 'runtime/internal/atomic.(*Uint32).CompareAndSwap',\n 'runtime.mcall',\n 'runtime.park_m',\n 'runtime.schedule',\n 'runtime.findrunnable',\n 'runtime.netpoll',\n 'runtime.epollwait',\n 'runtime.stopm',\n 'runtime.notesleep',\n 'runtime.futexsleep',\n 'runtime.(*randomOrder).start',\n 'runtime.checkTimers',\n 'runtime.runtimer',\n 'runtime.dodeltimer0',\n 'runtime.gcstopm',\n 'runtime.lock2',\n 'runtime.procyield',\n 'runtime.(*lfstack).pop',\n 'runtime.gosched_m',\n 'runtime.lock',\n 'runtime.goschedImpl',\n 'runtime.execute',\n 'runtime.casgstatus',\n 'net/http.(*persistConn).writeLoop',\n 'net/http.(*Request).write',\n 'net/http.newTransferWriter',\n 'runtime.convI2I',\n 'runtime.chansend1',\n 'runtime.chansend',\n 'net/http.persistConnWriter.Write',\n 'runtime.exitsyscall',\n 'runtime.exitsyscallfast',\n 'runtime.exitsyscallfast_reacquired',\n 'test/pkg/distributor.(*Distributor).Push.func1',\n 'test/pkg/distributor.(*Distributor).sendProfiles',\n 'test/pkg/distributor.(*Distributor).sendProfilesErr',\n 'test/pkg/gen/ingester/v1/ingesterv1connect.(*ingesterServiceClient).Push',\n 'github.com/bufbuild/connect-go.(*Client[...]).CallUnary',\n 'github.com/bufbuild/connect-go.NewClient[...].func2',\n 'github.com/bufbuild/connect-go.NewClient[...].func1',\n 'github.com/bufbuild/connect-go.receiveUnaryResponse[...]',\n 'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Receive',\n 'github.com/bufbuild/connect-go.(*compressionPool).Decompress',\n 'github.com/bufbuild/connect-go.(*compressionPool).getDecompressor',\n 'compress/gzip.(*Reader).Reset',\n 'compress/gzip.(*Reader).readHeader',\n 'compress/flate.(*dictDecoder).init',\n 'runtime.heapBits.initSpan',\n 'compress/flate.(*decompressor).Reset',\n 'runtime.newstack',\n 'runtime.copystack',\n 'compress/flate.NewReader',\n 'compress/flate.fixedHuffmanDecoderInit',\n 'github.com/bufbuild/connect-go.(*connectClientSender).Send',\n 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).write',\n 'github.com/bufbuild/connect-go.(*duplexHTTPCall).Write',\n 'io.(*pipe).write',\n 'runtime.chanrecv1',\n 'runtime.chanrecv',\n 'runtime.recv',\n 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Close',\n 'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Close',\n 'github.com/bufbuild/connect-go.(*duplexHTTPCall).CloseRead',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.closeTracker.Close',\n 'runtime/pprof.profileWriter',\n 'runtime/pprof.(*profileBuilder).addCPUData',\n 'runtime/pprof.(*profMap).lookup',\n 'net/http.(*connReader).backgroundRead',\n 'internal/poll.(*FD).Read',\n ],\n },\n },\n },\n },\n ],\n};\n\nexport const flameGraphDataDiff: DataFrameDTO = {\n name: 'response',\n meta: { preferredVisualisationType: 'flamegraph' },\n fields: [\n {\n name: 'level',\n values: [\n 0, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 20, 21,\n 19, 20, 21, 19, 17, 18, 19, 20, 20, 21, 19, 20, 21, 19, 17, 18, 19, 20, 21, 22, 23, 24, 25, 23, 24, 21, 19, 20,\n 21, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 22, 15, 16, 17, 18, 19,\n 20, 17, 18, 19, 20, 21, 22, 23, 23, 24, 24, 25, 21, 17, 18, 19, 19, 17, 18, 19, 20, 16, 17, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 22, 22, 22, 22, 23, 20, 20, 16, 17, 18, 19, 16, 17, 15, 16, 17, 18, 19, 20, 21, 22, 23,\n 24, 17, 18, 19, 20, 21, 22, 23, 15, 16, 15, 16, 12, 13, 9, 9, 10, 9, 10, 6, 6, 6, 6, 7, 8, 6, 7, 2, 3, 4, 5, 6,\n 7, 3, 4, 5, 6, 7, 8, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 10, 11, 12, 13, 14, 15, 16, 16, 17, 18, 19, 20, 21, 22,\n 14, 15, 16, 14, 11, 12, 13, 14, 9, 10, 11, 12, 10, 9, 10, 11, 12, 13, 14, 15, 16, 17, 15, 16, 17, 16, 15, 16,\n 17, 16, 17, 16, 15, 16, 17, 18, 19, 20, 21, 19, 4, 5, 6, 7, 8, 9, 6, 7, 8, 6, 7, 8, 9, 10, 7, 4, 5, 6, 7, 8, 3,\n 4, 5, 6, 7, 8, 9, 10, 11, 12, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 6,\n 7, 8, 9, 10, 11, 7, 8, 6, 7, 8, 9, 10, 11, 12, 13, 6, 7, 8, 9, 10, 11, 12, 13, 14, 6, 7, 5, 6, 7, 8, 9, 10, 11,\n 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3, 4, 5, 6, 1, 2,\n ],\n },\n {\n name: 'label',\n values: [\n 'total',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!Heartbeat.<>c.<.ctor>b__8_0',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!Heartbeat.TimerLoop',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!Heartbeat.OnHeartbeat',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!DateHeaderValueManager.SetDateValues',\n 'Microsoft.Net.Http.Headers!HeaderUtilities.FormatDate',\n 'System!DateTimeFormat.Format',\n 'System.Threading!PortableThreadPool.WorkerThread.WorkerThreadStart',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!KestrelConnection<T>.System.Threading.IThreadPoolWorkItem.Execute',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!KestrelConnection<T>.ExecuteAsync',\n 'System.Runtime.CompilerServices!AsyncMethodBuilderCore.Start<!<ExecuteAsync>d__6>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!KestrelConnection.<ExecuteAsync>d__6<T>.MoveNext',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal!HttpConnection..ctor',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal!HttpConnection.ProcessRequestsAsync<!T0>',\n 'System.Runtime.CompilerServices!AsyncMethodBuilderCore.Start<!<ProcessRequestsAsync>d__12>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal!HttpConnection.<ProcessRequestsAsync>d__12<TContext>.MoveNext',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection..ctor',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1OutputProducer..ctor',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol..ctor',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.ProcessRequestsAsync<!T0>',\n 'System.Runtime.CompilerServices!AsyncMethodBuilderCore.Start<!<ProcessRequestsAsync>d__222>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.<ProcessRequestsAsync>d__222<TContext>.MoveNext',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.ProcessRequests<!T0>',\n 'System.Runtime.CompilerServices!AsyncMethodBuilderCore.Start<!<ProcessRequests>d__223>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.<ProcessRequests>d__223<TContext>.MoveNext',\n 'Microsoft.AspNetCore.HostFiltering!HostFilteringMiddleware.Invoke',\n 'Microsoft.AspNetCore.Routing!EndpointMiddleware.Invoke',\n 'Example!Program.<>c__DisplayClass0_0.<Main>b__0',\n 'Example!BikeService.Order',\n 'Example!OrderService.FindNearestVehicle',\n 'Pyroscope!LabelSet.BuildUpon',\n 'Pyroscope!LabelsWrapper.Do',\n 'Pyroscope!Profiler.get_Instance',\n 'Pyroscope!LabelSet.Builder.Add',\n 'System.Collections.Generic!Dictionary<TKey, TKey>.TryInsert',\n 'System.Collections.Generic!Dictionary<TKey, TKey>.Initialize',\n 'Pyroscope!LabelSet.Builder.Build',\n 'Example!Program.<>c__DisplayClass0_0.<Main>b__1',\n 'Example!ScooterService.Order',\n 'Example!OrderService.FindNearestVehicle',\n 'Pyroscope!LabelSet.BuildUpon',\n 'Pyroscope!LabelsWrapper.Do',\n 'Pyroscope!Profiler.get_Instance',\n 'Pyroscope!LabelSet.Builder.Add',\n 'System.Collections.Generic!Dictionary<TKey, TKey>.TryInsert',\n 'System.Collections.Generic!Dictionary<TKey, TKey>.Initialize',\n 'Pyroscope!LabelSet.Builder.Build',\n 'Example!Program.<>c__DisplayClass0_0.<Main>b__2',\n 'Example!CarService.Order',\n 'Example!OrderService.FindNearestVehicle',\n 'Pyroscope!LabelsWrapper.Do',\n 'Example!OrderService.<>c__DisplayClass0_1.<FindNearestVehicle>b__0',\n 'Example!OrderService.CheckDriverAvailability',\n 'Pyroscope!LabelSet.BuildUpon',\n 'System.Collections.Generic!Dictionary<TKey, TKey>..ctor',\n 'System.Collections.Generic!Dictionary<TKey, TKey>.Initialize',\n 'Pyroscope!LabelsWrapper.Do',\n 'Pyroscope!Profiler.get_Instance',\n 'Pyroscope!Profiler.get_Instance',\n 'Pyroscope!LabelSet.Builder.Add',\n 'System.Collections.Generic!Dictionary<TKey, TKey>.TryInsert',\n 'System.Collections.Generic!Dictionary<TKey, TKey>.Initialize',\n 'Microsoft.AspNetCore.Http!RequestDelegateFactory.ExecuteWriteStringResponseAsync',\n 'Microsoft.AspNetCore.Http!HttpResponseWritingExtensions.WriteAsync',\n 'Microsoft.AspNetCore.Http!HttpResponseWritingExtensions.WriteAsync',\n 'Microsoft.AspNetCore.Http!DefaultHttpResponse.StartAsync',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.StartAsync',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1OutputProducer.WriteResponseHeaders',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.PipeWriterHelpers!ConcurrentPipeWriter.GetSpan',\n 'System.IO.Pipelines!Pipe.DefaultPipeWriter.GetSpan',\n 'System.IO.Pipelines!Pipe.AllocateWriteHeadSynchronized',\n 'System.IO.Pipelines!Pipe.CreateSegmentUnsynchronized',\n 'Microsoft.Extensions.Logging!LoggerMessage.<>c__DisplayClass10_0<T1>.<Define>g__Log|0',\n 'Microsoft.Extensions.Logging!Logger<T>.Microsoft.Extensions.Logging.ILogger.Log<!LogValues>',\n 'Microsoft.Extensions.Logging!Logger.Log<!LogValues>',\n 'Microsoft.Extensions.Logging!Logger.<Log>g__LoggerLog|12_0<!LogValues>',\n 'Microsoft.Extensions.Logging.Console!ConsoleLogger.Log<!LogValues>',\n 'Microsoft.Extensions.Logging.Console!SimpleConsoleFormatter.Write<!LogValues>',\n 'Microsoft.Extensions.Logging!LoggerMessage.LogValues.<>c<T0>.<.cctor>b__12_0',\n 'Microsoft.Extensions.Logging!LoggerMessage.LogValues<T0>.ToString',\n 'System!String.FormatHelper',\n 'System!Span<System!Char>.ToString',\n 'System!String.Ctor',\n 'System.Text!StringBuilder.ToString',\n 'Microsoft.AspNetCore.Hosting!HostingApplication.CreateContext',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.BeginRequest',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.Log.RequestScope',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.Log.HostingLogScope..ctor',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature.get_TraceIdentifier',\n 'System!String.Create<System!ValueTuple>',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.LogRequestStarting',\n 'Microsoft.Extensions.Logging!Logger.Log<!T0>',\n 'Microsoft.Extensions.Logging!Logger.<Log>g__LoggerLog|12_0<!T0>',\n 'Microsoft.Extensions.Logging.Console!ConsoleLogger.Log<!T0>',\n 'Microsoft.Extensions.Logging.Console!SimpleConsoleFormatter.Write<!T0>',\n 'Microsoft.AspNetCore.Hosting!HostingRequestStartingLog.ToString',\n 'System.Buffers!TlsOverPerCoreLockedStacksArrayPool<System!Char>.Rent',\n 'System.Runtime.CompilerServices!DefaultInterpolatedStringHandler.ToStringAndClear',\n 'System!String.Ctor',\n 'System.Buffers!TlsOverPerCoreLockedStacksArrayPool<System!Char>.Return',\n 'System.Buffers!TlsOverPerCoreLockedStacksArrayPool<System!Char>.InitializeTlsBucketsAndTrimming',\n 'System.Text!StringBuilder.ToString',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.StartActivity',\n 'System.Diagnostics!Activity.Start',\n 'System!String.Create<System!ValueTuple>',\n 'System.Threading!ExecutionContext.SetLocalValue',\n 'Microsoft.Extensions.Logging!Logger.BeginScope<!T0>',\n 'Microsoft.Extensions.Logging!LoggerFactoryScopeProvider.Push',\n 'System.Threading!ExecutionContext.SetLocalValue',\n 'System.Threading!AsyncLocalValueMap.TwoElementAsyncLocalValueMap.Set',\n 'Microsoft.AspNetCore.Http!DefaultHttpContextFactory.Create',\n 'Microsoft.AspNetCore.Http!DefaultHttpContext..ctor',\n 'Microsoft.AspNetCore.Hosting!HostingApplication.DisposeContext',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.LogRequestFinished',\n 'Microsoft.Extensions.Logging!Logger.Log<!T0>',\n 'Microsoft.Extensions.Logging!Logger.<Log>g__LoggerLog|12_0<!T0>',\n 'Microsoft.Extensions.Logging.Console!ConsoleLogger.Log<!T0>',\n 'Microsoft.Extensions.Logging.Console!SimpleConsoleFormatter.Write<!T0>',\n 'Microsoft.AspNetCore.Hosting!HostingRequestFinishedLog.ToString',\n 'System!Number.FormatDouble',\n 'System.Text!ValueStringBuilder.ToString',\n 'System!Span<System!Char>.ToString',\n 'System!String.Ctor',\n 'System!Number.UInt32ToDecStr',\n 'System!String.Replace',\n 'System!String.Substring',\n 'System.Runtime.CompilerServices!DefaultInterpolatedStringHandler.ToStringAndClear',\n 'System!String.Ctor',\n 'System.Text!StringBuilder.ToString',\n 'System.Text!StringBuilder.set_Length',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.StopActivity',\n 'System.Diagnostics!Activity.Stop',\n 'System.Threading!ExecutionContext.SetLocalValue',\n 'System.Threading!AsyncLocalValueMap.TwoElementAsyncLocalValueMap.Set',\n 'Microsoft.Extensions.Logging!LoggerFactoryScopeProvider.Scope.Dispose',\n 'System.Threading!ExecutionContext.SetLocalValue',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.TryParseRequest',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.ParseRequest',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.TakeMessageHeaders',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpParser<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1ParsingHandler>.ParseHeaders',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpParser<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1ParsingHandler>.TryTakeSingleHeader',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.OnHeader',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpRequestHeaders.Append',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!HttpUtilities.GetRequestHeaderString',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!StringUtilities.GetAsciiOrUTF8StringNonNullCharacters',\n 'System!String.Create<System!IntPtr>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.TakeStartLine',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpParser<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1ParsingHandler>.ParseRequestLine',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpParser<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1ParsingHandler>.ParseRequestLine',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.OnStartLine',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.OnOriginFormTarget',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!StringUtilities.GetAsciiStringNonNullCharacters',\n 'System!String.Create<System!IntPtr>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.InitializeBodyControl',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!BodyControl..ctor',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices!ValueTaskAwaiter, !<ProcessRequests>d__223>',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.GetStateMachineBox<!<ProcessRequests>d__223>',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices!TaskAwaiter, !<ProcessRequestsAsync>d__222>',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.GetStateMachineBox<!<ProcessRequestsAsync>d__222>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!KestrelConnection.OnHeartbeat',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices!TaskAwaiter, !<ProcessRequestsAsync>d__12>',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.GetStateMachineBox<!<ProcessRequestsAsync>d__12>',\n 'System.Threading!CancellationToken.Register',\n 'System.Threading!CancellationTokenSource.Register',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal!HttpConnectionMiddleware<TContext>.OnConnectionAsync',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!KestrelConnection.BeginConnectionScope',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!TimeoutControl..ctor',\n 'Microsoft.Extensions.Logging!Logger.BeginScope<!T0>',\n 'Microsoft.Extensions.Logging!LoggerFactoryScopeProvider.Push',\n 'System.Threading!ExecutionContext.SetLocalValue',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices!TaskAwaiter, !<ExecuteAsync>d__6>',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.GetStateMachineBox<!<ExecuteAsync>d__6>',\n 'System.Threading!ThreadPoolWorkQueue.Dispatch',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!IOQueue.System.Threading.IThreadPoolWorkItem.Execute',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.AsyncStateMachineBox<System.Threading.Tasks!VoidTaskResult, Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.<DoSend>d__28>.MoveNext',\n 'System.Threading!ExecutionContext.RunInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.<DoSend>d__28.MoveNext',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.Shutdown',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.<>c.<FireConnectionClosed>b__29_0',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.CancelConnectionClosedToken',\n 'System.Threading!CancellationTokenSource.ExecuteCallbackHandlers',\n 'System.Threading!ExecutionContext.RunInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal!HttpConnection.OnConnectionClosed',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.OnInputOrOutputCompleted',\n 'System.Net.Sockets!SocketAsyncEngine.System.Threading.IThreadPoolWorkItem.Execute',\n 'System.Net.Sockets!Socket.AwaitableSocketAsyncEventArgs.OnCompleted',\n 'System.Net.Sockets!Socket.AwaitableSocketAsyncEventArgs.InvokeContinuation',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.AsyncStateMachineBox<TResult, TResult>.MoveNext',\n 'System.Threading!ExecutionContext.RunInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets!SocketConnectionListener.<AcceptAsync>d__10.MoveNext',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets!SocketConnectionContextFactory.Create',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection..ctor',\n 'System.IO.Pipelines!DuplexPipe.CreateConnectionPair',\n 'System.IO.Pipelines!Pipe..ctor',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.Start',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.DoReceive',\n 'System.Runtime.CompilerServices!AsyncMethodBuilderCore.Start<!<DoReceive>d__27>',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.<DoReceive>d__27.MoveNext',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketReceiver.WaitForDataAsync',\n 'System.Net.Sockets!Socket.ReceiveAsync',\n 'System.Net.Sockets!SocketAsyncContext..ctor',\n 'System.Net.Sockets!SocketAsyncEventArgs.DoOperationReceive',\n 'System.Net.Sockets!SocketAsyncContext.ReceiveAsync',\n 'System.Net.Sockets!SocketAsyncContext.OperationQueue<TOperation>.StartAsyncOperation',\n 'System.Net.Sockets!SocketAsyncContext.TryRegister',\n 'System.Net.Sockets!SocketAsyncEngine.TryRegisterSocket',\n 'System.Net.Sockets!SocketAsyncEngine.TryRegisterCore',\n 'System.Collections.Concurrent!ConcurrentDictionary<System!IntPtr, System.Net.Sockets!SocketAsyncEngine.SocketAsyncContextWrapper>.TryAddInternal',\n 'System.IO.Pipelines!Pipe.GetMemory',\n 'System.IO.Pipelines!Pipe.AllocateWriteHeadSynchronized',\n 'System.IO.Pipelines!Pipe.CreateSegmentUnsynchronized',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.GetStateMachineBox<!<DoReceive>d__27>',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.DoSend',\n 'System.Runtime.CompilerServices!AsyncMethodBuilderCore.Start<!<DoSend>d__28>',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.<DoSend>d__28.MoveNext',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.GetStateMachineBox<!<DoSend>d__28>',\n 'System.Net.Sockets!Socket.get_LocalEndPoint',\n 'System.Net.Sockets!IPEndPointExtensions.Create',\n 'System.Net.Internals!SocketAddress.GetIPEndPoint',\n 'System.Net.Internals!SocketAddress.GetIPAddress',\n 'System.Net.Sockets!IPEndPointExtensions.Serialize',\n 'System.Threading.Tasks!Task<TResult>.TrySetResult',\n 'System.Threading.Tasks!Task.RunContinuations',\n 'System.Threading.Tasks!AwaitTaskContinuation.RunOrScheduleAction',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.AsyncStateMachineBox<TResult, TResult>.MoveNext',\n 'System.Threading!ExecutionContext.RunInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal!ConnectionDispatcher.<>c__DisplayClass8_0.<<StartAcceptingConnectionsCore>g__AcceptConnectionsAsync|0>d<T>.MoveNext',\n 'Microsoft.AspNetCore.Connections!TransportConnection.Microsoft.AspNetCore.Http.Features.IFeatureCollection.Set<!T0>',\n 'System.Collections.Generic!List<T>.AddWithResize',\n 'System.Collections.Generic!List<T>.set_Capacity',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!KestrelConnection<T>..ctor',\n 'Microsoft.AspNetCore.Connections!TransportConnection.Microsoft.AspNetCore.Http.Features.IFeatureCollection.Set<!T0>',\n 'Microsoft.AspNetCore.Connections!TransportConnection.ExtraFeatureSet',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!KestrelConnection..ctor',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!TransportConnectionManager.AddConnection',\n 'Microsoft.AspNetCore.Connections!TransportConnection.get_ConnectionId',\n 'System!String.Create<System!Int64>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!ConnectionManager.AddConnection',\n 'System.Collections.Concurrent!ConcurrentDictionary<TKey, TKey>.TryAddInternal',\n 'System.Collections.Concurrent!ConcurrentDictionary<TKey, TKey>.TryAddInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!TransportManager.GenericConnectionListener.AcceptAsync',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets!SocketConnectionListener.AcceptAsync',\n 'System.Runtime.CompilerServices!AsyncMethodBuilderCore.Start<!<AcceptAsync>d__10>',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets!SocketConnectionListener.<AcceptAsync>d__10.MoveNext',\n 'System.Net.Sockets!Socket.AwaitableSocketAsyncEventArgs.AcceptAsync',\n 'System.Net.Sockets!Socket.AcceptAsync',\n 'System.Net.Sockets!SocketAsyncEventArgs.DoOperationAccept',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<TResult>.GetStateMachineBox<!<AcceptAsync>d__10>',\n 'System.Net.Sockets!SocketAsyncEventArgs.AcceptCompletionCallback',\n 'System.Net.Sockets!SocketAsyncEventArgs.FinishOperationSyncSuccess',\n 'System.Net.Sockets!IPEndPointExtensions.Create',\n 'System.Net.Internals!SocketAddress.GetIPEndPoint',\n 'System.Net.Internals!SocketAddress.GetIPAddress',\n 'System.Net!IPAddress..ctor',\n 'System.Net.Sockets!IPEndPointExtensions.Serialize',\n 'System.Net.Internals!SocketAddress..ctor',\n 'System.Net.Internals!SocketAddress..ctor',\n 'System.Net.Sockets!SocketAsyncEventArgs.FinishOperationAccept',\n 'System.Net.Sockets!IPEndPointExtensions.Create',\n 'System.Net.Internals!SocketAddress.GetIPEndPoint',\n 'System.Net.Internals!SocketAddress.GetIPAddress',\n 'System.Net!IPAddress..ctor',\n 'System.Net.Sockets!SocketPal.CreateSocket',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.AsyncStateMachineBox<System.Threading.Tasks!VoidTaskResult, Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.<DoReceive>d__27>.MoveNext',\n 'System.Threading!ExecutionContext.RunInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.<DoReceive>d__27.MoveNext',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.FireConnectionClosed',\n 'System.Threading!ThreadPool.UnsafeQueueUserWorkItem<!T0>',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.AsyncStateMachineBox<TResult, TResult>.MoveNext',\n 'System.Threading!ExecutionContext.RunFromThreadPoolDispatchLoop',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.<ProcessRequests>d__223<TContext>.MoveNext',\n 'Microsoft.AspNetCore.HostFiltering!HostFilteringMiddleware.Invoke',\n 'Microsoft.AspNetCore.Routing!EndpointMiddleware.Invoke',\n 'Example!Program.<>c__DisplayClass0_0.<Main>b__0',\n 'Example!BikeService.Order',\n 'Example!OrderService.FindNearestVehicle',\n 'Pyroscope!LabelsWrapper.Do',\n 'Pyroscope!Profiler.get_Instance',\n 'Microsoft.AspNetCore.Http!RequestDelegateFactory.ExecuteWriteStringResponseAsync',\n 'Microsoft.AspNetCore.Http!HttpResponseWritingExtensions.WriteAsync',\n 'Microsoft.AspNetCore.Http!HttpResponseWritingExtensions.WriteAsync',\n 'Microsoft.AspNetCore.Http!DefaultHttpResponse.StartAsync',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.StartAsync',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1OutputProducer.WriteResponseHeaders',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.PipeWriterHelpers!ConcurrentPipeWriter.GetSpan',\n 'System.IO.Pipelines!Pipe.DefaultPipeWriter.GetSpan',\n 'System.IO.Pipelines!Pipe.AllocateWriteHeadSynchronized',\n 'System.IO.Pipelines!Pipe.CreateSegmentUnsynchronized',\n 'Microsoft.Extensions.Logging!LoggerMessage.<>c__DisplayClass10_0<T1>.<Define>g__Log|0',\n 'Microsoft.Extensions.Logging!Logger<T>.Microsoft.Extensions.Logging.ILogger.Log<!LogValues>',\n 'Microsoft.Extensions.Logging!Logger.Log<!LogValues>',\n 'Microsoft.Extensions.Logging!Logger.<Log>g__LoggerLog|12_0<!LogValues>',\n 'Microsoft.Extensions.Logging.Console!ConsoleLogger.Log<!LogValues>',\n 'Microsoft.Extensions.Logging.Console!SimpleConsoleFormatter.Write<!LogValues>',\n 'Microsoft.Extensions.Logging!LoggerMessage.LogValues.<>c<T0>.<.cctor>b__12_0',\n 'Microsoft.Extensions.Logging!LoggerMessage.LogValues<T0>.ToString',\n 'System!String.FormatHelper',\n 'System!Span<System!Char>.ToString',\n 'System!String.Ctor',\n 'Microsoft.AspNetCore.Hosting!HostingApplication.CreateContext',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.BeginRequest',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.Log.RequestScope',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.Log.HostingLogScope..ctor',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature.get_TraceIdentifier',\n 'System!String.Create<System!ValueTuple>',\n 'Microsoft.AspNetCore.Http!DefaultHttpContextFactory.Create',\n 'Microsoft.AspNetCore.Http!DefaultHttpContext..ctor',\n 'Microsoft.AspNetCore.Hosting!HostingApplication.DisposeContext',\n 'Microsoft.AspNetCore.Hosting!HostingApplicationDiagnostics.LogRequestFinished',\n 'Microsoft.Extensions.Logging!Logger.Log<!T0>',\n 'Microsoft.Extensions.Logging!Logger.<Log>g__LoggerLog|12_0<!T0>',\n 'Microsoft.Extensions.Logging.Console!ConsoleLogger.Log<!T0>',\n 'Microsoft.Extensions.Logging.Console!SimpleConsoleFormatter.Write<!T0>',\n 'Microsoft.AspNetCore.Hosting!HostingRequestFinishedLog.ToString',\n 'System!Number.UInt32ToDecStr',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.TryParseRequest',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.ParseRequest',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.TakeStartLine',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpParser<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1ParsingHandler>.ParseRequestLine',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpParser<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1ParsingHandler>.ParseRequestLine',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.OnStartLine',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!Http1Connection.OnOriginFormTarget',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!StringUtilities.GetAsciiStringNonNullCharacters',\n 'System!String.Create<System!IntPtr>',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.InitializeBodyControl',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!BodyControl..ctor',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.SetResult',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.SetExistingTaskResult',\n 'System.Threading.Tasks!Task.RunContinuations',\n 'System.Threading.Tasks!AwaitTaskContinuation.RunOrScheduleAction',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.AsyncStateMachineBox<TResult, TResult>.MoveNext',\n 'System.Threading!ExecutionContext.RunInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http!HttpProtocol.<ProcessRequestsAsync>d__222<TContext>.MoveNext',\n 'System.Threading.Tasks!Task<System.Threading.Tasks!VoidTaskResult>.TrySetResult',\n 'System.Threading.Tasks!Task.RunContinuations',\n 'System.Threading.Tasks!AwaitTaskContinuation.RunOrScheduleAction',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.AsyncStateMachineBox<TResult, TResult>.MoveNext',\n 'System.Threading!ExecutionContext.RunInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal!HttpConnection.<ProcessRequestsAsync>d__12<TContext>.MoveNext',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.SetExistingTaskResult',\n 'System.Threading.Tasks!Task.RunContinuations',\n 'System.Threading.Tasks!AwaitTaskContinuation.RunOrScheduleAction',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder.AsyncStateMachineBox<TResult, TResult>.MoveNext',\n 'System.Threading!ExecutionContext.RunInternal',\n 'Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure!KestrelConnection.<ExecuteAsync>d__6<T>.MoveNext',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.DisposeAsync',\n 'System.Runtime.CompilerServices!AsyncMethodBuilderCore.Start<!<DisposeAsync>d__26>',\n 'Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal!SocketConnection.<DisposeAsync>d__26.MoveNext',\n 'System.Runtime.CompilerServices!AsyncTaskMethodBuilder<System.Threading.Tasks!VoidTaskResult>.GetStateMachineBox<!<DisposeAsync>d__26>',\n 'System.Threading!UnmanagedThreadPoolWorkItem.System.Threading.IThreadPoolWorkItem.Execute',\n 'System.Threading!TimerQueue.FireNextTimers',\n 'System.Threading!TimerQueueTimer.Fire',\n 'Microsoft.Extensions.FileProviders.Physical!PhysicalFilesWatcher.RaiseChangeEvents',\n 'System.Threading!ThreadPoolWorkQueueThreadLocals.Finalize',\n 'System.Threading!ThreadPoolWorkQueue.WorkStealingQueueList.Remove',\n ],\n },\n {\n name: 'self',\n values: [\n 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 8, 0, 0, 17, 3, 12, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,\n 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 15, 2, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 8, 7, 0, 1, 3, 2, 1, 0, 1,\n 3, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 4, 0, 5, 12, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,\n 0, 0, 0, 0, 0, 0, 0, 10, 0, 1, 0, 3, 2, 0, 0, 0, 7, 7, 1, 1, 0, 0, 6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,\n 0, 0, 0, 0, 0, 0, 15, 14, 14, 4, 0, 0, 0, 0, 0, 0, 3, 9, 3, 0, 0, 0, 0, 2, 0, 0, 1, 2, 0, 0, 0, 6, 0, 0, 2, 3,\n 1, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 2, 5, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 5, 0, 3,\n 2, 0, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 1,\n ],\n },\n {\n name: 'value',\n values: [\n 378, 12, 12, 12, 12, 12, 12, 365, 230, 230, 230, 230, 8, 206, 206, 206, 15, 12, 26, 139, 139, 139, 136, 136,\n 136, 42, 42, 3, 3, 2, 0, 1, 1, 1, 1, 1, 0, 4, 4, 2, 0, 1, 1, 1, 1, 1, 1, 9, 9, 7, 5, 4, 4, 0, 0, 0, 3, 3, 1, 2,\n 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 22, 22, 22, 22, 22, 7, 7, 7, 7, 7, 7, 15, 42, 32, 3, 3, 3, 3, 14, 13, 13,\n 13, 5, 5, 0, 5, 4, 1, 1, 8, 11, 4, 1, 3, 4, 2, 1, 1, 8, 5, 29, 26, 25, 25, 25, 12, 12, 2, 2, 2, 2, 0, 1, 4, 5,\n 5, 12, 1, 3, 3, 3, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 10, 10, 1, 1, 3, 3, 2,\n 0, 0, 7, 7, 7, 1, 1, 6, 6, 6, 1, 1, 131, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 117, 97, 97, 97, 97, 97, 73, 32, 18,\n 4, 26, 20, 20, 20, 17, 17, 3, 14, 5, 2, 2, 2, 2, 2, 1, 1, 1, 2, 6, 6, 6, 6, 6, 5, 5, 3, 1, 18, 18, 18, 18, 18,\n 18, 3, 3, 3, 7, 2, 2, 5, 3, 0, 0, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 20, 20, 2, 2, 1, 0, 8, 3, 3, 10, 6, 6, 5, 2,\n 2, 0, 0, 0, 0, 0, 10, 10, 7, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1,\n ],\n },\n {\n name: 'selfRight',\n values: [\n 0, 0, 0, 0, 0, 0, 16, 5, 0, 0, 0, 0, 1, 0, 0, 19, 2, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1,\n 1, 0, 0, 1, 1, 0, 2, 0, 0, 2, 1, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 11, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 7, 3, 0, 3, 2, 2, 0, 1, 1,\n 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 0, 4, 13, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,\n 0, 0, 0, 0, 0, 1, 1, 4, 0, 5, 0, 1, 0, 0, 1, 0, 7, 9, 3, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,\n 0, 0, 0, 0, 0, 0, 4, 12, 12, 5, 0, 0, 0, 0, 0, 0, 2, 9, 0, 0, 0, 0, 0, 1, 0, 0, 4, 3, 0, 0, 0, 6, 0, 0, 1, 2, 0,\n 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 6, 8, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 1, 0, 0, 1, 3,\n 0, 2, 1, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ],\n },\n {\n name: 'valueRight',\n values: [\n 316, 16, 16, 16, 16, 16, 16, 300, 190, 190, 190, 190, 1, 173, 173, 173, 10, 8, 28, 108, 108, 108, 107, 107, 107,\n 34, 34, 4, 4, 2, 1, 1, 1, 1, 1, 1, 1, 7, 7, 4, 1, 2, 2, 2, 2, 2, 1, 9, 9, 9, 8, 8, 8, 3, 2, 2, 5, 5, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 2, 2, 2, 2, 2, 2, 11, 31, 24, 2, 2, 2, 2, 10, 10, 10, 10, 3,\n 3, 1, 2, 2, 0, 0, 7, 8, 5, 3, 2, 4, 2, 2, 1, 6, 2, 28, 24, 24, 24, 24, 11, 11, 1, 1, 1, 1, 1, 2, 3, 4, 4, 13, 0,\n 1, 1, 1, 1, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 5, 4, 5, 5, 1, 1, 0, 1, 1, 7, 7, 9, 3, 0,\n 4, 4, 2, 0, 0, 105, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 100, 87, 87, 87, 87, 87, 58, 29, 17, 5, 25, 19, 19, 19, 12,\n 12, 2, 10, 1, 1, 1, 1, 1, 1, 4, 4, 4, 3, 6, 6, 6, 6, 3, 3, 3, 2, 0, 26, 26, 26, 26, 26, 26, 1, 1, 1, 14, 6, 6,\n 8, 4, 2, 2, 1, 1, 1, 5, 5, 5, 5, 2, 2, 2, 3, 10, 10, 1, 1, 1, 1, 1, 1, 1, 8, 3, 3, 1, 0, 2, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ],\n },\n ],\n};\n","import { StandardVariableQuery, StandardVariableSupport } from '@grafana/data';\n\nimport { TestDataDataQuery, TestDataQueryType } from './dataquery';\nimport { TestDataDataSource } from './datasource';\n\nexport class TestDataVariableSupport extends StandardVariableSupport<TestDataDataSource> {\n toDataQuery(query: StandardVariableQuery): TestDataDataQuery {\n return {\n refId: 'TestDataDataSource-QueryVariable',\n stringInput: query.query,\n scenarioId: TestDataQueryType.VariablesQuery,\n csvWave: undefined,\n };\n }\n}\n","import { from, merge, Observable, of, throwError } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nimport {\n AnnotationEvent,\n ArrayDataFrame,\n DataFrame,\n DataQueryRequest,\n DataQueryResponse,\n DataSourceInstanceSettings,\n DataTopic,\n LiveChannelScope,\n LoadingState,\n TimeRange,\n ScopedVars,\n toDataFrame,\n MutableDataFrame,\n AnnotationQuery,\n getSearchFilterScopedVar,\n FieldType,\n} from '@grafana/data';\nimport { DataSourceWithBackend, getBackendSrv, getGrafanaLiveSrv, getTemplateSrv, TemplateSrv } from '@grafana/runtime';\n\nimport { Scenario, TestDataDataQuery, TestDataQueryType } from './dataquery';\nimport { queryMetricTree } from './metricTree';\nimport { generateRandomEdges, generateRandomNodes, generateShowcaseData, savedNodesResponse } from './nodeGraphUtils';\nimport { runStream } from './runStreams';\nimport { flameGraphData, flameGraphDataDiff } from './testData/flameGraphResponse';\nimport { TestDataVariableSupport } from './variables';\n\nexport class TestDataDataSource extends DataSourceWithBackend<TestDataDataQuery> {\n scenariosCache?: Promise<Scenario[]>;\n\n constructor(\n instanceSettings: DataSourceInstanceSettings,\n private readonly templateSrv: TemplateSrv = getTemplateSrv()\n ) {\n super(instanceSettings);\n this.variables = new TestDataVariableSupport();\n this.annotations = {\n getDefaultQuery: () => ({ scenarioId: TestDataQueryType.Annotations, lines: 10 }),\n\n // Make sure annotations have scenarioId set\n prepareAnnotation: (old: AnnotationQuery<TestDataDataQuery>) => {\n if (old.target?.scenarioId?.length) {\n return old;\n }\n return {\n ...old,\n target: {\n refId: 'Anno',\n scenarioId: TestDataQueryType.Annotations,\n lines: 10,\n },\n };\n },\n };\n }\n\n getDefaultQuery(): Partial<TestDataDataQuery> {\n return {\n scenarioId: TestDataQueryType.RandomWalk,\n seriesCount: 1,\n };\n }\n\n query(options: DataQueryRequest<TestDataDataQuery>): Observable<DataQueryResponse> {\n const backendQueries: TestDataDataQuery[] = [];\n const streams: Array<Observable<DataQueryResponse>> = [];\n\n // Start streams and prepare queries\n for (let target of options.targets) {\n if (target.hide) {\n continue;\n }\n\n target = this.resolveTemplateVariables(target, options.scopedVars);\n\n switch (target.scenarioId) {\n case 'live':\n streams.push(runGrafanaLiveQuery(target, options));\n break;\n case 'streaming_client':\n streams.push(runStream(target, options));\n break;\n case 'grafana_api':\n streams.push(runGrafanaAPI(target, options));\n break;\n case TestDataQueryType.Annotations:\n streams.push(this.annotationDataTopicTest(target, options));\n break;\n case 'variables-query':\n streams.push(this.variablesQuery(target, options));\n break;\n case 'node_graph':\n streams.push(this.nodesQuery(target, options));\n break;\n case 'flame_graph':\n streams.push(this.flameGraphQuery(target));\n break;\n case 'steps':\n streams.push(this.stepsQuery(target));\n break;\n case 'trace':\n streams.push(this.trace(options));\n break;\n case 'raw_frame':\n streams.push(this.rawFrameQuery(target, options));\n break;\n case 'server_error_500':\n // this now has an option where it can return/throw an error from the frontend.\n // if it doesn't, send it to the backend where it might panic there :)\n const query = this.serverErrorQuery(target, options);\n query ? streams.push(query) : backendQueries.push(target);\n break;\n // Unusable since 7, removed in 8\n case 'manual_entry': {\n let csvContent = 'Time,Value\\n';\n if (target.points) {\n for (const point of target.points) {\n csvContent += `${point[1]},${point[0]}\\n`;\n }\n }\n target.scenarioId = TestDataQueryType.CSVContent;\n target.csvContent = csvContent;\n }\n\n default:\n backendQueries.push(target);\n }\n }\n\n if (backendQueries.length) {\n const backendOpts = {\n ...options,\n targets: backendQueries,\n };\n streams.push(super.query(backendOpts));\n }\n\n if (streams.length === 0) {\n return of({ data: [] });\n }\n\n return merge(...streams);\n }\n\n resolveTemplateVariables(query: TestDataDataQuery, scopedVars: ScopedVars) {\n const result = { ...query };\n\n if (result.labels) {\n result.labels = this.templateSrv.replace(result.labels, scopedVars);\n }\n if (result.alias) {\n result.alias = this.templateSrv.replace(result.alias, scopedVars);\n }\n if (result.scenarioId) {\n result.scenarioId = this.templateSrv.replace(result.scenarioId, scopedVars) as TestDataQueryType;\n }\n if (result.stringInput) {\n result.stringInput = this.templateSrv.replace(result.stringInput, scopedVars);\n }\n if (result.csvContent) {\n result.csvContent = this.templateSrv.replace(result.csvContent, scopedVars);\n }\n if (result.rawFrameContent) {\n result.rawFrameContent = this.templateSrv.replace(result.rawFrameContent, scopedVars);\n }\n\n return result;\n }\n\n applyTemplateVariables(query: TestDataDataQuery, scopedVars: ScopedVars): TestDataDataQuery {\n return this.resolveTemplateVariables(query, scopedVars);\n }\n\n annotationDataTopicTest(\n target: TestDataDataQuery,\n req: DataQueryRequest<TestDataDataQuery>\n ): Observable<DataQueryResponse> {\n const events = this.buildFakeAnnotationEvents(req.range, target.lines ?? 10);\n const dataFrame = new ArrayDataFrame(events);\n dataFrame.meta = { dataTopic: DataTopic.Annotations };\n return of({ key: target.refId, data: [dataFrame] }).pipe(delay(100));\n }\n\n buildFakeAnnotationEvents(range: TimeRange, count: number): AnnotationEvent[] {\n let timeWalker = range.from.valueOf();\n const to = range.to.valueOf();\n const events = [];\n const step = (to - timeWalker) / count;\n\n for (let i = 0; i < count; i++) {\n events.push({\n time: timeWalker,\n text: 'This is the text, <a href=\"https://grafana.com\">Grafana.com</a>',\n tags: ['text', 'server'],\n });\n timeWalker += step;\n }\n\n return events;\n }\n\n getQueryDisplayText(query: TestDataDataQuery) {\n const scenario = query.scenarioId ?? 'Default scenario';\n\n if (query.alias) {\n return scenario + ' as ' + query.alias;\n }\n\n return scenario;\n }\n\n testDatasource() {\n return Promise.resolve({\n status: 'success',\n message: 'Data source is working',\n });\n }\n\n getScenarios(): Promise<Scenario[]> {\n if (!this.scenariosCache) {\n this.scenariosCache = this.getResource('scenarios');\n }\n\n return this.scenariosCache;\n }\n\n variablesQuery(\n target: TestDataDataQuery,\n options: DataQueryRequest<TestDataDataQuery>\n ): Observable<DataQueryResponse> {\n const query = target.stringInput ?? '';\n const interpolatedQuery = this.templateSrv.replace(query, getSearchFilterScopedVar({ query, wildcardChar: '*' }));\n const children = queryMetricTree(interpolatedQuery);\n const items = children.map((item) => ({ value: item.name, text: item.name }));\n const dataFrame = new ArrayDataFrame(items);\n\n return of({ data: [dataFrame] }).pipe(delay(100));\n }\n\n nodesQuery(target: TestDataDataQuery, options: DataQueryRequest<TestDataDataQuery>): Observable<DataQueryResponse> {\n const type = target.nodes?.type || 'random';\n let frames: DataFrame[];\n switch (type) {\n case 'feature_showcase':\n frames = generateShowcaseData();\n break;\n case 'random':\n frames = generateRandomNodes(target.nodes?.count, target.nodes?.seed);\n break;\n case 'response_small':\n frames = savedNodesResponse('small');\n break;\n case 'response_medium':\n frames = savedNodesResponse('medium');\n break;\n case 'random edges':\n frames = [generateRandomEdges(target.nodes?.count, target.nodes?.seed)];\n break;\n default:\n throw new Error(`Unknown node_graph sub type ${type}`);\n }\n\n return of({ data: frames }).pipe(delay(100));\n }\n\n flameGraphQuery(target: TestDataDataQuery): Observable<DataQueryResponse> {\n const data = target.flamegraphDiff ? flameGraphDataDiff : flameGraphData;\n return of({ data: [{ ...data, refId: target.refId }] }).pipe(delay(100));\n }\n\n trace(options: DataQueryRequest<TestDataDataQuery>): Observable<DataQueryResponse> {\n const frame = new MutableDataFrame({\n meta: {\n preferredVisualisationType: 'trace',\n },\n fields: [\n { name: 'traceID' },\n { name: 'spanID' },\n { name: 'parentSpanID' },\n { name: 'operationName' },\n { name: 'serviceName' },\n { name: 'serviceTags' },\n { name: 'startTime' },\n { name: 'duration' },\n { name: 'logs' },\n { name: 'references' },\n { name: 'tags' },\n { name: 'kind' },\n { name: 'statusCode' },\n { name: 'warnings' },\n { name: 'stackTraces' },\n ],\n });\n const numberOfSpans = options.targets[0].spanCount || 10;\n const spanIdPrefix = '75c665dfb68';\n const start = Date.now() - 1000 * 60 * 30;\n const kinds = ['client', 'server', ''];\n const statusCodes = [0, 1, 2];\n\n for (let i = 0; i < numberOfSpans; i++) {\n frame.add({\n traceID: spanIdPrefix + '10000',\n spanID: spanIdPrefix + (10000 + i),\n parentSpanID: i === 0 ? '' : spanIdPrefix + 10000,\n operationName: `Operation ${i}`,\n serviceName: `Service ${i}`,\n startTime: start + i * 100,\n duration: 300,\n tags: [\n { key: 'http.method', value: 'POST' },\n { key: 'http.status_code', value: 200 },\n { key: 'http.url', value: `Service${i}:80` },\n ],\n serviceTags: [\n { key: 'client-uuid', value: '6238bacefsecba865' },\n { key: 'service.name', value: `Service${i}` },\n { key: 'ip', value: '0.0.0.1' },\n { key: 'latest_version', value: false },\n ],\n logs:\n i % 4 === 0\n ? [\n { timestamp: start + i * 100, fields: [{ key: 'msg', value: 'Service updated' }] },\n { timestamp: start + i * 100 + 200, fields: [{ key: 'host', value: 'app' }] },\n ]\n : [],\n kind: i === 0 ? 'client' : kinds[Math.floor(Math.random() * kinds.length)],\n statusCode: statusCodes[Math.floor(Math.random() * statusCodes.length)],\n references:\n i === 0\n ? []\n : [\n {\n refType: 'EXTERNAL',\n spanID: spanIdPrefix + 10001,\n traceID: spanIdPrefix + '10000',\n tags: [\n { key: 'external.service', value: `Service${i}` },\n { key: 'resource.pod', value: `Pod${i}` },\n ],\n },\n ],\n warnings:\n i % 2 === 0\n ? [\n '[2025-07-30T14:12:09Z] [payment-service] Delayed response from external payment gateway (Stripe). Request ID: 8f3a7c2b-ff13-4e3c-b610-18a92c8b199d. Latency: 3421ms. Threshold: 2500ms.',\n '[2025-07-30T14:14:42Z] [notification-service] Email delivery failed for user_id=93244 (Email: user@example.com). SMTP server responded with status 421: \"Service not available, closing transmission channel\".',\n '[2025-07-30T14:18:55Z] [user-profile-service] Deprecated API version used in request: /v1/profile/update. Recommend migrating to /v2/profile/update. Client ID: svc-auth-34.',\n ]\n : [],\n stackTraces:\n i % 4 === 0\n ? [\n 'Traceback (most recent call last):\\n' +\n ' File \"/app/services/payment.py\", line 112, in process_transaction\\n' +\n ' response = gateway.charge(card_info, amount)\\n' +\n ' File \"/app/lib/gateway/stripe_client.py\", line 76, in charge\\n' +\n ' return self._send_request(payload)\\n' +\n ' File \"/app/lib/gateway/stripe_client.py\", line 45, in _send_request\\n' +\n ' raise GatewayTimeoutError(\"Stripe request timed out after 3000ms\")\\n' +\n 'gateway.exceptions.GatewayTimeoutError: Stripe request timed out after 3000ms\\n',\n\n 'Traceback (most recent call last):\\n' +\n ' File \"/usr/src/app/main.py\", line 27, in <module>\\n' +\n ' run_app()\\n' +\n ' File \"/usr/src/app/core/server.py\", line 88, in run_app\\n' +\n ' initialize_services()\\n' +\n ' File \"/usr/src/app/core/init.py\", line 52, in initialize_services\\n' +\n ' db.connect()\\n' +\n ' File \"/usr/src/app/db/connection.py\", line 31, in connect\\n' +\n ' raise DatabaseConnectionError(\"Failed to connect to database: timeout after 5s\")\\n' +\n 'db.exceptions.DatabaseConnectionError: Failed to connect to database: timeout after 5s\\n',\n ]\n : [],\n });\n }\n\n return of({ data: [frame] }).pipe(delay(100));\n }\n\n rawFrameQuery(\n target: TestDataDataQuery,\n options: DataQueryRequest<TestDataDataQuery>\n ): Observable<DataQueryResponse> {\n try {\n const data = JSON.parse(target.rawFrameContent ?? '[]').map((v: unknown) => {\n const f = toDataFrame(v);\n f.refId = target.refId;\n return f;\n });\n return of({ data, state: LoadingState.Done }).pipe(delay(100));\n } catch (ex) {\n return of({\n data: [],\n error: ex instanceof Error ? ex : new Error('Unkown error'),\n }).pipe(delay(100));\n }\n }\n\n // Incremented with each refresh in a step query\n step = 0;\n\n stepsQuery(target: TestDataDataQuery): Observable<DataQueryResponse> {\n let steps = (target.csvContent ?? `a\\n,b\\nc\\n`)\n .split('\\n')\n .map((v) => v.trim())\n .filter((v) => Boolean(v.length));\n\n this.step = this.step % steps.length;\n const step = target.alias?.length ? target.alias : 'step';\n\n const frame: DataFrame = {\n refId: target.refId,\n fields: [\n { name: 'time', type: FieldType.time, values: [Date.now()], config: {} },\n { name: 'index', type: FieldType.number, values: [this.step], config: {} },\n { name: step, type: FieldType.string, values: [steps[this.step]], config: {} },\n ],\n length: 1,\n };\n for (let i = 0; i < steps.length; i++) {\n frame.fields.push({\n name: `${step}-${steps[i]}`,\n type: FieldType.boolean,\n values: [i <= this.step],\n config: {},\n });\n }\n this.step++;\n return of({ data: [frame] }).pipe(delay(50));\n }\n\n serverErrorQuery(\n target: TestDataDataQuery,\n options: DataQueryRequest<TestDataDataQuery>\n ): Observable<DataQueryResponse> | null {\n const { errorType } = target;\n\n if (errorType === 'server_panic') {\n return null;\n }\n\n const stringInput = target.stringInput ?? '';\n if (stringInput === '') {\n if (errorType === 'frontend_exception') {\n throw new Error('Scenario threw an exception in the frontend because the input was empty.');\n } else {\n return throwError(() => new Error('Scenario returned an error because the input was empty.'));\n }\n }\n\n return null;\n }\n}\n\nfunction runGrafanaAPI(\n target: TestDataDataQuery,\n req: DataQueryRequest<TestDataDataQuery>\n): Observable<DataQueryResponse> {\n const url = `/api/${target.stringInput}`;\n return from(\n getBackendSrv()\n .get(url)\n .then((res) => {\n const frame = new ArrayDataFrame(res);\n return {\n state: LoadingState.Done,\n data: [frame],\n };\n })\n );\n}\n\nlet liveQueryCounter = 1000;\n\nfunction runGrafanaLiveQuery(\n target: TestDataDataQuery,\n req: DataQueryRequest<TestDataDataQuery>\n): Observable<DataQueryResponse> {\n if (!target.channel) {\n throw new Error(`Missing channel config`);\n }\n return getGrafanaLiveSrv().getDataStream({\n addr: {\n scope: LiveChannelScope.Plugin,\n namespace: 'testdata',\n path: target.channel,\n },\n key: `testStream.${liveQueryCounter++}`,\n });\n}\n","import { DataSourcePlugin } from '@grafana/data';\n\nimport { ConfigEditor } from './ConfigEditor';\nimport { MetaDataInspector } from './MetaDataInspector';\nimport { QueryEditor } from './QueryEditor';\nimport { TestInfoTab } from './TestInfoTab';\nimport { TestDataDataSource } from './datasource';\n\nexport const plugin = new DataSourcePlugin(TestDataDataSource)\n .setConfigEditor(ConfigEditor)\n .setQueryEditor(QueryEditor)\n .setMetadataInspector(MetaDataInspector)\n .addConfigPage({\n title: 'Setup',\n icon: 'list-ul',\n body: TestInfoTab,\n id: 'setup',\n });\n","import { MetadataInspectorProps } from '@grafana/data';\nimport { Stack } from '@grafana/ui';\n\nimport { TestDataDataQuery } from './dataquery';\nimport { TestDataDataSource } from './datasource';\n\nexport type Props = MetadataInspectorProps<TestDataDataSource, TestDataDataQuery>;\n\nexport function MetaDataInspector({ data }: Props) {\n return (\n <Stack direction=\"column\">\n <div>Meta data inspector for the TestData data source.</div>\n\n {data.map((frame, index) => (\n <>\n <div>Frame: {index}</div>\n <div>\n Custom meta: <br />\n {JSON.stringify(frame.meta?.custom, null, 2)}\n </div>\n </>\n ))}\n </Stack>\n );\n}\n"],"names":["outside","module","exports","version","range","options","constructor","this","max","map","Map","get","key","value","undefined","delete","set","size","firstKey","keys","next","Range","er","r1","r2","intersects","SemVer","parse","safeRe","re","t","String","match","rtl","coerceRtlRegex","includePrerelease","COERCERTLFULL","COERCERTL","exec","index","length","lastIndex","COERCEFULL","COERCE","major","minor","patch","prerelease","build","internalRe","constants","identifiers","valid","clean","inc","diff","compare","rcompare","compareLoose","compareBuild","sort","rsort","gt","lt","eq","neq","gte","lte","cmp","coerce","Comparator","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","gtr","ltr","simplifyRange","subset","src","tokens","SEMVER_SPEC_VERSION","RELEASE_TYPES","compareIdentifiers","rcompareIdentifiers","a","loose","debug","process","env","NODE_DEBUG","test","args","console","error","list","b","__WEBPACK_EXTERNAL_MODULE__1269__","__WEBPACK_EXTERNAL_MODULE__1308__","numeric","anum","bnum","__WEBPACK_EXTERNAL_MODULE__2007__","ANY","minimumVersionWithPreRelease","minimumVersion","simpleSubset","sub","dom","semver","eqSet","Set","gtltComp","higher","lower","hasDomLT","hasDomGT","c","operator","higherGT","lowerLT","add","needDomLTPre","needDomGTPre","comp","sawNonNull","OUTER","simpleSub","simpleDom","isSub","MAX_SAFE_INTEGER","Number","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","versions","min","minSV","rangeObj","forEach","v","release","identifier","identifierBase","SPACE_CHARACTERS","parseOptions","raw","formatted","trim","replace","split","r","parseRange","filter","TypeError","first","isNullSet","isAny","i","comps","k","toString","format","memoKey","cached","cache","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","rangeList","parseComparator","join","replaceGTE0","COMPARATORLOOSE","rangeMap","comparators","has","result","values","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","testSet","remainingComparators","slice","testComparator","pop","otherComparator","BUILD","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","id","toLowerCase","replaceTilde","TILDELOOSE","TILDE","_","M","m","p","pr","ret","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","from","fM","fm","fp","fpr","fb","to","tM","tm","tp","tpr","allowed","__WEBPACK_EXTERNAL_MODULE__3059__","__WEBPACK_EXTERNAL_MODULE__3241__","throwErrors","LOOSE","FULL","num","other","compareMain","comparePre","startsWith","Error","PRERELEASELOOSE","PRERELEASE","base","push","isNaN","version1","version2","v1","v2","comparison","v1Higher","highVersion","lowVersion","highHasPre","prefix","op","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","name","isGlobal","safe","token","makeSafeRegex","RegExp","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","FULLPLAIN","MAINVERSIONLOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","LONETILDE","LONECARET","__WEBPACK_EXTERNAL_MODULE__5959__","__WEBPACK_EXTERNAL_MODULE__6089__","parsed","maxSV","minver","setMin","comparator","compver","versionA","versionB","hilo","gtfn","ltefn","ltfn","ecomp","high","low","__WEBPACK_EXTERNAL_MODULE__7781__","f","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","ref","__self","__source","q","g","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","Fragment","jsx","jsxs","prev","ranges","simplified","original","__WEBPACK_EXTERNAL_MODULE__8531__","s","COMPARATOR","includes","looseOption","freeze","emptyOpts","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","defineProperty","enumerable","obj","prop","toStringTag","lastIndexOf","ConfigEditor","memo","div","displayName","__assign","assign","arguments","apply","create","SuppressedError","useAsyncFn","fn","deps","initialState","loading","mountedRef","lastCallId","useRef","isMounted","useCallback","useEffect","_a","useState","state","callback","_i","callId","prevState","then","useAsync","resolveSelectors","versionedSelectors","grafanaVersion","resolveSelectorGroup","group","entries","isVersionedSelectorGroup","assertIsSemverValid","resolveSelector","target","versionedSelector","versionToUse","selectorName","MIN_GRAFANA_VERSION","versionedComponents","RadioButton","container","Breadcrumbs","breadcrumb","title","CanvasGridAddActions","addPanel","groupPanels","ungroup","ungroupRows","addRow","pasteRow","addTab","pasteTab","pastePanel","DashboardEditPaneSplitter","primaryBody","EditPaneHeader","deleteButton","copyDropdown","copy","duplicate","backButton","TimePicker","openButton","overlayContent","fromField","toField","applyTimeRange","copyTimeRange","pasteTimeRange","calendar","label","closeButton","absoluteTimeRangeTitle","DataSourcePermissions","form","roleType","rolePicker","permissionLevel","DateTimePicker","input","DataSource","TestData","QueryTab","scenarioSelectContainer","scenarioSelect","noise","seriesCount","spread","startValue","drop","DataSourceHttpSettings","urlInput","Jaeger","traceIDInput","Prometheus","configPage","connectionSettings","manageAlerts","allowAsRecordingRulesTarget","scrapeInterval","queryTimeout","defaultEditor","disableMetricLookup","prometheusType","prometheusVersion","cacheLevel","incrementalQuerying","queryOverlapWindow","disableRecordingRules","customQueryParameters","httpMethod","exemplarsAddButton","internalLinkSwitch","codeModeMetricNamesSuggestionLimit","seriesLimit","queryEditor","explain","editorToggle","legend","step","exemplars","builder","metricSelect","hints","metricsExplorer","queryAdvisor","code","queryField","metricsCountInfo","metricsBrowser","selectMetric","metricList","labelNamesFilter","labelValuesFilter","useQuery","useAsRateQuery","validateSelector","clear","exemplarMarker","variableQueryEditor","queryType","labelnames","metricRegex","labelValues","labelSelect","metricNames","varQueryResult","seriesQuery","classicQuery","annotations","minStep","tags","text","seriesValueAsTimestamp","Menu","MenuComponent","MenuGroup","MenuItem","SubMenu","icon","Panels","Panel","content","headerContainer","headerItems","item","menuItems","menu","containerByTitle","headerCornerInfo","mode","status","loadingBar","HoverWidget","dragIcon","PanelDataErrorMessage","Visualization","Graph","VisualizationTab","legendSection","Legend","legendItemAlias","showLegendSwitch","xAxis","labels","BarGauge","valueV2","PieChart","svgSlice","Text","Table","header","footer","body","TableNG","Filters","HeaderButton","Container","SelectAll","Tooltip","Wrapper","Caret","Footer","ReducerLabel","Value","VizLegend","seriesName","Drawer","General","expand","contract","close","rcContentWrapper","subtitle","DashboardSaveDrawer","saveButton","saveAsButton","saveAsTitleInput","PanelEditor","OptionsPane","select","fieldLabel","fieldInput","DataPane","applyButton","toggleVizPicker","toggleVizOptions","toggleTableView","showZoomField","showAttributionField","showScaleField","showMeasureField","showDebugField","measureButton","Outline","section","node","ElementEditPane","variableType","addVariableButton","variableNameInput","variableLabelInput","AutoGridLayout","minColumnWidth","customMinColumnWidth","clearCustomMinColumnWidth","maxColumns","rowHeight","customRowHeight","clearCustomRowHeight","fillScreen","TabsLayout","titleInput","PanelInspector","Data","Stats","Json","Query","refreshButton","jsonObjectKeys","Tab","active","RefreshPicker","runButtonV2","intervalButtonV2","queryInspectorButton","queryHistoryButton","addQuery","addQueryFromLibrary","queryGroupTopSection","addExpression","QueryHistory","queryText","QueryEditorRows","rows","QueryEditorRow","actionButton","refId","AlertTab","AlertRules","groupToggle","toggle","expandedContent","previewButton","ruleNameField","newFolderButton","newFolderNameField","newFolderNameCreateButton","newEvaluationGroupButton","newEvaluationGroupName","newEvaluationGroupInterval","newEvaluationGroupCreate","stepNo","stepAdvancedModeSwitch","Alert","alertV2","severity","TransformTab","newTransform","transformationEditor","transformationEditorDebugger","Transforms","card","disableTransformationButton","Reduce","modeLabel","calculationsLabel","SpatialOperations","actionLabel","locationLabel","location","autoOption","coords","option","latitudeFieldLabel","longitudeFieldLabel","geohash","geohashFieldLabel","lookup","lookupFieldLabel","gazetteerFieldLabel","searchInput","noTransformationsMessage","addTransformationButton","removeAllTransformationsButton","NavBar","Configuration","button","Toggle","Reporting","NavMenu","NavToolbar","commandPaletteTrigger","shareDashboard","markAsFavorite","editDashboard","editButton","exitButton","settingsButton","addRowButton","addLibraryPanelButton","addVisualizationButton","pastePanelButton","discardChangesButton","discardLibraryPanelButton","unlinkLibraryPanelButton","saveLibraryPanelButton","backToDashboardButton","PageToolbar","tooltip","itemButton","QueryEditorToolbarItem","BackButton","backArrow","OptionsGroup","PluginVisualization","Select","toggleAllOptions","singleValue","FieldConfigEditor","OverridesConfigEditor","FolderPicker","containerV2","ReadonlyFolderPicker","DataSourcePicker","inputV2","dataSourceList","advancedModal","builtInDataSourceList","TimeZonePicker","changeTimeSettingsButton","WeekStartPicker","placeholder","TraceViewer","spanBar","QueryField","QueryBuilder","queryPatterns","inputSelect","valueSelect","matchOperatorSelect","ValuePicker","Search","sectionV2","itemsV2","cards","collapseFolder","sectionId","expandFolder","dashboardItem","dashboardCard","folderHeader","folderName","folderContent","dashboardItems","DashboardLinks","dropDown","link","LoadingIndicator","CallToActionCard","buttonV2","DataLinksContextMenu","singleLink","DataLinksActionsTooltip","tooltipWrapper","CodeEditor","ReactMonacoEditor","editorLazy","DashboardImportPage","textarea","submit","ImportDashboardForm","PanelAlertTabContent","VisualizationPreview","ColorSwatch","DashboardRow","wrapper","UserProfile","profileSaveButton","preferencesSaveButton","orgsTable","sessionsTable","extensionPointTabs","extensionPointTab","tabId","FileUpload","inputField","fileNameSpan","DebugOverlay","OrgRolePicker","AnalyticsToolbarButton","Variables","variableOption","variableLinkWrapper","Annotations","annotationsTypeInput","annotationsChoosePanelInput","editor","testButton","resultContainer","ReturnToPrevious","buttonGroup","dismissButton","SQLQueryEditor","selectColumn","selectColumnInput","selectFunctionParameter","selectAggregation","selectAggregationInput","selectAlias","selectAliasInput","selectInputParameter","filterConjunction","filterField","filterOperator","headerTableSelector","headerFilterSwitch","headerGroupSwitch","headerOrderSwitch","headerPreviewSwitch","EntityNotFound","Portal","ExportImage","formatOptions","png","jpg","rendererAlert","description","buttons","generate","download","cancel","preview","image","message","selectors","pages","Alerting","AddAlertRule","url","EditAlertRule","alertRuleUid","Login","username","password","skip","PasswordlessLogin","email","Home","readOnly","saveAndTest","alert","DataSources","dataSources","dataSourceName","EditDataSource","dataSourceUid","settings","AddDataSource","dataSourcePluginsV2","pluginName","ConfirmModal","SecretsManagement","SecretForm","AddDashboard","addNewPanel","itemButtonAddViz","addNewRow","addNewPanelLibrary","Settings","List","Edit","annotationIndex","editIndex","ImportDashboard","Dashboard","uid","DashNav","nav","navV2","publicDashboardTag","shareButton","scrollContainer","newShareButton","shareLink","arrowMenu","shareInternally","shareExternally","shareSnapshot","NewExportButton","exportAsJson","exportAsImage","playlistControls","stop","Controls","submenu","submenuItem","submenuItemLabels","submenuItemValueDropDownValueLinkTexts","submenuItemValueDropDownDropDown","submenuItemValueDropDownOptionTexts","annotationsWrapper","annotationLabel","annotationToggle","Actions","deleteDashBoard","sectionItems","saveDashBoard","saveAsDashBoard","urlParams","dashboardUid","addAnnotationCTAV2","NewAnnotation","panelFilterSelect","showInLabel","previewInDashboard","enable","hide","addVariableCTAV2","newButton","table","tableRowNameFields","variableName","tableRowDefinitionFields","tableRowArrowUpButtons","tableRowArrowDownButtons","tableRowDuplicateButtons","tableRowRemoveButtons","headerLink","modeLabelNew","modeLabelEdit","generalNameInput","generalNameInputV2","generalTypeSelect","generalTypeSelectV2","generalLabelInput","generalLabelInputV2","generalHideSelect","generalHideSelectV2","selectionOptionsAllowCustomValueSwitch","selectionOptionsMultiSwitch","selectionOptionsIncludeAllSwitch","selectionOptionsCustomAllInput","previewOfValuesOption","submitButton","QueryVariable","queryOptionsDataSourceSelect","queryOptionsOpenButton","queryOptionsRefreshSelect","queryOptionsRefreshSelectV2","queryOptionsRegExInput","queryOptionsRegExInputV2","queryOptionsSortSelect","queryOptionsSortSelectV2","queryOptionsQueryInput","queryOptionsStaticOptionsToggle","queryOptionsStaticOptionsOrderDropdown","valueGroupsTagsEnabledSwitch","valueGroupsTagsTagsQueryInput","valueGroupsTagsTagsValuesQueryInput","ConstantVariable","constantOptionsQueryInput","constantOptionsQueryInputV2","DatasourceVariable","datasourceSelect","nameFilter","TextBoxVariable","textBoxOptionsQueryInput","textBoxOptionsQueryInputV2","CustomVariable","customValueInput","optionsOpenButton","IntervalVariable","intervalsValueInput","autoEnabledCheckbox","stepCountIntervalSelect","minIntervalInput","GroupByVariable","dataSourceSelect","infoText","modeToggle","AdHocFiltersVariable","SwitchVariable","valuePairTypeSelect","enabledValueInput","disabledValueInput","StaticOptionsEditor","addButton","labelInput","valueInput","moveButton","row","marker","Rows","Repeated","ConfigSection","warningMessage","Dashboards","dashboards","toggleView","SaveDashboardAsModal","newName","save","SaveDashboardModal","saveVariables","saveTimerange","saveRefresh","variablesWarningAlert","SharePanelModal","linkToRenderedImage","ShareDashboardModal","PublicDashboard","WillBePublicCheckbox","LimitedDSCheckbox","CostIncreaseCheckbox","PauseSwitch","EnableAnnotationsSwitch","CreateButton","DeleteButton","CopyUrlInput","CopyUrlButton","SettingsDropdown","TemplateVariablesWarningAlert","UnsupportedDataSourcesWarningAlert","NoUpsertPermissionsWarningAlert","EnableTimeRangeSwitch","EmailSharingConfiguration","ShareType","EmailSharingInput","EmailSharingInviteButton","EmailSharingList","DeleteEmail","ReshareLink","SnapshotScene","PublishSnapshot","ShareDashboardDrawer","ShareInternally","lockTimeRangeSwitch","shortenUrlSwitch","copyUrlButton","SharePanel","widthInput","heightInput","scaleFactorInput","generateImageButton","downloadImageButton","ShareExternally","publicAlert","emailSharingAlert","shareTypeSelect","Creation","PublicShare","createButton","cancelButton","EmailShare","willBePublicCheckbox","enableTimeRangeSwitch","enableAnnotationsSwitch","revokeAccessButton","toggleAccessButton","ShareSnapshot","publishSnapshot","ExportDashboardDrawer","ExportAsJson","codeEditor","exportExternallyToggle","saveToFileButton","copyToClipboardButton","page","NotAvailable","pausedDescription","PublicDashboardScene","loadingPage","controls","RequestViewAccess","recipientInput","PublicDashboardConfirmAccess","Explore","graph","scrollView","addFromQueryLibrary","SoloPanel","PluginsList","listItem","signatureErrorNotice","PluginPage","signatureInfo","disabledInfo","PlaylistForm","interval","itemDelete","BrowseDashboards","checkbox","NewFolderForm","nameInput","SearchDashboards","FolderView","PublicDashboards","ListItem","linkButton","configButton","trashcanButton","pauseSwitch","UserListPage","tabs","allUsers","orgUsers","anonUserDevices","publicDashboardsUsers","users","org","admin","publicDashboards","UserListAdminPage","UsersListPage","UserAnonListPage","UsersListPublicDashboardsPage","DashboardsListModal","ProfilePage","Plugin","pluginId","MigrateToCloud","components","CSVContentEditor","onChange","query","onSaveCSV","csvContent","height","language","onBlur","onSave","showMiniMap","showLineNumbers","CSVFileEditor","files","InlineFieldRow","InlineField","labelWidth","width","csvFileName","find","TestDataQueryType","defaultPulseQuery","timeStep","onCount","onValue","offCount","offValue","defaultCSVWaveQuery","valuesCSV","defaultQuery","scenarioId","RandomWalk","CSVWaveEditor","wave","last","onAdd","setValuesCSV","setLabels","setName","onValueChange","grow","Input","currentTarget","autoFocus","onKeyDown","evt","valueAsNumber","Button","aria-label","variant","onClick","CSVWavesEditor","waves","handleChange","wavesArray","splice","ERROR_OPTIONS","errorType","OPTIONS","errorSource","liveTestDataChannels","GrafanaLiveEditor","channel","NodeGraphEditor","nodes","count","parseInt","seed","fields","PredictablePulseEditor","onInputChange","pulseWave","randomWalkFields","testSelectors","RandomWalkEditor","selector","RawFrameEditor","setError","warning","setWarning","onSaveFrames","rawFrameContent","json","JSON","isArray","data","series","toDataFrameDTO","toDataFrame","toDataQueryResponse","dataFrameToJSON","stringify","renderInput","field","config","defaultValue","newValue","InlineSwitch","getStyles","theme","jsonView","css","marginBottom","spacing","SimulationSchemaForm","schema","setJsonView","styles","useStyles2","FieldSet","className","showLabel","TextArea","event","element","SimulationQueryEditor","ds","info","simQuery","sim","simKey","cfgValue","setCfgValue","getResource","sims","useMemo","details","path","tick","onUpdateKey","isLoading","Boolean","stream","suffix","Label","postResource","res","streamingClientFields","types","StreamingClientEditor","streamType","USAQueryEditor","usaQueryModes","ep","period","MultiSelect","fieldNames","vals","stateNames","states","randomUUID","crypto","bind","getRandomValues","rnds8","Uint8Array","byteToHex","unsafeStringify","arr","offset","buf","rnds","random","rng","RangeError","getNextWord","Math","floor","words","defaultStreamQuery","speed","bands","runStream","req","defaults","Observable","subscriber","streamId","panelId","maxDataPoints","FieldType","time","alias","number","frame","StreamingDataFrame","fromDataFrameJSON","maxLength","timeoutId","lastSent","addNextRow","Date","now","pushNextEvent","LoadingState","Streaming","setTimeout","clearTimeout","runSignalStream","CircularDataFrame","append","capacity","addField","string","meta","preferredVisualisationType","line","getRandomLine","runLogsStream","reader","csv","CSVReader","onHeader","onRow","processChunk","TextDecoder","decode","readCSV","done","Done","read","complete","fetch","Request","response","getReader","runFetchStream","unit","nestedFrames","uniqueRowIdFields","createMainTraceFrame","subframe","createDataFrame","display","getDisplayProcessor","createTraceSubFrame","uuidv4","runTracesStream","targets","datasource","throwError","decoder","getBackendSrv","chunked","params","flush","subscribe","chunk","ok","msg","err","warn","unsubscribe","runWatchStream","createTheme","endpoints","editorSelectors","TestInfoTab","br","LinkButton","href","rel","buildMetricTree","parent","depth","chars","children","letter","nodeName","queryTree","queryIndex","nodeQuery","namesToMatch","nameToMatch","indexOf","pattern","concat","queryMetricTree","eps","NodeGraphDataFrameFieldNames","links","internal","datasourceUid","datasourceName","subTitle","mainStat","secondaryStat","arc","color","FieldColorModeId","Fixed","fixedColor","edges","source","generateRandomNodes","rand","abs","randomLcg","root","success","stat1","stat2","nodesWithoutMaxEdges","makeRandomNode","sourceIndex","additionalEdges","targetIndex","nodesFields","nodesFrame","edgesFrame","makeDataFrames","edgesSet","arc__success","arc__errors","rnd","nodeRadius","highlighted","edge","ceil","savedNodesResponse","serviceMapResponseSmall","serviceMapResponsMedium","MutableDataFrame","generateRandomEdges","stringInput","boolean","detail","thickness","strokeDasharray","flameGraphData","enum","flameGraphDataDiff","TestDataVariableSupport","StandardVariableSupport","toDataQuery","VariablesQuery","csvWave","TestDataDataSource","DataSourceWithBackend","getDefaultQuery","backendQueries","streams","resolveTemplateVariables","scopedVars","runGrafanaLiveQuery","runGrafanaAPI","annotationDataTopicTest","variablesQuery","nodesQuery","flameGraphQuery","stepsQuery","trace","rawFrameQuery","serverErrorQuery","points","point","CSVContent","backendOpts","super","of","merge","templateSrv","applyTemplateVariables","events","buildFakeAnnotationEvents","lines","dataFrame","ArrayDataFrame","dataTopic","DataTopic","pipe","delay","timeWalker","valueOf","getQueryDisplayText","scenario","testDatasource","Promise","resolve","getScenarios","scenariosCache","items","getSearchFilterScopedVar","wildcardChar","frames","generateShowcaseData","flamegraphDiff","numberOfSpans","spanCount","spanIdPrefix","start","kinds","statusCodes","traceID","spanID","parentSpanID","operationName","serviceName","startTime","duration","serviceTags","logs","timestamp","kind","statusCode","references","refType","warnings","stackTraces","ex","steps","instanceSettings","getTemplateSrv","variables","prepareAnnotation","old","liveQueryCounter","getGrafanaLiveSrv","getDataStream","addr","scope","LiveChannelScope","namespace","plugin","DataSourcePlugin","setConfigEditor","setQueryEditor","onRunQuery","scenarioList","ManualEntry","hideAlias","Simulation","hideAliasField","onUpdate","currentScenario","HTMLInputElement","checked","onFieldChange","onStreamClientChange","onPulseWaveChange","localeCompare","show","dropPercent","inputId","sc","update","GrafanaAPI","StreamingClient","Live","PredictablePulse","PredictableCSVWave","Steps","USA","usa","ErrorWithSource","Icon","RawFrame","CSVFile","Logs","levelColumn","Arrow","FlameGraph","NodeGraph","val","ServerError500","ErrorEditor","Trace","ErrorWithSourceQueryEditor","setMetadataInspector","Stack","direction","custom","addConfigPage"],"sourceRoot":""}
.
Edit
..
Edit
CHANGELOG.md
Edit
LICENSE
Edit
README.md
Edit
dashboards
Edit
img
Edit
module.js
Edit
module.js.LICENSE.txt
Edit
module.js.map
Edit
plugin.json
Edit