html-to-markdown 2.24.6 → 2.25.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 (203) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/ext/html-to-markdown-rb/native/Cargo.lock +3 -26
  4. data/ext/html-to-markdown-rb/native/Cargo.toml +1 -1
  5. data/lib/html_to_markdown/version.rb +1 -1
  6. data/rust-vendor/html-to-markdown-rs/Cargo.toml +0 -1
  7. data/rust-vendor/html-to-markdown-rs/src/converter/main_helpers.rs +1 -1
  8. data/rust-vendor/html-to-markdown-rs/src/lib.rs +1 -0
  9. data/rust-vendor/{markup5ever_rcdom/lib.rs → html-to-markdown-rs/src/rcdom.rs} +53 -91
  10. data/rust-vendor/png/.cargo-checksum.json +1 -1
  11. data/rust-vendor/png/.cargo_vcs_info.json +1 -1
  12. data/rust-vendor/png/CHANGES.md +44 -0
  13. data/rust-vendor/png/Cargo.lock +124 -171
  14. data/rust-vendor/png/Cargo.toml +1 -1
  15. data/rust-vendor/png/Cargo.toml.orig +1 -1
  16. data/rust-vendor/png/benches/expand_paletted.rs +5 -5
  17. data/rust-vendor/png/benches/unfilter.rs +3 -3
  18. data/rust-vendor/png/src/adam7.rs +17 -10
  19. data/rust-vendor/png/src/common.rs +8 -8
  20. data/rust-vendor/png/src/decoder/mod.rs +53 -20
  21. data/rust-vendor/png/src/decoder/stream.rs +263 -78
  22. data/rust-vendor/png/src/decoder/unfiltering_buffer.rs +210 -53
  23. data/rust-vendor/png/src/decoder/zlib.rs +130 -90
  24. data/rust-vendor/png/src/encoder.rs +4 -2
  25. data/rust-vendor/png/src/{filter.rs → filter/mod.rs} +100 -367
  26. data/rust-vendor/png/src/filter/optimization-notes.md +104 -0
  27. data/rust-vendor/png/src/filter/paeth.rs +398 -0
  28. data/rust-vendor/png/src/filter/simd.rs +308 -0
  29. data/rust-vendor/png/src/lib.rs +1 -0
  30. metadata +7 -177
  31. data/rust-vendor/markup5ever_rcdom/.cargo-checksum.json +0 -1
  32. data/rust-vendor/markup5ever_rcdom/.cargo_vcs_info.json +0 -7
  33. data/rust-vendor/markup5ever_rcdom/Cargo.lock +0 -658
  34. data/rust-vendor/markup5ever_rcdom/Cargo.toml +0 -109
  35. data/rust-vendor/markup5ever_rcdom/Cargo.toml.orig +0 -42
  36. data/rust-vendor/markup5ever_rcdom/LICENSE-APACHE +0 -201
  37. data/rust-vendor/markup5ever_rcdom/LICENSE-MIT +0 -25
  38. data/rust-vendor/markup5ever_rcdom/README.md +0 -7
  39. data/rust-vendor/markup5ever_rcdom/custom-html5lib-tokenizer-tests/regression.test +0 -69
  40. data/rust-vendor/markup5ever_rcdom/data/test/ignore +0 -1
  41. data/rust-vendor/markup5ever_rcdom/examples/hello_xml.rs +0 -39
  42. data/rust-vendor/markup5ever_rcdom/examples/html2html.rs +0 -51
  43. data/rust-vendor/markup5ever_rcdom/examples/print-rcdom.rs +0 -78
  44. data/rust-vendor/markup5ever_rcdom/examples/xml_tree_printer.rs +0 -67
  45. data/rust-vendor/markup5ever_rcdom/html5lib-tests/.gitattributes +0 -2
  46. data/rust-vendor/markup5ever_rcdom/html5lib-tests/.github/workflows/downstream.yml +0 -76
  47. data/rust-vendor/markup5ever_rcdom/html5lib-tests/.github/workflows/lint.yml +0 -25
  48. data/rust-vendor/markup5ever_rcdom/html5lib-tests/.gitignore +0 -79
  49. data/rust-vendor/markup5ever_rcdom/html5lib-tests/AUTHORS.rst +0 -34
  50. data/rust-vendor/markup5ever_rcdom/html5lib-tests/LICENSE +0 -21
  51. data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/chardet/test_big5.txt +0 -51
  52. data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/scripted/tests1.dat +0 -5
  53. data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/test-yahoo-jp.dat +0 -10
  54. data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/tests1.dat +0 -388
  55. data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/tests2.dat +0 -115
  56. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint +0 -6
  57. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/__init__.py +0 -0
  58. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/__init__.py +0 -0
  59. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/LICENSE +0 -18
  60. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/__init__.py +0 -0
  61. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/lexer.py +0 -211
  62. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/lexer.pyi +0 -34
  63. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/parser.py +0 -872
  64. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/parser.pyi +0 -83
  65. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/py.typed +0 -0
  66. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/util.py +0 -72
  67. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/util.pyi +0 -7
  68. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/vendor.txt +0 -1
  69. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor-patches/funcparserlib.patch +0 -24
  70. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/lint.py +0 -280
  71. data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/parser.py +0 -177
  72. data/rust-vendor/markup5ever_rcdom/html5lib-tests/pyproject.toml +0 -7
  73. data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/core.test +0 -125
  74. data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/injectmeta.test +0 -66
  75. data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/optionaltags.test +0 -965
  76. data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/options.test +0 -60
  77. data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/whitespace.test +0 -51
  78. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/README.md +0 -107
  79. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/contentModelFlags.test +0 -93
  80. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/domjs.test +0 -335
  81. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/entities.test +0 -542
  82. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/escapeFlag.test +0 -36
  83. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/namedEntities.test +0 -42422
  84. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/numericEntities.test +0 -1677
  85. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/pendingSpecChanges.test +0 -9
  86. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test1.test +0 -353
  87. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test2.test +0 -275
  88. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test3.test +0 -11233
  89. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test4.test +0 -532
  90. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/unicodeChars.test +0 -1577
  91. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/unicodeCharsProblematic.test +0 -41
  92. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/xmlViolation.test +0 -20
  93. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/README.md +0 -108
  94. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/adoption01.dat +0 -354
  95. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/adoption02.dat +0 -39
  96. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/blocks.dat +0 -695
  97. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/comments01.dat +0 -217
  98. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/doctype01.dat +0 -474
  99. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/domjs-unsafe.dat +0 -0
  100. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/entities01.dat +0 -943
  101. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/entities02.dat +0 -309
  102. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/foreign-fragment.dat +0 -645
  103. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/html5test-com.dat +0 -301
  104. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/inbody01.dat +0 -54
  105. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/isindex.dat +0 -49
  106. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/main-element.dat +0 -46
  107. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/math.dat +0 -104
  108. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/menuitem-element.dat +0 -240
  109. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/namespace-sensitivity.dat +0 -22
  110. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/noscript01.dat +0 -237
  111. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/pending-spec-changes-plain-text-unsafe.dat +0 -0
  112. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/pending-spec-changes.dat +0 -46
  113. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/plain-text-unsafe.dat +0 -0
  114. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/quirks01.dat +0 -53
  115. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/ruby.dat +0 -302
  116. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scriptdata01.dat +0 -372
  117. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/adoption01.dat +0 -16
  118. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/ark.dat +0 -27
  119. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/webkit01.dat +0 -30
  120. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/search-element.dat +0 -46
  121. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/svg.dat +0 -104
  122. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tables01.dat +0 -322
  123. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/template.dat +0 -1673
  124. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests1.dat +0 -1956
  125. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests10.dat +0 -849
  126. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests11.dat +0 -523
  127. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests12.dat +0 -62
  128. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests14.dat +0 -75
  129. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests15.dat +0 -216
  130. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests16.dat +0 -2602
  131. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests17.dat +0 -179
  132. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests18.dat +0 -558
  133. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests19.dat +0 -1398
  134. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests2.dat +0 -831
  135. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests20.dat +0 -842
  136. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests21.dat +0 -306
  137. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests22.dat +0 -190
  138. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests23.dat +0 -168
  139. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests24.dat +0 -79
  140. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests25.dat +0 -288
  141. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests26.dat +0 -453
  142. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests3.dat +0 -305
  143. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests4.dat +0 -74
  144. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests5.dat +0 -210
  145. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests6.dat +0 -663
  146. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests7.dat +0 -453
  147. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests8.dat +0 -165
  148. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests9.dat +0 -472
  149. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests_innerHTML_1.dat +0 -843
  150. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tricky01.dat +0 -336
  151. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/webkit01.dat +0 -785
  152. data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/webkit02.dat +0 -554
  153. data/rust-vendor/markup5ever_rcdom/tests/foreach_html5lib_test/mod.rs +0 -41
  154. data/rust-vendor/markup5ever_rcdom/tests/html-driver.rs +0 -29
  155. data/rust-vendor/markup5ever_rcdom/tests/html-serializer.rs +0 -265
  156. data/rust-vendor/markup5ever_rcdom/tests/html-tokenizer.rs +0 -487
  157. data/rust-vendor/markup5ever_rcdom/tests/html-tree-builder.rs +0 -298
  158. data/rust-vendor/markup5ever_rcdom/tests/html-tree-sink.rs +0 -141
  159. data/rust-vendor/markup5ever_rcdom/tests/util/find_tests.rs +0 -34
  160. data/rust-vendor/markup5ever_rcdom/tests/util/runner.rs +0 -48
  161. data/rust-vendor/markup5ever_rcdom/tests/xml-driver.rs +0 -101
  162. data/rust-vendor/markup5ever_rcdom/tests/xml-tokenizer.rs +0 -374
  163. data/rust-vendor/markup5ever_rcdom/tests/xml-tree-builder.rs +0 -237
  164. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/AUTHORS.rst +0 -9
  165. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/LICENSE +0 -21
  166. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/README.md +0 -92
  167. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/comments.test +0 -274
  168. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/doctype.test +0 -3232
  169. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/entities.test +0 -283
  170. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/eof.test +0 -113
  171. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/namedEntities.test +0 -42210
  172. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/numericEntities.test +0 -1349
  173. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/test1.test +0 -162
  174. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/test2.test +0 -64
  175. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/unicodeChars.test +0 -1295
  176. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/README.md +0 -104
  177. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/namespace.dat +0 -119
  178. data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/test1.dat +0 -124
  179. data/rust-vendor/xml5ever/.cargo-checksum.json +0 -1
  180. data/rust-vendor/xml5ever/.cargo_vcs_info.json +0 -6
  181. data/rust-vendor/xml5ever/Cargo.lock +0 -752
  182. data/rust-vendor/xml5ever/Cargo.toml +0 -69
  183. data/rust-vendor/xml5ever/Cargo.toml.orig +0 -29
  184. data/rust-vendor/xml5ever/LICENSE-APACHE +0 -201
  185. data/rust-vendor/xml5ever/LICENSE-MIT +0 -25
  186. data/rust-vendor/xml5ever/README.md +0 -72
  187. data/rust-vendor/xml5ever/benches/xml5ever.rs +0 -77
  188. data/rust-vendor/xml5ever/data/bench/strong.xml +0 -1
  189. data/rust-vendor/xml5ever/examples/README.md +0 -223
  190. data/rust-vendor/xml5ever/examples/example.xml +0 -3
  191. data/rust-vendor/xml5ever/examples/simple_xml_tokenizer.rs +0 -81
  192. data/rust-vendor/xml5ever/examples/xml_tokenizer.rs +0 -115
  193. data/rust-vendor/xml5ever/src/driver.rs +0 -90
  194. data/rust-vendor/xml5ever/src/lib.rs +0 -47
  195. data/rust-vendor/xml5ever/src/macros.rs +0 -18
  196. data/rust-vendor/xml5ever/src/serialize/mod.rs +0 -216
  197. data/rust-vendor/xml5ever/src/tokenizer/char_ref/mod.rs +0 -456
  198. data/rust-vendor/xml5ever/src/tokenizer/interface.rs +0 -116
  199. data/rust-vendor/xml5ever/src/tokenizer/mod.rs +0 -1344
  200. data/rust-vendor/xml5ever/src/tokenizer/qname.rs +0 -84
  201. data/rust-vendor/xml5ever/src/tokenizer/states.rs +0 -167
  202. data/rust-vendor/xml5ever/src/tree_builder/mod.rs +0 -774
  203. data/rust-vendor/xml5ever/src/tree_builder/types.rs +0 -37
