Files
boc/aamos-ledger-rust/target/debug/deps/libgetrandom-ca874fa007ea6b1f.rlib
T

1016 lines
306 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 6048 `
B@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ _ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$7get_mut17h01640eb1c04dcd24E_ZN108_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$7get_mut17h0afcf888440700a4E_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$7get_mut17h9a585c5ee3c006bfE_ZN153_$LT$core..result..Result$LT$T$C$F$GT$$u20$as$u20$core..ops..try_trait..FromResidual$LT$core..result..Result$LT$core..convert..Infallible$C$E$GT$$GT$$GT$13from_residual17ha74c28b6e6af5119E_ZN153_$LT$core..result..Result$LT$T$C$F$GT$$u20$as$u20$core..ops..try_trait..FromResidual$LT$core..result..Result$LT$core..convert..Infallible$C$E$GT$$GT$$GT$13from_residual17hb8dec580db8d7255E_ZN3std2io5error14repr_bitpacked11decode_repr17h6df3a243c4bab070E_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop28_$u7b$$u7b$closure$u7d$$u7d$17h8553d56a8e9b0bd2E_ZN3std2io5error5Error3new17h3ddc5d773e482bacE_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hd824bf25a92b9f9dE_ZN4core10intrinsics23is_val_statically_known17h46570609d7bac690E_ZN4core3cmp9PartialEq2ne17h0d9e4480bd892836E_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h9dcc5b230eee34e2E_ZN4core3fmt2rt8Argument11new_display17h066cf72885dc6fabE_ZN4core3fmt9Arguments3new17hf202ee4200273098E_ZN4core3num7nonzero16NonZero$LT$T$GT$13new_unchecked17hcc025cfe081c2df8E_ZN4core3num7nonzero16NonZero$LT$T$GT$3get17h34074dfec7787726E_ZN4core3num7nonzero16NonZero$LT$T$GT$3new17h11e0f6d7ebffc59cE_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h861d0ba60ca08ea8E_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h7267e0694539c15cE_ZN4core3ptr118drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Sync$u2b$core..marker..Send$GT$$GT$17h744dc82b1eb31797E_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd63b8ea7a84517fdE_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h48f8da799d842137E_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17hef851d4b242f0b58E_ZN4core3ptr43drop_in_place$LT$std..io..error..Custom$GT$17hae8b01b27bcb9855E_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6cb10bbaa3e29670E_ZN4core3ptr8non_null16NonNull$LT$T$GT$3new17h9b56fb4af36bfed4E_ZN4core3ptr8non_null16NonNull$LT$T$GT$8dangling17h02546f8f649a526fE_ZN4core3ptr93drop_in_place$LT$dyn$u20$core..error..Error$u2b$core..marker..Sync$u2b$core..marker..Send$GT$17h5d20aebbf7ef0992E_ZN4core3ptr9const_ptr33_$LT$impl$u20$$BP$const$u20$T$GT$13is_aligned_to17h8b347522b074b2b1E_ZN4core4sync6atomic11atomic_load17h54bfeb983872cffaE_ZN4core4sync6atomic12atomic_store17h011b765308ae1f73E_ZN4core4sync6atomic12atomic_store17h53f1406b3727d6d9E_ZN4core4sync6atomic28atomic_compare_exchange_weak17h7c670c06c30e7691E_ZN4core4sync6atomic27Atomic$LT$$BP$mut$u20$T$GT$5store17h97045fe12cbe02f3E_ZN4core5error5Error11description17hfa4e44c73fc9b168E_ZN4core5error5Error5cause17ha2f14abb6952e6b5E_ZN4core5error5Error6source17h205b7ec0d190feaeE_ZN4core5error5Error7provide17hbf6cbfdaed58d41fE_ZN4core5error5Error7type_id17h50e361a083f32c5aE_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7get_mut17h02090faab0dcaa98E_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7get_mut17h561fea335d4a58c6E_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8contains17h67cca6d977f784a8E_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8is_empty17ha3c1202c2a626860E_ZN4core6option15Option$LT$T$GT$5ok_or17h8b32023d7bede402E_ZN4core6option15Option$LT$T$GT$6expect17h5
getrandom-ca874fa007ea6b1f.getrandom.77b662fb36de3acd-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 75776 `
ELF·€&@@GNUÀrust
þ##rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁcfg_ifÁ«ýºõó¿àlé ,Z¶÷k/-c82bfbac630248a2Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8Á¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00ÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Á_ÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0ÁÚ+z˜ÖËó>zj–„÷-8f89ea8b6e77f2aaÁ8 inner_u32ÁLüúandroidÁ¬·úlinuxÁœÎü¶,ü²18 inner_u64ÁL‡ú®=úÁ64138çú®¬Ã úÁœÚ ü ,ü¾ 1í_backendsÁerrorÁÀ  UNSUPPORTEDÁ ERRNO_NOT_POSITIVEÁ 
UNEXPECTEDÁ INTERNAL_STARTÁ  CUSTOM_STARTÁ from_neg_error_codeÁ  raw_os_errorÁ 
new_customÁ  new_internalÁ 
internal_descÁ××utilÁslice_assume_init_mutÁ¥uninit_slice_fill_zeroÁslice_as_uninitÁ!¥slice_as_uninit_mutÁ#¥ ptr_from_mutÁ%¥¼ '¥ÚtruncateÁerror_std_implsÁ,À,,,0÷,fillÁ fill_uninitÁÔÚuse_fileÁ88888888 util_libcÁ@@@
last_os_errorÁ@sys_fill_exactÁD0impl Fn(&mut [MaybeUninit<u8>]) -> libc::ssize_tÁD 8 FILE_PATHÁ8 FD_UNINITÁ8FD_ONGOING_INITÁ8FDÁ8
fill_innerÁK 8
open_readonlyÁ8 open_or_waitÁ8open_fdÁ8çPPPPPPPwaitÁPwakeÁPwait_until_rng_readyÁlinux_android_with_fallbackÁZZZZZZZZZZ Z
Z Z Z
ZZZZ GetRandomFnÁZ
NOT_AVAILABLEÁZ GETRANDOM_FNÁZinitÁoNAMEÁZuse_file_fallbackÁZr  sanitizerÁttunpoisonÁtunpoison_linux_getrandom_resultÁ@@ get_errnoÁ
RawOsErrorÁNonZeroRawOsErrorÁErrorÁ}
}ˆƒÖ








!
#
%
'
4
5
D
D
K
M
q
r
v
w
ƒ

ˆ
ˆ
Š }}~ˆ a=[۹ع¹Ð칵߹¹¿c¹Äc¹éßßà ¬
ÑøÿËO Ÿ¹¾¹}}‚}„}†}‡}}}0ß2}Š 9ÛØÐìµß¿cÄcé¾ü©t”D˜
ÛsÑÛÑÛ MaybeUninitÁÓÛuninitÁÝÔÛ»ÝÍõƒ«%9zT˜z Ö¿¹ ÂÀ 1
" 
N8Aæ í 
  ó$
 ´ Ö¿¹Œ“ ¹ìˆ
C¤”|”
óפ
)ÿÿÿÿÿÿÿÿÿü”3
ç[Ó€“€“TryFromIntErrorÁ‚“ˆ Z} Ràvq¹Fø ¹Çä笱
 ô©øt”4 
ž$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ó¹
  uy 
ü”4 lÓà(xì —£Ó”à
þs—£—£»™£¹< =áï_åÓum [Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ˆê)?ÈXM´­¹¼
¡$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¹õ é0üà+
ÆT¹vŒù ¹ Äóøvà, 
ž$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¹ªtx
üà,lüÚ2 šw‹[õ Ý ê!)ö”² 
²' ŒÈ 
Dø Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙïü²' 
¸ßà%à%³+1  Ö¿¹efÃüíÖ§; D
%ü­üæµüŠ¥¬³ZÅÌÓ

üÀàð!Œõ<øæ ×± øKþ8M ×ñו¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜õ Óæ·Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ó ,×õ ÓÁ•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜õ A­#ˆÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ-_Z×êõ ò*¹Ä<Þ%Úà%âÞ%· bufÁ6sys_fillÁCresÁ9¯,$ ¯,0  ŽŽ ¹0Ž  ¹Ü
errÁ¹ b© ¹Û/ï9  ¹Ë
ø&
ò
¬A Í' ã±N uê!Zé")§#ðê!ö£%¸&pøt
øz
ë Û¼ïÛ/ï
DµÞ%7à%?GäÛ/
 ¹ÆF= ¹´çR   ²c Q ¹Œì åÓ
5B 
å üüÓ+GÜ1®1Š®12b"/dev/urandom\0"Áÿÿÿÿï-1Áþÿÿÿï-2ÁÌÙ—ÕÓ Ë4Ì4Í4
__variant1ÁÎ4Ï4
__variant2Áë òg üÂ1

´Â
ž‹3+ òü’dm§ ïíe¼îËè¿*‹3Š3ùYó—ÕÓ 
 ¤]¤]V¦]Á‚]üß3ø¤”&Š3Œî ¼ÀüÜ$
Ü]3y6¼é¬—d—
Ÿ3%)Ü‘I
o ¼Ûª4 Â
 
r ª4¬ì
·ßª4ª4
E < )/  ¼ŒŒŒ
q
 
