Files
boc/rust-service/target/release/deps/libdigest-6127948cdbc8b6c9.rlib
T

1004 lines
277 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 452 `
HŒ_ZN60_$LT$digest..mac..MacError$u20$as$u20$core..fmt..Display$GT$3fmt17hd6f0c3746e13c1e4E_ZN64_$LT$digest..InvalidBufferSize$u20$as$u20$core..fmt..Display$GT$3fmt17h8789fa9a582231e3E_ZN64_$LT$digest..InvalidOutputSize$u20$as$u20$core..fmt..Display$GT$3fmt17h8878441c2de6b897E_ZN6digest6digest107_$LT$impl$u20$core..clone..Clone$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$digest..digest..DynDigest$GT$$GT$5clone17h805e7df4382a95caE// 60 `
digest-6127948cdbc8b6c9.digest.69b4a1a55045c1-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 280016 `
ELF·PD@@GNUÀrust
µA#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁ block_bufferÁE°i|ψÛ zÖ]b-åè-a4cfcc9869f4006dÁ hybrid_arrayÁÔrŽ{ݢ뻈‡Z-b6dc66550de77efdÁtypenumÁÿØsc>_),¿JØo<-8295ea8dfde8b1b2Á
crypto_commonÁYžù†'ÜÎÔ¹<ú·‡Î-b4193356d4abfbfbÁ const_oidÁ½ô=ï•#}nå¸L/ˆé"X-fbddf381ae2612a4ÁctutilsÁá!^¤ù90o–¦pò–ýF#-10dd7512d97fb618ÁcmovÁ€;!”í
õèµSQ;s'.-e22e852cf3fa7ce1Á rand_coreÁLÑ
»¬©
zeroizeÁ<»±œã
devÁÝ»Îí¤ block_apiÁ 
  
 ct_variableÁ 
  
 CtOutWrapperÁ9¥9OutSizeÁ9innerÁ9_outÁ>¥>>ƒB¥BE¥EH¥HHCollisionResistanceÁL¥LL BlockSizeÁP¥PP
update_blocksÁT¥TT
OutputSizeÁX¥XX
BufferKindÁ\¥\\finalize_fixed_coreÁ `¥``>
d¥ddnew_customizedÁ h¥hhresetÁ l¥llwrite_alg_nameÁ
p¥pp×t¥ttSerializedStateSizeÁt serializeÁt deserializeÁy BufferÁ|¤
UpdateCoreÁ~ÈSmallBlockSizeUserÁ
_BlockSizeÁ¥ BufferKindUserÁ  EagerHashÁCoreÁ¥Ú FixedOutputCoreÁŒ´ ExtendableOutputCoreÁŽ
ReaderCoreÁŽfinalize_xof_coreÁ
XofReaderCoreÁ
read_blockÁVariableOutputCoreÁ
TRUNC_SIDEÁæ finalize_variable_coreÁVariableOutputCoreCustomizedÁø  CoreProxyÁÚ composeÁ decomposeÁ
buffer_macrosÁfixedÁž buffer_fixedÁvariableÁ buffer_ct_variableÁxofÁ¢
buffer_xofÁdigestÁ¤¤¤¤¤¤¤¤¤¤ ¤
¤ ¤
HashMarkerÁ¤DigestÁ²æ ²new_with_prefixÁ´impl AsRef<[u8]>Á²¥¼² chain_updateÁ¸¼²finalizeÁ²
finalize_intoÁ²finalize_resetÁ²finalize_into_resetÁ²Ÿ
² output_sizeÁ²³À¼¤ÂÂæ ¥ż¥ǼÂäɼÂÂ¥»Ÿ
ÂÞ³Ѽ¤ DynDigestÁÓ¥Ó¥ÓÓÓ»ÓŸ
ÓÞÓ box_cloneÁ¤ÜܥܥÜÜá á Ü»ä ÜŸ
ÜÞÜϤ郤DynDigestWithOidÁ¤ì¥macÁîîîîîîîîîî î
î MacMarkerÁîMacÁû¥ûäý¼ûû¥ûŸ
ûverifyÁû verify_resetÁû verify_sliceÁûverify_slice_resetÁûverify_truncated_leftÁûverify_truncated_rightÁˆ¥ˆä¼ˆˆ¥ˆŸ
ˆûˆˆˆ±ˆËˆèî¥æ as_bytesÁ
into_bytesÁî¥÷îž'aÁž¥ž÷¢î¥¥î§¥§×ªãî­×î  xof_fixedÁ°°°°°°°°°° °
° ° °
°°°°°°XofFixedWrapperÁĥĤħİɥɤɃ°Í¥Í¤ÍװѥѤÑ>°Õ¥Õ¤°Ø¥Ø¤°Û¥Û¤Ûú°ß¥ß¤ß¦°ã¥ã¤ãKeySizeÁ°ç¥ç¤çæ ° ë¥ë¤ëŸ
°
ï¥ï¤ï¥° ó¥ó¤óî° ÷¥÷¤÷°
û¥û¤û»°ÿ¥ÿ¤ÿReaderÁÿ finalize_xofÁ°¥¤finalize_xof_resetÁ°ˆ¥ˆ¤ˆø °Œ¥Œ¤Œý
Œ Œ§   
  
UpdateÁ¯¥¯chainÁ±¼ FixedOutputÁ³³finalize_fixedÁFixedOutputResetÁ»finalize_fixed_resetÁ XofReaderÁ¹readÁ¹
read_boxedÁExtendableOutputÁ¼ƒ¼¼finalize_xof_intoÁ¼
digest_xofÁÀ¼¼finalize_boxedÁExtendableOutputResetÁúÃfinalize_xof_reset_intoÁÃfinalize_boxed_resetÁCustomizedInitÁÇø TryCustomizedInitÁÉErrorÁÉtry_new_customizedÁÌ¥ÌÚ$Ìç$úÐúÒ×Õ× TruncSideÁØLeftÁÙ
ØRightÁÛ
߃á×îCtOutputÁã¥ãbytesÁî
æ¥æƒîMacErrorÁé
î ë>î í×î
îîñƒîóÖîîöInvalidOutputSizeÁø
ûƒþ× >InvalidBufferSizeÁ

> × 
ŠƒŒÖA
S
S
_
_
_
g
k
o
o
s
s
s
x
y











˜

»
¼
½
½
¾
Ç
Ì
Í
Î
Î
Ï
Ô
Ô
Õ
×
Ø
Ø
Ù
Ú
Û
Þ
Þ
ß
á
ä
ä
æ
ç
è
ê
ü
ü



ƒ
ƒ





Š
Š
Ž










š
¤
¤
©
©
©
¬
®
®
®
Ì
Ð
Ð
Ð
ê
î
ò
ò
ú
þ
þ




°
°
´
·
·
¸
º
º
»
¿
À
Ä
Å
Å
Æ
È
Ë
Ï
Ó
Ó
Ó
Ö
Ö
Ö
à
â
â
â
è
î
î
î
ò
ô
÷
÷
ü
ÿ
ÿ
ÿ







