wsdl 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2621) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -2
  3. data/AGENTS.md +18 -90
  4. data/CHANGELOG.md +137 -4
  5. data/CONTRIBUTING.md +11 -61
  6. data/Gemfile +6 -0
  7. data/README.md +33 -8
  8. data/Rakefile +67 -2
  9. data/benchmarks/profile.rb +84 -0
  10. data/benchmarks/run.rb +8 -9
  11. data/docs/contributing/development.md +59 -0
  12. data/docs/contributing/testing.md +254 -0
  13. data/docs/core/building-requests.md +9 -10
  14. data/docs/core/configuration.md +80 -152
  15. data/docs/core/handling-responses.md +19 -2
  16. data/docs/core/http-client.md +208 -0
  17. data/docs/core/inspecting-services.md +86 -10
  18. data/docs/core/resolving-imports.md +11 -10
  19. data/docs/core/thread-safety.md +87 -0
  20. data/docs/getting_started.md +34 -5
  21. data/docs/reference/errors.md +2 -2
  22. data/docs/reference/specifications.md +1 -1
  23. data/docs/reference/strictness-fixture-matrix.md +64 -0
  24. data/docs/reference/unsupported-features.md +1 -1
  25. data/docs/security/ws-security-troubleshooting.md +1 -1
  26. data/docs/security/ws-security-username-token.md +7 -7
  27. data/lib/wsdl/client.rb +147 -132
  28. data/lib/wsdl/config.rb +21 -45
  29. data/lib/wsdl/contract/operation_contract.rb +12 -9
  30. data/lib/wsdl/contract/part_contract.rb +13 -16
  31. data/lib/wsdl/contract.rb +5 -4
  32. data/lib/wsdl/definition/builder.rb +300 -0
  33. data/lib/wsdl/definition/element_hash.rb +197 -0
  34. data/lib/wsdl/definition.rb +581 -0
  35. data/lib/wsdl/errors.rb +92 -25
  36. data/lib/wsdl/http/client.rb +362 -0
  37. data/lib/wsdl/http/config.rb +71 -0
  38. data/lib/wsdl/http/redirect_guard.rb +237 -0
  39. data/lib/wsdl/http/response.rb +33 -0
  40. data/lib/wsdl/http.rb +19 -0
  41. data/lib/wsdl/limits.rb +24 -8
  42. data/lib/wsdl/operation.rb +156 -98
  43. data/lib/wsdl/parse_options.rb +10 -11
  44. data/lib/wsdl/parser/binding.rb +5 -8
  45. data/lib/wsdl/parser/binding_operation.rb +105 -74
  46. data/lib/wsdl/parser/document.rb +10 -2
  47. data/lib/wsdl/parser/document_collection.rb +1 -1
  48. data/lib/wsdl/parser/import_result.rb +19 -0
  49. data/lib/wsdl/parser/input_output.rb +69 -57
  50. data/lib/wsdl/parser/message_info.rb +6 -1
  51. data/lib/wsdl/parser/message_reference.rb +5 -2
  52. data/lib/wsdl/parser/operation_info.rb +61 -21
  53. data/lib/wsdl/parser/operation_map.rb +120 -0
  54. data/lib/wsdl/parser/port.rb +1 -1
  55. data/lib/wsdl/parser/port_type.rb +10 -8
  56. data/lib/wsdl/parser/port_type_operation.rb +28 -4
  57. data/lib/wsdl/parser.rb +81 -23
  58. data/lib/wsdl/qname.rb +99 -15
  59. data/lib/wsdl/request/dsl_context.rb +13 -10
  60. data/lib/wsdl/request/security_conflict_detector.rb +2 -2
  61. data/lib/wsdl/request/serializer.rb +3 -3
  62. data/lib/wsdl/request/validator.rb +30 -25
  63. data/lib/wsdl/request.rb +8 -7
  64. data/lib/wsdl/resolver/importer.rb +347 -0
  65. data/lib/wsdl/resolver/loader.rb +452 -0
  66. data/lib/wsdl/resolver/source.rb +171 -0
  67. data/lib/wsdl/resolver.rb +18 -0
  68. data/lib/wsdl/response/builder.rb +393 -0
  69. data/lib/wsdl/response/parser.rb +55 -4
  70. data/lib/wsdl/response/type_coercer.rb +56 -10
  71. data/lib/wsdl/response.rb +32 -52
  72. data/lib/wsdl/schema/collection.rb +83 -229
  73. data/lib/wsdl/schema/definition.rb +54 -3
  74. data/lib/wsdl/schema/node.rb +187 -66
  75. data/lib/wsdl/security/canonicalizer.rb +1 -1
  76. data/lib/wsdl/security/config.rb +0 -3
  77. data/lib/wsdl/security/credential_normalizer.rb +4 -8
  78. data/lib/wsdl/security/digester.rb +2 -2
  79. data/lib/wsdl/security/request_materializer.rb +3 -3
  80. data/lib/wsdl/security/secure_compare.rb +1 -3
  81. data/lib/wsdl/security/security_header.rb +4 -4
  82. data/lib/wsdl/security/signature.rb +6 -6
  83. data/lib/wsdl/security/signature_options.rb +1 -1
  84. data/lib/wsdl/security/verifier/base.rb +11 -0
  85. data/lib/wsdl/security/verifier/certificate_resolver.rb +0 -8
  86. data/lib/wsdl/security/verifier/reference_validator.rb +0 -6
  87. data/lib/wsdl/security/verifier/timestamp_validator.rb +11 -0
  88. data/lib/wsdl/security/verifier.rb +44 -35
  89. data/lib/wsdl/security.rb +29 -28
  90. data/lib/wsdl/strictness.rb +126 -0
  91. data/lib/wsdl/version.rb +1 -1
  92. data/lib/wsdl/xml/attribute.rb +61 -0
  93. data/lib/wsdl/xml/element.rb +164 -33
  94. data/lib/wsdl/xml/element_builder.rb +185 -67
  95. data/lib/wsdl/xml/parser.rb +11 -59
  96. data/lib/wsdl/xml/threat_scanner.rb +217 -0
  97. data/lib/wsdl.rb +86 -38
  98. data/scripts/lint_links.rb +44 -0
  99. data/scripts/specifications.rb +417 -0
  100. data/spec/acceptance/amazon_spec.rb +333 -0
  101. data/spec/acceptance/authentication_spec.rb +63 -0
  102. data/spec/acceptance/awse_spec.rb +456 -0
  103. data/spec/acceptance/betfair_spec.rb +311 -0
  104. data/spec/acceptance/blz_service_spec.rb +46 -0
  105. data/spec/acceptance/bookt_spec.rb +103 -0
  106. data/spec/acceptance/bronto_spec.rb +539 -0
  107. data/spec/acceptance/bydexchange_spec.rb +35 -0
  108. data/spec/acceptance/crowd_spec.rb +169 -0
  109. data/spec/acceptance/daisycon_spec.rb +33 -0
  110. data/spec/acceptance/data_exchange_spec.rb +31 -0
  111. data/spec/acceptance/document_literal_spec.rb +106 -0
  112. data/spec/acceptance/economic_spec.rb +3099 -0
  113. data/spec/acceptance/email_verification_spec.rb +121 -0
  114. data/spec/acceptance/equifax_spec.rb +536 -0
  115. data/spec/acceptance/exhaustive_roundtrip_spec.rb +97 -0
  116. data/spec/acceptance/geotrust_spec.rb +56 -0
  117. data/spec/acceptance/interhome_spec.rb +544 -0
  118. data/spec/acceptance/iws_spec.rb +44 -0
  119. data/spec/acceptance/jetairways_spec.rb +149 -0
  120. data/spec/acceptance/jira_spec.rb +141 -0
  121. data/spec/acceptance/juniper_spec.rb +49 -0
  122. data/spec/acceptance/marketo_spec.rb +81 -0
  123. data/spec/acceptance/namespaced_actions_spec.rb +71 -0
  124. data/spec/acceptance/oracle_spec.rb +314 -0
  125. data/spec/acceptance/ratp_spec.rb +1025 -0
  126. data/spec/acceptance/rio2_spec.rb +45 -0
  127. data/spec/acceptance/rpc_literal_spec.rb +103 -0
  128. data/spec/acceptance/schema_patterns_spec.rb +436 -0
  129. data/spec/acceptance/security_round_trip_spec.rb +165 -0
  130. data/spec/acceptance/split_namespace_spec.rb +21 -0
  131. data/spec/acceptance/spyne_spec.rb +71 -0
  132. data/spec/acceptance/stockquote_spec.rb +46 -0
  133. data/spec/acceptance/strictness_fixture_matrix_spec.rb +122 -0
  134. data/spec/acceptance/taxcloud_spec.rb +145 -0
  135. data/spec/acceptance/team_software_spec.rb +79 -0
  136. data/spec/acceptance/telefonkatalogen_spec.rb +113 -0
  137. data/spec/acceptance/temperature_spec.rb +71 -0
  138. data/spec/acceptance/travelport_spec.rb +83 -0
  139. data/spec/acceptance/wasmuth_spec.rb +78 -0
  140. data/spec/acceptance/xignite_spec.rb +190 -0
  141. data/spec/acceptance/xsw_attack_vectors_spec.rb +415 -0
  142. data/spec/acceptance/yahoo_spec.rb +177 -0
  143. data/spec/conformance/soap_1_1_spec.rb +289 -0
  144. data/spec/conformance/soap_1_2_spec.rb +454 -0
  145. data/spec/conformance/wsdl_1_1_spec.rb +263 -0
  146. data/spec/conformance/xml_schema_spec.rb +640 -0
  147. data/spec/fixtures/parser/abstract_types.wsdl +86 -0
  148. data/spec/fixtures/parser/attribute_groups.wsdl +65 -0
  149. data/spec/fixtures/parser/attribute_types.wsdl +73 -0
  150. data/spec/fixtures/parser/operation_overloading.wsdl +64 -0
  151. data/spec/fixtures/parser/recursive_types.wsdl +65 -0
  152. data/spec/fixtures/parser/xs_all.wsdl +60 -0
  153. data/spec/fixtures/parser/xs_choice.wsdl +67 -0
  154. data/spec/fixtures/parser/xs_group.wsdl +67 -0
  155. data/spec/fixtures/parser/xs_list.wsdl +66 -0
  156. data/spec/fixtures/parser/xs_union.wsdl +62 -0
  157. data/spec/fixtures/wsdl/bookt/manifest.yml +22 -0
  158. data/spec/fixtures/wsdl/bydexchange/manifest.yml +14 -0
  159. data/spec/fixtures/wsdl/rio2/manifest.yml +9 -0
  160. data/spec/fixtures/wsdl/split_namespace/service.wsdl +46 -0
  161. data/spec/fixtures/wsdl/split_namespace/types_a.xsd +14 -0
  162. data/spec/fixtures/wsdl/split_namespace/types_b.xsd +15 -0
  163. data/spec/fixtures/wsdl/team_software/manifest.yml +8 -0
  164. data/spec/fixtures/wsdl/travelport/manifest.yml +3 -0
  165. data/spec/fixtures/wsdl/wasmuth/manifest.yml +6 -0
  166. data/spec/integration/authentication_spec.rb +67 -40
  167. data/spec/integration/betfair_spec.rb +135 -176
  168. data/spec/integration/blz_service_spec.rb +71 -30
  169. data/spec/integration/crowd_spec.rb +100 -55
  170. data/spec/integration/equifax_spec.rb +138 -273
  171. data/spec/integration/interhome_spec.rb +152 -271
  172. data/spec/integration/marketo_spec.rb +86 -66
  173. data/spec/integration/ratp_spec.rb +69 -349
  174. data/spec/integration/rpc_literal_spec.rb +49 -87
  175. data/spec/integration/telefonkatalogen_spec.rb +61 -54
  176. data/spec/integration/temperature_spec.rb +46 -59
  177. data/spec/integration/xignite_spec.rb +75 -112
  178. data/spec/integration/yahoo_spec.rb +73 -114
  179. data/spec/performance/element_builder_spec.rb +39 -0
  180. data/spec/performance/parse_pipeline_spec.rb +36 -0
  181. data/spec/performance/qname_spec.rb +60 -0
  182. data/spec/performance/request_serializer_spec.rb +46 -0
  183. data/spec/performance/response_parser_spec.rb +61 -0
  184. data/spec/performance/schema_node_spec.rb +54 -0
  185. data/spec/performance/threat_scanner_spec.rb +23 -0
  186. data/spec/property/response_roundtrip_spec.rb +163 -0
  187. data/spec/property/wsdl_parser_spec.rb +116 -0
  188. data/spec/property/xml_parser_spec.rb +304 -0
  189. data/spec/spec_helper.rb +28 -11
  190. data/spec/support/allocation_helpers.rb +25 -0
  191. data/spec/support/http_mock.rb +2 -2
  192. data/spec/support/parsed_fixture.rb +37 -0
  193. data/spec/support/performance.rb +28 -0
  194. data/spec/support/roundtrip_candidates.rb +139 -0
  195. data/spec/support/schema_element_helper.rb +31 -7
  196. data/spec/support/test_service/input_extractor.rb +37 -0
  197. data/spec/support/test_service/mock_server.rb +276 -0
  198. data/spec/support/test_service/operation_definition.rb +121 -0
  199. data/spec/support/test_service/response_matcher.rb +35 -0
  200. data/spec/support/test_service/service_definition.rb +136 -0
  201. data/spec/support/test_service/spec_helpers.rb +43 -0
  202. data/spec/support/test_service.rb +76 -0
  203. data/spec/support/timeout.rb +41 -0
  204. data/spec/support/verifier_helpers.rb +200 -0
  205. data/spec/wsdl/client_spec.rb +543 -294
  206. data/spec/wsdl/config_spec.rb +16 -32
  207. data/spec/wsdl/contract/message_contract_spec.rb +68 -0
  208. data/spec/wsdl/contract/part_contract_spec.rb +131 -4
  209. data/spec/wsdl/contract/template_spec.rb +0 -2
  210. data/spec/wsdl/definition/builder_spec.rb +364 -0
  211. data/spec/wsdl/definition/element_hash_spec.rb +314 -0
  212. data/spec/wsdl/definition_spec.rb +395 -0
  213. data/spec/wsdl/errors_spec.rb +386 -0
  214. data/spec/wsdl/formatting_spec.rb +1 -3
  215. data/spec/wsdl/http/client_integration_spec.rb +196 -0
  216. data/spec/wsdl/http/client_spec.rb +740 -0
  217. data/spec/wsdl/http/config_spec.rb +30 -0
  218. data/spec/wsdl/http/redirect_guard_spec.rb +604 -0
  219. data/spec/wsdl/http/response_spec.rb +47 -0
  220. data/spec/wsdl/limits_spec.rb +27 -35
  221. data/spec/wsdl/log_spec.rb +1 -3
  222. data/spec/wsdl/nillable_spec.rb +68 -52
  223. data/spec/wsdl/operation/document_literal_spec.rb +137 -62
  224. data/spec/wsdl/operation/example_body_spec.rb +5 -7
  225. data/spec/wsdl/operation/rpc_literal_spec.rb +107 -51
  226. data/spec/wsdl/operation_contract_spec.rb +5 -4
  227. data/spec/wsdl/operation_spec.rb +327 -213
  228. data/spec/wsdl/parse_load_spec.rb +152 -0
  229. data/spec/wsdl/parse_options_spec.rb +68 -0
  230. data/spec/wsdl/parser/binding_operation_spec.rb +226 -29
  231. data/spec/wsdl/parser/document_collection_spec.rb +1 -3
  232. data/spec/wsdl/parser/document_spec.rb +14 -17
  233. data/spec/wsdl/parser/input_output_spec.rb +95 -238
  234. data/spec/wsdl/parser/message_info_spec.rb +146 -0
  235. data/spec/wsdl/parser/message_reference_spec.rb +120 -0
  236. data/spec/wsdl/parser/operation_info_spec.rb +128 -0
  237. data/spec/wsdl/parser/operation_map_spec.rb +169 -0
  238. data/spec/wsdl/parser/port_type_operation_spec.rb +188 -0
  239. data/spec/wsdl/parser/port_type_spec.rb +137 -0
  240. data/spec/wsdl/parser_spec.rb +243 -0
  241. data/spec/wsdl/qname_spec.rb +229 -15
  242. data/spec/wsdl/request/dsl_spec.rb +11 -13
  243. data/spec/wsdl/request/envelope_spec.rb +0 -2
  244. data/spec/wsdl/request/rpc_wrapper_spec.rb +2 -4
  245. data/spec/wsdl/request/security_conflict_detector_spec.rb +1 -3
  246. data/spec/wsdl/request/validator_spec.rb +19 -21
  247. data/spec/wsdl/resolver/loader_spec.rb +552 -0
  248. data/spec/wsdl/resolver/source_spec.rb +150 -0
  249. data/spec/wsdl/response/builder_spec.rb +308 -0
  250. data/spec/wsdl/response/parser_spec.rb +174 -5
  251. data/spec/wsdl/response/security_context_spec.rb +0 -3
  252. data/spec/wsdl/response/type_coercer_spec.rb +167 -2
  253. data/spec/wsdl/response_spec.rb +193 -82
  254. data/spec/wsdl/schema/collection_spec.rb +295 -139
  255. data/spec/wsdl/schema/node_spec.rb +293 -38
  256. data/spec/wsdl/security/algorithm_mapper_spec.rb +1 -3
  257. data/spec/wsdl/security/canonicalizer_spec.rb +1 -3
  258. data/spec/wsdl/security/config_spec.rb +16 -15
  259. data/spec/wsdl/security/constants_spec.rb +1 -3
  260. data/spec/wsdl/security/credential_normalizer_spec.rb +48 -3
  261. data/spec/wsdl/security/digester_spec.rb +1 -3
  262. data/spec/wsdl/security/id_generator_spec.rb +1 -3
  263. data/spec/wsdl/security/policy_spec.rb +0 -2
  264. data/spec/wsdl/security/reference_spec.rb +1 -3
  265. data/spec/wsdl/security/request_context_spec.rb +5 -7
  266. data/spec/wsdl/security/request_materializer_spec.rb +189 -0
  267. data/spec/wsdl/security/request_policy_spec.rb +0 -2
  268. data/spec/wsdl/security/response_policy_spec.rb +0 -2
  269. data/spec/wsdl/security/response_verification_spec.rb +1 -3
  270. data/spec/wsdl/security/secure_compare_spec.rb +0 -1
  271. data/spec/wsdl/security/security_header_spec.rb +21 -21
  272. data/spec/wsdl/security/signature_options_spec.rb +1 -3
  273. data/spec/wsdl/security/signature_spec.rb +126 -46
  274. data/spec/wsdl/security/timestamp_spec.rb +1 -3
  275. data/spec/wsdl/security/username_token_spec.rb +2 -4
  276. data/spec/wsdl/security/verifier/base_spec.rb +0 -2
  277. data/spec/wsdl/security/verifier/certificate_resolver_spec.rb +3 -6
  278. data/spec/wsdl/security/verifier/certificate_validator_spec.rb +7 -9
  279. data/spec/wsdl/security/verifier/element_position_validator_spec.rb +1 -4
  280. data/spec/wsdl/security/verifier/reference_validator_spec.rb +1 -4
  281. data/spec/wsdl/security/verifier/signature_validator_spec.rb +1 -4
  282. data/spec/wsdl/security/verifier/structure_validator_spec.rb +1 -4
  283. data/spec/wsdl/security/verifier/timestamp_validator_spec.rb +75 -2
  284. data/spec/wsdl/security/verifier_spec.rb +131 -16
  285. data/spec/wsdl/security/xml_builder_helper_spec.rb +7 -9
  286. data/spec/wsdl/strictness_spec.rb +148 -0
  287. data/spec/wsdl/wsdl_spec.rb +73 -35
  288. data/spec/wsdl/xml/attribute_spec.rb +101 -0
  289. data/spec/wsdl/xml/element_builder_spec.rb +79 -56
  290. data/spec/wsdl/xml/element_spec.rb +315 -2
  291. data/spec/wsdl/xml/parser_spec.rb +1 -2
  292. data/spec/wsdl/xml/threat_scanner_spec.rb +151 -0
  293. data/vendor/bundle/ruby/4.0.0/bin/mutant +28 -0
  294. data/vendor/bundle/ruby/4.0.0/bin/mutant-ruby +28 -0
  295. data/vendor/bundle/ruby/4.0.0/bin/stackprof +28 -0
  296. data/vendor/bundle/ruby/4.0.0/bin/stackprof-flamegraph.pl +28 -0
  297. data/vendor/bundle/ruby/4.0.0/bin/stackprof-gprof2dot.py +28 -0
  298. data/vendor/bundle/ruby/4.0.0/bin/unparser +28 -0
  299. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/bigdecimal-4.1.0/bigdecimal.so +0 -0
  300. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/bigdecimal-4.1.0/gem_make.out +38 -0
  301. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/bigdecimal-4.1.0/mkmf.log +458 -0
  302. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/date-3.5.1/gem_make.out +6 -6
  303. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/erb-6.0.2/gem_make.out +5 -5
  304. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/io-console-0.8.2/gem_make.out +5 -5
  305. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.3/gem_make.out +25 -0
  306. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.3/json/ext/generator.so +0 -0
  307. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.3/json/ext/parser.so +0 -0
  308. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/gem_make.out +6 -6
  309. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/psych-5.3.1/gem_make.out +6 -6
  310. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/racc-1.8.1/gem_make.out +5 -5
  311. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/redcarpet-3.6.1/gem_make.out +10 -10
  312. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/stackprof-0.2.28/gem.build_complete +0 -0
  313. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/stackprof-0.2.28/gem_make.out +22 -0
  314. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/stackprof-0.2.28/mkmf.log +181 -0
  315. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/stackprof-0.2.28/stackprof/stackprof.so +0 -0
  316. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/stringio-3.2.0/gem_make.out +5 -5
  317. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/syslog-0.4.0/gem_make.out +5 -5
  318. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/bigdecimal.gemspec +62 -0
  319. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/ext/bigdecimal/Makefile +274 -0
  320. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/ext/bigdecimal/bigdecimal.c +6264 -0
  321. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/ext/bigdecimal/bigdecimal.h +293 -0
  322. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/ext/bigdecimal/div.h +192 -0
  323. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/ext/bigdecimal/extconf.rb +59 -0
  324. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/ext/bigdecimal/missing.h +106 -0
  325. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/ext/bigdecimal/ntt.h +191 -0
  326. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/lib/bigdecimal/math.rb +927 -0
  327. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/lib/bigdecimal/util.rb +186 -0
  328. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/lib/bigdecimal.rb +387 -0
  329. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/lib/bigdecimal.so +0 -0
  330. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/sample/linear.rb +110 -0
  331. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/sample/nlsolve.rb +57 -0
  332. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/sample/pi.rb +16 -0
  333. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/sig/big_decimal.rbs +1502 -0
  334. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/sig/big_decimal_util.rbs +158 -0
  335. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.1.0/sig/big_math.rbs +423 -0
  336. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.3/CHANGES.md +750 -0
  337. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.3/ext/json/ext/fbuffer/fbuffer.h +251 -0
  338. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.3/ext/json/ext/parser/parser.c +1697 -0
  339. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.3/lib/json/ext/generator.so +0 -0
  340. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.3/lib/json/ext/parser.so +0 -0
  341. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.3/lib/json/version.rb +5 -0
  342. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/LICENSE +271 -0
  343. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/VERSION +1 -0
  344. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/bin/mutant +4 -0
  345. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/bin/mutant-ruby +64 -0
  346. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/find_metaclass_containing.rb +48 -0
  347. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/meta/const.rb +26 -0
  348. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/meta/optarg.rb +28 -0
  349. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/meta/resbody.rb +19 -0
  350. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/meta/send.rb +71 -0
  351. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/meta/symbol.rb +19 -0
  352. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/meta.rb +9 -0
  353. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/named_children.rb +90 -0
  354. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/node_predicates.rb +21 -0
  355. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/nodes.rb +28 -0
  356. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/pattern/lexer.rb +170 -0
  357. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/pattern/parser.rb +194 -0
  358. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/pattern/source.rb +39 -0
  359. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/pattern/token.rb +15 -0
  360. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/pattern.rb +125 -0
  361. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/sexp.rb +30 -0
  362. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/structure.rb +915 -0
  363. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast/types.rb +65 -0
  364. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/ast.rb +42 -0
  365. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/bootstrap.rb +197 -0
  366. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command/environment/irb.rb +21 -0
  367. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command/environment/run.rb +60 -0
  368. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command/environment/show.rb +25 -0
  369. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command/environment/subject.rb +35 -0
  370. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command/environment/test.rb +79 -0
  371. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command/environment.rb +158 -0
  372. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command/root.rb +17 -0
  373. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command/util.rb +128 -0
  374. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli/command.rb +229 -0
  375. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/cli.rb +13 -0
  376. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/config/coverage_criteria.rb +70 -0
  377. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/config.rb +285 -0
  378. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/context.rb +51 -0
  379. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/env.rb +169 -0
  380. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/expression/descendants.rb +20 -0
  381. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/expression/method.rb +91 -0
  382. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/expression/methods.rb +70 -0
  383. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/expression/namespace.rb +96 -0
  384. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/expression/parser.rb +38 -0
  385. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/expression/source.rb +46 -0
  386. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/expression.rb +60 -0
  387. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/hooks.rb +77 -0
  388. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/integration/null.rb +28 -0
  389. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/integration.rb +141 -0
  390. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/isolation/exception.rb +22 -0
  391. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/isolation/fork.rb +250 -0
  392. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/isolation/none.rb +37 -0
  393. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/isolation.rb +32 -0
  394. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/loader.rb +47 -0
  395. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/chain.rb +22 -0
  396. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/config.rb +115 -0
  397. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/descendants.rb +26 -0
  398. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/filter.rb +20 -0
  399. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/method/instance.rb +84 -0
  400. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/method/metaclass.rb +74 -0
  401. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/method/singleton.rb +58 -0
  402. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/method.rb +179 -0
  403. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/methods.rb +115 -0
  404. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/namespace.rb +34 -0
  405. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/null.rb +20 -0
  406. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/scope.rb +39 -0
  407. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher/static.rb +17 -0
  408. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/matcher.rb +55 -0
  409. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/meta/example/dsl.rb +108 -0
  410. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/meta/example/verification.rb +142 -0
  411. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/meta/example.rb +80 -0
  412. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/meta.rb +41 -0
  413. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutation/config.rb +59 -0
  414. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutation/operators.rb +195 -0
  415. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutation/runner/sink.rb +84 -0
  416. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutation/runner.rb +63 -0
  417. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutation.rb +151 -0
  418. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/and_asgn.rb +25 -0
  419. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/argument.rb +44 -0
  420. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/arguments.rb +72 -0
  421. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/begin.rb +58 -0
  422. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/binary.rb +48 -0
  423. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/block.rb +88 -0
  424. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/block_pass.rb +33 -0
  425. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/break.rb +23 -0
  426. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/case.rb +43 -0
  427. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/case_match.rb +46 -0
  428. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/class.rb +20 -0
  429. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/conditional_loop.rb +56 -0
  430. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/const.rb +25 -0
  431. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/const_pattern.rb +18 -0
  432. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/define.rb +87 -0
  433. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/defined.rb +35 -0
  434. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/dynamic_literal.rb +24 -0
  435. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/ensure.rb +24 -0
  436. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/generic.rb +20 -0
  437. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/guard.rb +23 -0
  438. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/if.rb +55 -0
  439. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/in_pattern.rb +25 -0
  440. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/index.rb +102 -0
  441. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/kwargs.rb +44 -0
  442. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/kwbegin.rb +22 -0
  443. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/array.rb +37 -0
  444. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/boolean.rb +27 -0
  445. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/complex.rb +31 -0
  446. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/float.rb +38 -0
  447. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/hash.rb +50 -0
  448. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/integer.rb +29 -0
  449. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/nil.rb +20 -0
  450. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/range.rb +40 -0
  451. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/rational.rb +31 -0
  452. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/regex.rb +46 -0
  453. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/string.rb +23 -0
  454. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal/symbol.rb +25 -0
  455. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/literal.rb +18 -0
  456. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/masgn.rb +22 -0
  457. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/match_alt.rb +26 -0
  458. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/match_current_line.rb +23 -0
  459. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/match_pattern_p.rb +25 -0
  460. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/mlhs.rb +18 -0
  461. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/module.rb +19 -0
  462. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/named_value/access.rb +23 -0
  463. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/named_value/constant_assignment.rb +38 -0
  464. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/named_value/variable_assignment.rb +35 -0
  465. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/next.rb +24 -0
  466. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/noop.rb +21 -0
  467. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/nthref.rb +25 -0
  468. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/numblock.rb +21 -0
  469. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/op_asgn.rb +58 -0
  470. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/or_asgn.rb +25 -0
  471. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/procarg_zero.rb +18 -0
  472. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/regopt.rb +25 -0
  473. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/resbody.rb +21 -0
  474. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/rescue.rb +85 -0
  475. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/return.rb +25 -0
  476. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/sclass.rb +20 -0
  477. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/send/attribute_assignment.rb +35 -0
  478. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/send/binary.rb +85 -0
  479. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/send/conditional.rb +22 -0
  480. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/send.rb +274 -0
  481. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/splat.rb +24 -0
  482. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/super.rb +27 -0
  483. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/when.rb +46 -0
  484. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/yield.rb +23 -0
  485. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node/zsuper.rb +38 -0
  486. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/node.rb +141 -0
  487. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/regexp.rb +211 -0
  488. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/util/array.rb +27 -0
  489. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/util/symbol.rb +21 -0
  490. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator/util.rb +9 -0
  491. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/mutator.rb +46 -0
  492. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/parallel/connection.rb +167 -0
  493. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/parallel/driver.rb +68 -0
  494. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/parallel/pipe.rb +39 -0
  495. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/parallel/source.rb +65 -0
  496. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/parallel/worker.rb +159 -0
  497. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/parallel.rb +127 -0
  498. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/parser.rb +36 -0
  499. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/procto.rb +23 -0
  500. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/range.rb +15 -0
  501. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/registry.rb +42 -0
  502. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/format.rb +190 -0
  503. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/config.rb +33 -0
  504. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/coverage_result.rb +19 -0
  505. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/env.rb +42 -0
  506. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/env_progress.rb +61 -0
  507. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/env_result.rb +31 -0
  508. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/isolation_result.rb +95 -0
  509. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/mutation.rb +58 -0
  510. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/mutation_result.rb +84 -0
  511. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/status_progressive.rb +75 -0
  512. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/subject_result.rb +27 -0
  513. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer/test.rb +186 -0
  514. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/printer.rb +88 -0
  515. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli/progress_bar.rb +71 -0
  516. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/cli.rb +116 -0
  517. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/null.rb +18 -0
  518. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter/sequence.rb +25 -0
  519. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/reporter.rb +63 -0
  520. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/repository/diff/ranges.rb +41 -0
  521. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/repository/diff.rb +113 -0
  522. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/repository.rb +6 -0
  523. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/require_highjack.rb +28 -0
  524. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/result.rb +306 -0
  525. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/scope.rb +44 -0
  526. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/segment/recorder.rb +124 -0
  527. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/segment.rb +23 -0
  528. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/selector/expression.rb +29 -0
  529. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/selector/null.rb +19 -0
  530. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/selector.rb +16 -0
  531. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/subject/config.rb +26 -0
  532. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/subject/method/instance.rb +44 -0
  533. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/subject/method/metaclass.rb +27 -0
  534. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/subject/method/singleton.rb +22 -0
  535. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/subject/method.rb +38 -0
  536. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/subject.rb +101 -0
  537. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/test/runner/sink.rb +55 -0
  538. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/test/runner.rb +62 -0
  539. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/test.rb +17 -0
  540. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/timer.rb +73 -0
  541. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/transform.rb +438 -0
  542. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/usage.rb +97 -0
  543. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/util.rb +33 -0
  544. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/variable.rb +319 -0
  545. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/version.rb +16 -0
  546. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/world.rb +96 -0
  547. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant/zombifier.rb +91 -0
  548. data/vendor/bundle/ruby/4.0.0/gems/mutant-0.15.1/lib/mutant.rb +388 -0
  549. data/vendor/bundle/ruby/4.0.0/gems/mutant-rspec-0.15.1/LICENSE +271 -0
  550. data/vendor/bundle/ruby/4.0.0/gems/mutant-rspec-0.15.1/lib/mutant/integration/rspec.rb +170 -0
  551. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/LICENSE-DEPENDENCIES.md +2411 -0
  552. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/jruby/nokogiri_jars.rb +48 -0
  553. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/version/constant.rb +6 -0
  554. data/vendor/bundle/ruby/4.0.0/gems/parser-3.3.11.1/lib/parser/current.rb +146 -0
  555. data/vendor/bundle/ruby/4.0.0/gems/parser-3.3.11.1/lib/parser/version.rb +5 -0
  556. data/vendor/bundle/ruby/4.0.0/gems/rspec-github-2.4.0/lib/rspec/github/formatter.rb +31 -0
  557. data/vendor/bundle/ruby/4.0.0/gems/rspec-github-2.4.0/lib/rspec/github/notification_decorator.rb +54 -0
  558. data/vendor/bundle/ruby/4.0.0/gems/rspec-github-2.4.0/lib/rspec/github/version.rb +7 -0
  559. data/vendor/bundle/ruby/4.0.0/gems/rspec-github-2.4.0/lib/rspec/github.rb +9 -0
  560. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/config/default.yml +6218 -0
  561. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cache_config.rb +58 -0
  562. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cli/command/auto_generate_config.rb +167 -0
  563. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cli/command/show_cops.rb +96 -0
  564. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cli/command/show_docs_url.rb +48 -0
  565. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/config.rb +400 -0
  566. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/config_finder.rb +78 -0
  567. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/config_store.rb +77 -0
  568. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/config_validator.rb +291 -0
  569. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/argument_alignment.rb +151 -0
  570. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/dot_position.rb +139 -0
  571. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +224 -0
  572. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/empty_line_between_defs.rb +311 -0
  573. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +140 -0
  574. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/end_alignment.rb +215 -0
  575. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +428 -0
  576. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/space_around_keyword.rb +276 -0
  577. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/layout/space_in_lambda_literal.rb +79 -0
  578. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/constant_reassignment.rb +198 -0
  579. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/duplicate_methods.rb +440 -0
  580. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/empty_conditional_body.rb +153 -0
  581. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/empty_in_pattern.rb +71 -0
  582. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/empty_when.rb +68 -0
  583. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/number_conversion.rb +200 -0
  584. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/redundant_safe_navigation.rb +276 -0
  585. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/safe_navigation_chain.rb +133 -0
  586. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +56 -0
  587. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/useless_constant_scoping.rb +71 -0
  588. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/useless_default_value_argument.rb +92 -0
  589. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/lint/utils/nil_receiver_checker.rb +122 -0
  590. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/mixin/check_single_line_suitability.rb +47 -0
  591. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/registry.rb +325 -0
  592. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/and_or.rb +159 -0
  593. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/arguments_forwarding.rb +582 -0
  594. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/ascii_comments.rb +60 -0
  595. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/block_delimiters.rb +496 -0
  596. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/collection_compact.rb +163 -0
  597. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/concat_array_literals.rb +97 -0
  598. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/conditional_assignment.rb +666 -0
  599. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/empty_class_definition.rb +119 -0
  600. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/file_open.rb +84 -0
  601. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/global_vars.rb +81 -0
  602. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/hash_lookup_method.rb +101 -0
  603. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/if_unless_modifier.rb +362 -0
  604. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/if_with_semicolon.rb +134 -0
  605. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/ip_addresses.rb +74 -0
  606. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/magic_comment_format.rb +307 -0
  607. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +61 -0
  608. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/mutable_constant.rb +246 -0
  609. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/non_nil_check.rb +152 -0
  610. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/numeric_literals.rb +130 -0
  611. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/raise_args.rb +160 -0
  612. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/redundant_each.rb +119 -0
  613. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/redundant_parentheses.rb +360 -0
  614. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/redundant_percent_q.rb +110 -0
  615. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +85 -0
  616. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/safe_navigation.rb +427 -0
  617. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/single_line_block_params.rb +119 -0
  618. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/symbol_proc.rb +283 -0
  619. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/trailing_method_end_statement.rb +63 -0
  620. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/cop/style/yoda_expression.rb +92 -0
  621. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/formatter/disabled_config_formatter.rb +297 -0
  622. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/formatter/junit_formatter.rb +143 -0
  623. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/formatter/worst_offenders_formatter.rb +64 -0
  624. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/lsp/routes.rb +263 -0
  625. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/mcp/server.rb +198 -0
  626. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/path_util.rb +134 -0
  627. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/plugin/loader.rb +100 -0
  628. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/result_cache.rb +259 -0
  629. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/rspec/shared_contexts.rb +284 -0
  630. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/runner.rb +534 -0
  631. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/server/core.rb +118 -0
  632. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/target_finder.rb +221 -0
  633. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.0/lib/rubocop/version.rb +160 -0
  634. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/binding.rb +84 -0
  635. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb +146 -0
  636. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb +431 -0
  637. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex.rb +184 -0
  638. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/parser.racc.rb +472 -0
  639. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern.rb +127 -0
  640. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/lib/rubocop/ast/traversal.rb +193 -0
  641. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/lib/rubocop/ast/version.rb +9 -0
  642. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/sorbet-runtime.rb +119 -0
  643. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/_types.rb +382 -0
  644. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/abstract_utils.rb +50 -0
  645. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/boolean.rb +8 -0
  646. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/compatibility_patches.rb +95 -0
  647. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/configuration.rb +575 -0
  648. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/enum.rb +406 -0
  649. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/generic.rb +24 -0
  650. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/helpers.rb +65 -0
  651. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/abstract/data.rb +36 -0
  652. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/abstract/declare.rb +53 -0
  653. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/abstract/hooks.rb +42 -0
  654. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/abstract/validate.rb +128 -0
  655. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/caller_utils.rb +27 -0
  656. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/casts.rb +44 -0
  657. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/class_utils.rb +134 -0
  658. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/decl_state.rb +30 -0
  659. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/final.rb +50 -0
  660. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/methods/_methods.rb +612 -0
  661. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/methods/call_validation.rb +335 -0
  662. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/methods/call_validation_2_7.rb +1729 -0
  663. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/methods/decl_builder.rb +255 -0
  664. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/methods/modes.rb +28 -0
  665. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/methods/signature.rb +258 -0
  666. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/methods/signature_validation.rb +332 -0
  667. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/mixins/mixins.rb +27 -0
  668. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/retry.rb +10 -0
  669. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/runtime_levels.rb +78 -0
  670. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/sealed.rb +91 -0
  671. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/types/not_typed.rb +29 -0
  672. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/types/simple_pair_union.rb +55 -0
  673. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/types/string_holder.rb +30 -0
  674. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/types/type_alias.rb +35 -0
  675. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/private/types/void.rb +44 -0
  676. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/_props.rb +166 -0
  677. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/constructor.rb +40 -0
  678. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/custom_type.rb +108 -0
  679. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/decorator.rb +742 -0
  680. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/errors.rb +8 -0
  681. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/generated_code_validation.rb +277 -0
  682. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/has_lazily_specialized_methods.rb +144 -0
  683. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/optional.rb +89 -0
  684. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/plugin.rb +37 -0
  685. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/pretty_printable.rb +69 -0
  686. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/private/apply_default.rb +170 -0
  687. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/private/deserializer_generator.rb +167 -0
  688. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/private/parser.rb +32 -0
  689. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/private/serde_transform.rb +186 -0
  690. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/private/serializer_generator.rb +80 -0
  691. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/private/setter_factory.rb +257 -0
  692. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/serializable.rb +398 -0
  693. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/type_validation.rb +114 -0
  694. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/utils.rb +59 -0
  695. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/props/weak_constructor.rb +67 -0
  696. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/sig.rb +30 -0
  697. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/struct.rb +51 -0
  698. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/anything.rb +35 -0
  699. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/attached_class.rb +41 -0
  700. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/base.rb +192 -0
  701. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/class_of.rb +55 -0
  702. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/enum.rb +50 -0
  703. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/fixed_array.rb +106 -0
  704. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/fixed_hash.rb +103 -0
  705. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/intersection.rb +49 -0
  706. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/noreturn.rb +32 -0
  707. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/proc.rb +61 -0
  708. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/self_type.rb +39 -0
  709. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/simple.rb +126 -0
  710. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/t_enum.rb +44 -0
  711. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/type_member.rb +7 -0
  712. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/type_parameter.rb +46 -0
  713. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/type_template.rb +7 -0
  714. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/type_variable.rb +38 -0
  715. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_array.rb +73 -0
  716. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_class.rb +102 -0
  717. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_enumerable.rb +183 -0
  718. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_enumerator.rb +39 -0
  719. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_enumerator_chain.rb +39 -0
  720. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_enumerator_lazy.rb +39 -0
  721. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_hash.rb +58 -0
  722. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_module.rb +102 -0
  723. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_range.rb +29 -0
  724. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/typed_set.rb +48 -0
  725. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/union.rb +134 -0
  726. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/types/untyped.rb +33 -0
  727. data/vendor/bundle/ruby/4.0.0/gems/sorbet-runtime-0.6.13067/lib/types/utils.rb +219 -0
  728. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/CHANGELOG.md +18 -0
  729. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/Gemfile +2 -0
  730. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/LICENSE +21 -0
  731. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/README.md +345 -0
  732. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/Rakefile +27 -0
  733. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/bin/stackprof +129 -0
  734. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/bin/stackprof-flamegraph.pl +2 -0
  735. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/bin/stackprof-gprof2dot.py +2 -0
  736. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/ext/stackprof/Makefile +273 -0
  737. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/ext/stackprof/extconf.rb +16 -0
  738. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/ext/stackprof/stackprof.c +1028 -0
  739. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/lib/stackprof/autorun.rb +19 -0
  740. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/lib/stackprof/flamegraph/flamegraph.js +983 -0
  741. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/lib/stackprof/flamegraph/viewer.html +91 -0
  742. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/lib/stackprof/middleware.rb +72 -0
  743. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/lib/stackprof/report.rb +703 -0
  744. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/lib/stackprof/stackprof.so +0 -0
  745. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/lib/stackprof/truffleruby.rb +37 -0
  746. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/lib/stackprof.rb +25 -0
  747. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/sample.rb +43 -0
  748. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/stackprof.gemspec +33 -0
  749. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/test/fixtures/profile.dump +1 -0
  750. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/test/fixtures/profile.json +1 -0
  751. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/test/test_middleware.rb +86 -0
  752. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/test/test_report.rb +58 -0
  753. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/test/test_stackprof.rb +328 -0
  754. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/test/test_truffleruby.rb +18 -0
  755. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/vendor/FlameGraph/README +134 -0
  756. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/vendor/FlameGraph/flamegraph.pl +1160 -0
  757. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/vendor/gprof2dot/gprof2dot.py +3266 -0
  758. data/vendor/bundle/ruby/4.0.0/gems/stackprof-0.2.28/vendor/gprof2dot/hotshotmain.py +70 -0
  759. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/README.md +202 -0
  760. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/bin/unparser +10 -0
  761. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/abstract_type.rb +121 -0
  762. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/adamantium/method_builder.rb +111 -0
  763. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/adamantium.rb +152 -0
  764. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/anima/attribute.rb +59 -0
  765. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/anima/error.rb +23 -0
  766. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/anima.rb +195 -0
  767. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/ast/local_variable_scope.rb +177 -0
  768. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/ast.rb +197 -0
  769. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/buffer.rb +171 -0
  770. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/cli.rb +203 -0
  771. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/color.rb +44 -0
  772. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/comments.rb +130 -0
  773. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/concord.rb +114 -0
  774. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/constants.rb +71 -0
  775. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/diff.rb +98 -0
  776. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/dsl.rb +41 -0
  777. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/either.rb +153 -0
  778. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/alias.rb +23 -0
  779. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/args.rb +49 -0
  780. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/argument.rb +138 -0
  781. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/array.rb +23 -0
  782. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/array_pattern.rb +21 -0
  783. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/assignment.rb +85 -0
  784. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/begin.rb +20 -0
  785. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/binary.rb +21 -0
  786. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/block.rb +98 -0
  787. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/case.rb +63 -0
  788. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/case_guard.rb +27 -0
  789. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/case_match.rb +40 -0
  790. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/cbase.rb +23 -0
  791. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/class.rb +49 -0
  792. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/const_pattern.rb +24 -0
  793. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/def.rb +78 -0
  794. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/defined.rb +20 -0
  795. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/dstr.rb +23 -0
  796. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/dsym.rb +41 -0
  797. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/ensure.rb +16 -0
  798. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/find_pattern.rb +18 -0
  799. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/flipflop.rb +39 -0
  800. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/float.rb +29 -0
  801. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/flow_modifier.rb +36 -0
  802. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/for.rb +29 -0
  803. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/hash.rb +28 -0
  804. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/hash_pattern.rb +67 -0
  805. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/hookexe.rb +28 -0
  806. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/if.rb +80 -0
  807. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/in_match.rb +21 -0
  808. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/in_pattern.rb +44 -0
  809. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/index.rb +65 -0
  810. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/kwargs.rb +13 -0
  811. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/kwbegin.rb +31 -0
  812. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/lambda.rb +17 -0
  813. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/masgn.rb +20 -0
  814. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/match.rb +40 -0
  815. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/match_alt.rb +23 -0
  816. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/match_as.rb +21 -0
  817. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/match_pattern.rb +26 -0
  818. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/match_pattern_p.rb +25 -0
  819. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/match_rest.rb +33 -0
  820. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/match_var.rb +19 -0
  821. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/mlhs.rb +46 -0
  822. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/module.rb +24 -0
  823. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/op_assign.rb +47 -0
  824. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/pair.rb +59 -0
  825. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/pin.rb +19 -0
  826. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/primitive.rb +106 -0
  827. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/range.rb +56 -0
  828. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/regexp.rb +23 -0
  829. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/repetition.rb +75 -0
  830. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/rescue.rb +22 -0
  831. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/root.rb +20 -0
  832. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/send.rb +25 -0
  833. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/simple.rb +33 -0
  834. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/splat.rb +43 -0
  835. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/string.rb +31 -0
  836. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/super.rb +22 -0
  837. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/undef.rb +18 -0
  838. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/variable.rb +58 -0
  839. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/xstr.rb +79 -0
  840. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter/yield.rb +24 -0
  841. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/emitter.rb +95 -0
  842. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/equalizer.rb +98 -0
  843. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/finalize.rb +3 -0
  844. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/generation.rb +256 -0
  845. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/node_details/send.rb +66 -0
  846. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/node_details.rb +22 -0
  847. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/node_helpers.rb +89 -0
  848. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/util.rb +24 -0
  849. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/validation.rb +214 -0
  850. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/array.rb +51 -0
  851. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/binary.rb +103 -0
  852. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/dynamic_string.rb +203 -0
  853. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/regexp.rb +101 -0
  854. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/resbody.rb +74 -0
  855. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/rescue.rb +39 -0
  856. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/send/attribute_assignment.rb +40 -0
  857. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/send/binary.rb +27 -0
  858. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/send/conditional.rb +25 -0
  859. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/send/regular.rb +33 -0
  860. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/send/unary.rb +34 -0
  861. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer/send.rb +109 -0
  862. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser/writer.rb +45 -0
  863. data/vendor/bundle/ruby/4.0.0/gems/unparser-0.8.2/lib/unparser.rb +357 -0
  864. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/CHANGELOG.md +2148 -0
  865. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/README.md +1229 -0
  866. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/lib/webmock/http_lib_adapters/curb_adapter.rb +354 -0
  867. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/lib/webmock/http_lib_adapters/http_rb/response.rb +95 -0
  868. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/lib/webmock/http_lib_adapters/http_rb/streamer.rb +44 -0
  869. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/lib/webmock/http_lib_adapters/http_rb/webmock.rb +77 -0
  870. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/lib/webmock/version.rb +5 -0
  871. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/Gemfile +10 -0
  872. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/LICENSE.txt +22 -0
  873. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/README.md +63 -0
  874. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/Rakefile +10 -0
  875. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/accesslog.rb +157 -0
  876. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/cgi.rb +313 -0
  877. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/compat.rb +36 -0
  878. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/config.rb +158 -0
  879. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/cookie.rb +172 -0
  880. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/htmlutils.rb +30 -0
  881. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpauth/authenticator.rb +117 -0
  882. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpauth/basicauth.rb +116 -0
  883. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpauth/digestauth.rb +395 -0
  884. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpauth/htdigest.rb +132 -0
  885. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpauth/htgroup.rb +97 -0
  886. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpauth/htpasswd.rb +158 -0
  887. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpauth/userdb.rb +53 -0
  888. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpauth.rb +96 -0
  889. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpproxy.rb +354 -0
  890. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httprequest.rb +668 -0
  891. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpresponse.rb +588 -0
  892. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/https.rb +152 -0
  893. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpserver.rb +294 -0
  894. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpservlet/abstract.rb +152 -0
  895. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  896. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpservlet/cgihandler.rb +126 -0
  897. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpservlet/erbhandler.rb +88 -0
  898. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpservlet/filehandler.rb +552 -0
  899. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpservlet/prochandler.rb +48 -0
  900. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpservlet.rb +23 -0
  901. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpstatus.rb +194 -0
  902. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httputils.rb +543 -0
  903. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpversion.rb +76 -0
  904. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/log.rb +156 -0
  905. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/server.rb +380 -0
  906. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/ssl.rb +219 -0
  907. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/utils.rb +265 -0
  908. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/version.rb +18 -0
  909. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick.rb +232 -0
  910. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/accesslog.rbs +24 -0
  911. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/cgi.rbs +92 -0
  912. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/compat.rbs +18 -0
  913. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/config.rbs +17 -0
  914. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/cookie.rbs +37 -0
  915. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/htmlutils.rbs +5 -0
  916. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpauth/authenticator.rbs +55 -0
  917. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpauth/basicauth.rbs +29 -0
  918. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpauth/digestauth.rbs +85 -0
  919. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpauth/htdigest.rbs +31 -0
  920. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpauth/htgroup.rbs +21 -0
  921. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpauth/htpasswd.rbs +31 -0
  922. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpauth/userdb.rbs +13 -0
  923. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpauth.rbs +13 -0
  924. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs +61 -0
  925. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httprequest.rbs +167 -0
  926. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpresponse.rbs +117 -0
  927. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/https.rbs +49 -0
  928. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpserver.rbs +71 -0
  929. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpservlet/abstract.rbs +36 -0
  930. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpservlet/cgi_runner.rbs +3 -0
  931. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpservlet/cgihandler.rbs +23 -0
  932. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpservlet/erbhandler.rbs +17 -0
  933. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpservlet/filehandler.rbs +76 -0
  934. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpservlet/prochandler.rbs +21 -0
  935. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpservlet.rbs +4 -0
  936. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpstatus.rbs +255 -0
  937. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httputils.rbs +116 -0
  938. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpversion.rbs +17 -0
  939. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/log.rbs +93 -0
  940. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/manifest.yaml +8 -0
  941. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/server.rbs +57 -0
  942. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/ssl.rbs +19 -0
  943. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/utils.rbs +122 -0
  944. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/version.rbs +3 -0
  945. data/vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/webrick.gemspec +105 -0
  946. data/vendor/bundle/ruby/4.0.0/specifications/bigdecimal-4.1.0.gemspec +25 -0
  947. data/vendor/bundle/ruby/4.0.0/specifications/json-2.19.3.gemspec +0 -0
  948. data/vendor/bundle/ruby/4.0.0/specifications/mutant-0.15.1.gemspec +38 -0
  949. data/vendor/bundle/ruby/4.0.0/specifications/mutant-rspec-0.15.1.gemspec +29 -0
  950. data/vendor/bundle/ruby/4.0.0/specifications/nokogiri-1.19.2-x86_64-linux-gnu.gemspec +31 -0
  951. data/vendor/bundle/ruby/4.0.0/specifications/parser-3.3.11.1.gemspec +37 -0
  952. data/vendor/bundle/ruby/4.0.0/specifications/rspec-github-2.4.0.gemspec +29 -0
  953. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-1.86.0.gemspec +39 -0
  954. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-ast-1.49.1.gemspec +29 -0
  955. data/vendor/bundle/ruby/4.0.0/specifications/sorbet-runtime-0.6.13067.gemspec +34 -0
  956. data/vendor/bundle/ruby/4.0.0/specifications/stackprof-0.2.28.gemspec +31 -0
  957. data/vendor/bundle/ruby/4.0.0/specifications/unparser-0.8.2.gemspec +39 -0
  958. data/vendor/bundle/ruby/4.0.0/specifications/webmock-3.26.2.gemspec +44 -0
  959. data/vendor/bundle/ruby/4.0.0/specifications/webrick-1.9.2.gemspec +22 -0
  960. data/wsdl.gemspec +2 -2
  961. metadata +2142 -1666
  962. data/docs/reference/strict-schema-fixture-matrix.md +0 -67
  963. data/lib/wsdl/cache.rb +0 -172
  964. data/lib/wsdl/http_adapter/config.rb +0 -71
  965. data/lib/wsdl/http_adapter/redirect_guard.rb +0 -132
  966. data/lib/wsdl/http_adapter.rb +0 -318
  967. data/lib/wsdl/http_response.rb +0 -31
  968. data/lib/wsdl/parser/cached_result.rb +0 -154
  969. data/lib/wsdl/parser/importer.rb +0 -301
  970. data/lib/wsdl/parser/resolver.rb +0 -450
  971. data/lib/wsdl/parser/result.rb +0 -257
  972. data/lib/wsdl/source.rb +0 -169
  973. data/spec/integration/amazon_spec.rb +0 -214
  974. data/spec/integration/awse_spec.rb +0 -202
  975. data/spec/integration/bookt_spec.rb +0 -73
  976. data/spec/integration/bronto_spec.rb +0 -304
  977. data/spec/integration/bydexchange_spec.rb +0 -40
  978. data/spec/integration/daisycon_spec.rb +0 -34
  979. data/spec/integration/data_exchange_spec.rb +0 -27
  980. data/spec/integration/document_literal_spec.rb +0 -104
  981. data/spec/integration/economic_spec.rb +0 -65
  982. data/spec/integration/email_verification_spec.rb +0 -91
  983. data/spec/integration/geotrust_spec.rb +0 -54
  984. data/spec/integration/iws_spec.rb +0 -28
  985. data/spec/integration/jetairways_spec.rb +0 -146
  986. data/spec/integration/jira_spec.rb +0 -28
  987. data/spec/integration/juniper_spec.rb +0 -34
  988. data/spec/integration/namespaced_actions_spec.rb +0 -49
  989. data/spec/integration/oracle_spec.rb +0 -215
  990. data/spec/integration/rio2_spec.rb +0 -57
  991. data/spec/integration/security_round_trip_spec.rb +0 -168
  992. data/spec/integration/spyne_spec.rb +0 -62
  993. data/spec/integration/stockquote_spec.rb +0 -46
  994. data/spec/integration/strict_schema_fixture_matrix_spec.rb +0 -108
  995. data/spec/integration/taxcloud_spec.rb +0 -74
  996. data/spec/integration/team_software_spec.rb +0 -58
  997. data/spec/integration/travelport_spec.rb +0 -90
  998. data/spec/integration/wasmuth_spec.rb +0 -61
  999. data/spec/integration/xsw_attack_vectors_spec.rb +0 -418
  1000. data/spec/support/request_dsl_helper.rb +0 -144
  1001. data/spec/wsdl/cache_spec.rb +0 -490
  1002. data/spec/wsdl/http_adapter_integration_spec.rb +0 -198
  1003. data/spec/wsdl/http_adapter_spec.rb +0 -524
  1004. data/spec/wsdl/http_response_spec.rb +0 -49
  1005. data/spec/wsdl/parser/cached_result_spec.rb +0 -287
  1006. data/spec/wsdl/parser/resolver_spec.rb +0 -553
  1007. data/spec/wsdl/parser/result_spec.rb +0 -355
  1008. data/spec/wsdl/security/verifier/shared_context.rb +0 -194
  1009. data/spec/wsdl/source_spec.rb +0 -152
  1010. data/spec/wsdl/xml/parser_property_spec.rb +0 -305
  1011. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/bigdecimal-4.0.1/bigdecimal.so +0 -0
  1012. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/bigdecimal-4.0.1/gem_make.out +0 -38
  1013. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/bigdecimal-4.0.1/mkmf.log +0 -458
  1014. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.0/gem_make.out +0 -25
  1015. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.0/json/ext/generator.so +0 -0
  1016. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.0/json/ext/parser.so +0 -0
  1017. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/bigdecimal.gemspec +0 -57
  1018. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/ext/bigdecimal/Makefile +0 -274
  1019. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.c +0 -6206
  1020. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.h +0 -292
  1021. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/ext/bigdecimal/extconf.rb +0 -60
  1022. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.h +0 -104
  1023. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/lib/bigdecimal/math.rb +0 -948
  1024. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/lib/bigdecimal/util.rb +0 -186
  1025. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/lib/bigdecimal.rb +0 -360
  1026. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/lib/bigdecimal.so +0 -0
  1027. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/sample/linear.rb +0 -74
  1028. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/sample/nlsolve.rb +0 -40
  1029. data/vendor/bundle/ruby/4.0.0/gems/bigdecimal-4.0.1/sample/pi.rb +0 -21
  1030. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.0/CHANGES.md +0 -738
  1031. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.0/ext/json/ext/fbuffer/fbuffer.h +0 -249
  1032. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.0/ext/json/ext/parser/parser.c +0 -1680
  1033. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.0/lib/json/ext/generator.so +0 -0
  1034. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.0/lib/json/ext/parser.so +0 -0
  1035. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.0/lib/json/version.rb +0 -5
  1036. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/LICENSE.md +0 -19
  1037. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/README.md +0 -526
  1038. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attribute.rb +0 -52
  1039. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/additionalitems.rb +0 -29
  1040. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/additionalproperties.rb +0 -55
  1041. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/allof.rb +0 -66
  1042. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/anyof.rb +0 -47
  1043. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/const.rb +0 -15
  1044. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/dependencies.rb +0 -39
  1045. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/dependencies_v4.rb +0 -11
  1046. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/disallow.rb +0 -13
  1047. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/divisibleby.rb +0 -22
  1048. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/enum.rb +0 -24
  1049. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/extends.rb +0 -50
  1050. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/format.rb +0 -15
  1051. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/formats/custom.rb +0 -19
  1052. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/formats/date.rb +0 -26
  1053. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/formats/date_time.rb +0 -35
  1054. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/formats/date_time_v4.rb +0 -16
  1055. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/formats/ip.rb +0 -41
  1056. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/formats/time.rb +0 -22
  1057. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/formats/uri.rb +0 -19
  1058. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/items.rb +0 -28
  1059. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limit.rb +0 -52
  1060. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/items.rb +0 -15
  1061. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/length.rb +0 -15
  1062. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/max_items.rb +0 -15
  1063. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/max_length.rb +0 -15
  1064. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/max_properties.rb +0 -15
  1065. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/maximum.rb +0 -15
  1066. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/maximum_inclusive.rb +0 -11
  1067. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/min_items.rb +0 -15
  1068. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/min_length.rb +0 -15
  1069. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/min_properties.rb +0 -15
  1070. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/minimum.rb +0 -15
  1071. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/minimum_inclusive.rb +0 -11
  1072. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/numeric.rb +0 -16
  1073. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/limits/properties.rb +0 -15
  1074. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/maxdecimal.rb +0 -18
  1075. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/multipleof.rb +0 -11
  1076. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/not.rb +0 -30
  1077. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/oneof.rb +0 -54
  1078. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/pattern.rb +0 -18
  1079. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/patternproperties.rb +0 -23
  1080. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/properties.rb +0 -66
  1081. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/properties_optional.rb +0 -26
  1082. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/properties_v4.rb +0 -13
  1083. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/propertynames.rb +0 -23
  1084. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/ref.rb +0 -62
  1085. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/required.rb +0 -29
  1086. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/type.rb +0 -74
  1087. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/type_v4.rb +0 -29
  1088. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/attributes/uniqueitems.rb +0 -16
  1089. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/errors/custom_format_error.rb +0 -6
  1090. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/errors/json_load_error.rb +0 -6
  1091. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/errors/json_parse_error.rb +0 -6
  1092. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/errors/schema_error.rb +0 -6
  1093. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/errors/schema_parse_error.rb +0 -8
  1094. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/errors/uri_error.rb +0 -6
  1095. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/errors/validation_error.rb +0 -46
  1096. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/schema/reader.rb +0 -142
  1097. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/schema/validator.rb +0 -37
  1098. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/schema.rb +0 -61
  1099. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/util/array_set.rb +0 -18
  1100. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/util/uri.rb +0 -133
  1101. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/util/uuid.rb +0 -262
  1102. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validator.rb +0 -666
  1103. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/draft1.rb +0 -43
  1104. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/draft2.rb +0 -44
  1105. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/draft3.rb +0 -48
  1106. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/draft4.rb +0 -54
  1107. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/draft6.rb +0 -56
  1108. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/hyper-draft1.rb +0 -12
  1109. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/hyper-draft2.rb +0 -12
  1110. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/hyper-draft3.rb +0 -12
  1111. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/hyper-draft4.rb +0 -12
  1112. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema/validators/hyper-draft6.rb +0 -12
  1113. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/lib/json-schema.rb +0 -18
  1114. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/resources/draft-01.json +0 -155
  1115. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/resources/draft-02.json +0 -166
  1116. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/resources/draft-03.json +0 -174
  1117. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/resources/draft-04.json +0 -150
  1118. data/vendor/bundle/ruby/4.0.0/gems/json-schema-6.2.0/resources/draft-06.json +0 -150
  1119. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/AGENTS.md +0 -107
  1120. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/CHANGELOG.md +0 -168
  1121. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/CODE_OF_CONDUCT.md +0 -74
  1122. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/Gemfile +0 -29
  1123. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/LICENSE +0 -216
  1124. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/README.md +0 -1040
  1125. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/RELEASE.md +0 -12
  1126. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/Rakefile +0 -56
  1127. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/SECURITY.md +0 -21
  1128. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/bin/console +0 -15
  1129. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/bin/generate-gh-pages.sh +0 -119
  1130. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/bin/rake +0 -31
  1131. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/bin/setup +0 -8
  1132. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/conformance/README.md +0 -103
  1133. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/conformance/expected_failures.yml +0 -9
  1134. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/conformance/runner.rb +0 -101
  1135. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/conformance/server.rb +0 -547
  1136. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/dev.yml +0 -30
  1137. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/docs/_config.yml +0 -6
  1138. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/docs/index.md +0 -7
  1139. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/docs/latest/index.html +0 -19
  1140. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/examples/README.md +0 -197
  1141. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/examples/http_client.rb +0 -184
  1142. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/examples/http_server.rb +0 -169
  1143. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/examples/stdio_server.rb +0 -94
  1144. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/examples/streamable_http_client.rb +0 -207
  1145. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/examples/streamable_http_server.rb +0 -172
  1146. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/json_rpc_handler.rb +0 -171
  1147. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/annotations.rb +0 -21
  1148. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/client/http.rb +0 -104
  1149. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/client/tool.rb +0 -16
  1150. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/client.rb +0 -159
  1151. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/configuration.rb +0 -118
  1152. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/content.rb +0 -59
  1153. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/icon.rb +0 -22
  1154. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/instrumentation.rb +0 -26
  1155. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/logging_message_notification.rb +0 -30
  1156. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/methods.rb +0 -98
  1157. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/prompt/argument.rb +0 -25
  1158. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/prompt/message.rb +0 -18
  1159. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/prompt/result.rb +0 -18
  1160. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/prompt.rb +0 -122
  1161. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/resource/contents.rb +0 -44
  1162. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/resource/embedded.rb +0 -18
  1163. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/resource.rb +0 -27
  1164. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/resource_template.rb +0 -27
  1165. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/server/capabilities.rb +0 -96
  1166. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/server/transports/stdio_transport.rb +0 -57
  1167. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/server/transports/streamable_http_transport.rb +0 -380
  1168. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/server.rb +0 -509
  1169. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/string_utils.rb +0 -25
  1170. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/tool/annotations.rb +0 -27
  1171. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/tool/input_schema.rb +0 -28
  1172. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/tool/output_schema.rb +0 -18
  1173. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/tool/response.rb +0 -30
  1174. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/tool/schema.rb +0 -61
  1175. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/tool.rb +0 -155
  1176. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/transport.rb +0 -45
  1177. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/transports/stdio.rb +0 -15
  1178. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp/version.rb +0 -5
  1179. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/lib/mcp.rb +0 -43
  1180. data/vendor/bundle/ruby/4.0.0/gems/mcp-0.8.0/mcp.gemspec +0 -35
  1181. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.1-x86_64-linux-gnu/LICENSE-DEPENDENCIES.md +0 -2224
  1182. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.1-x86_64-linux-gnu/lib/nokogiri/jruby/nokogiri_jars.rb +0 -43
  1183. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.1-x86_64-linux-gnu/lib/nokogiri/version/constant.rb +0 -6
  1184. data/vendor/bundle/ruby/4.0.0/gems/parser-3.3.10.2/lib/parser/current.rb +0 -146
  1185. data/vendor/bundle/ruby/4.0.0/gems/parser-3.3.10.2/lib/parser/version.rb +0 -5
  1186. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/config/default.yml +0 -6225
  1187. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cache_config.rb +0 -58
  1188. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cli/command/auto_generate_config.rb +0 -167
  1189. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cli/command/show_cops.rb +0 -96
  1190. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cli/command/show_docs_url.rb +0 -48
  1191. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/config.rb +0 -400
  1192. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/config_finder.rb +0 -78
  1193. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/config_store.rb +0 -77
  1194. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/config_validator.rb +0 -291
  1195. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/argument_alignment.rb +0 -151
  1196. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/dot_position.rb +0 -139
  1197. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +0 -217
  1198. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/empty_line_between_defs.rb +0 -311
  1199. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +0 -139
  1200. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/end_alignment.rb +0 -214
  1201. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +0 -403
  1202. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/space_around_keyword.rb +0 -274
  1203. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/layout/space_in_lambda_literal.rb +0 -78
  1204. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/constant_reassignment.rb +0 -148
  1205. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/duplicate_methods.rb +0 -398
  1206. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/empty_conditional_body.rb +0 -148
  1207. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/empty_in_pattern.rb +0 -64
  1208. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/empty_when.rb +0 -61
  1209. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/number_conversion.rb +0 -200
  1210. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/redundant_safe_navigation.rb +0 -260
  1211. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/safe_navigation_chain.rb +0 -116
  1212. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +0 -55
  1213. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/useless_constant_scoping.rb +0 -71
  1214. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/useless_default_value_argument.rb +0 -90
  1215. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/lint/utils/nil_receiver_checker.rb +0 -121
  1216. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/mixin/check_single_line_suitability.rb +0 -47
  1217. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/registry.rb +0 -318
  1218. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/and_or.rb +0 -158
  1219. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/arguments_forwarding.rb +0 -564
  1220. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/ascii_comments.rb +0 -60
  1221. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/block_delimiters.rb +0 -504
  1222. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/collection_compact.rb +0 -143
  1223. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/concat_array_literals.rb +0 -95
  1224. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/conditional_assignment.rb +0 -670
  1225. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/empty_class_definition.rb +0 -97
  1226. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/file_open.rb +0 -84
  1227. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/global_vars.rb +0 -81
  1228. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/hash_lookup_method.rb +0 -94
  1229. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/if_unless_modifier.rb +0 -351
  1230. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/if_with_semicolon.rb +0 -132
  1231. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/ip_addresses.rb +0 -75
  1232. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/magic_comment_format.rb +0 -307
  1233. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +0 -59
  1234. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/mutable_constant.rb +0 -246
  1235. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/non_nil_check.rb +0 -158
  1236. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/numeric_literals.rb +0 -130
  1237. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/raise_args.rb +0 -160
  1238. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/redundant_each.rb +0 -119
  1239. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/redundant_parentheses.rb +0 -361
  1240. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/redundant_percent_q.rb +0 -107
  1241. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +0 -90
  1242. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/safe_navigation.rb +0 -427
  1243. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/single_line_block_params.rb +0 -119
  1244. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/symbol_proc.rb +0 -282
  1245. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/trailing_method_end_statement.rb +0 -62
  1246. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/cop/style/yoda_expression.rb +0 -92
  1247. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/formatter/disabled_config_formatter.rb +0 -297
  1248. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/formatter/junit_formatter.rb +0 -143
  1249. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/formatter/worst_offenders_formatter.rb +0 -64
  1250. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/lsp/routes.rb +0 -256
  1251. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/mcp/server.rb +0 -174
  1252. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/path_util.rb +0 -122
  1253. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/plugin/loader.rb +0 -100
  1254. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/result_cache.rb +0 -250
  1255. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/rspec/shared_contexts.rb +0 -275
  1256. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/runner.rb +0 -529
  1257. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/server/core.rb +0 -116
  1258. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/target_finder.rb +0 -221
  1259. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.85.1/lib/rubocop/version.rb +0 -160
  1260. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.0/lib/rubocop/ast/node_pattern/compiler/binding.rb +0 -78
  1261. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.0/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb +0 -146
  1262. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.0/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb +0 -419
  1263. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.0/lib/rubocop/ast/node_pattern/lexer.rex.rb +0 -184
  1264. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.0/lib/rubocop/ast/node_pattern/parser.racc.rb +0 -470
  1265. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.0/lib/rubocop/ast/node_pattern.rb +0 -127
  1266. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.0/lib/rubocop/ast/traversal.rb +0 -193
  1267. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.0/lib/rubocop/ast/version.rb +0 -9
  1268. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.1/CHANGELOG.md +0 -2134
  1269. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.1/README.md +0 -1226
  1270. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.1/lib/webmock/http_lib_adapters/curb_adapter.rb +0 -353
  1271. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.1/lib/webmock/http_lib_adapters/http_rb/response.rb +0 -87
  1272. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.1/lib/webmock/http_lib_adapters/http_rb/streamer.rb +0 -37
  1273. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.1/lib/webmock/http_lib_adapters/http_rb/webmock.rb +0 -74
  1274. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.1/lib/webmock/version.rb +0 -5
  1275. data/vendor/bundle/ruby/4.0.0/specifications/bigdecimal-4.0.1.gemspec +0 -25
  1276. data/vendor/bundle/ruby/4.0.0/specifications/json-2.19.0.gemspec +0 -0
  1277. data/vendor/bundle/ruby/4.0.0/specifications/json-schema-6.2.0.gemspec +0 -28
  1278. data/vendor/bundle/ruby/4.0.0/specifications/mcp-0.8.0.gemspec +0 -27
  1279. data/vendor/bundle/ruby/4.0.0/specifications/nokogiri-1.19.1-x86_64-linux-gnu.gemspec +0 -31
  1280. data/vendor/bundle/ruby/4.0.0/specifications/parser-3.3.10.2.gemspec +0 -37
  1281. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-1.85.1.gemspec +0 -40
  1282. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-ast-1.49.0.gemspec +0 -29
  1283. data/vendor/bundle/ruby/4.0.0/specifications/webmock-3.26.1.gemspec +0 -44
  1284. /data/spec/fixtures/{wsdl → parser}/duplicate_definitions/a.wsdl +0 -0
  1285. /data/spec/fixtures/{wsdl → parser}/duplicate_definitions/b.wsdl +0 -0
  1286. /data/spec/fixtures/{wsdl → parser}/duplicate_definitions/root.wsdl +0 -0
  1287. /data/spec/fixtures/{wsdl → parser}/malicious/path_traversal.wsdl +0 -0
  1288. /data/spec/fixtures/{wsdl → parser}/qname_collisions/a.wsdl +0 -0
  1289. /data/spec/fixtures/{wsdl → parser}/qname_collisions/b.wsdl +0 -0
  1290. /data/spec/fixtures/{wsdl → parser}/qname_collisions/root.wsdl +0 -0
  1291. /data/spec/fixtures/{wsdl → parser}/unresolved_references/binding.wsdl +0 -0
  1292. /data/spec/fixtures/{wsdl → parser}/unresolved_references/message.wsdl +0 -0
  1293. /data/spec/fixtures/{wsdl → parser}/unresolved_references/port_type.wsdl +0 -0
  1294. /data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/gem.build_complete +0 -0
  1295. /data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/{json-2.19.0 → json-2.19.3}/gem.build_complete +0 -0
  1296. /data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/{json-2.19.0 → json-2.19.3}/mkmf.log +0 -0
  1297. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/LICENSE +0 -0
  1298. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/ext/bigdecimal/bits.h +0 -0
  1299. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/ext/bigdecimal/feature.h +0 -0
  1300. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/ext/bigdecimal/missing/dtoa.c +0 -0
  1301. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/ext/bigdecimal/missing.c +0 -0
  1302. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/ext/bigdecimal/static_assert.h +0 -0
  1303. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/lib/bigdecimal/jacobian.rb +0 -0
  1304. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/lib/bigdecimal/ludcmp.rb +0 -0
  1305. /data/vendor/bundle/ruby/4.0.0/gems/{bigdecimal-4.0.1 → bigdecimal-4.1.0}/lib/bigdecimal/newton.rb +0 -0
  1306. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/BSDL +0 -0
  1307. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/COPYING +0 -0
  1308. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/LEGAL +0 -0
  1309. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/README.md +0 -0
  1310. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/generator/Makefile +0 -0
  1311. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/generator/extconf.rb +0 -0
  1312. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/generator/generator.c +0 -0
  1313. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/json.h +0 -0
  1314. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/parser/Makefile +0 -0
  1315. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/parser/extconf.rb +0 -0
  1316. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/simd/conf.rb +0 -0
  1317. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/simd/simd.h +0 -0
  1318. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/vendor/fpconv.c +0 -0
  1319. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/vendor/jeaiii-ltoa.h +0 -0
  1320. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/ext/json/ext/vendor/ryu.h +0 -0
  1321. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/json.gemspec +0 -0
  1322. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/bigdecimal.rb +0 -0
  1323. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/complex.rb +0 -0
  1324. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/core.rb +0 -0
  1325. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/date.rb +0 -0
  1326. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/date_time.rb +0 -0
  1327. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/exception.rb +0 -0
  1328. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/ostruct.rb +0 -0
  1329. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/range.rb +0 -0
  1330. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/rational.rb +0 -0
  1331. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/regexp.rb +0 -0
  1332. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/set.rb +0 -0
  1333. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/string.rb +0 -0
  1334. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/struct.rb +0 -0
  1335. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/symbol.rb +0 -0
  1336. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/add/time.rb +0 -0
  1337. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/common.rb +0 -0
  1338. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/ext/generator/state.rb +0 -0
  1339. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/ext.rb +0 -0
  1340. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/generic_object.rb +0 -0
  1341. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json/truffle_ruby/generator.rb +0 -0
  1342. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.0 → json-2.19.3}/lib/json.rb +0 -0
  1343. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/Gemfile +0 -0
  1344. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/LICENSE.md +0 -0
  1345. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/README.md +0 -0
  1346. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/bin/nokogiri +0 -0
  1347. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/dependencies.yml +0 -0
  1348. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/depend +0 -0
  1349. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/extconf.rb +0 -0
  1350. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/gumbo.c +0 -0
  1351. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/html4_document.c +0 -0
  1352. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/html4_element_description.c +0 -0
  1353. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/html4_entity_lookup.c +0 -0
  1354. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/html4_sax_parser.c +0 -0
  1355. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/html4_sax_parser_context.c +0 -0
  1356. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/html4_sax_push_parser.c +0 -0
  1357. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libexslt/exslt.h +0 -0
  1358. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libexslt/exsltconfig.h +0 -0
  1359. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libexslt/exsltexports.h +0 -0
  1360. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +0 -0
  1361. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/HTMLtree.h +0 -0
  1362. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/SAX.h +0 -0
  1363. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/SAX2.h +0 -0
  1364. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/c14n.h +0 -0
  1365. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/catalog.h +0 -0
  1366. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/chvalid.h +0 -0
  1367. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/debugXML.h +0 -0
  1368. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/dict.h +0 -0
  1369. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/encoding.h +0 -0
  1370. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/entities.h +0 -0
  1371. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/globals.h +0 -0
  1372. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/hash.h +0 -0
  1373. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/list.h +0 -0
  1374. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/nanoftp.h +0 -0
  1375. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/nanohttp.h +0 -0
  1376. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/parser.h +0 -0
  1377. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/parserInternals.h +0 -0
  1378. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/pattern.h +0 -0
  1379. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/relaxng.h +0 -0
  1380. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/schemasInternals.h +0 -0
  1381. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/schematron.h +0 -0
  1382. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/threads.h +0 -0
  1383. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/tree.h +0 -0
  1384. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/uri.h +0 -0
  1385. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/valid.h +0 -0
  1386. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xinclude.h +0 -0
  1387. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xlink.h +0 -0
  1388. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlIO.h +0 -0
  1389. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlautomata.h +0 -0
  1390. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlerror.h +0 -0
  1391. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlexports.h +0 -0
  1392. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +0 -0
  1393. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlmodule.h +0 -0
  1394. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlreader.h +0 -0
  1395. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlregexp.h +0 -0
  1396. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlsave.h +0 -0
  1397. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlschemas.h +0 -0
  1398. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlschemastypes.h +0 -0
  1399. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlstring.h +0 -0
  1400. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +0 -0
  1401. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlversion.h +0 -0
  1402. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +0 -0
  1403. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xpath.h +0 -0
  1404. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xpathInternals.h +0 -0
  1405. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xpointer.h +0 -0
  1406. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/attributes.h +0 -0
  1407. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/documents.h +0 -0
  1408. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/extensions.h +0 -0
  1409. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/extra.h +0 -0
  1410. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/functions.h +0 -0
  1411. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/imports.h +0 -0
  1412. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/keys.h +0 -0
  1413. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/namespaces.h +0 -0
  1414. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/numbersInternals.h +0 -0
  1415. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/pattern.h +0 -0
  1416. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/preproc.h +0 -0
  1417. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/security.h +0 -0
  1418. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/templates.h +0 -0
  1419. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/transform.h +0 -0
  1420. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/variables.h +0 -0
  1421. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xslt.h +0 -0
  1422. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltInternals.h +0 -0
  1423. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltconfig.h +0 -0
  1424. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltexports.h +0 -0
  1425. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltlocale.h +0 -0
  1426. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltutils.h +0 -0
  1427. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/libxml2_polyfill.c +0 -0
  1428. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/nokogiri.c +0 -0
  1429. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/nokogiri.h +0 -0
  1430. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/test_global_handlers.c +0 -0
  1431. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_attr.c +0 -0
  1432. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_attribute_decl.c +0 -0
  1433. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_cdata.c +0 -0
  1434. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_comment.c +0 -0
  1435. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_document.c +0 -0
  1436. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_document_fragment.c +0 -0
  1437. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_dtd.c +0 -0
  1438. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_element_content.c +0 -0
  1439. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_element_decl.c +0 -0
  1440. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_encoding_handler.c +0 -0
  1441. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_entity_decl.c +0 -0
  1442. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_entity_reference.c +0 -0
  1443. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_namespace.c +0 -0
  1444. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_node.c +0 -0
  1445. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_node_set.c +0 -0
  1446. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_processing_instruction.c +0 -0
  1447. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_reader.c +0 -0
  1448. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_relax_ng.c +0 -0
  1449. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_sax_parser.c +0 -0
  1450. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_sax_parser_context.c +0 -0
  1451. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_sax_push_parser.c +0 -0
  1452. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_schema.c +0 -0
  1453. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_syntax_error.c +0 -0
  1454. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_text.c +0 -0
  1455. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xml_xpath_context.c +0 -0
  1456. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/ext/nokogiri/xslt_stylesheet.c +0 -0
  1457. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/gumbo-parser/CHANGES.md +0 -0
  1458. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/gumbo-parser/Makefile +0 -0
  1459. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/gumbo-parser/THANKS +0 -0
  1460. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/3.2/nokogiri.so +0 -0
  1461. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/3.3/nokogiri.so +0 -0
  1462. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/3.4/nokogiri.so +0 -0
  1463. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/4.0/nokogiri.so +0 -0
  1464. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/class_resolver.rb +0 -0
  1465. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/node.rb +0 -0
  1466. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/parser.rb +0 -0
  1467. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/parser.y +0 -0
  1468. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/parser_extras.rb +0 -0
  1469. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/selector_cache.rb +0 -0
  1470. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/syntax_error.rb +0 -0
  1471. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/tokenizer.rb +0 -0
  1472. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/tokenizer.rex +0 -0
  1473. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css/xpath_visitor.rb +0 -0
  1474. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/css.rb +0 -0
  1475. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/decorators/slop.rb +0 -0
  1476. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/encoding_handler.rb +0 -0
  1477. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/extension.rb +0 -0
  1478. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/gumbo.rb +0 -0
  1479. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html.rb +0 -0
  1480. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/builder.rb +0 -0
  1481. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/document.rb +0 -0
  1482. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/document_fragment.rb +0 -0
  1483. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/element_description.rb +0 -0
  1484. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/element_description_defaults.rb +0 -0
  1485. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/encoding_reader.rb +0 -0
  1486. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/entity_lookup.rb +0 -0
  1487. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/sax/parser.rb +0 -0
  1488. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/sax/parser_context.rb +0 -0
  1489. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4/sax/push_parser.rb +0 -0
  1490. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html4.rb +0 -0
  1491. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html5/builder.rb +0 -0
  1492. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html5/document.rb +0 -0
  1493. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html5/document_fragment.rb +0 -0
  1494. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html5/node.rb +0 -0
  1495. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/html5.rb +0 -0
  1496. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/jruby/dependencies.rb +0 -0
  1497. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/syntax_error.rb +0 -0
  1498. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/version/info.rb +0 -0
  1499. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/version.rb +0 -0
  1500. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/attr.rb +0 -0
  1501. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/attribute_decl.rb +0 -0
  1502. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/builder.rb +0 -0
  1503. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/cdata.rb +0 -0
  1504. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/character_data.rb +0 -0
  1505. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/document.rb +0 -0
  1506. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/document_fragment.rb +0 -0
  1507. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/dtd.rb +0 -0
  1508. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/element_content.rb +0 -0
  1509. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/element_decl.rb +0 -0
  1510. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/entity_decl.rb +0 -0
  1511. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/entity_reference.rb +0 -0
  1512. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/namespace.rb +0 -0
  1513. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/node/save_options.rb +0 -0
  1514. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/node.rb +0 -0
  1515. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/node_set.rb +0 -0
  1516. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/notation.rb +0 -0
  1517. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/parse_options.rb +0 -0
  1518. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/pp/character_data.rb +0 -0
  1519. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/pp/node.rb +0 -0
  1520. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/pp.rb +0 -0
  1521. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/processing_instruction.rb +0 -0
  1522. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/reader.rb +0 -0
  1523. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/relax_ng.rb +0 -0
  1524. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/sax/document.rb +0 -0
  1525. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/sax/parser.rb +0 -0
  1526. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/sax/parser_context.rb +0 -0
  1527. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/sax/push_parser.rb +0 -0
  1528. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/sax.rb +0 -0
  1529. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/schema.rb +0 -0
  1530. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/searchable.rb +0 -0
  1531. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/syntax_error.rb +0 -0
  1532. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/text.rb +0 -0
  1533. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/xpath/syntax_error.rb +0 -0
  1534. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/xpath.rb +0 -0
  1535. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml/xpath_context.rb +0 -0
  1536. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xml.rb +0 -0
  1537. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xslt/stylesheet.rb +0 -0
  1538. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri/xslt.rb +0 -0
  1539. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/nokogiri.rb +0 -0
  1540. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.1-x86_64-linux-gnu → nokogiri-1.19.2-x86_64-linux-gnu}/lib/xsd/xmlparser/nokogiri.rb +0 -0
  1541. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/LICENSE.txt +0 -0
  1542. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/bin/ruby-parse +0 -0
  1543. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/bin/ruby-rewrite +0 -0
  1544. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/gauntlet_parser.rb +0 -0
  1545. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/all.rb +0 -0
  1546. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ast/node.rb +0 -0
  1547. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ast/processor.rb +0 -0
  1548. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/base.rb +0 -0
  1549. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/builders/default.rb +0 -0
  1550. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/clobbering_error.rb +0 -0
  1551. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/color.rb +0 -0
  1552. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/context.rb +0 -0
  1553. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/current_arg_stack.rb +0 -0
  1554. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/deprecation.rb +0 -0
  1555. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/diagnostic/engine.rb +0 -0
  1556. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/diagnostic.rb +0 -0
  1557. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/lexer/dedenter.rb +0 -0
  1558. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/lexer/explanation.rb +0 -0
  1559. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/lexer/literal.rb +0 -0
  1560. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/lexer/stack_state.rb +0 -0
  1561. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/lexer-F0.rb +0 -0
  1562. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/lexer-F1.rb +0 -0
  1563. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/lexer-strings.rb +0 -0
  1564. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/macruby.rb +0 -0
  1565. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/max_numparam_stack.rb +0 -0
  1566. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/messages.rb +0 -0
  1567. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/meta.rb +0 -0
  1568. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/rewriter.rb +0 -0
  1569. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby18.rb +0 -0
  1570. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby19.rb +0 -0
  1571. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby20.rb +0 -0
  1572. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby21.rb +0 -0
  1573. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby22.rb +0 -0
  1574. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby23.rb +0 -0
  1575. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby24.rb +0 -0
  1576. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby25.rb +0 -0
  1577. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby26.rb +0 -0
  1578. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby27.rb +0 -0
  1579. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby30.rb +0 -0
  1580. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby31.rb +0 -0
  1581. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby32.rb +0 -0
  1582. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby33.rb +0 -0
  1583. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/ruby34.rb +0 -0
  1584. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/rubymotion.rb +0 -0
  1585. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/runner/ruby_parse.rb +0 -0
  1586. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/runner/ruby_rewrite.rb +0 -0
  1587. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/runner.rb +0 -0
  1588. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/buffer.rb +0 -0
  1589. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/comment/associator.rb +0 -0
  1590. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/comment.rb +0 -0
  1591. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/collection.rb +0 -0
  1592. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/condition.rb +0 -0
  1593. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/constant.rb +0 -0
  1594. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/definition.rb +0 -0
  1595. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/for.rb +0 -0
  1596. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/heredoc.rb +0 -0
  1597. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/index.rb +0 -0
  1598. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/keyword.rb +0 -0
  1599. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/method_definition.rb +0 -0
  1600. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/objc_kwarg.rb +0 -0
  1601. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/operator.rb +0 -0
  1602. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/rescue_body.rb +0 -0
  1603. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/send.rb +0 -0
  1604. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/ternary.rb +0 -0
  1605. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map/variable.rb +0 -0
  1606. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/map.rb +0 -0
  1607. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/range.rb +0 -0
  1608. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/rewriter/action.rb +0 -0
  1609. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/rewriter.rb +0 -0
  1610. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/tree_rewriter/action.rb +0 -0
  1611. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/source/tree_rewriter.rb +0 -0
  1612. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/static_environment.rb +0 -0
  1613. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/syntax_error.rb +0 -0
  1614. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/tree_rewriter.rb +0 -0
  1615. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/unknown_encoding_in_magic_comment_error.rb +0 -0
  1616. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser/variables_stack.rb +0 -0
  1617. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/lib/parser.rb +0 -0
  1618. /data/vendor/bundle/ruby/4.0.0/gems/{parser-3.3.10.2 → parser-3.3.11.1}/parser.gemspec +0 -0
  1619. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/LICENSE.txt +0 -0
  1620. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/README.md +0 -0
  1621. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/assets/logo.png +0 -0
  1622. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/assets/output.css.erb +0 -0
  1623. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/assets/output.html.erb +0 -0
  1624. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/config/internal_affairs.yml +0 -0
  1625. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/config/obsoletion.yml +0 -0
  1626. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/exe/rubocop +0 -0
  1627. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/arguments_env.rb +0 -0
  1628. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/arguments_file.rb +0 -0
  1629. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/ast_aliases.rb +0 -0
  1630. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cached_data.rb +0 -0
  1631. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/command/base.rb +0 -0
  1632. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/command/execute_runner.rb +0 -0
  1633. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/command/init_dotfile.rb +0 -0
  1634. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/command/lsp.rb +0 -0
  1635. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/command/mcp.rb +0 -0
  1636. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/command/suggest_extensions.rb +0 -0
  1637. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/command/version.rb +0 -0
  1638. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/command.rb +0 -0
  1639. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli/environment.rb +0 -0
  1640. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cli.rb +0 -0
  1641. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/comment_config.rb +0 -0
  1642. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_loader.rb +0 -0
  1643. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_loader_resolver.rb +0 -0
  1644. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/changed_enforced_styles.rb +0 -0
  1645. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/changed_parameter.rb +0 -0
  1646. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/cop_rule.rb +0 -0
  1647. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/extracted_cop.rb +0 -0
  1648. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/parameter_rule.rb +0 -0
  1649. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/removed_cop.rb +0 -0
  1650. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/renamed_cop.rb +0 -0
  1651. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/rule.rb +0 -0
  1652. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion/split_cop.rb +0 -0
  1653. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_obsoletion.rb +0 -0
  1654. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/config_regeneration.rb +0 -0
  1655. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/autocorrect_logic.rb +0 -0
  1656. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/badge.rb +0 -0
  1657. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/base.rb +0 -0
  1658. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/bundler/duplicated_gem.rb +0 -0
  1659. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/bundler/duplicated_group.rb +0 -0
  1660. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/bundler/gem_comment.rb +0 -0
  1661. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/bundler/gem_filename.rb +0 -0
  1662. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/bundler/gem_version.rb +0 -0
  1663. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/bundler/insecure_protocol_source.rb +0 -0
  1664. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/bundler/ordered_gems.rb +0 -0
  1665. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/commissioner.rb +0 -0
  1666. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/cop.rb +0 -0
  1667. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/corrector.rb +0 -0
  1668. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/alignment_corrector.rb +0 -0
  1669. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/condition_corrector.rb +0 -0
  1670. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/each_to_for_corrector.rb +0 -0
  1671. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/empty_line_corrector.rb +0 -0
  1672. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/for_to_each_corrector.rb +0 -0
  1673. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/if_then_corrector.rb +0 -0
  1674. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +0 -0
  1675. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/line_break_corrector.rb +0 -0
  1676. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +0 -0
  1677. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +0 -0
  1678. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/parentheses_corrector.rb +0 -0
  1679. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/percent_literal_corrector.rb +0 -0
  1680. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/punctuation_corrector.rb +0 -0
  1681. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/require_library_corrector.rb +0 -0
  1682. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/space_corrector.rb +0 -0
  1683. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/string_literal_corrector.rb +0 -0
  1684. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/correctors/unused_arg_corrector.rb +0 -0
  1685. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/documentation.rb +0 -0
  1686. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/exclude_limit.rb +0 -0
  1687. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/force.rb +0 -0
  1688. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/add_runtime_dependency.rb +0 -0
  1689. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/attribute_assignment.rb +0 -0
  1690. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/dependency_version.rb +0 -0
  1691. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +0 -0
  1692. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/development_dependencies.rb +0 -0
  1693. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/duplicated_assignment.rb +0 -0
  1694. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/ordered_dependencies.rb +0 -0
  1695. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/require_mfa.rb +0 -0
  1696. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/required_ruby_version.rb +0 -0
  1697. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +0 -0
  1698. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/generator/configuration_injector.rb +0 -0
  1699. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/generator/require_file_injector.rb +0 -0
  1700. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/generator.rb +0 -0
  1701. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/ignored_node.rb +0 -0
  1702. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/cop_description.rb +0 -0
  1703. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/cop_enabled.rb +0 -0
  1704. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/create_empty_file.rb +0 -0
  1705. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +0 -0
  1706. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/example_description.rb +0 -0
  1707. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/example_heredoc_delimiter.rb +0 -0
  1708. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/inherit_deprecated_cop_class.rb +0 -0
  1709. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/itblock_handler.rb +0 -0
  1710. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/lambda_or_proc.rb +0 -0
  1711. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/location_exists.rb +0 -0
  1712. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/location_expression.rb +0 -0
  1713. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +0 -0
  1714. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +0 -0
  1715. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/method_name_equal.rb +0 -0
  1716. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_destructuring.rb +0 -0
  1717. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +0 -0
  1718. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +0 -0
  1719. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb +0 -0
  1720. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb +0 -0
  1721. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +0 -0
  1722. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_type_group.rb +0 -0
  1723. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb +0 -0
  1724. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +0 -0
  1725. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/numblock_handler.rb +0 -0
  1726. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +0 -0
  1727. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb +0 -0
  1728. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/operator_keyword.rb +0 -0
  1729. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/plugin.rb +0 -0
  1730. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/processed_source_buffer_name.rb +0 -0
  1731. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/redundant_context_config_parameter.rb +0 -0
  1732. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +0 -0
  1733. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/redundant_expect_offense_arguments.rb +0 -0
  1734. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +0 -0
  1735. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +0 -0
  1736. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +0 -0
  1737. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/redundant_method_dispatch_node.rb +0 -0
  1738. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/redundant_source_range.rb +0 -0
  1739. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/single_line_comparison.rb +0 -0
  1740. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +0 -0
  1741. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/undefined_config.rb +0 -0
  1742. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +0 -0
  1743. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs/useless_restrict_on_send.rb +0 -0
  1744. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/internal_affairs.rb +0 -0
  1745. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/access_modifier_indentation.rb +0 -0
  1746. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/array_alignment.rb +0 -0
  1747. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/assignment_indentation.rb +0 -0
  1748. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/begin_end_alignment.rb +0 -0
  1749. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/block_alignment.rb +0 -0
  1750. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/block_end_newline.rb +0 -0
  1751. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/case_indentation.rb +0 -0
  1752. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/class_structure.rb +0 -0
  1753. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +0 -0
  1754. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +0 -0
  1755. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/comment_indentation.rb +0 -0
  1756. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/condition_position.rb +0 -0
  1757. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/def_end_alignment.rb +0 -0
  1758. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/else_alignment.rb +0 -0
  1759. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_comment.rb +0 -0
  1760. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +0 -0
  1761. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +0 -0
  1762. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines.rb +0 -0
  1763. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_after_module_inclusion.rb +0 -0
  1764. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +0 -0
  1765. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +0 -0
  1766. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +0 -0
  1767. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +0 -0
  1768. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +0 -0
  1769. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +0 -0
  1770. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +0 -0
  1771. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +0 -0
  1772. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/end_of_line.rb +0 -0
  1773. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/extra_spacing.rb +0 -0
  1774. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/first_argument_indentation.rb +0 -0
  1775. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/first_array_element_indentation.rb +0 -0
  1776. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/first_array_element_line_break.rb +0 -0
  1777. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/first_hash_element_indentation.rb +0 -0
  1778. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/first_hash_element_line_break.rb +0 -0
  1779. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/first_method_argument_line_break.rb +0 -0
  1780. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +0 -0
  1781. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/first_parameter_indentation.rb +0 -0
  1782. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/hash_alignment.rb +0 -0
  1783. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +0 -0
  1784. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/heredoc_indentation.rb +0 -0
  1785. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/indentation_consistency.rb +0 -0
  1786. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/indentation_style.rb +0 -0
  1787. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/indentation_width.rb +0 -0
  1788. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/initial_indentation.rb +0 -0
  1789. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/leading_comment_space.rb +0 -0
  1790. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/leading_empty_lines.rb +0 -0
  1791. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/line_continuation_leading_space.rb +0 -0
  1792. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/line_continuation_spacing.rb +0 -0
  1793. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +0 -0
  1794. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/line_length.rb +0 -0
  1795. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +0 -0
  1796. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +0 -0
  1797. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_assignment_layout.rb +0 -0
  1798. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_block_layout.rb +0 -0
  1799. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +0 -0
  1800. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +0 -0
  1801. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +0 -0
  1802. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +0 -0
  1803. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +0 -0
  1804. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb +0 -0
  1805. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/multiline_operation_indentation.rb +0 -0
  1806. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/parameter_alignment.rb +0 -0
  1807. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/redundant_line_break.rb +0 -0
  1808. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +0 -0
  1809. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/single_line_block_chain.rb +0 -0
  1810. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_after_colon.rb +0 -0
  1811. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_after_comma.rb +0 -0
  1812. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_after_method_name.rb +0 -0
  1813. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_after_not.rb +0 -0
  1814. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_after_semicolon.rb +0 -0
  1815. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_around_block_parameters.rb +0 -0
  1816. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +0 -0
  1817. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_around_method_call_operator.rb +0 -0
  1818. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_around_operators.rb +0 -0
  1819. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_before_block_braces.rb +0 -0
  1820. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_before_brackets.rb +0 -0
  1821. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_before_comma.rb +0 -0
  1822. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_before_comment.rb +0 -0
  1823. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_before_first_arg.rb +0 -0
  1824. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_before_semicolon.rb +0 -0
  1825. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +0 -0
  1826. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +0 -0
  1827. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_block_braces.rb +0 -0
  1828. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +0 -0
  1829. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_parens.rb +0 -0
  1830. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +0 -0
  1831. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_range_literal.rb +0 -0
  1832. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +0 -0
  1833. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +0 -0
  1834. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/trailing_empty_lines.rb +0 -0
  1835. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/layout/trailing_whitespace.rb +0 -0
  1836. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/legacy/corrections_proxy.rb +0 -0
  1837. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/legacy/corrector.rb +0 -0
  1838. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ambiguous_assignment.rb +0 -0
  1839. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ambiguous_block_association.rb +0 -0
  1840. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ambiguous_operator.rb +0 -0
  1841. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +0 -0
  1842. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ambiguous_range.rb +0 -0
  1843. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +0 -0
  1844. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/array_literal_in_regexp.rb +0 -0
  1845. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/assignment_in_condition.rb +0 -0
  1846. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/big_decimal_new.rb +0 -0
  1847. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +0 -0
  1848. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/boolean_symbol.rb +0 -0
  1849. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/circular_argument_reference.rb +0 -0
  1850. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/constant_definition_in_block.rb +0 -0
  1851. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb +0 -0
  1852. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/constant_resolution.rb +0 -0
  1853. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/cop_directive_syntax.rb +0 -0
  1854. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/data_define_override.rb +0 -0
  1855. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/debugger.rb +0 -0
  1856. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/deprecated_class_methods.rb +0 -0
  1857. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/deprecated_constants.rb +0 -0
  1858. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +0 -0
  1859. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +0 -0
  1860. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_branch.rb +0 -0
  1861. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_case_condition.rb +0 -0
  1862. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +0 -0
  1863. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_hash_key.rb +0 -0
  1864. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_magic_comment.rb +0 -0
  1865. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_match_pattern.rb +0 -0
  1866. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +0 -0
  1867. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_require.rb +0 -0
  1868. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +0 -0
  1869. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/duplicate_set_element.rb +0 -0
  1870. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/each_with_object_argument.rb +0 -0
  1871. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/else_layout.rb +0 -0
  1872. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/empty_block.rb +0 -0
  1873. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/empty_class.rb +0 -0
  1874. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/empty_ensure.rb +0 -0
  1875. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/empty_expression.rb +0 -0
  1876. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/empty_file.rb +0 -0
  1877. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/empty_interpolation.rb +0 -0
  1878. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ensure_return.rb +0 -0
  1879. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/erb_new_arguments.rb +0 -0
  1880. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/flip_flop.rb +0 -0
  1881. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/float_comparison.rb +0 -0
  1882. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/float_out_of_range.rb +0 -0
  1883. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/format_parameter_mismatch.rb +0 -0
  1884. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/hash_compare_by_identity.rb +0 -0
  1885. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/hash_new_with_keyword_arguments_as_default.rb +0 -0
  1886. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/heredoc_method_call_position.rb +0 -0
  1887. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/identity_comparison.rb +0 -0
  1888. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/implicit_string_concatenation.rb +0 -0
  1889. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +0 -0
  1890. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ineffective_access_modifier.rb +0 -0
  1891. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/inherit_exception.rb +0 -0
  1892. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/interpolation_check.rb +0 -0
  1893. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/it_without_arguments_in_block.rb +0 -0
  1894. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/lambda_without_literal_block.rb +0 -0
  1895. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/literal_as_condition.rb +0 -0
  1896. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/literal_assignment_in_condition.rb +0 -0
  1897. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/literal_in_interpolation.rb +0 -0
  1898. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/loop.rb +0 -0
  1899. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +0 -0
  1900. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/missing_super.rb +0 -0
  1901. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/mixed_case_range.rb +0 -0
  1902. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +0 -0
  1903. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/multiple_comparison.rb +0 -0
  1904. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/nested_method_definition.rb +0 -0
  1905. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/nested_percent_literal.rb +0 -0
  1906. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/next_without_accumulator.rb +0 -0
  1907. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb +0 -0
  1908. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/non_atomic_file_operation.rb +0 -0
  1909. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/non_deterministic_require_order.rb +0 -0
  1910. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +0 -0
  1911. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +0 -0
  1912. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb +0 -0
  1913. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/or_assignment_to_constant.rb +0 -0
  1914. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/ordered_magic_comments.rb +0 -0
  1915. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +0 -0
  1916. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +0 -0
  1917. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/percent_string_array.rb +0 -0
  1918. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/percent_symbol_array.rb +0 -0
  1919. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/raise_exception.rb +0 -0
  1920. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/rand_one.rb +0 -0
  1921. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +0 -0
  1922. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +0 -0
  1923. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_dir_glob_sort.rb +0 -0
  1924. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb +0 -0
  1925. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_require_statement.rb +0 -0
  1926. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_splat_expansion.rb +0 -0
  1927. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_string_coercion.rb +0 -0
  1928. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_type_conversion.rb +0 -0
  1929. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_with_index.rb +0 -0
  1930. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/redundant_with_object.rb +0 -0
  1931. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/refinement_import_methods.rb +0 -0
  1932. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/regexp_as_condition.rb +0 -0
  1933. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/require_parentheses.rb +0 -0
  1934. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/require_range_parentheses.rb +0 -0
  1935. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/require_relative_self_path.rb +0 -0
  1936. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/rescue_exception.rb +0 -0
  1937. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/rescue_type.rb +0 -0
  1938. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/return_in_void_context.rb +0 -0
  1939. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/safe_navigation_consistency.rb +0 -0
  1940. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +0 -0
  1941. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/script_permission.rb +0 -0
  1942. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/self_assignment.rb +0 -0
  1943. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/send_with_mixin_argument.rb +0 -0
  1944. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/shadowed_argument.rb +0 -0
  1945. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/shadowed_exception.rb +0 -0
  1946. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +0 -0
  1947. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/shared_mutable_default.rb +0 -0
  1948. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/struct_new_override.rb +0 -0
  1949. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/suppressed_exception.rb +0 -0
  1950. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb +0 -0
  1951. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/symbol_conversion.rb +0 -0
  1952. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/syntax.rb +0 -0
  1953. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/to_enum_arguments.rb +0 -0
  1954. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/to_json.rb +0 -0
  1955. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/top_level_return_with_argument.rb +0 -0
  1956. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/triple_quotes.rb +0 -0
  1957. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +0 -0
  1958. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb +0 -0
  1959. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unexpected_block_arity.rb +0 -0
  1960. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unified_integer.rb +0 -0
  1961. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +0 -0
  1962. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unreachable_code.rb +0 -0
  1963. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unreachable_loop.rb +0 -0
  1964. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unreachable_pattern_branch.rb +0 -0
  1965. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unused_block_argument.rb +0 -0
  1966. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/unused_method_argument.rb +0 -0
  1967. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/uri_escape_unescape.rb +0 -0
  1968. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/uri_regexp.rb +0 -0
  1969. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_access_modifier.rb +0 -0
  1970. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_assignment.rb +0 -0
  1971. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_defined.rb +0 -0
  1972. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_else_without_rescue.rb +0 -0
  1973. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_method_definition.rb +0 -0
  1974. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_numeric_operation.rb +0 -0
  1975. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_or.rb +0 -0
  1976. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_rescue.rb +0 -0
  1977. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +0 -0
  1978. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_setter_call.rb +0 -0
  1979. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/useless_times.rb +0 -0
  1980. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/lint/void.rb +0 -0
  1981. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/message_annotator.rb +0 -0
  1982. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/abc_size.rb +0 -0
  1983. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/block_length.rb +0 -0
  1984. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/block_nesting.rb +0 -0
  1985. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/class_length.rb +0 -0
  1986. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/collection_literal_length.rb +0 -0
  1987. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +0 -0
  1988. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/method_length.rb +0 -0
  1989. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/module_length.rb +0 -0
  1990. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/parameter_lists.rb +0 -0
  1991. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/perceived_complexity.rb +0 -0
  1992. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +0 -0
  1993. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +0 -0
  1994. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/utils/iterating_block.rb +0 -0
  1995. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +0 -0
  1996. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb +0 -0
  1997. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/migration/department_name.rb +0 -0
  1998. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/alignment.rb +0 -0
  1999. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/allowed_identifiers.rb +0 -0
  2000. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/allowed_methods.rb +0 -0
  2001. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/allowed_pattern.rb +0 -0
  2002. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/allowed_receivers.rb +0 -0
  2003. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/annotation_comment.rb +0 -0
  2004. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/array_min_size.rb +0 -0
  2005. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/array_syntax.rb +0 -0
  2006. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/auto_corrector.rb +0 -0
  2007. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/check_assignment.rb +0 -0
  2008. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/check_line_breakable.rb +0 -0
  2009. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/code_length.rb +0 -0
  2010. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/comments_help.rb +0 -0
  2011. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/configurable_enforced_style.rb +0 -0
  2012. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/configurable_formatting.rb +0 -0
  2013. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/configurable_max.rb +0 -0
  2014. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/configurable_naming.rb +0 -0
  2015. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/configurable_numbering.rb +0 -0
  2016. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/def_node.rb +0 -0
  2017. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/dig_help.rb +0 -0
  2018. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/documentation_comment.rb +0 -0
  2019. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/duplication.rb +0 -0
  2020. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/empty_lines_around_body.rb +0 -0
  2021. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/empty_parameter.rb +0 -0
  2022. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/end_keyword_alignment.rb +0 -0
  2023. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/endless_method_rewriter.rb +0 -0
  2024. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/enforce_superclass.rb +0 -0
  2025. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/first_element_line_break.rb +0 -0
  2026. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/forbidden_identifiers.rb +0 -0
  2027. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/forbidden_pattern.rb +0 -0
  2028. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/frozen_string_literal.rb +0 -0
  2029. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/gem_declaration.rb +0 -0
  2030. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/gemspec_help.rb +0 -0
  2031. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/hash_alignment_styles.rb +0 -0
  2032. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +0 -0
  2033. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/hash_subset.rb +0 -0
  2034. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/hash_transform_method/autocorrection.rb +0 -0
  2035. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/hash_transform_method.rb +0 -0
  2036. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/heredoc.rb +0 -0
  2037. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/integer_node.rb +0 -0
  2038. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/interpolation.rb +0 -0
  2039. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/line_length_help.rb +0 -0
  2040. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/match_range.rb +0 -0
  2041. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/method_complexity.rb +0 -0
  2042. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/method_preference.rb +0 -0
  2043. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/min_body_length.rb +0 -0
  2044. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/min_branches_count.rb +0 -0
  2045. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/multiline_element_indentation.rb +0 -0
  2046. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +0 -0
  2047. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +0 -0
  2048. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +0 -0
  2049. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/negative_conditional.rb +0 -0
  2050. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/nil_methods.rb +0 -0
  2051. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/on_normal_if_unless.rb +0 -0
  2052. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/ordered_gem_node.rb +0 -0
  2053. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/parentheses.rb +0 -0
  2054. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/percent_array.rb +0 -0
  2055. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/percent_literal.rb +0 -0
  2056. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/preceding_following_alignment.rb +0 -0
  2057. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/preferred_delimiters.rb +0 -0
  2058. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/range_help.rb +0 -0
  2059. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/rational_literal.rb +0 -0
  2060. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/require_library.rb +0 -0
  2061. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/rescue_node.rb +0 -0
  2062. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/safe_assignment.rb +0 -0
  2063. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/space_after_punctuation.rb +0 -0
  2064. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/space_before_punctuation.rb +0 -0
  2065. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/statement_modifier.rb +0 -0
  2066. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/string_help.rb +0 -0
  2067. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/string_literals_help.rb +0 -0
  2068. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/surrounding_space.rb +0 -0
  2069. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/symbol_help.rb +0 -0
  2070. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/target_ruby_version.rb +0 -0
  2071. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/trailing_body.rb +0 -0
  2072. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/trailing_comma.rb +0 -0
  2073. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/uncommunicative_name.rb +0 -0
  2074. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/unused_argument.rb +0 -0
  2075. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/mixin/visibility_help.rb +0 -0
  2076. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/accessor_method_name.rb +0 -0
  2077. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/ascii_identifiers.rb +0 -0
  2078. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +0 -0
  2079. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/block_forwarding.rb +0 -0
  2080. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/block_parameter_name.rb +0 -0
  2081. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/class_and_module_camel_case.rb +0 -0
  2082. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/constant_name.rb +0 -0
  2083. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/file_name.rb +0 -0
  2084. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +0 -0
  2085. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +0 -0
  2086. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/inclusive_language.rb +0 -0
  2087. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +0 -0
  2088. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/method_name.rb +0 -0
  2089. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/method_parameter_name.rb +0 -0
  2090. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/predicate_method.rb +0 -0
  2091. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/predicate_prefix.rb +0 -0
  2092. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +0 -0
  2093. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/variable_name.rb +0 -0
  2094. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/naming/variable_number.rb +0 -0
  2095. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/offense.rb +0 -0
  2096. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/security/compound_hash.rb +0 -0
  2097. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/security/eval.rb +0 -0
  2098. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/security/io_methods.rb +0 -0
  2099. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/security/json_load.rb +0 -0
  2100. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/security/marshal_load.rb +0 -0
  2101. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/security/open.rb +0 -0
  2102. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/security/yaml_load.rb +0 -0
  2103. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/severity.rb +0 -0
  2104. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/access_modifier_declarations.rb +0 -0
  2105. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/accessor_grouping.rb +0 -0
  2106. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/alias.rb +0 -0
  2107. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/ambiguous_endless_method_definition.rb +0 -0
  2108. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/array_coercion.rb +0 -0
  2109. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/array_first_last.rb +0 -0
  2110. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/array_intersect.rb +0 -0
  2111. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/array_intersect_with_single_element.rb +0 -0
  2112. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/array_join.rb +0 -0
  2113. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/attr.rb +0 -0
  2114. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/auto_resource_cleanup.rb +0 -0
  2115. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/bare_percent_literals.rb +0 -0
  2116. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/begin_block.rb +0 -0
  2117. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +0 -0
  2118. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/bisected_attr_accessor.rb +0 -0
  2119. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/bitwise_predicate.rb +0 -0
  2120. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/block_comments.rb +0 -0
  2121. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/case_equality.rb +0 -0
  2122. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/case_like_if.rb +0 -0
  2123. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/character_literal.rb +0 -0
  2124. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/class_and_module_children.rb +0 -0
  2125. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/class_check.rb +0 -0
  2126. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/class_equality_comparison.rb +0 -0
  2127. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/class_methods.rb +0 -0
  2128. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/class_methods_definitions.rb +0 -0
  2129. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/class_vars.rb +0 -0
  2130. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/collection_methods.rb +0 -0
  2131. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/collection_querying.rb +0 -0
  2132. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/colon_method_call.rb +0 -0
  2133. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/colon_method_definition.rb +0 -0
  2134. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/combinable_defined.rb +0 -0
  2135. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/combinable_loops.rb +0 -0
  2136. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/command_literal.rb +0 -0
  2137. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/comment_annotation.rb +0 -0
  2138. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/commented_keyword.rb +0 -0
  2139. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/comparable_between.rb +0 -0
  2140. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/comparable_clamp.rb +0 -0
  2141. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/constant_visibility.rb +0 -0
  2142. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/copyright.rb +0 -0
  2143. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/data_inheritance.rb +0 -0
  2144. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/date_time.rb +0 -0
  2145. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/def_with_parentheses.rb +0 -0
  2146. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/dig_chain.rb +0 -0
  2147. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/dir.rb +0 -0
  2148. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/dir_empty.rb +0 -0
  2149. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +0 -0
  2150. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +0 -0
  2151. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/documentation.rb +0 -0
  2152. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/documentation_method.rb +0 -0
  2153. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/double_cop_disable_directive.rb +0 -0
  2154. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/double_negation.rb +0 -0
  2155. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/each_for_simple_loop.rb +0 -0
  2156. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/each_with_object.rb +0 -0
  2157. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/empty_block_parameter.rb +0 -0
  2158. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/empty_case_condition.rb +0 -0
  2159. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/empty_else.rb +0 -0
  2160. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/empty_heredoc.rb +0 -0
  2161. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/empty_lambda_parameter.rb +0 -0
  2162. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/empty_literal.rb +0 -0
  2163. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/empty_method.rb +0 -0
  2164. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/empty_string_inside_interpolation.rb +0 -0
  2165. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/encoding.rb +0 -0
  2166. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/end_block.rb +0 -0
  2167. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/endless_method.rb +0 -0
  2168. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/env_home.rb +0 -0
  2169. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/eval_with_location.rb +0 -0
  2170. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/even_odd.rb +0 -0
  2171. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/exact_regexp_match.rb +0 -0
  2172. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/expand_path_arguments.rb +0 -0
  2173. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/explicit_block_argument.rb +0 -0
  2174. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/exponential_notation.rb +0 -0
  2175. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/fetch_env_var.rb +0 -0
  2176. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/file_empty.rb +0 -0
  2177. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/file_null.rb +0 -0
  2178. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/file_read.rb +0 -0
  2179. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/file_touch.rb +0 -0
  2180. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/file_write.rb +0 -0
  2181. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/float_division.rb +0 -0
  2182. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/for.rb +0 -0
  2183. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/format_string.rb +0 -0
  2184. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/format_string_token.rb +0 -0
  2185. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/frozen_string_literal_comment.rb +0 -0
  2186. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/global_std_stream.rb +0 -0
  2187. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/guard_clause.rb +0 -0
  2188. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_as_last_array_item.rb +0 -0
  2189. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_conversion.rb +0 -0
  2190. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_each_methods.rb +0 -0
  2191. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_except.rb +0 -0
  2192. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_fetch_chain.rb +0 -0
  2193. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_like_case.rb +0 -0
  2194. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_slice.rb +0 -0
  2195. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_syntax.rb +0 -0
  2196. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_transform_keys.rb +0 -0
  2197. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/hash_transform_values.rb +0 -0
  2198. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/identical_conditional_branches.rb +0 -0
  2199. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/if_inside_else.rb +0 -0
  2200. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +0 -0
  2201. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +0 -0
  2202. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/implicit_runtime_error.rb +0 -0
  2203. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/in_pattern_then.rb +0 -0
  2204. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/infinite_loop.rb +0 -0
  2205. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/inline_comment.rb +0 -0
  2206. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/inverse_methods.rb +0 -0
  2207. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/invertible_unless_condition.rb +0 -0
  2208. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/it_assignment.rb +0 -0
  2209. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/it_block_parameter.rb +0 -0
  2210. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/keyword_arguments_merging.rb +0 -0
  2211. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/keyword_parameters_order.rb +0 -0
  2212. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/lambda.rb +0 -0
  2213. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/lambda_call.rb +0 -0
  2214. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/line_end_concatenation.rb +0 -0
  2215. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +0 -0
  2216. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/map_into_array.rb +0 -0
  2217. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/map_join.rb +0 -0
  2218. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/map_to_hash.rb +0 -0
  2219. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/map_to_set.rb +0 -0
  2220. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +0 -0
  2221. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +0 -0
  2222. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +0 -0
  2223. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/method_called_on_do_end_block.rb +0 -0
  2224. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/method_def_parentheses.rb +0 -0
  2225. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/min_max.rb +0 -0
  2226. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/min_max_comparison.rb +0 -0
  2227. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/missing_else.rb +0 -0
  2228. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/missing_respond_to_missing.rb +0 -0
  2229. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/mixin_grouping.rb +0 -0
  2230. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/mixin_usage.rb +0 -0
  2231. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/module_function.rb +0 -0
  2232. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/module_member_existence_check.rb +0 -0
  2233. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiline_block_chain.rb +0 -0
  2234. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiline_if_modifier.rb +0 -0
  2235. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiline_if_then.rb +0 -0
  2236. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiline_in_pattern_then.rb +0 -0
  2237. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiline_memoization.rb +0 -0
  2238. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiline_method_signature.rb +0 -0
  2239. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiline_ternary_operator.rb +0 -0
  2240. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiline_when_then.rb +0 -0
  2241. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/multiple_comparison.rb +0 -0
  2242. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/negated_if.rb +0 -0
  2243. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/negated_if_else_condition.rb +0 -0
  2244. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/negated_unless.rb +0 -0
  2245. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/negated_while.rb +0 -0
  2246. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/negative_array_index.rb +0 -0
  2247. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/nested_file_dirname.rb +0 -0
  2248. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/nested_modifier.rb +0 -0
  2249. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/nested_parenthesized_calls.rb +0 -0
  2250. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/nested_ternary_operator.rb +0 -0
  2251. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/next.rb +0 -0
  2252. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/nil_comparison.rb +0 -0
  2253. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/nil_lambda.rb +0 -0
  2254. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/not.rb +0 -0
  2255. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/numbered_parameters.rb +0 -0
  2256. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/numbered_parameters_limit.rb +0 -0
  2257. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/numeric_literal_prefix.rb +0 -0
  2258. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/numeric_predicate.rb +0 -0
  2259. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/object_then.rb +0 -0
  2260. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/one_class_per_file.rb +0 -0
  2261. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/one_line_conditional.rb +0 -0
  2262. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/open_struct_use.rb +0 -0
  2263. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/operator_method_call.rb +0 -0
  2264. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/option_hash.rb +0 -0
  2265. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/optional_arguments.rb +0 -0
  2266. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/optional_boolean_parameter.rb +0 -0
  2267. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/or_assignment.rb +0 -0
  2268. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/parallel_assignment.rb +0 -0
  2269. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/parentheses_around_condition.rb +0 -0
  2270. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/partition_instead_of_double_select.rb +0 -0
  2271. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/percent_literal_delimiters.rb +0 -0
  2272. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/percent_q_literals.rb +0 -0
  2273. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/perl_backrefs.rb +0 -0
  2274. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/predicate_with_kind.rb +0 -0
  2275. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/preferred_hash_methods.rb +0 -0
  2276. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/proc.rb +0 -0
  2277. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/quoted_symbols.rb +0 -0
  2278. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/random_with_offset.rb +0 -0
  2279. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/reduce_to_hash.rb +0 -0
  2280. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_argument.rb +0 -0
  2281. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_array_constructor.rb +0 -0
  2282. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_array_flatten.rb +0 -0
  2283. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_assignment.rb +0 -0
  2284. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_begin.rb +0 -0
  2285. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_capital_w.rb +0 -0
  2286. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_condition.rb +0 -0
  2287. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_conditional.rb +0 -0
  2288. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_constant_base.rb +0 -0
  2289. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +0 -0
  2290. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +0 -0
  2291. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_exception.rb +0 -0
  2292. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_fetch_block.rb +0 -0
  2293. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +0 -0
  2294. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_filter_chain.rb +0 -0
  2295. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_format.rb +0 -0
  2296. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_freeze.rb +0 -0
  2297. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb +0 -0
  2298. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_initialize.rb +0 -0
  2299. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_interpolation.rb +0 -0
  2300. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb +0 -0
  2301. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_line_continuation.rb +0 -0
  2302. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_min_max_by.rb +0 -0
  2303. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_regexp_argument.rb +0 -0
  2304. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_regexp_character_class.rb +0 -0
  2305. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_regexp_constructor.rb +0 -0
  2306. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_regexp_escape.rb +0 -0
  2307. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_return.rb +0 -0
  2308. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_self.rb +0 -0
  2309. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_self_assignment.rb +0 -0
  2310. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_sort.rb +0 -0
  2311. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_sort_by.rb +0 -0
  2312. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_string_escape.rb +0 -0
  2313. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/redundant_struct_keyword_init.rb +0 -0
  2314. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/regexp_literal.rb +0 -0
  2315. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/require_order.rb +0 -0
  2316. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/rescue_modifier.rb +0 -0
  2317. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/rescue_standard_error.rb +0 -0
  2318. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/return_nil.rb +0 -0
  2319. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb +0 -0
  2320. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/reverse_find.rb +0 -0
  2321. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/safe_navigation_chain_length.rb +0 -0
  2322. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/sample.rb +0 -0
  2323. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/select_by_kind.rb +0 -0
  2324. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/select_by_range.rb +0 -0
  2325. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/select_by_regexp.rb +0 -0
  2326. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/self_assignment.rb +0 -0
  2327. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/semicolon.rb +0 -0
  2328. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/send.rb +0 -0
  2329. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/send_with_literal_method_name.rb +0 -0
  2330. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/signal_exception.rb +0 -0
  2331. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/single_argument_dig.rb +0 -0
  2332. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/single_line_do_end_block.rb +0 -0
  2333. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/single_line_methods.rb +0 -0
  2334. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/slicing_with_range.rb +0 -0
  2335. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/sole_nested_conditional.rb +0 -0
  2336. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/special_global_vars.rb +0 -0
  2337. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +0 -0
  2338. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/static_class.rb +0 -0
  2339. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/stderr_puts.rb +0 -0
  2340. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/string_chars.rb +0 -0
  2341. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/string_concatenation.rb +0 -0
  2342. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/string_hash_keys.rb +0 -0
  2343. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/string_literals.rb +0 -0
  2344. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/string_literals_in_interpolation.rb +0 -0
  2345. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/string_methods.rb +0 -0
  2346. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/strip.rb +0 -0
  2347. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/struct_inheritance.rb +0 -0
  2348. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/super_arguments.rb +0 -0
  2349. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/super_with_args_parentheses.rb +0 -0
  2350. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/swap_values.rb +0 -0
  2351. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/symbol_array.rb +0 -0
  2352. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/symbol_literal.rb +0 -0
  2353. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/tally_method.rb +0 -0
  2354. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/ternary_parentheses.rb +0 -0
  2355. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/top_level_method_definition.rb +0 -0
  2356. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trailing_body_on_class.rb +0 -0
  2357. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +0 -0
  2358. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trailing_body_on_module.rb +0 -0
  2359. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +0 -0
  2360. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +0 -0
  2361. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +0 -0
  2362. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +0 -0
  2363. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trailing_underscore_variable.rb +0 -0
  2364. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/trivial_accessors.rb +0 -0
  2365. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/unless_else.rb +0 -0
  2366. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/unless_logical_operators.rb +0 -0
  2367. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/unpack_first.rb +0 -0
  2368. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/variable_interpolation.rb +0 -0
  2369. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/when_then.rb +0 -0
  2370. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/while_until_do.rb +0 -0
  2371. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/while_until_modifier.rb +0 -0
  2372. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/word_array.rb +0 -0
  2373. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/yaml_file_read.rb +0 -0
  2374. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/yoda_condition.rb +0 -0
  2375. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/style/zero_length_predicate.rb +0 -0
  2376. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/team.rb +0 -0
  2377. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/util.rb +0 -0
  2378. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/utils/format_string.rb +0 -0
  2379. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/variable_force/assignment.rb +0 -0
  2380. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/variable_force/branch.rb +0 -0
  2381. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/variable_force/branchable.rb +0 -0
  2382. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/variable_force/reference.rb +0 -0
  2383. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/variable_force/scope.rb +0 -0
  2384. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/variable_force/variable.rb +0 -0
  2385. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/variable_force/variable_table.rb +0 -0
  2386. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cop/variable_force.rb +0 -0
  2387. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/cops_documentation_generator.rb +0 -0
  2388. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/core_ext/string.rb +0 -0
  2389. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/directive_comment.rb +0 -0
  2390. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/error.rb +0 -0
  2391. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/ext/comment.rb +0 -0
  2392. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/ext/processed_source.rb +0 -0
  2393. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/ext/range.rb +0 -0
  2394. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/ext/regexp_node.rb +0 -0
  2395. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/ext/regexp_parser.rb +0 -0
  2396. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/feature_loader.rb +0 -0
  2397. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/file_finder.rb +0 -0
  2398. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/file_patterns.rb +0 -0
  2399. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/auto_gen_config_formatter.rb +0 -0
  2400. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/base_formatter.rb +0 -0
  2401. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/clang_style_formatter.rb +0 -0
  2402. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/colorizable.rb +0 -0
  2403. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/emacs_style_formatter.rb +0 -0
  2404. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/file_list_formatter.rb +0 -0
  2405. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/formatter_set.rb +0 -0
  2406. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/fuubar_style_formatter.rb +0 -0
  2407. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/github_actions_formatter.rb +0 -0
  2408. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/html_formatter.rb +0 -0
  2409. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/json_formatter.rb +0 -0
  2410. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/markdown_formatter.rb +0 -0
  2411. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/offense_count_formatter.rb +0 -0
  2412. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/pacman_formatter.rb +0 -0
  2413. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/progress_formatter.rb +0 -0
  2414. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/quiet_formatter.rb +0 -0
  2415. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/simple_text_formatter.rb +0 -0
  2416. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/tap_formatter.rb +0 -0
  2417. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter/text_util.rb +0 -0
  2418. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/formatter.rb +0 -0
  2419. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lockfile.rb +0 -0
  2420. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lsp/diagnostic.rb +0 -0
  2421. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lsp/disable_comment_edits.rb +0 -0
  2422. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lsp/logger.rb +0 -0
  2423. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lsp/runtime.rb +0 -0
  2424. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lsp/server.rb +0 -0
  2425. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lsp/severity.rb +0 -0
  2426. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lsp/stdin_runner.rb +0 -0
  2427. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/lsp.rb +0 -0
  2428. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/magic_comment.rb +0 -0
  2429. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/name_similarity.rb +0 -0
  2430. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/options.rb +0 -0
  2431. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/pending_cops_reporter.rb +0 -0
  2432. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/platform.rb +0 -0
  2433. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/plugin/configuration_integrator.rb +0 -0
  2434. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/plugin/load_error.rb +0 -0
  2435. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/plugin/not_supported_error.rb +0 -0
  2436. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/plugin.rb +0 -0
  2437. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/rake_task.rb +0 -0
  2438. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/remote_config.rb +0 -0
  2439. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/rspec/cop_helper.rb +0 -0
  2440. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/rspec/expect_offense.rb +0 -0
  2441. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/rspec/parallel_formatter.rb +0 -0
  2442. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/rspec/support.rb +0 -0
  2443. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/cache.rb +0 -0
  2444. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/cli.rb +0 -0
  2445. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/client_command/base.rb +0 -0
  2446. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/client_command/exec.rb +0 -0
  2447. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/client_command/restart.rb +0 -0
  2448. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/client_command/start.rb +0 -0
  2449. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/client_command/status.rb +0 -0
  2450. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/client_command/stop.rb +0 -0
  2451. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/client_command.rb +0 -0
  2452. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/errors.rb +0 -0
  2453. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/helper.rb +0 -0
  2454. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/server_command/base.rb +0 -0
  2455. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/server_command/exec.rb +0 -0
  2456. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/server_command/stop.rb +0 -0
  2457. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/server_command.rb +0 -0
  2458. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server/socket_reader.rb +0 -0
  2459. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/server.rb +0 -0
  2460. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/string_interpreter.rb +0 -0
  2461. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/target_ruby.rb +0 -0
  2462. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/util.rb +0 -0
  2463. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/warning.rb +0 -0
  2464. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop/yaml_duplication_checker.rb +0 -0
  2465. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/rubocop.rb +0 -0
  2466. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/ruby_lsp/rubocop/addon.rb +0 -0
  2467. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.85.1 → rubocop-1.86.0}/lib/ruby_lsp/rubocop/runtime_adapter.rb +0 -0
  2468. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/LICENSE.txt +0 -0
  2469. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/README.md +0 -0
  2470. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/builder.rb +0 -0
  2471. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/builder_prism.rb +0 -0
  2472. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/ext/range.rb +0 -0
  2473. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/alias_node.rb +0 -0
  2474. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/and_asgn_node.rb +0 -0
  2475. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/and_node.rb +0 -0
  2476. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/arg_node.rb +0 -0
  2477. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/args_node.rb +0 -0
  2478. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/array_node.rb +0 -0
  2479. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/asgn_node.rb +0 -0
  2480. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/block_node.rb +0 -0
  2481. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/break_node.rb +0 -0
  2482. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/case_match_node.rb +0 -0
  2483. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/case_node.rb +0 -0
  2484. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/casgn_node.rb +0 -0
  2485. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/class_node.rb +0 -0
  2486. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/complex_node.rb +0 -0
  2487. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/const_node.rb +0 -0
  2488. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/csend_node.rb +0 -0
  2489. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/def_node.rb +0 -0
  2490. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/defined_node.rb +0 -0
  2491. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/dstr_node.rb +0 -0
  2492. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/ensure_node.rb +0 -0
  2493. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/float_node.rb +0 -0
  2494. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/for_node.rb +0 -0
  2495. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/forward_args_node.rb +0 -0
  2496. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/hash_node.rb +0 -0
  2497. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/if_node.rb +0 -0
  2498. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/in_pattern_node.rb +0 -0
  2499. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/index_node.rb +0 -0
  2500. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/indexasgn_node.rb +0 -0
  2501. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/int_node.rb +0 -0
  2502. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/keyword_begin_node.rb +0 -0
  2503. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/keyword_splat_node.rb +0 -0
  2504. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/lambda_node.rb +0 -0
  2505. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/masgn_node.rb +0 -0
  2506. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/basic_literal_node.rb +0 -0
  2507. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/binary_operator_node.rb +0 -0
  2508. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/collection_node.rb +0 -0
  2509. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/conditional_node.rb +0 -0
  2510. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/constant_node.rb +0 -0
  2511. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/descendence.rb +0 -0
  2512. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/hash_element_node.rb +0 -0
  2513. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +0 -0
  2514. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +0 -0
  2515. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/modifier_node.rb +0 -0
  2516. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/numeric_node.rb +0 -0
  2517. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/parameterized_node.rb +0 -0
  2518. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +0 -0
  2519. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/mlhs_node.rb +0 -0
  2520. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/module_node.rb +0 -0
  2521. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/next_node.rb +0 -0
  2522. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/op_asgn_node.rb +0 -0
  2523. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/or_asgn_node.rb +0 -0
  2524. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/or_node.rb +0 -0
  2525. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/pair_node.rb +0 -0
  2526. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/procarg0_node.rb +0 -0
  2527. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/range_node.rb +0 -0
  2528. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/rational_node.rb +0 -0
  2529. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/regexp_node.rb +0 -0
  2530. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/resbody_node.rb +0 -0
  2531. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/rescue_node.rb +0 -0
  2532. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/return_node.rb +0 -0
  2533. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/self_class_node.rb +0 -0
  2534. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/send_node.rb +0 -0
  2535. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/str_node.rb +0 -0
  2536. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/super_node.rb +0 -0
  2537. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/symbol_node.rb +0 -0
  2538. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/until_node.rb +0 -0
  2539. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/var_node.rb +0 -0
  2540. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/when_node.rb +0 -0
  2541. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/while_node.rb +0 -0
  2542. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node/yield_node.rb +0 -0
  2543. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node.rb +0 -0
  2544. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/builder.rb +0 -0
  2545. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/comment.rb +0 -0
  2546. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb +0 -0
  2547. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/compiler/debug.rb +0 -0
  2548. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/compiler/subcompiler.rb +0 -0
  2549. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/compiler.rb +0 -0
  2550. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/lexer.rb +0 -0
  2551. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/lexer.rex +0 -0
  2552. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/method_definer.rb +0 -0
  2553. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/node.rb +0 -0
  2554. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/parser.rb +0 -0
  2555. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/parser.y +0 -0
  2556. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/sets.rb +0 -0
  2557. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/node_pattern/with_meta.rb +0 -0
  2558. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/processed_source.rb +0 -0
  2559. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/rubocop_compatibility.rb +0 -0
  2560. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/sexp.rb +0 -0
  2561. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/token.rb +0 -0
  2562. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast/utilities/simple_forwardable.rb +0 -0
  2563. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop/ast.rb +0 -0
  2564. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-ast-1.49.0 → rubocop-ast-1.49.1}/lib/rubocop-ast.rb +0 -0
  2565. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/LICENSE +0 -0
  2566. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/api.rb +0 -0
  2567. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/assertion_failure.rb +0 -0
  2568. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/callback_registry.rb +0 -0
  2569. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/config.rb +0 -0
  2570. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/cucumber.rb +0 -0
  2571. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/deprecation.rb +0 -0
  2572. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/errors.rb +0 -0
  2573. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/async_http_client_adapter.rb +0 -0
  2574. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +0 -0
  2575. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/excon_adapter.rb +0 -0
  2576. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/http_lib_adapter.rb +0 -0
  2577. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb +0 -0
  2578. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/http_rb/client.rb +0 -0
  2579. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/http_rb/request.rb +0 -0
  2580. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/http_rb_adapter.rb +0 -0
  2581. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/httpclient_adapter.rb +0 -0
  2582. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/manticore_adapter.rb +0 -0
  2583. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/net_http.rb +0 -0
  2584. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/net_http_response.rb +0 -0
  2585. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/patron_adapter.rb +0 -0
  2586. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +0 -0
  2587. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/matchers/any_arg_matcher.rb +0 -0
  2588. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/matchers/hash_argument_matcher.rb +0 -0
  2589. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/matchers/hash_excluding_matcher.rb +0 -0
  2590. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/matchers/hash_including_matcher.rb +0 -0
  2591. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/minitest.rb +0 -0
  2592. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/rack_response.rb +0 -0
  2593. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/request_body_diff.rb +0 -0
  2594. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/request_execution_verifier.rb +0 -0
  2595. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/request_pattern.rb +0 -0
  2596. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/request_registry.rb +0 -0
  2597. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/request_signature.rb +0 -0
  2598. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/request_signature_snippet.rb +0 -0
  2599. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/request_stub.rb +0 -0
  2600. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/response.rb +0 -0
  2601. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/responses_sequence.rb +0 -0
  2602. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/rspec/matchers/request_pattern_matcher.rb +0 -0
  2603. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/rspec/matchers/webmock_matcher.rb +0 -0
  2604. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/rspec/matchers.rb +0 -0
  2605. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/rspec.rb +0 -0
  2606. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/stub_registry.rb +0 -0
  2607. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/stub_request_snippet.rb +0 -0
  2608. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/test_unit.rb +0 -0
  2609. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/hash_counter.rb +0 -0
  2610. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/hash_keys_stringifier.rb +0 -0
  2611. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/hash_validator.rb +0 -0
  2612. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/headers.rb +0 -0
  2613. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/parsers/json.rb +0 -0
  2614. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/parsers/parse_error.rb +0 -0
  2615. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/parsers/xml.rb +0 -0
  2616. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/query_mapper.rb +0 -0
  2617. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/uri.rb +0 -0
  2618. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/values_stringifier.rb +0 -0
  2619. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/util/version_checker.rb +0 -0
  2620. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock/webmock.rb +0 -0
  2621. /data/vendor/bundle/ruby/4.0.0/gems/{webmock-3.26.1 → webmock-3.26.2}/lib/webmock.rb +0 -0