@@ -0,0 +1,308 @@
1
+ ///! Optional module containing `portable_simd` versions of the most
2
+ ///! important unfiltering algorithms. Enable using the `unstable` feature.
3
+ use core::convert::TryInto;
4
+ use core::simd::prelude::*;
5
+ use core::simd::Select;
6
+ // Import the fastest arch-specific scalar implementations from the outer crate.
7
+ #[cfg(not(target_arch = "x86_64"))]
8
+ use super::paeth::filter_paeth as filter_paeth_chosen;
9
+ #[cfg(target_arch = "x86_64")]
10
+ use super::paeth::filter_paeth_stbi as filter_paeth_chosen;
11
+
12
+ /// Paeth predictor specialized for AArch64 systems. Ported from the libpng
13
+ /// implementation at
14
+ /// https://github.com/pnggroup/libpng/blob/master/arm/filter_neon_intrinsics.c
15
+ #[cfg(target_arch = "aarch64")]
16
+ #[inline(always)]
17
+ fn paeth_predictor_simd<const SIZE: usize>(
18
+ a_i16: Simd<i16, SIZE>,
19
+ b_i16: Simd<i16, SIZE>,
20
+ c_i16: Simd<i16, SIZE>,
21
+ ) -> Simd<u8, SIZE> {
22
+ let pa = (b_i16 - c_i16).abs();
23
+ let pb = (a_i16 - c_i16).abs();
24
+ let pc = (a_i16 + b_i16 - c_i16 - c_i16).abs();
25
+
26
+ let mut nearest = a_i16;
27
+ let mut min_dist = pa;
28
+
29
+ // Tie-breaking: left, then above, then upper-left.
30
+ let pb_lt_min = pb.simd_lt(min_dist);
31
+ nearest = pb_lt_min.select(b_i16, nearest);
32
+ min_dist = pb_lt_min.select(pb, min_dist);
33
+
34
+ let pc_lt_min = pc.simd_lt(min_dist);
35
+ nearest = pc_lt_min.select(c_i16, nearest);
36
+
37
+ nearest.cast::<u8>()
38
+ }
39
+
40
+ /// Paeth predictor based on the `filter_paeth_stbi` formulation, which
41
+ /// performs better on x86_64 systems.
42
+ #[cfg(not(target_arch = "aarch64"))]
43
+ #[inline(always)]
44
+ fn paeth_predictor_simd<const SIZE: usize>(
45
+ a_i16: Simd<i16, SIZE>,
46
+ b_i16: Simd<i16, SIZE>,
47
+ c_i16: Simd<i16, SIZE>,
48
+ ) -> Simd<u8, SIZE> {
49
+ let thresh = c_i16 * Simd::splat(3) - (a_i16 + b_i16);
50
+ let lo = a_i16.simd_min(b_i16);
51
+ let hi = a_i16.simd_max(b_i16);
52
+ let t0 = hi.simd_le(thresh).select(lo, c_i16);
53
+ thresh.simd_le(lo).select(hi, t0).cast::<u8>()
54
+ }
55
+
56
+ /// Core kernel for 3bpp Paeth unfiltering. Takes a `b_vec` consisting of
57
+ /// 16 RGB above the starting offset, a `c_vec_initial` which is the
58
+ /// previous pixel from before the starting offset, and a `current_a`
59
+ /// which is the previous pixel to the left of `x_out`, which is the 16
60
+ /// pixels we're unfiltering. Returns the next `a` pixel and also updates
61
+ /// `x_out`.
62
+ #[inline(always)]
63
+ fn process_paeth_chunk_bpp3_s48(
64
+ // Previous `a` pixel from the last pump, or zero if this is the first.
65
+ mut current_a: Simd<u8, 3>,
66
+ // 48 bytes from the row above.
67
+ b_vec: &Simd<u8, 48>,
68
+ // The last three bytes of the previous `b_vec`, or zero if this if the first.
69
+ c_vec_initial: Simd<u8, 3>,
70
+ // 48 bytes from the current row (filtered) also re-used as the output.
71
+ x_out: &mut Simd<u8, 48>,
72
+ ) -> Simd<u8, 3> {
73
+ let x_in = *x_out;
74
+
75
+ // Store the outputs of the caluation as we go along, then we can do a
76
+ // a wide vectorized add at the end of the loop.
77
+ let mut preds = [0u8; 48];
78
+
79
+ // Shift b and sift in the lowest 3 elements from the previous pump
80
+ // to form c.
81
+ let mut c_vec = b_vec.shift_elements_right::<3>(0u8);
82
+ c_vec.as_mut_array()[0..3].copy_from_slice(c_vec_initial.as_array());
83
+
84
+ // For each RGB pixel in the 48-byte window, we a) extract the relevant
85
+ // parts of a, b, c and input x, then b) apply the paeth predictor to
86
+ // what's extracted, then c) merge them to form the 'a' pixel for the
87
+ // next part of the calculation, and update the predictpr buffer.
88
+ macro_rules! process_pixel {
89
+ ($shift:expr) => {
90
+ let a_i16 = current_a.cast::<i16>();
91
+ let b_i16 = b_vec.extract::<$shift, 3>().cast::<i16>();
92
+ let c_i16 = c_vec.extract::<$shift, 3>().cast::<i16>();
93
+ let pred = paeth_predictor_simd(a_i16, b_i16, c_i16);
94
+ current_a = x_in.extract::<$shift, 3>() + pred;
95
+ // This is necessary to break the data dependency between the
96
+ // output and the next pixel as much as possible.
97
+ preds[$shift..$shift + 3].copy_from_slice(pred.as_array());
98
+ };
99
+ }
100
+
101
+ process_pixel!(0);
102
+ process_pixel!(3);
103
+ process_pixel!(6);
104
+ process_pixel!(9);
105
+ process_pixel!(12);
106
+ process_pixel!(15);
107
+ process_pixel!(18);
108
+ process_pixel!(21);
109
+ process_pixel!(24);
110
+ process_pixel!(27);
111
+ process_pixel!(30);
112
+ process_pixel!(33);
113
+ process_pixel!(36);
114
+ process_pixel!(39);
115
+ process_pixel!(42);
116
+ process_pixel!(45);
117
+
118
+ // Commit the unfiltered result and return the next 'a' pixel.
119
+ *x_out += Simd::from_array(preds);
120
+ current_a
121
+ }
122
+
123
+ /// Applies Paeth unfiltering on the `current` pixel row using `prev` row,
124
+ /// interpreting the input data as RGB.
125
+ pub fn paeth_unfilter_3bpp(current: &mut [u8], prev: &[u8]) {
126
+ const BPP: usize = 3;
127
+ const STRIDE_BYTES: usize = 48; // 16 pixels * 3 bytes/pixel.
128
+
129
+ // Use the standard convention of [c] [b]
130
+ // [a] [x]
131
+ // We load 48 bytes of each and use a sliding window approach to minimize loads/stores.
132
+ // Whilst we cannot break the strict data dependency on [a], we can agressively unroll
133
+ // the calculation and allow independent computation of the `pa` prediction variables.
134
+ // Initially set these to zero.
135
+ let mut a: Simd<u8, BPP> = Default::default(); // Left pixel (unfiltered)
136
+ let mut c: Simd<u8, BPP> = Default::default(); // Upper-left pixel (unfiltered)
137
+
138
+ // Decide the number of chunks and setup iterators for the SIMD body and scalar fallback.
139
+ let mut current_iter = current.chunks_exact_mut(STRIDE_BYTES);
140
+ let mut previous_iter = prev.chunks_exact(STRIDE_BYTES);
141
+ let combined_iter = (&mut current_iter).zip(&mut previous_iter);
142
+
143
+ for (chunk, prev_chunk) in combined_iter {
144
+ let mut x: Simd<u8, STRIDE_BYTES> = Simd::<u8, STRIDE_BYTES>::from_slice(chunk);
145
+ let b: Simd<u8, STRIDE_BYTES> = Simd::<u8, STRIDE_BYTES>::from_slice(prev_chunk);
146
+
147
+ // Process the chunk using the SIMD helper, passing the initial `c`.
148
+ a = process_paeth_chunk_bpp3_s48(a, &b, c, &mut x);
149
+
150
+ // Update `c` for the next chunk: it's the upper-left of the next chunk,
151
+ // which corresponds to the upper-right of the current chunk's `b` vector.
152
+ c = b.extract::<{ STRIDE_BYTES - BPP }, BPP>();
153
+
154
+ // `TryInto` and `copy_to_slice` have similar performance here.
155
+ x.copy_to_slice(chunk);
156
+ }
157
+
158
+ // Scalar remainder.
159
+ let mut a_bpp = a.to_array();
160
+ let mut c_bpp = c.to_array();
161
+ for (chunk, b_bpp) in current_iter
162
+ .into_remainder()
163
+ .chunks_exact_mut(BPP)
164
+ .zip(previous_iter.remainder().chunks_exact(BPP))
165
+ {
166
+ let new_chunk = [
167
+ chunk[0].wrapping_add(filter_paeth_chosen(
168
+ a_bpp[0].into(),
169
+ b_bpp[0].into(),
170
+ c_bpp[0].into(),
171
+ )),
172
+ chunk[1].wrapping_add(filter_paeth_chosen(
173
+ a_bpp[1].into(),
174
+ b_bpp[1].into(),
175
+ c_bpp[1].into(),
176
+ )),
177
+ chunk[2].wrapping_add(filter_paeth_chosen(
178
+ a_bpp[2].into(),
179
+ b_bpp[2].into(),
180
+ c_bpp[2].into(),
181
+ )),
182
+ ];
183
+ *TryInto::<&mut [u8; BPP]>::try_into(chunk).unwrap() = new_chunk;
184
+ a_bpp = new_chunk;
185
+ c_bpp = b_bpp.try_into().unwrap();
186
+ }
187
+ }
188
+
189
+ /// Core kernel for 4bpp Paeth unfiltering. Takes a `b_vec` consisting of
190
+ /// 16 RGB above the starting offset, a `c_vec_initial` which is the
191
+ /// previous pixel from before the starting offset, and a `current_a`
192
+ /// which is the previous pixel to the left of `x_out`, which is the 16
193
+ /// pixels we're unfiltering. Returns the next `a` pixel and also updates
194
+ /// `x_out`.
195
+ #[inline(always)]
196
+ fn process_paeth_chunk_bpp4_s64(
197
+ mut current_a: Simd<u8, 4>,
198
+ b_vec: &Simd<u8, 64>,
199
+ c_vec_initial: Simd<u8, 4>,
200
+ x_out: &mut Simd<u8, 64>,
201
+ ) -> Simd<u8, 4> {
202
+ let x_in = *x_out;
203
+ let mut preds = [0u8; 64];
204
+
205
+ // Mix and shift the previous pixel into b to form c
206
+ let mut c_vec = b_vec.shift_elements_right::<4>(0u8);
207
+ c_vec.as_mut_array()[0..4].copy_from_slice(c_vec_initial.as_array());
208
+
209
+ // For each RGB pixel in the 48-byte window, we a) extract the relevant
210
+ // parts of a, b, c and input x, then b) apply the paeth predictor to
211
+ // what's extracted, then c) merge them to form the 'a' pixel for the
212
+ // next part of the calculation, and update the predictor buffer.
213
+ macro_rules! process_pixel {
214
+ ($shift:expr) => {
215
+ let a_i16 = current_a.cast::<i16>();
216
+ let b_i16 = b_vec.extract::<$shift, 4>().cast::<i16>();
217
+ let c_i16 = c_vec.extract::<$shift, 4>().cast::<i16>();
218
+ let pred = paeth_predictor_simd(a_i16, b_i16, c_i16);
219
+ current_a = x_in.extract::<$shift, 4>() + pred;
220
+ preds[$shift..$shift + 4].copy_from_slice(pred.as_array());
221
+ };
222
+ }
223
+
224
+ process_pixel!(0);
225
+ process_pixel!(4);
226
+ process_pixel!(8);
227
+ process_pixel!(12);
228
+ process_pixel!(16);
229
+ process_pixel!(20);
230
+ process_pixel!(24);
231
+ process_pixel!(28);
232
+ process_pixel!(32);
233
+ process_pixel!(36);
234
+ process_pixel!(40);
235
+ process_pixel!(44);
236
+ process_pixel!(48);
237
+ process_pixel!(52);
238
+ process_pixel!(56);
239
+ process_pixel!(60);
240
+
241
+ // Do a wide vectorized add to commit the predictions and return the next `a` pixel.
242
+ *x_out += Simd::from_array(preds);
243
+ current_a
244
+ }
245
+
246
+ /// Applies Paeth unfiltering on the `current` pixel row using `prev` row,
247
+ /// interpreting the input data as RGBA.
248
+ pub fn paeth_unfilter_4bpp(row: &mut [u8], prev_row: &[u8]) {
249
+ const BPP: usize = 4;
250
+ const STRIDE_BYTES: usize = 64; // 16 pixels * 4 bytes/pixel
251
+
252
+ let mut a: Simd<u8, BPP> = Default::default(); // Left pixel (unfiltered)
253
+ let mut c: Simd<u8, BPP> = Default::default(); // Upper-left pixel (unfiltered)
254
+
255
+ // Set up iterators for SIMD body and scalar remainder.
256
+ let chunks = row.len() / STRIDE_BYTES;
257
+ let (simd_row, remainder_row) = row.split_at_mut(chunks * STRIDE_BYTES);
258
+ let (simd_prev_row, remainder_prev_row) = prev_row.split_at(chunks * STRIDE_BYTES);
259
+ let row_iter = simd_row.chunks_exact_mut(STRIDE_BYTES);
260
+ let prev_iter = simd_prev_row.chunks_exact(STRIDE_BYTES);
261
+ let combined_iter = row_iter.zip(prev_iter);
262
+
263
+ for (chunk, prev_chunk) in combined_iter {
264
+ let mut x: Simd<u8, STRIDE_BYTES> = Simd::<u8, STRIDE_BYTES>::from_slice(chunk);
265
+ let b: Simd<u8, STRIDE_BYTES> = Simd::<u8, STRIDE_BYTES>::from_slice(prev_chunk);
266
+
267
+ a = process_paeth_chunk_bpp4_s64(a, &b, c, &mut x);
268
+
269
+ // Update `vlast` for the next chunk: last BPP bytes of `b`
270
+ c = b.extract::<{ STRIDE_BYTES - BPP }, BPP>();
271
+
272
+ x.copy_to_slice(chunk);
273
+ }
274
+
275
+ // Scalar remainder.
276
+ let mut a_bpp = a.to_array();
277
+ let mut c_bpp = c.to_array();
278
+ for (chunk, b_bpp) in remainder_row
279
+ .chunks_exact_mut(BPP)
280
+ .zip(remainder_prev_row.chunks_exact(BPP))
281
+ {
282
+ let new_chunk = [
283
+ chunk[0].wrapping_add(filter_paeth_chosen(
284
+ a_bpp[0].into(),
285
+ b_bpp[0].into(),
286
+ c_bpp[0].into(),
287
+ )),
288
+ chunk[1].wrapping_add(filter_paeth_chosen(
289
+ a_bpp[1].into(),
290
+ b_bpp[1].into(),
291
+ c_bpp[1].into(),
292
+ )),
293
+ chunk[2].wrapping_add(filter_paeth_chosen(
294
+ a_bpp[2].into(),
295
+ b_bpp[2].into(),
296
+ c_bpp[2].into(),
297
+ )),
298
+ chunk[3].wrapping_add(filter_paeth_chosen(
299
+ a_bpp[3].into(),
300
+ b_bpp[3].into(),
301
+ c_bpp[3].into(),
302
+ )),
303
+ ];
304
+ *TryInto::<&mut [u8; BPP]>::try_into(chunk).unwrap() = new_chunk;
305
+ a_bpp = new_chunk;
306
+ c_bpp = b_bpp.try_into().unwrap();
307
+ }
308
+ }
@@ -66,6 +66,7 @@
66
66
  #![allow(clippy::derivable_impls)]
