Files
thefoldwithin-earth/.old2/target/wasm32-unknown-unknown/release/deps/libunicode_ident-c94719d699619085.rlib
T

52 lines
46 KiB
Plaintext
Raw Normal View History

2025-10-19 16:48:12 -05:00
!<arch>
/ 0 0 0 0 122 `
‡¼‡¼_ZN13unicode_ident12is_xid_start17h4f26765c467ec610E_ZN13unicode_ident15is_xid_continue17had0d3e37d5a3b0a5E// 76 `
unicode_ident-c94719d699619085.unicode_ident.57933818e8824f7-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 34361 `
asm linking¢Œ.rmetarust
’„#rustc 1.90.0 (1159e78c4 2025-09-14)Á˜ø½E—y88àìOg[-a0f3a77406fcd134ÁÒµÅL®Ùp,ØnWš÷*Ó-eed239b623db52f0Á˜ is_xid_startÁis_xid_continueÁtablesÁ   Align8Á
ò Align64Á
ò  ASCII_STARTÁ  ASCII_CONTINUEÁ  CHUNKÁ 
TRIE_STARTÁ  
TRIE_CONTINUEÁ  LEAFÁ 
‰
"trueÁ,ˆ
´ø$"falseÁÁ
%ß07128Á
ß%ß07128Áà

@ßüÀ
#ß
$64Á 
ß%ß07411Á
ß%ß071793Á$âw
 ß!%ß077968ÁÜ¥ 'ûò ä-#3 Ž| ­ _­ fm{ ­ Í ¨­ ¯äæ ­ $šò ·çña@­ \­ cjx ­ ŽšŽ ¥­ ¬³
˜Ðt¸\º\È\é,Õ\ ¢$Ü\ Šlâ\õTñ\ ü±cü¦£ [![github]](https://github.com/dtolnay/unicode-ident)&ensp;[![crates-io]](https://crates.io/crates/unicode-ident)&ensp;[![docs-rs]](https://docs.rs/unicode-ident)Á§©ü«jg [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=githubÁü–nk [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rustÁü…mj [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rsÁó© <br>Á©ü„NK Implementation of [Unicode Standard Annex #31][tr31] for determining whichÁüÓ@= `char` values are valid in programming language identifiers.Á©ü˜1. [tr31]: https://www.unicode.org/reports/tr31/ÁÊ©üÎNK This crate is a better optimized implementation of the older `unicode-xid`ÁüLI crate. This crate uses less static storage, and is able to classify bothÁüêLI ASCII and non-ASCII codepoints with better performance, 2&ndash;6&times;Áô· faster than `unicode-xid`.ÁÖ©ãã©üç  ## Comparison of performanceÁˆ©üŒJG The following table shows a comparison between five Unicode identifierÁ¤× implementations.Áì©üð$! - `unicode-ident` is this crate;Áü• IF - [`unicode-xid`] is a widely used crate run by the "unicode-rs" org;Áüß C@ - `ucd-trie` and `fst` are two data structures supported by theÁä£
 [`ucd-generate`] tool;ÁüÀ
=: - [`roaring`] is a Rust implementation of Roaring bitmap.Áþ
©ü‚ PM The *static storage* column shows the total size of `static` tables that theÁüÓ =: crate bakes into your binary, measured in 1000s of bytes.Á ©ü• JG The remaining columns show the **cost per call** to evaluate whether aÁüà GD single `char` has the XID\_Start or XID\_Continue Unicode property,Áü¨
MJ comparing across different ratios of ASCII to non-ASCII codepoints in theÁ
 input data.Á©üŠ>; [`unicode-xid`]: https://github.com/unicode-rs/unicode-xidÁüÉ@= [`ucd-generate`]: https://github.com/BurntSushi/ucd-generateÁüŠ<9 [`roaring`]: https://github.com/RoaringBitmap/roaring-rsÁÇ©üËA> | | static storage | 0% nonascii | 1% | 10% | 100% nonascii |Áì |---|---|---|---|---|---|Áü«LI | **`unicode-ident`** | 10.5 K | 1.03 ns | 1.02 ns | 1.11 ns | 1.66 ns |ÁüøJG | **`unicode-xid`** | 12.0 K | 2.57 ns | 2.74 ns | 3.20 ns | 9.35 ns |ÁüÃGD | **`ucd-trie`** | 10.4 K | 1.27 ns | 1.27 ns | 1.41 ns | 2.53 ns |Áü‹A> | **`fst`** | 144 K | 49.3 ns | 49.1 ns | 47.1 ns | 27.9 ns |ÁüÍFC | **`roaring`** | 66.1 K | 4.10 ns | 4.05 ns | 4.02 ns | 5.12 ns |Á©ü˜NK Source code for the benchmark is provided in the *bench* directory of thisÁüç:7 repo and may be repeated by running `cargo criterion`.Á¢©ã¯©ü³$! ## Comparison of data structuresÁØ©¤Ü #### unicode-xidÁñ©üõOL They use a sorted array of character ranges, and do a binary search to lookÁüÅB? up whether a given character lands inside one of those ranges.Áˆ© ```rustÁü˜" # const _: &str = stringify! {Áü»63 static XID_Continue_table: [(char, char); 763] = [Áüò%" ('\u{30}', '\u{39}'), // 0-9Áü˜%" ('\u{41}', '\u{5a}'), // A-ZÁ # "Á …Áõ'üÚ# ('\u{e0100}', '\u{e01ef}'),Á ];ÁD… # };Á ```Á©üšLI The static storage used by this data structure scales with the number ofÁüçLI contiguous ranges of identifier codepoints in Unicode. Every table entryÁü´LI consumes 8 bytes, because it consists of a pair of 32-bit `char` values.Á©ü…IF In some ranges of the Unicode codepoint space, this is quite a sparseÁüÏKH representation &ndash; there are some ranges where tens of thousands ofÁü›MJ adjacent codepoints are all valid identifier characters. In other places,ÁüéLI the representation is quite inefficient. A characater like `µ` (U+00B5)Áü¶LI which is surrounded by non-identifier codepoints consumes 64 bits in theÁüƒ:7 table, while it would be just 1 bit in a dense bitmap.Á¾©üÂNK On a system with 64-byte cache lines, binary searching the table touches 7Áü‘FC cache lines on average. Each cache line fits only 8 table entries.ÁüØNK Additionally, the branching performed during the binary search is probablyÁü§1. mostly unpredictable to the branch predictor.ÁÙ©üÝMJ Overall, the crate ends up being about 6&times; slower on non-ASCII inputÁü« " compared to the fastest crate.ÁÎ ©üÒ NK A potential improvement would be to pack the table entries more compactly.Áü¡!OL Rust's `char` type is a 21-bit integer padded to 32 bits, which means everyÁüñ!LI table entry is holding 22 bits of wasted space, adding up to 3.9 K. TheyÁü¾"MJ could instead fit every table entry into 6 bytes, leaving out some of theÁüŒ#PM padding, for a 25% improvement in space used. With some cleverness it may beÁüÝ#KH possible to fit in 5 bytes or even 4 bytes by storing a low char and anÁü©$NK extent, instead of low char and high char. I don't expect that performanceÁüø$PM would improve much but this could be the most efficient for space across allÁüÉ%30 the libraries, needing only about 7 K to store.Áý%©Œ& #### ucd-trieÁ“&©ü—&KH Their data structure is a compr
