mcp-samply 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +167 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.js +14 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/profile/analyze.d.ts +162 -0
  7. package/dist/profile/analyze.js +745 -0
  8. package/dist/profile/analyze.js.map +1 -0
  9. package/dist/profile/store.d.ts +104 -0
  10. package/dist/profile/store.js +238 -0
  11. package/dist/profile/store.js.map +1 -0
  12. package/dist/samply/executable.d.ts +3 -0
  13. package/dist/samply/executable.js +34 -0
  14. package/dist/samply/executable.js.map +1 -0
  15. package/dist/samply/process.d.ts +11 -0
  16. package/dist/samply/process.js +39 -0
  17. package/dist/samply/process.js.map +1 -0
  18. package/dist/samply/record.d.ts +36 -0
  19. package/dist/samply/record.js +180 -0
  20. package/dist/samply/record.js.map +1 -0
  21. package/dist/server.d.ts +2 -0
  22. package/dist/server.js +22 -0
  23. package/dist/server.js.map +1 -0
  24. package/dist/source/locate.d.ts +31 -0
  25. package/dist/source/locate.js +284 -0
  26. package/dist/source/locate.js.map +1 -0
  27. package/dist/tools/doctor.d.ts +2 -0
  28. package/dist/tools/doctor.js +81 -0
  29. package/dist/tools/doctor.js.map +1 -0
  30. package/dist/tools/locate.d.ts +2 -0
  31. package/dist/tools/locate.js +85 -0
  32. package/dist/tools/locate.js.map +1 -0
  33. package/dist/tools/profile.d.ts +3 -0
  34. package/dist/tools/profile.js +433 -0
  35. package/dist/tools/profile.js.map +1 -0
  36. package/dist/tools/record.d.ts +3 -0
  37. package/dist/tools/record.js +117 -0
  38. package/dist/tools/record.js.map +1 -0
  39. package/dist/tools/state.d.ts +6 -0
  40. package/dist/tools/state.js +11 -0
  41. package/dist/tools/state.js.map +1 -0
  42. package/package.json +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/profile/analyze.ts"],"names":[],"mappings":"AA0KA,MAAM,aAAa,GAAG,IAAI,OAAO,EAA8C,CAAC;AAChF,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAgD,CAAC;AAExF,MAAM,UAAU,gBAAgB,CAC9B,OAAsB,EACtB,UAKI,EAAE;IAEN,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,KAAK,CAAC;IAEjE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO;SACnC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACnD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;SACrE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,WAAW,EAC7C,CAAC,CACF,CAAC;IAEF,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QACjE,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;QAC7C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI;QACrC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI;QACjC,UAAU,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QACpF,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QACnC,YAAY;QACZ,iBAAiB,EACf,eAAe,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI;YAChD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe,CAAC;YAC9C,CAAC,CAAC,IAAI;QACV,2BAA2B,EAAE,aAAa,CAAC,gBAAgB,EAAE,aAAa,EAAE,YAAY,CAAC;QACzF,4BAA4B,EAAE,aAAa,CAAC,gBAAgB,EAAE,cAAc,EAAE,YAAY,CAAC;QAC3F,OAAO,EAAE,cAAc;aACpB,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;aACpB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChB,eAAe,CAAC,QAAQ,EAAE;YACxB,YAAY;YACZ,UAAU;SACX,CAAC,CACH;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAsB,EACtB,QAAyB,EACzB,UAII,EAAE;IAEN,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAE5D,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;QAC7C,MAAM,EAAE;YACN,GAAG,eAAe,CAAC,QAAQ,EAAE;gBAC3B,YAAY;gBACZ,UAAU;aACX,CAAC;YACF,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;iBACrC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;iBAC3D,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;SACvB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAsB,EACtB,KAAa,EACb,UAGI,EAAE;IAEN,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAYpB,CAAC;IAEJ,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,GAAG,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE;oBAC5B,GAAG,YAAY;oBACf,OAAO,EAAE;wBACP;4BACE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;4BAC5B,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACpC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;4BACvD,WAAW,EAAE,YAAY,CAAC,WAAW;4BACrC,YAAY,EAAE,YAAY,CAAC,YAAY;yBACxC;qBACF;iBACF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC;YACjD,QAAQ,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC;YACnD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;gBAC5B,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;gBACvD,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,YAAY,EAAE,YAAY,CAAC,YAAY;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;SACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,OAAO,EAAE,KAAK,CAAC,OAAO;aACnB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;aAC7D,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC;KACjC,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAChD,CAAC;QAED,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAExB,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;QAC7C,KAAK;QACL,UAAU,EAAE,aAAa,CAAC,MAAM;QAChC,OAAO,EAAE,aAAa;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAsB,EACtB,UAQI,EAAE;IAEN,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAkBnB,CAAC;IAEJ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,IACE,CAAC,qBAAqB,CACpB,YAAY,EACZ,eAAe,EACf,uBAAuB,CACxB,EACD,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,mBAAmB,CACnC,YAAY,CAAC,IAAI,EACjB,cAAc,EACd,eAAe,CAChB,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,KAAK,GACT,aAAa;gBACb;oBACE,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,CAAC;oBACf,SAAS,EAAE,IAAI,GAAG,EAA+B;oBACjD,OAAO,EAAE,IAAI,GAAG,EASb;iBACJ,CAAC;YACJ,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,KAAK,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC;YAC9C,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC;YAEhD,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC/D,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACnC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC;gBACzD,gBAAgB,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC;YAC7D,CAAC;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;oBAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;oBAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;oBAC9C,WAAW,EAAE,YAAY,CAAC,WAAW;oBACrC,YAAY,EAAE,YAAY,CAAC,YAAY;iBACxC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC;gBACvD,cAAc,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;SACtC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC1D,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;SACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,gBAAgB,EAAE,aAAa,CAC7B,KAAK,CAAC,SAAS,EACf,cAAc,EACd,mBAAmB,CACpB;QACD,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aACjC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAChD,CAAC;YAED,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9C,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC;KAChC,CAAC,CAAC,CAAC;IAEN,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;QAC7C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,cAAc;QACd,UAAU,EAAE,YAAY,CAAC,MAAM;QAC/B,wBAAwB,EAAE,YAAY,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,YAAY,EACxC,CAAC,CACF;QACD,uBAAuB,EAAE,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,WAAW,EACvC,CAAC,CACF;QACD,MAAM,EAAE,YAAY;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,KAAa,EACb,UAQI,EAAE;IAEN,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAQpB,CAAC;IACJ,MAAM,eAAe,GAAG,IAAI,GAAG,EAG5B,CAAC;IACJ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAC;IACJ,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IACJ,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IAEJ,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,wBAAwB,CACzC,MAAM,CAAC,MAAM,EACb,eAAe,EACf,uBAAuB,CACxB,CAAC;YACF,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,mBAAmB,IAAI,CAAC,CAAC;YACzB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE;oBAC1B,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,YAAY,EAAE,UAAU,CAAC,YAAY;oBACrC,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,WAAW,EAAE,CAAC;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;oBAChC,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;oBAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;oBAC9C,WAAW,EAAE,CAAC;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,WAAW,IAAI,CAAC,CAAC;YAClC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;iBACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,EAAE,UAAU,CAAC;iBACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;iBACxB,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC;iBAClD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAErC,mBAAmB,CACjB,QAAQ,EACR,GAAG,UAAU,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAC9E;gBACE,KAAK,EAAE,UAAU,CAAC,WAAW;gBAC7B,MAAM;gBACN,KAAK;gBACL,WAAW,EAAE,CAAC;aACf,CACF,CAAC;YACF,mBAAmB,CACjB,OAAO,EACP,GAAG,UAAU,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EACjD;gBACE,KAAK,EAAE,UAAU,CAAC,WAAW;gBAC7B,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,CAAC;aACf,CACF,CAAC;YACF,mBAAmB,CACjB,OAAO,EACP,GAAG,UAAU,CAAC,GAAG,SAAS,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAChD;gBACE,KAAK,EAAE,UAAU,CAAC,WAAW;gBAC7B,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,CAAC;aACf,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;QAC7C,KAAK;QACL,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,mBAAmB;QACnB,oBAAoB,EAAE,OAAO,CAAC,IAAI;QAClC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;aAC3B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9C,CAAC;YAED,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QACvB,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;aACnC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;aAC3D,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC1D,UAAU,EAAE,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC;QACxD,UAAU,EAAE,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAsB,EACtB,MAAqB;IAErB,IAAI,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;QACpD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,OAAsB,EAAE,MAAqB;IAClE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoD,CAAC;IAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAC1C,MAAM,WAAW,GAAG,WAAW,EAAE,MAAM,IAAI,WAAW,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEpD,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC3B,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAClD,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAC7C,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACnB,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,WAAW,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC;IACxE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,MAAM;QACN,WAAW;QACX,WAAW;QACX,SAAS;QACT,UAAU,EACR,WAAW,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI;YACxC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;YACtC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1C,SAAS;QACT,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAsB,EACtB,MAAqB;IAErB,IAAI,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAC;QACtD,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IACtD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;IACzE,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACrD,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EACJ,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,IAAI;YACrE,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAsB,EACtB,MAAqB,EACrB,UAAkB,EAClB,KAAmC;IAEnC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1E,MAAM,MAAM,GACV,WAAW,KAAK,IAAI;QAClB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,OAAsB,EACtB,MAAqB,EACrB,UAAkB;IAElB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,MAAM,SAAS,GACb,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,aAAa,GACjB,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,WAAW,GACf,YAAY,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;QACzD,CAAC,CAAC,GAAG,UAAU,KAAK,YAAY,GAAG;QACnC,CAAC,CAAC,UAAU,CAAC;IAEjB,OAAO;QACL,GAAG,EAAE,GAAG,UAAU,SAAS,YAAY,IAAI,EAAE,EAAE;QAC/C,IAAI,EAAE,UAAU;QAChB,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAwB,EACxB,UAAkB;IAElB,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACjF,MAAM,SAAS,GACb,iBAAiB,KAAK,IAAI;QACxB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO,SAAS,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAqB,EACrB,aAA4B;IAE5B,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9E,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAqB,EACrB,aAA4B;IAE5B,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IAC5E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,eAAe,CACtB,WAA0B,EAC1B,UAAyB,EACzB,OAAsB,EACtB,OAAsB;IAEtB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAuC,EACvC,KAAoB,EACpB,KAAqC;IAErC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;YACnB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,YAAY,EAAE,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CACpB,KAAuC,EACvC,KAAqC,EACrC,KAAa;IAEb,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;SACvB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CACzB,QAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEzD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;gBACrD,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC;YACjD,QAAQ,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAiE,EACjE,KAAkE;IAElE,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAmB,EACnB,GAAW,EACX,KAAQ;IAER,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAmB,EACnB,KAAa;IAEb,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;SACrB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3D,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,eAAe,CACtB,QAAwB,EACxB,OAGC;IAED,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;QAC5B,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;QACvD,GAAG,EACD,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ;YAC5C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;YAC5B,CAAC,CAAC,IAAI;QACV,GAAG,EACD,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ;YAC5C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;YAC5B,CAAC,CAAC,IAAI;QACV,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,gBAAgB,EAAE,aAAa,CAC7B,QAAQ,CAAC,SAAS,EAClB,aAAa,EACb,OAAO,CAAC,YAAY,CACrB;QACD,iBAAiB,EAAE,aAAa,CAC9B,QAAQ,CAAC,SAAS,EAClB,cAAc,EACd,OAAO,CAAC,YAAY,CACrB;QACD,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;aACzC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;aAC/C,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,OAAsB,EACtB,QAAqC;IAErC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,YAAY,CACnB,OAAsB,EACtB,QAAyB;IAEzB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC/E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,KAAK,KAAK,kBAAkB,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,kBAAkB,CAAC;IACpG,CAAC,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;IAC1B,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO;SACnC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;SACrF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC;QACjE,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC;QACnE,OAAO,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC,CAAC,CAAC;IAEL,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,CAAC,CAAE,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAwB,EACxB,WAAsC;IAEtC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC;IACtE,OAAO,IAAI,IAAI,SAAS,CAAC;AAC3B,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB;IAC1C,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,cAAc,CAAC,MAAqB;IAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IACrD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,qBAAqB,CAC5B,YAA+D,EAC/D,eAA8B,EAC9B,uBAAsC;IAEtC,IACE,uBAAuB,KAAK,IAAI;QAChC,CAAC,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC;aAC/B,WAAW,EAAE;aACb,QAAQ,CAAC,uBAAuB,CAAC,EACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1F,OAAO,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAuB,EACvB,eAAuB,EACvB,uBAAsC;IAEtC,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC7B,IACE,uBAAuB,KAAK,IAAI;YAChC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAC3E,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5E,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAY,EACZ,cAAsB,EACtB,kBAAiC,IAAI;IAErC,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAClE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,kBAAiC,IAAI;IAErC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,sDAAsD,CAAC,CAAC;SACvF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACxB,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5C,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAC9C,CAAC;QACF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAwB;IACrD,MAAM,SAAS,GACb,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAChB,MAAwC,EACxC,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,SAAS,SAAS,CAChB,MAAgB,EAChB,KAAoB;IAEpB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,OAAO,CAAC,OAAsB,EAAE,IAAmB;IAC1D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,OAAsB,EAAE,IAAmB;IAC1D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,104 @@
