prismcast 1.3.3 → 1.4.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 (101) hide show
  1. package/dist/app.d.ts +3 -2
  2. package/dist/app.js +32 -17
  3. package/dist/app.js.map +1 -1
  4. package/dist/browser/channelSelection.d.ts +3 -2
  5. package/dist/browser/channelSelection.js +43 -19
  6. package/dist/browser/channelSelection.js.map +1 -1
  7. package/dist/browser/index.d.ts +9 -13
  8. package/dist/browser/index.js +65 -75
  9. package/dist/browser/index.js.map +1 -1
  10. package/dist/browser/tuning/hulu.js +613 -13
  11. package/dist/browser/tuning/hulu.js.map +1 -1
  12. package/dist/browser/tuning/sling.js +1 -1
  13. package/dist/browser/tuning/thumbnailRow.js +69 -71
  14. package/dist/browser/tuning/thumbnailRow.js.map +1 -1
  15. package/dist/browser/tuning/tileClick.js +111 -77
  16. package/dist/browser/tuning/tileClick.js.map +1 -1
  17. package/dist/browser/tuning/youtubeTv.js +5 -5
  18. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  19. package/dist/browser/video.d.ts +3 -10
  20. package/dist/browser/video.js +91 -10
  21. package/dist/browser/video.js.map +1 -1
  22. package/dist/config/index.d.ts +9 -3
  23. package/dist/config/index.js +28 -28
  24. package/dist/config/index.js.map +1 -1
  25. package/dist/config/paths.d.ts +41 -0
  26. package/dist/config/paths.js +88 -0
  27. package/dist/config/paths.js.map +1 -0
  28. package/dist/config/providers.js +1 -1
  29. package/dist/config/sites.js +30 -13
  30. package/dist/config/sites.js.map +1 -1
  31. package/dist/config/userChannels.d.ts +1 -1
  32. package/dist/config/userChannels.js +10 -13
  33. package/dist/config/userChannels.js.map +1 -1
  34. package/dist/config/userConfig.d.ts +14 -7
  35. package/dist/config/userConfig.js +59 -34
  36. package/dist/config/userConfig.js.map +1 -1
  37. package/dist/index.d.ts +11 -1
  38. package/dist/index.js +187 -25
  39. package/dist/index.js.map +1 -1
  40. package/dist/routes/config.js +15 -7
  41. package/dist/routes/config.js.map +1 -1
  42. package/dist/routes/debug.js +41 -6
  43. package/dist/routes/debug.js.map +1 -1
  44. package/dist/routes/index.d.ts +1 -0
  45. package/dist/routes/index.js +3 -0
  46. package/dist/routes/index.js.map +1 -1
  47. package/dist/routes/logs.js +3 -3
  48. package/dist/routes/logs.js.map +1 -1
  49. package/dist/routes/playlist.d.ts +2 -2
  50. package/dist/routes/playlist.js +11 -9
  51. package/dist/routes/playlist.js.map +1 -1
  52. package/dist/routes/root.js +149 -6
  53. package/dist/routes/root.js.map +1 -1
  54. package/dist/routes/theme.js +4 -0
  55. package/dist/routes/theme.js.map +1 -1
  56. package/dist/routes/ui.js +2 -0
  57. package/dist/routes/ui.js.map +1 -1
  58. package/dist/routes/upgrade.d.ts +6 -0
  59. package/dist/routes/upgrade.js +68 -0
  60. package/dist/routes/upgrade.js.map +1 -0
  61. package/dist/service/commands.js +9 -7
  62. package/dist/service/commands.js.map +1 -1
  63. package/dist/service/generators.js +10 -15
  64. package/dist/service/generators.js.map +1 -1
  65. package/dist/streaming/fmp4Segmenter.d.ts +28 -0
  66. package/dist/streaming/fmp4Segmenter.js +140 -47
  67. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  68. package/dist/streaming/hls.js +3 -1
  69. package/dist/streaming/hls.js.map +1 -1
  70. package/dist/streaming/lifecycle.js +13 -6
  71. package/dist/streaming/lifecycle.js.map +1 -1
  72. package/dist/streaming/mp4Parser.d.ts +19 -10
  73. package/dist/streaming/mp4Parser.js +39 -29
  74. package/dist/streaming/mp4Parser.js.map +1 -1
  75. package/dist/streaming/setup.d.ts +2 -0
  76. package/dist/streaming/setup.js +4 -1
  77. package/dist/streaming/setup.js.map +1 -1
  78. package/dist/types/index.d.ts +10 -7
  79. package/dist/types/index.js.map +1 -1
  80. package/dist/upgrade/commands.d.ts +6 -0
  81. package/dist/upgrade/commands.js +210 -0
  82. package/dist/upgrade/commands.js.map +1 -0
  83. package/dist/upgrade/detection.d.ts +15 -0
  84. package/dist/upgrade/detection.js +75 -0
  85. package/dist/upgrade/detection.js.map +1 -0
  86. package/dist/upgrade/index.d.ts +2 -0
  87. package/dist/upgrade/index.js +7 -0
  88. package/dist/upgrade/index.js.map +1 -0
  89. package/dist/utils/fileLogger.d.ts +2 -1
  90. package/dist/utils/fileLogger.js +10 -8
  91. package/dist/utils/fileLogger.js.map +1 -1
  92. package/dist/utils/logger.js +1 -1
  93. package/dist/utils/m3u.js +1 -7
  94. package/dist/utils/m3u.js.map +1 -1
  95. package/dist/utils/platform.d.ts +8 -2
  96. package/dist/utils/platform.js +26 -6
  97. package/dist/utils/platform.js.map +1 -1
  98. package/dist/utils/version.d.ts +18 -0
  99. package/dist/utils/version.js +3 -3
  100. package/dist/utils/version.js.map +1 -1
  101. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"hulu.js","sourceRoot":"","sources":["../../../src/browser/tuning/hulu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hulu.js","sourceRoot":"","sources":["../../../src/browser/tuning/hulu.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,gKAAgK;AAChK,mJAAmJ;AACnJ,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,kKAAkK;AAClK,gKAAgK;AAChK,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,mKAAmK;AACnK,iKAAiK;AACjK,+FAA+F;AAC/F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAgC,CAAC;AAE7D,wIAAwI;AACxI,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEnD,+JAA+J;AAC/J,mKAAmK;AACnK,+IAA+I;AAC/I,MAAM,aAAa,GAAG,2BAA2B,CAAC;AAuClD;;;GAGG;AACH,SAAS,cAAc;IAErB,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,YAAY,CAAC,KAAK,EAAE,CAAC;IACrB,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AAWD;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB,CAAC,IAAU;IAE5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAoD,EAAE;QAEzF,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,8CAA8C,CAAC,CAAC;QAE7F,IAAG,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAE3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,2BAA2B,CAAC;QAC3C,MAAM,OAAO,GAA0C,EAAE,CAAC;QAE1D,KAAI,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAEvC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAEnF,0FAA0F;YAC1F,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YACnB,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,6CAA6C,CAAC,CAAC;YAE5E,IAAG,GAAG,EAAE,CAAC;gBAEP,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;gBAEnE,IAAG,MAAM,EAAE,CAAC;oBAEV,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAEtD,IAAG,KAAK,EAAE,CAAC;wBAET,6FAA6F;wBAC7F,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,IAAG,CAAC,QAAQ,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wDAAwD;IACxD,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAExC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEvB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QAEvE,yDAAyD;QACzD,IAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAErB,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,eAAe,CAAC,IAAU,EAAE,UAAkB;IAE3D,OAAO,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAc,EAAsC,EAAE;QAEpF,MAAM,MAAM,GAAG,2BAA2B,CAAC;QAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;QAElF,KAAI,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAEvC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAEnF,IAAG,IAAI,KAAK,MAAM,EAAE,CAAC;gBAEnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;gBAE3D,IAAG,CAAC,GAAG,EAAE,CAAC;oBAER,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,0BAA0B,CAA0B,CAAC;gBAErF,IAAG,CAAC,KAAK,EAAE,CAAC;oBAEV,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,KAAK,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAEjF,MAAM,IAAI,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBAE3C,IAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;oBAEzC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzE,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,4JAA4J;AAC5J,yJAAyJ;AACzJ,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,yJAAyJ;AACzJ,iJAAiJ;AACjJ,2JAA2J;AAC3J,0GAA0G;AAC1G,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC,CAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAC;AAE3F;;;;;;;;;;;;;;;GAeG;AACH,SAAS,mBAAmB,CAAC,QAA2B,EAAE,UAAkB;IAE1E,2JAA2J;IAC3J,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAI,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAEzB,IAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAEpC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,yGAAyG;IACzG,IAAG,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IAChF,IAAI,iBAAiB,GAAG,CAAC,CAAC,CAAC;IAE3B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAEvC,IAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAEjD,iBAAiB,GAAG,CAAC,CAAC;YAEtB,MAAM;QACR,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,IAAI,aAAqB,CAAC;IAC1B,IAAI,aAAqB,CAAC;IAE1B,IAAG,iBAAiB,KAAK,CAAC,EAAE,CAAC;QAE3B,gFAAgF;QAChF,aAAa,GAAG,CAAC,CAAC,CAAC;QACnB,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtC,CAAC;SAAM,IAAG,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;QAEnC,6EAA6E;QAC7E,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrD,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,CAAC;SAAM,CAAC;QAEN,oCAAoC;QACpC,aAAa,GAAG,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxD,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC;IACtD,CAAC;IAED,oEAAoE;IACpE,KAAI,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAEzB,IAAG,CAAC,EAAE,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAErG,OAAO,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,YAAqB,EAAE,OAAgB;IAElF,IAAG,CAAC,YAAY,EAAE,CAAC;QAEjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC;QAEH,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/G,6JAA6J;QAC7J,4JAA4J;QAC5J,gJAAgJ;QAChJ,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1I,2JAA2J;QAC3J,mCAAmC;QACnC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,QAAgB,EAAsC,EAAE;YAExG,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAA0B,CAAC;YAErE,IAAG,CAAC,EAAE,EAAE,CAAC;gBAEP,OAAO,IAAI,CAAC;YACd,CAAC;YAED,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE9E,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;YAExC,IAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBAEzC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YACzE,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAEnB,IAAG,CAAC,UAAU,EAAE,CAAC;YAEf,OAAO,EAAE,MAAM,EAAE,gBAAgB,GAAG,YAAY,GAAG,+BAA+B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvG,CAAC;QAED,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAEvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,OAAO,EAAE,MAAM,EAAE,gCAAgC,GAAG,YAAY,GAAG,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvH,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,qBAAqB,CAAC,IAAU,EAAE,WAAmB,EAAE,YAAgC,EAAE,WAAmB;IAEzH,gJAAgJ;IAChJ,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAE7B,8JAA8J;IAC9J,iIAAiI;IACjI,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAEhC,+FAA+F;IAC/F,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAE/B,sEAAsE;IACtE,IAAI,eAAe,GAA0B,IAAI,CAAC;IAElD,KAAI,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAAC;QAE7D,4CAA4C;QAC5C,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAE7D,IAAG,CAAC,WAAW,EAAE,CAAC;YAEhB,OAAO,EAAE,MAAM,EAAE,gBAAgB,GAAG,WAAW,GAAG,4CAA4C,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnH,CAAC;QAED,eAAe,GAAG,WAAW,CAAC;QAE9B,4CAA4C;QAC5C,MAAM,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAExC,yIAAyI;QACzI,MAAM,WAAW,GAAG,CAAC,OAAO,GAAG,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAExF,4CAA4C;QAC5C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAExE,IAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAElB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uJAAuJ;QACvJ,gFAAgF;QAChF,IAAG,OAAO,GAAG,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAEpC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,2EAA2E,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEnK,4CAA4C;YAC5C,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,4JAA4J;IAC5J,kHAAkH;IAClH,IAAG,eAAe,EAAE,CAAC;QAEnB,IAAI,CAAC;YAEH,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc,EAKrF,EAAE;gBAEF,kJAAkJ;gBAClJ,6BAA6B;gBAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;oBAEnD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;oBACrC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtC,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrI,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBACpD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAErE,OAAO,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,iJAAiJ;gBACjJ,8IAA8I;gBAC9I,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,MAAM,MAAM,GAAG,2BAA2B,CAAC;gBAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;gBAElF,KAAI,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBAEvC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBACpD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;oBAEnF,IAAG,IAAI,KAAK,MAAM,EAAE,CAAC;wBAEnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;wBAE3D,IAAG,GAAG,EAAE,CAAC;4BAEP,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;4BAE5D,IAAG,KAAK,EAAE,CAAC;gCAET,UAAU,GAAG,IAAI,CAAC;gCAClB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;4BAC1G,CAAC;wBACH,CAAC;wBAED,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACxF,CAAC,EAAE,CAAE,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,WAAW,CAAE,CAAC,CAAC;YAE1D,GAAG,CAAC,IAAI,CAAC,qGAAqG,EAC5G,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAChF,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,GAAG,CAAC,IAAI,CAAC,uDAAuD,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,mCAAmC,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,kCAAkC,GAAG,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC/J,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,eAAe,CAAC,IAAU,EAAE,WAAmB,EAAE,UAAkB,EAAE,WAAmB;IAErG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAS,EAAE,CAAS,EAAW,EAAE;QAErE,MAAM,QAAQ,GAAI,MAA6C,CAAC,4BAA4B,CAAC;QAE7F,IAAG,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YAElC,OAAQ,QAAmD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAE5B,IAAG,CAAC,QAAQ,EAAE,CAAC;QAEb,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,2EAA2E,EAAE,WAAW,CAAC,CAAC;QAEnH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iJAAiJ;IACjJ,IAAI,CAAC;QAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,mDAAmD,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,yEAAyE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAE9H,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAU;IAE3C,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAS,EAAE;QAE7B,MAAM,OAAO,GAAI,MAA6C,CAAC,0BAA0B,CAAC;QAE1F,IAAG,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAEhC,OAAsB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,OAAgC;IAE3E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IACnE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC;IAExD,kKAAkK;IAClK,kKAAkK;IAClK,4JAA4J;IAC5J,6CAA6C;IAC7C,IAAG,YAAY,EAAE,CAAC;QAEhB,IAAI,CAAC;YAEH,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACpG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,GAAI,EAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzE,2EAA2E;YAC3E,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,GAAG,CAAC,IAAI,CAAC,+CAA+C,EAAE,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,8JAA8J;IAC9J,iHAAiH;IACjH,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAI,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;QAE3D,IAAI,CAAC;YAEH,MAAM,UAAU,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;YAE/E,4CAA4C;YAC5C,MAAM,IAAI,CAAC,eAAe,CAAC,kCAAkC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACvG,WAAW,GAAG,IAAI,CAAC;YAEnB,MAAM;QACR,CAAC;QAAC,MAAM,CAAC;YAEP,0GAA0G;YAC1G,IAAG,CAAC,YAAY,KAAK,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC;gBAExC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,uEAAuE,EAAE,YAAY,CAAC,CAAC;gBAEhH,IAAI,CAAC;oBAEH,4CAA4C;oBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,GAAI,EAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEzE,4CAA4C;oBAC5C,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBAEP,0DAA0D;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAG,CAAC,WAAW,EAAE,CAAC;QAEhB,OAAO,EAAE,MAAM,EAAE,mCAAmC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,gIAAgI;IAChI,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,sGAAsG;IACtG,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEzD,8JAA8J;IAC9J,4JAA4J;IAC5J,uIAAuI;IACvI,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAiB,EAAuD,EAAE;QAE9G,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC;QAEvE,IAAG,CAAC,GAAG,EAAE,CAAC;YAER,OAAO,IAAI,CAAC;QACd,CAAC;QAED,oDAAoD;QACpD,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC;QAEjC,IAAG,CAAC,MAAM,EAAE,CAAC;YAEX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAEzC,IAAG,YAAY,GAAG,SAAS,EAAE,CAAC;YAE5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,+GAA+G;QAC/G,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC;QAEtC,IAAG,CAAC,QAAQ,EAAE,CAAC;YAEb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC;QAE7F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;IACzE,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,IAAG,CAAC,QAAQ,EAAE,CAAC;QAEb,OAAO,EAAE,MAAM,EAAE,+CAA+C,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrF,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;IAE3C,iFAAiF;IACjF,MAAM,WAAW,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;QAE5D,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAgB,EAAQ,EAAE;YAE7C,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,QAAQ,CAAC;QAChD,CAAC,EAAE,UAAU,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;QAEzC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,yJAAyJ;IACzJ,IAAI,WAAW,GAAG,cAAc,CAAC;IAEjC,4JAA4J;IAC5J,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEpD,IAAG,SAAS,KAAK,SAAS,EAAE,CAAC;QAE3B,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,mCAAmC,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAEtF,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAE7B,iFAAiF;QACjF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAElD,IAAG,QAAQ,EAAE,CAAC;YAEZ,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YAEhE,IAAG,KAAK,EAAE,CAAC;gBAET,OAAO,MAAM,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,wIAAwI;QACxI,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,yDAAyD,EAAE,WAAW,CAAC,CAAC;QAEjG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAED,4JAA4J;IAC5J,yJAAyJ;IACzJ,8JAA8J;IAC9J,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;IACzB,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,KAAI,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;QAE9D,IAAG,GAAG,GAAG,IAAI,EAAE,CAAC;YAEd,MAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzC,4CAA4C;QAC5C,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QAEvB,gFAAgF;QAChF,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAElD,IAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAExC,SAAS;QACX,CAAC;QAED,kCAAkC;QAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAErE,IAAG,UAAU,EAAE,CAAC;YAEd,KAAK,GAAG,IAAI,CAAC;YAEb,MAAM;QACR,CAAC;QAED,uJAAuJ;QACvJ,uJAAuJ;QACvJ,qDAAqD;QACrD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/E,IAAG,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAE7B,wGAAwG;YACxG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YAEd,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAExD,IAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAE3C,qGAAqG;YACrG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YAEf,SAAS;QACX,CAAC;QAED,IAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAE1C,sGAAsG;YACtG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YAEd,SAAS;QACX,CAAC;QAED,2JAA2J;QAC3J,qIAAqI;QACrI,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAE/D,IAAG,QAAQ,EAAE,CAAC;YAEZ,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,kDAAkD,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAEpG,WAAW,GAAG,QAAQ,CAAC;YACvB,KAAK,GAAG,IAAI,CAAC;YAEb,uHAAuH;YACvH,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEhD,IAAG,WAAW,KAAK,SAAS,EAAE,CAAC;gBAE7B,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACjD,CAAC;YAED,uJAAuJ;YACvJ,wJAAwJ;YACxJ,4HAA4H;YAC5H,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEjD,IAAG,YAAY,EAAE,CAAC;gBAEhB,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBAEhD,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,qEAAqE,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAErI,mJAAmJ;gBACnJ,qJAAqJ;gBACrJ,6IAA6I;gBAC7I,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;gBAEhD,IAAG,UAAU,EAAE,CAAC;oBAEd,4CAA4C;oBAC5C,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;oBAE3F,IAAG,eAAe,EAAE,CAAC;wBAEnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM;IACR,CAAC;IAED,8JAA8J;IAC9J,6JAA6J;IAC7J,kDAAkD;IAClD,IAAG,CAAC,KAAK,EAAE,CAAC;QAEV,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,+DAA+D,EAAE,WAAW,CAAC,CAAC;QAEvG,KAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;YAE5C,4CAA4C;YAC5C,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;YAEvB,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAElD,IAAG,CAAC,QAAQ,EAAE,CAAC;gBAEb,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YAEhE,IAAG,KAAK,EAAE,CAAC;gBAET,KAAK,GAAG,IAAI,CAAC;gBAEb,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAG,CAAC,KAAK,EAAE,CAAC;QAEV,gKAAgK;QAChK,yIAAyI;QACzI,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAElE,IAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAEhC,oBAAoB,CAAC;gBAEnB,iBAAiB;gBACjB,WAAW;gBACX,QAAQ,EAAE,8BAA8B;gBACxC,YAAY,EAAE,OAAO;gBACrB,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,yBAAyB,GAAG,WAAW,GAAG,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACjG,CAAC;IAED,6JAA6J;IAC7J,yJAAyJ;IACzJ,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEhC,mHAAmH;IACnH,OAAO,MAAM,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,OAAgC;IAE5E,IAAI,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEpD,IAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAEnB,GAAG,CAAC,IAAI,CAAC,2EAA2E,EAAE,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC,CAAC;QAEzH,IAAI,CAAC;YAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,sCAAsC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gCAAgC,CAAC,IAAU;IAElD,IAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAEpC,OAAO;IACT,CAAC;IAED,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEjC,oJAAoJ;IACpJ,0FAA0F;IAC1F,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAExB,IAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAElC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,6JAA6J;QAC7J,wIAAwI;QACxI,IAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEnC,IAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBAEb,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAE7C,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAErC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,qEAAqE,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;YACzI,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;QAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QAE3B,IAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC;YAE7B,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,IAAG,GAAG,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;YAEhD,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAyB,EAAE,EAAE;gBAEtD,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAE9B,OAAO;gBACT,CAAC;gBAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;gBAEvC,KAAI,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE/B,IAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;wBAEzB,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC5D,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,iEAAiE,EACxF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAEZ,gHAAgH;YAClH,CAAC,CAAC,CAAC;YAEH,OAAO;QACT,CAAC;QAED,wJAAwJ;QACxJ,0JAA0J;QAC1J,IAAG,GAAG,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;YAEhD,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAyB,EAAE,EAAE;gBAEtD,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAEjC,OAAO;gBACT,CAAC;gBAED,IAAI,YAAY,GAAG,CAAC,CAAC;gBAErB,KAAI,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAEnC,IAAG,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;wBAElF,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC/C,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,4DAA4D,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;YAChJ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAEZ,gHAAgH;YAClH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,WAAmB;IAEzC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE/C,IAAG,CAAC,QAAQ,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAE9B,IAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAErG,OAAO,OAAO,CAAC,GAAG,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,oBAAoB,CAAC,eAAuB,EAAE,IAAU;IAErE,MAAM,cAAc,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;IAE7D,8JAA8J;IAC9J,2FAA2F;IAC3F,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAEvC,+JAA+J;IAC/J,8JAA8J;IAC9J,yJAAyJ;IACzJ,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;IAErD,IAAG,WAAW,EAAE,CAAC;QAEf,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,4DAA4D,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjI,CAAC;SAAM,IAAG,CAAC,UAAU,EAAE,CAAC;QAEtB,mJAAmJ;QACnJ,sIAAsI;QACtI,IAAG,6BAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAErD,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,2FAA2F,EAAE,eAAe,CAAC,CAAC;QACzI,CAAC;aAAM,CAAC;YAEN,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,4FAA4F,EAAE,eAAe,CAAC,CAAC;QAC1I,CAAC;IACH,CAAC;SAAM,CAAC;QAEN,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,2GAA2G,EAAE,eAAe,CAAC,CAAC;IACzJ,CAAC;IAED,2JAA2J;IAC3J,qJAAqJ;IACrJ,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE5D,6JAA6J;IAC7J,6JAA6J;IAC7J,oBAAoB;IACpB,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAI,MAAM,WAAW,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAE7C,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAG,UAAU,EAAE,CAAC;YAEd,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC;QAEH,gKAAgK;QAChK,gIAAgI;QAChI,MAAM,iBAAiB,GAAG,IAAI,CAAC;QAE/B,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAC/B,WAAmB,EAAE,UAAkB,EAAE,WAAqB,EAAE,UAAoB,EACpF,UAAkB,EAAE,YAAqB,EACnC,EAAE;YAER,qJAAqJ;YACrJ,uGAAuG;YACvG,IAAI,CAAC;gBAEH,IAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;oBAE9B,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBAEP,OAAO;YACT,CAAC;YAED;;eAEG;YACH,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhD,8IAA8I;YAC9I,mGAAmG;YACnG,IAAI,IAAI,GAAG,WAAW,CAAC;YACvB,IAAI,GAAG,GAAG,UAAU,CAAC;YAErB,2JAA2J;YAC3J,2HAA2H;YAC3H,IAAI,UAAU,GAAG,YAAY,CAAC;YAE9B,2JAA2J;YAC3J,uJAAuJ;YACvJ,4FAA4F;YAC5F,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAEhC,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,2CAA2C,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEnK,yJAAyJ;YACzJ,wJAAwJ;YACxJ,gEAAgE;YAChE,IAAI,iBAAiB,GAAyB,IAAI,CAAC;YAEnD,MAAM,iBAAiB,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;gBACvC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnB,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnE,wJAAwJ;YACxJ,6HAA6H;YAC7H,SAAS,oBAAoB;gBAE3B,IAAG,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBAEpC,iBAAiB,EAAE,CAAC;oBACpB,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,2JAA2J;YAC3J,wJAAwJ;YACxJ,wJAAwJ;YACxJ,yEAAyE;YACxE,MAA6C,CAAC,4BAA4B,GAAG,CAAC,CAAS,EAAE,CAAS,EAAW,EAAE;gBAE9G,IAAG,CAAC,iBAAiB,EAAE,CAAC;oBAEtB,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,GAAG,CAAC,CAAC;gBACT,GAAG,GAAG,CAAC,CAAC;gBACR,oBAAoB,EAAE,CAAC;gBAEvB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YAEF,0JAA0J;YAC1J,4JAA4J;YAC5J,+FAA+F;YAC9F,MAA6C,CAAC,0BAA0B,GAAG,GAAS,EAAE;gBAErF,UAAU,GAAG,KAAK,CAAC;gBAEnB,IAAG,iBAAiB,EAAE,CAAC;oBAErB,iBAAiB,EAAE,CAAC;oBACpB,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC;YAEF,yJAAyJ;YACzJ,uIAAuI;YACvI,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;YAEtD,yJAAyJ;YACzJ,oJAAoJ;YACpJ,uJAAuJ;YACvJ,4FAA4F;YAC5F,IAAI,sBAAsB,GAAyB,IAAI,CAAC;YAExD,MAAM,sBAAsB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAE3D,sBAAsB,GAAG,OAAO,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,wJAAwJ;YACxJ,mJAAmJ;YACnJ,SAAS,kBAAkB,CAAC,QAAkB;gBAE5C,IAAI,CAAC;oBAEH,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAA6B,EAAE,EAAE;wBAElE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBAE/B,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAE5B,OAAO;wBACT,CAAC;wBAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBACvB,IAAI,QAAQ,GAAG,CAAC,CAAC;wBAEjB,KAAI,MAAM,OAAO,IAAI,QAAqC,EAAE,CAAC;4BAE3D,IAAG,CAAC,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAExE,SAAS;4BACX,CAAC;4BAED,KAAI,MAAM,OAAO,IAAI,OAAO,CAAC,QAAqC,EAAE,CAAC;gCAEnE,IAAG,CAAC,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE,CAAC;oCAE7H,IAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;wCAErG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;wCACjD,QAAQ,EAAE,CAAC;wCAEX,MAAM;oCACR,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,IAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;4BAEhB,sCAAsC;4BACtC,OAAO,CAAC,GAAG,CAAC,yCAAyC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,sCAAsC,CAAC,CAAC;wBACrH,CAAC;wBAED,+IAA+I;wBAC/I,oHAAoH;wBACpH,IAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;4BAEhB,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4BAElD,IAAG,WAAW,EAAE,CAAC;gCAEf,GAAG,GAAG,WAAW,CAAC;gCAClB,oBAAoB,EAAE,CAAC;4BACzB,CAAC;wBACH,CAAC;wBAED,8HAA8H;wBAC9H,IAAG,sBAAsB,EAAE,CAAC;4BAE1B,sBAAsB,EAAE,CAAC;4BACzB,sBAAsB,GAAG,IAAI,CAAC;wBAChC,CAAC;oBACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAA4B,CAAC,CAAC,CAAC;gBAC/C,CAAC;gBAAC,MAAM,CAAC;oBAEP,sEAAsE;gBACxE,CAAC;YACH,CAAC;YAED,uJAAuJ;YACvJ,uJAAuJ;YACvJ,0JAA0J;YAC1J,oFAAoF;YACpF,SAAS,kBAAkB,CAAC,QAAkB;gBAE5C,IAAG,IAAI,EAAE,CAAC;oBAER,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC;oBAEH,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAA6B,EAAE,EAAE;wBAElE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;wBAEzB,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BAEzB,OAAO;wBACT,CAAC;wBAED,KAAI,MAAM,IAAI,IAAI,KAAkC,EAAE,CAAC;4BAErD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAmD,CAAC;4BAEtE,IAAG,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;gCAE5E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gCAEjE,IAAG,IAAI,KAAK,UAAU,EAAE,CAAC;oCAEvB,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;oCAEf,sCAAsC;oCACtC,OAAO,CAAC,GAAG,CAAC,2CAA2C,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;oCAE7F,2IAA2I;oCAC3I,mFAAmF;oCACnF,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oCAElD,IAAG,WAAW,EAAE,CAAC;wCAEf,GAAG,GAAG,WAAW,CAAC;oCACpB,CAAC;oCAED,oBAAoB,EAAE,CAAC;oCAEvB,MAAM;gCACR,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAA4B,CAAC,CAAC,CAAC;gBAC/C,CAAC;gBAAC,MAAM,CAAC;oBAEP,sEAAsE;gBACxE,CAAC;YACH,CAAC;YAED,qJAAqJ;YACrJ,qHAAqH;YACrH,KAAK,UAAU,WAAW,CAAC,KAAwB,EAAE,IAAkB;gBAErE,IAAG,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBAE3C,OAAO,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC;gBAED,IAAG,KAAK,YAAY,OAAO,EAAE,CAAC;oBAE5B,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;gBACpC,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YAED,oJAAoJ;YACpJ,wJAAwJ;YACxJ,uHAAuH;YACvH,KAAK,UAAU,aAAa,CAAC,KAAwB,EAAE,IAA6B,EAAE,IAAY;gBAEhG,IAAG,KAAK,YAAY,OAAO,EAAE,CAAC;oBAE5B,OAAO,MAAM,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE;wBAEpC,IAAI;wBACJ,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;YAED,kHAAkH;YAClH,MAAM,CAAC,KAAK,GAAG,KAAK,WAAU,KAAwB,EAAE,IAAkB;gBAExE,MAAM,GAAG,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;gBAElG,gJAAgJ;gBAChJ,sJAAsJ;gBACtJ,+HAA+H;gBAC/H,IAAG,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAEpE,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAEnD,IAAG,WAAW,EAAE,CAAC;wBAEf,IAAI,CAAC;4BAEH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAA4B,CAAC;4BAEtE,IAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAEtC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAoB,CAAC,CAAC;gCAE1D,KAAI,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;oCAE5B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCACnB,CAAC;gCAED,UAAU,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gCAEpC,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gCAErF,kBAAkB,CAAC,eAAe,CAAC,CAAC;gCAEpC,OAAO,eAAe,CAAC;4BACzB,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BAEP,8CAA8C;wBAChD,CAAC;oBACH,CAAC;oBAED,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAE5D,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;oBAEvC,OAAO,kBAAkB,CAAC;gBAC5B,CAAC;gBAED,iJAAiJ;gBACjJ,+IAA+I;gBAC/I,oJAAoJ;gBACpJ,8HAA8H;gBAC9H,IAAG,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAEpE,mJAAmJ;oBACnJ,mJAAmJ;oBACnJ,2FAA2F;oBAC3F,IAAG,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;wBAEjE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,sBAAsB,EAAE,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;oBACjH,CAAC;oBAED,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAEnD,IAAG,WAAW,EAAE,CAAC;wBAEf,IAAI,CAAC;4BAEH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAA4B,CAAC;4BAEtE,IAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gCAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAgB,CAAC,CAAC;gCAEtD,wHAAwH;gCACxH,KAAI,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;oCAE3B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCACnB,CAAC;gCAED,gIAAgI;gCAChI,KAAI,MAAM,WAAW,IAAI,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;oCAEtD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gCAC5B,CAAC;gCAED,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gCAEhC,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gCAEtF,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;gCAErC,OAAO,gBAAgB,CAAC;4BAC1B,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BAEP,8CAA8C;wBAChD,CAAC;oBACH,CAAC;oBAED,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAE5D,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;oBAEvC,OAAO,kBAAkB,CAAC;gBAC5B,CAAC;gBAED,qJAAqJ;gBACrJ,qJAAqJ;gBACrJ,IAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAE7D,+IAA+I;oBAC/I,uJAAuJ;oBACvJ,sJAAsJ;oBACtJ,wJAAwJ;oBACxJ,IAAG,UAAU,EAAE,CAAC;wBAEd,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,iBAAiB,EAAE,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;oBAC5G,CAAC;oBAED,IAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;wBAEjB,uJAAuJ;wBACvJ,kJAAkJ;wBAClJ,8GAA8G;wBAC9G,IAAG,CAAC,UAAU,EAAE,CAAC;4BAEf,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;4BAErD,IAAG,aAAa,EAAE,CAAC;gCAEjB,IAAI,CAAC;oCAEH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAA4B,CAAC;oCAErE,IAAG,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC;wCAEhF,IAAG,mBAAmB,EAAE,CAAC;4CAEvB,sCAAsC;4CACtC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,UAAU,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;wCACvE,CAAC;wCAED,mBAAmB,GAAG,IAAI,CAAC;oCAC7B,CAAC;gCACH,CAAC;gCAAC,MAAM,CAAC;oCAEP,mCAAmC;gCACrC,CAAC;gCAED,iGAAiG;gCACjG,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;4BACnD,CAAC;4BAED,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;wBACpC,CAAC;wBAED,sCAAsC;wBACtC,OAAO,CAAC,GAAG,CAAC,6DAA6D,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;wBAEpJ,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACpC,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAEhD,IAAG,QAAQ,EAAE,CAAC;wBAEZ,IAAI,CAAC;4BAEH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAC;4BAEhE,IAAG,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;gCAElC,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gCAErD,qCAAqC;gCACrC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gCAE1B,qCAAqC;gCACrC,OAAO,CAAC,cAAc,GAAG,GAAG,CAAC;gCAE7B,sCAAsC;gCACtC,OAAO,CAAC,GAAG,CAAC,2CAA2C,GAAG,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC;gCAEjH,OAAO,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;4BACnE,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BAEP,8CAA8C;wBAChD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC;QACJ,CAAC,EAAE,UAAU,IAAI,EAAE,EAAE,SAAS,IAAI,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC3G,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,+CAA+C,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qJAAqJ;IACrJ,8IAA8I;IAC9I,mEAAmE;IACnE,IAAG,CAAC,UAAU,IAAI,6BAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAEpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,iDAAiD,EAAE,aAAa,CAAC,CAAC;IAE3F,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,eAAuB;IAEtD,aAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAyB;IAEhD,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,kBAAkB;IAC3B,mBAAmB,EAAE,uBAAuB;IAC5C,gBAAgB,EAAE,oBAAoB;CACvC,CAAC"}
@@ -180,7 +180,7 @@ async function clickWithRetry(page, initialTarget, normalizedName, channelName)
180
180
  }