ü»/  
Š3Ó×ü–µ  s × Û8üöÖÌö
Ds‡9Š9 9$p
5ÔrüáóüÎü†ÎüŸ³ð!Œ”Š3 5½¼À½À¾ÀË¿ÀÀÀÌÁÀÂÀGÃÀÄÀFÅÀÆÀ×`šÁ¬S øBéª4Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙª4ùת4œMÕ7~Õ7xÛ8ª4 Ã9è¢9ðdestÁ4raw_ptrÁ@fptrÁË» getrandom_fnÁp Âýmª4ø5æ¨6¼ø6qé7ª8˾9?7@mª4L[r!Õ7vª4~mª4 ¢9 „È
…tȼÈ
‹3Iáü»3X# ìâ8-üü4üü*
w§¬)Ësüü±š
× Ã9Û8:Š3ö +ÓÍí(㘢9]ˆ,B¤<ž¢9retÁµŽ?º?c
Ús5Û8+¹@þ_ref__getrandom_fnÁ(HŠ H ƒ"'¹3 ¹=FPI“ I‘ þB$.ˆJ² ô ô õ ¨÷ ˆÐ  mjçítoéïF‡DY^
·ß‡D‡Dsx ˆHJ• 
þBþB ‡D¼¬EÃ5¹
BLÙD쬵 
 ”µ 
 È 
0ü– 5
¹,­ $¬»

 ”»
F Î
“F
.ü•
< ¹
$
 ”Å‚F Ø“F
.ü§4 ¹$Ãïâ8) â89  ¾ïIïe*ïqïü›+
ïâ8°1<­²ïâ8) â89  ­ïIïe*ïqïüŒ)ïâ8°1‡Dþ
·
ï-LË& Ó&ï $ç& Û¼ïüÈ&À”¸'\½'
ôÉ$¸'l½'˜(ü²æ üì¬ à%”Ϲï‡DüÇ!codeÁ)\öKòL¤$ƒ*Œ * ¡*ï °*üŠ*'œŠ*ï  ï=ïTüÁ*1$ë*üÊ*&

üÊ* 
´
ï7, ï*ü»*8 } ò* ø*ù*üð(‰üÿ)z¹,“)“F ˆ)ï@ï@“F@ï"‡DØïÖ¹=ëLtIïTï$ñ,Œ- -ï  -üø,)¬ø,
ï  
ï=ïTü±-1$Û-üº-&

üº- ÒO1& ß-ü«-8 } â- è-é-üÓ+–üí,|¹,ÿ+“F ô+ï:ï:“F:èP‡DÏï͹:ëLxq@
ïK
ïü‘'ü‘ 
%
ÑÛÑÛ¢ÓÛ·ÝÔÛ»ÝÍõƒ«%9¥hü‘3
»U°ü°ü‡© áU üTàUf üTÛžµ [÷TÔä
ϊ

%áU
$üä
3¼V ƒ #ü…
þüÚ
©©V¬¾
V
¼V]àUŒžµ Þ
SˆW ö ù %üÀ 9 »U  »U Û ½ 2
äøÔø
òâ8T“
öâ8+d“¼$ 
Ââ8GÜÍÌÍ
Àâ8ü°9̰
îr ÊG,¼õ”õ
5ˆ Àkõ
ž$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
 Þ1¹uy  
Äõ l‚\ƒ
Œƒ\‡
։8
)  l‡
[õ 
¡$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
â8¹õ 
 vü÷  Ö¿â8¹   )ü»Þüê¯üÖÃüñ~ïõûNµ]”ÑÑÛÑÛ¢ÓÛ·ÝÔÛ»ÝÍõƒ«%9â8 ¦A õ â8- Ÿ_IÓé•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜õ \Æ´[ô×ìõ ô‚\Iâ8äúŸ_D¯,ÃdstÁڻ͎ >
¹ Š «YLÝY‡Zû´ZÔØZ·‰[®[kñ\¯¯]w
ä¤Ô¤
ò»„»T¿
ö»b+d¿¼»
»bGÜùÌù
À»büÜ9ÌÜØZ ö?$¼¡”¡‰[´Àm¡®[7 + 
=Ä¡ l‚\¯
Œ¯
÷»b
)  n¸
[õ ©
¡$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
»b¹õ 
ƒ ü£  Ö¿»b¹ Å  *üçÞü–¯ü‚Ãü~îôúMÚe”ýÑÛÑÛ¢ÓÛ·ÝÔÛ»ÝÍõƒ«%9»b;¦A ¡ »bÈ ÄgäÓ”`´[G×õ £‚\ø»bä¦Ägó¯,s¬`»zŽ ê
¹C 7 µbçbgcC¾cØZÿ‰[Û®[½—e[ÔeÉüŠÌŠ
#å$üõ7‰[ü* øoõ8 ®[: ,>üõ8l‚\ Ö¿¹¤ »[õ ¢ê!)º@4üŸœMSY¤ð!Œ¿‚\”`´[4f×õ œ‚\èä;9Ž º¹
Їj°‰[Œ®[lê!r
$‹|D%T$Ô¥¤¥
r Øq¥
ž$ð!?!%1Cr¿[õ b
¡$´[õ 2 ƒüµ!ܵ
å$ü©0 Ö¿‚\¹Û  5ü´§©¯µÜ¥ ´[Äè}í(•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜õ ƒð!±×Jõ R‚\ä;Ž r¹Ã¤ ì8™n
¾nêoðÉom¬åœå
)ü6ü¼@µ]”ÌÃrN¬† œ† 
* 7üÝ@Úe”ížsN„¡  }~#¹.‡D5<,4567í_4½¢ÑÛ}3ü9äü9,) [`Error::UNEXPECTED`]: Error::UNEXPECTEDÁüf  [`fill_uninit`]: fill_uninitÁøý“ü®&ý“# getrandom: system's random number generator
[![Build Status]][GitHub Actions]
[![Crate]][crates.io]
[![Documentation]][docs.rs]
[![Dependency Status]][deps.rs]
[![Downloads]][crates.io]
[![License]][LICENSE-MIT]
`getrandom` is a Rust library for retrieving random data from (operating) system sources.
It is assumed that the system always provides high-quality, cryptographically secure random
data, ideally backed by hardware entropy sources. This crate derives its name from
the Linux `getrandom` syscall but is cross-platform, roughly supporting the same set
of platforms as Rust's `std` library.
This is a low-level API. Most users should prefer using a higher-level random-number
library like [`rand`].
[`rand`]: https://crates.io/crates/rand
## Usage
Add the `getrandom` dependency to your `Cargo.toml` file:
```toml
[dependencies]
getrandom = "0.3"
```
Then invoke the `fill` function on a byte buffer to fill it with random data:
```rust
fn get_random_u128() -> Result<u128, getrandom::Error> {
let mut buf = [0u8; 16];
getrandom::fill(&mut buf)?;
Ok(u128::from_ne_bytes(buf))
}
```
## Supported targets
| Target | Target Triple | Implementation
| ------------------ | ------------------ | --------------
| Linux, Android | `*‑linux‑*` | [`getrandom`][1] system call if available, otherwise [`/dev/urandom`][2] after successfully polling `/dev/random`
| Windows 10+ | `*‑windows‑*` | [`ProcessPrng`] on Rust 1.78+, [`RtlGenRandom`] otherwise
| Windows 7, 8 | `*-win7‑windows‑*` | [`RtlGenRandom`]
| macOS | `*‑apple‑darwin` | [`getentropy`][3]
| iOS, tvOS, watchOS | `*‑apple‑{ios,tvos,watchos}` | [`CCRandomGenerateBytes`]
| FreeBSD | `*‑freebsd` | [`getrandom`][5]
| OpenBSD | `*‑openbsd` | [`getentropy`][7]
| NetBSD | `*‑netbsd` | [`getrandom`][16] if available, otherwise [`kern.arandom`][8]
| Dragonfly BSD | `*‑dragonfly` | [`getrandom`][9]
| Solaris | `*‑solaris` | [`getrandom`][11] with `GRND_RANDOM`
| illumos | `*‑illumos` | [`getrandom`][12]
| Fuchsia OS | `*‑fuchsia` | [`cprng_draw`]
| Redox | `*‑redox` | `/dev/urandom`
| Haiku | `*‑haiku` | `/dev/urandom` (identical to `/dev/random`)
| Hermit | `*-hermit` | [`sys_read_entropy`]
| Hurd | `*-hurd-*` | [`getrandom`][17]
| SGX | `x86_64‑*‑sgx` | [`RDRAND`]
| VxWorks | `*‑wrs‑vxworks‑*` | `randABytes` after checking entropy pool initialization with `randSecure`
| Emscripten | `*‑emscripten` | [`getentropy`][13]
| WASI 0.1 | `wasm32‑wasip1` | [`random_get`]
| WASI 0.2 | `wasm32‑wasip2` | [`get-random-u64`]
| SOLID | `*-kmc-solid_*` | `SOLID_RNG_SampleRandomBytes`
| Nintendo 3DS | `*-nintendo-3ds` | [`getrandom`][18]
| ESP-IDF | `*‑espidf` | [`esp_fill_random`] WARNING: see "Early Boot" section below
| PS Vita | `*-vita-*` | [`getentropy`][19]
| QNX Neutrino | `*‑nto-qnx*` | [`/dev/urandom`][14] (identical to `/dev/random`)
| AIX | `*-ibm-aix` | [`/dev/urandom`][15]
| Cygwin | `*-cygwin` | [`getrandom`][20] (based on [`RtlGenRandom`])
Pull Requests that add support for new targets to `getrandom` are always welcome.
### Opt-in backends
`getrandom` also provides optional (opt-in) backends, which allow users to customize the source
of randomness based on their specific needs:
| Backend name | Target | Target Triple | Implementation
| ----------------- | -------------------- | ------------------------ | --------------
| `linux_getrandom` | Linux, Android | `*‑linux‑*` | [`getrandom`][1] system call (without `/dev/urandom` fallback). Bumps minimum supported Linux kernel version to 3.17 and Android API level to 23 (Marshmallow).
| `linux_raw` | Linux, Android | `*‑linux‑*` | Same as `linux_getrandom`, but uses raw `asm!`-based syscalls instead of `libc`.
| `rdrand` | x86, x86-64 | `x86_64-*`, `i686-*` | [`RDRAND`] instruction
| `rndr` | AArch64 | `aarch64-*` | [`RNDR`] register
| `wasm_js` | Web Browser, Node.js | `wasm32‑unknown‑unknown`, `wasm32v1-none` | [`Crypto.getRandomValues`]. Enabled by the `wasm_js` feature ([see below](#webassembly-support)).
| `efi_rng` | UEFI | `*-unknown‑uefi` | [`EFI_RNG_PROTOCOL`] with `EFI_RNG_ALGORITHM_RAW` (requires `std` and Nightly compiler)
| `windows_legacy` | Windows | `*-windows-*` | [`RtlGenRandom`]
| `custom` | All targets | `*` | User-provided custom implementation (see [custom backend])
| `unsupported` | All targets | `*` | Always returns `Err(Error::UNSUPPORTED)` (see [unsupported backend])
Opt-in backends can be enabled using the `getrandom_backend` configuration flag.
The flag can be set either by specifying the `rustflags` field in [`.cargo/config.toml`]:
```toml
# It's recommended to set the flag on a per-target basis:
[target.wasm32-unknown-unknown]
rustflags = ['--cfg', 'getrandom_backend="wasm_js"']
```
Or by using the `RUSTFLAGS` environment variable:
```sh
RUSTFLAGS='--cfg getrandom_backend="linux_getrandom"' cargo build
```
Enabling an opt-in backend will replace the backend used by default. Doing this for
an incorrect target (e.g. using `linux_getrandom` while compiling for a Windows target)
will result in a compilation error. Be extremely careful while using opt-in backends,
as incorrect configuration may result in vulnerable applications or applications
that always panic.
Note that using an opt-in backend in a library (e.g. for tests or benchmarks)
WILL NOT have any effect on its downstream users.
[`.cargo/config.toml`]: https://doc.rust-lang.org/cargo/reference/config.html
### Raw Linux syscall support
Currently the `linux_raw` backend supports only targets with stabilized `asm!` macro,
i.e. `arm`, `aarch64`, `loongarch64`, `riscv32`, `riscv64`, `s390x`, `x86`, and `x86_64`.
Note that the raw syscall backend may be slower than backends based on `libc::getrandom`,
e.g. it does not implement vDSO optimizations and on `x86` it uses the infamously slow
`int 0x80` instruction to perform syscall.
### WebAssembly support
This crate fully supports the [WASI] and [Emscripten] targets. However,
the `wasm32-unknown-unknown` target (i.e. the target used by `wasm-pack`)
is not automatically supported since, from the target name alone, we cannot deduce
which JavaScript interface should be used (or if JavaScript is available at all).
We do not include support for this target in the default configuration because
our JS backend (supporting web browsers, web workers and Node.js v19 or later)
requires [`wasm-bindgen`], **bloating `Cargo.lock`** and
**potentially breaking builds** on non-web WASM platforms.
To enable `getrandom`'s functionality on `wasm32-unknown-unknown` using the Web
Crypto methods [described above][opt-in] via [`wasm-bindgen`], enable the
`wasm_js` feature flag. Setting `RUSTFLAGS='--cfg getrandom_backend="wasm_js"'`
is allowed but is no longer required and does nothing (it was required in a
prior version of this crate).
WARNING: enabling the `wasm_js` feature will bloat `Cargo.lock` on all platforms
(where [`wasm-bindgen`] is not an existing dependency) and is known to cause
build issues on some non-web WASM platforms, even when a different backend is
selected via `getrandom_backend`.
### Custom backend
If this crate does not support your target out of the box or you have to use
a non-default entropy source, then you can provide a custom implementation.
You need to enable the custom backend as described in the
[opt-in backends][opt-in] section.
Next, you need to define an `extern` function with the following signature:
```rust
use getrandom::Error;
#[no_mangle]
unsafe extern "Rust" fn __getrandom_v03_custom(
dest: *mut u8,
len: usize,
) -> Result<(), Error> {
todo!()
}
```
This function should, ideally, be defined in the root crate of your project,
e.g. in your `main.rs`. This function MUST be defined only once for your
project, i.e. upstream library crates SHOULD NOT define it outside of
tests and benchmarks. Improper configuration of this backend may result
in linking errors.
The function accepts a pointer to a buffer that should be filled with random
data and its length in bytes. Note that the buffer MAY be uninitialized.
On success, the function should return `Ok(())` and fully fill the input buffer;
otherwise, it should return an error value.
While wrapping functions which work with byte slices you should fully initialize
the buffer before passing it to the function:
```rust
use getrandom::Error;
fn my_entropy_source(buf: &mut [u8]) -> Result<(), getrandom::Error> {
// ...
Ok(())
}
#[no_mangle]
unsafe extern "Rust" fn __getrandom_v03_custom(
dest: *mut u8,
len: usize,
) -> Result<(), Error> {
let buf = unsafe {
// fill the buffer with zeros
core::ptr::write_bytes(dest, 0, len);
// create mutable byte slice
core::slice::from_raw_parts_mut(dest, len)
};
my_entropy_source(buf)
}
```
### Unsupported backend
In some rare scenarios, you might be compiling this crate for an unsupported
target (e.g. `wasm32-unknown-unknown`), but this crate's functionality
is not actually used by your code. If you are confident that `getrandom` is
not used in your project, but it gets pulled nevertheless by one of your
dependencies, then you can enable the `unsupported` backend, which always
returns `Err(Error::UNSUPPORTED)`.
### Platform Support
This crate generally supports the same operating system and platform versions
that the Rust standard library does. Additional targets may be supported using
the opt-in custom backend.
This means that as Rust drops support for old versions of operating systems
(such as old Linux kernel versions, Android API levels, etc.) in stable releases,
`getrandom` may create new patch releases that remove support for
outdated platform versions.
### `/dev/urandom` fallback on Linux and Android
On Linux targets, the `/dev/urandom` fallback is present only if either `target_env`
is `musl`, or `target_arch` is one of the following: `aarch64`, `arm`, `powerpc`,
`powerpc64`, `s390x`, `x86`, `x86_64`. Other supported targets [require][platform-support]
kernel versions that support the `getrandom` system call, so the fallback is not needed.
On Android targets the fallback is present only for the following `target_arch`es:
`aarch64`, `arm`, `x86`, `x86_64`. Other `target_arch`es (e.g. RISC-V) require
sufficiently high API levels.
The fallback can be disabled by enabling the `linux_getrandom` opt-in backend.
Note that doing so will bump minimum supported Linux kernel version to 3.17
and Android API level to 23 (Marshmallow).
### Early boot
Sometimes, early in the boot process, the OS has not collected enough
entropy to securely seed its RNG. This is especially common on virtual
machines, where standard "random" events are hard to come by.
Some operating system interfaces always block until the RNG is securely
seeded. This can take anywhere from a few seconds to more than a minute.
A few (Linux, NetBSD and Solaris) offer a choice between blocking and
getting an error; in these cases, we always choose to block.
On Linux (when the `getrandom` system call is not available), reading from
`/dev/urandom` never blocks, even when the OS hasn't collected enough
entropy yet. To avoid returning low-entropy bytes, we first poll
`/dev/random` and only switch to `/dev/urandom` once this has succeeded.
On OpenBSD, this kind of entropy accounting isn't available, and on
NetBSD, blocking on it is discouraged. On these platforms, nonblocking
interfaces are used, even when reliable entropy may not be available.
On the platforms where it is used, the reliability of entropy accounting
itself isn't free from controversy. This library provides randomness
sourced according to the platform's best practices, but each platform has
its own limits on the grade of randomness it can promise in environments
with few sources of entropy.
On ESP-IDF, if `esp_fill_random` is used before enabling WiFi, BT, or the
voltage noise entropy source (SAR ADC), the Hardware RNG will only be seeded
via RC_FAST_CLK. This can occur during early boot unless
`bootloader_random_enable()` is called. For more information see the
[ESP-IDF RNG Docs][esp-idf-rng] or the
[RNG section of the ESP32 Technical Reference Manual][esp-trng-docs].
## Error handling
We always prioritize failure over returning known insecure "random" bytes.
Generally, on supported platforms, failure is highly unlikely, though not
impossible. If an error does occur, it is likely that it will occur
on every call to `getrandom`. Therefore, after the first successful call,
one can be reasonably confident that no errors will occur.
## Panic handling
We strive to eliminate all potential panics from our backend implementations.
In other words, when compiled with optimizations enabled, the generated
binary code for `getrandom` functions should not contain any panic branches.
Even if the platform misbehaves and returns an unexpected result,
our code should correctly handle it and return an error, e.g.
[`Error::UNEXPECTED`].
## Sanitizer support
If your code uses [`fill_uninit`] and you enable
[MemorySanitizer](https://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.html#memorysanitizer)
(i.e. `-Zsanitizer=memory`), we will automatically handle unpoisoning
of the destination buffer filled by `fill_uninit`.
You can run sanitizer tests for your crate dependent on `getrandom` like this:
```sh
RUSTFLAGS="-Zsanitizer=memory" cargo test -Zbuild-std --target=x86_64-unknown-linux-gnu
```
## Minimum Supported Rust Version
This crate requires Rust 1.63 or later.
## License
The `getrandom` library is distributed under either of
* [Apache License, Version 2.0][LICENSE-APACHE]
* [MIT license][LICENSE-MIT]
at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
[//]: # (badges)
[GitHub Actions]: https://github.com/rust-random/getrandom/actions?query=branch:master
[Build Status]: https://github.com/rust-random/getrandom/actions/workflows/tests.yml/badge.svg?branch=master
[crates.io]: https://crates.io/crates/getrandom
[Crate]: https://img.shields.io/crates/v/getrandom
[docs.rs]: https://docs.rs/getrandom
[Documentation]: https://docs.rs/getrandom/badge.svg
[deps.rs]: https://deps.rs/repo/github/rust-random/getrandom
[Dependency Status]: https://deps.rs/repo/github/rust-random/getrandom/status.svg
[Downloads]: https://img.shields.io/crates/d/getrandom
[License]: https://img.shields.io/crates/l/getrandom
[//]: # (supported targets)
[1]: https://manned.org/getrandom.2
[2]: https://manned.org/urandom.4
[3]: https://www.unix.com/man-page/mojave/2/getentropy/
[4]: https://www.unix.com/man-page/mojave/4/urandom/
[5]: https://www.freebsd.org/cgi/man.cgi?query=getrandom&manpath=FreeBSD+12.0-stable
[7]: https://man.openbsd.org/getentropy.2
[8]: https://man.netbsd.org/sysctl.7
[9]: https://leaf.dragonflybsd.org/cgi/web-man?command=getrandom
[11]: https://docs.oracle.com/cd/E88353_01/html/E37841/getrandom-2.html
[12]: https://illumos.org/man/2/getrandom
[13]: https://github.com/emscripten-core/emscripten/pull/12240
[14]: https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.utilities/topic/r/random.html
[15]: https://www.ibm.com/docs/en/aix/7.3?topic=files-random-urandom-devices
[16]: https://man.netbsd.org/getrandom.2
[17]: https://www.gnu.org/software/libc/manual/html_mono/libc.html#index-getrandom
[18]: https://github.com/rust3ds/shim-3ds/commit/b01d2568836dea2a65d05d662f8e5f805c64389d
[19]: https://github.com/vitasdk/newlib/blob/2d869fe47aaf02b8e52d04e9a2b79d5b210fd016/newlib/libc/sys/vita/getentropy.c
[20]: https://github.com/cygwin/cygwin/blob/main/winsup/cygwin/libc/getentropy.cc
[`ProcessPrng`]: https://learn.microsoft.com/en-us/windows/win32/seccng/processprng
[`RtlGenRandom`]: https://learn.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandom
[`Crypto.getRandomValues`]: https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues
[`RDRAND`]: https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide
[`RNDR`]: https://developer.arm.com/documentation/ddi0601/2024-06/AArch64-Registers/RNDR--Random-Number
[`CCRandomGenerateBytes`]: https://opensource.apple.com/source/CommonCrypto/CommonCrypto-60074/include/CommonRandom.h.auto.html
[`cprng_draw`]: https://fuchsia.dev/fuchsia-src/zircon/syscalls/cprng_draw
[`esp_fill_random`]: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/random.html#functions
[esp-idf-rng]: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/random.html
[esp-trng-docs]: https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf#rng
[`EFI_RNG_PROTOCOL`]: https://uefi.org/specs/UEFI/2.10/37_Secure_Technologies.html#efi-rng-protocol
[`random_get`]: https://github.com/WebAssembly/WASI/blob/snapshot-01/phases/snapshot/docs.md#-random_getbuf-pointeru8-buf_len-size---errno
[`get-random-u64`]: https://github.com/WebAssembly/WASI/blob/v0.2.1/wasip2/random/random.wit#L23-L28
[configuration flags]: #configuration-flags
[custom backend]: #custom-backend
[unsupported backend]: #unsupported-backend
[`wasm-bindgen`]: https://github.com/rustwasm/wasm-bindgen
[`module`]: https://rustwasm.github.io/wasm-bindgen/reference/attributes/on-js-imports/module.html
[`sys_read_entropy`]: https://github.com/hermit-os/kernel/blob/315f58ff5efc81d9bf0618af85a59963ff55f8b1/src/syscalls/entropy.rs#L47-L55
[platform-support]: https://doc.rust-lang.org/stable/rustc/platform-support.html
[WASI]: https://github.com/WebAssembly/WASI
[Emscripten]: https://emscripten.org
[opt-in]: #opt-in-backends
[//]: # (licenses)
[LICENSE-APACHE]: https://github.com/rust-random/getrandom/blob/master/LICENSE-APACHE
[LICENSE-MIT]: https://github.com/rust-random/getrandom/blob/master/LICENSE-MIT
[`Error::UNEXPECTED`]: https://docs.rs/getrandom/latest/getrandom/struct.Error.html#associatedconstant.UNEXPECTED
[`fill_uninit`]: https://docs.rs/getrandom/latest/getrandom/fn.fill_uninit.html
Á%https://www.rust-lang.org/favicon.icoÁ„ð9https://www.rust-lang.org/logos/rust-logo-128x128-blk.pngÁlŸ,4567í¼9_Ë9¢Ý9ÑÛñ9}3¼9¼9¼9œ°Ë9´ÊÝ9dã8Zt )xjÚ *xk rxLñ}~{|À%×5 `#L/ ¹
ä– üØ 96 This target/platform is not supported by `getrandom`.Á\    ¹ü•
#üÐ @= The platform-specific `errno` returned a non-positive value.Á”Ÿ
  ¹ܧüÖ
LI Encountered an unexpected situation which should not happen in practice.ÁT±  ¹ü›   ïôŒd’  ïüÀ;úuefiÁ”ޤü„œÎï¹ 
ëL$âü²/üßB? Extract the raw OS error code (if this error came from the OS)Á¦úü®MJ This method is identical to [`std::io::Error::raw_os_error()`][1], exceptÁü€KH that it works in `no_std` contexts. On most targets this method returnsÁüÐOL `Option<i32>`, but some platforms (e.g. UEFI) may use a different primitiveÁü¤QN type like `usize`. Consult with the [`RawOsError`] docs for more information.Áúúü‚MJ If this method returns `None`, the error value can still be formatted viaÁüÔ! the `Display` implementation.Áúúü‚OL [1]: https://doc.rust-lang.org/std/io/struct.Error.html#method.raw_os_errorÁüÖIF [`RawOsError`]: https://doc.rust-lang.org/std/io/type.RawOsError.htmlÁd¹¹à%  £%?&üð((üž(MJ Creates a new instance of an `Error` from a particular custom error code.ÁTý(“F¹ 
¹Ê'üÓ+1dç+“F¹  F¹q)üï-/lò- ¹Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ   €.
$.Ìä;¹Àcü„<8‡<ŠŒ й  c cˆ¢cµ
 `£cˆ, `àB¤GS
ŒÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ È éBL <
$Œ<± <ÜÎ@¹Åcüð@8ó@Ž ¹ Ž c cˆ¢cµ
 `£cˆ, `àB¤GS
þš ÷@
$ø@± þ@$€ !#%')*+, }3¢\7ÑÛµ Dž,I‰fdK$+„2?.0 "ü°P¬¾ üT áU¥ ÞÍì»U Ô
»Už¯*ü¼I´Ã  Þ1 á
žüŽ;|• áU üT¥"" ¯µŸ ¥
!»Užü…
Nœ“
 áU üT¥$$ ±
µŸ §

#»Užu+üÀ /  »UäX¥&& Þ Îì»U Ð 
%»U½õ+ü¶
-
 »U »U¥(( Ô
€£ Æ

'»U½ Ñ
ü»(µ]Ãrüç(Úežsü‚'D»bâ8
+¹œŸ»À|¼‡À
,-,},.3ioÁ.¦,/„9d-<)ô3¸1ë1ÜX$[¹¸00
1“-`ü« ¹œ½ñ9üŸ1üÓSP Fill `dest` with random bytes from the system's preferred random number source.Á§ úü« NK This function returns an error on any failure, including partial reads. WeÁüú NK make no guarantees regarding the contents of `dest` on error. If `dest` isÁüÉ
JG empty, `getrandom` immediately returns success, making no calls to theÁü”  underlying operating system.Áµ úü¹ OL Blocking is possible, at least during early boot; see module documentation.Á úü MJ In general, `getrandom` will be fast enough for interactive usage, thoughÁüÛ JG significantly slower than a user-space CSPRNG; for the latter considerÁü¦
IF [`rand::thread_rng`](https://docs.rs/rand/*/rand/fn.thread_rng.html).Áð
ú
 # ExamplesÁƒú<‡ ```Áü1. # fn main() -> Result<(), getrandom::Error> {ÁäÁ let mut buf = [0u8; 32];ÁüÞ getrandom::fill(&mut buf)?;Á # Ok(()) }Á<ά Þ1ð! ±
4ä;Å5ü´Lü½GD Fill potentially uninitialized buffer `dest` with random bytes fromÁü…DA the system's preferred random number source and return a mutableÁìÊ reference to those bytes.ÁèúüìJG On successful completion this function is guaranteed to return a sliceÁü·FC which points to the same memory as `dest` and has the same length.ÁüþHE In other words, it's safe to assume that `dest` is initialized afterÁüÇ$! this function has returned `Ok`.ÁìúüðJG No part of `dest` will ever be de-initialized at any point, regardlessÁÄ» of what is returned.ÁÔú«¬çú
```ignoreÁüù>; # // We ignore this test since `uninit_array` is unstable.Áü¸*' #![feature(maybe_uninit_uninit_array)]Áüã1߬ü•A> let mut buf = core::mem::MaybeUninit::uninit_array::<1024>();Áü×;8 let buf: &mut [u8] = getrandom::fill_uninit(&mut buf)?;Át“ç­ά Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
 Þ1¹ ͉[ä;Ì7ü¼"üÝFC Get random `u32` from the system's preferred random number source.Á¤ú«¬·úάüÃ1߬üõ%" let rng_seed = getrandom::u32()?;Átç­άõ]
6üÝ"üþFC Get random `u64` from the system's preferred random number source.ÁÅú«¬Øúάüä1߬ü–%" let rng_seed = getrandom::u64()?;Áç­άäÚe
7dÕ"DÙ"@GHIJKMNOP,B}893Ð4^Ë48;¢\oÑÛ8< AtomicI32ÁLñÁ8>®¼À8?d;j$M\Y^„jQüM?;=+-İL¿CDz, }@A3¢\!ÑÛ@Berrno_locationÁtˆ ±0@ydH´9ü÷
&l… ¹¬üí˜ ˜øð!EE ˜Íìøü¾0"ø üÃ+ø†À˜"×
Døˆ,™,àY[±D<closure_kind>ÁF<closure_signature>ÁF<upvars>ÁFFDç´Ó8 Þ1äÞ8ïü"|‡8爛¥8¤]¤]V¦]Á‚]üß3ø¤”&ïBÿÿÿÿüÛDš šð! ó
Kä;$íKô¿LŒÀL©ÀLLKL‡9Š9 ïü…;8 Þ1Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ï¹ œ
Mõ
$–üÁ/8»Ä
Nü×*8»Ä
OD»&ú®¬&úÁœ¤&üŒ&,üƒ&7$¿&8WXYšlÖ& MPRâlð& CPS,ÿ&}PT93ü†'JPUæ|Š' IPV,Î&egÄå&[KM79&(¤÷)$…*8
W¤Ï.$Ý.8
XüÄ<9¤Ò<8ð!
Yüë"Üï"lmnoqr÷LPtZ\ŸD[8Z],q}Z^3Ð4Ë4Z` ÐZb¢ÑÛZc§Zd AtomicPtrÁLݯ]Zf®¼ÀZgÊL„@Zh> )jÚ: *k,HãåÖØdjÌ$|Áü| ´¥§d¼™ü|^ƒtvœúh\˜š„¾ZÛ8ü’$l˜Zª4üø&dÿZ¢5ÃäâZª4ø6”ZØÁ
ÿÿüëGŒîZœ œð! ª8ä;$€üáD   ð! ù™nä;,–rô¿sŒÀs©ÀssrÃ9l”#L˜#vw¢\ ÑÛtu´ üÐ3 DÞ ž ž ì
vˆ,ç üV ú®¬â úÁœù üá, üØ7 üž Ÿ Ÿ× à ¹@ˆ,¾ ð@Û ܳ#´îñü³
$
@ï
z|T”ï´®Œ³‡Di9üè.+ A small and `no_std` compatible error typeÁúü›PM The [`Error::raw_os_error()`] will indicate if the error is from the OS, andÁüìLI if so, which error code the OS gave the application. If such an error isÁü¹?< encountered, please consult with your system documentation.Áùúüý=: *If this crate's `"std"` Cargo feature is enabled*, then:Áü»,) - [`getrandom::Error`][Error] implementsÁüèQN [`std::error::Error`](https://doc.rust-lang.org/std/error/trait.Error.html)ÁüºWT - [`std::io::Error`](https://doc.rust-lang.org/std/io/struct.Error.html) implementsÁü’ XU [`From<getrandom::Error>`](https://doc.rust-lang.org/std/convert/trait.From.html).Á ¹a=[~‡D¹i92‡D¹}}
~Œ² }}‡D G„ N¹Ç Ç Ç O¹Ç Ç O¹ƒÙƒÇ Ç    ¹¹ 
ƒÇ 9!9!P¹9!9!9!¡ ¡¹I‘ 
9!
"
"Q¹
"
"Q¹ˆ·ßˆ
"
"¢£ ¢¹ £¹J• 
ˆ
"¹

"
!¤ Ù¤ •<¤ ©<¤ $¤ A¤ •A¤ U¤ å¤ ¤ ¤ ¢¤ +¤ p¤ ê¤ T¤ Ƥ ¡ ¤ ¯ ¤ ¬¤ h¤ µ¤ D¤ ˤ G¤ ·¤ ¼¤  /dev/urandomÁ(https://github.com/rustwasm/wasm-bindgenÁopt-in backendsÁhttps://man.netbsd.org/sysctl.7Á/https://www.unix.com/man-page/mojave/4/urandom/Á)https://img.shields.io/crates/v/getrandomÁLhttps://github.com/WebAssembly/WASI/blob/snapshot-01/phases/snapshot/docs.mdÁ Build StatusÁ#https://www.w3.org/TR/WebCryptoAPI/Áhttps://crates.io/crates/randÁ
getentropyÁþÛÜ"https://man.netbsd.org/getrandom.2ÁÐÜôÜ8https://github.com/emscripten-core/emscripten/pull/12240ÁÖÝ]https://developer.arm.com/documentation/ddi0601/2024-06/AArch64-Registers/RNDR--Random-NumberÁ¸ÞàÞ‚ßhttps://emscripten.orgÁÜßChttps://github.com/rust-random/getrandom/blob/master/LICENSE-APACHEÁôÜÐß getrandomÁ“àLicenseÁàނ߇áOhttps://www.freebsd.org/cgi/man.cgi?query=getrandom&manpath=FreeBSD+12.0-stableÁß®áRDRANDÁÐß‚âKhttps://github.com/cygwin/cygwin/blob/main/winsup/cygwin/libc/getentropy.ccÁ“à–â#https://github.com/WebAssembly/WASIÁ‡á´âJhttps://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.htmlÁ®á”ã‚â«ã1https://deps.rs/repo/github/rust-random/getrandomÁ–â‡äCCRandomGenerateBytesÁ´â»äúihttps://github.com/hermit-os/kernel/blob/315f58ff5efc81d9bf0618af85a59963ff55f8b1/src/syscalls/entropy.rsÁ”ã2https://www.qnx.com/developers/docs/7.1/index.htmlÁ«ã¢å5https://doc.rust-lang.org/cargo/reference/config.htmlÁ‡ääåError::UNEXPECTEDÁ»äæúVhttps://rustwasm.github.io/wasm-bindgen/reference/attributes/on-js-imports/module.htmlÁƒçhttps://docs.rs/getrandomÁ¢åÆçUhttps://learn.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandomÁäåŒè:https://fuchsia.dev/fuchsia-src/zircon/syscalls/cprng_drawÁúæ³è\https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/random.htmlÁƒç”éunsupported backendÁÆç¾é3RNG section of the ESP32 Technical Reference ManualÁŒè¤ê)https://img.shields.io/crates/d/getrandomÁ³èôê"https://crates.io/crates/getrandomÁ”éæëBhttps://learn.microsoft.com/en-us/windows/win32/seccng/processprngÁ¾éŠì#https://illumos.org/man/2/getrandomÁ¤êÎìShttps://github.com/rust3ds/shim-3ds/commit/b01d2568836dea2a65d05d662f8e5f805c64389dÁôêˆí<https://uefi.org/specs/UEFI/2.10/37_Secure_Technologies.htmlÁ}æëÀí<https://doc.rust-lang.org/stable/rustc/platform-support.htmlÁŠì“î<https://deps.rs/repo/github/rust-random/getrandom/status.svgÁÎìÇîDhttps://github.com/rust-random/getrandom/actions?query=branch:masterÁˆí«ïhttps://manned.org/urandom.4ÁÀíð;https://leaf.dragonflybsd.org/cgi/web-man?command=getrandomÁ“îÎðget-random-u64ÁÇî›ñ see belowÁ«ïðñdescribed aboveÁðò\https://github.com/rust-random/getrandom/actions/workflows/tests.yml/badge.svg?branch=masterÁrandÁÎðéò›ñˆóhttps://manned.org/getrandom.2Áðñ¢ó kern.arandomÁò£ôÂó
random_getÁéòCrypto.getRandomValuesÁˆóÄô wasm-bindgenÁ¢óóô MIT licenseÁÂó£ô–õ«õ@https://github.com/rust-random/getrandom/blob/master/LICENSE-MITÁÄôÒõ$https://man.openbsd.org/getentropy.2ÁŒ óôïõrhttps://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guideÁ–õRNDRÁ«õ—ö
EmscriptenÁÒõÿ
èöApache License, Version 2.0ÁŒ ïõ¢÷Ÿø DownloadsÁ—ö´ødhttps://opensource.apple.com/source/CommonCrypto/CommonCrypto-60074/include/CommonRandom.h.auto.htmlÁÿ
 5èöŒ Ôø<https://www.gnu.org/software/libc/manual/html_mono/libc.htmlÁ¢÷Fhttps://www.ibm.com/docs/en/aix/7.3?topic=files-random-urandom-devicesÁŸø‹ùWASIÁ´ø¥ùÿ
MemorySanitizerÁÔø¨ú.https://docs.rs/rand/*/rand/fn.thread_rng.htmlÁïúDependency StatusÁ‹ùÆû2https://www.unix.com/man-page/mojave/2/getentropy/Á¥ùàûsys_read_entropyÁ¨ú€üqhttps://github.com/vitasdk/newlib/blob/2d869fe47aaf02b8e52d04e9a2b79d5b210fd016/newlib/libc/sys/vita/getentropy.cÁïú¹ü.cargo/config.tomlÁÆûÛüchttps://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdfÁàûžý)https://img.shields.io/crates/l/getrandomÁrand::thread_rngÁ€ü¿ý
DocumentationÁ¹üÁþ RtlGenRandomÁÛüäþ
cprng_drawÁžýØÿ†€esp_fill_randomÁ¿ý§€custom backendÁÁþÅ€ESP-IDF RNG DocsÁäþâ€#https://docs.rs/getrandom/badge.svgÁØÿ†€ƒCrateÁ§€£ ProcessPrngÁÅ€ÂAhttps://docs.oracle.com/cd/E88353_01/html/E37841/getrandom-2.htmlÁâ€ãHhttps://github.com/WebAssembly/WASI/blob/v0.2.1/wasip2/random/random.witÁƒEFI_RNG_PROTOCOLÁ£³‚¼ÜÂÏ‚¨Ý㡃§ÞúƒþÛ³‚¼ÜÐÜÏ‚¨ÝÖÝ¡ƒ§Þ¸Þúƒ6std::error::ErrorÁ¾}Error::raw_os_errorÁgetrandom::ErrorÁFrom<getrandomÁ5https://doc.rust-lang.org/std/convert/trait.From.htmlÁstd::io::Error::raw_os_error()Á5https://doc.rust-lang.org/std/io/type.RawOsError.htmlÁ‚âÀstd::ioÁ2https://doc.rust-lang.org/std/io/struct.Error.htmlÁError::raw_os_error()ÁFrom<getrandom::Error>Á
std::errorÁ¸…Ð…4https://doc.rust-lang.org/std/error/trait.Error.htmlÁå…std::io::ErrorÁ”…ø…²†ØÕ†‚âÀš‡¦¦‡÷‡݇’ˆ¸…å…Ø­ˆÐ…”…ìˆø…²†Õ†‚âÀš‡¦‡݇÷‡Ø{’ˆ­ˆìˆßÃLðìŠ  غãàéæ³Œ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“íµßíßÃLðìŠ  غãàéæ³Œ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“íµßíß
/dev/urandom
n
getrandom
˜Œ¬Œ¯ŒÍ:Þ6ûb¶w“Ð0'ÙÍÕÚž?uÕÎc1kÛyǬ݄À›á©lf
âÖÏï÷bc“ëgr8V®+xSWœ`Nr`‡Âž4Ñ. BWoê|ºØ¸¢25HÛ4Ðî4Í+?è.~Ó=ÂêUß@+
ê?MÖKÂzOÛ˜(ÇÀëvx’…íy”
·GÏV,¥¡¤Ðuÿ°qƒp¿VÓ¦/i¶zð–ãˆ#ýë˜gÿdÿÓ âìôM¬ÝÏzÖQ©±Sû¢-f.
^¬ºA<Xâ@;ÈGª3 |™ÜÇýiã'%¸Ûq&7+4Ôc®Y#[À`ë)Æ•:dzk ¾=|êj ÁþΤ7§‹QÅ
Ÿî8¥ÝÎv*†]ysB©á
 Ü†=Õ•à¶+w¶ØK;ÒÎYË–’ÂÀ\©B)l0Vw@ú\€‘çW2C‹H³?¨zä°Tß©³=û³­ò@¹NÍS/¸e…J>íåÔpc…Jâd1äža‚ñ4!I°Èà«€¾ìÊK7´hÄ›²mCϳ¡Qâ!
0³Ú~¢¢«n¬Rdœ®·µx PF±M´*“¦féÓïØïÌÌCjðÆŠžÚùÝ{xuWýëV5–¨Eæ‰Ûª`Þ^35 )sUK¨"Ë ^À»‚’ìÓ':š”¤yñ7‘ŠäÐCGàÝ)4ý2±ñSHx?'T)¿T…ž§i„Ÿºm‹‰hiB}ð»¿|ËõÔ·ÈÅglq”Ï€êB0Oå+ãÆƒ,¼4÷£ßdz3Â}â ¨Ý1‚0Åâºn»I^¤=±Ž"Š_J ;6¤Kür
°<*#K|‡]EÇŸ±f{’Éüzw8Ò¹j ~
²”³Ýüƒýׯ-‡JÖ8”ûiø-Àf~¨ÄÆC§^1Hý¹õl‘âe‚©c|ºŠ­+{_SW¯
7d䵌Ô2Ý2ºIJ«kN £$©Œõ7¸s†Îö£Ž]»~»ŠoæýlÍÚGg+ù;®.h+!*˜žïŠeÓ>åj›ø‘Oo<€ôGÍä¯?ƹy¨Ô‘MÚ@ê±ð¾äAŽ
º«Äʾܔ^1MP?nynŽø!1kAÇÏ೓¸!Õ¢¢b¤ã­»0ƒýÏ߸$± âïâ«tÞÚÖm©ˆ°ÐÁSÚmëX~FN Ö×ø‘¿V¥KQ>K,1Õ÷Ÿö]RêVÉ´ÙSÞŠÔÁìñÁu!ÊìŒáåSý0‹)ÌáÂ×,2]çúŒs£¨ö7ï¡XàÔ—b £çÍÝæ(ΚhvoRªÀ–‹¼Éxä"cçzì]¢^€¾gqý‡mÿ¾n¤ìÞïWôš
ÄŸ°_îp´—;zôÁ4ýø–_!L±V)ëgdQô»JÎÌ{m}¼88ø.E—8@VA£¡.[w)¸PZãE[@AØ5W+›Ë¼&}=|ögà[1»pí‚£5ã=f¶¿Üzµw}JÅ‹1†÷-&Ð_‘Ö‚:ä.™šŠí
¯5é©ÀlTŸË„­¤!V»µ…Ɇ´šói4‡uÅw?®Ž‡8}â¹ìWè.ü­À¡²L眂*NXl$8`þŽï?¨èMµw¾P¿Û¾K›7×îV²Š+&¦¥/–/䂺—ú­l…²{ŽVúžÃ¢å £Ð¦:a…¦ã†c†Ä†2‡J‡c‡¿ ‡÷Š‹Ë‹bŒ}Œ¡¼jŽàŽd»8´/¥‘Ó’;¡’º’ö“M—× ›à œèžèžŸÛŸJ a v Š é 5¡¡.¢`¢‘¢E£u£¦£×£¥.¥C¥p¥ž¥é¥5¦}¦Æ¦í¦:§Â§ò§¨ ¨g«~«’«Á«á«1¬Q¬»¬Ð¬ñ¬ûi…®r ŽVð
ŽžÀ¢ß£Î¦ï
nŒ­­$«Ž«½«Ò«B¬Ì¬á¬         'ú„g…¬…O†±†‡6‡N‡—‡ÔŠe‹¤‹â‹”ŒÓ÷Ž{ÒOËF‘¼‘ê‘’T’Ð’—I›ÇœÐÿž/ŸN e z ¡ ¡¦¡E¢w¢¾¢\£Œ£½£Ý£¥2¥Z¥‡¥µ¥¦K¦Ì¦§y§Ù§ö§
¨«F«i«÷«¬­þ9F…L…O…V…]…¢…Õ…Ú…ß…†^†À†-‡F‡^‡º‡òŠˆ‹Æ‹^ŒxŒ·fŽÆŽËŽÎŽÓŽ×ŽÛŽR_&3¢¯‘*‘“‘ ‘Αü‘7’’”’™’ž’·’ñ’
“H—Ò›Ûœädžižlžqžvžzž~ž‚žÙžÞžãžŸÊŸ×ŸF ] q † ä 1¡Š¡)¢[¢¢'£+£/£5£9£=£A£q£¡£Ò£È¤Ë¤Ï¤Ó¤Ø¤Û¤á¤å¤é¤í¤ó¤÷¤û¤ÿ¤¥ ¥¥¥)¥>¥l¥š¥ä¥0¦y¦Â¦ã¦è¦5§²§¶§½§î§¨¨.«c«y««¾«Þ«.¬N¬¸¬Í¬î¬U­[­a­h­o­u­|­ƒ­‰­­•­›­¡­§­­­³­¹­À­Æ­Ì­Ò­Ø­Þ­ä­ê­ð­õ­I…S…Z…c…¨…Ø…Ý…K†­†‡2‡J‡€‡½ŠN‹‹Ë‹¼lŽÉŽÑŽÕŽÙŽàŽTd»(8¤´‘/‘•‘¥‘Ó‘’P’’’—’œ’º’—2›°œ¹êožtž|ž€žˆžÜžážèžŸÌŸJ a v Š é ¡.¢`¢º¢-£3£7£;£?£E£u£¦£Ù£Í¤Ñ¤Ö¤ß¤ç¤ë¤ñ¤ù¤ý¤¥ ¥¥¥.¥C¥p¥ž¥é¥5¦È¦æ¦í¦a§º§Â§ò§¨ÿª1«g«á«ñ¬X­^­e­l­r­y­€­†­Œ­’­˜­ž­¤­ª­°­¶­½­Ã­É­Ï­Õ­Û­á­ç­í­ò­÷­ë…X†º†'‡@‡X‡ª‡æŠw‹·‹OŒjŒ†©2\¨
0Ьý'‘z‘‘Ê‘ø‘)’©’â’þ’;—Ǜ՜ÞŸcŸÔŸ@ V m ‚ © #¡t¡¢U¢‡¢k£›£Ì£%¥:¥b¥–¥½¥$¦n¦¼¦'§ž§è§þ§¨
«Y«s«Š«¹«Î«¬>¬¨¬È¬Ý¬>­å…P†²†‡8‡P‡¢‡ÞŠo‹¯‹CŒdŒz£Vžö*s¦æ!‘c‘—‘Ä‘ò‘#’£’Ú’ø’1—½›ÏœØŸLŸÎŸîŸP g | £ ¡H¡¢O¢¢e£•£Æ£¥4¥\¥¥·¥¦d¦¦§”§â§ø§ ¨«Q«k«„«³«È«¬8¬š¬Â¬×¬0­í…\†¾†+‡D‡\‡®‡êŠ}‹½‹SŒlŒŠ«Dª„‘Ì‘ú‘+’«’æ’=—ɛלàŸ´ŸD X o „ « %¡x¡¢W¢‰¢£Î£'¥<¥d¥˜¥¿¥&¦p¦À¦)§ §ê§¨¨ «_«w«Œ«»«Ð«#¬@¬­¬Ê¬ß¬C­‡ÕŠf‹¦‹äŒÔøŽ|ÓPÍH½‘ëÑ—J›ÈœÑŸ1Ÿ¡¨¡G¢y¢^£Ž£¿£¥¦L¦§z§Û§«H«ø«¬­™‡ÕŠf‹¦‹ä‹•ŒÔùŽ|ÔQÎI‘½‘ë‘Ñ’—J›ÈœÑŸ2Ÿ¡¨¡G¢y¢^£Ž£¿£‰¥¦L¦§z§Û§%«H«ø«‚¬­„‡ÁŠR‹‘‹Ï‹ŒÀäŽh¿<¸3‘©‘ב½’—6›´œ½ìžŸÛŸŽ í 5¡“¡2¢d¢I£y£ª£G¥t¥¢¥í¥8¦}¦ñ¦f§Æ§ä«ô¬ ) 3 k ´
è
ò
ü
  ^2®)‘Ÿ‘ÖŸS%â)õ*¸+,¢0t4D6±8 9â ¥ ÞÅ $!t!k"Ù"E#±#$&>( ég9ÇØ&ó*¶+, 0r4B6¯8
9e9/ u® "!r!i"Ø"D#°#$R%&=(á)ô*·+,¡0s4C6°8 9f90
ÆvÄ °9#!s!j"{‹»‹Ñ"=#©#z$K%¯ÐáÕ"A#­#~$O%³Ô岇슋¿‹WŒŽWŽK®Αü‘/êA—˛ۜ䟻Ÿ)¡!¢[¢¢q£¡£Ò£š¥(¦r¦-§¢§î§(¬²¬H­Ú Â¥ø„a…¦…ã…¡N’¡’ö’膞¸¢×£Æ¦ýª‚«±«Æ«À¬Õ¬««µ¸¿ÃÉÍÜèïó÷ "3H[uˆ¬ÀÄËÏÖáåéíñõ5KRls¢©¸ÎÕÙÝáèìðû
*.26:>BFVZ^r¾ÂÒâø*=KRVZ^bfju½ÁÅÉÍÑÕÙÝáåéíñõùý  ' : E P h o s ƒ ‡ ¼ À Ä Ô å ý



(
,
4
8
<
D
H
L
P
T
X
\
`
d
h
l
p
t
x
|
ˆ
Œ
˜
œ
 
¥
ª
¯
«ù…ú…û…ü…ý…þ…ÿ…®®’Ô«ã¬û­’ÂZŹÅ³³’Ž«½«Ù«Ì¬é¬1nqoCw²kÄkÍkü\ï¹¹ü\¹¹ÐžBoxÁ¡ˆˆ¢ˆl }.xÏÆKÆKCustomÁÇK¬ÈKà ¬=o•®öh}$çEçEèEGlobalÁ ¿±‡§í#Ïï ¤éã蹸ßà%à%Æbï«cÓÓ´
ï·
ï³
ïïñòOsÁóˆ¬ôõSimpleÁöˆ¬÷ø
SimpleMessageÁùˆ¬úû®èüˆ¬`re›dKªãèžñ硈ˆ¢ˆl }.xϾ Ììå鸤鼼½ReprÁ¾ˆ­¿­ ïs¯EAdKã蟋3‹3•íŒþ]ïù]Š3ù]ïÝ]‹3º^ïÁ¹Â¹¿¹Ã¹À¹þs«£«£Ã­£þôÉûT™göÓþsÔtåÛsÆT¹°T‡D°TïÐ[ïÖì¹³Uéå銕íåéÏïšê÷\¹÷\¹÷\ï¹÷\Ó¹c[^OadY\_PbZe]NQX¤ ¤ ¾-¤ ¬­ýÍ:Þ6ûb¶w½/žï/˜VÏ­¤ ¬­ýÍ:Þ6ûb¶wÿYÒïu<} eái"core_intrinsicsÁderive_eq_internalsÁØþœÍ:Þ6ûb¶wMæoU´p ¸¤ ¬­ýÍ:Þ6ûb¶wZðVå¸üñµ7¤ ¬­ýÍ:Þ6ûb¶w€9W¾ûŸïæA¤ ¬­ýÍ:Þ6ûb¶wQz6«µVS¤ ¤ ¦ Í:Þ6ûb¶w«XÁò™W¢„$crate::cfg_ifÁùÌ/ªÍ:Þ6ûb¶wàÖhX³Ýn$„ u‚‚zÄòderive_clone_copy_internalsÁ ÝÍ:Þ6ûb¶w‚ÀüWKj– ¤ ¬­ýÍ:Þ6ûb¶w£\æí49 Œ¤ ¬­ýÍ:Þ6ûb¶w$Ýg;Yÿt²L• ÀO"ÄòؘÍ:Þ6ûb¶w+#EVP2«í 5¤ ¬­ýÍ:Þ6ûb¶w¸µ0À"* ¿¤ ¬­ýÍ:Þ6ûb¶w3zTè!1 Ǥ ¬­ýÍ:Þ6ûb¶w°²S©tn<Óä·ÅÛð ©œÍ:Þ6ûb¶wó.FüŠ\žkd }”VrÄò“õ¢ÜµÍ:Þ6ûb¶woߘmMc(ºüû
%…Ñ÷ ³œÍ:Þ6ûb¶w€òÁš2ä1¤ ¬­ýÍ:Þ6ûb¶w^–ŽÄÏŸ#N ¤ Í:Þ6ûb¶wC‰ñÈ ¬¤ ¬­ýÍ:Þ6ûb¶w½&~ë€kÅuÀôùêuÁÍ:Þ6ûb¶weù1ÓÝbmÀôùêuôÍ:Þ6ûb¶wÔl'%¶OÙÀôùêu'Í:Þ6ûb¶wÆK_4aô»ÀôùêuZÍ:Þ6ûb¶w¬š¿7BkÀôùêuÍ:Þ6ûb¶wÙ„h“Ž |}ÀôùêuÀÍ:Þ6ûb¶wD"NÞ—ÍÀôù
êuóÍ:Þ6ûb¶w]<_ÞÑã¿Àôù êu&Í:Þ6ûb¶wCiäù ‰ãYÀô
ù êuYÍ:Þ6ûb¶wʽð®¬
Àô ù
êuŒÍ:Þ6ûb¶w¯Y?½7—Ñ Àô ù êu¿Í:Þ6ûb¶w…[á°¸Ù Àô
ùêuòÍ:Þ6ûb¶w¹9]‚ïØ—&
Àô ùêu%Í:Þ6ûb¶wïÙg{b䕿 Àôù®
YÍ:Þ6ûb¶wÙö7;Jàw¤_ü©Ã9Í:Þ6ûb¶w@Ü_Šýƒø£øÒÿžÿkÿ8ÿÿÒþŸþlþ9þþÓý ýmý:ýý§øsøø«ø¯øø—økø‡øŸøoø‹øwø“øgø{ø›ø³øúéûÖÿ¢ÿoÿ<ÿ ÿÖþ£þpþ=þ
þ×ý¤ýqý>ý ý=úü1ù)û×øûú„üŽù`ûÕü¼ùûéù»ûùÍú±üÇø-ú üòÿÂÿŽÿ[ÿ(ÿõþÂþþ\þ)þöýÃýý]ý*ýkú½úCü~ùPûôøû¡ü¬ù}ûóüÙù«ûúÙû!ùëúÅü°ODHT ¤·Þý‡mÿ¾n¤„ÄÆC§^1ZTß©,íy”
·hiB}ð»¿HÖ×ø‘¿Vu†]ysB$ÄŸ°_îp´†³¡Qâ!]5·µxfˆ8Ý)4ý2Dø‘Oo<€gÇÏ೓¸n»p푊+&¦¥/¢RªÀ–‹¼Sû¢-f. H³?¨zä°+ynŽø!1kAmsUK¨"Ë @[w)¸PZ•à¶+w¶Ø&ýׯ-‡JÖWVÓ¦/i¶zÅ‹1†÷-”`Þ^35 )?ƃ,¼4÷£ßLŠ_J ;6Q‚£5ã=f¥KQ>K,v4Ñ. BWoê ‘ŠäÐCGàC88ø.E—‘‹ñ4!I°È22Ý2ºIJ_ê?MÖKÂz^1MP?nl PF±M9gdQô»J‰¢«n¬Rdœ®7®+xSWœ`¹NÍS/¸e.VÉ´ÙSÞŠÔxl0Vw@ú)\€‘çW2C*K;ÒÎYË–’'ÂÀ\©B)(Îö£Ž]»~»bÓ,2]ç|Š­+{_SW¯]Nr`‡Âž!Õ¢¢b¤ã­oâe‚©c|º\Éxä"cçz´*“¦féÓï:|ögà[1(Κhvo8”ûiø-X=|êj Áþ!•:dzk ¾ w8Ò¹j UeÓ>åjfÎÌ{m}¼Š*NXl$c“ëgr8V¤Kür
°<RÀëvx’…±ñSHx?'E+?è.~Ó= »0ƒýÏßpëX~FN tì]¢^€¾gqƒ/䂺—£uÿ°qƒp¿T)¿T…ž§F*#K|‡]EÇSΤ7§‹QÅ
"ãE[@AØ5ŽB0Oå+ãKc…Jâ0dz3Â}M¹y¨Ô‘MÚi^À»‚’ìÓAŸ±f{’ÉüzTÅglq”Ï€êJ £çÍÝæ&Ð_‘Ö‚•OÛ˜(Ç3 |™ÜÇýh+!*˜žïŠe:ä.™šŠí–ÂêUß@+
d1äža‚1Œõ7¸s†a¸$± âïâq|ºØ¸¢25H
«kN £$©`':š”¤yñ7BGÏV,¥¡¤Ð8@VA£¡.ŒÀf~¨zÑYÀ›á©lf
úŒs£¨ö7}³=û³­ò@-TŸË„­¤!V˜uÅw?®Ž‡I^¤=±Ž"P´hÄ›²mCÏ4~
²”³ÝüƒV–_!L±V)눶¿Üzµw}J“ü­À¡²Lçœiã'%¸Ûq
^¬ºA<Xi„Ÿºm‹‰GW+›Ë¼&}=@ê±ð¾äAjMµw¾P¿Û ˆ°ÐÁSÚmsÁìñÁu!Êy‹)ÌáÂ×o{Ž
º«ÄʾÜk—;zôÁ4ýø‡kÛyǬ݄â@;ÈGªØïÌÌCjð;ž?uÕÎc1&7+4Ôc®Yï¡XàÔ—b~ÝÏzÖQ©±»µ…É™¾K›7×îV²¡“Ð0'ÙÍÕÚŸ
0³Ú~¢6«tÞÚÖm©r©á
 Ü†=Õ%Ÿî8¥ÝÎv*#â ¨Ý1N‚0Åâºn»Oð–ãˆ#ôGÍä¯?Æh
7d䵌Ô^–¨Eæ‰Ûª>ìŒáåSý0z
¯5é©Àl—#[À`ë)Æà«€¾ìÊK73…J>íåÔp/Û4Ðî âÖÏï÷b8}â¹ìWè.œ`þŽï?¨èŸ†´šói4‡šÓ âìôM¬|ËõÔ·ÈIHý¹õl‘[1Õ÷Ÿö]RêwìÞïWôš
ÆŠžÚùÝ{x<Gg+ù;®.dÍ:Þ6ûb¶wŠoæýlÍÚcuWýëV5=ýë˜gÿdÿRÿÿÿÿÿH[_+ÿÿÿ
ÿÿÿZ.D@\vÿÿÿ^Xÿ ÿÿÿÿÿÿ-ÿlÿkÿ=ÿÿoÿÿÿÿÿÿ?ÿ3ÿÿÿupÿHÿÿÿdÿ7ÿÿ&%W02j}EÿIÿÿ]WOÿV]=ÿwG_Mÿÿ+ÿÿÿÿ?ÿÿÿÿo8KÿSÿcÿÿÿqÿqmi=uAÿc~EvÿCqÿ$Th@ÿhNÿÿ +ÿgAu%Nÿ ÿ,Dÿmÿ6e7n|ÿBUÿÿÿxÿÿÿÿÿÿ,1XdYmQTjÿÿÿ]cjUÿ6ÿ8ftÿCdHu<;ÿmRÿÿÿÿÿH[_+ÿÿÿ
ÿi/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends/use_file.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Ái/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends/use_file.rsÁ k çl²Æ†lKØQøR"ÞCÞCê7 )=-H=O1M6,^#)LIIIC)GHIEIH/2
G-23E#
*P0> 62 
.:5
2 +4%&'!-!
&79"<-<#( = /CC?$ ( T/
8 VWLIZ>?d=L K>U!JGONGMNPK<NPNNN N=MF6@3%" =><*'9D'/% $ qàªâÞ?= ýùŽm/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends/../util_libc.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Ám/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends/../util_libc.rsÁ Ž-š«­„4MLDwÊs×ÄÄQ
o-6J.H-,-*5aS.
'*,
')
C)`->)
"52=%@! PD+D=%KN=0
 ¤>eâýÂÔ•ýͱ8§À!|/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends/linux_android_with_fallback.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Á|/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends/linux_android_with_fallback.rsÁ ¯8LÝ,†«:AW}1E_ÕÕgD" #)-cP eP[%-== 1?0[=EC5*BNhc\0N