~€ŒŽ±²Óëúû¯³¹¼ÃÇÉÐØ99ì<= 
à1F[¯¥±0ú0Ð0H0~0S00Œ0³0Ç0^0`0¿c0!0Ä0Ä0Š ØÙÚÜ%ÛÜí%¿âãhëž”}Ûñ1Øñ1¿cñ1²ÓÌ2ØžBoxÁ¡ˆˆ¢ˆl }.xÏÓçEçEèEGlobalÁ ¿±‡§í#ëÄ0ûÄ0ØããŸ&å·&îuïp‡K„ÎÄ0éõ3ôôõMøˆ )­¿
òÄ0TéããŸ&å·&îuïp‡K„Î¥ ÄôôõMøˆ )­¿
òÞ4Ÿ5Tµßõ3õ3õ3¿cõ3Œ"õ3³ééêÙ& ¹é6X|Í3¿c™6Š ™6Û™6Ø™6™6Ðì™6µß™6™6Äc™6¾™6ØÄīǧ°È°†‘­pI¹â±Ä0¤¿c¥7³¥7±¥7ú¥7Ð¥7H¥7V¥7d¥7^¥7¯¥7S¥7³¥7¥7¼¥7Ã¥7Ç¥7!¥7ÉÄ0Ûøøù¼' »npO«;óÚØ9Š 9¿c9³9Äc9¾9³ƒ„( yÄkªTÛ”±¿c†:Š †:Û†:؆:†:Ðì†:µß†:†:Äc†:¾†:>ØéæãñéÉÄûøŠBÄEÄHÄLÄP9TÄX9\9`éÑÄødÄhÄl9pاãíéÍÄþøtÄÝØïéýøˆÞØðéúøÂÜìˆãžã¢ãöé¥ãó錪ãõ鎭éÒøÕ¯éÔø×ãÄçÄïÄ÷ÄûÄÿÄÄÌØï±6ú Ð H ~ S Œ³Ç!^ ` ¿c!/ Š Û²ÓëûéµßŒ"ÐìÄc¾Vd¯³¼ÃÉ”òÄ0#
ÙÄ00 ƒüØV 9Ä0Ê0C PhantomDataÁFu\»ŸÊ0 ­´Aü¶~0 0,¿Ä0à Ä0â@ã@Ä0üê 
Ä05¬õ Sü¬eß 0 
ôôõMøˆ )­¿
òÞ4Ä0·C¯ Ä0ÕablocksÁ/˜óBèýÖ¾%

DÞ4á4Þ4á4Þ4·C>ýDµä¾ O ×5ŒÀ
Ê0Þ4‰+}ŒÀŽ
âÕE
Þ4F 
E“À5£Á
ÕE}£Áæ
åÕEüE< EªÁMSÕEI+ËFx
< È
 ÎÏ!üäëÄ0ü 8¼
Ä0E7ü«-
šÀ t… ¬³á4Þ4‰+©4
âþHüEë  ¦n\  ”…
   Ì
Ó
ÜÄ0ñ1í
œ¡
±ÁUÔÖ
ÏœN ýî#)^( üEúÿ:á4E=]-)#ÅÅ¢-*!
*!
/ÿ:á4E(*!Œˆ   üEvÿ:á4E¹ Q=ž¿! £‘E, ýý4--–‚-
- Þ4ýä.- üE
°‚-ýû6-
ƒ-ýÑ÷ ,I
íuÞ4%æ÷ ,ì÷ ,2ýÑ‚3-
ùjŽ‘EUâ‚-Eî‚-°ÿ:á4E]ø‚-T =ãÀ!m²€-½ú€-
ÿ:á4E(ýì¢6-*/æM
Uý¢-Bÿ:á4E]‰£-Xÿ:á4E]–£-"N
«£-*!ýž¤9-*#ÿ:á4E
ýç¤4-+$-€¥-+%
+% !+&'+'è,&%ÔLý¶&--'&
÷.$ üE'#c+'i+&
š¥-+%ýå¤6-+$+$#)#ý/B®Móð&0/_0ÿüñÞüâíüýÒý·¾JˆÞ4á4”„ýê¿7ŽÞ4Ê0ÝŽÞ4á4ãýõÀCÞ4Ê0ü›#Þ4Ê0üÖ#ýÖ_ÔÞ4«£«£Ã­£þôÉûT™gö‘Eá4,óýÃ5í ŠÞ4á4­ ýÙ:^
ŒÞ4á4E•7
ýœCN À°4ÝŠ; ý˜@Z Û°4Þ4]¦; ý¸#¬b
ërÞ4ýú6.
ý¬*ñFš9>î$Fù?¬Þ[ÿÝù?“á4ýÞjKXÀÞ4u¥'bý»•MXÊÞ4}Ô'bý»µpNÄÞ4ý¸)$býà"¹^·üEÞ4ÍNýÕI- ôjÞ4ŒSýÂÖ$ ý«˜N-ÇkÞ4£ýµß-µkÞ4eç˜-ù=¼á!¹Õý€(-ýËÉ-újÞ49ýÆÎ-ý£q-ýÂö ¶,ŸuÞ4üÚÔÞ4—£—£»™£¹< =áï_åEá4,¸ŠÞ4á4¿ŒÞ4á4
À°4 Û°4Þ4ërÞ4þû"š÷"ô#ÿÝï#ê"ÀÞ4ç"å"ÊÞ4á"ß"ÄÞ4Û"Ø'·üEÞ4Ô'ÑôjÞ4¢WÎý”¢-)ÐkÞ4n¤-**£+újÞ4ü*Ÿ,,-,˜ŸuÞ4üŸ(·CæÀCL„ || BlockBufferÁbufferÁposÁ®+Eô*V€DÄ04— ôôõMøˆ )­¿
òÞ4Ê0º°4 ·CÏ ˜D
 °4ó ‘E æ üE‘E ‘E¹ ƒ\Á ñ1  üE˃\¸\ñƒ\ ÕE¤  þH¯  ÕEY ñ\a  °4~ üEÕNŽ]}Ž]zÛÍÔLz„]½Ž]"_ *Z*E=”¤-*Ž]ð*Ž]í*ÔL»,ÔL§--àØYº
`full_resÁï ¹V¸N
Š W Ä0ñ1EŸ7ÿ:á4Eý‡k XÞ4‘Eýå•!XÞ4‘E9ÿ:á4E6Þ4E2Þ4‘E¡HÕ
ÚsÞ4¡ ì_ °4S °4Y òDª
óE.
™I4
ËFâ ËFè ŒS
ëÖ
Ïé>ˆ%Fì_]†-ì_+ æMy ®M· ¢W1±`)ì_]Ò¢-ì_¾ì_®æMöì_]¿¤-®Më ü½´½
N
Ä0^ÿ:Ê0EtÄ8G
ó[Ä09X Ûü£c 9Ä0Ê0ʧA Œcü„ˆ0$”Ä0ÎÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ä09xûÿ:Ê0E³a=çaLü¦0 ž
˜Ä0µÿ:Ê0‘EtÇ@üŒt 9Ä0Ê0ï§A ÿgüÒ´0ƒ\Ä0¤
customizationÁ Bÿ:Ê0‘EƒdÝ”ß HFO³ažÿ:Ê0E@w,×  ð ø  ü¹ ?¾úçaÇpon 9Ä0Ê06§AlkuwcÄ0Ê0ý·CÌ ÀC0Ä0`çb_#ÉIÿ:Ê0‘E0³aça¡¤ü"
ò
aÄ0 Ž#*¨*ü" %ã¶ Uݶ  @ˆ,#62Û#
e *#t z
EԺ uκ
 ¯¯\# 
•õº×Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
·CŸÈŸÈ ÈÚ$ O˜éBLI
P ja ý„›#
Ž
êc ›#¤ §#t#
y,«#MJö¯\j H¿jáè8&ùñ ö¨ p/Æ#
 oÄ0Ê0 Eñ/ö¨  /Á#   ùBæÇ$ùB™"$
ŸX%
ý½š"% § ïíe¼îËè¿*·CùBšì$Ã!$
Åc‘E E  c cˆ¢cµ
 `£cbufÁ `àB¤GS
¿j¹BÛ$ ­n  c cˆ¢cµ
 `£c¾n `àB¤GS
¿jU òǵ@Fu\»Ÿ ·C B¬ $
ùB»
ý$ ‚È B· $î õ   ‚È‚ÈArgumentÁ„È´ÀbökÏ®ÝWj´ /“©  [
űù í Þ4‘E§ ïíe¼îËè¿*Þ4¥Ñù § ïíe¼îËè¿*çqý›ùL äÈù ì¨)  íÀæEÀ«
 !ÍÆ¥! EEî¥"
" üEmî¥"
 ”©  Ú
