Files
boc/aamos-ledger-rust/target/debug/deps/libatomic_waker-0451c32a97f709fe.rlib
T

167 lines
76 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 1050 `
=ð_ZN12atomic_waker11AtomicWaker3new17hfb81f4c6370949f9E_ZN12atomic_waker11AtomicWaker4take17h598d0975ba120724E_ZN4core6option15Option$LT$T$GT$4take17h800b77070637d1d4E_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17h1e4a9838a44f2ef6E_ZN12atomic_waker11AtomicWaker4wake17h98e4c25b2a937f44E_ZN12atomic_waker11AtomicWaker8register17hcd89cee28fa28e81E_ZN4core6result19Result$LT$T$C$E$GT$14unwrap_or_else17h555ccf19fbeb6c07E_ZN4core3ptr44drop_in_place$LT$core..task..wake..Waker$GT$17hbe9c5c609a7498a3E_ZN4core10intrinsics23is_val_statically_known17h53b022fedab08091E_ZN4core3ptr9const_ptr33_$LT$impl$u20$$BP$const$u20$T$GT$13is_aligned_to17h933468602e757dd4E_ZN4core4sync6atomic23atomic_compare_exchange17h1f522a372f10ac62E_ZN62_$LT$atomic_waker..AtomicWaker$u20$as$u20$core..fmt..Debug$GT$3fmt17hdf145f410ec2d52bE_ZN68_$LT$atomic_waker..AtomicWaker$u20$as$u20$core..default..Default$GT$7default17h0e669666531809ccEDW.ref.rust_eh_personality// 74 `
atomic_waker-0451c32a97f709fe.atomic_waker.14b4a2cc3a4097bc-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 14544 `
ELF·P7@@GNUÀrust
5#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁ AtomicUsizeÁ\§»portable-atomicÁÜôí AtomicWakerÁ º wakerÁWAITINGÁ REGISTERINGÁWAKINGÁæ 
AssertSyncÁregisterÁ wakeÁtakeÁ>×






ããWakerÁ䃸 È
4åê邳  ê º
ƒ³ª2G“*¿cýÌìý ýã    ³¿cÌì 0b01Á0b10ÁÌàF
„àF
ŒÄ<ñF 7¬ŽG$žG Û¼¿%
,|ŽG
õ0Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¿ ¢Gü¿Fo   ­G´Gü«E‰ý$ÁE¤]¤]V¦]Á‚]üß3ø¤”&_î0î0
UnsafeCellÁð0»Ì-·}—KEüC£ÄdÄd¢ í¸î0×Å `F4íÃÀFÄÀG<õÁÀGÂÀÌ¿ÀÌÀÀËã Š„Ä
ü§ü>; `futures::task::AtomicWaker` extracted into its own crate.Á?útC # FeaturesÁRúüVGD This crate adds a feature, `portable-atomic`, which uses a polyfillÁüžHE from the [`portable-atomic`] crate in order to provide functionalityÁüçNK to targets without atomics. See the [`README`] for the [`portable-atomic`]Áü¶0- crate for more information on how to use it.ÁçúüëA> [`portable-atomic`]: https://crates.io/crates/portable-atomicÁü­[X [`README`]: https://github.com/taiki-e/portable-atomic/blob/main/README.md#optional-cfgÁahttps://raw.githubusercontent.com/smol-rs/smol/master/assets/images/logo_fullsize_transparent.pngÁ„¡Þ íȸÉî0×È `FÇÃÀFÙÄÀGÇÁÀGÙÂÀÌÇ¿ÀÌÚÀÀËÇã ŠÆ„Ä
´£L¿äÎz}Z]9<ŒŒüÍ´Ùüµ0- A synchronization primitive for task wakeup.ÁæúüêIF Sometimes the task interested in a given event will change over time.Áü´ NK An `AtomicWaker` can coordinate concurrent notifications with the consumerÁüƒ
LI potentially "updating" the underlying task to wake up. This is useful inÁüÐ
JG scenarios where a computation completes in another thread and wants toÁü› PM notify the consumer, but the consumer is in the process of being migrated toÁ¼ì  a new logical task.Á úüˆ PM Consumers should call `register` before checking the result of a computationÁüÙ JG and producers should call `wake` after producing the computation (thisÁü¤
LI differs from the usual `thread::park` pattern). It is also permitted forÁüñ
GD `wake` to be called **before** `register`. This results in a no-op.Á¹úü½QN A single `AtomicWaker` may be reused for any number of calls to `register` orÁ\ `wake`.Áú¬Ÿ # Memory orderingÁµúü¹JG Calling `register` "acquires" all memory "released" by calls to `wake`Áü„GD before the call to `register`. Later calls to `wake` will wake theÁüÌPM registered waker (on contention this wake might be triggered in `register`).Áúü¡OL For concurrent calls to `register` (should be avoided) the ordering is onlyÁüñ$! guaranteed for the winning call.Áú # ExamplesÁ©úü­NK Here is a simple example providing a `Flag` that can be signalled manuallyÁ¬ü when it is ready.Áú< ```Áüž  use futures::future::Future;Áü¿41 use futures::task::{Context, Poll, AtomicWaker};Á¼ô use std::sync::Arc;ÁüŒ&# use std::sync::atomic::AtomicBool;Áü³-* use std::sync::atomic::Ordering::Relaxed;Á´á use std::pin::Pin;Áøú”ü struct Inner {ÁÜ waker: AtomicWaker,ÁÄ« set: AtomicBool,ÁÊú¤Î #[derive(Clone)]Áäã struct Flag(Arc<Inner>);Áú|„ impl Flag {Áô” pub fn new() -> Self {Áü³! Flag(Arc::new(Inner {ÁüÕ*' waker: AtomicWaker::new(),Áü€,) set: AtomicBool::new(false),Á|­ }))ÁÇúôË pub fn signal(&self) {Áüê,) self.0.set.store(true, Relaxed);Áü—  self.0.waker.wake();ÁL¸¼%è"ÈúÔÌ impl Future for Flag {ÁÌç type Output = ();Áúü…IF fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<()> {ÁüÏA> // quick check to avoid registration if already done.Áü‘)& if self.0.set.load(Relaxed) {Áü»'$ return Poll::Ready(());Á
ñúüõ.+ self.0.waker.register(cx.waker());Á¤úü¨KH // Need to check condition **after** `register` to avoid a raceÁüôA> // condition that would result in lost notifications.Áü¶)õ(üà Poll::Ready(())Á¤€ } else {Áì• Poll::PendingÁØ)¼%è"Þý³ª2G“*
”ö  ùüŽ   ® ¤ƒC<‰CÄåC\ëCœÖD4ÜD„óDýÔ«EäŠE Create an `AtomicWaker`.Á¸Eý
´÷ETýEÎìÌ÷E ­0$‰F¥0%·0¥0/·0%Ì™F¿ü©W%üºG:7 Registers the waker to be notified on calls to `wake`.ÁùGúüHKH The new task will take place of any previous tasks that were registeredÁüÑHJG by previous calls to `register`. Any calls to `wake` that happen afterÁü IHE a call to `register` (as defined by the memory ordering rules), willÁüíILI notify the `register` caller's task and deregister the waker from futureÁü¾JIF notifications. Because of this, callers should ensure `register` getsÁüŒKC@ invoked with a new `Waker` **each** time they require a wakeup.ÁÔKúüÜKJG It is safe to call `register` with multiple other threads concurrentlyÁü«LGD calling `wake`. This will result in the `register` caller's currentÁì÷L task being notified once.Á™Múü¡MKH This function is safe to call concurrently, but this is generally a badÁüñMKH idea. Concurrent calls to `register` will attempt to register differentÁüÁNLI tasks to be notified. One of the callers will win and have its task set,Áü’O>; but there is no guarantee as to which caller will succeed.ÁÕOútÝO¹ðOúüøO<9 Here is how `register` is used when implementing a flag.Á¹Pú<ÁPÞüÍP ïüòP4ü«Q&÷ üÖQ-§!´ˆRÝ!£RúŒ«R struct Flag {ÁÜÁR£"ÄáRÇ",þRè"ˆSúÔS…'̯S¨'ÍSúüÕSI×'ü£TKH // Register **before** checking `set` to avoid a race conditionÁüóT74 // that would result in lost notifications.Áü¯U,) self.waker.register(cx.waker());ÁàUúüèU'$ if self.set.load(Relaxed) {Áü”Vì+¤¸V”,ìÑV±,lóVØ)L…W¼%,“Wè"<WÞD°W  ý  ¿ ¹W
$ºWƒ,ÀWÙX<closure_kind>Á<closure_signature>Á<upvars>ÁÊ?”¢~ü”}:7 Calls `wake` on the last `Waker` passed to `register`.ÁÓ}úüÛ}B? If `register` has not been called yet, then this does nothing.Á$©~! Ê? ®~
$¯~ü–‚#ü‘PM Returns the last `Waker` passed to `register`, so that the user can wake it.Áæúîúüö[X Sometimes, just waking the AtomicWaker is not fine grained enough. This allows the userÁüÖ€[X to take the waker and then wake it separately, rather than performing both steps in oneÁ”¶ atomic action.ÁÍúüÕ<9 If a waker has not been registered, this returns `None`.Á$" Ä ¢‚
$£‚ä÷Šý´¤š‹<ý
üÕ‹ýÀcüû‹8þ‹#$%  $ c cˆ¢cµ
 `£cbufÁ `àB¤GS
%Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ê?ŸÈŸÈ ÈErrorÁ O˜éBL ‚Œ
$ƒŒ± ‰ŒüàŒ ýü„ ýE ÇWÚ
âX ŒŒ Œ! ¡(https://crates.io/crates/portable-atomicÁ>https://github.com/taiki-e/portable-atomic/blob/main/README.mdÁ¡READMEÁ÷IÊI¿J÷I¡ÊI¿J¼—@:Ì¢´^*÷B§€p/-ÖLuˆÙüãĽ¯.CóV8óX¿öI¬œaÌP*ÖôfÞ·X ’ƒ,Ì@]Vg÷{”;^ÃènQR"ÒÖŒ]Ã_Óh¶›PÒ€ÜëèƒâªóëÉ+·×»îO/êÜÝGp ÚÊøý›´8ÅÖ^U‘h-n½R²©¼w›·ÉCl_ I
uu(éy+ÂøÜê3‚±Z‘_|S}µLËæŸÌvÏÆ!õ•‹ÍÁøìä7¸4¬¬R-ñÓP]%FEd«ÑÔ+–±q6ãgÙÄ‹ÉâÑ·cqÇê?Dd©eì ×TPÁî¯GuœÖ=BÿéŽãº=ÁU[Ž“DD>·ˆ„ØŠ¤çvS6@m¼uA¤9·þK´,2AfF¹)-úÔÞÂ$[ k jR ¨ÁÙí.ˆíÿ2vúå ã"4#P#|$$Wè¢!èùï"@#ˆ$$Vƒ¬ÅÝñjŽ)­ ª"#h#e* 0 3 : A E K Q W ^ f ¤¼Õéý*éúröß Þ"ù".#J#v$‰$œ$ $¦$«$°$´$»$- 7 > H N T [ c ¨ÁÙíSŠ "þ"P#Ÿ$¤$©$®$²$¹$À$ŠÏåù
z¢õ[ÛÐ Î"ë"&#<#]$„$—$®ÇßórïOÄ Á"å"#6#P$~$$ŒºÓçû÷_ßÔ Ò"í"*#>#a$†$™$k*® «"#i#k*® «"#i#Wvš —"#U#»ø3=HÈš±Ž~§¾«ÂcØ Ö".#e$ÅT}ˆíã"4#|$$ޏ»ÂÆÊÎÒÖÚÞâæøÿ +8<CTXgkvšž¢¦ª®²%&'(ð"A#Ã$)èùõ"F#ˆ$$¿ÄŒÊ?š^äT¿ ® ² ¦ ¼—@:Ì¢´šøZÃ`*”p.!.%.I.9.`.ðODHT &@·Þ^Uh-nìä7¸4¬ ×TPÁî¯{”;^ÃènQ>·ˆ„5Ý!/êÜÝGp Ú
-ÖLuˆÙüãÆ!õ•‹ÍÁøR"ÒÖŒ¼—@:Ì¢´fÞ·X ’ƒ,–±q6ãgÙœaÌP*ÖôÄ‹ÉâÑ·cqÁU[Ž“DD GuœÖ=BÉ+·×»îO _Óh¶›PÒ€
Ì@]Vg÷ËæŸÌvÏÜëèƒâªóë Çê?Dd©eìØŠ¤çvS"^*÷B§€p/
uu(éy+%FEd«ÑÔ+·ÉCl_ IĽ¯.CóV¬R-ñÓP]ÂøÜê3‚±ZÊøý›´8ÅÖ6@m¼uA¤9#·þK´,2$AfF¹)-ú%ÿéŽãº=½R²©¼w‘_|S}µL8óX¿öI¬7V(nÿÿmqÿÿ|a
lz8"ÿÿÿ?ÿÿÿÿ'@{ÿgÿÿuÿv)ÿÿÿ$ÿ+ÿÿ.ÿ-kÿÿ}ÿM&ÿV7V(nÿÿmqÿÿ|a
l^/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-waker-1.1.2/src/lib.rsÁS/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-waker-1.1.2Á^/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-waker-1.1.2/src/lib.rsÁ B`Ëÿ—à'ãzëO4ä\l¨¨»?HIO1B\ {x>)%$"1JOMKQQKMHR KHQP%O!5'."+-
-!
JB*(/LB* 
&NO:ICMKNQPL8QP*MQP4OQMON7PNOJQJG# MNQMP-PLMCKQPL+$8LMQOOQ9O5NO9G!O!!'"%.*
?POMQNHOL"PPQCA %9+2 
NP<1,$"
,F#
>[/MFNO1QQPOS##R #ONCM?)OHI)LT*MVRTT>NNN7RS*FLBBB+@C!%DLPQBP'V
?G+
U``A*OK846C$8G$KQ]
"?!$f” ½ÌªÈal°ò·O„ò1aarch64-unknown-linux-gnuÁþ¦ÈŸä|Ô¥?Ÿ1‰c—Þ atomic_wakerÁ-0451c32a97f709feÁ¼—@:Ì¢´ÐiR²³ÿE&°<< $]<&]&&:&LL>>>W::>&"&&""W(>  &L :>*ƒ
rust-end-file.note.gnu.property.shstrtab.strtab.symtab.rmeta@ .`š6&7775/0 0 0 0 644 61472 `
ELF· ×@@bÿÑý{©ýÑèùઔé@ùè@ùàùê@ùê ù¿ø¨ƒøê @ù* ù?ù(ùý{C©ÿ‘À_ÖÿÃÑý{©ýƒ‘àù ƒø@‘H€Rá*b€R”à ù ø µà@ù ƒø”è@ùàùáùA‘A€’"€R è ñ@T࣠ƒøè¸úÿÿé@ùè@ùéùèùà@ùá@ùý{F©ÿÑÀ” ƒ^ø”è 
ñTÿùóÿÿè  ñ€ÿÿT‘H €Rá*B”ÿœTT t¸ÿÑý{©ýÑèªèù”àùá ùèñ蟚6à@ùá @ù ø¡ƒøý{C©ÿ‘À_ÖÿÑý{©ýÑà ùáùèªè;ùá?ùÿ¿9ÿ»9@‘áª(€Râ*D€Rã*B”àù ø@´è ñÀTèñ@
T‘è @ù骩ƒøñ蟚¨7
à”Fá@ùé @ù裑éù¨ƒøà”`7à”è @ù)€Ré¿ùáù¨øè A‘(€Ráªc€RD€R”à#ùá'ùè#@ùh7'è¿A9H 7[à é @ùÿ¿@ùè@ù*ù(ùôÿÿ øè*¨ƒ¸öÿÿé @ùÿ¿@ùè@ù*ù(ùÿ¿9Ûÿÿé'@ùèC‘é+ù¨ø ‘¨ƒøè+@ù) ëàTý{O©ÿ‘À_Öä@ù¿s*áCB‘㪥”à @ù誨ƒø” ø¡ƒø¨ñ蟚¨7”è @ùª^ø©ƒ^øªø©ƒøê/ùé3ù)€Ré»9A‘áªb€Rè»A9è7  øè*¨ƒ¸úÿÿÿ»9à/@ùá3@ùÿ»9Êÿÿ ”àc”üÿÿ”àÔøÿÿè
ñÀ÷ÿT‘è€Rá*B”ÿœ-'´´Ü¼˜Ô¤°¼0ÿCÑàùÿC‘À_ÖÿCÑà?*ÿC‘À_ÖÿÑý{©ýÑà ùèªèù@ùèùèù@’ñTè@ùé @ù)@ùéù©ø©ƒøýAÓèù¨ø  ‘)@ùéùèùã@ùà@ù(€Râªè@ùé@ù©ƒø¨øéùèù¿ó8¨ó_8H7 ‘)@ùéùèùà@ùá@ùý{G©ÿ‘À_ÖÿCÑèªèùáù(øÓ@²ÿC‘À_ÖÿƒÑý{©ýC‘èªèùàC‘á ùâù¨ƒø”àùáùèñ蟚¨6è@ùá@ùâ@ù¡ø¢ƒø
?ÖàŸ9 è@ùâ @ùã”àŸ9èŸ@9ý{E©ÿƒ‘À_ÖÿƒÑý{©ýC‘èªèù”ý{A©ÿƒ‘À_ÖÿƒÑý{©ýC‘àùèªèùñ蟚¨µý{A©ÿƒ‘À_Öà”ûÿÿÿCÑý{©ý‘àùá ùàùáù X 80. Ã¼¨Ã^¸qATè@ùé @ù)ñ êàŸý{D©ÿC‘À‘誨øH€R¨ƒø¨
€Rá*B”ÿÃÑý{©ýƒ‘èªèùáùâ ù£ã8¤ó8”ý{B©ÿÑÀ_ÖÿCÑàùàùà@ùÿC‘À_ÖÿCÑý{©ý‘àùáùèªèù¡ƒø¢s8 ƒøè*@’è ùè´è ñTè  ñ Tè 
ñ@Tá@ùà”àùá@ùà”àùá@ùà”àù á@ùà”àùá@ùà”àùà@ùý{D©ÿC‘À_ÖÿCÑý{©ý‘àùáùèªèù¡ƒø¢s8 ƒøè*@’è ùè´è ñTè  ñ Tè 
ñ@Tá@ùà”àùá@ùà”àùá@ùà”àù á@ùà”àùá@ùà”àùà@ùý{D©ÿC‘À_ÖÿCÑý{©ý‘àùáùèªèù¡ƒø¢s8 ƒøè*@’è ùè´è ñ@Tè  ñ Tè 
ñTá@ù递 Ê”àùá@ù递 Ê”àùá@ù递 Ê”àùá@ù递 Ê”àùá@ù递 Ê”àùà@ùý{D©ÿC‘À_ÖÿƒÑý{
©ýC‘àùá#ùâ'ùäW¹ ø¡ƒø¢ø£ã8¤ó*@’è/ùè´è/@ùñ Tè/@ù ñ`Tè/@ù
ñ T9éW@¹è *@’èù ´è ñÀ Tèñ€
T9éW@¹è *@’èù( ´è ñà Tèñ 
T+éW@¹è *@’èù(´è ñàTèñ TéW@¹è *@’èù(´è ñàTèñ TéW@¹è *@’è ù(´è  ñàTè ñ TéW@¹è *@’ñàà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8à#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8 à#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8¨Zøèù¨ø¨ƒZ8)€R 
©ó7yà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8îÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8äÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8Úÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8Ðÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8Æÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8¼ÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8²ÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8¨ÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8žÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8”ÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8Šÿÿà#@ùâ@ùá'@ù”è#@ùë蟠ø¨ƒ8€ÿÿè@ùè7ù(€Rè3ùè@ùè7ùÿ3ùà3@ùá7@ùý{M©ÿƒ‘À‘誨øˆ€R¨ƒø(
€Rá*B‘誨ø¨€R¨ƒøh€Rá*B”ÿƒÑý{©ýC‘èªèù?Öý{A©ÿƒ‘À_ÖÿÃÑý{©ýƒ‘èªàªéªéùáªáùéªé ùáªáù?Öý{B©ÿÑÀ_ÖÿCÑèªèùèªèù@ùèù @ùéùéù)@ùé#ù*@ùê ùê'ù ë€Tÿ9è@ùé  ëèŸè9è@9ÿC‘À_ÖÿÑý{©ýÑàùèªèùáªã ùäùàùèù¡ø£ƒø¿s8 ƒø”à'¹”è'@¹h7è@ùhµè@ùÈ´ã‘誨øè"€R¨ƒøèE€Rá*€’èùéð’ Éšèùè @ùé ëiTçÿÿý{G©ÿ‘À_Öÿœ <HÿCÑéªà ªàù @ù!@ù?ù(ùÿC‘À_ÖÿÑý{©ýÑàùá ùè@ùè6à @ù ƒø”àùè @ùèùà@ùý{C©ÿ‘À_ÖÿÃÑý{©ýƒ‘áùà ù¡ƒø‘h€Rá*”âªà@ùâùâªá”ý{B©ÿÑÀ_ÖÿƒÑý{©ýC‘èªèù?Öý{A©ÿƒ‘À_ÖÿƒÑý{©ýC‘èªèù
?Öý{A©ÿƒ‘À_Öý{¿©ý”ý{Á¨À_Öassertion failed: state == REGISTERING || state == REGISTERING | WAKING || state == WAKING/home/bernt/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-waker-1.1.2/src/lib.rs/rustc/ac68faa20c58cbccd01ee7208bf3b6e93a7d7f96/library/core/src/fmt/mod.rs/rustc/ac68faa20c58cbccd01ee7208bf3b6e93a7d7f96/library/core/src/ptr/const_ptr.rs/rustc/ac68faa20c58cbccd01ee7208bf3b6e93a7d7f96/library/core/src/sync/atomic.rs^¥^!^H^LDassertion failed: state == REGISTERING || state == REGISTERING | WAKING^yKq*is_aligned_to: align is not a power-of-twoQ^
there is no such thing as a release failure orderingO¹there is no such thing as an acquire-release failure orderingO¸unsafe 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.AtomicWaker%U9Im ˆ( 2 ˆ/I
Iˆ8 2 .n: ;I< I
.n: ;I : ;I .@n: ;I
: ;I U4ˆ: ;I3
Iˆ8 4 
Iˆ8 .n: ;<.@n: ;.n: ; I : ; I: ;I1X YW 1 2 ˆ.@n: ; : ; I1UX Y W 41!1X Y W " 1# $4ˆ: ; I%.n: ; I<&4ˆ: ; I' ($> ).n: ; I<?*.n: ;I<?+.n: ;<?, ˆ-.@n: ;I?..@n: ;I?/I30I12.@G3.@G4.G 5 ˆ6I374ˆ: ;I8I9!I"
7 :$ > ;1UX YW <1X YW »@@oð ó
¹ o o ] ] D
o H ¹ m o ¹ o ] Ý o ¹ o ] o ¹ o ]oo
Loo LH Lo L]
#ooo #H #o #]
ooo H o ] ´m 
‘° H
‘¸ ƒo
@ o
N ]
‘O ]‘P o‘_ ²o``QQ zQ^vaaaõaa Q °kQa Èv%7ëëëµÊ 4 aÞ² 4 4} ž 0mfa
f40mž
ž±Äää>@½@S
íŠ}tG@@uS
G@ S o$m * *aDm * *zQ ˆm
\²

\}

\oÇ 
] Ø «  è » Š
H`o
H`o
H`o
w ²Ö w  w ëà oë ²
ë ²²âgõ úõ ú/¥ ë" / vR  `PŠÚ P
} ¥äŠŠ
@>
e
ŠŠŠš
v¾
å
ooooooPoooþ
þ °|)@|S|oìmD08DoPDoXDo
ˆ
h


|

·
 

 8X$"/ (0#$p  To
ç² çoa3
%¸ñ a aaa
QQ Èw}xo&
ƒ ² ƒ } ƒ o†²†}†o“²“o“o'&”o()àL*Q Ý+ Ý+ Ý 4 o!o!þ
!o,-Pmµ
µÝ
‘xµ}.m¯L((( }1 }2Pml/L3m{
‘XÝ(Q`o3Xm
Ý#8pa/Q/4+Q /5Ûo6@(5Ûoa õQ'7÷a/a3ì
ðÝ
ø4no**‘P£À7
ÐCo‘°HŠ‘¸HŠ#GH4 4LD`ØLa/@/m0
 }(5¯¿,8o:/
 gú'7mo5Ûo5Ûo3
0ú¤0
"˜ 8;S q*Xl `w !q ‘X‹‘`—B œXd#4 õ3 
/ë3¤
hP}
P¥#HpQë(/‡34
 ó ¹
 ô o
 õ o
~ ö ]
 ÷ ]3
 D
o/o ¹3ä
 m ¹
h m o
w m ]U o + [ ¬ o ‘x™‘h¥‘w± ¹3äm
 Ý ¹
h Ý o
w Ý ]
 ß )  ¾¬ ß ‘xá‘hí‘wù ¹3 m:
 ¹
h o
‘w ]¿ * Å Ô x)h5wA30mu
Ê44