181
181
  /**
182
182
  * Looks up a channel GUID from the cache by normalized name. Falls back to local affiliate prefix matching where the cache key starts with the target name
183
- * followed by " (" (e.g., "abc" matches "abc (wls)"). On a prefix match, caches the GUID under the primary name for O(1) on subsequent lookups.
183
+ * followed by " (" (e.g., "abc" matches "abc (wabc)"). On a prefix match, caches the GUID under the primary name for O(1) on subsequent lookups.
184
184
  * @param normalizedName - The normalized (lowercased, trimmed) channel name.
185
185
  * @returns The channel GUID or null if not cached.
186
186
  */
@@ -1,91 +1,89 @@
1
+ import { resolveMatchSelector, scrollAndClick } from "../channelSelection.js";
1
2
  import { CONFIG } from "../../config/index.js";
2
3
  import { evaluateWithAbort } from "../../utils/index.js";
3
- import { scrollAndClick } from "../channelSelection.js";
4
4
  /**
5
- * Thumbnail row strategy: finds a channel by matching the slug in thumbnail image URLs, then clicks an adjacent clickable element on the same row. This strategy
6
- * works for sites like USA Network where channels are displayed as rows with a thumbnail on the left and program entries to the right.
5
+ * Thumbnail row strategy: finds a channel element using the profile's matchSelector (defaults to image URL matching), then clicks an adjacent clickable element on
6
+ * the same row. This strategy works for sites like USA Network where channels are displayed as rows with a thumbnail on the left and program entries to the right.
7
7
  *
8
8
  * The selection process:
9
- * 1. Search all images on the page for one whose src URL contains the channel slug
10
- * 2. Verify the image has dimensions (is rendered and visible)
11
- * 3. Walk up the DOM to find a container wide enough to hold both thumbnail and guide entries
12
- * 4. Search for clickable elements (links, buttons, cards) to the right of the thumbnail on the same row
9
+ * 1. Find channel elements matching the resolved matchSelector CSS selector
10
+ * 2. Verify the first visible match has dimensions (is rendered and visible)
11
+ * 3. Walk up the DOM to find a container wide enough to hold both the channel element and guide entries
12
+ * 4. Search for clickable elements (links, buttons, cards) to the right of the channel element on the same row
13
13
  * 5. Fall back to divs with cursor:pointer if no semantic clickables found
14
14
  * 6. Click the found element to switch to the channel
15
15
  * @param page - The Puppeteer page object.
16
- * @param profile - The resolved site profile with a non-null channelSelector (image URL slug).
16
+ * @param profile - The resolved site profile with a non-null channelSelector.
17
17
  * @returns Result object with success status and optional failure reason.
18
18
  */