Šçý¯æŽ 
Ь ýÒ«M 
ú¥"µ×§""
"" žØrÔLMƒ¨"#
"#Åu$$õ*$ üE"#ý¶)&b$!$
Û)b$$
ž¨"#
""à)+  !lýî¦Á" Û¼l ! ýÕ«6 ]ÿ« M¬ %-´Æ1-%‰C¾| -%¯\; %X »
cv W"%ͨ"ëÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ‹l}! ò í é %å-%á-%x¯\ %6 š x=QX  \ Y 
ž¬ E¥ç êb¥Ÿç
Ôc8¯ç )Ø  Ü v 
»æÛ‹lEìæ×z­ìæŠ
ëbÙz1
ÿæ
eõæo.üµ"¦+# ¬ü"-«# Œ›#Ž ý–¶Ä÷\·Ck
ýö¶!  ý¥·$  ýºü\·CkkG
åëºýáè$Wkmùºt÷\·CkJ
niýé t$ Æb‘E3ùB°Ö$ý®W‡% ‘EÙB™$ý²™µ%¯‘E·C1Bµ$ý†~û%ª‘EEÌš%Úü\·Ckkå
ÔÐkËýÅ÷ª
«c‘E‘EþýëåØëcðýÞæ-ý몺¸cÍÄæý³«rýš¢Ç·cý«¥!!ç"ªÞ4Eå§!-"ërÞ4ý¥§z!*$š&$#%ÿÝ%$ÀÞ4$$ÊÞ4$$ÄÞ4
$)·üEÞ4)ý‰(ì"¸výŒ§!ýýÅL1 £Tl=ùC¾|` ,,&¿j\æ"  c cˆ¢cµ
 `£c¾n `àB¤GS
 Ç"¿j2
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ˆê)?ÈXM´­k½¿j ù‚±äÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]Tdœ çq‘E çq Í„ Ñmà ¯\-ö¶ ¯\5ëº
¯\òÇôÇ PlaceholderÁõÇ»ÀböÇ formatterÁÀb÷Ç _lifetimeÁÀbøÇùÇCountÁúLjÀb©¡â] å.Ê: ­n6 ÷oã ‡o B´$ EmŸX%¯\Óhër/
«sÚ Òxk ‹lÕ×zMüå×z âÞE%¯¥!Et !lÎ!ƒ\_!ÔLç!EË!Ž]#$¯\=»Æ1,±ŒŽ áßù‚¹ßß·CŽ éßù‚¹çß·CÀx
ÑmÑm
À
RtÆ#ÿ:Ê0‘EôÞ4‘EñÞ4‘E×hfókÐÿnJ
ï{Ú×z×z|õzb x ±`nvÿ:Ê0EAPoûÑmk‘E¸zÄÿ:Ê0E¼¾'ß
a0 Ó'"Û'süû&`¿j\¨'ˆB,'¬‚ ‰'±CÜŠT¦*Ä0´¦*ß
#Ä03\±* »*Â*xüï)SôôõMøˆ )­¿
òÞ4Ä0"¬†*ˆB,ü)B±j†Œ³üá+  ß
$Ä0„ð++ü‚,!%àëUÚë- ¢,©,>5ì Ö¿0DeserializeStateErrorÁ WT3%Î8IßÉŽ
³ì
öë«Ä0-ÿ뤎, 9Ä0Ê0ß§AMüë Ö¿0ÉŽ
„ì´ìyüÈ*áüÁ+hýØêÜÚ[Ä0ÉŽ0zÄ0Ê0°vÄ00 §A•óë…“ìä†,zÄ0Ê0°vßìòÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
0ÉŽü“+# ÃŒ„à*Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ä0ÉŽ·¯\-óëÄ0ã0Òserialized_stateÁ $Å+ß§AÍÑ@ 9Ä0Ê0ß§A¢,z0,ÑÄ0,‡,  šß§AÌ
_ref___outÁ(¾*Ã*à"ñ1- ñ17@J(Å* (.ßlÉ*Mßlkßók|JÊ*⦿j±§•¹¬‚Á‹lȯ\ÏØ±åïókøß
´Ì2¯Äüÿ0Ì2$‹á—Sßá— Òß
â¼üE5 ç¼Òß
°Ì2|V¬Ô è ó ù
ú#3ü÷Åü­MÌ2–™Ì2G·CÆ Ì23ƒ\ –™2dataÁ>³á—RÈ™!–™æÌ2ë–™ñß* æüÅ#ßÈ™I% îïüŽaÇ·Cº…›–™·Cƒ\Ø›á+¨š/iöșϖ™ª–™°üÇ(ßß* íhßÈ™dDˆß ƒüƒ8HÉ2Ì2Ì2D“–™$·C3…›&ƒ\ ˜›(¦=¨šADÈ™–™ß–™åÌ2êüÃ!ß
µÌ2$êËü—SôôõMøˆ )­¿
òÞ4Ì2TÌ2 cÕ¡§ü·%ß
´Ì2Ø+ãÌüþe·C¬Ì2$ Œ¢·Cnº
M‰£˜üÜ,ß
¸Ì2$ŽÍü÷Œ¢d—…›L‰ /®¤sü”0ß
·Ì2À+ËÎü¢©·CÛ…›Ù£Ä·Cmº
L®¥” ß
_Ì2$­"¹ÏüßZ·Cò…›·CY4Ѧväñß
‰;½¢ÐüÍF‘EÔ§T
ßá—äß4$›l›ß*D  §mßÈ™jD¬” ¨ßHßÕ¡A eÊ Éü§£. ÃDLÑOüãg«ËÌ2Tº Œ¢–™Ì2³·C…›ƒ\f˜›Ì2ͨšEhasherÁâá— È™ý–™–™Ì2 Õ¡ ”ãß
Ú0 ôù ! ßýز/ß
™AÞ4®3ßÞ4%÷²
ý²ß®35€³Lü€.ß
ó[·C†:ü€% ­ ß̸ß
ÍBÞ4®3D”¿ Ð Ö×ü–Á 0  ¤ ½ýijR
ú³ -ÍZ
E€¸
((RawVecÁ+,_markerÁµ!iÇ÷åÖ_Þ4®3-- RawVecInnerÁ/µ 0capÁ1¤/‰6< ”I®3UniqueÁ žà¯8Åá™-ÝñÞ4ërýÕ€$%

Þ4
E´ 
 EC
üE 
•´ 
 ý¾³X
#
Eß
ب­$€\™ü… ÕöüÊýš²o¼CÞ4*ýùÊGÕCÞ4®3UýݪÉ ÐBÞ4®3u¬ËýÖâÚÒBÞ4®3eÿ³ýZIEÞ4®3-¥äýê¶NZ®3Þ4PýÌ·[\®3Þ4}š·ýº-Ço¯Þ4Þ45‰¸u ¯Þ4Þ45Ý.o o
ªÞ4k
ýò#Mo¬Þ4¸ªÞ4Eª·žñ1¡ˆˆ¢ˆl }.xÏüE®3 ¨­ªBªBö­B¾n÷<®B÷<9)
-ÜnLÞ4®39E9 ¨­=·CÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
·C†:ϸ\ré¶Ær üE.°²,Eër) ¢¢­
 ³=À®až¯ é¶Ýð­È ”¸   â° žà¯8Åá™-Ýñ¨­§ ïíe¼îËè¿*¨­ ¨­ ¤ß¢­® É «ßð­ßÞ4Ÿœß®3
ã ù üÕ .ßÀ®üÕ %  !4! 
ß Ì!ßž¯ < ””! ¥! «!
¬!#üçÅ?O
 ¤ 
ßç  Ù¹šº˺! ñ
íêèÀ°ˆ±رër
 °² ES
üE
-
¸ß ³Þ üÚ ÖJüŸ ¼CÞ4ù !ÕCÞ4®3QÿÐBÞ4®3ú÷ÒBÞ4®3òïEÞ4®3ìéZ®3Þ45å\®3Þ4áÞ¯Þ4Þ4ÚL! ¯Þ4Þ4× D!
ªÞ4@!
Õ¬Þ4Òj!ªÞ4Ï’¶L‹ žñ1¡ˆˆ¢ˆl }.xϨ­®3鶃‘Eƒ¶··C~Ê·rܶޏ\³é¶r&˺V˺^»¸ °² Ehër|  E¢­ ³÷À®ž¯ÃèÁŸèÁ¦é¶­ð­( Ô¦(ßÈ™$µ($»(%Ç(Þüú'M·C(…›L„(ƒ\$(·Ce¨š KÈ™
üŸ)BüŸ), ß®¤$Æ)'="="½¢Þ4‰+d"ß
âúÅüE="Œ" €*‡*'üë(œ É#µ‹‹ 

=ß™ýó¤)
ýð49 
ýÿ‚M
ß
ãE®3E•ƒß !
UninitializedÁ"#ZeroedÁÕ8¤O|ÅŸƒß®3-¹ƒßèØèØ éØ²‚êØŸ²‚ªë¥CHÈ]Àƒ á
U§œ%±Á, õ±Á,  ÔLuÉœ «
À°ˆ±رërÚ  
°²ýç7N  
ܜ 
•Ë–‘Eýå›É
­Û
â üŸ)bßž¯Î”ï)Ïýù‚S
óІHHTryReserveErrorÁ—Hÿ㤉n¸F’†!ß
pŸ†#%Þƒ «ˆ±ý•…- ý–…, ý•è3"ý•è!"E¡¹$
$ ÆÆ‘ÆUsizeNoHighBitÁ’ƈ¢  ÞÌ3ëì8eÙ< V% E
³¹$ù=¹º#!&ß‘E
Çè"ýˆè@""ë 
Á… ýÖ@G' 
Â… 
­†ÇÎýÖ4€
(Þ4®3 ßµ@Fu\»ŸÞ4
Õ5 ýè¤> ªBÞ4®3
ߑE
¥¥
=è›
ß‘E+ß*å›(ŽÞ4½¢ºýÖ…eº2Þ4DÙ)ýŠÁ»2Þ4®3¤†ý…™ÉÑ2Þ4®3;ýÕ™ùýø™Öý£¤’LÞ4®3ý„š!ýŠ4ÒÞEÞ4®3ný€ÁU,„tÞ4E©œÒBÞ4®3eËœý
EÞ4®3ú
÷ Z®3Þ4C ó \®3Þ4ï ì
¯Þ4Þ4è
Z*¯Þ4Þ4åR*ªÞ4N*ã
¬Þ4à
x* ªÞ4Ý ý‰™ZÞ4ý²œ+ýÇßN¨Þ4ýâš&ZÉ)š9Aî$Fà)ÿÝñ)û)ÀÞ4uþâN*ÊÞ4}©ãNý•”ÏÕBÞ4®3eùœýù²IÄBÞ4®3U”–ýË\`GÞ4®3U²³û)ÀÞ4u–]ý»¸^®3Å]ù<Æ V§ÄUª¹ý£‚âE®3wýÛƒž톆ý¤çª i®3ý›…'ýº8;n"È‚5¯è""^®3åšè"$§Ä$ù=ø¹n!"íÕ·èG  ýþ„EÉ)'š9Sî$F'à)(ÿÝñ)(’¶L‹)…›Lý(é¶R ƒ\Z Œ¢Z  úÅ="EÙ™ ÔL°²rÀ°­ˆ±«Ž]•±Á, ër8
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ˆ±ÏË ¯\EÛƒÏË+ÞE"EŒ"‘ÍŠ$¬ MŸ5Þ4ÕÈ/Þ4E"/Þ4E/Þ4‘EU¹—Õ‘E—Õ‘E®¤Ê
ž¯!Œ¢[
΢b
–Æd"ì_
é¶
ͮ3
æÝéAˆ%F
—LéMˆ%FØÇ
ÌΈ±
ø…
ó×éSˆ%Füß*8üß*",û* â° žà¯8Åá™-ÝñÌ2§ ïíe¼îËè¿*Ì2 Ì2Š¡ßÕ¡ª¼=" =" úÅd"ß–Æ ="Œ" ¶+ ¼+5¥Ÿ
*¦ÜæÜý¤1)5 ßÌ2‘EîÙîÙJïÙ_inner_repr_trickÁù‡¦—/,üú•Œ 
,ßÌ2‘E½ü«*’»Êß
"žñ1¡ˆˆ¢ˆl }.xÏÌ2®3ß,
É# €+ä ë â 
ß Û â é Ú ã ߨÇ
Ò ßôÇ ß®3Œ ßÕÈM 
+
K  H E ÔLB 
ê
À°ˆ±رër
 °²?  
; 
B  9 E
6  1   üß*Xßž¯®”¥+ý
. 
* ÏËî !ßÌê 
è «ˆ±å á Ý "Ù "Õ $Ü $‘Í % E $ &ßEˆ " "
Ÿ "m ƒ  ' } z >Ew  (Þ4®3ߤÏN L  ªBÞ4®3ßEH E  L  
ßEn   l½+6; ër•‰> AßÌ2Eýé"6 Cß
}ø" ßÌ2Emý" •Œ# ?àFH›(ŽÞ4½¢5É º2Þ4D+Å »2Þ4®3À ½ Ñ2Þ4®3ó¸ ³ ® ’LÞ4®3© ¥ ÞEÞ4®3¡ „tÞ4 œÒBÞ4®3š 
EÞ4®3
Ž Z®3Þ4Ú Š \®3Þ4 ƒ
¯Þ4Þ4
ñ5¯Þ4Þ4|é5ªÞ4å5z
¬Þ4w
6 ªÞ4t  Þ4 Ž ¨Þ4 É)š à)ÿÝñ)û)ÀÞ4 *ÊÞ4 | ÕBÞ4®3w t ÄBÞ4®3p m GÞ4®3j û)ÀÞ4g e ^®3` ^ §ÄY V âE®3ÈQ L I  i®3D @ "È‚= "Î "^®3; "Ç $§Ä $: "íÕ5 "2   . É)'š* 'à)(ÿÝñ)(ý©žØ
ŠÌ2®3ý›Ÿæ
**ýËŸ°
+*ý "Io+«Ì2EòŸ
*þ7-ªÌ2EÛ"o-ý§Tšn+Ï‚Ì2ýØŸ#
*ýÇUún//ýƒ„±X/ÄÌ2½éUn/ýð$°/ŒÌ2Å‚Vn/ý÷%©2©³X2ÎÌ2ÕŒ&2ýˆ.Í3ýù&2É)5š9_î$F5à)6ÿÝñ)6ýì1Ôn0Ç‚ýƒW6n/ì ,È‚5“ 
*Á,¯Ì2Þ45Ò 
*29:¯Ì2Þ4½:*9;ªÌ2&9;ýŒ¬K%,ˆÞ4µÃ 
*Õ=¬Þ4À¬%=ý댹 ,ý¸ *
*ý…jú ?倎 ?ý¿=Æ @ýØj¡ @º
AÈ‚5> Aýž"… Aƒå×B Aã
CÈ‚5„# Cý˜?EnCÊ‚]“# C’¶LË*þß$·*é¶ ƒ\ Œ¢ Ì2ˆ  þß
·CŠ
–Ý@™Ø="Ež
»ÔL0°²
À°Hˆ±FŽ]
ërÐ!
íØI¯\F
ÉÅÏËn!EÒ"EÏ"‘ÍÍ$·Cý± 1
*àÞ˜/ërÐ.o:æÜŸŸ
*´
n
Þ4ÕÈ/Þ4E"/Þ4E/Þ4El
—ÕEy
—Õ‘EÕ¡æ ž¯] Œ¢õ Œ¢ü øßç –Æd"ì_ˆé¶q
®3w
¹Ûl
ÆÛg
ØÇyÌ2ˆ±d
êÛ^
­Ì2å”…X
¯Ì2í¯ªX
øÙé_ˆ%F
úØéVˆ%Fàç¼ü•,:t•,¢ðW
 ½˜– ]˜–


  
