vscode-liquidsoap 0.2.0 → 0.3.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 (342) hide show
  1. package/package.json +14 -9
  2. package/syntaxes/liquidsoap.tmLanguage.json +41 -12
  3. package/test-suite/fetch-stdlib.js +125 -0
  4. package/test-suite/run-tests.js +544 -0
  5. package/tests/snap/libs/audio.liq.snap +20 -10
  6. package/tests/snap/libs/fades.liq.snap +3 -1
  7. package/tests/snap/libs/ffmpeg.liq.snap +10 -5
  8. package/tests/snap/libs/file.liq.snap +1 -1
  9. package/tests/snap/libs/hls.liq.snap +22 -9
  10. package/tests/snap/libs/http.liq.snap +60 -22
  11. package/tests/snap/libs/icecast.liq.snap +19 -13
  12. package/tests/snap/libs/medialib.liq.snap +5 -2
  13. package/tests/snap/libs/metadata.liq.snap +7 -3
  14. package/tests/snap/libs/playlist.liq.snap +4 -2
  15. package/tests/snap/libs/protocols.liq.snap +70 -24
  16. package/tests/snap/libs/ref.liq.snap +4 -3
  17. package/tests/snap/libs/request.liq.snap +3 -1
  18. package/tests/snap/libs/resolvers.liq.snap +5 -2
  19. package/tests/snap/libs/settings.liq.snap +11 -5
  20. package/tests/snap/libs/source.liq.snap +2 -1
  21. package/tests/snap/libs/stdlib.liq.snap +52 -52
  22. package/tests/snap/libs/string.liq.snap +6 -4
  23. package/tests/snap/libs/switches.liq.snap +2 -2
  24. package/tests/snap/libs/testing.liq.snap +3 -1
  25. package/tests/snap/libs/thread.liq.snap +3 -1
  26. package/tests/snap/libs/video.liq.snap +21 -12
  27. package/tests/snap/tests/failures/ctype.liq +0 -0
  28. package/tests/snap/tests/failures/ctype.liq.snap +69 -11
  29. package/tests/snap/tests/failures/error.liq +0 -0
  30. package/tests/snap/tests/failures/error.liq.snap +21 -10
  31. package/tests/snap/tests/failures/record-invalid-member1.liq +0 -0
  32. package/tests/snap/tests/failures/record-invalid-member1.liq.snap +26 -11
  33. package/tests/snap/tests/failures/record-invalid-member2.liq +0 -0
  34. package/tests/snap/tests/failures/record-invalid-member2.liq.snap +13 -5
  35. package/tests/snap/tests/failures/ref.liq +0 -0
  36. package/tests/snap/tests/failures/ref.liq.snap +53 -17
  37. package/tests/snap/tests/fixme/GH1170.liq +0 -0
  38. package/tests/snap/tests/fixme/GH1170.liq.snap +139 -36
  39. package/tests/snap/tests/fixme/LS527.liq.snap +89 -32
  40. package/tests/snap/tests/fixme/cross2.liq +0 -0
  41. package/tests/snap/tests/fixme/cross2.liq.snap +122 -31
  42. package/tests/snap/tests/fixme/cross3.liq +0 -0
  43. package/tests/snap/tests/fixme/cross3.liq.snap +96 -26
  44. package/tests/snap/tests/fixme/sequence-1.liq +0 -0
  45. package/tests/snap/tests/fixme/sequence-1.liq.snap +168 -49
  46. package/tests/snap/tests/fixme/sequence-2.liq.snap +163 -42
  47. package/tests/snap/tests/harbor/http.liq.snap +2246 -798
  48. package/tests/snap/tests/harbor/http2.liq.snap +447 -150
  49. package/tests/snap/tests/harbor/http3.liq.snap +238 -99
  50. package/tests/snap/tests/harbor/post.liq.snap +1416 -575
  51. package/tests/snap/tests/harbor/put.liq.snap +1416 -578
  52. package/tests/snap/tests/language/argsof.liq +0 -0
  53. package/tests/snap/tests/language/argsof.liq.snap +342 -74
  54. package/tests/snap/tests/language/bool.liq +0 -0
  55. package/tests/snap/tests/language/bool.liq.snap +129 -29
  56. package/tests/snap/tests/language/comments.liq.snap +188 -95
  57. package/tests/snap/tests/language/conversions.liq.snap +181 -68
  58. package/tests/snap/tests/language/doc.liq +0 -0
  59. package/tests/snap/tests/language/doc.liq.snap +42 -13
  60. package/tests/snap/tests/language/encoders.liq +0 -0
  61. package/tests/snap/tests/language/encoders.liq.snap +153 -39
  62. package/tests/snap/tests/language/error.liq +0 -0
  63. package/tests/snap/tests/language/error.liq.snap +677 -179
  64. package/tests/snap/tests/language/eval.liq +0 -0
  65. package/tests/snap/tests/language/eval.liq.snap +761 -308
  66. package/tests/snap/tests/language/file.liq +0 -0
  67. package/tests/snap/tests/language/file.liq.snap +326 -92
  68. package/tests/snap/tests/language/file.watch.liq +0 -0
  69. package/tests/snap/tests/language/file.watch.liq.snap +122 -30
  70. package/tests/snap/tests/language/file.watch2.liq +0 -0
  71. package/tests/snap/tests/language/file.watch2.liq.snap +147 -42
  72. package/tests/snap/tests/language/file_protocol.liq +0 -0
  73. package/tests/snap/tests/language/file_protocol.liq.snap +109 -32
  74. package/tests/snap/tests/language/functions.liq +0 -0
  75. package/tests/snap/tests/language/functions.liq.snap +189 -59
  76. package/tests/snap/tests/language/getter.liq +0 -0
  77. package/tests/snap/tests/language/getter.liq.snap +470 -133
  78. package/tests/snap/tests/language/interactive.liq +0 -0
  79. package/tests/snap/tests/language/interactive.liq.snap +254 -83
  80. package/tests/snap/tests/language/interpolation.liq +20 -0
  81. package/tests/snap/tests/language/interpolation.liq.snap +141 -0
  82. package/tests/snap/tests/language/json.liq +0 -0
  83. package/tests/snap/tests/language/json.liq.snap +1304 -738
  84. package/tests/snap/tests/language/list.liq +0 -0
  85. package/tests/snap/tests/language/list.liq.snap +1932 -883
  86. package/tests/snap/tests/language/loop.liq +0 -0
  87. package/tests/snap/tests/language/loop.liq.snap +276 -101
  88. package/tests/snap/tests/language/math.liq +0 -0
  89. package/tests/snap/tests/language/math.liq.snap +134 -26
  90. package/tests/snap/tests/language/mem_usage.liq +0 -0
  91. package/tests/snap/tests/language/mem_usage.liq.snap +66 -17
  92. package/tests/snap/tests/language/metadata.liq +0 -0
  93. package/tests/snap/tests/language/metadata.liq.snap +606 -177
  94. package/tests/snap/tests/language/null.liq +0 -0
  95. package/tests/snap/tests/language/null.liq.snap +351 -131
  96. package/tests/snap/tests/language/osc.liq +0 -0
  97. package/tests/snap/tests/language/osc.liq.snap +350 -124
  98. package/tests/snap/tests/language/pattern.liq +0 -0
  99. package/tests/snap/tests/language/pattern.liq.snap +955 -308
  100. package/tests/snap/tests/language/pp.liq +0 -0
  101. package/tests/snap/tests/language/pp.liq.snap +227 -78
  102. package/tests/snap/tests/language/predicate.liq +0 -0
  103. package/tests/snap/tests/language/predicate.liq.snap +365 -70
  104. package/tests/snap/tests/language/process.liq +0 -0
  105. package/tests/snap/tests/language/process.liq.snap +227 -99
  106. package/tests/snap/tests/language/rec.liq +0 -0
  107. package/tests/snap/tests/language/rec.liq.snap +134 -49
  108. package/tests/snap/tests/language/record.liq +0 -0
  109. package/tests/snap/tests/language/record.liq.snap +2251 -570
  110. package/tests/snap/tests/language/ref.liq +0 -0
  111. package/tests/snap/tests/language/ref.liq.snap +208 -55
  112. package/tests/snap/tests/language/regexp.liq +0 -0
  113. package/tests/snap/tests/language/regexp.liq.snap +327 -176
  114. package/tests/snap/tests/language/socket.liq.snap +279 -96
  115. package/tests/snap/tests/language/stdlib.liq +0 -0
  116. package/tests/snap/tests/language/stdlib.liq.snap +170 -51
  117. package/tests/snap/tests/language/string.liq +0 -0
  118. package/tests/snap/tests/language/string.liq.snap +1747 -860
  119. package/tests/snap/tests/language/test_cover.liq.snap +57 -20
  120. package/tests/snap/tests/language/thread.liq.snap +391 -102
  121. package/tests/snap/tests/language/time.liq +0 -0
  122. package/tests/snap/tests/language/time.liq.snap +115 -33
  123. package/tests/snap/tests/language/type_errors.liq +0 -0
  124. package/tests/snap/tests/language/type_errors.liq.snap +1042 -703
  125. package/tests/snap/tests/language/types.liq +33 -0
  126. package/tests/snap/tests/language/types.liq.snap +321 -0
  127. package/tests/snap/tests/language/typing.liq +0 -0
  128. package/tests/snap/tests/language/typing.liq.snap +1233 -405
  129. package/tests/snap/tests/language/url.liq +0 -0
  130. package/tests/snap/tests/language/url.liq.snap +84 -38
  131. package/tests/snap/tests/language/write_cover.liq.snap +44 -15
  132. package/tests/snap/tests/language/yaml.liq.snap +252 -97
  133. package/tests/snap/tests/media/ffmpeg_add_text.liq +0 -0
  134. package/tests/snap/tests/media/ffmpeg_add_text.liq.snap +558 -120
  135. package/tests/snap/tests/media/ffmpeg_audio_decoder.liq +0 -0
  136. package/tests/snap/tests/media/ffmpeg_audio_decoder.liq.snap +228 -49
  137. package/tests/snap/tests/media/ffmpeg_complex_filter.liq +0 -0
  138. package/tests/snap/tests/media/ffmpeg_complex_filter.liq.snap +544 -68
  139. package/tests/snap/tests/media/ffmpeg_copy_and_encode_decoder.liq +0 -0
  140. package/tests/snap/tests/media/ffmpeg_copy_and_encode_decoder.liq.snap +362 -68
  141. package/tests/snap/tests/media/ffmpeg_copy_concat.liq.snap +159 -56
  142. package/tests/snap/tests/media/ffmpeg_copy_decoder.liq +0 -0
  143. package/tests/snap/tests/media/ffmpeg_copy_decoder.liq.snap +507 -121
  144. package/tests/snap/tests/media/ffmpeg_distributed_hls.liq +0 -0
  145. package/tests/snap/tests/media/ffmpeg_distributed_hls.liq.snap +645 -186
  146. package/tests/snap/tests/media/ffmpeg_filter.liq +0 -0
  147. package/tests/snap/tests/media/ffmpeg_filter.liq.snap +603 -101
  148. package/tests/snap/tests/media/ffmpeg_filter_changing_rate.liq.snap +712 -142
  149. package/tests/snap/tests/media/ffmpeg_inline_encode_decode.liq +0 -0
  150. package/tests/snap/tests/media/ffmpeg_inline_encode_decode.liq.snap +530 -131
  151. package/tests/snap/tests/media/ffmpeg_inline_encode_decode_audio.liq +0 -0
  152. package/tests/snap/tests/media/ffmpeg_inline_encode_decode_audio.liq.snap +365 -94
  153. package/tests/snap/tests/media/ffmpeg_inline_encode_decode_video.liq +0 -0
  154. package/tests/snap/tests/media/ffmpeg_inline_encode_decode_video.liq.snap +365 -94
  155. package/tests/snap/tests/media/ffmpeg_raw_and_copy_decoder.liq +0 -0
  156. package/tests/snap/tests/media/ffmpeg_raw_and_copy_decoder.liq.snap +514 -125
  157. package/tests/snap/tests/media/ffmpeg_raw_and_encode_decoder.liq +0 -0
  158. package/tests/snap/tests/media/ffmpeg_raw_and_encode_decoder.liq.snap +385 -73
  159. package/tests/snap/tests/media/ffmpeg_raw_decoder.liq +0 -0
  160. package/tests/snap/tests/media/ffmpeg_raw_decoder.liq.snap +370 -72
  161. package/tests/snap/tests/media/ffmpeg_raw_hls.liq +0 -0
  162. package/tests/snap/tests/media/ffmpeg_raw_hls.liq.snap +629 -193
  163. package/tests/snap/tests/media/ffmpeg_transparency_filter.liq.snap +538 -109
  164. package/tests/snap/tests/media/ffmpeg_video_decoder.liq +0 -0
  165. package/tests/snap/tests/media/ffmpeg_video_decoder.liq.snap +236 -59
  166. package/tests/snap/tests/media/mono.liq +0 -0
  167. package/tests/snap/tests/media/mono.liq.snap +223 -47
  168. package/tests/snap/tests/media/multitrack.liq.snap +790 -235
  169. package/tests/snap/tests/media/pcm_f32_decode.liq +0 -0
  170. package/tests/snap/tests/media/pcm_f32_decode.liq.snap +61 -12
  171. package/tests/snap/tests/media/pcm_s16_decode.liq +0 -0
  172. package/tests/snap/tests/media/pcm_s16_decode.liq.snap +61 -12
  173. package/tests/snap/tests/media/stereo.liq +0 -0
  174. package/tests/snap/tests/media/stereo.liq.snap +223 -47
  175. package/tests/snap/tests/media/stream_audio.liq.in +0 -0
  176. package/tests/snap/tests/media/stream_video.liq.in +0 -0
  177. package/tests/snap/tests/media/taglib.liq +0 -0
  178. package/tests/snap/tests/media/taglib.liq.snap +77 -26
  179. package/tests/snap/tests/media/video_size.liq +0 -0
  180. package/tests/snap/tests/media/video_size.liq.snap +305 -68
  181. package/tests/snap/tests/performance/erathostenes.liq +0 -0
  182. package/tests/snap/tests/performance/erathostenes.liq.snap +281 -62
  183. package/tests/snap/tests/performance/performance.liq.snap +99 -26
  184. package/tests/snap/tests/performance/small-record.liq +0 -0
  185. package/tests/snap/tests/performance/small-record.liq.snap +626 -320
  186. package/tests/snap/tests/regression/115-1.liq +0 -0
  187. package/tests/snap/tests/regression/115-1.liq.snap +74 -15
  188. package/tests/snap/tests/regression/115-2.liq +0 -0
  189. package/tests/snap/tests/regression/115-2.liq.snap +101 -16
  190. package/tests/snap/tests/regression/AC5109.liq +0 -0
  191. package/tests/snap/tests/regression/AC5109.liq.snap +216 -78
  192. package/tests/snap/tests/regression/BUG403.liq +0 -0
  193. package/tests/snap/tests/regression/BUG403.liq.snap +136 -33
  194. package/tests/snap/tests/regression/GH-action-919422659.liq +0 -0
  195. package/tests/snap/tests/regression/GH-action-919422659.liq.snap +105 -34
  196. package/tests/snap/tests/regression/GH1129.liq +0 -0
  197. package/tests/snap/tests/regression/GH1129.liq.snap +351 -153
  198. package/tests/snap/tests/regression/GH1146.liq +0 -0
  199. package/tests/snap/tests/regression/GH1146.liq.snap +82 -27
  200. package/tests/snap/tests/regression/GH1151.liq +0 -0
  201. package/tests/snap/tests/regression/GH1151.liq.snap +55 -25
  202. package/tests/snap/tests/regression/GH1159.liq +0 -0
  203. package/tests/snap/tests/regression/GH1159.liq.snap +97 -30
  204. package/tests/snap/tests/regression/GH1279.liq +0 -0
  205. package/tests/snap/tests/regression/GH1279.liq.snap +270 -108
  206. package/tests/snap/tests/regression/GH1327.liq +0 -0
  207. package/tests/snap/tests/regression/GH1327.liq.snap +380 -134
  208. package/tests/snap/tests/regression/GH2585.liq.snap +110 -45
  209. package/tests/snap/tests/regression/GH2602.liq.snap +116 -30
  210. package/tests/snap/tests/regression/GH2756-2.liq.snap +361 -104
  211. package/tests/snap/tests/regression/GH2756.liq.snap +419 -119
  212. package/tests/snap/tests/regression/GH2758.liq.snap +113 -30
  213. package/tests/snap/tests/regression/GH2842.liq.snap +151 -50
  214. package/tests/snap/tests/regression/GH2850.liq.snap +358 -146
  215. package/tests/snap/tests/regression/GH2867.liq.snap +46 -15
  216. package/tests/snap/tests/regression/GH2871.liq.snap +86 -30
  217. package/tests/snap/tests/regression/GH2872.liq.snap +103 -32
  218. package/tests/snap/tests/regression/GH2897.liq.snap +123 -33
  219. package/tests/snap/tests/regression/GH2902.liq.snap +326 -109
  220. package/tests/snap/tests/regression/GH2926.liq.snap +121 -39
  221. package/tests/snap/tests/regression/GH3093.liq.snap +46 -11
  222. package/tests/snap/tests/regression/GH3121.liq.snap +138 -36
  223. package/tests/snap/tests/regression/GH3132.liq.snap +146 -43
  224. package/tests/snap/tests/regression/GH3224.liq.snap +18 -10
  225. package/tests/snap/tests/regression/GH3239-2.liq.snap +154 -34
  226. package/tests/snap/tests/regression/GH3239.liq.snap +149 -33
  227. package/tests/snap/tests/regression/GH3276.liq.snap +164 -53
  228. package/tests/snap/tests/regression/GH3316.liq.snap +229 -55
  229. package/tests/snap/tests/regression/LS268.liq +0 -0
  230. package/tests/snap/tests/regression/LS268.liq.snap +102 -19
  231. package/tests/snap/tests/regression/LS354-1.liq +0 -0
  232. package/tests/snap/tests/regression/LS354-1.liq.snap +117 -28
  233. package/tests/snap/tests/regression/LS354-2.liq +0 -0
  234. package/tests/snap/tests/regression/LS354-2.liq.snap +154 -56
  235. package/tests/snap/tests/regression/LS460.liq +0 -0
  236. package/tests/snap/tests/regression/LS460.liq.snap +145 -49
  237. package/tests/snap/tests/regression/LS503.liq +0 -0
  238. package/tests/snap/tests/regression/LS503.liq.snap +71 -24
  239. package/tests/snap/tests/regression/default_format.liq.snap +43 -7
  240. package/tests/snap/tests/regression/external-encoder.liq.snap +72 -28
  241. package/tests/snap/tests/regression/ffmpeg-copy-encode.liq.snap +167 -62
  242. package/tests/snap/tests/regression/ffmpeg-copy-input-http.liq.snap +55 -13
  243. package/tests/snap/tests/regression/ffmpeg-naming-convention.liq.snap +371 -126
  244. package/tests/snap/tests/regression/infallible-shutdown.liq +0 -0
  245. package/tests/snap/tests/regression/infallible-shutdown.liq.snap +26 -6
  246. package/tests/snap/tests/regression/init-error.liq +0 -0
  247. package/tests/snap/tests/regression/init-error.liq.snap +70 -10
  248. package/tests/snap/tests/regression/initial_request_queue.liq.snap +69 -14
  249. package/tests/snap/tests/regression/input_rtmp.liq +0 -0
  250. package/tests/snap/tests/regression/input_rtmp.liq.snap +28 -7
  251. package/tests/snap/tests/regression/metadata_cache.liq +0 -0
  252. package/tests/snap/tests/regression/metadata_cache.liq.snap +173 -56
  253. package/tests/snap/tests/regression/playlist-id.liq +0 -0
  254. package/tests/snap/tests/regression/playlist-id.liq.snap +126 -56
  255. package/tests/snap/tests/regression/replaygain.liq.snap +53 -11
  256. package/tests/snap/tests/regression/shoutcast-args.liq.snap +52 -24
  257. package/tests/snap/tests/regression/unified-pcm-types.liq.snap +91 -28
  258. package/tests/snap/tests/regression/video-only.liq.snap +121 -33
  259. package/tests/snap/tests/streams/195.liq +0 -0
  260. package/tests/snap/tests/streams/195.liq.snap +63 -26
  261. package/tests/snap/tests/streams/197.liq +0 -0
  262. package/tests/snap/tests/streams/197.liq.snap +129 -40
  263. package/tests/snap/tests/streams/autostart.liq +0 -0
  264. package/tests/snap/tests/streams/autostart.liq.snap +147 -37
  265. package/tests/snap/tests/streams/cross-override.liq.snap +338 -92
  266. package/tests/snap/tests/streams/cross-persist-override.liq.snap +342 -92
  267. package/tests/snap/tests/streams/cross.liq +0 -0
  268. package/tests/snap/tests/streams/cross.liq.snap +343 -90
  269. package/tests/snap/tests/streams/crossfade.liq +0 -0
  270. package/tests/snap/tests/streams/crossfade.liq.snap +476 -128
  271. package/tests/snap/tests/streams/ctype1.liq +0 -0
  272. package/tests/snap/tests/streams/ctype1.liq.snap +89 -26
  273. package/tests/snap/tests/streams/ctype2.liq +0 -0
  274. package/tests/snap/tests/streams/ctype2.liq.snap +114 -30
  275. package/tests/snap/tests/streams/dtmf.liq +0 -0
  276. package/tests/snap/tests/streams/dtmf.liq.snap +129 -32
  277. package/tests/snap/tests/streams/dtmf_pcm_s16.liq +0 -0
  278. package/tests/snap/tests/streams/dtmf_pcm_s16.liq.snap +161 -38
  279. package/tests/snap/tests/streams/fades-overrides.liq.snap +472 -121
  280. package/tests/snap/tests/streams/fades-persistent-override.liq.snap +482 -121
  281. package/tests/snap/tests/streams/ffmpeg-errors.liq.snap +108 -30
  282. package/tests/snap/tests/streams/ffmpeg-trim.liq.snap +63 -18
  283. package/tests/snap/tests/streams/file_output.liq.snap +131 -33
  284. package/tests/snap/tests/streams/harbor_kick_client.liq.snap +235 -72
  285. package/tests/snap/tests/streams/harbor_metadata.liq.snap +206 -96
  286. package/tests/snap/tests/streams/hls_custom_tags.liq.snap +407 -125
  287. package/tests/snap/tests/streams/hls_id3v2.liq.snap +742 -257
  288. package/tests/snap/tests/streams/huge-playlist.liq +0 -0
  289. package/tests/snap/tests/streams/huge-playlist.liq.snap +125 -40
  290. package/tests/snap/tests/streams/icecast_ssl.liq.snap +134 -42
  291. package/tests/snap/tests/streams/icecast_ssl_tls.liq.snap +164 -55
  292. package/tests/snap/tests/streams/icecast_tls.liq.snap +163 -53
  293. package/tests/snap/tests/streams/icecast_tls_ssl.liq.snap +164 -55
  294. package/tests/snap/tests/streams/image.liq +0 -0
  295. package/tests/snap/tests/streams/image.liq.snap +44 -10
  296. package/tests/snap/tests/streams/many-playlists.liq +0 -0
  297. package/tests/snap/tests/streams/many-playlists.liq.snap +142 -48
  298. package/tests/snap/tests/streams/merge_metadata.liq.snap +224 -63
  299. package/tests/snap/tests/streams/never.liq +0 -0
  300. package/tests/snap/tests/streams/never.liq.snap +56 -11
  301. package/tests/snap/tests/streams/on_frame.liq +0 -0
  302. package/tests/snap/tests/streams/on_frame.liq.snap +81 -23
  303. package/tests/snap/tests/streams/on_metadata.liq +0 -0
  304. package/tests/snap/tests/streams/on_metadata.liq.snap +103 -37
  305. package/tests/snap/tests/streams/on_track.liq +0 -0
  306. package/tests/snap/tests/streams/on_track.liq.snap +69 -18
  307. package/tests/snap/tests/streams/playlist-watch.liq +0 -0
  308. package/tests/snap/tests/streams/playlist-watch.liq.snap +195 -56
  309. package/tests/snap/tests/streams/radio.liq +0 -0
  310. package/tests/snap/tests/streams/radio.liq.snap +72 -17
  311. package/tests/snap/tests/streams/radio2.liq +0 -0
  312. package/tests/snap/tests/streams/radio2.liq.snap +143 -48
  313. package/tests/snap/tests/streams/random.liq +0 -0
  314. package/tests/snap/tests/streams/random.liq.snap +395 -171
  315. package/tests/snap/tests/streams/replaygain.liq +0 -0
  316. package/tests/snap/tests/streams/replaygain.liq.snap +62 -19
  317. package/tests/snap/tests/streams/request.liq +0 -0
  318. package/tests/snap/tests/streams/request.liq.snap +361 -145
  319. package/tests/snap/tests/streams/rotate.liq +0 -0
  320. package/tests/snap/tests/streams/rotate.liq.snap +421 -151
  321. package/tests/snap/tests/streams/say.liq +0 -0
  322. package/tests/snap/tests/streams/say.liq.snap +139 -32
  323. package/tests/snap/tests/streams/seek_track_map.liq.snap +143 -48
  324. package/tests/snap/tests/streams/sharing.liq +0 -0
  325. package/tests/snap/tests/streams/sharing.liq.snap +109 -25
  326. package/tests/snap/tests/streams/sine.detect.full_conv.liq +0 -0
  327. package/tests/snap/tests/streams/sine.detect.full_conv.liq.snap +127 -33
  328. package/tests/snap/tests/streams/sine.detect.liq +0 -0
  329. package/tests/snap/tests/streams/sine.detect.liq.snap +71 -20
  330. package/tests/snap/tests/streams/sine.detect.pcm_f32.liq +0 -0
  331. package/tests/snap/tests/streams/sine.detect.pcm_f32.liq.snap +95 -26
  332. package/tests/snap/tests/streams/sine.detect.pcm_s16.liq +0 -0
  333. package/tests/snap/tests/streams/sine.detect.pcm_s16.liq.snap +95 -26
  334. package/tests/snap/tests/streams/smart-crossfade.liq +0 -0
  335. package/tests/snap/tests/streams/smart-crossfade.liq.snap +101 -25
  336. package/tests/snap/tests/streams/srt_listen_callback.liq.snap +149 -38
  337. package/tests/snap/tests/streams/srt_multiple_outputs.liq.snap +146 -35
  338. package/tests/snap/tests/streams/srt_passphrase.liq.snap +92 -27
  339. package/tests/snap/tests/streams/srt_raw_pcm.liq.snap +134 -43
  340. package/tests/snap/tests/streams/stretch-clock-propagation.liq +0 -0
  341. package/tests/snap/tests/streams/stretch-clock-propagation.liq.snap +86 -20
  342. package/tests/snap/tests/test.liq +0 -0