67
67
  // IIUC format args capture was stabilized in Rust 1.58.1.
68
68
  #![allow(clippy::uninlined_format_args)]
69
+ #![cfg_attr(feature = "unstable", feature(portable_simd))]
69
70
 
70
71
  mod adam7;
71
72
  pub mod chunk;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html-to-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.24.6
4
+ version: 2.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Na'aman Hirschfeld
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-02-14 00:00:00.000000000 Z
11
+ date: 2026-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys
@@ -1504,6 +1504,7 @@ files:
1504
1504
  - rust-vendor/html-to-markdown-rs/src/options/preprocessing.rs
1505
1505
  - rust-vendor/html-to-markdown-rs/src/options/validation.rs
1506
1506
  - rust-vendor/html-to-markdown-rs/src/prelude.rs
1507
+ - rust-vendor/html-to-markdown-rs/src/rcdom.rs
1507
1508
  - rust-vendor/html-to-markdown-rs/src/safety.rs
1508
1509
  - rust-vendor/html-to-markdown-rs/src/text.rs
1509
1510
  - rust-vendor/html-to-markdown-rs/src/validation.rs
@@ -2929,155 +2930,6 @@ files:
2929
2930
  - rust-vendor/markup5ever/serialize.rs
2930
2931
  - rust-vendor/markup5ever/util/buffer_queue.rs