1
+ export interface RawProfileMeta {
2
+ product?: string;
3
+ oscpu?: string;
4
+ interval?: number;
5
+ startTime?: number;
6
+ }
7
+ export interface RawProfileLib {
8
+ name?: string;
9
+ debugName?: string;
10
+ breakpadId?: string | null;
11
+ codeId?: string | null;
12
+ path?: string;
13
+ }
14
+ export interface RawProfileThread {
15
+ name?: string;
16
+ processName?: string;
17
+ pid?: number;
18
+ tid?: number;
19
+ registerTime?: number;
20
+ unregisterTime?: number | null;
21
+ stringArray?: string[];
22
+ samples?: {
23
+ length?: number;
24
+ stack?: Array<number | null>;
25
+ time?: number[];
26
+ };
27
+ markers?: {
28
+ length?: number;
29
+ name?: Array<number | null>;
30
+ };
31
+ stackTable?: {
32
+ length?: number;
33
+ prefix?: Array<number | null>;
34
+ frame?: Array<number | null>;
35
+ };
36
+ frameTable?: {
37
+ length?: number;
38
+ func?: Array<number | null>;
39
+ address?: Array<number | null>;
40
+ nativeSymbol?: Array<number | null>;
41
+ };
42
+ funcTable?: {
43
+ length?: number;
44
+ name?: Array<number | null>;
45
+ resource?: Array<number | null>;
46
+ };
47
+ resourceTable?: {
48
+ length?: number;
49
+ lib?: Array<number | null>;
50
+ name?: Array<number | null>;
51
+ };
52
+ nativeSymbols?: {
53
+ length?: number;
54
+ name?: Array<number | null>;
55
+ };
56
+ }
57
+ export interface RawProfile {
58
+ meta: RawProfileMeta;
59
+ libs?: RawProfileLib[];
60
+ threads?: RawProfileThread[];
61
+ processes?: RawProfile[];
62
+ }
63
+ interface RawSymbolSidecarModule {
64
+ debug_name?: string;
65
+ debug_id?: string | null;
66
+ code_id?: string | null;
67
+ symbol_table?: Array<{
68
+ rva?: number;
69
+ size?: number;
70
+ symbol?: number;
71
+ }>;
72
+ known_addresses?: Array<[number, number]>;
73
+ }
74
+ interface RawSymbolSidecar {
75
+ string_table?: string[];
76
+ data?: RawSymbolSidecarModule[];
77
+ }
78
+ export interface IndexedThread {
79
+ index: number;
80
+ processIndex: number;
81
+ threadIndex: number;
82
+ processPath: string;
83
+ libs: RawProfileLib[];
84
+ thread: RawProfileThread;
85
+ }
86
+ export interface LoadedProfile {
87
+ profilePath: string;
88
+ sidecarPath: string | null;
89
+ meta: RawProfileMeta;
90
+ processCount: number;
91
+ threads: IndexedThread[];
92
+ symbolicator: Symbolicator;
93
+ }
94
+ export declare class ProfileStore {
95
+ private readonly cache;
96
+ load(profilePath: string): Promise<LoadedProfile>;
97
+ }
98
+ export declare class Symbolicator {
99
+ private readonly indexedByModuleKey;
100
+ private readonly indexedByModuleName;
101
+ constructor(sidecar: RawSymbolSidecar | null);
102
+ lookup(lib: RawProfileLib | undefined, address: number | null): string | null;
103
+ }
104
+ export {};
@@ -0,0 +1,238 @@
1
+ import { readFile, stat } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { gunzipSync } from "node:zlib";
4
+ import { resolveSidecarPath } from "../samply/record.js";
5
+ export class ProfileStore {
6
+ cache = new Map();
7
+ async load(profilePath) {
8
+ const resolvedPath = path.resolve(profilePath);
9
+ const profileStat = await stat(resolvedPath);
10
+ const cached = this.cache.get(resolvedPath);
11
+ if (cached !== undefined &&
12
+ cached.mtimeMs === profileStat.mtimeMs &&
13
+ cached.size === profileStat.size) {
14
+ return cached.data;
15
+ }
16
+ const rawProfile = ensureProfile(await readJsonFile(resolvedPath), resolvedPath);
17
+ const sidecarPath = await findExistingSidecarPath(resolvedPath);
18
+ const rawSidecar = sidecarPath === null
19
+ ? null
20
+ : ensureSidecar(await readJsonFile(sidecarPath), sidecarPath);
21
+ const processes = flattenProcesses(rawProfile);
22
+ const threads = processes.flatMap((processNode) => (processNode.profile.threads ?? []).map((thread, threadIndex) => ({
23
+ index: 0,
24
+ processIndex: processNode.index,
25
+ threadIndex,
26
+ processPath: processNode.path,
27
+ libs: processNode.profile.libs ?? [],
28
+ thread,
29
+ })));
30
+ threads.forEach((thread, index) => {
31
+ thread.index = index;
32
+ });
33
+ const loadedProfile = {
34
+ profilePath: resolvedPath,
35
+ sidecarPath,
36
+ meta: rawProfile.meta,
37
+ processCount: processes.length,
38
+ threads,
39
+ symbolicator: new Symbolicator(rawSidecar),
40
+ };
41
+ this.cache.set(resolvedPath, {
42
+ mtimeMs: profileStat.mtimeMs,
43
+ size: profileStat.size,
44
+ data: loadedProfile,
45
+ });
46
+ return loadedProfile;
47
+ }
48
+ }
49
+ export class Symbolicator {
50
+ indexedByModuleKey = new Map();
51
+ indexedByModuleName = new Map();
52
+ constructor(sidecar) {
53
+ if (sidecar === null) {
54
+ return;
55
+ }
56
+ const byNameCandidates = new Map();
57
+ for (const module of sidecar.data ?? []) {
58
+ const indexedModule = buildIndexedSidecarModule(sidecar.string_table ?? [], module);
59
+ const moduleName = (module.debug_name ?? "").toLowerCase();
60
+ if (moduleName.length > 0) {
61
+ const existing = byNameCandidates.get(moduleName) ?? [];
62
+ existing.push(indexedModule);
63
+ byNameCandidates.set(moduleName, existing);
64
+ }
65
+ for (const key of buildSidecarModuleKeys(module)) {
66
+ this.indexedByModuleKey.set(key, indexedModule);
67
+ }
68
+ }
69
+ for (const [moduleName, candidates] of byNameCandidates.entries()) {
70
+ if (candidates.length === 1) {
71
+ this.indexedByModuleName.set(moduleName, candidates[0]);
72
+ }
73
+ }
74
+ }
75
+ lookup(lib, address) {
76
+ if (lib === undefined || address === null) {
77
+ return null;
78
+ }
79
+ for (const key of buildProfileLibKeys(lib)) {
80
+ const indexedModule = this.indexedByModuleKey.get(key);
81
+ if (indexedModule !== undefined) {
82
+ return lookupIndexedSymbol(indexedModule, address);
83
+ }
84
+ }
85
+ const moduleName = (lib.debugName ?? lib.name ?? "").toLowerCase();
86
+ if (moduleName.length === 0) {
87
+ return null;
88
+ }
89
+ return lookupIndexedSymbol(this.indexedByModuleName.get(moduleName), address);
90
+ }
91
+ }
92
+ async function readJsonFile(filePath) {
93
+ const buffer = await readFile(filePath);
94
+ const text = isGzip(buffer)
95
+ ? gunzipSync(buffer).toString("utf8")
96
+ : buffer.toString("utf8");
97
+ return JSON.parse(text);
98
+ }
99
+ async function findExistingSidecarPath(profilePath) {
100
+ const candidates = [resolveSidecarPath(profilePath), `${resolveSidecarPath(profilePath)}.gz`];
101
+ for (const candidate of candidates) {
102
+ try {
103
+ const entry = await stat(candidate);
104
+ if (entry.isFile()) {
105
+ return candidate;
106
+ }
107
+ }
108
+ catch {
109
+ continue;
110
+ }
111
+ }
112
+ return null;
113
+ }
114
+ function ensureProfile(value, filePath) {
115
+ if (!isObject(value) || !isObject(value.meta)) {
116
+ throw new Error(`Invalid Firefox profile JSON in ${filePath}.`);
117
+ }
118
+ return value;
119
+ }
120
+ function ensureSidecar(value, filePath) {
121
+ if (!isObject(value)) {
122
+ throw new Error(`Invalid samply symbol sidecar JSON in ${filePath}.`);
123
+ }
124
+ return value;
125
+ }
126
+ function flattenProcesses(rootProfile) {
127
+ const flattened = [];
128
+ const visit = (profile, processPath) => {
129
+ flattened.push({
130
+ index: flattened.length,
131
+ path: processPath,
132
+ profile,
133
+ });
134
+ for (const [index, childProfile] of (profile.processes ?? []).entries()) {
135
+ visit(childProfile, `${processPath}.${index}`);
136
+ }
137
+ };
138
+ visit(rootProfile, "0");
139
+ return flattened;
140
+ }
141
+ function buildIndexedSidecarModule(stringTable, module) {
142
+ const exactMatches = new Map();
143
+ const ranges = [];
144
+ const symbolTable = module.symbol_table ?? [];
145
+ symbolTable.forEach((entry) => {
146
+ if (typeof entry.rva !== "number") {
147
+ return;
148
+ }
149
+ ranges.push({
150
+ start: entry.rva,
151
+ end: entry.rva + Math.max(entry.size ?? 1, 1),
152
+ name: getStringTableValue(stringTable, entry.symbol),
153
+ });
154
+ });
155
+ for (const [address, symbolIndex] of module.known_addresses ?? []) {
156
+ const symbolEntry = symbolTable[symbolIndex];
157
+ if (symbolEntry === undefined) {
158
+ continue;
159
+ }
160
+ exactMatches.set(address, getStringTableValue(stringTable, symbolEntry.symbol));
161
+ }
162
+ ranges.sort((left, right) => left.start - right.start);
163
+ return {
164
+ exactMatches,
165
+ ranges,
166
+ };
167
+ }
168
+ function lookupIndexedSymbol(indexedModule, address) {
169
+ if (indexedModule === undefined) {
170
+ return null;
171
+ }
172
+ const exactMatch = indexedModule.exactMatches.get(address);
173
+ if (exactMatch !== undefined) {
174
+ return exactMatch;
175
+ }
176
+ let low = 0;
177
+ let high = indexedModule.ranges.length - 1;
178
+ while (low <= high) {
179
+ const mid = Math.floor((low + high) / 2);
180
+ const candidate = indexedModule.ranges[mid];
181
+ if (candidate === undefined) {
182
+ return null;
183
+ }
184
+ if (address < candidate.start) {
185
+ high = mid - 1;
186
+ }
187
+ else if (address >= candidate.end) {
188
+ low = mid + 1;
189
+ }
190
+ else {
191
+ return candidate.name;
192
+ }
193
+ }
194
+ return null;
195
+ }
196
+ function buildProfileLibKeys(lib) {
197
+ const moduleName = (lib.debugName ?? lib.name ?? "").toLowerCase();
198
+ const codeId = normalizeId(lib.codeId);
199
+ const debugId = normalizeId(lib.breakpadId);
200
+ return [
201
+ buildModuleKey(moduleName, codeId),
202
+ buildModuleKey(moduleName, debugId),
203
+ ].filter((value) => value !== null);
204
+ }
205
+ function buildSidecarModuleKeys(module) {
206
+ const moduleName = (module.debug_name ?? "").toLowerCase();
207
+ const codeId = normalizeId(module.code_id);
208
+ const debugId = normalizeId(module.debug_id);
209
+ return [
210
+ buildModuleKey(moduleName, codeId),
211
+ buildModuleKey(moduleName, debugId),
212
+ ].filter((value) => value !== null);
213
+ }
214
+ function buildModuleKey(moduleName, identifier) {
215
+ if (moduleName.length === 0 || identifier === null) {
216
+ return null;
217
+ }
218
+ return `${moduleName}::${identifier}`;
219
+ }
220
+ function normalizeId(identifier) {
221
+ if (identifier === undefined || identifier === null || identifier.length === 0) {
222
+ return null;
223
+ }
224
+ return identifier.toUpperCase().replace(/[^A-Z0-9]/g, "");
225
+ }
226
+ function getStringTableValue(stringTable, index) {
227
+ if (typeof index !== "number") {
228
+ return "UNKNOWN";
229
+ }
230
+ return stringTable[index] ?? "UNKNOWN";
231
+ }
232
+ function isGzip(buffer) {
233
+ return buffer[0] === 0x1f && buffer[1] === 0x8b;
234
+ }
235
+ function isObject(value) {
236
+ return typeof value === "object" && value !== null;
237
+ }
238
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/profile/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_SAMPLY_BIN: string;
2
+ export declare function canAccessPath(filePath: string): Promise<boolean>;
3
+ export declare function findExecutable(filePath: string): Promise<string | null>;
@@ -0,0 +1,34 @@
1
+ import { constants } from "node:fs";
2
+ import { access } from "node:fs/promises";
3
+ import path from "node:path";
4
+ export const DEFAULT_SAMPLY_BIN = process.env.MCP_SAMPLY_BIN || "samply";
5
+ export async function canAccessPath(filePath) {
6
+ try {
7
+ await access(filePath, constants.X_OK);
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ export async function findExecutable(filePath) {
15
+ if (filePath.includes("/") || filePath.includes("\\")) {
16
+ const absolutePath = path.resolve(filePath);
17
+ return (await canAccessPath(absolutePath)) ? absolutePath : null;
18
+ }
19
+ const searchPath = process.env.PATH ?? "";
20
+ const pathEntries = searchPath.split(path.delimiter).filter(Boolean);
21
+ const windowsExtensions = process.platform === "win32"
22
+ ? (process.env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM").split(";")
23
+ : [""];
24
+ for (const pathEntry of pathEntries) {
25
+ for (const extension of windowsExtensions) {
26
+ const candidate = path.join(pathEntry, `${filePath}${extension}`);
27
+ if (await canAccessPath(candidate)) {
28
+ return candidate;
29
+ }
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+ //# sourceMappingURL=executable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executable.js","sourceRoot":"","sources":["../../src/samply/executable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,QAAQ,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,iBAAiB,GACrB,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3D,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEX,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,GAAG,SAAS,EAAE,CAAC,CAAC;YAClE,IAAI,MAAM,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface CommandRunResult {
2
+ stdout: string;
3
+ stderr: string;
4
+ exitCode: number | null;
5
+ signal: NodeJS.Signals | null;
6
+ durationMs: number;
7
+ }
8
+ export declare function runCommand(executable: string, args: string[], options: {
9
+ cwd: string;
10
+ env?: NodeJS.ProcessEnv;
11
+ }): Promise<CommandRunResult>;
@@ -0,0 +1,39 @@
1
+ import { spawn } from "node:child_process";
2
+ const OUTPUT_LIMIT = 64 * 1024;
3
+ export async function runCommand(executable, args, options) {
4
+ const startedAt = Date.now();
5
+ return await new Promise((resolve, reject) => {
6
+ const child = spawn(executable, args, {
7
+ cwd: options.cwd,
8
+ env: options.env,
9
+ stdio: ["ignore", "pipe", "pipe"],
10
+ });
11
+ let stdout = "";
12
+ let stderr = "";
13
+ child.stdout.on("data", (chunk) => {
14
+ stdout = appendWithLimit(stdout, chunk.toString("utf8"));
15
+ });
16
+ child.stderr.on("data", (chunk) => {
17
+ stderr = appendWithLimit(stderr, chunk.toString("utf8"));
18
+ });
19
+ child.on("error", reject);
20
+ child.on("close", (exitCode, signal) => {
21
+ resolve({
22
+ stdout,
23
+ stderr,
24
+ exitCode,
25
+ signal,
26
+ durationMs: Date.now() - startedAt,
27
+ });
28
+ });
29
+ });
30
+ }
31
+ function appendWithLimit(existing, incoming) {
32
+ const combined = existing + incoming;
33
+ if (combined.length <= OUTPUT_LIMIT) {
34
+ return combined;
35
+ }
36
+ const suffix = "\n...[truncated]";
37
+ return combined.slice(0, OUTPUT_LIMIT - suffix.length) + suffix;
38
+ }
39
+ //# sourceMappingURL=process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/samply/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAU3C,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,IAAc,EACd,OAGC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,MAAM,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;YACpC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YACjD,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YACjD,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC;gBACN,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,MAAM;gBACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,QAAgB;IACzD,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC;IAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAClE,CAAC"}
@@ -0,0 +1,36 @@
1
+ export interface SamplyRecordOptions {
2
+ samplyPath?: string | undefined;
3
+ cwd?: string | undefined;
4
+ outputPath?: string | undefined;
5
+ command?: string[] | undefined;
6
+ pid?: number | undefined;
7
+ all?: boolean | undefined;
8
+ rateHz?: number | undefined;
9
+ durationSec?: number | undefined;
10
+ profileName?: string | undefined;
11
+ mainThreadOnly?: boolean | undefined;
12
+ reuseThreads?: boolean | undefined;
13
+ gfx?: boolean | undefined;
14
+ presymbolicate?: boolean | undefined;
15
+ extraArgs?: string[] | undefined;
16
+ env?: NodeJS.ProcessEnv | undefined;
17
+ }
18
+ export interface SamplyRecordResult {
19
+ ok: boolean;
20
+ mode: "command" | "pid" | "all" | "invalid";
21
+ samplyPath: string;
22
+ cwd: string;
23
+ profilePath: string | null;
24
+ sidecarPath: string | null;
25
+ args: string[];
26
+ exitCode: number | null;
27
+ signal: NodeJS.Signals | null;
28
+ durationMs: number;
29
+ stdout: string;
30
+ stderr: string;
31
+ error: string | null;
32
+ installHint: string | null;
33
+ }
34
+ export declare function runSamplyRecord(options: SamplyRecordOptions): Promise<SamplyRecordResult>;
35
+ export declare function buildSamplyRecordArgs(options: SamplyRecordOptions, outputPath: string): string[];
36
+ export declare function resolveSidecarPath(profilePath: string): string;