@@ -1,299 +1,605 @@
1
1
  >def t(x,y) =
2
- #^^^ source.liquidsoap keyword.control.liquidsoap
3
- # ^^^^^^^^^^ source.liquidsoap
2
+ #^^^ source.liquidsoap keyword.other.function.definition.liquidsoap
3
+ # ^ source.liquidsoap
4
+ # ^ source.liquidsoap entity.name.function.binding.liquidsoap
5
+ # ^ source.liquidsoap
6
+ # ^ source.liquidsoap variable.liquidsoap
7
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
8
+ # ^ source.liquidsoap variable.liquidsoap
9
+ # ^ source.liquidsoap
10
+ # ^^ source.liquidsoap
4
11
  > if x != y then test.fail() end
5
12
  #^^ source.liquidsoap
6
13
  # ^^ source.liquidsoap keyword.control.liquidsoap
7
- # ^^^^^^^^ source.liquidsoap
14
+ # ^ source.liquidsoap
15
+ # ^ source.liquidsoap variable.liquidsoap
16
+ # ^ source.liquidsoap
17
+ # ^^ source.liquidsoap keyword.operator.compare.liquidsoap
18
+ # ^ source.liquidsoap
19
+ # ^ source.liquidsoap variable.liquidsoap
20
+ # ^ source.liquidsoap
8
21
  # ^^^^ source.liquidsoap keyword.control.liquidsoap