2931
2932
  - rust-vendor/markup5ever/util/smallcharset.rs
2932
- - rust-vendor/markup5ever_rcdom/.cargo-checksum.json
2933
- - rust-vendor/markup5ever_rcdom/.cargo_vcs_info.json
2934
- - rust-vendor/markup5ever_rcdom/Cargo.lock
2935
- - rust-vendor/markup5ever_rcdom/Cargo.toml
2936
- - rust-vendor/markup5ever_rcdom/Cargo.toml.orig
2937
- - rust-vendor/markup5ever_rcdom/LICENSE-APACHE
2938
- - rust-vendor/markup5ever_rcdom/LICENSE-MIT
2939
- - rust-vendor/markup5ever_rcdom/README.md
2940
- - rust-vendor/markup5ever_rcdom/custom-html5lib-tokenizer-tests/regression.test
2941
- - rust-vendor/markup5ever_rcdom/data/test/ignore
2942
- - rust-vendor/markup5ever_rcdom/examples/hello_xml.rs
2943
- - rust-vendor/markup5ever_rcdom/examples/html2html.rs
2944
- - rust-vendor/markup5ever_rcdom/examples/print-rcdom.rs
2945
- - rust-vendor/markup5ever_rcdom/examples/xml_tree_printer.rs
2946
- - rust-vendor/markup5ever_rcdom/html5lib-tests/.gitattributes
2947
- - rust-vendor/markup5ever_rcdom/html5lib-tests/.github/workflows/downstream.yml
2948
- - rust-vendor/markup5ever_rcdom/html5lib-tests/.github/workflows/lint.yml
2949
- - rust-vendor/markup5ever_rcdom/html5lib-tests/.gitignore
2950
- - rust-vendor/markup5ever_rcdom/html5lib-tests/AUTHORS.rst
2951
- - rust-vendor/markup5ever_rcdom/html5lib-tests/LICENSE
2952
- - rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/chardet/test_big5.txt
2953
- - rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/scripted/tests1.dat
2954
- - rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/test-yahoo-jp.dat
2955
- - rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/tests1.dat
2956
- - rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/tests2.dat
2957
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint
2958
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/__init__.py
2959
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor-patches/funcparserlib.patch
2960
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/__init__.py
2961
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/LICENSE
2962
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/__init__.py
2963
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/lexer.py
2964
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/lexer.pyi
2965
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/parser.py
2966
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/parser.pyi
2967
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/py.typed
2968
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/util.py
2969
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/util.pyi
2970
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/vendor.txt
2971
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/lint.py
2972
- - rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/parser.py
2973
- - rust-vendor/markup5ever_rcdom/html5lib-tests/pyproject.toml
2974
- - rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/core.test
2975
- - rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/injectmeta.test
2976
- - rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/optionaltags.test
2977
- - rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/options.test
2978
- - rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/whitespace.test
2979
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/README.md
2980
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/contentModelFlags.test
2981
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/domjs.test
2982
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/entities.test
2983
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/escapeFlag.test
2984
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/namedEntities.test
2985
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/numericEntities.test
2986
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/pendingSpecChanges.test
2987
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test1.test
2988
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test2.test
2989
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test3.test
2990
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test4.test
2991
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/unicodeChars.test
2992
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/unicodeCharsProblematic.test
2993
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/xmlViolation.test
2994
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/README.md
2995
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/adoption01.dat
2996
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/adoption02.dat
2997
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/blocks.dat
2998
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/comments01.dat
2999
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/doctype01.dat
3000
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/domjs-unsafe.dat
3001
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/entities01.dat
3002
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/entities02.dat
3003
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/foreign-fragment.dat
3004
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/html5test-com.dat
3005
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/inbody01.dat
3006
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/isindex.dat
3007
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/main-element.dat
3008
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/math.dat
3009
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/menuitem-element.dat
3010
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/namespace-sensitivity.dat
3011
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/noscript01.dat
3012
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/pending-spec-changes-plain-text-unsafe.dat
3013
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/pending-spec-changes.dat
3014
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/plain-text-unsafe.dat
3015
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/quirks01.dat
3016
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/ruby.dat
3017
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scriptdata01.dat
3018
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/adoption01.dat
3019
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/ark.dat
3020
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/webkit01.dat
3021
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/search-element.dat
3022
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/svg.dat
3023
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tables01.dat
3024
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/template.dat
3025
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests1.dat
3026
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests10.dat
3027
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests11.dat
3028
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests12.dat
3029
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests14.dat
3030
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests15.dat
3031
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests16.dat
3032
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests17.dat
3033
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests18.dat
3034
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests19.dat
3035
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests2.dat
3036
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests20.dat
3037
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests21.dat
3038
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests22.dat
3039
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests23.dat
3040
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests24.dat
3041
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests25.dat
3042
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests26.dat
3043
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests3.dat
3044
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests4.dat
3045
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests5.dat
3046
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests6.dat
3047
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests7.dat
3048
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests8.dat
3049
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests9.dat
3050
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests_innerHTML_1.dat
3051
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tricky01.dat
3052
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/webkit01.dat
3053
- - rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/webkit02.dat
3054
- - rust-vendor/markup5ever_rcdom/lib.rs
3055
- - rust-vendor/markup5ever_rcdom/tests/foreach_html5lib_test/mod.rs
3056
- - rust-vendor/markup5ever_rcdom/tests/html-driver.rs
3057
- - rust-vendor/markup5ever_rcdom/tests/html-serializer.rs
3058
- - rust-vendor/markup5ever_rcdom/tests/html-tokenizer.rs
3059
- - rust-vendor/markup5ever_rcdom/tests/html-tree-builder.rs
3060
- - rust-vendor/markup5ever_rcdom/tests/html-tree-sink.rs
3061
- - rust-vendor/markup5ever_rcdom/tests/util/find_tests.rs
3062
- - rust-vendor/markup5ever_rcdom/tests/util/runner.rs
3063
- - rust-vendor/markup5ever_rcdom/tests/xml-driver.rs
3064
- - rust-vendor/markup5ever_rcdom/tests/xml-tokenizer.rs
3065
- - rust-vendor/markup5ever_rcdom/tests/xml-tree-builder.rs
3066
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/AUTHORS.rst
3067
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/LICENSE
3068
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/README.md
3069
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/comments.test
3070
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/doctype.test
3071
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/entities.test
3072
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/eof.test
3073
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/namedEntities.test
3074
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/numericEntities.test
3075
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/test1.test
3076
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/test2.test
3077
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/unicodeChars.test
3078
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/README.md
3079
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/namespace.dat
3080
- - rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/test1.dat
3081
2933
  - rust-vendor/memchr/.cargo-checksum.json