˜§Ð·ºÌéá ¢ó Šõ §§§ü¨\T··ÌÌááóóü¾]%üÿ\>; Whether the character has the Unicode property XID\_Start.ÁdÅ]
chÁÒ]üÕ`(ü“`A> Whether the character has the Unicode property XID\_Continue.Á|Ü`
Ùxì`T—\<ˆ\$\lˆ\„†\4\
 è  þ ’Þ­ ¾Í ä-#3 Ž| ­ Í R­ Í 
­ ^`­ âÛ{ Ž ·çña@­ Ž âI­ Ž 
­ ^`­ ü“3šò ·çña@ßJßüè6°~ßìÀ
ßüå
/
ûò ä-#3 Ž| ß  #'-148<@EIMQTX\ `dfjnr(vx|€„ˆŒ”˜œ ¦¨2­®²¶º¾ÀCÂÅÑÓÉÙÝáåéíïñóRõ¯©÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 5ßü¯3ûò ä-#3 Ž| ßˆ
!%*/16:>BGKOQVZ^ bdhlpt(vz~‚†ŠŽ’–šž¢¦«2­°´¸¼¾ÀCÂÈËÃÆÎÑÕ×ÉÛßãçëíÌïñóRõ¯©÷Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆßü½w+$Ïwšò ·çña@ß À>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??ÿÿÿÿ??ÿªÿÿÿ?ÿÿÿÿÿÿß_ÜÏÿÜ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿP߸@×ÿÿûÿÿÿÿÿÿÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿPÿÿÿÿÿÿÿÿÿÿÿÿÿÿ߸À×ÿÿûÿÿÿÿÿÿÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿ¿¶ÿÿÿ‡ÿÿÿÿÿÀþÿÿÿÿÿÿÿÿÿÿÿ/œýÿÿÿàÿÿÿÿÿÿÿÿÿÿ?üÿÿÿ0ÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿïŸÿýÿŸÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?$ÿÿ?ÿÿÿÿÿÿÿþÿÿÿÿÿðÿÿÿÿÿÿ#ÿþÿáŸùÿÿýÅ#@°ÿÿÿÿÿ?ÿÿÿÿÿÿÿþ€ÿÿÿÿÿÿÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÿþÿïŸùÿÿýÅóŸy€°ÏÿPà‡ùÿÿým^à¿ûÿÿýí#àŸùÿÿýí#°èÇ=ÖÇÿî‡ùÿÿýmÓ‡9^Àÿ?î¿ûÿÿýíó¿;ÏÿþîŸùÿÿýíóŸ9à°ÏÿìÇ=ÖÇÿÃÇ=Àÿàßýÿÿýÿ#7áßýÿÿýï#pðßýÿÿÿÿ'@p€üàÿüÿÿû/ÿßýÿÿýÿóß=`7Ïÿïßýÿÿýïóß=`pÏÿÿßýÿÿÿÿÿß}ð€Ïÿüîÿüÿÿû/„_ÿÀÿ þÿÿÿÿÿÖ÷ÿÿ¯ÿ _ðÿþÿÿÿþÿÿÿÿÿÿÿÿÖ÷ÿÿ¯ÿÿ?_ÿóÿ Âÿþÿÿÿþÿßÿÿþÿÿÿ@ÿÿÿÿÿ?<bÀáÿ@ÿÿÿÿ¿
ÿÿûÿÿÿÿÀ½ÿ¿ÿÿÿÿÿÿÿÿÿïŸùÿÿýíûŸ9àÏÿKÿÿÿÿ¿ÿ¥÷ÿÿÿÿÿÿÿÿÿÿÿÿ°ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿ¿ÿÿÿÿÿÿÿ?ÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòoÿÿÿÿüÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòoÿÿÿ¿ùÿÿüÿÿÿÿÿüøÿÿÿÿðÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿüÿÿÿûÿÿÿÿ@¿ýÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿüÿÿÿüÿÿþûÿÿÿÿ´ÿÿ¿ýÿÿÿûÿÿÿÿÿÿÿÿÿôÿýÿÿÿÿÿÿÿýÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿøÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿøÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿøÿ |ÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàãøç<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿcÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿßdÞÿëïÿÿÿÿÿÿÿ¿çßßÿÿÿ{_üýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿýÿÿ÷ÿÿÿ÷ÿÿßÿÿÿßÿÿÿÿÿÿÿÿýÿÿÿýÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿýÿÿ÷ÿÿÿ÷ÿÿßÿÿÿßÿÿÿÿÿÿÿÿýÿÿÿýÿÿ÷Ïÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿ øþÿÿÿÿÿÿÿÿ?ÿÿÿÿÿ€?@ÿÿùÛÿÿÿÿÿÿÿ?ÿÿÿÿÿÿ?ÿCÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿ·?Àoÿÿÿÿÿÿ?Àoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿ–þ÷
„ê–ª–÷÷^ÿûÿîûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ>ÐßK unicode-xidÁ)https://github.com/unicode-rs/unicode-xidÁ ucd-generateÁ!https://crates.io/crates/croaringÁ]https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rustÁ(https://github.com/dtolnay/unicode-identÁ crates-ioÁ&https://crates.io/crates/unicode-identÁ^https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rsÁrust-lang/rust#33098Á,https://github.com/rust-lang/rust/pull/33098Áfinite state transducerÁ%https://www.unicode.org/reports/tr31/Á¡Ý±ÝcroaringÁðÝgithubÁøÞ¥ß–Þ+https://github.com/RoaringBitmap/roaring-rsÁÁàÚàUnicode Standard Annex #31Á§á¡Ý https://roaringbitmap.org/about/ÁÝáðáøÞðÝroaringÁâÁàhttps://docs.rs/unicode-identÁÉâ§áRoaring BitmapÁôâÝáðá*https://github.com/BurntSushi/ucd-generateÁ±ãâ\https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=githubÁdocs-rsÁÉãÉâ!https://github.com/BurntSushi/fstÁ÷ãôâßÝœä±ãÞß×ä³ß¸åÉã‹áÐå÷ã±ÝßÝœä–ÞÞߥ߳߸å×äÚà‹áÐå÷$ˆŽ3yÛΘû¶Nƒ¥rÝ1î)ÿ§ì Ô…4}z…jƒ§™ŸÞ¡ˆûæ?! ¥Sö½cÇ^­Îwo~©VC°ùÛ6'ÏÆäEÄËʬððÕÆÊ/*c„Ù…ØFô‡½O¨¨J@í ¦%‹€‹'ÂÑÿ¾Š‡†óô«›¢­†Ù×±øWf—hS1÷ÇÛßÒ.„;mÇ!0¤…ÞˆKÜIZ³1Îna·ûÅP@‘Càí-ž$”
΂wz> 7jëÏ4¸ë!’®ù/ ÜS1Ø%÷pMµqçHžÐÜР„ø0Õ´]„¼Ke …ž8Ä\¹,§ÄõRù­õ( :€ÐAdbtUI…·*;ç;f<=*=<=Õ=z>>ƒ?>@S@žBK'; =ƒ=(> 
% % 
&;C<Å<==.=B=£=×=ð=H>|>¦>˜?B@h@³BK/°;¶;¹;¾;Ä;Ê;Ð;Ö;Ü;â;a<á<=&=9==Ä=Ñ=ç=2>i>v>Œ>p?~?,@:@N@B™BîJüJn³;Á;Ç;Í;Ó;Ù;ß;.<°<==*=>==Æ=Õ=ì=5>k>z>>ƒ?>@S@žBKQ<Ó<#=6=X=·=Î=á=>\>s>†>®>y? ?5@J@p@”B»B÷JKšnK<Í<=0=E=¯=È=Ù=ó=T>m>~>¨>s?š?/@D@j@ŽBµBñJK”nS<Õ<%=8=j=½=å=>b>Š>°>{?¢?7@L@r@B½BùJ KœnD<D=ò=J>D<Æ<„=¦=)>K>2<´<=7>•>‡?W@¢BKÐ=u>à­úXHâ3ÎWùGß á2Í»=`>ï<Ø*vÃó@Ü.zÇW<è>¤?«@öBYK$;ÿ<<=ê=y=>l=šž¢¦ª®²ÅÛèï÷$(/6HLaeqšž©|=!>¡¡Ÿn}?9@˜BûJžn
 "% ÷$ˆŽ3yšøZÃ`*”
rustfmt::skipÁû<[÷$ˆŽ3yêQf³£