ßÿ:½¢‘E? 
®–
Ü— Í–ê%ôÈ, M‡O! Œ¢ýê
®êý„ê. Ö¿Ù£ž¤ž¤Ÿ¤TryFromSliceErrorÁ ¤ˆ¸& E7f~‘×E! (ô±,
"«Ù£# Ö¿Ù£†:B Î,üá,+  ãÌ2°vÙ£·CÌ2¾5&«Ù£ÿë'Ì2üç,%)߉£$-ˆ-&«
¨ ùcÞè"  
p4 ~4
 ߯\~4 
G
M i pHO
 ãÌ2°vÅúÓú*7(ßÊ·â6& Œ-“-µ6'ßÊ·­6&á*üÃ+ÐýïïJWޏ\Ù£T™,ý‘è§Þ4½¢V dÿè ýÞè"ýø”çÞ4½¢ýÞè!ùfþ
Œ ùfÝ Ÿ (ˆ·C½¢Íä•›(Ž·C½¢ýä•ýýª9*ì*Þ4‘EUÀ—ý§S‚*ù)Þ4Eý©—"ýåç,
ˆtÞ4EUüS*
ýÐèƒ,ýšê9,„tÞ4Eßè,ý³éZZ£Þ4‘Eeèè,’)ÛÞ4Þ4‘E5êZýÄ…¨1
ÆT û€þøå‡T*
…­†1Š8Ú[¤þø·CÞ4½¢°v¤·C·C]Ì—ˆ8…85ЗÞ4½¢°vç·Cw9ì=÷\·Cþø>>ý½ÈW,…tÞ4eœê>ü\Ù£þøþøË;>F>þøX>ýØ>OÂÞ4Œ¢5©êýð‹àç[Ù£þø†:âÌ2°vþø†:·C(u""¥«""¬¹,$âÌ2°vñƒ·C-¹":Ú[Ù£†:·CãÌ2°vÅúÓúüÝ,0ô9&&ñ9&&R'ãÌ2°vÅúÓúÝ:&Ê·ìí+Ì2$Ô+¸\Ú+Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ù£†:tÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ù£þøÆÒ„HÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ǃþøÇÙ£ŒÃøÃ+‘E)»¸…ôÈ,¯\tA~4Ù£0"Ù£|<&·Ck<&Ì2·&¾nŠE…–ÿ:½¢‘EE§–ÿ:½¢‘EÌ2 ’-
Ús·CûôôõMøˆ )­¿
ò·C½¢ f“ 
òWE‘EùfŒ] ì_ #
D·C½¢·C½¢‰EE·C·Câ!
â½¢·C‰+
·Cd"ì_U²è,þø
ë†1×µ=åƒ
ÏÒ„Æ=‰£ØÎ,âc†:¼,åƒyþø º, Ì2G߉£EDi -Œ-ãç·Cæ,Ò„ýÙ£â,Ì2¾n¦Ì23 ‰£ß ø0€.Bü€.Aü€." 
ã
 à

ç
þ

ßÿ:½¢‘E  4†/ßÊ·’/ 

     !þ
% Ãøú

 ö
 ó
 Ö¿Ù£þø
ïõ
ô£.ª
&«Ù£§
' Ö¿Ù£†:< À.X
ù¶*«Ù£Åÿ¶+ •¢Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ǃ†:Ù£ë0Á.ü€.BlÙ£ Â.üÌ.0ß®¥$ò.ø.&µ 
²  
 p4" ~4"߯\~4" M T š
¦­rÉÐåÝäp4-~4-߯\~4- ª4.ßÊ·6=1Âä0ü™-ùüö-œ1Á. Š Þ4½¢  $    Þ4½¢       ( ˆ·C½¢û
 ›( Ž·C½¢ø
 ô
 ì*Þ4‘Eð
 í
 ù)Þ4‘Eé
 å
ˆtÞ4‘Eà
Þ
Ù
ñ!„tÞ4Õ
Ò
£Þ4‘EÎ
’)ÛÞ4û€¾
»
ÆT¤þø³
±
8C Ú[¤þø·C×
 CCŽ
Þ4½¢°vç·CDì=÷\·Cþø>>
…tÞ4
>ü\Ù£þøþøO;>""F>#þøX>"
ÂÞ4Œ¢
~
ç[Ù£þø†:åÌ2°vñƒ·Cío
&&l
&&¬«.(åÌ2°vñƒ·Ci
&ì=÷\Ù£†:?>**>**>ü\·C†:†:g;>--F>.†:X>-Ê·ìÎ-…›L°-¸\»-•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜Ù£û¸…ú’†ú¦Ù£$·C
ö† Ù£eÃøœ ‘E »¸Ù !¯\
B"~4"Ù£&Ù£*¯\
B-~4-ý¾n¾nú-Ž Lß¹Ô{
ÿ:½¢‘Eý ÿ:½¢‘E ®¥è„‰ðÄ Ë‰¹ ì_ÑØ ê‰â!—Šd"ì_| þøy ×GÞ˜v À.å_†:®.Þ˜uþø ¬.”¶/ßѦ$Ã/Ï/æü˜/7·C«/…›L¡/·CU4Ѧrüþ/0ßÔ§´0çüÕ/_E,î/ Ì2,ä/ /Ô§g´Œ1d•1
ß
ÙÌ2$•1<š1;ß
ªÌ2JZ^žñ1¡ˆˆ¢ˆl }.xÏÓ®3 ¡1¨1èüØ0Pù ”ï0ÞŸ,å0þßùÌ2ø=« Ô $þßù .ù ù 8Ôïß
°Ä0$„*ŠüÃM·Cä˜Dƒ\·Ci¨š Já¢üè(ß$‚l‚ß*D‡ Žhßá¢dDˆß £¤ü¤8H2Ä0Ä0–™·C3˜D%ƒ\˜›'¥<¨š@šCᢖ™Þ–™äÄ0é¬ô
ß
µÄ0„ùt- ãÄ0 ü¸Xüî,C˜Ä0üæ$õ3Ä0°4Iª§¸Ü¡
ß
¸Ä0´¦Ã ãÄ0 ¼ÃŽü¬Â˜Ä0ü“*õ3˜D°4Gí¨´”˜ß
_Ä0"±ü×Z·Cê˜D·CX3¦ªuìŽ#ߪ§ B ª
+1ßÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
·C™6ü‹j¬
ºÀÈÕÛßµ¬Z ôû
& üÅf ãÄ0e«l–2 õùº


ýÞ4á4‰EŒE °4ýëº-ß
DÞ4á4ýÞ4á4‰EŒE’¯
e 

=
—»
tò0 ãÄ0 ©2 ´ß
·ßõ3õ3ä ­1_Ä0T“j˜Ä0hýµæ0Wƒ”¯õ34¥üæ1J¡Ä0mÒæWýɺUüÞ4á4<œ2Pƒ°4õ34¤2üÆ0@Ä0I µ¬¤ìÄ0”¯Õ õ3õ3 ²Þõ3æ°4²°4軯éYtagÁ_Z §°îõ3¢õ3¨õ3®õ3´õ3ºõ3Àª§°¯ü‘#¬‘ßí¨ ~C ³
+1ßµ¬üŽp\
jpxßµ¬Z ýÅ
Õ üõA ãÄ0YÛ Ú
á
ýÞ4á4‰EŒE’¯Ôß°¯
 

ñµ
² ãÄ0 ± ß§°° (ýDŽÄ0„–˜Ä0O¦ƒ”¯õ34®¢¡Ä0 üÞ4á4胰4õ3˜Ä0ß µ¬¤Á˜D”¯ªí ²íõ3õ ²˜õ3 °4°4}»¯~Wí±[ §°Uõ3õ3õ3õ3õ3 õ3&í¨í°¯¬
äúßÿ:á4E&ßµ¬ à  Æ!¬Ú ߪ§'„ß  î ¶$>* Å$
üEßÿ:á4EÎ: ß: QÝ¿  9t¶ 
itÀ 
ß ½ ½ ¾ChoiceÁ ¿ˆ  ÄgqS:ËÙQtò  
Þ4Ñtã ß
˜üE  ßÞ4 tï  V   Átå  …!eãa 
ý§š#Gß
ŽÞ4-ÄšG
 (l!
4¢!ßµ¬ü!2+
l²!ßµ¬) Ç!¦
ü˜¯t“ 
Þ4 
£ æ
UüÜëüÍ zD)ŠÞ4á4Q^)ŒÞ4á4r)y)À°4)’)Û°4Þ4¦)­)ërÞ4Á)É)šØ)à)ÿÝñ)û)ÀÞ4 **ÊÞ4%*,*ÄÞ4>*F* ·üEÞ4[* ýS Þ4Tû ùtë½  ½èùt²v 惔½4™!ýÿ…@  bÝý¼a>  >M°† ý¡câ  ?=èa ýø™TG Þ4íàe µ¬¤½Ä0ƒ\®‘E àƒ\üÚ °4=Ä0=„])Ž]>*”½¹·CT Þ4vÞ4Þ4{í±¹choiceÁ7”½Þ4°¼ÿÿ:á4‘Eý.ÿ:á4E/Þ4E"/Þ4E_ ”½ ì_Ä0:ª§,°4а4ÖÄ0S±`·/ñ½9Õ¾Ý
Là"äö"ßÿ:á4E&l¨#ßµ¬ ¿#É$ÜÖ#
ßí¨$Ö#´Û# Tò#¶$>*Å$
 üEßÿ:á4‘EÎ:ß:Q· µ ² ß”½|  Þ4yßñ½qnßÞ4k ¾
  i ‡$f dßÕ¾
[  l”$ 4¤$ßµ¬ü‘$2+ l´$ßµ¬)Œ˜
üÛ!îX
Þ4U õ Ò¯ OüØ"ñüÉ#€D)ŠÞ4á4í^)ŒÞ4á4r)y)À°4)’)Û°4Þ4¦)­)ërÞ4Á)É)šØ)à)ÿÝñ)û)ÀÞ4 **ÊÞ4%*,*ÄÞ4>*F* ·üEÞ4[* SÞ4Tý#P ½3K-ƒ”½4$G b C >@= ?97 Þ43µ¬¤‹"˜DLñ!ƒ\ü!E Ü"ðƒ\üÖ#&°4ž„])Ž]>*”½â·C}»ÄÞ46Þ44Í#qí±v¹z€Ä2”½Þ4
z¼û"ÿ:á4Eý.ÿ:á4E/Þ4E"/Þ4E  ”½ì_ãí¨x°4°4Œ±`·/ñ½O Õ¾óL¤%4º%ÜÄ%ßÿ:á4E&lõ%ßµ¬ Œ& Š' ¬£&$£&ߪ§'„¨& ·&¬$¶$Å$ üEßÿ:á4E¬$k%k%ßEk% È&T
R
ßÕ¾I
n
lÖ&4æ&ßµ¬üÓ&2+lö&ßµ¬)R ' üÏ$¼
¥% °% °%  Æ% ÔLÙ% üEð% ú% ð% &
. , ) ß”½ó Þ4ð ßñ½è å ßÞ4â 5 
à V&ßæMßE&ˆ&ßÿ:á4Ež&

V&®&»&
®&Ì&
Ì&
ßÿ:á4EÌ&

µ Þ4² R
A¿üœ%ïü–&uù(ÔÞ4ŒSá4,¸&D)ŠÞ4á4¬$^)ŒÞ4á4r)y)À°4)’)Û°4Þ4¦)­)ërÞ4Á)É)šØ)à) ÿÝñ) û)ÀÞ4 **ÊÞ4%*,*ÄÞ4>*F*
·üEÞ4[*
c*ôjÞ4ŒSw*€*ÇkÞ4ï$—*µkÞ4©*±*¹ÕÃ*Ì*újÞ4¥%ã*ï*< Þ4T¾&9  ½4 ƒ”½4Ý&0  b ,  >) &  ?"   Þ4 µ¬¤ý$Ä0$è$ƒ\î$E  %±ƒ\°4WÄ0W„])Ž]>*Ì&Ž]¥%Ž]°%V&k%ÔLÆ%”½þ·C»Ä¹Þ4RÞ44š&¤í±©¹­€Ä2”½Þ4§¼È%ÿ:á4‘Eý.ÿ:á4E/Þ4E"/Þ4E ”½
ì_éÄ0zª§l°4º°4ÀÄ0ŒSª/±`·/ì_À/ì_ž&æMV&ñ½Õ¾3Lç'4ý'܇(ßÿ:á4E&l¸(ßµ¬ Ï( ú) Üá(ßÿ:á4‘E¬“)$“)ߪ§'„˜) §)¬$ ¶$ Å$
üE ßÿ:á4E¬$ ï$
ø$ ø$ ßÿ:á4‘Eø$ 
 ¸)´ßÕ¾«ÐlÆ)4Ö)ßµ¬üÃ)2+læ)ßµ¬)t û) ü‘'ê'ßæM'ßÿ:á4E0'ßÿ:á4EF' 