3082
2934
  - rust-vendor/memchr/.cargo_vcs_info.json
3083
2935
  - rust-vendor/memchr/.ignore
@@ -3863,7 +3715,10 @@ files:
3863
3715
  - rust-vendor/png/src/decoder/unfiltering_buffer.rs
3864
3716
  - rust-vendor/png/src/decoder/zlib.rs
3865
3717
  - rust-vendor/png/src/encoder.rs
3866
- - rust-vendor/png/src/filter.rs
3718
+ - rust-vendor/png/src/filter/mod.rs
3719
+ - rust-vendor/png/src/filter/optimization-notes.md
3720
+ - rust-vendor/png/src/filter/paeth.rs
3721
+ - rust-vendor/png/src/filter/simd.rs
3867
3722
  - rust-vendor/png/src/lib.rs
3868
3723
  - rust-vendor/png/src/srgb.rs
3869
3724
  - rust-vendor/png/src/test_utils.rs
@@ -8395,31 +8250,6 @@ files:
8395
8250
  - rust-vendor/wit-parser/tests/ui/worlds-union-dedup.wit.json
8396
8251
  - rust-vendor/wit-parser/tests/ui/worlds-with-types.wit
8397
8252
  - rust-vendor/wit-parser/tests/ui/worlds-with-types.wit.json
8398
- - rust-vendor/xml5ever/.cargo-checksum.json
8399
- - rust-vendor/xml5ever/.cargo_vcs_info.json
8400
- - rust-vendor/xml5ever/Cargo.lock
8401
- - rust-vendor/xml5ever/Cargo.toml
8402
- - rust-vendor/xml5ever/Cargo.toml.orig
8403
- - rust-vendor/xml5ever/LICENSE-APACHE
8404
- - rust-vendor/xml5ever/LICENSE-MIT
8405
- - rust-vendor/xml5ever/README.md
8406
- - rust-vendor/xml5ever/benches/xml5ever.rs
8407
- - rust-vendor/xml5ever/data/bench/strong.xml
8408
- - rust-vendor/xml5ever/examples/README.md
8409
- - rust-vendor/xml5ever/examples/example.xml
8410
- - rust-vendor/xml5ever/examples/simple_xml_tokenizer.rs
8411
- - rust-vendor/xml5ever/examples/xml_tokenizer.rs
8412
- - rust-vendor/xml5ever/src/driver.rs
8413
- - rust-vendor/xml5ever/src/lib.rs
8414
- - rust-vendor/xml5ever/src/macros.rs
8415
- - rust-vendor/xml5ever/src/serialize/mod.rs
8416
- - rust-vendor/xml5ever/src/tokenizer/char_ref/mod.rs
8417
- - rust-vendor/xml5ever/src/tokenizer/interface.rs
8418
- - rust-vendor/xml5ever/src/tokenizer/mod.rs
8419
- - rust-vendor/xml5ever/src/tokenizer/qname.rs
8420
- - rust-vendor/xml5ever/src/tokenizer/states.rs
8421
- - rust-vendor/xml5ever/src/tree_builder/mod.rs
8422
- - rust-vendor/xml5ever/src/tree_builder/types.rs
8423
8253
  - rust-vendor/yansi/.cargo-checksum.json