9
- # ^^^^^^^^^^^^^ source.liquidsoap
22
+ # ^ source.liquidsoap
23
+ # ^^^^ source.liquidsoap variable.liquidsoap
24
+ # ^ source.liquidsoap meta.function-call.liquidsoap
25
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
26
+ # ^ source.liquidsoap meta.function-call.liquidsoap
27
+ # ^ source.liquidsoap meta.function-call.liquidsoap
28
+ # ^ source.liquidsoap
10
29
  # ^^^ source.liquidsoap keyword.control.liquidsoap
11
30
  >end
12
- #^^^ source.liquidsoap keyword.control.liquidsoap
31
+ #^^^ source.liquidsoap keyword.other.function.end.liquidsoap
13
32
  >
14
33
  >def f() =
15
- #^^^ source.liquidsoap keyword.control.liquidsoap
16
- # ^^^^^^^ source.liquidsoap
34
+ #^^^ source.liquidsoap keyword.other.function.definition.liquidsoap
35
+ # ^ source.liquidsoap
36
+ # ^ source.liquidsoap entity.name.function.binding.liquidsoap
37
+ # ^ source.liquidsoap
38
+ # ^ source.liquidsoap
39
+ # ^^ source.liquidsoap
17
40
  > t(metadata.cover.remove([("a","A"),("apic","XXX"),("pic","YYY"),("b","B"),("cover","YYY")]), [("a","A"),("b","B")])
18
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
19
- # ^ source.liquidsoap string.quoted.double.liquidsoap
20
- # ^ source.liquidsoap string.quoted.double.liquidsoap
21
- # ^ source.liquidsoap string.quoted.double.liquidsoap
22
- # ^ source.liquidsoap
23
- # ^ source.liquidsoap string.quoted.double.liquidsoap
24
- # ^ source.liquidsoap string.quoted.double.liquidsoap
25
- # ^ source.liquidsoap string.quoted.double.liquidsoap
26
- # ^^^ source.liquidsoap
27
- # ^ source.liquidsoap string.quoted.double.liquidsoap
28
- # ^^^^ source.liquidsoap string.quoted.double.liquidsoap
29
- # ^ source.liquidsoap string.quoted.double.liquidsoap
30
- # ^ source.liquidsoap
31
- # ^ source.liquidsoap string.quoted.double.liquidsoap
32
- # ^^^ source.liquidsoap string.quoted.double.liquidsoap
33
- # ^ source.liquidsoap string.quoted.double.liquidsoap
34
- # ^^^ source.liquidsoap
41
+ #^^ source.liquidsoap
42
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
43
+ # ^ source.liquidsoap meta.function-call.liquidsoap
44
+ # ^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
45
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
46
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
47
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
48
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
49
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
50
+ # ^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
51
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
52
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
53
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
54
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
55
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
56
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
57
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
58
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
59
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
60
+ # ^ source.liquidsoap meta.function-call.liquidsoap
61
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
62
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
63
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
64
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
65
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
66
+ # ^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
67
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
68
+ # ^ source.liquidsoap meta.function-call.liquidsoap
69
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
70
+ # ^ source.liquidsoap
35
71
  # ^ source.liquidsoap string.quoted.double.liquidsoap
36
72
  # ^^^ source.liquidsoap string.quoted.double.liquidsoap
37
73
  # ^ source.liquidsoap string.quoted.double.liquidsoap
38
- # ^ source.liquidsoap
74
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
39
75
  # ^ source.liquidsoap string.quoted.double.liquidsoap
40
76
  # ^^^ source.liquidsoap string.quoted.double.liquidsoap
41
77
  # ^ source.liquidsoap string.quoted.double.liquidsoap
42
- # ^^^ source.liquidsoap
78
+ # ^ source.liquidsoap
79
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
80
+ # ^ source.liquidsoap
43
81
  # ^ source.liquidsoap string.quoted.double.liquidsoap
44
82
  # ^ source.liquidsoap string.quoted.double.liquidsoap
45
83
  # ^ source.liquidsoap string.quoted.double.liquidsoap
46
- # ^ source.liquidsoap
84
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
47
85
  # ^ source.liquidsoap string.quoted.double.liquidsoap
48
86
  # ^ source.liquidsoap string.quoted.double.liquidsoap
49
87
  # ^ source.liquidsoap string.quoted.double.liquidsoap
50
- # ^^^ source.liquidsoap
88
+ # ^ source.liquidsoap
89
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
90
+ # ^ source.liquidsoap
51
91
  # ^ source.liquidsoap string.quoted.double.liquidsoap
52
92
  # ^^^^^ source.liquidsoap string.quoted.double.liquidsoap
53
93
  # ^ source.liquidsoap string.quoted.double.liquidsoap
54
- # ^ source.liquidsoap
94
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
55
95
  # ^ source.liquidsoap string.quoted.double.liquidsoap
56
96
  # ^^^ source.liquidsoap string.quoted.double.liquidsoap
57
97
  # ^ source.liquidsoap string.quoted.double.liquidsoap
58
- # ^^^^^^^ source.liquidsoap
98
+ # ^^^ source.liquidsoap
99
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
100
+ # ^^^ source.liquidsoap
59
101
  # ^ source.liquidsoap string.quoted.double.liquidsoap
60
102
  # ^ source.liquidsoap string.quoted.double.liquidsoap
61
103
  # ^ source.liquidsoap string.quoted.double.liquidsoap
62
- # ^ source.liquidsoap
104
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
63
105
  # ^ source.liquidsoap string.quoted.double.liquidsoap
64
106
  # ^ source.liquidsoap string.quoted.double.liquidsoap
65
107
  # ^ source.liquidsoap string.quoted.double.liquidsoap
66
- # ^^^ source.liquidsoap
108
+ # ^ source.liquidsoap
109
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
110
+ # ^ source.liquidsoap
67
111
  # ^ source.liquidsoap string.quoted.double.liquidsoap
68
112
  # ^ source.liquidsoap string.quoted.double.liquidsoap
69
113
  # ^ source.liquidsoap string.quoted.double.liquidsoap
70
- # ^ source.liquidsoap
114
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
71
115
  # ^ source.liquidsoap string.quoted.double.liquidsoap
72
116
  # ^ source.liquidsoap string.quoted.double.liquidsoap
73
117
  # ^ source.liquidsoap string.quoted.double.liquidsoap
74
118
  # ^^^^ source.liquidsoap
75
119
  >
76
120
  > apic_cover = string.base64.decode("AGltYWdlL3BuZwADQWxidW0gY292ZXIAiVBORw0KGgoAAAANSUhEUgAAAIAAAACAEAIAAAAczCrfAAAACXBIWXMAAAAAAAAAAQCEeRdzAAACoklEQVR4nO3E4UYYAACF0StJkiRJkiRJkiRJkiRJkiTJli1btmzZsmXLli3atGnTpk2bNm3atEmSJEmSJEmSJEmSJEmSJEnS9h73Oz+O9N/VFbPvurxg9l0XZ8y+6/yE2XedHTH7rtMDZt91ssfsu453mH3X0Raz7zrcYPZdB2vMvmt/hdl37S0x+67dBWbftTPH7Lu2Z5h919YUs+/anGD2XRtjzL5rfYTZd60NMfuu1QFm37Xyh9l3Lf9i9l1LP5h91+I3Zt+18IXZd81/YvZdcx+YfdfsO2bfNfOG2XdNv2L2XVMtzL5rspnZd000Mfuu8UZm3zXWwOy7RuuZfddIHbPvGq5l9l1DNcy+a7Ca2XcNVDH7rv4KZt/1t4zZd/WVMPuu30XMvqu3gNl3/cxj9l09Ocy+63sWs+/qzmD2XV/TmH1XVwqz7/qcxOy7OhOYfdfHOGbf1RHD7LveRzH7rvYIZt/1NozZd7WFMPuu10HMvqs1gNl3tVwy+64X58y+q/mU2Xc9O2b2XU2HzL7ryT6z72rcZfZdj7aZfVfDJrPverDO7LvqV5l9171lZt9Vt8jsu+7MM/uu2llm33Vrmtl31Uwy+64b48y+q3qU2XddG2b2XVWDzL6rsp/Zd1X0Mfuu8l5m31XWw+y7SruZfVdJF7PvKu5k9l1FHcy+q7Cd2XcVtDH7rvxWZt+V95LZd+U+Z/ZdOU+ZfVf2Y2bflfWQ2Xdl3mf2XRl3mX1X+m1m35V2k9l3pV5n9l0plcy+K7mc2XcllTL7rsRiZt+VUMjsu+LzmX1XXC6z74rNZvZdMZnMvis6ndl3RaUy+67IZGbfFZHI7LvC45l9V1gss+8KjWb2XSGRzL4rOJzZdwWFMvuuwGBm3xUQyOw7YOsfJwPDsnrI0ewAAAAASUVORK5CYII=")
77
- #^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
78
- # ^^ source.liquidsoap constant.numeric.integer
79
- # ^^^^^^^^ source.liquidsoap
80
- # ^ source.liquidsoap string.quoted.double.liquidsoap
81
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
82
- # ^ source.liquidsoap string.quoted.double.liquidsoap
83
- # ^^ source.liquidsoap
121
+ #^^ source.liquidsoap
122
+ # ^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
123
+ # ^^ source.liquidsoap
124
+ # ^ source.liquidsoap
125
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
126
+ # ^ source.liquidsoap keyword.other.liquidsoap
127
+ # ^^^^^^ source.liquidsoap variable.method.liquidsoap
128
+ # ^ source.liquidsoap meta.function-call.liquidsoap
129
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
130
+ # ^ source.liquidsoap meta.function-call.liquidsoap
131
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
132
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
133
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
134
+ # ^ source.liquidsoap meta.function-call.liquidsoap
84
135
  >
85
136
  > parse_apic_data = string.apic.parse(apic_cover)
86
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
137
+ #^^ source.liquidsoap
138
+ # ^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
139
+ # ^^ source.liquidsoap
140
+ # ^ source.liquidsoap
141
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
142
+ # ^ source.liquidsoap keyword.other.liquidsoap
143
+ # ^^^^ source.liquidsoap variable.method.liquidsoap
144
+ # ^ source.liquidsoap meta.function-call.liquidsoap
145
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
146
+ # ^ source.liquidsoap meta.function-call.liquidsoap
147
+ # ^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
148
+ # ^ source.liquidsoap meta.function-call.liquidsoap
87
149
  >
88
150
  > expected_apic_string_data = string.base64.decode("iVBORw0KGgoAAAANSUhEUgAAAIAAAACAEAIAAAAczCrfAAAACXBIWXMAAAAAAAAAAQCEeRdzAAACoklEQVR4nO3E4UYYAACF0StJkiRJkiRJkiRJkiRJkiTJli1btmzZsmXLli3atGnTpk2bNm3atEmSJEmSJEmSJEmSJEmSJEnS9h73Oz+O9N/VFbPvurxg9l0XZ8y+6/yE2XedHTH7rtMDZt91ssfsu453mH3X0Raz7zrcYPZdB2vMvmt/hdl37S0x+67dBWbftTPH7Lu2Z5h919YUs+/anGD2XRtjzL5rfYTZd60NMfuu1QFm37Xyh9l3Lf9i9l1LP5h91+I3Zt+18IXZd81/YvZdcx+YfdfsO2bfNfOG2XdNv2L2XVMtzL5rspnZd000Mfuu8UZm3zXWwOy7RuuZfddIHbPvGq5l9l1DNcy+a7Ca2XcNVDH7rv4KZt/1t4zZd/WVMPuu30XMvqu3gNl3/cxj9l09Ocy+63sWs+/qzmD2XV/TmH1XVwqz7/qcxOy7OhOYfdfHOGbf1RHD7LveRzH7rvYIZt/1NozZd7WFMPuu10HMvqs1gNl3tVwy+64X58y+q/mU2Xc9O2b2XU2HzL7ryT6z72rcZfZdj7aZfVfDJrPverDO7LvqV5l9171lZt9Vt8jsu+7MM/uu2llm33Vrmtl31Uwy+64b48y+q3qU2XddG2b2XVWDzL6rsp/Zd1X0Mfuu8l5m31XWw+y7SruZfVdJF7PvKu5k9l1FHcy+q7Cd2XcVtDH7rvxWZt+V95LZd+U+Z/ZdOU+ZfVf2Y2bflfWQ2Xdl3mf2XRl3mX1X+m1m35V2k9l3pV5n9l0plcy+K7mc2XcllTL7rsRiZt+VUMjsu+LzmX1XXC6z74rNZvZdMZnMvis6ndl3RaUy+67IZGbfFZHI7LvC45l9V1gss+8KjWb2XSGRzL4rOJzZdwWFMvuuwGBm3xUQyOw7YOsfJwPDsnrI0ewAAAAASUVORK5CYII=")