19
19
  async function thumbnailRowStrategyFn(page, profile) {
20
- const channelSlug = profile.channelSelector;
21
- // Find clickable element by evaluating DOM. The logic walks through the page looking for channel thumbnail images, then finds clickable show entries on the
22
- // same row.
23
- const clickTarget = await evaluateWithAbort(page, (slug) => {
24
- const images = document.querySelectorAll("img");
25
- for (const img of Array.from(images)) {
26
- // Channel thumbnails have URLs containing the channel slug pattern. Match against the src URL.
27
- if (img.src.includes(slug)) {
28
- const imgRect = img.getBoundingClientRect();
29
- // Verify the image has dimensions (is actually rendered and visible).
30
- if ((imgRect.width > 0) && (imgRect.height > 0)) {
31
- // Found the channel thumbnail. Now walk up the DOM tree to find a container that holds both the thumbnail and the guide entries for this row.
32
- let rowContainer = img.parentElement;
33
- while (rowContainer && (rowContainer !== document.body)) {
34
- const containerRect = rowContainer.getBoundingClientRect();
35
- // Look for a container significantly wider than the thumbnail (indicating it contains more than just the image). The factor of 2 is a heuristic
36
- // that works for typical channel guide layouts.
37
- if (containerRect.width > (imgRect.width * 2)) {
38
- // This container is wide enough to contain guide entries. Search for clickable elements (show cards) to the right of the thumbnail.
39
- const clickables = rowContainer.querySelectorAll("a, button, [role=\"button\"], [onclick], [class*=\"card\"], [class*=\"program\"], [class*=\"show\"], [class*=\"episode\"]");
40
- const imgCenterY = imgRect.y + (imgRect.height / 2);
41
- for (const clickable of Array.from(clickables)) {
42
- const clickRect = clickable.getBoundingClientRect();
43
- const clickCenterY = clickRect.y + (clickRect.height / 2);
44
- // The guide entry must meet these criteria:
45
- // - To the right of the thumbnail (with small tolerance for overlapping borders)
46
- // - Has dimensions (is visible)
47
- // - On the same row (vertical center within thumbnail height)
48
- const isRightOfThumbnail = clickRect.x > (imgRect.x + imgRect.width - 10);
49
- const hasDimensions = (clickRect.width > 0) && (clickRect.height > 0);
50
- const isSameRow = Math.abs(clickCenterY - imgCenterY) < imgRect.height;
51
- if (isRightOfThumbnail && hasDimensions && isSameRow) {
52
- // Found a suitable click target. Scroll it into view and return its center coordinates.
53
- clickable.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
54
- const newRect = clickable.getBoundingClientRect();
55
- return { x: newRect.x + (newRect.width / 2), y: newRect.y + (newRect.height / 2) };
56
- }
20
+ const selector = resolveMatchSelector(profile);
21
+ // Find clickable element by evaluating DOM. The logic queries for elements matching the resolved matchSelector, then finds clickable show entries on the same
22
+ // row.
23
+ const clickTarget = await evaluateWithAbort(page, (sel) => {
24
+ const elements = document.querySelectorAll(sel);
25
+ for (const el of Array.from(elements)) {
26
+ const htmlEl = el;
27
+ const elRect = htmlEl.getBoundingClientRect();
28
+ // Verify the element has dimensions (is actually rendered and visible).
29
+ if ((elRect.width > 0) && (elRect.height > 0)) {
30
+ // Found the channel element. Now walk up the DOM tree to find a container that holds both the element and the guide entries for this row.
31
+ let rowContainer = htmlEl.parentElement;
32
+ while (rowContainer && (rowContainer !== document.body)) {
33
+ const containerRect = rowContainer.getBoundingClientRect();
34
+ // Look for a container significantly wider than the channel element (indicating it contains more than just the element). The factor of 2 is a
35
+ // heuristic that works for typical channel guide layouts.
36
+ if (containerRect.width > (elRect.width * 2)) {
37
+ // This container is wide enough to contain guide entries. Search for clickable elements (show cards) to the right of the channel element.
38
+ const clickables = rowContainer.querySelectorAll("a, button, [role=\"button\"], [onclick], [class*=\"card\"], [class*=\"program\"], [class*=\"show\"], [class*=\"episode\"]");
39
+ const elCenterY = elRect.y + (elRect.height / 2);
40
+ for (const clickable of Array.from(clickables)) {
41
+ const clickRect = clickable.getBoundingClientRect();
42
+ const clickCenterY = clickRect.y + (clickRect.height / 2);
43
+ // The guide entry must meet these criteria:
44
+ // - To the right of the channel element (with small tolerance for overlapping borders)
45
+ // - Has dimensions (is visible)
46
+ // - On the same row (vertical center within channel element height)
47
+ const isRightOfElement = clickRect.x > (elRect.x + elRect.width - 10);
48
+ const hasDimensions = (clickRect.width > 0) && (clickRect.height > 0);
49
+ const isSameRow = Math.abs(clickCenterY - elCenterY) < elRect.height;
50
+ if (isRightOfElement && hasDimensions && isSameRow) {
51
+ // Found a suitable click target. Scroll it into view and return its center coordinates.
52
+ clickable.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
53
+ const newRect = clickable.getBoundingClientRect();
54
+ return { x: newRect.x + (newRect.width / 2), y: newRect.y + (newRect.height / 2) };
57
55
  }
58
- // Fallback: if no semantically clickable elements found, look for divs with cursor: pointer styling. These are often custom-styled click
59
- // handlers.
60
- const allDivs = rowContainer.querySelectorAll("div");
61
- for (const div of Array.from(allDivs)) {
62
- const divRect = div.getBoundingClientRect();
63
- const divCenterY = divRect.y + (divRect.height / 2);
64
- const style = window.getComputedStyle(div);
65
- const isRightOfThumbnail = divRect.x > (imgRect.x + imgRect.width - 10);
66
- const hasDimensions = (divRect.width > 20) && (divRect.height > 20);
67
- const isClickable = style.cursor === "pointer";
68
- const isSameRow = Math.abs(divCenterY - imgCenterY) < imgRect.height;
69
- if (isRightOfThumbnail && hasDimensions && isClickable && isSameRow) {
70
- div.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
71
- const newRect = div.getBoundingClientRect();
72
- return { x: newRect.x + (newRect.width / 2), y: newRect.y + (newRect.height / 2) };
73
- }
56
+ }
57
+ // Fallback: if no semantically clickable elements found, look for divs with cursor: pointer styling. These are often custom-styled click
58
+ // handlers.
59
+ const allDivs = rowContainer.querySelectorAll("div");
60
+ for (const div of Array.from(allDivs)) {
61
+ const divRect = div.getBoundingClientRect();
62
+ const divCenterY = divRect.y + (divRect.height / 2);
63
+ const style = window.getComputedStyle(div);
64
+ const isRightOfElement = divRect.x > (elRect.x + elRect.width - 10);
65
+ const hasDimensions = (divRect.width > 20) && (divRect.height > 20);
66
+ const isClickable = style.cursor === "pointer";
67
+ const isSameRow = Math.abs(divCenterY - elCenterY) < elRect.height;
68
+ if (isRightOfElement && hasDimensions && isClickable && isSameRow) {
69
+ div.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
70
+ const newRect = div.getBoundingClientRect();
71
+ return { x: newRect.x + (newRect.width / 2), y: newRect.y + (newRect.height / 2) };
74
72
  }
75
73
  }
76
- rowContainer = rowContainer.parentElement;
77
74
  }
78
- // Ultimate fallback: click a fixed offset to the right of the thumbnail. This is a last resort if the guide structure doesn't match our
79
- // expectations.
80
- img.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
81
- const newImgRect = img.getBoundingClientRect();
82
- return { x: newImgRect.x + newImgRect.width + 50, y: newImgRect.y + (newImgRect.height / 2) };
75
+ rowContainer = rowContainer.parentElement;
83
76
  }
77
+ // Ultimate fallback: click a fixed offset to the right of the channel element. This is a last resort if the guide structure doesn't match our
78
+ // expectations.
79
+ htmlEl.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
80
+ const newElRect = htmlEl.getBoundingClientRect();
81
+ return { x: newElRect.x + newElRect.width + 50, y: newElRect.y + (newElRect.height / 2) };
84
82
  }
85
83
  }
86
- // Channel thumbnail not found in any images.
84
+ // Channel element not found.
87
85
  return null;
88
- }, [channelSlug]);
86
+ }, [selector]);
89
87
  if (clickTarget) {
90
88
  await scrollAndClick(page, clickTarget);
91
89
  // Poll for the video readyState to drop below 3, indicating the channel switch has started loading new content. This replaces a fixed post-click delay with
@@ -102,7 +100,7 @@ async function thumbnailRowStrategyFn(page, profile) {
102
100
  }
103
101
  return { success: true };
104
102
  }
105
- return { reason: "Channel thumbnail not found in page images.", success: false };
103
+ return { reason: "Channel element not found for selector.", success: false };
106
104
  }
107
- export const thumbnailRowStrategy = { execute: thumbnailRowStrategyFn, usesImageSlug: true };
105
+ export const thumbnailRowStrategy = { execute: thumbnailRowStrategyFn };
108
106
  //# sourceMappingURL=thumbnailRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnailRow.js","sourceRoot":"","sources":["../../../src/browser/tuning/thumbnailRow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thumbnailRow.js","sourceRoot":"","sources":["../../../src/browser/tuning/thumbnailRow.ts"],"names":[],"mappings":"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"}
@@ -1,103 +1,137 @@
1
+ import { LOG, evaluateWithAbort } from "../../utils/index.js";
2
+ import { resolveMatchSelector, scrollAndClick } from "../channelSelection.js";
1
3
  import { CONFIG } from "../../config/index.js";
2
- import { evaluateWithAbort } from "../../utils/index.js";
3
- import { scrollAndClick } from "../channelSelection.js";
4
+ // Maximum number of play button click attempts before giving up. The first click sometimes misses due to coordinate shifts from SPA animations or overlay
5
+ // interference retrying with fresh coordinates resolves most transient failures.
6
+ const MAX_PLAY_CLICK_ATTEMPTS = 3;
7
+ // Timeout in milliseconds to wait for the play button to disappear after clicking it. This is the verification signal that the SPA transitioned to the player view.
8
+ // Kept short so retries happen quickly rather than burning the full videoTimeout on a silent miss.
9
+ const PLAY_CLICK_VERIFY_TIMEOUT = 3000;
4
10
  /**
5
- * Tile click strategy: finds a channel by matching the slug in tile image URLs, clicks the tile to open an entity modal, then clicks a "watch live" play button on
6
- * the modal. This strategy works for sites like Disney+ where live channels are displayed as tiles in a horizontal shelf, and selecting one opens a modal with a
7
- * play button to start the live stream.
11
+ * Tile click strategy: finds a channel element using the profile's matchSelector (defaults to image URL matching), clicks the tile, and optionally clicks a play
12
+ * button if the profile specifies one. This strategy works for multi-channel live TV sites that display channels as tiles in a horizontal shelf. When
13
+ * `channelSelection.playSelector` is set (e.g., Disney+), clicking the tile opens a modal and the play button is clicked to start the stream. When `playSelector`
14
+ * is absent, clicking the tile is the final action and the site auto-plays the selected channel.
8
15
  *
9
16
  * The selection process:
10
- * 1. Search all images on the page for one whose src URL contains the channel slug
11
- * 2. Walk up the DOM to find the nearest clickable ancestor (the tile container)
17
+ * 1. Find channel elements matching the resolved matchSelector CSS selector
18
+ * 2. Walk up the DOM from the first visible match to find the nearest clickable ancestor (the tile container)
12
19
  * 3. Scroll the tile into view and click it
13
- * 4. Wait for the play button to appear on the resulting modal
14
- * 5. Click the play button to start live playback
20
+ * 4. If `playSelector` is configured: wait for the play button, click it, and verify the modal dismissed — retrying up to 3 times on silent failures
15
21
  * @param page - The Puppeteer page object.
16
- * @param profile - The resolved site profile with a non-null channelSelector (image URL slug).
22
+ * @param profile - The resolved site profile with a non-null channelSelector.
17
23
  * @returns Result object with success status and optional failure reason.
18
24
  */
19
25
  async function tileClickStrategyFn(page, profile) {
20
- const channelSlug = profile.channelSelector;
21
- // Step 1: Find the channel tile by matching the slug in a descendant image's src URL. Live channels are displayed as tiles in a horizontal shelf, each containing
22
- // an image with the network name in the URL label parameter (e.g., "poster_linear_espn_none"). We match the image, then walk up the DOM to find the nearest
23
- // clickable ancestor that represents the entire tile.
24
- const tileTarget = await evaluateWithAbort(page, (slug) => {
25
- const images = document.querySelectorAll("img");
26
- for (const img of Array.from(images)) {
27
- if (img.src.includes(slug)) {
28
- const imgRect = img.getBoundingClientRect();
29
- // Verify the image has dimensions (is actually rendered and visible). This matches the pattern in thumbnailRowStrategy and provides defense-in-depth if the
30
- // wait phase timed out before the image fully loaded.
31
- if ((imgRect.width > 0) && (imgRect.height > 0)) {
32
- // Walk up the DOM to find the nearest clickable ancestor wrapping the tile. Check for semantic clickable elements (<a>, <button>, role="button") and
33
- // elements with explicit click handlers first. Track cursor:pointer elements as a fallback for sites using custom click handlers without semantic markup.
34
- let ancestor = img.parentElement;
35
- let pointerFallback = null;
36
- while (ancestor && (ancestor !== document.body)) {
37
- const tag = ancestor.tagName;
38
- // Semantic clickable elements are the most reliable indicators of an interactive tile container.
39
- if ((tag === "A") || (tag === "BUTTON") || (ancestor.getAttribute("role") === "button") || ancestor.hasAttribute("onclick")) {
40
- ancestor.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
41
- const rect = ancestor.getBoundingClientRect();
42
- if ((rect.width > 0) && (rect.height > 0)) {
43
- return { x: rect.x + (rect.width / 2), y: rect.y + (rect.height / 2) };
44
- }
45
- }
46
- // Track the nearest cursor:pointer ancestor with reasonable dimensions as a fallback.
47
- if (!pointerFallback) {
48
- const rect = ancestor.getBoundingClientRect();
49
- if ((rect.width > 20) && (rect.height > 20) && (window.getComputedStyle(ancestor).cursor === "pointer")) {
50
- pointerFallback = ancestor;
51
- }
52
- }
53
- ancestor = ancestor.parentElement;
54
- }
55
- // Fallback: use cursor:pointer ancestor if no semantic clickable was found above.
56
- if (pointerFallback) {
57
- pointerFallback.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
58
- const rect = pointerFallback.getBoundingClientRect();
26
+ const selector = resolveMatchSelector(profile);
27
+ // Step 1: Find the channel tile by querying for elements matching the resolved matchSelector. The selector is interpolated from the profile's matchSelector
28
+ // template (or defaults to img[src*="channelSelector"]). We find the first visible match, then walk up the DOM to find the nearest clickable ancestor that
29
+ // represents the entire tile.
30
+ const tileTarget = await evaluateWithAbort(page, (sel) => {
31
+ const elements = document.querySelectorAll(sel);
32
+ for (const el of Array.from(elements)) {
33
+ const htmlEl = el;
34
+ const elRect = htmlEl.getBoundingClientRect();
35
+ // Verify the element has dimensions (is actually rendered and visible). This provides defense-in-depth if the coordinator's wait phase timed out before the
36
+ // element fully loaded.
37
+ if ((elRect.width > 0) && (elRect.height > 0)) {
38
+ // Walk up the DOM to find the nearest clickable ancestor wrapping the tile. Check for semantic clickable elements (<a>, <button>, role="button") and
39
+ // elements with explicit click handlers first. Track cursor:pointer elements as a fallback for sites using custom click handlers without semantic markup.
40
+ let ancestor = htmlEl.parentElement;
41
+ let pointerFallback = null;
42
+ while (ancestor && (ancestor !== document.body)) {
43
+ const tag = ancestor.tagName;
44
+ // Semantic clickable elements are the most reliable indicators of an interactive tile container.
45
+ if ((tag === "A") || (tag === "BUTTON") || (ancestor.getAttribute("role") === "button") || ancestor.hasAttribute("onclick")) {
46
+ ancestor.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
47
+ const rect = ancestor.getBoundingClientRect();
59
48
  if ((rect.width > 0) && (rect.height > 0)) {
60
49
  return { x: rect.x + (rect.width / 2), y: rect.y + (rect.height / 2) };
61
50
  }
62
51
  }
52
+ // Track the nearest cursor:pointer ancestor with reasonable dimensions as a fallback.
53
+ if (!pointerFallback) {
54
+ const rect = ancestor.getBoundingClientRect();
55
+ if ((rect.width > 20) && (rect.height > 20) && (window.getComputedStyle(ancestor).cursor === "pointer")) {
56
+ pointerFallback = ancestor;
57
+ }
58
+ }
59
+ ancestor = ancestor.parentElement;
60
+ }
61
+ // Fallback: use cursor:pointer ancestor if no semantic clickable was found above.
62
+ if (pointerFallback) {
63
+ pointerFallback.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
64
+ const rect = pointerFallback.getBoundingClientRect();
65
+ if ((rect.width > 0) && (rect.height > 0)) {
66
+ return { x: rect.x + (rect.width / 2), y: rect.y + (rect.height / 2) };
67
+ }
63
68
  }
64
69
  }
65
70
  }
66
71
  return null;
67
- }, [channelSlug]);
72
+ }, [selector]);
68
73
  if (!tileTarget) {
69
- return { reason: "Channel tile not found in page images.", success: false };
74
+ return { reason: "Channel element not found for selector.", success: false };
70
75
  }
71
- // Click the channel tile to open the entity modal.
76
+ // Click the channel tile. For sites with a play button (playSelector configured), this opens a modal. For auto-play sites, this is the final action.
72
77
  await scrollAndClick(page, tileTarget);
73
- // Step 2: Wait for the "WATCH LIVE" button to appear on the entity modal. The button is an <a> element with a specific data-testid attribute. After clicking the
74
- // tile, the site performs a SPA navigation that renders a modal with playback options.
75
- const playButtonSelector = "[data-testid=\"live-modal-watch-live-action-button\"]";
76
- try {
77
- await page.waitForSelector(playButtonSelector, { timeout: CONFIG.streaming.videoTimeout });
78
- }
79
- catch {
80
- return { reason: "Play button did not appear after clicking channel tile.", success: false };
81
- }
82
- // Get the play button coordinates for clicking.
83
- const playTarget = await evaluateWithAbort(page, (selector) => {
84
- const button = document.querySelector(selector);
85
- if (!button) {
86
- return null;
78
+ // Step 2 (conditional): If the profile specifies a play button selector, wait for it and click it. Sites like Disney+ show a modal with a "WATCH LIVE" button
79
+ // after clicking the tile. Sites without playSelector auto-play on tile click and skip this phase entirely.
80
+ const playButtonSelector = profile.channelSelection.playSelector;
81
+ if (playButtonSelector) {
82
+ try {
83
+ await page.waitForSelector(playButtonSelector, { timeout: CONFIG.streaming.videoTimeout });
87
84
  }
88
- button.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
89
- const rect = button.getBoundingClientRect();
90
- if ((rect.width > 0) && (rect.height > 0)) {
91
- return { x: rect.x + (rect.width / 2), y: rect.y + (rect.height / 2) };
85
+ catch {
86
+ return { reason: "Play button did not appear after clicking channel tile.", success: false };
92
87
  }
93
- return null;
94
- }, [playButtonSelector]);
95
- if (!playTarget) {
96
- return { reason: "Play button found but has no dimensions.", success: false };
88
+ // Click the play button with retry. Coordinate-based clicks can silently miss due to SPA animations, overlay interference, or stale coordinates. We verify each
89
+ // click by checking whether the play button disappears (indicating the modal dismissed and the SPA transitioned to the player). On failure, we re-read
90
+ // coordinates and retry — the same pattern used by Sling's clickWithRetry.
91
+ for (let attempt = 0; attempt < MAX_PLAY_CLICK_ATTEMPTS; attempt++) {
92
+ // Get the play button coordinates. Re-read on every attempt because SPA animations or layout shifts may have moved the button since the last read.
93
+ // eslint-disable-next-line no-await-in-loop
94
+ const playTarget = await evaluateWithAbort(page, (selector) => {
95
+ const button = document.querySelector(selector);
96
+ if (!button) {
97
+ return null;
98
+ }
99
+ button.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
100
+ const rect = button.getBoundingClientRect();
101
+ if ((rect.width > 0) && (rect.height > 0)) {
102
+ return { x: rect.x + (rect.width / 2), y: rect.y + (rect.height / 2) };
103
+ }
104
+ return null;
105
+ }, [playButtonSelector]);
106
+ if (!playTarget) {
107
+ // Play button disappeared between attempts — the previous click likely worked and the SPA transitioned. This can happen when the verification timeout races
108
+ // against a slow modal dismissal animation.
109
+ if (attempt > 0) {
110
+ LOG.debug("tuning:tileClick", "Play button disappeared before attempt %s. Previous click likely succeeded.", attempt + 1);
111
+ return { success: true };
112
+ }
113
+ return { reason: "Play button found but has no dimensions.", success: false };
114
+ }
115
+ // Click the play button to start live playback.
116
+ // eslint-disable-next-line no-await-in-loop
117
+ await scrollAndClick(page, playTarget);
118
+ // Verify the click worked by waiting for the play button to disappear. When the SPA transitions to the player view, the modal (and its play button) is removed
119
+ // from the DOM. If the button is still present after the timeout, the click missed and we retry with fresh coordinates.
120
+ try {
121
+ // eslint-disable-next-line no-await-in-loop
122
+ await page.waitForSelector(playButtonSelector, { hidden: true, timeout: PLAY_CLICK_VERIFY_TIMEOUT });
123
+ return { success: true };
124
+ }
125
+ catch {
126
+ // Play button still visible — the click had no effect. Log and retry.
127
+ if (attempt < (MAX_PLAY_CLICK_ATTEMPTS - 1)) {
128
+ LOG.info("Play button click attempt %s of %s did not dismiss the modal. Retrying with fresh coordinates.", attempt + 1, MAX_PLAY_CLICK_ATTEMPTS);
129
+ }
130
+ }
131
+ }
132
+ return { reason: "Play button click did not dismiss the modal after " + String(MAX_PLAY_CLICK_ATTEMPTS) + " attempts.", success: false };
97
133
  }
98
- // Click the play button to start live playback.
99
- await scrollAndClick(page, playTarget);
100
134
  return { success: true };
101
135
  }
102
- export const tileClickStrategy = { execute: tileClickStrategyFn, usesImageSlug: true };
136
+ export const tileClickStrategy = { execute: tileClickStrategyFn };
103
137
  //# sourceMappingURL=tileClick.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tileClick.js","sourceRoot":"","sources":["../../../src/browser/tuning/tileClick.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,OAAgC;IAE7E,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAE5C,kKAAkK;IAClK,4JAA4J;IAC5J,sDAAsD;IACtD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAY,EAAyB,EAAE;QAEvF,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEhD,KAAI,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAEpC,IAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAE1B,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC;gBAE5C,4JAA4J;gBAC5J,sDAAsD;gBACtD,IAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;oBAE/C,qJAAqJ;oBACrJ,0JAA0J;oBAC1J,IAAI,QAAQ,GAA0B,GAAG,CAAC,aAAa,CAAC;oBACxD,IAAI,eAAe,GAA0B,IAAI,CAAC;oBAElD,OAAM,QAAQ,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAE/C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC;wBAE7B,iGAAiG;wBACjG,IAAG,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;4BAE3H,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;4BAEpF,MAAM,IAAI,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;4BAE9C,IAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gCAEzC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;4BACzE,CAAC;wBACH,CAAC;wBAED,sFAAsF;wBACtF,IAAG,CAAC,eAAe,EAAE,CAAC;4BAEpB,MAAM,IAAI,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;4BAE9C,IAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;gCAEvG,eAAe,GAAG,QAAQ,CAAC;4BAC7B,CAAC;wBACH,CAAC;wBAED,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACpC,CAAC;oBAED,kFAAkF;oBAClF,IAAG,eAAe,EAAE,CAAC;wBAEnB,eAAe,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAE3F,MAAM,IAAI,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAC;wBAErD,IAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;4BAEzC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;wBACzE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAG,CAAC,UAAU,EAAE,CAAC;QAEf,OAAO,EAAE,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9E,CAAC;IAED,mDAAmD;IACnD,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEvC,iKAAiK;IACjK,uFAAuF;IACvF,MAAM,kBAAkB,GAAG,uDAAuD,CAAC;IAEnF,IAAI,CAAC;QAEH,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO,EAAE,MAAM,EAAE,yDAAyD,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/F,CAAC;IAED,gDAAgD;IAChD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,QAAgB,EAAyB,EAAE;QAE3F,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAG,CAAC,MAAM,EAAE,CAAC;YAEX,OAAO,IAAI,CAAC;QACd,CAAC;QAEA,MAAsB,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEnG,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAE5C,IAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAEzC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,IAAG,CAAC,UAAU,EAAE,CAAC;QAEf,OAAO,EAAE,MAAM,EAAE,0CAA0C,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAChF,CAAC;IAED,gDAAgD;IAChD,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAyB,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"tileClick.js","sourceRoot":"","sources":["../../../src/browser/tuning/tileClick.ts"],"names":[],"mappings":"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"}