rust |Ä#rustc 1.98.1 (48a229cea 2026-09-01)Á‰m6GÞ­n6ÇèÆ2-64f5f36fb0927694ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁ«ª1Úë• ¢›ºXÝÓrŽ*-1ad4f876c768bda9Á±ò‰<å%Z‰>¸64‡ËV`-2d2ab9fb0fe1def5Á»ÄóG Øg{ë(3íi«F×-06449a08aaab5e30Árustc_std_workspace_coreÁ€û{ù`ä"Ei¥€ÞÏ%G-cb0d4d77988d81b5Áó"Æ)ΉÉðÛÕpEÍ—E-3ec41d3a5a80a4a4Á miniz_oxideÁÐ8°ø‚ðbž Lƨ°J-e44eaef1807e5fc0Áadler2Á9lí©yA6P/D$UBŸ-dca52f01a59c33e7Á hashbrownÁ™¸ÈXó®÷ …ùý{e-143c77bb957d9940Árustc_std_workspace_allocÁð…¨À �¶÷Üúò·_z%í-145a318e0772276cÁ std_detectÁK(ƒ0ì*ãÛ8²D?-f99feda5ce9e492aÁrustc_demangleÁµ%jŽeårVŠÕÓ•-cfd0ab54bb33760eÁcfg_ifÁÍ}λ—©ŒÕž§C•×o-360da4ba13154744Á addr2lineÁ‹c²ŽúY\ÈGÞö÷ö--09755979c57b7e64ÁgimliÁ¢±QÄÍ`ª§DÞåù¬y-9a1fede77fbbf2f0ÁobjectÁö‚F λâËvú.zËí-7ff85ea729a864ffÁmemchrÁž˜]²1<õ¶=U�ý�Où-0e3477fb2664a277Á  ÿŽ—jl‹®¾To–K™G-549498e8b2e4d924Á»9|:×H”©~´CZÊG-65e1a9c648e56d89ÁSOCKADDR_IN6_0ÁtøÉ<ÁtestsÁ,Ð{Í$Å{U FromRawSocketÁl³É<ŽU IntoRawSocketÁlÂÉ "Uset_common_accept_flagsÁ¼Úó ÅandroidÁ¬åñÅ dragonflyÁ¼€òÅfreebsdÁ¬�òÅfuchsiaÁ¬¸òÅillumosÁ¬ÓòÅlinuxÁœîòÅnetbsdÁ¤‡óÅopenbsdÁ¬¡óÅcygwinÁ¤¼óüßñôüÛñù± AsRawSocketÁ\øÉ<Ó±AsSocketÁD…ɱ§l�É.0ÉIPPROTO_DIVERTÁtŸÅ¶ ¬ÙÅ— ¬ðüØ.É SO_LINGERÁLŠ2ÅiosÁŒå0ÅvisionosÁ´ü0ÅmacosÁœ˜1ÅtvosÁ”±1ÅwatchosÁ¬É1üß0‚ÉIPV6_ADD_MEMBERSHIPÁœ¶A Å  ¼˜>Ŷ ¬µ>ÅhaikuÁœÐ>ÅÞ ¬é>Åå Œ„?Åô ´›?ň œ·?Å„ ¤Ð?Å— ¬ê?ÅsolarisÁ¬…@Å™ ” @Å© ¬¸@ÅwasiÁ”×@¸p1ÁŒï@œî@üÖ@,ü’>óÉIPV6_DROP_MEMBERSHIPÁ¤ßA Å  íŶ ëÅú äÅÞ âÅå àÅô Þň ÜÅ„ ÚÅ— ØÅÓ ÏÅ™ ÍÅ© ËŀŸ‘Á¿½º¼ÉKEEPALIVE_TIMEÁt•JÅå Œ­HÅô ´ÄHň œàHÅntoÁŒýH¸nto70Á¤”I¸nto71Á¤ªIü“I,üüHEÅ™ ”ÇIÅ© ¬ßIü§HÐÉ MAX_BUF_LENÁ\÷VÅå ŒØUÅô ´ïUň œ‹VÅ™ ”¤VÅ© ¬¼VÅ« ¤×VüÒUœÉIovLenÁ4®`Åò œæZ¸muslÁœ”[¸ohosÁœµ[¸uclibcÁ¬Ú[Æ32ÁÜñ[üÙ[4ü†[‘üÜZÁÅaixÁŒ£\Å  ¼º\Å emscriptenÁÄ×\Ŷ ¬õ\ÅÊ ¬�]Åú œ«]ÅhurdÁ”Ä]ÅÞ ¬Ü]Åå Œ÷]Åô ´Ž^ň œª^Å„ ¤Ã^Å¥ŒÝ^Å— ¬ô^ÅÓ ¬�_Å™ ”ª_Å© ¬Â_ÅespidfÁ¤Ý_ÅvitaÁ”÷_Å« ¤�`üÓZÓÉå4ß`ÅnuttxÁœÄ`ɽ \�‹ÅË”ëŠÉset_nonblockingÁ|‘�Å˔   impl_debugÁ”sockaddrÁ      socklen_tÁ sa_family_tÁSockAddrStorageÁ(storageÁ*zeroedÁ*à*view_asÁ-�/ñ1˜ 1try_initÁ3‚3�3 STORAGE_SIZEÁ3 1Ì8Œ1 set_lengthÁ1familyÁ1domainÁ1¶1as_ptrÁ1 as_storageÁ1is_ipv4Á1is_ipv6Á1is_unixÁ1 as_socketÁ1as_socket_ipv4Á1as_socket_ipv6Á1as_bytesÁG”I”K”MñO• RÆS„socketÁUUUUUUUUUU U U U U UUUUUUUUUUUUUUUUUUU U!U"USocketÁyinnerÁU{from_rawÁ{as_rawÁ{into_rawÁ{˜ {new_rawÁ€ {pairÁ{pair_rawÁƒ ƒ {bindÁ{connectÁ{connect_timeoutÁ{listenÁ{acceptÁ{ accept_rawÁ‹ { local_addrÁ{ peer_addrÁ{!{ try_cloneÁ{½ {¡{shutdownÁ{recvÁ{recv_out_of_bandÁ{recv_with_flagsÁ{ recv_vectoredÁ{recv_vectored_with_flagsÁ{peekÁ{ recv_fromÁ{recv_from_with_flagsÁ{recv_from_vectoredÁ{recv_from_vectored_with_flagsÁ{ peek_fromÁ{ peek_senderÁ{recvmsgÁ{sendÁ{send_with_flagsÁ{ send_vectoredÁ{send_vectored_with_flagsÁ{send_out_of_bandÁ{send_toÁ{send_to_with_flagsÁ{send_to_vectoredÁ{send_to_vectored_with_flagsÁ{sendmsgÁUset_common_typeÁUset_common_flagsÁU­ broadcastÁ® ­ set_broadcastÁ­ take_errorÁ­ keepaliveÁ² ­ set_keepaliveÁ­lingerÁ­ set_lingerÁ­out_of_band_inlineÁ· ­set_out_of_band_inlineÁ­passcredÁº ­ set_passcredÁ­priorityÁ½ ­ set_priorityÁ­recv_buffer_sizeÁÀ ­set_recv_buffer_sizeÁ­ read_timeoutÁ­set_read_timeoutÁ­ reuse_addressÁÅ ­set_reuse_addressÁ­send_buffer_sizeÁÈ ­set_send_buffer_sizeÁ­ write_timeoutÁ­set_write_timeoutÁU from_lingerÁU into_lingerÁUÏheader_included_v4ÁÐ Ïset_header_included_v4ÁÏip_transparent_v4ÁÓ Ïset_ip_transparent_v4ÁÏjoin_multicast_v4ÁÏleave_multicast_v4ÁÏjoin_multicast_v4_nÁÏleave_multicast_v4_nÁÏ join_ssm_v4ÁÏ leave_ssm_v4ÁÏmulticast_all_v4ÁÜ Ïset_multicast_all_v4ÁÏmulticast_if_v4ÁÏset_multicast_if_v4ÁÏmulticast_loop_v4Áá Ïset_multicast_loop_v4ÁÏmulticast_ttl_v4Áä Ïset_multicast_ttl_v4ÁÏttl_v4Áç Ï set_ttl_v4ÁÏ set_tos_v4ÁÏtos_v4Áë Ïset_recv_tos_v4ÁÏ recv_tos_v4Áî Ïoriginal_dst_v4ÁUñheader_included_v6Áò ñset_header_included_v6Áñip_transparent_v6Áõ ñset_ip_transparent_v6Áñjoin_multicast_v6Áñleave_multicast_v6Áñmulticast_hops_v6Áú ñset_multicast_hops_v6Áñmulticast_all_v6Áý ñset_multicast_all_v6Áñmulticast_if_v6Á€ ñset_multicast_if_v6Áñmulticast_loop_v6Áƒ ñset_multicast_loop_v6Áñunicast_hops_v6Á† ñset_unicast_hops_v6Áñonly_v6Á‰ ñ set_only_v6Áñrecv_tclass_v6ÁŒ ñset_recv_tclass_v6Áñrecv_hoplimit_v6Á� ñset_recv_hoplimit_v6Áñoriginal_dst_v6ÁU“tcp_keepalive_timeÁ“tcp_keepalive_intervalÁ• “tcp_keepalive_retriesÁ— “set_tcp_keepaliveÁ“ tcp_nodelayÁš “set_tcp_nodelayÁU�readÁ� read_vectoredÁŸ U¡'aÁ¡¢2¡®2¤ U¦writeÁ¦write_vectoredÁ¦flushÁUªÌ2ªï2ªü2ª’3U ¯ñsockrefÁ±±±±±±±±±±SockRefÁ»'sÁ»Ú» _lifetimeÁ±¿™4¿ë¿Ã±Ã™4Ã�Ô±ÇñsysÁÉÉÉÉÉÉÉÉÉÉ É É É É ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ É!É"É#É$É%É&É'É(É)É*É+É,É-É.É/É0É1É2É3É4É5É6É7É8É9É:É;É<É=É>É?É@ÉAÉBÉCÉDÉEÉFÉGÉHÉIÉJÉKÉLÉMÉNÉOÉPÉQÉRÉSÉTÉUÉVÉWÉXÉYÉZÉ[É\É]É^É_É`ÉaÉbÉcÉdÉeÉfÉgÉhÉiÉjÉkÉlÉmÉnÉoÉpÉqÉrÉsÉtÉuÉvÉwÉxÉyÉzÉ{É|É}É~ÉÉ€É�ÉXÉ‚ÉsyscallÁÉÿÉTCP_CA_NAME_MAXÁÉåÉÒPACKETÁÒVSOCKÁÉÕ½ ÕcloexecÁÕ_cloexecÁÉÙis_end_of_recordÁÙis_out_of_bandÁÙ is_confirmÁÙ is_dontrouteÁÉÞñÉMaybeUninitSliceÁàÌ2à–à«4ÉäÌ2ÉæÌ2ÉèÌ2è˜ èas_sliceÁè as_mut_sliceÁÉoffset_of_pathÁÉ unix_sockaddrÁɃÉset_msghdr_nameÁÉset_msghdr_iovÁÉset_msghdr_controlÁÉset_msghdr_flagsÁÉ msghdr_flagsÁÉmsghdr_control_lenÁÉövsockÁöas_vsock_addressÁÉù is_unnamedÁú ùas_sockaddr_unÁü ùpath_lenÁù path_bytesÁùas_unixÁù as_pathnameÁ� ‚ ùas_abstract_namespaceÁ„ … ÉóÉ RawSocketÁÉsocket_from_rawÁÉ socket_as_rawÁÉsocket_into_rawÁÉÚÉ socketpairÁ� � Éù� É„’ É poll_connectÁɨ• ɵ— É getsocknameÁ™ ™ É getpeernameÁœ œ Éÿɽ É¡É�¢ ɬ¤ É¢¦ § Éš © ÉäÉͬ ɬ ® ɺ ° ÉÛ É¥!³ ÉÌ!É…"¶ É timeout_optÁÉ from_timevalÁÉset_timeout_optÁÉ into_timevalÁÉ÷0¼ ÉÖ1É into_secsÁÉ fcntl_getÁÉ fcntl_addÁÁ É fcntl_removeÁÃ É getsockoptÁÅ�Å É setsockoptÁÈ�È É to_in_addrÁÉ from_in_addrÁÉ to_in6_addrÁÉ from_in6_addrÁÉto_mreqnÁÉä+Ð Ð ÉÜ0Ó Ó É Öaccept4ÁÖ_accept4ÁØ Ö set_cloexecÁÖ _set_cloexecÁÖtcp_mssÁÜ Ö set_tcp_mssÁÖ is_listenerÁß ÖèÖprotocolÁâ ÖmarkÁä Öset_markÁÖtcp_corkÁç Ö set_tcp_corkÁÖ tcp_quickackÁê Öset_tcp_quickackÁÖtcp_thin_linear_timeoutsÁí Öset_tcp_thin_linear_timeoutsÁÖtcp_notsent_lowatÁð Öset_tcp_notsent_lowatÁÖdeviceÁó Ö bind_deviceÁõ Öbind_device_by_index_v4ÁÖbind_device_by_index_v6ÁÖdevice_index_v4ÁÖdevice_index_v6ÁÖ cpu_affinityÁû Öset_cpu_affinityÁÖ reuse_portÁþ Öset_reuse_portÁÖ freebind_v4Á� Öset_freebind_v4ÁÖ freebind_v6Á„ Öset_freebind_v6ÁÖsendfileÁ‡‚Ö _sendfileÁ‰ Öset_tcp_user_timeoutÁ‹ Ötcp_user_timeoutÁ� Ö attach_filterÁÖ detach_filterÁÖcookieÁÖ tclass_v6Á’ Ö set_tclass_v6ÁÖtcp_congestionÁ• • • Öset_tcp_congestionÁ™ Öset_dccp_serviceÁÖ dccp_serviceÁÖ set_dccp_ccidÁÖ dccp_tx_ccidÁÖ dccp_xx_ccidÁÖset_dccp_server_timewaitÁÖdccp_server_timewaitÁÖset_dccp_send_cscovÁÖdccp_send_cscovÁÖset_dccp_recv_cscovÁÖdccp_recv_cscovÁÖset_dccp_qpolicy_txqlenÁÖdccp_qpolicy_txqlenÁÖdccp_available_ccidsÁ¨Š¨ Ö dccp_cur_mpsÁÖ busy_pollÁÖ set_busy_pollÁÉ SockFilterÁ®filterÁÉ °˜ É ²ñÉ ´Š´ë´ÃÉ ¸as_fdÁɺ as_raw_fdÁɼ”ɾ into_raw_fdÁÉÀ”É from_raw_fdÁ   ÏIPV4ÁÏIPV6ÁÏUNIXÁÏ for_addressÁÔ”Ö”ØSTREAMÁØDGRAMÁØDCCPÁØ SEQPACKETÁØRAWÁÞ”à”âICMPV4ÁâICMPV6ÁâTCPÁâUDPÁâMPTCPÁâçTâSCTPÁâUDPLITEÁë”í” ï is_truncatedÁŽ<ñ ñÌ2ñó õÌ2õñ øÌ2ø˜  ûÌ2ûëûà ÿÌ2ÿÅ‚˜ ‚ with_timeÁ‚ with_intervalÁ‚ with_retriesÁMsgHdrÁ‡'addrÁ‡'bufsÁ‡'controlÁ‡€‡ _lifetimesÁ�„X�‘X�žX�˜ � with_addrÁ� with_buffersÁ� with_controlÁ� with_flagsÁ–'nameÁ–‘X–žX–ñ MsgHdrMutÁœ„Xœ‘XœžXœ€œ¶X¢„X¢‘X¢žX¢˜ ¢ìX¢ýX¢‘Y¢flagsÁ¢ control_lenÁ¬»Y¬‘X¬žX¬ñ man_linksÁSockAddrÁ³·³¶ ¶ŽUInterfaceIndexOrAddressÁ¸IndexÁ¹ ¹ó¸AddressÁ¼ ¼óU ¿ñU U U ÃŽUÅ”UÇ”UÉ”UË”UÍ”UÏ”ÉÑñÉÓñÉÕñÉ CcidEndpointsÁ×Š× endpointsÁÙ ×lengthÁÉÜŠÜ ÜñÉà”Éâ”Éä”Éæ”Éè”Éê”DomainÁì ìóñŽóÝö•øø øóýŽÿÝ ‚•ProtocolÁ„ „ó!"#‰Ž$‹Ý%&Ž• RecvFlagsÁ� �ó'()•Ž*—Ý+,š• TcpKeepaliveÁœÛœintervalÁœretriesÁ- ñ.¢Ž,8-8080808·8:8;8<8=8>8@8A8B8C8D8E8F8N8N8N8P8P8S8S8}8†8†8‡8‡8ˆ8ˆ8‰8Š8‹8�8Ž8�8�8‘8’8“8”8”8•8•8–8–8—8—8—8˜8˜8˜8™8™8š8š8›8›8œ8œ8œ8�8�8�8ž8ž8Ÿ8 8 8 8 8 8¡8¡8¢8¢8£8£8£8¤8¤8¤8¥8¥8¦8¦8¦8§8§8§8¨8¨8¨8¨8©8©8©8©8ª8ª8ª8ª8ª8À8À8À8Ä8®8°8±8²8´8µ8¶8·8¹8º8¼8½8¿8À8Â8Ã8Ä8Å8Ç8È8Ê8Ë8Ì8Ð8Ò8Ó8Õ8Ö8Ö8Ö8×8×8×8Ø8Ø8Ø8Ù8Ù8Ù8Ú8Ú8Ú8Ú8Û8Û8Û8Û8Ü8Þ8ß8à8à8á8ã8ä8æ8ç8é8ê8ë8í8î8ð8ò8ô8õ8÷8ø8ø8ù8ù8ú8ü8ý8ÿ8€8‚8ƒ8…8†8ˆ8‰8‹8Œ8Ž8�8‘8’8”8•8—8™8™8š8œ8ž8ž8Ÿ8Ÿ8Ÿ8£8£8¤8¤8¤8§8§8¨8¨8¨8©8¬8¬8­8­8­8®8°8°8°8Â8Ç8È8È8È8Ò8Ò8Ò8Ô8Ô8Ô8Ö8Ö8Ö8ß8ß8ß8ë8ì8í8î8ð8ð8ñ8ò8ó8ô8õ8ø8ú8ü8þ8þ8ÿ8ÿ8€8�8„8Š8�8’8”8¤8¦8«8«8¬8¬8®8®8®8®8°8²8²8³8³8µ8µ8µ8¶8¶8¶8¶8¾8Ë8Í8Ï8Ï8×8Ø8Ú8Û8Ü8Þ8ß8á8â8ä8æ8ç8é8ê8ì8í8ï8ð8ò8ó8õ8õ8÷8ø8ù8ú8û8ý8þ8€8�8ƒ8„8†8‡8‡8‰8‹8�8�8�8�8‘8’8”8•8™8™8›8œ8�8ž8Ÿ8 8¡8¢8£8¤8¥8¦8§8¨8«8¬8­8³8³8³8ß8ß8ß8·8¹8»8ò8ô8÷8÷8þ8€8ƒ8ƒ8Š8Œ8�8�8–8˜8›8›8÷8÷8÷8þ8�8¡8¡8¡8£8“8š8š8š8›8›8›8¨8ª8«8°8°8°8±8±8±8Ÿg((¡)·®M1´ð}Ïm…³³¯[´·µ¶¦Ñ5†ÚÏ9¬Ãyý˜þ˜ÿ˜V4Á€™ó�™‚™V6Áƒ™ó¡*œŸ%?¬Ãy”™”™ SocketAddrV4Á•™ipÁ—W–™portÁ—W6?SAÚŽúd¬Ãy§™§™ SocketAddrV6Á¨™„z—W©™“z—Wª™flowinfoÁ—W«™scope_idÁ—Wê%H$;¡ŸgÃy÷±ÃyÃyÌÃyûhÃyŸg¸¹ºù[»ó¼½“\¾ó4´Ø®Èüù ã|ˆã|…ã|çyyóz€UÚñ¾¶î†ðç Ì2Ð}� Ð}� �~ŸgÐ}¬Ð}â!â!ã! TcpStreamÁä!óÏ! · !©+€”¬Ð}å!å!æ! TcpListenerÁç!óÏ! t�+¼³-¬Ð}Í"Í"Î" UdpSocketÁÏ"ó½" êIÄ™ç…g¬³~Ð}¬ø~Ð}¬¿Ð}Ü"»»Š4½Ú±¾«4±q€Pp§Kö.™4¬¨€ ™4�Ÿg»»Š4½Ú±¾«4±q€Pp§Kö.8Ÿgììíæ^îó ª/¼)¡¹ xŸgøøùøúó TiÂ8ùÎÙvŸg„„…ô_†ó l¹Zÿõ¸ Ÿg��‘À`’ó ²ÇxÛ7.ýÆààŽ<â–Éã«4É“ ´Ùé?Ì2ÿ ®ƒŸg®®€R¯’RÉ«A=X/ꄟg××¾]ÙÛ]ÉÛñ]É+YÍÂ)¥/ŠÜ"µ„„$Ð}¢#Ð}¬í#í#OwnedFdÁî#fdÁÛ#¬ݶÑ÷˜ÌÐ}¦#Ð}¬Ð}›…¤#Ð}¬Ð}¤H¤H¥H UnixStreamÁ¦HóæE Dÿážö‚ЬÐ}ÛGÛGÜG UnixListenerÁÝGóÃG Jq¡«–=O¬Ð}‹G‹GŒG UnixDatagramÁ�GóëF K ˆ�ÕàÙ>¬�†Ð}¬džÐ}¬�‡Ð}ù Í�ˆÍ�…Í�ÌÍ��ÇÍ�÷±Í�Í�¬Í�¬Í�ù …‚ˆ…‚……‚Ì…‚�Ç…‚÷±…‚…‚¬…‚¬…‚ù ½‚ˆ½‚…½‚̽‚�ǽ‚÷±½‚½‚¬½‚¬½‚ù õ‚ˆõ‚…õ‚Ìõ‚�Çõ‚÷±õ‚õ‚ŸgññòŽ<ôó L®îÞ¡Ì2Ü"òŠé"òŠŸgœœ�a�Ûž©aŸ¹a܄褓³Y#…Æ‹Ÿg‡‡öW‹€Œ¶X)§N¢Éø:é»Y‘XžXýƇ‡öW‹€Œ¶X)§N¢Éø:é888ŸgœœãY €¡¶X¸@û4èj»Y‘XžXýÆœœãY €¡¶X¸@û4èj888/(M³¿¸¯yÇ»ÑìÓøÕ„Þ�²®Ü×õñ œ–‡¬œ¶³Ã¸ñìýø‰„•�¢œG³I³K³ÅyÇyÉyËâ!Íå!ÏÍ"û¼í#Àyàyâyäyæ¤HèÛGê‹GÔìÖÞøàë„íO³öì‚øŽ„š�Q³óìÿø‹„—�R³Á¸ïìûø‡„“�¸ðìüøˆ„”��y¡ ¦yª ¿»´×ûñäà›‡±œæà¸yºy¾yÂyõì�ø�„™�ÿñŸgÀ…e¬1÷±˜Ì"ûh"ù ˆ#ç#�  Ü" ýÆÿ „$¢#¦#¤#�Çé"l¢  ì’y· +ü u’y$Õ ‰”Rô¢ `€Æ ,üõ Qýøj•ْyŒ¢ LŽ ’y,„  Gý˜p •§’yü³# ý§�€9ÖìÿŒ€$€ ‹– ›üù# ¡¢ø«,¢ ¸[¯5 »*-üó¯OÙ‹–t³cÙ’yŒÅ ‹–4š ’yLŒ2‹ê–ð ’yñ)y€§‹–‘§’y­—Ú(åê·$¡è–+Îȇ#ÃyY Ãyclv †p¦|�%ÇÇsockaddr_storageÁÈ ss_familyÁÉ __ss_pad2ÁˆË __ss_alignÁˆ=¦þ†eüï$] ³ Ë%Ò%2ü—$»ÃyDÜ$’y<¯$É$ªšã·¶!Lªš„±%±%½ ³ºÀ¾2¼Ãy¸’y¶´ªš•r·×¶Û\Á6­õÛ•   -»”| Õüƒ|  ý­ý­ MaybeUninitÁÿ­uninitÁ瀮�çÙW£Ÿì·œ’yu°•| %ºË|  źË|  µ˜ýß—/‹   Ë’y þ—‹ºƒ˜‹Í-ˆ˜‹ W ±7ü·7� ªšü³7’%àëUÚë Ñ•| Þ•|  ä•| š ýŒÚ$• ’y —Ü• <ö6d€7·€ä–7d›7D©74 F Ž#‚µ˜ $–7qy Ä8 Ê8Ë8? —ì €�7�7ErrorÁž7½ Ù6wQ?mˆ!؆5�ì Àœ�Ãyž£ ¢ì ³ì öë ¯ç£-ÿëÜž8µ8¿ ³ ¸8ü˜8"  ¹8Müë Àœå£ž£ „ì ´ì3ü«2 ü½6Žüò6ÙÈ+ÌÏ6ý¹Úç•ì’y ý…”à|ÿ’yHý·”®|ýʃR|þ’yÕÔ|ýžÊº|‚’ye²•|ý¨Ê挟’y�¿•|ý÷’Ÿ‹ Ñ’yíéËŒ ý¬*ñƒ Ç9‚î$ƒ ùƒƒâ[ Á°ùƒêä4 ý´œM• ã’y}®–‹ ýùàÒ|ƒ’ym‹Ü•ýÿ×µ•†™ž’y�¨ä|ýØêܺ_磞£å£7£¢ç£ç£å£Uÿ ’yT•óë…“ì•7£¢ç£î¨ü¨Šý«’Ç –gùŽ"`ý™ W±€E’” ýá(F¦€-Ä” ýŒ�¨¯€U‘)U2ñÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw壞£ÌÔ2£¢$È2’y½ýÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw磞£7©¢@µ˜;®¢1þ¨™žF™ž>ý°•"|µ˜â ™žuºË|-óëç£_å£Gž£ÃyNNªš‘initÁ·Ö¶ó 6Má–‹ª’yýÞœ!•¨’yýÂØ)•‰™ž’ydà76 �¢f£¢Ú Ë’yýÇÛ$• ¨°é‚ˆ%ƒ«ŸÆ É’yýÎâ#|Þ¨r ´[ùñ@`ç£ÿç£ Ã8 ³w­Œ)ìð3 Üð3 Ùªš+üð3* ™4üÐ3K6Lä3p,_Á ü<¬8’yªšþ¨1é  ³*10 .Ä87É–g±€ ¦€¯€üO 2ë壼7Þ¨2 磸7Ãyþ¨U ªš)resÁ1¶ú6þ¨·<Å6’yš ‰6û®:ç£5ç£6—¯0 _ref__lenÁ·l‡;$‡; ¥Œù'ù'PathÁú'€Ò%uÂHnìŽ MbDŒ; “;üí:(q î›  š; ›;$ü�:Ž8ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÃyž£¤¨:™´$œ: Ÿ´d ™´hª $¨“´�ü´™´ô™´úŒ�=¥=:ü̪š¢>;üÒ=P\ð=à™,æ= -eªšc;a^à™\e‡ü‡?´‡?ªš' ¥?ü€?' ì ¦?­?<üÑ>\Í�4ï>à™,å>�Ž<¸µ»ªšÚ³± 쮬<ªÍ�§à™¥32¾áD•@£@=üæ?=L�@à™,÷? -`^=\Yà™W`‚ü–A(l–Aªšü–AB ’y ×AÞA>ü×@‡‰¾´õ@à™,ë@ ªšo9��“ªš¥ž‰¾š ÝA >ž‰¾šà™˜Ⱦ ªš¶ÚdòBªšüËB> ( ˆC�C?ü�B’y|±BÃy$¨Bªšj4‹‘ªš‰ (†„?‚’yÃy}ªšåޝ´œDªšüœD0< ËDÒD@üîCd$�Dà™,ƒDt3<¶DÔ¢¨ªš´¶DDÔ¿²¸¶@´±à™¯!kÇèµÔ´èEªšüèE1�  ˜FŸFAüºEe$ÙEà™,ÏEt3D‚FÜ¢¨ªš¼‚FDÜ¿²¸¶A´±à™¯!kÇèµÜ´‘Hªšü‘H0ä ÀHÇHBüéG^$‚Hà™,øGt3<«HÒ ´—Jªšü—J0‰óž‹ ªšMÉœ ßß sockaddr_inÁà sin_familyÁásin_portÁâsin_addrÁãsin_zeroÁÜ¿{Ñé.Ø �L¥LlÃL¯¯in_addrÁ°s_addrÁd&þ?¶òä—ࡼ«Ó ^  �äçý  ¨— ³à ÐL$ãLl÷LùØýì#^  Ø�Ø�í^,ü×M1  ‰óž‹  ªšÁ  ìì sockaddr_in6Áí sin6_familyÁî sin6_portÁï sin6_flowinfoÁð sin6_addrÁñ sin6_scope_idÁù`D +»o ÔO éO tˆP »»in6_addrÁ¼s6_addrÁ’+b©so�ì’ý ¶— –P$©P t½P ºÂ™Ì¯ Ö$ðS Å™…züÔMªü”Jê „T „Mü˜M+ܧM ÍÊ[‡ ”™- ý˜ ÂM ü“M1 Å™…z ÃM ÍMœ ËPüßPòüîPâ”»Q ”²R ýÄt-‡ §™  ÏSw ý˜ ÐSüÚPø Å™…z ÑS ÛS  ‚CüÜI¨ üÈK†ü¡L­üßLoü‹OÑüåO÷ü¥P·ý˜@œ€ªš¸É¬ûKüÉßmÌüªL'ù¼àÑ ë^­¤l¦àýµçHýÐUüˆà,ùØ´ˆª^Š¢ÜêLùØÉìi^ †¢aع‰^ ý†[c‡©WE©€ªšöÌ´¾Oü¯á\ÎüîO)ý¼’Iý‘Väíቊ¢ä°P�†¢zýâs•‡¯W,řǙș­É™Ê™àË™óG*¤�R{9 …z”÷Ià™,íIï·ÉüÞK3Ⱦר—¨—Ipv4AddrÁ©—octetsÁôTSŵ{»rÊÊ…z•âz”õÌü¡O4Ⱦ޶—¶—Ipv6AddrÁ·—…ÖôTcÇ,3@üƒƒ…z{¼{ywf¨ËÄêÎJ(addrÁ$ÌK„zX“z´ù×$�O „z¡ “z  9<±JÔDñMÜ™Ìå™Ìì ªšŒŽ[DŽ[! ž[ý¸)$Ÿýî#)š   ý¶)&Ÿ Û)Ÿ Ÿ[¨[F üèXÀƒ>DýZ耒y4†[ý¸#¬ŸÄvüÝZC9Ç9�î$ƒ4Á°.ƒ#Ùu¥'Ÿ>ã}Ô'Ÿý•¹p‹ëýà"¹šÜàÚÍ깋 àÚ,þXà™,ôX��ȾÄ àÚf/ ö#§ç¨ ¨«é�ˆ%ƒ\£h  &     "%ý­ý­¥�ÿ­º�瀮�çÙW£Ÿì·œªš     ªš œ% ˪šý³%ùÂ%õ H ˆ…  ‚ ! ªš{ y깋 M‡Œ öÌ ÌiüÝi-`& œ¬j\¬jMÈ‚‡“ ›&™Ìˆ ¯  ¾jü˜j'üáj"l—á]ü×ýß×êÎüûà0 » ªáüÍj6®Î ‚k|©km��‡ü‘k' ·k|¿l mØ›‡ ü§l' Íl <ür  Ìñr ³ à' ‰s �s�sLü®gâ üŸhñ üçh© üÿhÔ7쪚üºh!3ÿªšw#/*þªš'$‚ªš Ÿªš Ñªš   Ç  Á°ü ö 㪚ò šê憯ުšáýØ>ŒçªšöÌ´·iýž‚9‡²W4±jùغ—¼^Œ¢<¸j †¢aØј^ýòx<‡°W$þjü¸àuÍÂýË×BýòUDœáýß�A‡´WT®kýª›A‡¶WTÄlW)ÙöÌôžnÃyDÍg¼{$¶gªšÇàüœi1“ß»»®Îaþͪš�¯Þw%¯Þo%1“ß% ¯Þ-êΨùד·§¶ëh¶*·<ƒiÁDóiÜ ªªš ¨ªš‰¯ÞªšP*§öÌ Ëªšùήñ§ß²% ɪší™ÌYTýyŒªšmtŽnb  àÚ^T‘z ð ªšÑ Ø ò Ò Æ àÚ ^ •Áh     m®h •ãÁi%ãÁiõãÁi   €Âiu½h A= 9 �í4ýŠ/'h Ú, � E˜/h E¢/h%¬/h;-ñh-ý¾Âh ÿh ¡zýŠ/,hS- µ/h Ðh   ZPüËyVö F6~>û ã €’yû û Ävö .$Çõ $$Á°$s-Ùð +$ãí ê ëí å  ÜàÚà  ¯ F‹7 >´  œ €’y´  ´  Äv¯  ç$Ç® Ý$Á°×$,.Ù© ä$㦠£ ë¦ ž ÜàÚ™ ý¶žU_¿àÚàÚüøy#ýô’h÷mååž_ý æhý²ÁUiÝwE³hÝwEÃhýø+Îh“nýŒEhýÀ.€h$éyà™,Ñyà™,Øy» » Ⱦþ¨Ýž Ý Ý Ⱦ  ¨ÝÀ Û�í»�탨ÝĨÝÍmŒî �Ì�/§�#¨°/§¡#¨Uñ.h§êÝÉ êÝÐ —¯Uªh—¯]Èhåí Tž{ªšæ í ç Û  àÚ^ýÜí%‰ Q1 ’i„-Üí‰Uöí‰ýâí‰í�î‰      1ö›Ò‰  ½w•   å¥w•Í1 °àÚ 4 $ ö®Ö‰  r  x  ~  »{ Àw• ¶ ³  �íû÷ àÚ ó ïùöãÕ:‰~2 …iâö)öãÕ‰ ùöïÕ-‰ùöéÕ4‰SüÛz`,Fó´>1€’y11Äv,d)Ç+Z)Á°T)©2Ù&a)ã# ë# ÜàÚ ý¥í‘‰Øiâö\©{ùöËÑä‰ í¦âö/ ùö—Ò˜‰  ùöËÒä‰  ýŸv¦• ÛàÚ‰ö¤Ò‰ ¬ ÝwAöÚÒ‰ IÄvùöøÕ"‰ ƒ*ÇJy*Á°s*È3ÙE€*ãB?ëB:ÜàÚ5Ž{à™,ùz âö,€{Ü™{ÄÄȾ ¨Ý§¬ [ �íiöÕÒ‰ øÜî ¨Ýn¨Ý¨Ýé…ƒ…Œ†4§w(¨¦4§—(¨êÝ­—¯/Üö`‰ù<Ø÷ðêÝÐ=³. ›…ЗЗÑ— I32NotAllOnesÁÒ—ó§  >½²È˜;„Ù¹ “  Ä.‰}ü¬]üÔíTŠüäýŒ.?ø#\›îù¹Æ …“�–U».tË Ð},ÁçÿõzTÝ›…çÿÖ  çî~ü�_üªîW‹üÈ ý±/Sú#lòîý¹4o}Æ›…½Ù/ýˆ_~ì›…͇5}ý˜U9}Ï›…ÕÙ/ýì8~í›…EÃU}3�–Uô/t¯Ð}$¦çÿÕ¯æ´æ l´æ  D·æ Ø5T·æ Àæ§ç ªç«ç«üúâ±ü«æ€…‚$ ã…‚“ã…‚µ…‚´‚‚ÔY(áˆü%@á¥ý “\çÖ#) / ; Ÿgƒy9 çg™�9¼—§€´áæü ù["(.:ê†ý9„‡:¼—(u6áŒü !' -5á�üÀ�•œ ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwĤĤŤ¨¢ Ñâó:½ÖàM" ã|- €g€gŠ‚gê ûcƒgbufÁûcØ«q¢1È¡t|þ¨Ìê†Õ þ¨á çÖzꆃ •‹�ÅœÓ__self_0Á0ÕŠÊÿª‹ê†á„‡‰‹ê†e„‡%(ã•üãšüÄ(-3ã|?�ŠGPZœƒÖtƒÖ " •ÖA"$¡Ö Å™ȲȲDurationÁɲsecsÁ²�ʲnanosÁ²�u"ù(ùÐŒü€ÖrœüÀÖ+´ÔÖ|ÔÖ " éÖC JœÀÖ Ð�Wi êÖü»Ö1 Å™ø� ëÖ± ñÖôÖÍü¼Õ¸Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ø�„éÕ��­#‚l_onoffÁƒl_lingerÁöþ p(ŽÛ4ÑÕ=<ø�~|{­#5ßDÂ×t¼×%üרH � úØ “Ù9DÚ× àø�¼£Ø ”£ØD£Ø  %<¬Ø Ü�3L¬Ø ´Ødr ¹Øüç×^ � ŠØ ÄØ ¨ÙÎüöÖ²üÕ×p�‘\ª×±�D‹×tÕ×ø�>&.' ø�*durationÁL蔃‰4¨µAÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwž£´µ©üø´<±–t�µ Ð}L�µ 34°¸äA±–¼¸®ü€¸<±–t—¸ ±�L‰¸ 4=—~ï­ï­ ManuallyDropÁñ­�¶„Ÿ~ Á$Ð}ƒ®ƒ®„® MaybeDanglingÁ†®óå @æè_fòÙùÅÐ}Ð}ŽÂüÑ=€ ÏÐ}düz íÐ}v ±�lä »»Š4½Ú±¾«4±q€Pp§Kö.,Ú �ÊtÏ ´C …$ù€4Ï<Ö=�- çÿÌ   ¡- é<û&D%ê‚ü«5ü½"¼ÆkD ¥#Ð}Ú#€êó—D­—¢D¼—­D':  …Ñ~ ƒ®Ð}ýñ41} ï­Ð} ¡5} ßü�‚ »#E„!„!…! PhantomDataÁo$z�é -±� Ž ”•Æü�øüÆÏýé,?ö#\Þ#�–U˜-gÆÐ}z`ìÐ}\ Áš$· ù€4¥a®L®L BorrowedFdÁ°Lµ„Û#±L_phantomÁÛ#t4bE™­GÒæ˜Ð}çÿ¢§™Ú™µ„ÿ$¿› öœS­—0¬÷Qd÷QˆŸüÜQ1Ï,ïQ&=ˆŸ_Á16Á¼„c ì|‹cäüéb3ÓÍ�4ûb';ä_Á´Ùd ìtàdÐAü¿d1ÔÍ�4Ðd';ÐA_Áä«l4«l  AH Ælü¦l" ø ÇlÎlÖüõkY…‚$—l…‚$Žl—–<œ´l³AÌÊÐè ?³AÅà øÀ¾Ö¼…‚¹…‚·LLÐó·³A$µqܰu …Iü«u! ø Ëu ÃqÊq×üˆqBüöt\ØTºq…‚$¦q…‚$�q‘°N”¹uÁÞä|µq  Dºq„ ‹À¾×¼…‚§…‚¥…‚M·ìV4°uu …I Êuv øtÒuØc…‚$œu…‚$“u蓞YÁÈÎ; ™ÁÄ8 ø6ÂØ#…‚À…‚¾¤O×[Á´‡Š4‡Š " …I€ œŠ܇Š…I ¡Š¨ŠÚüщW$ø‰õ‚$¢=l�Š¥Ú×Ýö @¥ÑμÊÇÚÄÀõ‚½^]Öù¼¥´ØŒ4ØŒ " …I íŒÜØŒ…I òŒùŒÛü¤ŒU$ÉŒõ‚$ÀŒ¤¢=lጟÚ×Ýö @ŸÑμÊÇÛÄÀõ‚½^]Öù¼ŸÔ§�4§� " …I À�ü§�…I Å�Ì�Üü÷�U$˜�õ‚$��¥£=Œ°�©ÛØÞ÷ @©ÒϼÊÇÜÄÀõ‚½_^Öù¼©äÜ“4Ü“ " …I ÷“üÜ“!…I ü“ƒ”Ýüª“Y$Í“õ‚$Ä“¥£=œå“¡ÛØÞ÷ @¡ÒϼÊÇÝÄÀõ‚½_^Öù¼¡ üŠžr¼²ž%¿ÉiÁ, è5é5ê5 __variant1Áë5ì5 __variant2Á>�Xß'ö«Läž “ ã ûž üæ�Å à…I„!„!…!¼�o$z�é -  ý­ý­¥�ÿ­º�瀮�çÙW£Ÿì·œ ªŸ±Ÿêü’�ŸýˆÉWiÞwÚ»d¶ž?+çÚ»†º4ÞààŽ<â–Éã«4É“ ´Ùé?¤Ç�×»¤�ããiovecÁäiov_baseÁåiov_lenÁVQ¡}¶„¯X:…º9Í Ù»…¿Éiɉz  ³wÚ» Ä” Œ”  Ƚ…º) Ú» « „®  Ƚ|2x2 Ù»t2p2 ¾  Ç ë ü·Ÿ�-熺ڻ4¦ k2ÄvÚ»üþŸA¡LÇh2—LÁ°‘LJÙÚ»d2ŸLãÚ»b2_2ëÚ»c3[2ÜÙ»Ú»W2 Ù»”ØŸ ú¼,Ο–¿‰…º‰W Ù»¿31QJ§Ú»AJ¨Ú»êÝX2Œº¡Ƚ…º„Ô¡ Ƚýÿ=(ŸýÃ')š Ù»ýù=.Ÿ ¦>Ÿ ä¡í¡ì üÍ  Ö.熺ڻ4Ì¡ýí7ŸÇvÚ»ü ¡EyNÇ9„î$ƒtNÁ°nNJÙÚ»uè;ŸNãÚ»}—<ŸýÉÅt‹íÚ»ýµ&¹šßÙ»Ú»ížÆ‹×»´ö  ú¼Lè …º…s¦¾]&QJ§Ú»$L¨Ú» ©«é„ˆ%ƒ $±£œ¸£<¸£丣 Ô£$Þ£‰‰óž‹ lüå£( Œ¤\“¤ Ÿ¤  ¤íü䢼ü­£süÚ£F,¡£ ¼¼ sockaddr_unÁ½ sun_familyÁ¾sun_pathÁ^2ŒwÉ<�£H «ÈJ  �Ç"·3baseÁ‚ª SØ ¼§³Fªš…ºü˜³&…º ¾³TÖ³ Gäij ß³ã³ðüѲ’\F>D¬³DG=,Û³‘³ ÖDÖDmsghdrÁ×Dmsg_nameÁØD msg_namelenÁÙDmsg_iovÁÚD msg_iovlenÁÛD msg_controlÁÜDmsg_controllenÁÝD msg_flagsÁG¼†9ž8¶Dï²à™$�³…º’QȾ©GmsgÁ5‚ 73¬Ó·…ºìî·ޏòüö¶˜Ì·±Ë—·…º©·Á·‘Ì#í %¶(b¬¦¹¾¹óüá¸]Ÿ¹±Ë€¹,’¹‘ÌØZIl׺ Äͺ � äºçºôü‘ºVõ‚L½º ³Ë¬ºv‘Ì=”ø»‘¼õüº»W,ì»ÐÐÛ»‘Ì2\Ò¿jNjN{N…N…I™žìNöNOµ˜O …I«Ÿ7O…IJO…IdOOàOêOúOjN P ’yPÉJ ÑJ ÁJ  Ê8Ê8 sockaddr_vmÁË8 svm_familyÁÌ8 svm_reserved1ÁÍ8svm_portÁÎ8svm_cidÁÏ8svm_zeroÁb�x~@‰ðJ üºÁ2 …I(¬úÁ ¼� <ß   ªšM ³ …I ˜Ã  Ã¡Ã÷ü–¿‹üοÓüíÀÒ¯I+Ì࿆Rì’y~IŸRÿ’yjN·RÄRþ’yÖRÞR‚’yñRùRŸ’y SS Ñ’y)S 2S ÇBS LS Á°^S iS ã’y|S …Sƒ’y˜S¡S†™ž’y¹STK-æÓôŒÁJÙæÓlKJÙ’yKJÙæÓüèÂ#NM2üÑÂH ÃyD»¿£¿$­¿’yÁ™žjN™ž{NÁUµ˜ìNÓ¬ÙUåÓÁJµ˜ÉJªš9cidÁi“zl·0·<ñÀ tÏÁÐA]Vª’ygV¨’ybV‰™ž’yQJ§æÓQJ§’yQJ§æÓ½®pVήhV«ŸOä®^V­—Kl«ÅÕQªšü«Å.( ØÅ3OªšüÜÆ+ æÓìœÇd�Ç l«Ç =  ¸Ç ü—Ç# Å™ ¹Çü¨Å¾Ä$ØÇ Å™±Ý.ìÇøüéăüÆÆ~ìR;D°ÅP>DâÆÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 ±Ý”‹Åà™,�Å˼܄±ÝxweȾôP?ù×$ÊÆãt¼ÅÐAü�Êò¬�ÊkLrLªš%‰š,•š ü³Ò)’QªšäKŒÉü±Ò+ çÒVM�š Å™©È ˜š æÚn à©È%ñÚn üÓÊ*  TÓÊ  öR äáÊ  ¼áÊ      þ ü ú  �Çè å ã á è —   üÊ  Ó  â  è  î  …I òÎ  UìÚn Å™ õÚn   �Ï ÝÇnà –Èn07-Ë l…IeúÇn ¢Ï©ÏúüåÉÄü³Ð¼ü„•ÊÕNBL„Ñý¡Žš܆©Èý©ÈUÿà™üŽÑÛü“ÑÕý•æ æè%T>D¸ÒŒI€’y«ÈÜÁÒýÊÙ×nþW©Èû©ÈUÿ æü³ÊÏ­áÚnü·ÊÊû—ç æÏˆU =,ØÊ ë í¸ ñ  ï  ýáÆ¶nüWœ�ÏeØÇnù¾­5l½Ä $�Êà™,÷ÉřǙș­É™Ê™àË™óG*¤�R{9 �řǙș­É™Ê™àË™óG*¤�R{9 ©ÈÐ:Q©ÈŸŒÉ˜Ⱦ2V©È7      ŒÉ  ß ŸÉß ±5QÒŒæ ®šŽç  Ûn™–$ÓÊà™žW¨¦ª¨ ¦ ¤ ¢   ž ¥ �ÇŒ  ‰ ‡ … Œ;¥vˆÎÕüÓÊ …IÿüñÍ‚…ILõ�ÏûjÙX=Q9í>< ÀÊŽç­©È<¸ÊjhUTà™àbŒÉb8ŸÉ8·W$øÉà™* _ref__selfÁDTKTªšÙïÒ õãêápYªšÂSŒÉÞÛ/Ú Å™©È×ý†#š%£š…I¥ébü1÷TB"܆©ÈŒæÿý•æ æã Z>û…O€’y«Èù¥éÔÚÐà™,ÐÐÎU©È3 ŒÉ, ȾÆZ/éwUÒŒæBl $³Òà™[ªšaUŒÉ} z èÒý [>û„P€’y«Èø©È•ÑŒæPŒÉ à™bȾº[$ÑÐà™†ñîü:;çÿ·: ²:¨îŠª:œ:ø#™:–:�–�:L„î ›…4ðíçÿ…;Ú;4ëî çÿe;  þî�ï‹‹:}:ú#z:w:Æ›…t:r:ì›…o:m:Ï›…j:h:í›…e:–;�–c:LÛî›…4ÈîçÿØÚ1;2Á8Á¤¦µ|¦µ " ¹µE&¬¾µ„¾µ " ÒµE&$Þµ Å™ø�ü£µØT…I¿…Iüµ|‚¶ ´‚¶ —¶$¦¶Ì­¶ „®¶   "   Ŷ ü­¶  $ɶè ̶ Äܶ ê¶   $ï¶   3 :lܶ Ï� H 8 ^ ó¶   ô×¶ Å™ø� ô¶ ú¶  ý¶¹üÚ´£üøµƒü¢¶Y±�„Œµ©©timevalÁªtv_secÁ«tv_usecÁjJU1%Võ]Dð´õôª©êéèø�—–‰è”msecÁknsecÁ? ü�ß!l°ß$°ß  &4µß �U3Dµß ¼ß_ f”�ß ³¤s… ½ßüƒßB ¯ ÄßÇßËüšÝ­ÑÊ<ÍÝ•‹$¹Ýî¨Ëì•‹ëù×%K¼[t—à Ó[ ¨Ë ²àÊ[ ¨—Æ[¶àÌÆW¸W­¤±W®WÐU©WçÖDùßÑÊ<äߨËh\­ÛÉ%X4Áèü˜è0 Çè ÍèÎè‡üÚæôÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwž£ŒÕç±�,öæ £¢$…ç4—çřǙș­É™Ê™àË™óG*¤�R{9 ù ù ú ¬ü óÕ  >¨WTÑp™Y4®çÄ–µå´Ñ ·ñ]CTÑ’™“ÊTCP_CA_NAME_MAXÁTCP_CA_NAME_MAXÁlöô4†õ…IŠTšõü§õ"…IŠø²ÓõËøßŒNÒߺNlôõNL UL ›…çÿL   L ìÛöLÛö      àÚ ãö ¨/   ðö o\…º\†÷   ¨ßÉN…I ±Ô…I t�ö…I ü«ö"Ä aSßÝN  HßíNÿÿÿÿøß‰O =Í …ß I …I £Z"8ßÇO Àœž£ßÝO ä· ¯Åê· ÊüÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¸Ä¬©^—¯fž£ �¸²�÷üÓõË m³�÷ ž÷ü«÷#L»÷ 4Æ÷ 4 ׊ Í÷ ü¨÷' Àœµ„ž£ Î÷ Ô÷ Õ÷ �Ý I ö Iý�8 …I ¾7%Å MË Œ ð‡ð‡ OsFunctionsÁñ‡format_os_errorÁò‡decode_error_kindÁó‡is_interruptedÁÓ7‡U!‡ä≠¯ Ô øß…O$ Àœž£ ߨO « ”¸ €ž£5­¸  Àœ»œž£Õš¸ Êüì› ³¸ pL S [ì›E¿» u¹»…I# Ú»  €ž£•à» Àœµ„ž£ ñ»¤«  |ƒ{¨ü•ôÀüòôãü–õ¿øß¶N¨nu|£ÄQ}DùõÌQ ŠÉQ ÈQ ø#ÅQ ÃQ �–¼Q 4ÞwdåöT_熺4òöýŠ Q ŠEý¸ CI¤ZLýº£ ‹ý´ ! ý�·Ä×`ž£ðýá·!ý�¸$ý캗Ü`µ„ž£ž£(åÖ»ýÑé$”Éž£mä»ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwµ„ž£äËô±�,ÁôŠõÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ì›)ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwž£wsq…º<�™< ­§H®¢òž£^ì›'Oµ„$­§#çÿU  àÚÅ5 š ›Rž£³ì››5Ö»ž£ëœÛ]¬ ñ]“ ñ±b Æ á Ž »™Ì‘ü+ŒœŸ—¯|§õÜ™öþšb�Ÿ_ü·‡%  €ü–‡Q ® æ‡í‡±üʆ£€„T�‡$Û†æ†î† ö†€€ sock_filterÁ�codeÁ‚jtÁƒjfÁ„¡�š%œØ§õ—¬‰¤¬�¯¬‘¡”×A$ˇ ч Õ‡  Ù‡  œ € Û‡  ® ®«©±§ €„£¡Ÿ�›ù¬9ùëÝÏ—¬ê¤¬ï¯¬ô¡ø< �àÞ‹ ­§#ê†Xàö‹ (4ê†(à§‹…I Ûg…I ¼—)…I ¼—²·…I ¼—‘–Wà«‹ ଋߕœ‰¡ µ„¬¨Š´ê†7 ­§Cꆉ‹!þ¨*íœú¿³ê†�‰‹ê†c޲# tµ� ­§\Ç� ¤Ç� Ú�eúgg øÜQŒÙÞ^   …I-  ýÜu4j-õuj  }éj �íýý.j àÚ O �vjýÚu6j ìvj �hg Û�â�ý°v3j…I èn…IUÁvjEÍvj…IŠ]×vj L Œžà^ m‘tj ½Ùtj …IŠ$·ü‘�Qý¸g\g”+¶ý¶ý¼¸ý‚¹ý’}£²ËJüü ŠÌÃ�ýÕIjãn¶¸ýíg!gý”sßj�o]�jùŒÈÛá^é§ý¡t(jýäÉjén ýßÎjý¼qj øÜ,¤�£³,š�¿³ë¾àøÜµX¨Ýo¨ÝnáÂ�íj^Z—¯]åtj—¯×ÿ¶ Ð]×]›…çÿ�] ‹]û�»üÁ�:”]}Dí�œ]Š™]˜]ø#•]“]�–Œ],Ø�±�,Î�çÿ^z$£’ ›…çÿb^  ±’¸’¿ üû‘=™]~T¨’¡]‹ž]�]ú#š]˜]Æ›…•]“]ì›…�]Ž]Ï›…‹]‰]í›…†]·^�–„],“’Ð}$Š’çÿÉ(è®?è³?ò&+Í�8 Í�CLVé·?ôéµ? Í¿&0(ê×? !2êÛ? êÂ?÷Hê¹?ͿͿ‹’5î BL¤Î@ ìdÕ@Ôüµ@.ÐÍ�4Å@';Ô_Á¬ÆA ìlÍAÜü­A/ÑÍ�4½A';Ü_Á¤éB ìdðBÒüÐB.ÒÍ�4àB';Ò_Á<þCløC#dØD…I Í�d©D…IÍ�õDÓü¶C¿Í�4çC…z<ÏCŒ”DŸ8tÐÍ�¥ÑÍ�åãâêÑÍ�úÝåÐÍ�õØÓÖÍ�Ò…zÐΟáAÐÍ�sÑÍ�LÁE ìÐEÕü›E5Í�4°E £Eš .œF¥F×üöE/,ŒFÍ� þEš .(ìüIì�Jþ&+…‚8 …‚CLVí…J€íƒJ ýÉ&0(î£J !2î§J î�JƒHî‡JýÉýÉ‹’5î BL´²K ø„·KŸJü™K0Ù…‚$«K';ŸJ_Á¬ÃL ø|ÈL Jü«L.Ú…‚$¼L'; J_Á¤ƒN øtˆNËAüìM,Û…‚$üM';ËA_ÁÌìO øœñOÊAüÐO6Ü…‚$åO';ÊA_Áœ�R øl¢R²ü‡R*Ý…‚$–R';²_Á<ùR ø†SßüÕR1…‚$êR ÝRª .ÎS×SáüªS-,¾S…‚ ²Sª .(ð®Vð³VŠ&+½‚8 ½‚CLVñ·VŒñµV ÌÒ&0(òÙV !2òÝV òÂV�Hò¹VÌÒÌÒ‹’5î BLÜãW „ŒìW�üÆW9㽂DØW';�_ÁìòX „œûX‘üÕX;佂DçX';‘_ÁÔÙY „„âY’ü¿Y5彂DÎY';’_ÁÔ½Z „„ÆZ“ü£Z5潂D²Z';“_ÁäÅ[ „”Î[ûü©[9罂Dº[';û_ÁÜã\ „Œì\èüÈ\7轂DØ\';è_ÁÜœ^ „Œ¥^õü�^7齂D‘^';õ_ÁôÚ` „¤ã`÷ü¼`=꽂DÏ`';÷_Á\Šc „›cìüâb9½‚D÷b êb¦ .ëcôcîüÃc1,Ûc½‚ Ëc¦ .(ô¿eôÄe–&+õ‚8 õ‚CLVõÈe˜õÆe ÖÝ&0(öëe !2öïe öÓe›HöÊeÖÝÖÝ‹’5î BL¼Øi4Øi  …I  îiäØi…I óiúiðü¦iT$Éiõ‚$Ài›š:tái£ÐÎÔì ?£ÉǶÄÂðÀ½õ‚»TTÔõ»£ü�o ÕTÒTÐT¸o…º‚T‰TU ã‚T‰T�T à…I°»Tœüþn1 ñ ®oµoúü±n„@TêìFTÞwÚ»BTŸrçÚ»†ºATññòŽ<ôó L®îÞ¡¤ßn×»¼nú¼eȽ4V…º3VÇU¦¾øSɉ9È;ðU îSìSóSú¼Ƚ…ºT–¿ïSíSôSú¼ȽÈlÓl  Ù»ìlþlñSøSÔpþ ü�pG÷SëTÄpŸr熺ڻÿSPmÄvÚ»þS2SÇvmLSÁ°^SJÙÚ»ŸmiSãÚ»µm½mëÚ»ÈlÕmÜÙ»Ú»ìmËÁ” p ºå,–p–¿€U…º€UNU�ÂÈl. QJ§Ú»pV¨Ú»êÝpn tÌqýSú¼Ƚ…ºTTú¼ȽTT  Ù»üSøSõS�àq� ü‰qWT쯟r熺ڻTTÇvÚ»T2SÇþSLSÁ°^SJÙÚ»ùSiSãÚ»öSóSíÚ»ôTîSßÙ»Ú»éS×»´¤q ºåL–q…ºhUVU¦¾@U%þQJ§Ú»pV¨Ú»¨ÆßS°÷ös ±�"ê†Ð÷™v ±�"ꆠ÷Àx   řǙș­É™Ê™àË™óG*¤�R{9 l xê†(÷Ìr…I Ýg…I ¼—(…I ¼—'-…I ¼— …I ¼—ëðm÷Ðr  "(÷Ñr¡µ œ‰Á Æ‹̨ŠÔê†Í ±�Ùꆯëñ¸ê†Ž  £ï�”ò¦%œ3>ëñê†=ëñꆒòê†ë™ðg °øösU¨ìn±�Ðø™v ±� øÀx< £ï(øÓr œø×r øØr£Iý†ì€nÑXø�ºÕÁìn)÷«Ͳ=Óìn IÑXø�ÝC?Ͳ9NU ~ÑXõw  ù鍨M¯ ã°u Æ‹Ïñ ±�k±�T£ïA/:ü†z• œ…I±�…I±�…I£ï¡€ƒüÙyÈÆ‹dïy $§z Å™ø�$š} Å™ø�$Œ€  řΠœ š€ ăÁÆ‹½±�®±�˜£ï‚ìT”…  Å™ø�üû„A œ±�£ï »…Â…„ü¼„†Æ‹$ì„Æ‹$Ó„ø�$Ù„±�™Û!RÇ$™… â Å™ø� �…â œ±�£ïÞÛ„ØÆ‹ÓÆ‹Ðø�ͱ�cø�ŸòÛô%t³�  Å™ø�ü–�I œ±�£ï Þ�å�…üÏŒ–Æ‹$‡�Æ‹$êŒø�DðŒ±�™©a!RÇD¸� â Å™ø� À�â œ±�£ïÞÛ…ØÆ‹ÓÆ‹Ðø�ͱ�cø�Ÿò©aô%lÈ•  Å™ü¬•G œ±�±� ò•ù•†üì”�Æ‹$�•Æ‹$†•<Œ•£ï—¹a!QÅ<Í• à Å™ Ô•à œ±�±�ÜÙ†ÖÆ‹ÑÆ‹ÎË£ï_œî¹añ!ÄâœjNjN{N…N…Iý­ý­¥�ÿ­º�瀮�çÙW£Ÿì·œ³ËìNöNO ³ËO…I ˳Ë7O…IJO…IdOOàOêOúOjN P  ³ËPüÆœd ‡…I„!„!…!¼�o$z�é -à™ Œ‰Œ‰�‰IoSliceÁ�‰óö7 Å0ײ÷([OøÜ ©�°�‘ üÍ›ã†Rì³Ël뜟Rÿ³ËjN·RÄRþ³ËÖRÞR‚³ËñRùRŸ³Ë SSѳË)S2SÇBSLSÁ°^SiSã³Ë|S…Sƒ³Ë˜S¡S †Ý‚³Ë¹S ‡‡öW‹€Œ¶X)§N¢Éø:éôÝ›³Ë Ý‚jNÝ‚{NÁUÁƒìN Ý‚ÙUn]Vª³ËpV¨³Ë…V‰Ý‚³Ë ˳ËÅVήÔVÕƒO ɳËìV ü¢Ÿ+`h^ªš`…º`³Ë…º``«]`³Ë`‡$ן្üÞžƒ`ðŨ^>#`Ð]="`ð‡$“Ÿð‡Dïžà™$ùž…ºaÇ`Ⱦ_^1ù×4‘ðu´Ë¤…ºL™¥ ¦_³Ë…º¨_³Ë ¢¥$­¥·¥”üü£»üÁ¤vÔxÝwDϤê_òüë¤8ð‡$²¤ð‡D�¤øÜš¤…ºâ×¨Ýæu/ɉ2í Ť¡—¯`³Ë$°§º§•ü¸¦‚#`óüù¦-ð‡$ê¦ð‡Dʦ,Ô¦ØZ[Äâ±jNjN{N…N…IÝ‚ìNöNOÁƒO…IÕƒ7O…IJO…IdOOàOêOúOjN P  ³ËPüñg œ…I„!„!…!¼�o$z�é -Ñ·«í�™ ©²°²¦ üǰé†Rì³Ël뱟Rÿ³ËjN·RÄRþ³ËÖRÞR‚³ËñRùRŸ³Ë SSѳË)S2SÇBSLSÁ°^SiSã³Ë|S…Sƒ³Ë˜S¡S †Ý‚³Ë¹S œœãY €¡¶X¸@û4èjü×°!³Ë†Ý‚jNÝ‚{NÁUÁƒìNáˆÙUm]Vª³ËpV¨³Ë…V‰Ý‚³Ë¯‰ÅVήÔVÕƒOʉìV üÝ´+Yfh^ªšrf…ºXf³Ë…ºYfWf«]Uf³ËWf‡$’µœµ§ü•´‡tfðŨ^>xfÐ]=wfÒ”$δÒ”D¦´Ñ·$°´…º]ggȾ_^1ù×4‘ ¼½º¤o¸o…ºLÖº f³Ë…ºf³Ë ߺ $êºôº©ü¾¹¶ãnÞwÚ»dÁºŸrçÚ»†º4κ\fòü”ºLÒ”$…ºÒ”DÒ¹×»ܹ…º tn0ɉ3¤;"íeôe³Ëñe �ïeó»ªü¤»OöeôôÏ»õ‚L»» Ò”,±»tfMýe³Ë¿¾«üè½W fõü•¾$,…¾Μ,û½ B,àü ¸º(ã|3:A<�ý ¸½(ã|3çÖ;BŒÅ? ìí'Í�3:A|“J øù'…‚3:AœÅV „…'½‚3:A¤Öe �‘'õ‚3:Aü‹k ñò*ºå6ú¼>E                                                                                           U±Éñò‡œìíøù„…�‘œ‰ñ²¾,²„<•Œ‰¼�\€„!¼�…!˜ çô¥�\úý­ SocketAddrÁT•ý˜s,°Ü" DerefMutÁD·é" „�DÑȲ c_intÁ,Ê7–‡Äü�\å7'ÆÿLò7&ǯ[Dý7³È¡|‡8(ÉÚ[¼×9¸Êó4€:yËŠ4<™:»Ì¾]lá:×Í€RTË;®Îüáè¾üˆ-* Utilities for creating and using sockets.Á¶�üºGD The goal of this crate is to create and use a socket using advancedÁü‚KH configuration options (those that are not available in the types in theÁüÎ41 standard library) without using any unsafe code.Áƒ�ü‡DA This crate provides as direct as possible access to the system'sÁüÌB? functionality for sockets, this means little effort to provideÁü�MJ cross-platform utilities. It is up to the user to know how to use socketsÁüÝJG when using this crate. *If you don't know how to create a socket usingÁü¨HE libc/system calls then this crate is not for you*. Most, if not all,ÁüñIF functions directly relate to the equivalent system call with no errorÁü»PM handling applied, so no handling errors such as [`EINTR`]. As a result usingÁüŒ PM this crate can be a little wordy, but it should give you maximal flexibilityÁüÝ " over configuration of sockets.Á€ �ü„ .+ [`EINTR`]: std::io::ErrorKind::InterruptedÁ³ �t·  # ExamplesÁÆ �lÊ  ```no_runÁüØ (% # fn main() -> std::io::Result<()> {Áü� ,) use std::net::{SocketAddr, TcpListener};Áü® (% use socket2::{Socket, Domain, Type};Á× �üÛ 41 // Create a TCP listener bound to two addresses.Áü� @= let socket = Socket::new(Domain::IPV6, Type::STREAM, None)?;ÁÑ �üÕ  socket.set_only_v6(false)?;Áüõ =: let address: SocketAddr = "[::1]:12345".parse().unwrap();Áü³ " socket.bind(&address.into())?;ÁÄÖ  socket.listen(128)?;Áï �üó .+ let listener: TcpListener = socket.into();ÁT¢ // ...Á¬­ # drop(listener);Átà # Ok(()) }Á<Ò ```ÁÚ�|Þ ## FeaturesÁî�üòPM This crate has a single feature `all`, which enables all functions even onesÁüÃ&# that are not available on all OSs.Áü„#t•U±Éñò‡œìíøù„…�‘œ‰à ñÄ ¾,²„à Œ‰¼� „!¼�Õ …!˜  ô¥�Á ý­º¨· ý˜s¶ Ü" ꨮ é" „�­ Ȳ 𩍠–‡Äü�§ 'Æÿ¦ &ǯ[¥ ³È¡¤ (ÉÚ[£ ¸Êó¢ yËŠ4¡ »Ì¾]  ×Í€RŸ ®Î? B E D­< „ŒÅredoxÁœÅÅ€”ÚÅhorizonÁ¬îüÄ@üÀEü·Pt ÄóÅ“¾œ¬Å€”ÁŰ¾¬Õü«@ü§EüžP¡ DâÅ“¾œ›Å€”°Å°¾¬Äüš@ü–Eü�P¼ ¬ð¯ ¤‹˜ D¥Œ � w z œÆm ¼ªT·  ä È � , Œ8!$�& ‘8ª $“$ —, ¡ ¢ � , ° ± Â+ ² ³ Á, ´8´4µ& »8ª $½ Ã, ê8»$ë& ï8Ý,ñ'÷, ú8flagÁ$û& ÿ8Ý,�$ � ‘, “ ” –$ • —*Ÿ ¢ á 8$¬8‰±'´8ñ¶'¹8q,»8 Á, Å8!$Æ Ë Û 8 Ù8ñÜ ß † à8$á$ å8œ ç& è ê8ë8‰ï'ò8ñô'÷8ŠLù ‚:8ƒ …(ˆ8‰‹'Ž8ñ�'“8Ñ4• œ Ñ 8®8stringÁ4² ¹8,»8$Á Å7ó Æ È ž , Þ ß Ù , ù ú …+ û ü „, ý8´4þ †,  8»$¡'¦, ©8ßÁ$ª*¯8�L² » ¼ Â, ½8ßÁ$¾$ à Ú8¤ ð*ò84õ8ï2,ü � ‚ ‹8œ ƒ$ „7{n}Á,†$ Œ% Ÿ8œ ± ²8ØL³ ¼ Ã8•Å4½% ⌞$« ° Ž" ¶ Ê , ·8”$¸& ¼8‚¾$ À, Â8 Ã& Æ8‚È*Ì Ï ‹" 8$Ù8�$Þ â, ã8”$ä è8 ê, î8 ï ó …"8 �8”$„ ˆ –8Ú4‰& �, ‘8”$’(˜, ›8 œ   û!+ ² ³ ó8ì´ · ò8Á¸ » ñ8Ì$¼$ À8ªÂ Å ð8ÅLÆ Ð7€4Ò$ Ø8Æ Ú Ý ï8¸TÞ é7‘$ë8"4…  Œ  Ü  ¢ , £ 8 ¤  § '¨ 8¶S\ª  µ  Ê 8Ú4¶  ¼ 8‘S\½  È  É + î  ï  ü 8ìð  ó  û 8É<ô 8"4Ž! •! í! «!, ¬!8 ­! °!'±!8from_raw_socketÁ|³! Â! Û!8Ú4Ã! É!8into_raw_socketÁ|Ê! Ù! Ú!% Œ"dé4Dí4&'(³‘$ûh‘�i˜ $$ôà<* Ùº¨TCý˜îydO”™Èzd]§™©³$›ù'ñ«¾,ioÁ°‰í ´¸AF_UNIXÁ<¹ Òýš©,Ó–‡üÂÈ\Úß ”€Ìdçì!•´™„õÇ"–AF_INETÁ<‡ Ô#ÿAF_INET6ÁD� Ü$€æ^4¦ì%æ^í%|¶D˜Œ�D8‚…uxhk|�Å€”v¤uült¥hkY\LOœ­Å€”“¤’ü‰UTÆCF03! ôöØÚlŸÈ”�ü¯>; The integer type used with `getsockname` on this platform.ÁL–¤šüº@= The integer type for the `ss_family` field on this platform.Á\£Ô¤üË2/ Rust version of the [`sockaddr_storage`] type.Áþ�ü‚a^ This type is intended to be used with with direct calls to the `getsockname` syscall. See theÁüä41 documentation of [`SockAddr::new`] for examples.Á™�ü�^[ This crate defines its own `sockaddr_storage` type to avoid semver concerns with upgradingÁ”ü `windows-sys`.Á|¯’y®M1´ð}Ïm)ÌÅ<Å((ªš¤ã’y+,-¼Â üþ1. Construct a new storage containing all zeros.Á4É ’yBÿ** +üõ "ü½ %" Returns the size of this storage.Á<ü ¤ ¤’yBÿ* „ * ,$… üó-üÌ # View this type as another type.Áô �dü # SafetyÁ� �ü• PM The type `T` must be one of the `sockaddr_*` types defined by this platform.Áê �tò ³³<… ï¸Ì‘  # #[allow(dead_code)]Áü¯ %" # #[cfg(unix)] mod unix_example {ÁìÙ  # use core::mem::size_of;Áüû  use libc::sockaddr_storage;ÁüŸ85 use socket2::{SockAddr, SockAddrStorage, socklen_t};ÁÜ�üäKH fn from_sockaddr_storage(recv_address: &sockaddr_storage) -> SockAddr {Áü´41 let mut storage = SockAddrStorage::zeroed();ÁüíLI let libc_address = unsafe { storage.view_as::() };Áü¾&# *libc_address = *recv_address;ÁüéUR unsafe { SockAddr::new(storage, size_of::() as socklen_t) }Á,à }Á<Í # }Á<Ùï¸<�¥ ¥’y ¥‹–ÿ*�.. Œ*þÆ‹– ‰ -‹–$‘ü¦(’y0 g0üÕBئ§¨ ¦’y §€g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡¨œ‰Bÿ/ Ü/ 0$Ýœ ãlàÃy238:;<=>?@ABCDEFü—$MüôC@ Create a `SockAddr` from the underlying storage and its length.Á¼�dÄðÛÕ�üÝKH Caller must ensure that the address family and length match the type ofÁü­KH storage address. For example if `storage.ss_family` is set to `AF_INET`ÁüýKH the `storage` must be initialised as `sockaddr_in`, setting the contentÁìÍ and length appropriately.Áï�t÷³³Š�<’ï¸üž(í³¤Ë # #[cfg(unix)] {Á„ä use std::io;Áìù use std::os::fd::AsRawFd;Á›�ü£C@ use socket2::{SockAddr, SockAddrStorage, Socket, Domain, Type};Áë�üó@= let socket = Socket::new(Domain::IPV4, Type::STREAM, None)?;Á¸�üÀ=: // Initialise a `SocketAddr` by calling `getsockname(2)`.Áü‚52 let mut addr_storage = SockAddrStorage::zeroed();Áü¼)& let mut len = addr_storage.size_of();Áê�üòEB // The `getsockname(2)` system call will initialize `storage` forÁü¼ /, // us, setting `len` to the correct length.Á´ð  let res = unsafe {ÁÔ‹! libc::getsockname(Áüª! socket.as_raw_fd(),ÁüÎ!# addr_storage.view_as(),Á¬ö! &mut len,ÁL�" )Á4ž" };Á”©" if res == -1 {ÁüÀ"/, return Err(io::Error::last_os_error());Á,ô"÷áþ"�ü†#>; let address = unsafe { SockAddr::new(addr_storage, len) };Á¤É# # drop(address);Á<â#…âdî# # Ok(())Á<ÿ#…â<‹$︫$’yÃyÿ11 2·fM¶oMü«2–üØ%;8 Initialise a `SockAddr` by calling the function `init`.Á˜&�ü &LI The type of the address storage and length passed to the function `init`Áüñ&  is OS/architecture specific.Á–'�üž'FC The address is zeroed before `init` is called and is thus valid toÁüé'KH dereference and read from. The length initialised to the maximum lengthÁœ¹( of the storage.ÁÑ(�dÙ(ðÛê(�üò(KœæüÂ)Kñæü’*KÆçìâ*šè„+�tŒ+³³Ÿ+�<§+ï¸ü³+(í³¤à+€é„ù+�éìŽ,¶é°,�ü¸,2/ use socket2::{SockAddr, Socket, Domain, Type};Áï,�ü÷,@Âê¼-�üÄ-=˜ëü†. let (_, address) = unsafe {Áüª.0- SockAddr::try_init(|addr_storage, len| {Áüß.MJ // The `getsockname(2)` system call will initialize `storage` forÁü±/74 // us, setting `len` to the correct length.Áüí/VS if libc::getsockname(socket.as_raw_fd(), addr_storage.cast(), len) == -1 {ÁüÈ0/, Err(io::Error::last_os_error())Á¤ü0 } else {Á´•1 Ok(())Ál°1 }ÁTÂ1 })Á<Ñ1 }?;Á¤Ý1ðð<ö1…âd‚2šñ<“2…â<Ÿ2ï¸D¹2£¢µªÿ1‚4�5541þÆ£¢ Â2þÆç£ Å2‹#£¢©¢üƒ3=�#£¢©¢¬«l³3 3£¢ç£¤¬UVXRTìÐ3dÖ3,·73�7�7�773Þ¨ü�:QüÑ8LI Constructs a `SockAddr` with the family `AF_UNIX` and the provided path.Á¢9�üª9:7 Returns an error if the path is longer than `SUN_LEN`.ÁÅ€”ó9¤ò9üé9$”:™´áµBÿ1Œ991þÆ™´ ™:£™´Ÿ´\Ò: 8™´ª ÁZ')üÌ<6ü¡;" Set the length of the address.ÁÈ;�dÐ;ðÛá;�üé;IF Caller must ensure that the address up to `length` bytes are properlyÁ„·< initialised.ÁTÚ<ª ªÃyÿ1 å<1 :$ê<ñ]`[üÒ=)ü«=" Returns this address's family.Á4ß=« «ÃyBÿ1 æ=1 ;$ç=üÑ>$ü¨>$! Returns this address's `Domain`.Á4Þ>¬ ¬ÃyÍ�Bÿ1 å>1 <$æ>üæ?$ü³?.+ Returns the size of this address in bytes.Áó?­ ­ÃyBÿ1 ÷?1 =$ø?ü×@4ü©@)& Returns a raw pointer to the address.Á4ä@® ®Ãy‰¾Bÿ1 ë@1 >$ì@ü�B0üäA'$ Returns the address as the storage.ÁT�BÃy’yBÿ11 ?ï_üîC#ü•CTQ Returns true if this address is in the `AF_INET` (IPv4) family, false otherwise.Á<ûC¯ ¯ÃyBÿ1 ƒD1 @$„DüºE#üØDJG Returns true if this address is in the `AF_INET6` (IPv6) family, falseÁt§E otherwise.Á<ÇE° °ÃyBÿ1 ÏE1 A$ÐEìéGü¥F\Y Returns true if this address is of a unix socket (for local interprocess communication),Áü†G:7 i.e. it is from the `AF_UNIX` family, false otherwise.ÁÅ€”ÏG¤ÎGüÅG<ðG± ±ÃyBÿ1 øG1 B$ùGüÜI-üÍHKH Returns this address as a `SocketAddr` if it is in the `AF_INET` (IPv4)Áü�I:7 or `AF_INET6` (IPv6) family, otherwise returns `None`.ÁLãI² ²ÃyóÕBÿ1 íI1 C$îIüçT4üŠTHE Returns this address as a [`SocketAddrV4`] if it is in the `AF_INET`Á\×T family.ÁtîT³ ³ÃyřǙș­É™Ê™àË™óG*¤�R{9 âzBÿ1 ýT1 D$þTüÿV4ü¡VIF Returns this address as a [`SocketAddrV6`] if it is in the `AF_INET6`Á\ïVð�t†W´ ´ÃyřǙș­É™Ê™àË™óG*¤�R{9 ¼{Bÿ1 •W1 E$–WÜèXDëXµ µÃy µàÚBÿ1 ôX1 F$õXü¬["ÃyH®HüÕ[%$Ø[…zÃyBÿGG Hù×$Ý[ü‡]$ÃyJ®Jü²]'$µ]âzÃyBÿII Jù×$º]üƒg$ÃyL®Lü®g'$±g¼{ÃyBÿKK Lù׈sä”sÃyN gNü·s:ºs¶·¸ ¶Ãy ·€g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡¸œ‰BÿM ¾sM N$¿sñÅsÜ©yÃyPù±PüËy"Îy¹º ¹Ãy ºÃyBÿO ÑyO P$Òyî Cy¤¥zÃy´¾zÃySühSüÛz3$Þz»¼ »Ãy ¼âöBÿR„TT ùzRþÆâö ãzƒiâöŒæz Sâö$úzƒC~*,T÷44û4y«¬Íθñê¾,UVöÐ$ý‰UXReadÁ$ƒçUYWriteÁ,‰� UZ²„<ðŒ‰U\ IoSliceMutÁTùü7U]¥�\”ý­U^ëÖDè¶—U_netÁ$�ù UaóÕD‡¨—UbShutdownÁD‘™DUc FromRawFdÁLñ¤#Ue IntoRawFdÁLü¦#Uf„�DáȲUg‚5$ýÉUiš©,ƒ–‡Ujü‰ETŠ ÅUk¨ET– ÈUlX$¢ÌUmãYLüœUnæ^4“ìUpæ^íUpô_D›„Uqô_…Uq¯[D¥³UrÈ�ad¯œUsø$½øUtøùUtŽ<„¡ ñUvŽ<òUvöW4³ ‡UwÀ`L» �UxÀ`‘UxDå¸<ó«ø›ž‰Œ<æÅ“¾œŸÅ€”´Å°¾¬Èüž@üšEü‘PºÅ“¾>Å€<Ű¾:852éÎÅ“¾pÅ€nŰ¾ljgdý¬Šð”ÞÅ¥Œ¯ÅøœÂü®(üª-ü¡8DöÿûòõÜß\ãÌ$¦Å€”°¸‘ŒÈœÇü¯,ü¥7üœBÌ?Å€=¸‘;97414ÌpÅ€n¸‘ljhebIœÖ<Tð/÷"%÷ú„õÌ$³Å“¾œÁŰ¾¬ÖüÀ,ü¼1ü²<ü©G-,‹!$áäÐÓÃÆ,™ Å“¾œÒÅ€”çŰ¾¬ûüÑ@üÍEüÄPâÅ“¾>Å€<Ű¾:852îÅ“¾pÅ€nŰ¾ljgd Å“¾¢Å€ Å°¾žœ™–<ŒúüÈ )& Owned wrapper around a system socket.Áò �üö MJ This type simply wraps an instance of a file descriptor (`c_int`) on UnixÁüÄ MJ and an instance of `SOCKET` on Windows. This is the main type exported byÁü’ HE this crate and is intended to mirror the raw semantics of sockets onÁüÛ FC platforms as closely as possible. Almost all methods correspond toÁü¢ IF precisely one libc or OS API call which is essentially just a "RusticÁüì ! translation" of what's below.ÁŽ �ü’ )& ## Converting to and from other typesÁ¼ �üÀ MJ This type can be freely converted into the network primitives provided byÁüŽKH the standard library, such as [`TcpStream`] or [`UdpSocket`], using theÁüÚ*' [`From`] trait, see the example below.Á…�ü‰&# [`TcpStream`]: std::net::TcpStreamÁü°&# [`UdpSocket`]: std::net::UdpSocketÁ×�\Û # NotesÁç�üëMJ Some methods that set options on `Socket` require two system calls to setÁü¹KH their options without overwriting previously set options. We do this byÁü…NK first getting the current settings, applying the desired changes, and thenÁüÔPM updating the settings. This means that the operation is **not** atomic. ThisÁü¥NK can lead to a data race when two threads are changing options in parallel.Áô�tø³³l‡Ö³ü•(í³ü¾,Ÿ´üë(Õ´”�ä˜ // create a TCP listenerÁüµ@ѵö�üú=жü¸! let address = address.into();ÁÜÚ socket.bind(&address)?;ÁÄö·��ü“.ð·T§¸¬Íº¸tãظ<òï¸4…Ð}Úñ¾¶î†ðz”’,’Uyy›…\©Ð}|}~€‚ƒ†‡ˆ‰Š‹�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ªüà5DîÐ}Bÿ{{ |@÷ü¬-4º½ ½Ð}Bÿ{ Á{ }$Âü�.D�Ð}Bÿ{{ ~`�üÛ"Vüô/, Creates a new socket and sets common flags.Á¨�ü°HE This function corresponds to `socket(2)` on Unix and `WSASocketW` onÁdý Windows.ÁŽ �ü– JG On Unix-like systems, the close-on-exec flag is set on the new socket.Áüå IF Additionally, on Apple platforms `SOCK_NOSIGPIPE` is set. On Windows,Áü³!'$ the socket is made non-inheritable.Áß!�üç!LI [`Socket::new_raw`] can be used if you don't want these flags to be set.Áø3Ç#Ÿô¸"  Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Áâ"Í�…‚řǙș­É™Ê™àË™óG*¤�R{9 ½‚ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÐ}ž£Bÿ{{ è4æ"‚ö"àGD€#ü‰&Zü®$0- Creates a new socket ready to be configured.Áã$�üë$H¼·ü¸%LI Windows and simply creates a new socket, no other configuration is done.Á<�&Í�…‚²ÂúÂBÿ{{ €è4˜&‚¨&àGD²&�'€�������€�½‚Uÿüá*€üé'@= Creates a pair of sockets which are connected to each other.Á®(�ü¶(1. This function corresponds to `socketpair(2)`.Áì(�üô(EB This function sets the same flags as in done for [`Socket::new`],Áü¾)JG [`Socket::pair_raw`] can be used if you don't want to set those flags.ÁøHÅ%hü�*(ã Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: ÁÓª|Ä*Ì$Õ*¼Ã*üº*"$è*Í�…‚²ÂÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÐ}Ð}ž£Bÿ{{ ‚è4ö*‚Ž+àGD +üÜ.„ü²-@îÅ÷-�üÿ-1ÄÆÓª|¿.Ì$Ð.¼¾.üµ."Dã.Í�…‚²ÂàÏBÿ{{ ƒè4õ.‚�/àGDŸ/�0ƒ�„�„�„„ƒ„ÎÆDÚ0ƒ�…�…�……ƒ…¯ÐUÿüÙ28üš1/, Binds this socket to the specified address.ÁÎ1�üÖ1KH This function directly corresponds to the `bind(2)` function on WindowsÁl¦2 and Unix.Áø`Ç#Ÿä¸2Ž Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Á$à2¾¿ ¾Ð} ¿Ãy±–Bÿ{ å2{ †$æ2Ÿ<ì2üä:;üÉ3B? Initiate a connection on this socket to the specified address.Á�4�ü˜4FC This function directly corresponds to the `connect(2)` function onÁ¬ã4 Windows and Unix.Áý4�ü…5GD An error will be returned if `listen` or `connect` has already beenÁÜÑ5 called on this builder.ÁøxÇ#Ÿüñ5© Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Á•6�\�6¯­­6�üµ6A> When using a non-blocking connect (by setting the socket intoÁüû6KH non-blocking mode before calling this function), socket option can't beÁüË7EB set *while connecting*. This will cause errors on Windows. SocketÁü•8EB options can be safely set before and after connecting the socket.Áß8�üç8KH On Cygwin, a Unix domain socket connect blocks until the server acceptsÁü·9HE it. If the behavior is not expected, try [`Socket::set_no_peercred`]Á”„: (Cygwin only).Á<ë:ÀÁ ÀÐ} ÁÃy±–Bÿ{ ó:{ ‡$ô:Ÿ<ú:ü¬CSüÚ;GD Initiate a connection on this socket to the specified address, onlyÁü¦JG connect(2), and then waits for the connection to complete with poll(2)Áüü>GD on Unix and select on Windows. When the connection is complete, theÁüÈ?EB socket is set back to blocking mode. On Unix, this will loop overÁœ’@ `EINTR` errors.Áª@�t²@ # WarningsÁÅ@�üÍ@IF The non-blocking state of the socket is overridden by this function -Áü›ALI it will be returned in blocking mode on success, and in an indeterminateÁ¬ìA state on failure.Á†B�üŽBJG If the connection request times out, it may still be processing in theÁüÝBJG background - a second call to `connect` or `connect_timeout` may fail.Á|³CÂà ÂÐ} ÃÃyø�±–Bÿ{ ÃC{ ˆ$ÄCù×$ÊCtimeoutÁ<ÛCüßJ6üòGGD Mark a socket as ready to accept incoming connection requests usingÁ̾H [`Socket::accept()`].ÁÜH�üäHEB This function directly corresponds to the `listen(2)` function onÁ¬®IÅÜÈI�üÐIGðÜÜœJÀÝø�Ç#Ÿô¼J  Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Á4æJÄ ÄÐ}±–Bÿ{ íJ{ ‰$îJbacklogÁ<ôJüëP6üÏK85 Accept a new incoming connection from this listener.ÁŒL�ü”LDA This function uses `accept4(2)` on platforms that support it andÁüÝL&# `accept(2)` platforms that do not.ÁˆM�ü�ME‹ÇüÚMLI [`Socket::accept_raw`] can be used if you don't want to set those flags.Áø¨Ç#Ÿô«N  Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: ÁÎN�\ÖN¯­æN�üîNK‘çü¾OHæç”‹P·è4òPÅ ÅÐ}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÐ}Ãyž£Bÿ{ ùP{ Š$úPüå\:ü¼[8þûù[�ü�\EB This function directly corresponds to the `accept(2)` function onÁ¬Ë\ÅÜTì\Æ ÆÐ}݆Bÿ{ ÷\{ ‹$ø\|É]‹�Œ�Œ�ŒŒ‹ŒÃy¬‡Uÿü„a0ü…^@= Returns the socket address of the local half of this socket.ÁÊ^�üÒ^JG This function directly corresponds to the `getsockname(2)` function onÁ¬¡_ÅÜøÀÇ#Ÿü»_#Í Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Áã_�\ë_¯­û_�üƒ`EB Depending on the OS this may return an error if the socket is notÁdÍ` [bound].ÁÞ`�Ìæ` [bound]: Socket::bindÁT‹aÇ ÇÐ}áµBÿ{ –a{ �$—aüÚd/üêaA> Returns the socket address of the remote peer of this socket.Á°b�ü¸bJG This function directly corresponds to the `getpeername(2)` function onÁ¬‡cÅÜøØÇ#Ÿü¡c#Í Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: ÁÉc�\Ñc¯­ác�üéc=: This returns an error if the socket is not [`connect`ed].Á«d�ü³d" [`connect`ed]: Socket::connectÁLádÈ ÈÐ}áµBÿ{ ëd{ Ž$ìdü¤f(ü¿eKH Returns the [`Type`] of this socket by checking the `SO_TYPE` option onÁ„�f this socket.Á4«fÉ ÉÐ}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw…‚ž£Bÿ{ ²f{ �$³füòk-ü¹gFC Creates a new independently owned handle to the underlying socket.Á„h�\Œh¯­œh�ü¤hIF On Unix this uses `F_DUPFD_CLOEXEC` and thus sets the `FD_CLOEXEC` onÁÄòh the returned socket.Á�i�ü—iKH On Windows this uses `WSA_FLAG_NO_HANDLE_INHERIT` setting inheriting toÁTçi false.Áöi�üþiDA On Windows this can **not** be used function cannot be used on aÁÜÇj QOS-enabled socket, seeÁüçjb_ .ÁÅ€”Øk¤×küÎkLùkÊ ÊÐ}úÂBÿ{ ƒl{ �$„lü‚p-üélLI Returns true if this socket is set to nonblocking mode, false otherwise.Áºm�\Âm¯­Òm�üÚmFC On Unix this corresponds to calling `fcntl` returning the value ofÁŒ¥n `O_NONBLOCK`.Á»n�üÃnGD On Windows it is not possible retrieve the nonblocking mode status.ÁÓª|¢oÌ$¿oÅ€”Éo¸‘ŒáoœàoüÈo,ü¾o7ü˜ocü�on\‰pË ËÐ}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwž£Bÿ{ •p{ ‘$–püòrBüåp63 Moves this socket into or out of nonblocking mode.Á q�\¨q¯­¸q�üÀqIF On Unix this corresponds to calling `fcntl` (un)setting `O_NONBLOCK`.ÁŽr�ü–rDA On Windows this corresponds to calling `ioctlsocket` (un)settingÁtßr `FIONBIO`.Á|ùrÌ ÌÐ}±–Bÿ{ ‰s{ ’$Šs½ \�süþu7üûsB? Shuts down the read, write, or both halves of this connection.ÁÂt�üÊtHE This function will cause all pending and future I/O on the specifiedÁü—u=: portions to return immediately with an appropriate value.ÁøðÇ#ŸüÙu ² Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: ÁD…vÍ ÍÐ}™DšD›DÆšœD�DÝšžDŸDBothÁ•IÒ) «©±–Bÿ{ Žv{ “$�vhowÁ•vüµ~DüívFC Receives data on the socket from the remote address to which it isÁt¸w connected.ÁËw�üÓwHE The [`connect`] method will connect this socket to a remote address.Áü x:7 This method might fail if the socket is not connected.ÁøˆÇ#ŸäßxŽ Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Á€y�üˆy  [`connect`]: Socket::connectÁ­y�dµyðÛÆy�üÎyGD Normally casting a `&mut [u8]` to `&mut [MaybeUninit]` would beÁüšzJG unsound, as that allows us to write uninitialised bytes to the buffer.ÁüézLI However this implementation promises to not write uninitialised bytes toÁüº{FC the `buf`fer and passes it directly to `recv(2)` system call. ThisÁü…|HE promise ensures that this function can be called using a `buf`fer ofÁ¬Ò| type `&mut [u8]`.Áì|�üô|LI Note that the [`io::Read::read`] implementation calls this function withÁüÅ}KH a `buf`fer of type `&mut [u8]`, allowing initialised buffers to be usedÁÜ•~ without using `unsafe`.Á$¼~ÎÏ ÎÐ} ÏÙ»û“Bÿ{ Á~{ ”$Â~ɉÈ~üç‚Pü¬LI Receives out-of-band (OOB) data on the socket from the remote address toÁüýFC which it is connected by setting the `MSG_OOB` flag for this call.ÁÈ€�üЀ?< For more information, see [`recv`], [`out_of_band_inline`].Á”��Ôœ� [`recv`]: Socket::recvÁü»�63 [`out_of_band_inline`]: Socket::out_of_band_inlineÁÅ€”Í‚¤Ì‚ü„î‚ÐÑ ÐÐ} ÑÙ»û“Bÿ{ ÿ‚{ •$€ƒɉ†ƒü‘…�üõƒLI Identical to [`recv`] but allows for specification of arbitrary flags toÁüÆ„ the underlying `recv` call.Áê„�Ôò„¶Ç|˜…ÒÓ ÒÐ} ÓÙ»û“Bÿ{ ±…{ –$²…ɉÀ…ØZ,å…ü“‘wü͆F¢¶ü˜‡DA connected. Unlike [`recv`] this allows passing multiple buffers.Áá‡�üé‡H•·ü¶ˆ:ç·õˆ�üýˆLI In addition to the number of bytes read, this function returns the flagsÁüΉJG for the received message. See [`RecvFlags`] for more information aboutÁ¼�Š the returned flags.Áø Ç#Ÿü¹Š© Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: ÁÝŠ�Ô劶Çü„‹ Ù¾©‹�d±‹ðÛ‹�üÊ‹KH Normally casting a `IoSliceMut` to `MaybeUninitSlice` would be unsound,ÁüšŒIF as that allows us to write uninitialised bytes to the buffer. HoweverÁüèŒHE this implementation promises to not write uninitialised bytes to theÁüµ�KH `bufs` and passes it directly to `recvmsg(2)` system call. This promiseÁü…ŽGD ensures that this function can be called using `bufs` of type `&mutÁ”ÑŽ [IoSliceMut]`.ÁèŽ�üðŽGD Note that the [`io::Read::read_vectored`] implementation calls thisÁü¼�JG function with `buf`s of type `&mut [IoSliceMut]`, allowing initialisedÁü‹�.+ buffers to be used without using `unsafe`.ÁÅ“¾œÌ�Å€”á�Ű¾¬õ�üË�@üÇ�Eü¾�Plš‘ÔÕÖ ÔÐ} Õ ññòŽ<ôó L®îÞ¡ÖÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwõ‚ž£Bÿ{ ±‘{ —$²‘bufsÁ$À‘ü§–˜üÇ’LI Identical to [`recv_vectored`] but allows for specification of arbitraryÁü˜“52 flags to the underlying `recvmsg`/`WSARecv` call.ÁÒ“�üÚ“,) [`recv_vectored`]: Socket::recv_vectoredÁ‹”�d“”ðÛ¤”�ü¬”JG `recv_from_vectored` makes the same safety guarantees regarding `bufs`ÁÌû” as [`recv_vectored`].Á™•�ü¡•,ÖÞÅ“¾œà•Å€”õ•Ű¾¬‰–üß•@üÛ•EüÒ•PÄ®–×ØÙ ×Ð} Ø ññòŽ<ôó L®îÞ¡Ù˜ÝBÿ{ Ж{ ˜$Ñ–”Ý$ß–ØZ,Š—üƒœDü„˜F¢¶üϘEB connected, without removing that data from the queue. On success,Áü™™'$ returns the number of bytes peeked.ÁÅ™�üÍ™JG Successive calls return the same data. This is accomplished by passingÁüœš>; `MSG_PEEK` as a flag to the underlying `recv` system call.Áßš�dçšðÛøš�ü€›EB `peek` makes the same safety guarantees regarding the `buf`fer asÁlÊ› [`recv`].ÁÜ›�Ôä›¶Ç$ŠœÚÛ ÚÐ} ÛÙ»û“Bÿ{ �œ{ ™$�œɉ–œüÛŸUü†�JG Receives data from the socket. On success, returns the number of bytesÁüÕ�30 read and the address from whence the data came.Áø¸Ç#Ÿü�ž ² Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Á²ž�dºžðÛËž�üÓžJG `recv_from` makes the same safety guarantees regarding the `buf`fer asÁl¢Ÿöå´Ÿ�Ô¼Ÿ¶ÇLâŸÜÝ ÜÐ} ÝÙ»ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÃyž£Bÿ{ ìŸ{ š$íŸɉóŸü—¢�üè HE Identical to [`recv_from`] but allows for specification of arbitraryÁüµ¡,) flags to the underlying `recvfrom` call.Áæ¡�üî¡$! [`recv_from`]: Socket::recv_fromÁ¤ž¢Þß ÞÐ} ßÙ»ÏñBÿ{ ¼¢{ ›$½¢ɉË¢ØZ,ð¢ü«¨†üä£HE Receives data from the socket. Returns the amount of bytes read, theÁü±¤HE [`RecvFlags`] and the remote address from the data is coming. UnlikeÁüþ¤74 [`recv_from`] this allows passing multiple buffers.ÁøÐÇ#Ÿüº¥°ÎÞ¥�üæ¥$üò�¦�d—¦ðÛ¨¦�ü°¦JµßÌÿ¦‰à�§�ü¥§,ÖÞÅ“¾œä§Å€”ù§Å°¾¬�¨üã§@üß§EüÖ§P”²¨àáâ àÐ} á ññòŽ<ôó L®îÞ¡âÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwõ‚Ãyž£Bÿ{ Ψ{ œ$Ϩ”Ý$ݨüæ­§üó©GD Identical to [`recv_from_vectored`] but allows for specification ofÁü¿ªC@ arbitrary flags to the underlying `recvmsg`/`WSARecvFrom` call.Á‡«�ü�«63 [`recv_from_vectored`]: Socket::recv_from_vectoredÁÊ«�dÒ«ðÛã«�üë«Jµß̺¬‰àج�üà¬,ÖÞÅ“¾œŸ­Å€”´­Å°¾¬È­üž­@üš­Eü‘­Pìí­ãäå ãÐ} ä ññòŽ<ôó L®îÞ¡åÔùBÿ{ ”®{ �$•®”Ý$£®ØZ,ήüç¹UüׯFC Receives data from the socket, without removing it from the queue.Á¢°�üª°Jáãüù°B? `MSG_PEEK` as a flag to the underlying `recvfrom` system call.ÁÀ±�üȱGD On success, returns the number of bytes peeked and the address fromÁÌ”² whence the data came.Á²²�dº²ðÛ˲�üÓ²JG `peek_from` makes the same safety guarantees regarding the `buf`fer asÁl¢³öå´³�ä¼³ # Note: Datagram SocketsÁüݳPM For datagram sockets, the behavior of this method when `buf` is smaller thanÁü²´MJ the datagram at the head of the receive queue differs between Windows andÁü„µNK Unix-like platforms (Linux, macOS, BSDs, etc: colloquially termed "*nix").Á×µ�üßµHE On *nix platforms, the datagram is truncated to the length of `buf`.Á¬¶�ü´¶IF On Windows, an error corresponding to `WSAEMSGSIZE` will be returned.Á‚·�üŠ·^[ For consistency between platforms, be sure to provide a sufficiently large buffer to avoidÁüí·KH truncation; the exact size required depends on the underlying protocol.Á½¸�üŸIF If you just want to know the sender of the data, try [`peek_sender`].Á“¹�Ô›¹¶Çüº¹(% [`peek_sender`]: Socket::peek_senderÁLî¹æç æÐ} çÙ»ÏñBÿ{ ø¹{ ž$ù¹ɉÿ¹ü�½1ü€»FC Retrieve the sender for the data at the head of the receive queue.ÁË»�üÓ»IF This is equivalent to calling [`peek_from`] with a zero-sized buffer,Áü¡¼63 but suppresses the `WSAEMSGSIZE` error on Windows.Áܼ�üä¼$! [`peek_from`]: Socket::peek_fromÁ\”½è èÐ}áµBÿ{  ½{ Ÿ$¡½üüÁ^üô½>; Receive a message from a socket using a message structure.Á·¾�ü¿¾KH This is not supported on Windows as calling `WSARecvMsg` (the `recvmsg`Áü�¿74 equivalent) is not straight forward on Windows. SeeÁüË¿›˜ ÁäëÀ for an example (in C++).ÁøèÇ#ŸüŒÁ°ÎÌ$ºÁÅ“¾œÈÁŰ¾¬ÝÁüÇÁ,üÃÁ1ü¹Á<ü°ÁG<ƒÂéêëìí éÐ} ꜜãY €¡¶X¸@û4èjëìíû“Bÿ{ ‹Â{  $ŒÂ‘Ì’ÂØZ,³Âü£Å3ü˜Ã1. Sends data on the socket to a connected peer.ÁÎÃ�üÖÃHE This is typically used on TCP sockets or datagram sockets which haveÁœ£Ä been connected.Á»Ä�üÃÄ:7 On success returns the number of bytes that were sent.Áø€Ç#Ÿä‚ÅŽ Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Á$ªÅîï îÐ} ïàÚû“Bÿ{ ¯Å{ ¡$°Åɉ¶Åü¥ÇLü‰Æ[X Identical to [`send`] but allows for specification of arbitrary flags to the underlyingÁ„éÆ `send` call.ÁþÆ� [`send`]: Socket::sendÁ|¬Çðñ ðÐ} ñàÚû“Bÿ{ ¼Ç{ ¢$½ÇɉÃÇØZ,ÏÇüÏÉFü¬ÈIF Send data to the connected peer. Returns the amount of bytes written.ÁÅ“¾œˆÉÅ€”�ÉŰ¾¬±Éü‡É@üƒÉEüúÈPlÖÉòóô òÐ} ó Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([Oôû“Bÿ{ äÉ{ £$åÉ”Ý$ëÉü�Í~üÒÊLI Identical to [`send_vectored`] but allows for specification of arbitraryÁü£Ë52 flags to the underlying `sendmsg`/`WSASend` call.Áø˜Ç#ŸüÝË© Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Á�Ì�ü‰Ì,) [`send_vectored`]: Socket::send_vectoredÁÅ“¾œÈÌÅ€”ÝÌŰ¾¬ñÌüÇÌ@üÃÌEüºÌPÄ–Íõö÷ õÐ} ö Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([O÷û“Bÿ{ ¸Í{ ¤$¹Í”Ý$ÇÍØZ,åÍüëÑ?üÒÎ@= Sends out-of-band (OOB) data on the socket to connected peerÁü—Ï0- by setting the `MSG_OOB` flag for this call.ÁÌÏ�üÔÏ?< For more information, see [`send`], [`out_of_band_inline`].Á˜Ð�Ô ÐŽ�ü¿Ð6ÛÇÅ€”ÑѤÐÑüÇÑ„òÑøù øÐ} ùàÚû“Bÿ{ ƒÒ{ ¥$„ÒɉŠÒüÇÔGüèÒJG Sends data on the socket to the given address. On success, returns theÁä·Ó number of bytes written.ÁØÓ�üàÓ?< This is typically used on UDP or datagram-oriented sockets.Áø°Ç#Ÿô¤Ô  Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: * Windows: Á<ÎÔúûü úÐ} ûàÚ üÃyû“Bÿ{ ÖÔ{ ¦$×ÔɉÝÔù×$éÔüñÖ‡üÊÕLI Identical to [`send_to`] but allows for specification of arbitrary flagsÁü›Ö$! to the underlying `sendto` call.ÁÄÖ�üÌÖ  [`send_to`]: Socket::send_toÁ”øÖýþÿ ýÐ} þàÚ ÿÃyû“Bÿ{ ”×{ §$•×ɉ£×ù×$·×ØZ,Ð×ü“ÚZü¼ØHE Send data to a peer listening on `addr`. Returns the amount of bytesÁd‰Ù written.ÁøÈÇ#ŸüšÙ—¢Å“¾œÌÙÅ€”áÙŰ¾¬õÙüËÙ@üÇÙEü¾ÙP„šÚ€�‚ƒ €Ð} � Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([O‚ ƒÃyû“Bÿ{ «Ú{ ¨$¬Ú”Ý$²Úù×$ÈÚü×Ýšü³ÛEB Identical to [`send_to_vectored`] but allows for specification ofÁüýÛA> arbitrary flags to the underlying `sendmsg`/`WSASendTo` call.ÁÃÜ�üËÜ2/ [`send_to_vectored`]: Socket::send_to_vectoredÁÅ“¾œ�ÝÅ€”¥ÝŰ¾¬¹Ýü�Ý@ü‹ÝEü‚ÝPÜÞÝ„…†‡ „Ð} … Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([O† ‡Ãyû“Bÿ{ ƒÞ{ ©$„Þ”Ý$’Þù×$°ÞØZ,ÉÞüöàWü¿ß96 Send a message on a socket using a message structure.ÁøàÇ#Ÿüýß—¢Å“¾œ¯àÅ€”ÄàŰ¾¬Øàü®à@üªàEü¡àP<ýàˆ‰Š‹Œ ˆÐ} ‰‡‡öW‹€Œ¶X)§N¢Éø:銋Œû“Bÿ{ …á{ ª$†á‘ÌŒáØZ,¦áüúâ*|ƒãU…‚…‚Bÿ «‚7‚üÑè9„ÔèUÐ}úÂBÿ ¬Ú4åè\Ñÿü³ý.+ Socket options get/set using `SOL_SOCKET`.Áâý�üæýEB Additional documentation can be found in documentation of the OS.Áü¬þB? * Linux: Áüïþa^ * Windows: ÁÐ}®°±²´µ¶·¹º¼½¿ÀÂÃÄÅÇÈÊËÌü¯�+üãÿ?< Get the value of the `SO_BROADCAST` option for this socket.Á§€�ü¯€B? For more information about this option, see [`set_broadcast`].Áö€�üþ€,) [`set_broadcast`]: Socket::set_broadcastÁL¶�‘ ‘Ð}¼©Bÿ­ À�­ ®$Á�\Ö‚®�¯�¯�¯¯®¯Uÿü°„>ü‡ƒ?< Set the value of the `SO_BROADCAST` option for this socket.Á˃�üÓƒGD When enabled, this socket is allowed to send packets to a broadcastÁdŸ„ address.Ál·„’ ’Ð}±–Bÿ­ Å„­ °$Æ„Å"LÌ„üºˆ9üĆ:7 Get the value of the `SO_ERROR` option on this socket.Áƒ‡�ü‹‡JG This will retrieve the stored error in the underlying socket, clearingÁüÚ‡LI the field in the process. This can be useful for checking errors betweenÁT«ˆ calls.ÁTÁˆ“ “Ð}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwřǙș­É™Ê™àË™óG*¤�R{9 ž£ž£Bÿ­ ̈­ ±$͈ü½Œ+üòŠ>; Get the value of the `SO_KEEPALIVE` option on this socket.Áµ‹�ü½‹B? For more information about this option, see [`set_keepalive`].Á„Œ�üŒŒ,) [`set_keepalive`]: Socket::set_keepaliveÁLÄŒ” ”Ð}¼©Bÿ­ ÎŒ­ ²$ÏŒ\ã�²�³�³�³³²³ÆÌüª�>ü”Ž;8 Set value for the `SO_KEEPALIVE` option on this socket.ÁÔŽ�üÜŽIF Enable sending of keep-alive messages on connection-oriented sockets.Ál±�• •Ð}±–Bÿ­ ¿�­ ´$À�‚#LÆ�üý’4ü¾‘;8 Get the value of the `SO_LINGER` option on this socket.Áþ‘�ü†’?< For more information about this option, see [`set_linger`].ÁÊ’�üÒ’&# [`set_linger`]: Socket::set_lingerÁ4„“– –Ð}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw±�ž£Bÿ­ ‹“­ µ$Œ“üõ™DüÒ”85 Set value for the `SO_LINGER` option on this socket.Á�•�ü—•HE If `linger` is not `None`, a close(2) or shutdown(2) will not returnÁüä•KH until all queued messages for the socket have been successfully sent orÁü´–DA the linger timeout has been reached. Otherwise, the call returnsÁüý–JG immediately and the closing is done in the background. When the socketÁüÌ—FC is closed as part of exit(2), it always lingers in the background.Á—˜�\Ÿ˜¯­¯˜�ü·˜HE On most OSs the duration only has a precision of seconds and will beÁ¼„™ silently truncated.Á ™�ü¨™HE On Apple platforms (e.g. macOS, iOS, etc) this uses `SO_LINGER_SEC`.ÁTü™— —Ð}±�±–Bÿ­ ‡š­ ¶$ˆš­#4Žšüè�4üÇ›;8 Get value for the `SO_OOBINLINE` option on this socket.Á‡œ�ü�œKH For more information about this option, see [`set_out_of_band_inline`].Áßœ�üçœ>; [`set_out_of_band_inline`]: Socket::set_out_of_band_inlineÁÅ“¾œ¸�Å€”Í�ü·�)ü³�.üª�9”ï�˜ ˜Ð}¼©Bÿ­ ‚ž­ ·$ƒžd˜Ÿ·�¸�¸�¸¸·¸ÆÌü‚£HüËŸ;8 Set value for the `SO_OOBINLINE` option on this socket.Á‹ �ü“ KH If this option is enabled, out-of-band data is directly placed into theÁüã LI receive data stream. Otherwise, out-of-band data is passed only when theÁü´¡GD `MSG_OOB` flag is set during receiving. As per RFC6093, TCP socketsÁü€¢?< using the Urgent mechanism are encouraged to set this flag.ÁÅ“¾œÒ¢Å€”ç¢üÑ¢)üÍ¢.üÄ¢9´‰£™ ™Ð}±–Bÿ­  £­ ¹$¡£ oob_inlineÁT§£ü §*ü¡¥:7 Get value for the `SO_PASSCRED` option on this socket.Áà¥�üè¥A> For more information about this option, see [`set_passcred`].Á®¦�ü¶¦*' [`set_passcred`]: Socket::set_passcredÁÅò œï¦Å« ¤„§üî¦+üå¦6D§§š šÐ}¼©Bÿ­ °§­ º$±§TŨº�»�»�»»º»ÆÌüâª<üô¨:7 Set value for the `SO_PASSCRED` option on this socket.Á³©�ü»©MJ If this option is enabled, enables the receiving of the `SCM_CREDENTIALS`Á¬�ª control messages.ÁÅò œ±ªÅ« ¤Æªü°ª+ü§ª6d骛 ›Ð}±–Bÿ­ öª­ ¼$÷ªŠ$Dýªüµ¯)üò¬:7 Get value for the `SO_PRIORITY` option on this socket.Á±­�ü¹­A> For more information about this option, see [`set_priority`].Áÿ­�ü‡®*' [`set_priority`]: Socket::set_priorityÁÓª|É®Åò œæ®ÅŒ ¬û®ÅÊ ¬’¯üå®Cü¿®oü¶®zD¼¯œ œÐ}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwž£Bÿ­ ů­ ½$Ư4Ù°½�¾�¾�¾¾½¾ÉÌUÿüƳ;ü‚±:7 Set value for the `SO_PRIORITY` option on this socket.ÁÁ±�üɱ\Y Packets with a higher priority may be processed earlier depending on the selected deviceÁβ queueing discipline.ÁÓª|Ú²Åò œ÷²ÅŒ ¬Œ³ÅÊ ¬£³üö²CüвoüDzzdͳ� �Ð}±–Bÿ­ Ú³­ ¿$Û³³$Dá³ü¯·3üÕµ85 Get value for the `SO_RCVBUF` option on this socket.Á’¶�üš¶IF For more information about this option, see [`set_recv_buffer_size`].Áè¶�üð¶:7 [`set_recv_buffer_size`]: Socket::set_recv_buffer_sizeÁ„¶·ž žÐ}û“Bÿ­ Ç·­ À$È·4Û¸À�Á�Á�ÁÁÀÁÉÌUÿü±ºAü†¹85 Set value for the `SO_RCVBUF` option on this socket.Áù�ü˹HE Changes the size of the operating system's receive buffer associatedÁ¤˜º with the socket.Á¤¸ºŸ ŸÐ}±–Bÿ­ ͺ­ Â$κß$Ôºüð½:üÀ¼:7 Get value for the `SO_RCVTIMEO` option on this socket.Áÿ¼�ü‡½HE If the returned timeout is `None`, then `read` and `recv` calls willÁ¼Ô½ block indefinitely.Ád÷½   Ð}§ÚBÿ­ „¾­ Ã$…¾ü¨ÀLüƒ¿:7 Set value for the `SO_RCVTIMEO` option on this socket.Á¿�üÊ¿C@ If `timeout` is `None`, then `read` and `recv` calls will blockÁŒ’À indefinitely.Á„¯À¡ ¡Ð}±�±–Bÿ­ ÀÀ­ Ä$ÁÀè”DÇÀü²Ã/üÛÁ>; Get the value of the `SO_REUSEADDR` option on this socket.ÁžÂ�ü¦ÂFC For more information about this option, see [`set_reuse_address`].ÁñÂ�üùÂ41 [`set_reuse_address`]: Socket::set_reuse_addressÁl¹Ã¢ ¢Ð}¼©Bÿ­ Çí Å$ÈÃ<ÝÄÅ�Æ�Æ�ÆÆÅÆÆÌü¤Ç>ü†Å;8 Set value for the `SO_REUSEADDR` option on this socket.ÁÆÅ�üÎÅHE This indicates that further calls to `bind` may allow reuse of localÁü›ÆKH addresses. For IPv4 sockets this means that a socket may bind even whenÁüëÆ41 there's a socket already listening on this port.ÁŒ«Ç£ £Ð}±–Bÿ­ ½Ç­ Ç$¾ÇA,ÄÇü‘Ë3ü´É;8 Get the value of the `SO_SNDBUF` option on this socket.ÁôÉ�üüÉIF For more information about this option, see [`set_send_buffer_size`].ÁÊÊ�üÒÊ:7 [`set_send_buffer_size`]: Socket::set_send_buffer_sizeÁ„˜Ë¤ ¤Ð}û“Bÿ­ ©Ë­ È$ªË4½ÌÈ�É�É�ÉÉÈɈûü�ÎAüèÌ85 Set value for the `SO_SNDBUF` option on this socket.Á¥Í�ü­ÍJG Changes the size of the operating system's send buffer associated withÁ|üÍ the socket.Á¤—Î¥ ¥Ð}±–Bÿ­ ¬Î­ Ê$­Îß$³ÎüÐÑ;üŸÐ:7 Get value for the `SO_SNDTIMEO` option on this socket.ÁÞÐ�üæÐIF If the returned timeout is `None`, then `write` and `send` calls willÁ¼´Ñïýl×Ѧ ¦Ð}§ÚBÿ­ åÑ­ Ë$æÑüŠÔMüäÒ:7 Set value for the `SO_SNDTIMEO` option on this socket.Á£Ó�ü«ÓDA If `timeout` is `None`, then `write` and `send` calls will blockÁŒôÓˆ€Œ‘Ô§ §Ð}±�±–Bÿ­ £Ô­ Ì$¤Ôè”DªÔü¼Õ=\ÅÕU�‘±�Bÿ Í­#DˆüöÖ?\ÿÖU±��‘Bÿ Îè”&Š\âÛüªÙLI Socket options for IPv4 sockets, get/set using `IPPROTO_IP` or `SOL_IP`.Á÷Ù�üûÙEâÅüÁÚ>; * Linux: Áü€Ûa^ * Windows: ÁÐ}ÐÒÓÕÖרÙÚÛÜÞßàáãäæçéêëíîðüÊß4üôÛ<9 Get the value of the `IP_HDRINCL` option on this socket.ÁµÜ�ü½ÜKH For more information about this option, see [`set_header_included_v4`].Á�Ý�ü•Ý>; [`set_header_included_v4`]: Socket::set_header_included_v4ÁÓª|ëÝÅ“¾œ™ÞʤºÞÅøœÜÞÅ€”ýÞŰ¾¬�ßü‹Þ±ü‡Þ¶üáÝâüØÝí”Ñߨ ¨Ð}¼©BÿÏ äßÏ Ð$åßTøàÐ�Ñ�Ñ�ÑÑÐÑÆÌüÄèFü§á<9 Set the value of the `IP_HDRINCL` option on this socket.Áèá�üðáIF If enabled, the user supplies an IP header in front of the user data.Áü¾âKH Valid only for [`SOCK_RAW`] sockets; see [raw(7)] for more information.ÁüŽãJG When this flag is enabled, the values set by `IP_OPTIONS`, [`IP_TTL`],ÁüÝã and [`IP_TOS`] are ignored.Á�ä�܉ä [`SOCK_RAW`]: Type::RAWÁü©ä>; [raw(7)]: https://man7.org/linux/man-pages/man7/raw.7.htmlÁüìä" [`IP_TTL`]: Socket::set_ttl_v4Áü“å" [`IP_TOS`]: Socket::set_tos_v4ÁÓª|åæÅ“¾œ“珤´çÅøœÖçÅ€”÷çŰ¾¬—èü…ç±ü�ç¶üÛæâüÒæí´Ëè© ©Ð}±–BÿÏ âèÏ Ò$ãèincludedÁDéèü”í3üÝê@= Get the value of the `IP_TRANSPARENT` option on this socket.Á¢ë�üªëJG For more information about this option, see [`set_ip_transparent_v4`].Áùë�ü�ì<9 [`set_ip_transparent_v4`]: Socket::set_ip_transparent_v4ÁÓª|ÌìÅò œáìÅŒ ¬öìüàì,üËìBüÂìMŒ›íª ªÐ}¼©BÿÏ ­íÏ Ó$®ílÆîÓ�Ô�Ô�ÔÔÓÔÆÌü¤öHüûî@= Set the value of the `IP_TRANSPARENT` option on this socket.ÁÀï�üÈï<9 Setting this boolean option enables transparent proxyingÁü‰ð:7 on this socket. This socket option allows the callingÁüÈð<9 application to bind to a nonlocal IP address and operateÁü‰ñ=: both as a client and a server with the foreign address asÁüËñ<9 the local endpoint. NOTE: this requires that routing beÁüŒò=: set up in a way that packets going to the foreign addressÁüÎò74 are routed through the TProxy box (i.e., the systemÁüŠó;8 hosting the application that employs the IP_TRANSPARENTÁüÊó96 socket option). Enabling this socket option requiresÁüˆô:7 superuser privileges (the `CAP_NET_ADMIN` capability).ÁÇô�üÏô;8 TProxy redirection with the iptables TPROXY target alsoÁü�õ>; requires that this option be set on the redirected socket.ÁÓª|ÜõÅò œñõÅŒ ¬†öüðõ,üÛõBüÒõM¬«ö« «Ð}±–BÿÏ ÁöÏ Õ$Âöì\Èöü’ü]üÇøKH Join a multicast group using `IP_ADD_MEMBERSHIP` option on this socket.Á—ù�üŸùJG This function specifies a new multicast group for this socket to join.ÁüîùIF The address must be a valid multicast address, and `interface` is theÁü¼úHE address of the local interface with which the system should join theÁü‰ûJG multicast group. If it's [`Ipv4Addr::UNSPECIFIED`] (`INADDR_ANY`) thenÁüØû52 an appropriate interface is chosen by the system.ÁŒ™ü¬­® ¬Ð} ­çÖ ®çÖ±–BÿÏ «üÏ Ö$¬üÍ�L²üã�LÈüüÙ€^üóþMJ Leave a multicast group using `IP_DROP_MEMBERSHIP` option on this socket.ÁÅÿ�üÍÿFC For more information about this option, see [`join_multicast_v4`].Á˜€�ü €41 [`join_multicast_v4`]: Socket::join_multicast_v4Á”à€¯°± ¯Ð} °çÖ ±çÖ±–BÿÏ ó€Ï ×$ô€Í�Lú€ã�L��ü¬Š�üŸ„KÞ¬ï„�ü÷„JÁ­üÆ…LI The address must be a valid multicast address, and `interface` specifiesÁü—†GD the local interface with which the system should join the multicastÁüã†+( group. See [`InterfaceIndexOrAddress`].Á ÅÜŒª‡Åú œÅ‡ÅÞ ¬â‡Å„ ¤�ˆÅ— ¬ŸˆÅ“¾œ¾ˆÅÓ ¬ÛˆÅ¥ŒúˆÅ¹¤•‰ÅË”³‰Å« ¤Ï‰Å€”í‰Å°¾¬‰Šü ‡„üœ‡‰ü“‡”œ³Š²³´ ²Ð} ³çÖ ´ã|±–BÿÏ ЊÏ Ø$ÑŠÍ�Lߊã�LýŠüÅ’ŽüÀ�Mâ±’Ž�üšŽHE For more information about this option, see [`join_multicast_v4_n`].ÁçŽ�üïŽ85 [`join_multicast_v4_n`]: Socket::join_multicast_v4_nÁ ÅÜŒÃ�Åú œÞ�ÅÞ ¬û�Å„ ¤š�Å— ¬¸�Å“¾œ×�ÅÓ ¬ô�Å¥Œ“‘ʤ®‘Å˔̑ū ¤è‘Å€”†’Ű¾¬¢’ü¹�„üµ�‰ü¬�”¤Ì’µ¶· µÐ} ¶çÖ ·ã|±–BÿÏ ê’Ï Ù$ë’Í�Lù’ã�L—“üÞœ�üÛ•XU Join a multicast SSM channel using `IP_ADD_SOURCE_MEMBERSHIP` option on this socket.Á¸–�üÀ–LI This function specifies a new multicast channel for this socket to join.Áü‘—]Z The group must be a valid SSM group address, the source must be the address of the senderÁüó—_\ and `interface` is the address of the local interface with which the system should join theÁüטJ½¯ü¦™5’° Å  ¼÷™Åú œ˜šÅ±”µšÅ„ ¤ÑšÅ— ¬ïšÅ“¾œŽ›ÅÊ ¬«›Å¥ŒÊ›Å¹¤å›ÅË”ƒœÅ€”ŸœÅ°¾¬»œüí™éüé™îüà™ù\圸¹º» ¸Ð} ¹çÖ ºçÖ »çÖ±–BÿÏ úœÏ Ú$ûœsourceÁ4‰�groupÁ,¤�ã�L¾�ü륎ü’¡TQ Leave a multicast group using `IP_DROP_SOURCE_MEMBERSHIP` option on this socket.Áë¡�üó¡@= For more information about this option, see [`join_ssm_v4`].Á¸¢�üÀ¢(% [`join_ssm_v4`]: Socket::join_ssm_v4Á Å  ¼„£Åú œ¥£Å±”£Å„ ¤Þ£Å— ¬ü£Å“¾œ›¤ÅÊ ¬¸¤Å¥Œ×¤Å¹¤ò¤ÅË”�¥Å€”¬¥Å°¾¬È¥üú¢éüö¢îüí¢ùdò¥¼½¾¿ ¼Ð} ½çÖ ¾çÖ ¿çÖ±–BÿÏ ˆ¦Ï Û$‰¦ØÃ4—¦çÃ,²¦ã�L̦ü¼¬2ü¡ªC@ Get the value of the `IP_MULTICAST_ALL` option for this socket.Áéª�üñªIF For more information about this option, see [`set_multicast_all_v4`].Á¿«�üÇ«:7 [`set_multicast_all_v4`]: Socket::set_multicast_all_v4ÁÓª|�¬Åò œ¡¬ü�¬&ü†¬1„ìÀ ÀÐ}¼©BÿÏ Ô¬Ï Ü$Õ¬,ï­Ü�Ý�Ý�ÝÝÜÝÆÌü÷²?ü”®C@ Set the value of the `IP_MULTICAST_ALL` option for this socket.ÁÜ®�üä®<9 This option can be used to modify the delivery policy ofÁü¥¯2/ multicast messages. The argument is a booleanÁüܯ@= (defaults to true). If set to true, the socket will receiveÁü¡°63 messages from all the groups that have been joinedÁüܰ=: globally on the whole system. Otherwise, it will deliverÁüž±;8 messages only from the groups that have been explicitlyÁüÞ±>; joined (for example via the `IP_ADD_MEMBERSHIP` option) onÁÜ¡² this particular socket.ÁÓª|˲Åò œÜ²üʲ&üÁ²1¤þ²Á ÁÐ}±–BÿÏ “³Ï Þ$”³ªš³ü�·5ü‹µB? Get the value of the `IP_MULTICAST_IF` option for this socket.ÁÒµ�üÚµHE For more information about this option, see [`set_multicast_if_v4`].Á§¶�ü¯¶85 [`set_multicast_if_v4`]: Socket::set_multicast_if_v4ÁÅ€”ö¶¤õ¶üì¶|—·Â ÂÐ}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwçÖž£BÿÏ §·Ï ß$¨·ü‹ºIüÒ¸B? Set the value of the `IP_MULTICAST_IF` option for this socket.Á™¹�ü¡¹A> Specifies the interface to use for routing multicast packets.ÁÅ€”ñ¹¤ð¹ü繜’ºÃÄ ÃÐ} ÄçÖ±–BÿÏ ¦ºÏ à$§ºã�L­ºüÁ¾3üؼDA Get the value of the `IP_MULTICAST_LOOP` option for this socket.Á¡½�ü©½JG For more information about this option, see [`set_multicast_loop_v4`].Áø½�ü€¾<9 [`set_multicast_loop_v4`]: Socket::set_multicast_loop_v4ÁŒÈ¾Å ÅÐ}¼©BÿÏ Ú¾Ï á$Û¾Lõ¿á�â�â�ââáâÆÌü‚ÂDü¢ÀDA Set the value of the `IP_MULTICAST_LOOP` option for this socket.ÁëÀ�üóÀJG If enabled, multicast packets will be looped back to the local socket.ÁüÂÁ;8 Note that this may not have any affect on IPv6 sockets.Á¬‰ÂÆ ÆÐ}±–BÿÏ ŸÂÏ ã$ Âloop_v4Á<¦Âü„Æ1üŸÄC@ Get the value of the `IP_MULTICAST_TTL` option for this socket.ÁçÄ�üïÄIF For more information about this option, see [`set_multicast_ttl_v4`].Á½Å�üÅÅ:7 [`set_multicast_ttl_v4`]: Socket::set_multicast_ttl_v4Á„‹ÆÇ ÇÐ}�óBÿÏ œÆÏ ä$�Æ,µÇä�å�å�ååäåÍôüÑÊ>üÜÇC@ Set the value of the `IP_MULTICAST_TTL` option for this socket.Á¤È�ü¬ÈFC Indicates the time-to-live value of outgoing multicast packets forÁü÷ÈJG this socket. The default value is 1 which means that multicast packetsÁüÆÉ>; don't leave the local network unless explicitly requested.Á‰Ê�ü‘Ê;¢Ý¤ØÊÈ ÈÐ}±–BÿÏ íÊÏ æ$îÊttlÁôÊü Î'üãÌ96 Get the value of the `IP_TTL` option for this socket.Á¡Í�ü©Í?< For more information about this option, see [`set_ttl_v4`].ÁíÍ�üõÍ&# [`set_ttl_v4`]: Socket::set_ttl_v4Á4§ÎÉ ÉÐ}�óBÿÏ ®ÎÏ ç$¯Î,¬Ïç�è�è�èèçèÍôü„Ñ4üÓÏ96 Set the value of the `IP_TTL` option for this socket.Á‘Ð�ü™ÐLI This value sets the time-to-live field that is used in every packet sentÁ¬êÐ from this socket.ÁT‹ÑÊ ÊÐ}±–BÿÏ –ÑÏ é$—ѵå�Ñü±Ö4üŸÒ96 Set the value of the `IP_TOS` option for this socket.ÁÝÒ�üåÒJG This value sets the type-of-service field that is used in every packetÁÔ´Ó sent from this socket.ÁÓÓ�üÛÓ\Y NOTE: Áü¼Ô@= documents that not all versions of windows support `IP_TOS`.ÁÅÊ ¬˜ÕÅ“¾œ·ÕÅÓ ¬ÔÕÅú œóÕÅ€”�ÖüŽÕ›üŠÕ ü�Õ«T¸ÖË ËÐ}±–BÿÏ ÃÖÏ ê$ÄÖtosÁÊÖüçÛ'üÌ×96 Get the value of the `IP_TOS` option for this socket.ÁŠØ�ü’Ø?< For more information about this option, see [`set_tos_v4`].ÁÖØ�üÞØ\ßìü¿Ù@Æí„Ú�üŒÚ&# [`set_tos_v4`]: Socket::set_tos_v4ÁÅÊ ¬ÎÚÅ“¾œíÚÅÓ ¬ŠÛÅú œ©ÛÅ€”ÆÛüÄÚ›üÀÚ ü·Ú«4îÛÌ ÌÐ}�óBÿÏ õÛÏ ë$öÛ,óÜë�ì�ì�ììëìÍôü¸ã?üšÝ=: Set the value of the `IP_RECVTOS` option for this socket.ÁÜÝ�üäÝ=: If enabled, the `IP_TOS` ancillary message is passed withÁü¦Þ<9 incoming packets. It contains a byte which specifies theÁüçÞ:7 Type of Service/Precedence field of the packet header.ÁÅÜŒ½ßÅ  ¼ØßÅÊ ¬ùßű”˜àÅÞ ¬´àÅ„ ¤ÓàÅ— ¬ñàÅ“¾œ�áÅÓ ¬­áÅú œÌáÅ¥ŒéᏤ„âÅøœ¢âÅË”¿âÅ« ¤ÛâÅ€”ùâŰ¾¬•ãü³ßýü¯ß‚ü¦ß�|¿ãÍ ÍÐ}±–BÿÏ ÏãÏ í$Ðãrecv_tosÁDÖãü¬ë-üÊå=: Get the value of the `IP_RECVTOS` option for this socket.ÁŒæ�ü”æDA For more information about this option, see [`set_recv_tos_v4`].ÁÝæ�üåæ0- [`set_recv_tos_v4`]: Socket::set_recv_tos_v4ÁÅÜŒ±çÅ  ¼ÌçÅÊ ¬íçű”ŒèÅÞ ¬¨èÅ„ ¤ÇèÅ— ¬åèÅ“¾œ„éÅÓ ¬¡éÅú œÀéÅ¥ŒÝ鏤øéÅøœ–êÅË”³êÅ« ¤ÏêÅ€”íêŰ¾¬‰ëü§çýü£ç‚üšç�\³ëÎ ÎÐ}¼©BÿÏ ¿ëÏ î$ÀëTÓìî�ï�ï�ïïîïÆÌü™ï5ü�íB? Get the value for the `SO_ORIGINAL_DST` option on this socket.ÁÓª|ÛíÅŒ ¬…îÅÊ ¬¨îÅò œËîÅɬìîü÷í•üÑíÁüÈíÌ| ïÏ ÏÐ}áµBÿÏ °ïÏ ð$±ï\Æòü†ðPM Socket options for IPv6 sockets, get/set using `IPPROTO_IPV6` or `SOL_IPV6`.Á×ð�üÛðEâÅü¡ñ@= * Linux: Áüâñc` * Windows: ÁÐ}òôõ÷øùúüýÿ€‚ƒ…†ˆ‰‹ŒŽ�‘’ü»÷4üØò<À•™ó�ü¡óKH For more information about this option, see [`set_header_included_v6`].Áñó�üùó>; [`set_header_included_v6`]: Socket::set_header_included_v6ÁÓª|Ïô Å“¾œýôʤžõÅøœÀõÅ— ¬áõŶ ¬„öÅ  ¼§öÅ„ ¤ÌöÅ€”îöŰ¾¬Ž÷üïô¾üëôÃüÅôïü¼ôú”Â÷Ð ÐÐ}¼©Bÿñ Õ÷ñ ò$Ö÷Tëøò�ó�ó�óóòóÆÌüÒ€Füšù<ç™Ûù�üãùI»šü±úK�›ü�ûJG When this flag is enabled, the values set by `IP_OPTIONS` are ignored.ÁÐû�ÜØûðœüøû>–�Óª|æý Å“¾œ”þʤµþÅøœ×þÅ— ¬øþŶ ¬›ÿÅ  ¼¾ÿÅ„ ¤ãÿÅ€”…€Å°¾¬¥€ü†þ¾ü‚þÃüÜýïüÓýú´Ù€Ñ ÑÐ}±–Bÿñ ð€ñ ô$ñ€øŸD÷€ü¦†3üíƒB? Get the value of the `IPV6_TRANSPARENT` option on this socket.Á´„�ü¼„JG For more information about this option, see [`set_ip_transparent_v6`].Á‹…�ü“…<9 [`set_ip_transparent_v6`]: Socket::set_ip_transparent_v6ÁÓª|Þ…Åò œó…ÅŒ ¬ˆ†üò…,üÝ…BüÔ…MŒ­†Ò ÒÐ}¼©Bÿñ ¿†ñ õ$À†l܇õ�ö�ö�ööõöÆÌü¾�Hü‘ˆB? Set the value of the `IPV6_TRANSPARENT` option on this socket.Á؈�üàˆ<å¤ü¡‰:¬¥üà‰<ñ¥ü¡Š=¸¦üãŠ<€§ü¤‹=ǧüæ‹7�¨ü¢Œ=: hosting the application that employs the IPV6_TRANSPARENTÁüäŒ9—©ü¢�:Û©á��üé�;­ªü©Ž>óªÓª|öŽÅò œ‹�ÅŒ ¬ �üŠ�,üõŽBüìŽM¬Å�Ó ÓÐ}±–Bÿñ Û�ñ ÷$Ü�ì\â�ü¨•Wüå‘MJ Join a multicast group using `IPV6_ADD_MEMBERSHIP` option on this socket.Á·’�ü¿’30 Some OSs use `IPV6_JOIN_GROUP` for this option.Á÷’�üÿ’JÁ­üΓI–®üœ”JG index of the interface to join/leave (or 0 to indicate any interface).ÁÅ¥Œù”ÅøœŒ•üø”(üô”-üë”8Œ¯•ÔÕ ÔÐ} Õß×±–Bÿñ Á•ñ ø$•Í�LÈ•ã�LÞ•ü�œXü§™OL Leave a multicast group using `IPV6_DROP_MEMBERSHIP` option on this socket.Áû™�üƒš41 Some OSs use `IPV6_LEAVE_GROUP` for this option.Á¼š�üÄšFC For more information about this option, see [`join_multicast_v6`].Á�›�ü—›41 [`join_multicast_v6`]: Socket::join_multicast_v6ÁÅ¥ŒÞ›Åøœñ›üÝ›(üÙ›-üЛ8””œÖ× ÖÐ} ×ß×±–Bÿñ §œñ ù$¨œÍ�L®œã�LÄœüœ¢2üŽ EB Get the value of the `IPV6_MULTICAST_HOPS` option for this socketÁØ �üà JG For more information about this option, see [`set_multicast_hops_v6`].Á¯¡�ü·¡<9 [`set_multicast_hops_v6`]: Socket::set_multicast_hops_v6ÁÅ€”‚¢¤�¢üø¡Œ£¢Ø ØÐ}�óBÿñ µ¢ñ ú$¶¢4Ó£ú�û�û�ûûúûÍôüѦ@üü£EB Set the value of the `IPV6_MULTICAST_HOPS` option for this socketÁƤ�üΤHE Indicates the number of "routers" multicast packets will transit forÁü›¥J±ãüê¥>†äÅ€”·¦¤¶¦ü­¦¬Ø¦Ù ÙÐ}±–Bÿñ î¦ñ ü$ï¦hopsÁ$õ¦üˆ«2üë¨EB Get the value of the `IPV6_MULTICAST_ALL` option for this socket.Áµ©�ü½©IF For more information about this option, see [`set_multicast_all_v6`].Á‹ª�ü“ª:7 [`set_multicast_all_v6`]: Socket::set_multicast_all_v6ÁÓª|ܪÅò œíªüÛª&üÒª1„�«Ú ÚÐ}¼©Bÿñ  «ñ ý$¡«,¿¬ý�þ�þ�þþýþÆÌü˱?üä¬EB Set the value of the `IPV6_MULTICAST_ALL` option for this socket.Á®­�ü¶­<¦Íü÷­2íÍü®®@ªÎüó®6õÎü®¯=¶Ïüð¯;þÏü°°@= joined (for example via the `IPV6_ADD_MEMBERSHIP` option) onÁÜõ°ŒÑÓª|Ÿ±Åò œ°±üž±&ü•±1¤Ò±Û ÛÐ}±–Bÿñ ç±ñ ÿ$豪î±üêµ0üã³DA Get the value of the `IPV6_MULTICAST_IF` option for this socket.Á¬´�ü´´HE For more information about this option, see [`set_multicast_if_v6`].Á�µ�ü‰µ85 [`set_multicast_if_v6`]: Socket::set_multicast_if_v6ÁÅ€”е¤ÏµüƵ|ñµÜ ÜÐ}�óBÿñ �¶ñ €$‚¶\�·€�������€�Íôü€ºCüзDA Set the value of the `IPV6_MULTICAST_IF` option for this socket.Á™¸�ü¡¸HE Specifies the interface to use for routing multicast packets. UnlikeÁüî¸KH ipv4, this is generally required in ipv6 contexts where network routingÁ̾¹ prefixes may overlap.ÁÅ€”湤å¹üܹœ‡ºÝ ÝÐ}±–Bÿñ ›ºñ ‚$œºã�L¢ºü‹¾3ü ¼FC Get the value of the `IPV6_MULTICAST_LOOP` option for this socket.Áë¼�üó¼JG For more information about this option, see [`set_multicast_loop_v6`].Á½�üʽ<9 [`set_multicast_loop_v6`]: Socket::set_multicast_loop_v6ÁŒ’¾Þ ÞÐ}¼©Bÿñ ¤¾ñ ƒ$¥¾Lÿƒ�„�„�„„ƒ„ÆÌüÔÁDüð¿FC Set the value of the `IPV6_MULTICAST_LOOP` option for this socket.Á»À�üÃÀLI Controls whether this socket sees the multicast packets it sends itself.Áü”Á;8 Note that this may not have any affect on IPv4 sockets.Á¬ÛÁß ßÐ}±–Bÿñ ñÁñ …$òÁloop_v6Á<øÁüÿÄ0üõÃDA Get the value of the `IPV6_UNICAST_HOPS` option for this socket.Á¾Ä�üÆÄ41 Specifies the hop limit for ipv6 unicast packetsÁ|†Åà àÐ}�óBÿñ –Åñ †$—Å4²Æ†�‡�‡�‡‡†‡ÍôüåÇ>üÛÆDA Set the value for the `IPV6_UNICAST_HOPS` option on this socket.Á¤Ç�ü¬Ç4×µ œìÇá áÐ}±–Bÿñ €Èñ ˆ$�ÈÌ  $‡ÈüÀË)üûÉ>; Get the value of the `IPV6_V6ONLY` option for this socket.Á¾Ê�üÆÊ@= For more information about this option, see [`set_only_v6`].Á‹Ë�ü“Ë(% [`set_only_v6`]: Socket::set_only_v6Á<ÇËâ âÐ}¼©Bÿñ ÏËñ ‰$ÐËLå̉�Š�Š�ŠŠ‰ŠÆÌü¹Ð:ü’Í>; Set the value for the `IPV6_V6ONLY` option on this socket.ÁÕÍ�üÝÍIF If this is set to `true` then the socket is restricted to sending andÁü«ÎLI receiving IPv6 packets only. In this case two IPv4 and IPv6 applicationsÁüüÎ,) can bind the same port at the same time.Á­Ï�üµÏEB If this is set to `false` then the socket can be used to send andÁüÿÏ52 receive packets from an IPv4-mapped IPv6 address.Á\ÀÐã ãÐ}±–Bÿñ ÌÐñ ‹$ÍÐÇ/<ÓÐüä×0üÈÒB? Get the value of the `IPV6_RECVTCLASS` option for this socket.Á�Ó�ü—ÓGD For more information about this option, see [`set_recv_tclass_v6`].ÁãÓ�üëÓ63 [`set_recv_tclass_v6`]: Socket::set_recv_tclass_v6ÁÅ  ¼½ÔÅÊ ¬ÞÔÅÞ ¬ýÔÅ„ ¤œÕÅ— ¬ºÕÅ“¾œÙÕÅÓ ¬öÕÅú œ•Öű”²ÖʤÎÖÅøœìÖÅË”‰×Å€”¥×Ű¾¬Á×ü³Ô©ü¯Ô®ü¦Ô¹të×ä äÐ}¼©Bÿñ ú×ñ Œ$û×l•ÙŒ�������Œ�ÆÌü�ßEüÉÙB? Set the value of the `IPV6_RECVTCLASS` option for this socket.Á�Ú�ü˜ÚKH If enabled, the `IPV6_TCLASS` ancillary message is passed with incomingÁüèÚJG packets. It contains a byte which specifies the traffic class field ofÁ´·Û the packet header.ÁÅ  ¼éÛÅÊ ¬ŠÜÅÞ ¬©ÜÅ„ ¤ÈÜÅ— ¬æÜÅ“¾œ…ÝÅÓ ¬¢ÝÅú œÁÝű”ÞÝŹ¤úÝÅøœ˜ÞÅË”µÞÅ€”ÑÞŰ¾¬íÞüßÛ©üÛÛ®üÒÛ¹”—ßå åÐ}±–Bÿñ ªßñ Ž$«ß recv_tclassÁ\±ßüÔç2ü²áDA Get the value of the `IPV6_RECVHOPLIMIT` option for this socket.Áûá�üƒâIF For more information about this option, see [`set_recv_hoplimit_v6`].ÁÑâ�üÙâ:7 [`set_recv_hoplimit_v6`]: Socket::set_recv_hoplimit_v6ÁÓª|«ãÉ<ÙãÅ  ¼îãÅÊ ¬“äÅÞ ¬¶äÅ„ ¤ÙäÅ— ¬ûäÅ“¾œžåÅÓ ¬¿åÅú œâåű”ƒæÅ¹¤£æÅË”ÅæÅ« ¤åæÅ€”‡çŰ¾¬§çüËãûüÇã€ü¡ã¬ü˜ã·„Ûçæ æÐ}¼©Bÿñ ìçñ �$íç|‰é����������ÆÌüðïIüÀéDA Set the value of the `IPV6_RECVHOPLIMIT` option for this socket.Á‰ê�ü‘êEB The received hop limit is returned as ancillary data by recvmsg()ÁüÛêDA only if the application has enabled the IPV6_RECVHOPLIMIT socketÁ\¤ë option:ÁÓª|ÇëÉ<õëÅ  ¼ŠìÅÊ ¬¯ìÅÞ ¬ÒìÅ„ ¤õìÅ— ¬—íÅ“¾œºíÅÓ ¬ÛíÅú œþíű”Ÿîʤ¿îÅË”áîÅ« ¤�ïÅ€”£ïŰ¾¬Ãïüçëûüãë€ü½ë¬ü´ë·¤÷ïç çÐ}±–Bÿñ Œðñ ‘$�ð recv_hoplimitÁl“ðüåó5üšòGD Get the value for the `IP6T_SO_ORIGINAL_DST` option on this socket.ÁÓª|ùòÅŒ ¬–óÅò œ­óÅɬÂóü•óCüïòoüæòz|ìóè èÐ}áµBÿñ üóñ ’$ýó\€÷üÒô@= Socket options for TCP sockets, get/set using `IPPROTO_TCP`.Á“õ�ü—õEâÅüÝõ?< * Linux: Áü�öb_ * Windows: ÁÐ}”•—™šœü®ú8ü’÷>; Get the value of the `TCP_KEEPIDLE` option on this socket.ÁÕ÷�üÝ÷^[ This returns the value of `TCP_KEEPALIVE` on macOS and iOS and `TCP_KEEPIDLE` on all otherÁüÀø%" supported Unix operating systems.ÁÓª|ýøÉ<«ùÅú œÀùÅ— ¬áùÅË”„úü�ùƒü™ùˆüóø´üêø¿”µúé éÐ}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwø�ž£Bÿ“ Èú“ ”$Éúüƒ‚<ü£û?< Get the value of the `TCP_KEEPINTVL` option on this socket.Áçû�üïûFC For more information about this option, see [`set_tcp_keepalive`].Áºü�üÂü41 [`set_tcp_keepalive`]: Socket::set_tcp_keepaliveÁÓª|ŽýÅŒ ¬¸ýÅ  ¼ÛýÅ÷Ä€þŶ ¬¦þÅÊ ¬ÉþÅÞ ¬ìþÅå Œ�ÿÅô ´®ÿÅò œÒÿň œóÿÅ„ ¤”€Å™ ”¶€Å© ¬Ö€Å« ¤ù€Åøœ›�Å€”À�¸‘ŒØ�œ×�ü¿�,üªýÌü„ýøüûüƒ´Š‚ê êÐ}�Ý Bÿ“ ¡‚“ •$¢‚4½ƒ•�–�–�––•–ÉÌø�UÿüüŠ6üûƒ=: Get the value of the `TCP_KEEPCNT` option on this socket.Á½„�üÅ„FîÝ �…�ü˜…4ÌÞ Óª|ä…ÅŒ ¬Ž†Å  ¼±†Å÷ÄֆŶ ¬ü†ÅÊ ¬Ÿ‡ÅÞ ¬Â‡Åå Œå‡Åô ´„ˆÅò œ¨ˆÅˆ œÉˆÅ„ ¤êˆÅ™ ”Œ‰Å© ¬¬‰Å« ¤Ï‰Åɬñ‰Åøœ”ŠÅ€”¹Š¸‘ŒÑŠœÐŠü¸Š,ü€†ïüÚ…›üÑ…¦¬ƒ‹ë ëÐ}�óBÿ“ ™‹“ —$š‹L®Œ—�˜�˜�˜˜—˜Íôüˆ™HüÝŒDA Set parameters configuring TCP keepalive probes for this socket.Á¦��ü®�DA The supported parameters depend on the operating system, and areÁü÷�KH configured using the [`TcpKeepalive`] struct. At a minimum, all systemsÁüÇŽIF support configuring the [keepalive time]: the time after which the OSÁü•�@= will start sending keepalive messages on an idle connection.ÁÚ��üâ�-* [keepalive time]: TcpKeepalive::with_timeÁ”��\œ�¯­¬��ü´�JG * This will enable `SO_KEEPALIVE` on this socket, if it is not alreadyÁtƒ‘ enabled.Áü–‘HE * On some platforms, such as Windows, any keepalive parameters *not*Áüã‘LI configured by the `TcpKeepalive` struct passed to this function may beÁü´’LI overwritten with their default values. Therefore, this function shouldÁü…“JG either only be called once per socket, or the same parameters shouldÁüÔ“(% be passed every time it is called.Á�”�t‰”³³œ”�<¤”ï¸ä°” use std::time::Duration;ÁÑ”�üÙ”63 use socket2::{Socket, TcpKeepalive, Domain, Type};Á”•�üœ•(í³üÉ•@ÂêüŽ–'$ let keepalive = TcpKeepalive::new()Áüº–+( .with_time(Duration::from_secs(4));Áüê–KH // Depending on the target operating system, we may also be able toÁüº—FC // configure the keepalive probe interval and/or the number ofÁü…˜  // retries here as well.Áª˜�ü²˜*' socket.set_tcp_keepalive(&keepalive)?;Átá˜ظ<ô˜ï¸€™�Œ�™ìí ìÐ} íÆ‹±–Bÿ“ ¡™“ ™$¢™paramsÁ4¨™ü‡œ-ü·š=: Get the value of the `TCP_NODELAY` option on this socket.Áùš�ü�›DA For more information about this option, see [`set_tcp_nodelay`].ÁÊ›�üÒ›0- [`set_tcp_nodelay`]: Socket::set_tcp_nodelayÁ\Žœî îÐ}¼©Bÿ“ šœ“ š$›œL¯�š�›�›�››š›ÆÌüó >üÜ�=: Set the value of the `TCP_NODELAY` option on this socket.Ážž�ü¦žEB If set, this option disables the Nagle algorithm. This means thatÁüðžIF segments are always sent as soon as possible, even if there is only aÁü¾ŸIF small amount of data. When not set, data is buffered until there is aÁüŒ KH sufficient amount to send out, thereby avoiding the frequent sending ofÁ”Ü  small packets.Á|ú ï ïÐ}±–Bÿ“ Š¡“ œ$‹¡nodelayÁ<‘¡¤ý¥Ð}žŸè鞟ü˜¦7$›¦ðñ ðÐ} ñàÚû“Bÿ�  ¦� ž$¥¦ɉ«¦ü¦©MÅ“¾œß¨Å€”ô¨Å°¾¬ˆ©üÞ¨@üÚ¨EüѨPl©©òóô òÐ} ó ü7ü7ý7Š›ÿ7óö7 ŽEøD²�<ôû“Bÿ� ·©� Ÿ$¼©”Ý$©D°­Ÿ� � �  Ÿ çÝUÿäÅ­Ì2¢¢�~£¤è飤ʭüè­7$ë­õö õ�~ öàÚû“Bÿ¡ ð­¡ £Ì2$õ­ɉû­üš°MÅ“¾œÓ¯Å€”è¯Å°¾¬ü¯üÒ¯@üίEüůPl�°÷øù ÷�~ ø ü7ü7ý7Š›ÿ7óö7 ŽEøD²�<ùû“Bÿ¡ «°¡ ¤Ì2$°°”Ý$¶°D£²¤�¥�¥�¥¥¤¥½� ¬¸²Ð}§¨©‚ ƒ † ¨©§üÔ²4,ײúû úÐ} ûàÚû“Bÿ¦ ݲ¦ §$â²ɉè²ü‚´GÅ“¾œ»³Å€”гŰ¾¬ä³üº³@ü¶³Eü­³Pt…´üýþ üÐ} ý Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([Oþû“Bÿ¦ ”´¦ ¨$™´”Ý$Ÿ´üø´%,û´ÿ ÿÐ}±–Bÿ¦ �µ¦ ©$†µ층Ì2««�~¬­®‚ ƒ † ¬­®½µüܵ4,ßµ€ �  € �~ � àÚû“Bÿª 嵪 ¬Ì2$êµɉðµüŠ·GÅ“¾œÃ¶Å€”ضŰ¾¬ì¶ü¶@ü¾¶Eüµ¶Pt�·‚ ƒ „  ‚ �~ ƒ Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([O„ û“Bÿª œ·ª ­Ì2$¡·”Ý$§·ü€¸%,ƒ¸…  … �~±–Bÿª ‰¸ª ®Ì2$ޏÔÀ¸Ð}° g°üá¸8丆 ‡ ˆ  † Ð} ‡ €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡ˆ œ‰Bÿ¯ 踯 °$鸜 ï¸\ƒ5<‡5»ñ ¾,±²¼�\„!±³¼�…!±³ò—d:ï­±´s,VÜ"±µAsFdÁ$²„$±·AsRawFdÁ<¸¢#±¸—œLÁ¤#±¹ó4«y±ºËDËÄ»´0•|L†\¤Ì$gÅ€”q¸‘Œ‰œˆüp,üf7ü]B«Ì9Å€8¸‘7531/ؾÌhÅ€g¸‘fdb`^ë×Ì—Å€–¸‘•“‘��l¤ö´Öü´PM A reference to a [`Socket`] that can be used to configure socket types otherÁü…" than the `Socket` type itself.Á¨�ü¬NK This allows for example a [`TcpStream`], found in the standard library, toÁüûOL be configured using all the additional methods found in the [`Socket`] API.ÁË�üÏJG `SockRef` can be created from any socket type that implements [`AsFd`]ÁüšGD (Unix) or [`AsSocket`] (Windows) using the [`From`] implementation.Áâ�üæ&ĬüÖHE [`AsFd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.AsFd.htmlÁüŸXU [`AsSocket`]: https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.htmlÁø�tü³³‹�ü�IF Below is an example of converting a [`TcpStream`] into a [`SockRef`].ÁÙ�<Ýï¸üå*' use std::net::{TcpStream, SocketAddr};Á� �Ì”  use socket2::SockRef;Á® �ü² ;8 # fn main() -> Result<(), Box> {Áüî 41 // Create `TcpStream` from the standard library.Áü£ 85 let address: SocketAddr = "127.0.0.1:1234".parse()?;ÁüÜ ?< # let b1 = std::sync::Arc::new(std::sync::Barrier::new(2));ÁÔœ  # let b2 = b1.clone();Áü· /, # let handle = std::thread::spawn(move || {Áüç FC # let listener = std::net::TcpListener::bind(address).unwrap();Áœ®  # b2.wait();Áü 63 # let (stream, _) = listener.accept().unwrap();Áüù B? # std::thread::sleep(std::time::Duration::from_millis(10));Á´¼  # drop(stream);ÁLÓ  # });Á„Ý  # b1.wait();Áüî .+ let stream = TcpStream::connect(address)?;Á��ü¡.+ // Create a `SockRef`erence to the stream.ÁüÐ,) let socket_ref = SockRef::from(&stream);Áüý30 // Use `Socket::set_tcp_nodelay` on the stream.Áü±&# socket_ref.set_tcp_nodelay(true)?;Á¬Ø drop(socket_ref);Áî�üò(% assert_eq!(stream.nodelay()?, true);Áì› # handle.join().unwrap();Ád¹šñ<Æ…â<Îï¸<á™4¼¼¨€q€Pp§Kö.½¾éä«4«±»»æ˜üê"Lê±»»„!„!…!¼�o$z�é - ™4Ð}ô‘™4ÀÀ¨€ÁÂÝ"Þ"–\¶4»¿¿Ð}üÑ ,Ô‰  ‰ ¨€ ‰ Ý"¨€Bÿ¿ Ú¿ ™4$Ûü£:ü’MJ On Windows, a corresponding `From<&impl AsSocket>` implementation exists.ÁÌ$êÅ€”ô¸‘ŒŒœ‹üó,üé7üàB™4Ä�ÅÄÅþÆù€ ¬„$ù€$ب€Æ®Æ¨)+ô�üä41 The caller must ensure `S` is actually a socket.Á$ ó€¨€BÿÃà ƙ4ù€Úz�ü·8Š Š ‡�È gÈüÝ8à‹ Œ �  ‹ ‡� Œ €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡� œ‰BÿÇ äÇ È8$åœ ë<§6«6ÌÏÐÑàíîðñòóôõ‡ˆ‰Š‹Œ��’”•—™œŸ ¡¢¤¦©«¬®°²³µ¶¸¹º»¼¾¿ÀÁÃÅÈËÌÍÎÏÐÓ®×minÁï øÉÊOsStrÁ,¢úÉ˲„<‡Œ‰É̼�\¡„!Éͼ�…!É͘ $½ôÉÏà<à ÙÉÐ¥�\Ìý­ÉÑü›Dè™DÉÒóÕD�¨—ÉÔëÖD‹¶—ÉÕ NonZeroU32ÁT䦿ÉÖ NonZeroUsizeÁdº ÈçÉ×»� $Ú „$ÉÙÔ� <à ¢#ÉÚ’ŸTé ®LÉÛ—œLõ ¤#ÉܳœL€ ¦#ÉÝ¥„<‹ í#ÉÞRawFdÁ,” ¡#ÉßOsStrExtÁDÔ ÍDÉà�†dš ‹GÉâÕ…d¨ ÛGÉã�…T¶ ¤HÉ䩳$ò ù'Éåí � ¸Éæ„�D– ȲÉèInstantÁ<  ÑRÉéöд ‰Éëå,¸ ½2Éìssize_tÁ<øãÉí¸ÍDŒ»ÉïÛÉ<–¯Éð¡|Ì(ÉñÉæ^4éìÉóæ^íÉóô_Dñ„Éôô_…Éô¯[Dû³ÉõÈ�ad…œÉöø$“øÉ÷øùÉ÷öW4÷‡ÉùãYLÿœÉúÀ`LŠ�ÉûÀ`‘Éûš©,°–‡üžÑ<‚ ÒýžÒ<¡ Ôÿ½ÒDª Ü€ SOCK_DCCPÁL� ËA�SOCK_RAWÁDÜ ²‚SOCK_SEQPACKETÁtí ÊAƒ SOCK_DGRAMÁT“  J… SOCK_STREAMÁ\Ÿ ŸJ† IPPROTO_DCCPÁd‹ è‡ IPPROTO_MPTCPÁlÊ ûˆ IPPROTO_SCTPÁd¼ õ‰IPPROTO_UDPLITEÁ|Œ ÷Š IPPROTO_ICMPÁdÓ �ŒIPPROTO_ICMPV6Átá ‘� IPPROTO_TCPÁ\ˆ ’� IPPROTO_UDPÁ\• “��\ÊŠ’˜D×Ô“ÂÈ\áß”€Ìdîì•´™„üÇ–ÿL޲ — MSG_TRUNCÁL £˜ SO_OOBINLINEÁdœ ëR™Ipv6MreqÁDš Κ IPV6_HDRINCLÁdë  Ÿ›IPV6_RECVHOPLIMITÁŒé$ ¢œIPV6_RECVTCLASSÁ|�( ®� IP_HDRINCLÁTÿ) ¶ž IP_RECVTOSÁTæ- ÀŸIP_TOSÁ4›/ ´ Î LË0 îR¡ SO_PASSCREDÁ\á2 ñR¢ SO_PRIORITYÁ\ò3 íR£IpMreqÁ4¥4·¥­#4­4�¦ IPPROTO_IPÁTµ4 ”§ IPPROTO_IPV6ÁdÁ4 •¨IPV6_MULTICAST_LOOPÁœÏ4 “©IPV6_UNICAST_HOPSÁŒä4 �ª IPV6_V6ONLYÁ\û4 š«IP_ADD_MEMBERSHIPÁŒˆ5 ЬIP_DROP_MEMBERSHIPÁ”›5 Ñ­IP_MULTICAST_LOOPÁŒ¯5 Ï®IP_MULTICAST_TTLÁ„Â5 ίIP_TTLÁ4Ø5 µ°MSG_PEEKÁDà5  ± SOL_SOCKETÁTê5 âR² SO_BROADCASTÁdö5 çR³SO_ERRORÁD„6 åR´ SO_KEEPALIVEÁdŽ6 êRµ SO_RCVBUFÁLœ6 éR¶ SO_RCVTIMEOÁ\§6 ¨T· SO_REUSEADDRÁd¸6 ãR¸ SO_SNDBUFÁLÆ6 èR¹ SO_SNDTIMEOÁ\Ñ6 ©TºSO_TYPEÁ<Þ6 äR» TCP_NODELAYÁ\ç6 ¶¼ IpMreqSourceÁdê9ʾIP_ADD_SOURCE_MEMBERSHIPÁÄø9 Ô¿IP_DROP_SOURCE_MEMBERSHIPÁÌ’: ÕÀÁ œÝ= ”­¤ò= •ÃIPV6_MULTICAST_HOPSÁœ®B ’ÅIPV6_MULTICAST_IFÁŒÃB ‘ÆIP_MULTICAST_IFÁ|ÖB ÍÇMSG_OOBÁ<çB ŸÈ TCP_KEEPCNTÁ\»G »Ê TCP_KEEPINTVLÁlÈG ºËãtìL ¹ÉͽÊ4÷±ÖDïlå´ |˜Å€”þ¤ýüôº „þÅ“¾œ·Å€”ÌŰ¾¬àü¶@ü²Eü©Pæ Ä”Ö D²² ·¤ § ” — ”Þ‡ Döx { g j ¤ÚÓª|¥ Åå ŒÇÅô ´âň œ‚Å™ ”ŸÅ© ¬»ÅÞ ¬ÚÅÓ ¬ùÅò œ˜ÅŒ ¬µü½”üŸ´ü–¿â ´° Óª|ÿ ÅÜŒ¡ÅŒ ¬¼Å¶ ¬ÛÅå ŒúÅô ´• Åò œµ ň œÒ Å™ ”ï Å© ¬‹ ü—�üù°üð»X \Ì H K 8 ; ( +     ø û ä ç äÀ Å€”¦ ¤¥ üœ ê ”… Óª|è Ì$ù ¼ç üÞ "þ Óª&Ì$"   ÓªFÌDB@%  ÓªfÌdb`/ |ç Å€”Í ¤Ì üà 9 Dü + LŠ     ® ù ü ê í lòÅå ŒÔ Åô ´ë ň œ‡Å™ ” Å© ¬¸Å« ¤ÓüÎ œüÊ ¡üÁ ¬8 $…) ,   ´ÅÅ€”«¤ªü¡' ,á  ò õ Î Ñ » ¾ ¬ ¯ ,ïÅ“¾œ¨Å€”½Å°¾¬Ñü§@ü£EüšPÇ Å“¾>Å€<Ű¾:852ö ä Å“¾pÅ€nŰ¾ljgd  Å“¾¢Å€ Å°¾žœ™–0 |¦ lüÅ€”פÖüÍ $š  ÷ ú |‰Óª|ÒÅò œãüÑ&üÈ1 tÖÓª|©Å“¾œÏʤìÅ€”ŠÅ°¾¬¦üÅ|üÁ�ü£¡üš¬Q ¤çÓª|õʤ’Å€”¨Å°¾¬¼ü‘Aü�Füïfüæq‚ $Œj m P S ”…Óª|ÎÅò œßüÍ&üÄ1` œÄÅò œŸÜ™X ”¶Óª|ãŶ ¬øÅò œ�ü÷,üâBüÙMx ¬†Óª|ÙÅŒ ¬ûŶ ¬šÅÊ ¬¹Åò œØüñ�üÓ¡üʬ° $ÌÅ€”§¤¦ü�¯ Å€Ä ¤ Å€420¹ $�  £ † ‰ $¾{ ~ m p ^ a O R @ C 2 5 |¼Å“¾œÇʤàÅ€”úŰ¾¬’üÁhü½mü´xf ”–Å“¾œÛÅ€”ðüÚ)üÖ.üÍ9z |‡ Å¥ŒÍÅøœàüÌ(üÈ-ü¿8‘ ”å Óª|® Åò œ¿ ü­ &ü¤ 1Ÿ ¼ã$Óª|ˆ!Å  ¼®!ÅÊ ¬Ï!ű”î!ÅÞ ¬Š"Å„ ¤©"Å— ¬Ç"Å“¾œæ"ÅÓ ¬ƒ#Åú œ¢#ʤ¿#ÅË”Ý#Å€”ù#Å« ¤•$Ű¾¬³$ü¤!ªü !¯ü‚!Ïüù ÚV¬‰(Å  ¼�%ÅÊ ¬¬%ű”Ç%ÅÞ ¬ß%Å„ ¤ú%Å— ¬”&Å“¾œ¯&ÅÓ ¬È&Åú œã&ʤü&Åøœ–'ÅË”¯'Å€”Ç'Ű¾¬ß'ü‰%íü…%òüü$ýû„ù)Óª|¯(Å“¾œÕ(ʤò(Åøœ�)Å€”­)Ű¾¬É)üË(™üÇ(žü©(¾ü (ÉM„à-ÅÜŒž*Å  ¼µ*ÅÊ ¬Ò*ÅÞ ¬í*Å„ ¤ˆ+Å— ¬¢+Å“¾œ½+ÅÓ ¬Ö+Åú œñ+ű”Š,Å¥Œ¢,ʤ¹,ÅøœÓ,ÅË”ì,Å€”„-Å« ¤œ-Ű¾¬¶-ü˜*µü”*ºü‹*Åd•/ÅÊ ¬….Å“¾œ .ÅÓ ¬¹.Åú œÔ.Å€”í.üÿ-ƒüû-ˆüò-“\|Å0Åå Œ¶/Åô ´Í/ň œé/Å™ ”‚0Å© ¬š0ü°/‚ü¬/‡ü£/’¢ŒÛ2Åò œŸ2Å« ¤´2üž2+ü•26°Œì3Óª|ý2Åò œ–3ÅŒ ¬«3ÅÊ ¬Â3ü•3Cü÷2cüî2nÝ$Ž4<š4ͼ¿¤§‰ŒgjGJ-0 ìïÌÏ­°˜›�„hkMP69éìÎѶ¹œŸ†‰lo$Ì9 Å  ¼Š7Åú œ§7ű”À7Å„ ¤Ø7Å— ¬ò7Å“¾œ�8ÅÊ ¬¦8Å¥ŒÁ8ʤØ8ÅË”ò8Å€”Š9Ű¾¬¢9ü„7µü€7ºü÷6ÅtØ9 Å  ®Åú ¬Å±ªÅ„ ¨Å— ¦Å“¾¤ÅÊ ¢Å¥ Å¹žÅ˜ŀšÅ°¾˜–’މ` Å  :Åú 9ű8Å„ 7Å— 6Å“¾5ÅÊ 4Å¥3Ź2ÅË1Å€0Ű¾/.+(øÍ Å  ÕÅú ÔűÓÅ„ ÒÅ— ÑÅ“¾ÐÅÊ ÏÅ¥ÎŹÍÅËÌÅ€ËŰ¾ÊÉÆÃe$Ö=Å  ¼Ã:Ŷ ¬à:Åú œû:ÅÞ ¬”;Åå Œ¯;Åô ´Æ;ň œâ;Å„ ¤û;Å¥Œ•<Å— ¬¬<ÅÓ ¬Ç<Å™ ”â<Å© ¬ú<Åøœ•=Å€”®=ü½:†ü¹:‹ü°:–#Å  ÏŶ ÍÅú ËÅÞ ÉÅå ÇÅô Åň ÃÅ„ ÁÅ¥¿Å— ½ÅÓ »Å™ ¹Å© ·ÅøµÅ€³±­©È¶Å  wŶ vÅú uÅÞ tÅå sÅô rň qÅ„ pÅ¥oÅ— nÅÓ mÅ™ lÅ© kÅøjÅ€ihebm$§BÅ€”‚B¤�BüøAeÅ€zWÅ€420lKÅ€LJH`GÅ€db`\$´GÓª|€CÅŒ ¬¢CÅ  ¼ÁCÅ÷ÄâCŶ ¬„DÅÊ ¬£DÅÞ ¬ÂDÅå ŒáDÅô ´üDÅò œœEň œ¹EÅ„ ¤ÖEÅ™ ”ôEÅ© ¬�FÅ« ¤¯FÅøœÍFÅ€”îF¸‘Œ†Gœ…GüíF,ü˜CˆüúB¨üñB³@ӪŌ ÿÅ  ýÅ÷ûŶ ùÅÊ ÷ÅÞ õÅå óÅô ñÅò ïň íÅ„ ëÅ™ éÅ© çÅ« åÅøãŀḑßÝÛØÔÐ íÓªÏÅŒ ÎÅ  ÍÅ÷ÌŶ ËÅÊ ÊÅÞ ÉÅå ÈÅô ÇÅò ÆÅˆ ÅÅ„ ÄÅ™ ÃÅ© ÂÅ« ÁÅøÀÅ€¿¸‘¾½¼º·´Ï¤ÿG$�H”ÖL Åú œ¸JÅå ŒÑJÅô ´èJň œ„KÅ¥Œ¡K¸¶¤¸K¸Ç¤ÎKü·K,ü KEÅ— ¬ëKÅ™ ”†LÅ© ¬žLÅË”¹Lü²Jœü®J¡ü¥J¬¤ÅM<ÒM ÚM áO àM †N, áM8 âM& äM8Ý,æM ìM „N, îM ïM úM, ðM8argÁñM& ôM8²$öM$ ûM üM, þM ÿM �N$ €N ‚N*ˆN ‹N ÞO ŒN ÝO+ –N —N ¬N8²,˜N �N «N8 unused_unsafeÁlžN8¶N8ñ±ºN ¾N8"4ÀN ÇN ßN8»$ÉN'ÍN, ÏN8 ÐN ÒN ÝN, ÓN ÔN ÛN, ÕN8–ð ÖN$ ÙN ÜN% àN8êN8ñ±íNñN ôN7ô õN ÷N ²O8€…O ˆO ¨O8‰‰O'ŒO8öÐŽO'�O8¨¢,’O'—O8 last_os_errorÁl™O ¦O §O8$´O ¹O ×O8¯ÇO ÉO ÍO8ñ±ÊO% ßOÄÜQÅå ŒÂPÅô ´ÙPň œõPÅ™ ”ŽQÅ© ¬¦QÅ« ¤ÁQü¼Pœü¸P¡ü¯P¬\âQÉä¾XÓª|úWŶ ¬�XÅò œ¦XüŽX,üùWBüðWM|ÄXÉ\´ZÅò œþX¸gnuÁ”¬Y¸«¬ÐYÆ64ÁÜçYüÏY4üžYoüôXŸÅŒ ¬™ZüëXÆüâXÑ4¹ZÉ\‹a”ø` Unix only API.ÁÍ�ÓÔÄébü�aHE Domain for low-level packet interface, corresponding to `AF_PACKET`.ÁÓª|ýaÅŒ ¬šbÅÊ ¬±bÅò œÈbü™bCüóaoüêaz4óbÒÒÍ�¼¿dü¢cFC Domain for low-level VSOCK interface, corresponding to `AF_VSOCK`.ÁÓª|÷cÅŒ ¬ŒdÅò œ£dü‹d,üöcBüícM,ÉdÒÒÍ�L×g”Äg«÷ …‚Öרüõk&üçg&# Set `SOCK_NONBLOCK` on the `Type`.ÁÓª|¥h ÅŒ ¬ÏhÅ  ¼òhÅ÷Ä—iŶ ¬½iÅÊ ¬àiÅÞ ¬ƒjÅò œ¦jÅ„ ¤ÇjÅ— ¬éjÅ« ¤ŒkÅ€”²k¸‘ŒÊkœÉkü±k,üÁh§ü›hÓü’hÞ\‚l…‚…‚BÿÕÕ Ö(’üˆq"üÔl%" Set `SOCK_CLOEXEC` on the `Type`.ÁÓª|‘m ÅŒ ¬»mÅ  ¼ÞmÅ÷ănŶ ¬©nÅÊ ¬Ìnű”ïnÅÞ ¬�oÅò œ²oÅ„ ¤ÓoÅ— ¬õoÅ“¾œ˜pÅÓ ¬¹pÅ« ¤Üpü­mÎü‡múüþl…<•q…‚…‚BÿÕÕ ×º“üöt* ÅŒ ¬ãqÅ  ¼‚rÅ÷Ä£rŶ ¬ÅrÅÊ ¬ärű”ƒsÅÞ ¬ŸsÅò œ¾sÅ„ ¤ÛsÅ— ¬ùsÅ“¾œ˜tÅÓ ¬µtÅ« ¤ÔtüÙq–üÐq¡DŠu…‚…‚BÿÕÕ„•tû…”—… Unix-only API.ÁÅ“¾œ¸…Å€”ͅŰ¾¬á…ü·…@ü³…Eüª…Põ‚ÚÛÜÝüщ+ü�†-* Check if the message terminates a record.Á†�üʆHE Not all socket types support the notion of records. For socket typesÁü—‡IF that do support it (such as [`SEQPACKET`]), a record is terminated byÁüå‡63 sending a message with the end-of-record flag set.Á ˆ�ü¨ˆ30 On Unix this corresponds to the `MSG_EOR` flag.Áàˆ�üèˆ" [`SEQPACKET`]: Type::SEQPACKETÁʤ�‰Å°¾¬³‰üœ‰-ü˜‰2ü�‰=„Þ‰õ‚BÿÙÙ Ú¦–ü¤Œ)ü®Š30 Check if the message contains out-of-band data.ÁæŠ�üîŠC@ This is useful for protocols where you receive out-of-band dataÁü¶‹)& mixed in with the normal data stream.Áä‹�üì‹30 On Unix this corresponds to the `MSG_OOB` flag.Át±Œõ‚BÿÙÙ Û8˜ü÷�%üÿŒ%" Check if the confirm flag is set.Á©��ü±�B? This is used by SocketCAN to indicate a frame was sent via theÁüø�?< socket it is received on. This flag can be interpreted as aÁü¼Ž  'transmission confirmation'.ÁáŽ�üéŽ74 On Unix this corresponds to the `MSG_CONFIRM` flag.ÁÓª|¯�ÅŒ ¬Ä�Åò œÛ�üÃ�,ü®�Bü¥�MT„�õ‚BÿÙÙ ÜË™üª“'üÒ�)& Check if the don't route flag is set.Á€‘�üˆ‘=: This is used by SocketCAN to indicate a frame was createdÁ´Ê‘ on the local host.Áå‘�üí‘96 On Unix this corresponds to the `MSG_DONTROUTE` flag.ÁÓª|¾’ÅŒ ¬Û’Åò œò’Å« ¤‡“üÚ’Bü´’oü«’zd·“õ‚BÿÙÙ Ý^›üØ”"Å“¾œ•”Å€”ª”Ű¾¬¾”ü””@ü�”Eü‡”Põ‚ß gßü�•B„•— ˜ ™  — õ‚ ˜ €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡™ œ‰BÿÞ ˆ•Þ ß$‰•œ �•ü˜›„£›Ì2áᮃ“ ´Ùé?âã´›„¾›¾›ÉààȽüÔ›1LÔ›Éàà„!„!…!¼�o$z�é - Ì2Ù»üŠœ-Ì2å它–œü¼œ-Ì2ç箃ȜìîœÌ2é鮃êëìóœü’�I �Á” ®ƒBÿèè êÌ2ɉAžü·Ÿ3DÅŸš  š ®ƒ š Ù»Bÿè Οè ëÌ2$ÏŸüÍ ?dÛ ›  › ®ƒ › Ù»Bÿè è è ìÌ2$í üä¢BÅ€”΢¤Í¢üÄ¢tò¢œ  œ «ÈBÿ Š£ í·ý£üã¤@Å€”¬¤¤«¤ü¢¤lñ¤�  � Ÿ´áµBÿ …¥ü´ª $ÿ¤dñ±Å“¾œŸ±Å€”´±Å°¾¬È±üž±@üš±Eü‘±PU*üѲ@Å“¾œŽ²Å€”£²Å°¾¬·²ü�²@ü‰²Eü€²P|ß²ž Ÿ  ž ³Ë Ÿ ÃyBÿ ô² ð‘Ì᥂ ì¥üø´QÅ“¾œó³Å€”ˆ´Å°¾¬œ´üò³@üî³Eüå³Pt†µ     ³Ë ȽBÿ šµ ñ‘Ì•µí §µ¶¾µüö¶VÅ“¾œ³¶Å€”ȶŰ¾¬Ü¶ü²¶@ü®¶Eü¥¶P”„·¡  ¡ ³Ë…ºBÿ œ· ò‘Ì•¦í  ¦¶ª¦üá¸>Å“¾œž¸Å€”³¸Å°¾¬Ç¸ü�¸@ü™¸Eü�¸P„︢  ¢ ³ËBÿ …¹ ó‘Ì-§ØZ7§ü‘º5Å“¾œÎ¹Å€”ã¹Å°¾¬÷¹ü͹@üɹEüÀ¹PdŸº£  £ ³Ëõ‚Bÿ ±º ô‘Ì×§üº»7Å“¾œ÷ºÅ€”Œ»Å°¾¬ »üöº@üòºEüéºP”È»¤  ¤ ³ËBÿ à» õ‘ÌG¨l¦¼”“¼«÷ Ãy÷øü–¿-üº¼QN Constructs a `SockAddr` with the family `AF_VSOCK` and the provided CID/port.Á�½�d˜½ # ErrorsÁ©½�ü±½UR This function can never fail. In a future version of this library it will be madeÁ|‹¾ infallible.ÁÓª|ξÅŒ ¬ã¾Åò œú¾üâ¾,ü;BüľM,�¿ÃyBÿöö ÷ÿج“z%¬üéÄ4ü§ÃJG Returns this address VSOCK CID/port if it is in the `AF_VSOCK` family,Áäöà otherwise return `None`.ÁÓª|¡ÄÅŒ ¬¶ÄÅò œÍÄüµÄ,ü ÄBü—ÄM„ðÄ¥  ¥ ÃyÊÞBÿö �Åö ø$‚Ål»ÈüðÇ*' Unix only API (not available on WASI).ÁÅ€”¥È¤¤Èü›ÈÃyúüþÿ€�„üåÉ üÏÈ[X Returns true if this address is an unnamed address from the `AF_UNIX` family (for localÁü¯É1. interprocess communication), false otherwise.ÁTìɦ  ¦ ÃyBÿù ÷Éù úR·L·Êú�û�û�ûûúŽçü³ÐAtÁЧ  § ÃyřǙș­É™Ê™àË™óG*¤�R{9  § «ÈBÿù ÐÐù ü#º“Ñü�ý�ý�ýýüŒæüºÔ8D½Ôɨ ©  ¨ Ãy © «ÈBÿù ÆÔù þ$ÇÔ·<ÍÔüçÖOTêÖɪ «  ª Ãy « «È ª àÚBÿù õÖù ÿ$öÖ·<üÖ abstract_nameÁl™×üØÞ?üÜÝLI Returns this address as Unix `SocketAddr` if it is an `AF_UNIX` pathnameÁü­Þ&# address, otherwise returns `None`.Á<ßÞ¬  ¬ ÃyřǙș­É™Ê™àË™óG*¤�R{9 ÚKÚKº¨ÛKù׿EÜK¶æEç*™P“fBÿù çÞù €$èÞü€â*üƒáDA Returns this address as a `Path` reference if it is an `AF_UNIX`ÁüÌá/, pathname address, otherwise returns `None`.Á\‡â­  ­ ÃyřǙș­É™Ê™àË™óG*¤�R{9  ­ Ÿ´Bÿù “âù �$”âLÔâ��‚�‚�‚‚�‚šçřǙș­É™Ê™àË™óG*¤�R{9 ǶUÿ æ¹ã��ƒ�ƒ�ƒƒ�ƒǶUÿà™©Èü‚ç4üêäYV Returns this address as a slice of bytes representing an abstract address if it is anÁüÈå96 `AF_UNIX` abstract address, otherwise returns `None`.Á†æ�üŽæ\Y Abstract addresses are a Linux extension, so this method returns `None` on all non-LinuxÁtïæ platforms.Á¬‰ç®  ® ÃyřǙș­É™Ê™àË™óG*¤�R{9  ® àÚBÿù Ÿçù „$ çLïé„�…�…�……„…šçřǙș­É™Ê™àË™óG*¤�R{9 øÜUÿ æíê„�†�†�††„†øÜUÿøµ ´šì4ªì›…ÌÉìLÙìüíìA|‚í›…ÿ ‰Ú4’íüÔí9lâí¯  ¯ ›…Bÿ øí ŠÚƺüªî:|¸î›…Bÿ ‹ÚûüƒïX4‘Bÿ ŒÛ4˜ï‚§ïàGD²ïü¯ðaÓª|–ðÌ$§ð¼•ðüŒð"T½ðÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwºÓž£Bÿ �Û4Èð‚×ðàGDâð �ñòñ����������É̺ÓUÿ ºÓüþñD$Œò°  ° Ãy±–Bÿ ¦ò �µ„‘òù×$ ò“ó��‘�‘�‘‘�‘ÉÌUÿüžóG<¬ó±  ± Ãy±–Bÿ Éó ’µ„´óù×$Ãó´ô’�“�“�““’“¹Â ü¿ôWdÍô²  ² Ð}ø�±–Bÿ âô ”Ú4ÚôÈò<òôü¨€E4¶€±–Bÿ •µ„½€áû<Ì€–�•�–�–�––•–¹Â ü¡�H4¯�ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwõ‰ž£Bÿ —µ„¶�tÇ‚—�˜�˜�˜˜—˜©¢œ¨Uÿ ü†ƒ@\”ƒáµBÿ ™µ„ ƒt¤„™�š�š�šš™šôÇ €È \ò„™�›�›�››™›ó‰ÃyUÿü‡…@\•…áµBÿ œµ„¡…t¥†œ�������œ�ôÇ €È \ó†œ�ž�ž�žžœžùÉ ü¨‡?Å€”’‡¤‘‡üˆ‡L¶‡œ¨Bÿ Ÿµ„À‡üŸ‰<Óª|®ˆÌ$LjÅ€”ш¸‘ŒéˆœèˆüЈ,üƈ7ÅË”‡‰¤†‰ü¨ˆtüŸˆ\­‰¼©Bÿ  µ„¹‰üÚŒQÅ˔Č¤ÃŒüºŒ|茱–Bÿ ¡µ„øŒ½ \‡�üú�FDˆ‘›¶±–Bÿ ¢µ„‘‘‰¶ ‘†“¢�£�£�££¢£¹Â ü‘“a$Ÿ“³  ³ Ù»û“Bÿ ¸“ ¤µ„¤“ɉ³“ØZ,Гù”¤�¥�¥�¥¥¤¥UÿüŒ•�Lš•´  ´ Ù»ÏñBÿ Á• ¦µ„©•ɉ¼•ØZ,Ý•|õ–¦�§�§�§§¦§©¢û“Uÿ‚È ×»‚È ü˜¦�¨�¨�¨¨¦¨ÙÑ ü ™@\®™áµBÿ ©µ„º™ Óœ©©üÆ�“Å“¾œƒ�Å€”˜�Ű¾¬¬�ü‚�@üþœEüõœPlÔ�µ ¶  µ ññòŽ<ôó L®îÞ¡¶ ˜ÝBÿ €ž «µ„ç�”Ý$ú�ØZ,¨žü« ¢Å“¾œèŸÅ€”ýŸÅ°¾¬‘ üçŸ@üãŸEüÚŸP”¹ · ¸  · ññòŽ<ôó L®îÞ¡¸ ÔùBÿ ê  ¬µ„Ñ ”Ý$ä ØZ,’¡tŸ£¬�­�­�­­¬­ªÓ  Ò”‚È ‚È ü¯¦wÅ“¾œì¥Å€”�¦Å°¾¬•¦üë¥@üç¥EüÞ¥P<½¦¹ º » ¼  ¹ œœãY €¡¶X¸@û4èjº » ¼ û“Bÿ ⦠®µ„ʦ‘ÌݦØZ,‚§Þ§®�¯�¯�¯¯®¯ÙÑ üñ§P$ÿ§½  ½ àÚû“Bÿ ˜¨ °µ„„¨ɉ“¨ØZ,Ÿ¨Ä©°�±�±�±±°±ÙÑ ü¨ªrÅ“¾œå©Å€”ú©Å°¾¬Žªüä©@üà©EüשPl¶ª¾ ¿  ¾ Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([O¿ û“Bÿ ⪠²µ„ɪ”Ý$ܪØZ,öªüí«w<û«À Á  À àÚ Á Ãyû“Bÿ  ¬ ³µ„ˆ¬ɉ›¬ù×$«¬ØZ,À¬§®³�´�´�´´³´ÙÑ ü‹¯ŠÅ“¾œÈ®Å€”ݮŰ¾¬ñ®üÇ®@üîEüº®P„™¯ à Ä   Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([Oà Ä Ãyû“Bÿ ȯ µµ„¯¯”Ý$¯ù×$ܯØZ,ñ¯üɱaÅ“¾œ†±Å€”›±Å°¾¬¯±ü…±@ü�±Eüø°P<×±Å Æ Ç È  Å ‡‡öW‹€Œ¶X)§N¢Éø:éÆ Ç È û“Bÿ ó± ¶µ„ß±‘Ìî±ØZ,ˆ²Þ²¶�·�·�··¶·ÙÑ üº³`\ȳ§ÚBÿ ¸µ„Ô³optÁ㳎ï³üÚ´Bdã´É¾þ±�Bÿ ¹è”¿üÈ·…|Ö·±�±–Bÿ ºµ„ë·ìå þ·Žޏè”Dž¸ü°¹<d³¹É±�¾þBÿ »è”DÀ¹ü�¾GÓª|»½Åú œØ½Å— ¬í½ÅË”„¾ü×½@üÓ½Eüµ½eü¬½p”«¾�Ý Bÿ ¼µ„¾¾4¿¼�½�½�½½¼½ºã ü�ÀZŒ�ÀÉ  É Æ‹±–Bÿ ÉÀ ¾µ„¯À‚#L¾ÀüžÍ)Åú œ»ÌÅ— ¬ÔÌÅ¥ŒïÌÅË”†ÍüµÌeü±Ìjü¨ÌuL¡ÍÉø�Bÿ ¿è”D«ÍüÄÎ<ÅË”®Î¤­Îü¤ÎLÇÎÉœ¨Bÿ Àµ„ÑÎcmdÁàÎüùÏZÅË”ãϤâÏüÙÏLüÏɱ–Bÿ Áµ„†Ðget_cmdÁ<•Ðset_cmdÁ<¥ÐßÁ$µÐèÑÁ�Â�Â�ÂÂÁ¹ ü�Ó]ÅË”ùÒ¤øÒüïÒd’Óɱ–Bÿ õ„ŸÓœí <®Ó¬í <¾ÓßÁ$ÎÓ‚ÕÃ�Ä�Ä�ÄÄÃĹ ü”ÖZT©ÖÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‹–ž£ÿ�ÆÆòã ´Ö Å‹–µ„·Öìå ÆÖŽÒÖ+-éØÅ�Ç�Ç�ÇÇÅÇ‹–ÉÌ‹–Uÿþ¨ý­ý­¥�ÿ­º�瀮�çÙW£Ÿì·œ‹–üÑÚzTæÚ‹–±–ÿ�ÉÉòã ñÚ È‹–µ„ùÚìå ŒÛŽœÛpayloadÁ<¬Û;=�ÝÈ�Ê�Ê�ÊÊÈÊ‹–¹Â üšÝ:T®ÝÊ  Ê çÖÑÊBÿ ¿Ýµ‰ù׎ÀüÉß8d×ßÑÊçÖBÿ ÌÛÉkÁü¸à<\ÌàË  Ë ß×®ÎBÿ Þà Íù×Âü¯á7l½á®Îß×Bÿ ÎùׄÃüêäƒ ÅÜŒ âÅú œ·âÅÞ ¬ÐâÅ„ ¤ëâÅ— ¬…ãÅ“¾œ ãÅÓ ¬¹ãÅ¥ŒÔãŹ¤ëãÅË”…äÅ« ¤�äÅ€”·äŰ¾¬ÏäüšâÌü–âÑü�âÜDþäÌ Í  Ì çÖ Í ã|ªŽBÿ —å ÏÍ�Çã�(Çü×êDÓª|÷éÅŒ ¬�êÅÊ ¬§êÅò œ¾êü�êCüñécüèén|åêáµBÿ е„õêt…ìÐ�Ñ�Ñ�ÑÑÐÑôÇ €È \ííÐ�Ò�Ò�ÒÒÐÒùÉ ü¥ðDÓª|áïÅŒ ¬öïÅò œ�ðüõï,üàïBü×ïM|³ðáµBÿ Óµ„ÃðtÓñÓ�Ô�Ô�ÔÔÓÔôÇ €È \ÂóÓ�Õ�Õ�ÕÕÓÕùÉ ”êó”×ó«÷ Ð}רÚÛÜÞßáâäæçéêìíïðòóõ÷øùúûýþ€�ƒ„†‡‰‹���‘’”•™›œ�žŸ ¡¢£¤¥¦§¨«¬­ü‹úLüƒô8þûÀô�üÈôDA This function directly corresponds to the `accept4(2)` function.Á‘õ�ü™õIF This function will block the calling thread until a new connection isÁüçõLI established. When established, the corresponding `Socket` and the remoteÁü¸ö$! peer's address will be returned.ÁøÃÅ%hüáö%Ë Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: ÁÓª|ž÷ ÅŒ ¬È÷Å  ¼ë÷Ŷ ¬�øÅÊ ¬³øÅÞ ¬ÖøÅò œùøÅ„ ¤šùÅ— ¬¼ùÅ« ¤ßùüº÷Äü”÷ðü‹÷û<’úÎ  Î Ð}݆BÿÖ šúÖ ×$›úØZ,¡úü®ýT ÅŒ ¬•ûÅ  ¼´ûŶ ¬ÕûÅÊ ¬ôûÅÞ ¬“üÅò œ²üÅ„ ¤ÏüÅ— ¬íüÅ« ¤Œýü‹ûœü‚û§D¼ýÏ  Ï Ð}݆BÿÖ ÅýÖ Ø$ÆýØZ,ÌýtõþØ�Ù�Ù�ÙÙØÙ©¢úÂUÿ±�‚È ü®„@ü©€! Sets `CLOEXEC` on the socket.ÁÏ€�\×€¯­ç€�üï€96 On supported platforms you can use [`Type::cloexec`].ÁÓª|þƒÅË”“„¤’„üýƒ*üôƒ5\µ„Ð  Ð Ð}±–BÿÖ Á„Ö Ú$„ close_on_execÁlÈ„üÉ…HÅË”¯…¤®…ü¥…d×…Ñ  Ñ Ð}±–BÿÖ ä…Ö Û$å…Ô� lë…üºš(ü›˜=: Gets the value of the `TCP_MAXSEG` option on this socket.Áݘ�üå˜@= For more information about this option, see [`set_tcp_mss`].Áª™�ü²™/, [`set_tcp_mss`]: crate::Socket::set_tcp_mssÁÓª|ð™Å“¾œ‰šÅ€”žšüˆš)ü„š.üï™Düæ™O<ÁšÒ  Ò Ð}�óBÿÖ ÉšÖ Ü$Êš,ß›Ü�Ý�Ý�ÝÝÜÝÍôü—ž5ü†œ=: Sets the value of the `TCP_MAXSEG` option on this socket.ÁÈœ�üМLI The `TCP_MAXSEG` option denotes the TCP Maximum Segment Size and is onlyÁì¡� available on TCP sockets.ÁÓª|Í�Å“¾œæ�Å€”û�üå�)üá�.üÌ�DüÃ�O\žžÓ  Ó Ð}±–BÿÖ ªžÖ Þ$«žmssÁ±žü®£-ü� KH Returns `true` if `listen(2)` was called on this socket by checking theÁüí *' `SO_ACCEPTCONN` option on this socket.ÁÓª|¯¡Å܌١Ō ¬ø¡Å¶ ¬›¢ÅÊ ¬¾¢Åò œá¢Å« ¤‚£üË¡Öü¥¡‚üœ¡�\µ£Ô  Ô Ð}¼©BÿÖ Á£Ö ß$£Ú¤ß�à�à�ààßàÆÌüÚ§*üû¤LI Returns the [`Domain`] of this socket by checking the `SO_DOMAIN` optionÁœÌ¥ on this socket.ÁÓª|÷¥ÅŒ ¬¡¦ÅÊ ¬Œ§Åò œ¯§ü“¦ºüí¥æüä¥ñ4á§Õ  Õ Ð}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ�ž£BÿÖ è§Ö á$é§üµ«6ü÷¨IF Returns the [`Protocol`] of this socket by checking the `SO_PROTOCOL`ÁÔÅ© option on this socket.ÁÓª|÷©ÅŒ ¬¡ªÅ¶ ¬ÄªÅÊ ¬çªÅò œŠ«ü“ª•üí©Áüä©ÌD¼«Ö  Ö Ð}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw²Âž£BÿÖ Å«Ö â$Æ«׬â�ã�ã�ããâãÉ̲ÂUÿüϰ%üØ­;8 Gets the value for the `SO_MARK` option on this socket.Á˜®�ü ®FC This value gets the socket mark field for each packet sent throughÁ„ë®™ž€¯�üˆ¯C@ On Linux this function requires the `CAP_NET_ADMIN` capability.ÁÓª|ã¯ÅŒ ¬€°ÅÊ ¬—°Åò œ®°üÿ¯CüÙ¯oüЯz$Ö°×  × Ð}�óBÿÖ Û°Ö ä$ܰ4í±ä�å�å�ååäåÍôüõµ3ü–²;8 Sets the value for the `SO_MARK` option on this socket.ÁÖ²�üÞ²FC This value sets the socket mark field for each packet sent throughÁü©³EB this socket. Changing the mark can be used for mark-based routingÁüó³.+ without netfilter or for packet filtering.Á¦´�ü®´C££ Óª|‰µÅŒ ¬¦µÅÊ ¬½µÅò œÔµü¥µCüÿ´oüö´zDüµØ  Ø Ð}±–BÿÖ …¶Ö æ$†¶õG$Œ¶üɺ*üÿ·:7 Get the value of the `TCP_CORK` option on this socket.Á¾¸�üƸA> For more information about this option, see [`set_tcp_cork`].ÁŒ¹�ü”¹1. [`set_tcp_cork`]: crate::Socket::set_tcp_corkÁÓª|ݹÅŒ ¬ú¹ÅÊ ¬‘ºÅò œ¨ºüù¹CüÓ¹oüʹzDкÙ  Ù Ð}¼©BÿÖ ÙºÖ ç$Úº4í»ç�è�è�èèçèÆÌüŠÀ8ü”¼:7 Set the value of the `TCP_CORK` option on this socket.ÁÓ¼�üÛ¼HE If set, don't send out partial frames. All queued partial frames areÁü¨½PM sent when the option is cleared again. There is a 200 millisecond ceiling onÁüý½RO the time for which output is corked by `TCP_CORK`. If this ceiling is reached,ÁüÔ¾2/ then queued data is automatically transmitted.ÁÓª|ž¿ÅŒ ¬»¿ÅÊ ¬Ò¿Åò œé¿üº¿Cü”¿oü‹¿zd‘ÀÚ  Ú Ð}±–BÿÖ žÀÖ é$ŸÀcorkÁ$¥Àü½Å.ü’Â>; Get the value of the `TCP_QUICKACK` option on this socket.ÁÕÂ�üÝÂEB For more information about this option, see [`set_tcp_quickack`].Á§Ã�ü¯Ã96 [`set_tcp_quickack`]: crate::Socket::set_tcp_quickackÁÓª|€ÄÅŒ ¬ªÄÅÊ ¬ÍÄÅò œðÄÅ« ¤‘ÅüœÄ”üöÃÀüíÃËdÄÅÛ  Û Ð}¼©BÿÖ ÑÅÖ ê$ÒÅTéÆê�ë�ë�ëëêëÆÌüÍÌ@ü˜Ç>; Set the value of the `TCP_QUICKACK` option on this socket.ÁÛÇ�üãÇ\Y If set, acks are sent immediately, rather than delayed if needed in accordance to normalÁüÄÈa^ TCP operation. This flag is not permanent, it only enables a switch to or from quickack mode.ÁüªÉc` Subsequent operation of the TCP protocol will once again enter/leave quickack mode depending onÁü’Êfc internal protocol processing and factors such as delayed ack timeouts occurring and data transfer.ÁÓª|�ËÅŒ ¬ºËÅÊ ¬ÝËÅò œ€ÌÅ« ¤¡Ìü¬Ë”ü†ËÀüýÊË„ÔÌÜ  Ü Ð}±–BÿÖ åÌÖ ì$æÌquickackÁDìÌüïÑ:üåÎJG Get the value of the `TCP_THIN_LINEAR_TIMEOUTS` option on this socket.Á´Ï�ü¼ÏQN For more information about this option, see [`set_tcp_thin_linear_timeouts`].Á’Ð�üšÐQN [`set_tcp_thin_linear_timeouts`]: crate::Socket::set_tcp_thin_linear_timeoutsÁÓª|ƒÑÅŒ ¬ ÑÅÊ ¬·ÑÅò œÎÑüŸÑCüùÐoüðÐzÄöÑÝ  Ý Ð}¼©BÿÖ �ÒÖ í$�ÒTîÓí�î�î�îîíîÆÌüáØLü�ÔJG Set the value of the `TCP_THIN_LINEAR_TIMEOUTS` option on this socket.ÁìÔ�üôÔvs If set, the kernel will dynamically detect a thin-stream connection if there are less than four packets in flight.ÁüïÕc` With less than four packets in flight the normal TCP fast retransmission will not be effective.Áü×Ö†ƒ The kernel will modify the retransmission to avoid the very high latencies that thin stream suffer because of exponential backoff.ÁÓª|õ×ÅŒ ¬’ØÅÊ ¬©ØÅò œÀØü‘ØCüë×oüâ×zäèØÞ  Þ Ð}±–BÿÖ …ÙÖ ï$†ÙtimeoutsÁDŒÙüÒÝ2ü‘ÛC@ Get the value of the `TCP_NOTSENT_LOWAT` option on this socket.ÁÙÛ�üáÛJG For more information about this option, see [`set_tcp_notsent_lowat`].Á°Ü�ü¸ÜC@ [`set_tcp_notsent_lowat`]: crate::Socket::set_tcp_notsent_lowatÁÓª|ŠÝÅŒ ¬ŸÝÅò œ¶ÝüžÝ,ü‰ÝBü€ÝMŒÙÝß  ß Ð}�óBÿÖ ëÝÖ ð$ìÝ<ˆßð�ñ�ñ�ññðñÍôü’âAü³ßC@ Set the value of the `TCP_NOTSENT_LOWAT` option on this socket.Áûß�üƒàOL If set the kernel will limit the amount of _unsent_ data in the sendbuffer.Áü×àda This differs from `set_send_buffer_size` which limits the sum of unsent and unacknowledged data.ÁÓª|ÊáÅŒ ¬ßáÅò œöáüÞá,üÉáBüÀáM¬™âà  à Ð}±–BÿÖ ¯âÖ ò$°âlowatÁ,¶âü¿æ3ü­äC@ Gets the value for the `SO_BINDTODEVICE` option on this socket.Áõä�üýä>; This value gets the socket binded device's interface name.ÁÓª|ÓåÅŒ ¬ðåÅÊ ¬‡æÅò œžæüïåCüÉåoüÀåz4Ææá  á Ð}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwřǙș­É™Ê™àË™óG*¤�R{9 …C…CüˆCɉÐ=‰C¶Ð=ò¹ÚàÅÅFÅFÆFGlobalÁ Ä› +ÉÑž£BÿÖ ÍæÖ ó$ÎætãçüÃðEü¿ìC@ Sets the value for the `SO_BINDTODEVICE` option on this socket.Á‡í�ü�íIF If a socket is bound to an interface, only packets received from thatÁüÝíIF particular interface are processed by the socket. Note that this onlyÁü«î@= works for some socket types, particularly `AF_INET` sockets.Áðî�üøîGD If `interface` is `None` or an empty string it removes the binding.ÁÓª|×ïÅŒ ¬ôïÅÊ ¬‹ðÅò œ¢ðüóïCüÍïoüÄïz\Êðâ ã  â Ð}řǙș­É™Ê™àË™óG*¤�R{9  ã àÚ±–BÿÖ ÖðÖ õ$×ðã�LÝð…ôõ�ö�ö�ööõö¹Â üâþVü•øQN Sets the value for `IP_BOUND_IF` or `SO_BINDTOIFINDEX` option on this socket.Áëø�üóøI²Ò üÁù52 particular interface are processed by the socket.Áûù�üƒúHE If `interface` is `None`, the binding is removed. If the `interface`ÁüÐú-* index is not valid, an error is returned.Á‚û�üŠûLI One can use [`libc::if_nametoindex`] to convert an interface alias to anÁTÛû index.ÁÓª|ýû Åå Œ§üÅô ´Æüň œêüÅ™ ”‹ýÅ© ¬«ýÅÞ ¬ÎýÅÓ ¬ñýÅò œ”þÅŒ ¬µþü™ü¼üóûèüêûó¼éþä  ä Ð}řǙș­É™Ê™àË™óG*¤�R{9 ù ù ú ¬ü óÕ  >¨WTÑp™Y±–BÿÖ �ÿÖ ÷$‚ÿã�LˆÿüÆ‹Vü÷„SP Sets the value for `IPV6_BOUND_IF` or `SO_BINDTOIFINDEX` option on this socket.ÁÏ…�ü×…I²Ò ü¥†5ÝØ ߆�üç†HªÙ ü´‡-ýÙ æ‡�üî‡LÂÚ T¿ˆ˜Û Óª|ሠÅå Œ‹‰Åô ´ª‰Åˆ œÎ‰Å™ ”ï‰Å© ¬�ŠÅÞ ¬²ŠÅÓ ¬ÕŠÅò œøŠÅŒ ¬™‹üýˆ¼ü׈èüΈó¼Í‹å  å Ð}ìÝ ±–BÿÖ å‹Ö ø$æ‹ã�Lì‹üî–?üß‘IF Gets the value for `IP_BOUND_IF` or `SO_BINDTOIFINDEX` option on thisÁü­’JG socket, i.e. the index for the interface to which the socket is bound.Áü’�ü„“IF Returns `None` if the socket is not bound to any interface, otherwiseÁüÒ“ returns an interface index.ÁÓª|‰” Åå Œ³”Åô ´Ò”ň œö”Å™ ”—•Å© ¬·•ÅÞ ¬Ú•ÅÓ ¬ý•Åò œ –ÅŒ ¬Á–ü¥”¼üÿ“èüö“ó|õ–æ  æ Ð}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwìÝ ž£BÿÖ …—Ö ù$†—ü½¡?ü¬œKH Gets the value for `IPV6_BOUND_IF` or `SO_BINDTOIFINDEX` option on thisÁüüœJÛâ Ë��üÓ�I½ã ü¡ž‘ä Óª|Øž Åå Œ‚ŸÅô ´¡ŸÅˆ œÅŸÅ™ ”æŸÅ© ¬† ÅÞ ¬© ÅÓ ¬Ì Åò œï ÅŒ ¬�¡üôž¼üΞèüÅžó|Ä¡ç  ç Ð}úæ BÿÖ Ô¡Ö ú$Õ¡ü›©/ü‡§A> Get the value of the `SO_INCOMING_CPU` option on this socket.Áͧ�üÕ§EB For more information about this option, see [`set_cpu_affinity`].ÁŸ¨�ü§¨96 [`set_cpu_affinity`]: crate::Socket::set_cpu_affinityÁÓª|ï¨Åò œ€©üî¨&üå¨1d¢©è  è Ð}û“BÿÖ ¯©Ö û$°©,˪û�ü�ü�üüûüˆûü¢¬<üôª>; Set value for the `SO_INCOMING_CPU` option on this socket.Á·«�ü¿«(% Sets the CPU affinity of the socket.ÁÓª|ö«Åò œ‡¬üõ«&üì«1„©¬é  é Ð}±–BÿÖ º¬Ö ý$»¬cpuÁÁ¬üü±,ü³®>; Get the value of the `SO_REUSEPORT` option on this socket.Áö®�üþ®C@ For more information about this option, see [`set_reuse_port`].ÁƯ�üί52 [`set_reuse_port`]: crate::Socket::set_reuse_portÁÓª|›°ÅÓ ¬É°ÅÞ ¬ì°Å« ¤�±Åøœ±±Å€”Ò±ü»°³ü·°¸ü‘°äüˆ°ïTƒ²ê  ê Ð}¼©BÿÖ ޲Ö þ$�²<¦³þ�ÿ�ÿ�ÿÿþÿÆÌüá·;üϳ;8 Set value for the `SO_REUSEPORT` option on this socket.Á�´�ü—´H‚…üä´KÕ…ü´µ4«†Óª|€¶ÅÓ ¬®¶ÅÞ ¬Ñ¶Å« ¤ô¶Åøœ–·Å€”··ü ¶³üœ¶¸üöµäüíµïtè·ë  ë Ð}±–BÿÖ ÷·Ö €$ø·A,þ·üèÄ-ü’Â=: Get the value of the `IP_FREEBIND` option on this socket.ÁÔÂ�üÜÂDA For more information about this option, see [`set_freebind_v4`].Á¥Ã�ü­Ã74 [`set_freebind_v4`]: crate::Socket::set_freebind_v4ÁÓª|üÃÅŒ ¬™ÄÅÊ ¬°ÄÅò œÇÄü˜ÄCüòÃoüéÃz\ïÄì  ì Ð}¼©BÿÖ ûÄÖ �$üÄTŽÆ��‚�‚�‚‚�‚ÆÌüÔÊ?ü½Æ:7 Set value for the `IP_FREEBIND` option on this socket.ÁüÆ�ü„ÇKH If enabled, this boolean option allows binding to an IP address that isÁüÔÇJG nonlocal or does not (yet) exist. This permits listening on a socket,Áü£ÈGD without requiring the underlying network interface or the specifiedÁüïÈJG dynamic IP address to be up at the time that the application is tryingÁ”¾É to bind to it.ÁÓª|èÉÅŒ ¬…ÊÅÊ ¬œÊÅò œ³Êü„ÊCüÞÉoüÕÉz|ÛÊí  í Ð}±–BÿÖ ëÊÖ ƒ$ìÊfreebindÁDòÊüíÏ-üåÌ?< Get the value of the `IPV6_FREEBIND` option on this socket.Á©Í�ü±ÍA> This is an IPv6 counterpart of `IP_FREEBIND` socket option onÁü÷Í>; Android/Linux. For more information about this option, seeÁĺÎ [`set_freebind_v4`].Á×Î�üßÎ7–ø Óª|¥ÏÅŒ ¬ºÏÅò œÑÏü¹Ï,ü¤ÏBü›ÏM\ôÏî  î Ð}¼©BÿÖ €ÐÖ „$�ÐT—Ñ„�…�…�……„…ÆÌü–Ú?üÆÑ<9 Set value for the `IPV6_FREEBIND` option on this socket.Á‡Ò�ü�ÒA¦€ üÕÒ>ò€ ĘÓº� µÓ�ü½Ó7–ø ùÓ�t�Ô³³”Ô�lœÔ On Linux:Á®Ô�<¶Ôï¸üÂÔ(% use socket2::{Domain, Socket, Type};ÁüïÔ*' use std::io::{self, Error, ErrorKind};ÁžÕ�ü¦Õ;8 fn enable_freebind(socket: &Socket) -> io::Result<()> {ÁüæÕ  match socket.domain()? {Áü‹Ö:7 Domain::IPV4 => socket.set_freebind_v4(true)?,ÁüÊÖ:7 Domain::IPV6 => socket.set_freebind_v6(true)?,Áü‰×PM _ => return Err(Error::new(ErrorKind::Other, "unsupported domain")),ÁTÞ× };Átí× Ok(())Á,€Ø÷áŠØ�ü’Ø# # fn main() -> io::Result<()> {ÁüºØFC # let socket = Socket::new(Domain::IPV6, Type::STREAM, None)?;Áü…Ù" # enable_freebind(&socket)Á<¬Ù…â<¸Ùï¸Óª|ÎÙÅŒ ¬ãÙÅò œúÙüâÙ,üÍÙBüÄÙM|�Úï  ï Ð}±–BÿÖ ­ÚÖ †$®Ú®ÿ D´ÚüÚæªü«ÜHE Copies data between a `file` and this socket using the `sendfile(2)`ÁüøÜ@= system call. Because this copying is done within the kernel,Áü½ÝHE `sendfile()` is more efficient than the combination of `read(2)` andÁüŠÞFC `write(2)`, which would require transferring data to and from userÁTÕÞ space.ÁäÞ�üìÞ@= Different OSs support different kinds of `file`s, see the OSÁü±ßKH documentation for what kind of files are supported. Generally *regular*Áü�à# files are supported by all OSs.ÁøÛÅ%hü©à&Ó Additional documentation can be found in manual of the OS: * DragonFly BSD: * FreeBSD: * Linux: * macOS: (archived, actually for iOS) * NetBSD: * OpenBSD: * iOS: (archived) * illumos: ÁÔà�üÜàJG The `offset` is the absolute offset into the `file` to use as startingÁT«á point.Áºá�üÂáLI Depending on the OS this function *may* change the offset of `file`. ForÁü“âHE the best results reset the offset of the file before using it again.Áàâ�üèâLI The `length` determines how many bytes to send, where a length of `None`Áü¹ã(% means it will try to send all bytes.ÁÓª|ùã ÅÜŒ£äÅŒ ¬ÂäŶ ¬åäÅå ŒˆåÅô ´§åÅò œËåň œìåÅ™ ”�æÅ© ¬­æü•ä¸üïãäüæãïDáæð ñ  ð Ð} ñ £¢û”û“BÿÖ‚ˆˆ öæÖûý êæ¢#£¢<üç ‡£¢$÷æåêÉÑ ôÉñ]uÊ<>üÃð�Óª|ûïÅŒ ¬�ðÅò œ§ðü�ð,üúïBüñïMLÆðÉò  ò Ð}û”û“BÿÖ ÙðÖ™“$Úðå$èðÑ 4ýðñ]4šñ�ô‰�Š�Š�ŠŠ‰ŠÙÑ üà‡Oü“�B? Set the value of the `TCP_USER_TIMEOUT` option on this socket.ÁÚ��üâ�VS If set, this specifies the maximum amount of time that transmitted data may remainÁü½‚_\ unacknowledged or buffered data may remain untransmitted before TCP will forcibly close theÁ졃 corresponding connection.ÁÃ�ü˃XU Setting `timeout` to `None` or a zero duration causes the system default timeouts toÁü¨„^[ be used. If `timeout` in milliseconds is larger than `c_uint::MAX`, the timeout is clampedÁü‹…^[ to `c_uint::MAX`. For example, when `c_uint` is a 32-bit value, this limits the timeout toÁìî… approximately 49.71 days.ÁÓª|£†ÅŒ ¬Í†ÅÊ ¬ð†Åò œ“‡Å« ¤´‡ü¿†”ü™†Àü�†Ë¤ç‡ó  ó Ð}±�±–BÿÖ ü‡Ö ‹$ý‡Èò<ƒˆ$Úˆ‹�Œ�Œ�ŒŒ‹Œø�UÿüÂŽ>ü‡‹B? Get the value of the `TCP_USER_TIMEOUT` option on this socket.Á΋�üÖ‹IF For more information about this option, see [`set_tcp_user_timeout`].Á¤Œ�ü¬ŒA> [`set_tcp_user_timeout`]: crate::Socket::set_tcp_user_timeoutÁÓª|…�ÅŒ ¬¯�ÅÊ ¬Ò�Åò œõ�Å« ¤–Žü¡�”üûŒÀüòŒË„ÉŽô  ô Ð}§ÚBÿÖ ÚŽÖ �$ÛŽDŠ���Ž�Ž�ŽŽ�ޱ�Uÿü©•Eüõ‘74 Attach Berkeley Packet Filter (BPF) on this socket.Á±’�ü¹’FC BPF allows a user-space program to attach a filter onto any socketÁü„“KH and allow or disallow certain types of data to come through the socket.ÁÔ“�üÜ“vs For more information about this option, see [filter](https://www.kernel.org/doc/html/v5.12/networking/filter.html)ÁÓª|á”Åò œö”ÅŒ ¬‹•üõ”,üà”Bü×”Ml°•õ ö  õ Ð} ö €„±–BÿÖ ¾•Ö �$¿•filtersÁ<Å•ü¢›-ü…™85 Detach Berkeley Packet Filter(BPF) from this socket.Á™�üÊ™A> For more information about this option, see [`attach_filter`]Á�š�ü˜š30 [`attach_filter`]: crate::Socket::attach_filterÁÓª|ÚšÅò œïšÅŒ ¬„›üîš,üÙšBüКMl©›÷  ÷ Ð}±–BÿÖ ·›Ö �$¸›üŠ 'ü·œ=: Gets the value for the `SO_COOKIE` option on this socket.Áùœ�ü��QN The socket cookie is a unique, kernel-managed identifier tied to each socket.Áü×�63 Therefore, there is no corresponding `set` helper.Á’ž�üšžµ² For more information about this option, see [Linux patch](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5daab9db7b65df87da26fd8cfa695fb9546a1ddb)ÁÓª|ÞŸÅò œïŸüÝŸ&üÔŸ14‘ ø  ø Ð}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwž£BÿÖ ˜ Ö ‘$™ ü—¦*ü¤¡>; Get the value of the `IPV6_TCLASS` option for this socket.Áç¡�üï¡B? For more information about this option, see [`set_tclass_v6`].Á¶¢�ü¾¢30 [`set_tclass_v6`]: crate::Socket::set_tclass_v6ÁÓª|‰£ ÅŒ ¬³£Å  ¼Ö£Å¶ ¬û£ÅÊ ¬ž¤Åò œÁ¤Åˆ œâ¤Å„ ¤ƒ¥Å— ¬¥¥Å« ¤È¥ÅÞ ¬ê¥ü¥£åüÿ¢‘üö¢œLž¦ù  ù Ð}�óBÿÖ ¨¦Ö ’$©¦Dº§’�“�“�““’“Íôüº¬:üç§>; Set the value of the `IPV6_TCLASS` option for this socket.Áª¨�ü²¨C@ Specifies the traffic class field that is used in every packetsÁÔú¨­ìÓª|¬© ÅŒ ¬Ö©Å  ¼ù©Å¶ ¬žªÅÊ ¬ÁªÅò œäªÅˆ œ…«Å„ ¤¦«Å— ¬È«Å« ¤ë«ÅÞ ¬�¬üÈ©åü¢©‘ü™©œlÁ¬ú  ú Ð}±–BÿÖ ϬÖ ”$ЬtclassÁ4Ö¬üú°3üÄ®A> Get the value of the `TCP_CONGESTION` option for this socket.ÁН�ü’¯GD For more information about this option, see [`set_tcp_congestion`].ÁÞ¯�üæ¯=: [`set_tcp_congestion`]: crate::Socket::set_tcp_congestionÁÓª|²°Å¶ ¬Ç°Åò œÞ°üư,ü±°Bü¨°Mt�±û  û Ð}ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¦Ñ ž£BÿÖ �±Ö •$‘±|α|展•ù³•�˜�˜�˜˜•˜ÉÌ¦Ñ Uÿ êÎþ¨ü³·Füª´A> Set the value of the `TCP_CONGESTION` option for this socket.Áð´�üø´JG Specifies the TCP congestion control algorithm to use for this socket.Áǵ�üϵJG The value must be a valid TCP congestion control algorithm name of theÁüž¶>; platform. For example, Linux may supports "reno", "cubic".ÁÓª|ë¶Å¶ ¬€·Åò œ—·üÿ¶,üê¶Büá¶M”º·ü ý  ü Ð} ý àÚ±–BÿÖ Í·Ö ™$η tcp_ca_nameÁ\Ô·ç¹™�š�š�šš™š¹Â üľ;üú¹C@ Set value for the `DCCP_SOCKOPT_SERVICE` option on this socket.Áº�üʺKH Sets the DCCP service. The specification mandates use of service codes.Áüš»KH If this socket option is not set, the socket will fall back to 0 (whichÁüê»HE means that no meaningful service code is present). On active socketsÁü·¼GD this is set before [`connect`]. On passive sockets up to 32 serviceÁüƒ½,) codes can be set before calling [`bind`]Á´½�ü¼½'$ [`connect`]: crate::Socket::connectÁüè½! [`bind`]: crate::Socket::bindÁÓª|˜¾Åò œ©¾ü—¾&ü޾1„˾þ  þ Ð}±–BÿÖ ܾÖ ›$ݾ—¬$ã¾üæÂ-üÏÀFC Get the value of the `DCCP_SOCKOPT_SERVICE` option on this socket.ÁšÁ�ü¢ÁC@ For more information about this option see [`set_dccp_service`]ÁêÁ�üòÁ96 [`set_dccp_service`]: crate::Socket::set_dccp_serviceÁÓª|ºÂÅò œËÂü¹Â&ü°Â1díÂÿ  ÿ Ð}�óBÿÖ úÂÖ œ$ûÂüÁÅ7üúÃ@= Set value for the `DCCP_SOCKOPT_CCID` option on this socket.Á¿Ä�üÇÄ?< This option sets both the TX and RX CCIDs at the same time.ÁÓª|•ÅÅò œ¦Åü”Å&ü‹Å1lÈÅ€  € Ð}±–BÿÖ ÖÅÖ �$×ÅccidÁ$ÝÅüñÈ-üâÆFC Get the value of the `DCCP_SOCKOPT_TX_CCID` option on this socket.Á­Ç�üµÇA> For more information about this option see [`set_dccp_ccid`].ÁûÇ�üƒÈ30 [`set_dccp_ccid`]: crate::Socket::set_dccp_ccidÁÓª|ÅÈÅò œÖÈüÄÈ&ü»È1døÈ�  � Ð}�óBÿÖ …ÉÖ ž$†Éü”Ì-ü…ÊFC Get the value of the `DCCP_SOCKOPT_RX_CCID` option on this socket.ÁÐÊ�üØÊAðÕ žË�ü¦Ë3ÉÖ Óª|èËÅò œùËüçË&üÞË1d›Ì‚  ‚ Ð}�óBÿÖ ¨ÌÖ Ÿ$©ÌüÅÏMü¨ÍKH Set value for the `DCCP_SOCKOPT_SERVER_TIMEWAIT` option on this socket.ÁøÍ�ü€ÎFC Enables a listening socket to hold timewait state when closing theÁüËÎ?< connection. This option must be set after `accept` returns.ÁÓª|™ÏÅò œªÏü˜Ï&ü�Ï1ÄÌσ  ƒ Ð}±–BÿÖ åÏÖ  $æÏ hold_timewaitÁlìÏü¡Ô6üüÑNK Get the value of the `DCCP_SOCKOPT_SERVER_TIMEWAIT` option on this socket.ÁÏÒ�ü×Ò96 For more information see [`set_dccp_server_timewait`]Á•Ó�ü�ÓIF [`set_dccp_server_timewait`]: crate::Socket::set_dccp_server_timewaitÁÓª|õÓÅò œ†ÔüôÓ&üëÓ1¤¨Ô„  „ Ð}¼©BÿÖ ½ÔÖ ¡$¾Ôü©Ú?ü™ÖFC Set value for the `DCCP_SOCKOPT_SEND_CSCOV` option on this socket.ÁäÖ�üìÖKH Both this option and `DCCP_SOCKOPT_RECV_CSCOV` are used for setting theÁü¼×IF partial checksum coverage. The default is that checksums always coverÁüŠØEB the entire packet and that only fully covered application data isÁüÔØKH accepted by the receiver. Hence, when using this feature on the sender,Áü¤ÙJG it must be enabled at the receiver too, with suitable choice of CsCov.ÁÓª|ýÙÅò œŽÚüüÙ&üóÙ1œ°Ú…  … Ð}±–BÿÖ ÄÚÖ ¢$ÅÚlevelÁ,ËÚüÝÞ0ü¼ÜIF Get the value of the `DCCP_SOCKOPT_SEND_CSCOV` option on this socket.ÁŠÝ�ü’ÝDA For more information on this option see [`set_dccp_send_cscov`].ÁÛÝ�üãÝ?< [`set_dccp_send_cscov`]: crate::Socket::set_dccp_send_cscovÁÓª|±ÞÅò œÂÞü°Þ&ü§Þ1|äÞ†  † Ð}�óBÿÖ ôÞÖ £$õÞüžâ?ü÷ßIF Set the value of the `DCCP_SOCKOPT_RECV_CSCOV` option on this socket.ÁÅà�üÍàJG This option is only useful when combined with [`set_dccp_send_cscov`].Áœá�ü¤á?�ç Óª|òáÅò œƒâüñá&üèá1œ¥â‡  ‡ Ð}±–BÿÖ ¹âÖ ¤$ºâ´å ,ÀâüÒæ0ü±äIF Get the value of the `DCCP_SOCKOPT_RECV_CSCOV` option on this socket.Áÿä�ü‡åDA For more information on this option see [`set_dccp_recv_cscov`].ÁÐå�üØå?< [`set_dccp_recv_cscov`]: crate::Socket::set_dccp_recv_cscovÁÓª|¦æÅò œ·æü¥æ&üœæ1|Ùæˆ  ˆ Ð}�óBÿÖ éæÖ ¥$êæüùéDüìçJG Set value for the `DCCP_SOCKOPT_QPOLICY_TXQLEN` option on this socket.Á»è�üÃèLI This option sets the maximum length of the output queue. A zero value isÁü”é*' interpreted as unbounded queue length.ÁÓª|ÍéÅò œÞéüÌé&üÃé1¼€ê‰  ‰ Ð}±–BÿÖ ˜êÖ ¦$™êñ]4ŸêüÀî4ü–ìFC Get the value of the `DCCP_SOCKOPT_QPOLICY_TXQLEN` on this socket.Ááì�üéìHE For more information on this option see [`set_dccp_qpolicy_txqlen`].Á¶í�ü¾íGD [`set_dccp_qpolicy_txqlen`]: crate::Socket::set_dccp_qpolicy_txqlenÁÓª|”îÅò œ¥îü“î&üŠî1œÇîŠ  Š Ð}�óBÿÖ ÛîÖ §$Üîü•ôRüµðNK Get the value of the `DCCP_SOCKOPT_AVAILABLE_CCIDS` option on this socket.Áˆñ�ü�ñ85 Returns the list of CCIDs supported by the endpoint.ÁÍñ�üÕñDA The parameter `N` is used to get the maximum number of supportedÁüžòKH endpoints. The [documentation] recommends a minimum of four at the timeÁ|îò of writing.Á‚ó�üŠóPM [documentation]: https://www.kernel.org/doc/html/latest/networking/dccp.htmlÁÓª|éóÅò œúóüèó&üßó1¤œô‹  ‹ Ð}ĦBÿÖŠ©© ÁôÖŠt±ô ¨Š$Âô ·ôüÓù-üÛ÷JG Get the value of the `DCCP_SOCKOPT_GET_CUR_MPS` option on this socket.Áªø�ü²øFC This option retrieves the current maximum packet size (applicationÁÜýø payload size) in bytes.ÁÓª|§ùÅò œ¸ùü¦ù&ü�ù1dÚùŒ  Œ Ð}�óBÿÖ çùÖ «$èùüˆý*ü¾û?< Get the value for the `SO_BUSY_POLL` option on this socket.Á‚ü�üŠüC££ Óª|ÜüÅò œíüüÛü&üÒü1L�ý�  � Ð}�óBÿÖ ™ýÖ ¬$šýüÝÿ=ü“þ?< Set the value for the `SO_BUSY_POLL` option on this socket.Á×þ�üßþC££ Óª|±ÿÅò œÂÿü°ÿ&ü§ÿ1läÿŽ  Ž Ð}±–BÿÖ òÿÖ ­$óÿÚQLùÿ¬Üƒüð�! Berkeley Packet Filter (BPF).Á’‚�ü–‚" See [`Socket::attach_filter`].Á¹‚�ü½‚;8 [`Socket::attach_filter`]: crate::Socket::attach_filterÁÓª|ƒƒÅò œ˜ƒÅŒ ¬­ƒü—ƒ,ü‚ƒBüù‚MT烀„«A=X/ꄯ̧…4§…É®®ù¬|“†Óª|Ï…Åò œä…ÅŒ ¬ù…üã…,üÎ…BüÅ…M€„±üʆA䩆 Create new `SockFilter`.Á׆€„Bÿ°° ±—¬ÔÕ¤¬ÞÕ¯¬èÕ¡òÕü¿ˆ#Óª|û‡Åò œ�ˆÅŒ ¬¥ˆü�ˆ,üú‡Büñ‡M€„³ g³üéˆBìˆ� � ‘  � €„ � €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡‘ œ‰Bÿ² ðˆ² ³$ñˆœ ÷ˆü¸Œ9Óª|�ŒÅò œ¡Œü�Œ&ü†Œ1嵦ú t½Œµ„¶·Ý"Þ"· ÃŒ\øŒ4ýŒ´´àÚÄ‘�,”�•  • µ„ • àÚBÿ´ š�´ ·Š$›�Üæ�Ð}¹…$¹üˆŽ!,‹Ž–  – Ð}®L®L’Ÿ°Lµ„Û#±L²ŸÛ#t4bE™– Bÿ¸ ‘ޏ ¹$’Žôœ�Ð}»£#»äÁ�LÄ�—  — Ð}Bÿº Î�º »$Ï�üÿ�$›…½®½üª�'$­�Ð}›…Bÿ¼¼ ½sockÁ$²�üÔ‘ Ð}¿§#¿ìû‘\þ‘Ð}Bÿ¾¾ ¿ãÞü¼’$Ð}Á®Áüç’%$ê’›…Ð}BÿÀÀ Áµ„ï’üŽ” Ð}Ã¥#Ãüµ”1\¿”Ð}ÿ õ„Ë”TÅ7¡DÚ7ººËËÜÜîîüÏ9Åú œ¬8ÅÞ ¬Å8Å„ ¤à8Å“¾œú8ÅÓ ¬“9Å€”®9ü¦8�ü¢8¢ü™8­ÿtø9„�:"”Ü:Óª|¬:Åò œ½:ü«:&ü¢:14|Æ;Óª|ú:Åò œ�;ÅŒ ¬¤;üŽ;,üù:Büð:MF\à?Í�ÐÑÒÓ´µ@üò?>; Domain for IPv4 communication, corresponding to `AF_INET`.Á$¿@ÏÏÍ�´­Aüé@?< Domain for IPv6 communication, corresponding to `AF_INET6`.Á$·AÏÏÍ�´ÐBüâAEB Domain for Unix socket communication, corresponding to `AF_UNIX`.ÁÅ€”¶B¤µBü¬B$ÚBÏÏÍ�ü¶C7ü„C-* Returns the correct domain for `address`.Á\ÃC…zÍ�BÿÏÏ ÓŸfâÜùDÍ�Õ®ÕÜ›E$žEÍ�BÿÔÔ ÕšºãÜÔE×®×ÜöE$ùEÍ�BÿÖÖ ×šäL¬J…‚ÙÚÛÜÝ´™Kü¼J(% Type corresponding to `SOCK_STREAM`.ÁéJ�üñJ# Used for protocols such as TCP.Á4£KØØ…‚¬«LüÏK'$ Type corresponding to `SOCK_DGRAM`.ÁûK�üƒL# Used for protocols such as UDP.Á,µLØØ…‚¤ìMüßL&# Type corresponding to `SOCK_DCCP`.ÁŠM�ü’M Used for the DCCP protocol.ÁÓª|ÀMÅò œÑMü¿M&ü¶M1$öMØØ…‚ÌÐOüžN+( Type corresponding to `SOCK_SEQPACKET`.ÁÓª|áNʤ‚OÅ€”˜OŰ¾¬¬Oü�OAüýNFü×NrüÎN}LÚOØØ…‚œ‡RüŒP%" Type corresponding to `SOCK_RAW`.ÁÓª|ÉPÅ“¾œ÷Pʤ˜QÅ€”ºQŰ¾¬ÚQüéP�üåP•ü¿PÁü¶PÌ‘RØØ…‚̵R…‚ß®ßÌÕR$ØR…‚BÿÞÞ ßª èÌŠSá®á̪S$­S…‚Bÿàà áªkèlâV½‚ãäåæçèéêÔÆWüöV'$ Protocol corresponding to `ICMPv4`.ÁÅ€”¬W¤«Wü¢W4ÐWâ⽂ÔÕXü…X'$ Protocol corresponding to `ICMPv6`.ÁÅ€”»X¤ºXü±X4ßXâ⽂¼¿Yü–Y$! Protocol corresponding to `TCP`.ÁÉYâ⽂¼£ZüúY$! Protocol corresponding to `UDP`.Á­Zâ⽂̩[üþZ&# Protocol corresponding to `MPTCP`.ÁÅò œäZÜÞZ,³[â⽂ÄÈ\üè[%" Protocol corresponding to `DCCP`.ÁÓª|œ\Åò œ­\ü›\&ü’\1$Ò\â⽂Ä�^ü…]%" Protocol corresponding to `SCTP`.ÁÓª|¹]Ŷ ¬Î]Åò œå]üÍ],ü¸]Bü¯]M$‹^â⽂ܼ`ü¾^(% Protocol corresponding to `UDPLITE`.ÁÓª|þ^ÅŒ ¬¨_Ŷ ¬Ë_ÅÊ ¬î_Åò œ‘`üš_•üô^Áüë^Ì<Æ`â⽂ì¾b½‚ì®ììâb$åb½‚Bÿëë 즓íìŸcî®îìÃc$Æc½‚Bÿíí î¦õítÅfÅ“¾œ‚fÅ€”—fŰ¾¬«fü�f@üýeEüôePõ‚ðü¦i'üÚf74 Check if the message contains a truncated datagram.Á–g�üžg63 This flag is only used for datagram-based sockets,ÁÜÙg not for stream sockets.Áùg�ü�h52 On Unix this corresponds to the `MSG_TRUNC` flag.Áü»h@= On Windows this corresponds to the `WSAEMSGSIZE` error code.ÁʤŠi´‰iü€i!d³iõ‚Bÿïï ð&ðYüþiKH A version of [`IoSliceMut`] that allows the buffer to be uninitialised.ÁÊj�üÎj'$ [`IoSliceMut`]: std::io::IoSliceMutÁ„–kÌ2óóòŠL®îÞ¡òô®ƒòŠBÿYF®ƒòŠBÿññ òÌ2§kÌ«kññ®ƒüÈk,Ì2ööòŠ÷ g÷Íküûk:þk¨ © ª  ¨ òŠ © €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡ª œ‰Bÿõ ‚lõ ÷Ì2$ƒlñ‰lìñlÌ2ùùòŠúölü±nBü•m;8 Creates a new `MaybeUninitSlice` wrapping a byte slice.ÁÕm�dÝm # PanicsÁîm�üöm63 Panics on Windows if the slice is larger than 4GB.Á¸nÁ” òŠBÿøø úÌ2ɉwòü¹o'Ì2üüòŠýþÝ"Þ"þ¾o\ço4ìoûûÙ»ü�p%,�p«  « òŠ « Ù»Bÿû –pû þÌ2$—püØp*Ì2€€òŠ�ê"�Ýpü‰q1LŒq¬  ¬ òŠ ¬ Ù»Bÿÿ –qÿ �Ì2$›qŒÙxÆ‹ƒ„…†üÙy"üñx96 Returns a new, empty set of TCP keepalive parameters.ÁæyÆ‹Bÿ‚‚ ƒü¼„4ü§€KH Set the amount of time after which TCP keepalive probes will be sent onÁ¬÷€ idle connections.Á‘��ü™�74 This will set `TCP_KEEPALIVE` on macOS and iOS, andÁüÕ�>; `TCP_KEEPIDLE` on all other Unix operating systems, exceptÁü˜‚=: OpenBSD and Haiku which don't support any way to set thisÁüÚ‚B? option. On Windows, this sets the value of the `tcp_keepalive`Áü¡ƒ# struct's `keepalivetime` field.ÁɃ�üу?< Some platforms specify this value in seconds, so sub-secondÁü•„" specifications may be omitted.ÁLɄƋø�Æ‹Bÿ‚‚ „hüÛsüüÏŒ<üÈ…JG Set the value of the `TCP_KEEPINTVL` option. On Windows, this sets theÁü—†DA value of the `tcp_keepalive` struct's `keepaliveinterval` field.Áà†�üè†85 Sets the time interval between TCP keepalive probes.Á¥‡�ü­‡?¬·üñ‡"ö·ÅŒ ¬«ˆÅ  ¼ÊˆÅ÷ÄëˆÅ¶ ¬�‰ÅÊ ¬¬‰ÅÞ ¬Ë‰Åå Œê‰Åô ´…ŠÅò œ¥ŠÅˆ œÂŠÅ„ ¤ßŠÅ™ ”ýŠÅ© ¬™‹Åɬ¸‹Å« ¤×‹Åøœõ‹Å€”–Œ¸‘Œ®Œœ­Œü•Œ,ü¡ˆ§ü˜ˆ²l܌Ƌø�Æ‹Bÿ‚‚ …þ©a þüì”5üë�.+ Set the value of the `TCP_KEEPCNT` option.ÁžŽ�ü¦ŽKH Set the maximum number of TCP keepalive probes that will be sent beforeÁüöŽFC dropping a connection, if TCP keepalive is enabled on this socket.ÁÓª|Ô�ÅŒ ¬þ�Å  ¼¡�Å÷ÄÆ�Ŷ ¬ì�ÅÊ ¬�‘ÅÞ ¬²‘Åå ŒÕ‘Åô ´ô‘Åò œ˜’ň œ¹’Å„ ¤Ú’Å™ ”ü’Å© ¬œ“Å« ¤¿“Åɬá“Åøœ„”Å€”©”¸‘ŒÁ”œÀ”ü¨”,üð�ïüÊ�›üÁ�¦dù”ƋƋBÿ‚‚ †›ÿ¹a¥ÿü’˜)üý•0- Configuration of a `sendmsg(2)` system call.Á®–�ü²–OL This wraps `msghdr` on Unix and `WSAMSG` on Windows. Also see [`MsgHdrMut`]Áü‚—)& for the variant used by `recvmsg(2)`.ÁÅ“¾œº—Å€”ϗŰ¾¬ã—ü¹—@üµ—Eü¬—P4�˜„Xˆ‘X‰žXŠ‰Šˆ‘X‘Xü€™Q‡‡öW‹€Œ¶X)§N¢Éø:é„X‘XžX)§N¢Éø:鋌,¤˜,«˜D²˜”˜,˜‡‡³ËšT€™‡‡„!„!…!¼�o$z�é - „XÃy ‘XŒ‰Œ‰�‰²„�‰óö7 Å0ײ÷([O‘X žXàÚü§š;Å“¾œä™Å€”ù™Å°¾¬�šüã™@üß™EüÖ™P„XŽ‘X�žX��Ž�ŸÆ‘’“”•,¬š,³šDºšüÍ›.üéš52 Create a new `MsgHdr` with all empty/zero fields.ÁÔ›ŸÆBÿ�� ‘„X‘XžXüÞž9ü¶�*' Set the address (name) of the message.Áå��üí�JG Corresponds to setting `msg_name` and `msg_namelen` on Unix and `name`Á켞 and `namelen` on Windows.ÁL垟ÆóÇŸÆBÿ�� ’„X‘XžX$óžù×bü“¡AüçŸ%" Set the buffer(s) of the message.Á‘ �ü™ MJ Corresponds to setting `msg_iov` and `msg_iovlen` on Unix and `lpBuffers`Áüë # and `dwBufferCount` on Windows.Ád𡱠ŸÆ ‘X Œ‰Œ‰�‰²„�‰óö7 Å0ײ÷([O± ŸÆBÿ�Ç¡� “„X‘XžX$«¡”Ý$±¡üü£:üÙ¢*' Set the control buffer of the message.Áˆ£�ü�£IF Corresponds to setting `msg_control` and `msg_controllen` on Unix andÁÌÞ£ `Control` on Windows.Ádƒ¤ŸÆ¿ÈŸÆBÿ�� ”„X‘XžX$”¤ɉ“ü¸¦6ü½¥! Set the flags of the message.Áã¥�üë¥HE Corresponds to setting `msg_flags` on Unix and `dwFlags` on Windows.ÁT¿¦ŸÆŸÆBÿ�� •„X‘XžX$ΦØZdü�¨JÅ“¾œÌ§Å€”á§Å°¾¬õ§ü˧@üǧEü¾§P»Y—‘X˜žX™˜—™›Œš gš,”¨,›¨D¢¨üà¨:㨲 ³ ´  ² ›Œ ³ €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡´ œ‰Bÿ– 稖 š»Y‘XžX$è¨ñî¨ü‘ª'Å“¾œÎ©Å€”ã©Å°¾¬÷©üÍ©@üÉ©EüÀ©P8µ 8¶ 8· · µ ¶ íŒüϬ,ü½ª0- Configuration of a `recvmsg(2)` system call.Áîª�üòªPM This wraps `msghdr` on Unix and `WSAMSG` on Windows. Also see [`MsgHdr`] forÁüë%" the variant used by `sendmsg(2)`.ÁÅ“¾œ÷«Å€”Œ¬Å°¾¬ ¬üö«@üò«Eüé«PLÚ¬„X�‘XžžXŸ�Ÿž�ÆüÀ­…œœãY €¡¶X¸@û4èj„X‘XžX¸@û4èj ¡,ä¬,ë¬Dò¬”‚­,‚­œœ³Ë›TÀ­œœ„!„!…!¼�o$z�é - „XÃy ‘XññòŽ<ôó L®îÞ¡‘X žXàÚü›¯>Å“¾œØ®Å€”í®Å°¾¬�¯ü×®@üÓ®EüÊ®P„X£‘X¤žX¥¤£¥åÚ¦§¨©ª«, ¯,§¯D®¯üǰ1üà¯85 Create a new `MsgHdrMut` with all empty/zero fields.ÁΰåÚBÿ¢¢ ¦„X‘XžXü•´=ü¶²2/ Set the mutable address (name) of the message.Áí²�üõ²JÌÊìij ËLœ´åÚ¹ÜåÚBÿ¢¢ §„X‘XžX$ª´ù×· üÖ¶Nü¢µ-* Set the mutable buffer(s) of the message.ÁÔµ�üܵMëÌü®¶#ÃÍdݶ¸ åÚ ‘X ññòŽ<ôó L®îÞ¡¸ åÚBÿ¢—·¢ ¨„X‘XžX$î¶”Ý$ô¶ü¾¹Kü“¸2/ Set the mutable control buffer of the message.Áʸ�üÒ¸IèÏÌ ¹»ÐdŹåÚ žXÙ»åÚBÿ¢¢ ©„X‘XžX$Ö¹ɉ ü¤» üúº%" Returns the flags of the message.Á,«»¹  ¹ åÚõ‚Bÿ¢ ±»¢ ª„X‘XžX$²»üè½"üù»*' Gets the length of the control buffer.Á¨¼�ü°¼]Z Can be used to determine how much, if any, of the control buffer was filled by `recvmsg`.Á’½�üš½IF Corresponds to `msg_controllen` on Unix and `Control.len` on Windows.Á\コ  º åÚBÿ¢ û½¢ «„X‘XžX$ü½ü”¿MÅ“¾œÑ¾Å€”æ¾Å°¾¬ú¾üо@ü̾EüþP»Y­‘X®žX¯¯­®»�° g°,™¿, ¿D§¿üè¿:ë¿» ¼ ½  » »� ¼ €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡½ œ‰Bÿ¬ ↓ °»Y‘XžX$ð¿ñö¿üœÁ*Å“¾œÙÀÅ€”îÀŰ¾¬‚ÁüØÀ@üÔÀEüËÀP8¾ 8¿ 8À À ¾ ¿ �Ž´ã"ã skipÁlÔ"„Ò"Lð" ú" æ4 ™# ¸#, š#8¦:<›#& ¢#8ý¤# §# ¶#, ©#8ô <ª#& ±#8ý³#*º# ½# ë$8µ4Ç# Í# Î# å$ 8Ÿ[LÜ# å# æ# ï#8__Áç#8introÁ,ê#$ ð#8Ÿ[Lþ# ‡$ ˆ$ £$8Ëí‰$8Ì$Œ$, ‘$8¦:<’$ ™$ ¢$, š$8ô <›$$ ¤$8Ÿ[L²$ »$ ¼$ Ú$8Ëí½$8É<À$, È$8¦:<É$ Ð$ Ù$, Ñ$8ô <Ò$$ Û$% ì$ ‘% ¶%8Ì$’%& –%, ˜%8¦:<™%&  %8ý¢% ¥% ´%, §%8ô <¨%& ¯%8ý±%*¸% »% ²&8µ4Å% Ë% Ì% ¬&8Ÿ[LÚ% ã% ä% í%8Ëíå%8Øí,è%$ î%8Ÿ[Lü% …& †& ¡&8Ëí‡&8Ì$Š&, �&8¦:<�& —&  &, ˜&8ô <™&$ ¢&% ³& ×& ÿ&8É<Ø&& ß&, á&8¦:<â&& é&8ýë& î& ý&, ð&8ô <ñ&& ø&8ýú&*�' „' þ'8µ4Ž' ”' •' ø'8Ÿ[L£' ¬' ­' ¶'8Ëí®'8Øí,±'$ ·'8Ÿ[LÅ' Î' Ï' í'8ËíÐ'8É<Ó', Û'8¦:<Ü' ã' ì', ä'8ô <å'$ î'% ÿ' —(  (8Ëí˜(8Øí,›(*¢( ¥( ø(7B\n\nAdditional documentation can be found in manual of the OS:\n\nÁü¯(D% ù( ž) Å)8ËíŸ)8Ì$¢), §)8¦:<¨)& ¯)8ý±) ´) Ã), ¶)8ô <·)& ¾)8ýÀ)*Ç) Ê) à28µ4Ô) Ú) Û) Ú2p79 * DragonFly BSD: \nÁ,ß*$ ä*77 * FreeBSD: \nÁTø,$ ‚-7n * macOS: (archived, actually for iOS)\nÁü³.'$ Ú.7# * NetBSD: (archived)\nÁ¬á1$ ö17- * illumos: [`SocketAddr`], [`SocketAddrV4`], and [`SocketAddrV6`] types.ÁDøÃy¦Ñ5†ÚÏ9´µ̇<‡³³ªšt¦¦³³L]Ãy·†·LL© ©ÃyÃyBÿ¶å¶ ·Lü�ü üîøJG A local interface specified by its index or an address assigned to it.Á¹ù�ü½ùOL `Index(0)` and `Address(Ipv4Addr::UNSPECIFIED)` are equivalent and indicateÁü�úC@ that an appropriate interface should be selected by the system.ÁÅú œäúÅÞ ¬ýúÅ„ ¤˜ûÅ“¾œ²ûÅÓ ¬ËûÅ€”æûüÞú�üÚú¢üÑú­¼¦üã|4´Ø®Èü¹º¼½º»ã|Bÿ½¾çÖã|Bÿ~¼Äü An interface index.Á~¸¸ º~~ã|Bÿ¸¸î‘æü¸¸Íüðü(% An address assigned to an interface.Á͸¸ ½ÍÍçÖã|Bÿ¸¸�“D¥ý¸¸çÖv‚”ã|À gÀv‚v‚�Ž� �ã| Ž€g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡�œ‰Bÿ¿áˆü¿ Àv‚œv‚ â�ü•ã|§…§…§…–ã|§…–ã|Ćħ…§…� �ã|ã|BÿÃã•üà ħ…ÈäÙÐ}Æ®Æðä� 䄳~Ð}BÿÅÅ ÆÚ0ä‰ÈåÙÐ}È®Èðå� 儸~Ð}BÿÇÇ ÈÚ0å‰ÈæÙ Ð}Ê®Êðæ� æ„¿Ð}BÿÉÉ ÊÚ0æ‰ÈçÙ!³~Ì®Ìðç� ç„Ð}³~BÿËË ÌÚ0ç‰ÈèÙ"ø~ήÎðè� è„Ð}ø~BÿÍÍ ÎÚ0è‰ÈéÙ#¿Ð®Ððé� é„Ð}¿BÿÏÏ ÐÚ0é‰ðì¬%Í�Ò gÒøìÙBìÜŽ � �  Ž Í� � €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡� œ‰BÿÑìàÑ Ò ìáœìçðõ¬&…‚Ô gÔøõÙBõÜ‘ ’ “  ‘ …‚ ’ €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡“ œ‰BÿÓõàÓ Ô õáœõçðþ¬'½‚Ö gÖøþÙBþÜ” • –  ” ½‚ • €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡– œ‰BÿÕþàÕ Ö þáœþçü¯‹(üô‰)& See [`Socket::dccp_available_ccids`].ÁžŠ�ü¢ŠIF [`Socket::dccp_available_ccids`]: crate::Socket::dccp_available_ccidsÁÓª|öŠÅò œ‡‹üõŠ&üìŠ1Olº‹ŠØØ¦ú tÈ‹µ„+YÍÂ)¥/ÙÛ! ΋”Þ‹LÞ‹É××­§\ö‹4ö‹É××~ØßŠÝݦú pàÈ‹µ„ß gß|~Ø~Ø’ “ ”  ’ µ„ “ €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡” œ‰BÿÜà§‹Ü ßŠ~Øœ~ØÈáÙPÐ}á®áðá� á„�†Ð}Bÿàà áÚ0á‰ÈâÙQÐ}ã®ãðâ� â„džÐ}Bÿââ ãÚ0â‰ÈãÙRÐ}å®åðã� ã„�‡Ð}Bÿää åÚ0ã‰ÈäÙS�†ç®çðä� ä„Ð}�†Bÿææ çÚ0ä‰ÈåÙTdžé®éðå� å„Ð}džBÿèè éÚ0å‰ÈæÙU�‡ë®ëðæ� æ„Ð}�‡Bÿêê ëÚ0æ‰üØ;;8 Specification of the communication domain for a socket.Á”<�ü˜$! into libc for various constants.Á«>�ü¯>OL This type is freely interconvertible with C's `int` type, however, if a rawÁüÿ> value needs to be provided.ÁX4Ð?Í�ª/¼)¡¹ xíîÍ�Bÿ6Í�Bÿìì í,×?ìì ç¨?àÍ�ßßßáÍ�ßáÍ�ò†òßߘ  ˜ Í�Í�Bÿñè®?ñ òß‹ßâÍ�ôÎô‹ß‹ß‹ß‹ß™  ™ Í�Bÿóéµ?ó ô‹ß0àãÍ�0àãÍ�÷ù±÷0à0àš ›  š Í� › Í�Bÿöê¹?ö ÷0àî 0àlü©F96 Specification of communication semantics on a socket.ÁãF�üçFMá©üµGP¸ªü†HMJ as [`Type::STREAM`], [`Type::DGRAM`], etc, are provided to avoid reachingÁüÔH$ê«ùH�üýHO¤¬üÍIý¬Y$žJ…‚TiÂ8ùÎÙvùú…‚Bÿl6…‚Bÿøø ù,£Jøø ëöIä…‚AäAäAäå…‚Aäå…‚þ†þAäAäœ  œ …‚…‚BÿýìüIý þAä»äæ…‚€Î€»ä»ä»ä»ä�  � …‚BÿÿíƒJÿ €»ä`åç…‚`åç…‚ƒù±ƒ`å`åž Ÿ  ž …‚ Ÿ …‚Bÿ‚î‡J‚ ƒ`åî `å»üÛSGD Protocol specification used for creating sockets via `Socket::new`.Á£T�ü§TMá©üõT52 addition to an injection point for documentation.Á«U�ü¯UO¤¬üÿUý¬ZDÐV½‚l¹Zÿõ¸ …†½‚Bÿ»6½‚Bÿ„„ …,ÙV„„ ï¨V轂�è�è�è齂�è齂ІŠ�è�è     ½‚½‚Bÿ‰ð®V‰ Š�è é꽂ŒÎŒ é é é é¡  ¡ ½‚Bÿ‹ñµV‹ Œ é¯é뽂¯é뽂�ù±�¯é¯é¢ £  ¢ ½‚ £ ½‚BÿŽò¹VŽ �¯éî ¯é üøc  Flags for incoming messages.Á™d�ü�dA> Flags provide additional information about incoming messages.ÁÅ“¾œídÅ€”‚eŰ¾¬–eüìd@üèdEüßdP[Láeõ‚²ÇxÛ7.‘’õ‚Bÿ 6õ‚Bÿ�� ‘,ëe�� ó¹eìõ‚îîîíõ‚îíõ‚–†–îî¤  ¤ õ‚õ‚Bÿ•ô¿e• –î”îîõ‚˜Î˜”î”î”î”î¥  ¥ õ‚Bÿ—õÆe— ˜”î9ïïõ‚9ïïõ‚›ù±›9ï9ï¦ §  ¦ õ‚ § õ‚BÿšöÊeš ›9ïî 9ï¼Ûrüäq30 Configures a socket's TCP keepalive parameters.Á˜r�üœr&# See [`Socket::set_tcp_keepalive`].Á\dærÆ‹܄褓³Y#�žŸ´ös$ösœœ±�Ô™vÅ— ¬©tÅ“¾œÈtÅÓ ¬åtÅ¥Œ„uʤŸuÅË”½uÅú œÙuŰ¾¬öuüŸtòü›t÷ü’t‚D™vœœ±�¤ÀxÅ— ¬ÐvÅ“¾œïvÅÓ ¬ŒwÅ¥Œ«wʤÆwÅË”äwÅú œ€xŰ¾¬�xüÆvòüÂv÷ü¹v‚<Àxœœ£ïŠ÷ðÆ‹¡ g¡Š÷Š÷­ ® ¯  ­ Æ‹ ® €g€gŠ‚gê ûcƒgɉûcØ«q¢1È¡¯ œ‰Bÿ ÷Ìr  ¡Š÷œŠ÷UùñÆ‹£†£UùUù°  ° ƋƋBÿ¢øÓr¢ £Uù•-…Ii1…IN2…I æ…Iÿ…IÛ…I‘A…IB…I•B…IC…I¥C…IÃD…IE…I’F…I|G…IwH…IlI…IÇI…I–K…I Ês…IÞs…IL…I ßy…I»L…I ‡{…I[…Irm…I õ2…I’t…I ƒ;…I)y…I ÐC…IË}…I@ƒ…I„…I‘‰…I¡Ž…I´�…If’…Iš”…I–…Ióš…I~¢…I Í~…Iz¤…I ‹ƒ…I‹¥…I Å……I|®…I Æ‘…IÝ‘…I±…I å–…Iü–…Ii³…I ›œ…I²¸…I øŸ…Ií¹…I Т…Iº¼…I 㨅Iú¨…Iû¾…I ©®…IÀ®…I¸Ä…I „º…IGÆ…I'É…I —Â…I¦Â…IªÂ…I®Â…IÐÍ…I »Å…IõÎ…I ÈÇ…IGÐ…I ñÉ…IûÉ…IXÕ…I ÍÍ…I×Í…IøÖ…I �Ò…I‚Û…I âÔ…I ïÔ…IÐÜ…I ¨×…I ½×…IhÞ…I ¸Ú…IÂÚ…I ÎÚ…Iaà…I ˜Þ…I¢Þ…I ¶Þ…Iáá…I ‘á…I™á…I�á…I¡á…Iý…I…Iv‚…IQ…IZå…IÔæ…Ißè…Iê…Iyë…Ií…IMð…Iàñ…Icô…I’ó…Iññ…Ið…I;î…Iëì…Iuë…IUê…IFé…Iøç…Iæ…I¾ä…IRã…IDâ…IAá…IjÝ…IõÙ…IRØ…I¶Ó…IDÑ…I ½ü…I Óü…IÉÏ…I …�…I ›�…I€Í…I ꊅI ˆ‹…I‚Ë…I „“…I ¢“…I†È…I ‘�…I «�…I É�…I?Æ…I Ÿ¦…I ¹¦…I צ…I¼Ä…I}Á…I·¿…I’¾…I ¸º…I:½…I–»…I4º…I ¸…Iê¶…Iuµ…I2³…It±…I¤®…I\¬…I«…I¾§…I®¥…I¤…IÏ¡…I  …I Ó•…Iž…I ¹œ…Išœ…I›…Iv™…IŽ—…I–…I'”…IÅ’…I‘…I!�…I�…IÌ�…IJ‹…I#‰…I~†…I$„…It�…In€…I7}…IÞz…I‰x…INq…I °™…I p…Ižm…Im…I °¦…Il…I È©…IÙ©…I!k…I €®…I6j…I ¼°…IͰ…ICi…I í²…I[h…I ¥´…I¯´…Ih…Ieg…I õµ…Ivf…I ­·…I··…I$f…IYe…I ò¸…I†¹…IZ…IÓ…I¸W…I î…I‚…I¹…Iìê…I샅Iô…Iõê…Iõƒ…I/…Iþê…Iþƒ…I$…I ’•…I«•…I0"…IÌ!…I[!…Ió …I …I ‡³…Iz…IÔ…I7…I¢…I…IU…Iì…Iþ…IM…I ÖÔ…IÜ…I …×…Io…IF…Ia…I™…Io …I³ …Iý …Ií…I#…I!…Ižž…IE…Iˆ¡…Iá…Iñ¦…Iõ¦…Iù¦…I8…Iôþ…I쪅I„þ…I ±¬…I+ý…IÒ¯…I ⯅I+ü…Iû±…Iÿ±…Iƒ²…IMù…I¾ó…I0ó…IÈñ…I ±å…IQé…Ikè…IÛæ…IUæ…IÊä…Iã…I á…IÜß…IbÞ…ISÜ…IÚ…IØ…IêÕ…I7Ô…I$Ñ…IMÏ…InÌ…IÀÊ…I­È…I^Æ…I«Ã…I ïð…IÀ…IB¾…IÁ»…IAº…Iʸ…Ig·…I¦µ…I´…Il²…I±¯…Iä­…I&©…I&¡…I ‹ç…IR …Iwœ…ISš…IÆ—…I Ε…IE–…Iµ“…IÊ‘…I¾�…IÊ�…I;‹…I á·…Iˆ…Iƒ†…Ib……IヅIÝ‚…Ia�…IÃ…IA}…I¯{…I^z…IÐx…Icw…IÍu…Ies…Iòq…Iq…I*p…Iôl…I úˆ…I“‰…I2…I8…I~Ø…I#l…Ilk…Iÿj…I�…I…It…Iz…I=…Iµ…I$…I*…I…I‹…Iú…I…Iÿ…Iw…Iæ …Iì …I&Z…I Žl…I¢l…IVX…IÅW…IR …IX …IŠ÷…Ië …I‰I…IF…I ó¨…I‡©…I­ª…I±ª…Iµª…I4@…I¾>…IL=…Iñ;…I û¿…I�À…I»Á…I¿Á…IÃÁ…I*1öù{­Ïñ“ÖÒÏÕØÙïè°âø‚�¢3std::io::ErrorKind::InterruptedÁˆŠ›æ^ó Domain::IPV4Á Domain::IPV6ÁãY‰EINTRÁ Type::STREAMÁ Type::DGRAMÁøøstd::io::IoSliceMutÁü7Socket::set_tcp_keepaliveÁstd::io::ErrorKindÁû‡öWstd::ioÁæ^ì‹ãóÅ㊛ãY‰ÖãûãŒäÃäñã¦äøöWáäƒåóy‹ãæ^Š›ãYœÅãÖãûãÃä‰ñãŒäø¦äöW‡áäƒå‰îyÈz SockAddr::newÁ¯[³´™Çîy”™º¨öæÈz¯[´™îyº¨öæÈz§™¯[º¨ý˜´™ú÷,Socket::accept()Á¥! Type::RAWÁ�+»º io::ReadÁçSocket::set_multicast_ttl_v4ÁÀ` Socket::sendÁù$Socket::send_vectoredÁ»#®(•*Û/ž,Íì#keepalive timeÁSocket::set_send_buffer_sizeÁ÷,˜è�+Socket::set_multicast_if_v4ÁÛ/ÃèÀ`éè®(Socket::set_recv_hoplimit_v6Á»#•*º.¼éÏ*Íì#Ïé connectedÁ�+€êµ+Socket::peek_senderÁÀ`�éè®(Û/�‰0º.»êÛ%ÍSocket::set_recv_buffer_sizeÁÏéÏ*Ú,†ëSocket::join_ssm_v4Á€êµ+¤ëSocket::set_only_v6Á‰0»ê�º.Socket::pair_rawÁÛ%õëÏ*Ÿ$Í~ Socket::bindÁ†ëÌ!¬ìSocket::recv_fromÁÚ,¤ëµ+Õì‰0‡2�¬À0‚íSocket::set_passcredÁÛ%õëŸ$Í~±íÌ!Socket::join_multicast_v4Á¬ìÚ,ÓíSocket::set_multicast_if_v6ÁÕì‡2±´ À0‡2‚ížîÁ}Ÿ$þ*±íÍ~Ì!Socket::recv_vectoredÁ×îÓí†ï±´ Socket::set_lingerÁÛ"žîÀ0‘&Á}Socket::set_ip_transparent_v4Áþ*×îŠ ìïSocket::set_multicast_hops_v6Á�astd::netÁ†ïóÕÍ#„±´ �aÛ"žð‘&Á}Ïðþ*Š ìï‡ñ®ñóÕÍ#¢„Socket::set_broadcastÁžðÛ"�aœSocket::set_ttl_v4Á‘&ÏðŠ Socket::set_ip_transparent_v6ÁÜ)‡ñ®ñù ¬óÕ¨—Í#¢„¨òŸ¾ Þ'×ò Socket::recvÁþòÜ)Socket::send_toÁ¬¢Ú[¨òŸ¾ raw(7)ÁÞ'×òíóSocket::set_recv_tos_v4ÁþòÜ)‚.‰ôTcpKeepalive::with_timeÁ¬Û Ú[Ÿ¾ ¸ôÞ'io::Read::readÁíóÔô‰ô‚.†õÛ Ú[¸Socket::set_header_included_v4Á¸ôÂõèSocket::set_multicast_loop_v4ÁÔôÃä‚.†õÛ Socket::set_no_peercredÁ�öSocket::connectÁÂõäµöSocket::peek_fromÁÃäøóöSocket::set_reuse_addressÁ�ö•÷˜#Socket::set_multicast_all_v4Áäš º÷µöSocket::set_recv_tclass_v6ÁÃäöТ'øóöá÷û'•÷˜#�øäSocket::recv_from_vectoredÁš º÷ÇøöТ'å(Socket::set_priorityÁøøá÷Socket::join_multicast_v4_nÁû'©)˜#£ùš �øSocket::set_multicast_loop_v6Áº ÇøÖ1öЉ Socket::newÁ¢'å(ãùó.boundÁŒúû'©)£ùÌúÖ1º å(‰û‰Socket::set_out_of_band_inlineÁãùó.®ûIpv4Addr::UNSPECIFIEDÁŒú©)È-Socket::set_multicast_all_v6ÁÌústd::net::UdpSocketÁÖ1º Socket::new_rawÁ‰û‰îûSocket::accept_rawÁó.®û¢üÈ$io::Read::read_vectoredÁÈ-Ìüóü•ýSocket::set_keepaliveÁ‰îûºýSocket::set_tos_v4Á¢üÈ$çýéSocket::join_multicast_v6Ástd::net::TcpStreamÁÈ-óüÍ"Ìü•ýšþSocket::acceptÁºýÉþSocket::out_of_band_inlineÁÈ$çýöþ”ÿSocket::send_to_vectoredÁóšþÎÿ0https://man7.org/linux/man-pages/man7/raw.7.htmlÁÉþíÿSocket::set_header_included_v6Áöþ”ÿâ!£€Socket::set_tcp_nodelayÁóþç¥!ÎÿÑ€±è»º íÿ’�ù$ÿ裀Ì�ž,óy÷,þç¥!˜èÑ€»º ±èÃè’�ù$ÿè»#•*¼éž,Ì�ì#!»� ®ñù óŠ4ê ‰�Á}”ÿâ!:https://doc.rust-lang.org/stable/std/os/fd/trait.AsFd.htmlÁ»� „$®ñFhttps://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.htmlÁóŠ4»ê ‰�¬Á}Ûƒ”ÿ®ñ»� óy«„Š4ê ‰�Á}”ÿÛƒ«„´crate::Socket::connectÁcrate::Socket::bindÁcrate::Socket::set_dccp_serviceÁæ^�NØH Type::cloexecÁcrate::Socket::set_tcp_mssÁ•IõLù±P³M!crate::Socket::set_tcp_congestionÁö…‘†æ^ì#crate::Socket::dccp_available_ccidsÁ�N•I܆±Pù �øcrate::Socket::set_tclass_v6Á¦‡ö…Socket::dccp_available_ccidsÁ⇭G»N•Iù»ô_øvhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5daab9db7b65df87da26fd8cfa695fb9546a1ddbÁ¦‡®ˆSocket::attach_filterÁۈ⇭G»N×IÓKãP»ô_ Linux patchÁøø¥‰®ˆ;https://www.kernel.org/doc/html/latest/networking/dccp.htmlÁ¬ŠÛˆ­G»N×IÓKãPô_„»crate::Socket::attach_filterÁõŠ¥‰ documentationÁŸ‹¬ŠÚN×IÓK() <= size_of::()5ƒ€€ƒ€€AddressIndexassertion failed: fd >= 0ƒ€€ CcidEndpoints endpoints length TcpKeepalive timeintervalretriesÿÿÿÿ‚ƒ88ƒ88’šΚךàšîšúšš›£›·›Ç›Ô›ç›ò›�œ�œ®œ½œÄœM˜vð_;yÉŸ3×�ëa²ál�ÎÓ‘©]ûÝ™h(“#}ÔöZíi¶ü‘§jÂÛ/²ÄIƒaÊ«¦="^K«ú_ÞaVöI§Éìi�–[I„(D:x.”4Ÿ2¦ÓbÉ)Ì]±\V�%@x:x!ºeõg/ë"ÿ¥žJíØ"‰6¸£ág+*8MÉÇû“¨Ž"+$rNŒ2p(¯$Êä-°¸Ž �M =eõ6rIŸ˜˜ú.Ú~:i£Q|4¦ìC㢬uÕÃl}(E.ëÜÎ2Žàc�OjV¨Š —©»!s† ,‘¾â^á$*Œ>BŸ I¦ß(T4�&$- Ï–{d·ß™%–_\ÀÊEëB¦t :ýƉx„*J,TÁšËAâ\×Òk÷c¹lYgÇ„ÍâÐËcL×4èWëŠ|-œv ŒH»tÙùéÞ"Š*Œz » ÉÑx Ž~ó\n©óERLY÷¡z{Ä[ZhîÈ0óÊŽ*ƒúþóky鯻仧‡‘’XÞÁ‘Z=B\gÃâ×6)ò]Øëlêd·WE|<Š—xoàÂî9­ -h=³FB$ß*MÀ¥�™NGŠõh!˜‹XŽPœ\ѱ¸¢âôWͺÈ÷A3Â' pÓž¾V6”«ûYß²]ðäX¬JXÂ[Á¨ìõi 2zß[d‹@VÈ¡ïcQÙéY[ì.ôþ˜>¯fYº·P¸á˜yŽ1ŸRÀ2™ÝÖ_fýAÕv’´â½':œ1¨AZ¬Á3A» '¡ Ê"0ôTêR×0 üb½l› š`?êHö!,°¯ƒÌQ€þò¹©4?Ö {Ý ºDžÄqM.m©ïiÊI ƒ”ÂeÄKÁ¸w¢NJoÙEDGæ�@ª‚7N›¡%fovâÀP�¶Ãw6£ƒVŸX”Ç0´ýñ-bðµ³�¥¦VsŒdº¼öŒ~l]¬9%î;' �Ƭ�Ô&Òœ~¢ÓF;:iãú9¯)ÒÄý Ö$wCÚÈlû}é"Î#ë„àÁçfÞ©¢³UYšéJ¯ƒüe]ãÓÇeÕf°Çf’ó?��mÀCmÌðK+Ž“üšãòÂls%åcè!Ú†l-ÊE™1_îwö+K(-Iy]TÎðu¹ ¾‘ý2x‡ûo§õ–M®=‡¢x[|çúh_l¦�y†U$“Ô»=ÎÊóþç—Z·t�s¾6™zõToxðED¢¯ç;_骱G�Ww9į÷(ªÛó([2–<” ŒK†H¬P«w3AÏ{\ýGbñGá’xÖ ó·iÖDk¥ÏˆÄ䶉p��ìÜÆhçÍ;1«e™jKwÏI2‰“ûJJwõ§³wl^cð|RqÂôKN¾G3C¾‰ð a5àϽëkÜöÑŽÛ�ÝAŽi]íö£›жè8cŒ³rçø�WIth°$ÙîCéŒ×î6Œ@_mŠ0’ð1ŽÄñacEÎñP­¡Ù‹ÍóNSØ’‡)�ǧßvN›…¡Èª• ‰3÷Ö6nÎ5Æ(¬z=ó=¸£ò(Ñ@òKJ÷½âÆ€|öÊE qt*ÓΦXÌ$«66Š7½£y(æ|û1ð§·…×ëé/F/,àI�;n£˜âò€tRÒ,ñó"NKR‡_Â[pñKW’¡þUˆ´ jŽl7Z¡¶X{RQ$'HM½¤¨¡!«*òæ2& }kãÛQÃýZ@È�‚vßc‚&ÊÞ|«Ob¬¹_2©œ/÷y£dmãŠû÷"'Ü���Úh½'wú£”€”R;ð2^öü/c¤ñ¼|vD­�Ó+M)q7á°cºƒYJä¶Xo1qŒ ^„ö®@@Pô»µ×ßµæçœ…4$ë$ÅØäÎÞ‹&Y·ÃoŸÎ4 „¢‡}úx˜¦H¾V#¸2)âF¦‰hÈjA—íÉô“ù»I¹|@ÌØ|§|xy1»XÚšÈÛÝs½ Iae¿æ`šqR@<^7À`M‚×í×ka_a $“áˆv>Uû̓ ¥ÞE²OB Kˆƒ-:cF÷?饻/NüB>lKp$ñ óº]dLf6ÙØ�÷�ì;0XÏs´õÙ�qm¬EÛ)G� }·T�/,�õ�cÒRw©N ø‘��Ê¡uŸ«&S-¯qØ$^»Zg€y—ÞÖ}uÑ3@ºßùìƒF óÔ¥‹úÏð)œ)c5ô˜A=ÎÊÛĶF0S;p(Q.§:WG8Âõ¥gøü™(ž:o¥¤A·v,èQ#+ѱïNÔ�ЯÔai-{SUß–“ð8{¼ª‹ÔióÓÒµ½¹3N§½·Ô©6p�7§“½u e{X³d~»)½iߟŒùÖåJöGpSA¶RêÄMí¡ÓˉcƒiIÊÌáR\*ž0<±Ìm d†ÇR|ŽØCLûÏ›ŒzyÔj££_Èþ)ئË×HxÅ÷ÁæŠå“’ïÁŽ$Îì"‚³£z¥X¥ZŒ4)º|„!9?úç`7‘Rv1“mÜæ˜öo `s#ÙËÝ ÕÆá:BcQ—h—×\›ºJý ¼q È*Ä+0Õïõz†…µáø&ì*ˆÊÃqfM4MBR+Ïvt<›KŽªµ÷#dêuš9sÿ§ ŸÑ«þ@æ¨#Ä“ÈWWþLSšíØsdÛ%¤�M ïºu£«N®)iy&t±»êí³Èqê•öDØ%0æÞir Š³�Àœ †ú!ç%=P5y#º‰Dr«+@%Hpž—�7“‚ë)7~mE䂘�g¦�{›«´%§ÂþhsÞõ/™Ñ»t¹ŒdŒ¾Ñy×Ëœ’3ïjÛçtƒìÝIô°Ô…ÊÝ µµ½`÷óÐ8ræü9ñ@o‘à¯ÛÝÔÁâ'T¢LÅ{Wö9›Oa›ù|§o-™+.]ž˜OCt%µ™ÓüæIˆ&Ñ=­›˜8Ä6<”æb³WQV†¡àÝ9ïâ'³õÍ ¨Š2&y옘TBî‹ð‹¼ Ôb˜ÜïðM—Îö½ø†çBmú+0’-¾€~¦�¿¾áñ.õ�¨¢àּ綋Q? €Pò9u}9Dv‘Tb‰—UH3òÜ“_¦y»Ÿ±@£+Ц\Þ'×Ù’bi“�ëE_äj­¯ªÕ*º_Ó�™ôÊÙ@× {fkzG0ÅÎ0rµ,ÿǃ«=î3ôøÔÐÍÀY®"Fòw¾*%u?Š·ìž‡™ŠÒ»@3D¹ê®í줟!ž§æ«‰à#l‰Á¯N�,m\®è‘Œ‰.çºb!íLɹMý‡¨…¸#v½8É�/kYÉÿ|Ò*>xHiSÈL ØœG2²±Õ)g¤M 5„]Ý9ÅÌþF�¸º©—ÈâÞ Ï—ÿÇן=üÕ„º·»qÊ¡˜wárÌL¦ÏË–M[äUÈ6�Šš„sÆjÑURù‡-`§–“.‹Åo¸ >òHfàO.º¯iZ”–¸ùpöXf*SƒœVo|`„%"Mþ�5ðPþq› Íõ i •×2&X‰Pz¶Ámr~ª÷àhŒ]œ_%[;άNœqHn’yèml9:ã4öL‘\Ìÿ$L£ŠŠ $Æ�VAN.ÆŒ�ŸŸU©#WK'‚<×ËÈ Ò±9¡Wã:ï/$. þìº$Ô~î˼ÏÍgó"¼3C= v–?ïZþá·�]¾Õ ”¨¸ÃÃ}í@×½P@ä²}Ò[T©×—¿v×�R�ea4€r«0®ò-ºHš?ïvÅVÚz6r¿ó©®ŽøŽÆýÆfÊW›L‚äE) ôš×>h’a¦ÔĨ69x?Ž-‡ 8$ÖP©QräárŽ·²í{Jxû® ˶{GüjŽÑ’ %^.Ô ,$%�^ŠKÁ�ðÖÿzÒ¤šcôV?.Z#�h"œ4SøO騥$˜“àx1·‹w––›tÉÅ’ìá³öMÓÅËËå §‡T†/T °d“¶žÇôNËØ*o¡1›K„÷ÿFØþ ‹ß-î4ùIA´‚z\¿ÜqÁé_�JÉy9`4dãØ[Qy6—’u™È[_n µÛL{qØ.»z]êC£šV™ý_D¹¨+)â}ÇsÇx-ö¯>cLs¬Y±¨rü!XD^9wea°nn}²*ér-–13Jã>/�{Ç`mW3”ÍB_˜¶;H_¨–½B©|?y©c"´!®Çš 'íq–ÕC®¯Ž½NÌw61�¤8vHææȬdpäÀÙ¼!�«v°cì÷ŠzEQÍ ß¦ÁG>ÉŽWV.VÊáaA€ÚpÅHµJ÷¤ë¦¹ÅiábáŒ-Ÿ=øSs}¨\¨ˆÁî~m åò˜±G©;¼ƒŸ­Dýž?Ôbþÿ`—X x)åçj5K°'eXkبΞ[lX�tw³d¨23JŸ‹»5I‚JS»®ÜÛ2&Þ§y% I)»ë_5°§æ©-ÁK�|áeâÙòzùÖ¯ ç €DÅg¹zZ<“h¹ŒÎ…�¨äîß5zÎÝ Í’2µ–þm`á©ô|Â`åŸS©X?"~}üQÎûéü4èœÿì÷’Ψ(x“˜¬Š¦" MŠÎì‘f:½ô—ŽBí¼ ÚÒ�ë6WQŠub_%ѬÉJvp¿^pém„” †Ú×xc)}‘²@"bäœ,mVf¡-Rcî[ÙÓ0iÂÀ|×€Ðñv“Ç: ‘9àøbÅ->¿ËŒú>‘C©JÑŽ·‡÷F0´a{XJµ9(8Óÿ5o¤1,�yØ:‡ÈLN‚ÜÆEs÷E!9û ,œ«4 JÚK(ÍP�2‚#S&¸ÉÜjñ¡ÉƈÇ�f6”ÀÁÙþá¸_Á˜±º[°µ"18u曺 %`ŒCæÐës•€·Ì`ÂÜO‘¼µŸEr„„9Á¹+7½£å!P¥OƒUÙ6¹s’ŒÂlÛ5Q0 Ê:ÿd¬­s4¡?£Æ£Ø%ì¡ÌÙá{|)Ì $�!$Gìxõ�lÕ‰•bf8ïA—4vŸm9`é‹ÿG߿͈ñ«mÏîTyÄ[°¬:íY_|»¸ÂÍ�,·Ù …c® èÍp¿ê„æC­ïiòùÿ„¾¤óÏ0k¥%‰IÐÜ\ÀQÈŠ”á”&[´6•ÂŒ@•¼mÙ(nÕv—Éú ¤50ZÆÒ°G!xt‘5k½_’]—G™i,“cWôö7oh«·1C8J3”ÎÕZ.¬GÓ�o€X!äX&lšD¹®¤='Ù‘B!Í8 ðbeÓŸ¡rˆ?”·–˜<ÒdY“Q¸ ç¶qŽý¶)âÿØÌdõZÒ­“\ „xgñIG¨ ñzqAk4»åD(­œl£”U¸Ö¼i#™ ³¿óÁ^MU{)§µGcíÒ`R¦ï§u›ÊЧV`}8o;“©á;�¥�a½è˜ œ~oÌ(PZª{x߸ÄxÙ†8Áÿ3tÐf‰T‹Ç ‘¼âÉøcÔ7ÏŒirÁ7÷¥Ô*5r—”4…ÀÑ<Û´-I¡>röÜeëªhéÁàhøs†®¤‘½uÓ;ihšËAæP.Nª3õŸÃþ¥§Ö¯'[G:Âwc”véý"¼ÙÈ-dóã%öP…³w»ýVZß»^6Ù ð>yÐbp®yeiþYe>™ Pâ½0’&��e^çÈYöµOp%v%Ùœ(HM€ `ŸŽåøµž¾ú˜3R„ü­•§4³Ê� üӹ¸ˆ¿6�m{‘IN@º»ŒÂÃ�YH€¹ƒÊ·ò‘›U‚äÇV Â�ÀkÎyè<Ó ´…Ý´&uŸà«ú nÞRØH¾L5ä¡sÕj ƒÈ”V^Îò�GI×Ä —L…7Íœüe,Q©E£ÞxŒ4iaŸk=*ñÚ{T‹29»IµûØfnÎ3€†´_Äv�M½½Z&™2qï#+8±¥GÓLûí!ŽH`¢Nçä²õ{³føyÍB—Lje[tï¼Cð58Ý{g›·„ìȶÍ9¾³ýÏBÞêЩFÏŒ;ð}¨àÍõl”›ÊLÝÉ2"X-—¸Í'KÖ°#Ö€ãÏI°õR(!Xs¾ÃkÞß@Ùö¡C ©èB[OêŠÊÀO¦• òr³· ¡™W>|vÂqÙËw:ƒO:�Cj¿aöò™ˆµQ?fÜ©/\W­Äòº(¾B®O½÷R|õ©~Fs o)—§›Ðò½7ŽãB€¹T–¢9—ØÊ©ÿÑw²)á�|Bð ô†¶©bƒ„J@éWˆw[$ÍW*Xû¡‰ :D‚ÙF�•ü¾úÕWnÐbOȾ;Ùùº�ÎÞ(Hâ{5‹’ºgµU¿F³qØ‚Jû®g°Gݯ­&߬D£.Æ}guO—îÑbO6Ñ�æÎPqÂ^ ±¦eyê÷–¸UþñÇù?�\ÆP ÌuâõŠÀRH÷CúoÒÃmà‹Îà‘¡[AÛIˆAgûÜ>ʼn¿¯cf(dÝ7ÍY¡Ñ�˜]�ÄýíbZ /wâS×§u®$Œ Â¥kPûû\ Î®*~Ö�á„{ÄõW2Ä^1çÖnÄ zxC£�S2>¡›‹Ù�4e[ܧ)¨0lUÐ5T…«»–ù�Š®LN—ËGø\°�⦡˜à©-ª]â?9 ;NCKWŠœôÔ8Ûˆ ñTæ«ç‰"I(Æå[}vÍS·àr1G÷(qÓlÙ… OdJ‡¤Îì×´ƒ­JçU">ò)Ø1w'ìÈèþݤ¶ÿ1ˆš|Z. •eÇôk–GT£×'•æV/Îë9¶’ÔÓàä/šy®¥öt�󛑳<òoóé;,ÐC†SÁ)Ðß“˜ÀÀˆD�iñ i9Ó¢21¥Û`¯Å©ëôœ'/ÌÙ`x0ÞÍ&¢ÅXçЧVçäß?¢Oðå^¾@RÙNU/.Ñy*k\¤2Í=¶Ã’’0x�h*þw�3T9röèוfÆ¯è ƒ…¡ên.á€>¥�ÅðøÀÚº°^_ËVƒwæ}‡»[U±¼9`+`–ÊÁcMú_Ö†œðÑpX3œVƒ‡í±Û}§wÈ­ÃfXX�µ¬\´tb[ˆVÈ•–MdA=òÁwÚŽæxa“#[d¬¢‘šKj•@ègà ¤’ÇVã:}Žª9ƒªÕxä1þ¬ évL눱•:M Qn„m ^gÙn ñ‡¸nݱQãÆ8’5w£èº}Iª‰IìR¹g‰T$él“†ÆJ¶²_Qç'¼HÈúüöÖ8uYdßòi®ÚRWêŒäY­¡Ò £Ø–(ö,0…VU‰ßCM°–£ÍXMM¸±€Í yø�[†³$�?˜›L>⎦d†x–›ÒR‹˜©'e öᲨlB}žkmöÍÏQu)hâ[¤',¿Š‡qéƒ|ò×Êÿ&.S½T¹k™Aé¬õX)ÌÑö1¼5›fÁv¤î›íD ãÛh-ŸaàÏkSýX^سËüb·¬">q7Ë÷ŒÏ褌Âýy ‡KÃr»)mZgƒÇ:·ŸÉ%P\VT­mI»õ»„ÓsîÆ}ÝòÂçó›3[œ>áícO^Á¶8¢~¹êµy˜Àû#a—w¹#ô²ËÈÕ®té¸JYǾÀ!L‘Ey¯àš¥Ã4‰ñRôß›&�JȨ.Š5—ú‹Ca¢é„\×ð]Õ§–ëÙBn¦Ù¿ÐçU‹/¤C”0n‡Öô#¶¶¤~&ý4rf&žCk=¾ìʺq–çU´¶I‘ÏÊ=êу—Ì™ ;�Dù÷3ƒ|ÂwJ+"p];˜ÔÚ”êtºço5ªgɲS§X¶;«3÷QñSh‚Ñ šº{îetI¹›=]võŒD²K7ì9{ç#ÊRkTQ “+bûǾ®üÉåÈG"´â쨨Wì¡9í@ Õ£õËYz;@_¨n�1»·£B^R+ä¤ã¨-˜÷˜0ó† .-Àƒ8èç 5qŠý�iĽVÁã?vV«\¶¸ïL’^$—qa[Ø5 ½ñlªœ‚©à¦É—ŒÙØ`·­` ÓíaÑ\RëAäÜ Üý¤dX£ÖÖ [•$É– €ÆuNÐßl>à¤ãLöЖ(J"Õ\®É[3Ö…o÷$ÜÅ«‰ÒëÒ#A¨„|Ëq%$Yëõð0ë³ÑWöFò@µp°¯Ú.wþV]I¦¹Ø)YÃ3Û¨‘Eg kÞÌѾ£~—{ûš3© ¹¾MÚš_ÿ_rå!ï’ßr4'k”&óv¬j§�QÚs{½%–æÉ¬÷m‡Þ}=ïHÖºê«Ó‰aÿþÒóþªŽE§¬ssãæB¨T ©ü¦í¼Ë9�¸ä/Å~š÷‡(L†nUsÍ �nß�ÅÓ×àR̵€“C°Û“!7œ�±´úk=ÞPQ 4ò&NE¡­Û’ȉ[Z‘νJžâ2–¸±Uþ5»Ê«ìÊ­PV)º í;ö¥´`˜1�Ç&5_çÎ9N=»ÛåÞÂr*Ïžš2%†÷9Ò2­ëŽ‹õ«Œ�}£[_Ñ~lsžCô×fE�u½ž;Ø•7|ö<ý0¨Â�ÒWm±yMÞçìÕ_Ä;¿FÝHΈҗœ[©õz"a½$Ê/¤ö£ê{`^ú£4¦-ô“×Ðå´[Ø3IÅC' 7éûr|À'&ÙÙˆ@Ï_÷:tìMÐ:”½ŽØ®Rïþºlê2iõ¥”±¯Q(dè�V•?†'0î—özî©9Ãgp$Çù ²ÿhµ¶de±ö›næµjÌ‹ì�å4‚D1n²0ÚN&¬©Ë’H9•ÒÕ±¢çÚö³º$á¤|ËßšN£h”€PÞ±ÙÉΕ=Và4ASgRýßеœp¥n‡TI‘CD´ø°[cB9&`¢ÂûÞ‡é}‘¯ã�"¾÷·›u%Pàfü;êòO_vRüƒ·Hñ=�¦µUtñGSÀŽÃ%ýÃ�^¢ý>B^5mßËÓ{ÝE4+xn+y›$žB) ¶¥ Upü–køŽ_ eñ/Þ:†ôIî`ÙìG<�4Mp3Ç— ‘Xc­ËYNÓù}‹êúÅ«„Ç{£#°˜eVƒb0¡WŒ¬–1 ù‹AF&®Ê0ÐÀW´cc;–ùšÎYÞ˜�{ÿ_Xî{šýÞA2v1`l'bÂÎ ËC½Ð�V®Êm» 4Ü�sb¤Ð38'i=¥0s&�0³c^vèà `0†Ô¾0�Yn?êQDÛ›5êñ–&¯‚hq݆pÔÏJ <>Šy¿µZmÒPõ/æL#—á_u…‰¶Ž´MÃQéÐ¥u2`Š2Obî(9ì®»ö£Gö{¹Î¬›73¢Sh‡û­1C€D.Yªõ-{Ô�" LLÕ„3t²º í1¬\»#ã²,§q¿~‹X~ \$<2„\}Ök4dü[qK8Cúߤ�•‹.ÚFsû¯¤xи&²§™2þlZk\†Ôï.Ë‹IVøA�Z,Ú_ÈÖ˜?N÷*& 3c}] )ï4€‡îËjkJèéѳÔ[—h­#JW.ZÎ6.n|…*+£ÔG9‹žÃ ÝÄ„³Š,ºs²ìz–T…× è•x›zp‰Â|Hj*µí16š³áŽ Eë0Tý™ÄÁø}v ½Aшzþé2Y®�rËl<ÔW·M·ÇÂ`¼�¬¦´ƒú{Ù³W3›GYFÁœñ¨¿¼°SóC@ÙÌûD•!¸ÛL@K)»{RCÃL„Qu¦u‡\£Øó¹|ìý:Þ×ÝðŠyý@’+tHR”žF¶ðsÃÎÒÑ;µÒWÛ’E‹¢Aµ«£T(0ˆ«!½¾sXQN�n$MCiUt¿;º%,_LÜzv�3ª� ¾6×àj´_Ípî—ÿøÀL¥e4EüØ1­6 IÑŠåWŒl´ñdT­7í$Ô7“�Ú©vë#}¹hëJÌœí?oß,øð¢Ú[r¼s]9 " �—L!äE÷‹#Qwz½mA ’<%i{«sAS@sæÂ¤¿­„ÃR1ã܃×yü¨™>ÓKñ ¡©¢¥Eê ŒhçfÚ¼‚‘AU‹*GÉ G~`Ül¤bbúìàW�FhQ/´Õ~в3”'Vøî i{ቾ]™d1ÃêLp‘ PýRkS"ØØÀcÀp3}r£»4±¯n-\cªµ­¡²¡´î ³ºxÂ(Rœ©Q.ù­ü«ï,‚ ch[ y- WèÑÈ7¶Ñ€Ó0}Á®È1LÚévl¡Í­:!lw6lìã•ê¬3…\çíòëx†"<µbîªõ—ZeD.™°‚éÖÅý�òêp,ˆÔù#Œ¢Ú¬^ñdñ{ñ}ñ�ñ…ñ‡ñ_ñoñsññwñƒñtÌ'!MR ‡˜v•\-üS•×ÞåèîõüQ$¿'…)‹)Ž)”)š)�)£)©)°)Í)Ð)Ö)Ü)ã)** ****!*'*-*ˆ*å*�,¨,¿,.-­-£1¾1m2Ÿ,2-9û>?X?š@°A.B¯B9C¿C.DÝD˜EªF”G�HƒIßIúI9JTJ“J®JëJKµKÑK7LHLcL MÙOàOãOêOðO÷O5PgPšP¡PÕPØPßPåPìP+Q\QŽQ•Q˜QŸQ¥Q«Q±Q¸QþQRR RRR R^R�RÂRõ-RøYZ ZÞZ/[l [~a~bãbêg‹håhWi“m³tZ yó}Yƒ „ˆ „ª ‰ºŽÍ� ’³”7–›¡ ¢¡¤º¥¦ ®7 ±� ³Ù¸ºá ¼*¿ÞÄcÆVÉöÍ$ÏmЇ Õ×³Û Ý™ÞšàâQâ�â7ävåÙåúæüè:ê–êŸë%ísðüñXò“ôõõQö§÷}ùàùkû¸üý?þ]ÿ}Ç#¿kŒ˜¬í. ´  Û  ¥RÖiÉÞ"`$ã%? &3)÷*-,‰-å-E/�0ù0Å2õ3Q4|5È 7€9Ü9i<¦>?@‹ARC® CtEGjG`I5K7M°N O]PâQ> RÛSMU©UQW¯X YoZa[½[Œ\Ä] ^W`{b×b<eˆgägVjLk�l‹nêpNqFs¢&s˜zÛ{7|^~‡~û~íQ€Ž€ �‚_‚“‚ƒþƒU„�„…†t†’†H‡ ˆ%ˆ*ˆ/ˆ5ˆnˆ�ˆÌˆþˆ0‰|‘™‘â‘’3’¡’¡“-”W”•R¢Y¢y¢»¢¢Å¢Ì¢Ò¢Ù¢à¢ã¢é¢ð¢ˆ£ ¤#¤)¤/¤5¤;¤A¤G¤N¤n¤”¤´¤Ô¤õ¤¥¥¥%¥,¥/¥5¥<¥£¥¦¥¬¥³¥Ó¥Ö¥Ü¥â¥è¥î¥õ¥3¦e¦—¦ʦѦñ¦ô¦ú¦§/§“§ç§ê§ð§÷§%¨?¨€¨Ü¨ø¨©)©,©2©9©<©B©H©N©T©Z©a©¯©ä©ªFª#«ì«]¬J­¦­®/®|®€®†®Œ®’®˜®ž®¤®ª®°®¶®¼®®È®ήÔ®Ú®à®æ®ì®ò®ø®þ®¯ ¯¯¿¯K°æ°‚±Q²ù²´³Ð³è³´´1´1µ¶æ¶ú¶«·`ºÕº$»¡»Ô»†¼*½S½‡¾»¿«À( ÁPëÄ|ÆÈfÈÉeÉ„ÉÑÉùÉ ÊQÊžÊ ËtËâËPÌšÌFÍõÍœÎ9ÏÎÏaЈÐÒ+Ó¤Ó™ÔéÔŽÕÞÕRÖèÖEØtÙÚ†Ú`Ü Ýl݃ݚÝÚÝ,ÞjÞÀÞŸß àiàÌà,áˆáéá5â‘â$ã�ãÍã)äŒäÌä(å„åáå�æôæAç�ç ènèÚèFé¢éúéåêÎë6ìAí�í îeîUïÜï9ðDñOò«òóIó®óñó…ôáôBõÐõ<öÉö%÷¦÷øÖø„ùúxúÌú ûbû£ûØüeýÁýþ�þùþTÿ, _J´înô P Ñ * † õt؉åÞiÅ½è³ ª"L$¨$t&Ë(}+Ù + /û0x3þ4z6Ö6ð7ª9:Y;ð<L=Ã?„AàATF�NIO¥ OS€S;U UßW^Yô[ä]@^`bƒb™dõ dÒgRi†jþk m¢n0pÆrPt±u;w·xJ zÖ|1~ €4�R�©�2‚‘‚JƒºƒÖƒ?„]„ö„…j…‰…Ò…ï…0†N†”†²†õ†ý†‡ ‡‡‡"‡‹‡“‡›‡Ê‡ ˆ*ˆŒˆïˆr‰ë‰ŠHŠdФŠÅŠJ‹Î‹tŒ�·�Ô�Ž0ŽpŽšŽþŽb�ª�ò�O�¿�B‘ã‘’@’\’œ’í’Œ”®•È•ù•³–Ü–Ø—˜*˜�˜Á˜&™E™à ™fœßž;¡£5£Ï£o¤þ¤"¦š§¹¨©©Eª«Œ«a­{­®²®D¯°#±÷±•² ´©´wµîµÏÄÎÅéÅÆÆrÆ8ȰÈÇÈRÉiɇÉ<ÊOÊÊ�ÊòÊËVËtËºËØËÌ<Ì‚Ì ÌæÌÍJÍjÍ'ÎGÎÏ$ÏáÏóÐÑ,ÑjÑ&ÒDÒ‹Ò©ÒðÒÓUÓtÓ»ÓÚÓ!Ô@Ô… Ô ×'×;×l׋×Þ×ý×lØ€Ø Ø ÙuÚ�Ú£ÚÔÚóÚFÛeÛÔÛèÛÜsÜ·ÝÑÝåÝÞ5ÞˆÞ§Þß*ßJßµßãàýàáBáaá´áÓáBâVâvâáâŠã§ã<äÐäïä å¿åTÇ'MP‡?•ÈŠ,´,¯1y2ëIEJŸJ÷JÁKCLTLóY+Zëãb ?Avlj~j€k‚n„€†n‘ü‘~“F”É»D½ÁTÈUÉëÉÊ:Ê{ЈÓn=ÿ-�Ÿ�‚™ƒK„…w…Þ…<† †ˆø‰TбŠÄ� Ž}Žð‘L’ä’V•â•Í–ò—ª˜3™ý¢D¤ª…«C­„®‚´éµÆÅÆÈ)ÈxÉKÊ{ÊŽÊþÊbËÆË*ÌŽÌòÌWÍ4ÎÏáÐUÑ2Ò—ÒüÒbÓÈÓ.ÔÄÖ7×h×|×î×|Ø�Ø,ÚŸÚÐÚäÚVÛäÛøÛnÝáÝÞ&Þ˜Þ&ß:ßšà á>áRáÄáRâfâ€ãàä°å++        +                           ' +))''''S U$Å'y*Ö*k,“,-u-01Ö1×8G>ÿ>/@oAôAtBÿB„CD¤D`EsF[GHI›IJlJÆJKéK{LMÔYüY¸ZöZG[©`@bTgMh@m`tôx¨}É‚çƒp‰€Ž@�E’(”ô•‡šK¢G¤V¥¶­—°6³)¸¸¹ò»о…Ä&Æ”È�ÍÀÎÒÏáÔÅÖ>ÛŠÜâÝÙßNá)âjâ8屿%èüéVë“ì(ð¾ñ@ô·õ^÷íø!ûzüõýÿ1‰wÑBY`Å A ¼g _ñRgg!Í#¥%ê(e*Ò+K-õ._0x2·315{7B9<h>Å?C*EÐFIÎJÐLrNP¤Q’SUWqXZ#[A\†]`=bèdJgjkùm¬ps8z�{~ ~U§€c�¬‚aƒ„¶„r…/†«†N‡?‘€‘�‘’K’÷“o”•궯·ĺ»�»p¼½\¾�¿�À&Ã�ÄRÆÜÇÈ&ÉjɉÉjÊ·Ê"Ë©ËÌôÌ ÍOÎöΓÏ(ÐæÑíÒ_ÔÕ÷ÕkÖ‰×çØÓÛq݈ݳÝóÝEÞƒÞß"àåà¡áâªâ¦ã¥ä¹åeæÂæ ç¶ç‡è»éTê?ë�ì¶í¿înï“ðžñÄòóbóÇó^ôúô§õöqöZ÷ø�ù‘úåú%û{û‚ü>ývþ˜#¶ „ ì cãK”+Å—uY"$%&~'Þ*X.¯0æ2¿4<6£7l9;²<r?FA FéMéNÐRýT}WYc[¦]¶__a5d‡gi8j¿kËlLnñowrtfuüvmx zj|ò}Û~Ä �9�è�ª‚¿ƒïƒv„,…¢…†g†ˆvˆÙˆ[‰Á‰ Š|Š4‹¸‹^ŒúŒ¡�ì�HŽèŽL�”�Ü�9�©�,‘Í‘’t’d”$•|•°•–¦—˜B˜Ù˜ ™0œ©ž¡Y¢ £:£ȤÕ¥þ¦l¨^©^ª§¬f­€­¯į�°£±@²¹³´¶§ÅÒÅíÅ6ÆíÇ_È�ȲÈÉ0ÉTɞɴÊ*ËŽËòËV̺ÌÍ„ÍaÎ>Ï¨ÐøÐÑ�Ñ^ÒÃÒ(ÓŽÓôÓZÔ¡ÖéÖ×¢×1Ø·Ø ÚQÚwÚ Û™ÛÜKݓݹÝLÞÛÞaßwà¿àåàxáâ�â`ã�ã%äºäåÖåUóùüO‘ÓÚáåëñøM$»'‚)ˆ)‹)‘)—)š) )¦)¬)É)Í)Ó)Ù)ß)ÿ)* *****#*)*„*á*‹,¤,»,)-¨-‘1ž1¹1i2š29Ý>ê>÷> ?S?ˆ@•@«A)BªB4CºC)DØD”E¥F�GŠHIÚIõI4JOJŽJ©JçJK±KÌK3LDL^LúLMÕOÜOàOçOíOóO2PdP–P�PÑPÕPÜPâPèP(QYQŠQ‘Q•QœQ¢Q¨Q®Q´QúQþQR RRRR[R�R¿RñRôY Z›ZÙZ*[g[yazbÝbäg‡háhRiŽm®tUyî}Tƒ„ƒ„¥‰µŽÈ�z’®”2–››¢š¤´¥Ÿ®1±‰³Ò¸ºÚ¼$¿ØÄ]ÆPÉðÍÏgÐ�Õ׬ÛÝ’Þ”à âKâ‹â1äqåÓåôæöè5ê�ê™ëímð÷ñRò�ôðõKö¡÷xùÚùeû³üý9þWÿw¹ e†’¦ç) ® z Õ  ûLÐbÂ×ý!Z$Þ%9&-)ñ*',„-ß-?/˜0ó0¿2ð3K4v5Â7{9Ö9c<¡>ü>þ?…AMC¨CnE GdGZI/K1M«NOWPÝQ8RÕSHU£UKWªXYiZ\[·[†\¿]^Q`vbÑb6eƒgÞgPjGk‰l…nåpHqAsœs’zÖ{1|Y~�~õ~èL€�€ˆ€�ý�Z‚�‚ƒøƒP„�„—„…†o†Œ†D‡ˆ"ˆ'ˆ,ˆ1ˆlˆ›ˆʈúˆ‰r‘x‘”‘Þ‘’’.’œ’Š“�“�“(”R” •N¢U¢u¢·¢¾¢¢É¢Ï¢Õ¢Ü¢à¢æ¢ì¢„£¤ ¤&¤,¤2¤8¤>¤D¤J¤j¤‘¤±¤Ѥñ¤¥¥¥"¥(¥,¥2¥8¥Ÿ¥£¥©¥¯¥Ï¥Ó¥Ù¥ߥå¥ë¥ñ¥0¦b¦”¦Ʀͦí¦ñ¦÷¦ý¦+§�§ã§ç§í§ó§!¨;¨|¨بõ¨ ©%©)©/©5©9©?©E©K©Q©W©]©«©à©ªBª«è«Y¬F­¢­ý­+®x®|®ƒ®‰®�®•®›®¡®§®­®³®¹®¿®Å®Ë®Ñ®×®Ý®ã®é®ï®õ®û®¯¯ ¯»¯H°ã°~±N²ö²°³ͳå³ý³´-´.µýµâ¶ö¶§·\ºѺ »�»л‚¼&½N½‚¾¶¿¦À"ÁJÃ¥ÄvÆÈ`ÈÉYÉ`É~ÉËÉìÉóÉÊÊDÊKʘÊËnËÜËKÌ”Ì@ÍïÍ–Î3ÏÈÏ\ЂÐÒ&ÓžÓ”ÔãÔ‰ÕØÕLÖâÖ?ØoÙÚ€Ú[ÜÝgÝ~Ý”ÝÔÝ&ÞdÞºÞŠßšßàdàÆà'á‚áãá0â‹âã‡ãÈã$ä†äÇä#å~åÛ凿îæ<ç—çègèÕèAéœéÝéóéÞêÉë0ì<í—íî_îOï×ï2ð>ñJò¥òÿòBó¨óëó€ôÛô<õÊõ6öÄö÷¡÷ü÷ÄøÑø~ùúúrúÆúû\ûœûÒü`ý¼ýþ˜þôþOÿ&YE®èhï J Ë % € ïoÒ„ßØd¿ ¸â® ¤"G$¢$n&µ(Å(x+Ó+/õ0r3ø4u6Ð6ê7¥9:S;ë<F=½?AÚAMF|N‰NDOŸOSzS6UšUÙWXYî[ß]:^`ëaûab}b”dïdÌgLi€jøkmœn*pÀrJt«u5w±xDzÇ|Ð|+~€/�M�£�,‚‹‚Dƒ¬ƒµƒу:„W„ñ„…d…ƒ…Ì…ê…*†H†ކ¬†ñ†ù†ý†‡ ‡‡‡‡‡�‡—‡Ƈˆ&ˆˆˆëˆm‰ç‰ŠDŠ`Š ŠÁŠF‹Ê‹pŒ �³�Ð�Ž,ŽlŽ–ŽúŽ^�¦�î�K�»�>‘ß‘ü‘<’X’˜’è’ˆ”b•¤•ª•Õî•ô•¯–Ñ–×–Ó—˜ ˜%˜‹˜¶˜¼˜"™@™½™`œÙž5¡££££3£É£T¤[¤b¤i¤ø¤¦”§³¨£©*ª1ª8ª?ª «†«G­N­U­\­y­ ®—®ž®¥®¬®>¯ °±ñ±�²´Ž´•´œ´£´qµêµËÄÊÅåÅÿÅÆlÆ4ÈsÈ«ÈÃÈÉMÉfÉ„É5ÊLÊ|ÊšÊìÊ ËPËnË´ËÒËÌ6Ì|ÌšÌàÌþÌDÍcÍ!Î@ÎþÎÏÛÏåÐîÐ Ñ)ÑaÑgÑ Ò>Ò…Ò£ÒêÒÓOÓnÓµÓÔÓÔ:Ô�ÔÏÖ ×!×8×i׈×Û×ú×iØ}Ø�ØÙ7ÚqÚ‰Ú ÚÑÚðÚCÛbÛÑÛåÛÜoÜyݳÝËÝâÝÞ2Þ…Þ¤Þß'ßG߱ߥàßà÷àá?á^á±áÐá?âSâsâÝâ†ã£ã8äÍäìä�å¼åæææ$æ+æ2æ8æ?æFæMæTæ[æbæiæpæwæ~æ…æŒæ“æšæ¡æ¨æ¯æ¶æ½æÄæËæÒæÙæàæçæîæõæüæç çççç&ç-ç4ç;çBçIçQçXç`çgçoçwç~ç†çŽç•ç�ç¤ç¬ç³ç»çÂçÊçÒçÙçáçéçðçøçÿçèèèè&è-è5è<èDèKèSè[èbèjèrèyè�èˆè�è˜èŸè§è¯è¶è¾èÆèÎèÕèÝèåèíèôèüèé ééé é&é,é3é:éAéHéOéVé]édékéréyé€é‡éŽé•éœé£éªé±é¸é¿éÆéÍéÔéÛéâéééðéøéêêêêê&ê.ê5ê=êEêLêTê\êdêkêsê{êƒêŠê‘ê˜êŸê§ê®êµê¼êÃêÊêÑêØêßêæêíêôêûêë ëëëë&ë.ë5ë<ëCëJëQëXë_ëfëmëtë{ë‚ë‰ë�ë—ëžë¥ë¬ë³ëºëÁëÉëÐë×ëÞëæëíëõëýëì ììì#ì*ì2ì9ìAìIìPìWì_ìfìnìvì}ì„ìŒì”ì›ì¢ì©ì°ì·ì½ìÆìÏìÕìÞìçìíìöìÿìíííí$í+í2í9íAíHíOíVí]ídíkíríyí€íˆí�í—íží¥í¬í³íºíÁíÈíÏíÖíÝíåíìíôíûíî îîî î(î.î6î<îDîLîRîZîbîjîpîvî|î‚îŠî�î–îœî¢î¨î®î´îºîÀîÆîÌîÒîØîÞîäîêîðîöîüîïïïïï"ï(ï.ï4ï:ï@ïFïLïRïXï^ïfïlïrïxï~ï†ïŒï’ï˜ïžï¤ïªï²ï¸ï¾ïÄïÊïÐïÖïÜïâïèïîïôïúïðð ðððð&ð.ð4ð:ð@ðFðLðRðXð^ðdðjðpðvð|ð‚ðˆðŽð”ðšð ð¦ð¬ð²ð¸ð¿ðÆðÌðÒðØðÞðäðêðððöðþðññññ$ñ*ñ0ñ6ñ>ñFñNñVñöLŽÐ×ÞèîõüQ$Á'…)Ž)”)�)£)©)Æ)Ð)Ö)Ü)ü)* ****!*'*u*Ò*g,�,ú,]-1“1¾1¿8/>ß>ì>û>@Š@WAÜA\BçBlCðCŒDHE[FCGúGïHƒIúITJ®JKÑKcLüL MÙOãOêOðOaP“PšPÎPØPßPåPVQ‡QŽQ˜QŸQ¥Q«Q±Q÷QRR RRRŠR¼RîRÐYøY ZÞZ/[‘`(b¬?ûBE·FþHµJ·LYNöO‹QySöTíVXXZ [(\m]õ_$bÏd1gçiõjàm“pïrz„{ö}‡~<†€Ž€J�“‚Hƒþƒ•„�„Y…†’†J‡ ˆ%ˆ*ˆ/ˆ™ˆȈ÷ˆþˆ;‘v‘|‘™‘’’3’Ž“’“ß“W”•R¢r¢´¢»¢Å¢Ì¢Ò¢Ù¢ã¢é¢�£¤#¤)¤/¤5¤;¤A¤G¤g¤®¤Τ¥¥%¥/¥5¥œ¥¦¥¬¥Ì¥Ö¥Ü¥â¥è¥î¥_¦‘¦æʦê¦ô¦ú¦(§Œ§à§ê§ð§¨8¨y¨Õ¨ ©"©,©2©<©B©H©N©T©Z©¨©Ý©ª?ª«å«V¬C­Ÿ­ú­(®u®€®†®Œ®’®˜®ž®¤®ª®°®¶®¼®®È®ήÔ®Ú®à®æ®ì®ò®ø®þ®¯ ¯E°à°{±ó²­³â³ú³´*´úµß¶æ¶¤·«·Àº»Œ»l¼½D¾x¿iÀ ÃhÄ9ÆÃÇfÈ!É^ÉeÉ„ÉñÉÊIÊQÊžÊ Ë�ËþË‘ÌÛ̇Í6ÎÝÎzÏÐÍÑÔÒFÔéÔÞÕRÖp×ÎØºÛl݃ݚÝÚÝ,ÞjÞçÞ àÌàˆáéá‘â�ãŒä åLæ©æôæ�çnè¢é;ê&ëwì�í¦îUïzð…ñ«òóIó®óEôáôŽõìõXöA÷øÆø„ùúxúÌú ûbûiü%ý]þüç � k Ó JÊ2{¬f~\@"õ# &e'Å*?.–0Í2¦4#6Š7S9ø:™<Y?-AðEÐM~NÐN·RäTdWYJ[�]�_Fadngúhj¦k²l3nØo^røsMuãvTxòyQ|É|Ù}Â~«�4�Ï�‘‚®ƒºƒÖƒ]„…‰…ï…N†²†õ†‡ ‡‡‡ƒ‡‹‡“‡‡ˆrˆÕˆW‰©‰ŠdŠ0‹´‹ZŒöŒ��Ô�0ŽäŽH���Ø�5�¥�(‘É‘’\’L” •f•¨•®•ò•ù•Õ–Ž— ˜˜*˜º˜Á˜ˆ™œ�ží T¢£ £££5£Y¤`¤g¤¯¤¼¥å¦S¨E©/ª6ª=ªEª¢¬L­S­Z­a­{­œ®£®ª®õ®«¯t°б'² ³“´š´¡´©´¶£ÅÎÅéÅÆèÇ[ÈwȰÈüÈÉRɇÉ�ÊËtËØË<Ì ÌÍjÍGÎ$Ï£ÐçÐóÐÑcÑjÑDÒ©ÒÓtÓÚÓ@Ô�ÖÓÖ ×‹×Ø ØÚ;ÚuÚóÚ‚ÛÜGÝ}Ý·Ý5ÞÄÞJßsà©àãàaáðávâ\ãŒã!ä¶äïä¿åææ!æ(æ/æ5æ<æCæJæQæXæ_æfæmætæ{æ‚æ‰æ�æ—æžæ¥æ¬æ³æºæÁæÈæÏæÖæÝæäæëæòæùæççççç#ç*ç1ç8ç?çFçNçUç]çdçlçtç{çƒç‹ç’çšç¡ç©ç°ç¸ç¿çÇçÏçÖçÞçæçíçõçüçè èèè#è*è2è9èAèHèPèXè_ègèoèvè~è…è�è•èœè¤è¬è³è»èÃèËèÒèÚèâèêèñèùèé éééé#é)é0é7é>éEéLéSéZéaéhéoévé}é„é‹é’é™é é§é®éµé¼éÃéÊéÑéØéßéæéíéõéýéê êêê#ê+ê2ê:êBêIêQêYêaêhêpêxê€ê‡êŽê•êœê¤ê«ê²ê¹êÀêÇêÎêÕêÜêãêêêñêøêÿêë ëëë#ë+ë2ë9ë@ëGëNëUë\ëcëjëqëxëë†ë�ë”ë›ë¢ë©ë°ë·ë¾ëÆëÍëÔëÛëãëêëòëúëì ììì ì'ì/ì6ì>ìFìMìTì\ìcìkìsìzì�ì‰ì‘ì˜ìŸì¦ì­ì´ìºìÃìÌìÒìÛìäìêìóìüìí ííí!í(í/í6í>íEíLíSíZíaíhíoíví}í…íŒí”í›í¢í©í°í·í¾íÅíÌíÓíÚíâíéíñíøíîîîîî%î+î3î9îAîIîOîWî_îgîmîsîyîî‡î�î“î™îŸî¥î«î±î·î½îÃîÉîÏîÕîÛîáîçîíîóîùîÿîï ïïïï%ï+ï1ï7ï=ïCïIïOïUï[ïcïiïoïuï{ïƒï‰ï�ï•ï›ï¡ï§ï¯ïµï»ïÁïÇïÍïÓïÙïßïåïëïñï÷ïýïð ðððð#ð+ð1ð7ð=ðCðIðOðUð[ðaðgðmðsðyðð…ð‹ð‘ð—ð�ð£ð©ð¯ðµð¼ðÃðÉðÏðÕðÛðáðçðíðóðûðñ ñññ!ñ'ñ-ñ3ñ;ñCñKñSñ[ñ€*Ý*r,�,°,!-™-m1›1«1R2u2ê8v>ç>ô>?L?P@’@•AB™B#C©CDÇDƒE–F€G{HpIËIçI#JAJ}J›J×JóJšK½KL?LPL¿LMÛYZZÊZ[Y[YaYbÀbÃgfhÍh'ivm–t-yÏ}Dƒ „b„•‰¥Ž¸�j’ž”–÷š‚¢¤�¥�® ±n³·¸ò¹¿¼¿½ÄLÆ,ÉÕÍúÎLÐ]ÕýÖ‡ÛÕÜmÞfàæá;â{âçã_å¸åÙæäè#ê|ê~ë íRðåñ>òhôÞõ7ö†÷fù¿ùJû¡üúüþEÿ[° ŸøQk€Š× ^ h Á äŽç1ª<œ±Ä!*$Ì%%&)ß* ,r-Ë-/†0ß0¡2Þ374Z5¤7i9Â9@<�>è>ì?;A;C”CRE÷FPG?I K M™NòN8PËQ$RºS6U�U/W˜XñXGZJ[£[j\­]^6`db½beqgÊg(j5krlsnÓp,q/sˆsqzÄ{|7~f~Ù~Ì/€f€á€Û�D‚g‚å‚܃>„j„ð„î…W†|†)‡T‘Œ‘©‘÷‘'’…’X“š“ ”A”î”ò¶ͺ»™»Ä»z¼½?½p¾¤¿–ÀÁ8ÓÄdÆîÇOÈþÈ;ÉvɕɿÉÊ5Ê€ÊëÊVËÎË=Ì*ÍÌÍyÎϹÏMÐwÐúÑÓ„Ó„ÔÛÔyÕÐÕ1Ö±Ö-Ø]Ù¶Ù_ÚIÜ¢ÜKÝyÝ�ÝÄÝÞVÞ˜Þhß•ßáßIà«à ánáÉáâwâãfã·ãäkä¶äåjåÊåvæÔæ!çƒçàçKè±èéˆéÌéëéºê¥ëìíƒíàíKî+ï©ïðñ&ò‘òÙò1ózóÚóoôÇô"õ¹õö‰ö ÷r÷è÷“øÎøùÅùúZú·ú÷úKû�û¹üOý§ýþ‡þßþ;ÿjÿ>*ŒÀLÝ 6 ­  l Ý]¶r˽R«í¦ÿ¿œõ�"5$Ž$N&£(À(\+¿+ø.Ù0`3æ4c6¼6Ì7“9ì99;Ù<2=š?mAÆA1F7N†NO‹OúR]S$U}U·WFYÜ[Í]&^ß_Ùaöa bXbndÛd°g:iajækòltnp r8t�u#w–x2z |~í�E�š�‚z‚)ƒ‹ƒɃ"„G„ß„þ„R…r…µ…Ú…†8†z†œ†݆ˆ€ˆãˆe‰Ô‰ó‰3ŠPŠ�ЬŠ>‹‹hŒ�«�¿�ÿ�Ž[ŽxŽòŽV�ž�æ�C�³�6‘בë‘+’H’‡’ß’v”9•’•»•Ý•�–È–»—í—˜t˜¥˜ ™.™±™GœÀž¡Š¢+£E£?¤ܤï¥f§†¨w©ªàª€«جq­‹­®"¯Þ¯ï°ık²ã³}´Dµäµ®ÅÝÅøÅ Æ\ÆôÇiÈ¡È¼È ÉCÉ^ÉtÉÊGÊwÊŠÊÜÊúÊ<Ë^Ë ËÂËÌ&ÌhÌŠÌÌÌîÌ0ÍRÍÎ/ÎáΠϾϾÐÑ"ÑEÑÒ.ÒqÒ“ÒÖÒøÒ;Ó]Ó¡ÓÃÓÔ)ÔmÔ¨ÖýÖ×2×c×w×Ë×é×YØwØ‹ØðØÚeÚ‚ÚšÚËÚßÚ3ÛQÛÁÛßÛóÛXÜRݧÝÄÝÜÝ Þ!ÞuÞ“Þß!ß5ßšß~àÓàðàá9áMá¡á¿á/âMâaâÆâgã›ã0äÅäÛä†å«åÿåz*×*l,•,ª,-�-T1•1¥1F2o2â8T>á>î>?#?;@Œ@‰A B�BC�CD»DwEŠFtGoHdI¿IáIJ;JuJ•JÏJíJŽK·KL9LJL¦LþLÕYþYZÂZ[Q[QaQb’b»g^hŸhùhjmŠt!yÃ}8ƒ„4„‰‰™Ž¬�^’’”–ëšv¢r¤ƒ¥t®±a³ª¸å¹²¼ó¾°Ä?ÆÉÈÍíÎ?ÐPÕðÖzÛÈÜ`ÞYàÙá5âuâáãQåŠåËæÖèêNêpëÿìDð×ñòZôÐõ öx÷Xù‘ù<û“üÌüþ7ÿM¢Û‘ê#]r|Ñ X Z “ Ö€¹#œ.Ž£¶!$¾%÷%)Ñ*ý+d-�-/x0±0“2Ð3 4L5–7[9”92<�>º>Þ?5A-CfCDEéF"G1IûJýL‹NÄN*P½QöQ¬S(UaU!WŠXÃX9Z<[u[\\Ÿ]Ø](`Vb�becgœgj'kllenÅpþp!sZscz¶{ï{)~`~Ë~¾€S€Ó€Í�‚a‚ׂ΃0„W„â„à…I†v†‡A‘ƒ‘ ‘ä‘’x’6“”“”/”á”ì¶Ǻ»“»¾»q¼½9½g¾›¿�À Á/ÊÄ[ÆåÇIÈðÈ(ÉmÉŒÉÓÉûÉ"ÊwÊÝÊHËÃË2ÌÍÁÍnÎÏ®ÏBÐqÐñÑÓ~ÓvÔ­ÔkÕ¢Õ#Ö£ÖØOÙˆÙ1Ú;ÜtÜÝsÝŠÝ¾Ý ÞPÞ’Þbß�ß³ß>à}àá@á¾áâIâã8ã±ãáã=ä°äàä<åÄåpæÎæçUçÕçè¦èîèZéÆéâé¯êšëâë íUíÕíî ïžïðïñòcòÓò+ótóÔóiô™ôõ³õöƒöÝöl÷º÷~øÈøêø°ù ú,ú¬úñú@û‡û®üIýyýÕý�þ±þ ÿdÿ0^²>Ï  Ÿ  > ÏOˆd�¯D}ߘѱŽÇs"'$`$@&•(º(N+‘+ê.Ë0R3Ø4U6Ž6¾7…9¾9+;Ë<=Œ?_A˜A#FN€N O]OìR/SUOU©W8YÎ[¿]ø]Ñ_Ëaðab*b`d­d¢g,iSjØkälfn p’r*t�uwˆx$z„| ~ô~ß�<�”�ø�t‚ƒwƒÀƒ„A„Ñ„ø„D…l…¬…Ô…†2†q†–†Ô†ˆwˆÚˆ\‰ˉí‰*ŠJІЦŠ5‹¹‹_ŒûŒ¢�¹�ö�ŽRŽrŽéŽM�•�Ý�:�ª�-‘Αå‘"’B’~’Ù’m”&•‰•²•Ê•ƒ–µ–²—Ú—˜g˜’˜þ˜(™¨™>œ·ž¡]¢"£<£¤Ó¤æ¥X§}¨n©ì©ÒªV««¬h­‚­R®¯Õ¯á°»±]²Õ³P´6µºµ¨ÅÔÅïÅÆNÆîÇ`ȘȳÈÉ:ÉUÉnÉÊAÊqÊ„ÊÌÊôÊ3ËX˗˼ËûË Ì_Ì„ÌÃÌèÌ'ÍLÍõÍ)ÎÒÎϯϪÐûÐÑ1ÑóÑ(ÒhÒ�ÒÍÒòÒ2ÓWÓ˜Ó½ÓþÓ#ÔdÔ¢ÖôÖ×,×]×q×¼×ã×JØqØ…ØáØ Ú\ÚyÚ”ÚÅÚÙÚ$ÛKÛ²ÛÙÛíÛIÜLݞݻÝÖÝÞÞfÞ�ÞôÞß/ß‹ßxàÊàçàá3áGá’á¹á âGâ[â·âaã’ã'ä¼äÕäwå¥åðå‚*ß*t,¡,²,%-�-‚1­1V2w2ð8É> ?P?y@™ABŸB)C¯CDÍD‰EšF„GHtIÏIéI'JCJ�J�JÛJõJžK¿K!LALRLäLÝY ZZÎZ[][]a]bÅbÇgjhÒh,izmšt1yÓ}Hƒ„g„™‰©Ž¼�n’¢”–ûš†¢ƒ¤”¥…®±r³»¸ö¹ü¿ÁÄPÆ0ÉÙÍþÎPÐaÕ׋ÛÙÜqÞjàêá?â}âéãdå½åÞæéè(ê�êƒëíWðêñCòmôãõ<ö‹÷kùÄùOû¦üÿü#þJÿ`µ¤ýVp…�Û ` m Æ é“ì6¯A¡¶É!/$Ñ%*&)ä*,w-Ð-"/‹0ä0¦2ã3<4_5©7n9Ç9E<”>í>ñ?=A@C™CWEüFUGDIKMžN÷N=PÐQ)R¿S;U”U4W�XöXLZO[¨[o\²] ^;`ibÂbevgÏg-j:ktlxnØp1q4s�svzÉ{"|<~h~Þ~Ñ4€h€æ€à�I‚i‚ê‚áƒC„l„õ„ó…\†~†.‡V‘‘‘®‘ù‘,’Š’{“”C”ó”ô¶Ϻ»›»Æ»¼#½A½w¾«¿�ÀÁ?ÚÄkÆõÇQÈÉ=É{ÉšÉèÉÊ7Ê…ÊðÊ[ËÐË?Ì,ÍÎÍ{ÎÏ»ÏOÐyÐÿÑÓ†Ó‰ÔàÔ~ÕÕÕ6Ö¶Ö2ØbÙ»ÙdÚNܧÜPÝ{Ý’ÝÆÝÞXÞšÞjß—ßæßKà°àásáËáâ|âãkã¹ãäpä¸äåoåÌåxæÖæ#çˆçâçPè³è!é�éÎéðé¼ê§ëìíˆíâíPî-ï«ï#ðñ(ò–òÛò5ó|óÜóqôÌô$õ»õö‹ö÷t÷í÷žøùÐù_ú»úùúOû�û½üQý¬ýþ‰þäþ@ÿlÿC/‘ÅQâ ; ²  q âb»wÐÂW°ò«Ä¡ú†":$“$S&¨(Â(a+Ä+ý.Þ0e3ë4h6Á6Ñ7˜9ñ9>;Þ<7=Ÿ?rAËA6FVNO�OÿRbS)U‚U¼WKYá[Ò]+^ä_Þaøab]bsdàdµg?ifjëk÷lynp¥r=t”u(w›x7z´|Î|~ò�J�œ�‚|‚.ƒ–ƒ³ƒ΃'„I„ä„…W…t…º…Ü…†:††ž†â†ˆ…ˆèˆj‰Û‰õ‰8ŠRДЮŠC‹Ç‹mŒ �°�Á�ŽŽ`ŽzŽ÷Ž[�£�ë�H�¸�;‘Ü‘í‘0’J’Œ’á’}”;•™•À•ß••–Ê–À—ï—"˜y˜§˜™0™¸™NœÇž#¡Ÿ¢0£J£A¤á¤ô¥k§‹¨|©ªåª‚«å¬v­�­�®'¯ã¯ô°ɱp²è³´Iµæµ°ÅâÅýÅÆaÆöÇnȨÈÁÈÉJÉcÉvÉ#ÊIÊyÊŒÊáÊüÊAË`Ë¥ËÄË Ì(ÌmÌŒÌÑÌðÌ5ÍTÍ Î1ÎæÎÏÃÏÉÐìÐ Ñ'ÑRÑeÑÒ0ÒvÒ•ÒÛÒúÒ@Ó_Ó¦ÓÅÓ Ô+ÔrÔªÖ××4×e×y×Ð×ë×^ØyØ�ØõØÚlÚ‡ÚœÚÍÚáÚ8ÛSÛÆÛáÛõÛ]ÜTÝ®ÝÉÝÞÝÞ#ÞzÞ•Þß#ß7ߟ߀àÚàõà á;áOá¦áÁá4âOâcâËâiã ã5äÊäÝä‹å­åæl,-v-11×1Ø8H>0@pAõAuBC…C D¥DaEtF\GHI�IJmJÇJKêK|LÕYºZøZI[ª`AbUgNhAmatõx©}Ê‚èƒq‰�ŽA�F’)”õ•ˆšL¢H¤W¥·­˜°7³*¸¹¹ó»‹¾†Ä'ƕȞÍÁÎÓÏâÔÆÖ?Û‹ÜãÝÚßOá+âlâ9岿&èýéWë”ì)ð¿ñAô¸õ_÷îø"û{üöýÿ2ŠxÒCZaÇ B ½h `òShh!Î#¦%ë(f*Ó+L-ö.`0y2¸325|7C9<i>Æ?C+EÑFIÏJÑLsNP¥Q“SUWrX Z$[B\‡]`>bédKgjkúm­p s9zž{~¡~V¨€d�­‚bƒ„·„s…0†¬†@‘L’ø“p”]¾‘¿ƒÀ'ÂÄSÆÝÇ€È'ÉlʹÊ$Ë«ËÌöÌ¢ÍQÎøÎ•Ï*ÐçÑîÒ`ÔÕúÕnÖŠ×èØÔÛµÝõÝGÞ…Þß$àçà£áâ¬â¨ã§ä»ågæÄæç¸ç‰è½éVêAë’ì¸íÁîpï•ð ñÆò!ódóÊó`ôüôªõötö]÷øŸù“úçú'û}û„ü@ýxþ™%· … í däL•,Æ€˜vZ"$&&'ß*Y.°0ç2À4=6¤7m9;³<s?GA FêMìNÑRþT~W Yd[§]·_`a6dˆgi9jÀkÌlMnòoxrtguývnx zk|ó}Ü~Å�é�«‚ðƒw„-…£… †h†̆‰!Š}Ší�IŽ’u’e”%•~•–§—C˜Ú˜¡™1œªž¡Z¢É¤Ö¥ÿ¦m¨_©_ª¨¬¯Å¯Ž°¤±A²º³Ã´¨Å7ÆîÇ�È1ɟɵÊ+Ë�ËóËWÌ»ÌÍ…ÍbÎ?ϩЂÑ_ÒÄÒ)Ó�ÓõÓ[Ô¢ÖëÖ£×2Ø¸Ø ÚSÚ ÛšÛ ÜLÝ•ÝMÞÜÞbßxàÁàyáâŽâaãå×å-v-21×1Ø8J>1@pAõAuBC…C D¥DaEtF\GHI�IJmJÇJKêK}LºZøZI[ª`AbUgNhAmatõx©}Ê‚èƒq‰�ŽA�F’)”õ•ˆšL¢H¤W¥·­˜°7³*¸¹¹ó»‹¾†Ä'ƕȞÍÁÎÓÏâÔÆÖ?Û‹ÜãÝÚßOá+âlâ9岿&èýéWë”ì)ð¿ñAô¸õ_÷îø"û{üöýÿ2ŠxÒCZaÇ B ½h `òShh!Î#¦%ë(f*Ó+L-ö.`0y2¸325|7C9<i>Æ?C+EÑFIÏJÑLsNP¥Q“SUWrX Z$[B\‡]`>bédKgjkúm­p s9zž{~¡~V©€e�­‚bƒ„¸„t…1†¬†M’ú“q”]¾‘¿ƒÀ'ÂÄSÆÝÇ€ÈmʺÊ%Ë«ËÌöÌ¢ÍQÎøÎ•Ï*ÐçÑîÒ`ÔÕúÕnÖŠ×èØÔÛµÝõÝGÞ…Þß$àçà£áâ¬â¨ã§ä»ågæÄæç¸ç‰è½éVêAë’ì¸íÁîpï•ð ñÆò!ódóÊó`ôüôªõötö]÷ø ù“úçú'û}û„ü@ýxþ™%· … í däL•,Æ€˜vZ"$&&'ß*Y.°0ç2À4=6¤7m9;³<s?GA FëMìNÑRþT~W Yd[§]·_`a6dˆgi9jÀkÌlMnòoxrtguývnx zl|ó}Ü~Åé�«‚ñƒw„-…£… †h†̆‰!Š}Ší�IŽ’u’e”X••–¨—D˜Û˜¡™1œªž¡̤Ù¥§p¨b©bª¯ȯ‘°§±D²½³Æ´7ÆÈ�È+È1ɟɵÊ+Ë�ËóËWÌ»ÌÍ…ÍbÎ?σÑ_ÒÄÒ)Ó�ÓõÓ[ÔÆÖëÖ£×2ظØ.ÚSÚ ÛšÛ ÜpÝ•ÝMÞÜÞbßœàÁàyáâŽâå×åþ,a-1Â1Ã83>?@[AàA`BëBpCôC�DLE_FGGþGóH‡IþIXJ²J KÕKgL¤ZâZ3[•`,b~b@g9h‹håh,mLtàx”}µ‚Óƒ „\‰lŽ,�1’”à•sš7¢3¤B¥¢­ƒ°"³¸¤¹Þ»v¾qÄÆ€È‰Í¬Î¾ÏÍÔ±Ö*ÛvÜÎÝÅß:áâVâ$åvå�æèèé:êBëìðªñüñ,ô£õõõJ÷Ùø}ù ûfü¸üáý ÿuÇc½.EL±ò-  ¨S¥õKÝ>SS!¹#‘%ã%Ö(Q*¾+7-‰-á.K0�0d2£3õ35g7.9€9<T>¦>±?CRCE¼FGIºJ¼L^N°NûO�QâQ~SûTMUòV]X¯X Z[a[-\r]Ä]ú_)b{bÔd6gˆgìiújåm˜pêpôrFs$z‰{Û{û}Œ~Aí“€O�‚˜‚Mƒ„¢„^…†—†7’ã“[”H¾|¿mÀÃmÄ>ÆÈÇkÈVÊ£ÊË•ËÌàÌŒÍ;ÎâÎÏÐÒÑÙÒKÔ™ÔîÔŽÕãÕWÖu×ÓØtÙÚ¿Û`Ü ÝŸÝßÝ1ÞoÞìÞŸßàiàÑà,á�áîá5â–â$ã’ãÍã)ä‘äÌä(å¥åQæ®æùæAç¢ç èsèÚèFé§é@ê+ëÎë|ìAí¢í î«îZïÜïðŠñOò°ò óNó³óJô…ôæô“õñõ]öÉöF÷¦÷øÖø‰ùú}úÑúûgûnü*ýeýÁýbþ�þùþìJ„¢ ô p Ø * OÏt7‰€i±k½ƒa³E"ú#L$&j'Ê*}+D.›0Ò2«4(6z6�7X9ª9ý:ž<ð<^?2A„AõEÕMÕNIO¼RSéT;UiW YO[’]ä]¢_Kab!d™dsgÿh$j«k·l8nÝocrýsRuèvYx÷yV|Þ}Ç~°Ô�–‚Ûƒb„…Ž…ô…S†·†­‰ ŠhŠØ�4Ž’`’P”h•ý•’—.˜ŘŒ™œ•žò ´¤Á¥ê¦X¨J©Jªú®°¯y°�±,²¥³®´"Æ{ÈÉŠÉ ÊËzËÞËBÌ¦Ì ÍpÍMÎ*ÏmÑJÒ¯ÒÓzÓàÓFÔÕÖŽ×Ø£Ø=ÚöÚ…Û ÜÝ8ÞÇÞMß«àdáóáyâòäÂå <}<Ú<4=²=¼=Ê=Ô=K>|>�>—>¡>£?ê?@ð@(ApA{A÷AB BBWBaBoBÁCÏC%D3D‰D—DíD+E6E–EçE6F‡F><Þ=->7>A>«>ð>7?|?‰?–?H@€@¸@°AyB¿BCOC]CkCyC„C�CšC¥C±CÝCèCóCþC DDADLDWDbDmDyD¥D°D»DÆDÑDÝDAE‹E�1é>ö>”@Mœ“ÐøúˆNzIÙInJ”L`N¶WhY[�[M\©]]^�_’`æa:cÝc}lnêtczJa€”Š\‹Ó‹ �˜‘“†” –œ—.™ÁšTœàžÒ ½¢c¤;¦é¦i§¨l¨[­‘¯%µ~·Z¹FºôºÈÀ¡ÁùÈ"Ë[Õ«ÙÝìÝÄáwãÝãÆç,èPí¶í’ïñÎòÇô�úãû}ýÿ¬]­ñ”²  V Lt‚¥…ØßtßÈß?ä¤äøäŽèóèGéî}îÑî—öûø¦M+Wô[] ^í^`4aˆb‹�†ŽˆM�Æ�/‘d’ö“N•ä–v˜ šœ›¼¨¿E²Ü։àòà[á©â¹å"æ‹æôæ]çêqêÚêCë¬ëì~ìçìbðWûªüDþÜÿ|Ëj¹±�𻼘ÈËÞÊ×IlJÿK¥M)WWY[�[ó[]^ì^`3a‡bÛc{l}nètazH_€‰�Z‹Ñ‹�K�c’õ“M•ã–u˜š››ÞžÐ »¢a¤9¦ç¦g§¨j¨Y­�¯#µo·X¹@ºòºî»ŸÁD°ÃÜÊYÕ›ÖÝêÝ ß¨âÛã=ä*èŒè´íîaðÌòÅô•öû©üCþÛÿ[«ï’°  T þ z’L£… †©Ùr߯߇à¢äöä·åñèEéê{îÏî�ïùø›úØImJL_N*WµWgY[Ž[L\¨]\^Œ_‘`åa9cÜc|l~nétbzI`€Š�s‚�ˆ“Š[‹Ò‹�L�°�.‘—‘“…” –›—-™ÀšSœßžÑ ¼¢b¤:¦è¦h§¨k¨Z­�¯$µ}·Y¹Eºóºï»§¿ÇÀ Á ñÃ)ÈÝÊZÕØÝëÝßñàZáÃávãÜã>ä!æŠæóæ\çÅç+è�èpêÙêBë«ëì}ìæìOíµíîñ©ÍòÆô–öâû|ýÿ«\¬ð“±  U ÿ {“Lʤ… †ªÙisßÇ߈รä÷ä¸åòèFéêV|îÐî‘ïúøœúî8B�B'C­CDËD‡E=âÙ u¾©¿›À=ØÄiÆóÇ3ó¹úMû»ü‚Ù‰{”—•¶™LœÅž!¡¦ÈHÉ×jÚ¬ÝØà®W©�¾�'‘�‘ý»¼¥È ËëÊêàSá¼áæƒæìæUç¾çiêÒê;ë¤ë ìvìßìHí²W­�Â�+‘”‘¼¼©ÈËïÊîàWáÀáæ‡æðæYçÂçmêÖê?ë¨ëìzìãìLí)-¡-Š1Z2ô8Õ>�@�A"B£B-C³C#DÑD�EžFˆGƒHxIÓI+J…JßJ¢K%LìLÒZ#[a[aabbÌgohmŸt6yØ}Mƒ„ž‰®ŽÁ�s’§”#–›‹¢ˆ¤™¥Š®±w³À¸û¹È¼ ¿ÆÄUÆ5ÉÞÍÏUÐfÕ×�ÛÞÜvÞoàïáDâ‚âiåãæîè-êˆëí\ðïñrôèõ�÷pùTû«ü(þOÿeº©uŠ”à! r î˜;´F¦»Î!4$Ö%)é*,|-'/�0«2è3d5®7s9J<™>ö?EC\EGIIKM£NBPÕQÄS@U9W¢XQZT[t\·]@`nbe{g2j?k}nÝp9s{zÎ{A~ã~Öñ€ë�ï‚æƒH„…þ…g†3‡•’!”ý”|¾°¿ ÀDßÄpÆúÇÉ�ÊûÊfËÕËBÌ1ÍÓÍ€Î$ÏÀÏTÐÒÓŽÔƒÕ;Ö»Ö7ØgÙSÜËÝÞ]ÞŸÞoßPàáÐáâã¾ã½äÑå}æÛæ(ççç¸èÓéÁê¬ëíçí2ï°ïñ-òàò:ó�óáóvô)õÀõ ö�öy÷§øÙù¾úþúTû”ûÂüVýŽþH4ÊVç ·  çg|Ç\÷°É¦‹"?$X&­(f+/ã0j3ð4m6Ö7�9C;ã<¤?wA;F_N!OS.UÁWPYæ[×]é_ãaxdºgDikjðkül~n"pªrBt™u-w x<z¿|#~ ÷ ‚3ƒ2„é„\…¿…$†„†ç†à‰=ЙРŽeŽ5’‘’‚” –Ë—„˜™½™SœÌž(¡ø¤ ¦‚§¢¨“©üª>¯ú¯ ±à±‡²ÿ³`µfÆ(ÊæÊF˪ËÌrÌÖÌ:ÍÎëÎÈÏÒ{ÒàÒEÓ«ÓÔwÔÕ×cØúØ=ÛËÛbÜÞ ß¤ß«á9âÐâ�å æQ¿'e,¨,£1m2ßI9J“JëJµK7LHL MÎYZßãV 3Ajl^~Q€_‚U„t†H‡9‘â‘4“-”•¼»7½ÁGÈÉÑÉùÉ ÊoÐ|Óbÿ�’�r‚uƒ?„ö„j…Ò…0†”† ˆë‰HФз�ŽpŽã‘@’×’•È•³–Ø—�˜&™R¢¤ê©T« ¬P®N´¸µ¡ÅÆæÇYÈúÈkÉ>ÊnÊ�ÊòÊV˺ËÌ‚ÌæÌJÍ'ÎÏ¡Ð.Ñ&Ò‹ÒðÒUÓ»Ó!Ô›Ö)×Z×n×à×nØ‚ØÚ‘ÚÂÚÖÚHÛÖÛêÛEÝÓÝÞÞŠÞß,ßqàÿà0áDá¶áDâXâZãÒä¢åƒ,ìYf‘MÉ&�K•õ¢;­¿ÅÈÙкÖ"ÚdÝ�àyãv,ßYY‘@É�>•è¢.­²ÅøÇÌЭÖÚW݃àlãÆ É Ð Ô Ø Ü à ä è ì ð ô ø ü  # ' + / 3 7 ; ? C G K O S W [ _ c g k o s w { ‹ � ³ Á Å Ò Ù ç î ò ù ý    ! 4 8 ? F W d q x … – ¤ ² À Ð å ú    # * . 5 9 @ D H O V c g k o s w {  ƒ ‡ ‹ � “ — › Ÿ £ § « ¯ ³ · » ¿ Ã Ç Ë Ï Ó × Û ß ã ç ë ï ü  (7>LQ\kpu€Ž¤±¾ÏÔåõû (3J`t“ž®Éâ(6AWkŠ¡¯Èß%<@QVk}Ž“¨¶Èâç.>CWot�¤¼ÑÖï (=Vhz~˜�»ÔÙö)D`s‡Ÿ¤À×ò -EJfty‹�«°ÇÚßöú7PUr‹¥¾Ãàøý05Pin‹¢§ÂÑÖéÿ6;WnrŒª¯ÌÑêý)>CGQYafjw�šž¦®¶¾ÂÊØÝâçìñöû&7<DLTYaiqv~ˆ�’—œ¡¦«°µº¿ÄÉÎÓØÝâçìñöû #(-27<AFKPUZ_dinsx}‚‡Œ‘–› ¥ª¯´¹¾ÃÈÍÒ×Üáæëðõúÿ "',16;@EJOTY^chmrw|�†‹�•šŸ¤©®³¸½ÂÇÌÑÖÛàåêïôùþ!08OW\jw|„“£¨ÀÖèü !)19>FKSX`hxŒ¢·½Ôê0JO\ty‹�¦«»ÍÜïôù  ( 9 P e | „ – ›   ¨ ­ µ º Î Ö Û ã è û !!!!"!*!2!:!B!G!O!T!\!a!f!n!s!{!ƒ!ˆ!�!•!�!¢!ª!²!·!¿!Ç!Ì!ß!ó! ""&"+"3"D"U"f"k""„"–"ž"£"µ"½"Â"Ô"è"û"# #(#-#2#:#?#D#I#X#h#m#€#”#£#¨#»#Î#Ó#Û#ë#ð#ü#$$!$&$:$N$S$k$‹$�$´$Í$Ò$ï$ý$%%%9%X%o%†%š%Ÿ%·%É%Î%ä%÷%ü%&&&+&B&R&Z&k&p&Œ&‘&©&®&Ã&Ø&æ&÷&ü&''','1'6'P'U'm'�'–'ª'¾'Þ'ú'(,(G(^(}(˜(´(¼(Á(Õ(æ(û( )) )()-)5):)B)J)R)W)d)i)z))‡)Œ)Ÿ)¤)¬)±)Ä)È)Ì)Ð)Ô)Ø)Ü)à)ä)è)ì)ð)ô)* **+*/*7*;*C*G*U*b*n**Š*Ž*–*š*¢*¦*´*Â*Í*Ø*å*í*ù*+ +++ +$+8+?+D+L+T+X+`+h+l+t+|+€+ˆ+�+˜+œ+¤+¬+°+¸+É+Þ+ò+ÿ+ ,,),1,C,G,O,W,_,g,x,Œ, ,²,¶,Ã,Ë,Ó,Û,ß,ï,÷,ÿ,----#-+-3-;-C-K-S-`-s-w--‡-�-—-›-«-º-Â-Ê-Î-Ö-ô-....".*...6.:.>.B.J.N.V.Z.b.f.n.r.z.~.†.Š.’.—.Ÿ.¤.¬.±.¹.Î.Ö.ç.ì.ú.ÿ./ ///!/&/./3/;/@/H/M/U/Z/b/o/t/|/€/„/ˆ/�/”/œ/ /¤/¬/³/¸/À/Ä/È/Ì/Ô/Ø/à/ä/è/ð/ÿ/0 0000 0$0,00040<0L0Q0Y0]0a0e0m0q0y0}0�0‰0œ0¤0´0Ã0Ç0Ï0Ó0Û0á0ç0í0ó0ù011 1111$1*10161<1B1H1N1T1Z1`1f1l1r1x11†1�1”1›1¢1©1°1·1¾1Å1Ì1Ó1Ú1á1è1ï1ö1ý12 222 2'2.252<2C2J2Q2X2_2f2m2t2{2‚2‰2�2—2ž2¥2¬2³2º2Á2È2Ï2Ö2Ý2ä2ë2ò2ù233333#3*31383?3F3M3T3[3b3i3p3w3~3…3Œ3“3š3¡3¨3¯3¶3½3Ä3Ë3Ò3Ù3à3ç3î3õ3ü34 4444&4-444;4B4I4P4W4^4e4l4s4z4�4ˆ4�4–4�4¤4«4²4¹4À4Ç4Î4Õ4Ü4ã4ê4ñ4ø4ÿ45 555"5)50575>5E5L5S5Z5a5h5o5v5}5„5‹5’5™5 5§5®5µ5¼5Ã5Ê5Ñ5Ø5ß5æ5í5ô5û56 6666%6,636:6A6H6O6V6]6d6k6r6y6€6‡6Ž6•6œ6£6ª6±6¸6¿6Æ6Í6Ô6Û6â6é6ð6÷6þ67 777!7(7/767=7D7K7R7Y7`7g7n7u7|7ƒ7Š7‘7˜7Ÿ7¦7­7´7»7Â7É7Ð7×7Þ7å7ì7ó7ú788888$8+82898@8G8N8U8\8c8j8q8x88†8�8”8›8¢8©8°8·8¾8Å8Ì8Ó8Ú8á8è8ï8ö8ý89 999 9'9.959<9C9J9Q9X9_9f9m9t9{9‚9‰9�9—9ž9¥9¬9³9º9Á9È9Ï9Ö9Ý9ä9ë9ò9ù9:::::#:*:1:8:?:F:M:T:[:b:i:p:w:~:…:Œ:“:š:¡:¨:¯:¶:½:Ä:Ë:Ò:Ù:à:ç:î:õ:ü:; ;;;;&;-;4;;;B;I;P;W;^;e;l;s;z;�;ˆ;�;–;�;¤;«;²;¹;À;Ç;Î;Õ;Ü;ã;ê;ñ;ø;ÿ;<…,îYi‘PÉ(�N•ø¢>­ÁÅÈ!ÈÜмÖ$ÚfÝ’à{ã·,¸,¹,°1‰2Š2‹2Œ2�2Ž2�2�2‘2’2“2”2•2–2—2˜2ìIFJ JøJÂKULoZpZqZrZsZtZuZvZwZxZyZzZ{Z|Z}Z~ZZ€Z�Z‚ZƒZ„Z…Z†Z‡ZˆZ‰ZŠZ‹ZŒZ�ZŽZ�Z�Z‘Z’Z“Z”Z•Z–Z—Z˜Z™Zäääääää ä!ä"ä#ä$ä%ä&ä'ä(ä)ä*ä+ä,ä-ä.ä/ä” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ mAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}A~AA€A�A‚AƒA‚lƒl„l…l†l‡ln~s~n€s€q‚v‚{‚t„y„~„‚†’’€“H”Í»λJ½K½L½ÁÁÁ ÁVÈ@ÊAÊBÊЀЖӗӘәӚӛӜÓèÿéÿêÿëÿìÿíÿîÿïÿðÿñÿòÿóÿôÿõÿöÿ÷ÿøÿùÿúÿûÿüÿýÿþÿÿÿ      !"#$¡��‚�ƒ¢ƒM„…y…à…>†¢†!ˆ"ˆ#ˆ$ˆú‰VŠ»Š¼Š½Š¾Š¿ŠÆ�"Ž�ŽŽŽ�Ž�ޑޒޓޔŽò‘N’æ’ä•Ï–ö—û—¬˜;™<™=™>™N¤O¤P¤Q¤R¤ ª�®‘®’®“®”®•®„´ÆzÉ�ÊËdËÈË,Ì�ÌôÌYÍ6ÎÏWÑ4Ò™ÒþÒdÓÊÓ0Ô~×ð×’ØæÚXÛúÛ(ÞšÞ<ßTáÆáhââä²å W$±· ¶ªªªª®±²´··¹¹¹»»»»½¾¿¿ÁÃÅÇÇÉÊÊÌÏÒÕØÚÜÜÞÞàâäæèêìîîîððòòòôôööøúúüüþþþ "$'),.1357:<?ACEGILNQUY]afkmpruwz|�„‡‰ŒŽ�’•—šž¢¤§©¬®±³¶¸»½ÀÂÅÇÊÌÎÐÒÔÖÙÜßâåçéëíïñýýþ  $')),..000135779:;>ADEGIKLMPSVZ[\`cffjnqrttvwz|}‚‡ˆ‰‹��‘”–˜˜››ž £¥§©«®°³µ¸º½¿ÂÄÇÉËÍÏÑÔÖÙÛÞàãçìîðóõ÷ùüþ   "%*..00246FHJPRXZ`bdffjknqtux{~�ƒ„‡Š���¬ ñóõ÷ùû ,68:<>@BDFLNPTVX\^`fh‰ñjóöóŸóé" T! ¼$ -$ ž% ™ßòéÄ(úabº,µ1™2ñIKJ¥JýJÈKCLZLšZ0ä­ „Aˆlx~x€€‚ƒ„‡† ’…“M”Ï»M½!Á[ÈëÉÊCÊ�Ð�Ó%¢�†‚§ƒR„ …~…å…C†§†%ˆÿ‰[ŠÀŠË�'Ž•Ž÷‘S’ç’é•Ж˜±˜?™S¤%ª…«–®‰´éµÆÉKÊ{Ê•ÊËiËÍË1Ì•ÌùÌ^Í;ÎÏ\Ñ9ÒžÒÓiÓÏÓ5Ô7×h׃×õ×|ؘ؟ÚÐÚëÚ]ÛäÛÜáÝÞ-ÞŸÞ&ßBß á>áYáËáRânâçä·å‹�‘Ÿ—£ˆ–¢’•¥¨œ§›˜¤©�†‚™”¡�Љ‡€ ¦ªƒ“žŽš�êéÚîÛßðíÜäÓÖáÐרàÙÞæÕãÒëçDE‹Œ€’†ý�õøúƒòùŽ‚ˆÿ‘÷ü…ô‰šœ™”—•�„€þõ�„ßÚÞû«œžŸéê��­�”€•¥£ùúƒ†ý›ì�𙧤¢¡‹ò÷ø¦ íïä‘óá×Üâæç‰¬’¶±Ã¼¿Å°´ËÀÈÄÇÌ·Âʹµº½®²“¨îÈßHJŸž¤£N¨§­¬°÷³0¹Æ½ÈšÊÁÌÃΰÒÐÔÖáãåçéëèQá»$Áç¸Ë£í(PÅÉ–Çà°]óæÒ#a¢Ïìß&•ÜÜ U"åé`ëæNÊ y”ñTó!äê€Ôâ ðý�Sù’ ãŠ%éŽ —ïbR¤â'Ë ¡·…I…IÉüŸ?%…ÿ‚]´œM˜vð_;yÉ­¶Ž ҒȯµøñÇ#Ÿ�ý¿]¤œM˜vð_;yÉ)à_h3 ptr::addr_ofÁÜßK�Ξ‹º¸M˜vð_;yÉc¾6BÀs»µø¹Ç#Ÿq¤œM˜vð_;yÉ'HÌMÇ4‘~Xµ?eöi_core_intrinsicsÁderive_eq_internalsÁ¢ŒÏ¾M˜vð_;yÉcãgy§IS”ü—»üžñM˜vð_;yÉÇñn«Û¦Ubµø�Ç#Ÿ.¤œM˜vð_;yÉK¤¢»¸c>oZ$¨Vu‚‚´Š•derive_clone_copy_internalsÁú Ì M˜vð_;yÉÓ˜ýBŸ¼µøÉÇ#Ÿ²¤œM˜vð_;yÉ'‘×îÀS s€üôdÍüª» M˜vð_;yÉ"385 äâ”üþ•"M˜vð_;yÉHm²+õOøe,•ü}”V¯Š•Ζð‰âM˜vð_;yÉêÂÁEºa~[ÆeÛŠ•œ•¢ŒÏ¾M˜vð_;yÉîú?d:Ò�'eX,®?vŠ•Ζð‰âM˜vð_;yÉöE>ðn`ze,å­Š•Ζð‰âM˜vð_;yÉ|}ý¸¸éé”ìøº&M˜vð_;yɱ®?«Æ nÀ¶YL‡J�ÀO_Š•¢Ë¾M˜vð_;yÉ¢çó»¨Å]ŒÚ„ó�±ù]Š•panic_internalsÁƒgeneric_assert_internalsÁ±œM˜vð_;yÉØÍ¡}1D.”ü¹• ïM˜vð_;yÉ'úæ�G!ÑBµøyÇ#Ÿ¤œM˜vð_;yÉM¤š¡€“:o$�ü슕Ζú Ì M˜vð_;yÉ¿ToQL¸º½e[,¿e?Š•Ζð‰âM˜vð_;yÉ…‰ÂÐ’©µøÁÇ#Ÿ¸¤œM˜vð_;yɈRÉþªañµø‰Ç#Ÿé¤œM˜vð_;yÉò2ƒ[òçÉ„ÜJ´œM˜vð_;yÉ3¾äµ¢)…,oX$¨?芕Ζú Ì M˜vð_;yÉÌiª…QC/ɼÃr¬´œM˜vð_;yÉš‹ N”¾ÉìÿûÚ´œM˜vð_;yÉøëøø,[SÖµøÑÇ#Ÿ×¤œM˜vð_;yÉ_�è€÷×~YƒJgŠ•œ•¢ŒÏ¾M˜vð_;yɨylɘ®¤µø™Ç#ŸC¤œM˜vð_;yɇ „Jx M”ì—¼uM˜vð_;yÉ™´òè{=JÉ„ž‹Ñ´œM˜vð_;yÉŽ¦#ÿɺ q,ˆü}©Ø Š•fmt_helpers_for_deriveÁ¢g¡gM˜vð_;yÉ« Ÿò…j³}µ øÇ#Ÿ¤œM˜vð_;yÉõ[I½|q¢To[$¹e튕Ζú Ì M˜vð_;yÉ©wÇýHQ»Æ”ü˜˜"ƒM˜vð_;yÉ«�´—•HòÚü«,'Š•÷šƒŒ›±œM˜vð_;yÉÖØ (eÝDÉü°e%´œM˜vð_;yɘ|&L9uèqO,§‹LŠ•½¡¢g¡gM˜vð_;yÉXÌ Ï�Àptr::addr_of_mutÁÔœi­Á¹‹»¸M˜vð_;yÉê¦8a ²ïû$crate::const_format_argsÁ`ùŽ"`õÄ–] fmt_internalsÁfmt_arguments_from_strÁŸœM˜vð_;yÉYOØçØ9àeY,üIÆŠ•Ζð‰âM˜vð_;yÉß·ä—µ1<”üö»AM˜vð_;yÉמ¢qˆ$‘°¦:üÓõÊüÅM�ÎÉM˜vð_;yÉÕzG»¶ðòµ øIÇ#Ÿž ¤œM˜vð_;yÉ×dqm¢/;L¶ZL¹V~Š•¢Ë¾M˜vð_;yÉø¿?xë#µø‘Ç#Ÿ ¤œM˜vð_;yÉò¨ðL™Xö�”ü壸 º¸M˜vð_;yÉ0.ëßiÄ�Ä”üÑ—"g M˜vð_;yÉ1¸Ã:——žµøÙÇ#Ÿ’ ¤œM˜vð_;yÉQ¹Qq:`‡e\,Ór‚Š•Ζð‰âM˜vð_;yÉTu¹Eµ”ñÏÉüŸV%, ´œM˜vð_;yÉÁçþ;+›4ªµø¡Ç#Ÿ) ¤œM˜vð_;yÉ™ŒÀqÀ÷qµJøÇÅ%hY ¤œM˜vð_;yÉÂû¥}ŒJÜ0 �÷…IúûèM˜vð_;yÉ0—=øžjÛµøéÇ#Ÿ¹ ¤œM˜vð_;yÉÖ7ÌX|¶�”oY$öI‹ Š•Ζú Ì M˜vð_;yÉŠÓÒà Kù—”ì×» M˜vð_;yÉ爪@R’”/$crate::panic::panic_2021Á_ɇT]¥Â`÷šÏ¢[ˆZM˜vð_;yÉ~xù¸+íåµø±Ç#Ÿ� ¤œM˜vð_;yÉöçø÷|͵ ø4Å%hÌ ¤œM˜vð_;yÉ H‰~˼¨~ZµV\ Š•œ•¢ŒÏ¾M˜vð_;yÉáa‰Ý˜þt€ü…�U  M˜vð_;yÉdë\ hjVS”üŒ— g M˜vð_;yÉ-åÁ*D¢ q\,ÌrÊ•½¡¢g¡gM˜vð_;yÉ;í¥Ô5ñF…I…IÜ M˜vð_;yÉ«XÁò™W¢„ÉüíI%´œM˜vð_;yÉZÌYKÈ6‰�”Ü¢OÝ º¸M˜vð_;yÉN;çq¦j³ôÍ…IúûèM˜vð_;yÉ B¨ÅÙà¶XL¹?& Š•¢Ë¾M˜vð_;yÉ“F6B·´ÁµFø¯Å%h«¤œM˜vð_;yÉà7ß )hà�”츻Ý M˜vð_;yÉäà-ѵHµ øaÇ#Ÿ¤œM˜vð_;yÉR·B¡ÜeZ,®V÷ Š•Ζð‰âM˜vð_;yÉcg¤ÖRäË•€üÖu¬ �  M˜vð_;yÉÇ8kØré Ê”üÅ–"ŸM˜vð_;yÉ•LNökdµø©Ç#ŸÊ¤œM˜vð_;yÉ_ª#ÖÍÈ__¶[LÊeª Š•¢Ë¾M˜vð_;yɽôgs¾ _ J F Ÿ[´Â¥üã"„²M˜vð_;yÉiŠOáÑ"BŸ[´åË0²M˜vð_;yÉMе Ä ;Ÿ[´…à\²M˜vð_;yÉøäù¿VhöŸ[œÀ2‡²M˜vð_;yÉЂ±4°KLsŸ[¬³N²²M˜vð_;yÉHÌÁS�[Ÿ[¼áuݲM˜vð_;yÉ"+…)‚ÂþCŸ[¼•ž ²M˜vð_;yɵRÞ…¬ž€Ÿ[œŠÅ6²M˜vð_;yÉb-ýo$Œ„ÍŸ[´¢Ùc²M˜vð_;yÉÝ;i±'yŸ[ì±à�²M˜vð_;yÉ�jùa³DjŸ[ü•*½²M˜vð_;yÉ)‹þ14Ûן[¬ÄJé²M˜vð_;yÉÁ¢B°yŸ[Ô©c²M˜vð_;yÉ­£–?˜çŸ[´ÁŠB²M˜vð_;yÉ_/gçí˜ÙŸ[´”Áo²M˜vð_;yÉA@óØñ=Ÿ[¬¬Ôœ²M˜vð_;yÉB©±]�¶]Ÿ[äéöɲM˜vð_;yÉ„Vö>l0®$crate::assertÁɇT] Š•÷šƒŒ›±œM˜vð_;yÉJŒ_‰WHŠZŸ[¬À"B²M˜vð_;yÉyôk�Xn1½Ÿ[´ù5n²M˜vð_;yÉK›ZHâ×´Ÿ[ÔÃ_š²M˜vð_;yÉA<§˜6Ÿ[œçxƲM˜vð_;yÉô`¤Q  debug_assertÁüË7?ÍœS]ƒ‘‹M˜vð_;yÉZçÔ+qäßE ðnU*Â…:ý X ^ÙB .d Z|F½& N R :P"¦ ëV7 >w 0ŽNË6 Ý¡Z` . ô´�"< �n HJ| 25ИL\  ç°di 2 ø¸w+ø@ ýÆ“CS  â‰>U$ r«_i&r Ô) I  � �„ðY ò&¥êÑLýx@)¤kbј’þžû Ô ²õJ^ ¹ F +òBvà é s;;W¥ ÄÑÂRÄ X!gò¤uÞð Ú ŽhÖ ¿ÿG ­� sˆ ¤  ‚0ð� w MÀÝÞ' 5 Ó¥"VR Ñh™ `• ´² ‰7 WÁ<íh0”[EÁˆ‚îµ®âÚ� ô Î2f³ Ù c++He”à  �XXtÆ âïàoë •cÍÕþûÁ¯‰ú à g ΰ% :”© âFB ¢PB´ Ä rå N x 6þÊG~} ö�Á=°ÐODHT A·Þw'ìÈèþÝMUV÷ðîf^HææȬ�šN£h”€¯ð a5àϽ†˜±º[°µ×ÿ3tÐf¯N—ËGø\°A4»åD(­œ¤u®$Œ Â¥7›4н•¸ý©N ø‘�Ε$É– €ÆuÏ<Š—xo6ÄxÙ†8Á®ÉÇû“¨Ž"££_Èþ)ðÊZ9`gÚM#ë„àÁçcq&½Ép`†i5�ŽÔyä8Ûˆ ñTE@_mŠ0’ð�›“Ó¹ð§í�3Ë$4à=´‘�4Mp3ÇÄ櫉à#l>騥$˜“à<§ËË#poJØ*òæ2& }¤·ŸÉ%P\Všgøü™(ž:ÙIÅC' 7RHö!,°¯Ní?oß,øð¢«£T(0ˆ«!r„xX30b³>„ß a8ÈÞ½T-Àƒ8èç ÄõËYz;@_¨À�u½ž;Ø•Hz‚×B=ð#Ê@ϼ @ض“zhÈjA—íºûí!ŽH`¢NÓüæIˆ&Ñ îæÚyÐbp®yÀe{X³d~»âðc—dˆÃs‰•bf8ïAƒ¿¯cf(dÝ3¯×�›h¸��@ÌyjøWç<±Ìm díúoÒÃmà‹0µÛL{qØ�ý@’+tHR”  ‹R uðEö/ÌÙ`x0ÞZ(PZª{x߸­)q7á°cº°Ž Eë0Týü²ál�ÎÓг�Àœ  ñ–&¯‚hqÝ×Íp¿ê„æCŠ»!s† ˜TBî‹ð‹¼&N.ÆŒ�ŸŸawþÆÝ�p3Û¥†ÇR|ŽØCLî¿ó©®ŽøŽÆqGá’xÖ }&¬©Ë’H9•¬Z£>s•€·Ì`ãLöЖ(Ñ�¸º©—ÈâI�⦡˜à©-B�vh™XW¢/l› š`?êM04 à›ð¢ûÝo)—§›Ðò½)Ðß“˜ÀÀˆV× è•x›zù&xºyŸàz ¾€~¦�¿¾*[ܧ)¨0lU>ÜeëªhéÁ¶~¾Àtª DyA‘Ey¯àš¥¤c)}‘²@"bÅ`ã(`µ¸@Q£›жè8c‰ƒYJä¶Xo±òr³· ¡™]I¦¹Ø)Ù­Äòº(¾àR̵€“CëŽBí¼ ÚÀM—Îö½ø†ç(}í@×½P@äk¥�a½è«fovâÀP�¶Wú¹“zÀ(È%íZc!ûº�üè0³ø�äÀ˜×\8Kb—$¾ècr‚º²l‰»X³(—î ³ºxÂ(3däœÅÇ`Î5yÍB—Lje[›&�JȨ.ЦŸì±kÊðcÖ¤j´_Ípî—ÓΘ€Î ”K„¾¤óÏ0k¥Œl¡Í­:97¶Ñ€Ó0}Á7„\×ð]Õ¨'eXkبάíD ãÛh-Ÿ“R"·ŸàÑ�ãÀÁÙþá¸_ÁÖ˜›L>⎦ˆR+ä¤ã¨-˜Â€X!äX&l™áÂSræ°a~挳rçø�WŠÚŽæxa“p³c^vèà `ÔÃ@Õ‘ê�Ç+ ZÜ[íH#¦×ÙSáíxþ o¸ >òHfàR~m åò˜±G§œ)c5ô˜AÕšNáoõ|ã�w9į÷(ªÛx6ÙØ�÷�ìÉmr~ª÷àhZƒ×yü¨™>$o;“©á;�ªS;p(Q.§×}£[_Ñ~lF7ÍY¡Ñ�4Gìxõ�lÕ‚Œz » ÉÑx,D�iñ i9ÓWÛÝs½ Iae¾¸Ž �M ?‘ åçüÖ¬ ³žò:€•bùYßh»[U±¼9g±€Í yø†—FYZ4‡´g‰Ãy­¯R˜o½KP± U áN<:®9r³ b׉ÔÍbœ)ÝziºDžÄqM.Q0æÞir  +xn+y›$¿'Vøî i{á,±HÜ{w)ÍÏQu)hâŒ|)Ì $�!$�IFÉ$‘ó�ਊ2&yì˜%3A» '¡ ÊJpÐ|(:sâµ"&Ù6~n}²*ér-”Rœ©Q.ù­ü4eVƒb0¡WŒÈZ&™2qï#ÿ=Và4AS±È´ªj5YO�ù¾65I¤@v?úç`7‘Rv÷îÑbO6Ñ�æ*,­/:YBaÛ‘½uÓ;ih¸·¬">q7Ë–¨–½B©|?˜5—ú‹Ca¢é§н3DA}�ä3›GYFÁœñ_骱G�WwAU‹*GÉ (¥n‡TI‘CD³%�^ŠKÁ�ð{HiSÈL ØEŽ´MÃQéÐÜcð|RqÂô„¡¶X{RQ$'¢²}Ò[T©×—lÂ`åŸS©X?º.bˆ�VIß;uz.ð>UÙ6¹{8OÐS-èóÐC†SÁUé¬õX)ÌÑ��–[I„ XŽPœ\ѱ;Îà‘¡[AÛI1ãæB¨T ©æ0`Ö]Q3û%½¾sXQN­„ÃR1ãÜ#¢j€‘c¦é鉾]™d1Ãê-D^9wea°n“ €DÅg¹zZµNGŠõh!˜‹:ˉcƒiIÊÌë릹Åiábá¤ÉÜjñ¡ÉÔDno“j1v–<—4vŸm9`é„¡sÕj ƒÈÓÓñáJjɹ©ÚIìR¹g‰T$|=eõ6rIŸ˜­}•r¹¹ê:õ»„ÓsîÆœËÈÕ®té¸J¢UÖ _u1¸ÝgvÃsè!e`—X x)åªúþóky鯻1ûÏ›ŒzyÔjïó: î{Á9<ÁK�|áeâ³lû}é"ÎbV¯gWz‘+N£èº}Iª‰{7ŽãB€¹T–v¬j§�QÚsà£Gö{¹ÎßvN›…¡Èª’WQV†¡àÝ#Š·ìž‡™ŠÒ;}¨\¨ˆÁî¦évL눱•v—8¾ ЩĒkÀP↹�|tà¦É—ŒÙØ`Ê{GüjŽÑ’ymr¹ß˜yÕ#h›Oa›ù|§Ž¿Izœ1 p 5qŠý�iĽÅÀß¡›2*!ðbeÓŸ¡rœJù莥 jÀ2aVöI§Éìi HM½¤¨¡!«£8$ÖP©Qrv:}Žª9ƒªtYÃ3Û¨‘EgÚ«Ob¬¹_2¨ÎñP­¡Ù�u£«N®)iyO.º¯iZ”SJ"Õ\®É[3ÒŒ« ˜§Ñå‹.õ¥”±¯Q(d U¿F³qØ‚&Æ>zî©9¦ã²,§q¿~åˆÄ䶉p�oh«·1C–º·P¸á˜E’.Õ]¹±' µ­¡²¡´2º·»qÊ¡L¦àÑ×»Q�³RF¯Æ-½9ð®…u¹ ¾‘ýnUþñÇù?�-à ¤’ÇVãs2¦ÓbÉ)Ì] b!íLɹMýAü¦í¼Ë9�¸ç%ì¡ÌÙá{€ kÞÌѾ£ÛÂ�ÀkÎyè<Ï;–ùšÎYÞ˜ÌL^Ñѱˆ³Œ¨Â�ÒWmJȾ;Ùùº#‘©]ûÝ™h(”›ÊLÝÉ2 {d·ß™%"/,àI�;œVÊáaA€¢–þm`á©ô|¹Ñw²)á�|W$ãñ‡B˜ÿ_rå!ï’Þ{½%–æÉ¬á/6¿ÃçÉŽT0†$ ºæiÀ•ïcQÙéY[ìC©¢¥Eê Œ&Ÿ3×�ëa§·…×ëé/F›tÉÅ’ìá³ö�Çš 'íq–Õš"0ôTêKa'*òðG§–ëÙB© €Pò9u}-j¿aöò™ˆµÚÌL¹ôÈÛæÜmØõ _S-çU">ò)Ø1L³<òoóé;,T²K7ì9{çº2%†÷9Ò2D�BÕçú‘¯÷Ø]a4ûÙ*Ê"&34ýI‹DêðPþq› W0BÂÕjn£˜âò€t�<6Ž:r‰f~—{ûš3©Ü5Q0 Ê:}Jxû® ˶x¨ìõi 2zA<×ËÈ Ò±c¢9—ØÊ©ÿÀSN?R¹F„ýGbñ|ØŒZÁ«ý“éŸ5º± �õ�cÒRwÍm©ïiÊI RŽ G¸’ÚQI[Å(W ½Àá)„ÓÚqÀ›9¡Wã:ïd2þlZkìÚ[r¼s|"üa#êg¿dc‚&ÊÞ|§¤xи&²§™ëâ×6)ò]Ø4ãú9¯)ÒÄý`£ág+*8MúK: )’Ò¥ð§jÂÛ/²ÄBmú+0’-)�è¾Ç0Bè = Pâ½0’&‰—UH3òÜ“/d¨23JŸ‹®¥Ô*5r—”³Ì$«66Š7½™ÔÓàä/šy®R–(ö,0ƒw�3T9röa¯'[G:Âwc»D1n²0ÚN«¬–1 ù‹ÉüØ1­6 IÑ^¢ý>B^5½Vçäß?¢Oð\}uÑ3@ºßùÒÈ^ +@’w±&å^¾@RÙN]šKj•@ègry#º‰Dr«+Ñ\RëAäÌ-Y…?J¡× {fkzG0Å6p‰Â|Hj*µú®È1LÚév8-(ļNÊ ÊÖËw:ƒO:�C2&X‰Pz¶ÁY‰X÷PÒäø"¶/gŸR¢&ÀkxC£�S2>¡<‡T†/T ƒÆjÑURù‡P4‡G©Q¢ÑäX¬JXÂ[Á@xy1»XښȽ0´a{XJµ9Íz{Ä[Zhî/áR\*ž0ìےȉ[Z‘ïÎPqÂ^ ±¦+NKR‡_Â[pŸâ)çè^úÖ­Y¥u2`Š2OÝ»…�Ôcªºnæ´ø°[cB9&´­¹€2eâF€’0x�h*þ`QñSh‚Ñ ·H¾³´jJ‹&>þºlê2iŸùn#ápÚIwÙ¿æ`šqR@¿éÝ7uêŒûW>|vÂqÙh½'wú£”¬ø5ÈxNè|U/.Ñy*k\^÷3ƒ|Âw²™ÄÁø}vý˜ú.Ú~:i£IVøA�Z,îsRh4vôêm� ¦úÝ+öªçÒ<µbîªõ—=‘9àøbÅ-ÊuŸà«ú nÑK+Ž“üšãòiƒÌQ€þò¹©Og�)þê*’ƒ Ö$wCÚÈaÕmúæ[œ©ß‹/¤C”0«‹.ÚFsû¯êõ©~Fs ¨¿¼°S󇨅¸#vBçj5K°«4?Ö {Ý Pߡ۳k|ÎYkãÛQÃý¥ÕEñ�³Ù!ØfnÎ3€†ý·­` ÓíaË�&$- Ï–!ƒú{Ù³WÙö¡C èQ#+ѱÛ.M´Ç‹‡î7Ãw6£ƒVXP�2‚#S&¸Ó�[†³$�?‡y% I)»ë±Ô²-_*kßm ½8É�/kYÉCKN¾G3C¾‰…¸±Uþ5»Ê«ñêuš9sÿ§$Qä:ké‹>ª]â?9 ;NC4…ÀÑ<Û´-´-h=³FB8x-ö¯>cLs‘S§X¶;«3÷¶E‹¢AµÿÃË[C›N¶Gó·iÖDk¥Ï~�qm¬EÛ)GËœ~¢ÓF;:i_±,%îE[qñS^›ÑEC_„í+8±¥GÓL»5I‚JS»®¯ýy ‡KÃr»˜¦ÏË–M[äN@ª‚7N›¡%V‹ÍóNSØ’�a{ O3Ãmö�n$MCiU’^ÏÕS“¡NøÉ«®SËï•jL×4èWëŠ)U©#WK'‚býÆfÊW›L‚rôV?.Z#�h}áâ,z[;#çJ+"p];˜Ô³M˜vð_;yɪÕ*º_Ó�™41ŽÄñacEާþe5bCÞs0Yƒ`Ê )mZgƒÇ:™Ù’bi“�2 ’<%i{«s!­l oÃD°pöGpSA¶é˜ œ~o̬ea4€r«0®no `s#ÙËùdü[qK8èžF¶ðsÃÎÒ ’Ψ(x“˜½çä²õ{³fø£y(æ|û1ðš"œ4SøO~ú˜3R„ÃÇÐ5T…«»? LLÕ„3t²ã£dmãŠû÷ªZ·t�s¾t|vD­�Ó+M¯¥öt�ó›‘SÜzv�3ª�ÏI2‰“ûJJ‚�K?'•óZÑõpü–køŽÁí16š³áû*S›­œc‚åΈҗœ[©M¨lB}žkmö‹«ï,‚ ch[5$hÖ)¡C˜›x$ƒ¯ƒ¡�@$«„Ç{£#°˜Ç¬›73¢Sh‡à3}r£»4±0ئË×ñªŽE§¬ssåX^سËüb•ì×´ƒ­JKwÔn™µûûåõàּ綋Q?,ÍB_˜¶;H_—=ó=¸£ò(• ”¨¸ÃÃj„9Á¹+7½cIN@º»Ë� üӹ¸É.S½T¹k™A�n�1»·£B^Á#™ ³¿óÁ^¦YǾÀ!L£Ãý�µË’ÓÛ"Ácí€;ÐAü¿ ‚mÈ*Ä+0ýnß�ÅÓ×ê“×Ðå´[Ø3QS"ØØÀcÀp/IƒaÊ«¦DdÃÛ̬* «w3AÏ{\{Ç„ÍâÐËc(ÏÊ=êу—°«‰ÒëÒ#A¨Ô‰aÿþÒóþä9èl§Ñ ?Yþc…ÒAÑãA6K|*vÖCI™\¾Ñy×ËœLSšíØsdÛRcî[ÙÓ0Ç«4 JÚK(ÍÒêÀü‘ÙÃÙ•zß»^6Ù ð¿yD'Ò×+É£?êQDÛ›5êÖ…VU‰ßCM°„ÜÎ2Žàc�OèéѳÔ[—hó /wâS×§6  ;ãSJ!Âls%åcè!j"18u曺 Ø}ÝòÂçó›3�E[i4囸b•Bœê#Vgëõð0ë³ÑÖɵn ë³C¤ö£ê{`ORÒ,ñó"ž­ïiòùÿ‹['�eóC-¯ãUtñGS»­ëŽ‹õ«Œ�E1_îwö+KlERLY÷¡.•¦ Æöû—½OÉô“ù»I¹»kPûû\ 8µy˜Àû#a Õxä1þ¬ uâÿØÌdõ Áv¤î›’º$á¤|Ëß®âÉøcÔ7±Cúߤ�•éªõ-{Ô�"â‹X~ \$<æ\ÆP Ìuâ.|-œv ŒH»*7|ö<ý0IR×0 üb½LIth°$Ùî‹»�¡ä ×úÚS� lÌ`ÂÜOaóº]dLfÈÂ`¼�¬¦´¦VsŒdº¼[ZÒ­“\ ¡+Ïvt<›K—w¹#ô²¡nΦ5Œ�¬a¯n-\cª1gó"¼3Cgy©c"´!®™”véý"¼Ùȼt¿;º%,_L]9 " õ\à+\ë­þx„*J,TÁš%Î0rµ,ÿÇ7(D:x.”4Ÿ ŸX”Ç0´ýñY "ýD1ÌÔd}0¤ï Aƒ«=î3ôø8°Û“!7œ�±ì=­›˜8Ä6!‚m58t’eן=üÕ„KI+SZ=ÖÁ‘Z=B\gÃ3Ebð¼BŒ#BT�xCü¡9�™ÁÍœüe,Q©ùJû®g°G'šº{îetI¹¸#ÊRkTQ »Û,ë’l¤ZÕßr4'k”&óß^1çÖnÄ z;Q·,Lo”?ãð>lKp$ñ DzDáçmlži˜wárÌLM;0XÏs´õÙʬY±¨rü!X’G~`Ül¤bb)!lw6lìã•:wõ§³wl^ƒL™Ý:w$øá4)º|„!9ööŒ~l]\ŠœX\dN@?û­1C€D.Yáw61�¤8vœšéJ¯ƒüe]e{g›·„ìȶµæçœ…4$ë´—á_u…‰¶Ûu¦u‡\£êp,ˆÔù#@CKWŠœôÔDÒ³iŠLv'+E£ÞxŒ4iaúƬ�Ô&Ò^´ jŽl7Z¡ž[lX�tw³­‰Á¯N�,m\? $Æ�VA`›‹Ù�4e=ÚRWêŒäY�ó([2–<”yI×Ä —L…7ø=×B ˜Ô<–s²ìz–T…ø)½iߟŒùã©;¼ƒŸ­D¨E!9û ,œÑña ‡£<òVy÷ŒÏ褌—Q|4¦ìC8Åf§Ü�Qê¼­•§4³ÊÈ ½ñlªœ‚©ÉHÖºê«Óã Ô†«lx¹}_^^º­dÑáW­= ®ô&z@Ò!�\¯´ÛÍëìÝIô°Ô…r鄱LÑíN‚_Aß°Ä8[-bðµ³�¥Z¬\´tb[m¢Ú�”³ì›Ò\º í1¬\»#äk÷c¹lYg'™Ñ»t¹ŒdŒ<“h¹ŒÎ…¶õz"a½$Ê/NÞRØH¾L5äÒ}"M¾„Ø^iÂÀ|×€Ès’ŒÂlÛ|´6•ÂŒ@•�»{RCÃL„QÝ9ÅÌþFH(¯$Êä-°$Ô~î˼ÏÍfe:J/Î,6§ñub_%ѬÉÂÖÿzÒ¤šc|7¨Q~Ѥ3 h’a¦ÔĨ6tZ.¬GÓ�o˜G÷(qÓlÙ…IQ—h—×\›ûS-¯qØ$^»ÐdpäÀÙ¼!�žÝr†aדsm ^gÙnx%j´ Ü$ Ü%‰IÐÜ\ÀQ�; ÞîÞÄËEVݯ­&߬D£(­¡Ò £Ø‚¼*ÎãÚ,R“w|Jùâò iÕdæá%Ò'ÉÃ&Tä);mEãÒÝ´Å+5Š§ÜˆæTL=yôIî`ÙìG<ïũëôœ'Y!HÕ쬵šRêÄMí¡Óê’õ:?ñÜànÍðòÔ› ‹Èqê•öDØ% 9:ã4öL‘\^Œ-Ÿ=øSs¥Ö…o÷$ÜÅÓC@ÙÌûD•÷m‡Þ}=ïâ÷·›u%P·ì‘f:½ô—¿HxÅ÷ÁæòÙ¬˜Uío(Þ}(E.ëTúá$�4Xì9í@ Õ£¿¤M 5„]GÿÕû îEøC{3¯ •ʃ9ÙF�•ü¾!0ÐÊ®�ÃPëC®¯Ž½NÌ›.Æ}guO—)3�« +f^ í;ö¥´`ó„µ|W�»¿Üè�V•?†¡<ÔW·M·ÇÙ‘B!Í8 ›òëx†"<<†ú!ç%=P5 ˜OCt%µ™˜1�Ç&5_çôÀŽÃ%ýÃ�¼=¥0s&�0Óòw¾*%u?:�?œ+e_Ib0†Ô¾0�YnÕ¢21¥Û`X�POq3®ýlÃqfM4MBRZ¸Ç4½2Äm[Ñ\6Ý#ÿñdT­7í$ÔàÂî9­ 7¦t :ýƉ$Ä[°¬:íY‡Ì™ ;�Dù±I¡>röµ.á€>¥�dWöFò@µp×ô¯ CÍN4_Ä;¿FÝHL ŒK†H¬Pz‹29»Iµûü,;°¡MÍ( 4ò&NE¡­îÎ9N=»Ûõ£å!P¥OƒdLp‘ PýRk.¸¢âôWͺ<£z¥X¥ZŒõ\*ç\W%·X–£ÍXMM¸…Æå[}vGŒ]œ_%[;[<^7À`M‚×ÀÕTP±_}„Mö— ‘Xc­ËYÅ:x!ºeõg8Ôþf}…ML3'ÿ÷f-ÑZ�ÝAŽi]íöˆëE_äj­¯3Íõ i •×XPj îl…²æéÄ6ëwjuQ1 ñ‡¸nݱy„|Ëq%$YÕÈÈ™q…”ÚL†nUsÍ �é㢬uÕÃl›=]võŒD¹ˆã”pw•÷?Œ ­¾xý.RmBjejz}R±g©Øáºz½ `omßËÓ{ÝE4¾Î6.n|…*+õy¬BÑ~-ô�C#Qwz½mA ÓKñ ¡%ˆ¿6�m{‘ÊcÕìA…;ÇÝÓ ´…Ý´&Ð4 „¢‡}ú·ºGqçˆõÐÅP£ÔG9‹žÃöÌ‹ì�å4‚ª9x?Ž-‡ uÍÕ3�¥ˆ‡ú±\V�%@x 9Dv‘Tb.KKD �5/š p�7§“½u á-«'¶‘öbl´_Äv�M½½þñ‚C ‘ýÉ‚-ìMÐ:”½ŽØU3]èV˜õ‡'ìÓ¯°œÅ§×‘¼µŸEr„b¬Š¦" MŠÎ¾[œ>áícOžÑyoD M1©r—Éú ¤50‘šD¹®¤='š^ú£4¦-ôPMU{)§µGc§ÿøÀL¥e4E7“�Ú©vëúmB­ed'ÿd¬­s4~œG2²±Õ)gF«ûYß²]ð?fÞ©¢³UYd9ïâ'³õÍ $ióÓÒµ½¹3ßÊÝ µµ½`÷Í9¾³ýÏžB) ¶¥ UÀùîtn¹õ6��@@Pô»µ×ß³ö1¼5›f‘;”ÁW½ÕU,ƒ\‹¾õŽ=‹ÿG߿͈ñ…$ß*MÀ¥�™9:WG8Âõ¥Ø_|»¸ÂÍ�,ˆ°‚éÖÅý�ò?LN‚ÜÆEs÷Ї¤°�Æõ}�–_\ÀÊEëB#Ú†l-ÊE™kMÓÅËËå §‚gRýßеœp² %^.Ô ,$z»+åÁÕýÌŸÜ Üý¤dÍØþ ‹ß-î4‡�¨äîß5z·q”6€àu¸·Õv’´â½':H;ð}¨àÍõl�—L!äE÷‹Hn’yèml]«v°cì÷ŠŸØó¹|ìý: tï¼Cð58Ýõ7úóÍ)3áñ.õ�¨¢+ŸŽåøµž¾ÆeX¥Çúe8UÍNªûåý†ô˜]�ÄýíbZ53õŸÃþ¥§Öº'0î—öˆVÈ•–Mdni¶ü‘<”æb³"Ø"‰6¸«mÏîTy†™ÝÖ_fýAGÂþhsÞõ/–¸ùpöXTàfü;êò¸줟!ž§=ª›44!n½ÎÛ'KÖ°#Ö€ã n‡Öô#¶¶¤¬-dóã%öP…½ÜÛ2&Þ§°ÔÁâ'T¢ppÞ»&f˜÷«qÃA&Ö643ÿ|Ò*>xDo-™+.]žx�ÎÃ)*aE¼mÙ(nÕv�öµOp%v%ÙÄ饻/NüBÆŽËY#ÁHp‚%†û�Žôw2Fä{_ eñ/Þ:†ÂAF&®Ê0ÊýÞA2v1΄“0¹6fp“î“‚ë)7~mÒPõ/æL#ÚLlÍ9þõ[V/Îë9¶’Q?N÷*& 3ð¤2Í=¶Ã’_´úk=ÞPQíß[d‹@VÈ¡B%`ŒCæÐëÙƒU£hE†™å€'¥Fn݉ˆz…ÛkGn—‰jG�yWJ>åJè`„%"Mþ�5VØ9Ì/Mæ)Ç`ÊÀO¦• šËAæP.Nª¹"~}üQÎûé»:M Qn„waàÏkSý”ìÊ­PV)ºòÓž¾V6”>LÅ{Wö9G>ÉŽWV.¡ÔÐÍÀY®"F9äœ,mVf¡-ÆkS‡‘VÕâ Ž~ó\n©ó-£+Ц\Þ'×1¯ÇÙ£Zv<(u™È[_n Œ{î^¶¸�G÷$“áˆv>UûÂx1·‹w––›€_ËVƒwæ}‡fØ[Qy6—’‹VÁã?vV«\Æ6]-ovníaŽ¿É†¥yÎÚ�”žá z}v¹-ή*~Ö�9Z@È�‚vߦàhøs†®¤·Š+ƒ†V®71Š{ªU†~äp®è‘Œ‰.çº@È0óÊŽ*ƒ0–ù�Š®L@ƈÇ�f6”ÕC½Ð�V®ÊÐHñ=�¦µºúìàW�FhQ*QãÆ8’5wz-`§–“.‹ÅQÈŠ”á”&[Ž8J3”ÎÕ—¶¸ïL’^$Çqr––x�qI¤˜¦æuçf*SƒœVo|U"'Ü���Ú«ÑpX3œVƒ‡jîÚ`þŸÆsYñKW’¡þUˆ #[d¬¢‘q¡?£Æ£Ø^Á¶8¢~¹êŸ/ë"ÿ¥žJí̓ ¥ÞE²ÃíZÝ}¥¾ >BY穨îß,BÞêЩFÏŒ ŸÑ«þ@æê4 v°îÀ�4–çU´¶I‘¯p¥<µµîù9, ²ÿhµ¶d¨ˆ?”·–˜<�l£”U¸Ö¼i¥nᦻÆ2D˜6Û»†j¾ux˜¦H¾V#¸¸Jvp¿^péÃ`l'bÂÎ ËÏ=ÎÊÛĶF0Ö}k}ØÈþ¢ýnªgɲµPÞ±ÙÉΕ°qt*ÓΦX˜$ÅØäÎÞ‹&µÊ8¬ Ïp¦/ëkÜöÑŽÛ‡¿¸ôÎNR X“#}ÔöZíN§½·Ô©6àcMú_Ö†œðiCéŒ×î6ŒŒX£ÖÖ [·a­*ÛÎãç1“mÜæ˜öøˆAgûÜ>ʼn2sŽs½Þþþüæ‘Án߆‡òw,‘¾â^á$2)âF¦‰¹–13Jã>/�•jÂã.n�.OéÆB·.»z]êC£Žbî(9ì®»öÞ\†Ôï.Ë‹í9þªâñæÕjS»=ÎÊóþç—s õþôftîó/ÃBñõN0…fÈúüöÖ8u• ‰3÷Ö6n“>¿ËŒú>‘CËç¶qŽý¶)Ÿ³w»ýVZ¾ÞÂr*ÏžšCå£î�×l€wI¦ß(T4 ƒã"üǹïeyê÷–¸,©œ/÷y©uï†T··ºsjV¨Š —©‡î, —æ¦6%¤�M ïº"X-—¸Í oÙEDGæ�UB®O½÷R|Žªµ÷#dŠåWŒl´¹ƒÊ·ò‘ÍÚ_ÈÖ˜ïÒ�ë6WQŠÁzEQÍ ß¦Á è žµqÃgp$Çù§×3¼ä'W$* w(å–ÿc}] )ï4€ñáø&ì*ˆÊÿNËØ*o¡1…¯fYDNÐßl>à¤ÐôÊÙ@× 5o¥¤A·v,Ú*Œ>BŸ j³˜AGB°�ÎÞ(Hâ$„xgñIG¨¢Ñ@òKJ÷½â– OdJ‡¤ÎJõŠÀRH÷C/G.7RMßt’塜ëŸM‡³[]©èB[OꊮRïŠy¿µZÙÃfXX�µl›K„÷ÿF†àÚzo‡ÿgZ_Šå“’ïÁóÐñv“Ç: É¬=«8”'~ãà= v–?ïZh_’]—G™i”mE䂘�g¦ò-ºHš?oä/Å~š÷‡(èü4èœÿì÷¼@%Hpž—�7ðED¢¯ç;víÒ`R¦ï§u¨í±Û}§wÈ­k´â쨨W졾Q?fÜ©/\WÎ5Æ(¬z”¬äÞe°_âZûZÆÒ°G!x’<¿!éµçe©ëlêd·WE|5©JÑŽ·‡÷FÌÚ”êtºço5´éûr|À'&ÙSÏŒirÁ7÷²È÷A3Â' p=ÏÖÀÏÉ´™:²¥¥ÄµÆr^ØÜƧŸè‡‡)�ǧß‘¨#Ä“ÈWWþ®üÉåÈG"½Ö+ÿÿWQÿÿÿÿYÿÿÿÿ^ÿTJeÿÿIvÿÿÿÿÿÿ'h;A+0 mÿ,ÿfÿudÿÿÿÿÿÿDÿ<ÿ] n@ÿsÿÿ2Eÿÿ ÿÿJ{ÿÿÿÿ\ÿÿÿ]~iPn!ÿÿÿÿÿ^Om&cÿÿJÿf Qu}^D=ÿÿÿÿÿÿ_ÿ*ÿ`<ÿÿÿRÿÿ1ÿÿ 1L !msr[t.9-EkÿÿK%Rÿÿ`ÿÿÿjgÿÿOÿÿÿÿH`SL6ÿ?+I0ÿÿSÿÿÿp# qÿmvÿÿÿÿÿÿÿHS6ÿÿNj0ÿ ÿÿÿÿÿÿÿÿÿÿÿS8^ÿÿÿÿÿ`ÿ4U9U3l!I*v#{ju!>Zm)s eÿ"ÿÿ:ÿÿÿÿDTÿ[=#ÿ Uÿÿÿÿ;ÿ(``w9ÿÿ_ÿÿ>Lÿl~&RÿÿbIEJ^W{1 Ehx|X'3 kbZÿÿÿ;ÿe!`|`PChÿ`dwHS8V'ÿ7#ÿÿÿ4ÿÿÿ; ÿÿÿlJt.ÿÿ;QÿÿÿM5ÿ<< 9btÿÿ oZZÿÿÿÿÿ;ÿEÿ6ÿ]A7ÿÿÿÿÿÿÿoÿÿÿÿÿÿ]S.R=?voYjH8ÿÿÿÿÿÿÿ^ÿÿ%ÿÿ2ÿ Jÿÿÿÿd9//ÿÿ1kKÿÿ_YÿÿÿNY@8ÿ<*opFiÿ ÿyÿTIdTWy ÿÿÿPÿÿÿg ?C0ÿÿÿK+ÿÿÿXw+ÿÿÿ\ÿÿÿÿu6ÿÿÿÿdÿÿÿDÿUÿÿÿSE'!9{ÿ?ÿ[g#4xBW]ÿRI6*ÿ'Jÿÿ AA4ÿjÿdL"eÿÿÿÿN9ÿÿÿÿX[fWeiÿÿLÿÿ|xÿÿ'ÿÿÿÿYÿÿÿ ÿÿ &HFÿÿ%ÿhGÿÿÿ ÿ{ÿ-M LCXkÿÿÿÿÿ9ÿÿÿÿÿÿ1%r/^\ //&i@68ÿÿ ÿÿÿKT , LmfJx?uX'4Sÿÿ+a0ÿÿÿW)@?^\ÿPÿÿÿzMo Jÿÿÿÿq]ÿ^wkf3Zÿ^ÿ% VUÿÿÿ!Wd& ÿÿÿÿVMcOÿxj|ÿÿÿX2ÿÿÿBÿÿÿa|/ÿÿÿÿÿÿÿ8ÿÿ[ÿjÿ1Pÿ`ÿÿxWjqT8^W`LT#\ÿ-y=q4l,1J/\ÿÿÿÿ. ,;ÿ.[u[ ÿj0i-Y. 2,ÿÿJ Bÿÿÿÿÿ|"Nÿ+aÿ!(eÿTi\p=fvR-iÿÿ3FBÿr/@ÿJ(#ÿÿÿÿXfÿÿSÿÿ 17BM]N9 ("QlIyiÿÿÿZiÿÿÿ ÿÿÿ.9bÿJÿÿÿÿwÿÿKÿsu,Q."A_(fK3ÿÿÿÿÿÿ0ÿÿ_CcÿÿPÿÿLsF$ÿÿÿÿ70ÿ~)bjÿD,|ÿ{ 8ÿÿ'ÿÿÿ(ÿÿÿVmA5ÿÿÿÿÿ]F\;ÿÿÿk&ÿ,ÿ &hÿ{ ks ÿÿ,mFÿ6"{)ÿX0N PHÿÿÿcbÿÿaÿAC<1MP1^AlÿÿÿkÿÿBg'Tÿ1"uÿÿÿÿÿ3x,{g*@ÿo3* xLÿRÿy{ÿÿ!Sÿÿÿ8ÿÿÿOÿÿÿÿÿÿ2ÿÿ[6Eÿÿÿ6ÿÿÿEÿÿnÿÿ ÿQÿÿ_ÿCÿ-kÿ)%%]  zY]RZp 2HY <ÿÿ ,yÿSgqRBSQ O0;l!` CIzIÿI(ÿPÿÿuÿDDÿÿ%ÿÿcUt ]ÿJ #jyk`Mt6 - ÿ5\ÿÿOÿ.#}MCI.0FHÿÿÿoÿÿÿ  ]AÿJeÿ(;b- H:ÿÿÿ>mC,ÿDluvYFÿsÿÿÿÿHÿÿÿH 4ÿÿ_ÿ\tÿÿeÿÿÿÿ~Yÿÿÿ,S ÿvxF-ÿÿ{D yÿÿDGÿÿÿ[Qÿ{ÿÿEÿ5ÿKwB:7ÿÿ!ÿÿ ÿÿÿM@\<]TÿSÿfÿHÿÿÿ>2ZÿÿHLÿÿÿEÿ`Zÿÿ|ÿÿK@eÿ+ÿÿÿÿ3ÿÿÿ4ÿÿFÿ,RXÿÿÿÿqqg I-EMPP I?S_i`c,f:sv35ÿSf2ÿ xJg5eÿÿÿÿkÿB>cÿ - ÿÿ#ÿÿ-ÿÿÿÿÿÿÿÿÿÿ`Pqÿ-4Sÿ {ÿÿÿÿÿÿÿ:VP+ÿÿÿÿÿ-<ÿÿÿTÿ>#ÿÿÿÿÿÿl{8Zcÿtoÿÿ,ÿ0c*IÿÿssÿÿÿAx98jn>ÿÿÿÿ$%Bÿÿÿÿÿ)s;FRub"ÿÿz?ÿÿÿn3V@^Z3XNR\Gÿ:`X/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5/src/sockaddr.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5ÁX/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5/src/sockaddr.rsÁ Üêç>T]»œµ#jˆ«©«©�8 = Y?,A03b5_65!*)'(U *"$=P9Q+Z 46`8,+I+9%MB'HPPP" -"HEB:.J4$( 4 C  T&# @Q%KPPPP" -"7EB$5R<[4   G JTMMJ5$1M/ Q?$4 1'N='0)+03+.;K,7# Y*9O*:a?$$9P?4>O#Y>4>FP$Z@53$S$ 1 M;!6 N;!6 /"NR&W%,11 '.?H]94B,77 %#!"$!"# ## ( "'.?H^;5D5O9548 %#!"$!"# ## ( "A2%#!"$!"# ## 16%),:%   F(!"(";1GA62:;GA623 3=   Z(!"("<1HA26:"/ NJG-<ILOQ9 4(5)4MON,Q#]&I5MQa4DE6JO-'$(&>&&E6'$(42F4P!?*GKL $FPJJPMIB-LKOPOLJNQOOZ%&&%FOL% )LJL #=,=I+JQ#PMI=7#%###!"#" 2M#%###!"#" 5;`W+ =JAXEO(J7(FO(B'6(P/_KNPI g$4<QKLC4(;NII9GMB%>*KM?!%LOQKMQP K%QKD;M$W0Q$%-KIM?QO$%PNMPLLO3U+*/Q:1O1U%+*7KJ,OCJK1O8%O\*M1)!%)2MM<$)O1U+44LH;O1U*+4<KOGLO!URSMNcPN-\6KN;)8(CP< !$Le06M?!:%`S-NUM/Q:$1U%7E5D;M$F0O!D#N.Q)%6M$Ua8JF7U(@>$U^0O-8!+QO;S3 @PQLD>O!#% ?F/;1R/ ?R;C!"# ?F/O0R) ?aOB!"# =N?:P+ =MH!  ?MAK?HSYCK96S) @MP9E!#  @N?:P+ =OH!  ?NBK?ITY@ :B(/  MF?bAPC!"! " ;Q/ ANPO$ C''R/!"! " M!!# EOAR:V5 EA?ABAB<@>?@CRO!&& PONMO:d!77 \RK9e!77 !) POQL0 -9!( RM= !-9!) ]QbdO:! (375 !/ YE-! (375 !0 HN?69X% HA7E;B@C 6F!( GM=$<d GF$P4!& IOA:X- IO@K!(" HN?8W' HKOC@E!' >D+.c >Q;Y>OaE ;Y>DaE+ .c BBA?! F!!# BI5! 4Q. G ##!# <,QFAdAPC!"!##%" " ;S/ ANPO CR/!"!##%" " M#,#1!# GOAR:Z5 GA?ABAB?@CRO#(& R8ONO=^#;@. #* T9K9=_#;@. #+ JOA$9\) JMOC$G#* JN?69\% JA7E;B@E 6F#* IM=$7Z3 IMP$J#($ KOA:\- KQ@K#*" I97Z) I9E#( CE-0S- CNQ1J:A#"" GL;! 7X4 GPO! L#&& IN?%##"#!#! " " " 9Z8 IJI%##"#!#! " " " P#(( LO<,AF@cCc*!# ?/DK9 #%&###$!!" #"!= CU> BK9 #%&###$!!" #"#!= =S/ IIPNE2OMQQO- !;-E,0PK%/ O#6BI54R- BJNNPE""" LK**K=>Q;QUTPOOCd1>0QUT0d1;UN!, ;UN!,?!*:8!!6÷×òž2‚è$wG¦'ƶW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5/src/sockref.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5ÁW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5/src/sockref.rsÁ ¸/ÏÊx¶ÆŸÎÏbzéÐ≠‰ yC-BQ#OPKH'IIYJ+<59@0G7C //-4') PP"MP(!'NC( 9%-K$ G(3%9YS$ "?"1A?3&òƒ–în¤)äÃ0X/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5/src/sys/unix.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5ÁX/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5/src/sys/unix.rsÁ y;ª•b Ñ_ðšæ[û•o¶ž¶ž›/ECAA$ Q,$      T "#B $ =Q+  *2   N%02#$N#  & 51P%S :#9,2#  !(&  !! 17" K"a]`@YB 5V Y  !" 93& N+N*H2 41 K2NG,DOP 4JN#  D   !!D MO8KR6 $S< + #%&###!"#"= -+* #%&## #!"#!#" )!"1* 6  V1!! $$ 6R ###! TQ2MN;8'B2$8H.80$*GD%O.*Q%I1F?;*7V3S 7"711 P3$$ :UFYS E-9 !C1XI1-@>> '-5 ;G'C$& 6 7$&<QQC,"QBT?QY#QAQ8Q:VZ%R45 \M@#% \O!R;<^Q0 + `6';Z?c`i1!b"H!d C b(3?+:G3V+eG5ba<@#Y( Q+F(NKI413^BE ^>a;WTV 7X= [ /#D <=[+#dNGVJTZ $. ' 8 7E8APd0E&76>+R) H.K;\C;aC;a B2 @?;41? d TF IT " I*)+,d !%!%= -)-! CaO.QQQ.&7+Q".07O,1*3/* Q%ES %Q0 %*Q @QdAIc:E7 *5'I +2?9<*WD   MJ =:] )$L!" 95,U 3_ )-L ,8 ?6 ],6 !9 `, 6 !D]=5 %8>D$1 0=OI3;1? :!8U2=* W20  KG? ,!'  HP9NG? ,! ,  =INQ)* #%###!"#" S![@0M2 &> $! # " /:G)$O"" 2$SRMQP@œ!+6 + $! # E' M"$$ BE4T/T' BQ"T<#" P/ ###!" 4V! Q #"&#! 1eN ###! =d( @KHO,P) @KJ3HO:!" ?F6O1Q' ?MUW7O?#  CJ> ##!" 5U/ Cafhk ##!" G#$# OVVOA #0+ O{h‹OS#0# HOHR9[+ HTiRH#)  HCO:G9<4#% 0KM HNNELOL@2 #$ BJ88)6 VN:M2Q $! ###!# ]:$! ### L A"( XN:M2Q $! ###!# ]:$! ### P A"( NON$ $! ###!# F$! ### bAa #PON$ $! ###!# F$! ### Z Aa #FJ>66X) C-6C"' CH:##"! 3U) @MP9##"! B"$  FK@86X) CNJ8E"'  BI<O4P/ ?POLOOF## DFC $! # &QF(/4  "R&#0I8 !X8&$04 ) "4&$' **#( + ^*#, -G[d"]cc" ##!" V/K #( GNF ##!" Ea %C <KP{RL&'@0 "( =F8R4ZBV;º6.eCG8 #%##!!"#"# 1P- CH #%##!!"#"# A#! FLBR:G8") 3FOOCRM".2 HPPML1,&6B , KH>64YED6>\KF864YKF864YPKD6T 4( S>N6= 4 KPNJPO6F / NID67\NOD6F / NID67\OQ/6K 3 KML6; 3 S=IPU6Y$=0+ 0OK 64 0 DH61SDH6D"$$ "#9#$',6@#8$#"#$#$#"#$#$*F7',9'9 B#(ªDŠEi›~ÎÕ 7¡V S/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5/src/lib.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5ÁS/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.5/src/lib.rsÁ ÝvÌÇIZú|d  wYHÊÁÊÁã/ECAA$&.HL5ECNKIJQQ#/)-)5A >#/ Q'H<')#"$QQQ!LJ: !%K)) )Q,'=2$ 7$-S> F A*"47 0"4 3"7 M2‰‡—ØkmÄZ *5‚   @. Q>G)2N<NQO%P &C3D4J$32>// "" :NQN%P & -(5,(3+$610R;*!" " /  HN6P &,$>,$@):): +>*6<*R<- ###! B,T@ $ $ !BQ&Q<; :E&.%L(</A0 @;I:*%,-84'M  >*)'%'#&$%&'%'#&$%& P:*5@-% /O"@5 *R(H+? /NA*B &M=7 QMAQ+1Q&Q/&,QA=*8@-% 7O"/D5 2R(UT 7NRV *''/bN)-QPAQȼ‡”†2˰°1Hƒ‹ÍŒ¢X¦B±õ²OÀx86_64-unknown-linux-gnuÁ¿åê‚�Y·‡cµ´E@Ë—socket2Á-c07ad6b9e75b8ddcÁM˜vð_;yÉLj·ªŠµŠ6³³™Á ™ˆT�‘�‘$Êò ¤¤¤ ¤ ¤¹´$£� Á ¯$¤Á Á ìÁ Ãä¤ì¤ì¤ì¤´$¤ì£ìƉ¤›’옶¤° ì¤ì’¶ëëÖ Ö ¤´$£é��×Á ׂ�¤×³ì¤™´$ÊÊÞò ˜È£Üéøú:¤è¤ì쎔rust-end-file