89
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
90
- # ^^ source.liquidsoap constant.numeric.integer
91
- # ^^^^^^^^ source.liquidsoap
92
- # ^ source.liquidsoap string.quoted.double.liquidsoap
93
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
94
- # ^ source.liquidsoap string.quoted.double.liquidsoap
95
- # ^^ source.liquidsoap
151
+ #^^ source.liquidsoap
152
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
153
+ # ^^ source.liquidsoap
154
+ # ^ source.liquidsoap
155
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
156
+ # ^ source.liquidsoap keyword.other.liquidsoap
157
+ # ^^^^^^ source.liquidsoap variable.method.liquidsoap
158
+ # ^ source.liquidsoap meta.function-call.liquidsoap
159
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
160
+ # ^ source.liquidsoap meta.function-call.liquidsoap
161
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
162
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
163
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
164
+ # ^ source.liquidsoap meta.function-call.liquidsoap
96
165
  >
97
166
  > t(parse_apic_data, expected_apic_string_data.{description = "Album cover", picture_type = 3, mime = "image/png"})
98
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
99
- # ^ source.liquidsoap string.quoted.double.liquidsoap
100
- # ^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
101
- # ^ source.liquidsoap string.quoted.double.liquidsoap
102
- # ^^^^^^^^^^^^^^^^^ source.liquidsoap
103
- # ^ source.liquidsoap constant.numeric.integer
104
- # ^^^^^^^^^ source.liquidsoap
105
- # ^ source.liquidsoap string.quoted.double.liquidsoap
106
- # ^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
107
- # ^ source.liquidsoap string.quoted.double.liquidsoap
108
- # ^^^ source.liquidsoap
167
+ #^^ source.liquidsoap
168
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
169
+ # ^ source.liquidsoap meta.function-call.liquidsoap
170
+ # ^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
171
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
172
+ # ^ source.liquidsoap meta.function-call.liquidsoap
173
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
174
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
175
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
176
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
177
+ # ^ source.liquidsoap meta.function-call.liquidsoap
178
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
179
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
180
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
181
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
182
+ # ^ source.liquidsoap meta.function-call.liquidsoap
183
+ # ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
184
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
185
+ # ^ source.liquidsoap meta.function-call.liquidsoap
186
+ # ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
187
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
188
+ # ^ source.liquidsoap meta.function-call.liquidsoap
189
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
190
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
191
+ # ^ source.liquidsoap meta.function-call.liquidsoap
192
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
193
+ # ^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
194
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
195
+ # ^ source.liquidsoap meta.function-call.liquidsoap
196
+ # ^ source.liquidsoap meta.function-call.liquidsoap
109
197
  >
110
198
  > pic_cover = string.base64.decode("AEpQRwAA/9j/4AAQSkZJRgABAQEASABIAAD/7RBSUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQNAAAAAAAEAAAAeDhCSU0D8wAAAAAACAAAAAAAAAAAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBBQAAAAAAAQAAAABOEJJTQQMAAAAAA7BAAAAAQAAAHAAAABwAAABUAAAkwAAAA6lABgAAf/Y/+AAEEpGSUYAAQIBAEgASAAA/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAcABwAwEiAAIRAQMRAf/dAAQAB//EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdk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")
111
- #^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
112
- # ^^ source.liquidsoap constant.numeric.integer
113
- # ^^^^^^^^ source.liquidsoap
114
- # ^ source.liquidsoap string.quoted.double.liquidsoap
115
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
116
- # ^ source.liquidsoap string.quoted.double.liquidsoap
117
- # ^^ source.liquidsoap
199
+ #^^ source.liquidsoap
200
+ # ^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
201
+ # ^^ source.liquidsoap
202
+ # ^ source.liquidsoap
203
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
204
+ # ^ source.liquidsoap keyword.other.liquidsoap
205
+ # ^^^^^^ source.liquidsoap variable.method.liquidsoap
206
+ # ^ source.liquidsoap meta.function-call.liquidsoap
207
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
208
+ # ^ source.liquidsoap meta.function-call.liquidsoap
209
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
210
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
211
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
212
+ # ^ source.liquidsoap meta.function-call.liquidsoap
118
213
  >
119
214
  > parse_pic_data = string.pic.parse(pic_cover)
120
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
215
+ #^^ source.liquidsoap
216
+ # ^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
217
+ # ^^ source.liquidsoap
218
+ # ^ source.liquidsoap
219
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
220
+ # ^ source.liquidsoap keyword.other.liquidsoap
221
+ # ^^^ source.liquidsoap variable.method.liquidsoap
222
+ # ^ source.liquidsoap meta.function-call.liquidsoap
223
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
224
+ # ^ source.liquidsoap meta.function-call.liquidsoap
225
+ # ^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
226
+ # ^ source.liquidsoap meta.function-call.liquidsoap
121
227
  >
122
228
  > expected_pic_string_data = string.base64.decode("/9j/4AAQSkZJRgABAQEASABIAAD/7RBSUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQNAAAAAAAEAAAAeDhCSU0D8wAAAAAACAAAAAAAAAAAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBBQAAAAAAAQAAAABOEJJTQQMAAAAAA7BAAAAAQAAAHAAAABwAAABUAAAkwAAAA6lABgAAf/Y/+AAEEpGSUYAAQIBAEgASAAA/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAcABwAwEiAAIRAQMRAf/dAAQAB//EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi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")
123
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
124
- # ^^ source.liquidsoap constant.numeric.integer
125
- # ^^^^^^^^ source.liquidsoap
126
- # ^ source.liquidsoap string.quoted.double.liquidsoap
127
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
128
- # ^ source.liquidsoap string.quoted.double.liquidsoap
129
- # ^^ source.liquidsoap
229
+ #^^ source.liquidsoap
230
+ # ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
231
+ # ^^ source.liquidsoap
232
+ # ^ source.liquidsoap
233
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
234
+ # ^ source.liquidsoap keyword.other.liquidsoap
235
+ # ^^^^^^ source.liquidsoap variable.method.liquidsoap
236
+ # ^ source.liquidsoap meta.function-call.liquidsoap
237
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
238
+ # ^ source.liquidsoap meta.function-call.liquidsoap
239
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
240
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
241
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
242
+ # ^ source.liquidsoap meta.function-call.liquidsoap
130
243
  >
131
244
  > t(parse_pic_data, expected_pic_string_data.{description = "", picture_type = 1, mime = "image/jpeg"})
132
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
133
- # ^ source.liquidsoap string.quoted.double.liquidsoap
134
- # ^ source.liquidsoap string.quoted.double.liquidsoap
135
- # ^^^^^^^^^^^^^^^^^ source.liquidsoap
136
- # ^ source.liquidsoap constant.numeric.integer
137
- # ^^^^^^^^^ source.liquidsoap
138
- # ^ source.liquidsoap string.quoted.double.liquidsoap
139
- # ^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
140
- # ^ source.liquidsoap string.quoted.double.liquidsoap
141
- # ^^^ source.liquidsoap
245
+ #^^ source.liquidsoap
246
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
247
+ # ^ source.liquidsoap meta.function-call.liquidsoap
248
+ # ^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
249
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
250
+ # ^ source.liquidsoap meta.function-call.liquidsoap
251
+ # ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
252
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
253
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
254
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
255
+ # ^ source.liquidsoap meta.function-call.liquidsoap
256
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
257
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
258
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
259
+ # ^ source.liquidsoap meta.function-call.liquidsoap
260
+ # ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
261
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
262
+ # ^ source.liquidsoap meta.function-call.liquidsoap
263
+ # ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
264
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
265
+ # ^ source.liquidsoap meta.function-call.liquidsoap
266
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
267
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
268
+ # ^ source.liquidsoap meta.function-call.liquidsoap
269
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
270
+ # ^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
271
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
272
+ # ^ source.liquidsoap meta.function-call.liquidsoap
273
+ # ^ source.liquidsoap meta.function-call.liquidsoap
142
274
  >
143
275
  >
144
276
  > # From http://towerofbabel.free.fr/test/music.ogg
145
277
  #^^ source.liquidsoap
