Files
boc/aamos-ledger-rust/target/debug/deps/liblog-fe03740d56b0bbef.rlib
T

794 lines
325 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 3848 `
2ÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔ_ZN3log10set_logger17h20ae472da9f219ddE_ZN3log11LevelFilter10from_usize17h0f2a1edc28fe37feE_ZN3log11LevelFilter18decrement_severity17hcc94df367cc64c75E_ZN4core6option15Option$LT$T$GT$9unwrap_or17h8f7b5b5e7c5c0a3cE_ZN3log11LevelFilter18increment_severity17h12198a06eba1409bE_ZN3log11LevelFilter4iter17h240d9fec8ba9b129E_ZN4core4iter6traits8iterator8Iterator3map17h98c068932439105dE_ZN3log11LevelFilter6as_str17hb280aa506321bc2dE_ZN3log13__private_api3loc17h20053b1909bbfe35E_ZN3log15set_logger_racy17hf569663f014c0616E_ZN3log16set_boxed_logger17h596eb32336a2f943E_ZN5alloc5boxed16Box$LT$T$C$A$GT$4leak17hdb73b282d25d5c07E_ZN4core3ptr71drop_in_place$LT$log..set_boxed_logger..$u7b$$u7b$closure$u7d$$u7d$$GT$17h90fe9aa5a2d7c05fE_ZN3log5Level10from_usize17h07b79357e169b6a1E_ZN3log5Level18decrement_severity17h5e97e6c7b6fd1bf7E_ZN4core6option15Option$LT$T$GT$9unwrap_or17hceb4d8e56ff42027E_ZN3log5Level18increment_severity17h02f062004ca821c8E_ZN3log5Level4iter17he54cf8238749254bE_ZN4core4iter6traits8iterator8Iterator3map17ha9b97667ec7f8dd9E_ZN3log5Level6as_str17hb9a9fe0653ced2ecE_ZN3log6logger17h41d38493c7b12b01E_ZN43_$LT$log..NopLogger$u20$as$u20$log..Log$GT$3log17hd0e7cbee1a2fb12bE_ZN43_$LT$log..NopLogger$u20$as$u20$log..Log$GT$5flush17h3e12bd04a3586facE_ZN43_$LT$log..NopLogger$u20$as$u20$log..Log$GT$7enabled17h0c807d98b3d43ea1E_ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h9e9785126eb8b11fE_ZN4core3cmp5impls69_$LT$impl$u20$core..cmp..PartialEq$LT$$RF$B$GT$$u20$for$u20$$RF$A$GT$2eq17hfb0d661aa13f47d1E_ZN4core3ptr37drop_in_place$LT$dyn$u20$log..Log$GT$17h56e63d282a32f4baE_ZN4core3ptr62drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$log..Log$GT$$GT$17hfb7c6f8feda9d333E_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6e8cdb9bc8f6e37dE_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h6dc34aefd49e735cE_ZN89_$LT$core..ops..range..Range$LT$T$GT$$u20$as$u20$core..iter..range..RangeIteratorImpl$GT$9spec_next17h45e8ae0604dc3ddaE_ZN4core4sync6atomic11atomic_load17h33b153ea29be923aE_ZN4core4sync6atomic12atomic_store17ha47935283c3cbdbfE_ZN4core4sync6atomic23atomic_compare_exchange17h2ebdc96fd968b0e7E_ZN54_$LT$log..MaybeStaticStr$u20$as$u20$core..cmp..Ord$GT$3cmp17h6dc1d463c0b8e533E_ZN55_$LT$log..LevelFilter$u20$as$u20$core..fmt..Display$GT$3fmt17h9b6cd98add1087c5E_ZN57_$LT$log..Level$u20$as$u20$core..str..traits..FromStr$GT$8from_str17h8e7bfa9bd078ffbbE_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h1ba6fda51b3111ecE_ZN58_$LT$log..SetLoggerError$u20$as$u20$core..fmt..Display$GT$3fmt17he60da71a44244f3fE_ZN59_$LT$log..ParseLevelError$u20$as$u20$core..fmt..Display$GT$3fmt17h0add21f36f57c453E_ZN60_$LT$log..MaybeStaticStr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h1270c83423e357dfE_ZN61_$LT$log..MaybeStaticStr$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h76d09b9200e031a0E_ZN61_$LT$log..RecordBuilder$u20$as$u20$core..default..Default$GT$7default17h2d73a93943ee173bE_ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17h2d69ca9a75840578E_ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$5flush17hf45ac51891130ec4E_ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$7enabled17hc6044ef1f9059c1aE_ZN63_$LT$log..LevelFilter$u20$as$u20$core..str..traits..FromStr$GT$8from_str17h12f3ab6015dcef8aE_ZN63_$LT$log..MetadataBuilder$u20$as$u20$core..default..Default$GT$7default17h4b77f971b004deadE_ZN3log20MAX_LOG_LEVEL_FILTER17h3dcd4a72d9037df3EDW.ref.rust_eh_personality// 56 `
log-fe03740d56b0bbef.log.75e5036bf518a2a3-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 196568 `
ELF·@@GNUÀrust
¸û#rustc 1.96.0 (ac68faa20 2026-05-25)ÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀ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Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0ÁÀ…|»À|Ñ{ŒÐ{
__log_keyÁLy»kvÁtäx
__log_valueÁ\~»õtó}
__log_value_svalÁ„°‰»kv_svalÁœ
__log_value_serdeÁŒÅŒ»kv_serdeÁ¤¡Œ
__log_value_errorÁŒø»kv_stdÁ”ÖserdeÁ,}»
serde_coreÁ´õ·}»õtž}a$Å~óµ Ì™~ܘ~®D‰óµ ÌÕ~ÜÔ~ AtomicUsizeÁ\Âóµ ÌžÜ KeyValuesÁLâí»õt¹í©
kv_supportÁTç»õtestsÁ,²£$§£ÀmacrosÁ
__logÁ
 log_enabledÁ

__log_enabledÁ
 __log_loggerÁ
à

¢
Ñ
  
LOGGERÁSTATEÁ
UNINITIALIZEDÁ INITIALIZINGÁ INITIALIZEDÁMAX_LOG_LEVEL_FILTERÁLOG_LEVEL_NAMESÁ SET_LOGGER_ERRORÁLEVEL_PARSE_ERRORÁ!#ï
%%þ(×**maxÁ*to_level_filterÁ*as_strÁ*ù// *increment_severityÁ*decrement_severityÁ46ï
88þ;× ==Â=to_levelÁ=â=ùBB =þ=
G'aÁGgetÁ  K
MOï
Q§RT«TbuilderÁTÀTmetadataÁTlevelÁTêT¹ [ Tmodule_path_staticÁTÌ^ T file_staticÁTšb«bæ bÀbb¤bêb¹ bÂbÌbæbšbbuildÁo>q«qq¤qêv«væ v¤vêvÐ|>LogÁ~enabledÁ~logÁ~flushÁ NopLoggerÁ
ÁÏÙˆ¥ˆÁˆÏˆÙ¥ÁÏÙ¥ÁÏÙ
set_max_levelÁset_max_level_racyÁ max_levelÁset_boxed_loggerÁš 
set_loggerÁœ set_logger_innerÁžset_logger_racyÁ¡×¤×loggerÁ§NOPÁ
__private_apiÁ©©©©©©©©©© ©
© © ©KeyÁ·«©ValueÁ¹«©sealedÁ»KVsÁ¼«¼into_kvsÁ©¿«¿ý©Â«Âý©ÅÁÅÏÅÙ©log_implÁÉ©Ï˫˜˩ÁÏ©locÁSTATIC_MAX_LEVELÁ
Ï
errorÁ
Õ
infoÁ

traceÁLevelÁÙErrorÁÚ
Ú ÙWarnÁÝ
ÙInfoÁß
Ùpá
ÙTraceÁã
æƒ !"ê#ìÖ$îï
%ð&ò×'ô§õù LevelFilterÁ÷OffÁø
÷ú
֟
÷ªþ
÷p
ւ
()ƒ*+,-Ö.ï
/0×1§ùMaybeStaticStrÁ«StaticÁ˜
˜ˆBorrowedÁ
ˆ2ž«3 «4¢«¢ƒ5¥«¥×RecordÁ¨«¨¨À¨¹ ¨Ì¨š6¯«¯ƒ7²«²×
RecordBuilderÁµ«µrecordÁ8¸«¸×MetadataÁ»«»¤»ê9¿«¿ƒ:«ÂÖ;Å«<Ç«Ç=Ê«Ê>Í«Íï
?ЫЧÒù@Ô«Ô×MetadataBuilderÁ׫×AÚ«ÚÖBÝ«Cß«ßDâ«âEå«åï
Fè«è§êùGì«ì×SetLoggerErrorÁï
ïˆHò×ParseLevelErrorÁô
ôˆI÷×JKúLüÖ© GlobalLoggerÁþ
©×"
"
$
$
'
)
)
)
-
.
2
3
5
5
7
7
:
<
<
<
@
A
E
F
I
J
K
L
L
M
N
N
O
P
P
Q
R
R
W
X
Y
Z
[
]
^
`
a
e
f
g
h
i
j
k
l
m
n
o
t
u
y
z
{
|














ˆ
Š
Š
Š



Œ














¢
¢
¢
¥
¥
¥
Æ
Æ
Æ
Ç
Ç
Ç
È
É
É
É
É
É
É
É
Ë
Ë
Ë
Ë
Ï
ç
ë
ë
í
ï
ï
ñ
ñ
ó
ó
ó
õ
õ

Š
Š
Œ
Ž
Ž







¤
§
§
§
±
´
´
´
º
º
º
Á
Ä
É
É
Ì
Ì
Ï
Ï
Ò
Ò
Ö
Ö
Ö
Ü
á
á
ä
ä
ç
ç
ê
ê
î
î
î
ó
ó
ó
ø
ø
ø
û
û
ý



ÛÙÚÛÜÝÞßàªáâpãäÇÄ*TwÔ=婨þ+Š þ+Ðìþ+µßþ+þ+þ+íßþ+þ+ºþ+¿cþ+šeþ+µßþ+÷øùÓúûüýþÿªpƒÇ…A€Šø«`íßþ+Õ-ïyþ+Äcþ+ÛÕ-ØÕ-Š Õ-ÐìÕ-µßÕ-Õ-Õ-íßÕ-Õ-ºÕ-¿cÕ-šeÕ-µßÕ-þ+íßÕ-þ+ïyÕ-ÄcÕ-Š ˜¨šˆœÃˆò‹©pï«Û’0Ø’0¿c’0˜¨šˆœÃˆò‹©pï8µß‰1‰1º‰1í߉1‰1še‰1ب¨Ÿª«À¬¹ ­Ì®š†¥ú3gϵ†«¿c‘2¿cµµ·¡ŒŒ/D($«³µµ·¡ŒŒ/D($8Ø»»Â½¤¾êìªØ‚Mle«ô3Ðìô3µßô3ô3ºô3íßô3ô3šeô3¿cô3×׉!Ù‡‰Pô‚ †ø«Ðìˆ5µßˆ5ˆ5ºˆ5í߈5ˆ5šeˆ5¿cˆ5³×׉!Ù‡‰Pô‚ †ø8~ƒå Sq¢ôSv~ 8¥~žBoxÁ¡ˆˆ¢ˆl }.xÏ¥çEçEèEGlobalÁ ¿±‡§í#~†J†JK‰Jµ 7ŠJphantomÁ7J¤7·0ØQdè¾7Ä7¿cïïð»"ñˆ PæÊäG^¨ñÄcÏ8¾Ï8¿côôõé"öˆ 9×ÇSËÐì›9µß›9›9›9Äc›9¾›9¼ «
 «“:«¼«¿cþþÿµ# þKÁÿmÑ7V~¼:åÙ÷ æÙ÷¢¯¨¿»èÙ÷žéÙˆ÷Å»Ý×ùôêÙ!Ù÷4÷KÇ»ß×úôìÙ÷J»Ú×üôîÙ#Ù÷6÷OÍ»å×ðÙ÷MÊ»â×òÙ÷¥²¨¸µÔ»ì×òï÷ôþôÙ÷Qлè×%Ù8÷(Ù;÷¡ï¤ôoµ|׈
†JÅþ£ï¦ô¿
Â
ÛñØŠ #Ðìµß#5íß)º.¿c
"šeFïy"Äc ³~ ¾!¼¼?¼?¼?¼?(‰ŽŽŽç$þ+/ þ+9BLH–ŽŸŽë=BHSÊ@ZÊ@a¼?h¼?ox¹
 __self_discrÁž __arg1_discrÁµ½£Ží¡Ž¬:Ê@)P¥Ž&49
ïß¼?¼?NS[¯Žïsx~Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¿ßÀßÁßLessÁÂßÃßÄß~Å߯ßÇßGreaterÁÈßåºÝÈnûê7/Ê@7Ê@?¼?G¼?O ¼?ZÞEbl¹
z‚Aˆ™AÈC§±Ž&49
»¼?JOW´ŽñotzÖDÊ@Ê@¼?¼?¢ÞE©ÞE°¹¹
Æ‚AÓ™AÞæûFï (¶Ž)/7 ºŽPXõHksõH:ŽõHU¡©õHp¾Ã
êcÔÙỎóùÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¬:ŸÈŸÈ È éBL{Ê@ƒ  c cˆ¢cµ
 `£cbufÁ `àB¤GS
ÊõHÒ¼?Úä±òý€J ½Ž"
›e¼?ù9>FÁŽõ^c¬:oÊ@v úL¼?ÞEŽº¤‚A±¹ñLÂ,³•t³•4Å•|Å•ü³•!Ú•"üÿ”[$¤•Ê@,…• Õ-,Œ•þ+Œ¼?Õ-~¼?5¹
5d,í–„ì–
4ƒ—
Œ‚— 

  üì–(ý–ûFs-¼ý–üç–. Û¼ÖD›—$ü™– ‘D¬Ç–Ê@,¨–“O,¯–ÖDÞEê¼?ñþ+¼?ÞE½¼?ÜÕ-ò¼?ùW¹
ZˆûFêd¾ž ÙО,üžž2þ+,®ž,ñŸtñŸüÙŸ'¼ÙŸ
>(!üÙŸ04 
±TÕ-DD  -ü¢ŸmÕ-\ßÊ@,¹ŸÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÕ-Íþ+ò¼?ùfÄS÷ëS՜ȥ„È¥
+ Ù¥#äÈ¥4Ü¥
±Tþ+EDÜ¥ä¥1üÄ¥ þ+Ç¥ 1¼?þ+¬:1¼? Å¥Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙþ+í´YÌU
õUç(¡´¦´$Õ-/“O6?IH®´·´Š=BHS“OZ“Oa¼?h¼?ox¹
‚A™A¥»´Œ¹´¬:“O)P½´&49ÈCDIQÇ´Žint‘D“O“O޼?¼?œÞE£ÞEª³¹
À‚AÍ™AØàÈCéÉ´&49ûFDIQÌ´intÖD“O“O޼?¼?œÞE£ÞEª³¹
À‚AÍ™AØàûFé
(δ+19õHÒ´PXõHksõH:ŽõHU¡©õHp¼ÄõHÙÞ€Jêï ÷Ó´¸J“O#¿K+õH3¼?;E±S^€Jh Õ´"ñL-2: Ù´RW¬:c“OjÄMq¼?xÞEˆº‚A¢ªñL³t«¸±¸
·ßþ+Õ-,«¸$´¸D±¸¿¸5üý·B$œ¸“O,ƒ¸Ê@,Џ¹
EÛbš,̹„˹
4â¹
Œá¹ 

 ”๠ü˹(ܹûFs-¼Ü¹üƹ. Û¼ÖDú¹7üþ¸| ‘D¬¦¹“O,¹Ê@,”¹ÖDÞEé¼?ðÕ-¼?ÞE¼¼?Ûþ+ñ¼?øW¹
ZûF锕 ÷­Â?üïÁ>Õ-\ÿÁ,øÃtøÃüæÃ!ŒæÃÌU&Ä@ü´ÃYáVlÎÓO,ÄÃÕ-v¼?}=ÌU{œÛÉ„ÛÉÄS ìÉ!äÛÉ4ïÉëS=DïÉ÷ÉDü×É Õ-ÚÉ D¿VÅVÕ-¬:/¼? ØÉ¸Tž´TÄS»ëS("à×"åפ$)/˜¨šˆœÃˆò‹©pï Æj£(#ç×#8#°ØÃõHD LõH- 9
 ¿c~ƒ
‡d 
u¦`#”بõHÅÍõH-9¯lõúÉl h#ì×§39@ ¸JM˜kU¿K]e õHÆõHw¯lÕ ªnߪngõH˜¯lwÃn²±À__self_0Á,Œn¹ëÃn¯lÎÉlýÃn¯l[Él ,–Ù\Ù% ïÙÃõH õÙ ÁÙ¨õH ÇÙüÙq‡ÚIüíØšôªÙüÖÙ õH<þؘk,ôØõHX¢n̪ÙõHõHÐ+¾¾ñxT»ÞÀÞ
I$»Þ,ÀÞ´»Þ$ÆÞ
›eO,ËÞ\ÆÞØÞRüýÝ[¬:°Þ˜k,›Þ Òr,¢Þ¬:zõH¯'º'WœrØÊr¯°$±ê»»Â½¤¾êìªØ‚MleNS
Ù†tdlÀ$ÍêäÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]Tdej
Ùöt{ƒø$ëê'Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÆj]b
Ùþus{ø$˜ë þuÒv (0ˆ$¾ë Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ\a
Ù°w r
z($†ê ¨
$‹ê±: ¨¨Ÿª«À¬¹ ­Ì®š†¥ú3gϵ† Þx§†tÖ †táöty ötþu þuþuõy¡°wu °w ÌtIÓußÒv^Òvå„x·(%ê õH°%±ê  õH†t'¯lÀ%Íê 
õH öt' ¯lø%ëê'

 õH þu(  ¯lø%˜ë

 õHþu(¯lˆ%¾ë 
õH°w'3¯l9?
d QWGM"
ñ ö
ÃÈš%’ê´¯¸J»½yÿKËõHÓõHůlÍÏyÕõH¦¯l®âyõH¯lõyõHg¯loõywõHG¯lO ˜zZ˜zb`±nyÏy¯loây¯l@õy¯lõy¯lᩯl±§}«¤ÿð”ÿð
d™ñVüÏðJµµ·¡ŒŒ/D($ŒãðE«€ƒTûñöt‹òWüÇñDâyœÝñ½y,Óñ /tûò†tóXüÉòFÏylãò½y,Ùò /löó†t¬öó,„ô
t0<„ô‘ôYüÏóBþ+,æó½y,ÜóÏyt6–ƒ{l€õ†t´€õ4Žõ
u0DŽõœõZüÖôFõH<îô½y,äôÏyt6²„{öþuüö! ö
·TÆjõH\ÆjõH¬:OÚ…\¤ö„ ö¶ö[üØõ^Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙõH|õõ½y,ëõþuå{Î…í ¨ö<¨öªöœr',ªö¯ö\üõH§öÚ…Æj ¥ö˜kp¾8œr}„Ø÷þu´Ò÷$´ø Û¼õHHþuÛÆjO “øþuÛÆj¨õH<šø Û¼õH  øÉøü÷º]ü÷÷*±†¤³÷½y,©÷¢nÌü÷¢nü÷÷õH¬(¾ÂoL½ùþuÔ½ùÇù
·TÆjõH_ä…¬:EèË‹\Ëù„ÇùÝù^üùP±†|£ù½y,™ùþu7¿‹¡ Ïù<ÏùÑùœr',ÑùÖù_¸õHÎùË‹ÎÆj Ìù˜ko¾óœr{L€ûþu|úú$Õû Û¼õHHþuÛÆjO ´ûþuÛÆj¨õH<»û Û¼õH Áûêûü¾ú¬`ü˜û*±†¤Ûú½y,Ñú¢nÌû¢nü˜ûõH¬(¾ÂoLÓü°wâüaü§ü;°w\½ü½y,³ü /(&­ 
õH õHÞx'3¯l[`
ùcqvejˆº ¸J« Ú€¿K½õHÄõHµ¯l¼ ½yƽyÍì±ù÷’¯lú‡’€'Á’€eÁ’
¶cÎ’õH 0œí’Œí’
s"Üí’,
{J<$§“ Û¼Æj$Ó Û¼Æj$ß“ Û¼õwü¢’½ ¨üþ‘ì µð”düÒ‘ž Ú€Œâ‘ÞxoötM†tï ×׉!Ù‡‰Pô‚ †øU –^þu
þuý°wìØ“¼Œ”»”d¼Þxöt$°–º–eüº• Ú€´î•ß—LÆ•öt$Ñ•ÀLü¸˜Þx†t$á˜ë˜füá—Šß—´—˜ß—Lñ—†tDü—Iüš"Þx†tþ+$¹šÚgüÙß—´ì™ß—LЙþ+,Û™¤Iüê›$Þx†tõH$˜œ¢œhüœ›ß—´É›ß—Lª›õH4µ›êIüì"ñ
·TõHÆj
œÄõ„œ ìñüÒ<Þxþu$˜ž¢žiüùœ©ß—´±ß—±†$—þu±õ
 Qø›ÛüŽ  “ 
·TõHÆj
$Ž ´— ì Ü“ üôŸ:Þxþu$¸  jüŸ³ß—´ÓŸß—L©Ÿ±†$´Ÿþu±õ
 QàÛüð¡"õ¡ø›$ð¡Äù¡„œ ìõ¡üÝ¡5Þxþu$œ¢¦¢kü‹¡ß—´¼¡ß—L—¡±†$¢¡þu¡Ì Qø›Ëü÷£ ü£à$÷£´€¤ì Üü£üä£3Þxþu$¡¤«¤lü†£¥ß—´Ã£ß—L™£±†$¤£þu¡Ì Qà˼¥Þx°w$ã¥í¥müô¤yß—´¡¥ß—L€¥°w$‹¥šH\ã¨Þxœã¨,ï¨
ÙÞx2<ï¨ü¨nü·¨EÞxTΨÐ’,Ĩ½yw7™¤~`(×±þ+
Ùþ+-5x(é±õH((„± »(‰±Á1†t<ÏyCþ+¤Ê@«õHyªnhr³¥Ö
ÙõH¨)±Ä)‹± ¬:Ïy"+5`*×±þ+þ+(-
·ßþ+þ+BGOUx*é±õHõH(-
·ßõHõHBGOS[g*˜±ÉH*±ÏyÏyÊ@Ê@ªn¼ªnÃJ¹
Waˆ¨Pë¨ô`+×±þ+þ+(-
»þ+>CKO[i+â±x+é±õHõH(-
»õH>CK+±Ì+š±í ÖDÏyÏy#ÖDÊ@Ê@&ªn­ªn´Z¹
gX}êªkë«ñ`,×±þ+þ+(-
ïßþ+þ+BGOS_o,â±ÛÖDx,é±õH õH(-
ïßõHõHB GO,©±P,Ÿ±Ï#
D$Ïy+Ïy2DEÊ@MÊ@U]¢neªnªnÉq¹
~ç­ª’¯`-×±þ+
›eþ+ù3 -«±Dx-é±õH
›eõHœ±1F>-¯±Òf¬:qÏyx œ±ƒ¬:ÂÊ@ɪnˆ¡º®¸“±úÛ±¸(.±± õH`.×± õHþ+'¯lx.é± õH
õH' 
3 ¯l
ûc¨­œ¡otÉ.¶±Öá ¸JìÏyó¿KúõHõHó¯lúÊ@õHÒ¯lÙÃnàªnç=±KVÊ@¯lLÃn¯lš´q´ø²¤ø²
x”³süƲN –œÚ²XTû³þ+‹´tüÔ³7þ+,ë³Ïy,á³ /\ú´õH‹µuüд;õH<è´Ïy,Þ´ //ŹÜ/ù ¬:ž–&0°0–º†t†t(-
·ß†t†tBGO0йáH0ǹž–ž–ÏyŒÏy5¹
BLª¹½°1–º†t†t(-
»†t>CK1Õ¹ä1Ò¹ÖDž–ž–ÏyÏy6¹
CMòºº°2–º†t†t(-
ï߆t†tBGO2á¹çP2×¹‘Dž–ž–ÏyÏy6¹
CM·¼¾°3–º†t
›e†tœ±1 3ã¹B3ç¹ê$¬:/ž–7¦²?Ïy|Oº\fヲ(4é¹ õH°4–º  õH†t'3¯l[`‡’mraf4î¹îœ¸J§ž–¯¿KõH½õH®¯lµ Ïy¿ÏyÆå±òüÎÀ¯lò‡’\ð¼ Ù•½ õHüμX »ü¦¼ ×·½xüø»¿ –œˆ¼†teþ+õHˆ0ÌÖ¾†tþ+$ù¾ƒ¿yüŒ¾w  –ij¾ŽÃL™¾þ+¤¾argÁNìªÀ†tõH$ÑÀÛÀzüÚ¿ŽÃćÀŽÃLè¿õH4ó¿êIlÂÁ†t¬ÂÁ,ÐÁÌt,<ÐÁÝÁ{ü”ÁI†td«Áž–,¡ÁÏyq7ÌtwDÔÎÔÔÎ<ÝÎ
ð6,DåÎŒÝÎôΊü›ÎY$ÅÎ  ð6,¦ÎÏyD­ÎóÆ!S§Æ¢D£Ï¤£Ï¬Ï
ð6-4°Ï\¬Ï¾ÏüúÎD¬:˜ÏñÆ,Ͻy4ˆÏ¬:tóÆ%¡(VåǦDÝÏ„ÝÏ,æÏ
ð6-<æÏôÏŒüÃÏ1¬:ÒÏñÆ,ÌϬ:bóÆ?§ÉlÑ4’Ñ
âý6¾7$ÑD’ÑüÑ<›Ñ
¾7OD£ÑŒ›Ñ²ÑüÔÐ^$þÐ ý6,ßÐÏyDæÐ ¾7« #R»ÊÕïʨláÑ4æÑ»Ê$áÑDæÑÌáÑïÑ
¾7G4óÑ\ïÑÒü¸ÑI¬:ÖѹË,¿Ñ½y4ÆÑ¬:tÐ˧%¡(V»ÊÑÎ̬l Ò4¥Ò»Ê$ ÒD¥Ò¬ Ò,®Ò
¾7G<®Ò¼Òü†Ò6¬:•Ò¹Ë,Ò¬:bÐË?»Ê²²ÎlÔÓ4ÙÓ
âö7¾7$ÔÓDÙÓüÔÓ<âÓïÊKDêÓŒâÓùÓü›Ó^$ÅÓ ö7,¦ÓÏyD­ÓÐË¥!PÌÏÏïÊ¢l¨Ô4­ÔÌÏ$¨ÔD­Ǫ̂Ô¶ÔÎÌB4ºÔ\¶ÔÈÔüÿÓI¬:ÔÆÐ,†Ô½y4Ô¬:oÐË¢%¡(VÌÏÌÎ̧lçÔ4ìÔÌÏ$çÔDìÔ¬çÔ,õÔ²ÎB<õÔƒÕüÍÔ6¬:ÜÔÆÐ,ÖÔ¬:]ÐË?ÌÏ­²Îˆ¤Ó×  ¤]¤]V¦]Á‚]üß3ø¤”&¼?tî׌þ× ¼ÀüÓ×=,è×
—ĈD<üè×(“Øü¤×o¬:Ì×Õ-,¹×¬:kÑÔà¼?,î×¼À½À¾ÀË¿ÀÀÀÌÁÀÂÀGÃÀÄÀFÅÀÆÀ×`šÁ¬S øB¤š½¹Õ¤žà ÑÔt¹àŒÉà ¼Àüžà=,³à¹ÕVA9ü³à(Þà˜üñÝí¬:¥ÞÕ-,’Þ¬:iÑÔ¯¼?,¹à©Öš¤.R¹Õ¡¤Ñè ÑÔŒëè ¼ÀüÑè,$æè
–ÄL7¼æèüÂè<   ,ÿÿÿÿÿÿÿÿH` Õ-‚é{ 
üñäÕ-\‡å¼?ãÑÔ©Ö ÍÔÛHïÙ(>Ç‹ õH>鋬:!¯lINÉlZ_Nl>Ì‹ó¸J Ï8¿K õH§¯l˜  ¬:¥¹Ý­Ì±Ùã·Ý¯lÙÉlô(?Ü õH¬:!¯lINÉlZ_Nlø¸J ›9¿K õH§¯l˜·Ý ¹Ý¨Ç±Ô޷ݯlÔÉlï¬:¬:(-
·ß¬:¬:BGOûH@ã—ߗ߹ݹÝ7¹
DN°à¿ý ¬:—ß&0 Û¼ 
õHõHÜÁüŠRÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¬âüŸ"¬â$– t Û¼¬âØÄüŒLÚâü¡"¬:$˜ +/¬:4(Bš  õH€J(-5L¸JW ¼:a¿KhõHox±€J˜
õH
õHÓ
 •½•½LocationÁ—½filenameÁ¯V˜½š¯V™½colÁ¯Vš½ _filenameÁ¯VirBð¸tý–Ð 
  
£T¬â
+  , ùGž"#ùjž"#Ø“üï NLõH /ùF@#áF#
ÜW Q $ŒÜ  
V
 
Üô $…

e)
T…
üô 1,™

gI
d™
üô I

hJ

ŒÚ
 Û¼õHüô x”Ç

jd: üÇ
%T‡$
ÉV
4‹„‚ Û¼õHüô Ÿ

l; ìö

ËV§ „¢ Û¼õwüô ¿$
m;
´<€
|€,ˆ
n(<ˆ„ÿäôû
r2¬û üí ¦Éü§ ìüÊ É¬:¦ ší4†
öt$•
þ+
 õHõH•æܼ
Úâ õHuõHk•æbÑ Úâísöt°Ú€ ß—šß—ß—˜ß—ìß—&ß—_ß—y±†á±†tõH¦°wõw@¬: šíà½y£ÞxÒÐ’ëÆÀ¤ kvsÁꎹ ˆœ
¹¬ç
ؓբè§ÈèùèYªé0Ûé¦êÂÕêëZËë1“ìòÝì­”í}šíQšíX
&
¾œÄüáx 
É,‘Ô |U Ø
Ûü•Æ,<Ë2 ¬:¸©óötþ+·îÔåäò¯©óSÚâ)§ÆJÀN¤Rtarget_module_path_and_locÁoÝïsêÞò£ót©ó" œ¹Œ¹Œ” 
 ü¹ 
y
F ü¹/
z J/ü¹7»”Tü¸8ü©H
šíý1ü°A òóüÝÏ šíþ+,ÿõH4ŠðÏy¸†täž–*ŽÃ3ŽÃmŽÃ£ –¬Æb¤fêj¬Œ”åÓö¿„÷»”^ø÷/šíší °HÙœ
øOÇ    øIÿœ' „ª ÷'øJÉ) ”ö ÷'øK—ž( K¾žŒÃž ÷'øLãž( 
LŠŸŒŸ ÷'øM¯Ÿ)  Mן”ÜŸ ÷'øNýŸ) 
N¥ ”ª  ÷',ôŸOå  „ê  ÷' øP…¡!


P¥¡
”ª¡ ÷'
øQÇ¡    Qæ¡ Œë¡ ÷' øR‡¢    R¦¢ Œ«¢ ÷' øSÇ¢!


Sç¢
”ì¢ ÷'
”‰£ ÷ £ü©œöÒÕ-\Åœe oÊw$Ñ~tù¦S4Ø (Æj3õH:AD§Ø œ(Æj3õH:AÌÏ‹ ïð&Ï81¬:8?Ôó ôõ&91¬:8?
 ~‚ƒ˜šœž §©ÒÙ»¨÷µ×ïðôõÀâ”|¬Ä,º|ÄÔFromStrÁ<Ï|ïyâ|×ç|¤,íì|ë Û ,™ ç \²k ù lâr
 d´vàLÑ|\釢„åŠÑŒý‚ Œ­‘ 
\ö}„Ä®Dƒ~¼ÀϪÓÕ$º4Õ×$ÕAÖ,ÁM×é,Š[ØüÓüÓ! A lightweight logging facade.ÁõúüùIF The `log` crate provides a single logging API that abstracts over theÁüÃMJ actual logging implementation. Libraries can use the logging API providedÁü‘MJ by this crate, and the consumer of those libraries can choose the loggingÁüß:7 implementation that is most suitable for its use case.ÁšúüžOL If no logging implementation is selected, the facade falls back to a "noop"ÁüîKH implementation that ignores all log messages. The overhead in this caseÁüº>; is very small - just an integer load, comparison and jump.ÁùúüýPM A log request consists of a _target_, a _level_, and a _body_. A target is aÁüÎPM string which defaults to the module path of the location of the log request,ÁüŸ OL though that default may be overridden. Logger implementations typically useÁüï C@ the target to filter requests based on some user configuration.Á³
ú
 # UsageÁÃ
úüÇ
RO The basic use of the log crate is through the five logging macros: [`error!`],Áüš 30 [`warn!`], [`info!`], [`debug!`] and [`trace!`]ÁüÎ ?< where `error!` represents the highest-priority log messagesÁüŽ IF and `trace!` the lowest. The log messages are filtered by configuringÁüØ <9 the log level to exclude messages with a lower priority.Áü•
IF Each of these macros accept format strings similarly to [`println!`].Áß
úã
úüç
" [`error!`]: ./macro.error.htmlÁüŠ  [`warn!`]: ./macro.warn.htmlÁü«  [`info!`]: ./macro.info.htmlÁüÌ" [`debug!`]: ./macro.debug.htmlÁüï" [`trace!`]: ./macro.trace.htmlÁü’IF [`println!`]: https://doc.rust-lang.org/stable/std/macro.println.htmlÁÜúüà]Z Avoid writing expressions with side-effects in log statements. They may not be evaluated.Á¾úœÂ ## In librariesÁÖúüÚGD Libraries should link only to the `log` crate, and use the providedÁü¢NK macros to log whatever information will be useful to downstream consumers.Áñú„õ
### ExamplesÁú ```Áü’.+ # #[derive(Debug)] pub struct Yak(String);ÁüÁ1. # impl Yak { fn shave(&mut self, _: u32) {} }Áüó52 # fn find_a_razor() -> Result<u32, u32> { Ok(1) }ÁÔ© use log::{info, warn};ÁÄúüÈ)& pub fn shave_the_yak(yak: &mut Yak) {ÁüòJG info!(target: "yak_events", "Commencing yak shaving for {yak:?}");Á½ú loop {ÁüÐ" match find_a_razor() {Áôó Ok(razor) => {Áü’41 info!("Razor located: {razor}");ÁüÇ%" yak.shave(razor);ÁÔí break;ÁŒˆìš Err(err) => {Áü¸GD warn!("Unable to locate a razor: {err}, retrying");ÁŒ€ÅŸl’
L ”° # fn main() {}ÁÇšËú¬Ï ## In executablesÁåúüéUR Executables should choose a logging implementation and initialize it early in theÁü¿LI runtime of the program. Logging implementations will typically include aÁüŒ:7 function to do this. Any log messages generated beforeÁüÇ63 the implementation is initialized will be ignored.Áþúü‚A> The executable itself may use the `log` crate to log as well.ÁÄú ### WarningÁØúüÜ41 The logging system may only be initialized once.ÁúÌ• ## Structured loggingÁ¯úü³FC If you enable the `kv` feature you can associate structured valuesÁüúMJ with your log records. If we take the example from before, we can includeÁüÈDA some additional context besides what's in the formatted message:Áú<‘ǚܙ # use serde::Serialize;Áüµ96 # #[derive(Debug, Serialize)] pub struct Yak(String);Áüï1ü¡@= # fn find_a_razor() -> Result<u32, std::io::Error> { Ok(1) }Áüâ" # #[cfg(feature = "kv_serde")]ÁŒ… # fn main() {ÁÔ—‰œ²úü¶)¹œüàIF info!(target: "yak_events", yak:serde; "Commencing yak shaving");Áª úËü½ "ãôà Žžüÿ 2/ info!(razor; "Razor located");Áü²!%ôžÔØ!¢ŸŒó!ÅŸÜ…" Err(e) => {Áü¡"GD warn!(e:err; "Unable to locate a razor, retrying");ÁŒé"ÅŸlû"ã L‰#ù ,“#‹¡<™# # }Áü¡#'$ # #[cfg(not(feature = "kv_serde"))]Á”É#™¡<Ü#Çšä#úüè#96 See the [`kv`] module documentation for more details.Á¢$úü¦$'$ # Available logging implementationsÁÎ$úüÒ$:7 In order to produce log output executables have to useÁü%74 a logger implementation compatible with the facade.ÁüÅ%<9 There are many available implementations to choose from,Áü‚&+( here are some of the most popular ones:Á®&úì²& * Simple minimal loggers:Á´Ð& * [env_logger]ÁŒç& * [colog]ÁÌù& * [simple_logger]Á¬“' * [simplelog]Áì©' * [pretty_env_logger]Á¬Ç' * [stderrlog]ÁÄÝ' * [flexi_logger]Á¼ö' * [call_logger]Á´Ž( * [std-logger]Áì¥( * [structured-logger]Á¬Ã( * [clang_log]ÁŒÙ( * [ftail]Áüë(&# * Complex configurable frameworks:Á”’) * [log4rs]Á¤¥) * [logforth]Á„º)
* [fern]Á¬Ë) * [spdlog-rs]Áüá)$! * Adaptors for other facilities:Á”†* * [syslog]Á¼™* * [slog-stdlog]Áü±*" * [systemd-journal-logger]Á¼Ô* * [android_log]ÁÔì* * [win_dbg_logger]Á¬‡+ * [db_logger]ÁÄ+ * [log-to-defmt]ÁÔ¶+ * [logcontrol-log]ÁüÑ+ * For WebAssembly binaries:Á¼ñ+ * [console_log]Áä‰, * For dynamic libraries:Áü¦,b_ * You may need to construct an FFI-safe wrapper over `log` to initialize in your librariesÁ„‰-
* Utilities:Áœš- * [log_err]Á´®- * [log-reload]ÁäÅ- * [alterable_logger]Áâ-úÜæ- # Implementing a LoggerÁ.úü†.PM Loggers implement the [`Log`] trait. Here's a very basic example that simplyÁü×.KH logs all messages at the [`Error`][level_link], [`Warn`][level_link] orÁü£/*' [`Info`][level_link] levels to stdout:ÁÎ/ú<Ò/ÇšüÚ/'$ use log::{Record, Level, Metadata};Á0úĆ0 struct SimpleLogger;ÁŸ0úü£0$! impl log::Log for SimpleLogger {ÁüÈ085 fn enabled(&self, metadata: &Metadata) -> bool {Áü1+( metadata.level() <= Level::InfoÁL­1ù ·1úü»1(% fn log(&self, record: &Record) {Áüä10-
 ~‚ƒ˜šœž §©ÒÙ»¨÷µ×ïðôõÀD<âE<¬ÄD<ÄV<Ô¿†><ïy=<×<<¤,í;<ë Û :< ç 9< ù 8<
 7<à6<5<¢3<Ñ1< /< 
-<„Ä®,<¼ÀÏ+<ÓÕ*<Õ×)<Ö(<×é'<ؾ=Á=Ä=D|»=Tµ|®=ŒÅ|=Ü|=„=t=w=g=j=T€}4„}”Œ(|üŒ= Ÿ ´%  Š8Æ4—& , Ÿ8Æ4 & ¦8$ «8ê4­& ³, µ8ê& ¼8$ Á, Ã8lvlÁÄ& Ç8$ Ì, Î Ï ú
, Ð8keyÁÑ& Ô8¯Õ, Ø Ù æ& Ú, Û8captureÁ& ã8¯ä- ç, é ê ø ë, í8»& ó8- ù$ û ü% ý, ÿ  ˆ, 8ÁÂ& 8¯ *Œ  ü   û 8š8¿ƒž ¢, ¤8¿ƒ¥% ¨8²8¿ƒµ¹, ¼8'Â8¦„ÄÕ8¿ƒØÜ, ß8'å8¯ ð ñ ó õ , 8,'8Þl‰'8Ϙ  ê , ­8Æ$ ´, Æ8'Ì8Þ'Û8ë è é ò, ê ë ð, ì8ÁÂí ñ$ ó8¿ƒ$ ˆ š  è, œ8ê4$ £, ¥8'«8Þl­'º8¹  Ç È É$ Ê, Ì8'Ò8Þ'á8œã æ ç$ é û ü Ó , ý þ Ð  ÿ Ï 
, 8, '8àLˆ    , 8$ ˜ , š 8, '  8 ­  ®  Î  , ¯ 8° , ´  µ  ¿ & , · 8Ä<¸ 
À  Â , Ä  Å  Ì , Æ 8»
Í $ Ñ  Ò 8Õ  Ø  Ù  Û 8 Ú $ Ü % ë % ý  Û! ž"8Æ4Ü!& â!, ä!8Æ4å!& ë!8$ì!$ ð!8ê4ò!& ø!, ú!8ê4û!& "8$"$ †", ˆ"8¿ƒ‰"& Œ"8$"$ ", “" ”" œ", •"8ÁÂ"& ™"8¯š" "* " £" ±% ¤" °%8®"8¿ƒ²" ¶", ¸"8¿ƒ¹"% ¼"8Æ"8¿ƒÉ"Í", Ð"8,Ñ"'Ö"8¦„Ø"é"8¿ƒì"ð", ó"8,ô"'ù"8¯Lû" „# …# ‡# ª%, •#8,#'#8Þl#'ª#8Ϭ# ¯# Ÿ%, Á#8Æ4Â#$ È#, Ú#8,Û#'à#8Þlâ#'ï#8ë\ñ# ü# ý# †$, þ# ÿ# „$, €$8ÁÂ$ …$$ ‡$8¿ƒ™$$ œ$ ®$ ¯$ ü$, °$8ê4±$$ ·$, ¹$8,º$'¿$8ÞlÁ$'Î$8¹ \Ð$ Û$ Ü$ Ý$$ Þ$, à$8,á$'æ$8Þlè$'õ$8œ÷$ ú$ û$$ ý$ % %$ %%  %% ²%Ä¥kü‚cMJ Determines if a message logged at the specified level in that module willÁtÐc be logged.ÁßcúüãcOL This can be used to avoid expensive computation of log message arguments ifÁü³d(% the message would be ignored anyway.ÁÜdútàd # ExamplesÁïdú<ódÇšüûd)& use log::{debug, log_enabled, Level};Á¥eúü©e$! # struct Data { x: u32, y: u32 }ÁüÎe96 # fn expensive_call() -> Data { Data { x: 0, y: 0 } }Áüˆf74 # let my_logger = log::__private_api::GlobalLogger;ÁüÀf# if log_enabled!(Level::Debug) {Áüäf$! let data = expensive_call();Áü‰g>; debug!("expensive debug data: {} {}", data.x, data.y);Á,Èg‹¡ÎgúüÒg52 if log_enabled!(target: "Global", Level::Debug) {Áüˆh# let data = expensive_call();Áü¬hOL debug!(target: "Global", "expensive debug data: {} {}", data.x, data.y);Á,üh‹¡‚iúü†i63 if log_enabled!(logger: my_logger, Level::Debug) {Áü½i#œüáiOÊœ,±j‹¡<·jÇš¿júüÃjQN This macro accepts the same `target` and `logger` arguments as [`macro@log`].Á(|•kòK ¾k ³r l Ãl8Æ4Žl& ”l, l8Æ4—l& l8$žl$ ¢l8ê4¤l& ªl, ¬l8ê4­l& ³l8$´l$ ¸l, ºl8¿ƒ»l& ¾l8$¿l*Ål Èl ®m Él ­m, Ól8,Ôl'Ùl8ù lÛl èl él §m8Æ4êl& ðl, òl8,ól'øl8 dúl †m ‡m m, ˆm8Æ4‰m$ m8ê4m& ˜m, šm8ê4m$ ¡m, £m8¿ƒ¤m% ¯m êm Šn 8Æ4ëm& ñm, óm8Æ4ôm& úm8$ûm$ ÿm, n8¿ƒn& …n8$†n*Œn n “o n o, šn8,n' n
'üÞ•&þ+$ïß$ü™–C\œ– þ+ Õ-‘D# ¨–#
$$©–¹
O(´Ÿ—þ+&'ðyñy'D¼—Á—%%›9üÜ—4Dß— Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
þ+þ+ðy% ï—%
'¤,è—ܬšþ+)Åc)üΚ6Ñšˆ þ+ ˆ c cˆ¢cµ
 `£càJ `àB¤GS
¸J( Õš(
)$Öš×ÜšT¯›þ++,-./23üÀ›(TÛ¼?áV**ÌUÀ Λ¬žžüà+( Returns the most verbose logging level.Á¥žþ+**
,ü¢Ÿ,üÖž96 Converts the `Level` to the equivalent `LevelFilter`.Á|©ŸŠ Šþ+Õ-* ¹Ÿ*
-$ºŸü¢¡$ü• 52 Returns the string representation of the `Level`.ÁÏ úü× FC This returns the same string as the `fmt::Display` implementation.Á4©¡ þ+êÀ* °¡*
.$±¡üƒ¥+üü¡1. Iterate through all supported logging levels.Á²¢úüº¢KH The order of iteration is from more severe to less severe log messages.ÁŠ£út’£€˜¥£ú<­£Çšœ¹£ use log::Level;ÁÑ£úüÙ£# let mut levels = Level::iter();Á¤úü‰¤2/ assert_eq!(Some(Level::Error), levels.next());ÁüÀ¤2/ assert_eq!(Some(Level::Trace), levels.last());Á<÷¤Çš$Š¥0**
/Ð[”¥//â­â­MapÁå­ùæ­±Å@Iœóë ¶¥££¹ƒ£¹„£þ-'ºˆÉ¬g¼?ºVÍìŸÑœùMŸÑ¬™¥ŸÑúMþ+\¢¥ÇÒÆÖÒ"çÒ/Ä¥/<closure_kind>Á1<closure_signature>Á1<upvars>Á11/ºVü±ª(üñ¥/, Get the next-highest `Level` from this one.Á¥¦úü­¦`] If the current `Level` is at the highest level, the returned `Level` will be the same as theÁ„’§
current one.Á§§út¯§€˜§ú<ʧÇšœÖ§¢Îî§úäö§ let level = Level::Info;Á—¨úüŸ¨96 assert_eq!(Level::Debug, level.increment_severity());ÁüݨNK assert_eq!(Level::Trace, level.increment_severity().increment_severity());Áü°©pm assert_eq!(Level::Trace, level.increment_severity().increment_severity().increment_severity()); // max levelÁ<¥ªÇš”¸ªŒ Œþ+þ+* ˪*
2$̪ü°(üÄ«.+ Get the next-lowest `Level` from this one.Á÷«úüÿ«_\ If the current `Level` is at the lowest level, the returned `Level` will be the same as theÁ„ã¬ÂÔø¬út€­€˜“­ú<›­Çšœ§­¢Î¿­úäÇ­­Õè­úüð­85 assert_eq!(Level::Warn, level.decrement_severity());Áü­®NK assert_eq!(Level::Error, level.decrement_severity().decrement_severity());Áü€¯pm assert_eq!(Level::Error, level.decrement_severity().decrement_severity().decrement_severity()); // min levelÁ<õ¯Çš”ˆ° þ+þ+* ›°*
3$œ°ü÷%Õ-5·ß5üý·#€¸Ž ŽÕ- þ+4 ƒ¸4
5$„¸¹
91üø&Õ-7ïß7üþ¸=\¹ Õ- þ+‘D6 ¹6
7$޹¹
W2äþ¹Õ-9:ðyñy:D¡º¦º88›9üÁº:Dĺ Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Õ-Õ-ðy8 Ôº8
:¤,ͺü½!Õ-<Åc<üŽ6Ƚ Õ-  c cˆ¢cµ
 `£càJ `àB¤GS
¸J; ̽;
<$ͽ×Ó½„¦¾Õ->?@ABEFü½¾.TÀ¾¼?¸T==ÄSÀ ˾ÜïÁüªÁ2/ Returns the most verbose logging level filter.ÁöÁÕ-==
?ü´Ã'ü³Â.+ Converts `self` to the equivalent `Level`.ÁæÂúüîÂ30 Returns `None` if `self` is `LevelFilter::Off`.ÁD»Ã Õ-áV= ÄÃ=
@$ÅÃü¦Å$ü“Ä;8 Returns the string representation of the `LevelFilter`.ÁÓÄúüÛÄF¨Ë4­Å Õ-êÀ= ´Å=
A$µÅü–É+ü€Æ30 Iterate through all supported filtering levels.Á¸ÆúüÀÆB? The order of iteration is from less to more verbose filtering.Á‡ÇútÇ€˜¢Çú<ªÇÇš̶Ç use log::LevelFilter;ÁÔÇúüÜÇ)& let mut levels = LevelFilter::iter();ÁŠÈúü’È63 assert_eq!(Some(LevelFilter::Off), levels.next());ÁüÍÈ85 assert_eq!(Some(LevelFilter::Trace), levels.last());Á<ŠÉÇš$ÉC==
BÐc§ÉBBâ­â­ÕÐå­ùæ­±Å@Iœóë ¶¥‰Ò¹iÍì…ícùM…í¬¬É…íúMÕ-\µÉôíƒî"”îB×ÉB­ÒDÅÒDâÒDDB¹iüÏ(ü„Ê52 Get the next-highest `LevelFilter` from this one.Á¾ÊúüÆÊ`] If the current `LevelFilter` is at the highest level, the returned `LevelFilter` will be theÁä«Ë same as the current one.ÁÌËútÔË€˜çËú<ïËÇšÌûËòé™Ìúü¡Ì)& let level_filter = LevelFilter::Info;ÁÏÌúü×ÌFC assert_eq!(LevelFilter::Debug, level_filter.increment_severity());Áü¢Í[X assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity());Áü‚Î}z assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity().increment_severity()); // max levelÁ<„ÏÇš”—Ϙ ˜Õ-Õ-= ªÏ=
E$«Ïü²Ö(ü£Ð41 Get the next-lowest `LevelFilter` from this one.ÁÜÐúüäÐ_\ If the current `LevelFilter` is at the lowest level, the returned `LevelFilter` will be theÁäÈÑÏïéÑútñÑ€˜„Òú<ŒÒÇš̘Òòé¶Òúü¾Ò)ÇðìÒúüôÒEB assert_eq!(LevelFilter::Warn, level_filter.decrement_severity());Áü¾Ó[X assert_eq!(LevelFilter::Error, level_filter.decrement_severity().decrement_severity());ÁüžÔnk assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity());Áü‘Õ assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity().decrement_severity()); // min levelÁ<¦ÖÇš”¹Ö Õ-Õ-= ÌÖ=
F$ÍÖܽØ«HH’0IÂØÄíØðØš š’0“:G ôØG
I«$õØô‹Ú8‰1ü®Ú%8œœ‰1L·ßLüÚÚ"ÝÚž ‰1 ž‰1K àÚK
L8$áÚ¹
,çÚüªÛ8ŸŸ‰1N»NüÐÛ2ÓÛ ¡  ‰1 ¡‰1ÖDM ×ÛM
N8$ØÛ¹
,ÞÛü²Ü&8¢¢‰1PïßPüßÜB\âÜ£¤ £‰1 ¤‰1‘DO îÜO
P8$ïܹ
,õÜüËÝ+8¥¥‰1R›eRüýÝ3$€Þ¦§ ¦‰1 §Òr¬:QSS ›ÞQÍìÒr …Þ¢eÒrŒˆÞ
R8Òr$œÞº*902œˆð«UU2VWXYZ[]^`aðüÏð%Ô¢ð Returns a new builder.Á<Öð3TT
V«üÇñ)¬Ÿñ The message body.Á$Îñ¨ ¨‘2 ¨äÈäÈ‚tæÈ•t `çÈÀ `üöMõô]Td«T ÓñT
W«$ÔñüÉò'ü‘ò%" Metadata about the log directive.ÁDÐò© ©‘2 ©ô3T ÙòT
X«$ÚòäÏóü•ó'$ The verbosity level of the message.Á,Öóª ª‘2þ+T ÜóT
Y«$ÝóüÖôü—ô,) The name of the target of the directive.Á4Ýô« «‘2“:T äôT
Z«$åôüØõ,ü¢õ# The module path of the message.Á\ßõ¬ ¬‘2Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ“:T ëõT
[«$ìõ¤ö[­Ò\ÅÒ\âÒ\\[Ú…ü÷8ü¼ö@= The module path of the message, if it is a `'static` string.Á”–÷­ ­‘2Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙêÀT ©÷T
]«$ª÷üù%üÏø+( The source file containing the message.Á$”ù® ®‘2µ‰T ™ùT
^«$šùËù^­Ò_ÅÒ_âÒ__^Ë‹ü¾ú1üãùHE The source file containing the message, if it is a `'static` string.Á\Åú¯ ¯‘2ë‹T ÑúT
`«$Òúü§ü!üðû$! The line containing the message.Á$®ü° °‘2°wT ³üT
a«$´üÔï«cc3defghijklmnôüÒ‘!üŽ" Construct new `RecordBuilder`.Á·Žú俎 The default options are:ÁàŽúüèŽ" - `args`: [`format_args!("")`]Áü1. - `metadata`: [`Metadata::builder().build()`]ÁÜÅ - `module_path`: `None`Á¤å - `file`: `None`Á¤þ - `line`: `None`ÁúüŸNK [`format_args!("")`]: https://doc.rust-lang.org/std/macro.format_args.htmlÁüòMJ [`Metadata::builder().build()`]: struct.MetadataBuilder.html#method.buildÁÙ‘3bb
d«üº•Jüö”1. Set [`args`](struct.Record.html#method.args).Á$Á•± ±3·„¾–b Æ•b
e«$Ë•À{Küá—LüÀ–Ž Set [`metadata`](struct.Record.html#method.metadata). Construct a `Metadata` object with [`MetadataBuilder`](struct.MetadataBuilder.html).ÁDè—² ²3ô3¿˜b ñ—b
f«$ö— LüÙ?üñ˜?< Set [`Metadata::level`](struct.Metadata.html#method.level).Á,Ê™³ ³3þ+î™b Йb
g«$Õ™¤ŸLüœ›CüÉš@= Set [`Metadata::target`](struct.Metadata.html#method.target)Á4£›´ ´3“:ž›b ª›b
h«$¯›ê3MüùœNü¨œ>; Set [`module_path`](struct.Record.html#method.module_path)Á\€µ µ3µ‰Ìœb Œb
i«$‘õ
ŸZü¨žTQ Set [`module_path`](struct.Record.html#method.module_path) to a `'static` stringÁ”–Ÿ 3ë‹‘žb ©Ÿb
j«$®Ÿõ
öNü‹¡GüÈ 0- Set [`file`](struct.Record.html#method.file)Á$’¡· ·3µ‰²Ÿb —¡b
k«$œ¡ÌÎOü†£Sü¬¢GD Set [`file`](struct.Record.html#method.file) to a `'static` string.Á\£¸ ¸3ë‹ê b ™£b
l«$ž£Ì¦Püô¤Cü±¤0- Set [`line`](struct.Record.html#method.line)Á$û¤¹ ¹3°w‹¢b €¥b
m«$…¥šAQü·¨!üø§,) Invoke the builder and return a `Record`Á,¾¨º º3‘2b Ĩb
n«$Ũü€©"8»»»3p´p¤©©<¬©»3oo
p8¬ý±«rrô3stu‚²üƲ'Ô™²Œ‚<Ͳˆ5qq
s«äÔ³üš³'Ç…,Û³¼ ¼ô3þ+q á³q
t«$â³üдü‘´,Ô†4×´½ ½ô3“:q Þ´q
u«$ß´䱺«wwˆ5xyz{¶ºüø»#üÔº&# Construct a new `MetadataBuilder`.Áÿºú䇻ô¨»úä°» - `level`: `Level::Info`Á¤Ñ» - `target`: `""`Áÿ»ˆ5vv
x«üŒ¾?ü½½<9 Setter for [`level`](struct.Metadata.html#method.level).Á,“¾¾ ¾ˆ5þ+ú©v ™¾v
y«$ž¾ÁÂ*aüÚ¿Eü‰¿>; Setter for [`target`](struct.Metadata.html#method.target).Á4á¿¿ ¿ˆ5“:©«v è¿v
z«$í¿ê¼aü”Á#üáÀ  Returns a `Metadata` object.Á,›ÁÀ Àˆ5ô3v ¡Áv
{«$¢ÁüáÁ$8ÁÁ‡6}´}¤ŒÂ<‡6||
}8ÔÿÂüÀÂ>; A trait encapsulating the operations required of a logger.Á‰Ã~~Îìüÿ î$ŽÃÌìî$•Ã~»®=Ю0á®$»®OЮBá®6üÆÇ/ü ÃDA Determines if a log message with the specified metadata would beÁ\éà logged.ÁùÃúüÄFC This is used by the `log_enabled!` macro to allow callers to avoidÁüÌÄJG expensive computation of log message arguments if the message would beÁ¬›Å discarded anyway.ÁµÅú´½Å # For implementorsÁØÅúüàÅ@= This method isn't called automatically by the `log!` macros.Áü¥ÆPM It's up to an implementation of the `Log` trait to call `enabled` in its ownÁüúÆGD `log` method implementation to guarantee that filtering is applied.Á<ÉÇÂÃÄ Âî û»Â½¤¾êìªØ‚MleÄ~ ÑÇ~
î$ÒÇDØÇüéÉ´ûÇ Logs the `Record`.Á–Èú´žÈ’±¹ÈúüÁÈGD Note that `enabled` is *not* necessarily called before this method.ÁüÉC@ Implementations of `log` should perform all necessary filteringÁ|ÕÉ internally.ÁìÉÅÆÇ Åî Æ¨¨Ÿª«À¬¹ ­Ì®š†¥ú3gϵ†Ç¬:~ ðÉ~
î$ñÉ¡4÷É„€ÌüŽÊ! Flushes any buffered records.Á´Êú´¼Ê’±×ÊúüßÊ@À±ü¤ËWT It can be called manually on shut-down to ensure any in-flight records are flushed.Á,ƒÌÈ Èî¬:~ ‰Ì~
î$ŠÌ„ºÌLÁÌ¿6Sq¢ôSvƒ/*¿6´ÍÌ¿6…üêÌ'<íÌÉÊË É¿6 Ê»»Â½¤¾êìªØ‚MleË õÌ
$öÌ üÌ̭ͰÍÌÍÎ Ì¿6
 `£càJ `àB¤GS
è¸J¡ ¡Œ¡
¢$¢Œ×¨ŒüË$»À¼³Ï8ü”%›9¥Åc¥üÀ6Ãéêë é›9 ê c cˆ¢cµ
 `£càJ `àB¤GS
ë¸J¤ Ǥ
¥×Îüò‘%»À|à‘¼Ú‘›9ü#üœ’&# Returns a reference to the logger.ÁÃ’úüÇ’EB If a logger has not been set, a no-op implementation is returned.Á4”“ý¾
§¬Ì—Ó—¿6€¬—™ü\Y WARNING: this is not part of the crate's public API and is subject to change at any timeÁ4Ž™lŸ™·¹»ÉËÏÑþÿêp¼©ªÆ4 §©¬õ,‰Ù©­·~©®ÂD•»©¯Ÿ¨©°‚tL¶äÈ©±£å•½©²ëž´¹ \ö«µÔ¨Œbâ,yÓÕÂı³¡£’œ¬ƒ¤ÅrãbdSUDF„¬»õ„™Üµ«¸¸“:¹”ä»õ„ÑÜÈ«ºº“:ó4‡©¼Œ¹Ã¼«½½¼»®ü¹h¼»®»®¾¾¾ÇüÕFîÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ «
 «І¼¼
¾î«üÆ/«ÀÀŠ:Á¾ÁËüŠ7DŠ:Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙŠ:¿¿
Á«.q¼à«Ãì:ľÄåüŒ7D¬:ÂÂ
Ä«•q̼¼:ÆÇÈÆÇÈüÜ.ìíî ì¼: í»»Â½¤¾êìªØ‚MleîÅ çÅ
Æô»¾ïðñ ï¼: 𨨟ª«À¬¹ ­Ì®š†¥ú3gϵ†ñ¬:Å ÂÅ
Ç¡|„ ,‡ ò ò¼:¬:Å Å
Èüí ¹©óôõö÷øùšíäÈäÈ‚tæÈ•t `çÈÀ `üöMõô]Tdóþ+ ô õêÀ •½•½£å—½µå¯V˜½š¯V™½×å¯Vš½çå¯VirBð¸tý–öÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ÷
 ø ù¬:ÊÊL›
Íìší ù ~šíü 
ÉšíÆŸvÀ¨v¤±vÝïÎv:<ü•Åœúûüý©óäÈäÈ‚tæÈ•t `çÈÀ `üöMõô]Tdúþ+ û üêÀ •½•½£å—½µå¯V˜½š¯V™½×å¯Vš½çå¯VirBð¸tý–ýäò¬:«ÌœÍÎÎÌÍÍìäò ¤Íì©ó §¼äò«~©óÖ
Ë«äò©óÆÀyÀÉy¤Òy¯ôÜyÝïæy xztvüÝEþšíþ+ þÐÐ  ìšï
ÏšíÆì{¤õ{êþ{*,ü…*²|õŒ •½•½£å—½µå¯V˜½š¯V™½×å¯Vš½çå¯VirBð¸tý–
Ñü©œ'ü¯™.+ The statically resolved maximum log level.ÁÞ™úüâ™OL See the crate level documentation for information on how to configure this.Á²šúü¶šPM This value is checked by the log macros, but not by the `Log`ger returned byÁü‡›MJ the [`logger`] function. Code that manually calls functions on that valueÁüÕ›0- should compare the level against this value.Á†œúôŠœ [`logger`]: fn.logger.htmlÁ„³œÕ-„üØ The standard logging macro.ÁøúüüLI This macro will generically log with the specified `Level` and `format!`ÁÄÉ based argument list.ÁâúÇšÔî use log::{log, Level};Áúü! let data = (42, "Forty-two");Áü¯! let private_data = "private";ÁÑúüÕB? log!(Level::Error, "Received errors: {}, {}", data.0, data.1);Á<˜Çš úü¤OL Optionally, you can specify a `target` argument to attach a specific targetÁüôOL to the log record. By default, the target is the module path of the caller.ÁÄúÇšÔЛ›ëúüï!Ë›ü‘!ö›³ú log!(ÁìÁ target: "app_events",Á¬ß Level::Error,Áüõ" "Received errors: {}, {}",Á´˜  data.0, data.1Á );ÁÇš¾ úü PM And optionally, you can specify a `logger` argument to use a specific loggerÁü“
)& instead of the default global logger.Á½
ú
ÇšÄÉ
 # struct MyLogger {}Áìâ
 # impl Log for MyLogger {Áü€ @= # fn enabled(&self, _metadata: &log::Metadata) -> bool {ÁœÁ  # falseÁ  # }Áüá 1. # fn log(&self, _record: &log::Record) {}Áä“  # fn flush(&self) {}Á ý­ü¸  use log::{log, Level, Log};ÁØ úüÜ !Ë›üþ !ö› 
úü¤
 let my_logger = MyLogger {};Á
ŸÔÏ
 logger: my_logger,Á¬ê
ÕŸü€"ôŸ´£Ÿ ¾ ÇšÉúüÍTQ The `logger` argument accepts a value that implements the `Log` trait. The valueÁü¢&# will be borrowed within the macro.ÁÉúüÍUR Note that the global level set via Cargo features or through `set_max_level` willÁü£RO still apply, even when a custom logger is supplied with the `logger` argument.Á뜈´†(|öG„ ® ê  Î8Æ& , 8Æ4•& 8$  8ê& ¨, ª8ê& ±8$ , ¸8¿ƒ¹& ¼8$ Á, Ã Ä Ì, Å8ÁÂÆ& É8¯Ê Í*Ð Ó õ Ô ô, Þ8'ä8Û  ë ì î8Æ& , 8'ˆ8    Ÿ, ˜8Æ4™$  8ê& ´, 8ê$ ½, Ë8¿ƒÌ$ Ï, Ý Þ ã, ß8ÁÂà ä% ö ¸ å8Æ& ¿, Á8Æ& È8$ Í, Ï8¿ƒÐ& Ó8$ Ø, Ú Û ã, Ü8ÁÂÝ& à8¯á ä*ç ê ª ë ©, õ8'û8Û   ƒ £8Æ4& , 8'Ÿ8  ­ ® , ¯8Æ$ ·8ê& Ë, Í8'Ó8Þ'â8¹  ï ð ñ$ ò, 8¿ƒ$ ,   ˜, 8Á % « ï œ8ê& ö, ø8ê& ÿ8$€$ , 8¿ƒ& Š8$$ ,   š, 8ÁÂ& 8¯˜ *ž ¡ Ï ¢ Î, ¬8,­'²8Û ,´ ¹ º È8Æ& Î, Ð8'Ö8  ä å ù8†¨œæ$ ú8ê4ˆ& Ž, 8ê4$ , ¥8¿ƒ¦$ ©, · ¸ ½, ¹8Áº ¾% Ð ÿ , 8¿ƒ& 8$…$ ,  Œ , 8ÁÂŽ& 8¯ *˜  ç œ æ, ¦8'¬8Û  ³ ´ à8Æ& È, Ê8'Ð8  Þ ß ó8†¨œà$ ô8ê4& ˆ, Š8,'8Þl'Ÿ8¹  ¬ ­ ®$ ¯, ½8¿ƒ¾$ Á, Ï Ð Õ, Ñ8ÁÂÒ Ö% è”ñ(ü·%&# Logs a message at the error level.ÁÞ%útâ%€˜ñ%ú<õ%Çšœý% use log::error;Á&úü•&7á™üÍ&1. let (err_info, port) = ("No connection", 22);Áÿ&úüƒ'/, error!("Error: {err_info} on port {port}");Áü³'HE error!(target: "app_events", "App Error: {err_info}, Port: {port}");Áüü'EB error!(logger: my_logger, "App Error: {err_info}, Port: {port}");Á<Â(ÇšëœÜ(´Ú((|Ê(,þ( „) ó0 ¸* ð*8Æ4¹*& ¿*, Á*8Æ4Â*& È*8$É*$ Í*8ê4Ï*& Õ*, ×*8ê4Ø*& Þ*8$ß*$ ã*, å* æ* î*, ç*8ÁÂè*& ë*8¯ì* ï**ò* õ* ë+ ö* ê+, €+8,+'†+8ψ+ + Œ+ ä+8Æ4+& “+, •+8,+'+8 d+ ©+ ª+ ²+, «+8Æ4¬+$ ³+8ê4µ+& »+, ½+8ê4¾+$ Ä+, Æ+8,Ç+'Ì+8õ,Î+'Ó+8,Õ+$ Ú+, Ü+ Ý+ â+, Þ+8ÁÂß+ ã+% ì+ ÷, ™-
8Æ4ø,& þ,, €-8Æ4-& ‡-8$ˆ-$ Œ-, Ž- - —-, -8ÁÂ-& ”-8¯•- ˜-*›- ž- ƒ. Ÿ- ., ©-8,ª-'¯-8ϱ- ´- µ- ü-8Æ4¶-& ¼-, ¾-8,¿-'Ä-8 dÆ- Ò- Ó- Û-, Ô-8Æ4Õ-$ Ü-, Þ-8,ß-'ä-8õ,æ-'ë-8,í-$ ò-, ô- õ- ú-, ö-8ÁÂ÷- û-% „. “/ µ/
8ê4”/& š/, œ/8ê4/& £/8$¤/$ ¨/, ª/ «/ ³/, ¬/8Á­/& °/8¯±/ ´/*·/ º/ ˆ0 »/ ‡0, Å/8,Æ/'Ë/8ÏÍ/ Ð/ Ñ/ 08ê4Ò/& Ø/, Ú/8ê4Û/$ á/, ã/8,ä/'é/8õ,ë/'ð/8,ò/$ ÷/, ù/ ú/ ÿ/, û/8ÁÂü/ €0% ‰0 ³0 ¿0, ´0 µ0 ½0, ¶08Á·0& º08¯»0 ¾0*Á0 Ä0 ñ0, Å08,Æ0'Ë08ÏÍ0 Ð0 Ñ0 ð0
, Ò08,Ó0'Ø08õ,Ú0'ß08,á0$ æ0, è0 é0 î0, ê08ÁÂë0 ï0Œ­4üö0%" Logs a message at the warn level.Áœ1út 1€˜¯1ú<³1Çš”»1 use log::warn;ÁÎ1úüÒ17á™üŠ2+( let warn_description = "Invalid Input";Á¶2úüº2*' warn!("Warning! {warn_description}!");Áüå2NK warn!(target: "input_events", "App received warning: {warn_description}");Áü´3IF warn!(logger: my_logger, "App received warning: {warn_description}");Á<þ3ǚ뜘4´–4(|†4W„ ¿4 £< ñ5 ©68Æ4ò5& ø5, ú58Æ4û5& 68$6$ †68ê4ˆ6& Ž6, 68ê46& —68$˜6$ œ6, ž6 Ÿ6 §6,  68Á¡6& ¤68¯¥6 ¨6*«6 ®6 £7 ¯6 ¢7, ¹68,º6'¿68ÏÁ6 Ä6 Å6 œ78Æ4Æ6& Ì6, Î68,Ï6'Ô68 dÖ6 â6 ã6 ë6, ä68Æ4å6$ ì68ê4î6& ô6, ö68ê4÷6$ ý6, ÿ68,€7'…78õ,‡7'Œ78$Ž7$ 7, ”7 •7 š7, –78Á—7 7% ¤7 ­8 Ï8
8Æ4®8& ´8, ¶88Æ4·8& ½88$¾8$ Â8, Ä8 Å8 Í8, Æ88ÁÂÇ8& Ê88¯Ë8 Î8*Ñ8 Ô8 ¸9 Õ8 ·9, ß88,à8'å88Ïç8 ê8 ë8 ±98Æ4ì8& ò8, ô88,õ8'ú88 dü8 ˆ9 ‰9 9, Š98Æ49$ 9, ”98,•9'š98õ,œ9'¡98$£9$ §9, ©9 ª9 ¯9, «98Á¬9 °9% ¹9 Æ: è:
8ê4Ç:& Í:, Ï:8ê4Ð:& Ö:8$×:$ Û:, Ý: Þ: æ:, ß:8ÁÂà:& ã:8¯ä: ç:*ê: í: º; î: ¹;, ø:8,ù:'þ:8Ï€; ƒ; „; ³;8ê4…;& ;, ;8ê4Ž;$ ”;, ;8,—;'œ;8õ,ž;'£;8$¥;$ ©;, «; ¬; ±;, ­;8Á®; ²;% »; ä; ð;, å; æ; î;, ç;8ÁÂè;& ë;8¯ì; ï;*ò; õ; ¡<, ö;8,÷;'ü;8Ïþ; < <  <
, ƒ<8,„<'‰<8õ,<'<8$<$ <, ˜< ™< ž<, š<8ÁÂ< Ÿ<ŒÈAü¦<%" Logs a message at the info level.ÁÌ<útÐ<€˜ß<ú<ã<Çš”ë< use log::info;Áþ<úü‚=7á™üº=1. # struct Connection { port: u32, speed: f32 }Áüì=96 let conn_info = Connection { port: 40, speed: 3.20 };Á¦>úüª>NK info!("Connected to port {} at {} Mb/s", conn_info.port, conn_info.speed);ÁTù> info!(Áü„?$! target: "connection_events",Áü©?52 "Successful connection, port: {}, speed: {}",Áüß?'$ conn_info.port, conn_info.speedÁ4‡@¾ TŽ@ÅÝÔ™@Î¥ü´@5‡Þüê@'ÆÞ4A¾ <™Aǚ뜳A´±A(|¡Ag„ ÚA ¾I ŒC ÄC8Æ4C& “C, •C8Æ4C& œC8$C$ ¡C8ê4£C& ©C, «C8ê4¬C& ²C8$³C$ ·C, ¹C ºC ÂC, »C8Á¼C& ¿C8¯ÀC ÃC*ÆC ÉC ¾D ÊC ½D, ÔC8,ÕC'ÚC8ÏÜC ßC àC ·D8Æ4áC& çC, éC8,êC'ïC8 dñC ýC þC †D, ÿC8Æ4€D$ ‡D8ê4‰D& D, D8ê4D$ ˜D, šD8,D' D8õ,¢D'§D8ª$©D$ ­D, ¯D °D µD, ±D8Á²D ¶D% ¿D ÈE êE
8Æ4ÉE& ÏE, ÑE8Æ4ÒE& ØE8$ÙE$ ÝE, ßE àE èE, áE8ÁÂâE& åE8¯æE éE*ìE ïE ÓF ðE ÒF, úE8,ûE'€F8ÏF …F †F ÌF8Æ4‡F& F, F8,F'•F8 d—F £F ¤F ¬F, ¥F8Æ4¦F$ ­F, ¯F8,°F'µF8õ,·F'¼F8ª$¾F$ ÂF, ÄF ÅF ÊF, ÆF8ÁÂÇF ËF% ÔF áG ƒH
8ê4âG& èG, êG8ê4ëG& ñG8$òG$ öG, øG ùG H, úG8ÁÂûG& þG8¯ÿG H*…H ˆH ÕH ‰H ÔH, “H8,”H'™H8ÏH žH ŸH ÎH8ê4 H& ¦H, ¨H8ê4©H$ ¯H, ±H8,²H'·H8õ,¹H'¾H8ª$ÀH$ ÄH, ÆH ÇH ÌH, ÈH8ÁÂÉH ÍH% ÖH ÿH I, €I I ‰I, I8ÁƒI& †I8¯‡I ŠI*I I ¼I, I8,I'—I8Ï™I œI I »I
, žI8,ŸI'¤I8õ,¦I'«I8ª$­I$ ±I, ³I ´I ¹I, µI8Á¶I ºI”´MüÁI&# Logs a message at the debug level.ÁèIútìI€˜ûIú<ÿIÇšœ‡J use log::debug;ÁJúüŸJ7á™ü×J(% # struct Position { x: f32, y: f32 }Áü€K/, let pos = Position { x: 3.234, y: -1.223 };Á°Kúü´K74 debug!("New position: x: {}, y: {}", pos.x, pos.y);ÁüìKMJ debug!(target: "app_events", "New position: x: {}, y: {}", pos.x, pos.y);ÁüºLJG debug!(logger: my_logger, "New position: x: {}, y: {}", pos.x, pos.y);Á<…Mǚ뜟M´M(|Mw„ ÇM ¶U ûN ³O8Æ4üN& O, „O8Æ4…O& O8$ŒO$ O8ê4O& ˜O, šO8ê4O& ¡O8$¢O$ ¦O, ¨O ©O ±O, ªO8Á«O& ®O8¯¯O ²O*µO ¸O ®P ¹O ­P, ÃO8,ÄO'ÉO8ÏËO ÎO ÏO §P8Æ4ÐO& ÖO, ØO8,ÙO'ÞO8 dàO ìO íO õO, îO8Æ4ïO$ öO8ê4øO& þO, €P8ê4P$ ‡P, ‰P8,ŠP'P8õ,P'P8p,˜P$ P, ŸP  P ¥P, ¡P8Á¢P ¦P% ¯P ºQ ÜQ
8Æ4»Q& ÁQ, ÃQ8Æ4ÄQ& ÊQ8$ËQ$ ÏQ, ÑQ ÒQ ÚQ, ÓQ8ÁÂÔQ& ×Q8¯ØQ ÛQ*ÞQ áQ ÆR âQ ÅR, ìQ8,íQ'òQ8ÏôQ ÷Q øQ ¿R8Æ4ùQ& ÿQ, R8,R'‡R8 d‰R •R R žR, —R8Æ4˜R$ ŸR, ¡R8,¢R'§R8õ,©R'®R8p,°R$ µR, ·R ¸R ½R, ¹R8ÁºR ¾R% ÇR ÖS øS
8ê4×S& ÝS, ßS8ê4àS& æS8$çS$ ëS, íS îS öS, ïS8ÁÂðS& óS8¯ôS ÷S*úS ýS ËT þS ÊT, ˆT8,‰T'ŽT8ÏT “T ”T ÄT8ê4•T& T, T8ê4žT$ ¤T, ¦T8,§T'¬T8õ,®T'³T8p,µT$ ºT, ¼T ½T ÂT, ¾T8Á¿T ÃT% ÌT öT U, ÷T øT €U, ùT8ÁÂúT& ýT8¯þT U*„U ‡U ´U, ˆU8,‰U'ŽU8ÏU “U ”U ³U
, •U8,U'U8õ,U'¢U8p,¤U$ ©U, «U ¬U ±U, ­U8Á®U ²U”ýZü¹U&# Logs a message at the trace level.ÁàUútäU€˜óUú<÷UÇšœÿU use log::trace;Á“Vúü—V7á™üÏV(éíüøV/›î¨Wúü¬W63 trace!("Position is: x: {}, y: {}", pos.x, pos.y);ÁüãW74 trace!(target: "app_events", "x is {} and y is {}",Áü›X>; if pos.x >= 0.0 { "positive" } else { "negative" },ÁüÚX?< if pos.y >= 0.0 { "positive" } else { "negative" });ÁüšY41 trace!(logger: my_logger, "x is {} and y is {}",ÁüÏY>“€üŽZ?Û€<ÎZÇšëœèZ´æZ(|ÖZ‡„ [ ÿb Ä\ ü\8Æ4Å\& Ë\, Í\8Æ4Î\& Ô\8$Õ\$ Ù\8ê4Û\& á\, ã\8ê4ä\& ê\8$ë\$ ï\, ñ\ ò\ ú\, ó\8ÁÂô\& ÷\8¯ø\ û\*þ\ ] ÷] ] ö], Œ]8,]']8Ï”] —] ˜] ð]8Æ4™]& Ÿ], ¡]8,¢]'§]8 d©] µ] ¶] ¾], ·]8Æ4¸]$ ¿]8ê4Á]& Ç], É]8ê4Ê]$ Ð], Ò]8,Ó]'Ø]8õ,Ú]'ß]8Ç,á]$ æ], è] é] î], ê]8ÁÂë] ï]% ø] ƒ_ ¥_
8Æ4„_& Š_, Œ_8Æ4_& “_8$”_$ ˜_, š_ _ £_, œ_8ÁÂ_&  _8¯¡_ ¤_*§_ ª_ ` «_ Ž`, µ_8,¶_'»_8Ͻ_ À_ Á_ ˆ`8Æ4Â_& È_, Ê_8,Ë_'Ð_8 dÒ_ Þ_ ß_ ç_, à_8Æ4á_$ è_, ê_8,ë_'ð_8õ,ò_'÷_8Ç,ù_$ þ_, €` ` †`, ‚`8Áƒ` ‡`% ` Ÿa Áa
8ê4 a& ¦a, ¨a8ê4©a& ¯a8$°a$ ´a, ¶a ·a ¿a, ¸a8Á¹a& ¼a8¯½a Àa*Ãa Æa ”b Ça “b, Ña8,Òa'×a8ÏÙa Üa Ýa b8ê4Þa& äa, æa8ê4ça$ ía, ïa8,ða'õa8õ,÷a'üa8Ç,þa$ ƒb, …b †b b, ‡b8Áˆb Œb% •b ¿b Ëb, Àb Áb Éb, Âb8ÁÂÃb& Æb8¯Çb Êb*Íb Ðb ýb, Ñb8,Òb'×b8ÏÙb Üb Ýb üb
, Þb8,ßb'äb8õ,æb'ëb8Ç,íb$ òb, ôb õb úb, öb8ÁÂ÷b ûbtÄŽü¤‹FC An enum representing the available verbosity levels of the logger.Áë‹úüï‹IF Typical usage includes: checking if a certain `Level` is enabled withÁü¹ŒGD [`log_enabled!`](macro.log_enabled.html), specifying the `Level` ofÁüC@ [`log!`](macro.log.html), and comparing a `Level` directly to aÁüÅ+( [`LevelFilter`](enum.LevelFilter.html).Á,ÍŽþ+Ä*TwÔ=å©ÚÛÝÞßàáâãäÜÛÞàâä,¸‘´ÙŽ The "error" level.ÁôŽúüüŽ# Designates very serious errors.ÁbÙÙþ+uwÙÙþ+ À‘¼?$’’¬Ç‘ The "warn" level.Áá‘úüé‘$! Designates hazardous situations.ÁbÙÙþ+uwÙÙþ+$å’¬œ’ The "info" level.Á¶’úü¾’" Designates useful information.Á`ÙÙþ+suÙÙþ+,Á“´ï’ The "debug" level.ÁŠ“úü’“*' Designates lower priority information.ÁiÙÙþ+|~ÙÙþ+,»”´Ì“ The "trace" level.Áç“úüï“GD Designates very low priority, often extremely verbose, information.ÁÙÙþ+ÙÙþ+!þ+!þ+çÙçÿ ÿþ+þ+扎æ
ç Ž"þ+òò#þ+òò#þ+ë·ßëòò þ+ þ+ê–Žê
ëò¹
òÒ Ò $þ+ííÒ Ò Ò  þ+¬:졎ì
íÒ 
!
!%þ+ïïßï
!
!ƒ ƒþ+ þ+‘Dî
ï
!¹

!½"½"&þ+ñ»ñ½"½" þ+ þ+ÖDð±Žð
ñ½"¹
½"·#·#'þ+óÀcó·#·#ˆ þ+ ˆ c cˆ¢cµ
 `£càJ `àB¤GS
¸Jò¶Žò
ó·#±·#Ê%Ê%(þ+õ›eõÊ%Ê%Š Šþ+ úL¬:ôùöö½ŽôÍìúLÊ%¢eúLÊ%
õúLÊ%ºÊ%Ê%Ê%¤Ü´ü ±MJ An enum representing the available verbosity level filters of the logger.Áî±úüò±JG A `LevelFilter` may be compared directly to a [`Level`]. Use this typeÁü½²TQ to get and set the maximum log level with [`max_level()`] and [`set_max_level`].Á’³úô–³ [`Level`]: enum.Level.htmlÁüµ³&# [`max_level()`]: fn.max_level.htmlÁüܳ,ùë \å´Õ-…A€Šø«`øùúûüýþÿƒùûýÿƒ¢µü÷´&# A level lower than all log levels.Á 8÷÷Õ-KM÷÷Õ-,Ùµü«µ)& Corresponds to the `Error` log level.Á ;÷÷Õ-NP÷÷Õ-$‘¶üäµ(% Corresponds to the `Warn` log level.Á :÷÷Õ-MO÷÷Õ-$ȶü›¶(% Corresponds to the `Info` log level.Á :÷÷Õ-MO÷÷Õ-,€·üÒ¶)& Corresponds to the `Debug` log level.Á ;÷÷Õ-NP÷÷Õ-,¹·ü‹·)& Corresponds to the `Trace` log level.Á ;÷÷Õ-NP÷÷Õ-W+W+W+)Õ-W+W+)Õ-†ÙW+W+Œ ŒÕ-Õ-¡´
W+ ¨´*Õ-¯+¯++Õ-¯+¯++Õ-Š·ßŠ¯+¯+Ž Õ- ŽÕ-®´
Н+¹
¯+w,w,,Õ-ŒŒw,w,w, Õ-¬:¹´
Œw,¯,¯,-Õ-Žïߎ¯,¯, Õ- Õ-‘D½´
ޝ,¹
¯,£-£-.Õ-»£-£- Õ- Õ-ÖDÉ´
£-¹
£-—.—./Õ-’Àc—.—. Õ-  c cˆ¢cµ
 `£càJ `àB¤GS
¸Jδ
—.±—. 0 00Õ-”e 0 0˜ Õ- ˜úL¬:ù Õ´ú¢ 0‰£ 0
úL 0º 0 0 0¼ï×
tô׫’0ò‹©pšêÀ’0œ“:’0ƒØŠ
Š
«ŠŠêÀ’0õ¶d”ØêÀÙ
Ù
œ«ÙÙ“:’0ë·<°Ø“: !Ú×1«ŸŸ’0Ž4Ž4Ž42«¡¡’0WZŽ4Ž42«££’0¤Ù¤ŠŽ4Ž4 ’00¢"à×¢
¤«Ž4@5@53«¦¦’0§Àc§@5@5šœ š’0  c cˆ¢cµ
 `£càJ `àB¤GS
œ¸J¥#ç×¥
§«@5±@5¬•êüÜÞ# The "payload" of a log message.Á€ßúL„ß # UseÁŽßúü’ßKH `Record` structures are passed as parameters to the [`log`][method.log]ÁüÞßEB method of the [`Log`] trait. Logger implementors manipulate theseÁü¤àLI structures in order to display log messages. `Record`s are automaticallyÁüñàC@ created by the [`log!`] macro and so are not seen by log users.Áµáúü¹áJG Note that the [`level()`] and [`target()`] accessors are equivalent toÁü„âJG `self.metadata().level()` and `self.metadata().target()` respectively.ÁüÏâLI These methods are provided as a convenience for users of this structure.Áœãúl ã
# ExampleÁ®ãúü²ãHE The following example shows a simple logger that displays the level,ÁüûãB? module path, and message of any `Record` that is passed to it.Á¾äú<ÂäÇšÄÊä¾¾ãäúüçä$ì¾üŒå=: fn enabled(&self, _metadata: &log::Metadata) -> bool {Á|Êå trueÁDÚåãåúüçå,) fn log(&self, record: &log::Record) {Áü”æ0- if !self.enabled(record.metadata()) {Á´Åæ return;ÁdÜæéæúüíæ" println!("{}:{} -- {}",Áüç# record.level(),Áü´ç$! record.target(),ÁüÙç# record.args());ÁDýçáÃ̆è fn flush(&self) {}Á, è‹¡<¦èÇš®èúü²è-* [method.log]: trait.Log.html#tymethod.logÁÜàèÇêäüèÞÚü™é0- [`level()`]: struct.Record.html#method.levelÁüÊé2/ [`target()`]: struct.Record.html#method.targetÁ 4 ê«©©‘2†¥ú3gϵ†ª«¬­®§ê´±êD±ê¨¨ô3ÄÍê$Íꨨ·„üëê'\ëꨨۼݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ’0ü˜ë $˜ë¨¨¢ËŒ¾ë$¾ë¨¨°wœ;œ;4«°°‘2±Ù±  œ;œ; ‘2‘2¯$†ê¯
±«œ;á<á<5«³³‘2´Àc´á<á<žŸ  ž‘2 Ÿ c cˆ¢cµ
 `£càJ `àB¤GS
 ¸J²%ê²
´«á<±á<äµü‘ƒ/, Builder for [`Record`](struct.Record.html).ÁÁƒúüŃ\Y Typically should only be used by log library creators or for testing and "shim loggers".Áü¢„XU The `RecordBuilder` can set the different parameters of `Record` object, and returnsÁüû„.+ the created object when `build` is called.Áª…út®…€˜½…ú<Á…ÇšìÉ… use log::{Level, Record};Áç…úüë…" let record = Record::builder()Áüކ1. .args(format_args!("Error!"))ÁüÀ†(% .level(Level::Error)Áüé†$! .target("myApp")Áüއ,) .file(Some("server.rs"))Áü»‡$! .line(Some(144))Áüà‡0- .module_path(Some("server"))Á쑈 .build();Á<¯ˆÇš·ˆúü»ˆHE Alternatively, use [`MetadataBuilder`](struct.MetadataBuilder.html):Á„‰ú<ˆ‰Çšü.+ use log::{Record, Level, MetadataBuilder};Á¿‰úüÉ/, let error_metadata = MetadataBuilder::new()Áüó‰,) .target("myApp")Áü Š0- .level(Level::Error)ÁüÑŠ%" .build();Á÷ŠúüûŠ"ÛÑüž‹-* .metadata(error_metadata)ÁüÌ‹1ˆÒüþ‹$! .line(Some(433))Áü£Œ)& .file(Some("app.rs"))ÁüÍŒ0ŒÔìþŒÆÔÇš «3ŒŒ/D($·Î”صµ‘2!H!H6«¹¹ÀcºPR!H!H¡¢£ ¡3 ¢ c cˆ¢cµ
 `£càJ `àB¤GS
£¸J¸&­¸
º«!H±!H¼¹±üÝ©! Metadata about a log message.Áÿ©úLƒªñ»ªúü‘ª@= `Metadata` structs are created when users of the library useÁœÒª logging macros.ÁæªúüêªB? They are consumed by implementations of the `Log` trait in theÁ¬­« `enabled` method.ÁëúüÇ«DA `Record`s use `Metadata` to determine the log message's severityÁ|Œ¬ and target.Áœ¬úü ¬DA Users should use the `log_enabled!` macro in their code to avoidÁüå¬(% constructing expensive log messages.ÁŽ­út’­€˜¡­ú<¥­Çšü­­'‚¾Õ­ú¤Ù­üìî­úüò­ ¨íü“®8š¿üÌ®+Ü¿Lø®ù ‚¯úü†¯(ªÀü¯¯0ÜÀüà¯C–Ál¤°ã L²°ù Ô¼°ˆÂ,×°‹¡ݰúŒá° # fn main(){}Á<ó°ÇšDı«¼¼ô3ìªØ‚Mle½¾ͱd×±,×±»»þ+|é±4é±»»“:lRlR7«ÀÀô3ÁÙÁlnlRlR¤ ¤ô3ô3¿(„±¿
Á«lRSS8«ÃÃô3ÄÄõ÷SSS¥ ¥ô3¬:Â)‹±Â
Ä«S;T;T9«ÆÆô3;T;T9«ÈÈô3É·ßÉÁÄ;T;T¦§ ¦ô3 §ô3Ç*±Ç
É«;T¹
;TœUœU:«ËËô3Ì»ÌcfœUœU¨© ¨ô3 ©ô3ÖDÊ+š±Ê
Ì«œU¹
œUAWAW;«ÎÎô3ÏïßÏ
AWAWª« ªô3 «ô3‘DÍ,Ÿ±Í
Ï«AW¹
AW*X*X<«ÑÑô3Ò›eÒª­*X*X¬­ ¬ô3 ­œ±¬:ÐùÓÓ-«±ÐÍ윱*X¢eœ±*X
Ò«œ±*Xº*X*X*XýXýX=«ÕÕô3ÖÀcÖýXýX®¯° ®ô3 ¯ c cˆ¢cµ
 `£càJ `àB¤GS
°¸JÔ.±±Ô
Ö«ýX±ýXôñ¹üµ30 Builder for [`Metadata`](struct.Metadata.html).Áõúüǵ\îÎü¤¶^[ The `MetadataBuilder` can set the different parameters of a `Metadata` object, and returnsÁüƒ·.¸Ð²·úl¶·÷ÀÄ·ú<È·ÇšÌз let target = "myApp";Áüê·&# use log::{Level, MetadataBuilder};Áü‘¸)& let metadata = MetadataBuilder::new()Áü»¸,) .level(Level::Debug)Áüè¸'$ .target(target)Áü¹! .build();Á<²¹Çš|ü¹«ØØˆ5‡‰Pô‚ †øÙŒº´–ºD–º××ô3¹[¹[>«ÛÛˆ5ÜÜPR¹[¹[¹[± ±ˆ5¬:Ú/ùÚ
Ü«¹[_\_\?«ÞÞˆ5èê_\_\?«ààˆ5á·ßá_\_\²³ ²ˆ5 ³ˆ5ß0ǹß
á«_\¹
_\#]#]@«ããˆ5ä»ä¼¿#]#]´µ ´ˆ5 µˆ5ÖDâ1Ò¹â
ä«#]¹
#]ì]ì]A«ææˆ5çïßç`cì]ì]· ˆ5 ·ˆ5‘Då2×¹å
ç«ì]¹
ì]„^„^B«ééˆ5ê›eê„^„^¸¹ ¸ˆ5 ¹œ±¬:èùëë3ã¹èŸí„^¯í„^
ꫜ±„^º„^„^„^ÿ^ÿ^C«ííˆ5îÀcîØÛÿ^ÿ^º»¼ ºˆ5 » c cˆ¢cµ
 `£càJ `àB¤GS
¼¸Jì4é¹ì
î«ÿ^±ÿ^(ü™ŠRO The type returned by [`set_logger`] if [`set_logger`] has already been called.ÁìŠúüðŠ&ÉëtÚ‹Ï8PæÊäG^¨ñðñ¬:Ï8(‚5¬:Ï8ïï
ðé‹ïï¬:…m…mIÏ8óÀcó…m…m½¾¿ ½Ï8 ¾ c cˆ¢cµ
 `£càJ `àB¤GS
¿¸Jò>Ç‹ò
ó…m±…muüôZW The type returned by [`from_str`] when the string doesn't match any of the log levels.ÁÏŽúüÓŽXU [`from_str`]: https://doc.rust-lang.org/std/str/trait.FromStr.html#tymethod.from_strÁ99×ÇSËõö¬:›9u‚5¬:›9ôô
õŽôô¬:„n„nJ›9øÀcø„n„nÀÁ À›9 Á c cˆ¢cµ
 `£càJ `àB¤GS
¸J÷÷
ø„n±„nåoåoK9åoåoK›9û·ßûåoåoÃÄ Ã›9 Ä›9úú
ûåo¹
åo\p\pLý\p\p\pÅ Å›9¬:üü
ý\p¼¢äô The global logger proxy.Ád­¼:þKÁÿmÑ7VÿQ(þþ¼:¿q¿qM¼:Àc¿q¿qÆÇÈ Æ¼: Ç c cˆ¢cµ
 `£càJ `àB¤GS
ȸJ
¿q±¿qázB “•zBâzB ¶–zBÕázBázB ášzBLëšzB¿ßzBÒÞzBËØzBzB³ÕzB ‘¸zBzB ›¹zBzB™ÓzB ؽzBLâ½zBüÑzBzBzBôÇzBÇzB¦ÚzBÐÚzBãÆzB îÚzBÆÛzBzB åÛzBÕÜzBÖÅzB üÜzBóÝzBzB ©ÞzB»ÃzBzB¦ÂzBÂzBzBzB•¿zB¡¾zB¾zB»zBzBzBϸzB&¸zBzB̶zBzB€µzBí´zBŸ©zBº³zBzB±±zB±zB°zB‚ÂzBzB âÇzBDãÇzBzB ÿÉzB4€ÊzBzBzB ÿÌzBD€ÍzBzB ¾ÍzB4¿ÍzB§zBõÍzB¦zB ·ÎzBD¸ÎzBzB ÏzB4‘ÏzBì¤zB»£zB ðÐzBDñÐzBû¢zB ÎÑzB4ÏÑzB°¢zB’¡zB ·ÓzBD¸ÓzBÒ zB •ÔzB4–ÔzB‡ zBzB ­ŒzBL·ŒzBB‰zB ÓzBLÝzBß‚zB øzBDùzB$zB ÑzB4ÒzBÞzB;€zB Ù
zB Û
zBDø
zB zB zB, zBÕ~zB zB ƒzBD zBý}zBÓ:zB+:zB1:zB¥9zB(9zB.9zB«8zB±8zBé7zBï7zB·#zBb7zBh7zBÛ1zB31zB91zB­0zB00zB60zB³/zB¹/zBñ.zB÷.zB—.zBj.zBp.zB,zB-+zB3+zB@5zB°"zBÕ!zBÛ!zBá<zB¿zBÅzB!HzB;zBžzBàzBæzBIzBOzB±zB·zB zBzBûzBzBýXzBÑzBzBzB~
zB
zBæ zBì zB> zBD zBA zBG zBÿ^zB~ zBzB…mzBezBkzB„nzBÙzBßzBSzBzBzB¿qzB*=GTbqv÷macro.debug.htmlÁ slog-stdlogÁÓ./macro.info.htmlÁ./macro.debug.htmlÁ0https://docs.rs/logcontrol-log/*/logcontrol_log/Ástruct.MetadataBuilder.htmlÁ simplelogÁ¤pretty_env_loggerÁenum.LevelFilter.htmlÁ;https://docs.rs/structured-logger/latest/structured_logger/Á max_level()Á*https://docs.rs/clang_log/latest/clang_logÁmacro.warn.htmlÁsyslogÁé“Óþ“,https://docs.rs/log-to-defmt/*/log_to_defmt/ÁÀõ«”€•fn.set_logger.htmlÁà”©•¤Õƒ––Ö–Ó./macro.warn.htmlÁfn.set_logger_racy.htmlÁþ“ò–Àõ
simple_loggerÁ€•¹—(https://docs.rs/std-logger/*/std_logger/ÁÕƒ–õ spdlog-rsÁ̧֖”˜þ—&https://docs.rs/db_logger/*/db_logger/Áò–log!ÁõƘtrait.Log.htmlÁ¹—À÷ä˜4https://doc.rust-lang.org/std/str/trait.FromStr.htmlÁ¢™õÌ./macro.error.htmlÁ”˜þ—Í™cologÁþ™Ƙ’š*https://docs.rs/call_logger/*/call_logger/ÁÀšä˜fernÁõÙ¢™Ì‰›0https://docs.rs/win_dbg_logger/*/win_dbg_logger/ÁÍ™ log_enabled!Á²›alterable_loggerÁþ™’šMetadata::targetÁÓ›ÀšŽœþ‰›²œ
env_loggerÁ휲›ª,https://docs.rs/flexi_logger/*/flexi_logger/ÁÓ›logforthÁŽœþ*https://docs.rs/android_log/*/android_log/Áª²œâ
log-reloadÁíœMetadata::levelÁ‰žªÀžþªØžprintln!Á☟³Ÿ&https://docs.rs/stderrlog/*/stderrlog/Á‰žlog4rsÁstruct.Record.htmlÁÀžÛ@https://docs.rs/systemd-journal-logger/*/systemd_journal_logger/ÁªØžš¥éŸlog_errÁ˜ŸMetadata::builder().build()Á³Ÿˆ ¹ Ä Û œmacro.trace.htmlÁæ štrace!ÁêéŸÇ¡Ù¡6https://docs.rs/pretty_env_logger/*/pretty_env_logger/Áˆ ftailÁ¹  Ä *https://docs.rs/slog-stdlog/*/slog_stdlog/ÁÛæ ‰!šÀ¢ console_logÁformat_args!("")Áǡ١â¢fn.shutdown_logger_raw.htmlÁê ¢££macro.info.htmlÁ ¢ã‰!debug!ÁÀ¢¤·(https://github.com/drakulix/simplelog.rsÁ¤â¢Ĥê clang_logÁfn.max_level.htmlÁ££õ¤ https://docs.rs/syslog/*/syslog/Áã‰!ן¥logcontrol-logÁ¤¤·»¥fn.set_max_level.htmlÁĤÿ¥¦macro.error.htmlÁõ¤´¦info!Á  Ÿ¥ô¦0https://github.com/borntyping/rust-simple_loggerÁ»¥·~ž§structured-loggerÁÿ¥¦ʧ#https://docs.rs/spdlog-rs/*/spdlog/Á´¦ð§ log-to-defmtÁÇô¦macro.log.htmlÁ¨enum.Level.htmlÁž§fn.logger.htmlÁÚ¨ʧ‚©warn!ÁÇ𧻩Âhttps://docs.rs/colog/*/colog/Áש¨õ©”ª
std-loggerÁÚ¨https://docs.rs/fern/*/fern/Á‚©¹ª db_loggerÁ»©Çmacro.log_enabled.htmlÁÙª3https://docs.rs/alterable_logger/*/alterable_loggerÁשõ©Ÿ”«Â»”ª©«error!ÁpÂc¹ªÖ«(https://docs.rs/env_logger/*/env_logger/Áï«Ùª¬ŸÆ call_loggerÁ”«$https://docs.rs/logforth/*/logforth/Á©«õ¬win_dbg_loggerÁÖ«pŸ¨­(https://docs.rs/log-reload/*/log_reload/Á¬ï«struct.Metadata.htmlÁß­ÏÓÆ §õ­õ¬ª®p7https://doc.rust-lang.org/stable/std/macro.println.htmlÁ­×®¯ flexi_loggerÁÆß­Ï https://docs.rs/log4rs/*/log4rs/Átarget()Áõ­ android_logÁª®Ú¯"https://docs.rs/log_err/*/log_err/Á×®¯¨°Ïɰî°±./macro.trace.htmlÁÀÚ¯±¹ « stderrlogÁ¨°"https://docs.rs/ftail/latest/ftailÁlevel()Áɰî°systemd-journal-loggerÁ±í±*https://docs.rs/console_log/*/console_log/Á±4https://doc.rust-lang.org/std/macro.format_args.htmlÁÀ ²fn.try_set_logger_raw.htmlÁ¹ ´²Û²Ô“ø²””í±Ÿ³Ô³“•À ²˜´¹ “–´²Û²Ô“铸²””«”à”Ÿ³Ô³¤“•©•˜´“––Ï macro@logÁÏÓÏýµýµïy~ØŠ ³ºµßíßÃLðì ãàéæŒ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“í²—6TraceDebugInfoWarnErrorOffBorrowedStaticRecordmetadataargs module_path fileline
RecordBuilder
recordMetadataleveltargetMetadataBuilderSetLoggerErrorParseLevelError GlobalLogger Lkey-value support is experimental and must be enabled using the `kv` featureL¿6~OFFERRORWARNINFODEBUGTRACEJattempted to set a logger after the logging system was already initializedJFattempted to convert a string that doesn't match an existing log levelF·œ·¨·³·¾·Ê·Ô·ã·ð·ý·Œ¸—¸©¸´¸¿¸Ó¸à¸ç¸ö¸‚¹¹¥¹¨¹½¹Ó¹æ¹¹ºÀºɺÓºߺêºõº»»Þ»£¢õkåuxAÈ&ÀvÚ..}ǃª¸àû£Œ¾F
È)µrKá¬Ê‘šedSÞYi6z!Ç[„Xbãp4qÓ WùŠ/h4ô¡}…†Q9ƒ6Æ^åƒÍ¥,þßKµ|¸5ÀʨÂ’33ʦœmE<ëIQ˜§Þªü2³9ÞmN±YEŒ/¯A˵/ G©ÿ§Ú€íF:xŠDu¿Áb<eMAo®-"ÿN‡y­5;ëj|;‚®}°H¥ÀkØC†§ªVø“7ŠÐtbƒÄ_{2ÂìÇ'º-"õždRm•98SAµŽ<SµÖ@õ\+ºªÙÂ~¤ýËëñ#å m‹Õ“$Ÿ¯Lبj¸·á‚Î,Uˆ¿y+…su¾´
OÃáÒì{™*<]~ÁøÚ}þ\Šû(¡`¥;Ç„°À“:}ÐøðûMôä8m¿fÒ†º1>ú'Æ …ýg[¬›MÿVÜ «" 'uZ](ª~E@ÀEmÿeêCçßTKUò-xqMßMÊðŽÉ`,e.9+1Mr” @~/ZKó:ÐÙê2j|Û zp‰òJ~%뾆Èý`P"êü‡W(åQSv\{Yþ ö‡ÌÜJ¼ òÅ:˜&ØÂ•°<“­UGŒKûÅ»Kò6b˜ß'Í@Úgÿ»ÝvHÿvΛ¤|ŽR­7‘ïÖëL¤@|e©Éa㹿-L‘ßÙ}𮫼EæCÁ¾)Ún¢ùj½d|èW<ˆøº9ij%IÌõÛ޼ёéL¿ñ£:è+JpÜŸ2¿x-êË_ºƒ;ÎC"3S.¹·î¾›û£ž¬ëAi´ŠE¹8ñŒý ̤­r|•*•sN(¾Ž8ðsW&CÀÍ÷wÙ7àèÀIÔè=3½!P4ulAˆ,AY… ]¼ú/ÝÈ[èŸoê|&?|`ŠÃ< UÀèv¹ÚVôèŽ(I¾Ìêê2§×
µFyyÔ½žPXwÙ3AÚ V%<Ïø«(5Í…xƒÊL$Ag‹‡ëý8uº¶Í˜ z(\m˜ÿ„[ÍPì"ñ)Ÿí~ÇE^üé©TÀàvQö~†ēݙ¸F`«3˜œ$.O‘,÷ò…öæîJü=h¦¾ŽPJ A¾AMjí¤æf&秊 1§ÏÙÏŠðM4‹ß}èÂXmº/ßï³ÍP±t˜&!ýÛ‹bëwI`eä `X\>O©1"
»–÷ÿ†Î© 3ý®á¥(Õ3tQæåMøø)HŽòY›k,\ᦟ±£@Þ6ç³cÞ99EÃ'í¾`a^ðƒÐr~ÂÚÏñÑ)/´r£BÇ0\úű5ÜXðS/BF»oŸpÐýP¤j,'ðITU½WÌh vcO#YÁ&kuSrY“ò›ä€RŽ“£‹Ë‡7ç*¾¥Ñ´ŽnÛ,—$N)Z<U†ôGվ̰…C0q±êÚÄ8²œ1Œ¨&XŸŸzäУpq
6Á¦k¥
^y“°—Ï7
Úëò 1à~@A¾YGÙ˜÷Ñ__nÅzá‹¿‚ÛŸ%»ªÒ,Â>ë=Ûšpo8Ô-=ö{QÏ­h.“ ØÊÀˆ#)×}Œ×gCsóöžÈýMJ@¯(eͧ Ó4ËÓS'“æÄD†›&ó9æPäè¼gEÎÉÓiea¿gCçæžÍ¥V kš}=0][Æ_ÿuçÆÈFXs V=‰
ܺ*“yMÌ3oÓS;Ÿ¨?waHDºŒSŠ3
—˜§ìŽ®Ñؼ:±vJVOƒƒg!êÂqVn#Ï4ëë„()¨%¯iý‰˜úÿfF)š¡ÝÈÅ(8=8È®”Ë÷ÂþMùz)"“Â^ëxYaf3­áJz3aÞ¹Àûe~¿¾Ù-ùd@4ŽCD-Þ@_Ê_eo”
Uú`JÚ$ Ûƒ/‡!#©yUºÄOG~Ál9®yäGëå—g~ë[!Bic(øv¯NÕ]èQP@@Ç1^#앳¬yüOrrëw¿8Ïõô
¯p-Lyå1À·ùìÅ£
¶…îNÜFpßá$bµ\qËaeºQºaóøãb>Ù'ÞXYRÏQÇñF˜Ž£%ù5ï€f!››ñV9ÌØ…Ÿ«|RÖaWfúñ$¡¢lÍ þ¦:H!™nØë4;^å7Ú’öëRž¯½Ó„V' ]´gÒ¤—ÿy`˜pµzu-ÚpϸGa
€¨úfÜñÏ-ÛB
˜36H_5+º Nzœ¸¸þ‹x1çm‰É@ª+ÃPܯ#=Ú»Ã{” éü„éDű©#‡Ž¤]²žsSt_ž1nCâìR=!X…üNÄ‘â×á>Ñ_Ëz È
ýM9£Gq‡-‰½¾Ç¹­Ã¿ÅSJ¢Dù­ˆ.¯ð6ê)Φ}E¢k˜*9äŠ!–© L+ëkÝÀP2úX¿½ )„ɦÔ5ãÆ00Škyr—»Cüa)Fš› (@q]ô ¡ÑÕ–_UR`z£> *͑ƩI¢©*¨î#ÒóÀ-yè®òèœYРFîüþŠäRÊH ¥š~BF¼X
©Ò­@p)Þž¶-‰~ºð9ߘ&¢HÇßžíè¦t$û8ïËf;wqÀEI³”ÑÇÔÊ2†gžÙ
6#Üåpò¥—*¡m„¹ÇéÈ\Ź!<|—§Ù-›ƒ©ÚÅûÏQÚyÐÒüP~ª£]ת‡åH½ø¹BéžiXŸ5k•:ª£ÍS G«O—;ûӞ׉2¾Æ=ì§Í=0lpI㆘,}¤ÞµÑ®ú̳µXfÆõØàR =2>VyÝãFæÈuîEøÃì#tÉóôröþ;6!7­).'3yÓGŸÁÞŽZˆ%”." ø•GñÑJØAóÛ«düæ¥Å'ÆZžÊœâ£¯ ûïx¶4{Ϩ‡éUU…7Øý½¼k;Æï”³ÚFY»èyMUúQõOÏ{ëÌ~«ygªìÝ1âµÂ»9¤ Tá2).*15/E…<æ|bã€y10~öow½°T#Å%še!ò_Š?+‰õÇåÇϰ}£í˘¡3”
PjߌðS¯Ó¼¿®+P§,)ð„JQCCZ¥Ogýù¸>ñ¨¤‚àF":tÆ+ñ©Çtªø;|®©µÁ
ì/„R,—@££¤ådIu³ßš}ŒÏÀé~äüKåD’Ö“fHc€=‚N×y`÷¤6~ç5ä[_7`ù>C½bOô¶ÊÂÒŽEtevKZ0Õçë®ÊYÐâf,‰Ð%å˜dÕMP~¢gäkE¡ùï®,B<c‡CRð€ãKÏÝ<=r`öÛý˜¼iB˜N[ûËФMíIfZmKa@8/‹åÚ¿ß4ÑæAØ—1ÿ2°ZíiÆ(GÝÕjJsÅÍÀ½
Gêe<+´¯
ßÓ
ÈŠëV>xE(–ÅFa†ApµnîJ¬.Û5ßéš)¡¦Àã¶0ÊÒÜé2pž§à´ÓOã¹ð(ÀŒL›ÎåàR#O½lW¢4F4=äÄž¡?×–ªÂüÛòßÏ!ð?Ô1Â&#CÌ: ½ÒÚ7U–d^¢ëÅ¿VšøAƒÀ:~/¯Û‰ñ¦RQC„†ÑteXS°XkÙœ@ÞØgä/wO:Ù½Jû6[~ïSj1¸dÏà-²
\F¤»õùdŽ3oYçŒ:X?!³Š[úñ<cÄ?pÚDWqÐ?2™Æk_x®]; ÓŒ`¦îë·L¢½…Ézq‰TEeÏ3ñÁ ^×tUäµ=èòTÚgþ€VõrÅÆ"KøÒñ›ûèÇšÓŠåJ5^¦7 |ØPï}t‡W¬è؇<ŒË}gyŠvUØp¬1Gî–ƒC…Ãâåa䯛*Ë"ÜÖ‘Ž’jA”-Qó´YJpžjlΪã„Eõsá–ɰào–dw *LjôtD°sÇÿ*ceb3£à0*$C:°zÑ`hÆv]Tö§ ¾25Mâ¶â ;Õ¨ Oß! ­þ¥óï϶·Õ41#ƒÇu&$éO2¬“6·
âQ<±›²-–Íf¥Hƒ"{9Ãç[IÝåãøhgª6½©ˆSÔ‘Yø\ËÌEØFô¨úÞ•J»¬æ<£Ñäã‡õ¼Å4³oli–µ{‘Ã[ø¿døªn‰Üw|,–³55™Ø5˰}Ø }€Ôî—í•Ú*r€rÍ‚2W2*œÔªs<®ªsöŠÏpÄ+m\±¼CQû&Þ‘:”m)RkÍ[ájc’öÏ6ð¿üìÄàEØßÞ‹nÕ.÷çÝ\Ò“«o¹pP
áµ¥$P”´%wWã¾PÐÅhû,ö !uEÕòëü—}‚^’`°Àüt¦–6}“¿àÁíÊMÙ>È}¥ž­u"Ãy"ØÌõÚHíôÒDZ͸ý~\惲3; ¬ý–‘/Û‚ËÇÍðÿ[!š?s³!|0iÒÆáKþ]~öUꛦö5jc«\´7a¼`Àüö¢Õ±…:o+Ózâ[hpzH¸p8äDú>nxù;.}ˆí´y; *ãjá¢Y^š1wÙÈd×÷“ Üð˜´:žMV)ž—ºW5)‘¹™okçÆ••°on-Òjˆy2àÊ|§.t®¹žÄQq“sX98;ƒ
– SÕ¤Ñï­¼`ÁYC_2jXúíZäS¾ª©³ëø]S¾&܈W4Gb|L²?~¨)N§‡Óáb)ü^Ò¡k$f)Ÿ[8ÂA¨,ï¨Ñ…=H,
Pj]æä/fá Tl§Y; $ðð²Eô$E!¥L° t=<¿$c!“„W¾Þ¡žS $lŒÐíÔ‘€¶'|r“Û®é2¾t|Œ¼v!¸ÏçNÌÖ¥€üì ßÌôiÇ(dlœ¯XKš2E/WüÍ ¯ºÄÀÌ5Ø|?[wÝ
Ú<`M;ËŒ7Z=Aui ôôg2¶üX×3 „ænÈÁf1GÛÓüz YQª„c¢’WOÅ…®Þ•wØñß{jZÅL—ºùÄVUfòKƒîu-Bù¼µ‰€Ñ+Ýð€F>ujG&pk8?µ•8 ¸A[RCåE2+Ý&®¬Rëh@0i$vÂ"€SŠÈ°­mÍ~“îXû±dBa9ScŸX÷÷*X" Ë|#÷ÊI˃UÒ²çí£8ÿF•ÝÓ°2!= žTú¯†™²kûv¬ë|Ñ´+ú‘eŠÕ »ËOÄç=ƒrq‰ÿÃð$iHPŠ»<Ë´±o6 dù˜™¢l]â'm =¼aÉGU çtCA¬wä™×‹
x‘¼u±é3Y<¸K½E\‹Ôl«`YÎ,¸èµ_NeÂÓn(䀆A‡HØõQ>Á+zR³m<Êó»¥jsãê뎙¡b¸âü¥…-忬üWˆæ±rØr¸î„dŽTUú†eú.;FªH4ë·H©3BUÿ[È6“¬dèE M1êФÁÊq±¾œMKìØÿùih
ÀžÖòɃ…£NÝô*ЄÈ8Èá¦ÃâáQño@€ÚŽ^rFRx쀅f7 €l/_/~¥[sØ\èï¿“a8xÞíOÉ~$rzÏˆÕØõ7ZîÅüHFéµ`šï:Âs³+lîÐF=òdºîâ,-“ü#Ô®ª:Åù¯' ¹†ù‰r¢ÊËà§’ÇÌs]µï¯@cÜ`Û\TÖ7"“Êý¯÷`ó+?z]ñI"Ö‰ŸnÑz&$kB8Þ7—üK›§{c*Sa±Ðð´¨Ç°À—›—û«­vÄb–úUA¥6E›hŽÐyl¸yë›NÎÂT}ĉÈ$^êžê:œ¨yŸ»ç$¼élÔÑO¹”-Çm-ÿ_Â,¤&€sL
­ú+=²!ëòv[ƒ$Kë“ÜM’ÀG@‚áÄn*¼V-öÛ8Åe°¯O•à ž»ø
o¼-‰á4'uî iHÎ0¸uUÜ+,ûj–£­WjÀ¥Ε¨EüDÆèsöùè¦öüAB
  ² b
Öw/ÏaˆÃî8¢ 8¿móUD b;Z²åiÀ; õ Ñ!2""j#@$$%Å%&ö&i(
,Œ.f1629y9;:<«<a==§=]>>F?u?.AlAªA¹ABÂBòB|C¬CòC$DÑD EôEâGÂIQJè JÌ@L¿\eCmFvÇ~~lŠŠQõ´ŒãŒWk¡ Ž)ŽŽµŽ>§Çu?=°&ú)I±ÆçOoÚûd˜˜í˜
»Ûvšàš>V³Íô6œiœÁœôœ«-Ó¤ï¤
¥o¥Œ¥¦¥Ù¥1¦d¦A­[­Œ­C&®²-²G²x²Ð²³s³³ϳ>´q´á´µµ¸µkžU·˹幺ˆº®ºâºQ»»ô»(¼˜¼˼m½ ½U¾?¿V¿v¿$ÀjÁÁ¡ÁOÂdÂÂíÂ
ÃyÃñÃÄ"¿úÀ%þ ?³AB)
ð §š3á»áCâ)ã÷ãþîïðõðÃñýþ3þÏþkÿß
 yÚ" *¾ "Ý$<==~>
BÛBCþCGOW_gߌôŒg|Ž¥Ž/¸ (08%:­Â×`ëu˜þ˜Ì·šËšê,œTœßœ½¤Ä¥O¦3­y­²e²î²³¹³\´ÿ´£µ½¹º¦ºÌºo»¼¼½÷¾g¿"ÁÁ`ÂuÂþÂÆÃÄ+++++++++"   

 (         ++++++***** ****** ))  ''(¿øÀ˜ÏøÕÙ˜Ú”Û¹ÜäÝóÞ„ß®ßßߦàòàäáŠâ™äåæèì¶î¯ïñðñÜóöáù¹ý÷þ”ÿ0=o V-'²<
µ
 e 
Ã
ˆ)á _Éíq °2¥Ä{aý®S 
!é!Î"#X$)%Ý%³&E(á+q.®0ñ8§9e<Ã<¿=+?^?ý?JAˆA°A¿A4B CÃC;DèD·E FùGÙIoJ½L¦T¢^âfåojx
ˉó‰ Š;‹·‹ß‹ Œ·ËŽTݫԒr“š“è“]”…”Ò”ú”H•p•¾•æ•_–ý–Ÿ—˜š˜#™ñ™åš@›[›µ›œ
¤ؤô¤¥‘¥ï¥­¢­Ó±²޲峇´ε´¶¹йøºš»á¼¶½Õ¾¿A¿Œ¿Á·Á›Â¤ÃÝÔ„ºÀÀÀÃÀÊÀÑÀØÀÜÀâÀèÀîÀúÀáÊÏÕØœÝÆÞÊÞÐÞÖÞßßÁ߉àÕà©áÆáãæãä±äééìî ï‘ïýïðãðÿð²ñÒñò„òôö¼ö÷ú•ýœý÷ýþ±þÙþMÿvÿêÿÃôû\!BÔ¢íÙkeï")[
ý
ý ¬ \
 Ðq)É[ƒ¾áè3œ+2 ¹gíP>\6U­ßdº( 5 ð Ì!,"£"°"e#;$•$þ$ %À%&ð&c(ÿ+†.a129s9(:5:‡<¥<[=ƒ=¡=W>>A?p?ò@÷@ú@þ@AA
AAAAA"A&A*AbAhA A¦AµABB½BçBíBxC¡C§CîCDÍDœEîEÏGÜGI£I°I½I?JLJâJÈL»\ÿd?mBvÃ~y‡g‰܉ŠŠ‰Š±Š$‹L‹È‹ð‹‰Œ±ŒàŒQh}žŽ‘޲Ž;¤Är+‘:‘8“ƒ“«“ù“!”n”–”ã” Y•Ï•÷•&–F–—–®–Öä–L—l—×—ø—˜ê˜
¸™Ø™ÖšÝš9›S›v›®›Ç›ë›ñ›¾œëœñœ¦ǤΤꤥ‡¥£¥Ð¥Ö¥§5­<­X­…­‰­² ²Ͳú²þ²’³˜³Ƴ̳Þ´ µµ‚µ¯µµµ•¶›¶¿¹ƹ⹺º…º§º«ºÙºߺ»ñ»¼•¼¼ȼ—½½¿:¿S¿s¿žÁ‚ÂêÂ
ÃÆÃîÃÄ»ÄÁÄÉÄÏÄ×ÄÝÄãÄëÄóÄùÄÿÄÅ ÅÅÅÅŇÅÅ•ÅţūųŹÅÁÅÇÅÍÅÓÅÙÅßÅåÅëÅñÅ÷ÅýÅÆ ÆÆÆÆ…ÆÆ“ƙơƩƯƷƿÆÅÆÍÆÓÆÛÆãÆéÆñÆùÆÿÆÇ
ÇÇÇLJÇǕǜǣǩǰǷǽÇÃÇÊÇÑÇØÇßÇæÇíÇóÇúÇÈÈÈÈÈ È€È†ÈŒÈ’È˜ÈžÈ¤ÈªÈ°È¶È¼ÈÂÈÈÈÎÈÔÈÚÈàÈæÈìÈòÈøÈþÈÉ
ÉÉÉɂɈɎɔɚɠɦɬɲɸɾÉÄɽÀÇÀÎÀÕÀßÀåÀëÀôÀ Á•ÏõÕ•Ú‘Û¶ÜáÝÍÞÓÞÛÞß–ßÇߎàÚàÌá ääûäíåèûëžîï—ïñØñóÄóêõÉùšý¡ýßþ|ÿ¸ù%Wí>š'$

ž M ý «
pÉjˆæüG±0ÕY˜ ¬c\åi* ; õ Ñ!¥"¶"j#@$%%Å%&-(É+Y.0Ù89*:M<«<§=?F?ø?õ@ü@AAA AAA A$A(AFAfA„A¤A¬A»ABBëBòB¥C¬C$DÑD EôEÑGâG¡I¥I²IÂIAJWJ¸L£Tž^ßfâogxɉÞ‰‹Š&‹µ‹Ê‹‹Œ¡µŽ>Ç.‘Ï’p“…“æ“û“[”p”Дå”F•[•¼•Ñ•I–ç–‰—û—„˜
Û™Ûšâš>›X›y›³›î›îœôœФ̤Ó¤ï¤
¥Œ¥Ó¥Ù¥­‡­Œ­α
²²ü²³•³ɳϳµµ²µ¸µ˜¶ž¶йĹ˹º©ºܺ⺄»ż˼š½ ½о¿?¿v¿ûÀ¡Á… ÃÈÃľįÄÌÄÔÄÚÄàÄèÄðÄöÄüÄÅÅÅÅńŊŒŚŠŨŰŶžÅÄÅÊÅÐÅÖÅÜÅâÅèÅîÅôÅúÅÆÆ ÆÆÆÆ‚ÆŠÆÆ–ƞƦƬƴƼÆÂÆÊÆÐÆØÆàÆæÆîÆöÆüÆÇ
ÇÇÇ Ç„ÇŒÇ’Ç™Ç Ç¦Ç­Ç´ÇºÇÀÇÇÇÎÇÕÇÜÇãÇêÇðÇ÷ÇþÇÈ ÈÈÈȃȉÈȕțȡȧȭȳȹȿÈÅÈËÈÑÈ×ÈÝÈãÈéÈïÈõÈûÈÉÉ
ÉÉÉÉɅɋɑɗÉɣɩɯɵɻÉÁÉÇÉûތ߶ßçß„à®àúà’á·áâãÍãóã©äÜîúî‚ïæï
ðÒðñð™ñ¿ñòôö÷úŽýáýþ“þËþ/ÿgÿÌÿvÀÛN  ,¾ŒæÃU¯OÙM
à
à  ?
î
³T ¬Eu±Ö%ðþJ×C¸?@i¦ºwJ¨ã2 Ï «!"^"­"I#$€$Ç$%¤%z&Û&U(ñ+.Q1ª19\9Ì92:w<•<@=~==<>z>:?f?^AœAáA¢B×BbCCØCúC´DƒEÝE†GÙGI­IºIJIJÛJÄLÕ‰ý‰Š‚ŠªŠE‹Á‹é‹‚ŒªŒÛŒðŒAcx¡Ž+´[ô7‘Û’|“¤“ò“g”Ü”R•z•È•ð•!–6–‡–©–¾–Ó–5—\—Ç—ç—Ó˜ú˜¡™È™“šðš/›K›f›¤›À›æ›¨œÛœ¤¤ã¤ÿ¤¥¥œ¥À¥¦ù¦­è±·²ê²³µ³´Á´û´Ÿµ…¶¤¹Û¹ÿ¹¢ºȺÔ»¼²¼‡½ܾ.¿L¿c¿
ÀÁŽÁÓÂú«ÃçÃþäÄõކ߰ßáߨàôà…á±áâúâãÀãíã¡äæÏîôîÙïðÅðëðŒñ¹ñûñöó
öÔöúùÔýþýþ†þ¹þ"ÿUÿ¿ÿòÿ\ºÊFþ±ºHƒBÌöE
Ó
Ó  2
á
¦GÿŸ8c©Åyã
öŽ=Êõ;¦2 3c´i<šÂ, Á !"I"§";#$r$²$%%l&Í&O(ë+y.K1y1ý8+9·9,:q<<2=x==.>t>4?`?KA‰AÀA™BÄBYC~CÏCôC§DvEÐEmGÓGçH§I´IöICJÕJ¾L̉ô‰ Š¡Š<‹¸‹à‹¡ŒÕŒêŒ2]ràŽ›ŽõŽ%~®L|Ö1‘Õ’s“›“é“^”†”Ó”û”I•q•¿•ç•0–x–£–¸–Í–&—V—¸—á—Ęô˜’™™š€šçš&›B›]›››·›Ó›œ™œÈœz‘¤Ú¤ö¤¥“¥­¥ ¦ê¦­®Õ±²¨²ײ¢³´²´è´Œµûµ‘¹Ò¹ì¹ºµºÅ»û»Ÿ¼½Ö¾%¿C¿]¿û¿ÁˆÁÄÂôÂ¥ÃÞÃøÃ–Äýގ߸ßé߆à°àüà–á¹áâ ãÑãõã­äàîüî„ïêï ðÖðóðñÁñò€òôö÷ úýåýþ—þÍþ3ÿiÿÐÿÝR¤0ÂêÇY³SÝ Q
ä
ä  C
ò
·X°IwµØ)Šô ŸNÛ GCDk«¼|O­ Ô °!"€"N#$$…$Û$©%&à&W(ó+.S1¯19a9 :y<—<E=€=“=A>|><?h?`AžA§BÙBgC“CÝCüC¹DˆEâE¨GeI!JÝJÆLÚ‰ŠŠ‡Š¯Š"‹J‹Æ‹î‹‡Œ¯ŒÝŒòŒFezôŽ†Ž£Ž -`Ý’©“÷“l”””á”W•Í•õ•#–8–Œ–«–À–Õ–:—^—Ì—é—ؘü˜¦™Ê™•šõš6›P›k›«›Å›è›­œÝœŽ¦¤è¤¥„¥¡¥Â¥¦þ¦­V­w­ê±¼²ì²³·³Æ´ý´¡µ‡¶¦¹à¹º¤ºʺÙ»¼´¼‰½Þ¾5¿Q¿e¿À ÁÁØÂü­ÃìÃÄ©Ä]áåáâRã&äšäåæè=èì·î(ï°ïVðñòñmò'óÝóö#öâùAý»ý]þøþÿ1>šp˜!W.(³=

· f 
Ä
*⃡`Êîr!±3Å|cþ¯T !ê!Ï"ƒ#Y$*%Þ%´&F(â+r.¯0ò8©9f<Ä<À=,?5B
CÄC<DéD¸EFúGÚIpJô¡Š<ࡌ¸ZŽÌŽUÞ¬Õûqç`þ ˜˜$òšœ ¤ð¥{¦­£­Ô±²2³æ³ˆ´,µÏµµ¹Gºùº»?¼â¼·½Ö¾¿¿ÁGÁ¸ÁœÂ>Ã¥ÃÞÃ(Äåá‹âšäåæèì·î°ïñòñÝóöâù¼ýùþ–ÿ3?q"X/)´>
·
¸ g 
Å
Š+ã ¢aËïs"²4Æ}þ¯V !ì!Ð"„#Z$+%ß%µ&F(â+r.¯0ò8ª9f<Ä<À=,?7B CÅC<DéD¸EFýGÛIpJ¸ÌŽUÞ­`–þ– —˜›˜$™ó™¹šÍš’›œ ñ¥¤­²ç³‰´ѵ¶¶úºœ»ä¼¸½ù¾¿¿¸ÁœÂàÞ›ßÌß“àßàÑáä†äåòå èéì£îïœï
ñÝñóÉóïõÁöÎù¦ýäþÿ*\ò
§CpŸ)
¢
£ R 
°
uÎo LÚ^
±hˆên@ ú Ö!»"o#E$%Ê% &2(Î+^.0f1Þ89”9R<°<¬=?K?!BöB°C(DÕD¤EøEæGÆI[Jà‰Š(‹Ì‹Œ¤¸ŽAʘ‡“ý“r”ç”]•Ó•L–ê–Œ—þ—‡˜Þ™|›÷œÜ¥­³Ò³µ»µ¡¶åº‡»μ£½¿y¿¤ÁˆÂÊÃÄLÎÜæ]kyƒ\jt6»çùr q{§äyéóý .8Bðú'1?ISæðúŒòüo´¾É×áïù=HV`nxÊNYg·Â4 ¯"
%4:ÛG¯I¼IKJ9‘•&e'Å()8*Ç0n1Í23¿3U7ˆ8?&@Š@î@ŠA&B3CÌCEÙEpF¼GAIK«K;LÏLcMKN3O PãPqQxZÝZ@[`É`]aìa„bBcd§desf8ghùh¹iAk+l™pPq`rx…zð¼ !»"µ#È%U+­+a,­,¡-•. 0Œ4>5r9ß<HRüRTS¶T3VðWûX£[ö[¾\ƒ]L^ý^ƒmn|oFp½q°|ˆ×&s1EYmc'Ã()6*S+l1Ë23½3Š4†8p9$@ˆ@ì@ˆA$B1CÊCE×EnFºGHK©K9LÍLaMIN1O PáPoQRÛZ>[¡[Ç`[aêab@cd¥deqf6gh÷h·i?k)lmNq»q™xƒz®|îº !¹"³#Æ%“&«+_,«,Ÿ-“.0Å0<5S7Ý<”??IúRRS´T1VîWùXvZô[¼\]J^û^`€nzoDp—p^rd'Ä()7*T+m1Ì23¾34‡8q9%@‰@í@‰A%B2CËCEØEoF»GHKªK:LÎLbMJN2O
PâPpQRÜZ?[¢[È`\aëaƒbAcd¦dŽerf7ghøh¸i@k*lmOq¼qšx„z¯|ï» !º"´#Ç%”&¬+`,¬, -”.0Æ0Ö%=5T7Þ<•?@IûRSSµT2VïWúXwZõ[½\]K^ü^`rn¿‚{oEp˜p_r4›©›3¿>RfzŽBVj~šá#âãÕã=ä±äAå4æ7èAìäîeïîïÚð¡ñ òòTó ôöúnýïý þ<ÿÙÿ§\®:ÌšÑc]ç[
î
î  M
ü
ÁbºS¾3þ ©XåPK%MT²á ½!$"V#,$$±%&è&\(ø+.X1
9:~<J=F>A?BrCèC¾DEçE±GxI*JâJKùŽe?ÑT˜Ý˜«Uš¸œ(¦ §1®Ç²j³.´Ñ´uµLC·ºA»ä»ˆ¼N½E¾À?ÂÝÂoîÄß»ßûß³àÿàj?òìA¿òÀ¯áãëãòîðéð·ñüýþ·þSÿðÿÈôaà óžZ²ÀG"°$<v=‰=r>ö?ªA¹AÂB|CòClj³‹ÓŒèŒ[pŽ™Ž#¬zÍ’n“ä“Y”ΔD•º•.–¡–¶–Ë–T—ß—ò˜À™àšV›Ñ›œÆœˆ¤«¥þ¬̱Õ² ³æ´еˆ¹ê¹º³ºù»¼ξ[¿ùÀ†ÁòžÃöÃz'‰



&
.