2"]= 3J
GONMOL8-
fW7KB àôÜ„äRBñŽGŽ›Š%ï]/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/error.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Á]/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/error.rsÁ NU٫ŧ¥c0ø¤óåÓª~…E…EÔ5:$3D!:I
8/QM@>-RXYMB&%
>:EAQ9:0A.I$BR
F=)e
GRPTVR&TN6!MKD#
-
(
b[^W=j\k<#
R/\<AT8^>A6!MS9#('$[9^LB*_.@W.@E/O/I ?/3+$Q:7-6
?3-D3:9
õ‹+œ
fá‚·™wíJ\/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/util.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Á\/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/util.rsÁ VFÓb}’Äù8þ*µƒƒT*0M9SCP
LE,>EPDI09QCP;2;0B
+0<?BE%B
+0<?BE%;*Uâ¢û KÓPq§ƒÃ[/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/lib.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Á[/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/lib.rsÁ `G{¯“º™]NÒåª1ž ž Š9-! Q?';'? & ! ! 0

TOOK!PNKJ2 
4C@> HEKGI%K?+2B<
O%DF5G2&
%G2&
%Ÿ¦XôYb—UÔpº%´a/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/../README.mdÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Áa/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/../README.mdÁ Ä¿­øùjœ=Ó
d´¶ý“ý“." Z\SU&U( :N9 !;;¢jABT?@l@S@>=ZA>;|A=AJ>j?`AZR`-WWì_Z¿¢YƒQZ: 52BTXVQN2NVZZW+HJSROO9;PJPLQMN"ML:#L
0 MIFHMIQ,Q.G 
0&.%3MGLIJ#NOLRB1UR[YSOOL+FG>HIF=KFAIDGFIEJIJM9E'FKJDJ;NHMB>1nF3OX"( 71PQDWm03%5=R75$"85U*%AH*?lM)SZxRTh^h€K|lyde,",;cˆQ,%VPr&

£ ­  œ Î Ö 
˜
ä
£ãÁÐâ£àûÿ±·Á­ó°ôÓÛ¿ Ç š#¤#Ü$!<ëE—6ÞVe¢¨ ­g/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/error_std_impls.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Ág/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/error_std_impls.rsÁ ]4œêAÆo,‡¶®ÏÏ
!"#@?
 ¦€Âê‡_Îqþ½¾[X`/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Á`/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends.rsÁ ÞÀmàdG?ÍHç<í<í<Ñ%?HI@F)
.>8536=#6-$(NAd
: B-
"
XK[\(R>
#)%%( TNH
!)%)+'%(KJD)55
)0!KK9
@.-. 
 H+$2$ U>
-.1=# Hd-$(XVV0d
UW ñ[7ºtžU"mJ‡òj/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends/sanitizer.rsÁP/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4Áj/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.4/src/backends/sanitizer.rsÁ è§ S4Ú4›´`ùù;0KMLF,KMO>6$L-"E*
OR
N:M ,HN8Y6>E"
8_(Ÿ*@6ñ^89â¾ÎÁäY¦ ="aarch64-unknown-linux-gnuÁ-¹Â¹µ„~"h:Ÿîxí‚â-ca874fa007ea6b1fÁÍ:Þ6ûb¶wÉÇß
š’õ ¤ 
~úußu›ˆß¤˜¤¤¤ÈȈFŒþnÜqâˆ~¤üÈ~üˆ
4FÌ
ÔBrust-end-file.note.gnu.property.shstrtab.strtab.symtab.rmeta@ .`Ì%&0&H&I&5/0 0 0 0 644 230976 `
ELF·@3@@LÿCÑàùá ùâùãùà'ùá+ùâ/ùã3ùá7ùà;ù(ëãTè @ùé@ùê

ëê#ù*€Rêùê#@ùêùê?ù ë‰T  è@ùé@ùê@ùë@ùéCùëGù)
‹éùèù  ‘)@ùéùèùà@ùá@ùÿC‘À_ÖÿÑý{©ýÑàùàªá@ùà ùãªâ @ùáù誨ø£ƒøàª”ý{C©ÿ‘À_ÖÿÃÑàùá ùâùàùáùâ#ùà'ùâ+ùHëCTè@ùé ëéùé/ùëiT ‘)@ùéùèù è@ùé @ùê@ùë@ùé3ùë7ù)
‹éùèùà@ùá@ùÿÑÀ_ÖÿCÑá¹á ¹á¹ €RÿC‘À_ÖÿCÑà¹à ¹à¹ÿC‘À_ÖÿƒÑý{
©ýC‘©cÑé ùèùàùàù(€Rè'ùè+ùè/ù€’è3ù(€Rèß9à7ù ø@’èù¨´èñTè ñÀTè
ñ@T€Rá*B”Jè@ùé@ù)ý`“ê *ªƒ¸ ¹9èý`Óà*¨Ã¸”à¹é@ùè@ù¨ƒø(ùH€R(9è @ùé@ù©øê ªJñªƒø ƒ]ø ø ùù ùÿß9”àùèß@9¨7" øè*¨ƒ¸úÿÿè@¹èÛ9èÛ@9©Ÿš(6é@ùèÛ@9¨s8(9(€R(9ëÿÿ Ôý{M©ÿƒ‘À_Öé@ùè@ù(ùh€R(9øÿÿ Ô ”þÿÿÿÿ
ˆ°Ì¸¤ÿCÑà¹à¹€5ÿ/9èq Tà/@9ÿC‘À_Ö(€Rè/9ûÿÿè TH€Rè/9ôÿÿè
Th€Rè/9íÿÿèTˆ€Rè/9æÿÿèT¨€Rè/9ßÿÿèTÈ€Rè/9ØÿÿèTè€Rè/9Ñÿÿè!T€Rè/9Êÿÿè%T(€Rè/9Ãÿÿè)TH€Rè/9¼ÿÿè-Th€Rè/9µÿÿè1Tˆ€Rè/9®ÿÿè5T¨€Rè/9§ÿÿè9TÈ€Rè/9 ÿÿè=Tè€Rè/9™ÿÿèAT€Rè/9’ÿÿèET(€Rè/9‹ÿÿèITH€Rè/9„ÿÿèMTh€Rè/9}ÿÿèQTˆ€Rè/9vÿÿèUT¨€Rè/9oÿÿèYTÈ€Rè/9hÿÿè]Tè€Rè/9aÿÿèaT€Rè/9ZÿÿèeT(€Rè/9SÿÿèiTH€Rè/9LÿÿèmTh€Rè/9EÿÿèqTˆ€Rè/9>ÿÿèuT¨€Rè/97ÿÿèyTÈ€Rè/90ÿÿè}Tè€Rè/9)ÿÿèT€Rè/9"ÿÿèT(€Rè/9ÿÿèTH€Rè/9ÿÿèTh€Rè/9
ÿÿè¡T€Rè/9ÿÿèT¨€Rè/9ÿþÿèTˆ€Rè/9øþÿèTÈ€Rè/9ñþÿèTè€Rè/9êþÿè¥T(€Rè/9ãþÿH€Rè/9àþÿÿÑý{©ýÑà¹è*}@“}`Ó²èùèùèñ蟚(6à@ù øèª¨ƒøý{C©ÿ‘À ÔÿƒÑý{©ýC‘ Ã¸”ý{A©ÿƒ‘À_ÖÿÃÑý{©ýƒ‘è¹à*¨³8 Ã¸!”âªà@¹â ùâªá ”ý{B©ÿÑÀ_ÖÿCÑà?*ÿC‘À_ÖÀ_ÖÿCÑèªèùèªèù@¹)ŸÿC‘À_ÖÿƒÑý{©ýC‘èªèùèªèùRý{A©ÿƒ‘À_ÖÿƒÑéªéùàù )@ùé ùàƒÀ<€=ÿƒ‘À_ÖÿÑý{©ýÑàùá ù øèª¨ƒø(@¹ÈÈ7è @¹èÐ6 á @ùà” ó8 á @ùà” ó8á @ùà” ó8¨ó^8ý{C©ÿ‘À_ÖÿÑý{©ýÑà ùèªèù@ùèùèù@’ñTè@ùé @ù)@ùéù©ø©ƒøýAÓèù¨ø  ‘)@ùéùèùã@ùà@ù(€Râªè@ùé@ù©ƒø¨øéùèù¿ó8¨ó_8H7 ‘)@ùéùèùà@ùá@ùý{G©ÿ‘À_ÖÿCÑèªèùèªèùÿC‘À_ÖÿƒÑý{©ýC‘èªèùàC‘á ùâù¨ƒø”àùáùèñ蟚¨6è@ùá@ùâ@ù¡ø¢ƒø
?ÖàŸ9 è@ùâ @ùã”àŸ9èŸ@9ý{E©ÿƒ‘À_ÖÿÑý{©ýÑáùà ùX 80. Ã¼¨Ã^¸Tý{C©ÿ‘À_Öã‘誨øÈ€R¨ƒø¨1€Rá*”ÿƒÑà¹à¹°R Ÿé9T°Rè¹(€Rè_9 ‘)@¹é ¹è¹ é@¹è*¹ÿ_@¹è¹(€Rè ¹à @¹á@¹ÿƒ‘À_ÖÿÃÑý{©ýƒ‘áù ƒ¸ C¸¨C_¸Ÿšè6 C_¸ Ã¸ý{B©ÿÑÀ_Öà ÔÿƒÑý{©ýC‘㪑èªèù(€Rèùh4€Rá*”ÿCÑà¹ÿC‘À_ÖÿCÑà¹ÿC‘À_ÖÿƒÑý{©ýC‘àùèªèù@9 ñÉTè!ý{A©ÿƒ‘À_ÖÿÑý{©ýÑàùèªèù@ùèù@ùè ùÈ´è @ùàà”ý{C©ÿ‘À_Öà øè*¨ƒ¸úÿÿ” ”ÿœ4 d@Xt` ÿƒÑý{©ýC‘èªèù”ý{A©ÿƒ‘À_ÖÿƒÑý{©ýC‘èªèù”ý{A©ÿƒ‘À_ÖÿƒÑý{©ýC‘èªèù”ý{A©ÿƒ‘À_ÖÿÃÑý{©ýƒ‘àùèªèùà à ùè¹úÿÿà”ý{B©ÿÑÀ”à ”ÿœ 0$T,4ÿÃÑý{©ýƒ‘áùàùÀµã‘èªè ùH€Rèù¨4€Rá*”ý{B©ÿÑÀ_ÖÿÃÑý{©ýƒ‘àù ƒø€µÿ ùà @ùý{B©ÿÑÀ_Öà!è@ùè ùõÿÿ(€Rà_ÖÿÃÑý{©ýƒ‘àùà ùèªèù(@ùèùÈ´è@ùàý{B©ÿÑÀ_ÖÿCÑý{©ý‘àùá ùàùáù X 80. Ã¼¨Ã^¸qATè@ùé @ù)ñ êàŸý{D©ÿC‘À‘誨øH€R¨ƒø¨
€Rá*B”ÿƒÑý{©ýC‘㪑èªèùè€Rèùè1€Rá*”ÿƒÑý{©ýC‘àùàù¡ó*@’è ùè´è ñàTè  ñÀTè 
ñÀTè@¹è¹‘誨ø€R¨ƒø(
€Rá*B”èý߈蹑誨ø(€R¨ƒøh €Rá*B”èý߈è¹à@¹ý{E©ÿƒ‘À_ÖÿƒÑý{©ýC‘àùáùàùáù¢ó*@’è ùè´è ñàTè  ñàTè 
ñÀTé@ùè@ù(ùé@ùè@ù(ýŸÈ‘誨øH€R¨ƒø¨
€Rá*B‘誨øH€R¨ƒø¨ €Rá*B”é@ùè@ù(ýŸÈý{E©ÿƒ‘À_ÖÿƒÑý{©ýC‘àùá¹àùá+¹¢ó*@’èùè´èñàTè ñàTè
ñÀTè@¹é@ù(¹è@¹é@ù(ýŸˆ‘誨øH€R¨ƒø¨
€Rá*B‘誨øH€R¨ƒø¨ €Rá*B”è@¹é@ù(ýŸˆý{E©ÿƒ‘À_ÖÿÃÑý{©ýƒ‘èªèù¡C¸¢ƒ¸£ã8¤ó8”ý{B©ÿÑÀ_ÖÿƒÑý{©ýC‘èªèù¡ó8”ý{A©ÿƒ‘À_ÖÿƒÑý{©ýC‘èªèùá ¹¢ó8”ý{A©ÿƒ‘À_ÖÿÃÑý{©ýƒ‘èªèùèªè ù¢ó8”ý{B©ÿÑÀ_ÖÿÃÑý{
©ýƒ‘àùá?¹âC¹äG¹ ø¡Ã¸¢¸£c8¤s*@’è'ùè´è'@ùñ Tè'@ù ñ`Tè'@ù
ñ T9éG@¹è *@’èù ´è ñÀ Tèñ€
T9éG@¹è *@’èù( ´è ñà Tèñ 
T+éG@¹è *@’èù(´è ñàTèñ TéG@¹è *@’è ù(´è  ñàTè ñ TéG@¹è *@’èù(´è ñàTèñ TéG@¹è *@’ñàà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8à?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8 à?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8¨ƒ[¸è¹¨ƒ¸¨Ã[8)€R 
©ó7yà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8îÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8äÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8Úÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8Ðÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8Æÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8¼ÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8²ÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8¨ÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8žÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8”ÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8Šÿÿà?@¹â@ùáC@¹”è?@¹Ÿ ƒ¸¨Ã8€ÿÿè@¹èW¹(€RèS¹è@¹èW¹ÿS¹àS@¹áW@¹ý{J©ÿÑÀ‘誨øˆ€R¨ƒø(
€Rá*B‘誨ø¨€R¨ƒøh€Rá*B”ÿÑý{©ýÑâùà ùáùðÒëëÉTã‘誨øh €R¨ƒøè@€Rá*”ý{C©ÿ‘À_ÖÿCÑàù€Rá*ÿC‘À_ÖÿƒÑý{©ýC‘èªèù”ý{A©ÿƒ‘À_ÖÿCÑàù @ùÿC‘À_ÖÿƒÑàùá ùâùÿƒ‘À_ÖÿCÑàù )À=€=ÿC‘À_ÖÿÑý{©ýÑàùèªá@ùè ùàªâ @ùèªèùâù ƒø”ý{C©ÿ‘À_ÖÿÑý{©ýÑàùèªá@ùè ùàªâ @ùèªèùâù ƒø”ý{C©ÿ‘À_ÖÿÑý{©ýÑàùèªá@ùè ùàªâ @ùèªèùâù誨ƒø”ý{C©ÿ‘À_ÖÿCÑàùáù(ñàŸÿC‘À_ÖÿÑý{©ýÑàùèªèùáªã ùäùàùèù¡ø£ƒø¿s8 ƒø”à'¹”è'@¹h7è@ùhµè@ùÈ´ã‘誨øè"€R¨ƒøèE€Rá*€’èùéð’ Éšèùè @ùé ëiTçÿÿý{G©ÿ‘À_Öÿœ <HÿƒÑý{©ýC‘à¹á ùâù óø¢ƒøH@ñ#Tâ@ùá @ùà”àùáù¿øà@ùá@ùý{E©ÿƒ‘À_Öé@ù¨ ëCT ‘)@ùéùèùé@ù¨^øèù ëcT
èÿÿé@¹è @ùê
@9)k`Tá@ùàB”¨‘¨øÜÿÿ¨^øèù(€RèùêÿÿÿÑèùâ¹àùáùâ/¹èñ蟚H6é@ùê@ùè@ùêùèù*ù(ùè@ùé¹ùÿ‘À_ÖÿCÑý{©ý‘áùâ ùãù C¸¡ƒø¢ø¨C^¸Ÿšè6 C^¸ Ã¸ý{D©ÿC‘À_Öâ@ùá @ùà”ÿCÑý{©ý‘âùã ùäùà#¹á'¹¢ƒø£øè#@¹à6à'@¹ Ã¸ý{D©ÿC‘À_Öâ@ùá @ùà”ÿCÑèªèùñàŸÿC‘À_ÖÿÑý{©ýÑèùà ùáùè 6”é¹(€R(¹è@ùé@ù©ƒø ù¹ý{C©ÿ‘À_ÖÿƒÑàùàù@ø¶ ‘)@ùéùè ùè@ùè ùÿùà@ùá @ùÿƒ‘À_ÖÿƒÑý{©ýC‘ Ã¸”ý{A©ÿƒ‘À_ÖÿÃÑý{©ýƒ‘èªèùèªè ùâù@9ñàŸý{B©ÿÑÀ_ÖÿÃÑý{©ýƒ‘à ùáùâ'¹à/ùá3ùâ»9ÿ;ù¿ƒø¡ƒøaµè @ù骩øèù骩ƒø¨ø¿ƒøè'@¹È7à !è@ùèùÿùà@ùá@ùý{N©ÿÑÀ”à@ùá ”àù”à@ùá ”àùè@ùˆµÿ+ùÿ'ù ‘)@ùéùèùãÿÿà!è@ùé@ùé+ùé+@ù©øé'ùé'@ù©ƒøé#ùé#@ùéù©ø©ƒø©ø¨ƒøà!è@ùé@ùéùèùÃÿÿÿÃÑý{©ýƒ‘àùá ùàùáù(€R骩ƒø¨ø¿ó*”àùáùé@ùèª)ñŸš¨6á @ùà”à@ùè@ù ø¨ƒøý{F©ÿÑÀ_ÖÿÑý{©ýÑà¹à¹à¹ˆ€R᪔àùàùè*è#¹à”à@ùè@¹éª©ƒø¹!‘ý{C©ÿ‘À_Öÿÿ0,@ÿƒÑý{ ©ýC‘èªèùનøáª¡ƒøèƒ!‘©€Râ *”à”à7¹á;¹è7@¹à6è;@¹ãó‘è?¹àƒ‘à ù!€Râ*”à?@¹”èªà @ùã‘è#ù!‘h€Râ*à”à'ùá+ùè'@ùñ蟚ˆ71à øè*¨ƒ¸úÿÿààƒ”ý{I©ÿƒ‘À” ”è@ùê'@ùé+@ù«ãÑëùªƒø©ø”££Ñ ƒ¸àƒ‘àù!‘¨€Râ*”ã@ùà!‘h€Râ*”Ûÿÿ蔣“Ѡøàƒ!‘ˆ€Râ*”Íÿÿÿœ!¬¬üÈ(ð¬øðÿÑý{ ©ýÑà ùáù誨ø¡ƒø”à+¹á/¹è+@¹à6à/@¹ C¸”á@ùèªàÑèù”à¹à ”àùá#ùèñ蟚È7ààƒøè¸úÿÿè@¹èŸ9àÃèŸ@9ý{K©ÿ‘À” ƒ]ø”à@ùá@ùâ#@ù¡ƒø¢ø”àŸ9ñÿÿè ”è*à3‘èO¹èª¨ƒø¨CÑ” Û<áC‘à€=”âªà@ùâùâªá”àŸ9Ùÿÿÿœ``œh(Ô˜ÈÿCÑý{©ý‘áùâ ùãùàù¡ƒø¢ø£ƒø£µý{D©ÿC‘À_Öâ @ùá@ùà”ùÿÿÿCÑý{©ý‘àùá ùèªèù¡ƒø@¹à*6è @¹à7è ñèŸè9è@9ý{D©ÿC‘À_Öè @ùé‘骩ø‘誨ƒø”à9ñÿÿÿ9ïÿÿÿCÑý{©ý‘àùèªèù@ùè ùèùèù€Rè#ùè#@ùèù¨ƒø€R¨ø¨]øèù¨ƒøà!è@ù¨øá@ùàBè@ùé@ù©ƒø¨ø¨µý{H©ÿC‘À_Öã@ùâ@ùá @ùè!‘¡ƒø”öÿÿÿƒÑý{ ©ýC‘àùèªèù @ùé ù@ùéùêªêùé#ùéªé'ù @ù©ø©\øéù©ƒø @ù¨ø¨]øèù¨ƒøà!è@ù¨øá@ùàBè@ùé@ù©ƒø¨ø¨µý{I©ÿƒ‘À_Öã@ùâ@ùá @ùèA‘¡ƒø”öÿÿÿÃÑý{©ýƒ‘誨ƒø@ùè#‘èù”à”ý{B©ÿÑÀ_ÖÿÃÑý{©ýƒ‘àùà ùà!à@ùý{B©ÿÑÀ_ÖÿCÑà¹èŸšÈ6è@¹è¹è¹ÿ¹à@¹ÿC‘À_ÖÿÃÑèùà ù @ùèª)ñŸš(6è@ùé @ù) @¹é/¹ ¹ù
é@ùè
@ùêùèù*ù(ùÿÑÀ_ÖÿƒÑà ¹á¹è @¹à*6è@¹è¹è¹(€Rè¹è@¹è¹è¹ÿ¹à@¹á@¹ÿƒ‘À_ÖÿƒÑèùàù@¹à*H6é@ùè@¹è¹(¹(€R(¹è@ùé@ù)@ùé ù ù¹ÿƒ‘À_ÖÿÃÑý{©ýƒ‘๠ƒ¸”à¹á¹è@¹à6à@¹ Ã¸”àùá€R”àùà@ùý{B©ÿÑÀ_ÖÿƒÑý{©ýC‘ £xH R! +è¹èwŸH7à@¹ Ã¸!”ý{A©ÿƒ‘À”ÿƒÑý{©ýC‘ £x( R! +è¹èwŸH7à@¹ Ã¸!”ý{A©ÿƒ‘À”ÿÃÑý{©ýƒ‘ ƒ¸”๠øàø6à”à¹á¹ÿ¹à@¹á@¹ý{B©ÿÑÀ_ÖÿÃÑàùèªèù @¹( R kTè@¹èƒ2T‘èùè€Rèùè@¹H€R( r k@T‘èùÈ€Rèù
ÿù‘èùˆ€Rèùà@ùá @ùÿÑÀ_Öé@ùè@ùéùè ùøÿÿÿƒÑý{©ýC‘à¹à ¹Àø7H€R( rè¹
à!‘H€Râ*c” Ã¸à¹à@¹ý{A©ÿƒ‘À_ÖÿƒÑý{©ýC‘èªèùáù”ý{A©ÿƒ‘À_ÖÿƒÑý{ ©ýC‘!@ù¡ø¨ƒø¡ƒøáùઔèªèù”àùèñ蟚h6è@ùè ùè#ùè'ù”è @ù骩øéª©øáªâ*?Ö ƒø ø@ø·€’èùá@ù¡ƒø@ù"€R”à@ùý{I©ÿƒ‘À_Öè @ùèùôÿÿ”à+¹á/¹è+@¹à*h6è/@¹è¹q€TèTè @ùèùßÿÿ€’èùÜÿÿ€’èùÙÿÿÿCÑý{©ý‘àùá ù ƒø¡ø‘A€R”à¹èTè 1aT”à#¹á'¹è#@¹à*7á @ùà@ùâs”๠à'@¹ Ã¸!”à¹è'@¹¨ƒ¸è¹ðÿÿà@¹ý{D©ÿC‘À_ÖÿÑý{©ýÑèªèùèªèùâ ù@¹èª¨ø¢ƒøèªèù”ý{C©ÿ‘À_ÖÿÑý{©ýÑA€R”à ¹ ƒ¸1Tè Tè @¹è¹ÿ¹+"c€Rä*”è*àS‘è¹á¹”€7âÿÿ”àÿÿ” Ã¸¡¸¨Ã^¸à6¨C¸¨_¸¨Ã¸¨C¸¡C_¸‘"€R”©Ã^¸¨_¸é¹è¹à@¹á@¹ý{C©ÿ‘À_ÖÿÃÑý{©ýƒ‘à ùáùèªèùáùB7‘h€Rá*B”à @ùè@ù骩ø¨ƒøèª¨ƒø R”๠¸àø6”à ¹ C¸”è*࣑è+¹á/¹!”À7çÿÿè@¹è'¹ÿ#¹è @¹è'¹(€Rè#¹à#@¹á'@¹ý{F©ÿÑÀ_ÖÿÃÑý{©ýƒ‘ˆ€Rá*”à#¹á'¹è#@¹à*(6à'@¹ Ã¸!”à¹@è'@¹è¹¨¸è+¹(€Rè[yÿ_y࣑(€Rá*” C¸¨C]¸¨ø6”๠C¸” ƒ¸¡Ã¸¨ƒ]¸à7¨³Ñ¨ƒø ‘¨ø¨C]¸) kT
¨Ã]¸qàûÿTè@¹è3¹à”è3@¹è¹
ä@ù¿³*¡³ÑB‘㪥”ÿ3¹ðÿÿà@¹ý{F©ÿÑÀ_ÖÿÑý{©ýÀR¢Ã¸äª¿øH €Rà*!‘#”àù ƒø±@Tè@ùˆ´ÿO9(€RèO9 ”è*àS‘è¹á¹!”àO9èO@9(7‘È€Rá*B”ý{C©ÿ‘À_ÖÿƒÑý{©ýC‘"€Râ¹H €Rà*!°”àù ø¶‘H€Rá*B”ý{A©ÿƒ‘À_ÖÿÑý{©ýÔà¹èŸšH6à@¹ Ã¸!”à¹á¹&‘¨€Rá*”à¹á¹è@¹à*H6à@¹ ƒ¸!”à¹á¹è@¹è ¹¨C¸(ø6‘(€Rá*B”è @¹è¹ÿ¹à@¹á@¹ý{C©ÿ‘À_ÖÿƒÑý{©ýC”à¹à ¹T胹àB‘¨€Rã*” Ã¸”à¹à@¹ý{A©ÿƒ‘À_ÖÿƒÑý{©ü‹ùý‘à+ùá/ùâ3ùà+@ùá/@ù”àO¹ ” øè*¨ƒ¸ûÿÿèO@¹7á+@ùâ/@ùàƒ”à#ùÿo¹ré#@ùèÑé;ù¨øè;@ùñÌTè;@ù±àT à;@ù”àùáù”à/¹H€R( rèo¹à/@¹ Ã¸”à'¹á+¹è+@¹é'@¹ #Ñ©ƒ¸¨Ã¸!”à#¹è#@¹(ø6è/@¹èo¹Cá@ùà@ù¨ãÑèã‘ ãÑè{@¹à*(6à@¹ Ã¸!”à¹+âC@ù¢øà+@ùá/@ù”àùá ùá @ùà@ù¨cÑB€R" r¨£Ñ cÑ©ƒYøèª)ñŸš(6 Z¸ ƒ¸!”๩ƒYø¨Zø©ƒø¨øé+ùè/ù€ÿÿè@¹èo¹Áÿÿè@¹èo¹¾ÿÿào@¹ü‹@ùý{P©ÿƒ‘À_Öÿÿ
(<00<ÿCÑ@€R  rÿC‘À_ÖÿƒÑý{©ýC”àùàù@’èµèñèŸ6 á@ùˆ€Rà*B”è@¹ý{A©ÿƒ‘À”ÿÃÑý{©ýƒ‘èªèùáùàªèùáù ø”à ùáùè @ù¨6ý{F©ÿÑÀ_Öá@ùà@ùâ@ù¢ƒø”àùáùèñ蟚hþ6à@ùá@ù ø¡ƒø”ìÿÿÿCÑàùáùÿC‘À<ÜáˆÔrg ¨X¥Ð /rustc/ac68faa20c58cbccd01ee7208bf3b6e93a7d7f96/library/
This indicates a bug in the program. This Undefined Behavior check is optional, and cannot be relied on for safety.os_error unsafe precondition(s) violated: NonZero::new_unchecked requires the argument to be non-zero
This indicates a bug in the program. This Undefined Behavior check is optional, and cannot be relied on for safety.unsafe precondition(s) violated: NonNull::new_unchecked requires that the pointer is non-null
This indicates a bug in the program. This Undefined Behavior check is optional, and cannot be relied on for safety.Pis_aligned_to: align is not a power-of-twoQ^
unsafe precondition(s) violated: hint::unreachable_unchecked must never be reached
This indicates a bug in the program. This Undefined Behavior check is optional, and cannot be relied on for safety.there is no such thing as a release loadOCthere is no such thing as an acquire-release loadODthere is no such thing as an acquire storeO4there is no such thing as an acquire-release storeO5there is no such thing as a release failure orderingOúthere is no such thing as an acquire-release failure orderingOùunsafe precondition(s) violated: Layout::from_size_alignment_unchecked requires that the rounded-up allocation size does not exceed isize::MAX
This indicates a bug in the program. This Undefined Behavior check is optional, and cannot be relied on for safety.description() is deprecated; use Displayunsafe precondition(s) violated: slice::from_raw_parts requires the pointer to be aligned and non-null, and the total size of the slice not to exceed `isize::MAX`
This indicates a bug in the program. This Undefined Behavior check is optional, and cannot be relied on for safety.P( PªErrordescriptioninternal_codeunknown_codeQPNX$]]]]ˆunexpected situationerrno: did not return a positive valuegetrandom: this target is not supported`code` is negative]85
i/assertion failed: path.contains(&0)i=ÿÿÿÿiÜiÐassertion failed: {
match ret {
0 => true,
-1 => last_os_error().raw_os_error() == Some(libc::EAGAIN),
_ => false,
}
}i£ assertion failed: ret >= 0i° assertion failed: fd >= 0iyixiwPositive number can be always negatedm+mAm@m 0ÿÿÿÿÿÿÿÿ plÿÿÿÿÿÿÿÿ pd%U4I ˆ
Iˆ8 I3$> 9 2 ˆ
Iˆ8 2
.n: ; I<? I .n: ; I<
.@n: ; I?: ; I U4ˆ: ; I 4I?: ; ˆn4I: ; ˆn ˆ.@n: ; I: ; I/I.@n: ; I ˆ.@n: ; .@n: ; ?.n: ;I<.n: ;I : ;I.n: ; I : ; I!4ˆ: ;I".@n: ;I#: ;I$1UX YW %1&1X YW '4ˆ: ;I(.@n: ;): ;I*.n: ;I +.n: ;<,Im ˆ-(.1X Y W / ˆ031
Iˆ8 42 344151UX Y W 6 17 84ˆ: ; I9 U1:1X YW ;3<: ;I=.n: ;  > 2 ˆ?.@n: ;@1X Y W A3BI3CID!I"
7 E$ > F.G GIH.@GI.G J.n: ; <K.n: ; L1X YW ¶B M1X Y W ¶B N1X YW ¶B i= çXÂÖÖÂÂ Â(Â0Â8Â@ÂHÂPÏ o

'~ç 9O
'…ç 9O 'XÒ! ç '‹† Lf '6ç y>
èm'´¸-`'´Lfh'´,O 'µ—8<'¶y>H
M
`m'Ÿ-@'ÅLfH'Å,OT'Æy>h
M0xh ÐO¤ ‰M 
(mJÕ4JÕM
Lm60Q8|MÀ'6È(Rh@)|MH+
N&6)) o+@ç+@ç+@h
$
tm+$çL+&y> |+)y>Pm+8Õ4Ð+9ÕMà+:$ð+=
Nð+?
NP+?ûh|+@T5`+@Öx+AT5L\+Dç$pm+ y>Èm,Õ4h,ÕMˆ-y>|/T5Lm1
N1ÕM-y>¤PmRU4xay> V8.XleU4|gy>(tfy>ðm<U40<‰M``?y>dhmÏÕ4‘|ÐT5`Ðy>(Ñ~hTÙy>dßç‘hܤP‘pܤP‘{Ü_ 0×Õ4Èmž¤lŸy> p çh‘x¡ôh`m­@®y>$¯ôhômuU4|wT5xxT50txy>m,20,2ÕM`,2
Nh,3Ö8p,4ÕMo,,ÕM
lm*%?x*ç |* y>y> ç y> y>¥o
y> y> |Nãy>y> o
Ö ® % Ö Ö¥ï
Ö Ö |N<m D F
M y> Ö˃ËÖËÖ˃ËÖËÖT§N çÜPçÖT§N çÜPçÖ ú
N! ú
N S y>"o ðÒ!# ðy> ñ%Í &9 %-9' ñy>' ñÜP ÏÏ Â
óMÏ

öî
ÏvL
vL 0NšL ‰NšL Q
e*šL ï

NšL *
]"šL N
é*šL N |Nf6 #QXm D DóM F
MZ ÜS
é6Z |M |N
q!Z |M
6ZšL _Q
¨¯šL * Ö
鯚L ãW |NMK ˜c
ö*MKšL 
éMK bN |NÕL pd
ö*ÕLšL }ÜóMÏÜóM!ÜÖÈNšLÈN!ÈÖÑNšLÑN!Ñ
NÖÏ óMNÏšL óMqóMšLÏ qN bNÏMK óMÜPšL Nt_QšLšL uQãWšLšL_QšLQÖ(Hm*)*g‡J(m*)*,g®L($m*)*9g%?($m*)*bNMK($m*)*Fgy?(`m*)*Sg¡L(Hm*)*`gÕL"ˆm\ÜP#\Â# \Ö&s ]% &W è% g ϙ֚L*ƒ ÜPÜPšLÉãWšLÉNÉÖ!ÉÖMK  c )–«MKšL < )V<MK bNšL * uÕL }  )–«ÕLšL Õ‡J
MˆOMKšLÕL|M x+àZ BU |M ¨|M |My> y>y> 3 8. cT y> y> ¨ ¨4 y> cT ¨+P cT y> ¨,šL-----"øm<y># <~g#_<¨y>(üm-#-g# -|M#_-¨|M(üm-# -˜g#(-y>#_-¨y>"´mÂ8.#@Øg#LÄy>#PÅy>#Vƨ#WǨ'XÊy>'_ÊÜPy>,šL--ì ì

,§M------ -@------€ -€@-€€-€€-€€-€€-€€-€€ -€€@-€€€-€€€-€€€-€€€-€€€-€€€ -€€€@-€€€€-€€€€-€€€€-€€€€-€€€€-€€€€ -€€€€@-€€€€€-€€€€€-€€€€€-€€€€€-€€€€€-€€€€€ -€€€€€@-€€€€€€-€€€€€€-€€€€€€-€€€€€€-€€€€€€-€€€€€€ -€€€€€€@-€€€€€€€-€€€€€€€-€€€€€€€-€€€€€€€-€€€€€€€-€€€€€€€ -€€€€€€€@-€€€€€€€€-€€€€€€€€-€€€€€€€€-€€€€€€€€-€€€€€€€€-€€€€€€€€ -€€€€€€€€@-€€€€€€€€€pm D .9  -%J & è%- p F
M ¿ MK ˜c œÜ Ö |N ÕL pd/šLÏzšL žšL šLÖMK˜c(RÖMK(R˜cÖÕLpd(RÖÕL(Rpd,šL---01§M2´2ÆÖÖ Ö {ÜPÖ …W01§M243FÕMÕM ÕM 9à.ÕMç  ç1šL2*Â3ÔnKnK nK %nKnK´?  ´? |N02 1§M2U 3g ï
ï
ï
0“ 1§M23È 
M
M
M1§N2!3)!o
o
o
 Èo
o
ç
M |N0~!1§M2¡!3³!66 60ß!1§N2"2"y>y> y> Èy>y> Ò!
M |N0j"1§M2"3Ÿ"** * 9ž0*X; ]" X;"¬m ‡ ÜP# g#h g 'p ¤P'x ¤Py>0r#1§M2•#3§#×f×f ×f^®MM _®M  "Ìo{#‘È{ç)#‘Ø{ÕM'‘ø|Ö (| %‘èÚ %‘ðæ &Ñ#!%‘€ê#%‘ðõ#%‘ø$M{M{ÕM!{ç)!|Ö"Hmÿ#ÿ*#pÿÕMM^®MM _®M  "¬o&#0&/*#8&ÕM&Ã$x'#%8Ý$4
‘È‘Ðé$4‘Øö$ | %‘Ð %‘È &Q%!%‘àj%%‘Èu%%‘Ø€%M|‰MšL |Q ìm D0 DóM8 P X 5(=ˆ
%h8=%PC=4gN=.= |%h=%P¦=&`=  %hq=%P}=5²=%8Â=%XÍ=6Ø=4(Ù=p F
M"DmW#WÕM#xW*M*"DmW#WÕM#xW/*M/*"Hm
ÜP#
‰M#x
ígšLoˆÜPˆúgM #šL #‰M78mƒ‘ošL‘p‰M5ß(%oï(%pú(9)4`)"<m#ÜP##íg##‰M:W"Ö Ö ÖÖ ÖÖ Ö0`*1§M3ƒ*2ª*œ1* *œ1* œ10ß*1§N2+3)+T5Ï ÏT5Ï T50^+1§M3+2¨+T5ÕM ÕMT5ÕM T50Ý+1§N2,2(,T5y> y>T5y> T50],1§N2,2¨,T5Ö ÖT5Ö T5" oU4#T5y>çç"oÕ4#T5Ïçç1¯X;X;!œ17!X;0Å-1šL2é-2.Ï
7 ÏÏ
7
70E.1§N2i.2.y>y> y>y>y> y>QÜPy>y> ±V0í.1§M3/27/ÕMç ÕMÕMç ç0l/1§M2/2·/Öh
ÖÖh
h
Â0Öh
çç _/ ç0+01§N2O02v0Öç ÖÖç ç0«01§M3Î02õ0*X; **X; X;0*11§M3M12t1¯X; ¯¯X; X;;3À13ç1m>X; m>m>X; X;|S**X;|ž07!~*7!X;"@o|Ò*#|Õ4' ç' ~ÏÏç"lo|Q+<|à.',ç'~ÕMÕMç"\o|Ð+#|U4 'ç'~y>y>ç"do|P,<|0 'ç'~ÖÖç0b41§N2†42­4y>ç y>y>ç ç0â41§N253,5Ïç ÏÏç ç;3x53Ÿ5m>ç m>m>ç ç  §N §N ?=
g<m D F
M ™6 Yf6y> ¤P0¦61§M3É62ö6
 O Q 9O> }7 @Od ÜP ãPg ÜP ãPP¸- ,O *8 §N 9O 9OmU¸-pU¤PxU,O.ðPV%xöP.QX!%x Q * Çg 0Q 0QÙ*8 WR qR ,O ¸- ÜP "oë ÜP#ë ÜPÜP?o¡ÈÜPÈÜP",oUÜP#U¤P#U¤P"0mÜP#g#gÒ!Ò! Ö Ü  Ü JÜP Ö Ü ¯Ö X* X ýé9MK ˜c œé9 Ö Ü |N ýé9ÕL pdhm D  .ŸU¤%¥U%°U@™UKp F
M> o
M‰Lfç$m“e#“Lfç$ooe#oLfç(o#Lf#¥gç ozó<zLfzä<@ÉU~ ç µ<Ìg ó< Ìg> ¼Uó<ç vÜP 8 yÜPƒ ÜPƒ ƒ Ö †ÜP †Â †Ö “ÜP “Ö “Ö78 ”Ö"To!_/#!
N" m" ®L#|" çç®LA“> y> ÂÖÖÂÞ> %? ÂÖÖ y?¯%? y>B%?ç nK ç
 - §y? y>oNnK¡L @8øÖ7!ïN7!O<mê¡Lê @êbN.à^ê-%ú^&^%%À^4Ì^&te%%ƒe.Ye)X$%he8mæxæEhÜmô‡J8ô‰
Çô @‘ øÖ'%èè4Èô$Ý%P4Ð(&— Ì/4ب $6Ì%PP4à\&Ý%è±Ý/%‘`ß%‘hꑨûy>‘¬ÿ§N$®N2%6ÆN&Ç? +:6 'GnK&=N5%8UNE%p'xbN.Nø%8#N.jø%胡L @"°o"# "§N' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g' *§N!*g0”J1šL2ÔJ2òJ2K2.K¡L y>¡L nK¡L ýL¡L ¡L nK ®L,šL--
- - -
------------------- -!-"-#-$-%-&-'-(-) nK
MMKÌLÜLBÕLéLDöL
EvL(MÖBšLDM 
M ÂÖÖÂZ(MÖÌMÖBMÌMÖÏšL
Ï

vL
ÏvL
ö
MKÖÒ5(MÖnK´? %! %´?7! *nKoNCf6DöLOG¸-
,O7^OnOBgO{ODöLÏF ÖÖF+ Ö¥Ö7!§ï
Hlm™?§y>¨Ö5±O«2%ÀO&•O¦%¤OH m9?#|¯y>HPmO?#{BnK#|Bççy>H,oz6Y¤Py>7F57d ,OFK7g ,OšLf6*8FJ8g0Q7!mÖ(MÖHm`8#00Q&=Q¤%0CQ6˜OQ48PQ$n&q*%X‡&%`& %%&Pœ%Xr4' dRCšLDöLOHov8#ÚWR#ÛqRH¤ma7#hP,O#P*8H'pQ
My>ÜP
y>y>HP
#x¥y>&S¦%x-Sy>H
# ão
y>H
# y>y>ZFSZ
é|MHXmv#x
|M$éS
%xøSZH o•Z)H4mF#3 cT#t4 y>#x5 y>#~6 ¨#7 ¨H(mp#4 cT#4 ¨H,m#P cT#P y>#P ¨¤H0#àBU#à|M#à¨ZI :F:  DöLF=çHhod# 9#, 9ç'0 ;ÕMÕMçH\mG!#d Èç #h È
Mo
H`m3"# ÈÒ!#h È
My>8.H o·.#Q±Vy>y>H`mÞ/#Â_/#vÂç'wÈh
'xÇÖÖh
ççƒÖ {…WšL
¨*
¨Ö!
¨Ö(MÖé9F8: ¯XFGšLFM:XFešL
*šL
éãW$_N $_é9N $Àé9 1 é9 ÜP$K1 üb é9 ÜPJ * é9+$W üb * é91é9!üb(Pm# üb#h*#pé9$mc% sc%hc%pc$Pc$X %hVc%pac.Z%hZ%p*ZK$ $* $é9mN(%÷é9.6Y$%(GY4XSY& c%(c4`c4o(c%6cç%ç7!%Cc"lm&,®L#&,ç&ÀZ8&- %ÚZ6æZ4xçZç(Ðm%#(%+h'0%…<&¥ct%ˆ%8´cÿ+%8×.Úc4ÿD%8éc}%6 ôc4Xõc.d %X d6,¿c4HÀc4`Ìc&d,%Hd%`&d'h%ˆé9&Kd240cd@2d)™(MK¼X(äm%#(%8h'0%…Õ&Ždt%ˆ%Àd. ÿ+%À%.Ãd4ÿD%ÀÒd.2}%ÀL6 Ýd4XÞd.ìd %Xòd6,¨d4H©d4`µd&þd,%He%`e'h%ˆé9&4e240Le@e)™(ÕL¼X%ÿ¡LMK¼X%ÿbN!%ÿ¼X%¡LMK%bNF„šL
NF½"*X; 9]"! 9X;7! ;*šL
éNHmÄXØ$Íé9î$ÍÜP5®W%‘°½W4ðÕW
ª&%‘¸4‘˜):~Ê&CX
ªK%‘°RX$_X
ª%@nX@X.0X $Ï:: X  ‘¨$ÑÖ.„X$ÒI%Ø”X. X$Ò+%ذX8N5
_%8_&$
%8= &&g_
%8v_5&_$Ó1%Ð>_4‘£J_6W_4PX_ï$Óœ1Mn-4‘¥š-6§-4‘¦¨-M2 %È726C24XD24`$Ó*.®W$%`½W%‘¨ÉWLCX
ªK%`RX
ª&%h%‘¨N~ÊL_X
ª%pnX¼XFÞX$Ké9!$Küb!$KÜPççFþX $Û* $Ûé9FY$Wüb$W*$Wé9MKFc:MK ý˜c78ÿÖ8ÿÜMK {˜c78F œÖF: œÖ œÜF1MKšLFeMKšL8)<ÌLÜLF :ÕL ýpd78ÿÖ8ÿÜF(ÕL {pd78F œÖF: œÖ œÜÕLšLÕLšL8)–ÕFYMK
ébNMK )VbNHTz'~9O |'€y>HTmz'…9O |'‡y>HTm%x'Xç$|'Yy>çHÌo:('Lf