146
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap comment.line.number-sign.liquidsoap
278
+ # ^ source.liquidsoap comment.line.number-sign.liquidsoap
279
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap comment.line.number-sign.liquidsoap
147
280
  > flac_cover = string.base64.decode("AAAAAwAAAAppbWFnZS9qcGVnAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLz/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSERQUExQVFRUUFxQWFBQUFRQVFRQVFBUVFBQVFBQXHCYeFxkjGRQUHy8gJCcpLCwsFR4xNTAqNSYrLCkBCQoKDgwOFQ8PGikcHBwpKSkpKSkpKSkpKSkpKSkpKSwsKSkpKSkpKSkpKSkpLCwpKSkpKSkpKSkpKSkpLCkpKf/AABEIAMIBAwMBIgACEQEDEQH/xAAbAAABBQEBAAAAAAAAAAAAAAAEAAECAwUGB//EADwQAAIBAgMFBQUGBQUBAQAAAAABAgMRBCExBRJBUXFhgZGhsQYTIjLBFBVS0eHwIzNicvFCQ2OCkhYH/8QAGQEAAwEBAQAAAAAAAAAAAAAAAQIDAAQF/8QAJBEBAQACAQQCAgMBAAAAAAAAAAECEQMSEyExQVEyYQQUgSL/2gAMAwEAAhEDEQA/APD6eqCWgelqguwYyKRKw6Q7NWQsPuk2hkFjxiMPYcwIWJbot0UTMcdzI3Ip5mZY6nEW8VtiTMC0nBFUWXQY0LlRNCBu7J2FKs0oJtvRLUxcNVSvdXuss2rPg8tenadL7NbclQqRnF2ady3Hr5Syz6Q22NgyoScZxaa1TyMb7LmdF7TbfnXqym3dyZmYSF3c3LZD42UThqKjEdZ/X8hVKvl68yie0KUPmmul7vwRyKDk91ZgOMxdwHF+0EHo210M6rtOL5+BpBF1MQDykVRrRfFehNz0/feNopSK3MeTISCxKpYn7wGk7C3gU46nVBNsSu49H6oeEyjaEr7veBgYhCMydH5l1QdYBo/MuqNKwQqqwmTZGSAxJi3SKRJB2CQkMxXCx0hCGaMyMmQJyiL3RtMg1cdE1TJOJg2imWRZBRJJB2C+EwzD17ACZZGQdp3EdGe8y3F7WhSVlnLkvVsy8RjdzKPzc+X6mY2LbtTDHQjFbTnPV2XJZAohWFUJDiEYKROFVrQgIwC6VdPXJlriZ4RRxHB9wdtYeuiu5biNEUGaLFIqxj0LIlOJ4AFQIQjCnR+ZdUadjNofMuqNUwKmRcS1ohIG2kQXaT3LCiXQWXHLJ9l+BtjpTujMNpYbeaSzcmksuLySsUYjDOLaeTTaafNZNGlbSm4xIixtlWRRbGmihMtjIYtWukiuVMs3SCdjF2hKl2DKlmEbxOKRh2H3bDOVk3+7hM6FkNj8PuxSfK77xb4HGbrIkRZORGwDoDiEZiEIRhIQhGCEIQjCsc7q3ISIpE0zFIqxL0LkinErQxlAhCMyyh80eqNUysP80eqNmwKMVDSRJxHURNjpW0JMkRsFlsar52sQc7jNDWNGNIiyY1h9lRsSirCUSTQZSWLISZbTZQkWwkEul6oXIe7sy2lVyHfBhA+Cp79SMObXqG7ewmb8unIt9ncPetHvfk7eZo7bw18yHJlrKOjjn/NcBUjZkGg/H0LMCaKzyT0hYaxJIYwIiJDWAJhDjGEh7DEomYkTihJEoxMVKKKMZwCkgbGrNAGBRCEEVuG+ePVG0kY2G+ePVepttE8zYotES+LyeWbtny6Lt+hFRE2ZS4EXAJaIOKN1Mp3RbhZuk1TG2UPujqJa4DOAZQQa5Dyw8nHJat8M8h/dnW+xXuKl6NbKWbp8N66+W743sNKDhJNriHYaakkzV9rPZx0pylGL3b6NWt2GVhaNl6jkXMlFssp08m7ZLXsvkieGpXkhyul9lsL/ABIP8Tt5NerNLbWD4guDXu1FrWNmuqdzqtq4ZSSkvlkr35XzV+xnJzflHVw6uNjyraWFzeRhVKdjvdrbNOWx+CsVwqWUsY9iO6XOJFxKE2raGsTaItGFEQ9hgabZJEoxIl1OBtNaeKJqIki6FM1CIqIJtBad5pKABtSNnHoxTQAIQgiuwvzx6r1N9RzMHB/zIf3I6WMCPLdaUwircGUS7c5ElTI7PpQ6Y7ohiw6v8N2stVbO2f1Rb9mDuB0s5URnSNT7IM8KbrbprLcCLgaM8KUzw48yLYD3R5ZvO2WWSt3vtLXTHVMpCVXKcpayk+sm/Vj7pNRJNX1KSp1CxobHoXkvHwAYo39i0LeSHK05LJLvOp9nqvvKHu3rDLPjF/t+RzE9fBfVmhgcS6dpLh59hPPDqmj8efTkt2rs23Thlp2HJ7SwGuR6SoRrU1Uhmn5PimuaZzu1dnvP9CWPh0ZyPM8bgGrtIzpRO2xuB5o57HYC12joxu3NfDGsNYvcCDiMXapoaxY4jboBRhC4RGBKlSCKdHMAIU6NwuOHCcNhQn3AtGUCqBk7chZx6P1R0k6Jg+0cbOHSX0AaMUQhBMIwS/iQ/uXqdQoHMbP/AJtP+6PqdaoHPz+4tx/KtUwilhydCjmaNGh2HPb4WmOwlPDBUMMGU8OFU8MSua042csIL7Kayww7whpkbtsOeFB6mGOglhNQWrSytZa3vx5W6ZlcckcuNz1TDA8oWN2rh7GdXw9jpwycmeOgDiPYtcLEXEtEDUIZo6jZtC0V4vvMDBUrvwXidbSpbse4YqmENH1fjkgisrQfQrjDN9yLsZH4BpCWsrZ/tHLCzcrb0HffhpfPWL4SXM7TDYihiob9JqUXr+KD5TjqjzbaMMvEzcDtGpRnv05uEuafimtGuobx9Xk+HNcfFeg7R2Ws7eWZzuO2Zbh5Ghs3/wDRoy+HEwt/yU1fxhf08DT+34asv4daEuxy3Jf+Z2Ymrj7h7lMvTz7G7Mu9Ldpk18G4npGM2YrcPUwcbstchpSW6cbul1Chx8DYq7Mjf4ml3r6D08ItfD/AxeoHDDh+GwneEUMN+hpYfCijKFjRsP7riHukU1oLgLowJ0rnPe1qzp9JeqOpS7zmPbB/FT6S9UY0vlzghxAU0J2b/Op/3R9TtIQOL2b/ADqf90fU7qlE5P5F1YvxfIihRNGhRBqETTw0DitdmGK+jRvqG08KLDwNTC0ERyy07MMAtPAjzwLtodBhcDvIsrbOsifd8jbjvTkK2EAquGOnxmFMqvR7Dqwz2hni57EYYAr0ToMRSMzEQOzCvO5IwqtIpdOxdtfZE6NeDhP3lOdpby0S4qS4CcTqx9OK+xOx6N5LrfwOkkvh6sy9iUc+i/X6GzP/AEopEcqqhHN9fQnjl8AqC9QjEwvF2GhHI42GXRnP1oWduWnedViqWbXMxsThr9UWxLWVYhMJnRaI/Z3y/wAFCh4za4tdCyjGUtW7drfkERwS4+HALoYa+oKO6hh8NfsSDqVC/QnTp3D8Lh/0JZGiNDChLhYu3bIjYmptROOV/DqCF9Wd8ihy1Abaqs7aanK+1WtPpL1R08nc532xVnS6S9UCnx9uaEIQqwvZn86n/dH1O8oM4LZs7VqbXCUfU7SO0Z8HB9YK3ocv8jG5a06OGyS7beHNGhI53D7WqLWFJ90o+aYT9+TvlRjbkpv1bOG8Wf07sM8I6zDTzNjCVEcJR9pmmr0Xbskvqg+h7ZxWtKfimSz4OT6dM5+PXt6psWa4hW06sXHgec4b27ox1c4vluv6XLqvt5QlrUffGX5C4zOYXC4f648sJc+rqbGMqGNiGV//AEVGayqR78vUHqYlPSUX0lH8xsMbPcdOVlniqMQzMrsPq3eifdn6GdiIvk/BnZhXn8mIHEcQNhNZg8Wro7Mb4cGcrc2THJmlVfxRM/Zj+Hv/ACC60viiP1J3BKnLJ9WEuWVjPjUy7y+FUeZJ3BnY6nm/3kZdamn1NvGRvmZVWnyKTMlwZ7pPqL7M+NgmSfIjuvkP1l6VMaKRdThcnGl3l9Olp+7A6xmK2hRDFCy6alVJ28fEUqwtyPMdLd8Hq1+CZVVxFsgWVQXY6XTkDV58u8Uq1imKuLs+k6UcrnOe2E7yp9il6o6CrWscv7Szu4dJeqBs+MYghCMosov4lbmjapYmpwT7rmVgP5sL/iXqdXTnFaZE88un4V48bkz44ir+FruZKpiZ85LusaLxCJe/JdyfSt4r9s2GJmv9TfUs+3yXFPy9A37Sv3cZVU+XgvyG7k+iduz1Q8NoPi7dGycdo/1S8E0SqJ8ovuX5AcsNJvJWXZw69g+OUqeUygieJz4PrFJ+JNYlfhz/ALimGzprk+jQRT2dO6e7dKztnZrlcNuJZckltTsl2u/loX0dsSSyc10djZwmycPJZxcHyvfzCI+zNB8X5krycfyeY5sWHtDL8c31syUds34eKi/VHQ4X2dpQkpRvlzzXgyzEbGhJ3ul/1jkJeTjP0ZsbD7eSytH/AM/ky2W2r8Idzf5k9qYyjTSUowrSvb5d23WUbIwq1SEn8kYdicn6sbHpvkl3Gs9sR5Lul+ZbT25DSz8Uc/JU1qm/ElQxNG/y3vwbl9Ginj9puupyUlnGor/8ba7ncHrYRf1dXTl9LmRS2goK1NuHZGcreDbRN7Vm/wDcly11JdVnyfpl+BNTC/1eUl6or+zdq8SqO1Ki/wBx/vvJffU0s5LvUfqN15B2sRFKhb9Gix02uDA1tl/0P/qvoS+9+cYea+pu5kM4cV8pPtBqlexZ96R4w8JfoM8fTesZeKB3K3Z/YV1Cuc7Bn2qk/wAS6pMZqi/9S7016B7rdj9s1yuyz3lkGLD0+Eo+JGWzk9Gu5g7sHsVl1alzB9oo5w6S9Uda9kPt8jmva3Dbjp9ql6ofDkmV0F4rjNueEOMWIuwq+OPVdhvpwXHveZztJfEuqND3b/QnnNqYZ9LVVeK4jPFX0afUyFJrmXLF5E+g3dHvGSXInHFyfJLv/MzY4lpZP99RSxDfF9L5B6C9xsrEK3zL6DxqRlo33XMfD4dyeq77+hox+FZWb5u3oTymjzK5fB6uGd7qXj+ZCW0akclJqxKVZrXdS7LFDxN+T6DY37Tzk+PDf2Ntl1JbjfxWyf4ra9/E6TDTkuR5zKraWWXb2mpgNry4yfYS5ePfmH4uX4rvo4hg20MY1FqObel9F2s56jtWfMI+92/mSOTpsrtucsAYjD1JPOWfPL0SBKuBktXfxN330ZdjK3hb8TonNpy3hl8uZqYd3bz6WK/dy7TqPsvPPqTWGXJFf7MR/rWuWlUaVrPzIwrNO7b8Tp6mz7g89jR5BnPjfYXgynpiSxz4t9iy8yMcRla5rz2AtQf7j/bDOXjbt8gVYlw5Po0XQxylpnbNt5JEKmyrOyv+Ylsx2azNcsbGkzhR2i9LJ8rXCY4jLNeasUKlaO6nFLrmVTpSjZt378hfFVnVPY111bPIaNS+gDDGR5X55J2JPHq3Z35i9NVmc+RrIuQB948bO3EqqY7PibpyHuYtVV2tG/FmJ7TV3Jwu27KVr9xfSx2Wb8vyANt1t5x7/UfjxsyLyZS41mCEI6nMeDzQVKr/AJBYahLWVjUu2/HYV3OEIVK06X85wnShGLs24wjOLlJKzu8s4vIapsFxcE6M3KpUdKMY4nDyk5pJtfDBq2dr8GmnYVP2i+aUZ1qUqmdVU1TlCc7OO/HfacG03dZ6vOzsq8PtFU841sQm5ud9yi/jlbelnLJvdjfnYHgBD9nZp2eHqprVPEYdO2Tcs4fL8S+LTPUitiTWf2au7cVWpNX+N/MqdtKc/DtQntq6lH3+ItK90qdBX3vmWUsk+WhCW07Rcff4rdeqtTtlucN7/jh/5N4bwKp7HqLJYepm7JRxOHe9JvdtG0HvNNWaV7cQavhJKG/KhVUFPcb99R+fL4bKF21vJPk8iOI2spyjKVbENwlvwahRjuyvfeVpa3zuSjthKMoqtiLTd5fw6HxPLNu+ei71cGo1ynpNbGm20qNRtPdaWKwze8s3GyjnJLVariPX2Ju/DKE6c2pyp3qUasJ+7gqk4uVNJwlutNarNc7ko7deb+0YhOWbap0E75q+Tybu8+Nwf70ildSq1JpTjB1NyMae/BU5yUY33pbkUld2Vk87B8FtgB8wnD+ZT715adCVHEK/Ujd6bHUvsbCtJZLzDaWOS/wZ2+RdQjcduiZ3FuwxPIksUYOHxDi72yev0NCGLT/Ujnx6Xw5ZlGj78Sq8mBRmTVQncVJR6xjXHyJwxr5Iz/eIeNRi9I9VjWjXi+NuonDlmZyYoSa4sTp16qnVBzpcQXEpNNLiu8sjXY1aeWiv0NLZWsljDqYOKadn0IOi3z3eTWXjqa7b/CvIjKlc6Jyo9r6Ys6edk0lwSVskQWEbWfr1NSphFe9yipgG9H0KTl/ad4v0y3R1V7LzfIr3GtcufaaFTAS56eBS8LKza15q/kVnIncL9AI9jBsdJu11a1zRnRfL8wLadO2723LYZbpNeKBEIRVMo6hQhAoVKjqidTXxEIX5CeipaeIo8BCMHwU9RIQjJ5LKej7iMRCBWqTZKWqEIBUovXqKEtf3zEISKRZxLmxCFy+FsBGFm+bCmxxHPl7dmPooMdPMQhL6N9LZMlFjiJmXJlkdBCJ1TBG43AQgw4d6jSefcOIZNWytrUcQx4HiszI29rDo/UYR08H5Ry8v41lCEI73I//Z")
148
- #^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
149
- # ^^ source.liquidsoap constant.numeric.integer
150
- # ^^^^^^^^ source.liquidsoap
151
- # ^ source.liquidsoap string.quoted.double.liquidsoap
152
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
153
- # ^ source.liquidsoap string.quoted.double.liquidsoap
154
- # ^^ source.liquidsoap
281
+ #^^ source.liquidsoap
282
+ # ^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
283
+ # ^^ source.liquidsoap
284
+ # ^ source.liquidsoap
285
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
286
+ # ^ source.liquidsoap keyword.other.liquidsoap
287
+ # ^^^^^^ source.liquidsoap variable.method.liquidsoap
288
+ # ^ source.liquidsoap meta.function-call.liquidsoap
289
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
290
+ # ^ source.liquidsoap meta.function-call.liquidsoap
291
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
292
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
293
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
294
+ # ^ source.liquidsoap meta.function-call.liquidsoap
155
295
  >
156
296
  > parse_flac_cover = null.get(file.metadata.flac.cover.decode(flac_cover))
157
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
297
+ #^^ source.liquidsoap
298
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
299
+ # ^^ source.liquidsoap
300
+ # ^ source.liquidsoap
301
+ # ^^^^ source.liquidsoap variable.liquidsoap
302
+ # ^ source.liquidsoap meta.function-call.liquidsoap
303
+ # ^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
304
+ # ^ source.liquidsoap meta.function-call.liquidsoap
305
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
306
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
307
+ # ^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
308
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
309
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
310
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
311
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
312
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
313
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
314
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
315
+ # ^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
316
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
317
+ # ^ source.liquidsoap meta.function-call.liquidsoap
158
318
  >
159
319
  > excepted_flac_string_data = string.base64.decode("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")
160
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
161
- # ^^ source.liquidsoap constant.numeric.integer
162
- # ^^^^^^^^ source.liquidsoap
163
- # ^ source.liquidsoap string.quoted.double.liquidsoap
164
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
165
- # ^ source.liquidsoap string.quoted.double.liquidsoap
166
- # ^^ source.liquidsoap
320
+ #^^ source.liquidsoap
321
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
322
+ # ^^ source.liquidsoap
323
+ # ^ source.liquidsoap
324
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
325
+ # ^ source.liquidsoap keyword.other.liquidsoap
326
+ # ^^^^^^ source.liquidsoap variable.method.liquidsoap
327
+ # ^ source.liquidsoap meta.function-call.liquidsoap
328
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
329
+ # ^ source.liquidsoap meta.function-call.liquidsoap
330
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
331
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
332
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
333
+ # ^ source.liquidsoap meta.function-call.liquidsoap
167
334
  >