'V' `'
ßÿ:á4E'Œ'Œ'
''Æ%ÔL½'Ù% üE
''ð'ú'ð'ï$
(&#ß”½íÞ4êßñ½âßßÞ4Ü/
ÚÞ4´A¿üß'œüÙ(¢ü†)uù(ÔÞ4¢Wá4,¨)D)ŠÞ4á4¬$^)ŒÞ4á4r)y)À°4)’)Û°4Þ4¦)­)ërÞ4Á)É) šØ) à)
ÿÝñ)
û) ÀÞ4 * * ÊÞ4%* ,* ÄÞ4>* F*·üEÞ4[*c*ôjÞ4¢Ww*J,ÐkÞ4ï$b,Ì*újÞ4'ã*ï*ŒÞ4T®) ½lfƒ”½4Í) bY| >yv ?rp Þ4lµ¬¤À'Ä0$«'ƒ\±'E ã'ÁE Ý(ƒ\ï°4RÄ0R„])Ž]>* ø$'Ef.Ž]'Ž]Œ'ÔLÆ%ÔL‰.”½`·Cû»ÄÞ4´Þ44Š)í±»¹¿¸º€Ä=”½Þ4²¼‹(ÿ:á4‘E¼á(ÿ:á4‘Eý.ÿ:á4E/Þ4E"/Þ4E ”½ì_'Ä0¸ª§Œ°4Ö°4ÜÄ0Ñ¢Wª/±`·/ì_å/ì_0'ì_F'æM'ì_0ñ½Õ¾½ð+ °4¹À ýÞ4á4‰EŒE’¯³ß°¯÷Ï(»+ ãÄ0¿+À+è6üÞ4á4¹õ3U ²]°4Ñ”¯Ù»¯~ˆ°¯m S$ ãÄ0±-˜B$õ3$Ž-°4,ù,·& m$\Á.°4Ò.ü’.@”¯T¬. ²,¢. .TÖ/°4‹!’! ýÞ4á4‰EŒE’¯…!ß°¯É!¡!e! ç/î/šü¦/H» üÞ4á4<á/°4LÂ/ ²,¸/”¯¾»¯8"T°¯%"æ! ãÄ0†1!õ3$ã0°4,Î0·& B!Ð"Ï"Ö" ýÞ4Ü5‰EŒE «5Í"ß
DÞ4Ü5ýÞ4Ü5‰EŒEßô.##Ê"Ç" ãŸ5Æ"°2¡J"6"üÞ4Ü52"€"ƒ«5ñ41"/"Ÿ5v"ñ4$‡2áô,î1«5Ù#„õÚ#·&Ä"ùôÉ#="="°4þHd"ß™I="Œ"É#="="°4þHd"ß™I="Œ"É# ß”½Z Þ4Wßñ½OLßÞ4I œFƒ Þ4  Y
W
ßÕ¾ N
sãa 
ßÞ4
óa 
á3¤ ü‚3_›(ŽÞ4á4ô¶3›(ŽÞ4á4dÇ3ùÞ4œÁ3ö ½ÙñÓ$ƒ”½4Õ3í bÆ$é >æã ?ßÝ  Þ4Ù $§3 ²,ˆ3 ²,3ƒ\¾ƒ\¯æ\="æ\="”½t·C»Ä/Þ4ÈÞ4þ\¹
_7° ”½™Id"™Id"ñ½kÕ¾ü5ßók 5ß‹l”œ5ì’5µ5©üÍ4h¿j\ú4 ²,Ô4¬‚ Û4±Dók7¬üú5–·CŒ6 õ3L6 0ß8ì8Ø8™6(á8ßókßl!)æ8î@¿jK ™6U¬‚]f±s}ókó8ò(î8™6Øÿ)÷8ôõ8·CØÿ)Hù8ß‚9÷)3Øÿ;ØÿCL¹
YcŒ¸Ä0#ßã@, ÈüŸT ÄÄ0â7ßµ@Fu\»Ÿâ7 òùÌüý|¥7$ ¥7,†Ä0Ô›BÓ=ã@÷ü ! ß
÷c  ß‹lŒ¯ü¢GÄ0 ¿cü Hß
Ù`¤ß ‹l4ÕdÌÏ çT… 
ƒ 
ž…ü pß»…ß
l<ü VÔö  ü ß
à`] ¥¬ÐüÝÏ ¿j烬‚ ë Í`Í` DebugStructÁÐ`×µ`Ñ` µ`Ò`
has_fieldsÁµ`ã¹q·Ù›ß¨Ó‡Ó‡#Õ‡,ž…á›Béž…r ƒ~½±ÀíÀ„}›Bž…2»……û…õ†c” 
ß
´Ä0$ü© U ÄÄ0â7߃ ý 
ÔüŠ z¥7Ä0ê‰
ß
eÄ0õ*üÕN ÄÄ0â7߃ ¢©êü£¥7 ôôõMøˆ )­¿
òÞ4Ä0WªÄ0ËkeyÁr‡‹ìÄ0Œ¡ß¦ª0 ±¹îüƒ6·C ¥7·C_˜D=¦ªƒÄ0´Áßá¢0 ÖÞòü•I·CÕƒ\·Cm˜D"¨š'RᢟßÄ0ž"ž"â7Þ4‰+¼"ß
åšüEž"ã" Žü®h/¢$üï ßß
¿Ä0î´ùú}È(Þ4â7/·Cä¥7$¿ ôôõMøˆ )­¿
òÞ4â7Å·C»Ä0¸\ šž"qº
A-»‘Ä0Rµ¼"Ä0ž"ž"š¼"ßµž"ã" éñ¢$üÄ&ß
ÅÄ0æäÎþüøyÈ(Þ4â71·C¹ÕL“’š·Cv˜Dð¸\eí’ž"3º
6vº”·µ¼"Ä0Äœß
¾Ä02 ³ºƒüìNÄ0½d…¥7Ä0:›–Ä0ôÜß
ÄÄ05¤æ ùü¡_Ú–Õ˜D5Ç—üÖ  ß
ÈÄ0,ü½c ÄÄ0â7߃ Ÿ¦üƒ£¥7ƒ\l•Ä0™d5Û˜±L› Ä0¬› ߆Œ/ ¯ üÔbÃŒüë%烛Bz6†Œ|üÕ!  ßÍ„ä!'üö!MoFF' Â"É"oF³F Ö¿¥7ÉŽßÉŽGG«Ä07Gü"A ÄÄ0â7߃fG Ö¿¥7ÉŽ†G’Gü¼ ¶GÚ[Ä0ÉŽ¥7Ä0â7°vâ¥7·C-÷GHüú!HÄ0â7°ví·C7GÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¥7ÉŽü—!3Œ’„Ô ™’û¯\öHÄ0G¥77G’’.
Í4ÞG ÄÄ0â7߃Â"¥7€"Þ)Ä0$û!§ GÔÐßß* èmß
°¨­pJ¬Õ éß ýþüðŽ8H±2¨­¨­–™·CJܶ>ƒ\˜›:¨=¨šAVÞ¡–™á–™ç¨­íßâ!ß
DÞ4¨­TÞ4Ò¤‰EŒE·Cßܤ%"â! £® ·ü¬0@ßD›äˆß
´¨­Q0¼µüÞY(ˆÞ4Ò¤”ìôôõMøˆ )­¿
òÞ4Ò¤¨­ƒ§«·C¯¨­î ƒ§ÓM5º
ãI²¦óƒ§~¨­ʤâ!â!ßʤßܤ%"â! ¡¢ü†œD†üí"ß
·¨­3ìò¸TüÃ_(ˆÞ4Ò¤”у§ܶƒ§÷·Cà§"º
ÂÄ©±ƒ§öʤâ!<µ#ù !`Vßð­ßÞ4ˆV‘Vß®3 V`V Ý#Dò#â° žà¯8Åá™-ÝñüE§ ïíe¼îËè¿*üE Ž]œè#ß
º¨­$è#Ätí# ú#…$ $Ž$ü÷"—ü¿#ßž¯~”Ì#»8ü±#]^Y¼CÞ4± ’¶L#ܶL…#‘E #’¶áé¶â·Cö¸\ Ž]¨¬¬±F¹J¾n.Òž¯Ј­K’¶
ð­`Vœö&ß
¾¨­$ö&tû&8ìö&ß
º¨­½h'LŠ' ' “'š'!üÁ&Y¿·Cë&¨­$Ö&¸\Ü&·Cª º°üº°/º
3lû¯/´°ïº°´º°º
TÈ(|Õ(ß
´¨­ ìî( ß4î(,ü(tü(ß* D) ‰)mßÞ¡jD ´õ( Š)¬•) 
4•)  ß 6ßû¯ :
 tœ)W 
©) ü•)"ß´° ƒ4°)d«) ¶)  ·)
 
½)
¾)9
3
üÛ'ãO _  À2üÄ(z
·C”(–™,é'¸\4(¨­&·Cܶöƒ\Ó˜›ò·CÕ±º°¨­òinputÁn»
r «œâ
IJ¥JÞ¡û¯ý´°º°h–™Yº°v–™g¨­n <”,
ßù !`Vßð­ßÞ4ˆV‘Vß®3 V
 `V Æ,œÑ,$Ñ,
ß6ßû¯:tÖ,W ã,Dê,  쫬¬  Ž]+  üÑ,"ß´°¼ Utå, ò,  ó,ý, …-†-7$ üÍ+¹@P
üž,)ßž¯Ê ”µ,ÂYü,v^Y¼CÞ4þ
’¶Lü+¨­$ß+‘E\å+’¶Aé¶/·C>ձ÷¨­ò¸\œ Ž]«¬¬´iÞm¾n±ž¯õû¯^´°¾º°Œº°’¶w¨­~ð­`VÌ0ß
Ĩ­$0¤¢08ü0#ß´°\¼0L·0 ¿0 À0Ç0!üÝ/jÅ·C’0ܶLø/¸\ƒ0·CžÕ±íº°õ+º
/hþ´°ßº°°º° <¬3ù !`Vßð­ßÞ4ˆV‘Vß®3 V`V Þ3Ìé3ßþ$é3¤î33Dˆ4
쫬¬ 
Ž]+ üé3(ß´°Utƒ4 4 4›4 £4¤47$üÚ2Êü¶3)ßž¯}”Í3Æ8ü¨3|^Y¼CÞ4° ’¶L”3ܶLò2‘E\ý2’¶àé¶á·CÕ±¡º°ª¸\rŽ]z¬¬ƒYÞ]¾n@垯ãþ´°Œº°Zº°a’¶Eð­`VüÈ;# ßÛ˜lÝ;'üÅ;' Ö¿Ä0ǃ ë;ò;Ïüò:€Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ä0ǃÌ¡;ƒ\lˆ;Ä0×™dÛ˜õº?ü(µ?9 9!+(Â?ßókß l!)Ç?ÿ@¿jK’ÈS¬‚[d±q{ókÐ?8É?9 …B8 þA†:(!‡Bßókß l!)!ŒB@¿jK †:U¬‚]f±s}ók#™B(#”B†:ŠË)$B$B·CŠË)H%ŸBß%¨B)3ŠË;ŠËCL¹
Yc     
   
         
     ¤î°¯³¹¼ÃÇÉÐøùƒí¤,›
ñ1·Ùd†Ÿý”·¡¢T‹£±žÉ„ƒë²˜Óý±š InnerInitÁLöqœ
InvalidLengthÁlª ƒÐ« KeyÁ>žKeyInitÁ<•dŸ°:¡OutputSizeUserÁt¸S¢ResetÁ,È^£Ç¤¥constsÁ4èx¦Ÿ&D—ã¨À¡û©Ù&D¦éªÙ&ꪯú««Ä¬UnsignedÁDöú:­×Š `®ü™Dø
ð ü2&ð# RustCrypto: Digest Algorithm Traits
[![crate][crate-image]][crate-link]
[![Docs][docs-image]][docs-link]
![Apache2/MIT licensed][license-image]
![Rust Version][rustc-image]
[![Project Chat][chat-image]][chat-link]
[![Build Status][build-image]][build-link]
Traits which describe functionality of [cryptographic hash functions][0], a.k.a.
digest algorithms.
See [RustCrypto/hashes][1] for implementations which use this trait.
## Usage
Let us demonstrate how to use crates in this repository using Sha256 as an
example.
First add the `sha2` crate to your `Cargo.toml`:
```toml
[dependencies]
sha2 = "0.11"
```
`sha2` and other crates re-export `digest` crate and `Digest` trait for
convenience, so you don't have to add `digest` crate as an explicit dependency.
Now you can write the following code:
```rust
use sha2::{Sha256, Digest};
let mut hasher = Sha256::new();
let data = b"Hello world!";
hasher.update(data);
// `input` can be called repeatedly and is generic over `AsRef<[u8]>`
hasher.update("String data");
// Note that calling `finalize()` consumes hasher
let hash = hasher.finalize();
println!("Result: {:?}", hash);
```
In this example `hash` has type [`Array<u8, U32>`][2], which is a generic
alternative to `[u8; 32]`.
Alternatively you can use chained approach, which is equivalent to the previous
example:
```rust
use sha2::{Sha256, Digest};
let hash = Sha256::new()
.chain_update(b"Hello world!")
.chain_update("String data")
.finalize();
println!("Result: {:?}", hash);
```
If the whole message is available you also can use convenience `digest` method:
```rust
use sha2::{Sha256, Digest};
let hash = Sha256::digest(b"my message");
println!("Result: {:?}", hash);
```
### Generic code
You can write generic code over `Digest` (or other traits from `digest` crate)
trait which will work over different hash functions:
```rust
use digest::Digest;
// Toy example, do not use it in practice!
// Instead use crates from: https://github.com/RustCrypto/password-hashing
fn hash_password<D: Digest>(password: &str, salt: &str, output: &mut [u8]) {
let mut hasher = D::new();
hasher.update(password.as_bytes());
hasher.update(b"$");
hasher.update(salt.as_bytes());
output.copy_from_slice(hasher.finalize().as_slice())
}
let mut buf1 = [0u8; 32];
let mut buf2 = [0u8; 64];
hash_password::<sha2::Sha256>("my_password", "abcd", &mut buf1);
hash_password::<sha2::Sha512>("my_password", "abcd", &mut buf2);
```
If you want to use hash functions with trait objects, use `digest::DynDigest`
trait.
## License
Licensed under either of:
* [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
* [MIT license](http://opensource.org/licenses/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)
[crate-image]: https://img.shields.io/crates/v/digest.svg
[crate-link]: https://crates.io/crates/digest
[docs-image]: https://docs.rs/digest/badge.svg
[docs-link]: https://docs.rs/digest/
[license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg
[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg
[chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg
[chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260041-hashes
[build-image]: https://github.com/RustCrypto/traits/actions/workflows/digest.yml/badge.svg?branch=master
[build-link]: https://github.com/RustCrypto/traits/actions/workflows/digest.yml?query=branch:master
[//]: # (general links)
[0]: https://en.wikipedia.org/wiki/Cryptographic_hash_function
[1]: https://github.com/RustCrypto/hashes
[2]: https://docs.rs/hybrid-array
[3]: https://doc.rust-lang.org/std/io/trait.Read.html
[4]: https://doc.rust-lang.org/std/io/trait.Write.html
[5]: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
[6]: https://github.com/RustCrypto/MACs
Á„Þ
## StructureÁïúüóA> Traits in this crate are organized into the following levels:Áµúü¹LI - **High-level convenience traits**: [`Digest`], [`DynDigest`], [`Mac`].Áü†PM Wrappers around lower-level traits for most common use-cases. Users shouldÁü×(% usually prefer using these traits.Áü€da - **Mid-level traits**: [`Update`], [`FixedOutput`], [`FixedOutputReset`], [`ExtendableOutput`],ÁüåZW [`ExtendableOutputReset`], [`XofReader`], [`Reset`], [`KeyInit`], and [`InnerInit`].ÁüÀOL These traits atomically describe available functionality of an algorithm.ÁüKH - **Marker traits**: [`HashMarker`], [`MacMarker`]. Used to distinguishÁüÜ" different algorithm classes.ÁüÿLI - **Low-level traits** defined in the [`block_api`] module. These traitsÁüÌIF operate at a block-level and do not contain any built-in buffering.Áü– PM They are intended to be implemented by low-level algorithm providers only.Áüç @= Usually they should not be used in application-level code.Á¨
úü¬
KH Additionally hash functions implement traits from the standard library:Áôø
 [`Default`] and [`Clone`].Á úü› SP This crate does not provide any implementations of the `io::Read/Write` traits,Áüï EB see the [`digest-io`] crate for `std::io`-compatibility wrappers.Áµ úü¹ ,) [`digest-io`]: https://docs.rs/digest-ioÁDhttps://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svgÁ„Ùíþl}¤î°¯³¹¼ÃÇÉÐøùƒíä¤åñ1äÙãŸý⡢ᣱàžßÞÉÝëܲ˜ÛÓýÚ±šéÏÑqœƒÐĪ ƒÐÖ« µÐÂ>žÉлdŸ°º:¡òЬS¢‘ѧ^£Ç¦¤¥¥ÉÑŸx¦Ÿ&žã¨Àû©Ù&œéªÙ&­êª¯œú««Ä¬ÌÒú:­× `®”Ž
þŒ©óŒüB? Low-level traits operating on blocks and wrappers around them.ÁCúüGKH Usage of traits in this module in user code is discouraged. Instead useÁü“DA core algorithm wrapped by the wrapper types, which implement theÁÄØ higher-level traits.Á» block-apiÁ¬éìãL‰|~€ŒŽØ²˜ýT…±š¼'Œ‘ø ¼'ù EagerÁ,½Á LazyÁ$ÄÊ
AlgorithmNameÁlÜ`BlockÁ,ë6
BlockSizeUserÁlòHòÐtS‘Ñ,^ÅY\­|
BlockSizesÁTºps°:ì9{,õSVBE14íïÜÞß©«dž¡£{}t×q|è9ú‡l`Á 4 |¬ t(ù |8Œ‘Ñ,I^Ë%LPØÕ T[~ ƒ”k!Ôä"¯ú#«úœÚÐ%¤$tïÇ&ýTÿ±'š—ˆ6)¬ˆH*òÐt´S+M,Ðô-Mõ- ArraySizeÁL׈+.׬ð0×0SerializableStateÁŒ‡!1SerializedStateÁ|š2
IsLessOrEqualÁlºð?4TrueÁ$Ƀ5×Þ `7µ@\ë8µ@ 8,NQ@C58),÷úëãÓ֯ɹ¼4«®ž¡ü=Žcfü]Z](+
ü§úüçé$×ÜÞœãÑüÏ#üúTQ Wrapper around [`VariableOutputCore`] which selects output size at compile time.Á¥:;:;ÍìÄ0 çÍìÊ0Ä0”€ˆ+Ê0ð?Ê0á4ü­+Ê0á4ò?ÕIÕIÖIB1Á ÔÁ=}ëw0
à1F[¯<=99Ä0Ôî99§Aü¢¥?@?@Œ“Ë’<•Û’”ÎØÄ0ê’ù’üƒ+»’ 0AÙAMO¼¶ 00> ¿>
AÄ0Ê0ü¸¬¥CDDCŒ“Ë’Û’”þ±Ä0T“ ê’ù’ü¸ +»’ ½0 DFü‚
ª»í¼ê ¥FGFGŒ“l Ë’
Û’”Ç
úÄ0
ê’
ù’ü€ +»’
0 DFü² ¾¥IJJIŒ“ Ë’ Û’ ÐÄ0œ– ê’ ù’üÄ +»’ · 0KÑ
JLÄ÷ œü HHÄ0Ñü­
¢¥MNMNŒ“Ë’
Û’”ö
ê’L—ù’ü£+»’ ²
0OI :<LLÄ0IüøŸ¥QRQRŒ“Ë’<€Û’”¾ê’ù’üë+»’ ý0SS=?ü¬3 0 
ôôõMøˆ )­¿
òÞ40I·CP ½P
SÄ0Ê0²C‹!ü•£¥UVVUŒ“Ë’<Û’”ßê’L€ù’üŒ+»’ š0WT :<|¿TTÊ0üÝ£¥YZYZŒ“Ë’Û’”§ê’ù’üÔ+»’ â0[
;=|‡XX‰[ü«¤¥]^]^Œ“Ë’Û’”öê’L—ù’ü£+»’ °0__>@üäœç 0 ||ÅYØYéY®+Eô*Væœ0 ôôõMøˆ )­¿
òÞ40T·C\ \
_Ä0Ê0$‰ØY-º
Q-üÓœ¥ababŒ“Ë’Û’”–ê’ù’üÃ+»’ Ø0c´c>@¤„<‡0``
cÄ0Ê0ü­¥efefŒ“Ë’Ä0äÚê’L…ù’ü‘+»’ 0gÈgEGüÒ/ üE0d ód
gÄ0Ê0™d2üŠš¥ijijŒ“l• Ë’<’Û’”Ëê’ù’üø+»’ 0k_k=?œ¹ ˜ ˜0·Ch  h
kÄ0Ê0üü ²¥mnmnŒ“lŸ"Ë’<„!Û’”Å!`Ä0lÚ!ê’Lö!ù’ü‚"+»’ !0oaoKMüµ"<t¸"š  c cˆ¢cµ
 `£c¾n `àB¤GS
š¿jl Ê"l
oÄ0Ê0±ë@üÅ%¯¥qrqrŒ“lå&Ë’<Í%Û’”‹&ü§l &ê’L¼&ù’üÈ&+»’ Ê%0sÀcsFHüû&8þ&œ 0 œ c cˆ¢cµ
 `£c¾n `àB¤GS
¿jp 'p
sÄ0Ê0$ƒ'±'Eüß'º¥uvuvŒ“lŠ)Ë’<ç'Û’”¬(!Ä0ŒÁ(ê’Lá(ù’üí(+»’ ä'0wxy"#$yxXZÄ )œ¥)ttôŒüï),Lò)ž ž0ôôõMøˆ )­¿
òÞ40"t ü)t
xÄ0Ê0$ý)üÈ*n\Ë*Ÿ Ÿ‡®°‘t ò*t
yÄ0Ê0’’“H<†,y<closure_kind>Áz<closure_signature>Áz<upvars>ÁzzyÑÌô”ßüA> Buffer type used by type which implements [`BufferKindUser`].Á4è¤}}Íì¤ ï||ÅYØYéY®+Eô*V¨±I¨±MOüò#üÊ'$ Types which consume data in blocks.Á~~Î쨭üòH¨­~Ú²(í²Ú²4í²)üÑ4üœ0- Update state using the provided data blocks.ÁlÔ ¡  ¨­ ¡
ôôõMøˆ )­¿
òÞ4¨­I·C~ â~
¨­²C4íüã eü‰@= Sub-trait of [`BlockSizeUser`] implemented if `BlockSize` isÁüÊ-* bigger than `U0` and smaller than `U256`.ÁøúüüDA This trait relies on the hack suggested [here][0] to work aroundÁüÁMJ the long standing Rust issue regarding non-propagation of `where` bounds.Á úü“ OL [0]: https://github.com/rust-lang/rust/issues/20671#issuecomment-1905186183Á”í Ú²üã Øí²ü…
C¨­I¨­ü“
4Ú²=í²9ظ%Ú²Oí²Kظ7Íìâ¸ä p⸠«¹¼¹Ü üÏ
IF Helper associated type equal to `<Self as BlockSizeUser>::BlockSize`.ÁT¢ ü½ S¥ƒƒ»’  HÄ0 pìšT… Ä0„+-|—  ìšüí ,üº 2/ Types which use [`BlockBuffer`] functionality.Á Ú²üí ¨­”‡
Ú²*ž¼Ú²6ž¼*†Í쨭äÔ
sã¼
Û¼ó¼ÜÔ
ü 
/, Block buffer kind over which type operates.ÁTÙ
ü¿8üô
JG Trait implemented by eager hashes which expose their block-level core.ÁÚ²ü¿Ôž¼”Ô²¨­Ø¨­Ú²Bž¼>ç¾4÷¾*Ú²Zž¼Vç¾L÷¾ˆÍ쨭ˆü©è±Ô¿~Ô¿ŒÔ¿Ô¿üøIÔ¿â¸ü‹5Ô¿üÌ"Ô¿ÁÁχœd ¸”Û³Ô¿ØÔ¿,‹Ì¿Á濵ö¿¬…À¢•À˜¦ÀŠºÀËÀRýÀHÁ>ü©çüþ&# Block-level core type of the hash.Á$®ü•Ì¥ŠŠÄ0š€DüÞ2ÆÂÖÀ”«Ä0”ƲÄ0ê”±ÆÂT‡~ÆÂŒÆÂÆÂüËF»’ šÆÂüœ"Ä0³ÆÂØÆÂÄ0‹ˆNPÆÂüºGü€96 Core trait for hash functions with fixed output size.ÁŒŒÚ²üºÂ~¨­¨­S¨­ŒÚ²H¼Å=ËÅ3ÛÅ*Ú²`¼ÅUËÅKÛÅBü¥UüˆLI Finalize state using remaining data stored in the provided block buffer,ÁüÙGD write result into provided array and leave `self` in a dirty state.Áœ¨¢£¤ ¢¨­ £||ÅYØYéY®+Eô*VÕ´ã¼ ¤ƒ§·CŒ ¼Œ
¨­ØY4Ǻ
âüÃ;üþDA Core trait for hash functions with extendable (XOF) output size.Á¤ÍŽŽÚ²üÃμÅËÅŽÚ²*¼Å&ËÅ$Ú²<¼Å8ËÅ6Í쨭ü¤ðÊèÊËô¤Ô… XOF reader core state.ÁT©ŽŽüÀOüÉGD Retrieve XOF reader using remaining data stored in the block bufferÁü•&# and leave hasher in a dirty state.ÁŒÃ¥¦ ¥¨­ ¦ŸÈðÊŽ ÕŽ
¨­ØY4àüÖ&ü“B? Core reader trait for extendable-output function (XOF) result.ÁÚ²üÖtí²Ú²!í²Ú²-í²*’ü (ă Read next XOF block.ÁT£§ §¨­¤´ ®
¨­üâRüÌ<9 Core trait for hash functions with variable output size.ÁúüC@ Maximum output size is equal to [`OutputSizeUser::OutputSize`].ÁüÑ96 Users are expected to truncate result returned by theÁü‹LI [`finalize_variable_core`] to `output_size` passed to the [`new`] methodÁüØIF during construction. Truncation side is defined by the [`TRUNC_SIDE`]ÁÄ¢ associated constant.Á»úü¿JG [`finalize_variable_core`]: VariableOutputCore::finalize_variable_coreÁüŠ$! [`new`]: VariableOutputCore::newÁü¯2/ [`TRUNC_SIDE`]: VariableOutputCore::TRUNC_SIDEÁ”ìÍ쨭¼ÅT€ ÛÅt ËÅ–Õ0¼Å.ÛÅ,ËÅ*–ÕH¼ÅFÛÅDËÅB”Üô ü» 41 Side which should be used in a truncated result.ÁTú ñ1üÅ#>ü–!2/ Initialize hasher state for given output size.ÁÍ!údÕ! # ErrorsÁüæ!C@ Returns [`InvalidOutputSize`] if `output_size` is not valid forÁü®">; the algorithm, e.g. if it's bigger than the [`OutputSize`]Á¤ñ" associated type.ÁŠ#úü’#.+ [`OutputSize`]: OutputSizeUser::OutputSizeÁÈ#‘EÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¨­9
¨­Þ\Ì#üÊ&Xü‰$HE Finalize hasher and write full hashing result into the `out` buffer.ÁÖ$úüÞ$DA The result must be truncated to `output_size` used during hasherÁü§%B? construction. Truncation side is defined by the [`TRUNC_SIDE`]ÁÄî%—Ò‹&úü“&2ÇÓ´Í&¨©ª ¨¨­ ©ŸÈ ªƒ§·C ä&
¨­$é&ØY4ï&º
Š'üô':ü¦'MJ Trait adding customization string to hash functions with variable output.Áäþ'Ú²üô'ߨ­”œ(Ú²*ˆßÚ²6ˆß˜˜ü)Düµ(SP Create new hasher instance with the given customization string and output size.Át)« «üE‘E¨­ ®)
˜¨­™dlŸ)Þ\µ)œ‡,ü×+/, A proxy trait to the core block-level type.ÁL,Ú²ü‡,³Ú²Ú² šœšœÍ쨭šÔÀ, âtË,˜â°âœÌÀ,Ô¡, Core block-level type.Á$Å,üŒ-Aüà,'$ Create `Self` from core and buffer.Á<- â||ÅYØYéY®+Eô*V âI â¨­
¨­í$—-ØY4©-ü.7üÒ-*' Decompose `self` into core and buffer.ÁL„.¨­ âäã
œ¨­$Ž.Œ”ž ¢L
,
Ìyühe Creates a buffered wrapper around block-level "core" type which implements fixed output size traits.Á(|i±K  üd  Ô, £ ¤ ²+ ¥ ¦ ±, §8& ¬8û$­
³, ½8Á ¾& ¿8ÆÀ8, Ë8Ð & Ð8¼, ß à  á, ã ä Œ, æ8Ãç& é8¯ê, í î & ð, ò8cltÁó& ö8¯÷, ú û  ü, þ8dltÁÿ& 8¯ƒ
- Š$  Ž -  œ ¨, 8core_tyÁ& ¥8´¦% ©8& ·, ¹ º Ì, »8
trait_nameÁ& Æ8¼
Í% Î*Ö Ù ´, ã ä í+ å æ ì, ç8
î, ø8Á ù8, 8Ð ,  ˆ ° ,  Œ «, Ž8Ã,   ¨& , 8ªè˜, œ  ¥ ž,  8ìè¡
¦- ©$ ¬ ­ ¯- ± ³ 8í& Å, Ç8Êé$ Ï8ØY& ã, å8'ë8'ö8Á  þ, ÿ8Êé<€ $ ˆ, 8'£8Ù ± ² ­
8
impl_innerÁ& Ê, Ì8Ð , Ñ Ò ú Ó, Õ Ö õ, Ø8ÃÙ, Ü Ý ò& ß, á8ªèâ, æ ç ï è, ê8ìèë
ð- ó$ ö ÷ ù- û ü , ý8Êé% ,   ¡, 8¡êT—
¢% £% ®% µ ¼ , Æ Ç Õ+ È É Ô, Ê8& Ï8û
Ö, à8Á á& â8Æã8, î8Ð & ó8¼,  ƒ ´ ,   ¯, 8Ê& Œ8¯,   ¬& , 8ªè& 8¯š,  ž © Ÿ, ¡8ìè¢& ¥8¯¦
ª- ­$ ° ± ³- µ ¿ Ë, À8Êé& È8´É% Ì8oidÁÖ& Ù, Û8ÆõÜ& ß8«% ç8& õ, ÷ ø Š, ù8¡ê& 8¼,…
% Œ*  û
, ¡8'§8Ù µ  Î, Ä Å Î+ Æ Ç Í, È8
Ï, Ý8Á Þ8, ç8Ð , ì í  î, ð ñ , ó8Ãô, ÷ ø & ú, ü8ªèý,   Š ƒ, 8ìè
- Ž$   -    , ˜8Êé<™% ¡8& ³, µ  Â, ·8¡ê
Ã% Ä% Ï+ Ú Û ð8âÜ ß ï8» è7Æõ8, þ ÿ §  ,  ƒ  ¢ , 8Ã,  Š  Ÿ & Œ , Ž 8ªè ,   œ  , 8ìè˜ 
-   $ £  ¤  ¦ - ¨ , ª 8'° 8'» 8
AssociatedOidÁ8
Ë , Ï 8Ð , Ô  Õ  ä  Ö , Ø  Ù  ß , Û 8ÃÜ $ à  á  ã - å  ç  õ
88OIDÁû & þ ,
8,
'
8Lˆ
'
8ObjectIdentifierÁ„“
 ¤
,
8
'¼
8
'Ç
8ÿ„É
'Ù
8
new_unwrapÁ
 å
 ê
, æ
8Æõç
% ë
% ü
 ­  ±  8ÿî & Á , à 8Ð & È 8¼ , ×  Ø   Ù , Û  Ü  , Þ 8Ãß & á 8¯â , å  æ  & è , ê 8ªèë & î 8¯ï , ò  ó  þ  ô , ö 8ìè÷ & ú 8¯û 
ÿ - $   ˆ - Š     , 8Êé< & 8´ž % ¡ % « *³   · % ¸  Ý
 8ÿî
& ñ
, ó
8Ð
& ø
8¼
,  ˆ ¹ ,  Œ ´, Ž8Ã& 8¯,   ±& ˜, š8ªè& ž8¯Ÿ, ¢ £ ® ¤, ¦8ìè§& ª8¯«
¯- ²$ µ  ¸- º Ä Ð, Å8Êé& Í8´Î% Ñ8FixedHashTraitsÁ, ë ì þ, í8¡ê& ø8¼
ÿ% *ˆ  ¦, 8,'8Ùd © ª Ÿ8ÿîT¸& Â, Ä8Ð , É Ê ò Ë, Í Î í, Ð8ÃÑ, Ô Õ ê& ×, Ù8ªèÚ, Þ ß ç à, â8ìèã
è- ë$ î ï ñ- ó ô ý, õ8Êé% þ8BaseFixedTraitsÁ8ú‡8q8d8ýT¸8‘Ñ8ì!„Õ8ÉŒæ8