@@ -0,0 +1,3266 @@
1
+ #!/usr/bin/env python
2
+ #
3
+ # Copyright 2008-2009 Jose Fonseca
4
+ #
5
+ # This program is free software: you can redistribute it and/or modify it
6
+ # under the terms of the GNU Lesser General Public License as published
7
+ # by the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public License
16
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ #
18
+
19
+ """Generate a dot graph from the output of several profilers."""
20
+
21
+ __author__ = "Jose Fonseca et al"
22
+
23
+
24
+ import sys
25
+ import math
26
+ import os.path
27
+ import re
28
+ import textwrap
29
+ import optparse
30
+ import xml.parsers.expat
31
+ import collections
32
+ import locale
33
+
34
+
35
+ # Python 2.x/3.x compatibility
36
+ if sys.version_info[0] >= 3:
37
+ PYTHON_3 = True
38
+ def compat_iteritems(x): return x.items() # No iteritems() in Python 3
39
+ def compat_itervalues(x): return x.values() # No itervalues() in Python 3
40
+ def compat_keys(x): return list(x.keys()) # keys() is a generator in Python 3
41
+ basestring = str # No class basestring in Python 3
42
+ unichr = chr # No unichr in Python 3
43
+ xrange = range # No xrange in Python 3
44
+ else:
45
+ PYTHON_3 = False
46
+ def compat_iteritems(x): return x.iteritems()
47
+ def compat_itervalues(x): return x.itervalues()
48
+ def compat_keys(x): return x.keys()
49
+
50
+
51
+ try:
52
+ # Debugging helper module
53
+ import debug
54
+ except ImportError:
55
+ pass
56
+
57
+
58
+ MULTIPLICATION_SIGN = unichr(0xd7)
59
+
60
+
61
+ def times(x):
62
+ return "%u%s" % (x, MULTIPLICATION_SIGN)
63
+
64
+ def percentage(p):
65
+ return "%.02f%%" % (p*100.0,)
66
+
67
+ def add(a, b):
68
+ return a + b
69
+
70
+ def equal(a, b):
71
+ if a == b:
72
+ return a
73
+ else:
74
+ return None
75
+
76
+ def fail(a, b):
77
+ assert False
78
+
79
+
80
+ tol = 2 ** -23
81
+
82
+ def ratio(numerator, denominator):
83
+ try:
84
+ ratio = float(numerator)/float(denominator)
85
+ except ZeroDivisionError:
86
+ # 0/0 is undefined, but 1.0 yields more useful results
87
+ return 1.0
88
+ if ratio < 0.0:
89
+ if ratio < -tol:
90
+ sys.stderr.write('warning: negative ratio (%s/%s)\n' % (numerator, denominator))
91
+ return 0.0
92
+ if ratio > 1.0:
93
+ if ratio > 1.0 + tol:
94
+ sys.stderr.write('warning: ratio greater than one (%s/%s)\n' % (numerator, denominator))
95
+ return 1.0
96
+ return ratio
97
+
98
+
99
+ class UndefinedEvent(Exception):
100
+ """Raised when attempting to get an event which is undefined."""
101
+
102
+ def __init__(self, event):
103
+ Exception.__init__(self)
104
+ self.event = event
105
+
106
+ def __str__(self):
107
+ return 'unspecified event %s' % self.event.name
108
+
109
+
110
+ class Event(object):
111
+ """Describe a kind of event, and its basic operations."""
112
+
113
+ def __init__(self, name, null, aggregator, formatter = str):
114
+ self.name = name
115
+ self._null = null
116
+ self._aggregator = aggregator
117
+ self._formatter = formatter
118
+
119
+ def __eq__(self, other):
120
+ return self is other
121
+
122
+ def __hash__(self):
123
+ return id(self)
124
+
125
+ def null(self):
126
+ return self._null
127
+
128
+ def aggregate(self, val1, val2):
129
+ """Aggregate two event values."""
130
+ assert val1 is not None
131
+ assert val2 is not None
132
+ return self._aggregator(val1, val2)
133
+
134
+ def format(self, val):
135
+ """Format an event value."""
136
+ assert val is not None
137
+ return self._formatter(val)
138
+
139
+
140
+ CALLS = Event("Calls", 0, add, times)
141
+ SAMPLES = Event("Samples", 0, add, times)
142
+ SAMPLES2 = Event("Samples", 0, add, times)
143
+
144
+ # Count of samples where a given function was either executing or on the stack.
145
+ # This is used to calculate the total time ratio according to the
146
+ # straightforward method described in Mike Dunlavey's answer to
147
+ # stackoverflow.com/questions/1777556/alternatives-to-gprof, item 4 (the myth
148
+ # "that recursion is a tricky confusing issue"), last edited 2012-08-30: it's
149
+ # just the ratio of TOTAL_SAMPLES over the number of samples in the profile.
150
+ #
151
+ # Used only when totalMethod == callstacks
152
+ TOTAL_SAMPLES = Event("Samples", 0, add, times)
153
+
154
+ TIME = Event("Time", 0.0, add, lambda x: '(' + str(x) + ')')
155
+ TIME_RATIO = Event("Time ratio", 0.0, add, lambda x: '(' + percentage(x) + ')')
156
+ TOTAL_TIME = Event("Total time", 0.0, fail)
157
+ TOTAL_TIME_RATIO = Event("Total time ratio", 0.0, fail, percentage)
158
+
159
+ totalMethod = 'callratios'
160
+
161
+
162
+ class Object(object):
163
+ """Base class for all objects in profile which can store events."""
164
+
165
+ def __init__(self, events=None):
166
+ if events is None:
167
+ self.events = {}
168
+ else:
169
+ self.events = events
170
+
171
+ def __hash__(self):
172
+ return id(self)
173
+
174
+ def __eq__(self, other):
175
+ return self is other
176
+
177
+ def __contains__(self, event):
178
+ return event in self.events
179
+
180
+ def __getitem__(self, event):
181
+ try:
182
+ return self.events[event]
183
+ except KeyError:
184
+ raise UndefinedEvent(event)
185
+
186
+ def __setitem__(self, event, value):
187
+ if value is None:
188
+ if event in self.events:
189
+ del self.events[event]
190
+ else:
191
+ self.events[event] = value
192
+
193
+
194
+ class Call(Object):
195
+ """A call between functions.
196
+
197
+ There should be at most one call object for every pair of functions.
198
+ """
199
+
200
+ def __init__(self, callee_id):
201
+ Object.__init__(self)
202
+ self.callee_id = callee_id
203
+ self.ratio = None
204
+ self.weight = None
205
+
206
+
207
+ class Function(Object):
208
+ """A function."""
209
+
210
+ def __init__(self, id, name):
211
+ Object.__init__(self)
212
+ self.id = id
213
+ self.name = name
214
+ self.module = None
215
+ self.process = None
216
+ self.calls = {}
217
+ self.called = None
218
+ self.weight = None
219
+ self.cycle = None
220
+
221
+ def add_call(self, call):
222
+ if call.callee_id in self.calls:
223
+ sys.stderr.write('warning: overwriting call from function %s to %s\n' % (str(self.id), str(call.callee_id)))
224
+ self.calls[call.callee_id] = call
225
+
226
+ def get_call(self, callee_id):
227
+ if not callee_id in self.calls:
228
+ call = Call(callee_id)
229
+ call[SAMPLES] = 0
230
+ call[SAMPLES2] = 0
231
+ call[CALLS] = 0
232
+ self.calls[callee_id] = call
233
+ return self.calls[callee_id]
234
+
235
+ _parenthesis_re = re.compile(r'\([^()]*\)')
236
+ _angles_re = re.compile(r'<[^<>]*>')
237
+ _const_re = re.compile(r'\s+const$')
238
+
239
+ def stripped_name(self):
240
+ """Remove extraneous information from C++ demangled function names."""
241
+
242
+ name = self.name
243
+
244
+ # Strip function parameters from name by recursively removing paired parenthesis
245
+ while True:
246
+ name, n = self._parenthesis_re.subn('', name)
247
+ if not n:
248
+ break
249
+
250
+ # Strip const qualifier
251
+ name = self._const_re.sub('', name)
252
+
253
+ # Strip template parameters from name by recursively removing paired angles
254
+ while True:
255
+ name, n = self._angles_re.subn('', name)
256
+ if not n:
257
+ break
258
+
259
+ return name
260
+
261
+ # TODO: write utility functions
262
+
263
+ def __repr__(self):
264
+ return self.name
265
+
266
+
267
+ class Cycle(Object):
268
+ """A cycle made from recursive function calls."""
269
+
270
+ def __init__(self):
271
+ Object.__init__(self)
272
+ # XXX: Do cycles need an id?
273
+ self.functions = set()
274
+
275
+ def add_function(self, function):
276
+ assert function not in self.functions
277
+ self.functions.add(function)
278
+ # XXX: Aggregate events?
279
+ if function.cycle is not None:
280
+ for other in function.cycle.functions:
281
+ if function not in self.functions:
282
+ self.add_function(other)
283
+ function.cycle = self
284
+
285
+
286
+ class Profile(Object):
287
+ """The whole profile."""
288
+
289
+ def __init__(self):
290
+ Object.__init__(self)
291
+ self.functions = {}
292
+ self.cycles = []
293
+
294
+ def add_function(self, function):
295
+ if function.id in self.functions:
296
+ sys.stderr.write('warning: overwriting function %s (id %s)\n' % (function.name, str(function.id)))
297
+ self.functions[function.id] = function
298
+
299
+ def add_cycle(self, cycle):
300
+ self.cycles.append(cycle)
301
+
302
+ def validate(self):
303
+ """Validate the edges."""
304
+
305
+ for function in compat_itervalues(self.functions):
306
+ for callee_id in compat_keys(function.calls):
307
+ assert function.calls[callee_id].callee_id == callee_id
308
+ if callee_id not in self.functions:
309
+ sys.stderr.write('warning: call to undefined function %s from function %s\n' % (str(callee_id), function.name))
310
+ del function.calls[callee_id]
311
+
312
+ def find_cycles(self):
313
+ """Find cycles using Tarjan's strongly connected components algorithm."""
314
+
315
+ # Apply the Tarjan's algorithm successively until all functions are visited
316
+ visited = set()
317
+ for function in compat_itervalues(self.functions):
318
+ if function not in visited:
319
+ self._tarjan(function, 0, [], {}, {}, visited)
320
+ cycles = []
321
+ for function in compat_itervalues(self.functions):
322
+ if function.cycle is not None and function.cycle not in cycles:
323
+ cycles.append(function.cycle)
324
+ self.cycles = cycles
325
+ if 0:
326
+ for cycle in cycles:
327
+ sys.stderr.write("Cycle:\n")
328
+ for member in cycle.functions:
329
+ sys.stderr.write("\tFunction %s\n" % member.name)
330
+
331
+ def prune_root(self, root):
332
+ visited = set()
333
+ frontier = set([root])
334
+ while len(frontier) > 0:
335
+ node = frontier.pop()
336
+ visited.add(node)
337
+ f = self.functions[node]
338
+ newNodes = f.calls.keys()
339
+ frontier = frontier.union(set(newNodes) - visited)
340
+ subtreeFunctions = {}
341
+ for n in visited:
342
+ subtreeFunctions[n] = self.functions[n]
343
+ self.functions = subtreeFunctions
344
+
345
+ def prune_leaf(self, leaf):
346
+ edgesUp = collections.defaultdict(set)
347
+ for f in self.functions.keys():
348
+ for n in self.functions[f].calls.keys():
349
+ edgesUp[n].add(f)
350
+ # build the tree up
351
+ visited = set()
352
+ frontier = set([leaf])
353
+ while len(frontier) > 0:
354
+ node = frontier.pop()
355
+ visited.add(node)
356
+ frontier = frontier.union(edgesUp[node] - visited)
357
+ downTree = set(self.functions.keys())
358
+ upTree = visited
359
+ path = downTree.intersection(upTree)
360
+ pathFunctions = {}
361
+ for n in path:
362
+ f = self.functions[n]
363
+ newCalls = {}
364
+ for c in f.calls.keys():
365
+ if c in path:
366
+ newCalls[c] = f.calls[c]
367
+ f.calls = newCalls
368
+ pathFunctions[n] = f
369
+ self.functions = pathFunctions
370
+
371
+
372
+ def getFunctionId(self, funcName):
373
+ for f in self.functions:
374
+ if self.functions[f].name == funcName:
375
+ return f
376
+ return False
377
+
378
+ def _tarjan(self, function, order, stack, orders, lowlinks, visited):
379
+ """Tarjan's strongly connected components algorithm.
380
+
381
+ See also:
382
+ - http://en.wikipedia.org/wiki/Tarjan's_strongly_connected_components_algorithm
383
+ """
384
+
385
+ visited.add(function)
386
+ orders[function] = order
387
+ lowlinks[function] = order
388
+ order += 1
389
+ pos = len(stack)
390
+ stack.append(function)
391
+ for call in compat_itervalues(function.calls):
392
+ callee = self.functions[call.callee_id]
393
+ # TODO: use a set to optimize lookup
394
+ if callee not in orders:
395
+ order = self._tarjan(callee, order, stack, orders, lowlinks, visited)
396
+ lowlinks[function] = min(lowlinks[function], lowlinks[callee])
397
+ elif callee in stack:
398
+ lowlinks[function] = min(lowlinks[function], orders[callee])
399
+ if lowlinks[function] == orders[function]:
400
+ # Strongly connected component found
401
+ members = stack[pos:]
402
+ del stack[pos:]
403
+ if len(members) > 1:
404
+ cycle = Cycle()
405
+ for member in members:
406
+ cycle.add_function(member)
407
+ return order
408
+
409
+ def call_ratios(self, event):
410
+ # Aggregate for incoming calls
411
+ cycle_totals = {}
412
+ for cycle in self.cycles:
413
+ cycle_totals[cycle] = 0.0
414
+ function_totals = {}
415
+ for function in compat_itervalues(self.functions):
416
+ function_totals[function] = 0.0
417
+
418
+ # Pass 1: function_total gets the sum of call[event] for all
419
+ # incoming arrows. Same for cycle_total for all arrows
420
+ # that are coming into the *cycle* but are not part of it.
421
+ for function in compat_itervalues(self.functions):
422
+ for call in compat_itervalues(function.calls):
423
+ if call.callee_id != function.id:
424
+ callee = self.functions[call.callee_id]
425
+ if event in call.events:
426
+ function_totals[callee] += call[event]
427
+ if callee.cycle is not None and callee.cycle is not function.cycle:
428
+ cycle_totals[callee.cycle] += call[event]
429
+ else:
430
+ sys.stderr.write("call_ratios: No data for " + function.name + " call to " + callee.name + "\n")
431
+
432
+ # Pass 2: Compute the ratios. Each call[event] is scaled by the
433
+ # function_total of the callee. Calls into cycles use the
434
+ # cycle_total, but not calls within cycles.
435
+ for function in compat_itervalues(self.functions):
436
+ for call in compat_itervalues(function.calls):
437
+ assert call.ratio is None
438
+ if call.callee_id != function.id:
439
+ callee = self.functions[call.callee_id]
440
+ if event in call.events:
441
+ if callee.cycle is not None and callee.cycle is not function.cycle:
442
+ total = cycle_totals[callee.cycle]
443
+ else:
444
+ total = function_totals[callee]
445
+ call.ratio = ratio(call[event], total)
446
+ else:
447
+ # Warnings here would only repeat those issued above.
448
+ call.ratio = 0.0
449
+
450
+ def integrate(self, outevent, inevent):
451
+ """Propagate function time ratio along the function calls.
452
+
453
+ Must be called after finding the cycles.
454
+
455
+ See also:
456
+ - http://citeseer.ist.psu.edu/graham82gprof.html
457
+ """
458
+
459
+ # Sanity checking
460
+ assert outevent not in self
461
+ for function in compat_itervalues(self.functions):
462
+ assert outevent not in function
463
+ assert inevent in function
464
+ for call in compat_itervalues(function.calls):
465
+ assert outevent not in call
466
+ if call.callee_id != function.id:
467
+ assert call.ratio is not None
468
+
469
+ # Aggregate the input for each cycle
470
+ for cycle in self.cycles:
471
+ total = inevent.null()
472
+ for function in compat_itervalues(self.functions):
473
+ total = inevent.aggregate(total, function[inevent])
474
+ self[inevent] = total
475
+
476
+ # Integrate along the edges
477
+ total = inevent.null()
478
+ for function in compat_itervalues(self.functions):
479
+ total = inevent.aggregate(total, function[inevent])
480
+ self._integrate_function(function, outevent, inevent)
481
+ self[outevent] = total
482
+
483
+ def _integrate_function(self, function, outevent, inevent):
484
+ if function.cycle is not None:
485
+ return self._integrate_cycle(function.cycle, outevent, inevent)
486
+ else:
487
+ if outevent not in function:
488
+ total = function[inevent]
489
+ for call in compat_itervalues(function.calls):
490
+ if call.callee_id != function.id:
491
+ total += self._integrate_call(call, outevent, inevent)
492
+ function[outevent] = total
493
+ return function[outevent]
494
+
495
+ def _integrate_call(self, call, outevent, inevent):
496
+ assert outevent not in call
497
+ assert call.ratio is not None
498
+ callee = self.functions[call.callee_id]
499
+ subtotal = call.ratio *self._integrate_function(callee, outevent, inevent)
500
+ call[outevent] = subtotal
501
+ return subtotal
502
+
503
+ def _integrate_cycle(self, cycle, outevent, inevent):
504
+ if outevent not in cycle:
505
+
506
+ # Compute the outevent for the whole cycle
507
+ total = inevent.null()
508
+ for member in cycle.functions:
509
+ subtotal = member[inevent]
510
+ for call in compat_itervalues(member.calls):
511
+ callee = self.functions[call.callee_id]
512
+ if callee.cycle is not cycle:
513
+ subtotal += self._integrate_call(call, outevent, inevent)
514
+ total += subtotal
515
+ cycle[outevent] = total
516
+
517
+ # Compute the time propagated to callers of this cycle
518
+ callees = {}
519
+ for function in compat_itervalues(self.functions):
520
+ if function.cycle is not cycle:
521
+ for call in compat_itervalues(function.calls):
522
+ callee = self.functions[call.callee_id]
523
+ if callee.cycle is cycle:
524
+ try:
525
+ callees[callee] += call.ratio
526
+ except KeyError:
527
+ callees[callee] = call.ratio
528
+
529
+ for member in cycle.functions:
530
+ member[outevent] = outevent.null()
531
+
532
+ for callee, call_ratio in compat_iteritems(callees):
533
+ ranks = {}
534
+ call_ratios = {}
535
+ partials = {}
536
+ self._rank_cycle_function(cycle, callee, 0, ranks)
537
+ self._call_ratios_cycle(cycle, callee, ranks, call_ratios, set())
538
+ partial = self._integrate_cycle_function(cycle, callee, call_ratio, partials, ranks, call_ratios, outevent, inevent)
539
+ assert partial == max(partials.values())
540
+ assert not total or abs(1.0 - partial/(call_ratio*total)) <= 0.001
541
+
542
+ return cycle[outevent]
543
+
544
+ def _rank_cycle_function(self, cycle, function, rank, ranks):
545
+ if function not in ranks or ranks[function] > rank:
546
+ ranks[function] = rank
547
+ for call in compat_itervalues(function.calls):
548
+ if call.callee_id != function.id:
549
+ callee = self.functions[call.callee_id]
550
+ if callee.cycle is cycle:
551
+ self._rank_cycle_function(cycle, callee, rank + 1, ranks)
552
+
553
+ def _call_ratios_cycle(self, cycle, function, ranks, call_ratios, visited):
554
+ if function not in visited:
555
+ visited.add(function)
556
+ for call in compat_itervalues(function.calls):
557
+ if call.callee_id != function.id:
558
+ callee = self.functions[call.callee_id]
559
+ if callee.cycle is cycle:
560
+ if ranks[callee] > ranks[function]:
561
+ call_ratios[callee] = call_ratios.get(callee, 0.0) + call.ratio
562
+ self._call_ratios_cycle(cycle, callee, ranks, call_ratios, visited)
563
+
564
+ def _integrate_cycle_function(self, cycle, function, partial_ratio, partials, ranks, call_ratios, outevent, inevent):
565
+ if function not in partials:
566
+ partial = partial_ratio*function[inevent]
567
+ for call in compat_itervalues(function.calls):
568
+ if call.callee_id != function.id:
569
+ callee = self.functions[call.callee_id]
570
+ if callee.cycle is not cycle:
571
+ assert outevent in call
572
+ partial += partial_ratio*call[outevent]
573
+ else:
574
+ if ranks[callee] > ranks[function]:
575
+ callee_partial = self._integrate_cycle_function(cycle, callee, partial_ratio, partials, ranks, call_ratios, outevent, inevent)
576
+ call_ratio = ratio(call.ratio, call_ratios[callee])
577
+ call_partial = call_ratio*callee_partial
578
+ try:
579
+ call[outevent] += call_partial
580
+ except UndefinedEvent:
581
+ call[outevent] = call_partial
582
+ partial += call_partial
583
+ partials[function] = partial
584
+ try:
585
+ function[outevent] += partial
586
+ except UndefinedEvent:
587
+ function[outevent] = partial
588
+ return partials[function]
589
+
590
+ def aggregate(self, event):
591
+ """Aggregate an event for the whole profile."""
592
+
593
+ total = event.null()
594
+ for function in compat_itervalues(self.functions):
595
+ try:
596
+ total = event.aggregate(total, function[event])
597
+ except UndefinedEvent:
598
+ return
599
+ self[event] = total
600
+
601
+ def ratio(self, outevent, inevent):
602
+ assert outevent not in self
603
+ assert inevent in self
604
+ for function in compat_itervalues(self.functions):
605
+ assert outevent not in function
606
+ assert inevent in function
607
+ function[outevent] = ratio(function[inevent], self[inevent])
608
+ for call in compat_itervalues(function.calls):
609
+ assert outevent not in call
610
+ if inevent in call:
611
+ call[outevent] = ratio(call[inevent], self[inevent])
612
+ self[outevent] = 1.0
613
+
614
+ def prune(self, node_thres, edge_thres):
615
+ """Prune the profile"""
616
+
617
+ # compute the prune ratios
618
+ for function in compat_itervalues(self.functions):
619
+ try:
620
+ function.weight = function[TOTAL_TIME_RATIO]
621
+ except UndefinedEvent:
622
+ pass
623
+
624
+ for call in compat_itervalues(function.calls):
625
+ callee = self.functions[call.callee_id]
626
+
627
+ if TOTAL_TIME_RATIO in call:
628
+ # handle exact cases first
629
+ call.weight = call[TOTAL_TIME_RATIO]
630
+ else:
631
+ try:
632
+ # make a safe estimate
633
+ call.weight = min(function[TOTAL_TIME_RATIO], callee[TOTAL_TIME_RATIO])
634
+ except UndefinedEvent:
635
+ pass
636
+
637
+ # prune the nodes
638
+ for function_id in compat_keys(self.functions):
639
+ function = self.functions[function_id]
640
+ if function.weight is not None:
641
+ if function.weight < node_thres:
642
+ del self.functions[function_id]
643
+
644
+ # prune the egdes
645
+ for function in compat_itervalues(self.functions):
646
+ for callee_id in compat_keys(function.calls):
647
+ call = function.calls[callee_id]
648
+ if callee_id not in self.functions or call.weight is not None and call.weight < edge_thres:
649
+ del function.calls[callee_id]
650
+
651
+ def dump(self):
652
+ for function in compat_itervalues(self.functions):
653
+ sys.stderr.write('Function %s:\n' % (function.name,))
654
+ self._dump_events(function.events)
655
+ for call in compat_itervalues(function.calls):
656
+ callee = self.functions[call.callee_id]
657
+ sys.stderr.write(' Call %s:\n' % (callee.name,))
658
+ self._dump_events(call.events)
659
+ for cycle in self.cycles:
660
+ sys.stderr.write('Cycle:\n')
661
+ self._dump_events(cycle.events)
662
+ for function in cycle.functions:
663
+ sys.stderr.write(' Function %s\n' % (function.name,))
664
+
665
+ def _dump_events(self, events):
666
+ for event, value in compat_iteritems(events):
667
+ sys.stderr.write(' %s: %s\n' % (event.name, event.format(value)))
668
+
669
+
670
+ class Struct:
671
+ """Masquerade a dictionary with a structure-like behavior."""
672
+
673
+ def __init__(self, attrs = None):
674
+ if attrs is None:
675
+ attrs = {}
676
+ self.__dict__['_attrs'] = attrs
677
+
678
+ def __getattr__(self, name):
679
+ try:
680
+ return self._attrs[name]
681
+ except KeyError:
682
+ raise AttributeError(name)
683
+
684
+ def __setattr__(self, name, value):
685
+ self._attrs[name] = value
686
+
687
+ def __str__(self):
688
+ return str(self._attrs)
689
+
690
+ def __repr__(self):
691
+ return repr(self._attrs)
692
+
693
+
694
+ class ParseError(Exception):
695
+ """Raised when parsing to signal mismatches."""
696
+
697
+ def __init__(self, msg, line):
698
+ self.msg = msg
699
+ # TODO: store more source line information
700
+ self.line = line
701
+
702
+ def __str__(self):
703
+ return '%s: %r' % (self.msg, self.line)
704
+
705
+
706
+ class Parser:
707
+ """Parser interface."""
708
+
709
+ stdinInput = True
710
+ multipleInput = False
711
+
712
+ def __init__(self):
713
+ pass
714
+
715
+ def parse(self):
716
+ raise NotImplementedError
717
+
718
+
719
+ class LineParser(Parser):
720
+ """Base class for parsers that read line-based formats."""
721
+
722
+ def __init__(self, stream):
723
+ Parser.__init__(self)
724
+ self._stream = stream
725
+ self.__line = None
726
+ self.__eof = False
727
+ self.line_no = 0
728
+
729
+ def readline(self):
730
+ line = self._stream.readline()
731
+ if not line:
732
+ self.__line = ''
733
+ self.__eof = True
734
+ else:
735
+ self.line_no += 1
736
+ line = line.rstrip('\r\n')
737
+ if not PYTHON_3:
738
+ encoding = self._stream.encoding
739
+ if encoding is None:
740
+ encoding = locale.getpreferredencoding()
741
+ line = line.decode(encoding)
742
+ self.__line = line
743
+
744
+ def lookahead(self):
745
+ assert self.__line is not None
746
+ return self.__line
747
+
748
+ def consume(self):
749
+ assert self.__line is not None
750
+ line = self.__line
751
+ self.readline()
752
+ return line
753
+
754
+ def eof(self):
755
+ assert self.__line is not None
756
+ return self.__eof
757
+
758
+
759
+ XML_ELEMENT_START, XML_ELEMENT_END, XML_CHARACTER_DATA, XML_EOF = range(4)
760
+
761
+
762
+ class XmlToken:
763
+
764
+ def __init__(self, type, name_or_data, attrs = None, line = None, column = None):
765
+ assert type in (XML_ELEMENT_START, XML_ELEMENT_END, XML_CHARACTER_DATA, XML_EOF)
766
+ self.type = type
767
+ self.name_or_data = name_or_data
768
+ self.attrs = attrs
769
+ self.line = line
770
+ self.column = column
771
+
772
+ def __str__(self):
773
+ if self.type == XML_ELEMENT_START:
774
+ return '<' + self.name_or_data + ' ...>'
775
+ if self.type == XML_ELEMENT_END:
776
+ return '</' + self.name_or_data + '>'
777
+ if self.type == XML_CHARACTER_DATA:
778
+ return self.name_or_data
779
+ if self.type == XML_EOF:
780
+ return 'end of file'
781
+ assert 0
782
+
783
+
784
+ class XmlTokenizer:
785
+ """Expat based XML tokenizer."""
786
+
787
+ def __init__(self, fp, skip_ws = True):
788
+ self.fp = fp
789
+ self.tokens = []
790
+ self.index = 0
791
+ self.final = False
792
+ self.skip_ws = skip_ws
793
+
794
+ self.character_pos = 0, 0
795
+ self.character_data = ''
796
+
797
+ self.parser = xml.parsers.expat.ParserCreate()
798
+ self.parser.StartElementHandler = self.handle_element_start
799
+ self.parser.EndElementHandler = self.handle_element_end
800
+ self.parser.CharacterDataHandler = self.handle_character_data
801
+
802
+ def handle_element_start(self, name, attributes):
803
+ self.finish_character_data()
804
+ line, column = self.pos()
805
+ token = XmlToken(XML_ELEMENT_START, name, attributes, line, column)
806
+ self.tokens.append(token)
807
+
808
+ def handle_element_end(self, name):
809
+ self.finish_character_data()
810
+ line, column = self.pos()
811
+ token = XmlToken(XML_ELEMENT_END, name, None, line, column)
812
+ self.tokens.append(token)
813
+
814
+ def handle_character_data(self, data):
815
+ if not self.character_data:
816
+ self.character_pos = self.pos()
817
+ self.character_data += data
818
+
819
+ def finish_character_data(self):
820
+ if self.character_data:
821
+ if not self.skip_ws or not self.character_data.isspace():
822
+ line, column = self.character_pos
823
+ token = XmlToken(XML_CHARACTER_DATA, self.character_data, None, line, column)
824
+ self.tokens.append(token)
825
+ self.character_data = ''
826
+
827
+ def next(self):
828
+ size = 16*1024
829
+ while self.index >= len(self.tokens) and not self.final:
830
+ self.tokens = []
831
+ self.index = 0
832
+ data = self.fp.read(size)
833
+ self.final = len(data) < size
834
+ try:
835
+ self.parser.Parse(data, self.final)
836
+ except xml.parsers.expat.ExpatError as e:
837
+ #if e.code == xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTS:
838
+ if e.code == 3:
839
+ pass
840
+ else:
841
+ raise e
842
+ if self.index >= len(self.tokens):
843
+ line, column = self.pos()
844
+ token = XmlToken(XML_EOF, None, None, line, column)
845
+ else:
846
+ token = self.tokens[self.index]
847
+ self.index += 1
848
+ return token
849
+
850
+ def pos(self):
851
+ return self.parser.CurrentLineNumber, self.parser.CurrentColumnNumber
852
+
853
+
854
+ class XmlTokenMismatch(Exception):
855
+
856
+ def __init__(self, expected, found):
857
+ self.expected = expected
858
+ self.found = found
859
+
860
+ def __str__(self):
861
+ return '%u:%u: %s expected, %s found' % (self.found.line, self.found.column, str(self.expected), str(self.found))
862
+
863
+
864
+ class XmlParser(Parser):
865
+ """Base XML document parser."""
866
+
867
+ def __init__(self, fp):
868
+ Parser.__init__(self)
869
+ self.tokenizer = XmlTokenizer(fp)
870
+ self.consume()
871
+
872
+ def consume(self):
873
+ self.token = self.tokenizer.next()
874
+
875
+ def match_element_start(self, name):
876
+ return self.token.type == XML_ELEMENT_START and self.token.name_or_data == name
877
+
878
+ def match_element_end(self, name):
879
+ return self.token.type == XML_ELEMENT_END and self.token.name_or_data == name
880
+
881
+ def element_start(self, name):
882
+ while self.token.type == XML_CHARACTER_DATA:
883
+ self.consume()
884
+ if self.token.type != XML_ELEMENT_START:
885
+ raise XmlTokenMismatch(XmlToken(XML_ELEMENT_START, name), self.token)
886
+ if self.token.name_or_data != name:
887
+ raise XmlTokenMismatch(XmlToken(XML_ELEMENT_START, name), self.token)
888
+ attrs = self.token.attrs
889
+ self.consume()
890
+ return attrs
891
+
892
+ def element_end(self, name):
893
+ while self.token.type == XML_CHARACTER_DATA:
894
+ self.consume()
895
+ if self.token.type != XML_ELEMENT_END:
896
+ raise XmlTokenMismatch(XmlToken(XML_ELEMENT_END, name), self.token)
897
+ if self.token.name_or_data != name:
898
+ raise XmlTokenMismatch(XmlToken(XML_ELEMENT_END, name), self.token)
899
+ self.consume()
900
+
901
+ def character_data(self, strip = True):
902
+ data = ''
903
+ while self.token.type == XML_CHARACTER_DATA:
904
+ data += self.token.name_or_data
905
+ self.consume()
906
+ if strip:
907
+ data = data.strip()
908
+ return data
909
+
910
+
911
+ class GprofParser(Parser):
912
+ """Parser for GNU gprof output.
913
+
914
+ See also:
915
+ - Chapter "Interpreting gprof's Output" from the GNU gprof manual
916
+ http://sourceware.org/binutils/docs-2.18/gprof/Call-Graph.html#Call-Graph
917
+ - File "cg_print.c" from the GNU gprof source code
918
+ http://sourceware.org/cgi-bin/cvsweb.cgi/~checkout~/src/gprof/cg_print.c?rev=1.12&cvsroot=src
919
+ """
920
+
921
+ def __init__(self, fp):
922
+ Parser.__init__(self)
923
+ self.fp = fp
924
+ self.functions = {}
925
+ self.cycles = {}
926
+
927
+ def readline(self):
928
+ line = self.fp.readline()
929
+ if not line:
930
+ sys.stderr.write('error: unexpected end of file\n')
931
+ sys.exit(1)
932
+ line = line.rstrip('\r\n')
933
+ return line
934
+
935
+ _int_re = re.compile(r'^\d+$')
936
+ _float_re = re.compile(r'^\d+\.\d+$')
937
+
938
+ def translate(self, mo):
939
+ """Extract a structure from a match object, while translating the types in the process."""
940
+ attrs = {}
941
+ groupdict = mo.groupdict()
942
+ for name, value in compat_iteritems(groupdict):
943
+ if value is None:
944
+ value = None
945
+ elif self._int_re.match(value):
946
+ value = int(value)
947
+ elif self._float_re.match(value):
948
+ value = float(value)
949
+ attrs[name] = (value)
950
+ return Struct(attrs)
951
+
952
+ _cg_header_re = re.compile(
953
+ # original gprof header
954
+ r'^\s+called/total\s+parents\s*$|' +
955
+ r'^index\s+%time\s+self\s+descendents\s+called\+self\s+name\s+index\s*$|' +
956
+ r'^\s+called/total\s+children\s*$|' +
957
+ # GNU gprof header
958
+ r'^index\s+%\s+time\s+self\s+children\s+called\s+name\s*$'
959
+ )
960
+
961
+ _cg_ignore_re = re.compile(
962
+ # spontaneous
963
+ r'^\s+<spontaneous>\s*$|'
964
+ # internal calls (such as "mcount")
965
+ r'^.*\((\d+)\)$'
966
+ )
967
+
968
+ _cg_primary_re = re.compile(
969
+ r'^\[(?P<index>\d+)\]?' +
970
+ r'\s+(?P<percentage_time>\d+\.\d+)' +
971
+ r'\s+(?P<self>\d+\.\d+)' +
972
+ r'\s+(?P<descendants>\d+\.\d+)' +
973
+ r'\s+(?:(?P<called>\d+)(?:\+(?P<called_self>\d+))?)?' +
974
+ r'\s+(?P<name>\S.*?)' +
975
+ r'(?:\s+<cycle\s(?P<cycle>\d+)>)?' +
976
+ r'\s\[(\d+)\]$'
977
+ )
978
+
979
+ _cg_parent_re = re.compile(
980
+ r'^\s+(?P<self>\d+\.\d+)?' +
981
+ r'\s+(?P<descendants>\d+\.\d+)?' +
982
+ r'\s+(?P<called>\d+)(?:/(?P<called_total>\d+))?' +
983
+ r'\s+(?P<name>\S.*?)' +
984
+ r'(?:\s+<cycle\s(?P<cycle>\d+)>)?' +
985
+ r'\s\[(?P<index>\d+)\]$'
986
+ )
987
+
988
+ _cg_child_re = _cg_parent_re
989
+
990
+ _cg_cycle_header_re = re.compile(
991
+ r'^\[(?P<index>\d+)\]?' +
992
+ r'\s+(?P<percentage_time>\d+\.\d+)' +
993
+ r'\s+(?P<self>\d+\.\d+)' +
994
+ r'\s+(?P<descendants>\d+\.\d+)' +
995
+ r'\s+(?:(?P<called>\d+)(?:\+(?P<called_self>\d+))?)?' +
996
+ r'\s+<cycle\s(?P<cycle>\d+)\sas\sa\swhole>' +
997
+ r'\s\[(\d+)\]$'
998
+ )
999
+
1000
+ _cg_cycle_member_re = re.compile(
1001
+ r'^\s+(?P<self>\d+\.\d+)?' +
1002
+ r'\s+(?P<descendants>\d+\.\d+)?' +
1003
+ r'\s+(?P<called>\d+)(?:\+(?P<called_self>\d+))?' +
1004
+ r'\s+(?P<name>\S.*?)' +
1005
+ r'(?:\s+<cycle\s(?P<cycle>\d+)>)?' +
1006
+ r'\s\[(?P<index>\d+)\]$'
1007
+ )
1008
+
1009
+ _cg_sep_re = re.compile(r'^--+$')
1010
+
1011
+ def parse_function_entry(self, lines):
1012
+ parents = []
1013
+ children = []
1014
+
1015
+ while True:
1016
+ if not lines:
1017
+ sys.stderr.write('warning: unexpected end of entry\n')
1018
+ line = lines.pop(0)
1019
+ if line.startswith('['):
1020
+ break
1021
+
1022
+ # read function parent line
1023
+ mo = self._cg_parent_re.match(line)
1024
+ if not mo:
1025
+ if self._cg_ignore_re.match(line):
1026
+ continue
1027
+ sys.stderr.write('warning: unrecognized call graph entry: %r\n' % line)
1028
+ else:
1029
+ parent = self.translate(mo)
1030
+ parents.append(parent)
1031
+
1032
+ # read primary line
1033
+ mo = self._cg_primary_re.match(line)
1034
+ if not mo:
1035
+ sys.stderr.write('warning: unrecognized call graph entry: %r\n' % line)
1036
+ return
1037
+ else:
1038
+ function = self.translate(mo)
1039
+
1040
+ while lines:
1041
+ line = lines.pop(0)
1042
+
1043
+ # read function subroutine line
1044
+ mo = self._cg_child_re.match(line)
1045
+ if not mo:
1046
+ if self._cg_ignore_re.match(line):
1047
+ continue
1048
+ sys.stderr.write('warning: unrecognized call graph entry: %r\n' % line)
1049
+ else:
1050
+ child = self.translate(mo)
1051
+ children.append(child)
1052
+
1053
+ function.parents = parents
1054
+ function.children = children
1055
+
1056
+ self.functions[function.index] = function
1057
+
1058
+ def parse_cycle_entry(self, lines):
1059
+
1060
+ # read cycle header line
1061
+ line = lines[0]
1062
+ mo = self._cg_cycle_header_re.match(line)
1063
+ if not mo:
1064
+ sys.stderr.write('warning: unrecognized call graph entry: %r\n' % line)
1065
+ return
1066
+ cycle = self.translate(mo)
1067
+
1068
+ # read cycle member lines
1069
+ cycle.functions = []
1070
+ for line in lines[1:]:
1071
+ mo = self._cg_cycle_member_re.match(line)
1072
+ if not mo:
1073
+ sys.stderr.write('warning: unrecognized call graph entry: %r\n' % line)
1074
+ continue
1075
+ call = self.translate(mo)
1076
+ cycle.functions.append(call)
1077
+
1078
+ self.cycles[cycle.cycle] = cycle
1079
+
1080
+ def parse_cg_entry(self, lines):
1081
+ if lines[0].startswith("["):
1082
+ self.parse_cycle_entry(lines)
1083
+ else:
1084
+ self.parse_function_entry(lines)
1085
+
1086
+ def parse_cg(self):
1087
+ """Parse the call graph."""
1088
+
1089
+ # skip call graph header
1090
+ while not self._cg_header_re.match(self.readline()):
1091
+ pass
1092
+ line = self.readline()
1093
+ while self._cg_header_re.match(line):
1094
+ line = self.readline()
1095
+
1096
+ # process call graph entries
1097
+ entry_lines = []
1098
+ while line != '\014': # form feed
1099
+ if line and not line.isspace():
1100
+ if self._cg_sep_re.match(line):
1101
+ self.parse_cg_entry(entry_lines)
1102
+ entry_lines = []
1103
+ else:
1104
+ entry_lines.append(line)
1105
+ line = self.readline()
1106
+
1107
+ def parse(self):
1108
+ self.parse_cg()
1109
+ self.fp.close()
1110
+
1111
+ profile = Profile()
1112
+ profile[TIME] = 0.0
1113
+
1114
+ cycles = {}
1115
+ for index in self.cycles:
1116
+ cycles[index] = Cycle()
1117
+
1118
+ for entry in compat_itervalues(self.functions):
1119
+ # populate the function
1120
+ function = Function(entry.index, entry.name)
1121
+ function[TIME] = entry.self
1122
+ if entry.called is not None:
1123
+ function.called = entry.called
1124
+ if entry.called_self is not None:
1125
+ call = Call(entry.index)
1126
+ call[CALLS] = entry.called_self
1127
+ function.called += entry.called_self
1128
+
1129
+ # populate the function calls
1130
+ for child in entry.children:
1131
+ call = Call(child.index)
1132
+
1133
+ assert child.called is not None
1134
+ call[CALLS] = child.called
1135
+
1136
+ if child.index not in self.functions:
1137
+ # NOTE: functions that were never called but were discovered by gprof's
1138
+ # static call graph analysis dont have a call graph entry so we need
1139
+ # to add them here
1140
+ missing = Function(child.index, child.name)
1141
+ function[TIME] = 0.0
1142
+ function.called = 0
1143
+ profile.add_function(missing)
1144
+
1145
+ function.add_call(call)
1146
+
1147
+ profile.add_function(function)
1148
+
1149
+ if entry.cycle is not None:
1150
+ try:
1151
+ cycle = cycles[entry.cycle]
1152
+ except KeyError:
1153
+ sys.stderr.write('warning: <cycle %u as a whole> entry missing\n' % entry.cycle)
1154
+ cycle = Cycle()
1155
+ cycles[entry.cycle] = cycle
1156
+ cycle.add_function(function)
1157
+
1158
+ profile[TIME] = profile[TIME] + function[TIME]
1159
+
1160
+ for cycle in compat_itervalues(cycles):
1161
+ profile.add_cycle(cycle)
1162
+
1163
+ # Compute derived events
1164
+ profile.validate()
1165
+ profile.ratio(TIME_RATIO, TIME)
1166
+ profile.call_ratios(CALLS)
1167
+ profile.integrate(TOTAL_TIME, TIME)
1168
+ profile.ratio(TOTAL_TIME_RATIO, TOTAL_TIME)
1169
+
1170
+ return profile
1171
+
1172
+
1173
+ # Clone&hack of GprofParser for VTune Amplifier XE 2013 gprof-cc output.
1174
+ # Tested only with AXE 2013 for Windows.
1175
+ # - Use total times as reported by AXE.
1176
+ # - In the absence of call counts, call ratios are faked from the relative
1177
+ # proportions of total time. This affects only the weighting of the calls.
1178
+ # - Different header, separator, and end marker.
1179
+ # - Extra whitespace after function names.
1180
+ # - You get a full entry for <spontaneous>, which does not have parents.
1181
+ # - Cycles do have parents. These are saved but unused (as they are
1182
+ # for functions).
1183
+ # - Disambiguated "unrecognized call graph entry" error messages.
1184
+ # Notes:
1185
+ # - Total time of functions as reported by AXE passes the val3 test.
1186
+ # - CPU Time:Children in the input is sometimes a negative number. This
1187
+ # value goes to the variable descendants, which is unused.
1188
+ # - The format of gprof-cc reports is unaffected by the use of
1189
+ # -knob enable-call-counts=true (no call counts, ever), or
1190
+ # -show-as=samples (results are quoted in seconds regardless).
1191
+ class AXEParser(Parser):
1192
+ "Parser for VTune Amplifier XE 2013 gprof-cc report output."
1193
+
1194
+ def __init__(self, fp):
1195
+ Parser.__init__(self)
1196
+ self.fp = fp
1197
+ self.functions = {}
1198
+ self.cycles = {}
1199
+
1200
+ def readline(self):
1201
+ line = self.fp.readline()
1202
+ if not line:
1203
+ sys.stderr.write('error: unexpected end of file\n')
1204
+ sys.exit(1)
1205
+ line = line.rstrip('\r\n')
1206
+ return line
1207
+
1208
+ _int_re = re.compile(r'^\d+$')
1209
+ _float_re = re.compile(r'^\d+\.\d+$')
1210
+
1211
+ def translate(self, mo):
1212
+ """Extract a structure from a match object, while translating the types in the process."""
1213
+ attrs = {}
1214
+ groupdict = mo.groupdict()
1215
+ for name, value in compat_iteritems(groupdict):
1216
+ if value is None:
1217
+ value = None
1218
+ elif self._int_re.match(value):
1219
+ value = int(value)
1220
+ elif self._float_re.match(value):
1221
+ value = float(value)
1222
+ attrs[name] = (value)
1223
+ return Struct(attrs)
1224
+
1225
+ _cg_header_re = re.compile(
1226
+ '^Index |'
1227
+ '^-----+ '
1228
+ )
1229
+
1230
+ _cg_footer_re = re.compile('^Index\s+Function\s*$')
1231
+
1232
+ _cg_primary_re = re.compile(
1233
+ r'^\[(?P<index>\d+)\]?' +
1234
+ r'\s+(?P<percentage_time>\d+\.\d+)' +
1235
+ r'\s+(?P<self>\d+\.\d+)' +
1236
+ r'\s+(?P<descendants>\d+\.\d+)' +
1237
+ r'\s+(?P<name>\S.*?)' +
1238
+ r'(?:\s+<cycle\s(?P<cycle>\d+)>)?' +
1239
+ r'\s+\[(\d+)\]$'
1240
+ )
1241
+
1242
+ _cg_parent_re = re.compile(
1243
+ r'^\s+(?P<self>\d+\.\d+)?' +
1244
+ r'\s+(?P<descendants>\d+\.\d+)?' +
1245
+ r'\s+(?P<name>\S.*?)' +
1246
+ r'(?:\s+<cycle\s(?P<cycle>\d+)>)?' +
1247
+ r'\s+\[(?P<index>\d+)\]$'
1248
+ )
1249
+
1250
+ _cg_child_re = _cg_parent_re
1251
+
1252
+ _cg_cycle_header_re = re.compile(
1253
+ r'^\[(?P<index>\d+)\]?' +
1254
+ r'\s+(?P<percentage_time>\d+\.\d+)' +
1255
+ r'\s+(?P<self>\d+\.\d+)' +
1256
+ r'\s+(?P<descendants>\d+\.\d+)' +
1257
+ r'\s+<cycle\s(?P<cycle>\d+)\sas\sa\swhole>' +
1258
+ r'\s+\[(\d+)\]$'
1259
+ )
1260
+
1261
+ _cg_cycle_member_re = re.compile(
1262
+ r'^\s+(?P<self>\d+\.\d+)?' +
1263
+ r'\s+(?P<descendants>\d+\.\d+)?' +
1264
+ r'\s+(?P<name>\S.*?)' +
1265
+ r'(?:\s+<cycle\s(?P<cycle>\d+)>)?' +
1266
+ r'\s+\[(?P<index>\d+)\]$'
1267
+ )
1268
+
1269
+ def parse_function_entry(self, lines):
1270
+ parents = []
1271
+ children = []
1272
+
1273
+ while True:
1274
+ if not lines:
1275
+ sys.stderr.write('warning: unexpected end of entry\n')
1276
+ return
1277
+ line = lines.pop(0)
1278
+ if line.startswith('['):
1279
+ break
1280
+
1281
+ # read function parent line
1282
+ mo = self._cg_parent_re.match(line)
1283
+ if not mo:
1284
+ sys.stderr.write('warning: unrecognized call graph entry (1): %r\n' % line)
1285
+ else:
1286
+ parent = self.translate(mo)
1287
+ if parent.name != '<spontaneous>':
1288
+ parents.append(parent)
1289
+
1290
+ # read primary line
1291
+ mo = self._cg_primary_re.match(line)
1292
+ if not mo:
1293
+ sys.stderr.write('warning: unrecognized call graph entry (2): %r\n' % line)
1294
+ return
1295
+ else:
1296
+ function = self.translate(mo)
1297
+
1298
+ while lines:
1299
+ line = lines.pop(0)
1300
+
1301
+ # read function subroutine line
1302
+ mo = self._cg_child_re.match(line)
1303
+ if not mo:
1304
+ sys.stderr.write('warning: unrecognized call graph entry (3): %r\n' % line)
1305
+ else:
1306
+ child = self.translate(mo)
1307
+ if child.name != '<spontaneous>':
1308
+ children.append(child)
1309
+
1310
+ if function.name != '<spontaneous>':
1311
+ function.parents = parents
1312
+ function.children = children
1313
+
1314
+ self.functions[function.index] = function
1315
+
1316
+ def parse_cycle_entry(self, lines):
1317
+
1318
+ # Process the parents that were not there in gprof format.
1319
+ parents = []
1320
+ while True:
1321
+ if not lines:
1322
+ sys.stderr.write('warning: unexpected end of cycle entry\n')
1323
+ return
1324
+ line = lines.pop(0)
1325
+ if line.startswith('['):
1326
+ break
1327
+ mo = self._cg_parent_re.match(line)
1328
+ if not mo:
1329
+ sys.stderr.write('warning: unrecognized call graph entry (6): %r\n' % line)
1330
+ else:
1331
+ parent = self.translate(mo)
1332
+ if parent.name != '<spontaneous>':
1333
+ parents.append(parent)
1334
+
1335
+ # read cycle header line
1336
+ mo = self._cg_cycle_header_re.match(line)
1337
+ if not mo:
1338
+ sys.stderr.write('warning: unrecognized call graph entry (4): %r\n' % line)
1339
+ return
1340
+ cycle = self.translate(mo)
1341
+
1342
+ # read cycle member lines
1343
+ cycle.functions = []
1344
+ for line in lines[1:]:
1345
+ mo = self._cg_cycle_member_re.match(line)
1346
+ if not mo:
1347
+ sys.stderr.write('warning: unrecognized call graph entry (5): %r\n' % line)
1348
+ continue
1349
+ call = self.translate(mo)
1350
+ cycle.functions.append(call)
1351
+
1352
+ cycle.parents = parents
1353
+ self.cycles[cycle.cycle] = cycle
1354
+
1355
+ def parse_cg_entry(self, lines):
1356
+ if any("as a whole" in linelooper for linelooper in lines):
1357
+ self.parse_cycle_entry(lines)
1358
+ else:
1359
+ self.parse_function_entry(lines)
1360
+
1361
+ def parse_cg(self):
1362
+ """Parse the call graph."""
1363
+
1364
+ # skip call graph header
1365
+ line = self.readline()
1366
+ while self._cg_header_re.match(line):
1367
+ line = self.readline()
1368
+
1369
+ # process call graph entries
1370
+ entry_lines = []
1371
+ # An EOF in readline terminates the program without returning.
1372
+ while not self._cg_footer_re.match(line):
1373
+ if line.isspace():
1374
+ self.parse_cg_entry(entry_lines)
1375
+ entry_lines = []
1376
+ else:
1377
+ entry_lines.append(line)
1378
+ line = self.readline()
1379
+
1380
+ def parse(self):
1381
+ sys.stderr.write('warning: for axe format, edge weights are unreliable estimates derived from\nfunction total times.\n')
1382
+ self.parse_cg()
1383
+ self.fp.close()
1384
+
1385
+ profile = Profile()
1386
+ profile[TIME] = 0.0
1387
+
1388
+ cycles = {}
1389
+ for index in self.cycles:
1390
+ cycles[index] = Cycle()
1391
+
1392
+ for entry in compat_itervalues(self.functions):
1393
+ # populate the function
1394
+ function = Function(entry.index, entry.name)
1395
+ function[TIME] = entry.self
1396
+ function[TOTAL_TIME_RATIO] = entry.percentage_time / 100.0
1397
+
1398
+ # populate the function calls
1399
+ for child in entry.children:
1400
+ call = Call(child.index)
1401
+ # The following bogus value affects only the weighting of
1402
+ # the calls.
1403
+ call[TOTAL_TIME_RATIO] = function[TOTAL_TIME_RATIO]
1404
+
1405
+ if child.index not in self.functions:
1406
+ # NOTE: functions that were never called but were discovered by gprof's
1407
+ # static call graph analysis dont have a call graph entry so we need
1408
+ # to add them here
1409
+ # FIXME: Is this applicable?
1410
+ missing = Function(child.index, child.name)
1411
+ function[TIME] = 0.0
1412
+ profile.add_function(missing)
1413
+
1414
+ function.add_call(call)
1415
+
1416
+ profile.add_function(function)
1417
+
1418
+ if entry.cycle is not None:
1419
+ try:
1420
+ cycle = cycles[entry.cycle]
1421
+ except KeyError:
1422
+ sys.stderr.write('warning: <cycle %u as a whole> entry missing\n' % entry.cycle)
1423
+ cycle = Cycle()
1424
+ cycles[entry.cycle] = cycle
1425
+ cycle.add_function(function)
1426
+
1427
+ profile[TIME] = profile[TIME] + function[TIME]
1428
+
1429
+ for cycle in compat_itervalues(cycles):
1430
+ profile.add_cycle(cycle)
1431
+
1432
+ # Compute derived events.
1433
+ profile.validate()
1434
+ profile.ratio(TIME_RATIO, TIME)
1435
+ # Lacking call counts, fake call ratios based on total times.
1436
+ profile.call_ratios(TOTAL_TIME_RATIO)
1437
+ # The TOTAL_TIME_RATIO of functions is already set. Propagate that
1438
+ # total time to the calls. (TOTAL_TIME is neither set nor used.)
1439
+ for function in compat_itervalues(profile.functions):
1440
+ for call in compat_itervalues(function.calls):
1441
+ if call.ratio is not None:
1442
+ callee = profile.functions[call.callee_id]
1443
+ call[TOTAL_TIME_RATIO] = call.ratio * callee[TOTAL_TIME_RATIO];
1444
+
1445
+ return profile
1446
+
1447
+
1448
+ class CallgrindParser(LineParser):
1449
+ """Parser for valgrind's callgrind tool.
1450
+
1451
+ See also:
1452
+ - http://valgrind.org/docs/manual/cl-format.html
1453
+ """
1454
+
1455
+ _call_re = re.compile('^calls=\s*(\d+)\s+((\d+|\+\d+|-\d+|\*)\s+)+$')
1456
+
1457
+ def __init__(self, infile):
1458
+ LineParser.__init__(self, infile)
1459
+
1460
+ # Textual positions
1461
+ self.position_ids = {}
1462
+ self.positions = {}
1463
+
1464
+ # Numeric positions
1465
+ self.num_positions = 1
1466
+ self.cost_positions = ['line']
1467
+ self.last_positions = [0]
1468
+
1469
+ # Events
1470
+ self.num_events = 0
1471
+ self.cost_events = []
1472
+
1473
+ self.profile = Profile()
1474
+ self.profile[SAMPLES] = 0
1475
+
1476
+ def parse(self):
1477
+ # read lookahead
1478
+ self.readline()
1479
+
1480
+ self.parse_key('version')
1481
+ self.parse_key('creator')
1482
+ while self.parse_part():
1483
+ pass
1484
+ if not self.eof():
1485
+ sys.stderr.write('warning: line %u: unexpected line\n' % self.line_no)
1486
+ sys.stderr.write('%s\n' % self.lookahead())
1487
+
1488
+ # compute derived data
1489
+ self.profile.validate()
1490
+ self.profile.find_cycles()
1491
+ self.profile.ratio(TIME_RATIO, SAMPLES)
1492
+ self.profile.call_ratios(CALLS)
1493
+ self.profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
1494
+
1495
+ return self.profile
1496
+
1497
+ def parse_part(self):
1498
+ if not self.parse_header_line():
1499
+ return False
1500
+ while self.parse_header_line():
1501
+ pass
1502
+ if not self.parse_body_line():
1503
+ return False
1504
+ while self.parse_body_line():
1505
+ pass
1506
+ return True
1507
+
1508
+ def parse_header_line(self):
1509
+ return \
1510
+ self.parse_empty() or \
1511
+ self.parse_comment() or \
1512
+ self.parse_part_detail() or \
1513
+ self.parse_description() or \
1514
+ self.parse_event_specification() or \
1515
+ self.parse_cost_line_def() or \
1516
+ self.parse_cost_summary()
1517
+
1518
+ _detail_keys = set(('cmd', 'pid', 'thread', 'part'))
1519
+
1520
+ def parse_part_detail(self):
1521
+ return self.parse_keys(self._detail_keys)
1522
+
1523
+ def parse_description(self):
1524
+ return self.parse_key('desc') is not None
1525
+
1526
+ def parse_event_specification(self):
1527
+ event = self.parse_key('event')
1528
+ if event is None:
1529
+ return False
1530
+ return True
1531
+
1532
+ def parse_cost_line_def(self):
1533
+ pair = self.parse_keys(('events', 'positions'))
1534
+ if pair is None:
1535
+ return False
1536
+ key, value = pair
1537
+ items = value.split()
1538
+ if key == 'events':
1539
+ self.num_events = len(items)
1540
+ self.cost_events = items
1541
+ if key == 'positions':
1542
+ self.num_positions = len(items)
1543
+ self.cost_positions = items
1544
+ self.last_positions = [0]*self.num_positions
1545
+ return True
1546
+
1547
+ def parse_cost_summary(self):
1548
+ pair = self.parse_keys(('summary', 'totals'))
1549
+ if pair is None:
1550
+ return False
1551
+ return True
1552
+
1553
+ def parse_body_line(self):
1554
+ return \
1555
+ self.parse_empty() or \
1556
+ self.parse_comment() or \
1557
+ self.parse_cost_line() or \
1558
+ self.parse_position_spec() or \
1559
+ self.parse_association_spec()
1560
+
1561
+ __subpos_re = r'(0x[0-9a-fA-F]+|\d+|\+\d+|-\d+|\*)'
1562
+ _cost_re = re.compile(r'^' +
1563
+ __subpos_re + r'( +' + __subpos_re + r')*' +
1564
+ r'( +\d+)*' +
1565
+ '$')
1566
+
1567
+ def parse_cost_line(self, calls=None):
1568
+ line = self.lookahead().rstrip()
1569
+ mo = self._cost_re.match(line)
1570
+ if not mo:
1571
+ return False
1572
+
1573
+ function = self.get_function()
1574
+
1575
+ if calls is None:
1576
+ # Unlike other aspects, call object (cob) is relative not to the
1577
+ # last call object, but to the caller's object (ob), so try to
1578
+ # update it when processing a functions cost line
1579
+ try:
1580
+ self.positions['cob'] = self.positions['ob']
1581
+ except KeyError:
1582
+ pass
1583
+
1584
+ values = line.split()
1585
+ assert len(values) <= self.num_positions + self.num_events
1586
+
1587
+ positions = values[0 : self.num_positions]
1588
+ events = values[self.num_positions : ]
1589
+ events += ['0']*(self.num_events - len(events))
1590
+
1591
+ for i in range(self.num_positions):
1592
+ position = positions[i]
1593
+ if position == '*':
1594
+ position = self.last_positions[i]
1595
+ elif position[0] in '-+':
1596
+ position = self.last_positions[i] + int(position)
1597
+ elif position.startswith('0x'):
1598
+ position = int(position, 16)
1599
+ else:
1600
+ position = int(position)
1601
+ self.last_positions[i] = position
1602
+
1603
+ events = [float(event) for event in events]
1604
+
1605
+ if calls is None:
1606
+ function[SAMPLES] += events[0]
1607
+ self.profile[SAMPLES] += events[0]
1608
+ else:
1609
+ callee = self.get_callee()
1610
+ callee.called += calls
1611
+
1612
+ try:
1613
+ call = function.calls[callee.id]
1614
+ except KeyError:
1615
+ call = Call(callee.id)
1616
+ call[CALLS] = calls
1617
+ call[SAMPLES] = events[0]
1618
+ function.add_call(call)
1619
+ else:
1620
+ call[CALLS] += calls
1621
+ call[SAMPLES] += events[0]
1622
+
1623
+ self.consume()
1624
+ return True
1625
+
1626
+ def parse_association_spec(self):
1627
+ line = self.lookahead()
1628
+ if not line.startswith('calls='):
1629
+ return False
1630
+
1631
+ _, values = line.split('=', 1)
1632
+ values = values.strip().split()
1633
+ calls = int(values[0])
1634
+ call_position = values[1:]
1635
+ self.consume()
1636
+
1637
+ self.parse_cost_line(calls)
1638
+
1639
+ return True
1640
+
1641
+ _position_re = re.compile('^(?P<position>[cj]?(?:ob|fl|fi|fe|fn))=\s*(?:\((?P<id>\d+)\))?(?:\s*(?P<name>.+))?')
1642
+
1643
+ _position_table_map = {
1644
+ 'ob': 'ob',
1645
+ 'fl': 'fl',
1646
+ 'fi': 'fl',
1647
+ 'fe': 'fl',
1648
+ 'fn': 'fn',
1649
+ 'cob': 'ob',
1650
+ 'cfl': 'fl',
1651
+ 'cfi': 'fl',
1652
+ 'cfe': 'fl',
1653
+ 'cfn': 'fn',
1654
+ 'jfi': 'fl',
1655
+ }
1656
+
1657
+ _position_map = {
1658
+ 'ob': 'ob',
1659
+ 'fl': 'fl',
1660
+ 'fi': 'fl',
1661
+ 'fe': 'fl',
1662
+ 'fn': 'fn',
1663
+ 'cob': 'cob',
1664
+ 'cfl': 'cfl',
1665
+ 'cfi': 'cfl',
1666
+ 'cfe': 'cfl',
1667
+ 'cfn': 'cfn',
1668
+ 'jfi': 'jfi',
1669
+ }
1670
+
1671
+ def parse_position_spec(self):
1672
+ line = self.lookahead()
1673
+
1674
+ if line.startswith('jump=') or line.startswith('jcnd='):
1675
+ self.consume()
1676
+ return True
1677
+
1678
+ mo = self._position_re.match(line)
1679
+ if not mo:
1680
+ return False
1681
+
1682
+ position, id, name = mo.groups()
1683
+ if id:
1684
+ table = self._position_table_map[position]
1685
+ if name:
1686
+ self.position_ids[(table, id)] = name
1687
+ else:
1688
+ name = self.position_ids.get((table, id), '')
1689
+ self.positions[self._position_map[position]] = name
1690
+
1691
+ self.consume()
1692
+ return True
1693
+
1694
+ def parse_empty(self):
1695
+ if self.eof():
1696
+ return False
1697
+ line = self.lookahead()
1698
+ if line.strip():
1699
+ return False
1700
+ self.consume()
1701
+ return True
1702
+
1703
+ def parse_comment(self):
1704
+ line = self.lookahead()
1705
+ if not line.startswith('#'):
1706
+ return False
1707
+ self.consume()
1708
+ return True
1709
+
1710
+ _key_re = re.compile(r'^(\w+):')
1711
+
1712
+ def parse_key(self, key):
1713
+ pair = self.parse_keys((key,))
1714
+ if not pair:
1715
+ return None
1716
+ key, value = pair
1717
+ return value
1718
+ line = self.lookahead()
1719
+ mo = self._key_re.match(line)
1720
+ if not mo:
1721
+ return None
1722
+ key, value = line.split(':', 1)
1723
+ if key not in keys:
1724
+ return None
1725
+ value = value.strip()
1726
+ self.consume()
1727
+ return key, value
1728
+
1729
+ def parse_keys(self, keys):
1730
+ line = self.lookahead()
1731
+ mo = self._key_re.match(line)
1732
+ if not mo:
1733
+ return None
1734
+ key, value = line.split(':', 1)
1735
+ if key not in keys:
1736
+ return None
1737
+ value = value.strip()
1738
+ self.consume()
1739
+ return key, value
1740
+
1741
+ def make_function(self, module, filename, name):
1742
+ # FIXME: module and filename are not being tracked reliably
1743
+ #id = '|'.join((module, filename, name))
1744
+ id = name
1745
+ try:
1746
+ function = self.profile.functions[id]
1747
+ except KeyError:
1748
+ function = Function(id, name)
1749
+ if module:
1750
+ function.module = os.path.basename(module)
1751
+ function[SAMPLES] = 0
1752
+ function.called = 0
1753
+ self.profile.add_function(function)
1754
+ return function
1755
+
1756
+ def get_function(self):
1757
+ module = self.positions.get('ob', '')
1758
+ filename = self.positions.get('fl', '')
1759
+ function = self.positions.get('fn', '')
1760
+ return self.make_function(module, filename, function)
1761
+
1762
+ def get_callee(self):
1763
+ module = self.positions.get('cob', '')
1764
+ filename = self.positions.get('cfi', '')
1765
+ function = self.positions.get('cfn', '')
1766
+ return self.make_function(module, filename, function)
1767
+
1768
+
1769
+ class PerfParser(LineParser):
1770
+ """Parser for linux perf callgraph output.
1771
+
1772
+ It expects output generated with
1773
+
1774
+ perf record -g
1775
+ perf script | gprof2dot.py --format=perf
1776
+ """
1777
+
1778
+ def __init__(self, infile):
1779
+ LineParser.__init__(self, infile)
1780
+ self.profile = Profile()
1781
+
1782
+ def readline(self):
1783
+ # Override LineParser.readline to ignore comment lines
1784
+ while True:
1785
+ LineParser.readline(self)
1786
+ if self.eof() or not self.lookahead().startswith('#'):
1787
+ break
1788
+
1789
+ def parse(self):
1790
+ # read lookahead
1791
+ self.readline()
1792
+
1793
+ profile = self.profile
1794
+ profile[SAMPLES] = 0
1795
+ while not self.eof():
1796
+ self.parse_event()
1797
+
1798
+ # compute derived data
1799
+ profile.validate()
1800
+ profile.find_cycles()
1801
+ profile.ratio(TIME_RATIO, SAMPLES)
1802
+ profile.call_ratios(SAMPLES2)
1803
+ if totalMethod == "callratios":
1804
+ # Heuristic approach. TOTAL_SAMPLES is unused.
1805
+ profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
1806
+ elif totalMethod == "callstacks":
1807
+ # Use the actual call chains for functions.
1808
+ profile[TOTAL_SAMPLES] = profile[SAMPLES]
1809
+ profile.ratio(TOTAL_TIME_RATIO, TOTAL_SAMPLES)
1810
+ # Then propagate that total time to the calls.
1811
+ for function in compat_itervalues(profile.functions):
1812
+ for call in compat_itervalues(function.calls):
1813
+ if call.ratio is not None:
1814
+ callee = profile.functions[call.callee_id]
1815
+ call[TOTAL_TIME_RATIO] = call.ratio * callee[TOTAL_TIME_RATIO];
1816
+ else:
1817
+ assert False
1818
+
1819
+ return profile
1820
+
1821
+ def parse_event(self):
1822
+ if self.eof():
1823
+ return
1824
+
1825
+ line = self.consume()
1826
+ assert line
1827
+
1828
+ callchain = self.parse_callchain()
1829
+ if not callchain:
1830
+ return
1831
+
1832
+ callee = callchain[0]
1833
+ callee[SAMPLES] += 1
1834
+ self.profile[SAMPLES] += 1
1835
+
1836
+ for caller in callchain[1:]:
1837
+ try:
1838
+ call = caller.calls[callee.id]
1839
+ except KeyError:
1840
+ call = Call(callee.id)
1841
+ call[SAMPLES2] = 1
1842
+ caller.add_call(call)
1843
+ else:
1844
+ call[SAMPLES2] += 1
1845
+
1846
+ callee = caller
1847
+
1848
+ # Increment TOTAL_SAMPLES only once on each function.
1849
+ stack = set(callchain)
1850
+ for function in stack:
1851
+ function[TOTAL_SAMPLES] += 1
1852
+
1853
+ def parse_callchain(self):
1854
+ callchain = []
1855
+ while self.lookahead():
1856
+ function = self.parse_call()
1857
+ if function is None:
1858
+ break
1859
+ callchain.append(function)
1860
+ if self.lookahead() == '':
1861
+ self.consume()
1862
+ return callchain
1863
+
1864
+ call_re = re.compile(r'^\s+(?P<address>[0-9a-fA-F]+)\s+(?P<symbol>.*)\s+\((?P<module>[^)]*)\)$')
1865
+
1866
+ def parse_call(self):
1867
+ line = self.consume()
1868
+ mo = self.call_re.match(line)
1869
+ assert mo
1870
+ if not mo:
1871
+ return None
1872
+
1873
+ function_name = mo.group('symbol')
1874
+ if not function_name:
1875
+ function_name = mo.group('address')
1876
+
1877
+ module = mo.group('module')
1878
+
1879
+ function_id = function_name + ':' + module
1880
+
1881
+ try:
1882
+ function = self.profile.functions[function_id]
1883
+ except KeyError:
1884
+ function = Function(function_id, function_name)
1885
+ function.module = os.path.basename(module)
1886
+ function[SAMPLES] = 0
1887
+ function[TOTAL_SAMPLES] = 0
1888
+ self.profile.add_function(function)
1889
+
1890
+ return function
1891
+
1892
+
1893
+ class OprofileParser(LineParser):
1894
+ """Parser for oprofile callgraph output.
1895
+
1896
+ See also:
1897
+ - http://oprofile.sourceforge.net/doc/opreport.html#opreport-callgraph
1898
+ """
1899
+
1900
+ _fields_re = {
1901
+ 'samples': r'(\d+)',
1902
+ '%': r'(\S+)',
1903
+ 'linenr info': r'(?P<source>\(no location information\)|\S+:\d+)',
1904
+ 'image name': r'(?P<image>\S+(?:\s\(tgid:[^)]*\))?)',
1905
+ 'app name': r'(?P<application>\S+)',
1906
+ 'symbol name': r'(?P<symbol>\(no symbols\)|.+?)',
1907
+ }
1908
+
1909
+ def __init__(self, infile):
1910
+ LineParser.__init__(self, infile)
1911
+ self.entries = {}
1912
+ self.entry_re = None
1913
+
1914
+ def add_entry(self, callers, function, callees):
1915
+ try:
1916
+ entry = self.entries[function.id]
1917
+ except KeyError:
1918
+ self.entries[function.id] = (callers, function, callees)
1919
+ else:
1920
+ callers_total, function_total, callees_total = entry
1921
+ self.update_subentries_dict(callers_total, callers)
1922
+ function_total.samples += function.samples
1923
+ self.update_subentries_dict(callees_total, callees)
1924
+
1925
+ def update_subentries_dict(self, totals, partials):
1926
+ for partial in compat_itervalues(partials):
1927
+ try:
1928
+ total = totals[partial.id]
1929
+ except KeyError:
1930
+ totals[partial.id] = partial
1931
+ else:
1932
+ total.samples += partial.samples
1933
+
1934
+ def parse(self):
1935
+ # read lookahead
1936
+ self.readline()
1937
+
1938
+ self.parse_header()
1939
+ while self.lookahead():
1940
+ self.parse_entry()
1941
+
1942
+ profile = Profile()
1943
+
1944
+ reverse_call_samples = {}
1945
+
1946
+ # populate the profile
1947
+ profile[SAMPLES] = 0
1948
+ for _callers, _function, _callees in compat_itervalues(self.entries):
1949
+ function = Function(_function.id, _function.name)
1950
+ function[SAMPLES] = _function.samples
1951
+ profile.add_function(function)
1952
+ profile[SAMPLES] += _function.samples
1953
+
1954
+ if _function.application:
1955
+ function.process = os.path.basename(_function.application)
1956
+ if _function.image:
1957
+ function.module = os.path.basename(_function.image)
1958
+
1959
+ total_callee_samples = 0
1960
+ for _callee in compat_itervalues(_callees):
1961
+ total_callee_samples += _callee.samples
1962
+
1963
+ for _callee in compat_itervalues(_callees):
1964
+ if not _callee.self:
1965
+ call = Call(_callee.id)
1966
+ call[SAMPLES2] = _callee.samples
1967
+ function.add_call(call)
1968
+
1969
+ # compute derived data
1970
+ profile.validate()
1971
+ profile.find_cycles()
1972
+ profile.ratio(TIME_RATIO, SAMPLES)
1973
+ profile.call_ratios(SAMPLES2)
1974
+ profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
1975
+
1976
+ return profile
1977
+
1978
+ def parse_header(self):
1979
+ while not self.match_header():
1980
+ self.consume()
1981
+ line = self.lookahead()
1982
+ fields = re.split(r'\s\s+', line)
1983
+ entry_re = r'^\s*' + r'\s+'.join([self._fields_re[field] for field in fields]) + r'(?P<self>\s+\[self\])?$'
1984
+ self.entry_re = re.compile(entry_re)
1985
+ self.skip_separator()
1986
+
1987
+ def parse_entry(self):
1988
+ callers = self.parse_subentries()
1989
+ if self.match_primary():
1990
+ function = self.parse_subentry()
1991
+ if function is not None:
1992
+ callees = self.parse_subentries()
1993
+ self.add_entry(callers, function, callees)
1994
+ self.skip_separator()
1995
+
1996
+ def parse_subentries(self):
1997
+ subentries = {}
1998
+ while self.match_secondary():
1999
+ subentry = self.parse_subentry()
2000
+ subentries[subentry.id] = subentry
2001
+ return subentries
2002
+
2003
+ def parse_subentry(self):
2004
+ entry = Struct()
2005
+ line = self.consume()
2006
+ mo = self.entry_re.match(line)
2007
+ if not mo:
2008
+ raise ParseError('failed to parse', line)
2009
+ fields = mo.groupdict()
2010
+ entry.samples = int(mo.group(1))
2011
+ if 'source' in fields and fields['source'] != '(no location information)':
2012
+ source = fields['source']
2013
+ filename, lineno = source.split(':')
2014
+ entry.filename = filename
2015
+ entry.lineno = int(lineno)
2016
+ else:
2017
+ source = ''
2018
+ entry.filename = None
2019
+ entry.lineno = None
2020
+ entry.image = fields.get('image', '')
2021
+ entry.application = fields.get('application', '')
2022
+ if 'symbol' in fields and fields['symbol'] != '(no symbols)':
2023
+ entry.symbol = fields['symbol']
2024
+ else:
2025
+ entry.symbol = ''
2026
+ if entry.symbol.startswith('"') and entry.symbol.endswith('"'):
2027
+ entry.symbol = entry.symbol[1:-1]
2028
+ entry.id = ':'.join((entry.application, entry.image, source, entry.symbol))
2029
+ entry.self = fields.get('self', None) != None
2030
+ if entry.self:
2031
+ entry.id += ':self'
2032
+ if entry.symbol:
2033
+ entry.name = entry.symbol
2034
+ else:
2035
+ entry.name = entry.image
2036
+ return entry
2037
+
2038
+ def skip_separator(self):
2039
+ while not self.match_separator():
2040
+ self.consume()
2041
+ self.consume()
2042
+
2043
+ def match_header(self):
2044
+ line = self.lookahead()
2045
+ return line.startswith('samples')
2046
+
2047
+ def match_separator(self):
2048
+ line = self.lookahead()
2049
+ return line == '-'*len(line)
2050
+
2051
+ def match_primary(self):
2052
+ line = self.lookahead()
2053
+ return not line[:1].isspace()
2054
+
2055
+ def match_secondary(self):
2056
+ line = self.lookahead()
2057
+ return line[:1].isspace()
2058
+
2059
+
2060
+ class HProfParser(LineParser):
2061
+ """Parser for java hprof output
2062
+
2063
+ See also:
2064
+ - http://java.sun.com/developer/technicalArticles/Programming/HPROF.html
2065
+ """
2066
+
2067
+ trace_re = re.compile(r'\t(.*)\((.*):(.*)\)')
2068
+ trace_id_re = re.compile(r'^TRACE (\d+):$')
2069
+
2070
+ def __init__(self, infile):
2071
+ LineParser.__init__(self, infile)
2072
+ self.traces = {}
2073
+ self.samples = {}
2074
+
2075
+ def parse(self):
2076
+ # read lookahead
2077
+ self.readline()
2078
+
2079
+ while not self.lookahead().startswith('------'): self.consume()
2080
+ while not self.lookahead().startswith('TRACE '): self.consume()
2081
+
2082
+ self.parse_traces()
2083
+
2084
+ while not self.lookahead().startswith('CPU'):
2085
+ self.consume()
2086
+
2087
+ self.parse_samples()
2088
+
2089
+ # populate the profile
2090
+ profile = Profile()
2091
+ profile[SAMPLES] = 0
2092
+
2093
+ functions = {}
2094
+
2095
+ # build up callgraph
2096
+ for id, trace in compat_iteritems(self.traces):
2097
+ if not id in self.samples: continue
2098
+ mtime = self.samples[id][0]
2099
+ last = None
2100
+
2101
+ for func, file, line in trace:
2102
+ if not func in functions:
2103
+ function = Function(func, func)
2104
+ function[SAMPLES] = 0
2105
+ profile.add_function(function)
2106
+ functions[func] = function
2107
+
2108
+ function = functions[func]
2109
+ # allocate time to the deepest method in the trace
2110
+ if not last:
2111
+ function[SAMPLES] += mtime
2112
+ profile[SAMPLES] += mtime
2113
+ else:
2114
+ c = function.get_call(last)
2115
+ c[SAMPLES2] += mtime
2116
+
2117
+ last = func
2118
+
2119
+ # compute derived data
2120
+ profile.validate()
2121
+ profile.find_cycles()
2122
+ profile.ratio(TIME_RATIO, SAMPLES)
2123
+ profile.call_ratios(SAMPLES2)
2124
+ profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
2125
+
2126
+ return profile
2127
+
2128
+ def parse_traces(self):
2129
+ while self.lookahead().startswith('TRACE '):
2130
+ self.parse_trace()
2131
+
2132
+ def parse_trace(self):
2133
+ l = self.consume()
2134
+ mo = self.trace_id_re.match(l)
2135
+ tid = mo.group(1)
2136
+ last = None
2137
+ trace = []
2138
+
2139
+ while self.lookahead().startswith('\t'):
2140
+ l = self.consume()
2141
+ match = self.trace_re.search(l)
2142
+ if not match:
2143
+ #sys.stderr.write('Invalid line: %s\n' % l)
2144
+ break
2145
+ else:
2146
+ function_name, file, line = match.groups()
2147
+ trace += [(function_name, file, line)]
2148
+
2149
+ self.traces[int(tid)] = trace
2150
+
2151
+ def parse_samples(self):
2152
+ self.consume()
2153
+ self.consume()
2154
+
2155
+ while not self.lookahead().startswith('CPU'):
2156
+ rank, percent_self, percent_accum, count, traceid, method = self.lookahead().split()
2157
+ self.samples[int(traceid)] = (int(count), method)
2158
+ self.consume()
2159
+
2160
+
2161
+ class SysprofParser(XmlParser):
2162
+
2163
+ def __init__(self, stream):
2164
+ XmlParser.__init__(self, stream)
2165
+
2166
+ def parse(self):
2167
+ objects = {}
2168
+ nodes = {}
2169
+
2170
+ self.element_start('profile')
2171
+ while self.token.type == XML_ELEMENT_START:
2172
+ if self.token.name_or_data == 'objects':
2173
+ assert not objects
2174
+ objects = self.parse_items('objects')
2175
+ elif self.token.name_or_data == 'nodes':
2176
+ assert not nodes
2177
+ nodes = self.parse_items('nodes')
2178
+ else:
2179
+ self.parse_value(self.token.name_or_data)
2180
+ self.element_end('profile')
2181
+
2182
+ return self.build_profile(objects, nodes)
2183
+
2184
+ def parse_items(self, name):
2185
+ assert name[-1] == 's'
2186
+ items = {}
2187
+ self.element_start(name)
2188
+ while self.token.type == XML_ELEMENT_START:
2189
+ id, values = self.parse_item(name[:-1])
2190
+ assert id not in items
2191
+ items[id] = values
2192
+ self.element_end(name)
2193
+ return items
2194
+
2195
+ def parse_item(self, name):
2196
+ attrs = self.element_start(name)
2197
+ id = int(attrs['id'])
2198
+ values = self.parse_values()
2199
+ self.element_end(name)
2200
+ return id, values
2201
+
2202
+ def parse_values(self):
2203
+ values = {}
2204
+ while self.token.type == XML_ELEMENT_START:
2205
+ name = self.token.name_or_data
2206
+ value = self.parse_value(name)
2207
+ assert name not in values
2208
+ values[name] = value
2209
+ return values
2210
+
2211
+ def parse_value(self, tag):
2212
+ self.element_start(tag)
2213
+ value = self.character_data()
2214
+ self.element_end(tag)
2215
+ if value.isdigit():
2216
+ return int(value)
2217
+ if value.startswith('"') and value.endswith('"'):
2218
+ return value[1:-1]
2219
+ return value
2220
+
2221
+ def build_profile(self, objects, nodes):
2222
+ profile = Profile()
2223
+
2224
+ profile[SAMPLES] = 0
2225
+ for id, object in compat_iteritems(objects):
2226
+ # Ignore fake objects (process names, modules, "Everything", "kernel", etc.)
2227
+ if object['self'] == 0:
2228
+ continue
2229
+
2230
+ function = Function(id, object['name'])
2231
+ function[SAMPLES] = object['self']
2232
+ profile.add_function(function)
2233
+ profile[SAMPLES] += function[SAMPLES]
2234
+
2235
+ for id, node in compat_iteritems(nodes):
2236
+ # Ignore fake calls
2237
+ if node['self'] == 0:
2238
+ continue
2239
+
2240
+ # Find a non-ignored parent
2241
+ parent_id = node['parent']
2242
+ while parent_id != 0:
2243
+ parent = nodes[parent_id]
2244
+ caller_id = parent['object']
2245
+ if objects[caller_id]['self'] != 0:
2246
+ break
2247
+ parent_id = parent['parent']
2248
+ if parent_id == 0:
2249
+ continue
2250
+
2251
+ callee_id = node['object']
2252
+
2253
+ assert objects[caller_id]['self']
2254
+ assert objects[callee_id]['self']
2255
+
2256
+ function = profile.functions[caller_id]
2257
+
2258
+ samples = node['self']
2259
+ try:
2260
+ call = function.calls[callee_id]
2261
+ except KeyError:
2262
+ call = Call(callee_id)
2263
+ call[SAMPLES2] = samples
2264
+ function.add_call(call)
2265
+ else:
2266
+ call[SAMPLES2] += samples
2267
+
2268
+ # Compute derived events
2269
+ profile.validate()
2270
+ profile.find_cycles()
2271
+ profile.ratio(TIME_RATIO, SAMPLES)
2272
+ profile.call_ratios(SAMPLES2)
2273
+ profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
2274
+
2275
+ return profile
2276
+
2277
+
2278
+ class XPerfParser(Parser):
2279
+ """Parser for CSVs generted by XPerf, from Microsoft Windows Performance Tools.
2280
+ """
2281
+
2282
+ def __init__(self, stream):
2283
+ Parser.__init__(self)
2284
+ self.stream = stream
2285
+ self.profile = Profile()
2286
+ self.profile[SAMPLES] = 0
2287
+ self.column = {}
2288
+
2289
+ def parse(self):
2290
+ import csv
2291
+ reader = csv.reader(
2292
+ self.stream,
2293
+ delimiter = ',',
2294
+ quotechar = None,
2295
+ escapechar = None,
2296
+ doublequote = False,
2297
+ skipinitialspace = True,
2298
+ lineterminator = '\r\n',
2299
+ quoting = csv.QUOTE_NONE)
2300
+ header = True
2301
+ for row in reader:
2302
+ if header:
2303
+ self.parse_header(row)
2304
+ header = False
2305
+ else:
2306
+ self.parse_row(row)
2307
+
2308
+ # compute derived data
2309
+ self.profile.validate()
2310
+ self.profile.find_cycles()
2311
+ self.profile.ratio(TIME_RATIO, SAMPLES)
2312
+ self.profile.call_ratios(SAMPLES2)
2313
+ self.profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
2314
+
2315
+ return self.profile
2316
+
2317
+ def parse_header(self, row):
2318
+ for column in range(len(row)):
2319
+ name = row[column]
2320
+ assert name not in self.column
2321
+ self.column[name] = column
2322
+
2323
+ def parse_row(self, row):
2324
+ fields = {}
2325
+ for name, column in compat_iteritems(self.column):
2326
+ value = row[column]
2327
+ for factory in int, float:
2328
+ try:
2329
+ value = factory(value)
2330
+ except ValueError:
2331
+ pass
2332
+ else:
2333
+ break
2334
+ fields[name] = value
2335
+
2336
+ process = fields['Process Name']
2337
+ symbol = fields['Module'] + '!' + fields['Function']
2338
+ weight = fields['Weight']
2339
+ count = fields['Count']
2340
+
2341
+ if process == 'Idle':
2342
+ return
2343
+
2344
+ function = self.get_function(process, symbol)
2345
+ function[SAMPLES] += weight * count
2346
+ self.profile[SAMPLES] += weight * count
2347
+
2348
+ stack = fields['Stack']
2349
+ if stack != '?':
2350
+ stack = stack.split('/')
2351
+ assert stack[0] == '[Root]'
2352
+ if stack[-1] != symbol:
2353
+ # XXX: some cases the sampled function does not appear in the stack
2354
+ stack.append(symbol)
2355
+ caller = None
2356
+ for symbol in stack[1:]:
2357
+ callee = self.get_function(process, symbol)
2358
+ if caller is not None:
2359
+ try:
2360
+ call = caller.calls[callee.id]
2361
+ except KeyError:
2362
+ call = Call(callee.id)
2363
+ call[SAMPLES2] = count
2364
+ caller.add_call(call)
2365
+ else:
2366
+ call[SAMPLES2] += count
2367
+ caller = callee
2368
+
2369
+ def get_function(self, process, symbol):
2370
+ function_id = process + '!' + symbol
2371
+
2372
+ try:
2373
+ function = self.profile.functions[function_id]
2374
+ except KeyError:
2375
+ module, name = symbol.split('!', 1)
2376
+ function = Function(function_id, name)
2377
+ function.process = process
2378
+ function.module = module
2379
+ function[SAMPLES] = 0
2380
+ self.profile.add_function(function)
2381
+
2382
+ return function
2383
+
2384
+
2385
+ class SleepyParser(Parser):
2386
+ """Parser for GNU gprof output.
2387
+
2388
+ See also:
2389
+ - http://www.codersnotes.com/sleepy/
2390
+ - http://sleepygraph.sourceforge.net/
2391
+ """
2392
+
2393
+ stdinInput = False
2394
+
2395
+ def __init__(self, filename):
2396
+ Parser.__init__(self)
2397
+
2398
+ from zipfile import ZipFile
2399
+
2400
+ self.database = ZipFile(filename)
2401
+
2402
+ self.symbols = {}
2403
+ self.calls = {}
2404
+
2405
+ self.profile = Profile()
2406
+
2407
+ _symbol_re = re.compile(
2408
+ r'^(?P<id>\w+)' +
2409
+ r'\s+"(?P<module>[^"]*)"' +
2410
+ r'\s+"(?P<procname>[^"]*)"' +
2411
+ r'\s+"(?P<sourcefile>[^"]*)"' +
2412
+ r'\s+(?P<sourceline>\d+)$'
2413
+ )
2414
+
2415
+ def openEntry(self, name):
2416
+ # Some versions of verysleepy use lowercase filenames
2417
+ for database_name in self.database.namelist():
2418
+ if name.lower() == database_name.lower():
2419
+ name = database_name
2420
+ break
2421
+
2422
+ return self.database.open(name, 'rU')
2423
+
2424
+ def parse_symbols(self):
2425
+ for line in self.openEntry('Symbols.txt'):
2426
+ line = line.decode('UTF-8')
2427
+
2428
+ mo = self._symbol_re.match(line)
2429
+ if mo:
2430
+ symbol_id, module, procname, sourcefile, sourceline = mo.groups()
2431
+
2432
+ function_id = ':'.join([module, procname])
2433
+
2434
+ try:
2435
+ function = self.profile.functions[function_id]
2436
+ except KeyError:
2437
+ function = Function(function_id, procname)
2438
+ function.module = module
2439
+ function[SAMPLES] = 0
2440
+ self.profile.add_function(function)
2441
+
2442
+ self.symbols[symbol_id] = function
2443
+
2444
+ def parse_callstacks(self):
2445
+ for line in self.openEntry('Callstacks.txt'):
2446
+ line = line.decode('UTF-8')
2447
+
2448
+ fields = line.split()
2449
+ samples = float(fields[0])
2450
+ callstack = fields[1:]
2451
+
2452
+ callstack = [self.symbols[symbol_id] for symbol_id in callstack]
2453
+
2454
+ callee = callstack[0]
2455
+
2456
+ callee[SAMPLES] += samples
2457
+ self.profile[SAMPLES] += samples
2458
+
2459
+ for caller in callstack[1:]:
2460
+ try:
2461
+ call = caller.calls[callee.id]
2462
+ except KeyError:
2463
+ call = Call(callee.id)
2464
+ call[SAMPLES2] = samples
2465
+ caller.add_call(call)
2466
+ else:
2467
+ call[SAMPLES2] += samples
2468
+
2469
+ callee = caller
2470
+
2471
+ def parse(self):
2472
+ profile = self.profile
2473
+ profile[SAMPLES] = 0
2474
+
2475
+ self.parse_symbols()
2476
+ self.parse_callstacks()
2477
+
2478
+ # Compute derived events
2479
+ profile.validate()
2480
+ profile.find_cycles()
2481
+ profile.ratio(TIME_RATIO, SAMPLES)
2482
+ profile.call_ratios(SAMPLES2)
2483
+ profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
2484
+
2485
+ return profile
2486
+
2487
+
2488
+ class AQtimeTable:
2489
+
2490
+ def __init__(self, name, fields):
2491
+ self.name = name
2492
+
2493
+ self.fields = fields
2494
+ self.field_column = {}
2495
+ for column in range(len(fields)):
2496
+ self.field_column[fields[column]] = column
2497
+ self.rows = []
2498
+
2499
+ def __len__(self):
2500
+ return len(self.rows)
2501
+
2502
+ def __iter__(self):
2503
+ for values, children in self.rows:
2504
+ fields = {}
2505
+ for name, value in zip(self.fields, values):
2506
+ fields[name] = value
2507
+ children = dict([(child.name, child) for child in children])
2508
+ yield fields, children
2509
+ raise StopIteration
2510
+
2511
+ def add_row(self, values, children=()):
2512
+ self.rows.append((values, children))
2513
+
2514
+
2515
+ class AQtimeParser(XmlParser):
2516
+
2517
+ def __init__(self, stream):
2518
+ XmlParser.__init__(self, stream)
2519
+ self.tables = {}
2520
+
2521
+ def parse(self):
2522
+ self.element_start('AQtime_Results')
2523
+ self.parse_headers()
2524
+ results = self.parse_results()
2525
+ self.element_end('AQtime_Results')
2526
+ return self.build_profile(results)
2527
+
2528
+ def parse_headers(self):
2529
+ self.element_start('HEADERS')
2530
+ while self.token.type == XML_ELEMENT_START:
2531
+ self.parse_table_header()
2532
+ self.element_end('HEADERS')
2533
+
2534
+ def parse_table_header(self):
2535
+ attrs = self.element_start('TABLE_HEADER')
2536
+ name = attrs['NAME']
2537
+ id = int(attrs['ID'])
2538
+ field_types = []
2539
+ field_names = []
2540
+ while self.token.type == XML_ELEMENT_START:
2541
+ field_type, field_name = self.parse_table_field()
2542
+ field_types.append(field_type)
2543
+ field_names.append(field_name)
2544
+ self.element_end('TABLE_HEADER')
2545
+ self.tables[id] = name, field_types, field_names
2546
+
2547
+ def parse_table_field(self):
2548
+ attrs = self.element_start('TABLE_FIELD')
2549
+ type = attrs['TYPE']
2550
+ name = self.character_data()
2551
+ self.element_end('TABLE_FIELD')
2552
+ return type, name
2553
+
2554
+ def parse_results(self):
2555
+ self.element_start('RESULTS')
2556
+ table = self.parse_data()
2557
+ self.element_end('RESULTS')
2558
+ return table
2559
+
2560
+ def parse_data(self):
2561
+ rows = []
2562
+ attrs = self.element_start('DATA')
2563
+ table_id = int(attrs['TABLE_ID'])
2564
+ table_name, field_types, field_names = self.tables[table_id]
2565
+ table = AQtimeTable(table_name, field_names)
2566
+ while self.token.type == XML_ELEMENT_START:
2567
+ row, children = self.parse_row(field_types)
2568
+ table.add_row(row, children)
2569
+ self.element_end('DATA')
2570
+ return table
2571
+
2572
+ def parse_row(self, field_types):
2573
+ row = [None]*len(field_types)
2574
+ children = []
2575
+ self.element_start('ROW')
2576
+ while self.token.type == XML_ELEMENT_START:
2577
+ if self.token.name_or_data == 'FIELD':
2578
+ field_id, field_value = self.parse_field(field_types)
2579
+ row[field_id] = field_value
2580
+ elif self.token.name_or_data == 'CHILDREN':
2581
+ children = self.parse_children()
2582
+ else:
2583
+ raise XmlTokenMismatch("<FIELD ...> or <CHILDREN ...>", self.token)
2584
+ self.element_end('ROW')
2585
+ return row, children
2586
+
2587
+ def parse_field(self, field_types):
2588
+ attrs = self.element_start('FIELD')
2589
+ id = int(attrs['ID'])
2590
+ type = field_types[id]
2591
+ value = self.character_data()
2592
+ if type == 'Integer':
2593
+ value = int(value)
2594
+ elif type == 'Float':
2595
+ value = float(value)
2596
+ elif type == 'Address':
2597
+ value = int(value)
2598
+ elif type == 'String':
2599
+ pass
2600
+ else:
2601
+ assert False
2602
+ self.element_end('FIELD')
2603
+ return id, value
2604
+
2605
+ def parse_children(self):
2606
+ children = []
2607
+ self.element_start('CHILDREN')
2608
+ while self.token.type == XML_ELEMENT_START:
2609
+ table = self.parse_data()
2610
+ assert table.name not in children
2611
+ children.append(table)
2612
+ self.element_end('CHILDREN')
2613
+ return children
2614
+
2615
+ def build_profile(self, results):
2616
+ assert results.name == 'Routines'
2617
+ profile = Profile()
2618
+ profile[TIME] = 0.0
2619
+ for fields, tables in results:
2620
+ function = self.build_function(fields)
2621
+ children = tables['Children']
2622
+ for fields, _ in children:
2623
+ call = self.build_call(fields)
2624
+ function.add_call(call)
2625
+ profile.add_function(function)
2626
+ profile[TIME] = profile[TIME] + function[TIME]
2627
+ profile[TOTAL_TIME] = profile[TIME]
2628
+ profile.ratio(TOTAL_TIME_RATIO, TOTAL_TIME)
2629
+ return profile
2630
+
2631
+ def build_function(self, fields):
2632
+ function = Function(self.build_id(fields), self.build_name(fields))
2633
+ function[TIME] = fields['Time']
2634
+ function[TOTAL_TIME] = fields['Time with Children']
2635
+ #function[TIME_RATIO] = fields['% Time']/100.0
2636
+ #function[TOTAL_TIME_RATIO] = fields['% with Children']/100.0
2637
+ return function
2638
+
2639
+ def build_call(self, fields):
2640
+ call = Call(self.build_id(fields))
2641
+ call[TIME] = fields['Time']
2642
+ call[TOTAL_TIME] = fields['Time with Children']
2643
+ #call[TIME_RATIO] = fields['% Time']/100.0
2644
+ #call[TOTAL_TIME_RATIO] = fields['% with Children']/100.0
2645
+ return call
2646
+
2647
+ def build_id(self, fields):
2648
+ return ':'.join([fields['Module Name'], fields['Unit Name'], fields['Routine Name']])
2649
+
2650
+ def build_name(self, fields):
2651
+ # TODO: use more fields
2652
+ return fields['Routine Name']
2653
+
2654
+
2655
+ class PstatsParser:
2656
+ """Parser python profiling statistics saved with te pstats module."""
2657
+
2658
+ stdinInput = False
2659
+ multipleInput = True
2660
+
2661
+ def __init__(self, *filename):
2662
+ import pstats
2663
+ try:
2664
+ self.stats = pstats.Stats(*filename)
2665
+ except ValueError:
2666
+ if sys.version_info[0] >= 3:
2667
+ raise
2668
+ import hotshot.stats
2669
+ self.stats = hotshot.stats.load(filename[0])
2670
+ self.profile = Profile()
2671
+ self.function_ids = {}
2672
+
2673
+ def get_function_name(self, key):
2674
+ filename, line, name = key
2675
+ module = os.path.splitext(filename)[0]
2676
+ module = os.path.basename(module)
2677
+ return "%s:%d:%s" % (module, line, name)
2678
+
2679
+ def get_function(self, key):
2680
+ try:
2681
+ id = self.function_ids[key]
2682
+ except KeyError:
2683
+ id = len(self.function_ids)
2684
+ name = self.get_function_name(key)
2685
+ function = Function(id, name)
2686
+ self.profile.functions[id] = function
2687
+ self.function_ids[key] = id
2688
+ else:
2689
+ function = self.profile.functions[id]
2690
+ return function
2691
+
2692
+ def parse(self):
2693
+ self.profile[TIME] = 0.0
2694
+ self.profile[TOTAL_TIME] = self.stats.total_tt
2695
+ for fn, (cc, nc, tt, ct, callers) in compat_iteritems(self.stats.stats):
2696
+ callee = self.get_function(fn)
2697
+ callee.called = nc
2698
+ callee[TOTAL_TIME] = ct
2699
+ callee[TIME] = tt
2700
+ self.profile[TIME] += tt
2701
+ self.profile[TOTAL_TIME] = max(self.profile[TOTAL_TIME], ct)
2702
+ for fn, value in compat_iteritems(callers):
2703
+ caller = self.get_function(fn)
2704
+ call = Call(callee.id)
2705
+ if isinstance(value, tuple):
2706
+ for i in xrange(0, len(value), 4):
2707
+ nc, cc, tt, ct = value[i:i+4]
2708
+ if CALLS in call:
2709
+ call[CALLS] += cc
2710
+ else:
2711
+ call[CALLS] = cc
2712
+
2713
+ if TOTAL_TIME in call:
2714
+ call[TOTAL_TIME] += ct
2715
+ else:
2716
+ call[TOTAL_TIME] = ct
2717
+
2718
+ else:
2719
+ call[CALLS] = value
2720
+ call[TOTAL_TIME] = ratio(value, nc)*ct
2721
+
2722
+ caller.add_call(call)
2723
+ #self.stats.print_stats()
2724
+ #self.stats.print_callees()
2725
+
2726
+ # Compute derived events
2727
+ self.profile.validate()
2728
+ self.profile.ratio(TIME_RATIO, TIME)
2729
+ self.profile.ratio(TOTAL_TIME_RATIO, TOTAL_TIME)
2730
+
2731
+ return self.profile
2732
+
2733
+
2734
+ class Theme:
2735
+
2736
+ def __init__(self,
2737
+ bgcolor = (0.0, 0.0, 1.0),
2738
+ mincolor = (0.0, 0.0, 0.0),
2739
+ maxcolor = (0.0, 0.0, 1.0),
2740
+ fontname = "Arial",
2741
+ fontcolor = "white",
2742
+ nodestyle = "filled",
2743
+ minfontsize = 10.0,
2744
+ maxfontsize = 10.0,
2745
+ minpenwidth = 0.5,
2746
+ maxpenwidth = 4.0,
2747
+ gamma = 2.2,
2748
+ skew = 1.0):
2749
+ self.bgcolor = bgcolor
2750
+ self.mincolor = mincolor
2751
+ self.maxcolor = maxcolor
2752
+ self.fontname = fontname
2753
+ self.fontcolor = fontcolor
2754
+ self.nodestyle = nodestyle
2755
+ self.minfontsize = minfontsize
2756
+ self.maxfontsize = maxfontsize
2757
+ self.minpenwidth = minpenwidth
2758
+ self.maxpenwidth = maxpenwidth
2759
+ self.gamma = gamma
2760
+ self.skew = skew
2761
+
2762
+ def graph_bgcolor(self):
2763
+ return self.hsl_to_rgb(*self.bgcolor)
2764
+
2765
+ def graph_fontname(self):
2766
+ return self.fontname
2767
+
2768
+ def graph_fontcolor(self):
2769
+ return self.fontcolor
2770
+
2771
+ def graph_fontsize(self):
2772
+ return self.minfontsize
2773
+
2774
+ def node_bgcolor(self, weight):
2775
+ return self.color(weight)
2776
+
2777
+ def node_fgcolor(self, weight):
2778
+ if self.nodestyle == "filled":
2779
+ return self.graph_bgcolor()
2780
+ else:
2781
+ return self.color(weight)
2782
+
2783
+ def node_fontsize(self, weight):
2784
+ return self.fontsize(weight)
2785
+
2786
+ def node_style(self):
2787
+ return self.nodestyle
2788
+
2789
+ def edge_color(self, weight):
2790
+ return self.color(weight)
2791
+
2792
+ def edge_fontsize(self, weight):
2793
+ return self.fontsize(weight)
2794
+
2795
+ def edge_penwidth(self, weight):
2796
+ return max(weight*self.maxpenwidth, self.minpenwidth)
2797
+
2798
+ def edge_arrowsize(self, weight):
2799
+ return 0.5 * math.sqrt(self.edge_penwidth(weight))
2800
+
2801
+ def fontsize(self, weight):
2802
+ return max(weight**2 * self.maxfontsize, self.minfontsize)
2803
+
2804
+ def color(self, weight):
2805
+ weight = min(max(weight, 0.0), 1.0)
2806
+
2807
+ hmin, smin, lmin = self.mincolor
2808
+ hmax, smax, lmax = self.maxcolor
2809
+
2810
+ if self.skew < 0:
2811
+ raise ValueError("Skew must be greater than 0")
2812
+ elif self.skew == 1.0:
2813
+ h = hmin + weight*(hmax - hmin)
2814
+ s = smin + weight*(smax - smin)
2815
+ l = lmin + weight*(lmax - lmin)
2816
+ else:
2817
+ base = self.skew
2818
+ h = hmin + ((hmax-hmin)*(-1.0 + (base ** weight)) / (base - 1.0))
2819
+ s = smin + ((smax-smin)*(-1.0 + (base ** weight)) / (base - 1.0))
2820
+ l = lmin + ((lmax-lmin)*(-1.0 + (base ** weight)) / (base - 1.0))
2821
+
2822
+ return self.hsl_to_rgb(h, s, l)
2823
+
2824
+ def hsl_to_rgb(self, h, s, l):
2825
+ """Convert a color from HSL color-model to RGB.
2826
+
2827
+ See also:
2828
+ - http://www.w3.org/TR/css3-color/#hsl-color
2829
+ """
2830
+
2831
+ h = h % 1.0
2832
+ s = min(max(s, 0.0), 1.0)
2833
+ l = min(max(l, 0.0), 1.0)
2834
+
2835
+ if l <= 0.5:
2836
+ m2 = l*(s + 1.0)
2837
+ else:
2838
+ m2 = l + s - l*s
2839
+ m1 = l*2.0 - m2
2840
+ r = self._hue_to_rgb(m1, m2, h + 1.0/3.0)
2841
+ g = self._hue_to_rgb(m1, m2, h)
2842
+ b = self._hue_to_rgb(m1, m2, h - 1.0/3.0)
2843
+
2844
+ # Apply gamma correction
2845
+ r **= self.gamma
2846
+ g **= self.gamma
2847
+ b **= self.gamma
2848
+
2849
+ return (r, g, b)
2850
+
2851
+ def _hue_to_rgb(self, m1, m2, h):
2852
+ if h < 0.0:
2853
+ h += 1.0
2854
+ elif h > 1.0:
2855
+ h -= 1.0
2856
+ if h*6 < 1.0:
2857
+ return m1 + (m2 - m1)*h*6.0
2858
+ elif h*2 < 1.0:
2859
+ return m2
2860
+ elif h*3 < 2.0:
2861
+ return m1 + (m2 - m1)*(2.0/3.0 - h)*6.0
2862
+ else:
2863
+ return m1
2864
+
2865
+
2866
+ TEMPERATURE_COLORMAP = Theme(
2867
+ mincolor = (2.0/3.0, 0.80, 0.25), # dark blue
2868
+ maxcolor = (0.0, 1.0, 0.5), # satured red
2869
+ gamma = 1.0
2870
+ )
2871
+
2872
+ PINK_COLORMAP = Theme(
2873
+ mincolor = (0.0, 1.0, 0.90), # pink
2874
+ maxcolor = (0.0, 1.0, 0.5), # satured red
2875
+ )
2876
+
2877
+ GRAY_COLORMAP = Theme(
2878
+ mincolor = (0.0, 0.0, 0.85), # light gray
2879
+ maxcolor = (0.0, 0.0, 0.0), # black
2880
+ )
2881
+
2882
+ BW_COLORMAP = Theme(
2883
+ minfontsize = 8.0,
2884
+ maxfontsize = 24.0,
2885
+ mincolor = (0.0, 0.0, 0.0), # black
2886
+ maxcolor = (0.0, 0.0, 0.0), # black
2887
+ minpenwidth = 0.1,
2888
+ maxpenwidth = 8.0,
2889
+ )
2890
+
2891
+ PRINT_COLORMAP = Theme(
2892
+ minfontsize = 18.0,
2893
+ maxfontsize = 30.0,
2894
+ fontcolor = "black",
2895
+ nodestyle = "solid",
2896
+ mincolor = (0.0, 0.0, 0.0), # black
2897
+ maxcolor = (0.0, 0.0, 0.0), # black
2898
+ minpenwidth = 0.1,
2899
+ maxpenwidth = 8.0,
2900
+ )
2901
+
2902
+
2903
+ class DotWriter:
2904
+ """Writer for the DOT language.
2905
+
2906
+ See also:
2907
+ - "The DOT Language" specification
2908
+ http://www.graphviz.org/doc/info/lang.html
2909
+ """
2910
+
2911
+ strip = False
2912
+ wrap = False
2913
+
2914
+ def __init__(self, fp):
2915
+ self.fp = fp
2916
+
2917
+ def wrap_function_name(self, name):
2918
+ """Split the function name on multiple lines."""
2919
+
2920
+ if len(name) > 32:
2921
+ ratio = 2.0/3.0
2922
+ height = max(int(len(name)/(1.0 - ratio) + 0.5), 1)
2923
+ width = max(len(name)/height, 32)
2924
+ # TODO: break lines in symbols
2925
+ name = textwrap.fill(name, width, break_long_words=False)
2926
+
2927
+ # Take away spaces
2928
+ name = name.replace(", ", ",")
2929
+ name = name.replace("> >", ">>")
2930
+ name = name.replace("> >", ">>") # catch consecutive
2931
+
2932
+ return name
2933
+
2934
+ show_function_events = [TOTAL_TIME_RATIO, TIME_RATIO]
2935
+ show_edge_events = [TOTAL_TIME_RATIO, CALLS]
2936
+
2937
+ def graph(self, profile, theme):
2938
+ self.begin_graph()
2939
+
2940
+ fontname = theme.graph_fontname()
2941
+ fontcolor = theme.graph_fontcolor()
2942
+ nodestyle = theme.node_style()
2943
+
2944
+ self.attr('graph', fontname=fontname, ranksep=0.25, nodesep=0.125)
2945
+ self.attr('node', fontname=fontname, shape="box", style=nodestyle, fontcolor=fontcolor, width=0, height=0)
2946
+ self.attr('edge', fontname=fontname)
2947
+
2948
+ for function in compat_itervalues(profile.functions):
2949
+ labels = []
2950
+ if function.process is not None:
2951
+ labels.append(function.process)
2952
+ if function.module is not None:
2953
+ labels.append(function.module)
2954
+
2955
+ if self.strip:
2956
+ function_name = function.stripped_name()
2957
+ else:
2958
+ function_name = function.name
2959
+ if self.wrap:
2960
+ function_name = self.wrap_function_name(function_name)
2961
+ labels.append(function_name)
2962
+
2963
+ for event in self.show_function_events:
2964
+ if event in function.events:
2965
+ label = event.format(function[event])
2966
+ labels.append(label)
2967
+ if function.called is not None:
2968
+ labels.append("%u%s" % (function.called, MULTIPLICATION_SIGN))
2969
+
2970
+ if function.weight is not None:
2971
+ weight = function.weight
2972
+ else:
2973
+ weight = 0.0
2974
+
2975
+ label = '\n'.join(labels)
2976
+ self.node(function.id,
2977
+ label = label,
2978
+ color = self.color(theme.node_bgcolor(weight)),
2979
+ fontcolor = self.color(theme.node_fgcolor(weight)),
2980
+ fontsize = "%.2f" % theme.node_fontsize(weight),
2981
+ )
2982
+
2983
+ for call in compat_itervalues(function.calls):
2984
+ callee = profile.functions[call.callee_id]
2985
+
2986
+ labels = []
2987
+ for event in self.show_edge_events:
2988
+ if event in call.events:
2989
+ label = event.format(call[event])
2990
+ labels.append(label)
2991
+
2992
+ if call.weight is not None:
2993
+ weight = call.weight
2994
+ elif callee.weight is not None:
2995
+ weight = callee.weight
2996
+ else:
2997
+ weight = 0.0
2998
+
2999
+ label = '\n'.join(labels)
3000
+
3001
+ self.edge(function.id, call.callee_id,
3002
+ label = label,
3003
+ color = self.color(theme.edge_color(weight)),
3004
+ fontcolor = self.color(theme.edge_color(weight)),
3005
+ fontsize = "%.2f" % theme.edge_fontsize(weight),
3006
+ penwidth = "%.2f" % theme.edge_penwidth(weight),
3007
+ labeldistance = "%.2f" % theme.edge_penwidth(weight),
3008
+ arrowsize = "%.2f" % theme.edge_arrowsize(weight),
3009
+ )
3010
+
3011
+ self.end_graph()
3012
+
3013
+ def begin_graph(self):
3014
+ self.write('digraph {\n')
3015
+
3016
+ def end_graph(self):
3017
+ self.write('}\n')
3018
+
3019
+ def attr(self, what, **attrs):
3020
+ self.write("\t")
3021
+ self.write(what)
3022
+ self.attr_list(attrs)
3023
+ self.write(";\n")
3024
+
3025
+ def node(self, node, **attrs):
3026
+ self.write("\t")
3027
+ self.id(node)
3028
+ self.attr_list(attrs)
3029
+ self.write(";\n")
3030
+
3031
+ def edge(self, src, dst, **attrs):
3032
+ self.write("\t")
3033
+ self.id(src)
3034
+ self.write(" -> ")
3035
+ self.id(dst)
3036
+ self.attr_list(attrs)
3037
+ self.write(";\n")
3038
+
3039
+ def attr_list(self, attrs):
3040
+ if not attrs:
3041
+ return
3042
+ self.write(' [')
3043
+ first = True
3044
+ for name, value in compat_iteritems(attrs):
3045
+ if first:
3046
+ first = False
3047
+ else:
3048
+ self.write(", ")
3049
+ self.id(name)
3050
+ self.write('=')
3051
+ self.id(value)
3052
+ self.write(']')
3053
+
3054
+ def id(self, id):
3055
+ if isinstance(id, (int, float)):
3056
+ s = str(id)
3057
+ elif isinstance(id, basestring):
3058
+ if id.isalnum() and not id.startswith('0x'):
3059
+ s = id
3060
+ else:
3061
+ s = self.escape(id)
3062
+ else:
3063
+ raise TypeError
3064
+ self.write(s)
3065
+
3066
+ def color(self, rgb):
3067
+ r, g, b = rgb
3068
+
3069
+ def float2int(f):
3070
+ if f <= 0.0:
3071
+ return 0
3072
+ if f >= 1.0:
3073
+ return 255
3074
+ return int(255.0*f + 0.5)
3075
+
3076
+ return "#" + "".join(["%02x" % float2int(c) for c in (r, g, b)])
3077
+
3078
+ def escape(self, s):
3079
+ if not PYTHON_3:
3080
+ s = s.encode('utf-8')
3081
+ s = s.replace('\\', r'\\')
3082
+ s = s.replace('\n', r'\n')
3083
+ s = s.replace('\t', r'\t')
3084
+ s = s.replace('"', r'\"')
3085
+ return '"' + s + '"'
3086
+
3087
+ def write(self, s):
3088
+ self.fp.write(s)
3089
+
3090
+
3091
+ class Main:
3092
+ """Main program."""
3093
+
3094
+ themes = {
3095
+ "color": TEMPERATURE_COLORMAP,
3096
+ "pink": PINK_COLORMAP,
3097
+ "gray": GRAY_COLORMAP,
3098
+ "bw": BW_COLORMAP,
3099
+ "print": PRINT_COLORMAP,
3100
+ }
3101
+
3102
+ formats = {
3103
+ "aqtime": AQtimeParser,
3104
+ "axe": AXEParser,
3105
+ "callgrind": CallgrindParser,
3106
+ "hprof": HProfParser,
3107
+ "oprofile": OprofileParser,
3108
+ "perf": PerfParser,
3109
+ "prof": GprofParser,
3110
+ "pstats": PstatsParser,
3111
+ "sleepy": SleepyParser,
3112
+ "sysprof": SysprofParser,
3113
+ "xperf": XPerfParser,
3114
+ }
3115
+
3116
+ def naturalJoin(self, values):
3117
+ if len(values) >= 2:
3118
+ return ', '.join(values[:-1]) + ' or ' + values[-1]
3119
+
3120
+ else:
3121
+ return ''.join(values)
3122
+
3123
+ def main(self):
3124
+ """Main program."""
3125
+
3126
+ global totalMethod
3127
+
3128
+ formatNames = list(self.formats.keys())
3129
+ formatNames.sort()
3130
+
3131
+ optparser = optparse.OptionParser(
3132
+ usage="\n\t%prog [options] [file] ...")
3133
+ optparser.add_option(
3134
+ '-o', '--output', metavar='FILE',
3135
+ type="string", dest="output",
3136
+ help="output filename [stdout]")
3137
+ optparser.add_option(
3138
+ '-n', '--node-thres', metavar='PERCENTAGE',
3139
+ type="float", dest="node_thres", default=0.5,
3140
+ help="eliminate nodes below this threshold [default: %default]")
3141
+ optparser.add_option(
3142
+ '-e', '--edge-thres', metavar='PERCENTAGE',
3143
+ type="float", dest="edge_thres", default=0.1,
3144
+ help="eliminate edges below this threshold [default: %default]")
3145
+ optparser.add_option(
3146
+ '-f', '--format',
3147
+ type="choice", choices=formatNames,
3148
+ dest="format", default="prof",
3149
+ help="profile format: %s [default: %%default]" % self.naturalJoin(formatNames))
3150
+ optparser.add_option(
3151
+ '--total',
3152
+ type="choice", choices=('callratios', 'callstacks'),
3153
+ dest="totalMethod", default=totalMethod,
3154
+ help="preferred method of calculating total time: callratios or callstacks (currently affects only perf format) [default: %default]")
3155
+ optparser.add_option(
3156
+ '-c', '--colormap',
3157
+ type="choice", choices=('color', 'pink', 'gray', 'bw', 'print'),
3158
+ dest="theme", default="color",
3159
+ help="color map: color, pink, gray, bw, or print [default: %default]")
3160
+ optparser.add_option(
3161
+ '-s', '--strip',
3162
+ action="store_true",
3163
+ dest="strip", default=False,
3164
+ help="strip function parameters, template parameters, and const modifiers from demangled C++ function names")
3165
+ optparser.add_option(
3166
+ '-w', '--wrap',
3167
+ action="store_true",
3168
+ dest="wrap", default=False,
3169
+ help="wrap function names")
3170
+ optparser.add_option(
3171
+ '--show-samples',
3172
+ action="store_true",
3173
+ dest="show_samples", default=False,
3174
+ help="show function samples")
3175
+ # add option to create subtree or show paths
3176
+ optparser.add_option(
3177
+ '-z', '--root',
3178
+ type="string",
3179
+ dest="root", default="",
3180
+ help="prune call graph to show only descendants of specified root function")
3181
+ optparser.add_option(
3182
+ '-l', '--leaf',
3183
+ type="string",
3184
+ dest="leaf", default="",
3185
+ help="prune call graph to show only ancestors of specified leaf function")
3186
+ # add a new option to control skew of the colorization curve
3187
+ optparser.add_option(
3188
+ '--skew',
3189
+ type="float", dest="theme_skew", default=1.0,
3190
+ help="skew the colorization curve. Values < 1.0 give more variety to lower percentages. Values > 1.0 give less variety to lower percentages")
3191
+ (self.options, self.args) = optparser.parse_args(sys.argv[1:])
3192
+
3193
+ if len(self.args) > 1 and self.options.format != 'pstats':
3194
+ optparser.error('incorrect number of arguments')
3195
+
3196
+ try:
3197
+ self.theme = self.themes[self.options.theme]
3198
+ except KeyError:
3199
+ optparser.error('invalid colormap \'%s\'' % self.options.theme)
3200
+
3201
+ # set skew on the theme now that it has been picked.
3202
+ if self.options.theme_skew:
3203
+ self.theme.skew = self.options.theme_skew
3204
+
3205
+ totalMethod = self.options.totalMethod
3206
+
3207
+ try:
3208
+ Format = self.formats[self.options.format]
3209
+ except KeyError:
3210
+ optparser.error('invalid format \'%s\'' % self.options.format)
3211
+
3212
+ if Format.stdinInput:
3213
+ if not self.args:
3214
+ fp = sys.stdin
3215
+ else:
3216
+ fp = open(self.args[0], 'rt')
3217
+ parser = Format(fp)
3218
+ elif Format.multipleInput:
3219
+ if not self.args:
3220
+ optparser.error('at least a file must be specified for %s input' % self.options.format)
3221
+ parser = Format(*self.args)
3222
+ else:
3223
+ if len(self.args) != 1:
3224
+ optparser.error('exactly one file must be specified for %s input' % self.options.format)
3225
+ parser = Format(self.args[0])
3226
+
3227
+ self.profile = parser.parse()
3228
+
3229
+ if self.options.output is None:
3230
+ self.output = sys.stdout
3231
+ else:
3232
+ if PYTHON_3:
3233
+ self.output = open(self.options.output, 'wt', encoding='UTF-8')
3234
+ else:
3235
+ self.output = open(self.options.output, 'wt')
3236
+
3237
+ self.write_graph()
3238
+
3239
+ def write_graph(self):
3240
+ dot = DotWriter(self.output)
3241
+ dot.strip = self.options.strip
3242
+ dot.wrap = self.options.wrap
3243
+ if self.options.show_samples:
3244
+ dot.show_function_events.append(SAMPLES)
3245
+
3246
+ profile = self.profile
3247
+ profile.prune(self.options.node_thres/100.0, self.options.edge_thres/100.0)
3248
+
3249
+ if self.options.root:
3250
+ rootId = profile.getFunctionId(self.options.root)
3251
+ if not rootId:
3252
+ sys.stderr.write('root node ' + self.options.root + ' not found (might already be pruned : try -e0 -n0 flags)\n')
3253
+ sys.exit(1)
3254
+ profile.prune_root(rootId)
3255
+ if self.options.leaf:
3256
+ leafId = profile.getFunctionId(self.options.leaf)
3257
+ if not leafId:
3258
+ sys.stderr.write('leaf node ' + self.options.leaf + ' not found (maybe already pruned : try -e0 -n0 flags)\n')
3259
+ sys.exit(1)
3260
+ profile.prune_leaf(leafId)
3261
+
3262
+ dot.graph(profile, self.theme)
3263
+
3264
+
3265
+ if __name__ == '__main__':
3266
+ Main().main()