168
335
  > t(parse_flac_cover, excepted_flac_string_data.{picture_type = 3, mime = "image/jpeg", description = "", width = 0, height = 0, color_depth = 0, number_of_colors = null()})
169
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
170
- # ^ source.liquidsoap constant.numeric.integer
171
- # ^^^^^^^^^ source.liquidsoap
172
- # ^ source.liquidsoap string.quoted.double.liquidsoap
173
- # ^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
174
- # ^ source.liquidsoap string.quoted.double.liquidsoap
175
- # ^^^^^^^^^^^^^^^^ source.liquidsoap
176
- # ^ source.liquidsoap string.quoted.double.liquidsoap
177
- # ^ source.liquidsoap string.quoted.double.liquidsoap
178
- # ^^^^^^^^^^ source.liquidsoap
179
- # ^ source.liquidsoap constant.numeric.integer
180
- # ^^^^^^^^^^^ source.liquidsoap
181
- # ^ source.liquidsoap constant.numeric.integer
182
- # ^^^^^^^^^^^^^^^^ source.liquidsoap
183
- # ^ source.liquidsoap constant.numeric.integer
184
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
336
+ #^^ source.liquidsoap
337
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
338
+ # ^ source.liquidsoap meta.function-call.liquidsoap
339
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
340
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
341
+ # ^ source.liquidsoap meta.function-call.liquidsoap
342
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
343
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
344
+ # ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
345
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
346
+ # ^ source.liquidsoap meta.function-call.liquidsoap
347
+ # ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
348
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
349
+ # ^ source.liquidsoap meta.function-call.liquidsoap
350
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
351
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
352
+ # ^ source.liquidsoap meta.function-call.liquidsoap
353
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
354
+ # ^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
355
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
356
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
357
+ # ^ source.liquidsoap meta.function-call.liquidsoap
358
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
359
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
360
+ # ^ source.liquidsoap meta.function-call.liquidsoap
361
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
362
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
363
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
364
+ # ^ source.liquidsoap meta.function-call.liquidsoap
365
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
366
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
367
+ # ^ source.liquidsoap meta.function-call.liquidsoap
368
+ # ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
369
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
370
+ # ^ source.liquidsoap meta.function-call.liquidsoap
371
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
372
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
373
+ # ^ source.liquidsoap meta.function-call.liquidsoap
374
+ # ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
375
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
376
+ # ^ source.liquidsoap meta.function-call.liquidsoap
377
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
378
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
379
+ # ^ source.liquidsoap meta.function-call.liquidsoap
380
+ # ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
381
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
382
+ # ^ source.liquidsoap meta.function-call.liquidsoap
383
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
384
+ # ^^ source.liquidsoap meta.function-call.liquidsoap
385
+ # ^ source.liquidsoap meta.function-call.liquidsoap
386
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
387
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
388
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
389
+ # ^ source.liquidsoap meta.function-call.liquidsoap
390
+ # ^ source.liquidsoap meta.function-call.liquidsoap
185
391
  >
186
392
  > encoded_flac_cover = file.metadata.flac.cover.encode(
187
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
393
+ #^^ source.liquidsoap
394
+ # ^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
395
+ # ^^ source.liquidsoap
396
+ # ^ source.liquidsoap
397
+ # ^^^^ source.liquidsoap variable.liquidsoap
398
+ # ^ source.liquidsoap keyword.other.liquidsoap
399
+ # ^^^^^^^^ source.liquidsoap variable.method.liquidsoap
400
+ # ^ source.liquidsoap keyword.other.liquidsoap
401
+ # ^^^^ source.liquidsoap variable.method.liquidsoap
402
+ # ^ source.liquidsoap keyword.other.liquidsoap
403
+ # ^^^^^ source.liquidsoap variable.method.liquidsoap
404
+ # ^ source.liquidsoap meta.function-call.liquidsoap
405
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
406
+ # ^ source.liquidsoap meta.function-call.liquidsoap
188
407
  > picture_type=parse_flac_cover.picture_type,
189
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
408
+ #^^^^ source.liquidsoap meta.function-call.liquidsoap
409
+ # ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
410
+ # ^ source.liquidsoap meta.function-call.liquidsoap
411
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
412
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
413
+ # ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
414
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
190
415
  > mime=parse_flac_cover.mime,
191
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
416
+ #^^^^ source.liquidsoap meta.function-call.liquidsoap
417
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
418
+ # ^ source.liquidsoap meta.function-call.liquidsoap
419
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
420
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
421
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
422
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
192
423
  > description=parse_flac_cover.description,
193
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
424
+ #^^^^ source.liquidsoap meta.function-call.liquidsoap
425
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
426
+ # ^ source.liquidsoap meta.function-call.liquidsoap
427
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
428
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
429
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
430
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
194
431
  > width=parse_flac_cover.width,
195
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
432
+ #^^^^ source.liquidsoap meta.function-call.liquidsoap
433
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
434
+ # ^ source.liquidsoap meta.function-call.liquidsoap
435
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
436
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
437
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
438
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
196
439
  > height=parse_flac_cover.height,
197
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
440
+ #^^^^ source.liquidsoap meta.function-call.liquidsoap
441
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
442
+ # ^ source.liquidsoap meta.function-call.liquidsoap
443
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
444
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
445
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
446
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
198
447
  > color_depth=parse_flac_cover.color_depth,
199
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
448
+ #^^^^ source.liquidsoap meta.function-call.liquidsoap
449
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
450
+ # ^ source.liquidsoap meta.function-call.liquidsoap
451
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
452
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
453
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
454
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
200
455
  > number_of_colors=parse_flac_cover.number_of_colors,
201
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
456
+ #^^^^ source.liquidsoap meta.function-call.liquidsoap
457
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
458
+ # ^ source.liquidsoap meta.function-call.liquidsoap
459
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
460
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
461
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
462
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
202
463
  > (parse_flac_cover:string))
203
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
464
+ #^^^^^ source.liquidsoap meta.function-call.liquidsoap
465
+ # ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
466
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.type-annotation.liquidsoap keyword.other.cast.liquidsoap
467
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap meta.type-annotation.liquidsoap storage.type.ground.liquidsoap
468
+ # ^ source.liquidsoap meta.function-call.liquidsoap meta.type-annotation.liquidsoap
469
+ # ^ source.liquidsoap meta.function-call.liquidsoap
204
470
  >
205
471
  >
206
472
  > # The re-encoded tag doesn't match the original one b/c mime string has padding in it..
207
473
  #^^ source.liquidsoap