8424
8254
  - rust-vendor/yansi/.cargo_vcs_info.json
8425
8255
  - rust-vendor/yansi/.github/workflows/ci.yml
@@ -1 +0,0 @@
1
- {"files":{".cargo_vcs_info.json":"182e7e86ceba85c66ea8750e5d72be1e9e2d99749c21cf4a434ff72c9cc56901","Cargo.lock":"74f475590034909d2bab99e795425f44eada62b9cf4c91a59af04b3a8faaec26","Cargo.toml":"22734ef34d429e6c03f619a69a89b27f97474ab8904133979876ddde79e590b3","Cargo.toml.orig":"ea9022b7f2353f38b7cd7f57c09f2e70aed62740ad732598910b3d7c4f5b0650","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"86dd7f026f916daf7511e39951ad8ea8cf55a8db67ae64060dacf829761c18f3","README.md":"ef9d91fbc81cf9ed91fa5506f27c68e70b4e9972fda1fb583050ede646baa6c6","custom-html5lib-tokenizer-tests/regression.test":"33ca6c29110df3c281ab33538d42f81782b5bb4aa30b6ae84c15727808bdadbb","data/test/ignore":"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b","examples/hello_xml.rs":"93a2423193dae1a5bb7f7a0f000a898837704f6b10ee86c62b5396bbf521b940","examples/html2html.rs":"e64e3b3fc2f21d6756563aee1c4efb888b4d89d716b7f59d3b88758a04326493","examples/print-rcdom.rs":"b4b90905cef27da2a7007f3690e2a5bc3fa8794ada70298f6c67856a28d06121","examples/xml_tree_printer.rs":"5720241f7485c2ca2e9e7ad4083e85c932d182690b5302155215787a2a4a8a2c","html5lib-tests/.gitattributes":"07bb3ab10121198b5c5300fed96e37d94702ff4715b5d56363d9768ec4fafec8","html5lib-tests/.github/workflows/downstream.yml":"71909196e6cdf312122c3b8ff5d70c88aec8ff3cae74c09ce5337981376c2677","html5lib-tests/.github/workflows/lint.yml":"076add12105ae6ab2a9d926b6dadf24fa35c66eac78246fa3342066055956987","html5lib-tests/.gitignore":"12d926aee9f78d0e85f756361966f0bbba9a53a48eae598eb700187395e40b29","html5lib-tests/AUTHORS.rst":"ff66841d2cb8863976712fefb8c2f964b649cdca4480ec3faa31ed43c05c8eb1","html5lib-tests/LICENSE":"ff512aac9ef231d504be5afaf4429005024e4b2aaf257be39524f37b8402aaf2","html5lib-tests/encoding/chardet/test_big5.txt":"910c3b0e03f5ff44e0ad6c1f4a18a328bc5144e61ba97d81165cd08da48b40c6","html5lib-tests/encoding/scripted/tests1.dat":"a6ee1080bf863b71163a3213c4b01ca8dabdf2521a2ed00e74348ace8dd13c50","html5lib-tests/encoding/test-yahoo-jp.dat":"dc353a7ceaa9428a668e7846e78efd18f7e0a09e768d6be61166c12fc223a432","html5lib-tests/encoding/tests1.dat":"ef54dd3d9c256a6830c266808c0277545a156a241b350c613c996a4cea52e5f7","html5lib-tests/encoding/tests2.dat":"5e00d81e6207307f1186ea85f85b5f58003af94f5a7c6a3e06ca19c17567f51b","html5lib-tests/lint":"7a6e0a6b5408793ea592da3054780836ee612f70bf4311eaf65967dfc2137e4b","html5lib-tests/lint_lib/__init__.py":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","html5lib-tests/lint_lib/_vendor-patches/funcparserlib.patch":"defcaa54adeee5bf27e094de746d28cc76592914da2086bdd07eca6858b15232","html5lib-tests/lint_lib/_vendor/__init__.py":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","html5lib-tests/lint_lib/_vendor/funcparserlib/LICENSE":"2b38372de6b025165cae5a526cb83aa99fba2d851e0f01e69b8ce43add9e6139","html5lib-tests/lint_lib/_vendor/funcparserlib/__init__.py":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","html5lib-tests/lint_lib/_vendor/funcparserlib/lexer.py":"6eb0439ddc9a01d79a5261eff20fe310357bf6fa7ac739ad11461fa7e04a756b","html5lib-tests/lint_lib/_vendor/funcparserlib/lexer.pyi":"94fd504b4a9683edb0765af79a59d617084040ab33b3e765bcd0c9639b9eadfd","html5lib-tests/lint_lib/_vendor/funcparserlib/parser.py":"c11f76e3df418a35883d27546ef07e011547ed62da4bdf8717191e3944bf2f4f","html5lib-tests/lint_lib/_vendor/funcparserlib/parser.pyi":"ff95648dbd2705ae4cceab3e6291bc8db64f201efdf157edaa5f05222d226310","html5lib-tests/lint_lib/_vendor/funcparserlib/py.typed":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","html5lib-tests/lint_lib/_vendor/funcparserlib/util.py":"147453784d85063713dd8f0aa3df1fce06cbb664f171534e67fc2d135edcc8fa","html5lib-tests/lint_lib/_vendor/funcparserlib/util.pyi":"f7480ef9d4262db2a3d049cd5415be90301d81a9c8414ef35a3e54e8d04a3dd1","html5lib-tests/lint_lib/_vendor/vendor.txt":"9438dbd46f91e5459d22c7614538a27c1e68f12a8b792cd78b15118e50c102d2","html5lib-tests/lint_lib/lint.py":"ea743284cfe4043b8024472f15302f4d15d5c302df8dbe55035764993f04b1bf","html5lib-tests/lint_lib/parser.py":"55d8a5eedcce3d8819f2610546e3b5270436c989c3a9bbfcd02f577754b689bd","html5lib-tests/pyproject.toml":"16db64f09aa92f0b4a226be7ce432689c115ed803134e75d068208f2666b9882","html5lib-tests/serializer/core.test":"40763bab05e236278bc88a72d0b91d45cd2aea1f33d51398e581dc71b7ded211","html5lib-tests/serializer/injectmeta.test":"971607e59e56e54904313a7e1620e38e8c0f64ae281c8afaff2f0edd1f0d5f1a","html5lib-tests/serializer/optionaltags.test":"26e6b849fb843049f5e3e668e55727998a0af0a6a5d87f92a5b68d5e4ecd83dc","html5lib-tests/serializer/options.test":"8a40f7378d9701cf29fbbf594de0ae1651984051218a917871bff7dcff74b026","html5lib-tests/serializer/whitespace.test":"aabe5a7868a47939719d5ef3886cb2255764331ced5e8dc4642b5236de273462","html5lib-tests/tokenizer/README.md":"2eb2365cd3ee8b79ab94c3987363b327601bae64c690bfed896c6c30c21fe543","html5lib-tests/tokenizer/contentModelFlags.test":"77784a505a528950761cfb3c76617afade28b27c3be2a8c37dce3c3d8988391d","html5lib-tests/tokenizer/domjs.test":"3273e7861bbdb094571e4b0813ffdd934fe2bfd65864600fef62e8e3b807131a","html5lib-tests/tokenizer/entities.test":"fe17483810a00247579f5f129ca9c007fbab6755ba839523e29aa9f8875f4085","html5lib-tests/tokenizer/escapeFlag.test":"edbd2e070a14fc67f6bbc104e50207f0fe206a21891c260deea3d227b32c93c9","html5lib-tests/tokenizer/namedEntities.test":"a7f0e59ff7653820330548776cb3031c18e45f5fd1481a9813d9c7acee89bd6e","html5lib-tests/tokenizer/numericEntities.test":"679296c976252322ece27e2b113a5358a0aa3b0b8ecd2d6d9b365f9d1b0f9632","html5lib-tests/tokenizer/pendingSpecChanges.test":"6b56d81ca09afa47d8cb0f33e3fb7169010c3a64493e608ebec921ac098ff8e9","html5lib-tests/tokenizer/test1.test":"524fcfa4d561a14f0c4e72e0573549abe6341fd4dfb8e16bc2dcf59a608a7219","html5lib-tests/tokenizer/test2.test":"f6450e77760cea823258de86f8e08894a1815671dbec0d74e7fbdab075596e37","html5lib-tests/tokenizer/test3.test":"9912fa27f03344243f1baa96d9690a5c2a4a9c9426c70da5cbf5c62391d62de4","html5lib-tests/tokenizer/test4.test":"c4967118aecbf8eb2ca34d5c5306f536614acca03e58610f75fbd9efa89fbb42","html5lib-tests/tokenizer/unicodeChars.test":"22b7263a840da38179b13693bbfe72f0507dcd41951622456a0d3f5300ba42bd","html5lib-tests/tokenizer/unicodeCharsProblematic.test":"3c166d5cfa24ee60fd7310ff0f5057e4ae0c649842ec446b5949215759e19a68","html5lib-tests/tokenizer/xmlViolation.test":"193a2f52d81adb4df4e056e3489f3bae79b3fc65253ccf31423a0e2f9c128d5c","html5lib-tests/tree-construction/README.md":"5935c011ac581c8ab1e20e45bba6373c2a3975255017ec205dfcdb861f7c45c6","html5lib-tests/tree-construction/adoption01.dat":"b2aba05bd1d832f73a0c6103b3c8b151b283bab7c56887274d81f3a062c4963e","html5lib-tests/tree-construction/adoption02.dat":"6ca94baf47ef9b6756657f40b15a12ac758802faa5003a7659652b8664e1e7d8","html5lib-tests/tree-construction/blocks.dat":"e3b7da1b57a4ec6991443dfc7ab3270f41d0f5959092a49be3e0edca0dae2104","html5lib-tests/tree-construction/comments01.dat":"79a7a42412b6dc48fa0c779dd8ba48d4d50033e7e9e417619288eec1e59d8db2","html5lib-tests/tree-construction/doctype01.dat":"f3a286c09d729eeed9aa63e0aec13ab12336af04590c169543e6d1e1ef4723b2","html5lib-tests/tree-construction/domjs-unsafe.dat":"eef4fb719e027ffaadfb854787d172893850fc561c29efe72d90c5bfa3c8b7ac","html5lib-tests/tree-construction/entities01.dat":"b73605caac5aed5656184ab8db3f08edff5457ac3186cb04afa28384bca955e3","html5lib-tests/tree-construction/entities02.dat":"f4e0cd461204b0184709be040c00811b776fbde1a6d002bb1c75d02056d9e54a","html5lib-tests/tree-construction/foreign-fragment.dat":"73e1785753c66420c067e5b29f89b17e7ebe1079687a512040ef19c6d42ac2c2","html5lib-tests/tree-construction/html5test-com.dat":"71d2ecbd0947599e82c876ce0300ecfc3a8cafd9d1736b33913f6a6152993bde","html5lib-tests/tree-construction/inbody01.dat":"cb722f2853ec9613b71ea68e8bb26f474cc450b64612930591ab2656406222fe","html5lib-tests/tree-construction/isindex.dat":"d152de773e276a07a1cfc91e93f01f3ce52c447c110192f2828dab51be2721b6","html5lib-tests/tree-construction/main-element.dat":"d56e382994e1a5228ddb2ea49a5ff51ab68487f9a8f79ad34bcad05d40dc1e8f","html5lib-tests/tree-construction/math.dat":"3c2ecc07272c175676ecfafa0cf6e18e74c3293075703702a4b7929fcb0d07bd","html5lib-tests/tree-construction/menuitem-element.dat":"44a896d206d8fa7c50a60508ffff2ed3a6aef35630b64b6cb09a6f46281d6b42","html5lib-tests/tree-construction/namespace-sensitivity.dat":"318fbc9926eddf5863524f1503c711ddaea93b55bcbd1eaab71b7e354ddfeb09","html5lib-tests/tree-construction/noscript01.dat":"e82449304a6371c14ed490384b6d814b7b1eeb1022dbc5caa2045fc8400655d7","html5lib-tests/tree-construction/pending-spec-changes-plain-text-unsafe.dat":"f45151f8dc7a4fe1a4b36710cf33606ff43cc98a42f1d2f085a77680683b0c99","html5lib-tests/tree-construction/pending-spec-changes.dat":"a6b7c4ecccabe70de2f24184245e4a73a8d12ed44ee658c3d5d25cce04c9d27f","html5lib-tests/tree-construction/plain-text-unsafe.dat":"1aef5e36b7ea04bb1d70684b33529a183938b7604283c562c698d6dad4e3878d","html5lib-tests/tree-construction/quirks01.dat":"b6717cc15d4ed573ccf6755bc9d52073e675b4d09f23bde07961e27592b9717c","html5lib-tests/tree-construction/ruby.dat":"5ae76ac4570d40e6648066798dd3ff729231bec98d3e010fdd67e0257f23a742","html5lib-tests/tree-construction/scriptdata01.dat":"e32ea3adc3d68c90e62ea50b3a41bf80369d1491958532bf00787b3509667322","html5lib-tests/tree-construction/scripted/adoption01.dat":"1203be63238a6effc9cc47e3c9b1fa9a0c7e0126a2f78916514afed2d46f42d8","html5lib-tests/tree-construction/scripted/ark.dat":"93365261fd9ea7dd9242613b57c23dba94e66bfd837a5d928f725bed81012dd0","html5lib-tests/tree-construction/scripted/webkit01.dat":"9d84f68ffd6e8b7b3924c9211280a70a888576b49074654cc9708236834afc58","html5lib-tests/tree-construction/search-element.dat":"30be0e9e8cbeea825e0323a7a3a518ab88f44fcada9b4f82b0cc7bbeb9334b76","html5lib-tests/tree-construction/svg.dat":"4c819b8dbdfbd98cfbce9a535a304b0a16597eb29ccc04077131a62810f309cd","html5lib-tests/tree-construction/tables01.dat":"8a0f7a62674fc332883c2eee71b36e89b88e1a78b39a1523ae63e9b9bae86384","html5lib-tests/tree-construction/template.dat":"74bc8308e673589d81b63eb71411a6f8ecea6fd6af649b5802c22615b7102a03","html5lib-tests/tree-construction/tests1.dat":"a7397a4944c2a3c9a70f199a18eaa62233a9f3af0b4ed7b01525f353db487f20","html5lib-tests/tree-construction/tests10.dat":"b657343b1d00bec1ac089888f5586a7b42fd964c7d03344e3670115dbc7af594","html5lib-tests/tree-construction/tests11.dat":"276190e2a7b97e8fcf3bd863a4b4b5346b555a8336c00143cb1d0e8956b94a07","html5lib-tests/tree-construction/tests12.dat":"e6c506cea74979a0d6ca47f6b175c7b6177d6e57db708920a89694e31dfd8a42","html5lib-tests/tree-construction/tests14.dat":"d151b2426f38de40a5d4ae726e2a56dbc7742a9b1c95299d60c1e2e0fdad1f98","html5lib-tests/tree-construction/tests15.dat":"ef784ece74cbd760da3a6947aaf4478810246b73c753f25a04be4d11dd806b2d","html5lib-tests/tree-construction/tests16.dat":"3350be682713afc1f6dad37059f2551709497a3643c38c26e1fe36fd07d23745","html5lib-tests/tree-construction/tests17.dat":"f73203c4785ee32f699358f9ec4973e42d0f03338ccdaf2bc6cdbfef1570849d","html5lib-tests/tree-construction/tests18.dat":"c468dd7498aa1a2523a740e359169d517f7fe88f9ce52f48b5bdd4d5a4ff096c","html5lib-tests/tree-construction/tests19.dat":"a9316b1eb4d2821a18e2c840394c6218bfcdb598857b92631490d9c3c1840ce4","html5lib-tests/tree-construction/tests2.dat":"9db834c7feda185e4050fe7c3ed3ec421b7a01f7d51df3da4aadafdd43a4c5be","html5lib-tests/tree-construction/tests20.dat":"07f7661690c4cd7cc0bbb0f1b9c1e1d65135e07c4dde8bbf106692f687e7d33d","html5lib-tests/tree-construction/tests21.dat":"b1a67420c79a5131002fefc987084ffb6b6094a3a74b272c6f545a47df06452c","html5lib-tests/tree-construction/tests22.dat":"78488328181d0f82f34b1a5e9e456ff7c713b3ff86dab6ace1530f6f07d5370d","html5lib-tests/tree-construction/tests23.dat":"2e4752ff4ef898e4a0cf9a450e481440095163d45075a662846a062552afe148","html5lib-tests/tree-construction/tests24.dat":"fdd5c21f60f42235ded224a03e7182d289088328f460525adaf3c14e772a24ac","html5lib-tests/tree-construction/tests25.dat":"f2e08fda6d15a08faf9ff0001ec38560d942069cee6b4e264aeedbbacde7da8d","html5lib-tests/tree-construction/tests26.dat":"d55d24dfca2444fba759d59346cbab21f7e70340dbb14e2c7af8da3d44abd4ab","html5lib-tests/tree-construction/tests3.dat":"c4b4d8e0ea3d978c49d1e6a985d427164858b71ec980153c4526ed0c398f43b9","html5lib-tests/tree-construction/tests4.dat":"e6003a52e1cbffc361eca7c739cdd4459074ac8c59766d1eb171b9c9eb42f517","html5lib-tests/tree-construction/tests5.dat":"bf80b927082290541781844906abdcb72f091488f7a11e8b7d9ac00076dd4fce","html5lib-tests/tree-construction/tests6.dat":"be16c74d2a9862283262968439c95b9bfce6182ea61055a3c886c28d14f3e01a","html5lib-tests/tree-construction/tests7.dat":"82b52dcb02b0c230690fc49355d5f476e74d92345d85e02eec63ad0d7d212e60","html5lib-tests/tree-construction/tests8.dat":"f3c8b1baece162e7e8c394540cdf9057266bb738bb0ad539a9d9b2f9d365f162","html5lib-tests/tree-construction/tests9.dat":"61df76e69def26a7b7461760349f3d7dcbe5e360f8907410678aec083948a752","html5lib-tests/tree-construction/tests_innerHTML_1.dat":"adb68da3dc5ffaf1f6f463e85367d0b5b85f5f7e0a05eb294531c9a83e999304","html5lib-tests/tree-construction/tricky01.dat":"3fb6d24c5e371860d096ef07f5fff38be3ceaa85f1239bee35cce548b596198a","html5lib-tests/tree-construction/webkit01.dat":"1afb8e5bc2eeb7ff51a57a3bfaec1e883927cf91281423f425cf839b38c04e79","html5lib-tests/tree-construction/webkit02.dat":"66eb676f39e0ca54f15f8a47b30e8d73b5c38feaf768a29ffcae80e9e588ffb0","lib.rs":"ef8cec06d0c445fbd2b7e9643f3e368eddcf2eb78c1861cdaa7b84cd4dec419e","tests/foreach_html5lib_test/mod.rs":"a4a64403970ae5210309671f4c1f593750419730a9b985189168fa68dc237072","tests/html-driver.rs":"81a81449ff1914ab1a0bdee8bbd175eb60e0ddfb334510da59e39d7b8c104cc2","tests/html-serializer.rs":"b5f99dce3b0292e488cd9d41ac6caf664775add4bdec08c5fbb69c70ec242ea4","tests/html-tokenizer.rs":"1d3bc59862c036394c1e118542ba87e102a8fa8666db497fbcf3b08c3c6377a7","tests/html-tree-builder.rs":"10ec0bab9a0f36965546f102410c13caaa14c0a8fa29205d998955c7f18a3e03","tests/html-tree-sink.rs":"deb3a7c2b9bb535dd050d03a4c9f8bbfd123d948243e64f6a398791e93131eb4","tests/util/find_tests.rs":"84659d874dc22dac0c2ca3204b9502c7164a369497f1368b290636dc12a3b10e","tests/util/runner.rs":"34e526429ebf64db233e8f3cfc0baeac2cbfd78942a2c2d6798827e09b456519","tests/xml-driver.rs":"04e3f759eb843d8cc6995ade98f737e2069e5b98514cd197050167a24ff545da","tests/xml-tokenizer.rs":"4f9fa4107c8d2c15464e6498b591bc6e0d6211737abdf10d855b172f7dcb3110","tests/xml-tree-builder.rs":"139aaf18944786f4f2049c29cbf9cf51d4f73573215b5cbc37d234f6e51fb29e","xml5lib-tests/AUTHORS.rst":"ba3ffc34afb02d29b5acf09ada06d0ae583b40249f989c0c82885e01c36688df","xml5lib-tests/LICENSE":"6b46f42002544043dfa132ae2dfd7165e74a6587ec078a07c52c04c41b3b2a0f","xml5lib-tests/tokenizer/README.md":"7cfe37d6e0ebc55e5f61ed39a09cb3629ca65d97beda429b59b70eaf441f1eab","xml5lib-tests/tokenizer/comments.test":"cee341911fdb2a023a8831643640c84016ff8da6b7ca0bda157fd33fec3f2918","xml5lib-tests/tokenizer/doctype.test":"fa0ec322445667530089cb648ceaa743547a97899be7b9decfc4ca57991f540e","xml5lib-tests/tokenizer/entities.test":"f62c307eba58025ac0f3f2b23cdec4ce5ea93e75076a18f885bc7577aac3c3e6","xml5lib-tests/tokenizer/eof.test":"2b2ad5ba7dbe53e9568358b33dae69cf4e77f0bfea4441eaae09b511ae270b50","xml5lib-tests/tokenizer/namedEntities.test":"a648b28f08f3ac5c6585c8fe59a86c73fce980725681482da44944337f857887","xml5lib-tests/tokenizer/numericEntities.test":"1378938a66bffc391c7380e279bc896adf04d2e5bbf57c5bfe8e542c950ae9c1","xml5lib-tests/tokenizer/test1.test":"a79924557e2e30d247c462bbedd6d071d35a7b47d41336414362b5a35f73306b","xml5lib-tests/tokenizer/test2.test":"1f060102c825120e3cd15626877400f3dc82fc7ea73904a163bf90ccb9830969","xml5lib-tests/tokenizer/unicodeChars.test":"b85a3717e3d2d39cfa32601a688f96e395b4c1e1d14b19f6405f3045792c963d","xml5lib-tests/tree-construction/README.md":"d8f35ef49aa8732550e930a25f2a979ae2b576ca344a90429feece4b26e975ea","xml5lib-tests/tree-construction/namespace.dat":"4db391e78df3932248fc564035d197c624b47df9d04c2978a7d73bbce9fe7592","xml5lib-tests/tree-construction/test1.dat":"9a7cccafc974a69c6643e5807e9c70d9c34b200e5ab609117f7b15e1d87982ff"},"package":"3e5fc8802e8797c0dfdd2ce5c21aa0aee21abbc7b3b18559100651b3352a7b63"}
@@ -1,7 +0,0 @@
1
- {
2
- "git": {
3
- "sha1": "34059007a855d284608f9447ed74c0c209bc0ad8",
4
- "dirty": true
5
- },
6
- "path_in_vcs": "rcdom"
7
- }