208
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap comment.line.number-sign.liquidsoap
474
+ # ^ source.liquidsoap comment.line.number-sign.liquidsoap
475
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap comment.line.number-sign.liquidsoap
209
476
  > expected_encoded_flac_codec = string.base64.decode("AAAAAwAAAAJpbWFnZS9qcGVnAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl//2P/gABBKRklGAAEBAAABAAEAAP/bAIQACQYGFBIRFBQTFBUVFRQXFBYUFBQVFBUVFBUUFRUUFBUUFBccJh4XGSMZFBQfLyAkJyksLCwVHjE1MCo1JissKQEJCgoODA4VDw8aKRwcHCkpKSkpKSkpKSkpKSkpKSkpLCwpKSkpKSkpKSkpKSksLCkpKSkpKSkpKSkpKSksKSkp/8AAEQgAwgEDAwEiAAIRAQMRAf/EABsAAAEFAQEAAAAAAAAAAAAAAAQAAQIDBQYH/8QAPBAAAgECAwUFBQYFBQEBAAAAAAECAxEEITEFEkFRcWGBkaGxBhMiMsEUFVLR4fAjM2Jy8UJDY4KSFgf/xAAZAQADAQEBAAAAAAAAAAAAAAABAgMABAX/xAAkEQEBAAIBBAICAwEAAAAAAAAAAQIRAxITITFBUTJhBBSBIv/aAAwDAQACEQMRAD8A8Pp6oJaB6WqC7BjIpErDpDs1ZCw+6TaGQWPGIw9hzAhYlui3RRMxx3MjcinmZljqcRbxW2JMwLScEVRZdBjQuVE0IG7snYUqzSgm29EtTFw1VK91e6yzas+Dy16dp0vs1tyVCpGcXZp3LcevlLLPpDbY2DKhJxnFprVPIxvsuZ0XtNt+derKbd3JmZhIXdzctkPjZROGoqMR1n9fyFUq+XrzKJ7QpQ+aa6Xu/BHIoOT3VmA4zF3AcX7QQejbXQzqu04vn4GkEXUxAPKRVGtF8V6E3PT9942ilIrcx5MhILEqlifvAaTsLeBTjqdUE2xK7j0fqh4TKNoSvu94GBiEIzJ0fmXVB1gGj8y6o0rBCqrCZNkZIDEmLdIpEkHYJCQzFcLHSEIZozIyZAnKIvdG0yDVx0TVMk4mDaKZZFkFEkkHYL4TDMPXsAJlkZB2ncR0Z7zLcXtaFJWWcuS9WzLxGN3Mo/Nz5fqZjYtu1MMdCMVtOc9XZclkCiFYVQkOIRgpE4VWtCAjALpV09cmWuJnhFHEcH3B21h66K7luI0RQZosUirGPQsiU4ngAVAhCMKdH5l1Rp2M2h8y6o1TAqZFxLWiEgbaRBdpPcsKJdBZccsn2X4G2OlO6Mw2lht5pLNyaSy4vJKxRiMM4tp5NNpp81k0aVtKbjEiLG2VZFFsaaKEy2Mhi1a6SK5UyzdIJ2MXaEqXYMqWYRvE4pGHYfdsM5WTf7uEzoWQ2Pw+7FJ8rvvFvgcZusiRFk5EbAOgOIRmIQhGEhCEYIQhCMKxzurchIikTTMUirEvQuSKcStDGUCEIzLKHzR6o1TKw/zR6o2bAoxUNJEnEdRE2OlbQkyRGwWWxqvnaxBzuM0NY0Y0iLJjWH2VGxKKsJRJNBlJYshJltNlCRbCQS6Xqhch7uzLaVXId8GED4Knv1Iw5teobt7CZvy6ci32dw960e9+Tt5mjtvDXzIcmWso6OOf81wFSNmQaD8fQswJorPJPSFhrEkhjAiIkNYAmEOMYSHsMSiZiROKEkSjExUoooxnAKSBsas0AYFEIQRW4b549UbSRjYb549V6m20TzNii0RL4vJ5Zu2fLou36EVETZlLgRcAlog4o3UyndFuFm6TVMbZQ+6OolrgM4BlBBrkPLDycclq3wzyH92db7Fe4qXo1spZunw3rr5bvjew0oOEk2uIdhpqSTNX2s9nHSnKUYvdvo1a3YZWFo2XqORcyUWyynTybtktey+SJ4aleSHK6X2Wwv8AEg/xO3k16s0ttYPiC4Ne7UWtY2a6p3Oq2rhlJKS+WSvflfNX7GcnN+UdXDq42PKtpYXN5GFUp2O92ts05bH4KxXCpZSxj2I7pc4kXEoTatoaxNoi0YURD2GBptkkSjEiXU4G01p4omoiSLoUzUIiogm0Fp3mkoAG1I2cejFNAAhCCK7C/PHqvU31HMwcH/Mh/cjpYwI8t1pTCKtwZRLtzkSVMjs+lDpjuiGLDq/w3ay1Vs7Z/VFv2YO4HSzlRGdI1PsgzwputumstwIuBozwpTPDjzItgPdHlm87ZZZK3e+0tdMdUykJVcpylrKT6yb9WPuk1Ek1fUpKnULGhseheS8fABijf2LQt5IcrTksku86n2eq+8oe7esMs+MX+35HMT18F9WaGBxLp2kuHn2E88OqaPx59OS3auzbdOGWnYcntLAa5HpKhGtTVSGafk+Ka5pnO7V2e8/0JY+HRnI8zxuAau0jOlE7bG4HmjnsdgLXaOjG7c18Maw1i9wIOIxdqmhrFjiNugFGELhEYEqVIIp0cwAhTo3C44cJw2FCfcC0ZQKoGTtyFnHo/VHSTomD7Rxs4dJfQBoxRCEEwjBL+JD+5ep1Cgcxs/8Am0/7o+p1qgc/P7i3H8q1TCKWHJ0KOZo0aHYc9vhaY7CU8MFQwwZTw4VTwxK5rTjZywgvsprLDDvCGmRu2w54UHqYY6CWE1BatLK1lre/HlbpmVxyRy43PVMMDyhY3auHsZ1fD2OnDJyZ46AOI9i1wsRcS0QNQhmjqNm0LRXi+8wMFSu/BeJ1tKlux7hiqYQ0fV+OSCKytB9CuMM33IuxkfgGkJaytn+0csLNytvQd9+Gl89YvhJcztMNiKGKhv0mpRev4oPlOOqPNtowy8TNwO0alGe/Tm4S5p+Ka0a6hvH1eT4c1x8V6DtHZazt5ZnO47ZluHkaGzf/ANGjL4cTC3/JTV/GF/TwNP7fhqy/h1oS7HLcl/5nZiauPuHuUy9PPsbsy70t2mTXwbiekYzZitw9TBxuy1yGlJbpxu6XUKHHwNirsyN/iaXevoPTwi18P8DF6gcMOH4bCd4RQw36Glh8KKMoWNGw/uuIe6RTWguAujAnSuc97WrOn0l6o6lLvOY9sH8VPpL1RjS+XOCHEBTQnZv86n/dH1O0hA4vZv8AOp/3R9TuqUTk/kXVi/F8iKFE0aFEGoRNPDQOK12YYr6NG+obTwosPA1MLQRHLLTswwC08CPPAu2h0GFwO8iyts6yJ93yNuO9OQrYQCq4Y6fGYUyq9HsOrDPaGeLnsRhgCvROgxFIzMRA7MK87kjCq0il07F219kTo14OE/eU52lvLRLipLgJxOrH04r7E7Ho3kut/A6SS+HqzL2JRz6L9fobM/8ASikRyqqEc319CeOXwCoL1CMTC8XYaEcjjYZdGc/WhZ25ad51WKpZtczGxOGv1RbEtZViEwmdFoj9nfL/AAUKHjNri10LKMZS1bt2t+QRHBLj4cAuhhr6go7qGHw1+xIOpUL9CdOncPwuH/QlkaI0MKEuFi7dsiNiam1E45X8OoIX1Z3yKHLUBtqqztpqcr7Va0+kvVHTydznfbFWdLpL1QKfH25oQhCrC9mfzqf90fU7ygzgtmztWptcJR9TtI7RnwcH1grehy/yMblrTo4bJLtt4c0aEjncPtaotYUn3Sj5phP35O+VGNuSm/Vs4bxZ/TuwzwjrMNPM2MJURwlH2maavRduyS+qD6HtnFa0p+KZLPg5Pp0zn49e3qmxZriFbTqxceB5zhvbujHVzi+W6/pcuq+3lCWtR98ZfkLjM5hcLh/rjywlz6upsYyoY2IZX/8ARUZrKpHvy9QepiU9JRfSUfzGwxs9x05WWeKoxDMyuw+rd6J92foZ2Ii+T8GdmFefyYgcRxA2E1mDxaujsxvhwZytzZMcmaVV/FEz9mP4e/8AILrS+KI/UncEqcsn1YS5ZWM+NTLvL4VR5kncGdjqeb/eRl1qafU28ZG+ZlVafIpMyXBnuk+ovsz42CZJ8iO6+Q/WXpUxopF1OFycaXeX06Wn7sDrGYraFEMULLpqVUnbx8RSrC3I8x0t3werX4JlVXEWyBZVBdjpdOQNXny7xSrWKYq4uz6TpRyuc57YTvKn2KXqjoKtaxy/tLO7h0l6oGz4xiCEIyiyi/iVuaNqlianBPuuZWA/mwv+Jep1dOcVpkTzy6fhXjxuTPjiKv4Wu5kqmJnzku6xovEIl78l3J9K3iv2zYYma/1N9Sz7fJcU/L0DftK/dxlVT5eC/IbuT6J27PVDw2g+Lt0bJx2j/VLwTRKonyi+5fkByw0m8lZdnDr2D45Sp5TKCJ4nPg+sUn4k1iV+HP8AuKYbOmuT6NBFPZ07p7t0rO2dmuVw24llySW1OyXa7+WhfR2xJLJzXR2NnCbJw8lnFwfK9/MIj7M0HxfmSvJx/J5jmxYe0MvxzfWzJR2zfh4qL9UdDhfZ2lCSlG+XPNeDLMRsaEne6X/WOQl5OM/RmxsPt5LK0f8Az+TLZbavwh3N/mT2pjKNNJSjCtK9vl3bdZRsjCrVISfyRh2Jyfqxsem+SXcaz2xHku6X5ltPbkNLPxRz8lTWqb8SVDE0b/Le/BuX0aKeP2m66nJSWcaiv/xtrudwethF/V1dOX0uZFLaCgrU24dkZyt4NtE3tWb/ANyXLXUl1WfJ+mX4E1ML/V5SXqiv7N2rxKo7UqL/AHH++8l99TSzku9R+o3XkHaxEUqFv0aLHTa4MDW2X/Q/+q+hL735xh5r6m7mQzhxXyk+0GqV7Fn3pHjDwl+gzx9N6xl4oHcrdn9hXUK5zsGfaqT/ABLqkxmqL/1LvTXoHut2P2zXK7LPeWQYsPT4Sj4kZbOT0a7mDuwexWXVqXMH2ijnDpL1R1r2Q+3yOa9rcNuOn2qXqh8OSZXQXiuM254Q4xYi7Cr449V2G+nBce95nO0l8S6o0Pdv9Cec2phn0tVV4riM8VfRp9TIUmuZcsXkT6Dd0e8ZJciccXJ8ku/8zNjiWlk/31FLEN8X0vkHoL3GysQrfMvoPGpGWjfdcx8Ph3J6rvv6GjH4VlZvm7ehPKaPMrl8Hq4Z3upeP5kJbRqRyUmrEpVmtd1LssUPE35PoNjftPOT48N/Y22XUluN/FbJ/itr38TpMNOS5HnMqtpZZdvaamA2vLjJ9hLl49+Yfi5fiu+jiGDbQxjUWo5t6X0XaznqO1Z8wj73b+ZI5Omyu25ywBiMPUk85Z88vRIEq4GS1d/E3ffRl2MreFvxOic2nLeGXy5mph3dvPpYr93LtOo+y88+pNYZckV/sxH+ta5aVRpWs/MjCs07tvxOnqbPuDz2NHkGc+N9heDKemJLHPi32LLzIxxGVrmvPYC1B/uP9sM5eNu3yBViXDk+jRdDHKWmds23kkQqbKs7K/5iWzHZrM1yxsaTOFHaL0snytcJjiMs15qxQqVo7qcUuuZVOlKNm3fvyF8VWdU9jXXVs8ho1L6AMMZHlfnknYk8erdnfmL01WZz5Gsi5AH3jxs7cSqpjs+JunIe5i1VXa0b8WYntNXcnC7bspWv3F9LHZZvy/IA23W3nHv9R+PGzIvJlLjWYIQjqcx4PNBUqv8AkFhqEtZWNS7b8dhXc4QhUrTpfznCdKEYuzbjCM4uUkrO7yzi8hqmwXFwTozcqlR0oxjicPKTmkm18MGrZ2vwaadhU/aL5pRnWpSqZ1VTVOUJzs478d9pwbTd1nq87Oyrw+0VTzjWxCbm533KL+OVt6Wcsm92N+dgeAEP2dmnZ4eqmtU8Rh07ZNyzh8vxL4tM9SK2JNZ/Zq7txVak1f438yp20pz8O1Ce2rqUff4i0r3Sp0Ffe+ZZSyT5aEJbTtFx9/it16q1O2W5w3v+OH/k3hvAqnseoslh6mbslHE4d70m920bQe801ZpXtxBq+Ekob8qFVQU9xv31H58vhsoXbW8k+TyI4jaynKMpVsQ3CW/BqFGO7K995WlrfO5KO2Eoyiq2ItN3l/DofE8s2756LvVwajXKek1sabbSo1G091pYrDN7yzcbKOcktVquI9fYm78MoTpzanKnepRqwn7uCqTi5U0nCW601qs1zuSjt15v7RiE5ZtqnQTvmr5PJu7z43B/vSKV1KrUmlOMHU3Ixp78FTnJRjfeluRSV3ZWTzsHwW2AHzCcP5lPvXlp0JUcQr9SN3psdS+xsK0lkvMNpY5L/Bnb5F1CNx26JncW7DE8iSxRg4fEOLvbJ6/Q0IYtP9SOfHpfDlmUaPvxKryYFGZNVCdxUlHrGNcfInDGvkjP94h41GL0j1WNaNeL426icOWZnJihJrixOnXqqdUHOlxBcSk00uK7yyNdjVp5aK/Q0tlayWMOpg4pp2fQg6LfPd5NZeOprtv8K8iMqVzonKj2vpizp52TSXBJWyRBYRtZ+vU1KmEV73KKmAb0fQpOX9p3i/TLdHVXsvN8ivca1y59poVMBLnp4FLwsrNrXmr+RWcidwv0Aj2MGx0m7XVrXNGdF8vzAtp07bvbcthluk14oEQhFUyjqFCEChUqOqJ1NfEQhfkJ6Klp4ijwEIwfBT1EhCMnksp6PuIxEIFapNkpaoQgFSi9eooS1/fMQhIpFnEubEIXL4WwEYWb5sKbHEc+Xt2Y+igx08xCEvo30tkyUWOImZcmWR0EInVMEbjcBCDDh3qNJ59w4hk1bK2tRxDHgeKzMjb2sOj9RhHTwflHLy/jWUIQjvcj/9kAAAAAAA==")
210
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
211
- # ^^ source.liquidsoap constant.numeric.integer
212
- # ^^^^^^^^ source.liquidsoap
213
- # ^ source.liquidsoap string.quoted.double.liquidsoap
214
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
215
- # ^ source.liquidsoap string.quoted.double.liquidsoap
216
- # ^^ source.liquidsoap
477
+ #^^ source.liquidsoap
478
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
479
+ # ^^ source.liquidsoap
480
+ # ^ source.liquidsoap
481
+ # ^^^^^^ source.liquidsoap variable.liquidsoap
482
+ # ^ source.liquidsoap keyword.other.liquidsoap
483
+ # ^^^^^^ source.liquidsoap variable.method.liquidsoap
484
+ # ^ source.liquidsoap meta.function-call.liquidsoap
485
+ # ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
486
+ # ^ source.liquidsoap meta.function-call.liquidsoap
487
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
488
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
489
+ # ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
490
+ # ^ source.liquidsoap meta.function-call.liquidsoap
217
491
  >
218
492
  > t(encoded_flac_cover, expected_encoded_flac_codec)
219
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
493
+ #^^ source.liquidsoap
494
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
495
+ # ^ source.liquidsoap meta.function-call.liquidsoap
496
+ # ^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
497
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
498
+ # ^ source.liquidsoap meta.function-call.liquidsoap
499
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
500
+ # ^ source.liquidsoap meta.function-call.liquidsoap
220
501
  >
221
502
  > test.pass()
222
- #^^^^^^^^^^^^^^ source.liquidsoap
503
+ #^^ source.liquidsoap
504
+ # ^^^^ source.liquidsoap variable.liquidsoap
505
+ # ^ source.liquidsoap meta.function-call.liquidsoap
506
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
507
+ # ^ source.liquidsoap meta.function-call.liquidsoap
508
+ # ^ source.liquidsoap meta.function-call.liquidsoap
223
509
  >end
224
- #^^^ source.liquidsoap keyword.control.liquidsoap
510
+ #^^^ source.liquidsoap keyword.other.function.end.liquidsoap
225
511
  >
226
512
  >def test_metadata_json_stringify() =
227
- #^^^ source.liquidsoap keyword.control.liquidsoap
228
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
513
+ #^^^ source.liquidsoap keyword.other.function.definition.liquidsoap
514
+ # ^ source.liquidsoap
515
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
516
+ # ^ source.liquidsoap
517
+ # ^ source.liquidsoap
518
+ # ^^ source.liquidsoap
229
519
  > file_metadata = [
230
- #^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
520
+ #^^ source.liquidsoap
521
+ # ^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
522
+ # ^^ source.liquidsoap
523
+ # ^^^ source.liquidsoap
231
524
  > ("filename", "test.mp3"),
232
525
  #^^^^^ source.liquidsoap
233
526
  # ^ source.liquidsoap string.quoted.double.liquidsoap
234
527
  # ^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
235
528
  # ^ source.liquidsoap string.quoted.double.liquidsoap
236
- # ^^ source.liquidsoap
529
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
530
+ # ^ source.liquidsoap
237
531
  # ^ source.liquidsoap string.quoted.double.liquidsoap
238
532
  # ^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
239
533
  # ^ source.liquidsoap string.quoted.double.liquidsoap
240
- # ^^^ source.liquidsoap
534
+ # ^ source.liquidsoap
535
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
241
536
  > ("temporary", "false"),
242
537
  #^^^^^ source.liquidsoap
243
538
  # ^ source.liquidsoap string.quoted.double.liquidsoap
244
539
  # ^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
245
540
  # ^ source.liquidsoap string.quoted.double.liquidsoap
246
- # ^^ source.liquidsoap
541
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
542
+ # ^ source.liquidsoap
247
543
  # ^ source.liquidsoap string.quoted.double.liquidsoap
248
544
  # ^^^^^ source.liquidsoap string.quoted.double.liquidsoap
249
545
  # ^ source.liquidsoap string.quoted.double.liquidsoap
250
- # ^^^ source.liquidsoap
546
+ # ^ source.liquidsoap
547
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
251
548
  > ("initial_uri", "test.mp3"),
252
549
  #^^^^^ source.liquidsoap
253
550
  # ^ source.liquidsoap string.quoted.double.liquidsoap
254
551
  # ^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
255
552
  # ^ source.liquidsoap string.quoted.double.liquidsoap
256
- # ^^ source.liquidsoap
553
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
554
+ # ^ source.liquidsoap
257
555
  # ^ source.liquidsoap string.quoted.double.liquidsoap
258
556
  # ^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
259
557
  # ^ source.liquidsoap string.quoted.double.liquidsoap
260
- # ^^^ source.liquidsoap
558
+ # ^ source.liquidsoap
559
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
261
560
  > ("encoder", "Lavf59.27.100"),
262
561
  #^^^^^ source.liquidsoap
263
562
  # ^ source.liquidsoap string.quoted.double.liquidsoap
264
563
  # ^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
265
564
  # ^ source.liquidsoap string.quoted.double.liquidsoap
266
- # ^^ source.liquidsoap
565
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
566
+ # ^ source.liquidsoap
267
567
  # ^ source.liquidsoap string.quoted.double.liquidsoap
268
568
  # ^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
269
569
  # ^ source.liquidsoap string.quoted.double.liquidsoap
270
- # ^^^ source.liquidsoap
570
+ # ^ source.liquidsoap
571
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
271
572
  > ("status", "ready"),
272
573
  #^^^^^ source.liquidsoap
273
574
  # ^ source.liquidsoap string.quoted.double.liquidsoap
274
575
  # ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
275
576
  # ^ source.liquidsoap string.quoted.double.liquidsoap
276
- # ^^ source.liquidsoap
577
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
578
+ # ^ source.liquidsoap
277
579
  # ^ source.liquidsoap string.quoted.double.liquidsoap
278
580
  # ^^^^^ source.liquidsoap string.quoted.double.liquidsoap
279
581
  # ^ source.liquidsoap string.quoted.double.liquidsoap
280
- # ^^^ source.liquidsoap
582
+ # ^ source.liquidsoap
583
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
281
584
  > ("rid", "0"),
282
585
  #^^^^^ source.liquidsoap
283
586
  # ^ source.liquidsoap string.quoted.double.liquidsoap
284
587
  # ^^^ source.liquidsoap string.quoted.double.liquidsoap
285
588
  # ^ source.liquidsoap string.quoted.double.liquidsoap
286
- # ^^ source.liquidsoap
589
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
590
+ # ^ source.liquidsoap
287
591
  # ^ source.liquidsoap string.quoted.double.liquidsoap
288
592
  # ^ source.liquidsoap string.quoted.double.liquidsoap
289
593
  # ^ source.liquidsoap string.quoted.double.liquidsoap
290
- # ^^^ source.liquidsoap
594
+ # ^ source.liquidsoap
595
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
291
596
  > ("artist", "Artist")
292
597
  #^^^^^ source.liquidsoap
293
598
  # ^ source.liquidsoap string.quoted.double.liquidsoap
294
599
  # ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
295
600
  # ^ source.liquidsoap string.quoted.double.liquidsoap
296
- # ^^ source.liquidsoap
601
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
602
+ # ^ source.liquidsoap
297
603
  # ^ source.liquidsoap string.quoted.double.liquidsoap
298
604
  # ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
299
605
  # ^ source.liquidsoap string.quoted.double.liquidsoap
@@ -301,80 +607,203 @@
301
607
  > ]
302
608
  #^^^^ source.liquidsoap
303
609
  > expected_json_string = '{ "artist": "Artist" }'
304
- #^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
610
+ #^^ source.liquidsoap
611
+ # ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
612
+ # ^^ source.liquidsoap
613
+ # ^ source.liquidsoap
305
614
  # ^ source.liquidsoap string.quoted.single.liquidsoap
306
615
  # ^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.single.liquidsoap
307
616
  # ^ source.liquidsoap string.quoted.single.liquidsoap
308
617
  >
309
618
  > json_string = metadata.json.stringify(file_metadata)
310
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
619
+ #^^ source.liquidsoap
620
+ # ^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
621
+ # ^^ source.liquidsoap
622
+ # ^ source.liquidsoap
623
+ # ^^^^^^^^ source.liquidsoap variable.liquidsoap
624
+ # ^ source.liquidsoap keyword.other.liquidsoap
625
+ # ^^^^ source.liquidsoap variable.method.liquidsoap
626
+ # ^ source.liquidsoap meta.function-call.liquidsoap
627
+ # ^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
628
+ # ^ source.liquidsoap meta.function-call.liquidsoap
629
+ # ^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
630
+ # ^ source.liquidsoap meta.function-call.liquidsoap
311
631
  > t(json_string, expected_json_string)
312
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
632
+ #^^ source.liquidsoap
633
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
634
+ # ^ source.liquidsoap meta.function-call.liquidsoap
635
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
636
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
637
+ # ^ source.liquidsoap meta.function-call.liquidsoap
638
+ # ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
639
+ # ^ source.liquidsoap meta.function-call.liquidsoap
313
640
  >
314
641
  > empty_file_metadata = []
315
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
642
+ #^^ source.liquidsoap
643
+ # ^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
644
+ # ^^ source.liquidsoap
645
+ # ^^^^ source.liquidsoap
316
646
  > expected_json_string = '{}'
317
- #^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
647
+ #^^ source.liquidsoap
648
+ # ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
649
+ # ^^ source.liquidsoap
650
+ # ^ source.liquidsoap
318
651
  # ^ source.liquidsoap string.quoted.single.liquidsoap
319
652
  # ^^ source.liquidsoap string.quoted.single.liquidsoap
320
653
  # ^ source.liquidsoap string.quoted.single.liquidsoap
321
654
  >
322
655
  > json_string = metadata.json.stringify(empty_file_metadata)
323
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
656
+ #^^ source.liquidsoap
657
+ # ^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
658
+ # ^^ source.liquidsoap
659
+ # ^ source.liquidsoap
660
+ # ^^^^^^^^ source.liquidsoap variable.liquidsoap
661
+ # ^ source.liquidsoap keyword.other.liquidsoap
662
+ # ^^^^ source.liquidsoap variable.method.liquidsoap
663
+ # ^ source.liquidsoap meta.function-call.liquidsoap
664
+ # ^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
665
+ # ^ source.liquidsoap meta.function-call.liquidsoap
666
+ # ^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
667
+ # ^ source.liquidsoap meta.function-call.liquidsoap
324
668
  > t(json_string, expected_json_string)
325
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
669
+ #^^ source.liquidsoap
670
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
671
+ # ^ source.liquidsoap meta.function-call.liquidsoap
672
+ # ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
673
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
674
+ # ^ source.liquidsoap meta.function-call.liquidsoap
675
+ # ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
676
+ # ^ source.liquidsoap meta.function-call.liquidsoap
326
677
  >
327
678
  > test.pass()
328
- #^^^^^^^^^^^^^^ source.liquidsoap
679
+ #^^ source.liquidsoap
680
+ # ^^^^ source.liquidsoap variable.liquidsoap
681
+ # ^ source.liquidsoap meta.function-call.liquidsoap
682
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
683
+ # ^ source.liquidsoap meta.function-call.liquidsoap
684
+ # ^ source.liquidsoap meta.function-call.liquidsoap
329
685
  >end
330
- #^^^ source.liquidsoap keyword.control.liquidsoap
686
+ #^^^ source.liquidsoap keyword.other.function.end.liquidsoap
331
687
  >
332
688
  >def test_metadata_json_parse() =
333
- #^^^ source.liquidsoap keyword.control.liquidsoap
334
- # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
689
+ #^^^ source.liquidsoap keyword.other.function.definition.liquidsoap
690
+ # ^ source.liquidsoap
691
+ # ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
692
+ # ^ source.liquidsoap
693
+ # ^ source.liquidsoap
694
+ # ^^ source.liquidsoap
335
695
  > metadata_json_string = '{"artist": "Artist"}'
336
- #^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
696
+ #^^ source.liquidsoap
697
+ # ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
698
+ # ^^ source.liquidsoap
699
+ # ^ source.liquidsoap
337
700
  # ^ source.liquidsoap string.quoted.single.liquidsoap
338
701
  # ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.single.liquidsoap
339
702
  # ^ source.liquidsoap string.quoted.single.liquidsoap
340
703
  > expected_parsed_metadata = [("artist", "Artist")]
341
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
704
+ #^^ source.liquidsoap
705
+ # ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
706
+ # ^^ source.liquidsoap
707
+ # ^^^ source.liquidsoap
342
708
  # ^ source.liquidsoap string.quoted.double.liquidsoap
343
709
  # ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
344
710
  # ^ source.liquidsoap string.quoted.double.liquidsoap
345
- # ^^ source.liquidsoap
711
+ # ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
712
+ # ^ source.liquidsoap
346
713
  # ^ source.liquidsoap string.quoted.double.liquidsoap
347
714
  # ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
348
715
  # ^ source.liquidsoap string.quoted.double.liquidsoap
349
716
  # ^^^ source.liquidsoap
350
717
  >
351
718
  > parsed_metadata = metadata.json.parse(metadata_json_string)
352
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
719
+ #^^ source.liquidsoap
720
+ # ^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
721
+ # ^^ source.liquidsoap
722
+ # ^ source.liquidsoap
723
+ # ^^^^^^^^ source.liquidsoap variable.liquidsoap
724
+ # ^ source.liquidsoap keyword.other.liquidsoap
725
+ # ^^^^ source.liquidsoap variable.method.liquidsoap
726
+ # ^ source.liquidsoap meta.function-call.liquidsoap
727
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
728
+ # ^ source.liquidsoap meta.function-call.liquidsoap
729
+ # ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
730
+ # ^ source.liquidsoap meta.function-call.liquidsoap
353
731
  > t(parsed_metadata, expected_parsed_metadata)
354
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
732
+ #^^ source.liquidsoap
733
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
734
+ # ^ source.liquidsoap meta.function-call.liquidsoap
735
+ # ^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
736
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
737
+ # ^ source.liquidsoap meta.function-call.liquidsoap
738
+ # ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
739
+ # ^ source.liquidsoap meta.function-call.liquidsoap
355
740
  >
356
741
  > empty_metadata_json_string = '{}'
357
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
742
+ #^^ source.liquidsoap
743
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
744
+ # ^^ source.liquidsoap
745
+ # ^ source.liquidsoap
358
746
  # ^ source.liquidsoap string.quoted.single.liquidsoap
359
747
  # ^^ source.liquidsoap string.quoted.single.liquidsoap
360
748
  # ^ source.liquidsoap string.quoted.single.liquidsoap
361
749
  > expected_parsed_metadata = []
362
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
750
+ #^^ source.liquidsoap
751
+ # ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
752
+ # ^^ source.liquidsoap
753
+ # ^^^^ source.liquidsoap
363
754
  >
364
755
  > parsed_metadata = metadata.json.parse(empty_metadata_json_string)
365
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
756
+ #^^ source.liquidsoap
757
+ # ^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
758
+ # ^^ source.liquidsoap
759
+ # ^ source.liquidsoap
760
+ # ^^^^^^^^ source.liquidsoap variable.liquidsoap
761
+ # ^ source.liquidsoap keyword.other.liquidsoap
762
+ # ^^^^ source.liquidsoap variable.method.liquidsoap
763
+ # ^ source.liquidsoap meta.function-call.liquidsoap
764
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
765
+ # ^ source.liquidsoap meta.function-call.liquidsoap
766
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
767
+ # ^ source.liquidsoap meta.function-call.liquidsoap
366
768
  > t(parsed_metadata, expected_parsed_metadata)
367
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
769
+ #^^ source.liquidsoap
770
+ # ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
771
+ # ^ source.liquidsoap meta.function-call.liquidsoap
772
+ # ^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
773
+ # ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
774
+ # ^ source.liquidsoap meta.function-call.liquidsoap
775
+ # ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
776
+ # ^ source.liquidsoap meta.function-call.liquidsoap
368
777
  >
369
778
  > test.pass()
370
- #^^^^^^^^^^^^^^ source.liquidsoap
779
+ #^^ source.liquidsoap
780
+ # ^^^^ source.liquidsoap variable.liquidsoap
781
+ # ^ source.liquidsoap meta.function-call.liquidsoap
782
+ # ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
783
+ # ^ source.liquidsoap meta.function-call.liquidsoap
784
+ # ^ source.liquidsoap meta.function-call.liquidsoap
371
785
  >end
372
- #^^^ source.liquidsoap keyword.control.liquidsoap
786
+ #^^^ source.liquidsoap keyword.other.function.end.liquidsoap
373
787
  >
374
788
  >test.check(f)
375
- #^^^^^^^^^^^^^^ source.liquidsoap
789
+ #^^^^ source.liquidsoap variable.liquidsoap
790
+ # ^ source.liquidsoap meta.function-call.liquidsoap
791
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
792
+ # ^ source.liquidsoap meta.function-call.liquidsoap
793
+ # ^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
794
+ # ^ source.liquidsoap meta.function-call.liquidsoap
376
795
  >test.check(test_metadata_json_stringify)
377
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
796
+ #^^^^ source.liquidsoap variable.liquidsoap
797
+ # ^ source.liquidsoap meta.function-call.liquidsoap
798
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
799
+ # ^ source.liquidsoap meta.function-call.liquidsoap
800
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
801
+ # ^ source.liquidsoap meta.function-call.liquidsoap
378
802
  >test.check(test_metadata_json_parse)
379
- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap
803
+ #^^^^ source.liquidsoap variable.liquidsoap
804
+ # ^ source.liquidsoap meta.function-call.liquidsoap
805
+ # ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
806
+ # ^ source.liquidsoap meta.function-call.liquidsoap
807
+ # ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
808
+ # ^ source.liquidsoap meta.function-call.liquidsoap
380
809
  >