rust ‡9*#rustc 1.98.1 (48a229cea 2026-09-01)ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁ‰m6GÞ­n6ÇèÆ2-64f5f36fb0927694Á«ª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Á regex_syntaxÁg (7µ‡"· ÅˆûÆÓ-8d0720223fc09a43ÁtestsÁ,�¢ Í$Ê¡  onepassÁ<„yÓ dfa-onepassÁ¼âxÂú,í”Í$¶”èú,¤îÍ$ííÅStateMapÁD«FÓ‰|“FŒ’F²”<³HÓ§¼•HhybridÁ4œïÓ£ ”ÿîª $ÅïÓª „ªï¶ backtrackÁL‡Ó nfa-backtrackÁÌã·ú,­ÆÍ$¢Æñú,å¿ Í$Ú¿ ‘ ú,è¡ Í$Ý¡ Ö ú,œ„ Í$øƒ ¶pikevmÁ4ÔÓ nfa-pikevmÁ´³Í ú,Ú§ Í$ϧ ™ ú,ˆ„ Í$éƒ ÷ CaptureNameMapÁt©¢Ó‰|‘¢Œ�¢—ú,åTÍ$ÚT¡lazyÁ$ºDÓ«Œ¡Dœ D¡ú,Ò†Í$džÛ is_word_charÁd¤ÜÓunicode-word-boundaryÁüÃÛ!Û© d¨èÓ üÁç!Ûú,�ûÍ$öú®innerÁ,‡ÒÓ‰|ðÑŒïÑ®ú,Ï’Í$Ä’—ú,�zÍ$…zèNEÁ܆·Ò¬´†èú,§ŒÍ$ˆŒçú,À÷Í$µ÷º” ,ÀÓperf-literal-substringÁüŒ"Éú,ÞµÍ$ perl_wordÁLÝÓ üŸ!ùRegexÁ(¡î Ó«ˆ¡² ˜¡± û‰«macrosÁlogÁ¨traceÁdfaÁ       DEADÁ denseÁ      !"#$%&'()*+,-./0123456LABELÁVERSIONÁM˜ M accelerateÁM prefilterÁMminimizeÁM match_kindÁM start_kindÁMstarts_for_each_patternÁM byte_classesÁMunicode_word_boundaryÁMquitÁMspecialize_start_statesÁMdfa_size_limitÁMdeterminize_size_limitÁMget_accelerateÁM get_prefilterÁM get_minimizeÁMget_match_kindÁM get_startsÁMget_starts_for_each_patternÁMget_byte_classesÁMget_unicode_word_boundaryÁMget_quitÁc Mget_specialize_start_statesÁMget_dfa_size_limitÁMget_determinize_size_limitÁM overwriteÁh j˜ jbuildÁj build_manyÁmŒjbuild_from_nfaÁo j configureÁjsyntaxÁjthompsonÁt>OwnedDFAÁw˜ wnew_manyÁyŒ{ always_matchÁ{ never_matchÁ{üconfigÁbuilderÁ‚�‚Ђto_ownedÁ‚ÿ‚ start_mapÁ‚�‚®‚ alphabet_lenÁ‚stride2Á‚strideÁ‚ memory_usageÁŽ�Ž to_sparseÁŽto_bytes_little_endianÁŽto_bytes_big_endianÁŽto_bytes_native_endianÁŽto_bytesÁ”�Žwrite_to_little_endianÁŽwrite_to_big_endianÁŽwrite_to_native_endianÁŽ write_to_lenÁš'aÁš from_bytesÁšfrom_bytes_uncheckedÁšwrite_toÁž�  �  set_prefilterÁ £set_start_stateÁ£set_transitionÁ£add_empty_stateÁ£ swap_statesÁ£remapÁ¨impl Fn(StateID) -> StateIDÁ£ remap_stateÁªÚ£truncate_statesÁ£ß£set_pattern_mapÁ£¾¯ £shuffleÁ£set_universal_startsÁ²  ´�´specialÁ´ special_mutÁ´quitsetÁ´flagsÁ´statesÁ´ state_lenÁ´pattern_id_sliceÁ´match_pattern_lenÁ´ pattern_lenÁ´ pattern_mapÁ´quit_idÁ´to_indexÁ´ to_state_idÁ´startsÁ´match_state_indexÁ´accelerator_indexÁ´accelsÁ´transÁ È�Èñ Ë�Ëis_special_stateÁË is_dead_stateÁË is_quit_stateÁËis_match_stateÁËis_start_stateÁËis_accel_stateÁË next_stateÁËnext_state_uncheckedÁËnext_eoi_stateÁË¥ Ë match_lenÁË match_patternÁË has_emptyÁËis_utf8ÁËis_always_start_anchoredÁË start_stateÁËuniversal_start_stateÁË acceleratorÁËÍà�à�ãminimalÁãsetÁã£æ ãswapÁãÍéÚãtruncateÁì�ì¹î�ìéìvalidateÁìÐìˆìƒìÕìÚ ìê ì next_state_idÁì prev_state_idÁìtableÁì¶ìäìÁìis_validÁìò€�€ table_mutÁƒdeadÁ…�…�‡ ‡ ‡ ‹�‹¹��� � ‹é‹ˆ&’ ’ ‹Ð‹ˆ‹‚‹�‹ò&‹ò›�› set_startÁ›»'StartStateIterÁŸ�ŸstÁŸŸ£�£Ÿ£¥ §�§�ªemptyÁª˜ ¬ ª new_with_mapÁ¯�¯¹±�¯é¯ˆ&¯to_mapÁ¯Ð¯ˆ¯match_state_idÁ¯ pattern_idÁ¯¥ ¯ô¯slicesÁ¯¶¯ pattern_idsÁ¯òÀfrom_nfaÁÀ‹À¹Ã�à bool_to_intÁÀé StateIterÁÇ�Ç�ÇýÇitÁÌ�Ì�ÌŸÌ¥ Ð StateÁÒ�ÒidÁÒÕÒ transitionsÁ×�× -×sparse_transitionsÁ׎-×¾Ý�Ýñà�àŸà¥ ã å�åŸå¥  éis_size_limit_exceededÁê!ì¦ìnfaÁì%unsupported_dfa_word_boundary_unicodeÁìtoo_many_statesÁìtoo_many_start_statesÁìtoo_many_match_pattern_idsÁìdfa_exceeded_size_limitÁìdeterminize_exceeded_size_limitÁ"õsourceÁ#÷ñ regexÁùùùùùùùùùù ù ù ù ù ùùùùdefine_regex_typeÁùŒ˜ ŒŽŽŒù� new_sparseÁ�new_many_sparseÁ’Œù”åù–ý–is_matchÁ˜'hÁ˜…˜ –findÁœÞ2œ…– find_iterÁŸ'rÁŸÞ2Ÿ…ù£ý£ try_searchÁ£ is_anchoredÁù§ý§forwardÁ§reverseÁ§¥ ù¬¢3¬Þ2¬ý¬Ÿ¬¥ ± ù³˜ ³�³ build_sparseÁ³�·Œ³build_many_sparseÁ¹Œ³build_from_dfasÁ»ý³Î³Û³±ùÀ> sparseÁ     Â Â!Â"Â#Â$Â%Â&Â'Â(Â)Â*Â+™¥Âñ˜ ò ñŽôŒô Â÷¨÷»÷ from_denseÁú�ú ú ú Âÿ�ÿÐ��ÿˆÿÿÿ�ÿ®ÿòˆ�ˆ£ˆÁˆÜˆú��ˆ’ˆ°ˆËˆ¹’�ˆé•�•‹•�™�™Ýœ�œñŸ�Ÿø!Ÿ�"Ÿ¥"Ÿº"ŸÐ"Ÿæ"Ÿü"ŸŽ#Ÿª#Ÿ¥ ŸÈ#ŸÙ#Ÿî#Ÿÿ#ŸŽ$Ÿ®$ŸÁ$ŸÞ$ŸÍ´�´� ·�·¹¹�·é·ˆ&¼ ·Ð·ˆ·ƒ· try_stateÁ·Õ·ï5·id_lenÁ·ò Æ�Æ state_mutÁÆ sparse_mutÁ ʘ Ë�Êfrom_dense_dfaÁÍ� Ï�Ï�Ñ Ñ Ñ Â Õ�Õ¹×�× × ÕéÕˆ&ÕÐÕˆÕ‚Õ�Õ¶Õò&ÕòÂä�äû(“)ç�ç�ç±)çŸÂì�ì�ìŸì¥ Âñ�ñ�ññž,õ�õ�õË!õŽ-Âú�ú�úŸú¥ Âÿ�ÿ�ÿñƒ�ƒ¥ ƒnext_eoiÁƒŽ-ƒrangeÁƒnext_atÁƒ…+ƒ¥ ƒÞ$ƒ¹��ƒéÂ���ñÂStateMutÁ“�“Ž-“Î2“ntransÁ“ input_rangesÁ“¥ “½+“accelÁœ�œ set_next_atÁŸ�Ÿñ¢˜ ¢insertÁ¢containsÁ ÁB¦¦¦¦¦¦¦¦¦¦ ¦ ¦AccelTyÁ¦ ACCEL_TY_SIZEÁ¦ ACCEL_LENÁ¦ ACCEL_CAPÁ¦find_fwdÁ¦find_revÁ¦¸÷)¸œ¸set_lenÁ¦¼�¼�¦¿ý¿ˆ¿Ð¿as_bytesÁ¿ò¿needlesÁ¿¶¿getÁ¿�¿¹É�¿ˆ&¿é¦ÍýÍñ¦Ð�ÐýПХ ¦Õ˜ Ö Õ from_sliceÁØ Õ‹Ú Õ�Ü ÕœÕ¶Õis_emptyÁÕÀEÕžCâ Õ as_accel_tysÁä ¦æñ  automatonÁèèèèèèèèèè è è è è èè AutomatonÁøü"øŽ#øª#ø®$østart_state_forwardÁý østart_state_reverseÁÿ øÁ$øø!ø�"ø¥"øº"øÐ"øæ"ø¥ øÈ#øÙ#øî#øÿ#øŽ$øÞ$øÍøtry_search_fwdÁ� ‘ øtry_search_revÁ“ ” øtry_search_overlapping_fwdÁ– øtry_search_overlapping_revÁ˜ øtry_which_overlapping_matchesÁè›�›ý›ü"›Ž#›ª#›®$›îH›ŽI›Á$›ø!›�"›¥"›º"›Ð"›æ"›¥ ›È#›Ù#›î#›ÿ#›Ž$›Þ$›Í›¦J›ÆJ›æJ›�K›´K踂¸ get_matchÁè»Ý»unsupported_anchoredÁèè¿ñè"skip_empty_utf8_splits_overlappingÁÁ‚èfmt_state_indicatorÁÃý  determinizeÁÅÅÅÅÅÅÅÅÅÅ Å Å Å Å ÅÅÅÅÅÅÅÅÅÅÅÅÅÅᘠárunÁáîáÝá†á›ÅéÅé�é’Pë é cached_stateÁéadd_all_startsÁéadd_start_groupÁé add_one_startÁémaybe_add_stateÁñ é add_stateÁéget_state_builderÁéput_state_builderÁéòö ßøøøøøøøøøø ø ø ø ø øøøøøø MinimizerÁŒ�Œ„Œin_transitionsÁŒ partitionsÁŒwaitingÁø’�’ñø•�•˜ •’P˜ ˜ ˜ ˜ • find_waitingÁ� •find_incoming_toÁŸ •initial_partitionsÁ¡ •incoming_transitionsÁø¤÷)¤œ¤minÁ¤ canonicalizeÁ¤clearÁ¤¶¤—G¤ deep_cloneÁ¤�­‚¤ intersectionÁ¤subtractÁ°  remapperÁ²²² RemappableÁµãµÕµºµÍ¹Ú²»˜ ¼impl RemappableÁ¼ »¸%¿’W»ÍÁ’WÁ ²ÄÚ Äê ²±ÇÇÇÇÇÌãÌÕ̺ÌÍÐÚ searchÁÒÒÒÒÒÒÒÒÒÒ Ò Ò Ò Ò ÒÒ²DâýÒ find_fwd_impÁäýänext_uncheckedÁÒÂDçýÒ find_rev_impÁéýéµYé é é Òfind_overlapping_fwdÁïýÒfind_overlapping_fwd_impÁñýÒfind_overlapping_revÁóýó ó Òinit_fwdÁ÷ýÒinit_revÁùýÒeoi_fwdÁûýÒeoi_revÁýýÒprefilter_restartÁÿý —����������errÁ�Œ˜ ŒÍŽÚŒ‹� Œˆ&Œvalidate_state_lenÁŒ¹”�”ŒéŒset_maxÁ˜Œset_no_special_start_statesÁšŒø!Œ�"Œ¥"Œº"Œæ"ŒÐ"ŒÈ#ŒmatchesÁŒ accel_lenÁŒ½!Œý  ‚§§§§§§§®‹®¹°�®é®has_unanchoredÁ® has_anchoredÁõ.µÛ¶å·········· · · · · ·········ÎgotoÁÎò·Ñ˜ ÑÊUÑ�Ñ start_patternÁÕ Ñfinish_patternÁÑcurrent_pattern_idÁÑ¥ Ñ add_emptyÁÑ add_unionÁÑadd_union_reverseÁÑ add_rangeÁÑ add_sparseÁÑadd_lookÁÑadd_capture_startÁÑadd_capture_endÁÑadd_failÁÑ add_matchÁÑœä ÑpatchÁÑset_utf8ÁÑget_utf8ÁÑ set_reverseÁÑ get_reverseÁÑset_look_matcherÁÑget_look_matcherÁÑset_size_limitÁÑget_size_limitÁÑòÑcheck_size_limitÁ¶°ññññññññññ ñ ñ ñ ñ ñññññññññññññññññññ ñ!ñ"ñ• ˜ • utf8Á• Š4• nfa_size_limitÁ• shrinkÁ• capturesÁ• which_capturesÁ•  look_matcherÁ• ½c• àc• get_nfa_size_limitÁ•  get_shrinkÁ•  get_capturesÁ• get_which_capturesÁ• ‹d• get_unanchored_prefixÁ• ⦠ñ¨ >ñª is_noneÁª is_anyÁñ­ ˜ ­ �­ �° Œ­ build_from_hirÁ­ build_many_from_hirÁ³ „­ ¾­ Îñ· compileÁ¸ „¸ ¸ · ™¼ ¼ ¼ ¼ · c_concatÁÁ …·  c_alt_sliceÁà à ·  c_alt_iterÁÆ …· c_capÁ·  c_repetitionÁ·  c_boundedÁ·  c_at_leastÁË ·  c_zero_or_oneÁ·  c_exactlyÁÎ ·  c_byte_classÁ· c_unicode_classÁÑ · #c_unicode_class_reverse_with_suffixÁ· c_lookÁ·  c_literalÁÕ · c_rangeÁ· c_emptyÁ· c_failÁ·  c· ‚a· œa· Ôa· �b·  b· ²b· åa· öa· Âb· Ûb· òb· ‚c·  is_reverseÁñè ˜ è ÊUñë �ë ˜ ë finishÁë œï ð ë  compile_fromÁë âië  add_suffixÁë Ôaë  pop_freezeÁë pop_rootÁë top_last_freezeÁñù set_last_transitionÁ¶errorÁû û û û û û û ‚  size_limitÁ‚ ¦‚ ΂ ëf‚ wordÁ‚ too_many_patternsÁ‚ ­/‚ exceeded_size_limitÁ‚ invalid_capture_indexÁ‚ unsupported_capturesÁû � Í0û � ñ¶ literal_trieÁ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘  ‘  ‘  ‘  ‘ Ÿ û3Ÿ Š4Ÿ œŸ get_or_add_stateÁ£ £ Ÿ âi‘ § ñ‘ © �© ˜ ‘ ¬ ‚c¬ is_leafÁ¬ chunksÁ¬  active_chunkÁ¬ active_chunk_startÁ± ‘ ³ ñ‘ µ �µ Ÿµ ¥ ‘ ¹ ñ¶ƒ » » » » » » » » » »  » PRIMEÁ» INITÁ» È ˜ È ÊUÈ ÆÈ ×EÈ  %» Î ˜ Î ÊUÎ ÆÑ átÑ îtÎ ×EÎ  %¶õ.Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö  Ö  Ö  Ö  Ö  Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö Ö  Ö !Ö "Ö #Ö û ˜ û Žý Œû ¨û »û Øû °û patternsÁû ¥ û start_anchoredÁû start_unanchoredÁû ‚aû byte_class_setÁû ®û ƒû Õû  group_infoÁû  has_captureÁû î#û ÿ#û õmû Ž$û ‘gû  look_set_anyÁû look_set_prefix_anyÁû ò• Ö — ñÖ ™ into_nfaÁ™ Ùx™ œ™  set_startsÁ™ ­c™ Íc™ óc™  set_capturesÁ¡ ¢ ™ ÍÖ ¥ ñÖ §  is_epsilonÁ§ ò§ ÍÖ « ñ¬ ¬ Ö ¯ £^° ¯  matches_unitÁ² ¯  matches_byteÁÖ µ £^¶ µ Á{¸ µ Ú{µ �» » » » Ö À £^Á À Á{à À Ú{Ö  Æ ñÇ Ö  É �É ŸÉ ¥ ¶ range_trieÁÍ Í Í Í Í Í Í Í Í Í  Í  Í  Í FINALÁÍ ROOTÁÍ Ü ˜ Ü ÊUÜ �ß �ß ‚Ü �Câ Ü ÔaÜ  duplicateÁÜ add_transitionÁÜ add_transition_atÁÜ set_transition_atÁÜ ƒÜ ‡=Í ë õ2ì  binary_searchÁí �í ‚ì ë ÊUÍ ò ˜ ó ò pushÁò state_idÁò rangesÁÍ ø ˜ ù ù ù ù ø parts1Áø parts2Áø parts3Áø as_sliceÁÍ ‚ ñÍ „ ñ… Í ‡ ñÍ  intersectsÁ¶¶¶¶¶¶¶¶¶¶ ¶ ¶ ¶ ¶ utilÁ˜ alphabetÁ™ ™ ™ ™ ™ ™ ™   ™  eoiÁ  as_u8Á  as_eoiÁ  as_usizeÁ  is_byteÁ¦   is_eoiÁ   is_word_byteÁ™ ª ñ™ ¬ ÷)­ ¬  singletonsÁ¬ ‹¬ ¹¬ é¬  %¬ ×E¬  get_by_unitÁ¬ ¹‚¬ Á¬ Õ¬  is_singletonÁ¬ �¬ representativesÁ» Ž» ¬ elementsÁ¬ element_rangesÁ™ À >™  ñ™ Ä �Ä ŸÄ ¥ ™ È �È ŸÈ ¥ ™ Ì �Ì ŸÌ ¥ ™ Ð �Ð ŸÐ ¥ ™  Ô >™  Ö ÷)Ö  set_rangeÁÖ add_setÁÖ ®™  Û ÷)Ü Û œÛ removeÁÛ žCÛ contains_rangeÁá Û �Û  iter_rangesÁÛ —GÛ ‹æ Û ¹è �è Û é™  ì ñ™  î �î Ÿî ¥ ™ ò �ò Ÿò ¥ õ ˜ ëf÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷  ÷  ÷  ÷  ÷  ÷ ÷ ÷ ˆ ªˆ £^ˆ ÷)ˆ Î2ˆ patternÁˆ ËMˆ  get_groupÁˆ get_group_by_nameÁˆ �‘ ˆ  group_lenÁˆ Ùxˆ interpolate_stringÁˆ interpolate_string_intoÁ– – ˆ interpolate_bytesÁˆ interpolate_bytes_intoÁš š ˆ extractÁ� Þ2� Š� � � ˆ  extract_bytesÁ£ Þ2£ Š£ £ £ ÷ © ÊU©  set_patternÁ© slotsÁ©  slots_mutÁ÷ ® ñ÷ CapturesDebugMapÁ° �° pidÁ° capsÁ÷ ´ �´ ñ¶ KeyÁ· · �· ó· ô¶ ¼ �¼ ñ÷ ¿ �¿ Ÿ¿ ¥ ¿  size_hintÁ¿ Š÷ Å �÷ Ç �÷ É ˜ Ê ŒÊ ƒÊ ŠÊ É ÷)Ï É Ú Ñ É to_nameÁÉ  pattern_namesÁÔ É  all_namesÁÉ ¬Œ× É slotÁÉ ¥ É �ŠÉ  all_group_lenÁÉ slot_lenÁÉ implicit_slot_lenÁÉ explicit_slot_lenÁÉ òà ÷ ² ÷ ã add_first_groupÁã add_explicit_groupÁå Šå ã fixup_slot_rangesÁè è ã ¥ ã �Šã small_slot_lenÁí ÷  ï Æpï too_many_groupsÁï missing_groupsÁï first_must_be_unnamedÁï °~÷  õ Í0÷  ÷ ñø ÷  ú ÷)÷  ü �ü Ÿü ¥ ÿ ü ý�ü Š÷ ƒ�÷ …�÷ ‡�‡Ÿ‡¥ ˜ escapeÁ‹‹�ñŽ ‹ DebugHaystackÁ� ���ó‹”�”ñ˜  interpolateÁ—————stringÁœimpl FnMut(usize, &mut String)Áœ!impl FnMut(&str) -> OptionÁœ —bytesÁ impl FnMut(usize, &mut Vec)Á ‹•  —¤�¤”—§”— find_cap_refÁ—find_cap_ref_bracedÁª ª —is_valid_cap_letterÁ˜ �®®®®®®®µÞ2µ˜ µinputÁ¸'sÁµ advance_halfÁº‚µadvanceÁ¼‚µtry_advance_halfÁ¾‚µ try_advanceÁÀ‚µinto_half_matches_iterÁ‚µinto_matches_iterÁÄ‚µinto_captures_iterÁÆ‚µ#handle_overlapping_empty_half_matchÁÈ‚µhandle_overlapping_empty_matchÁÊ‚®TryHalfMatchesIterÁÌÞ2Ì‚ÌÇ,ÌfinderÁ®ÑÞ2Ñ‚Ñ infallibleÁѬ—Õ'iÁ®×Þ2ׂןץ ®ÜÞ2Ü‚Üñ®àÞ2à‚ଗãëš®åÞ2å‚åŸå¥ ®TryMatchesIterÁêÞ2ê‚êÇ,ê­š®ïÞ2ï‚ïКﬗóëš®õÞ2õ‚õŸõ¥ ®úÞ2ú‚úñ® þÞ2þ‚þ¬—�ëš® ƒÞ2ƒ‚ƒŸƒ¥ ®TryCapturesIterÁˆÞ2ˆ‚ˆÇ,ˆ‚�ˆ­š® ŽÞ2Ž‚ŽК® ’Þ2’‚’Ÿ’¥ – ® ˜Þ2˜‚˜ñ®œÞ2œ‚œŸœ¥ ˜ ó ¡¡LazyÁ£ £�£‚£ó¡¨�¨‚¨˜ ¡¬�¬‚¬×E¡°�°‚°ë°Ã¡µ�µ‚µñ¡ó ¹¹¹¹¹¹¹¹ПÁ�Á‚ÁdataÁÁcreateÁÁownedÁ¹Ç�Ç‚¹Ê�ʂʘ ¹Î�΂Î×EÎÀ ¹Ó�Ó‚Óñ¹×�ׂ×õ˜ lookÁÛÛÛÛßreversedÁßas_reprÁß from_reprÁßas_charÁÛä÷)ä¢ä singletonÁä¶ä—GäžCäcontains_anchorÁäcontains_anchor_haystackÁäcontains_anchor_lineÁäcontains_anchor_lfÁäcontains_anchor_crlfÁä contains_wordÁäcontains_word_unicodeÁäcontains_word_asciiÁä�ä�Cä set_insertÁäø†ä set_removeÁä�Vä set_subtractÁäCä set_unionÁä intersectÁä set_intersectÁä read_reprÁä write_reprÁä availableÁÛ�ñÛƒŸƒ¥ Û†˜ †set_line_terminatorÁ†get_line_terminatorÁ†£^†matches_inlineÁ† matches_setÁ†matches_set_inlineÁ†add_to_bytesetÁŽ †is_startÁ†is_endÁ† is_start_lfÁ† is_end_lfÁ† is_start_crlfÁ† is_end_crlfÁ† is_word_asciiÁ†is_word_ascii_negateÁ†is_word_unicodeÁ†is_word_unicode_negateÁ†is_word_start_asciiÁ†is_word_end_asciiÁ†is_word_start_unicodeÁ†is_word_end_unicodeÁ†is_word_start_half_asciiÁ†is_word_end_half_asciiÁ†is_word_start_half_unicodeÁ†is_word_end_half_unicodeÁÛ¢>Û¤˜ ¤checkÁÛÛ¨ñÛ© ªϬªfwdÁªrevÁ˜ poolÁ®PoolÁ¯ ¯�¯‚¯ó®´�´‚´˜ ´ with_capacityÁ´#with_available_parallelism_capacityÁ¹¹AVAILABLE_PARALLELISMÁ» ¼ ®¾�¾‚¾×E®Â�‚Âñ® PoolGuardÁÆ Æ�Æ�Æ‚Æó®Ì�Ì�Ì‚ÌputÁ®Ñ�Ñ�Ñ‚ÑëÑî×�×�ׂ×Å®Ü�Ü�Ü‚Üñ®” áááááááááá á á á á ááCOUNTERÁáTHREAD_ID_UNOWNEDÁáTHREAD_ID_INUSEÁáTHREAD_ID_DROPPEDÁáMAX_POOL_STACKSÁá¡­ö�ö‚öÅ¡östacksÁöownerÁö owner_valÁáý�ý‚á€�€‚áƒ�ƒ‚á†�†‚†˜ †ç­á‹�‹‚‹×EŽ ‹get_slowÁ‹ put_valueÁ‘ ‹ guard_ownedÁ‹ guard_stackÁ‹guard_stack_transientÁá–�–‚–ñá�¯š�š�š‚š•­š�šdiscardÁá¡�¡�¡‚¡�¡ value_mutÁ¡à¯¡put_impÁá©�©�©‚©õá®�®�®‚®ñ˜ ϳ aho_corasickÁ´´´´´´º˜ »þ´½‚ ½õ2½prefixÁ½ò½is_fastÁ³bytesetÁÃÃÃÃÃÃɘ ÊþÃÌ‚ Ìõ2Î Î Ì··ÌòÌÍ·³ìÔÔÔÔÔÔÚ˜ ÛþÔÝ‚ Ýõ2Ý··ÝòÝÍ·Ô㘠äþÔæ‚ æõ2æ··æòæÍ·Ôì˜ íþÔï‚ ïõ2ï··ïòïÍ·³memmemÁõõõõõõû˜ üþõþ‚ þõ2þ··þòþÍ·³teddyÁ„„„„„„Š˜ ‹þ„�‚ �õ2�··�ò�Í·³³³³³³³³³³ ³ ³ ³ ³ ³³³³³³³³³©˜ ªþª ¬ © from_choiceÁ©from_hir_prefixÁ©from_hirs_prefixÁ°„° ©õ2©··©ò©max_needle_lenÁ©Í·³ PrefilterIÁ¸‚ ¸õ2¸··¸ò¸Í·³¾Œ¾‚ ¾õ2¾··¾ò¾Í·³Å˜ ÆþÆ ³prefixesÁÉ„³suffixesÁË„˜  primitivesÁÍÍÍÍÍÍÍÍÕ˜ Õ×EÍØñÍÚMAXÁÚLIMITÁÚZEROÁÚSIZEÁÚ˜ Ú¢ ÚmustÁÚß‚Úas_u64ÁÚas_u32ÁÚas_i32ÁÚone_moreÁÚ from_ne_bytesÁç Úfrom_ne_bytes_uncheckedÁé Ú to_ne_bytesÁë Íí�í´í÷Íñ�ñøÍô�ô´ô÷Íø�øøÍû”ÍýErrorÁýøÍ €œÃ€øÍ ƒœÃƒøÍ †œÃ†øÍ ‰ attemptedÁÍ ÍŒñÍŽŸŽ¥ Íindex_type_implsÁÍIteratorIndexExtÁ’with_pattern_idsÁ’with_state_idsÁÍ•…˜ ‚——————————¡˜ ¡from_input_forwardÁ£ ¡from_input_reverseÁ¡ look_behindÁ¡anchoredÁ¡get_look_behindÁ¡ get_anchoredÁ—ª˜ « ª×Eª‹® ª¹ªé—²ñ³—µ�µ¶µÄ‚µß‚˜ κººººººººº ºparseÁº parse_manyÁÆŒº parse_withÁºparse_many_withÁÉŒºË˜ Ëcase_insensitiveÁË multi_lineÁËdot_matches_new_lineÁËcrlfÁËline_terminatorÁË swap_greedÁËignore_whitespaceÁËunicodeÁ˳fË nest_limitÁËoctalÁË get_unicodeÁËget_case_insensitiveÁËget_multi_lineÁËget_dot_matches_new_lineÁËget_crlfÁËù§Ëget_swap_greedÁËget_ignore_whitespaceÁ˽cËget_nest_limitÁË get_octalÁËapplyÁË apply_astÁË apply_hirÁºæ>˜ wireÁèèèèèèèèèè è è è èöbuffer_too_smallÁèøñèèûgenericÁûªÍû invalid_usizeÁûversion_mismatchÁûendian_mismatchÁûalignment_mismatchÁûlabel_mismatchÁûarithmetic_overflowÁûpattern_id_errorÁûstate_id_errorÁèè‡ñˆèu32s_to_state_idsÁèu32s_to_state_ids_mutÁèu32s_to_pattern_idsÁècheck_alignmentÁ��èskip_initial_paddingÁèalloc_aligned_bufferÁ��è read_labelÁ’ è write_labelÁèwrite_label_lenÁèread_endianness_checkÁèwrite_endianness_checkÁ—�èwrite_endianness_check_lenÁè read_versionÁè write_versionÁ›�èwrite_version_lenÁèread_pattern_idÁž ž èread_pattern_id_uncheckedÁèwrite_pattern_idÁ¢�ètry_read_state_idÁè read_state_idÁ¥ ¥ èread_state_id_uncheckedÁèwrite_state_idÁ©�ètry_read_u16_as_usizeÁ« ¬ ¬ ètry_read_u32_as_usizeÁ¯ ° ° è try_read_u16Áè try_read_u32Áè try_read_u128Áèread_u16Á¶ èread_u32Á¸ è read_u128Áº ècheck_slice_lenÁ¼�èó èœè„À è padding_lenÁèEndianÁà write_u16Áà write_u32Áà write_u128ÁèLEÁèBEÁèâ èÊîÖÊÿÖÊ�×èÎîÖÎÿÖÎ�ט ëNÒÒÒÒÒÒÒÒÒÒ Ò Ò Ò Ò ÒÒÒÒÒÒÒƒçççççççççç ç ç ç ç çç÷borrowÁçùñçûÐ'ûÎ2û is_from_wordÁû is_half_crlfÁû look_haveÁû look_needÁûÈ#ûÙ#ûmatch_pattern_idsÁûiter_nfa_state_idsÁ…‚ûòû½ 牘 ‰ into_matchesÁ‰ÊU‰capacityÁçŽñç�ôy�set_is_from_wordÁ�set_is_half_crlfÁ�šÚ� set_look_haveÁ•impl FnMut(LookSet) -> LookSetÁ�add_match_pattern_idÁ�½ �repr_vecÁçšñçœto_stateÁœÊUœ«Úœ£Ü ¸Üœ set_look_needÁ¢¸Üœadd_nfa_state_idÁœ¨Eœ½ œ‚ÝçReprÁ¨ ¨�¨óç¬�¬Î2¬has_pattern_idsÁ¬òÙ¬†Ú¬šÚ¬«Ú¬È#¬Ù#¬ÌÚ¶ ¬iter_match_pattern_idsÁ¸‚¬åÚº‚¬pattern_offset_endÁ¬encoded_pattern_lenÁç ¾�¾ñÀ çReprVecÁ Â�Âóç Æ�Æ set_is_matchÁÆset_has_pattern_idsÁÆêÛÆ‚ÜÆšÚÆ«ÚÆ£ÜÎ¸ÜÆ×ÝÐ¸ÜÆÞÜÆclose_match_pattern_idsÁÆõÝÆ½ ç write_vari32Áç read_vari32Áç write_varu32Áç read_varu32ÁçÿÖÚÒ¥ Ü Ü Ü Ü Òepsilon_closureÁÒadd_nfa_statesÁâ â Òset_lookbehind_from_startÁå å å å å å å å å å å å å ˜ ÷)óóóóskip_splits_fwdÁ÷�÷‚óskip_splits_revÁú�ú‚ó skip_splitsÁý�ý‚˜ intÁ€U8Á�ß‚€ƒß‚€U16Á…ß‚…low_u8Á…high_u8Á€‰ß‚‰õ剃æ€U32Á�ß‚�õå�low_u16Á�high_u16Á€’ß‚’õå’Ïæ’Þæ€U64Á—ß‚—õå—Ïæ—low_u32Á—high_u32Á€�ß‚�õå�Ïæ�½ç�Ìç€I32Á£ß‚£to_bitsÁ£ from_bitsÁ€§ß‚§¢è§±è€UsizeÁ«Ä‚«as_u16Á«¤Á«–Á€°Ä‚°øè°¤Á°–Á€ºµß‚€·�·ß‚˜ 캺” ¼ì½ ¼memchr2Á¿ ¼memchr3ÁÁ ¼memrchrÁà ¼memrchr2ÁÅ ¼memrchr3ÁÇ ˜ °XÉÉÉÉÉÉÉÉÑÞ2ј Ó„ÑspanÁÕ�цA׎ѩÆÑearliestÁÑset_spanÁÛ�Ѷ†ÝŽÝÑû(Ñset_endÁÑ set_anchoredÁÑ set_earliestÁÑhaystackÁтђÑget_spanÁÑ get_rangeÁÑÐÆÑ get_earliestÁÑis_doneÁÑis_char_boundaryÁÉíÞ2íñïÉñÞ2ñ„ñ”Éõ†Aõ—Gõ¶õžCõÑ ÉûñÉý´ý÷É€øÉ‚´‚÷É…”É ‡”É ‰•É ‹•É �˜ ��Á�¿‰�Ñ É ’˜ “�’�Á•�’¿‰’‚’’’†A’¸ë’—G’¶Éž˜ žÊUžžCž�Cž try_insertÁž—Gžis_fullÁž¶žÀÛž�Éɪñɬ�¬Ÿ¬¥ ¬ý�ɱ�± next_backÁÉ´Û3´¿‰É·continue_past_first_matchÁɹ˜ ¹¦¹Ý¹gave_upÁ¹haystack_too_longÁ¹éMÉÉÁñ˜  sparse_setÁÃÃÃÃÃȘ ÈresizeÁÈÊUȸ%ÈòÃΘ ÎÕóÎÀÛζΗGÎ�CΞCÎÊUÎ�ÎòÃÙñÃÛ�ÛŸÛ¥ ˜  unicode_dataÁ˜ ³fà‘ƒá mkwordsetÁâ â áWORDÁå àdecodeÁà decode_lastÁà¶à is_boundaryÁàis_leading_or_invalid_byteÁConfigÁì¾ìpreÁìßìîìÿì�ì®ìÁì¹ìèì†ì›$ùŽ%ûñ&ý>BuilderÁÿØÿÛ'‚Ž(„ñDFAÁ†�†ý†±)†msÁ†—†½!†Àö†¹†È)���ޝ TransitionTableÁ”�”ò&”classesÁ”Õ*™�™Ž StartTableÁœ�œò&œ¦œ œäœ¥ œuniversal_start_unanchoredÁœuniversal_start_anchoredÁ+¥�¥Ž MatchStatesÁ¨�¨§+¨½+¨¥ ,­�­Ž-°�°ñFlagsÁ³î#³ÿ#³Ž$./¸Ž01»ñStateTransitionIterÁ½�½¶½Ç,2Á�ÁñStateSparseTransitionIterÁÄ�ıÄcurÁ3È�Èñ BuildErrorÁ˦4ÍŽ5ÏñBuildErrorKindÁÑNFAÁÒ ÒóÑ UnsupportedÁÕ ÕóÑ TooManyStatesÁØ ÑTooManyStartStatesÁÚ ÑTooManyMatchPatternIDsÁÜ ÑDFAExceededSizeLimitÁÞlimitÁÑDeterminizeExceededSizeLimitÁàóþ6âŽ7äñùŽæýæû3æŠ4ù êýêŽù íýíñù FindMatchesÁð¢3ðÞ2ðýðreÁðÇ,ù ö¢3öÞ2öýöñù½÷û„ù ýŽù ÿñÂó÷���ý�±)�—�Àö�¹�ȉ�‰ŽÂ TransitionsÁŒ�Œï5ŒˆùŒãŒ¥ Â’�’ŽÂ²ù•�•ò&•¦• •ä•¥ •ôù•–úž�žŽÂù,¡�¡Ž-¡Î2¡�B¡�B¡¥ ¡½+¡ÁBª�ªŽÂSeenÁ­ %¯ñ¦AccelsÁ±ý±½!¦´ý´Ž¦ IterAccelsÁ·�·ý·½!·Ÿ¦¼�¼ý¼ñ¦AccelÁÀ¹•Á ¦ ÃŽèOverlappingStateÁÅmatÁÅŽ-ÅatÁÅnext_match_indexÁÅrev_eoiÁèËŽèÍñèÏÝèè Ò•è StartErrorÁÔQuitÁÕbyteÁÔUnsupportedAnchoredÁ×modeÁè ÙŽè ÛñŪöÝîÝÝ݆ݛÅâŽÅäñÅRunnerÁæ�æØæõ.æ„æbuilder_statesÁæcacheÁæmemory_usage_stateÁæsparsesÁæstackÁæscratch_state_builderÁÅñ�ññøStateSetÁôidsÁøöŽøøñøúÝøøý•øÿ¤ ø �–²RemapperÁƒƒ ƒidxmapÁ²†ñ² IndexMapperÁˆÕ²Šñ�SpecialÁŒmaxÁŒË Œ min_matchÁŒ max_matchÁŒ min_accelÁŒ max_accelÁŒ min_startÁŒ max_startÁ��–Ž��™ñ§ StartKindÁ›BothÁœ › UnanchoredÁž ›AnchoredÁ  §§£Ž§§¦ñ§¨Ý§§«•·ù,­EmptyÁ®¥ ­ ByteRangeÁ°Ë!­SparseÁ² -­LookÁ´ñ¢´¥ ­ CaptureStartÁ·…+· group_indexÁ·¥ ­ CaptureEndÁ»…+»ÓŽ»¥ ­ù¿ alternatesÁ­ UnionReverseÁÁ¡�­FailÁà ­MatchÁÅ…+·ÇŽ·Éñ·ËÝ··Î•·½÷Ð…+ÐÕЂaÐëfÐ memory_statesÁгfЊ4БgÐ�p·ÚŽ·Üñ· Þ>ñªöà³fàŠ4àÇfàÝfàûfà‘gñçŽñ éññ ë>ñ WhichCapturesÁíAllÁî íImplicitÁð í­ò ñ ñ õŽñ ñøññCompilerÁúparserÁúØúåú utf8_stateÁú trie_stateÁú utf8_suffixÁñ�Žñƒññ ThompsonRefÁ…‚…’ññ‰ŽññŒññ Utf8CompilerÁŽ�ŽåŽƒŽ´ñ“�“ññ Utf8StateÁ–compiledÁ– uncompiledÁñ™Žñ›ññUtf8NodeÁ�Ë!�¯ñ Žñ¢ññUtf8LastTransitionÁ¤‚¤’ñ§Žñ©ñû üü«¦û ­Žû ¯ñû ­ý±SyntaxÁ² ²ó±CapturesÁµ µó±WordÁ¸ ¸ó±TooManyPatternsÁ»givenÁ»óþ±ûý¾ó—¾óþ±ExceededSizeLimitÁÁóþ±InvalidCaptureIndexÁÃ÷±UnsupportedCapturesÁÅ û ÇŽû Éñ‘  LiteralTrieÁËÕËŠ­‘ ÎŽ‘ FrameÁÐ�ЯsР-ÐCÐï5‘ Ö�Öñ‘ ù,Ù -Ù¯s‘  ÜŽ‘  Þ>‘ StateChunksIterÁà�à -à¯sàactiveÁ‘  å�åñ‘  TransitionÁèÿ†è¥ ‘  ‘  쎑 » Utf8BoundedMapÁï™ïÀÛïƒ » óŽ» õñ» Utf8BoundedEntryÁ÷™÷keyÁ÷Ž» ûŽ» ýñ» ÿ>»  Utf8SuffixMapÁ�™�ÀÛ�ƒ » …Ž» ‡ñ»  Utf8SuffixKeyÁ‰”‰‚‰’»  �Ž»  �ñ»  ‘>»  “Ý»  » –•» Utf8SuffixEntryÁ˜™˜Ü˜Ž» œŽ» žñ»  >Ö Ãý¢ ¢óÖ  ¥ŽÖ InnerÁ§Õ§õw§‹x§‚a§Ùx§«x§®§ëx§î#§³f§Š4§‘g§¦y§ºy§ memory_extraÁÖ  ·>Ö ù,¹ë�ºË!¹„޼ ¼ó¹DenseÁ¿ ¿ó¹šŽÂñ¢Â¥ ¹ùÅ¡�¹ BinaryUnionÁÇalt1ÁÇalt2Á¹`Ê¥ Ê…+Êӎʼ�¹Ð�Ï ¹á�Ñ…+Ö  ÓŽÖ ÕÝÖ Ö Ø•Ö SparseTransitionsÁÚ -Ö ÜŽÖ ÞñÖ àÝÖ Ö ã•Ö DenseTransitionsÁå -Ö çŽÖ éñÖ ëÝÖ Ö î•Ö  ›ð‚ð’ð¥ Ö Ö õŽÖ Ö øÝÖ úÆûÿÖ  Ö !þ•Ö  PatternIterÁ€�€Ç,€_markerÁÖ "„�„ñÍ  RangeTrieÁ‡Õ‡freeÁ‡ iter_stackÁ‡±‡‡ dupe_stackÁ‡ insert_stackÁÍ ŽŽÍ ù,� -Í ’ŽÍ  ›”†A”next_idÁÍ  —ŽÍ NextDupeÁ™old_idÁ™new_idÁÍ  œŽÍ  žñÍ NextIterÁ ö tidxÁÍ  £ŽÍ  ¥ñÍ  NextInsertÁ§ö§†€© §¶Í ¬ŽÍ ®ñÍ SplitÁ°¾S± °¶Í ´ŽÍ ¶ñÍ ¸Ý¹ Í Í ¼•Í  SplitRangeÁ¾OldÁ¿ ¿ó¾NewÁ Âó¾ÎŒÅ ÅóÍ Í ÉŽÍ Í ÌñÍ ÎÝÍ Í Ñ•™ UnitÁÓ Óó™ ™ ׎™ ™ ÚÝ™ ™ Ý•™ ߤ ™ á–™ UnitKindÁãÀåä äóãEOIÁç çó™ ™ 뎙 ™ îÝ™ ™ ñ•™ ó¤ ™ õ–™  ByteClassesÁ÷ ÷óù ™ ™  üŽý ™ !™  ByteClassIterÁ€�€ˆù€Ÿ™ "„�„ñ™ ByteClassRepresentativesÁ‡�‡ˆù‡cur_byteÁ‡end_byteÁ‡ last_classÁ™ #���ñ™ ByteClassElementsÁ���ˆù�classÁ�ÿ†™ $•�•ñ™ ByteClassElementRangesÁ˜�˜ê„˜†A™ %œ�œñ™  ByteClassSetÁŸ Ÿó™ &¢Ž™ '¤ñ™ ByteSetÁ¦¼™ (™ )©Ž™ *™ +¬ñ™ ,®>™ -°Ý™ .™ /³•™ BitSetÁµ µó· ™ 0™ 1ºŽ» ™ 2™ 3¾>™ 4ÀÝÁ ™ 5™ 6Ä•™  ByteSetIterÁÆ�Æ %Ƙ™ 7Ê�Êñ™ ByteSetRangeIterÁÍ�Í %͘™ 8Ñ�Ññ÷ ¦—ÔÙxÔ÷ŒÔ¬Œ÷ ØŽ÷ CapturesPatternIterÁÚ�Ú‚�Úƒ ÷ Þ�ÞŽ÷ á�áñ÷  GroupInfoÁä äó÷ çŽ÷ éñ÷ ë>÷ GroupInfoInnerÁí slot_rangesÁí name_to_indexÁí index_to_nameÁí¬ ÷ òñ÷ ô>÷ GroupInfoErrorÁö¦÷ øŽ÷ úñ÷ GroupInfoErrorKindÁüÜ—ý»\ü TooManyGroupsÁÿ¿‰ÿminimumÁü MissingGroupsÁ‚¿‰üFirstMustBeUnnamedÁ„¿‰ü DuplicateÁ†¿‰†‚ ÷ ‰Ž÷ ‹ñ÷ GroupInfoPatternNamesÁ���Ç,÷ ���Ž÷ “�“ñ÷ GroupInfoAllNamesÁ–�–Ùx–pidsÁ– current_pidÁ–ƒ ÷ œ�œñ‹ DebugByteÁŸ Ÿó‹‹£Ž‹— CaptureRefÁ¦�¦capÁ¦’—ª�—¬�¬Ž—¯�—±�±ñ—´�´Ý—·�—¹�¹•—RefÁ¼�¼ª¾ ¾ó¼NumberÁÁ Áó— Ä�— Æ�ÆŽ— É�— Ë�Ëñ— Î�ÎÝ—Ñ�—Ó�Ó•®SearcherÁÖÞ2Ö¬—Ölast_match_endÁ®ÚÞ2ÚŽ®ÝÞ2Ýñ®HalfMatchesIterÁà àÞ2à‚àó®åÞ2å‚åñ® MatchesIterÁé éÞ2é‚éó®îÞ2î‚îñ® CapturesIterÁò òÞ2ò‚òó®÷Þ2÷‚÷ñÛšŽûStartÁü ü ûEndÁÿ ÿ ûStartLFÁ‚ ‚ ûEndLFÁ… … û StartCRLFÁˆ ˆ ûEndCRLFÁ‹ ‹ û WordAsciiÁŽ Ž ûWordAsciiNegateÁ‘ ‘ û WordUnicodeÁ” ” ûWordUnicodeNegateÁ— — ûWordStartAsciiÁš š û WordEndAsciiÁ� � ûWordStartUnicodeÁ    ûWordEndUnicodeÁ£ £ ûWordStartHalfAsciiÁ¦ ¦ ûWordEndHalfAsciiÁ© © ûWordStartHalfUnicodeÁ¬ ¬ ûWordEndHalfUnicodeÁ¯ ¯ Û Û ³ ŽÛ Û ¶ ñÛ ¸ ÝÛÛ» •ÛLookSetÁ½ ¼ÛÛÀ ŽÛÛà >ÛÅ ÝÛÛÈ •Û LookSetIterÁÊ  %ÛÌ ŽÛÎ ñÛ LookMatcherÁÐ linetermÁÛÒ ŽÛÔ ñÛUnicodeWordBoundaryErrorÁÖ Ö óÛÙ ŽÛÛ ñá THREAD_IDÁÝ __rust_std_internal_init_fnÁÝ ß à __RUST_STD_INTERNAL_VALÁß â ¡Æá CacheLineÁä ä �ä óá è �è ñ´ AhoCorasickÁë _unusedÁ´í Ž´ï ñÚ°ñ ñ óó Ãõ ŽÃ÷ ñÔMemchrÁù ù óÔü ŽÔþ ñÔMemchr2Á€! €!ó€!ôÔ„!ŽÔ †!ñÔMemchr3Áˆ! ˆ!óˆ!ôˆ!õÔ �!ŽÔ �!ñõMemmemÁ‘!œÇõ“!Žõ•!ñ„TeddyÁ—!œÇ„™!Ž„›!ñ³ PrefilterÁ�!Àö�!Í·�!‰¾³¡!޳£!ñ³ChoiceÁ¥!úǦ! ¦!ó¥!¯È©! ©!ó¥!íȬ! ¬!ó¥!³É¯! ¯!ó¥!äɲ! ²!ó¥!š°µ! µ!ó¥!‰Ç¸! ¸!ó³»!޳½!ñÍ NonMaxUsizeÁ¿! ¿!óÍÍÃ!ŽÍÍÆ!ÝÍÈ!ÆÉ!ÿÍÍÌ!•ÍÎ!¤ ÍÐ!–Í SmallIndexÁÒ! Ò!óÍÍÖ!ŽÍÍÙ!ñÍÛ!>ÍÝ!ÝÍ ß!Æà!ÿÍ!Í"ã!•Í#å!¤ Í$ç!–ÍSmallIndexErrorÁé!øÃÍ%ë!ŽÍ&í!ñÍ'ï!ÝÍ(Í)ò!•ÍSmallIndexIterÁô!rngÁÍ*ö!ŽÍ+ø!ñÍ PatternIDÁú! ú!óÍ,Í-þ!ŽÍ.Í/�">Í0ƒ"ÝÍ1…"Ɔ"ÿÍ2Í3‰"•Í4‹"¤ Í5�"–ÍStateIDÁ�" �"óÍ6Í7“"ŽÍ8Í9–">Í:˜"ÝÍ;š"Æ›"ÿÍ<Í=ž"•Í> "¤ Í?¢"–Í@¤"ÁÀ¤"ÌÀ¤"ÙÀ¤"åÀ¤"˜ ¤"¢ ¤"�Á¤"ß‚¤"–Á¤"¤Á¤"²Á¤"ÀÁ¤"ÐÁ±" ¤"êÁ³" ¤"ŽÂµ" ¤"�ÍA¸"ñÍBº"�º"´º"÷ÍC¾"�¾"øÍDÁ"�Á"´Á"÷ÍEÅ"�Å"øÍFÈ"”ÍGÊ"œÃÊ"øÍHÍ"œÃÍ"øÍIÐ"œÃÐ"øÍJÓ"œÃÓ"øÍKÖ"øÃÍLÍMÙ"ñÍNÛ"˜ ÍOÝ"ŸÝ"¥ ÍPà"…à"˜ ÍQã"…ã"Ÿã"¥ ÍPatternIDErrorÁç" ç"óÍRê"ŽÍSì"ñÍTî"ÝÍUÍVñ"•Í PatternIDIterÁó" ó"óÍWö"ŽÍXø"ñÍWithPatternIDIterÁú"…ú"Ç,ú"؉ÍYþ"…þ"ŽÍZ�#…�#ñÍ[„#ÁÀ„#ÌÀ„#ÙÀ„#åÀ„#˜ „#¢ „#�Á„#ß‚„#–Á„#¤Á„#²Á„#ÀÁ„#ÐÁ‘# „#êÁ“# „#ŽÂ•# „#�Í\˜#ñÍ]š#�š#´š#÷Í^ž#�ž#øÍ_¡#�¡#´¡#÷Í`¥#�¥#øÍa¨#”Íbª#œÃª#øÍc­#œÃ­#øÍd°#œÃ°#øÍe³#œÃ³#øÍf¶#øÃÍgÍh¹#ñÍi»#˜ Íj½#Ÿ½#¥ ÍkÀ#…À#˜ ÍlÃ#…Ã#ŸÃ#¥ Í StateIDErrorÁÇ# Ç#óÍmÊ#ŽÍnÌ#ñÍoÎ#ÝÍpÍqÑ#•Í StateIDIterÁÓ# Ó#óÍrÖ#ŽÍsØ#ñÍWithStateIDIterÁÚ#…Ú#Ç,Ú#؉ÍtÞ#…Þ#ŽÍuá#…á#ñ—ªöä#–Æä#©Æ—ç#Ž—é#ñ— StartByteMapÁë#ƒ ì# —î#Ž—ò¾ð# NonWordByteÁñ# ñ# ð#WordByteÁô# ô# ð#TextÁ÷# ÷# ð#LineLFÁú# ú# ð#LineCRÁý# ý# ð#CustomLineTerminatorÁ€$ €$ ——„$Ž— — ‡$ñ— ‰$Ý— — Œ$•ºªöŽ$óÈŽ$‹ÉŽ$�ÉŽ$¹ÉŽ$ÅÉŽ$ÜÉŽ$îÉŽ$‡ÊŽ$³fŽ$žÊŽ$°Êºº›$Žººž$ñèAlignAsÁ $þ $� $_alignÁ£$  $¹•è¦$þ¦$�¦$ñèSerializeErrorÁª$whatÁè ¬$ñèDeserializeErrorÁ®$ ®$óè ±$ñèDeserializeErrorKindÁ³$GenericÁ´$msgÁ³$BufferTooSmallÁ¶$õá³$ InvalidUsizeÁ¸$õá³$VersionMismatchÁº$§º$foundÁ³$EndianMismatchÁ½$§½$Ñã³$AlignmentMismatchÁÀ$©À$Ÿ³$ LabelMismatchÁÃ$§³$ArithmeticOverflowÁÅ$õá³$ÒÏÇ$»\Ç$õá³$áÐÊ$»\Ê$õáè Í$ñ• çù,Ð$ Ð$óç Ó$Žç Õ$Ýç ×$ÆØ$ÿççÛ$•çÝ$¤ çß$–çStateBuilderEmptyÁá$ á$óçä$Žçæ$ñçStateBuilderMatchesÁè$ è$óçë$ŽçStateBuilderNFAÁí$½ í$prev_nfa_state_idÁçð$ŽÉ—ò$Þ2ò$âìò$¸ëò$©Æò$åëÉø$Þ2ø$ŽÉSpanÁû$‚û$’ÉÉÿ$ŽÉÉ‚%ÝÉ„%Æ…%ÿÉɈ%•É HalfMatchÁŠ%¿‰Š%Ñ É É!Ž%ŽÉ"É#‘%ñÉ$“%ÝÉ%•%Æ–%ÿÉ&É'™%•Éá�›%¿‰›%¸ëÉ(É)Ÿ%ŽÉ*É+¢%ñÉ,¤%ÝÉ-¦%Ƨ%ÿÉ.É/ª%•É PatternSetÁ¬%¶¬%whichÁÉ0¯%ŽÉ1±%ñÉ2³%ÝÉ3É4¶%•ÉPatternSetInsertErrorÁ¸%øÃ¸%ÀÛÉ5»%ŽÉ6½%ñÉPatternSetIterÁ¿%�¿%Ç,É7Â%�Â%ŽÉ8Å%�Å%ñÉöŒÈ%NoÁÉ% È%YesÁË% È%PatternÁÍ% Í%óÉ9É:Ñ%ŽÉ;É<Ô%ñÉ=Ö%ÝÉ>É?Ù%•É MatchKindÁÛ%§’Ü% É@ÉAß%ŽÉBÉCâ%>ÉDä%ñÉEæ%ÝÉFÉGé%•Û% LeftmostFirstÁë% É MatchErrorÁí% í%óÉHð%ŽÉIò%ñÉJô%ÝÉKÉL÷%•ÉMatchErrorKindÁù%ó†ú%ÿ†ú%Ñ ù%GaveUpÁý%Ñ ù%HaystackTooLongÁÿ%¶ù%‹‡�&¦‡ÉMƒ&ŽÉN…&ñÉO‡&ÝÉPÉQŠ&•à SparseSetsÁŒ&set1ÁŒ&set2ÁÃ�&ŽÃ‘&ñà SparseSetÁ“&¶“&±“&ï5×&ŽÃ SparseSetIterÁ™& ™&�™&óÃ�&��&ñú8ü8ü8ü8[8\8]8^8_8`8a8b8c8e8f8g8h8ƒ8…8…8…8l8l8m8m8o8o8q8r8s8’8x8y8~88„8…8†8‡8ˆ8‰8Š8‹8Œ8�8�8‘8’8“8”8–8–8—8—8˜8˜8™8ž8ž8¢8¤8¥8¦8§8¨8ª8¬8­8®8®8¯8¯8±8²8²8¶8·8¸8¹8º8»8¼8½8¾8¿8À8Á8Â8Ã8Ä8Å8Æ8Ç8Ê8Ê8Ê8Í8Î8Ï8Ð8Ñ8Ò8Ó8Ô8Õ8Ö8×8Ø8Ù8Ú8Û8Ü8Ü8Ý8Þ8ß8›8å8æ8è8é8ë8î8î8ð8ñ8ñ8ò8ó8ô8õ8ö8÷8ø8ù8ú8û8ü8ý8þ8ÿ8‚8§8„8�8�8‘8’8’8•8–8—8˜8™8š8�8ž8¦8¯8²8²8²8¬8®8®8±8±8³8´8´8µ8µ8¶8·8¸8¸8¹8º8»8¼8½8¾8¿8¹8¼8¼8¼8Á8Â8Ã8Ã8Æ8Ð8Ù8Ú8Û8Ü8Ü8ß8ß8ß8Ã8Ã8Ã8ã8Ê8Ê8Ê8è8Î8Ð8Ð8Ð8ê8ã8å8å8å8í8ö8ø8ø8ø8ì8ï8ï8ï8�8Ž8‘8’8˜8œ8¥8¥8¥8¦8¦8¦8©8ª8«8ú8ú8ú8±8þ8€8€8€8µ8µ8¶8¶8·8·8¹8¹8»8½8¾8¿8‹8ò8ô8ú8ƒ8„8…8†8‡8Š8‹8Œ8�8�8�8�8�8‘8‘8’8’8”8›8ž8ž8ž8¡8¢8£8¤8¥8¦8§8¨8©8ª8«8¬8­8®8¯8°8°8±8²8³8”8¹8¹8»8¼8¼8¾8¿8À8Á8Á8Â8Ã8Ä8Å8È8É8 8Ë8Í8Í8×8×8Û8Ü8Ü8Ü8Ý8Þ8ß8à8á8â8ã8æ8ð8ô8ô8ô8þ8‚8‚8‚8¬8…8†8‡8ˆ8‰8Š8‹8Œ8�8�8�8’8’8’8ž8¡8¡8¡8°8°8°8¤8¥8¥8¶8¶8·8·8¶8º8»8Á8Â8Ã8Ä8Å8Æ8Ç8È8É8É8Ë8Ì8Ï8Ï8Ï8¿8¿8¿8Ô8Ä8Ø8Þ8ß8à8á8â8ä8ç8ç8ç8ù8ú8û8ü8ü8ý8ý8ý8ÿ8ÿ8ÿ8�8‚8ƒ8„8…8†8‡8ˆ8‰8Š8‹8Œ8�8Ž8�8�8�8�8“8“8“8–8–8–8–8˜8˜8˜8˜8š8š8š8š8ž8Ÿ8 8¡8¡8¢8¢8¢8£8£8£8¤8¥8¦8§8¨8©8ª8«8¬8­8®8¯8°8±8²8³8³8³8´8´8´8µ8µ8µ8µ8¶8¶8¶8¶8·8·8·8·8Ì8Î8Î8Î8Ð8Ó8Ó8º8Ú8Ü8Ü8Ü8À8À8À8Á8Á8Á8Á8Á8Á8Ã8Ã8ã8å8å8å8ã8ã8ã8ä8å8æ8ç8ó8ó8ó8í8î8î8ï8ï8ð8ñ8ó8ô8õ8ö8”8”8”8÷8ù8ù8ù8û8þ8þ8€8€8‚8‚8�8�8Ÿ8Ÿ8Ÿ8¡8£8¦8§8¨8©8ª8«8¬8­8¯8¯8¯8°8°8°8¶8·8¸8¹8‡8‡8‡8¼8¿8¿8Á8‹8‹8‹8Å8Æ8Í8Î8Ï8Ð8â8â8â8ä8ä8ä8ä8ç8ç8ç8é8é8é8ï8ï8ï8ï8ñ8ñ8ñ8ñ8ñ8ó8ó8ó8ó8÷8÷8÷8ù8ù8ù8û8û8û8û8û8ý8ý8ý8ý8ý8ÿ8ÿ8ÿ8—8š8š8š8Ž8�8’8“8”8”8—8˜8š8œ8�8ž8Ÿ8 8¡8¢8£8¤8¥8¦8¤8§8§8§8©8¬8¬8¯8°8°8²8³8´8È8Ê8Ê8Ê8Ì8Ï8Ï8Ï8Ð8Û8Ý8Ý8Ý8Ó8Ô8Õ8×8Ø8Ù8Ú8Û8Ü8Ý8Þ8ß8à8á8â8ã8ä8æ8ç8è8é8ê8ë8ì8í8î8ï8ð8è8ê8ê8ê8ž 8Ÿ 8  8¡ 8¢ 8£ 8¤ 8¥ 8¦ 8ö8ù8ù8ù8« 8¬ 8‚8„8„8„8¯ 8¯ 8° 8° 8² 8² 8³ 8³ 8µ 8¶ 8¸ 8¸ 8¼ 8¼ 8Á 8à 8à 8Æ 8È 8È 8È 8É 8É 8Ê 8Ê 8Ë 8Ë 8Í 8Í 8Î 8Î 8Ð 8Ð 8Ñ 8Ñ 8Ó 8Ó 8Ô 8Ô 8Õ 8Õ 8× 8Ø 8Ù 8Ú 8Û 8Ü 8Ý 8Þ 8ß 8à 8á 8â 8ã 8ã 8ä 8å 8æ 8ç 8Š8�8�8�8•8•8•8š8œ8œ8œ8¡8£8£8£8¨8ª8ª8ª8ê 8î 8ï 8ï 8ò 8ó 8ô 8ô 8õ 8ö 8÷ 8ø 8ú 8®8°8°8°8È8Ê8Ê8Ê8ƒ 8„ 8Ž 8� 8� 8� 8Ï8¢ 8¢ 8£ 8¦ 8¦ 8¨ 8¨ 8¨ 8Ø8Ø8Ø8Ý8­ 8® 8¯ 8° 8± 8´ 8´ 8´ 8ç8ç8ç8¸ 8í8º 8º 8º 8ô8ö8ö8ö8ü8þ8þ8þ8Ê 8Ë 8Ë 8Ì 8Ì 8Í 8†8ˆ8ˆ8ˆ8Ž8�8�8�8”8—8—8�8Ÿ8Ÿ8Ÿ8Ð 8Ñ 8Ñ 8Ô 8Ô 8Õ 8¦8ü 8ý 8ƒ 8„ 8… 8† 8‡ 8ˆ 8‰ 8Š 8‹ 8Œ 8� 8Ž 8� 8� 8‘ 8’ 8“ 8” 8• 8˜ 8˜ 8˜ 8› 8œ 8� 8� 8ž 8Ÿ 8  8¡ 8¡ 8¤ 8¤ 8¦ 8¦ 8¦ 8Ô8Ö8Ù8Ù8¨ 8© 8ª 8ª 8¬ 8¬ 8¬ 8Ý8ß8ß8ß8á8ä8ä8° 8° 8² 8´ 8è8ê8ê8ê8ì8ï8ï8¶ 8¶ 8¸ 8º 8» 8ö8ù8û8û8ÿ8ÿ8Á 8Á 8à 8Å 8Ç 8Ç 8Ç 8†8†8†8Ì 8�8“8˜8Þ 8ß 8ß 8â 8â 8â 8ä 8å 8æ 8ç 8è 8é 8ê 8ì 8í 8í 8ñ 8�8Ÿ8Ÿ8Ÿ8¤8¦8¦8¦8­8¯8¯8¯8ó 8õ 8õ 8õ 8ö 8÷ 8µ8·8·8·8¹8½8½8Ê8Í8Í8Í8Ï8Ò8Ò8� 8ƒ 8ƒ 8ƒ 8… 8… 8… 8ˆ 8ˆ 8ˆ 8Ø8Û8Þ8Þ8à8à8â8â8ì8ï8ò8ò8ô8ô8ö8ö8« 8« 8« 8ý8° 8± 8± 8² 8³ 8´ 8µ 8¶ 8· 8¸ 8¹ 8º 8» 8¾ 8¿ 8à 8à 8à 8†8†8†8Ç 8�8�8�8Ë 8—8—8—8Ï 8ž8ž8ž8Ó 8£8¥8¥8¥8Ø 8Ù 8Ù 8Ú 8ª8­8­8­8±8´8´8»8Á8Å8Å8Þ 8ß 8à 8á 8ã 8ä 8å 8æ 8è 8è 8ë 8í 8í 8í 8Ì8Ì8Ì8ñ 8Ó8Ó8Ó8õ 8Ù8Œ 8� 8Ž 8� 8� 8� 8‘ 8“ 8” 8• 8• 8• 8– 8– 8– 8– 8™ 8™ 8™ 8š 8š 8š 8š 8� 8£ 8ª 8« 8¬ 8­ 8¯ 8¯ 8¯ 8¶ 8¶ 8¶ 8¾ 8¾ 8¾ 8à8ã8ã8ã8 8à 8è8ê8ê8ê8Ñ 8Ñ 8Ó 8Ô 8Ö 8× 8Ù 8Ú 8Û 8Ü 8Ý 8Þ 8ß 8à 8ó8ó8ó8ä 8å 8è 8ë 8ì 8í 8ù8û8û8û8Š8Œ8Œ8Œ8ô 8ö 8ø 8ø 8ø 8’8•8•8•8ÿ 8�8ž8ž8ž8Š8¤8Ž8Ž8Ž8–8–8–8œ8œ8œ8œ8 8 8 8 8®8³8³8³8¶8»8»8È8Í8Í8Í8Ð8Õ8Õ8©8ª8Ü8ß8ß8ß8º8º8º8¼8¼8¼8¾8¾8¾8À8À8À8Â8Â8Ä8Ä8Æ8Æ8Æ8È8È8È8Ê8Ê8Ê8×8×8Û8ß8ß8ß8è8è8è8å8å8é8õ8õ8ù8ý8ý8ý8ñ8ñ8ñ8ƒ8ƒ8‡8’8’8’8–8›8›8›8ú8ú8ú8œ8œ8œ8 8¯8´8¸8¸8¸8Ñ8Ò8Ö8Ö8Ö8Ú8´ 8· 8· 8· 8¹ 8¼ 8¼ 8Á 8Æ 8É 8É 8ë8ì8í8î8ï8õ8÷8ù8û8ý8þ8ÿ8‚8‚8‚8Í 8Ï 8Ï 8Ï 8…8Ó 8Õ 8Õ 8Õ 8ˆ8‰8Š8Š8‹8‹8Œ8Œ8�8�8Ž8Ž8�8�8‘8‘8’8’8“8“8”8”8•8•8–8–8—8—8˜8˜8™8™8š8š8›8›8œ8œ8�8�8ž8ž8Ÿ8Ÿ8 8 8¡8¡8Ú 8Ü 8Ü 8Ü 8©8©8©8¬8­8Á8Å8Å8Å8Ð8Ö8Û8à8à8à8ê 8ê 8ê 8Ž8�8‘8“8”8•8™8™8™8¥8¦8§8¨8­8²8²8²8î 8ð 8ð 8ð 8»8¾8¿8¿8À8À8Á8Â8ö 8ø 8ø 8ø 8Ê8Í8Î8Î8Ñ8Ñ8Ò8Ó8ý 8ÿ 8ÿ 8ÿ 8Û8Þ8ß8ß8à8à8á8â8…!8‡!8‡!8‡!8ä8ç8è8è8é8é8ê8ë8Ž!8�!8�!8�!8í8ð8ñ8ñ8ò8ò8ó8ô8”!8–!8–!8–!8ü8ÿ8€8€8�8�8‚8ƒ8š!8œ!8œ!8œ!8‹8Ž8�8�8�8�8‘8’8¢!8¤!8¤!8¤!8ª8¯8°8³8³8´8´8µ8¶8·8¹8º8º8»8»8¼8½8À8Á8Á8Â8Â8Ã8Ä8¼!8¾!8¾!8¾!8Æ8É8Ë8Ä!8Ç!8É!8É!8Í!8Í!8Ï!8Ï!8Ñ!8Ñ!8Ù8Ù8Ù8×!8Ú!8Ú!8Ú!8Þ!8à!8à!8ä!8ä!8æ!8æ!8è!8è!8â8ã8ä8å8æ8ë8ð8ó8÷8ú8ì!8î!8î!8î!8ð!8ó!8ó!8Š8�8�8�8÷!8ù!8ù!8ù!8�8ÿ!8„"8†"8†"8Š"8Š"8Œ"8Œ"8Ž"8Ž"8”"8™"8›"8›"8Ÿ"8Ÿ"8¡"8¡"8£"8£"8¬"8­"8®"8¯"8°"8µ"8¹"8¹"8¹"8½"8À"8Ä"8Ç"8ë"8í"8í"8í"8ï"8ò"8ò"8×"8Ú"8Ú"8Ú"8÷"8ù"8ù"8ù"8ß"8€#8ƒ#8ƒ#8ƒ#8æ"8Œ#8�#8Ž#8�#8�#8•#8™#8™#8™#8�#8 #8¤#8§#8Ë#8Í#8Í#8Í#8Ï#8Ò#8Ò#8·#8º#8º#8º#8×#8Ù#8Ù#8Ù#8¿#8à#8ã#8ã#8ã#8Æ#8è#8ê#8ê#8ê#8£8£8¥8¥8¨8©8ï#8«8­8®8°8°8±8³8³8³8…$8ˆ$8ˆ$8ˆ$8Š$8�$8�$8¸8¹8Å8Æ8È8È8É8É8œ$8Ÿ$8Ÿ$8Ÿ$8Ø8Ù8Ú8Û8Ü8Ý8Þ8ß8à8á8â8ã8ã8ä8ä8å8å8©$8©$8©$8­$8­$8­$8ù8ù8ù8²$8²$8²$8Î$8Î$8Î$8ˆ8ˆ8ˆ8Š8‹8Œ8�8�8’8”8”8•8–8—8š8›8ž8¡8¢8¤8¥8¨8©8«8¯8³8´8µ8¶8¸8º8¼8Ä8Å8Æ8Ë8Ì8Í8Ï8Ð8Ñ8Ô$8Ö$8Ø$8Ø$8Ü$8Ü$8Þ$8Þ$8à$8à$8ø8ú8ú8ú8ý8þ8ÿ8€8�8‚8ƒ8„8…8‡8ˆ8å$8ç$8ç$8ç$8Œ8�8ì$8�8�8�8’8“8”8•8—8˜8™8ñ$8›8›8›8�8Ÿ8 8¢8¤8¥8¦8§8®8¯8°8±8²8³8´8µ8¶8¸8º8¼8½8À8À8À8È8É8Ê8Ë8Ì8Í8Î8Ð8Ò8Ó8Ô8Ô8Õ8Ö8×8Ø8Ù8Ú8Ü8Ü8Ü8Ü8á8á8á8â8â8â8å8å8å8÷8÷8÷8÷8ú8ú8ú8ú8ý8ý8ý8ý8½8¿8Á8Ã8Å8Ç8ú$8Û8Ý8à8á8â8ã8ä8å8æ8ç8è8é8ê8ë8ì8ï8ï8ï8€%8ƒ%8…%8…%8‰%8‰%8ö8÷8ø8ù8ú8ü8ü8ü8ÿ8�8„8Š8Š8Œ8Œ8�%8’%8’%8’%8”%8–%8–%8š%8š%8�8‘8 %8£%8£%8£%8¥%8§%8§%8«%8«%8—8˜8™8š8›8œ8�8°%8²%8²%8²%8´%8·%8·%8 8¡8¢8£8¤8¥8¦8§8¨8¼%8¾%8¾%8¾%8«8«8«8Ä%8Ç%8Ç%8Ç%8¯8°8³8Ò%8Õ%8Õ%8Õ%8×%8Ú%8Ú%8µ8¶8à%8å%8å%8å%8ç%8ê%8ê%8¸8ñ%8ó%8ó%8ó%8õ%8ø%8ø%8»8„&8†&8†&8†&8ˆ&8‹&8‹&8Â8Â8Â8�&8’&8’&8’&8Ê8Ë8Ì8Í8˜&8Ð8Ñ8Ò8Ó8Ô8Õ8Ö8×8Ø8Ú8Ú8Ú8Ÿ&8Ÿ&8Ÿ&8Þ8ç8è8ê8¼ 8øµ¸’Ã�…�—£«µ…ììªö í¾îÀöïßðîñÿò�ó®ôÁõ¹öè÷†ø›àÞ=ò0IŸgÛèöÛè…ÿÿ½÷€Ø�Û™htîáTÎ~Ÿg êö ê…††ó÷ˆý‰±)Š–ø‹—Œ½!�Àö޹�Èb¢hA;²Ð–�Ÿgöêøöê…””áø–ò&—ˆù˜Õ ´gëö‚ÆOóë…œœ²ùžò&Ÿ¦  ¡ä¢¥ £ôù¤–úʞÑ'¥[âóëÄQŸŸ“)¡±)¢Ÿ3OE¡H8-�…¨¨Éúª§+«½+¬¥ ~U$FQCóëŸg¨îˆ³³£û´î#µÿ#¶Ž$‹â�—âæÈË…‚ïù ‚ïŸg‚ïÄQÇÇž,ÊýËÇ,=Èd4Í;ù_��ŸgÒÒù,ÔŽ-ÕÕÖ -ð h?¼Ù·�Ÿg½½çû¿¶ÀÇ,sZH.Ý^]�ÄQ‰ñŸgÄÄ­üƱÇÞüøø˜ÝçèL¢�ÄQÚñ…ËËüü̦ 3’±]ù»EŸg¬ò…ÑÒÓÃýÔóÕÖÛý×óØÙûýÚÛ•þÜÝ´þÞ×þßóþà€ÿáóþ@pÕëü;rŸgìò�¬ò¤g¬ò…ææŽèû3ùéŠ4ù½Á¸ûANˆ`ýŸgÇôŸgðð�€ôº€ùõÇ,ùgbò+m¢3Þ2ýÄQ™õ…ûû½÷ü„ùÎÙBN‘ð¯Ÿgùõöùõ…��ó÷ƒý„±)Â…—†Àö‡¹ÂˆÈÂÚð5\Yt¬ióëŸgÅöøÅö…ŒŒó�Žï5Â�ˆùÂ�ã‘¥ Âñ¼8+åíÕ�óë…••²ù—ò&˜¦Â™ Âšä›¥ œôùÂ�–úÂ{ü9TäkÉ óëÄQçç“)ê±)ÂëŸÂŒ×®Ç¦T=…�¬ðŸgµùÄQõõž,øË!ÂùŽ-ÂÁÊVIç †x�¬ðŸg‹ú…¡¡ù,£Ž-¤Î2Â¥�B¦�B§¥ ¨½+©ÁBÂi…,Cw6�ŸgáúŸg““çA•Ž-–Î2—�B˜�B™¥ š½+›ÁBÂ]öÆî®W¸�Ÿg­­�„® %ÂÜV¬ãS9…±±¢„³½!¦ >¼B�y�õŸg¨ýŸg··Õ„º½!¦»Ÿ¦°z'“Hh�ýÄQíý…ÀÀ¤…Á¹•¦òdÅÿFÅÊ“ŸgÆþø �®þ…ÅÅÌ…Æä…ÇŽ-È÷…É�†Ê™†bNÜFndÄ'ŸgšÿÌšÿ�Çšÿ÷±šÿšÿ…ÔÕó†Öÿ†×‹‡Ø¦‡Œäg—q¡¹Ÿg±€�±€¤g±€…ÝݪöÞîÅßÝÅà†Åá›Åïøv>³>Ÿg��Ÿgææ�ˆ èØÅéõ.Åê„Å뽈ÅìÓˆÅíàˆÅîúˆÅÅð–‰Å»7x~kqü�ŸgŒŒ‡SŽ„ø�¨Sø�¾Sø‘ÐSøÝS ×UÀ´�…ôôȉõ؉ø§ÆÎÂÿ^§Ÿgƒ„̃„�ǃ„÷±ƒ„ƒ„¯²ƒ„ƒ„탄Ÿgƒƒ¶Š„ƒ ²…Ί²Ú-C–¬ŸgˆˆéЉղtæùe¸’‚†µ††ó÷ˆý‰±)Š–ø‹—Œ½!�Àö޹�Èb¢hA;²Ð–…C…CüˆCbufÁÐ=‰C¶Ð=ò¹ÚàÅÅFÅFÆFGlobalÁ Ä› +ÉшŒŒ‘‹� ‹ŽË �³‹�Ä‹‘Õ‹’æ‹“÷‹”ˆŒ›ŒT' …ð‡ù ð‡Ÿgð‡ˆ›œ�ÎŒžŸߌ ¡öŒ­YÎÎþžú…š‰ù š‰Ÿgš‰Ìš‰�Çš‰÷±š‰š‰…­ ®Ö�¯¥ ·°ë�±Ë!·²„޳ -·´šŽµñ¢·¶¥ ···Ž¸…+·¹ÓŽ·º¥ ·»î޼…+·½ÓŽ·¾¥ ·¿ùÀ¡�·Á³�¡�·ÃÄÐ�Åá� Æ…+·=,Ïü3ÆûŸg²ŠÌ²Š�DzŠ÷±²Š²Š…Ðн÷ Ñ…+·ÒÕ·Ó‚a·Ôëf·ÕØ�·Ö³f·×Š4·Ø‘g·Ù�p·u~¾‚Ž?“ Ÿg³�ö³�…ààªöá³fñâŠ4ñãÇfñäÝfñåûfñæ‘gñ“ÙSëªÐkŸgàŽöàŽˆíîï§’ðñ·’òó­‡3¹æŒ÷Œ…è�ù è�Ÿgè�öè�…úúý’û�“ñüØñýåñþ«“ñÿ½“ñ€Ï“ñ´Æ;hŸgã�ˆ……ü“†‚‡’ô�ËÞJÕÍ…ä‘ù 䑟g䑟gŽŽÔ�åñ‘ƒñ’´ñ/Ðãia†Ý�…––Œ•—�•ñ˜­•ñ©YÚ�«å~Ÿg™“…��Ù•žË!ñŸ¯ñgÕ—ô¢ ßgè“…¤¤“–¥‚ñ¦’ñÙ‹^„ øŸgµ”…««üü¬¦û P…ÌݵeÅŸg‚•…±²³‹—´óû µ¶¦—·óû ¸¹×ºóû »Ü—¼ó—û ½óþû ¾ûý¿ó—û Àóþû Á¤˜Âóþû ÃƘÄ÷û ÅÆé˜Ù½¤ãѬ>ŸgÕ�‚•¤g‚•…ËË£™ÌÕ‘ ÍŠ­‘ ¥b.ßZŸgê—ŸgÐÐÔ™Ò¯s‘ Ó -‘ ÔC‘ Õï5‘ ó!ƒYÖ £ò�…ÙÙù,Ú -‘ Û¯s‘ õÔ QU´ðäö—™Ÿg—™ŸgààΚâ -‘ ã¯s‘ äýš‘ ÿ„‚�D›p�ÄQèè ›éÿ†‘ ê¥ ‘  )ÔiZÝ>…Κù ΚŸgΚ…ïïڛ𙻠ñÀÛ» òƒ » Ó¥è›ôŸ(Ÿg²›…÷÷£œø™» ùÜ» úŽ» £[?ÇS¯®ŸgŒœöŒœ…��üœ‚™» ƒÀÛ» „ƒ » _ÔFŠ$wRÄŸgñœ…‰‰Ä�Š”‹‚Œ’‡Ô mÓ�ŸgË�öË�ÌË��ÇË�÷±Ë�Ë�…˜˜¶ž™™» šÜ» ›Ž» ,ÝÕ~õÔOíŸgÍžöÍž…¢¢£Ãý¤óÖ  a’r±Ô Ÿg²Ÿö§§¯Ÿ¨ÕÖ ©õwÖ ª‹xÖ «‚aÖ ¬ÙxÖ ­«xÖ ®®Ö ¯ëxÖ °î#Ö ±³fÖ ²Š4Ö ³‘gÖ ´¦yÖ µºyÖ ¶¬ Ö { uÏÈ'½Ÿg÷Ÿ…¹ ºë�»Ë!¼½„޾ó¿Àû ÁóšŽÃñ¢Ä¥ ÅùÆ¡�ÇÀ¡ÈÓ¡Éß¡Ê`Ë¥ Ì…+Íӎμ�ÏÐÐ�Ñá�Ò…+@¾vÑyrQÌá¡�Çá¡÷±á¡á¡Ÿgá¡…ÚÚߢÛ -+Y–ÓyªÓŸg©¤Ì©¤�Ç©¤÷±©¤©¤…åå¹£æ -¶œ>,�¡ŸgŽ¥ÌŽ¥�ÇŽ¥÷±Ž¥Ž¥ˆðð ›ñ‚ò’ó¥ •þ„Wµ ­…ó¥ù ó¥Ìó¥ûhó¥�Çó¥÷±ó¥ó¥Ÿgó¥Ÿg€€þ¤‚Ç,Ö ƒ¡¥Ö /�#U"ˆ�ÄQ‹§…‡‡Å¥ˆÕÍ ‰Þ¥Í Šê¥Í ‹±‡Í Œ…¦Í �—¦Í °‚4¥´ºë…��ù,‘ -Í ·)ú7Nñä¼…”” ›•†AÍ –æ¦Í ›6œ%ñ1Y…™™‚§š’§Í › §Í {Ã*ƸŠ�ŸgΩ…  ȧ¡öÍ ¢à§Í ¦+m£‹ÏÄÑŸg�ª…§§†¨¨öÍ ©†€Í «¶Í (ÄX\¯ hŸg명°°Ш±¾SÍ ³¶Í ©Þ;¢]Ú)ŸgÅ«ÌÅ«�ÇÅ«÷±Å«Å«ˆ¾¿À©ÁóÍ ÂÃÚ©ÄóÍ ÅÆÎŒÇóÍ FÌÖ4ÓÙ£…¹¬ù ¹¬Ÿg¹¬Ì¹¬�ǹ¬÷±¹¬¹¬Ÿgß§ŸgÖ¨Ÿg‹©ˆÓÓÔ˪Õó™  ‡Ö~­¥_…–®ù –®Ì–®�Ç–®÷±–®–®¯²–®–®í–®ˆãäåÀåæó™ çèÚ«éó™ 4‡M¹r«……¨¯ù ¨¯Ì¨¯�Ǩ¯÷±¨¯¨¯¯²¨¯¨¯í¨¯Ÿg–®ˆ÷÷ø¬ùó™  �åfll4…â°ù â°öâ°Ÿgâ°Ÿg€€ƒ­‚ˆù™ ƒŸ™ °ê:¸fî(¾�ÄQȱŸg‡‡Æ­‰ˆù™ Š÷­™ ‹‡®™ Œ—®™ îÔ`HÅHîÝ�ÄQœ²Ÿg��¾®’ˆù™ “è®™ ”ÿ†™ &´ƒ+¼ì�ÄQ‹³Ÿg˜˜“¯šê„™ ›†A™ ϺÖÒ‰ò}�ÄQí³…ŸŸ ߯¡ó™  Ö“K°ë›Ê^ŸgÁ´öÁ´ˆ¦¦š°§¼™ <¦ëG`#G&…‘µù ‘µŸg‘µö‘µÌ‘µ�Ç‘µ÷±‘µ‘µˆµµ¶€±·ó™  „�ܹÀþò…š¶ù š¶öš¶Ìš¶�Çš¶÷±š¶š¶Ÿgš¶ŸgÆÆì±È %™ ɘ™ í½i'ÊÁ�ÄQ§·ŸgÍͬ²Ï %™ И™ J:¹f§Øî�ÄQú·…ÔÔ¦—ÕÙx÷ Ö÷Œ÷ ׬Œ÷ ÚÌkÀ÷½ÀŸg͸Ÿg° ° ׌² ÷Œ÷ ³ ‚�÷ tQ¥Å²A��Ÿg· · ¸ £�º ó÷ » ô÷  3ôyJÊ-§�…ÚÚ¡³Ü‚�÷ ݃ ÷ בÃ˰8�Ÿg¾ºÄQ¾ºŽQ¾º¼T¾º…ääåÿ³æó÷  îL„&ß·Ÿg³»ö³»ŸgííôîÙ´÷ ïì´÷ ð�µ÷ ñ¬ ÷ 5ùœÐ&E37öƒ¼…öö¸µ÷¦÷ Ò›ÍâÚ«!Ÿgì¼…üýÜ—þ»\÷ ÿ›¶€¿‰÷ �¹¶÷ ‚ȶƒ¿‰÷ „æ¶…¿‰÷ †‰·‡¿‰÷ ˆ‚ ÷ z… lÐ*&Ÿg­½�켤gì¼…��Å·�Ç,÷ ZŸ×]áû”�Ÿg…¿ÄQ…¿ŽQ…¿¼T…¿Ÿg––œ¸˜Ùx÷ ™Ÿ÷ šѸ÷ ›ƒ ÷ Ë?jUªÍ÷�ÄQí¿ˆŸŸ �¹¡ó ™ =‰mÔª†…ÚÀù ÚÀŸgÚÀŸg��‘ñ““ó –| ?õƒ�ˆ¦¦¶¹¨й—©’—Ôx³±5{:�…ïÁù ïÁŸgïÁÌïÁ�ÇïÁ÷±ïÁïÁˆ¼¾¿ªÀó—Á†»Ãó—¾ R#/�…€Ãù €ÃŸg€ÃÌ€Ã�Ç€Ã÷±€Ã€Ã¬€Ã �¬¼¾¿ªÀó—Á†»Ãó—¾ R#/…ÖÖœ¼Ø¬—®Ù½¼®PM 5ü2¬ÎÞ2Ÿg“ÅÄQÌÌû™ÏÇ,®Ð­š®bRŸrqSø”Þ2‚ŸgèÅŸgààáý¼äó® %™ÿpõnÞ2ªÆÄQÂÆÄQêꃜíÇ,®î­š®> ê ÛxãÞ2ªÆŸg‘ÇŸgééêνíó® �šiì·jÞ2ªÆÄQéÇÄQˆˆø�‹Ç,®Œ‚�®�­š®:Ò;×,§ØÞ2ªÆŸg¸ÈŸgòòó›¾öó® ‚eݪÂ9`–Þ2ªÆÄQ�ÉÜ"££¤П§ó¡ C‚-Ž-kÔ›óëªÆŸgìÉÿ ÁÁПĹ¡¹ÅÅ¡¹ÆÓ¡¹›Cï© _…óëªÆŸg¹Ê€#¹Êˆûüýò¾þÿ€ ‰¿� ‚ ƒ ž¿„ … † ·¿‡ ˆ ‰ οŠ ‹ Œ é¿� Ž � ‚À� ‘ ’ �À“ ” • ¾À– — ˜ ÛÀ™ š › þÀœ � ž žÁŸ   ¡ ¼Á¢ £ ¤ ÞÁ¥ ¦ § þÁ¨ © ª ¢Â« ¬ ­ Ä® ¯ ° ê± #Ñï±`Eˆ…¨Ëù ¨ËŸg¨Ę̈Ë�ǨË÷±¨Ë¨Ëˆ½ ½ Ñþ ¼mŒÚ9†1…ãÎù ãÎöãÎÌãÎ�ÇãÎ÷±ãÎãΟgãÎ…Ê Ê ªÄË  %ÛQBD|�¸’ŒŸgéÏÄQéÏ…Ð Ð ßÄÑ òÄÛŠúç�z²ƒqŸgµÐöµÐ…Ö Ö × œÅØ óÛ ]w•ÝkÂD Ÿg‚Ñ�‚Ѥg‚ÑŸg¯¯°¡­³ó® �"0ùãÑóëªÆÜ"ÆÆÇ�¯Ëó® V ÜÞAçƒ�¬ð‚é"ŸÒŸgŸÒŸgä ä å ÎÆç óá �Éœ2ÌÛŸŸóëÿ öö¡­ùÅ¡áúƲáûÔ²áüá²álL³_Òj¯»óëªÆ•š¾Ó–š¾ÓŸg¾Ó€#šš�¯ž•­áŸ�á ±µáQzÆ%þ�ç�¬ðÜÒŸgÇÔ…ë ë ‰Çì œÇ´ë–Üѽ߮ÕŸg°Õ¸°Õ…ñ ñ ò š°ó óà uÉ·o›FŸgýÕ¸ýÕ…ù ù ú úÇû óÔ :Œ#KµI*ŸgÍÖ¸ÍÖ…€!€!�!¯È‚!óÔƒ!ôÔ cz[³¹ÞŒŸg�׸�×…ˆ!ˆ!‰!íÈŠ!óÔ‹!ôÔŒ!õÔ ãêGKê<¸ŸŸgù׸ù×…‘!‘!³É’!œÇõûœ‡Ú�8éŸgáØ¸áØ…—!—!äɘ!œÇ„Kî'`j«ù€Ÿg®Ù¸®Ù…�!�!”Êž!Àö³Ÿ!Í·³ !‰¾³|‡þ=I¢˜™ŸgûÙ¸„K„KK‡Kí ä7ˆKphantomÁä7‰K«ä7ƒ¢3à6ú�Œ½‡…¥!¦!§!úǨ!ó©!ª!¯È«!ó¬!­!íÈ®!ó¯!°!³É±!ó²!³!äÉ´!óµ!¶!š°·!ó¸!¹!‰Çº!óž/ѯÈù>Ÿg´Ûˆ¿!¿!À!œÌÁ!óÍ ÝŸëÏR{ … Ýù  ÝÌ Ýûh Ý�Ç Ý÷± Ý Ý¯² Ý Ýí ÝŸg ÝˆÒ!Ò!Ó!¡ÍÔ!óÍ µi#²?h Û…ÈÞù ÈÞŸgÈÞöÈÞÌÈÞûhÈÞ�ÇÈÞ÷±ÈÞÈÞ¯²ÈÞÈÞíÈÞŽý óëÈÞ¨#üßÈÞŽý…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅó뽇ÈÞ¨#œàÈÞ¬ÈÞ³ÈÞ³ÈÞ³ÈÞ³ÈÞ…é!é!¾Îê!øÃÍ3ÉüxÄŒc|Ÿg¿áÌ¿á�Ç¿á÷±¿á¿á�¿á¤g¿á…ô!ô!—Ïõ!­ÏÍ-‰Ø?�ãû=Ÿg¾âÄQ¾âˆú!ú!û!ÒÏü!óÍ  +[¤¿öTƒ…‹ãù ‹ãö‹ãÌ‹ãûh‹ã�Ç‹ã÷±‹ã‹ã¯²‹ã‹ãí‹ãˆ�"�"�"áБ"óÍ ÄVÆ—r`…³äù ³äö³ä̳äûh³ä�dzä÷±³ä³ä¯²³ä³äí³äŸg‹ãŽýüß‹ã¨#üß‹ãŽýœà‹ã¨#œà‹ã¬‹ã³‹ã³‹ã³‹ã³‹ã…ç"ç"è"ÙÕé"óÍ X)ESµ4ŽŸgêæÌêæ�Çêæ÷±êæêæ�êæ¤gêæ…ó"ó"ô"µÖõ"óÍ ÍÜ JFñùŸgìçÄQìç…ú"ú"ñÖü"Ç,Íý"؉͵ÝwÃ7{t0…Ÿg¼èÄQ¼èŸg³äŽýüß³ä¨#üß³äŽýœà³ä¨#œà³ä¬³ä³³ä³³ä³³ä³³ä…Ç#Ç#È#¸ÛÉ#óÍ •W-#íx—âŸgªê̪ê�Ǫê÷±ªêªê�ªê¤gªê…Ó#Ó#Ô#’ÜÕ#óÍ tÎDá:†Ÿg¬ëÄQ¬ë…Ú#Ú#ÌÜÜ#Ç,ÍÝ#؉Í2íãȳ‹Õ"øèŸgüëÄQüë’øè…ä#ä#ªöå#–Æ—æ#©Æ—dkõØŠhãúŸgäì…ë#ë#ÛÝì#ƒ —Óç‚j²1˜Ÿg³íˆð#ñ#ò#’Þó#ô#õ#¯Þö#÷#ø#ÉÞù#ú#û#ßÞü#ý#þ#÷Þÿ#€$�$�ß‚$ãs0¿m…ôíù ôíŸgôíÌôí�Çôí÷±ôíô툎$Ž$ªö �$óȺ�$‹Éº‘$�ɺ’$¹Éº“$Åɺ”$Üɺ•$îɺ–$‡Êº—$³fº˜$žÊº™$°Êº©ÍüéÀ‹àñ…Ëïù ËïŸgËïöËïŸg $ $‡á£$¦á¥$¹•º«ƒ"¹Áþ¬ðŸgª$ª$ßá«$õáè,ò(ò¹¤g÷ñ�÷ñŸg®$®$¯$Žâ°$óè TÞg3v~MùŸg³$ ´$Üâµ$ëâè¶$öâ·$õáè¸$•ã¹$õáèº$²ã»$§è¼$Ñãè½$Þã¾$§è¿$ÑãèÀ$…äÁ$©èÂ$ŸèÃ$®äÄ$§èÅ$ËäÆ$õáèÇ$ÒÏÈ$»\èÉ$õáèÊ$áÐ Ë$»\èÌ$õáèì¸Nm9\'�Äò¤gÄòÃÇ‹GE¸¾d›œÃÈ2cü»5á…Ð$Ð$Ñ$ù,Ò$óç Ç’e�0‚yÌ©öûh©ö�Ç©ö÷±©ö©ö¯²©ö©öí©öÍ©ö Ÿg©ö…á$á$â$¤æã$óç íoðȶç4ŸgÉ÷…è$è$é$äæê$óç ¢OÆËàº-ŸgŽø…í$í$™çî$½ çï$¸çç˨ƒÈ ê~ÛŸgÓøŸg¨¨©¦Þ«óç ò^yÏŠu÷-��…�—£«µ óë…ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Þ2Ÿgªú¬ªú Þ2„ˆû$û$§èü$‚ý$’œë4LÙ…°ûù °ṵ̂ûûh°û�ǰû÷±°û°ûŸg°ûŽý³÷°û¨#³÷°ûŽý°û¬°û¶ý¶ý¼¸ý‚¹ý’}£²ËJüü ¬ðü°û÷±°ûðü÷±ðü°ûˆŠ%Š%Žé‹%¿‰ÉŒ%Ñ É€Ómž›µ…áýù áýŸgáýÌáýûháý�Çáý÷±áýáýˆ›%›%á�œ%¿‰É�%¸ëÉsAƒ�H.ÿ…÷þù ÷þŸg÷þÌ÷þûh÷þ�Ç÷þ÷±÷þ÷þ…¬%¬%ûê­%¶É®%•ëÉÏ#¦�c•ZŸgŽ€ÌŽ€�ÇŽ€÷±Ž€Ž€…¸%¸%Ûë¹%øÃɺ%ÀÛÉe{)ÑÿÄ6Ÿgƒ��ƒ�¤gƒ�…¿%¿%¤ìÁ%Ç,É @›—ªÎ®�Ÿgè�ÄQè�ÔPè�ˆÈ%É%Ê%ýìË%Ì%ŒíÍ%Î%œíÏ%ó›àm…åÁ…Å‚ù Å‚ŸgÅ‚ÌÅ‚�ÇÅ‚÷±Å‚Å‚ˆÛ%Ü%Ý%§’ë%ì%éîj®+ n…æƒù æƒö惟gæƒÌæƒ�Çæƒ÷±æƒæƒ…í%í%î%ƒïï%óÉ x›»rŸTŸgø„Ìø„�Çø„÷±ø„ø„…ù%ú%ó†û%ÿ†ü%Ñ ý%‹ðþ%Ñ ÿ%¡ð€&¶�&‹‡‚&¦‡LrÃåuï0Ÿgä…Ìä…�Çä…÷±ä…ä…�ø„¤gø„…Œ&Œ&‹ñ�&�ñŽ&©ñø€¯´váÅŸg¬‡…“&“&Ïñ”&¶Ã•&±Ã–&ï5Ã76YÆ ùFŸgù‡Ÿg™&™&š&…òœ&óà ð?ü¥½¢�ÄQÒˆùì‚ÿ�†™”¥œ­¨¸³ÍËâÑêæýû‰�’Œž•ª¡´±ÃÀËÅÙÔâÝöô–Œ£›Ç­ÚÐçàõí�ú‰…™– �§¤­«Ç±ÎËÜÙìèóïû÷…��‰œ˜¥¢Ó¹ÜÚçåõðŽ‡’�—”œ™£ ¬§´°É¾×Óëãü÷¢Ÿ©¦ºµØÔÞÚçäøö‰ü��£Ÿ¬¦Æ¼ÚÖ³ ûÀ ½ Ì Ê Ò Ð Ù Ö í ë õ ñ ü ù „!€!�!ˆ!“!‘!™!—!¡!�!»!¥!Ã!¿!Ö!Ò!ë!é!ö!ô!þ!ú!“"�"ê"ç"ö"ó"þ"ú"Ê#Ç#Ö#Ó#Þ#Ú#ç#ä#î#ë#„$ð#›$Ž$Ó$Ð$ä$á$ë$è$ð$í$ø$ò$ÿ$û$Ž%Š%Ÿ%›%¯%¬%»%¸%Â%¿%Ñ%È%ß%Û%ð%í%ƒ&ù%�&Œ&—&“&ûì„ÿȆ°¨»³ÝÒÁ½ÈÄÏËäÑíæöðÿûœ�ñçÿõ�¡Ÿ“¯­Í±¼·æÀÍÅÛÔäÝñæ’Œøô†ƒŠˆ™Œ¦›É­ÜÐéàøíƒúŒ…“Ž›–¢�©¤¯«É±§ ËÖг Ùå๠èõïý÷‡��‰ž˜— ¢¥ §« ¹ÞÚéåÆ ð„€ž™¥ ®§¶°Ì¾‚ ‡„ �‡ ”ª Ó ÷„€�‡•�œ˜¤Ÿ¬¦ì µÊÆÑÍ® Ô´ ° ¼ · áÚéäòíúö‹ü“�œ–�Ÿ”�±¦Ë¼ÝÖÜÌåàúêî阈÷òµ£ÓÁ¶ û�½ Î Ê Ô Ð Û Ö Â¯ÜÆè ä –ö®šï ë ÷ ñ þ ù †!€!�!ˆ!•!‘!›!—!£!�!½!¥!Ø¿!Ù!Ò!í!é!ø!ô!¸"ú!ì"ç"ø"ó"�#ú"˜#�"Ì#Ç#Ø#Ó#á#Ú#é#ä#²ë#‡$ð#ž$Ž$¦$ $¬$ª$±$®$Í$³$ùÐ$æ$á$Žè$ší$¾¨íò$ûû$‘%Š%¢%›%±%¬%½%¸%Å%¿%Ô%È%ä%Û%ò%í%…&ù%‘&Œ&Ù“&�&™&ýìtÿÀûÞÐëਠíÞÙÿ÷‘‰ ˜·§À ÷Ô Ÿ®¦¾µëäôíà ½ ¢Ð Û!Ò!�"ú!–"�"æŽ$â%Û%ˆŸ�› £ŸÌÇà½åĬðìçúõзµ àÉ €Ä €È ‡Ì �Ð ˜î Æò Í¿ Úü �‡–×Ìåàõêƒé’ˆœòƒÊ Žô!Ý"ó"ã"ú"½#Ó#Ã#Ú#¬¿%Û™&·³•Œ¢›ô툅ëèôðȾÖÓêãû÷¨¦¹µ¢Ÿª¦Ä¼² û¿ ½ Â!¿!Õ!Ò!ý!ú!’"�"ƒ$ð#š$Ž$þ$û$�%Š%ž%›%Ð%È%Þ%Û%º³˜Œ¥›÷í‹…îè÷ð˾ÙÓíãÿ÷«¦½µ¥Ÿ¯¦É¼µ û ½ Å!¿!Ø!Ò!€"ú!•"�"†$ð#�$Ž$�%û$�%Š%¡%›%Ó%È%á%Û%õ˾Ô� «õ ö§Ö ‹é!Ø"ç"¸#Ç#úª$†®$©¸%Àí%÷Ë¿Ô� «÷ ö¨Ö Œé!Ù"ç"¹#Ç#øª$‡®$ª¸%Áí%ÏÅúô¨›Ë­“‰Õ¹àÚëåøð¸°Î¾ÚÓîã°¦Àµ´¦Î¼¸ ûÅ ½ Æ!¿!Ý!Ò!ï!é!ƒ"ú!˜"�"î"ç"Î#Ç#‰$ð#Õ$Ð$‚%û$“%Š%¤%›%³%¬%Ö%È%æ%Û%ô%í%‡&ù%ÑÅüôª›Í­•‰×¹âÚíåýð»°Ð¾ÜÓð㲦õ·¦Ñ¼º ûÇ ½ Ë!¿!â!Ò!ñ!é!ˆ"ú!�"�"ð"ç"Ð#Ç#‹$ð#Ú$Ð$‡%û$˜%Š%©%›%µ%¬%Ø%È%è%Û%ö%í%‰&ù%ÒÅýô«›Î­–‰Ø¹ãÚîåþð¼°Ñ¾ÝÓñ㳦ĵ¹¦Ó¼» ûÈ ½ Ì!¿!ã!Ò!ò!é!‰"ú!ž"�"ñ"ç"Ñ#Ç#Œ$ð#Û$Ð$ˆ%û$‰û$‹¶ý™%Š%ª%›%¶%¬%Ù%È%é%Û%÷%í%Š&ù%ÿôßÓóãÎ!¿!å!Ò!‹"ú! "�"Ý$Ð$�ôáÓõãÐ!¿!ç!Ò!�"ú!¢"�"ß$Ð$̆úðÈ!¿!ß!Ò!…"ú!š"�"×$Ð$„%û$•%Š%¦%›%Å Úƒ�Ç Ú…�¤¼§¼ûÒ!È"ú!¨#�"ñò$…û$‡¶ý°£ÑÆÇÁýö×Á©š×Æ€öƒö½ë Ìñ Ýù æ€!ïˆ!þ‘!�—!¾„Kí ô…Cº" Á"…Cš# ¡#…Cý ‚ñ ø…C¾" Å"…Cž# ¥#…C€ ýÒ!€Ò!ƒÒ!†Ò!Ê"ú!Í"ú!Ð"ú!Ó"ú!ª#�"­#�"°#�"³#�"•ÊÇÎÈ÷Ð$ƒ‰’�§°· ±¿%…vé!Ÿg¡ºöçø§ÄQ!ˆçù Ë� ˤg TÌ$T�Ç$ü÷±&ü¯²‹í8µ8ûh ŽQ?¼T¬Ü"9ÿ €#é"•š–š¸Žý8¨#)³ %’TÃÍ�…�—£«µÔPü…x& ‡#³äüÒwZ³äüÞw 'F‡#³ä&crate::util::primitives::StateID::ZEROÁ "rust-regex-automata-dfa-dense"Á2ÁÀ§Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Z_ †°®qyðÅřǙș­É™Ê™àË™óG*¤�R{9 řǙș­É™Ê™àË™óG*¤�R{9 ûÙ¡¦ †®¯¸À°é°®ƒ¯( 1è… Å™Ç™È™­É™Ê™àË™óG*¤�R{9 æƒ\a †©± s |è¨ Å™Ç™È™­É™Ê™àË™óG*¤�R{9 š‰\a †ª² s  |øË% °®ƒ¯ )  2Ðö°®ƒ¯( 1ø–#°®ƒ¯) 2À¿Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ‘µ\a †Ï´s  |øÝ% °®ƒ¯)  2øˆ% řǙș­É™Ê™àË™óG*¤�R{9 řǙș­É™Ê™àË™óG*¤�R{9 ¡¦ †ˆ¶¸  Áø³- ˆ¶¡·)  2(Ø ì   ÝÜYúhÛèt Ûè°®[ °®g®¯ò ®¯þ°®Bÿ¸K©± ©±*ª²² ª²¾°®Fÿ¸O°®!ÿ¸*°®ýÿ¸Ï´Ø Ï´ä°®lÿ¸uˆ¶G ˆ¶Sˆ¶–ºŸr} ƒ¯\Ȱ僯'þ±øÿ²~ƒ¯ƒ¯Ôƒ¯¥¤µuƒ¯û¡·Ë¡· ®¯–(ß ü ä­ À§°® ŸgðÅ ®¯  ¨¼°é °®  ¨¼è…©± ¨¼è¨ª²¨¼øË%°®¨¼Ðö°®¨¼ø–#°®¨¼À¿Ï´¨¼øÝ% °®¨¼øˆ% ˆ¶¨¼ø³- ˆ¶"¨¼  ¨¼    ?L  ¨¼b kä­x!  ä­�– ãg¨ ®!´ºÃäüÝãê"ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwĤĤŤœÃ Ñâó:½ÖàMpë¸y €g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¾ð»ÇµÀÐ ¨¼ ê²Ãó¨¼Ñÿ¸Ú¨¼´”¹½¨¼ ÿ¸©¨¼Œ»¹•¨¼xй�¨¼dÿ¸m¨¼Oÿ¸X¨¼;ÿ¸D¨¼&›º/¨¼ÿ¸¨¼ýº¨¼è ºôºýä­àáÀéóœƒ ‘$ ÿ¸¨¼”¹¨¼âÿ¸¨¼Æ»¹¨¼ªй¨¼Žÿ¸¨¼rÿ¸¨¼Uÿ¸¨¼9›º¨¼ÿ¸¨¼º¨¼ã¢Å¨¼ÆøÀ§Ybä­oW`ä­mU^ ä­kS \ ä­i Q Zä­g  N W ä­d  LUä­bIR ä­_GP ä­]DM ä­ZAJ ä­W? ä­ " ä­  z‰üšð»§ò»°ä­_ä­hä­Kä­Tä­7ä­@ä­#ä­,ä­ä­ä­úä­ä­æä­ïä­Ñä­Úä­½ä­Æä­¨ä­±ä­“ä­œ~À§ ÷°®ðÅ ÷®¯°éõÌ è… ÷©± è¨ ÷ª² øË% õÌ ÐöõÌ ø–# õÌ À¿ ÷Ï´   øÝ% õÌ   øˆ%  ÷ˆ¶   ø³- ËÏ   8æ ì     íìYþh Ûèt°®®¯ú°®ß©±Éª²­°®‘°®z°®dÏ´M°®1ˆ¶ˆ¶ýæ õ̉™ÍlõÌOÜÍ7�ÎõÌûõÌâõÌʅϱõÌ“ËÏzËÏ[®¯þpÞ†Ûè †Ûè/7à‘‡ã� †ã�/8(¶† ÿ»†º†>ƒM êY  êdÛèåë¸íã�¹ ã�Ä�šòÒ®ÓèÛè‡(½† ä­pÞ† ä­Ûè*¨¼à‘‡ ä­ ã�*  6 ¨¼œ¡ Ûg²·¤©sxÓ†…í ÏÁù¦ÔÙ ä­ä­¨¼ ë¸ä­ä¨¼ì ÉÔ÷ÉÔÿ[œit븨¼jÈר¼9¬Ö“Ô⎠ã�üâŽ/,Š�®Ó / <Š�(  ¼¤�¬¤� – ìà� íü¤�ZtÑ� œ  R5 üÑ�-ü⎫L‰� µ  ½ Sü‰�„3üâŽÍT›‘ ° £ÛaD¦‘¤›‘üâŽó<½‘ Ç_²Ÿ‚•¬ò îg|Å‘ýÚ Ľ‘øÕ âŽô  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw²Ÿ¬ò¿z‹ žüâŽôm²Ÿ Ö‘ Ö Õ‘[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¸Ä¬©^—¯f¬òb‰ �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw€†¬òœÝò Ú $ô‘Ìà‘tå‘ o$à‘1 ¤å‘ þ‘ÿ‘” üß� müØŽ§·¾ÅšÞ䱎¦Ô,‰Ž  £ÛD˜Ž²ŸÜŽÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^œÝ²Ÿ:¾Û‘ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw²Ÿ‚•'ÉÔr ã�~Ôâ)ã�2ÉÔRàŽÕàŽè�ýœÝ²Ÿ_ ²Ÿ VÝwUõ.XÆ cŽ©ä®Ó΂ٞ»ÙmïÙA±ÚëÚÓ¸ÛŒã�Ŕޚã�Ӹߧ²Ÿ{²Ÿ‚ã�ï°“Õ–ì †–ì/7ˆ°×æì †æì/ 8�óÛ¨î †¨î/ 8€ÎÝ ð‡ †ð‡ / 8ˆÎá ±±¢„³½!¦ >¼B�yóëGL †õæ ^  g°Ÿã ó¯ †ó¯ /  8€û摵 †‘µ/ 8`Ìç‚ï †‚ï/ 8(ÃÓ †óë  ÈÓÇÓ  $ 4 D”’£öê¯ öêº–ìØ –ìäæì± æì½¨î‰ ¨î•ð‡a ð‡mõæ9 õæEó¯â ó¯î‘µº ‘µÆ‚ï’ ‚ïžkv ’å—Îåb‹æ,Èæö´çÀñç[®è%ëèïó¯yõæ€¨î‡æìŽ–ì•t˜ôd˜ô k ü˜ô#T§ô m£ÛKD²ô¤§ô ÀôÁôü°ó‘yšÞäñóòàDØó¦ÔÉ êÑÝwQùìï¨íÇ ê• ê›<±Œ–성Œ4¹Œ òóë4D¹Œ<ÓŒæì„ÓŒ4ÛŒ •óë4DÛŒ<õŒ¨î„õŒ4ýŒ ¶óë4DýŒdœ�ð‡l¾�4Ã� Æóë$¾� DÃ�DÞ� ó¯„Þ�,ç�ñç . <ç�d…Ž ‘µT¦Ž ‚ïü›Œ  †      ÁŽ„üê‹×††ó÷ˆý‰±)Š–ø‹—Œ½!�Àö޹�Èb¢hA;²Ð–ƒòt‚Œ¹ê,ø‹””áø–ò&—ˆù˜Õ ´gëö‚ÆOƒò–Íê¶œœ²ùžò&Ÿ¦  ¡ä¢¥ £ôù¤–úʞÑ'¥[âƒòÖâêö¨¨Éúª§+«½+¬¥ ~U$FQCƒòè÷êð‡Í±±¢„³½!¦ >¼B�yƒòîó¯°¶ëБµ›‚ï�¢FœïþàïÁ¤ð„èðGñç <œ‘–씜‘D¤‘ óóë4T¤‘<À‘æì”À‘DÈ‘ –óë4 TÈ‘<䑨î”ä‘Dì‘ ·óë4 Tì‘d�’ð‡l¯’4´’èð$¯’ D´’+  į’D½’ Áƒò V T½’DÚ’ ó¯„Ú’,ã’ñç . <ã’d�“‘µT¢“‚ïü†‘± †ý†  ½“ ¶“  # 3 üÙ�ä…€†Dó�¹ê,é�””áø–ò&—ˆù˜Õ ´gëö‚ÆOý†œÍ꼜œ²ùžò&Ÿ¦  ¡ä¢¥ £ôù¤–úʞÑ'¥[âý†Üâêü¨¨Éúª§+«½+¬¥ ~U$FQCý†í÷ê ð‡Ñ±±¢„³½!¦ >¼B�yý†¹ “öþ“ö󯒶벑µ|‚ïp·í Ù÷�øÜâøžèð`àù.ñçðÖþe÷ýlóüsœüzd¢—æìš‰´—†üò–Bš‰LŽ—¹ê,„— 1”ê˜æì³í‚™‡ü°˜R ³ílÒ˜¹ê,Ș 4œÖ�æìͶìÖ�<ê� êW8Lê�ù�ˆüž�[$Ç�¹ê,½� Ͷƒ:¸‚„„º¤–ìâ°Ф‰ü…¤K â°d£¤¹ê,™¤ 4<ä°–ì´ä°dì° ýóë4tì°€±Šü¶°J,Ô°¹ê,ʰÍê}8Ï„ƒ|ãº–ìøº‹üºº>,Óº¹ê,ɺ 0<±¾–성¾4¹¾ üóë4D¹¾ǾŒü‰¾>,¡¾¹ê,—¾Íê}8à†ƒ<²Á–ì´²ÁdºÁ ÿóë4tºÁ<×Áæì´×ÁdßÁ šóë4tßÁü²Á; -<üÁ ¨î´üÁd„ ¿óë 4 t„Âü²Á`     - \¡Â õæÔ¡Âd­Â Äóë 4 t­Âü²Á‰   .ÁÂ�ü„Á½,¢Á¹ê,˜Áø€ùÍêÆâêæ­a÷ê��ŒFú¡ë�ŒÞzŸ…ˆnɈ1ʉ·ËŠ=ìÀʼÀÊ úóë$ØÊ)ãÊ�üòÉqÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw��ó÷ƒý„±)Â…—†Àö‡¹ÂˆÈÂÚð5\Yt¬i…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàŽ‡¬òü�Ê(¹ê,ƒÊ /—�|ÜÊØDÏØ ”óëïõ$ÊØ´ÏØëØ‘ü‡Ød��„¯Ø¹ê,¥Ø 5¡�ˆÜÆæDËæ ”óëŒö$Ææ´Ëæçæ’ü†æaå�„«æ¹ê,¡æ 1¶‘„Üÿ÷D„ø¡�$ÿ÷´„ø ø“ü¼÷då�„ä÷¹ê,Ú÷ 1¡�z œƒúdˆú ™óë$ƒútˆúü¹ú&ü¹ú! �Ûú)<¥ú��<®úlªü4¯ü „óë$ªü  D¯ü1 Ëü Hß Ïü Ìý\Îü ª#��ÌýÌý¾Îý‚É>�ÌIFëT z o Yüªü0D¸ü ž�ï œÆüü¸ü"üªü94Ûü Ó_÷ñ`DÛü ãü  îü tíü  �ýA  €ý ü½ùÄ”üùùˆü úáå�„Þù¹ê,Ôùýù��"å�aÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw÷ñ¡ ÆòyÆò‚ ³÷" ��]É•V��\Ò¶Õ�†øpaddingÁ÷H Í“�”TÖ”¿•Ÿ¤–Fâ–ÆòáÆòè��žlÀ�4Å�Ö”$À�DÅ�*üÀ�'DÎ� žïõYã�ÌÎ� ì�í�üÉŽ¤–ݘì˜�¹ê,ðŽÍ™ÿޏ™ãÆòë'dstÁ,l̛֔çÆò±Æò·l ¢4¥¢Ö”$ ¢D¥¢*ü ¢'D®¢ žŒöYâÌ®¢ ̢͢ü¬¡¡—ݘìø¡¹ê,С͙ߡ¸™ãÆòë'�œ*jÖ”„žåÆò¯Æòµl½¸4¸Ö”$½¸D¸*ü½¸'D˸Ì›Qà¸Ì˸ é¸ê¸üÆ·¤˜ݘ앸¹ê,í·Í™ü·¸™ÛÆòã'�œ*jÖ”Ì›ÝÆò¯Æòµ,¬Î  Kä­ä–ά–Î • 3 !ü½Î"ü½Î  ™ ü–ÎI    - ÌêμêÎ �ü–Îm   - „ŽÏtŽÏ Ùü–Έ   .TÔÏ‚ïÌÔÏdßÏ Æ0tßÏü–Î×  .<øÏ–ì´øÏd€Ð ðóë4 t€Ðü–Îø  .<™Ðæì´™Ðd¡Ð ‘óë4 t¡Ðü–Ι  .<ºÐ¨î´ºÐdÂÐ ³óë4tÂÐü–κ .dÛÐ ð‡ÜÛÐdèÐ — 0tèÐü–Îà! !.!\�Ñ#õæÔ�Ñd�Ñ Ìóë#4"t�Ñü–Î…$" $".$d¦Ñ&‘µܦÑd³Ñ ë &0%t³Ñü–Ϋ'% '%.'ÇÑ™üèÍß(,†Î¹ê,üÍõ~Ž¢(“ûNä­q7�Œæ�ŒÎ—�Œ|/àëO�ŒËÍêë�Œ°câêƒ�ŒHû÷ê�Œà“Œë³�Œ|/¡ëO�ŒÇËëç�Œ°MstKä­ Æ¢lð¢KУð°¤—©¥%§¦®©§3«¨¸­©=«ªÆ­«KHœˆ·d�· ™ƒò$ˆ·t�·¨·L¨·”¨·üÔ·-üÔ·  ÷\õ· ä­ .üз2 Àœ÷ñG¡¸ @ž ¥¸ àýT¤¸ ª#³÷àýàýÆâý’ür 1¡z÷ y oXÄ–¸ Ƹ  ,é¸ Kä­õ¸ù¸ ¢ ù¸ Ìý4ø¸ ª#³÷É•[B+ü׸(Œ×¸ ”¡tð¸ *ø  ׸)  �%ݘ N %* 6 Àü׸) müѸ/    ¡ ÿ¸ [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwëÝ÷ñv �%ݘ㵌G+Ç ·¹»¹ ¦ »¹ Ìý4º¹à³Q8 !ü�¹1ü�¹! —¬–t²¹+ø¤ �¹2 Æ´I$0 ü�¹2müй8     ¥ Á¹[㵤"ȶ.G½h  ù¹$ý¹& ª ý¹% Ìý&4ü¹à³$Q%8#!üÒ¹1ÄÒ¹ ›¬–<ë¹L #tô¹":ø¨ Ò¹2 Æ´"X!$'!0' üÒ¹2)!mü̹8* ) * )© ƒº(![㵤 "ȶ(.G½h *øº.üº0 ¬ üº/ Ìý04ûºà³.Q/8-!üãºd㺠Ŭ– ðº-tóº,=„�»t�»°¤+üŽºœ1 + 1 +. 1Tº»4‚ïØ»6Ü»8 ° Ü»7 Ìý84Û»à³6Q785!üº»(DÅ» ì–4™5tÓ»3ìÅ»ø® º») Æ´3P2$9209 ! üº»);2mü´»/< ; < ;"¯ â»:2[㵤"ȶ:.G½h <<ó»?Ùó޼A’¼C ´ ’¼B ÌýC4‘¼à³AQB8@#!üó»%Dû» îƒò¬–?�@t‰¼>$ìû»ø² ó»& Æ´>T=%$D=0D&' üó»&F=müí»,G F G F(³ ˜¼E=[㵤"ȶE.G½h G<©¼J°ôļLȼN ¸ ȼM ÌýN4Ǽà³LQM8K)!ü©¼%D±¼ �ƒò¬–J�Kt¿¼I*ì±¼ø¶ ©¼& Æ´ITH+$OH0O,- ü©¼&QHmü£¼,R Q R Q.· μPH[㵤"ȶP.G½h R<ß¼U´õú¼Wþ¼Y ¼ þ¼X ÌýY4ý¼à³WQX8V/!üß¼%Dç¼ ±ƒò¬–U�Vtõ¼T0ìç¼øº ß¼& Æ´TTS1$ZS0Z23 üß¼&\SmüÙ¼,] \ ] \4» „½[S[㵤"ȶ[.G½h ]d•½`ð‡µ½b¹½d À ¹½c Ìýd4¸½à³bQc8a5!ü•½*D¢½ ”¬–`™at°½_6좽ø¾ •½+ Æ´_P^7$e^0e89 ü•½+g^mü�½1h g h g:¿ ¿½f^[㵤 "ȶf.G½h h\нk“öï½mó½o Ä ó½n Ìýo4ò½à³mQn8l;!üн)Dܽ Ƀò¬–k�ltê½j<ìܽøÂ н* Æ´jTi=$pi0p>? üн*rimüʽ0s r s r@à ù½qi[㵤$"ȶq.G½h sdоv‘µª¾x®¾z È ®¾y Ìýz4­¾à³xQy8wA!üо*D—¾  è ¬–v™wt¥¾uBì—¾øÆ о+ Æ´uPtC${t0{DE üо+}tmü„¾1~ } ~ }FÇ ´¾|t[㵤("ȶ|.G½h ~¾ 4¿¾ Àœ÷ñ˾G ž+ü‡¶Äüû¶Ðü¹¸’°·¾  _ ¨ ¯  ¶   9 @ G ” ÌÓÚ' _fmºòùM‰�—ä!##*w%³º'Á)€ݘìÓ¶¸™,§¶Í™<¶¶4ÿ¶�˜ ³÷´÷ñyÍ™øÍ™/‹²)4½¸ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ãµ+ݘeä­õÍ™©Í™ïÉ•ÚñÑãµÚ(�Œ�سݘî͙͙eÉ•Pg`ãµi·�Œ§�Ø’ݘÜÍ™ Í™SÉ•>U?ãµH–�Œ†ü”º–½Í™îÍ™4É•6�Œ†�Øž ݘà àëc͙͙`É•KbT ãµ] « �Œ› �Øu ݘ»  ÙóA Í™ø Í™> É•) @ . ãµ7 … �Œu �ØO ݘ•  °ô Í™Ò Í™ É•   ãµ _ �ŒO �Ø) ݘo  ´õõ Í™¬ Í™ò É•Ý ô â ãµë 9 �Œ) �Ø ݘI ŒëÌ Í™ƒ Í™É É•´ Ë ½ãµÆ �Œ �ØÞݘ$Žÿ§Í™^Í™¤É•�¦”ãµ�ë�ŒÛ�عݘûËë~Í™5Í™{É•f}oãµxÆ�Œ¶F¹�œ½nwriteÁÇnwÁŒ Æ ÑŽ#Æ !Žs Æ Á (Ž )Æ N:Ž ;Æ ÝEŽ/FÆ l P޾ QÆ û [ŽM \Æ Ž fŽà !gÆ  #qŽo %rÆ °'|Ž)}.Kä­:L/†°· ³wƒü°V�²Óà³û–´ÐÆ´¦ȶ­à³6ï·Æ´êȶñà³é׺ÈÆ´Žȶ•à³�Ͻl°¤/ೇê¿fÆ´4ȶ;à³ïÂýÆ´ÇȶÎà³±øÅ�Æ´Zȶaà³D�É#Æ´í ȶô à³× ŠÌ¶ Æ´„ ȶ‹ à³n �ÏM Æ´ ȶ à³ ˜Òà Æ´® ȶµ D€Âó¯ó¯šÂ5ó¯ü¸Áb¢õÁ öêLÍÁó¯LØÁÏZó¯­<âÔœüœâÔLêÔ ‚ý†5\êÔôâÔDöÔ íw³äMTöÔðÌ âÔ  ‘PµpµpIterMutÁ¸pí óo¹p end_or_lenÁóoºp¡¥óo¥hECØ8G³ä¦„øÌ ×ÔS  ¯´ ÆQÇè ÆÏÔ à fÛÔ à ³ä–Õ $šÕ L–Õ 6 ‡#Ú³ä P6  ?<¾Õóüœ¾ÕLÆÕ žý†5 \ÆÕ„�Õ  Aô¾ÕDÒÕ’èb TÒÕðÍ ¾Õ Áè@ $øÍ ³ÕS @OTëé`inz·ÕàÂêòÕ$öÕLòÕ 6…ëB(1 ‹Ö„ëÕì ŒÖ8ü°ÑܨÓÚ9@ðÑ €†LÄÑ‹ëÏÑÇè«Çèä  ³ä! œüEÇèÖřǙș­É™Ê™àË™óG*¤�R{9 Âê$ Çè0¦ÂêF³ä ‹ë>‘ë(³äAÇèiÇèœëïð óüÇè��ð™Ûð¢xÂê(³äø�ñ ‘ë ³ä#Tƒ W�sidÁ �Áñšê âç¡’èxÁèOëéV…ë&ÕëÑ’è�Áèjëéq…봋냋ëŠl©çð‡¼ç¶üöæFŒëD–ç¹ê,Œç 1ló鑵†ê¸üÀéFËëDàé¹ê,Öé 1\ãê‚ïôê¹ü´ê@àë4Òê¹ê,Èê 1<Õí–ì„Õí4Ýí õóë4DÝíëíºü›íPÇÇž,ÊýËÇ,=Èd4Í;ù_ó넺í¹ê,°íÍê¸s®ö¾<–ï–ìl–ïžï ûóë4,žï©ï»üäîE,†ï¹ê,üîÍê}8Žøƒ¼¼ñtÁñ …öê$¼ñÐñ”Áñ:<Þñ¨îÔ÷ñŒüñ Äóë$÷ñŽò¬üñø0´ñ   ¸[$)ä­Š$)üÞñ4„æñ »óëŸ�üæñ,˜ò¼üçð±  ‹ãd�ñ¹ê,†ñ³ä�ñF³÷ê ý4Ž-6kžù‡þù.·úûéúѼ‚ôt‡ôžù$‚ô–ô”‡ô4<¤ô¨îÔ¸ôŒ½ôþù$¸ôÏô¬½ôø2úó  ·ú&)ä­$&'ü¤ô/\¬ô ºóë—…ü¬ô'Ùô½ü³ó¦,êó¹ê,Óó³äÚó3¬÷êÿï3Ž-5ežùsþù ·úóƒþËœÕõ¨îîõ¾ü¡õM,Åõ¹ê,»õ 0<Ôü–ì¤ÔüDÜü öóë4åüdÜüîüÁü–üX,Äü¹ê,­ü³ä´üÍê�Ž-!PÛ€£<†�æìt†�$Ž� ˜óë44Ž�š�ÃüÊ€PŸŸ“)¡±)¢Ÿ3OE¡H8-”逹ê,߀âê´o ‚º ¼Üƒtპù$܃ðƒ”áƒ4É6‡T] ·úp))ä­{)&tö†<û† ¶óë$ö†Lû†Äö†³äüö†#D�‡ Œ#1T�‡óˆ lóˆDöˆ¡… ( Töˆœóˆ     ,  ü܈+´Üˆ Š# X"üΈ:DÓˆ Áóë$ΈO üÓˆ5މÄü’ƒüü솢 ,¾ƒ¹ê,§ƒ³ä®ƒÉð† ³ä‚Œë»³äÝ"Qô‡k�Œ<nŽ-p«Ue¶žù�·úOÙ„)¡…é¡…µÁ†Wê†5t ‹<¥‹Ù„$ ‹L¥‹Ä ‹³äü ‹#D¹‹¡…/T¹‹�� l��D �¡… (T �œ��   , ü†�+´†�Á†V üøŒ:DýŒê†$øŒGüýŒ5¸�ÅüÚŠÞü–‹¢ ,†‹¹ê,äöŠš‹ô‡gŒëš³äÄ 8ô‡R�Œ#]Ž-_«Ub¥Ù„ú¡…À¡…ŽÁ†0ê†\™Žõ椙Ž4¥Ž Âóë4D¥Ž³ŽÆüì�G“öt€Ž¹ê,ö�¡ë~9å�„<˜�–ì|˜�, � úóë4< �­�ÇüðŽ= íïTƒ�¹ê,ùŽÍê�<‹�‡˜ù9ݲ!]ùã ݲ!] –gl²� ä­ 6ù8β1]I8Ó²] Ëg ¯�eù8Ó²,]Øà ¦�  �%ÏÁY$)50lØ�4Ý� ºóë$Ø�DÝ�„á À� �%ÏÁÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwëÝ¡ÂÀ0§’u—hä Ø�  ‘PëöÙ$) øä Ë�Ø F  UZ ÆQëö l  ty  …  ,Ï�  àÒÒù,ÔŽ-ÕÕÖ -ð h?¼Ù·,‘‘ T‘‘—‘ Û, $—‘ù?ݲ!]ùô ݲ!]¨�¸“ä­ /&2üô�(œô� Ã¹ê ˆ‘$‹‘”6øå ô�) ™‘T$0 ·‘l·‘L¹‘ Óg-\¹‘€æ œ‘�’3§’—¦Z,ב TבÝ‘«•($Ý‘'¬×‘Dâ‘¡…LTâ‘, ’ T ’¦’«•($¦’Ì’’D—’ê†$’’H¤—’ê Ó’ ñê ©©]  @ê Ò’ Å    ©fÅ5!=U §¤§¤ArgumentÁ©¤‚¡f‹0mÖ”49d!� "¥  Å # Ó Ø ‹g "# ù:š©.] I:Ÿ©]â� Î’ñ;©©]ù:Ÿ©)]Àç Ç’  ™‘T# $/ $,í’ ' dí’ ó’  gÄ”'. ÷’&4ó’ˆè Þ’�’6§’—®hë í’  ™‘&z%# (%/ ( !ñ=©©] ñð ©©]¨�$’“ä­ +"0yì ù’�’¾6§’—Ÿù<š©.] I<Ÿ©]â� �“+ˆ*#ù<Ÿ©)]€í ˆ“  ™‘*O)$# ,)/ , %Bî —“�’f7§’—hù>β1]I>Ó²]â� µ“/š.'ù>Ó²,]€ñ ¬“ ™‘.P-(#0-/0)*lì“4ñ“ Ãóë$ì“3+Dñ“tò »“�’A8§’—šÌì“Lú“ òQÝ‚3|2,\ú“Èõ ì“  ‘PƒŠƒŠ EnumerateÁ…Š�Ð<†ŠŠÐ< 0{?i—Ý‚2’1-kp41øõ Æ“¥.�64œ¡ ÆQÝ¢6³5/»À75Ì710 Ë“85à³äÅ‚ôíDÏ“95຤¾¤³äDÙ“:5຤¾¤Å‚ã“;5຤¾¤ôí  ”>l ”L¢”¡—>)=2\¢””÷˜\ü˜ ¾óë$÷˜eOlü˜[=43DÀ”?9œÀ”DÉ”¡…?(<5TÉ”¼ù”Dþ”ê†$ù”9D‡•<5”þ”t³• Bæì”¯• CB# C864 A 8B¼¯• @A Å•& @H7Dß• D:tÙ• D:98©— M:œí‹ã� î—)RMù� ݲ!])Q R8� í—*ÆQ ‹ã*! ©f‹ãÆ7TC?ùCݲ!] ùý ݲ!]¨�¼è–ä­ K?2ùAݲ!] ùù ݲ!]¨�Ìš–ä­ G;2ù@β1] I@Ó²]â� —–G]F<ù@Ó²,]øö Ž–'  ™‘FPE=$ HE0 HH>C"÷ ´–�’"=§’—iùBβ1] IBÓ²]â� å–K?J@ùBÓ²,]øú Ü–%  ™‘JQIA$ LI0 LHBC&û €—�’Ì=§’—i*S ¾šT.+U7 X+VSg+m ‹gU›V¡PDªùDβ1])IDÓ²]â� Ô—PùEݲ!]OEùDÓ²,]øþ Ë—-) ™‘OVNF$)WN0)WHGC-ÿ ÷—�’?§’—i… ˘ \;… Ö˜ ]<ù… ݲ!] [ \]8… ʘ0Ç[ ôí0!  ©fôíÇ7_I?@… Õ˜0È[†š0 ššÈ,`J4”0^ ¾š_`§1a¯ Ï1b^Ý1â  ‹gabZKùFβ1] IFÓ²]â� ĘZùGݲ!]YLùFÓ²,]ø‚ »˜%  ™‘YVXM$ cX0 c.NC3ƒ ߘ�’A§’—i´÷˜de Œ™&d}PùIݲ!]ù‰ ݲ!] ¨�¨™ä­ hQ2ùHβ1]IHÓ²]â� ¥™h]gRùHÓ²,]€† œ™ ™‘gOfS#if/iTU<Æ™m¨îlÆ™Ι ½óëm4lV,Ι†7‡ «™�’]B§’—¬€Š Ùk ¶ý Ùl€� Ù  ‘PðükPjW$)njø� º™Ô:XF:pnU:Z ÆQðüploYty:qo…:q}Z ¾™:roà<ï™;t¨îüï™;t÷™ ¸óët5$†šr Œšs[¼÷™ ¬š<wl¬š<L®š¡—w)v\\®š)<v^]К<xslК<DÓš¡…x(u_TÓšŒ‹›<D�›ê†$‹›s™›u_d�›‘ Ò›=}uñ‘ ©©]=| }@‘ Ñ›>É|†š> ššÉ,`4L>~ ¾š\?€eÀ±u?�~„?‰ ‹g€·�½{aÅùJš©.]=IJŸ©]â� Ç›{ñK©©]zbùJŸ©)]øŽ À›= ™‘zUyc$=‚y1=‚de<‚œ=‡¨îÜ‚œ=„Šœéú‡0r ›œ†fœŠœŽA� Þ›�’F§’—´ü‚œ"=$žœ ìw‹ã†…g4žœü‚œ.=L¥œ òQ�p�pIterÁ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ‹ã…Ÿ„h\¥œø’ ‚œ.=  ‘PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—À¾„݃ifk=ˆƒø’ ñ›íDjŠDŠˆ›D  ÆQ¿¿Š³‰k¼ÁD‹‰ÏD‹ml ö›DŒ‰à«©ú›Dʉà¡Á«©!D�Ê,ÚœEŽŒ Þœ(EŽsnùQݲ!]=ùž ݲ!]¨�û�ä­ Ÿy3ñM©©]Eñ– ©©]¨�$„�ä­ ‘o1ùLš©.]EILŸ©]â� ��‘]�pùLŸ©)]€“ úœE ™‘�R�q %E’�3E’srGG” ‰��’aI§’—mš Â�E—�ñš ©©]E– —8š Á�JË–«©JÀ©Ë-™t6PJ˜ ¾š™bKšk ‹K›˜›K  ‹gšΛÔ•uÝùNš©.]EINŸ©]â� ½�•ñO©©]”vùNŸ©)]¨— ¶�E ™‘”W“w %Eœ“3EœjxGM˜ Ê��’ K§’—mùPβ1]=IPÓ²]â� ø�ŸïžzùPÓ²,]€› ï�= ™‘žS�{ %= �3= X|GQœ þ��’ºK§’—m„ÞLÈž »óë$Þ¦~\Èž€¢ Þ¥¦ù¢ ݲ!]¤ ¥)T̤†š ¢ ¼žT ššÌV¨!QT§ ¾š¨cU©lÀ±|Uª§ŒU‘Á»©Ÿª¥£€¯ùRβ1]IRÓ²]â� ªž£ùSݲ!]¢�ùRÓ²,]øŸ ¡ž4 ™‘¢Z¡‚"'«¡5«ƒ„”ƒŸ\ˆŸ†¦$ƒŸ±…lˆŸyW  Ôž�’œM§’—Ÿ�¦ ƒŸ°±ù¦ ݲ!]¯ °)Zͯ†š ¦ üžZ ššÍV³†"RZ² ¾š³d[´m �[µ²�[¢ ‹g´еÖ®‡àùTβ1]ITÓ²]â� èž®ùUݲ!]­ˆùTÓ²,]ø£ ßž8 ™‘­Z¬‰"'¶¬5¶Š‹Pª ¼Ÿ»‚ïùª ݲ!]º ».`κàë ª µŸ`  ©f‚ïÎc½Œ*½]¤ –Ÿ�’ÀO§’—ã‡`¼ ¾š½™a¾¢  Âa¿¼Òa× ‹g ¾¿ ¹�ùVβ1]IVÓ²]â� ªŸ¹ùWݲ!]¸ŽùVÓ²,]ø§ ¡Ÿ' ™‘¸Z·�"'À·5À�‘ùYݲ!]ù® ݲ!]¨�ÞŸ ä­ Ã’4†c¨ ÇŸ�’KQ§’—¬ùXβ1]IXÓ²]â� ÛŸÃ�“ùXÓ²,]ˆ« ÒŸ ™‘ÂSÁ”!&ÄÁ4Ä•–4íŸ Àœ¡ÂRùŸ—}g¬ âŸ�’1R§’—£;Êjüã�–"""ܦ�p!w!‹’™üô�) ü«‘ø— ž ¾ ÅÌ ÄÇ’6 =D lí’¬ ³º „ˆ“ïöý„¬“8?ü””×E L!S üŽ–'#º Á%È üÜ–%'ü——w Ú)á*¯)¶,½)üË—-.† �0ç î2õ ü»˜%4¬³6º„œ™89@:ü晨;ü šî<É=Ð>:=A@H=üÀ›B = D% E, F3 E„úœH E J¨ E¯ L¶ E¬¶�N = P$ =„ï�RÈÏT`gVnü¡ž4XFMZip\wüßž8^éð` bü¡Ÿ'dDKfRŒÒŸhÏÏÁ\��¹ê,ê�Ù ñ�ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^§’2&ÏÁx&‰¥‰¥ ArgumentsÁ‹¥templateÁûcŒ¥Çûcg‡@#éó  '&ëö“%ëöY&ëö¥%řǙș­É™Ê™àË™óG*¤�R{9 Ä”ó% ëöÿ%Ð%Ä”z%èÜt$ÏÁº$³ä)% Ä”F%$¯‘X$ ÛÂv$ô‡ó#³äü#Éß$³ä¡#Éß»#èÜð!ÏÁ7"ÊÝ"†šg# †š�#¾š‡# ¾š}#‘›™# Öà¥#Æ!èܧ!ÏÁ"Éß."C!èÜë ÏÁ-!ÊÝš!¾ èÜe ÏÁ¨ ÊÝ'& Ý¢¸Ý¢ðÝ‚X Ý¢ÓřǙș­É™Ê™àË™óG*¤�R{9 º¤!  Ý¢- ·`³ä?Å‚$ôí ˜”äîßÿô‡ŒË7%dþ•èÜjÏÁ¬ÊÝî<èÜãÏÁ&ÊÝJµ‹ãá èÜÍÏÁÊÝú«©Û)«©õÖàí*¾šâÈ­ÿÿà×èÜ3ÏÁ{ÊÝ`¯°†š¸ ¯°ã†šÛ¾šá0¾šÓ¾š˜À±ü ÕåcD/ èܬÏÁîÊÝ0;ðüêðü'‰÷ê©ðü Ͷ ðü"óœ:³äê™;÷ê—¤š<Aîß\ô‡èÜ�ÏÁäÊÝÉÂàÂ=†šÜÖàÔ>¾šÊÀ±æÿàïZ¿¿‰¿¿À¾M­û¶÷ê׿¿¶=řǙș­É™Ê™àË™óG*¤�R{9 ¡Á ¿¿�?D‹ã$DûèÜÏÁaÊÝ¢ëèÜ—ÏÁàÊÝÄÚäÖE«©òÖàèJ¾šÜÀÅúÿà›èÜ@ÏÁ…ÊÝXèܳÏÁþÊÝâÂàÆ†šâÖààT¾š¾À±òÿàû�èÜ4ÏÁÊÝcÂàx†š”õÖà’Z¾špýͤÿà­Ê èÜÓ ÏÁ ÊÝ àëQàërÖàc`¾šA¼Ñuÿà~š èÜ? ÏÁ„ ÊÝõ × †šà)«©E"¯°Í†šÖ†š³«©E«©­†š*†š„àëIÆœÉÆ %.^§’Ž ’^�Ä- ƒ:- Æ ²+¼^§’Ž% Ï^Ž-º ÇÅ* ÇÑ* Æ ö(_§’Ž6 _Æ u(*_§’Ž= =_Æ ò'O_§’ŽD b_Æ <'t_§’ŽK ‡_� '4Ÿ9&8start_idÁ#&9©Æ &:styÁ÷%;Ž-ò <Æ Ô"!í_§’Ž� #`Æ O"%`§’Ž“ '%`÷Œ˜$)MÇx$*QÇ„$+SÆ W!,\`§’ަ .o`Ç4!0[Ç@!1^Æ Ÿ2™`§’޶ 4¬`Æ j6¾`§’޼ 8Ñ`�5:nŸ«;rŽ-<sŽ- =uÇš>|Ǧ?~Æ @+a§’ŽÙ B>a�`DˆŸŒEŒ÷ŒvE�Æ  Fxa§’Žù H‹aÇ J–ÇK˜Æ ¶L·a§’Ž NÊaÆ +PÜa§’Ž RïaÇäT¤ÇñU§Æ ˆVb§’Ž& X.bÇtZ¯Ç�[²Æ £\Zb§’Ž8 ^mbÇ)`ºÇ6a¼Æ Wb™b§’ŽJ d¬bÆ –f¾b§’ŽP hÑb�r¨�”3â�^3™‘(3ì‘Ý2�’63¨“.2ø“52«•:1¨�1’–â0™‘¬0¡—`0�’º0«•ô/¡…Æ/«••/ê†s/šš'/¿›A/â�,.™‘õ-œ�«-�’.™‘U-¨�-�’c-â�Ä,™‘’,�’™,â�1,™‘þ+Ê¡Ã+�’ ,©¢r+×¢J+î£Q+¡—Ó)†¦±)¡…f)ê†D)À©#(¨�ä'¨�²'â�€'™‘N'�’U'â�ì&™‘¹&�’À&ù­v(â�Ë%™‘“%�’š%İú$šš½$î±%â�$™‘È#�’Ï#¨�1#â�ÿ"™‘Í"éµ}"�’Û"ö¶ý!Æ·"¾¸E!¡—ü ¡…º ꆘ ššI Á»c â�ž™‘géú�’uˆ¾Áº¾–¹¿ÎÀ$¨�¼¨�‰â�X™‘$�’+À©˜ðÅ´â�×™‘ž�’¥â�8™‘�’ ¢É�šš5Á»gâ�¸™‘}†¦9�’‹šš°­Îââ�™‘ÇÊÐB�’ÕìÑ{â�c™‘(¨�ä�’6â�Š™‘U�’\dð¡ð‡üð¡!„ý¡ œ1Ž¢¤ý¡—¢Íü¶¡a$᡹ê,Ê¡³äÑ¡ŒëŒŽ-!OïýŸd�£ð‡ô�£lš£ �0¨£Œš£±£ÎüÖ¢[$þ¢¹ê,碳ä닎-!O¯ÿžd§¤ð‡ô§¤l´¤ ž0¤Œ´¤ˤÏüð£[$˜¤¹ê,�¤³äˆ¤Œë‹Ž-!OdÂ¥ð‡üÂ¥tÏ¥ Ÿ1Þ¥”Ï¥ç¥ÐüŠ¥]$³¥¹ê,œ¥³ä£¥ŒëŒŽ-!O°‚ŸdÞ¦ð‡üÞ¦të¦ ¡1ú¦”릃§Ñü¦¦]$Ϧ¹ê,¸¦³ä¿¦ŒëŒŽ-!OñƒŸdú§ð‡üú§t‡¨  1–¨”‡¨Ÿ¨Òü§]$ë§¹ê,Ô§³äÛ§ŒëŒŽ-!O²…Ÿœ±©d¶© ‰óë$±©t¶©ô±©Å© ´ K,É©TÅ©<á©”á©Dé©¡…(Té©”ö©\ö© ®,‚ª +üá©'     - d’ª,—ª Çóë$’ª <—ª|’ª        4 §ªÓüÞ¨Éü¥©‚üÙ©N³ä<“©¹ê,쨳ä<ó¨,…©,©©ñƒî Ý©Œô‡¦t�ŒMÈ�ïõvcurrentÁ¬—ƒ¬—‡¥ê݆‡�‡\¡…!û‡ÿ鈗œŠ®d�®݆$Š®t�®슮ž®�‡C$¢®Lž®<¹®”¹®DÁ®¡…(TÁ®”ή\ήû‡,Ú® #ü¹®'     - dö®,û®éˆ$ö® <û®ìö®lƒ¯ Ùw³ä L ‘¯ „ƒ¯ôõ® §¯ÔüæªÁüþ­©ü±®vüê®= ³ä<Ê«¹ê,Ž«³ä<�«$·«,‚®ñƒé µ®�ô‡©w�ŒXô‡öÈ�*q’Štÿ†xè®|¥t¥ $î®÷݆…�‡`¡…'û‡éˆ¥¶Ž€œ°°dµ°݆$°°tµ°̰°İ ¶ E,İü°°$Dʰ ¥ ETʰ<æ°”æ°Dî°¡…(Tî°Äæ°   , dˆ±,�±éˆ$ˆ± <�±|ˆ±        4 �±Õü毷ü¦°wüÞ°? ³ä<”°¹ê,ø¯³ä<ÿ¯ª°–®œñƒÑ â°Qô‡k�Œ<È�åëm’Šp¹‚t¥cÌ݆Nð‘)œ’¡…Ñéˆsœ…²¨îž²ÖüܱB,õ±¹ê,ë± 0Ô‘³Œ–³ ½óë$‘³¨³¬–³±³×üݲT,�³¹ê,ê²³äñ²Ž-H¨—žœ¤·¨îĤ· »·&|Ò· §"‹ãݸÔ‡¸ŒŒ¸þù$‡¸ž¸¬Œ¸<«¸¨îü«¸,T³¸ ¹óë5\¾¸\˸ü³¸$—Øüð³íüõ·h‹ãL¬´¹ê,�´³äˆ´\•´:[\ù·÷êÆBŽ-D match_indexÁR state_indexÁQ­r§"‹ãþù]‘š¤Â¹‚ïܹÙüœ¹@$³¹¹ê,©¹ /”¿º‚ï׺Úü›º<$°º¹ê,¦º /üË»#‚ïô»Ûü–»^$¼»¹ê,²» /¬°½d·½ ©4°½t·½Äá½|è½ ¨4Ὄè½,ôÛ½N$®¾àd; ‘µ¼Í¾DÚ¾ å  0TÚ¾\�¾ ð# I dè¾ ‘µÜè¾Dõ¾ à  0$þ¾ tõ¾3  ´¥¿„¥¿ ¼$¶¿  $Ü¡¿ Àœ³ä±€ ÁÀ Œà¿ æì³íÜà¿ò¿ ­ 5$ö¿ Lò¿<�Àæì,µÀô�À,¥À —óëCD«À; ´¥ÀºÜü³¼Žü¡½ üϽòü©¾àÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³ä±€Üû¼¹ê,˼ äì4ڼłD¥½ôí,ӽřǙș­É™Ê™àË™óG*¤�R{9 O$ˆ¾ ãËë„Ë뤱€RÕ�âêÁôíµÓØÒ©ÆÕ‚Õÿ†Œžøž#¦Ÿü« ~š¡Þ¡ÙТn§£$ÓÁTÍÁ'$ý ř³äü·Â æìřǙș­É™Ê™àË™óG*¤�R{9 ³äbüöÁ"æì¨¨’ÃÝü€Á’¨¨|³Á¹ê,™ÁÅ‚$ ÁdæÁ!¦‡$U¼‹Ät�Ä ‡öê$‹ÄŸÄ”�Ä:\ÏÄõæÔãÄŒèÄ Åóë$ãÄúĬèÄ¸Ä Þóë .ÓׄÅüÏÄ/<ÛÄ Åó뻩üÛÄ#4OYÞüÑóÓ×,÷ùê,àóäçÃqÌ«âÓל¡ëA2?Ž-Ar«ª½‹«d’¬å¹Ä M\ÞÄÌ«yΫD‰DûÅó¯ŒûÅ4„Æ ðWûÙ4D„Æ’ÆßüÃÅOřǙș­É™Ê™àË™óG*¤�R{9  ûÙ”ÞŹê,ÔŶëÆ�ð®Ì@ZËÌóë †óë/7 ZÎÖâ° †â°/8pZ±ß(ZîÇ ”óëZóÇZòÇE›T–ì`Íêhóë  óëâ°äñƒì¶†š¾¥¯Ù°T•± †îóë¡ œ¹« d¾« §¦$¹« t¾« Ù« LÙ« ”Ù« ü…¬ 4ü…¬ ü°”¦¬ !ä­ ,ü�¬ 9 Àœ÷ñ³�Ù¬  @٠ݬ  àýTܬ �² B 8!Äά Tø­ ý­ Žø$ø­ ,ý­ Ìê­ lê­  ¶L (üê­ "4„®  Ó_£ä£ä¤äTryFromIntErrorÁ¥äó ¬q£:{ a � D„® Ž® üÝ­ 5dÝ­ Ͻ ›/  &§® „«® t«® °¤ �Û «®  Ìý¤ª® à³c8 !üœ® "dÒ¯ Üį lį �¶.  üį $4௠̶? D௠ê¯ ü·¯ 7d·¯ ϽR/&ƒ° „‡° t‡° °¤�Ý ‡°  Ìý¤†° à³c8!üø¯ "dͰ â°ã°  ÔͰ DÚ°  ± ? /lÚ° Øß Ͱ  Æ´F#!/!l…ÜͰ #mý° %á �± & Ìý#,€± à³%B&8$!à ç° "[ãµÓ"ȶ".ìœò° $dÀ± ,ű ‹�$À± (<ű `ã À±   ‘PÈ�(H'$))'øã ´± ƒF+)UZ ÆQ�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ³ä+·*¿Ä,*Ð,¹± 3*àô‡-3D‚² /4/üã± (Ìã±  ©¬–-ý± 4F./TÀ²  Àœ÷ñв ¤² 1ä ¨² 2 Ìý.,§² à³1B280!œ™² 0µ{î ü¸ª ˜ü¬« ¤üŰ ‹ž¥¬ üÛ± \5ݘì„« Íê,ت Í™<çª 4°« §¾Ó××÷ñœÍ™Í™R‹²L!«ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÕ¶5iÍ™¦Í™$Í™|É•U|šÛëà )Í™ÍÍ™KÍ™£É•|£�ØâݘñƒJÍ™>OãµXÌÍ™�Í™ÆÉ•Àü¾ È�Aü¾Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ô‡l ü¾xI³ä¨ ß±  Í™—Í™óÍ™*É•$ô‡Ãꪀ j�œnüßs¤ ɰ #Æ †"Žþ#�&)ÁñR-¤® .A§¦¸ ±ã… ü°X �²Õ Žø¥ �¶€ ̶X Ͻݰ¤¨à³q�¶,̶ ϽÚ°¤¥à³nɻƴðà³gȶþ‹�¦¾Þö¾åÐÀÅà³> „ã³ tã³ °¤„�´ t�´ °¤üã³ = -d¶´ â°ܶ´ dô  ² 0tô üã³ n   - dÝ´ ,â´ ‹�$Ý´ <â´ ”Ý´  üÜ´ $  lò´ ˆ#!   "ˆ#B  üã³ �   .†µ ðü¹³ Í,Ó³ Íê,ɳ AÆõ�Œß“ñƒ³�Œ| #È�V�Œ&�ŒÝyž6ˆ#Bˆ#°¤™°¤¼Ë‹�² ³w³ä•T�Ä óëœ�Ä 4šÄ  ¥óë…ò8DšÄ d¹Ä â°¤¹Ä ,ÆÄ •±.<ÆÄ däÄ üêà ‘ ”ƒò�Å òü±Ã ÐÙóÔÅà Íê,»Ã ƒòáDzâ°ªñƒÉ’4Z†Ð•±ÝTÊÆ óëœÊÆ 4ÕÆ †Ð.DÕÆ äÊÆ 4ÞÆ  Œ3EDÞÆ dýÆ â°¤ýÆ ,ŠÇ •±.<ŠÇ d¨Ç ü¥Æ š ”ý†ÅÇ  ¾Ç üßÅ æóœüüõÅ %Íê,ëÅ ý†úƒò+DzKâ°Ññƒð¸=s†ÐiöÒG•± ý†¥ ŒêÈ DïÈ  þóë$êÈ øÈ dïÈ :�É l�É D’É ¡…(T’É ÐlâÈ  ·úŸ’"#ä­ª’&dÓÉ dûÉ ,€Ê ‹�$ûÉ <€Ê œ�Ê d”Ê Ï„$�Ê t”Ê ¼‹Ê      ,  Ðè ˆÊ  ¶ý ä‡Ê  ‘ýíïðü Ó F,ü¦É ˆ Ò´Ê ôü®È †ü‡É ­Ä”LÎÈ Íê,·È ³ä¾È � ‹É ô‡ê�È�ÌÈ�ˆðüÿBt�ŒSrŽ-tŸi»ØÕ£¡…P·ú.‹�ôÏ„ÏÍØNdÉÍ ,ÎÍ ‹�$ÉÍ <ÎÍ lÝÍ 4âÍ à†$ÝÍ DâÍ üÉÍ "4ÖÍ  ïw³ävO¬ÖÍ üÉÍ .LìÍ  òQΪΪChunksÁѪ¬óoÒª chunk_sizeÁóoSð #Ò±³ä£\ìÍ ü—Í k ÇóëˆÎ õüèÌ  ëö„üÌ Íê,òÌ ƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—ÀÜÀÜWÈ�¸”n”‹�Þà†¹…Ü”ºÜf£Ñ l£Ñ D¦Ñ ¡…(T¦Ñ d´Ñ ì£Ñ @# 8ÆÑ öüðÐ V,“Ñ Íê,üÐ ³äƒÑ Åô‡Þ­Ÿ3Ž-5d¡…d°Ö ¬§Ö @# 8ü�Ö -´�Ö Á†a ÃÖ ÷üÍÔ ö³ä<ôÔ Íê,ÜÔ ,ãÔ ²Í¿*÷-]Á† T¾Ý óëœ¾Ý 4ÉÝ †Ð.DÉÝ ü¦Ý ,¼¦Ý  ŠC"ØÝ úüþÜ ZÈ�T‘Ý Íê,‡Ý ƒòŠDz©A†Ð¯•äŒdºà ,¿à ‹�$ºà <¿à ”ºà dÐà üºà "@$ 9âà ûü™à I,ªà Íê, à £È�Õ£•(L‹�ÿÊÏÛdÆâ ŒÁâ @#  Áâ J%Øâ üü�â ;,±â Íê,§â ´¦=d�å â°Ü�å d�å  · 0t�å ±å ýüæä K,€å Íê,öä ñƒy8°ééç léç Dìç ¡…(Tìç d…è ,Šè ‹�$…è <Šè ”…è ¼€è l è 4¥è à†$ è D¥è ü€è 2 ”›è   #  4  ¼›è  ±è Џè þü®ç Šüàç X $Ñç Íê,ºç ³äÁç äç ô‡¬@WÈ�Šé;÷WŽ-YŽ-\�¡…þ‹�ÜÊÏ¹à†Œd�ê ,†ê ‹�$�ê <†ê ”�ê ü�ê "l–ê ˆ#! "ˆ#B©ê ÿü×é R,ñé Íê,çé ™È�Ë�Œš#G¡ˆ#¬ˆ#‹�ÊÏãTýë óëœýë 4ˆì  ¨óë…ò9Dˆì üáë 0Üáë  ‹M"—ì ‚ü­ë jëïtÈë –ìLºë  …òš óë½"JœñÂÐñ• @nå“ óëÙ°)1xnÈ• š‰ †š‰/8¸nœ– ³í †³í/8hnï–  ÐnÜ™ Ͷ †Ͷ / 8ønÒ› + ¨¨ †¨¨ 0 9ønÓ� )¨¨‘õ*3(nÿ� œóë  n„Ž nƒŽ Q§`æìlâêtóëDz š‰Ý š‰é³íµÕ�¾‰†š’Ͷyˆƒ‚¨¨N ¨¨Z¨¨%Á÷. Ù°›·ólôó6–³Óôå‘õ¯‘õxóë -œâ× dç× ©§$â× tç× ‚Ø L‚Ø ”‚Ø ü®Ø Uü®Ø ü°¤àØ #ä­ ,üªØ Z Àœ÷ñ;¤,£Ù  @— §Ù  àýT¦Ù �² B 8!Ę٠LàÙ  š‰øÙ äàÙ DêÙ  °¬– D4 ”êÙ è™ àÙ  Æ´ K # / D¥ìàÙ  m’Ú  › –Ú  Ìý4•Ú à³B8 !š üÙ  [ãµÓ"ȶ.,ì¤‡Ú tÎÚ ³íæÚ äÎÚ DÝÚ  °?/ lÝÚ è� ÎÚ  Æ´F #/ìÎÚ m€Û  Ÿ „Û  Ìý4ƒÛ à³B8!ž êÚ [ãµÉ "ȶ.,â¤õÚ \ˆÜ "ÔúÛ lúÛ �¶".! üúÛ #4•Ü ̶!? D•Ü ŸÜ #üíÛ 6díÛ Ͻ R#/&¸Ü %„¼Ü t¼Ü °¤'�¡ ¼Ü & Ìý'¤»Ü à³%c&8$!ü­Ü "$„ñÝ ,ͶüñÝ 'L‚Þ  ùW,4\ŒÞ ÿÿÿÿ+´‚Þ üãÝ 6lãÝ �¶+_*!üãÝ ?4šÞ ̶*@)DšÞ °Þ -üÉÝ udÉÝ Ͻ)R-/(&ÓÞ /„×Þ t×Þ °¤1�£ ×Þ 0 Ìý1¤ÖÞ à³/c08.!üÈÞ ".ü×ß 4¨¨ü×ß U4ˆà  ƒX³ä�ó묖‘ëUÿ4XD�à ¤£Oª×… ”™à 3üˆà $ºà 5ü½ß ‹d½ß Ͻ3�502'Ýà 7„áà táà °¤9�¥ áà 8 Ìý9¤àà à³7c886!üÒà "6ìßá <¨¨üßá B4ýá  ƒX³ä�óë¬–è… <PD„â ¤£“«¢ˆ ”Žâ ; üýá $¯â =üÅá xdÅá Ͻ;•=/:!&Òâ ?„Öâ tÖâ °¤A"�§ Öâ @ ÌýA¤Õâ à³?c@8>#!üÇâ ">dšã ,Ÿã  ™óë$šã C$<Ÿã `© šã  ¦¾CHB%#DBø© Žã ƒ &@ FDO Tö¾F`E'hm GEy G)(“ã NEàô‡ HNDÜã J OJü½ã ( ̽ã ÐÀH×ã O@I*)Tšä  Àœ÷ñªä ,þã Lª ‚ä M ÌýI,�ä à³LBM8K+!œóã K^ &{�üáÖ É üÕ× Õ ü×Ù Ó ¶½Ä7 üÅÚ å ‘˜Ÿ Ûâ üµã \ Pݘì­× âê,�× Í™<�× 4Ù× 6 M Ó×f ÷ñ+ Í™ª Í™á ‹²Û �Ø5 ݘs ÷ö¢ Í™– ¢ 㵫  Í™â Í™ É• �Ø7 ݘp Õ�Ÿ Í™“ ®ãµ·+ Í™îÍ™% É• "cëӱ͙UÍ™ÓÍ™+É•+BëÃsÁͶáÍ™=Í™»Í™É•ì —¨¨¸Í™7Í™´Í™ É•å  ‘¨¨±Í™8Í™¶Í™É•çü¾oÈ�ªü¾�ºÆŠˆÇ“j³ä  ¹ã ¯ÇÍ™hÍ™ŸÉ•™ô‡ÛÍ™3 ¸�œ¼üßÁŽàÛÙ Æ  ŽŒ ŽàÉÚ Æ ï Žg �f DÁñé H¤ÓIÞô¤£½¤£$©§×±ã¤ü°w�²ô �û  Æ´r à³é ȶ€ ÷ýa Æ´8 à³¹ ȶF �¶A ̶! Ͻï °¤º ೃ Û‚ = �¶þ ̶Ý Ï½« °¤v à³? Ê… øϽ|°¤Fೕˆ ÉϽT°¤à³èŠ ·¦¾Œö¾“ÐÀÊà³IŸà dŸà 4£à  Ž#*D£à «à �H žà ×… _ ³äšà ô‡yÁñˆ ²˜ ˆ”â d”â 4˜â ²˜ (D˜â  â �¦“â ¢ˆ ½³ä�â ô‡wÁñ沘 †L»å š‰Ä»å dÅå  ²0tÅå tÞå ³íìÞå díå  ± 0 tíå ü»å @     - „†æ t†æ °¤ ü»å [     - „«æ t«æ °¤ü»å € .„Ôæ tÔæ °¤ü»å ©  .„�ç t�ç °¤ ü»å â  .dÅç ,Êç Š $Åç  <Êç ”Åç üÄç $lÚç ˆ#! "ˆ# Bü»å ­ .îç ‘ü‘å Ý,«å âê,¡å B©vÜM÷ömÕ�>�ŒÐ�Œºƒ�Œm5�Œç�ŒÑ`wÈ�ª�Œz�Œ1Îó‹ˆ#—ˆ#þš ¾› ܰ¤{°¤$°¤Ì°¤tŠ ÊÏùTÆò óëœÆò 4Ñò †Ð.DÑò Líò š‰t�ó ³í´�ó ,žó ôó.<žó \»ó „áó Ͷü›ô  ¨¨ìâô ¨¨ü¦ò ä œƒò  �õ •üòñ ž °ô¬†ò âê,üñ ƒò8DzXš‰#³íÕ� êͶÞ¨¨Ñ¨¨ÃX~†Ð™ôóMTÉö óëœÉö 4Ôö †Ð.DÔö äÉö 4Ýö öÒ@DÝö Lùö š‰t›÷ ³í´›÷ ,ª÷ ôó.<ª÷ \Ç÷ „í÷ Ͷü§ø  ¨¨ìîø ¨¨ü©ö í œý†   œù  •ù üèõ ´– óüüþõ âê,ôõ ý†VƒòˆDz¨š‰J³í'Õ�GͶ¨¨ù¨¨ëc™†ÐëöÒÉôó}ý†Ë,�þ „�þ D£þ  ¹*T£þ DÉþ tÃþ G½­‚ œí‹ã„ׂ Ͷ´Ñ‚ LÞ€  š‰ÄÞ€ dè€  ´ 0  tè€ L†ÿ  š‰Ô†ÿ t�ÿ  ³ 0„�ÿ +\‘€ üÂÿ *üÂÿ  ½Dãÿ  &ü¾ÿ / Àœ³ä±€ �¾î  \ç� Ìç�  ü˜� *ü˜� �® D¹�  $ü”� / Àœ³ä±€ 5¿ƒ ÿ� †„ Ͷไ t¹„ D½„  ¬"*T½„ ü«ƒ *ü«ƒ �® D̃ $ü§ƒ / Àœ³ä±€ü ƒ 6¬¹„ Dì„  Àœ³ä±€$ï„ ³ä_À\�… Œ˜…  ™… & (M\Á… Ï… tÏ… DÓ… Ú° (TÓ… ôÀ…  ,ü˜… F   - ü˜… h! !-! �† d¥† ,ª† Š $¥† #<ª† ,²† $œ¥† %#&$%  &%$4"#$¼¢†  Àœ³ä±€"¿†  —ü‘ý ® ü‹þ ´ü·þ ˆü›‚ óüÇ‚ Ç„�„ '�¤Üåý âê,£ý Å‚D²ý ôí,Îý \�þ ¯°:,»þ dàþ Q÷öq±€ª÷öʱ€}Ç�Œ¼‹ã1$þ‚ ±€Ý@”«©9ZGc�ŒX· î«©�ŒÙ�Œ¦�Œr³äöÈ�8N©ÆR‚U start_indexÁd÷]÷ŒC¶Ë‚ ¶Ql³ä Æ« Õù¬ )¹­ ð�® ¢�® ÿÚ° d�® @Ú° ÿŠ lÁˆ 4ƈ àï$Áˆ Dƈ ü¬ˆ * Ÿ Óˆ ܈ ˜üý‡ _Ý‚”�ˆ âê,…ˆ °ô“9àï°TÕ‰ óëœÕ‰ 4à‰ †Ð.Dà‰ ü½‰ ,¼½‰ •äA ï‰ ™ü•‰ ZÈ�T¨‰ âê,ž‰ ƒòˆDz§A†Ð­•äŠd¬‹ ,±‹ Š $¬‹ <±‹ ”¬‹ ü¬‹ "lÁ‹ ˆ#! "ˆ#BÔ‹ šü‚‹ R,œ‹ âê,’‹ ™È�Ë�Œš#G¡ˆ#¬ˆ#Š ÊÏãTª• ó뜪• 4µ• œñ/Dµ• üŽ• 0ÜŽ• ÐñA Ä• žüÚ” jëïtõ” æìLç” Ÿò‹ªò«Dœñ°Ðñ�Hvò© óëÙ°)1pvÕ« óëÙ°)2�v¸¬ (v¦¥ ¨óëv«¥ vª¥ E¯T¨î`÷êhóëÿDzóëÚDzâ²†šº¡«Ù°DÙ°–³åóë˜óëž (w­¥  $ ä­Hwò©  %ä­óë*¨¼pwÕ«  & ä­ óë* ¨¼�w¸¬  ' ä­ )  5  ¨¼ÖÛ ÝgìñÞã­² | �w²¥ ²2ÏÁ?÷êHÙÂQä­Zä­K¨¼TDz]ä­+¨¼4Dz=ä­ ¨¼ †š †š)ÁœÏÚDz¨¼ÐDz¨¼ŸäÈ ¨¼nžÇ )œƒÓ dˆÓ «¨$ƒÓ tˆÓ £Ó L£Ó ”£Ó üÏÓ 0üÏÓ ü°tðÓ ( ä­ ,üËÓ 5 Àœ÷ñ Ý (ŸÔ  @Õ £Ô  àýT¢Ô �² B 8!Ä”Ô TÁÕ ÆÕ éµ$ÁÕ ,ÆÕ Ì³Õ l³Õ �¶D  ü³Õ "4ÍÕ ̶ ? DÍÕ ×Õ ü¦Õ 5d¦Õ Ͻ R/  &ðÕ „ôÕ tôÕ °¤ �× ôÕ  Ìý¤óÕ à³c8 !üåÕ "lÂÖ 4ÇÖ  ¼óë$ÂÖ  DÇÖ hÙ ÂÖ   ‘P­ûN $)øÙ ¶Ö †FUZ ÆQÀ¾lty…HÏ»Ö ?à«©?D‡× @üæÖ *ÜæÖ  ¢¬–‚× @F/„ÛØ #üÍØ lÍØ �¶#/"!©× Ú ­×  Ìý,¬× à³B8!œž× „üÍØ (4íØ ̶"®!DíØ ÷Ø $üÀØ ;dÀØ Ͻ!R$/ &�Ù &„”Ù t”Ù °¤(�Ü ”Ù ' Ìý(¤“Ù à³&c'8%!ü…Ù "%”ÿÚ \„Û  ¾óë$ÿÚ -l„Û ÄÿÚ ,-üñÚ 'lñÚ �¶,*+!üñÚ 04™Û ̶+@*D™Û £Û .üäÚ CdäÚ Ͻ*R./)&¼Û 0„ÀÛ tÀÛ °¤2�Þ ÀÛ 1 Ìý2¤¿Û à³0c18/!ü±Û "/”‡Ü \ŒÜ °Ô $‡Ü 4 lŒÜ �à ‡Ü  þÎ 4B3!#53øà ûÛ ‹"@75OTÎÏ 7`6#hm86y8%$€Ü A6à«©9ADÑÜ ;B;ü°Ü *Ü°Ü çÐ 9ÌÜ B@:&)T�Ý  Àœ÷ñ0(óÜ =á ÷Ü > Ìý:,öÜ à³=B>8<'!œèÜ <\"©±ü‚Ò ž üöÒ ª ·¾üÞÖ ^¤«ü¨Ü ^CݘìÎÒ ÷ê,¢Ò Í™<±Ò 4úÒ ¦½Ó×Ö÷ñ›Í™Í™O‹²Io°ëÃàÍ™¢Í™ Í™xÉ•QxÀ¾Ù­ûÀ¾ëřǙș­É™Ê™àË™óG*¤�R{9 «©9 À¾E‹ã¶ âÖ ¯Ç¢Í™îÍ™%É•�ÎëÃm‹Í™ÀÍ™>Í™–É•o–†ÇëÃø­ûJÍ™ÂÍ™@Í™˜É•q˜À¾ÿ­û4À¾ßÜ ­Ý #ú‹ãª ¬Ü ¯Ç–Í™úÍ™1É•+«©œÍ™Þ«©}Í™Õ ‘�œ•üßš�ë÷ŒX¤¦�ß5÷Œb9¤¼:X «¨Ý ±ãª ü°} �²ø éµÈ �¶£ ̶ƒ ϽQ °¤ à³å ÍÎ ´ þÎ ‰ ÎÏ � çÐ ±�¶nà³!̶æϽ´°¤à³H°Ô  ³w‹ãô�¶ê̶ÉϽ—°¤bà³+°Ô úþÎ ÕÎÏ ÜçÐ à³” „°Þ t°Þ °¤läÞ 4éÞ ÍÎ $äÞ DéÞ œäÞ üãÞ ' |úÞ ¨"!  "¨"B ü°Þ Z   - „•ß t•ß °¤ ü°Þ u     - „Ìß tÌß °¤ ü°Þ ¬   .”ýß \‚à °Ô $ýß  l‚à Äýß üüß ,|˜à ¨"! "¨" Bü°Þ ø  .®à ³ü†Þ ¨, Þ ÷ê,–Þ B¨Âp‡­ûº�ŒŠ�ŒA �Œô½�Œ§6M­û€�ŒP�Œ¤Éè¨"ô¨"y¨"…¨"°¤ˆÍÎ n»â K°¤²°¤[°Ô »â à\Ÿò ó뤟ò 4«ò †Ð.D«ò „Îò óëÌÎò 4ßò †Ð.Dßò „‚ó üýñ   ¨ƒò£ó ¶üÈñ Û´õ´Üñ ÷ê,Òñ ƒò×Dzöƒò©DzÈ‘3Y†Ð†ÐÜ\âô óë¤âô 4îô †Ð.Dîô ìâô 4÷ô öÒ@D÷ô „šõ óëÌšõ 4«õ †Ð.D«õ üšõ "4´õ öÒBD´õ „×õ üÀô ² ¨ý†øõ  ñõ üþó ú· ÷ýü”ô !÷ê,Šô ý† ƒòRDzrý†ÓƒòDz%ÃH~†ÐšöÒx†ÐAöÒý†·\™ø ð‡¬™ø <¥ø  £0L¥ø +lÉû <Íû  ‹óëÉû LÍû ù€Ž"`ùô Ž"`¨�Ô°ø )ä­ 1ùñ@`áñ` ´[T#ä»û l»û �¶ ¬  ü»û %4Øû ̶ ?DØû Ô÷û \ýû  †¨,÷û <‰ü ¤ýû ü÷û #4’ü  øW T  D’ü ¬­ü ð‡³äü­ü DÃü ¡…4 TÃü ü­ü 4\Îü  ä§E 4Úü  œÎü ü­ü =4âü êó M  Dâü „þü dþü  ‰# ‹ý  $Ìþü 4�ý  Ó_³äªêLD�ý ¼©ý t­ý žù©ý ¼ý œ­ý 4Ôý ø�¡ý  ·ú°â*)ä­»â(¸üÇ÷ �ü­û §üêû êü¤ü °üôü `³ä<ÿ÷ ÷ê,Ù÷ ¹êà÷ ,î÷ sŒë“ÝÊÝ<±û ëÃÏk4îû Ͷ™¨ü Ͷ4ô‡YÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³äªê¹oý„ÿ÷ÕæÑ Ö Ž-Î Áñøü ™‘ñ ²Íñ }¨�Rºò !�¶þ̶Þ²ó »êó ‹¡…IÝô &êó ø»õ Õæõ ±žù…·ú;ü×� "„Ü� éú$×� \í� ìÜ� ü×� /! 5Œ‚ ¹üƒ� ‰‹ãLÃ� ÷ê,‘� \˜� \¬� ­ûÆš 5èš9К=wéú lÅ„ 4Ê„ ÍÎ $Å„ DÊ„ |Ó„  á„ & (MœÓ„  å„ & (MüÅ„ "   !   5üÅ„ -Dè„ Ú° ^Tè„ ø„ ºüˆ„ p ,µ„ ÷ê,—„ \ž„ «©±­û�ƒ�ŒŒ�Œ8ãéVèšZˆÍÎ øÚ° Õ lЇ 4Õ‡ ÍÎ $Ї DÕ‡ |Þ‡  ì‡ & (MôЇ    4üЇ )Dï‡ Ú° ]Tï‡ ì�ˆ \’ˆ ƒþ$�ˆ \žˆ Ä’ˆ ”µˆ \ºˆ °Ô $µˆ lºˆ \ψ    , �õ Ȉ  ¶ý ¤Çˆ  ‘ý¯ûðü § F,ሠ»üû† æüć �üƒˆ ^­ûd­‡ ÷ê,�‡ \–‡ ,ȇ «©À­ûP.�Œ7â釈 ­ûYðüü?�ŒH~èš‚‚…¶T ÝÍÎ ÞÚ° ƒþö°Ô Ɉ… H\±Š óë¤±Š 4½Š †Ð.D½Š ü—Š /Ì—Š  ŒC"ÌŠ ¼üì‰ `­ûd€Š ÷ê,ö‰ ƒòŠDz©A†Ð¯ ˆ Œ1ƒà ] ½ó놚lì‹ 4ñ‹ ÍÎ $ì‹ Dñ‹ œì‹ ¼ì‹  ‚Œ !5 F F9ƒè ]‰ƒß ] Aƒ€ ] †šIƒŠ ] †šIƒ¯ ] Qƒ¼ ] Ƀ® ]    lŽŒ 4“Œ ÍÎ $ŽŒ D“Œ ùƒé !] ±šáƒÍ] Å™ÊÝùƒ�]]ùƒ� ] Ê[!ƒ®] Qƒ´] YƒÀ]`JœŽŒ ¼ŽŒ  ¤Œ !5 F F«Œ ½ü½‹ nùƒÿ Œ]ùƒÞ Ÿ],΋ ÷ê,Ä‹ †š†š†šÞ†š(”«­ûÞ¬†š+†šë ±š²š³š~´šµšNeÁ¶š·šá�¨±vXç]!ƒâ ]ÔřǙș­É™Ê™àË™óG*¤�R{9 ÊÝ?Û­û’Ü:left_valÁ0 right_valÁ/ ¦²­ÍÎ '»â ÍÎ û÷Œ £»â [ é‹  �ž½†š¼SË„ù� óëÌù� 4ŠŽ †Ð.DŠŽ üß� 4Ìß�  ˆ A ™Ž ¾ü¯� j­ûdÈ� ÷ê,¾� ƒòˆDz§A†Ð­ ˆ Šl‹� 4�� ÍÎ $‹� D�� œ‹� ”¡� \¦� °Ô $¡� l¦� Ä¡� üŠ� 0 -üŠ� B|½� ¨"! "¨"BÒ� ¿üàŽ r ,úŽ ÷ê,ðŽ Ç­ûKî­û �Œð�Œ»Dh¨"ͨ"ÍÎ Ÿ»â |°Ô r»â O(„í� „ò� ¹(-‚ï:àëBKU (†ú�  +ä­І¹’  , ä­)¨¼À†©”  -ä­ ) ¨¼ø†ƒ– ) .ä­ *  6  ¨¼ÖÛžÇ èíÙÞ©® y ~†ÿ� ¼/ÏÁ<àëEÙÂNä­Wä­G¨¼P Zä­)¨¼2ç› ;ä­ ¨¼ ç› ç› (¿œÍØç› ¨¼Íç› ¨¼�žœ ¨¼mžÇ  œà¢ då¢ ©¥$ࢠtå¢ €£ L€£ ”€£ ü¬£ /ü¬£ ü°lÍ£ / ä­ ,ü¨£ 4 Àœ÷ñÇ¥ tˆ¤  Üü£ \ü£  Å . !üû£ "  ›¤   , <  =\  [d¹¤ Ì­¤ \­¤ ùž ,ü¬¤  ʤ  , < =\[üû£ Q   ìè¤ üܤ *\ܤ ùž -  üÛ¤ 1 Š¥  , < = \[üû£ ‘  ¼–¥ d–¥  Å�$£¥ ©¥  3T·¥  Àœ÷ñ� ¨ÃüÊ  ýüÓ¢ ôüð£ ×ݘì�¡ àë,õ  Í™„¡ 4×¢ €—Ó×°÷ñu$ô£ Éö$@ m™µ„‹ÐýçîjÎ�œÑüßÕ¼µ/©¥³±ã€ü°Sùž çùž =ùž ‚ž£ Ø<ü« ÿÝtü« $„¬  ÆQÿÝ54„¬ ü�¬ g ””áø–ò&—ˆù˜Õ ´gëö‚ÆO¬ð^ ѬðÈ�Ä”Uÿǧ üü« {‹¬  þW¯¨ ĔѬ𪨠¼¨ øÐü‹¬ lý¬ ÐüÊ« ³ÃތૠÇÇž,ÊýËÇ,=Èd4Í;ù_¬ðLÒ« řǙș­É™Ê™àË™óG*¤�R{9 ¯¨ Ë ÿÝïç¨ ³ǧ nwÚ™§ Ù¨ N,‘¬ <³¬ ǧ Ô³¬ \»¬  ÷¬ð3,Ǭ ”»¬ <Û¬ ǧ ŒÛ¬ ,㬠 ô¬ð3é¬ L㬠ö¬ Ñ©üœ¬ Züª¬ LÄ”›¬ ç¨ Õ¯¨ T�¬ ü³ä®¬ ǧ ûǧ self__ttÁ$׫ ǧ ÷?Ž-G?Û« 5¦¬ ñ_ref__self__ttÁ(�±É  0ä­P�éÉ  1ä­*¨¼ø�ùÉ -2ä­ ƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—ü¾k  w ¨¼Þã¬Öðõáæ°µ�¶É Ã- ÏÁ: ½½çû¿¶ÀÇ,sZH.Ý^]}Ù†ä­�ä­¨¼ˆ†š‘ä­_¨¼h  Ÿ¯ wæ± €Þœì÷†š¨¼ìä± ¨¼»¬Ö(Ž»Ò  3ä­ðŽùÒ  4ä­ä° +¨¼øŽ�Ó 65ä­ Å™Ç™È™­É™Ê™àË™óG*¤�R{9 –®–®³äy  … ¨¼íò¬Öÿñö¿Ä!ŽÀÒ Ê= ÏÁJ ÄÄ­üƱÇÞüøø˜ÝçèL¢ŽÙ—䭠ä­�¨¼™â° ¢ä­o¨¼x  ³ ‡™¶ �ïœýâ° ¨¼ý—¶ ¨¼Ë¬Ö' �•á ìò †ìò08(�êà Ë�ïà Î/¬ò; ¬òFìò‹ ìò–bl›· ³(�ñà  6 ä­ �•á  7ä­ìò+7¨¼ch Ùgy~jo��öà ЫÏÁ·ô· ¿ÙÂÇä­Ïä­¾¨¼Æ ‡¸ ч¸ Ùûœ™º ¨¼¤¹ (L³ô ìò|­ô 5$¬ö  ,æô  Áö êüÐó ñ$øó ô· ,îó 4Ëô : (‘Ÿø /`‘“„ €ÿ ` Ñ ‘£ø `‘ï‚ ×þ­ ÑM Ë ÑÞ æ Ñù  Ñ `‘œý Ûýä­I Ñê  ‘»ù Ãý‚• % †‚•7 ?¬ ÑM ‘¤ø ãâèïöý ìò ‡¸  ‚•À‚•È ä­ä­&†šÊÒ†š(0p__self_0Á¿À u¿À ¿À w ¶–³‹–³E †ä­·Õ¿ t (’¦ø /`’“„ €ÿS[8ä­199ä­EQ¨¼šŸ¤¹ ¬±€… Ã`’ï‚ ×þåí:ä­199ä­EQ¨¼,2¤¹ @F„‰ Y_h;ä­w} Êg�• ž¤ ­<ä­¼Â¯Å Ð Ö ßå î= ä­ý¯Å    `’œý Ûýä­D M> ä­4 @  ¨¼y çg‘ — w ¥ ’»ù Ãý‚•ÉÒ?ä­4@¨¼þ±Ç s &’«ø åBHOV]ÏÁk‡¸ tÙÂ}…äÀ ãä­–¨¼ô äÀ ÿ÷À Œä­»¨¼ž ÷À ªä­Ùä­âä­ë†š,ä­ýä­>¨¼GäÈ P†šëä­*ä­ý¨¼äÈ Oœ]¿À Á¿À S¿À ¾¿À ]œ äÈ ¨¼t¤¹ ±äÈ ¨¼ó¤¹ ¯ŠɯŠЯŠ×ôÉ ¨¼»±Ç èÎÉ ¨¼G±Ç ùP¢ñ �õ †�õ/7P¢‰ �õÒÌ )2(¢Ü8 æ�õ¢á8¢à8BìQÇô] Çôh�õã �õî�õº—Π”žÒÌ ÒÌ æ�õ‡(£ã8 @ä­P£ñ  Aä­�õ*¨¼P£‰  Bä­ �õ*  6 ¨¼œ¡¬Ö®³ ¥otÏ£è8ïé ÏÁõ„Î ýÙÂä­ä­ÿ¨¼—Î ä­Þ¨¼æ —Î ñ—Î ùUœcn—Î ¨¼d Ñ ¨¼3¬Ö�t†Fd†F ´ü†F#T•F ·£ÛID F¤•F ®F¯Fü¡EŽŽÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwææŽèû3ùéŠ4ù½Á¸ûANˆ`€†¬òÌâEòàDÉE ùõQùõZÝw!áŒÒ yºÒ Sùõ%ùõ,týTdýTŒÒ üýT*ŒŒU ¹£ÛGDžUÜŒU ¬U­UüûS²’ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwææŽèû3ùéŠ4ù½Á¸ûANˆ`£Ž¬òüÃT/òàDªTÈÔ MùõVÝwßŒÒ uÔÕ Qùõ#ùõ*dþk$„l «…ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯,þk4„lÜþkD‹l Ú¡$”l t‹lt£l<¨l ©�õ$£lL¨l4Álü£l%t²l ��õX1´²lü£l:Él º_řǙș­É™Ê™àË™óG*¤�R{9 áýø„›�õÆØ õÚ Uÿ»-ÄÛ |Íl¤Élü£lC4Þl Ó_ø„ÇDÞlìl˜ü½j¯üòkz $ùj„Î ,åjÆØ ,ìjÌØ ,ökÌØ VÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwø„‚ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwõÚ ø„—Î U ÌØ 5ó¬—÷¬—û8ÀØ ZÈÙ Ù€Ú ¨½Ú sïÚ H˜Ü ¦ Ñl\Ñl<Ól êWáý+LÓlÜl›ÐlÄÛ 'õÚ Îl õÚ x®QÙß ‡d†z$ŒzÀØ ,†z4Œzl…zôõyTúy ¥�õ$õy2Ìúyüõy'4”z Ó_řǙș­É™Ê™àË™óG*¤�R{9 ÷þø„˜D”z¢zœü¥y}Ýá lÝy„Î ,ÉyÆØ ,ÐyÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÝá ø„:ÌÞ SÌØ ‚ƒ¬—‡´ÀØ ®£á ×á SdÖƒ$܃ÀØ ,Öƒ4܃üƒ!œÂƒ ·I%äíƒ ð�õ�„Ÿü½‚Òü¹ƒVðð�€ôº€ùõÇ,ùgbò+m�õ´˜ƒ„Î Dó‚ÆØ ,…ƒÖÖœ¼Ø¬—®Ù½¼®PM 5ü2¬Î½ƒÌØ Nf¬—iÇ,0ïÀØ …çä `3tü�<��€Ú $ü�L��tŒ�<‘� ª�õ$Œ�L‘�üû�  ï�—Î ô�—Î ̵�t¹�½Ú µ�,È� ¬¹�И µ�  �%çÝ  P $)  5 Ôµ� mõÚ  ü¯�  ™ Î�  [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwëÝø„ûu �%øâ ²ê  ‹2ˆ‘ àáý�‘lÞ“,ä“ å,Þ“ <ä“$ð� Å™÷þDí� ÀœÝá ø„|æ�2ï“dï“4ó“ ‘* Dó“ìÞ“ µ”lµ”<¹” �* L¹”Ô”dÔ”4Ø”õì (DØ”â”dâ”4æ”õì (Dæ”К Ô” ¶ýü™”dT™” “ðüÚF,ü””j Å™÷þü‘”n ÀœÝá ø„/2¼Ø—\Ý— ¦�õ$Ø—,闔ݗ:©˜"l©˜<­˜Òí "(!L­˜lȘ,Θðë ,Ș$<Θט&dט4Û˜õì &(%DÛ˜Ø� Ș# ¶ý$%ü�˜eT�˜�ï !Æ#@ &üˆ˜k Å™÷þ ü…˜o ÀœÝá ø„­ 2Ô­¡,À¡ †ÌØ ,­¡*<À¡lÚ¡,à¡ðë ,Ú¡,<à¡é¡.dé¡4í¡õì .(-Dí¡Ø  Ú¡+ ¶ý,-ü­¡I$Õ¡ Õðü*Ö+G)üÕ¡!l�¢/ È%ü­¡nD„¢ Ù)h/7(¼„¢ü­¡‹D©¢ÈÙ (L,²¢ '|©¢Tî¢3'ü΢+tߢ “�õ΢372Ôߢø£ ΢,  é 2O1 $4104!"ü΢,61mõÚ ü�£27 C0ä­ü΢t4ˆ£ ÷Wáý6R7=0#üˆ£:¤ ù¢51[²ê Æ "–ë 5.2ß,ä£ ;0|ä£ <ê£Òí ;(:$Lê£1¤Þ] 9:�¤ >l�¤ <…¤Òí >(=%L…¤9¤æ] <=‰¤Ý] 8 9<A¤þ] ?8«©I¤ˆ] @8«©ɤ¬]  ù±‹ã‹ã?I¤­]@Q¤º]A&8?A(',í¤ H0tí¤ 4ó¤õì H(G*Dó¤ù¤ç!]B ±šñ¥è]ñ¦ è]¨�üœ¤4D2ä­E)0ù¤Ë<]D Å™ÊÝEù¤‹}]ù¤‹ ] Ê[‹ã‹ãB!¤¬]?Q¤²]@Y¤¾]DfCLÿ¤ Jdÿ¤ 4ƒ¥õì J(I+Dƒ¥ôí¤ FGI F-,©¥ Ol©¥ <­¥Òí O(N.L­¥ø¦å¤'  ·ú&E0ä­%&K*,¸¥ R0t¸¥ 4¾¥õì R(Q/D¾¥È¥ TdÈ¥ 4Ì¥õì T(S0D̥ৠ¸¥ P ¶ýQSüž¥7 Tž¥�ï NPAM1'ü™¥= L Å™÷þMü–¥A ÀœÝá ø„LÝ¥2 ¥üøŽåüê�óü¥�¸   _ „ƒ‘ü�¡Àü¢›�— ž  ù¤ý¬] ù¤Ü¿]Uøâ ü¾�!„Î ,“�ÌÞ ,¢�—Î “ —Î ˆ —Î —Î ¾ —Î # —Î  áý©�ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^²ê õÚ à çÝ  I ²ê R õÚ • $Þ�Ýá | áýÞ   E  áýb Ýá  ÷þK ‹ã ¯ƒ ) ðüˆ ï ¯ƒ  È ¯ƒ â  Ýá é÷þ ‹ãÓ ¯ƒ í ðüZ Ä ‘ ¯ƒ « ÌØ L¡¡ÌØ ìÌØ AÌØ  ðüu߬¯ƒ ÆÅ‚?áý,Æ¢ÿ� ‰çÝ ÊÌÞ äú²ê õÚ tä­c«©«©V«©¹‹ã鯃 «©‹‹ã»¯ƒ Õ«©€ «©s bÛ� !¤à]€º� ªÊÝè8¯ƒ RP¯ƒ jÜÝá ø÷þ-‹ã ¯ƒ :ðüjѯƒ 몯ƒ ÄH¬—Lÿ¬ãŠ­Ü’7Æ  Že ’ž revsearchÁ '‚È 0Æ © 5Ž 6±� à?Å� ×@¦`B¯&€Ú ÿç Þ½Ú w é J–ë Qðë  õì ‹Òí 5õì õì Ñ �ï � Šð  Òí Æ ðë ¤ õì p �ï . ˆó ¾ ðë “ õì _ ¿ô  ‹õ Ø ÈÙ ¬ ‡ö j  é 9 ´÷ Ë –ë G Òí Y Òí  öù £õì K¨�óû Âõì gÒí ·úñõì ¸õì ‡�ï E¤¥§d«§ é,¥§t«§.ÔŸ§R$·¨ tا<ݧ€Ú $اLݧüا)Äç§ ��õJÔç§̨¦üä¦è$�§„Î ,ó¦ÌÞ ,ú¦Å‚dȧ—Î ±2¬—5dç‹ W€Ú ã�� ½lެ�õ¡¬©üè«9—Î �¬„Î ,÷« 1lé®�õü®ªüî9—Î Ü®„Î ,Ò® 1 tѲ<Ö²€Ú $ѲLÖ²äѲ\ಠˆ�õIlà²1¨à ]tï²<ô²ÿç $ï²Lô²äï²\þ²Ö� Clþ²9¨è ]‰¨ß ] A¨€ ] †šI¨Š ] †šI¨¯ ] Q¨¼ ] ɨ® ]    t–³<›³€Ú $–³L›³ù¨é !] ±šá¨Í] Å™ÊÝù¨�]]ù¨� ]÷Œ !¨®] Q¨´] Y¨À]XBä–³\¥³Ö� ¿l¥³¸³«ü™²Ÿù¨ÿ Œ]ù¨Þ Ÿ],¶²„Î ,¬²òŽ ¯†š/d—Î ™†šã—Î G†š×†šÊ—ùÛ� !¨â ]5º� [—Î ¦˜±� 5 Å� , ¦Nü€Ú EÖ�  ÿç çÖ� Â€Ú ÷Œ ­Ö� k(©À¸ F ä­€©ð¸ Gä­ ææŽèû3ùéŠ4ù½Á¸ûANˆ`áõh¨¼°©†¹ 2ä­ ­æ +  7 ¨¼Üá¬Öîóßäpu©Ÿú+ ÏÁ8 ðð�€ôº€ùõÇ,ùgbò+máõ„ÙÂ�ä­–ä­†¨¼� Õ— ›ä­+¨¼4  ­æ Câš Lèœö𠍼öàš ¨¼‡¬Ö ̺Õ— Tк­æ äùº ²áõ ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã坸â UÿÕ— üîº(<ñº ¼²áõ‡œ øœ îºÕüñº%œ»±üŒº�üººbÝá l¢º Ô™ L”ºÕ— Y ­æ P�� C*º€†Ç,}v•� â�»Õ— ¤�»T„» ¥áõ4,�»Œ„»•»²åøâ €» �� ÌÞ ,úºÕ— ¬—º€YÕ— >˜Ÿ ­_ref__reÁ˜ª˜Õ ê † ê08(ªÎÔ ûªÓÔþ/ùõ;ÈÔ C êˆ¦Ô�\fî  ­(«ÕÔ ä­˜«˜Õ Hä­ ê+7¨¼ch¤¹ uzfkŒ«ÚÔ€§ÏÁ³ÈÔ »ÙÂÃä­Ëä­º¨¼ ¦ÔͦÔÕ÷œ⣠¨¼¤¹ $ <ÖÞ$ #DàÞ êìàÞTéÞ¨í.DôÞ¤éÞðª àÞ  �%šÞM$)5-:ôàÞ m€†$!, ¬–ß êü–ß*,¹ßî  /<¹ß« ýÞ[œÝæ" �%§Ó œÝ8 o¤éß”éß N$�à Å™ûÙüéß9L“à PU9|“àüéßm¼¸à XJ,Ðà  ô¸àœ÷à ›üéߢTìà Si5 üìàt¬á Û%üéßÒT¡á Ra5 Ô¡áü–ß´LÎß qÍR üÎßüüáá#üáá!‚Ù üáá1<…â ˜ >$�â l…âü–ßýDØá s¯[üØá;1 ü–ߟT¡â¨í YD¬â ¤¡âø¬ –ß  ³¥  L !& 2ü–ß  m€† ##.  ¶â­ µâ [œÝ­"”§ .ÇO<Øâ$ !<áâ# " üÃâ&|Èâ »€†$Ãâ!l"O üÈâ!üÀâ* ÀœöÓ ¬ò ïâ# $ðâ6#>KX$`BL�üÜÝ”Ÿ ¯#ÀÐ$· VüÒÞž —üˆßèp %§Ó Ì®ÞÈÔ ,†ÞòàD•Þ€†¯ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^œÝ€†˜šÞÒ¦ÔòéœÝò€†s€†<Œßç± |šÞ¹¦Ô  ê“³ ¬“³ h êq¦Ô‘ÛèÛèRÛèªÛèäÛè)󯚉•æƒWàŽ¿àŽì�œÝ™€†ïöÓ €†h€†OÔÛ™Ýwœû3NÆ  ޤ Š44 Æ !Žz µ¨í^³¥ 4î  ›”§ BÒ§ +�¨ öÀ¨ Ì�© „ש D‰ª ‚Ùë᪠Ξ« ™¨í`³¥ 3 ê»”§ A êɳ® -€†Ö êÞ€†ä€†ëþä ̃åTˆåºÒ $ƒåD“夈åЮ ƒå  �%§Ó P$)5_CÔƒåmöÓ µå dµå<¸å ©€† . L¸å¯ œå[œÝÒ" �%ÁÖ œÝ8õĵåLÂå �ý† ’ \ÂåȰ µå  �%Ô� L %* 6 ̵å m£Ž !, æådæå<éå ª€†. Léå± Íå [œÝÛ"²¹ .õÄæåLóåâ¹ ƒ \óåȲ æå ‘º @ $0Ìæåm£Ž!,<¡æ    <ªæ   üŒæ& |‘æ »£Ž$ŒælOü‘æ!³ þå[œÝ #²¹ /4 ¸æ  ü‰æ* Àœ�× ¬òGOZbo|„‘¹æ¬üçãÒÊÚë ûl¹aüúä¿ }ü§å’öý‚ üØåa¸¿ ƈÁÖ üÀä/ÈÔ ,˜äòàD§äöÓ ªÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^œÝöÓ ¥§Ó âœÝ öÓ w£Ž<«åÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^œÝ£ŽÔ�: €†» öÓ ØlœÝu£Žõ£Ž<Üå®Ã *Ô�]‘Ä Ò�Ä ìQœÝZ£Ž�× ©£Žø£ŽßGN ¯Ýw²º€`Æ XŽÈû3T Æ GŽÊ Š4Ø Æ  ŽÍ!ºÒ ¨å· {í¸ û²¹ ‰â¹ ”‘º k¢» â²¹ yâ¹ „‘º aø½ ©²¹ o£Ž<öÓ CöÓ JöÓ Q£ŽX£Ž_Ôùù æ�õ™ú»ü€ù™ÇôDæùÈÔ ,®ù�õ<½ù�õ<Ñù"û3$Š4&bIä­ "rust-regex-automata-dfa-sparse"Á2Á �¬ƒ$Ò÷ †Ò÷/7ˆ¬›$±ø †±ø/ 8€¬²$ð‡Èæ)2°¬È$ ó¯ñç )2€¬ä$ ‘µ®è ) 2`¬ú$ ‚ïëè ) 2(¬Ò �óë  ¬×¬Ö $ n‹}Åö‰ Åö”Ò÷ñ Ò÷ý±øÊ ±øÖð‡¢Œë«ó¯}¶ë†‘µXËëa‚ï3àë< ÎÉ zŠÊ EÈæñçß®è¯ëè󝱸Ò÷#¬¨3œ¨3ùìü¨37TË3¨íADÖ3¤Ë3ü¨3hDí3 Û_€†¬ò£Žö£Û€†Ô�UÿqLOçÏ Ìö3üí3# •4–4ü¼2ÚôÔ�üý2 òàDä2šÞó¦Ô& ê/Ýw&ZùìN¨í*ÕÏ  ê¥ ê«,þ3Œþ3L„4â¹ %\„4 Ž4�4.ö>Ô�ý3çÏ U€†,÷3‘Ä �±|â¹ ¬€†‹€†‘�TÞHÝ |ŽIL’I¢ÉŽI\’IüþHlþHˆ# !ˆ#@üëH3Ý ”ëH �C‚:|¦KLªK¢É¦K˜\ªKù­„ !±­„  šD³ä$ K³ä \˜<dÍK4ÑKì‘ÍK ”DÑK`¸ ÍK ¨“ ?”$ ø¸ ÀK¶(@  OTø“ `  ”jo  {  éR,ÄK àÄ”4òKdòKùK éC½‡. ”,ùK4ÂtÝ  ”ãtdçt݆ãt¢c“tçtŒ¯Ld¯L»õ ¼L”!ü¯LM<ÒL Ç_³äªê¬òüóëªê¬òUÿjT¢Ù üÚL!”üÒL*ø¹ ¯LN  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³ä¬òÕ”y~Š ü¯LNm³ä,�L, LT L¦L«•%”$¦Lº üL[œÝ" �%Ô�œÝ8™”<Ä“LD—LꆓL�”¤—LÔ’L ª#…C…CüˆC�†Ð=‰C¶Ð=ò¹Úàų佇�”kü�Lp4ÆMtÆM$ÍM ‘M½‡/ ÒM ”<ÍM4âMtâM$éMùÝ & îM ”<éM ˜N  ,ÀN #ÔÀN ”ÆN Ú#)"”¤ÆNл ÀN   ‘P–µ "G!”%* $!ø» §Nû F &$U Z ÆQ–µ &l%”v{ '%‡ ' ,¬N (%à‡´ –®,³N )%à‡´ –®lôN ,úN £ (,ôN+”<úNœŒZ 8  žZ 8 !&”lƒO ,‰O¦á ),ƒO,”<‰OôóN * +, /*�¥üíN$ /! 7 -*�¥% -"# Y .*�¥G ." ù°­D` Á°­`·úù°Æ*`J(ä­7”3®O 0*�¥à¸O 1*�¥àœÚO 2  ìO 2 !$”A 24‡P 4|‡P $ŽPùÝ 4&0“P3%”DŽP4°P 6|°P $·PùÝ 6&1¼P5š”D·P( 84­Z :t­Z $´ZùÝ :& ¹Z 9'”<´Z4ÉZ <tÉZ $ÐZùÝ <& ÕZ ;(”<ÐZA±ì ] > I±ö ] ? úóë ©±ë ] = >?A±�!] @=³ç I±š!] A=³ç I±½!]C@Q±Ê!]DA¹±½!]BCDB+)ù±ö!!]E ±šñ²÷$]ñ½ ÷$]¨�üä[&K$ä­ H*”1ù±Ú$<]G Å™ÊÝHù±š$}]ù±š$ ] Ê[E!±»$]@Q±Á$]AY±Í$]GdF”LtÀ\ J ¬À\ IJÒ\ I-,,¹_ VT¹_ ¿_«•V%U0”$¿_p¿ „] N ù¿ Ž"` M N€¿ ƒ]ÛM³ç  §fÛ2P.”<TO ¾šPdQlL ,ŒROšŸ ‹g,QÌRÑL/”Ûùµñ@` áµñ`ºò Lù¶Ž"`K”+ô¦_ tª_žù¦_UfT1”Ôª_0 T42t×_ W Lè_ Yî_ ZY)9 Z é_G3”f X+pÔ×_ S WXü£_� 5t—` S  54Õ`\S4â`^(À é`_ Ìý<è`¿•^@_6]6”"üÁ`/œÁ` Äïõ\€]”Ý`[7”-tÇbd ü·b|·b ¶d/c8”)ü·b94èb Ó_ëÝcOb9”Dèbü·be\‚c ï§bKlŽcˆ# a:”Ô‚cü·b4®cêó aR`;”D®c4Äcf|ÒcdÒc ÔN ßc h<”.ÜÒc$âc üQÛŽÛŽRepeatÁÝŽelementÁÏNï«JþÒH"h�`,çcg=”\âcüÄc*4Ëc ™P��šŒšŒTakeÁœŒ�¥I�Œ¤¥I]”£• íò fgÝe>”üËc#,ødkTødþd«•k%j?”$þdôådtédžùådjDi@”Ôéd/i]A,·enT·e½e«•n%mB”$½eü¡e!Œ¥e¨—¡emElC”ì¥e4×fpd×fÞfè× p%oD”,Þf„­ht­h°¤uE”ü­h7\Óh¿ñ u7l$ßhtF”ŒÓhü­hU4úhêó tFsG”Dúh„¤it¤i°¤vH”ü­hˆ\˜iÝô sav=rI”ì˜iü­h¦4Ëiêó rFqJ”DËi4åix|óidói²ò  €j zK”)Üói$ƒjçò zEq,ˆjyL”\ƒjüåi*4ìiÚó x†yJwM”üìi#|±lD¶l ²l$±l}N”T¶lüÈl~ Mä­ü±l74Ál Ò_Õ¶}h~=|O”üÁl'4ƒm€Šm‚o( Šm� Ìý‚<‰m¿•€S�:P”$üÒjÑœÒj Åïõ|½”þl{Q”.„¼mt¼m°¤ƒR”¼µm„oƒ „oƒS”1o„,®nˆT®n´n«•ˆ'‡T”$´nü™n „�n ¼óë™n‡N†U”ä�nøÄ ™n  þÎ †O…V”"'‰…øÄ �nßWE‹‰V[ÎÏ ‹hŠX”sxŒŠ†Œ]Y ’nÜŠà«©�Ü4µo�¼o’o(Å ¼o‘ Ìý’<»o¿•�S‘:�Z”%ü×n‚ü×n" ¢ïõ�“o�”°oŽ[”4üÐn‰“oŽ “oŽ\”3o“uW,ùr–Tùrÿr«•–'•^”$ÿrÜér\ír Žöêér•M”_”¼ír4’s˜\žs›”´žsDªs ²›0š`”Tªsüžs4µs Ó_Õ¶šR™a”Dµsü’s,$™sùÝ ˜Ÿ™Q—b”ü™s%4Ìs�üÌsŒÓs ˆD½‡�2”,åsœ›”ÄÓsÔãt,öt•±¢ô¡d“<öt|šuLžu¢Éšu£e“\žuŒÈu\Ìu†¦Èu¤f“lÌuü¤tÄŸ Œ�� ¡£¤4šv© Þ"ìÜ ©)¨g’4üúu'Ôúu Íóë•v¨`§h’0øÇ úu(  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw••²ù—ò&˜¦Â™ Âšä›¥ œôùÂ�–úÂ{ü9TäkÉ ��¬ò§ ¦i’õúª¦ªjk üúu(¬¦m‹‡ ¥¬l¹v<½vÙ„¹v®m�L½vÈ ¡v«¦[œÝ�$‡Ü «1l‘ª �xŸŠ”äÍv°¯ ýóë‘ë³äUÿ ìÜ ¹ê°ü¹v1,Çv Žýóë�Š œŠ ®ó¯z­n�üÇv#œývl�w �öêýv²o�|�wüýv&‘w þWò¯ûÙþóëò¯ûÙUÿ²p/mÉ‹ l•w±p�”‘wlºw<¾w ¸óëºw´q�L¾w¬ºw,Èw®è´G³r�<Èw\äw,èw ¹óëäw¶s�<èwœäw,ðwëè¶Gµt�<ðwüŽtôž ���Ÿ¥­±³µdÊy4Îyì‘Êy¸uŽDÎy`É Êy ¨“¸A·vŽ!&¹·øÉ ¹yˆwD»¹UZø“»gºxŽrw¼º…¼zy L½y½ºàÄ”,òy ÀL…z ýt…z �z«•Ã(Â{Ž$�zlÊ|מŒŒó�Žï5Â�ˆùÂ�ã‘¥ Âñ¼8+åíÕ�����ìÊ|lØ| ¤C½‡×�Ö‡Ž|Ø|äøy Düyê†øyÂêÁ|ŽÄüyô÷y  ‘ýìÜ À=ÁV¿}Ž0üòy# ¾¿4·z!Åž®� Ä·z!L¾z È��Å4¾4ÈzÄ~ŽŒ¾zLêz"ǽôêz"”ôz¤ß Ç(ÆŽ¤ôz”¯{#L¶{ òQ–µ Æ4¯{É€Ž\¶{�Ê ¯{#  ‘PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—–µ ÉŽÈ�Žgl#ÊÈøÊ –{¡$‚‹$ÌÊœ$¡ ÆQŠ” ̴˃ŽÀÅ$ÍËÓ$Íw„  ›{$ÎËà‡´ $¥{$ÏËàò• ‡´ ³ä,ß{%Ò”å{%Dé{ê†å{Ï$ò{Ó…Žté{¤ä{%þ‘ ÒYÓNцŽ&Ìß{%ÐÑLŠ|&ÕÄôŠ|&\”| žÕ-Î  |Ð$£|ÔœŽ¤”|dñ|Ùž‹‡ ��äñ|lþ|›‘ Ù3؈Ž|þ|Â~Úž<¿~ Àœ£Ž¬òÚ Ë~‰˜ÝÌ~�5‹˜GÝŒ–YÝbG�Rƒž”)±�<¥‘OŸ”bŸ” çu ”õ˜ü·>•@Œ$•6Ý•—Ñ Š  "&‚ú'yüÚHò5üýJÏ3¹"À"üèKŽ(= D K ° üÿM÷%I P ü¨O® ù±�!©] ù±ë!¿]î õü–_à ü«bËü–eä üÉf± ü¡hÙž¥üÝr™ü€tÌ A H O ª œ£üåyÜ ü£zž!üÝzä"­#´$üÔ{c%ÞÔ�üˆ? ¹êê>��Ÿ%i%—%�Œz%ìÜ L�Kû$ëöm$ëö $ëö$ÃÞˆ$‘ß‘$g$Ä” $ìK ��$ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^œÝ³äD#üÙ ³#äø ä#e"œÝn"³äÕ"Âê" ìÜ Ñ"I"³äÃ"ÉßÜ"£!Ù™½!e!Ù™!”ƒN–µ ø –µ -!ÉßF!–µ ! ³ ! –µ (!ø –®¡ –®Œ �¥�¥å�¥ƒ �¥ D³O$òPD©Oe P >äÙ™þ·Ù™ÑÙÔ¢ Ê ˆÙ™¢SÙ™m³ç ³ç ³ç >³ç 6³ç  ³ç û ÈôêÛ� !±ï!]Vº� €ÊÝ¿&ÊÊÝ·³ç À ³ç ÙÖàÒ¾šÈþë äÿàí4š_ é³ä<ÉßUľÆÍ±Í™ëÙ™!É•,¯bͶB|ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwëÝšÙ™[çó íò \³ä8ÉßQ$še³äÝÉßö<ÍfÊŸ ¢,¥hͶá3Ͷl•#CÙ™¼çó „íò ½NöëÃHä­!Í™œÙ™äÉ•Îå^�ŒGÀ¾›­ûܳäÉß)À¾¿ßÜ È­Ý Ñ¢‹ãJ½Í™òÙ™:É•$;�Œ°Ó×,ár³äcÉß}�Ù™ÒÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÕ¶_yÇٙ⣎<„t®� '��²)â°¸ñƒŸ)ž{‹‡ ¤ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^œÝ‹‡ ¼† YÈ��žŠ ¦ÍœÝÖ‹‡ 3ð‡LŒëÇŠ ¤žŠ ­ó¯ö­¯0‘µuË믂ï,àëfëö·ëöëëöÉÃÞÒ‘ßÛ­Ä”U³ä4éy ô‡.žŠ Vp³äFÉßa““çA•Ž-–Î2—�B˜�B™¥ š½+›ÁBÂ]öÆî®W¸l§z! ®� ”–µ 4áz"ÉßYŠ” ó Š” /Š” #řǙș­É™Ê™àË™óG*¤�R{9 ò• S Š” _ë ‰ $³äo $³ä$Ø{%ô‡ žŠ f ] â  È®  !Ù™›­ Ù™Ó £Ž– ³ç S#«©} '„¬ ï5O/Íš �. ƒv-posÁr Æ b+ŽÌ+transition_lenÁ¸ �²) $unit1Á+) (unit2Á) )b1ÁÂ' 0b2Á³' 1±� ð%@Å� ç%A¦ØEÇ]$MÇi$O�B€SzerosÁ%`plenÁ|l±± no†³ iq�c‰÷ŒÙ�ÁB_”˜ ÃžÆ â«ŽC¬�q¹ old_stateÁð ½ § !¾ new_stateÁ "Äï5#Æ�ð$ÊŸ%Î¥ %Ï¥ –&Ф 1ˆ#*1ˆ#g0³ät"ˆ#w¢É†1èÔ 1¢ÉÝ0ÂÕ º0ì‘~0¨“[0ø“b0è× ©/݆\/»õ 8/�Ù /öÙ ¸.«•ì-‡Ü Æ.ꆉ-æÜ a-ùÝ ×,ùÝ �,¤ß :,Ðß ,¡à ,¦á M+¦á ç*·úI*ùÝ |)ùÝ E)ùÝ ü(ùÝ ½(¨�¸'Ëé h'«•Ó&½ë ‘&¬ì «&ºò Ð%žù¥%¿•d$›ð B$Þð $�ñ Þ#¿ñ ³#êó ~#²ò M#çò #Úó ´"«•."žù "«•Æ!¨—¥!è× n!°¤M!¿ñ 3!êó  !°¤è Ýô Î êó ¦ ²ò t çò K Úó # ûù ûÅú ¹¿•Kæû '°¤ù«•�·ý jþÎ 9ÎÏ @¿•Fž€ !«•�Þ� l±ã.µ‚ #è‚ øùÝ ËÞƒ �•±Z¢É6†¦Ð… Æ€† ’¶† bÙ„#‡Ü p®� ÅÁŠ s‰‹ 1»‹ œŒ ¬®è‚÷Œ _ëè5ì‘ਓ¼ø“ë•÷›‘ eê†8þ‘ ß’ ¶¤ß uÑ“ R„” &œ• -ê†õþ‘ ÈÆ— €›‘ -ìÜ ÙìÜ à£Žç󯂋‡ ‰®� �®� —��)ìÜ ���� Ñ[ +&+ú–³ç D+LS+ìÞLÜÞL ðûLü\2¬òÝL¢Ù s2ªê ÛL…2ˆ¾ f,ÒvžŠ Øv¹ê„ØvDÜvê†+åvdÜv”×vþ‘ jE ¼Òvévý³äÑv ÇŠ 7³äÎvô‡t¨žŠ Y¹êbŽ--Í,…KžŠ „1¹êžê†þ‘ Ú _ref__remapÁ _ref__dfaÁL™w,›w †ûÙ ™w<›w¢wþ ûÙ˜wÉ‹ !ò¯ –w¦ @ÑÁ €<Í€Ò÷„Í€4Õ€ ¾óë4DÕ€<ø„ï€4÷€ Ýóë4D÷€d–�ð‡Dµ�󯄵�,¾�ñç.<¾�dÜ� ‘µTý� ‚ïü·€Û �Ó×  ˜‚�ü€€˜ ��ó÷ƒý„±)Â…—†Àö‡¹ÂˆÈÂÚð5\Yt¬iÓ×lŸ€ŽÍ D’€ŒŒó�Žï5Â�ˆùÂ�ã‘¥ Âñ¼8+åíÕ�Ó×¢Í 5••²ù—ò&˜¦Â™ Âšä›¥ œôùÂ�–úÂ{ü9TäkÉ Ó×\·Í |ð‡Aó¯¶ë>‘µ ‚ïý*½õ ö¹Ã ¹ñçg<ø„Ò÷”ø„D€… ¿óë4T€…<œ…±ø”œ…D¤… Þóë4T¤…dÅ…ð‡Dä…ó¯„ä…,í…ñç.<í…d‹† ‘µT¬† ‚ïüâ„ß ���  dž À†ü¥„¢ƒ £ŽÄ¿„ŽÍ ,µ„®� ƒ¢Í £‹‡ Q·Í qð‡5ó¯¶ë2‘µü‚ïï[�œÉ çàÉ ªñçW‹‡ Ò®� Ød¬Š±øš‰¾Š„üü‰Bš‰L˜ŠŽÍ ,ŽŠ 1œ��±øͶì��<•�¸‚3L•�¤�…üÉŽ[$òŽŽÍ ,莈ƒ{7¸‚|„ì•Ò÷â°‚–†ü·•KñƒdÕ•ŽÍ ,Ë• 1<î˜Ò÷´î˜dö˜ Åóë4tö˜<‡™±ø´‡™d�™ ãóë4t�™üî˜/ -£™‡üÀ˜c,Þ˜ŽÍ ,Ô˜æ¢Í ²·Í Ñ�Œ•3W¿Ð #ƒÑ æÜ­§D²§ �óëïõ$­§´²§ΧŠüó¦[��<›§ŽÍ ,‘§ 1÷Ò „ܲ´D·´ �óëŒö$²´´·´Ó´‹üû³X��< ´ŽÍ ,–´ 1ˆÔ „ÜôÄDùÄ÷Ò $ôÄ´ùĕŌüºÄ[��<âÄŽÍ ,ØÄ 1÷Ò zœûÆd€Ç ”óë$ûÆt€Çù¹„ !±¹„  šD øÆ c9DíÈ ê"��)2äÚÈDßÈ ’ó묖$ÚÈc¼ßÈüÚÈ%4÷Èâ–UD÷È‰É’É ‘Éü²Æà�ü寭��<ÓÆŽÍ ,ÉÆ��<éÆŠ¬ݘñÍ™2Ù™;@�†CŒŸÖ ÕÖÖ ª›× sÉ× Aâ– ��Ìô°×Dµ× ’óëïõ$°×Ê×̵×Ô×�ü¹Ö›ݘìˆ×ŽÍ ,àÖÍ™ïÖ�œK¥Ú ¦ôæåDëå ’óëŒö$æå€æÌëåŠæ�üòä˜ݘì¾åŽÍ ,–åÍ™¥å�œKØÛ ¦ôÙ÷DÞ÷¥Ú $Ù÷ó÷ÌÞ÷ý÷‘üâö›ݘì±÷ŽÍ ,‰÷Í™˜÷�œK¥Ú œ7 õù ,˜ú ïä­¨ú  Í ¨ú Ìý 4§ú೤ú;$ü†ú(Œ†ú–´ŠtŸú(øË †ú) Æ´F$ 0 d—ü†ú) mü€ú/     Ì ®ú [㵯"ȶ .6Èh êú Ñ êú Ìý4éúà³æú;$ü¿ú1ü¿ú!ï·táú %øÏ ¿ú2 Æ´C $0 ü¿ú2mü¹ú8  Ð ðú[㵤"ȶ.6½h¬û Õ ¬û Ìý4«û೨û;$ü�û1Ä�û׺<šûðt£û5øÓ �û2 Æ´S$0ü�û2müûú8 Ô ²û[㵤 "ȶ.6½h«ü$ × «ü# Ìý$4ªüà³§ü#;"$ü’üd’üϽ Ÿü"t¢ü!7„¿üt¿ü°¤ ü½ûœ%  % .%Téü(‚ï‹ý+ Û ‹ý* Ìý+4Šýೇý*;)$üéü(Dôüê¿(‡)t‚ý'ìôüøÙ éü) Æ´'J&$,&0,üéü).&müãü//. /.Ú ‘ý-&[㵤"ȶ-.6½h/<¢ý2Ò÷Áý5 ß Áý4 Ìý54Àýà³½ý4;3$ü¢ý%Dªý ¹ó묖2‘3t¸ý1ìªýøÝ ¢ý& Æ´1T0 $6006!"ü¢ý&80müœý,98 98#Þ Çý70[㵤"ȶ7.6½h9<Øý<±ø÷ý? ã ÷ý> Ìý?4öýà³óý>;=$$üØý%Dàý ×ó묖<‘=tîý;%ìàýøá Øý& Æ´;T:&$@:0@'(üØý&B:müÒý,CB CB)â ýýA:[㵤"ȶA.6½hCdŽþFð‡²þI ç ²þH ÌýI4±þà³®þH;G*$üŽþ*D›þŠÌF‡Gt©þE+ì›þøå Žþ+ Æ´EJD,$JD0J-.üŽþ+LDmüˆþ1ML ML/æ ¸þKD[㵤"ȶK.6½hMdÉþP‘µíþS ë íþR ÌýS4ìþà³éþR;Q0$üÉþ*DÖþ˜ÒP‡QtäþO1ìÖþøé Éþ+ Æ´OJN2$TN0T34üÉþ+VNmüÃþ1WV WV5ê óþUN[㵤"ȶU.6½hW�ÿX4þþ Àœ÷ñXŠÿ6 ’"üøø’üèù¢± ¸ ¿  v } „ Ñ + 2  9 †  àçî;†�Ú%,yÇÎÕ"pw~Ë YݘìÀùŽÍ ,˜ùÍ™§ù4ìù�ØU ݘ� ä­Í™Ê É•ò  ÷ ãµ N �Œ> �ØJ ݘ Í™³ É•Û ò î ãµ÷ E �Œ5 �Ø1 ݘv Í™ª É•Ò é Õ ãµÞ , �Œ üÃû–_ Í™“ É•» Ò �Œ% �ØO ݘ‹ àë Í™È É•ð  üãµ S �ŒC �Ø)ݘo¢Í æÍ™¬É•ÔëÖãµß-�Œ�ØݘI·Í ÀÍ™†É•®Å°ãµ¹�Œ÷�Øçݘ#ŒëšÍ™`É•ˆŸ”ãµ�ë�ŒÛ�ØËݘËë~Í™DÉ•lƒxãµ�Ï�Œ¿O�œ ŽàÆ Ó Ž% Æ ”ŽæÆ E Ž— Æ ö -ŽH .Æ ‘ 7Žã 8Æ ,AŽ~BÆ ÑKŽ#LÆ vUŽÈ VôÈïä­�ð#à³ –´|Æ´Tȶ[à³Wï·3Æ´ȶà³׺øÆ´ÃȶÊà³Ñ Ͻ­ °¤v à³Ý 꿹 Æ´� ȶ” ೆ âì b Æ´, ȶ3 à³% ßï  Æ´Ë È¶Ò à³ÄŠÌ Æ´tȶ{à³m˜ÒIÆ´ȶ$,�‰  ïä­äëˆ¬ëˆÆ¢ 2 ü’‰"ü’‰ ð¢ üëˆI      - Ì¿‰¼¿‰У üëˆm   -„ã‰t㉰¤ü눈 .T©Š‚ïÌ©Šd´Š©¥.t´Šüëˆ×  .<ÍŠÒ÷´ÍŠdÕŠ »óë4 tÕŠüëˆø  .<ø´îŠdöŠ Ûóë4 töŠü눙  .d�‹ð‡Ü�‹dœ‹­©.tœ‹ü눿 .dµ‹‘µܵ‹d‹­«.t‹üëˆå .Ö‹”ü½ˆ™ ,ÛˆŽÍ ,шóvŠtÚ)ä­M�ŒüÅ�Œ¯x�Œbàë5�Œ³¢Í Ó�Œ˜K·Í k�Œ0ãŒë�ŒÎ�Ëë¡�Œl /ïä­ Æ¢ð¢õУœ°¤E©¥ØŸˆ c¡‰ è­©m­«øDÃÙó¯ó¯ÝÙ5ó¯üûØb›¸Ù ÅöL�Ùó¯L›ÙÏZó¯­Zù»ݲ!]ùšݲ!]¨�táÚN ä­ 3ùºβ1]IºÓ²]â� ÞÚ`ùºÓ²,]à—ÕÚ ™‘R#/?˜<ˆÛ Ò÷„ˆÛ4�Û Âóë 4D�Û‘˜ðÚ�’?˜§’Y·€›ˆÛ  ‘Põõž,øË!ÂùŽ-ÂÁÊVIç †xóë´`e ø›ûÚ¨ ‚  ‘– ÆQ˜“  ¨  °µ  Á  ,ÿÚ à¡¡ù,£Ž-¤Î2Â¥�B¦�B§¥ ¨½+©ÁBÂi…,Cw6,ÄÛTÄÛÊÛ ‡, $ÊÛù¿ݲ!]ù¥ݲ!]¨�¸Üä­ &3ü§Û(œ§Û ÃŽÍ  »Û$¾Û•6øœ§Û) ™‘T$0,úÛTúۀ܄– ($€Ü{�ÏÛ�’?˜§’Y¡T¬úÛD…Ü¡…yT…ܨ¡úÛ(¡‘Üù¡ݲ!] 9 †š0¡ëÛ  ššc_ € ê”  ¡óÛ   ©fê” €– (’  ¾š ¥ !­O Í "Û à ‹g! "ù¼β1]I¼Ó²]â� çÛù½ݲ!]ù¼Ó²,]øžÞÛ: ™‘Z$#0# CŸ—Ü�’?˜§’Yiù¾β1]I¾Ó²]â� µÜ&q%ù¾Ó²,]€¢¬Ü ™‘%S$#'$/'<ìÜ+±øtìÜ$ôÜ àóë+4*4ô܆£»Ü�’?˜§’Y¬ÔìÜLûÜ òQçç“)ê±)ÂëŸÂŒ×®Ç¦T=…óë*µ) \ûÜЦìÜ  ‘PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—òž )Æ(!ch,(ø¦ÆÜß"….,”™ ÆQÜŸ .«-#³¸/-Ä/%$ ËÜ0-຤DÏÜ1-຤¾¤³äDÙÜ2-຤¾¤Å‚ãÜ3-຤¾¤ôítœÝ6±ø”˜Ý76# 70&ˆºÐá`Ò÷ùºݲ!]_ `/,�_†š ºÉá,  šš�[bA œ5 06¼˜Ý45 ®Ý&49'DÈÝ82tÂÝ8*)(’ßA2œí‹ã�àHAt�àD‘àÚ° H(G3T‘àùÃݲ!]ù®ݲ!]¨�¼ÑÞä­ ?/3ùÁݲ!]ùªݲ!]¨�̃Þä­ ;+3ùÀβ1]IÀÓ²]â� €Þ;`:,ùÀÓ²,]ø§÷Ý' ™‘:S9-$<90<9.C¨�Þ�’?˜§’YiùÂβ1]IÂÓ²]â� ÎÞ?F>0ùÂÓ²,]ø«ÅÞ% ™‘>T=1$@=0@92C¬éÞ�’?˜§’Yip²�àFGù²ݲ!]E F% ‚E†š ²íß  šš‚QJ4 M I ¾šJ]!KeÈ­u!LIƒ!ˆù­K•LšD5¢ùÄβ1]IÄÓ²]â� ¼ßDùÅݲ!]C6ùÄÓ²,]ø¯šß˜ ™‘C[B7 %MB1M98D#°±à�’?˜§’Yj¶€áR3D…áU1œ…áDŽá¡…U(T:TŽá˜¶…áSTù¶ݲ!]Q RSq&ƒQ¯° ¶ïà&  ݃�W; a&„Q†š0¶÷à&  šš„�X< ‰&V ¾šWXœ'Y¤À±´'ZVÂ'Ç î±YÔZÙP=áùÆβ1]IÆÓ²]â� éàPùÇݲ!]O>ùÆÓ²,]ø³àà: ™‘OZN?$[N0["@C)´™á�’?˜§’Yi5,a ¾šbF-cOÀ±`-dao-u Á»cƒd‰^B’ùÈβ1]IÈÓ²]â� ·á^ùÉݲ!]]CùÈÓ²,]ø·®á5 ™‘]Z\D$e\0eEF”‘â\–â ˆÅö$‘âkGl–âu/¸âá�’?˜§’Y›�¾‘âjkù¾ݲ!]i j%2…i†š ¾Šâ2 šš…QmH M2l ¾šm]3neýÍu3olƒ3ˆ­În•ošhI¢ùÊβ1]IÊÓ²]â� öáhùËݲ!]gJùÊÓ²,]ø»íá8 ™‘gZfK$pf0pLMPÂÊâu‚ïùÂݲ!]t u+8†tàë ÂÃâ8 ÊІWwN §5¼¤â�’?˜§’YÍz8v ¾šwŠ9x’¼Ñ¢9yv°9µìÑxÂyÇsOÏùÌβ1]IÌÓ²]â� ¸âsùÍݲ!]rPùÌÓ²,]ø¿¯â' ™‘rZqQ$zq0zRSùÏݲ!]ùÆݲ!]¨�ìâ ä­ }T3};ÀÕâ�’?˜§’Y£ùÎβ1]IÎÓ²]â� éâ}�|UùÎÓ²,]ˆÃàâ ™‘|R{V#~{/~WX4ûâ Àœ¡Â?˜‡ãYu?Äðâ�’?˜§’Y›:žBü’Úõ¿ÆÍäÕÚBI.5<ü§Û) Ð× /6 =üÞÛ:^el„¬Üs z - 4 ; ü÷Ý'Ÿ ¦ ­ üÅÞ%ü€ß²’ ™  kr"yüšß˜$ &¦­(´üàà:*Ô Û ,‹’.™ü®á50sz2éð4÷üíá86\c8ÏÖ:Ýü¯â'<>Œàâ@‡ÏÁ\¿ÚŽÍ ,™ÚÙ  ÚèÜkÏÁ°ÊÝó И“ 5¢Í U˜“ ëřǙș­É™Ê™àË™óG*¤�R{9 ê” 9 ˜“ EÚê” „èÜJÏÁ�³äð™ íèÜÏÁ^ÊÝA†šð™ ™†šÄóô‡^³ägð™ �ð™ ßÕå× ¾š¶¾š„Íš ò‡æûTèÜøÏÁ>ÊÝ’‡ÜŸ ýÜŸ qòž Ö·Í öÜŸ ! â* ÜŸ 6Èq³ä\Å‚Aôí&EødçÝèÜÏÁUÊݘâ è܆ ÏÁÌ ÊÝõX ‹ã[èÜG ÏÁ“ ÊÝv ÂàN †šh d«©~Öàq ¾šR È­ƒ ÿàŒ _ èܽ ÏÁ ÊÝì µå ¯°f †š& U ô‡o Õå/ &¾š ¾šÝ À±J ‡æS è èÜ# ÏÁo ÊÝR Âà†š?Öà-,¾šÀ±?ÿàHù èÜßÏÁ+ ÊÝ Âàæ †š e Öà 2¾šá ýÍ ÿà ‹èÜÏÏÁÊÝþÚì àë# Öà 8¾šö¼Ñ' ÿà0 �èÜBÏÁ‡ÊÝ÷↚/ð™ 8†šH†šj¯°¾ †šÇ †šÞ àë£ .óœöÆ Î?˜§’Ž?˜�Í ƒÆ P?˜§’Ž! ?˜Çú Ç Æ c ?˜§’Ž3?˜Æ š?˜§’Ž;?˜�.,Ÿe0èïT1©Æ=2‰ð&3Æ £?˜§’Žu?˜Æ ?˜§’Ž}?˜÷Œ?AÇ EÇ&!IÆ ý"?˜§’Ž‘$?˜Ç¤&Qǰ'VÆ I(?˜§’Ž¢*?˜Ç,_Ç‹-aÆ @ .?˜§’Ž´0?˜Ç0 2iÇ< 3lÆ ° 4?˜§’ŽÆ6?˜Ç+ 8tÇ7 9vÆ ¨ :?˜§’ŽØ<?˜Æ ñ >?˜§’Žà@?˜Þ D¨�ªâ�w™‘B·’ ç�’P’“ ™ž”  „– 6¨�ì– Ý™‘§„– \�’µ¡…ššœŠš hûš Ôâ�·™‘{�’‚â�™‘ã�ž “�’ñìž EÖŸ áå  èššÚ° M¨�+¨�øâ�Å™‘��’—â�.™‘ø�’ÿšš_ù­Žâ�왑°�’·¡…-İÑššŸî± â�)™‘í�’ôÁ»Ââ�/™‘ó¾± ·�’šš/­Î^â�¼™‘€ÊÐ�’ŽìÑ=â�n ™‘2 ¨�ö �’@ â�� ™‘h �’o dÒäð‡üÒä!„ßäïý/ðä¤ßäùä¡ü˜äa$ÃäŽÍ ,¬ä³ä³äŒëŠŽ-!Oïý�dÄåð‡ôÄålÑå¯ÿ.ßåŒÑåèå¢ü�å[$µåŽÍ ,žå³ä¥åŒë‰Ž-!O¯ÿœd³æð‡ô³ælÀæï€.ÎæŒÀæ׿£üüå[$¤æŽÍ ,�æ³ä”æŒë‰Ž-!Od£çð‡ü£çt°ç°‚/¿ç”°çÈç¤üëæ]$”çŽÍ ,ýæ³ä„çŒëŠŽ-!O°‚�d”èð‡ü”èt¡èñƒ/°è”¡è¹è¥üÜç]$…èŽÍ ,îç³äõçŒëŠŽ-!Oñƒ�d…éð‡ü…ét’é²…/¡é”’éªé¦üÍè]$öèŽÍ ,ßè³äæèŒëŠŽ-!O²…�|ÒëÒ÷â°ÔÒëâë�‡3,æëTâë<öëÒ÷´öë,þë Àóë4<„ìtþë5üöë"$�ì …_,’ì\�ìžì§üÿêŸüÆëX ³ä<´ëŽÍ ,�ë³ä<”ë,¦ë,Êëñƒ=ð™ äê” ì¢Í  M’ŠP¬—T¬—X¥�‡€ÄÛ AˆÜ ü©íT®í ùÅö$©í<¹í,ÂíÔ®íÎí¨ü²ìœ³ä<—íŽÍ ,Úì³ä<éì,ƒí!’Š$¬—(c›Þ Â<¢îÒ÷´¢î,ªîÄÛ .<°îtªî/ü¢î!D¹î †YT¹îÉî©üâíg³ä<�îŽÍ ,ôí³ä<ûíð™ ®ê” ¶¢Í Õ/’Š2bÄÛ é¼à ²œ†ïÒ÷ŸïªüÝîB,öîŽÍ ,ìî 0<çïÒ÷Œçï,ïïÄÛ .õïLïï/üçï\ùï ‹YlùïŒð«ü³ïY,×ïŽÍ ,Àï³äÇïð™ ­ê” µ¢Í Ô/Ž-1`ÄÛ ç¹ã °œÔóÒ÷ÄÔó ëó&|‚ô §"‹ãÔô<¥ôÒ÷Œ¥ô,­ôÄÛ .³ôL­ô/ü¥ô)T·ô ŠY\Âô¼·ô•¬ü ð´ ‹ãLÜðŽÍ ,±ð³ä¸ð\Åð.Oð™ Íê” Õ¢Í ôHŽ-JКN‰L§"‹ãÄÛ "¼æ 줎õ‚ï¨õ­üèô@$ÿôŽÍ ,õô /”àõ‚ïøõ®ü¼õ<$ÑõŽÍ ,Çõ /üÁö#‚ïêö¯üŒö^$²öŽÍ ,¨ö /¬û÷d‚øøž4û÷t‚øĬø|³ø¦Ÿ4¬øŒ³ø*ô¦øL$ùøàd˜ù ‘µ¼˜ùD¥ù«  .T¥ù\Ûø ð# G d³ù ‘µܳùDÀùš¡ .$Éù tÀù1  ´ðù„ðùÞ¡$�ú  "Üìù Àœ³ä±€ Œû Œ«ú ±ø³íÜ«ú½úТ 3$Áú L½ú<èú±ø,€ûôèú,ðú ßóëCDöú; ´ðú¸°üþöŽüì÷ üšøòüôøà�¤ÜÆ÷ŽÍ ,–÷ù¤4¥÷Å‚Dð÷ôí,žø�¥«$ÓøjAËëaäËë±€´Õ�i·Í 'ôíŒØŽ©Æ‘‚‘ÿ†êøž}¦ŸX« Üš¡vÞ¡;ТÒ–ï „$óûTíû'$�ý Å™³äü×ü ±ø¨¨ü–ü"±ø¨¨²ý±ü û’¨¨|ÓûŽÍ ,¹ûÅ‚$Àûd†ü!¦‡$U<üýÒ÷Œüý,„þÄÛ .ŠþL„þ/üüý\Žþ ŒYlŽþ¡þ²üÆý[Ó×,ìýŽÍ ,Õý³äÜýð™ ®ê” ¶¢Í Õ/Ž-1aÄÛ èŽõ ±Díþó¯Œíþ4öþð®.Döþ„ÿ³üµþO­¯”ÐþŽÍ ,Æþ¶ëx9ð®~HЄˆóëÙ°*2 ÐÞ–â°•±*3€Ð™™�Ðþ™  (Юƒ ŒóëгƒÐ²ƒK”Z Ò÷f¢Í nóë+Dz4â°ñƒ߆šçˆšÓ¹ÃÙ°‚•±R–³!–³óë³-œô¤dù¤Ÿˆ $ô¤tù¤”¥L”¥””¥üÀ¥ZüÀ¥ ü°Ìò¥Pä­ ,ü¼¥_ Àœ÷ñ?˜,º¦ @ݾ¦ àýT½¦�² B 8!į¦t‹§ìý¦lý¦�¶.  üý¦&4›§̶ ? D›§¥§üð¦9dð¦Ͻ R/ &¾§„§t§°¤ �ß§ Ìý¤Á§à³c8 !ü³§"„›¨ü�¨l�¨�¶/ !ü�¨(4­¨̶@ D­¨·¨ü€¨;d€¨ϽR/ &Ш„Ô¨tÔ¨°¤�áÔ¨ Ìý¤Ó¨à³c8!üŨ"dš©â°°© Ôš©D§©É»= -l§©Øãš© Æ´D#!/!?˜Üš©#mÊ©%åΩ& Ìý#,Í©à³%B&8$!ä´©"[ãµÔ"ȶ".,휿©$l¯ª4´ª Ãóë$¯ª+D´ªœ¯ª*+ü¡ª"l¡ª�¶**)!ü¡ª+4Ī̶)@(DĪΪ,ü”ª>d”ªϽ(R,/'&çª.„ëªt몰¤0�çëª/ Ìý0¤êªà³.c/8-!üܪ"-$º«1 ³äüÈ«ÈΫ41lΫDÑ«¡…4(3TÑ«lÞ«4ã«æ„$Þ«6D㫜ޫ56üΫ#2352+—¬81tŒ¬,‘¬ÄÛ $Œ¬807 L‘¬,°¬;7DĬ<K<ì°¬D¶¬ �¬–;NKD:!¼¶¬ðê°¬ Æ´:M9"#=9/=#$ô°¬?9mç¬ Aìë¬ B Ìý?,ê¬ à³ABB8@%!ëͬ>9[ãµÉ "ȶ>.,âœÜ¬ @×­ G1l×­ DÚ­¡…G(F&TÚ­,ç­ I7¤ç­ dí­ �I,H'tí­ü×­$ JFH JFH(- EJüÊ­2 dÊ­»õ EWD) üÊ­; 4ý­æõ D?C*Dý­üÅ­@ 1CST™® Àœ÷ñ©®, ¹üó£¶ ü礠ü’©—qxòü­«üü€¬�ü¨¬è ‚ Lݘ쿤¢Í ,“¤Í™<¢¤4ë¤7 N Ó×g ÷ñ, Í™ª Í™á ‹²Û  Z ëÊ ¨ Í™L Í™ÊÍ™" É•û" ?€ëñÏÍ™rÍ™ðÍ™HÉ•!H�؉ݘÀñƒïÍ™ãõãµþrÍ™5Í™lÉ•f;|ëíÆÓ×ÿÍ™wÍ™õÍ™MÉ•&M³ä4±«Q»ô‡ÕyÓ×¬ê” ,„¬³äc�ØÇݘð™ >¯Ç8>ãµG»Í™~Í™µÉ•¯³äOäø Æ1ô‡K ð™ $�ŒñÍ™º “�œ—üßœ¤ –©#Æ §"Ž #Ž-?1ƒ7¤ ¬¬ ?Æ 8 >ް ?©a³ä%Ÿˆ — ±ãd ü°7 �²³ �¶o ̶O Ͻ °¤è à³± �¶l ̶K Ͻ °¤ä à³­ É»X Æ´1 à³§ ȶ? æ„C ±ã �¶ ̶ïϽ½°¤ˆà³Q¡…êæ„È±ã¥ÄÛ h副´âà³cȶð¡…ðÚŒ¿»õ \æõ < „¼¯t¼¯°¤„é¯t鯰¤ü¼¯= -d–° â°Ü–°d£°¼Ë .t£°ü¼¯u   - „¼°t¼°°¤ ü¼¯�     . lô°4ù°æ„$ô°Dù°œô° ü¼¯Ë   .�±»ü’¯û,¬¯¢Í ,¢¯ðUØ �Œñ¥ñƒÅ�Œ�Y�ŒCáÓ×�Œã¤°¤’°¤x¼Ë °¤­æ„U±ã2láÐ4æÐæ„$áÐDæÐd…Ñâ°¤…Ñ,’Ñ•±.<’Ñt²Ñ„ÛÑü¿Ð· ŒÓ×üѾü‹Ðñ¢Æ ¬ŸÐ¢Í ,•ÐÓ×ñâ°¸ñƒ× “2Xæ„,•±òl¹Ó4¾Óæ„$¹ÓD¾Ó´¹Ó4ÇÓ Œ3HDÇÓdæÓâ°¤æÓ,óÓ•±.<óÓt“Ô„¼Ôü—ÓÀ Œ��ÝÔ ÖÔüÖÒ‡¿®� üìÒ ¢Í ,âÒ��Ó×Fâ°àñƒÿǺ<ræ„‚ä ]•±!��¤l³Ù4¸Ùæ„$³ÙD¸ÙÁÙlÁÙDÄÙ¡…(TÄÙxúÁÙ ÌýŒÀÙ ‘ý³÷É• C,ü²Ù4ûÙ < ´ìÙtìÙ ¶<7 !üìÙ!DƒÚ † E TƒÚL¦Ú¬Ú+@;  §ÚOm0|4²Ú ”¦Ú  ¼¦Ú   ¼ÚLÒÚØÚ+@;  ÓÚOm0|TÑÚ¤ÇÚ  ,îÚüôÚ Ìý ôÚ,óÚÚ¤TJ!œåÚ,ŸÛ4®Û T®Û ·Û& ( MÔŸÛD¥Û �x™€ ¤¥ÛdˆÛÓ×,–ÛÓ×4æÛ$ ´æÛ%$lïÛˆ#  %$"ˆ# A#%ü×Û&DÝÛ•«,×Û#s" üÝÛ $ÈÛ "Ó×,ÎÛ!"Ó×D¥Ü  4×Ü+!=+´ÈÜtÈÜ ¸=7*!üÈÜ!DßÜ Ž*E)TßÜþýÜ- Ìý ýÜ,üÜÚ¤!,÷Ü-M,$L‹Ý/) “Ý& /)(M./ô÷ÜD‚Ý•«,T÷Ü.~(œ‚ݵÝ1 ÀóëÌ«$·Ý ‘ýΫ£ý£ý¤ýÀ ˆÙÅQòƒåU1d?˜À°€¸Ý0^„³Ý( 0!ü¢Ü«\ŒÜ&(Ó×,™Ü'(Ó× úÝ4 DôÝ5'645  65443'4¬èÝ\èÝû‡3]2 l�Þ:2 ©Þ& :2(M9:€�šÞ8 ¶ý šÞ9”™Þ ‘ý³÷ðü',”Þ8[7/4ËÞ ; üµÞF ¡ ; &7�ßÀ üîØ“ü¢ÙßüÛÙ¦ü—ÚêüƒÛþüÃÛ¾ü‡Üúü¼ÜcüØÝ©ü‡Þz>ê” LŽÙ¢Í ,÷سäþØÓ×L¦ÙÓ×ÂÓ×L É•ó" ô‡< TßÙ˜ Ó×ÂD›Ú»hpwé´¼ÃÓ×ÕÓ×É•Ó× Ó×Ó×Ó×UÓ×ÛÅÜ�ŒÖÓ×”Ó׉ѷ×2I�ŒCÓ׌Ó×�Ñ·«,ÀÜ’ɶ¹Ó×É•X�ŒÓ×jÌ«“LÜݺàÊÑÓ×ßðü��ŒŠÍÓ×j Ó×TŽ- ƒ#�Bù Î2è �B•ƒ�¥ ò ƒê!½+Î&ƒÆ'npatsÁE)²^2ÁB,‹Þ 7JĈ#Ј#æ„ ¡…Þ Ú¤Ÿ ¼¥G å¥& Ú¤. •«ƒ•«ÏÛ­K„®*Ú¤Ó•«Rµ° û‡û³RD Q`ÀÒÌ«~Ϋ‡�$Ζ Âóëô‡|ΖDÓ–¡…7TÓ–ü±–. õóëå–Âü‚–c˜“ „––¢Í ,Œ–�ô‡©@À³ä¡…±Üä³äñÿ“ô‡³ä$,1³ä\Ä—óë¤Ä—4З ¥óë³÷8DЗÞ—Ãü —>Ó×,´—¢Í ,ª—Dz‚9�Àˆl¢š4§šæ„$¢šD§šœ¢š»šÅüø™C,’š¢Í ,ˆšÓ×r8æ„�±ãkŒÏœTÔœ Éóë$ÏœdÔœáœláœD䜡…(Täœx¨áœ ÌýŒàœà³›8!üÊœ'4›� @  @´Œ�tŒ�¼¥ B üŒ�!D£�å¥ > T£�LÆ�Ì�+@;  Ç�Om0|4Ò� ”Æ� ¼Æ�  Ü�Lò�ø�+@;  ó�Om0|Tñ�¤ç�  ,’žª˜ž Ìý ˜ž,—žà³TJ!¼…ž,Þ4Öž TÖž  ßž&  ( M ôÞdÉž �x™€ ÄÉžd¬žÍ™,ºžÍ™4’Ÿ% ´’Ÿ&%l›Ÿˆ#  &%"ˆ# A$&üÿž*d…Ÿ�Ê,ÿž$s# ü…Ÿ$$ðž!#Í™,öž"#Í™DÑŸ  4ƒ -"A-,A´ôŸtôŸÛ­,B+üôŸ!D‹ „®+>*T‹ ¬© / Ìý © ,¨ à³",£ /M.$L» 1* à& 1*(M01ü£ "d® �Ê.T£ 0)¼® é 3 Èóë Ϋ$ë  ª#ΫÀ°3A?˜À°®ì 28¤ã ) 2"üΟ³\¸Ÿ')Í™,ÅŸ()Í™ ®¡6 D¨¡7(87968, 986@5(6¬œ¡\œ¡û‡5i4 lÕ¡=4 á¡& =4(M<=€¯Ò¡; ¶ý Ò¡<”Ñ¡ ª#³÷ðü(,Ì¡;Z:.4ª¢ > \ê¢ ?'üí¡¦ “ >!?:™£È üû›žüºœßüûœžü·�âü§žòüëž®ü³ŸæüèŸgüŒ¡�ü»¡ÞBÈ® d£œ Ò÷Lˆœ³ä“œÍ™L¾œÍ™ÁÍ™Q É•ò! ô‡; Tÿœ•Ó×É Í™ÕD»�Èu}„ö#ÁÉÐÍ™âÍ™+É•%͙͙͙͙bÍ™èÒé�ŒãÍ™¡Í™–ÊÖä?V�ŒPÍ™µÍ™ªÊÖÔ,쟒ÓׯÂÕÏÍ™.É•h�ŒÍ™v”Ï¢L�¡ì ³÷ÿÍ™ðüM²�Œ»ÿÓ×ùÍ™š Í™~CŽ-FƒI�B Î2 �B¿ƒ·¥ !ƒ"½+'ƒ (‘º^*²^4ÁB,¿¡ :pêˆ#öˆ#ÇÂ9 ¡…ÿ à³À ¼¥f å¥G à³T �Ê©�ÊõÛ­d„®Eà³ó�Êr«Ï&û‡7×Òˆc p€Èù”ÏžΫ§¯\Œ¤ó뤌¤4˜¤ ¨óë³÷9D˜¤¦¤ÉüÜ£JÍ™Lø£×ÔL꣪òƒ9ß܈ @Ñ”®óëÙ°*2xÑ÷¯š‰·ó*3¸Ñ˰³íôó*3hÑž±  ÐÑ‹´ ͶÓô * 3øÑ�¶+ ¨¨‘õ + 4øÑ‚¸)¨¨‘õ+4(ÑÁ§ •óë  ÑƧÑŧT c±øo·Í wóëóDzüš‰Î÷ö׳í¨Õ�±�†šŠͶpˆƒy¨¨JÁ÷S¨¨#Á÷,ýÙ°†·óVôó%–³ôÓôØ‘õ§‘õuóëdû¹Tû¹ ·ÄÊ»LÖ»Û‚ \Ê» à» dÖ»üª»9\¾»¿ñ 4ª» c ü¾»%üª»O4ñ»êó  KDñ»¬“¼\š¼¿ñ 4“¼ ¦¼ tš¼ô“¼4©¼êó  Z D©¼üª»ˆ\‡¼Ýô ¯ Gü‡¼+üª»ž4À¼êó JDÀ¼üª»Æ\Ö¼¿ñ Dl⼈# ÔÖ¼üª»Ü4þ¼êó U Dþ¼ùÒ„ !±Ò„ ÖÖ  µ½ ¸½  7„нTÔ½ †óëн dÔ½|ù½Lý½ ‡óëù½ \ý½¼ù½,‰¾ôóJ<‰¾d’¿ È%üç¾8¬ü¾ �öêç¾<üü¾#lá¿ È%üÇ¿(¬Ë¿ŒéÇ¿6üË¿$ü�½ê •�� €À ù¿ üí¸“Ëüî¹’ü »à‹‡ œÐ¹¹ê޹Ͷ\«¹4ò¹¤»Ͷ„·Ͷñ�ͶË;Ͷ‡��aš‰,³íÏÕ� ¨¨£Å‚¨¨gÅ‚†„¸¥ ºä½¶¾&(ˆ#·ãáÛ‚ Å¿ñ ‰êó ]¿ñ :êó þÝô Üêó ²¿ñ Žêó YÖÖ 5ççþšèÒôó¦ŒéoŒé(��Àì¼Ã¼Àà ˆóë¼ÃÌÀÃ2ŒíÃ\ñƦíÃlñüèà řü¹Ãr$�Ä Å™&Œ×ÄüÂÄ'|ÂÄ ËóëÒÄ8/d˜Å4œÅÊ¡˜Å DœÅ`²˜Å  ‘PÝ‚ I%* ø²óĶ G  V[ ÆQÝ‚ m  v{  ‡  šdøÄ ྤ³äD†Å ྤł�ŠྤôíÔÌÅDÐÅê†ÌÅdÙÅ´ÐÅÜÌÆ¨¨„¹Æ üÆÅ!! 6õÅüõÅ)LøÅ æ��0D‚ÆŒÆd‘ÆüøÅ&T¾Æ¨¨à³ä�ÇŒ‚ÇD†ÇꆂÇ1l†ÇÄüÆ  5ôöÆü²ÆmìÂǨ¨„¯Ç T´Ç¨¨à³ä‡È"ŒúÇDþÇê†úÇ"1!lþÇÄôÇ#$!#  $#!5 !ôîÇ ü¨Ço£È%4 È Àœ‹‡ ¬ò%¬È «Èü†À¦V Íü¡Ã‹üµÄ÷üü³ÅvüèÆ7üàÇ7&¼† üëÀ'¹ê²ÀÈ�,ÏÀͶŒ¥Ã¾ƒ‹‡ 4¹ÄͶ"Ý‚·Ý‚íÝ‚ÉřǙș­É™Ê™àË™óG*¤�R{9 ¾¤ Ý‚#ó³ä“Å‚}ôíg³äd·ÅY ¾ ‹‡ Ü=Âꓳä:r³ä�SZìÂêá³äˆÀ³äÛ¡¨‹‡ O „‘Í”start_pattern_lenÁ¨slÁœ�K old_start_idÁ©ư‰ðž new_start_idÁFŽ-§Ž-Ǽ –î톦±áï2Ê¡ÁðÝ’ñäê†ëõó@ê†Íê†è‹‡  .œ•ädšä¡‰ $•ätšäµäLµä”µäüáä\üáä ü°Ü“åQä­ ,üÝäa Àœ÷ñ?˜-Ýå @Ýáå àýTàå�² B 8!ÄÒåLšæ š‰²æäšæD¤æ�û >. ”¤æèßšæ Æ´ E # / ?˜ìšæ mÌæ áÐæ Ìý4Ïæà³B8 !à¶æ [ãµÔ"ȶ.-í¤Áætˆç³í çäˆçD—ç÷ý=- l—çèãˆç Æ´D #/ìˆçmºç å¾ç Ìý4½çà³B8!ä¤ç[ãµÉ "ȶ.-⤯ç\€è"Ôòçlòç�¶".! üòç#4�è̶!? D�è—è#üåç6dåçϽ R#/&°è%„´èt´è°¤'�ç´è& Ìý'¤³èà³%c&8$!ü¥è"$„™é,Ͷü™é'LªéÛ‚ ,/\´éÿÿÿÿ+´ªéü‹é6l‹é�¶+Z*!ü‹é?4Âé̶*@)DÂéØé-üñèudñèϽ)R-/(&ûé/„ÿétÿé°¤1�éÿé0 Ìý1¤þéà³/c08.!üðé".üÿê4¨¨üÿêU4°ë ƒX³äÙóë¬–è… 4QD·ë¤£?˜Ú‹”Áë3ü°ë$âë5üåê‹dåêϽ3—502'…ì7„‰ìt‰ì°¤9�ë‰ì8 Ìý9¤ˆìà³7c886!üúë"6ì‡í<¨¨ü‡íB4¥í ƒX³äÚóë¬–è… <PD¬í¤£?˜ŸŽ”¶í; ü¥í$×í=üíìxdíìϽ;–=/:!&úí?„þítþí°¤A"�íþí@ ÌýA¤ýíà³?c@8>#!üïí">\Éî$Îî�ž $ÉîC$4ÎîXïÉî  ‘Pòž CHB%$)DBøï¶î„ &F FDU Z ÆQòž FlE'ty GE… G)(»î HEྤ³äðî KHdðî 4ô K(J*DôîTÃï Àœ÷ñÓï-þî Lüãî dãîϽJ}L/I+&›ï NxðŸï O ÌýlŸïˆ#Œžï à³NNODM,!ü�ï M� &Ä×ü”ã¿ üˆäË ü‘æ Üãê] üÿæÔ¹ÀÇ:   Pݘìàã·Í ,´ãÍ™<Ãã4ŒäN e Ó×~ ÷ñC Í™Á Í™ø ‹²ò �ØR ݘŠ ÷ö¹ Í™­ ¾ ãµÇ ; Í™þ Í™5 É•/ �ØU ݘŒ Õ�» Í™¯ ÌãµÕI Í™ Í™C É•= @�ëñÏÍ™sÍ™ñÍ™IÉ•"I$eëÖßͶÿÍ™`Í™ÞÍ™6É•65º¨¨ÛÍ™`Í™ÝÍ™5É•55º¨¨ÚÍ™`Í™ÞÍ™6É•6òž �òž Òòž ¯€ú¸ òž Ä•³ä? ³ô‡9Í™ÞÍ™qÍ™´É•® ¸�œ¼üßÁŽà•æÆ 0 ލ ŽàƒçÆ  Ž… �” DÁñ  Hɤ£Û¤£Kˆ#%¡‰ ð±ã½ü°��² �û¸ Æ´� à³ ȶž ÷ý~ Æ´W à³Ø ȶe �¶` ̶@ Ͻ °¤Ù à³¢ Û‚ \ �¶" ̶ ϽÏ °¤š à³c Í‹ Ͻ¦°¤pà³9’ŽóϽ}°¤Hà³�ž àë�»»‘²˜ Ͻ¦à³HÇëdÇë4Ë벘 (DËëÓëÙw ÆëÚ‹Ž ³äÂëô‡wÁñ· ²˜ †¼íd¼í4Àí²˜ (DÀíÈíÚԻퟎë³ä·íô‡wÁñ ²˜ †Læðš‰Äæðdððþš .tððt‰ñ ³íì‰ñd˜ñ¾›  . t˜ñüæð@     - „±ñt±ñ°¤ üæð[     - „ÖñtÖñ°¤üæð€ .„ÿñtÿñ°¤üæð©  .„¸òt¸ò°¤ üæðâ  .dïò,ôò âóë$ïò <ôò”ïòüæð›  .‡óÛü¼ðË,Öð·Í ,Ìðö\Ã)�ü÷öÏÕ�ï�Œºƒ�Œm6�Œ è�ŒÒš�Œ„Ó×U�Œ¼áþš ›¾› d°¤°¤®°¤V°¤þÉ¥¦±ã}dˆú,�úÉ¥$ˆú<�úL¨úš‰tÊú³í´Êú,Ùúôó.<Ùú\öú„œûͶüÖû¨¨ì�ü ¨¨üèùÝ •Ó× ËüÝüµù– ˆÇ ¤Éù·Í ,¿ùÓ×;š‰³í÷Õ�àͶÔ¨¨Ç¨¨¹NtÉ¥’ôóCdƒþ,ˆþÉ¥$ƒþ<ˆþ¬ƒþ4�þä CD�þL¬þš‰tÎþ³í´Îþ,Ýþôó.<Ýþ\úþ„ ÿͶüÚÿ ¨¨ì¡€ ¨¨üãýæ •��  Ï€ È€ü£ý¬Þ ‹‡ ü¹ý·Í ,¯ý��VÓ׋š‰A³íÕ�>Ͷü¨¨ï¨¨áY�É¥ää ¿ôós��Á ,ó„„ó„Dù„Æ« (Tù„DŸ…t™…?˜ƒ‰œí‹ã„­‰Ͷ´§‰L´‡ š‰Ä´‡d¾‡ù¬  .  t¾‡LÜ… š‰ÔÜ…tæ…¹­  .„æ…)\ç†ü˜†*ü˜† �® D¹†  $ü”†/ Àœ³ä±€ ?˜é  \½ˆ̽ˆ üî‡*üî‡ �® D�ˆ  $üê‡/ Àœ³ä±€ ?˜„ Ո܊Ͷà�‹t�‹D“‹Ú° (T“‹ü�Š*ü�Š �® D¢Š$üý‰/ Àœ³ä±€üö‰6¬�‹D‹ Àœ³ä±€$Å‹³ä?˜\ó‹Œî‹ ï‹& (M\—Œ¥Œt¥ŒD©ŒÚ° (T©Œô–Œ ,üî‹F   - üî‹h! !-! ãŒ,„�#¬„�$#lŒ�ˆ#  $#"ˆ#A"$d¯Ž,´ŽÉ¥$¯Ž(<´Ž8ó¼Ž) Ìý"L»ŽÚ¤(])8'!ü�Ž5ì�Ž ¨'´®Ž&%ü�Ž7%&³äü�Ž; Àœ³ä±€%ÎŽ ßüçƒç üá„í ü�…Á üñˆóü�‰Ç„׊üøŒÖ*�¤Ü»„·Í ,ùƒÅ‚Dˆ„ôí,¤„\儯°Ô,‘…d¶…î÷ö±€­E÷öe±€g�Œ\‹ãÌ$Ô‰±€~ß5¾«©Øúç�ŒøW«Ž«©¨�Œy�ŒF�Œ,üŒÚ�ŒÔ³äï³ä&Ó×WÓשɕˆ q©Æu‚x«¹ }÷v÷Œ÷¶¡‰¶ ‚¹"@xˆ#„ˆ#I³ä Æ« «ù¬ ¹­ É�® }�® ÛÚ° ?�® Ú° ÛÉ¥–Ú¤Tÿ»3üÃ�! çóë á�ê�àü‘�Yòž ¬£�·Í ,™� 1dÔ�,Ù�É¥$Ô�<Ù�”Ô�üÔ�"lé�ˆ#0 A @ˆ#ü�áü³�I,Ä�·Í ,º� Ó×ÒŸ!E©ˆ#´ˆ#É¥ ±ãèTØ‘óëœØ‘4ã‘�À.Dã‘ñ‘âüµ‘<Ó×,È‘·Í ,¾‘Dzx9�À~d¯“,´“É¥$¯“<´“”¯“Ç“ãü…“B,Ÿ“·Í ,•“Ó×r8É¥�±ãk,…–„…–D‹–Æ« (T‹–D±–t«–'»— œí‹ãß—  tß—Dã—Ú°  ( Tã—\‚— Ì‚—     \Ø–E  š—ü‰˜%Ͷü˘' R%ä­ü‰˜j4Ę ÷WM<üĘ/L�™  \Ç™üÇ™1\虿ñ . ô™ „è™ö­™ ùöŽ"` 8ö¬™-†ššš-* 2J ¾šZbS ‚�• ‹gÂÇ ÏùÕñ@`áÕñ`ºò ùÖŽ"`)üÇ™O4Žšêó _DŽš\¸š"Ô¸š\Äš¿ñ "- К!tÄšü¸š#4Óšêó !X DÓšüÇ™•\¬šÝô  Hü¬š0üÇ™³4òšêó JDòšüÇ™á\�›Ýô D\œ›Ä�›üÇ™ÿ4¾›êó LD¾›,ô›$¬ô›%$lü›ˆ#  %$"ˆ#A#%¬�œ'#l¥œˆ#  '#"ˆ#A&'Tÿœ +óëœÿœ 4Š�ßÜ+/*DŠ�P÷“� , ¶ý#&d’� ×Ò*],;)!ü¼œm ü¼œ  ©ïõêœ)üúœ$(3°�æ ü¢•Žüó•½üŸ–‘ü©—«üÕ—ÿüÿ—Õ.5üè›Èü“œ�.è• ±øL¯•Å‚Dº•ôí,Ε³äÜ•\÷•¯°¨,£–dÈ– �Œ‹ãpÙ—«©hƒ˜ͶÍä­Àz1ÊÝÂà†š3Öà+¾š!ŽÍ=ÿàFͶDwͶ±bͶ²ÐüͶEc,ì›=�Œ7—œ�Œù'Í™XÍ™ªªòËðü•†šõ ™©Æ�‚ Ž-£«¹ ¨÷¡÷Œø ÷Œ� ¶†Çwǃ‚õ#’å &µ"ˆ#.ˆ#éˆ#õˆ#Æ« ØÚ° ^…˘¿ñ 3ššæ¼Íºò 1êó ¿ñ Ðêó —Ýô têó JÝô &êó úßÜ×ÒÍÔÓ¬4óŸ<‹ ( ••²ù—ò&˜¦Â™ Âšä›¥ œôùÂ�–úÂ{ü9TäkÉ ¬ðl‹ “  á¬ð(°,“ ”† $®  Å™¾¤Á§\Æ  Р+ -Wtü¡)žÛ )”ø¡  #  4  üæ¡%Œæ¡ ¶_"üæ¡.4Œ¢ øWôíGDŒ¢t´¢*žÛ *”°¢    dÑ¢ È%ü­¢‘tù¢+žÛ+¤ô¢ õ¢& ( MÄð¢ l—£ È%üí¢ÑtÖ£,žÛ,¤Ñ£ Ò£& ( MÔÌ£ ,té£-žÛ-üÌ£+$ 5 œ—¤t—¤ ©"¦¤$ä—¤4«¤ Ó_‹ãêæLD«¤ü…¤/ È%®ŒÔ¤lؤˆ#  "ˆ#A¬ù¤l�¥ˆ#  "ˆ#A<¤¥.žÛ|¤¥,¬¥ â¬ð.4#<¬¥Pú´¥$ ¶ýd³¥û³#c$;"!ü¤¥&DÀ¥ ²Ó×"ܤ¥!TÀ¥ü¤¥/4Ë¥ Ó_ïçÑþÑþÒþTryFromSliceErrorÁÓþó–' —�gˆâ~×W!© DË¥üê¦'üê¦  “# ,‹§%&D¥§' Ô §& %'ü›§  Å™¾¤&r}ð ü¨Ÿ™üëŸÖüÕ¡ìüž¢£ü£|üȤùüï¤Òü˜¥©üá¦`/€úü¾Ÿ" çç“)ê±)ÂëŸÂŒ×®Ç¦T=…¬ðL°Ÿ ïŸ�Å�ŒXôíT١řǙș­É™Ê™àË™óG*¤�R{9 ôíÚ'U6Å‚D¢¢†´Ì1_�ŒBÆ£.“Á�Œ¤�ŒPý‹ã•ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‹ãêæ,̤�Œ°ó¤�Œrïç,œ¥ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwïç³èúÓ×+Ó׃ðü_³ä妾¤4Å‚LžÛDžÛMžÛVžÛ_žÛhžÛqžÛz „Ÿˆ start_typeÁ{©Æ ÷Œì‚P’I¹•B Ž-Ì%­ˆ#$ˆ#߈#ëˆ# ±Üà ÿÞš ¨ßx µäñàäÍíæÇû³åç^©è!¡é±„ʨ Tä­ü»¨ d½¨ ×g »¨=ô½¨4⨠Uä­<ç¨  ¨¼ü»¨4,ܨ ´d�aOœÜ¨ü»¨=4𨠻dXDð¨þ¨ôüü§‚ ÏÁ\¥¨ Šë,ƒ¨Ù Ѝ ¨d¨d DebugStructÁ«dñ�d¬dÇ �d­d has_fieldsÁ�d»1âî¦9èÏ‘õ—“õ ä­Âä­q¨¼c†šl´œ¶êöò¨¼¡õó�¯ôN <‰¬T”¬  ŒŒó�Žï5Â�ˆùÂ�ã‘¥ Âñ¼8+åíÕ�¬ðœ”¬4Ÿ¬ ìð ‹DŸ¬Ì”¬ü‰¬$$ì Å™ê” å­T笜÷<�­üø¬´ø¬Á†. üç¬1,ò¬ À¬ðpJüò¬&<¬­ ,¶­ ¤¶­d¼­ÚŒ ( t¼­ô¬­      ü¢­( \Ô­ Å™ê” @KþüÔ«‘üÛ¬Šó¾ Œê« õõž,øË!ÂùŽ-ÂÁÊVIç †x¬ðLÜ« Ï(Ó×^ê” ,߬³äÁßvYð™ s�ŒDœ÷iœ÷qzƒ\õŠøÕ±ã¯Á†2ãùÚŒÀ\é® V ä­ÜÚ®dÜ®öò Ú®8ÌÜ®/$ü® Wä­D‚¯  ¨¼üÚ®1,ö®õó’[I¬ö®üÚ®:4Œ¯¯ôLDŒ¯š¯‚ü›® ÏÁ\Ä® õû,¢®Ù ©®‘õ¤‘õ&“õ/ä­Qä­¨¼÷†šÿSœUˆöò|†š¨¼3õó¯ôæX×Õ°³ä †³ä08 p×”±h×Ù±°×¤³ Ó× pדµ Ó× ¨×ö¶ Ó× x×¶¹Ó×(×�° ¡ ו°¬Cê” Oð™ W³äqô‡zDç› M3†š<Ó×"ɶ+Ó×ɶÓ×þɶÓ×ëɶóØâÒ�þ †Ì–³± †ÓכÅ~Ã…aÃ…D3œžÑd£ÑÚŒ$žÑt£Ñ¾ÑL¾Ñ”¾ÑüêÑ[üêÑ ü°ÔœÒXä­ ,üæÑ` Àœ÷ñ´Ú2l÷Ò  \‡Ó L•Ó ›Ó  +@;   –ÓO\¨ÓüôÒA� Rž¼‡Ó   I4ÚÓ¬ÌÓlÌÓ ¶1 (ôÌÓ4âÓ Ó_Õ¶O DâÓìÓü¿Ó1d¿Ó Ĭ–`5 ,…Ô„‰Ôt‰Ô Ù �†‰Ô Ìý¤ˆÔà³h8 !üúÓ"§ÔŒ­ÔXÓ×¼­ÔXȈ«Ô àýܪÔ�²f8!ŒÖÔYÓ×ü§ÔA|ÆÔ øxô§ÔY<üÆÔ"ýÔŒ�ÕZÓ×¼�ÕZÈŠ�Õ ÌýÜ€Õà³f8!üòÔ)\²Õ"pŒ¯Õ! ¶ý ¯Õ"p�¯Õ ö¶!J ## ø�¦Õ‰@%#OTÆ·%`$hm&$y&?˜ ªÕ'$à|ÙÕ<ÞÕ ‰$ÙÕ' æÕ+TÞÕl¼Ö00+Z*+ÄÙÕ4éÕ²˜ *)DéÕóÕ,üÌÕ+dÌÕϽ)Q,/(&�Ö.x�”Ö/ Ìýl”Öˆ#Œ“Öà³.N/D-!ü…Ö-¼”óÖ\øÖ¹ã $óÖ4løÖüåÖ!låÖ�¶4E3!üåÖ*4‡×̶3@2D‡×‘×5üØÖ=dØÖϽ2R5/1&®×7„²×t²×°¤9 �’²×8 Ìý9¤±×à³7c886!!ü£×"6”ß×\ä×¹ã $ß×<"läר”Ü×; ¶ý Ü×<¨—Ü× ö¶;J:##=:ø—Ó×À$@?=OTÆ·?`>%hm@>y@+& ××A>à”ŽØT“ؼæ $ŽØA žØB'l“Ø¿ØEBd¿Ø4ÃØ ®"E*D(DÃØÍØFü²Ød²ØϽDSF/C)&îØHˆ˜òØI Ìý|òب"œñØà³HNIDG*!üãØ!GŽ$T½Ù[Óׄ½ÙL[ô°Ùd°Ù ¶L1K,(ü°Ù'4ÏÙè‚ KGJ-DÏÙ «ÙM 4§ÙNONPMO, POM.ü§Ù0MJáÙTšåÙU Ìý åÙ,äÙà³TTUJS/!TìÙ\ÓׄìÙW\�œêÙV àýW¤éÙ�²SDáÙV;R0$TŽÚ]Ó×üáÙ8|þÙ£�RäáÙ]7Q1ÜþÙT¤Ú Àœ÷ñm 2x �ü�З ü‘Ñ£ üÛÒÙ�–ü„Ø�^ݘìéÐð™ ,½ÐÍ™<ÌÐ4•Ñw Ž Ó×§ ÷ñl 4ßÒ  ÷ ÿ  ¹  ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÕ¶Œ ¥ Í™> Í™± Í™ É•â   Í™T Í™¯ ‹²… œ Í™² Í™ É•ã ú ðüW ðü” ° ðüq Ͷz ‚çƒ Z þK‹ô‡ü³ä ͙͙͙UÉ•Oúc¤ëÃÕ Í™–͙͙lÉ•Elðü¡ðüÞðü»ͶÄ‚çͤS‹ãˆØÎ«©*Í™ùÍ™ŒÍ™Ïɕɰª Ha¼ØìôûÇ͙͙‚Í™Ëɕŋ²SjÓ×@Ó×IÓ×RÓ×[Ó×dÓ×m w�œ{ü߀�Ba�¦ #Ÿ '�)=Ÿ«A÷Œ\B@Ú¨"M ˆ#'ÚŒ¬±ãyü°L鉨—Š°ÚŠvš‹;à³ÿ ±ã¬ �²… £�O ±ãü à³Õ ö¶^ Æ·e Ø�¼ ²˜ [ Ͻ* à³Ì ¹ã � �¶k ̶J Ͻ °¤ã ೬ ¹ã { ö¶$ Æ·+ ¼æ �¥˜QϽà³À±ãq¬šgè‚ ?à³m±ã9�²£�Ù(ãþ€ Yä­øã¶�*Zä­êêBTreeSetÁíƒ €ºªC¤±J°³ä½‡fr¨¼ž£¤¹ °µ¡¦Çãƒ�°âÏÁî òüùÙÂä­ ä­ú¨¼  ò©Ó«=œKVÑ«¨¼K¤¹ küÀ  ìÀ°¤ ü£=³,¸&_Á4Á8ÁHô«/�õÒÌ )1(ôÑ, ±�õôÖ,¶1¨ý= ¨ýH�õ†—Î ŽakÒÌ «\ÎJ�õ¤ÎJ4ÚJ ¥�õ…ò5DÚJìÎJ4ãJöÒEDãJü½J0 ±ý†óJÁüøI{Öþü’J ¨®,ˆJý†vƒò®—Î Ì#G‹¯ÓöÒ©\öK�õ¤öK4‚L‹¯+D‚LüåK' ±ƒò’LÂü°Kb“ö”ÈK¨®,¾Kƒòu—Î “>‹¯š\œM�õ¤œM4¨M‹¯+D¨M|ûN4‚O Ýw4ûND‚OäûN$‹O €Kd‹Od©Oä©Ol¸O³ !³?üÎN†ÜÎN Ävªt+äOÃüåLÿü�MÕ Ó×,ÿL¨®,õLƒò4“M—Î p  Hèý�Œ÷H½!K� ³³‹¯Å沦”³€ ³w_¡´|¥RDªR Ã�õ$¥RTªR¬¥RÀRÄü÷QI,•R¨®,‹RÓ×o5´¶Œ±ãfTÕWÚW Æ�õ$ÕW,ÚW|ÐWä‘XùäŽ"` ä�X†š §f0 8P ¾š ` h[ ˆ  –› ‹g È ÍÕùøñ@`áøñ`ºò ùùŽ"`)|µXDºX´¶$µX TºXlëXLïXµ !µ?ìÛXlÛX³ !³?l˜Y   3 ÔŒY\ŒYû‡Z T·Y ÀY$ ' KTÃY ÌY$ ' K„ÃY  +àå·Y ¶ýô¶Yû³ ,±Y;"ÚYÅüšWÀŒ“ü©X±üÎXŒü‚YXÓ×,½W¨®,©W °W ? ÊÝùÂàú†šÖà ¾š–¹ÿà'Ó×,­X4ÒX�Œ�ŒÓ†Y•�¤ðüUN�ŒW© �Œ�ŒÃ†š¹ûŸÿÇÝÇé ¹•Æ Ñ È¶°‘ٵ嵥³±³Ó·­ظCĹ]ºò ˆ´¶_û‡^û³0\È[�õ¤È[4Ô[‹¯+DÔ[ Ý[ ¼È[ 3ü¸[(|¸[ ¶c'ü¸[14á[ Ó_Õ¶MDá[ï[Æü¢ZÍ ,·Z¨®,­ZÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÕ¶ä/ƒòy—Î ˜fQX–¹‹¯·ÓÄ9€Å Tú]ÿ]Ó·$ú],ÿ]|õ]$š^ Å™Æþø_ lÏ^LÓ^µ !µ?ì¿^l¿^³ !³?|…_DŠ_´¶$…_ TŠ_@è•_ ÌýT”_Ú¤ W 6  üò^-Œò^ Ø Ô„_ "ü´_( \&ä­üò^k4­_ Ò_ÆþÄò `>  ü­_0\ç_ Å™Æþ § ²Çü¿]¹ü²^Æüæ^’řǙș­É™Ê™àË™óG*¤�R{9 ÆþlÚ]¨®,Æ] Í]‚°4¶^U�Œ^�ŒÆþ,ê^ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÆþÄòÂÓ×òÓ×?É•"䭿ПÔÑ ÉÁB° pµ+µë³÷³Ó·Ï´¶ÊÚ¤�—Êm×Ê4üê`! ·�õ ˆa‘aÈü¼`U··Õ„º½!¦»Ÿ¦°z'“Hh�õŒÎ`¨®,Ä` kœÆddËd Ì�õ$ÆdtËd´ûdl„e³-  > ?³1úÞ]9úæ] É�õ¬–†š‰úÝ] Aúþ] †šIúˆ] †šIú­] Qúº] Éú¬]    �fL�f”�f ùúç!] ±šhëöe É�õ¬–†šñëè] xëõe&†šظ&)1H ¾šX`] :€Ž“ ‹g:ÀÅÍùúË<] Å™ÊÝùú‹}]ùú‹ ]÷Œ !ú¬] Qú²] Yú¾]\BüÉf0üÉf ü°têf^ ä­ )üÅf5 Àœ÷ñ™jTógøgÓ·$óg ,øgìágŒág�¶> üág&4ÿg̶; DÿgüÔg9dÔgϽ>‰h &¨ì£i" ¶ýl£i³¼¢i×ÒŸi"F!"|ØiDÝi´¶$Øi$TÝi¨ïèi% ¶ýlèi³¼çiû³$e%D# üŸi`|Çi£�!ÔŸi#ü×i' üÇi8T‰j Àœ÷ñÉÔÉüÅcÔü¹dàùúý¬]ùúÜ¿]œ£'ݘì‘d¨®,écÍ™øc4½dòŽ Ü†šx†š!†šñ†šä±ÝÓÛ� !úà]Cº� mÊÝñûè]ÂàU†š�Öàg¾š^îÔyÿà‚æüÓ×÷ñg ÏëÃý-ÈÍ™sðü¨Ó× Ó×eðüH†šQ�œVüß\±� & Å�  ¦%Ç\Çhú³³löe³L³Ý³ÖÐt±ã+ظµœÕÎ÷Œ âü° Ó·L�¶+̶ Ͻí×Ò�´¶{û³0£�’š³XgÉÆ†š…Ü”è³ Ÿe ÎÝÉN†šûR |ámDæm´¶$ámTæm¬ámümÌü³mI,Ñm¨®,ÇmÓ×i5´¶†±ãfñý©©]ñú©©]¨�L”o_ä­ 0ùüš©.]IüŸ©]â� ‘o\ùüŸ©)]¨÷Šo ™‘P".?˜t¸oTºo óg ¸odºoxøžo�’?˜§’�\Ùo$Þo È�õ$Ùo 4ÞoXûÙo  ‘P×Ï I #( øûÐo< C  RW ÆQ×Ï i  qv  ‚   Ôo àÆþ$óoþo¨¼tóo,øo �eKA Løo$•pl•p4šp Še,Dšppü•p ™‘A".ñÿ©©]ñÿ©©]¨�·p`ä­ 0x ý¢p�’?˜§’�ùþš©.]IþŸ©]â� ´pˆùþŸ©)]ÁpÏ ü¿n‚–�¤¬Šoü©o˜29±·½t•p ÏÁŒîn¨®,ÆnÙ Ínè܇ÏÁËÊÝ $÷d÷d DebugListÁúd” �d“åF:û_�D­o×Ï×ÏP×Ï+ÕË4 ×Ï@Æþ¾ ¥ë�§ìº¨¼´ ÆþÀèÜ<ÏÁq§ì‹ÙÊÝ œÆ "?˜§’Ž‹?˜listÁé� —|Æ V?˜§’ާ ?˜¨�Žâ�^™‘*Ùäå�’8±å›ßåt­æ{Å쨼ʻç°ûçw™‘R¨��’`â�Ã(€Îp a ä­¨€‡q bä­ ±±¢„³½!¦ >¼B�y®þ\¨¼@€¢q Uä­ )  5 ¨¼ÍÒ¬ÖßäÑÖns€Óp¿ ÏÁ( ··Õ„º½!¦»Ÿ¦°z'“Hh®þqÙÂzä­ƒä­t¨¼} Êï‰ä­%¨¼.äÈ 7†š@ÏœÝè¦ò¨¼ÞäÈ ¨¼{¬Ö\ÄrÊï4Ôr¼ÄrÐr Ç®þD5\ÐrÀ€Är  �%ÕËL#(4GÄÄrmÆþ\ær ðr) ,½�Ûr �%ÕËřǙș­É™Ê™àË™óG*¤�R{9 ëÝ?˜Îõg1Ñ\ûr Å™ÆþŒs ÔüŠr‚ü¸rTÔÚàZ ÕËl r »ñL’rÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ÎõÆþÕËXuuÆþò�ŒãÊï�˜ÁB,¼rÆ ³?˜ÎõŽ;Öó·ô¤Äõ« ACCEL_CAPÁ°�˜}#(�ìy À�ñyÄ-Æþ9ÅìAÞùy Þù„]g †Þù§ ACCEL_CAPÁ4Á4Á2Áü¦m(ü¦m! £,Èm#<émÌØm\Ým ü$Øm3¤Ýmüúm« þ¤ü±€ø„UÿÌÞ üØmÎ<òm Ç_³ä±€ø„þ¤üÚüèüžqüòm´¬qýü¨l„ü™m“ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³äø„Üól ¤ü,ÈlÌÞ ,×läì4�m�¤_ù¤x–ý?:¬—>ØA×èûàžü¯„ýR†nL€n#$Ëp ‹‡Å‚üçp&üçp  ¿ $ˆq#$«nó†,Ôn ÌÞ üÔn",ïnðë  +<ïnüÔnF\Œo é§@ ˜otŒoü·o& c$ä­üÔnŠ4°o…Ën5ü°o.ôðo„ðo ¼$�p4‡p(¥qþü˜n„üÇnÕü©pr ø„ÿm–ýL±€ûm̘ni4ËnͶ&Uä­ùÅ‚ØÌÞ ›»\Q¬—›ÌÞ ÿ†ÉÑ d¦‡% 言ðë Τ�®…Ë^¨‚7 _ref__inputÁü”x(ü”x! ¥,¶x#<×xÌÆx\Ëxžü$Æx,¤Ëxüèx¬ €¤üÚüèüüÆxÏ<àx Ç_³ä±€ø„€¤üÚüèü‹eüàxµ›{ÿü–w…ü‡x”íýÜáwÊþ,¶wÌÞ ,Åwäì4‹x�¤öù¤˜†Ü8¬—<Ø?ý„užüD††úôxLîx#$ºz‹‡Å‚üÖz&üÖz ¨€$÷z!$™yó†,ÂyÌÞ \ÂyÈy æ.,Èyôßy„ßy¨‚$ðy4öy&”{€-ü†y…üµyVü˜zrø„íx˜†`±€éx̆yä4¹yÅ‚7ÌÞ •»\7¬—÷ÌÞ ÿ†*Ñ K¦‡„⨀|£‰/¨‚ Ûƒ$Ù� Å™³äã��ü‹�X¨¨|¿�Êþ,¤�Å‚,«�_modeÁNÀ¬ ޤüÌ«Ó×ɬŽü‰¬@Ó×,°¬Êþ,˜¬³äŸ¬Ì«t_idÁ$TÁ¬ µÃŽ�Ì«ßΫAî$û± Å™ò¯…²�üñB­¯”Þ±Êþ,Ô± 1„õáLúá ‹¤ü$õá\úá2t‰â<Žâ Œ¤ü$‰âLŽâüõá" ,Áâ ô°â„°â âÊþ .,Èâ-øš°â  é K$ 0  ?˜ü°â mõÚ  & üªâ%  ›Îâ [²ê °" �%çÝ ²ê  8ÓˆãàáýL�ã $ðâ Å™áýDíâ ÀœõÚ ø„|æâÃãàáýÊã�ë\�ë4�ëõì (D�ëáàáýD§ã Å™áýd¤ã ÀœõÚ ø„?˜üšëz ‘¤üŽœ ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwřǙș­É™Ê™àË™óG*¤�R{9 áýø„Uÿ Êþüëꪴëê ÷áý‘¤üã•�—,‚ë‰ë©)S›ì� üïଠüåá¶ ü¡âú ð÷þLüƒã-t¾ãçÝ üµá%Êþ,ŠáÌÞ ,™áLéá»áý¥âõÚ ªÿ� ÿçÝ <‘—V†²ê �õÚ ß$ÞâõÚ ,áýo¯ƒ xeõÚ �áý߯ƒ ùº—k‘—t Ѭ—Ô utf8emptyÁáhmÁÜÆ ? Ž’ ê™ê™ ê™­«Þ�ò¡�¶ƒ‘[ é .á’5õì ª°—L,Ëë ‘—ôºë„ºëƒ‘ .,Òë'øœºë  é E$0CüºëmõÚ üêëîë þWáý�—’¤üáý�—Uÿêë?˜À�´òëÜîë�Øë[²ê æ" �%핲ê 8 üçë# Àœ¼–ø„”ì ‘Êü°ëd•›¡& í•¡ë º—ÌÞ ,›ëÿ�  çÝ ×è²ê ðõÚ w¼–d‘—O¬—J$‹á‘—gotÁ´ëÆ HŽÓ¢ƒ‘_ é 8²�Ù«žF _ref__selfÁüë\üë4ÿëõì (DÿëŒ÷ë ˆì’�—öëÀ� áýóëy¯ƒ ’ê™Põì ¡„«�L°�Þ�$«�\°�,t¿�<Ä�¡�$¿�LÄ�ü«�" ìæ�„æ� ç¤ü$÷�,ý�0ðžæ�  é M# /  ?˜ôæ� mõÚ  % üà�$  Ÿƒž [²ê ®"á’ .ǽžàáýLÅž $¥ž Å™áýD¢ž ÀœõÚ ø„ |›žøžàáýÿž¸Ÿ\¸Ÿ4»Ÿõì (D»ŸáàáýDÜž Å™áýdÙž ÀœõÚ ø„?˜üÅŸy ”¤üã•Êþü–Ÿ©´–Ÿ úáý”¤ü㕨,­Ÿ´ŸòqQÅ “ ü¥œ ü›�ªü×�î-4;ˆü¸ž-tóžçÝ üëœ%Êþ,ÀœÌÞ ,ÏœLŸ�ÞáýÛ�õÚ æÿ� :çÝ zº²ê ÃõÚ $“žõÚ jáý­¯ƒ ¶£õÚ ÎáýO¯ƒ 7ꨩ ¿¬—ÂÖ™Çê™ÁÆ a ޳ ê™?ê™Lê™Ù�Þ�ú¡�Äó£~ é Ná’Uõì Öà¨/$öŸ Êþì埄åŸó£ .,üŸ'ð åŸ  é D#/BôåŸmõÚ ü” ˜  þWáý�—•¤üÍ�” ?˜Ñ®´œ ܘ ¡‚ [²ê Ú"«ž.óü‘ # Àœ¼–ø„¾  ”ßüÛŸcŠ�– í•ÌŸ ê¨ÌÞ ,ÆŸÿ� ‰çÝ Àݲê åõÚ a¼–OÊþd¬—J$ÁœÊþ¹ŸߟÆ ;Ž»µó£F é -‹ ¦ \¦ 4© õì (D© Œ¡  ² •ò�—  Ñ® áý� y¯ƒ ’ê™:õì ¡„‡ÂLŒÂÞ�$‡Â\ŒÂ,t›Â< Â¡�$›ÂL Âü‡Â" ü³Â0ä³Â ï¤ü$ÐÂ,ÖÂ,ÝÂ9ø¢³Â1  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwø„¯w|ˆ ?˜,ô ŒôÂLú º +  \ú£ã [²ê ü" �%ªµ²ê  8o  ¼î  L¼Ã   4œÃ Àœø„?˜ ¡ÃüÊÄg —¤ü�œ šÿªµUÿ¨üèÃØüèÃ" Á—¤üĸ¨,œÄ,³Ä�I4Éà Àœø„?˜ ÎÃÑÅ–üÞÀóü÷ÁÚ£ª±ü³Â1ªµ´ÖÁÊþ,…ÁÌÞ ,”Á šÿ,¯ÁLûÁ¨ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^²ê 7ªµ€i²ê rõÚ ¤ šÿÂ$”Ã2…¹è׬—ÚƒÙÖ™ÞÆ ß Ž3?˜mÞ�¯¡�yå´3¤µúÚ¶Kš·ÿ¸7$ŒÅÊþüïÄ0äïÄå´/,’Å,™Å0±Å—㪵ØÄ …¹þÌÞ ,ËÄÙº,ÒÄÊþ¬—"ƒ$$†ÁÊþTå´Å‹ „çêLìêÞ�$çê\ìê,tûê<€ë¡�$ûêL€ëüçê" ü“ë0ä“ë ó¤ü$°ë,¶ë,½ë9ø¤“ë1 ¤µW$0 ?˜,Ôë ŒÔëLÚëÚ¶ )  \Úë¥Ãë [²ê ¢"š· .»b  ¼Îë  Lœì   4üë Àœø„?˜ �ìüªíg ™¤üĸ¨üÈìØüÈì" Á™¤üĸ¨,üì,“ígI4©ì Àœø„?˜ ®ì±î˜ü¾éóü×êÚ~…Œü“ë1ªµ´¶êÊþ,åéÌÞ ,ôéÙº,�êLÛê&÷ºeªµ®ñ²ê úõÚ *ó»E$ôëÂØÃx�¬—„ƒ†Ö™‹Æ d ŽÝ?˜Þ�Ù¡�£·À]¤µ$Ú¶Íš·2ÒÃà$ìíÊþüÏí0äÏí·À/,òí,ùí0‘î™rªµ¸í ØÃ�ÌÞ ,«íÙº,²íÊþ¬¬—"ƒ$$æéÊþã·ÀÅ‹ ÌÕ…¼Õ… ¹TÁ†üš†2ÔŸ† –¤ü$š†,º†@üŸ†-ø§š†3 ¤µX$ 0 C,Û† ŒÛ†Lá†Ú¶ (\ᆨ̆ [²ê Ÿ"š· .¸üŒ†j <‚†  ‡† àáý ›‡ \›‡<�‡Òí ( L�‡Ô�‡4”‡ ¢4�‡J œ”‡4Ÿˆ„Ÿˆ<¦ˆ ¥+ L¦ˆ+ ¤³ˆd¹ˆ ê,³ˆ t¹ˆ04�‰ Àœø„?˜�‰ šü®„ßüÅ…Èü÷†�ÕÜãüš†3ü…‡óªµ´¤…Êþ,Ø„ÌÞ ,ç„ Ž€4‚…šÿLÉ…õÚ ÷ºËªµÙº0c²ê ló»­2áý'Ú‹ã ¯ƒ &° Ž€Î‡²¬—µpatsetÁºƒ¼Æ ü Ž?˜£¼ o ¨É%ÜÉù¤µ¿Ú¶kš·ÍÒí ÈÑ̦”ÍjÐÍ5D§Šü§Š#T°Š ù®þ0<»Š,ÄŠÔ°ŠЊžüà‰p³ä<•Š  ®þ,ä<õ‰,‡ŠþÒ )’Š,¬—0p¤ÒÌDÛ‹üÛ‹-¤ä‹ ú®þ0<ù‹,‚Œüä‹$ŽŒŸü䊪³ä<É‹üÒ,Œ‹³ä<›‹,µ‹þÒ )’Š,¬—0k�ÔÈDâŒü⌠tëŒ û®þ0<úŒ¼ëŒˆ� ü¢Œf³ä<ÐŒüÒ,´Œ³ä<»ŒþÒ’Š"RòÕ¦DŠŽ䊎\“Ž ü®þ/4ŸŽœ“ެޡüœ���¤Üä�üÒ,´�ù¤4Ã�þÒØ!R´×¥D±�ü±�#œº� ý®þ0,Î�Ôº�Ú�¢üÀŽšíýÜ‹�üÒ,àŽÌÞ ,ïŽþÒ¬—"S÷اDß�üß�#œè� ÿ®þ0,ü�Ôè�ˆ‘£üî�šíýܹ�üÒ,Ž�ÌÞ ,��þÒ¬—"S»Ú§Dé‘üé‘$¬ò‘ �®þ0$ˆ’Üò‘“’¤üœ‘w¨¨|Ï‘üÒ,µ‘Å‚$¼‘þÒ¦‡"RÿÛ¦Dá’ìá’„ê’ ‚®þ/û’¤ê’„“¥ü§’]$Ò’üÒ,»’³äÂ’þÒŽ-!OÁÝ¢DÏ“ÔÏ“lØ“ ƒ®þ/擌ؓü˜“W$À“üÒ,©“³ä°“þÒŽ-!O€ß¢Dº”Ôº”lÔ „®þ/Ñ”ŒÃ”Ú”§üƒ”W$«”üÒ,””³ä›”þÒŽ-!O¿à¢D¦•ܦ•t¯• …®þ/¾•”¯•Ç•¨üî”Y$—•üÒ,€•³ä‡•þÒŽ-!Oþá¢D“–Ü“–tœ– †®þ/«–”œ–´–©üÛ•Y$„–üÒ,핳äô•þÒŽ-!O½ã¢D€—Ü€—t‰— ‡®þ/˜—”‰—¡—ªüÈ–Y$ñ–üÒ,Ú–³äá–þÒŽ-!Oüä¢DÞ—´Þ—\ç— ˆ®þ/lç—ú—«üµ—E,ΗüÒ,Ä—þÒ 8»æƒD˜´Â˜L˘ ‰®þ/Õ˜l˘Þ˜¬üŽ˜P,²˜üÒ,›˜³ä¢˜þÒŽ-!PÛç£D¼™ü¼™!lÅ™ Š®þ0Ó™,×™Äř㙭üò˜q‹ãL¨™üÒ,ƒ™³äŠ™,—™þÒ )Ž-+÷.hœéÄD�š¤�šL¦š ‹®þ/\¦š·š®ü÷™@$ŽšüÒ,„šþÒ 7üê‚Dïš”ïš<øš Œ®þ/Løš‡›¯üËš<$àšüÒ,ÖšþÒ 7›ì‚DЛüЛ#ÄÙ› �®þ0ÔÙ›ù›°ü››^$Á›üÒ,·›þÒ 7»íƒDÜÄÜ\Ìœ Ž®þ/Øœ|̜ᜱü�œTÓ×,³œüÒ,œœ³ä£œþÒŽ-!QÚî¤D­�Ä­�l¶� �®þ/|¶�Ë�²üõœV­¯”��üÒ,†�þÒ 9›ð„DÕžôÕžtÞž �®þ/,힬ޞùž³üß�šçÝ ü¥ž%üÒ,ú�ÌÞ ,‰žþÒ¬—"T¼ñ§Dƒ ôƒ tŒ  “®þ/,› ¬Œ § ´ü�ŸšçÝ üÓŸ%üÒ,¨ŸÌÞ ,·ŸþÒ¬—"T€ó§DÔ¡üÔ¡1ÔÝ¡ –®þ0,ø¡,ÿ¡üÝ¡(‹¢µü» Ðªµ´³¡üÒ,â ÌÞ ,ñ Ùº,Œ¡þÒ!*¬—-ƒ/kÅôÈD¸£ü¸£1ÔÁ£ ˜®þ0,Ü£,ã£üÁ£(üŸ¢Ðªµ´—£üÒ,Æ¢ÌÞ ,Õ¢Ùº,ð¢þÒ!*¬—-ƒ/kªöÈD¸¥ü¸¥5ìÁ¥ š®þ0,ߥ4æ¥üÁ¥,ó¥·ü¡¤Òªµ´—¥üÒ,ˤÌÞ ,Ú¤±Ï4õ¤þÒ!*¬—-êÏ0l�øÉø‹¥¯!õÚ  †õÚ 19ð‹ÿ²¨¨‘õ*2 ‹ȵø‹Ú¸* ͶÓô +3À‹¶½  (‹¡­ Å ‹¦­Ì; šÿGó»OõÚ I¬à R¨¨Á÷&÷†šÿͶ䈃ìºç› ©³öù¯‘õx–³HÓô,±…û(Œ¨­ dä­øŒ¥¯!eä­õÚ ,¨¼ðŒÿ² Wä­ ¨¨+ ¨¼ Œȵ  fä­ *  ¨¼øŒÚ¸* gä­Ͷ,¨¼ÀŒ¶½ hä­)5¨¼RX ág jp]c,2 ü  ÌÑ™ž°Œ­­ÎÌÏÁÙó»âÙÂëä­ôä­ä¨¼í¬à öä­Â¨¼ËÁ÷Ôä­¡¨¼ª†š³ä­�¨¼Šˆƒ“ä­_¨¼hžœ qç› zŽœœ§¬à ¨¼œÁ÷¨¼i†š¨¼7ˆƒ¨¼žœ ¨¼Ó‡€ä�±­Ð�¯­ ".ó»6?I À޶½%6øŽ¥¯!õÚ õÚ ,1 ù±õÚ õÚ HMU\ðŽÿ² ¨¨ ¨¨+0 ù±¨¨¨¨ G L T[  Žȵ '  8 øŽÚ¸*ͶͶ,1 ù±ͶͶHMUZbo޼­ÓH޳­ó»ó»!ã¬à ì¬à õ‘Á÷šÁ÷£@HPˆƒˆƒ˜î ¥¯�…bë…þ�‡T(�êÈ%p�™Ì‹‡Å‚ % †Å‚7?@�½Êó†š Ô�îȽ Ô#�ïÈÚñöü±€  ±€ ¸¿ łłM¿À ì¿À <q�ŠP †(�ñÈ%p�™Ì ‹‡Å‚J Riä­2 :jä­F  R  ¨¼‘–¤¹ £ ¨ � †º@�½Êó†Üäkä­19lä­EQ¨¼#)¤¹ 7=„‰P�öÈÜlryÏÁ‡Õ‹�Ù™¡é‹ëä­²ä­ü¨¼ é‹ú‹¬ä­áä­¾¨¼Ç ú‹Ó œ¿À g¿À  <Ó�¨¼¤¹ Q£�¨¼œ¤¹ b,¥áŒ¥áL«áÚ¶)\«á(¼Ÿá?˜åáàáýìá¤þád„âç‹ ,þá t„â4Ðá Àœø„?˜?˜]  üþá"\“â µ … l“â-  Æâ\Æâ4Éâõì ( DÉâü¯â#„µâ ì,¯â N  ìµâ7  $íâ Å™áý„áâõÚ ü«âQ 4Œã Àœø„?˜?˜¼ã\¼ã4¿ãõì ( D¿ãü¥ã#„«ãÌ”,¥ãJì«ã34åä Àœø„?˜ ìä4Óã¤Óã * Š#‚ÌÞ ÙºG<E¨²Óã ¤µb$0,ýãŒýãLƒäÚ¶)\ƒä³çã[²ê ˜"š·.²d¼÷ãÅäàáýüòãgüžã 4¬ä Àœø„?˜?˜°íäÌü÷ÜöÁü’áÛtàá.5<¬ÓãtÀ䪵´òÝÌÞ ,¥ÝÙº,¼ÝÙ—TÞÝáý4–áõÚ 3ó»N$Áááýümú‹áÅ‚êA¯ƒ [õÚ ãAs¯ƒ �÷º…ªµÚ Ù—öß—ï0²ê 9õÚ jó»…$�äáý¬—ƒ°X ê™ ê™ïÆ ®Žw?˜ê™ráÚ¶‚ç‹  Õ“§õì aÌ”>õì €Ì”]Ù—úӗᤵœÚ¶Pš·ªÙ—Ù—$R¹è¬¹èl½è ƒ�õ.ËèFŒ½è8ñš©©]ñ·©©]¨�ãèmä­ F2ù™š©.]I™Ÿ©]â� àè_Fù™Ÿ©)]x´Ùè ™‘SF$ 0 ?˜õè ´õètùè †�õ .ˆé  F”ù蕵çè�’?˜§’HF¼f  ñœ©©]ñ»©©]¨�¤énä­  F2ù›š©.]I›Ÿ©]â� ¡é_  Fù›Ÿ©)]x¸šé ™‘ S  F$ 0CC¹¨é�’?˜§’IFjñž©©]ñ¿©©]¨�Òéoä­ F2ù�š©.]I�Ÿ©]â� Ïé_Fù�Ÿ©)]x¼Èé ™‘SF$0CC ½Öé�’?˜§’JFjñé¬ñélõé „�õ.ƒêFŒõé8ñ ©©]ñé©]¨�$›êpä­ F2ùŸš©.]IŸŸ©]â� ˜ê_FùŸŸ©)]€À‘ê ™‘SF$0CCÁ ê�’?˜§’KFj±ê´±êtµê�¢(ÄêF”µê2)Õê´ÕêtÙê ‡�õ.èêF”Ùê8$ñ¢©©]ñÇ©©]¨�$„ëqä­  F2ù¡š©.]I¡Ÿ©]â� �ë _!Fù¡Ÿ©)]€Äúê ™‘S"F$!0!C#Cʼnë�’?˜§’LFjñ¤©©]ñË©©]¨�$³ërä­ $%F2ù£š©.]I£Ÿ©]â� °ë$_#&Fù£Ÿ©)]€È©ë ™‘#S"'F$%"0%C(Cɸë�’?˜§’MFjÓë'´Óët×ë …�õ'.æë&*F”×ë8&7+÷ë)´÷ëtûëæ©)(Šì(,F”ûë2(2-ñ¦©©]ñÏ©©]¨�$¦ìsä­ ,.F2ù¥š©.]I¥Ÿ©]â� £ì,_+/Fù¥Ÿ©)]€Ìœì ™‘+S*0F$-*0-C1CÍ«ì�’?˜§’NFjñ¨©©]ñÓ©©]¨�$Õìtä­ 03F2ù§š©.]I§Ÿ©]â� Òì0_/4Fù§Ÿ©)]€ÐËì ™‘/S.5F$1.01C6CÑÚì�’?˜§’OFjõì3´õìtùìæ©3(ˆí28F”ùì22>9ñª©©]ñש©]¨�$ íuä­ 6:F2ù©š©.]I©Ÿ©]â� �í6_5;Fù©Ÿ©)]€Ô–í ™‘5S4<F$7407C=C"Õ¥í�’?˜§’PFjñ¬©©]ñÛ©©] ¨�$Çívä­ :?F2ù«š©.]I«Ÿ©]â� Äí:_9@Fù«Ÿ©)]€Ø½í ™‘9S8AF$;80;CBC&ÙÌí�’?˜§’QFj4Ùí Àœ¡Â?˜ àíEEáí-Gü¥ç¼b D# DG DD�D±D+DOD!"DE&DÃ)‚A H O |Ùèg n u |šéž ¥  ¬ |Èé }„ ‹„‘ê „úêAHO„©ëÎÕÜ„œì „Ëìêñ!ø„–í#!(%/„½í'<ÏÁŒžèÙ Úç�õ€è³äŒè÷ —Î èÜJ ÏÁ� ÊÝÒ Ê  —Î ( èÜ3 ÏÁy ÊÝ»  èÜo ÏÁµ ÊÝ÷ A  —Î * èÜc ÏÁ© ÊÝë 5  —Î   —Î Ü èÜ ÏÁ[ ÊÝ� çèÜQÏÁ—ÊÝÙ#ò—Î  ª—Î ÄèÜÏÁIÊÝ‹ÕèÜ?ÏÁ…ÊÝÇà—Î úèÜ9ÏÁÊÝÁ èÜuÏÁ»ÊÝýGœ„Ž-Æ ª?˜§’Žh?˜Æ Ù ?˜§’Žq?˜Æ  ?˜§’Žz ?˜Æ  ?˜§’Žƒ?˜Æ — ?˜§’ŽŒ?˜Æ × ?˜§’Ž•?˜Æ m?˜§’Žž?˜Æ ­?˜§’ާ?˜Æ ›!?˜§’ް#?˜Æ Û%?˜§’޹'?˜s3埑¨�Oâ�™‘ç�¢‘�’õ¨�(â�ö™‘À�’Ǩ�]â�+™‘õ�’üÕ¦ƒ¨�Aâ�™‘Ù �’à �¢g æ© ¨�Ú â�¨ ™‘r �’y ¨� â�Ý ™‘§ �’® Œ®5 æ©ä ¨�¨ â�v ™‘@ �’G ¨�Ý â�« ™‘u �’| æ© ¨�Çâ�•™‘_�’f¨�üâ�Ê™‘”�’›�õ �õ�õ¨­˜æƒ †æƒ/7h­³‘µ®è)1è­ÆͶÓô)1ø­é% ͶÓô *2(­ê Ý­ïã6 ��B ��Mæƒ4 æƒ@‘µ ËëͶ鈃ñͶȃË�§òÅ�®è[Óô,Óôý(®ñ ä­¨®˜  ä­æƒ*¨¼h®³ wä­ ‘µ* ¨¼è®Æ   ä­ Ͷ*  ¨¼ø®é%   ä­Ͷ+7¨¼ ßg +1%ðõ ¿ Ä Ž“d®öåÏÁŒõǕٞ䭧䭘¨¼¡‰Èªä­x¨¼�ËëŠä­X¨¼aˆƒjä­8¨¼A ˆƒMˆƒV)œ7B‰È¨¼8Ë먼ˆƒ¨¼Ö�ͨ¼¥ Ëu(±â& ó ä­ p±À'��¨¼°±�( °ã  ¨¼à±½( Àï  ¨¼б¡7…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ©ö½‡U ¨¼x±—9ää’ébaseÁÏd�žä`f©ö³äåBåB RandomStateÁæBk0ÁëçBk1ÁëžQ �Ñ*á3½‡™¨¼ȱÞ;¨¼˜±Ü=¬‡¨¼˜±ã>ìÜ ¨¼ø±¥B(É÷#¨¼[ ¨¼    „‘µÀ£¬xä­¹áÀÍÓøÀáçíóü±ç&ó$ÏÁ2 ææ�ˆ èØÅéõ.Åê„Å뽈ÅìÓˆÅíàˆÅîúˆÅÅð–‰Å»7x~kqüÑÙÂÚ™ÎãµÀì ¨¼ ôÕ¨¼êõÇó¨¼Õ °ãᨼà ÀïϨ¼± ¶Ï½¨¼` œÐl¨¼Ë†šÔ¨¼· ¬‡Ã¨¼¥žŠ ®¨¼�  É÷Ÿ¿×¨ä­ØáÀáëœùƒ ‘ õǨ¼ü°Ö¨¼ßÅÖ¨¼ÂÚÖ¨¼¥ïÖ¨¼I†š¨¼©–ר¼�žŠ ¨¼p½×¨¼SøÀ�8Ayä­N5>Hä­K2;zä­Hð ù{ä­ j s|ä­€  h q}ä­~  en~ä­{bkä­x­ ä­ �ä­  ßîóÿ™Î ›Îä­Éä­Ò䭴䭽䭟䭨ä­Kä­T䭳䭼䭟䭨䭊䭓ä­uä­~­ð¹�ãIãIÉæIí Ÿ-çIõÙŸ-èI«Ÿ-ZäŒvº�H#ð0ð0Íò0ÂÙñ.ó0�ñ.žFår­äìÜ ½‡ž£ †Íݵ½(¹Ê ô¹Ï÷-ƒ„9 ƒ„DÍÝ ÍÝblãÞ8(ºÑ €ä­ðº� �ä­ÍÝ+7¨¼ch¤¹ uzfkŒºÖù¦ÏÁ²ºßºÙÂÂä­Êä­¹¨¼Á ÎßÌÎßÔöœÝᨼ¤¹ #»Úû»Ø ºß&0ð¼�ÍÝÍÝ*/ ù±ÍÝÍÝFKS¼åþH¼ÜºßºßÎß“Îß›7î DN¶ãÅP½ç   (- Å™�²‚²ƒ²LessÁ„²…²†²‡²ˆ²‰²GreaterÁв%ÑÓ¡yû½ñ€ºÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 �å ºßºß�å&0î >IâäTð¾�ÍÝÍÝ*/ îÍÝAFN¾ö‚¾ó�åºßºß Îß�Îߘ9î FPèçÂ(Ǭ ‚ä­ˆÇô  ƒä­ìÜ +¨¼˜ÇÅ! „ä­ Ê…+  7 ¨¼Ÿ¤¬Ö±¶¢§puÒDZ‡ì ÏÁø ‡…Ù ä­ä­¨¼žŠ ä­ä¨¼ì  Ê…úÈëaœozžŠ ¨¼oÆë¨¼=¬Ö™(Ȥ= … ä­pÈŽ? †ä­*6¨¼bg¤¹ tyej‹È©=‹¥ÏÁ±Èë¹ÙÂÁä­Éä­¸¨¼ÀäÈ ȆšÐòœÿ äÈ ¨¼þ¤¹ ÔáG|áG ¨‹ë$ñG÷G-…HÐü�GhÒGÀïL¦G‹ë±Gƒ Dàî“|‡<� ë,‡L�,$« Å™áýD¨ ÀœõÚ ø„ö¤ÉdÏç‹ ,ÉtÏ&üÉ"\ÞÕ“JlÞ'$ö Å™ò¯üÆcœ�l” ��õ�|”” l”<˜ êWò¯ +  L˜,  ¤¯dµÐÍ,¯  tµ(  ë üÒ#dÒ ä�õß,ä :$ð @¬ ü“$d“Ñó ,¥ 4,± :¤ÚdàÐÍ,Útà($– Å™ò¯üý$dýÑóŠ,�>$œ :$Ø Å™ò¯ü¿%d¿ÑóÌ,Ñ>,Þ :Þâü‡ïü¼ºçÝ üØ%—Î ³ÌÞ ,À™õÚ g­¯Àÿú‹<Å‚E ­¯›U­¯'­¯Û‘­¯c­¯„ެ—’Àö†× ÿïCç‹ ÊÕ“��òGÌòÐÍÜÑóœÑóNÐÍÑóÊÑóx{dà  È%ü© '¬­  ��õ© 8ü­ #3ü© 1<Ñ  êW³ä]LÑ $î  Å™áý¤† D†  ÷�õ� ,”  ,¨ †   �%íý N #(  4 ?˜¬†  m³ä l® ,´ ðë ,® <´ ¡š  [²ê ¸!á’-zÑÞ lÎ  <Ó àò¯‚ \† Œ£‰,† ,Œx¢‚  ¶ýÜ÷ T÷ ®°ûðüA (� ±„¦ D¬ ä,¦ T¬ü�  $¡ ³±WJ$¸ ä¡4 ü—& Dõ à°ûT™ |” |¹ Þ  <Û ÀœõÚ ø„tÔ z4ü  ²„ üå" Œå ÿ�õ÷²P 91ø¥å#  âúN# !/ !üå# #m³äüß) #üµf ¦‡ "[²ê ‘ !á’"-zªÄ%\ÉÏ£‰,É&,Ï„Ä$%&$uÜ)\á磉,á*,ç„Ü()*(7€ÉÚ @Éà ˆþ(ÉÚ .PÉà ¤/øÉÚ #hÉë  Ùw.`/7-�Éë øÉÙ $,-Ÿ0 øÉ‹$ É� ú�õÉ‹09, ɪ+øÉ� üû.'+DÏ2'ôº„¾ ‚�õº221Ô¾31!Ü54Ü65 á$ 65'K46\æì£‰,æ7 ,ì¬Ü3473"!l”9'D£: ü„(|„ ð³ä9<:287)<ß; å$ ;'#K;€ÊÚ @Êà ˆþ(ÊÚ ?$PÊà ž@øÊÚ #hÊë –„?X@/>%�Êë øÊÙ $=>D”A'øÊ‹$ Ê�ð„Ê‹A3= ʪ<&øÊ� üõ. <ÉC Ì´„¸Î…´C,B'¬¸-B(7<�D ‡$ D')KD€ËÚ @Ëà ˆþ(ËÚ H*PËà ÀIøËÚ #hËë –„HXI/G+�Ëë øËÙ $FG»J øË‹$ Ë�ð„Ë‹J3F ˪E,øË� ü—.'EDëL'ôÖ„ÚÎ…ÖL,K-ÔÚ-K/.l— N'D¦ O ü‡ (|‡ ä‡N6O,M7#<â P è $ P'0KP€ÌÚ @Ìà ˆþ(ÌÚ T1PÌà ¡!UøÌÚ #hÌë –„TXU/S2�Ìë øÌÙ $RSD—!V'øÌ‹$ Ì�ð„Ì‹V3R ̪Q3øÌ� üø . QÌ!X Ì·!„»!Î…·!X,W4¬»!-W57<„"Y Š"$ Y'6KYüÖÀ·"[ Ì¢"„¦"Î…¢"[,Z8¬¦"-Zs9à"] ¼Í"tÑ"�¢Í"],\:œÑ"-\T;Ž#^lþ"^‹&d\�&•&£‰,�&e?,•&x©‹&c ¶ýdeÜ€&T€&Êýc7b@»&³_„Ä&DÊ&ˆþ,Ä&gATÊ&ü»& $¿&µþ³QgDb$Ö&fBä¿&2hfüµ&&hDCD³'jfà°ûTÐ,ljÝ,m|Ð,klmksEŒ'i <‰' ÀœõÚ ø„it‚'zT‹-nj|†-n|¿-F4Ã.q´qË.rüÿ-yŒÿ-»€¾.´Jr3pG+ø¬ÿ-z âúpHoH#so/sIJüÿ-zuom³äüù-€ uü»-å­ø.to[²ê “!á’t-z¬ì0w ¼Ù0tÝ0æ©Ù0w,vLœÝ0-vsM¥1y ¤•1\™1 Ž�õ•1y2xN„™1„Ý1Dã1ˆþ,Ý1|OTã1ï1~4ï1~ ô1$ ~'PK}üÄ12|Ä1 ¶x<Ô1|°}�{Q,\š2 2£‰,š2€R, 2üÄ1bL�2Û‚ {r€EzS´�2ü¿1gz?˜�3‚ ¼î2tò2Œ®î2‚.�Uœò2/�cV¸3„ ̦3lª3 Š�õ¦3„4 ½3ƒW¬ª3ô3‡ÜÜ3tÜ3 Žƒ<ë3‡1†X)ü×3!… Å™áý†üÑ3' …D�4ZY¶4ˆ <³4 ÀœõÚ ø„ˆ?˜zô4Š ¼á4tå4æ©á4Š.‰[œå4/‰s\­5Œ ¤�5\¡5«›�5Œ.‹]„¡5„å5Dë5ˆþ,å5�^Të5÷5‘4÷5’‘ ü5& ’‘)_O�’üÌ52|Ì5ðœ‹<Ü5�¸�ˆŽ`.\¢6¨6£‰,¢6“a,¨6üÌ5bL˜6Û‚ Žu“F�b´˜6üÇ5g�?˜‰7• ¼ö6tú6æ©ö6•.”dœú6/”le¼7— ¤¬7\°7«›¬7—.–f„°7„î7Dô7ˆþ,î7šgTô7€8œ4€8�œ …8& �œ)hO›�ü×70|×7ðœ–,ç7š¸›ˆ™i.\§8­8£‰,§8žj,­8ü×7\L�8Û‚ ™užF˜k´�8üÒ7a˜?˜÷8  ´å8lé8åŸå8 .Ÿm”é8/Ÿon˜9¡ <•9 ÀœõÚ ø„¡tŽ9z„¬;D²;ˆþ,¬;¤pT²;½;¥¤¬;¦¤§¥¦$ §¦¥q;£¤¥Â;¨ü›;*„›;¨‚£u¨.¢r&ü—;/ ÀœõÚ ø„¢?˜z<è;© î;% ©(tM©ü¾¸'D�<¬ D™<­ üû;'<û; û�õƒ<,ˆ<¬M­C«v:ø®û;( ¤µ«Xªw %®ª3®xy¬<° <©< ÀœõÚ ø„°²<z¯¢<¯ª[²ê ž!#á’¯0z¸Iä$ü­…4ü“ Ÿ2üà Ò1üø º1U\c¶ü¡ ‘1üâ×üìÍ üð¹ ° · ¾ úü¼º øÉÎ køÊÎ køËÎ køÌÎ kü’#¾ üõ%É ü®'àò ù  > ü‡1Ðü˜3Õü�5Ðü 7¼mt {üû;("µçÝ ü² %—Î ÙÌÞ ,æ­¯ýD� |— Á÷¨¨ Å‚(õÚ <ä ³ä<ü ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^²ê ³äÈíý=²ê F³ä›4¥  ò¯ °û$ð ðüÕ Å™Ç™È™­É™Ê™àË™óG*¤�R{9 °û§Ó×Ü$ÌõÚ ! °ûz iDZ¡íýâ ÌÞ Q²ê Z ³ä˜ ú80³ädÀÃù³äü†# ÉÒ é‹�Ó××±³ä`ô³ä 1¼Ò�ŒÍxÂêAÂê;�Œ³äüû( ÊÒ é‹‰Ó×Ъ³äaû³ä�ŒÑ³äü¢# ËÒ é‹UÓלv³ä-dzäà|Âê¥ÂêŸ�Œo³äüþ ( ÌÒ é‹óÓ×:³äËe³ä~�Œ;ɳäâ�³ä¦TÕ²J(¬à A°û$ù%ðüÓ „³nÓן$ú&õÚ Ûí³@ 6+ÊDZAíý|“´±�ì²ê õ³ä5»³äÔÓ×<‹1³ä›sͶØÓ×rF\�ŒWÏV³äp‹ã<œ3³ä3õÚ £ áýÚ ó õÚ | 7 ³äQ Ó×<“5³ä å ͶL Ó×î À × �ŒÑ A Å ³äß Ó×,¤7³ä¢ s ͶÚ Ó×| N e �Œ_ Ï S ³äm õÚ & ø„^ Ä Ó× ä Ý ä Ÿ �Œ? ÷ºyªµÃÂêî õÚ ê²ê (õÚ lò¯¿ ÌÞ ò¯ÌÞ ó„¬—ÇÀöÌåëÓuniversal_startÁèä…Ð ÁñÓ Æ °!Ž"÷…rÀö{! ¸ën ¸ëf Æ  "ŽT#prev_sidÁ°'ÿ†’,ÿ† =ÿ†ÆFÿ†gRÀöN_¸ëøb¸ëþjÆ ltޝuÀEmx¿‰ƒÀEã‹needsÁ—–Æ ô ¯Ž"?˜à GªùQ$ëù$¯úÙ#âú­#ðë >#á’»#£‰¢"Êýb"ˆþ*"µþ"»€!âúÕ á’Ü £‰$ £‰Óˆþ�–„Yð„Î…ª£‰ä‡£ˆþ–„èð„�Î…Gˆþµ–„~ð„3Î…Ý䇈ˆþ –„Óð„ˆÎ…2Î…„�¢?¶”À£‰|Êý<ˆþµþí»€­âú‚á’‰æ©Ï«›Šˆþ^ðœÔ£‰¨Û‚ †Œ®6òžíÌŸšæ©æ«›�ˆþuðœã£‰µÛ‚ “æ©@«›÷ˆþÏðœ=£‰Û‚ í埚ˆþ%¨‚˜ ž¬¹ ¤µ á’† |Å=<Ë=ÿï,Å=LË=($é= Å™áýDæ= ÀœõÚ ø„÷>¤ý=dƒ>ÐÍ,ý=tƒ>(ôœ>dœ> é�õ©>,®>$µ> :üÐ>dÐ>§ÇÝ>,â>,é> 5ÂçüÅ<²çÝ ü–=%—Î ñ<ÌÞ ,þ<nõÚ @„-¬—1`ÿï«ÐÍ6§Ç§ÇÊg$Í@ Å™áý¤å@Då@ ù�õî@,ó@,¨°å@ âúH".?˜¬å@ m³ä lÐD,ÖDðë ,ÐD <ÖD±ù@ [²ê ²!á’ -fË\áDçD£‰,áD ,çDäÐD     D‹ED•Eü÷D'<÷D ý�õÿD,„EJ@ 7ø²÷D( ¤µT #/ ³E<°E ÀœõÚ ø„t©Ef³žE[²ê •!á’-f®\ÑE×E£‰,ÑE,×E|ÑE ßE$ 'Kü¬Gå  H l¦H ,¬Hðë ,¦H<¬Hœ H  0€ÍÀF @ÍÆFˆþ(ÍÀFPÍÆFëH øÍÀF# hÍÑF–„X /�ÍÑFøÍ¿F$ æH !øÍñF$  ÍõFð„ÍñF!3 Í�GøÍõF üÂH. D–I #ô�I „…IÎ…�I#,"Ô…I- "³I %l¹I ,¿Iðë ,¹I'<¿Iü¹I tÇI ”¨'A ÖI&ŒÇIü³I% $%& $l‡J )D–J *ü÷I( |÷Iä‡)6*,(0#<ÒJ + ØJ$ +'K +€ÎÀF @ÎÆFˆþ(ÎÀF/PÎÆF‘K 0øÎÀF# hÎÑF–„/X0/.�ÎÑFøÎ¿F$ -.D‡K1øÎñF$ ÎõFð„ÎñF13- Î�G,øÎõF üèJ. ,¼K 3̧K „«KÎ…§K3,2 ¬«K- 2!0<ôK 4 úK$ 4'"K 4€ÏÀF @ÏÆFˆþ(ÏÀF8#PÏÆF³L 9øÏÀF# hÏÑF–„8X9/7$�ÏÑFøÏ¿F$ 67®L:øÏñF$ ÏõFð„ÏñF:36 Ï�G5%øÏõF üŠL. 5DÞL <ôÉL „ÍLÎ…ÉL<,;&ÔÍL- ;('lŠM >D™M ?üúL( |úLä‡>6?,=0#<ÕM @ ÛM$ @')K @€ÐÀF @ÐÆFˆþ(ÐÀFD*PÐÆF”N EøÐÀF# hÐÑF–„DXE/C+�ÐÑFøÐ¿F$ BCDŠNFøÐñF$ ÐõFð„ÐñFF3B Ð�GA,øÐõF üëM. A¿N H̪N „®NÎ…ªNH,G-¬®N- G.0<÷N I ýN$ I'/K IüšHï ªO KÌ•O „™OÎ…•OK,J1¬™O- J]2ÓO M¼ÀO tÄO�¢ÀOM,L3œÄO- L=4€P O¼íO tñOæ©íOO,N5œñO- N]6¹P Q¤©P \­P«›©PQ,P7„­P„ñPD÷Pˆþ,ñPU8T÷PƒQVüØP.|ØP ·P<èPUUV4T9,üØPV Q þWì�õUÿTm?˜„âL¤QS:t QlÒQ,ØQðë ,ÒQW;<ØQüØPˆLÈQÛ‚ S™WDR<ÄÈQüÓP�RüêO‰ ]�R Y¼ŠR tŽRŒ®ŠRY,X>œŽR- XM?ÔR [ÌÂR lÆRòžÂR[, ÙRZ@¬ÆRçT_4çT`_ ìT$ `_'AK^`üÏTtÏTÌŸZ<ÞT^z]B%üÊT%\ Å™áý]üÄT+\D„UDC­Ua<ªU ÀœõÚ ø„a?˜ fëUc¼ØUtÜUæ©ØUc,bEœÜU-b]F¤Ve¤”V\˜V«›”Ve,dG„˜V„ÜVDâVˆþ,ÜViHTâVîVjüÃV.|ÃVÅád<ÓViSj2hI*üÃVV‹W þWí�õ‘âhc?˜èèL�WgJt‹Wl½W,ÃWðë ,½WkK<ÃWüÃVˆL³WÛ‚ g‘kDfLijWü¾V�füÕU‰]ˆX m¼õW tùWæ©õWm,lNœùW- lVO½X o¤­X \±X«›­Xo,nP„±X„�]D–]ˆþ,�]sQT–]¢]tü÷\.|÷\Åán<‡]sSt2rR*ü÷\R»] þWî�õ‘ârc?˜›ìL¿]qSt»]lé],ï]ðë ,é]uT<ï]ü÷\€Lß]Û‚ q‘uDpUÄß]üò\…pü‡R«  ]¡^ w´�^ l“^åŸ�^w,vW”“^- vYXÂ^ x<¿^ ÀœõÚ ø„xt¸^ f„‰_ D�_ˆþ,‰_{ZT�_š_ |¤‰_ }{ ~|} ~}|[3 z{|Ÿ_ üø^* „ø^¨‚zh+y\#üô^/ ÀœõÚ ø„y?˜ fÈ_ �lÎ_ ,Ô_ðë ,Î_‚^<Ô_œÈ_ €�‚ €`_Dª` †D´` ‡ü–`' <–`ÅÌž`,£`†G‡=…b4<ƒ` ƒ ‰`% ƒ(aM ƒ‘ øµ–`(  ¤µ…»„c % ˆ„3 ˆdeÇ` Š<Ä` ÀœõÚ ø„ŠÍ`f¶½` ‰„[²ê ž#á’‰0f¸Iéü®?Ÿ!ü¿@Ž ü×@ö¡¨¯bipü÷D( üÄE‰ü€H‘ øÍ´Fk øÎ´Fk øÏ´Fk øÐ´Fk ü›PØ ü´R¸ ü†VØüŸXç    ü–`(‹çÝ ü“@%—Î Ú?ÌÞ ,ç?Dþ?õÚ <Ã@³ä<Û@DZ:íývµ²ê ¾³älü¢÷ºªµLÂêuà½o¯²ê ¸õÚ ú4ÈE–�Œy³äd„H ë)!³äüÍH# ͸F 鋸Ó×ÿÙ³ä�*³äCˆÖeÂêŽÂêˆ�ŒX³äüîJ( θF é‹ÜÓ×#ý³ä´N³äg�Œ$³äü•L# ϸF 鋨Ó×ïɳ䀳ä3ÏÂêøÂêò�ŒÂ³äüñM( иF é‹FÓ×�g³ä¸³äÑ�ŒŽ³ä5à ³äù ¤ ³ä½ Ó×<ŸP ³ä„ d Ͷï Ͷ+ Ó×j L · = ³äV ‹ã<¸R ³ä õÚ @ áýs Ø î �Œé õÚ - ë ³ä Ó×<ŠV³äË µ Ͷ8 Ͷr Ó×± “  Ž ³ä§ Ó×<£X ³än XͶÛͶ Ó×T 6 «1³äJõÚ ø„O©Ó׿ÈÂÉ�ú:1�Œ’÷º0ªµÝÂêà½Ó²ê Ü õÚ  „²¬—·åë¾ä…ÃÁñÆÆ l ŽÄ Æ )޾ ?˜÷…€ ‚¿r ÿ†T ÿ†Ö-ÿ†‘6ÿ†2BÀEÆP¿‰}ZÀE2dÀEènÆ ì‰Ž×?˜»?×Éâúçðë ~á’õ£‰*ÅÌɤµ’á’™£‰ëðë Sˆþ–„Ùð„ŽÎ…8ðë ó‚ÓÒä‡XˆþÚ–„£ð„XÎ…ˆþp–„9ð„îÎ…˜ä‡CˆþÅ–„Žð„CÎ…íÎ…?�¢ú橵«›pˆþJÅáøáïðë œÛ‚ {Œ®)òžäÌŸ?æ©•«›Pˆþ*Åáû ÜèÑ ðë † Û‚ e æ© «›Î ˆþ¨ Åáy �ìO ðë  Û‚ ã 埑 ˆþ! ¨‚¢ ðë D ÅÌÜ ¤µ? á’F ,¨Q ¬Q$ 'K­QìØ§Q„âî ¥Q�Œ–Ÿ,“W —W$ 'K˜Wí6’WèèL �W�Œ–Ÿr,Ã] Ç]$ 'KÈ]î=Â]›ìS À]�Œ–Ÿy $ˆb Å™áý„üaõÚ |•b<›bÿï,•bL›b(4¶b Àœø„?˜Õd ¤ÕbdÛbç‹ ,Õb tÛb& üÕb"\êbÕ“Jlêb'$‚c Å™ò¯üÒbcœœcl c�òœc| c¾c l¾c<ÂcÌò %  LÂc&  ûc üÖc0ÄÖc ñ�õïc,ôc :,€d 9$Ád Å™ò¯üœd1ÄœdûŒµd,ºd >,Çd 3ªïüà`õüÈb�ªµ´ßa—Î ˜aÌÞ ,¥aÙº,¼aõÚ ˆa­¯ÌbÔú‹Å‚ZÂ÷s­¯7­¯ò„t¬—xƒ{ÀöoÉÿïëç‹ ˆÕ“[�òÌòÖûŒ˜ûŒGUd­g È%ü“g'¬—gªù“g2ü—g#-ü“g1<»gëùQL»gDÞg ¨¨tØg ?˜Úh¨¨à³ä´‹iͶŒ÷h l’h,˜hðë ,’h <˜hćh ¤­hD­h¯ú¶h,»h &¨·­h âú B " . ¬­h m³ä  Ëh¸Áh [²ê ‹!š·-R¤\ühͶà”ÄiLÈi ‰�õÄiÒi tÈi¼ëi   |·j  Åj$ 'K ¬²j  Å™ü™j. Ͷüëj# lïjòžëjýj\‚küïjDÍk üµk! tµkÌŸ<Äk2%ü°k'  Å™áýü¤k3 õÚ 4ôk Àœø„?˜?˜Rl¯m »m) ,UDÍm\ØmÞm£‰,Øm ,Þm´Ím 4ým Àœø„?˜?˜RŸn  «nDíp"\øpþp£‰,øp#,þp´íp!"#!M£q% „¨qD®qˆþ,¨q'T®qD¹q(Ô¨q)'*() *)(3&'(ü”q/T˜q ù�õ”q%°&l$ü˜q+üŽq5 $åq, ÌÐq„ÔqÎ…Ðq,,+¬Ôq-+Kˆr. Lƒr- Å™³ä.¤øq¨¨-°r0 ¼�rt¡r�¢�r0,/œ¡r-/6Þr 1lÎr 1 -<Ór 2àò¯DŽs 5\˜s žs£‰,˜s6!,žs¨ºŽs 4 ¶ý56üƒs! TƒsÊý483"Às v2„És DÏsˆþ,És8#TÏsüÀs  $ÄsµþvO8C3$Ûs7$äÄs1 97üºs& 9&%D¯t :7à°ûTÝt <:Dêt =¬Ýt ;<= ;K'4Št Àœø„?˜lƒt RT u >:¬•u >|Ðu (4Ìv A wADÔv BüŒvw ŒŒv»€ÇvwMB7@)*ø½Œvx  âú@G?*# C?/ C+,üŒvx E?m³äü†v~ EüÌuÛ ¾ƒw D?[²ê ’!š·D-R«ÍxG ¼ºxt¾x橺xG,F.œ¾x-FK/†yI ¤öx\úx«›öxI,H0„úx„õyDûyˆþ,õyL1TûyDŸzNdŸzON ªz$ ON'2KMOü«y—|«yðœH<ÔyL´M€K3+\âzèz£‰,âzP4,èzü«yÃLØzÛ‚ KqPDJ5´Øzü yÎJ?˜É{R ¼¶{tº{Œ®¶{R,Q7œº{-Q;8<ù{S Å™ þ{üà{ ͶS²|U Ì |l¤|òž |U, ·|T9¬¤|Dô|XüÜ|!tÜ|ÌŸT<ë|X2W:%ü×|'V Å™áýWüË|3õÚ V4—} Àœø„?˜?˜RÈ}Z ¼µ}t¹}橵}Z,Y<œ¹}-YD=û}\ ¤ë}\ï}«›ë}\,[>„ï}„æ‚D삈þ,æ‚_?Tì‚Dø‚adø‚ba ƒƒ& ba(@M`büÏ‚6|Ï‚ðœ[,ß‚_½`„^A-\©ƒ¯ƒ£‰,©ƒcB,¯ƒüÏ‚fLŸƒÛ‚ ^xcI]C´Ÿƒü°‚…]?˜ùƒe ´çƒlëƒåŸçƒe0dE”ëƒ1dGF4—„ Àœø„?˜l�„R„õ„Dû„ˆþ,õ„hHTû„D†…iÔõ„jhkij  kjiI4ghiD¥…lüÏ„q„Ï„¨‚gql3fJ%üË„v Àœø„f?˜Rlã…m ï…+ m-LWmüçp�Dž†o t¨†põÚ üІ-<Іž¬’†,—†oPpEnN5͆r LȆq Å™³är¤½†¨¨qLÚ†tõÚ œÚ†<ä†Ùß t.sOSLä†*sQP<˜‰u Å™ �‰üÿˆ Ͷuü׆ÏQ4«‰n³‰R  ²‰nTüŒe§$ñüýf¶"üÊgé!ù>üÕh×ü¢iùü´içüÝj° üârÏüør¹ üªtß K  R Y  – üèx·ü’|šüß}ÿüý…¶xªµ´«f—Î ÄeÌÞ ,Ñe­¯èeÙº,ˆf|�gÁ÷’¨¨›Å‚¹³ä<Îg$ñgåDZ†íý¼(²ê 1³äj³äb7L¸iÖͶbÅ�ŒÎ‹ã<áj õÚ àáý0�Œ˜ú=0i¬Ÿ³äÓ³äi(Ó×jLAH´³äͨ¨|³ä“M³äfÕ²  °û$ür ðüÉ  ÿ „³d Óו $ûsí³. ö $  » DZ* íýd “´� Š Ö ²ê ß ³ä ¥ ³ä¾ Ó×<ìx³ä… ` Ͷà Ó×b 1 L �ŒB » > ³äW Ͷ ‹ã<–|³äç õÚ ` áý“ °  ³ä Ó×,ã}³äæ´ͶÓ×Ã�©�ŒžŽ³ä¨ø„”õÓ×<Ú�Œwªµ4�†Âêའ¨¨²³äÊz¬à šͶSò¯RÌÞ m„¬—Àö ƒé½Áñý Æ ŽAÁñ=КñÈ#Ü ¿‰¾ Àö 2¸ë 3¸ëý :Æ gDŽ©EÀE~H¿‰$T°Àô[Ç `nñ+ªùzëùFðë ®¯úzâúTš·[Å”™òž¿ÌŸ{£‰w£‰Öˆþ…ú›Î…¿�¢=£‰¹ÊýyˆþKµþ*»€åâú»š·Âæ© «›Äˆþžðœ£‰ä Û‚ à Œ®n òžé ÌŸš æ© «›À ˆþš 𜠣‰× Û‚ ² åŸY ˆþë ¨‚[ ž¬jÙß àªµ5S$õŠ Å™áý„éŠõÚ |‚‹<ˆ‹ÿï,‚‹Lˆ‹,4£‹ Àœø„?˜?˜PDÉ‹¨¨tË?˜ÿ�¨¨à³ä´°ŽͶŒœŽ¤ü‹Dü‹×É…Œ,ŠŒ *¨¿ü‹ âú G# /  ¬ü‹ m³äLªŒ Å™³ä ¤ŸŒ¨¨ lÄŒ,ÊŒðë ,ÄŒ <ÊŒÀ�Œ [²ê Ó"š· .Pì\Ռی£‰,ÕŒ ,ÛŒäÄŒ ¤óŒ$ƒ�üÁŒ–\¹�¿�£‰,¹�,¿�|¹� Ç�& (Ô®� ä�  ð� \¡ŽͶà”éŽLíŽÅ”éŽ÷Žt펼��  |Ü�  ê�& (M ¬×�  Å™ü¾�. Ͷü��# l”�òž��¢�\§�ü”�Dò� üÚ�! tÚ�ÌŸ<é�6(üÕ�'  Å™áýüÉ�3 õÚ 4™‘ Àœø„?˜?˜Pl„”4«” Àœø„?˜?˜PDÉ”!lÕ”,Û”ðë ,Õ”"<Û”ÌÉ” !" ¤Æ–$Ö–üÆ” lÊ—# Ö—+ #-W#{ó— ÿ— l“˜$$!KÀ˜&„ŘD˘ˆþ,Ř("T˘DÖ˜)ÔŘ*(+)*  +*)#4'()ü±˜/Tµ˜ú›±˜&´'j%$üµ˜+ü«˜5%‚™-Ì현ñ˜Î…í˜-0,%¬ñ˜1,G&¥™/L ™. Å™³ä/¤•™¨¨.Í™1¼º™t¾™�¢º™100'œ¾™101(ú™3¼ç™të™æ©ç™302)œë™12G*³š5¤£š\§š«›£š504+„§š„‰› D�›ˆþ,‰›9,T�›D›› :üðš4 |ðšÅá4<€›9`:;8--üðš` › þWõ�õ‘â8h?˜­×LÆ›7.t›lø› ,þ›ðë ,ø›;/<þ›üðš– Lî›Û‚ 7›;J60Äî›üÍš¹ 6ü䙵GÜ=¼°œt´œŒ®°œ=0<2œ´œ1<73<óœ> Å™ øœüÚœ Ͷ>¬�@Ìš�lž�òžš�@0 ±�?4¬ž�Dî� Ddî� ED ù�& ED(5M CEüÖ�% tÖ�ÌŸ?<å�CB6(üÑ�+ A Å™áýBüÅ�7 õÚ A4•ž Àœø„?˜?˜PÆžG¼³žt·žæ©³žG0F8œ·ž1F@9ûžI¤ëž\ïž«›ëžI0H:„ïž„è£ Dþ,è£M;Tî£Dú£ NüÏ£4 |Ï£ÅáH<ߣM`N;L<-üÏ£\ �¤ þWö�õ‘âLh?˜ùÞL¡¤K=t�¤lϤ ,Õ¤ðë ,ϤO><Õ¤üÏ£Ž LŤÛ‚ K›OJJ?ÄŤü°£­ Jü·™§ G‡¥Q´õ¤lù¤åŸõ¤Q0PA”ù¤1PCB4¥¥ Àœø„?˜lž¥P„ƒ¦D‰¦ˆþ,ƒ¦TDT‰¦D”¦UÔƒ¦VTWUV  WVUE4STUD³¦XüÝ¥q„Ý¥¨‚SqX3RF%üÙ¥v Àœø„R?˜PDô¦Zl€§,†§ðë ,€§[H<†§Ìô¦YZ[YIKlµ§\ Á§+ \-JW\üŒ˜½ Dð§^tú§_õÚ üܧ-<ܧÅÌä§,é§^P_E]L5¤�¨$Ÿ¨¹¨aL´¨` Å™³äa¤©¨¨¨`LƨcõÚ œÆ¨<ШÙß c.bMQLШ*bON<„«d Å™ ‰«üëª ͶdüèÏO4—«]Ÿ«P  ž«]RüƉÙ!óüµ‹êüò‹ÿqxüüú�† üÇŽùüÙŽçü‚�° ü•š„üŒ�žüÝž�üϧÐeªµ´ÌŠ—Î …ŠÌÞ ,’ŠÙº,©ŠõÚ ò³ä<¹‹$Ü‹DZóíý-N²ê W³äÖ¨¨Æ ¢CÐ�Œ¯³äÌŸ=LÝŽûͶ„é�Œò‹ã<†� õÚ ÷áý-KªcU�Œå Z ³ä« ³äH  Ó×H &  ! Œ ³ä¦ ¨¨O ³äg  ³ä7 Ü ³äö Ó×<™š³ä¹ ‰ Ͷ ͶQ Óך x à W ³äq Ͷ) ‹ã<��³äú õÚ  áýB © Å �Œº ¿³äÙÓ×<áž³äœlͶ÷Ͷ4Ó×}[Ã:³äTø„@¡Ó×èÆºÁ†á)�Œ×ªµ4Ó§Âêpà½i¨¨ô³ä ¼¬à ÜͶ•„_¬—cƒfÁñZÁñö‹ Æ � Ž ÁñèКVÈ# ¿‰þ ÀE; 4¿‰è ?ÀE¥ HÇ ]Ô'ÿïô×Éâúåðë `š·ó£‰£‰“Å”ÄòžæÌŸ›ðë ¤ˆþkú›ïÎ…Ÿ�¢æ©Ë«›�ˆþWÅá¡×ñ ðë ¢ Û‚ } Œ® òž“ ÌŸá æ©E «›û ˆþÑ ÅᘠíÞk ðë  Û‚ ÷ 埚 ˆþ, ¨‚œðë 7ÅÌNÙß §ªµü,Ê› Λ& (MÏ›õ²É›­×É Ç›�Œ›Ÿð,¥¤ ©¤& (Mª¤ö¥ ¤¤ùÞ¼  ¢¤�Œ›Ÿã  ôϬœÓ¬ ý�õϬ,ç¬ÔÓ¬øÂϬ âúQ$0CüϬm³ä¼â­tæ­Œ®â­õ­œæ­Ãí¬[²ê µ" �%íý²ê 8 ØyÉÓ‡T] ·ú?˜‡*ä­?˜ *<€® Àœ³äø„‰®  ÷üÖ«³üŬÄÚàæ: íýÜ£¬—Î þ«ÌÞ ,‹¬DZ³íýö,²ê 5³äŒwô„Q¬—TÁñɬÆ €ŽÚТ÷qâú>‹ùEŒ®æ·úc ô¹¯œ½¯ ÿ�õ¹¯,ѯÔ½¯øÄ¹¯ âúQ$0Cü¹¯m³ä¼Ì°tаŒ®̰ß°œÐ°Åׯ[²ê µ"‹ù. ÎoÉׇT] ·ú?˜‡*ä­?˜ *<ê° Àœ³äø„ó°  ùüÀ®³ü¯¯ÄÐÖÜ0 íýÜ�¯—Î è®ÌÞ ,õ®DZ©íýì"²ê +³ä‚mô„Q¬—TÁñ³¯Æ vŽÐнügâú4‹ù;Œ®Ü·úc„Ô²DÚ² ç,Ô²TÚ²„ð²Dö²ˆþ,ð²Tö²4…³äð²�³ Õw^9\�³4 üê²" W$¬¶Ä™¶t�¶ û�õ™¶7¤�¶ �³"àé‹ "$dz ¼¸³T¼³ú›¸³ 1 ͳ œ¼³ô±³ $ó³Äà³t䳌®à³1 ¤ä³1  $«´Ô™´l�´òž™´1 ±´ ´�´4é´üÑ´tÑ´ÌŸ<à´5 (üÌ´% Å™áýüÅ´,üݳŒ$›µ¼‰µl�µÕ¦‰µ1 œ�µ14Òµܾµ„¾µ¨‚ ϵ4'üºµ  Àœø„�¸ü’¶$Õ¶ĶtƶŒ®¶1¤Æ¶1$�·Ôû¶lÿ¶òžû¶1 “·´ÿ¶„Ë·DÑ·ˆþ,Ë·!TÑ·´Ë· !ü³·/t³·ÌŸ<· 1(ü®·5 Å™áýü§·<ü¿¶³4‡¸ Àœø„?˜• ûüª±åü˲Äü—³Üü‹´uüí¶…#ªµ´®²—Î ѱÌÞ ,Þ±Âêõ±à½Œ²°ûϲřǙș­É™Ê™àË™óG*¤�R{9 é‹vÓ×¾œD—³ô³äijäß{³ä–‹ã<�´³äXõÚ Çáýý�³ä«ø„Mj³ä£³ä¾ò³ä ‹ã<ñ¶³äÏõÚ áýLeÓטé‹l„}¬—�Áñ…ä…‰spÁŽ˜ ¿‰ ¿‰¥/Î�\ˆþ3½‚û­ƒ’ú›+Œ®ÙòžŽÌŸ:զŨ‚wŒ®òž·ˆþv±ãSÌŸI„ð¹Dö¹Î�,ð¹Tö¹D‰ºd‰º ”º&„«ºD±ºˆþ,«º T±ºD¼º d¼º   Ǻ&   (M  ô«º      4  $éºÔÚºTÞºú›Úº1$ﺴ޺üÓº!$”»Ä�»t…»Œ®�»1¤…»1 $ȻԶ»lº»òž¶»1 λ ´º»D‚¼üê»!tê»ÌŸ<ù»5 (üå»' Å™áýüÞ».üþºƒ$²¼¼ ¼l¤¼Õ¦ ¼1 œ¤¼1 Dè¼dè¼ ó¼& (MüѼ$„Ѽ¨‚$â¼(üͼ) Àœø„å¾$±½Äž½t¢½­ƒž½1¤¢½ü—½$Ö½!ÄýtǽŒ®ý!1 ¤Ç½1 $о#Ôø½lü½òžø½#1 �¾"´ü½Ô¬¾t¬¾ÌŸ"<»¾ ľ%9ü§¾ $ Å™áý%ü ¾'$üÀ½’4ݾ Àœø„?˜¬·ýüƸŸüç¹þü ºçü¨»oüê½h&ªµ´Ê¹—Î í¸ÌÞ ,ú¸Âꑹཨ¹°ûë¹ì$¤ºÓ×Л¶�Œ¬W^³ä³ä-ȳäã‹ã<¬»³ä¥õÚ áýJgÝ³äøø„=¤¿�Œµ³äó³ä±³äÌ‹ã<î½³äŽõÚ ÿáýF„M¬—QÁñUä…YÝŽ]ÿ†Q¿‰¿‰‹"þ Î�·ˆþJú›bŒ®òžÄÌŸpÕ¦û¨‚P­ƒëŒ® òžUÌŸl‚Â,ˆÂˆó ,‚Â<ˆÂ,•œ•ÂL›Â à-¥Âl›Â4¼Â¬®ÂD®Â¯ú·Â0'ÅÂÿüëÀÚüòÁSíýÜÐÁ—Î œÁÌÞ ,©ÁÀÁÌØ LöÁÔ ÌØ ñÌÞ ´„G¬—J÷…N¬—QŸˆó iè¡4¯ú÷(Ù±@Ù¶@—&+ð‡8Œë@IS(Û¾@ š ä­¸ÛúA³ä¨¼ØÛÒC ³ä  ¨¼èÛ¤D ³ä  ¨¼èÛ÷D³ä ¨¼èÛÑE³ä¨¼èÛªF³ä¨¼èÛþF³ä¨¼èÛÑG³ä"¨¼p ¨¼   –£µÀµ¾ˆä­ÌáÀàæøÀôúÛÃ@š*07ÏÁEŒëNÙÂW–¥`µÀi ¨¼ƒð©Œ¨¼iô‡r¨¼Tô‡]¨¼?ô‡H¨¼*ô‡3¨¼ô‡¨¼ô‡ ¨¼ëô‡ô¨¼Ö ô‡âô‡ëä­1áÀ:DœRƒ `‘lu ô‡¨¼Wô‡¨¼:ô‡¨¼ô‡¨¼ô‡¨¼ãô‡¨¼Æô‡¨¼©˜«¨¼ŒøÀЉ’‰ä­ ‡�Š ä­ž…Ž‹ ä­œƒ ŒŒ ä­š � Š� ä­˜   ˆŽ ä­–  }†� ä­”ß ä­Á�ä­  š/–¥<˜¥Eä­ûä­ä­æä­ïä­Ñä­Úä­¼ä­Åä­§ä­°ä­’ä­›ä­}ä­†Ë ØMDÜM³älØM 8…ëD' 0üMd€N ³äŒüM  8…ëD ' 0¦N tªN³äœ¦N 8…ë D '  0ÒNtÖN³äœÒN 8…ëD' 0þNt‚O³äœþN 8…ëD' 0ªOt®O³äœªO 8…ëD' 0ÖOtÚO³äœÖO 8…ëD' 0‚P t†P"³äœ‚P! "8…ë D!' 0ü½Mã Œ  ¥P ¦P üëL»Ž#ð‡<«MŒë,ÿL‹ë†M³ä.�ñY‘ë@³ä]³äû�ñ&‘ë ³ä*³äÈ�ñó‘ëÚ³ä÷³ä•�ñÀ‘ë§³äijäb�ñ�‘ët³ä‘³ä/�ñZ‘ëA³ä^³äü�ñ'‘ë³ä+³äÉ�ñô‘ëÛ³äø5ƒ 9w …ës…ë#…ëӅ냅ë3…ëã…ë“…ëC‹ëæ‹ëí&ƒ~Lƒ~œ�~d”~­©$�~t”~üƒ~ü¼~5ü¼~ ü°œÝ~‘ä­ *ü¸~: Àœ÷ñ×…% ˜ D¸ ³ä4Ë @ÞË Ìý TÊà³Ç 8 "ü­(T­ ©¤£  † ” ,ü£2   ,dô³ä4‹€@à‹€ ÌýTŠ€à³‡€;$üé,T铽„”‚€ 'üß6  ,t´€³ä4Í€@âÍ€ ÌýTÌ€à³É€; $ü©€.T©€“½‡”Ä€ )üŸ€8  -tö€³ä4��@ä�� ÌýTŽ�ೋ�;$üë€.T뀓½‡”†�)üá€8   - t¸�"³ä4Ñ�%@æÑ�$ Ìý%TÐ�à³Í�$;#$ü­�.T­�“½"‡#”È�!)ü£�8&! &!-&tú�(³ä4“‚+@è“‚* Ìý+T’‚à³�‚*;)$üï�.Tï�“½(‡)”Š‚')üå�8,' ,'-,t¼‚.³ä4Õ‚1@êÕ‚0 Ìý1TÔ‚à³Ñ‚0;/$ü±‚.T±‚“½.‡/”Ì‚-)ü§‚82- 2--2tþ‚4³ä4—ƒ7@ì—ƒ6 Ìý7T–ƒà³“ƒ6;5$üó‚.Tó‚“½4‡5”Žƒ3)üé‚883 83-8œÄƒdɃ­©$ă;tɃ1ñÞ]:;9ñæ]<‰ñÝ]9 :<Añþ]=9†šIñˆ]>9†šIñ­]@=Qñº]A>Éñ¬]?@A?4Ñ„ITÑ„J Ú„!5 JI!ùñç!]B ±šñòè]ñïè]¨�üùƒ+’)ä­E 1ùñË<]D Å™ÊÝEùñ‹}]ùñ‹ ]÷Œ B!ñ¬]=Qñ²]>Yñ¾]D\CB þH Iþ1óÞ]GH9óæ]K ”¤£ †š‰óÝ]F GKAóþ]LF†šIóˆ]MF†šIó­]OLQóº]PMÉó¬]NOPN#"4Ê…UTÇ… Àœ÷ñU× %ùóç!]Q ±šñôè]ññè] ¨�üø„:“8ä­T$1ùóË<]S Å™ÊÝTùó‹}]ùó‹ ]÷Œ Q!ó¬]LQó²]MYó¾]S\RBš ”üÌ|‹ ü‡Ðùñý¬]ùñÜ¿]ùóý¬]ùóÜ¿]VݘìŸ}Œë,÷|Í™†}‰ Ç Ó×ß È ÷ñ† T‹¶ ³ä( Í™ñ É• . �Œ±  ³ä† Í™M É•u Œ �Œ n ³äå Í™« É•Ó ê �Œl ɳä@ Í™ É•. E �ŒÇ$³ä›Í™aÉ•‰ �Œ"³äöÍ™¼É•äû�Œ}Ú³äQ͙ɕ?V�ŒØ5³ä¬Í™rÉ•š±�Œ3òŽ ±†šÜ†šÜ†š¿†š²«¡Û� !ñà]¸º� âÊÝ!òŽ =†šw›²ª†š††šZ†šMF<Û� !óà]oº� ™ÊÝØ3 â�œçüßı� Ã=Å� º>¦ôB±� LÅ� ùM¦˜Q«±ã ­©ü°¾à³ “½ë à³C “½ à³{ “½W à³° “½Œ à³å “½Á à³ “½ö à³O “½+ ೄ“½`­©ú¨�¼÷Œ l¨�÷Œ ° é„ .=”˜†š[Sj˜‘Dž‘³ät˜‘ ³²³ä³äE;,¬‘œüÓ�Y$‰‘Œë,ò�³äù�ô‡šô‡“'Ž-)W™Û¦Ê’$Ð’ �ô‡TÊ’ ù±³ä³äJ@,Ú’�üˆ’R$»’Œë,¤’³ä«’ô‡Ÿô‡˜'Ž-)W¼³äõܱØà³äíû�ªô‡³ä (-³ä´ù“lþ“¯ÿ$ù“Œ”Œþ“4üø“- d“”³ä£””“”õÜ:*!«”žü¶“u$铌ë,Ò“³äÙ“ñô‡•ô‡ˆ-Ž-/]¯ÿ+õܨ´Ì•lÑ•¯ÿ$̕ߕŒÑ•4tæ•³äø•¤æ•™Û:*!(þ•t„–³ä¤þ•™Û:0!üË•G ˜–Ÿüˆ•� $¼•Œë,¥•³ä¬•Oíô‡ô‡ô‡Ðô‡ÉFŽ-Hw¯ÿ¢™Û@™Ûê´º—l¿—¯ÿ$º—Í—Œ¿—4tÔ—³äæ—¤Ô—™Û:*!(ì—tò—³ä¤ì—™Û:0!ü¹—G †˜ üö–� $ª—Œë,“—³äš—Oíô‡ô‡ô‡Ðô‡ÉFŽ-Hw¯ÿ¢™Û@™Ûê´§™l¬™¯ÿ$§™º™Œ¬™4tÁ™³äÓ™¤Á™™Û:*!(Ù™tß™³ä¤Ù™™Û:0!ü¦™G ó™¡üã˜� $—™Œë,€™³ä‡™Oíô‡ô‡ô‡Ðô‡ÉFŽ-Hw¯ÿ¢™Û@™ÛêtÈ�³ä$Ú� £ô‡´È� ú±³ä³äP@,ä�£ü™�K$¹�Œë,¯�ô‡šô‡�?¤³äÁì™ÀȳäÕ㣒ô‡ÿ³ä³ä(õíõò¤&š‰2÷ö:CM(÷ú&-5”ä­÷þPX• ä­#ow–ä­B�•¯Å ¢§¯÷ÿ§ÉÏÁÕ÷öÝÙÂåä­íôýœ ¯Å  øƒ©ø�÷ö *Hù…ùެ>CIT÷ö\÷ödkr{î ˆ __self_discrÁ¡ __arg1_discrÁ¸À œüd�þš $üt�œLœ”œüÈ.üÈ ü°dé— ä­ *üÄ3 Àœ÷ñÒ ,™ \“ & Ž   è   À   ± ¤¤d¤ž£  &´  %T Àœ÷ñú °üô Þüïãü‹Ç ݘìÇ÷ö,ŸÍ™®4óÑçÓ×ÿ÷ñÇ �|­áø_�œcüßh¤I¼þš ‘±ãcü°8ž£ ?(üœ  4¨ü²2á� ‹ã $ †‹ã6>~ ­‘Àü ,³�ìÜ $ †ìÜ 6>Àü½$ùìÜ #Ûú/7¨üúã¸üô!îŽÈÞhüÖ"äY^ýùjr¨ü± ·Ž‹ã¸ü«·ŽÈÞhü�·Ž³äY^ýù jrPü¹ šŽ¨ËhüÅ šŽ³ä<A †¨Ë S [àüµ„Ž…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ󥽇^c †˜þu}ˆüÍ ë�ó¥$ †ó¥6 >hü« Ö�³ä$Ò�0 8h ­ü ‹ ­#ª ­B¨®Ò� » Äí ­  ˆek †ÈÞ~‡rxÒ�…Ž] ­ûOU¶�bkV\Ò�irÊ ­hð ­ˆ ­¨0 ­ Èü¡È ekry€‡Ž•œ£²Š± ²Š½Åô‡£³ä¬ ó¥ûó¥ ˜þ’˜þ› ¨Ëô‡ó¨Ë³ä«©¢ ÈÞ‘ô‡}‹ãÀÈÞ¬³ä˜«©RÏ…>ô‡*‹ãmÈÞY³äEžŠ ÄìÜ ÍžŠ ìÜ "«©‰‹ã’׿À »¿À  ¿À š¿À  __self_1Áþ ¿À Ÿ °†�__self_2Á†¿À D°†4Þ†$¿À §¿À ÷¿À b ¦ýùvÛúÛúãýù®ýù>åýÎçþuªÿúÒ�¾Ò�Ͷ�KÒ�5¶�ÐÒ�º (ý£  4¨ý²2<á� ‹ãX =`˜ä­2 >:™ ä­G @<S ?@¨¼¡ ¦ ¤¹ ³=¸>‚?‡ ÊÏ;×šä­æë¯Å ø;ý Àý ,6³�ìÜ (71› ä­48<œ ä­I:6U9:¨¼sy¤¹ ‡7�8ˆ9�  Àý½$1ùìÜ Â2Ë�ä­33;œ ä­H51T45¨¼ ¤¹ !2'3‡4Œ : ¨ýú&ã¸ýô!'îŽÈÞhýÖ"(ä—) ž ä­n*v™ ä­ƒ+&¨¼w,Ÿ ä­Œ-'¨¼€.ˆ ä­•0(¡/0¨¼.4žÇ B)H*+,ý-.ë/ð r ¨ý±·Ž‹ã¸ý«·ŽÈÞhý�·Ž³äÏØ¡ ä­nv™ ä­ƒ ¨¼w!Ÿ ä­Œ"¨¼€#ˆ ä­•%¡$%¨¼flžÇ z€ !ý"#ë$ð ªPý¹šŽ¨ËhýÅšŽ³äêó¢ä­QY£ä­f¨¼Zb ä­o{¨¼[a¬ÖouËи½ ’àýµ„Ž˜þµ¾¤ä­4<¥ ä­IU¨¼¤¹ ˆ� -ˆýÍ  ë�ó¥P Y¦ ä­4 <§ä­I  U  ¨¼›¡¤¹ ¯ µ ˆ � Èhý« Ö�³äëô¨ä­4< ä­IU¨¼6<¤¹ JPˆ� cý¨Ê ~„‹’™ §®µ¼AÏÁÊÏ„ÓÙÂÜäô‡ä­öä­1¨¼:˜«Cõ„çä­#ä­ù¨¼ õ„Š…²ä­Sä­Ä¨¼Í Š…ÙŸ…Êô‡¶ä­Œä­å¨¼îä­Ú¨¼ã˜«ì«©JÏ…6ô‡"ä­Ýä­n¨¼wä­c¨¼lä­X¨¼a˜«j«©åÏ…Ñô‡½ä­@ ä­ ¨¼ä­þ¨¼ä­ó¨¼ü˜«žŠ âä­‘ ä­ô¨¼ý žŠ  žŠ ­ä­Á ä­¿¨¼ÈÙœÑä­å «©³ ä­÷ ä­Å ¨¼Î «©Ú  œ- ¿À n¿À  ¿À ¾¿À ³°†£¿À °†õÞ†å¿À d&°†T'Þ†D(¿À % 1¿À Í 6¿À ª <î ¿�¨¼Á ¤¹  ¯Å  Ùœ¨¼ ¤¹  Ùœ¨¼ ¤¹ , «©¨¼öÏ…¨¼ã˜«¨¼ÐžÇ Q «©¨¼ãÏ…¨¼Ð˜«¨¼½žÇ v Ÿ…¨¼Ð˜«¨¼½¬Ö‘ ›š¨¼¤¹ ¢ 뙨¼y¤¹ ³ ˜«¨¼ï¤¹ Ä þ¬Ì þª !'-3?Ï„GPZ%Hÿ®+: JNÏ„[Nh    $‰‘ž#¦®»#ÃOÏ„ÔOáðPÏ„PQÏ„1 Q? ORÏ„a Ro SÏ„‘ SŸ ¯TÏ„Á TÏ ßUÏ„ñ Uÿ VÏ„!V/?WÏ„QW_  ¨ÿ²2XÏ„JXá� ‹ã.YÏ„?KYá� ‹ãX LJd MKr w ù±«©«©LŽM“#›Àÿ ,ZÏ„FZ³�ìÜ .[Ï„?G[³�ìÜ X HFd IGr w ù±žŠ žŠ HŽI“#›Àÿ½$\Ï„B\ùìÜ -]Ï„>C]ùìÜ V DBb ECp uŠ©D�E†#ލÿú^Ï„4^ã¸ÿô!_Ï„5_îŽÈÞhÿÖ"`Ï„6`äŠaÏ„›7aã†bÏ„—8bîŽÈÞ‚cÏ„“9cä;4<7$*ê§;7<=:F¨ÿ±dÏ„&d·Ž‹ã¸ÿ«eÏ„'e·ŽÈÞhÿ�fÏ„(f·Ž³äŠgÏ„›)g·Ž‹ã†hÏ„—*h·ŽÈÞ‚iÏ„“+i·Ž³ä-&.)$*ê§-7.=,F Pÿ¹jÏ„jšŽ¨ËhÿÅkÏ„kšŽ³ä\lÏ„mlšŽ¨ËXmÏ„i mšŽ³ä°"¼#ÊÏ ù±Ÿ…Ÿ…"æ#ë!óàÿµnÏ„n„Ž˜þ.oÏ„?o„Ž˜þXdrw ù±Š…Š…Ž“#›ˆÿÍ pÏ„pë�ó¥.qÏ„?që�ó¥Xdrw ù±õ„õ„Ž“#›hÿ« rÏ„rÖ�³ä.sÏ„?sÖ�³äXdrw ù±ô‡ô‡Ž“#›Ú!¼$É% ØÞ�µ$ë%ñ#ú #œ,~0'‹1*š  ù±Ï…Ï…0¸1¾/ÇÏ/±2(¾3+ÍÓ�µ2à3æ#ïõþ #¿:"¡>5®?8½Ãá¶>Ð?Ö= ßç="!É@6ÖA9åë�µ@øAþ# $#ÿ·Ú Ï ê ð ÷ þ     ! ( / 6 tB Ï„K Ï„T \ d k ττy � ‰ ‘ ™ ¡ © ± ¹ Á É ô‡Àô‡É˜«Ò˜«Ûõ„„õ„�ë™–ë™ŸŠ…HŠ…Q›šZ›šcŸ…dô‡?Ÿ…vô‡Q† Ÿ…’ä¼›˜«v˜««©Ï…Ýô‡¸«©Ï…øô‡Ó6¿�?¿�H! Ï…-á½6˜«˜««©Ë Ï…¦ ô‡� «©æ Ï…Á ô‡œ ÿ ¿� ¿� ê á½ó á½ü ˜«× ˜«à žŠ Ø žŠ á Ùœê Ùœó žŠ œ žŠ ¥ Ùœ® Ùœ· «©` «©i ¿�r ¿�{ Ï„óÏ„üττττ Ï„)Ï„2Ï„;Ï„DÏ„MÏ„VÏ„_Ï„hÏ„qÏ„zÏ„ƒÏ„ŒÏ„•Ï„žÏ„§Ï„°Ï„¹Ï„ÂÏ„ËÏ„ÔÏ„ÝÏ„æÏ„ïÏ„øÏ„Ï„ τττ%Ï„.Ï„7Ï„@ Jî X©ògÀòt¿À o__arg1_0Áƒ¿À 0ŠÂ=¿À êŠÂ÷¿À ü °†Û ŠÂ __arg1_1Áü  ¿À ƒ &°†b 'Þ†A (ŠÂª )ù‰ *__arg1_2Áo +¿À $ 4°† 5Þ†â 6ŠÂK 7ùÂ* 8Îà 9¿À  BŠÂ C¿À ¿ FŠÂÌ G¿À y JŠÂ† Kþê§šŠ©Š©hê§Ü ê§— ­±R Ͳa í³È �µ/ �µ@ á¶“ �µl á¶í �µÆ 耴uřǙș­É™Ê™àË™óG*¤�R{9 ‹ã]b †�Çt|�€‡x…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàŲн‡W\ †‚ÈnvØ€êzìÜ Ûú) 2ø€Æ~$ …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅřǙș­É™Ê™àË™óG*¤�R{9 „K„KK‡Kí ä7ˆKõÙä7‰K«ä7ƒ¢3à6ú�½‡½‡½‡$* †µÉ =G €‹�  P€Ì‚  h€šƒÈ€äƒµÐ †µÐ09ȀÅͶÓô*3(€ºs Ð   €¿s€¾s $ sÛ‚³�Ž ³�™�Çþ �Ç ‚È’ ‚ÈžìÜ ,žŠ 5µÉ µÉΆš×»ç› Ä©ç› ²µÐ™ µÐ¥ͶpˆƒyKV ÖǾÑÈDÛúÐÒË –³Z±…>±…#ùÌÓôѵÉaìÜ h‚Èo(�Ás Ý™Îè�´u�Ǩ¼��‡x ‚È  ¨¼Ø�êz ìÜ   ¨¼ø�Æ~$µÉ ¨¼ �‹�¨¼P�Ì‚¨¼h�šƒ¨¼È�䃵Ш¼È�Ã…Ͷ#¨¼‡ ¨¼    °½µÀÏØä­åáÀùÿøÀ (�ÆsÝCIPÏÁ^ÞÎgÙÂp™ÎyµÀ‚òÕ‹ôÕ”¨¼‚ò΋¨¼m‡Ïv¨¼XžŠ a¨¼C®ÏL¨¼-†š6¨¼ç› !¨¼ç›  ¨¼ðôÏù¨¼Ú�Í㈃ìä­HáÀQ[œiƒ w‘ƒŒ òΨ¼‡Ï¨¼bžŠ ¨¼E®Ï¨¼(†š¨¼ ç› ¨¼íç› ¨¼ÑôϨ¼µ�ͨ¼—øÀñ»Ä©ä­Ò¹Âª ä­Ð·À«ä­Î´ ½¬ ä­Ë ² »­ä­É  ± ºBä­Ç  ¯¸® ä­Æ¬µ¯ ä­Ã$ ä­ ™ ä­  WfÝw™Î„›Î�ä­Tä­]ä­?ä­Hä­*ä­3ä­ä­ä­ÿä­ä­ëä­ôä­×ä­àä­Áä­Ê%è‚´u  ÷�Ç�‚‡x  ÷‚ÈØ‚êz  ÷ìÜ  ø‚Æ~$  ÷µÉ   ‚‹�  ÷ P‚Ì‚  ÷ h‚šƒ †ß È‚äƒ  ÷µÐ  ȂÅ  ÷Ͷ    8‚Ès Ð  ‚Ïs‚Îs  $ sß‚ ³�Ž�Çå‚ÈÉìÜ ­µÉ�qR4µÐͶþà ÈÝ9íÝ’Þý¹ÞÞàÞ¾†ßŸ†ß�ÌßgóßGµÉêìÜ ð‚Èö�—� °®ƒ¯)1¨—¥ °®ƒ¯)1ø—À% ˆ¶¡·*2 —ë °®ƒ¯ )1ø—…% řǙș­É™Ê™àË™óG*¤�R{9 è�^c †µä u }ø—°! řǙș­É™Ê™àË™óG*¤�R{9 µÐ^c †·å u }(—Ý à  —â è<àŽH àŽS°®8ÿ¸A°®ÿ¸ˆ¶ðºù°®Ëÿ¸Ôµä§ µä³·å: ·åFÎØƒ¯¿ƒ¯�¡·aƒ¯1ŠåŒæ‡(˜ä  ê ä­�˜� °®¨¼¨˜¥  °®  ¨¼ø˜À%  ˆ¶  ¨¼ ˜ë °® ¨¼ø˜…% µä¨¼ø˜°! ·å#¨¼% ¨¼   ERµÀdmä­záÀŽ”øÀ¢¨®´½˜é êØÞåÏÁóòæüÙÂÍèµÀ ¨¼1Õì:¨¼ÿ¸ ¨¼ÿ¸ ¨¼íºö¨¼×ÿ¸à¨¼ÂÎç˨¼¬ ãç¸ãçÁä­»áÀÄΜ܃ ê‘öÿÿ¸¨¼áÿ¸¨¼Äº¨¼§ÿ¸¨¼‰Î稼lÙí¨¼NøÀF ÿBä­ü°ä­ù±ä­÷ ²ä­ ô ý® ä­     ä­ì­ä­ 4CêT ÍèaÏèjä­ ä­)ä­ ä­ä­õä­þä­àä­éä­Êä­ÓÌ�™�  ǫ̃™¥  õÌø™À%  ËÏ ™ë  õÌø™…%   ÷µäø™°!   ÷·å8™ë à™ò ì<àŽH°®°®ˆ¶ë°®Óµä¼·åž�õÌRõÌ:ËÏ"õÌ žóñÄóÑ(š‚¡ š‡¡ ö(è�4 è�?HR(œ�¡ '.6³ä­œ“¡ RZ´ä­$qyµä­C’—¯Å ¤©±œ”¡ ùÌÏÁØÉõàÙÂèä­ð÷œ¯Å $ ¨ž¼Û ¿¿ ParserBuilderÁÀastÁðÁhirÁðû¡˜Á™iNbg †µøy�pžûÛ àŽ †àŽ08ÈžŒÝ ð0ð0Íò0ÂÙñ.ó0�ñ.žFår­ä³�TY †øùksðž‚ß ð0ð0Íò0ÂÙñ.ó0�ñ.žFår­ä™“TY †ðú k tðžñß ð0ð0Íò0ÂÙñ.ó0�ñ.žFår­äß§TY †éû k tøž“á# ð0ð0Íò0ÂÙñ.ó0�ñ.žFår­äñœUZ †ãü l u(ž¸Ú ú  ž½Ú ž¼Ú   % m‚|ã�ˆÉÔ�µø? µøKàŽÎòæ×øù£ øù¯ðú@ ðúLéûÜ éûèãüx ãü„ ŽùÑËùRÃú»û«´ü9®ýÇéûðú#øù*(Ÿ¿Ú  „Í訟¼Û µø¨¼pŸûÛ  àŽ  ¨¼ÈŸŒÝ  øù  ¨¼ðŸ‚ß ðú ¨¼ðŸñß éû¨¼øŸ“á# ãü$¨¼ ¨¼   9FµÀXa¶ä­oáÀƒ‰øÀ—�£©²ŸÄÚ „ÎÔÛÏÁéÉÔòÙÂûÍèµÀ ÓìÕ쨼 æþ¨¼öòæÿ¨¼à�ÿ騼ʢÿÓ¨¼´·ÿ½¨¼ž ÌÿªÌÿ³ä­ áÀ©³œÁƒ Ï‘Ûäæþ¨¼Öò樼¸�ÿ¨¼š¢ÿ¨¼|·ÿ¨¼^¾…¨¼@øÀ+ óüä­ ïø·ä­ìõ¸ ä­é ò¹ ä­ æ ïº ä­ý  ï ä­á»ä­ („9 ÍèFÏèOä­ä­ä­þä­ä­èä­ñä­Òä­Ûä­¼ä­Å±¹ ¾ © ¾  ŒC„„HirÁ…¦ã†propsÁãì�›â -c@’™÷   ‘PòàD™÷ (-ø’�÷† JY^ ÆQ�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ£Û»ÄÉÕ?˜ ”÷  à £Û$°÷  \Ë÷ µøüË÷( ,ì÷  ø1<ì÷ ,¸ù  Þ"…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàŒн‡gp T�ø 4‘ø  ¥£Û �ø  D‘ø üË÷O ,‰ø  † þT Œ‰ø üË÷€ <°ø  Ç_’Š¡¢£ParseÁ¤ó¥¦ TranslateÁ§óònÅëö`‹ü‚• … ±”¸ø ¢�  ܰø ø“Ë÷�   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw’Š‚•   {€ Œ üË÷�  m’Šü°÷« $µ÷  ‘M’н‡ ºF üµ÷¦ ”Ëø  [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwëÝ‚•fv �%ïáØ’Œ‹ Ûø üŸù œ¤ù  ³ ’Š$Ÿù gÔ¤ù  Ãù Äù Š=üýõÇ ° üñöÓ y€‡çïá¼Ïö ÉÔ,§ö òàD¶ö â�Dõö Ê‹©Ê‹²Å™Ç™È™­É™Ê™àË™óG*¤�R{9 çŒ Ê‹ ÙçŒ,€ â�#ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Ø’’Š ã�IÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw’ŠÈ�× ÈÈParserÁÉÕ÷ðÊä÷ðDâFÈeC¬ؘæþ.ä­q|Ø’…’Šç  ’Š â�( Ýw hirsÁ�¾¦Ù Æ õŽZÃŒŠ`ðŠýÄ‹§�ÖÜ�²ÕŽ5‹�¾�ÜÝ�C˜’�½“QؘÅؘÌ“”°â�}â�„ؘèâ�’œ ’ <¥’  ¸ „$ ’ ,­’ t¥’ ¹’ ³ ü¥‘” ïá¼þ‘ ÉÔ,Ù‘  ò›,è‘ exprsÁS웫W\ý¡ ôý¡ „‹¢ ¦" \Ó¢ üµ¢* ìµ¢  ˆ +"ü±¢/ Àœ²Ÿ‚•?˜M\÷¢ àŽÌ÷¢ \ƒ£  Ÿ 0lƒ£ + \ £ àŽü £ ”¬£  £  1 ¤¬£ *  ü £) 4Á£  ¬  R DÁ£ ,  üë£" üë£  Œ  üç£' Àœ²Ÿ‚• ?˜Md£¤ øùÌ£¤ T°¤  Š1³�4 d°¤ -ü£¤!   ê"ý1ý1RefMutÁ€2�ñ.�2ÂÙñ.‚2… ñ.뜿Eòür³�¦ Usz,½¤  ÓÌ U<½¤  Ĥ dΤ øùÌΤ TÛ¤ ‰¡.dÛ¤ 'üΤ:  áKT\ñ¤ àŽ´ñ¤ Dý¤  ž 0TTý¤ fDè¤  ç²GTüè¤  ˆ¥ d’¥ øùÌ’¥ TŸ¥ ‰¡.dŸ¥ 'ü’¥@  áKS\¸¥ àŽ̸¥ \Ä¥ Üž .SlÄ¥ d\¬¥  é°ESü¬¥&  Ò¥ dÜ¥ %øùüÜ¥& Tö¥ ‰¡%/$dö¥ (#$üÜ¥d  á#L"R\¡¦ 'àŽô¡¦ „­¦  ¤ '0&R”­¦ f„�¦  ë"³&G!Rü�¦0  À¦ $dʦ -øùüʦ& Tä¦ ‰¡-/,dä¦ (+,üʦd  á+L*Q\�§ /àŽü�§ ”™§    /1. Q¤™§ gtþ¦  í*´.H)!Qüþ¦0 ø•ʦe   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‚•)("Qy~0(Š0$%#?˜ ¯§ ,'–®§ 1([Ø’Õ"½“1.&QïN,Mdü© $‚ª  ìwò›,ü© 4(4‚ª 034ü�ª’ 5 º ò› ò›UÿÉÔüü©¤ ‰ª  ÅR�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫò›º ò›ü¬‹­3ð5¸2)ü‰ª— \º¬ 8àŽüº¬# ¬Æ¬  ¥ 817*¼Æ¬ ,7,+dᬠ62ü¹¬4 - 6!-D’­ :6:3.t©­ <®­  Ø $©­ </L®­ x—©­   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwä‘‚•<�;0w|=;ˆ=12#|©­ ?;mä‘ 9?ü�­‰ :˜·­ >;[Ø’ê "½“>.MŒð­ D ìÜç­ Dç­  µD/C4!äæ­ BCüÖ­7 TÛ­  Ë $Ö­ B3,„®   ‹® A5PüÛ­2 ø™Ö­8  ˜°Ao@6P %E@1E78#üÖ­8 G@mä‘9G —® C:š�® F@[Ø’— "½“F.9P±NCMd® $È® ¶¬,® K;4È® üÓ®Ó L » ò›ÿ¬ž°Uÿ‹­ü®å Ï®  ãQ¯­ž°» ò›Áµ‹­K‘LlJ<ü쨯 ü²®ö T·®  Æ ÌŠÌŠMapÁÏŠ�Њœ“D^)c˜þOþ¯­÷µ$²® J¼I=ü·®ñ ø›²®÷  ˜°I—H> %MH1M?@#ü²®÷ OHm䑬¾± R9³ätÕ± SO³äü³±1 ,¸±  Ú $³± RLS=QAü¸±, œ¨± NH[Ø’Ü"½“N.Mõø§³±2  ±ªQŒPB$TP0TCD#Ìù± \øùüù±3 T ² ‰¡\/[Ed ² ¨ä± UP[Ø’�"½“U.M¶cZ[üù±o   Þ"É¡ZŒYFO$tÀ² ]O³ä¼Ð² ^9³äS,º²  ÔYÚ]E^6XGOüº². ø©ù±p   �%ïáX¤WHO&+_W7_IJ#üù±p aWm²ŸVa é² [LNªè² `W[Ø’ž"½“`.KO¸O[Mų bV<³  Àœ²Ÿ‚•bϳ M  γ VV¶[VCVq ,V $V" V# V&Vü¦¡© ¸ Ï Ö Ý üʦe ü驿 üª¬¥ ü÷¬Ø  [ ÓÚ á ü£®¬ ÅÌÓW$+2ü³±2 üï±à ý Kcïá¼Ø¡ ÉÔ,Á¡ Íœ,È¡ )‚•ãü‡òæ§ÉõOè�Xòæx‚•õZ ³�f É¡®É¡·�ÿ׌”• ÂÔÉ¡Ý�ÿý}òæ�Ö”Âß ÂÉ¡'�ÿGÇòæç!”Â* ÂjÉ¡s�ÿ“µÐòæ4ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Ø’' ·ªÆ ”ÂÏ  ÂÉ¡�ÿ8Ͷ¹ òæÙ ¶ Ø’¿ dí©  ¯­‡ ¯­� þ­\ D®¬ ‹ òæ« ä‘Œû¬ 1 ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Ø’ä‘; ž°r  Ø’ˆ ä‘Å ïŹ ž° ’Š7 ’Šf ìíîAnyCharÁïðAnyByteÁñò AnyCharExceptÁóóôõAnyCharExceptLFÁö÷AnyCharExceptCRLFÁøù AnyByteExceptÁúóûüAnyByteExceptLFÁýþAnyByteExceptCRLFÁÎôˆ¨ƒ6�±‘ z Ø’ƒ ä‘Ä ïÅ ž°§ À¶ ¯­c ÷µB ŒØ’•ä‘ ôÃj·ªè³ä ³ä  Ø’²Ÿó± ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Ø’²Ÿ«ïá;ÞÎD É¡ÁÉ¡Ê�ÿê³äB³ä7tØ’}²Ÿ¿²ŸDnì›rÆ Q1Žy?˜ all_anchoredÁ¶2©Æœ6unanchored_prefixÁž9Æ µ >Žõ ?Æ r F޶ G�•D§® OÆ d NŽí OÆ ¿ UŽ’?˜õ.¿VÆ ™`ŽÞa“w¦"E ³wò›­¶Îvò�lÜž®Ÿ¾æŸ�¤ W‰¡÷á¼¢ÉÉ¡-‰¡ áÞÿ£«¨¤ìÉ¡^‰¡>áܞܘ¦É¡‘‰¡qáAâ§‹¨OÉ¡Á‰¡¡áqÖ©>ÿ©±ªðÉ¡O½“þÉ¡]¶¬©­�Õ®÷ë¯g˜°@½“G¸²/ð²ÿ˜°®’ŠK½“¼’ŠY¶¬éµ± º¶g ˜°ï ¿¸o ½“ý ±ª ‰¡· ½“ úºT Ì»[ ƒ¼Û É¡r ½“é É¡€ ²Ÿä É¡Ž ’Š×É¡6É¡ÙÉ¡ÓÉ¡Êɡà T«ª 4­ª  Ïò›’Š «ª D­ª ¼«ª T¶ª  ¥Od¶ª \Óª  ÉÔ àŽÌÓª \ߪ Üž@lߪ )¼ÿª |…«  ©,ÿª Œ…« t «  �üÿª0 D—«  Ï\5Ä—« ¼Õ« |Û«  §,Õ« ŒÛ« „ö«  �üÕ«2 Dí« ¾Ô Z 3Ôí« Ÿ¬ º ~üŸª€  �ª  þ­¢�­ Žª ŠŠ‹ PropertiesÁŒóã 2¾áAH‹Q�,£ª þÆ6µòæç¬¬Ñí¼¹Ç1ç¿Ü¿µ��‘ò¾’“”‰¿•–—ž¿˜™š·¿›œ�οžŸ é¿¡¢£‚À¤¥¦�À§¨©¾Àª«¬ÛÀ­®¯þÀ°±²žÁ³´µ¼Á¶·¸ÞÁ¹º»þÁ¼½¾¢Â¿ÀÁÄÂÂÃÄêÂÅKh]ƒ®h¯9úôÖ¼¥×™ÉÔÉ›)$¡ ÉÔ´‰¹ÒEïÒÜžËûÓ˜¾Ô]îÔ3¾Ôø‹ $í® !ÉÔ¤í® lò®  Û !0|ò® ¨�í®   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‹ã‚•šw|ˆ?˜¬í® m‹ã$š¯ "ÉÔ$¨¯  Å™ä­T®¯ 4°¯ ¹Ò ®¯ D°¯ ž�¯ [Ø’4# �%ž°Ø’9Xüš¯ ,Ÿ¯  È "½ ¥¯  À ª ÔŸ¯ øŸš¯  ˜° `$ 0  üš¯ mä‘$ݯ #ÉÔ„ݯ L⯠ æ #0 \⯠ ¹¯  [Ø’¸"©Þ .ш¡ݯ   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³ä‚•Õ w|ˆ ŒÝ¯ m³ä$ü¯ $ÉÔ<‡° ³äüü¯# ,�° ¿¸$C3t�° ô�° ¢í¯ [Ø’/ #©Þ/Iø£ü¯$  ±ª‹$ 0 $¶° %ÉÔLʰ ³äô¶° t»°  Ü %D4Ì»° ¤Ÿ° [Ø’·"©Þ.Ðø¥¶°  ùÛ‚$ 0 ü¶° m‹ãLû°  ³äüæ°5  … üã°9  Àœä‘‚•¦± ¦Ô° [Ø’Õ"©Þ.îH» ïüå®Á §®µ/ü�¯– ¡¨¯ üȯÞ y€ ‡¼ ÃÊ üü¯$ ü®°x  ð öü y&ž°Ö®  ÷µÁ�­ Ô® ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Ø’‹ãäÿÛÞØ’ç‹ãcïÅgž°¹Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ä­•þƃ4Ø’=ä‘ ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Ø’³äc€áÒbØ’k³äíôÃ>·ª»³äÚ¾Ø’Ç ùè“ÿÛ³ä&õØ’þ ‹ã~ ä‘Y³ävÉÔÅÉÔÎÉÔ×ÉÔàÉÔé›*e ÉÔÆ »Ž:oneÁ”¯ Æ · Ž ï*t̯ Æ Ž ŽÆ ÍŽ?˜Æ ÷Žz¯ÏÛ£ ùÛ ¹Ò™©Þ� ÛÞ4˜°ò•à‡©Þúà/¿¸Y©Þ=±ªó¸äŽ©ÞùÛ1©Þ8‹ J,ÓÒ G GáÒ LáÒ $äÒ  ÆQøè/=4äÒ .|ÛÒ ?˜4¨Ó àž°8´³Ó  ˜°4³Ó ="lˆÓ 4�Ó  Ù $ˆÓ >=D�Ó Vb<³Ó  mä‘âÓ  LâÓ $åÓ ¦ð ) =4åÓ µ¹Ó  [Ø’ã"©Þ .?=ýd  |ÜÓ   4¥Ô  àž°8¶°Ô  ˜°4°Ô  ="L‰Ô  Àœä‘‚• „‚Ô 7T` <°Ô mä‘„ÙÔ LÞÔ  á $ÙÔ =\ÞÔ ·¶Ô [Ø’Ö "©Þ.@=ðˆ¸ÙÔ  úà�=$0ŒÙÔ m³ä„þÔ LƒÕ  Ý $þÔ =\ƒÕ ¹éÔ [Ø’¦"©Þ.A=ÀˆºþÔ  úà�=$ 0 ŒþÔ m³ä\«Õ  ³äô™Õ ,žÕ ¿¸$™Õ ,¤Õ ==ÌžÕ »ŽÕ [Ø’Å"©Þ.B=ßø¼™Õ  ±ª�= % 1 LÍÕ $ ³äÔÂÕ ,ÇÕ ¿¸$ÂÕ $5ØÕ #=¬ÇÕ ½·Õ ![Ø’­"©Þ!.C=ÇؾÂÕ  ±ª#Œ"=$%"0%dùÕ )³äüçÕ ,ìÕ ¿¸$çÕ ,òÕ )>(=ÔìÕ ¿ÜÕ &"[Ø’­"©Þ&.D=ÇøÀçÕ  ±ª(Ž'= %*'1* !TœÖ .³äÜ‘Ö ,–Ö ¿¸$‘Ö .5¨Ö -"=´–Ö Á†Ö +'[Ø’­ "©Þ+.E=ÇàÂ‘Ö  ±ª-Œ,#=$/,0/$%ÅÖ G 2ÄÅÖ   ‘Pøè2@1&=%Ã¬Ö 0,[Ø’¬$"©Þ0.F=Æf31øÄ·Öœ ''ƒ'53’'—¦ð5£4(9¬±'64½'6*)4»Ö '74àž°8ÅåÖ ( ˜°74åÖ 8+9"ÄÒ× 35=<(98H(9,-<åÖ (;8mä‘tŒ× )>;³äüúÖ! ),ÿÖ ¿¸$úÖ ,…× >>=.9äÿÖ ÆëÖ (:8[Ø’Þ+"©Þ:.G9øøÇúÖ" ) ±ª=Ž</9 %)?<1)?01dµ× )C;³äìª× ),¯× ¿¸$ª× C5Ã× B29į× È›× )@<[Ø’­/"©Þ@.H9ÇðÉª× ) ±ªBŒA39$)DA0)D'4ÊÇ× )EA[Ø’^3"©ÞE.I9xüß×! F …üÜ×%  Àœä‘‚•F †Ø 8l37=G8;‡Ø š3=ü´ÑÓ Z8i:yG:<„ 7¸ 7… 7™7Ý77?7| 7¹$7u+6�/6¾36Æ 6ÈüÏÒ¸ ¼£Ó Š ‘ ˜ ò üÏÓ¸ ¼ Ô ‰ �  — æ  üÍÔº éð÷F üôÔ“  * 18 ¦x†ü™Õ ÉÐ×ÜÂÕ  'üçÕ !kr#yä‘Ö %?F'üÖÖ} ( ('*.(�,n)u.|)üúÖ" 0)2)ôª× 4Hž°üÚÑ ÉÔ,ÅÑ øè4ÌÑ Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ž°¸  øèÖ $ùÒ ž°~ ïÅk ­ Ø’¶ ä‘ …‹ð Ó‹ $úÓ ž°ˆ ïÅu Ä Ø’Í ä‘ ùê¡ €á ) Ø’2 ³äƒ ùê €áz o Ø’x ³äè ôÃL ·ªË ³äê Ö Ø’ß ôê ·ª) ³äH 4 Ø’= ôà ·ªˆ ³ä§ ’Ø’›ôÃf·ªå³ä ñØ’úøè-øèZøè?…‹HÓ‹Qåž°”'ïÅ�ÈØ’Ñ(ä‘B(ôÃ¥·ª%³äD/Ø’8)ô÷ª‚³ä¡ÜØ’å)䑲{!ÀÇ,ÃfirstÁy Ç ñÆ  Žz secondÁ4ÓÓ Ç ëÆ " Žv C,ÑÔ Æ € ŽÔ ’øÔ Æ À Ž3 Æ  !މ?˜Æ [ &މ?˜Æ ¬ +ŽŠ!?˜Æ þ #0ŽŠ%?˜�G '3Ç … (7�•DÚÖ );Æ Ã*:Ž7 ,;Æ  .@Ž–0?˜Æ ­2EŽ–4?˜(¦ðò˜°„Äñb¦ðô©Þ™˜°båôÝ©Þpúà€¬ö+©ÞŽúàο¸e©Þܱªý ¿¸¬ ©Þ ±ªD ¿¸ô ©ÞR ±ª‹ ¿¸: ©Þ™ ±ªÒ Ëþt ©Þà ¦ð‚ ˜°Ÿ øè} ¿¸% ©Þ´ ±ª¼ ¿¸k ©ÞÊ ±ª ©Þ øèµ øè¼ øèdøèk(«Ž” «“” Š(-ä‘: ä‘ENX(­›”  ¼ ä­È­Ç”  ½ä­³ä,¨¼¸­æ”  ¾ä­ ³ä,  8 ¨¼¢§¬Ö´¹¤©qvÕ­ ” �ð ÏÁüã–Ù ä­ä­¨¼ô‡ä­ã¨¼똫óô‡û[œitô‡¨¼h˜«¨¼5¬Ö“ (®¶ž  ¿ ä­À®Üž  ·ä­”Â,¨¼À®úž  Àä­  ™“/ ¨¼x®˜Ÿ  Áä­ ³ä,  8  ¨¼âçžÇ ôùäé±¶ { €®»ž •;ÏÁH ŽŽÔ�åñ‘ƒñ’´ñ/Ðãia†Ý™Ù¢䭫䭚¨¼£ ”¯ä­{¨¼„ ª›�ä­Y¨¼b˜«kô‡tœ#.í�¨¼"‹ž¨¼ï˜«¨¼¹žÇ WÀ¯ÛŸ ²› †²›08ȯùŸ …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ蓽‡X] †ÞŸox(¯µŸ –¯ºŸ ¯¹Ÿ AšP™“\ ™“g²›) ²›5ÞŸ ÞŸ š¤±Ÿh­ 2²›�(°¼Ÿ   ä­À°ÛŸ  Ãä­²›,¨¼ȰùŸ  Ä ä­ ÞŸ,  8 ¨¼¢§¬Ö´¹¤©qvÕ°ÁŸ œð ÏÁü¨¡Ù ä­ä­¨¼¼¡ä­ã¨¼ë Ñ¡öÑ¡þ^œlw¼¡¨¼kÕ¤¨¼8¬Ö–°±Å  ˜þçþ*2ø±á  řǙș­É™Ê™àË™óG*¤�R{9 µ”_d †ü¥v(±   �±¥  ±¤  A¡Pè“\ è“g˜þ*Š…3ü¥ ü¥—¡çþfѦ6˜þ�(²§   Åä­°²Å   §ä­˜þ,¨¼ø²á  Æä­ ü¥-  9 ¨¼£¨¬Öµº¥ªrwÖ²¬  £ñ ÏÁý̧ÙÂä­ä­¨¼Š…ä­ä¨¼ì ò§÷ò§ÿ_œmxŠ…¨¼l÷ª¨¼9¬Ö—H³¾¡ 8³Í¡ (³�¡ ¤³”¡ ¨2µ”> µ”I–鋞‚鋊pzÇŒÊÇŒ­(´–¡  Çä­H´¾¡  ½ä­+¨¼8´Í¡  ¾ä­ +  7 ¨¼ ¥¬Ö²·¢§puÓ´›¡ ªî ÏÁúÛ¬Ù ä­ä­¨¼ é‹ä­â¨¼ê£�òé‹úYœgr鋨¼f£�¨¼4¬Ö‘ Á†Õ †Õ/7(ÁÛ «Áà®-‚•9äÀ AÕ… Õ�]gí°­(Ââ 6 䭠† 7ä­Õ*6¨¼af¤¹ sxejŠÂç°¤ÏÁ°äÀ ¸ÙÂÀä­Èä­¸¨¼À Ô±ËÔ±Óôœ ß³¨¼¤¹ !(Ã÷ 07 ±J PÃëƘ{ ±Ãû `Ãä˜Æ ±K `àûý`Çûý8 )6 ±¿ `Û Ü—`Ãâ Ü—8 ) ª ±  3 ðÿׂÑ$ †‚Ñ6 >ÀÃÚ ¦—ì¼$ †ì¼6 >˜Ã� ‹—È�$ †È�6 >– ± ¶ ±< Ö ±?˜‚Ñd ÃüÈ '.5<CÕQÔ±Zb È�È�$ ì¼sì¼| ‚ÑË‚ÑÔ†šR†š?cO†šè†šÕù冚QY ¯· ¿À Ï¿À ¿À o¿À ñ °†â ¿À  °†p¿À à¿À 8“ †Q–³ –³Í–³`¦¸ò鸶¬¹z–³`–³Û (Äþ 07*?Èä­NS¯Å `*e mPÄë%ƘŽ&–Éä­1'9Êä­F)%R()¨¼×ܤ¹ é&î'�(† `Äà ¤˜"!+Ëä­3";9ä­G$ S#$¨¼lr¤¹ €!†"†#‹ ™`ÄÂûý`ćûý×à= ä­NVÌä­c¨¼X`9ä­lx¨¼FL¬ÖZ`Ç̵º }`ěܗ`ÄâÜ—»ÄÍä­OWÌä­d¨¼Ya9ä­my¨¼+1¬Ö?EÈͶ» bðÄ¿ ׂх ŽÎä­4 @¨¼»Á±Ç Ï Õs ãÀÄÚ ¦—ì¼ Ïä­4 @  ¨¼<B±Ç P V s d˜Ä� ‹—È�‡�Ðä­4@¨¼½Ã±Ç Ñ×s åÄƒÊ ")0+ÏÁ>Ô±GÙÂPX—»÷ä­i¨¼ —»¬»žä­�¨¼° ¬»¼Á»Fä­·¨¼X Á»d†šR†š?ä­çä­m¨¼vä­c¨¼läÈ u†š~†škä­/ä­™¨¼¢ä­�¨¼˜äÈ ¡†š_ä­nä­q¨¼zäÈ ƒ«¼ ä­›ä­2¨¼; «¼Gä­Â ̜ڿÀ ¿À  ¿À › ¿À �°†~¿À ‹°†|¿À > ¿À ß%Z¯Å eÉ˨¼ý¤¹ väÈ ¨¼z¤¹ ‡†š¨¼òäÈ ¨¼à¬Ö¢†š¨¼)äÈ ¨¼¬Ö½Üɨ¼_±Ç εɨ¼ï±Ç ߎɨ¼±Ç ð�Õ›$ …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ—™½‡W\ †¥ÎnvHÕ¡% (Õñ! ËÕö! Ï0ê—< ê—G¥Îë ¥Îö�ç› ‰q{ôÎ!±…­¥ÎÕõ! (àýj  Ñä­ØàÔk  Òä­ààΚâ -‘ ã¯s‘ äýš‘ ÿ„‚�D›pq¨¼øàÐm.  ¥ ä­ �p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫΚw ¨¼˜àøp  Óä­ ìÜ +  ¨¼øàÔr!  Ôä­˜þ,8¨¼ª° Ë ¾Ä±·;A ¿ Ä �’ùà‚k ØÏÁ! ÐÐÔ™Ò¯s‘ Ó -‘ ÔC‘ Õï5‘ ó!ƒYÖ £ò}Ù†ä­�ä­¨¼ˆ �є䭨¼$ “Ò0ä­±¨¼ºžŠ Ãä­�¨¼™›š¢Š…«œ"-öÕ¨¼"”Ö¨¼ªžŠ ¨¼,›š¨¼ú Ë`àãÖƒ …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅΚ½‡X] †Ï×owØãøƒ …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàŽ‡[` †ËØr{(㲃 Ùã·ƒ 㶃 AÝP—™\ —™gÏ×k Ï×wËØ ËØš¤žØª�Ù5Ï×�àäÖƒ   ÷Ï×Øäøƒ   ÷ËØ 8乃 ÙäÀƒ 促 AßP—™\Ï×¯ËØ‘s�ÛȶÛ¨Ï×] (í¬š  Õä­èíÕš  ¥ ä­  Κ0¨¼øíøš- Òä­ �p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ†Ùx ¨¼øí«› Öä­ Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ¢Ýr  ~  ¨¼u{žÇ ‰�{�FL É Îºí±š çÖÏÁãöÕìÙÂõä­þä­í¨¼ö ¢Ýä­Ê¨¼Ó äÝßä­_¨¼h  íÞw³á€nœ|‡õ਼{“ᨼD±á¨¼ÅžÇ °(îÿž  í(-3Κ@ ΚKT^³ 1099511628211Á%#"„äœòË14695981039346656037Á`ò£# xòí# Ðò€% …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅŒœ½‡W\ †¦änv(òû ïò€ ô3²›?¼¡G ³ç ü†š¦äë ¦äö„Ž †\–³Aõä& (ó‚  ×ä­`ó£#  Øä­*¨¼xóí#  Ùä­ * ¨¼Ðó€%  ƒä­ ¦ä+  7  ¨¼ÙÞžÇ ëðÜá«° z ó‡ ö1ÏÁ>¼¡GÙÂPä­Yä­I¨¼R³ç [ä­)¨¼2†š;ä­ ¨¼ ƒæƒæ'ÀœÎÙ³ç ¨¼Î†š¨¼�ì騼lžÇ `ôÆ'  ô¨( ˜þçþ)1`ô¤) ³äÒ�)2(ôÂ% ÷ôÇ% ôÆ% AüPŒœ\ Œœgý³ç ˜þ슅ô³äÆô‡Î ª¤æCçþ(Ò�ù˜þ› (õÉ%  Úä­`õÆ'  Øä­*¨¼ õ¨(  Ûä­ ˜þ+ ¨¼`õ¤)  Üä­ ³ä+  7  ¨¼ÚßžÇ ìñÝ⬱ z õÎ% þ2ÏÁ?ÃìHÙÂQä­Zä­J¨¼S³ç \ä­*¨¼3Š…<ä­ ¨¼˜«ô‡$¾œÌ×³ç ¨¼ÌŠ…¨¼›˜«¨¼ižÇ `öÆ'   ÷ ö¨(   ÷˜þ`ö¤)   ÷³ä8öÐ% ÷ö×% öÖ% A€PŒœ\Иþ´³ä—zÒññöñÓ›ò´˜þi`üÖB xü C Èü³D …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅÍž½‡W\ †¨ônv(üÇ@ �üÌ@ †3ñœ? ñœJ³ç ÿ†š¨ôî ¨ôù‡‘¤æZ–³?÷ô$ (ýÎ@  Ý ä­`ýÖB  Øä­*¨¼xý C  Ùä­ * ¨¼Èý³D  ƒä­ ¨ô+  7  ¨¼ÙÞžÇ ëðÜá«° z ýÓ@ ˆ1ÏÁ>ÔõGÙÂPä­Yä­I¨¼R³ç [ä­)¨¼2†š;ä­ ¨¼ ˆöˆö'ÀœÎÙ³ç ¨¼Î†š¨¼�ìù¨¼lžÇ ˆþ­F ³äÒ�)1hþÄF Xþ×F (þçE ‰þìE Ž3Ë�? Ë�J³äÌô‡Ô¥é‹­’鋚�‹Ò�ÇŒàÇŒÄ (ÿîE  Þ ä­ˆÿ­F  ßä­³ä+¨¼hÿÄF  ½ä­ * ¨¼Xÿ×F  ¾ä­ *  6  ¨¼ÙÞžÇ ëðÜ᪯ y ~ÿóE �1ÏÁ>‘üGÙÂPä­Yä­I¨¼Rô‡[ä­(¨¼1é‹:ä­¨¼£�é‹#½œËÖô‡¨¼Ë鋨¼™£�¨¼hžÇ ÿˆ€­F  ›òh€ÄF   ÷X€×F  µ�8€õE ‰€üE ’3Ë�?³ä§�r\›òƵ�­µ���€F ”�þE  ‘ü#,6h‚ÄF &7X‚×F &7ˆ‚­F ³ä ³ä*/õÜ ; @HMUb‚‹F —H‚‚F ‘ü‘ü/7?ô‡Óô‡Ûeî r|õÜ`ƒ�I �ƒæI Ë� †Ë�/7`ƒ½J ³äÒ�)1(ƒŠG ˜ƒ�G �3Íž? ÍžJå³ç íË�Ó‘üÛ³ä§ô‡¯‚Œ¤æ* ‡Ò�Ú („‘G  àä­`„�I  Øä­*¨¼�„æI  Ûä­ Ë�+ ¨¼`„½J  Üä­ ³ä+  7  ¨¼ÚßžÇ ìñÝ⬱ z „–G Ÿ2ÏÁ?³ˆHÙÂQä­Zä­J¨¼S³ç \ä­*¨¼3‘ü<ä­ ¨¼˜«ô‡$¾œÌ×³ç ¨¼Ì‘ü¨¼›˜«¨¼ižÇ `…�I  Òñ�…æI   ÷Ë�`…½J  ›ò8…˜G ˜…ŸG ¡3Íž?§Ë��³äs]ÒñÈÚ�¯›ò�³ 1099511628211Á%#"„äœòË14695981039346656037ÁP‹¥D „K„KK‡Kí ä7ˆKõÙä7‰K«ä7ƒ¢3à6ú�÷Ÿ½‡bg †å�y�(‹›> ¢‹ > ¦-²Ÿ9°ãAå�Ï å�Ú]g¿�÷|ÔQ lÔQ  ‚ üÔQ$ TäQ ±ÚCDïQ ¤äQ  ýQ þQ ü€Q~ ý ïá¼²Q òàDŸQ ÉÔºã�ÂÝwNå‘à±Ú¹ã��ã�–4ì† å�¤ì†  Þ"å�1"'ìÜ Ôì† �‡  éC³ä½‡\,�‡ Œ‡ „ ü¿†M ,܆ °ã,Ò† žŠ ¥ ÷Ÿ°¦‘Ï'Kø“Õ¶” 4Â� å�¬Â� ø“+!³äÝ� … ü��M ³ä<°� °ã,¦� ”•m¦‘ŒAø“’4à– å�¼à– ø“+!³äý– † ü¬–Q ³ä<Ζ °ã,Ä– ”•m¦‘ŒAø“’4¾¥ å�¤¾¥ ø“+!ìÜ ü¾¥(  Ð… J×¥ t×¥ DÛ¥ Ú°  (TÛ¥ \Ó¥  Õw³ä®KœÓ¥ ü¾¥1 4ç¥  ÃX³ä°Dç¥ õ¥ ‡ üõ¤€ ¨¨|¤¥ °ã,Š¥ ‹ã‘¥ ºÆÈ�žŠ M”•V¦‘vÿ«©T÷ŒWˆø“›Ð… mÚ° Aî™{¦šò4´· å�œ´· ø“+¤³· â°Í· ‰ üþ¶O ñƒdœ· °ã,’· ”•p¦‘�Aø“•lò¿ 4÷¿  ‹ $ò¿ D÷¿ $ÿ¿  ‘ý ᡳäN€À 0‰À Š ü¼¿M  á¡4à¿ °ã,É¿ ³äп �ž®"Ž-$WÛ�؆ž°4¢Ç å�l¢Ç ø“+t¡Ç …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ᡽‡V[ Þ"ýŸmuµÇ ‹ üöÆ? òžDŽÇ °ã,„Ç ýŸ·”•঑ÿ'Lø“Ì ë4øÒ å�œøÒ ø“+#TÿÒ  › PdÿÒ ¤÷Ò ‘Ó Œ üÆÒK  ³»TâÒ °ã,ØÒ þ¢\þ¢­”•µ¦‘Ô/Wø“Ú©¢à4Øá å�”Øá ø“+!ðá � ü¬áD $Éá °ã,¿á ”•i¦‘ˆ?ø“Ž4Öþ å�„Öþ ø“+!ìþ Ž ü¬þ@ $Çþ °ã,½þ ”•i¦‘ˆ?ø“Ž4¿‘ å�\¿‘ ø“+! Б � ü—‘9 $°‘ °ã,¦‘ ”•i¦‘ˆ?ø“Ž4ºœ å�tºœ ø“+! Μ � ü�œ? $«œ °ã,¡œ ”•i¦‘ˆ?ø“ެ÷® tü®  … $÷® „ü® ,¼�¯ „•¯  † $�¯ ”•¯ ,ü÷®0  õ܉T"­¯ ‘ ü¾®o $è® °ã,Þ® ô‡Ó³äÛô‡©³ä±,O¶©ð©ÕõÜ¡4¼¼ å�œ¼¼ ø“+¤»¼  µÐÕ¼ ’ ü†¼O ôÏd¤¼ °ã,š¼ ”•p¦‘�Aø“•4ŒÌ å�œŒÌ ø“+! ãÎ¥Ì “ üÜËI ãÎ<úË °ã,ðË ”•m¦‘ŒAø“’4ÊÚ å�ÔÊÚ ø“+! ãÎêÚ ” ü“ÚW ãÎ<¸Ú °ã,®Ú ”•m¦‘ŒAø“’”ïð „ïð  Ù÷Ÿ 4±ñ å�l±ñ ø“ + ! ýŸœ±ñ ¿ñ  éC᡽‡V,¿ñ ”Çñ „Çñ  Ùá¡  ü±ñ(     - üïðj   - 4èñ å�¤èñ ø“+!ìÜ Ôèñ ýñ ¶”L,ýñ ¤…ò ”…ò  Ù³ä  üèñ1   -üïðª   .4¨ò å�Œ¨ò ø“+ !³»ü¨ò dºò  à O tºò üïðÙ  .4×ò å�œ×ò ø“+!üïðû  .ðò • ü ðÐ ,¾ð °ã,´ð þ¹Õã"‚œ¡À”•ɦ‘ér�ŒV�Œ"S©žŠ 甕𦑣�Œ‡�ŒSÑþ¢”•¦‘8�ŒË~”•‡¦‘§�Œg* ÷¯Üø“§è°y›±Mø“ž¶”p¯³Nø“žœµpø“ø�޵ú   ÷ýŸ¸Žþú  ›òÈŽÎû  ›òØŽ¸þ  ’Þ¨Žôÿ   ÷³» àŽá…   ÷Á´ ÈŽ©Š   ÷â° ˆŽ�‹  †ßxŽÞ‹  †ß  PŽ¹Ž  †ß  hŽŒ�  †ß  ÈŽÚ�  Ìß  ¨ŽÇ‘   ÷ãÎ   àŽâ’  ½˜Ž´–  àÞ8ŽÀ÷ §     ŽÇ÷ ŽÆ÷ %ˆ¸—÷Ÿ£ýŸµ³ä˜³ä€ìÜ h³»PÁ´2â°ôÚÀ¦µÐŽãÎvãÎX?(Ÿº=›ò›ò’Þ꨻ÐÏ»°ö»�†ßp†ßV†ß<†ß"Ìß½î½ÎàÞ´³»IìÜ PýŸW(£©ç   3¨£Þ� á�‹ã %ýù19x ¹‹h£Ú… `³ä¨£ª† `‹ã¸£Àˆ `ÈÞ€£Ú‹ `ÈÞrwÒ�ƒ‹h£‰ý À¡³äh£éþ À¡³ä>CÒ�OWУü÷ ùŸŸ BoxÁ£ó‹¤ô‹ljô²ßk#ígdi †èÄ {ƒP£Óó šŽ¨Ëh£Åô šŽ³ä>Cåý O W€£Éî û Ž¥ % †Ž¥7 ?ˆ£æí „Ž©¤ % †©¤7 ?ˆ£¨é ë�ó¥ %ªÿ1 9) ¹£­ç M ¹$l ¹ChnÒ� { „¯ ¹  ‰Ñ ¹¨±·Ò�ÄÍ ¹î‰�ýùœ¥‘—¶�¤­™Ÿ¶�¬µ¢ ¹‚Ë ¹¢£®ç Ô #*18á¡FΞOWõ„uó¥~ ©¤Î©¤× Ž¥'Ž¥0Ÿ…•ô‡€¨Ë§³ä’ èÄDèÄMô‡²ô‡�³äijä¯ô‡f«©SÏ…@Ï…-³äŠ‹ãwÈÞdÈÞQ«©‹ãT¿À x¿À É¿À ¿À ƒ °†r ¿À % ¿À ް†}¿À 8°†)Þ†__self_3Á¿À Ì ýùàÒ�ŽÒ�½Å°åý/ÝÆÚ¡Ç�ªÿ`Ò�-Ò�ýù±¶�œ¶�‡¤²ç Ö ¤°ç  "(.4@ΞHQ[#H¥´ç ,; KIΞ\Ii   "ˆ��!¥­º!ÂJΞÓJàïKΞKLΞ0 L> NMΞ` Mn ~NΞ� Nž ®OΞÀ OÎ ÞPΞð Pþ  QΞ Q. ¨¥Þ� RΞERá�‹ã/SΞ@FSá�‹ãY GEe HFs xê§G„H‰!‘h¥Ú… TΞ2T`³ä¨¥ª† UΞ3U`‹ã¸¥Àˆ VΞ4V`ÈÞ€¥Ú‹ WΞ5W`ÈÞ´XΞÅ6X`³ä¯YΞÀ7Y`‹ãªZΞ»8Z`ÈÞ¥[Ξ¶9[`ÈÞT ;2a <6p v�µ;ƒ<‰:’ h¥‰ý \Ξ)\À¡³äh¥éþ ]Ξ*]À¡³ä^^Ξo+^À¡³äY_Ξj,_À¡³ä².)¾/+ÌÑ�µ.Ý/â-êÐ¥ü÷ `Ξ%`ùèÄ.aΞ?&aùèÄW'%c(&qv ù±ŒÍŒÍ'�(’!š P¥Óó bΞbšŽ¨Ëh¥Åô cΞcšŽ³ä^dΞodšŽ¨ËYeΞješŽ³ä²!¾"ÌÑ­±!Ý"â ꀥÉî fΞfû Ž¥/gΞ@gû Ž¥Yesx ù±ÓÌÓÌ�”!œˆ¥æí hΞh„Ž©¤/iΞ@i„Ž©¤Yesx ù±¾Ì¾Ì�”!œˆ¥¨é jΞjë�ó¥/kΞ@kë�ó¥Yesxí³„‰!‘É ª#·$ÆÌ�µ#Ù$ß!èî÷!Í-®0*»1,ÊÐ�µ0Ý1ã!ìòû !Û : ¾ >3Ë ?7Ú àê§>í?ó=ü = ç A4ô B8  á¶AB@%- @  C5 D9, 2á¶C?DE!NT ]k !¥½ç ß Ù ï õ ü      & - 4 l@ ΞI ΞR Z b i ΞΞw  ‡ � — Ÿ § ¯ · ¿ õ„�õ„¦ë™¯ë™¸¾Ìb¾Ìk ¾ÌwÄé€ÓÌ*ÓÌ3 ÓÌ?ëéHŸ…@ô‡Ÿ…Rô‡,bä¼kä¼t˜«N˜«WŒÍ.ŒÍ7 ŒÍCáêLô‡Dô‡ô‡Vô‡0f˜«o˜«x˜«R˜«[ô‡+ «© Ï…ã Ï…¿ ô‡O «©+ Ï… Ï…ã q ˜«z ˜«ƒ ] ¿�f ¿�o I á½R á½[ á½7 á½@ «©f «©o ¿�x ¿�� ΞÈ ΞÑ ΞÚ Ξã Ξì Ξõ Ξþ ΞΞΞΞ"Ξ+Ξ4Ξ=ΞFΞOΞXΞaΞjΞsΞ|Ξ…ΞŽΞ—Ξ Ξ©Ξ²Ξ»ΞÄΞÍΞÖΞßΞèΞñΞúî ©ò!Àò.¿À ŠÂ¿À ËŠÂØ¿À †ŠÂ“¿À � °†m ŠÂ© ù‡ ¿À b %ŠÂo &¿À k )°†I *ŠÂ… +ùÂc ,¿À 7 2°† 3Þ†÷ 4¿Î× 5ŠÂk 6ùÂK 7ÎÃ+ 8__arg1_3Á 9¿À < EŠÂI F� ê§]�µÎ �µ=  ÝU ­±½ °àÕ Ñá; í³¡�µª �µ? ê§à ᶺ á¶” ,€š \ú™   4$Çœ  ,°›  Üœ ¨ üÏ™� $ë™ Ξ,á™ ¼”š :øÀùÁ" ŸŸ öãó‹¤ô‹ljô²ßk# 󥽇^c †±õu}(ÀüÀ ÚÀ�Á Ý/©¤;¾ÌC±õÍ ±õØ_i…öõ(ÁƒÁ  áä­øÁùÁ" ¥ ä­±õ-9¨¼fk¤¹ x}hm�ÁˆÁ ߪÏÁ¶¾Ì¾ÙÂÆä­Îä­¼¨¼Ä îöÏîö×úœÿø¨¼¤¹ 'ÂŒÁ áŠÁ  ¾Ì'1øÃùÁ" ±õ±õ,1 ù±±õ±õHMU×Á äHÃŽÁ ¾Ì¾Ìîö—îöŸ8î EOÜúÉ„ÒÅ ÛÅ ½‚DÒÅ ßÅ <ÛÅ ÌìÅ  ± 鋨¨Uÿ¾ÌüÒÅ4 DãÅ  ˜Xé‹³ä± ÁüÏü’eüãÅ# ŒÆ ° üƒÅ‰ ¨¨|¸Å ¾Ì,’Å Ó×D™Å ªÅ ÚŒøúüÎ1âì4÷…8s½‚9ìüá îÅ $ñÅ ¾Ì¤ñÅ döÅ  ´ / ƒÆ |öÅ …Æ ± „K¨¨ðÅ úü¢é‹íÅ œ¾Ì½$“Å ¾Ì˜Âãýþ¯‹  „áÌ ±õ ÀÀUniqueÁ¿ µÃ¡¥µ´]8"»Oÿðõ®®«°¿ ”3¯f*²Û�ðõ ðõŸ¼áÌ $òÌ  ìwó¥Ë4òÌ ¸õáÌ   ‘P�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫó¥–otøõØÌà ‘ ¥ ÆQ�‚·¿Ä Ð  ã ÜÌ  àõ„<ŠÍ  tŠÍ     ¤ÈÍ dÊÍ  Å  ÈÍ $×Í ”ÊÍ 6  4ûÍ  ³ädöÍ  Å™³ä�Ö $¤Î Å™³ä& 0´ ü–Ì÷ |ƒ¨¨|¾Ì ¾Ì,ªÌ $±Ì �‚3�‚k ðõ%�‚QřǙș­É™Ê™àË™óG*¤�R{9 õ„Ÿ �‚«1õ„Ò«Ç•³äY±õÆÄ�Î×ÿ†Û�ª2 1é�_—‚7²ƒ>Õ„øÄÆÛ èĽÅ+3(ÄšÚ åÄŸÚ è/Ž¥;ÓÌCèăŒÍ‹\f½Å¨(Å¡Ú  âä­øÅÆÛ ¥ ä­èÄ-9¨¼fk¤¹ x}hm�Å¦Ú êªÏÁ¶Ó̾ÙÂÆä­Îä­¼¨¼ÄáêÌŒÍÔ÷œá꨼¤¹ $ÆªÚ ìÆ¨Ú  ÓÌ'1øÇÆÛ èÄèÄ,1 ù±èÄèÄHMUÇµÚ ïHÇ¬Ú ÓÌÓ̌͗ŒÍŸ8î EOÈ�É„¨ß ±ß ½‚D¨ß µß <±ß ÌÂß  · ÁüÓÌü¨ß4 D¹ß  ˜Xé‹³ä· Áü±�ˆ[ü¹ß# âß ¶ üÙÞ‰ ¨¨|Žß ÓÌ,èÞ Ó×DïÞ €ß ÚŒîÜ�Ä1âì4÷…8s½‚/Î�á Äß $Çß Ó̤Çß dÌß  º / Ùß |Ìß Ûß · zK¨¨Æß Ü�˜é‹Ãß œÓ̳$éÞ Ó̘ÂÙß‘¯‹ ŒÃæ \Ãæ û‡$Ïæ #ü²æ# èÄ  ÀÀ×ÿ¿ µÃ¡¥µ´]8"»Oÿíï®®«°¿ ”3¯f*²Û�íï íï› §¸ Ì èÄÞ  Ú“›”Ì”÷ $âæ lêæ   º ô‡¬âæ õÜ? 5!($†ç  Å™³äüßæ] T¨ç  Å™³ä*Âç º üååÝ ü§æ› ¨¨|�æ ÓÌ,ùå $€æ ³ä$«æ 7ôô‡'ô‡!èÄOèÄWÌ”_Ì”gpÿ†t¥ vºr‡#³äû‡ÂõÜp˜¡‡#³ä°¿º ô‡Ý³äæîó‡#³äÒí ô‡Øí lßí  ¾ ���ô‡¤Øí ÁìQG!ìí ¾ üËí! C×í  ¾  ô‡UÿC  ›TÌí ³äòô‡Øô‡Ñô‡#Áñ…ñ‡#³äÁìÕ‡#³ä&5¾ ô‡S³ä\di‡#³ä$�î $ˆî ô‡d³î ,¸î  ¬$³î <¸î dÖî ,Ûî É�$Öî <Ûî ü�îx  ð‡ï ¿ üÿíˆ <ó¥Žî  ¿  ›ó¥Uÿ; ›l€î ³äëÁô‡*ÿ†;¥ 4�É�$É�ú(ÈËð ÈÐð ö(-3ó¥@õ„HQ[ÊÚð ùÊØð  õ„$-7h˹ñ  ühÿ4 ËÜð FXËùñ ס)@6ˆËÀò ³ä üh³äà¡4†AËàð û©´õ„¼ à¡Çé‹Íé‹Õô‡¢øƒסTסÞ¢Üh̹ñ '8XÌùñ '8ˆÌÀò ³ä ³ä+0õÜ < AINVcÌëð ÿHÌâð õ„õ„4<D ô‡Öô‡Þfî s}õÜ(Ñ¡ÿ  ã ä­ˆÑÊÿ  2ä­ìç+¨¼øÑ­‚* ää­ „!„!…! PhantomDataÁo$z�é - `  l ¨¼ÕÚ¬Öçì×Ü¥ªÑ¦ÿ †$ ÏÁ1 €€þ¤‚Ç,Ö ƒ¡¥Ö /�#U"ˆwÙ€䭉ä­x¨¼� ìç�ä­Z¨¼c  èr„«{Ûœéô䪨¼è‚«¨¼¶¬Ölò6  ‡#³äüÛ6% Ú ³ä<è6 'E‡#³ä StateID::ZEROÁ̸7  ´¸7 Á† Ï7 5ü¢70 Û ³ä<®7 '_Á �ÒŠB …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅÖ¨½‡W\ †Ù­nv€ÒèC Ù­¨®) 2øÒéD" ð0ð0Íò0ÂÙñ.ó0�ñ.žFår­ä…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ�ª½‡“˜ †Œ¯ª ³øÒÕE$ ð0ð0Íò0ÂÙñ.ó0�ñ.žFår­ä…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ­­ Utf8RangeÁ®‚¯’®Ï^±‰t‡î½‡ÌÑ †İ ã ìÈÒ•G …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅΩ½‡W\ †´² n wèÒœH …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ몽‡W\ †°³ n w(Ò¼@ ‡  ÒÁ@ ÒÀ@   $ 4 D Š�™ß§¥ ß§°Ù­  ٭٭¥×µ®Œ¯€ Œ¯ŒİÝ İé´² ´² °³š °³¦4? ¨®�¨®)–°ù‡²Hƒ³^ÿ³é´²>İEŒ¯LÙ­SÙ­ZàÓ�J …C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ‹©½‡W\ †È·nv(ÓèH �ÓíH “-Ö¨9 Ö¨DÈ·Ç È·Ò`j—¸ï€ÔŸL º± †º±/7€ÔÞL ³äÒ�)1(ÔçK ”ÔìK ˜0‹©< ‹©Gº±Á º±Ì³ä˜ô‡ s}Ò¹ùÒ�ÃxèïÎ ³äÒ�*2xèÃÏ ³äÒ�*2(è¢Î ™è§Î �2Ω> ΩI³ä¿ô‡Ç³ä˜ô‡ r|Ò�ôÒ�Ã(é©Î  åä­xéïÎ  æä­³ä,¨¼xéÃÏ  çä­ ³ä,  8 ¨¼¢§¬Ö´¹¤©qvÕé®Î Ÿð ÏÁüê¼Ù ä­ä­¨¼ô‡ä­ã¨¼똫óô‡û[œitô‡¨¼h˜«¨¼5¬Ö“ˆêþÐ ³äÒ�*2Xê•Ñ (êÙÐ  êÞÐ ¤2�ª> �ªI³ä«ô‡³ƒ†š‹q{Ò�ß–³®(ëàÐ  èä­ˆëþÐ  éä­³ä,¨¼Xë•Ñ  êä­ +  7 ¨¼¡¦¬Ö³¸£¨puÔëåÐ ¦ï ÏÁûúÁÙ ä­ä­¨¼ ô‡ä­â¨¼êäÈ ò†šúZœhsô‡¨¼gäÈ ¨¼4¬Ö’4Áˆì®Ô ³äÒ�*2°ì£Õ º±', †ÊÆ>F8ìöÕ (ì…Ó §ìŠÓ ­5ëªA ëªL³äùô‡ÊÆÓ ÊÆÞšé‹¢ˆ’Ò�AèÆÇŒÍ (íŒÓ  ë ä­ˆí®Ô  éä­³ä,¨¼°í£Õ  ìä­ ÊÆ, ¨¼8íöÕ  1ä­ *  6  ¨¼ÝâžÇ ïôß䬱 y ~í‘Ó ¯6ÏÁCêÇLÙÂUä­^ä­M¨¼Vô‡_ä­+¨¼4ŽÈ=ä­ ¨¼£�é‹$œÐÛô‡¨¼ÏŽÈ¨¼œ£�¨¼ižÇ 4Á3ÁØòç‚ ¹¬', †¥Í>FPòˆƒ (ò¶‚ °ò»‚ µ2Å«> Å«I¥Í¿ ¥Íʆ†šŽt~ÃÍö–³±(ó½‚  íä­Øóç‚  î ä­¥Í,¨¼Póˆƒ  1ä­ *  6 ¨¼ ¥¬Ö²·¢§otÓó‚ ·î ÏÁúÂÎÙ ä­ä­¨¼ ÕÎä­á¨¼éäÈ ñ†šùYœgrÕΨ¼fäÈ ¨¼3¬Ö‘ôÆ‚ ¹ôÄ‚  ÂÎ$-73ÁØõç‚ ¥Í¥Í+0 ù±¥Í¥ÍGLT[Põˆƒ '8@HUõÑ‚ ½HõÈ‚ ÂÎÂÎÕÎ Õβ¹Oî \fÛÓM(öèƒ öíƒ Ê(-¹¬: ¹¬ENX(øõƒ 'HøÏ„ ÎŒº±L T–ä­3 ?¨¼€…±Ç ’ —n¤Høº„ Ú©º±Ç Ïïä­3 ?  ¨¼û±Ç   q"Hø¦„ ©º±FOðä­5A¨¼|‚±Ç �–t¤øúƒ ÍÀÆÍÔÏÁâ½ÖëÙÂôüõºÝä­ ¨¼î õºùõº€ä­2¨¼’€Û›õºä­V¨¼1€Û:rœ€¿À g¿À ó¿À { ²€Û¨¼’±Ç Ç€Û¨¼(±Ç Ø€Û¨¼º±Ç éùþƒ Ïùüƒ  ½Ö'1 Hú€„ ,; K½Ö\ i |„‘ ›¢½Ö³À ϽÖàíü½Ö   HúÏ„ ½ÖÎŒº±/½Ö@ÎŒº±Yesx ù±õºõº�” œHúº„ ½ÖÚ©º±/½Ö@Ú©º±YesxÙà„‰ ‘Hú¦„ ½Ö ©º±/ ½Ö@  ©º±Y  e sxÙà „‰ ‘ú‰„ Ò")0!<½ÖE½ÖNV^e½Ö½Ös{ƒ‹“õº:õºC€ÛL€ÛUõºôõºý€Û€Ûõº¹õºÂ€ÛË€ÛÔ½Ö½Ö½Ö½Ö#½Ö,½Ö5½Ö>½ÖG½ÖP½ÖY cî q©ò€Àò�¿À 8 ŠÂE ¿À èŠÂõ¿À £ŠÂ°äÙàÄÙà*Ùà›(‹ž ‹£ Ø&+–®8 –®CLV�­ Û�«  öç&0@ŽÜ ¨¯¨¯*/ ù±¨¯¨¯FKSޏ ÞHޝ öçöç ¨¯–‚êž:î GQ§éÈP�º   î–® (- Å™�å�Ä à[–ægöçoöçw�åˆî •ŸÖê©@�Ü ¨¯¨¯*/ AFN�É â�Æ �åöçöç ‚ê�‚ê˜9î FP°ìÂ(‘ñ ‘ö ì&+1¨¯>‚êFOY“€ ï“þ  ‚ê#,6 H”‚ +: J‚ê[ h y�Ž˜Ÿ‚갽̂êÝꔥ" ‚êÚ«-‚ê>Ú«Vbpu ù±³ç ³ç Œ‘™”¤ ‚ê Àå-‚ê> ÀåV  b  pu ù±é‹é‹ Œ ‘™”‹ òJPW^eq‚êz‚ꃋ“š‚ê‚ꨰ¸Àé‹2é‹;£�D£�M³ç ô³ç ý ³ç  †õ‚ê‚ê‚ê&‚ê/‚ê8‚êA‚êJTî b©òqÀò~¿À ô ŠÂ ¿À ¬ŠÂ¹»þñÍœó6P•�  °ì"' Å™�å•— ôU–æa‚êi‚êq�åy‚î �™°ì£ –™ &49 îJOW\hw–›  ‘ ¡ ‚ê² ¿ ÒÙ ‚êê ÷  ‚ê & –¥"  ‚êÚ«- ‚ê>Ú«X] îns {–¤  ‚ê Àå- ‚ê>ÀåX] î ns {–œ öKQX_fm�å{‚ê„‚ê�•��å¦ ±¿ýºÂªôËÓÛãé‹6é‹?³ç ȳç Ñ‚ê‚ê‚ê"‚ê+‚ê4‚ê=‚êF Pî ^©òmÀòz¿À Ñ ŠÂÞ¿À kŠÂx–ºÃÒøÎ¬ûŸ¬ü&256Á(Ÿ¤F Ÿ©F ý&+â°8ñƒ@IS256ÁD–H  —H ¬ŠH ÷¥H ­ üâGC â°\ôG s-256Á ¤çI ”çI  ­ 8ÂŽJ   ÷# ŽJ  ’J ÿ ;8ÃŽJ   ‘PòýòýÁôý‚õý’öý exhaustedÁÝ ßÖ çP­sxøÃ…J; “¢§ ÆQ¢ƒ¹ÁÆÒå ‰J à<¤J  Œ¤J ¬J  ³  ( °J  ³J L¬J <ÉJ ÖJ ¯ ü¨I® üÕI� ÷ý â°\¿I â°\ÙI ¢ƒ¤¢ƒï¢ƒ¶�¥¿ ¢ƒËMïÍ â°éˆù^�˜#®¹‚…Ú‚kœƒ0º„7±…)Œ«[ \«[ û‡$·[  ̤[ $ .ü¤[! ì�Ì[ ³ üïZ] ™[ ô†LúZ $…[ ,�[ ˬ*ÿ†/è®4hû‡ ŒÉ\ \É\ û‡$Õ\  ÌÂ\ $ .Iì�á\ ´ ü–\K µ\ ñƒ,¡\ $¨\ ¿ !ÿ†&Qû‡ð4�^ ¨¯d—^ ( ù^ ¨¯Ú«tÿ^ \ÿ^  ® ‹_ ( ¿^ ¨¯Àå\Ñ^ Ö^ �‡$Ñ^  Ú^ 4Ö^ ÄÅ^ \Å^ û‡Ež_ µ üÞ]À ü²^+ üë^" ,‡^ ñƒ,ñ] –®$ø] |²^ ̳'4Ê7˜þ˜V�ËŒI�‡û‡Ûœ¼a dÁa °é$¼a tÁa ü¼a" \Ða ¤�> Üa tÐa ü¼a+ 4ßa êó SDßa ü²a6 L²a  ¢ ? îa ¶ ü¨`Æ –®$½` ñƒ,³` ‚ͶÇö!E°é¤�òêó »»�šÅe  ÿ\¾e $ .Iì�IJe \²e û‡uä²e  Íe $ 'Kü²e  Ñe % 'LØe · ü¼cœ ,Úc ñƒ,Ðc ì}¢Œ�Œ�ŒÁBeû‡\œ‡j dŒj °é$‡j tŒj ü‡j' Œ›j  ƨAœ›j ü‡j8 t¯j  ɧC„¯j ´Éj |Éj ÓÄ,Ùj  üÉj 4àj €Å=Dàj îj ¸ üÒiœ üûis ,ëi ñƒ,ái ,ÿi çÑÅ£+†³ 0c°éHî•'˜–ÓÄá€ÅÀœÕm dÚm °é$Õm tÚm ÔÕm ìm õm ¹ ü¨mM $Æm ñƒ,¼m {3°é˜ü�o% € £o ¬o º üÏn] €€ƒ­‚ˆù™ ƒŸ™ °ê:¸fî(¾Œån ñƒ,Ûn  h,ë� œë� \ñ�  ›$Ž3lñ� 3Ìå� ?˜ Ÿƒ    Ñ‚ $ExcludedÁé‹"$tׂ \ׂ û‡ ã‚ $ ž‚ %IncludedÁé‹"%t¤‚ \¤‚ û‡ °‚ $ìׂ \æ‚ Ýô  œ ò‚  tæ‚ üׂ& 4õ‚ êó  YDõ‚ ,ʃ  ŒÊƒ LЃ  œ$¨› 1  \Ѓ 1 ¼Äƒ  $§…  Å™ ë„ & ª›é‹&tö„ \ö„ û‡ ‚… $ ûƒ ' „œé‹'t˜„ \˜„ û‡ ¤„  $옄 \§„ Ýô B ³„ t§„ ü˜„& 4¶„ êó YD¶„ ü“„,  Å™ Ì„ ¤ñ„  Å™ „… A¡ì ]I¡ö ] » ¨›†š©¡ë ] A¡�!]†šI¡š!]†šI¡½!]Q¡Ê!]¹¡½!]ù¡ö!!] ±šñ¢÷$]ñÏ÷$]¨�ü††* ñ(ä­ 2ù¡Ú$<] Å™ÊÝ ù¡š$}]ù¡š$ ]÷Œ !¡»$]Q¡Á$]Y¡Í$]\CD‡‡ !D�‡ " $¿‡ # Å™üņ‰  ‡!"# Ó‡ Ô‡ ü¯€¥ ‹*» *üÖ�þ ü�‚% üÀ‚= üµƒŸ üêƒc üÚ„+ ù¡�!©]ù¡ë!¿](‡‡Æ­‰ˆù™ Š÷­™ ‹‡®™ Œ—®™ îÔ`HÅHîÝä�� ñƒ,î€ ¨›,ý€ DÚ� œþžþŸþ„œ þó¡þ¢þª›£þó¤þ¥þ UnboundedÁn¦»�€'�é‹  ¨›'œ�‚ F¨ͶûˆͶD¹ƒ ¬¨œ¡©¶œêƒ ïaͶ«ÞcAòŽ à†š†š†šæ†šÙ¦ÒÈÛ� !¡ï!]3º� ]ÊÝ�Ͷÿ�¥ùé‹&é‹/é‹é‹ˆ ͆AÐ÷­ÕŸ’Ÿø‡®C ŸŸw±� ÛÅ� Ò¦åCTî… ħ¢›íû‡;û‡èÝô Äêó ŠÛžWû‡¿û‡sÝô Oêó ¨�Í÷Œ |¨›ß¨›æ|„ħÈ×» ¬†šõÇÓħü¾’3 � î’ ÷’ ¾ ü÷‘€ ��¾®’ˆù™ “è®™ ”ÿ†™ &´ƒ+¼ì¬ž’ ñƒ,‡’ –®,Ž’ 讓(³ÆŸ  ò ä­À³ñŸ  óä­ñƒ,¨¼@³�   Uä­ *  6 ¨¼ ¥¬Ö²·¢§otӳ˟ †î ÏÁú •šÙÂä­ä­¨¼ ñƒä­ç¨¼ïäÈ ÷†šÿ_œmx粨¼läÈ ¨¼9¬Ö—(´á¥  ôä­À´—¦  óä­ñƒ,¨¼x´µ¦  õä­ + ¨¼¸´ʦ  öä­ Ͷ,  ¨¼°´ç¦  ÷ ä­�¥,8¨¼! Ë /5!'ðõ ¾ à ‹�h´æ¥ �„ÏÁ‘ ¬§�Ù¦䭯䭞¨¼§ç²°ä­|¨¼…†šŽä­[¨¼dˆƒmä­9¨¼B  �¥Qõ·Z4œBM粨¼A†š¨¼ˆƒ¨¼Ü󷨼© Ë€ (µœ³  øä­Àµ˳  óä­ñƒ,¨¼Xµé³  ùä­ –®, ¨¼Xµú³  lä­ *  6  ¨¼ÝâžÇ ïôß䬱 y ~µ¡³ —6ÏÁC ¤¯OÙÂXä­aä­P¨¼Yç²bä­.¨¼7öç@ä­ ¨¼äÈ †š'ÅœÓÞ粨¼Òö稼ŸäÈ ¨¼lžÇ (¶œ¹  úä­ø¶̹ ûä­¤¯-¨¼ضñ¹  üä­ Å™Ç™È™­É™Ê™àË™óG*¤�R{9 –®–®v  ‚ ¨¼íò¬Öÿðõ¼Á!¶¡¹ ž= ÏÁJ ˜˜“¯šê„™ ›†A™ ϺÖÒ‰ò}�Ù™䭢䭑¨¼š°»£ä­n¨¼w  û½†ÑÀ�ñœÿ °»¨¼þÏÀ¨¼Ê¬Ö)8·êË ‘µ®è*2(·¼Ë Ÿ·ÁË £/Á´; Á´F‘µ…Ëë�_i®èª(¸ÃË  ý ä­8¸êË ‘µ#¨¼PU±Ç bgRt¸ÈË ¥�ÏÁ›¦Â£Ù«䭳¨¼¡ Ëë¬Ëë´×œäî¤Ä¨¼á±Ç (½ŸÙ ½¤Ù ª(-‘µ:ËëBKU(¿¬Ù  þä­`¿ìÙ  ÿä­š¶,8¨¼ej¤¹ w|glŽ¿±Ù ­©ÏÁµËë½ÙÂÅä­Íä­»¨¼à  š¶ѹÇÙüœ ·Ç¨¼¤¹ )`ÀìÙ   ÷š¶8À³Ù ¦ÀºÙ ¯/‘µ;š¶gJœÈxÁ¾Ù ±Á¼Ù  Ëë'1`ÂìÙ š¶š¶+0 ù±š¶š¶GLTÂÉÙ ´HÂÀÙ ËëËë¹Ç–¹Çž8î EO›ÊÈ2Á(Ã–Û Ã›Û »(-š¶:¹ÇBKU2ÁHÅÊÛ   ÷,8Å£Û µÅªÛ ¿/š¶;ÜÌtJÖÌ…Æ®Û ÁÆ¬Û  ¹Ç'12ÁHÇÊÛ ÜÌÜÌ+0 ù±ÜÌÜÌGLTÇ¹Û ÅHÇ°Û ¹Ç¹Ç ÜÌ™ÓÏ¡;î HRöÎË2Áœòò d÷ò ­«$òò t÷ò ’ó L’ó ”’ó ü¾ó, ü¾ó ü°Tßó €ä­-üºó1  Àœ÷ñ¥÷  Œô   ±ô   t¥ô   %  / J š¶ÜÌ ¾ô  ø¾ô  Ìý4½ô ೺ô ; $ü—ô- l—ô  Ƥ£  Û tµô /ŒÔô |Ôô  Ù¼Îô   , ‰õ  týô % / Jš¶ÜÌ–õ  ú–õ  Ìý4•õ à³’õ ; $üïô- lïô „ÔÕt�õ  )Œ¬õ |¬õ ¸Ô ¼¦õ   ,1ÈÞ]9Èæ]‰ÈÝ] AÈþ]†šIȈ]†šIÈ­]!QȺ]"ÉȬ] !" ­ö *4­ö + ²ö !5 +*ùÈç!]# ±šñÉè]ñýè]¨�üÞõ+ ’)ä­&1ùÈË<]% Å™ÊÝ&ùÈ‹}]ùÈ‹ ]÷Œ #!Ȭ]QȲ]YȾ]%\$B þ) *þ1ÊÞ]()9Êæ], è ¤£ †š‰ÊÝ]' (,AÊþ]-'†šIʈ].'†šIÊ­]0-Qʺ]1.Éʬ]/01/œ÷ 64™÷  Àœ÷ñ6ÀùÊç!]2 ±šñËè]ñÿè]¨�üÐö4 �2ä­51ùÊË<]4 Å™ÊÝ5ùÊ‹}]ùÊ‹ ]÷Œ 2!ʬ]-Qʲ].Yʾ]4\3Bƒè ü¶ñï üåòÀ üÿó¦ ùÈý¬]ùÈÜ¿]ùÊý¬]ùÊÜ¿]7ݘìœò Ëë,ôñ Í™ƒò 4éò �§Ó×À÷ñ…4ƒô @*Í™‹É•³ÊC�Œ(ÞíÍ™eÉ•�¤#�Œ òŽ ¸†šã†šÛ†š¾†š±~ª Û� !Èà]·º� áÊÝ òŽ <†švš±©†š…†šY†šLE;Û� !Êà]nº� ˜ÊÝ×2 Ó�œ×üß܎ྱ� ÏÅ� Ʀ#±� -Å� .¦¦2¸ ­« ±ãå ü°¸ ೓„Ôo¸Ô@à³8„Ô¸Ôë¨�|÷Œ ,¨�À÷Œ p Áö  îýè L†šS*(Ì�û  ‚ 䭀̿û  Zä­Ëë+¨¼@ÌÕû  ƒä­ +  7 ¨¼ ¥¬Ö²·¢§puÓÌ”û Ìî ÏÁú ÆÆì±È %™ ɘ™ í½i'ÊÁ>ÙÂGä­Pä­?¨¼H¤ÄQä­¨¼'äÈ 0†š9™œ§²¤Ä¨¼¦äÈ ¨¼t¬ÖÑ(Í­þ  „ä­€Íâþ  Zä­Ëë+¨¼@Íøþ  ƒä­ +  7 ¨¼ ¥¬Ö²·¢§puÓͲþ Óî ÏÁú Íͬ²Ï %™ И™ J:¹f§Øî>ÙÂGä­Pä­?¨¼H¤ÄQä­¨¼'äÈ 0†š9™œ§²¤Ä¨¼¦äÈ ¨¼t¬ÖѨο-³» †³»/7°ÎÈ.�ÇÖÇ)2øÎŒ>…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅřǙș­É™Ê™àË™óG*¤�R{9  Ý½‡�¢ †Ìî´½(ΰ+ Ôε+δ+AÙP͸\ ͸g³»¤þ¢­�Çzò΃ÌîU Ìîa©³èíòÖǽàï�³»¥Dùm�Ç”ùm<‚n êW‹ã1L‚n‘nŒ üÐmA$êmÛð,àmòÎt4üñ{DÆy�ÇÔy� ü‘yC�ÇŒªyÛð, y . tÊ�<Ï� � $Ê�LÏ�x…Ê�  �%�ÇJ$)5?˜|Ê�m‹ãŒÛ�Là� � $Û� ê�dà�±†Ø� �%Ýá Îõ?˜Îõ# á�‡Û�  �%„³˜$) 5  ”Û� m°ûü¿�/T¿� “°û @ -•ˆì�Èõ?˜Îõ »üº�5 Å™÷þõ�  Ž ü‡�n6=D°†Œ’ì Ýá l¢�Ûð,˜�÷þôÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ‹ã–�ÇÍñ‹ã_ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ°û"„³§™°ûöüÆ …?˜ÎõŽþÆ Ù?˜ÎõŽA •êó±—ôŠ„õ%Èõ˜ÿõ·ãö]ÈõÅ1tØ–<Ý–êó$Ø–LÝ–x‰Ø– —ôB#/?˜|Ø–m‹ãŒê˜Tï˜ ” $ê˜ dï˜”Šæ– �%„³Îõ?˜Îõ#0Äüê˜\ü˜ Ú   lü˜üê˜$   �™' ¤ž™\¤™¿ñ ,ž™ °™ t¤™¨‹ž™  �%Ͷ_  $) 5 ¬ž™ m¤µ™\»™¿ñ ,µ™ Ç™ t»™£Œ²™’ý?˜Îõ0ɨ�µ™ îþ†#/¬µ™müµ™$\Ë™Ýô 2 ×™tË™› �É™’ý?˜Îõ0Áø�µ™% îþ…$0üµ™%mü�™> üç˜ÀŽÙ™’ý?˜Îõ0¥Œù™Tþ™åü$ù™dþ™üù™#,‹š × F‘š,–šŒ‹šø‘ù™$  �%řǙș­É™Ê™àË™óG*¤�R{9 †Ùžjo{üù™$m†Ù X¿’œš’ý?˜Îõ0åTϘ DÛ˜ T½š#ÌîÔ½š Þ"Ìî#1"")Èš Õw‡ï"]TÌš!|Èšü½š#4Øš ÃX‡ï!€ DØšø•½š$  �%řǙș­É™Ê™àË™óG*¤�R{9 ‡ï ”jo${$ !ü½š$%m‡ïø“½š%  �%‡ï%9"%Ô–àš’ý?˜Îõ0úW&c&#$ü½š%'m ÝTöš-ÌîÄöš¿†-+,%Ȕᚒý?˜Îõ0îP�›è†,{D…›+&l�›üöš!4�›£‡+–*'D�›ø™öš" Ô‡*A)($.)0.)*üöš"/)m‡ïø—öš# üˆ/3(+ƒ"š—›’ý?˜Îõ0©Q0(]0,-üöš#1(m Ý\¶› ¼› ×',¶›3.,¼›¸&˜˜›’ý?˜Îõ0ÞLÈ› Ì›°�1È›4/,Ì›ü¨›+ 2 û$34ü£›1 Å™°û2Ú›0 � )üŽ–ÌüΖŒ   k üʘ�°·¾'   y t{‚Ì<CJ‰ü±š©•œ£÷#ƒüìšn3:!A�#½Ä%Ë!'5„³d·–Ûð,Ÿ–,¦–Éøä �Ç \ ‹ã³ õ†ÙŸ) [ þ¢É ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ Ͷd � ë £’¢Ͷ £’| Ͷõ íU QœÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ†Ù#¡„hþ¢�y†ÙºÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ Ý?ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ‡ïAÚ‡|řǙș­É™Ê™àË™óG*¤�R{9  ‡ï-  ‡ï:“ñZà‡ï6U Ý·Ö”а•ðÚ‡#“–ªä–³“ñÓ”‡ïä Ýk°ûÓ` T÷X÷ŒÒ–Æ µ ?˜ÎõŽ slot_startÁr slot_endÁs Æ € ?˜ÎõŽö Æ Ø ?˜ÎõŽL Æ L ?˜ÎõŽ£ Æ  ?˜ÎõŽd ‚,µš'Æ x?˜ÎõŽÙ%Æ ü?˜ÎõŽi'’ðš 1Æ "!?˜ÎõŽ}#/Æ °%?˜ÎõŽ'1%"êóè—ôÃåüd’ýÑËý ¿ñ ²îþv¿ñ ’ý„îþ» Ýô h ’ýÉ îþ ’ý åüj àƒE ›„ ’ý ¿†÷ è†þ £‡¥ Ô‡z üˆÙ ’ýˆ ¿†B ’ýî è†P £‡ÙÔ‡¶üˆ`’ýİ�ä’ýu°�—\�©$’© ‘ $�©4’©¬�©<™© „RÚÚ¡³Ü‚�÷ ݃ ÷ בÃ˰8…L™©<È©tÈ©$Щ ÆQß?ß?FlattenÁá?” †?#TzÛúé=ä�d4ЩLÞ©  …ä­üÈ© 4ש ÷W°ûš =Œ×©üÇ©"  ‘ý°ûD¿©[.4‡ª  ˆªŠü’ªp  ¢ Šä­Uÿ Ýžä­ ü‡ª|Žª Ô+Š¢ Šó €¡ä­ ¨ Œ üŽªuä�«  ¯«� ü‚¨­üû¨´ü¬©ƒüó©¼ä­ä­Š¼Ù¨Ûð,®¨ä­D½¨Ýž\ÿ¨ä�Ùä­Š°ûÈ„³M‚¡hä­ýâl÷©Š”µ¡|‚¡…ƒâì†matchedÁ� whole_matchÁ\°© group_matchesÁ &°�¡Þ�zמÔŸ“† e¦¡Ï<­ª‚¡t­ª$µªמ.4µªÌê †ä­ü­ª04¼ªÔŸY7ü¼ª!Dìªä­$ôª† +õª$‚«¢ þü¤ª^ä­•ª µ¡# “ª°û¨ª„³ä­è‚¡Rä­[ô¢<ƒ©‚¡âìfä­ÝŽ[™מiÔŸ/† ñ _ref__matchedÁ_ref__haystackÁ\ç¹$ì¹°�$ç¹4칬ç¹<ó¹Þ�CLó¹<¢ºt¢º$ªºמ)4ªºL¸º  …ä­ü¢º 4±ºÔŸY 7Œ±ºü¡º"  ‘ý³÷°ûD™ºW04Ạ ⺊üìºp  ¨ Šö Ó×Uÿ‚¡Ó× üáº|èº Ô+Ѝ ŠþªŠ«Ó× ¤ ˆ üèºuäç»  ‰¼£ üÓ¸¶üÕ¹´ü†ºƒüͺ¼Ó×Ó׊̱¹Ûð,…¹Ó×D”¹Ýž\Ù¹ä�TÓ׈°ûÀ„³ ‚¡%ä­õʬlѺ¶£‹¼«s‚¡|~âì�ô¢„†£\ŠºŸ£^ °�ûÞ�Öמ¤ÔŸj�ªB­«®<‡»‚¡t‡»$�»מ.4�»Ì�» †ä­ü‡»04–»ÔŸY7ü–»!DÆ»Ó×$λ�ª+Ï»$Ü»¨ Ùüþº^Ó×ïº ¼«þ íº°û‚»„³ä­è‚¡-Ó×6ô¢<ݹ‚¡âìEÓ×ÝŽ[tמiÔŸ/�ªñ‡§—§ $ØÐ Å™‹ã|ÍÐ�ÇTòÐÌî¬òÐ ê"Ìî2")DýÐ íw‡ï[TýШ£òÐ  ‘PµpµpÑç¸pí óo¹píçóoºp¡¥óo¥hECØ8G‡ï¼otø£æÐG� Ÿ¤ ÆQ§³ ¶¾Ã Ï â$êÐ à ‡ï$žÑ Å™ Ýd–Ñ  ¯³Ñª ü«ÐˆÕÛ ÂÐ ͸L¸Ð�ǧ³‹§³é æ–õ Ìî§³µÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 �µ §³•�µ7‡ï#¼�@¼�d  ʲ¶ó²½¡³o»´vtŸâ�Ç´â« üßáU”â‚¶Lòá�Çýá÷ŒI\ãòÌ(0ôò¬ ü«òIä–´ÂòÛð,¸ò“ño9¿†Œ|‘öÌîʲ)1¦ö­ üÍõY«¶Ôìõ‚¶LÞõ·¶p9ʲ��×€…Ûðø×˜…7ƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—��Å·�Ç,÷ ZŸ×]áû”†‹ †ü»�¥(×È„ Ú×Í„à4ä�@ ä�KÛð! Ûð-ü» ü»~ˆ †Ûðfø¼I(ØÏ„ ‡ä­�Ø€… ˆä­Ûð,¨¼øØ˜…7‰ä­ ü»-  9 ¨¼£¨¬Öµº¥ªrwÖØÔ„ãñ ÏÁýÖ½ÙÂä­ä­¨¼ê½ä­ä¨¼ì ÿ½÷ÿ½ÿ_œmx꽨¼l„Á¨¼9¬Ö—˜Ù’Æ„K„KK‡Kí ä7ˆKõÙä7‰K«ä7ƒ¢3à6ú�ƒ¼½‡ch †óÁz‚(ÙåÅ äÙêÅè/³»;þ¢CóÁÒ óÁÝ_iÍÂú(ÚìÅ Š ä­˜Ú’ÆóÁ#¨¼PU±Ç bgRtÚñÅê�ÏÁ›þ¢£Ù«䭳¨¼¡ ¶Ã¬¶Ã´×œäî¤Å¨¼á±Ç ˜Û’Æ  ÷óÁ8ÛóÅ äÛúÅì/³»;óÁgJƒÆxUt›íK J)I1<HDOGWbKj¹Ü¾ ©Ü¾  ŒCÈÞÈÞP+¹Ý¾ ©Ý¾  ŒCää’é¯ÏÏd�žä`fðÊÈÞÖн‡Aa¹Þ¾ ©Þ¾  ŒCðÉ@&ü¬ížJ  í ¾îtóîK  ÔóîL‚ï ‘P£Û AN\‚ïüóî&LŽï òQ�P£ÛVN\Žïø¯óî&  ‘PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—åÊ•Nej ø¯Ôî„ ‡  –› ÆQ�Ë ­ ?¶»  Ç  ?˜lÙî àƒ4èîI  àÿ̃ÍìÃðtÃðµälÒð L#¯×ù +NüÃðY<òð Ç_‹ãêæì¼ ð küúð!¤Î  Lüòð*ø°ÃðZ  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‹ã켿Ly~Š üÃðZm‹ã4ÂñI ”ÂñLÉñ ‘PƒÍAL\Éñ±œñ[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwëÝ켃v �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³»ì¼ùÐßQLûôÂñLÕñ òQ�PƒÍCL\Õñ ßñH \ôñ ”ôñ $€ò ÆQƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—éÒnJ4€òm Äîñ  � àřǙș­É™Ê™àË™óG*¤�R{9 ŠÔÔ{   ‰ô Jü™ó* ü™ó% ó ¿ó>'ü¬ò# ô¬ò ò Ëò>&ü¨ò( Àœ³»ì¼ü¡ò/ 6ü•ó/ Àœ³»ì¼üŽó6 6T—ô !ü—ô |¢ô ä !,²ô J¤¢ô\úõ H  #X²úõ   ‘PÈÓ#@"J%* $"ø²Ùõõ G &$V [ÂÓ&g%=pu '%� '  \Þõ (%àÐÔTëõ G  )%àÐÔÔÔäó÷ |ó÷ ß(\ƒø,!H%²Íù $*Jü˜ø] . /( - Î £ÛƒÍ™Õ¿áì¼Uÿ«©†š./üó÷ƒ <�ø Ç_ÈÞ¿áì¼Î £ÛƒÍ™ÕÇÚÕÚ,Û-¡+"Hü�øfø³ó÷„   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÈÞì¼+Î*#Hz 0*‹ 0$% üó÷„ 2*mÈÞT‰ù 5T³ù G  6)ü‰ù5 ””ù å ™Õ5R§ù2,¬ù6W4&Hü”ù*´öø 1*[ùÐM#ÞÑ1/RHhøµ‰ù6   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwì¼4ô3'Hx} 73‰ 7() Ò GÛÁ ¶¾ù 83[ùÐ×"ÞÑ8.SHñ ×ùH T I] X Táù;ôáùŒìù è ;+:,Nœìùø·áù ÄÞ:C9-N %<91<./ ´Šú?…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàʼnȽ‡üŠú&l¡ú ¤C‰È½‡?x>0N|¡ú¸ÿù=9[ùÐè"ÞÑ=.TNĺúA…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàŻȽ‡üºú(lÓú ¤C»È½‡Ax@1N|ÓúÄìúCµÉüìú(l…û ¤Cðɽ‡C9B2N|…ûT´ûJ F¤«ûD«û é8ƒ¼FBE3N'ü¡ûD äEüžû# Àœ³»ì¼D ÆûJ <( G5C8 GAO $EJ£ EJAHJ?˜8¢ I9F² I» É  :NÄ;PÒJÚç<Çû $JW J5  N ÉîAPüÎëùg )5=J7L[H7D« 9?¬ )=½ G=G¡L²HLI?I?KP JPM2BCKBO8ž494Ú:Ê 4ü—í°›¢ü¹ðŸ P W ^ Ý ü¬ñ¬¶  ½  üç÷ç ÿ    ¨! (/ ü‰ù6ÅÌÓüáùLäÑüøë!£Ûtâ냼ôñᆷã]µÉþ�Ë�ËJåʃ£Û°�Ë,řǙș­É™Ê™àË™óG*¤�R{9 ÿÌz �ˆ³ƒÍ˜‹ã½ðÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ùЋã;æÎ“êíÛBùÐK‹ãÌÈÓ|°ñéÒ–ƒÍÃřǙș­É™Ê™àË™óG*¤�R{9 ÐÔp ÈÓŽ<ëò$™òì¼Q 켈 Ç  ƒ¼å ÈÓ… ÈÓ² ÈÓ— Ùï  §ð© y ' ÔÔ ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ùÐÈÞD ÛÛª ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÈÞ¿á� ‹Ûg «©p †šy œ ùÐ¥ ÈÞB ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ùÐÇ ÊÞU áð’ ÔÔ‹ 0 ùÐ9 §ó’ ÊÞÇ áðâ áùÐê%  ñᇠs ·ãÕ= µÉ`³»ÏóÁƒ¼1µ Ž ÓÄËpattern_groupsÁ†Ùx}�y pattern_indexÁ¯groupsÁ�÷Œ Æ áŽe groups_iterÁ§ �‡ $ÓŽ ( maybe_nameÁú )groupÁ,ë÷ 2Æ Á 1Ža 2Æ ß 8޵?˜Æ ƒ =޵?˜³5ƒÈ%µÈú�É™®Ê ßÊá—˯§Ì¶µä‚�Ë_’ÎQàÎ ÅÐ+ÞÑãÒÂÓÃÙïÃÞÕ·‹Ö�¦×üû׬ÂÓ³àÙÖÈÓ±ùÚMÕÛ÷ÀÝÞÑÄÞœ ÞÑ£ ‚ál ÄÞG Çâ¶ ÞÑU �äþ ×ä» ®åk ÈÓÙï]�Ë1ƒ¼" ÈÓ/Ùïy�ËM·ã ñá ÔÔRÈÓ+ ƒÍpÔÔgÈÓ@ ƒÍ…ƒ¼v £Û} Òø«©\×ø†šü²ø1ü²ø ñ _C(õøÎ ì¼›ø‹Û¿á ™ø‹ã±—«©<†šE÷Œ1«©ÓŽõ†šsáû¾ _ref__pidÁ_ref__group_indexÁ0Á 4–‘ óÁ¤–‘ Þ"óÁ 1"'·ãü–‘(  Þ"·ãV#¯‘ t¯‘D³‘Ú°  ( T³‘b«‘ Õw»Èº Kœ«‘ø¹–‘)  �%řǙș­É™Ê™àË™óG*¤�R{9  »Èûmr ~ ‘ü–‘) m�€ŒÉ‘Ñ‘ �ðÊÈÞÖн‡ <É‘$Õ‘ LÑ‘üº¾‘ �%ͶÎõ?˜Îõ# ,ÔÉ‘4Û‘ ÄXÈÞŸ DÛ‘üÉ‘0ä‘ þWÈÞÒ ÈÞUÿk?˜·‚„è‘ ¬ä‘ÿ‘Ñ üº�Åüˆ‘wæìòaͶlð�þ¢,Ê�‹ãÑ�ä­$á�ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ�€„Êÿ#  »È0 ·ãw ƒ¼ƒ¶Ã£ «©:Ó�€EřǙș­É™Ê™àË™óG*¤�R{9 ÈÞ÷řǙș­É™Ê™àË™óG*¤�R{9 Ï…Åq÷Œu‚ xindicesÁ<Œ‘ Æ Â?˜ÎõŽ?   ðý¼¬þˆÚ° V�ÿ–Äÿø€Z¿�ø�誂¾ ì‘dì‘Dî‘ â*Tî‘ø‘Ò Ñë‘·‚èÈÞ é‘Ï…yŸ„ˆ‡4ü  óÁ¤ü ðý +!µÉüü (  Þ"µÉP#•¡ t•¡D™¡Ú°  ( T™¡b‘¡ ÕwðÉ´ Kœ‘¡ø»ü )  �%řǙș­É™Ê™àË™óG*¤�R{9  ðÉûmr ~ ?˜üü ) mËô¯¡ Þ"ðÉ l¯¡ %⼤¡ �%ˆêÎõ?˜Îõ#d½¡ Õw«Êg\Á¡ „½¡ø½¯¡  �%řǙș­É™Ê™àË™óG*¤�R{9  «Ê ns ü¯¡m”Žü¯¡*DÏ¡ ’XðÊ:Tϡٌܾ͡?˜Îõß¡Ó ü” Ëüè wš¡¨ükqwΈêdÑ þ¢,£ ‹ãª \º ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ÎõË8þŠ×  ðÉä®Ï"ß„+¶ÃKΫ©è›ËñÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ”Ž”Ï�8  «ÊEÑ”Ž+O÷ŒSÓŽXƒ�lì  Æ j?˜ÎõŽË Æ ??˜Îõޤ! ðýdà‰6Ú° ÁŠDøŠµ«ŒÙŒÃ��É�€öŽÛÙŒŽ¼­­ óÁü­­6 ðý ,"µÉü­­[ à‰Kù­ tù­Dý­Ú°  ( Tý­\õ­ÁЦ Bœõ­ü­­Šš® þWË�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ«ÊÕ ËÖUÿ?˜’—Äž®ìš®Ó® Ô  «Ê+ Û’LÓ®$Ö® ìw«Ê [ 4Ö®ü­­°LÉ® ùWÖ5 T¤É®ü…­ã �î®Ô ü²¬¼»¼Ìá¬þ¢,Ǭ‹ãά֖řǙș­É™Ê™àË™óG*¤�R{9 ÖùþЉ®‘’®ÏÑ߄ڶÃú‚«©œÖYÛ’ å—©Æ÷ŒÉúðý;à‰ Ú° àÁй–šž˜ºϘ’  «Ê(Ô hå—Fç—OWt¨®«Œ<¨®&$°®ž˜&4°®¶®Õ ×Ö§®’—ïË<Ÿ®Û’Šà…«Œªž˜°”Ù½\Þ½Ëý$Ù½lÞ½üɽ#|ɽ ·"F"$‡¾ Å™‹ã$ ¾ Å™ü»ü…½ª –µ¾Ö üʼë––œ¸˜Ùx÷ ™Ÿ÷ šѸ÷ ›ƒ ÷ Ë?jUªÍ÷¬å¼þ¢,Û¼ìç ?�ÇõřǙș­É™Ê™àË™óG*¤�R{9 ü»)sìËý³°žŽÜîÉ$óÉ Ù $îÉøÉ\ýÉ´óÉüîÉ;ŠÊ þW†ÙØ ”â†ÙUÿw?˜—¢ÔŽÊüŠÊ¯Ê× ü·Çø¡„´‘Èþ¢,ÍÇ‹ãÜÇ\ôÇͶè)÷Œ,ÓŽ0kË¡!Š¢êLžÊ ¦Ê& (M”–Ê ¨ÊØ 3†Ù•Ê—¢K,�Ê®�Œ¶‚yœ¼ÑLÁÑ Û $¼ÑËÑtÁÑü­Ñ"$åÑ Å™Ãׄ¬Ô »Ô&ÐÔ tÐÔDÔÔÚ°  (TÔÔ4ÞÖóÁ”ÞÖðý+”ÐÔ  áÔ&  (M ÄËÔ Å™ü©Ô”¨ ñá,ðÖ ‘ýñá‹ã ÛñÖ  /,ÒÖ ÈÞ,ˆ× „ˆ×DŽ×„ˆ( TŽ×Œœ× «×& ( M¼›× °×& ( Müˆ×*  -üƒ×0 Å™·ìÙ üØÐëüÍÖpͶl’Ñþ¢,äЋãëÐ\ûÐ~ºD§«©(�ŒÁÈÞû ‰È; ñáß„ ¶Ã,&Ï…)œ�Œ �Œ¶�ŒbÐ÷ŒÓӎׂœ (Ú¥¡Ú° åðý®”©ù„ˆ¦4ºÞóÁ¤ºÞðý+#\ÁÞ ë PlÁÞÔÞÚ ü�ÞG,ªÞþ¢, Þß„‚¶Ã¡@ðý§Ú¯­4‹ëóÁ¬‹ëðý+#L’ë ì Pœët’ë¦ëÛ üÐêV,ûêþ¢,áê‹ãèêß„•¶Ã´'÷Œ*YðýÈ©±Î|ÀùDÅù Ý $ÀùTÅùœÀù Òù!5 F FÙùÜ ü‘ùH,°ùþ¢,¦ùÈ¢=ä²ë4†�óÁ¼†�ðý+#t�� í P„��Iü†�"Dž�„ˆoTž�®�Ý üÜ€R,ö€þ¢,ì€Ï…¸ÈÞÀ߄ȶÃç,Pðý푵󄈢”ýŠ\‚‹Ëý$ýŠl‚‹´ýŠ ’‹& (M™‹Þ üÊŠO,íŠþ¢,㊿�Œ�?Ëýä|�–D†–ä²$�–T†–Ä –Œ¥– Þ $ –œ¥–ü�–8t‘– –¨uNü‘–(¿–ß üΕq,ñ•þ¢,ç•Þ>ä²甹Áù™¬ÿ˜œÿ˜ Ùƒ¼ 4£™ óÁ”£™ðý + ! ñáÄ£™¶™ éC‰È½‡V,¶™ü¾™ì¾™ Ù‰È !ü£™:     - üÿ˜^   - 4ì™óÁ¤ì™ðý+!·ãÔì™�š éC»È½‡V,�š¬‰šœ‰š Ù»È  üì™2  -üÿ˜Ÿ  .4­šóÁ¤­šðý+ !µÉÔ­šš éCðɽ‡V ,šäÊšÔÊš ÙðÉ ü­š9 -üÿ˜ç .4õš óÁœõšðý +!üÿ˜‰! !.!Ž›à ü«˜ã",ɘþ¢,¿˜þ$JY—øÇ­6ß„?¶Ã_è�ŒË�Œ—¾Ó„\ß„e¶Ã…�Œò�Œ¾äD®Ï‚ß„‹¶Ã«4�Œ�Œä—ß„ ¶ÃÀ�Œ€C èºkðý6Ù»�¼Üðý,ø½þ«¾Òðý"—ÀôÊÀÈðý(ß‚¤ ‹ä­øß¯¤*Œ ä­ñá-¨¼øßߤ"� ä­ ·ã- ¨¼øß‡¥) Ž ä­ µÉ-  ¨¼˜ß¶¥  � ä­+7¨¼$ Ë 28$*ò÷ ¾ à Š�k߇¤ó‡ÏÁ”ß„�Ù¦䭯䭞¨¼§Ç­°ä­{¨¼„Ó„�ä­X¨¼a®Ïjä­5¨¼>äÈ G†šP.œ<GÇ­¨¼;Ó„¨¼®Ï¨¼ÓäÈ ¨¼Ÿ Ëz øà¯¤*  ÷ñá øàߤ"  ÷·ã!øà‡¥) ¹Þ˜à¶¥ àÞ8à‰¤ íà�¤à�¤%gõvƒ¼‚ñá·ãüµÉÜÁ©­ËCÔË#¹ÞàÞçµÉœ·ã¢ñá¨=±¸] \)\1„¼¸ñá,̸ ª#ñá‹ã6͸;/ä·¸ÈÞô¸ tô¸Dø¸„ˆ ) ;Tø¸”ô¸  …¹&  (;N üä¸#|ä¸àÙ x ;!ü�¹R ç ŠÇÚ«©Ï…üä¸<ˆ¹ Ç_ÈÞ¿áì¼ç ™ÑÇÚ¦Ñ ©ˆ ;üˆ¹[ø¿ä¸€ ÕÛ l;!&2 Eü一mÈÞüݸ‡T‚ºTõ¹ !Àã¹[ùй" �%ÊÞùÐ8<;Ý$ú¹\ à™Ñ$·ºl·º4¼º ¥™Ñ0 3D¼ºü¦º„¦º ®ðÊä­U 3, ĺ] ”Öº·ã,èº ‘ý·ã‹ã6éº 80$ýº,üº Þ"ðÊ+8#üÖº,dîº «ðÊÈÞÖн‡¼Öº4ûº8¤îºJ,¿»!�Ö!" 8+ü »%Ì » ô º» T8+üœ»* Àœì¼ ýÀ03$ì»$Tì»�Ö$%#8$ñ» ¦€#L"8,ñ»”„¼'·ã,–¼ ª#·ã‹ã'6—¼&8/,®¼)Œ£¼T£¼ †ðÊ)/(8'ü„¼84œ¼ ¯ðÊÈÞÖн‡&¼„¼(`,¶¼%8üœ¼ ”ʼ,µÉ,ܼ ª#µÉ‹ã,6ݼ+8/$ì¼] .Tç¼- Å™ðÊ.üʼ($â¼ ‘M«Ê½‡+¼Ê¼-H*8„â¼üò½(üò½& Ù«Ê18#üë½02"1 2"18.02üç½43 ç½0' 3(08O/3ü½Y4/ 4/884üÑÀ"üÑÀ  ÙÈÞ58#ü¼À765 65 886—] ®&;”’Á9µÉ,¤ÁóÚ9,¥Á8";%$¯Á: Å™ðÊü’Á"$ªÁëÛ8¼’Á:;7#;TªÁü×Á(ü×Á&©Ü;$;üÂÁ=<; <;%;8<ü&,¼Ã@„¼ÃDÂà æ@*?';TÂÃ1åà ]>?$ÎÃCœÎÃLÓé±C)ÝÃB(;tÓÃ9åè ]AB‰åß ]= >AAå€ ]D=†šIåŠ ]E=†šIå¯ ] GDQå¼ ] HEÉå® ] FGH F*),´ÄO„´ÄDºÄõáO(N+;TºÄùåé !] I ±šáåÍ] K Å™ÊÝùå�]] ùå� ]÷Œ I!å®]DQå´]EYåÀ]KXJ;C1æà ]MN”ÆÄSµÉ,ØÄ ‘ýµÉ‹ãS6ÙÄR,;0ìÆÄÞÄ éC«Ê½‡R¼ÆÄQ-;,ÞÄ9æè ]PQ‰æß ]L MPAæ€ ]TL†šIæŠ ]UL†šIæ¯ ] WTQæ¼ ] XUÉæ® ] VWX V/.4îÄ Àœì¼?˜ ùÄ2ùæé !] Y ±šáæÍ] [ Å™ÊÝùæ�]] ùæ� ]÷Œ Y!æ®]TQæ´]UYæÀ][XZ;C‰]’ 1;®^º^52úÄÚ;üþ³üø\26 à™Ñ2% 36 ]37G\4:Yà™Ñ4s_€_94� 1å ¹ü­¸Í   # z ü�ºñü›ºãü⻜ùåÿ Œ]ùåÞ Ÿ] ùæÿ Œ]ùæÞ Ÿ] `ÊÞÔ’µáðL¬´‹ã¿´ÈÞ,״řǙș­É™Ê™àË™óG*¤�R{9 ™ÑTò´ ÈÞ¢ ‰ÈZàô{³ñÆ ÛÛ#–òš2Ï…M�ŒÛÑŸ«©¨Ï…±� ùЊ ÈÞã ¯ ™Ñ^ ðÊ$Ÿºä­4  ™ÑQ G �€À Ó„à ä­Œ  ðÊ© ì¼ì ä­' “ï0 æ»ä­� “ï· –…Ø  »ÈW ôôx ðÊ$ “ï> /  ðɯ ˆõÐ «Êk ðÊ– »  1 �Œ �ŒÝ �Œ‡ @ �Œ! YŽð§ˆõÈ«Ê�I�Œ0òŽ >†š«ÝÏ…÷†šrªß„ņšf†šY&RHÛ� !åâ ] ·º� ÝòŽ Ü†šŠ7Ï…Q†šMË�®Ï­†š †šÍùïÛ� !æâ ] dº� Š´¼ ÃËŸ÷Œ£ ö§Šöf’Æ ~ŽÚ‚ P‚ õ¶™"±� Û DÅ� Ò E¦e I±�  TÅ�  U¦ÿ Y¶'óÎO„ˆúàÙyÉÑÕÛÅÏÓ̼ԳðÔˆÉÕ1�Öò½ÖÏ�Ö}È×RðÊ�ÖìÜØóœÙ–åÙX“Ú1óÚÔ ëÛg ©Ü1 ½Þ$ ™ÑMóÚ ëÛA ©Ü õá� ©±G õár ÷Œ  èå³¢æƒ÷Œ R™Ñš™Ñ¡™Ñ§ðʯ™Ñµ¹«©,ǹÏ…„ǹD͹„ˆ-T͹ü¢¹6ü¢¹áûyG&â¹ç ú켓¹ÛÑ¿á ‘¹‹ãË›«©5Ï…>÷Œo«© öwÏ…l„ˆåáû–ü _ref__groupÁÀç¤ß­½ †­½08(çõÞ öçúÞù/ì¼;¬»C­½ˆ ­½“_i­ú°(èüÞ �ä­Àè¤ß 7ä­­½+7¨¼di¤¹ v{fk�è�ßû¨ÏÁ´¬»¼ÙÂÄä­Ìä­º¨¼ –ûÍ–ûÕøœ¥ý¨¼¤¹ %(éêà+�éŽî ‰·‹ã`éÊëIëIåìI–æ4È ª¬KÄñhmýù y ��é�ê æ¶‹ã %ýù 1  9�éÈç ȶ‹ã %ýù 1  9�éòã›¶‹ãpéóä›¶=BýùNV˜éžâÜ—êæ % †êæ7?Ó üéîà ¥ ü4 & ü S E ü r  †àþ/ 8Ž ü¾ éïàŠÆÌÓÚáè­½ö–ûÿ êæ„êæ�«©ñ†šÜ‹ãí«©R‹ã[«©¢‹ã««©: àþ(‹ãOàþ:”¿À ¿À |°†k¿À Ô ¿À  ¿À ² °†¡úýùÓýùTýùýùæ¯�’–³Öè‚ß(êñà+�êŽî‰·‹ã`êÊàþnv‘ ä­QY’ä­f¨¼Y a“ä­n"z!"¨¼Ýâ¬ÖïôÇÌ ³!¸�ê�êæ¶‹ã4=”ä­5=’ä­JV¨¼…¤¹ “™‰Ž¬�êÈçȶ‹ãÐÙ• ä­5=’ä­JV¨¼!¤¹ /5‰ŽH�êòã ›¶‹ãpêóä ›¶‰ ’– ä­R Z’ä­g  ¨¼Zb—ä­o {¨¼ú¬Ö  Ì Ñ¸½1˜êžâÜ—êæU^Íä­5=˜ä­JV¨¼ ¦¤¹ ´º‰ŽÍêöàŒéïöý #ÏÁ–û"ÙÂ+3‚„ä­Eä­¨¼  ‚„,«©†š ä­~ä­9¨¼Bä­-¨¼6äÈ ?«©ä­½ä­¨¼¿�&«©Ëä­êä­Ý¨¼æ¿�ï«©Üç„Çä­ ä­÷¨¼ä­ë¨¼ô ç„ Zœh¿À @¿À 6 °†% ¿À ì¿À •¿À †°†uÎ «©¨¼ªú�¨¼–¬Öí¿�¨¼á¤¹ þ¿�¨¼V¤¹ «©¨¼ËäÈ ¨¼·¬Ö*��¨¼ý¤¹ ;øõ°‡+Ö †Ö19(õö† �õû†’1»¼= »¼HÖŽ Ö™dnœ“¶(öý† ™ä­øö°‡+2ä­Ö,8¨¼ej¤¹ w|glŽö‚‡•©ÏÁµ÷“½ÙÂÅä­Íä­»¨¼à Š”Ί”Öùœš–¨¼¤¹ &(÷ÍŽ šä­È÷üŽ › ä­þ¢,¨¼˜÷›� œä­ ìç, ¨¼ð÷´�  � ä­ �Ç,  ¨¼ø÷Ø�? ‰ä­¿ -9¨¼# Ë 17#)ò÷ ¿ Ä Œ‘j÷ÒŽž†ÏÁ“ ½ŸŸÙ¨䭱䭠¨¼©—£²ä­~¨¼‡äª�ä­\¨¼eòÎnä­:¨¼C  ¿ R†›[6œDO—£¨¼C䪨¼òΨ¼Ý„›¨¼ª Ë‚(ø�!ø•!¤&+ÚÀ8 ÚÀCLV 10Á)ü…º\Œ´ŒD˜ §€($T˜* \À ´ÀDÌ ¯€ ( $TÌü³$4³ ½$º$ Q$05 ü­*  ?˜ † à\¬õ¸ àý ,· ‘ý‹²H?$*üžD¢ ¨5žŒ«  $Ü¢\Þ÷ê Ìý ,é ‘ýÉ•H? $*üÏ\¶´¶DÂè�% $TÂì¶Í½‚< Ñ $4Íü¶;4Ô ƒX鋟唋•ÄüUÿ,Û ?˜ƒ¢tâ $ìÔq�  žä­Œ€ D„ 蟀 5$l„ \® ùº  Ìý º ,¹  PG$!üŸ ?˜\÷ ´÷ Dƒ!Ÿ�%$Tƒ!'ÉŒ‡T] ·ú?˜Ÿ)ä­?˜$+\¹!"´¹!DÅ!è�"%!$TÅ!ü¬!$d¬! ©!? $!&# ü¦!*#¬"& žä­ŒŸ"D£"蟟"&5%$l£"<ä!$ দ¶¹¨й—©’—Ôx³±5{:\­#+\¹#-$hý¹#, Ìý-|¸# +Q,6*$!\Ñ"(ûÝ") Ìý Ý",Ü" (P)G'$!üÂ"'?˜üž#)*\×#.$¼¾¿ªÀó—Á†»Ãó—¾ R#/ŒÑ#.$ª$2$¶©ªä­lÖ$4œÖ$5 2% Š#�¢ä­4=533$< ý#/$¶©†»4ƒ$0tƒ$1 /( Š#‰¢ àþ0E1;'$D·63<Ì$6 Ñ$73à4€%9t€%: 7(Õ«94:*8($3\Ñ%<ÌÄ%DÈ%èŸÄ%<,;!$¬È% ß%"%#à%,%<&üÓ� ^Úœ(ü�|ü˜!§Äß!üñ# üŸ$�üê$7=þä­|扢T��¢Œ±ã«ë› ä­1 Ͷ·Ó×êä­ $æz ä­Gä­|‹²wä­Ôä­ É•;ÚŒ�Ó×±ä­ÊÅä­çä­nä­´É•¯6ä­OřǙș­É™Ê™àË™óG*¤�R{9 ù¦õÓ×%ä­>lß!ù¦ŽÂä­ää­´ä­úÉ•õä­2ä­yÉ•b|tñ#É ‰¢·ß«±ä­UͶ1 �¢LîªF‹€aزyß«s3ä­L replacementÁdappendÁnì´s�œxŸ¼  cap_refÁ<œ!$ª³Ü$ŸÃ/‚ =2ŸF7fŸ�è è�¦ “žƒ ´Ÿæ 蟼  f è� ½‚ÿ ÷¡É èŸ7  ÕŸ�‹·úZè�!é¥èŸ© ó —䪮իGÕ«¿èŸ~�¢W‰¢^�¢e‰¢l äLç$ì$ðŸ, 4惢G é‹ãj˜tk &ü”1œ\›1´›1D§1 ´w*!T§1,\Ï1 ÌÂ14Â1“ž$É1$  4!-2 ü¼1 ?˜ Š2 à\¹2€Å2 àý ,Ä2 ‘ý³÷‹²JA !,ü¢2(Œ¦2Þƒ ¢2 Œ¸2 !ü¦2$\ë2‚÷2 Ìý ,ö2Ú¤?6 !!üÜ2\Ã3”Ã3Ï3½‚% Ó3 !4Ï3üÃ304Ö3 ƒX鋣ƕ�¢š¢v,Ý3 ?˜ö»tä3 !ìÖ3h t‚4$†4ùÝ ‚4$‹4$  !T†4\­4„¹4 Ìý ¹4,¸4Ú¤PG!!üž4?˜\ö4´ö4D‚5ì·%!T‚5'É�‡T] ·ú?˜Ÿ)ä­?˜!+\¸5Ì«5d«5é¥%!#ü¥5t“6$—6ùÝ “6$œ6$ !!T—6<Ø5 àù¦\ž7&\ª7( hˆª7' Ìý(|©7Ú¤&Q'6%!!\Â6#†Î6$ Ìý Î6,Í6Ú¤#P$G"!!ü³6"?˜ü�7)%\È7) ¶©ŒÂ7)$›8- ¶©ªä­lÇ8/œÇ80 -%äª/10'.!0 î7* ¶©†»4ô7+tô7, *( Š#ü»Ù™+B,8$!A¨1.<½81 Â82.à4ñ84tñ85 2(èÃ445*3%!3\Ë97üµ9"Œ¹9Þƒ µ97-6!ô¹9 Ù9" Ú9,"<#üà/ú \Û (ü…2…ü—5™ÄÓ5üâ7 ü�8�üÛ878�1Ó×|ò/ü»TŽ0�¢Œ¿0Ù™ù0œÝÓ×öͶ¤Ó×½$ê1aòÓ×.Ó×c‹²^Ó׺Ó×ïÉ•êQÚŒ—Ó×°òÓ׈Ó×ÎÉ•ÉPÓ×i(†±ñÓ× lÓ5ù¦‘ÏÓ×èÓ×.É•)Ó×fÓ×­É•–°tâ7V ü»DòÃ>ä­ÖͶ²ÿ²ÊîªÄ îøÉòÃÀÓ×Ù Ó²åì²êì´ï�œôŸ(  ª³<›5 ª³¾ Ÿ8*‚ ¦-Ÿ¾2Ýì·# “žß Ö¹E Þƒ  ڤĽ‚†ê»PùÝ ÞÚ¤rì·(·ú÷饾ùÝ €Ú¤úÚ¤žäªèçèÃ"Þƒ á�¢¹ü»À�¢Çü»Î æ3Lé3$î3$ò3£µ4è3ö»Ðé‹å3j˜tô(’Í;’Ò;®&+1ù¦> ù¦IR\(”Ú;   ä­`”�< ¡ä­¶©+¨¼P”Ÿ< ¾ä­ *  6 ¨¼ž£¬Ö°µ¡¦otÑ”ß;³ë ÏÁ÷õÎÿÙÂä­ä­¨¼  ¶©ä­â¨¼êäÈ ò†šúXœfqÅѨ¼fäÈ ¨¼4¬Ö�•ã;¶•á; õÎ#,6`–�<¶©¶©*/ ù±¶©¶©FKSZP–Ÿ<&7?GT–î;»H–å;õÎõÎþÅÑÅÑ®µMî ZdÈÓH(—Ž=—“=È&+1¶©>ÅÑFOY(™›=$(™à=†»G O¢ä­1 =  ¨¼{€±Ç � ’ lŸ8™Ë=ªä­ÀÈ£ä­1=¨¼ôù±Ç  n™ =Í5;B ÏÁPÅÑYÙÂbj÷À Ïä­{¨¼àôÉ 膚iä­�¨¼{äÈ „¹œÇ¿À 2¿À ¸ìäÈ ¨¼Ï±Ç ôÉ ¨¼g±Ç š¤=К¢= ÅÑ#,6 H›¦=+: JÅÑ[ h y�Ž˜ŸÅѰ½ÌÅÑÝê(›à=Åц»-ÅÑ>†»Vbpu ù±†š†šŒ‘™8›Ë=ÅÑ ªä­-ÅÑ> ªä­V  b  pu ù±÷À ÷À  Œ ‘™›¯=ÕJPW^eqÅÑzÅу‹“šÅÑÅѨ°¸À÷À 2÷À ;ôÉ DôÉ M†šô†šýäÈ äÈ ÅÑÅÑÅÑ#ÅÑ,ÅÑ5ÅÑ>ÅÑGQî _©ònÀò{¿À ñ ŠÂþ ¿À ©ŠÂ¶¸»ÞÊÙß3€žÕ9"ÌØ ˆó )1èžµ;"ͶÓô)1(žš8" ÖžŸ8"Ü2­æ >âš FÌØ ºÌÞ ÂͶ”ˆƒœoyˆó ïÓô¿(Ÿ¡8" ¤ä­€ŸÕ9" ¥ä­ÌØ +¨¼èŸµ;" ¦ä­ Ͷ+  7 ¨¼Ÿ¤¬Ö±¶¢§puÒŸ¦8"ßì ÏÁøâš Ù ä­ä­¨¼ ÌÞ ä­á¨¼é�ÍñˆƒùWœepÌÞ ¨¼e�ͨ¼3¬Ö� ì©Z"„®Z" ¾ªÆ$©Z"4¿Z"Ä®Z"5ü£Z#"WñZ"€ø„“µ[" ù“Ž"`  (“´[" ø„ §fø„4 = ØZ"¯õÚ £\"y ¾š ‰ ‘§ [²  ÀÅ ‹g[ ò ÷ù¢ñ@`á¢ñ`ºò ù£Ž"`* ‘\"ü‚Y¡"ºTÕZ"üíZ¥"u|õÚ Œ²Y"Ÿž L™Y"ªÆ4¤Y"çÝ /,ÕZ"ø„ã¹ÊÝ¥åéÓåéìÖà徚Ûßê÷ÿàåé ­šƒ£Ù»\cÇFÇR ÉèíúéZ�ëtºò sø„I Ä¿y"\Äy" ÀªÆ$¿y"4Ðy"œÄy"5ô¹y"V‚z"€ø„•Áz" ù•Ž"`  (•Àz"åéúé) 2 éy"¯Ýá ¯{"n ¾š ~ †¨ V§  µº ‹gV ç ìõù¦ñ@`á¦ñ`ºò ù§Ž"`* �{"ü¥xŠ"¼Tæy"üþy "ipÝá lÐx"Ÿž L·x"ªÆ4Âx"øâ ",æy"ø„×¹ÊÝ¥�íÅåéÞÖà×¾šÍêðéÿàòåéû}­š�£Ö»\UÇ8ÇD àîÞúéL˜ñfºò qø„G,ÿ~"( (4�"\”"ÌØ œ�" 9 Š#ªÆèüO1: –�"  é V# / ?˜¤�" mõÚ   Ô‡" — " [²ê ž!á’ -¸ Ú" àáý à" þ"Tþ"4€€"õì &D€€"$Â" Å™áýD¿" ÀœõÚ ø„ |¸"„ù" Å™œ�€"Ͷüù'"�‡Q0 ")  â€"4å€"( ü¹€3"ü¾€#" ȪÆ$¹€"\R ü¾€."ø˜¹€4"  é Y  %1 ü¹€4"mõÚ ü³€:"™ì€"[²ê š"á’.´ ®�"àáýü¯€•"üöÙ"$’�" Å™áýD��" ÀœõÚ ø„|ˆ�"TØ�" ÌØ í�""Tí�"4ï�"õì "(!Dï�"üØ� "Lã�"è¡ i!G¬ã�" �‚"%T�‚"4Ÿ‚"õì %($DŸ‚"„˜‚"# Å™$ü‚‚&"Ͷ# º‚"'<µ‚"& Å™áý'\²‚" ÀœõÚ ø„& ‚"((Â"ü§}œ">M\l(3ö¾ hüû~È"Üãê(dÕ"½ÄË  d©�")çÝ üö}%"Ÿž LË}"ªÆTÞ}"áýYÿ� ÖçÝ   ªÆOèü5ÌÞ Rƒ²ê ŒõÚ Ì$°"õÚ áýužˆƒäͶí_¯ƒ xˆƒáÿ� &çÝ qáý­ªÆ§Ì²ê ÕõÚ $€�"õÚ |áý¾ö°£P1¯ƒ KͶ²â¯ƒ üõÚ Œáý¤^ e­šj£ÇÆ Å Ž £¢Æ ¦Ží £‚ ¥¾õØ é žá’¥õì ¸�‡üù´ é yá’€õì (è¡õì ͪÆ.ªÆ5ªÆ< ,ü…"* *4І"\‘†"ÌØ œŠ†" <¾õH(1 šІ"  �%øâ T%* 6 ?˜¤Š†" mÝá   Ô„†" ›�†" [²ê ¨"–ë  . ׆" à÷þ ݆" ö†"dö†"Dø†" œ*Tø†"$¿†" Å™÷þD¼†" ÀœÝá ø„ |µ†"r  ‹‡"<‹‡"�‡" ™* ,�‡"l†‡" Å™œ—‡"Ͷü†‡$" �‡S1 #*  ç‡"4ê‡"* üÇ."ôȇ" ʪÆ$Ç"[Q üȇ)"øœÇ/" ÷†X %1üÇ/"mÝá ü½‡5"�ñ‡"[²ê š"–ë .´ ³ˆ" à÷þü¹‡�" üó†á"$—ˆ" Å™÷þD”ˆ" ÀœÝá ø„|�ˆ"T݈""ÌØ òˆ"$<òˆ"ôˆ"‹Š$(#,ôˆ"ì݈"Lèˆ"è¡"h#F!”èˆ" Ÿ‰"'<Ÿ‰"¡‰"‹Š'(&,¡‰"lš‰"% Å™&ü„‰#"Ͷ% ¹‰")<´‰"( Å™÷þ)\±‰" ÀœÝá ø„( Á‰"**‰"ü±„‘"?N]m*”÷À iüø…Ê"5<CƒdÒ†"ÀÇÎ d®ˆ"+øâ üû„!"Ÿž LЄ"ªÆTã„"÷þ¹ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^²ê Ýá �øâ ÎÈ�üèüàÌÞ þ.²ê 7Ýá y$­†"Ýá ³÷þ í ÷þ ˆƒMͶVˆÛ”¢ˆƒI “Žøâ Ø÷þªÆ4²ê =Ýá �$…ˆ"Ýá ã÷þ&]°£·˜Û”²ͶJÛ”dÝá ô÷þ Æ É­šÍ£‰Æ „ ŽÉ £`Æ ŽU £ê  ¾õ—÷†f–ë mùˆs‹Šè�‡‡à‹"÷†è–ë –è¡s‹Š<ªÆ�ªÆ¤ªÆ«üÁ–'" ̪Æî–"Âüü”ò"ÌÌû™ÏÇ,®Ð­š®bRŸrqSø”ªÆÌÈ•"­æ $¦•"ªÆ4´•"­š‰ü³£#" êªÆÜ£"Äü’¢Ê"êꃜíÇ,®î­š®> ê ÛxãªÆ¬Â¢"­æ $®¢"ªÆ4´¢"­š‰üû¸*" ˆªÆ«¹"Æü¥·†"ˆˆø�‹Ç,®Œ‚�®�­š®:Ò;×,§ØªÆ´…¸"­æ $Ë·"͸$Ù·"ªÆ4ñ·""‚�%­š(¯ TÂÂ"ÌØ T×Â" ÌØ ”×Â",âÂ"ðë  .<âÂ"ü×Â!"\êÂ"Ýô B öÂ"têÂ"ü×Â*"4ùÂ"êó ZDùÂ"üÂÂ@"LÍÂ"è¡ÜHüÍÂ5"4ŒÃ" \“Ã" ÌØ œŒÃ"  <¾õ H (1 ¤Ã"¥Ã"ü™¼Œ"È çÝ ü�½%"Ÿž L̼"áý ß¼"ªÆTõ¼"°£ÓBͶ�¿ÌÞ ßÈ� èüïÌÞ  o­šg³ðë Ýô ëêó °è¡Œ¾õ?ªÆªÆ  ¤Ï"d¤Ï"D¦Ï"ùˆ( T¦Ï"*T»Ï"ÌØ TÐÏ" ÌØ ”ÐÏ",ÛÏ"ðë  .  <ÛÏ"¨¨œÏ" ·ú?˜©ä­?˜ +üÐÏ!"\ãÏ"Ýô  t ïÏ"  tãÏ"üÐÏ*"4òÏ"êó  Z  DòÏ"ü»Ï@"LÆÏ"è¡ I üÆÏ5"4…Ð" \ŒÐ"ÌØ œ…Ð" <¾õ H( 1 �Ð" žÐ" ü´Íê"Êøâ üŸÎ!"Ÿž LâÍ"÷þ õÍ"ªÆT‡Î"5Û”Oµ°£ZͶ¥ ÌÞ )È�"èüÌÞ $‡£‰­šŒØ ùˆÌðë m·úJÝô êó äè¡À¾õrªÆAªÆH¬ŽÙ" àªÆ©Ù"ÔüÒØW"ààáý¼äó® %™ÿpõnªÆ´íØ"÷˜$äØ" f<ùÛ"­æ |ùÛ",�Ü" ¸2<�Ü"ŽÜ"ÕüÃÛK"ÌÞ láÛ" ÷˜DÔÛ"âš <¤ª…<˜Þ"­æ „±Þ"ªÆü˜Þ*"„ Þ" ¾È�N=ü Þ""ü˜Þ6"LÃÞ" ÷_áýø„Z\ÃÞ"ÔÞ"ÛüÒÝ‚"řǙș­É™Ê™àË™óG*¤�R{9 ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwáýø„üèÝ%" ÷˜LÚÝ"çÝ AŸž xÈ�k'éã«q›¬@¤÷ß" ªä­üèß$"dêß"öò èß":üêß""1$ à" 2ä­D¦à" ­æ   ¨¼üèßG",šà"õó•\ J¬šà"DÃà"  «ä­dÍà"  ߪÆ÷À   ¨¼üèßr",½à"õó• h Uì½à"üè߈"4èà"¯ôMDèà"öà"ßü™ßÝ"ÏÁŒÌß"êª, ß"Ù §ß"‘õ£‘õ(‘õ®“õ·ä­Úä­‹¨¼}âš †ä­5¨¼&÷À /yœ{¬öò!âš ¨¼Öõóµ÷À ¨¼uõóI¯ô\Îà" ¬ ä­§¶ß#÷À Ôä­Nä(ªÒæ" ­ä­Ȫüæ"÷˜#¨¼PU±Ç bgRtª׿"è�ÏÁ› ”©¦Ù®䭶¨¼¤ ꪯꪷڜçñ굨¼ä±Ç LŒê"÷˜­æ ŒŒê",–ê"¤ª3<–ê"£ê"ãüÖéM"ÌÞ lôé"ǵDçé"âš }9¤ª~ 4ˆì"÷˜lˆì"$�ì" ÆQ÷˜54�ì"pžˆì"  �%ݬK$)5?˜tˆì"m¢­¤‚ì"ŒŸ•ì" �%õÚ Îõ?˜Îõ# ¼Çì" €ø„¡‹í"  ù¡Ž"`  (¡Ší" åéúé* 3 ¨ì"¯áý<®ì" Å™áýùí" Ž ¾šž¦§ßê·ÅÊ�ë×Ü   åù­ñ@`á­ñ`ºò  ù®Ž"`  *š çí" üÐë©"é ­´»„¥ì"üÃì¥"‚‰õÚ Œæë" ”©LØë"ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ¢­íݬ%�®Fv¢­¿,¥ì"áýìø„k[ÊÝH�íYåésÖàk¾šaßê}ÿà†åé�ôÆ ?˜ÎõŽU£{»\ý ÇÞ Ç꺅¸³¸ñ¿¹øúé�ëºò 5ø„ŒÏö" éªÆæö"òü—öO"ééêνíó® �šiì·jªÆ”²ö"Äš$©ö" f<¶ù"­æ |¶ù",¾ù"¤ª.<¾ù"Ëù"óü€ùK"ÌÞ lžù" ÄšD‘ù"âš {<¤ª�<Åû"­æ „Ùû"ªÆüÅû%"\Íû" ÀÈ�N=ìÍû"üÅû1"Lëû" ÷_÷þø„Y\ëû"üû"ùüƒûy"řǙș­É™Ê™àË™óG*¤�R{9 ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw÷þø„ü™û!" ÄšL‹û"øâ ?Ÿž vÈ�i'èÌÃoƒÄ?„›ý" ®ä­üŒý "dŽý"öò Œý":ôŽý"0$Àý" 2ä­DÆý" ­æ   ¨¼üŒýC",ºý"õó”\ J¬ºý"Dãý"  «ä­díý"  ýªÆ÷À   ¨¼üŒýn",Ýý"õó• h UìÝý"üŒý„"4ˆþ"¯ôMDˆþ"–þ"ýü½üÙ"ÏÁŒðü"ÓÂ,Äü"Ù Ëü"‘õ£‘õ(‘õ­“õ¶ä­Ùä­‹¨¼}âš †ä­5¨¼&÷À /yœ{¬öò âš ¨¼Öõóµ÷À ¨¼uõóI¯ô\îý" ¬ ä­§¶ý#÷À Ôä­Nä(¯܃" ¯ ä­¨¯‚„"Äš#¨¼PU±Ç bgRt¯áƒ"ñ�ÏÁ› �Á¦Ù®䭶¨¼¤ Ó¯Ó·ڜçñÐͨ¼ä±Ç LЇ"Äš­æ ŒŠ‡",”‡"¤ª3<”‡"¡‡"�üÔ†M"ÌÞ lò†"­ÍDå†"âš }9¤ª~ 4öˆ"Äšlöˆ"$ýˆ" ÆQÄš54ýˆ"p¢öˆ"  �%ÄÄK$)5?˜töˆ"m‰Å¤ðˆ"Œ£ƒ‰"Èõ?˜Îõ ²µ‰" €ø„¥ô‰"  ù¥Ž"`  (¥ó‰" åéúé* 3 –‰"¯÷þ<œ‰" Å™÷þâŠ" Ž ¾šž¦¨êð·Åʘñ×Ü   åù²ñ@`á²ñ`ºò  ù³Ž"`  *š Њ" üˆ "‡ £ª±ø„“‰"ü±‰ "‚‰Ýá l؈" �ÁLʈ"ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ‰ÅãÄÄèÅ<l‰Åµ,“‰"÷þìø„k[ÊÝH�íYåésÖàk¾šaêð}ÿà†åé�ôÆ ÷?˜ÎõŽK£{»\ý ÇÞ ÇêºëÏ™ÐçÈõîúé˜ñºò 5ø„”ˆ”" òªÆ ”"‘üÏ“Q"òòó›¾öó® ‚eݪÂ9`–ªÆœê“"”œ$á“" f,Ž—" TÕ–"­æ dá–"͸tï–"ªÆüÆ—d" —ªÆ‡œ È�‚¶üª—�"\º—" À—ªÆ‡œ ¼Úª—" lüº—q"üª—š"L¹˜"ƒÄh\¹˜"ø¦ª—›" ™ÐC % 1 ?˜üª—›" m‰Å#. 4Õ˜" dϘ"  ¬§Ę" �%řǙș­É™Ê™àË™óG*¤�R{9 ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw͸ø„Îõ?˜Îõ»t Á™" ™" ›™" €ø„D¨™" Àœ͸ø„t£™" Å™ÎÝ °™" $û˜"dû˜",€™" †͸/ <€™"„ø˜" Àœ͸ø„´ó˜" Å™ÎÝ  ˆ™" "+! ,üú•È"\ n€ø„ ˆ• –_ü¿–ƒ"ü�—¥"‘˜Ÿ Ô—™"‰Ýü�–$" ”œL‚–"Ÿž t‚¶gÈ�Z‰Å4¡—"˜Õ®ÄÄâøâ :èÚs ‰Å�,ê˜"ÎÝš͸ÑÛðìø„kÎÝGž¦­Ç,#‚�­šÇ ºÆ ·?˜ÎõŽ/ »\ëÉàÚƒÄΙЪƒÝ±ýß“ø„EDà—" È�$ð—" ‚¶¬à—"  D Š#ªÆÌÞ ‚¶ _:B°¨à—" ¤µ_#/B$‹˜" ‚¶  „‹˜"L�˜" Ž  =\�˜"©õ—"[²ê ³"–ë .̤ˆ˜" ÀœÝá ø„ª˜" —÷…‹´à—" øâ Í—" èÚ-ÌÞ ,Ç—"÷ºYªµ«æå´ݲê åÝá ÛðCÈ�}‚¶†‚¶�¬—e­š4÷–"È�‚�$é–"‚¶Æ VŽÑ?˜ïÜå[¤µƒç³–ë ' _ref__finderÁ _ref__capsÁŒüš" °ä­üíš!"dïš"öò íš":üïš"1$¢›"  2ä­D¨›" ­æ   ¨¼üíšD",œ›"õó• \ J¬œ›"4Å›"  ˆä­TÍ›"͸ ¨¼üíšk",¿›"õóŠ ] JÌ¿›"Dì›" «ä­dö›" ›ªÆ÷À  ¨¼üíš–",æ›"õó–iVìæ›"ü횬"4‘œ"¯ôND‘œ"Ÿœ"›üžš�"ÏÁŒÑš" ”œ,¥š"Ù ¬š"‘õ§‘õ,‘õ§‘õ-“õ6ä­Yä­ ¨¼üâš ä­´¨¼¥Ûð®ä­]¨¼N÷À W�œŸÓöò»â𠍼põóOÛð¨¼õóî÷À ¨¼®õó‚¯ôT\÷›" ¬ ä­àï›[÷À  ä­N(´‰¢" ± ä­°´°¢"”œ#¨¼PU±Ç bgRt´Ž¢"ú�ÏÁ› ÝØ¦Ù®䭶¨¼¤ åî¯åî·Úœçñ”ó¨¼ä±Ç  4À¤"”œlÀ¤"$Ǥ" ÆQ”œ54Ǥ"pªÀ¤"  �%‰ÝK$)5?˜tÀ¤"mÎݤº¤"Œ«ͤ" �%řǙș­É™Ê™àË™óG*¤�R{9 ͸Îõ?˜Îõh ÿ¤" €ø„­Â¥"  ù­Ž"`  (­Á¥" åéúé* 3 à¤"¯͸<æ¤" Å™͸°¦" Ž ¾šž¦² ZÇÕÚ ‹gZ    ù·ñ@`á·ñ`ºò  ù¸Ž"`  *Í ž¦" ü‰¤§"  &-4{„ݤ"üû¤¤"µ¼Êõ„Ÿ¤" ÝØL‘¤"ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ÎõÎÝf‰Ýž¾â¿ïÎÝ8,ݤ"͸ø„ž[ÊÝH�íŒåé¦Öàž¾š”�ø°ÿà¹åéÂôÆ z?˜ÎõŽÎ£®»\0 Ç ÇºŠô’¸ôjÄõqúé3»øMºò 5ø„¼Ð|Ð ÍóëªÆ4à*ìË £óëªÆî«ü—WìÉT¶ªÆ4¨¹ÊƒÅ¡8Óý¢¬’˜Ä ËÉÓý½æ æÄ £óëªÆ çÊ«ÑìÉΪÆÌ¹ÊMªÆ6Å¡é 4™¹Êd™  ÑóëªÆ5, «¯üë@DzŒ ìÉ$ö ¹Ê€thisÁA†Œ|¡L¡ ¯óëªÆ$«*¶´ü�5Dz”ª� ,Š .ü� z4»¹Êl»Â  g¹Ê1 Æ4ÂθüüRÏÁ\¥ª� ,ƒÙÂ Š·� ‡œ M–ƒ ›¬�.œ�. Ùóëü�.%t�. ­aóëC&4¸.üä-� ÁóëªÆ?˜„!„!…!ѧo$z�é -ŸŸ öãó‹¤ô‹ljô²ßk#ó뽇û. ú.ü¥-Ö͹ÊTË-ªÆ4½-ÿ`ÿ`V�a¬â`½68ŸœRt óëR¢‡ �ªÆ9Å¡Wо„ ªæ„ ‹ªÆ´œÉÐ Ø×¾„ ïÏ ×Õæ„ õ ¥.Øß\×. „!à… û ÁóëªÆ ð.š™˜Í¨¹Ê–ªÆ•õ† ·¢‡ æªÆž¹… »Å¡Äø\ú1$ÿ1 ÒóëªÆ$ú14ÿ10Tí1$ò1àDz$Ÿ2á: lÊ2ªÆ|Ê2 ‡#ªÆ2?˜(0tƒ3Dƒ3 ¬óë$Œ3&ìõ2lõ2 ùóëI$LÀ5 õ† ¬ì5œì5¾„ “6 „¨6 “�ŒÊ6 “�üÀ5ª„Ê5 »aóë ˆ w _ VG üÊ5 4Š7 Dÿ6 ƒ7 €¢‡ Ë8”½8l½8 ÷óë, $ü¯8#$¯8 öà… ì´8 &Lä8üø6„ ,Ð:   )¨óë9K Zfz „¨óë³¥é� ´ ÂÎà ìö  !F ü¹1¨ Ñü†2,ü¿2¢üç2úü³5®ü‘7ëDzÕ1·� ,Ë1řǙș­É™Ê™àË™óG*¤�R{9 Dzr>Dz4óë$Ã2 ªÆ¢‡ <ë2à… ÝÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¢‡ ¢‡ 4·5 õ† 𢇠㢇 Ï“�”�•�Ï–�—�И�™�Gš�›�Fœ���Ü­Úݱä}LÂ5ú” *Ì¢‡ Âvà… c¢‡ ÃDzJé� S[ckré� {ƒŠ‘˜ ¹¡ð¹¡Àí ¶Ç \ oldÁ€³ÜŠ ‡ò‹ ö¬Œ ÆÙŒ  ¾„ hî� ùŽ •¤� qLç<õ† Œö< “�üçCITŸ…\Ÿ…dkr{î ˆ©ò–Àò¢ª$Œ9T†9 @€€€€€€ €@€€€€€€€€ RÔÃ@ ûÄ�@ ûĽ? û´ÿ> û´¿> û ¤…> û ¤É= û ”“= û ¼Ö< û Œœ< û¬ä; û|®; û|þ: ûlÒ: ûl¤: û\ü9 û\Ò9 ûL®9 ûî@àüØ8–¨Ë$÷8¨Ë$î8\Ÿ98¼» @€€€€€€ €@€€€€€€€€  » ûÏ» ûÏ» ûÏ» ûÏ» û Ï» û Ï» û Ï» û Ï» û Ï» ûÏ» ûÏ» ûÏ» ûÏ» ûÏ» ûÏ» ûÏ» ûÏ» ûϻຨ˷¨Ë¶µÈí\ÃD ÔDáü²C¢ÐC¨Ë$ÇC$ÃD7#)„Ž ÍDŠáˆ„¨Ë‚¨Ë�ˆš½T×F @€€€€€€ €@€€€€€€€€ $™P Å™¨ËÄíO ûôèO Å™¨Ë …PÔ£O ûüžO  Å™¨Ë ½O´ÝN ûäØN Å™¨Ë óNÄ•N ûô�N Å™¨Ë ­N¤ÑM û ÔÌM Å™¨Ë åM´‹M û ä†M Å™¨Ë ¡M”ÉL û ÄÄL Å™¨Ë  ÛL¤…L û Ô€L Å™¨Ë  ™L¼¾K û ì¹K Å™¨Ë  ÕKŒýJ û¼øJ Å™¨Ë  ŽK¬¸J ûܳJ Å™¨Ë  ÍJ|ùI û¬ôI Å™¨Ë ˆJl¼I ûœ·I Å™¨Ë ÉI|ýH û¬øH Å™¨Ë ŒI\ÂH ûŒ½H Å™¨Ë ÍHl…H ûœ€H Å™¨Ë ’HLÌG û|ÇG Å™¨Ë ÕG\‘G ûŒŒG Å™¨Ë œG®Pâü›F“ řǙș­É™Ê™àË™óG*¤�R{9 ¨ËdÀF$²F¨Ëµ¨Ë÷¨Ë9¨Ë|¨Ë¿¨Ë¨ËE¨Ëˆ¨Ë˨˨ËQ¨Ë”¨Ëר˨Ë]¨Ë ¨Ëä¨Ë'½ ¬± @€€€€€€ €@€€€€€€€€ ° Å™¨Ëɰ· û¶ Å™¨Ë³¼»Â ûÁ Å™¨Ë½ÆÅÌ ûË Å™¨ËÈÑÐ× ûÖ Å™¨ËÓÜÛâ û á Å™¨ËÞçæí û ì Å™¨Ëéòñ ø û ÷ Å™¨Ë ô ýü  û  Å™¨Ë ÿ   û   Å™¨Ë     û Å™¨Ë   $ û# Å™¨Ë   )(/ û. Å™¨Ë+43: û9 Å™¨Ë6?>E ûD Å™¨ËAJIP ûO Å™¨ËLUT[ ûZ Å™¨ËW`_f ûe Å™¨Ëbkjq ûp Å™¨Ëmvuât‡ã ,+¨ËߨË"¨Ëe¨Ë¨¨Ëë¨Ë.¨Ëq¨Ë´¨Ë÷¨Ë: ¨Ë} ¨ËÀ ¨Ë ¨ËF ¨Ë‰ ¨ËÌ ¨Ë ¨ËS ½ ØA$èSTâS @€€€€€€ €@€€€€€€€€ R,¸Y ¶%,‰Y À%,ØX ·%,«X Á%,üW  0,ÑW 0¦W >ÿV <4ÓV ©Ö4¤V ÃÖþU BÔU b°U RŽU rêT $ÊT ^¨T zŠT AÎYãüµS™$ÓS¨Ë$ÊS\ûS6 @€€€€€€ €@€€€€€€€€ d¶%-À%.·%/Á%0  01!02">3#<4$©Ö5%ÃÖ6&B7'b8(R9 )r:!*$;"+^<#,z=$-A>%ã$!¨Ë 2U(¾Ô[¾Ù[Á &+ãÎ8 ãÎCLVhÀº`  ÷8Àá[ ½ Àè[Ä -ãÎ9bGòþ sÁì[Æ Áê[ ¹þ &0hº`&Â÷[É HÂî[¹þ ¹þ ov5î BLœÈa ½  Øaáaåü¤a=ãÎ<¶a¤c ¥c¤”c ½ ®cæüñb=ãÎ<‚c\„»et»e åì»e4Ìe ô8$ÓedÌeÞeçü‰eUãÎ<©e¨Ë$šeã΄ñ¢8ºƒ!£Ûƒ!ˆLêg´êgTôg ¦£,dôgüÚg'|ÚgÓÄ@üÚg04‚h€Å<D‚h�hèüºfÖ,ÎfãÎ$ÅfÑÅ�±Ì!D‚…!ÕÓIJ€Å’Tƒiˆi è$ƒi,ˆi|ƒi ‘i˜iéüÛh=$ôhãÎ$ëh}3ð†!šL¼jtÈj<Íj á$ÈjLÍjÔ¼j ü¼j ÚjájêüˆjY$­jãÎ$˜j¨Ë$žjm°£*ñ¢.Y©ˆ!Îü¾lÄÃl ì$¾lÔÃl+ü¾l> Üál¤æl í$ál´æl‚mëüŽlt$¯l¹þ ,¥l¶2…Š!ÓàŠ!}$än\òn ûÔänDén ê;1¬én-üän6 $‚oL�o ûÄ‚oD‡oŒŒ!9/œ‡o oìü«nu$Õn¹þ ,ËnÛãΨËãΙ¨Ë’3TŒŒ!ŒŒ!¡ $Ñqlßq ûäÑqDÖqŒŒ!9/¼Öq+$ýq\‹r ûÔýqD‚rŒŒ!9/¬‚r+$§r |µr ûô§rD¬rŒŒ! 9 /̬r+üÑq  $Õr lãr ûäÕrDÚrŒŒ! 9 /¼Úr÷ríüœqÛ $Âq¹þ ,¸q—ãÎĨ˾RãΨËy ãÎ:¨Ë4ãÎÍ¨ËÆfˆŒŒ! ŒŒ!²ŒŒ![ŒŒ!ã$‘ulŸu ûä‘uD–uŒŒ!9/¼–u+ü‘u: $±u\¿u ûÔ±uD¶uŒŒ!9/¬¶uÑuîüÞts$‚u¹þ ,øtÙãΨËÿãΘ¨Ë‘2SŒŒ!ŒŒ! $çw|õw ûôçwDìwŒŒ!9/Ììw+üçw> $‰xl—x ûä‰xDŽxŒŒ!9/¼Žx«xïü²wy$Øw¹þ ,ÎwÙãΨËÿãΘ¨Ë‘2SŒŒ!ŒŒ! äžz¬£z ñ$žz¼£z*üžz: Ô¾zœÃz ò$¾z¬ÃzÞzðüñym$�zãÎ$†zµ2¡˜!Òü˜!} Œº| ûü¬| D±|ŒŒ!$¬|2ܱ|. ¼ê| û üÜ|&Dá|ŒŒ!$Ü|2üá|!/ ´ } û ü’}%D—}ŒŒ!$’}2ü—} / ¤Õ} û üÇ}#DÌ}ŒŒ!$Ç} 2ôÌ}. Ôˆ~ ûüú})Dÿ}ŒŒ!$ú} 2  üÿ}$/  ü¬|®  ÄÁ~ ûü³~'D¸~ŒŒ!$³~ 2 ü¸~"à~ñü÷{é $�|ãÎ$”|¨Ë<ܨËú™¨Ë·V¨Ët¨Ë2¨ËÇc…ŒŒ!�ŒŒ!BŒŒ!öŒŒ!ªŒŒ!_ŒŒ!ò |¶€ ûô¨€D­€ŒŒ!$¨€5Ì­€1 ¬ä€ ûüÖ€$DÛ€ŒŒ!$Ö€6üÛ€3 ¤˜� û üŠ�#D��ŒŒ!$Š�6ô��2 ”Ë� û ü½�!DÂ�ŒŒ!$½� 6äÂ�2 Äü� ûüî�'Dó�ŒŒ!$î� 6  üó�"3  ü¨€¢  ´³‚ ûü¥‚%Dª‚ŒŒ!$¥‚ 6 üª‚ ЂòüõÛ $™€ãÎ$�€=¨Ë\÷¨Ë¯¨ËÎh¨Ë‡!¨Ë@¨ËÏd‡ŒŒ!¬ŒŒ!]ŒŒ! ŒŒ!¼ŒŒ!lŒŒ!ùÌ߃ Ê þƒóü´ƒJéÏ\ɃãÎ$Àƒ 1L«†t·†<¼†©ˆ!$·†L¼†Ô«† ü›†, ½ ͆ôüæ…gãÎ<‰†ãÎ$ô…¨Ë$ú…n´¦,ñ¢/_©ˆ!Ñ$†ˆŒ†ˆ4‹ˆÛƒ!)$’ˆd‹ˆÌþ‡žˆõüˇSó‡ ãÎL݇¨Ë$è‡ãΆãΠ'ñ¢*\Ûƒ!¹LËŠtØŠ<ÝŠ©ˆ!$ØŠLÝŠ|׊ÜËŠ ü»Š- ½ îŠöü†ŠhãÎ<©ŠãÎ$”ЍË$šŠn˼3ñ¢6f©ˆ!ç$¦ŒŒ¦Œ4«Œ ö+$²Œd«ŒÌžŒ¾Œ÷üë‹S“Œ�©!Lý‹¨Ë$ˆŒãÎ…ãΟ'ñ¢*Y‘¬!¸Lþ�T‹Ž\ŠŽ¼þ� üî�) ½ �Žøü³�jãÎ<Ü�ãÎ$Ã�ãÎ,É�nª‹¥3î 5e$Ø�¤Ø�DÝ� ø+,æ�|Ý�äÐ�ó�ùü—�\Å��©!L«�ãÎ,¶�ãÎ…ãΟ'î )Xͯ!·L–‘T¢‘´–‘ ü†‘( ½ ´‘úüÎ�fãÎ<ô�ãÎ$Û�ãÎ,á�n›�,î .^$ã’Œã’,è’ ú+,î’dè’ÌÛ’û’ûü¥’VÐ’�©!L¶’ãÎ,Á’ãÎ…ãΟ'î )Xò²!·L©”Tµ”´©” ü™”( ½ Ç”üüÝ“jãÎ<‡”ãÎ$î“ãÎ,ô“n›�,î .^$þ•¬þ•Lƒ– ü+,�–„ƒ–ìö•š–ýü¼•^ë•�©!LÑ•ãÎ,Ü•ãÎ…ãΟ'î )X—¶!·®¬˜ àý ®˜,«˜Ö¹,¦˜M$¬¦˜D±˜åçT¦˜T±˜ô¦˜4¼˜©èCD¼˜ü“˜2”“˜ ³¤D#„Ϙ ½ å˜þüÔ—‘üˆ˜]ãÎ<ö—Ó×,å—$Œ˜ïç·÷îëÓ׋²Xå9¼<tÖ¹Qåç-©è‹¹!æ Lëš¼ëš\õš ­¤/lõš ›› 4—›% /J ’› DŒ›     ,   ŒŒ› ¶›  4²› % / J  ­› D§›, Œ§› Ñ› 4Í›% /J È› D›, ŒÂ› ì› 4è›% /J ã› DÝ› ,   ŒÝ›õ›ÿü­šÈüáš”!ÖšãÎ$¿šÍ™,Åšïçåš1Üë›¼Ø†Ž•-S<ì¼Ø×ßæ~¤�=¼Ø(07ÏõÞŽ¼Øy�ˆå @ P�»!1`Ç¢§ãÎ †ãÎ08(Çö¦ Ê Çû¦Í /éÏ; éÏFã΋¹þ “_iàÅ!°(Èý¦ Ç ä­`È¢§ Zä­ãÎ+7¨¼di¤¹ v{fk�È‚§Ï ¨ÏÁ´¹Æ!¼ÙÂÄä­Ìä­º¨¼ ¹þ ͹þ ÕøœØÈ!¨¼¤¹ %D¬¨ãΜ¬¨Dµ¨ é0Tµ¨+$Õ¨ Å™¨Ë?˜l„ªãÎô„ªt’ª ©£5„’ªüö©-lö© ¶M)üö©64¤ª—ŠHD¤ªDѪ     Ѫ@ !ÌÁª|Áª â u !йÁª  �%‡ã  D $) 5  HÔÁª m¨ËDðªãάðª4ùª‘¬!. $€« dùª°ºÚª �%‡ã Îõ?˜Îõ#àüåª ãÎT�« Å™¨Ë Ÿ« …üü§£ü쩳ü¶ªiŸ¥«‡ã d’¨ éÏL„¨ ãÎ-𩎠ƒ·ÚÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^Îõ¨Ë‡ã B¦­|¨ËëãÎÄãÎäÔbitÁÊñ¢$ºª Æ Ë?˜ÎõŽE hÐÉ!*ÊÊ!·øÊ!’—ŠiªÌ!ìÑÌ!Ë‘¬!S�Î!Ù˜Éï³ÚÀ †ÚÀ08(Éó Ð ÉȳÓ /µÐ;ôÏCÚÀˆµœ�\fÊÒ!­(Êʳ È ä­˜Êï³ Éä­ÚÀ,8¨¼ej¤¹ w|glŽÊϳÕ ©ÏÁµôϽÙÂÅä­Íä­»¨¼à µœεœÖùœÀÕ!¨¼¤¹ &üÇÆ'tÌÆ ‹$ÇÆ$ÛÆDáÆëÆüÌÆ"ôÆŠü÷Å}$¸ÆôÏ,†Æ¨Ë$�ÆÓ×D™ÆªÆ,ñ¢/âì2÷…6y¤Ö!Ýü–ä*”›ä �$–ä®äD³ä½äü›ä%ÆäŒü™ã­$‡äôÏ,µããÎÄãÓ×DÚãóã, %.âì1÷…5yŽØ!Ý<ó— ù—€˜�ü­—S$ä—ôÏ,½—Ó×LÄ—Ö—! _haystackÁ,÷…0ht䚤ޚøš‘ü›š]$ÏšôÏ,©šÓ×D°šÁšm(âì+÷…/g±ã¦Üß�Dä� �$ß�Dí�÷�´ä�>üß�B 4‡ž Œž& (M„þ�   4|’ž ÚÀüþ�# ï§ž’ü—�� $Ð�ôÏ,ª�Ó×D±�Â��Í1�Œ:åë¯TâìW÷…[”×Ü!öÌŠ¡4�¡ ‘$Š¡D–¡ ¡¤�¡>üŠ¡< d§¡ 4|·¡ÚÀü§¡’Ì¡“üÄ ˆ $û ôÏ,Õ Ó×DÜ í 3ÍÔÚžCâìF÷…JƒÛà!ˆÜ·¤D¼¤×Ü!$·¤DŤϤ´¼¤<4ë¤ ð¤& (M„⤠     4Ìâ¤,ö¤ ü·¤² 4•¥ š¥& (M „Œ¥   4  ÌŒ¥  , ¥   tÀ¥¤º¥ ü‹¥^ ü¹¥/ dÒ¥  4¬Ò¥,⥠ƒï¥”üí£‚$¨¤ôÏ,‚¤Ó×D‰¤š¤3Ošÿ�Œ³ºŽÙ>�ŒGòù€—+3:¬âì¯÷…³ì×Ü!ñ±ãïÌÖ¨4Û¨Ûà!$Ö¨Dâ¨ì¨¤Û¨<dÿ¨ 4¬ÿ¨,�© üÖ¨Ÿ  d¥©      4 ¬¥©  ,µ©  <Ï©  Õ©&  ü¤©Q  üΩ&  4ã© è©& ( M„Ú©  4ÌÚ©,î© à û©•üލí$ǨôÏ,¡¨Ó×D¨¨¹¨ÙR�¥¬Ý(07Íf�Œo!“âì–÷…šÓÛà!~ 4ø¬ ý¬&4ž­ £­& (üø¬. n„•­      4ü‚­$”‚­ á_"tÒ­ œÍ­   d÷­  üÍ­7   Uüä­ ”ä­úô!~   \Ž®T�® ÌŽ®­®–üœ¬‘üæ¬Çü°­}$׬ôÏ,±¬Ó×D¸¬ɬ\ê¬vËQ�ŒZäëT´­€—mu|øï”âì—÷…› word_beforeÁª word_afterÁ‡ úô!G±ã'úô!–ü¦± l«± –$¦±D¹±ñÜ«±ü¥±!̱—üÔ°x$–±ôÏ,ð°Ó×D÷°ˆ±˜'âì*÷….fÝù!Ñ üê¶Œê¶ ­Dü¶†·-ø½ê¶   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‚Ñ¢v{‡?˜üê¶ mü¥·Œ¥· ¬D··Á· -ñ¾‰· �%ôû!ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwëÝ‚Ñ?˜èý!v tø¿¥·  îû! Ö$ 0  ü¥·  mÌÒ·  ìÏ· Àœ‚Ñ ò· ˜ÀÄ·Þý!?˜èý! ¾:˜ ü˵§üضšov}×ü”·^rx~à ôû!ü§¶&ôÏ,ëµÓ×Dúµ“¶ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^èý!%ôû!b@š°�"Êôû!’>¡� ¹âì¼÷…Àû÷!\ܶÆ ±?˜èý!Ž‘ø!T˜· Æ ½?˜èý!Ž- £»û!2îû!¬ý!OÞý!îû!žÞý!¥4óÍ øÍ& Á«Î àý4ªÎÖ¹D¢Î;$üóÍÈ  ü�Î"Œ�Î è|¡Î%* ü‰Î( ?˜V àÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‡ üŒÏŒŒÏ»û!DžÏ¨Ï  +LâÎ Àœ‚Ñ,å΄ÛÎøÃŒÏ  îû! ~  $  0  üŒÏ  m rÄ«ÏÞý!?˜èý!˜tÛÏœÖÏ Å–Ð Ìý4•ÐÚ¤D�Ð;$üÖÏÐ ìÿÏdÿÏ ç|ŒÐ$)üùÏ#Jà“†",ü÷ÐŒ÷Ьý!D‰Ñ“Ñ+LÍÐ Àœ‚Ñ,ÐЄÆÐøÇ÷Ð  îû!~$0ü÷Ð m frÈ–ÑÞý!?˜èý!˜\³ÑTÂÑ̳Ñì°Ñ Àœ‚ÑÓÑ ™ ü÷»ÜüáÍò½ÄËüÅÏŽÎÔÚ ôû!üÚ¼&ôÏ,ž¼Ó×D­¼Ƽ\å͆řǙș­É™Ê™àË™óG*¤�R{9 “†"3Ó׉‹²±4ÐÎ$Äΰ�"+ôû!›ÅTÉϧ¾–�")Ó×É•§4»Ð$¯Ð°�"}ôû!íTáþ CâìG÷…Lû÷!RÆ Œ?˜èý!ŽÖ‘ø!ÚÆ ¢?˜èý!Žì - Ö¹Û½…"•»û!Ìîû!lÞý!s±ãÝÚ¤“®Š"M¬ý!àîû!€Þý!‡ 4ÛÔ àÔ&4�Õ †Õ& (üÛÔ. n„øÔ      4üåÔ$”åÔúô!] tµÕ œ°Õ   dÚÕ  ü°Õ7   UüÇÕ ”ÇÕúô!~   \òÕ T�Ö ÔñÕ    ‘ÖšüùÓ˜üÉÔÈü“Õ~$ºÔôÏ,”ÔÓ×D›Ô¬Ô\ÍÔ�òx�Œ� T—Õ©À–ž¥!�âì’÷…–û÷!›‘ø!o üúô!U±ã7úô!¦ 4•Ù šÙ&4»Ù ÀÙ& (ü•Ù. n„²Ù      4üŸÙ$”ŸÙúô!] tïÙ œêÙ   d”Ú  üêÙ7   Uü�Ú ”�Úúô!~   \«Ú T»Ú \ºÚÔ«Ú    ËÚ›üµØ–üƒÙÈüÍÙ~$ôØôÏ,ÎØÓ×DÕØæØ\‡Ù¬‡�Œ�!TÑٸϥ­´0–âì™÷…�û÷!¢‘ø!v úô!l±ãNúô!½üôߌôß»û!D†à�à+øÉôß  îû!I$0?˜üôß mü¯àŒ¯à¬ý!DÁàËà +˜Ê“àÞý!?˜èý! ¾øË¯à  îû! v$ 0  ü¯à  m\Ýà oÌÎàÞý!?˜èý! •ÔÜà   Tìà 1 ôÙà Àœ‚Ñ ýà  œ üÏÞ®üâß›LSZ²üžà_ÖÜâ ôû!ü±ß&ôÏ,õÞÓ×D„ß�ß°�"[ôû!–Ï'°�"·ôû!TŽ< jâìm÷…qû÷!\æßÆ @?˜èý!Ž¥‘ø!T¢à Æ Ó?˜èý!Ž U»û!fîû!;¬ý!ÜÞý!Iîû!‹Þý!’ü¢æŒ¢æ»û!D´æ¾æ+øÍ¢æ  îû!I$0?˜ü¢æ müÝæŒÝæ¬ý!Dïæùæ +˜ÎÁæÞý!?˜èý! ¾øÏÝæ  îû! v$ 0  üÝæ  m\Šç oÐüæÞý!?˜èý! •\™ç  ÔŠç     ô‡ç Àœ‚Ñ «ç  � üÿä¬ü�æ›LSZ²üÌæ_ÖÜâ ôû!üßå&ôÏ,£åÓ×D²åËå°�"[ôû!–Ï'°�"·ôû!TŽ+ jâìm÷…qû÷!\”æÆ @?˜èý!Ž¥‘ø!TÐæ Æ Ó?˜èý!Ž U»û!fîû!;¬ý!ÜÞý!Iîû!‹Þý!’4Ûê àê&4�ë †ë& (üÛê. n„øê      4üåê$”åêúô!] \”ë d“ë ¥ëžüÕéÐüÉê\ $ºêôÏ,þéÓ×D�ê¦ê\Íêšït�Œ}«^âìa÷…eû÷!j´úô!tÂîdçî   ü½î7 UüÔî ”Ôîúô!~ Tÿî \þî �ïŸüÍíÂü îo $‘îôÏ,ëíÓ×DòíƒîT¤î+B '£VâìY÷…]‘ø!b¬±ã¥úô!4Ôö Ùö& ÑŒ÷ àý4‹÷Ö¹Dƒ÷;$üÔöÈ  üðö"Œðö½…"|‚÷#( üêö( ?˜T à“†"7 üí÷Œí÷»û!Dÿ÷‰ø  +LÃ÷ Àœ‚Ñ,Æ÷„¼÷øÓí÷  îû! ~  $  0  üí÷  mp rÔŒøÞý!?˜èý!˜\ªød©ø„¦ø Àœ‚Ѽø  ü—ó¥üÂöú•›¡Ýôû!üþó&ôÏ,ÂóÓ×DÑóêó\Æöä–�"LÓ×¢‹²Ê4±÷$¥÷°�"–ôû!0m �âì’÷…–û÷!›Æ „?˜èý!ŽÎ!Ö¹U½…"»û!˜îû!8Þý!?tþÿœùÿ Õ¹€ Ìý4¸€Ú¤D°€ ;$üùÿÐ  좀d¢€®Š"|¯€"' üœ€# ?˜S à“†"7 üš�Œš�¬ý!D¬�¶�  +Lð€ Àœ‚Ñ,ó€„é€ø×š�  îû! ~  $ 0 üš�  mo rع�Þý!?˜èý!˜T×�\Ö�|Ó� Àœ‚Ñè� ¡üÂü¦üèÿ€•›¡Ýôû!ü§ý&ôÏ,ëüÓ×Dúü“ýTìÿÑè–�"SÓשɕÑ4Þ€$Ò€°�"žôû!8u'—âìš÷…ž‘ø!£Æ Œ?˜èý!ŽÖ)±ã­Ú¤c®Š"¬ý!§îû!GÞý!NÍˆÚ (ÍƆ‚ÑÁ»", †Íù†(Î͆ Êä­Îù†"¨¼OT±Ç afQsÎÒ†Ü ŽÏÁšÁ»¢Ùª䭲¨¼  ô¨«ô¨³Öœãí¼È"¨¼à±Ç Ä£@„£@ ‰óëªÆ4´@*üŒ@0´Œ@ ¬¾ÓN%ü‡@6 ¯óëªÆÃ@·üÙ?jÝÑTò?ªÆ4ä?ŸŸ öãó‹¤ô‹ljô²ßk#¾Ó½‡Â¾ÓûÅ¡`ƒ›É"ÍÉ"ðü•HCÔ•H ŠóëªÆD½H4ÇH2üþG[´þGÍÉ"PüùGa ¯óëªÆàH¸ü°G°ÝÑTäGDÅGªÆ4ÖG¸Ê"ƒ¾ÓÄÀÛ'Å¡+XÊË"ñÍÉ"¾ üýN! ´‡O¬ˆOË ££¤П§ó¡ C‚-Ž-kÔ›ͶͶBÿ‡LýN ¯Ͷ¶Î"|®³DòN øNà4‚P ôëOœëO ¸óëªÆ ÿOJ 04ÇO Œ½OL½O ·óëªÆC )ðPü†Lê ïP0Ì~¹SüîN¥ ÝÑT¿LªÆ4±LªÆÛSˆƒ/ýÍ"<óNªÆ^¢Å¡G¤–ÐÐÎ"|ÚÏ"t²Ð"#ªÆâü“N$ü“N" ­ü“N5¸N º_ù ù ú ¬ü óÕ  >¨WTÑp™Y�7�7œÃž7½ Ù6wQ?mˆ!؆½’Ó"Uÿ»?˜ùÓ"\¼N„¸Nü“N:ÉN ¶_ÇÓ"×$ÉNßN¼üúMeͶüM ¼ͶUÿ/ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÇÓ"‚ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw’Ó"ÇÓ"íêÒ"ŒÓ"÷ÄÔ"F<ÀNÂN ¼  ÀN,ÂNÇN½¥¿NùÓ"»’Ó" ½N¤ Ú—×"~4ÑX¸Ê" ÀÀ×ÿ¿ µÃ¡¥µ´]8"»Oÿ¾Ó®®«°¿ ”3¯f*²Û�¾Ó ¾Ó™é� ¨ ¶¿¨¾ÓÏá  ð  ü ¨¾Ó¼ÇX ÆóëªÆäX^ é� n  }  Š� ªµÄ  ÓdÑXØX ŽóëªÆ,ØXÁü”XPÆÆÇ�¯Ëó® V ÜÞAçƒóëªÆœ©X ÝÑ,ŸXšš�¯ž•­áŸ�á ±µáQzÆ%þ�çóëªÆå ¾ÓÓ¸Ê"m¥Ù"ué� ìôü é� #*1Ì+ƒÜ"m4„Z Ìä­¬öY\øY åg öY9œøY/<’Z¸Ê"¨¼üöY$,ŒZ ËdHtŒZüöY-4›Z ÒdND›Z©ZÅü«Y~ ÏÁŒÚYúÜ",²YÙ ¹Y ¾d¾d DebugTupleÁÁdñ�dÂdÇ �dÃdä�dÄd empty_nameÁ�d“(5&àç:ƒá"r…á"{ä­�¨¼Q ¸Ê"]·œºç•ß"Ä™â"¨¼’ùß"r«à"G4Ü_šš�¯ž•­áŸ�á ±µáQzÆ%þ�ç¬ðÜÒìÆ_¬Æ_ §¬ðÜÒ†*ê_Ðü–_T»_ÆÆÇ�¯Ëó® V ÜÞA烬ðÜÒ$¡_œýâ"Æ€ xâã"Ä4�aýâ"t�a,ˆa ¥¬ðÜÒ7<ˆa•aÖüá`4 ¬ðô` ©ä",ê` ýâ"…?Æå"Œ4¥býâ"”¥bL¬b ¦¬ðÜÒ8\¬b½bÛüùaD ¬ð4”b ©ä"L†b ýâ"†?ôæ"Œ\€d Í ä­Ôòc\ôc•ß" òc5Äôc+<“dýâ"¨¼üòc),�dùß"uBt�düòc24œd«à"BDœdªdàü§cƒ ÏÁŒÖc“æ",®cÙ µcƒá"’ƒá"ù…á"ä­#¨¼Û æ"ãGœJx•ß"E æ"¨¼ùß"÷«à"Ñ8ÁùÔ·™e éÔ·e ¾ùÔÕúeß Å™Ç™È™­É™Ê™àË™óG*¤�R{9  Ͷ BÿÉë"nžùÓÇg�aÝ ®®§°” ¨³¤²šè;áÓÙga[Üß Éë"Éë"_Á<æ� Î ÿ`ÿ`V�a¬â`½68ŸœRtŒû� “�üæ�'Lî� ¥ } ø�Nüî�L¹” Á”&ùØŽ"`ùÜŽ"`¨�üÜ”-Ï+ä­3ù×ñ@`á×ñ`ºò V#Ô˜eÞ ùÔÔDeüÛ�Ù,Å�Ìí"€ú” >æ{Êݽ¥ $ß�Z¨î"[¨�ãºò ¯ùÔðe éÔðe é18ùÔ¦®e  à Îë"�ì"Uÿ1Éë" Ô¿eùÔíÔeùÔ‚!­e  â îñ"%Éë" Ô›!eS ÔÀ$eùÔÛôeß Éë""'à îñ"õâ îñ"ªX_Á¹Ô¿#eã ùÔ¿#ZeYÔ×#e –g Þ ;ÁÔã#eÙÔý#e§ô" ùÔ×#BeÔ¯$eâ C�ì"Ôœ!e Êó"`řǙș­É™Ê™àË™óG*¤�R{9  ͶÁÔƒ!e �g�gStorageÁ�g�ûf‘gƒûf§~Ÿ½[l(Ú>__rust_std_internal_initÁu0œô"d(ÙÁ™ Ð ä­Ùû™óë#¨¼PU±Ç bgRtÙÆ™ê �ÏÁ› ÿÒ¦Ù®䭶¨¼¤ Dz¯Ç²·Úœçñ¹ø"¨¼ä±Ç ü¿À,œ¿ÀÊË"|ÓÀõ4äÀ5õÀ‰ü†Ào¾ÓT¦ÀªÆ4˜ÀÅ¡3nõÊË"–|€Ø‰Ø ïD€Ø �Ø4‰Øüí×#”í× �Cä ä å ÎÆç óá �Éœ2ÌÛŸŸ²6²6¨´6”  6µ6poisonÁ 6¶6¹¡ 6M‹3àT—r…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅà… ½‡(é4ªØŒªØD±Ø ŸC�û"½‡2T±Ø Ý§Ø ¶ý §Ø à§Ø ö¶J$ øàžØi@  OTÆ· ` in  z  �4ÎØ¹Ú¾ ©Ú¾  ŒCà…  &Œ±Ù цšü Ù#„ Ù • F $”äØTäØ Å6Žü"Ÿ 'ìÚØ ä Áû"üÎØ*$ÕØ ‘M�û"½‡þD üÕØ#$ñÙ Å™óë¬áÙ|áÙ š2řǙș­É™Ê™àË™óG*¤�R{9 óë~ l4¥Ú4­ÚüžÚ) öóëªÆÑÚ ÐÚüˆÄÉKŠüÜ×õªü”Ù½üÑÙ€¾ÓTÃÄD¤ÄªÆ4µÄ…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ�û"½‡Tà×ðürðü¯é öƒ#ðü˜Ͷ¡‚窀J öƒ#2�û"|Áû"±Žü";Îí",˜Ù#†š,“2“2 UnsafeCellÁ•2�ñ.ç–\*=°"�µ�#LÕÙµ�# ªÆöƒ#ÀÛ]Å¡aƲ&�‘ Ô²´á²l ¼ú"k‡û")„ý"1ö¶ÒÆ·Ù•ÿ":çÿ"ë’€#ÇÛ€#…¯�#8öƒ#yªÆ€L˜ä ŽóëªÆ Ôì"Ęä$¢ä ¿�óëªÆ Uÿo?˜°ˆ#D§ät¢äTÊäÎí"ŒÚä “�üÊä"$Õä Ÿ G7¼Õä|ýäTúæ Îí"|‹ç  Ò†š Œœç “�üúæ4,…ç    p ` <ü…ç)ÄÇç\Ìç “óëªÆ$Çç4ØçœÌçäûçD€è �óëªÆ$ûç4‰è,‘è¼€è¡èŽüªÜ÷ ü‹ä–ü¾äã ‡Ý"œÆÜÞÝ",¼Ü4�ä�ˆ#x,ÂäÌí"üú” ð°@Ìí"ž‘†ššú” zmàpÔ²iÀõÝ Ôì"§ˆ#Ἁ#TäŠ#³›‹#‚Ù‹#K09Ý Ôì"HWŽ7�ˆ#uÔì"~†‹Ý Ôì"¬ä¯ä�H«ä°ˆ#_†š¨äŽ- 2üÜë¦ 5 4 Œèë цšÔßë TíðÎí"Œžñ  цš |Åñ  Ò†š „êñ “�Œ�ò “�üíðÇ„øð £ ¯ Ÿ { WGüøð¼Éò\Éò,Íò °_0<Íò1 l†õªÆ|†õò‹ +?˜ (¬�õ5  Å™óëtêôÜ…#¤êôùô  2µ�#4+,ùô¬éô5%=é� 4> =B?K¨µ�#[m@ >?|A@ˆœ A¦¨µ�#>-½5ÅÐ8é� ß9 8í:ö¨µ�#; 9:)<;6K <V¨µ�#9,\§ööƒ#Œ§ö³ö éC�û"½‡8 ,³öÔžö#  4  á»ù ¶ý »ù ¾ù ä»ù  ‘P¶ý¶ý¼¸ý‚¹ý’}£²ËJüü ‘ [`øä²ùÓ }Œ‘ ÆQž™#£«°¼?˜\èù$öƒ#Tóù ‘ýöƒ#$5Dôù#.lÆ€3ªÆ|Æ€ò‹ 3+?˜ 2(¼èù"#Áû"üèù"D€ú Ì6Žü""5!T€ú.%!üâù(%%,Ìú&!¯›R›R©žRlockÁ 6ŸRàú" 6R¤KíÊ6çŽü",Öú4  & îú6!6!"\•û›û àCà… ½‡(,•û'),›û5*'\‡û*,Œû+'àà… ¼¾û\Ãû ”óëªÆ$¾û+,Ïû0)”Ãû,‰ý4 - \„ý$„ý öêœ#-A,)&l¶ý0ªÆ|¶ýò‹ 0+?˜ /))Ì­ýD­ý¬Œ /H.)!¼ßý\äýõž#$ßý.,ðý1)”äý̽€D½€¬Œ 2ë1!ü¢€5¬§€ •óëªÆ$¢€1Rü§€0 „þ4 ?˜á€üØê‰) PV ê"êœ#)H()s�!!)†4Ž?˜ Í!#Û7!è7#$Ö å4&ö 4 ( •õ 5 *àHé� ðI HÿJ §µ�#-KI:ML KJ]MLl M /{Bé� ‹C BšD¤§µ�#µÈECÕèF EDøGF  G . f5oÄÉõ\Îõ›‹#$Éõ4ÚõœÎõm } +u'…'�ÎüãðŸü�öÒ üÒù³”Éúü¡ûGü¡ýdN‡Ý"œºëÞÝ",ñê4„ë,Ÿë! R †š[ ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwçðÌí"t g †šp O †šX ú” 8 ú” , É  †©#æ µ�#Z óë� à“ °  µ�#1  Ü…#T D“öš â„#º y ž™# ž™#H ž™# řǙș­É™Ê™àË™óG*¤�R{9 `  ž™#l  êœ#LÖùÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwêœ#Ñ8Ó8Ô8PoisonedÁÕ8óÖ8×8 WouldBlockÁÌaú† tiàêœ#¯ Áû"Ò �û"U â„#u 4¡úêœ#”řǙș­É™Ê™àË™óG*¤�R{9 à… C Žü"O êœ#:"à… ¢êœ#Ïà… ,¥ýóë}à“ �à… óëÞ à“ þ ¸§íõé� ~ † Ž – � é� ¦ ® ¶ ¾ Å é� Î Ö Ý ä ë ò é� û   (à,Ô²1resÁÎstack_idÁV�@ ‰‰Ð ‰‰Ž &�¦ +��.Ü—’# è’#¾ò‹ n²”#µ�#Ù›‹#¥ç—#b ˜™#· Ÿš#¾ …›#Ö ò‹ “ —œ#V „ž#o õž# ÖŸ#« ò‹ p ¬Œ G õž#& ¬Œ øΡ#×Т#§ �¬#Ð �¬#× êœ#¸êœ#¿µ�#®4ø‚ L�ƒ ‘óëªÆ�ˆ#Ä�ƒ$‹ƒ ¿’óëªÆÁˆ#[?˜°´#D�ƒt‹ƒ\¿ƒöƒ#Œ¿ƒ˃ç—#.,˃Ô¶ƒ# 5 (廉 ¶ý »‰¾‰ (軉 ˜™# T $  øè²‰‡A  PUŸš# a jo { ?˜\é‰öƒ#Tô‰…›#+Dõ‰ % ‹¼é‰Áû"üé‰"D�Š—œ#/ T�Š)üã‰( ,ÍŠ¯êœ#,׊ ïŠ,Œ‹ Œ�‹$‡‹ ‘Mà… ½‡,�‹M\‡‹ ¸‹Ëü€ V†‹Т#v  ëû ÄÕ‘¤üô‚Ïü§ƒœ°üÓ‰æ”ÊŠå‚ÞÝ",Ђà… ,ׂ‰�ˆ#iD«ƒèâ„#О™#Wž™#žž™#i¡«#rî«#{Qêœ#L׉�¬#–º­#¶Æ­#ûâ„#4¢Šêœ#z¼®#È®#à… Tƒ‹û�ýà‰³°#ü�; ‰‰¼‰‰ :ŸÝ Ôì"§´#Žç—#&˜™#ƒŸš#Š…›#ãà… ¾—œ#žø¹#îêœ#¹êœ#ÀТ#�¬#N�¬#Uà… ö"Ý Ôì"1@‘ñ�ˆ#^Ôì"gotÝ Ôì"•ƒ˜ƒ’E”ƒ°´#\†š‘ƒŽ- |\ˆ� Àœà… üéŒ< šóëªÆ,ž�¯�“üŸŒ�‡Ý"œÇŒÞÝ",®Œ4µŒÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwà… èpàs£LüŽ Àœà… üÝŽ: šóëªÆ,��¡�”ü“ŽŽ‡Ý"œ»ŽÞÝ",¢Žà… ,©ŽùÂ#—�!RLå‘ Àœà… üÆ‘9 šóëªÆ$ù‘‰’•üò�—‡Ý"œ¤‘ÞÝ",‹‘à… ,’‘ùÂ#—�!R4¾“ Ìä­´¯“d±“öò ¯“9¤±“/DÝ“  Óä­dç“ öƒ#  ¨¼ü¯“E,דõó” ] Jìד<Œ”  Ôä­\•”Îí" ¨¼ü¯“r,†”õóŠ ] J܆”\¹” Õ ä­|Ɣ܅#¨¼ü¯“§,³”õó‹^Kü³”#ü¯“Á4蔯ôODè”ú”™üÜ’žÏÁŒ�“ÞÝ",ã’Ù ꒑õ¥‘õ‘õš‘õ“õ(ä­Kä­þ¨¼ïâ„#øä­§¨¼˜Ìí"¡ä­P¨¼Aت#J�œŸÐöò­â„#¨¼cõóBÌí"¨¼õóáت#¨¼¡õó€¯ôQTú�ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwŸŸ öãó‹¤ô‹ljô²ßk#¬ð½‡„ô�À ꢦÍ#€1Ýñ]Œ½¥Ö†š9Ýù]‰Ýð] AÝ‘]†šIÝ›] †šIݾ] QÝË] ¹Ý¾]    ,šž¦Í#¯õÍ# ¤ž ÀÀ×ÿ¿ µÃ¡¥µ´]8"»Oÿ¬ð®®«°¿ ”3¯f*²Û�¬ð ¬ð•é� ¤ ²»¨¬ðËÝ  ì! ø  !¨¬ð ùÝ÷!] ±šáÝÛ] Å™ÊÝùÝ›]]ùÝ› ]÷Œ  !ݼ]QÝÂ] YÝÎ]XBœë¥ öö¡­ùÅ¡áúƲáûÔ²áüá²álL³_Òj¯»¬ðÜÒs“2“2æ„#•2�ñ.ç–\*=°"�řǙș­É™Ê™àË™óG*¤�R{9 ¬ðÌë¥ÿ¥  2´Õ#,ÿ¥äé¥é�   )¨´Õ#9K Zfz „¨´Õ# üé¥8„�¦ ýW†æ"üé¥%”�¦2 ²¦ ̦ô'é� ( ')(2* )?J+*Y + <"é� L# "[$#h{% $ˆ“&%¢ & ±Á öK4†¦ ðW¬ð!D†¦¥üÅ�‡ t—žüæ¢ÍùÝ�‰]ùÝìŸ],†æ"ã� æ",Ù�L—ž õÍ#�sòŽ +†šf†šN†š1†š$ñÛ� !Ýð]lº� ’†æ"qřǙș­É™Ê™àË™óG*¤�R{9 †æ"¡ ´Õ#h ´Õ#¡ …Õ#¨õÍ#|”Ô# èÑ#Žé� £«³»Âé� Ÿ§¯·¾é� ÇÏÖÝäé� !(/6¼¬BŽ-)±� ÐÅ� Ç ¦� O÷Œ �Ö#ÉÁÚ#çÛ×# T槦Í#„à§+ Û¬¦Í#€1àñ]Œ®¯Ö†š9àù]‰àð] Aà‘] †šIà›] †šIà¾] QàË] ¹à¾]    L†¨¦Í#¯õÍ# ”¨ öÐ#·Ñ#èÑ#)é� 8 F O¨¬ð_q!  €"!Œ  "ª¨¬ð ùà÷!] ±šáàÛ] Å™ÊÝùà›]]ùà› ]÷Œ !à¼] QàÂ] YàÎ]XBœÜ¯”Ô#…Õ#Ìܯð¯�Ö#@,ð¯äÚ¯é�   )¨´Õ#9K Zfz „¨´Õ# üÚ¯8„€° ýW´ç"üÚ¯%”€°2 £° üà§Ó½°(é� ) ($*)1D+ *Q\,+k , #é� $ #&%$3F& %S^'&m ' |�  _4÷¯ ñW¬ð5D÷¯¦ü¥§˜ ”ƒ¨ü׬Íùà�‰]ùàìŸ]-´ç"4˧Îç"L½§´ç"»lƒ¨ õÍ#gJòŽ †š=†š%†š†šûÈôêÛ� !àð]°º� Ö´ç"ŽÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 ´ç"¾ ´Õ#…šÝ#µ¥Ý#çõÍ#N”Ô#èÑ#`é� »ÃËÓÚé� px€ˆ�é� ˜ §®µé� 19@GNÀ¬Ž-û±� ¢ Å� ™ ¦ŠS÷Œ C�Ö#ÚÅé#ÿËæ#$üÉ´"äÉ´ Æýâ"$æ´*$ù´tù´ ê"ï­ï­ ManuallyDropÁñ­�¶„Ÿ~ Á$ýâ"i_f<þ´ ¨¬ðÜÒ˜Lþ´’µ§ü™±ùüº´Xűýâ"$«±Àï#D¾´äÎç"ì Àï# Æ€ 4Æ€ 7oþî#dºï#* ð#1 |ú¶¦Í#Œ�· ֆ𴋷 ÀœõÍ#üç¶;”ç¶ ô¦Í#~D+0üá¶AS ,ÏÁ €1áñ]Œ×ÃÖ†š9áù] ‰áð] Aá‘] †šIá›] †šIá¾]QáË]¹á¾],¸·¯õÍ#d°º   µ» L‰»”Ô#,�» Ô‰»L“» ‘¬ðÜÒG 7  „“»ùá÷!] ±šááÛ] Å™ÊÝùá›]]ùá› ]÷Œ !á¼]QáÂ]YáÎ]XB|†Ä”Ô#Îí"Œ£Ä “�ü†Ä/,–ÄäŠ#V ,œÄ< ü–ÄàĨü½¶£üµ·�üËÁýùá�‰]ùáìŸ]Ò¶Îç"Lȶ¦Í#5 ¦Í#¡¦Í#kœ†š¥Lµ·õÍ#?,ØõÍ#ò4òŽ ò†š-†š†šø†šë¸äÚÛ� !áð]Öº� übÌí"©ú” ‹”Ô#è”Ô#ðù�Բ㠱� �Å� ‡¦ˆŒÛò#võÍ#ÿõ#ß÷Œ {äŠ#ýtæÅ<ëÅ ð#$æÅLëÅÿÅ­üÅÅ:×ÅÎç"LÍÅb7 ð#\ÛÇ Í ä­ÜÌÇdÎÇöò ÌÇ9ÌÎÇ/4ÿÇ ×ä­T‡È ”Ô#  ¨¼üÌÇF,ùÇõó”] JÌùÇ<ªÈ  Øä­\³È ¦Í#  ¨¼üÌÇs,¤ÈõóŠ ] JܤÈüÌÇ�4ÑȯôMDÑÈãȲüýÆæÏÁŒ¬Ç æ",„ÇÙ ‹Ç‘õ£‘õ‘õ¢“õ«ä­Îä­�¨¼r ”Ô#~ä­-¨¼ ¦Í#*œ�²öòÙ€$¨¼Ñõó°÷€$¨¼põóO¯ô"â_#î (âZ#°Õ °Õ#-æÆ"XâÆ#(ãa# Ù ä­XãÆ# Úä­*6¨¼af¤¹ sxejŠãf#ð £ÏÁ¯…‚$·Ù¿ä­Çä­·¨¼¿¼È"Çô¨Ïðœý¼È"¨¼ý¤¹ $‰# Å™°ÕŒ#»üÄÈ#řǙș­É™Ê™àË™óG*¤�R{9 °Õœ #æƒ$ï#  æñ<ˆ#¦ÀE�256ÁXðƒ$"(ðZ$ ñ ð_$ö +ýÕ7 ýÕBц$y ц$„^h †ц$§(ña$ þä­Xñƒ$ц$"¨¼MR±Ç _dQqñf$ø ŠÏÁ–©‡$žÙ¦䭮¨¼ž ¼‡$©¼‡$±Òœß髉$¨¼Þ±Ç ü$ç$ Å™ýÕƒ$Êü¥Þ$řǙș­É™Ê™àË™óG*¤�R{9 ýÕ|‚$æƒ,Ð$ï…$<ê$_kindÁÀE‘ò‚%(òZ% ù ò_%ý +ÍÖ7 ÍÖBké‹sZdÇŒ�(óa% Ûä­ó‚%!¨¼LQ±Ç ^cPpóf%ÿ ‰ÏÁ• Œ$�Ù¥䭭¨¼�£�¥é‹­ÎœÛå£�¨¼Ú±Ç ø$Ö% Å™ÍÖŒ%Ûüšò%řǙș­É™Ê™àË™óG*¤�R{9 ÍÖt÷%æƒ,Å%ï…$<ß%–Š$ÀE�÷À %÷Ä %(÷— % €!÷œ %…!0�×< �×G’鋚鋇nxÇŒÆÇŒª(øž % Üä­øÀ %¨¼øÄ %!¨¼sx ég‰ŽzY ø£ %‡!º ÏÁƬ‘$ÎÙÂÖä­Þ¨¼Íé‹Õ¨¼·£�¿é‹Çœ(鋨¼£�¨¼ý’$G$š% Å™�׫%äüÝ Î%řǙș­É™Ê™àË™óG*¤�R{9 �×|º %æƒ,ˆ %ï…$<¢ %–Š$ÀE�üù%üý%ü�%(üÐ% ˆ!üÕ%Ž!3ù×? ù×J·é‹¿¤é‹¬‘é‹™€ŠÇŒúÇŒÞÇŒÂ(ý×% Ýä­ýù%¨¼ýý%¨¼ý�%   ! ¨¼™ž ëg¯´ ^ËýÜ%�!å ÏÁñ—$ùÙÂä­ ¨¼ú鋨¼åé‹í¨¼Ï£�×é‹ßMœ[f鋨¼[鋨¼?£�¨¼#Ι$�$×% Å™ù×™%íüšÿ%řǙș­É™Ê™àË™óG*¤�R{9 ù×|÷%æƒ,Å%ï…$<ß%–Š$ÀE��_&”!(�Z&áØ áØ#-æÆ"X�Ò&(‚a& Þä­X‚Ò& Úä­*6¨¼af¤¹ sxejŠ‚f&–!£ÏÁ¯³�$·Ù¿ä­Çä­·¨¼¿¼È"Çô¨Ïðœý¼È"¨¼ý¤¹ $¸& Å™áØ•&üüæ¯&řǙș­É™Ê™àË™óG*¤�R{9 áØtÃ&æƒ,‘&ï…$<«&–Š$ÀE��_'š!(�Z'®Ù ®Ù#-æÆ"X�À'(�a' ßä­X�À' Úä­*6¨¼af¤¹ sxejŠ�f'œ!£ÏÁ¯û¡$·Ù¿ä­Çä­·¨¼¿¼È"Çô¨Ïðœý¼È"¨¼ý¤¹ $‡' Å™®Ù‹'‹üÈ Ã'řǙș­É™Ê™àË™óG*¤�R{9 ®Ùl¤'æƒ$ó 'ï…$<Œ'¦ÀEŒÀ�Ý)(„K„KK‡Kí ä7ˆKõÙä7‰K«ä7ƒ¢3à6ú�¸½‡hm †­¦$‡h�™*(¨�Ê*((�á(( �!�æ((¢!3ûÙ?ò¯G­¦$ ­¦$*¥ç› ­“†š›‚Œ�§$e­¦$­¦$o±…ꖳϭ¦$�å(( (žè(( à ä­ÀžÝ)( ä­­¦$*¨¼hž™*( áä­ ) ¨¼¨žÊ*(  âä­ *  6  ¨¼×ÜžÇ éîÚß©® y ~ží((¤!/ÏÁ<ò¯EÙÂNä­Wä­G¨¼P¾¨$Yä­'¨¼0ç› 9ä­¨¼äÈ †š#»œÉÔ¾¨$¨¼Éç› ¨¼˜äÈ ¨¼hžÇ ýÔÿ;(\ÿ;( Ææñ$‹<(<‘<(-ü£<½( ¬æñ´Ûó¯Uÿï…$üÿ;â(Dš<( ˜X´ÛûÙ¬æñ�®$�®$šmüš<Ç(ç=(ªüŽ;Ù(ó¯Œã;(æƒ$²;(ï…$<Ë;(řǙș­É™Ê™àË™óG*¤�R{9 ´Û6¹®$ ¦mÀEpžÆ­$k«®$<ß<(ï…$tß<($ç<( ìwæñ04ç<(üß<((î<( ãQ�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫæñ­æñ æñUÿ¶?˜ݱ$¤ò<(Ìî<(üß<.(ˆ=( üRÌŠÌŠ̵ÏŠ�Њœ“D^)c˜þOþ‹±$ݱ$,ˆ=(üß<;(LŽ=(Û‚ † ˜=(dŽ=(ü¨=.(´¨=( ®4¿=(tÇ=()à=(¬%üº<¦(ó¯«<(¹®$F´Û4¤<(t¾<(Ͷ+µ²$Þ‹±$ï…$}choiceÁ?ÀEæï…$‰¾V¶ذ$`…±$;¯²$˜Û‚ /ܳ$ù _ref__needlesÁTö<(4ø<( ¥æñ³÷ ö<(Dø<(„ö<(†=(­'õ<( ݱ$@ï±$ ó<(Ó×}˜gñµ$œ±ãr¤ÉY(DÉY( Éò›$ÒY($ØY(,1üÉY,(DëY( ðWTëY(üŒZ!( ²ò›  ííLiteralÁ¼ïexactÁ¼ßš­]ÎØ¾)ó¯Uÿ‰ÈüÉYe(DƒZ( ˜X¡¸$ûÙ²ò›œ¸$ñ¸$á¾üƒZ+( ³Z(´Z(üÎXæ(°ó¯Œ­Y(æƒ$ÿX(Íœ$˜Y(řǙș­É™Ê™àË™óG*¤�R{9 ¡¸$§ ääSeqÁåliteralsÁ¼D~„d Wý'ÿº$0š¹$Ò‰ÈÛ¦À�™Ä ·$pà·$8Œ¹$“ÿº$Mÿº$T$¢Z(‰ÈÔ“Z(t“Z( ª¤¸$>$¨Z(+­Z(²–ó¯’Z(š¹$­¡¸$$�Z(æƒ�‰ÈÈlitsÁ!¦¾‰ÈóÛ¼$« _ref__kindÁD¼d(­¦$ì¼d($Åd( º­¦$1DÊd($Ôd(¤Åd(éd(³üìbý(„³dŸc(ò¯,øb(Ó×Dÿb(°û$�c(¾¨$™'âì+¸ë/g³¾$¼Dóq(­¦$üóq(4üq( »­¦$2Dƒr($�r(´üq(¢r(´ü¡p�(„³dÖp(ò¯,¯p(Ó×D¶p(°û$Çp(¾¨$š'âì+¸ë/g‘À$½D·t(­¦$¼·t(dÀt( ¼­¦$1tÀt(Þt(µüƒsÛ(,¡s(ò¯,—s(¾¨$v6îÁ$}œòv(•w(¶ü¼uÙ(,Üu(ò¯,Òu( .dô€(��(·üÆÊ($ß(ò¯,Õ( -D©Ž( Þ"×Ú,«Ž(%|©Ž($²Ž( ¹£ÛI4²Ž(¾Ž(Àü€Ž>(ä­d’Ž( ×Ú,ˆŽ(猖<½Ä$³ìÄ$�DÃ�(½Ä$,Å�(ìÃ�($Ì�( º£ÛCDÑ�($Û�(¤Ì�(æ�(ÁüýŽi(„³d¬�(´Å$,…�(Ó×DŒ�(°û$��(猳*âì-¸ë0k½Ä$ì¬Æ$ÌDí�(½Ä$,ï�(üí�(4ö�( »£ÛDDý�($‡‘(´ö�(’‘(Âü¥�m(„³dÖ�(´Å$,¯�(Ó×D¶�(°û$Ç�(猴*âì-¸ë0k½Ä$í¬È$ÍDû‘(½Ä$,ý‘(¼û‘(d„’( ¼£ÛCt„’(˜’(ÃüÑ‘G(,ë‘(´Å$,á‘(猌8½Ä$©«Ê$‰4ý’(½Ä$,þ’(œû’(<…“( ½£ÛLû’(L…“(”“(Äü×’=($ì’(´Å$,â’(猎7½Ä$«çË$‹(Ÿ·�(/XŸëž(‰Ç°Õ % †°Õ7?8ŸÑž( š°ýÕ % †ýÕ 7?(Ÿ½ž( äɮ٠% †®Ù 7  ?0Ÿªž( ³ÉáØ % †áØ 7  ?8Ÿ•ž(íÈù× % †ù×7 ?8Ÿÿ�(¯È�× % †�×7 ?0Ÿê�(úÇÍÖ % †ÍÖ7 ? ¥!Ÿ»�(6 ¥!$U ¥!Ct ¥!?˜áØj› ¥!?˜®Ù‘ ¥!°á ¥!?˜°Õן¼�(¼!$+29@GN´Û\ ´Ûhp Œ$«ÍÖ´¬‘$�× —$Wù×`³�$­áضû¡$®Ù ©‡$YýÕb…‚$¯°Õ¸ø¿À 9¿À Š¿À Û¿À , ¿À } ¿À Î ¿À ^ÍÍ$3‘Î$öÕÎ$¹™Ï$|ÝÏ$?¡Ð$åÐ$Å ( ¾�(/X ëž(‰Ç°ÕT\Ù ä­3?¨¼ˆ�±Ç šŸn ¬8 Ñž(š°ýÕÏ×þä­3?¨¼ ±Ç r +( ½ž(äÉ®ÙOXßä­5A¨¼…‹±Ç ™Ÿt ­0 ªž(³ÉáØÑÚÞä­5A¨¼ ±Ç !t /8 •ž( íÈù×S \Ýä­5 A¨¼‰�±Ç � £t ±8 ÿ�(¯È�×Õ ÞÜä­5 A  ¨¼ ±Ç  % t 30 ê�(úÇÍÖW`Ûä­5A¨¼�“±Ç ¡§t µ Ã�(¾!Ñ×Þåìóú ÏÁÎÓ$ÙÂ!) Œ$ùä­:¨¼   Œ$¬‘$¡ä­a¨¼³ ¬‘$¿—$Jä­ˆ¨¼\ —$h³�$óä­¯¨¼ ³�$û¡$œä­Ö¨¼® û¡$º©‡$Cä­ý¨¼U ©‡$a…‚$åä­$¨¼÷ …‚$ CœQ¿À '¿À ¶¿À E ¿À Ô¿À c¿À ð¿À x·¾à$¨¼�±Ç Ì—à$¨¼%±Ç Ýðß$¨¼¶±Ç îÉß$¨¼E±Ç ÿ¢ß$¨¼Ô±Ç ûÞ$¨¼c±Ç !ÔÞ$¨¼ò±Ç 2lÑ©(”Ñ©( â©(&$Ǫ( Å™´Û?˜t•¬($�¬(ذ$<•¬(4�¬(*ü•¬-(¤¬( ÌR‹±$Èæñí±$Uÿq?˜‰ä$̨¬(ô¤¬(Z$¦­( Å™´Û?˜ÔÓ°(\Ó°( Ûæñ$ß°(<å°(16 Lǰ(  ̰( àÍÖœ·±( ¥! ̲±( Å™´Û ?˜Üò±(dò±( äæñ$ÿ±(<…²(  16  Læ±(  ë±( à�פز( ¥!ÔÓ²( Å™´Û?˜Ü”³(d”³( íæñ$¡³(<§³( 16Lˆ³(�³(àùפú³( ¥!Ôõ³( Å™´Û?˜Ô¶´(\¶´( üæñ$´(<È´(16Lª´(œšµ( ¥!?˜áØÌ•µ( Å™´Û?˜ÌÕµ(TÕµ( ‹æñ$àµ(<æµ(16Lɵ(”·¶( ¥!?˜®ÙIJ¶( Å™´Û?˜Üñ¶(dñ¶( Êæñ$þ¶(<„·(16Lå¶(ê¶(àýդ׷( ¥!ÔÒ·( Å™´Û?˜ü“¸(„“¸( »æñ$¤¸(<ª¸(27L‡¸(Ä‚¹( ¥!?˜°Õôý¸( Å™´Û ?˜$ø¹( Å™´Û‚º( üð§’(Æüî°h(ü޲j(ü°³j(üÑ´h(üïµf(ü�·j(ü³¸s(!¤¯$t̨(æƒ$›¨(ï…$<´¨({’õ ‹±$:‹±$C˜�$ƒIÍÖ>´Û-‰•$õ»�×°´ÛŸü›$g-ù×"´ÛÄ $ÙŸ´Û”Œ¥$T´Û¯Š$Ï•ýÕŠ´Ûy–…$A´Ûû ¦ÀE Àö& Àö‚ÀöÞÀö¯´(?˜áØÀöε(?˜®ÙÀö*ÀöŒ¸(?˜°Õ  ³wæñ6ذ$Òÿã$ �å$Àæ$mñç$âé$Áê$�àë$é’í$?T¬¬(4®¬(ñµ$ ¬¬(D®¬(¬¬¬(D·¬(ì·CT·¬(Á¬(È«¬( ‰ä$ï±$ ©¬(Ó×”¤Bñµ$³ì·�ÌëÁ(¼ëÁ( ÈLŠÂ(ä™Â( ÛüŠÂ,($”Â( Ë@5ü”Â"(¬ÐÂ(œÐÂ( é ñöÂ(  ‘PÍœ$öÂ((- øñëÂU(I  X] ÆQ¯­ o x}  ‰  ?˜ïÂ( à�­D…Ã(L™Ã(d«Ã(4¯Ã(¹Ò «Ã( D¯Ã($óÄ(TíÄ( ü™Ã(<£Ã( É{o ¬£Ã(ü”Ã$(ü…Ã4(,ŽÃ( ùÎ2 üŽÃ+( ¹Ã(D�Æ(ü�Æ,(ü–Æ!( ™-ü–Æ#(D¢Å(|¢Å($«Å( €+4«Å(D¿Å(„¿Å(,ÈÅ( þ+<ÈÅ(DöÇ(€È(å ÿÇ(üâÀž(ó‚É(ü×Á©(ü½ÂÃ(¶½ÿº$dœÁ(æƒ$üÀ(Íœ$�Á(ÏÏ ExtractorÁЦ¼Ñ limit_classÁ¼Ò limit_repeatÁ¼Ólimit_literal_lenÁ¼Ô limit_totalÁ¼ ”6Ñ�‘ lÛÁ( Òü$ óý$OÛÜÝPrefixÁÞßSuffixÁE‚høÔ­¾†ÿº$dÁÂ(¯­/¯­8řǙș­É™Ê™àË™óG*¤�R{9 �­†¦Å�\�­û5 ÿº$õÜÿ$]ÿº$– Òü$þÆût‚Å(åÜÿ$ºÜÿ$ÕFÜÿ$a¦�™ extractorÁŒµ¿2�b ä÷Ê Ê£õ$ëõ$ßœö$´¾ö$˜‘÷$Ÿ¹ÒÆðø$}³ù$Aÿº$Šú$ùÇú$Áƒû$Œÿº$1ÿº$C(½…)½Š)Ä!&+ Ý8  ÝCLV¿”)Ç!¿’) Õ‚%&0`Àå)’Ó" üh’Ó"à¡3 À–)DÀš)É!&1Õ‚%9®£A ’Ó"„Uƒblôƒ%®`Áå)’Ó"’Ó"*/ ù±’Ó"’Ó"FKSÁ¥)Í!HÁœ)Õ‚%Õ‚%Ï„%“Ï„%›7î DN¿…%ÅP§)  î Ý (- Å™�å±)Ï![–ægÕ‚%oÕ‚%w�åˆî •Ÿë†%©`Ãå)’Ó"’Ó"*/ î’Ó"AFNö)Ñ!ó)�åÕ‚%Õ‚% Ï„%�Ï„%˜9î FPň%¬÷)dý) ›¨,÷) Š)|ý)üå()Œå) ¸ ]$üå9)Ž) þW’Ó" Ý À!Q\’)éŠ% „Ž)¤)Öü«y)‡ïœÇ),¶)řǙș­É™Ê™àË™óG*¤�R{9 ’Ó"ç/�aƒî‰%N±Š%ÛŠ%ð4Í)’Ó"dÍ)Ô)—×"*,Ô)äÍ)dÚ) �¨> ç)|Ú)ï)×ü©F),½) Ý$´)—’Ó"´<—×"¼��%œ(Æ�2)Æ”2)×!&+ÈÞ8Ï…@IS(Èœ2) ã ä­È€3)!¨¼MR±Ç _dPqÈ¡2)Ú!‹ÏÁ—Ï…ŸÙ§䭯¨¼žÉ˦«¼®ÐœÝçÉ˨¼Û±Ç úÉ€3) òþ 8É£2) Ò!ɪ2)Ü!-ÈÞ9]Gòþ nÊ®2)Þ!ʬ2) Ï…&0Ë€3) ühà¡1 ˰2)BË´2)à!&1Ï…9®£A«¼Rƒ_i€“%©Ì€3)&Ì¿2)ä!H̶2)Ï…Ï…ov5î BLPÍÁ2)  îÈÞ (- Å™�åÍË2)æ![–ægÏ…oÏ…w�åˆî •ŸÈ•%©Î€3)(- î>CKÎÐ2)è!ÎÍ2)�åÏ…Ï… «¼�«¼•9î FP —%¿Ü’5)¼’5)t’5)óà* ¬5)L 'sMüø46)  Ìø4) à¨' ­5)üˆ4§)ÛÈÞT—4)çæ�Œö>èóà_ÁÔ¾7)|¾7)ÜÏ…4 ;DÎ7)„ˆFTÎ7) ×7)ô¾7) Û7)$ 'KMü¥78)Ü,¶7)îÏ…îÈÞö�Œ¡Ï…NÛÈÞ_Á/8ÛÈÞGVܧυsÈÞ|„‰ÛÈÞäž8)  Ìž8)×™% ¸8)5ü�8:)ÝÈÞT‘8)'_ÁüŸ9")  üŸ9 )½Þ!ü‡9;)Þ,—9)&_Áܦ;)¤¦;) ¶ÈÞ,»;))Ç;)ßüÜ:k)–òüø:#),ç:)÷ /åŸ%zdÔ@)ÄÉ@) Ò!ç@)àü¾?©)ÈÞTê?),Ù?)[÷6},Ô@)— ß@)� Ò! à@)£à¡ÈÞ�›ôx÷³Ö´ûA)|ûA)àÙ,‹B)¬™B) ää­üûA4)4’B) Ò_ÈÞ¿á]>ì’B)µB)áüÉAl)ÈÞTæA),ÕA)–ò¦ä­Š÷>àÙÌÅ£%•4©D)|©D)¾D)âü­C‘),ÍC)Ï…,ÃC)X5y} ·D)ƒâ�}Ï…{Ñ‹®4¥F)l¥F)¸F)ãü¬EŒ)ÊE)Ï…,ÀE)X5y} ±F)ƒã�}Ï…{Ñ‹®4ãG)ïG)äü·G8)ÕG)Ï…,ËG) -a_ä]ZÏ…Xaƒ4ƒJ)lƒJ)–J)åü‰I�)§I)Ï…,�I)X5y} �J)ƒå�}Ï…{Ñ‹®|£L)D¨L)„ˆ$£L)T¨L)œ£L) µL)$ 'K¼L)æüùKC),“L)Ï…,‰L)µ�Œ—<„ˆÚ Ì¿O)”¿O)‹¹!,ÒO)|êO) çÏ…ÄêO)4úO) ä2DúO)ìåO)l¹P)L¹P) ®ÃP)(üœP,) é!ü˜P1) ÀœÈÞ¿á�Q)lúP)DýP)„®úP) TýP)üàP()ÌàP)×™% >üÝP,) ÀœÈÞ¿áyƒçüÑN¾)ü¶OÙ) –òüˆO#)ïç,ïN)ºO)R€Ï…¤¿áPÈ޿NŽ-RˆéÛÈÞ‹¹! •®%èà®%¥„®:×™%$-ÛÈÞ<KçöÏ…hÈÞqy~ÛÈÞ4ÁÌ T)” T)‹¹!,³T)ü T$)DºT)„®<TºT)ü†T?)̆T)×™%=ËT)éü¿SŒ)ÈÞTñS)ïç,ÞS)€­¹•?‹¹!Ì„®¬×™%‹4Á4îU)¤îU)\õU)�»!*lõU)ˆV)ëü¿UI)ïç<ÜU)Ï…,ÒU)n5�»!v4Á,œW)„œW)D¢W)„ˆ%T¢W)´—W) ¼–W)³W)ðüãVP)Dz‰W) üß,ìV)ÈÞ,óV)ªÏ…•›1÷4d„ˆé,ÄX)„ÄX)DÊX)„ˆ%TÊX)´¿X)+ ܺX)ÛX)óüûW`)ªò4©X) üßLˆX)ÈÞ,“X)·Ï…Ï üߥ¬²;÷>n„ˆ,ŒZ)„ŒZ)D’Z)„ˆ%T’Z)”‹Z) ‘ýœà$‡Z)J,£Z)÷üÓYP)DzùY) œà,ÜY)ÈÞ,ãY)™Ï…±$÷'W„ˆ˘»%«,Ñ[)„Ñ[)D×[)„ˆ%T×[)”Ð[) ª#œà$Ì[)I+è[)úüˆ[`)ªò4¶[) œàL•[)ÈÞ, [)˜Ï…°$÷'W„ˆÊ„½%ªpÏÉl)(ÏŠl) é!Ï�l)ì!-¿á9 ¿áDm w^h †™(Бl) åä­pÐÉl) æ ä­*6¨¼bg¤¹ tyej‹Ð–l)î!¥ÏÁ±Œ¿%¹ÙÂÁä­Éä­¸¨¼À ž¿%Ëž¿%Óõœ ®Á%¨¼¤¹ "Ñšl)ð!јl) Œ¿%&0pÒÉl)&Ò¥l)ó!HÒœl)Œ¿%Œ¿%ov5î BLàÕ²q)ðü †ðü/7(Õüp) ô!Õ�q)÷!-¾â9 ¾âDðüˆ ðü“`jšÄ%°(Öƒq) çä­àÖ²q) èä­ðü+7¨¼ch¤¹ uzfkŒÖˆq)ù!¦ÏÁ²ñÄ%ºÙÂÂä­Êä­¹¨¼Á „Å%Ì„Å%Ôöœ‘Ç%¨¼¤¹ #(×�Ë)×¢Ë)ÿ!(-‹ã:«©BKUPÙ„Ì)  ÷ÈÞ8ÙªË) ú!Ù±Ë)‚"/‹ã;ÈÞgJ×È%xÚµË)„"Ú³Ë) «©'1PÛ„Ì)ÈÞ ühÈÞà¡4 Û·Ë)FÛ»Ë)†"(3«©;®£CÏ…„TƒakÄÊ%®PÜ„Ì)ÈÞÈÞ+0 ù±ÈÞÈÞGLTÜÆË)Š"HܽË)«©«©Ï…–Ï…ž8î EO�Ì%ÈPÝÈË)  î‹ã!). Å™�åÝÒË)Œ"]–æi«©q«©y�å�Šî —¡¾Í%«PÞ„Ì)ÈÞÈÞ+0È•%<AIÞ×Ë)Ž"ÞÔË)�å«©«©!Ï…�Ï…•:î GQÈ•%¿(ßæÐ)ßëÐ)”"(-³ä:ô‡BKUPáËÑ) ×È%8áóÐ) �"áúÐ)—"/³ä;ÈÞaJ×È%râþÐ)™"âüÐ) ô‡'1PãËÑ)ÈÞÄÊ%* ã€Ñ)<ã„Ñ)›"(3ô‡;®£CÏ…zTƒakÄÊ%¤PäËÑ)ÈÞÈÞ+0�Ì%<AIä�Ñ)Ÿ"Hä†Ñ)ô‡ô‡Ï…‹Ï…“8î EO�Ì%½På‘Ñ)  î³ä!). Å™�åå›Ñ)¡"]–æiô‡qô‡y�å�Šî —¡ðÕ%«PæËÑ)ÈÞÈÞ+0È•%<AIæ Ñ)£"æ�Ñ)�åô‡ô‡!Ï…�Ï…•:î GQÈ•%¿°çûv) ú!xç�w)ÛÈÞøçäv.)¥"‹ã(çóv)+BÛÈÞ_Áˆçýw) Üøçäw+)¦"(çõw)*IÜSmallIndex::LIMITÁ¸çÕx) ú!€çÛx)ÝÈÞøç½x0)§"‹ã(çÍx)+BÝÈÞ_Á€çÛy) ÞøçÃy))¨"(çÓy)*IÞSmallIndex::SIZEÁ°çŸ|)xçŸ|)àÙ(ç¯|)%øçŸ|!)ç¶|) º_ÈÞ¿á‹ã û!Z(çº|)�Ý% Pç¶|)øçŸ|/)8çÁ|) Ç_‹ã¿áêæ è"~ çÉ|)ÑÝ% hçÁ|)çÜ|)©"øçÝ{)êí˜çù{)(çè{)ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‹ã¿á.–òc�s™àÙ‚ïÜ%]¿Ý%øçä� )Èçä�)×™%(çþ�))øçÞ�') ú!ç“‚)ª"øçš�y)‹ã(çÆ�)(çµ�)ÈÞ‰�?×™%§±›¡É ÐÊ×™%Åé烂)Ë ú!ç„‚)Ъ"Ë‹ãÅÀÈÞD0�ۈ紃)Pç´ƒ)µä(翃)(øé̓~)éä­øç´ƒ˜)0çƃ) Ò_‹ãêæqIøçƃ†)çÚ„)«"øçÿ‚Û)‹ã(眃)(狃)êíÌä­§�HµäòŸã%®0笆)Èވ笆)@糆)„ˆ4P糆)çˆ)¬"øçô…W)(甆)«©(çІ)Ï…‡>„ˆ‹®´ÈÞ­ ´¯„ˆÞªç¼†)°¬"«¥«© Ï…"²Ú0ç�ˆ)ÈÞxç�ˆ)0ç–ˆ) ã6@ç–ˆ)笈)­"øçÛ‡Q)çù‡)«©(çï‡)Ï…‰>²ç%�°¶ÈÞ¯ ¶±²ç%àªç�ˆ)°­"«¥«© Ï…$²Ú0çö‰)ÈÞxçö‰)0çý‰)•®%4@çý‰)瓊)®"øç‰Q)çà‰)«©(çÖ‰)Ï…‡>•®%‹®´ÈÞ­ ´¯•®%ު焊)°®"«¥«© Ï…"²Ú0çß‹)ÈÞxçß‹)0çæ‹) å6@çæ‹)çü‹)¯"øç«‹Q)çÉ‹)«©(ç¿‹)Ï…‰>ºì%�°¶ÈÞ¯ ¶±ºì%àªçí‹)°¯"«¥«© Ï…$²Ú0çæŽ)ÈÞˆçæŽ)@çíŽ)õá4PçíŽ)ç…�)°"øç´ŽQ)(çÎŽ)«©(çÄŽ)Ï…‡>õá‹øçš’ )Èçš’) ç(ç´’)+øçš’+)ç»’)ïÜ%N(ç¿’)�Ý% Pç»’)øçš’9)8çÆ’)¿Ý%\ çÎ’)ÑÝ% hçÆ’)çá’)±"øçÌ‘•)êí˜çô‘)ïç(çá‘)³Þ%Á–òû¹• J˜ð%ïÜ%ï¿Ý%µ4Áøç…–*)øç…–#) é(ç©–),øçÿ•1) ú!ç¾–)³"øçµ•‰)‹ã(çç•)ïç(çÔ•)ÈÞŽ¹•Báò%­4Á0çý—)ÈÞ çý—)X焘) ë6h焘)矘)µ"øçÆ—Y)ïç8çã—)«©(çÙ—)Ï…Š?Äô%Ž4Á(ç…Ÿ)€ç…Ÿ)@狟)Ú° .P狟)°ç€Ÿ)" ¸çÿž)礟)½"øçÉž[)Dzçêž)Ö·%(çÒž)‹ã(çÙž)Å«©à§­7÷7mÚ° (çÓ )€çÓ )@çÙ )Ú° .PçÙ )°çΠ). ØçÉ )çò )À"øç‡ k)ªò0ç° )ç¹%Hç” )‹ã(矠)Ò«©í�º%µ¼Â?÷?uÚ° (çÑ¢)€çÑ¢)@ç×¢)Ú° .Pç×¢)�çТ) ˜»% çÌ¢)O(çð¢)Ä"øç•¢[)Dzç¶¢)å»%(瞢)‹ã(祢)ª«©Å*÷*`Ú° ܘ»%³(çĤ)€çĤ)@çʤ)Ú° .Pçʤ)�çä) „½% 翤)O(çã¤)Ç"øçø£k)ªò0硤)н%Hç…¤)‹ã(ç�¤)ª«©Å*÷*`Ú° Ü„½%³x뺱)¿á †¿á08(넱) ç"뉱)ë"/êæ;‚„C¿áˆŒ¿%�\fÛþ%­(싱) êä­x캱)¿á#¨¼PU±Ç bgRtì�±)í"�ÏÁ›‚„£Ù«䭳¨¼¡ Œ¿%¬Œ¿%´×œäî¯�&¨¼á±Ç í”±)ï"í’±) ‚„'1x)¿á¿á+0 ù±¿á¿áGLT)ò"Hî–±)‚„‚„Œ¿%–Œ¿%ž8î EOˆƒ&Èpò¨·)¾â †¾â08(òù¶) ó"òþ¶)÷"/ìç;äªC¾âˆñÄ%�\fÉ„&­(ó€·) ë ä­pó¨·)¾â#¨¼PU±Ç bgRtó…·)ù"�ÏÁ›äª£Ù«䭳¨¼¡ ñÄ%¬ñÄ%´×œäî�‡&¨¼á±Ç (ù•¿)øè †øè08Pù¨¿)ìç †ìç09(ùѾ) ú"øèùÖ¾)ùÕ¾)E€#T¼è` ¼èkøèî øèùìçÄäªÌ—¡Žˆ&&ˈ&ðøèˆ(úؾ) ìä­(ú•¿) 2ä­øè+¨¼Pú¨¿) �ä­ ìç,  8 ¨¼¡¦¬Ö³¸£¨qvÔúݾ)ƒ#ï ÏÁûʉ&Ù ä­ä­¨¼ ݉&ä­ã¨¼ë äªöäªþ]œkv݉&¨¼jîŒ&¨¼8¬Ö•çÎÀ)@çÎÀ)çÑÀ) �Qøè4(çÑÀ)¨çÂÀ)XçÂÀ)°žQ$çõÀ)¨çéÀ) ú"øèçŒÁ)ç‹Á)øçˆÀ„)â"øç¸ÀT)¼è`ç™À)øèç�À)ìçç¼À) ݉&%øè¼Ç,5؉6†ñ�&E°žøè³ 8çåÂ)øèpçåÂ) çíÂ)¦ð50çíÂ)xÿåÂ)  �%řǙș­É™Ê™àË™óG*¤�R{9 ÅQøè˜qvçåÂ)šxçåÂ)mÞ‘&@ç‘Ä) ìçxç‘Ä) çšÄ) ÆQìç ;  0çšÄ)€óÂ) �%řǙș­É™Ê™àË™óG*¤�R{9 ‹ãÞ‘&Îõ?˜Îõm“Àç‘Ä)0ç¡Ä) øW‹ã Ú @ç¡Ä) çÅÄ) PçÀÄ)  €ç»Ä) Å™÷“& çÙÄ)çØÄ) øç™ÂÀ)æ"øçÚÂÿ)LSZÞøçˆÄQ) ²“&Àç¯Â) ¼èHç¡Â)Þ‘& çÞÂ)ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ÎõÞ‘&™‘&LÓ‹oÞ‘&–‹ãçŒÄ)�Çk ìç‘÷“&‚Þ‘&œÌ›ÌÆ o?˜ÎõŽŽ-ms¦ðï“‘&Çú’&쬓&Õ³”&AÞ‘&¶°ûûv) �"xû�w)ÛÈÞøûäv.)…#³ä(ûóv)+BÛÈÞ_Áˆûýw) Üøûäw+)†#(ûõw)*IÜSmallIndex::LIMITÁ¸ûÕx) �"€ûÛx)ÝÈÞøû½x0)‡#³ä(ûÍx)+BÝÈÞ_Á€ûÛy) ÞøûÃy))ˆ#(ûÓy)*IÞSmallIndex::SIZEÁ°ûŸ|)xûŸ|)àÙ(û¯|)%øûŸ|!)û¶|) º_ÈÞ¿á³ä �"Z(ûº|)“�& Pû¶|)øûŸ|/)8ûÁ|) Ç_³ä¿áªê È#~ ûÉ|)ã�& hûÁ|)ûÜ|)‰#øûÝ{)äø ˜ûù{)(ûè{)ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³ä¿á.–òc�s™àÙ‚��&]Ñ�&øûä� )Èûä�)×™%(ûþ�))øûÞ�') �"û“‚)Š#øûš�y)³ä(ûÆ�)(ûµ�)ÈÞ‰�?×™%§±›¡É ÐÊ×™%Åéûƒ‚)Ë �"û„‚)Њ#˳äÅÀÈÞD0�Ûˆû´ƒ)Pû´ƒ)»õ (û¿ƒ)(øý̓~)íä­øû´ƒ˜)0ûƃ) Ò_³äªêqIøûƃ†)ûÚ„)‹#øûÿ‚Û)³ä(ûœƒ)(û‹ƒ)äø Ìä­§�H»õ ò±£&®0û¬†)ÈÞˆû¬†)@û³†)„ˆ4Pû³†)ûˆ)Œ#øûô…W)(û”†)ô‡(ûІ)Ï…‡>„ˆ‹®´ÈÞ­ ´¯„ˆÞªû¼†)°Œ#«¥ô‡ Ï…"²Ú0û�ˆ)ÈÞxû�ˆ)0û–ˆ)²ç%4@û–ˆ)û¬ˆ)�#øûÛ‡Q)ûù‡)ô‡(ûï‡)Ï…‡>²ç%‹®´ÈÞ­ ´¯²ç%Þªû�ˆ)°�#«¥ô‡ Ï…"²Ú0ûö‰)ÈÞxûö‰)0ûý‰)•®%4@ûý‰)û“Š)Ž#øû‰Q)ûà‰)ô‡(ûÖ‰)Ï…‡>•®%‹®´ÈÞ­ ´¯•®%Þªû„Š)°Ž#«¥ô‡ Ï…"²Ú0ûß‹)ÈÞxûß‹)0ûæ‹)ºì%4@ûæ‹)ûü‹)�#øû«‹Q)ûÉ‹)ô‡(û¿‹)Ï…‡>ºì%‹®´ÈÞ­ ´¯ºì%Þªûí‹)°�#«¥ô‡ Ï…"²Ú0ûæŽ)ÈÞˆûæŽ)@ûíŽ)õá4PûíŽ)û…�)�#øû´ŽQ)(ûÎŽ)ô‡(ûÄŽ)Ï…‡>õá‹øûš’ )Èûš’)˜ð%(û´’))øûš’+)û»’)��&L(û¿’)“�& Pû»’)øûš’9)8ûÆ’)Ñ�&\ ûÎ’)ã�& hûÆ’)ûá’)‘#øûÌ‘•)äø ˜ûô‘)ïç(ûá‘)Åž&Á–òù¹• J˜ð%��&ïÑ�&µ4Áøû…–*)øû…–#)áò%(û©–)*øûÿ•1) �"û¾–)“#øûµ•‰)³ä(ûç•)ïç(ûÔ•)ÈÞŒ¹•Báò%«4Á0ûý—)ÈÞ ûý—)Xû„˜)Äô%4hû„˜)ûŸ˜)•#øûÆ—Y)ïç8ûã—)ô‡(ûÙ—)Ï…ˆ?Äô%Œ4Á(û…Ÿ)€û…Ÿ)@û‹Ÿ)¡….Pû‹Ÿ)°û€Ÿ)" ¸ûÿž)û¤Ÿ)�#øûÉž[)Dzûêž)Ö·%(ûÒž)³ä(ûÙž)Åô‡à§­7÷7m¡…(ûÓ )€ûÓ )@ûÙ )¡….PûÙ )°ûΠ). ØûÉ )ûò ) #øû‡ k)ªò0û° )ç¹%Hû” )³ä(ûŸ )Òô‡í�º%µ¼Â?÷?u¡…(ûÑ¢)€ûÑ¢)@û×¢)¡….Pû×¢)�ûТ) ˜»% ûÌ¢)O(ûð¢)¤#øû•¢[)Dzû¶¢)å»%(ûž¢)³ä(û¥¢)ªô‡Å*÷*`¡…ܘ»%³(ûĤ)€ûĤ)@ûʤ)¡….Pûʤ)�ûä) „½% û¿¤)O(ûã¤)§#øûø£k)ªò0û¡¤)н%Hû…¤)³ä(û�¤)ªô‡Å*÷*`¡…Ü„½%³xÿº±)¿áÛþ%*2(ÿ„±) Ç#ÿ‰±)Ë#/ªê; ªêF¿á…Œ¿%�_iÛþ%ª(€‹±) î ä­x€º±)¿á#¨¼PU±Ç bgRt€�±)Í#�ÏÁ›¶¿&£Ù«䭳¨¼¡¯�&©Œ¿%±Ôœáë¯�&¨¼Þ±Ç þ�”±)Ï#�’±) ¶¿&'1x‚º±)¿á¿á+0ˆƒ&<AI‚Ÿ±)Ò#H‚–±)¶¿&¶¿&Œ¿%‹Œ¿%“8î EOˆƒ&½p†¨·)¾âÉ„&*2(†ù¶) Ó#†þ¶)×#/¬ë; ¬ëF¾â…ñÄ%�_iÉ„&ª(‡€·) ï ä­p‡¨·)¾â#¨¼PU±Ç bgRt‡…·)Ù#�ÏÁ›’Å&£Ù«䭳¨¼¡�‡&©ñÄ%±Ôœáë�‡&¨¼Þ±Ç þ(�•¿)øèŽˆ&*2P�¨¿)¬ë †¬ë09(�Ѿ) Ú#øè�Ö¾)�Õ¾)Eà#Tüë` üëkøèè݉&ð¬ëÁ’Å&É”žŽˆ&´È&íøè…(Žؾ) ðä­(Ž•¿) 2ä­øè+¨¼Pލ¿) �ä­ ¬ë,  8 ¨¼¡¦¬Ö³¸£¨qvÔŽݾ)ã#ï ÏÁû³É&Ù ä­ä­¨¼ ݉&ä­ã¨¼ë ’Å&ö’Å&þ]œkv݉&¨¼jÔÌ&¨¼8¬Ö•ûÎÀ)@ûÎÀ)ûÑÀ)ñ�&.(ûÑÀ)¨ûÂÀ)XûÂÀ) —#M&ûõÀ)¨ûéÀ) Ú#øèûŒÁ)û‹Á)øûˆÀ„)Â#øû¸ÀT)üë`û™À)øèû�À)¬ëû¼À)݉&!øè¼Ç,5؉6†ñ�&A‡Î&øè³ 8ûåÂ)øèpûåÂ) ûíÂ)¦ð50ûíÂ)x‰åÂ) “‘&E#ûåÂ)GxûåÂ)mÞ‘&@û‘Ä) ¬ëxû‘Ä) ûšÄ) ÆQ¬ë ;  0ûšÄ)ÅŠóÂ) �%řǙș­É™Ê™àË™óG*¤�R{9 ³äÞ‘&Îõ?˜Îõm?Àû‘Ä)0û¡Ä) øW³ä Ù @û¡Ä) ûÅÄ) PûÀÄ)  €û»Ä) Å™…Ó& ûÙÄ)ûØÄ) øû™ÂÀ)Æ#øûÚÂÿ)LSZÝøûˆÄQ) ÀÒ&Àû¯Â) üëHû¡Â)Þ‘& ûÞÂ)Ö&o™‘&§Ó‹Ê¿Þ‘&D³äûŒÄ)¨¨ ¬ë?…Ó&1Þ‘&K{›{Æ ?˜ÎõŽ®Ž-m"¦ðJ“‘&"‰Ò&šºÒ&0ÁÓ&ðÞ‘&eäÁÖ)´ÁÖ) â"¤ü$ØÖ))ãÖ)“üËÕ˜)ú"ú"ñÖü"Ç,Íý"؉͵ÝwÃ7{t0¤ü¼èÕ)¤ü$ßÕ) nÃ×&ºÔÛ×)¤Û×) Â#¤ü$ð×))û×)”üéÖ’)Ú#Ú#ÌÜÜ#Ç,ÍÝ#؉Í2íãȳ‹Õ"¤ü¬„×)¤ü$ûÖ) nŠÙ&º¸�í!�¥ †�¥/7��Š"Å‚�Š)1(�Æ! ä#�Ë!è#0äì<ù¤D�¥¾õ·ÆÅ‚’ú‹šmwàÚ&ó�н(�Í! ä­¸�í! ñ ä­�¥+¨¼��Š" òä­ Å‚+  7 ¨¼ž£¬Ö°µ¢§puÑ�Ò!ê#ë ÏÁ÷ù¤ÿÙÂä­ä­¨¼ õ·ä­à¨¼èÓ�ðú‹øUœcnõ·¨¼dÓ�¨¼2¬Ö�256Áˆ‘Ì<ôí&+ †ƒà&=E(‘Ÿ< ë#‘¤<ï#-³í9Õ�Aƒà&“ ƒà&ž]g¡à&»256Á256Á0Á1Á2Á3Á4Á5Á(šªfš¯f…$&ôí2¯°:CM (œ·f,3;óä­œ»fV^ôä­#u}õä­B”œöä­a³»÷ä­€ÒÚø ä­Ÿóø¯Å   œ¼fˆ$/ÏÁ<¯°EÙÂNä­W_iœw‚¯Å ��ÀfŠ$�¾f¯° *HžÂfžËf�$>CIT¯°\¯°dkr{î ˆ©ò–Àò¢ªŒ€*|€* ÷Ëï”ÿ*üå-*|å* É£ÛDõ*3+”*Æü“�*ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwâ�È�¼Ç*òàD´* ËïÍËïøÝw–çè&›é&ꤤ*”¤* ÷dË*Ô¾*,Å* ã4¾*/œÅ*¹Ÿ¾ ©Ÿ¾ ŒŠ|‚*$‹* ìw£ÛD‚*4‹*x¦‚*  ‘PÊ‹J$) ø¦ùW*D  SXÄ‹ d mr  ~  ?˜ ý* àçŒ$œ*<¦*|¦*,®*§�% <®*$Ø*DÕ* Àœâ�È�ß*^T¼*4¾*ÕŽ ¼* D¾*ü¦!*,¶*‹�¬D Œ¶*ø§¦"*  �%ú—I%*6ü¦"*m’Šüœ-*$¡*˜’Z7ü¡(*¨Ç*[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwëÝÈ�þt �%Ûé&ðð&Š" É* Þ*Ì=+üŸÀ*É ü’Í*üÞ�*29@�Ûé&¼ô*òàDÊ*Âê&4Þ*µø\–*$ µøAâ�Dâ*Ê‹¿Ê‹÷ʋј–Úæ–ã´çŒZ‹—RÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ðð&’ŠÊú—Ö˜Ÿؘ¨æþÁä­Mpðð&y’ŠÊâ�¸Ýw7Ø;å?�™.�ï ¦a Æ ãŽ7‘ë&ÛÁë&²ŒŠŠ–ì&kÅì&CÄ‹J§�ÕŽ‹�÷Ûï&ј’vÔñ&ßؘ¼ؘÃâ�¨ؘÑâ�¶( ½"* Â"*œ$&+17ËïDÂê&LU_(¢Ê"* Ÿ$ ä­ °¢ê"*¨¼€¢†#*   ¨¼Тœ#*   ¨¼P¢¼#* ¨¼˜¢Ì#*¨¼€¢å#*¨¼¸¢û#*¨¼h¢˜$*¨¼P¢«$*¨¼x¢»$* ¨¼X¢Ð$*  ¨¼Ñ ¨¼     µÀ(ä­5áÀIOøÀ]ciox¢Ï"*Ÿ$“™  ÏÁ®Âê&·ÙÂÀÞø&ɵÀÒ ¨¼ ì¡þ&õ¨¼Òç› Û¨¼¿ç› Ȩ¼¬ç› µ¨¼™ç› ¢¨¼†é‹�¨¼rç› {¨¼_ç› h¨¼Lç› U¨¼9ç› B¨¼&«¼/¨¼žœ ç› $ä­ÍáÀÖàœîƒ ü‘ ç› ¨¼óç› ¨¼Øç› ¨¼½ç› ¨¼¢é‹¨¼‡ç› ¨¼kç› ¨¼Pç› ¨¼5ç› ¨¼«¼¨¼ÿžœ ¨¼ãøÀŠENù ä­\ENúä­\ENûä­\E Nüä­\ D Mý ä­[  D Mþä­[  DMÿä­[DM­ä­[DM€ ä­[CL�ä­Z ä­ ê‚ä­  APŸ$aÞø&nàø&wä­/ä­8ä­ä­%ä­ ä­ä­öä­ÿä­âä­ëä­Ïä­Øä­¼ä­Å䭩䭲䭖䭟䭂䭋30Á(£É ƒä­�£µ „ä­¬ð9¨¼`£� …ä­ æñ+  7 ¨¼­²¬Ö¿Ä°µpuà£Î©$ú ÏÁ ¯ñÙÂä­$ä­¨¼ ܇')ä­è¨¼ð ï±$ûï±$pœ~‰׉'¨¼~ó‰'¨¼>¬Ö¨(¤˜ †ä­�¤û% ‡ä­ä­+7¨¼ch¤¹ uzfkŒ¤�­$¦ÏÁ² ÷ñ½ÙÂÅä­Íä­¼¨¼ÄôÉ Ì÷À ÔöœôÉ ¨¼¤¹ #(§û/ ˆä­ §Ÿ0þò"¨¼NS±Ç `eQr§€0²$ŒÏÁ˜ Äò£Ù«䭳¨¼¢  þò°ÀŽ'¸Úœçñ¾Ž'¨¼å±Ç  (¨À0  4ˆ¨¢4=áÐ ªê�¨µ4>áÐ ä­u ?}‰ä­O @W˜ä­d A=¨¼X B`‡ä­m D>y CD¨¼ä é ¬Öö?û@ÅAÊB²C· ˜¨é35ÒÏêæ�¨þ36ÒÏä­W 7`Š ä­Q 8Y˜ä­f 95¨¼Z :b‡ä­o <6{ ;<¨¼È άÖÜ7â8Ë9Ð:¸;½ ÿ�¨Ã30Ëää­"1+‹ä­42<‡ä­I40U34¨¼ms¤¹ �1‡2ˆ3� š°¨�3+®ää­½,ÆŒ ä­4-<�ä­I/+U./¨¼¤¹ ,"-ˆ.� 5€¨Ø2#…äp¨ê2$…äs%|Žä­O&W� ä­d'#¨¼Y(a�ä­n*$z)*¨¼äê¬Öø%þ&É'Î(·)¼ h¨£2ÞãP¨²2ÞãYb‘ä­OW�ä­d¨¼Y a’ä­n"z!"¨¼ÊЬÖÞäÉÎ ·!¼ h¨ñ1²ãP¨€2²ã?H“ä­OW�ä­d¨¼Ya’ä­nz¨¼°¶¬ÖÄÊÉη¼ ç�¨Å1•ãä­ ” ä­4<‡ä­IU¨¼U[¤¹ ioˆ� ‚�¨œ1 öâä­¥ ®•ä­4 <‡ä­I  U  ¨¼ðö¤¹    ˆ � ˆ¨ò0Üâä­@I–ä­4<—ä­IU¨¼‹‘¤¹ Ÿ¥ˆ� ¸¨Å0Î$ ÓÙàçîõü EÏÁ&ÀŽ'/ÙÂ8@÷À &ä­Rä­8¨¼AôÉ J÷À îä­ä­¨¼ ôÉ ÷À ¶ä­¬ä­È¨¼ÑôÉ Ú«¼É«¼¶ä­âä­ä¨¼íä­Ú¨¼ãÉË쫼÷«¼ää­* ä­¨¼ä­¨¼Éˆš%†šä­r ä­@¨¼Iä­6¨¼?äÈ H÷À ä­± ä­¨¼#ôÉ ,÷À Ðä­Þ ä­â¨¼ëôÉ ô‚„å÷À Ñä­ ä­ ¨¼ ä­õ¨¼þôÉ  ¶¿& ÷À û ä­\ ä­* ¨¼3 ä­ ¨¼( ôÉ 1 “ œ¡ ¿À �¿À 5 ¿À Ý¿À а†Á¿À а†Á¿À Ð#°†Á$¿À …+¿À - 0¿À " 5°† 6¿À  =°† >o ¶¿&¨¼B ôÉ ¨¼/ ¬ÖŽ ‚„¨¼{ ôÉ ¨¼h ¬Ö© ôÉ ¨¼® ¤¹ º ôÉ ¨¼$ ¤¹ Ë †š¨¼šäÈ ¨¼ˆ¬Öæ «¼¨¼ÏÉ˨¼½¬Ö «¼¨¼É˨¼ò¬Ö ôÉ ¨¼9¤¹ - ôÉ ¨¼¯¤¹ > ôÉ ¨¼%¤¹ O 5äuf ù½„ !f±½„ ÖÖ  ïu $òuJÔ‰vĉv ãóë2 ·vd·v4»v ¯C½‡.2D»v¼·vDÄv ¶‘µK2TÄv|×v "  24 ¤×v êv$þvf  Dýv   ƒw?˜.L“y  ›y$  '2L  d¸y   2,ù¾„ !±¾„ ÖÖ  µy i  24Ùy dÙy4Ýy“©'% 1DÝy¼ÙyDæyé'< 1Tæy|²{"  14 ¤²{ Å{$Ñ{ ”Ñ{DÕ{ ¬C½‡/$Þ{1tÕ{õ{ Dô{  ú{?˜.\£|  ¬|$  '1L d¢|Ä—| ü—|+\°|Ýô ),¼|1”°|ü–|64Ã|êó E1DÃ|ü–|T\Ö|¤�><â|1¤Ö|ü–|f4ô|êó E1Dô|dŠ}! •}$!„×}* *8Á¥}%ùÁŽ"`$ %HÁ¤}b$†šظb)'12J& ¾š'Z (b˜  ƒ )&‘ – ‹g (Ã)È#1ÑùÁñ@`áÁñ`ºò #ùÂŽ"`"1*·~6 tÄ~8 818Ãþ}.(Ã�~/ ùÃŽ"`- ./HÃý} c-†š ظc)1128Ü~ d-†š ظd)212„ 0 ¾š12— 3Ÿ™ -À 40Î Ó ‹g-34,1ùÅñ@`áÅñ`ºò ,ùÆŽ"`+1*“78ä·~D»~ê®'6Ê7Á5 1Ä»~tä~< <!1,;<1Çà ]:;ô~? Lô~ø~è× ?%>"1,ø~9Çè ]=>‰Çß ]9 :=AÇ€ ]@9†šIÇŠ ]A9†šIǯ ] C@QǼ ] DAÉÇ® ] BCD B$#1ÈÞ]I �ó놚£O HħP Ìý\¦ ‘ý��É•OJPAN%1,ùÇé !] E ±šáÇÍ] G Å™ÊÝùÇ�]] ùÇ� ]÷Œ E!Ç®]@QÇ´]AYÇÀ]GXF1C¼£4² ÝwNt£M&1D²ü£"D»é'MDL'1T»ü£*Q# QL(15K L9Èæ]JK‰ÈÝ]H IJAÈþ]RH†šIȈ]SH†šIÈ­]URQȺ]VSÉȬ]TUVT*)Ÿ€a tž€ a ­€-ùÈç!]W ±š(ÇŠ€\ñÇè][ \8lj€e[†šظe*^+13J] ¾š^Z_bš 4ƒ`]‘– ‹g4_Ã`ÈZ,1ÑùÈË<]Y Å™ÊÝZùÈ‹}]ùÈ‹ ]÷Œ W!Ȭ]RQȲ]SYȾ]Y\X1Cxf�®€0œf/4¬fµ40>Ö 2ç3üÄqê/�#üàuÎ üýu± ü©v… ü‡y§ü¢yŒüËyãüˆ|¦¾Åjq ùÇÿ Œ]ùÇÞ Ÿ] ùÈý¬]ùÈÜ¿]}„gå�„úq$êq��¨,�v<­v‘µ(ÊŸ Aš å ì �� ,‹y�ŒA ��<¦y÷ �Œ <Ïy‘µ‹ ÊŸ ¤  W ^ ß Ù™ù ��¼ <Œ|Ͷ½ í Ͷ% @ V º �Œà ¡ k ÊÝX ÂàU †šn Öàg ¾š] ʳ'y ÿà‚ » ÊÝòŽ @ †ši †šb Õå[ ¾šN ¾š é¶'v ‡æ -Ù™ë ä �Œí òŽ ‘†šñ5�Œ>†šÅòÊŸ  †š¹†š¬y¥›Û� !Çâ ] ƺ� ìòŽ å†š“†šT‚‘µ¹Ó×rÊŸ §É•¢‡†š&†šæÛ� !Èà]‘º� »ÊÝñÉè]Â৆šÁÖ๾š°ÛÀ'ËÿàÔ��:†šw †š †š' †šAßx�†%¦�Ÿ„extraÁ[ �†U ŸGŸ™ Ç $Ç &ÇÄ -ÇÐ 0±� ¯ @Å� ¦ A¦æ E±� ¦RÅ� �S¦pWÇù[Ç]O ÖÖ ߨ'½“©'�é'fÖÖ â“©' é'€ê®'ÛÝô óêó ˤ�ªêó ‚ظë ø³'ºò 4 ظ› ظk —·'¿ ºò ® ê®'s è× ñ ¹»'ì ÷Œ � ë¼'J é'# ��ظ½‰Á'Ö÷Œ æ����$��+ ˜ § ¶ �†šÔ Rã äÆŸÔÆŸð¢ëŸL럔ëŸü“ 4ü“  ü°”´ ›ä­-ü� 9 Àœ÷ñÿ ÌÔ dÔ ž£ 4á ÿþé 6Tó  Àœ÷ñis—üËž´ü¹ŸÆݘ앟Í™€Ÿ4½Ÿ5LÓ×e÷ñ*Ñ�œ@üßD}ð¢À±ã˜ü°kž£ œÎ¬ŒÎ¬Уê¬Lꬔê¬ü’­2ü’­ ü°„³­œä­-üŽ­7 Àœ÷ñý­ÔÑ­dÑ­ž£ <Þ­ç­+Tñ­ Àœ÷ñ^h›üÊ«³üÁ¬¼ ݘì�¬<ö«Í™ˆ¬4Ŭ4KÓ×d÷ñ)ЙJ�œMüßQ”У̱ã¤ü°wž£ |¸² ¨"Ÿ)4;?¨"PatternID::SIZEÁÖºdÖº4Úº¥˜(DÚºüɺdɺž£ Bäº)|îº ¨"ÿº¢ü幚,½º‹ã”ºÍ™¨ºŠº«©Ó÷Œ/�œ2b’¨"¥˜úž£ ×l¸Â ˆ#¦)4;?ˆ# StateID::SIZEÁ¶Êd¶Ê4ºÊ²˜ (DºÊü©Êd©Êž£ BÄÊ)lÎÊ ˆ#ÝÊ©üÉÉ”,�ʳäöÉÍ™ˆÊŠºô‡ÓÁñ/�œ2b’ˆ#²˜ úž£ ×2Á4Á16ÁHÕ«-„K„KK‡Kí ä7ˆKõÙä7‰K«ä7ƒ¢3à6ú�³÷½‡bg †øÞ'y�(Õå, Ð$Õê,Ô$-©ö9 ©öDøÞ'Ò øÞ'Ý`jÒß'úÖî,Ö$Öì, ©à'&0H׫-øÞ' ühøÞ'à¡3 ×ð,D×ô,Ø$&1©à'9®£A¼à'�Rƒ_iáá'«HØ«-øÞ'øÞ'*/ ù±øÞ'øÞ'FKSØÿ,Ü$HØö,©à'©à'¼à'“¼à'›7î DN©ã'ÅPÙ�-  î©ö (- Å™�åÙ‹-Þ$[–æg©à'o©à'w�åˆî •ŸÕä'©HÚ«-øÞ'øÞ'*/ îøÞ'AFNÚ�-à$Ú�-�å©à'©à' ¼à'�¼à'˜9î FP¯æ'Â8Û­@�� †��/7(Ûú? á$Ûÿ?å$-É÷9¿×A��…ÊŸ �Zdêç'ª(Ü�@ �ä­8Ü­@��"¨¼NS±Ç `eQr܆@ç$ŒÏÁ˜¿× Ù¨䭰¨¼Ÿ ÊŸ ªÊŸ ²Ôœáë¹ê'¨¼ß±Ç þ8Þ¡F��êç')1(ÞóE è$ÞøEì$-Žø9 ŽøD��‚ÊŸ Š]gêç'§hߦS��êç')1Ðß¹S³äÒ�)2(ßöR í$ßûRßúR>ñ$MÓøY Óød��ÙÊŸ á³ä³ô‡»�—êç'Ò�ß��„ü¦J8+\¦J+ ýóëªÆ$²J+ ,¸J+T¿J+dËJ+$ÙJ+MàJ+÷ü¾H¢+ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwµ�#ø„ì¸I+ÌÞ ,çH+óëTþH+d‘I+ªÆ$ªI+¬—* init_valueÁ7 match_offsetÁGõ2JÞïî'MüãL9+\ãL+ïî',ïL+ ,öL+TýL+d‰M+$—M+CžM+úüûJ£+Ñï'ìõK+ÌÞ ,¤K+óëT»K+dÎK+ªÆ$çK+¬—*çï'.þï'3õ26wïî'Ü.ü‰`´+. .¤Œ`+d’`+ç‹ ,Œ`+$t’`+'üŒ`"+\¡`+Õ“K$l¡`+(dÝ`+ üÆ`$+„Ì`+Ì”,Æ`+ - $ôÌ`+/ Tþ`+.  „ù`+ Å™óë üÃ`r+$§a+ Å™óë%üÀ`v+ Àœµ�#ø„ ?˜!Tòb+.  l’c+,˜c+ˆó ,’c+*#<˜c+,¬c+dÃc+ü¬c$+„²c+Ì”4+ #ô²c+- ,Âi+- \½i+, Å™óë-|ºi+ Àœµ�#ø„, Êi+")<Þc+ ,çe+,÷e+l÷e+,ýe+ðë %#<ýe+ä÷e+\…f+Ýô < ‘f+#t…f+ü÷e%+4”f+êó S#D”f+üçe6+Líe+è¡ÁC+#üíe0+,¼f+,Ðf+\Ðf+Öf+£‰%#,Öf+ÔÐf+\Üf+¤�< èf+#tÜf+;üÊf +?˜«g+àü¼fŠ+<Âf+ ááüÊf{+,#üÂf„+$�g+ Å™óëDŒg+ Àœµ�#ø„?˜ $àg+"4åg+$dàg+# $3¾õ"?#'!#0h¨àg+  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwřǙș­É™Ê™àË™óG*¤�R{9 óëø„!î #ÀÅ% Ñ%làg+' müý'('œÚg+(©ìg+& [²ê 5" �%Ñï'²ê &8-#ZL§h+*'àÁþ'óël²h++'àÁþ',×h+ $Žh+) Å™óëD‹h+ Àœµ�#ø„) ´i+ S *äúh++ü¥c�+ { *@#¼ !$Í')Ëi+é $ú)ü M«+"(."&:%K.%(( š³ò ý „üâbé+ü‚cÉ+„¦g+ Wü¡h„+/Ñï'ì¦N+<ºM+ÌÞ ,ÍM+óëTäM+„÷M+ªÆD”N+ú‹\Å‚eµ�#vùóëÌóëLæb+ÌØ L†c+èÌÞ  ­°£aæͶ,[ÌÞ tî°£½Ͷ€¯ÌÞ È$ýf+µ�#îEÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^²ê üý'¹­ý'ùÈ�èü ÌÞ "̲ê Õüý'$üg+µ�#\ó벜µ�#ëóë¿ û3嬗êçï'ïþï'õõ2ù�à ¬—Æ’†Æ “&ŽÖ' new_valueÁm* new_match_endÁh+pç‹ Å Õ“— Ì”W ˆó f Ì”( ªÆ©ðë nÝô Nêó è¡÷£‰³¤�“Ýû'¾õŒ§ý'\Ùÿ'cóëÍóëýªÆ óë ªÆ óë óë lÜ2,ï2,¹ü·28,,Ì2,�ú$Ã2, -�åÔ&Ó×Påì&°û †°û/7�åü&Å‚�Š)1på”'  (å±& ò$å¶&ú$8 ÌØ DÌÞ LÓ× ɶ°ûùí³Å‚Îú‹Ö¦ç› ®– Ã…`Ý‹(D�б…àŒœ+4¥+ ¥¢û³÷Dœ+D¥+tý+üç+& û$ õ+d¥, È%ü·+¢ ò$,É,ß,Óü�(Ïü�+ÒÌØ LÈ( ¢ûD´(Ó×D‘+°û¸ÍÅ‚œâì.âì2k¨Ž(0±ã$­Iœ­ID²I Û�0$»It²I$ÊIÔIÕüèHlÌØ L™IÌØ DƒI„‘($�I‚°£›$¸ë(Uü�(µ$ØS¬ØSLÝS ÝŽ0,çS„ÝS$÷S�T×ü‰SxÌØ LÄSÌØ D­SÕ’(,·S‚°£›$†A'TÍ’(´$�z¼�zd†z â*$“z”†z$¢z¬zÙüÀylÌØ LíyÌØ DÐyÅ‚$Úy|°£•$¦‡(U�”(¯$�Œ´�Œd¢Œ ã-¯ŒŒ¢Œ$½ŒÇŒÚüá‹fÌØ L‰ŒÌØ Dñ‹û‹„°£ž$ê(Vë•(¶ \›“$ “ «„‘(°û$›“4 “DÅ“lÑ“ÓלѓüÅ“Tø“D†” Ć”d�”î‰% , œ” |�”üø“& „¡•°û¸• «ç”lù”Óלù”˜«ù”ù«Ž"` \ í³ «º”  ©f°ûŽ'f †š«Ö” ظ�Œ ¾šŸ§ž *ÈÖÛ ‹g* ùèñ@`áèñ`ºò  ùéŽ"` )ÛüÓ’åü�“¨jq…“°£Lò’„‘($ý’°û$”“½üÜJ¸˜µ¿ÊÝ«í³†šóí³B†š-Õ徚ö¾šÀÑ›(1‡æ:Ó׺Ó×Âí³S†š\ݸëà¸ëãÇ� Ç™M®—(-±ãØî‰%„±ãâך( ظhÿ›(׺ò ¿,࡜à¡\æ¡ ›$Õ’(1læ¡1ÌÚ¡?˜ Ç£   †£ª›†š„Œ£\Ž£Ýô  Œ£ š£ tŽ£ “¢„œ†š ™¢ÌŒ£4�£êó  œD�£,í£ Œí£Ló£ œ$Õ’( 1 \ó£1  ¼ç£  $…¥|…¥DŠ¥ˆþ) TŠ¥ ܤ ª›†š ⤠ ž¤ „œ†š„¤¤\¦¤Ýô  ¤¤ ²¤ t¦¤̤¤4µ¤êó [ Dµ¤¬…¥ ,ĥ˥ œ½¥ û$ü¯¥"D´¥ Û°û$¯¥Dì´¥ ץإü¹žŸgýÝ)üΡŠÄ‚¢üõ¢0üÝ£ûü�¤0Äˤõž°£LážÕ’(,ìž,Ò¡œþžþŸþ„œ þó¡þ¢þª›£þó¤þ¥þ÷§n¦»�€'�†š� Õ’(ªœ‚¢¹-Ͷ ᣾¨(a«©({œ�¤®Ͷ�Ó×1ÌÞ Lð°û;4†š7†š@†šÛ†šäS†AV‚ZŸ’Ÿ ’Ø ŸkŸ¸. © (ÇÝô êó  —£(nˆþÝô „êó G±ã&Ϧ(ÚÕ’(¦Õ’(­$á«|á«Dæ«Î�)Tæ«üÑ«! û$üë0DÈ«Ϧ($ëAüÈ«+ú«àü�«k¸«°£L «,««s°ûœ°ûËÌÞ å5‚8fÎ�ýϦ(»$õ±|õ±Dú±Î�)Tú±üç± û$üÙ±.DÞ±Ϧ($Ù±AüÞ±)޲áü©±eα°£L¸±ñs°ûœ°ûËÌÞ å5’8fÎ�ýϦ(»¤ù¶Å‚”·âüÀ¶Tî¶°£LÔ¶Å‚$ß¶¦‡Iœ˜»²»ãüäºN�»°£Løºƒ»êFlû½Ó×޾äüν@Ó×Dè½ÌÞ ,Þ½ 1|µÃDºÃÎ�$µÃTºÃ¬µÃÐÃåüŽÃB,¥ÃÌÞ ,›Ã°ûv8Î�“|˜ÈD�ÈÎ�$˜ÈT�Èœ˜È±ÈæüóÇ>,ˆÈÌÞ ,þǰûv8Î�“LˆÍ°û—ÍçüßÌ8°û$ùÌÌÞ ,ïÌ 1|çÑDìÑÎ�$çÑTìÑ*¼çÑ,÷Ñ öQ<÷Ñ„ÒèüµÑOðüdÐÑÌÞ ,ÆÑí³›°û£AÎ�ÀË·(ŽlâÖÅ‚õÖéü±ÖDÅ‚DÏÖÌÞ ,ÅÖ 1l³ÙÆÙêü†Ù@$¤ÙÌÞ ,šÙ /|‹ÞD�ÞÎ�$‹ÞT�Þ¬‹Þ|£ÞD¨ÞÎ�$£ÞT¨Þœ£Þü‹Þ+¼ÞëüãÝY$üÝÌÞ ,òÝœ°ûÎl°ûž*MÎ�úÎ�Á|æäDëäˆþ$æäTëäüÔä*ŒÔä êF4÷ä*„åìü”äp$ÅäÌÞ ,¬ä4³äÓ×�Ñ !NˆþÇî¼(¡¤ éT é Ó¢ûD«é+ºéôüðèJÌØ LŒéõ�(Døèâì3œ¾(�(êƒðêˆð€%(-°û:í³BKUì’ðƒ%ì�ð í³'1€ííð ühà¡2 í”ðDpí²ñóÀ()@6í˜ð…%cní³v®£~¼†šĆšƒžƒ«µóÀ(öóÀ(³€îíð'8pî²ñ'8@HUî£ð‰%Hîšðí³í³ßæí­´Jî Wa,Ãò”·ò\·ò ®ðü°û4*Ïòöü‰òFðüd òí³,–ò°û{9¥Å(†TØóDæó´Øóôó÷ü¯óE$Éóí³,¿óqd=D®õTÆõü®õ#t·õùB3Ô·õ×õøü‰õN,žõí³,”õ�‚>ù‰|Ð÷DÕ÷ ÷$Ð÷TÕ÷.Tã÷¤ã÷D…ø”û÷üÏ÷> !“øùü—÷|$À÷í³,§÷4®÷»Ö¦1Ñ 4a�É(DTËùœËù ,DåùŒåù ,ü½ù; û$þùúü‡ùw °û$®ùí³,•ù4œùê�Œú±Ì�ŒÀCÑ Fu,­ül­ü,³üË·((<³ü|¬üû³$¨üE$Áüÿü÷ûJÓ×,—üÓ×,€ü°û,‡üðü—í³°'÷)YË·(Éû³¦,ÇýlÇý,ÍýË·((<Íý|Æý×Ò$ÂýE$Ûý�ü�ýZÍ™L©ýÍ™LŽý°û,™ýðü—í³°'÷)YË·(É×Ò¦,äþläþ,êþË·((<êþ|ãþ ‘ýðü$ßþN-øþ„ü¯þIä­$Ïþä­,¸þ°û,¿þðü í³¹'÷)YË·(Ò¿Ò(¯\îÿL€€üàÿ+ û$‘€†ü±ÿ`°û$Ñÿðü,¹ÿzn†A@T‡�D˜�üø€* ¶ý¨�ˆüÊ€^ðüdူû$Ò€~r¸ëAT›‚\©‚Ì›‚D¸‚LÄ‚¬¸‚ü›‚2 !Ó‚Šüæ�m$Œ‚í³,ì�„Å%,ó�Éøë»®9†A;iT½ƒT˃ĽƒDÙƒD僤كü½ƒ0 !óƒŒü‘ƒb$®ƒ„Å%,—ƒí³$žƒÉøë»®9¸ë<j(ñ¾‰ñÉ�%(-3áý@¯ƒ HQ[(óˉ Ÿ ä­�ó›Š ’ä­‹ã,¨¼hóÊ‹  ä­ +  7 ¨¼¡¦¬Ö³¸£¨puÔóЉ’%ï ÏÁû¯ƒ Ù ä­ä­¨¼ «©ä­â¨¼êäÈ ò†šúZœhs«©¨¼gäÈ ¨¼4¬Ö’ôÔ‰”%ôÒ‰ ¯ƒ $-7�õ›Š‹ã üh‹ãà¡4 õÖ‰FhõÊ‹óÀ()@6õÚ‰–%cn¯ƒ v®£~¾«©Ɔšƒžƒ«µ¹à(øóÀ(³�ö›Š‹ã‹ã+0öù <AIPhöÊ‹'8@HUö剚%Hö܉¯ƒ ¯ƒ ÷«©ÿ«©°·Mî Zdöù @ì‰� Š%¬�ŽüÄŒháýLõŒ‹ã<ÏŒ4㌿‰Ñ J¼‘�t‘�µä< �"ü‘� 4©�àäAD©�ü‚�8t‚�ÌŸB4³�(À��üÀ�€áýLî�<Ì�4Ü�‹ã›êíÌ¿‰(Ñ +ZµäøàäÕÌŸ±dŸ“‹ã±“�üò’?‹ãL‹“¯ƒ ,�“ 1\̕ݕ‘ü¤•9,¼•¯ƒ ,²• 0(÷Øš÷Ýš %(-3÷þ@Û”HQ[(ùåš ˜ä­�ù±› ’ä­‹ã,¨¼Pùì› ¡ä­ °û,  8 ¨¼¢§¬Ö´¹¤©qvÕùꚣ%ð ÏÁüÛ”Ù ä­ä­¨¼«©ä­ã¨¼ë í³öí³þ^œlw«©¨¼kƒí(¨¼8¬Ö–ú%úìš Û”$-7�û±›‹ã¹à(* ûðš<Pûì›°û üh°ûà¡4KAûôš§%nyÛ”�®£‰¿«©Çí³Ž©ƒ¶À¹à(ùŸï(¾�ü±›‹ã‹ã+0öù <AIPPüì›°û°û+0 ù±°û°ûGLTYanüÿš«%HüöšÛ”Û”«©«©"í³Ìí³ÔQî ^höù ]Ùñ(\¿¢$Ä¢ «�°û$¿¢4Ä¢TÜ¢Dꢴܢ¼“£ ›%°£ù€ Ž"`ù¯Ž"`¨�¤ô¢¢ä­2ùÿñ@`áÿñ`ºò U#“üä¡Ìü®¢‚ ÷þ,ž¢‹ã<þ¡Íó($’¢°û$²¢ú'ŒÊÝÍ¿‰H¸ëK¸ëN“Çó(­¨� ºò ÛĪ« +|ª« «"<º«M$Ä« üŸ«*TŸ« “Íó(•H-Ï«üتw Ϋ•7÷þ,�«<óªÍó($ƒ«‹ãÍó(Ðe¿‰0¸ë3•µ÷(U…ø(æÍó(Ÿd¿®‹ãÑ®—ü’®?‹ãL«®Û”,¡® 1\�°$†° ›$�°4†°Œ�°˜°˜üÚ¯>,ñ¯Û”,篰ûx8åú(•\±$DZåú($±4DZ|±×±™ü�±:,²±Û”,¨±°ûv8åú(“\š³$Ÿ³åú($š³4Ÿ³*œš³,¦³Ë·(O<¦³³³šüá²Rðü¼ø²Û”,î²í³™°û¡Aåú(¾Ë·(ŒL•´°û¤´›üð³4°û$†´Û”,ü³ 1\ж$�¶åú($ж4�¶*´Š¶D–¶�É(OT–¶¦¶œüáµE$ûµÛ”,ñµí³—°ûŸ?åú(¼�É(Š\á·$æ·åú($á·4æ·*Œá·í· øQ,í·ø·�ü¼·<,Ñ·Û”,Ç·í³š°û¢@åú(¿è�)�P�  Àø� äÈ ŸŸ öãó‹¤ô‹ljô²ßk# ½‡\a †§ƒ)s{(� ¬¿ ¬%� ±¿°%2Ž€>¹ÐFð†šø§ƒ)Ý §ƒ)èq{–³(ùƒ) (‚ ³¿ £ ä­P‚  À 1ä­*¨¼ø‚ äÈ ¤ä­ §ƒ)-  9 ¨¼¡¦¬Ö³¸£¨rwÔ‚ ¸¿²%ï ÏÁû¹ÐÙ ä­ä­¨¼ †šä­ä¨¼ì ô„)÷ô„)ÿ]œkv†š¨¼jð‡)¨¼9¬Ö•ƒ ¼¿´%ƒ º¿ ¹Ð$-7P„  À'8ø„ äÈ §ƒ)§ƒ),1 ù±§ƒ)§ƒ)HMUZbo„ Ç¿·%H„ ¾¿¹Ð¹Ðùô„)Êô„)ÒNî [e¥Š)ü Š ¬ö‹ãýù*2xŠ Æö(Š öõ ¸%Š ûõ¼%2ƒ�> ƒ�I‹ã««©³ƒ†š‹q{ýùß–³®(‹ ýõ ¥ä­ ‹ ¬ö æ ä­‹ã,¨¼x‹ Æö Ùä­ +  7 ¨¼¡¦¬Ö³¸£¨puÔ‹ ‚ö¾%ï ÏÁû’�)Ù ä­ä­¨¼ «©ä­â¨¼êäÈ ò†šúZœhs«©¨¼gäÈ ¨¼4¬Ö’øŽ ãü6ƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ¢§ †˜‘)¹Á(Ž °ü ¿%Ž µüÄ%1¿%¿%¤ìÁ%Ç,É @›—ªÎ®j ƒ“)u˜‘)C ˜‘)O“�°’)m(� ·ü ¦ä­ø� ãü62ä­˜‘),8¨¼ej¤¹ w|glŽ� ¼üÇ%©ÏÁµ¸“)½ÙÂÅä­Íä­»¨¼à Ì“)ÎÌ“)ÖùœÞ•)¨¼¤¹ &(� �¨� ¢¨Ò%(-Å‚:ú‹BKU(’ ª¨'H’ «­œí‹ãLT§ä­3 ? ¨¼€…±Ç ’—n¤©±¨ä­ÀůŠÒ×ßäì©ä­û¯Å ’ ¯¨Õ%9? ÏÁMú‹VÙÂ_gä­pä­y«©Tä­‹¨¼f¿�o§œµ¿À –Í¿�¨¼­±Ç â¯Å é¯Å ð“ ³¨×%“ ±¨ ú‹'1H” µ¨,; K ú‹\ ix€�•�ª²ú‹ÃÐH” «­ú‹ œí‹ã/ú‹@ œí‹ãY  e  sxê§ „ ‰‘” ¾¨Ú%‹‘˜Ÿ«ú‹´ú‹½ÅÍÔú‹ú‹âêò«©«©%¿�.¿�7ú‹ú‹(ú‹1ú‹:Dî R©òaÀòn¿À œ ŠÂ© ‘ê§½,޲‰• ñ|])• Â}] !• «}] À²üÙ±gµù• ñ|`]$ö±ú‹,ì±l•²T,ô¶\î¶$¾· Å™‹ãš·œí‹ãL¢· Å™‹ã ª·Ó·¶ü¹¶šüˆ·#�njҶú‹,ȶ´ˆ·‹ã”÷Œ«Z(– Œã– ‘ãà%(æƒ4‰È<EOlÉå Û%˜  ãã%8˜ ™ãæƒ(™ ¢ã%,4ª ä­™ ¦ãPXµä­$qv¯Å ƒˆ�™ §ãå%«ÏÁ·‰È¿ÙÂÇä­ÏÖßœìö¯Å š «ãç%š ©ã‰È!+H› ­ã› ¶ãê%@EKV‰È^‰Èfmt}î Š©ò˜Àò¤¬øœ êƒ!ŸŸ öãó‹¤ô‹ljô²ßk#ä…½‡]b †˪)t|(œ —ƒ í%œ œƒñ%/ø„;åéC˪)Ì ˪)×_iž«)ô(� žƒ « ä­ø� êƒ!˪)$¨¼QV±Ç chSu� £ƒó%�ÏÁœåé¤Ù¬䭴¨¼¢ ‡¬)­‡¬)µØœåïö­)¨¼â±Ç ž §ƒõ%ž ¥ƒ åé'1øŸ êƒ!˪)˪),1 ù±˪)˪)HMUŸ ²ƒø%HŸ ©ƒåéå釬)—‡¬)Ÿ8î EOЯ)É(  ¡—)p  ¹ª ‹‡Å‚ %�Š 1 9P  ñ¡ ¡ð ˜ ù%   ¥—h  †ž‹ðå ù%M@  •™ó†h  ã™ó†:*W ù%Ãy ù% â  ¦—„&®´»ÂÉ ä…× ä…ãëé‹ñ†šÜ놚X`†š¶¾ú‹Å‚H¿À T°†D¿À ¶¿À  ¿À [ ”�Šo–³8–³òÇŒ±–³›(¡ ¨—)p¡ ¹ª‹‡Å‚NViä­2:jä­FR¨¼•𤹠§¬�†¾P¡ ñ¡¡ðàè¬ä­2:1ä­FR¨¼(.¤¹ <B…ŠUh¡ †ž ‹ðx �­ä­4< ä­I U¨¼Ãɤ¹ × Ýˆ�ð@¡ •™ó†h¡ ã™ó†09kä­PXlä­d¨¼X ` ä­m y  ¨¼Ÿ¥¬Ö³¹ÉÎ ¶ »Ö¡ ­—†&òøÿ ÏÁÊ´)$ÙÂ-5é‹H†š4ä­Pä­c¨¼lä­X¨¼aäÈ j†š+ä­�ä­=¨¼FäÈ O†šð䭼䭨¼ äÈ ú‹°ä­éä­Â¨¼ËÓ�Ôœ¿À 5°†%¿À ê ¿À �¿À /h Ó�¨¼F¤¹ }äÈ ¨¼Ä¤¹ ŽäÈ ¨¼=¤¹ Ÿé‹¨¼³äÈ ¨¼ ¬Öº¢ ±—ˆ&¢ ¯— "Ê´)*3=H£ ³—,; K!Ê´)\ !i ~†“�¤"Ê´)µ" Ñ#Ê´)â#ï þ$Ê´) $  -%Ê´)? %M p£ ¹ª&Ê´)&‹‡Å‚/'Ê´)@'‹‡Å‚Ye sx ù±ú‹ú‹� ”œP£ ñ¡(Ê´)(¡ð.)Ê´)?)¡ðWcqv»Þ‚‡�h£ †ž*Ê´)*‹ð.+Ê´)?+‹ðWcqv»Þ‚‡� @£ •™,Ê´) ,ó†h£ ã™-Ê´) -ó†\.Ê´)m.ó†W/Ê´)h/ó†® ºÈÍœóÙÞ æí Î Úèí»Þùþ #£ ¼—‹&–œ£ª±¸¿0ËÊ´)ÔÊ´)ÝåíôÊ´)Ê´) "*é‹ †šè鋆šú/£�8£�AäÈ äÈ %†šð†šùäÈ äÈ  †š¨†š±äÈ ºäÈ Ãú‹mú‹vÓ�Ó�ˆÊ´)îÊ´)÷Ê´)Ê´) Ê´)Ê´)Ê´)$Ê´)-Ê´)6Ê´)?Ê´)HÊ´)QÊ´)ZÊ´)cÊ´)lvî „©ò“Àò ¿À ‡ °†f ŠÂ¡ù€¿À OŠÂ\¿À ýŠÂ ¿À ¸ŠÂÅ+·Ä)Ù»Þ?»Þ²œó%»Þþа – -ù‡ †ù‡/7а ¶ -ù‡ÝÏ))2(° ä - Œ&° é -° è ->�&M¬‡Y–×aù‡Ü ù‡çù‡³›Ñ)»�—ÝÏ)ÝÏ)ßù‡„(± ë - ® ä­б – - ¯ä­ù‡+¨¼б ¶ - °ä­ ù‡+  7 ¨¼Ÿ¤¬Ö±¶¢§puÒ± ð -’&ì ÏÁø–×Ù ä­ä­¨¼ ›Ñ)ä­á¨¼é ›Ñ)ô›Ñ)üZœhs›Ñ)¨¼h©Ô)¨¼6¬Ö’P² þ-˜² ×-ìÜ Ûú)1 ² »-ìÜ Ûú)2(² ž- “&² £-² ¢-A˜&Pù‡\›Ñ)dú†šìÜ 鞊 ñìÜ ÃžŠ Ë�§–³@Ûú%ÛúöìÜ ˜(½ ®<- ± ä­ð½ Ú<-ü¾"¨¼NS±Ç `eQr½ ³<-Ÿ&ŒÏÁ˜ ™&™&š&…òœ&óà ð?ü¥½¢ÔÙÂÜä­ä¨¼Ó  ü¾áÖÙ)é œ$ÔÙ)¨¼±Ç 9<Ó.dÝ.,Þ.l÷.$÷._”ó.$ .Ìó.$ˆ. Œ.D›.$¦. 0ü´\. dº.$º.$Â.97 Å.lÙ. $Ù.     å. ”Õ.  $  . ÌÕ. $ê. î. Lü.  „.   = üÇI. É�.h p øÉ´\. >D �.\™.$ .Aü®\. d´.$´.$¼.Z7  ¿.lÓ.$Ó. ß.”Ï.$ . ÌÏ.$ä. è.Lö. þ.   =üÁI. ʉ.h p øÊ®\. >D ‰.\“.$š.aü¨\.  d®.$®.$¶.z7  ¹.lÍ.$Í. Ù.”É.$ .ÌÉ.$Þ. â.Lð.  ø.   = ü»I. ˃ .h p  øË¨\." >"D ƒ .� . • .– .âüÕÁ.üÏÇ.ü—ÿ.$ц$\í.ц$pM4Ò¼U··yyV÷{ƒŠJ>>Ýêç)|ÏÃÃ……bêç)…�” %‚ÿ†ÚV256Á256Á\µ .  Lµ . â!ü› &.åц$\§ .'_Á256Á·ù ÑÓ(ìò4‚•<C\�ý ÑÖ(ìò4ä­<C4‰  ±³'Õ3È�;BDÑ  ±¶'Õ3ì¼;B$º ±¹'Õ3‚Ñ;Bt£> ¢£'²Ÿ3å�;B4ßí ¹½(á¡4©¤<C,Ãî ¹À(á¡4Ž¥<C¢„ ¾À(¹¬4º±<C¶„ ¾Ã(¹¬4º±<C$Ê„ ¾Æ(¹¬4º±<C|Ì ÓÔ'–®3¨¯;B¡ ãå'¨¯3:A¡" ãè'¨¯3:A´²F ÷ø'â°3ì�;BôËË Ÿ (Á´4‘µ<Cl¼Û µ¶(š¶4ÜÌ<CtÏû · ¸ -· · ¸ £�º ó÷ » ô÷  3ôyJÊ-§v}ˆê…Œ¤ýÅ äå(³»4óÁ<C¤ž! Ÿ 'ÚÀ3:Aä„! �‘)��‘ñ““ó –| ?õƒcÓ×kr,Å= ¼¿)¶©5ä­=D4Ù= ¼Â)¶©5<CüÚæ!" àªÆ á/”©;÷˜CJìäƒ" éªÆê.�Á:ÄšBIô‘¢" òªÆó.ÝØ:”œBIüƒ! £óëªÆ!¤0ìÉ<¹ÊDKüÕ†# Ö × )‚Ñ5<Cü‰>! ¯óëªÆ!°0ÝÑ<¸Ê"DKüï[/ ƬðÜÒ#Ç2©ä">ýâ"FMœç™ ä óëå ,ÿÒ8óë@GÌi$ ñ ò &ýÕ2ц$:AÄi% ù ú &ÍÖ29@̦ % €!�!*�×6=DKÌß% ˆ!‰!-ù×9@GNU4ã�( ¥!§!(´Û4ÍÖ<C<÷�( ¥!ª!(´Û4�×<C<�ž( ¥!­!(´Û4ù×<C4£ž( ¥!°!(´Û4áØ<C,·ž( ¥!³!(´Û4®Ù<C<Éž( ¥!¶!(´Û4ýÕ<C\ßž( ¥!¹!(´Û4°Õ<C´Î) ¿!À!' Ý3’Ó";B¬ê2) Ò!Ó!'ÈÞ3:A¤ïË) ú!û!(‹ã4ÈÞ<C”¸Ñ) �"�"(³ä4ÈÞ<Cøçª±!) ç"è"+êæ7¿á?Føç�·() ó"ô"+ìç7¾â?Føûª±!) Ç#È#+ªê7¿á?Føû�·() Ó#Ô#+¬ë7¾â?F܃0 ®$¯$'Äò3þò;B¼“- Ð$Ñ$'©ö3øÞ';Bü‰@# á$â$(É÷4��<CüûE% è$é$(Žø4��<C|Òu ¨©)¨¨©¦Þ«óç ò^yÏŠu÷-fÓ×nu”´· ÂÃ*ÂÂûàÅóç “§¬¾üýägÙ™ov<£­ È%Î%(Å‚4‹ã<C¬µƒ í%î%(ø„4˪)<Cü¶<#- ™&š&*‚Ù)6ü¾>E µ˜ û‰Ìì«,ùìÒÏLéíú!—,Ä&ò$§è$±ðû$ŽéLó‰Š%á�,�››%ûêTÕ¿¬%Ûë¬�ö¸%¤ìtÊü¿%öŒDʨÈ%ûíLÂãÛ%ƒïTÀƒí%ÛïtÈ—ù%ü†ðü©Ò¤Ò This crate exposes a variety of regex engines used by the `regex` crate. It provides a vast, sprawling and "expert" level API to each regex engine. The regex engines provided by this crate focus heavily on finite automata implementations and specifically guarantee worst case `O(m * n)` time complexity for all searches. (Where `m ~ len(regex)` and `n ~ len(haystack)`.) The primary goal of this crate is to serve as an implementation detail for the `regex` crate. A secondary goal is to make its internals available for use by others. # Table of contents * [Should I be using this crate?](#should-i-be-using-this-crate) gives some reasons for and against using this crate. * [Examples](#examples) provides a small selection of things you can do with this crate. * [Available regex engines](#available-regex-engines) provides a hyperlinked list of all regex engines in this crate. * [API themes](#api-themes) discusses common elements used throughout this crate. * [Crate features](#crate-features) documents the extensive list of Cargo features available. # Should I be using this crate? If you find yourself here because you just want to use regexes, then you should first check out whether the [`regex` crate](https://docs.rs/regex) meets your needs. It provides a streamlined and difficult-to-misuse API for regex searching. If you're here because there is something specific you want to do that can't be easily done with `regex` crate, then you are perhaps in the right place. It's most likely that the first stop you'll want to make is to explore the [`meta` regex APIs](meta). Namely, the `regex` crate is just a light wrapper over a [`meta::Regex`], so its API will probably be the easiest to transition to. In contrast to the `regex` crate, the `meta::Regex` API supports more search parameters and does multi-pattern searches. However, it isn't quite as ergonomic. Otherwise, the following is an inexhaustive list of reasons to use this crate: * You want to analyze or use a [Thompson `NFA`](nfa::thompson::NFA) directly. * You want more powerful multi-pattern search than what is provided by `RegexSet` in the `regex` crate. All regex engines in this crate support multi-pattern searches. * You want to use one of the `regex` crate's internal engines directly because of some interesting configuration that isn't possible via the `regex` crate. For example, a [lazy DFA's configuration](hybrid::dfa::Config) exposes a dizzying number of options for controlling its execution. * You want to use the lower level search APIs. For example, both the [lazy DFA](hybrid::dfa) and [fully compiled DFAs](dfa) support searching by exploring the automaton one state at a time. This might be useful, for example, for stream searches or searches of strings stored in non-contiguous in memory. * You want to build a fully compiled DFA and then [use zero-copy deserialization](dfa::dense::DFA::from_bytes) to load it into memory and use it for searching. This use case is supported in core-only no-std/no-alloc environments. * You want to run [anchored searches](Input::anchored) without using the `^` anchor in your regex pattern. * You need to work-around contention issues with sharing a regex across multiple threads. The [`meta::Regex::search_with`](meta::Regex::search_with) API permits bypassing any kind of synchronization at all by requiring the caller to provide the mutable scratch spaced needed during a search. * You want to build your own regex engine on top of the `regex` crate's infrastructure. # Examples This section tries to identify a few interesting things you can do with this crate and demonstrates them. ### Multi-pattern searches with capture groups One of the more frustrating limitations of `RegexSet` in the `regex` crate (at the time of writing) is that it doesn't report match positions. With this crate, multi-pattern support was intentionally designed in from the beginning, which means it works in all regex engines and even for capture groups as well. This example shows how to search for matches of multiple regexes, where each regex uses the same capture group names to parse different key-value formats. ``` use regex_automata::{meta::Regex, PatternID}; let re = Regex::new_many(&[ r#"(?m)^(?[[:word:]]+)=(?[[:word:]]+)$"#, r#"(?m)^(?[[:word:]]+)="(?[^"]+)"$"#, r#"(?m)^(?[[:word:]]+)='(?[^']+)'$"#, r#"(?m)^(?[[:word:]]+):\s*(?[[:word:]]+)$"#, ])?; let hay = r#" best_album="Blow Your Face Out" best_quote='"then as it was, then again it will be"' best_year=1973 best_simpsons_episode: HOMR "#; let mut kvs = vec![]; for caps in re.captures_iter(hay) { // N.B. One could use capture indices '1' and '2' here // as well. Capture indices are local to each pattern. // (Just like names are.) let key = &hay[caps.get_group_by_name("key").unwrap()]; let val = &hay[caps.get_group_by_name("val").unwrap()]; kvs.push((key, val)); } assert_eq!(kvs, vec![ ("best_album", "Blow Your Face Out"), ("best_quote", "\"then as it was, then again it will be\""), ("best_year", "1973"), ("best_simpsons_episode", "HOMR"), ]); # Ok::<(), Box>(()) ``` ### Build a full DFA and walk it manually One of the regex engines in this crate is a fully compiled DFA. It takes worst case exponential time to build, but once built, it can be easily explored and used for searches. Here's a simple example that uses its lower level APIs to implement a simple anchored search by hand. ``` use regex_automata::{dfa::{Automaton, dense}, Input}; let dfa = dense::DFA::new(r"(?-u)\b[A-Z]\w+z\b")?; let haystack = "Quartz"; // The start state is determined by inspecting the position and the // initial bytes of the haystack. let mut state = dfa.start_state_forward(&Input::new(haystack))?; // Walk all the bytes in the haystack. for &b in haystack.as_bytes().iter() { state = dfa.next_state(state, b); } // DFAs in this crate require an explicit // end-of-input transition if a search reaches // the end of a haystack. state = dfa.next_eoi_state(state); assert!(dfa.is_match_state(state)); # Ok::<(), Box>(()) ``` Or do the same with a lazy DFA that avoids exponential worst case compile time, but requires mutable scratch space to lazily build the DFA during the search. ``` use regex_automata::{hybrid::dfa::DFA, Input}; let dfa = DFA::new(r"(?-u)\b[A-Z]\w+z\b")?; let mut cache = dfa.create_cache(); let hay = "Quartz"; // The start state is determined by inspecting the position and the // initial bytes of the haystack. let mut state = dfa.start_state_forward(&mut cache, &Input::new(hay))?; // Walk all the bytes in the haystack. for &b in hay.as_bytes().iter() { state = dfa.next_state(&mut cache, state, b)?; } // DFAs in this crate require an explicit // end-of-input transition if a search reaches // the end of a haystack. state = dfa.next_eoi_state(&mut cache, state)?; assert!(state.is_match()); # Ok::<(), Box>(()) ``` ### Find all overlapping matches This example shows how to build a DFA and use it to find all possible matches, including overlapping matches. A similar example will work with a lazy DFA as well. This also works with multiple patterns and will report all matches at the same position where multiple patterns match. ``` use regex_automata::{ dfa::{dense, Automaton, OverlappingState}, Input, MatchKind, }; let dfa = dense::DFA::builder() .configure(dense::DFA::config().match_kind(MatchKind::All)) .build(r"(?-u)\w{3,}")?; let input = Input::new("homer marge bart lisa maggie"); let mut state = OverlappingState::start(); let mut matches = vec![]; while let Some(hm) = { dfa.try_search_overlapping_fwd(&input, &mut state)?; state.get_match() } { matches.push(hm.offset()); } assert_eq!(matches, vec![ 3, 4, 5, // hom, home, homer 9, 10, 11, // mar, marg, marge 15, 16, // bar, bart 20, 21, // lis, lisa 25, 26, 27, 28, // mag, magg, maggi, maggie ]); # Ok::<(), Box>(()) ``` # Available regex engines The following is a complete list of all regex engines provided by this crate, along with a very brief description of it and why you might want to use it. * [`dfa::regex::Regex`] is a regex engine that works on top of either [dense](dfa::dense) or [sparse](dfa::sparse) fully compiled DFAs. You might use a DFA if you need the fastest possible regex engine in this crate and can afford the exorbitant memory usage usually required by DFAs. Low level APIs on fully compiled DFAs are provided by the [`Automaton` trait](dfa::Automaton). Fully compiled dense DFAs can handle all regexes except for searching a regex with a Unicode word boundary on non-ASCII haystacks. A fully compiled DFA based regex can only report the start and end of each match. * [`hybrid::regex::Regex`] is a regex engine that works on top of a lazily built DFA. Its performance profile is very similar to that of fully compiled DFAs, but can be slower in some pathological cases. Fully compiled DFAs are also amenable to more optimizations, such as state acceleration, that aren't available in a lazy DFA. You might use this lazy DFA if you can't abide the worst case exponential compile time of a full DFA, but still want the DFA search performance in the vast majority of cases. A lazy DFA based regex can only report the start and end of each match. * [`dfa::onepass::DFA`] is a regex engine that is implemented as a DFA, but can report the matches of each capture group in addition to the start and end of each match. The catch is that it only works on a somewhat small subset of regexes known as "one-pass." You'll want to use this for cases when you need capture group matches and the regex is one-pass since it is likely to be faster than any alternative. A one-pass DFA can handle all types of regexes, but does have some reasonable limits on the number of capture groups it can handle. * [`nfa::thompson::backtrack::BoundedBacktracker`] is a regex engine that uses backtracking, but keeps track of the work it has done to avoid catastrophic backtracking. Like the one-pass DFA, it provides the matches of each capture group. It retains the `O(m * n)` worst case time bound. This tends to be slower than the one-pass DFA regex engine, but faster than the PikeVM. It can handle all types of regexes, but usually only works well with small haystacks and small regexes due to the memory required to avoid redoing work. * [`nfa::thompson::pikevm::PikeVM`] is a regex engine that can handle all regexes, of all sizes and provides capture group matches. It tends to be a tool of last resort because it is also usually the slowest regex engine. * [`meta::Regex`] is the meta regex engine that combines *all* of the above engines into one. The reason for this is that each of the engines above have their own caveats such as, "only handles a subset of regexes" or "is generally slow." The meta regex engine accounts for all of these caveats and composes the engines in a way that attempts to mitigate each engine's weaknesses while emphasizing its strengths. For example, it will attempt to run a lazy DFA even if it might fail. In which case, it will restart the search with a likely slower but more capable regex engine. The meta regex engine is what you should default to. Use one of the above engines directly only if you have a specific reason to. # API themes While each regex engine has its own APIs and configuration options, there are some general themes followed by all of them. ### The `Input` abstraction Most search routines in this crate accept anything that implements `Into`. Both `&str` and `&[u8]` haystacks satisfy this constraint, which means that things like `engine.search("foo")` will work as you would expect. By virtue of accepting an `Into` though, callers can provide more than just a haystack. Indeed, the [`Input`] type has more details, but briefly, callers can use it to configure various aspects of the search: * The span of the haystack to search via [`Input::span`] or [`Input::range`], which might be a substring of the haystack. * Whether to run an anchored search or not via [`Input::anchored`]. This permits one to require matches to start at the same offset that the search started. * Whether to ask the regex engine to stop as soon as a match is seen via [`Input::earliest`]. This can be used to find the offset of a match as soon as it is known without waiting for the full leftmost-first match to be found. This can also be used to avoid the worst case `O(m * n^2)` time complexity of iteration. Some lower level search routines accept an `&Input` for performance reasons. In which case, `&Input::new("haystack")` can be used for a simple search. ### Error reporting Most, but not all, regex engines in this crate can fail to execute a search. When a search fails, callers cannot determine whether or not a match exists. That is, the result is indeterminate. Search failure, in all cases in this crate, is represented by a [`MatchError`]. Routines that can fail start with the `try_` prefix in their name. For example, [`hybrid::regex::Regex::try_search`] can fail for a number of reasons. Conversely, routines that either can't fail or can panic on failure lack the `try_` prefix. For example, [`hybrid::regex::Regex::find`] will panic in cases where [`hybrid::regex::Regex::try_search`] would return an error, and [`meta::Regex::find`] will never panic. Therefore, callers need to pay close attention to the panicking conditions in the documentation. In most cases, the reasons that a search fails are either predictable or configurable, albeit at some additional cost. An example of predictable failure is [`BoundedBacktracker::try_search`](nfa::thompson::backtrack::BoundedBacktracker::try_search). Namely, it fails whenever the multiplication of the haystack, the regex and some constant exceeds the [configured visited capacity](nfa::thompson::backtrack::Config::visited_capacity). Callers can predict the failure in terms of haystack length via the [`BoundedBacktracker::max_haystack_len`](nfa::thompson::backtrack::BoundedBacktracker::max_haystack_len) method. While this form of failure is technically avoidable by increasing the visited capacity, it isn't practical to do so for all inputs because the memory usage required for larger haystacks becomes impractically large. So in practice, if one is using the bounded backtracker, you really do have to deal with the failure. An example of configurable failure happens when one enables heuristic support for Unicode word boundaries in a DFA. Namely, since the DFAs in this crate (except for the one-pass DFA) do not support Unicode word boundaries on non-ASCII haystacks, building a DFA from an NFA that contains a Unicode word boundary will itself fail. However, one can configure DFAs to still be built in this case by [configuring heuristic support for Unicode word boundaries](hybrid::dfa::Config::unicode_word_boundary). If the NFA the DFA is built from contains a Unicode word boundary, then the DFA will still be built, but special transitions will be added to every state that cause the DFA to fail if any non-ASCII byte is seen. This failure happens at search time and it requires the caller to opt into this. There are other ways for regex engines to fail in this crate, but the above two should represent the general theme of failures one can find. Dealing with these failures is, in part, one the responsibilities of the [meta regex engine](meta). Notice, for example, that the meta regex engine exposes an API that never returns an error nor panics. It carefully manages all of the ways in which the regex engines can fail and either avoids the predictable ones entirely (e.g., the bounded backtracker) or reacts to configured failures by falling back to a different engine (e.g., the lazy DFA quitting because it saw a non-ASCII byte). ### Configuration and Builders Most of the regex engines in this crate come with two types to facilitate building the regex engine: a `Config` and a `Builder`. A `Config` is usually specific to that particular regex engine, but other objects such as parsing and NFA compilation have `Config` types too. A `Builder` is the thing responsible for taking inputs (either pattern strings or already-parsed patterns or even NFAs directly) and turning them into an actual regex engine that can be used for searching. The main reason why building a regex engine is a bit complicated is because of the desire to permit composition with de-coupled components. For example, you might want to [manually construct a Thompson NFA](nfa::thompson::Builder) and then build a regex engine from it without ever using a regex parser at all. On the other hand, you might also want to build a regex engine directly from the concrete syntax. This demonstrates why regex engine construction is so flexible: it needs to support not just convenient construction, but also construction from parts built elsewhere. This is also in turn why there are many different `Config` structs in this crate. Let's look more closely at an example: [`hybrid::regex::Builder`]. It accepts three different `Config` types for configuring construction of a lazy DFA regex: * [`hybrid::regex::Builder::syntax`] accepts a [`util::syntax::Config`] for configuring the options found in the [`regex-syntax`](regex_syntax) crate. For example, whether to match case insensitively. * [`hybrid::regex::Builder::thompson`] accepts a [`nfa::thompson::Config`] for configuring construction of a [Thompson NFA](nfa::thompson::NFA). For example, whether to build an NFA that matches the reverse language described by the regex. * [`hybrid::regex::Builder::dfa`] accept a [`hybrid::dfa::Config`] for configuring construction of the pair of underlying lazy DFAs that make up the lazy DFA regex engine. For example, changing the capacity of the cache used to store the transition table. The lazy DFA regex engine uses all three of those configuration objects for methods like [`hybrid::regex::Builder::build`], which accepts a pattern string containing the concrete syntax of your regex. It uses the syntax configuration to parse it into an AST and translate it into an HIR. Then the NFA configuration when compiling the HIR into an NFA. And then finally the DFA configuration when lazily determinizing the NFA into a DFA. Notice though that the builder also has a [`hybrid::regex::Builder::build_from_dfas`] constructor. This permits callers to build the underlying pair of lazy DFAs themselves (one for the forward searching to find the end of a match and one for the reverse searching to find the start of a match), and then build the regex engine from them. The lazy DFAs, in turn, have their own builder that permits [construction directly from a Thompson NFA](hybrid::dfa::Builder::build_from_nfa). Continuing down the rabbit hole, a Thompson NFA has its own compiler that permits [construction directly from an HIR](nfa::thompson::Compiler::build_from_hir). The lazy DFA regex engine builder lets you follow this rabbit hole all the way down, but also provides convenience routines that do it for you when you don't need precise control over every component. The [meta regex engine](meta) is a good example of something that utilizes the full flexibility of these builders. It often needs not only precise control over each component, but also shares them across multiple regex engines. (Most sharing is done by internal reference accounting. For example, an [`NFA`](nfa::thompson::NFA) is reference counted internally which makes cloning cheap.) ### Size limits Unlike the `regex` crate, the `regex-automata` crate specifically does not enable any size limits by default. That means users of this crate need to be quite careful when using untrusted patterns. Namely, because bounded repetitions can grow exponentially by stacking them, it is possible to build a very large internal regex object from just a small pattern string. For example, the NFA built from the pattern `a{10}{10}{10}{10}{10}{10}{10}` is over 240MB. There are multiple size limit options in this crate. If one or more size limits are relevant for the object you're building, they will be configurable via methods on a corresponding `Config` type. # Crate features This crate has a dizzying number of features. The main idea is to be able to control how much stuff you pull in for your specific use case, since the full crate is quite large and can dramatically increase compile times and binary size. The most barebones but useful configuration is to disable all default features and enable only `dfa-search`. This will bring in just the DFA deserialization and search routines without any dependency on `std` or `alloc`. This does require generating and serializing a DFA, and then storing it somewhere, but it permits regex searches in freestanding or embedded environments. Because there are so many features, they are split into a few groups. The default set of features is: `std`, `syntax`, `perf`, `unicode`, `meta`, `nfa`, `dfa` and `hybrid`. Basically, the default is to enable everything except for development related features like `logging`. ### Ecosystem features * **std** - Enables use of the standard library. In terms of APIs, this usually just means that error types implement the `std::error::Error` trait. Otherwise, `std` sometimes enables the code to be faster, for example, using a `HashMap` instead of a `BTreeMap`. (The `std` feature matters more for dependencies like `aho-corasick` and `memchr`, where `std` is required to enable certain classes of SIMD optimizations.) Enabling `std` automatically enables `alloc`. * **alloc** - Enables use of the `alloc` library. This is required for most APIs in this crate. The main exception is deserializing and searching with fully compiled DFAs. * **logging** - Adds a dependency on the `log` crate and makes this crate emit log messages of varying degrees of utility. The log messages are especially useful in trying to understand what the meta regex engine is doing. ### Performance features **Note**: To get performance benefits offered by the SIMD, `std` must be enabled. None of the `perf-*` features will enable `std` implicitly. * **perf** - Enables all of the below features. * **perf-inline** - When enabled, `inline(always)` is used in (many) strategic locations to help performance at the expense of longer compile times and increased binary size. * **perf-literal** - Enables all literal related optimizations. * **perf-literal-substring** - Enables all single substring literal optimizations. This includes adding a dependency on the `memchr` crate. * **perf-literal-multisubstring** - Enables all multiple substring literal optimizations. This includes adding a dependency on the `aho-corasick` crate. ### Unicode features * **unicode** - Enables all Unicode features. This feature is enabled by default, and will always cover all Unicode features, even if more are added in the future. * **unicode-age** - Provide the data for the [Unicode `Age` property](https://www.unicode.org/reports/tr44/tr44-24.html#Character_Age). This makes it possible to use classes like `\p{Age:6.0}` to refer to all codepoints first introduced in Unicode 6.0 * **unicode-bool** - Provide the data for numerous Unicode boolean properties. The full list is not included here, but contains properties like `Alphabetic`, `Emoji`, `Lowercase`, `Math`, `Uppercase` and `White_Space`. * **unicode-case** - Provide the data for case insensitive matching using [Unicode's "simple loose matches" specification](https://www.unicode.org/reports/tr18/#Simple_Loose_Matches). * **unicode-gencat** - Provide the data for [Unicode general categories](https://www.unicode.org/reports/tr44/tr44-24.html#General_Category_Values). This includes, but is not limited to, `Decimal_Number`, `Letter`, `Math_Symbol`, `Number` and `Punctuation`. * **unicode-perl** - Provide the data for supporting the Unicode-aware Perl character classes, corresponding to `\w`, `\s` and `\d`. This is also necessary for using Unicode-aware word boundary assertions. Note that if this feature is disabled, the `\s` and `\d` character classes are still available if the `unicode-bool` and `unicode-gencat` features are enabled, respectively. * **unicode-script** - Provide the data for [Unicode scripts and script extensions](https://www.unicode.org/reports/tr24/). This includes, but is not limited to, `Arabic`, `Cyrillic`, `Hebrew`, `Latin` and `Thai`. * **unicode-segment** - Provide the data necessary to provide the properties used to implement the [Unicode text segmentation algorithms](https://www.unicode.org/reports/tr29/). This enables using classes like `\p{gcb=Extend}`, `\p{wb=Katakana}` and `\p{sb=ATerm}`. * **unicode-word-boundary** - Enables support for Unicode word boundaries, i.e., `\b`, in regexes. When this and `unicode-perl` are enabled, then data tables from `regex-syntax` are used to implement Unicode word boundaries. However, if `regex-syntax` isn't enabled as a dependency then one can still enable this feature. It will cause `regex-automata` to bundle its own data table that would otherwise be redundant with `regex-syntax`'s table. ### Regex engine features * **syntax** - Enables a dependency on `regex-syntax`. This makes APIs for building regex engines from pattern strings available. Without the `regex-syntax` dependency, the only way to build a regex engine is generally to deserialize a previously built DFA or to hand assemble an NFA using its [builder API](nfa::thompson::Builder). Once you have an NFA, you can build any of the regex engines in this crate. The `syntax` feature also enables `alloc`. * **meta** - Enables the meta regex engine. This also enables the `syntax` and `nfa-pikevm` features, as both are the minimal requirements needed. The meta regex engine benefits from enabling any of the other regex engines and will use them automatically when appropriate. * **nfa** - Enables all NFA related features below. * **nfa-thompson** - Enables the Thompson NFA APIs. This enables `alloc`. * **nfa-pikevm** - Enables the PikeVM regex engine. This enables `nfa-thompson`. * **nfa-backtrack** - Enables the bounded backtracker regex engine. This enables `nfa-thompson`. * **dfa** - Enables all DFA related features below. * **dfa-build** - Enables APIs for determinizing DFAs from NFAs. This enables `nfa-thompson` and `dfa-search`. * **dfa-search** - Enables APIs for searching with DFAs. * **dfa-onepass** - Enables the one-pass DFA API. This enables `nfa-thompson`. * **hybrid** - Enables the hybrid NFA/DFA or "lazy DFA" regex engine. This enables `alloc` and `nfa-thompson`. Á µ˜ û]j‰^j«\jÒÏZjú!—Xjò$§èWjû$ŽéUjŠ%á�Sj›%ûêQj¬%ÛëOj¸%¤ìMj¿%öŒKjÈ%ûíIjÛ%ƒïGjí%ÛïEjù%Xk[k^k„¿ìVk”ììKküÐí"t¹í\kœüíT¢î4¦î„”/¡/ ¥/ �/ «/ ¶/, ¬/ ­/ ´/, ®/8ý¯/& ±/8ý²/ µ/*¸/ »/ �/+ Å/ Æ/ ß/8ìÇ/ Ê/ Þ/8Ó<Ë/ Ó/7loggingÁLÕ/ é/ ‡/, ÷/ ø/ ü/, ù/8ýú/ ý/”’/,Ÿ/ ¥/ Ú/ «/ ¶/, ¬/ ­/ ´/, ®/8ý¯/& ±/8ý²/ µ/*¸/ »/ Ø/8ç½/ À/ Á/ Ö/8çÂ/'Å/8¨,Ç/ Ì/ Í/ Õ/, Î/ Ï/ Ó/, Ð/8ýÑ/ Ô/”Ý/,ê/ ð/ ¥/ ö/ �/, ÷/ ø/ ÿ/, ù/8ýú/& ü/8ýý/ €/*ƒ/ †/ £/8çˆ/ ‹/ Œ/ ¡/8ç�/'�/8ø,’/ —/ ˜/  /, ™/ š/ ž/, ›/8ýœ/ Ÿ/\ìîü¬s§s A module for building and searching with deterministic finite automata (DFAs). Like other modules in this crate, DFAs support a rich regex syntax with Unicode features. DFAs also have extensive options for configuring the best space vs time trade off for your use case and provides support for cheap deserialization of automata for use in `no_std` environments. If you're looking for lazy DFAs that build themselves incrementally during search, then please see the top-level [`hybrid` module](crate::hybrid). # Overview This section gives a brief overview of the primary types in this module: * A [`regex::Regex`] provides a way to search for matches of a regular expression using DFAs. This includes iterating over matches with both the start and end positions of each match. * A [`dense::DFA`] provides low level access to a DFA that uses a dense representation (uses lots of space, but fast searching). * A [`sparse::DFA`] provides the same API as a `dense::DFA`, but uses a sparse representation (uses less space, but slower searching). * An [`Automaton`] trait that defines an interface that both dense and sparse DFAs implement. (A `regex::Regex` is generic over this trait.) * Both dense DFAs and sparse DFAs support serialization to raw bytes (e.g., [`dense::DFA::to_bytes_little_endian`]) and cheap deserialization (e.g., [`dense::DFA::from_bytes`]). There is also a [`onepass`] module that provides a [one-pass DFA](onepass::DFA). The unique advantage of this DFA is that, for the class of regexes it can be built with, it supports reporting the spans of matching capturing groups. It is the only DFA in this crate capable of such a thing. # Example: basic regex searching This example shows how to compile a regex using the default configuration and then use it to find matches in a byte string: ``` use regex_automata::{Match, dfa::regex::Regex}; let re = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?; let text = b"2018-12-24 2016-10-08"; let matches: Vec = re.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` # Example: searching with regex sets The DFAs in this module all fully support searching with multiple regexes simultaneously. You can use this support with standard leftmost-first style searching to find non-overlapping matches: ``` # if cfg!(miri) { return Ok(()); } // miri takes too long use regex_automata::{Match, dfa::regex::Regex}; let re = Regex::new_many(&[r"\w+", r"\S+"])?; let text = b"@foo bar"; let matches: Vec = re.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(1, 0..4), Match::must(0, 5..8), ]); # Ok::<(), Box>(()) ``` # Example: use sparse DFAs By default, compiling a regex will use dense DFAs internally. This uses more memory, but executes searches more quickly. If you can abide slower searches (somewhere around 3-5x), then sparse DFAs might make more sense since they can use significantly less space. Using sparse DFAs is as easy as using `Regex::new_sparse` instead of `Regex::new`: ``` use regex_automata::{Match, dfa::regex::Regex}; let re = Regex::new_sparse(r"[0-9]{4}-[0-9]{2}-[0-9]{2}").unwrap(); let text = b"2018-12-24 2016-10-08"; let matches: Vec = re.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` If you already have dense DFAs for some reason, they can be converted to sparse DFAs and used to build a new `Regex`. For example: ``` use regex_automata::{Match, dfa::regex::Regex}; let dense_re = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}").unwrap(); let sparse_re = Regex::builder().build_from_dfas( dense_re.forward().to_sparse()?, dense_re.reverse().to_sparse()?, ); let text = b"2018-12-24 2016-10-08"; let matches: Vec = sparse_re.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` # Example: deserialize a DFA This shows how to first serialize a DFA into raw bytes, and then deserialize those raw bytes back into a DFA. While this particular example is a bit contrived, this same technique can be used in your program to deserialize a DFA at start up time or by memory mapping a file. ``` use regex_automata::{Match, dfa::{dense, regex::Regex}}; let re1 = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}").unwrap(); // serialize both the forward and reverse DFAs, see note below let (fwd_bytes, fwd_pad) = re1.forward().to_bytes_native_endian(); let (rev_bytes, rev_pad) = re1.reverse().to_bytes_native_endian(); // now deserialize both---we need to specify the correct type! let fwd: dense::DFA<&[u32]> = dense::DFA::from_bytes(&fwd_bytes[fwd_pad..])?.0; let rev: dense::DFA<&[u32]> = dense::DFA::from_bytes(&rev_bytes[rev_pad..])?.0; // finally, reconstruct our regex let re2 = Regex::builder().build_from_dfas(fwd, rev); // we can use it like normal let text = b"2018-12-24 2016-10-08"; let matches: Vec = re2.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` There are a few points worth noting here: * We need to extract the raw DFAs used by the regex and serialize those. You can build the DFAs manually yourself using [`dense::Builder`], but using the DFAs from a `Regex` guarantees that the DFAs are built correctly. (In particular, a `Regex` constructs a reverse DFA for finding the starting location of matches.) * To convert the DFA to raw bytes, we use the `to_bytes_native_endian` method. In practice, you'll want to use either [`dense::DFA::to_bytes_little_endian`] or [`dense::DFA::to_bytes_big_endian`], depending on which platform you're deserializing your DFA from. If you intend to deserialize on either platform, then you'll need to serialize both and deserialize the right one depending on your target's endianness. * Safely deserializing a DFA requires verifying the raw bytes, particularly if they are untrusted, since an invalid DFA could cause logical errors, panics or even undefined behavior. This verification step requires visiting all of the transitions in the DFA, which can be costly. If cheaper verification is desired, then [`dense::DFA::from_bytes_unchecked`] is available that only does verification that can be performed in constant time. However, one can only use this routine if the caller can guarantee that the bytes provided encoded a valid DFA. The same process can be achieved with sparse DFAs as well: ``` use regex_automata::{Match, dfa::{sparse, regex::Regex}}; let re1 = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}").unwrap(); // serialize both let fwd_bytes = re1.forward().to_sparse()?.to_bytes_native_endian(); let rev_bytes = re1.reverse().to_sparse()?.to_bytes_native_endian(); // now deserialize both---we need to specify the correct type! let fwd: sparse::DFA<&[u8]> = sparse::DFA::from_bytes(&fwd_bytes)?.0; let rev: sparse::DFA<&[u8]> = sparse::DFA::from_bytes(&rev_bytes)?.0; // finally, reconstruct our regex let re2 = Regex::builder().build_from_dfas(fwd, rev); // we can use it like normal let text = b"2018-12-24 2016-10-08"; let matches: Vec = re2.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` Note that unlike dense DFAs, sparse DFAs have no alignment requirements. Conversely, dense DFAs must be aligned to the same alignment as a [`StateID`](crate::util::primitives::StateID). # Support for `no_std` and `alloc`-only This crate comes with `alloc` and `std` features that are enabled by default. When the `alloc` or `std` features are enabled, the API of this module will include the facilities necessary for compiling, serializing, deserializing and searching with DFAs. When only the `alloc` feature is enabled, then implementations of the `std::error::Error` trait are dropped, but everything else generally remains the same. When both the `alloc` and `std` features are disabled, the API of this module will shrink such that it only includes the facilities necessary for deserializing and searching with DFAs. The intended workflow for `no_std` environments is thus as follows: * Write a program with the `alloc` or `std` features that compiles and serializes a regular expression. You may need to serialize both little and big endian versions of each DFA. (So that's 4 DFAs in total for each regex.) * In your `no_std` environment, follow the examples above for deserializing your previously serialized DFAs into regexes. You can then search with them as you would any regex. Deserialization can happen anywhere. For example, with bytes embedded into a binary or with a file memory mapped at runtime. The `regex-cli` command (found in the same repository as this crate) can be used to serialize DFAs to files and generate Rust code to read them. # Syntax This module supports the same syntax as the `regex` crate, since they share the same parser. You can find an exhaustive list of supported syntax in the [documentation for the `regex` crate](https://docs.rs/regex/1/regex/#syntax). There are two things that are not supported by the DFAs in this module: * Capturing groups. The DFAs (and [`Regex`](regex::Regex)es built on top of them) can only find the offsets of an entire match, but cannot resolve the offsets of each capturing group. This is because DFAs do not have the expressive power necessary. * Unicode word boundaries. These present particularly difficult challenges for DFA construction and would result in an explosion in the number of states. One can enable [`dense::Config::unicode_word_boundary`] though, which provides heuristic support for Unicode word boundaries that only works on ASCII text. Otherwise, one can use `(?-u:\b)` for an ASCII word boundary, which will work on any input. There are no plans to lift either of these limitations. Note that these restrictions are identical to the restrictions on lazy DFAs. # Differences with general purpose regexes The main goal of the [`regex`](https://docs.rs/regex) crate is to serve as a general purpose regular expression engine. It aims to automatically balance low compile times, fast search times and low memory usage, while also providing a convenient API for users. In contrast, this module provides a lower level regular expression interface based exclusively on DFAs that is a bit less convenient while providing more explicit control over memory usage and search times. Here are some specific negative differences: * **Compilation can take an exponential amount of time and space** in the size of the regex pattern. While most patterns do not exhibit worst case exponential time, such patterns do exist. For example, `[01]*1[01]{N}` will build a DFA with approximately `2^(N+2)` states. For this reason, untrusted patterns should not be compiled with this module. (In the future, the API may expose an option to return an error if the DFA gets too big.) * This module does not support sub-match extraction via capturing groups, which can be achieved with the regex crate's "captures" API. * While the regex crate doesn't necessarily sport fast compilation times, the regexes in this module are almost universally slow to compile, especially when they contain large Unicode character classes. For example, on my system, compiling `\w{50}` takes about 1 second and almost 15MB of memory! (Compiling a sparse regex takes about the same time but only uses about 1.2MB of memory.) Conversely, compiling the same regex without Unicode support, e.g., `(?-u)\w{50}`, takes under 1 millisecond and about 15KB of memory. For this reason, you should only use Unicode character classes if you absolutely need them! (They are enabled by default though.) * This module does not support Unicode word boundaries. ASCII word boundaries may be used though by disabling Unicode or selectively doing so in the syntax, e.g., `(?-u:\b)`. There is also an option to [heuristically enable Unicode word boundaries](crate::dfa::dense::Config::unicode_word_boundary), where the corresponding DFA will give up if any non-ASCII byte is seen. * As a lower level API, this module does not do literal optimizations automatically. Although it does provide hooks in its API to make use of the [`Prefilter`](crate::util::prefilter::Prefilter) trait. Missing literal optimizations means that searches may run much slower than what you're accustomed to, although, it does provide more predictable and consistent performance. * There is no `&str` API like in the regex crate. In this module, all APIs operate on `&[u8]`. By default, match indices are guaranteed to fall on UTF-8 boundaries, unless either of [`syntax::Config::utf8`](crate::util::syntax::Config::utf8) or [`thompson::Config::utf8`](crate::nfa::thompson::Config::utf8) are disabled. With some of the downsides out of the way, here are some positive differences: * Both dense and sparse DFAs can be serialized to raw bytes, and then cheaply deserialized. Deserialization can be done in constant time with the unchecked APIs, since searching can be performed directly on the raw serialized bytes of a DFA. * This module was specifically designed so that the searching phase of a DFA has minimal runtime requirements, and can therefore be used in `no_std` environments. While `no_std` environments cannot compile regexes, they can deserialize pre-compiled regexes. * Since this module builds DFAs ahead of time, it will generally out-perform the `regex` crate on equivalent tasks. The performance difference is likely not large. However, because of a complex set of optimizations in the regex crate (like literal optimizations), an accurate performance comparison may be difficult to do. * Sparse DFAs provide a way to build a DFA ahead of time that sacrifices search performance a small amount, but uses much less storage space. Potentially even less than what the regex crate uses. * This module exposes DFAs directly, such as [`dense::DFA`] and [`sparse::DFA`], which enables one to do less work in some cases. For example, if you only need the end of a match and not the start of a match, then you can use a DFA directly without building a `Regex`, which always requires a second DFA to find the start of a match. * This module provides more control over memory usage. Aside from choosing between dense and sparse DFAs, one can also choose a smaller state identifier representation to use less space. Also, one can enable DFA minimization via [`dense::Config::minimize`], but it can increase compilation times dramatically. ÁÓ dfa-searchÁ´¹îÓ§¼Ñîü¸î1ü¯î<ôîù¦èÅø²Ò�§½HLósøÌ…„þsÅá†T�tÔ½ŒL¨t›TÕsÓ–â,´´sô®sÜÕsÓ–â,pÓ–â,*(‚rÓ–â,><„tÓ–â,RP†„¡tÓ–â,hfŠüÒw,$Øw ³älÍxüåà Types and routines specific to dense DFAs. This module is the home of [`dense::DFA`](DFA). This module also contains a [`dense::Builder`](Builder) and a [`dense::Config`](Config) for building and configuring a dense DFA. ÁÓ–â,´´xô®x,ÕxKLvŸÇÒìÿ†”œ¨³½ÄËÑ–�¾ñŸûc�$¤á8à<¯ Ùå,¸êiWDþò ü¨Dˆê–—Ð=–ü¥…C¤…,óÀ"ëN\úÅ#‡SL‘Œ$¶ŠD¦ƒ%ï54¸Â&ÛDж'ßÄ\ëÐ )ûíL€Û%*¢„4¶±-ÉNœÒ Ã/½HLçø0á†TòÔ1‘‹<�Œ2½ŒL¨›3¦$» 4þ�$ç™ 7¬\í÷8š°<ú¦9º<’µ;âè,›«<”ÊL¶�!=ÒÏLÖú!?áÐ<á�"@öŒDûÈ%A‚$•—Cò¾,›ð#DÛÝd¢ë#EØÌ$ÀèGŽâ„Æ®$HàÖ4ØÃIßátàª$JL‰Ó dfa-buildÁ¬íìç<$˜03#&dª  ,ãÓ‘í,¬ÇìÁÄãÓ‘í,*Ó‘í,+)=,Ó‘í,A??/Ó‘í,WUBD Ó‘í,nl5,ÐÓ‘í,¬´ì®„ÐÓ‘í,dìÓ‘í,,*dTÓ‘í,B@gœ‡Ó‘í,YWk”œÓ‘í,pnn^Ó‘í,†„qlËÓ‘í,�›uüÐ’Ó‘í,¶´ŒåÓ‘í,ÊÈŽŒøÓ‘í,áß‘,“„“l¯Œü“<�„twfi„‡\„¡O?Bü“½ü“Ñ=DÜ03"%ü“ü ¤«ü“Àøûêí„óàü“ÿÖ,�ÉÌ»¾ü“ª³$¹¦©˜›Š�Œ² ,¸  ”á <ç \ƒÓ‘í,¬ëìåÛèNOPQRSTUVWXYZ[\]^_`abcefgh´Ôü•:7 Return a new default dense DFA compiler configuration.ÁÛÛèBÿMMÒ§ ü‘!0ô’ Enable state acceleration.Áµ�ü½GD When enabled, DFA construction will analyze each state to determineÁü‰JG whether it is eligible for simple acceleration. Acceleration typicallyÁüØJG occurs when most of a state's transitions loop back to itself, leavingÁü§GD only a select few bytes that will exit the state. When this occurs,ÁüóJG other routines like `memchr` can be used to look for those bytes whichÁüÂ/, may be much faster than traversing the DFA.Áö�üþGD Callers may elect to disable this if consistent performance is moreÁüÊKH desirable than variable performance. Namely, acceleration can sometimesÁüšGD make searching slower than it otherwise would be if the transitionsÁüæ;8 that leave accelerated states are traversed frequently.Á¦ �ü® 2/ See [`Automaton::accelerator`] for an example.Áå �üí  This is enabled by default.ÁT˜!ÛèÛèBÿMM O$§!ê­!ü«8<ü�"A> Set a prefilter to be used whenever a start state is entered.ÁÇ"�üÏ"FC A [`Prefilter`] in this context is meant to accelerate searches byÁüš#GD looking for literal prefixes that every match for the correspondingÁüæ#FC pattern (or patterns) must start with. Once a prefilter produces aÁü±$HE match, the underlying search routine continues on to try and confirmÁtþ$ the match.Á‘%�ü™%IF Be warned that setting a prefilter does not guarantee that the searchÁüç%C@ will be faster. While it's usually a good bet, if the prefilterÁü¯&HE produces a lot of false positive candidates (i.e., positions matchedÁüü&GD by the prefilter but not by the regex), then the overall result canÁüÈ'HE be slower than if you had just executed the regex engine without anyÁ|•( prefilters.Á©(�ü±(A> Note that unless [`Config::specialize_start_states`] has beenÁü÷(EB explicitly set, then setting this will also enable (when `pre` isÁüÁ)IF `Some`) or disable (when `pre` is `None`) start state specialization.Áü�*GD This occurs because without start state specialization, a prefilterÁüÛ*HE is likely to be less effective. And without a prefilter, start stateÁü¨+(% specialization is usually pointless.ÁÕ+�üÝ+B? **WARNING:** Note that prefilters are not preserved as part ofÁü¤,=: serialization. Serializing a DFA will drop its prefilter.Áæ,�üî,# By default no prefilter is set.Á–-�lž- # ExampleÁ°-�<¸- ```ÁÌÄ- use regex_automata::{Áüâ-%" dfa::{dense::DFA, Automaton},ÁüŒ.# util::prefilter::Prefilter,Áü´.$! Input, HalfMatch, MatchKind,Á4Ý. };Áè.�üð.HE let pre = Prefilter::new(MatchKind::LeftmostFirst, &["foo", "bar"]);Áܽ/ let re = DFA::builder()ÁüÝ/0- .configure(DFA::config().prefilter(pre))Áü’0$! .build(r"(foo|bar)[a-z]+")?;Áü»0.+ let input = Input::new("foo1 barfox bar");Á|î0 assert_eq!(Áü‚1%" Some(HalfMatch::must(0, 11)),Áü¬1# re.try_search_fwd(&input)?,Á4Ô1 );Áß1�üç1.+ # Ok::<(), Box>(())Á<š2ãˆ-¦2�ü®2FC Be warned though that an incorrect prefilter can lead to incorrectÁdù2 results!ÁŠ3�<’3ãˆ-Ìž3óˆ-ü¼3%–‰-üæ3#ʼn-üŽ4$ò‰-4·4ŸŠ-Â4�üÊ4HE let pre = Prefilter::new(MatchKind::LeftmostFirst, &["foo", "car"]);ÁÜ—5Œ‹-ü·50±‹-üì5$ë‹-ü•6.™Œ-|È6ÐŒ-üÜ6>; // No match reported even though there clearly is one!ÁlŸ7 None,Áü±7#˜�-4Ù7Ä�-ä7�üì7.à�-<Ÿ8ãˆ-L²8Ûèó¯ÛèBÿMM�¨ $À8ÀöÆ8üçM.¬¿: Minimize the DFA.ÁÙ:�üá:JG When enabled, the DFA built will be minimized such that it is as smallÁ„°; as possible.ÁÅ;�üÍ;IF Whether one enables minimization or not depends on the types of costsÁü›HE size. In practice, minimization can be quite costly in terms of bothÁüÐ>GD space and time, so it should only be done if you're willing to waitÁüœ?HE longer to produce a DFA. In general, you might want a minimal DFA inÁüé?  the following circumstances:ÁŽ@�ü–@IF 1. You would like to optimize for the size of the automaton. This canÁüä@EB manifest in one of two ways. Firstly, if you're converting theÁü®AKH DFA into Rust code (or a table embedded in the code), then a minimalÁüþAKH DFA will translate into a corresponding reduction in code size, andÁüÎBFC thus, also the final compiled binary size. Secondly, if you areÁü™CIF building many DFAs and putting them on the heap, you'll be able toÁüçCHE fit more if they are smaller. Note though that building a minimalÁü´DGD DFA itself requires additional space; you only realize the spaceÁü€EGD savings once the minimal DFA is constructed (at which point, theÁüÌE-* space used for minimization is freed).ÁüþEA> 2. You've observed that a smaller DFA results in faster matchÁüÄFDA performance. Naively, this isn't guaranteed since there is noÁü�GFC inherent difference between matching with a bigger-than-minimalÁüØGIF DFA and a minimal DFA. However, a smaller DFA may make use of yourÁü¦H$! CPU's cache more efficiently.ÁüÏHA> 3. You are trying to establish an equivalence between regularÁü•IHE languages. The standard method for this is to build a minimal DFAÁüâIJG for each language and then compare them. If the DFAs are equivalentÁü±JA> (up to state renaming), then the languages are equivalent.Á÷J�üÿJHE Typically, minimization only makes sense as an offline process. ThatÁüÌKDA is, one might minimize a DFA before serializing it to persistentÁü•LIF storage. In practical terms, minimization can take around an order ofÁüãLKH magnitude more time than compiling the initial DFA via determinization.Á³M�ü»M'$ This option is disabled by default.ÁDîMÛèÛèBÿMM Q$ûMê�NüÄv6üÓN$! Set the desired match semantics.ÁüN�ü„OIF The default is [`MatchKind::LeftmostFirst`], which corresponds to theÁüÒOFC match semantics of Perl-like regex engines. That is, when multipleÁü�PHE patterns would match at the same leftmost position, the pattern thatÁüêP30 appears first in the concrete syntax is chosen.Á¢Q�üªQB? Currently, the only other kind of match semantics supported isÁüñQFC [`MatchKind::All`]. This corresponds to classical DFA constructionÁü¼R41 where all possible matches are added to the DFA.ÁõR�üýREB Typically, `All` is used when one wants to execute an overlappingÁüÇSHE search and `LeftmostFirst` otherwise. In particular, it rarely makesÁü”TKH sense to use `All` with the various "leftmost" find routines, since theÁüäTIF leftmost routines depend on the `LeftmostFirst` automata constructionÁü²UGD strategy. Specifically, `LeftmostFirst` adds dead states to the DFAÁüþUHE as a way to terminate the search and report a match. `LeftmostFirst`ÁüËVGD also supports non-greedy matches using this strategy where as `All`Ál—W does not.Á©W�ü±W! # Example: overlapping searchÁ×W�üßWGD This example shows the typical use of `MatchKind::All`, which is toÁü«X report overlapping matches.ÁÏX�<×Xãˆ-üãX=: # if cfg!(miri) { return Ok(()); } // miri takes too longÁÌ¥Yóˆ-üÃY2/ dfa::{Automaton, OverlappingState, dense},ÁüúY$! HalfMatch, Input, MatchKind,Á4£ZŸŠ-®Z�ü¶Z# let dfa = dense::Builder::new()ÁüÞZC@ .configure(dense::Config::new().match_kind(MatchKind::All))Áü¦[*' .build_many(&[r"\w+$", r"\S+$"])?;ÁüÕ[# let input = Input::new("@foo");Áüý[.+ let mut state = OverlappingState::start();Á°\�ü¸\/, let expected = Some(HalfMatch::must(1, 4));Áüì\85 dfa.try_search_overlapping_fwd(&input, &mut state)?;Áü©],) assert_eq!(expected, state.get_match());ÁÚ]�üâ]IF // The first pattern also matches at the same position, so re-runningÁü°^FC // the search will yield another match. Notice also that the firstÁüû^GD // pattern is returned after the second. This is because the secondÁüÇ_IF // pattern begins its match before the first, is therefore an earlierÁü•`(% // match and is thus reported first.ÁüÂ`/, let expected = Some(HalfMatch::must(0, 4));Áüö`8æ·-ü³a,¨¸-äa�üìa.à�-<Ÿbãˆ-«b�ü³b74 # Example: reverse automaton to find start of matchÁïb�ü÷bDA Another example for using `MatchKind::All` is for constructing aÁüÀcGD reverse automaton to find the start of a match. `All` semantics areÁüŒdDA used for this in order to find the longest possible match, whichÁüÕd2/ corresponds to the leftmost starting position.ÁŒe�ü”e41 Note that if you need the starting position thenÁüÍeHE [`dfa::regex::Regex`](crate::dfa::regex::Regex) will handle this forÁüšf;8 you, so it's usually not necessary to do this yourself.ÁÚf�<âfãˆ-Ìîfóˆ-üŒg+( dfa::{dense, Automaton, StartKind},Áܼg nfa::thompson::NFA,ÁüÜg.+ Anchored, HalfMatch, Input, MatchKind,Á4�hŸŠ-šh�ü¢h-* let haystack = "123foobar456".as_bytes();ÁìÔh let pattern = r"[a-z]+r";Áöh�üþh,) let dfa_fwd = dense::DFA::new(pattern)?;Áü¯i'$ let dfa_rev = dense::Builder::new()ÁüÛi.+ .thompson(NFA::config().reverse(true))ÁüŽj'$ .configure(dense::Config::new()ÁüºjDA // This isn't strictly necessary since both anchored andÁüƒkFC // unanchored searches are supported by default. But sinceÁüÎkJG // finding the start-of-match only requires anchored searches,Áü�lJG // we can get rid of the unanchored configuration and possiblyÁüìl.+ // slim down our DFA considerably.ÁüŸm,) .start_kind(StartKind::Anchored)ÁüÐm'$ .match_kind(MatchKind::All)ÁLüm )ÁÌŠn .build(pattern)?;Áü¨n-* let expected_fwd = HalfMatch::must(0, 9);ÁüÚn-* let expected_rev = HalfMatch::must(0, 3);ÁüŒoJG let got_fwd = dfa_fwd.try_search_fwd(&Input::new(haystack))?.unwrap();ÁüÛoIF // Here we don't specify the pattern to search for since there's onlyÁü©pIF // one pattern and we're doing a leftmost search. But if this were anÁü÷pIF // overlapping search, you'd need to specify the pattern that matchedÁüÅqJG // in the forward direction. (Otherwise, you might wind up finding theÁü”rHE // starting position of a match of some other pattern.) That in turnÁüárKH // requires building the reverse automaton with starts_for_each_patternÁü±s;8 // enabled. Indeed, this is what Regex does internally.Áüñs$! let input = Input::new(haystack)Áüšt" .range(..got_fwd.offset())ÁüÁt! .anchored(Anchored::Yes);Áüçt;8 let got_rev = dfa_rev.try_search_rev(&input)?.unwrap();Áü§u&# assert_eq!(expected_fwd, got_fwd);ÁüÒu&# assert_eq!(expected_rev, got_rev);Áýu�ü…v.à�-<¸vãˆ-TËvÛèæƒÛèBÿMMש $Úv¦$àvüò�6ü»w>; The type of starting state configuration to use for a DFA.Áþw�ü†xHE By default, the starting state configuration is [`StartKind::Both`].ÁÓx�lÛxÁˆ-íx�<õxãˆ-Ì�yóˆ-üŸy0- dfa::{dense::DFA, Automaton, StartKind},ÁüÔy# Anchored, HalfMatch, Input,Á4üyŸŠ-‡z�ü�z! let haystack = "quux foo123";Áüµz*' let expected = HalfMatch::must(0, 11);Áäz�üìzFC // By default, DFAs support both anchored and unanchored searches.Áü·{# let dfa = DFA::new(r"[0-9]+")?;Áüß{%" let input = Input::new(haystack);Áü‰|<9 assert_eq!(Some(expected), dfa.try_search_fwd(&input)?);ÁÊ|�üÒ|EB // But if we only need anchored searches, then we can build a DFAÁüœ}HE // that only supports anchored searches. This leads to a smaller DFAÁüé}HE // (potentially significantly smaller in some cases), but a DFA thatÁü¶~A> // will panic if you try to use it with an unanchored search.Áäü~ let dfa = DFA::builder()Áü�A> .configure(DFA::config().start_kind(StartKind::Anchored))ÁÜã .build(r"[0-9]+")?;Áüƒ€$ßÏ-œ¬€ .range(8..)ÁüÄ€!¹Ð-üê€<ö×-«��ü³�.à�-<æ�ãˆ-Tù�Û蚉ÛèBÿMM�© $ˆ‚¦$Ž‚üºŸ=üé‚EB Whether to compile a separate start state for each pattern in theÁt³ƒ automaton.Áƃ�ü΃GD When enabled, a separate **anchored** start state is added for eachÁüš„HE pattern in the DFA. When this start state is used, then the DFA willÁüç„HE only search for matches for the pattern specified, even if there areÁô´… other patterns in the DFA.Á×…�üß…HE The main downside of this option is that it can potentially increaseÁü¬†KH the size of the DFA and/or increase the time it takes to build the DFA.Áü†�ü„‡HE There are a few reasons one might want to enable this (it's disabledÁ„ч by default):Áæ‡�üî‡B? 1. When looking for the start of an overlapping match (using aÁüµˆIF reverse DFA), doing it correctly requires starting the reverse searchÁüƒ‰GD using the starting state of the pattern that matched in the forwardÁüωKH direction. Indeed, when building a [`Regex`](crate::dfa::regex::Regex),ÁüŸŠJG it will automatically enable this option when building the reverse DFAÁ|îŠ internally.Áü‚‹GD 2. When you want to use a DFA with multiple patterns to both searchÁü΋GD for matches of any pattern or to search for anchored matches of oneÁüšŒKH particular pattern while using the same DFA. (Otherwise, you would needÁüêŒ+( to compile a new DFA for each pattern.)Áüš�IF 3. Since the start states added for each pattern are anchored, if youÁüè�GD compile an unanchored DFA with one pattern while also enabling thisÁü´ŽKH option, then you can use the same DFA to perform anchored or unanchoredÁü„�JG searches. The latter you get with the standard search APIs. The formerÁüÓ�JG you get from the various `_at` search methods that allow you specify aÁì¢� pattern ID to search for.ÁÄ��üÌ�  By default this is disabled.Áñ��lù�Áˆ-‹‘�ü“‘GD This example shows how to use this option to permit the same DFA toÁüß‘C@ run both anchored and unanchored searches for a single pattern.Á§’�<¯’ãˆ-Ì»’óˆ-üÙ’  dfa::{dense, Automaton},Áüþ’.+ Anchored, HalfMatch, PatternID, Input,Á4±“ŸŠ-¼“�üÄ“#޵-üì“FC .configure(dense::Config::new().starts_for_each_pattern(true))Áô·” .build(r"foo[0-9]+")?;ÁüÚ”!ßÕ-€•�üˆ•KH // Here's a normal unanchored search. Notice that we use 'None' for theÁüØ•GD // pattern ID. Since the DFA was built as an unanchored machine, itÁü¤–1. // use its default unanchored starting state.ÁüÚ–*ŠÖ-ü‰—%Ç×-ü³—<ö×-üô—HE // But now if we explicitly specify the pattern to search ('0' beingÁüÁ˜HE // the only pattern in the DFA), then it will use the starting stateÁüŽ™DA // for that specific pattern which is always anchored. Since theÁü×™HE // pattern doesn't have a match at the beginning of the haystack, weÁ¤¤š // find nothing.Áü½š$ßÏ-üæš96 .anchored(Anchored::Pattern(PatternID::must(0)));Áü¤›2/ assert_eq!(None, dfa.try_search_fwd(&input)?);ÁüÛ›JG // And finally, an anchored search is not the same as putting a '^' atÁüªœIF // beginning of the pattern. An anchored search can only match at theÁüøœ63 // beginning of the *search*, which we can change:Áü³�$ßÏ-üÜ�85 .anchored(Anchored::Pattern(PatternID::must(0)))Á¤™ž .range(5..);Áü²ž<ö×-óž�üûž.à�-<®Ÿãˆ-¼ÁŸÛèÛèBÿMM T$ÝŸêãŸü†®2üÄ GD Whether to attempt to shrink the size of the DFA's alphabet or not.Á�¡�ü˜¡IF This option is enabled by default and should never be disabled unlessÁüæ¡%" one is debugging a generated DFA.Á�¢�ü˜¢IF When enabled, the DFA will use a map from all possible bytes to theirÁüæ¢HE corresponding equivalence class. Each equivalence class represents aÁü³£KH set of bytes that does not discriminate between a match and a non-matchÁüƒ¤A> in the DFA. For example, the pattern `[ab]+` has at least twoÁüɤJG equivalence classes: a set containing `a` and `b` and a set containingÁü˜¥B? every byte except for `a` and `b`. `a` and `b` are in the sameÁüߥKH equivalence class because they never discriminate between a match and aÁt¯¦ non-match.Á¦�üʦFC The advantage of this map is that the size of the transition tableÁü•§HE can be reduced drastically from `#states * 256 * sizeof(StateID)` toÁüâ§JG `#states * k * sizeof(StateID)` where `k` is the number of equivalenceÁü±¨FC classes (rounded up to the nearest power of 2). As a result, totalÁüü¨EB space usage can decrease substantially. Moreover, since a smallerÁüÆ©=: alphabet is used, DFA compilation becomes faster as well.Áˆª�ü�ªGD **WARNING:** This is only useful for debugging DFAs. Disabling thisÁüܪB? does not yield any speed advantages. Namely, even when this isÁü£«FC disabled, a byte class map is still used while searching. The onlyÁüî«FC difference is that every byte will be forced into its own distinctÁü¹¬HE equivalence class. This is useful for debugging the actual generatedÁü†­IF transitions because it lets one see the transitions defined on actualÁüÔ­-* bytes instead of the equivalence classes.Ád�®ÛèÛèBÿMM U$ž®ê¤®üÿÍ;üú®1. Heuristically enable Unicode word boundaries.Á°¯�ü¸¯JG When set, this will attempt to implement Unicode word boundaries as ifÁü‡°JG they were ASCII word boundaries. This only works when the search inputÁüÖ°JG is ASCII only. If a non-ASCII byte is observed while searching, then aÁü¥±DA [`MatchError::quit`](crate::MatchError::quit) error is returned.Áî±�üö±FC A possible alternative to enabling this option is to simply use anÁüÁ²JG ASCII word boundary, e.g., via `(?-u:\b)`. The main reason to use thisÁü�³JG option is if you absolutely need Unicode support. This option lets oneÁüß³FC use a fast search implementation (a DFA) for some potentially veryÁüª´GD common cases, while providing the option to fall back to some otherÁüö´FC regex engine to handle the general case when an error is returned.ÁÁµ�üɵIF If the pattern provided has no Unicode word boundary in it, then thisÁü—¶EB option has no effect. (That is, quitting on a non-ASCII byte onlyÁüá¶GD occurs when this option is enabled _and_ a Unicode word boundary isÁä­· present in the pattern.)Áη�üÖ·GD This is almost equivalent to setting all non-ASCII bytes to be quitÁü¢¸IF bytes. The only difference is that this will cause non-ASCII bytes toÁüð¸GD be quit bytes _only_ when a Unicode word boundary is present in theÁd¼¹ pattern.Á͹�üÕ¹C@ When enabling this option, callers _must_ be prepared to handleÁü�º<9 a [`MatchError`](crate::MatchError) error during search.ÁüÞºFC When using a [`Regex`](crate::dfa::regex::Regex), this correspondsÁü©»;8 to using the `try_` suite of methods. Alternatively, ifÁüé»@= callers can guarantee that their input is ASCII only, then aÁü®¼EB [`MatchError::quit`](crate::MatchError::quit) error will never beÁìø¼ returned while searching.Áš½�ü¢½  This is disabled by default.Áǽ�lϽÁˆ-á½�üé½JG This example shows how to heuristically enable Unicode word boundariesÁü¸¾IF in a pattern. It also shows what happens when a search comes across aÁœ†¿ non-ASCII byte.Áž¿�<¦¿ãˆ-̲¿óˆ-üп  dfa::{Automaton, dense},Áüõ¿%" HalfMatch, Input, MatchError,Á4ŸÀŸŠ-ªÀ�ü²À#޵-üÚÀDA .configure(dense::Config::new().unicode_word_boundary(true))Áü£Á .build(r"\b[0-9]+\b")?;ÁÇÁ�üÏÁC@ // The match occurs before the search ever observes the snowmanÁü—Â%" // character, so no error occurs.ÁüÁÂ-* let haystack = "foo 123 ☃".as_bytes();ÁüóÂ/, let expected = Some(HalfMatch::must(0, 7));Áü§Ã96 let got = dfa.try_search_fwd(&Input::new(haystack))?;Áôåà assert_eq!(expected, got);ÁˆÄ�ü�ÄGD // Notice that this search fails, even though the snowman characterÁüÜÄC@ // occurs after the ending match offset. This is because searchÁü¤ÅGD // routines read one byte past the end of the search to account forÁüðÅJG // look-around, and indeed, this is required here to determine whetherÁü¿Æ // the trailing \b matches.ÁüãÆ,) let haystack = "foo 123 ☃".as_bytes();Áü”Ç-* let expected = MatchError::quit(0xE2, 8);ÁüÆÇ85 let got = dfa.try_search_fwd(&Input::new(haystack));ÁüƒÈ# assert_eq!(Err(expected), got);Á«È�ü³ÈKH // Another example is executing a search where the span of the haystackÁüƒÉKH // we specify is all ASCII, but there is non-ASCII just before it. ThisÁüÓÉ'$ // correctly also reports an error.ÁüÿÉ/, let input = Input::new("β123").range(2..);Áü³Ê-* let expected = MatchError::quit(0xB2, 1);ÁüåÊ)& let got = dfa.try_search_fwd(&input);Áü“Ë#ý¥.»Ë�üÃË41 // And similarly for the trailing word boundary.ÁüüË/, let input = Input::new("123β").range(..3);Áü°Ì-* let expected = MatchError::quit(0xCE, 3);ÁüâÌ)ˆ©.ü�Í#ý¥.¸Í�üÀÍ.à�-<óÍãˆ-¬†ÎÛèÛèBÿMM V$ Îê¦Îü±é4ü�Ñ! Add a "quit" byte to the DFA.ÁµÑ�ü½ÑHE When a quit byte is seen during search time, then search will returnÁüŠÒHE a [`MatchError::quit`](crate::MatchError::quit) error indicating theÁü×Ò'$ offset at which the search stopped.ÁƒÓ�ü‹ÓFC A quit byte will always overrule any other aspects of a regex. ForÁüÖÓJG example, if the `x` byte is added as a quit byte and the regex `\w` isÁü¥ÔFC used, then observing `x` will cause the search to quit immediatelyÁüðÔ30 despite the fact that `x` is in the `\w` class.Á¨Õ�ü°ÕIF This mechanism is primarily useful for heuristically enabling certainÁüþÕHE features like Unicode word boundaries in a DFA. Namely, if the inputÁüËÖGD to search is ASCII, then a Unicode word boundary can be implementedÁü—×GD via an ASCII word boundary with no change in semantics. Thus, a DFAÁüã×JG can attempt to match a Unicode word boundary but give up as soon as itÁü²ØIF observes a non-ASCII byte. Indeed, if callers set all non-ASCII bytesÁü€ÙIF to be quit bytes, then Unicode word boundaries will be permitted whenÁüÎÙ30 building DFAs. Of course, callers should enableÁü†ÚIF [`Config::unicode_word_boundary`] if they want this behavior instead.ÁüÔÚJG (The advantage being that non-ASCII quit bytes will only be added if aÁü£Û-* Unicode word boundary is in the pattern.)ÁÕÛ�üÝÛEB When enabling this option, callers _must_ be prepared to handle aÁü§ÜGD [`MatchError`](crate::MatchError) error during search. When using aÁüóÜFC [`Regex`](crate::dfa::regex::Regex), this corresponds to using theÁä¾Ý `try_` suite of methods.ÁßÝ�üçÝ,) By default, there are no quit bytes set.Á˜Þ�d Þ # PanicsÁ±Þ�ü¹ÞHE This panics if heuristic Unicode word boundaries are enabled and anyÁü†ßJG non-ASCII byte is removed from the set of quit bytes. Namely, enablingÁüÕßKH Unicode word boundaries requires setting every non-ASCII byte to a quitÁü¥àGD byte. So if the caller attempts to undo any of that, then this willÁTñà panic.Á€á�lˆáÁˆ-šá�ü¢áFC This example shows how to cause a search to terminate if it sees aÁüíáJG `\n` byte. This could be useful if, for example, you wanted to preventÁü¼âA> a user supplied pattern from matching across a line boundary.Á‚ã�<Šããˆ-ü–ã=·³-üØãEB use regex_automata::{dfa::{Automaton, dense}, Input, MatchError};Á¢ä�üªä#޵-üÒä:7 .configure(dense::Config::new().quit(b'\n', true))Áü‘å# .build(r"foo\p{any}+bar")?;Á¹å�üÁå)& let haystack = "foo\nbar".as_bytes();ÁüïåHE // Normally this would produce a match, since \p{any} contains '\n'.Áü¼æGD // But since we instructed the automaton to enter a quit state if aÁüˆç=: // '\n' is observed, this produces a match error instead.ÁüÊç.+ let expected = MatchError::quit(b'\n', 3);ÁüýçEB let got = dfa.try_search_fwd(&Input::new(haystack)).unwrap_err();ÁôÇ褡.êè�üòè.à�-<¥éãˆ-$¸éÛèÛèBÿMM W$Áéÿ†$ÇéêÑéüÆ‹=üêí0- Enable specializing start states in the DFA.ÁŸî�ü§îIF When start states are specialized, an implementor of a search routineÁüõîKH using a lazy DFA can tell when the search has entered a starting state.ÁüÅïGD When start states aren't specialized, then it is impossible to knowÁü‘ð1. whether the search has entered a start state.ÁÇð�üÏðC@ Ideally, this option wouldn't need to exist and we could alwaysÁü—ñJG specialize start states. The problem is that start states can be quiteÁüæñIF active. This in turn means that an efficient search routine is likelyÁü´òGD to ping-pong between a heavily optimized hot loop that handles mostÁü€óHE states and to a less optimized specialized handling of start states.ÁüÍóDA This causes branches to get heavily mispredicted and overall canÁü–ôHE materially decrease throughput. Therefore, specializing start statesÁüãô-* should only be enabled when it is needed.Á•õ�ü�õKH Knowing whether a search is in a start state is typically useful when aÁüíõIF prefilter is active for the search. A prefilter is typically only runÁü»öJG when in a start state and a prefilter can greatly accelerate a search.ÁüŠ÷IF Therefore, the possible cost of specializing start states is worth itÁüØ÷IF in this case. Otherwise, if you have no prefilter, there is likely noÁü¦ø&# reason to specialize start states.ÁÑø�üÙøB? This is disabled by default, but note that it is automaticallyÁü ùIF enabled (or disabled) if [`Config::prefilter`] is set. Namely, unlessÁüîùIF `specialize_start_states` has already been set, [`Config::prefilter`]Áü¼úHE will automatically enable or disable it based on whether a prefilterÁü‰ûGD is present or not, respectively. This is done because a prefilter'sÁüÕûFC effectiveness is rooted in being executed whenever the DFA is in aÁü üJG start state, and that's only possible to do when they are specialized.Áïü�ü÷üA> Note that it is plausibly reasonable to _disable_ this optionÁü½ýFC explicitly while _enabling_ a prefilter. In that case, a prefilterÁüˆþIF will still be run at the beginning of a search, but never again. ThisÁüÖþJG in theory could strike a good balance if you're in a situation where aÁü¥ÿB? prefilter is likely to produce many false positive candidates.Áìÿ�lôÿÁˆ-†€�üŽ€HE This example shows how to enable start state specialization and thenÁüÛ€?< shows how to check whether a state is a start state or not.ÁŸ��<§�ãˆ-ü³�>; use regex_automata::{dfa::{Automaton, dense::DFA}, Input};Áö��äþ�…Û-üŸ‚?< .configure(DFA::config().specialize_start_states(true))ÁÜã‚ .build(r"[a-z]+")?;Áƒƒ�ü‹ƒ0- let haystack = "123 foobar 4567".as_bytes();ÁüÀƒ>; let sid = dfa.start_state_forward(&Input::new(haystack))?;Áüƒ„HE // The ID returned by 'start_state_forward' will always be tagged asÁüЄ@= // a start state when start state specialization is enabled.Áü•…'$ assert!(dfa.is_special_state(sid));ÁüÁ…%" assert!(dfa.is_start_state(sid));Áë…�üó….à�-<¦†ãˆ-²†�üº†KH Compare the above with the default DFA configuration where start statesÁüЇIF are _not_ specialized. In this case, the start state is not tagged atÁD؇ all:Áå‡�<í‡ãˆ-üù‡>�Ü.¼ˆ�üĈ# let dfa = DFA::new(r"[a-z]+")?;Áìˆ�üôˆ%" let haystack = "123 foobar 4567";Áüž‰>œÞ.üá‰A> // Start states are not special in the default configuration!Áü§Š(% assert!(!dfa.is_special_state(sid));ÁüÔŠ&# assert!(!dfa.is_start_state(sid));ÁÿŠ�ü‡‹.à�-<º‹ãˆ-¼Í‹ÛèÛèBÿMMÀ¨ $é‹êï‹ü¨¨?üÐŒ52 Set a size limit on the total heap used by a DFA.ÁŠ��ü’�?< This size limit is expressed in bytes and is applied duringÁüÖ�KH determinization of an NFA into a DFA. If the DFA's heap usage, and onlyÁü¦ŽKH the DFA, exceeds this configured limit, then determinization is stoppedÁìöŽ and an error is returned.Á˜��ü �>; This limit does not apply to auxiliary storage used duringÁüã�96 determinization that isn't part of the generated DFA.Á¡��ü©�JG This limit is only applied during determinization. Currently, there isÁüø�HE no way to post-pone this check to after minimization if minimizationÁ„Å‘ was enabled.ÁÚ‘�üâ‘IF The total limit on heap used during determinization is the sum of theÁü°’(% DFA and determinization size limits.ÁÝ’�äå’ The default is no limit.Á†“�lŽ“Áˆ- “�ü¨“HE This example shows a DFA that fails to build because of a configuredÁüõ“HE size limit. This particular example also serves as a cautionary taleÁü”HE demonstrating just how big DFAs with large Unicode character classesÁd�• can get.Á •�<¨•ãˆ-ü´•=·³-üö•96 use regex_automata::{dfa::{dense, Automaton}, Input};Á´–�ļ– // 6MB isn't enough!ÁÌÙ– dense::Builder::new()Áü÷–HE .configure(dense::Config::new().dfa_size_limit(Some(6_000_000)))ÁÌÄ— .build(r"\w{20}")Á´â— .unwrap_err();Áý—�ü…˜ // ... but 7MB probably is!Áü©˜HE // (Note that DFA sizes aren't necessarily stable between releases.)Áüö˜#޵-üž™HE .configure(dense::Config::new().dfa_size_limit(Some(7_000_000)))ÁÜë™ .build(r"\w{20}")?;Áü‹š/, let haystack = "A".repeat(20).into_bytes();Áü¿šC@ assert!(dfa.try_search_fwd(&Input::new(&haystack))?.is_some());Á‡›�ü�›.à�-<›ãˆ-Λ�üÖ›DA While one needs a little more than 6MB to represent `\w{20}`, itÁüŸœDA turns out that you only need a little more than 6KB to representÁüèœ74 `(?-u:\w{20})`. So only use Unicode if you need it!Á¤��ü¬�DA As with [`Config::determinize_size_limit`], the size of a DFA isÁüõ�HE influenced by other factors, such as what start state configurationsÁüžIF to support. For example, if you only need unanchored searches and notÁü�ŸJG anchored searches, then configuring the DFA to only support unanchoredÁüߟJG searches can reduce its size. By default, DFAs support both unanchoredÁÔ®  and anchored searches.ÁÍ �<Õ ãˆ-üá =·³-ü£¡DA use regex_automata::{dfa::{dense, Automaton, StartKind}, Input};Áì¡�Äô¡ // 3MB isn't enough!ÁÌ‘¢›ñ.ü¯¢'šÅ-üÛ¢,) .dfa_size_limit(Some(3_000_000))ÁüŒ£.+ .start_kind(StartKind::Unanchored)ÁL¿£¯É-ÌÍ£‘ò.´ë£´ò.†¤�üޤ // ... but 4MB probably is!Áü²¤HŒó.üÿ¤#޵-ü§¥'šÅ-üÓ¥,) .dfa_size_limit(Some(4_000_000))Áü„¦.Òý.L·¦¯É-ÜŦÀô.üå¦/æô.ü™§C õ.á§�üé§.à�-<œ¨ãˆ-t¯¨ÛèͶÛèBÿMM Y$¨¹•,Ȩü¼ÇGü­©?< Set a size limit on the total heap used by determinization.Áñ©�üù©?ûæ.ü½ªHE determinization of an NFA into a DFA. If the heap used for auxiliaryÁüŠ«EB storage during determinization (memory that is not in the DFA butÁüÔ«GD necessary for building the DFA) exceeds this configured limit, thenÁü ¬85 determinization is stopped and an error is returned.Áݬ�üå¬=: This limit does not apply to heap used by the DFA itself.Á§­�ü¯­IŽì.üý­(âì.ª®�ä²®¡í.Ó®�lÛ®Áˆ-í®�üõ®=: This example shows a DFA that fails to build because of aÁü·¯=: configured size limit on the amount of heap space used byÁüù¯HE determinization. This particular example complements the example forÁüưJG [`Config::dfa_size_limit`] by demonstrating that not only does UnicodeÁü•±EB potentially make DFAs themselves big, but it also results in moreÁüß±JG auxiliary storage during determinization. (Although, auxiliary storageÁü®²,) is still not as much as the DFA itself.)Áß²�<ç²ãˆ-üó²=·³-üµ³KH # if !cfg!(target_pointer_width = "64") { return Ok(()); } // see #1039Áü…´9©ð.ô�ÔË´ // 700KB isn't enough!ÁÌê´›ñ.üˆµ'šÅ-ü´µ2/ .determinize_size_limit(Some(700_000))ÁL뵯É-Ìùµ‘ò.´—¶´ò.²¶�üº¶! // ... but 800KB probably is!Áüà¶KH // (Note that auxiliary storage sizes aren't necessarily stable betweenÁŒ°· // releases.)ÁüÆ·#޵-üî·'šÅ-üš¸2/ .determinize_size_limit(Some(800_000))ÁLѸ¯É-Ü߸Àô.üÿ¸/æô.ü³¹C õ.û¹�üƒº.à�-<¶ºãˆ-º�üʺA> Note that some parts of the configuration on a DFA can have aÁü�»B? big impact on how big the DFA is, and thus, how much memory isÁü×»HE used. For example, the default setting for [`Config::start_kind`] isÁü¤¼EB [`StartKind::Both`]. But if you only need an anchored search, forÁüî¼JG example, then it can be much cheaper to build a DFA that only supportsÁü½½JG anchored searches. (Running an unanchored search with it would panic.)ÁŒ¾�<”¾ãˆ-ü ¾=·³-üâ¾K±Š/̲¿óˆ-üп+èÁ-Ä€À Anchored, Input,Á4�ÀŸŠ-¨À�Ô°À // 200KB isn't enough!ÁÌÏÀ›ñ.üíÀ'šÅ-ü™Á2/ .determinize_size_limit(Some(200_000))ÁüÐÁ,ÉÈ-L�¯É-Ì�‘ò.´­Â´ò.ÈÂ�üÐÂ! // ... but 300KB probably is!ÁüöÂK„�/ŒÆÃÙ�/üÜÃ#޵-ü„Ä'šÅ-ü°Ä2/ .determinize_size_limit(Some(300_000))ÁüçÄ,ÉÈ-L˜Å¯É-ܦÅÀô.üÆÅ/æô.üúÅ>; let input = Input::new(&haystack).anchored(Anchored::Yes);Áü½Æ30 assert!(dfa.try_search_fwd(&input)?.is_some());ÁõÆ�üýÆ.à�-<°Çãˆ-´ÃÇÛèͶÛèBÿMM Z$Þǹ•,äÇü«É$üÑÈ?< Returns whether this configuration has enabled simple stateÁŒ•É acceleration.Át²É¤& ¤&ÛèBÿM ÁÉM [$ÂÉüËÊ1ü…ÊA> Returns the prefilter attached to this configuration, if any.ÁlÒÊ¥& ¥&ÛèřǙș­É™Ê™àË™óG*¤�R{9  ¥&ûÙBÿM àÊM \$áÊü¨Ì"ü¾ËHE Returns whether this configuration has enabled the expensive processÁÄ‹Ì of minimizing a DFA.Ád¯Ì¦& ¦&ÛèBÿM ¼ÌM ]$½Ìü¾Í)üÿÌ:7 Returns the match semantics set in this configuration.ÁtÅͧ& §&ÛèæƒBÿM ÔÍM ^$ÕÍüíÎ%ü±Î74 Returns the starting state configuration for a DFA.ÁTôΨ& ¨&Û蚉BÿM ÿÎM _$€ÏüÉÐ1üÓÏKH Returns whether this configuration has enabled anchored starting statesÁü£Ð! for every pattern in the DFA.ÁÜÐЩ& ©&ÛèBÿM ìÐM `$íÐüóÒ&ü¾ÑGD Returns whether this configuration has enabled byte classes or not.ÁüŠÒJG This is typically a debugging oriented option, as disabling it confersÁ¬ÙÒ no speed benefit.Á„úÒª& ª&ÛèBÿM ‹ÓM a$ŒÓüÿÔ/üÑÓIF Returns whether this configuration has enabled heuristic Unicode wordÁüŸÔIF boundary support. When enabled, it is possible for a search to returnÁlíÔ an error.Á̆Õ«& «&ÛèBÿM  ÕM b$¡Õüé×(üðÕGD Returns whether this configuration will instruct the DFA to enter aÁü¼ÖGD quit state whenever the given byte is seen during a search. When atÁüˆ×JG least one byte has this enabled, it is possible for a search to returnÁl××™¦/Dð׬& ¬&ÛèBÿM ù×M c$ú×ÿ†$€Ø·Øc�d�d�ddcd‘µUÿÄüü–Û1üØØ?< Returns whether this configuration will instruct the DFA toÁüœÙKH "specialize" start states. When enabled, the DFA will mark start statesÁüìÙFC as "special" so that search routines using the DFA can detect whenÁü·ÚFC it's in a start state and do some kind of optimization (like run aÁ|‚Û prefilter).ÁÜ�Û­& ­&ÛèBÿM ¹ÛM e$ºÛüªÞ1ü‹ÜDA Returns the DFA size limit of this configuration if one was set.ÁüÔÜEB The size limit is total number of bytes on the heap that a DFA isÁüžÝHE permitted to use. If the DFA exceeds this limit during construction,ÁüëÝ:7 then construction is stopped and an error is returned.Á”±Þ®& ®&ÛèͶBÿM ÄÞM f$ÅÞü£ä9ü•ßGD Returns the determinization size limit of this configuration if oneÁüáßEB was set. The size limit is total number of bytes on the heap thatÁü«àHE determinization is permitted to use. If determinization exceeds thisÁüøàKH limit during construction, then construction is stopped and an error isÁlÈá returned.ÁÚá�üâáJG This is different from the DFA size limit in that this only applies toÁü±âKH the auxiliary storage used during determinization. Once determinizationÁü�ã&# is complete, this memory is freed.Á¬ã�ü´ãEB The limit on the total heap memory used is the sum of the DFA andÁüþã  determinization size limits.ÁÔªä¯& ¯&ÛèͶBÿM ÅäM g$Æäüœç3Lªç°& °&ÛèÛèÛèBÿM ´çM h$µç¥ »ç¼èh�i�i�iihi®¯Uÿë¸dЇÓ‘í,¬¸‡첇 êklmoqrs¼ªˆüã‡B? Create a new dense DFA builder with the default configuration.Á±ˆ êBÿjjùìü¡‹Büê‰'$ Build a DFA from the given pattern.Á–Š�üžŠJG If there was a problem parsing or compiling the pattern, then an errorÁ„íŠ is returned.ÁÓΔˆ‹Ô‚‹,¨‹µ&¶& µ& ê ¶&šÞBÿj ®‹j l$¯‹¿‰<µ‹üß�nü•Œ(% Build a DFA from the given patterns.ÁÂŒ�üÊŒIF When matches are returned, the pattern ID corresponds to the index ofÁü˜�# the pattern in the slice given.ÁÓΔÆ�ÔÀ�Tæ�·&¸& ·& ê ¸&ôàšÞBÿjŒnn ‰ŽjþÆ£Û ñ�££ÛTô�¨í$ŠŽÝwúo+-üâ˜hü…’# Build a DFA from the given NFA.Á­’�lµ’Áˆ-Ç’�üÏ’GD This example shows how to build a DFA if you already have an NFA inÁL›“ hand.Á©“�<±“ãˆ-̽“óˆ-üÛ“ æœ.Ü€”œÂ-Ì ” HalfMatch, Input,Á4¾”ŸŠ-É”�üÑ”*' let haystack = "foo123bar".as_bytes();Á€•�üˆ•EB // This shows how to set non-default options for building an NFA.ÁìÒ• let nfa = NFA::compiler()Áüô•.+ .configure(NFA::config().shrink(true))Áܧ–õÛ-üÇ–:7 let dfa = dense::Builder::new().build_from_nfa(&nfa)?;Áü†—/, let expected = Some(HalfMatch::must(0, 6));Áüº—9á .ôø—¤¡.›˜�ü£˜.à�-<Ö˜ãˆ-t阹&º& ¹& ê º&²ŸšÞBÿj �™j¸ß$‚™õ.�™½¦o�p�p�ppopÖ‹ ü•±;ṵ̈DA Apply the given dense DFA configuration options to this builder.ÁLœ±»& »& êÛèŽÉ/Bÿj ¦±j‰ª $«±Ø4±±ü�µdü ²74 Set the syntax configuration for this builder usingÁüܲ41 [`syntax::Config`](crate::util::syntax::Config).Á•³�ü�³JG This permits setting things like case insensitivity, Unicode and multiÁtì³ line mode.Áÿ³�ü‡´EB These settings only apply when constructing a DFA directly from aÁdÑ´…–.ÓΔè´Ôâ´4ˆµ¼& ¼& êËïêÌ/Bÿj ˜µj r$�µØ4«µüã¹Dü¦¶=: Set the Thompson NFA configuration for this builder usingÁüè¶<9 [`nfa::thompson::Config`](crate::nfa::thompson::Config).Á©·�ü±·KH This permits setting things like whether the DFA should match the regexÁü�¸JG in reverse or if additional time should be spent shrinking the size ofÁdи the NFA.Áá¸�üé¸EâÊ/d³¹…–.ÓΔʹÔĹDê¹½& ½& êàŽèÐ/Bÿj ó¹jž« $ø¹Ø4þ¹ć»Ó‘í,¬ïºì麠êu÷u¼¦»<©» êBÿtt uÄó¾Ó«Œß¾ÌÙ¾Dƒ¿€†lûçÓ‘í,¬ãçìÝ瀆xyü í9ü�èHE Parse the given regular expression using a default configuration andÁüÜè! return the corresponding DFA.Á‚é�üŠé96 If you want a non-default configuration, then use theÁüÈé>; [`dense::Builder`](Builder) to set your own configuration.Á‹ê�l“êÁˆ-¥ê�<­êãˆ-ü¹êDA use regex_automata::{dfa::{Automaton, dense}, HalfMatch, Input};Á‚ë�üŠë/, let dfa = dense::DFA::new("foo[0-9]+bar")?;Áü¾ë0- let expected = Some(HalfMatch::must(0, 11));ÁüóëJG assert_eq!(expected, dfa.try_search_fwd(&Input::new("foo12345bar"))?);ÁüÂì.à�-<õìãˆ-ÓΔ‡íÔ�í§í¿& ¿&šÞBÿw ´íw x¿‰<«íü°ó]ü�îIF Parse the given regular expressions using a default configuration andÁüÛî'$ return the corresponding multi-DFA.Á‡ï�ü�ï9�Ó/üÍï>ÅÓ/�ð�l˜ðÁˆ-ªð�<²ðãˆ-ü¾ðDÄÔ/‡ñ�ü�ñ;8 let dfa = dense::DFA::new_many(&["[0-9]+", "[a-z]+"])?;ÁüÏñ/, let expected = Some(HalfMatch::must(1, 3));ÁüƒòJ•Ö/üÒò.à�-<…óãˆ-ÓΔ—óÔ‘óD·óÀ& À&ôàšÞBÿwŒzz âów‹À/ Àó�À/TÃó y£ÛÝw§v lãôÓ‘í,¬ËôìÅô€†|}~üÞø5ü÷ô.+ Create a new DFA that matches every input.Áªõ�l²õÁˆ-Äõ�<Ìõãˆ-üØõDÄÔ/¡ö�ü©ö*' let dfa = dense::DFA::always_match()?;ÁØö�üàö/, let expected = Some(HalfMatch::must(0, 0));Áü”÷?< assert_eq!(expected, dfa.try_search_fwd(&Input::new(""))?);ÁüØ÷B? assert_eq!(expected, dfa.try_search_fwd(&Input::new("foo"))?);ÁüŸø.à�-<Òøãˆ-dåøšÞBÿ{{ |ü™ý4üþù2/ Create a new DFA that never matches any input.Áµú�l½úÁˆ-Ïú�<×úãˆ-üãú96 use regex_automata::{dfa::{Automaton, dense}, Input};Á¡û�ü©û)& let dfa = dense::DFA::never_match()?;Áü×û;8 assert_eq!(None, dfa.try_search_fwd(&Input::new(""))?);Áü—ü>; assert_eq!(None, dfa.try_search_fwd(&Input::new("foo"))?);ÁüÚü.à�-<�ýãˆ-\ ýšÞBÿ{{ }ü–€š<™€Á& â°š‰ Á&µÐ󯑵‚ïšÞBÿ{ †�{ ~ˆù<ª€¥ \È€ý 4ä€lookmÁ,ÿ€�¼œ�ÀöÃ�¹<ã�È,ý�„ކÓ‘í,¬ö…ìð…8Â&Â&††ó÷ˆý‰±)Š–ø‹—Œ½!�Àö޹�Èb¢hA;²Ð– 8…ò€�Ìû‡ü¥†:—ó,ä†�üì†KH This is a convenience routine to avoid needing to import the [`Config`]Áü¼‡:7 type when customizing the construction of a dense DFA.Á4‚ˆÛèBÿ €8Üö‰ü¸ˆB¥¹/ÿˆ�ü‡‰@= This is a convenience routine to avoid needing to import theÁü̉%" [`Builder`] type in common cases.Á<ý‰ êBÿ �8ä´Š�ƒƒþÆóë ¹Š£óë…òd¼Šöê„…†‡ˆ‰Š‹Œ�<>üê‹&ü׊FC Cheaply return a borrowed version of this dense DFA. Specifically,Áü¢‹C@ the DFA returned always uses `&[u32]` for its transition table.Á4ñ‹Ã& Ã&öꆆó÷ˆý‰±)Š–ø‹—Œ½!�Àö޹�Èb¢hA;²Ð– Ã&…òBÿ‚ ø‹‚Ö”$ù‹üÙ�"üÇŽEB Return an owned version of this sparse DFA. Specifically, the DFAÁü‘�=: returned always uses `Vec` for its transition table.ÁÓ��üÛ�IF Effectively, this returns a dense DFA whose transition table lives onÁl©� the heap.ÁÓ«ŒÁ�Ì»�Dà�Ä& Ä&öꀆBÿ‚ é�‚ …óë$ê�üò–%üÓ:7 Returns the starting state configuration for this DFA.Á‚”�üŠ”IF The default is [`StartKind::Both`], which means the DFA supports bothÁüØ”IF unanchored and anchored searches. However, this can generally lead toÁü¦•IF bigger DFAs. Therefore, a DFA might be compiled with support for justÁüô•HE unanchored or anchored searches. In that case, running a search withÁüÁ–,) an unsupported configuration will panic.ÁTù–Å& Å&öꚉBÿ‚ „—‚çç$…—ü°˜/L¾˜Æ& Æ&öê Æ&³íBÿ‚ Ș‚šè$ɘüž�-üˆ™GD Returns true only if this DFA has starting states for each pattern.ÁÔ™�üÜ™KH When a DFA has starting states for each pattern, then a search with theÁü¬šIF DFA can be configured to only look for anchored matches of a specificÁüúšFC pattern. Specifically, APIs like [`Automaton::try_search_fwd`] canÁüÅ›KH accept a non-None `pattern_id` if and only if this method returns true.Áü•œ30 Otherwise, calling `try_search_fwd` will panic.ÁÍœ�üÕœDA Note that if the DFA has no patterns, this always returns false.Á¼¥�Ç& Ç&öêBÿ‚ ½�‚–î$¾�ü…¤*üÿ�KH Returns the equivalence classes that make up the alphabet for this DFA.ÁÏž�üמEB Unless [`Config::byte_classes`] was disabled, it is possible thatÁü¡ŸGD multiple distinct bytes are grouped into the same equivalence classÁüíŸFC if it is impossible for them to discriminate between a match and aÁü¸ HE non-match. This has the effect of reducing the overall alphabet sizeÁü…¡HE and in turn potentially substantially reducing the size of the DFA'sÁ¬Ò¡ transition table.Áì¡�üô¡KH The downside of using equivalence classes like this is that every stateÁüÄ¢FC transition will automatically use this map to convert an arbitraryÁü�£GD byte to its corresponding equivalence class. In practice this has aÁüÛ£%" negligible impact on performance.ÁdŒ¤È& È&öê È&â°Bÿ‚ ™¤‚݆$š¤ü¶°#üÖ¤FC Returns the total number of elements in the alphabet for this DFA.Á¡¥�ü©¥IF That is, this returns the total number of transitions that each stateÁü÷¥FC in this DFA must have. Typically, a normal byte oriented DFA wouldÁü¦GD always have an alphabet size of 256, corresponding to the number ofÁüާHE unique values in a single byte. However, this implementation has twoÁüÛ§2/ peculiarities that impact the alphabet length:Á’¨�üš¨FC * Every state has a special "EOI" transition that is only followedÁüå¨EB after the end of some haystack is reached. This EOI transition isÁü¯©EB necessary to account for one byte of look-ahead when implementingÁìù© things like `\b` and `$`.Áü›ªJG * Bytes are grouped into equivalence classes such that no two bytes inÁüêªIF the same class can distinguish a match from a non-match. For example,Áü¸«FC in the regex `^[a-z]+$`, the ASCII bytes `a-z` could all be in theÁüƒ¬B? same equivalence class. This leads to a massive space savings.Áʬ�üÒ¬IF Note though that the alphabet length does _not_ necessarily equal theÁü ­GD total stride space taken up by a single DFA state in the transitionÁüì­DA table. Namely, for performance reasons, the stride is always theÁüµ®GD smallest power of two that is greater than or equal to the alphabetÁü�¯DA length. For this reason, [`DFA::stride`] or [`DFA::stride2`] areÁüʯGD often more useful. The alphabet length is typically useful only forÁÜ–° informational purposes.Ád½°É& É&öêBÿ‚ ʰ‚ Šóë$˰ôººü†±JG Returns the total stride for every state in this DFA, expressed as theÁüÕ±JG exponent of a power of 2. The stride is the amount of space each stateÁü¤²KH takes up in the transition table, expressed as a number of transitions.Áüô²,) (Unused transitions map to dead states.)Á¥³�ü­³GD The stride of a DFA is always equivalent to the smallest power of 2Áüù³DA that is greater than or equal to the DFA's alphabet length. ThisÁü´GD definition uses extra space, but permits faster translation betweenÁü޵KH premultiplied state identifiers and contiguous indices (by using shiftsÁüÞµ,) instead of relying on integer division).Á�¶�ü—¶JG For example, if the DFA's stride is 16 transitions, then its `stride2`Áäæ¶ is `4` since `2^4 = 16`.Á‡·�ü�·IF The minimum `stride2` value is `1` (corresponding to a stride of `2`)ÁüÝ·JG while the maximum `stride2` value is `9` (corresponding to a stride ofÁü¬¸KH `512`). The maximum is not `8` since the maximum alphabet size is `257`Áüü¸HE when accounting for the special EOI transition. However, an alphabetÁüɹJG length of that size is exceptionally rare since the alphabet is shrunkÁ옺 into equivalence classes.Á<ÁºÊ& Ê&öêBÿ‚ ɺ‚Íñ $ʺ쉾üþºJG Returns the total stride for every state in this DFA. This correspondsÁüÍ»GD to the total number of transitions used by each state in this DFA'sÁ¬™¼“€0³¼�ü»¼IF Please see [`DFA::stride2`] for more information. In particular, thisÁü‰½GD returns the stride as the number of transitions, where as `stride2`ÁüÕ½/, returns it as the exponent of a power of 2.Á4�¾Ë& Ë&öêBÿ‚ —¾‚ Œóë$˜¾ü„Á#ü;41 Returns the memory usage, in bytes, of this DFA.Á†¿�üŽ¿EB The memory usage is computed based on the number of bytes used toÁ¼Ø¿ represent this DFA.Áô¿�üü¿DA This does **not** include the stack size used up by this DFA. ToÁüÅÀ:7 compute that, use `std::mem::size_of::()`.Ád‹ÁÌ& Ì&öêBÿ‚ ˜Á‚ �óë$™ÁäÍÃüÅÂIF Routines for converting a dense DFA to other representations, such asÁü�Ã=: sparse DFAs or raw bytes suitable for persistent storage.Á���ýë/ ÒÃ�ì/dÕÃöê�‘’“”–—˜™-/üòÉCüðÃ+( Convert this dense DFA to a sparse DFA.Á Ä�ü¨ÄEB If a `StateID` is too small to represent all states in the sparseÁüòÄEB DFA, then this returns an error. In most cases, if a dense DFA isÁü¼ÅC@ constructable with `StateID` then a sparse DFA will be as well.Áü„Æ" However, it is not guaranteed.Á«Æ�l³ÆÁˆ-ÅÆ�<ÍÆãˆ-üÙÆDÄÔ/¢Ç�üªÇ.+ let dense = dense::DFA::new("foo[0-9]+")?;ÁüÝÇ$! let sparse = dense.to_sparse()?;Á†È�üŽÈ/, let expected = Some(HalfMatch::must(0, 8));ÁüÂÈJG assert_eq!(expected, sparse.try_search_fwd(&Input::new("foo12345"))?);Áü‘É.à�-<ÄÉãˆ-Ó‘í,¬ÖÉìÐÉLùÉÍ& Í&öêÔ�BÿŽ ƒÊŽ �óë$„Êü‡Ø8üéÊC@ Serialize this DFA as raw bytes to a `Vec` in little endianÁü±ËJG format. Upon success, the `Vec` and the initial padding length areÁl€Ìϳ/’Ì�üšÌEB The written bytes are guaranteed to be deserialized correctly andÁüäÌDA without errors in a semver compatible release of this crate by aÁü­ÍEB `DFA`'s deserialization APIs (assuming all other criteria for theÁü÷Í-* deserialization APIs has been satisfied):Á©Î�̱Î * [`DFA::from_bytes`]ÁüÏÎ# * [`DFA::from_bytes_unchecked`]Á÷Î�üÿÎHE The padding returned is non-zero if the returned `Vec` starts atÁüÌÏJG an address that does not have the same alignment as `u32`. The paddingÁü›ÐFC corresponds to the number of leading bytes written to the returnedÁtæÐ `Vec`.ÁùÐ�l�ÑÁˆ-“Ñ�ü›Ñ>; This example shows how to serialize and deserialize a DFA:ÁÞÑ�<æÑãˆ-üòÑIF use regex_automata::{dfa::{Automaton, dense::DFA}, HalfMatch, Input};ÁÀÒ�üÈÒ  // Compile our original DFA.ÁüíÒ.+ let original_dfa = DFA::new("foo[0-9]+")?;Á Ó�ü¨ÓGD // N.B. We use native endianness here to make the example work, butÁüôÓIF // using to_bytes_little_endian would work on a little endian target.ÁüÂÔ96 let (buf, _) = original_dfa.to_bytes_native_endian();Áü€ÕJG // Even if buf has initial padding, DFA::from_bytes will automaticallyÁŒÏÕ // ignore it.ÁüåÕ41 let dfa: DFA<&[u32]> = DFA::from_bytes(&buf)?.0;ÁžÖ�ü¦Ö/æ©0üÚÖGD assert_eq!(expected, dfa.try_search_fwd(&Input::new("foo12345"))?);Áü¦×.à�-<Ù×ãˆ-Ó‘í,¬ë×ìå×´ŽØÎ& Î&öêå�BÿŽ ¥ØŽ ‘óë$¦Øü†æ5üñØ@= Serialize this DFA as raw bytes to a `Vec` in big endianÁü¶ÙJÔ¬0l…Úϳ/—Ú�üŸÚEÄ­0üéÚD”®0ü²ÛEã®0üüÛ-³¯0®Ü�̶Ü÷¯0üÔÜ#›°0üÜ�ü„ÝHÖ°0üÑÝJ©±0ü ÞFþ±0tëÞβ0þÞ�l†ßÁˆ-˜ß�ü ß>�³0ãß�<ëßãˆ-ü÷ßIó³0Åà�üÍà Ô´0üòà.ÿ´0¥á�ü­áGŵ0üùáC@ // using to_bytes_big_endian would work on a big endian target.ÁüÁâ9ë¶0üÿâJ¯·0ŒÎヸ0üäã4Ÿ¸0�ä�ü¥ä/æ©0üÙäGú¸0ü¥å.à�-<Øåãˆ-Ó‘í,¬êåìäåœ�æÏ& Ï&öêå�BÿŽ ¡æŽ ’óë$¢æü¼÷8üíæC@ Serialize this DFA as raw bytes to a `Vec` in native endianÁüµçJÔ¬0l„èϳ/–è�üžèEÄ­0üèèD”®0ü±éEã®0üûé-³¯0­ê�̵ê÷¯0üÓê#›°0ûê�üƒëHÖ°0üÐëJ©±0üŸìFþ±0têìβ0ýì�ü…íEB Generally speaking, native endian format should only be used whenÁüÏíEB you know that the target you're compiling the DFA for matches theÁü™îHE endianness of the target on which you're compiling DFA. For example,ÁüæîIF if serialization and deserialization happen in the same process or onÁü´ïDA the same machine. Otherwise, when serializing a DFA for use in aÁüýïJG portable environment, you'll almost certainly want to serialize _both_ÁüÌðJG a little endian and a big endian version and then load the correct oneÁü›ñ(% based on the target's configuration.ÁÈñ�lÐñÁˆ-âñ�üêñ>�³0­ò�<µòãˆ-üÁòIó³0�ó�ü—ó Ô´0ü¼ó.ÿ´0ïó�ü÷ó9ë¶0üµôJ¯·0Œ„õƒ¸0üšõ4Ÿ¸0Óõ�üÛõ/æ©0ü�öGú¸0üÛö.à�-<Ž÷ãˆ-Ó‘í,¬ ÷ìš÷´Ã÷Ð& Ð&öêå�BÿŽ Ú÷Ž “óë$Û÷ü½ù1Ó‘í,¬¡ùì›ùDÀùÑ& Ñ&öêå�BÿŽ�•• ÔùŽþƬ– Éùì–4Ìù ”ó묖$Õù+-üÉŽlü‡ýHE Serialize this DFA as raw bytes to the given slice, in little endianÁüÔýGD format. Upon success, the total number of bytes written to `dst` isÁl þϳ/²þ�üºþEÄ­0ü„ÿD”®0üÍÿEã®0ü—€-³¯0É€�ÌÑ€÷¯0üï€#›°0—��üŸ�JG Note that unlike the various `to_byte_*` routines, this does not writeÁüî�JG any padding. Callers are responsible for handling alignment correctly.Á½‚�dÅ‚ # ErrorsÁÖ‚�üÞ‚JG This returns an error if the given destination slice is not big enoughÁü­ƒHE to contain the full serialized DFA. If an error occurs, then nothingÁÄúƒ is written to `dst`.Á—„�lŸ„Áˆ-±„�ü¹„EB This example shows how to serialize and deserialize a DFA withoutÁôƒ… dynamic memory allocation.Á¦…�<®…ãˆ-üº…Ió³0ˆ†�ü�† Ô´0üµ†.ÿ´0è†�üð†GD // Create a 4KB buffer on the stack to store our serialized DFA. WeÁü¼‡GD // need to use a special type to force the alignment of our [u8; N]ÁüˆˆIF // array to be aligned to a 4 byte boundary. Otherwise, deserializingÁüÖˆ96 // the DFA may fail because of an alignment mismatch.Át”‰ #[repr(C)]Áü§‰ struct Aligned {ÁÌˉ _align: [u32; 0],ÁŒé‰ bytes: B,Á,ÿ‰ }Áü‰ŠDA let mut buf = Aligned { _align: [], bytes: [0u8; 4 * (1<<10)] };ÁüÒŠGŵ0üž‹IF // using write_to_little_endian would work on a little endian target.Áüì‹GD let written = original_dfa.write_to_native_endian(&mut buf.bytes)?;Áü¸ŒEB let dfa: DFA<&[u32]> = DFA::from_bytes(&buf.bytes[..written])?.0;Á‚��üŠ�/æ©0ü¾�Gú¸0üŠŽ.à�-<½Žãˆ-´ÐŽÒ&Ó& Ò&öê Ó&³÷ݘBÿŽ ðŽŽ –óë$ñŽ�œÚ�ü¬¡iüó�EB Serialize this DFA as raw bytes to the given slice, in big endianÁü½�G¯Í0l‰‘ϳ/›‘�ü£‘EÄ­0üí‘D”®0ü¶’Eã®0ü€“-³¯0²“�̺“÷¯0üØ“#›°0€”�üˆ”J�Ï0ü×”JäÏ0¦•�d®•ÅÐ0¿•�üÇ•JéÐ0ü––H¾Ñ0Äã–�Ò0€—�lˆ—Áˆ-š—�ü¢—EÛÒ0ôì—ªÓ0�˜�<—˜ãˆ-ü£˜Ió³0ñ˜�üù˜ Ô´0üž™.ÿ´0Ñ™�üÙ™GµÔ0ü¥šG‡Õ0üñšIÙÕ0ü¿›9­Ö0tý›ðÖ0ü�œ‰×0Ì´œ²×0ŒÒœÕ×0,èœð×0üòœD€Ø0ü»�Gŵ0ü‡žC@ // using write_to_big_endian would work on a big endian target.ÁüÏžG²Ù0ü›ŸE„Ú0åŸ�üíŸ/æ©0ü¡ Gú¸0üí .à�-< ¡ãˆ-œ³¡Ô&Õ& Ô&öê Õ&³÷ݘBÿŽ СŽ —óë$Ñ¡�œ�üÆ·lüÓ¢HE Serialize this DFA as raw bytes to the given slice, in native endianÁü £G¯Í0lì£ϳ/þ£�ü†¤EÄ­0üФD”®0ü™¥Eã®0üã¥-³¯0•¦�Ì�¦÷¯0ü»¦#›°0ã¦�üë¦E Ã0üµ§EðÃ0üÿ§HÀÄ0ų̈I“Å0üš©DçÅ0üã©J¶Æ0ü²ªJ‹Ç0ü�«(àÇ0®«�ü¶«J�Ï0ü…¬JäÏ0Ô¬�dܬÅÐ0í¬�üõ¬JéÐ0üÄ­H¾Ñ0Ä‘®�Ò0®®�l¶®Áˆ-È®�üЮEÛÒ0ôš¯ªÓ0½¯�<ůãˆ-üѯIó³0Ÿ°�ü§° Ô´0ṵ̈.ÿ´0ÿ°�ü‡±GµÔ0üÓ±G‡Õ0üŸ²IÙÕ0üí²9­Ö0t«³ðÖ0ü¾³‰×0Ìâ³²×0Œ€´Õ×0,–´ð×0ü ´D€Ø0üé´G²Ù0üµµE„Ú0ÿµ�ü‡¶/æ©0ü»¶Gú¸0ü‡·.à�-<º·ãˆ-´Í·Ö&×& Ö&öê ×&³÷ݘBÿŽ í·Ž ˜óë$î·�œ@�üèÍ#üð¸DA Return the total number of bytes required to serialize this DFA.Á¹¹�üÁ¹JG This is useful for determining the size of the buffer required to passÁü�º)& to one of the serialization routines:Á¾º�üƺ%" * [`DFA::write_to_little_endian`]Áüðº" * [`DFA::write_to_big_endian`]Áü—»%" * [`DFA::write_to_native_endian`]ÁÁ»�üÉ»GD Passing a buffer smaller than the size returned by this method willÁü•¼JG result in a serialization error. Serialization routines are guaranteedÁüä¼-* to succeed when the buffer is big enough.Á–½�lž½Áˆ-°½�ü¸½KH This example shows how to dynamically allocate enough room to serializeÁTˆ¾ a DFA.Á—¾�<Ÿ¾ãˆ-ü«¾Ió³0ù¾�ü�¿.ÿ´0´¿�ü¼¿74 let mut buf = vec![0; original_dfa.write_to_len()];Áüø¿JG // This is guaranteed to succeed, because the only serialization errorÁüÇÀC@ // that can occur is when the provided buffer is too small. ButÁü�Á.+ // write_to_len guarantees a correct size.ÁüÂÁIF let written = original_dfa.write_to_native_endian(&mut buf).unwrap();Áü�Â<9 // But this is not guaranteed to succeed! In particular,ÁüÑÂKH // deserialization requires proper alignment for &[u32], but our bufferÁü¡ÃHE // was allocated as a &[u8] whose required alignment is smaller thanÁüîÃKH // &[u32]. However, it's likely to work in practice because of how mostÁü¾ÄKH // allocators work. So if you write code like this, make sure to eitherÁüŽÅJG // handle the error correctly and/or run it under Miri since Miri willÁüÝÅKH // likely provoke the error by returning Vec buffers with alignmentÁÄ­Æ // less than &[u32].ÁüÊÆC@ let dfa: DFA<&[u32]> = match DFA::from_bytes(&buf[..written]) {Áü’ÇFC // As mentioned above, it is legal for an error to be returnedÁüÝÇIF // here. It is quite difficult to get a Vec with a guaranteedÁü«È,) // alignment equivalent to Vec.ÁüÜÈ  Err(_) => return Ok(()),Áä�É Ok((dfa, _)) => dfa,Á4¢ÉŸŠ-­É�üµÉ/æ©0üéÉGú¸0üµÊ.à�-<èÊãˆ-ôÊ�üüÊ@= Note that this example isn't actually guaranteed to work! InÁüÁËFC particular, if `buf` is not aligned to a 4-byte boundary, then theÁüŒÌHE `DFA::from_bytes` call will fail. If you need this to work, then youÁüÙÌIF either need to deal with adding some initial padding yourself, or useÁü§Í<9 one of the `to_bytes` methods, which will do it for you.ÁdïÍØ& Ø&öêBÿŽ üÍŽÍ“$ýͼËÑ�››††ó÷ˆý‰±)Š–ø‹—Œ½!�Àö޹�Èb¢hA;²Ð– �…òœ�žÐÑüÊ‘füéÑ=: Safely deserialize a DFA with a specific state identifierÁü«ÒHE representation. Upon success, this returns both the deserialized DFAÁüøÒKH and the number of bytes read from the given slice. Namely, the contentsÁüÈÓ-* of the slice beyond the DFA are not read.ÁúÓ�ü‚ÔKH Deserializing a DFA using this routine will never allocate heap memory.ÁüÒÔIF For safety purposes, the DFA's transition table will be verified suchÁü ÕJG that every transition points to a valid state. If this verification isÁüïÕKH too costly, then a [`DFA::from_bytes_unchecked`] API is provided, whichÁü¿Ö)& will always execute in constant time.ÁíÖ�üõÖFC The bytes given must be generated by one of the serialization APIsÁüÀ×EB of a `DFA` using a semver compatible release of this crate. ThoseÁdŠØ include:Á›Ø�ü£Ø%" * [`DFA::to_bytes_little_endian`]ÁüÍØ" * [`DFA::to_bytes_big_endian`]ÁüôØ%" * [`DFA::to_bytes_native_endian`]ÁüžÙ%Úí0üÈÙ"Šî0üïÙ%·î0™Ú�ü¡ÚIF The `to_bytes` methods allocate and return a `Vec` for you, alongÁüïÚDA with handling alignment correctly. The `write_to` methods do notÁü¸ÛHE allocate and write to an existing slice (which may be on the stack).Áü…ÜIF Since deserialization always uses the native endianness of the targetÁüÓÜJG platform, the serialization API you use should match the endianness ofÁü¢ÝGD the target platform. (It's often a good idea to generate serializedÁüîÝIF DFAs for both forms of endianness and then load the correct one basedÁœ¼Þ on endianness.)ÁÔÞ�dÜÞÅÐ0íÞ�üõÞGD Generally speaking, it's easier to state the conditions in which anÁüÁß?< error is _not_ returned. All of the following must be true:Á…à�ü�àGD * The bytes given must be produced by one of the serialization APIsÁüÙà&# on this DFA, as mentioned above.Áü„áJG * The endianness of the target platform matches the endianness used toÁüÓá" serialized the provided DFA.Áüúá<9 * The slice given must have the same alignment as `u32`.Á»â�üÃâEB If any of the above are not true, then an error will be returned.Á�ã�d•ãÚº.¦ã�ü®ã0- This routine will never panic for any input.Áãã�lëãÁˆ-ýã�ü…äJG This example shows how to serialize a DFA to raw bytes, deserialize itÁüÔä" and then use it for searching.Áûä�<ƒåãˆ-ü�åIó³0Ýå�üåå)& let initial = DFA::new("foo[0-9]+")?;Áü“æ63 let (bytes, _) = initial.to_bytes_native_endian();ÁüÎæ63 let dfa: DFA<&[u32]> = DFA::from_bytes(&bytes)?.0;Á‰ç�ü‘ç/æ©0üÅçGú¸0ü‘è.à�-<Äèãˆ-Ðè�üØè1. # Example: dealing with alignment and paddingÁŽé�ü–éHE In the above example, we used the `to_bytes_native_endian` method toÁüãéJG serialize a DFA, but we ignored part of its return value correspondingÁü²êGD to padding added to the beginning of the serialized DFA. This is OKÁüþêHE because deserialization will skip this initial padding. What mattersÁüËëJG is that the address immediately following the padding has an alignmentÁüšìC@ that matches `u32`. That is, the following is an equivalent butÁüâì/, alternative way to write the above example:Á–í�<žíãˆ-üªíIó³0øí�ü€î)ý—1ü®îIF // Serialization returns the number of leading padding bytes added toÁäüî // the returned Vec.Áü�ï85 let (bytes, pad) = initial.to_bytes_native_endian();ÁüÚï=: let dfa: DFA<&[u32]> = DFA::from_bytes(&bytes[pad..])?.0;Áœð�ü¤ð/æ©0üØðGú¸0ü¤ñ.à�-<×ñãˆ-ãñ�üëñB? This padding is necessary because Rust's standard library doesÁü²òEB not expose any safe and robust way of creating a `Vec` with aÁüüòGD guaranteed alignment other than 1. Now, in practice, the underlyingÁüÈóGD allocator is likely to provide a `Vec` that meets our alignmentÁü”ôIF requirements, which means `pad` is zero in practice most of the time.Áâô�üêôHE The purpose of exposing the padding like this is flexibility for theÁü·õFC caller. For example, if one wants to embed a serialized DFA into aÁü‚öJG compiled program, then it's important to guarantee that it starts at aÁüÑöHE `u32`-aligned address. The simplest way to do this is to discard theÁüž÷KH padding bytes and set it up so that the serialized DFA itself begins atÁüî÷HE a properly aligned address. We can show this in two parts. The firstÁü»ø*' part is serializing the DFA to a file:Áêø�lòø ```no_runÁü„ù(% use regex_automata::dfa::dense::DFA;Á±ù�ü¹ù%" let dfa = DFA::new("foo[0-9]+")?;Áãù�üëù1. let (bytes, pad) = dfa.to_bytes_big_endian();Áü¡úC@ // Write the contents of the DFA *without* the initial padding.Áüéú85 std::fs::write("foo.bigendian.dfa", &bytes[pad..])?;Á¦û�ü®û41 // Do it again, but this time for little endian.Áüçû41 let (bytes, pad) = dfa.to_bytes_little_endian();Áü ü;8 std::fs::write("foo.littleendian.dfa", &bytes[pad..])?;Áüàü.à�-<“ýãˆ-Ÿý�ü§ýJG And now the second part is embedding the DFA into the compiled programÁüöýDA and deserializing it at runtime on first use. We use conditionalÁü¿þ1. compilation to choose the correct endianness.Áõþ�lýþó©1Ì�ÿóˆ-ü­ÿ%" dfa::{Automaton, dense::DFA},Áü×ÿ*' util::{lazy::Lazy, wire::AlignAs},Á̆€áÁ/4¤€ŸŠ-¯€�ü·€<9 // This crate provides its own "lazy" type, kind of likeÁüø€FC // lazy_static! or once_cell::sync::Lazy. But it works in no-allocÁüÃ�C@ // no-std environments and let's us write this using completelyÁŒ‹‚ // safe code.Áü¡‚96 static RE: Lazy> = Lazy::new(|| {Áüß‚&# # const _: &str = stringify! {ÁüŠƒ@= // This assignment is made possible (implicitly) via theÁüσ@= // CoerceUnsized trait. This is what guarantees that ourÁü”„?< // bytes are stored in memory on a 4 byte boundary. YouÁüØ„=: // *must* do this or something equivalent for correctÁÜš… // deserialization.Áüº…85 static ALIGNED: &AlignAs<[u8], u32> = &AlignAs {Á¼÷… _align: [],Áü“†)& #[cfg(target_endian = "big")]ÁüÁ†85 bytes: *include_bytes!("foo.bigendian.dfa"),Áüþ†,) #[cfg(target_endian = "little")]Áü¯‡;8 bytes: *include_bytes!("foo.littleendian.dfa"),ÁTï‡ };Ádþ‡ # };Áü�ˆ:7 # static ALIGNED: &AlignAs<[u8], u32> = &AlignAs {ÁÌΈ # _align: [],ÁÄìˆ # bytes: [],Ád‰‰•º1š‰�ü¢‰63 let (dfa, _) = DFA::from_bytes(&ALIGNED.bytes)Áü݉63 .expect("serialized DFA should be valid");Á\˜Š dfaÁ<¨Š });Á´Š�ü¼Š30 let expected = Ok(Some(HalfMatch::must(0, 8)));ÁüôŠEB assert_eq!(expected, RE.try_search_fwd(&Input::new("foo12345")));Á<¾‹ãˆ-Ê‹�üÒ‹C@ An alternative to [`util::lazy::Lazy`](crate::util::lazy::Lazy)ÁüšŒ?< is [`lazy_static`](https://crates.io/crates/lazy_static) orÁüÞŒDA [`once_cell`](https://crates.io/crates/once_cell), which provideÁü§�DA stronger guarantees (like the initialization function only beingÁüð�A> executed once). And `once_cell` in particular provides a moreÁü¶ŽJG expressive API. But a `Lazy` value from this crate is likely just fineÁÔ…� in most circumstances.Á¤��ü¬�DA Note that regardless of which initialization method you use, youÁüõ�FC will still need to use the [`AlignAs`](crate::util::wire::AlignAs)ÁüÀ�FC trick above to force correct alignment, but this is safe to do andÁü‹‘:7 `from_bytes` will return an error if you get it wrong.ÁTÑ‘ �³÷ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÜ‚1ÄòBÿšš œ�å,å‘ü¡©wüÍŸHE Deserialize a DFA with a specific state identifier representation inÁüš EB constant time by omitting the verification of the validity of theÁüä 30 transition table and other data inside the DFA.Áœ¡�ü¤¡KH This is just like [`DFA::from_bytes`], except it can potentially returnÁüô¡KH a DFA that exhibits undefined behavior if its transition table containsÁôÄ¢ invalid state identifiers.Áç¢�üï¢C@ This routine is useful if you need to deserialize a DFA cheaplyÁü·£B? and cannot afford the transition table validation performed byÁŒþ£ `from_bytes`.Á”¤�lœ¤Áˆ-®¤�<¶¤ãˆ-ü¤Ió³0�¥�ü˜¥)ý—1üÆ¥6±˜1ü�¦GD // SAFETY: This is guaranteed to be safe since the bytes given comeÁüͦ85 // directly from a compatible serialization routine.ÁüЧKH let dfa: DFA<&[u32]> = unsafe { DFA::from_bytes_unchecked(&bytes)?.0 };ÁÚ§�üâ§/æ©0ü–¨Gú¸0üâ¨.à�-<•©ãˆ-¤¯©þÅ1ˆÆ1ÿšš ��å,Í©ü‡¶iDжÙ&Ú& Ù&Ü‚1 Ú&³÷ݘBÿš�ŸŸ §¶š†Í0 “¶˜Í04–¶ ž�¬–$¨¶�œº¶/1tù¾üϾ)& Other routines that work for all `T`.Á�¡¡ýë/ þ¾öê¢ ü¸Á=üŽ¿41 Set or unset the prefilter attached to this DFA.ÁÇ¿�üÏ¿@= This is useful when one has deserialized a DFA from `&[u8]`.Áü”ÀDA Deserialization does not currently include prefilters, so if youÁüÝÀEB want prefilter acceleration, you'll need to rebuild it and attachÁd§Á it here.Ál¿ÁÛ& Û&öêó¯Bÿ  ÍÁ  ¢óë$ÒÁϳl¢ÅÓ‘í,¬ŠÅì„Å€†¤¥¦§¨ª¬­®¯±²üÝÅ~|ëÅÜ& Ü&€†Å‚ôí³äBÿ£ „Æ£ ¤$‰Æ©ÆD—Æ‚,³ÆŽ-ÉÆüÁÈ€tÏÈÝ& Ý&€†³ä–®³äBÿ£ çÈ£ ¥$ìÈ”$úÈÿ†$‘ÉtoÁ¯Éü ÌG|®ÌÞ& Þ&€†üÙ Bÿ£ ¾Ì£ ¦$ÃÌü”Ï@\¢Ïß& ß&€†³ä³äBÿ£ ®Ï£ §$³Ïid1Á¹Ïid2ÁÇÏü°Ñ@,¾Ñà& à&€†‹ëBÿ£Ú©© ÄÑ£þÆ‹ëÜÔÑ…#‹ë‘ë´ÙÑ�#‹ë‘ë³ä<èÑàî$Éу R·FHü£Ør\±Øá& á&€†³ä‹ëBÿ£Ú«« ÆØ£ËÚ1ÜóØÝÚ1´øØòÚ1<‡Ù ª‹ë$ËØŽ-ÙØƒ îØ:<üÍÛ4|ÛÛâ& â&€†Bÿ£ ëÛ£ ¬$ðÛ¶öÛüíÜ!DûÜã& ã&€†Bÿ£ „Ý£ ­$‰Ýüïà‚|ýàä&å& ä&€† å&ò ò Wö rootÁà ÷ lengthÁà ø «à ù ¡¥à Þ ×¯0W“Ô³ä…C…CüˆC�†Ð=‰C¶Ð=ò¹Úàŋ㽇½‡ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¬òBÿ£ –ᣠ®$›áƒ ©áüÅã#TÓãç& ç&€†Bÿ£ Þ㣠¯$ããüâô*¯�°�°�°°¯°æ& æ&ð‡³äUÿüú¶�<ˆ·è& è&€†ØÞ1ÿß1Bÿ£ ™·£ ±$ž·£^<°·üŠÙ"¤�Ùê& ê&€†Bÿ£ ¢Ù£ ²$§Ùü�Úf²�³�³�³³²³é& é&€†Å‚ôí³äUÿ䥿�µµýë/ ªæ�ì/d­æöê¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇHJüöæ(<„çë& ë&öê ë&ð‡Bÿ´ Œç´Ù„$�çü¦è4Ó‘í,¬Šèì„è\´èì& ì&öê ì&ð‡Bÿ´ Àè´ ·óë$ÅèüÀé(<Îéí& í&öê í&‘µBÿ´ Öé´œŒ $×éü´ê$,Âêî& î&öê î&‚ïBÿ´ Èê´÷Œ $Éêü›í/4©íï& ï&öêÇÇž,ÊýËÇ,=Èd4Í;ù_ï&óëBÿ´ °í´ì‘$±íüäî'Lòîð& ð&öêBÿ´ üî´¢É$ýîüçðBÓ‘í,¬ËðìÅð„õðñ& ñ&öê³ä ñ&¯ûBÿ´ †ñ´·ý $‡ñŽ-K½ü³ó<ŒÁóò& ò&öê³äBÿ´ Óó´¨—$ÔóŽ-à¾ü¡õ)\¯õó& ó&öêBÿ´ »õ´†¦$¼õüûöEÓ‘í,¬ßöìÙö\‰÷ô& ô&öêØÞ1Bÿ´ •÷´ ¿óë$–÷üÄø'Ó‘í,¬¨øì¢ø<Òøõ& õ&öê³äBÿ´ Úø´ Àóë$Ûøü–ü3D¤üö& ö&öê³äBÿ´ ­ü´ê†$®üŽ-9Àü�ÿ9Ó‘í,¬�ÿìûþ\«ÿ÷& ÷&öê³äBÿ´ ·ÿ´ Âóë$¸ÿ÷,¾ÿüÊ€14Ø€ø& ø&ö꟟“)¡±)¢Ÿ3OE¡H8-ø&Bÿ´ ߀´Ê¡$à€ü’ƒ1Œ•ƒù& ù&öê³äBÿ´ §ƒ´þù$¨ƒŽ-UÃüÚŠ1ŒÝŠú& ú&öê³äBÿ´ ‹«$ðŠŽ-˜Åüì�"4ï�û& û&öê±±¢„³½!¦ >¼B�y û&…òBÿ´ ö�´èð$÷�ìðŽ,óŽü& ü&öê ü&íïBÿ´ ùŽ´éˆ$úŽü±�+�ÉÉýë/ ¶��ì/d¹�öêÊ gÊüã�8æ�ý&þ&ÿ& ý&öê þ&€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ÿ&ÏÁBÿÈ ê�È Êóë$ë�œáíüÅ 1�ÌÌýë/ Ñ �ì/dÔ öêÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß‚ƒ„…†‡ùúûˆ‰Š‹Œ�ü�Ž�ÎÙÑÜÔß×ÏÚÒÝÕÍØÐÛÓÞÖãåü¶¡/„¹¡€' €'öê³äBÿË Ê¡Ë Íóë$Ë¡Ž-ÈþüÖ¢,lÙ¢�' �'öê³äBÿË ç¢Ë Îóë$袎-ˆÿüð£,ló£‚' ‚'öê³äBÿË �¤Ë Ïóë$‚¤Ž-HüŠ¥-t�¥ƒ' ƒ'öê³äBÿË œ¥Ë Ðóë$�¥Ž- ü¦¦-t©¦„' „'öê³äBÿË ¸¦Ë Ñóë$¹¦Ž-Êü§-tŧ…' …'öê³äBÿË Ô§Ë Òóë$Õ§Ž-‹üÞ¨<Tᨆ' †'öê³ä³äBÿË ì¨Ë Óóë$í¨’Šœ¬—¦üæªk¤ðª‡' ‡'öê³ä³äÿË Ž«Ë Ôóë$�«’ŠHÿ†Rüæ¯5t鯈' ˆ'öê³ä³äBÿË ø¯Ë Õóë$ù¯’Šç ôܱ\ß±‰' ‰'öêBÿË ë±Ë Öóë$ì±üݲ)Lಊ' Š'öê³äBÿË ê²Ë ×óë$벎-‰ üð³Eló³‹' ‹'öê³ä‹ãBÿË �´Ë Øóë$‚´Ž- К Üœ¹LŸ¹Œ' Œ'öêBÿË ©¹Ë Ùóë$ª¹Ì›º<žº�' �'öêBÿË ¦ºË Úóë$§ºü–»*Ä™»Ž' Ž'öêBÿË ²»Ë Ûóë$³»ü³¼c\¶¼�'�' �'öê �'äì�¤BÿË ˼Ë Üóë$̼Øü€ÁB¬ƒÁ‘' ‘'öêÅ‚¨¨BÿË ™ÁË Ýóë$šÁ¦‡\üÑÃ+\ÔÃ’' ’'öê³ä ’'³÷BÿË àÃË Þóë$áÃŽ-üÃÅ-lÆÅ“' “'öêřǙș­É™Ê™àË™óG*¤�R{9  “'ûÙBÿË ÔÅË ßóë$ÕÅüÄß#�áá””áø–ò&—ˆù˜Õ ´gëö‚ÆOÙƒ1âÉßüÔ郤ÞéþÅ1ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwãŠ2Äòÿàà â�å,€êô•þÓ‘í,¬ýýì÷ýœüäåæèéëü—€ =<š€ â°œüBÿãã äˆù<¢€ üú„ Cý„ •' •'œü³ä–®³äBÿã �… ã å$†… ”$Œ… Ê$›… ‘×1±… üÞ‰ <|በ–' –'œüüÙ Bÿã ñ‰ ã æ$ö‰ É™ æ�ç�ç�ççæç¯Ù üš� .$�� —' —'œü³ä³äBÿã ¢� ã è$§� ÕØ1­� áØ1»� ü¦£ B,©£ ˜' ˜'œü³ä‹ëBÿãÚêê ¯£ ãËÚ1ÜÌ£ ÝÚ1´Ñ£ òÚ1<࣠é‹ë$´£ Ž-º£ ƒ Ç£ :<üÖ§ "DÙ§ ™' ™'œüBÿã â§ ã ë$ç§ ¶í§ ü¶¨ (�ííýë/ »¨ �ì/d¾¨ –ìîðñòóôõö÷øùúûüýþÿEGü¸ª iD»ª š'›' š'–ì ›'³÷ݘBÿì�ïï ت ì†Í0 Ī ˜Í04Ǫ îó묖$Ùª �œëª -/ü¹³ d¼³ œ' œ'–ìBÿì ɳ 짦$ʳ ü»¶ @D¾¶ �'ž' �'–ì ž'öêÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÄòBÿì Ƕ ì ñóë$ȶ „ζ ü±Ã .4´Ã Ÿ' Ÿ'–ì””áø–ò&—ˆù˜Õ ´gëö‚ÆO Ÿ'…òBÿì »Ã ìœï$¼Ã üßÅ ;Ó«ŒÇÅ ÌÁÅ DâÅ  '  '–ìœüBÿì ëÅ ìÙ÷$ìÅ ü®È ),±È ¡' ¡'–ì³äÒÒù,ÔŽ-ÕÕÖ -ð h?¼Ù·¡'Bÿì ·È ì ôóë$¸È Ž-X,üèÌ $4ëÌ ¢' ¢'–ìÇÇž,ÊýËÇ,=Èd4Í;ù_¢'óëBÿì òÌ ì®ö$óÌ üðÐ (DóÐ £' £'–ì³äBÿì üÐ ìÛ€$ýÐ Ž-ç/üÍÔ .\ÐÔ ¤' ¤'–ì³äBÿì ÜÔ ì ÷óë$ÝÔ ÷ø0ü�Ù /Ó‘í,¬óØ ìíØ l’Ù ¥' ¥'–ì³ä³äBÿì  Ù ì øóë$¡Ù Ž-§Ù üÊÛ /Ó‘í,¬®Û ì¨Û lÍÛ ¦' ¦'–ì³ä³äBÿì ÛÛ ì ùóë$ÜÛ Ž-âÛ ìþÜ ,�Ý §' §'–ì §'íïBÿì ‡Ý ì‹�$ˆÝ ´™à œà ¨' ¨'–ìBÿì  à ìŽø$¡à Ì�â 4 â ©' ©'–ìBÿì §â ìà†$¨â üæä déä ª' ª'–ìBÿì öä ìÏ„$÷ä ü®ç 'D±ç «' «'–ì³äBÿì ºç ìØÕ$»ç Ž-A6ü×é dÚé ¬' ¬'–ìBÿì çé ì…ˆ$èé üËê (Ó‘í,¬³ê ì­ê ���ýë/ Ðê ¦óë…òdÓê –ì‚!#ü­ë )L°ë ­' ­'–ì ­'íïBÿ€ ºë € ‚óë$¿ë ÌŸž Ó‘í,¬‡ž ì�ž óü„üÑ¢ ”$Ô¢ ¯'š‰ ¯'µÐͶÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwóü¬òBÿƒ ‚£ ƒ „¦$⢠§å/,û¢ ¥ \˜£ ô¬ �††œœ²ùžò&Ÿ¦  ¡ä¢¥ £ôù¤–úʞÑ'¥[âÙƒ1‡Ǭ ü‡· ~¤‘· þÅ1ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�¨2Äòÿ…… ‡�å,³· ,ß¾ ‡�ˆ�ˆ�ˆˆ‡ˆ”âUÿ¹Â ‡�‰�‰�‰‰‡‰²Ù ÄòUÿžÆ ‡�Š�Š�ŠŠ‡Šî«2üéÔ #�ŒŒýë/ îÔ �ì/dñÔ æì�‘’•–—˜™š-/üáÖ iDäÖ °'±' °'æì ±'³÷ݘBÿ‹�ŽŽ �× ‹†Í0 íÖ ˜Í04ðÖ �ó묖$‚× �œ”× -/,™à ���������×… ,Žâ ���������¢ˆ ü‘å d”å ²' ²'æìBÿ‹ ¡å ‹©§$¢å üãé @Dæé ³'´' ³'æì ´'öêÙ–2Bÿ‹ ïé ‹ ’óë$ðé „öé ùê ’�“�“�““’“óë‘ëUÿÍêÚì ’�”�”�””’”óë­²2·²2üòñ )4õñ µ' µ'æìœœ²ùžò&Ÿ¦  ¡ä¢¥ £ôù¤–úʞÑ'¥[â µ'…òBÿ‹ üñ ‹àï$ýñ üèõ 6Ó«ŒÐõ ÌÊõ Dëõ ¶' ¶'æìóüBÿ‹ ôõ ‹�ø$õõ ü‘ý o,”ý ·' ·'æìÅ‚ôí�¤Bÿ‹ £ý ‹§£$¤ý ©Æ?[‚J[üý‡ $$€ˆ ¸' ¸'æìŸŸ“)¡±)¢Ÿ3OE¡H8-¸'Bÿ‹ …ˆ ‹ ‚$†ˆ 앉 ,˜‰ ¹' ¹'æì ¹'íïBÿ‹ ž‰ ‹Š $Ÿ‰ ü‚‹ d…‹ º' º'æìBÿ‹ ’‹ ‹Ɉ$“‹ üö‹ #Ó‘í,¬Þ‹ ìØ‹ �œœýë/ û‹ î¤2dþ‹ æì�žü°� FL³� »' »'æìÅ‚ôí³äBÿ› ½� › �óë$Â� ©ÆDÈ� ‚,Ü� Ž-ê� üÚ” )LÝ” ¼' ¼'æì ¼'íïBÿ› ç” › žóë$ì” üИ $t☠�  ãí3OE¡H8-¡¢ñ˜ Ìû˜ û˜ ŸŸ�¨2Dš™ š™ ŸŸü§™ (�¤¤ãí¥¦ÅQÆQ¦¬™ LÖ™ $Û™ ££¾¤üƒš 8$†š ½' ½'ãí€úBÿ£ ‹š £ ¦�$�š üϬ �¨¨¨¨Éúª§+«½+¬¥ ~U$FQCÙƒ1©Ô¬ üõ¬ ¤ÿ¬ þÅ1ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¿¾2Äòÿ§§ ©�å,¡­ Ô»Ä Ó‘í,¬£Ä ì�Ä ÷ý«¬®üÜÄ 5,ßÄ ÷ýBÿªª «¥ \åÄ ü像�Æ Â' Â'ØÞ1ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw÷ý¬òBÿª ³Æ ª ¬£^<ªÆ ¥ \߯ ÜÈ ¬�­�­�­­¬­êæ¬òUÿüÀÎ ‡dÃÎ Ã'Ä' Ã'÷ý Ä'ØÞ1æÁ2Bÿª ÙÎ ª ®$ÚÎ £^<èÎ ü‡Ð $�°°ýë/ ŒÐ �ì/d�Ð ¨î±³´µ¶·¸¹º»¼½¾¿<>ü‚Ò iD…Ò Å'Æ' Å'¨î Æ'³÷ݘBÿ¯�²² ¢Ò ¯†Í0 ŽÒ ˜Í04‘Ò ±ó묖$£Ò �œµÒ -/ü†Þ d‰Þ Ç' Ç'¨îBÿ¯ –Þ ¯«¨$—Þ üÎá @DÑá È'É' È'¨î É'öêÙ–2Bÿ¯ Úá ¯ ´óë$Ûá „áá ü”î CÓ‘í,¬øí ìòí 4—î Ê'Ë' Ê'¨î Ë'öêØÞ1Bÿ¯ žî ¯ µóë$Ÿî „¥î üÈñ *4Ëñ Ì' Ì'¨î¨¨Éúª§+«½+¬¥ ~U$FQC Ì'…òBÿ¯ Òñ ¯¤ð$Óñ üþó 7Ó«Œæó Ìàó D�ô Í' Í'¨î÷ýBÿ¯ Šô ¯âø$‹ô üÇ÷ ?tÊ÷ Î'Ï' Î'¨î Ï'öê³äBÿ¯ Ù÷ ¯¾¸$Ú÷ „a{÷k{üƒ� IT†� Ð' Ð'¨î‹ãBÿ¯ ‘� ¯‘š$’� èšÔ}КÞ}üˆ„ 2\‹„ Ñ' Ñ'¨îBÿ¯ —„ ¯ƒþ$˜„ èšÇüû† >„þ† Ò' Ò'¨î Ò'¯ûBÿ¯ �‡ ¯éú$�‡ èš{‚üì‰ 4ï‰ Ó' Ó'¨î Ó'¯ûBÿ¯ ö‰ ¯ÍÎ $÷‰ ´½‹ À‹ Ô' Ô'¨îBÿ¯ Ä‹ ¯éµ$Å‹ ü¯� %\²� Õ' Õ'¨î Õ'¯ûBÿ¯ ¾� ¯°Ô $¿� üàŽ d㎠Ö' Ö'¨îBÿ¯ ðŽ ¯ʉ$ñŽ T±– ‚ïÁÂÃÆüŸ™ )Ó‘í,¬ƒ™ ìý˜ D¢™ Û' Û'²Ÿ‚ïBÿÀ °™ À Áõ.«™ ü†œ aT”œ Ü' Ü'³÷ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‚ïÄòBÿÀ ¯œ À Âå,¨œ üÊ  pDØ  Ý'Þ' Ý'‚ï Þ'³÷ݘBÿÀ�ÄÄ õ  ÀþƤ£ á  Ã¤£ 4ä  Ã¤£ $ö  �œ¾‘02ôÅ¡ \È¡ Bÿùž ˜ Ô¡ ü¦¦ *d´¦ ß' ß'‚ïBÿÀ Á¦ À©¥$¦ üó© "L…ª �È�ÉÈÉþƬ𠓪 ¬ð�Ôœª îï=Èd4Í;ù_ÊË�ª 8:5œª ÇÇ �ɧ ü¼ª /¼ª ÇÇƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—ΪΪÌÛѪ¬óoÒªéÛóoSð #Ò±�³äüðª 7�Í�ÎÍÎÕ×2 ùª £¬ð…òdüª îïÏÐÅQÆQÐõª 79L®« $³« Ì̹ðüÊ« '$Í« à' à'îïřǙș­É™Ê™àË™óG*¤�R{9 ¹ðBÿÌ Ò« Ì Ð�¬ðM–d�¬ Ð�Ñ�Ñ�ÑÑÐç¨ Ü€® ,’® �ÓÓ¹ðð h?¼Ù·ÔÕÖ˜® \¢® ¢® ÒÒ³ät³® <³® ÒÒÔÇ® \Ç® ÒÒ �íï”æ® �ØØ¹ðÙÚÛÜë® üã± ;\ñ± á' á'¹ð½½çû¿¶ÀÇ,sZH.Ý^]á'Bÿ× ý± × Ù�$þ± ü÷¸ H”…¹ â' â'¹ðÄÄ­üƱÇÞüøø˜ÝçèL¢â'Bÿ× ˜¹ × Ú�$™¹ üǺ "Õº ã' ã'¹ð³äBÿ× غ × Û�$Ùº ü»¼ <Ó‘í,¬Ÿ¼ 왼 T¾¼ ä'å' ä'¹ð å'â°ÕËBÿ× ɼ × Ü�$ʼ ˆù<м ü� !�ÞÞ¹ðß g߆ ü©Â 8¬Â æ'ç'è' æ'¹ð ç'€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡è'ÏÁBÿÝ °Â Ý ß�$±Â œ ·Â ü«Ê -�áá‰ñâãÅQÆQã°Ê LßÊ $äÊ àà–®³äü‹Ë 7$ŽË ì' ì'‰ñřǙș­É™Ê™àË™óG*¤�R{9 Äå2Bÿà “Ë à ã�$˜Ë TàË ã�ä�ä�ääãäòžÄå2UÿÂàüØÓ 3�ææÚñçèÅQÆQèÝÓ L’Ô $—Ô å凴 üÎÔ G$ÑÔ ð' ð'Úñ³ Bÿå ÖÔ å è�$ÛÔ |Ìá Ó‘í,¬´á ì®á ¬òêüÐó ,üâá KH Returns true if and only if this error corresponds to an error with DFAÁü²â A> construction that occurred because of exceeding a size limit.Áøâ �ü€ã IF While this can occur when size limits like [`Config::dfa_size_limit`]ÁüÎã KH or [`Config::determinize_size_limit`] are exceeded, this can also occurÁüžä GD when the number of states or patterns exceeds a hard-coded maximum.Áüêä JG (Where these maximums are derived based on the values representable byÁü¹å # [`StateID`] and [`PatternID`].)Ááå �üéå FC This predicate is useful in contexts where you want to distinguishÁü´æ DA between errors related to something provided by an end user (forÁüýæ GD example, an invalid regex pattern) and errors related to configuredÁüÉç IF heuristics. For example, building a DFA might be an optimization thatÁü—è FC you want to skip if construction fails because of an exceeded sizeÁüâè HE limit, but where you want to bubble up an error if it fails for someÁŒ¯é  other reason.ÁÅé �lÍé Áˆ-ßé �<çé ãˆ-üóé =·³-üµê K±Š/ü…ë 9©ð.Ãë �üËë # let err = dense::Builder::new()Áüóë 'šÅ-üŸì 2/ .determinize_size_limit(Some(100_000))ÁLÖì ¯É-Ìäì ‘ò.´‚í ´ò.ü�í ;8 // This error occurs because a size limit was exceeded.ÁüÝí &# // But things are otherwise valid.Áüˆî *' assert!(err.is_size_limit_exceeded());Á·î �ü¿î #ûñ2Ôçî  .build(r"\bxyz\b")Á´†ï ´ò.ü¡ï 85 // This error occurs because a Unicode word boundaryÁüÞï :7 // was used without enabling heuristic support for it.Áü�ð (% // So... not related to size limits.ÁüÊð +( assert!(!err.is_size_limit_exceeded());Áúð �ü‚ñ #ûñ2¼ªñ  .build(r"(xyz")Á´Æñ ´ò.üáñ 85 // This error occurs because the pattern is invalid.Áüžò (¡ö2üËò +Ôö2ûò �üƒó .à�-<¶ó ãˆ-´×ó õ' õ'¬òBÿé îó é ê$ïó ¤‹ô |Ä„ Ó‘í,¬¬„ 즄 ¬òíîïðñòóôü�… !$„… ú' ú'¬ò ú'ìòBÿì ‰… ì í$Š… üÃ… :Ñ… ‚•¬òBÿììýÚ»\Õ… üÁ† Cüφ %¬òBÿìì ïüщ -|߉ ¬òBÿì숾 üÇŠ 3¬ÕŠ ¬òBÿìì ñüÈ‹ 8ÔÖ‹ ¬òBÿìì òüÒŒ A¼àŒ ¬òBÿìì óóþ,øŒ üí� Iüû� ¬òBÿìì ôóþ,›Ž üß� %Ó‰|µ� Ó‘í,¬Æ� ü´� (ü«� 3¬òö‚öü‹� >4Ž� û' û'¬òřǙș­É™Ê™àË™óG*¤�R{9  û'�Bÿõ •� õ ö$–� üç‘ &Ó‘í,¬Ï‘ ìÉ‘ ¬òø¥gøü”’ D—’ ü'ý'þ' ü'¬ò ý'€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡þ'ÏÁBÿ÷ ›’ ÷ ø$œ’ œ ¢’ l¬yüž™ A DFA-backed `Regex`. This module provides [`Regex`], which is defined generically over the [`Automaton`] trait. A `Regex` implements convenience routines you might have come to expect, such as finding the start/end of a match and iterating over all non-overlapping matches. This `Regex` type is limited in its capabilities to what a DFA can provide. Therefore, APIs involving capturing groups, for example, are not provided. Internally, a `Regex` is composed of two DFAs. One is a "forward" DFA that finds the end offset of a match, where as the other is a "reverse" DFA that find the start offset of a match. See the [parent module](crate::dfa) for examples. ÁÓ–â,´“yô�y,´yæðûüÊ…CùúüüT…Ëùû½HL³øùþ±,¾ùÿ�$Ñ®ù�—,ßò$ù‚öŒDëÈ%ùƒá�,õ›%ù„ƒïTüí%ù…ï54¼Âùˆ½ŒLÄ›ù‰ûíLâÛ%ùŠ|¾Ó«Œ¦Ì !ìòÓ‘í,¬ÖìÐ&,•„•¤¨ ü•9l×úæèÑÓ¼¾,©Ó«Œ‘Ì‹„©Ó«ÒÓ«(&ãÏÓ«;9à¼ÔÓ«PNÜô ŒÏ  á  º ç  ø , è  é  ö + ê  ë  õ , ì 8åí & ð 8ª $ñ  ÷ *ú  ý  ·+ ‡  ˆ  Ÿ 8ì‰  Œ  ž 8Ó<�  • 7«<— , ©  ª  ² + «  ¬  ± , ­ 8å®  ³ 8½ 84Á 8Ž,È  Í 8ý Î  Ð 8±,Ò '× 8ôDÙ  á  ã  � 8û3<ñ & ø 8ý ú $ û 8Š4<‰ & � 8ý ’ $ “ + ¨  ©  Å 8ìª  ­  Ä 8Æ ®  ±  à 8Ó<²  º 7«<¼ , Ï  Ð  Ø + Ñ  Ò  × , Ó 8åÔ  Ù 8ã 84ç 8Ž,î  ó 8ý ô  õ  ÷  ±8û3<…& Œ8ý Ž$ �8Š4<�& ¤8ý ¦$ §% ¸T¦9ÓΔù8Ó‘í,¬�9üø8+üï86öÓ �Žüõ=6ü·9JG Parse the given regular expression using the default configuration andÁü†:# return the corresponding regex.Á®:�ü¶:HE If you want a non-default configuration, then use the [`Builder`] toÁüƒ; set your own configuration.Á§;�l¯;Áˆ-Á;�<É;ãˆ-üÕ;30 use regex_automata::{Match, dfa::regex::Regex};Á�<�ü•<)& let re = Regex::new("foo[0-9]+bar")?;Á|Ã<ÐŒ-ü×<$! Some(Match::must(0, 3..14)),Áü€=&# re.find(b"zzzfoo12345barzzz"),Á4«=Ä�-ü¶=.à�-<é=ãˆ-ü=ƒ( ƒ(§Ó BÿŒ ‰>Œ �¿‰<€>ü¡EZüß>GD Like `new`, but parses multiple patterns into a single "regex set."Áü«?85 This similarly uses the default regex configuration.Áè?�lð?Áˆ-‚@�<Š@ãˆ-ü–@3Ÿ”3Î@�üÖ@52 let re = Regex::new_many(&["[a-z]+", "[0-9]+"])?;Á�A�ü˜A85 let mut it = re.find_iter(b"abc 1 foo 4567 0 quux");ÁüÕA63 assert_eq!(Some(Match::must(0, 0..3)), it.next());Áü�B63 assert_eq!(Some(Match::must(1, 4..5)), it.next());ÁüËB63 assert_eq!(Some(Match::must(0, 6..9)), it.next());Áü†C85 assert_eq!(Some(Match::must(1, 10..14)), it.next());ÁüÃC85 assert_eq!(Some(Match::must(1, 15..16)), it.next());Áü€D85 assert_eq!(Some(Match::must(0, 17..21)), it.next());Áü½D  assert_eq!(None, it.next());ÁüâD.à�-<•Eãˆ-D¨E„( „(ôà§Ó BÿŒŒ�� ÓEŒ‹À/ ±E�À/T´E Ž£ÛÝw©üêF ÓΔ½FÓ‘í,¬ÑFü¼F+ü³F6�× ‘’üñKbü‘GGD Parse the given regular expression using the default configuration,ÁüÝGA> except using sparse DFAs, and return the corresponding regex.Á£H�ü«HHò’3üøHÄ“3œI�l¤IÁˆ-¶I�<¾Iãˆ-üÊI3Ÿ”3‚J�üŠJ0- let re = Regex::new_sparse("foo[0-9]+bar")?;Á|¿JÐŒ-üÓJ$¨•3üüJ&Ö•34§KÄ�-ü²K.à�-<åKãˆ-TøK…( …(ÁÖ Bÿ� •L� ‘¿‰<ŒLüûSwüŽMFC Like `new`, but parses multiple patterns into a single "regex set"ÁüÙMFC using sparse DFAs. This otherwise similarly uses the default regexÁ”¤N configuration.Á»N�lÃNÁˆ-ÕN�<ÝNãˆ-üéN3Ÿ”3¡O�ü©O<9 let re = Regex::new_many_sparse(&["[a-z]+", "[0-9]+"])?;ÁêO�üòO8­™3ü¯P6ï™3üêP6¯š3ü¥Q6ïš3üàQ8¯›3ü�R8ñ›3üÚR8³œ3ü—S õœ3ü¼S.à�-<ïSãˆ-|‚T†( †(ôàÁÖ Bÿ�Œ““ ´T�‹À/ ’T�À/T•T ’£ÛÝw]«üâU&ü±U0- Convenience routines for regex construction.ÁææŽèû3ùéŠ4ù½Á¸ûANˆ`††ó÷ˆý‰±)Š–ø‹—Œ½!�Àö޹�Èb¢hA;²Ð– …ò•ÜÐ]ü�VC@ Return a builder for configuring the construction of a `Regex`.Á×V�üßV@·é/ü¤W%‚ê/ÎW�lÖWÁˆ-èW�üðWC@ This example shows how to use the builder to disable UTF-8 modeÁ|¸X everywhere.ÁÌX�<ÔXãˆ-üàX=·³-Ì¢Yóˆ-üÀY>; dfa::regex::Regex, nfa::thompson, util::syntax, Match,Á4ƒZŸŠ-ŽZ�ì–Z let re = Regex::builder()Áü¸Z2/ .syntax(syntax::Config::new().utf8(false))ÁüïZ63 .thompson(thompson::Config::new().utf8(false))Áüª[&# .build(r"foo(?-u:[^b])ar.*")?;ÁüÕ[41 let haystack = b"\xFEfoo\xFFarzz\xE2\x98\xFF\n";ÁüŽ\.+ let expected = Some(Match::must(0, 1..9));ÁüÁ\  let got = re.find(haystack);Áôæ\¤¡.‰]�ü‘].à�-<Ä]ãˆ-<×]ùõBÿ”” •ÜÓ^üŽ^DA Standard search routines for finding and iterating over matches.Áý——þÆ�õ Ø^ø�õLÛ^Çô˜œŸ!#ü½j@üõ^FC Returns true if and only if this regex matches the given haystack.ÁÀ_�üÈ_IF This routine may short circuit if it knows that scanning future inputÁü–`KH will never lead to a different result. In particular, if the underlyingÁüæ`KH DFA enters a match state or a dead state, then this routine will returnÁü¶aIF `true` or `false`, respectively, without inspecting any future input.Á„b�dŒbÚº.�b�ü¥bHE This routine panics if the search could not complete. This can occurÁüòb! in a number of circumstances:Á˜c�ü cFC * The configuration of the DFA may permit it to "quit" the search.ÁüëcEB For example, setting quit bytes or enabling heuristic support forÁüµdJG Unicode word boundaries. The default configuration does not enable anyÁü„e1. option that could result in the DFA quitting.ÁüºeC@ * When the provided `Input` configuration is not supported. ForÁü‚f52 example, by providing an unsupported anchor mode.Á¼f�üÄfGD When a search panics, callers cannot know whether a match exists orÁD�g not.Á�g�ü¥gKH Use [`Regex::try_search`] if you want to handle these error conditions.Áõg�lýgÁˆ-�h�<—hãˆ-ü£h*' use regex_automata::dfa::regex::Regex;ÁÒh�üÚh)è”3üˆi1. assert_eq!(true, re.is_match("foo12345bar"));Áü¾i-* assert_eq!(false, re.is_match("foobar"));Áüði.à�-<£jãˆ-DÄj‡( ‡(ÇôÆØ Bÿ–Þ2™…š™š åj–þÆÆØ Ñj©ÆØ ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Þ2|Ôj ˜�õÞ2ÆØ $æj¬—ô­Íj™›Íl˜�›�›�››˜ÄÛ ü¥yEüòlGD Returns the start and end offset of the leftmost match. If no matchÁü¾m$! exists, then `None` is returned.Áçm�dïmÚº.€n�üˆnHϵ3üÕn!¡¶3ûn�üƒoFض3üÎoE¨·3ü˜pJ÷·3üçp1˸3ü�qC†¹3üåq5Ó¹3Ÿr�ü§rGžº3Dórîº3€s�üˆsKŒ»3Øs�làsÁˆ-òs�<úsãˆ-ü†t3Ÿ”3¾t�üÆt+( // Greediness is applied appropriately.Áüöt&# let re = Regex::new("foo[0-9]+")?;Áü¡uGD assert_eq!(Some(Match::must(0, 3..11)), re.find("zzzfoo12345zzz"));Áíu�üõuGD // Even though a match is found after reading the first byte (`a`),ÁüÁvIF // the default leftmost-first match semantics demand that we find theÁü�wKH // earliest match that prefers earlier parts of the pattern over latterÁlßw // parts.Áüñw" let re = Regex::new("abc|a")?;Áü˜x;8 assert_eq!(Some(Match::must(0, 0..3)), re.find("abc"));ÁüØx.à�-<‹yãˆ-$¬yˆ( ˆ(ÇôÆØ Ýá Bÿ–Þ2�…žž� Éy–È¿3 µyÙ¿3|¸y œ�õÞ2ÆØ $Êy¬—ò°±y57ü½‚qü¨zHE Returns an iterator over all non-overlapping leftmost matches in theÁüõzJG given bytes. If no match exists, then the iterator yields no elements.ÁÄ{�üÌ{=: This corresponds to the "standard" regex search iterator.ÁŽ|�d–|Úº.§|�ü¯|C@ If the search returns an error during iteration, then iterationÁü÷|96 panics. See [`Regex::find`] for the panic conditions.Áµ}�ü½}" Use [`Regex::try_search`] withÁüä}HE [`util::iter::Searcher`](crate::util::iter::Searcher) if you want toÁü±~" handle these error conditions.ÁØ~�là~Áˆ-ò~�<ú~ãˆ-ü†3Ÿ”3¾�üÆ&ºÄ3üñ# let text = "foo1 foo12 foo123";Áü™€;8 let matches: Vec = re.find_iter(text).collect();ÁìÙ€ assert_eq!(matches, vec![Áìû€ Match::must(0, 0..4),Áô�� Match::must(0, 5..10),ÁüÀ� Match::must(0, 11..17),Á<ä� ]);Áüð�.à�-<£‚ãˆ-LÄ‚   ÇôÆØ ðð�€ôº€ùõÇ,ùgbò+m Þ2�õBÿ–Þ2¡…¢¡¢΂–È¿3 Ö‚Ù¿3|Ù‚ Ÿ�õÞ2ÆØ $÷‚¬—¦²@BÒ‚=?Ü“…ü“„JG Lower level fallible search routines that permit controlling where theÁüÞ„41 search starts and ends in a particular sequence.Áý¤¤´²3 ˜…Ų3L›…Çô¥¦üøŽgüµ…GØÀ3ü�†$©Á3ª†�ü²†:7 This is like [`Regex::find`] but with two differences:Áñ†�üù†A> 1. It is not generic over `Into` and instead accepts aÁü¿‡IF `&Input`. This permits reusing the same `Input` for multiple searchesÁü�ˆFC without needing to create a new one. This _may_ help with latency.Áü؈DA 2. It returns an error if the search could not complete where asÁü¡‰ [`Regex::find`] will panic.Áʼn�d͉ÅÐ0Þ‰�üæ‰HE This routine errors if the search could not complete. This can occurÁü³Š# in the following circumstances:ÁÛŠ�üãŠFض3ü®‹E¨·3üø‹J÷·3üÇŒ1˸3üýŒC†¹3üÅ�5Ó¹3ÿ��ü‡ŽGD When a search returns an error, callers cannot know whether a matchÁ”ÓŽ exists or not.ÁTÿމ(Š(‹( ‰(Çô Š(ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寋(øâ Bÿ£ “�££á $”�¬—;Àüä¦0\ç¦ùŒ(�(Ž( Œ(Çô �(ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寎(Bÿ£ 󦣊ð $ô¦¬—eÆܪ©üШJG Non-search APIs for querying information about the regex and setting aÁt›© prefilter.Áý¨¨´²3 ¯©Ų3L²©Çô©ª«Üè«üÌ©?< Return the underlying DFA responsible for forward matching.Á�ª�ü˜ªHE This is useful for accessing the underlying DFA and converting it toÁüåªHE some other format or size. See the [`Builder::build_from_dfas`] docsÁü²«1. for an example of where this might be useful.Á<ï«�( �(Çô �(�õBÿ§ ÷«§€Ú $ø«Üîü§¬?< Return the underlying DFA responsible for reverse matching.Áë¬�üó¬H›â3üÀ­Hîâ3ü�®1Áã3<Ê®�( �(Çô �(�õBÿ§ Ò®§ÿç $Ó®ü™²"ü‚¯?< Returns the total number of patterns matched by this regex.ÁƯ�lίÁˆ-à¯�<è¯ãˆ-üô¯=·³-ü¶°*“¼3å°�üí°?< let re = Regex::new_many(&[r"[a-z]+", r"[0-9]+", r"\w+"])?;Áü±±$! assert_eq!(3, re.pattern_len());ÁüÚ±.à�-<�²ãˆ-\ ²‘( ‘(ÇôBÿ§ ¬²§ «�õ$­²ü¡¹>¢3­Þ2®ý¯­®¯þÆáõ ®¹øáõL±¹™õ°±ÅQÆQ±¦¹ª¹:<Læ¹$빬¬÷þüŒº#$�º•( •(™õÝá Bÿ¬ ”º¬ ±¢3Þ2áõ$™º<ùº±�²�²�²²±�� d°Õùõ´µ¶·¹»½¾¿¼†ÖüÃÕ>; Create a new regex builder with the default configuration.Á�ÖùõBÿ³³ŒÒ üîØ?ü™×)& Build a regex from the given pattern.ÁÇ×�üÏ×Jçº/„žØ»»/ÓΔ½ØÓ‘í,¬ÑØü¼Ø+ü³Ø6,õØš(›( š(ùõ ›(§Ó Bÿ³ ûس µ$üØ¿‰<‚ÙüÆÛsüßÙ;8 Build a regex from the given pattern using sparse DFAs.ÁŸÚ�ü§ÚJçº/„öÚ»»/ÓΔ•ÛÓ‘í,¬©Ûü”Û+ü‹Û6dÍÛœ(�( œ(ùõ �(ÁÖ Bÿ³ ãÛ³ ¶$äÛ¿‰<òÛüÜÝküòÜ*' Build a regex from the given patterns.ÁÓΔ«ÝÓ‘í,¬¿ÝüªÝ+ü¡Ý6TãÝž(Ÿ( ž(ùõ Ÿ(ôà§Ó Bÿ³Œ¸¸ †Þ³‹À/ îÝ�À/TñÝºÒ $‡ÞÝwWØ!#üçãˆüöâ1. Build a sparse regex from the given patterns.ÁÓΔ¶ãÓ‘í,¬Êãüµã+ü¬ã6Œîã (¡(  (ùõ ¡(ôàÁÖ Bÿ³Œºº ˜ä³‹À/ €ä�À/TƒäÔÕ $™äÝw–à!#ü€ùnü¿æ>; Build a regex from its component forward and reverse DFAs.Á‚ç�üŠçA> This is useful when deserializing a regex from some arbitraryÁüÐçFC memory region. This is also useful for building regexes from otherÁ”›è types of DFAs.Á²è�üºèIF If you're building the DFAs from scratch instead of building new DFAsÁüˆéJG from other DFAs, then you'll need to make sure that the reverse DFA isÁü×éA> configured correctly to match the intended semantics. Namely:Á�ê�ä¥ê * It should be anchored.ÁüÆê1. * It should use [`MatchKind::All`] semantics.Áüüê! * It should match in reverse.Áü¢ë@= * Otherwise, its configuration should match the forward DFA.Áçë�üïëJG If these conditions aren't satisfied, then the behavior of searches isÁ„¾ì unspecified.ÁÓì�üÛìGD Note that when using this constructor, no configuration is applied.Áü§íDA Since this routine provides the DFAs to the builder, there is noÁüðí52 opportunity to apply other configuration options.Áªî�l²îÁˆ-Äî�üÌîEB This example is a bit a contrived. The usual use of these methodsÁü–ïKH would involve serializing `initial_re` somewhere and then deserializingÁüæïDA it later to build a regex. But in this case, we do everything inÁ\¯ð memory.Á¿ð�<Çðãˆ-üÓð*“¼3‚ñ�üŠñ.+ let initial_re = Regex::new("foo[0-9]+")?;Áü½ñ52 assert_eq!(true, initial_re.is_match(b"foo123"));Á÷ñ�üÿñB? let (fwd, rev) = (initial_re.forward(), initial_re.reverse());ÁüÆò85 let re = Regex::builder().build_from_dfas(fwd, rev);Áüƒó-* assert_eq!(true, re.is_match(b"foo123"));Áüµó.à�-<èóãˆ-ôó�üüóKH This example shows how to build a `Regex` that uses sparse DFAs insteadÁüÌôEB of dense DFAs without using one of the convenience `build_sparse`Ál–õ routines:Á¨õ�<°õãˆ-ü¼õ*“¼3ëõ�üóõ.Ô�4ü¦ö5�‚4àö�üèö0- let fwd = initial_re.forward().to_sparse()?;Áü�÷0- let rev = initial_re.reverse().to_sparse()?;ÁüÒ÷8§ƒ4ü�ø-êƒ4üÁø.à�-<ôøãˆ-|‡ù¢( ¢(ùõ�õ�õÇôBÿ³ý¼¼ ®ù³´²3 —ùŲ3Lšù »�õ$¯ùû3¦ãŠ4±ã/1ü¹üdüŸú7ÚÈ/üÛú4œÉ/”û�üœûJèÉ/tëû¼Ê/ÓΔˆüÓ‘í,¬œüü‡ü+üþû64Àü£( £(ùõËïÇ‹4Bÿ³ Ðü³ ½$ÕüØ4ãüü—€güÙý=·Ì/ü›þ<ÿÌ/Üþ�üäþFC This permits setting things like whether additional time should beÁü¯ÿ(% spent shrinking the size of the NFA.ÁÓΔæÿÓ‘í,¬úÿüåÿ+üÜÿ6Dž€¤( ¤(ùõàŽ‡Ž4Bÿ³ °€³ ¾$µ€Ø4Àü®ƒ>ü¼�FC Set the dense DFA compilation configuration for this builder usingÁ´‡‚ [`dense::Config`].Á¢‚�üª‚GD This permits setting things like whether the underlying DFAs shouldÁŒö‚ be minimized.ÁÓ‘í,¬’ƒ쌃,µƒ¥( ¥(ùõÛèí�4Bÿ³ »ƒ³ ¿$ÀƒØ4ƃÄ©„ùõÁ÷Á¼È„<Ë„ùõBÿÀÀ ÁtÚyü™ ” Types and routines specific to sparse DFAs. This module is the home of [`sparse::DFA`](DFA). Unlike the [`dense`] module, this module does not contain a builder or configuration specific for sparse DFAs. Instead, the intended way to build a sparse DFA is either by using a default configuration with its constructor [`sparse::DFA::new`](DFA::new), or by first configuring the construction of a dense DFA with [`dense::Builder`] and then calling [`dense::DFA::to_sparse`]. For example, this configures a sparse DFA to do an overlapping search: ``` use regex_automata::{ dfa::{Automaton, OverlappingState, dense}, HalfMatch, Input, MatchKind, }; let dense_re = dense::Builder::new() .configure(dense::Config::new().match_kind(MatchKind::All)) .build(r"Samwise|Sam")?; let sparse_re = dense_re.to_sparse()?; // Setup our haystack and initial start state. let input = Input::new("Samwise"); let mut state = OverlappingState::start(); // First, 'Sam' will match. sparse_re.try_search_overlapping_fwd(&input, &mut state)?; assert_eq!(Some(HalfMatch::must(0, 3)), state.get_match()); // And now 'Samwise' will match. sparse_re.try_search_overlapping_fwd(&input, &mut state)?; assert_eq!(Some(HalfMatch::must(0, 7)), state.get_match()); # Ok::<(), Box>(()) ``` ÁÓ–â,´Áyô»y4âyïðçõ“�Œ•¡­�$à á8ÂÃñÔ ûcÂÅà<Þ  ÙÂÆ–“ Ð=ÂÈ–ÂÈü� …CÂɱ$Ú ÂËüüTà ËÂÌÉNœ™  ÃÂнHL® øÂÑá†T¹ ÔÂÒ£û,Õ ³ÂÓ‘‹<í ŒÂÔ½ŒLþ ›ÂÕ¦$‰  ÂÖ¬\µ ÷ÂÙš°< ¦ÂÚ�¹LÜ ŸÂÛ�¹ ÂÛº<õ µÂÝâè,þ «ÂÞáå……Âß²æŠ�Âà”ÊL£�!ÂáÒÏLÃú!ÂãáÐ<Î�"ÂäöŒDèÈ%Âå‚$‚—Âçò¾,ˆð#ÂèÛÝd�ë#ÂéØÌ$­èÂëŽâ„³®$ÂìàÖ4ÅÃÂíßátͪ$ÂîT½ Ó‘í,¬¡ ì› õ$Í çêdÙ Ü,‹ Ó‘í,¬ï ìé âÓ‘í,õD˜ Ó‘í,.,äŒÆ Ó‘í,¬ª ì¤ êÓ‘í,,Ò ìÓ‘í,.,ÿ,ñ „ñ üñ %úýëîÛÞdÎ Ï„ä À­°›žüñ ­üñ Á—š‡ŠŒÔ {üñ �Y\IL9<),¤˜üñ Ï„àôüñ Žè,úÙÜÉÌüñ ¹¿$¦°³ £�“Œé,ï–ó,”Ÿ<¥ÂŒ©%Ó‘í,¬‘%ì‹%£Žòôü¢+=üÁ%HõÑ/üŽ&(% return the corresponding sparse DFA.Á»&�üÃ&9�Ó/ü�'C@ [`dense::Builder`] to set your own configuration, and then callÁüÉ'52 [`dense::DFA::to_sparse`] to create a sparse DFA.Áƒ(�l‹(Áˆ-�(�<¥(ãˆ-ü±(EB use regex_automata::{dfa::{Automaton, sparse}, HalfMatch, Input};Áû(�üƒ)0- let dfa = sparse::DFA::new("foo[0-9]+bar")?;Á¸)�üÀ)0ÚÕ/üõ)J•Ö/üÄ*.à�-<÷*ãˆ-ÓΔ‰+Ôƒ+©+§( §(Ô�Bÿñ ¶+ñ ò¿‰<­+<²,ò�ó�ó�óóòóôÏ ü¼2aüØ,Iò×/ü¦-'ÆØ/Ò-�üÚ-9�Ó/ü˜.Cü¥4üà.5ɦ4š/�l¢/Áˆ-´/�<¼/ãˆ-üÈ/Eº§4’0�üš0<9 let dfa = sparse::DFA::new_many(&["[0-9]+", "[a-z]+"])?;ÁüÛ0/»Ú/ü�1J•Ö/üÞ1.à�-<‘2ãˆ-ÓΔ£2Ô�2DÃ2¨( ¨(ôàÔ�BÿñŒõõ î2ñ‹À/ Ì2�À/TÏ2 ô£ÛÝwè<ö3ô�ö�ö�ööôçÏ Œ¸4Ó‘í,¬ 4ìš4£ŽøùúüÜ89üÐ4.ìÜ/ƒ5�l‹5Áˆ-�5�<¥5ãˆ-̱5óˆ-üÏ5! dfa::{Automaton, sparse},ÁÌõ5áÁ/4“6ŸŠ-ž6�ü¦6+( let dfa = sparse::DFA::always_match()?;ÁÖ6�üÞ6/¹Þ/ü’7?óÞ/üÖ7B½ß/ü�8.à�-<Ð8ãˆ-dã8Ô�Bÿ÷÷ øü÷<8üÓ996 Create a new sparse DFA that never matches any input.Á‘:�l™:Áˆ-«:�<³:ãˆ-ü¿::7 use regex_automata::{dfa::{Automaton, sparse}, Input};Áþ:�ü†;*' let dfa = sparse::DFA::never_match()?;Áüµ;;Öâ/üõ;>œã/ü¸<.à�-<ë<ãˆ-\þ<Ô�Bÿ÷÷ ùü·>qTÅ>©( ©(öêÔ�Bÿ÷�ûû ï>÷ýë/ Ð>�ì/dÓ>—�„ÉÚLú�ü�ü�üüú¢Ù $Ívú�ý�ý�ýýúÇŠ •wú�þ�þ�þþúÉ‹ ÜÐ~�€€ýë/ Õ~£óë³÷\Ø~Åö�ƒ„…†‡.0ü€€,üò~KH Cheaply return a borrowed version of this sparse DFA. Specifically, theÁüÂ96 DFA returned always uses `&[u8]` for its transitions.Á4‡€‚ ‚Åö��ó÷ƒý„±)Â…—†Àö‡¹ÂˆÈÂÚð5\Yt¬i ‚³÷BÿÿŽ€ÿ �óë$–€ü¥„2üž‚Eâî/üè‚74 returned always uses `Vec` for its transitions.Á¤ƒ�ü¬ƒHE Effectively, this returns a sparse DFA whose transitions live on theÁLùƒ heap.ÁÓ«Œ�„̇„D¬„ª( ª(Åö£ŽBÿÿ µ„ÿ ƒóë$¶„üü‰%ü͆:åñ/Œ‡�ü”‡I·ò/üâ‡I‹ó/ü°ˆIßó/üþˆH³ô/üˉ,†õ/TƒŠ«( «(Åöš‰Bÿÿ ŽŠÿ „óë$�ŠüÉŽ-üÄŠGøö/�‹�ü˜‹K×÷/üè‹I­ø/ü¶ŒF�ù/ü��KH accept a [`Anchored::Pattern`] if and only if this method returns true.ÁüÑ�)& Otherwise, an error will be returned.Áÿ��ü‡Ž=: Note that if the DFA is empty, this always returns false.Á¼Ðެ( ¬(ÅöBÿÿ èŽÿ …óë$éŽü·•*üª�K˜ü/ú��ü‚�GD Unless [`dense::Config::byte_classes`] was disabled, it is possibleÁüÎ�FC that multiple distinct bytes are grouped into the same equivalenceÁü™‘JG class if it is impossible for them to discriminate between a match andÁüè‘JG a non-match. This has the effect of reducing the overall alphabet sizeÁü·’HÁÿ/¬„““€0ž“�ü¦“KÀ€0üö“F–�0üÁ”Gç�0ü�•%¹‚0d¾•­( ­(Åö ­(â°Bÿÿ Ë•ÿ †óë$Ì•üÀ˜#üˆ–4Ž 0Á–�üÉ–EÚ 0¼“—©¡0¯—�ü·—DØ¡0ü€˜;8 compute that, use `std::mem::size_of::()`.Ádǘ®( ®(ÅöBÿÿ Ô˜ÿ ‡óë$՘ܡšü§™NK Routines for converting a sparse DFA to other representations, such as rawÁüö™*' bytes suitable for persistent storage.Á�‰‰ýë/ ¦š̸4\©šÅöŠ‹Œ���‘’”-/üó¦/üÚC†¬0\‹› format.Á››�ü£›EÄ­0üí›D”®0ü¶œEã®0ü€�-³¯0²��̺�÷¯0üØ�#›°0€ž�üˆžHE Note that unlike a [`dense::DFA`]'s serialization methods, this doesÁüÕžDA not add any initial padding to the returned bytes. Padding isn'tÁüžŸGD required for sparse DFAs since they have no alignment requirements.ÁêŸ�lòŸÁˆ-„ �üŒ >�³0Ï �<× ãˆ-üã JG use regex_automata::{dfa::{Automaton, sparse::DFA}, HalfMatch, Input};Á²¡�üº¡ Ô´0üß¡.ÿ´0’¢�üš¢Gŵ0üæ¢I—¶0ü´£41 let buf = original_dfa.to_bytes_native_endian();Áüí£J¯·0Œ¼¤ƒ¸0üÒ¤30 let dfa: DFA<&[u8]> = DFA::from_bytes(&buf)?.0;ÁŠ¥�ü’¥/æ©0üÆ¥Gú¸0ü’¦.à�-<Ŧãˆ-Ó‘í,¬×¦ìѦ´ú¦¯( ¯(Åö��Bÿˆ ‘§ˆ Šóë$’§üû³,üÔ§@ݺ0\™¨«Ê4©¨�ü±¨EÄ­0üû¨D”®0üÄ©Eã®0üŽª-³¯0Àª�ÌȪ÷¯0üæª#›°0Ž«�ü–«HÁË4üã«D”Ì4ü¬¬GãÌ4ø¬�l€­Áˆ-’­�üš­>�³0Ý­�<å­ãˆ-üñ­J‡Î4À®�üÈ® Ô´0üí®.ÿ´0 ¯�ü¨¯Gŵ0üô¯C¨¾0ü¼°4²Ï4üõ°J¯·0ŒÄ±ƒ¸0üÚ±3ŽÐ4’²�üš²/æ©0üβGú¸0üš³.à�-<ͳãˆ-Ó‘í,¬ß³ìÙ³œ‚´°( °(Åö��Bÿˆ –´ˆ ‹óë$—´üºÄ/üÙ´CíÀ0\¡µ«Ê4±µ�ü¹µEÄ­0üƒ¶D”®0ü̶Eã®0ü–·-³¯0È·�Ìз÷¯0üî·#›°0–¸�üž¸HÁË4üë¸D”Ì4ü´¹GãÌ4€º�üˆºE Ã0üÒºEðÃ0üœ»HÀÄ0üé»I“Å0ü·¼DçÅ0ü€½J¶Æ0üϽJ‹Ç0üž¾(àÇ0˾�lÓ¾Áˆ-å¾�üí¾>�³0°¿�<¸¿ãˆ-üÄ¿J‡Î4“À�ü›À Ô´0üÀÀ.ÿ´0óÀ�üûÀ4²Ï4ü´ÁJ¯·0ŒƒÂƒ¸0ü™Â3ŽÐ4ÑÂ�üÙÂ/æ©0ü�ÃGú¸0üÙÃ.à�-<ŒÄãˆ-Ó‘í,¬žÄì˜Ä´Áı( ±(Åö��Bÿˆ ØÄˆ Œóë$ÙÄü²Æ(Ó‘í,¬–Æì�ÆDµÆÂ²( ²(Åö��Bÿˆ�ŽŽ ÉÆˆ†Í0 ¾Æ˜Í04ÁÆ �ó묖$ÊÆ#%ü¹Ölü˜ÉHÜÌ0üåÉG¯Í0l±Êϳ/ÃÊ�üËÊEÄ­0ü•ËD”®0üÞËEã®0ü¨Ì-³¯0ÚÌ�ÌâÌ÷¯0ü€Í#›°0¨Í�d°ÍÅÐ0ÁÍ�üÉÍJéÐ0ü˜ÎH¾Ñ0ÄåÎ�Ò0‚Ï�lŠÏÁˆ-œÏ�ü¤ÏEÛÒ0ôîϪÓ0‘Ð�<™Ðãˆ-ü¥ÐJ‡Î4ôÐ�üüÐ Ô´0ü¡Ñ.ÿ´0ÔÑ�üÜÑDA // Create a 4KB buffer on the stack to store our serialized DFA.Áü¥Ò%" let mut buf = [0u8; 4 * (1<<10)];ÁüÏÒGŵ0ü›ÓIÞØ0üéÓA> let written = original_dfa.write_to_native_endian(&mut buf)?;Áü¯Ô>; let dfa: DFA<&[u8]> = DFA::from_bytes(&buf[..written])?.0;ÁòÔ�üúÔ/æ©0ü®ÕGú¸0üúÕ.à�-<­Öãˆ-´ÀÖ³(´( ³(Åö ´(³÷ݘBÿˆ àÖˆ �óë$áÖ�œ -üòäiüÚ×E•Ü0ü¤ØG¯Í0lðØϳ/‚Ù�üŠÙEÄ­0üÔÙD”®0ü�ÚEã®0üçÚ-³¯0™Û�Ì¡Û÷¯0ü¿Û#›°0çÛ�dïÛÅÐ0€Ü�üˆÜJéÐ0ü×ÜH¾Ñ0ĤÝ�Ò0ÁÝ�lÉÝÁˆ-ÛÝ�üãÝEÛÒ0ô­ÞªÓ0ÐÞ�<ØÞãˆ-üäÞJ‡Î4³ß�ü»ß Ô´0üàß.ÿ´0“à�ü›àD¢á4üäà%ñá4üŽáGŵ0üÚáC¼á0ü¢âA¿â4üèâ>‹ã4«ã�ü³ã/æ©0üçãGú¸0ü³ä.à�-<æäãˆ-œùäµ(¶( µ(Åö ¶(³÷ݘBÿˆ –åˆ �óë$—å�œ¿-üâölü�æHéã0üÝæG¯Í0l©çϳ/»ç�üÃçEÄ­0ü�èD”®0üÖèEã®0ü é-³¯0Òé�ÌÚé÷¯0üøé#›°0 ê�ü¨êE Ã0üòêEðÃ0ü¼ëHÀÄ0ü‰ìI“Å0ü×ìDçÅ0ü íJ¶Æ0üïíJ‹Ç0ü¾î(àÇ0ëî�dóîÅÐ0„ï�üŒïJéÐ0üÛïH¾Ñ0Ĩð�Ò0Åð�lÍðÁˆ-ßð�üçðEÛÒ0ô±ñªÓ0Ôñ�<Üñãˆ-üèñJ‡Î4·ò�ü¿ò Ô´0üäò.ÿ´0—ó�üŸóD¢á4üèó%ñá4ü’ôA¿â4üØô>‹ã4›õ�ü£õ/æ©0ü×õGú¸0ü£ö.à�-<Ööãˆ-´éö·(¸( ·(Åö ¸(³÷ݘBÿˆ ‰÷ˆ ‘óë$Š÷�œh.üøøeDûøÂ¹(º( ¹(Åö º(³÷ݘBÿˆ�““ ˜ùˆ†Í0 „ù˜Í04‡ùÉ× $™ù�œ <"$ü½ˆ#ü�ÿDèë0Ùÿ�üáÿJÄì0ü°€)™í0Þ€�üæ€%Úí0ü��"Šî0ü·�%·î0á��üé�Gôî0üµ‚$! result in a serialization error.ÁÞ‚�læ‚Áˆ-ø‚�ü€ƒKûð0ŒÐƒ a sparse DFA.Áæƒ�<îƒãˆ-üúƒJ‡Î4É„�üÑ„ Ô´0üö„.ÿ´0©…�ü±…7¸ò0üí…A¿â4ü³†>‹ã4ö†�üþ†/æ©0ü²‡Gú¸0üþ‡.à�-<±ˆãˆ-dĈ»( »(ÅöBÿˆ шˆŸÖ $Òˆ´Ú‹�––��ó÷ƒý„±)Â…—†Àö‡¹ÂˆÈÂÚð5\Yt¬iþÅ1—˜ß‹üÒ¸eü÷‹DA Safely deserialize a sparse DFA with a specific state identifierÁüÀŒH΃1ü��K¡„1üÝ�-÷„1�Ž�ü—ŽK¼…1üçŽIF For safety purposes, the DFA's transitions will be verified such thatÁüµ�IF every transition points to a valid state. If this verification is tooÁüƒ�GD costly, then a [`DFA::from_bytes_unchecked`] API is provided, whichÁüÏ�)‘ˆ1ý��ü…‘FÒˆ1üБE£‰1dš’ò‰1«’�ü³’%–Š1üÝ’"ÆŠ1ü„“%óŠ1ü®“%Úí0üØ“"Šî0üÿ“%·î0©”�ü±”GD The `to_bytes` methods allocate and return a `Vec` for you. TheÁüý”EB `write_to` methods do not allocate and write to an existing sliceÁüÇ•FC (which may be on the stack). Since deserialization always uses theÁü’–KH native endianness of the target platform, the serialization API you useÁüâ–JG should match the endianness of the target platform. (It's often a goodÁü±—JG idea to generate serialized DFAs for both forms of endianness and thenÁü€˜.+ load the correct one based on endianness.)Á³˜�d»˜ÅÐ0̘�üÔ˜Gç�1ü ™?¹‘1ä™�üì™G�’1ü¸š&â’1üãšJ““1ü²›"è“1Ù›�üá›Eé”1«œ�ü³œKH Note that unlike deserializing a [`dense::DFA`], deserializing a sparseÁüƒ�FC DFA has no alignment requirements. That is, an alignment of `1` isÁTÎ� valid.ÁÝ��då�Úº.ö��üþ�0á•1³ž�l»žÁˆ-Íž�üÕžJÄ–1ü¤Ÿ"™—1ËŸ�<ÓŸãˆ-üߟJ‡Î4® �ü¶ )ý—1üä 1. let bytes = initial.to_bytes_native_endian();Áüš¡52 let dfa: DFA<&[u8]> = DFA::from_bytes(&bytes)?.0;ÁÔ¡�üÜ¡/æ©0ü�¢Gú¸0üÜ¢.à�-<�£ãˆ-›£�ü££/, # Example: loading a DFA from static memoryÁ×£�üߣDA One use case this library supports is the ability to serialize aÁü¨¤GD DFA to disk and then use `include_bytes!` to store it in a compiledÁüô¤EB Rust program. Those bytes can then be cheaply deserialized into aÁü¾¥GD `DFA` structure at runtime and used for searching without having toÁüЦ30 re-compile the DFA (which can be quite costly).Á¦�üʦKH We can show this in two parts. The first part is serializing the DFA toÁ\š§ a file:Áª§�l²§ó©1üħ)& use regex_automata::dfa::sparse::DFA;Áò§�üú§%˪1¤¨�ü¬¨C@ // Write a big endian serialized version of this DFA to a file.Áüô¨*' let bytes = dfa.to_bytes_big_endian();Áü£©1. std::fs::write("foo.bigendian.dfa", &bytes)?;ÁÙ©�üá©4â¬1üšª-* let bytes = dfa.to_bytes_little_endian();Áü̪41 std::fs::write("foo.littleendian.dfa", &bytes)?;Áü…«.à�-<¸«ãˆ-Ä«�üÌ«JЮ1ü›¬D¥¯1üä¬JG compilation to choose the correct endianness. We do not need to employÁü³­KH any special tricks to ensure a proper alignment, since a sparse DFA hasÁôƒ® no alignment requirements.Á¦®�l®®ó©1ÌÀ®óˆ-üÞ®&# dfa::{Automaton, sparse::DFA},Á̉¯ util::lazy::Lazy,Á̧¯áÁ/4ůŸŠ-Я�üد<ç±1ü™°F®²1üä°Cÿ²1Œ¬±̳1ü±85 static RE: Lazy> = Lazy::new(|| {Áüÿ±&¬´1üª²%" #[cfg(target_endian = "big")]ÁüÔ²B? static BYTES: &[u8] = include_bytes!("foo.bigendian.dfa");Áü›³(% #[cfg(target_endian = "little")]ÁüȳEB static BYTES: &[u8] = include_bytes!("foo.littleendian.dfa");Ád’´•º1ü£´$! # static BYTES: &[u8] = b"";ÁÌ´�üÔ´-* let (dfa, _) = DFA::from_bytes(BYTES)Áü†µ6’¼1\ÁµÒ¼1<ѵç¼1ݵ�üåµ3†½1ü�¶EĽ1<ç¶ãˆ-ó¶�üû¶! Alternatively, consider usingÁü¡·96 [`lazy_static`](https://crates.io/crates/lazy_static)Á4ß· orÁüê·63 [`once_cell`](https://crates.io/crates/once_cell),Áü¥¸(% which will guarantee safety for you.ÁTÙ¸þÅ1ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÓ÷4ÄòBÿ•• —�å,í¸ü¤Ìvüâ½H˜Æ1ü¯¾EëÆ1¼ù¾ sparse transitions.Á•¿�ü�¿K†È1üí¿FC a DFA that exhibits undefined behavior if its transitions containsÁô¸À±É1ÛÀ�üãÀGD This routine is useful if you need to deserialize a DFA cheaply andÁü¯ÁFC cannot afford the transition validation performed by `from_bytes`.ÁúÁ�d‚ # SafetyÁ“Â�ü›ÂB? This routine is not safe because it permits callers to provideÁüâÂJG arbitrary transitions with possibly incorrect state identifiers. WhileÁü±ÃEB the various serialization routines will never return an incorrectÁüûÃHE DFA, there is no guarantee that the bytes provided here are correct.ÁüÈÄEB While `from_bytes_unchecked` will still do several forms of basicÁü’ÅKH validation, this routine does not check that the transitions themselvesÁüâÅHE are correct. Given an incorrect transition table, it is possible forÁü¯ÆJG the search routines to access out-of-bounds memory because of explicitÁÌþÆ bounds check elision.ÁœÇ�l¤ÇÁˆ-¶Ç�<¾Çãˆ-üÊÇJ‡Î4™È�ü¡È)ý—1üÏÈ1’…5ü…ÉG�Ì1üÑÉ8ßÌ1üŽÊJG let dfa: DFA<&[u8]> = unsafe { DFA::from_bytes_unchecked(&bytes)?.0 };ÁÝÊ�üåÊ/æ©0ü™ËGú¸0üåË.à�-<˜Ìãˆ-¤²ÌþÅ1¶š5ÿ•• ˜�å,ÐÌt¼Öü’Ö)¼Ð1�ššýë/ ÁÖÅö› üûØ=üÑÖ4¬Ñ1Š×�ü’×@øÑ1ü××DÃÒ1ü ØE’Ó1dêØáÓ1l‚Ù¼( ¼(Åöó¯Bÿ™ �Ù™ ›óë$•ÙÏ•GüáÙ*���ýë/ æÙ̸4\éÙÅöž gžü’Ú8•Ú½(¾(¿( ½(Åö ¾(€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¿(ÏÁBÿœ ™Úœ žóë$šÚœ¥^üÓã0�  ýë/ ßã̸4\âãÅö¡¢£¤¥¦§¨©ª«¬­®¯°±²³‚ƒ„…†‡ùúûˆ‰Š‹Œ�ü�Ž�¥°¨³«£®¦±©¡¬¤¯§²ª¢­ãåü˜ä/„›äÀ( À(Åö³äBÿŸ ¬äŸ ¡óë$­äŽ-Ùhü�å,l�åÁ( Á(Åö³äBÿŸ žåŸ ¢óë$ŸåŽ-—iüüå,lÿåÂ( Â(Åö³äBÿŸ �æŸ £óë$ŽæŽ-Ujüëæ-tîæÃ( Ã(Åö³äBÿŸ ýæŸ ¤óë$þæŽ-küÜç-tßçÄ( Ä(Åö³äBÿŸ îçŸ ¥óë$ïçŽ-ÓküÍè-tÐèÅ( Å(Åö³äBÿŸ ßèŸ ¦óë$àèŽ-’lüÿê<T‚ëÆ( Æ(Åö³ä³äBÿŸ �ëŸ §óë$Žë’Šðm¬—úmü²ìl¤¼ìÇ( Ç(Åö³ä³äÿŸ ÚìŸ ¨óë$Ûì’Šo¬—oüâí5tåíÈ( È(Åö³ä³äBÿŸ ôíŸ ©óë$õí’ŠpôÝî\àîÉ( É(ÅöBÿŸ ìîŸ ªóë$íîü³ï)L¶ïÊ( Ê(Åö³äBÿŸ ÀïŸ «óë$ÁïŽ-�qü ðEl£ðË( Ë(Åö³ä‹ãBÿŸ ±ðŸ ¬óë$²ðŽ-sК!sÜèôLëôÌ( Ì(ÅöBÿŸ õôŸ ­óë$öô̼õ<¿õÍ( Í(ÅöBÿŸ ÇõŸ ®óë$ÈõüŒö*Ä�öÎ( Î(ÅöBÿŸ ¨öŸ ¯óë$©öüþöc\�÷Ï(Ð( Ï(Åö Ð(äì�¤BÿŸ –÷Ÿ °óë$—÷Ø™wü ûB¬£ûÑ( Ñ(ÅöÅ‚¨¨BÿŸ ¹ûŸ ±óë$ºû¦‡lyüÆý+\ÉýÒ( Ò(Åö³ä Ò(³÷BÿŸ ÕýŸ ²óë$ÖýŽ-czüµþ-l¸þÓ( Ó(ÅöřǙș­É™Ê™àË™óG*¤�R{9  Ó(ûÙBÿŸ ÆþŸ ³óë$Çþô•š�µµŒŒó�Žï5Â�ˆùÂ�ã‘¥ Âñ¼8+åíÕ�þÅ1¶ššüºš~¤ÄšÂþÅ1ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwʽ5Äòÿ´´ ¶�å,æšüö¡#�¸¸ýë/ û¡̸4\þ¡Ò÷¹»¼¾¿ÀÁÂÃÄÅ35üó£iDö£ÂÕ(Ö( Õ(Ò÷ Ö(³÷ݘBÿ·�ºº “¤·†Í0 ÿ£˜Í04‚¤âì $”¤�œ¦¤#%ü’¯d•¯Â×( ×(Ò÷Bÿ· ¢¯·Ÿˆ $£¯ü²BDŲÂØ(Ù( Ø(Ò÷ Ù(ð‡ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwòüÄòBÿ· β· ¼óë$ϲÝŽÕ²,›À¼�½�½�½½¼½óëî«2ü‹Ð)4ŽÐÂÚ( Ú(Ò÷ŒŒó�Žï5Â�ˆùÂ�ã‘¥ Âñ¼8+åíÕ� Ú(³÷Bÿ· •зõ $–ÐüÖÒ6Ó«Œ¾Ò̸ÒDÙÒÂÛ( Û(Ò÷®� Bÿ· âÒ·œÉ $ãÒüîØ),ñØÂÜ( Ü(Ò÷³ä¡¡ù,£Ž-¤Î2Â¥�B¦�B§¥ ¨½+©ÁBÂi…,Cw6Ü(Bÿ· ÷Ø·ÄÛ $øØŽ-yšüåâtLèâÂÝ(Þ( Ý(Ò÷ Þ(ð‡³äÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¡¡ù,£Ž-¤Î2Â¥�B¦�B§¥ ¨½+©ÁBÂi…,Cw6Ý(ÄòBÿ· ûâ· Áóë$üâÝŽŠãŽ- ãü‚–$4…–Âß( ß(Ò÷õõž,øË!ÂùŽ-ÂÁÊVIç †xß(óëBÿ· Œ–··’ $�–Ì —4£—Âà( à(Ò÷ à(³÷Bÿ· ª—·æ„$«—̪˜4­˜Âá( á(Ò÷Bÿ· ´˜· Äóë$µ˜üø™dû™Ââ( â(Ò÷Bÿ· ˆš·¿Ð $‰šüÝš#Ó‘í,¬Åš쿚�ÇÇýë/ ⚦óë³÷\åšÒ÷ÈÉ$&üû›4Lþ›Âã( ã(Ò÷³ä““çA•Ž-–Î2—�B˜�B™¥ š½+›ÁBÂ]öÆî®W¸ã(BÿÆ ˆœÆ Èóë$�œŽ-é©üÜ£%TߣÂä( ä(Ò÷ ä(³÷BÿÆ ê£ÆÇÂ$ï£ÄθÓ‘í,¬¶¸ì°¸‹‡ ËÍüí¸vð¸Âæ( æ(öêͶ‹‡ BÿÊ�ÌÌ “¹Êýë/ ô¸�ì/d÷¸áï„ µ¥ µ!#ü†ÀŒt‰ÀÂç(è( ç(öê è(í& BÿÊ�ÎÎ ·ÀÊýë/ ˜À�ì/d›À€† „%¼Í0¼!#ì°È�ÐЕ•²ù—ò&˜¦Â™ Âšä›¥ œôùÂ�–úÂ{ü9TäkÉ þÅ1ѵÈüÔÈ}¤ÞÈÂþÅ1ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¬Õ5ÄòÿÏÏ Ñ�å,€É,ÀÐÑ�Ò�Ò�ÒÒÑÒ‹«2¡ÔÑ�Ó�Ó�ÓÓÑÓî«2†ØÑ�Ô�Ô�ÔÔÑÔî«2üëâ"�ÖÖýë/ ðâ̸4\óâ±ø×ÛÜÝÞßàáâã02ü”ãiD—ãÂé(ê( é(±ø ê(³÷ݘBÿÕ�ØØ ´ãÕ†Í0  ã˜Í04£ãßï $µã�œÇã#%,Áë×�Ù�Ù�ÙÙ×Ú‹,¶í×�Ú�Ú�ÚÚןŽü¼ðd¿ðÂë( ë(±øBÿÕ ÌðÕ¡‰ $ÍðüÖôlDÙôÂì(í(î( ì(±ø í(ð‡ î(òüÙ–2BÿÕ ëôÕ Üóë$ìôÝŽúôseenÁ$�õüµù(4¸ùÂï( ï(±ø••²ù—ò&˜¦Â™ Âšä›¥ œôùÂ�–úÂ{ü9TäkÉ  ï(³÷BÿÕ ¿ùչà $Àùü£ý5Ó«Œ‹ýÌ…ýD¦ýÂð( ð(±ø‹‡ BÿÕ ¯ýÕàÉ $°ýüçƒo,êƒÂñ( ñ(±øÅ‚ôí�¤BÿÕ ùƒÕ–ï $úƒ©ÆSÞ‚^Þü‘�'$”�Âò( ò(±øçç“)ê±)ÂëŸÂŒ×®Ç¦T=…ò(óëBÿÕ ™�Õ�ž $š�´³�¶�Âó( ó(±øBÿÕ º�Õ áóë$»�ĵ‘,¸‘Âô( ô(±ø ô(³÷BÿÕ ¾‘ÕÉ¥$¿‘ü…“dˆ“Âõ( õ(±øBÿÕ •“ÕƒÑ $–“üé“"Ó‘í,¬Ñ“ìË“�ååýë/ î“¶Ï5\ñ“±øæü¢•FL¥•Âö( ö(±øÅ‚ôí³äBÿä ¯•ä æóë$´•©Æê‚êŽ-(êäî�tõ�Â�è�éèéÕ×2 ˆžç×2¬‘žµùŒ×®Ç¦T=…ê넞135‘žÂçç � ÛD¬ž ¬žÂççü¹ž;�í�îíîÕ×2 ž£¬ð³÷\ÅžµùïðÅQÆQð¾ž79Lûž$€Ÿì쾤ü¨Ÿ8$«Ÿ÷( ÷(µù€úBÿì °Ÿì ð�¬ð$µŸüŧ0�ò�óòóÕ×2 Χµùô gôʧüü§4ÿ§ø(ù(ú( ø(µù ù(€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ú(ÏÁBÿñ ƒ¨ñ ô�¬ð$„¨œ ú¼°ªL·ªÂ�ö�÷÷öÕ×2 Ūç×2ÌΪ‹úÁÊVIç †xøùÁª135,ΪÂõõ �ž÷LíªíªÂõõüûª6�û�üüûÕ×2 „«Ãé5\‡«‹úýþÅQÆQþ€«+-L¸«$½«úúáúüÔ«'$׫û( û(‹úřǙș­É™Ê™àË™óG*¤�R{9 áúBÿú Ü«ú þ�¬ð$á«üé­+�€��€�Õ×2 ò­‹ú‚ g‚î­ü›®4ž®ü(ý(þ( ü(‹ú ý(€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡þ(ÏÁBÿÿ ¢®ÿ ‚�¬ð$£®œ£ÿ”ʹ�„„áú…†‡ˆ‰Š‹Œ��ϹüǼ$$ʼ€) €)áú³äBÿƒ ϼƒ …�$м¬—,Ö¼ìÝÄDàÄÂ�) �)áú³äBÿƒ éă †�$êļÝÅàÅ‚) ‚)áú³äBÿƒ ãŃ ‡�$äÅüïÆ%,òÆÂƒ) ƒ)áúBÿƒ øÆƒ ˆ�$ùÆŸ ÿÆü¨È&<«È„) „)áú³äBÿƒ ³Èƒ ‰�$´ÈŸ ºÈüŽË5T‘ËÂ…) …)áú‹ãBÿƒ œËƒ Š�$�ËК\£ËôÀÍ\Ã͆) †)áúBÿƒ Ï̓ ‹�$ÐÍüðÎ!\ó·) ‡)áúþÅ1Bÿƒ ÿ΃ Œ�$€Ïü�ÐiD Ðˆ)‰) ˆ)áú ‰)³÷ݘBÿƒ�ŽŽ ½Ðƒ†Í0 ©Ð˜Í04¬Ð ��¬–$¾Ð�œÐÐ/1ü™ÛdœÛŠ) Š)áúBÿƒ ©Ûƒ ��$ªÛü½Ý!�‘‘áú’ g’ÂÝüåÝ8èÝ‹)Œ)�) ‹)áú Œ)€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡�)ÏÁBÿ� ìÝ� ’�$íÝœ óÝœÛæÓ‘í,¬Ãæì½æDâæÂ�””ïû]öÆî®W¸•–—˜™š›ëæ\›ç›ç““³ätÚçDÚç““lŸè4Ÿè““Ôêédêé““ �³÷”Ýë$Ýë““�€6¬Äí\Äí““þÅ1œ„ð,„ð““�€6¬ºðÓ‘í,¬¢ðìœð���ïûž¿ðüŠñ2\�ñÂŽ) Ž)ïû³äBÿœ ™ñœ ž�$žñŸ ¤ñ¥ $®ñü‚ó$Ó‘í,¬êòìäò�  ïû¡ g¡‡óü­ó8°ó�)�)‘) �)ïû �)€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‘)ÏÁBÿŸ ´óŸ ¡�$µóœ »óLςӫŒ»‚̵‚òü£¤¥„ß‚â‚ÂòüBÿ¢¢ £ü¶ƒ!4¹ƒÂ•) •)òü³äBÿ¢ Àƒ¢ ¤$ŃŽ-˃ü�„(D„„–)—) –)òü —)³äBÿ¢ �„¢ ¥$Ž„Ž-”„¤ŠzÓ–â,´ñyôëy,™z²³´µ¶·±·À–¹Ð=¦¨–¦¨üÃ…C¦©º<浦«ì4󺦬ØÌ$†è¦®Žâ„Œ®$¦¯àÖ4žÃ¦°ßát¦ª$¦±,±Ó‘í,¬•ì�ÔÓ‘í,æD¾Ó‘í,,*Ô\Îdáɶ¸üÎ5©$ÿ™›‡‰uwdœ<¡¦Ô£l©¦´�L£¦´ßLå¦üã!bDñ!˜)™) ˜)³÷ ™)³÷ͶBÿ ˆ"ðœÀE<ÿ!âìD“"÷…¨"ü±'bD¿'š)›) š)³÷ ›)³÷ͶBÿ Ö'ÅáÀE<Í'âìDá'÷…ö'Ì×/Ó‘í,¬¿/ì¹/Öþ¹º»ü³0&,º0ÖþBÿ¸¸ ¹ü¥3#¬3�) �)ÖþÆþBÿ¸ °3¸ º$µ3ÁB,»3üÑ5%<Ô5¦ž) ž)ÖþBÿ¸ Ü5¸ »$á5new_lenÁ<ç5ôÕ8�½½±±¢„³½!¦ >¼B�yÙƒ1¾Ú8üƒ={¤Š=þÅ1ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÎŽ6ÄòBÿ¼¼ ¾�å,¬=üûH#ýÀÀ´²3 €I£�õ…ò„ƒI¨ýÁÂÃÄÅÆÇÈÉËÌ=?üøI:Ó«ŒàIÌÚIDÿIŸ) Ÿ)¨ýÖþBÿ¿ ˆJ¿ Á�õ$‰Jü°K*4·K )  )¨ý±±¢„³½!¦ >¼B�y  )…òBÿ¿ ¾K¿ Â�õ$¿KüåLDìL¡) ¡)¨ý ¡)³÷Bÿ¿ õL¿´¶$öLü÷Q#dþQ¢) ¢)¨ýBÿ¿ ‹R¿ Ä�õ$ŒRüšW(<¡W£) £)¨ý £)³÷Bÿ¿ ©W¿ Å�õ$ªWŸtÔ¢Z©Z¤) ¤)¨ýBÿ¿ ­Z¿Ó·$®Zü¿](Â]¦¥) ¥)¨ýÕËBÿ¿ Æ]¿ Ç�õ$Ç]Ÿ±%ü¼`#$¿`¦¦) ¦)¨ý··Õ„º½!¦»Ÿ¦°z'“Hh¦)�õBÿ¿ Ä`¿±å$Å`üÅciDÌc§)¨) §)¨ý ¨)³÷ݘBÿ¿�ÊÊ éc¿†Í0 Õc˜Í04Øc É�õ¬–$êc�œH-)+üœk6D£k©) ©)¨ýÙ–2Bÿ¿ ¬k¿ Ë�õ$­kü³m#dºmª) ª)¨ýBÿ¿ Çm¿ÖÐ$Èmü€n8ýÎδ²3 …nÒ�6„ˆn¨ýÏ gÏü¿n@Ân«)¬)­) «)¨ý ¬)€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡­)ÏÁBÿÍ ÆnÍ Ï�õ$Çnœü4ü¯q<�ÑýÒÒÑþÆ®þ ¸q£®þ…ò„»qíýÓÔÅQÆQÔ´q46Lòq$÷qÐÐÆþüŠr#$�r±) ±)íýÕËBÿÐ ’rÐ Ô�®þ$—rT³}ÆþÖØÚÜÞßàáâ䬦~Ó‘í,¬Š~ì„~­~ÆþBÿÕÕ ÖLÙ~ÖÖüÑ€FTØ€³) ³)³÷óÌBÿÕ î€Õ—Êå,瀣‚Ø�Ù�Ù�ÙÙØÙ³èÄòUÿü“„@T–„¦ïçóÌBÿÕÕ Ú¹•,¡„ ­„ü»ˆ0¤¾ˆ¦ïçÆþBÿÕÕ Ü¹•,Óˆ ߈ü†Œ'Ó‘í,¬ê‹ìä‹�Œ´) ´)ÆþBÿÕ ‘ŒÕ Þ$–Œÿ†$œŒÔº‘Á‘µ) µ)ÆþBÿÕ Å‘Õ ß$Æ‘ôó’Ó‘í,¬×’ìÑ’Dú’¶) ¶)ÆþBÿÕ ƒ“Õ à$„“Ô¹”<¼”¦·) ·)Æþ ·)³÷BÿÕ Ä”Õ á$Å”ü‡–$Ó‘í,¬ë•ìå•DŠ–¦¸) ¸)ÆþBÿÕ “–Õ â$”–ÿ†$š–$Õ–â�ã�ã�ããâ㚢ÄüüÛ—&Ó‘í,¬¿—ì¹—dÞ—¦¹) ¹)ÆþBÿÕ ë—Õ ä$ì— ÿ—üÁšÆþç gçüçš@ꚺ)»)¼) º)Æþ »)€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¼)ÏÁBÿæ îšæ ç$ïšœ õšl¿zÓ–â,´¦zô zLÃz øÁÃÅÔûêT3¬%èé°X4UÒèë÷),qóèí”ÊL‹�!èîÒÏL«ú!èðáÐ<¶�"èñöŒDÑÈ%èóŽéLÛŠ%èô—,æò$èõƒïTíí%èö‚,‚—è÷üÓ«ŒÌü,C\PðüC"â䤀ÕüCeÅdzµüC‹¦¨”–ƒ…qs`bÔ×0ü”OL A trait describing the interface of a deterministic finite automaton (DFA).Áä�üèMJ The complexity of this trait probably means that it's unlikely for othersÁü¶MJ to implement it. The primary purpose of the trait is to provide for a wayÁü„JG of abstracting over different types of DFAs. In this crate, that meansÁüÏMJ dense DFAs and sparse DFAs. (Dense DFAs are fast but memory hungry, whereÁü�KH as sparse DFAs are slower but come with a smaller memory footprint. ButÁüéOL they otherwise provide exactly equivalent expressive power.) For example, aÁü¹OL [`dfa::regex::Regex`](crate::dfa::regex::Regex) is generic over this trait.Á‰�ü�MJ Normally, a DFA's execution model is very simple. You might have a singleÁüÛIF start state, zero or more final or "match" states and a function thatÁü¥HE transitions from one state to the next given the next byte of input.ÁüîIF Unfortunately, the interface described by this trait is significantlyÁü¸ HE more complicated than this. The complexity has a number of differentÁü� MJ reasons, mostly motivated by performance, functionality or space savings:ÁÏ �üÓ A> * A DFA can search for multiple patterns simultaneously. ThisÁü• DA means extra information is returned when a match occurs. Namely,ÁüÚ C@ a match is not just an offset, but an offset plus a pattern ID.Áüž KH [`Automaton::pattern_len`] returns the number of patterns compiled intoÁüê JG the DFA, [`Automaton::match_len`] returns the total number of patternsÁüµ MJ that match in a particular state and [`Automaton::match_pattern`] permitsÁüƒA> iterating over the patterns that match in a particular state.ÁüÅIF * A DFA can have multiple start states, and the choice of which startÁü�HE state to use depends on the content of the string being searched andÁüØHE position of the search, as well as whether the search is an anchoredÁü¡KH search for a specific pattern in the DFA. Moreover, computing the startÁüíMJ state also depends on whether you're doing a forward or a reverse search.Áü»MJ [`Automaton::start_state_forward`] and [`Automaton::start_state_reverse`]Áü‰IF are used to compute the start state for forward and reverse searches,ÁŒÓ respectively.ÁüåMJ * All matches are delayed by one byte to support things like `$` and `\b`Áü³MJ at the end of a pattern. Therefore, every use of a DFA is required to useÁü�! [`Automaton::next_eoi_state`]Áü£=: at the end of the search to compute the final transition.ÁüáHE * For optimization reasons, some states are treated specially. EveryÁüªC@ state is either special or not, which can be determined via theÁüîKH [`Automaton::is_special_state`] method. If it's special, then the stateÁüºKH must be at least one of a few possible types of states. (Note that someÁü†MJ types can overlap, for example, a match state can also be an accel state.ÁüÔNK But some types can't. If a state is a dead state, then it can never be anyÁü£*' other type of state.) Those types are:ÁüÎKH * A dead state. A dead state means the DFA will never enter a matchÁüšOL state. This can be queried via the [`Automaton::is_dead_state`] method.ÁüêMJ * A quit state. A quit state occurs if the DFA had to stop the searchÁü¸@= prematurely for some reason. This can be queried via theÁüù,) [`Automaton::is_quit_state`] method.Áü¦OL * A match state. A match state occurs when a match is found. When a DFAÁüöKH enters a match state, the search may stop immediately (when lookingÁüÂNK for the earliest match), or it may continue to find the leftmost-firstÁü‘HE match. This can be queried via the [`Automaton::is_match_state`]Á|Ú method.ÁüêJG * A start state. A start state is where a search begins. For everyÁüµIF search, there is exactly one start state that is used, however, aÁüÿHE DFA may contain many start states. When the search is in a startÁüÈJG state, it may use a prefilter to quickly skip to candidate matchesÁü“ LI without executing the DFA on every byte. This can be queried via theÁüà -* [`Automaton::is_start_state`] method.ÁüŽ!HE * An accel state. An accel state is a state that is accelerated.Áü×!KH That is, it is a state where _most_ of its transitions loop back toÁü£"KH itself and only a small number of transitions lead to other states.Áüï"MJ This kind of state is said to be accelerated because a search routineÁü½#JG can quickly look for the bytes leading out of the state instead ofÁüˆ$OL continuing to execute the DFA on each byte. This can be queried via theÁüØ$LI [`Automaton::is_accel_state`] method. And the bytes that lead out ofÁü¥%KH the state can be queried via the [`Automaton::accelerator`] method.Áñ%�üõ%GD There are a number of provided methods on this trait that implementÁü½&EB efficient searching (for forwards and backwards) with a DFA usingÁüƒ'EB all of the above features of this trait. In particular, given theÁüÉ'FC complexity of all these features, implementing a search routine inÁü�(HE this trait can be a little subtle. With that said, it is possible toÁüÙ(KH somewhat simplify the search routine. For example, handling acceleratedÁü¥)JG states is strictly optional, since it is always correct to assume thatÁüð)KH `Automaton::is_accel_state` returns false. However, one complex part ofÁü¼*OL writing a search routine using this trait is handling the 1-byte delay of aÁüŒ+  match. That is not optional.Á­+�d±+¼�5¾+�üÂ+DA This trait is not safe to implement so that code may rely on theÁü‡,MJ correctness of implementations of this trait to avoid undefined behavior.ÁüÕ,+( The primary correctness guarantees are:Á�-�ü…-MJ * `Automaton::start_state` always returns a valid state ID or an error orÁ\Ó- panics.Áüß-JG * `Automaton::next_state`, when given a valid state ID, always returnsÁüª.JG a valid state ID for all values of `anchored` and `byte`, or otherwiseÁ\õ.ÞÝ6�/�ü…/KH In general, the rest of the methods on `Automaton` need to uphold theirÁüÑ/LI contracts as well. For example, `Automaton::is_dead` should only returnsÁüž085 true if the given state ID is actually a dead state.ÁLè0øøÿƤüü×0¸Øø´â6´â6#ùúûüýÿ�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��“–˜šùúûüýÿ�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��“–˜š†‰�Œù„�ü‡šÿŠ‚�˜ú…�ýˆ“‹–ƒŽûü«==üø0HE Transitions from the current state to the next state, given the nextÁ”Å1 byte of input.ÁÜ1�üä1IF Implementations must guarantee that the returned ID is always a validÁü²2DA ID when `current` refers to a valid ID. Moreover, the transitionÁüû2@= function must be defined for all possible values of `input`.ÁÀ3�dÈ3Úº.Ù3�üá3FC If the given ID does not refer to a valid state, then this routineÁü¬4IF may panic but it also may not panic and instead return an invalid ID.Áüú4FC However, if the caller provides an invalid ID then this must neverÁäÅ5 sacrifice memory safety.Áæ5�lî5Áˆ-€6�üˆ6JG This shows a simplistic example for walking a DFA for a given haystackÁü×6%" by using the `next_state` method.Á�7�<‰7ãˆ-ü•79Ñá/Ó7�üÛ7+( let dfa = dense::DFA::new(r"[a-z]+r")?;Áü‹8$! let haystack = "bar".as_bytes();Á´8�ü¼8GD // The start state is determined by inspecting the position and theÁüˆ9%" // initial bytes of the haystack.Áü²9DA let mut state = dfa.start_state_forward(&Input::new(haystack))?;Áüû9*' // Walk all the bytes in the haystack.ÁĪ: for &b in haystack {ÁüÇ:)& state = dfa.next_state(state, b);Á,õ:ð×0üÿ:KH // Matches are always delayed by 1 byte, so we must explicitly walk theÁüÏ;96 // special "EOI" transition at the end of the search.Áü�<&# state = dfa.next_eoi_state(state);Áü¸<'$ assert!(dfa.is_match_state(state));Áä<�üì<.à�-<Ÿ=ãˆ-T®=½) ½)¤ü³ä³äBÿø ¹=ø ù¤ü$º=’Š<À=¬—,Ò=üÂCmüî=Hàã6”»>±ä6Ò>�üÚ>HE Unlike [`Automaton::next_state`], implementations may implement thisÁü§?FC more efficiently by assuming that the `current` state ID is valid.Áüò?74 Typically, this manifests by eliding bounds checks.Á®@�d¶@¼�5Ç@�üÏ@JG Callers of this method must guarantee that `current` refers to a validÁüžAKH state ID. If `current` is not a valid state ID for this automaton, thenÁüîA:7 calling this routine may result in undefined behavior.Á­B�üµBJG If `current` is valid, then implementations must guarantee that the IDÁü„C96 returned is valid for all possible values of `input`.Á¤ÌC¾) ¾)¤ü³ä³äÿø êCø ú¤ü$ëC’Š<ùC¬—,“DüçX6üµDHE Transitions from the current state to the next state for the specialÁ|‚E EOI symbol.Á–E�üžEIÙä6üìE+( ID when `current` refers to a valid ID.ÁœF�ü¤FGD This routine must be called at the end of every search in a correctÁüðFFC implementation of search. Namely, DFAs in this crate delay matchesÁü»GFC by one byte in order to support look-around operators. Thus, afterÁü†HKH reaching the end of a haystack, a search implementation must follow oneÁÄÖH last EOI transition.ÁóH�üûHIF It is best to think of EOI as an additional symbol in the alphabet ofÁüÉIIF a DFA that is distinct from every other symbol. That is, the alphabetÁü—JIF of DFAs in this crate has a logical size of 257 instead of 256, whereÁüåJKH 256 corresponds to every possible inhabitant of `u8`. (In practice, theÁüµKIF physical alphabet size may be smaller because of alphabet compressionÁüƒLIF via equivalence classes, but EOI is always represented somehow in theÁtÑL alphabet.)ÁäL�dìLÚº.ýL�ü…MFéæ6üÐMI¹ç6üžNFŒè6äéNÛè6ŠO�l’OÁˆ-¤O�ü¬OKH This shows a simplistic example for walking a DFA for a given haystack,ÁüüO@= and then finishing the search with the final EOI transition.ÁÁP�<ÉPãˆ-üÕP9Ñá/“Q�ü›Q+Üê6üËQ$‘ë6ôQ�üüQGËë6üÈR%œì64òR //ÁüýRHE // The unwrap is OK because we aren't requesting a start state for aÁÄÊS // specific pattern.ÁüçSDËì6ü°T*™í6ÄßTÌí6üüT)îí6,ªUð×0ü´UGD // Matches are always delayed by 1 byte, so we must explicitly walkÁü€VJG // the special "EOI" transition at the end of the search. Without thisÁüÏVJG // final transition, the assert below will fail since the DFA will notÁüžW&# // have entered a match state yet!ÁüÉW&Æï6üôW'öï6 X�ü¨X.à�-<ÛXãˆ-têX¿) ¿)¤ü³ä³äBÿø ùXø û¤ü$úX’Š<€YüÚedü£YHE Return the ID of the start state for this DFA for the given startingÁ”ðY‘¤3‡Z�ü�ZHE Unlike typical DFA implementations, the start state for DFAs in thisÁüÜZ2/ crate is dependent on a few different factors:Á“[�ü›[C@ * The [`Anchored`] mode of the search. Unanchored, anchored andÁüã[JG anchored searches for a specific [`PatternID`] all use different startÁ\²\ states.ÁüÂ\FC * Whether a "look-behind" byte exists. For example, the `^` anchorÁü�]85 matches if and only if there is no look-behind byte.ÁüÊ]JG * The specific value of that look-behind byte. For example, a `(?m:^)`Áü™^GD assertion only matches when there is either no look-behind byte, orÁüå^30 when the look-behind byte is a line terminator.Á�_�ü¥_B? The [starting configuration](start::Config) provides the aboveÁ„ì_ information.Á�`�ü‰`DA This routine can be used for either forward or reverse searches.ÁüÒ`EB Although, as a convenience, if you have an [`Input`], then it mayÁüœaA> be more succinct to use [`Automaton::start_state_forward`] orÁüâaC@ [`Automaton::start_state_reverse`]. Note, for example, that theÁüªbIF convenience routines return a [`MatchError`] on failure where as thisÁüøb%" routine returns a [`StartError`].Á¢c�dªcÅÐ0»c�üÃcHE This may return a [`StartError`] if the search needs to give up whenÁü�dHE determining the start state (for example, if it sees a "quit" byte).ÁüÝdHE This can also return an error if the given configuration contains anÁüªe+( unsupported [`Anchored`] configuration.Á\ÝeÀ)Á) À)¤ü Á)äì�¤Bÿø òeøžü$óeØ4�fü¨lfüÄfJG Return the ID of the start state for this DFA when executing a forwardÁ\“g search.Á£g�ü«gHE This is a convenience routine for calling [`Automaton::start_state`]Áüøg1. that converts the given [`Input`] to a [startÁü®hJG configuration](start::Config). Additionally, if an error occurs, it isÁüýhHE converted from a [`StartError`] to a [`MatchError`] using the offsetÁüÊi'$ information in the given [`Input`].Áöi�dþiÅÐ0�j�ü—jC@ This may return a [`MatchError`] if the search needs to give upÁüßjFC when determining the start state (for example, if it sees a "quit"ÁüªkIF byte). This can also return an error if the given `Input` contains anÁüøk+Þ•7œ«lÂ)Ã)Ä) Â)¤ü Ã)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ä)íýBÿø Èlø ý¤ü$Él¬—Û>,úmý�þ�þ�þþý–ýü–wfü²qJG Return the ID of the start state for this DFA when executing a reverseÁ\�rÔ—7‘r�ü™rHõ—7üær1ǘ7üœsJ‚™7üësHÖ™7ü¸t'¨š7ät�dìtÅÐ0ýt�ü…uCþš7üÍuFË›7ü˜vI›œ7üæv+Þ•7œ™wÅ)Æ)Ç) Å)¤ü Æ)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ç)íýBÿø ¶wø ÿ¤ü$·w¬—C,èxÿ�€�€�€€ÿ˜†ü‹�Cü¡{HE If this DFA has a universal starting state for the given anchor modeÁüî{JG and the DFA supports universal starting states, then this returns thatÁ¼½| state's identifier.ÁÙ|�üá|FC A DFA is said to have a universal starting state when the startingÁü¬}JG state is invariant with respect to the haystack. Usually, the startingÁüû}FC state is chosen depending on the bytes immediately surrounding theÁüÆ~KH starting position of a search. However, the starting state only differsÁü–KH when one or more of the patterns in the DFA have look-around assertionsÁ”æ in its prefix.Áý�ü…€IF Stated differently, if none of the patterns in a DFA have look-aroundÁüÓ€KH assertions in their prefix, then the DFA has a universal starting stateÁü£�)& and _may_ be returned by this method.ÁÑ��üÙ�JG It is always correct for implementations to return `None`, and indeed,Áü¨‚KH this is what the default implementation does. When this returns `None`,Áüø‚JG callers must use either `start_state_forward` or `start_state_reverse`Áôǃ to get the starting state.Áêƒ�tòƒ # Use caseÁ…„�ü�„;8 There are a few reasons why one might want to use this:ÁÍ„�üÕ„GD * If you know your regex patterns have no look-around assertions inÁü¡…IF their prefix, then calling this routine is likely cheaper and perhapsÁüï…! more semantically meaningful.Áü•†HE * When implementing prefilter support in a DFA regex implementation,Áüâ†C@ it is necessary to re-compute the start state after a candidateÁüª‡EB is returned from the prefilter. However, this is only needed whenÁüô‡GD there isn't a universal start state. When one exists, one can avoidÁüÀˆ! re-computing the start state.Áæˆ�lîˆÁˆ-€‰�<ˆ‰ãˆ-Ì”‰óˆ-ü²‰%Ù°1ŒÜ‰ Anchored,Á4ò‰ŸŠ-ý‰�ü…ŠHE // There are no look-around assertions in the prefixes of any of theÁüÒŠ30 // patterns, so we get a universal start state.ÁüŠ‹?< let dfa = DFA::new_many(&["[0-9]+", "[a-z]+$", "[A-Z]+"])?;Áü΋?< assert!(dfa.universal_start_state(Anchored::No).is_some());Áü’Œ@= assert!(dfa.universal_start_state(Anchored::Yes).is_some());Á׌�üߌEB // One of the patterns has a look-around assertion in its prefix,Áü©�@= // so this means there is no longer a universal start state.Áüî�@= let dfa = DFA::new_many(&["[0-9]+", "^[a-z]+$", "[A-Z]+"])?;Áü³Ž@= assert!(!dfa.universal_start_state(Anchored::No).is_some());ÁüøŽA> assert!(!dfa.universal_start_state(Anchored::Yes).is_some());Áü¾�.à�-<ñ�ãˆ-¬Ž�È) È)¤üÅ‚¨¨Bÿø ¤�ø �¤ü$¥�Å‹®EüÔ¿0üé�EB Returns true if and only if the given identifier corresponds to aÁü³‘EB "special" state. A special state is one or more of the following:Áüý‘B? a dead state, a quit state, a match state, a start state or anÁ´Ä’ accelerated state.Áß’�üç’FC A correct implementation _may_ always return false for states thatÁü²“IF are either start states or accelerated states, since that informationÁü€”B? is only intended to be used for optimization purposes. CorrectÁüÇ”JG implementations must return true if the state is a dead, quit or matchÁü–•HE state. This is because search routines using this trait must be ableÁüã•GD to rely on `is_special_state` as an indicator that a state may needÁü¯–FC special treatment. (For example, when a search routine sees a deadÁôú– state, it must terminate.)Á�—�ü¥—IF This routine permits search implementations to use a single branch toÁüó—KH check whether a state needs special attention before executing the nextÁüØ74 transition. The example below shows how to do this.Áÿ˜�l‡™Áˆ-™™�ü¡™HE This example shows how `is_special_state` can be used to implement aÁüî™FC correct search routine with minimal branching. In particular, thisÁü¹šFC search routine implements "leftmost" matching, which means that itÁü„›IF doesn't immediately stop once a match is found. Instead, it continuesÁüÒ›" until it reaches a dead state.Áù›�<�œãˆ-Ì�œóˆ-ü«œ æœ.üМ%" HalfMatch, MatchError, Input,Á4úœŸŠ-…��Ô�� fn find(Á„¬� dfa: &A,ÁÄÁ� haystack: &[u8],ÁüÞ�0- ) -> Result, MatchError> {Áü“žKH // The start state is determined by inspecting the position and theÁüãžJG // initial bytes of the haystack. Note that start states can neverÁü²ŸGD // be match states (since DFAs in this crate delay matches by 1ÁüþŸJG // byte), so we don't need to check if the start state is a match.ÁüÍ HE let mut state = dfa.start_state_forward(&Input::new(haystack))?;Áüš¡" let mut last_match = None;ÁüÁ¡JG // Walk all the bytes in the haystack. We can quit early if we seeÁü�¢FC // a dead or a quit state. The former means the automaton willÁüÛ¢IF // never transition to any other state. The latter means that theÁü©£DA // automaton entered a condition in which its search failed.Áüò£41 for (i, &b) in haystack.iter().enumerate() {Áü«¤-* state = dfa.next_state(state, b);Áüݤ,) if dfa.is_special_state(state) {ÁüŽ¥.+ if dfa.is_match_state(state) {ÁüÁ¥52 last_match = Some(HalfMatch::new(Áüû¥41 dfa.match_pattern(state, 0),ÁÔ´¦ i,Á¼Ó¦ ));Áüï¦41 } else if dfa.is_dead_state(state) {Áü¨§*' return Ok(last_match);Áü×§41 } else if dfa.is_quit_state(state) {Áü�¨FC // It is possible to enter into a quit state afterÁüÛ¨GD // observing a match has occurred. In that case, weÁü§©C@ // should return the match instead of an error.Áüï©-* if last_match.is_some() {Áü¡ª.+ return Ok(last_match);Á¬Ôª }Áüîª74 return Err(MatchError::quit(b, i));ÁŒª« }ÁüÀ«IF // Implementors may also want to check for start or accelÁüެEB // states and handle them differently for performanceÁüجDA // reasons. But it is not necessary for correctness.Ál¡­ }ÁL³­ }ÁüÁ­KH // Matches are always delayed by 1 byte, so we must explicitly walkÁü‘®A> // the special "EOI" transition at the end of the search.Áü×®*' state = dfa.next_eoi_state(state);Áü†¯&# if dfa.is_match_state(state) {Áü±¯-* last_match = Some(HalfMatch::new(Áüã¯,) dfa.match_pattern(state, 0),Áü”° haystack.len(),Á|¸° ));ÁL̰âÙ7´Ú° Ok(last_match)Á,õ°ð×0ÿ°�ü‡±GD // We use a greedy '+' operator to show how the search doesn't justÁüÓ±GD // stop once a match is detected. It continues extending the match.ÁüŸ²FC // Using '[a-z]+?' would also work as expected and stop the searchÁüê²52 // early. Greediness is built into the automaton.Áü¤³*' let dfa = dense::DFA::new(r"[a-z]+")?;ÁüÓ³0áÝ.üˆ´-* let mat = find(&dfa, haystack)?.unwrap();Áüº´,) assert_eq!(mat.pattern().as_usize(), 0);Áüë´! assert_eq!(mat.offset(), 10);Á‘µ�ü™µHE // Here's another example that tests our handling of the special EOIÁüæµB? // transition. This will fail to find a match if we don't callÁü­¶FC // 'next_eoi_state' at the end of the search since the match isn'tÁüø¶2/ // found until the final byte in the haystack.Áü¯·,) let dfa = dense::DFA::new(r"[0-9]{4}")?;Áüà·0áÝ.ü•¸-òà7üǸ,ªá7üø¸! assert_eq!(mat.offset(), 15);Áž¹�ü¦¹HE // And note that our search implementation above automatically worksÁüó¹KH // with multi-DFAs. Namely, `dfa.match_pattern(match_state, 0)` selectsÁüú)& // the appropriate pattern ID for us.Áüñº=: let dfa = dense::DFA::new_many(&[r"[a-z]+", r"[0-9]+"])?;Áü³»0áÝ.üè»-òà7üš¼,) assert_eq!(mat.pattern().as_usize(), 1);Áü˼  assert_eq!(mat.offset(), 3);Áüð¼30 let mat = find(&dfa, &haystack[3..])?.unwrap();Áü¨½,ªá7üÙ½  assert_eq!(mat.offset(), 7);Áüþ½41 let mat = find(&dfa, &haystack[10..])?.unwrap();Áü·¾,¨è7üè¾  assert_eq!(mat.offset(), 5);Á�¿�ü•¿.à�-<È¿ãˆ-„׿É) É)¤ü³äBÿø è¿ø ‚¤ü$鿎-ï¿üˆÍ-üŠÀJG Returns true if and only if the given identifier corresponds to a deadÁüÙÀJG state. When a DFA enters a dead state, it is impossible to leave. ThatÁü¨ÁHE is, every transition on a dead state by definition leads back to theÁ¤õÁ same dead state.ÁŽÂ�ü–ÂIF In practice, the dead state always corresponds to the identifier `0`.ÁüäÂ85 Moreover, in practice, there is only one dead state.Á¡Ã�ü©ÃKH The existence of a dead state is not strictly required in the classicalÁüùÃHE model of finite state machines, where one generally only cares aboutÁüÆÄIF the question of whether an input sequence matches or not. Dead statesÁü”ÅJG are not needed to answer that question, since one can immediately quitÁüãÅJG as soon as one enters a final or "match" state. However, we don't justÁü²ÆGD care about matches but also care about the location of matches, andÁüþÆC@ more specifically, care about semantics like "greedy" matching.ÁÆÇ�üÎÇFC For example, given the pattern `a+` and the input `aaaz`, the deadÁü™ÈEB state won't be entered until the state machine reaches `z` in theÁüãÈGD input, at which point, the search routine can quit. But without theÁü¯ÉC@ dead state, the search routine wouldn't know when to quit. In aÁü÷ÉHE classical representation, the search routine would stop after seeingÁüÄÊKH the first `a` (which is when the search would enter a match state). ButÁü”ËHE this wouldn't implement "greedy" matching where `a+` matches as manyÁ´áË `a`'s as possible.ÁüË�l„ÌÁˆ-–Ì�üžÌKH See the example for [`Automaton::is_special_state`] for how to use thisÁ¬îÌ method correctly.Ál‹ÍÊ) Ê)¤ü³äBÿø ™Íø ƒ¤ü$šÍŽ- Íü¼Ù-ü»ÍJG Returns true if and only if the given identifier corresponds to a quitÁüŠÎIF state. A quit state is like a dead state (it has no transitions otherÁüØÎHE than to itself), except it indicates that the DFA failed to completeÁü¥ÏKH the search. When this occurs, callers can neither accept or reject thatÁ¬õÏ a match occurred.Á�Ð�ü—ÐKH In practice, the quit state always corresponds to the state immediatelyÁüçÐGD following the dead state. (Which is not usually represented by `1`,Áü³ÑEB since state identifiers are pre-multiplied by the state machine'sÁüýÑB? alphabet stride, and the alphabet stride varies between DFAs.)ÁÄÒ�üÌÒEB The typical way in which a quit state can occur is when heuristicÁü–Ó:7 support for Unicode word boundaries is enabled via theÁüÕÓ^[ [`dense::Config::unicode_word_boundary`](crate::dfa::dense::Config::unicode_word_boundary)Áü¸Ô30 option. But other options, like the lower levelÁüðÔ<9 [`dense::Config::quit`](crate::dfa::dense::Config::quit)Áü±ÕEB configuration, can also result in a quit state being entered. TheÁüûÕGD purpose of the quit state is to provide a way to execute a fast DFAÁüÇÖKH in common cases while delegating to slower routines when the DFA quits.Á—×�üŸ×KH The default search implementations provided by this crate will return aÁüï×<9 [`MatchError::quit`] error when a quit state is entered.Á°Ø�l¸ØÁˆ-ÊØ�üÒØK²ù7¬¢Ù‡ú7l¿ÙË) Ë)¤ü³äBÿø ÍÙø „¤ü$ÎÙŽ-ÔÙü‰æ.üïÙEκ7ü¹ÚIF match state. A match state is also referred to as a "final" state andÁü‡Û*' indicates that a match has been found.Á¶Û�ü¾ÛHE If all you care about is whether a particular pattern matches in theÁü‹ÜGD input sequence, then a search routine can quit early as soon as theÁü×ÜDA machine enters a match state. However, if you're looking for theÁü ÝIF standard "leftmost-first" match location, then search _must_ continueÁüîÝHE until either the end of the input or until the machine enters a deadÁü»ÞHE state. (Since either condition implies that no other useful work canÁüˆßDA be done.) Namely, when looking for the location of a match, thenÁüÑßDA search implementations should record the most recent location inÁüšàIF which a match state was entered, but otherwise continue executing theÁüèàGD search as normal. (The search may even leave the match state.) OnceÁü´áJG the termination condition is reached, the most recently recorded matchÁüƒâ  location should be returned.Á¨â�ü°âEB Finally, one additional power given to match states in this crateÁüúâGD is that they are always associated with a specific pattern in orderÁüÆãDA to support multi-DFAs. See [`Automaton::match_pattern`] for moreÁü�äIF details and an example for how to query the pattern associated with aÁÜÝä particular match state.Áýä�l…åÁˆ-—å�üŸåK²ù7¬ïå‡ú7tŒæÌ) Ì)¤ü³äBÿø ›æø …¤ü$œæŽ-¢æüÿœ.ü½æDA Returns true only if the given identifier corresponds to a startÁL†ç stateÁ”ç�üœç<9 A start state is a state in which a DFA begins a search.ÁüÝçHE All searches begin in a start state. Moreover, since all matches areÁüªèB? delayed by one byte, a start state can never be a match state.Áñè�üùèEB The main role of a start state is, as mentioned, to be a startingÁüÃéA> point for a DFA. This starting point is determined via one ofÁü‰ê)& [`Automaton::start_state_forward`] orÁü·êIF [`Automaton::start_state_reverse`], depending on whether one is doingÁü…ë0- a forward or a reverse search, respectively.Áºë�üÂëGD A secondary use of start states is for prefix acceleration. Namely,ÁüŽìJG while executing a search, if one detects that you're in a start state,ÁüÝìGD then it may be faster to look for the next match of a prefix of theÁü©íIF pattern, if one exists. If a prefix exists and since all matches mustÁü÷íFC begin with that prefix, then skipping ahead to occurrences of thatÁüÂî52 prefix may be much faster than executing the DFA.Áüî�ü„ï)& As mentioned in the documentation forÁü²ïEB [`is_special_state`](Automaton::is_special_state) implementationsÁüüïFC _may_ always return false, even if the given identifier is a startÁüÇðJG state. This is because knowing whether a state is a start state or notÁü–ñGD is not necessary for correctness and is only treated as a potentialÁüâñGD performance optimization. (For example, the implementations of thisÁü®òGD trait in this crate will only return true when the given identifierÁüúòB? corresponds to a start state and when [specialization of startÁüÁóKH states](crate::dfa::dense::Config::specialize_start_states) was enabledÁü‘ôFC during DFA construction. If start state specialization is disabledÁüÜôGD (which is the default), then this method will always return false.)Á¨õ�l°õÁˆ-Âõ�üÊõIF This example shows how to implement your own search routine that doesÁü˜ö=: a prefix search whenever the search enters a start state.ÁÚö�üâöB? Note that you do not need to implement your own search routineÁü©÷<9 to make use of prefilters like this. The search routinesÁüê÷B? provided by this crate already implement prefilter support viaÁü±ø?< the [`Prefilter`](crate::util::prefilter::Prefilter) trait.Áüõø>; A prefilter can be added to your search configuration withÁü¸ùJG [`dense::Config::prefilter`](crate::dfa::dense::Config::prefilter) forÁü‡ú(% dense and sparse DFAs in this crate.Á´ú�ü¼úIF This example is meant to show how you might deal with prefilters in aÁüŠûDA simplified case if you are implementing your own search routine.ÁÓû�<Ûûãˆ-Ìçûóˆ-ü…ü æœ.üªü%œÇ74ÔüŸŠ-ßü�üçüFC fn find_byte(slice: &[u8], at: usize, byte: u8) -> Option {Áü²ýEB // Would be faster to use the memchr crate, but this is stillÁüüý/, // faster than running through the DFA.Áü°þC@ slice[at..].iter().position(|&b| b == byte).map(|i| at + i)Á,øþð×0‚ÿ�ÔŠÿæÇ7„©ÿŠÈ7ľÿ¤È7üÛÿ  prefix_byte: Option,Áü€€0ÇÈ7üµ€GD // See the Automaton::is_special_state example for similar codeÁô�� // with more comments.Á¤��ü¬�HÔË7üù�"§Ì7Ä ‚ let mut pos = 0;Áü½‚$! while pos < haystack.len() {Áüæ‚" let b = haystack[pos];Áü�ƒ-ÜÏ7¬¿ƒ pos += 1;ÁüÙƒ,”Ð7üŠ„.ËÐ7ü½„5„Ñ7ü÷„4ÄÑ7ü°…  pos - 1,Á¼Õ…¦Ò7üñ…4ÈÒ7üª†*‡Ó7üÙ†4¼Ó7ü’‡FûÓ7ü݇GÌÔ7ü©ˆCžÕ7üñˆ-ìÕ7ü£‰.¤Ö7¬Ö‰ÜÖ7üð‰=: return Err(MatchError::quit(b, pos - 1));Áü²Š52 } else if dfa.is_start_state(state) {ÁüìŠKH // If we're in a start state and know all matches beginÁü¼‹JG // with a particular byte, then we can quickly skip toÁü‹ŒHE // candidate matches without running the DFA throughÁüØŒ,) // every byte inbetween.Áü‰�<9 if let Some(prefix_byte) = prefix_byte {ÁüÊ�KH pos = match find_byte(haystack, pos, prefix_byte) {ÁüšŽ-* Some(pos) => pos,ÁüÌŽ*' None => break,ÁÔûŽ };Á¬š�ÜÖ7Œ´�½×7lÊ�ËÙ7LÜ�âÙ7üê�KöÙ7üº�AÌÚ7ü€‘*˜Û7ü¯‘&ÍÛ7üÚ‘-þÛ7üŒ’,¶Ü7ü½’íÜ7|á’–Ý7Lõ’âÙ7´ƒ“½Ý7,ž“ð×0¨“�ü°“HE // In this example, it's obvious that all occurrences of our patternÁüý“C@ // begin with 'Z', so we pass in 'Z'. Note also that we need toÁüÅ”IF // enable start state specialization, or else it won't be possible toÁü“•JG // detect start states during a search. ('is_start_state' would alwaysÁ¬â• // return false.)Áüü•# let dfa = dense::DFA::builder()Áü¤–FC .configure(dense::DFA::config().specialize_start_states(true))Áäï– .build(r"Z[a-z]+")?;Áü�—52 let haystack = "123 foobar Zbaz quux".as_bytes();ÁüÊ—96 let mat = find(&dfa, haystack, Some(b'Z'))?.unwrap();Áüˆ˜,ªá7ü¹˜!¬å7ߘ�üç˜IF // But note that we don't need to pass in a prefix byte. If we don't,Áüµ™41 // then the search routine does no acceleration.Áüî™30 let mat = find(&dfa, haystack, None)?.unwrap();Áü¦š,ªá7üך!¬å7ýš�ü…›IF // However, if we pass an incorrect byte, then the prefix search willÁüÓ›# // result in incorrect results.Áüû›85 assert_eq!(find(&dfa, haystack, Some(b'X'))?, None);Á¸œ�üÀœ.à�-<óœãˆ-t‚�Í) Í)¤ü³äBÿø ‘�ø †¤ü$’�Ž-˜�ü˳.ü³�FC Returns true if and only if the given identifier corresponds to anÁ´þ�º¼7™ž�ü¡ž2/ An accelerated state is a special optimizationÁüØž/, trick implemented by this crate. Namely, ifÁüŒŸKH [`dense::Config::accelerate`](crate::dfa::dense::Config::accelerate) isÁüÜŸJG enabled (and it is by default), then DFAs generated by this crate willÁü« JG tag states meeting certain characteristics as accelerated. States meetÁüú JG this criteria whenever most of their transitions are self-transitions.ÁüÉ¡GD That is, transitions that loop back to the same state. When a smallÁü•¢GD number of transitions aren't self-transitions, then it follows thatÁüá¢JG there are only a small number of bytes that can cause the DFA to leaveÁü°£EB that state. Thus, there is an opportunity to look for those bytesÁüú£GD using more optimized routines rather than continuing to run throughÁüƤEB the DFA. This trick is similar to the prefilter idea described inÁü�¥DA the documentation of [`Automaton::is_start_state`] with two mainÁ„Ù¥ differences:Áî¥�üö¥JG 1. It is more limited since acceleration only applies to single bytes.ÁüŦIF This means states are rarely accelerated when Unicode mode is enabledÁü“§" (which is enabled by default).Áüº§EB 2. It can occur anywhere in the DFA, which increases optimizationÁ”„¨ opportunities.Á›¨�ü£¨HE Like the prefilter idea, the main downside (and a possible reason toÁüð¨GD disable it) is that it can lead to worse performance in some cases.Áü¼©EB Namely, if a state is accelerated for very common bytes, then theÁü†ªFC overhead of checking for acceleration and using the more optimizedÁüѪHE routines to look for those bytes can cause overall performance to beÁüž«52 worse than if acceleration wasn't enabled at all.ÁØ«�üà«@= A simple example of a regex that has an accelerated state isÁü¥¬HE `(?-u)[^a]+a`. Namely, the `[^a]+` sub-expression gets compiled downÁüò¬IF into a single state where all transitions except for `a` loop back toÁüÀ­HE itself, and where `a` is the only transition (other than the specialÁü�®GD EOI transition) that goes to some other state. Thus, this state canÁüÙ®A> be accelerated and implemented more efficiently by calling anÁüŸ¯GD optimized routine like `memchr` with `a` as the needle. Notice thatÁüë¯DA the `(?-u)` to disable Unicode is necessary here, as without it,Áü´°JG `[^a]` will match any UTF-8 encoding of any Unicode scalar value otherÁüƒ±HE than `a`. This more complicated expression compiles down to many DFAÁüбKH states and the simple acceleration optimization is no longer available.Á ²�ü¨²52 Typically, this routine is used to guard calls toÁüâ²GD [`Automaton::accelerator`], which returns the accelerated bytes forÁÄ®³ the specified state.ÁtγÎ) Î)¤ü³äBÿø ݳø ‡¤ü$Þ³Ž-ä³ü“½üÿ³@= Returns the total number of patterns compiled into this DFA.ÁÄ´�üÌ´IF In the case of a DFA that contains no patterns, this must return `0`.Ášµ�l¢µÁˆ-´µ�ü¼µGD This example shows the pattern length for a DFA that never matches:Áˆ¶�<�¶ãˆ-üœ¶52 use regex_automata::dfa::{Automaton, dense::DFA};ÁÖ¶�üÞ¶1. let dfa: DFA> = DFA::never_match()?;Áü”·%" assert_eq!(dfa.pattern_len(), 0);Áü¾·.à�-<ñ·ãˆ-ý·�ü…¸A> And another example for a DFA that matches at every position:Á˸�<Ó¸ãˆ-ü߸5ºâ8™¹�ü¡¹2/ let dfa: DFA> = DFA::always_match()?;Áüع%" assert_eq!(dfa.pattern_len(), 1);Áü‚º.à�-<µºãˆ-Áº�üɺC@ And finally, a DFA that was constructed from multiple patterns:Á‘»�<™»ãˆ-ü¥»5ºâ8ß»�üç»>; let dfa = DFA::new_many(&["[0-9]+", "[a-z]+", "[A-Z]+"])?;Áüª¼%" assert_eq!(dfa.pattern_len(), 3);ÁüÔ¼.à�-<‡½ãˆ-\–½Ï) Ï)¤üBÿø ¢½ø ˆ¤ü$£½üìÕ*ü¸½B? Returns the total number of patterns that match in this state.Áÿ½�ü‡¾EB If the given state is not a match state, then implementations mayÁTѾͽ.à¾�üè¾HE If the DFA was compiled with one pattern, then this must necessarilyÁüµ¿+( always return `1` for all match states.Áå¿�üí¿KH Implementations must guarantee that [`Automaton::match_pattern`] can beÁü½ÀHE called with indices up to (but not including) the length returned byÁüŠÁ# this routine without panicking.Á²Á�dºÁÚº.ËÁ�üÓÁHE Implementations are permitted to panic if the provided state ID doesÁü Â$! not correspond to a match state.ÁÉÂ�lÑÂÁˆ-ãÂ�üëÂDA This example shows a simple instance of implementing overlappingÁü´ÃGD matches. In particular, it shows not only how to determine how manyÁü€ÄGD patterns have matched in a particular state, but also how to accessÁüÌÄ)& which specific patterns have matched.ÁúÄ�܂ŠNotice that we must useÁü¢Å-* [`MatchKind::All`](crate::MatchKind::All)ÁüÔÅ%" when building the DFA. If we usedÁüþÅA> [`MatchKind::LeftmostFirst`](crate::MatchKind::LeftmostFirst)ÁüÄÆ@= instead, then the DFA would not be constructed in a way thatÁü‰ÇHE supports overlapping matches. (It would only report a single patternÁüÖÇ2/ that matches at any particular point in time.)Á�È�ü•ÈGD Another thing to take note of is the patterns used and the order inÁüáÈIF which the pattern IDs are reported. In the example below, pattern `3`Áü¯ÉC@ is yielded first. Why? Because it corresponds to the match thatÁü÷ÉGD appears first. Namely, the `@` symbol is part of `\S+` but not partÁüÃÊJG of any of the other patterns. Since the `\S+` pattern has a match thatÁü’ËJG starts to the left of any other pattern, its ID is returned before anyÁTáË other.ÁðË�<øËãˆ-ü„Ì=·³-üÆÌDA use regex_automata::{dfa::{Automaton, dense}, Input, MatchKind};Á�Í�ü—Í#޵-ü¿ÍC»µ-´‡Î .build_many(&[Áü¢ÎC@ r"[[:word:]]+", r"[a-z]+", r"[A-Z]+", r"[[:^space:]]+",ÁdêÎ ])?;ÁüûÎ%" let haystack = "@bar".as_bytes();Á¥Ï�ü­ÏGËë6üùÏ%œì6ü£ÐDËì6üìÐ*™í6Ä›ÑÌí6ü¸Ñ)îí6,æÑð×0üðÑ&Æï6›Ò�ü£Ò'öï6üÏÒ(% assert_eq!(dfa.match_len(state), 3);ÁüüÒHE // The following calls are guaranteed to not panic since `match_len`ÁÔÉÓ // returned `3` above.ÁüèÓ:7 assert_eq!(dfa.match_pattern(state, 0).as_usize(), 3);Áü§Ô:7 assert_eq!(dfa.match_pattern(state, 1).as_usize(), 0);ÁüæÔ:7 assert_eq!(dfa.match_pattern(state, 2).as_usize(), 1);Á¥Õ�ü­Õ.à�-<àÕãˆ-LïÕÐ) Ð)¤ü³äBÿø ùÕø ‰¤ü$úÕŽ-€ÖüÆÝ@üœÖHE Returns the pattern ID corresponding to the given match index in theÁ„éÖ given state.ÁþÖ�ü†×B? See [`Automaton::match_len`] for an example of how to use thisÁüÍ×GD method correctly. Note that if you know your DFA is compiled with aÁü™ØFC single pattern, then this routine is never necessary since it willÁüäØC@ always return a pattern ID of `0` for an index of `0` when `id`Áü¬Ù! corresponds to a match state.ÁÒÙ�üÚÙDA Typically, this routine is used when implementing an overlappingÁü£Ú;8 search, as the example for `Automaton::match_len` does.ÁãÚ�dëÚÚº.üÚ�ü„ÛEB If the state ID is not a match state or if the match index is outÁüÎÛEB of bounds for the given state, then this routine may either panicÁü˜ÜFC or produce an incorrect result. If the state ID is correct and theÁüãÜIF match index is correct, then this routine must always produce a validÁ„±Ý `PatternID`.ÁlÉÝÑ) Ñ)¤ü³ä‹ãBÿø ×Ýø Фü$ØÝŽ-ÞÝ÷,ëÝä„ûüŒÞJG Returns true if and only if this automaton can match the empty string.ÁüÛÞHE When it returns false, all possible matches are guaranteed to have aÁ¤¨ß non-zero length.ÁÁß�üÉßHE This is useful as cheap way to know whether code needs to handle theÁü–àJG case of a zero length match. This is particularly important when UTF-8ÁüåàHE modes are enabled, as when UTF-8 mode is enabled, empty matches thatÁü²áEB split a codepoint must never be reported. This extra handling canÁüüáGD sometimes be costly, and since regexes matching an empty string areÁüÈâHE somewhat rare, it can be beneficial to treat such regexes specially.Á•ã�l�ãÁˆ-¯ã�ü·ãFC This example shows a few different DFAs and whether they match theÁü‚äFC empty string or not. Notice the empty string isn't merely a matterÁüÍäHE of a string of length literally `0`, but rather, whether a match canÁüšå*' occur between specific pairs of bytes.ÁÉå�<Ñåãˆ-üÝåEB use regex_automata::{dfa::{dense::DFA, Automaton}, util::syntax};Á§æ�ü¯æ0- // The empty regex matches the empty string.Áääæ let dfa = DFA::new("")?;Áü…ç41 assert!(dfa.has_empty(), "empty matches empty");Áü¾çFC // The '+' repetition operator requires at least one match, and soÁü‰è'$ // does not match the empty string.Áôµè let dfa = DFA::new("a+")?;ÁüØè85 assert!(!dfa.has_empty(), "+ does not match empty");Áü•é,) // But the '*' repetition operator does.ÁôÆé let dfa = DFA::new("a*")?;Áüéé30 assert!(dfa.has_empty(), "* does match empty");Áü¡êJG // And wrapping '+' in an operator that can match an empty string alsoÁüðê/, // causes it to match the empty string too.Áü¤ë! let dfa = DFA::new("(a+)*")?;ÁüÊë<9 assert!(dfa.has_empty(), "+ inside of * matches empty");Á‹ì�ü“ìFC // If a regex is just made of a look-around assertion, even if theÁüÞìJG // assertion requires some kind of non-empty string around it (such asÁü­íGD // \b), then it is still treated as if it matches the empty string.ÁüùíJG // Namely, if a match occurs of just a look-around assertion, then theÁüÈî // match returned is empty.Áäìî…Û-ü�ï=: .configure(DFA::config().unicode_word_boundary(true))ÁüÏï2 ­3ü†ð)& .build(r"^$\A\z\b\B(?-u:\b\B)")?;Áü´ð74 assert!(dfa.has_empty(), "assertions match empty");ÁüððGD // Even when an assertion is wrapped in a '+', it still matches theÁ¤¼ñ // empty string.ÁüÕñ let dfa = DFA::new(r"^+")?;Áüùñ@= assert!(dfa.has_empty(), "+ of an assertion matches empty");Á¾ò�üÆòJG // An alternation with even one branch that can match the empty stringÁü•ó63 // is also said to match the empty string overall.ÁüÐó+( let dfa = DFA::new("foo|(bar)?|quux")?;Áü€ô=: assert!(dfa.has_empty(), "alternations can match empty");ÁÂô�üÊôC@ // An NFA that matches nothing does not match the empty string.Áü’õ" let dfa = DFA::new("[a&&b]")?;Áü¹õIF assert!(!dfa.has_empty(), "never matching means not matching empty");Áü‡öGD // But if it's wrapped in something that doesn't require a match atÁüÓö/, // all, then it can match the empty string!Áü‡÷# let dfa = DFA::new("[a&&b]*")?;Áü¯÷EB assert!(dfa.has_empty(), "* on never-match still matches empty");Áüù÷IF // Since a '+' requires a match, using it on something that can neverÁüÇøGD // match will itself produce a regex that can never match anything,Áü“ù0- // and thus does not match the empty string.ÁüÈù# let dfa = DFA::new("[a&&b]+")?;ÁüðùHE assert!(!dfa.has_empty(), "+ on never-match still matches nothing");Á½ú�üÅú.à�-<øúãˆ-L‡ûÒ) Ò)¤üBÿø ‘ûøÞ�$’ûÔ¶Œü¦û63 Whether UTF-8 mode is enabled for this DFA or not.Ááû�üéûA> When UTF-8 mode is enabled, all matches reported by a DFA areÁü¯üC@ guaranteed to correspond to spans of valid UTF-8. This includesÁü÷üJG zero-width matches. For example, the DFA must guarantee that the emptyÁüÆýIF regex will not match at the positions between code units in the UTF-8Áü”þ# encoding of a single codepoint.Á¼þ�üÄþJG See [`thompson::Config::utf8`](crate::nfa::thompson::Config::utf8) forÁ¬“ÿ more information.Á­ÿ�lµÿÁˆ-Çÿ�üÏÿIF This example shows how UTF-8 mode can impact the match spans that mayÁü�€! be reported in certain cases.ÁÀ�<Ë€ãˆ-Ì×€óˆ-üõ€%–‰-´Ÿ� nfa::thompson,Á̺�áÁ/4Ø�ŸŠ-ã��üë�(% // UTF-8 mode is enabled by default.Áܘ‚ let re = DFA::new("")?;ÁÔ¸‚ assert!(re.is_utf8());Áüׂ&# let mut input = Input::new("☃");Áü‚ƒ)& let got = re.try_search_fwd(&input)?;Áü°ƒ1. assert_eq!(Some(HalfMatch::must(0, 0)), got);Áæƒ�üîƒDA // Even though an empty regex matches at 1..1, our next match isÁü·„GD // 3..3 because 1..1 and 2..2 split the snowman codepoint (which isÁ̃… // three bytes long).Á¼¡… input.set_start(1);Áü½…)¬²9üë…1. assert_eq!(Some(HalfMatch::must(0, 3)), got);Á¡†�ü©†HE // But if we disable UTF-8, then we'll get matches at 1..1 and 2..2:ÁÜö†Œ‹-ü–‡6Ü­3¤Ñ‡ .build("")?;ÁÜê‡ assert!(!re.is_utf8());ÁüŠˆ)¬²9ü¸ˆ1. assert_eq!(Some(HalfMatch::must(0, 1)), got);Áîˆ�¼öˆ input.set_start(2);Áü’‰)¬²9üÀ‰1. assert_eq!(Some(HalfMatch::must(0, 2)), got);Áö‰�¼þ‰ input.set_start(3);ÁüšŠ)¬²9üÈŠ1�µ9þŠ�¼†‹ input.set_start(4);Áü¢‹)¬²9ÔЋ assert_eq!(None, got);Áï‹�ü÷‹.à�-<ªŒãˆ-<¹ŒÓ) Ó)¤üBÿø ÁŒø¡�$ÂŒüø–+üÖŒHE Returns true if and only if this DFA is limited to returning matchesÁü£�  whose start position is `0`.ÁÈ��üÐ�.+ Note that if you're using DFAs provided byÁüƒŽ,) this crate, then this is _orthogonal_ toÁü´ŽB? [`Config::start_kind`](crate::dfa::dense::Config::start_kind).ÁûŽ�üƒ�IF This is useful in some cases because if a DFA is limited to producingÁüÑ�DA matches that start at offset `0`, then a reverse search is neverÁüš�.+ required for finding the start of a match.ÁÍ��lÕ�Áˆ-ç��<ï�ãˆ-üû�52 use regex_automata::dfa::{dense::DFA, Automaton};Áµ‘�ü½‘'$ // The empty regex matches anywhereÁäé‘÷“9üŠ’GD assert!(!dfa.is_always_start_anchored(), "empty matches anywhere");ÁäÖ’ // 'a' matches anywhere.Áì÷’ let dfa = DFA::new("a")?;Áü™“EB assert!(!dfa.is_always_start_anchored(), "'a' matches anywhere");Áüã“$! // '^' only matches at offset 0!ÁôŒ” let dfa = DFA::new("^a")?;Áü¯”FC assert!(dfa.is_always_start_anchored(), "'^a' matches only at 0");Áüú”:7 // But '(?m:^)' matches at 0 but at other offsets too.Áü¹•# let dfa = DFA::new("(?m:^)a")?;Áüá•KH assert!(!dfa.is_always_start_anchored(), "'(?m:^)a' matches anywhere");Á±–�ü¹–.à�-<ì–ãˆ-Äû–Ô) Ô)¤üBÿø ”—ø �¤ü$•—ü‰¬,ü©—KH Return a slice of bytes to accelerate for the given state, if possible.Áù—�ü�˜FC If the given state has no accelerator, then an empty slice must beÁü̘KH returned. If `Automaton::is_accel_state` returns true for the given ID,Áüœ™JG then this routine _must_ return a non-empty slice. But note that it isÁüë™JG not required for an implementation of this trait to ever return `true`ÁüºšHE for `is_accel_state`, even if the state _could_ be accelerated. ThatÁü‡›JG is, acceleration is an optional optimization. But the return values ofÁüÖ›74 `is_accel_state` and `accelerator` must be in sync.Á’œ�üšœDA If the given ID is not a valid state ID for this automaton, thenÁüãœ;8 implementations may panic or produce incorrect results.Á£��ü«�?< See [`Automaton::is_accel_state`] for more details on stateÁŒï�¥š/…ž�ü�ž>; By default, this method will always return an empty slice.ÁО�lØžÁˆ-êž�üòžIF This example shows a contrived case in which we build a regex that weÁüÀŸA> know is accelerated and extract the accelerator from a state.Á† �<Ž ãˆ-Ìš óˆ-ü¸  æœ.üÝ ,) util::{primitives::StateID, syntax},Á4Ž¡ŸŠ-™¡�ü¡¡#޵-üÉ¡FC // We disable Unicode everywhere and permit the regex to matchÁü”¢GD // invalid UTF-8. e.g., [^abc] matches \xFF, which is not validÁüà¢JG // UTF-8. If we left Unicode enabled, [^abc] would match any UTF-8Áü¯£KH // encoding of any Unicode scalar value except for 'a', 'b' or 'c'.Áüÿ£C@ // That translates to a much more complicated DFA, and alsoÁüǤHE // inhibits the 'accelerator' optimization that we are trying toÁü”¥'$ // demonstrate in this example.ÁüÀ¥A> .syntax(syntax::Config::new().unicode(false).utf8(false))Á䆦 .build("[^abc]+a")?;Á§¦�ü¯¦DA // Here we just pluck out the state that we know is accelerated.Áüø¦EB // While the stride calculations are something that can be reliedÁü§GD // on by callers, the specific position of the accelerated state isÁôލ // implementation defined.Á4±¨ȃ7ü¼¨IF // N.B. We get '3' by inspecting the state machine using 'regex-cli'.ÁüŠ©A> // e.g., try `regex-cli debug dense dfa -p '[^abc]+a' -BbUC`.ÁüЩ52 let id = StateID::new(3 * dfa.stride()).unwrap();ÁüŠª*' let accelerator = dfa.accelerator(id);Áü¹ªHE // The `[^abc]+` sub-expression permits [a, b, c] to be accelerated.Áü†«1. assert_eq!(accelerator, &[b'a', b'b', b'c']);Áü¼«.à�-<ï«ãˆ-\Œ¬Õ) Õ)¤ü³ä Õ)³÷Bÿø ˜¬ø ޤü$™¬íŒNFüñ-üϬ?< Returns the prefilter associated with a DFA, if one exists.Á“­�ü›­GD The default implementation of this trait always returns `None`. AndÁüç­2/ indeed, it is always correct to return `None`.Áž®�ü¦®DA For DFAs in this crate, a prefilter can be attached to a DFA viaÁüï®GD [`dense::Config::prefilter`](crate::dfa::dense::Config::prefilter).Á»¯�üïEB Do note that prefilters are not serialized by DFAs in this crate.Áü�°C@ So if you deserialize a DFA that had a prefilter attached to itÁüÕ°B? at serialization time, then it will not have a prefilter afterÁ¤œ± deserialization.ÁlƱÖ) Ö)¤üřǙș­É™Ê™àË™óG*¤�R{9  Ö)ûÙBÿø Ô±ø �¤ü$Õ±üïàkü‹²JG Executes a forward search and returns the end position of the leftmostÁüÚ²EB match that is found. If no match exists, then `None` is returned.Á¤³�ü¬³GD In particular, this method continues searching even after it entersÁüø³EB a match state. The search only terminates once it has reached theÁü´FC end of the input or when it has entered a dead or quit state. UponÁü�µJG termination, the position of the last byte seen while still in a matchÁ´Üµ state is returned.Á÷µ�dÿµÅÐ0�¶�ü˜¶H…Ú3üå¶!¡¶3‹·�ü“·Fض3üÞ·E¨·3ü¨¸J÷·3ü÷¸1˸3ü­¹C†¹3üõ¹5Ó¹3¯º�ü·ºGúÛ3”ƒ»ËÜ3š»�䢻 # Notes for implementorsÁû�üË»KH Implementors of this trait are not required to implement any particularÁü›¼KH match semantics (such as leftmost-first), which are instead manifest inÁüë¼EB the DFA's transitions. But this search routine should behave as aÁôµ½ general "leftmost" search.Áؽ�üà½KH In particular, this method must continue searching even after it entersÁü°¾GD a match state. The search should only terminate once it has reachedÁüü¾JG the end of the input or when it has entered a dead or quit state. UponÁüË¿J¸ç9´šÀŒè9µÀ�ü½ÀKH Since this trait provides an implementation for this method by default,Áü�Á74 it's unlikely that one will need to implement this.ÁÉÁ�lÑÁÁˆ-ãÁ�üëÁ41 This example shows how to use this method with aÁü¤Â+( [`dense::DFA`](crate::dfa::dense::DFA).ÁÔÂ�<ÜÂãˆ-üèÂDÄÔ/±Ã�ü¹Ã,) let dfa = dense::DFA::new("foo[0-9]+")?;ÁüêÃ/æ©0üžÄHE assert_eq!(expected, dfa.try_search_fwd(&Input::new(b"foo12345"))?);ÁëÄ�üóÄGÇÅ3ü¿ÅJG // the leftmost first match semantics demand that we find the earliestÁüŽÆIF // match that prefers earlier parts of the pattern over latter parts.ÁüÜÆ(% let dfa = dense::DFA::new("abc|a")?;Áü‰Ç/, let expected = Some(HalfMatch::must(0, 3));Áü½ÇC@ assert_eq!(expected, dfa.try_search_fwd(&Input::new(b"abc"))?);Á…È�ü�È.à�-<ÀÈãˆ-ÌÈ�üÔÈ&# # Example: specific pattern searchÁÿÈ�ü‡ÉJG This example shows how to build a multi-DFA that permits searching forÁ´ÖÉ specific patterns.ÁñÉ�<ùÉãˆ-ü…Ê=·³-ÌÇÊóˆ-üåÊ æœ.üŠË.¶ï-4½ËŸŠ-ÈË�üÐË#޵-üøËF™ð-üÃÌ;8 .build_many(&["[a-z0-9]{6}", "[a-z][a-z0-9]{5}"])?;ÁüƒÍ'$ let haystack = "foo123".as_bytes();Á¯Í�ü·ÍC@ // Since we are using the default leftmost-first match and bothÁüÿÍKH // patterns match at the same starting position, only the first patternÁüÏÎGD // will be returned in this case when doing a search for any of theÁ„›Ï // patterns.Áü°Ï/åÄ/üäÏ9á .ô¢Ð¤¡.ÅÐ�üÍÐJG // But if we want to check whether some other pattern matches, then weÁüœÑ" // can provide its pattern ID.ÁüÃÑ$ßÏ-üìÑ96 .anchored(Anchored::Pattern(PatternID::must(1)));ÁüªÒ/, let expected = Some(HalfMatch::must(1, 6));ÁüÞÒ*' let got = dfa.try_search_fwd(&input)?;Áô�Ó¤¡.°Ó�ü¸Ó.à�-<ëÓãˆ-÷Ó�üÿÓ0- # Example: specifying the bounds of a searchÁ´Ô�ü¼ÔGD This example shows how providing the bounds of a search can produceÁüˆÕ;8 different results than simply sub-slicing the haystack.ÁÈÕ�<ÐÕãˆ-üÜÕDÄÔ/¥Ö�ü­ÖFC // N.B. We disable Unicode here so that we use a simple ASCII wordÁüøÖEB // boundary. Alternatively, we could enable heuristic support forÁüÂ× // Unicode word boundaries.Áüæ×52 let dfa = dense::DFA::new(r"(?-u)\b[0-9]{3}\b")?;Áü Ø* Â/ÏØ�üרIF // Since we sub-slice the haystack, the search doesn't know about theÁü¥ÙB? // larger context and assumes that `123` is surrounded by wordÁüìÙIF // boundaries. And of course, the match position is reported relativeÁüºÚGD // to the sub-slice as well, which means we get `3` instead of `6`.Áü†Û,) let input = Input::new(&haystack[3..6]);Áü·Û/™õ9üëÛ*÷þ9ôšÜ¤¡.½Ü�üÅÜKH // But if we provide the bounds of the search within the context of theÁü•ÝHE // entire haystack, then the search can take the surrounding contextÁüâÝFC // into account. (And if we did find a match, it would be reportedÁü­ÞC@ // as a valid offset into `haystack` instead of its sub-slice.)ÁüõÞ1. let input = Input::new(haystack).range(3..6);ÁÄ«ß let expected = None;ÁüÈß*÷þ9ô÷ߤ¡.šà�ü¢à.à�-<Õàãˆ-tòà×)Ø)Ù) ×)¤ü Ø)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ù)çÝ Bÿø Šáø �¤ü¦O¬—÷K<šë��‘�‘�‘‘�º—$òë��’�’�’’�À�ü¥œkü¡ìJG Executes a reverse search and returns the start of the position of theÁüðìDA leftmost match that is found. If no match exists, then `None` isÁl¹íϳ/Ëí�dÓíÅÐ0äí�üìíH…Ú3ü¹î!¡¶3ßî�üçîFض3ü²ïE¨·3üüïJ÷·3üËð1˸3ü�ñC†¹3üÉñ5Ó¹3ƒò�ü‹òGúÛ3”×òËÜ3îò�löòÁˆ-ˆó�ü�ó4Üð9üÉó?< [`dense::DFA`](crate::dfa::dense::DFA). In particular, thisÁü�ôC@ routine is principally useful when used in conjunction with theÁüÕôMJ [`nfa::thompson::Config::reverse`](crate::nfa::thompson::Config::reverse)Áü§õA> configuration. In general, it's unlikely to be correct to useÁüíõFC both `try_search_fwd` and `try_search_rev` with the same DFA sinceÁü¸öHE any particular DFA will only support searching in one direction withÁÜ…÷ respect to the pattern.Á¥÷�<­÷ãˆ-̹÷óˆ-´×÷µ°9üò÷ æœ.Ì—øáÁ/4µøŸŠ-Àø�üÈø#޵-üðø85 .thompson(thompson::Config::new().reverse(true))Áì­ù .build("foo[0-9]+")?;ÁüÏù/¹Þ/üƒúHE assert_eq!(expected, dfa.try_search_rev(&Input::new(b"foo12345"))?);ÁÐú�üØúFC // Even though a match is found after reading the last byte (`c`),Áü£ûJ½ó9üòûI’ô9üÀü#޵-üèü8Œ—:Ì¥ý .build("abc|c")?;ÁüÃý/¹Þ/ü÷ýC@ assert_eq!(expected, dfa.try_search_rev(&Input::new(b"abc"))?);Á¿þ�üÇþ.à�-<úþãˆ-†ÿ�ÌŽÿ # Example: UTF-8 modeÁ¬ÿ�ü´ÿA> This examples demonstrates that UTF-8 mode applies to reverseÁüúÿDA DFAs. When UTF-8 mode is enabled in the underlying NFA, then allÁüÀHE matches reported must correspond to valid UTF-8 spans. This includesÁü��:7 prohibiting zero-width matches that split a codepoint.ÁÏ��ü×�JG UTF-8 mode is enabled by default. Notice below how the only zero-widthÁü¦‚30 matches reported are those at UTF-8 boundaries:ÁÞ‚�<æ‚ãˆ-Ìò‚óˆ-ü�ƒ%–‰-´ºƒµ°9üÕƒ$Ç´-4þƒŸŠ-‰„�ä‘„…Û-ü²„8Œ—:¬ï„ .build(r"")?;Á‰…�ü‘…2/ // Run the reverse DFA to collect all matches.ÁüÈ…&û±9ìó… let mut matches = vec![];ÁT•† loop {Áü¤†+( match dfa.try_search_rev(&input)? {ÁÔÔ† None => break,ÁÌó† Some(hm) => {Áü‘‡! matches.push(hm);Áü·‡96 if hm.offset() == 0 || input.end() == 0 {ÁÔõ‡ break;Áü”ˆ52 } else if hm.offset() < input.end() {ÁüΈ/, input.set_end(hm.offset());ÁÄ‚‰ } else {ÁüŸ‰B? // This is only necessary to handle zero-widthÁüæ‰FC // matches, which of course occur in this example.Áü±ŠC@ // Without this, the search would never advanceÁüùŠ:7 // backwards beyond the initial match.Áü¸‹30 input.set_end(input.end() - 1);ÁŒð‹½×7l†ŒËÙ7L˜ŒâÙ7,¦Œð×0°Œ�ü¸Œ$! // No matches split a codepoint.ÁÄጠlet expected = vec![ÁôþŒ HalfMatch::must(0, 3),Áô¡� HalfMatch::must(0, 0),Á4Ä� ];ÁüÏ�" assert_eq!(expected, matches);Áö��üþ�.à�-<±Žãˆ-½Ž�üÅŽB? Now let's look at the same example, but with UTF-8 mode on theÁüŒ�GD original NFA disabled (which results in disabling UTF-8 mode on theÁLØ� DFA):Áæ��<î�ãˆ-Ìú�óˆ-ü˜�%–‰-´Â�µ°9üÝ�$Ç´-4†‘ŸŠ-‘‘�䙑…Û-üº‘DA .thompson(thompson::Config::new().reverse(true).utf8(false))Á¬ƒ’¸ :�’�ü¥’2å :üÜ’&û±9쇓°¡:T©“ס:ü¸“+ì¡:Ôè“¡¢:̇”Å¢:ü¥”!é¢:üË”9•£:Ô‰•Ø£:ü¨•5ý£:üâ•/½¤:Ä––ö¤:ü³–B™¥:üú–Fæ¥:üÅ—C·¦:ü�˜:…§:ü̘3ʧ:Œ„™½×7lš™ËÙ7L¬™âÙ7,º™ð×0Ä™�üÌ™$ͨ:Äõ™û¨:ô’š�©:ôµš HalfMatch::must(0, 2),ÁôØš HalfMatch::must(0, 1),ÁôûšÅ©:4ž›í©:ü©›"þ©:Л�üØ›.à�-<‹œãˆ-t¨œÚ)Û)Ü) Ú)¤ü Û)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ü)çÝ Bÿø Àœø “¤ü"X¬—¥T<ÅŸ“�”�”�””“ê¨$œ “�•�•�••“Ñ®üÞÀŽüË JG Executes an overlapping forward search. Matches, if one exists, can beÁüš¡<9 obtained via the [`OverlappingState::get_match`] method.ÁÛ¡�üã¡GD This routine is principally only useful when searching for multipleÁü¯¢IF patterns on inputs where multiple patterns may match the same regionsÁüý¢HE of text. In particular, callers must preserve the automaton's searchÁüÊ£JG state from prior calls so that the implementation knows where the lastÁœ™¤ match occurred.Á±¤�ü¹¤C@ When using this routine to implement an iterator of overlappingÁü�¥FC matches, the `start` of the search should always be set to the endÁüÌ¥GD of the last match. If more patterns match at the previous location,Áü˜¦IF then they will be immediately returned. (This is tracked by the givenÁüæ¦GD overlapping state.) Otherwise, the search continues at the startingÁœ²§ position given.Áʧ�üÒ§GD If for some reason you want the search to forget about its previousÁüž¨KH state and restart the search at a particular position, then setting theÁüî¨>; state to [`OverlappingState::start`] will accomplish that.Á±©�d¹©ÅÐ0Ê©�üÒ©H…Ú3üŸª!¡¶3Ū�üͪFض3ü˜«E¨·3üâ«J÷·3ü±¬1˸3üç¬C†¹3ü¯­5Ó¹3é­�üñ­GúÛ3”½®ËÜ3Ô®�lÜ®Áˆ-î®�üö®C@ This example shows how to run a basic overlapping search with aÁü¾¯DA [`dense::DFA`](crate::dfa::dense::DFA). Notice that we build theÁü‡°IF automaton with a `MatchKind::All` configuration. Overlapping searchesÁüÕ°C@ are unlikely to work as one would expect when using the defaultÁü�±DA `MatchKind::LeftmostFirst` match semantics, since leftmost-firstÁüæ±EB matching is fundamentally incompatible with overlapping searches.Áü°²IF Namely, overlapping searches need to report matches as they are seen,Áüþ²IF where as leftmost-first searches will continue searching even after aÁü̳JG match has been observed in order to find the conventional end positionÁü›´JG of the match. More concretely, leftmost-first searches use dead statesÁüê´KH to terminate a search after a specific match can no longer be extended.ÁüºµIF Overlapping searches instead do the opposite by continuing the searchÁüˆ¶@= to find totally new matches (potentially of other patterns).ÁͶ�<Õ¶ãˆ-üá¶=·³-Ì£·óˆ-üÁ·2‹´-üø·$Ç´-4¡¸ŸŠ-¬¸�ü´¸#޵-üܸC»µ-ü¤¹<9 .build_many(&[r"[[:word:]]+$", r"[[:^space:]]+$"])?;ÁÔå¹ let haystack = "@foo";Áü„º.é¶-·º�ü¿º/­·-üóºGD dfa.try_search_overlapping_fwd(&Input::new(haystack), &mut state)?;Áü¿»,¨¸-ð»�üø»Iê¸-üƼF½¹-ü‘½G�º-üݽIÞº-ü«¾(±»-üؾ/ã»-üŒ¿G¬Ë:üØ¿,¨¸-‰À�ü‘À.à�-<ÄÀãˆ-ÔáÀÝ)Þ)ß)à) Ý)¤ü Þ)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯ß) à)šÿªµBÿø …ÁøÜÉî^¬—Ò\ƒà\tÊÄ–�—�—�——–…¹ü¾éŽü×ÅJG Executes a reverse overlapping forward search. Matches, if one exists,Áü¦ÆC@ can be obtained via the [`OverlappingState::get_match`] method.ÁîÆ�üöÆC±¹:ü¾ÇIF matches, the `start` of the search should remain invariant throughoutÁüŒÈIF iteration. The `OverlappingState` given to the search will keep trackÁüÚÈDA of the current position of the search. (This is because multipleÁü£ÉDA matches may be reported at the same position, so only the searchÁüìÉ>; implementation itself knows when to advance the position.)Á¯Ê�ü·ÊGò¼:üƒËKĽ:üÓË>š¾:–Ì�džÌÅÐ0¯Ì�ü·ÌH…Ú3ü„Í!¡¶3ªÍ�ü²ÍFض3üýÍE¨·3üÇÎJ÷·3ü–Ï1˸3üÌÏC†¹3ü”Ð5Ó¹3ÎÐ�üÖÐGúÛ3”¢ÑËÜ3¹Ñ�ÌÁѨ›:ßÑ�üçÑAÙ›:ü­ÒD¥œ:üöÒHôœ:üÃÓ:Ç�:‚Ô�üŠÔJ™ž:üÙÔ3îž:‘Õ�<™Õãˆ-Ì¥Õóˆ-üÃÕ74 dfa::{dense::DFA, Automaton, OverlappingState},Á´ÿÕµ°9üšÖ$Ç´-4ÃÖŸŠ-ÎÖ�äÖÖ…Û-ü÷Ö<9 .configure(DFA::config().match_kind(MatchKind::All))Áü¸×8Œ—:üõ×%" .build_many(&[r"", r"☃"])?;ÁŸØ�ü§Ø2å :üÞØ" let input = Input::new("☃");Áü…Ù.é¶-ì¸Ù°¡:TÚÙס:üéÙ<9 dfa.try_search_overlapping_rev(&input, &mut state)?;ÁüªÚ! match state.get_match() {ÁÔÐÚ¡¢:üïÚ)& Some(hm) => matches.push(hm),ÁL�ÛâÙ7,«Ûð×0µÛ�ü½Û$ͨ:ÄæÛû¨:ôƒÜ�©:ô¦Ü HalfMatch::must(1, 0),ÁôÉÜÅ©:4ìÜí©:ü÷Ü"þ©:žÝ�ü¦Ý.à�-<ÙÝãˆ-åÝ�üíÝBâª:ü´ÞG¯«:L€ß€¬:Žß�<–ßãˆ-Ì¢ßóˆ-üÀß7�Ø:´üßµ°9ü—à$Ç´-4ÀàŸŠ-Ëà�äÓà…Û-üôà<—Ù:üµáD’­:üþá%íÙ:¨â�ü°â2å :üçâ"¹Ú:üŽã.é¶-ìÁã°¡:Tããס:üòã<‘Û:ü³ä!ØÛ:ÔÙä¡¢:üøä)’Ü:L¦åâÙ7,´åð×0¾å�üÆå:7 // Now *all* positions match, even within a codepoint,Áü…æ52 // because we lifted the requirement that matchesÁü¿æ'$ // correspond to valid UTF-8 spans.ÁÄëæû¨:ôˆç�©:ô«çó°:ôÎç›±:ôñç™Ý:ô”èÅ©:4·èí©:üÂè"þ©:éè�üñè.à�-<¤éãˆ-ÔÁéá)â)ã)ä) á)¤ü â)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯ã) ä)šÿªµBÿø åéø ˜¤üêc¬—%bƒ0btªí˜�™�™�™™˜ØÃü®„Œü·îFC Writes the set of patterns that match anywhere in the given searchÁü‚ïEB configuration to `patset`. If multiple patterns match at the sameÁüÌïJG position and the underlying DFA supports overlapping matches, then allÁü›ð30 matching patterns are written to the given set.ÁÓð�üÛðGD Unless all of the patterns in this DFA are anchored, then generallyÁü§ñ96 speaking, this will visit every byte in the haystack.Áåñ�üíñIF This search routine *does not* clear the pattern set. This gives someÁü»òGD flexibility to the caller (e.g., running multiple searches with theÁü‡óHE same pattern set), but does make the API bug-prone if you're reusingÁüÔóFC the same pattern set for multiple searches but intended them to beÁ„Ÿô independent.Á´ô�ü¼ôDA If a pattern ID matched but the given `PatternSet` does not haveÁü…õIF sufficient capacity to store it, then it is not inserted and silentlyÁdÓõ dropped.Áäõ�dìõÅÐ0ýõ�ü…öH…Ú3üÒö!¡¶3øö�ü€÷Fض3üË÷E¨·3ü•øJ÷·3üäø1˸3üšùC†¹3üâù5Ó¹3œú�ü¤úGúÛ3”ðúËÜ3‡û�l�ûÁˆ-¡û�ü©ûGD This example shows how to find all matching patterns in a haystack,ÁüõûIF even when some patterns match at the same position as other patterns.ÁÃü�<Ëüãˆ-ü×ü=·³-Ì™ýóˆ-ü·ý%Ù°1üáý%" Input, MatchKind, PatternSet,Á4‹þŸŠ-–þ�¬žþ let patterns = &[Á¼¸þ r"[[:word:]]+",Á”Ôþ r"[0-9]+",ÁÄëþ r"[[:alpha:]]+",Á|ˆÿ r"foo",Á|œÿ r"bar",Á”°ÿ r"barfoo",Á”Çÿ r"foobar",Á4Þÿí©:äéÿ…Û-üŠ€<—Ù:üË€ .build_many(patterns)?;Áï€�ü÷€%" let input = Input::new("foobar");Áü¡�85 let mut patset = PatternSet::new(dfa.pattern_len());ÁüÞ�<9 dfa.try_which_overlapping_matches(&input, &mut patset)?;ÁüŸ‚'$ let expected = vec![0, 2, 3, 4, 6];ÁüË‚HE let got: Vec = patset.iter().map(|p| p.as_usize()).collect();Áô˜ƒ¤¡.»ƒ�üÃ.à�-<öƒãˆ-Ó«Œˆ„Ì‚„채å)æ)ç)è) å)¤ü æ)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯ç) è)Ž€ªµBÿø Ø„ø š¤ü$Ù„¬—*gêÏ8gü‘‰:�œý�œ�ÿÆ®þ4°‰ø®þL¤‰ˆÿžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·ùúûüýÿ�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��“–˜š§²Ÿªµ¢­¥°¨³« ¶£®¦±ž©´¡¬·¤¯�‰ ¡‰üà‰<Tã‰é) é)ˆÿ³ä³äBÿ›  ž�®þ$Ši¬—iüäŠl¤îŠê) ê)ˆÿ³ä³äÿ› Œ‹› Ÿ�®þ$�‹’Šöi¬—jü¢Œ5t¥Œë) ë)ˆÿ³ä³äBÿ› ´Œ›  �®þ$µŒ’ŠÑjüœ�c\Ÿ�ì)í) ì)ˆÿ í)äì�¤Bÿ› ´�› ¡�®þ$µ�Ø”küÀŽfœÃŽî)ï)ð) î)ˆÿ ï)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯ð)íýBÿ› àŽ› ¢�®þ$Ꭼ—Wlüî�fœñ�ñ)ò)ó) ñ)ˆÿ ò)ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯ó)íýBÿ› Ž�› £�®þ$��¬—müœ‘B¬Ÿ‘ô) ô)ˆÿÅ‚¨¨Bÿ› µ‘› ¤�®þ$¶‘¦‡Þmü§’/„ª’õ) õ)ˆÿ³äBÿ› »’› ¥�®þ$¼’Ž-žnü˜“,l›“ö) ö)ˆÿ³äBÿ› ©“› ¦�®þ$ª“Ž-]oüƒ”,l†”÷) ÷)ˆÿ³äBÿ› ””› §�®þ$•”Ž-püî”-tñ”ø) ø)ˆÿ³äBÿ› €•› ¨�®þ$�•Ž-ÛpüÛ•-tÞ•ù) ù)ˆÿ³äBÿ› í•› ©�®þ$-šqüÈ–-tË–ú) ú)ˆÿ³äBÿ› Ú–› ª�®þ$Û–Ž-Yrôµ—\¸—û) û)ˆÿBÿ› Ä—› «�®þ$Å—üŽ˜)L‘˜ü) ü)ˆÿ³äBÿ› ›˜› ¬�®þ$œ˜Ž-¹süò˜?lõ˜ý) ý)ˆÿ³ä‹ãBÿ› ƒ™› ­�®þ$„™Ž-ƒt÷�tÜ÷™Lú™þ) þ)ˆÿBÿ› „š› ®�®þ$…šÌËš<Κÿ) ÿ)ˆÿBÿ› Öš› ¯�®þ$ךü››*Äž›€* €*ˆÿBÿ› ·›› °�®þ$¸›ü�œ+\�œ�* �*ˆÿ³ä �*³÷Bÿ› œœ› ±�®þ$�œŽ-9wüõœ-løœ‚* ‚*ˆÿřǙș­É™Ê™àË™óG*¤�R{9  ‚*ûÙBÿ› †�› ²�®þ$‡�üß�ktâ�ƒ*„*…* ƒ*ˆÿ „*ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寅*çÝ Bÿ› ú�› ³�®þ$û�¬—�xü�Ÿkt�Ÿ†*‡*ˆ* †*ˆÿ ‡*ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寈*çÝ Bÿ› ¨Ÿ› ´�®þ$©Ÿ¬—ayü» ŽÔ¾ ‰*Š*‹*Œ* ‰*ˆÿ Š*ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寋* Œ*šÿªµBÿ› â › µ�®þ$ã ¬—.zƒ9züŸ¢ŽÔ¢¢�*Ž*�*�* �*ˆÿ Ž*ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯�* �*šÿªµBÿ› Æ¢› ¶�®þ$Ç¢¬—{ƒ{ü¡¤ŒÓ«Œû£Ìõ£줤‘*’*“*”* ‘*ˆÿ ’*ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寓* ”*Ž€ªµBÿ› ˤ› ·�®þ$̤¬—ø{êÏ|¬Ó½šÿ¹ºüϾ"üï½HE Create a new overlapping state that begins at the start state of anyÁt¼¾«Þ-,Ö¾šÿBÿ¸¸¨ÉüŽÂ,ü¤ÀJG Return the match result of the most recent search to execute with thisÁTóÀ state.Á‚Á�üŠÁDA A searches will clear this result automatically, such that if noÁüÓÁ63 match is found, this will correctly report `None`.ÁL•œ* œ*šÿõÚ Bÿ¸ ŸÂ¸Ú¶$ Â|³Ì±€¼½üÉÌ*$×̱€Bÿ»»Þ¡ÿ†$ÜÌü£Í@¤±ÍÅ‚±€Bÿ»»�® ¦‡$ÆÍü¸Î%Ó‰|¦Î¼ Î±€üâÎ&±€À¥gÀü�ÏD’Ï¡*¢*£* ¡*±€ ¢*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡£*ÏÁBÿ¿ –Ï¿ À$—Ïœ �Ïü÷ÜâüúÜ"è§*¨*©* §*ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寨* ©*šÿÙ—ªµBÿ‚ ¬ÝþÆÙ— �ݤ*¥*¦*ˆ#Ù— ¤*ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寥* ¦*šÿü–ÞB¤*¥*¦*�#Ù—“¦;ªµ´ÂÞ ÁÙ—¬—b�ƒm�°X4âÝéëü¥çŠœ³çª*«* ª*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡«*�õ³äÏÁBÿýÄÄ Ýç´²3 ÇçŲ3LÊç Ã�õœ-�„8�Ž-C�/1|ìzÓ‘í,¬ÔzìÎz\ðz èÝæWDò ÅÇü(…CÅȱ$WÅÌüüT]ËÅͦ$r ÅÎÛDˆ¶ÅÏò�$¦˜ ÅÑþ�$¿™ ÅÓš°<ŦÅÔù,,åÐ$ÅÖÕ¤æŒìá$Å×Ö™ç|ÿí$ÅØØÒÏL¦ú!ÅÚáÐ<±�"ÅÛöŒDÌÈ%ÅÝûíLÖÛ%ÅÞ‹ñTöŒ&Åßò¾,‘ð#Åà,¬ �D#�,3„3ü3!z,Olo^alƒTü3gE$–ü3‰;D´,/ü3¯"%úüü3ðéë×Ùü3–Ê̸º´êªdŠš\“��âãäåæç´ž¥��Bÿáá âü» z °*±*²* °*�� ±*²Ÿ ²*€†ÿß1Bÿá Ï á ã$Ð õ.Þ „û üò<Tù³* ³*��æƒ�°;Bÿá „á ä$‰¦$�üÿ3$†´* ´*��‘µð°;Bÿá ‹á å$� %–üƒEtе* µ*��Ͷб;Bÿá ™á æ$ž¹•,¤üŸd´¦¶* ¶*��Ͷ±²;Bÿá Æá ç$˹•,ÙlÎEÓ‰|¼E¼¶EDÓEŜМÑF�êê‚‚ëíîïðñóôõöÖFü�H* HÅ‚‚ÿß1Bÿéé ë�$¨HÞQë�ì�ì�ììëìUÿËëüïh‡dòhź* º*‚‚³ä–®ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³ä¬òBÿé ˆié í�$�idfa_idÁ4›iÊ$´iüÂnotÅnÅ»*¼* »*‚‚ ¼*ìÜ ÿß1Bÿé Ýné î�$ân dfa_state_idsÁlðnü§Œ|ªÅ½*¾* ½*‚‚Å‚ ¾*ìÜ ÿß1Bÿé Ãé ï�$È©ÆDÖͶ;lòü²žƒlµžÅ¿* ¿*‚‚³äôíƵ;Bÿé Ìžé ð�$Ñž nfa_startÁLßž‚,ûžüŒ¬u|�¬ÅÀ* À*‚‚ÓøƵ;Bÿé ¨¬é ñ�$­¬å<»¬,ç¯ñ�ò�ò�òòñò‘ë•¶;Uÿü„³gL‡³ÅÁ* Á*‚‚ÓøüÙ Bÿé š³é ó�$Ÿ³å<­³ü¶¿4Œ¹¿ÅÂ* Â*‚‚É÷Bÿé Ë¿é ô�$пüÌÂ9ŒÏÂÅÃ* Ã*‚‚ÓøBÿé áÂé õ�$æÂå<ìÂüÀÅdÃÅÅÄ* Ä*‚‚Bÿé ÐÅé ö�$ÑÅ”îÅ<ùÅd›{Ó‘í,¬ƒ{ìýzDŸ{ ŒôÍ<ð0øúñûcøû˜ ôøüWD?ò øþÉMãIøÿ–QÐ=ø€–ø€ü[…Cø�½HL„øø„±,�ø…¦$– ø†þ�D±™ øˆÒÏLÐú!øŠáÐ<Û�"ø‹$l !,*¬2û4IìÚÜDVº,f„f¤y±ž Ž�üf?€‚üfgrt`bü´LÆ���¤ƒÝS ×UÀ´Ž��‘ÐäÚÚøŒŒ �€†üü&tüøŒŒ…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅìÜ ½‡½‡̨T¨øŒŒ…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàŃ„½‡´Ç<ÇøŒŒ™Ä;üâ%�““¤ƒ” g”çüŽ8‘Å*Æ*Ç* Å*¤ƒ Æ*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ç*ÏÁBÿ’ •’ ”�$–œ œ´²�––¤ƒ—˜�Ÿ¡£·üÏ9ÖÛÂ;¤ƒBÿ•• —�„Ú¤ÿ†¤ƒBÿ•• ˜�$ŽÌÚ˜�™�™�™™˜™”â³äUÿÂà´Ì˜�š�š�šš˜š‘ëUÿÂà$Ù8˜�›�›�››˜›‘ëUÿå  ÛÉ;ºß,›@˜�œ�œ�œœ˜œ�Š žŠ ÚÊ;žŠ üèb7dëbøÓ*Ô* Ó*¤ƒ Ô*ƒ„ͶBÿ• øb• ��$ùb %ÿbÇc��ž�ž�žž�žºßUÿ ºßüàc}„ãcøÕ*Ö*×* Õ*¤ƒ–® Ö*ƒ„ ×*ƒ„Bÿ• ýc• Ÿ�$þc˜ Œd %§dincomingÁD¿d$‹eŸ� � �  Ÿ ÊÊ; ŒŒ‡SŽ„ø�¨Sø�¾Sø‘ÐSøÝS ×UÀ´öç ƒ„üíf=”ðføØ* Ø*€†™Ä;Bÿ• ˆg• ¡�„ƒgT°o¡�¢�¢�¢¢¡¢¸ß1ƒ„ƒ„UÿüœpH¤ŸpøÙ* Ù*€†ÿÂ;Bÿ• ¹p• £�„´plÇsƒ„¥¦§¨©ª«¬­¯°´Ûs,Þsøƒ„Bÿ¤¤ ¥ô·tºtøÚ* Ú*ƒ„³äBÿ¤ ¾t¤ ¦$ÃtŽ-ÉtÄ‹uŽuøÛ* Û*ƒ„³äBÿ¤ ’u¤ §$“uÔÎudÑuøÜ* Ü*ƒ„Bÿ¤ Þu¤ ¨$ãuœÃv,ÆvøÝ* Ý*ƒ„Bÿ¤ Ìv¤ ©$Ñv´‹wŽwøÞ* Þ*ƒ„Bÿ¤ ’w¤ ª$“wÔÏwDÒwøß* ß*ƒ„Bÿ¤ Ûw¤ «$Üwü�x T’xøà* à*ƒ„ƒ„Bÿ¤ �x¤ ¬$žxü±y+$´yøá* á*ƒ„Ù—Bÿ¤‚®® Ìy¤ç¥; ¹yˆ#Ù—‘ët¼y�#Ù—‘ë ­Ù—$Íyœ ×yEGüµz=d¸zøâ*ã*ä* â*ƒ„ ã*ƒ„ ä*ƒ„Bÿ¤ Åz¤ ¯$Æzî ,ÌzdestÁ$ÞzüÍ‚9DЂøå*æ*ç* å*ƒ„ æ*ƒ„ ç*ƒ„Bÿ¤ Ù‚¤ °$Ú‚î ,à‚µÙ;$ò‚惰�±�±�±±°±ÊÊ;ƒÐ;då{Ó‘í,¬³{Ó§¼Ê{ü²{0ü©{;Dé{ µÇƒˆü…C²³áÐ<3�"²´|)ü ü¶ -TÇ  µµ´â6ü¶ ä Ÿg¤ü„Ó µ´â6,ÌÝ; ´â68ÌÝ;,¶·¸¹¶·¸¹¹¸¶·ì• L˜  è* è*¤üBÿµ ¢ µ ¶¤ü$£ ÜÔ <×  é* é*¤üBÿµ ß µ ·¤ü$à üÙ6\Ü ê* ê*¤ü³ä³äBÿµ èµ ¸¤ü$íÕØ1óáØ1�üâ6,å ë* ë*¤üÚBÿµÚºº ëµþƃá;Üû…#ƒá;‘ë´€�#ƒá;‘ë³ä<� ¹¤üƒá;$ðƒ öLNlÝ!‡…¼¿ÁüÆ#2Ô# ï* ï*’W‡…Bÿ»’W½½ Û#»þÆÞâ;|Ü#µÞâ;Tá# ¼Þâ;¨ Ø#%'ß$¼�¾�¾�¾¾¼¾Þâ;�É;Èëüð&y$þ& ð*ñ* ð*‡… ñ*Þâ;³ä³äBÿ»’WÀÀ Œ'»‹ã;|§'œã;T¬' ¿Þâ;$‘'¨ Ÿ'ÕØ1À'áØ1Ö'68üŸ*6,­* ò*‡… ò*Þâ;Bÿ»’W À*»‹ã;|Å*œã;TÊ* ÁÞâ;$·*¨ ½*$&4ø6Á�Ã�Ã�ÃÃÁÃÞâ;�Š žŠ Èë„¡?Ê…ÅÆüå?(Dè?²ö* ö*Ê…³äBÿÄ ñ?Ä Å$ò?Ž-ø?üî@.\ñ@²÷* ÷*Ê…³äBÿÄ ý@Ä Æ$þ@÷,„ALÞCÓ‘í,¬ÆCìÀC,âC²ôD†DvÇÉáÐ<¢D�"ÇÊËVT¼DµÇË,òC¤úCDÌ�D5ŒµD&äÍD€†ÍÎÏж·¸¹ÍÎÐÏäôDL÷D ø* ø*€†BÿÌ �EÌ Í$‚EÔÌE<ÏE ù* ù*€†BÿÌ ×EÌ Î$ØEü F5\£F ú* ú*€†³ä³äBÿÌ ¯FÌ Ï$´FÕØ1ºFáØ1ÈFü�G5, G û* û*€†‹ëBÿÌÚÑÑ ¦GÌËÚ1ܶGÝÚ1´»GòÚ1<ÊG Ћë$«Gƒ 8·,.T’|Ó–â,´ù{ôó{4–| âäçéïñó÷ùûýÿÁB, ¦ÒÕ½HL;øÒ×Ì…„FÅÒØ”ÊL�!ÒÚáÐ<ž�"ÒÛöŒD¸È%ÒÝŽéLŠ%ÒÞ—,Íò$Òß§è$Ôû$ÒàƒïTæí%Òá,„ÛÝü4ÏѾÀüd¤t´œ’¥ü±–˜„†suacOQü‡vDŽü*ý*þ* ü*�õ ý*ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯þ*çÝ Bÿýãã ¸ÿÆ�õ4¦Ų3Lš â�õ„øº¬—» —ü­ªd°Òÿ*€+�+‚+ ÿ*�õ €+ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯�+řǙș­É™Ê™àË™óG*¤�R{9  ‚+ûÙçÝ Bÿýåå Þ§ò;4ÌŲ3LÀÑó„î׬—ø×ÀöØåë Ø ½Ü€ t�  œ  À ¦  º  , § 8Áñ¨ & « 8²$¬ $ ° , ² 8÷…³ & µ 8²$¶ *¼  ¿  ¹ À  ¸8Î 8ÿ†$Ò  ×  Ù 8¬—,Ú  ß 8âìDà  è  é  ê 8 get_uncheckedÁlë  ø  ü , ù 8÷…ú % ý 8„‹ Ž8Ž#¤� £ ®, ¤8Áñ¥$ ¨8ÿ†$ª% ºüÅ`Ast`->`Hir`->`NFA` process. * Parsing a string into an `Ast` gives it a structured representation. Crucially, the size and amount of work done in this step is proportional to the size of the original string. No optimization or Unicode handling is done at this point. This means that parsing into an `Ast` has very predictable costs. Moreover, an `Ast` can be round-tripped back to its original pattern string as written. * Translating an `Ast` into an `Hir` is a process by which the structured representation is simplified down to its most fundamental components. Translation deals with flags such as case insensitivity by converting things like `(?i:a)` to `[Aa]`. Translation is also where Unicode tables are consulted to resolve things like `\p{Emoji}` and `\p{Greek}`. It also flattens each character class, regardless of how deeply nested it is, into a single sequence of non-overlapping ranges. All the various literal forms are thrown out in favor of one common representation. Overall, the `Hir` is small enough to fit into your head and makes analysis and other tasks much simpler. * Compiling an `Hir` into an `NFA` formulates the regex into a finite state machine whose transitions are defined over bytes. For example, an `Hir` might have a Unicode character class corresponding to a sequence of ranges defined in terms of `char`. Compilation is then responsible for turning those ranges into a UTF-8 automaton. That is, an automaton that matches the UTF-8 encoding of just the codepoints specified by those ranges. Otherwise, the main job of an `NFA` is to serve as a byte-code of sorts for a virtual machine. It can be seen as a sequence of instructions for how to match a regex. ÁÓ¢È<ÄÜ0üÖ 0Dÿ0·ñû ‘ » Ö Í ½÷<¥Ð‹ üüT¹«Œ ¹£„ØåŽ þ¤\ê€� ߢŒ÷Ú� ù,,й‘  ›T‘ð’ Ãý¥¢“ ý’Dâú• ªö4ìà– ’’lôí— \’<–¶­Ð˜  ô·¸K"„K·º–'Ð=·»–·»ü1…C·¼üüTi«·¿õ.$ƒÖ ·ÁߢŒ‰Ú·Â ›Tœð·ÃÃý¨¢·ÄšŽ$Ðû·ÇßÄ\ÖÐ ·ÈÈÄ„ù’·ÊÒÏL‹ú!·Ë¡ÍT–Ò!·ÌáÐ<¢�"·ÍLR,LH7:D,,<Ô<Œbü; can be quite useful in the construction process of an NFA.Á³÷�d»÷ÅÐ0Ì÷�üÔ÷KH This returns an error if the state identifier space is exhausted, or ifÁü¤ø52 the configured heap size limit has been exceeded.ÁLåøá+ á+³�€áBÿÑ ïøÑ Ú$ôøü‚€käÝù Add a "union" NFA state.Áþù�ü†úHE A "union" NFA state that contains zero or more unconditional epsilonÁüÓúC@ transitions to other NFA states. The order of these transitionsÁü›ûJG reflects a priority order where earlier transitions are preferred overÁ´êû later transitions.Á…ü�ü�üKH Callers may provide an empty set of alternates to this method call, andÁüÝüJG then later add transitions via `patch`. At final build time, a "union"Áü¬ýJG state with no alternates is converted to a "fail" state, and a "union"ÁüûýHE state with exactly one alternate is treated as if it were an "empty"ÁTÈþû�;×þ�dßþÅÐ0ðþ�üøþKð‘=üÈÿ5Æ’=L‰€â+ â+³�ìÜ €áBÿÑ œ€Ñ Û$¡€¡�T¯€ü‰‰sü©�$! Add a "reverse union" NFA state.ÁÒ��üÚ�KH A "reverse union" NFA state contains zero or more unconditional epsilonÁüª‚Cå”=üò‚C@ reflects a priority order where later transitions are preferredÁüºƒEB over earlier transitions. This is an inverted priority order whenÁü„„JG compared to `add_union`. This is useful, for example, for implementingÁüÓ„$! non-greedy repetition operators.Áü„�ü„…Kµ–=üÔ…KH then later add transitions via `patch`. At final build time, a "reverseÁü¤†IF union" state with no alternates is converted to a "fail" state, and aÁüò†HE "reverse union" state with exactly one alternate is treated as if itÁÔ¿‡ were an "empty" state.ÁÞ‡�dæ‡ÅÐ0÷‡�üÿ‡Kð‘=üψ5Æ’=Œ�‰ã+ ã+³�ìÜ €áBÿÑ «‰Ñ Ü$°‰¡�T¾‰üä�d俊 Add a "range" NFA state.ÁàŠ�üèŠJG A "range" NFA state is a state with one outgoing transition to anotherÁü·‹JG state, where that transition may only be followed if the current inputÁü†Œ.+ byte falls between a range of bytes given.Á¹Œ�dÁŒÅÐ0ÒŒ�üÚŒKð‘=üª�5Æ’=Lë�ä+ ä+³�ó¥€áBÿÑ þ�Ñ Ý$ƒŽË!,‘Žüñšpìƒ� Add a "sparse" NFA state.Á¥��ü­�JG A "sparse" NFA state contains zero or more outgoing transitions, whereÁüü�IF the transition to be followed (if any) is chosen based on whether theÁüÊ�EB current input byte falls in the range of one such transition. TheÁü”‘JG transitions given *must* be non-overlapping and in ascending order. (AÁüã‘HE "sparse" state with no transitions is equivalent to a "fail" state.)Á°’�ü¸’HE A "sparse" state is like adding a "union" state and pointing it at aÁü…“FC bunch of "range" states, except that the different alternates haveÁœÐ“ equal priority.Áè“�üð“HE Note that a "sparse" state is the only state that cannot be patched.Áü½”HE This is because a "sparse" state has many transitions, each of whichÁüŠ•B? may point to a different NFA state. Moreover, adding more suchÁüÑ•GD transitions requires more than just an NFA state ID to point to. ItÁü�–HE also requires a byte range. The `patch` routine does not support theÁüê–HE additional information required. Therefore, callers must ensure thatÁü·—JG all outgoing transitions for this state are included when `add_sparse`Áü†˜1. is called. There is no way to add more later.Á¼˜�dĘÅÐ0Õ˜�üݘKð‘=ü­™5Æ’=ç™�dï™Úº.€š�üˆšHE This routine _may_ panic if the transitions given overlap or are notÁ¼Õš in ascending order.ÁTøšå+ å+³�˜þ€áBÿÑ Œ›Ñ Þ$‘› -\Ÿ›üá sÜŸœ Add a "look" NFA state.Á¿œ�üÇœ>; A "look" NFA state corresponds to a state with exactly oneÁüŠ�EB *conditional* epsilon transition to another NFA state. Namely, itÁüÔ�FC represents one of a small set of simplistic look-around operators.ÁŸž�ü§žIF Callers may provide a "dummy" state ID (typically [`StateID::ZERO`]),Áüõž<9 and then change it later with [`patch`](Builder::patch).Á¶Ÿ�d¾ŸÅÐ0ÏŸ�üןKð‘=ü§ 5Æ’=Dè æ+ æ+³�³ä¨Ë€áBÿÑ ú Ñ ß$ÿ ¥ $�¡ñ¢$¤¡ü¤Ý¢ü�¢$! Add a "start capture" NFA state.Á¸¢�üÀ¢GD A "start capture" NFA state corresponds to a state with exactly oneÁüŒ£FC outgoing unconditional epsilon transition to another state. UnlikeÁü×£C@ "empty" states, a "start capture" state also carries with it anÁüŸ¤HE instruction for saving the current position of input to a particularÁüì¤GD location in memory. NFA simulations, like the Pike VM, may use thisÁü¸¥FC information to report the match locations of capturing groups in aÁ”ƒ¦ regex pattern.Áš¦�ü¢¦HE If the corresponding capturing group has a name, then callers shouldÁ¤ï¦ include it here.Áˆ§�ü�§IË´=üÞ§<Ÿµ=Ÿ¨�ü§¨JG Note that unlike `start_pattern`/`finish_pattern`, capturing start andÁüö¨HE end states may be interleaved. Indeed, it is typical for many "startÁüéGD capture" NFA states to appear before the first "end capture" state.Á�ª�d—ªÅÐ0¨ª�ü°ªKð‘=ü€«DA the configured heap size limit has been exceeded or if the givenÁüÉ«$! capture index overflows `usize`.Áò«�üú«EB While the above are the only conditions in which this routine canÁüĬIF currently return an error, it is possible to call this method with anÁü’­IF inputs that results in the final `build()` step failing to produce anÁüà­HE NFA. For example, if one adds two distinct capturing groups with theÁü­®HE same name, then that will result in `build()` failing with an error.Áú®�ü‚¯DA See the [`GroupInfo`](crate::util::captures::GroupInfo) type forÁü˯A> more information on what qualifies as valid capturing groups.Á‘°�l™°Áˆ-«°�ü³°JG This example shows that an error occurs when one tries to add multipleÁü‚±<9 capturing groups with the same name to the same pattern.Áñ�<˱ãˆ-Ì×±óˆ-üõ± nfa::thompson::Builder,Áü™²" util::primitives::StateID,Á4À²ŸŠ-˲�üÓ²1. let name = Some(std::sync::Arc::from("foo"));Áü‰³%" let mut builder = Builder::new();Áì³³ builder.start_pattern()?;ÁüÕ³2/ // 0th capture group should always be unnamed.ÁüŒ´C@ let start = builder.add_capture_start(StateID::ZERO, 0, None)?;ÁLÔ´ // OKÁüâ´?< builder.add_capture_start(StateID::ZERO, 1, name.clone())?;Áü¦µGD // This is not OK, but 'add_capture_start' still succeeds. We don'tÁüòµGD // get an error until we call 'build' below. Without this call, theÁü¾¶+( // call to 'build' below would succeed.Áüî¶?< builder.add_capture_start(StateID::ZERO, 2, name.clone())?;Áü²·96 // Finish our pattern so we can try to build the NFA.Áüð·# builder.finish_pattern(start)?;Áü˜¸-* let result = builder.build(start, start);Áìʸ assert!(result.is_err());Áì¸�üô¸.à�-<§¹ãˆ-³¹�ü»¹C@ However, adding multiple capturing groups with the same name toÁôƒº distinct patterns is okay:Á¦º�<®ºãˆ-¼ºº use std::sync::Arc;ÁÖº�ÌÞºóˆ-üüº=: nfa::thompson::{pikevm::PikeVM, Builder, Transition},Á|¾» util::{ÁüÒ» captures::Captures,Áüö»-* primitives::{PatternID, StateID},ÁT¨¼ },Ál·¼ Span,Á4ɼŸŠ-Ô¼�üܼGD // Hand-compile the patterns '(?P[a-z])' and '(?P[A-Z])'.Áü¨½%±È=üÒ½FC // We compile them to support an unanchored search, which requiresÁü�¾KH // adding an implicit '(?s-u:.)*?' prefix before adding either pattern.Áüí¾?< let unanchored_prefix = builder.add_union_reverse(vec![])?;Áü±¿,) let any = builder.add_range(Transition {Áüâ¿:7 start: b'\x00', end: b'\xFF', next: StateID::ZERO,ÁD¡À })?;Áü®À+( builder.patch(unanchored_prefix, any)?;ÁüÞÀ+( builder.patch(any, unanchored_prefix)?;ÁŽÁ�ü–ÁFC // Compile an alternation that permits matching multiple patterns.ÁüáÁ)& let alt = builder.add_union(vec![])?;Áü�Â+( builder.patch(unanchored_prefix, alt)?;Á¿Â�üÇÂ! // Compile '(?P[a-z]+)'.ÁìíÂàÈ=ü�ÃDA let start0 = builder.add_capture_start(StateID::ZERO, 0, None)?;ÁüØÃ52 // N.B. 0th capture group must always be unnamed.Áü’Ä/, let foo_start0 = builder.add_capture_start(ÁüÆÄ1. StateID::ZERO, 1, Some(Arc::from("foo")),Á<üÄ )?;ÁüˆÅ2/ let lowercase = builder.add_range(Transition {Áü¿Å41 start: b'a', end: b'z', next: StateID::ZERO,ÁDøÅ¿Ö=ü…Æ>; let foo_end0 = builder.add_capture_end(StateID::ZERO, 1)?;ÁüÈÆ:7 let end0 = builder.add_capture_end(StateID::ZERO, 0)?;Áü‡Ç&# let match0 = builder.add_match()?;Áü²Ç'$ builder.patch(start0, foo_start0)?;ÁüÞÇ*' builder.patch(foo_start0, lowercase)?;Áü�È(% builder.patch(lowercase, foo_end0)?;ÁüºÈ# builder.patch(foo_end0, end0)?;ÁüâÈ! builder.patch(end0, match0)?;ÁüˆÉ$! builder.finish_pattern(start0)?;Á±É�ü¹É! // Compile '(?P[A-Z]+)'.ÁìßÉàÈ=ü�ÊDA let start1 = builder.add_capture_start(StateID::ZERO, 0, None)?;ÁüÊÊ5œÚ=ü„Ë/, let foo_start1 = builder.add_capture_start(Áü¸Ë1–Û=<îËÑÛ=üúË2/ let uppercase = builder.add_range(Transition {Áü±Ì41 start: b'A', end: b'Z', next: StateID::ZERO,ÁDêÌ¿Ö=ü÷Ì>; let foo_end1 = builder.add_capture_end(StateID::ZERO, 1)?;ÁüºÍ:7 let end1 = builder.add_capture_end(StateID::ZERO, 0)?;ÁüùÍ&# let match1 = builder.add_match()?;Áü¤Î'$ builder.patch(start1, foo_start1)?;ÁüÐÎ*' builder.patch(foo_start1, uppercase)?;ÁüÿÎ(% builder.patch(uppercase, foo_end1)?;Áü¬Ï# builder.patch(foo_end1, end1)?;ÁüÔÏ! builder.patch(end1, match1)?;ÁüúÏ$! builder.finish_pattern(start1)?;Á£Ð�ü«ÐEB // Now add the patterns to our alternation that we started above.ÁüõÐ  builder.patch(alt, start0)?;ÁüšÑ  builder.patch(alt, start1)?;Á¿Ñ�üÇÑIF // Finally build the NFA. The first argument is the anchored startingÁü•ÒA> // state (the pattern alternation) where as the second is theÁüÛÒ96 // unanchored starting state (the unanchored prefix).Áü™Ó52 let nfa = builder.build(alt, unanchored_prefix)?;ÁÓÓ�üÛÓDA // Now build a Pike VM from our NFA and access the 'foo' captureÁü¤ÔEB // group regardless of which pattern matched, since it is definedÁÌîÔ // for both patterns.ÁüŒÕ(% let vm = PikeVM::new_from_nfa(nfa)?;Áü¹Õ&# let mut cache = vm.create_cache();ÁìäÕ let caps: Vec =Áü†Ö<9 vm.captures_iter(&mut cache, "0123aAaAA").collect();ÁôÇÖ assert_eq!(5, caps.len());ÁêÖ�üòÖ<9 assert_eq!(Some(PatternID::must(0)), caps[0].pattern());Áü³×IF assert_eq!(Some(Span::from(4..5)), caps[0].get_group_by_name("foo"));Á�Ø�ü‰Ø<9 assert_eq!(Some(PatternID::must(1)), caps[1].pattern());ÁüÊØIF assert_eq!(Some(Span::from(5..6)), caps[1].get_group_by_name("foo"));Á˜Ù�ü Ù<9 assert_eq!(Some(PatternID::must(0)), caps[2].pattern());ÁüáÙIF assert_eq!(Some(Span::from(6..7)), caps[2].get_group_by_name("foo"));Á¯Ú�ü·Ú<9 assert_eq!(Some(PatternID::must(1)), caps[3].pattern());ÁüøÚIF assert_eq!(Some(Span::from(7..8)), caps[3].get_group_by_name("foo"));ÁÆÛ�üÎÛ<9 assert_eq!(Some(PatternID::must(1)), caps[4].pattern());Áü�ÜIF assert_eq!(Some(Span::from(8..9)), caps[4].get_group_by_name("foo"));ÁÝÜ�üåÜ.à�-<˜Ýãˆ-Œ«Ýç+ ç+³�³ä«Ê€áBÿÑ ÆÝÑ à$ËÝ¥ $ÙÝÓŽ\ðÝ‚ $ŠÞü½÷€üÆê" Add a "end capture" NFA state.Áíê�üõêEB A "end capture" NFA state corresponds to a state with exactly oneÁü¿ëF­¸=üŠìA> "empty" states, a "end capture" state also carries with it anÁüÐìH̹=ü�íGŸº=üéíFñº=´î�ü¼îIË´=üŠï<Ÿµ=Ëï�üÓïJ”½=ü¢ðHé½=üïðG¼¾=»ñ�dÃñÅÐ0Ôñ�üÜñKð‘=ü¬òDÅ¿=üõò$”À=žó�ü¦óEÐÀ=üðóI Á=ü¾ôIôÁ=üŒõHÈÂ=üÙõH›Ã=¦ö�ü®öDûÃ=ü÷öAÊÄ=|Ä÷è+ è+³�³ä€áBÿÑ Ý÷Ñ á$â÷¥ $ð÷ÓŽ\‡øü‡ÿ9ä¯û Adds a "fail" NFA state.ÁÐû�üØûIF A "fail" state is simply a state that has no outgoing transitions. ItÁü¦üFC acts as a way to cause a search to stop without reporting a match.ÁüñüIF For example, one way to represent an NFA with zero patterns is with aÁÄ¿ý single "fail" state.ÁÜý�däýÅÐ0õý�üýýKð‘=üÍþ5Æ’=DŽÿé+ é+³�€áBÿÑ —ÿÑ â$œÿüÛ…:ììÿ Adds a "match" NFA state.ÁŽ€�ü–€C@ A "match" state has no outgoing transitions (just like a "fail"ÁüÞ€FC state), but it has special significance in that if a search entersÁü©�JG this state, then a match has been found. The match state that is addedÁüø�HE automatically has the current pattern ID associated with it. This isÁüÅ‚:7 used to report the matching pattern ID at search time.Á„ƒ�dŒƒÅÐ0�ƒ�ü¥ƒKð‘=üõƒ5Æ’=¯„�d·„Úº.È„�üЄC@ This must be called after a `start_pattern` call but before theÁü˜…>; corresponding `finish_pattern` call. Otherwise, it panics.ÁLâ…ê+ ê+³�€áBÿÑ ì…Ñ ã$ñ…üìˆ>ë+ ë+³�²Š€áBÿÑ óˆÑ ä$øˆƒ,þˆó‰ä�å�å�ååäå²Ù ‚•Uÿ‡Ïüæ’lüº‹/, Add a transition from one state to another.Áî‹�üö‹EB This routine is called "patch" since it is very common to add theÁüÀŒJG states you want, typically with "dummy" state ID transitions, and thenÁü��IF "patch" in the real state IDs later. This is because you don't alwaysÁüÝ�EB know all of the necessary state IDs to add because they might notÁt§Ž exist yet.ÁºŽ�dÂŽÅÐ0ÓŽ�üÛŽHE This may error if patching leads to an increase in heap usage beyondÁü¨�IF the configured size limit. Heap usage only grows when patching adds aÁüö�74 new transition (as in the case of a "union" state).Á²��dº�Úº.Ë��üÓ�HE This panics if `from` corresponds to a "sparse" state. When "sparse"Áü ‘KH states are added, there is no way to patch them after-the-fact. (If youÁüð‘IF have a use case where this would be helpful, please file an issue. ItÁü¾’# will likely require a new API.)Á,í’ì+ ì+³�³ä³ä·ªBÿÑ ü’Ñ æ$�“”$�“‘×1¦“üŠ­%ü¢�IF Set whether the NFA produced by this builder should only match UTF-8.Áð��üø�;8 This should be set when both of the following are true:Á¸ž�üÀžIF 1. The caller guarantees that the NFA created by this build will onlyÁüŽŸ=: report non-empty matches with spans that are valid UTF-8.ÁüПIF 2. The caller desires regex engines using this NFA to avoid reportingÁüž JG empty matches with a span that splits a valid UTF-8 encoded codepoint.Áí �üõ EB Property (1) is not checked. Instead, this requires the caller toÁü¿¡HE promise that it is true. Property (2) corresponds to the behavior ofÁüŒ¢FC regex engines using the NFA created by this builder. Namely, thereÁü×¢GD is no way in the NFA's graph itself to say that empty matches foundÁü££HE by, for example, the regex `a*` will fall on valid UTF-8 boundaries.Áüð£KH Instead, this option is used to communicate the UTF-8 semantic to regexÁüÀ¤IF engines that will typically implement it as a post-processing step byÁüŽ¥DA filtering out empty matches that don't fall on UTF-8 boundaries.Á×¥�üߥ:7 If you're building an NFA from an HIR (and not using aÁüž¦IF [`thompson::Compiler`](crate::nfa::thompson::Compiler)), then you canÁüì¦GD use the [`syntax::Config::utf8`](crate::util::syntax::Config::utf8)Áü¸§JG option to guarantee that if the HIR detects a non-empty match, then itÁü‡¨$! is guaranteed to be valid UTF-8.Á°¨�ü¸¨GD Note that property (2) does *not* specify the behavior of executingÁü„©HE a search on a haystack that is not valid UTF-8. Therefore, if you'reÁüÑ©EB *not* running this NFA on strings that are guaranteed to be validÁü›ªB? UTF-8, you almost certainly do not want to enable this option.ÁüâªJG Similarly, if you are running the NFA on strings that *are* guaranteedÁü±«KH to be valid UTF-8, then you almost certainly want to enable this optionÁü�¬JG unless you can guarantee that your NFA will never produce a zero-widthÁTЬ match.Á߬�ôç¬ It is disabled by default.ÁD‘­í+ í+³�BÿÑ š­Ñ¨¤$Ÿ­ê¥­ôí®üÖ­;8 Returns whether UTF-8 mode is enabled for this builder.Á–®�üž®JG See [`Builder::set_utf8`] for more details about what "UTF-8 mode" is.ÁDô®î+ î+³�BÿÑ ý®Ñ è$þ®üù²(ü«¯FC Sets whether the NFA produced by this builder should be matched inÁüö¯FC reverse or not. Generally speaking, when enabled, the NFA producedÁüÁ°KH should be matched by moving backwards through a haystack, from a higherÁü‘±-* memory address to a lower memory address.Áñ�ü˱2/ See also [`NFA::is_reverse`] for more details.Á‚²�üвHE This is disabled by default, which means NFAs are by default matchedÁìײ in the forward direction.Á\€³ï+ ï+³�BÿÑ Œ³Ñ˜¦$‘³ê—³üñ´!ü˳=: Returns whether reverse mode is enabled for this builder.Á�´�ü•´KH See [`Builder::set_reverse`] for more details about what "reverse mode"Á<å´ is.Á\ø´ð+ ð+³�BÿÑ „µÑ ê$…µü�¸2üµµKH Sets the look-around matcher that should be used for the resulting NFA.Á…¶�ü�¶B? A look-around matcher can be used to configure how look-aroundÁüÔ¶>; assertions are matched. For example, a matcher might carryÁü—·HE configuration that changes the line terminator used for `(?m:^)` andÁÄä· `(?m:$)` assertions.Á„ˆ¸ñ+ ñ+³�µÐBÿÑ ™¸Ñ‹¨$ž¸£ ¤¸ü‡º.üà¸:7 Returns the look-around matcher used for this builder.ÁŸ¹�ü§¹IF If a matcher was not explicitly set, then `LookMatcher::default()` isÁlõ¹ϳ/„Žºò+ ò+³� ò+µÐBÿÑ ŸºÑ ì$ ºüù¼güÞº'$ Set the size limit on this builder.ÁŠ»�ü’»GD Setting the size limit will also check whether the NFA built so farÁüÞ»EB fits within the given size limit. If it doesn't, then an error isÁl¨¼ϳ/º¼�ü¼2/ By default, there is no configured size limit.Át€½ó+ ó+³�Ͷ·ªBÿÑ ˜½Ñÿ©$�½óþ,«½üË¿-ü¯¾/, Return the currently configured size limit.Áã¾�üë¾GD By default, this returns `None`, which corresponds to no configuredÁ|·¿ size limit.ÁtÒ¿ô+ ô+³�ͶBÿÑ á¿Ñ î$â¿ü›Ã#üžÀIF Returns the heap memory usage, in bytes, used by the NFA states addedÁ\ìÀ so far.ÁüÀ�ü„ÁHE Note that this is an approximation of how big the final NFA will be.ÁüÑÁFC In practice, the final NFA will likely be a bit smaller because ofÁüœÂEB its simpler state representation. (For example, using things likeÁüæÂ0- `Box<[StateID]>` instead of `Vec`.)Ád¢Ãõ+ õ+³�BÿÑ ¯ÃÑ ï$°Ãü•Ä4„˜Ä·ö+ ö+³�·ªBÿÑ ©ÄÑ ð$ªÄdºÓΔ¥ÔŸD¾¶àíú…Ž–�¤Y4 ÍñóÍ „Kñö–C Ð=ñ÷–ñ÷üM …Cñøä÷$r ãñûœ‰x „ñüİL‰ ­ñþ Utf8SequencesÁl” ½ñÿ¿÷l¨ ¿ñ€ ½÷<î Ðñƒ üüT† «ñ„ £™\¨ Ëñ… Ú›tà ïñ‡ Ä�lÓ ‰ñˆ üœlâ �ñ‰  ›T€ ðñ‹ ÃýŒ ¢ñŒ Å¥L¦ ‡ñ� šŽ$Ó ûñ� ßÄ\Ù Ð ñ‘ ÒÏLü ú!ñ“ áÐ<‡ �"ñ” $ t l ,0 L8 ÷æéDH ÈdX ¼X ¼l ­°üX. ¢¥†‰vy,¿ Ô¿ „å rŒÿ cÌš Tü¿� GJ7:'*ü¿¾   ¬š ü¿� ü¿‘ úüèêü¿º ÜÞÊÌ\Œ àŽ– — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ ´à üž= : Return a new default Thompson NFA compiler configuration.Áç àŽBÿ• • ‚Ùü¡.* üž6 3 Whether to enable UTF-8 mode during search or not.ÁÙ �üáF C A regex engine is said to be in UTF-8 mode when it guarantees thatÁü¬ I F all matches returned by it have spans consisting of only valid UTF-8.Áüú B ? That is, it is impossible for a match span to be returned thatÁüÁ   contains any invalid UTF-8.Áå �üí 0 - UTF-8 mode generally consists of two things:Á¢ �üª H E 1. Whether the NFA's states are constructed such that all paths to aÁü÷ I F match state that consume at least one byte always correspond to validÁTÅ  UTF-8.ÁüÔ I F 2. Whether all paths to a match state that do _not_ consume any bytesÁü¢ 7 4 should always correspond to valid UTF-8 boundaries.ÁÞ �üæ : 7 (1) is a guarantee made by whoever constructs the NFA.Áü¥< 9 If you're parsing a regex from its concrete syntax, thenÁüæH E [`syntax::Config::utf8`](crate::util::syntax::Config::utf8) can makeÁü³I F this guarantee for you. It does it by returning an error if the regexÁü�K H pattern could every report a non-empty match span that contains invalidÁüÑK H UTF-8. So long as `syntax::Config::utf8` mode is enabled and your regexÁü¡J G successfully parses, then you're guaranteed that the corresponding NFAÁüðG D will only ever report non-empty match spans containing valid UTF-8.Á¼ �üÄH E (2) is a trickier guarantee because it cannot be enforced by the NFAÁü‘I F state graph itself. Consider, for example, the regex `a*`. It matchesÁüßH E the empty strings in `☃` at positions `0`, `1`, `2` and `3`, whereÁü¬I F positions `1` and `2` occur within the UTF-8 encoding of a codepoint,ÁüúD A and thus correspond to invalid UTF-8 boundaries. Therefore, thisÁüÃE B guarantee must be made at a higher level than the NFA state graphÁü�I F itself. This crate deals with this case in each regex engine. Namely,ÁüÛF C when a zero-width match that splits a codepoint is found and UTF-8Áü¦H E mode enabled, then it is ignored and the engine moves on looking forÁœó  the next match.Á‹ �ü“F C Thus, UTF-8 mode is both a promise that the NFA built only reportsÁüÞI F non-empty matches that are valid UTF-8, and an *instruction* to regexÁü¬F C engines that empty matches that split codepoints should be banned.Á÷ �üÿK H Because UTF-8 mode is fundamentally about avoiding invalid UTF-8 spans,ÁüÏK H it only makes sense to enable this option when you *know* your haystackÁüŸD A is valid UTF-8. (For example, a `&str`.) Enabling UTF-8 mode andÁüèK H searching a haystack that contains invalid UTF-8 leads to **unspecifiedÁ|¸ behavior**.ÁÌ �üÔG D Therefore, it may make sense to enable `syntax::Config::utf8` whileÁü K H simultaneously *disabling* this option. That would ensure all non-emptyÁüðK H match spans are valid UTF-8, but that empty match spans may still splitÁüÀA > a codepoint or match at other places that aren't valid UTF-8.Á† �üŽF C In general, this mode is only relevant if your regex can match theÁüÙ% " empty string. Most regexes don't.Áƒ �ü‹  µû,¯ �l· Áˆ-É �üÑ I þ®9üŸ!! Ò¯9Å! �<Í! ãˆ-ÌÙ! óˆ-ü÷!. + nfa::thompson::{self, pikevm::PikeVM},Á¬ª"  Match, Input,Á4Ä" ŸŠ-Ï" �ô×"  let re = PikeVM::new("")?;Áüú"J G let (mut cache, mut caps) = (re.create_cache(), re.create_captures());ÁÉ# �üÑ#( ÿ°9üþ#& û±9ü©$- * re.search(&mut cache, &input, &mut caps);ÁüÛ$= : assert_eq!(Some(Match::must(0, 0..0)), caps.get_match());Á�% �ü¥%D ©³9üî%G ø³9̺& É´9¼Ø& ì´9üô&- õß>ü¦'= : assert_eq!(Some(Match::must(0, 3..3)), caps.get_match());Áè' �üð'H æµ9ô½(  let re = PikeVM::builder()Áüà(6 Ü­3¤›) Õ¶9ü´)- õß>üæ)= : assert_eq!(Some(Match::must(0, 1..1)), caps.get_match());Á¨* �¼°* ð·9üÌ*- õß>üþ*= : assert_eq!(Some(Match::must(0, 2..2)), caps.get_match());ÁÀ+ �¼È+ é¸9üä+- õß>ü–,= Ãá>Ø, �¼à, µ¹9üü,- õß>ü®-' $ assert_eq!(None, caps.get_match());ÁÚ- �üâ-. à�-<•. ãˆ-$¨. àŽàŽBÿ• • — $±. ê·. ü›=- ¤…/  Reverse the NFA.Áž/ �ü¦/D A A NFA reversal is performed by reversing all of the concatenatedÁüï/F C sub-expressions in the original pattern, recursively. (Look aroundÁüº0H E operators are also inverted.) The resulting NFA can be used to matchÁü‡1J G the pattern starting from the end of a string instead of the beginningÁ„Ö1 of a string.Áë1 �üó1I F Reversing the NFA is useful for building a reverse DFA, which is mostÁüÁ2I F useful for finding the start of a match after its ending position hasÁü�3F C been found. NFA execution engines typically do not work on reverseÁüÚ3K H NFAs. For example, currently, the Pike VM reports the starting locationÁüª4% " of matches without a reverse NFA.ÁÔ4 �üÜ4; 8 Currently, enabling this setting requires disabling theÁüœ5I F [`captures`](Config::captures) setting. If both are enabled, then theÁüê5K H compiler will return an error. It is expected that this limitation willÁäº6  be lifted in the future.ÁÛ6 �üã6 ¤š.ˆ7 �l�7 Áˆ-¢7 �üª7J G This example shows how to build a DFA from a reverse NFA, and then useÁüù7  the DFA to search backwards.Áž8 �<¦8 ãˆ-̲8 óˆ-üÐ8  dfa::{self, Automaton},Áüô8, ) nfa::thompson::{NFA, WhichCaptures},ÁÌ¥9 áÁ/4Ã9 ŸŠ-Î9 �üÖ9( % let dfa = dfa::dense::Builder::new()Áüƒ:  .thompson(NFA::config()Áü§:0 - .which_captures(WhichCaptures::None)ÁÔÜ:  .reverse(true)ÁLû: ¯É-ì‰;  .build("baz[0-9]+")?;Áü«;/ ™õ9|ß; ÐŒ-Œó;  expected,Áü‰<; 8 dfa.try_search_rev(&Input::new("foobaz12345bar"))?,Á4É< Ä�-Ô< �üÜ<. à�-<�= ãˆ-<¢= àŽàŽBÿ• • ᪠$®= ê´= üäK? ü…>J G Sets an approximate size limit on the total heap used by the NFA beingÁlÔ> compiled.Áæ> �üî>I F This permits imposing constraints on the size of a compiled NFA. ThisÁü¼?J G may be useful in contexts where the regex pattern is untrusted and oneÁü‹@) & wants to avoid using too much memory.Á¹@ �üÁ@@ = This size limit does not apply to auxiliary heap used duringÁü†A2 / compilation that is not part of the built NFA.Á½A �üÅAH E Note that this size limit is applied during compilation in order forÁü’BD A the limit to prevent too much heap from being used. However, theÁüÛBE B implementation may use an intermediate NFA representation that isÁü¥CH E otherwise slightly bigger than the final public form. Since the sizeÁüòCH E limit may be applied to an intermediate representation, there is notÁü¿DJ G necessarily a precise correspondence between the configured size limitÁüŽE( % and the heap usage of the final NFA.Á»E �üÃE& # There is no size limit by default.ÁîE �löE Áˆ-ˆF �ü�FG D This example demonstrates how Unicode mode can greatly increase theÁ¤ÜF  size of the NFA.ÁõF �<ýF ãˆ-ü‰G= ·³-üËG+ ( use regex_automata::nfa::thompson::NFA;ÁûG �ÔƒH  // 300KB isn't enough!Áœ¢H  NFA::compiler()ÁüºH? < .configure(NFA::config().nfa_size_limit(Some(300_000)))ÁÌþH ‘ò.´œI ´ò.·I �ü¿I!  // ... but 500KB probably is.ÁìåI ±Ã/ü‡J? < .configure(NFA::config().nfa_size_limit(Some(500_000)))ÁÜËJ Àô.ëJ �üóJ% " assert_eq!(nfa.pattern_len(), 1);Á�K �ü¥K. à�-<ØK ãˆ-tëK àŽͶàŽBÿ• • ™ $þK ¹•,„L ü�^, üéLI F Apply best effort heuristics to shrink the NFA at the expense of moreÁ„·M time/memory.ÁÌM �üÔMI F Generally speaking, if one is using an NFA to compile a DFA, then theÁü¢NJ G extra time used to shrink the NFA will be more than made up for duringÁüñNJ G DFA construction (potentially by a lot). In other words, enabling thisÁüÀOK H can substantially decrease the overall amount of time it takes to buildÁT�P Ðñ0ŸP �ü§PG D A reason to keep this disabled is if you want to compile an NFA andÁüóPI F start using it as quickly as possible without needing to build a DFA,ÁüÁQI F and you don't mind using a bit of extra memory for the NFA. e.g., forÁü�R( % an NFA simulation or for a lazy DFA.Á¼R �üÄRC @ NFA shrinking is currently most useful when compiling a reverseÁüŒSF C NFA with large Unicode character classes. In particular, it tradesÁü×SK H additional CPU time during NFA compilation in favor of generating fewerÁ|§T NFA states.Á»T �üÃTE B This is disabled by default because it can increase compile timesÁü�U2 / quite a bit if you aren't building a full DFA.ÁÄU �lÌU Áˆ-ÞU �üæUG D This example shows that NFA shrinking can lead to substantial spaceÁü²VJ G savings in some cases. Notice that, as noted above, we build a reverseÁü�W? < DFA and use a pattern with a large Unicode character class.ÁÅW �<ÍW ãˆ-üÙW= ·³-ü›X< 9 use regex_automata::nfa::thompson::{NFA, WhichCaptures};ÁÜX �üäXG D // Currently we have to disable captures when enabling reverse NFA.Áô°Y  let config = NFA::config()ÁüÓY, ) .which_captures(WhichCaptures::None)Á¼„Z  .reverse(true);Áü Z$ ! let not_shrunk = NFA::compiler()ÁüÉZ0 - .configure(config.clone().shrink(false))Á¼þZ  .build(r"\w")?;Áüš[  let shrunk = NFA::compiler()Áü¿[/ , .configure(config.clone().shrink(true))Á¼ó[ ¾’?�\ �ü—\K H // While a specific shrink factor is not guaranteed, the savings can beÁüç\"  // considerable in some cases.ÁüŽ]C @ assert!(shrunk.states().len() * 2 < not_shrunk.states().len());ÁÖ] �üÞ]. à�-<‘^ ãˆ-4¤^ àŽàŽBÿ• • š $¯^ êµ^ ü›i* ü…_3 0 Whether to include 'Capture' states in the NFA.Á½_ �üÅ_; Àì>ü…`G D [`reverse`](Config::reverse) setting. If both are enabled, then theÁüÑ`K Øí>ä¡a ¬î>Âa �üÊa µû,îa �löa Áˆ-ˆb �ü�bH E This example demonstrates that some regex engines, like the Pike VM,ÁüÝbE B require capturing states to be present in the NFA to report matchÁd§c offsets.Á¸c �üÀcF C (Note that since this method is deprecated, the example below usesÁü‹d: 7 [`Config::which_captures`] to disable capture states.)ÁÊd �<Òd ãˆ-üÞd( % use regex_automata::nfa::thompson::{Á¼‹e  pikevm::PikeVM,Ád§e NFA,Á´¸e  WhichCaptures,Á4Óe ŸŠ-Þe �ôæe £â>ü‰fD A .thompson(NFA::config().which_captures(WhichCaptures::None))ÁÜÒf ®Ý.üòf& # let mut cache = re.create_cache();Á�g �ü¥g, ) assert!(re.is_match(&mut cache, "abc"));ÁüÖg1 . assert_eq!(None, re.find(&mut cache, "abc"));ÁŒh �ü”h. à�-<Çh ãˆ-0.3.5Áuse which_captures insteadÁäøh üÓhC D¢i àž?éž?-àŽàŽBÿ• • › $«i ê±i üï{H üÓj= : Configures what kinds of capture groups are compiled intoÁü•kH E [`State::Capture`](crate::nfa::thompson::State::Capture) states in aÁŒâk  Thompson NFA.Áøk �ü€lK H Currently, using any option except for [`WhichCaptures::None`] requiresÁüÐlC @ disabling the [`reverse`](Config::reverse) setting. If both areÁü˜mH E enabled, then the compiler will return an error. It is expected thatÁüåm1 . this limitation will be lifted in the future.Á›n �ü£nI F This is set to [`WhichCaptures::All`] by default. Callers may wish toÁüñnF C use [`WhichCaptures::Implicit`] in cases where one wants avoid theÁü¼oG D overhead of capture states for explicit groups. Usually this occursÁüˆpG D when one wants to use the `PikeVM` only for determining the overallÁüÔpE B match. Otherwise, the `PikeVM` could use much more memory than isÁtžq necessary.Á±q �l¹q Áˆ-Ëq �üÓqH �˜?ü rE ï˜?dêr ½™?ûr �<ƒs ãˆ-ü�s( Œ›?¼¼s ½›?dØs Ý›?´és ò›?4„t ŸŠ-�t �ô—t £â>üºtD ¸œ?܃u ®Ý.ü£u& “�?Îu �üÖu, Ï�?ü‡v1 …ž?½v �üÅv. à�-<øv ãˆ-„w �üŒw0 - The same applies to the bounded backtracker:ÁÁw �<Éw ãˆ-üÕw( Œ›?ü‚x& # backtrack::BoundedBacktracker,Ád­x Ý›?´¾x ò›?4Ùx ŸŠ-äx �üìx* ' let re = BoundedBacktracker::builder()Áü›yD ¸œ?Üäy ®Ý.ü„z& “�?¯z �ü·z1 . assert!(re.try_is_match(&mut cache, "abc")?);Áüíz6 3 assert_eq!(None, re.try_find(&mut cache, "abc")?);Á¨{ �ü°{. à�-<ã{ ãˆ-tö{ àŽè�àŽBÿ• • »Ù$‰| ûft�| üÔ‡7 ü†}C @ Sets the look-around matcher that should be used with this NFA.ÁÎ} �üÖ}I F A look-around matcher determines how to match look-around assertions.Áü¤~E B In particular, some assertions are configurable. For example, theÁüî~K H `(?m:^)` and `(?m:$)` assertions can have their line terminator changedÁü¾/ , from the default of `\n` to any other byte.Áò �lú Áˆ-Œ€ �ü”€K H This shows how to change the line terminator for multi-line assertions.Áä€ �<ì€ ãˆ-Ìø€ óˆ-ü–�. ãÝ>üÉ�  util::look::LookMatcher,Á¬î� šÞ>4ˆ‚ ŸŠ-“‚ �ü›‚' $ let mut lookm = LookMatcher::new();ÁüÇ‚' $ lookm.set_line_terminator(b'\x00');Áó‚ �ôû‚ £â>üžƒ> ; .thompson(thompson::Config::new().look_matcher(lookm))Áüáƒ!  .build(r"(?m)^[a-z]+$")?;Áü‡„& “�?²„ �üº„9 6 // Multi-line assertions now use NUL as a terminator.Á|ø„ ÐŒ-üŒ…# Some(Match::must(0, 1..4)),Áü´…, ) re.find(&mut cache, b"\x00abc\x00"),Á4å… Ä�-üð…: 7 // ... and \n is no longer recognized as a terminator.Á|¯† ÐŒ-lÆ Ü‘-üÕ†( % re.find(&mut cache, b"\nabc\n"),Á4‚‡ Ä�-�‡ �ü•‡. à�-<ȇ ãˆ-dÛ‡ àŽµÐàŽBÿ• • � $ì‡ £ ò‡ ôë‹ ü¨‹> ; Returns whether this configuration has enabled UTF-8 mode.ÁDò‹ û+ û+àŽBÿ•  û‹ • ÿ£$ü‹ ü‰�! ü¹ŒK H Returns whether this configuration has enabled reverse NFA compilation.Á\�� ü+ ü+àŽBÿ•  œ� • Üž$�� üÇŽ1 üÞ�H E Return the configured NFA size limit, if it exists, in the number ofÁ¼«Ž  bytes of heap used.Á”ÎŽ ý+ ý+àŽͶBÿ•  Ꭰ• Ö©$⎠üã� ü²�, ) Return whether NFA shrinking is enabled.ÁTê� þ+ þ+àŽBÿ•  õ� • ¡ $ö� üÒ‘" ü¶�K H Return whether NFA compilation is configured to produce capture states.Áàž?use get_which_captures insteadÁü«‘ ü†‘G dÙ‘ àž?ð¾?1ÿ+ ÿ+àŽBÿ•  æ‘ • ¢ $ç‘ ü÷’1 ü­’E B Return what kinds of capture states will be compiled into an NFA.Á”þ’ €, €,àŽè�Bÿ•  ‘“ • ®Ÿ$’“ ü¥”- üð“0 - Return the look-around matcher for this NFA.Á„¬” �, �,àŽµÐBÿ•  ½” • â§$¾” ü¾–' ¬Á– ñ‚, ‚,àŽBÿ•  ×– • Õ®$Ø– üŒš3 Lšš ƒ, ƒ,àŽàŽàŽBÿ•  ¤š • ¦ $¥š ¥ «š —� ¦ �§ �§ �§ § ¦ § ·åUÿòæôž² è�© ÷© ìò <Ʋ è�Bÿ¨ ¨ © ”‡³ è�« ¬ ì’´ ü ³G D Returns true if this configuration indicates that no capture statesÁüì³!  should be produced in an NFA.Á<™´ ˆ, ˆ,è�Bÿª  ¡´ ª « $¢´ ä±¶ üê´I F Returns true if this configuration indicates that some capture statesÁü¸µH E should be added to an NFA. Note that this might only include captureÁü…¶' $ states for implicit capture groups.Á4¸¶ ‰, ‰,è�Bÿª  ¿¶ ª æŸ$À¶ l»á ã�® ¯ ° ² ³ µ ¶ Ä�â üÏá< 9 Create a new NFA builder with its default configuration.Á—â ã�Bÿ­ ­ ® ü™î= üˆå= : Compile the given regular expression pattern into an NFA.ÁÊå �üÒåJ G If there was a problem parsing the regex, then that error is returned.Á¡æ �ü©æH E Otherwise, if there was a problem building the NFA, then an error isÁüöæJ G returned. The only error that can occur is if the compiled regex wouldÁüÅçH E exceed the size limits configured on this builder, or if any part ofÁü’èH E the NFA would exceed the integer representations used. (For example,Áüßè> ; too many states might plausibly occur on a 16-bit target.)Á¢é �lªé Áˆ-¼é �<Äé ãˆ-üÐéF C use regex_automata::{nfa::thompson::{NFA, pikevm::PikeVM}, Match};Á›ê �ü£ê; 8 let config = NFA::config().nfa_size_limit(Some(1_000));ÁüãêC @ let nfa = NFA::compiler().configure(config).build(r"(?-u)\w")?;Á«ë �ü³ë( % let re = PikeVM::new_from_nfa(nfa)?;Áüàë& “�?ü‹ì( % let mut caps = re.create_captures();Áü¸ì. + let expected = Some(Match::must(0, 3..4));Áüëì2 / re.captures(&mut cache, "!@#A#@!", &mut caps);Áü¢í+ ( assert_eq!(expected, caps.get_match());ÁÒí �üÚí. à�-<�î ãˆ-, î Ž,�, Ž,ã� �,ïáBÿ­  ¦î ­ ¯ $§î ¿‰<­î üýõi üˆïD A Compile the given regular expression patterns into a single NFA.ÁÑï �üÙïI ›½/ü§ð# ï½/Ïð �l×ð Áˆ-éð �<ñð ãˆ-üýðF …Ð?Èñ �üÐñ; ãÐ?ü�ò= : let nfa = NFA::compiler().configure(config).build_many(&[ÁœÒò  r"(?-u)\s",Áœêò  r"(?-u)\w",ÁD‚ó  ])?;Á�ó �ü—ó( „Ò?üÄó& “�?üïó( ÆÒ?üœô. + let expected = Some(Match::must(1, 1..2));ÁüÏô2 / re.captures(&mut cache, "!A! !A!", &mut caps);Áü†õ+ ïÓ?¶õ �ü¾õ. à�-<ñõ ãˆ-T„ö �,‘, �,ã� ‘,ôàïáBÿ­ Œ± ±  §ö ­ ‹À/ �ö �À/T’ö ±Ú$¨ö ÝwtÊ!#ü€…C üÊùI F Compile the given high level intermediate representation of a regularÁܘú  expression into an NFA.Á¸ú �üÀúK H If there was a problem building the NFA, then an error is returned. TheÁü�ûG D only error that can occur is if the compiled regex would exceed theÁüÜûK H size limits configured on this builder, or if any part of the NFA wouldÁü¬üJ G exceed the integer representations used. (For example, too many statesÁüûü. + might plausibly occur on a 16-bit target.)Á®ý �l¶ý Áˆ-Èý �<Ðý ãˆ-üÜýF …Ð?ü§þE B use regex_syntax::hir::{Hir, Class, ClassBytes, ClassBytesRange};Áñþ �üùþ; 8 let hir = Hir::class(Class::Bytes(ClassBytes::new(vec![Áü¹ÿ) & ClassBytesRange::new(b'0', b'9'),Áüçÿ) & ClassBytesRange::new(b'A', b'Z'),Áü•€) & ClassBytesRange::new(b'_', b'_'),ÁüÀ) & ClassBytesRange::new(b'a', b'z'),ÁLñ€  ])));Áÿ€ �ü‡�; ãÐ?üÇ�F C let nfa = NFA::compiler().configure(config).build_from_hir(&hir)?;Á’‚ �üš‚( „Ò?üÇ‚& “�?üò‚( ÆÒ?üŸƒ. ùÒ?üÒƒ2 ²Ó?ü‰„+ ïÓ?¹„ �üÁ„. à�-<ô„ ãˆ-t‡… ’,“, ’,ã� “,’ŠïáBÿ­  –… ­ ² $—… ²$�… ü¥‘p üû…H E Compile the given high level intermediate representations of regularÁüȆ"  expressions into a single NFA.Áï† �ü÷†I ›½/üŇ# ï½/í‡ �lõ‡ Áˆ-‡ˆ �<�ˆ ãˆ-ü›ˆF …Ð?üæˆE ‘à?°‰ �Œ¸‰  let hirs = &[ÁüΉ5 2 Hir::class(Class::Bytes(ClassBytes::new(vec![ÁüˆŠ/ , ClassBytesRange::new(b'\t', b'\r'),Áü¼Š- * ClassBytesRange::new(b' ', b' '),ÁlîŠ ]))),Áü€‹5 °è?üº‹- * ClassBytesRange::new(b'0', b'9'),Áüì‹- * ClassBytesRange::new(b'A', b'Z'),ÁüžŒ- * ClassBytesRange::new(b'_', b'_'),ÁüÐŒ- * ClassBytesRange::new(b'a', b'z'),Ál‚� áé?4”� í©:Ÿ� �ü§�; ãÐ?üç�K H let nfa = NFA::compiler().configure(config).build_many_from_hir(hirs)?;Á·Ž �ü¿Ž( „Ò?üìŽ& “�?ü—�( ÆÒ?üÄ�. ëØ?ü÷�2 ¤Ù?ü®�+ ïÓ?Þ� �üæ�. à�-<™‘ ãˆ-œ¬‘ ”,•, ”,ã� •,ÏœïáBÿ­ „´ ´  Ù‘ ­ þÆò› À‘ Íò›’Š\Ñ ³ ò›$Ú‘ ì›ÕÍ46üá•< ü¿’> ; Apply the given NFA configuration options to this builder.Á‚“ �lŠ“ Áˆ-œ“ �<¤“ ãˆ-ü°“+ ™ÿ>à“ �üè“; ãÐ?ü¨”C ©Ñ?üð”% ¢‚?š• �ü¢•. à�-<Õ• ãˆ-Lè• –, –,ã�àŽÊò?Bÿ­  ò• ­ ïÙ$÷• Ø4ý• üÍ�e üí–7 ÚÈ/ü©—4 œÉ/â— �üê—J èÉ/t¹˜ ¼Ê/̘ �üÔ˜H E This syntax configuration only applies when an NFA is built directlyÁü¡™J G from a pattern string. If an NFA is built from an HIR, then all syntaxÁÌð™  settings are ignored.ÁŽš �l–š Áˆ-¨š �<°š ãˆ-ü¼š; 8 use regex_automata::{nfa::thompson::NFA, util::syntax};Áüš �ü„›= : let syntax_config = syntax::Config::new().unicode(false);ÁüÆ›B ? let nfa = NFA::compiler().syntax(syntax_config).build(r"\w")?;Áü�œJ G // If Unicode were enabled, the number of states would be much bigger.ÁüÜœ% " assert!(nfa.states().len() < 15);Á†� �üŽ�. à�-<Á� ãˆ-4Ô� —, —,ã�Ëïšù?Bÿ­  ä� ­ ¶ $é� Ø4÷� lóž ã�¸ ¼ Á Ã Æ È É Ê Ë Í Î Ð Ñ Ó Ô Õ × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç ü¦¡I <©¡ ñ˜,™, ˜,ã� ™,ÏœïáBÿ· „¹ ¹  Á¡ · äï? ±¡ öï?\´¡ ì›Äìì›*à!#�ª ¸ �º �º �º º ¸ þ­Ó® ¸ �» �» �» » ¸ ÷µü‚´: …´ ñš,›, š,ã� ›,’Šž°Bÿ·  ‡´ · ¼ $ˆ´ ²$Ž´ ŒË´ ,ß´ <æ´ ö¸ ¼ �À �À �À À ¼ À þÆž°Uÿ‹­üž¼• D¡¼ ñœ, œ,ã�øèž°Bÿ· …   ­¼ · þÆøè ª¼ ÔPøèü÷¼; ÅQøèž°ü‹½& Á øè$®¼ Ç,¸¼ GIüÞÅG \áÅ ñ�,ž, �,ã� ž,×™ž°Bÿ·  íÅ · à $îÅ ì›,ôÅ ®Ç à �Ä �Ä �Ä Ä à Ä  þÆUÿ˜É à �Å �Å �Å Å à Å êþ?‹­ü´ÑŒ T·Ñ ñŸ, Ÿ,ã�øèž°Bÿ· …Ç Ç  ÅÑ · Þÿ? ÂÑ ÄQøèü�Ò0 ‚€@ü˜Ò& Æ øè$ÆÑ Ç,ÐÑ ;=üõÛ… ,øÛ ñ ,¡,¢,  ,ã�řǙș­É™Ê™àË™óG*¤�R{9  ¡, ¢,’Šž°Bÿ·  ‡Ü · ÛÞ$ˆÜ ÷,–Ü ‚ $ªÜ ²$ÆÜ ü‹ãg dŽã ñ£,¤, £,ã� ¤,ÞÞ RepetitionÁß«Uà ‹ágreedyÁâ¤ïe£D:Wüfž°Bÿ·  ¤ã · É $¥ã repÁ³ã üüè“ Lÿè ñ¥,¦, ¥,ã� ¦,’Šž°Bÿ·  ’é · Ê $“é ²$¡é ý…@4µé «UËé  ‹Ýé üÞû€ Táû ñ§,¨, §,ã� ¨,’Šž°Bÿ·  õû · ð²$öû ²$„ü ý…@4˜ü ¤ ®ü ,Çÿ Ë �Ì �Ì �Ì Ì Ë Ì ‹«2üñ”s lô” ñ©,ª, ©,ã� ª,’Šž°Bÿ·  ‹• · Í $Œ• ²$š• ý…@4®• üŒ™i L�™ ñ«,¬, «,ã� ¬,’Šž°Bÿ·  ¢™ · Î $£™ ²$±™ ¤ Å™ ”š Î �Ï �Ï �Ï Ï Î Ï ž°UÿÉÔþÆü Ÿg d£Ÿ ñ­,®, ­,ã� ®,ëë ClassBytesÁì %ãÊœ<\=Fž°Bÿ·  ¹Ÿ · Ð $ºŸ clsÁÈŸ ü¦¨l |©¨ ñ¯,°, ¯,ã� °,ÇÇ ClassUnicodeÁÈ %ã÷TM�vÚyž°Bÿ·  ¨ · Ñ $è ã�@Ѩ ,º¾ Ñ �Ò �Ò �Ò Ò Ñ Ò   º±·ªUÿ úœüöÜ€ üùÜ# ñ±,², ±,ã� ²,±�@ž°Bÿ·  ¦Ý · Ó $§Ý ã�@µÝ ü²éG 4µé ñ³,´, ³,ã� ´,¥×ž°Bÿ·  ¼é · Ô $½é anchorÁ4Ãé üôóD L÷ó ñµ,¶, µ,ã� ¶,³÷ž°Bÿ·  �ô · Õ $‚ô ¹•,ˆô ëô Õ �Ö �Ö �Ö Ö Õ Ö ý´;ž°Uÿ‹­üÛ÷H <Þ÷ ñ·, ·,ã�ž°Bÿ·  æ÷ · × $ç÷ ‚,í÷ ’ø÷ ü›û4 <žû ñ¸, ¸,ã�ž°Bÿ·  ¦û · ë¯$§û üýü3 4€ý ñ¹, ¹,ã�ž°Bÿ·  ‡ý · Äñ$ˆý üŸ�E ,¢� ñº, º,ã�³ä³ä·ªBÿ·  ¨� · ¿¸$©� ”$¯� ‘×1¾� ü¤‚8 l§‚ ñ», »,ã�ÿÛBÿ·  µ‚ · ÏÛ$¶‚ üœƒc tŸƒ ñ¼, ¼,ã�³äÿÛBÿ·  ·ƒ · ¸ä$¸ƒ èïDƃ üÈ„2 LË„ ñ½, ½,ã�€áBÿ·  Õ„ · ¬ö$Ö„ ü¶…F L¹… ñ¾, ¾,ã�€áBÿ·  Ã… · Þ $Ä… ‚,Ê… ’Õ… ü“‡c T–‡ ñ¿, ¿,ã�˜þ€áBÿ·  ª‡ · ß $«‡ †€4¹‡ ü¹ˆA D¼ˆ ñÀ, À,ã�¨Ë€áBÿ·  ň · à $ƈ ñ¢$Ј ü•Š2 L˜Š ñÁ, Á,ã�€áBÿ·  ¢Š · åô$£Š ü‰‹: ŒŒ‹ ñÂ, Â,ã�€áBÿ·  ž‹ · â $Ÿ‹ ü�Œ� Œ�Œ ñÃ,Ä, Ã,ã�řǙș­É™Ê™àË™óG*¤�R{9  Ä,€áBÿ·  «Œ · ã $¬Œ  capture_indexÁlºŒ ‚ $ÖŒ üËŽc |ÎŽ ñÅ, Å,ã�€áBÿ·  çŽ · ä $èŽ ¶ž@löŽ üŒ�1 D�� ñÆ, Æ,ã�€áBÿ·  ˜� · å $™� üø�2 Lû� ñÇ, Ç,ã�€áBÿ·  …‘ · •à$†‘ äæ‘ Té‘ ñÈ, È,ã�Bÿ·  ô‘ · ç $õ‘ tÙ¡ ™“é ê ¬î¡ ñ¡ ñ™“Bÿè è é œá¢ ,ä¢ ñÜ, Ü,™“Bÿè  ê¢ è ê $ï¢ ÌÀ£ �ì ì Å’í î ï ò ó ô õ ö ÷ ø Å£ üà£y 㣠ñ �³� �™“ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÅ’‚•Bÿë ë í �å<𣠃,’¤ ü—¦7 4š¦ ñÝ, Ý,Å’ž°Bÿë  ¡¦ ë î �$¦¦ üü§A ÿ§ ñÞ,ß, Þ,Å’ ß,ü�@·ªBÿë  ƒ¨ ë ï �$ˆ¨ †€4ލ „µ© ï �ð �ð �ð ð ï ð  õº̧Uÿù© ï �ñ �ñ �ñ ñ ï ñ Û¬Uÿõºü–¬A d™¬ ñà, à,Å’·ªBÿë  ¦¬ ë ò �$«¬ ”$±¬ üÓ®b <Ö® ñá, á,Å’˜þ€áBÿë  ç® ë ó �$ì® nodeÁ$ú® üÖ±. TÙ± ñâ,ã, â,Å’ ã,ü�@Bÿë  ä± ë ô �$é± †€4ï± ¼ý¶ L€· ñä, ä,Å’Bÿë  Š· ë õ �$�· üî·: Tñ· ñå, å,Å’³ä˜þBÿë  ü· ë ö �$�¸ ¥ $‡¸ üÀ¹) Dù ñæ, æ,Å’˜þBÿë  ̹ ë ÷ �$ѹ ü©», |¬» ñç, ç,Å’³äBÿë  ¼» ë ø �$Á» ¥ $Ç» lº½ è“ú üν0 œÑ½ ñè, è,蓳äBÿù  å½ ù ú $ê½ ¥ $ð½ LÈ,̶«±ëfD÷ û ý ñ¢$!Ûû þ ÒÏL8ú!û € áÐ4Þ'ó, ó,‚•řǙș­É™Ê™àË™óG*¤�R{9  ó,Û€3Bÿ�  å'� Ž $æ'üÿ)&‚•� ¥g� ü¬*D¯*ô,õ,ö, ô,‚• õ,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ö,ÏÁBÿ�  ³*� � $´*œ º*„îÓΔÙÔÓdò¶ËÐÙàè˜  ô‘ ’ – Ð=‘ ” –‘ ” ü& …C‘ • Û$N ¶‘ ˜ ü“\^ …‘ ™ üüTk «‘ š Œ ½÷‚Ðüõ7m <ƒ8 û,ü, û,ê— ü,³�ž°BÿŸ  ”8 Ÿ ¦ $•8 å<£8 üÏb% ê—¨  g¨ üûb@ þb ý,þ,ÿ, ý,ê— þ,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ÿ,ÏÁBÿ§  ‚c § ¨ $ƒc œ ‰c ”úr �ª ª ¸˜« ÿr üît% ñt ‘  �—™¸˜Bÿ© © « �ƒ,õt T˜„ —™­ ® ¯ ° ± ¼Ÿ… L¢… ‘ „- „-—™Bÿ¬  ¬… ¬ ­ $±… Ì™Œ <œŒ ‘ …- …-—™Bÿ¬  ¤Œ ¬ ® $¥Œ üêŽ' 4íŽ ‘ †- †-—™ààΚâ -‘ ã¯s‘ äýš‘ ÿ„‚�D›p†-Bÿ¬  ôŽ ¬ ¯ $õŽ üƒ‘' d†‘ ‘ ‡- ‡-—™ ‡-¤ÝBÿ¬  “‘ ¬ ° $”‘ üÖ’% ”Ù’ ‘ ˆ- ˆ-—™Bÿ¬  ì’ ¬ ± $í’ \£“ ± �² �² �² ² ± ²  †ÙUÿü½“ —™´  g´ üã“@ æ“ ‰-Š-‹- ‰-—™ Š-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‹-ÏÁBÿ³  ê“ ³ ´ $ë“ œ ñ“ üЛ) �¶ ¶ î™· ¸ ÅQÆQ¸ Õ› L€œ $…œ µ µ �¤Ýü£œ. $¦œ �- �-î™Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ƒÏ@Bÿµ  «œ µ ¸ �$°œ üÅŸ$ Κº  gº üðŸ@ óŸ ‘-’-“- ‘-Κ ’-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡“-ÏÁBÿ¹  ÷Ÿ ¹ º $øŸ œ þŸ <›ÓΔ†Ô€Ÿ¶Æ Ç ï÷�‰˜–§ Ð=» ½ –» ½ ü± …C» ¾  ›TØ ð» À ’ âè,þ «» à —ç… —» Ä áÐ<Ÿ �"» Å ,Ÿ šœD¬ z,¼ ÌÉ nü¼0 ü¼? `bNPœ“ @„± ,· » |Ó $Ù » œµ) ²›É Ê Ë Ì Í üó,- ú, ²›BÿÈ È É ÀÛDþ, ¼©/ ,°/ œ- œ-²›BÿÈ  ¶/ È Ê $»/ üˆ4/ $�4 �-ž- �-²› ž-ðõBÿÈ  ”4 È Ë $•4 Ü›4 üç8I î8 Ÿ- - Ÿ-²›  -ðõ¨¨BÿÈ  ò8 È Ì $÷8 Üý8 Æ$‘9 üñ=r ø= ¡- ¡-²›˜þ³äBÿÈ  …> È Í $Š> ܘ> Æ$¶> öDË> ”ÎJ ñœÏ Ð Ñ Ô Õ ü‹N, ’N ñœBÿÎ Î Ï ÀÛD–N ¼¿P ,ÆP ±- ±-ñœBÿÎ  ÌP Î Ð $ÑP üÍS0 $ÔS ²-³- ²-ñœ ³-Ë�BÿÎ  ÙS Î Ñ $ÚS ÜàS „‰U ,�U » |³U $¹U » üÒYi ÙY ´-µ- ´-ñœ µ-Ë�¨¨BÿÎ  æY Î Ô $ëY ÜùY Æ$–Z ü­^I ´^ ¶- ¶-ñœË�³äBÿÎ  ¸^ Î Õ $½^ ÜÃ^ Æ$×^ öDä^ <¤¨¶¢£§¹Úåð€ñ ûcÖ Ø ˜  ôÖ Ù öÃ* ŸÖ Û formatÁ4/ Ö Ü å4? ëIÖ Ý KM „KÖ Þ –R Ð=Ö ß –Ö ß ü\ …CÖ à ý’D© úÖ ã ªö4³ àÖ ä üüTÇ «Ö å ½÷<ÿ ÐÖ ç þ�$§ ™ Ö ê ߯d­ ŸÖ ë ¬\» ÷Ö ì ÿ³LÜ äÖ î ¸µtç öÖ ï šŽ$‡ ûÖ ñ ßÄ\� Ð Ö ò ÑÃ<š ½ Ö ó ÈÄ„Æ ’Ö õ ÒÏLØ ú!Ö ö µÖlã ó"Ö ÷ ¡ÍTò Ò!Ö ø áÐ<þ �"Ö ù ÏñL¦ “&Ö ú $ EH7:, T# .t7  LG ÿîñDW Ф‚ ÓΔi Ôc ü‚$ ÓÎçÓÎ('ùæÓÎ=<øŒÀ ÓÎSRø,Ú üç îüÚ6 üÚJ åDœ ÖÙÆÉüÚ »¾«®üÚª ¡¤‘”�„üÚÜ wzgjWZGJ7:¬š +DµD ²Ÿü ý ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • ü¡J4 üÄDH õÑ/Ì‘E  build an NFA from it.Á¯E �ü·E= : If you want a non-default configuration, then use the NFAÁüùE# [`Compiler`] with a [`Config`].Á¡F �l©F Áˆ-»F �<ÃF ãˆ-üÏF? < use regex_automata::{nfa::thompson::pikevm::PikeVM, Match};Á“G �ü›G( % let re = PikeVM::new(r"foo[0-9]+")?;ÁüÈGJ ùÞ>—H �üŸH. + let expected = Some(Match::must(0, 0..8));ÁüÒH4 1 re.captures(&mut cache, b"foo12345", &mut caps);Áü‹I+ ïÓ?»I �üÃI. à�-<öI ãˆ-ÓΔˆJ Ô‚J ¨J ¸- ¸-ïáBÿû  µJ û ü ¿‰<¬J ü€QI üŠKI ò×/üØK  build a multi-NFA from them.ÁýK �ü…L= ¦ä@üÇL# íä@ïL �l÷L Áˆ-‰M �<‘M ãˆ-ü�M? Ìå@áM �üéM6 3 let re = PikeVM::new_many(&["[0-9]+", "[a-z]+"])?;Áü¤NJ ùÞ>óN �üûN. + let expected = Some(Match::must(1, 0..3));Áü®O7 4 re.captures(&mut cache, b"foo12345bar", &mut caps);ÁüêO+ ïÓ?šP �ü¢P. à�-<ÕP ãˆ-ÓΔçP ÔáP D‡Q ¹- ¹-ôàïáBÿû Œþ þ  ©Q û ‹À/ �Q �À/T“Q ý £ÛÝwIäºW ü„RK H Returns an NFA with a single regex pattern that always matches at everyÁlÔR position.ÁæR �lîR Áˆ-€S �<ˆS ãˆ-ü”SF …Ð?ßS �üçS8 5 let re = PikeVM::new_from_nfa(NFA::always_match())?;Áü¤TJ ùÞ>óT �üûT. + let expected = Some(Match::must(0, 0..0));Áü®U, ) re.captures(&mut cache, b"", &mut caps);ÁüßU+ ïÓ?ü�V/ , re.captures(&mut cache, b"foo", &mut caps);ÁüÃV+ ïÓ?óV �üûV. à�-<®W ãˆ-dÁW ²ŸBÿû û ÿ Üùe üë`6 3 Returns an NFA that never matches at any position.Á¦a �ü®aI F This is a convenience routine for creating an NFA with zero patterns.Áüa �l„b Áˆ-–b �<žb ãˆ-üªb= : use regex_automata::nfa::thompson::{NFA, pikevm::PikeVM};Áìb �üôb7 4 let re = PikeVM::new_from_nfa(NFA::never_match())?;Áü°cJ ùÞ>ÿc �ü‡d, ˜ð@ô¸d  assert!(!caps.is_match());ÁüÛd/ Üð@ô�e �õ@²e �üºe. à�-<íe ãˆ-\€f ²ŸBÿû û € ÌÊn ü¦h0 - Return a default configuration for an `NFA`.ÁÛh �üãhI F This is a convenience routine to avoid needing to import the `Config`Áü±i5 2 type when customizing the construction of an NFA.Áëi �lói Áˆ-…j �ü�jG D This example shows how to build an NFA with a small size limit thatÁüÙjG D results in a compilation error for any regex that tries to use moreÁü¥k* ' heap memory than the configured limit.ÁÔk �<Ük ãˆ-üèk= Òó@ªl �ü²l"  let result = PikeVM::builder()ÁüÙl< 9 .thompson(NFA::config().nfa_size_limit(Some(1_000)))ÁüšmB ? // Remember, \w is Unicode-aware by default and thus huge.Á¼ám  .build(r"\w+");Áìým ½Î=<Ÿn ãˆ-ÓΔ±n Ô«n 4Ñn àŽBÿû û � ìÏw ü‡oC @ Return a compiler for configuring the construction of an `NFA`.ÁÏo �ü×o@ ·é/üœp& # [`Compiler`] type in common cases.ÁÇp �lÏp Áˆ-áp �üépJ G This example shows how to build an NFA that is permitted match invalidÁü¸qK H UTF-8. Without the additional syntax configuration here, compilation ofÁüˆrH E `(?-u:.)` would fail because it is permitted to match invalid UTF-8.ÁÕr �<Ýr ãˆ-Ìér óˆ-ü‡s& # nfa::thompson::pikevm::PikeVM,Á¬²s  util::syntax,ÁtÌs Match,Á4ßs ŸŠ-ês �ôòs £â>ü•t2  ­3üÌt"  .build(r"[a-z]+(?-u:.)")?;ÁüótJ ùÞ>Âu �üÊu. + let expected = Some(Match::must(0, 1..5));Áüýu7 4 re.captures(&mut cache, b"\xFFabc\xFF", &mut caps);Áü¹v+ ïÓ?év �üñv. à�-<¤w ãˆ-ÓΔ¶w Ô°w DÖw ã�Bÿû û å‘üã}) ü’xA > Returns an iterator over all pattern identifiers in this NFA.ÁØx �üàxE B Pattern IDs are allocated in sequential order starting from zero,ÁüªyH E where the order corresponds to the order of patterns provided to theÁü÷y"  [`NFA::new_many`] constructor.Ážz �l¦z Áˆ-¸z �<Àz ãˆ-üÌz8 5 use regex_automata::{nfa::thompson::NFA, PatternID};Á‰{ �ü‘{> ; let nfa = NFA::new_many(&["[0-9]+", "[a-z]+", "[A-Z]+"])?;ÁüÔ{8 5 let pids: Vec = nfa.patterns().collect();ÁÔ‘|  assert_eq!(pids, vec![Áܰ|  PatternID::must(0),ÁÜÐ|  PatternID::must(1),ÁÜð|  PatternID::must(2),Á<�} åÑ3œ} �ü¤}. à�-<×} ãˆ-Dê} º- º-²Ÿ€€þ¤‚Ç,Ö ƒ¡¥Ö /�#U"ˆº-Bÿû  ó} û ƒ $ô} ü¿†" üŸ; 8 Returns the total number of regex patterns in this NFA.Áß �üçH E This may return zero if the NFA was constructed with no patterns. InÁü´€? < this case, the NFA can never produce a match for any input.Áø€ �ü€�H E This is guaranteed to be no bigger than [`PatternID::LIMIT`] becauseÁüÍ�> ; NFA construction will fail if too many patterns are added.Á�‚ �ü˜‚I F It is always true that `nfa.patterns().count() == nfa.pattern_len()`.Áæ‚ �lî‚ Áˆ-€ƒ �<ˆƒ ãˆ-ü”ƒ+ ™ÿ>ă �ü̃> ͇Aü�„% " assert_eq!(3, nfa.pattern_len());Á¹„ �üÁ„!  let nfa = NFA::never_match();Áüç„% " assert_eq!(0, nfa.pattern_len());Á‘… �ü™…"  let nfa = NFA::always_match();ÁüÀ…% " assert_eq!(1, nfa.pattern_len());Áê… �üò…. à�-<¥† ãˆ-\Ɔ »- »-²ŸBÿû  Ò† û „ $Ó† ü��' ü’‡J G Return the state identifier of the initial anchored state of this NFA.Áᇠ�üé‡F C The returned identifier is guaranteed to be a valid index into theÁü´ˆF C slice returned by [`NFA::states`], and is also a valid argument toÁœÿˆ  [`NFA::state`].Á—‰ �lŸ‰ Áˆ-±‰ �ü¹‰G D This example shows a somewhat contrived example where we can easilyÁü…Š( % predict the anchored starting state.Á²Š �<ºŠ ãˆ-üÆŠC @ use regex_automata::nfa::thompson::{NFA, State, WhichCaptures};ÁŽ‹ �ì–‹ ±Ã/ü¸‹E B .configure(NFA::config().which_captures(WhichCaptures::None))Á¬‚Œ  .build("a")?;ÁüœŒ0 - let state = nfa.state(nfa.start_anchored());Á”ÑŒ  match *state {ÁüèŒ' $ State::ByteRange { trans } => {Áü”�* ' assert_eq!(b'a', trans.start);ÁüÃ�( % assert_eq!(b'a', trans.end);ÁLð� âÙ7üþ�. + _ => unreachable!("unexpected state"),Á,±Ž ð×0»Ž �üÃŽ. à�-<öŽ ãˆ-t—� ¼- ¼-²Ÿ³äBÿû  ¦� û ¶©$§� ü¬–) üã�G D Return the state identifier of the initial unanchored state of thisÁD¯�  NFA.Á¼� �üÄ�4 1 This is equivalent to the identifier returned byÁüý�J G [`NFA::start_anchored`] when the NFA has no unanchored starting state.ÁÌ‘ �üÔ‘F ñ“AüŸ’F ”Aœê’ ’•A‚“ �lŠ“ Áˆ-œ“ �ü¤“G D This example shows that the anchored and unanchored starting statesÁüð“1 . are equivalent when an anchored NFA is built.Á¦” �<®” ãˆ-üº”+ ™ÿ>ê” �ôò”  let nfa = NFA::new("^a")?;Áü••= : assert_eq!(nfa.start_anchored(), nfa.start_unanchored());Áו �üß•. à�-<’– ãˆ-„³– ½- ½-²Ÿ³äBÿû  Ä– û ð©$Å– üõ¤> üƒ—K H Return the state identifier of the initial anchored state for the givenÁüÓ—H E pattern, or `None` if there is no pattern corresponding to the givenÁ| ˜ identifier.Á´˜ �ü¼˜J G If one uses the starting state for a particular pattern, then the onlyÁü‹™@ = match that can be returned is for the corresponding pattern.ÁЙ �üØ™F ñ“Aü£šF ”Aœîš ’•A†› �dŽ› ÅÐ0Ÿ› �ü§›I F If the pattern doesn't exist in this NFA, then this returns an error.Áüõ›; 8 This occurs when `pid.as_usize() >= nfa.pattern_len()`.Áµœ �l½œ Áˆ-Ïœ �üלG ýžAü£�1 ÏŸAÙ� �<á� ãˆ-üí�8 ÿ†Aªž �ü²ž, ) let nfa = NFA::new_many(&["^a", "^b"])?;ÁüãžJ G // The anchored and unanchored states for the entire NFA are the same,Áü²Ÿ. + // since all of the patterns are anchored.ÁüåŸ= ê Aü§ F C // But the anchored starting states for each pattern are distinct,Áüò E B // because these starting states can only lead to matches for theÁ켡  // corresponding pattern.ÁüÞ¡. + let anchored = Some(nfa.start_anchored());Áü‘¢@ = assert_ne!(anchored, nfa.start_pattern(PatternID::must(0)));ÁüÖ¢@ = assert_ne!(anchored, nfa.start_pattern(PatternID::must(1)));Áü›£? < // Requesting a pattern not in the NFA will result in None:Áüߣ< 9 assert_eq!(None, nfa.start_pattern(PatternID::must(2)));Á ¤ �ü¨¤. à�-<Û¤ ãˆ-lü¤ ¾- ¾-²Ÿ‹ã¨¨Bÿû  Š¥ û ‡ $‹¥ ÷ŒMüü«4 tЬ ¿- ¿-²Ÿ ¿-Á´Bÿû  ™¬ û ˆ $š¬ üþ¶* üݬ& # Get the byte classes for this NFA.Áˆ­ �ü�­E B Byte classes represent a partitioning of this NFA's alphabet intoÁüÚ­H E equivalence classes. Any two bytes in the same equivalence class areÁü§®I F guaranteed to never discriminate between a match or a non-match. (TheÁüõ®% " partitioning may not be minimal.)ÁŸ¯ �ü§¯F C Byte classes are used internally by this crate when building DFAs.Áüò¯G D Namely, among other optimizations, they enable a space optimizationÁü¾°E B where the DFA's internal alphabet is defined over the equivalenceÁüˆ±G D classes of bytes instead of all possible byte values. The former isÁüÔ±K H often quite a bit smaller than the latter, which permits the DFA to useÁü¤²( % less space for its transition table.ÁѲ �lÙ² Áˆ-ë² �üó²? < This example shows how to query the class of various bytes.Á·³ �<¿³ ãˆ-ü˳+ ™ÿ>û³ �üƒ´"  let nfa = NFA::new("[a-z]+")?;Áüª´% " let classes = nfa.byte_classes();ÁüÔ´8 5 // 'a' and 'z' are in the same class for this regex.Áü‘µ5 2 assert_eq!(classes.get(b'a'), classes.get(b'z'));Áü˵  // But 'a' and 'A' are not.Áüïµ5 2 assert_ne!(classes.get(b'a'), classes.get(b'A'));Á©¶ �ü±¶. à�-<ä¶ ãˆ-d…· À- À-²Ÿ À-â°Bÿû  ’· û ‰ $“· ü¼¿* üÓ·F C Return a reference to the NFA state corresponding to the given ID.Áž¸ �ü¦¸9 6 This is a convenience routine for `nfa.states()[id]`.Áä¸ �dì¸ Úº.ý¸ �ü…¹K H This panics when the given identifier does not reference a valid state.ÁüÕ¹8 5 That is, when `id.as_usize() >= nfa.states().len()`.Á’º �lšº Áˆ-¬º �ü´ºC @ The anchored state for a pattern will typically correspond to aÁüüºC @ capturing state for that pattern. (Although, this is not an APIÁ|Ä» guarantee!)ÁØ» �<à» ãˆ-üì»A > use regex_automata::{nfa::thompson::{NFA, State}, PatternID};Á²¼ �캼  let nfa = NFA::new("a")?;ÁüܼG D let state = nfa.state(nfa.start_pattern(PatternID::ZERO).unwrap());Á”¨½ Š™Aü¿½( % State::Capture { slot, .. } => {Áüì½+ ( assert_eq!(0, slot.as_usize());ÁLœ¾ âÙ7üª¾. ÏšA,ݾ ð×0ç¾ �üï¾. à�-<¢¿ ãˆ-,ÿ Á- Á-²Ÿ³ä Á-á¡Bÿû  É¿ û Š $Ê¿ Ž-ëNüöÆ ü�À. + Returns a slice of all states in this NFA.ÁÂÀ �üÊÀJ G The slice returned is indexed by `StateID`. This provides a convenientÁü™ÁH E way to access states while following transitions among those states.ÁæÁ �lîÁ Áˆ-€Â �üˆÂJ G This demonstrates that disabling UTF-8 mode can shrink the size of theÁü×ÂK H NFA considerably in some cases, especially when using Unicode characterÁd§Ã classes.Á¸Ã �<Àà ãˆ-üÌÃ= ·³-üŽÄ+ ™ÿ>¾Ä �üÆÄ' $ let nfa_unicode = NFA::new(r"\w")?;ÁüòÄ* ' let nfa_ascii = NFA::new(r"(?-u)\w")?;Áü¡Å. + // Yes, a factor of 45 difference. No lie.ÁüÔÅH E assert!(40 * nfa_ascii.states().len() < nfa_unicode.states().len());Á¡Æ �ü©Æ. à�-<ÜÆ ãˆ-4ýÆ Â- Â-²Ÿ Â-�žBÿû  „Ç û Û�$…Ç üÆÒ& ü»Ç2 / Returns the capturing group info for this NFA.ÁòÇ �üúÇE B The [`GroupInfo`] provides a way to map to and from capture indexÁüÄÈF C and capture name for each pattern. It also provides a mapping fromÁü�ÉH E each of the capturing groups in every pattern to their correspondingÁüÜÉ6 3 slot offsets encoded in [`State::Capture`] states.Á—Ê �üŸÊG D Note that `GroupInfo` uses reference counting internally, such thatÁüëÊ( % cloning a `GroupInfo` is very cheap.Á˜Ë �l Ë Áˆ-²Ë �üºËG D This example shows how to get a list of all capture group names forÁ̆Ì  a particular pattern.Á¤Ì �<¬Ì ãˆ-ü¸Ì8 ÿ†AõÌ �üýÌ: 7 let nfa = NFA::new(r"(a)(?Pb)(c)(d)(?Pe)")?;Áü¼ÍG D // The first is the implicit group that is always unnamed. The nextÁüˆÎK H // 5 groups are the explicit groups found in the concrete syntax above.ÁüØÎJ G let expected = vec![None, None, Some("foo"), None, None, Some("bar")];Áü§Ï  let got: Vec> =ÁüÌÏB ? nfa.group_info().pattern_names(PatternID::ZERO).collect();Áô“Ð ¤¡.¶Ð �ü¾ÐB ? // Using an invalid pattern ID will result in nothing yielded.Áü…ÑK H let got = nfa.group_info().pattern_names(PatternID::must(999)).count();Á¼ÕÑ  assert_eq!(0, got);ÁñÑ �üùÑ. à�-<¬Ò ãˆ-TÍÒ Ã- Ã-²Ÿ Ã-³»Bÿû  ØÒ û Œ $ÙÒ ü¬á! ü—Ó9 6 Returns true if and only if this NFA has at least oneÁüÕÓ: 7 [`Capture`](State::Capture) in its sequence of states.Á”Ô �üœÔE B This is useful as a way to perform a quick test before attemptingÁüæÔH E something that does or does not require capture states. For example,Áü³ÕK H some regex engines (like the PikeVM) require capture states in order toÁ„ƒÖ work at all.Á˜Ö �l Ö Áˆ-²Ö �üºÖJ G This example shows a few different NFAs and whether they have capturesÁ\‰×  or not.Á™× �<¡× ãˆ-ü­×< ·�?î× �üö×$ ! // Obviously has capture states.ÁüŸØ  let nfa = NFA::new("(a)")?;ÁüÃØ  assert!(nfa.has_capture());ÁçØ �üïØF C // Less obviously has capture states, because every pattern has atÁüºÙK H // least one anonymous capture group corresponding to the match for theÁ´ŠÚ  // entire pattern.Áì¥Ú üÀAüÇÚ ¡ÝAëÚ �üóÚK H // Other than hand building your own NFA, this is the only way to buildÁüÃÛK H // an NFA without capturing groups. In general, you should only do thisÁü“ÜH E // if you don't intend to use any of the NFA-oriented regex engines.ÁüàÜI F // Overall, capturing groups don't have many downsides. Although theyÁü®ÝJ G // can add a bit of noise to simple NFAs, so it can be nice to disableÁüýÝ# // them for debugging purposes.Á4¥Þ ȃ7ü°ÞC @ // Notice that 'has_capture' is false here even when we have anÁüøÞ- * // explicit capture group in the pattern.Áìªß ±Ã/üÌßE á—A¼–à  .build("(a)")?;Áü²à  assert!(!nfa.has_capture());Á×à �üßà. à�-<’á ãˆ-\³á Ä- Ä-²ŸBÿû  ¿á û � $Àá ü¬þ üöáD A Returns true if and only if this NFA can match the empty string.Áü¿âH …‹9¤Œã ׋9¥ã �ü­ãH ƒŒ9üúãJ ÖŒ9üÉäH «�9ü–åE þ�9üàåG ÎŽ9ü¬æH  �9ùæ �l�ç Áˆ-“ç �ü›çF C This example shows a few different NFAs and whether they match theÁüæçF ì�9ü±èH ½‘9üþè* �’9­é �<µé ãˆ-üÁé; îô?�ê �ü‰ê0 ½“9ä¾ê  let nfa = NFA::new("")?;Áüßê4 1 assert!(nfa.has_empty(), "empty matches empty");Áü˜ëF Ý”9üãë' ®•9ô�ì  let nfa = NFA::new("a+")?;Áü²ì8 5 assert!(!nfa.has_empty(), "+ does not match empty");Áüïì, Ë–9ô í  let nfa = NFA::new("a*")?;ÁüÃí3 0 assert!(nfa.has_empty(), "* does match empty");ÁüûíJ è—9üÊî/ ½˜9üþî!  let nfa = NFA::new("(a+)*")?;Áü¤ï< 9 assert!(nfa.has_empty(), "+ inside of * matches empty");Áåï �üíïF ÷™9ü¸ðJ Èš9ü‡ñG �›9üÓñJ ï›9ü¢ò Äœ9ìÆò ±Ã/üèò2  ­3üŸó) Ó�9üÍó7 4 assert!(nfa.has_empty(), "assertions match empty");Áü‰ôG Éž9¤Õô šŸ9üîô  let nfa = NFA::new(r"\b+")?;Áü“õ@ = assert!(nfa.has_empty(), "+ of an assertion matches empty");ÁØõ �üàõJ » 9ü¯ö6 �¡9üêö+ ( let nfa = NFA::new("foo|(bar)?|quux")?;Áüš÷= : assert!(nfa.has_empty(), "alternations can match empty");ÁÜ÷ �üä÷C Ü¢9ü¬ø"  let nfa = NFA::new("[a&&b]")?;ÁüÓøI F assert!(!nfa.has_empty(), "never matching means not matching empty");Áü¡ùG «¤9üíù/ ý¤9ü¡ú# let nfa = NFA::new("[a&&b]*")?;ÁüÉúE B assert!(nfa.has_empty(), "* on never-match still matches empty");Áü“ûI µ¦9üáûG ‰§9ü­ü0 Û§9üâü# let nfa = NFA::new("[a&&b]+")?;ÁüŠýH E assert!(!nfa.has_empty(), "+ on never-match still matches nothing");Á×ý �üßý. à�-<’þ ãˆ-L³þ Å- Å-²ŸBÿû  ½þ û Ž $¾þ ì—‘ üòþ6 3 Whether UTF-8 mode is enabled for this NFA or not.Á­ÿ �üµÿF C When UTF-8 mode is enabled, all matches reported by a regex engineÁü€€H E derived from this NFA are guaranteed to correspond to spans of validÁüÍ€J G UTF-8. This includes zero-width matches. For example, the regex engineÁüœ�G D must guarantee that the empty regex will not match at the positionsÁüè�C @ between code units in the UTF-8 encoding of a single codepoint.Á°‚ �ü¸‚. + See [`Config::utf8`] for more information.Áë‚ �üó‚ µû,—ƒ �lŸƒ Áˆ-±ƒ �ü¹ƒI þ®9ü‡„! Ò¯9­„ �<µ„ ãˆ-ÌÁ„ óˆ-üß„. ãÝ>¬’… šÞ>4¬… ŸŠ-·… �ô¿… ÑÞ>üâ…J ùÞ>±† �ü¹†( ÿ°9üæ†& û±9ü‘‡- õß>üÇ= ¬à>…ˆ �ü�ˆD ©³9üÖˆG ø³9Ì¢‰ É´9¼À‰ ì´9ü܉- õß>üŽŠ= Ãá>Њ �üØŠH æµ9ô¥‹ £â>üÈ‹6 Ü­3¤ƒŒ Õ¶9üœŒ- õß>üÎŒ= ôâ>�� �¼˜� ð·9ü´�- õß>üæ�= âã>¨Ž �¼°Ž é¸9üÌŽ- õß>üþŽ= Ãá>À� �¼È� µ¹9üä�- õß>ü–�' …å>Â� �üÊ�. à�-<ý� ãˆ-<ž‘ Æ- Æ-²ŸBÿû  ¦‘ û � $§‘ ü�œ üÖ‘A > Returns true when this NFA is meant to be matched in reverse.Áœ’ �ü¤’J G Generally speaking, when this is true, it means the NFA is supposed toÁüó’K H be used in conjunction with moving backwards through the haystack. ThatÁüÓ? < is, from a higher memory address to a lower memory address.Á‡” �ü�”F C It is often the case that lower level routines dealing with an NFAÁüÚ”K H don't need to care about whether it is "meant" to be matched in reverseÁüª•H E or not. However, there are some specific cases where it matters. ForÁü÷•F C example, the implementation of CRLF-aware `^` and `$` line anchorsÁü–A > needs to know whether the search is in the forward or reverseÁüˆ—I F direction. In the forward direction, neither `^` nor `$` should matchÁüÖ—H E when a `\r` has been seen previously and a `\n` is next. However, inÁü£˜G D the reverse direction, neither `^` nor `$` should match when a `\n`Áüï˜K H has been seen previously and a `\r` is next. This fundamentally changesÁü¿™F C how the state machine is constructed, and thus needs to be alteredÁüŠš) & based on the direction of the search.Á¸š �üÀšL I This is automatically set when using a [`Compiler`] with a configurationÁü‘›I F where [`Config::reverse`] is enabled. If you're building your own NFAÁìß›  by hand via a [`Builder`]ÁT–œ Ç- Ç-²ŸBÿû  ¡œ û � $¢œ ü¾®. üÔœK H Returns true if and only if all starting states for this NFA correspondÁü¤�+ ( to the beginning of an anchored search.ÁÔ� �üÜ�K H Typically, an NFA will have both an anchored and an unanchored startingÁü¬žJ G state. Namely, because it tends to be useful to have both and the costÁüûžG D of having an unanchored starting state is almost zero (for an NFA).ÁüÇŸJ G However, if all patterns in the NFA are themselves anchored, then evenÁü– G D the unanchored starting state will correspond to an anchored searchÁüâ 3 0 since the pattern doesn't permit anything else.Áš¡ �l¢¡ Áˆ-´¡ �ü¼¡D A This example shows a few different scenarios where this method'sÁÄ…¢  return value varies.Á¢¢ �<ª¢ ãˆ-ü¶¢+ ™ÿ>æ¢ �üî¢K H // The unanchored starting state permits matching this pattern anywhereÁü¾£7 4 // in a haystack, instead of just at the beginning.Áìú£ üÀAüœ¤- * assert!(!nfa.is_always_start_anchored());ÁΤ �üÖ¤G D // In this case, the pattern is itself anchored, so there is no wayÁü¢¥# // to run an unanchored search.ÁôÊ¥ Á Aüí¥, ) assert!(nfa.is_always_start_anchored());Áž¦ �ü¦¦K H // When multiline mode is enabled, '^' can match at the start of a lineÁüö¦I F // in addition to the start of a haystack, so an unanchored search isÁÌħ  // actually possible.Áüâ§"  let nfa = NFA::new("(?m)^a")?;Áü‰¨- ò”B»¨ �üèJ G // Weird cases also work. A pattern is only considered anchored if allÁü’©9 6 // matches may only occur at the start of a haystack.ÁüЩ"  let nfa = NFA::new("(^a)|a")?;Áü÷©- ò”B©ª �ü±ªI F // When multiple patterns are present, if they are all anchored, thenÁüÿª& # // the NFA is always anchored too.Áüª«2 / let nfa = NFA::new_many(&["^a", "^b", "^c"])?;Áüá«, Å–B’¬ �üš¬D A // But if one pattern is unanchored, then the NFA must permit anÁÌ㬠 // unanchored search.Áü�­1 . let nfa = NFA::new_many(&["^a", "b", "^c"])?;Áü·­- ò”Bé­ �üñ­. à�-<¤® ãˆ-ÄÅ® È- È-²ŸBÿû  Þ® û ‘ $ß® ü†¼* ü³¯= : Returns the look-around matcher associated with this NFA.Áõ¯ �üý¯I Ñ®?ü˰E ¤¯?ü•±K ó¯?üå±/ Ȱ?™² �ü¡²@ = If the NFA was built using a [`Compiler`], then this matcherÁüæ²= : can be set via the [`Config::look_matcher`] configurationÁü¨³B ? knob. Otherwise, if you've built an NFA by hand, it is set viaÁüï³"  [`Builder::set_look_matcher`].Á–´ �lž´ Áˆ-°´ �ü¸´K ¨±?ˆµ �<�µ ãˆ-Ìœµ óˆ-üºµ. ãÝ>üíµ ¶²?¬’¶ šÞ>4¬¶ ŸŠ-·¶ �ü¿¶' г?üë¶' ¼³?—· �ôŸ· £â>ü·> ‰´?ü…¸! Ò´?ü«¸& “�?Ö¸ �üÞ¸9 šµ?|œ¹ ÐŒ-ü°¹# ìµ?üع, š¶?4‰º Ä�-ü”º: ß¶?|Óº ÐŒ-lçº Ü‘-üùº( À·?4¦» Ä�-±» �ü¹». à�-<ì» ãˆ-d�¼ É- É-²Ÿ É-µÐBÿû  š¼ û ’ $›¼ üÜË% üÛ¼H E Returns the union of all look-around assertions used throughout thisÁü¨½G D NFA. When the returned set is empty, it implies that the NFA has noÁüô½I F look-around assertions and thus zero conditional epsilon transitions.Á¾ �üʾB ? This is useful in some cases enabling optimizations. It is notÁü‘¿G D unusual, for example, for optimizations to be of the form, "for anyÁüÝ¿H E regex with zero conditional epsilon transitions, do ..." where "..."ÁüªÀ!  is some kind of optimization.ÁÐÀ �üØÀK H This isn't only helpful for optimizations either. Sometimes look-aroundÁü¨ÁI F assertions are difficult to support. For example, many of the DFAs inÁüöÁI F this crate don't support Unicode word boundaries or handle them usingÁüÄÂG D heuristics. Handling that correctly typically requires some kind ofÁü�ÃK H cheap check of whether the NFA has a Unicode word boundary in the firstÁTàà  place.Áïà �l÷à Áˆ-‰Ä �ü‘ÄJ G This example shows how this routine varies based on the regex pattern:ÁàÄ �<èÄ ãˆ-üôÄ? < use regex_automata::{nfa::thompson::NFA, util::look::Look};Á¸Å �ìÀÅ  // No look-around at all.ÁìâÅ üÀAü„Æ+ ( assert!(nfa.look_set_any().is_empty());Á´Æ �ü¼ÆH E // When multiple patterns are present, since this returns the union,Áü‰ÇE B // it will include look-around assertions that only appear in oneÁ|ÓÇ // pattern.ÁüçÇ6 3 let nfa = NFA::new_many(&["a", "b", "a^b", "c"])?;Áü¢È6 3 assert!(nfa.look_set_any().contains(Look::Start));ÁÝÈ �üåÈE B // Some groups of assertions have various shortcuts. For example:Áü¯É% " let nfa = NFA::new(r"(?-u:\b)")?;ÁüÙÉ0 - assert!(nfa.look_set_any().contains_word());ÁüŽÊ9 6 assert!(!nfa.look_set_any().contains_word_unicode());ÁüÌÊ6 3 assert!(nfa.look_set_any().contains_word_ascii());Á‡Ë �ü�Ë. à�-<ÂË ãˆ-dãË Ê- Ê-²ŸãÎBÿû  ðË û “ $ñË ü“Ú, ü«ÌD A Returns the union of all prefix look-around assertions for everyÁüôÌK H pattern in this NFA. When the returned set is empty, it implies none ofÁüÄÍH E the patterns require moving through a conditional epsilon transitionÁü‘Î5 2 before inspecting the first byte in the haystack.ÁËÎ �üÓÎJ G This can be useful for determining what kinds of assertions need to beÁü¢ÏG D satisfied at the beginning of a search. For example, typically DFAsÁüîÏH E in this crate will build a distinct starting state for each possibleÁü»ÐF C starting configuration that might result in look-around assertionsÁü†ÑE B being satisfied differently. However, if the set returned here isÁüÐÑH E empty, then you know that the start state is invariant because thereÁü�Ò7 4 are no conditional epsilon transitions to consider.ÁÙÒ �láÒ Áˆ-óÒ �üûÒJ “¯BÊÓ �<ÒÓ ãˆ-üÞÓ? ƒ°B¢Ô �ìªÔ Ù°BìÌÔ üÀAüîÔ2 / assert!(nfa.look_set_prefix_any().is_empty());Á¥Õ �ü­ÕH Ò±BüúÕE ¥²BüÄÖJ G // pattern. But it will only include assertions that are in the prefixÁü“×K H // of a pattern. For example, this includes '^' but not '$' even thoughÁ¼ã×  // '$' does appear.Áüÿ×7 4 let nfa = NFA::new_many(&["a", "b", "^ab$", "c"])?;Áü»Ø= : assert!(nfa.look_set_prefix_any().contains(Look::Start));ÁüýØ< 9 assert!(!nfa.look_set_prefix_any().contains(Look::End));Á¾Ù �üÆÙ. à�-<ùÙ ãˆ-œšÚ Ë- Ë-²ŸãÎBÿû  ®Ú û ” $¯Ú ü ð# üÁê4 1 Returns the memory usage, in bytes, of this NFA.Áúê �ü‚ëD A This does **not** include the stack size used up by this NFA. ToÁüËë3 0 compute that, use `std::mem::size_of::()`.Áƒì �l‹ì Áˆ-�ì �ü¥ìI F This example shows that large Unicode character classes can use quiteÁ¤óì  a bit of memory.ÁŒí �<”í ãˆ-ü í= ·³-üâí+ ™ÿ>’î �üšî' ÍÈAüÆî+ ( let nfa_ascii = NFA::new(r"(?-u:\w)")?;Áöî �üþîH E assert!(10 * nfa_ascii.memory_usage() < nfa_unicode.memory_usage());ÁËï �üÓï. à�-<†ð ãˆ-d§ð Ì- Ì-²ŸBÿû  ´ð û • $µð ”Òð <Ýð ¼ôò ²Ÿ˜  g˜ ü’ó8 •ó Í-Î-Ï- Í-²Ÿ Î-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ï-ÏÁBÿ—  ™ó — ˜ $šó œ  ó TÌ– ÷Ÿš › œ � ž Ÿ   ¡ ¤ ü¥—' D³— ¶÷Ÿ²ŸBÿ™ ™ š $À— ü›µ- T©µ ¶Ð- Ð-÷Ÿ Ð-³»Bÿ™  ´µ ™ ©¢$µµ ü£¸5 ±¸ ¶Ñ- Ñ-÷Ÿá¡³äBÿ™  µ¸ ™ œ $º¸ ƒ,À¸ ü¬Ã™ TºÃ ¶Ò-Ó- Ò-÷Ÿ³ä³ä Ó-íïBÿ™  Îà ™ � $Óà õwtáà ‹x„‚Ä ‚al¥Ä ü‘Æ, DŸÆ ¶Ô- Ô-÷ŸBÿ™  ¨Æ ™ ž $­Æ ê³Æ ü�Ç/ \�Ç ¶Õ- Õ-÷ŸBÿ™  ©Ç ™ Ÿ $®Ç ê´Ç ü¥È9 „³È ¶Ö- Ö-÷ŸµÐBÿ™  ÄÈ ™   $ÉÈ £ ÏÈ ü‡Í~ d•Í ¶×-Ø- ×-÷Ÿ Ø-°‘ÊÞBÿ™  «Í ™ ¡ $°Í ëfD¾Í ÒÎ ¡ �¢ �¢ �¢ ¢ ¡ ¢ ž—ÌŠÌŠ̵ÏŠ�Њœ“D^)c˜þOþÖ£ ”ŽÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 “ïUÿUÿãÎ ¡ �£ �£ �£ £ ¡ ¤ÕBü…Ô6 ,“Ô ¶Ù-Ú- Ù-÷Ÿ Ú-íïBÿ™  ™Ô ™ ¤ $žÔ  old_to_newÁT¤Ô ÌÿÖ ÷Ÿ¦  g¦ üŸ×8 ¢× Û-Ü-Ý- Û-÷Ÿ Ü-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ý-ÏÁBÿ¥  ¦× ¥ ¦ $§× œ ­× Tÿ� ᡨ © ª üÏ™ ü�‘G D Returns true if and only if this state contains one or more epsilonÁ„Ü‘ transitions.Áñ‘ �üù‘H E In practice, a state has no outgoing transitions (like `Match`), hasÁüÆ’G D only non-epsilon transitions (like `ByteRange`) or has only epsilonÁü’“  transitions (like `Union`).Á¶“ �l¾“ Áˆ-Г �<Ø“ ãˆ-Ìä“ óˆ-ü‚”+ ( nfa::thompson::{State, Transition},Áü²”; 8 util::primitives::{PatternID, StateID, SmallIndex},Á4ò” ŸŠ-ý” �ü…•. + // Capture states are epsilon transitions.Áü¸•  let state = State::Capture {ÁäÝ•  next: StateID::ZERO,Áüþ•$ ! pattern_id: PatternID::ZERO,Áü§–& # group_index: SmallIndex::ZERO,ÁüÒ–  slot: SmallIndex::ZERO,Á4ö– ŸŠ-ü�—  assert!(state.is_epsilon());Á¦— �ü®—  // ByteRange states are not.ÁüÓ—"  let state = State::ByteRange {Áüú—J G trans: Transition { start: b'a', end: b'z', next: StateID::ZERO },Á4ɘ ŸŠ-üÔ˜!  assert!(!state.is_epsilon());Áú˜ �ü‚™. à�-<µ™ ãˆ-TÖ™ â- â-á¡Bÿ§  á™ § ¨ $â™ ü¤� d§� Ö ã- ã-á¡Bÿ§  ´� § © $µ� üΤ& ,Ѥ Ö ä-å- ä-á¡ å-íïBÿ§  פ § ª $ܤ Í,⤠̽­ ᡬ  g¬ üÝ­8 à­ æ-ç-è- æ-á¡ ç-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡è-ÏÁBÿ«  ä­ « ¬ $å­ œ ë­ а ¬ �­ �­ �­ ­ ¬ ­ õ„àþUÿ$�¶ ¬ �® �® �® ® ¬ ® ô‡àþUÿ´ Â ©¤° ² ´ üƒÅD ü½Â? < This follows the matching transition for a particular byte.Á�à �ü‰ÃC @ The matching transition is found by looking for a matching byteÁüÑÃF C range (there is at most one) corresponding to the position `at` inÁ|œÄ `haystack`.Á°Ä �ü¸Ä8 5 If `at >= haystack.len()`, then this returns `None`.Á<ŠÅ ð-ñ- ð-©¤ ñ-³÷¨¨Bÿ¯  ’Å ¯ ° uâì_~÷…i~$ìÅ ° �± �± �± ± ° úüü�Éa d�É ò- ò-©¤–®¨¨Bÿ¯  ¥É ¯ ² $¦É Ê$´É 4ƒÊ ² �³ �³ �³ ³ ² ³ ý´;¨¨UÿÏüü–Ì7 ü®Ê? ËçBòÊ �üúÊI F The matching transition is found by looking for a matching byte rangeÁüÈË; 8 (there is at most one) corresponding to the byte given.Ád�Ì ó- ó-©¤¨¨Bÿ¯  ªÌ ¯ ýþ$«Ì ÿ†°‚¬êÛ Ž¥¶ ¸ º » üÙÞD ü†Ü? ËçBÊÜ �üÒÜE B The matching transition is found by looking for a transition thatÁüœÝE B doesn't correspond to `StateID::ZERO` for the byte `at` the givenÁÜæÝ  position in `haystack`.Á†Þ �üŽÞ8 çéB<àÞ û-ü- û-Ž¥ ü-³÷¨¨Bÿµ  èÞ µ ¶ ׈âìÁ‡÷…ˇ$Âß ¶ �· �· �· · ¶ Ü�üÐâa dÞâ ý- ý-Ž¥–®¨¨Bÿµ  ôâ µ ¸ $õâ Ê$ƒã 4Òã ¸ �¹ �¹ �¹ ¹ ¸ ¹  îB±�üåå7 üýã? ËçBÁä �üÉäE ”ðBü“å? < doesn't correspond to `StateID::ZERO` for the given `byte`.Ádìå þ- þ-Ž¥¨¨Bÿµ  ùå µ ß‘$úå ÿ†1‹ü‡ìB $•ì ÿ- ÿ-Ž¥¼ ÿ-Bÿµ  šì µ » $›ì øö¤ì% » 8þ6þ6» ÌŠÌŠ̵ÏŠ�Њœ“D^)c˜þOþ�Š�ŠFilterÁ�Š�‘Š predicateÁ²=²=J/VÔáËƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ8³ä¾   8³äUÿ¿ „ûBó¥UÿþƼ 8˜ÄQ»ûBÜ©ì ÅQ»ûBó¥Œ²ì »ûB8Çì ³ûBÔÌûB4ÝûB%òûB» ¼Øì ,êì dËí » �¾ �¾ �¾ ¾ » Š›|ÿí » �¿ �¿ �¿ ¿ » æž|Öò ó¥Á à Šü�ô9 üìòA > Returns true if the position `at` in `haystack` falls in thisÁü²ó  transition's range of bytes.Á×ó �üßó9 6 If `at >= haystack.len()`, then this returns `false`.Á<¤ô †.‡. †.ó¥ ‡.³÷BÿÀ  ¬ô À Á $­ô âìD³ô ÷…Äô $€õ Á � � �  Á  š¢«çBüßö8 ü¦õF C Returns true if the given alphabet unit falls in this transition'sÁüñõK H range of bytes. If the given unit is [`EOI`](alphabet::Unit::eoi), thenÁÌÁö  this returns `false`.Ádæö ˆ. ˆ.ó¥–®BÿÀ  óö À à $ôö Ê$úö 4½÷ à �Ä �Ä �Ä Ä à Ä ú´;«çBüÂø, üè÷F C Returns true if the given byte falls in this transition's range ofÁT³ø  bytes.ÁdÉø ‰. ‰.ó¥BÿÀ  Öø À Õ„$×ø ÿ†$Ýø ô©ù ó¥Ç  gÇ üÎù8 Ñù Š.‹.Œ. Š.ó¥ ‹.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Œ.ÏÁBÿÆ  Õù Æ Ç $Öù œ Üù ô•ú Lªú üÜ‚% �Ê Ê ‹§Ë Ì ÅQÆQÌ á‚ Lˆƒ $�ƒ É É ‹ãü¤ƒ' $§ƒ �. �.‹§�ÇBÿÉ  ¬ƒ É Ì �$±ƒ t÷ÓΔâÔÜTû¶Ú Û ‰ ‡�”™ §°¾Í<¼4 ð0Í Ï ñÅ4 ûcÍ Ð ˜ Ê4 ôÍ Ñ ÁtÔ4 òýÍ Ò ÚÜ@4ò4 Í Ô å4‚5 ëIÍ Õ –Š5 Ð=Í Ö –Í Ö ü”5 …CÍ × İL³5 ­Í Ø áÐ<Ü5 �"Í Ù $¯4 l¶4 îÛÝÊÌœÏ4 ½,ê4 ¬®tú4 ŸŒŽD�5 lìŸ5 \üÃ5 M¤Û6 ,á6 Í ³äœ¢7 $¨7 Í ³ätóL ß§Ý Þ ß â ä å æ ç è é ê ̯M ¶M ß§BÿÜ Ü Ý ¼‘Q ,˜Q ”. ”.ß§BÿÜ  žQ Ü Þ $£Q üÙSp $àS –. –.ß§ªÆÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¤£ BÿÜ �à ‚á á à  šT Ü ÄÕ2 åS þÆªÆ èS •.ˆ#ªÆ •.ü�@üëS$ •.�#ªÆ˜�Cç�Cl‚T ß ¤£ ªÆ$›T œ ­T tvprüÿb. 4†c ˜.™. ˜.ß§ ™.ü�@BÿÜ  �c Ü â $’c †€4˜c üÌ}, â �ã �ã �ã ã â ã —. —.ß§³äº±³äUÿ üÁ˜& LȘ š. š.ß§³äBÿÜ  Ò˜ Ü ä $ט üš¦3 L�¦ Í ›. ›.ß§³ä³äBÿÜ  §¦ Ü å $¬¦ ’§4²¦ ü¡±y t¤± Í œ. œ.ß§³äº±³äBÿÜ  ¼± Ü æ $Á± from_idÁ<ϱ †A,é± æ¦<ƒ² üý³Ž Œ€´ Í �. �.ß§³äº±³äBÿÜ  ›´ Ü ç $ ´ Ÿ ®´ —“C<À´ †A,Ú´ æ¦<ô´ üÔ¶Ž Œ×¶ Í ž. ž.ß§³äº±³äBÿÜ  ò¶ Ü è $÷¶ Ÿ …· —“C<—· †A,±· æ¦<Ë· ü„¹& ,‡¹ Í Ÿ. Ÿ.ß§³ä Ÿ.Ö¨BÿÜ  �¹ Ü é $޹ Ž-”¹ ü’º2 L•º Í  .  .ß§³ä  .Ö¨BÿÜ  Ÿº Ü ê $¤º Ž-ªº Tíº Ö¨ì ñ ü¾Á) $ÁÁ Í ¡. ¡.Ö¨º±Bÿë  ÆÁ ë ì $ÇÁ †A,ÍÁ ü¨Æf l«Æ Í £. £.üߪÆBÿ�î ‚ï î ï  ÃÆ ýë/ ¹Æ ÷ŽC ¼Æ ¢.ˆ#ªÆ ¢.óëŒüÆ ¢.�#ªÆ¾šC$‰Ç í óëªÆxsÁ¿Æ predÁ$ÍÆ uwy{¿Ì ì �ð �ð �ð ð ì ð  ‹©UÿÄüœ¦Í ,©Í Í ¤. ¤.Ö¨Bÿë  ¯Í ë ñ $´Í |‚Ö ëªó õ ö ÷ üŒØ= �Ø Í ±.³ä ±.ü�@ëªBÿò  ®Ø ò ó öD“Ø †€4¦Ø ÙÙ ó ó üÕÜz $ØÜ Í ².³.´. ².ß§ ³.°³ ´.ü�@³äBÿò  ìÜ ò õ trieÁ$æÜ ‰‰,„Ý †€4©Ý ìÐß DÓß Í µ. µ.몳äBÿò  Üß ò ö $Ýß üÀà 4Ãà Í ¶. ¶.ëª ¶.ü�@Bÿò  Êà ò ÷ $Ëà TÞ„ Å«ù þ ÿ € � üù…3 ü… Í º±º±Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Å«Bÿø ø ù ¥ €† ¤ ކ ¼Ã† ù �ú �ú �ú ú ù ú ¢ƒº±Uÿ¾‡ ù �û �û �û û ù û ü¢C¹¬Uÿ ð¢Cï‡ ù �ü �ü �ü ü ù ü Þ£Cê£C¡ˆ ù �ý �ý �ý ý ù ý Þ£Cê£Cü´–" 4·– Í ¹¬Å«Bÿø ø þ r1Á¾– üИ2 4Ó˜ Í ¹¬¹¬Å«Bÿø ø ÿ ë¤CÚ˜ r2Áê˜ üüšB 4ÿš Í ¹¬¹¬¹¬Å«Bÿø ø € ë¤C†› Â¥C–› r3Á¦› ü·œ# Dºœ Í Å. Å.Å« Å. ¹¬Bÿø  Ü ø � $Äœ ì‹� ß§ƒ  gƒ ü¯�8 ²� Æ.Ç.È. Æ.ß§ Ç.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡È.ÏÁBÿ‚  ¶� ‚ ƒ $·� œ ½� ÌÜŸ Ö¨…  g… üüŸ8 ÿŸ É.Ê.Ë. É.Ö¨ Ê.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ë.ÏÁBÿ„  ƒ  „ … $„  œ Š  ‹¡ … �† �† �† † … † âºàþUÿôƒ¢ ‹©ˆ  gˆ ü¨¢8 «¢ Ì.Í.Î. Ì.‹© Í.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Î.ÏÁBÿ‡  ¯¢ ‡ ˆ $°¢ œ ¶¢ üâ¦3 Tå¦ Í º±º±Bÿ ‰ ë¤Cð¦ Â¥Cÿ¦ $�„œú¥Œ²ï¥ü�<å¥é¥Ú¥Þ¥Ï¥Ó¥Å¥É¥º¥¾¥¯¥³¥D×ÓΔºÔ´»¥ÓÎÎ¥¿¥ÓÎ.,ҥåÓÎECÖ¥dùïüØ 1Ó A collection of modules that provide APIs that are useful across many regex engines. While one should explore the sub-modules directly to get a sense of what's there, here are some highlights that tie the sub-modules to higher level use cases: * `alphabet` contains APIs that are useful if you're doing low level things with the DFAs in this crate. For example, implementing determinization or walking its state graph directly. * `captures` contains APIs for dealing with capture group matches and their mapping to "slots" used inside an NFA graph. This is also where you can find iterators over capture group names. * `escape` contains types for pretty-printing raw byte slices as strings. * `iter` contains API helpers for writing regex iterators. * `lazy` contains a no-std and no-alloc variant of `lazy_static!` and `once_cell`. * `look` contains APIs for matching and configuring look-around assertions. * `pool` provides a way to reuse mutable memory allocated in a thread safe manner. * `prefilter` provides APIs for building prefilters and using them in searches. * `primitives` are what you might use if you're doing lower level work on automata, such as walking an NFA state graph. * `syntax` provides some higher level convenience functions for interacting with the `regex-syntax` crate. * `wire` is useful if you're working with DFA serialization. Á$�ð™ ÷ ‹—®¡Û®³Í—ºèÒó€ºÉÃßà„Ú 1üþ ù This module provides APIs for dealing with the alphabets of finite state machines. There are two principal types in this module, [`ByteClasses`] and [`Unit`]. The former defines the alphabet of a finite state machine while the latter represents an element of that alphabet. To a first approximation, the alphabet of all automata in this crate is just a `u8`. Namely, every distinct byte value. All 256 of them. In practice, this can be quite wasteful when building a transition table for a DFA, since it requires storing a state identifier for each element in the alphabet. Instead, we collapse the alphabet of an automaton down into equivalence classes, where every byte in the same equivalence class never discriminates between a match or a non-match from any other byte in the same class. For example, in the regex `[a-z]+`, then you could consider it having an alphabet consisting of two equivalence classes: `a-z` and everything else. In terms of the transitions on an automaton, it doesn't actually require representing every distinct byte. Just the equivalence classes. The downside of equivalence classes is that, of course, searching a haystack deals with individual byte values. Those byte values need to be mapped to their corresponding equivalence class. This is what `ByteClasses` does. In practice, doing this for every state transition has negligible impact on modern CPUs. Moreover, it helps make more efficient use of the CPU cache by (possibly considerably) shrinking the size of the transition table. One last hiccup concerns `Unit`. Namely, because of look-around and how the DFAs in this crate work, we need to add a sentinel value to our alphabet of equivalence classes that represents the "end" of a search. We call that sentinel [`Unit::eoi`] or "end of input." Thus, a `Unit` is either an equivalence class corresponding to a set of bytes, or it is a special "end of input" sentinel. In general, you should not expect to need either of these types unless you're doing lower level shenanigans with DFAs, or even building your own DFAs. (Although, you don't have to use these types to build your own DFAs of course.) For example, if you're walking a DFA's state graph, it's probably useful to make use of [`ByteClasses`] to visit each element in the DFA's alphabet instead of just visiting every distinct `u8` value. The latter isn't necessarily wrong, but it could be potentially very wasteful. ÁDâ 1ÓÔã÷ø€‡�˜Ÿ ¦µ¶ÆÍ�¹Lž Ÿ™ › �¹ ™ › ØÌ$´ è™ � Žâ„º ®$™ ž ßátÌ ª$™ Ÿ \ƒ Œ– rüƒ. M$­ =?+-L®" –®¡ ¢ £ ¤ ¥ ¦ ¨ © Üù& ü¾"1 . Create a new haystack unit from a byte value.Áô" �üü"I F All possible byte values are legal. However, when creating a haystackÁüÊ#J G unit for a specific DFA, one should be careful to only construct unitsÁü™$G D that are in that DFA's alphabet. Namely, one way to compact a DFA'sÁüå$G D in-memory representation is to collapse its transitions to a set ofÁü±%H E equivalence classes into a set of all possible byte values. If a DFAÁüþ%H E uses equivalence classes instead of byte values, then the byte givenÁüË&) & here should be the equivalence class.Á€' –®Bÿ    ¡ ÿ†$ƒ' ü“+1 üÃ'. + Create a new "end of input" haystack unit.Áö' �üþ'H E The value given is the sentinel value used by this unit to representÁüË(K H the "end of input." The value should be the total number of equivalenceÁü›)F C classes in the corresponding alphabet. Its maximum value is `256`,Áüæ)> ; which occurs when every byte is its own equivalence class.Á©* �d±* Úº.Â* �üÊ*D A This panics when `num_byte_equiv_classes` is greater than `256`.Áš+ –®Bÿ    »�num_byte_equiv_classesÁ´ž+ üÙ. üØ-D A If this unit is not an "end of input" sentinel, then returns itsÁü¡.3 0 underlying byte value. Otherwise return `None`.Á,à. –®�¥Bÿ    ¦á $æ. üž1" üö/J G If this unit is an "end of input" sentinel, then return the underlyingÁüÅ0D A sentinel value that was given to [`Unit::eoi`]. Otherwise returnÁ\Ž1  `None`.Á4¥1 –®Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Bÿ    ¤ $¬1 ô 4 üË2K H Return this unit as a `usize`, regardless of whether it is a byte valueÁü›3E B or an "end of input" sentinel. In the latter case, the underlyingÁüå36 3 sentinel value given to [`Unit::eoi`] is returned.ÁD§4 –®Bÿ    œ’$°4 üÿ6& üÐ5K H Returns true if and only of this unit is a byte value equivalent to theÁü 6H E byte given. This always returns false when this is an "end of input"Álí6 sentinel.Á<†7 –®Bÿ    ¦ $Ž7 ÿ†$”7 Ë7 ¦ �§ �§ �§ § ¦ § ú´;Äüܰ8 üå7F C Returns true when this unit represents an "end of input" sentinel.Á4·8 –®Bÿ    ¨ $¾8 ü¨:! üù8B ? Returns true when this unit corresponds to an ASCII word byte.ÁÀ9 �üÈ9I F This always returns false when this unit represents an "end of input"Ál–: ÅàCd¯: –®Bÿ    © $¼: ô™; –®«  g« ü¾;@ Á; ß.à.á. ß.–® à.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡á.ÏÁBÿª  Å; ª « $Æ; œ Ì; „ÖF â°­ ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¾ ¿ ìâG üíFJ G Creates a new set of equivalence classes where all bytes are mapped toÁœ¼G  the same class.Á,éG â°Bÿ¬ ¬ ¹‚šH ­ ­ ü¨I" ü«HG D Creates a new set of equivalence classes where each byte belongs toÁô÷H  its own equivalence class.ÁT¯I â°Bÿ¬ ¬ ¯ ü£Mg T±M ã. ã.³÷ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwâ°ÄòBÿ¬  ÌM ¬ ° å,ÅM ü”Vi D¢V ä.å. ä.â° å.³÷ݘBÿ¬  ´V ¬ É»$µV �œÇV üçY* dõY æ. æ.â°Bÿ¬  ‚Z ¬ ¼Ë$ƒZ üïZ* ü«Z1 . Set the equivalence class for the given byte.ÁöZ ç. ç.â°Bÿ¬  úZ ¬ ±…$ÿZ ÿ†Äè®Äü–\! üÒ[1 . Get the equivalence class for the given byte.Á�\ è. è.â°Bÿ¬  ¡\ ¬ �‡$¢\ ÿ†(ÅüÞ]. üç\H E Get the equivalence class for the given haystack unit and return theÁ¼´]  class as a `usize`.Á\å] é. é.â°–®Bÿ¬  ñ] ¬ µ $ò] Ê£Æ̨` ü¤_J G Create a unit that represents the "end of input" sentinel based on theÁüó_"  number of equivalence classes.Á¯` ê. ê.â°–®Bÿ¬  ³` ¬ ð‘$´` ü¼c# üôaF C Return the total number of elements in the alphabet represented byÁü¿bJ G these equivalence classes. Equivalently, this returns the total numberÁÜŽc  of equivalence classes.ÁdÃc ë. ë.â°Bÿ¬  Ðc ¬ °é$Ñc ôÒi üÞe@ = Returns the stride, as a base-2 exponent, required for theseÁÄ£f  equivalence classes.ÁÀf �üÈfH E The stride is always the smallest power of 2 that is greater than orÁü•gH E equal to the alphabet length, and the `stride2` returned here is theÁüâgK H exponent applied to `2` to get the smallest power. This is done so thatÁü²hK H converting between premultiplied state IDs and indices can be done withÁü‚i= : shifts alone, which is much faster than integer division.Á<Ùi ì. ì.â°Bÿ¬  ái ¬ ¸ $âi ü¨m" üôjH E Returns true if and only if every byte in this class maps to its ownÁüÁkF C equivalence class. Equivalently, there are 257 equivalence classesÁüŒlI F and each class contains either exactly one byte or corresponds to theÁüÚl; 8 singleton class containing the "end of input" sentinel.Ád¯m í. í.â°Bÿ¬  ¼m ¬ ¹ $½m üÏn' üûmA > Returns an iterator over all equivalence classes in this set.Á$Ön î. î.â°€€ƒ­‚ˆù™ ƒŸ™ °ê:¸fî(¾î.Bÿ¬  Ûn ¬ º $Ün ü¯€} ü²oI F Returns an iterator over a sequence of representative bytes from eachÁü€p6 3 equivalence class within the range of bytes given.Á»p �üÃpH E When the given range is unbounded on both sides, the iterator yieldsÁü�qG D exactly N items, where N is equivalent to the number of equivalenceÁüÜqG D classes. Each item is an arbitrary byte drawn from each equivalenceÁT¨r  class.Á·r �ü¿rJ G This is useful when one is determinizing an NFA and the NFA's alphabetÁüŽsK H hasn't been converted to equivalence classes. Picking an arbitrary byteÁüÞsJ G from each equivalence class then permits a full exploration of the NFAÁü­tI F instead of using every possible byte value and thus potentially savesÁüût"  quite a lot of redundant work.Á¢u �lªu Áˆ-¼u �üÄuH E This shows an example of what a complete sequence of representativesÁü‘v( % might look like from a real example.Á¾v �<Æv ãˆ-üÒvC @ use regex_automata::{nfa::thompson::NFA, util::alphabet::Unit};Ášw �ü¢w" ò·AüÉw% Ÿ¸Aüów@ = let reps: Vec = classes.representatives(..).collect();Áü¸xE B // Note that the specific byte values yielded are not guaranteed!ÁÄ‚y û¨:ÔŸy  Unit::u8(b'\x00'),Á¼¾y  Unit::u8(b'a'),Á¼Úy  Unit::u8(b'{'),Á¬öy  Unit::eoi(3),Á4�z í©:ü›z  assert_eq!(expected, reps);Á¿z �üÇz. à�-<úz ãˆ-†{ �üŽ{K H Note though, that you can ask for an arbitrary range of bytes, and onlyÁüÞ{4 1 representatives for that range will be returned:Á—| �<Ÿ| ãˆ-ü«|C ¬†Dó| �üû|" ò·Aü¢}% Ÿ¸AüÌ}I F let reps: Vec = classes.representatives(b'A'..=b'z').collect();Áüš~E ë‡DÄä~ û¨:¼�  Unit::u8(b'A'),Á¼� éˆD4¹ í©:üÄ Õ‰Dè �üð. à�-<£€ ãˆ-|¶€ ï. ï.â°¨›‡‡Æ­‰ˆù™ Š÷­™ ‹‡®™ Œ—®™ îÔ`HÅHîÝï.Bÿ¬ ޼ ¼  î€ ¬ þƨ› Æ€ ™$¨›ÔÉ€ » ¨›$ï€ †A›Ó24„»� ,Æ� ü÷‘< üÚ‡D A Returns an iterator of the bytes in the given equivalence class.Á£ˆ �ü«ˆI F This is useful when one needs to know the actual bytes that belong toÁüùˆJ G an equivalence class. For example, conceptually speaking, acceleratingÁüȉH E a DFA state occurs when a state only has a few outgoing transitions.Áü•ŠC @ But in reality, what is required is that there are only a smallÁüÝŠI F number of distinct bytes that can lead to an outgoing transition. TheÁü«‹J G difference is that any one transition can correspond to an equivalenceÁüú‹J G class which may contains many bytes. Therefore, DFA state accelerationÁüÉŒC @ considers the actual elements in each equivalence class of eachÁÄ‘�  outgoing transition.Á®� �l¶� Áˆ-È� �üÐ�A > This shows an example of how to get all of the elements in anÁ´–Ž  equivalence class.Á±Ž �<¹Ž ãˆ-üÅŽC ¬†D�� �ü•�" ò·Aü¼�% Ÿ¸Aüæ�F C let elements: Vec = classes.elements(Unit::u8(1)).collect();Áü±�D A let expected: Vec = (b'a'..=b'z').map(Unit::u8).collect();Áüú�# assert_eq!(expected, elements);Á¢‘ �üª‘. à�-<Ý‘ ãˆ-Dþ‘ ð. ð.â°–®��¾®’ˆù™ “è®™ ”ÿ†™ &´ƒ+¼ìð.Bÿ¬  ‡’ ¬ ¾ $ˆ’ 讆×üÑ”C tÔ” ™ ñ. ñ.â°–®˜˜“¯šê„™ ›†A™ ϺÖÒ‰ò}ñ.Bÿ¬  ã” ¬ ¿ $ä” è®,ê” äï• â°Á ÷Á Ü’– <•– â°BÿÀ À Á üÛ–% â°à  gà ü‡—D Š— ò.ó.ô. ò.â° ó.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ô.ÏÁBÿ  Ž—  à $�— œ •— üœ ' �Å ŠȱÆ Ç ÅQÆQÇ ¡  LÊ  $Ï  Ä Ä –®üá " $ä  ø. ø.ȱřǙș­É™Ê™àË™óG*¤�R{9 –®BÿÄ  é  Ä Ç �$î  ü‚§2 �É É œ²Ê Ë ÅQÆQË ‡§ L»§ $À§ È È –®üÒ§" $Õ§ ü. ü.œ²ý DBÿÈ  Ú§ È Ë �$ß§ üŠ´+ �Í Í ‹³Î Ï ÅQÆQÏ �´ L¼´ $Á´ Ì Ì –®üÓ´" $Ö´ €/ €/‹³ý DBÿÌ  Û´ Ì Ï �$à´ ü‘º0 �Ñ Ñ í³Ò Ó ÅQÆQÓ –º LȺ $ͺ Ð Ð À¾üçº* $êº „/ „/í³û½BÿÐ  ïº Ð Ó �$ôº ì�Ì Ó«ŒûË ÌõË Á´Õ ÷Õ ä³Ì <¶Ì Á´BÿÔ Ô Õ Œ“Í Ó«ŒÿÌ ÌùÌ Á´× Ø Ù Ú ì”Î ,¢Î Á´BÿÖ Ö × üñÏ6 LÿÏ ‰/ ‰/Á´BÿÖ  ‰Ð Ö Ø $ŽÐ ‚,”Ð ’ŸÐ ü‚Ò/ <�Ò Š/‹/ Š/Á´ ‹/‘µBÿÖ  ˜Ò Ö Ù $�Ò  %£Ò ü…Õ0 d“Õ Œ/ Œ/Á´â°BÿÖ   Õ Ö Ú $¡Õ d×Û ‘µÜ Þ ß à á ã ä å æ è ë ü�Ü ,žÜ ‘µBÿÛ Û Ü ÖÜ Ü Ü üÜÝ& êÝ ˜/ ˜/‘µBÿÛ  îÝ Û Þ $óÝ ÿ†$ùÝ üöß) 4„à ™/ ™/‘µBÿÛ  ‹à Û ß $�à ÿ†$–à üçá/ Dõá š/ š/‘µBÿÛ  þá Û š¡$ÿá ÿ†$…â üûã? t‰ä ›/ ›/‘µBÿÛ  ˜ä Û á $™ä ‚,Ÿä ’ªä ×ä á �â �â �â â á â ú´;…µ;ü°å, $¾å œ/ œ/‘µÆÆì±È %™ ɘ™ í½i'ÊÁœ/BÿÛ  Ãå Û ã $Äå üßæ8 \íæ �/ �/‘µÍͬ²Ï %™ И™ J:¹f§Øî�/BÿÛ  ùæ Û ä $úæ üÁè% DÏè ž/ ž/‘µBÿÛ  Øè Û « $Ùè ü¶ëc TÄë Ÿ/ Ÿ/³÷ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‘µÄòBÿÛ  ßë Û æ å,Øë ”¨ì <³ì ü¶ñƒ DÄñ  /¡/  /‘µ ¡/³÷ݘBÿÛ �é é  ôñ Û ÄÕ2 Íñ ÖÕ2ÌÐñ è ¤£ $õñ �œsï(*”Èò <Óò üì÷* dú÷ ¢/ ¢/‘µBÿÛ  ‡ø Û ­«$ˆø üËø š¶í  gí üòø@ õø £/¤/¥/ £/š¶ ¤/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¥/ÏÁBÿì  ùø ì í $úø œ €ù üâû% �ï ï §·ð ñ ÅQÆQñ çû LŽü $“ü î î ü£ü $¦ü ©/ ©/§·�¥Bÿî  «ü î ñ �$°ü ü…ÿ* �ó ó ú·ô õ ÅQÆQõ Šÿ L¶ÿ $»ÿ ò ò Îö5üÑÿ& $Ôÿ ­/ ­/ú·Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Îö5Bÿò  Ùÿ ò õ �$Þÿ T�€ õ �ö �ö �ö ö õ ö ”âUÿ„† 1ü¯ ª Provides types for dealing with capturing groups. Capturing groups refer to sub-patterns of regexes that some regex engines can report matching offsets for. For example, matching `[a-z]([0-9]+)` against `a789` would give `a789` as the overall match (for the implicit capturing group at index `0`) and `789` as the match for the capturing group `([0-9]+)` (an explicit capturing group at index `1`). Not all regex engines can report match offsets for capturing groups. Indeed, to a first approximation, regex engines that can report capturing group offsets tend to be quite a bit slower than regex engines that can't. This is because tracking capturing groups at search time usually requires more "power" that in turn adds overhead. Other regex implementations might call capturing groups "submatches." # Overview The main types in this module are: * [`Captures`] records the capturing group offsets found during a search. It provides convenience routines for looking up capturing group offsets by either index or name. * [`GroupInfo`] records the mapping between capturing groups and "slots," where the latter are how capturing groups are recorded during a regex search. This also keeps a mapping from capturing group name to index, and capture group index to name. A `GroupInfo` is used by `Captures` internally to provide a convenient API. It is unlikely that you'll use a `GroupInfo` directly, but for example, if you've compiled an Thompson NFA, then you can use [`thompson::NFA::group_info`](crate::nfa::thompson::NFA::group_info) to get its underlying `GroupInfo`. ÁÓ«Œò 1Ìì 1DŽ 1° â ÔÚäåíöü�–å4Å ëI÷ ù KÓ „K÷ ú –Ø Ð=÷ û –÷ û üâ …C÷ ü °”\€ —÷ þ œÌ\§ ¿!÷ € ÒÏL´ ú!÷ � ÙÕt¿ ç"÷ ‚ µÖlÏ ó"÷ ƒ ¡ÍTÞ Ò!÷ „ á�,þ ›%÷ † §è$…û$÷ ‡ ,µ t½ LÍ üþDÝ Ü\í ÌÎüí .¿Á­¯›�‰‹wyüí ŽkmY[l°>͸‰ Š ‹ Œ � Ž � � ‘ “ ” • – ™ š � £ ü€K-üÄ>HE Create new storage for the offsets of all matching capturing groups.Á‘?�ü™?HE This routine provides the most information for matches---namely, theÁüæ?KH spans of matching capturing groups---but also requires the regex searchÁü¶@! routines to do the most work.ÁÜ@�üä@HE It is unspecified behavior to use the returned `Captures` value in aÁü±AIF search with a `GroupInfo` other than the one that is provided to thisÁ„ÿA constructor.Á”B�lœBÁˆ-®B�ü¶BEB This example shows that all capturing groups---but only ones thatÁü€CFC participated in a match---are available to query after a match hasÁ|ËC been found:ÁßC�<çCãˆ-ÌóCóˆ-ü‘D&Ó€Aü¼D! util::captures::Captures,Á¤âD Span, Match,Á4ûDŸŠ-†E�ÌŽE let re = PikeVM::new(Áü¬EGD r"^(?:(?P[a-z]+)|(?P[A-Z]+))(?P[0-9]+)$",Á<øEÑÛ=ü„F&“�?ü¯FDA let mut caps = Captures::all(re.get_nfa().group_info().clone());ÁøF�ü€G1. re.captures(&mut cache, "ABC123", &mut caps);Áì¶G assert!(caps.is_match());ÁüØG=: assert_eq!(Some(Match::must(0, 0..6)), caps.get_match());ÁüšHDA // The 'lower' group didn't match, so it won't have any offsets.ÁüãH63 assert_eq!(None, caps.get_group_by_name("lower"));ÁüžIHE assert_eq!(Some(Span::from(0..3)), caps.get_group_by_name("upper"));ÁüëIIF assert_eq!(Some(Span::from(3..6)), caps.get_group_by_name("digits"));Á¹J�üÁJ.à�-<ôJãˆ-‡K³»͸Bÿˆ ˆ ‰ ÙxT‹KüÍW1ü«LGD Create new storage for only the full match spans of a pattern. ThisÁü÷L1. does not include any capturing group offsets.Á­M�üµMH½ÍDü‚NI�ÎD„ÐNáÎDåN�líNÁˆ-ÿN�ü‡OHE This example shows that only overall match offsets are reported whenÁüÔOGD this constructor is used. Accessing any capturing groups other thanÁü P&# the 0th will always return `None`.ÁËP�<ÓPãˆ-ÌßPóˆ-üýP&Ó€Aü¨Q!‹ÑDtÎQ �A4áQŸŠ-ìQ�ÌôQëÑDü’RGŽÒD<ÞRÑÛ=üêR&“�?ü•SHE let mut caps = Captures::matches(re.get_nfa().group_info().clone());ÁâS�üêS1ÔÓDì TŽÔDüÂT=µÔDü„UKH // We didn't ask for capturing group offsets, so they aren't available.ÁüÔU6ÊÕDü�V63 assert_eq!(None, caps.get_group_by_name("upper"));ÁüÊV74 assert_eq!(None, caps.get_group_by_name("digits"));Á†W�üŽW.à�-<ÁWãˆ-<ÔW³»͸Bÿˆ ˆ Š ÙxTÜWüàe/üÉZJG Create new storage for only tracking which pattern matched. No offsetsÁ´˜[ are stored at all.Á³[�ü»[H½ÍDüˆ\I�ÎD„Ö\áÎDë\�ló\Áˆ-…]�ü�]IF This example shows that only the pattern that matched can be accessedÁüÛ]96 from a `Captures` value created via this constructor.Á™^�<¡^ãˆ-Ì­^óˆ-üË^&Ó€Aüö^!‹ÑD”œ_ PatternID,Á4³_ŸŠ-¾_�üÆ_85 let re = PikeVM::new_many(&[r"[a-z]+", r"[A-Z]+"])?;Áüƒ`&“�?ü®`FC let mut caps = Captures::empty(re.get_nfa().group_info().clone());Áù`�ü�a0- re.captures(&mut cache, "aABCz", &mut caps);Áì¶aŽÔDüØa96 assert_eq!(Some(PatternID::must(0)), caps.pattern());Áü–b?< // We didn't ask for any offsets, so they aren't available.ÁüÚb'…å>†c�üŽc63 re.captures(&mut cache, &"aABCz"[1..], &mut caps);ÁìÉcŽÔDüëc96 assert_eq!(Some(PatternID::must(1)), caps.pattern());Áü©d?ÔæDüíd'…å>™e�ü¡e.à�-<Ôeãˆ-,çe³»͸Bÿˆ ˆ ‹ ÙxTíeôÐmü×fHE Returns true if and only if this capturing group represents a match.Á¤g�ü¬gA> This is a convenience routine for `caps.pattern().is_some()`.Áòg�lúgÁˆ-Œh�ü”hC@ When using the PikeVM (for example), the lightest weight way ofÁüÜhGD detecting whether a match exists is to create capturing groups thatÁü¨i96 only track the ID of the pattern that match (if any):Áæi�<îiãˆ-Ìúióˆ-ü˜j&Ó€AüÃj!‹ÑD4éjŸŠ-ôj�üüj%" let re = PikeVM::new(r"[a-z]+")?;Áü¦k&“�?üÑkFîäDœl�ü¤l0ÊåDìÙlŽÔDûl�üƒm.à�-<¶mãˆ-D×m¯/ ¯/͸Bÿˆ  àmˆ Œ $ámü‘y*ü—n@= Returns the identifier of the pattern that matched when thisÁüÜnHE capturing group represents a match. If no match was found, then thisÁÔ©o always returns `None`.ÁÈo�üÐoHE This returns a pattern ID in precisely the cases in which `is_match`Áü�pDA returns `true`. Similarly, the pattern ID returned is always theÁüæpA> same pattern ID found in the `Match` returned by `get_match`.Á¬q�l´qÁˆ-Æq�üÎqCšëDü–rKH detecting which pattern matched is to create capturing groups that onlyÁüær41 track the ID of the pattern that match (if any):ÁŸs�<§sãˆ-̳sóˆ-üÑs&Ó€Aüüs!‹ÑD”¢téãD4¹tŸŠ-Ät�üÌt8žäDü‰u&“�?ü´uFîäDÿu�ü‡v.+ re.captures(&mut cache, "ABC", &mut caps);Áüºv9„èDüøvDA // Recall that offsets are only available when using a non-emptyÁüÁwJG // Captures value. So even though a match occurred, this returns None!Áü�x'…å>¼x�üÄx.à�-<÷xãˆ-<˜y°/ °/͸�ÇBÿˆ   yˆ êó$¡yü‡�(üÚyFC Returns the pattern ID and the span of the match, if one occurred.Á¥z�ü­z?< This always returns `None` when `Captures` was created withÁüñz30 [`Captures::empty`], even if a match was found.Á©{�ü±{B? If this routine returns a non-`None` value, then `is_match` isÁüø{JG guaranteed to return `true` and `pattern` is also guaranteed to returnÁ¼Ç| a non-`None` value.Áã|�lë|Áˆ-ý|�ü…}?< This example shows how to get the full match from a search:ÁÉ}�<Ñ}ãˆ-üÝ}?Ìå@¡~�ü©~8žäDüæ~JùÞ>µ�ü½.ÜõDüð=: assert_eq!(Some(Match::must(1, 0..3)), caps.get_match());Á²€�üº€.à�-<í€ãˆ-LŽ�±/ ±/͸Ýá Bÿˆ  ˜�ˆ ƒç$™�üŽ–5üû�JG Returns the span of a capturing group match corresponding to the groupÁüÊ‚KH index given, only if both the overall pattern matched and the capturingÁüšƒ%" group participated in that match.Áă�ü̃KH This returns `None` if `index` is invalid. `index` is valid if and onlyÁüœ„GD if it's less than [`Captures::group_len`] for the matching pattern.Áè„�üð„?©ùDü´…DA [`Captures::empty`], even if a match was found. This also alwaysÁüý…GD returns `None` for any `index > 0` when `Captures` was created withÁÔɆ [`Captures::matches`].Áè†�üð†B»úDü·‡DA guaranteed to return `true`, `pattern` is guaranteed to return aÁü€ˆIF non-`None` value and `get_match` is guaranteed to return a non-`None`ÁTΈ value.Á݈�üåˆDA By convention, the 0th capture group will always return the sameÁü®‰EB span as the span returned by `get_match`. This is because the 0thÁüø‰EB capture group always corresponds to the entirety of the pattern'sÁüŠHE match. (It is similarly always unnamed because it is implicit.) ThisÁü�‹EB isn't necessarily true of all regex engines. For example, one canÁüÙ‹EB hand-compile a [`thompson::NFA`](crate::nfa::thompson::NFA) via aÁü£ŒEB [`thompson::Builder`](crate::nfa::thompson::Builder), which isn'tÁüíŒKH technically forced to make the 0th capturing group always correspond toÁ¬½� the entire match.Á×��lß�Áˆ-ñ��üù�HE This example shows how to get the capturing groups, by index, from aÁTÆŽ match:ÁÕŽ�<ÝŽãˆ-üéŽ=·³-ü«�EB use regex_automata::{nfa::thompson::pikevm::PikeVM, Span, Match};Áõ��üý�A> let re = PikeVM::new(r"^(?P\pL+)\s+(?P\pL+)$")?;ÁüÃ�JùÞ>’‘�üš‘<9 re.captures(&mut cache, "Bruce Springsteen", &mut caps);ÁüÛ‘>; assert_eq!(Some(Match::must(0, 0..17)), caps.get_match());Áüž’:7 assert_eq!(Some(Span::from(0..5)), caps.get_group(1));ÁüÝ’;8 assert_eq!(Some(Span::from(6..17)), caps.get_group(2));Áü�“C@ // Looking for a non-existent capturing group will return None:Áüå“(% assert_eq!(None, caps.get_group(3));Áü’”52 # // literals are too big for 32-bit usize: #1039ÁüÌ”)& # #[cfg(target_pointer_width = "64")]Áüú”:7 assert_eq!(None, caps.get_group(9944060567225171988));Á¹•�üÁ•.à�-<ô•ãˆ-L•–²/ ²/͸„³Bÿˆ  Ÿ–ˆ „õ$ –÷HüË©;üà›J›ÿDü¯œJG name given, only if both the overall pattern matched and the capturingÁüþœ%Æ€E¨��ü°�JG This returns `None` if `name` does not correspond to a valid capturingÁüÿ�'$ group for the pattern that matched.Á«ž�ü³ž?©ùDü÷žDÇ‚EüÀŸG–ƒEÔŒ çƒE« �ü³ B»úDüú D¨„EüáI÷„ET‘¢Ê…E ¢�l¨¢Áˆ-º¢�ü¢GD This example shows how to get the capturing groups, by name, from aÁTŽ£�ŒE�£�<¥£ãˆ-ü±£=·³-üó£EÌŒE½¤�üŤA©�Eü‹¥JùÞ>Ú¥�üâ¥<‘ŽEü£¦>ØŽEüæ¦HE assert_eq!(Some(Span::from(0..5)), caps.get_group_by_name("first"));Áü³§HE assert_eq!(Some(Span::from(6..17)), caps.get_group_by_name("last"));Áü€¨C¬�EüȨ74 assert_eq!(None, caps.get_group_by_name("middle"));Á„©�üŒ©.à�-<¿©ãˆ-ŒÒ©³/´/ ³/͸ ´/„³Bÿˆ  䩈 � $å©‚ $ë©üµ¾-üúªJG Returns an iterator of possible spans for every capturing group in theÁ¬É« matching pattern.Áã«�üë«EB If this `Captures` value does not correspond to a match, then theÁüµ¬)& iterator returned yields no elements.Áã¬�üë¬KH Note that the iterator returned yields elements of type `Option`.Áü»­HE A span is present if and only if it corresponds to a capturing groupÁüˆ®! that participated in a match.Á®®�l¶®Áˆ-È®�üЮ;8 This example shows how to collect all capturing groups:Á�¯�<˜¯ãˆ-ü¤¯=·³-üæ¯>; use regex_automata::{nfa::thompson::pikevm::PikeVM, Span};Á©°�̱°ëÑDüϰB? // Matches first/last names, with an optional middle name.Áü–±FC r"^(?P\pL+)\s+(?:(?P\pL+)\s+)?(?P\pL+)$",Á<á±ÑÛ=üí±JùÞ>¼²�üIJ=: re.captures(&mut cache, "Harry James Potter", &mut caps);Á솳ŽÔDü¨³:7 let groups: Vec> = caps.iter().collect();Áäç³ assert_eq!(groups, vec![Áüˆ´  Some(Span::from(0..18)),Áü­´ Some(Span::from(0..5)),ÁüÑ´  Some(Span::from(6..11)),Áüö´! Some(Span::from(12..18)),Á<œµåÑ3¨µ�ü°µ.à�-<ãµãˆ-ïµ�ü÷µHE This example uses the same regex as the previous example, but with aÁüĶJG haystack that omits the middle name. This results in a capturing groupÁü“·IF that is present in the elements yielded by the iterator but without aÁTá·�ŒEð·�<ø·ãˆ-ü„¸=·³-üƸ>±¡E‰¹�Ì‘¹ëÑDü¯¹B•¢Eüö¹Fâ¢E<ÁºÑÛ=üͺJùÞ>œ»�ü¤»74 re.captures(&mut cache, "Harry Potter", &mut caps);Áì໎ÔDü‚¼:³¤EäÁ¼÷¤Eüâ¼  Some(Span::from(0..12)),Áü‡½É¥El«½Ü‘-ü½½  Some(Span::from(6..12)),Á<â½åÑ3î½�üö½.à�-<©¾ãˆ-$¼¾µ/ µ/͸ÚÚ¡³Ü‚�÷ ݃ ÷ בÃ˰8µ/Bÿˆ  Á¾ˆ °�$¾,Õ¿‘ �’ �’ �’ ’ ‘ ’ ‹ãü»UÿÛðüÊÊ üëÀIF Return the total number of capturing groups for the matching pattern.Á¹Á�üÁÁFC If this `Captures` value does not correspond to a match, then thisÁ¼ŒÂ always returns `0`.Á¨Â�ü°Â>; This always returns the same number of elements yielded byÁüóÂJG [`Captures::iter`]. That is, the number includes capturing groups evenÁüÂÃ+( if they don't participate in the match.ÁòÃ�lúÃÁˆ-ŒÄ�ü”ÄHE This example shows how to count the total number of capturing groupsÁüáÄJG associated with a pattern. Notice that it includes groups that did notÁü°Å=: participate in a match (just like `Captures::iter` does).ÁòÅ�<úÅãˆ-ü†Æ=·³-üÈÆ63 use regex_automata::nfa::thompson::pikevm::PikeVM;ÁƒÇ�Ì‹ÇëÑDü©ÇB•¢EüðÇFâ¢E<»ÈÑÛ=üÇÈJùÞ>–É�üžÉ7µªEüÚÉ$! assert_eq!(4, caps.group_len());ÁƒÊ�ü‹Ê.à�-<¾Êãˆ-LÑʶ/ ¶/͸Bÿˆ  Ûʈ “ $ÜÊüÖÛ&ü‘ÌC@ Returns a reference to the underlying group info on which theseÁ¼ÙÌ captures are based.ÁõÌ�üýÌHE The difference between `GroupInfo` and `Captures` is that the formerÁüÊÍIF defines the structure of capturing groups where as the latter is whatÁü˜ÎJG stores the actual match information. So where as `Captures` only givesÁüçÎC@ you access to the current match, `GroupInfo` lets you query anyÁü¯ÏGD information about all capturing groups, even ones for patterns thatÁüûÏ  weren't involved in a match.Á Ð�ü¨ÐIF Note that a `GroupInfo` uses reference counting internally, so it mayÁ´öÐ be cloned cheaply.Á‘Ñ�l™ÑÁˆ-«Ñ�ü³ÑDA This example shows how to get all capturing group names from theÁüüÑC@ underlying `GroupInfo`. Notice that we don't even need to run aÁ\ÄÒÔ—7ÔÒ�<ÜÒãˆ-üèÒC@ use regex_automata::{nfa::thompson::pikevm::PikeVM, PatternID};Á°Ó�ü¸Ó  let re = PikeVM::new_many(&[Á´ÝÓ r"(?Pa)",Á”øÓ r"(a)(b)",Át�Ô r"ab",Áü¢Ô! r"(?Pa)(?Pa)",Á´ÈÔ r"(?Pz)",ÁDãÔžØ?üðÔ$! let caps = re.create_captures();Á™Õ�Ä¡Õû¨:ü¾Õ&# (PatternID::must(0), 0, None),ÁüéÕ-* (PatternID::must(0), 1, Some("foo")),Áü›Ö&# (PatternID::must(1), 0, None),ÁüÆÖ&# (PatternID::must(1), 1, None),ÁüñÖ&# (PatternID::must(1), 2, None),Áüœ×&# (PatternID::must(2), 0, None),ÁüÇ×&# (PatternID::must(3), 0, None),Áüò×-* (PatternID::must(3), 1, Some("bar")),Áü¤Ø.+ (PatternID::must(3), 2, Some("quux")),Áüר&# (PatternID::must(4), 0, None),Áü‚Ù-* (PatternID::must(4), 1, Some("foo")),Á4´Ùí©:ü¿Ù:7 // We could also just use 're.get_nfa().group_info()'.ÁüþÙ41 let got: Vec<(PatternID, usize, Option<&str>)> =Áü·Ú0- caps.group_info().all_names().collect();ÁôìÚ¤¡.�Û�ü—Û.à�-<ÊÛãˆ-TÝÛ·/ ·/͸ ·/³»Bÿˆ  èÛˆ åü$éÛüÃèlü£ÜA> Interpolates the capture references in `replacement` with theÁüéÜIF corresponding substrings in `haystack` matched by each reference. TheÁü·Ý$! interpolated string is returned.ÁàÝ�üèÝHE See the [`interpolate` module](interpolate) for documentation on theÁüµÞ%" format of the replacement string.ÁßÞ�lçÞÁˆ-ùÞ�ü�ßFC This example shows how to use interpolation, and also shows how itÁüÌß(% can work with multi-pattern regexes.Áùß�<�àãˆ-ü�àCÙ¾EÕà�üÝà ´¿Eü‚áA> r"(?[0-9]{2})-(?[0-9]{2})-(?[0-9]{4})",ÁüÈáA> r"(?[0-9]{4})-(?[0-9]{2})-(?[0-9]{2})",ÁDŽâžØ?ü›â&“�?üÆâ(ÆÒ?óâ�üûâ;8 let replacement = "year=$year, month=$month, day=$day";Á»ã�üÃã&# // This matches the first pattern.Áüîã:7 let hay = "On 14-03-2010, I became a Tennessee lamb.";Áü­ä,) re.captures(&mut cache, hay, &mut caps);ÁüÞä;8 let result = caps.interpolate_string(hay, replacement);Áüžå63 assert_eq!("year=2010, month=03, day=14", result);ÁÙå�üáå+( // And this matches the second pattern.Áü‘æ:7 let hay = "On 2010-03-14, I became a Tennessee lamb.";ÁüÐæ,àÐEü�ç;—ÑEüÁç6ÝÑEüç�ü„è.à�-<·èãˆ-”Êè¸/¹/º/ ¸/͸ ¹/ º/àþBÿˆ  æèˆ • $çèâìDõèÓ²\�éü¥÷�üµêAõÈEüûêIÁÉEüÉë,) interpolated string is written to `dst`.Áúë�ü‚ìHÑÊEüÏì%¤ËEùì�l�íÁˆ-“í�ü›íFüËEüæí(ÍÌE“î�<›îãˆ-ü§îCÙ¾Eïî�ü÷î ´¿EüœïAÆÍEüâïA’ÎED¨ðžØ?üµð&“�?üàð(ÆÒ?�ñ�ü•ñ;—ÏEÕñ�üÝñ&êÏEüˆò:›ÐEüÇò,àÐEüøò  let mut dst = String::new();Áü�ó=: caps.interpolate_string_into(hay, replacement, &mut dst);Áüßó30 assert_eq!("year=2010, month=03, day=14", dst);Á—ô�üŸô+«ÒEüÏô:áÒEüŽõ,àÐEü¿õ ·ØEüäõ=âØEü¦ö3ªÙEÞö�üæö.à�-<™÷ãˆ-¼¬÷»/¼/½/¾/ »/͸ ¼/ ½/ ¾/àþBÿˆ  Í÷ˆ – $Î÷âìDÜ÷Ó²\ô÷�œ�ødëø– �— �— �— — – —  àþUÿÛðä­4Üú– �˜ �˜ �˜ ˜ – ˜  ͶUÿ¶¯Eüï‡nü½ûAõÈEüƒüIÁÉEüÑü)& interpolated byte string is returned.Áÿü�ü‡ýHÑÊEüÔý%¤ËEþý�l†þÁˆ-˜þ�ü þFüËEüëþ(ÍÌE˜ÿ�< ÿãˆ-ü¬ÿCÙ¾Eôÿ�üüÿ ´¿Eü¡€AÆÍEüç€A’ÎED­�žØ?üº�&“�?üå�(ÆÒ?’‚�üš‚<9 let replacement = b"year=$year, month=$month, day=$day";ÁÛ‚�üã‚&êÏEüŽƒ;8 let hay = b"On 14-03-2010, I became a Tennessee lamb.";Áü΃,àÐEüÿƒ:7 let result = caps.interpolate_bytes(hay, replacement);Áü¾„<9 assert_eq!(&b"year=2010, month=03, day=14"[..], result);Áÿ„�ü‡…+«ÒEü·…;8 let hay = b"On 2010-03-14, I became a Tennessee lamb.";Áü÷…,àÐEü¨†:›âEüç†<àâE¨‡�ü°‡.à�-<ã‡ãˆ-Œö‡¿/À/Á/ ¿/͸ À/³÷ Á/³÷��Bÿˆ  ‘ˆˆ ™ $’ˆâìD ˆÓ²\¹ˆüÏ–ƒüÛ‰AõÈEü¡ŠIÁÉEüïŠ1. interpolated byte string is written to `dst`.Á¥‹�ü­‹HÑÊEüú‹%¤ËE¤Œ�l¬ŒÁˆ-¾Œ�üÆŒFüËEü‘�(ÍÌE¾��<Æ�ãˆ-üÒ�CÙ¾EšŽ�ü¢Ž ´¿EüÇŽAÆÍEü��A’ÎEDÓ�žØ?üà�&“�?ü‹�(ÆÒ?¸��üÀ�<ãàE�‘�ü‰‘&êÏEü´‘;ÆáEüô‘,àÐEÌ¥’ let mut dst = vec![];ÁüÃ’<9 caps.interpolate_bytes_into(hay, replacement, &mut dst);Áü„“96 assert_eq!(&b"year=2010, month=03, day=14"[..], dst);Á“�üÊ“+«ÒEüú“;ÃãEüº”,àÐEÌ딢éEü‰•<ÆéEüÊ•9�êEˆ–�ü�–.à�-<Öãˆ-´Ö–Â/Ã/Ä/Å/ Â/͸ Ã/³÷ Ä/³÷ Å/��Bÿˆ  ö–ˆ š $÷–âìD…—Ó²\ž—�œº—d–˜š �› �› �› › š ›  ��UÿÛðÓ×4�šš �œ �œ �œ œ š œ ÙÞE¶¯Eü‚¨nüñš?< This is a convenience routine for extracting the substringsÁüµ›IF corresponding to matching capture groups in the given `haystack`. TheÁüƒœKH `haystack` should be the same substring used to find the match spans inÁÔÓœ this `Captures` value.Áòœ�üúœJG This is identical to [`Captures::extract_bytes`], except it works withÁôÉ� `&str` instead of `&[u8]`.Áì��dô�Úº.…ž�ü�žA> This panics if the number of explicit matching groups in thisÁüÓžJG `Captures` value is less than `N`. This also panics if this `Captures`Áü¢Ÿ)& value does not correspond to a match.ÁП�üØŸFC Note that this does *not* panic if the number of explicit matchingÁü£ HE groups is bigger than `N`. In that case, only the first `N` matchingÁÌð  groups are extracted.ÁŽ¡�l–¡Áˆ-¨¡�<°¡ãˆ-ü¼¡6ôE÷¡�üÿ¡?< let re = PikeVM::new(r"([0-9]{4})-([0-9]{2})-([0-9]{2})")?;Áüâ&“�?üî¢(ÆÒ?›£�ü££:áÒEüâ£,àÐE쓤ŽÔDüµ¤74 let (full, [year, month, day]) = caps.extract(hay);Áüñ¤# assert_eq!("2010-03-14", full);Á왥 assert_eq!("2010", year);Á以 assert_eq!("03", month);ÁÔÜ¥ assert_eq!("14", day);Áû¥�üƒ¦96 // We can also ask for fewer than all capture groups.ÁüÁ¦+( let (full, [year]) = caps.extract(hay);Áüñ¦#†øEì™§³øE»§�üç.à�-<ö§ãˆ-<‰¨ž Æ/ Æ/͸ ž ›üE›üEŠBÿˆ ŠŸ Ÿ ‘¨ˆ Št•¨ � Š$¯¨âìã57% ›¨’ª� �¢ �¢ �¢ ¢ � µ¡üÓ¸wüµ«?ÞîEüù«I¨ïEüǬKüïEÔ—­ÑðE¶­�ü¾­DA This is identical to [`Captures::extract`], except it works withÁô‡® `&[u8]` instead of `&str`.Áª®�d²®Úº.î�üË®A¨òEü‘¯JôòEüà¯)ÉóEް�ü–°FŠôEüá°HÛôEÌ®±­õE̱�lÔ±Áˆ-æ±�<î±ãˆ-üú±6ôEµ²�ü½²?£öEü�³&“�?ü¬³(ÆÒ?Ù³�üá³;ÃãEü¡´,àÐEìÒ´ŽÔDüô´=: let (full, [year, month, day]) = caps.extract_bytes(hay);Áü¶µ$! assert_eq!(b"2010-03-14", full);Áôßµ assert_eq!(b"2010", year);Áì‚¶ assert_eq!(b"03", month);Áܤ¶ assert_eq!(b"14", day);ÁĶ�ü̶9²ùEüŠ·1. let (full, [year]) = caps.extract_bytes(hay);ÁüÀ·$½�Fôé·ë�FŒ¸�ü”¸.à�-<Ǹãˆ-lÚ¸¤ Ç/ Ç/͸ ¤ ³÷§…F§…FŠBÿˆ Š¥ ¥ 踈 ØüEtì¸ £ Š$†¹âìê/1% ò¸ìº£ �¨ �¨ �¨ ¨ £ ¼«lô½ü�¼NK Lower level "slot" oriented APIs. One does not typically need to use theseÁüܼLI when executing a search. They are instead mostly intended for folks thatÁü©½JG are writing their own regex engine while reusing this `Captures` type.Á͸ª « ¬ ­ ¼«Ðüˆ¾  Clear this `Captures` value.Á­¾�üµ¾IF After clearing, all slots inside this `Captures` value will be set toÁüƒ¿GD `None`. Similarly, any pattern ID that it was previously associatedÁüÏ¿! with (for a match) is erased.Áõ¿�üý¿JG It is not usually necessary to call this routine. Namely, a `Captures`ÁüÌÀHE value only provides high level access to the capturing groups of theÁü™ÁHE pattern that matched, and only low level access to individual slots.ÁüæÁFC Thus, even if slots corresponding to groups that aren't associatedÁü±ÂFC with the matching pattern are set, then it won't impact the higherÁüüÂKH level APIs. Namely, higher level APIs like [`Captures::get_group`] willÁüÌÃJG return `None` if no pattern ID is present, even if there are spans setÁä›Ä in the underlying slots.Á¼Ä�üÄÄFC Thus, to "clear" a `Captures` value of a match, it is usually onlyÁü�Å<9 necessary to call [`Captures::set_pattern`] with `None`.ÁÐÅ�lØÅÁˆ-êÅ�üòÅGD This example shows what happens when a `Captures` value is cleared.Á¾Æ�<ÆÆãˆ-üÒÆ=·³-ü”Ç6ôEÏÇ�ü×ÇA©�Eü�ÈJùÞ>ìÈ�üôÈ<‘ŽEìµÉŽÔDü×É# let slots: Vec> =ÁüÿÉB? caps.slots().iter().map(|s| s.map(|x| x.get())).collect();ÁüÆÊGD // Note that the following ordering is considered an API guarantee.ÁÜ’Ë assert_eq!(slots, vec![Á„²Ë Some(0),ÁŒÇË Some(17),Á„Ý˾”F„òË Some(5),Á„‡Ì Some(6),ÁŒœÌØ”F<²ÌåÑ3¾Ì�üÆÌKH // Now clear the slots. Everything is gone and it is no longer a match.ÁŒ–Í caps.clear();Áô¬Í�õ@üÏÍ#Í’Fü÷ÍBû’FܾΙ”FlÞÎÜ‘-lðÎÜ‘-l‚ÏÜ‘-l”ÏÜ‘-l¦ÏÜ‘-l¸ÏÜ‘-<ÊÏåÑ3ÖÏ�üÞÏ.à�-<‘Ðãˆ-,²ÐÈ/ È/͸Bÿ©  ¸Ð© ª $½Ðüßá5ü¹Ñ-* Set the pattern on this `Captures` value.ÁëÑ�üóÑFC When the pattern ID is `None`, then this `Captures` value does notÁü¾ÒIF correspond to a match (`is_match` will return `false`). Otherwise, itÁÜŒÓ corresponds to a match.Á¬Ó�ü´ÓDA This is useful in search implementations where you might want toÁüýÓDA initially call `set_pattern(None)` in order to avoid the cost ofÁüÆÔ:7 calling `clear()` if it turns out to not be necessary.Á…Õ�l�ÕÁˆ-ŸÕ�ü§ÕKH This example shows that `set_pattern` merely overwrites the pattern ID.Áü÷Õ;8 It does not actually change the underlying slot values.Á·Ö�<¿Öãˆ-üËÖ=·³-ü�×6ôEÈ×�üÐ×A©�Eü–ØJùÞ>åØ�üíØ<‘ŽEì®ÙŽÔDüÐÙ&# assert!(caps.pattern().is_some());ÁüûÙ#Í’Fü£ÚBû’FüêÚGÈ“FܶÛ™”F„ÖÛ¾”FŒëÛØ”F„�ܾ”F„–Ü�•F„«Ü›•FŒÀÜØ”F<ÖÜåÑ3âÜ�üêÜEB // Now set the pattern to None. Note that the slot values remain.ÁÜ´Ý caps.set_pattern(None);ÁôÔÝ�õ@ü÷Ý'$ assert!(!caps.pattern().is_some());Áü£Þ#Í’FüËÞBû’Fü’ßGÈ“FÜÞß™”F„þß¾”FŒ“àØ”F„©à¾”F„¾à�•F„Óà›•FŒèàØ”F<þàåÑ3Šá�ü’á.à�-<Åáãˆ-\æáÉ/ É/͸�ÇBÿ©  òá© « $÷á÷Œâü«ò-üºâIF Returns the underlying slots, where each slot stores a single offset.Áˆã�ü�ãJG Every matching capturing group generally corresponds to two slots: oneÁüßãGD slot for the starting position and another for the ending position.Áü«äGD Typically, either both are present or neither are. (The weasel wordÁü÷äJG "typically" is used here because it really depends on the regex engineÁüÆåFC implementation. Every sensible regex engine likely adheres to thisÁü‘æA> invariant, and every regex engine in this crate is sensible.)Á׿�üßæJG Generally speaking, callers should prefer to use higher level routinesÁü®ç<9 like [`Captures::get_match`] or [`Captures::get_group`].Áïç�ü÷çJG An important note here is that a regex engine may not reset all of theÁüÆèHE slots to `None` values when no match occurs, or even when a match ofÁü“éHE a different pattern occurs. But this depends on how the regex engineÁüàé$! implementation deals with slots.Á‰ê�l‘êÁˆ-£ê�ü«êJG This example shows how to get the underlying slots from a regex match.Áúê�<‚ëãˆ-ÌŽëóˆ-ü¬ë&Ó€Aü×ë30 util::primitives::{PatternID, NonMaxUsize},Á4�쟊-šì�ü¢ì ´¿E”Çì r"[a-z]+",Á”ÞìÍó:DõìžØ?ü‚íJùÞ>Ñí�üÙí.+ re.captures(&mut cache, "123", &mut caps);ÁüŒî9„èDüÊîFC // Note that the only guarantee we have here is that slots 2 and 3Áü•ïIF // are set to correct values. The contents of the first two slots areÁüãï74 // unspecified since the 0th pattern did not match.Á¬Ÿð let expected = &[Ál¹ðÜ‘-lËðÜ‘-äÝð NonMaxUsize::new(0),Áäþð NonMaxUsize::new(3),Á4Ÿñí©:üªñ'$ assert_eq!(expected, caps.slots());ÁÖñ�üÞñ.à�-<‘òãˆ-,²òÊ/ Ê/͸ Ê/æ–Bÿ©  ¸ò© ¬ $¹òüÍõ9üúòKH Returns the underlying slots as a mutable slice, where each slot storesÁ¤Êó a single offset.Áãó�üëóEB This tends to be most useful for regex engine implementations forÁüµô;8 writing offsets for matching capturing groups to slots.Áõô�üýô=: See [`Captures::slots`] for more information about slots.ÁLÔõË/ Ë/͸ Ë/æ–Bÿ©  Þõ© ­ $ãõüªö"͸¯  g¯ üÓö@ÖöÌ/Í/Î/ Ì/͸ Í/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Î/ÏÁBÿ®  Úö® ¯ $Ûöœ áöÜþù„…ú÷ �± ± ¨¹tQ¥Å²A�² ³ –út ú ú÷ ° ° ‹ã”´ú$´ú÷ ° ° �͸üËú2�µ µ ¨¹¶  g¶ Ðúü„û@‡ûÏ/Ð/Ñ/ Ï/¨¹ Ð/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ñ/ÏÁBÿ´  ‹û´ ¶ �$Œûœ ’ûb$Öû÷ �¹ ¹ ò¹3ôyJÊ-§¸ º » řǙș­É™Ê™àË™óG*¤�R{9 ¨Äò¹Bÿö$’÷ ô¾Fò¹Bÿ· · ¸ �Úû,Þû÷ · · |åû÷ · · ô¾Fü€ü%�½ ½ ò¹¾  g¾ …üü´ü@·üÒ/Ó/Ô/ Ò/ò¹ Ó/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ô/ÏÁBÿ¼  »ü¼ ¾ �$¼üœ ÂüüÔ…-�À À ¾ºÁ Â Ã Ä ÅQÆQÊQËQÃ Â Ä Ù…Lˆ†$�†¿ ¿ „³ü§†*$ª†Ù/ Ù/¾ºÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 „³Bÿ¿  ¯†¿  �$´†üÁ‡-LćÚ/ Ú/¾ºͶBÿ¿  ·¿ à �$χ¼›ˆ,žˆ¾ºBÿ¿ ¿ Ä �$¤ˆüÙˆ6�Æ Æ ¾ºÞˆü“‰>�È È ¾º˜‰t©Æ³»Ê Ï Ñ Ó Ô Ö × Ù Ú Û Ü Ý Þ ß à üÎëºü¾ÆDA Creates a new group info from a sequence of patterns, where eachÁü‡ÇGD sequence of patterns yields a sequence of possible group names. TheÁüÓÇIF index of each pattern in the sequence corresponds to its `PatternID`,Áü¡ÈIF and the index of each group in each pattern's sequence corresponds toÁüïÈ" its corresponding group index.Á–É�üžÉHE While this constructor is very generic and therefore perhaps hard toÁüëÉFC chew on, an example of a valid concrete type that can be passed toÁü¶ÊC@ this constructor is `Vec>>`. The outer `Vec`ÁüþÊDA corresponds to the patterns, i.e., one `Vec>` perÁüÇËDA pattern. The inner `Vec` corresponds to the capturing groups forÁü�ÌEB each pattern. The `Option` corresponds to the name of theÁüÚÌ  capturing group, if present.ÁÿÌ�ü‡ÍFC It is legal to pass an empty iterator to this constructor. It willÁüÒÍFC return an empty group info with zero slots. An empty group info isÁü�ÎHE useful for cases where you have no patterns or for cases where slotsÁüêÎA> aren't being used at all (e.g., for most DFAs in this crate).Á°Ï�d¸ÏÅÐ0ÉÏ�üÑÏGD This constructor returns an error if the given capturing groups areÁü�ÐGD invalid in some way. Those reasons include, but are not necessarilyÁ|éÐ limited to:ÁýÐ�ü…Ñ;8 * Too many patterns (i.e., `PatternID` would overflow).ÁüÅÑ=: * Too many capturing groups (e.g., `u32` would overflow).Áü‡ÒIF * A pattern is given that has no capturing groups. (All patterns mustÁüÕÒ<9 have at least an implicit capturing group at index `0`.)Áü–ÓFC * The capturing group at index `0` has a name. It must be unnamed.ÁüáÓHE * There are duplicate capturing group names within the same pattern.Áü®ÔEB (Multiple capturing groups with the same name may exist, but theyÁüøÔ# must be in different patterns.)Á Õ�ü¨ÕA> An example below shows how to trigger some of the above errorÁ|îÕ conditions.Á‚Ö�lŠÖÁˆ-œÖ�ü¤ÖFC This example shows how to build a new `GroupInfo` and query it forÁ„ïÖæ�7„×�<Œ×ãˆ-ü˜×2/ use regex_automata::util::captures::GroupInfo;ÁÏ×�ü××# let info = GroupInfo::new(vec![Áüÿ×  vec![None, Some("foo")],Áœ¤Ø vec![None],Áü¼Ø2/ vec![None, None, None, Some("bar"), None],ÁüóØ&# vec![None, None, Some("foo")],ÁDžÙžØ?ü«Ù,) // The number of patterns being tracked.ÁüÜÙ&# assert_eq!(4, info.pattern_len());ÁćÚ // 2 slots per groupÁü¤Ú$! assert_eq!(22, info.slot_len());ÁÍÚ�üÕÚ.à�-<ˆÛãˆ-”Û�üœÛ  # Example: empty `GroupInfo`ÁÁÛ�üÉÛFÊ×F„”Üæ�7©Ü�<±Üãˆ-ü½Ü2ÄØFôÜ�üüÜ" let info = GroupInfo::empty();ÁÔ£Ý // Everything is zero.ÁüÂÝ&# assert_eq!(0, info.pattern_len());ÁüíÝ# assert_eq!(0, info.slot_len());Á•Þ�ü�Þ.à�-<ÐÞãˆ-ÜÞ�üäÞ # Example: error conditionsÁˆß�ü�ßHE This example shows how to provoke some of the ways in which buildingÁÜÝß a `GroupInfo` can fail.Áýß�<…àãˆ-ü‘à2ÄØFÈà�üÐàIF // Either the group info is empty, or all patterns must have at leastÁÜžá // one capturing group.Áü¾á  assert!(GroupInfo::new(vec![Áüãá$! vec![None, Some("a")], // okÁÌŒâ vec![None], // okÁ̪â vec![], // not okÁŒÈâ ]).is_err());ÁüÞâ41 // Note that building an empty group info is OK.Áü—ãGD assert!(GroupInfo::new(Vec::>>::new()).is_ok());Áãã�üëãEB // The first group in each pattern must correspond to an implicitÁüµäHE // anonymous group. i.e., One that is not named. By convention, thisÁü‚åKH // group corresponds to the overall match of a regex. Every other groupÁüÒå-* // in a pattern is explicit and optional.Áü„æ>; assert!(GroupInfo::new(vec![vec![Some("foo")]]).is_err());ÁÇæ�üÏæGD // There must not be duplicate group names within the same pattern.Áü›ç ÂâFüÀç-* vec![None, Some("foo"), Some("foo")],ÁŒòçáãFüˆè:7 // But duplicate names across distinct patterns is OK.ÁüÇè ÂâFüìè ¼ÙFü‘é ¼ÙF„¶é ]).is_ok());ÁËé�üÓé.à�-<†êãˆ-’ê�üšêC@ There are other ways for building a `GroupInfo` to fail but areÁüâêIF difficult to show. For example, if the number of patterns given wouldÁ̰ë overflow `PatternID`.ÁÕë£ÛäÑBÿÉ ŒË ƒÌ ŠÍ Í Ì Ë É ‹À/ ÙëþÆƒÍ ÜëþÆ™Õ ßëŽP£Û´¯ì�P£ÛƒÍD¼ìŽPƒÍôÒì�PƒÍÔÔ„ß죙ÕTýì Ê £ÛƒÍ™ÕÖôà5¢¤�Ÿ˜š˜øÊ �Î �Î �Î Î Ê ‹ÛÜÝ€üÍû&# This creates an empty `GroupInfo`.Áøû�ü€üFC This is a convenience routine for calling `GroupInfo::new` with anÁüËü%" iterator that yields no elements.Áõü�lýüÁˆ-�ý�ü—ýHE This example shows how to build a new empty `GroupInfo` and query itÁ¤äý for information.Áýý�<…þãˆ-ü‘þ2ÄØFÈþ�üÐþ"üÝFÔ÷þ¨ÞFü–ÿ&ÍÞFüÁÿ(% assert_eq!(0, info.all_group_len());Áüîÿ#þÞF–€�üž€.à�-<Ñ€ãˆ-,䀳»BÿÉ É Ï µ�üº�Cüÿ�IF Return the capture group index corresponding to the given name in theÁüÍ‚DA given pattern. If no such capture group name exists in the givenÁü–ƒ&# pattern, then this returns `None`.ÁÁƒ�üɃA> If the given pattern ID is invalid, then this returns `None`.Á�„�ü—„GD This also returns `None` for all inputs if these captures are emptyÁüã„HE (e.g., built from an empty [`GroupInfo`]). To check whether capturesÁü°…EB are present for a specific pattern, use [`GroupInfo::group_len`].Áú…�l‚†Áˆ-”†�üœ†JG This example shows how to find the capture index for the given patternÁœë† and group name.Áƒ‡�ü‹‡HE Remember that capture indices are relative to the pattern, such thatÁü؇HE the same capture index value may refer to different capturing groupsÁÔ¥ˆ for distinct patterns.ÁĈ�<̈ãˆ-ü؈=·³-üš‰8ÿ†A׉�ü߉@= let (pid0, pid1) = (PatternID::must(0), PatternID::must(1));Á¤Š�ô¬Š let nfa = NFA::new_many(&[ÁüÏŠ'$ r"a(?P\w+)z(?P\s+)",ÁÔûŠ r"a(?P\d+)z",ÁDš‹žØ?ü§‹" let groups = nfa.group_info();Áü΋63 assert_eq!(Some(2), groups.to_index(pid0, "foo"));Áü‰ŒFC // Recall that capture index 0 is always unnamed and refers to theÁüÔŒJG // entire pattern. So the first capturing group present in the patternÁü£�'$ // itself always starts at index 1.ÁüÏ�63 assert_eq!(Some(1), groups.to_index(pid1, "foo"));ÁŠŽ�ü’ŽEB // And if a name does not exist for a particular pattern, None isÁ„ÜŽ // returned.ÁüñŽ52 assert!(groups.to_index(pid0, "quux").is_some());Áü«�52 assert!(groups.to_index(pid1, "quux").is_none());Áå��üí�.à�-< �ãˆ-DÁ�ß/à/ ß/³»‹ã à/ͶBÿÉ  Ê�É Ñ $Ë�÷ŒQA‚ \Aè‘Ñ �Ò �Ò �Ò Ò Ñ ·‚ü” Iü…’IF Return the capture name for the given index and given pattern. If theÁüÓ’GD corresponding group does not have a name, then this returns `None`.ÁŸ“�ü§“;8 If the pattern ID is invalid, then this returns `None`.Áç“�üï“JG If the group index is invalid for the given pattern, then this returnsÁü¾”KH `None`. A group `index` is valid for a pattern `pid` in an `nfa` if andÁüŽ•30 only if `index < nfa.pattern_capture_len(pid)`.ÁÆ•�üΕGÿöFüš–HÑ÷Füç–E¤øF±—�l¹—Áˆ-Ë—�üÓ—GD This example shows how to find the capture group name for the givenÁ䟘 pattern and group index.ÁÀ˜�<Șãˆ-üÔ˜=·³-ü–™8ÿ†AÓ™�üÛ™@«üF š�ô¨š‚ýFüËš%" r"a(?P\w+)z(\s+)x(\d+)",Áüõš r"a(\d+)z(?P\s+)",ÁD™›žØ?ü¦›"�þFüÍ›.+ assert_eq!(None, groups.to_name(pid0, 0));Áü€œ52 assert_eq!(Some("foo"), groups.to_name(pid0, 1));Áüºœ.+ assert_eq!(None, groups.to_name(pid0, 2));Áüíœ.+ assert_eq!(None, groups.to_name(pid0, 3));Á ��ü¨�.+ assert_eq!(None, groups.to_name(pid1, 0));ÁüÛ�.+ assert_eq!(None, groups.to_name(pid1, 1));ÁüŽž52 assert_eq!(Some("foo"), groups.to_name(pid1, 2));ÁüÈž?< // '3' is not a valid capture index for the second pattern.ÁüŒŸ.+ assert_eq!(None, groups.to_name(pid1, 3));Á¿Ÿ�üÇŸ.à�-<úŸãˆ-<› á/ á/³»‹ãřǙș­É™Ê™àË™óG*¤�R{9  á/BÿÉ  £ É Ó $¤ ÷ŒºGÓŽÄGü²¬Hüå¡IF Return an iterator of all capture groups and their names (if present)Áì³¢ for a particular pattern.ÁÕ¢�üÝ¢GD If the given pattern ID is invalid or if this `GroupInfo` is empty,Áü©£)& then the iterator yields no elements.Á×£�üߣFC The number of elements yielded by this iterator is always equal toÁüª¤@= the result of calling [`GroupInfo::group_len`] with the sameÁ„嵐‰9„¥�lŒ¥Áˆ-ž¥�ü¦¥G„ÐAÌò¥ÕÐA�¦�<˜¦ãˆ-ü¤¦8ÿ†Aá¦�üé¦:°ÑAü¨§GõÑAüô§KÇÒAüĨJ�ÓAü“© òÓAü¸©B�ÔAôÿ©¤¡.¢ª�üªªB…ÕAüñªKÒÕA¼Á«§ÖAÝ«�üå«.à�-<˜¬ãˆ-l¹¬â/ â/³»‹ã��Å·�Ç,÷ ZŸ×]áû”â/BÿÉ  ǬÉ Ô $Ȭ÷ŒHLLž®Ô �Õ �Õ �Õ Õ Ô ’—üʼ0üô®JG Return an iterator of all capture groups for all patterns supported byÁüïJG this `GroupInfo`. Each item yielded is a triple of the group's patternÁü’°>; ID, index in the pattern and the group's name, if present.ÁÕ°�lݰÁˆ-ï°�ü÷°GD This example shows how to get a list of all capture groups found inÁüñ41 one NFA, potentially spanning multiple patterns.Áü±�<„²ãˆ-ü�²8ÿ†AͲ�ôÕ²‚ýF´ø²Þ¿El“³ r"a",Á|¥³ r"(a)",ÁD¹³žØ?ÄÆ³û¨:üã³&×ÁEüŽ´-ˆÂEüÀ´&ÀÂEüë´&ÓÃEü–µ&# (PatternID::must(2), 1, None),Á4Áµí©:ü̵4âÆEü…¶/, nfa.group_info().all_names().collect();Áô¹¶¤¡.ܶ�üä¶.à�-<—·ãˆ-£·�ü«·GD Unlike other capturing group related routines, this routine doesn'tÁü÷·63 panic even if captures aren't enabled on this NFA:Á²¸�<º¸ãˆ-üƸ<·�?‡¹�ì�¹±Ã/ü±¹Eá—A´û¹Ïú8Ô–º r"(?Pa)",ÁŒµº r"a",ÁœËº r"(a)",Ád㺽û8üôº?< // When captures aren't enabled, there's nothing to return.Áü¸»85 assert_eq!(0, nfa.group_info().all_names().count());Áõ»�üý».à�-<°¼ãˆ-LѼã/ ã/³»––œ¸˜Ùx÷ ™Ÿ÷ šѸ÷ ›ƒ ÷ Ë?jUªÍ÷ã/BÿÉ  Û¼É Ö $ܼü·Çpü»¾C@ Returns the starting and ending slot corresponding to the givenÁüƒ¿HE capturing group for the given pattern. The ending slot is always oneÁüп)& more than the starting slot returned.Áþ¿�ü†ÀKH Note that this is like [`GroupInfo::slot`], except that it also returnsÁüÖÀ*' the ending slot value for convenience.Á…Á�ü�ÁGD If either the pattern ID or the capture index is invalid, then thisÁŒÙÁ returns None.ÁïÁ�l÷ÁÁˆ-‰Â�ü‘ÂFC This example shows that the starting slots for the first capturingÁüÜÂ'$ group of each pattern are distinct.ÁˆÃ�<�Ããˆ-üœÃ8ÿ†AÙÃ�üáÃ*' let nfa = NFA::new_many(&["a", "b"])?;Á|�Ä assert_ne!(Áü¤Ä63 nfa.group_info().slots(PatternID::must(0), 0),ÁüßÄ63 nfa.group_info().slots(PatternID::must(1), 0),Á4šÅÄ�-¥Å�ü­Å@= // Also, the start and end slot values are never equivalent.ÁüòÅKH let (start, end) = nfa.group_info().slots(PatternID::ZERO, 0).unwrap();ÁÜÂÆ assert_ne!(start, end);ÁâÆ�üêÆ.à�-<�Çãˆ-,¾Çä/ ä/³»‹ã¡„BÿÉ  ÍÇÉ àƒ$ÎÇ÷ŒQÓŽQ<ŽÊ× �Ø �Ø �Ø Ø × —¢üØÐGüµÊHE Returns the starting slot corresponding to the given capturing groupÁü‚ËFC for the given pattern. The ending slot is always one more than theÁœÍË value returned.ÁåË�üíËGÒ©GŒ¹Ì£ªGÏÌ�l×ÌÁˆ-éÌ�üñÌFçªGü¼Í'¸«GèÍ�<ðÍãˆ-üüÍ8ÿ†A¹Î�üÁÎ*¡¬G|ðÎÕ¬Gü„Ï52 nfa.group_info().slot(PatternID::must(0), 0),Áü¾Ï52 nfa.group_info().slot(PatternID::must(1), 0),Á4øÏÄ�-ƒÐ�ü‹Ð.à�-<¾Ðãˆ-$ßÐå/ å/³»‹ãͶBÿÉ  äÐÉ Ë¡$åÐ÷ŒéUÓŽóUü�Þ"üÉ×=: Returns the total number of patterns in this `GroupInfo`.Á‹Ø�ü“ØC@ This may return zero if the `GroupInfo` was constructed with noÁlÛØ patterns.ÁíØ�üõØH¬�AüÂÙFC `GroupInfo` construction will fail if too many patterns are added.Á�Ú�l•ÚÁˆ-§Ú�<¯Úãˆ-ü»Ú+™ÿ>ëÚ�üóÚ>͇Aü¶Û2/ assert_eq!(3, nfa.group_info().pattern_len());ÁíÛ�üõÛ!Ç�Aü›Ü2/ assert_eq!(0, nfa.group_info().pattern_len());ÁÒÜ�üÚÜ"°‘Aü�Ý2/ assert_eq!(1, nfa.group_info().pattern_len());Á¸Ý�üÀÝ.à�-<óÝãˆ-\”Þæ/ æ/³»BÿÉ   ÞÉ Ëý$¡ÞüÐê0üÚÞ52 Return the number of capture groups in a pattern.Á”ß�üœß85 If the pattern ID is invalid, then this returns `0`.ÁÙß�láßÁˆ-óß�üûßGD This example shows how the values returned by this routine may varyÁüÇà2/ for different patterns and NFA configurations.Áþà�<†áãˆ-ü’áIF use regex_automata::{nfa::thompson::{NFA, WhichCaptures}, PatternID};Áàá�üèá&# let nfa = NFA::new(r"(a)(b)(c)")?;Áü“âGD // There are 3 explicit groups in the pattern's concrete syntax andÁüßâ@= // 1 unnamed and implicit group spanning the entire pattern.Áü¤ã?< assert_eq!(4, nfa.group_info().group_len(PatternID::ZERO));Áèã�üðã  let nfa = NFA::new(r"abc")?;Áü•ä0- // There is just the unnamed implicit group.ÁüÊä?< assert_eq!(1, nfa.group_info().group_len(PatternID::ZERO));ÁŽå�ì–å±Ã/ü¸åEá—AÄ‚æ .build(r"abc")?;ÁüŸæ74 // We disabled capturing groups, so there are none.ÁüÛæ?< assert_eq!(0, nfa.group_info().group_len(PatternID::ZERO));ÁŸç�ì§ç±Ã/üÉçEá—Aô“è .build(r"(a)(b)(c)")?;Áü¶èIF // We disabled capturing groups, so there are none, even if there areÁü„é.+ // explicit groups in the concrete syntax.Áü·é?�ÅGûé�üƒê.à�-<¶êãˆ-L×êç/ ç/³»‹ãBÿÉ  áêÉ Ú¥$âê÷ŒƒXü‘ù$ü¬ëB? Return the total number of capture groups across all patterns.Áóë�üûëFC This includes implicit groups that represent the entire match of aÁdÆì…–.×ì�lßìÁˆ-ñì�üùìG“¾GüÅí2å¾Güí�<„îãˆ-ü�îI½¿GÞî�üæî&žÀGü‘ïGÏÀGüÝï@¡ÁGü¢ð41 assert_eq!(4, nfa.group_info().all_group_len());ÁÛð�üãð ÃÂGüˆñ0îÂGü½ñ41 assert_eq!(1, nfa.group_info().all_group_len());Áöñ�üþñ30 let nfa = NFA::new_many(&["(a)", "b", "(c)"])?;Áü¶ò41 // Each pattern has one implicit groups, and twoÁüïò-* // patterns have one explicit group each.Áü¡ó41 assert_eq!(5, nfa.group_info().all_group_len());ÁÚó�ìâó±Ã/ü„ôEá—AÄÎôœÄGüëô7¿ÄGü§õ41 assert_eq!(0, nfa.group_info().all_group_len());Áàõ�ìèõ±Ã/üŠöEá—AôÔöôÅGü÷öI�ÆGüÅ÷.ñÆGüø÷?�ÅG¼ø�üÄø.à�-<÷øãˆ-l˜ùè/ è/³»BÿÉ  ¦ùÉ Ü $§ùüÜ€üßùDA Returns the total number of slots in this `GroupInfo` across allÁl¨ú†¸Gºú�üÂúKH The total number of slots is always twice the total number of capturingÁü’û85 groups, including both implicit and explicit groups.ÁÏû�l×ûÁˆ-éû�üñûGD This example shows the relationship between the number of capturingÁ¬½ü groups and slots.Á×ü�<ßüãˆ-üëü2ÄØF¢ý�üªý&# // There are 11 total groups here.ÁüÕý#ŽÙFüýý ¼ÙFœ¢þæÙFüºþ2„ÚFüñþ&ÁÚFDœÿžØ?ü©ÿ0- // 2 slots per group gives us 11*2=22 slots.ÁüÞÿ$ŠÜF‡€�ü�€.à�-<€ãˆ-Dã€é/ é/³»BÿÉ  ì€É ä²$í€üÊŠ(ü´�DA Returns the total number of slots for implicit capturing groups.Áý��ü…‚GD This is like [`GroupInfo::slot_len`], except it doesn't include theÁüÑ‚EB explicit slots for each pattern. Since there are always exactly 2Áü›ƒKH implicit slots for each pattern, the number of implicit slots is alwaysÁüëƒ*' equal to twice the number of patterns.Áš„�l¢„Áˆ-´„�ü¼„GêÓGüˆ….+ groups, implicit slots and explicit slots.Á»…�<Ã…ãˆ-üÏ…2ÄØF††�üކ&’ÕGü¹†KH let info = GroupInfo::new(vec![vec![None, Some("foo"), Some("bar")]])?;Áü‰‡0›ÖGü¾‡# assert_eq!(6, info.slot_len());Áüæ‡IF // 2 implicit slots per pattern gives us 2 implicit slots since thereÁ¤´ˆ // is 1 pattern.Áü͈,) assert_eq!(2, info.implicit_slot_len());ÁüþˆA> // 2 explicit capturing groups gives us 2*2=4 explicit slots.Áüĉ,) assert_eq!(4, info.explicit_slot_len());Áõ‰�üý‰.à�-<°Šãˆ-ŒÑŠê/ ê/³»BÿÉ  ãŠÉ ”¹$äŠüΕ(üŸ‹DA Returns the total number of slots for explicit capturing groups.Áè‹�üð‹GÁØGü¼ŒKH implicit slots for each pattern. (There are always 2 implicit slots forÁ”Œ� each pattern.)Á£��ü«�IF For a non-empty `GroupInfo`, it is always the case that `slot_len` isÁüù�HE strictly greater than `explicit_slot_len`. For an empty `GroupInfo`,ÁüÆŽFC both the total number of slots and the number of explicit slots isÁD‘� `0`.Áž��l¦�Áˆ-¸��üÀ�GêÓGüŒ�.¥ÛG¿��<Ç�ãˆ-üÓ�2ÄØFŠ‘�ü’‘&’ÕGü½‘K¤ÜGü�’0›ÖGüÂ’#‰ÝGüê’I·ÝG¤¸“ŠÞGüÑ“,©ÞGü‚”AàÞGüÈ”,¬ßGù”�ü�•.à�-<´•ãˆ-ŒÕ•ë/ ë/³»BÿÉ  ç•É ß $è•ü«˜#üÅ–<9 Returns the memory usage, in bytes, of this `GroupInfo`.Á†—�üŽ—IF This does **not** include the stack size used up by this `GroupInfo`.ÁüÜ—<9 To compute that, use `std::mem::size_of::()`.Ád²˜ì/ ì/³»BÿÉ  ¿˜É œµ$À˜”ݘ ó˜œÀ¡Ó‰|®¡¼¨¡tÅ¡÷ »ÈœÎ¥ƒ¼ä å è ë ì í üÉ©-|Ì©÷ ð/ ð/ƒ¼‹ãBÿã  Ü©ã ¦×$á©÷Œç©üþ³®”�´÷ ñ/ ñ/ƒ¼‹ãÈÞÝìÊÞBÿã Šæ æ  ¬´ã þÆ™Ñ ”´£™ÑT—´ å ™Ñ$±´÷ŒËu öÖuŠö&vDF�¹å �ç �ç �ç ç å ÛÑü‡Ç=ŒŠÇ÷ ò/ ò/ƒ¼ÊÞBÿã  œÇã ‚á$¡ÇüÓÇ)„ìÇ•Îè �ê �ê �ê ê è ê ÇÚÕÚô€Ñ\ƒÑ÷ ó/ ó/ƒ¼Bÿã  �Ñã Ú¯$�Ñü÷Ò,LúÒ÷ ô/ ô/ƒ¼‹ãBÿã  „Óã ©±$…Ó÷Œ‹Óü…Ø&tˆØ÷ õ/ õ/ƒ¼ÈÞBÿã  —Øã ‘µ$˜Ø\óÛí �î �î �î î í î »­ÈÞUÿœâîì¼ð ñ ò ó ô üüî;Œÿî÷ êæì¼Bÿï ï ¤Î»\‘ïü’ðH|•ð÷ ‹ãì¼Bÿï ï áû¿‰<¥ð¹¶<¹ðüÕñ7tØñ÷ ‹ãì¼Bÿï ï ‹Ö¿‰<çñüéò>¬ìò÷ ‹ãì¼Bÿï ï ÞÕ¿‰<‚óüžô>L¡ô÷ þ/‹ã þ/ì¼Bÿï  Åôï È׿‰<«ô‚ $¿ôü§ö)Ó‰|•ö¼�öì¼ö ‚ö ü×ö>4Úöÿ/ ÿ/ì¼Å™Ç™È™­É™Ê™àË™óG*¤�R{9  ÿ/Û€3Bÿõ  áöõ ö $âöüâù*ì¼ø ¥gø ü“úD–ú€0�0‚0 €0ì¼ �0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‚0ÏÁBÿ÷  šú÷ ø $›úœ ¡úÄæúüà‡#��Å·�Ç,÷ ZŸ×]áû”û üŠˆ,,�ˆ÷ –úGBÿú ú û üòˆ/�ý ý …¿þ ÿ �‚ÅQÆQÊQËQ�ÿ ‚÷ˆL¨‰$­‰ü ü ô¾Füʉ-$͉‡0 ‡0…¿Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ô¾FBÿü  Ò‰ü ÿ �$׉•Šÿ �€�€�€€ÿ €°ÕBˆêUÿü²Š-LµŠˆ0 ˆ0…¿ûÄFBÿü  ¿Šü ��$À쉋,Œ‹…¿Bÿü ü ‚�$’‹üÄ‹8�„„…¿É‹ü€Œ@�††…¿…Œüœ�+�ˆˆí¿‰ŠÅQÆQŠ¡�LÎ�$Ó�‡‡‹ãô¾Fü„‘A$‡‘Œ0 Œ0í¿Å™Ç™È™­É™Ê™àË™óG*¤�R{9 É€HBÿ‡ Œ‘‡ Š�$‘‘t˜ 1üü!÷ Provides convenience routines for escaping raw bytes. Since this crate tends to deal with `&[u8]` everywhere and the default `Debug` implementation just shows decimal integers, it makes debugging those representations quite difficult. This module provides types that show `&[u8]` as if it were a string, with invalid UTF-8 escaped into its byte-by-byte hex representation. Á4  1�‘Ÿ ³f$�!à‹ŒŒ‚!ü½#!ÚÀŽ gŽüç@!ê!Ž0�0�0 Ž0ÚÀ �0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡�0ÏÁBÿ� î!� Ž$ï!œ õ!� !ŽŽ�‡ü… =!: Provides a convenient `Debug` implementation for `&[u8]`.Áà !�üÇ M!J This generally works best when the bytes are presumed to be mostly UTF-8,Áü• I!F but will work for anything. For any bytes that aren't UTF-8, they areÁüß $!! emitted as hex escape sequences.Ál�!�’’²Á–| ?õƒ‘“þÅ1²ÁBÿ‰FþÅ1²ÁBÿ�� ‘��!d¡!��þÅ1ü±/!�••²Á– g–¶!üç@!ê!‘0’0“0 ‘0²Á ’0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡“0ÏÁBÿ” î!” –�$ï!œ õ!œÂ 1ü¡œ Provides routines for interpolating capture group references. That is, if a replacement string contains references like `$foo` or `${foo1}`, then they are replaced with the corresponding capture values for the groups named `foo` and `foo1`, respectively. Similarly, syntax like `$1` and `${1}` is supported as well, with `1` corresponding to a capture group index and not a name. This module provides the free functions [`string`] and [`bytes`], which interpolate Rust Unicode strings and byte strings, respectively. # Format These routines support two different kinds of capture references: unbraced and braced. For the unbraced format, the format supported is `$ref` where `name` can be any character in the class `[0-9A-Za-z_]`. `ref` is always the longest possible parse. So for example, `$1a` corresponds to the capture group named `1a` and not the capture group at index `1`. If `ref` matches `^[0-9]+$`, then it is treated as a capture group index itself and not a name. For the braced format, the format supported is `${ref}` where `ref` can be any sequence of bytes except for `}`. If no closing brace occurs, then it is not considered a capture reference. As with the unbraced format, if `ref` matches `^[0-9]+$`, then it is treated as a capture group index and not a name. The braced format is useful for exerting precise control over the name of the capture reference. For example, `${1}a` corresponds to the capture group reference `1` followed by the letter `a`, where as `$1a` (as mentioned above) corresponds to the capture group reference `1a`. The braced format is also useful for expressing capture group names that use characters not supported by the unbraced format. For example, `${foo[bar].baz}` refers to the capture group named `foo[bar].baz`. If a capture group reference is found and it does not refer to a valid capture group, then it will be replaced with the empty string. To write a literal `$`, use `$$`. To be clear, and as exhibited via the type signatures in the routines in this module, it is impossible for a replacement string to be invalid. A replacement string may not have the intended semantics, but the interpolation procedure itself can never fail. ÁÓ«Œ® 1̨ 1\Ê 1œ ©ª­¦¼å4·ëI—™üÄ…C—šì4ä ½—›»,§t¯HD¿9ÜÏ*üÓ«üíOL Accepts a replacement string and interpolates capture references with theirÁ̽ corresponding values.Á×�üÛLI `append` should be a function that appends the string value of a captureÁü¨IF group at a particular index to the string given. If the capture groupÁüò63 index is invalid, then nothing should be appended.Á©�ü­LI `name_to_index` should be a function that maps a capture group name to aÁüúLI capture group index. If the given name doesn't exist, then `None` shouldÁ„Ç be returned.ÁØ�üÜNK Finally, `dst` is where the final interpolated contents should be written.Áü«MJ If `replacement` contains no capture group references, then `dst` will beÁüù  equivalent to `replacement`.Áš�üžEB See the [module documentation](self) for details about the formatÁtä supported.Áó�l÷Áˆ-…�<‰ãˆ-ü‘*' use regex_automata::util::interpolate;Á¼�üÀ ·ØEÄá interpolate::string(Á¼ú "foo $bar baz",Á´’ |index, dst| {ÁÜ© if index == 0 {ÁüÅ$! dst.push_str("BAR");ÁlêËÙ7Tø«Ò=„ƒ |name| {Áô” if name == "bar" {Á¼³ Some(0)Á¤Ë } else {Á¤à NoneÁlõËÙ7Tƒ«Ò=ŒŽ &mut dst,Á4 Ä�-ü§# assert_eq!("foo BAR baz", dst);Á<Ëãˆ-4Ú”0•0 ”0‰¢�¢ •0àþBÿå”�‹•žž� ÷þƉ¢ô�þÆ�¢üÄ!–0ˆ#‰¢ –0àþÌ’–0�#‰¢§¬H—0ˆ#�¢ —0äÉ—0�#�¢è¬HͶlØ œ‰¢�¢Ó²\êì²4…ì´lµ�œ—ÈÊÄÆ$âœ�Ÿ�Ÿ�ŸŸœƒ¢üà/­üâ%NK Accepts a replacement byte string and interpolates capture references withÁü±& their corresponding values.ÁÑ&�üÕ&IF `append` should be a function that appends the byte string value of aÁüŸ'HE capture group at a particular index to the byte string given. If theÁüè'DA capture group index is invalid, then nothing should be appended.Á­(�ü±(LŒ¡Hüþ(Lâ¡H„Ë)·¢HÜ)�üà)NÝ¢Hü¯*Mµ£Hüý* Œ¤Hž+�ü¢+E¤Htè+�¥H÷+�lû+Áˆ-‰,�<�,ãˆ-ü•,*Ú¥HÀ,�ÌÄ,¢éE¼Þ, interpolate::bytes(ÁÄö, b"foo $bar baz",Á´�-è¦Hܦ-‡§HüÂ-.+ dst.extend_from_slice(b"BAR");Álñ-ËÙ7Tÿ-«Ò=„Š.ó§Hô›.Œ¨H¼º.³¨H¤Ò.Ó¨H¤ç.ð¨Hlü.ËÙ7TŠ/«Ò=Œ•/§©H4§/Ä�-ü®/)& assert_eq!(&b"foo BAR baz"[..], dst);Á<Ø/ãˆ-,ç/˜0™0 ˜0³÷ü»�¢ ™0��BÿÆ•¡‹•¢¡¢ ƒ0þÆü»üš0…¬HüÒ0!š0ˆ#ü» š0��ÔŸ0š0�#ü»¦·H›0ˆ#�¢ ›0ä×0›0�#�¢ç·HͶlæ0  ü»�¢Ó²\ö/ì²4’0ì´lÃ0�œ,£ÀÂÄÆ$ä3 �£�£�££ ö»üë="�¥¥€Ã¦®¦ð=ô”>$—>¨Ä€ÃBÿ¤¤ ¦�® œ>üÔ>!¸Ä¨®¨üü>!$ÿ>¸ÄBÿ§§ ¨® „?üðB=dóB—ª0 ª0³÷řǙș­É™Ê™àË™óG*¤�R{9 ¦¦¶¹¨й—©’—Ôx³±5{:ª0Bÿ �Cé¥Ó²\€CüžLJœ¡L—«0 «0³÷řǙș­É™Ê™àË™óG*¤�R{9 ¦¦¶¹¨й—©’—Ôx³±5{:«0Bÿ ºL ªˆ@µLŸ ÅL$×Mª�«�«�««ª«š¢$ Nª�¬�¬�¬¬ª¬š¢üéS%œìS—Bÿ ­˜ €Td× 1üí"è Generic helpers for iteration of matches from a regex engine in a haystack. The principle type in this module is a [`Searcher`]. A `Searcher` provides its own lower level iterator-like API in addition to methods for constructing types that implement `Iterator`. The documentation for `Searcher` explains a bit more about why these different APIs exist. Currently, this module supports iteration over any regex engine that works with the [`HalfMatch`], [`Match`] or [`Captures`] types. Á$ß 1ÌêˆÖàáéêòó¦—D¤"Ô®¯ŽéLÈ"Š%®±—,Ó"ò$®²á�,Ú"›%®³ƒïTá"í%®´ü�"Ó«Œõ"Ìï"�œ²"qs`bNP<>¬×;"Þ2¶¶“Å·¸º¼¾ÀÂÄÆÈÊÜ;"üÈ>,"üó;;"8 Create a new fallible non-overlapping matches iterator.Á³<"�ü» " such as a prefilter scanner.ÁÏ>"ªú“ÅBÿµµ ·Þ2¬—,Ó>"üÂA+"ü³?6"3 Returns the current `Input` used by this searcher.Áî?"�üö?D"A The `Input` returned is generally equivalent to the one given toÁü¿@I"F [`Searcher::new`], but its start position may be different to reflectÁü�A0"- the start of the next search to be executed.Á,ÉA"¹ ¹“Å ¹ªúBÿµÏA"µ ¸Þ2$×A"ü‚Y’"ü�BJ"G Return the next half match for an infallible search if one exists, andÁüÞB!" advance to the next position.Á„C"�üŒCE"B This is like `try_advance_half`, except errors are converted intoÁ\ÖC"ÞÝ6æC"�dîC"Úº.ÿC"�ü‡DK"H If the given closure returns an error, then this panics. This is usefulÁü×DI"F when you know your underlying regex engine has been configured to notÁ¤¥E" return an error.Á¾E"�lÆE"Áˆ-ØE"�üàEJ"G This example shows how to use a `Searcher` to iterate over all matchesÁü¯F9"6 when using a DFA, which only provides "half" matches.ÁíF"�<õF"ãˆ-Ì�G"óˆ-ÌŸG" hybrid::dfa::DFA,Áì½G" util::iter::Searcher,ÁÌßG"áÁ/4ýG"ŸŠ-ˆH"�ü�H6"3 let re = DFA::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?;ÁüËH&"“�?öH"�üþH?"< let input = Input::new("2010-03-14 2016-10-08 2020-10-22");ÁüÂI&"# let mut it = Searcher::new(input);ÁíI"�üõI0"- let expected = Some(HalfMatch::must(0, 10));ÁüªJL"I let got = it.advance_half(|input| re.try_search_fwd(&mut cache, input));ÁôûJ"¤¡.žK"�ü¦K0"- let expected = Some(HalfMatch::must(0, 21));ÁüÛKL"ÂÔHô¬L"¤¡.ÏL"�ü×L0"- let expected = Some(HalfMatch::must(0, 32));ÁüŒML"ÂÔHôÝM"¤¡.€N"�ĈN"éŠ:ü¥NL"ÂÔHôöN"¤¡.™O"�ü¡O."à�-<ÔO"ãˆ-àO"�üèOK"H This correctly moves iteration forward even when an empty match occurs:Á¸P"�<ÀP"ãˆ-ÌÌP"óˆ-ÌêP"ºÑHìˆQ"ÜÑH̪Q"áÁ/4ÈQ"ŸŠ-ÓQ"�ôÛQ" let re = DFA::new(r"a|")?;ÁüþQ&"“�?©R"�ü±R#" let input = Input::new("abba");ÁüÙR&"ÌÓH„S"�üŒS/", let expected = Some(HalfMatch::must(0, 1));ÁüÀSL"ÂÔHô‘T"¤¡.´T"�ü¼T/", let expected = Some(HalfMatch::must(0, 2));ÁüðTL"ÂÔHôÁU"¤¡.äU"�üìU/"ã»-ü VL"ÂÔHôñV"¤¡.”W"�ÄœW"éŠ:ü¹WL"ÂÔHôŠX"¤¡.­X"�üµX."à�-<èX"ãˆ-d‰Y"²0 ²0“ŪÆõÚ Bÿµ‚»» ™Y"µ÷ŽC –Y"°0±0ˆ#ªÆ °0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寱0üÙY:"°0±0�#ªÆÀÞHçÝ üîY%" ºÞ2ªÆ$žY"­šàµÌÎü¥x…"ü©\E"B Return the next match for an infallible search if one exists, andÁüó\!"ÜÌH™]"�ü¡]C"@ The search is advanced even in the presence of empty matches byÁüé]C"@ forbidding empty matches from overlapping with any other match.Á±^"�ü¹^H"E This is like `try_advance`, except errors are converted into panics.Á†_"�dŽ_"Úº.Ÿ_"�ü§_K"”ÎHü÷_I"éÎH¤Å`"»ÏHÞ`"�læ`"Áˆ-ø`"�ü€aJ"þÏHüÏa*"' when using a regex based on lazy DFAs:Áþa"�<†b"ãˆ-Ì’b"óˆ-ì°b" hybrid::regex::Regex,ÁìÒb"ÜÑH¬ôb"šÞ>4Žc"ŸŠ-™c"�ü¡c8"5 let re = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?;ÁüÞc&"“�?‰d"�ü‘d?"ƒÓHüÕd&"ÌÓH€e"�üˆe/", let expected = Some(Match::must(0, 0..10));Áü¼eC"@ let got = it.advance(|input| re.try_search(&mut cache, input));Áô„f"¤¡.§f"�ü¯f0"- let expected = Some(Match::must(0, 11..21));ÁüäfC"âåHô¬g"¤¡.Ïg"�ü×g0"- let expected = Some(Match::must(0, 22..32));ÁüŒhC"âåHôÔh"¤¡.÷h"�Äÿh"éŠ:üœiC"âåHôäi"¤¡.‡j"�ü�j."à�-<Âj"ãˆ-Îj"�üÖjK"H This example shows the same as above, but with the PikeVM. This exampleÁü¦kF"C is useful because it shows how to use this API even when the regexÁüñk-"* engine doesn't directly return a `Match`.Á£l"�<«l"ãˆ-Ì·l"óˆ-üÕl&"Ó€Aì€m"ÜÑH¬¢m"šÞ>4¼m"ŸŠ-Çm"�üÏm9"6 let re = PikeVM::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?;Áü�nJ"ùÞ>Ün"�üän?"ƒÓHü¨o&"ÌÓHÓo"�üÛo/"©åHü�p"" let got = it.advance(|input| {Áü¶p0"- re.search(&mut cache, input, &mut caps);Áäëp" Ok(caps.get_match())Á<Œq"ç¼1ü˜qH"E // Note that if we wanted to extract capturing group spans, we couldÁüåq " // do that here with 'caps'.ÁôŠr"¤¡.­r"�üµr0"ÈæHüêr""»ìHü‘s0"çìHäÆs" íH<çs"ç¼1ôós"¤¡.–t"�üžt0"©çHüÓt""»ìHüút0"çìHä¯u" íH<Ðu"ç¼1ôÜu"¤¡.ÿu"�ćv"éŠ:ü¤v""»ìHüËv0"çìHä€w" íH<¡w"ç¼1ô­w"¤¡.Ðw"�üØw."à�-<‹x"ãˆ-<¬x"µ0 µ0“ŪÆÝá Bÿµ‚½½ ·x"µ÷ŽC ´x"³0´0ˆ#ªÆ ³0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寴0üóx6"³0´0�#ªÆ„óHøâ üˆy!" ¼Þ2ªÆ$¼x"­šê¸ÌÎü§}Å"üµ{G"D Return the next half match for a fallible search if one exists, andÁü�|!"ÜÌH§|"�ü¯|K"H This is like `advance_half`, except it permits callers to handle errorsÁ¬ÿ|" during iteration.Á„®}"¸0 ¸0“ŪÆçÝ Bÿµ‚¿¿ Ë}"µ÷ŽC ¿}"¶0·0ˆ#ªÆ ¶0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寷0ü±~:"¶0·0�#ªÆ�÷HçÝ üÆ~%" ¾Þ2ªÆ$Ð}"­š4â}"ÌÎü±„¸"üÉ‚J"G Return the next match for a fallible search if one exists, and advanceÁ̘ƒ" to the next position.Á¶ƒ"�ü¾ƒF"C This is like `advance`, except it permits callers to handle errorsÁ¬‰„"“õH\¸„"»0 »0“ÅªÆøâ Bÿµ‚ÁÁ Є"µ÷ŽC Ä„"¹0º0ˆ#ªÆ ¹0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寺0ü²…6"¹0º0�#ªÆÀûHøâ üÇ…!" ÀÞ2ªÆ$Õ„"­š4ç„"ÑÓüü”¶"üȉJ"G Given a closure that executes a single search, return an iterator overÁü—Š0"- all successive non-overlapping half matches.ÁÌŠ"�üÔŠG"D The iterator returned yields result values. If the underlying regexÁü ‹C"@ engine is configured to never return an error, consider callingÁüè‹E"B [`TryHalfMatchesIter::infallible`] to convert errors into panics.Á²Œ"�lºŒ"Áˆ-ÌŒ"�üÔŒA"> This example shows how to use a `Searcher` to create a properÁüš�" iterator over half matches.Á¾�"�<Æ�"ãˆ-ÌÒ�"óˆ-Ìð�"ºÑH쎎"ÜÑH̰Ž"áÁ/4ÎŽ"ŸŠ-ÙŽ"�üáŽ6"©ÒHüœ�&"“�?Ç�"�üÏ�?"ƒÓHü“�F"C let mut it = Searcher::new(input).into_half_matches_iter(|input| {ÁüÞ�,") re.try_search_fwd(&mut cache, input)Á<�‘"ç¼1›‘"�ü£‘4"1 let expected = Some(Ok(HalfMatch::must(0, 10)));ÁüÜ‘$"! assert_eq!(expected, it.next());Á…’"�ü�’4"1 let expected = Some(Ok(HalfMatch::must(0, 21)));ÁüÆ’$"˃Iï’"�ü÷’4"1 let expected = Some(Ok(HalfMatch::must(0, 32)));Áü°“$"˃IÙ“"�Äá“"éŠ:üþ“$"˃I§”"�ü¯”."à�-<â”"ãˆ-´ƒ•"“ŪÆèÅBÿµ‚Ãõ÷ŽC š•"¼0½0ˆ#ªÆ ¼0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寽0ü÷•:"¼0½0�#ªÆ݇IçÝ üŒ–%" ÂÞ2ªÆDÌ­šOÌÏÑü’¢’"üô–J"–üHü×+"( all successive non-overlapping matches.Áó—"�üû—G"³ýHüǘC"…þHü�™A"> [`TryMatchesIter::infallible`] to convert errors into panics.ÁÕ™"�lÝ™"Áˆ-ï™"�ü÷™A"ËÿHÔ½š" iterator over matches.ÁÜš"�<äš"ãˆ-Ìðš"óˆ-쎛"ËãHì°›"ÜÑH¬Ò›"šÞ>4ì›"ŸŠ-÷›"�üÿ›8"¥äHü¼œ&"“�?çœ"�üïœ?"ƒÓHü³�A"> let mut it = Searcher::new(input).into_matches_iter(|input| {Áüù�("% re.try_search(&mut cache, input)Á<¦ž"ç¼1²ž"�üºž3"0 let expected = Some(Ok(Match::must(0, 0..10)));Áüòž$"˃I›Ÿ"�ü£Ÿ4"1 let expected = Some(Ok(Match::must(0, 11..21)));ÁüÜŸ$"˃I… "�ü� 4"1 let expected = Some(Ok(Match::must(0, 22..32)));ÁüÆ $"˃Iï "�Ä÷ "éŠ:ü”¡$"˃I½¡"�üÅ¡."à�-<ø¡"ãˆ-Œ™¢"“ŪƑÇBÿµ‚Åŵ÷ŽC «¢"¾0¿0ˆ#ªÆ ¾0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ã寿0üí¢6"¾0¿0�#ªÆº‘Iøâ ü‚£!" ÄÞ2ªÆÍ­šÍÏÑü¥·Ç"üâ£J"–üHü±¤5"2 all successive non-overlapping `Captures` values.Áë¤"�üó¤G"³ýHü¿¥C"…þHü‡¦B"? [`TryCapturesIter::infallible`] to convert errors into panics.ÁΦ"�üÖ¦C"@ Unlike the other iterator constructors, this accepts an initialÁüž§J"G `Captures` value. This `Captures` value is reused for each search, andÁüí§I"F the iterator implementation clones it before returning it. The callerÁü»¨F"C must provide this value because the iterator is purposely ignorantÁü†©F"C of the underlying regex engine and thus doesn't know how to createÁüÑ©F"C one itself. More to the point, a `Captures` value itself has a fewÁüœªE"B different constructors, which change which kind of information isÁüæª:"7 available to query in exchange for search performance.Á¥«"�l­«"Áˆ-¿«"�üÇ«J"G This example shows how to use a `Searcher` to create a proper iteratorÁü–¬H"E over `Captures` values, which provides access to all capturing groupÁÌã¬" spans for each match.Á�­"�<‰­"ãˆ-Ì•­"óˆ-ü³­&"Ó€AìÞ­"ÜÑHt€®" Input,Á4“®"ŸŠ-ž®"�̦®"ëÑDüÄ®;"8 r"(?P[0-9]{4})-(?P[0-9]{2})-(?P[0-9]{2})",Á<„¯"ÑÛ=ü�¯F"C let (mut cache, caps) = (re.create_cache(), re.create_captures());ÁÛ¯"�üã¯6"3 let haystack = "2010-03-14 2016-10-08 2020-10-22";Áüž°%"Ç×-üȰ%"" let mut it = Searcher::new(input)Áüò°1". .into_captures_iter(caps, |input, caps| {Áü¨±/", re.search(&mut cache, input, caps);Á”ܱ" Ok(())Á\ó±" });Áƒ²"�ü‹²."+ let got = it.next().expect("first date")?;Áü¾²?"< let year = got.get_group_by_name("y").expect("must match");Áü‚³("% assert_eq!("2010", &haystack[year]);Á¯³"�ü·³/", let got = it.next().expect("second date")?;Áüë³@"= let month = got.get_group_by_name("m").expect("must match");Áü°´'"$ assert_eq!("10", &haystack[month]);ÁÜ´"�üä´."+ let got = it.next().expect("third date")?;Áü—µ>"; let day = got.get_group_by_name("d").expect("must match");ÁüÚµ%"" assert_eq!("22", &haystack[day]);Á„¶"�üŒ¶!" assert!(it.next().is_none());Á²¶"�üº¶."à�-<í¶"ãˆ-Ó«Œÿ¶"Ìù¶"”¬·"“Å͸ªÆ¸ÈBÿµ‚Çǵ÷ŽC ¿·"À0Á0Â0ˆ#ªÆ À0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Á0 Â0͸ü±¸:"À0Á0Â0�#ªÆÓ¦Iªµ´Õ¸" ÆÞ2ªÆîÍ‚�ùÍ­šÎîðü™¼ê"üœ¼#"®Å0 Å0“ÅáýªÆçÝ Bÿµ‚ÉÉ ̼"µ÷ŽC À¼"Ã0Ä0ˆ#ªÆ Ã0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ä0üȽ:"Ã0Ä0�#ªÆ´©IçÝ üݽ%" ÈÞ2ªÆ$Ѽ"úÏ­š4ù¼"ØÚü´ÍÙ"ô·Í"®È0 È0“Å÷þªÆøâ Bÿµ‚ËË âÍ"µ÷ŽC ÖÍ"Æ0Ç0ˆ#ªÆ Æ0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ç0üÖÎ6"Æ0Ç0�#ªÆƒ¬Iøâ üëÎ!" ÊÞ2ªÆ$çÍ"£èÒ­š4‹Î"ÙÛüÈÕ$"ü¢ÐL"I An iterator over all non-overlapping half matches for a fallible search.ÁïÐ"�üóÐM"J The iterator yields a `Result` value until no moreÁÜÁÑ" matches could be found.ÁÝÑ"�üáÑ'"$ The type parameters are as follows:Á‰Ò"�ü�ÒD"A * `F` represents the type of a closure that executes the search.ÁÒÒ"�üÖÒ9"6 The lifetime parameters come from the [`Input`] type:Á�Ó"�ü”Ó6"3 * `'h` is the lifetime of the underlying haystack.ÁËÓ"�üÏÓJ"G When possible, prefer the iterators defined on the regex engine you'reÁüšÔN"K using. This tries to abstract over the regex engine and is thus a bit moreÁ¤éÔ" unwieldy to use.ÁþÔ"�ü‚ÕE"B This iterator is created by [`Searcher::into_half_matches_iter`].Á”ÓÕ"Þ2Í‚ÎÍÎ÷ŽC êÕ"èÅbRŸrqSø”ÏÐæÕ"(*„óÕ"óÕ"®ÌÌ“ÅL‰Ö"4‰Ö"®Ì̪Æü—Ö%"Þ2Ò‚ÓÓÒ÷ŽC  Ö"èÅÔÕœÖ"üÒØ1"üÃÖ2"/ Return an infallible version of this iterator.ÁúÖ"�ü‚×J"G Any item yielded that corresponds to an error results in a panic. ThisÁüÑ×I"F is useful if your underlying regex engine is configured in a way thatÁüŸØ."+ it is guaranteed to never return an error.ÁTÙØ"èÅÂÆBÿÑÑ ÔÞ2ªÆXÔüÃÛ+"ü¯Ù6"3 Returns the current `Input` used by this iterator.ÁêÙ"�üòÙC"@ The `Input` returned is generally equivalent to the one used toÁüºÚG"D construct this iterator, but its start position may be different toÁü†Û8"5 reflect the start of the next search to be executed.Á,ÊÛ"Ö ÖèÅ ÖªúBÿÑÐÛ"Ñ ÕÞ2ªÆ$ØÛ"!#ü’Ü{"Þ2Ø‚ÙÙØÉ0Ê0�#ªÆ É0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ê0çÝ üçÜ%"É0Ê0ˆ#ªÆþ¼IüÒÜ:"÷ŽC ›Ü"èÅÚÛÅQÆQÛ—Ü""$L”Ý"$™Ý"××¢­üÒÝ;"$ÕÝ"Ë0 Ë0èÅݬBÿ× ÚÝ"× ÛÞ2ªÆ$ßÝ"üØÞ:"Þ2Ý‚ÞÝÞ÷ŽC áÞ"èÅß gßÝÞ"ü™ßD"œß"Ì0Í0Î0 Ì0èÅ Í0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Î0ÏÁBÿÜ  ß"Ü ßÞ2ªÆ$¡ß"œ‚Øü™ç""Þ2á‚âáâ÷ŽC ¢ç"ÂÆãžç"üÖé+"üÂç6"©¸Iýç"�ü…èC"÷¸IüÍèG"ŹIü™é8"—ºI,Ýé"ä äÂÆ äªúBÿàãé"à ãÞ2ªÆ$ëé"!#ü§êx"Þ2æ‚ççæÒ0Ó0�#ªÆ Ò0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ó0çÝ üùê%"Ò0Ó0ˆ#ªÆ±ÄIüäê:"÷ŽC °ê"ÂÆèéÅQÆQé¬ê""$L¦ë"$«ë"ååáýüÐë'"$Óë"Ô0 Ô0ÂÆõÚ Bÿå Øë"å éÞ2ªÆ$Ýë"ü•ó "üýíG"D An iterator over all non-overlapping matches for a fallible search.ÁÅî"�üÉîI"F The iterator yields a `Result` value until no moreÁÜ“ï"›®I¯ï"�ü³ï'"ήIÛï"�üßïD"�¯I¤ð"�ü¨ð9"é¯Iâð"�üæð6"º°I�ñ"�ü¡ñJ"ˆ±IüìñN"ݱI¤»ò"µ²IÐò"�üÔò@"= This iterator is created by [`Searcher::into_matches_iter`].Át ó"Þ2ë‚ìëì÷ŽC ³ó"‘Ç> ê Ûxãíî¯ó"(*„¼ó"¼ó"®êê“ÅLÒó"4Òó"®êêªÆüàó!"Þ2ð‚ñðñ÷ŽC éó"‘Çòóåó"ü—ö-"üˆô2"­µI¿ô"�üÇôJ"÷µIü–õI"̶Iüäõ." ·ITžö"‘ÇéÇBÿïï òÞ2ªÆEàü€ù+"üìö6"©¸I§÷"�ü¯÷C"÷¸Iü÷÷G"ŹIüÃø8"—ºI,‡ù"ô ô‘Ç ôªúBÿï�ù"ï óÞ2ªÆ$•ù"!#üÏùs"Þ2ö‚÷ö÷Õ0Ö0�#ªÆ Õ0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ö0øâ ü ú!"Õ0Ö0ˆ#ªÆÏÏIü‹ú6"÷ŽC Øù"‘ÇøùÅQÆQùÔù""$LÉú"$Îú"õõ‰Åüƒû7"$†û"×0 ×0‘ÇÄÄBÿõ ‹û"õ ùÞ2ªÆ$�û"ü€ü6"Þ2û‚üüû÷ŽC ‰ü"‘Çý gý…ü"ü½üD"Àü"Ø0Ù0Ú0 Ø0‘Ç Ù0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ú0ÏÁBÿú Äü"ú ýÞ2ªÆ$Åü"œhäô›„"Þ2ÿ‚€ÿ€÷ŽC ¤„"éÇ� „"üÔ†+"üÀ„6"©¸Iû„"�üƒ…C"÷¸IüË…G"ŹIü—†8"—ºI,Û†"‚ ‚éÇ ‚ªúBÿþá†"þ �Þ2ªÆ$é†"!#ü¥‡p"Þ2„‚…„…Þ0ß0�#ªÆ Þ0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯ß0øâ üó‡!"Þ0ß0ˆ#ªÆ�×IüÞ‡6"÷ŽC ®‡"édž‡ÅQÆQ‡ª‡""$Lœˆ"$¡ˆ"ƒƒ÷þüˆ#"$ň"à0 à0éÇÝá Bÿƒ ʈ"ƒ ‡Þ2ªÆ$ψ"ü��!"üæŠH"E An iterator over all non-overlapping captures for a fallible search.Á¯‹"�ü³‹L"I The iterator yields a `Result` value until no moreÁÜ€Œ"›®IœŒ"�ü Œ'"ήIÈŒ"�üÌŒD"�¯I‘�"�ü•�9"é¯IÏ�"�üÓ�6"º°IŠŽ"�üŽŽJ"ˆ±IüÙŽN"ݱI¤¨�"µ²I½�"�üÁ�A"> This iterator is created by [`Searcher::into_captures_iter`].ÁÓ«Œ‰�"̃�"|¨�"Þ2‰‚ЉŠ÷ŽC ¼�"¸È:Ò;×,§Ø‹Œ�¸�"*,„Å�"Å�"®ˆˆ“ÅtÛ�"$Û�"®ˆˆ͸Lï�"4ï�"®ˆˆªÆü—‘""Ó«Œƒ‘"Ìý�"Þ2�‚���÷ŽC  ‘"¸È‘œ‘"üÏ“."üÀ‘2"­µI÷‘"�üÿ‘J"÷µIüÎ’I"̶Iüœ“." ·ITÖ“"¸È�ÉBÿŽŽ ‘Þ2ªÆ!ìü¾”x"Ó«Œª”"̤”"Þ2“‚”“”á0â0ã0�#ªÆ á0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯â0 ã0͸ªµ´Ÿ•"á0â0ã0ˆ#ªÆÉáIüû”:"÷ŽC Ç”"¸È•–ÅQÆQ–Ô""$L½•"$•"’’ÎÝüú•:"$ý•"ä0 ä0¸È‰ÝBÿ’ ‚–"’ –Þ2ªÆ$‡–"<Æ—"–�—�—�——–èÚüà™7"Ó«ŒÌ™"ÌÆ™"Þ2™‚š™š÷ŽC é™"¸È› g›å™"üžšD"¡š"å0æ0ç0 å0¸È æ0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ç0ÏÁBÿ˜ ¥š"˜ ›Þ2ªÆ$¦š"œ÷öüä¢u"Ó«ŒÐ¢"ÌÊ¢"Þ2�‚žž�ë0ì0í0�#ªÆ ë0ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯ì0 í0͸ªµ´Â£"ë0ì0í0ˆ#ªÆÿçIüž£:"÷ŽC í¢"�ÉŸ ÅQÆQ é¢""$Là£"$å£"œœ͸ü‰¤&"$Œ¤"î0 î0�ÉÊõBÿœ ‘¤"œ  Þ2ªÆ$–¤"då 1üØÓ A lazily initialized value for safe sharing between threads. The principal type in this module is `Lazy`, which makes it easy to construct values that are shared safely across multiple threads simultaneously. Á$í 1£¤¹ñäûc¡¢LÞ7øüê?< A lazily initialized value that implements `Deref` for `T`.Áª�ü®JG A `Lazy` takes an initialization function and permits callers from anyÁüùIF thread to access the result of that initialization function in a safeÁüÃOL manner. In effect, this permits one-time initialization of global resourcesÁü“+( in a (possibly) multi-threaded program.Á¿�üÃOL This type and its functionality are available even when neither the `alloc`Áü“JG nor the `std` features are enabled. In exchange, a `Lazy` does **not**ÁüÞIF guarantee that the given `create` function is called at most once. ItÁü¨KH might be called multiple times. Moreover, a call to `Lazy::get` (eitherÁüôMJ explicitly or implicitly via `Lazy`'s `Deref` impl) may block until a `T`ÁŒÂ is available.ÁÔ�üØKH This is very similar to `lazy_static` or `once_cell`, except it doesn'tÁü¤LI guarantee that the initialization function will be run once and it worksÁüñIF in no-alloc no-std environments. With that said, if you need strongerÁü» KH guarantees or a more flexible API, then it is recommended to use eitherÁü‡ ! `lazy_static` or `once_cell`.Á© �ü­ " # Warning: may use a spin lockÁÐ �üÔ MJ When this crate is compiled _without_ the `alloc` feature, then this typeÁü¢ JG may used a spin lock internally. This can have subtle effects that mayÁüí KH be undesirable. See [Spinlocks Considered Harmful][spinharm] for a moreÁü¹ %" thorough treatment of this topic.Áß �üã VS [spinharm]: https://matklad.github.io/2020/01/02/spinlocks-considered-harmful.htmlÁº �l¾ Áˆ-Ì �üÐ KH This type is useful for creating regexes once, and then using them fromÁüœKH multiple threads simultaneously without worrying about synchronization.Áè�<ìãˆ-üôEB use regex_automata::{dfa::regex::Regex, util::lazy::Lazy, Match};Áº�ü¾OL static RE: Lazy = Lazy::new(|| Regex::new("foo[0-9]+bar").unwrap());ÁŽ�ü’/, let expected = Some(Match::must(0, 3..14));ÁüÂ85 assert_eq!(expected, RE.find(b"zzzfoo12345barzzz"));Á<ûãˆ-$Ž�¥‚¦¥¦ýë/ “÷ŽCl–ìÉC‚-Ž-kÔ›¤§¹ÊìÉBÿ–h¡¹ÊìÉBÿ££ ¤óëªÆy{~ –óëBÿ„¥¡££¹Ê¬¹�©‚ªª©ýë/ ¾÷ŽC ÁìÉ«ü—)üÕIF Create a new `Lazy` value that is initialized via the given function.Á£�ü«FC The `T` type is automatically inferred from the return type of theÁäö `create` function given.Á¤ªÆìÉBÿ¨¨ «óëªÆÅ¡½þüò �­‚®®­�#ªÆóë …÷ŽC ú…#ªÆLýýë/ ÷ìɯ  35üë#ü™74 Return a reference to the lazily initialized value.ÁÕ�üÝC@ This routine may block if another thread is initializing a `T`.Á¥�ü­HE Note that given a `x` which has type `Lazy`, this must be called viaÁüúFC `Lazy::get(x)` and not `x.get()`. This routine is defined this wayÁüÅ63 because `Lazy` impls `Deref` with a target of `T`.Á€�dˆÚº.™�ü¡GD This panics if the `create` function inside this lazy value panics.ÁüíIF If the panic occurred in another thread, then this routine _may_ alsoÁü»+( panic (but is not guaranteed to do so).Áòï0 ï0ìÉ ï0óëBÿ¬ ü¬ü� Æ€ 1ü¯5�±‚²±²÷ƒJ Â÷ŽC ·–„JLºýë/ ´ìɳ´Ý"Þ"´79\ë4ð°°óë¬�,„ð0 ð0ìÉ ð0óëBÿ° а ´óëªÆ$‹üº;�¶‚··¶÷ƒJ Ù÷ŽC ΟgóëT–„JLÑýë/ ¿ìɸ g¸@Büü4ÿñ0ò0ó0 ñ0ìÉ ò0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ó0ÏÁBÿµ ƒµ ¸óëªÆ$„œoDìÓ«ŒØÌÒ$ð¡Áñ�ûc¹»ѧ\¤„!¹¼ѧ…!¹¼ AtomicPtrÁLÈŠa¹¾²DÓ“�¹¿öÃüŸ¹À$ÿŒŽœœ~üÿFQS@BŒî1äŠ"$œ"¡�‚ÃÂÃýë/ ¡"÷ŽC ¤"¹Ê›Cï© _…ÄÅÆÚ-/24”±"$±"¹ÁÁõ† LÍ"4Í"¹ÁÁªÆÔˆ&,ˆ&¹ÁÁ¹… ü–+?�È‚ÉÈÉýë/ ¢+÷ŽC ²+ýÆóë$¥+ÿ óë$¬+ýƪÆ$µ+ÿ ªÆ$¼+¹ÊRTWY¬Þ+�Ë‚ÌÌËýë/ ã+÷ŽC æ+¹ÊÍü¥-0¹-¡ªÆ¹ÊBÿÊÊÓýÅ¡ïü‡/ �Ï‚ÐÏÐ÷ƒJ š/÷ŽC �/–„JL’/ýë/ Œ/¹ÊÑÒ+-ô¹1Ç1¡ô0 ô0¹Ê ô0óëBÿÎ Ë1Ά$Ì1ä²<$µ<¹õ0 õ0¹ÊřǙș­É™Ê™àË™óG*¤�R{9  õ0óëBÿÎ º<ÎÜŠ $»<üÀ?;�Ô‚ÕÔÕ÷ƒJ ß?÷ŽC Ô?õŒJTÈ?–„JL×?ýë/ Å?¹ÊÖ gÖ8:ü†@4‰@ö0÷0ø0 ö0¹Ê ÷0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ø0ÏÁBÿÓ �@Ó ÖóëªÆ$Ž@œµôšA�Ø‚ÙÙØýë/ ŸA÷ŽC ¢A¹ÊÚ�#Ú "”ÃA$ÆAù0 ù0¹ÊBÿ× ËA× ÚóëªÆ$ÐAdó 1ü�ü Types and routines for working with look-around assertions. This module principally defines two types: * [`Look`] enumerates all of the assertions supported by this crate. * [`LookSet`] provides a way to efficiently store a set of [`Look`] values. * [`LookMatcher`] provides routines for checking whether a `Look` or a `LookSet` matches at a particular position in a haystack. Á$û 1ªû½ Ê Ð Ö × �¹L¹ŸÛÝ�¹ Ûݳf$ÄàÛÞ\£Œ±EL‘6¨ËàáâãüØ8#ü¡6JG Flip the look-around assertion to its equivalent for reverse searches.Áüð663 For example, `StartLF` gets translated to `EndLF`.Á«7�ü³7FC Some assertions, such as `WordUnicode`, remain the same since theyÁüþ7GD match the same positions regardless of the direction of the search.ÁDå8¨Ë¨ËBÿßß à•(ü²C!üô@HE Return the underlying representation of this look-around enumerationÁüÁAEB as an integer. Giving the return value to the [`Look::from_repr`]Áü‹BIF constructor is guaranteed to return the same look-around variant thatÁüÙBFC one started with within a semver compatible release of this crate.Á<¿C¨ËBÿßß©ˆ!¼+ü›F1üÚDEB Given the underlying representation of a `Look` value, return theÁü¤EHE corresponding `Look` value if the representation is valid. OtherwiseÁ¼ñE `None` is returned.ÁL¨F‡ã BÿßߪÌ!½ Y1üµS"ü´P@= Returns a convenient single codepoint representation of thisÁüùPIF look-around assertion. Each assertion is guaranteed to be representedÁäÇQ by a distinct character.ÁèQ�üðQIF This is useful for succinctly representing a look-around assertion inÁü¾RKH human friendly but succinct output intended for a programmer working onÁ¤ŽS regex internals.Á<ÂS¨ËBÿßß ã2;dÌ`ãÎåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€̤aüß`2/ Create an empty set of look-around assertions.Á,«aãÎBÿä亃!Äñbüça0- Create a full set of look-around assertions.Áœb�ü¤b:7 This set contains all possible look-around assertions.Á$øbãÎBÿää æü‰e'ü´cHE Create a look-around set containing the look-around assertion given.Á�d�ü‰dIF This is a convenience routine for creating an empty set and insertingÁü×d one look-around assertions.ÁL�e¨ËãÎBÿää çñ¢¦A̺füäeC@ Returns the total number of look-around assertions in this set.ÁÁfãÎBÿääð†!”BìÛhü–h2/ Returns true if and only if this set is empty.ÁDâhãÎBÿääÐÉ!VCüˆj)üžiJG Returns true if and only if the given look-around assertion is in thisÁDíi set.ÁD�jãΨËBÿä䌌!Dñ¢'DüŽl%üçjHE Returns true if and only if this set contains any anchor assertions.Áü´kGD This includes both "start/end of haystack" and "start/end of line."Á|•l…1 …1ãÎBÿä ¥lä ë$¦lü«n.üˆmC@ Returns true if and only if this set contains any "start/end ofÁüÐmHE haystack" anchors. This doesn't include "start/end of line" anchors.ÁIJn†1 †1ãÎBÿä Ënä…Š!$Ìnüœq*ü¦oIF Returns true if and only if this set contains any "start/end of line"ÁüôoGD anchors. This doesn't include "start/end of haystack" anchors. ThisÁüÀpIF includes both `\n` line anchors and CRLF (`\r\n`) aware line anchors.Á¤£q‡1 ‡1ãÎBÿä ¸qäàŠ!$¹qüÞt(üýrI¤·JüËsKH anchors that only treat `\n` as line terminators. This does not includeÁü›t0- haystack anchors or CRLF aware line anchors.Á”åtˆ1 ˆ1ãÎBÿä øtä î$ùtü²w*ü×uI¤·Jü¥vC@ anchors that are CRLF-aware. This doesn't include "start/end ofÁüív2/ haystack" or "start/end of line-feed" anchors.Á¤¹w‰1 ‰1ãÎBÿä Îwä ï$Ïwüñy"ü±xFC Returns true if and only if this set contains any word boundary orÁüüxIF negated word boundary assertions. This include both Unicode and ASCIIÁ¤Êy word boundaries.ÁløyãÎBÿää ð@Lü÷{*üäzKH Returns true if and only if this set contains any Unicode word boundaryÁü´{0- or negated Unicode word boundary assertions.Á¬þ{ãÎBÿä䡘!¡Nüõ(üæ~IF Returns true if and only if this set contains any ASCII word boundaryÁü´.+ or negated ASCII word boundary assertions.ÁœüãÎBÿääü˜!�Qü´ƒ üÖ‚KH Returns an iterator over all of the look-around assertions in this set.Á$»ƒãÎéÏBÿää ó|Rüæ…*ü„„KH Return a new set that is equivalent to the original, but with the givenÁüÔ„KH assertion added to it. If the assertion is already in the set, then theÁü¤…/, returned set is equivalent to the original.Á4í…ãΨËãÎBÿääÛƒ!9Sñ¢DSüˇ(üÓ†DA Updates this set in place with the result of inserting the givenÁ䜇 assertion into this set.ÁTÒ‡Š1 Š1ãΨËBÿä ݇ä õ$â‡ñ¢Tü†Š*ü¤ˆKøÃJüôˆKH assertion removed from it. If the assertion is not in the set, then theÁüĉ/¤ÅJ4�ŠãΨËãÎBÿä䑬!Uñ¢Uüë‹(üôŠC@ Updates this set in place with the result of removing the givenÁ伋 assertion from this set.ÁTò‹‹1 ‹1ãΨËBÿä ý‹ä ÷$‚Œñ¢ûUü³�0üÄŒJG Returns a new set that is the result of subtracting the given set fromÁl“� this set.ÁDº�ãÎãÎãÎBÿääͯ!ÒVî ÝVü—�.ü£ŽJG Updates this set in place with the result of subtracting the given setÁ”òŽ from this set.Ádž�Œ1 Œ1ãÎãÎBÿä «�ä ù$°�î ·WüÎ�-üù�B? Returns a new set that is the union of this and the one given.Á,Õ�ãÎãÎãÎBÿääò²!~Xî ‰Xü¥’+üº‘IF Updates this set in place with the result of unioning it with the oneÁTˆ’ given.ÁL¬’�1 �1ãÎãÎBÿä ¶’ä û$»’î \YüÝ“1ü�“IF Returns a new set that is the intersection of this and the one given.ÁLä“ãÎãÎãÎBÿää—¶!#Zî .Zü¼•/üÍ”IF Updates this set in place with the result of intersecting it with theÁt›• one given.ÁlÕŽ1 Ž1ãÎãÎBÿä Ñ•ä ý$Ö•î [üÔ—)ü –EB Return a `LookSet` from the slice given as a native endian 32-bitÁdê– integer.Áû–�dƒ—Úº.”—�üœ—%" This panics if `slice.len() < 4`.ÁLÛ—�1 �1³÷ãÎBÿä ì—ä þås\ü­š)üë˜HE Write a `LookSet` as a native endian 32-bit integer to the beginningÁ¼¸™ of the slice given.ÁÔ™�dܙں.í™�üõ™%�ÕJT´š�1ãÎ �1³÷Bÿä Ìšä ÿü`åaüŽ¢>üû›:7 Checks that all assertions in this set can be matched.Áºœ�üœKH Some assertions, such as Unicode word boundaries, require optional (butÁü’�FC enabled by default) tables that may not be available. If there areÁüÝ�KH assertions in this set that require tables that are not available, thenÁô­ž this will return an error.ÁО�üØž0- Specifically, this returns an error when theÁü�ŸC@ `unicode-word-boundary` feature is _not_ enabled _and_ this setÁüÕŸ/, contains a Unicode word boundary assertion.Á‰ �ü‘ 1. It can be useful to use this on the result ofÁüÇ B? [`NFA::look_set_any`](crate::nfa::thompson::NFA::look_set_any)ÁüŽ¡96 when building a matcher engine to ensure methods likeÁüÌ¡=: [`LookMatcher::matches_set`] do not panic at search time.ÁL•¢ãÎÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‚ÑBÿää €$Ÿ¢üË£!ã΂ g‚üó£@ö£‘1’1“1 ‘1ãÎ ’1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡“1ÏÁBÿ� ú£� ‚$û£œ �¤ì³§éÏ„…ÅQÆQ…L×§$ܧƒƒ¨Ëüü§"$ÿ§˜1 ˜1éχã Bÿƒ „¨ƒ …$‰¨„‡´µÐ‡ˆ‰Š‹Œ�Ž�‘’“”•–—˜™š›œ�žŸ ¡Üà´üž´=: Creates a new default matcher for look-around assertions.Áç´µÐBÿ†† ‡üû¹Cü¼µ@= Sets the line terminator for use with `(?m:^)` and `(?m:$)`.Á�¶�ü‰¶KH Namely, instead of `^` matching after `\n` and `$` matching immediatelyÁüÙ¶HE before a `\n`, this will cause it to match after and before the byteÁT¦·™ÐJµ·�ü½·C@ It can occasionally be useful to use this to configure the lineÁü…¸:7 terminator to the NUL byte when searching binary data.Áĸ�ü̸DA Note that this does not apply to CRLF-aware line anchors such asÁü•¹FC `(?Rm:^)` and `(?Rm:$)`. CRLF-aware line anchors are hard-coded toÁ´à¹ use `\r` and `\n`.Áœ‚º�1 �1µÐŠëJBÿ† –º† ˆ$›ºÿ†$¡ºü÷½'üùºEB Returns the line terminator that was configured for this matcher.Áû�üË»A> If no line terminator was configured, then this returns `\n`.Á‘¼�ü™¼KH Note that the line terminator should only be used for matching `(?m:^)`Áüé¼EB and `(?m:$)` assertions. It specifically should _not_ be used forÁü³½?< matching the CRLF aware assertions `(?Rm:^)` and `(?Rm:$)`.Áœþ½ž1 ž1µÐBÿ† ’¾† ‰$“¾ü÷ÅEüľIF Returns true when the position `at` in `haystack` satisfies the givenÁÔ’¿ look-around assertion.Á±¿�d¹¿Úº.Ê¿�üÒ¿HE This panics when testing any Unicode word boundary assertion in thisÁüŸÀKH set and when the Unicode word data is not available. Specifically, thisÁüïÀHE only occurs when the `unicode-word-boundary` feature is not enabled.Á¼Á�üÄÁGD Since it's generally expected that this routine is called inside ofÁü�ÂDA a matching engine, callers should check the error condition whenÁüÙÂEB building the matching engine. If there is a Unicode word boundaryÁü£ÃHE in the matcher and the data isn't available, then the matcher shouldÁ”ðà fail to build.Á‡Ä�ü�ÄFC Callers can check the error condition with [`LookSet::available`].ÁÚÄ�üâÄDA This also may panic when `at > haystack.len()`. Note that `at ==Áü«Å96 haystack.len()` is legal and guaranteed not to panic.Á<þÅŸ1 1 Ÿ1µÐ¨Ë  1³÷Bÿ† †Æ† Š$‡Æñ¢kâìk÷…&kü›Îzt©Î¡1¢1 ¡1µÐ¨Ë ¢1³÷Bÿ† ÁΆ¤Ö!$ÂÎñ¢$ÐÎâìDäÎ÷…ýÎü™ãrüÛÛKH Returns true when _all_ of the assertions in the given set match at theÁü«Ü# given position in the haystack.ÁÓÜ�dÛÜÚº.ìÜ�üôÜHøïJüÁÝKËðJü‘ÞH¡ñJÞÞ�üæÞG�òJü²ßDÓòJüûßE¢óJüÅàHòóJ”’áÄôJ©á�ü±áFîôJüá�ü„âDÌõJüÍâ9›öJ\ ã£1¤1 £1µÐãÎ ¤1³÷Bÿ† µã† Œ$¶ã %ükâìl÷…lüÇ倔Õå¥1¦1 ¥1µÐãÎ ¦1³÷Bÿ† ñ冎Ø!$òå %€æâìD–æ÷…¯æü•€}Ó«ŒýÿÌ÷ÿt£€§1¨1 §1µÐ¨Ë ¨1Á´Bÿ† »€† Ž$¼€ñ¢$Ê€ %Þ€DÕŽŽ�������Ž�Uÿü­—;ü–•JG Returns true when [`Look::Start`] is satisfied `at` the given positionÁ”å• in `haystack`.Áü•�d„–Úº.•–�ü�–?< This may panic when `at > haystack.len()`. Note that `at ==Áüá–9›öJD´—©1ª1 ©1µÐ ª1³÷Bÿ† ½—†×Ü!$¾—âÙ!Ál÷…Ëlü›š8ü†˜KH Returns true when [`Look::End`] is satisfied `at` the given position inÁ|Ö˜ÀéBê˜�dò˜Úº.ƒ™�ü‹™?“�KüÏ™9›öJ4¢š«1¬1 «1µÐ ¬1³÷Bÿ† ©š†Ûà!$ªšâìmm÷…wmü—�=üþšC@ Returns true when [`Look::StartLF`] is satisfied `at` the givenÁÜÆ›³ñBæ›�dî›Úº.ÿ›�ü‡œ?“�KüËœ9›öJ\ž�­1®1 ­1µÐ ®1³÷Bÿ† ª�† ’$«�âìDo÷…NoüÄ ;ü­žJG Returns true when [`Look::EndLF`] is satisfied `at` the given positionÁ”üž΀K“Ÿ�d›ŸÚº.¬Ÿ�ü´Ÿ?“�KüøŸ9›öJLË ¯1°1 ¯1µÐ °1³÷Bÿ† Õ † “$Ö âìëp÷…õpüí£?üÒ¡EB Returns true when [`Look::StartCRLF`] is satisfied `at` the givenÁÜœ¢³ñB¼¢�dÄ¢Úº.Õ¢�üÝ¢?“�Kü¡£9›öJlô£±1²1 ±1µÐ ²1³÷Bÿ† ‚¤† ”$ƒ¤âì�t÷…‹tüލ=üõ¥C@ Returns true when [`Look::EndCRLF`] is satisfied `at` the givenÁܽ¦³ñBݦ�då¦Úº.ö¦�üþ¦?“�Kü§9›öJ\•¨³1´1 ³1µÐ ´1³÷Bÿ† ¡¨† •$¢¨âì-x÷…7xüœ¬?ü�ªEB Returns true when [`Look::WordAscii`] is satisfied `at` the givenÁÜ˪³ñBëª�dóªÚº.„«�üŒ«?“�KüЫ9›öJl£¬µ1¶1 µ1µÐ ¶1³÷Bÿ† ±¬†Ýù!$²¬âìK{÷…U{üÔ°Fü³®KH Returns true when [`Look::WordAsciiNegate`] is satisfied `at` the givenÁ܃¯³ñB£¯�d«¯Úº.¼¯�üį?“�Küˆ°9›öJ¤Û°·1¸1 ·1µÐ ¸1³÷Bÿ† ð°† —$ñ°âìÑ|÷…Û|ü˵‚üÒ±GD Returns true when [`Look::WordUnicode`] is satisfied `at` the givenÁÜž²³ñB¾²�dƲÚº.ײ�üß²?“�Kü£³9›öJá³�dé³ÅÐ0ú³�ü‚´;8 This returns an error when Unicode word boundary tablesÁü´>; are not available. Specifically, this only occurs when theÁü…µ30 `unicode-word-boundary` feature is not enabled.Á|Òµ¹1º1 ¹1µÐ º1³÷ôû!Bÿ† 뵆 ˜$ìµâì€÷…)€ü÷»‰üø·GD Returns true when [`Look::WordUnicodeNegate`] is satisfied `at` theÁüĸ! given position in `haystack`.Áê¸�dò¸Úº.ƒ¹�ü‹¹?“�KüϹ9›öJ�º�d•ºÅÐ0¦º�ü®º;¦”Küîº>ì”Kü±»3µ•K´þ»»1¼1 »1µÐ ¼1³÷ôû!Bÿ† ž¼† ™$Ÿ¼âìõ†÷…ÿ†üùÓEüÙÑJG Returns true when [`Look::WordStartAscii`] is satisfied `at` the givenÁܨÒ³ñBÈÒ�dÐÒÚº.áÒ�üéÒ?“�Kü­Ó9›öJœ€Ô½1¾1 ½1µÐ ¾1³÷Bÿ† ”Ô† š$•Ôâì�‹÷…—‹üµØCü—ÖHE Returns true when [`Look::WordEndAscii`] is satisfied `at` the givenÁÜäÖ³ñB„×�dŒ×Úº.�×�ü¥×?“�Küé×9›öJŒ¼Ø¿1À1 ¿1µÐ À1³÷Bÿ† ÎØ† ›$ÏØâì�÷… �üÏÞˆüÑÚFC Returns true when [`Look::WordStartUnicode`] is satisfied `at` theÁüœÛ!Å—KÂÛ�dÊÛÚº.ÛÛ�üãÛ?“�Kü§Ü9›öJåÜ�díÜÅÐ0þÜ�ü†Ý;¦”KüÆÝ>ì”Kü‰Þ3µ•K¬ÖÞÁ1Â1 Á1µÐ Â1³÷ôû!Bÿ† õÞ† œ$öÞâìk’÷…u’üÿä†üƒáDA Returns true when [`Look::WordEndUnicode`] is satisfied `at` theÁüÌá!Å—Kòá�dúáÚº.‹â�ü“â?“�Kü×â9›öJ•ã�d�ãÅÐ0®ã�ü¶ã;¦”Küöã>ì”Kü¹ä3µ•Kœ†åÃ1Ä1 Ã1µÐ Ä1³÷ôû!Bÿ† £å† �$¤åâì–÷… –üÕéiü±çHE Returns true when [`Look::WordStartHalfAscii`] is satisfied `at` theÁüþç!Å—K¤è�d¬èÚº.½è�üÅè?“�Kü‰é9›öJÄÜéÅ1Æ1 Å1µÐ Æ1³÷Bÿ† þé† ž$ÿéâì�˜÷…§˜üÍíHü«ëFC Returns true when [`Look::WordEndHalfAscii`] is satisfied `at` theÁüöë!Å—Kœì�d¤ìÚº.µì�ü½ì?“�Kü�í9›öJ´ÔíÇ1È1 Ç1µÐ È1³÷Bÿ† ëí† Ÿ$ìíâìVš÷…`šü—ó�ü•ïJG Returns true when [`Look::WordStartHalfUnicode`] is satisfied `at` theÁüäï!Å—KŠð�d’ðÚº.£ð�ü«ð?“�Küïð9›öJ­ñ�dµñÅÐ0Æñ�üÎñ;¦”KüŽò>ì”KüÑò3µ•KÔžóÉ1Ê1 É1µÐ Ê1³÷ôû!Bÿ† Âó†  $Ãóâì¸�÷…Â�üÂü‹üÂøHE Returns true when [`Look::WordEndHalfUnicode`] is satisfied `at` theÁü�ù!Å—Kµù�d½ùÚº.Îù�üÖù?“�Küšú9›öJØú�dàúÅÐ0ñú�üùú;¦”Kü¹û>ì”Küüû3µ•KÄÉüË1Ì1 Ë1µÐ Ì1³÷ôû!Bÿ† ëü† ¡$ìüâì…¡÷…�¡äì�µÐ£÷£Ü�‚<’‚µÐBÿ¢¢ £ìÿ†‚Ñ¥¦üÖ‡/Ó ü­‡!ü¬‡#ü£‡.䇂ÑBÿ¤¤ ¥ü“‰6ü¸ˆA> Returns an error if and only if Unicode word boundary data isÁ„þˆ unavailable.Á,š‰¡àJBÿ¤¤ ¦ü‹Š3Ó‰|ù‰¼ó‰‚ÑüÊ4‚Ñ©¥g©üþŠD�‹Ñ1Ò1Ó1 Ñ1‚Ñ Ò1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ó1ÏÁBÿ¨ …‹¨ ©$†‹œ Œ‹„÷õÓ üÒõ!üÑõ#üÈõ.dûõÛ«¬­üŽöD,œöÛ¡àJBÿ «üÍ÷tÛ÷ÛÔ1 Ô1³÷ôû!Bÿ ð÷¬ý!_bytesÁ4è÷_atÁÿ÷ü¼ùtÊùÛÕ1 Õ1³÷ôû!Bÿ ßù»û!ŸµK4×ù®µKîùd› 1üê#„ÿ A thread safe memory pool. The principal type in this module is a [`Pool`]. It main use case is for holding a thread safe collection of mutable scratch spaces (usually called `Cache` in this crate) that regex engines need to execute a search. This then permits sharing the same read-only regex object across multiple threads while having a quick way of reusing scratch space in a thread safe way. This avoids needing to re-create the scratch space for every search, which could wind up being quite expensive. ÁÓ«Œ‡ 1Ì� 1$£ 1¯°ÆÇáù^üð'=: A thread safe pool that works in an `alloc`-only context.Á®(�ü²(KH Getting a value out comes with a guard. When that guard is dropped, theÁüþ(JG value is automatically put back in the pool. The guard provides both aÁüÉ)LI `Deref` and a `DerefMut` implementation for easy access to an underlyingÁD–* `T`.ÁŸ*�ü£*NK A `Pool` impls `Sync` when `T` is `Send` (even if `T` is not `Sync`). ThisÁüò*NK is possible because a pool is guaranteed to provide a value to exactly oneÁ¼Á+ thread at any time.ÁÙ+�üÝ+NK Currently, a pool never contracts in size. Its size is proportional to theÁü¬,GD maximum number of simultaneous uses. This may change in the future.Áô,�üø,KH A `Pool` is a particularly useful data structure for this crate becauseÁüÄ-KH many of the regex engines require a mutable "cache" in order to executeÁü�.NK a search. Since regexes themselves tend to be global, the problem is then:Áüß.B? how do you get a mutable cache to execute a search? You could:Á¢/�ü¦/NK 1. Use a `thread_local!`, which requires the standard library and requiresÁüõ//, that the regex pattern be statically known.Á¤¥0 2. Use a `Pool`.Áüº0MJ 3. Make the cache an explicit dependency in your code and pass it around.Áüˆ1KH 4. Put the cache state in a `Mutex`, but this means only one search canÁ´Ô1 execute at a time.Áüë1+( 5. Create a new cache for every search.Á—2�ü›2OL A `thread_local!` is perhaps the best choice if it works for your use case.Áüë2MJ Putting the cache in a mutex or creating a new cache for every search areÁü¹3LI perhaps the worst choices. Of the remaining two choices, whether you useÁü†4MJ this `Pool` or thread through a cache explicitly in your code is a matterÁüÔ430 of taste and depends on your code architecture.Áˆ5�üŒ5"æõI¯5�ü³5KH When this crate is compiled _without_ the `std` feature, then this typeÁüÿ5JõöIüÊ6KÉ÷Iü–7%žøI¼7�üÀ7VÙøI—8�l›8Áˆ-©8�ü­8HE This example shows how to share a single hybrid regex among multipleÁüö8EB threads, while also safely getting exclusive access to a hybrid'sÁü¼9LI [`Cache`](crate::hybrid::regex::Cache) without preventing other searchesÁü‰:41 from running while your thread uses the `Cache`.Á¾:�<Â:ãˆ-ÌÊ:óˆ-üä:&# hybrid::regex::{Cache, Regex},Áü‹;'$ util::{lazy::Lazy, pool::Pool},Át³; �A4Â;ŸŠ-É;�äÍ; static RE: Lazy =Áüê;:7 Lazy::new(|| Regex::new("foo[0-9]+bar").unwrap());Áü¥<%" static CACHE: Lazy> =ÁüË<63 Lazy::new(|| Pool::new(|| RE.create_cache()));Á‚=�ü†=/áüIü¶=JG assert_eq!(expected, RE.find(&mut CACHE.get(), b"zzzfoo12345barzzz"));Á<�>ãˆ-$”>�±‚²²±ýë/ ™>÷ŽClœ>ÝÑ�"0ùãѰ³¸Ê"ÝÑBÿ*kh®¸Ê"ÝÑBÿ¯¯ °óëªÆy{~ œ>¥€Jü«>$®¯¯¸Ê"¬Ó>�µ‚¶¶µýë/ Ø>÷ŽC Û>ÝÑ·¸¹ üÙ?#üï>DA Create a new pool. The given closure is used to create values inÁä¸? the pool when necessary.Áà?ªÆÝÑBÿ´´²Ð"Å¡²¤ü°G>üÉ@DõÔKä’AÂÕK³A�ü»AKH When the `std` feature is enabled, a `Pool` is thread-aware and spreadsÁü‹BIF its memory out across multiple cache lines. The number of cache linesÁüÙBHE is determined by the `capacity` parameter passed here. By default, aÁü¦CJG fixed reasonable number is used. A smaller number means less memory isÁüõCHE used, but a higher number means there may be less contention on thisÁüÂDJG pool in highly threaded environments doing a lot of searches using theÁ¼‘E same `Regex` value.Á­E�üµEEB When `std` is not enabled, then the capacity parameter is ignoredÁüÿEC@ because the underlying pool implementation is not thread-aware.ÁÇF�üÏFDA The capacity must be at least 1. If it's less than 1, then it isÁœ˜G forced to be 1.Ál·GªÆÝÑBÿ´´ÚÏ"ÀÛâ¥Å¡ì¥ü†LCüæHDõÔKä¯IÂÕKÐI�üØIHE This is a convenience routine for calling `Pool::with_capacity` withÁü¥JJG a number equivalent to the available parallelism for this environment.ÁôJ�üüJEB If `std` is not enabled or if the query for available parallelismÁüÆK;8 failed, then this is equivalent to calling `Pool::new`.Áü�L#ªÆÝÑBÿ´´ ¹óëªÆÅ¡Q¨¼†M$™Mü¬M1¬³M®ÿÍ"òúM»�¼�¼�¼¼»�Õ"¼N»�½�½�½½»ùÓ"üôP&�¿‚À¿À÷ƒJ �Q÷ŽC ‚QÛ’J$üP–„JL…Qýë/ ùPÝÑÁ  02ü”X(ü¡Q?< Get a value from the pool. The caller is guaranteed to haveÁüåQFC exclusive access to the given value. Namely, it is guaranteed thatÁü°RGD this will never return a value that was returned by another call toÁüüR-* `get` but was not put back into the pool.Á®S�ü¶SGD When the guard goes out of scope and its destructor is called, thenÁü‚TC@ it will automatically be put back into the pool. Alternatively,ÁüÊTHE [`PoolGuard::put`] may be used to explicitly put it back in the poolÁü—U&# without relying on its destructor.ÁÂU�üÊUEB Note that there is no guarantee provided about which value in theÁü”VGD pool is returned. That is, calling get, dropping the guard (causingÁüàVEB the value to go back into the pool) and then calling get again isÁüªWIF *not* guaranteed to return the same value received in the first `get`ÁLøW call.Á›XÖ1 Ö1ÝÑÆÆÇ�¯Ëó® V ÜÞAçƒÖ1óëªÆBÿ¾ ŸX¾ ÁóëªÆ$ XüèX<�ÂÄÃÄýë/ íX÷ŽC ‚YõŒJ„ðXÝÑÅ gÅ#%(*ü«Y@®Y×1Ø1Ù1 ×1ÝÑ Ø1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ù1ÏÁBÿ ²Y ÅóëªÆ$³Yœý¯—xü­ZJG A guard that is returned when a caller requests a value from the pool.ÁøZ�üüZJG The purpose of the guard is to use RAII to automatically put the valueÁüÇ['$ back in the pool once it's dropped.ÁLú[�È�É‚ÊÉÈÊÕ×2 ˆ\þÆÜÒ ‘\ýƬð$‹\…#ÜÒL”\�#ÜÒ¬ð œ\ç×2¤Ë–ÜÒ�ŸÒV ÜÞAçƒÇËÇÔŸÒBÿNzЮÇÔŸÒBÿÆÆ Ç�¬ðÜÒ„\àâÜÞÔŸ\®ÆÆÇÔü½\3�Í�΂ÏÎÏͬòK Ú\÷ñK Ï\ˆòK$É\™òKLÒ\Õ×2 Æ\ŸÒÐÂ\68ü–_%ü÷\74 Consumes this guard and puts it back into the pool.Á³]�ü»]JG This circumvents the guard's `Drop` implementation. This can be usefulÁüŠ^JG in circumstances where the automatic `Drop` results in poorer codegen,ÁüÙ^*' such as calling non-inlined functions.Á�_Ú1ÆÆÇ�¯Ëó® V ÜÞAçƒÚ1¬ðÜÒBÿ̱_Ì Ð�¬ðÜÒÆ€ æ±üî_H�Ò�Ó‚ÔÒÓÔ¬òK ‹`÷ñK €`ˆòK$ú_™òKLƒ`Õ×2 ÷_ŸÒÕÖÝ"Þ"Öó_ "EG\½`4Â`ÑѬð¬á`,ä`Û1 Û1ŸÒ Û1¬ðBÿÑ ê`Ñ Ö�¬ðÜÒ$ë`ü™aK�Ø�Ù‚ÚÙÚØ¬òK ¶a÷ñK «aˆòK$¥a™òKL®aÕ×2 ¢aŸÒÛê"Ûža>@üùa!LüaÜ1 Ü1ŸÒ Ü1¬ðBÿ× †b× Û�¬ðÜÒ$‹büÁb_�Ý�Þ‚ßÞÝ߬òK ñb÷ñK æbˆòK$ÍbŸg¬ð„Ôb™òKLébÕ×2 ÊbŸÒà gàÆbNPü§c@ªcÝ1Þ1ß1 Ý1ŸÒ Þ1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ß1ÏÁBÿÜ ®cÜ à�¬ðÜÒ$¯cœ}´LÆdÓ‰|´d¼®d,Êd®ñòóôõöšÝ ä å æ„#Tðd“2áã RefUnwindSafeÁlŒe–šáå UnwindSafeÁT›e•šáæ AtomicUsizeÁ\¿e� áè²DÌe“�áéöÃöeŸáë–ûeÐ=áì–áìü…f…Cáí¨, f²6áïÖd§fµáð$Úd„êdüÚd/øúÜÞüÚdbÄÆ²´,çeTïe§”–D€ft”f\šfiVXÜêg<ñgáÎí"CüÆiŒÍiáƒì÷k|þkáü˜qŒŸqá丌|¾Œáä¥�$·�®�÷‚øø÷ýë/ ¼�÷ŽC ¿�¾ÓlL³_Òj¯»ùúûü.024L»ž4»žáööªÆüº¡*4º¡áöööƒ#”ƒ¦,ƒ¦áööÎí"ü›¨ L›¨áööÜ…#ü€·8�þ‚ÿþÿýë/ Œ·÷ŽC •·Û’J$�·ü’J$˜·�“J$Ÿ·¾Ó-/13üººL��‚‚�‚ýë/ ¿º÷ŽC κ•šóëTº•šªÆTѺ–šªÆlÞº¾ÓHJLNü‹¾W�„‚…„…ýë/ �¾÷ŽC Ÿ¾‹ˆLT“¾�ˆLT¢¾¯ˆLl¯¾¾Ó-/13¬ô¾�‡‚ˆˆ‡ýë/ ù¾÷ŽC ü¾¾Ó‰Šü†À*”À®ªÆ¾ÓBÿ††›É"Å¡r¼üˆÄEl–Ä®ªÆ¾ÓBÿ††ÊË"ÀÛdÁÅ¡oÁüÝÚ&�Œ‚��Œ÷ƒJ öÚ÷ŽC ëÚÛ’J$åÚ–„JLîÚýë/ âÚ¾ÓŽ�‘“”•CEüªÜ/¸Ü®ã1 ã1¾Óšš�¯ž•­áŸ�á ±µáQzÆ%þ�çã1óëªÆBÿ‹ ¼Ü‹ƒÜ"$½Ü$§äŽ�������ްˆ#üØêuDÛêáä1 ä1¾Óšš�¯ž•­áŸ�á ±µáQzÆ%þ�çä1óëªÆBÿ‹ ñê‹Ù‹#$òêàÝÓÔ²çÓüÂ"LÆ‚áå1 å1¾Óà… Bÿ‹ Ђ‹ ‘óëªÆ$Ñ‚�ÉÝ$�ƒ‘�’�’�’’‘°´#üŸŒ;\¢Œáæ1 æ1¾Óšš�¯ž•­áŸ�á ±µáQzÆ%þ�çæ1óëªÆBÿ‹ ®Œ‹›‹#$¯Œàòàü“Ž;\–Žáç1 ç1¾Óà… šš�¯ž•­áŸ�á ±µáQzÆ%þ�çç1óëªÆBÿ‹ ¢Ž‹õž#$£Ž� âüò�E¬õ�áè1 è1¾Óà… šš�¯ž•­áŸ�á ±µáQzÆ%þ�çè1óëªÆBÿ‹ ‹‘‹Ρ#$Œ‘�Ðâü•’<�—‚˜˜—ýë/ š’÷ŽC ¯’õŒJ„�’¾Ó™ g™&(*,üÜ’Dß’é1ê1ë1 é1¾Ó ê1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ë1ÏÁBÿ– ã’– ™óëªÆ$ä’œåüÕ•6Lç•®�›�œ‚�›œ�Õ×2 õ•÷ñK þ•ˆòK$ø•™òKL�–¬òK ‰–ç×2|ÌòKƒÇÔQzÆ%þ�瞟 ­ñ•_aceÈ$Ë–ášš �–Ô#ä�™,�™ášš¦Í#l²œ<²œáššüÌœ3�¢�£‚¤¤¢£¬òK éœ÷ñK ÞœˆòK$Øœ™òKLáœÕ×2 ÕœÇÔ¥¦§¨ÑœDFüÅ� ,Ó�®ì1 ì1ÇÔ ì1¬ðBÿ¡ Ù�¡ ¥�¬ðÜÒ$Ú�ü¥§,L³§®í1 í1ÇÔ í1¬ðBÿ¡ ½§¡ ¦�¬ðÜÒ$§ü™±,§±®î1šš�¯ž•­áŸ�á ±µáQzÆ%þ�çî1¬ðÜÒBÿ¡»±¡ §�¬ðÜÒÆ€ ü÷¬½¶<À¶áï1 ï1ÇÔBÿ¡ ȶ¡ ¨�¬ðÜÒ$ͶüìÄ<�ª�«‚¬«¬ª¬òK ‰Å÷ñK þĈòK$øÄ™òKL�ÅÕ×2 õÄÇÔ­�#­ñÄCE”ÅÅ$ÈÅð1 ð1ÇÔBÿ© ÍÅ© ­�¬ðÜÒ$ÒÅü‹Æc�¯�°‚±°¯±¬òK »Æ÷ñK °ÆˆòK$—ÆÊýK„žÆ™òKL³ÆÕ×2 ”ÆÇÔ² g²�ÆLNüýÆ@€Çñ1ò1ó1 ñ1ÇÔ ò1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ó1ÏÁBÿ® „Ç® ²�¬ðÜÒ$…Çœ”ÿŒ© 1üÛ (Ö Defines a prefilter for accelerating regex searches. A prefilter can be created by building a [`Prefilter`] value. A prefilter represents one of the most important optimizations available for accelerating regex searches. The idea of a prefilter is to very quickly find candidate locations in a haystack where a regex _could_ match. Once a candidate is found, it is then intended for the regex engine to run at that position to determine whether the candidate is a match or a false positive. In the aforementioned description of the prefilter optimization also lay its demise. Namely, if a prefilter has a high false positive rate and it produces lots of candidates, then a prefilter can overall make a regex search slower. It can run more slowly because more time is spent ping-ponging between the prefilter search and the regex engine attempting to confirm each candidate as a match. This ping-ponging has overhead that adds up, and is exacerbated by a high false positive rate. Nevertheless, the optimization is still generally worth performing in most cases. Particularly given just how much throughput can be improved. (It is not uncommon for prefilter optimizations to improve throughput by one or two orders of magnitude.) Typically a prefilter is used to find occurrences of literal prefixes from a regex pattern, but this isn't required. A prefilter can be used to look for suffixes or even inner literals. Note that as of now, prefilters throw away information about which pattern each literal comes from. In other words, when a prefilter finds a match, there's no way to know which pattern (or patterns) it came from. Therefore, in order to confirm a match, you'll have to check all of the patterns by running the full regex engine. ÁL± 1´ÃÔõ„¸ÉË�!¥!Y4¸(ͳ”q,É(Ÿg³•q¢g³•¨ÿKlÜ(–š³—ËÿKTë(•š³˜K§(„K³™Ð<à(¼³›œ‰é(„³œûíLŠ(Û%³ž§è$•(û$³Ÿ‰Ç\Ø(ë ¡š°<ò(ñ ¢úÇ4ˆ(ù ¤¯È<�(€!¥íÈ<™(ˆ!¦³É4¯(‘!§äÉ,Â(—!¨„Ý (dá (³ë ¨¾T"#¸´¶ûíL;#Û%´¸§è$F#û$´¹\#¬#Aü4#24!#„­#°Õ»üÄo#Ò#ø1æƒ ø1ñ…$–…$Bÿºþ¼¼ ‘#ºþÆæñ Ö#£æñ³÷\Ù#’í$¦i ÀEw +-ü�#°Õ¾¿ÀÁ¹º»¼½¿ÁÂÀ¾ô¶#$¹#ù1 ù1°Õ–ó,Bÿ½ ¾#½ ¾$¿#üù;#$ü#ú1û1 ú1°Õ û1³÷°û„³Bÿ½ �#½ ¿$‚#âìDˆ#¸ë$™#üÔ =#4× #ü1ý1 ü1°Õ ý1³÷°û„³Bÿ½ Þ #½ À$ß #âìDå #¸ë$ö #üé$#dì$#þ1 þ1°ÕBÿ½ ù$#½ Á$ú$#Ìñ&#<ô&#ÿ1 ÿ1°ÕBÿ½ ü&#½ Â$ý&#\ï (<ó (³ñ ò ¨¾T"$¸ÃÅûíL;$Û%Ãǧè$F$û$ÃÈ\$¬$Aü4$24!#d’$ýÕÊü¥l$³$„2æƒ „2ñ…$¯Š$BÿÉþËË ó$É»·L ·$Ì·L\º$àë$–Š$ ÀE   "܇$ýÕÍÎÑÒÓ¹º»¼½ÓÑÍÒÎô©$$¬$…2 …2ýÕ–ó,BÿÌ ±$Ì Í$²$üç;$$ê$†2‡2 †2ýÕ ‡2³÷°û„³BÿÌ ï$Ì Î$ð$âìDö$¸ë$‡$$Ì$Î�Ï�Ï�ÏÏÎÏš¢©‡$í$Î�Ð�Ð�ÐÐÎДâ°ûUÿÂàüò=$4õ$ˆ2‰2 ˆ2ýÕ ‰2³÷°û„³BÿÌ ü$Ì Ñ$ý$âìDƒ $¸ë$” $üû $dþ $Š2 Š2ýÕBÿÌ ‹ $Ì Ò$Œ $̲ $<µ $‹2 ‹2ýÕBÿÌ ½ $Ì Ó$¾ $Tü (4€(³ù ú €!�!ˆ!‰!¨¾T"%¸ÔÖûíL;%Û%ÔØ§è$F%û$ÔÙ\%¬%Aü4%24!#\ˆ%ÍÖÛüšk%¨%�2æƒ �2ñ…$˜�$BÿÚþÜÜ è%Ú»·L ¬%Ì·L\¯%�å$–Š$k ÀEu  "Ô�%ÍÖÞßàá⹺»¼½âàÞßáô±%$´%‘2 ‘2ÍÖ–ó,BÿÝ ¹%Ý Þ$º%üî;%$ñ%’2“2 ’2ÍÖ “2³÷°û„³BÿÝ ö%Ý ß$÷%âìDý%¸ë$Ž%ü§ =%4ª %”2•2 ”2ÍÖ •2³÷°û„³BÿÝ ± %Ý à$² %âìD¸ %¸ë$É %ü¥ %d¨ %–2 –2ÍÖBÿÝ µ %Ý á$¶ %ÌÜ %<ß %—2 —2ÍÖBÿÝ ç %Ý â$è %dÊ %�×äüÝ l%ë %œ2æƒ œ2ñ…$‰•$Bÿãþåå « %ã»·L ï %Ì·L\ò %Àæ$–Š$\ ÀEf  "ܯ%�×çèéê빺»¼½ëéçèêôÑ%$Ô%�2 �2�×–ó,Bÿæ Ù%æ ç$Ú%ü�;%$’%ž2Ÿ2 ž2�× Ÿ2³÷°û„³Bÿæ —%æ è$˜%âìDž%¸ë$¯%üÑ=%4Ô% 2¡2  2�× ¡2³÷°û„³Bÿæ Û%æ é$Ü%âìDâ%¸ë$ó%üÞ%dá%¢2 ¢2�×Bÿæ î%æ ê$ï%Ì•%<˜%£2 £2�×Bÿæ  %æ ë$¡%d‡%ù×íüšl%¨%¨2æƒ ¨2ñ…$ü›$Bÿìþîî è%ì»·L ¬%Ì·L\¯%ñç$–Š$Ï ÀEÙ  "Ü�%ù×ðñòóô¹º»¼½ôòðóñô¿%$Â%©2 ©2ù×–ó,Bÿï Ç%ï ð$È%üý;%$€%ª2«2 ª2ù× «2³÷°û„³Bÿï …%ï ñ$†%âìDŒ%¸ë$�%üÇ"=%4Ê"%¬2­2 ¬2ù× ­2³÷°û„³Bÿï Ñ"%ï ò$Ò"%âìDØ"%¸ë$é"%üã$%dæ$%®2 ®2ù×Bÿï ó$%ï ó$ô$%Ìš%%<�%%¯2 ¯2ù×Bÿï ¥%%ï ô$¦%%Tˆ(4Œ(³‘!¨¾T"&¸õ÷ûíL;&Û%õù§è$F&û$õú\&¬&Aü4&24!#\Ô&áØüüæk&ô&´2æƒ ´2ñ…$Ä $Bÿûþýý ´&û»·L ø&Ì·L\û&¢é$–Š$ ÀE!  "Ô™&áØÿ€�‚ƒ¹º»¼½ƒ�ÿ‚€ôº&$½&µ2 µ2áØ–ó,Bÿþ Â&þ ÿ$Ã&ü÷;&$ú&¶2·2 ¶2áØ ·2³÷°û„³Bÿþ ÿ&þ €$€&âìD†&¸ë$—&üï =&4ò &¸2¹2 ¸2áØ ¹2³÷°û„³Bÿþ ù &þ �$ú &âìD€ &¸ë$‘ &üõ&dø&º2 º2áØBÿþ …&þ ‚$†&Ì£&<¦&»2 »2áØBÿþ ®&þ ƒ$¯&L”(,˜(³—!¨¾T"'¸„†ûíL;'Û%„ˆ§è$F'û$„‰\'¬'Aü4'24!#T· '®Ù‹üÈ i'Ö 'À2æƒ À2ñ…$Œ¥$BÿŠþŒŒ •'Š»·L Ú 'Ì·L\Ý 'Áê$¦_ ÀEi !Ì�'®ÙŽ��‘’¹º»¼½’Ž�‘�ô¯'$²'Á2 Á2®Ù–ó,Bÿ� ·'� Ž$¸'üë;'$î'Â2Ã2 Â2®Ù Ã2³÷°û„³Bÿ� ó'� �$ô'âìDú'¸ë$‹'ü× ='4Ú 'Ä2Å2 Ä2®Ù Å2³÷°û„³Bÿ� á '� �$â 'âìDè '¸ë$ù 'ü²&'dµ&'Æ2 Æ2®ÙBÿ� Â&'� ‘$Ã&'Ì–)'<™)'Ç2 Ç2®ÙBÿ� ¡)'� ’$¢)'$¤(t°(lTÄ(_ü¤5(>A-0„š(Ó«Œ‚(Ìü(5ŒÌ(ÓΔ³(Ô­(:ÓÎL9ÓÎ+)Kœô(<?,/´¬(ÌÊ($„é(ü¬Y(  úýëît§(àd»(Òtä*(ûÙª®¯°³´µ¶·üŽ;f(üù*I(F Create a new prefilter from a sequence of needles and a correspondingÁ¤Ç+( match semantics.Áà+(�üè+D(A This may return `None` for a variety of reasons, for example, ifÁü±,C(@ a suitable prefilter could not be constructed. That might occurÁüù,C(@ if they are unavailable (e.g., the `perf-literal-substring` andÁüÁ-G(D `perf-literal-multisubstring` features aren't enabled), or it mightÁü�.G(D occur because of heuristics or other artifacts of how the prefilterÁTÙ.( works.Áè.(�üð.J(G Note that if you have an [`Hir`] expression, it may be more convenientÁü¿/K(H to use [`Prefilter::from_hir_prefix`]. It will automatically handle theÁü�0/(, task of extracting prefix literals for you.ÁÃ0(�lË0(Áˆ-Ý0(�üå0B(? This example shows how match semantics can impact the matchingÁü¬1H(E algorithm used by the prefilter. For this reason, it is important toÁüù1F(C ensure that the match semantics given here are consistent with theÁüÄ2I(F match semantics intended for the regular expression that the literalsÁÄ’3( were extracted from.Á¯3(�<·3(ãˆ-ÌÃ3(óˆ-üá3-(* util::{prefilter::Prefilter, syntax},ÁÄ“4( MatchKind, Span,Á4°4(ŸŠ-»4(�ôÃ4( let hay = "Hello samwise";Áæ4(�üî4C(@ // With leftmost-first, we find 'samwise' here because it comesÁü¶50(- // before 'sam' in the sequence we give it..Áüë5K(H let pre = Prefilter::new(MatchKind::LeftmostFirst, &["samwise", "sam"])Áü»6( .expect("a prefilter");Á|ß6(ÐŒ-üó6 ( Some(Span::from(6..13)),Áü˜7;(8 pre.find(hay.as_bytes(), Span::from(0..hay.len())),Á4Ø7(Ä�-üã7I(F // Still with leftmost-first but with the literals reverse, now 'sam'ÁÔ±8( // will match instead!ÁüÐ8K(H let pre = Prefilter::new(MatchKind::LeftmostFirst, &["sam", "samwise"])Áü 9(›ñL|Ä9(ÐŒ-üØ9( Some(Span::from(6..9)),Áüü9;(ûñL4¼:(Ä�-Ç:(�üÏ:.(à�-<‚;(ãˆ-•;(Ì2æƒ Ì2ñ…$ó¯Bÿ©þ«« Ô;(©»·L ™;(Ì·L\œ;( ªæñ¦ ÀE %'D£<(ª�¬�¬�¬¬ª¹®$ò<(ª�­�­�­­ªݱ$üè>a(\ë>(³´Ûó¯Bÿ©©ܳ$ï³$4€?(‰¾t˜?(ü²LG(üíDI(F This attempts to extract prefixes from the given `Hir` expression forÁü»EF(C the given match semantics, and if possible, builds a prefilter forÁL†F( them.Á”F(�lœF(Áˆ-®F(�ü¶FH(E This example shows how to build a prefilter directly from an [`Hir`]ÁüƒGH(E expression, and use to find an occurrence of a prefix from the regexÁdÐG(…–.áG(�<éG(ãˆ-ÌõG(óˆ-ü“H-(›îLÄÅH(ÑîL4âH(ŸŠ-íH(�üõH3(0 let hir = syntax::parse(r"(Bruce|Patti) \w+")?;Áü­IH(E let pre = Prefilter::from_hir_prefix(MatchKind::LeftmostFirst, &hir)ÁüúI(›ñLüžJ%(" let hay = "Hello Patti Scialfa!";Á|ÈJ(ÐŒ-üÜJ (ê«Eü�K;(ûñL4ÁK(Ä�-ÌK(�üÔK.(à�-<‡L(ãˆ-ÓΔ™L(Ô“L(|¹L(Í2æƒ Í2’Šó¯Bÿ© ßL(© ¯¦$ÉL(ä÷ÚL(üÎXp(ü¹MJ(G This attempts to extract prefixes from the given `Hir` expressions forÁüˆNF(îøLLÓN(½ùLáN(�üéNF(C Note that as of now, prefilters throw away information about whichÁü´OK(H pattern each literal comes from. In other words, when a prefilter findsÁü„PG(D a match, there's no way to know which pattern (or patterns) it cameÁüÐPJ(G from. Therefore, in order to confirm a match, you'll have to check allÁüŸQ5(2 of the patterns by running the full regex engine.ÁÙQ(�láQ(Áˆ-óQ(�üûQF(C This example shows how to build a prefilter directly from multipleÁüÆRG(D `Hir` expressions expression, and use it to find an occurrence of aÁü’S#( prefix from the regex patterns.ÁºS(�<ÂS(ãˆ-ÌÎS(óˆ-üìS-(›îLÄžT(ÑîL4»T(ŸŠ-ÆT(�üÎT$(! let hirs = syntax::parse_many(&[Áì÷T( r"(Bruce|Patti) \w+",Áä™U( r"Mrs?\. Doubtfire",ÁDºU(žØ?üÇUJ(G let pre = Prefilter::from_hirs_prefix(MatchKind::LeftmostFirst, &hirs)Áü–V(›ñLüºV%(" let hay = "Hello Mrs. Doubtfire";Á|äV(ÐŒ-üøV ( Some(Span::from(6..20)),Áü�W;(ûñL4ÝW(Ä�-èW(�üðW.(à�-<£X(ãˆ-ÓΔµX(Ô¯X(„ÕX(Î2æƒ Î2Ïœó¯Bÿ©„±± žY(©äï? æX(öï?\éX( °ò›¦Ÿ �™© &(4ŒZ(°�²�²�²²°š¹$üìb?(üºZK(H Run this prefilter on `haystack[span.start..end]` and return a matchingÁ¼Š[( span if one exists.Á¦[(�ü®[I(F The span returned is guaranteed to have a start position greater thanÁüü[H(E or equal to the one given, and an end position less than or equal toÁ”É\( the one given.Áà\(�lè\(Áˆ-ú\(�ü‚]H(õùLüÏ]K(H expression, and use it to find an occurrence of a prefix from the regexÁdŸ^(…–.°^(�<¸^(ãˆ-ÌÄ^(óˆ-üâ^-(›îLÄ”_(ÑîL4±_(ŸŠ-¼_(�üÄ_+(( let hir = syntax::parse(r"Bruce \w+")?;Áüô_H(½üLüÁ`(›ñLüå`)(& let hay = "Hello Bruce Springsteen!";Á|“a(ÐŒ-ü§a (ê«EüÌa;(ûñL4Œb(Ä�-—b(�üŸb.(à�-<Òb(ãˆ-$ób(Ï2Ð2 Ï2ûÙ Ð2³÷°û„³Bÿ© øb(©µþ$ùb(âì ¸ë ü¡pA(üïdG(D Returns the span of a prefix of `haystack[span.start..span.end]` ifÁÔ»e( the prefilter matches.ÁÚe(�üâeJ(G The span returned is guaranteed to have a start position equivalent toÁü±fK(H the one given, and an end position less than or equal to the one given.Á�g(�l‰g(Áˆ-›g(�ü£gH(õùLüðgK(ç�MüÀh8(5 pattern that begins at the start of a haystack only.Áýh(�<…i(ãˆ-Ì‘i(óˆ-ü¯i-(›îLÄái(ÑîL4þi(ŸŠ-‰j(�ü‘j+(£�MüÁjH(½üLüŽk(›ñLü²k)(ô�Müàk1(. // Nothing is found here because 'Bruce' doesÁü–l0(- // not occur at the beginning of our search.Á|Ël(ÐŒ-lßl(Ü‘-üñl=(: pre.prefix(hay.as_bytes(), Span::from(0..hay.len())),Á4³m(Ä�-ü¾m1(. // But if we change where we start the searchÁüôm-(* // to begin where 'Bruce ' begins, then aÁܦn( // match will be found.Á|Æn(ÐŒ-üÚn (ê«Eüÿn=(: pre.prefix(hay.as_bytes(), Span::from(6..hay.len())),Á4Áo(Ä�-Ìo(�üÔo.(à�-<‡p(ãˆ-4¨p(Ñ2Ò2 Ñ2ûÙ Ò2³÷°û„³Bÿ© ¯p(© ´$°p(âìò ¸ëü üƒs#(ü¨rH(E Returns the heap memory, in bytes, used by the underlying prefilter.ÁdŠs(Ó2 Ó2ûÙBÿ© —s(© µ$˜s(ü¼u%(üät+(( Return the length of the longest needleÁ¬”u( in this PrefilterÁtÃu(Ô2 Ô2ûÙBÿ© Òu(© ¶$Óu(ìÆ(ü›wH(E Implementations might return true here if they believe themselves toÁüèwG(D be "fast." The concept of "fast" is deliberately left vague, but inÁü´xH(E practice this usually corresponds to whether it's believed that SIMDÁŒ�y( will be used.Á—y(�üŸyG(D Why do we care about this? Well, some prefilter tricks tend to comeÁüëyG(D with their own bits of overhead, and so might only make sense if weÁü·zH(E know that a scan will be *much* faster than the regex engine itself.Áü„{E(B Otherwise, the trick may not be worth doing. Whether something isÁüÎ{G(D "much" faster than the regex engine generally boils down to whetherÁüš|H(E SIMD is used. (But not always. Even a SIMD matcher with a high falseÁüç|)(& positive rate can become quite slow.)Á•}(�ü�}H(E Even if this returns true, it is still possible for the prefilter toÁüê}H(E be "slow." Remember, prefilters are just heuristics. We can't reallyÁü·~J(G *know* a prefilter will be fast without actually trying the prefilter.Áü†-(* (Which of course we cannot afford to do.)Á<Í(Õ2 Õ2ûÙBÿ© Õ(© ·$Ö(üŸ„[(T°„(¸¸´â6üŸ„Œ (ÌÝ;,À„(ýƤü$È„(ÿ ¤ü$Ï„(–š¤ülÖ„(•š¤üTæ„(¤ü<ó„(¸´â6yÌÝ;tÿ¨Mh‘©M]¢©MQ´©MEÆ©M?´â6£ÌÝ;žÿ¨M’‘©M‡¢©M{´©MoÆ©Mi¹º»¼½¹º»¼½º¼½»¹ü¬…($¯…(Ö2 Ö2¤ü–ó,Bÿ¸ ´…(¸ ¹¤ü$µ…(ü÷‡<($ú‡(×2Ø2 ×2¤ü Ø2³÷°û„³Bÿ¸ ÿ‡(¸ º¤ü$€ˆ(âìD†ˆ(¸ë$—ˆ(üËŠ>(4Ί(Ù2Ú2 Ù2¤ü Ú2³÷°û„³Bÿ¸ ÕŠ(¸ »¤ü$ÖŠ(âìDÜŠ(¸ë$íŠ(üÜ‹ (dß‹(Û2 Û2¤üBÿ¸ ì‹(¸ ¼¤ü$í‹(Ô��(<’�(Ü2 Ü2¤üBÿ¸ š�(¸ ½¤ü$›�(üÇ�2(Ó«Œ³�(Ì­�(Œ¿¿ÿÆ£Û4Ü�(¸£ÛTÏ�(×ÚÀÁÂÃĹº»¼½ÀÂÃÁÄ Ì�(ô€Ž($ƒŽ(Ý2 Ý2×Ú–ó,Bÿ¾ ˆŽ(¾ À£Û$‰Ž(üýŽ;($€�(Þ2ß2 Þ2×Ú ß2³÷°û„³Bÿ¾ …�(¾ Á£Û$†�(âì# ¸ë# ü¥�=(4¨�(à2á2 à2×Ú á2³÷°û„³Bÿ¾ ¯�(¾ £Û$°�(âì$ ¸ë$ üÑ‘(dÔ‘(â2 â2×ÚBÿ¾ á‘(¾ ãÛ$â‘(Ì×’(<Ú’(ã2 ã2×ÚBÿ¾ â’(¾ Ä£Û$ã’(\üž(´ÛÆüð§j(þ§(è2æƒ è2ñ…$¤¯$BÿÅþÇÇ ½¨(Å»·L ‚¨(Ì·L\…¨(Æ­$¦@7 ÀEK7 !#¨¬(Æ�È�È�ÈÈÆ‰ä$üâÀn(ÓΔÍÀ(ÔÇÀ(DðÀ(é2æƒ é2Ïœÿº$Bÿ„ÊÊ “Á(äï? ùÀ(öï?̶Á( ·$¦À= �™Ë= "$üêÈn(ÓΔÕÈ(ÔÏÈ(DøÈ(ê2æƒ ê2Ïœÿº$Bÿ„ÌÌ ›É(äï? �É(öï?̾É( Ëò›¦$„É(�™$•É(*,”¼ 1ü˜ )“ Lower level primitive types that are useful in a variety of circumstances. # Overview This list represents the principle types in this module and briefly describes when you might want to use them. * [`PatternID`] - A type that represents the identifier of a regex pattern. This is probably the most widely used type in this module (which is why it's also re-exported in the crate root). * [`StateID`] - A type the represents the identifier of a finite automaton state. This is used for both NFAs and DFAs, with the notable exception of the hybrid NFA/DFA. (The hybrid NFA/DFA uses a special purpose "lazy" state identifier.) * [`SmallIndex`] - The internal representation of both a `PatternID` and a `StateID`. Its purpose is to serve as a type that can index memory without being as big as a `usize` on 64-bit targets. The main idea behind this type is that there are many things in regex engines that will, in practice, never overflow a 32-bit integer. (For example, like the number of patterns in a regex or the number of states in an NFA.) Thus, a `SmallIndex` can be used to index memory without peppering `as` casts everywhere. Moreover, it forces callers to handle errors in the case where, somehow, the value would otherwise overflow either a 32-bit integer or a `usize` (e.g., on 16-bit targets). * [`NonMaxUsize`] - Represents a `usize` that cannot be `usize::MAX`. As a result, `Option` has the same size in memory as a `usize`. This useful, for example, when representing the offsets of submatches since it reduces memory usage by a factor of 2. It is a legal optimization since Rust guarantees that slices never have a length that exceeds `isize::MAX`. ÁTÄ 1’¿!À!Ò!Ó!é!ô!ú!û!�"�"ç"è"ó"ô"ú"Ç#È#Ó#Ô#Ú# NonZeroUsizeÁd© )ÈçÍÎüâ )…CÍÏâè,ÿ )«ÍÑáå†)…ÍÒ²æ‹)�ÍÓ—ç�)—ÍÔ¼ž )„|Ö )Ó«Œ¾ )̸ )‡„ì )wyegSUAC„õ) ÝÖ×ü«/)üŒ4)1 Create a new `NonMaxUsize` from the given value.ÁÅ)�üÍK)H This returns `None` only when the given value is equal to `usize::MAX`.Á²)‡ïBÿÕÕ Ö�9E Ì©)üªI)F Return the underlying `usize` value. The returned value is guaranteedÁôø) to not equal `usize::MAX`.Á°) ÝBÿÕÕ°�jF ü�%) ÝÙ gÙü¼@)¿)õ2ö2÷2 õ2 Ý ö2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡÷2ÏÁBÿØ Ã)Ø Ù$Ä)œ Ê)|‡3)ÈÞÛÜÝÞßàáâãäåæçéë̈4)ä�3) The maximum index value.ÁÆ32ÁÜÈ3)Æ64ÁÜå3)üÇ3:)ü¾3E)’4)ÚÚÈÞ´¥7)üØ6H)E The total number of values that can be represented as a small index.Á,¯7)ÚÚÔ�8)Ìã7) The zero index value.Á$‹8)ÚÚÈÞ¬‡9)üÁ8A)> The number of bytes that a single small index uses in memory.Á$‘9)ÚÚüÜ:?)ìÈ9) Create a new small index.Áê9)�üò9E)B If the given index exceeds [`SmallIndex::MAX`], then this returnsÁl¼:)™¦/ã:)–òBÿÚÚàÙ÷°O ü¾?6)üÍ;E)B Create a new small index without checking whether the given valueÁü—< ) exceeds [`SmallIndex::MAX`].Á¼<)�üÄ Using this routine with an invalid index value will result inÁüŠ=I)F unspecified behavior, but *not* undefined behavior. In particular, anÁüØ=I)F invalid index value is likely to cause panics or possibly even silentÁœ¦>) logical errors.Á¾>)�üÆ>J)G Callers must never rely on a `SmallIndex` to be within a certain rangeÁ´•?) for memory safety.ÁlË?)ÈÞBÿÚÚ×™%÷-P üÉA')üí@I)F Like [`SmallIndex::new`], but panics if the given index is not valid.Á$ÐA)ÈÞBÿÚÚ á÷•Q ü­C%)ü»BE)B Return this small index as a `usize`. This is guaranteed to neverÁ¬…C) overflow `usize`.ÁDºC)…3 …3ÈÞBÿÚ ÃC)Ú„ˆ$ÄC)ü¬E!)üÄDC)@ Return this small index as a `u64`. This is guaranteed to neverÁlŒE) overflow.Á4¹E)†3 †3ÈÞBÿÚ ÀE)Ú²ç%$ÁE)ü·G!)ü¾FH)E Return the internal `u32` of this small index. This is guaranteed toÁÌ‹G) never overflow `u32`.Á4ÄG)‡3 ‡3ÈÞBÿÚ ËG)Ú•®%$ÌG)ü‰I!)üõGJ)G Return the internal `u32` of this small index represented as an `i32`.ÁüÄH2)/ This is guaranteed to never overflow an `i32`.Á4–I)ˆ3 ˆ3ÈÞBÿÚ �I)Úºì%$žI)üùK)üœJ6)3 Returns one more than this small index as a usize.Á×J)�üßJK)H Since a small index has constraints on its maximum value, adding `1` toÁü¯K7)4 it will always fit in a `usize`, `u32` and a `i32`.ÁD€L)‰3 ‰3ÈÞBÿÚ ‰L)Úõá$ŠL)üÑNZ)üÂLH)E Decode this small index from the bytes given using the native endianÁü�M&)# byte order for the current target.ÁºM)�üÂMH)E If the decoded integer is not representable as a small index for theÁü�N/), current target, then this returns an error.ÁlØN)ïç–òBÿÚÚ˜ð%¹•îW ûN)ü¿S<)ü•QH)ŒàMüâQ&)ÞàM�R)�ü•RJ)G This is analogous to [`SmallIndex::new_unchecked`] in that is does notÁüäRH)E check whether the decoded integer is representable as a small index.Á¼ÆS)ïçÈÞBÿÚÚáò%¹•²Y êS)ü¿U$)üÑTK)H Return the underlying small index integer as raw bytes in native endianÁ\¡U)«Ê4\ÆU)Š3 Š3ÈÞïçBÿÚ ÒU)ÚÄô%$ÓU) áU)üŒV,)�îîýë/ ‘V)üßïð�ý‘ýð\¿V)4ÄV)ííóëüãV(),æV)€‹3 ‹3üßÈÞ ‹3óëBÿí ìV)í ðóë$íV)÷g[ ü·W/)�òòýë/ ¼W)üßóª#óüûW4)LþW)€Œ3 Œ3üßÈÞ Œ3óëBÿñ ˆX)ñ óóë$�X)÷x\ üùX/)Ó«ŒåX)ÌßX)�õõýë/ þX)œàö÷�ý‘ý÷\¯Y)4´Y)ôôóëüÓY(),ÖY)€�3 �3œàÈÞ �3óëBÿô ÜY)ô ÷óë$ÝY)÷v] üÁZ2)Ó«Œ­Z)̧Z)�ùùýë/ ÆZ)œàúª#úüˆ[4)L‹[)€Ž3 Ž3œàÈÞ Ž3óëBÿø •[)ø úóë$š[)÷a^ äì[)ÈÞü®üü�\ )$’\)ÈÞBÿûû ü÷,—\)üñ\ )ÈÞþÿµ¶ÿT˜]),�])ýý¿áü»]>)D¾])–òBÿýý ÿ÷,Ç])üÉ_ )ÈÞ�‚µ¶‚Tð_),õ_)€€¿áü“`>)D–`)–òBÿ€€ ‚÷,Ÿ`)ü–b )ÈÞ„…µ¶…T½b),Âb)ƒƒ¿áüàb>)Dãb)–òBÿƒƒ …÷,ìb)üØd")ÈÞ‡ˆµ¶ˆT�e),†e)††¿áü¤e@)D§e)–òBÿ†† ˆ÷,°e)¤Ül)¿áŠô¿m)ü÷lC)@ Returns the value that could not be converted to a small index.ÁLÆm)–3 –3¿áBÿ‰ Ðm)‰ Š$Ñm)ü˜n*)Ó‰|†n)¼€n)¿áüÇn+)¿á�¥g�üùn@)ün)—3˜3™3 —3¿á ˜3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡™3ÏÁBÿŒ €o)Œ �$�o)œ ‡o)üÓq )¾â��ÅQÆQ�Lúq)$ÿq)ŽŽÈÞü—r()$šr)ž3 ž3¾â–…BÿŽ Ÿr)Ž �$¤r)ì¿u)„Ìu) Ýu) ëÄ) ãu) ™v), äu)8‚ $åu)& éu)8Ý,êu)$ ïu), ñu)8»\òu)& õu)8Ý,öu)$ ûu), ýu)8�$þu)& ‚v)8Ý,ƒv)$ ˆv), Šv)8withiterÁD‹v)& “v)8Ý,”v)*›v) žv) èÄ)ø8$¨v), ­v)8‚ $®v) ³v) óš)Ý< The maximum value.Á´Áv)8äv)8,èv)8ÁÀîv)& ñv), óv)8‚ $ôv) ùv), ûv)8‚ $üv) €w) �w)8¡ÍT�w)'‹w)8ÁÀ�w)% ‘w)<4 The total number of values that can be represented.Áü w7)8äw)8,èw)8ÌÀ,îw)& ów)8€,õw) ûw)8¡ÍTýw)'‡x)8ÌÀ,‰x)% Žx)< The zero value.Áœ�x)8½x)8,Áx)8ÙÀ$Çx)& Ëx), Íx)8‚ $Îx) Óx), Õx)8‚ $Öx) Úx) ëx)8¡ÍTÛx)'åx)8ÙÀ$çx)% ìx)<8 The number of bytes that a single value uses in memory.Áüûx;)8Ãy)8,Çy)8åÀ$Íy)& Ñy)8€,Óy) Ùy)8¡ÍTÛy)'åy)8åÀ$çy)% ëy)<; Create a new value that is represented by a "small index."Áüúy>)<�Åz)<@ If the given index exceeds the maximum allowed value, then thisÁüÕzC)< returns an error.Á¬¥{)+ Ç{) È{) Ï{)8þ4É{)8Ý{)8 á{)8˜ ä{) ç{) ô{)8�,è{)& í{)8€,ï{)(ö{)8Ñ4ù{) ÿ{), €|)8‚ $�|)$ …|), ‡|)8»\ˆ|) ‹|) �|) Û|) 8¡ÍTŸ|)'©|)8˜ «|) ®|) ´|)8�,¯|) µ|)8ƒ ¶|) ¹|) ¿|), º|)8‚ $»|) À|)8„ <Á|) È|) Í|), É|)8»\Ê|)<? Create a new value without checking whether the given argumentÁüê|B)< exceeds the maximum.ÁĹ})<�Þ})<8 Using this routine with an invalid value will result inÁüî};)<7 unspecified behavior, but *not* undefined behavior. InÁü¶~:)<= particular, an invalid ID value is likely to cause panics orÁüý~@)<% possibly even silent logical errors.ÁüÊ()<�ÿ)<< Callers must never rely on this type to be within a certainÁü�€?)< range for memory safety.ÁäÛ€)+ „�) …�) Œ�)8þ4†�)8š�)8,ž�)8 ¤�)8¢ l§�) ´�) Á�)8�,µ�)& º�)8€,¼�)(Ã�), Æ�)8‚ $Ç�) Ì�) ’‚), Þ�)8‚ $ß�) ã�) „‚)8¡ÍTä�)'î�)8¢ lð�) ý�) ƒ‚)8�,þ�)<8 Like `new`, but panics if the given value is not valid.Áü¡‚;)+ é‚) ê‚) ñ‚)8þ4ë‚)8ÿ‚)8 ƒƒ)8�Á$†ƒ) Šƒ) —ƒ)8�,‹ƒ)& �ƒ)8€,’ƒ)(™ƒ), œƒ)8‚ $�ƒ) ¢ƒ) Ù„), ´ƒ)8‚ $µƒ)'¹ƒ)8˜ »ƒ) ¾ƒ) ă)8�,¿ƒ) Ń)8¦4ƃ) ̃) Ë„)8µ4̓) Óƒ) Ôƒ) Ê„)7invalid ÁTêƒ)$ ôƒ)8�LŠ„) “„) ”„) š„), •„)8‚ $–„)$ ›„)7 valueÁD±„)<> Return the internal value as a `usize`. This is guaranteed toÁüè„A)< never overflow `usize`.Áܶ…)+ Þ…) ß…) æ…)8þ4à…)8ô…)8,ø…)8 þ…)8ß‚D�†) ‰†) �†) І)8$‹†)(‘†)8€,”†) š†) ʆ)8$¬†) °†)7ó ±†) ²†)8ß‚D³†) »†) ¼†)<< Return the internal value as a `u64`. This is guaranteed toÁüÙ†?)< never overflow.Áœ¥‡)+ Ň) Ƈ) ͇)8þ4LJ)8Û‡)8,߇)8 å‡)8–Á4è‡) î‡) ô‡) ï‡)8$ð‡)(ö‡)8«ù‡) ý‡) «ˆ)8$�ˆ) “ˆ)7ó ”ˆ) •ˆ)8–Á4–ˆ) œˆ) �ˆ)<< Return the internal value as a `u32`. This is guaranteed toÁüºˆ?)<ýÚM̆‰)+ ¬‰) ­‰) ´‰)8þ4®‰)8‰)8,Ɖ)8 ̉)8¤Á4ω) Õ‰) Û‰) Ö‰)8$׉)(݉)8¥à‰) ä‰) ’Š)8$ö‰) ú‰)7ó û‰) ü‰)8¤Á4ý‰) ƒŠ) „Š)<; Return the internal value as a i32`. This is guaranteed toÁü¡Š>)< never overflow an `i32`.ÁäìŠ)+ •‹) –‹) �‹)8þ4—‹)8«‹)8,¯‹)8 µ‹)8²Á4¸‹) ¾‹) Ä‹) ¿‹)8$À‹)(Æ‹)8ÙÉ‹) Í‹) û‹)8$ß‹) ã‹)7ó ä‹) å‹)8²Á4æ‹) ì‹) í‹)<- Returns one more than this value as a usize.ÁüŠŒ0)<�ÇŒ)<= Since values represented by a "small index" have constraintsÁü׌@)<> on their maximum value, adding `1` to it will always fit in aÁü¤�A)< `usize`, `u32` and a `i32`.Áüò�)+ žŽ) ŸŽ) ¦Ž)8þ4 Ž)8´Ž)8 ¸Ž)8ÀÁD»Ž) ÃŽ) ÉŽ) ÄŽ)8$ÅŽ)(ËŽ)8€,ÎŽ) ÔŽ) „�)8$æŽ) êŽ)7ó ëŽ) ìŽ)8ÀÁDíŽ) õŽ) öŽ)<? Decode this value from the bytes given using the native endianÁü“�B)<ÞàMüâ�&)<�•�)<= If the decoded integer is not representable as a small indexÁü¥�@)<4 for the current target, then this returns an error.Áüò�7)+ ¶‘) ·‘) ¾‘)8þ4¸‘)8Ì‘)8 Б)8ÐÁlÓ‘) à‘) ï‘)8¹•,á‘)& æ‘) è‘) î‘)8™é‘)% ë‘)7÷ í‘)(ñ‘)8Ñ4ô‘) ú‘), û‘)8‚ $ü‘)$ €’), ‚’)8»\ƒ’) †’) ˆ’) à’) 8¡ÍTš’)'¤’)8ÐÁl¦’) ³’) ¹’)8¹•,´’) º’)8ƒ »’) ¾’) Ä’), ¿’)8‚ $À’) Å’)8„ <Æ’) Í’) Ò’), Î’)8»\Ï’)<–™Nüï’B)<ÞàMü¾“&)<�ñ“)<? This is analogous to `new_unchecked` in that is does not checkÁü�”B)<? whether the decoded integer is representable as a small index.ÁüДB)+ Ÿ•)  •) §•)8þ4¡•)8µ•)8 ¹•)8êÁ¼¼•) Ó•) â•)8¹•,Ô•)& Ù•) Û•) á•)8™Ü•)% Þ•)7÷ à•)(ä•), ç•)8‚ $è•) í•) ½–), ÿ•)8‚ $€–) „–) ¯–)8¡ÍT…–)'�–)8êÁ¼‘–) ¨–) ®–)8¹•,©–)<< Return the underlying integer as raw bytes in native endianÁüÌ–?)<«Ê4\˜—)+ °—) ±—) ¸—)8þ4²—)8Æ—)8 Ê—)8ŽÂ\Í—) Ø—) Þ—) Ù—)8$Ú—)(à—) ã—) é—)8™ä—)% æ—)7÷ è—) ë—) ž˜)8$ý—) �˜)7ó ‚˜) ƒ˜)8ŽÂ\„˜) �˜) �˜)<9 Returns an iterator over all values from 0 up to and notÁü­˜<)< including the given length.Áüö˜)<�¢™)<9 If the given length exceeds this type's limit, then thisÁü²™<)<ÞÝ6\û™)8“š) –š) œš)8,—š)8 žš)8�$¡š) ¥š) °š)8¶¦š)& ©š)8€,«š)(²š), µš)8�$¶š) »š) éš), Íš)8�$Κ)'Òš)8˜ Ôš) ך) Ûš)8¶Øš)8$ý›)8û$‚œ)'†œ)8ñˆœ)'‹œ)8q,�œ)8 “œ), —œ)8‚ $˜œ) �œ) Ô�) 8 «œ)8ñ®œ) ±œ) Õœ)  ²œ)8$³œ)$ ·œ)8œ ¹œ)& ºœ) ¼œ)8½œ)8û$Áœ)'Åœ)8ñÇœ)'Êœ)8ŠLÌœ)(ל)8û$Úœ)'Þœ)8ñàœ)'ãœ)8Ñ4åœ) ìœ) Ê�) 8œ þœ) ÿœ)8 debug_tupleÁ\€�) ‹�) ��)8�LŒ�) •�) –�) œ�), —�)8‚ $˜�) ž�)8Ú,Ÿ�) ¤�) ³�) ¥�)8$¦�) ª�)8¤Á4«�) ±�) ²�) ´�)8±n4µ�) »�) ¼�)8$ß�) ã�)8� ä�) å�)8û$ç�)'ë�)8â í�)'ð�)8IndexÁ,ò�) ÷�), ø�)8‚ $ù�) ý�)8 ÿ�) ƒž) …ž)8� „ž) ‡ž) ­Ÿ)8!$•ž)8´4šž) ¡ž)8� £ž)% ¤ž)+ ³ž) ´ž) »ž)8þ4µž)8 Éž)8÷,Ìž) Ñž) åž) Òž)8$Óž)$ מ)8÷,Ùž)& Þž), àž)8‚ $áž)(çž) êž)8� ëž) íž) £Ÿ) ÿž)8$€Ÿ) „Ÿ) •Ÿ)8÷,…Ÿ) ŠŸ)8ß‚D‹Ÿ) “Ÿ) ”Ÿ)8$¸Ÿ) ¼Ÿ)8� ½Ÿ) ¾Ÿ)8û$ÀŸ)'ÄŸ)8â ÆŸ)'ÉŸ)8IndexMutÁDËŸ) ÓŸ), ÔŸ)8‚ $ÕŸ) ÙŸ)8 ÛŸ) ߟ) áŸ)8� àŸ) ãŸ) û ) + ñŸ) òŸ) ùŸ)8þ4óŸ)8 ‡ )8øLŠ ) “ ) « ) ” )8• )8$™ )$ � )8÷,Ÿ )& ¤ ), ¦ )8‚ $§ )(­ ) ° )8± )8� µ ) · ) ñ ) É )8Ê )8$Π) Ò ) ã )8÷,Ó ) Ø )8ß‚DÙ ) á ) â )+ †¡) ‡¡) ž¡)8숡) ‹¡) �¡)8Ó<Œ¡) ”¡)7«<–¡)8$¨¡) ¬¡)8� ­¡) ®¡)8û$°¡)'´¡)8â ¶¡)'¹¡)8¥­N,»¡) À¡), Á¡)8‚ $¡) Æ¡)8 È¡)8üÌ¡) Ï¡)8� С) Ñ¡) Ó¡) ù¢)8!$á¡)8´4æ¡) í¡)8� ï¡)% ð¡)+ ÿ¡) €¢) ‡¢)8þ4�¢)8 •¢)8÷,˜¢) �¢) ±¢) ž¢)8$Ÿ¢)$ £¢)8÷,¥¢)& ª¢), ¬¢)8‚ $­¢)(³¢) ¶¢)8� ·¢) ¹¢) ï¢) Ë¢)8$Ì¢) Т) á¢)8÷,Ñ¢) Ö¢)8ß‚D×¢) ߢ) à¢)+ „£) …£) œ£)8솣) ‰£) ›£)8Ó<Š£) ’£)7«<”£)8$¦£) ª£)8� «£) ¬£)8û$®£)'²£)8â ´£)'·£)8š±ND¹£) Á£), £)8‚ $ã) Ç£)8 É£)8üÍ£) У)8� Ñ£) Ò£) Ô£) ì¤) + â£) ã£) ê£)8þ4ä£)8 ø£)8øLû£) „¤) œ¤) …¤)8†¤)8$Ф)$ ޤ)8÷,�¤)& •¤), —¤)8‚ $˜¤)(ž¤) ¡¤)8¢¤)8� ¦¤) ¨¤) â¤) º¤)8»¤)8$¿¤) ä) Ô¤)8÷,Ĥ) ɤ)8ß‚Dʤ) Ò¤) Ó¤)8$÷¤)8�$ü¤) €¥)8™�¥) ƒ¥)8 …¥), ‰¥)8‚ $Š¥) �¥) €¦)8 �¥)8”$ ¥) ¤¥) ®¥)8�,¥¥)& ª¥)8™¬¥)(°¥), ³¥)8‚ $´¥) ¹¥) ö¥), Ë¥)8‚ $Ì¥) Ð¥) è¥)8¡ÍTÑ¥)'Û¥)8”$Ý¥) á¥) ç¥)8�,â¥)8$‹¦)8ò<�¦) —¦)8Ÿ˜¦) ›¦)8 �¦), ¡¦)8‚ $¢¦) §¦) á§)8!$µ¦)8œÃ,º¦) À¦), ¦)8»\æ)% Ʀ)8 Õ¦)8øDئ) à¦) ë¦)8�,á¦)& æ¦)8Ÿè¦)(í¦)8Ñ4ð¦) ö¦), ÷¦)8‚ $ø¦)$ ü¦), þ¦)8»\ÿ¦) ‚§) „§) ×§) 8¡ÍT–§)' §)8øD¢§) ª§) °§)8�,«§) ±§)8ƒ ²§) µ§) »§), ¶§)8‚ $·§) ¼§)8„ <½§) ħ) ɧ), ŧ)8»\Ƨ)8$ì§)8ò<ñ§) ø§)8¥ù§) ü§)8 þ§), ‚¨)8‚ $ƒ¨) ˆ¨) ©)8!$–¨)8œÃ,›¨) ¡¨), £¨)8»\¤¨)% §¨)8 ¶¨)8øD¹¨) Á¨) ̨)8�,¨)& Ǩ)8¥ɨ)(Ψ)8Ñ4Ѩ) ר), ب)8‚ $Ù¨)$ ݨ), ߨ)8»\à¨) ã¨) å¨) ¸©) 8¡ÍT÷¨)'�©)8øDƒ©) ‹©) ‘©)8�,Œ©) ’©)8ƒ “©) –©) œ©), —©)8‚ $˜©) �©)8„ <ž©) ¥©) ª©), ¦©)8»\§©)8$Í©)8ò<Ò©) Ù©)8«Ú©) Ý©)8 ß©), ã©)8‚ $ä©) é©) £«)8!$÷©)8œÃ,ü©) ‚ª), „ª)8»\…ª)% ˆª)8 —ª)8øDšª) ¢ª) ­ª)8�,£ª)& ¨ª)8«ªª)(¯ª)8Ñ4²ª) ¸ª), ¹ª)8‚ $ºª)$ ¾ª), Àª)8»\Áª) Ī) ƪ) ™«) 8¡ÍTت)'âª)8øDäª) ìª) òª)8�,íª) óª)8ƒ ôª) ÷ª) ýª), øª)8‚ $ùª) þª)8„ <ÿª) †«) ‹«), ‡«)8»\ˆ«)8$®«)8ò<³«) º«)8€,»«) À«)8 «), Æ«)8‚ $Ç«) Ì«) ˆ­)8!$Ú«)8œÃ,ß«) å«), ç«)8»\è«)% ë«)8 ú«)8øDý«) …¬) ’¬)8�,†¬)& ‹¬)8€,�¬)(”¬)8Ñ4—¬) �¬), ž¬)8‚ $Ÿ¬)$ £¬), ¥¬)8»\¦¬) ©¬) «¬) þ¬) 8¡ÍT½¬)'Ǭ)8øDɬ) Ѭ) ׬)8�,Ò¬) ج)8ƒ Ù¬) ܬ) â¬), ݬ)8‚ $Þ¬) ã¬)8„ <ä¬) ë¬) ð¬), ì¬)8»\í¬)+ “­) ”­) ž­)8ì•­) ˜­) �­)8Í$™­)8$¨­)8 quickcheckÁT­­)'·­)8 ArbitraryÁL¹­)8 í), Ç­)8‚ $È­) Í­) Ö®)8 Û­)8 arbitraryÁLÞ­) ç­) �®)85è­)& ë­) í­)8î­)8ûÏNTò­)'ü­)8GenÁþ­)(ƒ®), †®)8‚ $‡®) Œ®) Ì®), ž®)8‚ $Ÿ®) £®) ¾®)8¡ÍT¤®)'®®)8çÐNL°®) ¹®) ½®)85º®)<9 This error occurs when a value could not be constructed.Áüá®<)<�¦¯)<@ This occurs when given an integer exceeding the maximum allowedÁü²¯C)<Ê…ETþ¯)<�‘°)<? When the `std` feature is enabled, this implements the `Error`Áü�°B)< trait.ÁTè°)+ û°) ü°)  ±)8É4ý°) ƒ±) Ÿ±)8e,„±)$ ‰±)8q,‹±)$ �±)8~’±)$ ”±)8¶L–±)8ª±)84®±), µ±)8»\¶±) ¹±) ɱ)8¾Î|º±)% ʱ)8$Õ±), Ú±)8»\Û±) ß±) �³)<8 Returns the value that could not be converted to an ID.Áüí±;)8µ²)8 ¹²)8øÃL¼²) Ų) ˲) Ʋ)8$Dz)(Ͳ)8«в) Ô²) …³)8$æ²) ê²)7ó ë²) ì²)8øÃLí²) ö²) ÷²)+ š³) ›³) °³)8윳) Ÿ³) ¯³)8Ó< ³) ¨³)7‰,ª³)8$º³)8‰¿³)'³)8ào,ij)'ɳ)8œÃ,˳)8 ѳ), Õ³)8»\Ö³) Ú³) Û³)8$æ³)8û$ë³)'ï³)8ññ³)'ô³)8u<ö³)8 þ³), ‚´)8»\ƒ´) ‡´) å¶) 8 •´)8ñ˜´) ›´) ¿´)  œ´)8$�´)$ ¡´)8œ £´)& ¤´) ¦´)8§´)8û$«´)'¯´)8ñ±´)'´´)8ŠL¶´)(Á´)8û$Ä´)'È´)8ñÊ´)'Í´)8Ñ4Ï´) Ö´) Û¶)8writeÁ,è´) í´) î´) Ͷ)8œ „µ)$ …µ)71failed to create {} from {:?}, which exceeds {:?}Áü›µ3)$ ε)8�Läµ) íµ) îµ) ôµ), ïµ)8‚ $ðµ)$ õµ)8$‹¶) �¶)8øÃL�¶) ™¶) š¶)$ ›¶), ±¶)8‚ $²¶)'¶¶)8ÁÀ¸¶)$ »¶)+ ð¶) ñ¶) †·)8É4ò¶) ø¶) …·)8e,ù¶)$ þ¶)8q,€·)8�·) “·) ™·)8,”·)84›·), ¢·)8�$£·) §·) ¶·)8—Ït¨·)% ··)8$·), Ç·)8�$È·) Í·) Óº)8 Û·)8˜ Þ·) á·) ì·)8¶â·)& å·)8€,ç·)(î·), ñ·)8�$ò·) ÷·) ɺ)8Ú4‰¸) �¸) �¸) „º)8¶¦¸)ª¸), ­¸)8‚ $®¸)'²¸)8ÌÀ,´¸)$ ¹¸)7Xcannot create iterator for {} when number of \ elements exceed {:?}ÁüϸZ)$ ©¹)8�L¿¹) ȹ) ɹ) Ϲ), ʹ)8‚ $˹)$ й), æ¹)8‚ $ç¹)'ë¹)8ÌÀ,í¹)$ ò¹)% …º), —º)8�$˜º) œº) »º)8—Ït�º) ¬º) ºº)8­Ï®º)& ±º)7ó ³º)!´º)8¶¶º)8$Þº)8¡Dãº)8 ìº), ðº)8�$ñº) öº) ‰¼)8!$„»)8Ÿ$‰») Ž»), �»)8‚ $‘»)% •»)8 ¤»)8¥ $§») «») µ») ¬»)8­»)8$±»)(·»)8°4º») À»), Á»)8‚ $») Æ») È») ÿ») 8$Ú») Þ»)7ó ß») à»)8¥ $á») å») æ») ç»)8ƒ è») ë») ñ»), ì»)8‚ $í»)<D An iterator adapter that is like std::iter::Enumerate, but attachesÁü”¼G)<@ small index values instead. It requires `ExactSizeIterator`. AtÁüä¼C)<? construction, it ensures that the index of each element in theÁü°½B)<A iterator is representable in the corresponding small index type.Áüû½D)+ Ⱦ) ɾ) Þ¾)8É4ʾ) о) ݾ)8e,Ѿ)$ Ö¾)8q,ؾ)8è¾) ë¾) ñ¾)8,ì¾)84ó¾), ú¾)8Î÷MDû¾) ƒ¿)8… „¿) …¿) ‡¿) ¼¿) 8Ç,•¿)& —¿)8… ™¿)$ š¿)8؉¨¿)& «¿), ­¿)8�$®¿)$ ²¿)8$Ç¿) Ë¿)8… Ì¿)& Í¿)8¡DÏ¿) Ø¿)8ExactSizeIteratorÁŒÚ¿) ë¿), í¿)8Î÷MDî¿) ö¿)8… ÷¿) ø¿) ú¿) •Á) 8 ˆÀ)8˜ ‹À) ŽÀ) ”À)8Ç,�À)& ‘À)8… “À)(–À), ™À)8Î÷MDšÀ) ¢À)8… £À) ¤À) ¦À) ‹Á) 8¸À)8؉¼À) ÀÀ), ÂÀ)8‚ $ÃÀ)'ÇÀ)8�$ÉÀ) ÍÀ) ÖÀ)8Ç,ÎÀ) ÐÀ)8¶ÑÀ) ÔÀ) ÕÀ)% ×À), éÀ)8Î÷MDêÀ) óÀ) ýÀ)8Ç,õÀ)$ ÷À)8؉ùÀ)8$ Á) ¤Á)8… ¥Á)& ¦Á)8¡D¨Á) ±Á)8ÏíNŒ³Á) ÄÁ)8¡DÆÁ)8 ÏÁ), ÓÁ)8Î÷MDÔÁ) ÜÁ)8… ÝÁ) ÞÁ) àÁ) âÄ)8!$îÁ)8Ÿ$óÁ) øÁ) úÁ) ‰Â), ûÁ)8‚ $üÁ)$ €Â)8… ‚Â)'ƒÂ)8Ÿ$…Â)% ŠÂ)8 ™Â)8¥ $œÂ)  Â) ªÂ) ¡Â)8¢Â)8$¦Â)(¬Â)8°4¯Â) µÂ) ¶Â) ÅÂ), ·Â)8‚ $¸Â)$ ¼Â)8… ¾Â)'¿Â)8Ÿ$ÁÂ) ÆÂ) ÈÂ) ØÄ)8ÚÂ)8›$ÞÂ) ãÂ)8$åÂ) éÂ)8Ç,êÂ) ìÂ)8¥ $íÂ) ñÂ) òÂ)- óÂ)% ôÂ)8ˆÄ)8Ž-ŒÄ) �Ä)8$‘Ä) •Ä)8؉–Ä) ™Ä)8¥ $šÄ) žÄ) ŸÄ)  Ä)8ö4¡Ä) §Ä) ¨Ä)% ©Ä)8à$»Ä) ¿Ä) ÊÄ) ÀÄ) ÉÄ)8Ž-ÁÄ)$ ÃÄ)8›$ÅÄ)% éÄ)ü™Õ+)„ªÕ)’’´â6ü™Õä)ÄQ¤üD¼Õ)’´â6.îøN!´â6:îøN-“”“”“”üËÕg)„ÎÕ)¤ü�Ø&Bÿ’’þƤü,˜Ö)ŽQ¤üŒ Ö) “¤üÌ« üéÖc)tìÖ)¤üÈÙ&Bÿ’’öùN,²×)ˆúNŒº×) ”¤ü“¬ üÿ×()…––Þÿ? „Ø)éƒ@D‡Ø)øèlÐ 1üLG Provides helpers for dealing with start state configurations in DFAs. Á,Ø 1ä#ë#ð#ßÄ\kÐ —™öŒD…È%—›—,�ò$—œØÌ$¢è—žŽâ„¨®$—Ÿßátºª$— \RŒe„üR0uwdfüRMV$›FH46\¡"ä좣¥¦§¨©´Ï#ü³"-* Create a new default start configuration.Áå"�üí"KH The default is an unanchored search that starts at the beginning of theÁl½# haystack.ÁÖ#äìBÿ¡¡ ¢ü÷&6ü°$DA A convenience routine for building a start configuration from anÁüù$# [`Input`] for a forward search.Á¡%�ü©%HE This automatically sets the look-behind byte to the byte immediatelyÁüö%GD preceding the start of the search. If the start of the search is atÁüÂ&0- offset `0`, then no look-behind byte is set.Á”þ&û3ü3 û3ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯ü3äìBÿ¡ ˜'¡èû¬—,‘'—(£�¤�¤�¤¤£¤”â�¥UÿèüüØ+6üˆ)DîþNüÑ)# [`Input`] for a reverse search.Áù)�ü�*HõÿNüÎ*C@ following the end of the search. If the end of the search is atÁü–+=: offset `haystack.len()`, then no look-behind byte is set.Á”ß+ý3þ3 ý3ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯þ3äìBÿ¡ ù+¡ý„¬—,ò+üŒ18ü¡-63 Set the look-behind byte at the start of a search.ÁÜ-�üä-JG Unless the search is intended to logically start at the beginning of aÁü³.KH haystack, this should _always_ be set to the byte immediately precedingÁüƒ/JG the start of the search. If no look-behind byte is set, then the startÁüÒ/IF configuration will assume it is at the beginning of the haystack. ForÁü 0'$ example, the anchor `^` will match.ÁÌ0�üÔ030 The default is that no look-behind byte is set.Á\“1äì�¥äìBÿ¡¡ ¦$£1ÿ†$©1üà23ü€2&# Set the anchored mode of a search.Á«2�ü³2(% The default is an unanchored search.ÁDç2äìÅ‚äìBÿ¡¡ §$ô2¦‡$ú2ü–4+üÌ3EB Return the look-behind byte in this configuration, if one exists.Á|�4ÿ3 ÿ3äì�¥Bÿ¡ ­4¡¦Ÿ$®4ü 5&üè430 Return the anchored mode in this configuration.Ád§5€4 €4äìÅ‚Bÿ¡ ´5¡øž$µ5Œâ<³í«­®°±üÅ>6Ó>‚4 ‚4µÐ³íBÿª Þ>ª «§å/,×>©?««üŠK+˜Kƒ4 ƒ4³íôíBÿª œKªТ$�Kÿ†$£Kü®NhT¼N„4 „4³÷ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³íÄòBÿª ×Nª ®å,ÐN‚P®®üºUeDÈU…4†4 …4³í †4³÷ݘBÿª ÚUª÷ý$ÛU�œéUüˆY*d–Y‡4 ‡4³íBÿª £Yª¾› $¤YüÊY&³í³ g³ü÷Y@úYˆ4‰4Š4 ˆ4³í ‰4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Š4ÏÁBÿ² þY² ³$ÿYœ …ZôÆZLÛZT˜pôí¶·¸¹üÁq3TÏqÿëBÿµµÿÞ¤ ÚqäïtýtBÿµµ·ãüÑv ,ßv’4 ’4ôíBÿµ åvµ ¸$ævü«y&D¹y“4 “4ôíBÿµ ÂyµÆ« $Ãytú 1ü½*¸ Utilities for dealing with the syntax of a regular expression. This module currently only exposes a [`Config`] type that itself represents a wrapper around the configuration for a [`regex-syntax::ParserBuilder`](regex_syntax::ParserBuilder). The purpose of this wrapper is to make configuring syntax options very similar to how other configuration is done throughout this crate. Namely, instead of duplicating syntax options across every builder (of which there are many), we instead create small config objects like this one that can be passed around and composed. ÁÓΔå 1Ôß 14‚ 1ÅÆÈÉŽ$–Ë*Ð=º¼–º¼üÕ*…Cº½Õ÷ô* º¿ä÷$ƒ*ãºÁœ‰‰*„ºÂœÃ,“*¡ºÃ¿÷lš*¿ºÄ,Ã*«­DÐ*‹dà*{}üà *oý*_aMO;=üÑ1*ü­J*G A convenience routine for parsing a pattern into an HIR value with theÁÔø* default configuration.Á“*�l—*Áˆ-¥*�ü©8*5 This shows how to parse a pattern into an HIR value:Áâ*�<æ*ãˆ-üî%*" use regex_automata::util::syntax;Á”*�ü˜3*0 let hir = syntax::parse(r"([a-z]+)|([0-9]+)")?;ÁüÌI*F assert_eq!(Some(1), hir.properties().static_explicit_captures_len());Á–*�üš.*à�-<É*ãˆ-,Ø*”4 ”4ú—Bÿ ç* Å¿‰<Þ*ü“K*ü´ K*H A convenience routine for parsing many patterns into HIR value with theÁÔ€ *€ O› *�lŸ *Áˆ-­ *�ü± K*H This shows how to parse many patterns into an corresponding HIR values:Áý *�<� *ãˆ-L‰ * use {Áü“ %*" regex_automata::util::syntax,Áü¹ &*# regex_syntax::hir::Properties,Á4à *ŸŠ-ç *�üë $*ï…Mì� * r"([a-z]+)|([0-9]+)",ÁÌ® * r"foo(A-Z]+)bar",ÁDÈ *žØ?üÑ G*D let props = Properties::union(hirs.iter().map(|h| h.properties()));Áü™ >*; assert_eq!(Some(1), props.static_explicit_captures_len());ÁØ *�üÜ .*à�-<‹*ãˆ-Tš*•4 •4ôàÛé&BÿŒÇÇ ¾*‹À/ ¥*�À/T¨* Æ£ÛÝw¼´ ü�G*ü–I*F A convenience routine for parsing a pattern into an HIR value using aÁlà* `Config`.Áî*�lò*Áˆ-€*�ü„J*G This shows how to parse a pattern into an HIR value with a non-defaultÁ”Ï* configuration:Áâ*�<æ*ãˆ-üî%*¤¡O”*�ü˜!* let hir = syntax::parse_with(Á¤º* r"^[a-z]+$",ÁüÏ;*8 &syntax::Config::new().multi_line(true).crlf(true),Á<‹*ÑÛ=ü“@*= assert!(hir.properties().look_set().contains_anchor_crlf());ÁÔ*�üØ.*à�-<‡*ãˆ-T–*–4—4 –4 —4Ëïú—Bÿ ª* È¿‰<¡*Ø4°*üŸl*üËK*H A convenience routine for parsing many patterns into HIR values using aÁl—*ÚªO¥*�l©*Áˆ-·*�ü»J*G This shows how to parse many patterns into an corresponding HIR valuesÁü†%*" with a non-default configuration:Á¬*�<°*ãˆ-L¸*Ù¥OüÂ%*ì¥Oüè&*›¦O4�*ŸŠ-–*�¬š*�ó:ì°*ñ¦OtÎ* r"\W",ÁÌÝ*—§O4÷*í©:üþB*? let config = syntax::Config::new().unicode(false).utf8(false);ÁüÁ;*8 let hirs = syntax::parse_many_with(patterns, &config)?;ÁüýG*ǧOôÅ* assert!(!props.is_utf8());Áä*�üè.*à�-<—*ãˆ-|¦*˜4™4 ˜4ôà ™4ËïÛé&BÿŒÊÊ Ô*‹À/ ¶*�À/T¹*›é&Ýw:¹ ØD¹ !\à$*ËïÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäå´¥%*üò$.*+ Return a new default syntax configuration.Á¬%*ËïBÿËË Ìüˆ,6*üü(;*8 Enable or disable the case insensitive flag by default.Á¼)*�üÄ)F*C When Unicode mode is enabled, case insensitivity is Unicode-aware.Áü�*B*? Specifically, it will apply the "simple" case folding rules asÁÌÖ** specified by Unicode.Áô**�üü*D*A By default this is disabled. It may alternatively be selectivelyÁüÅ+>*; enabled in the regular expression itself via the `i` flag.Á„�,*ËïËïBÿËË Í$¤,*êª,*üµ10*üþ,>*; Enable or disable the multi-line matching flag by default.ÁÁ-*�üÉ-E*B When this is enabled, the `^` and `$` look-around assertions willÁü“.H*E match immediately after and immediately before a new line character,Áüà.H*E respectively. Note that the `\A` and `\z` look-around assertions areÁü­/G*D unaffected by this setting and always correspond to matching at theÁüù/#* beginning and end of the input.Á¡0*�ü©0D*ȹOüò0>*; enabled in the regular expression itself via the `m` flag.ÁT¼1*ËïËïBÿËË Î$Ë1*êÑ1*üÙ9:*üŸ2F*C Enable or disable the "dot matches any character" flag by default.Áê2*�üò2K*H When this is enabled, `.` will match any character. When it's disabled,ÁüÂ3F*C then `.` will match any character except for a new line character.Á�4*�ü•4I*F Note that `.` is impacted by whether the "unicode" setting is enabledÁüã4K*H or not. When Unicode is enabled (the default), `.` will match any UTF-8Áü³5G*D encoding of any Unicode scalar value (sans a new line, depending onÁüÿ5H*E whether this "dot matches new line" option is enabled). When UnicodeÁüÌ6G*D mode is disabled, `.` will match any byte instead. Because of this,Áü˜7G*D when Unicode mode is disabled, `.` can only be used when the "allowÁüä7E*B invalid UTF-8" option is enabled, since `.` could otherwise matchÁ”®8* invalid UTF-8.ÁÅ8*�üÍ8D*ȹOü–9>*; enabled in the regular expression itself via the `s` flag.Á¤à9*ËïËïBÿËË Ï$ù9*êÿ9*ü£?**ü×:6*3 Enable or disable the "CRLF mode" flag by default.Á’;*�üš;D*ȹOüã;>*; enabled in the regular expression itself via the `R` flag.Á¦<*�ü®<5*2 When CRLF mode is enabled, the following happens:Áè<*�üðF*C `\r` and `\n` as line terminators. And in particular, neither willÁüú>$*! match between a `\r` and a `\n`.Á$ª?*ËïËïBÿËË Ð$³?*ê¹?*üÊH4*ü�@D*A Sets the line terminator for use with `(?u-s:.)` and `(?-us:.)`.ÁÊ@*�üÒ@L*I Namely, instead of `.` (by default) matching everything except for `\n`,Áü£AF*C this will cause `.` to match everything except for the byte given.ÁîA*�üöAK*H If `.` is used in a context where Unicode mode is enabled and this byteÁüÆBE*B isn't ASCII, then an error will be returned. When Unicode mode isÁü�CK*H disabled, then any byte is permitted, but will return an error if UTF-8ÁüàC/*, mode is enabled and it is a non-ASCII byte.Á”D*�üœDI*F In short, any ASCII value for a line terminator is always okay. But aÁüêDH*E non-ASCII byte might result in an error depending on whether UnicodeÁü·E#* mode or UTF-8 mode are enabled.ÁßE*�üçEH*E Note that if `R` mode is enabled then it always takes precedence andÁü´FH*E the line terminator will be treated as `\r` and `\n` simultaneously.Á�G*�ü‰GC*@ Note also that this *doesn't* impact the look-around assertionsÁüÑGB*? `(?m:^)` and `(?m:$)`. That's usually controlled by additionalÁü˜H-** configuration in the regex engine itself.Á|ÑH*ËïËïBÿËË Ñ$åH*ÿ†$ëH*ü‚L0*ü¾I7*4 Enable or disable the "swap greed" flag by default.ÁúI*�ü‚JK*H When this is enabled, `.*` (for example) will become ungreedy and `.*?`Á¼ÒJ* will become greedy.ÁîJ*�üöJD*ȹOü¿K>*; enabled in the regular expression itself via the `U` flag.ÁT‰L*ËïËïBÿËË Ò$˜L*êžL*ü¥P7*üìL2*/ Enable verbose mode in the regular expression.Á£M*�ü«MG*D When enabled, verbose mode permits insignificant whitespace in manyÁü÷MG*D places in the regular expression, as well as comments. Comments areÁüÃN=*: started using `#` and continue until the end of the line.Á…O*�ü�OF*C By default, this is disabled. It may be selectively enabled in theÁüØOH*E regular expression by using the `x` flag regardless of this setting.ÁŒ¬P*ËïËïBÿËË Ó$ÂP*êÈP*üæW-*ü�Q8*5 Enable or disable the Unicode flag (`u`) by default.ÁÚQ*�üâQG*D By default this is **enabled**. It may alternatively be selectivelyÁü®R?*< disabled in the regular expression itself via the `u` flag.ÁòR*�üúRG*D Note that unless "allow invalid UTF-8" is enabled (it's disabled byÁüÆSH*E default), a regular expression will fail to parse if Unicode mode isÁü“TE*B disabled and a sub-expression could possibly match invalid UTF-8.ÁÝT*�üåTK*H **WARNING**: Unicode mode can greatly increase the size of the compiledÁüµUF*C DFA, which can noticeably impact both memory usage and compilationÁü€VH*E time. This is especially noticeable if your regex contains characterÁüÍVH*E classes like `\w` that are impacted by whether Unicode is enabled orÁüšWG*D not. If Unicode is not necessary, you are encouraged to disable it.Á<íW*ËïËïBÿËË Ô$ùW*êÿW*üÚ^**üÊXH*E When disabled, the builder will permit the construction of a regularÁü—Y,*) expression that may match invalid UTF-8.ÁÈY*�üÐY;*8 For example, when [`Config::unicode`] is disabled, thenÁü�ZH*E expressions like `[^a]` may match invalid UTF-8 since they can matchÁüÝZF*C any single byte that is not `a`. By default, these sub-expressionsÁü¨[@*= are disallowed to avoid returning offsets that split a UTF-8Áüí[D*A encoded codepoint. However, in cases where matching at arbitraryÁü¶\H*E locations is desired, this option can be disabled to permit all suchÁ¤ƒ]* sub-expressions.Áœ]*�ü¤]F*C When enabled (the default), the builder is guaranteed to produce aÁüï]G*D regex that will only ever match valid UTF-8 (otherwise, the builderÁÔ»^* will return an error).Á$á^*ËïËïBÿËË Õ$ê^*êð^*üžk1*ü¸_A*> Set the nesting limit used for the regular expression parser.Áþ_*�ü†`K*H The nesting limit controls how deep the abstract syntax tree is allowedÁüÖ`I*F to be. If the AST exceeds the given limit (e.g., with too many nestedÁü¤a5*2 groups), then an error is returned by the parser.ÁÞa*�üæaG*D The purpose of this limit is to act as a heuristic to prevent stackÁü²bI*F overflow when building a finite automaton from a regular expression'sÁü€cD*A abstract syntax tree. In particular, construction currently usesÁüÉcI*F recursion. In the future, the implementation may stop using recursionÁü—d0*- and this option will no longer be necessary.ÁÌd*�üÔdH*E This limit is not checked until the entire AST is parsed. Therefore,Áü¡eI*F if callers want to put a limit on the amount of heap space used, thenÁüïeG*D they should impose a limit on the length, in bytes, of the concreteÁü»fG*D pattern string. In particular, this is viable since the parser willÁü‡gH*E limit itself to heap space proportional to the length of the patternÁ\Ôg* string.Áäg*�üìgI*F Note that a nest limit of `0` will return a nest limit error for mostÁüºhJ*G patterns but not all. For example, a nest limit of `0` permits `a` butÁü‰iI*F not `ab`, since `ab` requires a concatenation AST item, which resultsÁü×iJ*G in a nest depth of `1`. In general, a nest limit is not something thatÁü¦jE*B manifests in an obvious way in the concrete syntax, therefore, itÁüðj)*& should not be used in a granular way.ÁT¥k*ËïËïBÿËË Ö$´k*óþ,ºk*üÇr+*ü‹l+*( Whether to support octal syntax or not.Á»l*�üÃlH*E Octal syntax is a little-known way of uttering Unicode codepoints inÁü�m@*= a regular expression. For example, `a`, `\x61`, `\u0061` andÁüÕmI*F `\141` are all equivalent regular expressions, where the last exampleÁ¼£n* shows octal syntax.Á¿n*�üÇnK*H While supporting octal syntax isn't in and of itself a problem, it doesÁü—oJ*G make good error messages harder. That is, in PCRE based regex engines,ÁüæoA*> syntax like `\1` invokes a backreference, which is explicitlyÁü¬pH*E unsupported in Rust's regex engine. However, many users expect it toÁüùpF*C be supported. Therefore, when octal support is disabled, the errorÁüÄqI*F message will explicitly mention that backreferences aren't supported.Á’r*�üšr(*% Octal syntax is disabled by default.Á,Îr*ËïËïBÿËË ×$Ør*êÞr*üÚs!*ü§s.*+ Returns whether "unicode" mode is enabled.Á\ás*ž4 ž4ËïBÿË ís*Ë Ø$îs*üÚt**üžt7*4 Returns whether "case insensitive" mode is enabled.Á¤át*Ÿ4 Ÿ4ËïBÿË öt*Ë Ù$÷t*üæu$*ü°u1*. Returns whether "multi line" mode is enabled.Átíu* 4  4ËïBÿË üu*Ë Ú$ýu*üðv.*ü°v;*8 Returns whether "dot matches new line" mode is enabled.ÁÄ÷v*¡4 ¡4ËïBÿË �w*Ë Û$‘w*ôþw*üÎw+*( Returns whether "CRLF" mode is enabled.ÁD…x*¢4 ¢4ËïBÿË Žx*Ë Ü$�x*üþx'*ü¼x=*: Returns the line terminator in this syntax configuration.Áœ…y*£4 £4ËïBÿË ™y*Ë Ý$šy*ü†z$*üÐy1*. Returns whether "swap greed" mode is enabled.Át�z*¤4 ¤4ËïBÿË œz*Ë Þ$�z*ü�{+*üÐz8*5 Returns whether "ignore whitespace" mode is enabled.Á¬”{*¥4 ¥4ËïBÿË ª{*Ë ß$«{*ô”|*üå{**' Returns whether UTF-8 mode is enabled.ÁD›|*¦4 ¦4ËïBÿË ¤|*Ë à$¥|*üü|#*üÒ|%*" Returns the "nest limit" setting.Átƒ}*§4 §4ËïBÿË ’}*Ë á$“}*üö}*üÅ},*) Returns whether "octal" mode is enabled.ÁLý}*¨4 ¨4ËïBÿË ‡~*Ë â$ˆ~*üî~7*,ü~*©4ª4 ©4Ëï ª4µøBÿË ‚*ËÁë&$ƒ*å<‰*üÓƒG*Láƒ*«4¬4 «4Ëï ¬4§ § ¿÷¨ îÉ© žÊª °Ê« empty_min_rangeÁÄL¢žðalÒBÿË ëƒ*Ë ä$ìƒ*å<òƒ*üÿ…f*L�†*­4®4 ­4Ëï ®4——TranslatorBuilderÁ˜³fì™ÅÉìšÈì=�ÏÀ#8=;BÿË  †*Ë å$¡†*å<¯†*¼Ö‰*Ëïç÷ç´ô‰*<÷‰*ËïBÿææ çdŠ 1üèã Types and routines that support the wire format of finite automata. Currently, this module just exports a few error types and some small helpers for deserializing [dense DFAs](crate::dfa::dense::DFA) using correct alignment. Á$’ 1Š‹Œ���’”•–—™š›�ž¡¢¤¥¨©«¯³´µ¶¸º¼¾¿ÀÂÃÇÈÉ $ª$®$¯$³$–ý¾èêà<‡ Ùèë–¸Ð=èí–èíüÂ…Cèîº<åµèðÒÏLÿú!èòÙÕtŠç"èóáÐ<š�"èô¸Ûd£Ç#èõ$öÕ×d‚È,°Ó«Œ˜Ì’ÌÓ«ÝD½Ó«*(Ê\Ídà¿üÍ/°²ž ŒŽz|œ’&÷ñ÷ü¬&D„º&–ó,÷ñBÿööü°õá$Ë&üœ'*÷ñù¥gùüÍ'@Ð'µ4¶4·4 µ4÷ñ ¶4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡·4ÏÁBÿø Ô'ø ù$Õ'œ Û'üý()Ó‰|ë(¼å(÷ñ¬Î4Äòüýþÿ€�‚ƒ„…üê4<<ø4–ó,ÄòBÿûû üëâ€5üô5F„‚6–ó,ÄòBÿûû ýõá$“6ü�78l“7è–ó,ÄòBÿûû þõá$¡7üœ8B„Ÿ8èÄòBÿûû ÿ§D°8Ñã,¿8üá9A|ä9èÄòBÿûû €§Dô9Ñã,ƒ:ü¤;b”§;èÄòBÿûû �©LÃ;Ÿ<Ý;üŽ==t‘=è–ó,ÄòBÿûû ‚§D =ü¤>>œ§>è–ó,ÄòBÿûû ƒõá$»>ü¼?g„¿?èêæ–ó,ÄòBÿûû „»\Ù?õá$ö?üù@nt‡Aªê–ó,ÄòBÿûû …»\ŸAõá$ºAüÑB+Ó‰|¿B¼¹BÄòü�C,Äòˆ¥gˆü´C@·C¾4¿4À4 ¾4Äò ¿4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡À4ÏÁBÿ‡ »C‡ ˆ$¼Cœ ÂCÔƒDüÏR<ŒÝRÁ4 Á4…ò Á4íïBÿ öR•äå,ïRüÌWH¬ÚWÂ4 Â4…ò Â4íïBÿ ÷WÐñå,ðWüŒ]@œš]Ã4 Ã4…ò Ã4¯ûBÿ µ] ˆ å,®]üÛcU|écÄ4 Ä4³÷Ù–2Bÿ�ŽŽ ˆdýë/ ùc �óëå,�düäi9¤òiÅ4 Å4³÷Bÿ Žj �å,‡jüÄqFÓ«Œ°q̪q¤Òqå�Bÿ�‘‘ýë/ çq �óëßâ ü˜ƒrT¦ƒÆ4 Æ4³÷–ó,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÄòBÿ ½ƒ ’å,¶ƒexpected_labelÁtȃ$¦†’�“�“�““’“š¢üýŽb\‹�Ç4È4 Ç4 È4³÷ݘBÿ £�–´©,œ��œ­�üà”3|î”É4 É4Bÿ …•Æ¢©,þ”üß™[¬í™Ê4 Ê4³÷¡©PBÿ �š –å,ˆšüËžg´ÙžË4 Ë4³÷ݘBÿ�˜˜ …ŸÄÕ2 ðžÖÕ24óž —¤£ �œ3é  "ü¡3ÔСBÿð¢ü—¦md¥¦Ì4 Ì4³÷¡©PBÿ ¾¦ šå,·¦expected_versionÁ„ɦüÊ«plØ«Í4 Í4³÷ݘBÿ�œœ �¬ÄÕ2 æ«ÖÕ24é« ›¤£ ™ ë �œë (*üÆ®*ŒÔ®BÿУü§±z|µ±Î4 Î4³÷–ó,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‹ãÄòBÿ ѱ žå,ʱõá$ܱ£ë ,À³ž� � �  ž ÀÃ2ÄòUÿ÷À üƒ¶KÌ‘¶Ï4 Ï4³÷Œ²PBÿ ²¶ ¡å,«¶üå¹]„ó¹Ð4‹ã Ð4³÷Bÿ�££ ­ºÄÕ2 „ºÖÕ24‡º ¢¤£ ÷Œºì �œÅì )+ü‹½zŒ™½Ñ4 Ñ4³÷–ó,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwŒÀÄòBÿ ·½ ¤å,°½õá$½ü«Ávl¹ÁÒ4 Ò4³÷–ó,ÓµPBÿ ÓÁ ¥å,ÌÁõá$ÞÁ'í ,ºÃ¥�§�§�§§¥§î«2®³PüõÅG¼ƒÆÓ4 Ó4³÷ŒÀBÿ ¢Æÿ»å,›ÆüÉÉYt×ÉÔ4³ä Ô4³÷Bÿ�ªª �ÊÄÕ2 æÉÖÕ24éÉ“½Áñ<î �œGî #%ü­Î|¬»ÎÕ4 Õ4³÷–ó,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw†ÙÄòBÿ ÝÎ «å,ÖÎõá$èÎLÓÏ«�¬�¬�¬¬«¬µºPUÿ®³P‹Ð«�­�­�­­«­ ¢Âà­Ð«�®�®�®®«®ëÝÄòUÿ®³Pü°Ô|¬¾ÔÖ4 Ö4³÷–ó,µºPBÿ àÔ ¯å,ÙÔõá$ëÔLÖÕ¯�°�°�°°¯°µºPUÿ®³PŽÖ¯�±�±�±±¯± ¢Âà°Ö¯�²�²�²²¯²Õ¶ÄòUÿ®³PüçÙqdõÙ×4 ×4³÷–ó,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwŒ¼PÄòBÿ ŽÚ ³å,‡Úõá$™ÚüÁÞqdÏÞØ4 Ø4³÷–ó,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw™¿PÄòBÿ èÞ ´å,áÞõá$óÞü�ãsl«ãÙ4 Ù4³÷–ó,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÄòBÿ Åã µå,¾ãõá$Ðãü¬ç+DºçÚ4 Ú4³÷Bÿ Êç¼¥å,Ãç îçüõê+DƒëÛ4 Û4³÷Bÿ “ëÛ­å,Œë ·ëü—í-L¥íÜ4 Ü4³÷Bÿ ¶í ºå,¯íÛíüùï…|‡ðÝ4 Ý4üß–ó,Ù–2Bÿ�½½ ¦ðýë/ —ð ¼óëå,Ÿð at_least_lenÁd°ðõá$Éð68ü©ók·ó–ó,¡©PBÿ ¾— Àó˜ Îóõá$ÜóüÆökÔö–ó,¡©PBÿ ¿— Ýö˜ ëöõá$ùöüãùkñù–ó,¡©PBÿ À— úù˜ ˆúõá$–ú„ûÀ�Á�Á�ÁÁÀÁÙÀP®³Püðý:\þýBÿ Ânon_padding_lenÁ|Šþ¼õÿ4†€Ãôâ6üõÿ�ôâ6´â6#ÄÅÆÄÅÆÄÆÅü½�%LÀ�Þ4 Þ4³÷Bÿà ×�à Ĥü¤ Ê��œÒ�ü’ƒ%L•ƒß4 ß4³÷Bÿà ¬ƒÃ Ťü¤ Ÿƒ�œ§ƒüé„'Tì„à4 à4³÷Bÿà ……à Ƥü¤ ÷„�œ€…”¯…¿…ïõ‹GE¸¾d›œ”Ý…í…Œö2cü»5ᔕ†·ÑÄú…üô… ¥†ïõ”æ†ïõËÌÍÄÅÆÍËÌüÿ†$L‚‡á4 á4³÷BÿÊ ™‡Ê ˤ Œ‡�œ”‡üå‡$Lè‡â4 â4³÷BÿÊ ÿ‡Ê ̤ ò‡�œú‡üˈ&TΈã4 ã4³÷BÿÊ çˆÊ ͤ Ùˆ�œâˆ”²‰ŒöÏÐÑÄÅÆÏÑÐüˉ$LΉä4 ä4³÷BÿÎ å‰Î Ϥ ؉�œà‰ü±Š$L´Šå4 å4³÷BÿΠˊΠФ ¾Š�œÆŠü—‹&Tš‹æ4 æ4³÷BÿÎ ³‹Î Ѥ ¥‹�œ®‹ÔÐ 1Ó‘í,¬£ 1Ó£ ”º 1ü¢ +1ü™ 61\ß 1çÜáâåüè2…CÒÓù,,�2Ð$դ挗2á$Öäæœª2è$×™ç|¿2í$ØÛDê2¶ÒÚþ�Dˆ2™ ÒÜšŽ$¡2ûÒÞÑÃ<§2½ ÒßáÐ<Å2�"ÒàûíLÞ2Û%ÒáÏñLþ2“&Òã‹ñT‰2Œ&Òäò¾,¥2ð#Òå³f$´2àÒæ|Ü2C\ý258&) ,Ø2lå2üØ$2ôöüØF2çéÕל¹2ÇŒÖ2·üØ£2©«—™dž2‰vxLÅ2,É2Ò¨©ÂÃÖרÙÚÐ$Ñ$á$â$è$é$í$˜ ˜)ôçèK°)„Kçêüº)…CçëŽèÞ)£çî²æã)�çïÑÃ<ó)½ çðÒÏL�*ú!çòáÐ<˜*�"çóØÌ$­*èçõàÖ4³*ÃçöL’)Ù,¢)Lª)ÏDµ)À\Å)´Å)´¶¢¤lí)”üÅ)E…‡suüÅ)ef$¦*VXü¤0)©öøÏøÌÔ04×0ñ4 ñ4©ö ñ4³÷Bÿ÷ Þ0÷ ø$ß0ü‰1©öú gúü¯1@²1ò4ó4ô4 ò4©ö ó4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ô4ÏÁBÿù ¶1ù ú$·1œ ½1T†3©öüýþÿ€�‚ƒ„…‡ˆì—3$¥3©öBÿûû üüˆ4%D–4õ4 õ4©öBÿû Ÿ4û ý$ 4üÚ4)dè4ö4 ö4©öBÿû õ4û þ$ö4ü´5)dÂ5÷4 ÷4©öBÿû Ï5û ÿ$Ð5üŽ6)Lœ6ø4 ø4©öãÎBÿû ¦6û €$§6üå6)Ló6ù4 ù4©öãÎBÿû ý6û �$þ6ü¼7'LÊ7ú4 ú4©öBÿû Ô7û ‚$Õ7ü‘8=lŸ8û4 û4©ö‹ãBÿû ­8û ƒ$®8÷,´8ü…9@Œ“9ü4 ü4©öřǙș­É™Ê™àË™óG*¤�R{9 ¸ß1Bÿû ¥9û „$¦9üž;@”¬;ý4 ý4©öÙ—Bÿû‚†† Ò;ûç¥; ¿;äØ;tÂ;øØ; …Ù—$Ó;œ Ù;*,ü–<*d¤<þ4 þ4©öBÿû ±<û ‡$²<Ôã<$æ<çÿ4 ÿ4©ö¨¨©¦Þ«óç ò^yÏŠu÷-ÿ4Bÿû ë<û ˆ$ì<´‡AÉ÷Š‹Œ�ü¤A(²AÉ÷Bÿ‰‰ ŠüƒB;d‘BÉ÷ŽøBÿ‰‰ ‹$¢Bœ°C,³Cç„5 „5É÷Bÿ‰ ¹C‰ Œ$¾CüéC&D÷C…5 …5É÷Bÿ‰ €D‰ �$�Dü¬F-Žø� g�üàF@ãF‡5ˆ5‰5 ‡5Žø ˆ5€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‰5ÏÁBÿŽ çFŽ �$èFœ îFÄÅHŽø‘’“”•—˜™üäH3DòHŽøÓøBÿ�� ‘$ÿHü£J)„±JŠ5 Š5ŽøBÿ� ÂJ� ’$ÇJü…K)„“K‹5 ‹5ŽøBÿ� ¤K� “$©KüçK)LõKŒ5 Œ5ŽøãÎBÿ� ÿK� ”$€LüÇLblÕL�5 �5Žø¸ÜBÿ�¸Ü–– ìL�þÆ›ðPô„Mˆ#›ðPãÎ̉M�#›ðPäðPãÎ<›M •›ðP$ñL %ÿLJLüâM=¤ðMŽ5 Ž5Žø‹ãBÿ� …N� —$ŠN÷Œ�NÔßN$âNç�5 �5Žø¨¨©¦Þ«óç ò^yÏŠu÷-�5Bÿ� çN� ˜$èNü�O%D Oç�5 �5ŽøÂÂûàÅóç “§¬¾üýä�5Bÿ� ©O� ™$®OüØS)Óø› g›üˆT@‹T’5“5”5 ’5Óø “5€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡”5ÏÁBÿš �Tš ›$�Tœ –T¤éUÓø�žŸ ¢¤¥¦§ü„V&D’V•5 •5Óø©öBÿœ ›Vœ �$œVüÞV.,ìVÓøÉ÷Bÿœœ ž$òVüûW)L‰X–5 –5ÓøãÎBÿœ “Xœ Ÿ$”XüÒXblàX—5 —5Óø›ðPBÿœ¸Ü¡¡ ÷XœÈðPô�YÙðPÌ”YïðP<¦Y  ›ðP$üX %ŠY,.üíYblûY˜5 ˜5Óø›ðPBÿœ¸Ü££ ’ZœÈðPôªZÙðP̯ZïðP<ÁZ ¢›ðP$—Z %¥Z,.üˆ[7„–[™5 ™5Óø³äBÿœ §[œ ¤$¬[Áñ²[ü­\&D»\š5 š5Óø š5³÷Bÿœ Ä\œ ¥$Å\Ôô\$÷\ç›5 ›5Óø¨¨©¦Þ«óç ò^yÏŠu÷-›5Bÿœ ü\œ ¦$ý\üµ]%D¸]çœ5 œ5ÓøÂÂûàÅóç “§¬¾üýäœ5Bÿœ Á]œ §$Æ]å· $Ùuç�ªª¡ùò^yÏŠu÷-©«þÅ1¡ùBÿ/¸ HçþÅ1¡ùBÿ¨¨ ©�ÞuDâu稨þÅ1Œîu�­­¡ù®¯°±²³´µ¶¸º¼½óuÔ–yD™yç�5 �5¡ùBÿ¬ ¢y¬ ®�$£yüè|!|ë|çž5 ž5¡ùBÿ¬ û|¬ ¯�$ü|ô†ƒd‰ƒçŸ5 Ÿ5¡ùBÿ¬ –ƒ¬ °�$—ƒôê…dí…ç 5  5¡ùBÿ¬ ú…¬ ±�$û…ô¹ŠL¼Šç¡5 ¡5¡ùãÎBÿ¬ ÆŠ¬ ²�$ÇŠô©ŽL¬Žç¢5 ¢5¡ùãÎBÿ¬ ¶Ž¬ ³�$·Žä“�L–�ç£5 £5¡ùBÿ¬  �¬ ´�$¡�üÅ“2lÈ“ç¤5 ¤5¡ù‹ãBÿ¬ Ö“¬ µ�$ד÷,Ý“ü¾—5ŒÁ—ç¥5 ¥5¡ù‚åPBÿ¬ Ó—¬ ¶�$Ô—,�™¶�·�·�··¶·«¯EUÿ ¸ß1üú™?´ý™ç¦5 ¦5¡ùªÆBÿ¬‚¹¹ ©š¬÷ŽC ”šˆ#ªÆ«¯E„—š�#ªÆ«¯E ¸�ªÆ$ªšœ ´šOQüŠ¢9”�¢ç§5 §5¡ùªÆBÿ¬‚»» ³¢¬÷ŽC  ¢ˆ#ªÆ‘ët£¢�#ªÆ‘ë º�ªÆ$´¢œ ¾¢OQüõ§%”ø§ç¨5 ¨5¡ùBÿ¬ ‹¨¬ ¼�$Œ¨ü�­&œ�­ç©5 ©5¡ùBÿ¬ ¤­¬ ½�$¥­üº¯&�¿¿¡ùÀ gÀ¿¯üç¯@ꯪ5«5¬5 ª5¡ù «5€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¬5ÏÁBÿ¾  À�$ﯜ õ¯,ó°À�Á�Á�ÁÁÀÁÊÊ;å  ¿ <»·ç�ÄÄÂÂûàÅóç “§¬¾üýä�“§¬¾üýäÃÅ ���­�QBÿIÀ …ç��Q­�QBÿ Ã�÷|Ç·çÂÂ��Q¤Ú·�ÇÇ­�QÈÉÊËÌÍÎÐÒÓÔÕß·Ô¨¹d«¹ç­5 ­5­�QBÿÆ ¸¹Æ È�$½¹üè¼!œë¼ç®5 ®5­�QBÿÆ ÿ¼Æ É�$„½ôÒ¿„Õ¿ç¯5 ¯5­�QBÿÆ æ¿Æ Ê�$ë¿ô„„‡Âç°5 °5­�QBÿÆ ˜ÂÆ Ë�$�Âô¹ÃL¼Ãç±5 ±5­�QãÎBÿÆ ÆÃÆ Ì�$ÇÃôŒÅL�Åç²5 ²5­�QãÎBÿÆ ™ÅÆ Í�$šÅüËÆDlÎÆç³5 ³5­�Q¸ÜBÿƸÜÏÏ ÜÆÆþÆ»–Qôðƈ#»–QäðPÌõÆ�#»–QäðPãÎ<‡Ç Î�»–Q$áÆ %ëÆSUüçÈDlêÈç´5 ´5­�Q»–QBÿƸÜÑÑ øÈÆé–QôŒÉû–QÌ‘É�—Q<£É Ð�»–Q$ýÈ %‡É79ü²Ì2¤µÌçµ5 µ5­�Q‹ãBÿÆ ÊÌÆ Ò�$ÏÌ÷ŒÕÌüýÜ%¼€Ýç¶5 ¶5­�QBÿÆ ˜ÝÆ Ó�$�Ýüôã@„÷ãç·5¸5 ·5­�Q ¸5³ä³äBÿÆ ˆäÆ Ô�$�äprevÁ$“äÁñ§äÔîå$ñåç¹5 ¹5­�Q¨¨©¦Þ«óç ò^yÏŠu÷-¹5BÿÆ öåÆ Õ�$÷åü»ç+d¾ççº5 º5��Bÿ Ñç Ö¹¡$Ëç¤ ßçü‚ê+\…êç»5 »5³÷Bÿ —ê ×¹¡$‘êüãî/dæîç¼5 ¼5��Bÿ ùî Ø¹¡$óî¤ ‹ïü¬ñ+\¯ñç½5 ½5³÷™¿PBÿ Áñ Ù¹¡$»ñüÛõ'LÞõç¾5 ¾5��Bÿ íõ Ú�œèõ¤ ûõ¬�ö öü· ë2$Å 2¿5À5Á5Â5 ¿5²Ÿæƒ À5¬‡ Á5ìÜ  Â5©ö–®É÷ÓøBÿ Ô 2 Üõ.Ï 2îTè 2úˆ<ƒ!2‰‰,¡!2ƒ,¿!2Ê$Ò!2 empty_builderÁlì!2D¤*2Ü�Ý�Ý�ÝÝÜÝÊÊ; ù‡4èK2Ü�Þ�Þ�ÞÞÜÞäðPãÎUÿ4ÏP2Ü�ß�ß�ßßÜßÖ£Q4øR2Ü�à�à�ààÜàÖ£QüŸ‚£2|­‚2Ã5Ä5Å5 Ã5²Ÿ³äãÎ Ä5ìÜ  Å5ù‡Bÿ Ç‚2 áõ.‚2 start_nfa_idÁdÛ‚2šÚLö‚2‰‰,Žƒ2 %¬ƒ2ü��p2t��2Æ5Ç5È5 Æ5²Ÿ Ç5ù‡ È5ÓøBÿ ¶�2 âõ.±�2 %Ê�2å<ß�24¢¢2â�ã�ã�ããâãÖ£QŸ…óÖ2â�ä�ä�ääâäÖ£Qü€Ø}2ÌŽØ2É5Ê5Ë5 É5²Ÿ Ê5ôí Ë5ŽøBÿ ²Ø2 åõ.­Ø2‚,ÆØ2å<ÙØ24…Û2å�æ�æ�ææåæÖ£Q4­Þ2å�ç�ç�ççåçÖ£Q4³ß2å�è�è�èèåèÖ£Q4ôà2å�é�é�ééåéÖ£Q4£ä2å�ê�ê�êêåêÖ£Q4Ìå2å�ë�ë�ëëåëÖ£Q4ýæ2å�ì�ì�ììåìÖ£Q4þç2å�í�í�ííåíÖ£Q4·ê2å�î�î�îîåîÖ£Q4±ì2å�ï�ï�ïïåïÖ£Q4²í2å�ð�ð�ððåðÖ£Q4Üï2å�ñ�ñ�ññåñÖ£Q4ýó2å�ò�ò�òòåòÖ£Q¤ì 1,û 1÷úý—,�H+ò$óõƒïT—H+í%óöœúG+,.ü¾Há+|ÌH+Î5Ï5 Î5ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ï5óëªÆÑï'Bÿ�ø‚ùøù îH+ýë/ ÜH+÷ŽC ßH+Ì5Í5ˆ#ªÆ Ì5ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Í5üãI;+Ì5Í5�#ªÆñµQ­ý'üøI&+ ÷óëªÆ¬—²÷ çï'¼÷ þï'Å÷ õ2Ï÷ åçêìüûJá+|‰K+Ò5Ó5 Ò5ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ó5óëªÆÑï'Bÿ�û‚üûü «K+ýë/ ™K+÷ŽC œK+Ð5Ñ5ˆ#ªÆ Ð5ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Ñ5ü L;+Ð5Ñ5�#ªÆÁ¹Q­ý'üµL&+ úóëªÆ¬—°ø çï'ºø þï'Ãø õ2Íø åçêìü Mí+\£M+óÖ5×5 Ö5ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯×5óëªÆÑï'Bÿ�þ‚ÿþÿ ÔM+ýë/ ¯M+÷ŽC ²M+Ô5Õ5ˆ#ªÆ Ô5ò$ò$—ô$âìÉõ$¸ëÉö$©ÆÉ÷$åëÉ‹’*0Ãå¯Õ5üÑN;+Ô5Õ5�#ªÆ“½Q­ý'üæN&+ïî'û3r ¬—| çï'† þï'dûM+õ2$˜N+ãåèꔂ1‘1�…�—£«µœÐ,á,��´â6üÐ7,�´â6´â6!‚‚‚Üê,Dí,¤üBÿ�� ‚¤ü$ö,t‰,„‚„Ôž,D¡,Bÿƒƒ „$ª,¤Þ,ï,……´â6üÞo,…´â6´â6!†‡ˆ†‡ˆ†‡ˆÜù,Dü,¤üBÿ…… †¤ü$…,´™,4œ,¤üBÿ…… ‡¤ü$£,¼´,<·,¤üBÿ…… ˆ¤ü$¿,„Ï,Š‹Œ†‡ˆŠ‹ŒÔæ,Dé,Bÿ‰‰ Š$ò,¬¨,4«,Bÿ‰‰ ‹$²,´Þ,<á,Bÿ‰‰ Œ$é,¤š,«,��´â6üšŽ,�´â6´â6"Ž��‘Ž��‘�Ž�‘ܵ,D¸,¤üBÿ�� ޤü$Á,´Õ,4Ø,¤üBÿ�� �¤ü$ß,Äð,<ó,¤üBÿ�� �¤ü$û,Ì�,D�,¤üBÿ�� ‘¤ü$™,„ª,“”•–Ž��‘–”•“ÔÁ,DÄ,Bÿ’’ “$Í,¬³,4¶,Bÿ’’ ”$½,¼é,<ì,Bÿ’’ •$ô,Ä¢,D¥,Bÿ’’ –$®,¤â,ó,——´â6üâ«,—´â6´â6"˜™š›œ˜™š›œ˜›™œšÜý,D€,¤üBÿ—— ˜¤ü$‰,´�,4 ,¤üBÿ—— ™¤ü$§,ĸ,<»,¤üBÿ—— š¤ü$Ã,ÄÕ,<Ø,¤üBÿ—— ›¤ü$à,Ìò,Dõ,¤üBÿ—— œ¤ü$þ,„�,žŸ ¡¢˜™š›œ¡Ÿ¢ž Ô¦,D©,Bÿ�� ž$²,¬˜,4›,Bÿ�� Ÿ$¢,¼Î,<Ñ,Bÿ��  $Ù,¼‡,<Š,Bÿ�� ¡$’,ÄÀ,DÃ,Bÿ�� ¢$Ì,¤€ ,‘ ,££´â6ü€ v,£´â6´â6!¤¥¦¤¥¦¥¦¤Ü› ,Dž ,¤üBÿ££ ¤¤ü$§ ,Ä» ,<¾ ,¤üBÿ££ ¥¤ü$Æ ,äØ ,LÛ ,Bÿ££ ¦¤ü¤ å ,„ø ,¨©ª¤¥¦©¨ªÔ�!,D’!,Bÿ§§ ¨$›!,¼�#,<„#,Bÿ§§ ©$Œ#,ܺ#,L½#,Bÿ§§ ª¤ Ç#,´ò#,,ƒ$,««´â6üò#ˆ,«´â6´â6"¬­®¯¬­®¯¬®¯­¬�$,,’$,¤üBÿ«« ¬¤ü$˜$,¼©$,4¬$,¤üBÿ«« ­¤ü$³$,¼Å$,4È$,¤üBÿ«« ®¤ü$Ï$,¼á$,4ä$,¤üBÿ«« ¯¤ü$ë$,¤ü$,±²³´¬­®¯³±²´¤—%,,š%,Bÿ°° ±$ %,´ü&,4ÿ&,Bÿ°° ²$†',´æ(,4é(,Bÿ°° ³$ð(,´Ð*,4Ó*,Bÿ°° ´$Ú*,ÄÖ1,<ç1,µµ´â6üÖ1<,µ´â6´â6!¶¶¶Üõ1,Dø1,¤üBÿµµ ¶¤ü$�2,ä”2,�¸¸ýë/ ™2,�ú¹¶¹Ô·2,Dº2,�úBÿ·· ¹óëô ¬–14¥1¼ì4ü  ½»Šê<° ¿»žê<ø Á»²ê<ú ûÆêD° Å»ÛêDú Ç»\õ¤š Óµüô "üó $üê /,© ˜ ½¿ÁÃÅÇüî >¹Ø5 Ø5³÷ͶBÿ • “žn1Áƒ âìD‹ $Ð ½�¾�¾�¾¾½¾š¢Äüü¢G[Ù5 Ù5³÷ͶBÿ Ò ¿äÞQ¸n2ÁÀâìDÈ$�¿�À�À�ÀÀ¿Àš¢é‹é‹üêvÚ5 Ú5³÷ͶBÿ à ÁäÞQ‰©àQ™n3Á©âìD¹$„Á�Â�Â�ÂÂÁš¢é‹é‹é‹üì?ÓÛ5 Û5³÷ͶBÿ ” ÃäÞQ‚âìDŠ$ÐÃ�Ä�Ä�ÄÄÃÄš¢Äüü¢HwÜ5 Ü5³÷ͶBÿ Ó ÅäÞQ¹©àQÁâìDÉ$�Å�Æ�Æ�ÆÆÅÆš¢’âQüìw&Ý5 Ý5³÷ͶBÿ Æ ÇäÞQŒ©àQœþáQ¬âìD¼$ˆÇ�È�È�ÈÈÇÈš¢çãQ¬­14¼1ò$û$Š%›%¬%¸%¿%È%Û%í%î%ù%¼,жýÉË RangeBoundsÁ\‘™$ÉÌ�¹LºŸÉÎ�¹ ÉÎÒÏLÑú!Éϳf$ÜàÉÐLþŽ�qs\¤Œ²g¬ÅA.0”§'Þ2ÒÒªúÓÕ×ÙÚÛÝàáâãäåæçèéêëì¬'ü�(AüÀ'=: Create a new search configuration for the given haystack.Á—(œûªúBÿÑ„ÔÔÑÿÆ¢û4ž(£¢û³÷\§( ÓÞ2¢ûâì| ›(üèH:üå,! Set the span for this search.Á‹-�ü“-JG This routine does not panic if the span given is not a valid range forÁüâ-HE this search's haystack. If this search is run with an invalid range,Áü¯.IF then the most likely outcome is that the actual search execution willÁTý.ͽ.Œ/�ü”/>; This routine is generic over how a span is provided. WhileÁü×/<9 a [`Span`] may be given directly, one may also provide aÁü˜0DA `std::ops::Range`. To provide anything supported by rangeÁüá0,) syntax, use the [`Input::range`] method.Á’1�üš1,) The default span is the entire haystack.ÁË1�üÓ1DA Note that [`Input::range`] overrides this method and vice versa.Áœ2�d¤2Úº.µ2�ü½2HE This panics if the given span does not correspond to valid bounds inÁüŠ30- the haystack or the termination of a search.Á¿3�lÇ3Áˆ-Ù3�üá3FC This example shows how the span of the search can impact whether aÁü¬4KH match is reported or not. This is particularly relevant for look-aroundÁüü4GD operators, which might take things outside of the span into accountÁüÈ5(% when determining whether they match.Áõ5�<ý5ãˆ-ü‰6=·³-ÌË6óˆ-üé6&Ó€A¬”7šÞ>4®7ŸŠ-¹7�üÁ7-* // Look for 'at', but as a distinct word.Áüó7%" let re = PikeVM::new(r"\bat\b")?;Áü�8&“�?üÈ8(ÆÒ?õ8�üý8>; // Our haystack contains 'at', but not as a distinct word.ÁäÀ9 let haystack = "batter";Áá9�üé941 // A standard search finds nothing, as expected.Áü¢:%Ç×-üÌ:-õß>üþ:'…å>ª;�ü²;DA // But if we wanted to search starting at position '1', we mightÁüû;DA // slice the haystack. If we do this, it's impossible for the \bÁüÄü’>=: assert_eq!(Some(Match::must(0, 0..2)), caps.get_match());ÁÔ>�üÜ>FC // But if we specify the span of the search instead of slicing theÁü§?DA // haystack, then the regex engine can "see" outside of the spanÁüð?)& // and resolve the anchors correctly.Áüž@0- let input = Input::new(haystack).span(1..3);ÁüÓ@-õß>ü…A'…å>±A�ü¹A.à�-<ìAãˆ-øA�ü€BIF This may seem a little ham-fisted, but this scenario tends to come upÁüÎBGD if some other regex engine found the match span and now you need toÁüšCJG re-process that span to look for capturing groups. (e.g., Run a fasterÁüéCJG DFA first, find a match, then run the PikeVM on just the match span toÁü¸DGD resolve capturing groups.) In order to implement that sort of logicÁü„EHE correctly, you need to set the span on the search instead of slicingÁÔÑE the haystack directly.ÁðE�üøEJG The other advantage of using this routine to specify the bounds of theÁüÇFGD search is that the match offsets are still reported in terms of theÁü“GJG original haystack. For example, the second search in the example aboveÁüâGGD reported a match at position `0`, even though `at` starts at offsetÁü®H'$ `1` because we sliced the haystack.Á$ïHªú„‘(ªúBÿÑ�ÖÖÑþÆ„‘( ôH©„‘(°ûT÷H ÕÞ2„‘($‡I¸ëg 79ü‰SDüÚI63 Like `Input::span`, but accepts any range instead.Á•J�ü�JKH This routine does not panic if the range given is not a valid range forÁüíJHåìQüºKI·íQTˆLͽ.—L�üŸL-* The default range is the entire haystack.ÁÑL�üÙLC@ Note that [`Input::span`] overrides this method and vice versa.Á¡M�d©MÚº.ºM�üÂMEB This routine will panic if the given range could not be convertedÁüŒNB? to a valid [`Range`]. For example, this would panic when givenÁüÓNEB `0..=usize::MAX` since it cannot be represented using a half-openÁü�O! interval in terms of `usize`.ÁÃO�üËOKH This also panics if the given range does not correspond to valid boundsÁü›P30 in the haystack or the termination of a search.ÁÓP�lÛPÁˆ-íP�<õPãˆ-ô�Q use regex_automata::Input;Á¤Q�ü¬Q%Øõ:üÖQ(% assert_eq!(0..6, input.get_range());ÁƒR�ü‹R2/ let input = Input::new("foobar").range(2..=4);ÁüÂR(% assert_eq!(2..5, input.get_range());Á<ïRãˆ-,�SªúÕ’(ªúBÿÑŽØØÑþÆÕ’( –S™$Õ’(”™S ×Þ2Õ’($±S†A8 57üÀy6ü‡T%" Sets the anchor mode of a search.Á±T�ü¹T=: When a search is anchored (so that's [`Anchored::Yes`] orÁüûTHE [`Anchored::Pattern`]), a match must begin at the start of a search.ÁüÈUJG When a search is not anchored (that's [`Anchored::No`]), regex enginesÁü—VJG will behave as if the pattern started with a `(?s-u:.)*?`. This prefixÁüæV'$ permits a match to appear anywhere.Á’W�üšW63 By default, the anchored mode is [`Anchored::No`].ÁÕW�üÝWJG **WARNING:** this is subtly different than using a `^` at the start ofÁü¬XIF your regex. A `^` forces a regex to match exclusively at the start ofÁüúXGD a haystack, regardless of where you begin your search. In contrast,ÁüÆYFC anchoring a search will allow your regex to match anywhere in yourÁü‘ZDA haystack, but the match must start at the beginning of a search.ÁÚZ�üâZHE For example, consider the haystack `aba` and the following searches:Á¯[�ü·[HE 1. The regex `^a` is compiled with `Anchored::No` and searches `aba`Áü„\IF starting at position `2`. Since `^` requires the match to start atÁüÒ\DA the beginning of the haystack and `2 > 0`, no match is found.Áü›]HE 2. The regex `a` is compiled with `Anchored::Yes` and searches `aba`Áüè]GD starting at position `2`. This reports a match at `[2, 3]` sinceÁü´^HE the match starts where the search started. Since there is no `^`,Áü�_IF there is no requirement for the match to start at the beginning ofÁ¤Ï_ the haystack.Áüè_HE 3. The regex `a` is compiled with `Anchored::Yes` and searches `aba`Áüµ`JG starting at position `1`. Since `b` corresponds to position `1` andÁü„aGD since the search is anchored, it finds no match. While the regexÁüÐaHE matches at other positions, configuring the search to be anchoredÁü�bJG requires that it only report a match that begins at the same offsetÁüìb&# as the beginning of the search.Áü—cGD 4. The regex `a` is compiled with `Anchored::No` and searches `aba`ÁüãcEB starting at position `1`. Since the search is not anchored andÁü­dIF the regex does not start with `^`, the search executes as if thereÁüûdIF is a `(?s:.)*?` prefix that permits it to match anywhere. Thus, itÁüÉe# reports a match at `[2, 3]`.Áñe�üùeEB Note that the [`Anchored::Pattern`] mode is like `Anchored::Yes`,ÁüÃf<9 except it only reports matches for a particular pattern.Á„g�lŒgÁˆ-žg�ü¦gDA This demonstrates the differences between an anchored search andÁüïgEB a pattern that begins with `^` (as described in the above warningÁl¹h message).ÁËh�<Óhãˆ-Ìßhóˆ-üýh&Ó€Aü¨i Anchored, Match, Input,Á4ÌiŸŠ-×i�Ìßi let haystack = "aba";Áýi�ü…j! let re = PikeVM::new(r"^a")?;Áü«jJùÞ>üújGD let input = Input::new(haystack).span(2..3).anchored(Anchored::No);ÁüÆk-õß>üøkHE // No match is found because 2 is not the beginning of the haystack,ÁüÅl  // which is what ^ requires.Áüêl'…å>–m�üžm  let re = PikeVM::new(r"a")?;ÁüÃmJùÞ>ü’nHE let input = Input::new(haystack).span(2..3).anchored(Anchored::Yes);Áüßn-õß>ü‘oKH // An anchored search can still match anywhere in the haystack, it justÁüáoGD // must begin at the start of the search which is '2' in this case.Áü­p=: assert_eq!(Some(Match::must(0, 2..3)), caps.get_match());Áïp�ü÷p Ò«RüœqJùÞ>üëqHE let input = Input::new(haystack).span(1..3).anchored(Anchored::Yes);Áü¸r-õß>üêrC@ // No match is found since we start searching at offset 1 whichÁü²sHE // corresponds to 'b'. Since there is no '(?s:.)*?' prefix, no matchÁ„ÿs // is found.Áü”t'…å>Àt�üÈt Ò«RüítJùÞ>ü¼uGD let input = Input::new(haystack).span(1..3).anchored(Anchored::No);Áüˆv-õß>üºvHE // Since anchored=no, an implicit '(?s:.)*?' prefix was added to theÁü‡wJG // pattern. Even though the search starts at 'b', the 'match anything'ÁüÖw-* // prefix allows the search to match 'a'.Áüˆx.+ let expected = Some(Match::must(0, 2..3));Áü»x+ïÓ?ëx�üóx.à�-<¦yãˆ-DÇyªúÅ‚ªúBÿÑÑ ÙÞ2$Ôy¦‡ üá‹1ü²z30 Whether to execute an "earliest" search or not.Áêz�üòzKH When running a non-overlapping search, an "earliest" search will returnÁüÂ{IF the match location as early as possible. For example, given a patternÁü�|IF of `foo[0-9]+` and a haystack of `foo12345`, a normal leftmost searchÁüÞ|IF will return `foo12345` as a match. But an "earliest" search for regexÁü¬}EB engines that support "earliest" semantics will return `foo1` as aÁüö}JG match, since as soon as the first digit following `foo` is seen, it isÁüÅ~  known to have found a match.Áê~�üò~HE Note that "earliest" semantics generally depend on the regex engine.Áü¿GD Different regex engines may determine there is a match at differentÁü‹€HE points. So there is no guarantee that "earliest" matches will alwaysÁüØ€HE return the same offsets for all regex engines. The "earliest" notionÁü¥�HE is really about when the particular regex engine determines there isÁüò�HE a match rather than a consistent semantic unto itself. This is oftenÁü¿‚FC useful for implementing "did a match occur or not" predicates, butÁüŠƒ+( sometimes the offset is useful as well.Áºƒ�üƒ ¤š.çƒ�lïƒÁˆ-�„�ü‰„FC This example shows the difference between "earliest" searching andÁ¬Ô„ normal searching.Áî„�<ö„ãˆ-ü‚…FC use regex_automata::{nfa::thompson::pikevm::PikeVM, Match, Input};ÁÍ…�üÕ…(¡æ@ü‚†&“�?ü­†(ÆÒ?Ú†�üâ†=: // A normal search implements greediness like you expect.Áü¤‡'$ let input = Input::new("foo12345");ÁüЇ-õß>ü‚ˆ=: assert_eq!(Some(Match::must(0, 0..8)), caps.get_match());ÁĈ�ü̈?< // When 'earliest' is enabled and the regex engine supportsÁü�‰>; // it, the search will bail once it knows a match has beenÁlÓ‰ // found.Áüå‰63 let input = Input::new("foo12345").earliest(true);Áü Š-õß>üÒŠ=: assert_eq!(Some(Match::must(0, 0..4)), caps.get_match());Áü”‹.à�-<Ç‹ãˆ-D苪úªúBÿÑÑ ÚÞ2$õ‹êÕ üÓ’2üÍŒ/, Set the span for this search configuration.Á���ü‰�DA This is like the [`Input::span`] method, except this mutates theÁ”Ò� span in place.Áé��üñ�>£îQü´Ž<ëîQìõŽ `std::ops::Range`.Á—��dŸ�Úº.°��ü¸�HöñQü…�0ÈòQº��lÂ�Áˆ-Ô��<Ü�ãˆ-ôè�ÖŽR‹‘�ü“‘)& let mut input = Input::new("foobar");ÁüÁ‘(˜�RÌî‘ input.set_span(2..4);ÁüŒ’(% assert_eq!(2..4, input.get_range());Á<¹’ãˆ-DÚ’ß5 ß5ªú„‘(BÿÑ�ÜÜ ò’чˆR ã’˜ˆRTæ’ ÛÞ2„‘($÷’¸ë2 .0ü¹ž<ü¾•?< Set the span for this search configuration given any range.Á‚–�üŠ–EB This is like the [`Input::range`] method, except this mutates theÁ”Ô–ÁÈRë–�üó–K³ˆRü×HåìQü�˜I·íQTÞ˜ͽ.í˜�dõ˜Úº.†™�üŽ™EòŠRüØ™BÁ‹RüŸšE�ŒRüéš!ÜŒR�›�ü—›JG This also panics if the given span does not correspond to valid boundsÁüæ›3è�Ržœ�l¦œÁˆ-¸œ�<Àœãˆ-ô̜֎Rïœ�ü÷œ)ÇÊRü¥�(˜�RÜÒ� input.set_range(2..=4);Áüò�(’�R<Ÿžãˆ-LÀžà5 à5ªúÕ’(BÿÑŽÞÞ ážÑŒ’R Êž�’R”Íž ÝÞ2Õ’($枆A­ -/„„Ÿ,�Ÿü�«)üÞ¥GD Set the starting offset for the span for this search configuration.Áª¦�ü²¦GD This is a convenience routine for only mutating the start of a spanÁüþ¦*' without having to set the entire span.Á­§�dµ§Úº.Ƨ�üΧJG This panics if the span resulting from the new start position does notÁü�¨FC correspond to valid bounds in the haystack or the termination of aÁ\è¨Ô—7ø¨�l€©Áˆ-’©�<š©ãˆ-ô¦©ÖŽRÉ©�üÑ©)ÇÊRüÿ©(˜�R¼¬ª input.set_start(5);ÁüȪ(% assert_eq!(5..6, input.get_range());Á<õªãˆ-L–«á5 á5ªúBÿÑ  «Ñ àÞ2$¥«‚u ü©±%ü€¬EB Set the ending offset for the span for this search configuration.Áʬ�üÒ¬EB This is a convenience routine for only mutating the end of a spanÁüœ­*çÔRË­�dÓ­Úº.ä­�üì­HE This panics if the span resulting from the new end position does notÁü¹®F™ÖR\„¯Ô—7”¯�lœ¯Áˆ-®¯�<¶¯ãˆ-ô¯ÖŽRå¯�üí¯)ÇÊRü›°(˜�R¬È° input.set_end(5);Áüâ°(% assert_eq!(0..5, input.get_range());Á<�±ãˆ-<°±â5 â5ªúBÿÑ ¸±Ñ áÞ2$½±’• üÀ¶.ü”²$! Set the anchor mode of a search.Á½²�üŲB? This is like [`Input::anchored`], except it mutates the searchÁÜŒ³ configuration in place.Á¬³�l´³Áˆ-Ƴ�<γãˆ-üÚ³52 use regex_automata::{Anchored, Input, PatternID};Á”´�üœ´)ÇÊRüÊ´30 assert_eq!(Anchored::No, input.get_anchored());Á‚µ�üе! let pid = PatternID::must(5);Áü°µ/, input.set_anchored(Anchored::Pattern(pid));Áüäµ=: assert_eq!(Anchored::Pattern(pid), input.get_anchored());Á<¦¶ãˆ-dǶã5 ã5ªúÅ‚BÿÑ Ô¶Ñ âÞ2$Ù¶¦‡@ üäº)üš·DA Set whether the search should execute in "earliest" mode or not.Áã·�üë·B? This is like [`Input::earliest`], except it mutates the searchÁܲ¸ÆßRÒ¸�lÚ¸Áˆ-ì¸�<ô¸ãˆ-ô€¹ÖŽR£¹�ü«¹)ÇÊRüÙ¹# assert!(!input.get_earliest());Áì�º input.set_earliest(true);Áü£º" assert!(input.get_earliest());Á<ʺãˆ-dëºä5 ä5ªúBÿÑ øºÑ ãÞ2$ýºê½ üν"ü¸»C@ Return a borrow of the underlying haystack as a slice of bytes.Á€¼�lˆ¼Áˆ-š¼�<¢¼ãˆ-ô®¼ÖŽRѼ�üÙ¼%Øõ:üƒ½,) assert_eq!(b"foobar", input.haystack());Á<´½ãˆ-DÕ½å5 å5ªú Þ2³÷BÿÑ Þ½Ñ äÞ2$ß½äŽÃü”¾-* Return the start position of this search.Áƾ�üξB? This is a convenience routine for `search.get_span().start()`.Á•¿�ü�¿DA When [`Input::is_done`] is `false`, this is guaranteed to returnÁüæ¿FC an offset that is less than or equal to [`Input::end`]. Otherwise,Áü±À2/ the offset is one greater than [`Input::end`].ÁèÀ�lðÀÁˆ-‚Á�<ŠÁãˆ-ô–ÁÖŽR¹Á�üÁÁ%Øõ:üëÁ! assert_eq!(0, input.start());Á‘Â�ü™Â0- let input = Input::new("foobar").span(2..4);ÁüÎÂ! assert_eq!(2, input.start());Á<ôÂãˆ-,•Ãæ5 æ5ªúBÿÑ ›ÃÑ åÞ2$œÃÔóÇüÖÃ+( Return the end position of this search.Á†Ä�üŽÄ@= This is a convenience routine for `search.get_span().end()`.ÁÓÄ�üÛÄHE This is guaranteed to return an offset that is a valid exclusive endÁü¨Å$! bound for this input's haystack.ÁÑÅ�lÙÅÁˆ-ëÅ�<óÅãˆ-ôÿÅÖŽR¢Æ�üªÆ%Øõ:üÔÆ assert_eq!(6, input.end());ÁøÆ�ü€Ç0íîRüµÇ assert_eq!(4, input.end());Á<ÙÇãˆ-úÇç5 ç5ªúBÿÑ þÇÑ æÞ2$ÿÇôßÌü·È2/ Return the span for this search configuration.ÁîÈ�üöÈJG If one was not explicitly set, then the span corresponds to the entireÁÔÅÉ range of the haystack.ÁäÉ�üìÉGD When [`Input::is_done`] is `false`, the span returned is guaranteedÁü¸Ê<9 to correspond to valid bounds for this input's haystack.ÁùÊ�l�ËÁˆ-“Ë�<›Ëãˆ-ü§Ë&# use regex_automata::{Input, Span};ÁÒË�üÚË%Øõ:ü„Ì<9 assert_eq!(Span { start: 0, end: 6 }, input.get_span());Á<ÅÌãˆ-DæÌè5 è5ªú°ûBÿÑ ïÌÑ çÞ2$ðÌüµÑ'ü�Í=: Return the span as a range for this search configuration.ÁßÍ�üçÍJãõRԶηöRÕÎ�üÝÎHE When [`Input::is_done`] is `false`, the range returned is guaranteedÁüªÏ<»÷RëÏ�lóÏÁˆ-…Ð�<�Ðãˆ-ô™ÐÖŽR¼Ð�üÄÐ%Øõ:üîÐ(˜�R<›Ñãˆ-L¼Ñé5 é5ªúðüBÿÑ ÆÑÑ èÞ2$ÇÑü±Ö&üŠÒ;8 Return the anchored mode for this search configuration.ÁÊÒ�üÒÒFC If no anchored mode was set, then it defaults to [`Anchored::No`].Á�Ó�l¥ÓÁˆ-·Ó�<¿Óãˆ-üËÓ5¢àR…Ô�ü�Ô)ÇÊRü»Ô3þàRóÔ�üûÔ!ÉáRü¡Õ/õáRüÕÕ=¯âR<—Öãˆ-d¸Öê5 ê5ªúÅ‚BÿÑ ÅÖÑ éÞ2$ÆÖü†Ù"üûÖA> Return whether this search should execute in "earliest" mode.ÁÁ×�lÉ×Áˆ-Û×�<ã×ãˆ-ôï×ÖŽR’Ø�üšØ%Øõ:üÄØ#‡æR<ìØãˆ-d�Ùë5 ë5ªúBÿÑ šÙÑ êÞ2$›ÙìãÝüÌÙEB Return true if and only if this search can never return any otherÁd–Ú matches.Á§Ú�ü¯ÚJG This occurs when the start position of this search is greater than theÁüþÚ end position of the search.Á¢Û�lªÛÁˆ-¼Û�<ÄÛãˆ-ôÐÛÖŽRóÛ�üûÛ)ÇÊRô©Ü assert!(!input.is_done());Á¼ÌÜ input.set_start(6);ÁôèÜ«†S¼‹Ý input.set_start(7);Áì§Ý assert!(input.is_done());Á<ÉÝãˆ-<êÝì5 ì5ªúBÿÑ òÝÑ ëÞ2$óÝü”ä5üÂÞJG Returns true if and only if the given offset in this search's haystackÁü‘ß63 falls on a valid UTF-8 encoded codepoint boundary.ÁÌß�üÔßIF If the haystack is not valid UTF-8, then the behavior of this routineÁœ¢à is unspecified.Áºà�lÂàÁˆ-Ôà�üÜàEB This shows where codepoint boundaries do and don't exist in validÁT¦áßÇ>µá�<½áãˆ-ôÉáÖŽRìá�üôá"¹Ú:ü›â'$ assert!(input.is_char_boundary(0));ÁüÇâ(% assert!(!input.is_char_boundary(1));Áüôâ(% assert!(!input.is_char_boundary(2));Áü¡ã'$ assert!(input.is_char_boundary(3));ÁüÍã(% assert!(!input.is_char_boundary(4));Á<úããˆ-„›äí5 í5ªúBÿÑ ¬äÑ ìÞ2$­äÑ C üˆå'Þ2îîªúï gï�åü¶å@¹åî5ï5ð5 î5ªú ï5€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ð5ÏÁBÿí ½åí ïÞ2$¾åœ Äåü…æ"lšæü®è;Þ2ò„óóòÿëQ4ºè�ìQ\Ãèªúô®ô³è ·èüðè%$óèœûªúBÿññ ôÞ2¢ûâìê LÅñ°ûö÷øùúü‰ò#üÕñ! Returns this span as a range.Á,�ò÷5 ÷5°ûðüBÿõ –òõË·($—òô¯óüÕòGD Returns true when this span is empty. That is, when `start >= end`.ÁD¶óø5 ø5°ûBÿõ ¿óõ�É($ÀóÔ‰õüúó$! Returns the length of this span.Á£ô�ü«ôKH This returns `0` in precisely the cases that `is_empty` returns `true`.Á�õù5 ù5°ûBÿõ ”õõè�)$•õü—÷-üÝõEB Returns true when the given offset is contained within this span.Á§ö�ü¯öFC Note that an empty span contains no offsets and will always returnÁTúö false.ÁDž÷ú5 ú5°ûBÿõ §÷õ ù$¨÷Ñ û$ ü‡ù+ü™øKH Returns a new span with `offset` added to this span's `start` and `end`Á\éø values.Á4Žùû5 û5°û°ûBÿõ •ùõ ú$–ùÑ C& ô‚ú°ûü güü§ú@ªúü5ý5þ5 ü5°û ý5€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡þ5ÏÁBÿû ®úû ü$¯úœ µúü¥û$³÷þÿ�ý‘ýÿ\Ðû4Õûýý³÷ü÷û%,úû€ÿ5 ÿ5³÷°û‘žSBÿý €üý ÿ$�ü÷?' üÅü'³÷�ª#�ü�ý1L„ý€€6 €6³÷°û•ŸSBÿ€ Žý€ �$“ý÷*( üßý#ƒ„�ý‘ý„\‰þ4Žþ‚‚ü¯þ$,²þ€�6 �6°ûº SBÿ‚ ¸þ‚ „$¹þ÷) üüþ °û†®†ü±ÿ$$´ÿðü°ûBÿ…… ††AÜ) ü•€ ðüˆ®ˆüÊ€#$Í€°ûðüBÿ‡‡ ˆ¸ë„* ü¬�%°ûŠù±Šüæ�*é�‚6ƒ6 ‚6°û ƒ6ðüBÿ‰ ì�‰ Š$í�†A¡+ üׂ%ðüŒù±Œü‘ƒ!”ƒ„6…6 „6ðü …6°ûBÿ‹ —ƒ‹ Œ$˜ƒ¸ëÝ, tÜ‹áýŽ��‘üÄŒ:üñ‹@= Create a new half match from a pattern ID and a byte offset.ÁËŒ‹ãáýBÿ��ÌŸ¿‰42 Ñ >2 üÀ�7ü²�@’¤S÷��üÿ�GD This is like [`HalfMatch::new`], but accepts a `usize` instead of aÁüËŽHE [`PatternID`]. This panics if the given `usize` is not representableÁ¬˜� as a `PatternID`.Á$Ç�áýBÿ�� �¿‰#3 Ñ -3 üò’"üÆ�/, Returns the ID of the pattern that matched.Áú��ü‚‘DA The ID of a pattern is derived from the position in which it wasÁüË‘IF originally inserted into the corresponding DFA. The first pattern hasÁü™’FC identifier `0`, and each subsequent pattern is `1`, `2` and so on.Á<ù’�6 �6áý‹ãBÿ� �“�Òí $‚“줕ô·“ The position of the match.ÁÚ“�üâ“FC If this match was produced by a forward search, then the offset isÁü­”GD exclusive. If this match was produced by a reverse search, then theÁÄù” offset is inclusive.Á4«•�6 �6áýBÿ� ²•�õì $³•Tû›÷þ“•—˜™š›œ�üä¡?üŒœ41 Create a new match from a pattern ID and a span.ÁÅœ�üÍœB? This constructor is generic over how a span is provided. WhileÁü”�<ëîQìÕ�ˆÉR÷��dÿ�Úº.�ž�ü˜ž! This panics if `end < start`.Á¾ž�lÆžÁˆ-Øž�üàžEB This shows how to create a match for the first pattern in a regexÁüªŸ)& object using convenient range syntax.ÁØŸ�<àŸãˆ-üìŸ+( use regex_automata::{Match, PatternID};Áœ �ü¤ /, let m = Match::new(PatternID::ZERO, 5..10);ÁüØ *' assert_eq!(0, m.pattern().as_usize());Á쇡 assert_eq!(5, m.start());Áä©¡ assert_eq!(10, m.end());Á<Ê¡ãˆ-ë¡‹ãÍó(÷þBÿ’�””’þÆÍó( ï¡©Íó(°ûTò¡…ø(¿‰n: ¸ëy: /1üت<ü¶£@= Create a new match from a pattern ID and a byte offset span.Áû£�üƒ¤Bµ®Süʤ<ëîQì‹¥ˆÉR­¥�üµ¥C@ This is like [`Match::new`], but accepts a `usize` instead of aÁüý¥H™¦S¬Ê¦ë¦Sä¦�dì¦Úº.ý¦�ü…§B? This panics if `end < start` or if `pattern > PatternID::MAX`.Á̧�lÔ§Áˆ-æ§�üî§EB This shows how to create a match for the third pattern in a regexÁü¸¨)ë°Sæ¨�<î¨ãˆ-ôú¨ use regex_automata::Match;Á�©�ü¥©" let m = Match::must(3, 5..10);ÁüÌ©*' assert_eq!(3, m.pattern().as_usize());Áìû©ë²Sä�ª’³S<¾ªãˆ-$ߪÍó(÷þBÿ’�––’�µS 䪓µSTçª •Íó(¿‰< ¸ë < )+ü’®"üÕ«/Ú§S‰¬�ü‘¬D¡¨SüÚ¬FC originally inserted into the corresponding regex engine. The firstÁü¥­KH pattern has identifier `0`, and each subsequent pattern is `1`, `2` andÁTõ­ so on.Á<™®š6 š6÷þ‹ãBÿ’ ¡®’ —$¢®äÚ¯ü×®'$ The starting position of the match.Áƒ¯�ü‹¯<9 This is a convenience routine for `Match::span().start`.Á,ᯛ6 ›6÷þBÿ’ 篒 ˜$è¯Ô�±üž°%" The ending position of the match.ÁȰ�üа:7 This is a convenience routine for `Match::span().end`.Á¤±œ6 œ6÷þBÿ’ ¨±’‹Š$©±üá².üݱ&# Returns the match span as a range.Áˆ²�ü�²>; This is a convenience routine for `Match::span().range()`.Á,è²�6 �6÷þðüBÿ’ î²’ š$ï²Ôð³ü¹³$! Returns the span for this match.Á$÷³ž6 ž6÷þ°ûBÿ’ ü³’åú($ý³ôáµüª´63 Returns true when the span in this match is empty.Áå´�üí´GD An empty match can only be returned when the regex itself can matchÁ¬¹µ the empty string.ÁD赟6 Ÿ6÷þBÿ’ ñµ’ùˆ$òµÔ¼·ü¬¶%" Returns the length of this match.ÁÖ¶�üÞ¶KÕS÷ 6  6÷þBÿ’ Ç·’ �$È·|£ÉÓ«Œ�É̉ÉŽ€Ÿ ¡¢£¤¥¦§¨ü×Î)ü¹ÉDA Create a new set of pattern identifiers with the given capacity.Á‚Ê�üŠÊHE The given capacity typically corresponds to (at least) the number ofÁü×Ê(% patterns in a compiled regex object.Á„Ë�dŒËÚº.�Ë�ü¥ËKH This panics if the given capacity exceeds [`PatternID::LIMIT`]. This isÁüõËIF impossible if you use the `pattern_len()` method as defined on any ofÁüÃÌJG the regex engines in this crate. Namely, a regex will fail to build byÁü’ÍHE returning an error if the number of patterns given to it exceeds theÁüßÍGD limit. Therefore, the number of patterns in a valid regex is alwaysÁü«Î'$ a correct capacity to provide here.ÁÞÎŽ€Bÿžž ŸÀÛDâμÞÑü¡Ñ85 Clear this set such that it contains no pattern IDs.Á,åѨ6 ¨6Ž€Bÿž ëÑž  $ðÑüÀÓ.üðÒKH Return true if and only if the given pattern identifier is in this set.ÁDÇÓ©6 ©6Ž€‹ãBÿž ÐÓž ¡$ÑÓ÷Œ×Óüý×0ü¸ÔJG Insert the given pattern identifier into this set and return `true` ifÁü‡Õ85 the given pattern ID was not previously in this set.ÁÄÕ�üÌÕKH If the pattern identifier is already in this set, then this is a no-op.ÁœÖ�ü¤ÖJG Use [`PatternSet::try_insert`] for a fallible version of this routine.ÁóÖ�dûÖÚº.Œ×�ü”×@= This panics if this pattern set has insufficient capacity toÁüÙ× store the given pattern ID.Á4„ت6 ª6Ž€‹ãBÿž ‹ØžÑÌ$�Ø÷Œ–Øü’ÜjüšÙJ�ÑSüéÙ8ÖÑS¦Ú�ü®ÚK¦ÒSþÚ�d†ÛÅÐ0—Û�üŸÛJG This returns an error if this pattern set has insufficient capacity toÁüîÛÑÔST™Ü«6 «6Ž€‹ãÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwƒ�Bÿž ­Üž £$²Ü÷ŒÀÜô‹çü½æIF Return true if and only if this set has no pattern identifiers in it.ÁD’ç¬6 ¬6Ž€Bÿž ›çž ¤$œçìÑìüÏçIF Return true if and only if this set has the maximum number of patternÁü�èIF identifiers in the set. This occurs precisely when `PatternSet::len()Áüëè == PatternSet::capacity()`.Á�é�ü—éJG This particular property is useful to test because it may allow one toÁüæéJG stop a search earlier than you might otherwise. Namely, if a search isÁüµêIF only reporting which patterns match a haystack and if you know all ofÁüƒëHE the patterns match at a given point, then there's no new informationÁüÐëHE that can be learned by continuing the search. (Because a pattern setÁü�ì/, does not keep track of offset information.)Á<Øì­6 ­6Ž€Bÿž àìž”Í$áìÔçíü¢í@= Returns the total number of pattern identifiers in this set.Áîí®6 ®6Ž€Bÿž òíž ¦$óíüåðü îFC Returns the total number of pattern identifiers that may be storedÁ„ëî in this set.Á€ï�üˆïHE This is guaranteed to be less than or equal to [`PatternID::LIMIT`].ÁÕï�üÝïKH Typically, the capacity of a pattern set matches the number of patternsÁü­ð30 in a regex object with which you are searching.ÁDìð¯6 ¯6Ž€Bÿž õðž §$öðü×ò(ü«ñA> Returns an iterator over all pattern identifiers in this set.Áññ�üùñHE The iterator yields pattern identifiers in ascending order, startingÁdÆò at zero.Á$Þò°6 °6Ž€¿%¿%¤ìÁ%Ç,É @›—ªÎ®°6Bÿž ãòž ¨$äòüòö0Ó‰|àö¼Úöƒ�üÁ÷1Ó«Œ­÷̧÷ƒ�«¥g«üù÷@ü÷µ6¶6·6 µ6ƒ� ¶6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡·6ÏÁBÿª €øª «$�øœ ‡øü¸ý(Ó«Œ¤ýÌžý�­­è�®¯°ÅQÆQÊQ¯°½ýLçý$ìý¬¬‹ãüƒþ'$†þ¼6 ¼6è��ÇBÿ¬ ‹þ¬ ¯�$�þü¡‚-L¤‚½6 ½6è�ûÄFBÿ¬ ®‚¬ °�$¯‚ü�ƒ3Ó«Œü‚Ìö‚�²²è�³ÕP³•ƒüʃ,L̓¾6 ¾6è��ÇBÿ± ׃± ³�$܃lº­Å‚µ¶üÙ±!üέKH Returns true if and only if this anchor mode corresponds to any kind ofÁ¤ž® anchored search.Á·®�l¿®Áˆ-Ñ®�üÙ®IF This examples shows that both `Anchored::Yes` and `Anchored::Pattern`Áü§¯%" are considered anchored searches.Áѯ�<Ù¯ãˆ-üå¯.+ use regex_automata::{Anchored, PatternID};Á˜°�ü °)& assert!(!Anchored::No.is_anchored());Áüΰ)& assert!(Anchored::Yes.is_anchored());Áüü°>; assert!(Anchored::Pattern(PatternID::ZERO).is_anchored());Á<¿±ãˆ-\à±Æ6 Æ6Å‚Bÿ´ ì±´Õ“$í±ü¹¶*üƲIF Returns the pattern ID associated with this configuration if it is anÁü”³IF anchored search for a specific pattern. Otherwise `None` is returned.Áâ³�lê³Áˆ-ü³�<„´ãˆ-ü�´.’ðSô�üË´-* assert_eq!(None, Anchored::No.pattern());Áüý´.+ assert_eq!(None, Anchored::Yes.pattern());Á°µ�ü¸µ!ÉáRüÞµ<9 assert_eq!(Some(pid), Anchored::Pattern(pid).pattern());Á<Ÿ¶ãˆ-<À¶Ç6 Ç6Å‚�ÇBÿ´ ȶ´ ¶$ɶt¡í惸üÔí6Ó«Œ¼í̶íÌâíÏ6 Ï6æƒBÿ· üí· ¸$ýí|Ä„ø„º»¼½¾¿ü„†.üÚ„1. Create a new error value with the given kind.Á�…�ü˜…EB This is a more verbose version of the kind-specific constructors,Áìâ… e.g., `MatchError::quit`.Á‹†ä…ø„Bÿ¹¹ º¦$�†ü½ˆ%üƒˆ52 Returns a reference to the underlying error kind.Á$Ĉ×6 ×6ø„ ×6ä…Bÿ¹ Ɉ¹ »$ʈüÄ‹2ü€‰HE Create a new "quit" error. The given `byte` corresponds to the valueÁü͉KH that tripped a search's quit condition, and `offset` corresponds to theÁü�Š63 location in the haystack at which the search quit.ÁØŠ�üàŠ85 This is the same as calling `MatchError::new` with aÁü�‹" [`MatchErrorKind::Quit`] kind.Á$Ë‹ø„Bÿ¹¹¨‚ÿ†$ЋÑ 4Ú‹ü»Ž+üÃŒGD Create a new "gave up" error. The given `offset` corresponds to theÁü��96 location in the haystack at which the search gave up.ÁÍ��üÕ�8éýSü’Ž$! [`MatchErrorKind::GaveUp`] kind.Á<ÂŽø„Bÿ¹¹ ½Ñ 4ÊŽü®‘2ü¯�JG Create a new "haystack too long" error. The given `len` corresponds toÁüþ�41 the length of the haystack that was problematic.Á·��ü¿�8éýSüü�-* [`MatchErrorKind::HaystackTooLong`] kind.ÁŒµ‘ø„Bÿ¹¹ ¾¶Ç‘üÚ”9ü¯’JG Create a new "unsupported anchored" error. This occurs when the callerÁüþ’FC requests a search with an anchor mode that is not supported by theÁŒÉ“ regex engine.Áß“�üç“8éýSü¤”1. [`MatchErrorKind::UnsupportedAnchored`] kind.Á¤á”Å‚ø„Bÿ¹¹¨€¦‡$ö”üëª%Ó‰|Ùª¼Óªø„ü•«&ø„Â¥gÂü«@Å«ß6à6á6 ß6ø„ à6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡á6ÏÁBÿÁ É«Á Â$Ê«œ ЫÌÞ1Ó«ŒÊ1ÌÄ1Tí1Œ&“&™&š&–Ó-Ð=ÃÅ–ÃÅüÝ-…CÃÆáÐ<�-�"ÃÇ,Ë-TVDØ-4üè -%|Õ -¬‡ÉÊËÌÍüŽ 0-œ -¬‡BÿÈÈ ÉÀÛD  -üš4-4¨-æ6 æ6¬‡BÿÈ ¯-È Ê$´- new_capacityÁdº-ôÌ-,Ú-ç6 ç6¬‡BÿÈ à-È Ë$å-ìË-$Ù-è6 è6¬‡BÿÈ Þ-È Ì$ã-üý*-d‹-é6 é6¬‡BÿÈ ˜-È Í$™-tÔ-ù‡ÏÐÑÒÓÔÕÖרü¾ /-Ì -ù‡BÿÎÎ ÏÀÛDÐ -üÄ#4-4Ò#-ë6 ë6ù‡BÿÎ Ù#-Î Ð$Þ#-•‹Tdä#-üý'&-D‹(-ì6 ì6ù‡BÿÎ ”(-Î Ñ$•(-üŒ)!-š)-í6 í6ù‡BÿÎ ž)-Î Ò$Ÿ)-ü‘*%-DŸ*-î6 î6ù‡BÿÎ ¨*-Î Ó$©*-üù.4-4‡/-ï6 ï6ù‡³äBÿÎ Ž/-Î Ô$“/-Ž-™/-ü¬42-Dº4-ð6 ð6ù‡³äBÿÎ Ã4-Î Õ$Ä4-Ž-Ê4-ô”6-,¢6-ñ6 ñ6ù‡BÿÎ ¨6-Î Ö$­6-üä6.-$ò6-ò6 ò6ù‡™&™&š&…òœ&óà ð?ü¥½¢ò6BÿÎ ÷6-Î ×$ø6-ü¯8*-d½8-ó6 ó6ù‡BÿÎ Ê8-Î Ø$Ë8-ü²9#-ù‡Ú gÚüÜ9@-ß9-ô6õ6ö6 ô6ù‡ õ6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ö6ÏÁBÿÙ ã9-Ù Ú$ä9-œ ê9-üü<'-�ÜÜÒˆÝÞÅQÆQÞ�=-Lª=-$¯=-ÛÛ³äüý=%-$€>-ú6 ú6Òˆ¨¨BÿÛ …>-Û Þ�$Š>-Üù1dˆ1œ–1$¥1áçèéêëü¥).d³.Bÿúô!˜ À.üÕ#.LÞ.àц$Bÿ�ê)ô.å.ââ¼› .$¡ .àц$® .ü˜>.4¦.û6 û6³÷–�"Bÿ ´.®Š"¹•,­.üÒC.\à.ü6 ü6³÷–�"Bÿ ó.½…"¹•,ì.üª!.­.àͶBÿ éÿ†$±.üë9.\ù.ý6 ý6³÷Bÿ Œ.î¼(¹•,….Ÿ “.üù&,.Ôü&.àBÿ ë˜ —'.Œðüú 52 The configuration used for compiling a dense DFA.Á° �ü´ JG As a convenience, [`DFA::config`] is an alias for [`Config::new`]. TheÁüÿ IF advantage of the former is that it often lets you avoid importing theÁÜÉ  `Config` type directly.Áå �üé LI A dense DFA configuration is a simple data object that is typically usedÁü¶A> with [`dense::Builder::configure`](self::Builder::configure).Áø�üüHE The default configuration guarantees that a search will never returnÁüÅC@ a "quit" error, although it is possible for a search to fail ifÁü‰C@ [`Config::starts_for_each_pattern`] wasn't enabled (which it isÁüÍFC not by default) and an [`Anchored::Pattern`] mode is requested viaÁä” [`Input`](crate::Input).ÁÓ‘í,¬·ì±4ûÛèàÞ=ò0Iíîïðñòóôõö÷øħT§ìì°®ôÅÅì쮯´éDéìì°®ì…T…ì쩱ì¨T¨ì쪲üË%¼Ëìì°®Ôödöìì°®ü–#¬–ì찮Ŀ<¿ììÏ´üÝ%¼Ýìì°®üˆ%tˆì숶ü³-´³ì숶s[¦Ûèú†ús[s[ &  &ÛèÛèBÿùØù ús[[]§Ûèü gü[][]¡&¢&£& ¡&Ûè ¢&€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡£&ÏÁBÿûßû ü[]œ[]�g¨Ûèþ÷þ�g�gÛèBÿýý þ”ņüÇïLI A builder for constructing a deterministic finite automaton from regularÁ„”ð expressions.Á¥ð�ü©ð*' This builder provides two main things:ÁÔð�üØðMJ 1. It provides a few different `build` routines for actually constructingÁü¦ñ@= a DFA from different kinds of inputs. The most convenient isÁüçñNK [`Builder::build`], which builds a DFA directly from a pattern string. TheÁü¶òMJ most flexible is [`Builder::build_from_nfa`], which builds a DFA straightÁ„„ó from an NFA.Áü•ó:7 2. The builder permits configuring a number of things.ÁüÐóJG [`Builder::configure`] is used with [`Config`] to configure aspects ofÁü›ôHE the DFA and the construction process itself. [`Builder::syntax`] andÁüäôNK [`Builder::thompson`] permit configuring the regex parser and Thompson NFAÁü³õKH construction, respectively. The syntax and thompson configurations onlyÁüÿõ.+ apply when building from a pattern string.Á®ö�ü²öHE This builder always constructs a *single* DFA. As such, this builderÁüûöIF can only be used to construct regexes that either detect the presenceÁüÅ÷GD of a match or find the end location of a match. A single DFA cannotÁü�øJG produce both the start and end of a match. For that information, use aÁüØøJG [`Regex`](crate::dfa::regex::Regex), which can be similarly configuredÁü£ùLI using [`regex::Builder`](crate::dfa::regex::Builder). The main reason toÁüðùOL use a DFA directly is if the end location of a match is enough for your useÁüÀúKH case. Namely, a `Regex` will construct two DFAs instead of one, since aÁüŒû>; second reverse DFA is needed to find the start of a match.ÁËû�üÏûNK Note that if one wants to build a sparse DFA, you must first build a denseÁüžüKH DFA and convert that to a sparse DFA. There is no way to build a sparseÁüêü+( DFA without first building a dense DFA.Á–ý�lšýÁˆ-¨ý�ü¬ýLI This example shows how to build a minimized DFA that completely disablesÁ¬ùý Unicode. That is:Á�þ�ü“þIF * Things such as `\w`, `.` and `\b` are no longer Unicode-aware. `\w`ÁüÝþHE and `\b` are ASCII-only while `.` matches any byte except for `\n`Áü¦ÿIF (instead of any UTF-8 encoding of a Unicode scalar value except forÁüðÿJG `\n`). Things that are Unicode only, such as `\pL`, are not allowed.Áü»€JG * The pattern itself is permitted to match invalid UTF-8. For example,Áü†�JG things like `[^a]` that match any byte except for `a` are permitted.ÁÑ��<Õ�ãˆ-ÌÝ�óˆ-ü÷� æœ.¬˜‚‚�AÌ®‚áÁ/4È‚ŸŠ-Ï‚�üÓ‚#޵-ü÷‚85 .configure(dense::Config::new().minimize(false))Áü°ƒAáÕ9üòƒ  .build(r"foo[^b]ar.*")?;Á“„�ü—„2/ let haystack = b"\xFEfoo\xFFar\xE2\x98\xFF\n";ÁüÊ„0ˆÔHüû„9á .ôµ…¤¡.Ô…�üØ….à�-<‡†ãˆ-Ó‘í,¬•†ì�†<І ê™htîáTÎ~€�tÞ†4Þ†ÿÿÛè䑇ÓΔø†Ôò†D‘‡ÿÿã�Ii« êƒ†ƒIiIi±& ±& ê êBÿ‚¶†‚ ƒIij¬ ê… g…jj²&³&´& ²& ê ³&€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡´&ÏÁBÿ„½†„ …jœjŒËÓüª¿=: A dense table-based deterministic finite automaton (DFA).Áè¿�üì¿KH All dense DFAs have one or more start states, zero or more match statesÁü¸ÀKH and a transition table that maps the current state and the current byteÁü„ÁKH of input to the next state. A DFA can use this information to implementÁüÐÁMJ fast searching. In particular, the use of a dense DFA generally makes theÁüžÂKH trade off that match speed is the most valuable characteristic, even ifÁüêÂMJ building the DFA may take significant time *and* space. (More concretely,Áü¸ÃNK building a DFA takes time and space that is exponential in the size of theÁü‡ÄNK pattern in the worst case.) As such, the processing of every byte of inputÁüÖÄNK is done with a small constant number of operations that does not vary withÁü¥ÅOL the pattern, its size or the size of the alphabet. If your needs don't lineÁüõÅOL up with this trade off, then a dense DFA may not be an adequate solution toÁŒÅÆ your problem.Áׯ�üÛÆ52 In contrast, a [`sparse::DFA`] makes the oppositeÁü‘ÇGD trade off: it uses less space but will execute a variable number ofÁüÙÇLI instructions per byte at match time, which makes it slower for matching.Áü¦ÈMJ (Note that space usage is still exponential in the size of the pattern inÁ¤ôÈ the worst case.)Á‰É�ü�É>; A DFA can be built using the default configuration via theÁüÌÉ0- [`DFA::new`] constructor. Otherwise, one canÁüýÉ>; configure various aspects via [`dense::Builder`](Builder).Á¼Ê�üÀÊA> A single DFA fundamentally supports the following operations:Á‚Ë�ä†Ë 1. Detection of a match.Áü£Ë&# 2. Location of the end of a match.ÁüÊËLI 3. In the case of a DFA with multiple patterns, which pattern matched isÁÄ—Ì reported as well.Á°Ì�ü´ÌLI A notable absence from the above list of capabilities is the location ofÁü�ÍIF the *start* of a match. In order to provide both the start and end ofÁüËÍIF a match, *two* DFAs are required. This functionality is provided by aÁü•Î(% [`Regex`](crate::dfa::regex::Regex).Á¾Î�¬ÂÎ # Type parametersÁØÎ�üÜÎNK A `DFA` has one type parameter, `T`, which is used to represent state IDs,Áü«ÏNK pattern IDs and accelerators. `T` is typically a `Vec` or a `&[u32]`.ÁúÏ�ÜþÏ # The `Automaton` traitÁšÐ�üžÐLI This type implements the [`Automaton`] trait, which means it can be usedÁüëÐ for searching. For example:Á‹Ñ�<�Ñãˆ-ü—ÑIó³0áÑ�üåÑ%˪1ü‹Ò)& let expected = HalfMatch::must(0, 8);ÁüµÒMJ assert_eq!(Some(expected), dfa.try_search_fwd(&Input::new("foo12345"))?);ÁüƒÓ.à�-<²Óãˆ-ÖÓ�‡‡ýë/ ÚÓöêb¢hA;²Ð–ˆ‰Š‹Œ�Ž�-/´“Õ“Õ††–쌰װ׆†æì”óÛóÛ††¨î„ÎÝ<Î݆†ð‡ŒÎá4Îᆆõæ´ŸãŸã††ó¯„ûæ<û憆‘µdÌç,Ì熆‚ït­�‘‘ýë/F…óëÚÓöê’†’jmtt¾& ¾&öêöêBÿ�ÃÓ� ’óëtÉ´¯�“�“�““¯“­²2 œüô‡üöÇ$"|ˆÈ�••ýë/ ˜È–ì ´gëö‚ÆO–—˜#%DËÌ,ËÌ””óë¤ÎÖ<ÎÖ””â°t±ß<±ß””RÈ�ššýë/ªËàTZ˜È–웆›ÅÇRR”' ”'–ì–ìBÿ™ZîÇ™ ›óëRü‡Ž )T™Ž ���ýë/ ¤Ž æìʞÑ'¥[➟ ¡¢£¤+-Då“ ,å“ œœóë|È• $È• œœš‰¼œ– Lœ– œœ³ílï– 4ï– œœÔÜ™ \Ü™ œœͶüÒ› +ÔÒ› œœ¨¨üÓ� )ÄÓ� œœ¨¨d:Ñ�¦¦ýë/(ËàTn¤Ž æì§†§DGd:d:®' ®'æìæìBÿ¥nÿ� ¥ §óëd:¬µ¥ -\¼¥ �©©ýë/ È¥ ¨î~U$FQCª«¬#%Lò© 4ò© ¨¨óëtÕ« \Õ« ¨¨ó딸¬ \¸¬ ¨¨caÔ�®®ýë/ªËàTvÈ¥ ¨î¯†¯ÅÇcaca¾' ¾'¨î¨îBÿ­v¦¥ ­ ¯óëca=bÕ�±±ýë/QõŒJwÈ¥ ¨î² g²mp=b=b¿'À'Á' ¿'¨î À'€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Á'ÏÁBÿ°w­¥ ° ²óë=bœ=b¼‚‘ 5,”‘ ‚ï‹â�—âæÈË´µ¶Ô¹’ LÄ’ ³³Ä©” <´” ³³üƒ– )ÄŽ– ³³•‹•‹•‹Ø‚؂﹆¹•‹•‹×' ×'‚ï‚ïBÿ¸„í� ¸ ¹•‹ …ô� Ù‚ïù‹Ú‚ï¼ g¼ù‹ù‹Ø'Ù'Ú' Ø'‚ï Ù'€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ú'ÏÁBÿ»†ú� » ¼ù‹œù‹ü¹É )9œËÉ �¾¾‰ñsZH.Ý^]¿ÀßÉ TéÉ éÉ ½½üùÉ -ùÉ ½½ƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ�³ä£–Þ�‰ñàgÃüþ£–£–é'ê'ë' é'‰ñ ê'€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ë'ÏÁBÿÁ�±É Á Ã�£–œ£–üÃÒ /:ÌÕÒ �ÅÅÚñøø˜ÝçèL¢ÆÇïÒ ôùÒ ,ùÒ Äĉñü�Ó 6�Ó Äij Řß�ÉÉÚñÊ gÊoqŘŘí'î'ï' í'Úñ î'€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ï'ÏÁBÿÈŽ»Ò È Ê�ŘœŘ¬ùà üÕÛ <9 An error that occurred during the construction of a DFA.Á’Ü �ü–Ü JG This error does not provide many introspection capabilities. There areÁüáÜ 1. generally only two things you can do with it:Á“Ý �ü—Ý GD * Obtain a human readable message via its `std::fmt::Display` impl.ÁüßÝ NK * Access an underlying [`nfa::thompson::BuildError`](thompson::BuildError)Áü®Þ OL type from its `source` method via the `std::error::Error` trait. This errorÁüþÞ KH only occurs when using convenience routines for building a DFA directlyÁÔÊß  from a pattern string.Áåß �üéß NK When the `std` feature is enabled, this implements the `std::error::Error`ÁT¸à ëÔNÓ‘í,¬Éà ìÃà ;T„á ¬ò 3’±]ù»E̤•á $•á ËËìò5›à¬òΆÎ5›5›ñ' ñ'¬ò¬òBÿÍ�êà Í Î5›¶›á¬òРgж›¶›ò'ó'ô' ò'¬ò ó'€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ô'ÏÁBÿÏ�ñà Ï Ð¶›œ¶›œ®ø Ó‘í,¬þ÷ ìø÷ >` when the `alloc` feature is enabled. For mostÁüýIÍF in-memory work loads, this is the most convenient type that gives theÁüËE"B best search performance. When the `alloc` feature is disabled, noÁÌ•r default type is used.Á³–�커 # When should I use this?ÁÝÌ�üåIÛF Generally speaking, if you can afford the overhead of building a fullÁü³H0E DFA for your regex, and you don't need things like capturing groups,Áü€I„F then this is a good choice if you're looking to optimize for matchingÁüÎJÙG speed. Note however that its speed may be worse than a general purposeÁü�K/H regex engine if you don't provide a [`dense::Config::prefilter`] to theÁœí… underlying DFA.Á…£�Œ�± # Sparse DFAsÁ£Í�ü«FÜC Since a `Regex` is generic over the [`Automaton`] trait, it can beÁüöH. E used with any kind of DFA. While this crate constructs dense DFAs byÁüÃK‚ H default, it is easy enough to build corresponding sparse DFAs, and thenÁä“ Ø  build a regex from them:Á´ ÿ �<¼  ãˆ-üÈ * “¼3÷ , �üÿ 1; . // First, build a regex that uses dense DFAs.Áüµ!,x ) let dense_re = Regex::new("foo[0-9]+")?;Áæ!¯ �üî!I¾ F // Second, build sparse DFAs from the forward and reverse dense DFAs.Áü¼". + let fwd = dense_re.forward().to_sparse()?;Áüï".M + let rev = dense_re.reverse().to_sparse()?;Á¢#† �üª#A• > // Third, build a new regex from the constituent sparse DFAs.Áüð#?â < let sparse_re = Regex::builder().build_from_dfas(fwd, rev);Á´$, �ü¼$K; H // A regex that uses sparse DFAs can be used just like with dense DFAs.ÁüŒ%4’ 1 assert_eq!(true, sparse_re.is_match(b"foo123"));ÁÅ%Ñ �üÍ%.à à�-<€&ï ãˆ-Œ&þ �ü”&F C Alternatively, one can use a [`Builder`] to construct a sparse DFAÁüß&G_ D more succinctly. (Note though that dense DFAs are still constructedÁü«'J² G first internally, and then converted to sparse DFAs, as in the exampleÁ\ú' above.)ÁŠ(�<’(+ãˆ-üž(*;“¼3Í(J�üÕ(AY> let sparse_re = Regex::builder().build_sparse(r"foo[0-9]+")?;Áü›)K¦סUüë)+¶( assert!(sparse_re.is_match(b"foo123"));Á›*ì�ü£*.ûà�-<Ö* ãˆ-â*�Œê*' # FallibilityÁ€+C�üˆ+JRG Most of the search routines defined on this type will _panic_ when theÁü×+J¨G underlying search fails. This might be because the DFA gave up becauseÁü¦,FþC it saw a quit byte, whether configured explicitly or via heuristicÁüñ,KPH Unicode word boundary support, although neither are enabled by default.ÁüÁ-G§D Or it might fail because an invalid `Input` configuration is given,Áü�.7ú4 for example, with an unsupported [`Anchored`] mode.ÁÉ.<�üÑ.GKD If you need to handle these error cases instead of allowing them toÁü�/HžE trigger a panic, then the lower level [`Regex::try_search`] providesÁüê/%ò" a fallible API that never panics.Á”0"�lœ00Áˆ-®0?�ü¶0FNо.ü�1J^G `\n` byte, and handle the error returned. This could be useful if, forÁüÐ1H´E example, you wanted to prevent a user supplied pattern from matchingÁÜ�2 across a line boundary.Á½2-�<Å2;ãˆ-üÑ2=K·³-ü“3G[D use regex_automata::{dfa::{self, regex::Regex}, Input, MatchError};Áß3­�ìç3»ù¬3ü‰4;Ë8 .dense(dfa::dense::Config::new().quit(b'\n', true))ÁüÉ4#×Á.ñ4!�üù4'0$ let input = Input::new("foo\nbar");Áü¥5HcÆÂ.üò5Gs™Ã.ü¾6=ƒëÃ.ü€7.“³Ä.ü³71£. let got = re.try_search(&input).unwrap_err();Áôé7ߤ¡.Œ8î�ü”8.ýà�-<Ç8 ãˆ-Ó«ˆ¡� È¡‡ ë(¡È ýçç´²3˜¡Î Çô½Á¸ûANˆ`èé"¡Î €†P¡ñ 8¡ñ ùææ�õP¡‰ 8¡‰ ùææ�õ#¦ìýëë´²3v…�õ¢Î Çôì†ì™›#¦#¦ÿ' ÿ'ÇôÇôBÿê¢Ü8ê ì�õ#¦ã¦íýîî´²3%Ÿg�õ£Î Çôï gïILã¦ã¦€(�(‚( €(Çô �(€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‚(ÏÁBÿí£ã8í ï�õ㦜ã¦üȸ!ü¼³JG An iterator over all non-overlapping matches for an infallible search.Á‡´�ü‹´OL The iterator yields a [`Match`] value until no more matches could be found.ÁüÛ´IF If the underlying regex engine returns an error, then a panic occurs.Á¥µ�ü©µ'ήIѵ�üÕµGD * `A` represents the type of the underlying DFA that implements theÁÄ�¶ [`Automaton`] trait.Á¶¶�üº¶+( The lifetime parameters are as follows:Áæ¶�üê¶B? * `'h` represents the lifetime of the haystack being searched.Áü­·>; * `'r` represents the lifetime of the regex object itself.Áì·�üð·FC This iterator can be created with the [`Regex::find_iter`] method.ÁH\Ó¸¢3ñÞ2òýóòñóŠë3 ç¸áõ¢3„ð¸™õgbò+môõ߸ã¸?A<ð¸ùðð ¢3×— ´†¹†¹ùððÖÖœ¼Ø¬—®Ù½¼®PM 5ü2¬ÎÞ2Ëï¢3÷Þ2øýù÷ùøŠë3 Ÿgáõ©ç¸™õú gúýÿúü69ËË’(“(”( ’(™õ “(€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡”(ÏÁBÿö©À¸ö ú¢3Þ2áõ˜˔ÝÔü »C@ A builder for a regex based on deterministic finite automatons.Áä»�üè»MJ This builder permits configuring options for the syntax of a pattern, theÁü¶¼JG NFA construction, the DFA construction and finally the regex searchingÁü�½MJ itself. This builder is different from a general purpose regex builder inÁüϽMJ that it permits fine grain configuration of the construction process. TheÁü�¾FC trade off for this is complexity, and the possibility of setting aÁüä¾GD configuration that might not make sense. For example, there are twoÁÔ¬¿ different UTF-8 modes:ÁÇ¿�üË¿JG * [`syntax::Config::utf8`](crate::util::syntax::Config::utf8) controlsÁü–ÀMJ whether the pattern itself can contain sub-expressions that match invalidÁTäÀßÇ>üïÀMJ * [`thompson::Config::utf8`](crate::nfa::thompson::Config::utf8) controlsÁü½ÁKH how the regex iterators themselves advance the starting position of theÁü‰Â74 next search when a match with zero length is found.ÁÁÂ�üÅÂJG Generally speaking, callers will want to either enable all of these orÁÌ�à disable all of these.ÁªÃ�ü®ÃIF Internally, building a regex requires building two DFAs, where one isÁüøÃKH responsible for finding the end of a match and the other is responsibleÁüÄÄHE for finding the start of a match. If you only need to detect whetherÁü�ÅHE something matched, or only the end of a match, then you should use aÁüÖÅGD [`dense::Builder`] to construct a single DFA, which is cheaper thanÁ´žÆ building two DFAs.ÁµÆ�œ¹Æ # Build methodsÁÍÆ�üÑÆJG This builder has a few "build" methods. In general, it's the result ofÁüœÇ'$ combining the following parameters:ÁÄÇ�üÈÇ# * Building one or many regexes.ÁüìÇ1. * Building a regex with dense or sparse DFAs.ÁžÈ�ü¢ÈJG The simplest "build" method is [`Builder::build`]. It accepts a singleÁüíÈIF pattern and builds a dense DFA using `usize` for the state identifierÁœ·É representation.ÁËÉ�üÏÉMJ The most general "build" method is [`Builder::build_many`], which permitsÁü�ÊMJ building a regex that searches for multiple patterns simultaneously whileÁüëÊ52 using a specific state identifier representation.Á¡Ë�ü¥Ë<9 The most flexible "build" method, but hardest to use, isÁüâËKH [`Builder::build_from_dfas`]. This exposes the fact that a [`Regex`] isÁü®ÌIF just a pair of DFAs, and this method allows you to specify those DFAsÁdøÌ exactly.Á…Í�l‰ÍÁˆ-—Í�ü›ÍLI This example shows how to disable UTF-8 mode in the syntax and the regexÁüèÍLI itself. This is generally what you want for matching on arbitrary bytes.ÁµÎ�<¹Îãˆ-üÁÎ=·³-ÌÿÎóˆ-ü™Ï>™¬34ØÏŸŠ-ßÏ�ìãÏù¬3ü�Ð2 ­3ü´Ð6Ü­3üëÐ&œ®3ü’Ñ4Ì®3üÇÑ.Н3üöÑ ¯3ô—Ò¤¡.ü¶Ò63 // Notice that `(?-u:[^b])` matches invalid UTF-8,ÁüíÒ85 // but the subsequent `.*` does not! Disabling UTF-8Áü¦Ó" // on the syntax permits this.ÁüÉÓ@= assert_eq!(b"foo\xFFarzz", &haystack[got.unwrap().range()]);ÁŠÔ�üŽÔ.à�-<½Ôãˆ-I<èÔùõÎÙBN‘ð¯üœ˜ÕÓ‘í,¬üÔìöÔ˜Õùûû êÐðùõþ†þÐЖ( –(ùõùõBÿýªÎÔý þЃÐñùõ€ g€ƒÐƒÐ—(˜(™( —(ùõ ˜(€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡™(ÏÁBÿÿ«ÕÔÿ €ƒÐœƒÐŒÚü¸MJ A sparse deterministic finite automaton (DFA) with variable sized states.Á†�üŠKH In contrast to a [dense::DFA], a sparse DFA uses a more space efficientÁüÖNK representation for its transitions. Consequently, sparse DFAs may use muchÁü¥JG less memory than dense DFAs, but this comes at a price. In particular,ÁüðEB reading the more space efficient transitions takes more work, andÁü¶OL consequently, searching using a sparse DFA is typically slower than a denseÁD† DFA.Á��ü“EB A sparse DFA can be built using the default configuration via theÁüÙOL [`DFA::new`] constructor. Otherwise, one can configure various aspects of aÁü©NK dense DFA via [`dense::Builder`], and then convert a dense DFA to a sparseÁüø(% DFA using [`dense::DFA::to_sparse`].Á¡�ü¥OL In general, a sparse DFA supports all the same search operations as a denseÁDõ¤åUþ�ü‚MJ Making the choice between a dense and sparse DFA depends on your specificÁüÐLI work load. If you can sacrifice a bit of search time performance, then aÁü�MJ sparse DFA might be the best choice. In particular, while sparse DFAs areÁüëMJ probably always slower than dense DFAs, you may find that they are easilyÁü¹" fast enough for your purposes!ÁÜ�¬àÛ×Tö�üúMJ A `DFA` has one type parameter, `T`, which is used to represent the partsÁüÈ?< of a sparse DFA. `T` is typically a `Vec` or a `&[u8]`.Áˆ�ÜŒÆÙT¨�ü¬LùÙTüùÐÚT™�<�ãˆ-ü¥J‡Î4ð�üô%˪1üš/æ©0üÊGú¸0ü’.à�-<Áãˆ-Jå�‚‚ýë/ éÅöÚð5\Yt¬iƒ„…†‡ˆ(*”ƒ$ƒ$Â��Ò÷Œ›$›$Â��±ø„²$<²$Â��ð‡´È$È$Â��ó¯„ä$<ä$Â��‘µdú$,ú$Â��‚ï�åò�ŠŠýë/ËàT¬éÅö‹†‹ �å�å¦( ¦(ÅöÅöBÿ‰¬Ò‰ ‹óë�嬶ƒ\\½ƒÂ���ýë/ ɃÒ÷ñ¼8+åíÕ�Ž��‘%'L„ˆ4„ˆÂŒŒóë¤Þ–<Þ–ÂŒŒâ°„™™L™™ÂŒŒ”þ™\þ™ÂŒŒ|ƒ�““ýë/ÌËàTÐɃÒ÷”†”èê||Ô( Ô(Ò÷Ò÷Bÿ’Юƒ’ ”óë|¤É§]TЧÂ�––ýë/ Û§±ø{ü9TäkÉ —˜™š›œ�+-D”®,”®Â••óë|÷¯$÷¯Â••š‰¼Ë°L˰••³ílž±4ž±Â••Ô‹´\‹´Â••Ͷü�¶+Ô�¶Â••¨¨ü‚¸)Ä‚¸Â••¨¨Ö¯„�ŸŸýë//ËàTÑÛ§±ø † LOÖ¯Ö¯å( å(±ø±øBÿžÑÁ§ž  óëÖ¯„˜°`,Ÿ°Â�¢¢áúi…,Cw6£¤¥¦§¨©¥°\հհ¡¡³ät”±D”±Â¡¡lÙ±4ٱ¡¡´¤³d¤³Â¡¡þÅ1t“µ$“µÂ¡¡þÅ1¬ö¶\ö¶Â¡¡þÅ1|¶¹,¶¹Â¡¡þÅ1A‡�««áú¬†¬AAÿ( ÿ(áúáúBÿª×�°ª ¬�A\†�g$��ÂòüÜV¬ãS9®ü¶�*Ó«Œž�̘�¶�­­ò©1�òü° g°11’)“)”) ’)òü “)€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡”)ÏÁBÿ¯ãþ€¯ °1œ1ÜÙ,l4ë,ý²²´²3 ò,¨ý >¼B�y³ L«/4«/¦±±�õg–ýµµ´²3k…¶Uôò,¨ý¶†¶†ˆggœ) œ)¨ý¨ýBÿ´ôÑ,´ ¶�õgüÖp*rTÝp¦�¸ý¹¸¹’�6 ìp£�6„ïp®þ�¬‡qíý°z'“Hhº»èp=?34‡q¦·· �ÌïD¢q ¢q¦·· 7œ�½ý¾½¾’�6·Ÿg®þ€ìp£�6Çíý¿ g¿©«äæ 7 7®)¯)°) ®)íý ¯)€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡°)ÏÁBÿ¼€Îp¼ ¿�®þ 7œ 7¼ôys,†zÆþòdÅÿFÅÊ“Á´˜},˜}¦ÀÀÂL¤}|<�ÆþĆÄ|<|<²) ²)ÆþÆþBÿÃ�ìyà Ä|<Ü¿­ü÷¥:7 Represents the current state of an overlapping search.Á²¦�ü¶¦KH This is used for overlapping searches since they need to know somethingÁü‚§OL about the previous search. For example, when multiple patterns match at theÁüÒ§OL same position, this state tracks the last reported pattern so that the nextÁü¢¨LI search knows whether to report another matching pattern or continue withÁüï¨MJ the search at the next position. Additionally, it also tracks which stateÁü½©'$ the last search call terminated in.Áå©�üé©JG This type provides little introspection capabilities. The only thing aÁü´ªNK caller can do is construct it and pass it around to permit search routinesÁüƒ«JG to use it to track state, and also ask whether a match has been found.ÁΫ�üÒ«?< Callers should always provide a fresh state constructed viaÁü’¬NK [`OverlappingState::start`] when starting a new search. Reusing state fromÁüá¬63 a previous search may result in incorrect results.Áx„Ê­šÿbNÜFndÄ'ÆÇÈÉÊü¥¯!°¯ÅÅõÚ ôÿ²гÅŨ¨¤ÈµÓµÅÅüÚ¸*„å¸ÅÅͶͽ<Á½ÅÅD}¢šÿ̆ÌD}D}•* •*šÿšÿBÿË‹¡­Ë ÌD}(~£šÿΠgÎ(~(~–*—*˜* –*šÿ —*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡˜*ÏÁBÿÍŒ¨­Í Î(~œ(~.�¤šÿÐÎÐ.�.�.�.�™* ™*šÿBÿÏ�¯­Ï Ð.�tƒ¥šÿtƒ¥šÿÓù±Ótƒtƒš*›* š*šÿ ›*šÿBÿÒŽ³­Ò Ótƒî tƒœùÈü×ÂHE An error that can occur when computing the start state for a search.Á Ã�ü¤ÃGD Computing a start state can fail for a few reasons, either based onÁüìÃIF incorrect configuration or even based on whether the look-behind byteÁü¶ÄKH triggers a quit state. Typically one does not need to handle this errorÁü‚ÅFC if you're using [`Automaton::start_state_forward`] (or its reverseÁüÉÅJG counterpart), as that routine automatically converts `StartError` to aÁÜ”Æ [`MatchError`] for you.Á°Æ�ü´ÆIF This error may be returned by the [`Automaton::start_state`] routine.ÁþÆ�ü‚ÇNK This error implements the `std::error::Error` trait when the `std` featureÁ|ÑÇ is enabled.ÁáÇ�üåÇJG This error is marked as non-exhaustive. New variants may be added in aÁô°È semver compatible release.Á:ŒÏÈyT‚ɱ€Œäg—q¡¹Õ×ÖØ$„Êü“ÉIF An error that occurs when a starting configuration's look-behind byteÁôáÉ is in this DFA's quit set.ÁyƒÔÔ±€D½Êü“Ê! The quit byte that was found.Á$½ÊÔÔœÂËüÒÊGD An error that occurs when the caller requests an anchored mode thatÁüžË isn't supported by the DFA.ÁyƒÔÔ±€t™ÌüàË0- The anchored mode given that is unsupported.Á$™ÌÔÔÅ‚G„¦±€Ú†ÚG„G„�* �*±€±€BÿÙ�êÈÙ ÚG„Û…§±€Ü gÜÛ…Û…ž*Ÿ* * ž*±€ Ÿ*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ *ÏÁBÿÛ�ñÈÛ ÜÛ…œÛ…Äùˆ4‹��ïøv>³>ÞßàᬘT˜ÅÝÝæƒl³$³ÅÝÝ‘µìÆtÆÅÝÝͶüé%´éÅÝÝͶ/£¶��ã†ã/£/£¬* ¬*����Bÿâ­êâ ã/£¤·��å g夤­*®*¯* ­*�� ®*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¯*ÏÁBÿä®ñä 夜¤Œê&‹4ñ&Å�çç‚‚»7x~kqüèéêëìíîïðø&tÀ'4À'Åææ��´�(�(Åææ �²Ÿä½(½(ÅææÛÂ;Ô¡7t¡7Åææ¶Ï|—9,—9ÅææœÐÌÞ;”Þ;ÅææœÜ=<Ü=Åææ¬‡œã>,ã>ÅææìÜ ü¥B(¬¥BÅææÉ÷�¦¸�òò‚‚ó gó69�¦�¦·*¸*¹* ·*‚‚ ¸*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¹*ÏÁBÿñ±â&ñ ó��¦œ�¦|ù‘D€øƒ„§ÆÎÂÿ^§õô��øôôÍÝý®ºƒ„÷†÷ý®ý®È* È*ƒ„ƒ„Bÿö¹Êö ÷ý®¯»ƒ„ù gù¯¯É*Ê*Ë* É*ƒ„ Ê*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ë*ÏÁBÿøºÑø ù¯œ¯ð¼ƒ„ûÎûððððÌ* Ì*ƒ„Bÿú»Øú ûðo±½ƒ„o±½ƒ„þù±þo±o±Í*Î* Í*ƒ„ Î*ƒ„Bÿý¼Üý þo±î o±Ô±¾ƒ„€±²€Ô±Ô±Ï*Ð* Ï*ƒ„ Ð*ƒ„–æBÿÿ½çÿ €Ô±î Ô±œ³¿ƒ„‚³œ³Ñ*Ò* Ñ*ƒ„ Ò*ƒ„�åBÿ�¾ó� ‚œ³î œ³Ô´™DÆ ‡…Ú-C–¬„…Œô ô ²ƒƒìÜ œÅ!4Å!²ƒƒÊ…´Á‡…‡ g‡´´ì*í*î* ì*‡… í*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡î*ÏÁBÿ†Ç¬† ‡´œ´”¬=š\³=²Ê…tæùe¸’‚†‰tŽ?<Ž?²ˆˆ¦µÂÊ…‹ g‹¦µ¦µó*ô*õ* ó*Ê… ô*€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡õ*ÏÁBÿŠÈ¤=Š ‹¦µœ¦µÌÆ@¥<Ø@ð‡›ŒT' �Ž��‘’“”¼úA…BŒŒ³äÜÒC<ÝCŒŒ³äì¤DL¯DŒŒ³äì÷DL‚EŒŒ³äìÑELÜEŒŒ³äìªFLµFŒŒ³äìþFL‰GŒŒ³äìÑGLÜGŒŒ³äžQžQžQÇð‡žQÇð‡—†—žQžQ©+ ©+ð‡ð‡Bÿ–Ù±@– —žQ Ú¸@Èð‡RÉð‡š gšRRª+«+¬+ ª+ð‡ «+€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¬+ÏÁBÿ™Û¾@™ šRœR”‘ücEB The kind of anchored starting configurations to support in a DFA.Á©�ü­MJ Fully compiled DFAs need to be explicitly configured as to which anchoredÁüûJG starting configurations to support. The reason for not just supportingÁüÆIF everything unconditionally is that it can use more resources (such asÁü�NK memory and build time). The downside of this is that if you try to executeÁüßNK a search using an [`Anchored`](crate::Anchored) mode that is not supportedÁü®52 by the DFA, then the search will return an error.Á½Lšš‰­YÎÎþžúœ�žŸ ¡�Ÿ¡$áüª2/ Support both anchored and unanchored searches.Á½C››š‰WY››š‰TèüëHE Support only unanchored searches. Requesting an anchored search willÁT¸ͽ.Ç�üÏKH Note that even if an unanchored search is requested, the pattern itselfÁüŸKH may still be anchored. For example, `^abc` will only match `abc` at theÁüïHE start of a haystack. This will remain true, even if the regex engineÁü¼'$ only supported unanchored searches.Á½Ÿ››š‰´·››š‰DÔ üøHE Support only anchored searches. Requesting an unanchored search willÁTÅ ͽ.½f››š‰z|››š‰ÀvÀvÀvÌš‰ÀvÌš‰¤†¤ÀvÀvÁ+ Á+š‰š‰Bÿ£õí£ ¤Àv öôÍš‰wΚ‰§ g§wwÂ+Ã+Ä+ Â+š‰ Ã+€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ä+ÏÁBÿ¦÷ú¦ §wœw]xÏš‰©Î©]x]x]x]xÅ+ Å+š‰Bÿ¨ø�¨ ©]x–xК‰–xК‰¬ù±¬–x–xÆ+Ç+ Æ+š‰ Ç+š‰Bÿ«ù…« ¬–xî –xTºÀ,¿·²Š=,Ïü3Æû®°²´·»¿ÁÃÄů±³µ¶¸¹º¼½¾ÀÂÄ  Æ,Ú À·­­²Šl« $« ·­­³äLÁ À·­­²ŠŒÍ ,Í ·­­ó¥4¬À·­­²Šäµ\µ·­­˜þ$²À·­­²ŠT¹$¹·­­¨ËlÅ$Å·­­³ädÙÀ·­­²Š¬±T±·­­‹ã¼«\«·­­ÈÞl�$�·­­³äT¤À·­­²Š¬úTú·­­‹ã¼ô!\ô!·­­ÈÞlÖ"$Ö"·­­³ä,µ$À·­­²ŠĽ$T½$·­­ìÜ d‘,À·­­²ŠÄ ,T ,·­­ìÜ $Ñ.À·­­²Š·­­²Š,ª2À·­­²Š¬²2T²2·­­‹ã|ѲŠÈ†È||Î+ Î+²Š²ŠBÿÇüœÇ È|1„Ò²ŠÊ gÊ1„1„Ï+Ð+Ñ+ Ï+²Š Ð+€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ñ+ÏÁBÿÉý£É Ê1„œ1„�Ó²ŠÌÎÌ����Ò+ Ò+²ŠBÿËþªË Ì��Ô²Š�Ô²ŠÏù±Ï��Ó+Ô+ Ó+²Š Ô+²ŠBÿÎÿ®Î Ï�î �”ÒsüŒ=63 An abstraction for building Thompson NFAs by hand.ÁÃ=�üÇ=NK A builder is what a [`thompson::Compiler`](crate::nfa::thompson::Compiler)Áü–>B? uses internally to translate a regex's high-level intermediateÁüÙ># representation into an [`NFA`].Áý>�ü�?IF The primary function of this builder is to abstract away the internalÁüË?KH representation of an NFA and make it difficult to produce NFAs are thatÁü—@KH internally invalid or inconsistent. This builder also provides a way toÁüã@HE add "empty" states (which can be thought of as unconditional epsilonÁü¬ALI transitions), despite the fact that [`thompson::State`](nfa::State) doesÁüùAKH not have any "empty" representation. The advantage of "empty" states isÁüÅBNK that they make the code for constructing a Thompson NFA logically simpler.Á”C�ü˜CNK Many of the routines on this builder may panic or return errors. GenerallyÁüçCNK speaking, panics occur when an invalid sequence of method calls were made,Áü¶DOL where as an error occurs if things get too big. (Where "too big" might meanÁü†ENK exhausting identifier space or using up too much heap memory in accordanceÁüÕEA> with the configured [`size_limit`](Builder::set_size_limit).)Á—F�t›F # OverviewÁªF�ü®F ## Adding multiple patternsÁÎF�üÒFA> Each pattern you add to an NFA should correspond to a pair ofÁü”GJG [`Builder::start_pattern`] and [`Builder::finish_pattern`] calls, withÁüßGKH calls inbetween that add NFA states for that pattern. NFA states may beÁü«HMJ added without first calling `start_pattern`, with the exception of addingÁ¬ùH capturing states.Á�I�Ä“I ## Adding NFA statesÁ¬I�ü°IMJ Here is a very brief overview of each of the methods that add NFA states.ÁüþI%" Every method adds a single state.Á¤J�ü¨JB? * [`add_empty`](Builder::add_empty): Add a state with a singleÁüëJ63 unconditional epsilon transition to another state.Áü¢KHE * [`add_union`](Builder::add_union): Adds a state with unconditionalÁüëKGD epsilon transitions to two or more states, with earlier transitionsÁô³L preferred over later ones.ÁüÒLJG * [`add_union_reverse`](Builder::add_union_reverse): Adds a state withÁü�MGD unconditional epsilon transitions to two or more states, with laterÁüåM,) transitions preferred over earlier ones.Áü’NNK * [`add_range`](Builder::add_range): Adds a state with a single transitionÁüáNKH to another state that can only be followed if the current input byte isÁÜ­O within the range given.ÁüÉOHE * [`add_sparse`](Builder::add_sparse): Adds a state with two or moreÁü’PJG range transitions to other states, where a transition is only followedÁüÝPJG if the current input byte is within one of the ranges. All transitionsÁü¨QKH in this state have equal priority, and the corresponding ranges must beÁ¤ôQ non-overlapping.Áü‰ROL * [`add_look`](Builder::add_look): Adds a state with a single *conditional*ÁüÙRIF epsilon transition to another state, where the condition depends on aÁü£S! limited look-around property.ÁüÅSJG * [`add_capture_start`](Builder::add_capture_start): Adds a state withÁü�THE a single unconditional epsilon transition that also instructs an NFAÁüÙTMJ simulation to record the current input position to a specific location inÁü§UNK memory. This is intended to represent the starting location of a capturingÁTöU group.Áü�VFC * [`add_capture_end`](Builder::add_capture_end): Adds a state withÁüÈVH”õVü‘WMæõVüßWLI memory. This is intended to represent the ending location of a capturingÁT¬X”÷Vü·XMJ * [`add_fail`](Builder::add_fail): Adds a state that never transitions toÁ”…Y another state.Áü˜YOL * [`add_match`](Builder::add_match): Add a state that indicates a match hasÁüèYLI been found for a particular pattern. A match state is a final state withÁäµZ no outgoing transitions.ÁÒZ�üÖZ-* ## Setting transitions between NFA statesÁ„[�üˆ[LI The [`Builder::patch`] method creates a transition from one state to theÁüÕ[KH next. If the `from` state corresponds to a state that supports multipleÁü¡\LI outgoing transitions (such as "union"), then this adds the correspondingÁüî\NK transition. Otherwise, it sets the single transition. (This routine panicsÁü½]OL if `from` corresponds to a state added by `add_sparse`, since sparse statesÁü�^$! need more specialized handling.)Á²^�l¶^Áˆ-Ä^�üÈ^IF This annotated example shows how to hand construct the regex `[a-z]+`Áü’_# (without an unanchored prefix).Á¶_�<º_ãˆ-ÌÂ_óˆ-üÜ_=éÐ=üš`"­Ç=t½` �A4Ì`ŸŠ-Ó`�ü×`%±È=üý`LI // Before adding NFA states for our pattern, we need to tell the builderÁüÊa(% // that we are starting the pattern.ÁìóaàÈ=ü‘bMJ // Since we use the Pike VM below for searching, we need to add capturingÁüßbOL // states. If you're just going to build a DFA from the NFA, then capturingÁü¯c&# // states do not need to be added.ÁüÖcCÅÉ=üšd.+ let range = builder.add_range(Transition {ÁüÉdNK // We don't know the state ID of the 'next' state yet, so we just fillÁü˜e# // in a dummy 'ZERO' value.Áü¼e4 Ü=Dñe¿Ö=üúeOL // This state will point back to 'range', but also enable us to move ahead.ÁüÊfOL // That is, this implements the '+' repetition operator. We add 'range' andÁüšg,) // then 'end' below to this alternation.ÁüÇg)œØ=üñgJG // The final state before the match state, which serves to capture theÁü¼h! // end location of the match.ÁüÞh96 let end = builder.add_capture_end(StateID::ZERO, 0)?;Áü˜i'$ // The match state for our pattern.ÁüÀi# let mat = builder.add_match()?;Áüäi52 // Now we fill in the transitions between states.Áüšj! builder.patch(start, range)?;Áü¼j builder.patch(range, alt)?;ÁüÜjGD // If we added 'end' before 'range', then we'd implement non-greedyÁä¤k // matching, i.e., '+?'.ÁüÁk builder.patch(alt, range)?;Áìák builder.patch(alt, end)?;Áìÿk builder.patch(end, mat)?;Áü�lNK // We must explicitly finish pattern and provide the starting state ID forÁüìl // this particular pattern.ÁüŒm#ØÍ=ü°mMJ // Finally, when we build the NFA, we provide the anchored and unanchoredÁüþmKH // starting state IDs. Since we didn't bother with an unanchored prefixÁüÊnOL // here, we only support anchored searching. Thus, both starting states areÁ„šo // the same.Áü«o+( let nfa = builder.build(start, start)?;Á×o�üÛoMJ // Now build a Pike VM from our NFA, and use it for searching. This showsÁü©pHE // how we can use a regex engine without ever worrying about syntax!Áüòp(„Ò?ü›q&“�?üÂq(ÆÒ?üëq.+ let expected = Some(Match::must(0, 0..3));Áüšr/, re.captures(&mut cache, "foo0", &mut caps);ÁüÊr+ïÓ?ör�üúr.à�-<©sãˆ-Á<Ýs³�u~¾‚Ž?“ ÑÒÓÔÕÖרÙì´uT´u·ÐÐ�Ç”‡x4‡x·ÐЂÈÜêzlêz·ÐÐìÜ üÆ~$DÆ~·Ðеɤ‹�l‹�·ÐÐTÌ‚$Ì‚·ÐÐlšƒ<šƒ·ÐÐÌäƒd䃷ÐеÐÌÃ…TÃ…·ÐÐͶL¦Õ³�Û†ÛL¦L¦×+ ×+³�³�BÿÚ€ºsÚ ÛL¦¨Ö³�Ý gݨ¨Ø+Ù+Ú+ Ø+³� Ù+€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ú+ÏÁBÿÜ�ÁsÜ Ý¨œ¨‰¯×³�ß÷߉¯‰¯³�BÿÞÞ ßŒõ üœ7 4 The configuration used for a Thompson NFA compiler.ÁË4€ àŽ“ÙSëªÐkáâãäåæ”� $� ñàà°®¬¥ <¥ ñàà°®üÀ% tÀ ñààˆ¶¤ë 4ë ñàà°®ü…% t… ñààµäü°! d° ñàà·å¦²ààŽè†è¦²¦²÷+ ÷+àŽàŽBÿç—Ý ç 覲·³áàŽê gê·³·³ø+ù+ú+ ø+àŽ ù+€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ú+ÏÁBÿé˜ä é ê·³œ·³Y¹âàŽì÷ìY¹Y¹àŽBÿëë ì´—¡ ü±ž- * A configuration indicating which kinds ofÁüßžO L [`State::Capture`](crate::nfa::thompson::State::Capture) states to include.Á¯Ÿ �ü³ŸM J This configuration can be used with [`Config::which_captures`] to controlÁü� : 7 which capture states are compiled into a Thompson NFA.Á¼  �üÀ 8 5 The default configuration is [`WhichCaptures::All`].ÁÌl ¡ è�‡3¹æŒ÷ŒîïðñòóïñóÆ¢ ü´¡J G All capture states, including those corresponding to both implicit andÁüƒ¢> ; explicit capture groups, are included in the Thompson NFA.Á̦ííè�º¼ííè�Dè¦ üÏ¢D A Only capture states corresponding to implicit capture groups areÁü˜£H E included. Implicit capture groups appear in every pattern implicitlyÁüå£5 2 and correspond to the overall match of a pattern.ÁŸ¤ �ü§¤C @ This is useful when one only cares about the overall match of aÁüï¤F C pattern. By excluding capture states from explicit capture groups,Áüº¥I F one might be able to reduce the memory usage of a multi-pattern regexÁüˆ¦K H substantially if it was otherwise written to have many explicit captureÁ\ئ  groups.ÁÌUííè�jmííè�$•² üö¦9 6 No capture states are compiled into the Thompson NFA.Á´§ �ü¼§J G This is useful when capture states are either not needed (for example,Áü‹¨J G if one is only trying to build a DFA) or if they aren't supported (forÁäÚ¨  example, a reverse NFA).Áû¨ �lƒ© # WarningÁ•© �ü�©7 4 Callers must be exceedingly careful when using thisÁüÙ©8 5 option. In particular, not all regex engines supportÁü–ª> ; reporting match spans when using this option (for example,ÁüÙª7 4 [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) orÁü•«Q N [`BoundedBacktracker`](crate::nfa::thompson::backtrack::BoundedBacktracker)).Áë« �üó«< 9 Perhaps more confusingly, using this option with such anÁü´¬? < engine means that an `is_match` routine could report `true`Áüø¬? < when `find` reports `None`. This is generally not somethingÁü¼­? < that _should_ happen, but the low level control provided byÁü€®!  this crate makes it possible.Á¦® �ü®®K H Similarly, any regex engines (like [`meta::Regex`](crate::meta::Regex))Áüþ®H E should always return `None` from `find` routines when this option isÁü˯E B used, even if _some_ of its internal engines could find the matchÁü•°E B boundaries. This is because inputs from user data could influenceÁüß°I F engine selection, and thus influence whether a match is found or not.Áü­±I F Indeed, `meta::Regex::find` will always return `None` when configuredÁ¬û±  with this option.ÁÌAííè�VYííè�ºººãè�ºãè�ö†öºº„, „,è�è�Bÿõš‚¡ õ öº ›‰¡ äè�rºåè�ù gùrºrº…,†,‡, …,è� †,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‡,ÏÁBÿøœ�¡ ø ùrºœrºœÇÚ ü»ÅI F A builder for compiling an NFA from a regex's high-level intermediateÁÌ…Æ  representation (HIR).ÁŸÆ �ü£ÆL I This compiler provides a way to translate a parsed regex pattern into anÁüðÆO L NFA state graph. The NFA state graph can either be used directly to executeÁüÀÇN K a search (e.g., with a Pike VM), or it can be further used to build a DFA.Á�È �ü“ÈO L This compiler provides APIs both for compiling regex patterns directly fromÁüãÈ? < their concrete syntax, or via a [`regex_syntax::hir::Hir`].Á£É �ü§É@ = This compiler has various options that may be configured viaÁüèÉ!  [`thompson::Config`](Config).ÁŠÊ �üŽÊM J Note that a compiler is not the same as a [`thompson::Builder`](Builder).ÁüÜÊI F A `Builder` provides a lower level API that is uncoupled from a regexÁü¦ËL I pattern's concrete syntax or even its HIR. Instead, it permits stitchingÁüóË7 4 together an NFA by hand. See its docs for examples.Á«Ì �ü¯Ì/ , # Example: compilation from concrete syntaxÁßÌ �üãÌO L This shows how to compile an NFA from a pattern string while setting a sizeÁü³ÍO L limit on how big the NFA is allowed to be (in terms of bytes of heap used).ÁƒÎ �<‡Î ãˆ-Ì�Î óˆ-ü©Î- * nfa::thompson::{NFA, pikevm::PikeVM},Át×Î  �A4æÎ ŸŠ-íÎ �üñÎ; ãÐ?ü­ÏC ©Ñ?ñÏ �üõÏ( „Ò?üžÐ& “�?üÅÐ( ÆÒ?üîÐ. ùÒ?ü�Ñ2 ²Ó?üÐÑ+ ïÓ?üÑ �ü€Ò. à�-<¯Ò ãˆ-·Ò �ü»Ò# # Example: compilation from HIRÁßÒ �üãÒN K This shows how to hand assemble a regular expression via its HIR, and thenÁü²Ó$ ! compile an NFA directly from it.Á×Ó �<ÛÓ ãˆ-üãÓF …Ð?üªÔE ‘à?ðÔ �üôÔ; îà?ü°Õ) ´á?üÚÕ) èá?ü„Ö) œâ?ü®Ö) Ðâ?LØÖ ƒã?âÖ �üæÖ; ãÐ?ü¢×F ³ã?é× �üí×( „Ò?ü–Ø& “�?ü½Ø( ÆÒ?üæØ. ùÒ?ü•Ù2 ²Ó?üÈÙ+ ïÓ?ôÙ �üøÙ. à�-<§Ú ãˆ-ÎDÒÚ ã�´Æ;hûüýþÿ€¬¼Û 4¼Û ñúúµøtûÛ 4ûÛ ñúúàŽÌŒÝ <ŒÝ ñúúøùô‚ß T‚ß ñúúðúôñß Tñß ñúúéûü“á# \“á ñúúãüI¾æã�‚†‚I¾I¾Š, Š,ã�ã�Bÿ�ž¸Ú � ‚I¾·¿çã�„ g„·¿·¿‹,Œ,�, ‹,ã� Œ,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡�,ÏÁBÿƒŸ¿Ú ƒ „·¿œ·¿죔 Ö\µ” ä‘ô�ËÞJÕ͆‡ÌÇ” ,Ò” ……³ä¼æ” ñ” ……³ä¥ ¥ ¥ ëä‘¥ ë䑊†Š¥ ¥ É, É,ä‘ä‘Bÿ‰«Ž” ‰ Š¥  ¬•” ìä‘ íä‘� g�  Ê,Ë,Ì, Ê,ä‘ Ë,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ì,ÏÁBÿŒ­›” Œ � œ ¼¾ž ×dÅž ñ���Å’/Ðãia†Ý�‘’Òž ÄÜž <Üž ñŽŽݤ@Äúž ,úž ñŽŽç¤@|˜Ÿ 4˜Ÿ ñŽŽ³ä« î�””Å’• g•Ž�« « Í,Î,Ï, Í,Å’ Î,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ï,ÏÁBÿ“®¶ž “ •�« œ« „ÄŸ ØLËŸ ñ™“©YÚ�«å~—˜ÄÛŸ DÛŸ ñ––²›ÌùŸ TùŸ ñ––ÞŸÈš†šÈÈÐ, Ð,™“™“Bÿ™¯µŸ ™ šÈ�𙓜 gœ��Ñ,Ò,Ó, Ñ,™“ Ò,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ó,ÏÁBÿ›°¼Ÿ › œ�œ�|¯  ÙD¶  ñè“gÕ—ô¢ ÞŸ´Å  ,Å  ñ��˜þüá  $á  ñ��ü¥ìñè“¡†¡ììÔ, Ô,è“è“Bÿ ±     ¡ì°òè“£ g£°°Õ,Ö,×, Õ,è“ Ö,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡×,ÏÁBÿ¢²§  ¢ £°œ°Ìž¡ Ú”¥¡ ñµ”Ù‹^„ ø¥¦L¾¡ ,¾¡ ñ¤¤<Í¡ Í¡ ñ¤¤™óµ”¨†¨™™Ø, Ø,µ”µ”Bÿ§³�¡ § ¨™.ôµ”ª gª..Ù,Ú,Û, Ù,µ” Ú,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Û,ÏÁBÿ©´–¡ © ª.œ.¬êüQIF An error that can occurred during the construction of a thompson NFA.Á›�üŸJ¼øTüê1‘ùTœ�ü GÚùTüèIF * Access an underlying [`regex_syntax::Error`] type from its `source`Áü²OL method via the `std::error::Error` trait. This error only occurs when usingÁü‚LI convenience routines for building an NFA directly from a pattern string.ÁÏ�üÓIF Otherwise, errors typically occur when a limit has been breached. ForÁü�JG example, if the total heap usage of the compiled NFA exceeds the limitÁüèIF set by [`Config::nfa_size_limit`](crate::nfa::thompson::Config), thenÁü² building the NFA will fail.ÁãTõ‚•P…ÌݵeŬ¤†$†û ««Õõ‚•®†®é, é,‚•‚•Bÿ­ÁÛ­ ®ƒö‚•° g°ƒƒê,ë,ì, ê,‚• ë,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ì,ÏÁBÿ¯Â⯠°ƒœƒœ†ät‹û ÕÙ½¤ãѬ>²³µ¶¸¹»¾ÁÃÅÆ³´È�ÕBÿ¶·ì¼ÕBÿ¹º‚ÑÕBÿ¼½¿ÀÂÄÆ–u ÓΔð Ôê ä–u û ±± ³–u –u û È�ÕBÿ±±”íWœ� û ±±È�æu äæu û ±± ¶æu æu û ì¼ÕBÿ±±‹îWÄÚ û ±±ì¼6v ä6v û ±± ¹6v 6v û ‚ÑÕBÿ±±‚ïWô¿û ±±‚Ñ|¾äû ±±Õd›,›û ±±dâ,âû ±±lÊäû ±±ÕdÂ,Âû ±±d‡,‡û ±±Œûäû ±±ÕdÃ,Ãû ±±œŸäû ±±ÕTë,ëû ±±œÝÓΔÄÔ¾äû ±±Õ02û ±±Õ°÷ÕȆȰ°í, í,ÕÕBÿÇÃ÷Ç È°—øÕÊ gÊ——î,ï,ð, î,Õ ï,€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ð,ÏÁBÿÉÄþÉ Ê—œ—ìù! í\‹" ê—¥b.ßZÌÍ”›$ 4›$ ‘ ËË¥ÎL¡% ¡% ‘ ËË/'�ê—φÏ/'/'÷, ÷,ê—ê—BÿÎÕñ! Î Ï/'„…k õ,Œk ‘ �ÑѸ˜ó!ƒYÖ £òÒÓÔÕ’k ÜÔk 4Ôk ‘ ÐÐî™üÐm. \Ðm ‘ ÐÐ�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ�Κœøp ,øp ‘ ÐÐìÜ üÔr! 4Ôr ‘ ÐИþÐ'…�×׸˜Ø gØôöÐ'Ð'€-�-‚- €-¸˜ �-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‚-ÏÁBÿÖàýj Ö Ø�Ð'œÐ'dà ø,ʃ ‘ —™õÔ QU´ðäÚÛäÖƒ \Öƒ ‘ ÙÙÏ×Üøƒ 4øƒ ‘ ÙÙËØ8,†—™Ý†Ý8,8,ƒ- ƒ-—™—™BÿÜ㲃 Ü Ý8,L-‡—™ß÷ßL-L-—™BÿÞÞ ßÔ´š ý|»š ‘ �ááî™ÿ„‚�D›pâãäËš ìÕš \Õš ‘ ààƒÏ@üøš- 4øš ‘ àà�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ�†Ùü«› 4«› ‘ ààÂÏ@à-Œ�ææî™ç gçßáà-à-Œ-�-Ž- Œ-î™ �-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ž-ÏÁBÿåí¬š å ç�à-œà-Œ�Ÿ þT”Ÿ ‘ Κ )ÔiZÝ>éêD¥Ÿ $¥Ÿ ‘ èèl³Ÿ $³Ÿ ‘ èè³äœ0œ0œ0�Κœ0�Κí†íœ0œ0�- �-ΚΚBÿìîÿž ì íœ0  ŽΚÌŠ €t• ²›Ó¥è›ôŸ(ðñòd£# <£# » ïï|í# Dí# » ïïÔ€% €% » ïï¦ä2�²›ô†ô22”- ”-²›²›Bÿóòû ó ô2Æ2‘²›ö göÆ2Æ2•-–-—- •-²› –-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡—-ÏÁBÿõó‚ õ öÆ2œÆ2¼Ú% �„á% » Œœ£[?ÇS¯®øùúdÆ' <Æ' » ÷÷¤¨( ¨( » ÷÷˜þd¤) ¤) » ÷÷³äc5’Œœü†üc5c5˜- ˜-ŒœŒœBÿûôÂ% û üc566“Œœþ gþ6666™-š-›- ™-Œœ š-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡›-ÏÁBÿýõÉ% ý þ66œ66±8”Œœ€÷€±8±8ŒœBÿÿÿ €ÄÖ@ †lá@ ñœ_ÔFŠ$wRÄ‚ƒ„dÖB <ÖB » ��| C D C » ��̳D ³D » ��¨ô:•ñœ†††::¢- ¢-ñœñœBÿ…üÇ@ … †:Æ:–ñœˆ gˆÆ:Æ:£-¤-¥- £-ñœ ¤-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¥-ÏÁBÿ‡ýÎ@ ‡ ˆÆ:œÆ:ÄŽF ‡l™F Ë�‡Ô mÓ�Š‹ŒŒ­F $±F ‰‰³älÄF ,ÈF ‰‰\×F ÛF ‰‰N=—Ë�ކŽN=N=¦- ¦-Ë�Ë�Bÿ�þçE � ŽN=û=˜Ë�� g�û=û=§-¨-©- §-Ë� ¨-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡©-ÏÁBÿ�ÿîE � �û=œû=h@™Ë�’÷’h@h@Ë�Bÿ‘‘ ’ú@šË�”Δú@ú@ú@ú@ª- ª-Ë�Bÿ“�þE “ ”ú@JB›Ë�JB›Ë�—ù±—JBJB«-¬- «-Ë� ¬-Ë�Bÿ–‚‚F – —JBî JB´¢G ˆ|©G » Íž,ÝÕ~õÔO홚›d�I <�I » ˜˜”æI æI » ˜˜Ë�d½J ½J » ˜˜³äpCœÍž�†�pCpC­- ­-͞͞BÿœƒŠG œ �pCD�ÍžŸ gŸDD®-¯-°- ®-Íž ¯-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡°-ÏÁBÿž„‘G ž ŸDœDŽFžÍž¡÷¡ŽFŽFÍžBÿ   ¡†v ü¼F C A byte oriented Thompson non-deterministic finite automaton (NFA).Áƒ �ü‡O L A Thompson NFA is a finite state machine that permits unconditional epsilonÁü×I F transitions, but guarantees that there exists at most one non-epsilonÁü¡? < transition for each element in the alphabet for each state.Áá �üåG D An NFA may be used directly for searching, for analysis or to buildÁü­+ ( a deterministic finite automaton (DFA).ÁÙ �”Ý  # Cheap clonesÁð �üôH E Since an NFA is a core data type in this crate that many other regexÁü½M J engines are based on top of, it is convenient to give ownership of an NFAÁü‹ J G to said regex engines. Because of this, an NFA uses reference countingÁüÖ N K internally. Therefore, it is cheap to clone and it is encouraged to do so.Á¥ �”©  # CapabilitiesÁ¼ �üÀ & # Using an NFA for searching via theÁüç M J [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) provides the most amountÁüµ I F of "power" of any regex engine in this crate. Namely, it supports theÁÜÿ  following in all cases:Á› �äŸ ¿ÓTü¼ I F 2. Location of a match, including both the start and end offset, in aÁü†  single pass of the haystack.Áü§ - * 3. Location of matching capturing groups.ÁüÕ N K 4. Handles multiple patterns, including (1)-(3) when multiple patterns areÁd¤ present.Á± �´µ  # Capturing GroupsÁÌ �üÐO L Groups refer to parenthesized expressions inside a regex pattern. They lookÁü 1 . like this, where `exp` is an arbitrary regex:ÁÒ �üÖ+ ( * `(exp)` - An unnamed capturing group.Áü‚B ? * `(?Pexp)` or `(?exp)` - A named capturing group.ÁüÅ( % * `(?:exp)` - A non-capturing group.Áüî9 6 * `(?i:exp)` - A non-capturing group that sets flags.Á¨ �ü¬B ? Only the first two forms are said to be _capturing_. CapturingÁüïG D means that the last position at which they match is reportable. TheÁü·J G [`Captures`](crate::util::captures::Captures) type provides convenientÁü‚M J access to the match positions of capturing groups, which includes lookingÁüÐ& # up capturing groups by their name.Á÷ �œû  # Byte orientedÁ� �ü“J G This NFA is byte oriented, which means that all of its transitions areÁüÞL I defined on bytes. In other words, the alphabet of an NFA consists of theÁô«  256 different byte values.ÁÊ �üÎG D While DFAs nearly demand that they be byte oriented for performanceÁü–N K reasons, an NFA could conceivably be *Unicode codepoint* oriented. Indeed,ÁüåM J a previous version of this NFA supported both byte and codepoint orientedÁü³O L modes. A codepoint oriented mode can work because an NFA fundamentally usesÁüƒK H a sparse representation of transitions, which works well with the largeÁüÏ' $ sparse space of Unicode codepoints.Á÷ �üûJ G Nevertheless, this NFA is only byte oriented. This choice is primarilyÁüÆJ G driven by implementation simplicity, and also in part memory usage. InÁü‘I F practice, performance between the two is roughly comparable. However,ÁüÛM J building a DFA (including a hybrid DFA) really wants a byte oriented NFA.Áü©L I So if we do have a codepoint oriented NFA, then we also need to generateÁüöH E byte oriented NFA in order to build an hybrid NFA/DFA. Thus, by onlyÁü¿O L generating byte oriented NFAs, we can produce one less NFA. In other words,Áü�N K if we made our NFA codepoint oriented, we'd need to *also* make it supportÁüÞM J a byte oriented mode, which is more complicated. But a byte oriented modeÁܬ  can support everything.ÁÈ �ÜÌ  # Differences with DFAsÁè �üìM J At the theoretical level, the precise difference between an NFA and a DFAÁüºL I is that, in a DFA, for every state, an input symbol unambiguously refersÁü‡ J G to a single transition _and_ that an input symbol is required for eachÁüÒ L I transition. At a practical level, this permits DFA implementations to beÁüŸ!N K implemented at their core with a small constant number of CPU instructionsÁüî!M J for each byte of input searched. In practice, this makes them quite a bitÁü¼"O L faster than NFAs _in general_. Namely, in order to execute a search for anyÁüŒ#K H Thompson NFA, one needs to keep track of a _set_ of states, and executeÁüØ#J G the possible transitions on all of those states for each input symbol.Áü£$N K Overall, this results in much more overhead. To a first approximation, oneÁüò$E B can expect DFA searches to be about an order of magnitude faster.Á¸% �ü¼%K H So why use an NFA at all? The main advantage of an NFA is that it takesÁüˆ&N K linear time (in the size of the pattern string after repetitions have beenÁü×&M J expanded) to build and linear memory usage. A DFA, on the other hand, mayÁü¥'I F take exponential time and/or space to build. Even in non-pathologicalÁüï'O L cases, DFAs often take quite a bit more memory than their NFA counterparts,Áü¿(L I _especially_ if large Unicode character classes are involved. Of course,ÁüŒ)K H an NFA also provides additional capabilities. For example, it can matchÁüØ)J G Unicode word boundaries on non-ASCII text and resolve the positions ofÁ¬£*  capturing groups.Á¹* �ü½*O L Note that a [`hybrid::regex::Regex`](crate::hybrid::regex::Regex) strikes aÁü�+O L good balance between an NFA and a DFA. It avoids the exponential build timeÁüÝ+M J of a DFA while maintaining its fast search time. The downside of a hybridÁü«,O L NFA/DFA is that in some cases it can be slower at search time than the NFA.Áüû,M J (It also has less functionality than a pure NFA. It cannot handle UnicodeÁüÉ-K H word boundaries on non-ASCII text and cannot resolve capturing groups.)Á•. �l™. Áˆ-§. �ü«.O L This shows how to build an NFA with the default configuration and execute aÁìû.  search using the Pike VM.Á™/ �<�/ ãˆ-ü¥/? Ìå@å/ �üé/( ¡æ@ü’0& “�?ü¹0( ÆÒ?â0 �üæ0. íæ@ü•14 ¥ç@üÊ1+ ïÓ?ö1 �üú1. à�-<©2 ãˆ-±2 �üµ2) & # Example: resolving capturing groupsÁß2 �üã2E B This example shows how to parse some simple dates and extract theÁü©31 . components of each date via capturing groups.ÁÛ3 �<ß3 ãˆ-üç3= ·³-Ì¥4 óˆ-ü¿4& Ó€Aüæ4! ‹ÑD4ˆ5 ŸŠ-�5 �ü“5E B let vm = PikeVM::new(r"(?P\d{4})-(?P\d{2})-(?P\d{2})")?;ÁüÙ5& �í=€6 �ü„6; 8 let haystack = "2012-03-14, 2013-01-01 and 2014-07-05";ÁüÀ6. + let all: Vec = vm.captures_iter(Áüï6' $ &mut cache, haystack.as_bytes()Á„—7 ).collect();Áü¨7, ) // There should be a total of 3 matches.ÁìÕ7  assert_eq!(3, all.len());Áüó70 - // The year from the second match is '2013'.Áü¤86 3 let span = all[1].get_group_by_name("y").unwrap();ÁüÛ8( % assert_eq!("2013", &haystack[span]);Á„9 �üˆ9. à�-<·9 ãˆ-¿9 �üÃ9G D This example shows that only the last match of a capturing group isÁü‹:I F reported, even if it had to match multiple times for an overall matchÁlÕ: to occur.Áã: �<ç: ãˆ-üï:> ±¡E®; �ü²;) & let re = PikeVM::new(r"([a-z]){4}")?;ÁüÜ;& “�?üƒ<( ÆÒ?¬< �ܰ<  let haystack = b"quux";ÁüÌ<1 . re.captures(&mut cache, haystack, &mut caps);Áìþ< ŽÔDüœ=: 7 assert_eq!(Some(Span::from(3..4)), caps.get_group(1));Á×= �üÛ=. à�-<Š> ãˆ-�®> ²Ÿa’r±Ô £¤å�²ŸBÿ†v 7Ö å�²ŸBÿ¢¢ £T¥D Ö ¢¢å�ÙGŸ²Ÿ¦†¦ÙGÙG·- ·-²Ÿ²ŸBÿ¥‹›> ¥ ¦ÙG¼Ê÷ �,Ü÷ ¶÷Ÿ{ uÏÈ'½¨©ª«¬­®¯°±²³´µ¶”µú 4µú Ö §§ýŸ¼þú tþú Ö §§³äÌÎû „Îû Ö §§³äܸþ l¸þ Ö §§ìÜ ¬ôÿ Tôÿ Ö §§³»äá… tá… Ö §§Á´Ì©Š d©Š Ö §§â°Œ�‹ \�‹ Ö §§|Þ‹ LÞ‹ Ö §§T¹Ž $¹Ž Ö §§lŒ� <Œ� Ö §§ÌÚ� dÚ� Ö §§µÐ¬Ç‘ dÇ‘ Ö §§ãÎäâ’ œâ’ Ö §§ãΜ´– d´– Ö §§š^ ÷Ÿ¸÷¸š^š^÷ŸBÿ·· ¸tÀç ´ØÞ  A state in an NFA.ÁïÞ �üóÞM J In theory, it can help to conceptualize an `NFA` as a graph consisting ofÁüÁßM J `State`s. Each `State` contains its complete set of outgoing transitions.Á�à �ü“àG D In practice, it can help to conceptualize an `NFA` as a sequence ofÁüÛàN K instructions for a virtual machine. Each `State` says what to do and whereÁ|ªá to go next.Áºá �ü¾áL I Strictly speaking, the practical interpretation is the most correct one,Áü‹âI F because of the [`Capture`](State::Capture) state. Namely, a `Capture`ÁüÕâN K state always forwards execution to another state unconditionally. Its onlyÁü¤ãI F purpose is to cause a side effect: the recording of the current inputÁüîãH E position at a particular location in memory. In this sense, an `NFA`Áü·äI F has more power than a theoretical non-deterministic finite automaton.Á�å �ü…åM J For most uses of this crate, it is likely that one may never even need toÁüÓåL I be aware of this type at all. The main use cases for looking at `State`sÁü æN K directly are if you need to write your own search implementation or if youÁüïæ0 - need to do some kind of analysis on the NFA.Áš,Éç á¡@¾vÑyrQº¼½¿ÀÂÅÇÊÏÐÑ»½¾©¤á¡BÿÀÁŽ¥á¡BÿÃÄÆÈÉËÌÍÎÐÒLÜè üÕçJ G A state with a single transition that can only be taken if the currentÁü¤è3 0 input symbol is in a particular range of bytes.Áš›¹¹á¡Œ¨é üðè/ , The transition from this state to the next.Á,¨é ¹¹ó¥Öv üÆéK H A state with possibly many transitions represented in a sparse fashion.Áü–êJ G Transitions are non-overlapping and ordered lexicographically by inputÁTåê  range.Áôê �üüêJ G In practice, this is used for encoding UTF-8 automata. Its presence isÁüËëG D primarily an optimization that avoids many additional unconditionalÁü—ìF C epsilon transitions (via [`Union`](State::Union) states), and thusÁüâìG D decreases the overhead of traversing the NFA. This can improve bothÁü®í, ) matching time and DFA construction time.ÁšÖv ¹¹ ½Öv Öv ©¤á¡Bÿ¹¹ÍñXŒæí ¹¹©¤'w üþí@ = A dense representation of a state with multiple transitions.Áš'w ¹¹ À'w 'w Ž¥á¡Bÿ¹¹ŠóX„Éî ¹¹Ž¥$âò üàî? < A conditional epsilon transition satisfied via some sort ofÁü¤ïC @ look-around. Look-around is limited to anchor and word boundaryÁ|ìï assertions.Á€ð �üˆðI F Look-around states are meant to be evaluated while performing epsilonÁüÖðJ G closure (computing the set of states reachable from a particular stateÁü¥ñJ G via only epsilon transitions). If the current position in the haystackÁüôñH E satisfies the look-around assertion, then you're permitted to followÁäÁò  that epsilon transition.Áš=¹¹á¡TÓó üñòB ? The look-around assertion that must be satisfied before movingÁt¼ó to `next`.Á$Óó ¹¹¨ËlÅô üçó> ; The state to transition to if the look-around assertion isÁt®ô satisfied.Á$Åô ¹¹³ä,¤ö üßôF C An alternation such that there exists an epsilon transition to allÁüªõG D states in `alternates`, where matches found via earlier transitionsÁüöõ) & are preferred over later transitions.Ášß¹¹á¡Ôü÷ ü´öE B An ordered sequence of unconditional epsilon transitions to otherÁü‚÷B ? states. Transitions earlier in the sequence are preferred overÁüÍ÷& # transitions later in the sequence.ÁTü÷ ¹¹èÄ\‚ü ü£øE B An alternation such that there exists precisely two unconditionalÁüíøJ G epsilon transitions, where matches found via `alt1` are preferred overÁì¼ù  matches found via `alt2`.ÁÞù �üæùG D This state exists as a common special case of Union where there areÁü²úG D only two alternates. In this case, we don't need any allocations toÁüþúE B represent the state. This saves a bit of memory and also saves anÁüÈû5 2 additional memory access when traversing the NFA.Áš¹¹á¡l‰ý ü˜üB ? An unconditional epsilon transition to another NFA state. ThisÁìãü  is preferred over `alt2`.Á$‰ý ¹¹³äléþ ü ýE B An unconditional epsilon transition to another NFA state. MatchesÁüîýF C reported via this transition should only be reported if no matchesÁü½þ# were found by following `alt1`.Á$éþ ¹¹³ä<�… üƒÿ3 0 An empty state that records a capture location.Á»ÿ �üÃÿI F From the perspective of finite automata, this is precisely equivalentÁü‘€E B to an unconditional epsilon transition, but serves the purpose ofÁüÛ€J G instructing NFA simulations to record additional state when the finiteÁüª�9 6 state machine passes through this epsilon transition.Áè� �üð�D A `slot` in this context refers to the specific capture group slotÁü¹‚E B offset that is being recorded. Each capturing group has two slotsÁüƒƒF C corresponding to the start and end of the matching portion of thatÁT΃ ”÷V݃ �üåƒJ G The pattern ID and capture group index are also included in this stateÁü´„F C in case they are useful. But mostly, all you'll need is `next` andÁ\ÿ„  `slot`.Ášc¹¹á¡lÚ… ü¡…0 - The state to transition to, unconditionally.Á$Ú… ¹¹³ä¬ª† üñ…0 - The pattern ID that this capture belongs to.ÁTª† ¹¹‹ã¼Àˆ üɆG D The capture group index that this capture belongs to. Capture groupÁü™‡B ? indices are local to each pattern. For example, when capturingÁüä‡B ? groups are enabled, every pattern has a capture group at indexÁD¯ˆ ÄäG\Àˆ ¹¹ÈÞ„Ú‹ üáˆB ? The slot index for this capture. Every capturing group has twoÁü¬‰@ = slots: one for the start haystack offset and one for the endÁüõ‰C @ haystack offset. Unlike capture group indices, slot indices areÁüÁŠF C global across all patterns in this NFA. That is, each slot belongsÁü�‹A > to a single pattern, but there is only one slot at index `i`.Á$Ú‹ ¹¹ÈÞ$™� ü÷‹H E A state that cannot be transitioned out of. This is useful for casesÁüÄŒK H where you want to prevent matching from occurring. For example, if yourÁü”�G D regex parser permits empty character classes, then one could chooseÁüà�F C a `Fail` state to represent them. (An empty character class can beÁü«ŽJ G thought of as an empty set. Since nothing is in an empty set, they canÁÔúŽ  never match anything.)ÁšÍ¹¹á¡âå¹¹á¡,©� ü£�J G A match state. There is at least one such occurrence of this state forÁüò�2 / each regex that can match that is in this NFA.Ášš¹¹á¡¬Þ� ä¹�  The matching pattern ID.ÁTÞ� ¹¹‹ãP`«á¡Ô†ÔP`P`Þ- Þ-á¡á¡BÿÓ£©ç Ó ÔP`àg¬á¡ÖÎÖàgàgàgàgß- ß-á¡BÿÕ¤°ç Õ ÖàgJh­á¡Jh­á¡Ùù±ÙJhJhà-á- à-á¡ á-á¡BÿØ¥´ç Ø ÙJhî JhäšÁ üá½? < A sequence of transitions used to represent a sparse state.Á¡¾ �ü¥¾L I This is the primary representation of a [`Sparse`](State::Sparse) state.Áüò¾K H It corresponds to a sorted sequence of transitions with non-overlappingÁü¾¿L I byte ranges. If the byte at the current position in the haystack matchesÁü‹ÀI F one of the byte ranges, then the finite state machine should take theÁìÕÀ  corresponding transition.Á¨Œ¥Á ©¤+Y–ÓyªÓÛüùÁ" ü½Á7 4 The sorted sequence of non-overlapping transitions.Á\ýÁ ÚÚ±õŸz»©¤Ý†ÝŸzŸzé- é-©¤©¤BÿÜÀüÀ Ü ÝŸz{¼©¤ß gß{{ê-ë-ì- ê-©¤ ë-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ì-ÏÁBÿÞÁƒÁ Þ ß{œ{f|½©¤áÎáf|f|f|f|í- í-©¤BÿàŠÁ à áf|}¾©¤}¾©¤äù±ä}}î-ï- î-©¤ ï-©¤BÿãÃŽÁ ã ä}î }ܸÚ ü‘Ö> ; A sequence of transitions used to represent a dense state.ÁÐÖ �üÔÖM J This is the primary representation of a [`Dense`](State::Dense) state. ItÁü¢×L I provides constant time matching. That is, given a byte in a haystack andÁüï×L I a `DenseTransitions`, one can determine if the state matches in constantÁL¼Ø  time.ÁÆØ �üÊØH E This is in contrast to `SparseTransitions`, whose time complexity isÁü“ÙO L necessarily bigger than constant time. Also in contrast, `DenseTransitions`ÁüãÙ- * usually requires (much) more heap memory.Á©„ÃÚ Ž¥¶œ>,�¡æüÆÛ üÚÚH E A dense representation of this state's transitions on the heap. ThisÁÔ§Û  always has length 256.Á\ÊÛ ååèÄ„¿Ž¥è†è„„ô- ô-ޥޥBÿçÄšÚ ç 脌„ÀŽ¥ê gꌄŒ„õ-ö-÷- õ-Ž¥ ö-€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡÷-ÏÁBÿéÅ¡Ú é ꌄœŒ„Ò…ÁŽ¥ìÎìÒ…Ò…Ò…Ò…ø- ø-Ž¥BÿëÆ¨Ú ë ìÒ…‚†ÂŽ¥‚†ÂŽ¥ïù±ï‚†‚†ù-ú- ù-Ž¥ ú-Ž¥BÿîÇ¬Ú î ï‚†î ‚†¬îð ü’ï) & A single transition to another state.Á¼ï �üÀïL I This transition may only be followed if the current byte in the haystackÁü�ð4 1 falls in the inclusive range of bytes specified.ÁªTùð ó¥•þ„Wµ ­ñòól¹ñ üŠñ* ' The inclusive start of the byte range.Á,½ñ ðð\ùñ üÌñ( % The inclusive end of the byte range.Áýñ ððŒÀò üŠò1 . The identifier of the state to transition to.Á$Äò ðð³äo�o�o�Ãó¥o�Ãó¥ö†öo�o�€. €.ó¥ó¥BÿõÈËð õ öo� ÉÒð Äó¥ï�Åó¥ùÎùï�ï�ï�ï��. �.ó¥BÿøÊØð ø ùï�n�Æó¥ûühûn�n�‚.ƒ. ‚.ó¥ ƒ.à¡BÿúÿüüËÜð úþÆà¡n�ƒià¡n� ûà¡n�ƒn�n�n�±’Çó¥±’Çó¥ÿù±ÿ±’±’„.…. „.ó¥ ….ó¥BÿþÌâð þ ÿ±’î ±’Ô©ÿ ü¹ý/ , An iterator over all pattern IDs in an NFA.Áéý �üíý2 / This iterator is created by [`NFA::patterns`].Á þ �ü¤þL I The lifetime parameter `'a` refers to the lifetime of the NFA from whichÁüñþ& # this pattern iterator was created.Á­\´ÿ ���‹§/�#U"ˆ‚ƒÀÿ ŒÊÿ Êÿ Ö €€ìçü­‚* <­‚ Ö €€„!„!…!ѧo$z�é - �D“Ê�……‹§† g†ž D“D“�.Ž.�. �.‹§ Ž.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡�.ÏÁBÿ„Ñ¡ÿ „ †�D“œD“¤Ä@ ®LÏ@ ß§°‚4¥´ºëˆ‰Š‹Œ�”ŠB 4ŠB Í ‡‡Ù­„èC $èC Í ‡‡Ù­üéD" TéD Í ‡‡Œ¯üÕE$ \ÕE Í ‡‡İÌ•G T•G Í ‡‡´²ìœH dœH Í ‡‡°³š™Ëß§�†�š™š™‘. ‘.ß§ß§BÿŽÒ¼@ Ž �š™dðH ¯,÷H Í Ö¨·)ú7Nñ休ä�J \�J Í ��È·±›ÌÖ¨“†“±›±›’. ’.Ö¨Ö¨Bÿ’ÓèH ’ “±›ŒïK °TöK Í ‹©›6œ%ñ1Y•–„ŸL ,ŸL Í ””º±„ÞL <ÞL Í ””³ä¢œÍ‹©˜†˜¢œ¢œ“. “.‹©‹©Bÿ—ÔçK — ˜¢œ|±Î ¾D¸Î Í Î©{Ã*ƸŠ�š›|ïÎ 4ïÎ Í ™™³ä|ÃÏ 4ÃÏ Í ™™³ä¨�ÐΩ�†�¨�¨�¥. ¥.ΩΩBÿœè¢Î œ �¨�?žÑΩŸ gŸ?ž?ž¦.§.¨. ¦.Ω §.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¨.ÏÁBÿžé©Î ž Ÿ?žœ?ž|èÐ ¿DïÐ Í �ª¦+m£‹ÏÄÑ¡¢ŒþÐ DþÐ Í   ³ä\•Ñ $•Ñ Í   8 Ò�ª¤†¤8 8 ©. ©.�ª�ªBÿ£êÙÐ £ ¤8 ΠÓ�ª¦ g¦ΠΠª.«.¬. ª.�ª «.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¬.ÏÁBÿ¥ëàÐ ¥ ¦ΠœΠŒ”Ó ÀT›Ó Í ëª(ÄX\¯ h¨©«Œ®Ô D®Ô Í §§³ä´£Õ 4£Õ Í §§ÊÆ ·Õ <öÕ öÕ Í §§%£Ô몭†­%£%£­. ­.ëªëªBÿ¬ì…Ó ¬ ­%£Ú£Õ몯 g¯Ú£Ú£®.¯.°. ®.ëª ¯.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡°.ÏÁBÿ®íŒÓ ® ¯Ú£œÚ£dÔ‚ Ã,Û‚ Í Å«©Þ;¢]Ú)±³Üç‚ Tç‚ Í °°¥Í €ƒ Tˆƒ ˆƒ Í °°€¦ÖÅ«µ†µ€¦€¦·. ·.ūūBÿ´ò¶‚ ´ µ€¦§×Å«· g·§§¸.¹.º. ¸.Å« ¹.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡º.ÏÁBÿ¶ó½‚ ¶ ·§œ§̨ØÅ«¹Î¹̨̨̨̨». ».Å«Bÿ¸ôÄ‚ ¸ ¹̨ªÙÅ«ªÙÅ«½ù±½ªª¼.½. ¼.Å« ½.Å«Bÿ¼õÈ‚ ¼ ½ªî ª|Œ„ ÄT‘„ Í ¹¬FÌÖ4ÓÙ£¿ÀÂÃÅÆÀÁº±¹¬BÿÃĺ±¹¬BÿÆÇº±¹¬Bÿxw Äxw Í ¾¾ Àxw xw Í º±¹¬Bÿ¾¾ÙØYL¦„ Í ¾¾º±Éw ÄÉw Í ¾¾ ÃÉw Éw Í º±¹¬Bÿ¾¾ÑÙYLº„ Í ¾¾º±x Äx Í ¾¾ Æx x Í º±¹¬Bÿ¾¾ÉÚYLÏ„ Í ¾¾º±ªªªÚ¹¬ªÚ¹¬Ê†Êªª¾. ¾.¹¬¹¬BÿÉöèƒ É Êª ÷ïƒ Û¹¬æªÜ¹¬Í gÍæªæª¿.À.Á. ¿.¹¬ À.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Á.ÏÁBÿÌøõƒ Ì Íæªœæªñ­Ý¹¬ÏÎÏñ­ñ­ñ­ñ­Â. Â.¹¬BÿÎùüƒ Î Ïñ­1®Þ¹¬1®Þ¹¬Òù±Ò1®1®Ã.Ä. Ã.¹¬ Ä.¹¬BÿÑú€„ Ñ Ò1®î 1®kx üáJ G Unit represents a single unit of haystack for DFA based regex engines.Á¬ �ü°K H It is not expected for consumers of this crate to need to use this typeÁüüG D unless they are implementing their own DFA. And even then, it's notÁüÄM J required: implementors may use other techniques to handle haystack units.Á’ �ü–J G Typically, a single unit of haystack for a DFA would be a single byte.ÁüáM J However, for the DFAs in this crate, matches are delayed by a single byteÁü¯M J in order to handle look-ahead assertions (`\b`, `$` and `\z`). Thus, onceÁüýM J we have consumed the haystack, we must run the DFA through one additionalÁüËB ? transition using a unit that indicates the haystack has ended.ÁŽ �ü’J G There is no way to represent a sentinel with a `u8` since all possibleÁüÝF C values *may* be valid haystack units to a DFA, therefore this typeÁü¤. + explicitly adds room for a sentinel value.ÁÓ �ü×E B The sentinel EOI value is always its own equivalence class and isÁü�N K ultimately represented by adding 1 to the maximum equivalence class value.ÁüìJ G So for example, the regex `^[a-z]+$` might be split into the followingÁÄ·  equivalence classes:ÁÐ �\Ô  ```textÁŒà  0 => [\x00-`]Átò 1 => [a-z]ÁŒ�  2 => [{-\xFF]Át“ 3 => [EOI]Á<¢ ãˆ-ª �ü®E B Where EOI is the special sentinel value that is always in its ownÁüô  singleton equivalence class.ÁÌ$× –®‡Ö~­¥_ÔÕ¨¯–®Bÿkx 7™ ¨¯–®BÿÓÓ ÔDÜ ™ ÓÓ¨¯:³:³:³ç–®:³ç–®Ø†Ø:³:³Ï. Ï.–®–®Bÿ׋ž × Ø:³ Œ¥ è–®´³é–®ÛÎÛ´³´³´³´³Ð. Ð.–®BÿÚ�« Ú Û´³`´ê–®`´ê–®Þù±Þ`´`´Ñ.Ò. Ñ.–® Ò.–®BÿÝŽ¯ Ý Þ`´î `´È´ë–®à±²àÈ´È´Ó.Ô. Ó.–® Ô.–®–æBÿß�º ß àÈ´î È´äµì–®âîâäµäµÕ.Ö. Õ.–® Ö.–®�åBÿá�Æ á âäµî äµlŸ ÍD¤ ™ ¨¯4‡M¹r«…äåçè忍¯Bÿè騯Bÿ»x Í»x ™ ãã å»x »x ™ ¨¯BÿããÆõY¤ ™ ãã y Í y ™ ãã è y  y ™ ¨¯Bÿãã»öY¥" ™ ããI¶I¶I¶í¨¯I¶í¨¯ì†ìI¶I¶×. ×.¨¯¨¯Bÿë‘ñ ë ìI¶ ’ø ƶ隷ïÎïƶƶƶƶØ. Ø.¨¯Bÿî“þ î ïƶ ·ð¨¯ ·ð¨¯òù±ò · ·Ù.Ú. Ù.¨¯ Ú.¨¯Bÿñ”‚ ñ ò ·î  ·æºñ¨¯ô±²ôæºæºÛ.Ü. Û.¨¯ Ü.¨¯–æBÿó•� ó ôæºî 溔»ò¨¯öîö”»”»Ý.Þ. Ý.¨¯ Þ.¨¯�åBÿõ–™ õ ö”»î ”»Yy ü�=: 7 A representation of byte oriented equivalence classes.ÁØ= �üÜ=N K This is used in a DFA to reduce the size of the transition table. This canÁü«>O L have a particularly large impact not only on the total size of a dense DFA,Áôû>  but also on compile times.Áš? �üž?L I The essential idea here is that the alphabet of a DFA is shrunk from theÁüë?L I usual 256 distinct byte values down to a set of equivalence classes. TheÁü¸@N K guarantee you get is that any byte belonging to the same equivalence classÁü‡AJ G can be treated as if it were any other byte in the same class, and theÁüÒA' $ result of a search wouldn't change.ÁúA �lþA Áˆ-ŒB �ü�B6 3 This example shows how to get byte classes from anÁüÇBN K [`NFA`](crate::nfa::thompson::NFA) and ask for the class of various bytes.Á–C �<šC ãˆ-ü¢C+ ™ÿ>ÎC �üÒC" ò·AüõC% Ÿ¸Aü›D8 ϸAüÔD5 ’¹AüŠE Ò¹AüªE5 ü¹AàE �üäE. à�-<“F ãˆ-Ñ\½F â°�åfll4øùì�â°BÿYy 7™ ì�â°Bÿ÷÷ øLÉF ™ ÷÷ì�ÎF ’¿’¿’¿÷â°’¿÷â°ý†ý’¿’¿â. â.â°â°BÿüŸ¤F ü ý’¿¹  «F øâ°äΟ ü–�, ) An iterator over each equivalence class.ÁÃ� �üÇ�J G The last element in this iterator always corresponds to [`Unit::eoi`].Á’ž �ü–ž8 5 This is created by the [`ByteClasses::iter`] method.ÁÏž �üÓžJ G The lifetime `'a` refers to the lifetime of the byte classes that thisÁôžŸ  iterator was created from.ÁÛlÙŸ ���ȱ°ê:¸fî(¾‚ƒçŸ ÄñŸ <ñŸ ™ €€ �â°D�  �  ™ €€¹×‚�……ȱ† g†vx¹×¹×õ.ö.÷. õ.ȱ ö.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡÷.ÏÁBÿ„³ÆŸ „ †�¹×œ¹×üé¥' üÛ£F C An iterator over representative bytes from each equivalence class.Á¢¤ �ü¦¤C @ This is created by the [`ByteClasses::representatives`] method.Áê¤ �üî¤J ʉZô¹¥ žŠZÜÄô¥ �ˆˆœ²îÔ`HÅHîÝ‰Š‹Œ�¦ Ä—¦ <—¦ ™ ‡‡˜ŒZ|µ¦ Dµ¦ ™ ‡‡¼Ê¦ Dʦ ™ ‡‡Ͷ´ç¦ Tç¦ ™ ‡‡�¥\Ùƒ�ŽŽœ²� g�«­\Ù\Ùù.ú.û. ù.œ² ú.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡û.ÏÁBÿ�´á¥ � ��\Ùœ\Ùü¤³ ü©±: 7 An iterator over all elements in an equivalence class.Áä± �üè±< 9 This is created by the [`ByteClasses::elements`] method.Á¥² �ü©²J ʉZôô² žŠZÝŒ¯³ �‘‘‹³&´ƒ+¼ì’“”Á³ Ä˳ <˳ ™ ��˜ŒZ\é³ ,é³ ™ ��–®\ú³ $ú³ ™ ��èÛ„�––‹³— g—��èÛèÛý.þ.ÿ. ý.‹³ þ.€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ÿ.ÏÁBÿ•µœ³ • —�èÛœèÛü¤¹! Þ´«¹ ™ �™™í³ϺÖÒ‰ò}𛹠ü̹ D̹ ™ ˜˜‹³Üñ¹ ,ñ¹ ™ ˜˜û½ûÝ…���í³ž gžqsûÝûÝ�/‚/ƒ/ �/í³ ‚/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ƒ/ÏÁBÿœ¶œ¹ œ ž�ûÝœûÝ©y Ó«ŒŸË Ì™Ë ßdÝË Á´Ö“K°ë›Ê^ ¡‘µÁ´Bÿ©y 9™ ‘µÁ´BÿŸŸ  <êË ™ ŸŸ‘µgà†Á´£†£gàgà…/ …/Á´Á´Bÿ¢·¼Ë ¢ £gàåà‡Á´¥ g¥åàåà†/‡/ˆ/ †/Á´ ‡/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ˆ/ÏÁBÿ¤¸ÃË ¤ ¥åàœåàÌÌÙ á<ÞÙ ‘µ<¦ëG`#G&§dìÙ $ìÙ ™ ¦¦š¶òáòáòኑµòኑµª†ªòáòá�/ �/‘µ‘µBÿ©½ŸÙ © ªòá ¾¦Ù ‹‘µV⌑µ­ g­VâVâŽ/�/�/ Ž/‘µ �/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡�/ÏÁBÿ¬¿¬Ù ¬ ­VâœVâ±ã�‘µ¯÷¯±ã±ã‘µBÿ®® ¯&䎑µ±Î±&ä&ä&ä&ä‘/ ‘/‘µBÿ°Á¼Ù ° ±&äÕä�‘µÕä�‘µ´ù±´ÕäÕä’/“/ ’/‘µ “/‘µBÿ³ÂÀÙ ³ ´Õäî Õäúy â4ÃÛ ™ š¶„�ܹÀþò¶·ÜÌš¶Bÿúy :™ ÜÌš¶Bÿµµ ¶LÊÛ ™ µµÜÌ ÑÛ MåMåMå�š¶Må�𶻆»MåMå”/ ”/š¶š¶BÿºÃ–Û º »Må» Ä�Û ‘š¶øå’š¶¿÷¿øåøåš¶Bÿ¾¾ ¿m據¶ÁÎÁmæmæmæmæ•/ •/š¶BÿÀÆ¬Û À ÁmæÌ0甚¶0甚¶Åù±Å0ç0ç–/—/ –/š¶ —/š¶BÿÄÇ°Û Ä Å0çî 0çü—û! å\©û �Çǧ·í½i'ÊÁÈɵû „¿û ¿û ™ ÆÆ �‘µDÕû Õû ™ ÆÆŒò—�Ë˧·Ì gÌvxŒòŒò¦/§/¨/ ¦/§· §/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¨/ÏÁBÿÊÌ�û Ê Ì�ŒòœŒòüµþ& æ„Çþ �ÎÎú·J:¹f§ØîÏÐØþ „âþ âþ ™ ÍÍá¬ZDøþ øþ ™ ÍÍiô˜�ÒÒú·Ó gÓoqiôiôª/«/¬/ ª/ú· «/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¬/ÏÁBÿÑÍ­þ Ñ Ó�iôœiôœ¸+ü�FC The span offsets of capturing groups after a match has been found.Á×�üÛHE This type represents the output of regex engines that can report theÁü¤HE offsets at which capturing groups matches or "submatches" occur. ForÁüíOL example, the [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM). When a matchÁü½LI occurs, it will at minimum contain the [`PatternID`] of the pattern thatÁüŠKH matched. Depending upon how it was constructed, it may also contain theÁüÖJG start/end offsets of the entire match of the pattern and the start/endÁü¡C@ offsets of each capturing group that participated in the match.Áå�üéNK Values of this type are always created for a specific [`GroupInfo`]. It isÁü¸MJ unspecified behavior to use a `Captures` value in a search with any regexÁü†LI engine that has a different `GroupInfo` than the one the `Captures` wereÁŒÓ created with.Áå�”é # ConstructorsÁü�ü€HE There are three constructors for this type that control what kind ofÁüÉ*' information is available upon a match:Áô�üøMJ * [`Captures::all`]: Will store overall pattern match offsets in additionÁüÆFC to the offsets of capturing groups that participated in the match.Áü�@= * [`Captures::matches`]: Will store only the overall patternÁüÎOL match offsets. The offsets of capturing groups (even ones that participatedÁüž$! in the match) are not available.ÁüÃJG * [`Captures::empty`]: Will only store the pattern ID that matched. NoÁüŽ'$ match offsets are available at all.Á¶�üºNK If you aren't sure which to choose, then pick the first one. The first oneÁü‰&# is what convenience routines like,Áü°WT [`PikeVM::create_captures`](crate::nfa::thompson::pikevm::PikeVM::create_captures),Á܈ will use automatically.Á¤�ü¨LI The main difference between these choices is performance. Namely, if youÁüõNK ask for _less_ information, then the execution of regex search may be ableÁÄÄ to run more quickly.ÁÝ�\á # NotesÁí�üñNK It is worth pointing out that this type is not coupled to any one specificÁüÀKH regex engine. Instead, its coupling is with [`GroupInfo`], which is theÁüŒMJ thing that is responsible for mapping capturing groups to "slot" offsets.ÁüÚOL Slot offsets are indices into a single sequence of memory at which matchingÁüªNK haystack offsets for the corresponding group are written by regex engines.Áù�lýÁˆ-‹ �ü� OL This example shows how to parse a simple date and extract the components ofÁüß " the date via capturing groups:Á‚!�<†!ãˆ-üŽ!>±¡EÍ!�üÑ!A> let re = PikeVM::new(r"^([0-9]{4})-([0-9]{2})-([0-9]{2})$")?;Áü“"JùÞ>Þ"�üâ"52 re.captures(&mut cache, "2010-03-14", &mut caps);Áì˜#ŽÔDü¶#:7 assert_eq!(Some(Span::from(0..4)), caps.get_group(1));Áüñ#:7 assert_eq!(Some(Span::from(5..7)), caps.get_group(2));Áü¬$;8 assert_eq!(Some(Span::from(8..10)), caps.get_group(3));Áè$�üì$.à�-<›%ãˆ-£%�ü§%%" # Example: named capturing groupsÁÍ%�üÑ%IF This example is like the one above, but leverages the ability to nameÁü›&=: capturing groups in order to make the code a bit clearer:ÁÙ&�<Ý&ãˆ-üå&>±¡E¤'�ü¨'PM let re = PikeVM::new(r"^(?P[0-9]{4})-(?P[0-9]{2})-(?P[0-9]{2})$")?;Áüù'JùÞ>Ä(�üÈ(5 ÈZìþ(ŽÔDüœ)DA assert_eq!(Some(Span::from(0..4)), caps.get_group_by_name("y"));Áüá)DA assert_eq!(Some(Span::from(5..7)), caps.get_group_by_name("m"));Áü¦*EB assert_eq!(Some(Span::from(8..10)), caps.get_group_by_name("d"));Áì*�üð*.à�-<Ÿ+ãˆ-çDÃ+͸ÚÌkÀ÷½ÀÂÕÖ׬¿-T¿-÷ ÔÔ³»´È.È.÷ ÔÔ�ÇüŒ>,Œ>÷ ÔÔÌî{÷™͸Ù†Ù{÷{÷®/ ®/͸͸BÿØÎ°+Ø Ù{÷üׄ"üï�@= An iterator over all capturing groups in a `Captures` value.Á°‚�ü´‚IF This iterator includes capturing groups that did not participate in aÁüþ‚KH match. See the [`Captures::iter`] method documentation for more detailsÁŒÊƒ and examples.Á܃�üàƒHE The lifetime parameter `'a` refers to the lifetime of the underlyingÁ¬©„ `Captures` value.Áîœâ„�ÛÛ¾ºבÃ˰8ÜÝö„”€…$€…÷ ÚÚ°¼Fü˜…7,˜…÷ ÚÚƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—…¿œ�ßß¾ºà†à°²Õ/ Õ/¾º¾ºBÿÞ×È„Þ à�½��â⾺ã gã?B½½Ö/×/Ø/ Ö/¾º ×/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ø/ÏÁBÿáØÏ„á ã�½œ½åz üÖ‰FC Represents information about capturing groups in a compiled regex.Á�Š�ü¡ŠLI The information encapsulated by this type consists of the following. ForÁŒîŠ each pattern:Á€‹�ü„‹LI * A map from every capture group name to its corresponding capture groupÁTÑ‹ index.ÁüÜ‹MJ * A map from every capture group index to its corresponding capture groupÁLªŒ name.Áü´ŒLI * A map from capture group index to its corresponding slot index. A slotÁü��NK refers to one half of a capturing group. That is, a capture slot is eitherÁüÐ�JG the start or end of a capturing group. A slot is usually the mechanismÁü›ŽMJ by which a regex engine records offsets for each capturing group during aÁ\éŽÔ—7õŽ�üùŽIF A `GroupInfo` uses reference counting internally and is thus cheap toÁTÃ� clone.ÁÎ��üÒ�*' # Mapping from capture groups to slotsÁý��ü��KH One of the main responsibilities of a `GroupInfo` is to build a mappingÁüÍ�MJ from `(PatternID, u32)` (where the `u32` is a capture index) to somethingÁü›‘GD called a "slot." As mentioned above, a slot refers to one half of aÁüã‘GD capturing group. Both combined provide the start and end offsets ofÁü«’30 a capturing group that participated in a match.Áß’�üã’MJ **The mapping between group indices and slots is an API guarantee.** ThatÁü±“DA is, the mapping won't change within a semver compatible release.Áö“�üú“IF Slots exist primarily because this is a convenient mechanism by whichÁüÄ”GD regex engines report group offsets at search time. For example, theÁüŒ•KH [`nfa::thompson::State::Capture`](crate::nfa::thompson::State::Capture)ÁüØ•NK NFA state includes the slot index. When a regex engine transitions throughÁü§–OL this state, it will likely use the slot index to write the current haystackÁü÷–KH offset to some region of memory. When a match is found, those slots areÁü×NK then reported to the caller, typically via a convenient abstraction like aÁ¼’˜ [`Captures`] value.Áª˜�ü®˜NK Because this crate provides first class support for multi-pattern regexes,Áüý˜HE and because of some performance related reasons, the mapping betweenÁüÆ™MJ capturing groups and slots is a little complex. However, in the case of aÁü”šMJ single pattern, the mapping can be described very simply: for all captureÁüâšNK group indices `i`, its corresponding slots are at `i * 2` and `i * 2 + 1`.Áü±›JG Notice that the pattern ID isn't involved at all here, because it onlyÁüü›B? applies to a single-pattern regex, it is therefore always `0`.Á¿œ�üÜMJ In the multi-pattern case, the mapping is a bit more complicated. To talkÁü‘�EB about it, we must define what we mean by "implicit" vs "explicit"Á¬×� capturing groups:Áí��üñ�KH * An **implicit** capturing group refers to the capturing group that isÁü½žKH present for every pattern automatically, and corresponds to the overallÁü‰ŸJG match of a pattern. Every pattern has precisely one implicit capturingÁüÔŸNK group. It is always unnamed and it always corresponds to the capture groupÁt£  index `0`.Áü² HE * An **explicit** capturing group refers to any capturing group thatÁüû JG appears in the concrete syntax of the pattern. (Or, if an NFA was handÁüÆ¡OL built without any concrete syntax, it refers to any capturing group with anÁä–¢ index greater than `0`.)Á³¢�”·¢ Some examples:ÁÊ¢�ü΢HE * `\w+` has one implicit capturing group and zero explicit capturingÁ\—£ø©Wü££<9 * `(\w+)` has one implicit group and one explicit group.Áüà£MJ * `foo(\d+)(?:\pL+)(\d+)` has one implicit group and two explicit groups.Á®¤�ü²¤EB Turning back to the slot mapping, we can now state it as follows:Áø¤�üü¤KH * Given a pattern ID `pid`, the slots for its implicit group are alwaysÁüÈ¥# at `pid * 2` and `pid * 2 + 1`.Áüì¥EB * Given a pattern ID `0`, the slots for its explicit groups startÁü²¦&# at `group_info.pattern_len() * 2`.ÁüÙ¦KH * Given a pattern ID `pid > 0`, the slots for its explicit groups startÁü¥§NK immediately following where the slots for the explicit groups of `pid - 1`ÁDô§ end.Áý§�ü�¨MJ In particular, while there is a concrete formula one can use to determineÁüϨJG where the slots for the implicit group of any pattern are, there is noÁüš©JG general formula for determining where the slots for explicit capturingÁüå©KH groups are. This is because each pattern can contain a different numberÁt±ª of groups.ÁÀª�üĪJG The intended way of getting the slots for a particular capturing groupÁü�«DA (whether implicit or explicit) is via the [`GroupInfo::slot`] orÁüÔ«  [`GroupInfo::slots`] method.Áõ«�üù«JG See below for a concrete example of how capturing groups get mapped toÁTĬ slots.ÁϬ�lÓ¬Áˆ-á¬�üå¬FÊ×F„¬­æ�7½­�<Á­ãˆ-üÉ­KH use regex_automata::util::{captures::GroupInfo, primitives::PatternID};Á•®�ü™®#ŽÙFü½® ¼ÙFœÞ®æÙFüò®2„ÚFü¥¯&ÁÚFD̯žØ?üÕ¯,€ÛFü‚°&·ÛFü©°96 // We can query the number of groups for any pattern.Áüã°63 assert_eq!(2, info.group_len(PatternID::must(0)));Áüš±63 assert_eq!(1, info.group_len(PatternID::must(1)));Áüѱ63 assert_eq!(5, info.group_len(PatternID::must(2)));Áüˆ²63 assert_eq!(3, info.group_len(PatternID::must(3)));Áü¿²1. // An invalid pattern always has zero groups.Áüñ²85 assert_eq!(0, info.group_len(PatternID::must(999)));ÁγçÛFüó$ŠÜFè³�üì³HE // We can map a group index for a particular pattern to its name, ifÁ”µ´ // one exists.ÁüÈ´A> assert_eq!(Some("foo"), info.to_name(PatternID::must(3), 2));Áüе:7 assert_eq!(None, info.to_name(PatternID::must(2), 4));Áüŵ(% // Or map a name to its group index.ÁüîµB? assert_eq!(Some(1), info.to_index(PatternID::must(0), "foo"));Áü±¶B? assert_eq!(Some(2), info.to_index(PatternID::must(3), "foo"));Áô¶�üø¶.à�-<§·ãˆ-¯·�ü³·30 # Example: mapping from capture groups to slotsÁç·�üë·JG This example shows the specific mapping from capture group indices forÁü¶¸LI each pattern to their corresponding slots. The slot values shown in thisÁüƒ¹,) example are considered an API guarantee.Á°¹�<´¹ãˆ-ü¼¹K—„[ˆº�üŒº#ŽÙFü°º ¼ÙFœÑºæÙFüåº2„ÚFü˜»&ÁÚFD¿»žØ?È»�üÌ»A> // We first show the slots for each pattern's implicit group.Áü޼@= assert_eq!(Some((0, 1)), info.slots(PatternID::must(0), 0));Áüϼ@= assert_eq!(Some((2, 3)), info.slots(PatternID::must(1), 0));Áü�½@= assert_eq!(Some((4, 5)), info.slots(PatternID::must(2), 0));Áüѽ@= assert_eq!(Some((6, 7)), info.slots(PatternID::must(3), 0));Á’¾�ü–¾C@ // And now we show the slots for each pattern's explicit group.ÁüÚ¾@= assert_eq!(Some((8, 9)), info.slots(PatternID::must(0), 1));Áü›¿B? assert_eq!(Some((10, 11)), info.slots(PatternID::must(2), 1));ÁüÞ¿B? assert_eq!(Some((12, 13)), info.slots(PatternID::must(2), 2));Áü¡ÀB? assert_eq!(Some((14, 15)), info.slots(PatternID::must(2), 3));ÁüäÀB? assert_eq!(Some((16, 17)), info.slots(PatternID::must(2), 4));Áü§ÁB? assert_eq!(Some((18, 19)), info.slots(PatternID::must(3), 1));ÁüêÁB? assert_eq!(Some((20, 21)), info.slots(PatternID::must(3), 2));Á­Â�ü±ÂLI // Asking for the slots for an invalid pattern ID or even for an invalidÁüþÂKH // group index for a specific pattern will return None. So for example,ÁüÊÃNK // you're guaranteed to not get the slots for a different pattern than theÁ¬™Ä // one requested.Áü¯Ä85 assert_eq!(None, info.slots(PatternID::must(5), 0));ÁüèÄ85 assert_eq!(None, info.slots(PatternID::must(1), 1));Á¡Å�ü¥Å.à�-<ÔÅãˆ-ïLˆÆ³»îL„&ß·åæóÁ³»Bÿåz 8÷ óÁ³»Bÿää 園Æ÷ ääóÁç ž³»è†èç ç Û/ Û/³»³»BÿçÙåÅç èç e!Ÿ³»ê gêe!e!Ü/Ý/Þ/ Ü/³» Ý/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Þ/ÏÁBÿéÚìÅé êe!œe!˜" ³»ì÷ì˜"˜"³»Bÿëë 쬓¤ótš¤÷ ƒ¼5ùœÐ&E37îïðñü¯¤*\¯¤÷ ííñáüߤ"lߤ÷ íí·ãü‡¥)l‡¥÷ ííµÉœ¶¥d¶¥÷ íí•b¡ƒ¼ó gó•b•bí/î/ï/ í/ƒ¼ î/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ï/ÏÁBÿòß‚¤ò ó•bœ•b­e¢ƒ¼õ÷õ­e­eƒ¼Bÿôô õÌ„ßü�Ü85 An error that may occur when building a `GroupInfo`.ÁÆÜ�üÊÜDA Building a `GroupInfo` does a variety of checks to make sure theÁü�ÝNK capturing groups satisfy a number of invariants. This includes, but is notÁüÞÝKH limited to, ensuring that the first capturing group is unnamed and thatÁüªÞA> there are no duplicate capture groups for a specific pattern.Áút�ßì¼Ò›ÍâÚ«!÷Ĥß$¤ß÷ öö­½Ç|£ì¼ù†ùÇ|Ç|ö/ ö/ì¼ì¼BÿøçõÞø ùÇ|E}¤ì¼û gûE}E}÷/ø/ù/ ÷/ì¼ ø/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ù/ÏÁBÿúèüÞú ûE}œE}¼ùàû”þà÷ ­½z… lÐ*&ýÿ‚„†þ€�ƒ…‡ˆ|Œâû÷ üü­½œžâžâ÷ üüêælžãû÷ üü­½”òã<òã÷ üü‹ãtóä<óä÷ üülðæû÷ üü­½”Èç<Èç÷ üü‹ã”Žéû÷ üü­½”�ê<�ê÷ üü‹ãL­íû÷ üü­½”Žî<Žî÷ üü‹ãdÊî$Êî÷ üüàþv~¥­½Š†Šv~v~ú/ ú/­½­½Bÿ‰éêà‰ Šv~±‚¦­½Œ gŒ±‚±‚û/ü/ý/ û/­½ ü/€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ý/ÏÁBÿ‹êñà‹ Œ±‚œ±‚ü…‡$üå„MJ An iterator over capturing groups and their names for a specific pattern.Á³…�ü·…=: This iterator is created by [`GroupInfo::pattern_names`].Áõ…�üù…IF The lifetime parameter `'a` refers to the lifetime of the `GroupInfo`ÁüÆ)& from which this iterator was created.Á�¬�‡�ŽŽ…¿ZŸ×]áû”�¦‡ü°‡+°‡÷ ���p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ�«Ê6‰¬�‘‘…¿’†’¢¤6‰6‰ƒ0 ƒ0…¿…¿Bÿ�õö†� ’�6‰¹‰­�””…¿• g•14¹‰¹‰„0…0†0 „0…¿ …0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡†0ÏÁBÿ“öý†“ •�¹‰œ¹‰üÕŽ üÅŒHE An iterator over capturing groups and their names for a `GroupInfo`.ÁŽ��ü’�96 This iterator is created by [`GroupInfo::all_names`].ÁÌ��üÐ�I�³[üšŽ)ä³[‚ŒàŽ�——í¿Ë?jUªÍ÷˜™š›òŽÌüŽTüŽ÷ –– �³»œ›�$›�÷ ––ìçô´�\´�÷ ––�ÇüØ�?,Ø�÷ ––řǙș­É™Ê™àË™óG*¤�R{9  ×Z늮���í¿ž gžùûëŠëЉ0Š0‹0 ‰0í¿ Š0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‹0ÏÁBÿœ÷ÍŽœ ž�늜ëŠ6{ ü–`.Áüõ!L"I This boxed closure is unlikely to be inlined _and_ it infects the publicÁüÂ"N"K API in subtle ways. Namely, unless you declare the closure as implementingÁü‘#J"G `Send` and `Sync`, then the resulting iterator type won't implement itÁüÜ#H"E either. But there are practical issues with requiring the closure toÁü¥$J"G implement `Send` and `Sync` that result in other API complexities thatÁüð$9"6 are beyond the scope of this already long exposition.Áüª%I"F 4. Some regex engines expose more complex match information than justÁüô%J"G "which pattern matched" and "at what offsets." For example, the PikeVMÁü¿&I"F exposes match spans for each capturing group that participated in theÁü‰'K"H match. In such cases, it can be quite beneficial to reuse the capturingÁüÕ'M"J group allocation on subsequent searches. A proper iterator doesn't permitÁü£(O"L this API due to its interface, so it's useful to have something a bit lowerÁüó(K"H level that permits callers to amortize allocations while also reusing aÁü¿)B"? shared implementation of iteration. (See the documentation forÁü‚*L"I [`Searcher::advance`] for an example of using the "advance" API with theÁdÏ*" PikeVM.)ÁÜ*"�üà*J"G What this boils down to is that there are "advance" APIs which requireÁü«+M"J handing a closure to it for every call, and there are also APIs to createÁüù+F"C iterators from a closure. The former are useful for _implementing_ÁüÀ,L"I iterators or when you need more flexibility, while the latter are usefulÁü�-9"6 for conveniently writing custom iterators on-the-fly.ÁÇ-"�üË-&"# # Example: iterating with capturesÁò-"�üö-J"G Several regex engines in this crate over convenient iterator APIs overÁüÁ.L"I [`Captures`] values. To do so, this requires allocating a new `Captures`ÁüŽ/K"H value for each iteration step. This can perhaps be more costly than youÁüÚ/G"D might want. Instead of implementing your own iterator to avoid thatÁü¢0J"G cost (which can be a little subtle if you want to handle empty matchesÁüí0=": correctly), you can use this `Searcher` to do it for you:Á«1"�<¯1"ãˆ-Ì·1"óˆ-üÑ1&"Ó€Aìø1"ÜÑH¤–2" Input, Span,Á4«2"ŸŠ-²2"�ü¶24"1 let re = PikeVM::new("foo(?P[0-9]+)")?;Áüë2'"$ let haystack = "foo1 foo12 foo123";Á“3"�ü—3("ÆÒ?üÀ3&"“�?ìç3"°¡:ü…4;"8 let mut searcher = Searcher::new(Input::new(haystack));ÁüÁ42"/ while let Some(_) = searcher.advance(|input| {Áüô40"çìHä¥5" íHDÂ5" }) {ÁüË5K"H // The unwrap is OK since 'numbers' matches if the pattern matches.Áü—6A"> matches.push(caps.get_group_by_name("numbers").unwrap());Á,Ù6"ð×0ìß6"ÅÐ3Ìý6" Span::from(3..4),ÁÔ—7" Span::from(8..10),Áܲ7" Span::from(14..17),Á<Î7"åÑ3Ö7"�üÚ7."à�-<‰8"ãˆ-’D´8"Þ2×דÅPM 5ü2¬ÎØÙ½8"„Õ9",Õ9"®ÖÖªúìµ;"tµ;"®ÖÖͶбÇÞ2ÛÛ“Å܆Ükmбб¬0 ¬0“Å“ÅBÿÚžš8"Ú ÜÞ2б²ÈÞ2ÞÞ“Åß gßùû²²­0®0¯0 ­0“Å ®0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¯0ÏÁBÿÝŸ¡8"Ý ßÞ2²œ²¨| üúàO"L An iterator over all non-overlapping half matches for an infallible search.ÁÊá"�üÎáL"I The iterator yields a [`HalfMatch`] value until no more matches could beÁT›â" found.Á¦â"�üªâ'"ήIÒâ"�üÖâD"�¯I›ã"�üŸã9"é¯IÙã"�üÝã6"º°I”ä"�ü˜äJ"ˆ±IüãäN"ݱI¤²å"µ²IÇå"�üËåH"E This iterator is created by [`Searcher::into_half_matches_iter`] andÁü”æ4"1 then calling [`TryHalfMatchesIter::infallible`].Á–|åæ"Þ2â‚ãâã÷ŽC ùæ"ÂÆ%™ÿpõnáäèÅÂÆBÿ¨| `®èÅÂÆBÿàà áÞ2ªÆõæ"{}Ìüæ"®ààèŨÙÍÞ2æ‚çæç÷ŽCÔŸgªÆªùæ"ÂÆè g脆üþ¨Ù¨ÙÏ0Ð0Ñ0 Ï0ÂÆ Ð0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ñ0ÏÁBÿåªÒæ"å èÞ2ªÆ¨Ùœ¨Ù} üšþJ"°¸Uåþ"�üéþO"’¹U¹ÿ"�ü½ÿ'"ήIåÿ"�üéÿD"�¯I®€"�ü²€9"é¯Iì€"�üð€6"º°I§�"�ü«�J"ˆ±Iüö�N"ݱI¤Å‚"µ²IÚ‚"�üÞ‚C"@ This iterator is created by [`Searcher::into_matches_iter`] andÁü¢ƒ0"- then calling [`TryMatchesIter::infallible`].Á˜\ïƒ"Þ2ë‚ìëì÷ŽC ÿƒ"éÇ�šiì·jêí‘ÇéÇBÿ} `®‘ÇéÇBÿéé êÞ2ªÆûƒ"{}¬‚„"®éé‘ÇŽåÐÞ2ï‚ðïð÷ŽCÔ¶—\¯ÿƒ"éÇñ gñ|~ôöŽåŽåÛ0Ü0Ý0 Û0éÇ Ü0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ý0ÏÁBÿî¯܃"î ñÞ2ªÆŽåœŽåW} ü£œK"H An iterator over all non-overlapping captures for an infallible search.Áïœ"�üóœK"H The iterator yields a [`Captures`] value until no more matches could beÁT¿�"Û‘\Ê�"�üÎ�'"ήIö�"�üú�D"�¯I¿ž"�üÞ9"é¯Iýž"�ü�Ÿ6"º°I¸Ÿ"�ü¼ŸJ"ˆ±Iü‡ N"ݱI¤Ö "µ²Ië "�üï I"F This iterator is created by [`Searcher::into_captures_iter`] and thenÁü¹¡,") calling [`TryCapturesIter::infallible`].ÁÓ«Œì¡"Ìæ¡"šdœ¢"Þ2ô‚õõô÷ŽC ­¢"�É‚eݪÂ9`–óö¸È�ÉBÿW} `®¸È�ÉBÿòò óÞ2ªÆ©¢"{}´°¢"®òò¸ÈRøÓÞ2ø‚ùùø÷ŽCÔ¶—\´­¢"�Éú gú|~ôöRøRøè0é0ê0 è0�É é0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ê0ÏÁBÿ÷´‰¢"÷ úÞ2ªÆRøœRølÚäÌ A look-around assertion.Áé�üíHE An assertion matches at a position between characters in a haystack.Áü¶ OL Namely, it does not actually "consume" any input as most parts of a regularÁü† MJ expression do. Assertions are a way of stating that some property must beÁüÔ /, true at a particular point during matching.Á„ �üˆ 2/ For example, `(?m)^[a-z]+$` is a pattern that:Á» �ü¿ LI * Scans the haystack for a position at which `(?m:^)` is satisfied. ThatÁüŒ LI occurs at either the beginning of the haystack, or immediately followingÁ¬Ù  a `\n` character.Áüï 30 * Looks for one or more occurrences of `[a-z]`.Áü£ KH * Once `[a-z]+` has matched as much as it can, an overall match is onlyÁüï 41 reported when `[a-z]+` stops just before a `\n`.Á¤�ü¨HE So in this case, `abc` and `\nabc\n` match, but `\nabc1\n` does not.Áñ�üõMJ Assertions are also called "look-around," "look-behind" and "look-ahead."ÁüÃNK Specifically, some assertions are look-behind (like `^`), other assertionsÁü’NK are look-ahead (like `$`) and yet other assertions are both look-ahead andÁäá look-behind (like `\b`).Áþ�Ô‚ # Assertions in an NFAÁ��ü¡IF An assertion in a [`thompson::NFA`](crate::nfa::thompson::NFA) can beÁüëNK thought of as a conditional epsilon transition. That is, a matching engineÁüºJG like the [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) only permitsÁü…GD moving through conditional epsilon transitions when their conditionÁüÍIF is satisfied at whatever position the `PikeVM` is currently at in theÁl—ŸþN¥�ü©KH How assertions are handled in a `DFA` is trickier, since a DFA does notÁüõMJ have epsilon transitions at all. In this case, they are compiled into theÁüÃOL automaton itself, at the expense of more states than what would be requiredÁÌ“ without an assertion.Áœ$ã¨Ë#Ñï±`Eˆüýÿ€ ‚ ƒ … † ˆ ‰ ‹ Œ Ž � ‘ ’ ” • — ˜ š › � ž   ¡ £ ¤ ¦ § © ª ¬ ­ ¯ ° þý� € „ ƒ ‡ † Š ‰ � Œ � � “ ’ – • ™ ˜ œ › Ÿ ž ¢ ¡ ¥ ¤ ¨ § « ª ® ­ ± ° ,ÝüîKH Match the beginning of text. Specifically, this matches at the startingÁÔ¾ position of the input.Áœûû¨Ë“•ûû¨ËãØüñC@ Match the end of text. Specifically, this matches at the endingÁÔ¹¸º\œaûû¨Ëuwûû¨Ë¾<·üêIF Match the beginning of a line or the beginning of text. Specifically,Áü¸JG this matches at the starting position of the input, or at the positionÁü‡+( immediately following a `\n` character.Áœãûû¨Ë÷ùûû¨Ë™,‰üÍJG Match the end of a line or the end of text. Specifically, this matchesÁüœDA at the end position of the input, or at the position immediatelyÁüå preceding a `\n` character.ÁœÒûû¨Ëæèûû¨ËtL­ü�IÞ¼\üëJ±½\üºJG immediately following either a `\r` or `\n` character, but never afterÁü‰ a `\r` when a `\n` follows.Áœ ûû¨Ë´¶ûû¨ËO< üÅJŽ¿\ü”Dâ¿\üÝKH preceding a `\r` or `\n` character, but never before a `\n` when a `\r`Á„­  precedes it.Áœ‘ûû¨Ë¥§ûû¨Ë*L·"üØ GD Match an ASCII-only word boundary. That is, this matches a positionÁü¤!B? where the left adjacent character and right adjacent characterÁüë!GD correspond to a word and non-word or a non-word and word character.Áœõûû¨Ë  ûû¨Ë|ˆ#üÏ"41 Match an ASCII-only negation of a word boundary.ÁœEûû¨ËY[ûû¨Ëà\‡%ü¦#IF Match a Unicode-aware word boundary. That is, this matches a positionÁüô#BÉÅ\ü»$G•Æ\œvûû¨ËŠŒûû¨Ë»ŒÜ%ü¡%63 Match a Unicode-aware negation of a word boundary.ÁœGûû¨Ë[]ûû¨Ë–tþ'üü%KH Match the start of an ASCII-only word boundary. That is, this matches aÁüÌ&JG position at either the beginning of the haystack or where the previousÁü›'KH character is not a word character and the following character is a wordÁtë' character.Áœûû¨Ë14ûû¨Ëqd–*üœ(GD Match the end of an ASCII-only word boundary. That is, this matchesÁüè(FC a position at either the end of the haystack or where the previousÁü³)KH character is a word character and the following character is not a wordÁtƒ*¢Í\œ ûû¨Ë"ûû¨ËL„°,ü²*GD Match the start of a Unicode word boundary. That is, this matches aÁüþ*JúË\üÍ+KÎÌ\t�,¢Í\œ�ûû¨Ë•—ûû¨Ë'tÆ.üÐ,EB Match the end of a Unicode word boundary. That is, this matches aÁüš-DA position at either the end of the haystack or where the previousÁüã-K²Ï\t³.¢Í\œ¿ûû¨ËÓÕûû¨Ë”³0üä.FC Match the start half of an ASCII-only word boundary. That is, thisÁü¯/KH matches a position at either the beginning of the haystack or where theÁüÿ//, previous character is not a word character.Áœåûû¨Ëùûûû¨ËÝ„�2üÕ0DA Match the end half of an ASCII-only word boundary. That is, thisÁüž1EB matches a position at either the end of the haystack or where theÁüè10- following character is not a word character.ÁœÞûû¨Ëòôûû¨Ë¸¤ˆ4ü½2JG Match the start half of a Unicode word boundary. That is, this matchesÁüŒ3C@ a position at either the beginning of the haystack or where theÁüÔ3/êÕ\œ¶ûû¨ËÊÌûû¨Ë“”ð5ü¬4HE Match the end half of a Unicode word boundary. That is, this matchesÁüù4GD a position at either the end of the haystack or where the followingÁüÅ5&# character is not a word character.ÁœÚûû¨Ëîðûû¨Ën I!I!I!Ö¨ËI!֨˴ †´ I!I!ú0 ú0¨Ë¨ËBÿ³ ¹¶³ ´ I! º½×¨Ë¥!ب˷  g· ¥!¥!û0ü0ý0 û0¨Ë ü0€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ý0ÏÁBÿ¶ »Ã¶ · ¥!œ¥!%٨˹ ι %%%%þ0 þ0¨ËBÿ¸ ¼Ê¸ ¹ %L%Ú¨ËL%ڨ˼ ù±¼ L%L%ÿ0€1 ÿ0¨Ë €1¨ËBÿ» ½Î» ¼ L%î L%”ú[üÒY@= LookSet is a memory-efficient set of look-around assertions.Á“Z�ü—ZGD This is useful for efficiently tracking look-around assertions. ForÁüßZOL example, a [`thompson::NFA`](crate::nfa::thompson::NFA) provides propertiesÁܯ[ that return `LookSet`s.Á�<…\ãÎmŒÚ9†1¾ lº`ü“\IF The underlying representation this set is exposed to make it possibleÁüá\A> to store it somewhere efficiently. The representation is thatÁü§]<9 of a bitset, where each assertion occupies bit `i` whereÁÔè] `i = Look::as_repr()`.Á‡^�ü�^HE Note that users of this internal representation must permit the fullÁüÜ^EB range of `u16` values to be represented. For example, even if theÁü¦_KH current implementation only makes use of the 10 least significant bits,Áüö_?< it may use more bits in a future semver compatible release.Á$¾`½ ½ }>}>}>ÛãÎ}>ÛãÎÁ †Á }>}>�1 �1ãÎãÎBÿÀ ¾Ô[À Á }> ¿Û[ÜãÎ?ÝãÎÄ ÷Ä ??ãÎBÿà Ã Ä w?ÞãÎÆ ÎÆ w?w?w?w?‚1 ‚1ãÎBÿÅ Áê[Å Æ w?@ßãÎ@ßãÎÉ ù±É @@ƒ1„1 ƒ1ãÎ „1ãÎBÿÈ Âî[È É @î @´…§üô¥A> An iterator over all look-around assertions in a [`LookSet`].Á¶¦�üº¦2/ This iterator is created by [`LookSet::iter`].Á \�§éÏQBD|�¸’ŒË d¢§¢§ÛÊ Ê ãÎzbâéÏÍ †Í zbzb”1 ”1éÏéÏBÿÌ Çö¦Ì Í zbøbãéÏÏ  gÏ øbøb•1–1—1 •1éÏ –1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡—1ÏÁBÿÎ Èý¦Î Ï øbœøb´Ò³ü£«)& A matcher for look-around assertions.ÁÍ«�üÑ«NK This matcher permits configuring aspects of how look-around assertions areÁd ¬ matched.Á­¬�l±¬Áˆ-¿¬�üìOL A `LookMatcher` can change the line terminator used for matching multi-lineÁü“­*' anchors such as `(?m:^)` and `(?m:$)`.Á¾­�<­ãˆ-ÌÊ­óˆ-üä­.ãÝ>ü“® ¶²?¬´®šÞ>4Ê®ŸŠ-Ñ®�üÕ®'г?üý®'¼³?¥¯�ô©¯£â>üȯ>‰´?ü‡°!Ò´?ü©°&“�?а�üÔ°9šµ?|ޱÐŒ-üž±#ìµ?ü±,š¶?4ï±Ä�-üö±:ß¶?|±²ÐŒ-lÁ²Ü‘-üϲ(À·?4ø²Ä�-ÿ²�üƒ³.à�-<²³ãˆ-¡\ݳµÐŠúç�z²ƒqÑ œï³Dï³ÛÐ Ð ÚÀähäµÐÓ †Ó ähäh™1 ™1µÐµÐBÿÒ ÉóÒ Ó äh_iåµÐÕ  gÕ _i_iš1›1œ1 š1µÐ ›1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡œ1ÏÁBÿÔ ÊʳÔ Õ _iœ_i~ üÑ‚JG An error that occurs when the Unicode-aware `\w` class is unavailable.Áœƒ�ü ƒMJ This error can occur when the data tables necessary for the Unicode awareÁüîƒHE Perl character class `\w` are unavailable. The `\w` class is used toÁü·„LI determine whether a codepoint is considered a word character or not whenÁü„…NK determining whether a Unicode aware `\b` (or `\B`) matches at a particularÁlÓ…¡î@á…�üå…IF This error can only occur when the `unicode-word-boundary` feature isÁl¯† disabled.Á£Äà†‚Ñ]w•ÝkÂD × Ø ‚ÑBÿ~ 7Û‚ÑBÿÖ Ö × ù†ÛÖ Ö ³¢æ‚ÑÚ †Ú ³¢³¢Í1 Í1‚Ñ‚ÑBÿÙ ÍƆÙ Ú ³¢þ¢ç‚ÑÜ  gÜ þ¢þ¢Î1Ï1Ð1 Î1‚Ñ Ï1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ð1ÏÁBÿÛ Î͆Û Ü þ¢œþ¢ùÓÇg.aLº�áÔì"ùÔÔ&eÙÔ×eáBÿ§ô" ¹Ý çß ß Ý çÑÔ¦eÝ �à �à �à à Ý ¶ó"ùÔ®Oe¹Ôµe á�g�göô"�g�ûf‘gƒûf§~Ÿ½[l(ÚÃÿÿÿÿÿÿÑÔ‚!eÝ �â �â �â â Ý Êó"ùÔŠ"Ne¹Ô‘"e áìõ"Ãÿÿÿÿÿÿ  ¦Lî™á�æ æ ýë/ ø™ÿÒ�Éœ2ÌÛŸŸå ç óëÿÒBÿ  UáóëÿÒBÿä ä å óënp û™áä ä óë÷ºï�é é ýë/ºõŒJÙø™ÿÒê  gê ÖØ÷º÷ºà1á1â1 à1ÿÒ á1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡â1ÏÁBÿè ÙÁ™è ê óë÷ºœ÷ºìi#«\{#°Õë–Üѽ߮Õì \Æ#Óperf-literal-multisubstringÁü—'#ü–)#ü�4#<Æ#´ë ë r ô°Õî †î r r ô1 ô1°Õ°ÕBÿí âZ#í î r ¸ õ°Õð  gð ¸ ¸ õ1ö1÷1 õ1°Õ ö1€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡÷1ÏÁBÿï ãa#ï ð ¸ œ¸ a °<{$ýÕuÉ·o›Fò ó ц$ýÕBÿa 7Ãц$ýÕBÿñ ñ ò \ƒ$Ãñ ñ ц$Š$î úýÕö †ö î î €2 €2ýÕýÕBÿõ ðZ$õ ö î q ûýÕø  gø q q �2‚2ƒ2 �2ýÕ ‚2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ƒ2ÏÁBÿ÷ ña$÷ ø q œq ° ±4{%ÍÖ:Œ#KµI*ú û ÍÖBÿ° 6ÔÍÖBÿù ù ú ‚%Ôù ù e üÍÖý †ý e e Œ2 Œ2ÍÖÍÖBÿü òZ%ü ý e Þ ýÍÖÿ  gÿ Þ Þ �2Ž2�2 �2ÍÖ Ž2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡�2ÏÁBÿþ óa%þ ÿ Þ œÞ þ ³<¸ %�×cz[³¹ÞŒ�!‚!ƒ!�×Bÿþ ;Ô�×Bÿ€!€! �!À %Ô€!€!Ä %Ô€!€!ì ÿ�×…!†…!ì ì ˜2 ˜2�×�×Bÿ„!÷— %„! …!ì  €�ׇ! g‡!  ™2š2›2 ™2�× š2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡›2ÏÁBÿ†!øž %†! ‡! œ W€ µ<ñ%ù×ãêGKê<¸Ÿ‰!Š!‹!Œ!ù×BÿW€ ?Ôù×Bÿˆ!ˆ! ‰!ù%Ôˆ!ˆ!ý%Ôˆ!ˆ!�%Ôˆ!ˆ!ÿ ‚ù׎!†Ž!ÿ ÿ ¤2 ¤2ù×ù×Bÿ�!üÐ%�! Ž!ÿ ª ƒù×�! g�!ª ª ¥2¦2§2 ¥2ù× ¦2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡§2ÏÁBÿ�!ý×%�! �!ª œª Äi&·4{&áØûœ‡Ú�8é’!\Ò&Ó‰|–&Óµü§"&ü•5&ü‘:&üˆE&<Ò&õ‘!‘!  …áØ”!†”!    °2 °2áØáØBÿ“!�Z&“! ”!  f †áØ–! g–!f f ±2²2³2 ±2áØ ²2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡³2ÏÁBÿ•!‚a&•! –!f œf ¼i'¼,{'®ÙKî'`j«ù€˜!\À'ÓÞŒ]ü‘''ü�)'ü‡4'<À'„—!—!h ‹®Ùš!†š!h h ¼2 ¼2®Ù®ÙBÿ™!�Z'™! š!h ® Œ®Ùœ! gœ!® ® ½2¾2¿2 ½2®Ù ¾2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¿2ÏÁBÿ›!�a'›! œ!® œ® ¤ð((üÍ0(- A prefilter for accelerating regex searches.Áþ(�ü‚C(@ If you already have your literals that you want to search with,ÁüÆC(@ then the vanilla [`Prefilter::new`] constructor is for you. ButÁüŠD(A if you have an [`Hir`] value from the `regex-syntax` crate, thenÁüÏL(I [`Prefilter::from_hir_prefix`] might be more convenient. Namely, it usesÁüœL(I the [`regex-syntax::hir::literal`](regex_syntax::hir::literal) module toÁüéO(L extract literal prefixes for you, optimize them and then select and build aÁ´¹( prefilter matcher.ÁÐ(�üÔH(E A prefilter must have **zero false negatives**. However, by its veryÁü�K(H nature, it may produce false positives. That is, a prefilter will neverÁüéK(H skip over a position in the haystack that corresponds to a match of theÁüµG(D original regex pattern, but it *may* produce a match for a positionÁüýI(F in the haystack that does *not* correspond to a match of the originalÁüÇJ(G regex pattern. If you use either the [`Prefilter::from_hir_prefix`] orÁü’H(E [`Prefilter::from_hirs_prefix`] constructors, then this guarantee isÁüÛL(I upheld for you automatically. This guarantee is not preserved if you useÁü¨N(K [`Prefilter::new`] though, since it is up to the caller to provide correctÁü÷?(< literal strings with respect to the original regex pattern.Á·(�l»( # CloningÁÉ(�üÍN(K It is an API guarantee that cloning a prefilter is cheap. That is, cloningÁüœG(D it will not duplicate whatever heap memory is used to represent theÁ¼ä( underlying matcher.Áü(�l€(Áˆ-Ž(�ü’9(6 This example shows how to attach a `Prefilter` to theÁüÌK(H [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) in order to accelerateÁl˜( searches.Á¦(�<ª(ãˆ-̲(óˆ-üÌ&(Ó€Aüó#(ʼn-Ì—( Match, MatchKind,Á4±(ŸŠ-¸(�ü¼C(@ let pre = Prefilter::new(MatchKind::LeftmostFirst, &["Bruce "])Áü€ (›ñLô  (£â>ü¿ 9(6 .configure(PikeVM::config().prefilter(Some(pre)))Áôù ( .build(r"Bruce \w+")?;Áü˜!&(“�?|¿!(ÐŒ-üÏ!$(! Some(Match::must(0, 6..23)),Áüô!8(5 re.find(&mut cache, "Hello Bruce Springsteen!"),Á4­"(Ä�-ü´".(à�-<ã"(ãˆ-ë"(�üï"J(G But note that if you get your prefilter incorrect, it could lead to anÁ¬º#( incorrect result!ÁÐ#(�<Ô#(ãˆ-ÌÜ#(óˆ-üö#&(Ó€Aü�$#(ʼn-ÌÁ$(Öµ]4Û$(ŸŠ-â$(�üæ$( // This prefilter is wrong!Áü†%C(@ let pre = Prefilter::new(MatchKind::LeftmostFirst, &["Patti "])ÁüÊ%(›ñLôê%(£â>ü‰&9(ú¶]ôÃ&(¼·]üâ&&(“�?ü‰'9(6 // We find no match even though the regex does match.Á|Ã'(ÐŒ-lÓ'(Ü‘-üá'8(­¸]4š((Ä�-ü¡(.(à�-<Ð((ãˆ-ÁLû((ûÙ|‡þ=I¢˜™ž!Ÿ! !ÄÝ)(Ó«ŒÅ)(Ì¿)(Ý)(³�!�!„K„KK‡Kí ä7ˆKõÙä7‰K«ä7ƒ¢3à6ú�¸½‡l™*(Ó«Œ�*(Ìû)(<™*(³�!�!¬Ê*(Ó«Œ²*(̬*(tÊ*(³�!�!j ‘ûÙ¢!†¢!j j È2 È2ûÙûÙBÿ¡!�á((¡! ¢!j , ’ûÙ¤! g¤!, , É2Ê2Ë2 É2ûÙ Ê2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ë2ÏÁBÿ£!žè((£! ¤!, œ, ´Æ�(Â4Ö�(´Ûž/ѯÈù>¦!§!©!ª!¬!­!¯!°!²!³!µ!¶!¸!¹!§!¨!ÍÖ´ÛBÿª!«!�×´ÛBÿ­!®!ù×´ÛBÿ°!±!áØ´ÛBÿ³!´!®Ù´ÛBÿ¶!·!ýÕ´ÛBÿ¹!º!°Õ´ÛBÿº€ º€ ¥!¥! §!º€ º€ ÍÖ´ÛBÿ¥!¥!ýÄ]4ê�(¥!¥!ÍÖ �  � ¥!¥! ª! �  � �×´ÛBÿ¥!¥!òÅ]<ÿ�(¥!¥!�×\� Â\� ¥!¥! ­!\� \� ù×´ÛBÿ¥!¥!çÆ]<•ž(¥!¥!ù×­� ­� ¥!¥! °!­� ­� áØ´ÛBÿ¥!¥!ÜÇ]4ªž(¥!¥!áØþ� Âþ� ¥!¥! ³!þ� þ� ®Ù´ÛBÿ¥!¥!ÑÈ],½ž(¥!¥!®ÙO‚ ÂO‚ ¥!¥! ¶!O‚ O‚ ýÕ´ÛBÿ¥!¥!ÆÉ]<Ñž(¥!¥!ýÕ ‚  ‚ ¥!¥! ¹! ‚  ‚ °Õ´ÛBÿ¥!¥!»Ê]\ëž(¥!¥!°Õí% “´Û¼!†¼!í% í% ä2 ä2´Û´ÛBÿ»!Ÿ·�(»! ¼!í% Œ* ”´Û¾! g¾!Œ* Œ* å2æ2ç2 å2´Û æ2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ç2ÏÁBÿ½! ¾�(½! ¾!Œ* œŒ* ñ‚ ü—-)* A `usize` that can never be `usize::MAX`.ÁÅ)�üÉO)L This is similar to `core::num::NonZeroUsize`, but instead of not permittingÁü™3)0 a zero value, this does not permit a max value.ÁÍ)�üÑM)J This is useful in certain contexts where one wants to optimize the memoryÁüŸI)F usage of things that contain match offsets. Namely, since Rust slicesÁüéL)I are guaranteed to never have a length exceeding `isize::MAX`, we can useÁü¶K)H `usize::MAX` as a sentinel to indicate that no match was found. Indeed,Áü‚N)K types like `Option` have exactly the same size in memory as aÁdÑ) `usize`.ÁÞ)�üâ6)3 This type is defined to be `repr(transparent)` forÁü™=): `core::num::NonZeroUsize`, which is in turn defined to beÁü×$)! `repr(transparent)` for `usize`.ÁÑ\Ù) ÝÝŸëÏR{ À!Á!’Ó" ÝBÿñ‚ 7Í’Ó" ÝBÿ¿!¿!éŠ%då)Í¿!¿!’Ó"™@ ™@ ™@ £ Ý™@ £ ÝÄ!†Ä!™@ ™@ ë2 ë2 Ý ÝBÿÃ!½…)Ã! Ä!™@ ¾Œ)¤ ÝA ¥ ÝÇ!ÎÇ!A A A A ì2 ì2 ÝBÿÆ!¿’)Æ! Ç!A ŠA ¦ ÝÉ!ühÉ!ŠA ŠA í2î2 í2 Ý î2à¡BÿÈ!ÿÊ!Ê!À–)È!¹¹YŠA ʹYŠA É!ࡊA ƒŠA ŠA ŠA xB § ÝxB § ÝÍ!ù±Í!xB xB ï2ð2 ï2 Ý ð2 ÝBÿÌ!Áœ)Ì! Í!xB î xB ÝB ¨ ÝÏ!±²Ï!ÝB ÝB ñ2ò2 ñ2 Ý ò2 Ý–æBÿÎ!§)Î! Ï!ÝB î ÝB ùC © ÝÑ!îÑ!ùC ùC ó2ô2 ó2 Ý ô2 Ý�åBÿÐ!ó)Ð! Ñ!ùC î ùC Aƒ ü®+)( A type that represents a "small" index.ÁÚ)�üÞM)J The main idea of this type is to provide something that can index memory,Áü¬J)G but uses less memory than `usize` on 64-bit systems. Specifically, itsÁü÷M)J representation is always a `u32` and has `repr(transparent)` enabled. (SoÁüÅ@)= it is safe to transmute between a `u32` and a `SmallIndex`.)Á†)�üŠN)K A small index is typically useful in cases where there is no practical wayÁüÙL)I that the index will overflow a 32-bit integer. A good example of this isÁü¦K)H an NFA state. If you could somehow build an NFA with `2^30` states, itsÁüòJ)G memory usage would be exorbitant and its runtime execution would be soÁü½ M)J slow as to be completely worthless. Therefore, this crate generally deemsÁü‹!L)I it acceptable to return an error if it would otherwise build an NFA thatÁüØ!N)K requires a slice longer than what a 32-bit integer can index. In exchange,Áü§"J)G we can use 32-bit indices instead of 64-bit indices in various places.Áò")�üö"O)L This type ensures this by providing a constructor that will return an errorÁüÆ#J)G if its argument cannot fit into the type. This makes it much easier toÁü‘$M)J handle these sorts of boundary cases that are otherwise extremely subtle.Áß$)�üã$L)I On all targets, this type guarantees that its value will fit in a `u32`,Áü°%I)F `i32`, `usize` and an `isize`. This means that on 16-bit targets, forÁüú%F)C example, this type's maximum value will never overflow an `isize`,ÁüÁ&G)D which means it will never overflow a `i16` even though its internalÁü‰'$)! representation is still a `u32`.Á®')�ü²'K)H The purpose for making the type fit into even signed integer types likeÁüþ'M)J `isize` is to guarantee that the difference between any two small indicesÁüÌ(K)H is itself also a small index. This is useful in certain contexts, e.g.,Á¼˜)) for delta encoding.Á°))�Œ´)) # Other typesÁÆ))�üÊ)M)J The following types wrap `SmallIndex` to provide a more focused use case:Á˜*)�üœ*D)A * [`PatternID`] is for representing the identifiers of patterns.Áüá*I)F * [`StateID`] is for representing the identifiers of states in finiteÁü«+0)- automata. It is used for both NFAs and DFAs.ÁÜ+)�¤à+) # RepresentationÁõ+)�üù+J)G This type is always represented internally by a `u32` and is marked asÁüÄ,N)K `repr(transparent)`. Thus, this type always has the same representation asÁü“-M)J a `u32`. It is thus safe to transmute between a `u32` and a `SmallIndex`.Áá-)�tå-) # IndexingÁô-)�üø-D)A For convenience, callers may use a `SmallIndex` to index slices.Á½.)�dÁ.)¼�5Î.)�üÒ.O)L While a `SmallIndex` is meant to guarantee that its value fits into `usize`Áü¢/I)F without using as much space as a `usize` on all targets, callers mustÁüì/L)I not rely on this property for safety. Callers may choose to rely on thisÁü¹0O)L property for correctness however. For example, creating a `SmallIndex` withÁü‰1O)L an invalid value can be done in entirely safe code. This may in turn resultÁüÙ1')$ in panics or silent logical errors.ÁÓTõ2)ÈÞµi#²?h ÛÓ!Ô!ÈÞBÿAƒ 6ÍÈÞBÿÒ!Ò! Ó!€3)ÍÒ!Ò!©F ©F ©F «ÈÞ©F «ÈÞ×!†×!©F ©F ø2 ø2ÈÞÈÞBÿÖ!Æ�2)Ö! ×!©F Ç–2)¬ÈÞ G ­ÈÞÚ! gÚ! G  G ù2ú2û2 ù2ÈÞ ú2€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡û2ÏÁBÿÙ!Èœ2)Ù! Ú! G œ G /H ®ÈÞÜ!÷Ü!/H /H ÈÞBÿÛ!Û! Ü! H ¯ÈÞÞ!ÎÞ! H  H  H  H ü2 ü2ÈÞBÿÝ!ʬ2)Ý! Þ! H I °ÈÞà!ühà!I I ý2þ2 ý2ÈÞ þ2à¡Bÿß!ÿá!á!˰2)ß!¹¹YI ʹYI à!à¡I ƒI I I ÝI ±ÈÞÝI ±ÈÞä!ù±ä!ÝI ÝI ÿ2€3 ÿ2ÈÞ €3ÈÞBÿã!̶2)ã! ä!ÝI î ÝI :J ²ÈÞæ!±²æ!:J :J �3‚3 �3ÈÞ ‚3ÈÞ–æBÿå!ÍÁ2)å! æ!:J î :J SK ³ÈÞè!îè!SK SK ƒ3„3 ƒ3ÈÞ „3ÈÞ�åBÿç!ÎÍ2)ç! è!SK î SK Ô¨l)ü�jB)? This error occurs when a small index could not be constructed.Áàj)�üäjN)K This occurs when given an integer exceeding the maximum small index value.Á³k)�ü·kI)F When the `std` feature is enabled, this implements the `Error` trait.ÁÔ|³l)¿á3ÉüxÄŒc|ê!tÉl)LÉl)Íé!é!Ï^ ´¿áì!†ì!Ï^ Ï^ �3 �3¿á¿áBÿë!ÏŠl)ë! ì!Ï^ Q_ µ¿áî! gî!Q_ Q_ �3‘3’3 �3¿á ‘3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡’3ÏÁBÿí!Бl)í! î!Q_ œQ_ ”` ¶¿áð!Îð!”` ”` ”` ”` “3 “3¿áBÿï!јl)ï! ð!”` a ·¿áa ·¿áó!ù±ó!a a ”3•3 ”3¿á •3¿áBÿò!Òœl)ò! ó!a î a ü‹q )Öt�q)¾â-‰Ø?�ãû=õ!ä²q)²q)Íô!ô!ðü´a ¹¾â÷!†÷!´a ´a š3 š3¾â¾âBÿö!Õüp)ö! ÷!´a 3b º¾âù! gù!3b 3b ›3œ3�3 ›3¾â œ3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡�3ÏÁBÿø!Öƒq)ø! ù!3b œ3b �ƒ üîÄG)D The identifier of a regex pattern, represented by a [`SmallIndex`].Á¶Å)�üºÅK)H The identifier for a pattern corresponds to its relative position amongÁü†ÆJ)G other patterns in a single finite state machine. Namely, when buildingÁüÑÆK)H a multi-pattern regex engine, one must supply a sequence of patterns toÁü�ÇH)E match. The position (starting at 0) of each pattern in that sequenceÁüæÇN)K represents its identifier. This identifier is in turn used to identify andÁüµÈ3)0 report matches of that pattern in various APIs.ÁéÈ)�üíÈL)I See the [`SmallIndex`] type for more information about what it means forÁüºÉ')$ a pattern ID to be a "small index."ÁâÉ)�üæÉ))& Note that this type is defined in theÁü�ÊH)E [`util::primitives`](crate::util::primitives) module, but it is alsoÁüÙÊ:)7 re-exported at the crate root due to how common it is.Á×LúË)‹ã +[¤¿öTƒû!ü!ÈÞ‹ãBÿ�ƒ 8ÍÈÞ‹ãBÿú!ú!�Ý%T„Ì)Íú!ú!ÈÞbc bc bc »‹ãbc »‹ãÿ!†ÿ!bc bc Ÿ3 Ÿ3‹ã‹ãBÿþ!×�Ë)þ! ÿ!bc ؤË)¼‹ãìc ½‹ã‚"÷‚"ìc ìc ‹ãBÿ�"�" ‚"ad ¾‹ã„"΄"ad ad ad ad  3  3‹ãBÿƒ"Ú³Ë)ƒ" „"ad Úd ¿‹ã†"üh†"Úd Úd ¡3¢3 ¡3‹ã ¢3à¡Bÿ…"ÿ‡"‡"Û·Ë)…"¹¹YÚd ʹYÚd †"à¡Úd ƒÚd Úd Úd Ée À‹ãÉe À‹ãŠ"ù±Š"Ée Ée £3¤3 £3‹ã ¤3‹ãBÿ‰"ܽË)‰" Š"Ée î Ée /f Á‹ãŒ"±²Œ"/f /f ¥3¦3 ¥3‹ã ¦3‹ã–æBÿ‹"ÝÈË)‹" Œ"/f î /f Ig ‹ãŽ"îŽ"Ig Ig §3¨3 §3‹ã ¨3‹ã�åBÿ�"ÞÔË)�" Ž"Ig î Ig რü’Ì@)= The identifier of a finite automaton state, represented by aÁœÓÌ) [`SmallIndex`].ÁçÌ)�üëÌN)K Most regex engines in this crate are built on top of finite automata. EachÁüºÍN)K state in a finite automaton defines transitions from its state to another.Áü‰ÎJ)G Those transitions point to other states via their identifiers, i.e., aÁüÔÎL)I `StateID`. Since finite automata tend to contain many transitions, it isÁü¡ÏD)A much more memory efficient to define state IDs as small indices.ÁæÏ)�üêÏL)Ý‘^ü·Ð%)" a state ID to be a "small index."ÁØ<ÃÑ)³äÄVÆ—r`�"‘"ÈÞ³äBÿრ8ÍÈÞ³äBÿ�"�"“�&TËÑ)Í�"�"ÈÞ¯g ¯g ¯g óä¯g óä”"†”"¯g ¯g ©3 ©3³ä³äBÿ“"ßæÐ)“" ”"¯g àíÐ)ijä3h ųä—"÷—"3h 3h ³äBÿ–"–" —"¨h Ƴä™"Ι"¨h ¨h ¨h ¨h ª3 ª3³äBÿ˜"âüÐ)˜" ™"¨h i dzä›"üh›"i i «3¬3 «3³ä ¬3à¡Bÿš"ÿœ"œ"ã€Ñ)š"¹¹Yi ʹYi ›"à¡i ƒi i i ûi ȳäûi ȳäŸ"ù±Ÿ"ûi ûi ­3®3 ­3³ä ®3³äBÿž"ä†Ñ)ž" Ÿ"ûi î ûi aj ɳä¡"±²¡"aj aj ¯3°3 ¯3³ä °3³ä–æBÿ "å‘Ñ) " ¡"aj î aj {k ʳä£"î£"{k {k ±3²3 ±3³ä ²3³ä�åBÿ¢"æ�Ñ)¢" £"{k î {k Pç¨v)Ù‹ã¥"¦"§"¨"©"ª"«"¬"­"®"¯"°"±"³"µ"·" çäv)°çÁv)¶øMçîv)¤"¤"‹ã°çäw)øç w7)ÚùM(çîw)¤"¤"¨ç½x)˜ç�x)úúM çÇx)¤"¤"‹ã¨çÃy)øçûx;)›üM çÍy)¤"¤"øçÝ{/)øçúy>)¿ýMçÅz)�øçÕzC)“þM¨ç¥{)àþMçä{)êíBÿ¤"¤"µä�«n øçš�1)øçê|B)Ö�NÀç¹})¢‚NçÞ})�øçî};)Ï‚Nøç¶~:)”ƒNøçý~@)؃NøçÊ()¢„Nçÿ)�øç�€?)à„NàçÛ€)ª…Nhç§�)‹ãBÿ¤"¤" ª"�Êo øçÿ‚")øç¡‚;)Ù‡N 熃)‹ãBÿ¤"¤"µ÷(�~q øçô…%)øçè„A)·‹NØç¶…)ƒŒN@ç�†)³3 ³3‹ãBÿ¤"çІ)¤"Ú°  狆)øçÛ‡!)øçÙ†?)‚ŽN˜ç¥‡)ÌŽN0çè‡)´3 ´3‹ãBÿ¤"çï‡)¤" ­" çð‡)øç‰!)øçºˆ?)Ã�NÈ熉)ýÚM0çω)µ3 µ3‹ãBÿ¤"çÖ‰)¤"¥˜ ç׉)øç«‹!)øç¡Š>)õ’NàçìŠ)¾“N0縋)¶3 ¶3‹ãBÿ¤"ç¿‹)¤" ¯" çÀ‹)øç´Ž)øçŠŒ0)¾•NçÇŒ)�øç׌@)†–Nøç¤�A)Ñ–Nøçò�)�—N@绎)·3 ·3‹ãBÿ¤"çÄŽ)¤" °" çÅŽ)øçÌ‘;)øç“�B)–™Nøçâ�&)ÞàMç•�)�øç¥�@)ÿ™Nøçò�7)ÊšNhçÓ‘)ïçêíBÿ¤"¤" ±"¹•ix çí‘)øçµ•7)øçï’B)–™Nøç¾“&)ÞàMçñ“)�øç�”B)àžNøçДB)­ŸN¸ç¼•)ïç‹ãBÿ¤"¤" ³"¹•Ly çà•)øçÆ—$)øçÌ–?) ¢NX瘗)«Ê4XçÍ—)¸3 ¸3‹ãïçBÿ¤"çÙ—)¤" µ" çÚ—)çè—)øç“š') 硚)ìçBÿ¤"¤"°ž¶ç¦š)øçý›)Ù‹ã¹" g¹"øç«œ@)箜)¹3º3»3 ¹3‹ã º3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡»3ÏÁBÿ¸"粜)¸" ¹" 糜)œç¹œ)øçß�')Ù�»"»"ýë/çä�)üß¼"½"�ý‘ý½"!X畞)0çšž)º"º"óëøçÉž#)(çÌž)€¼3 ¼3üߋ㠼3óëBÿº"çÒž)º" ½"óë çÓž)÷){ øç¸Ÿ*)Ù�¿"¿"ýë/罟)üßÀ"ª#À"øç‡ /)H犠)€½3 ½3üߋ㠽3óëBÿ¾"ç” )¾" À"óë ç™ )÷Y| øç¨¡*)Ó«ˆçŒ¡)È熡)Ù�Â"Â"ýë/ç­¡)œàÃ"Ä"�ý‘ýÄ"!Xçá¡)0çæ¡)Á"Á"óëøç•¢#)(瘢)€¾3 ¾3œà‹ã ¾3óëBÿÁ"瞢)Á" Ä"óë 矢)÷i} øç¦£-)Ó«ˆçŠ£)Èç„£)Ù�Æ"Æ"ýë/ç«£)œàÇ"ª#Ç"øçø£/)Hçû£)€¿3 ¿3œà‹ã ¿3óëBÿÅ"ç…¤)Å" Ç"óë çФ)÷i~ ¸ç÷¤)Ù‹ãÉ"®É"Øç�¥) ç ¥)‹ãBÿÈ"È" É"�(祥)Øç‹¦)Ù‹ãË"Ì"µ¶Ì"P給)(约)Ê"Ê"êæøçÕ¦.)@çئ)êíBÿÊ"Ê" Ì"�(çá¦)Øçì§)Ù‹ãÎ"Ï"µ¶Ï"Pç–¨)(盨)Í"Í"êæøç¶¨.)@繨)êíBÿÍ"Í" Ï"�(ç¨)ØçÍ©)Ù‹ãÑ"Ò"µ¶Ò"Pç÷©)(çü©)Ð"Ð"êæøç—ª.)@皪)êíBÿÐ"Ð" Ò"�(磪)è箫)Ù‹ãÔ"Õ"µ¶Õ"PçÚ«)(çß«)Ó"Ó"êæøçú«0)@çý«)êíBÿÓ"Ó" Õ"�(熬)HçÕ±)Ùêæ×"ðçµ²)øçí±;)òÖNHç¼²)Ç3 Ç3êæBÿÖ"çƲ)Ö" ×" çDz)øçº³)Ó‰xç ³)¸çš³)Ùêæøçæ³ )ÙêæÚ"¥gÚ"øç•´@)瘴)È3É3Ê3 È3êæ É3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ê3ÏÁBÿÙ"眴)Ù" Ú" ç�´)œç£´)Pç·)ÙìçÜ"ØçÛ·)çÞ·)ÍìçBÿÛ"Û" Ü"¶çâ·)¸çÞº)ÙìçÞ"ß"ÅQÆQß"Hç„») 牻)Ý"Ý"‹ãøç¤»#) ç§»)Ï3 Ï3ìç�ÇBÿÝ"笻)Ý" ß" ç±»)øçÇ¿2)Ù…á"á"Þÿ?çÌ¿)éƒ@@çÏ¿)ŽQøèˆçÚ¿)¼èâ",.èçˆÀ)ç‹À)Íøè¼èBÿà"à" â"øèÇ,M‡ øç Á?)Ù…ä"ä"Þÿ?ç¥Á)éƒ@@ç¨Á)üÐ^ˆç³Á)¼èå"æ"ÅQÆQæ"35HçîÁ) çóÁ)ã"ã"÷“&øç™Â.) çœÂ)Ô3 Ô3¼è²“&Bÿã"ç¡Â)ã" æ"øè ç¦Â)2„ øçá®<)áÒN禯)�øç²¯C)µÓNPçþ¯)Ê…Eç‘°)�øç�°B)žÔNPçè°)ëÔNÍtöÑ)êæX)ESµ4Žè"é"¿áêæBÿ2„ 8Í¿áêæBÿç"ç"ÑÝ%x纱)Íç"ç"¿áõ~ Óêæë"†ë"õ~ õ~ À3 À3êæêæBÿê"넱)ê" ë"õ~ p Ôêæí" gí"p p Á3Â3Ã3 Á3êæ Â3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ã3ÏÁBÿì"싱)ì" í"p œp “€ Õêæï"Îï"“€ “€ “€ “€ Ä3 Ä3êæBÿî"í’±)î" ï"“€ B� ÖêæB� Öêæò"ù±ò"B� B� Å3Æ3 Å3êæ Æ3êæBÿñ"î–±)ñ" ò"B� î B� †„ Ïl†Ò)ìçÍÜ JFñùô"õ"¾âìçBÿ†„ 9;âìçBÿó"ó" ô"p稷)Íó"ó"¾âã� Ùìç÷"†÷"ã� ã� Ë3 Ë3ìçìçBÿö"òù¶)ö" ÷"ã� ^‚ Úìçù" gù"^‚ ^‚ Ì3Í3Î3 Ì3ìç Í3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Î3ÏÁBÿø"ó€·)ø" ù"^‚ œ^‚ øçè¾U)ÑŒ•Ò)…û"û"Þÿ?ç„¿)¼èµÝwÃ7{t0ü"ý"#%(ç•¿)ç•¿)Íú"ú"øèP稿)稿)Íú"ú"ìçæƒ Þ…ÿ"ÿ"Þÿ?˜…øèù„¿)¼è€#†€#¼¾æƒ æƒ Ð3 Ð3¼è¼èBÿþ"ùѾ)þ" €#øèæƒ ©„ ß…‚#‚#Þÿ?IŸgøèú„¿)¼èƒ# gƒ#nq©„ ©„ Ñ3Ò3Ó3 Ñ3¼è Ò3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ó3ÏÁBÿ�#úؾ)�# ƒ#øè©„ œ©„ Pû¨v)Ú³ä…#†#‡#ˆ#‰#Š#‹#Œ#�#Ž#�#�#‘#“#•#—# ûäv)°ûÁv)¶øMûîv)„#„#³ä°ûäw)øû w7)ÚùM(ûîw)„#„#¨û½x)˜û�x)úúM ûÇx)„#„#³ä¨ûÃy)øûûx;)›üM ûÍy)„#„#øûÝ{/)øûúy>)¿ýMûÅz)�øûÕzC)“þM¨û¥{)àþMûä{)äø Bÿ„#„#»õ �½Ž øûš�1)øûê|B)Ö�NÀû¹})¢‚NûÞ})�øûî};)Ï‚Nøû¶~:)”ƒNøûý~@)؃NøûÊ()¢„Nûÿ)�øû�€?)à„NàûÛ€)ª…Nhû§�)³äBÿ„#„#Á†�Ü� øûÿ‚")øû¡‚;)Ù‡N û†ƒ)³äBÿ„#„# ‹#��‘ øûô…%)øûè„A)·‹NØû¶…)ƒŒN@û�†)Õ3 Õ3³äBÿ„#ûІ)„#¡… û‹†)øûÛ‡!)øûÙ†?)‚ŽN˜û¥‡)ÌŽN0ûè‡)Ö3 Ö3³äBÿ„#ûï‡)„# �# ûð‡)øû‰!)øûºˆ?)Ã�NÈû†‰)ýÚM0ûω)×3 ×3³äBÿ„#ûÖ‰)„#²˜  û׉)øû«‹!)øû¡Š>)õ’NàûìŠ)¾“N0û¸‹)Ø3 Ø3³äBÿ„#û¿‹)„# �# ûÀ‹)øû´Ž)øûŠŒ0)¾•NûÇŒ)�øû׌@)†–Nøû¤�A)Ñ–Nøûò�)�—N@û»Ž)Ù3 Ù3³äBÿ„#ûÄŽ)„# �# ûÅŽ)øûÌ‘;)øû“�B)–™Nøûâ�&)ÞàMû•�)�øû¥�@)ÿ™Nøûò�7)ÊšNhûÓ‘)ïçäø Bÿ„#„# ‘#¹•u˜ ûí‘)øûµ•7)øûï’B)–™Nøû¾“&)ÞàMûñ“)�øû�”B)àžNøûДB)­ŸN¸û¼•)ïç³äBÿ„#„#¡é¹•V™ ûà•)øûÆ—$)øûÌ–?) ¢NXû˜—)«Ê4XûÍ—)Ú3 Ú3³äïçBÿ„#ûÙ—)„# •# ûÚ—)ûè—)øû“š') û¡š)¬ëBÿ„#„#‡Î&¶û¦š)øûý›)Ú³ä™# g™#øû«œ@)û®œ)Û3Ü3Ý3 Û3³ä Ü3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ý3ÏÁBÿ˜#û²œ)˜# ™# û³œ)œû¹œ)øûß�')Ú�›#›#ýë/ûä�)üßœ#�#�ý‘ý�#!Xû•ž)0ûšž)š#š#óëøûÉž#)(ûÌž)€Þ3 Þ3üß³ä Þ3óëBÿš#ûÒž)š# �#óë ûÓž)÷1› øû¸Ÿ*)Ú�Ÿ#Ÿ#ýë/û½Ÿ)üß #ª# #øû‡ /)HûŠ )€ß3 ß3üß³ä ß3óëBÿž#û” )ž#  #óë û™ )÷aœ øû¨¡*)Ó«ˆûŒ¡)Èû†¡)Ú�¢#¢#ýë/û­¡)œà£#¤#�ý‘ý¤#!Xûá¡)0ûæ¡)¡#¡#óëøû•¢#)(û˜¢)€à3 à3œà³ä à3óëBÿ¡#ûž¢)¡# ¤#óë ûŸ¢)÷q� øû¦£-)Ó«ˆûŠ£)Èû„£)Ú�¦#¦#ýë/û«£)œà§#ª#§#øûø£/)Hûû£)€á3 á3œà³ä á3óëBÿ¥#û…¤)¥# §#óë ûФ)÷qž ¸û÷¤)Ú³ä©#®©#Øû�¥) û ¥)³äBÿ¨#¨# ©#�(û¥¥)Øû‹¦)Ú³ä«#¬#µ¶¬#Pûµ¦)(ûº¦)ª#ª#ªêøûÕ¦.)@ûئ)äø Bÿª#ª# ¬#�(ûá¦)Øûì§)Ú³ä®#¯#µ¶¯#Pû–¨)(û›¨)­#­#ªêøû¶¨.)@û¹¨)äø Bÿ­#­# ¯#�(û¨)ØûÍ©)Ú³ä±#²#µ¶²#Pû÷©)(ûü©)°#°#ªêøû—ª.)@ûšª)äø Bÿ°#°# ²#�(û£ª)èû®«)Ú³ä´#µ#µ¶µ#PûÚ«)(ûß«)³#³#ªêøûú«0)@ûý«)äø Bÿ³#³# µ#�(û†¬)HûÕ±)Úªê·#ðûµ²)øûí±;)òÖNHû¼²)é3 é3ªêBÿ¶#ûƲ)¶# ·# ûDz)øûº³)Ó‰xû ³)¸ûš³)Úªêøûæ³ )Úªêº#¥gº#øû•´@)û˜´)ê3ë3ì3 ê3ªê ë3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ì3ÏÁBÿ¹#ûœ´)¹# º# û�´)œû£´)Pû·)Ú¬ë¼#ØûÛ·)ûÞ·)ͬëBÿ»#»# ¼#¶ûâ·)¸ûÞº)Ú¬ë¾#¿#ÅQÆQ¿#Hû„») û‰»)½#½#³äøû¤»#) û§»)ñ3 ñ3¬ë¨¨Bÿ½#û¬»)½# ¿# û±»)øûÇ¿2)Ú…Á#Á#Þÿ?ûÌ¿)éƒ@@ûÏ¿)üÐ^ˆûÚ¿)üëÂ#$&èûˆÀ)û‹À)ÍøèüëBÿÀ#À# Â#øèÇ,/§ øû Á?)Ú…Ä#Ä#Þÿ?û¥Á)éƒ@@û¨Á)üÐ^ˆû³Á)üëÅ#Æ#ÅQÆQÆ#35HûîÁ) ûóÁ)Ã#Ã#…Ó&øû™Â.) ûœÂ)ö3 ö3üëÀÒ&BÿÃ#û¡Â)Ã# Æ#øè û¦Â)Ú„ øûá®<)áÒNû¦¯)�øû²¯C)µÓNPûþ¯)Ê…Eû‘°)�øû�°B)žÔNPûè°)ëÔNâdÄÒ)ªê•W-#íx—âÈ#É#¿áªêBÿÚ„ 8Í¿áªêBÿÇ#Ç#ã�&xûº±)ÍÇ#Ç#¿á÷ž èªêË#†Ë#÷ž ÷ž â3 â3ªêªêBÿÊ#ÿ„±)Ê# Ë#÷ž uŸ éªêÍ# gÍ#uŸ uŸ ã3ä3å3 ã3ªê ä3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡å3ÏÁBÿÌ#€‹±)Ì# Í#uŸ œuŸ ”  êªêÏ#ÎÏ#”  ”  ”  ”  æ3 æ3ªêBÿÎ#�’±)Î# Ï#”  8¡ ëªê8¡ ëªêÒ#ù±Ò#8¡ 8¡ ç3è3 ç3ªê è3ªêBÿÑ#‚–±)Ñ# Ò#8¡ î 8¡ .… ä\ÒÒ)¬ë tÎDá:†Ô#Õ#¾â¬ëBÿ.… 9;â¬ëBÿÓ#Ó# Ô#pû¨·)ÍÓ#Ó#¾âÓ¡ î¬ë×#†×#Ó¡ Ó¡ í3 í3¬ë¬ëBÿÖ#†ù¶)Ö# ×#Ó¡ Q¢ ï¬ëÙ# gÙ#Q¢ Q¢ î3ï3ð3 î3¬ë ï3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ð3ÏÁBÿØ#‡€·)Ø# Ù#Q¢ œQ¢ øûè¾U)æ|ßÒ)…Û#Û#Þÿ?û„¿)üë2íãȳ‹Õ"Ü#Ý##%(û•¿)û•¿)ÍÚ#Ú#øèPû¨¿)û¨¿)ÍÚ#Ú#¬ëÏ£ ó…ß#ß#Þÿ?˜’à^�„¿)üëà#†à#´¶Ï£ Ï£ ò3 ò3üëüëBÿÞ#�Ѿ)Þ# à#øèÏ£ �¤ ô…â#â#Þÿ?AÄá^Ž„¿)üëã# gã#^a�¤ �¤ ó3ô3õ3 ó3üë ô3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡õ3ÏÁBÿá#Žؾ)á# ã#øè�¤ œ�¤ ŒÕ!üÏIF The configuration used to determine a DFA's start state for a search.Á™�ü�OL A DFA has a single starting state in the typical textbook description. ThatÁüíOL is, it corresponds to the set of all starting states for the NFA that builtÁü½LI it, along with their epsilon closures. In this crate, however, DFAs haveÁüŠ41 many possible start states due to a few factors:Á¿�üÃMJ * DFAs support the ability to run either anchored or unanchored searches.Áü‘MJ Each type of search needs its own start state. For example, an unanchoredÁüßGD search requires starting at a state corresponding to a regex with aÁü§;8 `(?s-u:.)*?` prefix, which will match through anything.ÁüãJG * DFAs also optionally support starting an anchored search for any oneÁü®EB specific pattern. Each such pattern requires its own start state.ÁüôLI * If a look-behind assertion like `^` or `\b` is used in the regex, thenÁüÁNK the DFA will need to inspect a single byte immediately before the start ofÁü� 1. the search to choose the correct start state.Á �üÆ OL Indeed, this configuration precisely encapsulates all of the above factors.Áü– IF The [`Config::anchored`] method sets which kind of anchored search toÁüà JG perform while the [`Config::look_behind`] method provides a way to setÁü« DA the byte that occurs immediately before the start of the search.Áð �üô NK Generally speaking, this type is only useful when you want to run searchesÁüà JG without using an [`Input`]. In particular, an `Input` wants a haystackÁüŽ GD slice, but callers may not have a contiguous sequence of bytes as aÁüÖ KH haystack in all cases. This type provides a lower level of control suchÁü¢MJ that callers can provide their own anchored configuration and look-behindÁ¤ð byte explicitly.Á…�l‰Áˆ-—�ü›KH This shows basic usage that permits running a search with a DFA withoutÁüç" using the `Input` abstraction.ÁŠ�<Žãˆ-Ì–óˆ-ü° æœ.¤Ñ util::start,ÁŒæ–³74øŸŠ-ÿ�üƒ0- let dfa = dense::DFA::new(r"(?-u)\b\w+\b")?;Áä´ let haystack = "quartz";ÁÑ�üÕ>; let config = start::Config::new().anchored(Anchored::Yes);Áü”.+ let mut state = dfa.start_state(&config)?;ÁüÃ*' for &b in haystack.as_bytes().iter() {Áüî)îí6,˜ð×0üž&Æï6üÅ'öï6í�üñ.à�-< ãˆ-¨�ü¬JG This example shows how to correctly run a search that doesn't begin atÁü÷KH the start of a haystack. Notice how we set the look-behind byte, and asÁüÃ0- a result, the `\b` assertion does not match.Áô�<øãˆ-Ì€óˆ-üš æœ.¤»¤©_ŒÐ–³74⟊-é�üí0è©_äž¡ª_»�ü¿%" let config = start::Config::new()Áüå  .anchored(Anchored::Yes)Áü†! .look_behind(Some(b'q'));Áü¨.›«_ü×2/ for &b in haystack.as_bytes().iter().skip(1) {ÁüŠ)îí6,´ð×0üº&Æï6„á // No match!Áüò(% assert!(!dfa.is_match_state(state));Á›�üŸ.à�-<Îãˆ-Ö�üÚKH If we had instead not set a look-behind byte, then the DFA would assumeÁü¦OL that it was starting at the beginning of the haystack, and thus `\b` shouldÁüöFC match. This in turn would result in erroneously reporting a match:Á½�<Áãˆ-ÌÉóˆ-üã æœ.¤„¤©_Œ™–³74«ŸŠ-²�ü¶0è©_ä硪_„�üˆ-* // Whoops, forgot the look-behind byte...Áü¶>Óª_üõ.›«_ü¤2ô°_ü×)îí6,� ð×0ü‡ &Æï6ü® +( // And now we get a match unexpectedly.ÁüÚ 'öï6‚!�ü†!.à�-<µ!ãˆ-Û4à!äìdkõØŠhãúå#æ#¼í!\í!—ä#ä#�¥”Š"DŠ"—ä#ä#Å‚0­ õäìè#†è#0­ 0­ ÷3 ÷3äìäìBÿç#�Æ!ç# è#0­ ­ öäìê# gê#­ ­ ø3ù3ú3 ø3äì ù3€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ú3ÏÁBÿé#�Í!é# ê#­ œ­ ô§<Üd¹<³íÓç‚j²1˜ì#ŒÌ<Ì<—ë#ë#ƒà&Ù<»¯ ÷³íï#†ï#»¯ »¯ �4 �4³í³íBÿî#‘Ÿ<î# ï#»¯ ¬Îfá,Þfôíãs0¿mñ#ò#ô#õ#÷#ø#ú#û#ý#þ#€$�$ó#ò#ö#õ#ù#ø#ü#û#ÿ#þ#‚$�$\·gáð#ð#ôíð#ð#ôí ÅgD»háð#ð#ôíð#ð#ôí Æh$Àiáð#ð#ôíð#ð#ôí Çi4Ðjáð#ð#ôíð#ð#ôí Ùj4âkáð#ð#ôíð#ð#ôí ëk¤ûoáð#ð#ôíð#ð#ôí ’pÛ° Û° Û° üôíÛ° üôí…$†…$Û° Û° ‹4 ‹4ôíôíBÿ„$šªf„$ …$Û° ›±fýôí7± þôíˆ$ gˆ$7± 7± Œ4�4Ž4 Œ4ôí �4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ž4ÏÁBÿ‡$œ·f‡$ ˆ$7± œ7± å² ÿôíŠ$Ί$å² å² å² å² �4 �4ôíBÿ‰$�¾f‰$ Š$å² ³ € ôí³ € ôí�$ù±�$³ ³ �4‘4 �4ôí ‘4ôíBÿŒ$žÂfŒ$ �$³ î ³ ŒÒ"*üáN*K A common set of configuration options that apply to the syntax of a regex.Á°*�ü´L*I This represents a group of configuration options that specifically applyÁü�I*F to how the concrete syntax of a regular expression is interpreted. InÁüË3*0 particular, they are generally forwarded to theÁüÿ\*Y [`ParserBuilder`](https://docs.rs/regex-syntax/*/regex_syntax/struct.ParserBuilder.html)ÁTÜ* in theÁüç2*/ [`regex-syntax`](https://docs.rs/regex-syntax)Áüš B*? crate when building a regex from its concrete syntax directly.ÁÝ *�üá O*L These options are defined as a group since they apply to every regex engineÁü±!N*K in this crate. Instead of re-defining them on every engine's builder, theyÁü€"3*0 are instead provided here as one cohesive unit.Áã4Ý"*Ëï©ÍüéÀ‹àñ�$�$‘$’$“$”$•$–$—$˜$™$´ê"*„ê"*ºŽ$Ž$„†#*T†#*ºŽ$Ž$Ôœ#*¤œ#*ºŽ$Ž$T¼#*$¼#*ºŽ$Ž$œÌ#*|Ì#*ºŽ$Ž$„å#*Tå#*ºŽ$Ž$¼û#*Œû#*ºŽ$Ž$l˜$*<˜$*ºŽ$Ž$T«$*$«$*ºŽ$Ž$|»$*T»$*ºŽ$Ž$\Ð$*,Ð$*ºŽ$Ž$Z» Z» Z» � ËïZ» � Ëïœ$†œ$Z» Z» š4 š4ËïËïBÿ›$ ½"*›$ œ$Z» ¡Ä"*‚ ËïÈ» ƒ ËïŸ$ gŸ$È» È» ›4œ4�4 ›4Ëï œ4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡�4ÏÁBÿž$¢Ê"*ž$ Ÿ$È» œÈ» üÑ ü¶>; A hack to align a smaller type `B` with a bigger type `T`.Áõ�üùDA The usual use of this is with `B = [u8]` and `T = u32`. That is,Áü¾FC it permits aligning a sequence of bytes on a 4-byte boundary. ThisÁü…FC is useful in contexts where one wants to embed a serialized [denseÁüÌMJ DFA](crate::dfa::dense::DFA) into a Rust a program while guaranteeing theÁüš# alignment required for the DFA.Á¾�üÂMJ See [`dense::DFA::from_bytes`](crate::dfa::dense::DFA::from_bytes) for anÁü�$! example of how to use this type.Áä<Üþ¡$�¢$¡$¢$ÿÆæñ4çÕ×2 ï¯ñº«ƒ"¹Á£$¥$ ä/1”µüø85 A zero-sized field indicating the alignment we want.Á4¹ $ $܇' Åd�üÍ>; A possibly non-sized field containing a sequence of bytes.Á,” $ $æñà „ þ§$�¨$¨$§$ßÙ_DÕ×2CŸgæñ£äÊýK£ï¯ñ©$ g©$QT€ƒà à ¯4°4±4 ¯4¯ñ °4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡±4ÏÁBÿ¦$£É¦$ ©$æñ¬ðà œà ̠ü¡DA An error that occurs when serializing an object from this crate.Áæ�üêKH Serialization, as used in this crate, universally refers to the processÁü¶HE of transforming a structure (like a DFA) into a custom binary formatÁüÿOL represented by `&[u8]`. To this end, serialization is generally infallible.ÁüÏNK However, it can fail when caller provided buffer sizes are too small. WhenÁüž30 that occurs, a serialization error is reported.ÁÒ�üÖGD A `SerializeError` provides no introspection capabilities. Its onlyÁüžHE supported operation is conversion to a human readable error message.Áç�üëJG This error type implements the `std::error::Error` trait only when theÁü¶DA `std` feature is enabled. Otherwise, this type is defined in allÁœû configurations.Áåt«÷ñ,ò(ò¹«$”û%$û%èª$ª$–ó,ÐÄ … ÷ñ­$ g­$ÐÄ ÐÄ ²4³4´4 ²4÷ñ ³4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡´4ÏÁBÿ¬$¤˜¬$ ­$ÐÄ œÐÄ ‚… ü«)LI An error that occurs when deserializing an object defined in this crate.Áø)�üü)KªÞ_üÈ*HÿÞ_ü‘+KH represented by `&[u8]`. Deserialization, then, refers to the process ofÁüÝ+HE cheaply converting this binary format back to the object's in-memoryÁü¦,DA representation as defined in this crate. To the extent possible,Áüë,GD deserialization will report this error whenever this process fails.Á³-�ü·-IF A `DeserializeError` provides no introspection capabilities. Its onlyÁü�.Hœâ_Ê.�üÎ.Júâ_ü™/DÎã_œÞ/›ä_焎0ÄòTÞg3v~Mù¯$°$þòÄòBÿ‚… 7èþòÄòBÿ®$®$ ¯$¤Ÿ0è®$®$þòÿÅ ‡ Äò²$ g²$ÿÅ ÿÅ ¸4¹4º4 ¸4Äò ¹4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡º4ÏÁBÿ±$§û/±$ ²$ÿÅ œÿÅ ÌÈ0è¤Í0èþòì¸Nm9\'´$¶$¸$º$½$À$Ã$Å$Ç$Ê$µ$·$¹$»$¼$¾$¿$Á$Â$Ä$Æ$È$É$  Ë$Ì$<è0èè³$³$þòŒò0ò0è³$³$–ó,t‹1èè³$³$þò”œ1$œ1è³$³$–ó,d¶1èè³$³$þò”Å1$Å1è³$³$–ó,|ß1èè³$³$þòlñ1Dñ1è³$³$T€2,€2è³$³$t’2èè³$³$þòl£2D£2è³$³$T²2,²2è³$³$ŒÄ2èè³$³$þò„Ø2LØ2è³$³$tê2<ê2è³$³$l€3èè³$³$þò´�3D�3è³$³$–ó,”®3èè³$³$þò”Ã3$Ã3è³$³$–ó,LÝ3èè³$³$þòœé3é3è³$³$êæ”þ3$þ3è³$³$–ó,<˜4èè³$³$þòŒ¢4¢4è³$³$ªê”µ4$µ4è³$³$–ó,Ç ˆ þòÎ$ gÎ$Ç Ç »4¼4½4 »4þò ¼4€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡½4ÏÁBÿÍ$¨À0Í$ Î$Ç œÇ €–•�Ï$�Ï$�Ï$Ï$•Ï$ú´;Ò… þ,¥-©öÇ’e�0‚yÑ$Ò$øÞ'©öBÿÒ… 8çøÞ'©öBÿÐ$Ð$ Ñ$L«-çÐ$Ð$øÞ'lï œ ©öÔ$†Ô$lï lï ç4 ç4©ö©öBÿÓ$Õå,Ó$ Ô$lï ð � ©öÖ$ÎÖ$ð ð ð ð è4 è4©öBÿÕ$Öì,Õ$ Ö$ð wð ž ©öØ$ühØ$wð wð é4ê4 é4©ö ê4à¡Bÿ×$ÿÙ$Ù$×ð,×$¹¹Ywð ʹYwð Ø$à¡wð ƒwð wð wð bñ Ÿ ©öbñ Ÿ ©öÜ$ù±Ü$bñ bñ ë4ì4 ë4©ö ì4©öBÿÛ$Øö,Û$ Ü$bñ î bñ Çñ   ©öÞ$±²Þ$Çñ Çñ í4î4 í4©ö î4©ö–æBÿÝ$Ù�-Ý$ Þ$Çñ î Çñ ãò ¡ ©öà$îà$ãò ãò ï4ð4 ï4©ö ð4©ö�åBÿß$Ú�-ß$ à$ãò î ãò "† ÿŒ›@É÷íoðȶç4â$ã$��É÷Bÿ"† 8ç��É÷Bÿá$á$ â$<­@çá$á$��„ó ¢ É÷å$†å$„ó „ó €5 €5É÷É÷Bÿä$Ûú?ä$ å$„ó ýó £ É÷ç$ gç$ýó ýó �5‚5ƒ5 �5É÷ ‚5€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ƒ5ÏÁBÿæ$Ü�@æ$ ç$ýó œýó s† �œ�FŽø¢OÆËàº-é$ê$��ŽøBÿs† 8ç��ŽøBÿè$è$ é$<¡Fçè$è$��<õ ¤ Žøì$†ì$<õ <õ †5 †5ŽøŽøBÿë$ÞóEë$ ì$<õ üþR!‚|�SÓø˨ƒÈ ê~Ûî$ï$l¦S$¦Sçí$í$��Ô¹SŒ¹Sçí$í$³ä%ö ¥ Óøñ$†ñ$%ö %ö ‘5 ‘5ÓøÓøBÿð$ßöRð$ ñ$%ö ¤¹&üäGD The parameters for a regex search including the haystack to search.Á¬�ü°NK It turns out that regex searches have a few parameters, and in most cases,ÁüÿKH those parameters have defaults that work in the vast majority of cases.ÁüËIF This `Input` type exists to make that common case seamless while alsoÁü•OL providing an avenue for changing the parameters of a search. In particular,ÁüåMJ this type enables doing so without a combinatorial explosion of differentÁü³>; methods and/or superfluous parameters in the common cases.Áò�üö85 An `Input` permits configuring the following things:Á¯�ü³MJ * Search only a substring of a haystack, while taking the broader contextÁü�63 into account for resolving look-around assertions.Áü¸EB * Indicating whether to search for all patterns in a regex, or toÁüþ.+ only search for one pattern in particular.Áü­ :7 * Whether to perform an anchored on unanchored search.Áüè 52 * Whether to report a match as early as possible.Áž �ü¢ KH All of these parameters, except for the haystack, have sensible defaultÁüî MJ values. This means that the minimal search configuration is simply a callÁü¼ HE to [`Input::new`] with your haystack. Setting any other parameter isÁl…  optional.Á“ �ü— GD Moreover, for any `H` that implements `AsRef<[u8]>`, there exists aÁüß JG `From for Input` implementation. This is useful because many of theÁüª IF search APIs in this crate accept an `Into`. This means you canÁüô JG provide string or byte strings to these routines directly, and they'llÁü¿85 automatically get converted into an `Input` for you.Áø�üüGD The lifetime parameter `'h` refers to the lifetime of the haystack.ÁÄ�”È # OrganizationÁÛ�üß;8 The API of `Input` is split into a few different parts:Á›�üŸFC * A builder-like API that transforms a `Input` by value. Examples:Áüæ,) [`Input::span`] and [`Input::anchored`].Áü“GD * A setter API that permits mutating parameters in place. Examples:ÁüÛ41 [`Input::set_span`] and [`Input::set_anchored`].Áü�HE * A getter API that permits retrieving any of the search parameters.ÁüÙ>; Examples: [`Input::get_span`] and [`Input::get_anchored`].Áü˜NK * A few convenience getter routines that don't conform to the above namingÁüçFC pattern due to how common they are. Examples: [`Input::haystack`],Áü®(% [`Input::start`] and [`Input::end`].Áü×HE * Miscellaneous predicates and other helper routines that are usefulÁü <9 in some contexts. Examples: [`Input::is_char_boundary`].ÁÝ�üáOL A `Input` exposes so much because it is meant to be used by both callers ofÁü±OL regex engines _and_ implementors of regex engines. A constraining factor isÁü�NK that regex engines should accept a `&Input` as its lowest level API, whichÁüÐKH means that implementors should only use the "getter" APIs of a `Input`.Áœ�ü )& # Valid bounds and search terminationÁÊ�üÎ@= An `Input` permits setting the bounds of a search via eitherÁü�IF [`Input::span`] or [`Input::range`]. The bounds set must be valid, orÁüÙ=: else a panic will occur. Bounds are valid if and only if:Á—�ü›C@ * The bounds represent a valid range into the input's haystack.ÁüßIF * **or** the end bound is a valid ending bound for the haystack *and*Áü©@= the start bound is exactly one greater than the start bound.Áê�üîMJ In the latter case, [`Input::is_done`] will return true and indicates anyÁü¼KH search receiving such an input should immediately return with no match.Áˆ�üŒKH Note that while `Input` is used for reverse searches in this crate, theÁüØIF `Input::is_done` predicate assumes a forward search. Because unsignedÁü¢NK offsets are used internally, there is no way to tell from only the offsetsÁüñ,) whether a reverse search is done or not.Áž�Ô¢ # Regex engine supportÁ½�üÁMJ Any regex engine accepting an `Input` must support at least the followingÁ\�  things:Á› �üŸ &# * Searching a `&[u8]` for matches.ÁüÆ GD * Searching a substring of `&[u8]` for a match, such that any matchÁüŽ!85 reported must appear entirely within that substring.ÁüÇ!B? * For a forwards search, a match should never be reported whenÁüŠ"NK [`Input::is_done`] returns true. (For reverse searches, termination shouldÁüÙ"# be handled outside of `Input`.)Áý"�ü�#JG Supporting other aspects of an `Input` are optional, but regex enginesÁüÌ#LI should handle aspects they don't support gracefully. How this is done isÁü™$MJ generally up to the regex engine. This crate generally treats unsupportedÁüç$LI anchored modes as an error to report for example, but for simplicity, inÁü´%KH the meta regex engine, trying to search with an invalid pattern ID justÁü€&'$ results in no match being reported.Á‡‰ Þ2ó$ó$ªú‹’*0Ãå¯ô$õ$ö$÷$Ê&”Ô&DÔ&Éò$ò$•ëRTì&$ì&Éò$ò$°û”ü&Dü&Éò$ò$Å‚t”'D”'Éò$ò$Î ¦ Þ2ù$ù$ªúú$†ú$¡£Î Î Þ5 Þ5ªúªúBÿø$å±&ø$ ú$Þ2Î |¦ðü¾é:7 A representation of a span reported by a regex engine.Áùé�üýéEB A span corresponds to the starting and ending _byte offsets_ of aÁüÃêJG contiguous region of bytes. The starting offset is inclusive while theÁüŽëHE ending offset is exclusive. That is, a span is a half-open interval.Á×ë�üÛëKH A span is used to report the offsets of a match, but it is also used toÁü§ìJG convey which region of a haystack should be searched via routines likeÁ¤òì [`Input::span`].Á‡í�ü‹íKH This is basically equivalent to a `std::ops::Range`, except thisÁü×íNK type implements `Copy` which makes it more ergonomic to use in the contextÁü¦îNK of this crate. Like a range, this implements `Index` for `[u8]` and `str`,ÁüõîNK and `IndexMut` for `[u8]`. For convenience, this also impls `From`,ÁüÄï52 which means things like `Span::from(5..10)` work.Á‰"‰ °ûœë4LÙü$ý$„íðü¼ð,) The start offset of the span, inclusive.Á,ñðû$û$t²ñüƒñ*' The end offset of the span, exclusive.Á¶ñû$û$   © °û © °û€%†€%  ñ5 ñ5°û°ûBÿÿ$êƒðÿ$ €% ëŠðª °û‘ « °ûƒ%΃%‘ ‘ ‘ ‘ ò5 ò5°ûBÿ‚%ì�ð‚% ƒ%‘  ¬ °û…%üh…%  ó5ô5 ó5°û ô5à¡Bÿ„%ÿ†%†%í”ð„%¹¹Y ʹY …%à¡ ƒ   ’! ­ °û’! ­ °û‰%ù±‰%’! ’! õ5ö5 õ5°û ö5°ûBÿˆ%îšðˆ% ‰%’! î ’! ¤è‰ü÷ƒ<9 A representation of "half" of a match reported by a DFA.Á´„�ü¸„OL This is called a "half" match because it only includes the end location (orÁüˆ…LI start location for a reverse search) of a match. This corresponds to theÁüÕ…LI information that a single DFA scan can report. Getting the other half ofÁü¢†96 the match requires a second scan with a reversed DFA.Á܆�üà†GD A half match also includes the pattern that matched. The pattern isÁü¨‡NK identified by an ID, which corresponds to its position (starting from `0`)Áü÷‡OL relative to other patterns used to construct the corresponding DFA. If onlyÁüLjOL a single pattern is provided to the DFA, then all matches are guaranteed toÁì—‰ have a pattern ID of `0`.Á‹5‰ áý€Ómž›µ‹%Œ%”›Š<›ŠÉŠ%Š%‹ãlÊ‹4ʋɊ%Š%2- 2- 2- ¯ áý2- ¯ áý�%†�%2- 2- †6 †6áýáýBÿŽ%ñ¾‰Ž% �%2- òʼn° áýœ- ± áý’% g’%œ- œ- ‡6ˆ6‰6 ‡6áý ˆ6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡‰6ÏÁBÿ‘%óˉ‘% ’%œ- œœ- P/ ² áý”%Δ%P/ P/ P/ P/ Š6 Š6áýBÿ“%ôÒ‰“% ”%P/ Ï/ ³ áý–%üh–%Ï/ Ï/ ‹6Œ6 ‹6áý Œ6à¡Bÿ•%ÿ—%—%õÖ‰•%¹¹YÏ/ ʹYÏ/ –%à¡Ï/ ƒÏ/ Ï/ Ï/ q1 ´ áýq1 ´ áýš%ù±š%q1 q1 �6Ž6 �6áý Ž6áýBÿ™%ö܉™% š%q1 î q1 „‚›üá•;8 A representation of a match reported by a regex engine.Á�–�ü¡–KH A match has two essential pieces of information: the [`PatternID`] thatÁüí–96 matches, and the [`Span`] of the match in a haystack.Á§—�ü«—IF The pattern is identified by an ID, which corresponds to its positionÁüõ—HE (starting from `0`) relative to other patterns used to construct theÁü¾˜NK corresponding regex engine. If only a single pattern is provided, then allÁü�™74 matches are guaranteed to have a pattern ID of `0`.ÁÅ™�üÉ™KH Every match reported by a regex engine guarantees that its span has itsÁü•š96 start offset as less than or equal to its end offset.ÁŒH‰ ÷þsAƒ�H.ÿœ%�%”±›<±›É›%›%‹ãTì›$ì›É›%›%°ûS4 S4 S4 µ ÷þS4 µ ÷þ %† %S4 S4 ‘6 ‘6÷þ÷þBÿŸ%÷ØšŸ%  %S4 øßš¶ ÷þ½4 · ÷þ£% g£%½4 ½4 ’6“6”6 ’6÷þ “6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡”6ÏÁBÿ¢%ù嚢% £%½4 œ½4 u6 ¸ ÷þ¥%Î¥%u6 u6 u6 u6 •6 •6÷þBÿ¤%ú욤% ¥%u6 ê6 ¹ ÷þ§%üh§%ê6 ê6 –6—6 –6÷þ —6à¡Bÿ¦%ÿ¨%¨%ûðš¦%¹¹Yê6 ʹYê6 §%à¡ê6 ƒê6 ê6 ê6 °8 º ÷þ°8 º ÷þ«%ù±«%°8 °8 ˜6™6 ˜6÷þ ™6÷þBÿª%üöšª% «%°8 î °8 ¬Ê¿Ôü· A set of `PatternID`s.Á—¸�ü›¸LI A set of pattern identifiers is useful for recording which patterns haveÁüè¸HE matched a particular haystack. A pattern set _only_ includes patternÁü±¹85 identifiers. It does not include offset information.Áê¹�lî¹Áˆ-ü¹�ü€º$! This shows basic usage of a set.Á¥º�<©ºãˆ-ü±º0- use regex_automata::{PatternID, PatternSet};Áâº�üæº" let pid1 = PatternID::must(5);Áü‰»" let pid2 = PatternID::must(8);Áô¬» // Create a new empty set.ÁüË»&# let mut set = PatternSet::new(10);ÁÔò» // Insert pattern IDs.Á¬�¼ set.insert(pid1);Á¬£¼ set.insert(pid2);Á¼¹¼ // Test membership.ÁüѼ  assert!(set.contains(pid1));Áüò¼  assert!(set.contains(pid2));Á¼“½ // Get all members.Á|«½ÐŒ-œ»½ vec![5, 8],ÁüϽA> set.iter().map(|p| p.as_usize()).collect::>(),Á4‘¾Ä�-¬˜¾ // Clear the set.Á„®¾ set.clear();Áü¿¾$! // Test that it is indeed empty.Áää¾ assert!(set.is_empty());Á<�¿ãˆ-Ó«Œ�¿̉¿Ž[‰ Ž€Ï#¦�c•Z­%®%T À Àɬ%¬%üäÈ ,äÈɬ%¬%§ƒ)“A ½ Ž€°%†°%“A “A ¡6 ¡6ހހBÿ¯%� ¬¿¯% °%“A +B ¾ Ž€²% g²%+B +B ¢6£6¤6 ¢6Ž€ £6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡¤6ÏÁBÿ±%‚ ³¿±% ²%+B œ+B âC ¿ Ž€´%δ%âC âC âC âC ¥6 ¥6Ž€Bÿ³%ƒ º¿³% ´%âC üD À Ž€üD À Ž€·%ù±·%üD üD ¦6§6 ¦6Ž€ §6Ž€Bÿ¶%„ ¾¿¶% ·%üD î üD ü…ö üÈóC@ An error that occurs when a `PatternID` failed to insert into aÁŒŒô `PatternSet`.Ážô�ü¢ôNK An insert fails when the given `PatternID` exceeds the configured capacityÁÄñô of the `PatternSet`.ÁŠõ�üŽõDA This error is created by the [`PatternSet::try_insert`] routine.ÁÓ«ŒÙõÌÓõ‘n‰ ƒ�e{)ÑÿÄ6¹%º%¤¬öL¬öɸ%¸%‹ã|ÆöDÆöɸ%¸%ÐE à ƒ�¼%†¼%ÐE ÐE ±6 ±6ƒ�ƒ�Bÿ»%Š öõ»% ¼%ÐE fF Ä ƒ�¾% g¾%fF fF ²6³6´6 ²6ƒ� ³6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡´6ÏÁBÿ½%‹ ýõ½% ¾%fF œfF ì¿üüŸúA> An iterator over all pattern identifiers in a [`PatternSet`].Ááú�üåúOL The lifetime parameter `'a` refers to the lifetime of the pattern set beingÁ”µû iterated over.ÁÈû�üÌû@= This iterator is created by the [`PatternSet::iter`] method.ÁÓ«Œ“üÌ�ü“�‰ �À%À%è� @›—ªÎ®Á%Ùüüãü6ãüÉ¿%¿%ƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ�ÊH Æ �Ã%Ã%è�Ä%†Ä%ßáÊH ÊH ¸6 ¸6è�è�BÿÂ%Ž °üÂ% Ä%�ÊH }I Ç �Æ%Æ%è�Ç% gÇ%nq}I }I ¹6º6»6 ¹6è� º6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡»6ÏÁBÿÅ%� ·üÅ% Ç%�}I œ}I ŒÁ¨üð‡+( The type of anchored search to perform.Áœˆ�ü ˆOL This is *almost* a boolean option. That is, you can either do an unanchoredÁüðˆOL search for any pattern in a regex, or you can do an anchored search for anyÁ¼À‰ pattern in a regex.Á؉�ü܉NK A third option exists that, assuming the regex engine supports it, permitsÁü«Š85 you to do an anchored search for a specific pattern.ÁäŠ�üèŠHE Note that there is no way to run an unanchored search for a specificÁü±‹MJ pattern. If you need that, you'll need to build separate regexes for eachÁdÿ‹…–.ŒŒ�d�ŒÅÐ0�Œ�ü¡ŒKH If a regex engine does not support the anchored mode selected, then theÁüíŒIF regex engine will return an error. While any non-trivial regex engineÁü·�LI should support at least one of the available anchored modes, there is noÁü„ŽLI singular mode that is guaranteed to be universally supported. Some regexÁüÑŽIF engines might only support unanchored searches (DFAs compiled withoutÁü›�GD anchored starting states) and some regex engines might only supportÁüã�.+ anchored searches (like the one-pass DFA).Á’��ü–�:7 The specific error returned is a [`MatchError`] with aÁüÑ�GD [`MatchErrorKind::UnsupportedAnchored`] kind. The kind includes theÁü™‘/, `Anchored` value given that is unsupported.ÁÉ‘�üÍ‘HE Note that regex engines should report "no match" if, for example, anÁü–’JG `Anchored::Pattern` is provided with an invalid pattern ID _but_ whereÁüá’OL anchored searches for a specific pattern are supported. This is smooths outÁü±“LI behavior such that it's possible to guarantee that an error never occursÁüþ“JG based on how the regex engine is configured. All regex engines in thisÁüÉ”OL crate report "no match" when searching for an invalid pattern ID, but whereÁü™•<9 searching for a valid pattern ID is otherwise supported.ÁÖ•�lÚ•Áˆ-è•�üì•GD This example shows how to use the various `Anchored` modes to run aÁü´–GD search. We use the [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM)Áüü–KH because it supports all modes unconditionally. Some regex engines, likeÁüÈ—LI the [`onepass::DFA`](crate::dfa::onepass::DFA) cannot support unanchoredÁl•˜þ´]£˜�<§˜ãˆ-ü¯˜=·³-Ìí˜óˆ-ü‡™&Ó€Aü®™*' Anchored, Input, Match, PatternID,Á4Ù™ŸŠ-à™�üä™ ´¿E¤…š r"Mrs. \w+",Á¤šš r"Miss \w+",Áœ¯š r"Mr. \w+",ÁœÃš r"Ms. \w+",ÁDךžØ?üàš&“�?ü‡›'$ let hay = "Hello Mr. Springsteen!";Á¯›�ü³›1. // The default is to do an unanchored search.Áüå›FC assert_eq!(Some(Match::must(2, 6..21)), re.find(&mut cache, hay));Áü¬œ>; // Explicitly ask for an unanchored search. Same as above.Áüëœ74 let input = Input::new(hay).anchored(Anchored::No);Áü£�FÛ‘aê��üî�GD // Now try an anchored search. Since the match doesn't start at theÁü¶ž41 // beginning of the haystack, no match is found!Áüëž85 let input = Input::new(hay).anchored(Anchored::Yes);Áü¤Ÿ1. assert_eq!(None, re.find(&mut cache, input));ÁÖŸ�üÚŸJG // We can try an anchored search again, but move the location of whereÁü¥ GD // we start the search. Note that the offsets reported are still inÁüí IF // terms of the overall haystack and not relative to where we startedÁ”·¡ // the search.ÁüÊ¡C@ let input = Input::new(hay).anchored(Anchored::Yes).range(6..);ÁüŽ¢HE assert_eq!(Some(Match::must(2, 6..21)), re.find(&mut cache, input));Á×¢�üÛ¢IF // Now try an anchored search for a specific pattern. We specificallyÁü¥£KH // choose a pattern that we know doesn't match to prove that the searchÁüñ£-* // only looks for the pattern we provide.ÁüŸ¤ let input = Input::new(hay)Áü¿¤85 .anchored(Anchored::Pattern(PatternID::must(1)))Á¤ø¤ .range(6..);Áü�¥1§•a¿¥�üÃ¥LI // But if we switch it to the pattern that we know matches, then we findÁŒ�¦ // the match.Áü¢¦—›aü¦85 .anchored(Anchored::Pattern(PatternID::must(2)))Á¤û¦ƒœaü�§HÕ˜aÙ§�üݧ.à�-<Œ¨ãˆ-””‰ Å‚›àm…åÁÉ%Ê%Ë%Ì%Í%Î%Ê%Ì%Î%Ï%‹ãÅ‚Bÿ¤ªüÙ¨IF Run an unanchored search. This means a match may occur anywhere at orÁü§©+( after the start position of the search.Áש�üß©@= This search can return a match for any pattern in the regex.Á”êÈ%È%Å‚þÈ%È%Å‚é«ü¬ªEB Run an anchored search. This means that a match must begin at theÁüöª! start position of the search.Áœ«�ü¤«@· a” È%È%Å‚´¶È%È%Å‚ˇ üò«JG Run an anchored search for a specific pattern. This means that a matchÁüÁ¬IF must be for the given pattern and must begin at the start position ofÁ|�­ the search.Á”ˇ È%È% Î%ˇ ˇ ‹ãÅ‚BÿÈ%È%ò¥aL«­È%È%‹ã¯J ¯J ¯J È Å‚¯J È Å‚Ò%†Ò%¯J ¯J ¿6 ¿6łłBÿÑ%� �¨Ñ% Ò%¯J ‘ ¤¨É Å‚K Ê Å‚Õ% gÕ%K K À6Á6Â6 À6Å‚ Á6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Â6ÏÁBÿÔ%’ ª¨Ô% Õ%K œK %M Ë Å‚×%Î×%%M %M %M %M Ã6 Ã6Å‚BÿÖ%“ ±¨Ö% ×%%M eM Ì Å‚eM Ì Å‚Ú%ù±Ú%eM eM Ä6Å6 Ä6Å‚ Å6Å‚BÿÙ%” µ¨Ù% Ú%eM î eM ”¹ãü×·;8 The kind of match semantics to use for a regex pattern.Á“¸�ü—¸JG The default match kind is `LeftmostFirst`, and this corresponds to theÁüâ¸DA match semantics used by most backtracking engines, such as Perl.Á§¹�ü«¹:7 # Leftmost first or "preference order" match semanticsÁæ¹�üê¹KH Leftmost-first semantics determine which match to report when there areÁü¶ºNK multiple paths through a regex that match at the same position. The tie isÁü…»OL essentially broken by how a backtracker would behave. For example, considerÁüÕ»NK running the regex `foofoofoo|foofoo|foo` on the haystack `foofoo`. In thisÁü¤¼OL case, both the `foofoo` and `foo` branches match at position `0`. So shouldÁüô¼'$ the end of the match be `3` or `6`?Áœ½�ü ½KH A backtracker will conceptually work by trying `foofoofoo` and failing.Áüì½GD Then it will try `foofoo`, find the match and stop there. Thus, theÁü´¾LI leftmost-first match position is `6`. This is called "leftmost-first" orÁü�¿JG "preference order" because the order of the branches as written in theÁüÌ¿:7 regex pattern is what determines how to break the tie.Á‡À�ü‹ÀKH (Note that leftmost-longest match semantics, which break ties by alwaysÁü×ÀKH taking the longest matching string, are not currently supported by thisÁü£ÁJG crate. These match semantics tend to be found in POSIX regex engines.)ÁîÁ�üòÁIF This example shows how leftmost-first semantics work, and how it evenÁü¼Â%" applies to multi-pattern regexes:ÁâÂ�<æÂãˆ-ÌîÂóˆ-üˆÃ&Ó€At¯Ã �A4¾ÃŸŠ-ÅÃ�üÉà ´¿E¬êà r"foofoofoo",Á”€Ä r"foofoo",Á|“Ä‹ô:D£ÄžØ?ü¬Ä&“�?üÓÄGD let got: Vec = re.find_iter(&mut cache, "foofoo").collect();Áü›Å.+ let expected = vec![Match::must(1, 0..6)];ÁôÊŤ¡.éÅ�üíÅ.à�-<œÆãˆ-¤Æ�Œ¨Æ # All matchesÁºÆ�ü¾ÆLI The `All` match semantics report any and all matches, and generally willÁü‹ÇNK attempt to match as much as possible. It doesn't respect any sort of matchÁüÚÇJG priority at all, so things like non-greedy matching don't work in thisÁL¥È mode.Á¯È�ü³ÈMJ The fact that non-greedy matching doesn't work generally makes most formsÁü�ÉMJ of unanchored non-overlapping searches have unintuitive behavior. Namely,ÁüÏÉJG unanchored searches behave as if there is a `(?s-u:.)*?` prefix at theÁüšÊMJ beginning of the pattern, which is specifically non-greedy. Since it willÁüèÊLI be treated as greedy in `All` match semantics, this generally means thatÁüµËNK it will first attempt to consume all of the haystack and is likely to windÁÄ„Ì up skipping matches.Á�Ì�ü¡ÌGD Generally speaking, `All` should only be used in two circumstances:ÁéÌ�üíÌOL * When running an anchored search and there is a desire to match as much asÁü½ÍLI possible. For example, when building a reverse regex matcher to find theÁüŠÎLI start of a match after finding the end. In this case, the reverse searchÁü×ÎDA is anchored to the end of the match found by the forward search.ÁüœÏIF * When running overlapping searches. Since `All` encodes all possibleÁüæÏNK matches, this is generally what you want for an overlapping search. If youÁüµÐOL try to use leftmost-first in an overlapping search, it is likely to produceÁü…ÑMJ counter-intuitive results since leftmost-first specifically excludes someÁüÓÑ52 matches from its underlying finite state machine.Á‰Ò�ü�ÒOL This example demonstrates the counter-intuitive behavior of `All` semanticsÁüÝÒ52 when using a standard leftmost unanchored search:Á“Ó�<—Óãˆ-ÌŸÓóˆ-ü¹Ó&Ó€AÌàÓÖµ]4úÓŸŠ-�Ô�ô…Ô£â>ü¤Ô?< .configure(PikeVM::config().match_kind(MatchKind::All))Á¼äÔ .build("foo")?;ÁüüÔ)& let hay = "first foo second foo wat";Áü¦Õ&“�?üÍÕB? let got: Vec = re.find_iter(&mut cache, hay).collect();Áü�Ö74 // Notice that it completely skips the first 'foo'!ÁüÈÖ0- let expected = vec![Match::must(0, 17..20)];ÁôùÖ¤¡.˜×�üœ×.à�-<Ë×ãˆ-Ó×�ü××OL This second example shows how `All` semantics are useful for an overlappingÁü§ØIF search. Note that we use lower level lazy DFA APIs here since the NFAÁüñØMJ engines only currently support a very limited form of overlapping search.Á¿Ù�<ÃÙãˆ-ÌËÙóˆ-üåÙ-* hybrid::dfa::{DFA, OverlappingState},Áü“Ú$Ç´-4¸ÚŸŠ-¿Ú�ÜÃÚŒ‹-üßÚKH // If we didn't set 'All' semantics here, then the regex would onlyÁü«ÛKH // match 'foo' at offset 3 and nothing else. Why? Because the stateÁü÷ÛNK // machine implements preference order and knows that the 'foofoo' andÁüÆÜMJ // 'foofoofoo' branches can never match since 'foo' will always matchÁü”Ý-* // when they match and take priority.ÁüÂÝ<—Ù:üÿÝ)& .build(r"foo|foofoo|foofoofoo")?;Áü©Þ&“�?üÐÞ.é¶-üÿÞ(% let input = Input::new("foofoofoo");Ą́ß let mut got = vec![];ÁTÂßס:üÍßGD re.try_search_overlapping_fwd(&mut cache, &input, &mut state)?;Áü•à)& let m = match state.get_match() {ÁÔ¿à¡¢:ÌÚà Some(m) => m,ÁTôà�º1¤ÿà got.push(m);Á,”áð×0Äšáû¨:ô³á�©:ôÒá HalfMatch::must(0, 6),Áôñá HalfMatch::must(0, 9),Á4�âí©:ô—⤡.¶â�üºâ.à�-<éâãˆ-:Œñâ–§‰ æƒj®+ nÜ%Ý%ë%ì%Ý%ì%÷ãüÒã  Report all possible matches.Á–3Û%Û%æƒGIÛ%Û%æƒñQ ñQ ñQ Í æƒñQ Í æƒà%†à%ñQ ñQ È6 È6æƒæƒBÿß%– Œãß% à%ñQ — “ãÎ æƒyR Ï æƒã%÷ã%yR yR æƒBÿâ%â% ã% R Ð æƒå% gå% R  R É6Ê6Ë6 É6æƒ Ê6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ë6ÏÁBÿä%™ ¢ãä% å% R œ R ÂS Ñ æƒç%Îç%ÂS ÂS ÂS ÂS Ì6 Ì6æƒBÿæ%š ©ãæ% ç%ÂS üS Ò æƒüS Ò æƒê%ù±ê%üS üS Í6Î6 Í6æƒ Î6æƒBÿé%› ­ãé% ê%üS î üS OR ü€äKH Report only the leftmost matches. When multiple leftmost matches exist,ÁüÐäHE report the match corresponding to the part of the regex that appearsÁÄ�å first in the syntax.Á><¼åTºåÓ OR Û%Û%æƒOR OR Û%Û%惈 ü¶îHE An error indicating that a search stopped before reporting whether aÁÄÿî match exists or not.Á˜ï�üœïLI To be very clear, this error type implies that one cannot assume that noÁüéïJG matches occur, since the search stopped before completing. That is, ifÁü´ðJG you're looking for information about where a search determined that noÁüÿðOL match can occur, then this error type does *not* give you that. (Indeed, atÁüÏñMJ the time of writing, if you need such a thing, you have to write your ownÁ¤�ò search routine.)Á²ò�ü¶òHE Normally, when one searches for something, the response is either anÁüÿòKH affirmative "it was found at this location" or a negative "not found atÁüËóNK all." However, in some cases, a regex engine can be configured to stop itsÁüšôNK search before concluding whether a match exists or not. When this happens,ÁüéôOL it may be important for the caller to know why the regex engine gave up andÁü¹õOL where in the input it gave up at. This error type exposes the 'why' and theÁd‰ö 'where.'Á–ö�üšöMJ For example, the DFAs provided by this library generally cannot correctlyÁüèöIF implement Unicode word boundaries. Instead, they provide an option toÁü²÷IF eagerly support them on ASCII text (since Unicode word boundaries areÁüü÷LI equivalent to ASCII word boundaries when searching ASCII text), but willÁüÉøHE "give up" if a non-ASCII byte is seen. In such cases, one is usuallyÁü’ùHE required to either report the failure to the caller (unergonomic) orÁüÛùNK otherwise fall back to some other regex engine (ergonomic, but potentiallyÁdªú costly).Á·ú�ü»úOL More generally, some regex engines offer the ability for callers to specifyÁü‹ûMJ certain bytes that will trigger the regex engine to automatically quit ifÁ”Ùû they are seen.Áìû�üðûJG Still yet, there may be other reasons for a failed match. For example,Áü»üLI the hybrid DFA provided by this crate can be configured to give up if itÁüˆýOL believes that it is not efficient. This in turn permits callers to choose aÁÜØý different regex engine.Áôý�üøýNK (Note that DFAs are configured by default to never quit or give up in thisÁüÇþKH fashion. For example, by default, a DFA will fail to build if the regexÁü“ÿNK pattern contains a Unicode word boundary. One needs to opt into the "quit"Áôâÿ behavior via options, likeÁü�€gd [`hybrid::dfa::Config::unicode_word_boundary`](crate::hybrid::dfa::Config::unicode_word_boundary).)Áé€�üí€*' There are a couple other ways a searchÁü˜�)& can fail. For example, when using theÁüÂ�OL [`BoundedBacktracker`](crate::nfa::thompson::backtrack::BoundedBacktracker)Áü’‚KH with a haystack that is too long, or trying to run an unanchored searchÁüÞ‚/, with a [one-pass DFA](crate::dfa::onepass).Á—º‰ ø„x›»rŸTî%ï%˪)ø„Bÿˆ º‰ É˪)ø„Bÿí%í% î%üêƒ!Ó«ŒÖƒÌЃÉí%í%˪)8U Ô ø„ñ%†ñ%8U 8U Ð6 Ð6ø„ø„Bÿð%œ —ƒð% ñ%8U ¶U Õ ø„ó% gó%¶U ¶U Ñ6Ò6Ó6 Ñ6ø„ Ò6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Ó6ÏÁBÿò%� žƒò% ó%¶U œ¶U ÚV Ö ø„õ%Îõ%ÚV ÚV ÚV ÚV Ô6 Ô6ø„Bÿô%ž ¥ƒô% õ%ÚV ŠW × ø„ŠW × ø„ø%ù±ø%ŠW ŠW Õ6Ö6 Õ6ø„ Ö6ø„Bÿ÷%Ÿ ©ƒ÷% ø%ŠW î ŠW ¼¿—üå•,) The underlying kind of a [`MatchError`].Á’–�ü––NK This is a **non-exhaustive** enum. That means new variants may be added inÁüå–  a semver-compatible release.Á:Œ†—˜͉ ä…LrÃåuï0ú%ý%ÿ%�&û%ü%þ%€&‚&$¸˜üÝ—C@ The search saw a "quit" byte at which it was instructed to stopÁt¥˜ò‰U˜dù%ù%ä…D•™üǘEB The "quit" byte that was observed that caused the search to stop.Á$•™ù%ù%lã™ü§™30 The offset at which the quit byte was observed.Á4ã™ù%ù%4çœüý™GD The search, based on heuristics, determined that it would be betterÁüÉšEB to stop, typically to provide the caller an opportunity to use anÁì“› alternative regex engine.Áµ›�ü½›EB Currently, the only way for this to occur is via the lazy DFA andÁü‡œIF only when it is configured to do so (it will not return this error byÁlÕœ default).Á˜™ù%ù%ä…l†žüøœC@ The offset at which the search stopped. This corresponds to theÁüÄ�96 position immediately following the last byte scanned.Á4†žù%ù%|—¡ü žGD This error occurs if the haystack given to the regex engine was tooÁüìžEB long to be searched. This occurs, for example, with regex enginesÁü¶ŸIF like the bounded backtracker that have a configurable fixed amount ofÁü„ HE capacity that is tied to the length of the haystack. Anything beyondÁüÑ A> that configured limit will result in an error at search time.Á˜�ù%ù%ä…Tñ¡ü±¡74 The length of the haystack that exceeded the limit.Áñ¡ù%ù%œâ©üˆ¢EB An error indicating that a particular type of anchored search wasÁüÒ¢=: requested, but that the regex engine does not support it.Á”£�üœ£FC When this error occurs with [`Anchored::Pattern`], then one commonÁüç£GD cause is that the underlying regex engine was built without supportÁü³¤HE for anchored starting states for each pattern. For DFA engines, thisÁü€¥  typically means enabling theÁü¥¥if [`hybrid::dfa::Config::starts_for_each_pattern`](crate::hybrid::dfa::Config::starts_for_each_pattern)Á4“¦�˜5üž¦gd [`dfa::dense::Config::starts_for_each_pattern`](crate::dfa::dense::Config::starts_for_each_pattern)ÁüЧIF configuration option, depending on which regex engine is being built.Áا�üà§HE Note that this error should not be returned by a regex engine simplyÁü­¨KH because the pattern ID is invalid (i.e., equal to or exceeds the numberÁüý¨KH of patterns in the regex). In that case, the regex engine should reportÁ„Í© a non-match.Á˜<ù%ù%ä…t¹ªü€ª0— V$¹ªù%ù%Å‚îW Ø ä…„&†„&îW îW Ø6 Ø6ä…ä…Bÿƒ&  ¡—ƒ& „&îW µZ Ù ä…†& g†&µZ µZ Ù6Ú6Û6 Ù6ä… Ú6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡Û6ÏÁBÿ…&¡ ¨—…& †&µZ œµZ ‘_ Ú ä…ˆ&Έ&‘_ ‘_ ‘_ ‘_ Ü6 Ü6ä…Bÿ‡&¢ ¯—‡& ˆ&‘_ Ý_ Û ä…Ý_ Û ä…‹&ù±‹&Ý_ Ý_ Ý6Þ6 Ý6ä… Þ6ä…BÿŠ&£ ³—Š& ‹&Ý_ î Ý_ äó -ŸT… -¬‡ø€¯´váÅ�&Ž&Ô– -$¡ -Œ&Œ&ù‡Ô¶ -$Á -Œ&Œ&ù‡®g â ¬‡�&†�&®g ®g â6 â6¬‡¬‡Bÿ�&° ä -�& �&®g gh ã ¬‡’& g’&gh gh ã6ä6å6 ã6¬‡ ä6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡å6ÏÁBÿ‘&± ë -‘& ’&gh œgh ܦ- L¸-ù‡76YÆ ùF”&•&–&Tþ-þ-Ó&“&œ×-,×-Ó&“&ìÜ ¤»-4»-Ó&“&ìÜ ”j ä ù‡˜&†˜&”j ”j ê6 ê6ù‡ù‡Bÿ—&² ž-—& ˜&”j mˆ ¥lÈ<-�›&›&Òˆð?ü¥½¢š&œ&¦óTÒˆBÿmˆ GæóTÒˆBÿ™&™& š&�Ö<-ôÚ<-Ù&™&¦óTdk é �ž&ž&ÒˆŸ& gŸ&MOdk dk ÷6ø6ù6 ÷6Òˆ ø6€g€gŠ‚gê ûcƒg�†ûcØ«q¢1È¡ù6ÏÁBÿ�&½ ®<-�& Ÿ&�dk œdk €?˜A?˜I?˜[]?˜nÍ ?˜_Î ?˜(Ï ?˜ÃÏ ?˜[Ð ?˜1Ñ ?˜KÒ ?˜^Ó ?˜»Ô ?˜ÑÖ ?˜^Ø ?˜‡Û ?˜áÛ ?˜#r?˜^q?˜fq?˜j?˜*Þ ?˜ ¾‹?˜�ß ?˜ ¢Ž?˜'ã ?˜ •™?˜+ä ?˜æ ?˜è ?˜4d?˜Éë ?˜óí ?˜|ò ?˜ —†?˜;÷ ?˜¸ø ?˜îú ?˜Qû ?˜ñý ?˜¤ ?˜f ?˜é ?˜á ?˜œ ?˜Ù ?˜0 ?˜@ ?˜v% ?˜û% ?˜ß- ?˜ „�?˜³1 ?˜ ä¡?˜²5 ?˜ �¸?˜«@ ?˜i- ?˜ ¿¶?˜0+ ?˜}* ?˜* ?˜–) ?˜?) ?˜Ã( ?˜ ( ?˜x' ?˜' ?˜Ä% ?˜ ®á?˜ ìô?˜|% ?˜¯$ ?˜ •Ú?˜^$ ?˜# ?˜ž" ?˜=" ?˜â! ?˜P! ?˜! ?˜Œ ?˜1 ?˜Ù ?˜r ?˜ ?˜¬ ?˜; ?˜ž ?˜I ?˜î ?˜\ ?˜ ?˜ ?˜ ô�?˜ˆ�?˜¬ ?˜K ?˜ê ?˜‰ ?˜( ?˜Ç ?˜b ?˜ó ?˜† ?˜' ?˜Í ?˜h ?˜ ?˜­ ?˜W ?˜í ?˜ â¼?˜“ ?˜% ?˜v ?˜3e?˜‡ ?˜ ?˜g ?˜ì ?˜[ ?˜h ?˜ ðª ?˜î ?˜9 ?˜ Ó¶ ?˜“ ?˜- ?˜‘ ?˜ñ ?˜ž ?˜C ?˜Ë ?˜R ?˜é ?˜š ?˜K ?˜û ?˜© ?˜Q ?˜� ?˜,d?˜» ?˜o ?˜ ™× ?˜W ?˜ôÿ ?˜ ûé ?˜Yþ ?˜óý ?˜šý ?˜ûü ?˜¡ü ?˜Qü ?˜šû ?˜û ?˜ðù ?˜Wc?˜^b?˜fb?˜=b?˜Ö÷ ?˜÷ ?˜ ñÎ ?˜!ö ?˜ ºÒ ?˜§õ ?˜Dõ ?˜ æá ?˜Åô ?˜ ªî ?˜ ô ?˜ºó ?˜Uó ?˜ å÷ ?˜÷ò ?˜‘ò ?˜)ò ?˜Ãñ ?˜rñ ?˜ñ ?˜Åð ?˜èa?˜ a?˜a?˜ù‹?˜`ð ?˜¶ï ?˜Aï ?˜ ‰¡ ?˜�î ?˜ì ?˜Nê ?˜¶é ?˜]é ?˜Üè ?˜ Ù¼ ?˜ùç ?˜ ºÂ ?˜Π?˜ž_?˜¦_?˜£–?˜"ç ?˜M^?˜U^?˜Ř?˜&æ ?˜¢Z?˜ÜY?˜äY?˜¶›?˜°Ý ?˜¬V?˜æU?˜îU?˜« ?˜.Ý ?˜~Ú ?˜¡Ù ?˜ ¥’ ?˜¿’ ?˜ž??˜�>?˜¥>?˜ã¦?˜TÏ ?˜¾Ë ?˜uÉ ?˜2Ç ?˜’» ?˜$¶ ?˜Õ« ?˜ ©�?˜°�?˜« ?˜ �§?˜ˆ§?˜ܨ ?˜ÿ§ ?˜o¦ ?˜ù9?˜:?˜Ë?˜†¥ ?˜°+?˜ê*?˜ò*?˜ƒÐ?˜®£ ?˜ ‹Ù?˜°¢ ?˜ ûÛ?˜Û¡ ?˜ ŸÞ?˜ã  ?˜ ±ä?˜N— ?˜S– ?˜• ?˜½“ ?˜Õ"?˜‡ ?˜… ?˜]� ?˜b} ?˜¥| ?˜){ ?˜úx ?˜ x ?˜=s ?˜Íp ?˜öm ?˜xm ?˜Ùi ?˜ ôÖ?˜5g ?˜ ªå?˜*d ?˜ �÷?˜°c ?˜ ¬ù?˜Za ?˜¢H ?˜ G ?˜ £Ú?˜·Ú?˜@F ?˜áE ?˜‚E ?˜#E ?˜ÄD ?˜eD ?˜D ?˜“C ?˜(C ?˜ËB ?˜sB ?˜B ?˜¬A ?˜YA ?˜A ?˜�@ ?˜ ­÷?˜E@ ?˜Ù? ?˜,? ?˜Ñ"?˜3= ?˜ «¤?˜Â< ?˜ < ?˜ Ù²?˜õ: ?˜Ž: ?˜¼9 ?˜8 ?˜ Žã?˜Ú7 ?˜7 ?˜/7 ?˜Ø6 ?˜ž5 ?˜45 ?˜z!?˜©4 ?˜4 ?˜ ÖÀ?˜¼0 ?˜ Ìã?˜­/ ?˜7/ ?˜ þô?˜ –õ?˜W. ?˜ð- ?˜˜- ?˜ò, ?˜¢, ?˜A, ?˜ð+ ?˜;+ ?˜…) ?˜y( ?˜ �¨?˜L—¨?˜§& ?˜›% ?˜ ¬®?˜L¶®?˜¢ ?˜% ?˜£$ ?˜J$ ?˜ë# ?˜†# ?˜!# ?˜¿" ?˜e" ?˜é! ?˜ ÕÐ?˜l! ?˜Š ?˜ öÝ?˜ŠÞ?˜· ?˜­ ?˜ ¾ó?˜Òó?˜ ?˜ ?˜1?˜ ?˜› ?˜ ˜„?˜Œ ?˜ �"?˜% ?˜ ë'?˜=?˜q ?˜ ?˜E ?˜º ?˜^ ?˜ ?˜³ ?˜[ ?˜  ?˜k ?˜ý ?˜ ýc?˜‰ ?˜8 ?˜K ?˜ Ðn?˜Làn?˜ñ?˜ù?˜ 7?˜… ?˜*?˜¤ ?˜' ?˜Î ?˜j ?˜ ?˜¥ ?˜É ?˜ò ?˜ øš?˜Lˆ›?˜è ?˜öä ?˜ƒÜ ?˜dÕ ?˜ ‰f?˜«Ñ ?˜ Þl?˜ål?˜�Ï ?˜ Ìw?˜Ów?˜âà ?˜+« ?˜±£ ?˜� ?˜¤– ?˜Ø} ?˜gq ?˜°l ?˜Á` ?˜P\ ?˜ZL ?˜ïC ?˜#> ?˜Ü2 ?˜„/ ?˜ü ?˜  á?˜§á?˜Ð ?˜ Öœ?˜Ýœ?˜5ú ?˜ ›Á?˜¢Á?˜ ¶Á?˜ ï ?˜ ûé?˜‚ê?˜ –ê?˜Óä ?˜ î„?˜õ„?˜ Š…?˜øâ ?˜„â ?˜â ?˜šá ?˜ Ë�?˜Ìà ?˜ öŽ?˜ýŽ?˜à ?˜ ¤�?˜«�?˜¯ß ?˜Hß ?˜âÞ ?˜|Þ ?˜Þ ?˜°Ý ?˜JÝ ?˜çÜ ?˜ˆÜ ?˜Ü ?˜´Û ?˜ZÛ ?˜ÿÚ ?˜•Ú ?˜áÙ ?˜Ù ?˜ �ž?˜—ž?˜LØ ?˜ ¾Ÿ?˜ÅŸ?˜s× ?˜ ø ?˜ÿ ?˜ “¡?˜›Ö ?˜ Ü¢?˜ã¢?˜ ÷¢?˜®Õ ?˜ á¤?˜è¤?˜ ý¤?˜é?˜#?˜+?˜(~?˜ž?˜ ?˜?˜ÜÓ ?˜?˜??˜G?˜Û…?˜jÒ ?˜  Ï?˜ºÏ?˜ œÞ?˜£Þ?˜ ¨Þ?˜·Ñ ?˜³Ý?˜ ÃÝ?˜+Ð ?˜÷ç?˜“?˜Î?˜Ö?˜¤?˜Í ?˜ ã ?˜ € ?˜ËÌ ?˜sÌ ?˜Ì ?˜ÂË ?˜Þ?˜æ?˜�¦?˜Ê ?˜‰É ?˜ ÿn?˜É ?˜ �€?˜¨È ?˜0È ?˜eÇ ?˜Ç ?˜¦Æ ?˜DÆ ?˜J ?˜ Ÿ?˜³?˜˜?˜Ó ?˜Û ?˜¯?˜O ?˜» ?˜à ?˜: ?˜B ?˜º ?˜ ?˜Ý¿ ?˜ „c?˜÷¾ ?˜ ¬d?˜ Éd?˜Ö½ ?˜½ ?˜Q¼ ?˜û» ?˜®» ?˜a» ?˜» ?˜Ⱥ ?˜yº ?˜º ?˜\¹ ?˜ Óz?˜ äz?˜ä¸ ?˜ ç‚?˜ ø‚?˜:· ?˜é¶ ?˜‘¶ ?˜¶ ?˜W ?˜_ ?˜´?˜[µ ?˜R´ ?˜ ¢'?˜¿³ ?˜p ?˜x ?˜¦µ?˜á² ?˜ˆ² ?˜€± ?˜4± ?˜á° ?˜o° ?˜$® ?˜ Ç?˜Î?˜ج ?˜ í?˜ô?˜Š ?˜nª ?˜ …=?˜Œ=?˜‚© ?˜ î??˜õ??˜(¦ ?˜ ¬a?˜³a?˜ Ãa?˜Ô¤ ?˜ Øe?˜ße?˜õe?˜ �f?˜Ý£ ?˜ ™Š?˜ Š?˜ °Š?˜R¢ ?˜ ’¬?˜™¬?˜j¡ ?˜ ü®?˜ƒ¯?˜]  ?˜ å±?˜ì±?˜ ú±?˜ ‘²?˜PŸ ?˜ �¹?˜ˆ¹?˜ –¹?˜ ­¹?˜ež ?˜ °Á?˜·Á?˜k ?˜� ?˜— ?˜R?˜É› ?˜óš ?˜ã™ ?˜�™ ?˜™ ?˜ ‹}?˜–˜ ?˜1˜ ?˜À— ?˜c— ?˜ — ?˜±– ?˜X– ?˜ÿ• ?˜¦• ?˜M• ?˜ô” ?˜�” ?˜4” ?˜ä“ ?˜ÿ?˜#?˜+?˜w?˜Ÿ?˜ ?˜?˜±’ ?˜@’ ?˜ ³?˜Ñ‘ ?˜…‘ ?˜9‘ ?˜hþ?˜£ý?˜«ý?˜1„?˜ý?˜‹ü?˜“ü?˜Õu ?˜‡u ?˜ÁÝ?˜üÜ?˜Ý?˜¨?˜)s ?˜Vl ?˜i ?˜;e ?˜Þc ?˜Ïb ?˜G` ?˜ö\ ?˜RY ?˜˜W ?˜-Q ?˜ÃN ?˜/ ?˜], ?˜e* ?˜O' ?˜ù& ?˜'" ?˜ ?˜ ?˜È ?˜¶ ?˜õ ?˜ß ?˜R ?˜G ?˜R ?˜ÿ ?˜üÛ?˜7Û?˜?Û?˜·³?˜ÛÍ?˜8Í?˜uÌ?˜ñË?˜ Ë?˜hÊ?˜ÞÉ?˜�É?˜<É?˜ºÎ?˜ÜÍ?˜äÍ?˜rº?˜²Ç?˜‹Æ?˜Ä?˜PÃ?˜XÃ?˜·¿?˜ÖÀ?˜ ¶î ?˜ ¾?˜ Àö ?˜°¸?˜ £… ?˜?´?˜ ï‘ ?˜Á²?˜y¯?˜…®?˜ Ï¡ ?˜f­?˜ ”´ ?˜ˆ¬?˜Ï«?˜ ûÅ ?˜Ÿª?˜£©?˜ ·Ü ?˜ ÌÜ ?˜ä¨?˜ ¸ã ?˜v¨?˜ §é ?˜ð§?˜ Šü ?˜§?˜  • ?˜­¦?˜ ·™ ?˜¡¥?˜ ÍŸ ?˜¥?˜ Ö¨ ?˜&¤?˜ ºÝ ?˜À£?˜ Ëé ?˜U£?˜ �ô ?˜™¢?˜4¢?˜ã¡?˜Œ¡?˜(¡?˜Ô ?˜y ?˜$ ?˜¼Ÿ?˜\Ÿ?˜ÿž?˜®ž?˜ž?˜ ㌠?˜˜�?˜;�?˜èœ?˜šœ?˜5Ä?˜WÃ?˜_Ã?˜ ?˜âÁ?˜êÁ?˜« ?˜Á?˜@À?˜HÀ?˜�?˜i¿?˜£¾?˜«¾?˜°?˜Ͻ?˜ ½?˜½?˜.?˜�œ?˜8›?˜Ìš?˜ –¨ ?˜”™?˜.™?˜¶˜?˜ ÷± ?˜]˜?˜˜?˜�—?˜A—?˜Ç–?˜þ¹?˜9¹?˜A¹?˜ƒ?˜Eµ?˜€´?˜ˆ´?˜—?˜Д?˜w”?˜v‘?˜´�?˜ ½*?˜×*?˜ä³?˜œŽ?˜ ‡+ ?˜GŽ?˜�?˜ ¬8 ?˜TŒ?˜ Œc ?˜Lœc ?˜B²?˜J²?˜Ð'?˜g±?˜�‹?˜@‹?˜ Š?˜CŠ?˜ñ‰?˜È?˜ ô“ ?˜L„” ?˜„¯?˜Œ¯?˜à-?˜ð‡?˜}®?˜+‡?˜ �  ?˜L‘  ?˜�­?˜Ȭ?˜Ь?˜Æ2?˜Ü«?˜«?˜«?˜66?˜¢…?˜D…?˜  4 ?˜â„?˜ ‚9 ?˜…„?˜ª?˜B©?˜J©?˜Æ:?˜_¨?˜š§?˜¢§?˜û=?˜¿¦?˜+¦?˜3¦?˜7¥?˜r¤?˜z¤?˜D?˜5„?˜׃?˜ åS ?˜Kƒ?˜ þY ?˜î‚?˜„?˜v|?˜Pz?˜Tk?˜�g?˜ÿb?˜ë_?˜ŒY?˜'Y?˜oS?˜O?˜{K?˜zE?˜;>?˜&6?˜ã0?˜ï*?˜Û!?˜?˜¨?˜)?˜Q ?˜� ?˜ £ó ?˜·ó ?˜¸ ?˜d ?˜ð ?˜ ´Ä ?˜‹ ?˜/ ?˜Ñ?˜c?˜ ÈÍ ?˜°?˜ °Ô ?˜à?˜ °× ?˜Ä× ?˜še?˜ e?˜xd?˜€d?˜?˜¾?˜Z?˜ é¤ ?˜”ÿ?˜ î­ ?˜‚® ?˜àa?˜a?˜"a?˜{?˜•`?˜`?˜`?˜+ý?˜ £Å ?˜ü?˜ û?˜Ž\?˜È[?˜Ð[?˜Œ„?˜C[?˜®Z?˜¶Z?˜¹ù?˜ ùÞ ?˜ ù?˜à÷?˜z÷?˜4X?˜�W?˜ÿV?˜W?˜4V?˜?˜¯=?˜=?˜#=?˜š<?˜¢<?˜<?˜"<?˜8:?˜•9?˜9?˜ 9?˜€8?˜ˆ8?˜8?˜8?˜òÂ?˜ Ï; ?˜Lß; ?˜¯2?˜±À?˜PÀ?˜ ÌV ?˜À?˜{¿?˜â¾?˜¾?˜F½?˜4¼?˜ß¹?˜Z¸?˜�·?˜¯?˜-©?˜�¨?˜e§?˜ ˜— ?˜²— ?˜J0?˜R0?˜¹×?˜™¦?˜ã-?˜ë-?˜\Ù?˜¦?˜¯+?˜·+?˜èÛ?˜m¥?˜Z*?˜b*?˜ûÝ?˜פ?˜M)?˜‡(?˜�(?˜åà?˜£?˜M£?˜ ¨Ò ?˜û¢?˜¿'?˜á&?˜é&?˜Vâ?˜&?˜p%?˜x%?˜)$?˜ #?˜}"?˜…"?˜{¢?˜¢?˜¡?˜f¡?˜f ?˜ÔŸ?˜‚Ÿ?˜Ûž?˜[ž?˜ ˆò ?˜Ý�?˜�?˜ ƒù ?˜L“ù ?˜�!?˜•!?˜Œò?˜’œ?˜; ?˜C ?˜iô?˜·›?˜²?˜�?˜„|?˜Ay?˜ûn?˜Åj?˜ ñ©?˜b?˜`]?˜˜T?˜¡N?˜ ÿè?˜ šé?˜.K?˜ æ÷?˜ �ø?˜ ”ø?˜wF?˜ ªˆ?˜ ƈ?˜ÿB?˜ �—?˜ «—?˜ ¿—?˜ ®¨?˜ …¹?˜5-?˜:'?˜?˜R?˜‹?˜ äö?˜Lôö?˜-?˜ •û?˜L¥û?˜??˜ Åü?˜LÕü?˜?˜5 ?˜= ?˜½?˜_?˜?˜ºê?˜ôé?˜üé?˜e!?˜>ø?˜ ç�?˜=ñ?˜—í?˜*ç?˜0â?˜>ß?˜=Ü?˜dÖ?˜ëÑ?˜ËÎ?˜UÊ?˜æÆ?˜§Å?˜Ÿè?˜§è?˜•b?˜Å?˜›Ä?˜¨Ã?˜òÂ?˜ŸÂ?˜DÂ?˜*æ?˜då?˜lå?˜E}?˜;ã?˜uâ?˜}â?˜±‚?˜„À?˜§¿?˜à¾?˜ ¤ú?˜¾ú?˜0à?˜Pß?˜Xß?˜¹‰?˜�½?˜ļ?˜ªÜ?˜²Ü?˜ëŠ?˜H»?˜lÚ?˜Ó¸?˜ ø!?˜Lˆ!?˜¶?˜ ø!?˜Lˆ!?˜v¦?˜ ð?˜ Ÿ?˜ Ï?˜¡?˜ þ0?˜ ¬0?˜ Ý0?˜ƒÙ?˜zØ?˜‚Ø?˜§?˜Ü×?˜×?˜#×?˜æÔ?˜ÝÓ?˜åÓ?˜Ъ?˜?Ó?˜~Ò?˜†Ò?˜Åž?˜ô�?˜Ÿµ?˜´?˜Ê´?˜²?˜ ßY"?˜æY"?˜:Ž?˜ ùx"?˜€y"?˜„?˜ ·~"?˜¾~"?˜ ‚?˜ ¸…"?˜¿…"?˜€?˜ ý•"?˜„–"?˜ ó¢"?˜ú¢"?˜ ·¸"?˜¾¸"?˜ ø"?˜ ν"?˜Õ½"?˜ki?˜ ÜÎ"?˜ãÎ"?˜6h?˜ ØÜ"?˜ßÜ"?˜…^?˜y]?˜ ªß"?˜Äß"?˜̱?˜Ô±?˜¨Ù?˜ êê"?˜ñê"?˜[?˜ ‘ú"?˜˜ú"?˜šU?˜ŽT?˜ Îü"?˜èü"?˜ή?˜Ö®?˜Žå?˜ ä‡"?˜ë‡"?˜4R?˜ �•"?˜ˆ•"?˜ �•"?˜þL?˜ŽK?˜ ¯š"?˜Éš"?˜&«?˜.«?˜Rø?˜ ¤£"?˜«£"?˜ °£"?˜J?˜9:?˜J9?˜8?˜ �?˜L—?˜g4?˜Ê3?˜¨2?˜ —@?˜L¡@?˜ö1?˜ä�?˜�?˜�?˜¥!?˜„Ž?˜ð�?˜ø�?˜’‰?˜˜ˆ?˜ˆ?˜ ˆ?˜ý$?˜$?˜Ó"?˜í!?˜ !?˜á?˜O?˜É?˜l?˜?˜í?˜ï?˜!?˜ „¤?˜L”¤?˜-‡?˜g†?˜o†?˜øb?˜¸?˜¶‚?˜ð�?˜ø�?˜_i?˜' ?˜' ?˜º?˜ £Æ?˜??˜ îÎ?˜O?˜ äã?˜Ô?˜  æ?˜G?˜ ã€?˜…ÿ?˜ Ï—?˜qþ?˜ ºš?˜eý?˜ »�?˜Pü?˜ æ ?˜@û?˜ “¤?˜2ú?˜ ²¨?˜"ù?˜ ¬?˜ø?˜ �±?˜ö?˜ „¶?˜|ô?˜ ·¼?˜gó?˜ ¥Ô?˜Tò?˜ ߨ?˜êð?˜ Žß?˜‚ï?˜ ¼å?˜nî?˜ —ê?˜\í?˜ üí?˜îë?˜ Ûó?˜‚ê?˜ „ý?˜N€?˜ˆ?˜�?˜þ¢?˜@è?˜ �‹?˜©‹?˜Œç?˜*ç?˜0Ì?˜Ë?˜ ¼Y?˜LÌY?˜ŸÆ?˜„Å?˜‹Ä?˜5Ã?˜ ¸c?˜LÈc?˜|?˜‡|?˜÷º?˜¼?˜»?˜¹º?˜­¹?˜ù¸?˜E¸?˜#·?˜ í’?˜‡“?˜ µ?˜ž´?˜ï³?˜Œ³?˜”²?˜:±?˜ ŽÇ?˜LžÇ?˜#|?˜_{?˜g{?˜¸ ?˜¨?˜B§?˜ߦ?˜ ’#?˜r¦?˜ ï #?˜¦?˜Ð¥?˜›z?˜×y?˜ßy?˜q ?˜¥?˜[¤?˜ø£?˜ €$?˜Ë¢?˜ � $?˜t¢?˜)¢?˜%y?˜ax?˜ix?˜Þ ?˜g¡?˜¬ ?˜I ?˜ ‡%?˜ÜŸ?˜  %?˜…Ÿ?˜:Ÿ?˜�w?˜Êv?˜Òv?˜ ?˜äž?˜)ž?˜Æ�?˜ ¨%?˜Y�?˜ ì%?˜�?˜·œ?˜Øu?˜u?˜u?˜ª ?˜aœ?˜¦›?˜C›?˜ –%?˜Öš?˜ â"%?˜š?˜4š?˜xt?˜´s?˜¼s?˜f ?˜|™?˜Á˜?˜^˜?˜ �&?˜ñ—?˜ Š &?˜š—?˜O—?˜,s?˜hr?˜pr?˜® ?˜—–?˜Ý•?˜z•?˜ „'?˜ •?˜ ò '?˜¶”?˜k”?˜že?˜Ùd?˜ád?˜, ?˜‹?˜|†?˜�?˜2}?˜ ‰c(?˜{x?˜ Àp(?˜Ów?˜4w?˜{r?˜ q?˜žp?˜ �ˆ(?˜'p?˜ æŠ(?˜Æo?˜ro?˜zn?˜ n?˜ –�(?˜•m?˜ À�(?˜4m?˜Þl?˜3a?˜m`?˜u`?˜Œ* ?˜l?˜”k?˜új?˜ô[?˜Q[?˜ÂZ?˜ÊZ?˜ Z?˜Z?˜ˆY?˜�Y?˜Y?˜Y?˜a?˜ Í)?˜LÝ)?˜¸J?˜ÜI?˜äI?˜ G ?˜I?˜rH?˜zH?˜¹G?˜ÁG?˜8G?˜@G?˜¸F?˜ÀF?˜_[?˜°Z?˜ðY?˜Y?˜æW?˜°T?˜âS?˜8S?˜XR?˜›Q?˜CE?˜~D?˜†D?˜Q_ ?˜úC?˜fC?˜nC?˜·N?˜ÏM?˜ Šo)?˜Lšo)?˜ÍB?˜B?˜B?˜3b ?˜kM?˜-=?˜1<?˜¡;?˜©;?˜ç:?˜ï:?˜e:?˜m:?˜ä9?˜ì9?˜C6?˜G5?˜·4?˜¿4?˜ý3?˜4?˜{3?˜ƒ3?˜ú2?˜3?˜Í/?˜T/?˜Ù.?˜`.?˜³-?˜Û+?˜­*?˜ç¼œ)?˜HçÌœ)?˜Þ)?˜!)?˜"(?˜L'?˜Î?˜?˜?˜p ?˜ƒ?˜î?˜ö?˜@$?˜>#?˜ç¦´)?˜Hç¶´)?˜?˜J?˜R?˜^‚ ?˜c"?˜?˜?˜?˜©„ ?˜õ ?˜ï?˜v?˜û?˜‚?˜Õ?˜ÿ?˜Ñ?˜û¼œ)?˜HûÌœ)?˜?˜E?˜F?˜p ?˜ú?˜4?˜<?˜uŸ ?˜¯?˜?˜"?˜d ?˜b ?˜û¦´)?˜Hû¶´)?˜<?˜v?˜~?˜Q¢ ?˜‡?˜G?˜Lÿ?˜Sÿ?˜�¤ ?˜?˜Çî?˜î?˜î?˜­ ?˜ ?˜Ÿ'?˜?˜€,?˜k?˜ã?˜pí?˜}?˜?˜h?˜ò?˜ îU?˜¦?˜æ?˜ ˆZ?˜L˜Z?˜–ê?˜¹é?˜Àé?˜7± ?˜3é?˜žè?˜¥è?˜5?˜æÿ?˜rú?˜w÷?˜Ãô?˜ ¸*?˜»ñ?˜ æ*?˜”ã?˜·â?˜¾â?˜È» ?˜äÊ?˜XÊ?˜ÒÉ?˜BÉ?˜ÃÈ?˜0È?˜ªÇ?˜Ç?˜ŸÆ?˜$Æ?˜£Å?˜DÅ?˜ ’*?˜ˆÄ?˜ ûƒ*?˜ÑÃ?˜ ¸†*?˜pÞ?˜wÞ?˜à ?˜øÙ?˜ÿÙ?˜ÐÄ ?˜ö¿?˜ Þ'?˜Lî'?˜[Ö?˜bÖ?˜ÿÅ ?˜PÒ?˜WÒ?˜Ç ?˜¼?˜ ÅC?˜LÕC?˜±»?˜`»?˜ »?˜¶º?˜Uº?˜<¹?˜m¸?˜ ²�?˜$¸?˜Ù·?˜|·?˜ض?˜`¶?˜\µ?˜�´?˜1´?˜b³?˜³?˜F²?˜é±?˜ ±?˜›¯?˜í?˜­?˜f¬?˜¬?˜²«?˜X«?˜åª?˜?¨?˜ܧ?˜y§?˜f¦?˜¦?˜ª¥?˜¥?˜º¤?˜\¤?˜EÒ?˜¸Ñ?˜(Ñ?˜/Ñ?˜mÐ?˜tÐ?˜êÏ?˜ñÏ?˜hÏ?˜oÏ?˜ì ?˜* ?˜ À1?˜LÐ1?˜xŸ?˜,Ÿ?˜àž?˜’ž?˜Dž?˜÷�?˜§�?˜ �?˜¬œ?˜0œ?˜ª›?˜ßÎ?˜Î?˜ Î?˜ýó ?˜àš?˜“š?˜0Í?˜Ø™?˜ ñF?˜L�G?˜&™?˜Ù˜?˜‹˜?˜'˜?˜—?˜ð–?˜i–?˜¨Ì?˜®•?˜ ™T?˜L©T?˜;•?˜ª”?˜I”?˜·“?˜6“?˜Õ’?˜O’?˜È‘?˜‚�?˜.�?˜Ù�?˜‚�?˜)�?˜ÐŽ?˜xŽ?˜Ž?˜¹�?˜ãŒ?˜*Œ?˜„‹?˜+‹?˜IŠ?˜ ø¯?˜Lˆ°?˜cˆ?˜ ˆ?˜²‡?˜Z‡?˜‡?˜¨†?˜8†?˜q…?˜à„?˜}„?˜„?˜ ™ä?˜pƒ?˜ƒ?˜¾‚?˜n‚?˜‚?˜Æ�?˜'�?˜ Œ!2?˜ ¨!2?˜ Æ!2?˜?˜ •ƒ2?˜ ±ƒ2?˜…~?˜ Ï�2?˜ è�2?˜\}?˜ ÍØ2?˜ âØ2?˜ éI+?˜ðI+?˜°w?˜õH+?˜ ¦L+?˜­L+?˜v?˜²K+?˜ ×N+?˜ÞN+?˜Nt?˜ÛM+?˜ìb?˜:b?˜va?˜ª`?˜÷_?˜9_?˜¹?˜K,?˜2)?˜&?˜�#?˜ä ?˜Ü?˜‚?˜¢?˜Q?˜¹?˜?˜O?˜0?˜Ü?˜š ?˜° ?˜ Çå?˜L×å?˜^´?˜¸³?˜'³?˜.³?˜k²?˜r²?˜} ?˜ß?˜?˜ï?˜)?˜[?˜ ¸ú?˜LÈú?˜Ë?˜O?˜´?˜b?˜ ú�?˜â?˜ ¤ƒ?˜¤®?˜Å­?˜Ì­?˜œ- ?˜>­?˜­¬?˜´¬?˜ñ«?˜ø«?˜¯þ?˜hý?˜ ¨?˜.§?˜5§?˜½4 ?˜§¦?˜¦?˜¦?˜Z¥?˜a¥?˜{õ?˜¦ô?˜Õó?˜ÿò?˜€ò?˜uñ?˜Üð?˜úŸ?˜3Ÿ?˜:Ÿ?˜+B ?˜¬ž?˜ž?˜ž?˜í?˜hì?˜ê?˜Ÿè?˜óç?˜èä?˜Pä?˜”â?˜Má?˜œ?˜X›?˜_›?˜fF ?˜eà?˜ Šø?˜Lšø?˜̘?˜ë—?˜ò—?˜}I ?˜Ãß?˜kß?˜ËÞ?˜‚?˜&�?˜-�?˜K ?˜Ÿ€?˜ €?˜€?˜OÜ?˜$Ú?˜Ag?˜ f?˜f?˜ R ?˜„e?˜îd?˜õd?˜ÛÙ?˜–V?˜ÏU?˜ÖU?˜¶U ?˜HU?˜²T?˜¹T?˜GØ?˜ I?˜DH?˜KH?˜µZ ?˜½G?˜'G?˜.G?˜"Ò?˜ Ó«?˜Lã«?˜jF?˜¤E?˜«E?˜gh ?˜Ñ?˜£Ð?˜WÐ?˜ Ð?˜×D?˜NÏ?˜øÎ?˜«Î?˜_Î?˜Î?˜·Í?˜cÍ?˜ÝÌ?˜�Ì?˜ÎË?˜ í9-?˜Lý9-?˜²C?˜¹C?˜dk ?˜JË?˜Ê?˜ÑÉ?˜FÉ?˜ÃÇMjw{‚Žš £´àã쀃…‹›§ª¯À×éìŒ�”–£§³ñ÷ÿˆ•™´·ÆÊÏÕ䃜¢¸¼¿Õ¸»á镤»ÄŒ®ÎÑ• ª ­ · è ë ù ‚ Ÿ © ¬ È Î û ™ § ¯ µ À Ü ë ò ø   ¬ Ö Û ˆ © É ã ï ú µÑàïþލ¬ÊÎß䆤´¾Ì†‹¡ºÉÚãìûŠ©ÅÕÚ‰¤"Ö"Û"à"„#¶#»#À#¡ªµËöûû‰�œ¬ÆÑõ�’ž´·¹ÈÎ�fully compiled DFAsÁ'hybrid::regex::Builder::build_from_dfasÁª dfa::sparseÁdfa::AutomatonÁø%Unicode scripts and script extensionsÁ Input::rangeÁ hybrid::regex::Regex::try_searchÁExamplesÁ>nfa::thompson::backtrack::BoundedBacktracker::max_haystack_lenÁ�*hybrid::dfa::Config::unicode_word_boundaryÁ hybrid::dfaÁhybrid::regex::Builder::dfaÁœ±cͱc%https://www.unicode.org/reports/tr18/Áõ±cŸ²cÕ²câ²c�lazy DFA’s configurationÁÙ³cé³cdfa::regex::RegexÁͱcÂï5Ãýnfa::thompson::pikevmÁ•´cŸ²c$BoundedBacktracker::max_haystack_lenÁâ²cÜ´c hybrid::regex::Builder::thompsonÁé³c‡µc1https://www.unicode.org/reports/tr44/tr44-24.htmlÁ•´cï5Ãý³µcÙµcnfa::thompson::NFAÁÜ´c޶cmeta::Regex::search_withÁ‡µcæ¿¶cnfa::thompson::backtrackÁï5³µcÃýÙµc’·c util::syntaxÁ޶cµ·cmeta regex engineÁ¿¶cã·c meta::RegexÁ’·c¢�¸canchored searchesÁµ·cº¸c,nfa::thompson::backtrack::BoundedBacktrackerÁã·cconfigured visited capacityÁܸchybrid::regex::Builder::syntaxÁ�¸cºý¸c'nfa::thompson::Compiler::build_from_hirÁº¸cŸ¹cõ.Ö¹chttps://docs.rs/regexÁܸcü¹cdfa::dense::DFAÁý¸c°ºcdfa::onepass::DFAÁŸ¹cõ.BoundedBacktracker::try_searchÁÖ¹cóºcƒïnfa::thompson::BuilderÁü¹c™»chybrid::dfa::BuilderÁ°ºc¹»c%https://www.unicode.org/reports/tr29/Áõ.µÚ»cCrate featuresÁƒïóºc�¼cuse zero-copydeserializationÁ™»c†¶¼chybrid::regex::RegexÁ¹»cÛ¼chybrid::regex::Regex::findÁÚ»c•½cƒïí%meta regexengineÁ�¼cк½c(construction directly froma Thompson NFAÁ¶¼cì½c%https://www.unicode.org/reports/tr24/Á£ Û¼c‘¾cAvailable regex enginesÁ•½cǾcÄlazyDFAÁº½cí¾cAutomaton traitÁì½c¦¿c£ Input::earliestÁ‘¾cá¿c9configuring heuristic support for Unicode word boundariesÁǾcÄŽÀchybrid::regex::Builder::buildÁí¾c¦ÀcUnicode general categoriesÁ„¦¿c£ ËÀcShould I be using this crate?Áá¿cëÀchybrid::dfa::ConfigÁÄŽÀcºÁc dfa::regexÁ¦ÀcèÁc„ Input::spanÁËÀc�ÂcëÀcËÂcnfa::thompson::ConfigÁºÁcøÂc4Unicode’s “simple loose matchesâ€� specificationÁèÁc„ ˜Ãc�Âc nfa::thompsonÁËÂcÀÃcøÂcùæÃcnfa::thompson::pikevm::PikeVMÁ˜Ãc nfa::thompson::backtrack::ConfigÁºÄc regex-syntaxÁÀÃcàUnicode Age propertyÁæÃcéÄc‘Åcò� Thompson NFAÁºÄc¶¼ÅcInput::anchoredÁØÅc±BoundedBacktrackerÁéÄc2nfa::thompson::backtrack::Config::visited_capacityÁ‘Åcò�‰Æcutil::syntax::ConfigÁ¼Åc—«Æcnfa::thompson::CompilerÁØÅc±ÊÆcçÆcmeta regex APIsÁò�˜ ‰Æc°Çc dfa::denseÁ—«ÆcÚÇc± dfa::onepassÁÊÆc8nfa::thompson::backtrack::BoundedBacktracker::try_searchÁçÆc�Èchybrid::regex::BuilderÁ°ÇcŽ$¸Èc—ò$ constructiondirectly from an HIRÁÚÇcúÝÈc builder APIÁôÈc regex crateÁ�Èc½Écdfa::dense::DFA::from_bytesÁ¸ÈcóÉc hybrid::regexÁÝÈc©Êcmeta::Regex::findÁôÈc¿Êc!manually construct a Thompson NFAÁ½ÉcÛÊc$hybrid::dfa::Builder::build_from_nfaÁóÉc‹Ëc$Unicode text segmentation algorithmsÁ©Êc©Ëc API themesÁ¿ÊcËËc„±cÛÊcª ýËcݱc‹Ëc²Ìc°²c©ËcçÌcª³cËËc„±cœ±cýËcª ݱcõ±c²Ìc°²cÕ²cª³cçÌc�Ù³c–crate::util::syntaxÁthompson::Config::utf8Áthompson::ConfigÁ dense::DFAÁ sparse::DFAÁ"dense::DFA::to_bytes_little_endianÁhttps://docs.rs/regex/1/regex/Á$dense::Config::unicode_word_boundaryÁ dense::ConfigÁìcrate::util::syntax::ConfigÁ—Îc¯Îc regex::RegexÁßÎcîÎc�!documentation for the regex crateÁ¥ÏcÈÏc!crate::util::syntax::Config::utf8ÁˆÐc—Îcºï5 crate::hybridÁ´ÐcßÎc†Î crate::utilÁÖÐc¥Ïcsyntax::ConfigÁˆÑcˆÐcŽ$æ0ï5 hybrid moduleÁÄÑcÛ´ÐcæÎcrate::util::primitivesÁìÑcÖÐc”Êsyntax::Config::utf8ÁˆÒcˆÑc”æ0ï5¶ÒcÄÑcÛ crate::util::primitives::StateIDÁãÒcìÑc˜ ”ÊÎcrate::util::prefilterÁ½H‘ÓcˆÒc±”æ0ù¶ÒcÛ dense::DFA::from_bytes_uncheckedÁßÓcãÒcÍ”Ê!crate::util::prefilter::PrefilterÁ Ôc‘Óc½Hdense::Config::minimizeÁ±”dense::DFA::to_bytes_big_endianÁïÔcßÓc�" crate::dfaÁ«Õc½Hø Ôc³áÐ crate::nfaÁ±ŽêÕcdense::BuilderÁ�ÖcïÔcóºccrate::dfa::denseÁÅÖc«Õc�!crate::nfa::thompsonÁõÖcáÐêÕcŽ onepass::DFAÁ˜×c�Öcóºccrate::dfa::dense::ConfigÁ½×cÅÖc crate::nfa::thompson::ConfigÁä×cáÐõÖcµŽ one-passDFAÁ”Øc˜×cÿóºc0crate::dfa::dense::Config::unicode_word_boundaryÁ·Øc½×c"crate::nfa::thompson::Config::utf8ÁåØcä×c¶dense::DFA::from_bytesÁ¢Ùc”Øc,heuristically enable Unicode word boundariesÁÉÙc·ØcìÊÎcŽÚcåØcàþÎcÆÚc¢ÙcñÏcíÚcÉÙc¯ÎcÊÎcŽÚcîÎcþÎcÆÚcÈÏcñÏcíÚc�—ÎcDFA::from_bytesÁAutomaton::acceleratorÁ$https://crates.io/crates/lazy_staticÁdense::Builder::configureÁConfig::unicode_word_boundaryÁîÎcûíConfig::dfa_size_limitÁBuilder::buildÁ DFA::strideÁ—Îc¨Üccrate::util::lazyÁ×Üc DFA::configÁ€ÝcžÝcîÎc�ûíÔÝc‚Þc½Œ—Îcº‡µcï5žÞcºÞccrate::MatchError::quitÁžÝcûíÛ%Config::prefilterÁöŒÔÝcAutomaton::try_search_fwdÁ½Œ‚Þc‡µc util::lazyÁï5ªöºÞc›ßcžÞc¡ÈßcöŒêßc�½Œ›‡µcšàcªöStartKind::BothÁó÷›ßcï5ÂÈßcöŒÈ%êßcDFA::to_bytes_native_endianÁšàcªöìƒácó÷Èáccrate::dfa::regex::RegexÁƒácœó÷†regex::BuilderÁDFA::to_bytes_little_endianÁÈácŽ“âcõ. crate::InputÁ˜×cÆâcä×cÙâcMatchKind::LeftmostFirstÁŽ“âcæõ.�ãc˜×cƒïBuilder::syntaxÁÆâcDFA::write_to_big_endianÁä×cÙâc¸ãcŽcrate::util::wire::AlignAsÁConfig::starts_for_each_patternÁõ.�ãcò$˜×cƒïüãcnfa::thompson::BuildErrorÁ–äcä×c¶¸ãcë%ÊäcéäcƒïBuilder::build_from_nfaÁüãc¯åcDFA::from_bytes_uncheckedÁ–äc once_cellÁÊäc $self::Builder::configureÁéäcñÏcûåc¯åc£æcÇæcàæcConfig::start_kindÁñÏcûåc DFA::stride2Á£æc lazy_staticÁ„ Config::newÁÇæcàæcßÎc§çcñÏcˆÐcÊçcøÂcáçc„öçccrate::MatchErrorÁßÎcConfig::determinize_size_limitÁ§çcÀÃcConfig::byte_classesÁˆÐcÊçcøÂccrate::util::lazy::LazyÁáçc„öçcÇècßÎcÎìÑcãècÒϺÄcÀÃcˆÒc’écˆÐcŽ$øÂcæ0½écMatchError::quitÁÇècí%ÛÎãèc”ÊìÑcºÄcÀÃcˆÒcDFA::newÁ’écutil::lazy::LazyÁÒϽéc£æ0ÁêcÛ½÷ÎìÑc˜ ”ʺÄc�ëc½HˆÒcò�ÒÏú!¢ëc±crate::dfa::regexÁæ0ÁêcÛ¶½÷ò�”Ê�!crate::dfa::regex::BuilderÁ—½H�ëcDFA::to_bytes_big_endianÁ±¢ëc§ìc½÷ÿò�ÅÖcéìc—½HøõÖc˜íc±MatchKind::AllÁáЧìcùBuilder::thompsonÁÅÖcéìcû—DFA::write_to_native_endianÁõÖc˜ícáЃîccrate::util::wireÁAnchored::PatternÁ§îcthompson::BuildErrorÁÅÖc åØcÓîc‡áConfig::specialize_start_statesÁõÖcµƒîcÜ%‹ïcáÐ�"¡ïcBuilder::configureÁ§îc½ïcDFA::write_to_little_endianÁåØcÓîc‡áòïc"https://crates.io/crates/once_cellÁ self::BuilderÁ‹ïcè¡ïcÍ%Ãðc½ïc«æðcåØcà¼Üc‡áòïcžñcÅñcïÝcÃðc¨Ücæðc¼ÜcŽ×Üc€ÝcžñcÅñcÿîÎcïÝc‡—Îc¯Îc parent moduleÁdense::Config::prefilterÁÊÎcßÎcîÎcûíïÝcñÏcìˆÐc—Îc¯Îc�ócßÎcîÎc�ûíÀÃcˆÑcˆÐc—Îcºï5Builder::build_manyÁßÎc†ÎìÑcûíÛ%öŒºÄcÀÃcˆÒcˆÑcˆÐcŽ$ï5Regex::find_iterÁ¸ôcÛÎìÑcöŒºÄc‘ÓcˆÒcˆÑcÀÃcBuilder::build_from_dfasÁŸõcï5¸ôcÛ½÷ò�ìÑc˜ ÎöŒÈ%ºÄc½H‘ÓcˆÒc±crate::util::iterÁòõcŸõcÛ½÷ò�½H‘Óc±crate::util::iter::SearcherÁñöcòõc½÷ûò�ÅÖc½HøõÖc util::iterÁ±Ž¼÷cñöc®ƒîcõ.˜×cÅÖcä×cutil::iter::SearcherÁ�øc¼÷cÖŽõÖcƒîcõ.˜×cÅÖc åØc Regex::findÁÚøc�øcŽæá�ä×cõÖcµƒîcÜ%õ.˜×cÿŽÚcRegex::try_searchÁ°ùcÚøcá�åØcä×c¶ÊÎcŽÚcåØcà¡ócŽúc°ùcá�›%ïÝcñÏc¯ÎcÊÎc�óc¡ócŽúcŽÚcîÎcñÏcïÝcWó÷�¨Üc£æcáçc×Ücsparse::DFA::newÁdense::DFA::to_sparseÁdense::Config::byte_classesÁßÎcîÎc½HøÙâc˜íc±ÈácñÏcìÇæc¨Üc˜×cáçc×ÜcáûcöûcßÎcîÎcÓîcÙâc˜íc¡ïc½Œ˜×cï5áçcáûcßÎc†–äcÓîcÙâcöŒêßc¡ïc½Œ˜×cÿï5æðc–äcÓîcžñcöŒ�ëcêßc�¡ïcÍ%½Œ›ï5ƒácó÷£æcæðc–äcÇæcžñcöŒÈ%�ëc½Hêßc�ücÈác±ñÏcƒác¨Ücó÷£æcæðc×ÜcÇæcöûc�ücîÎc�ëc½H˜ícÈác±ñÏcžñcƒácœêÊÎcAutomaton::start_stateÁü¡óc¼Üccrate::dfa::dense::DFAÁûíÈÏcAutomaton::pattern_lenÁAutomaton::match_patternÁstarting configurationÁº€dcrate::MatchKind::LeftmostFirstÁæ€d†ûíÈÏc��dˆ‡µcÅ�dæ�dûíöŒ��dAutomaton::is_accel_stateÁ‡µcÅ�dcrate::MatchKind::AllÁªöæ�dë%öŒÌ…Ђd‡‡µcªöú‚döŒÈ%Ì…Automaton::is_match_stateÁЂddense::Config::accelerateÁªöú‚dÜ%«ÕcÌ…Åçƒd…“âc‹„d«ÕcAutomaton::is_dead_stateÁçƒd2crate::dfa::dense::Config::specialize_start_statesÁ“âc‹„dõ.½×c«Õc�!ð„dƒä×c¸ãc“…d“âcæõ.ƒï½×cAutomaton::next_eoi_stateÁð„dä×ccrate::dfa::dense::Config::quitÁ¸ãc“…dõ.OverlappingState::get_matchÁƒïÉÙc½×c¥†dûŽÚcä×c¶φd¸ãc„‡dƒïí%ÉÙcAutomaton::start_state_forwardÁ¥†dŽÚcstartconfigurationÁφdnfa::thompson::Config::reverseÁ„‡dñÏcÉÙcù‡dý¯ÎcŽÚc¨ˆdňd§çcñÏc‚Automaton::match_lenÁù‡d¯Îc start::ConfigÁ¨ˆd„%crate::dfa::dense::Config::start_kindÁßÎcňd§çc‚®‰d‰ñÏcøÂc¯ÎcÓ‰d„ð‰dßÎc§çc‚—ÀÃc®‰dø!Automaton::next_stateÁøÂcÓ‰dä#„crate::MatchKindÁð‰dßÎcìÑcÒϺÄcÀÃcá†ø!†‹dùøÂcÁêc¶‹dÛÒÏ”ÊìÑcºÄcÀÃcá†Automaton::is_start_stateÁø!†‹d%crate::dfa::dense::Config::accelerateÁÁêc¶‹dÛ%ÛìÑc˜ ÒÏú!”Ê Ôc½HºÄcá†ÔÀŒd†±§ìcéŒdÁêcÛ”Ê�! Ôc½HAutomaton::is_quit_stateÁ—ÀŒd±$crate::dfa::dense::Config::prefilterÁ§ìcéŒdÅÖc½HøžŽd„— Ôc³õÖc±ƒîcËŽd§ìcùÅÖcAutomaton::is_special_stateÁ—ò$žŽdõÖcspecialization of startstatesÁƒîcËŽdOverlappingState::startÁ·ØcÅÖc Ó�d‚åØcõÖcµ‰�dƒîc·�d·ØcAutomaton::start_state_reverseÁÓ�dåØcdense::Config::quitÁ‰�d%crate::nfa::thompson::Config::reverseÁ·�d·Øcì—‘dÿÊÎc¡ócåØcà¼ÜcÆ‘dä‘d¨�d—‘dÊÎcº€d¼ÜcŽÆ‘d¡ócæ€dä‘dÈÏc¨�dŠ öŒcrate::AnchoredÁ¦“dÈ%öŒöŒ¦“d-ï5 Glushkov NFAÁAhttps://en.wikipedia.org/wiki/Glushkov%27s_construction_algorithmÁÄÑcÛcrate::dfa::sparse::DFAÁcrate::dfa::sparseÁÅÖcîÎcthompson::pikevm::PikeVMÁthompson::pikevmÁhybrid NFA/DFAÁ ThompsonNFAÁ7https://en.wikipedia.org/wiki/Thompson%27s_constructionÁí“dï5þ“dÄÑcÛÅÖcÏ”dë”dÂîÎcŽ•d«•dÀ•dוdç•dí“dï5Û¶þ“dÅÖc Ï”d�ÄÑcë”dîÎcŽ•d«•dÀ•dוdç•dNregex_syntax::astÁĪ ÅÖccrate::dfa::onepassÁfull DFAÁ crate::metaÁregex-syntax::astÁregex_syntax::ast::AstÁ� ÊÆcß ç—dÄregex-syntax::hir::HirÁÅÖc one-pass DFAÁ�˜d¥˜dregex-syntax::ast::AstÁ˜dß ç—d Ãýregex_syntax::hirÁÄÑc³™d�˜dbacktrack::BoundedBacktrackerÁЙdÅÖc Ú À•dß Ãýregex_syntax::hir::HirÁ†šdÄÑcPikeVMÁpikevm::PikeVMÁ®šdЙd³™d¼ÅcÚ À•dÃý¢regex-syntax::hirÁöšd†šdã�›d¨›d®šdÄÑcª Ú ¼Åc²˜dÀ•dؘdÊÆcÄ’™dí›döšd„�›dª ¨›d¼Åc¥˜d²˜d˜dؘdÊÆc’™dí›d¢—ÎcBuilder::set_size_limitÁBuilder::start_patternÁBuilder::finish_patternÁBuilder::patchÁBuilder::clearÁ crate::util::captures::GroupInfoÁä�pÂbˆÐc—Îc nfa::StateÁÅ�dá�dÿ³Builder::add_matchÁ˜žd«žd cÂbˆÑcˆÐcthompson::StateÁþždÅ�dÃýòbBuilder::add_failÁŸŸd˜ždÿ³—ÎcºÎìÑc cˆÒccrate::nfa::thompson::CompilerÁØŸdþžd¹òbˆÑcÃýBuilder::add_capture_endÁƒ dŸŸdÛÔaÿ³²b cìÑcΈÐcŽ$‘ÓcˆÒcthompson::CompilerÁÌ dØŸd�bÃý¢Builder::add_capture_startÁ‘¡dòbƒ dÛÔa½÷²bìÑc˜ ΈÑc‘ÓcˆÒcö¡dÌ dú�bBuilder::add_lookÁ­¢d‘¡dÛÔa½÷²b‘Ócö¡d�bBuilder::add_sparseÁ‚c­¢d®£dBuilder::set_reverseÁ½÷ÐåaõÖcáÐBuilder::add_rangeÁþ£d®£dõ.‚cNFA::is_reverseÁ§¤dåaÛbä×cõÖcBuilder::add_union_reverseÁܤdþ£d‚cáÐõ.Builder::set_utf8Á‰¥d§¤dåaöaÛbä×cõÖcµBuilder::add_unionÁ¹¥dܤd StateID::ZEROÁõ.Ö áÐ�"ô¥d‰¥döaÛbä×c¶Builder::add_emptyÁ¶¦d¹¥dÊUcrate::util::capturesÁ bÙ¦dô¥döaü�d¡§d¶¦dÊU¾ždɧd bÙ¦d�pá�dü�d¡§dÊU«žd¾ždɧd÷  b�pÂb{Š4—Îc’’ª ÊÎcëfcrate::nfa::thompson::StateÁWhichCaptures::NoneÁWhichCaptures::AllÁîĈÐc—Îc’’ëf$crate::nfa::thompson::State::CaptureÁ‹©d«©dòˆÑcˆÐc—Îcº’’íëfState::CaptureÁÎìÑcÿ©d‹©d¹ˆÒcˆÑcˆÐcŽ$ªöÛ�›dConfig::which_capturesÁÎàªdìÑcÿ©dÊ‘ÓcˆÒcˆÑcªöConfig::reverseÁ·«dàªdÎìÑc˜ �›dÛthompson::BuilderÁ‘ÓcˆÒc²˜d½÷ÊÆcªöàConfig::capturesÁЬd·«d�›dÛܸccrate::meta::RegexÁŬd½÷‘Óc²˜dÊÆcˆ­dЬd½÷Ðcrate::nfa::thompson::backtrackÁܸcº­dŬd²˜dõÖcÊÆcˆ­d3crate::nfa::thompson::backtrack::BoundedBacktrackerÁŽ®dܸcº­dä×cõÖccrate::nfa::thompson::pikevmÁÜ®dŽ®d†šdä×cõÖcµ$crate::nfa::thompson::pikevm::PikeVMÁ²¯dù,Ü®döšd†šdä×c¶WhichCaptures::ImplicitÁö¯d²¯dù,Š4öšdª †šdãÊÎcédǰdö¯dÄù,Š4öšd„ÊÎcª «©dédǰdðÄä×cõÖcªöregex_syntax::ErrorÁConfig::nfa_size_limitÁåØcĪöä×c¶õÖcÄÿ±d—²dåØcä×cªöõÖcµÿ±d¡åØcàÄ—²d‡¦—NFA::start_anchoredÁ Config::utf8ÁConfig::look_matcherÁ£ ù State::DenseÁ NFA::stateÁ¦—»³dÿ³Ó³d NFA::patternsÁù State::SparseÁ‡´d NFA::statesÁ˜´d¦—Ãý»³dÿ³ÄÑcalphabet::UnitÁ¿´dàªdìÑcý’ÒÏùÖ´dPatternID::LIMITÁî´d˜´dÃýªöÿ³äÄÑc‡´d¿�›dalphabet::Unit::eoiÁàªd¢µdìÑcý’ÒÏ¿´dÖ´d¼ NFA::new_manyÁÞµdî´dÃý¢ªö­¶d¢µdÓÄÑc�›dЬdàªdʽ÷ìÑc˜ ý’úÒÏú!crate::hybrid::regexÁø¶dÞµd­¶dªöàÚ«�›dЬd½÷crate::hybrid::regex::RegexÁ€¸dø¶dû Ú«Ьd½÷Ðcrate::util::captures::CapturesÁÖ¸dõÖc€¸dû Ú«`Ÿ¹dä×cõÖcÖ¸dû ²¯d`Ÿ¹dÔä×cõÖcµ‹Ëc State::UnionÁþ�ö¯d²¯dù,`ä×c¶ì½c‹ËcBuilder::set_look_matcherÁ¯ºdɧdþ�„Žö¯d²¯dù,ì½c‹Ëc£ ä³dòºdɧd¯ºdÅþ�™ ö¯d„Žù,¹Ó³dì½cä³d£ òºdɧd÷ „Ž! Unit::eoiÁÃýcrate::nfa::thompson::NFAÁ¢ByteClasses::iterÁByteClasses::representativesÁByteClasses::elementsÁä×c¶˪õÖc¬÷·¼dÃý˼dî¼d„½d¥½dä×c˪õÖc¬·¼d˼dÃýî¼d„½d¥½d˪Óä×cõÖcµ¬„Captures::set_patternÁ¦—thompson::NFA::group_infoÁ thompson::NFAÁ‹©dCaptures::extract_bytesÁCaptures::extractÁCaptures::get_groupÁGroupInfo::all_namesÁ¦—ÿ³ÿ©d•¿d°”‹©dinterpolate moduleÁË¿dç¿dGroupInfo::pattern_namesÁ•Àd¦—Ôÿ³ÿ©d‹©d¹Òϰ”Captures::iterÁÒÀdË¿dºÄcGroupInfo::slot_lenÁÞµdõÀd•Àdÿ³äÛ�›dÿ©dÊÒÏcrate::nfa::thompson::BuilderÁÆÁdÒÀd°”—ºÄcGroupInfo::group_lenÁÞµdëÁdõÀd˼dÛ�›dCaptures::group_lenÁÒÏú!Ŭd¼ÂdÆÁdºÄcGroupInfo::slotsÁÿÂdÞµdëÁd˼dÛ�›d5crate::nfa::thompson::pikevm::PikeVM::create_capturesÁ»ÃdŬd¼ÂdÐGroupInfo::slotÁúÃdÿÂd˼d¢PikeVM::create_capturesÁ²Äd»ÃdŬdnfa::thompson::StateÁƒÅdúÃdõÖcõ.Captures::emptyÁ¶Åd²Ädnfa::thompson::State::CaptureÁäÅdƒÅdä×cõÖcõ.Captures::matchesÁ²¯d”Æd¶ÅdCaptures::slotsÁ´ÆdäÅdä×cõÖcµõ. Captures::allÁö¯d²¯dóÆd”ÆdCaptures::get_matchÁ›Çd´Ædä×c¶%crate::nfa::thompson::NFA::group_infoÁÑÇdö¯d²¯dóÆdõ¾dûÇd›Çd³¿dªÈdÑÇdö¯dý¿dõ¾dûÇd•¿d³¿dªÈdç¿dý¿d ×”module documentationÁ¹•  ×” œÍÉd¹•×”ÍÉd—¹•E¦—dfa::regex::FindMatchesÁ„crate::dfa::regex::FindMatchesÁÅÖcSearcher::advanceÁ—ƒœø�ˆœ¼ Searcher::into_half_matches_iterÁŽé§ìcùSearcher::into_captures_iterÁøÂc Searcher::newÁ¦—²Êd„ÓÊdðÅÖcƒœê—ò$œ¼TryCapturesIter::infallibleÁ®ËdŽéäËdSearcher::into_matches_iterÁ¦—Ô‹Ìd²ÊdøÂc„ÅÖc û™œ¼Öá�TryMatchesIter::infallibleÁÚÌdŽéŠ%®ËdŒÍd‹ÌdøÂcû™TryHalfMatchesIter::infallibleÁá�ïÍdÚÌdŒÍdû™ÌüÊd½Îdá�›%ïÍdø�§ìcƒœÓÊdüÊd½Îdø�—äËd§ìcFhttps://matklad.github.io/2020/01/02/spinlocks-considered-harmful.htmlÁSpinlocks Considered HarmfulÁ·ÐdìÏd·ÐdìÏdo˼d¢Look::WordStartAsciiÁLook::WordEndAsciiÁLook::WordStartUnicodeÁ  Ñà Look::EndLFÁLook::StartCRLFÁ Look::EndCRLFÁ‹ õÖc³¿dLook::WordStartHalfUnicodeÁ'crate::nfa::thompson::NFA::look_set_anyÁLookMatcher::matches_setÁ LookSet::iterÁLook::WordEndHalfUnicodeÁLook::WordUnicodeNegateÁüÐd•Ñd� Ñà Look::StartLFÁšŽßÄä×cõÖcÒÑdNFA::look_set_anyÁ¸ÒdäÒdâÑdˆ Look::WordEndHalfAsciiÁLook::WordUnicodeÁ°ÓdüÐdš ™Òd²¯dÃý“Ód¯ Look::EndÁÑý ãÓdÒÑd… šŽßÄä×cõÖcµLook::from_reprÁ“Ôd¸ÒdLook::WordStartHalfAsciiÁÀÔdLook::WordAsciiNegateÁÛÔd°Ód— ™Òd¬ ö¯d²¯dÃý Look::StartÁŸÕdÛ�›dßÄÐ šŽûä×c¶ãÓd‚ æÕd“ÔdLook::WordEndUnicodeÁ†ÖdLook::WordAsciiÁ©ÖdÛÔd” ÀÔd© ö¯d²¯dÃýLookSet::availableÁñÖd˼dÛ�›dŸÕdÿ¬ÑdÊ×dæÕd†Öd¦ öÑdé×d³¿d©Öd‘ ö¯d�Ód¯ØdñÖdü˼dÛ�›d•Ñd¬ÑdÊ×d£ âÑdöÑdé×dŽ ³¿d“ÓdäÒd�Ód¯Ødcrate::hybrid::regex::CacheÁPoolGuard::putÁÄÑc¡­€¸d�¯Æ·ÐdCacheÁ©ÚdìÏdÄÑcÉÚd¡­¯€¸d�¯ƒÛd©Úd·ÐdìÏdÉÚdÄÑc¡­€¸d�¯ƒÛd·ÐdìÏd3ö¯d²¯d†šd�›dœ‰Prefilter::newÁä×c¶Prefilter::from_hir_prefixÁ”ʼÅcõÖcregex-syntax::hir::literalÁregex_syntax::hir::literalÁPrefilter::from_hirs_prefixÁÄö¯d²¯dí›d†šdã�›dœ‰¯Üd”Êä×cÍÜdþÜd¼Åc�Ýd¼õÖc¼Ýdö¯dÄí›d²¯d�›dœ‰„†šd”Ê�!¯ÜdÍÜdþÜd¼Åcä×cõÖcµ�Ýd¼ÝdÄí›d$SmallIndex::MAXÁSmallIndex::newÁò�SmallIndex::new_uncheckedÁutil::primitivesÁãÒcÒÏìÑc¡ÍáМÌÓßdçßd�àdŸàdò�ãÒcÒÏú!¡ÍÒ!ìÑc˜ áМÌÓßdçßd�àdò�ãÒcÍŸàdìÑcáÐ�"Òϡ̿͜! Config::anchoredÁConfig::look_behindÁªö‹âd âdªö—‹âdªöä#— âd—ò$https://docs.rs/regex-syntaxÁ¼Åcªö¿÷Config::unicodeÁregex-syntax::ParserBuilderÁregex_syntax::ParserBuilderÁEhttps://docs.rs/regex-syntax/*/regex_syntax/struct.ParserBuilder.htmlÁĪöŽ$¼Åc¿÷üâdÃãd¯ãdÄããdƒäd¼Åcªö¿÷¿üâd¯ãdÃãdããd¿Äƒäd"crate::dfa::dense::DFA::from_bytesÁ½×cÅÖcæ€dßÎc±ÆÚc dense DFAsÁdenseDFAÁÐåd½×cÅÖcßÎcæ€d†ÆÚc¢æd±±ædÐåd½×cÅÖc ßÎcæ€dÆÚc±¢æd±ædÌInput::set_anchoredÁInput::get_spanÁInput::get_anchoredÁ„Ÿ²cËÀcPatternSet::iterÁ#MatchErrorKind::UnsupportedAnchoredÁcrate::dfa::onepass::DFAÁ£ Û荒c2crate::dfa::dense::Config::starts_for_each_patternÁŽéËÂcÙ³cInput::set_spanÁ¿çd×çd„˜ÃcŸ²cËÀcPatternSet::try_insertÁ”èd©èd�&dfa::dense::ConfigÁÿèdÛïËÂcŽéÙ³c Input::newÁÈéd¿çd Match::newÁ˜ÃcŸ²cÿéd”èdÄÑc+dfa::dense::Config::starts_for_each_patternÁÒÏöŒÛïù%«êdŽéŠ%ËÂc„ÿèdàêdÈédÞµdHalfMatch::newÁûêd˜Ãcÿéd�›dÄÑc3crate::hybrid::dfa::Config::starts_for_each_patternÁ¨ëdÒÏ«êdöŒàêdÞµd” Anchored::NoÁ£ìdûêdÄÑc�›d,hybrid::dfa::Config::starts_for_each_patternÁÔìd¨ëdÒÏú!öŒÈ%«ÆcÞµd Anchored::YesÁ¹íd”£ìdÊÆc�›dMatchErrorKind::HaystackTooLongÁâídûêÔìd—«ÆcInput::is_doneÁÅîd¹ídÉ%”ÊÆcMatchErrorKind::GaveUpÁôîdâídûꎮdÅÖc�˜d—¸Èc«ÆcõÖcInput::is_char_boundaryÁ½ïdÅîdË%ÊÆcMatchErrorKind::QuitÁìïdôîdÿ%ûê¬%Ü®dŽ®dÅÖc³™d—ò$�˜dä×cõÖc Input::endÁÂðd½ïd§è¸Èc¡ïccrate::hybrid::dfaÁ”Øcõðdìïdý%¼ƒï²¯dÜ®dÅÖc Ž®d�˜d³™d¸Ècä×c Input::startÁÞñdÂðd§èá�¡ïcõÖcµ”Øccrate::hybrid::dfa::ConfigÁ‹òd¼ƒïö¯d²¯dÜ®d³™dõðdú%·Øc·ØcInput::haystackÁøòdÞñdá�§èû$ä×c¶¡ïcÍ%1crate::hybrid::dfa::Config::unicode_word_boundaryÁ¸ód”Øc‹òd¼¶ýƒïí%ö¯d²¯d·Øcì½×c½×cëçd—ôdøòdá�›%£ ÑèdÞôd¸ód½×cª³cö¯d×çdëçd—ôd£ ËÀc©èdÑèdÞôdª³cÙ³cŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²øŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²øµ«ÃŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²øŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²øµ«…�ÊP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²øŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ÃŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²’ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ÍŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²’ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ÍŸg–š•š¸ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²«…�—’ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²µÃŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²™$ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²rust-regex-automata-dfa-denseConfigpreminimize match_kind start_kind starts_for_each_pattern byte_classes unicode_word_boundaryquitsetspecialize_start_statesdfa_size_limitdeterminize_size_limit accelerate Builderconfigthompson dense DFA )assertion failed: self.is_match_state(id)) dense::DFA(    à i:  START-GROUP(anchored) START-GROUP(unanchored) START_GROUP(pattern: À)  À => à i MATCH(à i): , Àstate length: À pattern length: À  flags: À  ) transition table#assertion failed: self.is_valid(id)#starting table ids MatchStates slices pattern_ids pattern_len match states no match states to index)assertion failed: dfa.is_match_state(sid))Flags has_empty is_utf8is_always_start_anchored flag bitset StateTransitionIterlenitStateSparseTransitionIterdensecur BuildError kindDeterminizeExceededSizeLimitlimitDFAExceededSizeLimitTooManyMatchPatternIDsTooManyStartStates TooManyStates Unsupported NFARegexforwardreverse0reverse search must match if forward search does02forward and reverse search must match same pattern20assertion failed: start.offset() <= end.offset()0 FindMatches redfarust-regex-automata-dfa-sparse(internal error: entered unreachable code($transition length should be non-zero$,expected transition length À to be <= 257,pattern ID length fits in u32 sparse::DFA(  à i: À sparse transition tablesparse starting table ids%start states for each pattern enabled%invalid pattern ID ÀStartStateIteri StateIter idsparse state transitionsSeensetinvalid accelerator index À&Accels must contain valid accelerators&:7expected accelerator bytes written to be a multiple of À: accelerators Accels() IterAccels accels$no quit in start without look-behind$OverlappingStatematatnext_match_indexrev_eoiUnsupportedAnchoredmodeQuitbyteD> Q A> >A* *A  quitRunnernfabuilder_statescachememory_usage_statesparsesstackscratch_state_builderStateSetidsRemappermapidxmap IndexMapper stride2*assertion failed: !dfa.is_match_state(sid)*Specialquit_id min_match max_match min_accel max_accel min_start max_start maxspecial state ids)expected to write certain number of bytes)8expected to write multiple of 8 bytes for special states8Anchored Unanchored Both start kind Match pattern_id Fail UnionReverse alternates Union CaptureEnd group_index next CaptureStart LooklookSparse transitions ByteRange transEmptystates start_pattern captures memory_states utf8 look_matcher size_limit nfa_size_limitshrinkwhich_capturesNoneImplicitAllCompilerbuilder utf8_state trie_state utf8_suffix parser ThompsonRef startend Utf8Compiler statetarget Utf8State compiled uncompiled Utf8NodelastUtf8LastTransitionUnsupportedCapturesInvalidCaptureIndexindexExceededSizeLimitgivenTooManyPatternsWordCapturesSyntaxFramechunksunionsparseStateChunksIteractiveUtf8BoundedMapversioncapacityUtf8BoundedEntrykeyval Utf8SuffixMap Utf8SuffixKey fromUtf8SuffixEntrySparseTransitionsDenseTransitions PatternIter _markerNextDupeold_idnew_idNextIterstate_idtidx NextInsert rangesSplit partitions NewOld(start range must be less than usize::MAX( ByteClassIter classesByteClassRepresentativescur_byteend_byte last_class ByteClassElementsclassByteClassElementRangeselementsrange ByteClassSet ByteSetbitsbyte set2expected to write multiple of 8 bytes for byte set2 ByteSetIter bByteSetRangeItera matchtoo few matching groupsCapturesPatternItercapsnames GroupInfo GroupInfoInner slot_ranges name_to_index index_to_name memory_extra GroupInfoError Duplicate patternnameFirstMustBeUnnamed MissingGroups TooManyGroups minimumerrGroupInfoPatternNamesGroupInfoAllNames group_info pids current_pid $)assertion failed: !replacement.is_empty()) CaptureRef capNumberNamedSearcherinputlast_match_end["unexpected regex half find error: À5 to handle find errors, use 'try' or 'search' methods[Vunexpected regex find error: À5 to handle find errors, use 'try' or 'search' methodsVassertion failed: m.is_empty()TryHalfMatchesIterfinder  HalfMatchesIterTryMatchesIter MatchesIter TryCapturesIter CapturesIter Z!unexpected regex captures error: À5 to handle find errors, use 'try' or 'search' methodsZLazydataWordEndHalfUnicodeWordStartHalfUnicodeWordEndHalfAsciiWordStartHalfAsciiWordEndUnicodeWordStartUnicode WordEndAscii WordStartAsciiWordUnicodeNegate WordUnicode WordAsciiNegate WordAscii EndCRLF StartCRLF EndLFStartLFEndStart LookSetIter LookMatcher linetermUnicodeWordBoundaryError»Pool PoolGuard ñ+regex: thread ID allocation space exhausted+ CacheLine òóstacksowner owner_val ôpoolvalue AhoCorasick _unusedMemchrMemchr2Memchr3MemmemTeddy Prefilter is_fastmax_needle_len SmallIndex invalid small indexSmallIndexError attempted SmallIndexIterrnginvalid PatternID valuePatternIDError PatternIDIter WithPatternIDIterinvalid StateID value StateIDError StateIDIter WithStateIDIter look_behind anchoredCustomLineTerminatorLineCRLineLFTextWordByte NonWordByte multi_line dot_matches_new_linecrlfline_terminator swap_greed ignore_whitespaceunicode nest_limit octalcase_insensitiveAlignAs_alignbytesSerializeErrorwhatDeserializeErrorStateID PatternID ArithmeticOverflow LabelMismatch expectedAlignmentMismatch alignment addressEndianMismatchfoundVersionMismatch InvalidUsize BufferTooSmallGenericmsg padding of À is bigger than 7 - padding of À is bigger than extra À bytes-41expected end of initial padding to be aligned to À4endianness checkversion numberStateBuilderEmpty* invalid span À for haystack of length À* HalfMatch offsetspaninvalid match span PatternSet whichPatternSetInsertErrorPatternSetIterPatternYesNo LeftmostFirst MatchError HaystackTooLongGaveUp SparseSets set1set2 SparseSetIter Ž#¼�Õ"§‰eˉe؉eâ‰eñ‰e‚Še“Še±ŠeÄŠeàŠeîŠeŒ‹e¡‹e¾‹eÏ‹eÝ‹eê‹eù‹e‰Œe¹ŒeÌŒeÔŒeæŒeƒ�e¢�eÄ�eÞ�eø�e�ŽeŠŽe¤ŽeÀŽeÓŽeÜŽeóŽe��e¶�eÈ�eÕ�eç�eù�eŒ�e«�eÛ�eç�e÷�e…‘e¤‘e¶‘eБeÚ‘eã‘eƒ’e�’e™’eª’eµ’eØ’eä’eÿ’eœ“eµ“eÉ“eÛ“eå“eñ“eÿ“e�”eÄ”eý”e´•eÆ•eÏ•eÙ•eþ•e­–eØ–e‹—e¯—e×eØ—eö—e–˜e˜eߘeô˜eü˜eŒ™e•™e´™e¿™eÉ™eí™eššeÛšeîšeüše„›e•›e¢›eÍ›eä›eî›e÷›eŽœeœœe¶œeÁœeÌœeלeßœeçœeïœeøœe��eŠ�e“�eœ�e¥�e®�e¹�eÆ�eÐ�eå�eñ�eŠže˜že¤žeÀžeÏžeÙžeèžeòžeÿže‘ŸeŸŸeПeÞŸeìŸeüŸeŒ eœ e¬ e¼ eÌ eÖ eî ež¡eÝ¡eì¡eý¡eˆ¢e™¢e¥¢e¶¢eÁ¢eÔ¢eå¢eñ¢e‚£e”£eŸ£e²£e½£eÈ£eÕ£eç£e÷£eƒ¤e�¤eœ¤e°¤e¿¤eÓ¤eÞ¤eñ¤e‚¥e—¥e¤¥e¹¥eÄ¥eÓ¥eÝ¥eì¥eú¥e‹¦eœ¦e®¦e»¦eͦeÙ¦eã¦eö¦e‚§e�§eŸ§e®§e¿§eΧeÙ§eò§eŒ¨e¦¨e²¨eʨeÖ¨eì¨e÷¨e†©e“©eŸ©e¬©e¸©eÅ©eÛ©eè©eý©e‹ªešªe±ªe»ªeŪeÙªeíªeøªeŽ«e¦«e½«eÏ«eÝ«eì«eù«e†¬e•¬e¤¬e¯¬eÀ¬eͬeÙ¬eê¬eô¬eþ¬e­­eÁ­eÏ­eî­eý­eŒ®e�®eµ®eÁ®eÞ®eí®eù®eŒ¯eš¯e¥¯e´¯eí¯eÿ¯e‡°ež°e¬°eʰeä°eï°eû°e‹±e ±e²±eƱeÚ±eí±e‚²e’²e ²e«²eIJeزeì²eú²e„³e ³e¸³eɳeÔ³eæ³eî³ež´e¯´e¹´eÆ´eÒ´eá´eí´e‚µeäµeÁ¶eæ¶eÿ¶eŒ·eœ·e²·eÇ·eÙ·eï·e‚¸eã¸eî¸eù¸e’¹e­¹eĹeݹeò¹e‰ºeœºe±ºeɺeÛºeñºe�»e�»eŸ»e«»e¹»eûeÏ»eá»eó»e‚¼e¡¼e¥¼e°¼eÀ¼eļeö¼e†½eнe޽e›½e§½e·½e»½eƽeÒ½eä½eò½eÿ½e�¾e›¾e¨¾e´¾eľeÒ¾eç¾eø¾e’¿e¨¿e¸¿eÍ¿e׿eõ¿eŠÀežÀe¶ÀeÒÀeåÀe÷Àe�ÁeŸÁe®ÁeÉÁeÖÁeãÁeîÁeýÁe�Âe Âe»ÂeÆÂeÜÂeíÂe…Ãe“Ãe¤Ãe°ÃeÇÃeÕÃeâÃeîÃeƒÄeŽÄe¥Äe³ÄeÃÄeÜÄeðÄeÿÄe—Åe§ÅeµÅeÊÅeÖÅeìÅeÿÅe”Æe¢Æe¬ÆeÓÆe‡ÇeÂÇeÙÇeîÇe†Èe·ÈeÇÈeÔÈeßÈeøÈe‰Ée•Ée±ÉeÆÉeÔÉeÞÉeçÉeûÉeŒÊe¢Êe¯ÊeÀÊeËÊeÖÊeêÊeÜ0š•¶Åá×ÔÜW4Žª=áü~5�Zv5Y90‡×Í´Ýq}c¦Ÿ+‡ä£6ð1_9¯8‰X»4I ê�`š2�s¬‡;Åɬ´›Ø€øUƒ}Ms7б(´©¹s œ³•n>½Fɱ•‘{Ðs:.@8ï\²¼»;xAd\uõÿ„»á™¶½E^ƒq=�á¼×{Mg{ÎÛ¦àØ›wz—¢ºhê�5­²ŠZö`ÔmŽÃUІ‚ÕÂ91øD\ˆ9y¸G¯š€©cuד*²àžñš§²A¢µ.¬ƒ'~Ö†ÕxÜÙõMx·ê”ð>Óy:æ4$ø#VD*^D ºN·ø_ï�®„{ b¯?À%‘Ÿœ4‰;ͼe�­C3׉�ÃW±¹VÅ2}RŒµ€~ðÄ¿Ó�üÛ™æÂÙ¿üØ$'.ºgà¦E¦�|$ÿÈÈ×öëÐ= 0ç'´±Ž)â×�h—h[ÿà0Žn…e®qP-ŽÛÚ|³ÕQ&�øO‡çF~Ù+�h÷aîµÔÜ ‰<„V#@¿·FŠ:c�/Ú¾+Ò½?«†>`Ð[óä;…D� \úã­}Pþ}zäN|êMž ßê²ÎŸkƒh•»ÍYt3ÄØ /¾¹ì£¤AɱdïAu%ïz©ûV6髱ò]Ù©Ûc>éÙšow±{ÑxÙµe–hæÄjT±$¥ä%§<Ãê“nå<Ö¿mru•ô0™ºË)h í¬%¶·º½w‘‹ÌÈ÷,¾ã6>¾’²* ‹ …®ÝÖª|¥�¹•ÚzÞ¦’{þ\ÎŽ$rþ¤·$Y=sVãc�� ��=M˜¥?‚LØ´sÙ¨Yüî«æ¤PéÌ÷Ýt÷œ ¹˜8Ð-"£gM‹²ÜÌ|%ùâÄbEÂx„;hYó©ã�í\n1r†ÇîÖ ^/_†ë$‹;¢<²/ànS$ ahûåŽ~Ä0�m§3,�¸MÊÁÃ5õ�݈í½h!²Öˆ$]š\ùsôB Š2¨–W]úE©Í-¶Ïa3§ØAd¬e ¼8LPµÏ�«Acàhèù06³ûéá‘RFÆÑ üÁ7\ÖûJó SBƒfé3nò]ó›k”ƒ›D×Ô#ºpP’{•KáÐ7ž£»A±¶f–s°¾®×q�þ˦‚ö6fvçIƒñhLyÕù<é*ÅuŒº(·ùæŸ|Uî.™ 2N !74Ñ•7WÂ?i:–EXÅĤWf° ޱî¿Tµõ1{ôvƒ¥kŒÖ[J‚h²èÒb—‘+°gèíÆÆF,Rë¶M±ËŒƒçÌ€dÔ%lß(«¹…� CmeÚ¯ñYG‰" _-CÊÄjSá·�3!Ašk<Îk¥Ún pØÊˆðIüMKØ/¯Y£R¹‡ Qûm·ôô—#‰‚¯¨¸üưÓ¢‰M7s9kfcGÊ“Dvf2hStWáèøJ9Ma ðU]¹ä ´OÙbó Êc‚Lröx¯ß4tÚUHžfE?][¶ò_ ãoÀŽ (Éêñ-#I±Õ%ž˜?G/ØF éšÎV«IÄ7ÂJžS.u[>£t„½È¿°�¿¨Mµò-ľ“¼[ ˆÇ«y æaÜ:ÙøQn¿\¸rëF)ý(}v÷A—ì©�Üt’Í~?„"oňƑnÁ÷TùÿQű·žT!pÑ®Qƒ4!˘ •ÁiÉÊz[_èpbÍ~Ù³t‘:-t8èúi wJš»“ú€ÏX'=y!˜RòUGÕ³ @“yÇ·e·ŸÌç½×úÙ¾ÁÃå«þdÖY¤r `Fbß%„ÑRå•)a…>]®í”Ë£Y¬òŠFØÿ´X°û ;RrùlŽ_÷ÉÁµÃÍ>Õ£'ÿz75ågf_1¨= Ô�BEøG(WqŒ:sû­Ú¥›®}…Zr­®@Ú&WVtÿe™‚�}qÂ&˜bÈQÞÆŒ¢ãðyÜL`nÓ ?FÃ]g»P>ûþ£‘¶Lí’k¯§ >ø$nâ�…’qÚUùäé=�©œ»ÆM�=E¢Ößí@ò"^‡7ÃïU¾¸,(Ú@“Å/QÏÁ6&Ý*ÀŒ3™?2à¦Í“…UnÈÐå|³W˜M]BSW!¸Zvóð}UCcn¾ iÏP@N�^£ÚÝ.:ãËdÀ�®[íwÞ£áÚóß°ša_�(F2óu©†Pǯ7ÂQxŒ÷?w‚¼“â™:qQ¾´òí?ÝIåÁñê ¢ î…(ÅÃ!”qHký¨}yÍK‘Oy7¨VP¤ä”îפGŠ€˜£š,ƒœØNsl­W Úœ)Amò9Nêú_ˆmm˜‹ý2vÛ\Ëu<€òœÄ³—`ƒB÷3ØV)aºÜ9{ÿZhfœÀÍ´9 VÇ/b¡ [ìqqöö¶]•�§Nø¨ ö3UH,çTF½QƒöîJ½!€Ò(«Â¢íŸùho­:…€õrWkFy‹<¡ÕÕň¦jö n©‘H5�èÕ-£;ð–éP=%’ ú(¦ØdÕ×x)U/Ô„tzŒ.¥?fèK< vJY)´V�I¦»‰[®à®¶Âõ® CG…fmλ#lÊÄ›BƒšøŸÊûE‘‘çn© ykï,#´ åÛRÙ‰“¤õAò®LI¸¯ÅPL~ÙMÿßfôÌõù1áâ΂ùxZ+Qí�4­Èú0šî{&�?¶¤é�$GÏtŒœ@O-˜w<w©œ£¥P£1ø•¿–®0tÞ²šö#a>(½ßï$ëvã¤gJü%Áƒˆìǰú73š?À –r]©¸™A©5–s©êSØ•¦£ìæ4˜µÊ¢Ì}¹‚Ruò ÊÀeøÏFîßþ`×Ù«ee(WØèÔw@¸A SÔŸVN­Jf­×e§FûfK–w#�óÆ©\{:§k40{†Äìv°&Æ;?·«þ‹:�J./í�ùiðzî”Y_Ré¿%0¾„£7=Êo‚é(0£ŒD¨§¬K 6å®H�>Œ]¹¡Ÿ½ƒÆÕ/•\|-’.&Å•”Ô~ôs⇡¼U‹³ h;Ì÷}l Ç�ØÝ›Iyu—Bö+<ª[Ù×2«¡˜”Úp»ÃHrMã©Já)“Ûö=ÖZR¯‰ó¶&ÉSés8¤‘ˆ›§†šR‚·zûóèH±¸ïdª:cá&µ‡n)küHÌͰÖ�›÷ØD)“ì‹�¯ñV^�<ì"Iƒ¯ö?ƒ8€¥«yŠÏ[•”<üØÅ€€;Q¬U—/?SOÉè³›x¢W”K{i¹s'Ð=rüÃåúøìûÔ„¹oý¹ÂÕ󮿏ŸJ³†+;|ëR_(Z>�>*ƒ,nB1‰¥§§ÌÙßp͈sX¶ùFw½ ØaßþÓ?¡ÑžÙ SÇ1O0•àâóÃvÄ_TöPÚÓoiwX‘ºÁ.jèà¿P5æ ìjÔ@0%ÙŸµ&y$Ên!$“©.ÙHc�ŠØždˆr ÌY¼5æž ù™œ“ª‡šecíÂdýšÂ£ô*æ�_�æšo ÒÑ*â¶ë1–Îg²¨§H= ÑÇ7pʲÖò0HòšÂ[]‚Öœí¦uϸèVàøèÍ£‘�¹Ï÷ÿ¦ë-ž]Ú­z@“ŒÕV#U¬?´¼Çcî2`fnuìÓóŽ0}I+ˆÈ½²É>“€ÍDb„ó)cŸƒ“±¾qO>7šè ;VŒMÁ%´³çRQʨ P4N4n»J4ÈhkZùþ 4Žî�;6|Â%Ì%옭¸»u®ÄoIyL‹¼Ñ™ë+ØçµçGßÒ_�OtµtžØQˆ^ɹŸèúúrž 2ð6†§[ú_±YwfÚëi„Êá ÁŠº7ú‚3Š­k‰ x‡´ãаîça_ÃN×7nèv6è]ƒDÔ�RõEÀcË\F}S-J>QO"ÂÓX˜ïØ™eq.!´€üA"rE_g[ˆÖ™Ð<ñ=�k¬?AõÂjFgTEûÉTÒæpeM|ž*òܹ©w\2ÐkÜBÿ�¡�ÑŸêªÖlêf¶ŠÈý1{o]î­Z`�AsïðÍWxÑ}k§¡s–ì6JEín¹wÅ/•Ô.�ŸƒáM7±¨Ã}szÈk/¾—=Ô•ófJ£ aõ: æøo"">CßiOR‹áÞx/V2’A –C_WªGÍŠ%¦B+6Äj´Ëê÷B€æK›×è§·�ÂПžíŒ‹QiÝÔD•�þV5¨ÈƒÆuþ‘ôhiy žø (ƒ õ¢oÔ¥‡ÞN²á÷‹ìc?ádÝ$ lÆ&½µÉ¿ßÂJK—iRvyuqγŠÂh.W¼¼_8g#å—É ánmÁ^Ö�ÇDKQ;Çhr[ÔL†ê@WUµÑ¾pƒ¸¥´~Ñ3L—òTúYˆ¿§°5î%¯�È­)z5 `¸÷qÿívÞ…“™®c+e‚›ØËVeÖ€¡3Y"|½,v¼†Ï®‰Ÿ!·‚RÕèä&`èR@Wh�æ”íoXdÍèà`:�‚ïuùT;¦Ó°Ñ©^a+)Ü#°ŸBýâ0Run† =ƵH•Cb²ÕH‘ü¿œ£S©2Lÿö™þŒYÿLÄÿO­oŽ]I$»Ô4¢^ñÿØ5qÖ!’~ªÆ–òÞdd’’@—À¿ßWcŸ‘ýÝYÕ$6ÿG]R³•HX`ë}±V}V�©sŽ’6"Šøû¿@¢RÑâI1Òð}œä}ou²únü-k�ýwÊpæÒe³!DZîxø‡»‘'cmöÃíb}òÄ[V鹫œ7¢¨I»uy N<\šÑr¿9F ‡UâÌS¹â¿0‚|©ò^±F£hˆß�£¿8„­‡ˆ‹ ñìëã 08/@,°œ#ÒìNòŠ$ëþÉ6Ë�)CUêÛ�ª¾8°ÛTšX[¨&ŽÔþ àUÐ’d’>Q�gaæpÓS²OÇüŒä ÀCà-ãDUV´ç4…NÔô±`{𴸬=Ã ÖÆÕÊ™øEt—OÒÐÆ5쌒åõzdQ8}“W�ÏÃB‚k§ Ê×\÷ѽÁÐ¥˜œ�ãk­~zÛω{¼›?ªM0R‹d5=ð<]E¯|O››Ì>Íw ô,ˆó½×ì=º¿÷˜ÙÕ²Á³õã7³=ÜPø�‹ „OÝã'Km¨¸Ë'cÇ^¬#Åÿ3é£ÁëÔ¾â<³Mã:yú˜–õRÛe…[Œ§E•ëåaȦ¨LJ­a®j.�ŒFÑ0áI<÷9î�§2Ô-tvÌÿø|Ü6 çj³‡uøL<Ÿ‹øàÁ?ô/æØfiîÌx\DEçÿŒû:œlº�`ܸi6¹¿7øDàƒ˜ýÒv1ûï<®›S ©X¥51Ý<�Œð}Nhë¥àf‰ÖáC\pD)æ¥ìÔûAëQZ…åi†ðª® a#ÐOò-´ :ÎóxÏ’�cž»!Õ­Ye¤½æ_À±Í?<*]f6›‡ +ðuÏo£-8ˆˆÃOáðISAçØèC·@¨„†m«N•Ìøòï>�}ô¾c:÷l¦ˆÇNíBe&')Qû}¾¯/MïFóœÚ'¶ìFÊ�Dm†âF‹ýr¤`{ð±)ë­`Y 5‚K—�œ–žK°ÐR†`ZMŠˆ ÄÉ ‹3•Þ˜·*K„4lÞ&‡T¾m¼¬¡â Su”1ùŽ= ï&2Ý‚"º¾ÓìM7É;änŽ$ÿÿà‘e¯2f²Ÿ|¨¡Å›˶±K�†úð‡¡ÕQ 8å÷»�ú¦gRñ¿§Þä(û i‡‚½­ÿIÌÛ\ê ݈ÉcøRÊ]²0åº=Žy0½éÐ¥º‘7ï ¨/Q�Ò7„ü¬O½ç|(KTJ0X‚Dé“:›sÈžšíÚ²�¬„¥Q©$L êv¦´H'„`®@’6Î5@•ãÀoœ\Š�çrÚ�P¢âC&êÕ¶cÍ«Úm‚k+¬Zÿp{÷ayñËú”ï9.>ÆÝ“ëÃ!zBíW8®Ç"ôd÷#ƹªI òùp"w ŽÀàYGÒþ6­'ió8pɱ}ËΑÖZÝHRÕ†³�¬×ƒ$9Áš©ü#|4™’kZ);’^‘å4Î2¯‚kÇi‡ÍÕ5G¾_».d?®µxl>*!_csô²ÌÊÆêDTÖ-Hoa§@Û~O N™ŽN9ÜÀÜ_F91G�Pë=C<Ìm¦ZIîWÀ—«` C³ýÎ êÿõ5»ªn|¾ÑžcVspZÑô_ÍZ5 úmêŒ, B²dm€¤ õ⥋­æØß`X$kxê†éaÆÇÙ8»2ÚÈp°–d8ÔûzFß ½ì¥ÃÇ•é"ó‡<Òqí bÓBU&˜—ßÊÎábÒ1«°7�,„aÞP¬¶*=í®åç£ö- ÷ôó³ÖQ�¡½ºSÍrÒÄßÚFÅ*ÇTGEz!×(ÝNðJÉì� rz$Ì}�9£jT§U†/Ø÷áñ%waòt…»ƒøbx59ʨöY4ÛPõf/:ÀnÚ¹ô¬g–uåýêŸTËÐNïá’EI•ʈ:Ü˶)„ȃ¥°òʇª®òoWȨDNvÛyǵä”Ö/ƒE+ÜfÓ{üÉ—È¢°EG“Yb¬¾Ó›�ª N[ ™ÁâÛºdŒ3�ý 2. äP¬•XZK°öçÑX•fŸœËêZ~fãÙ™$Ù“lˆ*$yÓNÉÀæ$ÿ‡Êíé8 àÞaBÞ©3Í+mÖÚòpø$ Èrý%—t/—\Å“yÃä2š.7ö¤ôi.¹~E¨…呵 Ï#|Ýa á=¢§Î½E%¤ýv‹Yg ¤:Ùûù¥Ó0¼ái[§Ý³PÊLV_nÙWêWPïiÐjÏé¶FÁƒ óÒ‡pSR ÅþE´0T+[!üS®¶š¸0ð%nŒ÷ñÕ‹/•½{9 ˜Þ4�ì÷ÐÁ ì[çÕ!ÝNÀ ô9„�ðúÚÉnyËåõÛ N? ·”cšœ4*bW9êÅ/ÅóêŒæö¼mw¹¥¯±H#`÷à;4ØfîåK}ÀU¢�èR‚4ÙŒª†4&šjdŽÉC�ŸëK™¾ÙÃáhƒÌSº�p$ ÷–l. ΕѠúª¶ai¯ž .&lH)±E¡z–ì’.­ï##pr¢ SAU©Ò îÊ0§›C×®nÖ7§˜šauQÞb²pp*÷¾M8›Óéšé…�½ ©Ô±½1öfAbãEG‰\¡Y{¼þA}ÃR Ù<8áq2�  $›•šíµ.¥L¤N�‹)ÐèMAÎemÖÆ0K�ÀM»FžIñÊuØIĽ,‰EQ§«ã§Š+&â Ûä+˜9ú‹]y:‡£@ËB"ë ËÃ>õî¢Yp”3šÕ�¶õ\›XÜÒÆ-×mÕÛhCÅ� ç™hbDwU*‘Ü;tQx£v¦±,3Õó¹‚�S¢éw@är;žCÉA»0O&�BdüwgbýOGH‰5†�Æ|Ã/;j%²HFÉ‘-ÕgRÒÒ²yÆ/u«±Ü‹Yã¹=ÿÜîa´âC«Dã»!l㺂NðÚg>oÀ¸“¸‘R,ºoõÍnyö»ÌµÞ\ç•�,lB�Þ½R‰„Pz!ÅìCr5?/a˜¤ã«i¢·¢$¬Â ñ僌 ¢ 7ÛÖ+²ÿÑ~yj `jãâ.¨Î­Pd3 2”´m™¶Âðrz«º˜ç2Y•xø ã½Þ“F?�Eζ¿ ‹ƒ;ÍØDÌñ§%ÁjÂÔ,·º²Ñ°}fYBY–s_�âÛí�¦Ì^“Ó¨]×®$±#rt%øM>aQ ¤¸Âczâ/ë8 —.TÒsÊ×?ƒÇüp¥Çp~9§°†Ð@Ìü�ü»)’%ãà¦írcÀ¶8qê5vÏ©ËS• $!üËc v_\W¹èc CšvCî³6†] Ïãe;L2Øó ´.纕e¢²”{?aå"B\ä%Gívyl ÅJ«Ì^Ž?w;8¸ÄÊÐøâ­�yþiƒ>×8ÛžÃÂ0=%úçÎì´;1¼Ñ5"ÄÀÓ'ÿŒWvÁ:×Ä6Kd@ñçc¢C• ” �†à îPå«‘ÓNb "(9Y ¤qVcòÀ¼/?;zZ—JB3Zß>ë–jãÀ:šÞËD0 aâbN,e© ÛŽAÅe êh�ÔH9#pïÿ*ÁÈmˆÛ2:°]�žWQà (í®‹A¿± ˜Êçv¾<•¸èq‘Ñ8ûa1ÓõZÿ¸\)3Yp4<ªÜ»ŸA½8ŒËÆDœ»*àyÅ1© Ÿḭ́ÍõŸ—Ei¸ Zœ¤#%¸Øà̓©ÁÞ§¯˜áó†~WŠw“Æ£7ñ‹J…I³-.³×õÌÞ¼Ò$@søöÎ'ÔýG©K[T/ê‘2¨ä‘_´íLnÃ#n-.´3ÔûlÄàmÈäà ü:ý�Ó~«Éîb" eB ›'l FM#OOm>SUvFdÊÕsêp;:,æ›QêZ-¢Ó Àœ•tŗލa’Øæ_Öhú| m˜•«Ž,W©{óé´X7Rc§¸8Ç =¬íM Ó�ˆžC2fæR\ɺ¾Nõ±ý~¶µöQPÕúž–Ã((!Ûkµ`Ø™%ÎD€ã³¢ñuH�t¦ì©t¿Ú½ƒ®bða”ê4ºî¹Ç¿íúÆÉiG�YÔÁuå §œ|‚ò¸¡Fˆvj‡YZ#…Èì:‰°3Y½Kºœ�’'†nT[ÏüÓë Hɹð.ÛhEa#ÀAÇTÙ_ðÅè°gü¦Ú€ZžÚášüÌF° ý‹²-1§åÐ'²„ßÉQ–ò*?FŽ÷±XàK�‡¸}GAk·|žß¸75tÞ¾š�v`F]R�·F^哘ÆÈL0råϧY�s3 \)õboŒ£ñ¤WkI�¯œnÐ<‡iPGÅ»¬ºdð"uØÉ¥x¢Å_¾`LÎÕɬh¶ã†ik�""ÀRu�I¼ðZw:{áü'Ç-ý8Ÿ˜î ‡Ö¹ ©Ÿè ž“.W,Ú«<4ÉT¢ðØ*¾üV±.Ѥi‰M@f´5| 53 Ȥ-4yÕ‹ˆä¿ ;‹ÎMöº?&÷ÔJ¢ ŽªáPØÖD»n©�®YviUê¥ß�ÊMÊÊ ~uˆyá¼wY�»VA¯]m 7`í?—Üä|ÍÏe¡ µ�o_az ?ކçÌI¨B Å�+ª—¸ðÚF -jÙWe3Fïª_\_R ž§ý§•µÊÛ_еÒ½¬lÛqÜý`{Þ< C aà[i‡hŠ‘y'Ó~´,ÙÊÓYTŒ?ý� ª6-énßJˆâ;kOÊ}µp:âÄf–°½±æpç>EšD½‡Ü\á¹4)ܶ¹Ø30èŽ,YþIj”‘Î…êùôçYrgá+m!·I#àèØãÅSÍŽ÷"�ø_EZÆ7Í}™qʣɃá,”Ø ipwàh BS%œA¤‰ïºca^¹¤˜=mµºÄÄ”r•AϧÉSºÀ5ðóã€ê¥ò]÷‹rIpŒ\¯"C³5šñƒí$óQÄý9u%?Ëó¥UÓ×»ÑhC�\r P)æR@UG뻞døT§©¢‘Ž#6£o9Waï¾$K© n$2èIQžïÚƒCð=9ÕúE–eºAè£Ã¶ÑŠd� |gåÁY k‡'3B¸pÝ—¥f­‚KWí«ºèãp…ëlízÉWÙ†U¶pðÃnl:÷^­cóû©_Æe‡�“~XV01˜Vþb?�õ¡K]°|“`xîÙ-­ò¸ý]Œª„YM‘ ‹XSñD‡D‹ØŽ`3Oè¶ ‘ ®ê„I€áý‡§@Ö;º}løxÈ«“åô`ä§£¨oiVý¼Üt¤Âž$§Å{l�b4kú:ú rhû 7ã$r™±sž‡‹ø·¢N=};L28xÖp×ä¯>c‡VRZ­�Î&Öº.ð±�Œ!¸§§ q.KHM½h¹{ܶÚüÎFÅ]Ö Ã•ò]¸Ì<�±·�«›lÓæ õBb:ʽn-ŸNOD<œ‹¯jïãÀ XV©‡+¿¦ ª;QmD�ÖËzRu Õ‹ß j¢ëšë±KXË�;¢]ÇòžÌKp­B­/ãñ3MØÁ‡¦"?ƒÐÿðE<Û£%n?=^Pòj‘Õ}ûyµh;;¡Àç(•9dF^ó~£™EBÁ³/H)†vî¯Ãfò~ÂCÿº@$ã±#V8OÖ~Wb ÇÓ(ûÐ7< “{ «£Â7–œ´’±èþÇvùó&¹ÁŽ.¨TQMã¨ÿ9A[öÅHËn \þ d•œ¨Q}y‘ô‰H=¶ysZ[ÝžÑ6m1˜iu›dd/ÆçáÍîú8 ‹Ý³*¡Ÿºç±œæEwM¡À­È˜ío¥‰ö ”óÚŠ}J�^£À!=R(qžR&aoíhÑåJ«w’ydcp¦‚tËn7&ÏÆˆ×þ—C ewê¢ökC6¨>©•H ®{Nï´ÃQŠÄ��‰êÝ/ô£ˆÜ›NOwt™†q±_¢¡ˆÂ¯ô¤Âš4}W«]•I°Ò|‹…c†gk¸Ÿƒ˜XòXàÅóN7ë¢Ë<Ä‹)D�y” ¸Ü8_½ÒÜq$°Iv»pA÷ÕX¨¿„ßLN›·{+˜VVò.MÆÉ§" Ãó€FIÏþ8·“Vn�ó•J¿_3+^z‘·K�|5!›!ÓASS9³?Rç_Tå°üêS…ÔÕèÆ$5Ÿtš§¶·b#ž8ãáâµ26[Uû…Ûuqd¬w˜²ê¿äü ’& l\ôÛGÈÑB†jDœ”Ò�Çë%ôšµp+fÃsw*ƒdÒŸãÓp%±ñaè®ò¾§„NvµÀ€j[+‰ŽÇÖ*ƒ–Ñû¦×š¤9½Ç.r?ü©Î¶²‰‡Œ .دZk§ð›FÞgÚ¤³Xæ'Ô„ïŠ\ÊÕ’i4Ú_Î9‹^H¶M8 D ñK²¥ë¡»Od8Š‚"º†º£…3A^̶ēíçÍšãÒŸ¢ÖõHµš®à»Æ§BÖLóƒHþY“ó¿R�¬5 ýG'ZJ¶ýÏfÎê-ýÐó å¡N¤Ýò“è�âå}V#3£VË`H˜È¨þDUçß�©”�:sâÎ9€ðRÉ;TÉCïIÐ2…ÐÌ-³‚Ñ \r“œ/ü*l›N­dY-dµIxÌþÁ_‰ ƤP™Û¡È¬I¶�ÃÚ˜Ë ;nTË‘k×Ü{Âc[*:ábÛ€;éSaq¤¯£ª6~Ãërv1í3úÅž ¸×;‚Ÿ¡ õýóð÷m¿o«·Cï!Å)¤Ž(îÆÙá)Wbõê±™Æw�êmó^y9Í]§¶i¿afQˆÁ?ÑóJ>|_(.Z³å^Ï+sÁä¶¹�}gCx>ÝöŠ„ŠkqƒVZð¦ë3ˆäXœáÿ=±ccî€Ï-„qÏ0áWÏבƱ\Ùš×OÆ�ªzVzW=T60a$“îªÐ‹”š=íƒvï˜Gt×È»ªPΠB|À¤ƒ˜KòjF6à[ó—– Gcwé dò¨æÎ=…:—\B´e$}¤û&ñ¹mFcúR¸ÂFçNãN%Ám‘ݦîøjRÁ$�”39­Bîî���!ÞNÿhl<ÄI·†;awÂùƒn-Ë‚HŒ_ƒ¢ɇð'&ôíÈ<ßé- *…vK«þ´ͽž‚B©+(¡ëlƒ¬$RßÝ:É׆¼ôê6ýÿÜà kvcäæ¾A�4ö_%žÂ®•7ÞêaÅ€Á­ f&öŸë#[áÚ–1k«*ø¬G»Øµ—K–ŠòMƒØ»ÌÈ^l€pŽ�¦9»Ç?¢jAµ¤õë—¿—F•õ8inî€Â"ZäÄÝ+XÂ6rÚnTIÜáy®ït¸–‹lB·SŒ ŠxDOnLWèµb¸‘Cè|Ø÷‰ #ª‘¯ÜUSªQæ's3X?5ä§MªC¦}0€~iíÜ ®¿dA8Gó«Ð*Ñï÷¯¦æƒy)<ìzõ³£ ý3,a)°Hö¬F\UýÄQ°Ê£Ö†PŒ-EÒÛD`æY¢’ÇÏŒò‰N¶ËÜiEz¾'ùˆøëwé Ç$ŒäÿV1 à@¹=˜¡÷€¥Õ^ëÄì €çö42å¹ðßßAG'HY¦«-Z3öÁ:ʵ˜îªŸ!«G”uL[Á-×B5á™� ¾D™¦ñs½ãodT` ·Þ™¹Dr]×Ö©À»›R0ïv±ö/ɾ¸7cÏçxþ=�·0éÁ X®{îcÖNrRË €­ ù·öƒákô¶»øq…Æ¿7ÅÉw@,ËðêWws�Õ²Ý |þ4¨Cš ´sd�N>ÁèUœ‚5½DDÉ'»þk¶Ú±1Ût Ò<ªztÛø+—Å_‘áoLäPA¼CK5•cN&®_´V¹í“'P\ ÞúsÁLrטy0,�ˆlÁÚç�l ÚØÏ ÷÷-ön¶ÒÅÓï3ÞjÙ‹(ÔýŽt;<4©ñ*Ò�Ã2˜$Õ´á-æ,q8Šaí�ø>.˜}:EVÔ8)k@w%+{ö\’ +�•êµ /�'?Bzs$õÉbæóNñ?ƒÚ`´ Øö”ªžþ÷ÚfÛCåª|¡î¥îìÕ[þ�´Nþ8'ÍÇ.~îÿÀ¸Gž‹Ü¤Ð¸»ƒº]°É© Ÿ9êäÑ *%ð! V>ù?O+äÓö%Ʀ'€|u‘¾äÌ´0‚/¤jv®–?¾päÛÁG™”¢¼^÷5ÉNÐOßUáDáãSÕ±×&Ñ–ŽÀ¬Ä‰¾éÖªª«bi±ÝÏÒ+= çônD™ÍN$€¶‘†ÿphxQÅ¿ÚD—vö UòyŸvvôŽZé~Üé&Ì—éþ5'€¨®‚- `ë=‰‘J{¹ûç?ébª\S0TR2h@mì�$JÑ6·ë@àÎf„Å‹ÝóB¾‘�‹€Š» Üý¯Àê�†*ê÷†Ç;Tg¡Û?ww([ÔLj£(+…ï­|©ÕçÆrÖ,ýB}:ÕyПò8‰Oµ‚ljÕ)Ø!ðYI=\nýX _A¶Rd¸}6=Ÿ¤øvE º[_Ém@6RG+e¶�¥ûé|ˆêòž¿ÐÛ®šPZ~´‘€÷LØKyIâĆx^ëïã¢úlËሎXµÛ3WÊË5ö•�ô ,I@1g•X¬½ãnÀÒΉy† S¤´WbAãT›9Ã~¿î|é_OµQ Fw�E[uœh¼mBÎëˆÿMÐûßì:õ¸4àHIí³mdE>϶¤™ÓÁG’opjc¯µÉ@­¢Ö'ä… € \!¬e$Æ"Q?‘‰¦ð|è‹:ÜmÏ@�ü¤Í¥Cµ,d¨ÃŒqO¤?±*`òÖ¯77'£¿àAÖJ ~@™'f\ë麮ÜÅÓQqXˆÓØÇ™HKÅŒ½´¸ÿTXI¢)erI ­ÊqWÅ-‹C–��Sz¸(ß‹ãå¯w6Õ5·´ÉÅœÀ¤ûºÝq}ÞH¬ª5]³ŸÀµ¹k§ëNšÿwœ`­~ù¢ì­drÔ' ¦å"�ÅSQ>Ì¥H Q/$pÔè&f_<ë~ܰ¨YUTË«2÷[™›�ÃýS¦{Óá¹�]DpTÈt©1Âûpà\�¡¸|qÏà�æá02Ý÷Ï:žå¨Ý�’i‘OLŽJTÇ”"Øœlw²ùlÑ‚úÒ‡l±g(ÿn`ìL×Ð &Ï�¦�`âõ#Š^(ºW—MÒoÊVÑûwBè– à ^-&®ñ!Cìš1²XàìE²´\KŠD^:'—Ž2‰Õû~rŠä¼�°_-ülóºÅ\ ¯rn¾yÏ®<áͱC$ô t–„á¥ê‚7GPY£ýÂ’ÊRÀQh7ènŠ9tv·^V¿Ü?Ÿ\™¿Ú³Ùá¸äd¾0*®^]5e,ö¦#Ærà™ðHo´A0wO£æ^ß²5Wïl„¶°…»ÆÒ¯â]m¯*Ê"‰rÝoÒÆÛÉûùŽn­l a.É@»¹Ô¬,cc�,÷qV E_­g$ðÿhgGõ ]th½§Ò§ž´äߟ„%ñ …ó—H•ëž;IøÎ@³Cq ùÓq‚8œ©—„NKFB¹Eóù9ÎØˆu–Ťœ{¤rOœXÈk›{À‘=¥ÏŽòvã!áRw Õ¢ Ú´/ÕòáÞš™ŒÅï™MGô¹®jù̳‚Âc Kj.V�¦ûÓ«u¶Î/o[’ÝoæÍ²„¨˜@óÊÀf4!Êñó¸,µV'+b®1CÁɂӼ…îâúòhÄý¥S…9¬aÝØ+!ƨ5/§�й·´™Î¥Ž ÕîÈ)¨%0AÂQ8ÎâîoÚD{�Ù$2\jƒO V)§T(e@‚örŸŽD³`V£? ó¤å¡OiPRG’…�ó‹•�h´þAìJ R¿Î:Z9ð—¡Üÿõˆ‰gSØ*IÓÁ"2¸Ë—’L�mò£(+Õ%8OYú­”²‚ø›nDdÅköEÒc¢åÇ"Ö•ÿÁA@`•®ß®ŸòþWs'œ”Š0¦!P[pì%ðuWı]Ÿè€þóFÛ÷^Q¿}�fƒùË~D™¨�†•„¢�(ND æòÞ}9±öóË;'ÆnتλãXÓçdù8ƒÊÖ/Ò´«G=€ hÚm4©_NΙåí8dÂk9=7”• wÇ�BGàó§ Æ›!_r0Bh¥ µú<ê  _CãÄöº…²ÞhհJVsªùžySJï�jËÄ ˆj¸õbv�\h³wj€�,qG~‚%z}ü¼1¨á…8ÞçÔt52Ö_ +«S[R.>ص4eöZæ÷&4©„·ïà¾Ö�ð_ù?T€�VHS�]Øä–Ý”ÒÔkX¼àœCw¬÷s{¥5�Ìn”ô}7žÞÈñ¤Ÿa«‰¦ÜÙ3ç8Ð/!M¶ÿ]¤æñu�Aru_Œ©Î†Õ?-Ï6B™C]ãÆ¿UqÉïdò£ÞTÓÆëëˆj„ÚÂ�ö ‘W§ @zذÿ8~ ¥+AšeùO”‚!ıÒ7 ÄL\#?ÀÄý“0x¼[?öªƒŒ¸Ù‚µ²>e�{ª”uæî²¨fâJ®àÕûü5b›W¼Ž®->‹ŸHXkvl´>}ñ{5Ø>œ&9Ôöu³±�טz‡4ªN‘Éw]\š�E|'*Í/Šåÿ Ùe;XÈ*q–~/ÉÙHïÍBI#¦¨ar�¤aßÍÃËDEk}³d|QÞO“à�ÓA]†„Îs)�ù¦ƒÄ©O†F,FÊ¥±{�à+UPÍé{äJ;zøžÏÜÜáÖeóEðgbEðoý>†XÍâáÔÒ}ÒiÁ¶6÷^äpaZ5]Q )D›…\ÈõÑ ÷|rƪûû‘ÅDÏÀ8ê&ØW+óÞg‘T§©ÒÑG7wò\#D�ÅÏ*±NsùÕÔP;S‘ÐŒŽ5_ü,uXXlØ‹žC6ÿ¾sÞëûÞ» $f¦ÒÍ�›6Ù”|Þ@!þ)â |…î¢úîAu±¬œÅ›ät¡hM#Ùè䥚DÒ\„�ãÞ¨Xyißúf�Á­œtW£§÷»ó ‡h÷þ›v9—àŒÄñ\»!!ÌÝ´DãÜmñžÐéÇq`Ø!FS<‹¡âÆ DX) ¢ ×'1ãó˜è¬(¢|Ô50ÖyN—.·eõ¹Pzz±¾|L€0Yù•Ýz[CgŒc]U¦5Öƒ�7€§{³ÛQ�} aÉ�‹1–þôœ Ö9s?š¸Ð§!‘ÜÊÎèN¿ò`Rú¡äè<¢ü�nÆlåóÙÈÛÞP(ÿe•=S¹_ÂŒ \ÁY4ööi–- ßÉ›6p'¦!Å@¸ï|ÔÍ™~œw‰fîOø“Ê)ƒ=ùú‹D?m­.êãßïïqì�OåäØbÕR°g¨å£éhV¿`}I¼ù37Ø b]Lå½$ÀøÅìCýS&ìgP„±Y‡™æ Ïús|¨Z›qCÇíDÃ.·|‹¯ï^Í /­mÍØpßÏê¡3C0A<µ¼UÉ‚îÎ>®;ˆfãÈöSÊà™ �p‚_ ÌŠ )s®ÑÇ©ê+N*é�ÕèØRÂÁ™ÿ9.·)^g½ÛùDü¢ñ&üPñ°ÄÎEÙ�8ŠtU%ï–ë`†YA46œskÎh$÷ÛÉM 1íå »"�˜Ô€TéöŸ÷™ºä[Å�õÉË¿OZ[ ßckGØMm’É_JÙñj²ŒF?æJË]ôÇÖO[”Ø.¡18=j^viæ_Q?H‰©SŽÈ¸ºP7}¸Öá®™i­ úÅf°­ÑfÿBý¨¤ä=ÏRþP«ªúeµ$û«5ÔÜ£ä[S~y$\)¹NضŹ5uÙxÜüªqÙ3.bÍË(IîÏ\û?ùˆ·š|DŠÆÏ¦\úŸ‹†,bÄic�ë·¯Œ)=d<®èS�±HpâÀÒwµ:ÎhF+¸ý›�8ñÖ5�)ÌÂE¿x»ó‚'Ç�´ï‰óϯd‡Ö¤ÿšÌdö¨ÒT' Ë<¯Á™»brù \MÝ2È…ÏÎì¨ËW€oÀk““‹/¢@æ�Ä]x.À?’7%êØcÍÇú<5˜¼æ‰‹ykS®Hh§DÝÍ‹gòõÐ�¶é•šL÷ÄË./&È—Ð(çÒTÔsA–‚�Õ“¨é<ò?iº¡LƒewCy/ ¯ZJ~æ¦ÑË$áéq”åÐyBSxÊŵ‹†ÛÔ^ðV:p´�w8.^)¹»ó �äïzÈ|¹[nÁY(€¢È^�°"¡+¾”™4”ퟟz¸*£.ÓŽõJ/çU`…sÑ0§BUò²Ì—¸Ø}žëT9)81<Ѹ,»ž4ÿX<“ŸO\ÓáßÚQæ^Ñ©¥Þ•§~@R ±°Ì]ò�/Ì!MY­¤k¥1ëç® õßCeÏÇe긲±¦¬®ífBYêéʳy‰ˆ’T¬Ïuf ß~8Ù�R„ìÍŽ–rߚߧʾMïÂA-eÃ_A}²ÕáwtBÆ]c�óÁKÊŸEúœ�.DôåN<ÿwyè¢ Õ Y²„æ�_%êy$T $¤‚Tp‹·ÿ¯xï’ Ô›döø^_ª±Vy¯ *WlÅ G@¶ÿ1„5VáøõÐ�|¬3èaxMuûŠ=Ö¿Alª¼ Ó\å‘m}$4j¥.—ÖÚÓiÉ…�n~B‡'®�'ú­>7iè)쎸ÔÉåÈQ/ˆâ,p3s­//Ö8©’'=¶áƒnɆ3;„ù߬Ѡü2õÀ­ðs59õFPÔFmE†™é“èãaˆ¤ ¤5íRèpñ­ÿê @)}Ðx[ø¿úù¿'{2tdW[ŽÜÀa•ü�a\Õ’,‡ C;ãß[,ùÛnð@©‚,뙉·ä’ÖÅtoᵩŠÐé@–¿þéá,OÄüxûSëwu]þ<ê²p�&‹Ÿ]í\Y�>è|Kx_?è®&_O-@} žÖ$ gfèK2­ÁœÕgPmQ¿ùêþŸ×(†ÑärnMÜ(OW¿c2JŒ•Õ†D{0ûu&ŸÐÂÔ0�<ê>”ì!ú•´> ‡šé´¦ý5Ñ»B‡*A;ò¾1T›1á,7°34¬mµé‘ËÙ×qÚUh¥ÝJŸÄF–£ä{cÿ{Òax/�Û\ع䞮 4$¾í�nÂåú°Áú½¥�ð^çû…?|”ѰU˜ Ø¯.9 =&*z ÏÍ™äö?‚÷&­ç¶{´¹Ã÷ ¤wërApˆ÷L†ê–N’¤@3Å‹‘®ðt˜�RÛ_;#â²¼Rû.×þ 2örÀ_.Œ+¾ˆÝÏ;éèl3 §«ç"—³3Ñ?9n²t®ÿÉ-Ækl “ÌX÷MÕ_ýÇÀÃeú Û ÄÏè™Ö|˜¸­ KŸ‰˜ T!Úfvh¯¸Û˜ÂìrØÑ.[æëóz{àëéÂØÜ$$ùÇñ"ÆŸ éïù}hµ~=* ÕPIJ2ŒŠ¶–↖~dÑþÔ©\b×&nW0V9ÁÃ,ç¨Â4½MÖÿé½ç÷@­ø_•”P«EF8EjŒåslÊ{‡ÄÆ.3`N¨yxÞ‘™�Á,â˜ë÷Gš†¯¶ËŒCªÒÖc9¤S�y+ 5!AP]{W§ƒŠúTöi$ ¹¨Æ— <׆G\ÿµgF\a€�yµÞ6“±/ˆ` Ô…Fç–ð´‡ôÇÞ HÇ4É)fb�mE*Où ‰s÷·!`6²�Fô´kξú>¼¨Á�•D ù‹n¢Fé˜ÒPs�E|Ù¾&¿r�WÉ@¥ªÊÊ>Êûà&>Q6g7€dß›6TT ™.ÎÈ�ˆž‹)å¦ýsG`Ê&DЮ#�Z†1V {‹t¥\f±|N�ð áý´Ž _üŠÓnví�¥´£qíUr òn�9ãhi^äÓ­ÏÕ™HIoœ}ÀìïOtúÑ` ËÞÙÆÊ®‰C¤Hº[îÉcX¿žZju³¶E+jK5°?†ža¿Ó{XTÛKL@w:ÞE*ÿÚ ×󑦜¥'οËAê›Ïá³>†¾ÿˆ¸‰og©Ûç»Ú²^ãJù ¶¢à+Å|<•ÄŠ‚ ºŽúzugÜþWr—kÏ(ÈÉ”(â6Ô#ygA&Uñ¢{‹‡ÖŒÜ,Ç”jˆv—º�Šýùý‹re6†°ÄþÚf[eýýï;dOR³ʰ ;¬M†ÜW­E‘ÿÕ ;ç“:¤¸ ü̹àηUïÆ¾1YŠ#Ÿ1þB¾“]ž ûDG¯üÈcØÍ'}9.U³÷Ž˜N¹ùOƒ¥mú¬´^b³Ây³˜^eÒ§´†­šxµÞ‹"­H‹â !<ºá§Ï=\qK€^ YLB¶ÚþYÀy…À]àƒŠïPìôôËPð‚­á†'�Ý#2ª+VÙ¦C¯¸˜‘g·§!§´î�괫ɽ†É"îÇç­ttÀBô;‰\+’j¶oF×XÿH™Òu%ÛñÍ4q±¬)8Iz˜¨ÄØ"®è¤¼‚�•‹0rÒ�8©ºG�Õå…Ú×vk‹µ&ÊûjØÉšÄbù/¶½¬6¶‡“é|í±ó—ü›‹~Žh¸æ'R¡•L¡ê¨‰ˆoNx¡¸œ\âؽU¬o–Ì˧Öh´œ8ž—�¶##˜E¡÷µÃV~U’á­FHV÷—ܶéCf õ^÷‚£[¦ZÕÝNãËÌ;%õŸ÷?[ð´–:Ù˜dw´?H;~ßTg·ò´T*:iÑ)¡{‚þ&vT3Êd|…^éçp‚á•Ô:ù`—ÉæFªË]Ö²+<Ó|׎b|–‰ÒXÚ<ðŒ|alU-—b¤´°Aªûññßgå‡ïÄ÷bJ�ö¨ ¹öFûWÁ ìÅÜ€ ñ!G¤ÝåÚŽË] =”’±\ŽcáÊ0»nÿ¿ñ4I2ñ™ä�¯ãI+®{ã"\øócÌ4)Uc¿à"q é:a(kj K¾àZµÅN1BFgˆœÆ#zÉMà¹êÕªI`‰S@ãZõMj¬Ó2¾jÎùFQ8‚Sˆ–wxÇ›¼XBñ[=^¨½iAµ¶ÓŸ¾yÌŒê2µ ûÕ¤ÚÅU«ëP�eÌó˜_Å0÷3…/àiø�g F´Øæ¼¡`ëêïÿêì;Õe`?ê¸_ Y¨ån¥ÍÓ»:tæYxtþe Anê³ß÷§Q¥¼�ì¿6öÊwJÉ´|í�|×ÓÝp÷ˆ´d:µ46RÍ;K38Gòºmš9-¬Fê:ÊùK°0}˜´úÒ‹+3’�%œhT€ýœ2O­Œda_@$5áBv÷»<Â3ÎåþòÕ©‹*�È„—E˜‚·ý…Ô’}º¸[l$ÞJ³Xí´-nINŸ¼¢b’¹ñ¿å4O€vûG4-ëGÄ æ¶§‹Ö9ó6ðŸÚt´Æ“þ!‚ Ù xh¦¢ñ†?ÎînoÌn×3‘M�(gí7 ^:�-a¥°‡ìè åÇV�æ@Ÿ ýÝ«&ûÊ$Fs%Ûïzò·a¦q®ò§Y¿Ï˜�©¿Y¹®ø<›ô‡ï ²— šŠ%o#ñŒ¨H3±s bPœf$â¢ÿ•.ÇÒ@ n÷gp‡@6•,.õ®ÿƒ6rȬJñ·ƒ†êÆCæé§¼á¸àÌáâCwÖ{èR)ÍnIwÎ3ñø�‰DcUp‡j¿à¸Ân[eºŠŸ`Vž:ŠýÔA­?ã2†·F–¼¬»oˆQ‘‹¢â…j­Yï–ç-•�€\B…¢´”vvá7™‚1¾ÅíBY1ŠÂ�ìe�SMTjauñk{yûGY“ìYt1#ËöìÉÆÉ­wa2ãümÞî#0¶®Ê ½ÀõO†´G ⇙�œ¼^K„¦Å0'á%ÛI…£ö`žðð6uT8P\gâ–>ö팀ž‡�¾CÔœy!› ¸û~β‰x¯j*æz]=†<€2â ¸=ë.$Y‡Cz™p¥!$ˆ´µEÓ&ÓÈw¶AIr c[[ïÍã-ñ;B2ªm$»Ô÷†Æ7ÝTPÉ/Ò)Áý÷aÛ(:¥Ú7Ñ:&‚«DHÄNAÖütñCo�˜;†Ê…xNAa·¿?Cr¯ ŸøZ‰c°n°¾FÈ0–•ÊR/¥K9ÁœØ¸÷ø:ŒVù±%æ«roÕ§CTÉHÊš¢JHh“=n´œb¥ÃüuqðÄMå@Â. …ÂG£X›BŒÈîe`°û‘Æ Ä7àPó fΚ|<Ù¦¦è²8,oð£ZlAþúy2Yâ¬éÞ{�ÿu9~B%:Žð¶ Â/«Ü«ei»Æ@¡³ÿö;›2 AQmûËåó[Ž>d`ýÚyÅÿú襤x�âæB-ª‚–¥Q~VÏø=–ã5?Ä4Oê‘lD£¼=7ú¹†"ýóŽ�ÔëG×oðG�ëñ³Ö1m×<1Ïb~tô<Fwå0ÿZÓtgE]^Ï+¹�x²�° ‡0/�ò”V"Ê/ã?c_Ÿý�d×ν�µS9ñ�]Ô-\�܆œogÃölIë]áýòW~)¡ßál±ïdqßö�8“,–|?ëD…÷¯CÛK!úácA`Z+ ‚“ˌǿIÝOS<ÆiT,ò"T~j'3¨_±à«ÙN‹1‚ìÐc1íš`Ä>èG\'Çà0wîÚTtRvv¶) ¢÷´v÷šöž€”;˜È�Yu“âóF?Þö}²b•"ìÅìÈøˆ!òÜ'…Œz(ŠÌ‡6è1è\®þ�â¨li/ Ûüý–{àÅMTˆÂb‡ùÝ¡o�rAÒì¯÷–­ Ðÿ{ù@ÎzÉ_¢¼æA¶ýa~Vü‰Yxöv\õ†Â*Ù:vIäBzÇ´4cJ+-MûÞ¡¢ì™zæWZˆ O¦PÒ�Iäöo }ÇC$t3UÚP†w�™œthÚ@kl(Ô{»´”.Y°6ïÂÅR?N~„�7>š»�Ì¢ìÒx‡\Ýd×^-‰:üe¾³‡ é„ãæcÞw-†P:) $ýï�iZ¬ÛL/ä/"Ǽµ4H)nZÖ0ÚàŠ‚;°“X€Ð ËŒ†Æå['dûs“cæ‹ ë=N¢5¿ ö$Tp:÷ý*iÇTý‰óÈíûÉšY.ŠÏ´)éÖ(ÃM«•¦\»´slz#Õ<3·G=¨¶*:.‰MÝß&qø`â4D~ëÙù‚ð¤€×ɉhƒÞ�ñ?¦Ð¨Œ SÔÛäq1èp}£C+ Ћd¤©�0ì “|‚'Äá¡æÑ[Eð! ŽW<´°ùUÝ}…=îžýÈAÊÁ2âÙ,6è4@‡n&ƒøO• "ûzP'†X]ao@¸6¹)ò<,)©F›¦î� ÐíõNpNþIuúÌa¨ †²d³§—hÛAŠV’J I$ô›Íb‚¼V9á2v+èñŸÏæ÷Á2T;†Ýfzè�&HøåÍ;uz•ºŸ^[FLkf�szûÔy•Aþ�*‘à|>TYú bmFCmÐ/ã4~ �Sè­,n«6Ög°u5[ �oqnN@£#XHÜÂ7p!¼ÛÁKXEÂáìMs8/´—t˜~è[Âxà=Cb/OR¤çÙ:9o«ÆÇ\h¸ Ü£â½SB5÷=—Ùd©+Q‡´u7À„^-|?í^̪g$R¦ÕÈ�@¢B\ê7â—IŠç?±ˆM]ó›‰Km«Ù�C§Ou¿ >Ý8=X¹ƒßß­K&§Ö½â†@�ÿLÊ]@¯Pm "Øÿ;A·]DPÔc7´Vxåù‚/fà±Y¿¸í¯¯»–vŽÑCâÜk“ù`âÁÑc˜ e2ï�Ò±cpuvïÉ¡wÚ<ÿ¦£Ž¯Ëhì½ÙN¸c(¥ÄÕ±ˆû Þ킳-{$èEýèÍMîcŠÃ K}#¢V¸³nêöÓÈÿÞýجn\ éqz¿‹Ú#®Šþø—{gt ³›6¿!`7¬�ö u¥ƒ ¯õW„Q.7¡ÿ7ËöÿD�.EFMü¹D§Ä¦>—�|1kkKÆEð…Â`Ü«»ŒßgðIÂ;Þ┄F�”ü*µ€Ò;òæPÿ(+›îúaž;†×I²XKwŽŸçh^×&f.J^dÊjº~]ð¡QÚyä¿Sÿà€5äh½3Òvd¸Eу5Ä›6A3ž¨zK+±€Œ Ã!¶T73®Ðw|/t5Ê�Ñ‚ë9RÔKUÔf&"t£éšKÐþø×úF ëƒ×Î|jŸžÃãV�¡ŸÿåTü[’ºfò³zö!‚ùþý®‡ÊJÿ’¤¸”`ÚE±SZS`,.Y]U真҂4d’s‰¦’cÜÃÚzê�‘¤$5m]|ô–P“ꫜz†Æ‚ZDªñcÅ~ƒÉmýéæ‘v : (^Ñ áÕ+ýÎÚ¡`ä’|ÒZ³GõÊ\]ŠqtyIÜà~‚ õ…{Q³X lÿç© ÈÀdÜá—ŸgOúûj¸‡|~ó}KjUì ÌÏø˜£g½©ŒQEcâó0, ¦† À7ÛRË4;ªoOÍð .pØE¥"%ôÜJiZV|¨¨y]›"[O›r&VEÎÊ¡U!ºïwêÆK‡�®@P óÉH8YH¿¡G'ùÏðØë²Õñ?õÛHÌÆijèåã½É»\J¹�ÍÆ›¿ îÕkî£ÜòÐqv:>(.ab‰ÀŽ�F`Š“KÐüÕàCDÇd0Áò0u:¤œ AF)°¡H.’³„Š cÛ·Sˆè™Vå_•Î;`Ï«ŒŽéò6 DAãûs„Úýøs ÉI;’8 äPØNÉÏÆ2"'¦-^tÖŸƒ¦hjóoU& ƒø´­Ñ"•íóí‰ßW²:üÇè«;f ÓÂ̇ëºmù^˜úì w#$Á¥¿¤Š5¤¶T馗šÁŒŠdÊwñdð“Žjä;³¯ü bÁo¶í(Ò–k�¯5“Z r‘-Ð)rÅ�£ÉUc””Y •øÊß >eZó§¾KÀ×%W$¹ƒ¤_˜þ©ÍSVÛŒ°¤J´*ì‘P$…-Ú7®ÏÅ„záúÅâÕøÉ”Qm c›R,žÆŸ/¶Y˜ $ÇÁ»Œî¡ø¡z÷á‰z4CFåƒî$vÏ#©›.u"Pd³?—­/ÌmŠgÞh|RJz±±ÂÖ3.™8È“†{3¦Joºr«¿ÒHÈym!˜S…yLñ&e|y‹�Ôù÷^^ ]A:fp4zOܲxw:{Ô¾çm<œ\Ñ�ÀÁï•=vÌvÛ§RØèåPMÑ ôœ½ÖæÏgW%H„�Ñ×ýþC¥©À†Ré¡x{ÉO5GhpÀxZ¢gÿc60Ëo�ŠOzéÑFYfµsƪ~”Ý”boŠ€Ð\Ñisä×@›ø�’‡ÛNì,.T`$L-½RƱGƒà×ïÕã Æ›§vnäãëQ°vòò…Ñ�MŠÏ­)Rü{ˆð+SÞýÔV®F0kÿš?mÃÒ+ËüWL�¾ŽMcÁX‘NE”kFŸ€þ›eb˜'e‘½^ z¬ 8(ÄÂÐ0b±æ$y¯ Ò[ípf!•ÇÃ'–A(fem­Ö`ï‰�4 ᘉh>¢Ä›+ …­r³<Û�ø�þ+pxÝ?ñö°¼^•â÷Ö²~Hû{.`j ¹QkhšÄ2�â=GPç%ëÚ–\eÜiñ‘­búN,¦OùÀ—×'q¦üÑhvÒm³ò“Ô¨„zÝÆÜ't�Å¥è�Ú4´ø {[ö^ÁHàQKJ·£·�¼Ì^�¡¦h âÛH’m¹ÀaKäõ:¹_ü!Ct(<Ü-�£itjžúOS¯�FÏÓ¥ªªµÜ½hXhJX¥3ä-[ý9.È>{¯‰&_ $åÌE’ÔYÁÿ&ý¤ÆçGá´’â'<\ø÷›å*‹aÕÄÆ¨6Ý‘£«¨%³‘1Eÿú®³øX¥A2v,)L€H[ iìB’kA~ÚÁ4ûq|îNžô�‰�rÏ•8Ê „¤p†õ—oUž!‚ÝÞÌ¿ñUgDï€íÆÇ+YwN5¿µ…Á牳1×ì«"{C!¯þ¦Â‚+æýDbw—qžÑ¢â;MÚ‰;•.x8†K«ÕÑi:.êúA�Rµ]»—ýe�ºh_ÿƒÐb·ôˆ3$cNrVùùÞ�ƒã÷ª~yšÏè# uÀv4Œ™q{«1-Ò,¤õdwcõeíD-L-ÆëÃÛ ˜øZŽw³³BÝ’ÁÕÇî°Œ ð•îöÓã)©šZ—¥ Üùl¡hã'U�wŠôßõݼ¦U!Ó˜c^, ç}b›…À…uZ˜Žh^Í�ô Ï@Ñ `ºú#“óÙ Éî¼°ÓÈY7ºÊd5¼ +ƒóQì^ðÞ¹'7ìÇ»¦–ŠêbzgÜ‚yÌL ÓUœ9Ÿ8&¢a®:¼0ÙhFF>öó⣃q9CæE´Ó3}$Ö™#'…Ioᘚp�JÈÔÂi¼Š%-Þ_“æ»Ø¨÷ÈbÐ�Öÿ’Ÿls ¦ñƒÀ~ôKùìšÀF¦˜|x$£6‹„!e7²»tÐÕÙ:$>$$�4ê|H‘"nùÐhvïï’=Jûc EFÌ\Ø a€yî.—W¦ãÈÀy¤üC³lÑ%<Ú0’ÕÖ{˪ȈŠ•Â;³*‰œEÒ×ñ×éè|îâ;ÌÈyo²‘íâH¹ ¼¼:FƒñF~e†4¦'êïû®Ô%†ay\ý-4AlÕ+�/�ëwl<�<ñ¬`!ÁáÁt-¨»Leë=¶¥ª˜$¾ÎJ” :.ê,0ì™8™?Qh;/[=ˆ>Éó$ª��@³7íoú÷ê:<5Œ½8­îå³#U0f_·Â8ŒZj,LLoBÎߣ‰¦Š ϘR¡©ÐÖ$Âóêa‡ÅDURõøÓ.UÜêÑ'e[ÍO‡¸¨¾þýq }Ë·±žSÊ‚·ÿ°LÂ�fx½<íM—vk¸F•;Ó�7­ø­áy™ã#°E±Ä³O›1dJ)ï0ˆI¸DCºPÉi[4iËÓSÓ3ÃH/ %±øÛœ/P°ÉE¶Ö¥-¾)÷¨hi.nw…Z8ƒWñì¢ÊÛH6§› "^ݨC†TGô¡ó/vû¢xï³%ÂO½n"Ò\šÖÓÏ#^q‡^y_žK=½ªO/ç˜=‰û˜ò¨|¸·Ò_IOf{TŽ<çw…+a¤U�×罎B�Iœ"LJHDO$<j°ˆ5S9ð"vã&ã�:Gt�mŸ ˆê±7¶È„h+%z†‰mX·¤ˆ³Æœ$ÁÀŽ¿ ÄtÛ­¡Té1‰BÅF^g›5#âp),ÙQJ†�³Šm|Þ¥*´’Ã|é˜Ä‘8�@KÇsœK“`µVWÀ¹}fµ¬àvµ)ìjWÑ?ÁáUjÎ` @fªdŽ™ ”²‹G,]*jjÁœ0aeÜlFÝ.¤ÏMè·>�?6ôà�•ÇÊ{Õýû›ÃQ½j¿ÿj`È*ó© JàeEgiÌ(5WQ‘þ&¬âéçik“À$™‚^I¼¦ëuF»†¶�+¤¦ÚÑëØeá=:¶Œ”dÌz¡CPî…ºÌÂ(ß?:Ò˜¡fXË,ÿîAâïËðJdÂÍO=8Áàe䦯í~KFûéû;Ö¶k&‘€ÔmêQ‘›tX‡¹‡u£‡À)Vµà‹,¨¦,’WYÐò¹*öç7W§×�˜ÑŒ»©oàõ>‰Y¶)KâWzú®7J³ûoYùRî‹E¡E‹[)ß gwHÄÝ"0èl‡´=b;êɱÚKmOICÛPDôà™è$„lyoû?nñ¼D}œQyqŠ�T³ê¹Bèº|>ƒÖwBeÑȧ¬ŒqÀdÔuYèXTßA£à5´³ä¿ƒÖ‡«rá_VÜïnj3Q´4b«'BßDv¯mÓkm”ì´%èS?òV•Øc œz‡’›žkm ™F0Q^Òö>#t% Ñ©8Gâ ²•Ç®wºº‚Ãq C±ÑÏÉwÇ£&<=¯íλ †J žà2�Ÿ«Ÿ]§âUÒœÛ ]s.öxùÈJ¬×d‰'z‰\ZOÎnf—?S%v¯y ¼·Y\XªÄc6ÐÛ�Ä~5·YDèG¾æyCÕÈ»�NÔj=¨ IÜþæÑqH/cÀ€G‡ŠLˆW¿->¹$r�7ø†§s ü1ó æ�D"Éæ+”¼+˜ÚÆå¨0,¹wëÓê4#ÇiwáTÛçf,зØ¤Jêþf®èÀ`Hû—Qu(«[f6BRí ·¥^_ÆŽÍÊ´Ó/_t†êQîDýñÀ›#»zº  5Õ}èÎâ�®£õ A¶©ûJjWÖd2 ‘ [˜Ž®bródÂ'¥©½GÃËt®ÑöUàüG¿Úї͹å>æÔMÒ�²%X[è·˜[>Õ¸‡üÓùDM–¤ª#v¤‡}Ua’˜Æ%ƒGó…¼Ô^x“bžäÅÜOñ–î¥üë'ür“òÕꃒ-¼Ñrí8üVŠ4Ü nst—¾èzŸєD“Þ‚æé‚ìí½ýÓk¸‰�L—CÙÌW"CØŽŸÊ&çãuÚ9,~Î%\ËCä=Æ5*æÍ!=|‡Â�6ÙXaÒ¶²”¿©�z°j(A0Ú+øÀj‘—[a%"óŸgb¨Å|FŠKU òð$K•Ôvë<4oR�ÿ¹u/3òÏŠµdöÐW»`v-–RàS+¥”AÝþãž•Y1‚ ªæÝÕ´ÃÕø.A„ÛVõƒú…R¾‚×¢Üë"ö€¹0¾ÚÊKêÝ×»™³1È3«)30°›X+à骠~Bò4¯Ÿi\ŽÀût‚<¯ p‰œ7¡/Z^µ<ðù5x=iü—û´'µîJðËÓ�ÏÃ/¼Ì%OÂéA~ÈñÑ‚ÀÎè˜©Š¿n‹ «­ùrìw½çú‚`Ò¸Wºwéß~Àiïi¯\§| ®m—IàÈ,õDÌP&½ÓÇ1©øùRÞÀHÄT c×%/2ãêÄÈáÌjòškãÙCÄ+œÝ* s;þUØîÛîÌÜ篼 ®¡]½´Ãä©E˜ NŽGã0x 43|ÓìB†©™<uosÆ£§–)d‚§ãÁT�‚K;|BPÚ•2}øD™+hv'ø��AÏ•­VŠúº!(üÃÍ.ÝmÑ�ŸrR[Çåü,:¦o~�ŠJ¡ä7ÏIÌcج­Ð«À*»ò2ŃůÌ|‰À-Î!Ò÷!!Tš¼ öA*Qkq=Û‘g‰SnRÐÿ¸H8ŠÆÈ,ŸæÈ“£UñÃÓKR¿åx•†¡ÅðuãÏùò…ÖoCB�¼ÊðR¯êR¿ƒ¿¨! ­¡Ú£h}Ö\2{'šg¬ëȇå[d "åý@ )©ÁämŠj!p‡¨o¯'e6BnåöØêrãB}Í—ÊH¼Ú÷‹{;F§ØÉì=lÑr ƒ¢Á‡ÅÞ>™ó ^àš¶J4ÙTæm»º¥m£Ô¹Åè)YÙÿF…*‡À*ä èé Ϙ©Ù¨†´^K6x{ö›1ÜÌóÚÍäXå>Pªl…sØüö(�A!°@Mž~0§ lƒ+§:Æš6\Æaù³Ò„²ƒtJ¥€6µŸ— AX"oÜ"ÜŸ™øu9ÝópdøÂ;Rkçî꣮¯Pï¬[xÛÓ}ª–ð/2B3MŸH€¦k«]ú¾7 ˆfE’1rWl' ʲƓ’.ÀÆÔŸš¦‰ž��N;±¶~ÝÛ¹Nvü1(ͯøì^Ô×ÐQe;®]ß�¥u. ¤Õ�nårbã%ŽrèD�¤x€O3ÙÿKÎÕwxD«Á[:Eù�S`Ï^ps:¶ÿù{{f‹[šÁ×eGìí CÌxíC©2"WÝóšóhSä:ÞÎT£¸ PAŸ¼òýP¹dÀ=Fý.*–kQhžñlp?øÇò´Tzò…jõ`âFСûü�± ÀŸOmE+Ö"®[™�Ùm Zx„Âá£Øl@Ll…†mÔ³Šðö"Œ#jm)Ç‹`8S§¡)ù>¢½´æÂ3ƒÈ0Qñ… PÖÝXvÔ:ï¿«Wz¯†vXV ‰D“Û6îWã(»”³[ÆòÖÙb‡8é?k73A>{wfa]¦ ¸±ªK–Écsv{�Ê$T ¤’‹™Ë <-Õ];û¦jÝý&¾0›fânkZy§%©žØ ô7ÜØÐ’(…—†K ZÌ÷�ëMI¯‡F^€P¡ ޵—ý´ªB¹”v©_«c �/u@ÒØ¸.>(2§cÇóu`î.Vq²nÊ®ý%dV\úš�æ‰Óà½IÏ«ÑMÄÝW AÝ›&Ûoó[¸¡{•°8cHFÙv0¿iü$•~Sžè7gçÀ"DE×, :¥ ,ÏËi<]? §Áª,z�¯p´8u%Ü‘•ûÓ ˜J¾Ñƒªe;T(ܶ"?^ôÿ£�W.I‰ �¾te'Ë”ùƒ1ei”LºÀ\ü"q|{UpuP® ,‡öJ�;ú3ƒ©[4VÍÿJ±�ƒfŒGSha‡TõPްÁíª}w]TèíT˜a7ǹ²$AçvN´«w‚5[x@o)œaV(ÚÇÚ}ïm60/ß ²…J^|زgq=rÈ覣¶¾.Â~¹o,[?†aÀÍ7™ê_ÿ‰‘‚(- +y˜ûž(ö_s{�‰yù†ÎÓZÚÙÚs‡}Ñ7žö¦|×€"òªÀ:"¹ÒvÇÛ§$e˜Ø©þˆ|N�bd;)6¬+¨û'ÍÉçÓ¥]A>â×¼~úÊqùûÒ5#‡˜}¯ï§Ë¸%RÊ•r‘#ìØöÜ• ýðeäìbdÇÃì®—ù¬]AíºVøû0ÎŒW]õ¹Šè<Ù»ùŸ­¹„»ád:#& ïçû|™é$ÙBˆdŽëì¥Xr ð#—+w* ?5Ö ¥ ÁW•ÒÓ»)ŸšÑé�ErRYÆÓ¤ÍdÍ´‹Ñ…  7d¹Êó5Ð1‹Y�›¸“þJÝŽ C±›0ä/o·Âç0\ðfå•{Ý; ¤—™Ì† Æô>™¯ôcÍ#Îö¢³æÁ8�M%S§6‡aÂz}¨wÒ6™žâg~JÙ¼èkŽ=‡Ka¢¼6s…ËQj¤³Ê1hI��æ%¦UrX©æh¥Æ…v3Iô”14—8^hà6y®Èm¹&a©êƒ—-`W·K~Q=BF Ü"¢NH§?À] )P BóM˜mkªP°øŽ€fu.;èÝ/�‡—n{~ 5¢" ‘Þ»¾ìG ‚O2s³Å»øx+ž—С€èè·çi›¡ákq¦J¦MÒ3>Â8½öu$øEñ$JA\;JS“�6K£ÂsŠm#L’Ú8ú�­ÿgÝ·Ç¥¾^*4E/OïQNò%fVË&þë²9Y‚4{{´ù¦×C€ŠýV¸0Ø–˜õ¾Ó}Ž“a^w^·[ëB(rm¤PUcf‚p‰Å ‘‹Ø _VŒr…Éý»p®S•ö,wöHËпRý´á{‚³dϸ³õr 8ÙÔ#3¼�¢-[oœ>m* 4Jy~•fyÃÙj¹[ävŠ æv+©ÀF©dŠº­¶¸!ÔRå,º—p[‰_On}£îsm0pÖóC°ì�rø!á « >H^)*ßÏÓ­c»W˜£¶í…¡à�áåµÑp#P[*<ÅÕ„E UÞ+–2ß‹’Ö2·¡@Í�~-AmYlÕܺýš'‹q¦¸‹Q´Ç-íþî±ÜóÙ$ü2€w!? 1�Õ¦ëÆª:ëÀm>P3½èN³Ø� ô~øNZbýsŠí_-Ò˜;¨3 ž�ÄM¢å¶yõdý´íÏ—O¨\Ã;wØÈPŒ°B}ïÇJ%×§$ãôøÍªú‡&[�uÿC�ìIn¸WS71S¤ŒXþ¾B_GŠ}=°a6F‚ûŒE��¨‡<Ò¡žÀ•gÙ áDшd›à¸q¤'ƒ»¥!ˆ�«:œ¤ä„q]Z9ŸYì"‚‚µSçå8”ßôE L»Óùø0¹ÍFݼ& -Ê&T&æEº0wÛäŠG(šï% Û³á2›ùþqÛߨ¼ä¨ÐtfW¢”s‚ñΖoYkÏ/Ñ¢¹ovk3ï¯&ÁP¸czw>丼D÷ÙÌrµSµ"îUeÕ¸€Ðw™e—Î/æ ºK&p#Ë!¯iŸ—¬ó*'¬GÝ Úñ2t&Y‰¼3òKmÑ.¾½‹¢øðkǽPPþZÑ–µPŸÆ[_ÇdÜÖ¾¶1Y+›RóÕ$:kßG[‘eq(±q)ånÆ*çʯoZ”Ü$úe†M¹#»ÃÅf¡o*ƒÀÂ4„¶§KøBV3gº­æ㳋åƒ9^‰Ø[ÕH·€ÍΙ÷xöx5sSÊÆõYp„„�O¦:6”çmF:�ÿÓl;+Ñß©�gi”nªûsÚ¥ÙxH>ÇH‹Ž ‹.øèÛKsøM“™À”?zDè_o°pl½¨òM‚(vG#íÃ%Ñ‘’ôÓsž^EH†vfÛú«®ä#Žò™Ø˜A gãß^ãï®jò�ñ¬úg#µ™9yP�¤Zºµeà��¿”*{ÀJ¸�Žñw2¬úÛ¹óD‡³÷¡2Åì-‘JŸ'ªú ´kä~joÐõµbªºž0ßN˜€ç¶ßH…žÆêžå\GHú+ôƒ¤ÂA(ùêBÔºY'À¾ß9tóÄñj¹i 'óWÁ!ÆÃ*«”ôâ3»lsï)•ªËÂ*)È“4”�ЃÞÙګš×ƒ>óðS‘·ò7Í#ç�y®6´kÖ‰Ÿ3ÑH‚2�%?ÔàCŽÉpªrÿ©Æ†Ð:�V tè d�±–*�X0ˆ§ç@õ&Ýg¶RìYÏn߇óÞ|H  ð”ÃauɪR‡�ïYÖ„r‰Ô#¼%ñs7­›”†|Rz*²4ž"zÏHÖŸö͔ә¾d•}/;ƒ*æ2÷À²DA‚—И¾)×Ã(­1'QÊî™§-ûÛ\�ynÈIƒÿ»2ê@±§h_E=¡«Y¦w^óÄ^\lÎH–B»ÑÛk†F;�í'~è–Þ“¢b�‹Aªò�äÕ²®| EZ$HÂ-Ä�„õÔ³¢±]áÓ*ÒRéãTé”Ö¦e:Ç�’tÖ)в&dƒ9cõ)U©°}¡‹f{˜2-GH™qfáë>G‰ª„J\òè~…`PÕJûÑ`¢ÃÙÑêgßKöSÕšgëxùLSaò àoŠ�àØ“;@£S¯àú~˦ò^îxÂþ!Ó7ůÿHÏN(k1ÔÆ¬•/l|ïIç~§ÿ%ƒ¾'Dg§à†D;Vf¼l-¿àr¢Ç[Ywkôj$E÷ãvþ—�5�Ý�ó&=@;mø)žTÛ÷pÉE½å´ú²UYÔÄ'k†¨„KBU9®­›¬�þDqô[40Dû,¿ì<—WέɱÉ(ñHN¬G`{Ã2¤r ñftƒm[ÇÔÙÖ4Ÿí¹b†Ä�OBÍ­Ò–,Òv?š}‹£Ä«{'Zuu0DµKì»öô%ô6]´wžúœ/ÜÊ€‘>hʉ¼º;tØáGFdI˜\ËJÝ–þ†VËÔúÁܲ.{]3ªÆœ�[AíÿrqÄ‚Ó0”ºv »ÙˆÆœ`TܯÔ)–)�]GO²yha6‘sÊ>M¤É�œùÇ…2b7†+åN•ßòøNyâç;O0`_0ý_Ü(˱÷cq„Uhã¶u¬“Ú_xø�EP©ÙŒ{ð…%¢@>{ý˨ðšãÑä?ØHD|hí”>~Dz7½Ntv�=Ͷ&¨ BÙ}óK<¯AÀølXg¨1eU í÷ÎÖå$@·�¥qHîÒêžèºË益„4ù8?è6_'Ö4‚¤%¿1òûϬ–KJ³ ñYЧéá$Ë峈Ý&êgßáùÉ×>äÅ5g¯ Ù58�€�>E.Ž Ûfª=_Wò½–ù[ÞÌ®¸:ºiàìMpµÀX„0‚ð­�ó®^Ctl RæäTÉvµ–ÚÔUÄîžÄ2  _õF¥šü8E…Èø/VÛ\aPÍÆcuWÊøq~A‘�a�9ÙÇôÎ,ÕcäóSásA¼DL T?ô¿ðö@’�y™¥Û?]�^RQòhYþeèŠ\i¦#±3šRwgý.*-–àæâEÖLj-uÉNmä¼à¼Šú|�ºÛmLSLï`D/¥9¥õÂ,Ÿù�‡]²Fü�j1g¤€¢¯Žª–u�BVDN ?YCM®égÝÕí½[ºuÕ2e yå²—H¼éŽe8çZw±*i‡B·ò¡UÄà�ô…¨ìbŽHp‹œ雀³i˜«‹–e°ï¸"m®ß8bU°•‰pgåVÞ±¼³ÐO6²~�‚[8SÝßÔ‹=_†�5Œ—?ÞR}¯&·PŠQ¹Ò†µv¥·ƒ³¸~æ–Æó‡�ÉǪ¿ë¢eº®ÛÊÊâ‡(5½œ=÷¦ .~è‰l_yZŠùº÷y±d½Ó™®´ür-ÆEU!1�0ç…¤Õ¼Ò=¼LNÖÔù‡¸¤ë“'£J{‹šeKŒ«g7SF× v8¢¿Žù'ô�ã¢þÓH×R®Ä|~sÒTÎ2àHŒ¯°5ðj,úQ`É…L†Ú½^¶èà©—w ëçI¹‰‹ËÚ–Ö+Þ�¢!�“ª»¼v¾Õ>N¾*já”æå:Š~¿ë¼im�Æ|¾²›q˺g½„ä¥=m}1ýÆÆ·2—êꢱçÆu$gëêp"²�¹EäHSLî˽¯u»igí†f¨0�“xˆ%÷i ÿS»s˃½ /è­ Å èP%Ý<§ögÍVaÞéÑþz5ôÔ¢¿�Á a?bÅ}W Ë_O�â;.8ž:éÄ¢¿#Œ³ÊpÉäÆHqŸ�ËãQÿ ÜçTœ~«•¿}„�ï‚e5@v˜ÇùÑc•t­ßׯœ_w±ì*6 ÏUJEb\)%OÍ÷Hx�t<9W_#·ßéÕ�âp¬çâ2zÈ4ÛÔn�Àð–×ä Þö\°WTí6Îq¨ŠúÖ©­ÌæŸ'Gf lYEDrÝ—|Œ5�qMŽ`‚ïÆ‡HS.ûõjSìV^DWšŽ N3æDŠ0£¶túZ¸µÒpÑ]ÁQïPL’(®PŨ¡+6$1]”™Öá6±öK.ö¾”Vúdî“£wV/‰îë~²«š Ã®-PÃù9gb±/g·ìXñó¤1Ep¯Ñ;Ù€ŽrÅÓNË·è¦ùTQ'd¤¢l°Û‹¦gsô·oXá©?Ûœ)Ö—›²Ã–Úì �pªâŸ{m#UL—ô´ º×ÓÏçŒò•�c7kÿ9§ŠÖ»"%Äÿ qhÉl'¤ µ˜Æ ÎúdÅ+�:|}m_@Ñ¥ñ*4\XOø-3‚SBTOXyŠÆëƒ´ÕØócõ;¯qª^�9à­"Í5@õ|G4¹y�f“6[Ð+Ópa(s,$™­rS.YÀ´tü_ö½´¯�y%g ¹Q¶0“a73 ,6Dùí¥ø¢¥Ÿ‚Ϭz×¾öµ°¨fÇ¢ù+˜'[–ˆ ·[YŸFZTùùr9÷os×n{ƒä"쳤ª«ÓyÛˆ Aû;u Jß´k�èô/}%Qóìù¶>2Z�#>áwgÅõ˜½�?[Œ�ýÉÎ}GDˆéšþš�>Gá“™v½òôM Ð#ýǘà �T‹wT·ê¸TŒEö\^媤�Õ°u�UN/Dl= :mŸÑR¨ðî‚F™ö i’V¶3€”gA„ö@>ñ%–'1º´IÙûèìaN/Y#qоfÚ÷NZÍy˜Œã›¥¯ûô;fô€#êËX(ü5øàèóû,�7Åão�f.«"bø8Ãú‚="FglÖ~KQÎÞms5Qº…k™Î¼ñŽ�7=· ìÊíþo¤Pï#²î ¯‚%¤•ü#Õv߯qeœ&†@ÿ•ÖõÜSƒÔ�—°½€ÒCØGDµXàÇl6œÆæÑ»�  kœƒƒ 5œëP9‡²¼ùÈäã`uÚ0Ä÷ZsÆÌØ2äúæùÜÞy¯JVˆÜb÷äÝx»Zü~‹h´æÍˆ¤7S&°G@3‹4¢‰þ.cú ë½å\©•™ì×]âG‹-=øŽú JÿB&¨O$ІCRÕÔ»ÃZ�Þ–Võþ2ßPJšÕQçk{ðö&uÓ¼@)ვ‡Ð‚(�ï8H>DÙä�Ã¥Òø=A#½uÕxüÕ2å»'¶ ÉNë@y ©;òÕ­ÄáÔó¸É?½_öÆ0Á¼¿Ñ«êr¡­Ö§(})ΰ§ |5óÕ«jQLó(˜p6llŒ šÖUF�Œ¨cã”n&QF\�ûKdÈwõ•¾«ïZ’ÝqÛ=õ#Á¸ùŸäi[rÌ1rIâ®!Á«… e�Ê‚÷ÌÅ4ÇlÿZäd«GBñã]?Ž x7ïö…auýŽëJA,ߪý ?o =ök «žâ懪Ç�ÔWR+hOQm�~\QkÓ‚1蟥“»øuÇH´Òóâ¨ã�É¢¼$g� Óý¯éž¤öR(ôIý¢uƒŽØÊ…ŽŠæàîú,ÿ0wV–‚Ó“(¬ðÙ·A̽%WH…}5¾9Ö}ô\¢\/\Z/sh>-3SPpK3¬ò½kÈNI9\ÔíD5ué³"ªÈWÉ%äˆÏ%$¦|þou´©”"g€WT¹ @gÐqnx>ÓöÍØÅ˜Áÿ5­t)&„r©Ä¸. à ŽðΔŠQǤü;‰oÜ5'ÑC ˆÀ´¦ÍŸïÌçÿΖþ<6üyNcú%qâ°,úÔ-XPúEÞ–»£sY C΃èR�ÛDÊÊãÏAñÐW#¢¨�AºV %„`¿Ifº‡²¬ -Ó~x§>eþ™;n ]!ÞÇkÖ¢?90Õ‹Õɹ ucÞD™¾4ñß»túàÅ^bÉ'òZIŠš2n w\k è N(šÛ|í%ôõü®Ã€:ôÀ£XR×ÃÝ;Œæ9 {,ön¾S—Œ‡U€Š*ó[ �M~®ëbë°8�u娖¤þ7Õ$/Ûפ¾Ùxá7 !�•þ#Âx |~èÞ`ïÜÜ ehÎÏÄíôã nл ¿&-noÏá% ²ÑJ´¬\†lóŠ´žZ�:0›¸{Ú€p2n!uâG[sªÑ¿yåíìj&]O”Íï‘ÛkLA`*ØŽ¬W«NI²OQ˜‚œéÈö˜óeD¶F¬ásù¥ê‹UOÐØ&g>sǺQ/aX$8sWNa^´åeeZ@²OB8=ÎÖ n7ú°ù8ÂQ`ùL8Ç"˜³ôÙ?ÂFaŒHh ñ¶C| MÛmÎŽOͯ;ÐgX£>CÝ,bK8Nç¶OáNoÞµæµD 1]oK‰7„ÌÏ~Xjö5ppQwšX¦aÀ6€åÖ¸paµŽÓ$ÿ÷l¤ð¯tü7^{¢JyNß_þ+’&w¤ÀQ�¹œYÉ_Áøx–ŠIÂ~W< –1üͰ¦`!íð€×-Š€¢_cl)¿G³Ë ›5ŸŒ@Qý:üšznÛ²ÈÆFª ñ:ê�~�hÅ5 L#“®Õçº/ÎöÏ/¾NÆ syDRxfú={»Ò5™vžõ'Dd×gÙý% Î�ŸïÙS'„ðhÎÄkaµ.ÖÈ""Y[V¹FÝÛ׺<;.)�:;jgFºÁß@²i;šW†`…1 ¥Ò’b·¥º =dÛùä×À¤�¡P2<%LÍ®"> ¬›’í‹Í¿1¿e5ÂNõls >À®§óˆyd’ïÄû†V$I\H7CZ÷ `” äÑ./³ë‹tÌa€j:œ£¦oU¸Š@$p \ŽÎK†ƒÊ&B\_Ñ:MùùÐ ÷ÔGcn!¶«xaÕ ò¸úåbÒÀñ=H_åˆÆ™Öô²:kÊ ×zÃéûF�é§óu¢¸й 833¿§åï˜_Z1–Åa‡|,Œ Ûé¾jńЕjîü24?öûYÀK™rR-¨qè�®ÍºàÄI¡�:WO^R^æÌ½èÿ8@wmYê�Iè¶ŸT ù´ç€à=†ÂxŠ?Oí)TÁ‹a—@|tj�r°£ ÑÉÛ;•ÓqÙºtš‰.ÃVÊ^b£b&âöÈV§Yô³|eQ �Õ(ËŽ6•zAn..Ú'Õ=2ûŸI�ã¸"B}ðŽ[_W)à 6Òi�™<ï¿Ú�`¶Hn�̯ú±¢ä-ÿùg‰§‡í¤P`‘ÇKòÖ°å.l$ÁµՅ‘Ÿ›` m|Éõ@KK«„k9ÊEX¶7¦øãö<]„¼Â™ò|…ú)É*<¼�j ³ÖoòÁ­zDz#¬ÿ3—ÎúÞÜñ5H­F±ð<ä¿¡†z13:üå„�p ¢:{¥ÑëGôÙ‡Luräð+–Êá5±kÊN¾nA œ¸´v,Qœb{5±%¦CäJ~3ö�c^— —(AŒLz _â“À€}vDµ%á¬æWe±ìÀ35¼„OHä­¥§Kk¥`nsØÄÇÌß^ k´F}âW�˜j&é7µé˜ÙSEc?ûå^=Åㇿµ^ �‚º¾ÄÀç‚v°J‡÷ÿ[oŸ”['â.ÑÎùmP=<·j·´ób3¢ºNÍèëÛ刺.'¯ŠVL¸ÒvVœ$— ÁµÚe掎oÅŠ#LS™­úS¯YHs(´aQ¤]™‰ P\@áj«~ãÇ­�£V{ åkø%ˆ¡Î—ƒè'«�•À9 ŽÇºvèïsfÉ’"@èÓÖEØ?õ¨ÀíD(9z–aZäL*þj`µéùáòÈÎ\*ÞÒ‡nΰ˜ÝÄ>ÁÕ‰ ”ôxì@ŸÝwd_Œ.°Jö·“ºjÿÍ�±, å.òZD:n9þ²BØ%sȱ˜úý\ß4Àº²œ,5›‚REO™ƒÐ¼6$nµ Î[H¼Û– ß®HŠK¶ <Þ{1…lbœ‰žìføË`œ.Ô%ßÃ~™¥Ü`#ù™"×P€ßM„7;QÇè×gÑß®´Ü$ÝYŠ]]WµËj üù9`<äû›‹«‚œ ˜N£}M3qј& sXmMÚ®•´ûÙ¶;¨Më%a³ê… iølD•ïD ñòn>õ;ÙÜÍö즹�3·4:ç´[Ø  m§Q·‡Þº´ 2Èàì>Wœk*­™ÀµãŽç¬—˜;‘×Ì?Dµ|#.M;€’~¥îízDK7éè\ çG‚ÉU“Š1£Šô*h°A\|7уù[ ¬7Þ]*K ØÚ3Nr>Ž a,ŸeíOÓGxÓ˜gÖqÙ¯hç9MEÑèZü­¯/¦§¤ ñcЉuÁòL—ÅPÙªÞ(ˆ3@TÜÛ âù¯9%Õèî·©R˜A ”Œ­8ÚsY)'Ežå€ìù™¤Ft¢ž'þm”Gù?ùùiwy@…H*IþˆÑE·© �/1ì$O„OãßPÍ›mÓ)|g�NH¬÷3@:¥as±ƒ8?™ÙsR ü+«®�ÎŨ¡%‰?ì æÞCWjÿ“€ŽBÊù"U 5ûŠgÆF‚Ó¥n­`"-Œ²›~¥¤Rï«ÑC,\µ¡ã×dä_:À÷é½<ÙP¶+‰ÿ1Ÿ‹è gµžU.µ}‹ãLé„ÜçÎT{Ô´ùº OŒ.{CÔð’D‘kàdˆÑÕÖ]^Ý»kæÞNhæQäË6JÈ¡MsšÝÎ%’L{éVãÌÜû}žpÐ&w¦¾«åÒ Fß�acsæ¨o^ÂH³³v´] �lÉ3„ƒùRzÈ/¹×zÇG3Áíã-uy5Œ#¼rdMõüª»OàWA€Þô1 NMPà¢ß�IÝÀC¦Ãå éÉo¾šÒêj.‘äoÌúë úÌåYÕ*©-¯ù‰�÷µõšN [8<Äd®�7I䵿ù4´1KÖ¯T?xuº$k’\çJ° (ËV`qøxQ W1H ðÆð%¿ Ëò)èÀÇÙ3‚ „ç�_¼wH%âÒÜ@ué c‘Û«æ�ô|îkÛÉí*;ƒ^9Ž©Cºdg[µ² ;3m?dîàW�%<>„ÙY¨æ¶u=N¿¶è-_2Ît‚@OæC…µJi“Œ•ã¶E‹©è(Ö åP‰¤g˜¢¼S¿&"-¢ ÒÓ÷>UrC²dbü©SK‚¤n2»F…—£µu­¿¼R‡~=“)\­-åÝkýyÓ˜ƒò&!‹ÛcM·ƒt—Óݼ´m8’!n¾Û!Øü7ƒ©›N®ÛN K›_‚@I”‚™±Xü¨t]NÒGt®L #ûcq.ãÒƒ`Juƒ?ñ·§ž(Ûütk HC´Rñ‚óäwôÊT“Ý Ök|^”y1»†;¬èº~”R{ÚHñXFr#uDTIDe81sň…ÜéexneZðš§�'Õ݃§6êg%å+ȳ†Hú(@„8³ù't–÷3@Z–6 U‚)ëÀYÝ,ÜÄ2ñý‘™HKœaÆì¢è“%×È î© ÎGÙIcRZ÷ïp¦F±?y%ŒZ•¼ñô)÷ÑŠcLAÕ2bÜ%‰Þ®F±ö‡^hÏk[²šq犀¶ïÜÝuÁw1tαá§bÎP†¯9‰K‰ Ь>xŒcêUèÿs¼éKk‡Ðð4dõõ©Þ:Û—Ny ðÇþª2KýíwÎ/þ/pÐP„„�¦bÛƒ,4§É“¡¨ÝéË…�k5�cs¿;#pY‘Ãë/�ˆñÐ>ÔWš\„ÖjâÞn&úÈWŒË�³Ša{÷2œj@¬S¹¼ÕÂÀóÙG×&Hì4’úðÌ`]Œt7º%©³öÉ>ß°šD`û>þêUGF\/“®ˆ™® i€p›U¿‚_uw¸HÇúÛžyÌÕü± áY9–{$°Í]t‡›=ÃAJ9•M’�?o^»{‰Ú{NŽF^$óv¿#g(–üŠìŠÎ^QóPW½B¡!6–Oà†LC:V¶ÿ À+¼¬‡M„I_•žÖ¦Ðo`€�/ZG�O»Ô©�’-fj¯Òñ7o5 ô}¯5`&hNGG]]p˜¦¾« ™Tmdli˜µéA$ ’“³7¯H1ßr±5F¼žç”ùŽfvÄ·qØa–NÏɧN XevÍ­>YXçÐÓ¶Ôáøøi€VjÄ-¨ÐKrŒ€REöŸqw*ÈÜjÒ±èjðŒ}ùÃeè ´Ghk•O³âûD®Æ\R~X\J>œËdñæ¹ORH^#€ÐÑHX-žþ'I|'3#›¼!Õß*~29O‡ôXU %©}ùÀ|Á­Ö®>•“6˜Iâ]AÁiýì`Æn;OT,EÚÁfU[µŒ¥ëÚܲ5ùªL�w)‹m“yÝ+ùlô½’H^y½£AZ™aeä§¢½_Ϭ°ïƒqalp9ŸbËÝÒîqŽ'5šÇ [Dׯ™Ý°µ1�X‡Êg'!âáÆI:UF~²¢±Ò[I UÃà»çºlë„Jœ¼vï÷åg ¸]h›(«à´UgåÔTÛBú˜º] áÿHÓñW(‚šƒJ°àxH�À„››|¿Bü sÎT œË^�]ŒJä…}#Y`ãDÛyÄ>]C*—žÆr¦ ¥ï~5) è‰ÁùÞÙŒ)ùÀ‚Pç'Ï*ô#a !œï8F4®CçP»"±ÕlïôƒR@RoÝcQŒ�2‰; �­\Ð3LÉ? :œ>ÝÐo¾ ŒìèèÈ×�Ù$ͶÃU9Œš@€’hzí’ØÁ{lÅá-M ëëœíÐ,d{±þTò¡ç+hŽÒ„ âçµÝ¡$š†§„{»pSFcêpü™Ú VhÖÁí$s²bÈäó¿qu€ŒæEz3~Nl UØ~¾Qè Éðœt)÷üò+½aìsx0&¢Ê3Ö>ÁéîÇÒ¹‘1Æç¬X¹ü;¶¼úbæmO¸Ëú-êKNxk,[¨!¹Žy-MÝÉÒýE@‚ÒJTÅ]2NFÜQ1w °´‡YˆÂËóÜ©V²n«ÄœkäCKƒ–?;ìP= îóúGÚçkß 7�9á ìì63Ý©iÓð´Ç³. ‚‰kKVËÓT“’PÓ%yëïOÇKèPR—&Yìo`vg�Ôãò™s)ü�ù˜˜Ì?¬}Åä>Àk¬Ä=×'ÕÿÝØê"Æ„J'ìC[VJ<”¹Dúü0?ÅX}Yø]s_NocYyбî $ZtX÷ÕQäÞƒ-"Ýɽ9V RÓVŒ$¼nX î¯ëúÄ@`´Cö£K™Ñ²›È#nq²½Ž _á—)„IjVÌ:‡@ëß~Â)Š¡¶ä•[­ñ]­Ù“˜èñ/O5àcáçðÓS;öf”‡°­¸L*Õ2.4{Ó¾&æç~H^¥_¯ XÏTlçyT %0*,»ÅZÉeû€wƒî¸l«Ò¾0‘ãEÛu4C·ß *낦x¸¯­°¥Éy#@yâWlúÑ›×–' ÝfâÁy‚ð˜(›ù;X­T²ž—ÞëèBñ�«·J¥¾' ëAÁ1`Ñ)™ñAå»pž!3EbåUÏÕ5PÀ±k‡FïÐ^Q¦µôþŒC·v3Zr혊Gµæƒ¤¡¯œ¤ùæ©ìFFGF–!uJ×q‚ZQ„ÜÐÄdüÑKßn5I’°«"¼‰ñŸò,Á‚Enyq ˜%ÙN¤:$Á cJ?ú“÷o°8ºÖ?·8⡎zí˜ÆZD�*Ÿªv-eî{LÓ,|£ÉeCFí´R—”|äwõfpzkc™‹Xæ7Er6@‚ÛM­Þ b;ìÁkÉÙ…µÊËÙ Š àÚÁ‹ h°Ôup°Õ`&¡}ý#ë!} ÑäBýú‘jÀ–�ô�ãp$j©%qð\ÛJñPʳ¥â~ÊÕºÿñÉí”þ�N»´I\ø,˜®Í:õ:¸*'oÁ6]Kfà2zms³&\�œ!˜1n÷߀ø²™±”üS- æÿÒU4ýî½ÈM ç 7ï6 ú7±¿�‡¯˜Ö”J±(5BüÛª¨Z†ßÅãqºINô\×>УãV­ÇÕé|ˆ)!<—Pþ#©–bÏç‡,×ë�Ñ‚dÈÆAÂg`¿¬Êó s�Þ�¿“!Õ\k1‰«Nt>�(ãeø—ýÖ-�ÖQ äÍ^ëÖO %5�eêÓ´KTÈTþÖOf&éîn¥�ßÀQ¸l£Ìš² ?RÆ‚…¸"üeS|üavZó—c•–Ì*ûù_7^‘V.pº½¹è8Ó×e¶ü¼¤xUå"ïwò¶�¿¥D¬È ÈKScøªi¯eFîûf{Ð(oaÉë0£UN†„Ī9�,eÁêôp B88%u±[‚¿l>÷‹Ú9Ÿš¢ãwgDëF–A¨dÀžèU×b�ηáH>]ÉŒä3¤ )Ö[©ÉÊÒÇøÅÿ —2?MÂ&ËÆÆÈ�«Y<ÈÙVÅ•! 7Á W’†òxÖÔýu—Öäà18Ññ¸º³Ÿúø_ ßÔà Ž@[+:¶HtÔ™v©¾¯xs'%®íå¹Z›¤à©CjÇŠñÖ¨ÌbfÎ4IÕý\ÁÂÖS©ŽÆF2ç$%öþ*u[]Ïø²¬ò»U×+sý‡8Úà‡çm¯ç�¯Ÿloö™}e³QÇéˆs£# ÁIñc,–PìNÃQ°!?þáuÈ{»hÖaÿ T<( »™ë"s‰ÉÄŒ9ÑÔÖø+ò±–¢ÞLh@„ã(‚åçŒvç9T.IÖYHm“J³ù2Âfy4QÜbN�§£ÕáéÞjnš÷ÜÕ è.ÑŒþºY ÍÏ-�B‘ÔóܘùXèA¶¨zú¤ÆÓ´œ�<ÂÁ±âPíU:¯}ÊGâ×É�U-áéópªûhš Wª©E c©k]yªTwñz LÝþÕÓ…1{�ª[ˆ.]ç·%qcÏjýoª+¿Ñûɑûfƾ¼çäÀÈèôº¢I¿]ÚÝUgA;UÅA4´=FçuÓ2�£BA΃Z?Ó±(ôã4Õkkaøï´ZìÌ´£“•¬ªç/oà?ÎóW§ j+•1E¯¾Aà„U¤O^˜Xu·e]HÆrccÓJU^ p¤4}= xÚíbº±“~Y³òþFÿïŠ&Ò| ï§ÖyÁ˜TC¶†}û€ªsäÊž&!ö‡Õj}êQjF]Ï”TÕúvS„ÉFôÖ�Í<3>~Ì:àÕ-ž!W �} ç¼9h&ëÂìFÔ¡¿û:ä +—k;¬UÊ{¿mìÉ G}Ž=l±ú6Ló„U—W† €Âœ縖=Í"¥P©?LÆ WnÅ6qöÇÓO½¿HT %ŒÒ±t~Àdø…Úôbíò˜]\›H’*›w  J°¤”“ƒ¶¾òU$Úb¸4ô¬¥?; fÖh„ÛR@G²`[¡ÚË¢�4¤£˜¥è`˜] \]Ôç Ü� }›Cþ`|àKXòcŠà”[¸g¿ELß‹§U ’_Ïð2* Û±%¶ÇþØiâ.몃¹!�ðž<ó€R”�E Ù‡:—3&Áì"׎·jYåØe‹·™8�º—T™7˜ÙæˆXwqÏ].Fàü,]øѹ¼Ê�§ZòCëÁHù‰Ybðtë�ºQþ '7aFg…U-¬kDþ»·YŸ �º™uð¸žH,?N~¿Ï¥#ÿ •¯ì½jqãFýi¢ãYòþxüRóß�㮞Ïp±|Ñú!{SC§ö~"ØÜç¦Y?ɦ=Bø’€Hx<`ˆÙô É�êÞ¡-¨áÓžohîî�v±r`W£È�=ƒÁ§u³Î©¬U‹T‘ö×´ñµ–/ÏÁZ�"`à~ ÛHò}ÈÛ±M\3 KÄ9‹Öào²Œñð_dV+,H » åJàÞÀÖ{¦òø|Ä‹c™ÊD[â±·i¥ þ$ßã2% ‡ö¡™l~6„»kä%Žv¨J+*zGÍ�-^t ëç¿A,ñX9:Àà¥w†äWîøw´PDZÃ!¥ºÁ޽"ö‰ªa¤z†•ݧccÖÿŽkçù`ShÍ a´_YÀÓcC~|;»&êÄjÐt#\"²Ú4ÿí¼ƒs<>Ùj%8zã9óæôÂïßC¼¯®„%rëÇÕó)�oeÔ¢A&6ôáÏŸ»_ümë]Œ¯¡Eù[5\æ&ך6þ#¤ÃæšÁ‚„éiÏÜ—»òe°éõ˜Ö>)uɹCs-i‘‰ëyà-�ÒZ¹+xÑtªU,�P�ÜSìŠnN«ØV<Á8 ÷¡û Œ™IwôÓ!�DÂᯅÃûÄÉù-XY!CØŽ,A¢OnýÅ”“Hˆ2X YÑyoÝÒ@åc"Ý5o˜R„ûZ“z"U5Ç/5ô .ðËÜ*‘üÔð¶–T«ýÃ=šïÅ{]š‡à÷ëíi]“Ø!e\’Óº8t“쥰);t…§”¶òé@YƒeÔw,X^(Ze�úá”5x¦Ð$®gBê¶ðgrÈ ˆ÷6æKðÓs^Ñ‘ ÉçµC5:Á­Op7Q‚'–wH Dæ‡| œÊSƃúOsnÎÛߪ,$@¨¨°'S;‚²‚£¯FÍò˜ÙùDÕÀʆÀ�ÆA²‹'ÑBMõ"f;Ý�lðIº�´SÚ‰™ì|´òäÓ7²Ó_ÏÕý¸)J#¦ä'·×f8L†O6Ú¾U-Aa~Šx‘Hz7³]]ÝäôriÒ¤dB>(¸í=¨›,MؤÔù/’Üñ�*«%CµÏo_ªZ«C{·:€…Ю”\îT|¬ço ;ØÂc}”¨©á‘qòO^° “ í4T‚øŸJ�zgj2‰6CõsMcƒ«A™‚4ØOcêêTÕÍOÌÁ|F"€T4CÉm`5¶"³¢ps¾ÖX2göªwz g@ ŒJ#•K«…˜�ðÛ!3Mû-‘Ûv»c¨ È'öÅb¯¨¬/…':õ¼¡Î A¨cg"8Ã?vŽ4ËŒ¸ }Í[Çc)K¢gEªä±ë¢ílq6…bu;ÂÈý±zL84²Ø!];OSêúžtÙ9Ñ¢Ù"þZï3À„ =êRwãùÕƒ#Î/J-Îÿ§®ÝZ]âØäTc<Ž €£å[’l Þ8k“ÙÕm›uEôa|Ç`@ô¬òÒM–93¶V½ôÜb* ®[2¢¼™}'›ç0KÀxÊvÕ•Å~0N¸öÉŒ£L¥ "˜I×¶[ÿÂ0}'ˆizãÞ»œÕL¼ØË÷åÓˆ—W À¦RØDÏ~bÅàI˜´ŒÅØ.äš)fÅÚAY‘àåbrÔtŒg«Ô»c@ÙmÒ!´ìtY dtâáÉ,RNM“žØNÛMú7”\5æ[œyÜïŠÕRmo,HJ©‰`{ÇqˆžñaðYBM}MnñZT T„•Š„�¾y_èQ·,Ñ|%à=�HlX­h n¬¼�%ª:‡èש„FBX#ØAlM@õ3΢-š{b„¯¤yEÐÞŽ©Ócøf}¼¬ÁrÞÛÕ<0±µ‰›â cˆ˜o-xŸ–�â‹v×§IuÆÊÂ�΄+è%OaÖ´ ¢ŸøK.w´ C³­ä�Iýp~½\äI|hbÀž|3G¹ÒŽ¡aÓ5ÉŽ§1ö1꾚@ˆPÚ»inOJu‹˜•¢}þ<õøÈЩH FûÏ&gÚH·B/s:µÓ”.ýuÐÛw×Íä¬åòWã)ù¥-Ûjc(zH™÷“¢š�QÆßé|+¬X’ßìlÇ—ÒAoÐto[ñäã�u.¹=~d;ÿ´ %ˈ0†¥ŒSâ×uÌËÐ1>E—²>ÕÖÁÇÔ}ÂÎzš$´ÂZüD+t×Ðq‹Û_Y€Fa„sUÖEC1¦'ä^±Ú‘ú©.âÐXwÚg� 4!À e#ȶ xàœYæeäZuv¡Ñø^^‘Íû&7öT\“«žü8·ØËãÓg»-Ô¿WaTˆ"¥j•e š >ZÖ1•Qª0Qc#)åiYä]x|öSY‡…z†+7u]Saj­3´ÔT×ásä_‰>¬ÿÝ(»¿š†*bذ[neÊZIr‹C ¦"üDŸDòœ !š½k M=Ê7ßT ¹$ú–Ûðx¥ýªVn>Ïn� ÃñP=Ó¦î[Öˆ*úÚRu³¬*H!¹:ãÐÝž®ak„[Tàîî ’e³A`Å^"Xd”öKc|mV/øWOœÌ¢#ÂЈžDXX;Nü¦†÷:p0mh­ðnìÀŸ?Ú �1ÿ8V+A°‚»?ZÝXªY+”k3>Ûé¬9ð¿éQÊ‚5ÆQ]ÂÂLd”É£àƒ�ZÞ¥Ór;ôs,Fl!JFiMæ$±?Ó³× ’µÚ�ÓÁ|³Ëë}í×qKøe}e[_ãxο½}ÚœWv›ûo»D37Î,Ïùª~É„Ú{_õ—™ÐJÓݲÙQÁÝibs“ÉÒ1‘É;ò±MHê5b­á™¤§Œÿ;[þ2û�‰ìJêkÂ�|èuÁåM«X€Ýìò¢ÿ(ä ó${>+Tïúñê­mH†ÿÜ…çLu!šOƒ"@¨Èlºm¨»êþñ*¥6S;éšàË“7-†-šIM1Ùx›çÝ‘p…×I"ÿÏãEH«,ªô;‘;³©>GˆìÆŸÈÞŸeþ9o8~™lS�t›QÍL9PÏ@4ÔóÇr�©Ñc'ÿöWE6<—ñĨ¡ ú0T…ÇÍ*Óí¥ÅBÚ—lñ¡] åLpeA†Wñ¼Ñ¯*。 9õ©T"žHÝlá’.�²ÕT"Û“Ö:9UU^ða`¶š9¡_QLyë9”` Ftçþ¦É¼vÚ¼Ü2䙇(Æܦõ†5­j¡+UÉ…KpH$ì…íi·+øgC´aKýP�¶ÀY ÙEs/'~.öCŠGøÿŒF¬ÄR'ôŽDôÒò„4жÇâÓ“^G…!ÚHrÿWº*#_+É€ð_HpÒ‘Aâä’p“쀮N…¹Vw„-rïúÙ^Ú7€­š×ÑEJûs 'N×6§ Ïò ¨ãÏØ9‹�T4ÇH6_«œß¥û53¼ãE¶tÒÖÛÈÁTÛ,âÆºsÿš§ Vf­=ÄdsVë{Óxr΀<¬�tØ ¤ƒØ£+ÁP§þ‡Œ×cèLmR9†@9'÷ù¥òÉÐï&ìFÌ€»¾Ne^.ê™*Ÿ¤F"®ÉÏ! å¬sHJ-�¬€µŠ·dJúŠÿ·=©ðÙ—ù¿4Õ³)‘�-õóOgA-ª�+¥‘Ÿ›FÑ?'ø�rÊåÅûâØ¸]+ÛHÛp—JeXa >gÇèCu,:5-(‘ýc˜:†‘Öt¼!°Ï‚ì.Ëï™4£ä¡7[ã�…1Aâg–!+Ñ6�y†ó,R$•�|~”Òß­vEcÐMµ·§ÌÆÞa#™l"Ý3>³ÈPnp•(÷;ícz»šÿ Î_†oLÒ3%4òn¾øc'©²há�µ’SŒje—ÓÛ?~$TQè‚Z‰ÔKz±ˆR±gÀ¡ôøP1\Æ`Öd¨¶ÃôÿGïM|ÄÒô÷JUT¨—‰9d�ë’Õ)EØhzC`1¢3ìyÇPY…© ×w·ÃL¤Ó”AWLíFNçLRnÎl˜BÓ­‡‹#žPê<ã0Št¬üò¶íÁt-wE.�� ;$àf˜F¿ëvfõV»Ý’÷g¦Æ *+Ž�2àgœ†ù�IÈÌ-©OM�7©BŠä:ǰ ÛPÏ •ÔŽ=×—Fdï½Ìƒ¶<ï(ÆÛ/ nV˜é†Ø›¨æòðO!Ú@ZóãaË�âÀcÆäÖa1Wt4£iæ$B7’{§à�°éØÒüq¾ßÿ$¤·ºÛþ=,h Ï¥N..hŒó·oÁFÎi½@Rü€¦gVü&cø…,”ýWˆÄRyz4jÔih¾þé2(Ú/vª\2É£U¥DÓ8Y¢¨?Õ.¾F'…‚‘Šeq:îL� zÆ>³÷| 3³•6ʼnÒÄ´l؇C?T¸_Ž#›Îs^üsÓÔL–åõâBüŒ¦ WrU£ùÙ †ÇèêLT‹¥mº0ˆšgâ  rqò„…•ÿàpËB2t¾`Å(m•A�;üù[Ãþš*j\Ç8âHgÚ‚uŒÙ‰\˜TØç¢²ÑçÁ›n#]v´/�+»i´ÿ¥ÚKJ &u‰¸‚»‰k�©Á.“׎K§Í|(Œ?bשÔÃïíŒé2Ò‘ qXÚ®§òÌúo¸@pͧ­ÝsÜ¢ä�Ôì2‹Ö„üヽ>)8Éà\ñ1ôÌG»K>l]2—�A#C’‚«‡6ê:°¶ñÅìv•ì§×ä\‚S=/†�euó37ñ\@ØjBv$ˆæ ¥grrµ×%uÏ*AF¨SQ–5ÄÅ;‡ú$—Ù™¿B€wADª¬Zq‘· Ì塨pýø$$âÚ4¡îÞÀçRô‹O&EÀÌ=VUSg6lVd'e§‹,•�óö Nª,:]H-rHBv²Þl£_r±ü_¾Š\5Se¤Š§æ¦ ÂÎÛÖÐ_h÷kÚÖÑ6\ûþ&^3bNÂεØvä&‚ï$·€r“�Øò¥¦âÀ—îoNoûƒôb™qĨå¾Ô,zä×à°KÎirP G:Þd£88Šö?Aoa2ñÄÃitlª1MܵÒ*\…æoã|QÀ)`åˆJÕb™ÕxØ´ÕQ°_%{ó;u9:XÓ„¤ù¸GÙe�äà0}¬‰ýæÊCÒ(%ïyÅí±èàÂH£È68'ËXµ@|zcYKþ v�#P…ᓃ,Ïõ­¤Ç{^u¨,F׸Kí#ƺ™Ù5JÇA'wš_BNuÌW,Ù#Y�çy�ÖG9é�ÚêM¬`'Wqý%}=¿8˜wÂ(i_)÷Ñèÿ"Û¿a�ìFkó†œú²³õLðdçÀRŠ[<ß_d‡iÂYol�¬¼ußg‘�‡ƒ~D÷ºÁÇK€TX„ž;SÑ,~ˆBî˜zòë?y ~ꃃ´·÷åË&tef“‘Þ5ÔÄóͬ# W(êÕœL¤û0‰¸~æ³f5k×zŽ}ýÜf·Þ1•4DˆoC x¢œÚK¹ÕµËkÇ�ÚiP$åVŒØÆqwƒe|˜3I´ìfªÁá”>1XHvÀüÛœ~Ä~Pà.ž “õ  |¡mºç¦ÐWøÞ†1hÖÏT©Sðü�#l€cþ�kxNZ˜œc&TaIº‡Bt˜2ºÍ­ ÄÊÍÙ?xµ‘tÀ±höÅ–)SWMˆ®€ßÓw&Ï]åNKSJ‹ZîcwZ8Õ+1Œ‰Õô½|ª&kÌÞ階×É. °àÚž#t9‡ö¯›óû´2»¼}4€Ô[?~ûïqçÍ÷…¿6ÙÁë;nÉüµV?(¼ÁYBp ê‘�23{>›Úpd™X%²ñèÛù®>W8ô¾Yݩߩ¸âcbº^€Ãý½Nñ!<÷z/�°•Š^ä'ÝAr‘½Ä÷5G¾I²v[§odÞ¯¿�™Žmioêä¼ê{ÃGfZÛô;Û›7úN†¡5mÅý¿ `ß;¦ õ‡½wÒ«¢W. F®7ï}@�ÝN˜B$£!™‘™ ¹~pöK^ð"RâPJ"¾ÝA—´¡G.5Ë·?šÌË7bbºñô_ !‘r�^“ySÃŤ ò ³Ó©ˆi¤È/O£Â¢ìb!EVϼ« ®M�­šLg'¥‘õ–P�¸ )ñúI3š{?íÊ~¿š¶•¬|û<óóÊW*Ç\Õ%t¤ƒ|Š`ávŸÌc2c‡ë«s³ÔPŸ�ÍlZ,†3bDFFÅadT¦]Û~˜Ÿ:¥à`Ëœ±8Ð%3úþ&YвÒJ'KrÞÐöÞš7�ìÊú™î£¸å@‘‹¬¶«>ÇOPO-•lÚ©”µýeXðn« â<†+ô89OH ÷gX£sÑ›4+�ó:R=LÝÇ\Èžâþ޾a·XZâp‹1ã ¢NxrÉUæÿñˆX? ÿiŸGì4ºÚºp­4½%€®_l�ÜÏjIÜZˆcô‰ï5ܧ»”óê\�÷Dþ5èæU/cÑrÄë‡Ù÷¦­2Vû컂 Õ¶@Ck˜u×å¿k+¬;ìTÖi$qóFEIr¢s$¹…H.MÈl™OÐ7À›ÀHï|$Ͱ[RµxX€×ìý(£ª3ÅŠ¤±uöŽ`\b>Ã?zNÄ ý#cìì3^ZØfŽ‹Ð´Úé¼â„ó´I2¿ªE�^«OÍŸypi–9 _ר‡rÁì3ÕÞñgÆñX»0á羨ÖAÔíò½Øu¥<Ž­ëdzv$Á¤¶@:n Iá—¿>þË6Ž0Úà©…_ßÚx¢5¤\W2þçñxóH\k]QÍÚ¦àÏ PÆF‚Óeâ‰y«�Qî»°ì^�Ìyžqœ&ûðÆ$³ÝÇ¿îÓ]�Ž]æZRYƒY®˜Dí™Ã‹¦ã€àãðeÜTc²Ã˜ÂÉÊåÐ]s}#1” ÷ä-$>xyÊ%E BÜá%ã0æÉî¬�S+ÃsH)Ôþ”é’ÈV³ZöHë2y³æaèzÄI,Åha×z¨`8¾~Ë|ø�Ø~ƒ×óÓ=*刣£ïiO¤£“ŠÁ$6Øò§BØŠC»I-vüHRz‚în ïÃôj ;­� `믗MQ} |4´…?ŸˆuöÓœ=õ°ög¢<�ž9~¾¥Á¶~q’(“R(²™ån:¾Ð”¶ûH/Ñʲ.Mß!ô PK‹ðQg©ò Žíù:h;>¨ åÍÀU,ðº›}s5%�±(¥|çø^"/3¨oa¾�%¨'£nÈQÉ«ã�*�´|0ž¹bôŒ‚Â`ž¸¢½”™'¼þfySÐ�IlŒðmóJ€;‰AŽÐ¢Ì“Ì—¤¨‘Æ ÆÀ»­)¥¶k ùØ1Öƒ6¤åº-¹…®™ÂªºÔ^ƒfñÇ6‰¹ßÒÖ2õU“PšäÕ2Ó®7½¾["¿ãV„�¼Ý‚耢îqua\VÊPaá9Ň`úøúÔWÍ·[n"�Kú"0$ÔTmà•à[Aàð˜ÚUÃ!ìû\ÞRV*-.*ͺŒË¡æàsœâOw°B°ŸÓYe|ÃSW�Ð�¯óηÆ*üË ZoÅÁ޳#«XBZ­Uw£ZMN¿–7d~B“ê­«úå>'Fô—^c¯´^KS¹Çé¤iß™¦÷ŠU˜ 4é®å9î¸æ=“÷¾u!Êð‡NQá¹&.Á•±hm$´›¾„Ù âù�ü1•í›3:T08 ö›5‡Ùï»tR,ƒ­•É1Õ§6§/…†Œ&äÇ¥ÒÄê£ÈŠ0/Aä=7\Ç,×KdwP‚UE鉫“>àŠ—Ë6±Ü}ÛjØ×böœš5\¾�XW+þCnÒcþ§ù� °Ä”›Eœ–½¼†3äÃýš�í¦æÛ‹r�ep/ˆhá]ô_€°*4»»Ét�—¤¬¿éáyFlÀ.jqEæ•EAÌ5®ÿO§±ç¿óU]4²ïž�zƒ¥DbÑ"ƒ€Ñ}ÇTaG&… <ÈO•&#ò——¤+Ms*¤ÅàkÿäO=àg⎊1 ÒV¼íQ[¨�•cï3ÀfÁh{Ò•l1$þšVÌ©ÿx_½;æý2¥�QÅj5;½N\tÀ´ÒV½’7¶‹¾Ã¶;JÒöÒFoËO:™dDŠÔÓuJãQ„f×ÉŠÔácטY!Ÿfªôa¸½ï{¥×ìùÖÛm-Uyêž P8¢™Œ8GÈ/$ЧO„b±ŸIÿ¯‹kžâ_ೈ«t ËÏ�Ø „3· túÛXÒ0ZDo‡UÅ»ßÎ�›Ÿx’•=;Jâº#å¼=E$7¶ñ§�gšþO¼Ü»Ð3ªi|¸[½Ë·ÓãÅ*Úˆï�ƶÉLÜ)+¬ò뎑ÒÀ]–Ó}ǩޑ8_Š”ÂM#óNuN}™L†t‹Lè%›dònð; %QrÑ $M[Jíš ß®ä €9ŒTfê3P%¡[7ɺhÝ£qº<zgœW—®©EóѶqÙ²FÑu7 GqcuѤû5uî•—ÃC1ÆÇÝ¥œÞ3áºòaÏý€³MLñ&þ¹8bIÿÈå£WŠÅþÄ­eL¦‹:-1ý­$hêB€Ý£³ ç:ge¿TֳŠ‚ÿn"�s<›ßŸ*Š<®M#å¥Ñ³~¿˜"¥Ð§dDXùÚ0”9kâlüæk‹_•|z1 pCÐcÝ9dÇí‹�� 7Ä££Š�‘Ê„ ÇÈu\,¥ŸÝ›R"äÖ.N�€Â&T.UäŸæb²qKšqô‡³LÝt…kk >?~ìÌ¢†Se-~.Òd[oÅ�°÷-Œ&lÝ­€Y³2‘Gí4²£�éú¬¢âÝìÀw¹"�7!œ[sëWŽh»™NŽJ�^ì/èBB‚¸èÚ„Ø S8-7¬ZuÊ÷’ɘÖj­á£*ècz¹ãu$+ЄÐùƒ,)5–V&1ga7ÁyG…VP¾ŠžX¸±ID¤¬sø=ôèV©¬G}¹à™à‹ŸZøÛfï6½ŽZvèOéä·fÿk�æ‚õƒ{L8V{ý™lÏÏÚîŒg¤p¤m jŸöö¯å &~½XnŽMÔ£’íéá�›Û “"³q½¸+Xng jyOjcæá��Ѭ“Ò³GPän ±ŒéœìëÈë îwB°ÖU<%F†Y⸒ުbl$òÙÏ0|……ýöSá]öš^{7=ÿâ˜Îj`<�:æß�ù8^Éñõ¶ã£û)<†Îвx¡[m�©Œ´£�Y€l�°iÖ�Ze—7Fî�j?ñìÖi§Ð´ß´‘$™梾xù¤¦¡~GåÔâ"Áp ”Òåºò(ZþÇ"b‡ƒ%±uŬz#¥^1¶SGD�¾ )­˜ú@J)ÕRaóë ˜E�u…b”AªòÁ™¢˜ m¾•@°Ù6–2Y[©8Ï’ŸÂmÓì�yò‚Ñ&ó™<°†•XC±÷LÙ�·G°¢ÉŒkÝÅu2Wå7˜žØÒU™+ìYܤô‘æ?�|Ï�|«ÒCļgÜ¡:¹\�i¡!"ÐÖo—ý-²ÙÀŠîÓ¿ì?Ÿ# £ú@�è÷ºkŽ®†«¿M(�±½c‚ûžÆ”ƒÕú¶ˆôÍÞ¿âv* 4† äQà¥â±¸ÆÚ°<‹i‹@eO'UÔ?AéZˆÈ{ ‹ ª"¹oÎ2gÑ+‘’ÒÆ–­²}óD«8pj”¼&i:—g#LEiR�õÜ7žÀ®�µ4Ç)Sþ‘Ì$çŽ#À�Éû}é¶ZMEm¶  ~žØr:aE§¥írmüqΡE–#HA¨›Ó%ºöè´6×" `´<·ãçžÑ^o~H/ÊÂ÷…ðMö49ý‡TìLÊŠ�ùiŒV]Ó÷ýk¾ó:�WnúuÆÔâ™…m*ñûœµÀö©©‹þÉü{–�“ù&«¦PƒiInvˆêCñYsV2J¬V5æþ ®ºê8›ÆXl ftâ$‡�"iÙç{8�X¶"q$æ¡Ô¤ËO´Lñ&¦ƒd”¸IŒ^sÇŸ!$–ÇšG(»þ€ÑgOƒ\:¨âîÂêñhŸÍSgÉÚÕ*~üA =t3#§Í;:÷·þügÁ¢X÷Ì=¿8uGVÜ©V^ giЉ¸¼k‡ÚýÓ Öñ¨ªÚoÏ�=ñâ^8rxËZI?�AÙVàv§òR. :•wß ãßèpdååë)»–Ÿt9#Þ ðßm^i�¸M üÀ†ª°f›_ i¹iqÆ€ù“­Ú¡D\?²Ë�¢L…ŸBùv¶€‚cÑݰJ3s&m½+rØ1Z�÷Ñ¢Ä׈]þ‰µµÙâ¿tqɨ B&p_§(Ÿ¬ªbÃ"ZÎÙv"ˆ…÷Ri̸„'¬›Ç'?e¬é·ñ"JM ^¤WRÕqŒ eámÚÇägãmɧ0�éAwad ;ºÄ™ƒBÒ^|´ŒrÜhflµÆ#²®×Ç T}="oÛÊ 2Ÿ*)¤µòÚ´÷Ç‘ù”¯$Ëéo•8H§ÛÆ�§ö™ø*„ûÁ‡: v`äv%Þßæ8DR”Ëh,Ñ’ÅfñéùZ÷Ù"I, Àp}ð¨ÄøMlÿ*XáRÊ$œ�Wâ[û%ľ؀ö3õcíu£?¼õj5L.€ê ™¦Â·¯¯®Ëé¾ô¶LzüdŽj\4>×Îþ˜r‰Çš&7epáŸÑ�¾1¶õ!7b~úžÌ‚Ftn›c!ó5ÊAãøW)ÃþJgh6>Å%iªQC¸*»0¯&å€ÀªùÀJ·_¯ÌG6Ö˜R†ÀzŠ�?kÿÿŽ–‹*ÉQ�I•˾žg`­vEéæÕ<Ò-æ€AcpñvíÀÝ[U,þ¿ÒHÞªoJ¨¥  ?‚9¶ÐVnÙìZÕø9&³C¶YÎúë!oÓ˜Ù9ЕÔÌrÂó¢ï6xLÿ!È]6ñ˜g’–Biv§Äš©‚#Ë‹Wuà<`eлfyÚ¶b©}S"²iE;/éEûçóÝJZPÓBƒò(ì$”ƒÝ�N— ¨0¨Ý³¼Ë¼´îçUèÿîSxzÇ÷g'+Y#÷{%‹ÈëܙŀÄ"m )xAÈXÛë•‹@ÿÊÁ%u»;�¬ˆÆ¨‹äB³ÄFl_à ~2årwrÌõn�4HZ·¦Â ©ü‘ÜA ù*Üý)>�–­²^*†HK… áz¬ºWXrïŽì´H·Åþ(‘³;й^)mï@0ôÕÔ(ÆÓàÊZžú| kû<Å¿ªt72�e@ªÔ7˜§8ç ‘¼m…ŽÌê2& ®S¬v;Nz�^bZz €ÌgJXvD´,¶òÜSùC: Zf©¦b;í´i…ñ2Öëhß`(½pmehÎãOM!¨\n°2Õ£nˆvIÊ&Bh»ÖyX™nÀ¸ùÇzÉ$1m¹S��ŸÕdhò£qu_ųÛxÎ÷í8·412èõ-Åñu´p QðŽƒØ±ghm¥‚Á.pEÄbF7ãUlª…÷1ôïèÓ<ñ«¼èoz“ªÃ�)RêC=ì×Ý÷‚¶\GÉÌ*W¼?˜g3¿Á)-V‹îHhÇš×d¹­ùê•ÇàÄvGâžhŒYJƒ¢¦™¦4ð/Bï%¬ŠóW‰eœ*JbN$ï¨ÅÅó*k&ó°V±³Š¨‚ã�›RÔñÇØº«‚¹­˜² ã0‚k•ð—3¾)\K$FYõÛ|á@«_³è/§J»XßaMÎR�Âúp�ÙÁ² BÎÏ«m§õ †’ ¨�/ ‹,X*øLbHñG¥î埮eeû(ço˜Þ{nÄID¥�HÒ—@Æ©²ŽY(#(šÇ-§¼Ô¼ßôGx_ÏæS¦Á™Ò.ï|ê ŽA˜˜CÂfA½b ÛóÈžÅ;R&µøD;¾D]Æ cóÎVlw ”`ü-F?Tþ–Œàhvó¯=7¿ü«Š.ÌìfO )¤ñáLBÎŠÈ z õºÑC¾7lø ÝB/µŒ¯EA�± .È7»ÈˆÙ%›v+†Ð ´Rÿ Ž(Öys.~Ó×s.lð3ftüo/üŠˆ[úƒ_@ÎÇý<™e�‡il‘³ w¢¼ÿ|ÀöjÔˆ¶êÓ,¸YU]-(›Âm“q·3n&ýs„ð(Úÿ·.¨•¯xõû“¢µø�¸w}5‚& ÛÈ¡þp(ýØì‡o@L“„r=Hßò{Ó¨„¼7|Zª—n•Ód¹¡ÈG gïN¾&°h­…a(ÝÔ ô�’aEQ÷ž@xŽY�˽ßFoQb}�@4D&¬³Øöæ¹_\’k®)ô­ þ±éíÍSžzRjK“°3%IT%ì¥1LïΔY…­rƒ\–k;Ox¶Ÿ_l¼!þ޳‘8G‰òrËUÙ“áÆ@FHU7ÜJÉ`Pö÷‡ñ£Ž>Ìÿ�îA]'R+~Å>Oó-ô¶‘rœiV†ÍÚñ‘SnrSMKI¬¾º”F]%\2¯… �© 1ѨZÎV¶À>Y“t¨ŒC®ñ\Í…ìëõlKæmu+ÞWnS—͹ÄÊ’ÓË‘šûøÓM§äˆ$ârFÝÈ·}��q‚Ä­•†UÉῸïVMp~TEæÝë ºŒéã. iäÏp»r~d‘˜¶‰˜ÏÄí\ Nåä_±çsx SÔºOç™.(ñÒ*¨L#ÁpßJ” rBWë‰PÀû à>¥ aø{¨îS'lKtŒg>¦ e0‹`ÌKôþ<㵊þæõü ~î’g¡[SLií�JêòÌ ´ ïê ‚ÖSz³6³š"üOìž/÷âsÄH²8�Oü° ™ÌÏ.™rŸÄÜù}ñ#× _ïw%¡–sMYœ&·� Ù„S÷ï”9¯Í%æ"gEÇqàÅyÛU¤{Be΋WñŒx �(ØÀ††}°M¼JäSœÍ0go*Ur%—ìý\»§ʇo³áýt´Y›ÏÎïñ!f#`™Õõ Ü„¬KtÙìJá±]5§îrèãs‰ƒqC“õµ?“…{§.¢_6Èe<Õûœ.£ @�Ö56=hn<£Ss]+Î}U¶=#Õ„ó/}žô$sõõu¼·cõÊ"Љêó’³õ²s*{dF<½ [ËÅd úˆ‚F6†ƒpeô³moÒi¿‘PVQîWJH–)Ȉ‘ÝZ¤À`*Aº²oÜtu×[üÂ)Ò\mÎis`|‡âž(-ßE Èù=�¾BSve©*™ô ›Š °÷IÑ~,aû<Óò3' ú,YŸò¹Š<&™Ë¶(p^b …l©M³ÁIM’Fß]_ºW’û••+±)Û¢Åö¬}©HLùé'öì�¬Õ•EÞ)¼*3Ûâ”a¥é,Я>²˜R‰ÜhÑÓ.IÓˆ["Çäƒ(ü<£T úÁâî µê¹‡°P†>\çÐ× ¢o$ÛL"×�{ÏÄ­´QS"6: �ÝqŽ Ñ´”ô)Û±h1ìÖòþŒ. Î� ¤§×<Œ@=Œ LÎð )Þ(&*Ž0¢ÃpíˆÌ‰DpÚ¾$0§qçÁ11æ�-ÃÙÞÕumbS±;Xæ=%iNÁ뺳­µb˜0õA°Ï¾¶6ÒôƒôÒßÒlÿÎô=± upâlY�w½,'ÓÅ\ÅED¥[–ôCÝ ãFSió ‹ÄK§y-î&ùÅ;f!Lèj ¥ßè:‹”¤«B˜êèÔ[ˆ°È*É.G}j°YÖ6Äé� ‘ü4Ä Œ»-ß‚³RûËKžOHù NÒ-½hìBŸt±k¹¤ÄÐ|—Ÿ¨®0Ðø&¦æ-c• sØ•ªŒSïî)22Tè§ë~FNH‹Ü‘‘`蟎Á i2¨ÆëÅÃÔ¼F/t9ûï¥.|¥Þû�â�AÉiÈ"P`o¬W½'–­ŸÐê#Ná_°pò; ¹BÝ‚…}p*9�cZ›mTpÀ¹Gz))S©r1�P}Óðe‡½ïCtC¯}È¡‹!±K]þw©Ä]µ2l±0É,žqIø2¦ðÿÁ9öðïxªª}õ6R(4röC¤÷wˆxL暈mÐê$‘Í=�cQtÏ*kŒ´=n´v�pù£U-�+ýñ.÷ãöñ ^b¾‰ŽÚ“c%-”ýú•¢ú¡æM)×!\„ ¥HÃÍ¥’LÌY ½-œ¶DáøÆmØTìî I}¥•t×*¸Ø(çûkývÉjj¼Ø93š§~³Ý+ ïŒ×ñöÞótt†Æ’<¬¡+"û10Onéë¢ÜôVb⳦ìXæç´VroÔ¶ËͪŒu¶‚¶Ûù©‘§ƒ<‘¿wÊÓÄŠbZ�ŒŒ§ ’6Tbǧlš¿¿.ÌÑëƒ~1·–‚3[´fóÐÜ·-F˘�kyÇ�×}3†«åyù¸Q—¶ ­·M§OmaÏ1hD[B@,3ýË/ï!L >/ÅtÜ'B¦$#HØ~æÚ ’|KŠ‚Ñpvÿk›$@RnÓ,]G^³ÈÒœRÎa]€QÈñSIó�-e—âþÄíéÒl2E�} H©=mYd¾¡äö¶jØ"U¾ŒÎ +7ϸ2v.Pd)™‰b®3’‚­x´‘NÕ5}®ÐŸi‚ì2ƒçËðÙSÁ.�fwM{ Jr�WÆò™…ºo{ù0we‰ºRõd,‚ýðøÿ.:°8×j‰ÇCDàèÂtãÞw²ïSbê­¿�FJq–ÊSUh3Ü%²KL+Ù�µT2½€½f« •s \v Âø> Z_º€Ù° mîcT¼Ï%E_:`db(e…h°jsmß° yî�T¼Õ%K_@`jb.e‹h¶jymo×Ÿ×³×Ø ØØØØ!Ø%Ø'Ø+ØiØkØF×G×H ×W×_×g×m×q×u×�׃×�ו×�סףש׫׭ׯױ׵׷׹׻׽׿×Á×Ã×Å×Ç×Í×Ë×Ï×Ñ×Ó×Õ×××Ù×Û×Ý×ß×á×ã×å×ç×é×ë×í×ï×ñ×ó×õ×÷×ù×ý×ÿ×ØØØ Ø ØØØØØ-Ø/Ø1Ø3Ø5Ø7Ø9Ø;Ø=Ø?ØAØCØEØMØGØIØKØOØQØSØUØWØYØ[Ø]Ø_ØaØcØeØgØmØoØqØsØuØwØyØ{Ø}ØØ!ó ^1 e)3 Á à ×"  ƒ à ” rÔ ßêíRôË ö& J× 0¸1í�µ> ¸(.! ļæË #¦È!Êu‡öŽ‘ ÿÿuÑà!ë*0.õbª½ÆÎó ¿*– ,GYdnâso≠(ô >ô bô gô tô sõ dö V÷ ©1 Á1 Ó1 ç1 û1 2 (2 =2 ˆ6 «6 ®6 ´6 »6 Á6 È6 à6 ó6 7 7 67 M7 e7 y7 �7 ¦7 ½7 Ó7 ê7 8 8 .8 E8 I8 M8 U8 X8 ^8 d8 k8 r8 x8 �8 ‡8 Š8 ‘8 —8  8 £8 ©8 °8 ¹8 ¼8 Â8 É8 Ò8 Õ8 Ü8 â8 ë8 î8 õ8 û8 9 9 9 29 Œ9 : H> t(I %kT o"i ÐIn ˆ} 9S… >– @L£ "T³ †[À ÐÌ ‰Í zÎ CÏ ÞÏ vÐ LÑ fÒ yÓ ßÔ =Õ ìÖ y Ø ¢Û Ü bÜ ™Ü Ý OÞ Õß Iã žã N ä + æ 'è Yè �è »è éè æë 0î `î R ð .ò Ýò ›ó �ô cõ Øõ V÷ Ùø û l û þ ¿ †   ¼ µ ú' Q' a. —% P3& 3. Ý:1 Ü65 Å@ z®A c �g 0h  h Sj ¡j k  k úk ql 0m Ým An ›n p ^p Öp <q •q r ‡r êr is Ìs /t Ét !u ¥u v `v Õv Jw ­w -x Ãx (y ‹y z z Ìz ‰{ œ| } n} ×} @~ ©~  ‰ € k€ Ê€ 4� ©� ‚ d‚ ‚ <ƒ ¨ƒ „ Ì„ =… á… † e† ㆠ<‡ ˜‡ ˆ ¸ˆ ‰ ‘‰ ?Š —Š c‹ Œ yŒ +� Å� (Ž ‘Ž � ’� ô� K� £� û� ]‘ µ‘ ’ „’ ²’ x“ ” ¹” • �• ß• <– é– 8— ˆ— à— Y˜ Á˜ "™ ÷™ eš ך l› Ï› 'œ …œ � q� ¸� Õ� ò� +ž Hž ¨ž Ÿ »Ÿ îŸ 5  í  T¡ É¡ 5¢ 㢠;£ µ£ E¤ ì¤ Z¥ ×¥ H¦ ­¦ § �§ Û§ @¨ —¨ ·¨ (© Ú© ’ª Ϊ %« ¨« Í« p¬ 㬠­ ¨­ ÷­ @® ]® y® �® Ñ® p¯ ° q° ± 7± ÷± 0² R² ö² ]³ –³ ³³ ´ ?3´ ª¼ ¯¼ ñ¼ U½ š½ Ö½ ¾ J¾ …¾ ̾ ¿ _¿ À BÀ ùÀ ÒÄ ìÄ Å Å Å Å Å Å 'Å +Å /Å 3Å 9Å PÅ aÅ tÅ ‰Å žÅ ™È ÚÈ xË 6Ï wÏ gÑ ÒÓ ÛÔ LØ ó"Ø þß M%à å ê êê /ï ð ¸ð Rò 8 ó Öô bõ õ êõ 9ö gö èö å÷ ôø öù þ9ú ² ‹ Ë 0 N † » Ö Ù à ç þ  , C Z q u z } ƒ ‰ � — � £ ¬ ² µ » Â Ë Î Ô Ú à ç ð ó ù      " % , 2 8 ? U j — î I ý K { ×  ? À  \ ª  x ¯ t  ø /# &$ %% ü%( t,+ S. ü(. ‰(2 >/5 Z8 þ8 <; Ö…; :&M S LS T XT U (V �V öV ]W ÄW +X ’X Y ~Y çY DZ ¬Z [ z[ Ö[ 2\ ª\ ] ‡] 3^ ²^ X_ »_ `` ¹` ‡a ça Ÿb c ðc Fe âe Ef ¤f ýf gg Mh °h àh ti j ¹j ^k »k l vl Öl zm Ém n rn o êo Yp Êp fq Äq (r �r Ür \s Ðs õs t †t £t u `u #v —v ¼v Úv Aw ^w x `x #y iy Øy 9z ›z { x{ å{ F| ¨| Y} º} í} ¬~  2 N k � ® Ì ê +€ £€ ì€ «� Ü� ‚ ~‚ ð‚ რ÷ƒ „ #„ '„ +„ 2„ 4„ :„ >„ B„ H„ ]„ r„ ‡„ �„ … Š… º… ò… Q† ·† ‡ °‡ ˆ ‰ˆ ‰ z‰ Ó‰ BŠ •Š ûŠ •‹ ;Œ •Œ èŒ 2� ë� cŽ ~Ž ÞŽ � p� Ç� -� †� ß� W‘ ®‘ ’ ’ ù’ V“ ä“ ” º” Ï• å• è• î• ð• ö• ü• þ• – – – – – – – !^– Õ'± ´¸ ä9» VÄ vË EÏ ”Ï xÑ È6Ñ BwÝ ö ƒý % Ž t.#í#/£F4£@$GE ;U~]X5c° n„rž†í†=ž‡ä™3š„Oš›§ìt§ì²=D³L½Ô¾P¿Ì¿=À¼ÀœÁ|ÂíÂ[ÃÉÃ7Ä¥ÄÅ€ÅäÅSÆÌÆ.Ç‘ÇôÇnÈ"ÉÊãÊÞËÙÌèÍΛÎ÷ÏÐVМÐÅÐäОÑpÓPÔÖÖ ÖÖÖÖÖÖ%Ö,Ö3Ö6Ö?ÖBÖIÖQÖTÖZÖ_ÖfÖhÖlÖsÖuÖyÖÖ…Ö‹Ö¯ÖçÖp×Ð×0Ø‘ØñØÙ^Ù¨ÙÚàÚfÛíÛpÜÝÜCݱÝÞ€ÞàÞéÞ*à-à3à9à?àBàGàKàPàUàXà[à_àcàiàkàqàsàwà~àÆàêà„áßáüá-âçâãhã¯ãäxäçäMåÄå/æÒæŽçìçXè¶èéè"é‚éØé-ê‚ê×ê,ëƒë6ìÅìUí²íîî#î®îïaïÓï—ð³ðMñ¯ñgò÷ò[ótóÕó5ô•ô™ôŸô¥ô«ôéô=õ’õÿõ—ö¦÷©÷«÷±÷³÷·÷½÷À÷Æ÷Í÷Ï÷Ó÷×÷Û÷ß÷æ÷îøSúÔûÓüØýLÿšÿèÿ8QÉç6†ˆ‹Äý ¦ © ¯ ² ¸ º ¿ à Ç Í – ä 1 ß � N¥±»€‹ùeÆ'ˆéJ®~Ö,µº¼ÁÅÉÏñŸA”è<I$«1 3333"3(3+3.35383=3A3E3L3Q3S3W3^3`3d3h3l3r3‹3â384¢45À6¬=å@JAÑD,FC GÓI6Mâ P£R Y“ª[H{ ~õƒyƒàƒ^"ˆi‘h ’ɔܕ¬—Ø`šk›h�Á�ûŸþŸ        " % + 2 5 ; A H L P W ^ g j p v  ‚ ˆ � ˜ ž   ¤ ¬ ® ² ¸ ý zf¡/³‘,º»1Á$Ëç;Ïí'ÖoÜ Ý¸ÝƒÞßà¨à:á‘áöá[âyâ²âËâŸãÌäôäuå¶ê®"íý%ò· ÷ ù]üÔüuýÄýþ‰þŽþ•þšþÿÄÿ:¦²�\õ~Ú[ÛFóŸŽ € å V ¯  z Ó 9 ’  k Ó ,ˆYÀsËäx¾zÜYÌ5¢�ñ_Á-D¨  #TÝ>“×]¡å(r£Ge#(+-37;ACGMo¨áR ¾ !!!ï! "À"é"<#^#·#$¸$%v%Þ%ý%¶&ï&'¸'×'Ž(U)W)])c)g)n)s)u)y))…)š)¯)Ñ)*g*Ö*P+Ä+æ+(,|,ê,ÿ,-�-.d0g0m0s0v0|0‚0ˆ0Ž0”0›0±0Ã0Ø0î01 1111 1&1.11171@1C1I1O1X1[1a1g1m1s1z1�1ß1u4Â6ö8#;k>B¦EƒI N''Q™WýW½]$b¿ eÊ*kFs-;{y€u3†‘,�t)“Ô#›[¢:¥D¥c¥¦J¦‘¦ô¦\§é§M¨±¨©Œ©ŒªܪZ«y«1¬N ¬3±�±² ²ز=³¢³¿³›µëµP¶µ¶Ì·ì·f¹¶¹ºxºO»£½­½ü½K¾h¾®¿ À7Á”ÁYÂxÂ0Ã;ÃtÑÃïÃÅÅÅÅ Å&Å(Å.Å2Å8Å>ÅEÅKÅaÅwŪÅáÅ5Æ…ÇôÇwÈÐÈ8É¿ÉKÊÖÊGË·ËÑË7Ì3Í ÍùÍΘÎ/ÏŠÏîÏЩÐÑwÑÓÑ0ÒzÒÑÒ5ÓšÓ¹ÓqÔ�ÔHÕ­ÕÌÕ…ÖÑÖÕÖÝÖæÖêÖòÖúÖ× ×××1×H×_×w×Ý.ç2ç9ç;çAçEçKçu ç êkì6íqî”ï›ðöð†ñ}ò›òNó�óKôûô©õökö÷¦÷vøIùbúÂüOþ17ÿì÷  Hf ¿x±Îs¬É)bß5”Ç4oÞR«à1–û]Ê'Á[³dp"y˜QЦ?\cå$é$ð$õ$û$%% % %%%%%$%&%*%0%v'%$,:%0Á4·!7B<�3?å&I&@NØVAW›3[i&d(jn‰n÷&næ(r€võvR+w~d+~œ‚ë‚;„b7Œn0’Žš]œ|œ4�|�š�À�ó�±ž’Ÿ¬ŸÈŸûŸ»  ¡'¡Ì¡/¢z¢¢¢É¢ s£y·È·9+º'Âw*Â; ÉßÌ/1ÍLÓ]Ø­ØXÛO$Þ9*ä³èÙëWðÐóõõKõqõ×õ›öëöD÷N÷ª÷øgø¿ø$ùGù�ùàù'únúÓúû¯ûÎû†üŒüÐü ý[ýxýþ‚þáþ,ÿTÿ|ÿµÿÙÿ|)0NÐéÔíñ÷ý*f¶*å4d®ÌåÇ!|·:"S"U"Y"]"a"g"®"k$ýR%…d/É9ã; )>%)D;IµSUTVZ/ZNZ¡Z\Á]Ê^ç^L_¤_h`¸`ta}bšbÿb-eKeje½eVfgh8h�hõh¸ijÄjÍkêkOl™n·nÕnônYoòo&qCq§q÷qdr(s\tytÜtãué*u²Ì*€N�Ö �½„9…S…¼…B†ÿ†¬‡®‡´‡»‡½‡Á‡LJ͇Mˆiˆ…ˆ¢ˆ>‰œ‰ä‰TŠ´ŠZ‹Ø‹•ŒúŒW�;�?�C�I�h�í�r’u“I•¯• –â–ÿ—Š˜™³™©š™›áœÑ�»ž»Ÿˆ R¡ì¡ £ù£»¤“¥L¦ §º§…¨&©õ© «¬°8°ð°±2±бë±m ²NµL·Ü»i¼i¾õ¾Š¿î¿[Á€ÂŸÃÅÄæÅÇ$ÈL Ég ËÿÌ%ÎJ ÏÅ Ð=ÒbÓ† Ô Ö€×ž×××ñ×JØêØÙ2ÙêÙÚTÚ¾ÚÛU@Ýìéêjê!ëÉî„ð�ðÂðñ_ñÕñ!ö�öL÷pù‹ùúÚûqü‹üûüŒýüý�þaÿ£§¯±µ¼¾ÂÈÌÐÖÜàäê#RŠÂÙ\{™¸×Pä\À[æ–æ¬j% á �  Ñ ‘ ¶ Ô ñ Š v-˜/˜9j·ºÀÂÆÌâ„Í# qÄ"(>ËjæC § $!x!Ë!""%"+"-"1"7"M"Ú"##y#ö#s$Ç$%0%½%&\&Ù&V'ª'ý'( (é(?)¼)9*�*à*-+0+6+8+<+B+X+å+.,„,-~-Ò-%.r.u.{.}.�.‡.�.)/r/È/E0Â01i1m1t1|11…1Œ1¦1¼1Ñ1ç1ê1ð1÷1û12 2 222 2'2.2\12$;r;Á;<“%?EhEó&H¼MbNOËSëTJUÒUZV·VWµWXœX$YƒYáYøY‰ZÙZ{[#\ˆcŽc§c©c­c±cµc»cÔc´dme‹e>f}fçfRgŽgógÁ hk©kjl!mémÍnpkqŠrNs˜s³s#tetÕt2uMu½uv�vŸvávw wbw†w¡wãwx"xdxˆx£xäxùxšyÀyÞy’z¶zÑz%{ûA¼®¼ ½J½/¾2¾8¾:¾>¾D¾F¾L¾P¾V¾}¾c¿{ÁßÁ} ÃáÅ�Æ?ÇÎÇðÇ]ȾÈ�ÉðÉCÊaÊËË;Ë{˱ËÌ\ÌtÏvÏ|ςτϋÏ�ϓϗϛϢÏÚÑýÔ¡×ÒÚ2Û¢Ûž Ýà! ä°æ¥ëí>ïó²ö]ý+¶JØo÷’ ´;¾Gµ†M k £ Ë Í Ó Ù î    # % ) - 1 7 M � ® b ‡ ¸ ý Bˆ×&t¹ÿP Æä—œ÷P«%uï¯ xÈ¥×GÙ Ò9Ž!ÖF£öƒ7 ücÄ-‰ð¥ Z!"v"Ú"?#â#:$’$é$F%“%ý%h&Ó&='e'�'º'ï'U(»( )U)»)!*…*, ,,,,!,(,,,4,6,=,?,C,I,O,W,Y,],c,g,m,r-x-|-‚-ˆ-Œ-Ž-’-˜-Ÿ-¡-¥-¬-®-´-»-Ø-7.U./>/w/Ë/0s0É01t1Ô1o23Z3è34@4‚4Ø4-5K5þ5)6l6Á67l708�89®9Ì9:­:;F;œ;6<Ð<1=�=>­>@?Z?¦?@^@½@A}AÞA?B¬B CxC9DúD[E¼EïE®F GßGúGEH¦HIfIÆI'J‰J[KLsLÔL`MúM[NµNOmOÍOØO¦PQhQÂQRÏRXS¶ST›TöTQU¬UVbV½VWsWÎW)X„XßX9YvYxY|Y„YT[$]ò^ ___¥_Á_`f`¬`ò`8ajaªaêa*b™bßb%ckc±cîc.dnd®dîdfe¬eòe8f~fÄf gLgŒgÌg hLh±h÷h=iƒiµiõi5jvjåj+kqk·kýk:lzlºlúl:m�mÓmnZnånénoyoÕo>pŸpqwqÔq0r˜rôrgsÂsstutyttƒt‰t�t“tõtÏOuÜ ƒß\ˆÁ.š £€¦Ÿ©ª©¦¬2¯ä±ó ³Lµ4¸�º.½ì¾¨ ÀÎÁ+Ä}ǰÇpÈ{ÈßÈ0ÉSÉÕÉ{ÊcˆÌSÍrÍ+ÎRÎoÎÔÎóÎXÏ}ϘÏûÏÐ_Ð~ÐÄÐäÐUÑuÑæÑÒŸÒÎÓ_Õ®ÖÝÖOÚ§ÝåÞÂßšàyáþáã´ãû ã ç»çu èÑ êMì÷ ìð«ðoò¾óçóôÔô-õJõªõ öRö±öËö`ù”û«ûü=üCýæýœÿÂïMv•LÆÈÎÕÛýA«ÿT¨Ù}Ò'{Ü: �  r � D { – ó ÿ  S ª Ð " t µ LÒí#>Zu‘¬Èä;�°d„¼?7!T!…!¥!û!"Ñ7"À.Ý.ú./4/Q/n/‹/§/þ/Z0¿0161S1n1º12y2–2³2Ð2ì2 3(3D3“3ï3I4f4ƒ4ž4ê4E5”5O6‚6�6¹6Ó67'7�7–7¶7n8µ8Ò8|9­9l:³:Ñ:í:;Ü;?!?A?˜?¸?o@AmA†AáAûABB‰BÐBìBC$C?C_C¶CÖC�vD$ZDZbZ¶Z[h[$\£_È_$`ž`hJaoAoao¸oØoŽ)pÈwäwxx8xTxpx¿xyxy–y´yÑyíy:z—zúz{6{T{q{�{¯{Ì{|y|Ë|é|}"}@}^}|}™}Ì}+~\~Ž~®~d·Ó€{€ú€�8�£�d‚‘‚Âã‚:ƒ¯‡̇釈#ˆ=ˆ]ˆ´ˆÔˆŠ‰ª‰Š4ŠUŠÅŠ–Ž-�t� �a���Ø�ø�®‘â‘þ‘’7’S’s’É’é’ž“ò“”1”M”i”…” ”¼”Ù”õ”(•ä•–/–O–¥–Å–z—š—˜#˜D˜²˜Ó˜C™c™Ó™šš;š[š›?›Z›z›/œkœ†œ¡œ¼œלòœ �(�C�w�—�ï�ž$žÙžj¡ë¡Ë£o¤£¤ä¥0¥P¥¦%¦™¦®¦Ϧ=§̧駨"¨>¨[¨w¨”¨°¨̨騩!©=©Z©v©’©®©Ë©ç©ª ªiª†ª¢ªª«8«í« ¬�¬–¬·¬%�­�Ê«ÊÇÊäÊËË:ËVËtˑ˱ËÌ'ÌÜÌüÌ3Í«ÍÇÍäÍÎÎ:ÎVÎvÎÌÎìΡÏÁÏùÏÑѵ ÒKÕÌÛÜ ÜzÜ�ܯÜfFÝ æ>æ\æzæ˜æ·æÔæôæKçkç"èTèqè�èÁèáè;éPépé'êrê�ê®êËêüêºëíë ì(ìHìŸì¿ìví©íÈíåíî\î|î3ïfïƒïŸï¿ïð6ðìðÞóúóôpô�ôEõéõYösöÐöêöG÷a÷~÷™÷´÷Ñ÷ì÷ø$ø?ø\øwøÓøóøIùiùúNújú„ú¤úúúDûaûÌûéûü6üóü&ýDýaý�ýØýøý0þ{þšþÿ%ÿVÿGd�µÕ/Du�«Çç=]E`|˜¸.ã:k†¡½Ý3S9Sl…¥ûÐð' G » Ð ñ _ ’ ­ É å  [ { 0 P ‡¦ J,d,„,Û,(-F-d-‚- -¾-Ü-ú-.2.N.j.ˆ.¦.Ä.à./8/æ4•5ê 5‘8©8N9g 9¹;:<·<ª=”>¾@NA9B±EF_FuGI"KÐKL1LˆL¨LM2MSMÃMÉO&PFP�P½PsQ“QRR>R® R?UÑUñUHVhVW>W³WÈWéWYXcY³YZXZŒZ¬Z[[;[°[Ð[†\›\¼\,]Œ^«^õ^&_ã_`6`S`p`Œ`¨`Ä`ä`:aia…a¥aûa,bHbdb„bÛbc,cIcicÀcàc—dÊdède$e{e›eRf‡f¥fÓfïfgfg†g=hphžhºhÚh1iQij'jªj¿jàjPkÁkl9l—l±lm)m]m}m×mìm nÂnânWolo�oüo¤v¾vòvwjwwŸwx(xIx·xØxHyhyØy.zŠz£zÿz{L{l{Ä{Ù{ù{m|‚|£|}2}¢}Â}2~Ђù‚-ƒMƒ²ƒÈƒ‚…§…Ã…ô…³†Ô‡ò‡ˆ-ˆJˆ{ˆ:‰FŠdŠ‚ŠžŠÏŠŽ‹Ø‹ö‹ŒDŒ���©�É� Ž@Ž÷Ž'�D�x�˜�ò��'�Ý�ý�4‘T‘ɑޑÿ‘n’è’“F“f“͓ⓔ9”Y”Ü”ñ”•ƒ•˕𕠖=–ü–D—b—~—¯—lT˜;¨W¨t¨�¨°¨©ëª «f«—«õ«(¬姬éÎÏ#ÏzÏšÏPÐpШÐàÐÿÐÑ<ÑXÑxÑ.ÒNÒ†ÒOÔlÔŒÔãÔÕºÕÖ3ÖQÖoÖ�ÖªÖÈÖæÖ×"×@×^×{×›×ò×ØÊØRÚ¾ÚïÚMÛ€Û?ÜYÝ~ݜݻÝÞNÞ ß™à°àäàá\áqá·áÓáîá3âdâÃâëâãÚã äˆä°äääYåÅå)æCæ¦æ¿æç9ç˜çÀçóç¯èâè]é…é¹é.�ê_{—È%Vì  l . XrÐ’o‰ç©$Ù¥Sƒ¢ �!m"±#C$%š%'`(.):*l+—,š-Á.õ./m/‚/¢/W0w0ë01!1�1à 2K55Ÿ5÷5 6,6c6ƒ6÷6 7-7œ7a8~8ž8õ89Ì&9====”=´=j >#A<A\A³AÓA�B¨BCWCÒC$D_DE EmE'FTF¥FÅFG:GîGdH�H­HI"IÖIJJcJƒJØJøJ¬K'L@LYLyLÏLïL¤M%N>NWNpN�NæNOºOçO0PPP¥PÅPxQ¥QÜQüQQRqR%MSð^o_œ_Ê_ê_@```aæaBb[b·bÐb,cEc¡cºcd/d‹d¤dee9e�e°effBj\j�j°jkk=k±kÑkulŠl«lm:mªmÊm:9nç{|4|T|¬|Á|á|–}¶}í} ~�~¡~EZ{é €z€š€ �F‚a‚�‚ׂ÷‚¬ƒÌƒ@„U„v„å„…/…O…¥…Å…z†©ŠÃŠ÷Š‹q‹†‹¦‹Ý‹ý‹rŒ’Œ7�L�m�Ü�ý�nŽŽŽÿ Žã‘ý‘1’Q’«’À’à’“7“¬“Ì“q”†”§”•7•¨•È•;–€–­–Ú–—5—· —�˜ô˜u™ø™yšüš¯›^œ �¡�ë� žО!ŸBŸ¾Ÿ ƒ í ¡Š¡ì¡g¢ˆ¢Ò¢ú¢£e£�£®£ø£ ¤A¤‹¤³¤Ô¤¥7¥¨¥Ø¥ú¥¼¦Õ¦!§I§j§˧)¨y¨Þ¨ÿ¨a©Jªdª„ªÛªûª±«Ñ«F¬[¬|¬ë¬f­€­ ­÷­®Ñ®.¯P¯o¯į °x°5±z±§±Ô±²/²± ²•³î³o´ò´sµöµ©¶X·¸™¸ã¸¹ȹº:º¶ºÿº{»å»¼‚¼ä¼_½€½ʽò½¾]¾…¾¦¾ð¾¿9¿ƒ¿«¿Ì¿À/À ÀÐÀòÀ´ÁÍÁÂAÂbÂÃÂÃiÃÎÃïÃQÄ:ÅTÅtÅËÅëÅ¡ÆÁÆ6ÇKÇlÇÛÇVÈpÈ�ÈçÈÉÁÉÊ@Ê_ʬÊËXËmÌûÛÜ3ÜSÜ©ÜÉÜ~ݬÝ×Ý÷ÝMÞÈÞßtßÊß àvàÌàá áxá�á­ábâ‚âöâ ã,ãš ã ç:çTçnçˆç£ç½ç×çñç è&è@ètè”èìèé!é× é³ìí€íîÅîZòvò–òKó'öAöaö÷¢÷¿÷Û÷ø÷ø1øMøjø…ø ø½øØøóøù+ùFùcùùœù¸ùÕùñù ú*úFúbú‚ú8û’û ü#üCü™ü¹ü-ýMýñýþ'þ•þ¶þ&ÿFÿ¶ÿ-Gg½Ý’ #CšÊæ"xX…¡½Ùó$‚€Ò!UuÏäy™> S t ä G$e$�$µ$Õ$/%D%d%&:&¯&Ï&t'‰'ª' (-+K+h+œ+¼+,+,K,-!-–-¶-[.p.‘."/ì3 4'4G4ž4¾4t5”5 66?6°6B8`8|8œ8ó89Ê9K;ô;%<ƒ<¶<t^=”O½PšQ¶RÎRS"S|S‘S±SgT‡TüTU2U¢‡UdmÔmn(n‚n—n·nînoÄoäoYpnp�pþp$/r¾~í~ d„:€Z€Ï€ä€�u�‘‚ ƒtƒÍƒ{…(†Ú‡7ˆˆŒ²ŒÒŒ)�I�ÿ�ޔީŽÊŽ9�i�„�Ÿ�¿��5�ê�‘7‘S‘o‘�‘å‘x’’’Ã’ó pô H 1 F3 »à à ƒ Ö” å° lÔßâí…îRô³ ö$ HC$É0´1Ý�±4ª( . ÄàÜœæµ #˜´ !Äu‡èŽÚGÝ} ÿë sÍÔ!é*..·TËb(¼¤½¼Î›, Û%`'ˆ'µ*v,AYú^Q_F`pb4e‘h¼jmbn oÊ sgû  ¨ @ŽB¡a §¨Ñi õe 4uküyßÕŒåÙ$:ap Þ: ÷_OGmf‚S9 …Ü Jè Þè Sî �ó ¦ õ †  cA ‰h v j =r ­z ·{ +… † J‰ ’ §’ ” – kœ ¨� ž Ÿ ÞŸ ÷¡ ¤¨ Ž« ·¬ .® ·® ± ² w³ 5´ Ò¼ M¿ 0À ÎÈ kÏ ÓÔ ×Ø Ðê œð /õ F ö = ‹ l â â $ Â; 5S 9T CU ¡^ † _ Mg Óh ¨j ¤ l År ¶s Zt :u }v w :x = y Ô} ú~ € Ó€ Í� «… ‡ è ‡ � 9Ž ë Ž ñ“ ± ˜½õÍоÐÒИÖ4 Ù´àâãà è�î¤ðhó¸ô£ Ü3E4Å hâ¿âÙäj!üØ’ :0 ’TZü!Ú"I#ë%Ð&Å'¼)Ñ+Ž1Q¥( ¦g«>¬²¯³Ù·X¾fÂUÄ ÅÄËÎûϧÓ~ÔºÕXçŠò[óU­’�Cù¶"¸ †k =%ýƒjœl�Ú�ìžâŸÕ ”¢¼¢Ö¢Xõ1ùõú¼ûÆü&ýFÿnÿ–ÿ=yN»� "ôY€Zž^~_š`QbeœeïgÏhêi¡kzn;oúp>r0t8€³�…†&ˆ‰y‰/Š­‹ÐŒV�V•&°ý°—±�×ä× Ù ÙvéAê²ñdöóøëù:ü[ýlþ5/Ã<™³ã d V ýÙ‘5ØD"ç"'%Ê% (­(O+ò+”.6/; 2ÁThWîYÈczeKfrsGt uôuŽvîvowðwqxñxºyÍyŸz,¼8½c¾ÛÇPÊ)ËßÚZ D � ‚ ” ÀÓá%Ç'-)È-D. /õ3:5 6»9Œ :ç>t ?ÖE}G HS_±_L`Daxb½c>eÐf—h�iÄj l�m÷m­t—ǶÈ=É`Í8ÎáÎcÏÐlÐÑÐbÑóÑ» ÖÖ ãàó ôõ9ö¾ö¡û$üoƒèµ  ^ ¶ + t.!•! "ž.ß/1�1Y2t314Í4u5w677‘7¦7¥8™9£: ;þ>1?¨?È@Ü@ð@ø@AA AOCÆCZ™ZI[‚_w`oQoÈo«w x^yzÚzý{±|¶}T~ž~¤€á€‚�‹‚Ó‚Ÿ‡MˆÄˆš‰/ŠDŠˆŽ�Žq�è�Ö‘c’Ù’Ö “• –?–µ–Š—˜3˜Â˜S™û™Kš9›j›Wœr�‡�ÿ�žV¡^¡f¡ž¤³¤+¥@¥¦©¦¾¦|§ƒ§Š§‘§š§¥§°§·§Á§Æ§²ª(«ý«‘¬¦¬y Ê¡ËÌìÌ›ÍfÎÜαϼÑÄÑÌÑûÛÜŠÜŸÜæäæ[çKè¼èÑèKé`é`êèêäë8ì¯ì íõílî]ï¯ï&ðØó ô€ô‰õ�õ±õÂõËõÔõÛõåõãøYùFú”ú2û"üýqýèýiþBÿ>°Å?k×M;¨óaÍC/• à7 Ë à ˆ õ k @ þ+t,-ð.‚4Œ4 4±4º4Á4Ê4Ú4ß4!L˜L-MBMÁO6P­PƒQR-R7UáUXV.WÃWØWXY‡ZœZ[+[À[–\«\|^_ `Ô`ca•a$btbcYcÐcÁde‹e|fÿfvgghÊhAijºjÏj‰k�k±kXmmmçmümÒngo|oXvívwzw�w#x8xÇxXy zzG{\{Ô{é{}|’|!}²}„‚(ƒ=ƒƒr…à…À‡gˆ4Š»ŠÇ‹0ŒB�¹�0Ž �s�ˆ���í�D‘Ù‘î‘›’A“V“Ý“ò“I”씕»•)–4—›—1¨ ¨Ûªƒ«¬œÎÏŠÏ`ÐÒÐhÑ>ÒHÔ|ÔóÔîÕõÕþÕÖ Ö‹×ØCÚÛÚjÛEÝ:ÞQàßàôàlá©á*âPâàâã÷ã¥äÍäœå°åûæ#çµçÝçÌèzé¢éQ´B K ë ¯Æ+5?IS]gq{…�™£­·ÁËÕð./}/’/g0û01Ú2z5�566s677Z8Ž89ù<-=¤=Ø@LAÃA§DPENFµF*GH�HIJsJèJ×KiLßLÏM€NöNáO@PµPŸQìQaRæ^Ú_P`^ara†aša®aÂaÖa)e eøi‹j jk-kÁk…lšl)mºm�{/|D|¼|Ñ|¦}ý}‘~UjùŠ€@‚q‚炼ƒP„e„ …?…µ…^ŠòŠ‹�‹–‹í‹‚ŒG�\�ì�~Ž˜‘,’A’»’Ð’'“¼“�”–”&•¸•I–ù�øžæŸÄ Ë¡u¢à¢s£¤™¤,¥Ï¥æ¥Ê¦/§¨·¨ý©tªëªÁ«V¬k¬­�­®¯§¯Y°C±ñ¸ð¹Þº¼»Ã¼m½Ø½k¾þ¾‘¿$ÀÇÀÞÀÂÁ'ÂçÃíÄdÅÛűÆFÇ[ÇÈ€È÷ÈÊ�Ê9ËóÛCܹܦÝçݒޜަް޺ÞÄÞûàáˆá�árâãã çoè„èüèé�ìØíTò†òÛõQöS÷Z÷a÷h÷q÷z÷ƒ÷Š÷‘÷š÷rú½û3ü©ü=ýþþ¥þ6ÿáÿWͽ3ÂswPeßô‰N c >$°$Å$?%T%*&¿&„'™'$+—+¬+&,;,-¦-k.€.ã374®4„56.698Œ89<;< <sO{OƒOýRSŒS¡SwT U!UWmnn’n§nþnÔoip~p_mn~ý~tJ€߀ô€s‚|‚ƒ‚Š‚ÂŒ9�ޤ޹Ža�¯�%�‘‘’¯’+++                           +                                                  + +  +                      '     '                              '             '     '                                      +                '  '                                     ))***               *******)))*'))* )))'))'''''))'  '  '  ******************'   '  '''')))))))' ' ' '            ''              ''   ******  '' ''   **)**''ó nô xô wõ hö G1 ,2 E3 9 "9 è9 ë= BI õS =i œn U} … Þ• £ ð² PÀ šÌ NÍ îÍ Ï ¡Ï 9Ð Ñ +Ò >Ó ™Ô ±Ö <Ø eÛ »Û ÿÜ øÝ ?ß óâ ä âå àç rè ©è ©ë Ãí 4ð ò Gò kô ?õ �ö ”ø Êú "û Ïý v C Æ ¾ y µ   R% Æ% ©- }1 |5 ˆ@ zb Mg šg j ºj 9k ¹k l Šl Im öm Zn ´n p ïp Uq  r s ‚s ås Ht ât Pu ¾u !v �v w cw Üw Fx Þx Ay ¤y 5z åz ·| } ‰} ò} [~ Ä~ - ¤ € †€ å€ O� Ä� !‚ ‚ Ý‚ Wƒ à 8„ V… 6† ~† ü† ±‡ $ˆ ш ª‰ XŠ °Š |‹ 9Œ ’Œ D� Þ� AŽ ÀŽ A� «� � d� ¼� ‘ v‘ 5’ Ë’ .” U– ¡— ù— ;™ %š €š ðš …› è› žœ !� x� ½� Ú� 0ž až 0Ÿ   N  m¡ N¢ ü¢ T£ ä£ ^¤ ¥ s¥ ò¥ c¦ Ȧ 8§ œ§ ö§ Y¨ æ¨ A© ó© «ª çª ,« ­« Ò« è¬ ­ þ­ E® b® ~® ê® ‰¯ )°  ° P± 5² k² ›³ ̳ m¼ ½ n½ ´½ ï½ (¾ c¾ ž¾ æ¾ x¿ [À ºÃ ¢Å ;Ë ÇÎ *Ñ cÓ -Ø ûÞ oä !é uî Hï ò ïò ’ô gõ ˜õ Éö ‹÷ šø nù wú ) ?  å g  C Y ² � ·  W ¹ j / µ à" ã# ·( /+ . ‚. )2 Þ4 ú7 s8 ÿ: ¯L ÎR ¼S qT AV ¨V W vW ÝW DX ­X "Y —Y Z ]Z ÅZ 8[ “[ ï[ K\ Ã\ -]  ] Ë^ Ô_ y` Ò` b Íb )c d _e ûe ^f ½f €g fh ùh �i Òj ïl 2n ‹n &o p rp ãp q Ýq Ar õr cs Õs ús ‹t ¼t yu *v œv Áv Fw ww yx „y ñy Rz ´z ${ ‘{ þ{ _| Á| r} ~ É~  7 S p • ³ Ñ D€ � õ� 1‚ —‚ ƒ L„ a„ v„ ‹„ ·„ .… Ò… † i† '‡ Gˆ ¡ˆ 4‰ ’‰ í‰ ZŠ ­Š ‹ ­‹ SŒ ­Œ J� gŽ –Ž :� ‰� F� Ÿ� ‘ p‘ Ý‘ 3’ ®’ …“ ” Ô” œ° [¸ ‹» Ä Ë ‰Î ¼Ð ñÜ ²õ 4ý ÖQ %#ž/_4S@ÉDÎTA]cUnsqà…&™ɦ²q¼í¾i¿å¿VÀÕÀµÁ•ÂÃtÃâÃPľÄ,Å™ÅýÅlÆåÆGÇªÇ È‡È;ÉÊüÊ÷ËÍ|κÏ*ÐoÐýищÓjÔÇÖÿÖˆ×è×HØ©ØÙvÙ(ÚøÚ~Û܉Ü\ÝÊÝ,Þ™Þß„àÊàîàˆáãáEâ7ã€ãeåGæ¦çpèé:éšéðéEêšêïêDë›ëNìÞìàí)îÆîïyïëïËðÇñòŒóíóOôõUõªõö±öþ÷ùWúìûíüÜýPkâ¡£¦ß " Ñ  ] ÷ f½'ÔAº~ß@¡cÇ3—ïF ·Y®B$È0±1£3ú3ø4‚6V=¦@„DìEG“IéL•PWRÊX9[ãz°}µÓ‚,ƒˆ#‘*’‚”ž•c—y˜š+›)���Ú�\¡ê²`º…ÁÝʧϹÖ8ÜÑÜ|ÝEÞÓÞ¶ßjàüàSáªá’âbã‘äTå\ê'í¢ò÷Âøüíü-þÿÝÿ˨uót_ 0§# þ o È ! “ ì R «  „ ì E¡rÙ4Œý8דõN»-© xÚ]® õi«ï3u¹ýS»}1‡Àùj —!%"#w#Ð#)$Ñ$6%&ô&,'ð'§(‰)ž)é)+**î*h+þ+@,”,î,---§- .84T6×8;L>B'EDIÍMéPMW²Ws]Ïawe€kÓrðz;€7†S�*“”›¢ü¤|¥c¦ª¦ §u§¨f¨ʨ0©õª’«õ°L±¦±9²7µ¶„·¹Ϲ»h»I¿îÀ‘ÂyêÃÄOÅeÅÂÅùÅMÆ�Ç�ÈéÈQÉØÉdÊïÊ`ËêËP̹Í2αÎHÏ£Ï*ÐIÒ“ÒêÒNÓÒÓ©ÔåÕžÖßÜ›æôé-ìíîmïið^ñVò³òôÛôõÁõ0ö¾öa÷0øù)ú†üþ²þÿ ¹ ضç±âg˜NàMˆ÷kùJ¯v@Úv̉;±�¿Du´#ã+0—4|7<Q?�IÍMZV\[!d j†mmrîu€} ‚#Œ#’Dšœ•œ;���Ÿ� ž¸ž[Ÿ”Ÿ®Ÿ ¡@¡å¡H¢^¶ºÄÁ—È`Ì²Ò ØÛÞðãtèœëð‘óØô8õŠõðõ÷Ã÷ø€ø`ù¦ùùù@ú‡ú ûçûéü`ý‘ý›þúþºÿòÿfGŸÒ2—›|ä&ý”³!8$ª%b.¦8¿:à<CîGRÏSU¬YZ4Zæ[g]Ï^_½_a‚b³bÈd2ePef¸f hQhijjÒkl2nžn¼nÚn»o+q\q}rat’tÃuä~^´�t„=…k…Z†‡Ó‡Qˆmˆ‰ˆ´‰lŠÌŠð‹�çŽÁ�I’K“ •––Ô—d˜Þ˜�™nš`›¨œ–�€ž“Ÿb +¡Á¡ë¢®£†¤H¥¦Ö¦†§;¨ò¨«©̪Ы›¯Q°±K±L²µ ·l»÷»ù½„¾#¿ùÀÂ;ÃaĂšÆÂÇçÈË™ÌÁÍåÎ^Ð×ÑþÒ!ÔžÕ×·×(ØÉØKÙÚ7ÚoÚÙÚFÝ"éœéîéõê’îOð¥ðšõ§ö7øùrùUûuü£ü¤ýµþzÿ;j¢Çàa€ž½Ù!ÿÿŃ> ú ( Ø – » Ù £ �FHRêpúå;¸5‰ÊV,‚¿ ŒÑhü¶jÃ= $‘á6¾ð`ò$R§:<| ¾ s!-"‘"ó"X#û#S$«$_%š%&�&ì&D'l'¨'(n(Ô(n)Ô):*³*s,ð-m.V/�/ã/70‹0á071Œ1ì1‡23r34X4š4ð4c5A6„6Ù6.7„7H8¨879ä9Å:;^;´;N<è<I=¨=7>³> ?B?¾?@w@Ö@5A–A÷AXBÅB‘CRDEtEFGªGáG^H¿HIIßI@J¢JtKLŒLíLyMNtNÎN/O†OðO8RèR+T?YœYl[<]ø^_w_Ù_`~`Ä` a‚aÂab0b±b÷b=cƒcdFd†dÆdôd~eÄe fPf–f$gdg¤gäg$hRhÉhiUiÍi jMj|jýjCk‰kÏkRl’lÒlm@m¥m,n`n o6oîo¸p�qIr sÈsTuYƒ^ˆƒšd£û¥©V¬â®’±¤³ÿ´ï·Hºç¼¥¾aÀŠÁæÃ.ÇÉÇøÈ˜É@Ê&Ë>Ì Í‹ÍWΉΠςϲÏ3ЗÐýÐŽÑjÒ˜Ó"ÕrÖÔÙ<ݦބß]à:áÁáÖâvãôæ|ç*èˆê°ëºìÍïlð0òJó4ô2õcõÃõkö$ùUûÙûýœýfÿ–Ã!®eYÃlñ5•ê?•ôR § 5 ¨  ° ù  2 k ® ê < Ž Ï )–Öñ 'B^y•°ÌèSÈœ! ?Y?Ð?Œ@AIAoAŒA½AãAÿA*BFBqB�B¸BÔBñB C)CwCîCËY*ZJZÎZ€[_¨_Í_¶`çn)oyoðorwÌwèwx xÎŽÎÏÙÏ�ÑtÒžÒÕ4ÕŠÛ¶Û8ÜÇÜïå%æCæaææ�æ¼æ çƒç*èYèvèùèˆé/êwê•ê³êëÂëòëì`ì×ì~í®íÍíî”î;ïkïˆï×ïNð¸óâó2ô¨ôLõö5ö[özö¬öÒöñö#÷I÷f÷‚÷�÷¹÷Õ÷ð÷ ø(øDø`ø�ø»ø ù�ù%úRúnú¼úûHûeûÐûíûNüûü+ýIý™ýþ8þ€þŸþ ÿnÿLiíKy”¯ÿuId€ÐFAoŠ¥õk=Wp½3 ~  f – ± Í  “ h Û+$,L,œ,ã,--K-i-‡-¥-Ã-á-ÿ-.7.S.o.�.«.É./J4~5Ô5>8n8“8û8+9P9¢;#< <“=}>§@7A"BšEñEHF^GýHßJ K¹KûKILßLkM¡OP^PÕPÊQVRU»U V€VuWX8Y�YëYBZÄZr[è[Ô\M^‘^°^>_ê_`:`W`t`�`¬`ü`Aama½ab0bLbœbãbc1c�cøcŸdÏdídHfHÅH:IÜI%JLJ›JK³KL)LBL‘LM«MüM'N@NYN¨NOÀOPhPÝP~QÅQR‰RÆ^_†_³_`x`aíabDbbb“b¹b×bc.cLc}c£cÁcòcd6dgd�d«dÜdeQeÈeÕijDjÈjtkékÃlRmâmz{Â{é{l|ù|Î}D~¹~“"€²€ ‚J‚™‚ƒ„Ž„ì„…g…Ý…;ЄЫŠ/‹¾‹4ŒªŒ…�ަŽu‘¾‘å‘i’ø’n“ä“¿”O•à••–Öï–—Œ—n˜ɘ0™±™4šµšj›œÌœI�¼�(ž(Ÿ^Ÿ# ô *¡¢£¢£6£”£É£'¤\¤º¤ï¤c¥¦ð¦P§…§D¨å¨©Ú©#ªLªœª«¬”¬ó¬=­h­¸­/®Ù®5¯W¯ܯ�°�±½±é±²†²h³Á³*´«´.µ¯µd¶·Æ·A¸´¸ ¹ ºVº»ì»"¼½›½ù½.¾Œ¾Á¾¿T¿²¿ç¿[À ÁèÁHÂ}Â4ÃÕà ÄÊÄÅ<ÅŒÅÆøÆ„ÇãÇ-ÈXȨÈÉÉÉ%ÊGÊÄÊpËÓÛÿÛÜkÜá܅ݰÝÞTÞÍÞøÞ#ßNßyߤßÏßúß%àPà{à¦à8áÅá¹âDãææ$ç>çXçrçŒç§çÁçÛçõçè*è¬è9é5ìùìjíî4ò^ò®ò¸õö)öyö÷§÷Ã÷à÷ü÷ø5øRønø‰ø¥øÁøÜøøøù/ùKùgù„ù ù½ùÙùõùú.úJúšú™ûãû ü[üðüeý?þÎþ^ÿ½ÿ/õ™ã [¡Îê:D‰¥ÁÝ<W¼ �;±Œ $L$j$í$|%q&ç&Â'+2+P+Ô+c,X-Î-©.Ã3ñ34_4Ö4Ë5W68G8e8´8+9 ;P;=<Î<DO{P¦PZQ„QcR“R¸R:SÉS¾TJU,m”m¾m@nÏn&op§pàqrK~–~Õ~%œ‘€�K‚ò‚^ƒ·ƒd…†Ç!ˆqŒœŒêŒa�VŽâŽ@�m�ˆ�×�M�ñ� ‘;‘W‘§‘ì‘E’z’Û’܉ ô %ô (ô 0ô 8ô ]ô bô pô oõ `ö Q÷ ¥1 ½1 Ñ1 å1 ù1 2 #2 92 „6 §6 «6 ±6 ·6 ¾6 Ä6 Ü6 ð6 7 7 27 I7 a7 u7 Œ7 ¢7 ¹7 Ð7 æ7 ý7 8 *8 A8 E8 I8 P8 U8 [8 a8 g8 n8 u8 {8 �8 ‡8 Ž8 ”8 š8  8 ¦8 ¬8 ³8 ¹8 ¿8 Å8 Ì8 Ò8 Ù8 ß8 å8 ë8 ò8 ø8 þ8 9 9 .9 ˆ9 ÿ9 > oI T ii Ên ‚} 3… – :£ ³ €À ÊÌ ƒÍ tÎ =Ï ØÏ pÐ FÑ `Ò sÓ ÚÔ 7Õ æÖ sØ œÛ ÿÛ ]Ü ”Ü Ý IÞ Âß Ïß Dã ˜ã Hä %æ "è Tè Šè ¶è ãè àë î +î Zî Lð 'ò Øò –ó Šô ^õ Åõ Òõ P÷ Óø û fû þ ¹ � þ ü · ¢ ¯ ô K [ ‘% =& J& . ×1 Ö5 À@ mA tA c {g h +h �h šh Nj ›j k šk ôk kl m *m Êm ×m ;n ”n ÿo Xp Ïp 6q �q r tr �r är cs Æs )t Ãt u Ÿu v Zv Ïv Dw §w 'x ½x "y …y z yz ¹z Æz ƒ{ ‰| –| ÿ| h} Ñ} :~ £~  ƒ ú f€ Ä€ .� ¤� ‚ ^‚ ¼‚ 6ƒ ¢ƒ „ Æ„ /… 6… Ü… † _† ݆ 7‡ ’‡ ˆ ¥ˆ ²ˆ ‰ ~‰ ‹‰ ,Š 9Š ‘Š ]‹ Œ sŒ %� ¿� "Ž ‹Ž � �� ï� F� �� õ� W‘ ¯‘ ’ ’ ’ «’ s“ ” ” ´” • |• Ù• )– 6– ×– ä– 3— ‚— Ú— T˜ ¼˜ ™ ñ™ _š Ñš g› É› !œ rœ œ � k� ¬� ³� Ð� ì� ž &ž Bž ¢ž Ÿ Ÿ ¶Ÿ èŸ .  è  M¡ á "¢ /¢ Т Ý¢ 5£ ¯£ ?¤ æ¤ T¥ Ñ¥ B¦ §¦ § |§ Õ§ :¨ ’¨ ±¨ "© Ô© €ª �ª Ȫ « ’« ™« ¦« Ç« j¬ ʬ Ѭ Þ¬ ú¬ £­ ò­ 4® ;® X® t® ˜® Ä® Ë® j¯ ° k° þ° *± 1± ñ± $² +² L² ñ² W³ г ‘³ ­³ ´ 9´ ¥¼ ª¼ ë¼ O½ ”½ н ¾ D¾ ¾ ƾ ¿ Y¿ À <À õÀ ÎÄ èÄ Å Å Å Å Å Å #Å )Å -Å 1Å 5Å LÅ _Å rÅ …Å šÅ •È ÕÈ sË $Ï 1Ï rÏ bÑ ÀÓ ÍÓ ×Ô HØ áØ îØ çß íß úß Hà ðä öä å ñé õé üé ê ×ê äê )ï üï ¦ð ³ð Mò 2ó Ðô Bõ Iõ Põ ]õ yõ åõ 4ö bö âö ß÷ îø âù ïù ëú øú Ÿ ¬ … Å + I ‚ · Ò Ö Ü ã û  ( @ W m q u z € † Œ “ š   ¦ ¬ ² ¸ ¾ Å Ë Ñ × Ý ã ê ð ö ü      " ) / 5 ; Q f ’ ê D ì ù G v Ò : ¯ ¼  X ¦ õ  n r © n ò )# !$ þ$ % ö( n+ M. é. ö. ƒ2 85 T8 ë8 ø8 7; É; Ð; 4M üR 9S FS T ET RT U V "V ‰V ðV WW ¾W %X ŒX Y xY âY >Z ¦Z [ u[ Ð[ ,\ ¤\ ] �] .^ ¥^ ¬^ R_ ¨_ µ_ M` Z` ³` ‚a áa ™b c êc @e Ýe @f žf ÷f Tg ag Gh «h Úh `i mi j j ¬j ³j Yk ¶k l pl Ãl Ðl hm um Äm n ln o äo Sp Äp aq ¿q "r {r Ér Ör Ws ºs Ás Îs ðs t mt tt �t �t u Fu Mu Zu v �v ˆv •v ·v Ôv (w /w Š �Š öŠ �‹ )Œ 6Œ �Œ ㌠� -� æ� LŽ RŽ _Ž yŽ ÚŽ � U� j� Â� '� p� €� É� Ù� R‘ ©‘ ’ y’ ô’ P“ Γ Þ“ ý“ ¶” Ë• â• å• ê• î• ò• ø• ü• – – – – – – – – б ¯¸ ß» QÄ qË AÏ �Ï tÑ ÂÑ <Ý ûõ }ý š n#ç/�4�@EUx]Rcªnr™†è†7‡ß™.š}š–§å§ç²6³F½·¾¾¾ξJ¿Æ¿7À¶À–ÁvÂçÂUÃÃÃ1ÄŸÄ Å{ÅÞÅMÆÇÆ)Ç‹ÇîÇhÈÉüÉÜÊ×ËÒÌãÍüÍ•ÎòÏ ÐPЖпÐÞЗÑ\ÓiÓ?ÔLÔýÕÖÖ ÖÖÖÖÖ"Ö(Ö/Ö3Ö:Ö?ÖFÖLÖQÖWÖ]ÖaÖfÖjÖnÖsÖwÖ{Ö�Ö‡Ö«ÖâÖk×Ë×+ØŒØíØÙSÙYÙ¤Ù ÚÛÚ`ÛæÛjÜØÜ=Ý«Ý ÞzÞÛÞåÞ'à*à0à6à<à?àDàIàMàRàUàXà]àaàeàiàmàqàuàyà¼àÂàåà€áÛá÷á"â(âãâããdã«ãätäãäHåÀå*æÎæ‰çèçSè²èåèé~éÔé)ê~êÓê'ë~ë$ì1ì¿ìPí®íîîîªîï\ïÎï†ð“ð®ð<ñIñªñUòbòæòóòWóoóÐó1ô‘ô•ô›ô¡ô§ôåô9õ�õúõ†ö“ö£÷¦÷©÷­÷±÷µ÷¹÷½÷Â÷È÷Í÷Ñ÷Õ÷Ù÷Ý÷á÷Ùøèø@úOúÏû¾üÍüÅýÔýHÿ–ÿäÿ2<K³ÂÒâ1€r‚t„­½æöô  £ ¦ « ¯ ´ ¸ ½ Á Å É ’ à , Í Ú ˆ IŸ Ÿ¬µ {…ôþ_À!‚ãD¨þxÐ(²·º¿ÃÇËìš/<�ã7E$§1 33333%3(3+31353;3?3C3G3L3Q3U3Y3^3b3f3j3n3†3Ý334�45¹6¦=à@DAËD&F=GÍI0MÜP�RYŒ[A{~ï ƒtƒÚƒXˆd‘b’ÔÖ•¦—½˜Zše›b�½�øŸûŸ        " ( . 2 8 > D H L S Z a g m s y  … ‹ ’ ˜ ž ¢ ¦ ¬ ° ´ ù u¡³Œº¶Á ËâÏçÖjÜݲÝ}Þ ßûߢà4á‹áñáVâtâ­âÆâšãÇäïäoå°ê›í¨í÷ò¤÷±÷ùXüÎücýpý¿ýþ„þ‰þ�þ•þûþ±ÿ¾ÿ5¡ýž«‰UîyÔUÖ@횈 { ß P ©  t Í 3 Œ ý e Í &�SºnÆßs±¸tÖTÇ/œ‹ëY»(>¤ OØ9ŽÒXœà#mžB` %(+059=AEIj£ÜM º !z!ê!"¼"Þ"ä"7#Y#²# $²$%q%Ø%÷%°&ã&ê& '²'Ñ'Š(Q)U)Y)_)c)i)n)s)w){)�)–)«)Ì)*b*Ñ*K+À+á+$,w,æ,û,-Š-ÿ-a0d0j0p0s0y00…0‹0‘0—0¬0À0Õ0ê011 1111#1)1.141:1@1F1L1R1X1^1d1j1p1v1}1Ú1p4±6¾6ò8;g>B E}IN!Q“W÷W·]b¹eÄk s({s€o†‹�n“ΛU¢5¥?¥]¥¦D¦‹¦î¦U§ã§G¨«¨©‡©‡ªÖªU«s«,¬H¬-±‡±ü±²Ó²8³�³¹³–µåµK¶¯¶Ç·æ·a¹°¹ºrºI»°»ž½¨½÷½F¾b¾©¿À2ÁŽÁTÂrÂ+Ã5ÃhÃoËÃëà ÅÅÅÅÅ"Å&Å*Å0Å4Å:Å@ÅGÅ]ÅsŦÅÝÅ0ÆfÇsÇ€ÇïÇqÈÊÈ2ɸÉDÊÐÊA˲ËËË1ÌÍ!Í.Í›ÍôÍÎ|Î’Î*Ï„ÏéÏ Ð¤Ð ÑrÑÎÑ*ÒtÒËÒ/Ó•Ó³ÓlÔŠÔCÕ¨ÕÆÕÖÍÖÑÖÙÖáÖæÖîÖöÖþÖ×××-×D×[×r× Ý*ç.ç4ç9ç?çCçGçqçêfì1ímî�ï—ðòð�ñyò–òJóŒó1ôFôöô¤õöfö ÷¡÷røDù^ú½üJþ+ÿÚçñš Caš¹r¥¬Èm §Ã#V]yÙ /�Âû/iØL¦Ú+�õWÅ!»U­_is’K~… 3:Vû_á$å$ì$ó$÷$ý$%% %%%%%%$%(%,%q% ,50½4²7<<‰?ßI NÓV;W•[cdxjn„nñnßr{vðvLw~~~^~Ђނ—‚æ‚ „\Œh’ˆšWœvœ/�p�w�•�º�æ�í�­žAŸ†Ÿ�Ÿ§ŸŸîŸõŸµ þ ¡!¡Æ¡*¢t¢•¢œ¢½¢Ä¢£M·Z·g·t·÷#º3º"ÂqÂ5ÉÚÌ)ÍFÓXاØRÛIÞ3ä­èÓëQðÊóõõFõkõÐõ‰ö–öåö>÷I÷¥÷ü÷aøºøùAù‡ùÚù!úhúÍúû©ûÈû�ü†üÊüýOýVýrýþ|þÜþ&ÿGÿNÿoÿvÿ©ÿ°ÿÓÿx%+Iý…ÆÌäÐéíóùÿHUb°ÇÔá/Z`©Ç àÃw³5"O"S"W"["_"c"£"©"f$ó%÷%r//¶9Ã9Ï;Ü;ö=>DDîHûH¡S®SñTþTAVNVøYÿY Z*ZHZ‡ZŽZ›Z\·]»]±^¸^Å^á^F_Š_‘_ž_b`ž`¥`²`janadbkbxb”bùbee(eFede£eªe·ePfg gh hh2h—hÛhâhïh³iîiõijºj¾j´k»kÈkäkIl€n‡n”n²nÐnîn?oFoSoìo qq!q=q¢qñqJrQr^r"sCtJtWtstØtßuåuDŠ—®È €€%€I�·�Ä�Ñ�¸„…(…5…O…·…#†0†=†û†¨‡¬‡°‡¶‡»‡¿‡Çɇ/ˆ<ˆIˆeˆ�ˆ�ˆ ‰-‰:‰}‰Љ—‰߉6ŠCŠPаŠU‹¹‹Æ‹Ó‹‘ŒÜŒéŒöŒS�7�;�A�E�c�è�m’p“E•«•–Ý–û—†˜ÿ˜®™¤š”›ÜœÌ�¶ž¶Ÿƒ L¡æ¡£ó£µ¤�¥F¦§´§¨ ©ï©«¬°2°ë°±,±…±æ±g²HµF·Ö»c¼b¾ï¾…¿è¿UÁz™ÿÄàÅÿÆÈEÉ`ËùÌÎCϾÐ7Ò\ÓÔþÕ{×™×Ò×ë×DØäØ Ù,ÙåÙÚNÚ¸ÚÛQÝ‚éÈéÕéçéêKêXêeêëÄî€ðˆð¾ð ñZñ¶ñÃñÐñöpö}öŠöH÷ÿøLùRù_ùlù†ùïùõùúúÕûMüSü`ümü‡üöügýmýzý‡ý÷ýxþ~þ‹þ˜þ]ÿŸ£ª¯³·¼ÀÄÈÎÒØÜâæN…½Ô=JWu”²Ñ0=JÄÑÞ=JW ­ºUÆÓà‘à¦d Û — ï ü  Ë m t � Ž ± Ï ë c j w „ ú p(’ *’&3üf´·¼ÀÄÈÝrÉ›mÀ $9ºÇeâ? ¢ !t!Ç!"""'"+"/"3"H"É"Ö"#t#ñ#n$Ã$%+%¬%¹%&W&Ô&Q'¦'ù'(�(œ(å(:)·)4*‰*Ü**+-+2+6+:+>+S+Ô+á+*,,ü,y-Î-!.o.r.w.{..ƒ.˜./%/n/Ã/@0½01e1i1p1w1|1‚1ˆ1¢1¹1Î1ã1ç1í1ó1÷1þ12 2222#2*2W2; ;n;¼; <Ž?EEcEîH·M]NOÅSåTDUÌUTV²VW W°WX–XY~YÜYòYwZ„ZÓZh[u[\\„cŠc£c§c«c¯c³c·cÏc°dhe†e:fyfãfNgŠgîg¼hk¤kelmämÈnüoWqfqvr…r:sIs‡s”s®stSt`tÐt!u.uHu¸uv v}všvÜvww]w‚wœwÞwxx_x„xžxàxõx•y»yÙy�z²zÌz!{½»;¼¨¼½9½F½,¾/¾4¾8¾<¾@¾D¾J¾N¾R¾y¾^¿wÁÚÁxÃÜŘÆ:ÇÊÇëÇCÈXȹÈgÉ|ÉëÉ>Ê\ÊËË6ËwˬËÌXÌpÏtÏxÏ~ςφϋϑϕϙÏ�ÏÕÑëÔøÔœ×ÁÚÎÚ.Û�Û™Ý à䫿 ëí9ïó­öXý&±EÓkò�°6¹B¯€H f Ÿ Ç Ë Ï Õ ì ÿ    # ' + / 3 H ‹ © ] ƒ ³ ø =ƒÒ!o´úK›Áß“—òK¦ pÜéªrÂ’ŸÑAÆÓ¾Í3ˆÐ2A�ðp}2›÷]¿(„êŸ T! "`"p"Ä"Ô"(#8#Ï#Ü#4$Œ$ä$@%Ž%÷%b&Í&8'`'ˆ'µ'é'O(µ()O)µ)*�*,, ,,,,$,(,/,4,8,=,A,E,K,Q,W,[,_,e,i,n-t-x-~-„-ˆ-Œ-�-”-š-Ÿ-£-§-¬-²-¶-Ô-2.P./:/r/Æ/0n0Ä01o1Ï1j2ô23V3ä34;4~4Ó4(5F5ú5$6g6¼67g78+8Œ89©9Ç9{:¨:þ:A;—;$<1<¾<Ë<,=Œ=>©>ó>6?Z^Z¥Z²Z [U[d[\†_�_”_¡_Ã_ `ƒ`‡`‹`š`ca o=o]o´oÔoŠp·wÄwàwüwx4xPxlx¬x»xyfysy‘y¯yÌyéy)z6z’zèzõz{1{O{l{Š{©{È{ ||t|¿|Æ|ä|}};}Y}w}•}Â}È}&~V~Š~ª~`¦³Ï€€v€å€ë€ø€�4�Ž�’�Ÿ�`‚�‚°‚¿‚ß‚5ƒ©‡LJ䇈ˆ9ˆYˆ°ˆЈ†‰¦‰Š0ŠQŠÀŠ‘Ž(�o��]�}�Ô�ô�ª‘Þ‘ú‘’2’O’o’Å’å’š“è“î“ ”-”I”e”�”œ”¸”Ô”ñ”•$•à•–+–K–¡–Á–v—–— ˜˜@˜®˜Ϙ?™_™Ï™ÿ™š7šWš ›;›V›v›+œgœ‚œ�œ¸œÓœîœ �$�?�s�“�é�ž žÕžf¡½¡ç¡›£Ç£A¤k¤Ÿ¤¿¤¥,¥L¥¦!¦•¦ª¦˦9§ȧ姨¨:¨W¨s¨�¨¬¨Ȩ娩©9©V©r©Ž©ª©Ç©ã©ªª9ªeª‚ªžª¾ª«4«é« ¬}¬’¬³¬!­‹Ê§ÊÃÊßÊüÊË5ËQËoË�Ë­ËÌ#ÌØÌøÌ/ͧÍÃÍßÍüÍÎ5ÎRÎrÎÈÎèÎ�ϽÏôÏÌцҰÒÕFÕœÛÈÛüÛÜs܋ܫÜaÝæ9æWæuæ“æ±æÐæðæGçgçèOèlè‰è½èÝè4éLélé"êfêmê‹ê©êÇêôêøêµëèëì$ìDì›ì»ìqí¤íÂíáíîXîxî.ïaï~ï›ï»ïð2ðèðÚóöóôlôŒôAõåõöUöoö�öÌöæö÷C÷]÷z÷•÷°÷Í÷è÷ø ø;øXøsø£øÏøïøEùeùúJúfú€ú úöú:û@û\ûÈûäûü.ü2üîü!ý?ý]ý}ýÔýôý+þoþvþ”þÿ!ÿNÿRÿB_}±Ñ(@qŒ§Ãã9YA\x”´ *ßÿ6g‚�¹Ù/O5Oh�¡÷Ìì# C · Ì í [ Ž © Å á  W w , L ƒ  ,F,`,€,Ö,#-A-_-}-›-¹-×-õ-.-.I.e.ƒ.¡.¿.Ü.ü.3/á4�5æ5R8Œ8¥89I9b9´;5<²<¥=�>¹@IA4B¬EFZFpGIñJKËK L-L„L¤LM.MOM¾MÃO"PBP™P¹PoQ�QRR:R©R9UÍUíUDVdVW:W¯WÄWåWTX^Y®YüYTZˆZ¨ZÿZ[7[¬[Ì[q\‚\—\¸\']€^‡^¥^ñ^_"_ß_`2`N`k`ˆ`¤`À`à`6aea�a¡a÷a(bDb`b€bÖb c'cEcec¼cÜc’dÅdãde ewe—eMf‚f f¾fÎfëf gbg‚g8hkh‰h™h¶hÖh-iMij#j˜j¦j»jÜjKk½kÞkl5lVl’l­lÎl m%mYmymÐmèmn¾nÞnSoho‰oøodv vºvîvwdw{w›wx$xEx³xÔxDydyÔy*zKz†zŸzÀzûz{H{h{¾{Õ{õ{i|~|Ÿ| }.}ž}¾}.~�‚Ì‚æ‚õ‚)ƒIƒŸƒ¬ƒÃv…}…¢…¿…ì…ð…­†ȇχí‡ ˆ(ˆFˆsˆwˆ4‰:ŠAŠ_Š}ŠšŠÇŠËŠˆ‹Ë‹Ò‹ñ‹Œ<Œ@ŒýŒN�Š�¥�Å�Ž<ŽòŽ"�@�t�”�ë��#�Ù�ù�0‘P‘őڑû‘j’§’ã’þ’“B“b“¹“Ɠޓþ“5”U”ʔؔ픕}•¿•ƕ땖5–9–ö–8—?—]—z—§—«—h˜7¨S¨o¨Œ¨¬¨©ߪ檫b«�«“«ñ«¬$¬á¬¨ÎäÎÿÎÏvÏ–ÏLÐlУÐÚÐùÐÑ7ÑTÑtÑ*ÒJÒ�ÒJÔhÔˆÔßÔÿÔµÕÖ.ÖLÖjÖˆÖ¥ÖÃÖáÖÿÖ×;×Y×w×—×îרĨEÚLÚºÚçÚëÚIÛvÛ|Û9ÜMÝTÝyݗݵÝÞFÞJÞß\à•à¬àààáVámá­á³áÏáêá+â/â\â`â½âáâçâããÖãä ä„ä¦ä¬äÚäàäUå»åÁåèå%æ?æfæ¢æ»æüæç/ç5ç’ç¶ç¼çéçïç«èØèÞèYé{é�é¯éµé*êU[w“ÀÄ!NR‹ Ó Ú ç  W [ h * ÷ ?FSn»¿ÌŽV]j…ÒÖã¥Õh’¡@OFpe � ž R!|!‹!0"Z"i"r#ž#­#$0$?$É$ó$%]%‡%–%Ç&ó&'!(M(\(ñ()*)ý)'*6*/+Y+h+Z,„,“,]-‡-–-„.®.½.ñ./g/~/ž/S0s0ç0ü01‹1Ü2G5{5›5ñ56(6_66ó67)7—7\8z8š8ñ89Ç9û<=9=�=°=f>ã@A8AXA¯AÏA…B B×BþBOCËCD[D³DôDEE\EiE$FPF¡FÁFG6GêG$H`HzH‰H©HþHIÒI JFJ_JJÔJôJ¨KæK#LjXjŒj¬jkk9k­kÍk`lql†l§lm6m¦mÆm6n¨{ã{ü{0|P|¦|½|Ý|’}²}é} ~}~�~0AVwå€v€–€�B‚]‚}‚ӂ󂨃ȃ<„Q„r„à„…+…K…¡…Á…v†jŠ¤Š¿ŠóŠ‹j‹‚‹¢‹Ù‹ù‹nŒŽŒ"�3�H�i�Ø�ù�jŽŠŽûޤ‘Þ‘ù‘-’M’¤’¼’Ü’“3“¨“È“\”m”‚”£”•3•¤•Ä•5–z–§–Ô–—.—¯—•˜ì˜m™ð™qšôš§›DœVœóœ�‡�™�ã�žÈž ŸŸ:Ÿ¶ŸòŸÿŸ{ Ù æ ¡‚¡סä¡`¢�¢Ë¢ó¢£^£†£¦£ñ£¤9¤„¤¬¤̤¥0¥ ¥Ð¥ò¥µ¦Φ§B§b§ç¨"¨q¨ʨר÷¨]© ªCª`ª€ªת÷ª­«Í«B¬W¬x¬ç¬#­_­|­œ­ó­®É®¯'¯I¯k¯³¯À¯°e°t°/±t±¡±αû±(²©²�³æ³g´ê´kµîµ¡¶>·P·ë·ý·¸‘¸Û¸ý¸À¹ºº2º®ºêº÷ºs»Ñ»Þ»þ»z¼ϼܼX½y½ýë½ ¾V¾~¾ž¾é¾¿1¿|¿¤¿Ä¿À(À˜ÀÈÀêÀ­ÁÆÁÂ:ÂZ»ÂÃÃaúÃÇÃçÃMÄùÄ3ÅPÅpÅÇÅçÅ�ƽÆ2ÇGÇhÇ×ÇÈOÈlÈŒÈãÈÉ¹É ÊÊ9Ê[ʛʨÊËEËTËÌ÷ÛÜ/ÜOÜ¥ÜÅÜzݨÝÄÝÓÝóÝIÞÄÞàÞ ßß6ßaßpßŒß·ßÆßâß àà8àcàràŽà¹àÈàüàárá‰á©á^â~âòâã(ã–ãç6çPçjç„çŸç¹çÓçíçè"è<èpè�èæèýèéÒé“ì¢ì¯ì íí|íäíóíîÁîVòrò’òGóçõ#ö=ö]ö÷ž÷»÷×÷ô÷ø-øIøfø�øœø¹øÔøïø ù'ùBù_ù{ù˜ù´ùÑùíù ú&úBú^ú~ú3ûŽûÉûüü?ü•üµü)ýIýÜýíýþ#þ‘þ²þ"ÿBÿ²ÿíÿ)Cc¹ÙŽÉ?•Æâþt{��¹Õï }{ÍQqÈàu•) : O p ß B$`$}$±$Ñ$(%@%`%&6&«&Ë&_'p'…'¦'((+F+d+˜+¸+,',G,ý,-’-²-F.W.l.�.ü.ç34#4C4š4º4p5�566;6ª6=8[8x8˜8ï89Å9>;E;ð;<!<<¬<²<o=�O�P¸PlQ–QwR±RÊRþRSuS�S­ScTƒTøT U.U�U_m¦mÐmn$n{n“n³nên oÀoàoUpjp‹púpòq rz~¸~é~ `€6€V€Ë€à€�p�Œ‚ƒoƒȃv…#†Õ‡2ˆƒŒ®ŒÎŒ%�E�û�Ž�ޥޯŽ5�e�€�›�»��1�æ�‘3‘O‘k‘‹‘á‘+’n’t’Ž’»’¿’{“ƒ“‹“““›“£“«“³“»“Ó˓ӓۓã“ë“ó“û“” ”””#”+”4”<”E”M”V”^”f”n”v”~”†”Ž”—”Ÿ”§”¯”·”¿”ǔϔהߔç”ï”÷”ÿ”••• •(•1•9•B•J•R•[•c•k•s•{•ƒ•‹•“•›•£•«•´•½•ŕ͕֕ޕæ•î•ö•þ•––––&–.–6–>–F–N–V–^–f–n–v––ˆ–�–˜– –¨–°–¸–À–È–ЖØ–à–è–ð–ø–————!—)—1—9—A—I—Q—Y—a—j—r—z—ƒ—‹—“—›—£—«—³—»—×Ë—Ó—Û—ã—ë—ó—û—˜ ˜˜˜$˜,˜5˜=˜E˜M˜U˜]˜e˜m˜u˜}˜…˜�˜•˜�˜¥˜­˜¶˜¾˜ǘϘטà˜è˜ñ˜ù˜™ ™™™"™*™2™:™B™J™R™Z™b™j™r™z™‚™‹™“™›™£™«™³™»™Ä™Ì™Õ™Þ™æ™î™ö™þ™šššš&š.š6š>šFšNšVš^šfšnšvš~š‡š�š˜š š¨š°š¸šÀšÈšКØšàšèšñšúš› ›››$›,›4›<›D›L›T›\›d›l›t›}›…›Ž›–›Ÿ›§›°›¸›À›È›ЛØ›à›è›ð›ø›œœœœ œ(œ0œ8œ@œIœQœZœbœkœsœ|œ„œŒœ”œ�œ¦œ®œ¶œ¾œÆœΜ֜ޜæœîœöœþœ����&�/�7�?�G�O�W�`�h�p�y���‰�‘�™�¢�ª�²�º�Â�Ê�Ò�Ú�â�ê�ó�û�ž žžž&ž.ž6ž>žFžNžVž^žfžnžvžžˆž�ž˜ž¡žªž²žºžžÊžÒžÚžâžêžòžúžŸ ŸŸŸ%Ÿ-Ÿ5Ÿ>ŸGŸOŸWŸ_ŸgŸoŸxŸ€ŸˆŸ�Ÿ˜Ÿ Ÿ¨Ÿ°Ÿ¸ŸÀŸÈŸПØŸàŸèŸðŸøŸ      ( 0 8 @ H P X ` h p x € ˆ � ™ ¢ ª ² º  Ê Ò Ú â ê ò ú ¡ ¡¡¡"¡*¡2¡:¡B¡J¡R¡Z¡b¡j¡r¡z¡ƒ¡Œ¡”¡�¡¦¡®¡·¡À¡É¡Ñ¡Ú¡ã¡ì¡ô¡ý¡¢¢¢¢'¢/¢8¢@¢I¢R¢Z¢c¢l¢t¢|¢„¢Œ¢”¢œ¢¤¢¬¢´¢¼¢Ä¢Ì¢Ô¢Ü¢ä¢ì¢õ¢þ¢£££ £)£2£;£C£L£U£^£f£o£x£�£‰£‘£™£¡£©£±£¹£Á£É£Ñ£Ù£á£é£ò£û£¤ ¤¤¤'¤0¤8¤A¤I¤Q¤Y¤a¤i¤q¤y¤�¤‰¤‘¤™¤¡¤©¤±¤¹¤Á¤ɤѤÚ¤â¤ê¤ò¤ú¤¥ ¥¥¥"¥*¥2¥:¥B¥J¥R¥Z¥b¥j¥r¥z¥‚¥Š¥’¥š¥¢¥ª¥²¥º¥Â¥Ê¥Ò¥Ú¥â¥ê¥ò¥ú¥¦ ¦¦¦$¦,¦4¦<¦D¦L¦T¦\¦d¦l¦t¦|¦„¦Œ¦”¦œ¦¤¦¬¦´¦¼¦Ħ̦Ô¦ܦä¦ì¦ô¦ü¦§ §§§$§,§4§<§D§L§T§\§d§l§t§|§…§ާ—§Ÿ§¨§±§¹§§˧Ó§ܧå§î§÷§ÿ§¨¨¨#¨+¨4¨=¨E¨M¨U¨]¨e¨m¨u¨}¨…¨�¨•¨�¨¥¨­¨µ¨½¨ŨͨÕ¨ݨå¨í¨õ¨ý¨© ©©©%©-©5©=©E©M©U©]©e©m©u©}©…©�©•©�©¥©­©µ©½©Å©Í©Õ©Ý©å©í©õ©ý©ª ªªª%ª-ª5ª=ªEªMªUª]ªeªmªuª}ª…ª�ª•ª�ª¥ª­ªµª½ªŪͪÕªݪåªíªõªýª« «««%«-«5«=«E«M«U«]«e«m«v«~«‡«�«˜« «©«±«¹«Á«Ê«Ò«Û«ã«ë«ô«ü«¬ ¬¬¬'¬/¬8¬@¬I¬Q¬Z¬b¬k¬s¬|¬„¬�¬•¬ž¬¦¬¯¬·¬À¬ȬЬجà¬è¬ð¬ø¬­­­­ ­(­1­9­A­I­Q­Y­a­i­q­y­�­‰­‘­™­¡­©­±­¹­Á­É­Ñ­Ù­á­é­ñ­ù­® ®®®"®+®3®;®C®K®S®[®c®k®s®{®ƒ®‹®“®›®£®«®³®»®îˮӮۮã®ë®ó®û®¯ ¯¯¯#¯+¯3¯;¯C¯K¯S¯[¯d¯m¯u¯}¯…¯�¯•¯�¯¦¯¯¯·¯¿¯ǯϯׯ߯ç¯ï¯÷¯ÿ¯°°°°'°/°7°?°G°O°W°_°g°o°w°°‡°�°—°Ÿ°§°¯°·°¿°ǰϰ×°ß°ç°ï°÷°ÿ°±±±±'±/±7±?±G±O±W±_±g±o±w±±ˆ±‘±™±¡±©±²±º±±ʱÒ±Û±ã±ì±ô±ý±²²²²&².²6²>²G²O²X²a²i²q²y²�²‰²‘²™²¡²ª²²²º²²ʲÒ²Ú²â²ê²ò²ú²³ ³³³#³+³3³;³C³K³S³\³d³l³t³}³†³޳–³ž³¦³®³¶³¾³ƳγÖ³Þ³æ³î³ö³þ³´´´´&´.´7´?´G´O´W´_´g´o´w´´‡´�´—´Ÿ´§´¯´·´À´É´Ñ´Ù´á´é´ñ´ù´µ µµµ!µ)µ1µ9µAµIµQµYµbµkµsµ|µ…µ�µ–µŸµ§µ¯µ·µ¿µǵϵ׵ߵçµïµ÷µÿµ¶¶¶¶'¶/¶7¶?¶G¶O¶W¶_¶g¶o¶w¶¶‡¶�¶—¶Ÿ¶§¶¯¶·¶¿¶ȶѶÙ¶á¶é¶ñ¶ù¶· ···!·)·1·9·A·I·Q·Y·a·i·q·y·�·Š·’·š·¢·ª·²·º··Ê·Ò·Ú·â·ê·ò·ú·¸ ¸¸¸"¸*¸2¸;¸C¸K¸T¸]¸e¸m¸u¸}¸…¸�¸•¸�¸¥¸­¸µ¸½¸Ÿ͸Ö¸Þ¸æ¸î¸ö¸ÿ¸¹¹¹"¹+¹3¹<¹E¹M¹V¹_¹h¹q¹z¹‚¹й’¹š¹¢¹«¹´¹¼¹Źιֹ߹è¹ð¹ø¹ºººº º(º0º8º@ºIºQºYºaºiºqºyº�º‰º‘º™º¡º©º±º¹ºÁºɺѺÙºáºéºñºùº» »»»!»)»1»9»A»I»R»[»c»k»s»{»ƒ»‹»“»›»£»«»³»»»û˻ӻۻã»ë»ó»û»¼ ¼¼¼#¼+¼3¼;¼C¼K¼S¼[¼c¼k¼s¼{¼ƒ¼‹¼“¼›¼£¼«¼³¼»¼ü˼Ó¼Û¼ã¼ë¼ó¼û¼½ ½½½%½.½7½@½I½R½[½d½m½v½~½‡½�½˜½¡½ª½²½º½ý̽Ô½ܽä½í½ö½þ½¾¾¾ ¾)¾2¾:¾B¾J¾S¾\¾d¾m¾v¾¾‡¾�¾˜¾¡¾©¾±¾¹¾¾˾Ô¾ܾä¾ì¾ô¾ü¾¿ ¿¿¿$¿,¿4¿<¿D¿L¿T¿\¿d¿l¿t¿|¿„¿Œ¿”¿œ¿¤¿¬¿´¿¼¿Ä¿Ì¿Ô¿Ü¿ä¿ì¿ô¿ý¿ÀÀÀÀ&À.À6À>ÀFÀNÀVÀ^ÀfÀoÀwÀ€ÀˆÀ‘À™À¢ÀªÀ³À»ÀÄÀÌÀÕÀÝÀæÀîÀ÷ÀÿÀÁÁÁ!Á*Á2Á;ÁCÁLÁTÁ]ÁeÁnÁvÁÁ‡Á�Á˜Á¡Á©Á²ÁºÁÃÁËÁÔÁÜÁåÁíÁõÁýÁ ÂÂÂ'Â/Â7Â?ÂGÂOÂWÂ_ÂgÂoÂw‡Â�—Ÿ§¯·¿ÂÇÂÏÂØÂáÂéÂñÂùÂà ÃÃÃ#Ã+Ã3Ã;ÃCÃKÃSÃ[ÃcÃkÃsÃ{ÃËÓÛãëóûÃÃÃËÃÓÃÛÃãÃëÃóÃûÃÄ ÄÄÄ#Ä+Ä3Ä;ÄCÄKÄSÄ[ÄcÄkÄsÄ{ăċēěģīijĻÄÃÄËÄÓÄÛÄãÄëÄóÄûÄÅ ÅÅÅ#Å+Å3Å;ÅCÅKÅSÅ[ÅcÅkÅsÅ{ŃŋœśţūųŻÅÃÅËÅÓÅÛÅãÅëÅóÅûÅÆ ÆÆÆ#Æ+Æ3Æ;ÆCÆLÆTÆ]ÆeÆmÆuÆ}ƆƎƗƟƧƯƷƿÆÇÆÏÆׯ߯çÆïÆ÷ÆÿÆÇÇÇÇ'Ç/Ç7Ç?ÇGÇOÇWÇ_ÇgÇoÇwÇLJÇ�ǗǟǧǯǷǿÇÇÇÏÇ×ÇßÇçÇïÇ÷ÇÿÇÈÈÈÈ'È/È7È?ÈGÈOÈWÈ_ÈgÈoÈwÈȇÈ�ȗȟȧȯȷȿÈÇÈÏÈ×ÈßÈçÈïÈ÷ÈÿÈÉÉÉÉ'É/É7É?ÉGÉOÉWÉbÉmÉuÉ}É…É�É•É�ɥɭɵɽÉÅÉÍÉÕÉàÉëÉóÉûÉÊ ÊÊÊ#Ê+Ê3Ê;ÊCÊKÊSÊ[ÊcÊkÊsÊ~ʉʑʙʡʩʱʹÊÁÊÉÊÑÊÙÊáÊéÊñÊüÊËËËË'Ë/Ë7Ë>ËEËMËUË\ËcËjËrËz˂ˊ˒˚ˢ˩˱˹ËÁËÉËÑËÙËáËéËñËøËÿËÌÌÌÌ#Ì+Ì3Ì;ÌCÌKÌSÌ[ÌcÌjÌqÌx̀̈Ì�̸̨̘̠̰ÌÀÌÈÌÐÌØÌàÌèÌðÌùÌÍ ÍÍÍ Í'Í.Í6Í>ÍFÍNÍUÍ\ÍdÍkÍrÍz͚͂͊͒ͪ͢ͲͺÍÂÍÊÍÓÍÛÍãÍëÍóÍûÍÎ ÎÎÎ#Î+Î3Î;ÎCÎKÎSÎ[ÎcÎkÎsÎ{΃΋ΓΛΣΫγλÎÃÎÊÎÑÎØÎßÎæÎíÎôÎûÎÏ ÏÏÏ!Ï)Ï1Ï9ÏAÏIÏQÏYÏaÏiÏqÏyÏ�ψÏ�ϖϞϦϮϵϽÏÅÏÍÏÕÏÝÏåÏíÏõÏýÏÐ ÐÐÐ$Ð,Ð4Ð<ÐDÐLÐTÐ\ÐdÐlÐtÐ|ЄЌДМФЬдмÐÄÐÌÐÔÐÝÐæÐîÐöÐþÐÑÑÑÑ&Ñ.Ñ6Ñ>ÑGÑOÑWÑ_ÑgÑoÑwÑчÑ�їџѨѱѹÑÂÑËÑÓÑÜÑåÑíÑõÑýÑÒ ÒÒÒ%Ò-Ò5Ò=ÒEÒMÒUÒ]ÒeÒmÒuÒ|҄ҌҔҜҤҬҴҼÒÄÒÌÒÔÒÜÒäÒìÒôÒüÒÓÓÓÓ#Ó*Ó1Ó8Ó@ÓHÓPÓXÓ`ÓhÓqÓzÓ‚ÓŠÓ’ÓšÓ£Ó«Ó´Ó»ÓÂÓÉÓÑÓØÓßÓæÓíÓôÓüÓÔ ÔÔÔ!Ô(Ô/Ô6Ô=ÔDÔLÔTÔ\ÔdÔlÔtÔ|ÔƒÔŠÔ‘Ô™Ô Ô§Ô®Ô¶Ô¾ÔÆÔÎÔÖÔÞÔæÔîÔöÔýÔÕ ÕÕÕ$Õ-Õ4Õ;ÕBÕJÕRÕZÕbÕiÕpÕwÕÕ†Õ�Ք՜դիղչÕÁÕÈÕÏÕÖÕÞÕåÕìÕóÕûÕÖ ÖÖÖÖ&Ö-Ö5Ö<ÖCÖJÖRÖ[ÖdÖkÖrÖyÖ�Ö‰Ö‘Ö™Ö¡Ö¨Ö°Ö¸ÖÀÖÈÖÐÖØÖàÖèÖðÖøÖ×××××&×.×6×>×"ô -ô 5ô Zô iô tô sõ dö B1 ã1 ÷1 2 !2 (2 A3 ¤6 ®6 ´6 »6 Á6 7 7 /7 F7 ‰7 Ÿ7 ¶7 Í7 ã7 ú7 '8 >8 M8 X8 ^8 d8 k8 r8 x8 Š8 ‘8 —8 £8 ©8 °8 ¼8 Â8 É8 Õ8 Ü8 â8 î8 õ8 û8 9 9 9 Ð9 Ó= *I ÝS %i ƒn <} í„ Å• è¢ ×² 7À �Ì 5Í ÕÍ ïÎ ˆÏ Ð øÐ Ò %Ó €Ô ˜Ö #Ø LÛ ¢Û æÜ ßÝ &ß Äß Úâ íã Éå Çç Yè ¤è �ë ªí î ð öñ .ò Rô &õ Çõ wö {ø ±ú û ¶ý ] * ­ ¥ ` ¤ œ ó  9% ­% ?& �- d1 c5 o@ rA ab 4g �g h �h ìi ¡j k  k úk ql m 0m Ìm Ým An ›n p Öp ƒ ªƒ „ 4… =… † e† ㆠ˜‡ ˆ §ˆ ¸ˆ €‰ ‘‰ .Š ?Š —Š c‹ Œ yŒ +� Å� (Ž §Ž (� ’� ô� K� £� û� ]‘ ’ ’ ²’ ” ” +– <– Ù– ˆ— à— "™ š gš ך l› Ï› tœ …œ � s� ±� ¸� Õ� $ž +ž Hž Ÿ Ÿ îŸ 5  T¡ $¢ 5¢ Ò¢ 㢠;£ Ë£ E¤ ¥ Z¥ Ù¥ J¦ ¯¦ § ƒ§ ݧ @¨ ͨ (© Ú© ‚ª ’ª Ϊ '« —« ›« ¨« Í« Ϭ Ó¬ 㬠­ ù­ 9® @® ]® y® É® Ñ® p¯ ° ‡° /± 7± )² 0² R² �³ –³ ³³ T¼ ñ¼ U½ š½ Ö½ ¾ J¾ …¾ ̾ _¿ BÀ ¶Ã åÄ Å Å Å Å 'Å +Å /Å 3Å pÅ ƒÅ ˜Å žÅ #Ë ¯Î &Ï Ñ KÓ ÂÓ Ø ãØ ãÞ ëß ïß Wä ôä øä é óé úé þé Ùê \î /ï ¨ð ññ Öò yô Gõ Nõ Rõ bõ õ °ö r÷ �ø Uù äù ^ú íú  ¡ & f Ì N ¾ Ï Ù à  % S j } ƒ ‰ � — � £ µ » Â Î Ô Ú à ç ó ù     % , 2 8 ? U š w î Ÿ  ? ± ÷   p Q  œ Ç" Ê# % ž( + õ- i. ë. 2 Å4 á7 Z8 í8 æ: Î; –L µR ;S £S GT XT V (V �V öV ]W ÄW +X ”X Y ~Y çY DZ ¬Z [ z[ Ö[ 2\ ª\ ] ‡] ª^ ²^ ª_ »_ O` `` ¹` ça ´b c ðc Fe âe Ef ¤f Vg gg Mh àh bi ti j ±j ¹j Ål Öl jm n rn o ÿo Yp Êp fq Äq (r Ër Ür ^s ¿s Ãs Ðs õs rt vt †t £t Ku Ou `u %v †v Šv —v ¼v -w 1w Aw ^w Kx Ox `x ay ky Øy 9z ›z { x{ å{ F| ¨| H} Y} å} í} Ä~   2 N k � ® Ì #€ +€ ä€ ì€ Ü� ‚ ~‚ ƒ „ „ '„ +„ 4„ :„ >„ B„ H„ ]„ r„ ‡„ Ÿ„ … º… ò… Q† ‡ ‡ ˆ /ˆ ‰ˆ ‰ z‰ Õ‰ BŠ •Š ûŠ •‹ +Œ ;Œ •Œ "� 2� PŽ TŽ cŽ ~Ž "� p� -� †� õ� W‘ Ä‘ ’ •’ l“ ” Д à• è• ð• ö• þ• – – – – – – ˜° C¸ s» ðà Ë qÎ ¤Ð ØÜ ™õ ý ½8  #…/F4:@°DµT(]übñ¯ñWògòèòtóÕóKô™ôŸô¥ôéô=õ’õÿõˆö­ö«÷³÷·÷À÷Æ÷Ï÷Ó÷×÷Û÷ß÷æ÷ÝøðøDúSúÔûÂüÕüÉýØý8@S·É׈wŠy�²Æëÿù  © ² º ¿ à Ç Í ø E Ï ß N¥¡±»(€¡ùeÆ'ˆéJ®~ÖBµ¼ÁÅÉñŸ1A–ê=$Ä0­1 333"3.383=3A3E3S3W3`3d3h3l3‹3â3ß4i6==�@kDÓEëFzIÐL|P>R±X [Êz—}œº‚ƒì‡ ‘’i”…•J—`˜ü™›�h�Ö�þŸ     % + 5 ; A P W ^ j p v ‚ ˆ �   ¤ ® ² D¡Ò²HºmÁÅÊ�Ï¡ÖܸÜcÝ,ÞºÞ�ßQàãà:á‘áyâIãxä;åCêí�í‰òûö¦÷©øùûÔüeýþŽþÿ³ÿÄÿ ²�\õÚ[FóŽ å V ¯  z Ó 9 ’  k Ó ,ˆYÀsä¶¾zÜ5¢�ñ_ÁDª ˆÝQ“×]¡å;£e-#-37;CGo¨áR ! "â"é"^#·#$¸$%ý%è&ï&'×'£(W)])g)u)y))…)š)Ñ)*g*Ö*P+æ+(,|,ê,ÿ,-�-.g0m0v0|0‚0ˆ0Ž0”0Ò0ç0ý0 11 1&11171C1I1O1[1a1g1m1s1z1 4<6³6¿8ì:4>èAE+I´MÐP4W™WZ]¶a^egkºr×z"€†:�“{›¢ã¤:¥c¥J¦‘¦ô¦\§é§M¨±¨©ܪy«ܰ3±�± ²µëµk·é¸¶¹íºO»£½0¿ÕÀùÁxÂ0ÃmÃtÑÃÄÅÅÅ Å(Å.Å2Å8Å>ÅEÅKÅaŪÅáÅ5ÆhÇuÇ…ÇwÈÐÈ8É¿ÉKÊÖÊGËÑË7ÌÍ#Í ÍΘÎ/ÏŠÏÐ0ÒzÒÑÒ5Ó¹Ó�ÔÌÕ…ÖÕÖÝÖêÖòÖúÖ× ××@×W×n×ÚÜ—æ2ç;çAçEçÜéìöììíUïQðFñ>ò›òôÃôûô©õö¦öI÷øöøúnüüýšþæÜìì   f¿ª±Î¥¬É[b5Ç4oÞRà1–û]'Á]³dp"˜ƒŠ¦8?\°#é$ð$õ$û$% %%%%%&%*%Ë+÷/4d7î;8?„I´MAVC[dñimmTrÕug}~~ó�Œ‚�‚ Œ ’+šú›|œ6�u�|�š�ë�ó�³žEŸ‹Ÿ’Ÿ¬ŸóŸûŸ¡ ¡'¡Ì¡/¢š¢¢E¶O·\·i·ï¹«Á~ÈGÌ™Òð×êÚùÝ×ã[èƒëðxó¿ôõ3õqõ×õ‹öëöD÷ª÷øgøGù�ùàù'únúûÎûÐüTý[ýxý‚þáþLÿtÿ®ÿµÿÙÿ)NC‰ÊГñ÷ýþJWƒÉÖ^dÌå|¯!M"U"Y"]"a"§" $’%õ%J.t/Ž8¸9§:Ñ;Ç<ø=øBDÕGðHfR£SµSóTUCV§YýYZZ/ZŒZ�ZÍ[N]¹]¶^º^Ê^ç^�_“_¤_£`§`alaibmb}bšbÃdee-eKe¨e¬efŸf gh hh8hàhähõhói÷iQj¼j¹k½kÍkêk-n…n‰n™n·nÕnDoHo¢oqq&qCqOrSrdrHtLt\tyt¿uãuà~HŒ™² €€þ€¹�Æ�\„…*…9…S…%†2†B†‡®‡´‡½‡Á‡LJχ1ˆ>ˆMˆiˆ…ˆ"‰/‰‰Œ‰œ‰8ŠEŠTŠ´Š»‹È‹Ø‹ÞŒëŒúŒãŽ?�C�©�1’3“•땪–¼—L˜Ƙi™VšH›�œ~�hž{ŸJ ¡¨¡Ò¢•£m¤/¥ÿ¥½¦m§"¨Ù¨’©³ª·«‚¯8°±2±3²é´ô¶S»Þ»à½k¾ ¿àÀÂ"ÃHÄiňƩÇÎÈçʀ̨ÍÌÎEоÑåÒÔ…Õ×ž×Ø°Ø2Ù ÚÚVÚÀÚBÝé†éÊé×éìéMêZêÝêzî6ð„ð�ð¸ñÅñ‚õröö�ö3øùPùTùaùpùóù÷ùú=ûQüUübüqü‹ükýoý|ýŒý|þ€þ�þ�þvÿ§±µ¾ÂÌÐÖàäê#RŠÂÛ?L\{™¸2?ÆÓ?L¢¯ÀÈÕææ¬j% á ñ þ  Ó r v ƒ ‘ ¶ Ô h l y Š v-/(9ælºÂÆâtÍ# qÆ">¼j§ $!x!Í!%"-"1"M"Ë"##y#ö#s$Ç$0%®%&\&Ù&V'ª'(‘(é(?)¼)9*�*â*0+8+<+X+Ö+.,„,-~-Ò-'.u.}.�.�./r/È/E0Â01m1t11…1Ÿ1Ë1à1ê1ð1û12 222 2'2“:;Á;1?‡D EyH@MNµNwSÍSëTJUÒUZV·V¥WµWXžX&Y…YøYyZîZj[�[\Æbˆc¡c©c­c±cµcsd.e‹eÍf9gtgÙg�hÒjgklÍl•myn¯oq9rìr‰s˜s³sUtet#u2uMuvvŸvw w†w¡wx"xˆx£xFyÞy¶zÑz%{Å»A¼®¼;½Ÿ½2¾:¾>¾F¾L¾P¾+¿ÇÀÈ“ÅOÆìÆ|ÇðÇ_ȾÈ�ÉðÉaÊË;Ë{Ë³Ë Ì·ÎvÏ|Ï„Ï�ϓϗϛϋÑ|ÔíÔ8×>ÚÃÚjÛSÝÅßÖãeæXëÉìóîÊògöýàc÷…¤>ÍbèjôGµ†k – Í Ó ý   % ) - 1 M ® ¸ ý Bˆ×&t¹ÿPäž÷R«%ˆÞï xÈ”¥×GÈÙ 9Ž!Ö£örƒcð¥ Z!"x"Ú"?#Ñ#â#:$’$F%•%ý%h&Ó&?'g'£'ï'U(»(U)»)!*¯*,,,,!,,,6,?,C,I,O,Y,],c,g,o,r-|-‚-Ž-’-˜-¡-¥-®-´-Ø-U.>/w/Ë/0s0É01t1Ô1o2ö23Z34@4‚4Ø4K5)6l6Á67l7 808�89Ì9­:;F;œ;&<6<À<Ð<1=�=>¯>÷>:?@? ?¦?@^@½@A}AÞA?B¬BxC(D9DéDúD[EçEïEG”GØGßG>HEH¦HIfIÆI'J‰JJK[KôKLsLÔL`MúM[NµNOmOÍOØORÏRT;YxY|Y„Y6[C[T[]]$]Ö^ã^ô^___Á_`f`¬`ò`jaªaêa,b™bßb%ckcîc.dnd®dðdfe¬eòe8f~f gLgŒgÌg hNh±h÷h=iµiõi5jxjåj+kqk·k:lzlºlúlÚ#Ý–Ý�ÞkßDà!á¨á½â]ãÛæcçèoê—ë¡ì´ïSðò1óô&õ-õJõªõJöRö ù<ûÀûýüƒýMÿ}ª•aÈÎÕýA«ÿTÙ}Ò'}Ü: �  � u { ˜ õ   S ª Ò $ v · ’Òí#>Zu‘¬Èä;°„ !7!i!¥!"_.°.À.Ý.ú./4/Q/n/‹/î/þ/Á0 1161S1«1º12i2y2–2³2Ð2ì2 3(3ƒ3“3ñ394I4f4ƒ4Û4ê4„5”5Q6‚6�6¹6'7¶7p8®8µ8Ò8§9­9n:¬:³:Ñ:;;Ù>?A?¸?‡@A1AmAˆA¥AáAýABDB[B‹B¢BÒBìB C$C_CÖCÅY Z$ZDZ§Z¶ZX[h[_‹_’_–_£_È_…`‰`Ž`ž`ân$oaoØonw¹wÈwäwxx8xTx¯x¿xyhyxy–y´yÑy+z:z™zêzúz{6{T{q{�{¯{ ||{|Ä|Ë|é|}"}@}^}|}Å}Ì}-~q~®~f¨·€€}€é€í€ú€���”�£�f‚‘‚ã‚z‡¯‡̇釈#ˆ]ˆÔˆɉUŠ_Ž�Y�ò�F���ø�±‘â‘þ‘’7’s’é’¡“ì“ò“”1”M”i”…” ”¼”Ù”!•(•ç•–O–Å–¹—D˜Ó˜c™Ö™šš[š›?›z›2œkœ†œ¡œ¼œלòœ �(�—�$ž#¡©¡¿¡†£ž£-¤C¤äP¥D¦Ϧ@§ϧ駨"¨A¨[¨z¨”¨°¨Ϩ騩!©@©Z©v©’©±©Ë©ê©ª#ª;ªlª†ªª8«,¬·¬UÊ�Ê«ÊÇÊäÊËË:ËVËt˱Ë'ÌüÌwÍ«ÍÇÍäÍÎÎ:ÎvÎìÎÁψÑrÒˆÒÕÕ‡ÛŸÛ Ü¯Üêå æ>æ\æzæ˜æ·æôækç%èTèqèáèpé*êkêrê�ê®êöêüê½ëíë ìHì¿ìyí©íÈíî|î6ïfïƒï¿ï6ð´óÞóô�ôHõÿõöYövö”öÐöíö ÷G÷d÷~÷™÷·÷Ñ÷ì÷ ø$øBø\ø�ø¥øóøiù!úNújú¤úýú>ûDûaûÌûéû0ü6üöü&ýDý�ýøý3þtþ{þšþÿPÿVÿGdÕGu�«ç]E`|¸.=k†¡ÝS 9Sl¥ðf ñ b ’ ­ É  { P ×+,J,„,Þ,(-F-d-‚- -¾-Ü-ú-.2.N.j.ˆ.¦.Ä./E4|5Ï5:8V8‘8÷89N9Ÿ;<›<‘=x>¤@2AB—EìECFYGøHÜJôJ·KöK1LÇLSMœO PFP½P²Q>RU¶UñUhV]WéW3Y˜YæY=Z¬ZZ[Ð[u\¼\H^…^Œ^«^ _&_æ_`6`S`p`Œ`¨`ä`=aia¥aþa,bHb„bÞbc,cicàcšdÊdèd$e›eUf‡f¥fÓfg†g@hphžhÚhQiFjàjSkÄkâkl…{…‚…§…î…ô…Œ‡͇Ô‡ò‡ˆ-ˆuˆ{ˆŠ?ŠFŠdŠ‚ŠÉŠÏŠ‘‹ЋØ‹ö‹>ŒDŒ�R���É�@ŽúŽ'�˜�'�ý�s‘ÿ‘q’«’è’f“”x”•†•ĕ˕ð•7–=–ÿ–=—D—b—©—¯— ¨;¨W¨t¨°¨§ªäªëª «‘«—«!¬(¬tάÎéÎ#ÏšÏpЫÐàÐÿÐÑ<ÑxÑNÒ#ÔOÔŒÔÕ½ÕÖ3ÖTÖoÖ�Ö­ÖÈÖéÖ×%×@×^כרÚJÚRÚéÚïÚyÛ€ÛÝRÝYÝ~ݜݻÝHÞNÞ*à`à™àátá±á·áÓá-â^âdâäâããä,ä©äÝäää\å¿åÈåìå)æFæjæ¦æÿæ2ç9ç¹çìçóçÛèé~é²é¹éY_{ÂÈPV/ � Ø Ü ì Y ] l › û DHX½Áв[_oÔØçºTj2HQ g >!T!"2"^#u#ò#$µ$Ë$I%_%²&Ê& ($(Ý(ó(é)ÿ)+1+F,\,I-_-p.†./¢/–0!1¶225Ÿ5,6¢6-758a8ž89Ô<===´=°@ç@#A\AÓA�B¨BWC$DbD·DöDE^EmE*FŠFÅF:GñG(HdH­H"IÙIJJJƒJøJ¯KêK'L@LyLïL§MæM%N>NWN�NO½OPPPÅP{QÁQüQqRÂ^_‚_¯_ê_``aéabBb^b{b·bÓbðb,cHcec¡c½cÚcd2dOd‹d§dÄde9e°eÑijBj°j\kÑkdl«l:mÊmv{¬{ç{T|á|¶},~¡~4{ €š€‚F‚�‚÷‚ëƒv„è„…O…Å…6ŠnЩЋ¦‹Œ’Œ&�m�ý�ŽŽp‘¨‘ã‘Q’à’V“Ì“`”§”7•È•�–½–é–—r—S˜®˜™–™šššO›œ±œ.�¡� žŸ!ŸBŸôŸ Û í ¡Ù¡ì¡ˆ¢ú¢£�£®£ ¤A¤³¤Ô¤H¥ú¥Õ¦I§j§¨)¨̨Þ¨ÿ¨Õ© ªJª„ªûªð«|¬î¬'­f­ ­®Ô®¯.¯P¯µ¯įh°x°‰±·±ã±²l²M³¦³´�´µ”µI¶ü¶«·&¸™¸¹ºº:ºìºÿºÓ»å»¼Ѽä¼€½ò½¾…¾¦¾¿9¿«¿Ì¿@ÀòÀÍÁAÂbÂÃüÃÎÃïÃÅÄýÄ:ÅtÅëÅàÆlÇÞÇÈVÈ�ÈÉÄÉ ÊÊ@Ê�ʬÊHËXËÏÛûÛÜSÜÉÜ�ݬÝ÷ÝPÞËÞâÞ!ß8ßwߎßÍßäß#à:àyà�à á­á¡â,ãâæ ç:çTçnçˆç£ç½ç×çñç è&è”è!é1ì—ì¤ìõìfíçíöíî0òZò–ò´õëõ'öaö÷¥÷¿÷Þ÷ø÷ø1øPøjø…ø£ø½øØøöøù+ùIùcù‚ùœù»ùÕùñùú*úFú‚ú•ûÍû üCüØüMýàý'þ¶þFÿ¹ÿñÿ-gÝ•Í C�Êæ"@…¡½Ù$S·u#™- t $G$e$Õ$d%Y&Ï&c'ª'+-+K+¼+K,@-¶-J.‘.¿3ì3 4G4¾4³5?68B8`8œ89 ;C;K;<%<¯<¶<@OyP�PXQnQ_R{R¶R"S±S¦T2U(m’m¨m(n·nop�pÜqöqG~~~Ó~ „y€�G‚ð‚Yƒ²ƒa… †À‡ˆnŒ—ŒÒŒI�>ŽÊŽ<�i�„�¿�5�í�‘7‘S‘�‘è‘/’r’x’½’Ã’“‡“�“—“Ÿ“§“¯“·“¿“Ǔϓדß“ç“ï“÷“ÿ“””””'”0”8”A”I”R”Z”b”j”r”z”‚”Š”“”›”£”«”³”»”Ô˔Ӕ۔ã”ë”ó”û”• •••$•-•5•>•F•N•W•_•g•o•w••‡•�•—•Ÿ•§•°•¹•Á•ɕҕڕâ•ê•ò•ú•– –––"–*–2–:–B–J–R–Z–b–j–r–{–„–Œ–”–œ–¤–¬–´–¼–Ä–Ì–Ô–Ü–ä–ì–ô–ü–— ———%—-—5—=—E—M—U—]—f—n—v——‡—�———Ÿ—§—¯—·—¿—Ç—Ï—×—ß—ç—ï—÷—ÿ—˜˜˜ ˜(˜1˜9˜A˜I˜Q˜Y˜a˜i˜q˜y˜�˜‰˜‘˜™˜¡˜©˜²˜º˜Ø˘Ó˜ܘä˜í˜õ˜ý˜™™™™&™.™6™>™F™N™V™^™f™n™v™~™‡™�™—™Ÿ™§™¯™·™À™È™Ñ™Ú™â™ê™ò™ú™š ššš"š*š2š:šBšJšRšZšbšjšršzšƒšŒš”šœš¤š¬š´š¼šÄšÌšÔšÜšäšíšöšþš››› ›(›0›8›@›H›P›X›`›h›p›y›�›Š›’›››£›¬›´›¼›Ä›Ì›Ô›Ü›ä›ì›ô›ü›œ œœœ$œ,œ4œ<œEœMœVœ^œgœoœxœ€œˆœ�œ™œ¢œªœ²œºœœÊœÒœÚœâœêœòœúœ� ���"�+�3�;�C�K�S�\�d�l�u�}�…���•�ž�¦�®�¶�¾�Æ�Î�Ö�Þ�æ�ï�÷�žžžž"ž*ž2ž:žBžJžRžZžbžjžrž{ž„žŒž”ž�ž¦ž®ž¶ž¾žÆžΞÖžÞžæžîžöžÿžŸŸŸ!Ÿ)Ÿ1Ÿ:ŸCŸKŸSŸ[ŸcŸkŸtŸ|Ÿ„ŸŒŸ”ŸœŸ¤Ÿ¬Ÿ´Ÿ¼ŸÄŸÌŸÔŸÜŸäŸìŸôŸüŸ     $ , 4 < D L T \ d l t | „ Œ • ž ¦ ® ¶ ¾ Æ ΠÖ Þ æ î ö þ ¡¡¡¡&¡.¡6¡>¡F¡N¡V¡^¡f¡n¡v¡¡ˆ¡�¡™¡¢¡ª¡³¡¼¡Å¡Í¡Ö¡ß¡è¡ð¡ù¡¢ ¢¢¢#¢+¢4¢<¢E¢N¢V¢_¢h¢p¢x¢€¢ˆ¢�¢˜¢ ¢¨¢°¢¸¢À¢È¢ТØ¢à¢è¢ñ¢ú¢£ £££%£.£7£?£H£Q£Z£b£k£t£}£…£�£•£�£¥£­£µ£½£Å£Í£Õ£Ý£å£î£÷£¤ ¤¤¤#¤,¤4¤=¤E¤M¤U¤]¤e¤m¤u¤}¤…¤�¤•¤�¤¥¤­¤µ¤½¤ŤͤÖ¤Þ¤æ¤î¤ö¤þ¤¥¥¥¥&¥.¥6¥>¥F¥N¥V¥^¥f¥n¥v¥~¥†¥Ž¥–¥ž¥¦¥®¥¶¥¾¥Æ¥Î¥Ö¥Þ¥æ¥î¥ö¥þ¥¦¦¦ ¦(¦0¦8¦@¦H¦P¦X¦`¦h¦p¦x¦€¦ˆ¦�¦˜¦ ¦¨¦°¦¸¦À¦ȦЦئà¦è¦ð¦ø¦§§§§ §(§0§8§@§H§P§X§`§h§p§x§�§Ч“§›§¤§­§µ§¾§ǧϧاá§ê§ó§û§¨ ¨¨¨'¨0¨9¨A¨I¨Q¨Y¨a¨i¨q¨y¨�¨‰¨‘¨™¨¡¨©¨±¨¹¨Á¨ɨѨÙ¨á¨é¨ñ¨ù¨© ©©©!©)©1©9©A©I©Q©Y©a©i©q©y©�©‰©‘©™©¡©©©±©¹©Á©É©Ñ©Ù©á©é©ñ©ù©ª ªªª!ª)ª1ª9ªAªIªQªYªaªiªqªyª�ª‰ª‘ª™ª¡ª©ª±ª¹ªÁªɪѪÙªáªéªñªùª« «««!«)«1«9«A«I«Q«Y«a«i«r«z«ƒ«‹«”«œ«¥«­«µ«½«Æ«Ϋ׫ß«ç«ð«ø«¬ ¬¬¬#¬+¬4¬<¬E¬M¬V¬^¬g¬o¬x¬€¬‰¬‘¬š¬¢¬«¬³¬¼¬Ĭ̬Ô¬ܬä¬ì¬ô¬ü¬­ ­­­$­-­5­=­E­M­U­]­e­m­u­}­…­�­•­�­¥­­­µ­½­Å­Í­Õ­Ý­å­í­õ­ý­®®®®'®/®7®?®G®O®W®_®g®o®w®®‡®�®—®Ÿ®§®¯®·®¿®Ç®Ï®×®ß®ç®ï®÷®ÿ®¯¯¯¯'¯/¯7¯?¯G¯O¯W¯`¯i¯q¯y¯�¯‰¯‘¯™¯¢¯«¯³¯»¯ï˯Ó¯Û¯ã¯ë¯ó¯û¯° °°°#°+°3°;°C°K°S°[°c°k°s°{°ƒ°‹°“°›°£°«°³°»°ð˰Ó°Û°ã°ë°ó°û°± ±±±#±+±3±;±C±K±S±[±c±k±s±{±„±�±•±�±¥±®±¶±¾±Ʊαױ߱è±ð±ù±² ²²²"²*²2²:²C²K²T²]²e²m²u²}²…²�²•²�²¦²®²¶²¾²ƲβÖ²Þ²æ²î²ö²ÿ²³³³³'³/³7³?³G³O³X³`³h³p³y³‚³г’³š³¢³ª³²³º³³ʳÒ³Ú³â³ê³ò³ú³´ ´´´"´*´3´;´C´K´S´[´c´k´s´{´ƒ´‹´“´›´£´«´³´¼´Å´Í´Õ´Ý´å´í´õ´ý´µ µµµ%µ-µ5µ=µEµMµUµ^µgµoµxµ�µ‰µ’µ›µ£µ«µ³µ»µõ˵ÓµÛµãµëµóµûµ¶ ¶¶¶#¶+¶3¶;¶C¶K¶S¶[¶c¶k¶s¶{¶ƒ¶‹¶“¶›¶£¶«¶³¶»¶ĶͶÕ¶ݶå¶í¶õ¶ý¶· ···%·-·5·=·E·M·U·]·e·m·u·}·†·Ž·–·ž·¦·®·¶·¾·Æ·ηÖ·Þ·æ·î·ö·þ·¸¸¸¸&¸.¸7¸?¸G¸P¸Y¸a¸i¸q¸y¸�¸‰¸‘¸™¸¡¸©¸±¸¹¸Á¸ɸÒ¸Ú¸â¸ê¸ò¸û¸¹ ¹¹¹'¹/¹8¹A¹I¹R¹[¹d¹m¹v¹~¹†¹޹–¹ž¹§¹°¹¸¹Á¹ʹÒ¹Û¹ä¹ì¹ô¹ü¹º ººº$º,º4º<ºEºMºUº]ºeºmºuº}º…º�º•º�º¥º­ºµº½ºźͺÕºݺåºíºõºýº» »»»%»-»5»=»E»N»W»_»g»o»w»»‡»�»—»Ÿ»§»¯»·»¿»Ç»Ï»×»ß»ç»ï»÷»ÿ»¼¼¼¼'¼/¼7¼?¼G¼O¼W¼_¼g¼o¼w¼¼‡¼�¼—¼Ÿ¼§¼¯¼·¼¿¼Ǽϼ׼߼ç¼ï¼÷¼ÿ¼½½½!½*½3½<½E½N½W½`½i½r½z½ƒ½Œ½”½�½¦½®½¶½¿½Ƚнؽà½é½ò½ú½¾ ¾¾¾%¾.¾6¾>¾F¾O¾X¾`¾i¾r¾{¾ƒ¾‹¾”¾�¾¥¾­¾µ¾¾¾Ǿоؾà¾è¾ð¾ø¾¿¿¿¿ ¿(¿0¿8¿@¿H¿P¿X¿`¿h¿p¿x¿€¿ˆ¿�¿˜¿ ¿¨¿°¿¸¿À¿È¿пØ¿à¿è¿ð¿ù¿À ÀÀÀ"À*À2À:ÀBÀJÀRÀZÀbÀkÀsÀ|À„À�À•ÀžÀ¦À¯À·ÀÀÀÈÀÑÀÙÀâÀêÀóÀûÀÁ ÁÁÁ&Á.Á7Á?ÁHÁPÁYÁaÁjÁrÁ{ÁƒÁŒÁ”Á�Á¥Á®Á¶Á¿ÁÇÁÐÁØÁáÁéÁñÁùÁ ÂÂÂ#Â+Â3Â;ÂCÂKÂSÂ[ÂcÂkÂsÂ{ƒ‹“›£«³»ÂÃÂËÂÔÂÝÂåÂíÂõÂýÂà ÃÃÃ'Ã/Ã7Ã?ÃGÃOÃWÃ_ÃgÃoÃwÃÇÃ�×ßçï÷ÿÃÇÃÏÃ×ÃßÃçÃïÃ÷ÃÿÃÄÄÄÄ'Ä/Ä7Ä?ÄGÄOÄWÄ_ÄgÄoÄwÄćÄ�ėğħįķĿÄÇÄÏÄ×ÄßÄçÄïÄ÷ÄÿÄÅÅÅÅ'Å/Å7Å?ÅGÅOÅWÅ_ÅgÅoÅwÅŇÅ�ŗşŧůŷſÅÇÅÏÅ×ÅßÅçÅïÅ÷ÅÿÅÆÆÆÆ'Æ/Æ7Æ?ÆHÆPÆYÆaÆiÆqÆyƂƊƓƛƣƫƳƻÆÃÆËÆÓÆÛÆãÆëÆóÆûÆÇ ÇÇÇ#Ç+Ç3Ç;ÇCÇKÇSÇ[ÇcÇkÇsÇ{ǃNjǓǛǣǫdzǻÇÃÇËÇÓÇÛÇãÇëÇóÇûÇÈ ÈÈÈ#È+È3È;ÈCÈKÈSÈ[ÈcÈkÈsÈ{ȃȋȓțȣȫȳȻÈÃÈËÈÓÈÛÈãÈëÈóÈûÈÉ ÉÉÉ#É+É3É;ÉCÉKÉSÉ^ÉiÉqÉyÉ�ɉɑəɡɩɱɹÉÁÉÉÉÑÉÜÉçÉïÉ÷ÉÿÉÊÊÊÊ'Ê/Ê7Ê?ÊGÊOÊWÊ_ÊgÊoÊzÊ…Ê�Ê•Ê�ʥʭʵʽÊÅÊÍÊÕÊÝÊåÊíÊøÊË ËËË#Ë+Ë3Ë:ËAËIËQËXË_ËfËnËvË~ˆˎ˖˞˥˭˵˽ËÅËÍËÕËÝËåËíËôËûËÌ ÌÌÌÌ'Ì/Ì7Ì?ÌGÌOÌWÌ_ÌfÌmÌtÌ|̴̜̤̬̼̄̌̔ÌÄÌÌÌÔÌÜÌäÌìÌõÌýÌÍ ÍÍÍ#Í*Í2Í:ÍBÍJÍQÍXÍ`ÍgÍnÍvÍ~Í†ÍŽÍ–ÍžÍ¦Í®Í¶Í¾ÍÆÍÏÍ×ÍßÍçÍïÍ÷ÍÿÍÎÎÎÎ'Î/Î7Î?ÎGÎOÎWÎ_ÎgÎoÎwηÎ�Î—ÎŸÎ§Î¯Î·Î¿ÎÆÎÍÎÔÎÛÎâÎéÎðÎ÷ÎþÎÏ ÏÏÏ%Ï-Ï5Ï=ÏEÏMÏUÏ]ÏeÏmÏuÏ}τϋϒϚϢϪϱϹÏÁÏÉÏÑÏÙÏáÏéÏñÏùÏÐÐÐÐ Ð(Ð0Ð8Ð@ÐHÐPÐXÐ`ÐhÐpÐxЀЈÐ�ИРШаиÐÀÐÈÐÐÐÙÐâÐêÐòÐúÐÑ ÑÑÑ"Ñ*Ñ2Ñ:ÑCÑKÑSÑ[ÑcÑkÑsÑ{уыѓћѤѭѵѾÑÇÑÏÑØÑáÑéÑñÑùÑÒ ÒÒÒ!Ò)Ò1Ò9ÒAÒIÒQÒYÒaÒiÒqÒxÒ€ÒˆÒ�Ò˜Ò Ò¨Ò°Ò¸ÒÀÒÈÒÐÒØÒàÒèÒðÒøÒÓ ÓÓÓÓ&Ó-Ó4Ó<ÓDÓLÓTÓ\ÓdÓmÓvÓ~Ó†ÓŽÓ–ÓŸÓ§Ó°Ó·Ó¾ÓÅÓÍÓÔÓÛÓâÓéÓðÓøÓÔÔÔÔÔ$Ô+Ô2Ô9Ô@ÔHÔPÔXÔ`ÔhÔpÔxÔÔ†Ô�ԕԜԣԪԲԺÔÂÔÊÔÒÔÚÔâÔêÔòÔùÔÕÕÕÕ Õ)Õ0Õ7Õ>ÕFÕNÕVÕ^ÕeÕlÕsÕ{Õ‚Õ‰Õ�Õ˜Õ Õ§Õ®ÕµÕ½ÕÄÕËÕÒÕÚÕáÕèÕïÕ÷ÕþÕÖ ÖÖÖ"Ö)Ö1Ö8Ö?ÖFÖNÖWÖ`ÖgÖnÖuÖ}Ö…Ö�Ö•Ö�Ö¤Ö¬Ö´Ö¼ÖÄÖÌÖÔÖÜÖäÖìÖôÖüÖ× ×××"×*×2×:×BרϷß42 9 *9 N9 ø9 ÿ= XI T Si ²n i} … ò• £ ³ fÀ °Ì sÍ dÎ -Ï ÈÏ `Ð 6Ñ PÒ cÓ ÀÔ Õ ÖÖ cØ ŒÛ æÛ AÜ €Ü Ý /Þ †ß Ìß ,ã †ã 0ä æ è Eè ‚è ±è Ùè Îë øí (î Nî Dð ò �ò ó |ô Põ zõ Ïõ @÷ ½ø óú Vû öý © k î æ ¡ o ¬ Þ 5 E {% & G& ä- ¸1 ·5 °@ Ú@ íb bg æg (h {h —h 0j qj ëj jk âk Al Ål 'm ‡m Ôm n ‚n äo Fp  p q }q ×q &r ~r Ôr Ms ¶s t ³t u ‡u êu Jv ¹v .w �w x ­x y my z iz –z Ãz e{  { “| á| J} ³} ~ …~ î~ [ Ò G€ ®€ � }� ë� H‚ ¦‚ ƒ ƒƒ ùƒ °„ á„ Ã… ÿ… K† ¯† %‡ ~‡ ߇ bˆ ¯ˆ ûˆ 3‰ ˆ‰ ö‰ 6Š �Š >‹ õ‹ cŒ � ¯� Ž mŽ íŽ n� ß� 6� �� å� ?‘ Ÿ‘ â‘ ’ i’ ¢’ M“ �“ ›” û” ^• Õ ö• 3– ¡– á– +— z— Ê— 5˜ ›˜ ™ á™ Oš °š W› ¹› œ Tœ |œ М U� Ž� È� å� ž :ž Šž ½ž �Ÿ ÙŸ   Ì  /¡ ¨¡ à¡ ,¢ š¢ Ú¢ %£ �£ ¤ Ö¤ D¥ ±¥ ¦ ަ þ¦ l§ ŧ *¨ ‚¨ Ÿ¨ © Á© >ª Šª ºª « R« £« ¸« Ý« ”¬ Û¬ ò¬ ˆ­ ê­ ® P® m® ‰® ²® R¯ ò¯ S° ܰ ± б ² ?² Ù² 8³ r³ ¥³ õ³ 0´ “¼ ͼ =½ ƒ½ ƽ ¾ :¾ u¾ ²¾ ú¾ H¿ õ¿ +À ÚÀ ÉÈ `Ë þÎ .Ï fÏ OÑ šÓ ÊÓ Ô >Ø ±Ø ëØ Bß ÷ß @à ¸ä å ¶é ê ¹ê áê ï ãï …ð °ð =ò "ó ºô õ Zõ qõ Ãõ ,ö Aö Úö Ã÷ Òø ¸ù ìù Áú õú g © j ª  8 x L b † × 0 Æ ö ? g È 0 � ¹  P ž Á ÿ X “ X Ü # $ Ë$ % à( X+ 7. ½. ó. d2 5 58 À8 õ8 '; Q; M ãR 'S CS çS "T OT ñT ,U V kV ÒV 9W  W X nX ÛX PY ÃY (Z ˆZ óZ _[ º[ \ †\ ï\ c] ^ H^ 9_ o_ ²_ !` W` £` ba Éa ‰b øb Òc e Íe 0f ˆf çf *g ^g )h ›h Îh 6i ji Ùi j *j @k  k ýk Zl �l Íl ЄйÐÍÐ|ÑdÒfÓ ÔIÔ“ÖØÖJײרrØÓØÙ/Ù�ÙêÙ®Ú4Û½Û7Ü·ÜÝŠÝõÝYÞÃÞšàÖàúà”áïáâÄâüâLã”ãñãVäºä)å¡åæ—æçÐç.èšè¾èéeéÃéêmêÂêëmëÖë.ìšì+í—í?îîîGï§ï(ð�ðŸðñFñ�ñò_ò¹òðò9ócó·óô³ô(õ|õ×õQö�ö¤øåøúLú’üÊü–ýÑýŽÿÜÿ*H|¿œß)xJL�sº¬óà  ž " ˜ × v Ï Žéq©üiâG¨ jË,�î]¾×ˆ9€Ô(z3Ì3"4@4 5©6„=Î@'A¯DF+G»IMÀP‚RõXg[{Ý}Ýû‚Yƒ»ƒ3ˆK‘P’ª”Ä•�—«˜@šS›P�«�À m¡ÿ²uºœÁòÊÉÏÐÖOÜ÷Ü¢ÝmÞùÞéß’à$á{áÖá8âcâ£âºâˆã·äÔäeå”êqí¥íÜò^÷®÷íø=üeü9ýmý·ýþiþÜþXÿ»ÿ|èZ¨^7¶MÀ0²Ï~álã_  , ™ ò Q ½  | Ù I ± o"ž^´Óa�R¾2›{éiÓ8£5‰+Ç(~ÀG‰Íe�1OûU™Ò3 ˜ !c!Ñ!÷!£"Õ"#D# #ø# $%_%¸%æ%•&Ë&þ&š'À'o(’)§)·)ü)Q*·*)+–+Ì+,f,Ì,÷, -h-Õ-‰1]4‹6»6è8;]>B�EkIõMQxWåW¥]b©e²kùr{a€]†y�\“¼›C¢#¥L¥û¥#¦y¦Þ¦:§¶§,¨�¨ö¨l©ΩΪ0«b«¬9¬±u±á± ²¸²³³ª³sµݵ0¶’¶®·Ô·>¹¨¹û¹]º0»ž»λï½>¾S¾ƒ¿ð¿ÁyÁ:ÂaÂÃPÃÃÓÃXÅnÅÅÓÅÆéÆpÇ}ÇÕÇ6ȸÈÉƒÉ Ê˜Ê&Ë—Ë¿ËÌ™ÌÍ+ÍuÍâÍÎ_ΊÎÿÎrÏ×ÏöψÐëÐPѹÑÒ_Ò¬ÒÓƒÓ¢ÓQÔyÔ(ÕŠÕµÕdÖ²ÖSçê@ì"í\î€ï}ðÝðpñhò…ò1óVó)ô>ôìô’õûõWöèö‰÷Yø5ùOú¬ü9þÿ–ä 'P�¨W�ÀUˆ» >qÁô'w±ñ_´1”³ #tÙ=¡ ©C�LÔc�0f™èNãB8%÷+#0«4¡7-<y?ÇINÃVWƒ[SdRjßmVnËn¹rKvÂv7wÒ}V~`‚Þ‚øƒJŒM’všEœeœ�R���«�Õ�ŒžÏžtŸ ŸºŸÝŸ” Р¡®¡¢\¢�¢·¢Ñ¢¢¶W·d·q·»·º.ºÿÁiÂÉ¿Ì!Í4Ó6ØŸØ0Û9Þä›èÃëAð¸óÿôAõSõ¶õ3ö“öÝö.÷�÷ì÷Gøªøù,ùvù¾ùúVú²úðú—û·ûfü”üüü!ýjýÿý^þÄþÿAÿiÿ‘ÿÄÿ`8ä \´Üþ±qR_¨øÑÞ'I‘¶÷Ò« c¤|"M$Ü%�.|/á8À9ú:Ù;=>9CDHøHªR«STûT_UKVÑY Z"Z@ZrZ˜Zü[›]å]Â^Ù^*_p_›_>`Œ`¯`Na˜aubŒbÝbíd%e>e\eŽe´e5fìf6gh*h{hÁhìh�iÜiÿižjèjÅkÜk-lWn‘nªnÈnæn-oPoÑo+pq5q†qéq0r[rþrasTtkt¼t v”£Àò€"€,�t�Á�Î�§„ã„%…2…G…ž…â…-†:†Ú†ü‡9ˆFˆ]ˆyˆ•ˆȈ*‰7‰d‰‡‰”‰̉ Š@ŠMŠ¡ŠF‹€‹ËЋpŒ»ŒæŒóŒ:�Q�Õ�\’^“2•Q•–Ó–è—w˜ð˜–™“š…›Íœ»�¥ž¥Ÿt =¡Õ¡£Ø£�¤r¥/¦§�§e¨ ©Õ©ôªú«°!°аø°$±s±’±]²,µ4·©»5¼6¾¾`¿Ì¿3ÁXÂuÛļÅÛÆüÇ!É<ËÕÌûÍÏšÐÒ8Ó[ÔÚÕW׈×È×ß×:ØÚØÙÙÊÙGÚ˜ÚÛIé´éÒéáéúé,êUêbê ëªîeð®ðñRñ…ñÀñÍñöGözö‡ö'÷lø2ù\ùiù~ù¾ùÿù ú´û ü]üjüü×ü.ýwý„ýØý/þˆþ•þ6ÿ Ds«Ð GTmŒªÉý:GvÎÛ GT‚ª·ñ;�ÐÝ�Ø…ó\ à  à ù  ©  ~ ‹ ¢ Ç å $ t � Ú PrË'rË#0ÔÔ5|Œ xõ\¯0‘ÄÓT¿( … ü c!¶!?" "Ó"â"c#Î#K$²$%"%ƒ%¶%Å%F&±&.'•'è'(f(™(¨())”)*x*Ë*J+«+Þ+í+n,Ù,V-½-.�.ð."/1/²/0š01T162å:;f;´;ñ;s?ÙDE[EÍH”MLNóN´SèS.U¢U*VœVøV@W­WøWnXöXhYÆYéYMZ�ZËZ@[r[â[\ÃcždYeue!fFfÛfGg‚gçg¬hýj’kTl mÓm·níoFqaqer€r+sDses‘s¦st:t]t³tÿt+u@u›uçu v`v‰vÊvévwKwjw”wÌwëwxMxlx–xÎxìx„yµyÈytzšzÄz{à»p¼ݼ!½C½^¾T¿fÁ½ÁgÃÂÅ~Æ+Ç»ÇÖÇ0ÈPÈ¡ÈUÉtÉÓÉ/ÊKÊ÷Ê$ËgˤËòËIÌÅÑÈÔõԄלÚËÚÚÚ“Û€Ýòßä’æ†ëöì ï÷ò”ö>ý  4ÂZá| Ÿ%¨1˜e- U • ? z ˜ D } � å *p·U¢ç0€»Îzå>™øaÁæƒñZ´lœÌ˜Ð¤Èxß¶<ˆâGzyâ>¥oË… :!ò!R"k"¶"Ï"#3#“#Ù#$i$Á$+%o%°%A&¬&'L't'°'Â'2(˜(þ(()˜)þ)d*Ã-!.?.ë./h/µ/ 0]0³0 1^1¶1Y2Á2þ2E3Ó3ð314m4Â4555á56V6«67V7Â7(8r8 9˜9¶9b:‡:í:0;†;ï;.<‰<È<={= >˜>Ê>$?N?o?æ?B@ @ÿ@`AÁA!B…BðBOCÎC0D�DñD=EžEÑEˆFðF+GÁGíGHˆHéHII©I JkJãJRK²KüKKL¶L,MÜM;NžNöNVO®OTPèPHQªQR‡R1SšSøStTÝT8U“UîUIV¤VÿVZWµWXkXÆX!YIZ>[K[\]]ë]Þ^ë^(_Œ_­_ì_`“`Ù`a@a•aÕabFbÆb cRc˜c¹cdYd™dÙd e“eÙefef«fÌf7gwg·g÷g7hhhÞh$iii‹iài j`j’jkXkžkäklel¥lål%mVmºmêm nAn]o»op€pãpUq·qrrrÚr8s©s¨tyuÇu�ƒÔƒ†ˆ׈›šz£6¦w¦W©—©€¬ ¯½±ͳ/µ¸pº½ξŠÀ±Á ÄWÇ’ÇIÈŸÈÖÈÉ8ÉÀÉfÊMËfÌ4Í[Í Î3ÎaδÎÜÎ8Ï`ÏŒÏÛÏÐGÐgЫÐÌÐ5Ñ]ÑÆÑîÑ€Ò­ÓJÕ™Ö¶ÖûÙFÚbÝžÝÎÞ«ß„àbáéáüâ�ãÑãç£çSè±ê,ìàìóï“ðWò¦óÛóô³ôþô<õŒõìõ4ö”ö¹öJù}ûœûüü*ýÎý{ÿ©Ö5j~-ã)‚ê>“°^¼e¾ y  \ z & Y ‰ Ø A { Œ ž · Æ  a   ô 9�áü2Mi„ »×ó&{›Go­!G!y!�!æ!"³"{.¸.Ð.í. /'/D/a/~/›/Á/÷/@0œ0Þ01)1F1c1ˆ1³1ü162q2‰2¦2Ã2à2ü2383^3Œ3Õ34A4Y4v4“4¸4ã4,5_5�5-6^6’6­6É6ý67i7Œ7¡7O8‹8Å8â8”9G:‰:Ã:á:;¸;å>?,?ƒ?£?Q@”@#A^AzA—AÒAîA B5BQB|B˜BÃBßBüBC4CJC¡CÁCoDâYZ6ZVZ|Z¯ZøZ+[a[\O_ž_´_Ù_X`—`:aîn5oLo£oÃoqp‰wÁwØwôwx,xHxdxŠx¸xy;ypy‰y§yÅyâyz3z}z·zòz {){G{e{‚{¡{À{æ{|_|—|Ü|ú|}3}Q}o}�}±}~;~‚~™~G‚°Çí€a€¨€õ€ �-�_�œ�=‚r‚¡‚º‚΂$ƒ†‡¿‡܇ù‡ˆ3ˆHˆŸˆ¿ˆm‰•‰ Š*Š?ЧŠkŽ �h�þ�U�l�Ã�ã�‘‘½‘ò‘’*’G’^’´’Ô’�“¼“””A”]”y”•”°”Ì”é” •Á•ô•#–:–�–°–]—…—ù—˜.˜•˜½˜&™N™¶™â™š/šFšóš ›O›e›œ>œzœ•œ°œËœæœ��7�m�‚�Ø�ú�ž¼ž.¡µ¡ß¡“£¿£9¤c¤™¤®¤¥&¥;¥è¥¦„¦¤¦¹¦ §M§ݧù§¨2¨O¨k¨ˆ¨¤¨À¨ݨù¨©1©N©j©†©¢©¿©Û©ø©ª1ª]ªzª–ª­ª«#«Ыø«l¬Œ¬¡¬­`ÊŸÊ»Ê×ÊôÊË/ËKËgË…ËœËòËÌ¿ÌçÌ%͂ͻÍ×ÍôÍÎ-ÎJÎaηÎ×΄ϬÏêÏ”Ñ~Ò¨ÒÕ>Õ”ÛÀÛöÛ ÜbÜ…ÜšÜHÝöå1æOæmæ‹æ©æÈæßæ6çVçè2èdè�è·èÌè#éFé[é êFêƒê¡ê¿êãê–ëËëþëì3ìŠìªìXí‡íºíÙíðíGîgîïDïwï”ïªïð!ðÏð¿óîóô[ô{ô(õUõöKögö†öÂöÞöýö9÷U÷r÷Ž÷©÷Å÷á÷ü÷ø4øPølø›øÇøÞø4ùTùú-ú^úzú�úåúûTûqûÜûùûüÏüý7ýUýlýÃýãý!þOþŒþ«þÿ=ÿðÿ%Xu«À:R… »Ò(Hõ"UpŒ£ùÆî,H{–±È>ëGaz�æ³Û 2 ¦ Æ Û B o ¢ ½ Ù ð F f  ; y â+:,X,o,Å,ì,9-W-u-“-±-Ï-í- .'.C._.{.™.·.Õ.ë.)/Q4ˆ5Þ5H8‚8�89?9Z9¬;-<ª<�=‡>±@AA,B¤EûERFhGIéJKÃKLLsL“LM(M=M¥M¨OP1PˆP¨PVQ~QóQR(R�RUÅUÜU3VSVW)WžW¾WÓW;X?Y§YõYLZ‚Z—ZîZ[&[›[»[3\\‘\¦\]b^�^¼^ _À_ñ_*`F`c`€`œ`¸`Ï`%aJaya�aæa bˆbˆ‰ŠWŠuГжŠi‹­‹é‹Œ+ŒÞŒ&�~���´� Ž+ŽÙŽ�8�n�ƒ�Ú�ý��À�è�&‘?‘´‘Ô‘é‘Q’’×’ö’ “<“Q“¨“Á“Ø“í“+”D”¹”Ó”ç”ü”d•¡•Ü•–$–×–—U—s—–—I˜¨K¨g¨„¨›¨ñ¨Áªüª«~«Ú« ¬¬€ÎØÎ÷ÎÏeÏ…Ï3Ð[ЙйÐñÐÑ/ÑMÑcÑÒ9ÒwÒ/Ô`ÔwÔÎÔîÔœÕËÕ&ÖDÖbÖ€ÖžÖ»ÖÙÖ÷Ö×3×Q×o׆×Ý×ý׫Ø)ÚcÚÖÚ2ÛeÛÜ+ÝjÝ�Ý­ÝÌÝ5ÞèÞ5à‰à¥àÚàïàEágá�áÇáãá%âKâ¦âÛâã·ãòãmä äÈä6åwåØåæ7æVæ˜æ´æöæç{ç°çØçŒèÇèBéué�é ê7o‹¯ =ïY ½ ä ú - e  Å )Pf™ÉkÜ@g}°à‚Å`Šœ8J>hz] ‡ ™ J!t!†!("R"d"j#–#¨#þ#($:$Á$ë$ý$U%%‘%¿&ë&ý&(E(W(é()%)õ)*1*'+Q+c+R,|,Ž,U--‘-|.¦.¸.ë./V/x/�/:0b0Ö0ö0 1r1Á2@5u5Š5à566U6n6â677~7A8r8‰8à89®9à<=(==Ÿ=M>¼@A1AGAžA¾AlB›BÒBóBGC{CDHD€DäDþDE:EfEF5FšF°FG%GÑGüGTHrH„H˜HíH I¹IäI:JXJnJÃJãJ�K»KL5LNLdLºLÚL‡M³MN3NLNeN{NÑNñNžOÈO%P;P�P°P\Q†QÑQçQPeÌô]€…€í€'‚V‚l‚‚â‚�ƒ·ƒ+„K„`„Ç„ô„#…:…�…°…]†BŠšŠ·ŠíŠ‹Y‹|‹‘‹Ï‹è‹]Œ}ŒõŒ0�B�W�¿�ç�QŽyŽâŽ|‘Ô‘ñ‘'’<’“’¶’Ë’ “"“—“·“/”j”|”‘”ù”!•‹•³•–D–Ÿ–Í–ù–'—Ÿ—�˜ܘY™Ú™]šÞš“›1œQœàœ�s�”�Ð�ô�©žèžŸ2Ÿ–ŸÖŸüŸ[ ´ ã þ b¡»¡á¡@¢p¢¶¢Û¢ £I£n£ž£Ü£¤1¤o¤”¤Ĥ¥'¥Œ¥Ê¥á¥–¦Ŧ§*§Z§¯§ã§¨[¨‘¨Ô¨ï¨E©á©9ªXªoªƪ檔«¼«1¬Q¬f¬άû¬S­t­‹­â­®°®ñ®$¯A¯c¯‰¯½¯°:°q°±>±™±DZó±!²™²{³Ô³S´Ô´Wµص�¶+·K·Ú·ø·k¸Œ¸ȸ측¹à¹º*ºŽºκôºS»¬»Û»ö»Z¼³¼Ù¼8½h½®½Ó½¾A¾f¾–¾Ô¾ù¾)¿g¿Œ¿¼¿ú¿À„ÀÂÀÙÀŽÁ½ÁýÁ"ÂR§ÂÛÂÃKÃ�ÃÄÃßÃ5ÄÑÄ)ÅHÅ_ŶÅÖńƬÆ!ÇAÇVǾÇëÇCÈdÈ{ÈÒÈòÈ ÉáÉÊ1ÊSÊyÊ¥ÊïÊ"ËQËòËÚÛ Ü'Ü>ܔܴÜaÝ�ݼÝÎÝâÝ8Þ\ÞØÞßß.ßYßk߄߯ßÁßÚßàà0à[àmà†à±àÃàöà áaáƒá˜áEâmâáâãã}ãíæ0çJçdç~ç˜ç³çÍçççèè6èjèèÕè÷è é¹é\ìŸì¬ìíítí©íðíÿí î;òjò�ò.ó¿õö5öLöùö&÷³÷Ï÷ì÷ø%øAø^øzø•ø±øÍøèøù ù;ùWùsù�ù¬ùÉùåùúú:úVúmúûzû¡ûùûü.ü„ü¤üý8ý¯ýêýüýþxþ þ ÿ1ÿ™ÿÅÿ;R¨Èu¡ù.„©Úö cY•±Íé f^ÆK`·Úïd„ü7 I ^ Æ %$X$v$«$À$%:%O%ý%%&š&º&2'm''”'ü' +>+\+’+§+þ+!,6,ä, -�-¡-.T.f.{.ã.Ê3ý3424‰4©4W55ô56)6‘6 8S8q8‡8Þ8þ8¬9";\; <h<›<P=KO…P°PdQŽQmR§RÂRøR SdS‡SœSJTrTçTUU„U3mžmÈmþmnjn�n¢nànùn§oÏoDpdpypápêqrR~¬~á~ø~Oo€E€º€Ú€ï€W�R‚ü‚hƒÁƒn…†͇+ˆ{Œ¦Œ½Œ�4�â� ŽŽŸŽ´Ž�H�x�“�ª�� �Í�ù�,‘G‘c‘z‘Б’\’†’ª’\“.2 9 $9 H9 ð9 ÷= PI T Ki ªn a} … ê• £ ü² ^À ¨Ì fÍ WÎ Ï »Ï SÐ )Ñ CÒ VÓ ³Ô óÔ ÉÖ VØ Û ÙÛ Ü zÜ Ý "Þ lß Æß ã ]ã #ä ÿå ýç ?è zè «è Óè Áë Þí "î Hî <ð ò tò õò tô Hõ eõ Éõ 2÷ ¯ø åú Hû èý › ] à Ø “ Z ¦ Ð ' 7 m% ã% A& Ö- ª1 ©5 ¢@ Ç@ äb Yg Ég "h fh ‘h "j kj Ýj \k Ôk 3l ¨l !m jm Îm n tn Öo 8p rp q oq ©q r xr Ær ?s ¨s t ¥t ýt yu Üu ; M ÚR S =S ÙS T IT ãT U V ]V ÄV +W ’W ùW `X ÍX BY µY Z zZ åZ Q[ ¬[ \ x\ á\ U] ^ 5^ 0_ Z_ ¬_ ` Q` •` Ta ›a {b êb Äc e ¿e "f zf Ùf g Xg h �h Èh i di ¼i j j 7k rk Ïk ,l xl Çl m lm Žm Ým Nn Ìn Æo 5p •p Cq ›q r ]r ™r Ír s hs Ås Øs ýs t xt Œt Øt u Qu ìu /v Œv Ÿv Äv Üv 3w Gw Øw x Qx ìx %y £y z oz Öz C{ °{ | || ñ| J} Ž} ¼} x~ Í~  : V s ˜ ¶ Ô € e€ »€ w� Â� ÿ� O‚  O„ d„ y„ Ž„ æ„ ]…  … Ú… &† †† ¹† Ї ²‡ ˆ bˆ õˆ Y‰ ¬‰ Š tŠ ÌŠ t‹ Û‹ -Œ nŒ ÇŒ êŒ $� ¼� í� VŽ hŽ ²Ž àŽ B� Y� £� Û� S� u� ¬� Î� (‘ ‰‘ õ‘ Y’ Ê’ “ ®“ Ó“ æ“ �” �° {¸ «» &Ä MË Ï YÏ IÑ ŒÑ Ý Îõ Pý òm A#º/y4p@éDçTZ].c}nÝqm†²†‡³™ø™Gšh§¯§³²³½N½ž¿Š¿À„ÀcÁC´Â#ÑÃÿÃmÄÛÄIÅ´ÅÆ�ÆÿÆaÇÄÇ6ÈòÈÉɩʜ˗̧ÍêÍ„ÎÔÏùÏ5Ð{гÐÇÐnÑJÒ`ÓðÓCÔ�ÖÏÖ=ץרeØÆØ Ùلټ١Ú'Û°Û)Ü©ÜñÜ|ÝçÝKÞµÞ‡àÍàñà‹áæáþá·âéâCã‹ãÃã(äŒäûä”åØåŠæææÃçè�è¸è éXé¶é ê`êµê ë`ëºë(ì�ìíií+îáî:ïšï ðŠð™ðéð@ñañúñYò�òêò ó]óªó ô­ôõoõÊõ5öŠö‹øßøïùFúyüÄü}ýËý`ÿ®ÿüÿïBc¹‚ÙûJ0y2{Y´’í© û ˜  | Ñ i ¡ �ÜU£î[Ô9šû\½àO°Ñ{å3sÇt3¿34:45›6v=À@ù@¡DFG­IM²PtRçXY[{Ï}Ïí‚Kƒ�ƒ%ˆ=‘B’œ”¶•—�˜2šE›B���º d¡ö²lº“ÁéÊÀÏÇÖFÜéÜ”Ý_ÞëÞÛß„àámáÈá â]âšâ´âzã©äÎä\å†êTíŸíÎòA÷¨÷ßø/ü_üýgý‰ýØý[þ®þ;ÿµÿ Nº=¢P)¨?’"¤ïÁp³^ÕQ ”  ‹ ä C ¯  n Ë ; £ a�õP¦ÍSzI°$màmÛ[Å*•ù/{%ºu·û>€Ä\‡$IîO�É& ‹ Ò 5!Ä!ñ!–"Â"#>#’#ê#’$÷$Q%Š%à%‡&¸&õ&Œ'º'a(Œ)¡)±)ó)D*ª*+‰+Æ+,Y,¿,ñ,-[-È-ƒ1P4o6µ6ß8 ;T>B‚E]IçMQjW×W—]öa›e¤kër{S€O†k�N“®›5¢¥F¥í¥¦p¦Ц,§¨§¨‚¨è¨^© © ª"«\«¬3¬ ±g±Ó±²ª²ì²Q³¤³eµ¯µ"¶d¶ ·η0¹z¹í¹/º"»�»¹»Á½¾M¾u¿¿ ÁKÁ,Â[ÂÃ=ÃzÃÅÃRÅhÅyÅÊÅÆ¾ÆjÇwÇÈÇȪÈÉuÉþÉŠÊˉ˹ËÌpÌÍ%ÍGÍÔÍûÍQÎ�ÎñÎdÏÉÏðÏнÐ"Ñ‹ÑçÑVÒ£ÒýÒuÓœÓCÔsÔÕ\Õ¯ÕVÖ¬ÖMçþé7ìíSîwïtð¯ðgñ_òò$óPó ô5ôãô…õîõJöÛö|÷Lø(ùBúŸü,þ ÿyÞq J‡¢Iz·Gu²ý+h³ái«èV¦#†­fË/“Þ›5�>· U{"S�ÚEÕ2%î+0¢4”7 <k?¹I÷MµVìVu[EdDjÑm(n�n«r=v”v w¶}(~D‚°‚òƒ<Œ?’hš7œ_œ�?�„�¢�Â�~ž¼žkŸ—Ÿ±ŸÊŸ† ½ ¡ ¡¢S¢|¢¤¢Ë¢l¶Q·^·k·�·º(ºñÁ;ÂɱÌóÌ&Ó(ØqØ"Û+Þ ä�èµë3ðªóñô;õMõ¨õö�ö¯ö ÷b÷Þ÷9øœøÓø&ùmùµùúMú¤úêú‰û±ûXüŽüóüýaýñý0þ¶þÿ.ÿVÿ~ÿ»ÿR2×I«Óë¤GLYzÎËØù6ˆ°îÈ¡Û5ži"D$Ï%�.v/Å8º9Þ:Ó;ÿ<ú=!CDþGòH’R¥SóSõTBUEV¯YZZ7ZPZ’Zó[�]Ã]¼^Ð^_N_•_0`j`©`@avaobƒbÏbËde5eSele®e,fÞfg h!hmhŸhæh�iºiùi�jÆj¿kÓkl5n‹n¡n¿nÝn oJoÈo pq,qxq»qrUrðr?sNtbt®tç~mŽ�·Î€€#�P�»�È�š„¿„…,…>…‘…¾…'†4†͆؇3ˆ@ˆTˆpˆŒˆ¤ˆ$‰1‰@‰�‰މÉæ‰:ŠGŠ”Š9‹\‹½‹Ê‹cŒ—ŒàŒíŒ-�K�Ì�S’U“)•K• –Ê–ß—n˜ç˜�™†šx›Àœ®�˜žœŸk 4¡Ì¡ù¢Ê£”¤d¥&¦ò¦”§W¨©Ç©æªì«ø¯°°ò°±e±Œ±T²µ&·›»'¼(¾´¾R¿ž¿%ÁJÂgÃ�Ä®ÅÍÆîÇÉ.ËÇÌíÍÏŒÐÒ*ÓMÔÌÕIׂ׿×Ù×1ØÑØÙÙ¼ÙAÚ�Ú÷Ú%é«éÌéÛéñéêOê\êë¡î\ð¨ðÖð$ñañºñÇñöõ#ötö�ö÷;ø)ùVùcùuù�ùùùú§ûÜûWüdüvüÊüýüqý~ýËýþý‚þ�þ)ÿ>m¥ÊåANdƒ¡ÀÙ4ARÈÕæAN^¤±è2]Ê×sªwå.ùµ q Ÿ ó  › Þ x … ™ ¾ Ü ó n { Ì Bùdš!dš*ÆÎv†kèO¢*u¾ÍG²úW ï V!©!9"„"Í"Ü"V#Á#>$¥$ø$%g%°%¿%9&¤&!'ˆ'Û'ÿ'J(“(¢()‡)*k*¾*D+�+Ø+ç+a,Ì,I-°-.‰.Ô./+/¥/0�0ô0G102É:;8;†;è;f?½D E-EÀH‡M?NæN§SÔS U”UVŽVêV+W§WêW`XèXZY¸YãY0Z{Z�Z&[l[È[\½c•dPeoef@fÒf>gygÞg£hôj‰kGlþlÆmªnào=q[q\rzrs>sPs‹s�sôs%tWt¦têt%u7uŽuÒuvSvƒvÁvãv wBwdw‹wÃwåw xDxfx�xÅxæxwy¯yÂygz”z»z{Ì»g¼Ô¼ ½=½X¾K¿YÁ�ÁZùÅuÆÇ®ÇÐÇ#ÈGÈ”ÈHÉkÉÆÉ"ÊEÊêÊË^Ë›ËåË<̻ѯÔïÔz׃ÚÅÚÔÚŠÛwÝéßúã‰æ}ëíìïîò‹ö5ý“'µMÔoý’›$‹W O Œ 9 q ’ 7 w ‰ Ü !g®ýL™Þ'wµÈmÛ4�ßW¬àxÃO©üR–Æ ~Êú™ÂæmÅ« 6Z×-t K´šØA�z /!ç!G"e"«"É" #-#y#Ó# $c$»$ý$i%œ%3&ž& 'F'n'ª'¼'$(Š(ð(")Š)ð)V*½-.9.Þ. /_/¨/ü/P0¦0ü0Q1©1L2¥2ø283Æ3ê3(4d4µ4 5/5Ô56M6ž6ó6I7¥7"8e8ü8‹9°9U:�:à:';y;Ò;(<l<Â<=n=ü=‹>·>?E?\?Ù?5@’@ñ@RA³ABwBâB!C±C*DrDëD/E�E¾EzFÂFG¸GäGüGzHÛH;I›IüI]JÅJLK”KöK=L¨LMÎM0N“NëNKO£OJPºPQ|QÖQ|R&SlSÊSiT¯T UeUÀUVvVÑV,W‡WâW=X˜XóX!Z8[E[ñ[]]Ã]Ø^å^_ƒ_§_ã_ `Š`Ð`a:aŒaÌa b2b½bcIc�c³cdPd�dÐdödŠeÐef\f¢fÆf.gng®gîg.hThÕhi`i…i×ijWj~j kOk•kÛkÿk\lœlÜlmBm±mÕmn8nSo�o pRpÙp'q­qèqhr¬r.s{s•tauÁuiƒ΃nˆш’šq£¦q¦:©‘©r¬þ®¯±¿³!µ ¸bº½À¾|À£ÁÿÃIÇÇ;È}ÈÐÈÉ2ɲÉXÊ?ËXÌ&ÍUÍüÍ-ÎXΦÎÖÎ*ÏZσÏÍÏýÏ>ÐaÐ¢ÐÆÐ'ÑWѸÑèÑwÒ¤Ó<Õ‹Ö°ÖãÙ@ÚJݘÝÀÞ�ßvàTáÛáîâ�ãËãþæ•çEè£êìÒìåï…ðIò˜óÕóþó¥ôëô3õ~õÞõ!ö†ö³ö<ùoû–ûòûü!ýÀýrÿ Í,dxÝ uÝ1†ªüQ¯X± l ú O t  F € Ë ; u † • ± À  W š ê 3—Øó)D`{—²Îê m•9i¤!>!p!Š!×!"¤"f.².Ç.ä.//;/X/u/’/¬/ñ/10n0É0 1 1=1Z1s1­1í1!2k2€2�2º2×2ó23/3I3†3Æ3ù3;4P4m4Š4£4Ý45J5‡56X6‰6¤6À6÷6 7Y7†7›7?8x8¼8Ù8�97:v:º:Ø:ò:¨;ß> ?&?s?�?A@Ž@AUAqAŽAÉAåAB,BHBsB�BºBÖBóBC+CDC‘C»C_DÍYZ-ZMZgZ©ZéZ[[[ò[ _˜_«_Ð_)`‘`*aèn,oFo“o½oaptw»wÏwëwx#x?x[xux²xòx&yjy€yžy¼yÙyòy-zmz¢zìz{ {>{\{y{˜{·{Ñ{|O|„|Ó|ñ| }*}H}f}„}ž}ÿ}5~y~“~7mª¾Ø€R€†€ï€�$�=�–�.‚l‚˜‚´‚È‚ƒ€‡¶‡Ó‡ð‡ ˆ*ˆBˆ�ˆ¹ˆ]‰�‰ú‰$Š9Š—ŠeŽ�_�õ�L�f�³�Ý��‘·‘é‘’!’>’X’¥’Î’r“©“ù“”8”T”p”Œ”§”Ôà”ú”²•î•–4–�–ª–N——ê—˜(˜†˜·˜™H™§™Ü™ š&š@šäš›F›_›œ8œqœŒœ§œœÝœøœ�.�g�|�É�ô� ž­ž(¡¬¡Ö¡Š£¶£0¤Z¤“¤¨¤õ¤ ¥5¥Ù¥ ¦u¦ž¦³¦§G§Ô§ð§ ¨)¨F¨b¨¨›¨·¨Ô¨ð¨ ©(©E©a©}©™©¶©Ò©ï© ª(ªTªqª�ª§ªôª«Á«ò«]¬†¬›¬ù¬ZʖʲÊÎÊëÊ Ë&ËBË^Ë|Ë–ËãË Ì°ÌáÌÍ|ͲÍÎÍëÍÎ$ÎAÎ[ΨÎÑÎuϦÏáÏŽÑuÒŸÒ Õ5Õ‹Û·ÛðÛÜRÜÜ”Ü8Ýðå(æFædæ‚æ æ¿æÙæ&çPçôç,è[èxè±èÆèé@éUéùé3êzê˜ê¶êÐê†ëÅëõëì-ìzì¤ìHí�í±íÐíêí7îaîï>ïnï‹ï¤ïñïð¿ð¹óåóÿóLôuôõOõöBö^ö}ö¹öÕöôö0÷L÷i÷…÷ ÷¼÷Ø÷ó÷ø+øGøcø’ø¾øØø%ùNùòù'úUúqú‰úÖúûKûhûÓûðû üÀüþü.ýLýfý³ýÝýþ<þƒþ¢þÿ*ÿàÿOl¥º4L|—²ÌBæLgƒ�ê·è#Br�¨Â8Ü>XqŠ×¤Õ , — À Õ 3 i ™ ´ Ð ê 7 `  5 p Ü+1,O,i,¶,æ,0-N-l-Š-¨-Æ-ä-..:.V.r.�.®.Ì.å. /K45Õ5?8y8”8ü869Q9£;$<¡<”=~>¨@8A#B›EòEIF_GþHàJ KºKüKLcL�LøL"M7M•M¢OP+PxP¢PFQxQãQ R"R€RU¼UÖU#VMVñV#WŽW¸WÍW+X9YžYìYCZ|Z‘ZÞZ [ [‹[µ[\y\‹\ \þ\O^”^³^ú^°_ë_!`=`Z`w`“`¯`É`aDapaŠa×ab3bObib¶bæbc4cNc›cÅcid¢dÒdðd eVe€e$f]f�f­fÃfÛfôfAgkghHhxhŽh¦h¿h i6iÚi jwj›j¯jÄj"k[kËkl$lCllœl»l÷lmMmbm¯mÜmñm•nÇn2o\oqoÏo6v‹v©vâv÷vDwow„wïwx-x‹x¼xyMy¬yây8zsz�z­zèz{<{Q{ž{É{Þ{I|r|‡|å|}v}§}~b‚·‚Ղꂃ2ƒƒ¡ƒ·ƒE…Š…¯…È…~†“‡܇ú‡ˆ5ˆOˆ‰ŠNŠlŠŠŠ£ŠY‹š‹à‹þ‹ŒÎŒ �u�”�®�û�%ŽÉŽ�/�h�}�Ê�÷� �°�â�‘9‘¤‘Αã‘A’y’Î’í’“6“K“˜“»“Ò“ç“"”>”©”Í”á”ö”T•ޕӕø•–Ç–—L—j—ƒ—9˜¨B¨^¨{¨•¨â¨®ªóª«k«Ê«ú«²¬zÎÏÎîÎÏUÏÏ#ÐUÐ�гÐèÐÑ&ÑDÑ]ÑÒ3ÒnÒ)ÔWÔqÔ¾ÔèÔŒÕÅÕÖ;ÖYÖwÖ•Ö²ÖÐÖîÖ ×*×H×f×€×Í×÷×›ØÚZÚÃÚ"ÛRÛ ÜÝa݆ݤÝÃÝ"ÞØÞ/à€àœàÔàéà6áaá|á¾áÚáâ8â—âÈâðâ¨ãßã^ä�äµä'ådåÏåæ.æMæ�æ«æãæ çlç�çÅç}è´è3ébéŠéüé$f‚œû*à7 ´ Þ ñ  _ ÷ £  J]wÃ[º7atŽÚr¿W�–/D5_tT ~ “ A!k!€!"I"^"a#�#¢#õ#$4$¸$â$÷$L%v%‹%¶&â&÷&(<(Q(à( ))ì)*+*+H+]+I,s,ˆ,L-v-‹-s.�.².å.ú.G/r/‡/+0\0Ç0ð01c1»275o5„5Ñ5ü56L6h6Ó6ü67o7;8i8ƒ8Ð8ú8ž9Ú<="=o=™==>¶@ A(AAAŽA¸A\B•BÌBÛBCuCæCBDkDÛDøD E%E`E÷E/F‘FªF÷FGÃGöGKHiH~H’HßHI«IÞI1JOJhJµJÝJ�KµKL,LEL^L«LÔLxM­M N*NCN\NuNÂNëN�OÂOP5P‚PªPNQ€QÈQáQ.RVRúRÇ^ _‰_¶_Ï_`E`é` aïa*bFbdbŸb»bÙbc0cNc‰c¥cÃcþcd8dsd�d­dèdeeke•e9fÖi+jGj€j•jâj k"k�k¶klhlzl�lílm~m¯mn{{Î{ì{$|9|†|±|Æ|j}›}Ö}ò}]~†~å~8J_½îN€€Þ€!‚M‚f‚³‚Ü‚€ƒ±ƒ„E„Z„¸„î„…4…�…ª…N†<БЮŠçŠüŠI‹v‹‹‹Æ‹â‹MŒwŒÖŒ*�<�Q�¯�á�AŽsŽÒŽv‘Ë‘è‘!’6’ƒ’°’Å’““‡“±“”d”v”‹”锕{•­• –>–––Ä–ð–—–—x˜Ó˜I™Ê™MšΚƒ›(œKœלúœc�Ž�Ç�î�™žÓžŸ)Ÿ†ŸÁŸöŸK Ÿ Ý õ R¡¦¡Û¡0¢j¢­¢Õ¢£@£h£•£Ó£û£(¤f¤ޤ»¤ù¤!¥|¥Ä¥Û¥†¦¿¦ü¦$§Q§Ÿ§Χ¨R¨|¨Ψæ¨5©Û©0ªOªiª¶ªàª„«¶«!¬K¬`¬¾¬õ¬J­k­…­Ò­ü­ ®Ü®¯8¯Z¯t¯·¯÷¯%°k°±8±�±¾±ê±²�²r³˳C´Ä´Gµȵ}¶"·E·Ñ·ò·[¸†¸¿¸æ¸‘¹˹ º!º~º¹ºîºC»—»Õ»í»J¼ž¼Ó¼(½b½¥½ͽú½8¾`¾�¾˾ó¾ ¿^¿†¿³¿ñ¿ÀtÀ¼ÀÓÀ~Á·ÁôÁÂIÂ—ÂÆÂ ÃBÃlþÃÖÃ%ÄËÄ Å?ÅYŦÅÐÅtƦÆÇ;ÇPÇ®ÇåÇ:È[ÈuÈÂÈìÈ�ÉÌÉÊ(ÊJÊdÊŸÊßÊ ËKËâËÔÛÜÜ8Ü…Ü®ÜR݇ݳÝÈÝÜÝ)ÞVÞÏÞúÞß%ßPßeß{ߦ߻ßÑßüßà'àRàgà}à¨à½àðàáRá}á’á6âgâÒâûâãnãçæ'çAç[çuç�çªçÄçÞçøçè-èdèyèÆèñèéªé8ì™ì¦ìúìíkí…íêíùí‘î5òaò{òó¹õö,öFöêö ÷ª÷Æ÷ã÷ÿ÷ø8øUøqøŒø¨øÄøßøûøù2ùNùjù‡ù£ùÀùÜùøùú1úMúgú ûLû›ûðûü(üuüžü ý2ý‘ýäýöý þiþšþúþ+ÿŠÿ¿ÿ2L™Âf›ð(u£ÑíTFŒ¨ÄàøWX½ EZ§ÔéT~Ý1 C X ¶ $O$m$¥$º$%4%I%í%&Š&´&'g'y'Ž'ì'+5+S+Œ+¡+î+,0,Ô,-q-›-ú-N.`.u.Ó.Ä3ô34,4y4£4G5y5ä56#6�68J8h8�8Î8ø8œ9;S;ù;X<ˆ<@=EO|P§P[Q…QdRžR¹RòRSTS�S–S:TlT×TUUtU-m•m¿møm nZn‡nœn×nón—oÉo4p^pspÑpáqrL~£~Ø~ò~?i €?€ª€Ô€é€G�L‚ó‚_ƒ¸ƒe…†ć"ˆrŒ�Œ·Œ�.�Ò�ŽoŽ™Ž®Ž �B�o�Š�¤�ñ��¾�ó�#‘>‘Z‘t‘Á‘ï‘S’}’—’M“62 9 ,9 P9 ü9 > \I T Wi ¶n m} … ö• £ ³ jÀ ´Ì wÍ hÎ 1Ï ÌÏ dÐ :Ñ TÒ gÓ ÄÔ Õ ÚÖ gØ �Û êÛ EÜ ‚Ü Ý 3Þ ¯ß 0ã Šã 4ä æ è Gè †è ³è Ûè Òë î Pî Hð #ò …ò ó €ô Tõ £õ E÷ Âø øú [û ûý ® p ó ë ¦ ƒ ã : J €% (& é- ½1 ¼5 µ@ Ü@ òb gg ýg †h 5j sj ðj ok çk Fl m §m %n ‡n éo Kp ¥p q ‚q Üq :r Ùr Rs »s t ¸t u Œu ïu Ov ¾v 3w ”w x ²x y ry z nz ªz j{ ´{ æ| O} ¸} !~ Š~ ó~ ` × L€ ³€ � ‚� ð� M‚ «‚ ƒ ˆƒ þƒ µ„ ã„ È… † P† ´† *‡ ƒ‡ ä‡ ‚ˆ ‰ G‰ Š †Š C‹ ú‹ hŒ � ´� Ž rŽ òŽ s� ä� ;� ’� ê� D‘ ¤‘ ’ n’ ¤’ R“ �“  ” • c• È• – ¸– 0— — Ï— :˜  ˜ ™ æ™ Tš µš \› ¾› œ hœ Õœ Z� �� Í� ê� ž ?ž �ž ¿ž ¢Ÿ ÛŸ   Ñ  4¡ ­¡ ô¡ ±¢ *£ •£ %¤ Û¤ I¥ ¶¥ %¦ “¦ § q§ ʧ /¨ ‡¨ ¡¨ © Æ© fª ¼ª « v« ½« â« ´¬ ÷¬ �­ ï­ ® U® r® Ž® ´® W¯ ÷¯ X° á° ± Õ± ² D² Þ² =³ t³ ª³ ú³ 2´ ˜¼ ϼ B½ ˆ½ ˽ ¾ ?¾ z¾ ·¾ ÿ¾ J¿ ú¿ -À ßÀ ËÈ eË Ï hÏ TÑ ¯Ó Ô CØ ÔØ Äß Eà Íä Íé Íê ï èï ™ð Bò 'ó ¿ô ,õ võ Èõ 1ö Cö ßö È÷ ×ø Ïù Øú ~ o ¯  : } N d ˆ Ü 5 Û D i Í 5 ¤  U £ ß ] ˜ ] á # $ ß$ å( ]+ <. Ô. i2 5 :8 ×8 ,; S; M èR 2S ìS 6T öT @U pV ×V >W ¥W X sX àX UY ÈY -Z �Z øZ d[ ¿[ \ ‹\ ô\ h] ^ J^ >_ ƒ_ 8` ¨` ga Îa Žb ýb ×c e Òe 5f �f ìf Jg .h  h Ðh Mi ði ,j Ek ¥k l _l ¡l Sm Ám n an ßn Ùo Hp ¨p Vq ®q r pr Âr -s žs æs t Wt št ët 7u ÿu ev ­v Òv w Uw ëw 7x ÿx :y ¶y !z ‚z éz V{ Ã{ -| �| %} ¡} Ñ} ‹~ â~ * H d � ¦ Ä â € x€ Ѐ Š� Ê� ‚ b‚ Ö‚ W„ l„ �„ –„ ò„ i… ¨… è… 8† ˜† Ά ˜‡ å‡ tˆ ‰ k‰ ¾‰ &Š †Š ÞŠ †‹ Œ €Œ ÙŒ � Î� 6Ž vŽ ÄŽ èŽ P� g� ¶� � a� }� º� Ö� ;‘ œ‘ ’ l’ Ý’ @“ Á“ Û“ î“  ” �¸ ½» 8Ä _Ë (Ï ŒÏ [Ñ ¿Ñ "Ý áõ cý € T#Í/Œ4ƒ@üDúTm]Ac�nðq€†å†4‡Æ™+šzš{§â§Ʋ3³#½•½!¿�¿À—ÀvÁVÂÇÂ6äÃÄ€ÄîÄ\ÅÇÅ.Æ ÆÇtÇ×ÇIÈÉÜɼʯ˪̺ÍòÍ’ÎçÏÐCЉлÐÏÐ�Ñ9ÓÔ•ÖÝÖO׷רwØØØÙ1Ù’ÙïÙ³Ú9ÛÂÛ<ܼÜ$Ý�ÝúÝ^ÞÈÞœàÛàÿà™áôáâÉâþâQã™ãöã[ä¿ä.å¦å æœæçÕç3èŸèÀèéjéÈéêrêÇêërë ìŸì0íœíóîLï¬ïjð¡ð+ñ”ñ+òÎò>óeó¼óôµô-õ�õÜõnö¿øú¤ü¨ý“ÿáÿ/ް.}^`‡À×   ' µ { Ô “î†nçL­oÐ1’óbÃÙ�…Ù-|3Ñ3'4B45®6‰=Ó@,A´DF0GÀIMÅP‡RúXl[{â}âƒ^ƒÀƒ8ˆP‘U’¯”É•’—°˜EšX›U�°� r¡³zº¡Á÷ÊÎÏÕÖTÜüܧÝrÞþÞîß—à)á€áÛá=âeâ¨â¼â�ã¼äÖäjå™êˆíáòŠ÷òøBügüPý¼ý þnþáþ—ÿ�í„c<»RÅ5·"Ôƒæqèd Ç 1 ž ÷ V   � Þ N ¶ t'£c¹Õf�WÃ7 €înØ=¨ 7Ž-Ì-ƒÅ LŽÒj�6QWž×8 � !h!Ö!ù!¨"×"$#F#¥#ý#¥$ %d%½%è%š&Í&'Ÿ'Â't(”)©)¹)*V*¼*.+›+Î+,k,Ñ,ù,-m-Ú-‹1b4 6í8;b>B”EpIúMQ}WêWª] b®e·kþr{f€b†~�a“Á›H¢(¥N¥¦%¦~¦ã¦?§»§1¨•¨û¨q©Ó©Óª5«d«¬;¬ ±z±æ± ²½²³„³¬³xµâµ5¶—¶³·Ö·C¹­¹ºbº5»£»Ó»ô½C¾U¾ˆ¿õ¿Á~Á?ÂcÂÃRÃˆÃØÃZÅpÅ�ÅØÅ$ÆJÇÚÇ;ȽÈɈÉÊ�Ê+ËœËÁËÌïÌzÍçÍÎdÎ�ÎÏwÏÜÏøÏ�ÐðÐUѾÑÒdÒ±Ò ÓˆÓ¤ÓVÔ{Ô-Õ�Õ·ÕiÖ´ÖUç êEì'íaî…ï‚ðâðuñmò‡ò6óXó.ôCôñô—õö\öíöŽ÷^ø:ùTú±ü>þÿÁ„ ,R•ª\�ÅZŠÀ@vÆö,|³öd¹6™µ(yÞB¦®H¢Qëhƒ5hžíSèG:%ü+(0°4¦72<~?ÌI NÈVWˆ[XdWjäm[nÐn¾rPvÇvÞä èÈëFð½óõCõUõ»õ]öâö3÷•÷ñ÷Lø¯øù.ù{ùÃùú[ú·úòúœû¹ûkü–üý#ýoýþcþÉþÿCÿkÿ“ÿÉÿe:é^»á¶­–,K–¸üÔ­h¦~"R$á%S/—9°;Õ=òCÏHySÉTVÜY'ZEZ}Z\ ]›^Þ^/_{_C`—`SaNb‘bâbødCeae™e:fñfìg/h€hÌh”içi£jžkák2lbn¯nÍnën8oÖo÷p:q‹qîq;rs-tptÁt}¥Å€3�°�¬„…L…£…†߆ˆbˆ~ˆšˆ‰v‰Ó‰,ЦŠK‹ª‹uŒÍŒ?�S�Ü�c’e“9•S•–Ø–í—|˜õ˜›™˜šŠ›ÒœÀ�ªžªŸy B¡Ú¡£Ý£¢¤w¥4¦§¢§j¨©Ú©ùªÿ«°#°Õ°ú°)±x±”±b²1µ9·®»:¼;¾Ǿe¿Ñ¿8Á]ÂzàÄÁÅàÆÈ&ÉAËÚÌÎ$ÏŸÐÒ=Ó`ÔßÕ\׊×Í×á×?Øߨ ÙÙÏÙIÚšÚÛ[é»éãéÿé>êë¯îjð°ð ñWñ¯ñöaö,÷Øø9ùƒùèù¹û7ü„üÜüXýÝýiþ;ÿ Fu­Òr‘¯Î,À9–ö@°†ÝŠøa È „ à ® L § Ì ê S ß U wúwÙÖ_Ž}úa´2¦ÕYÄ- Š !h!»!A"µ"ä"h#Ó#P$·$ %$%˜%Ç%K&¶&3'š'í'({(ª(.)™)*}*Ð*L+À+ï+s,Þ,[-Â-.‘./3/·/"0Ÿ01Y182ú:k;¹;ö;x?îD`EÒH™MQNøN¹S3U§U/V¡VýVeWýWsXûXmYËYëYdZÐZT[ö[Åc£d^ewe&fHfàfLg‡gìg±hk—k[lmÚm¾nòoKqcqjr‚r0sFsos«stDt¸t uEu uñuev‹vÏvëvwPwlw™wÑwíwxRxnx›xÓxîx‰y·yÊyyzœzÉz{˜¼ô¼5½`¾Y¿kÁÂÁlÃÇŃÆ0ÇÀÇØÇ5ÈUȦÈZÉyÉØÉ4ÊMÊüÊ&ËlË©Ë÷ËNÌÇÑÚԆ׮ÚÜÚ˜Û…Ý÷ßä—æ‹ëûì%ïüò™öCý¥9Ç_æ�¤*­6�j2 W š A  š I  ‘ ê /u¼ Z§ì5…½Ðç@›cË…ö\¶ €Î¬¦Êzó¸>�ä[~çC§ tЇ �>Ì>+?S?q?ë?G@¥@AeAÆA&BŠBõBTCDÇDBE£EÓE�FõF-GÈGòGH�HîHNI®IJpJ(KÒKPL»L1MáM=N NøNXO°OVPíPMQ¯Q R‰R3SŸSýSvTâT=U˜UóUNV©VW_WºWXpXËX&Y[Ô\¦^‘_¯_ñ_˜`Þ`$aBašaÚabËbcWc�c»cd^dždÞd˜eÞe$fjf°fÎf?.?ˆ?¥?V@–@(AeAAœAÙAóAB:BVB�B�BÈBäBCC9CLC¦CÃCtDîYZ;Z[Z–ZýZF[\j_¹_Þ_t`?aðn:oNo¨oÅovp“wÝwùwx1xMxix�xyFyŽy¬yÊyçyz‚zÂz{.{L{j{‡{¦{Å{ú{d|™|á|ÿ|}8}V}t}’}³}~=~‡~›~LŒÌÿf€É€�2��B‚t‚¦‚¼‚Ђ)ƒˆ‡ćá‡þ‡ˆ8ˆJˆ¤ˆÁˆr‰—‰Š,ŠAЬŠmŽ%�m��Z�n�È�å�–‘¿‘÷‘’/’L’`’¹’Ö’†“¾“”#”F”b”~”š”µ”Ñ”î”•Æ•ö•(–<–•–²–b—‡—þ—˜0˜š˜¿˜+™P™»™ä™š4šHšøš"›T›g›œ@œœšœµœМëœ�!�<�o�„�Ý�ü�žÁž0¡º¡ä¡˜£Ä£>¤h¤›¤°¤ ¥(¥=¥í¥¦‰¦¦¦»¦%§O§â§þ§¨7¨T¨p¨�¨©¨Ũâ¨þ¨©6©S©o©‹©§©Ä©à©ý©ª6ªbªª›ª¯ª«%«Õ«ú«q¬ެ£¬ ­bʤÊÀÊÜÊùÊË4ËPËlËŠËžË÷ËÌÄÌéÌ*Í„ÍÀÍÜÍùÍÎ2ÎOÎcμÎÙΉϮÏïϖуҭÒÕCÕ™ÛÅÛøÛ Üg܇ܜÜMÝøå6æTæræ�æ®æÍæáæ;çXç è4èiè†è¹èÎè(éHé]éêHêˆê¦êÄêåê›ëÍëì!ì5ì�ì¬ì]í‰í¿íÞíòíLîiîïFï|ï™ï¬ïð#ðÔðÁóóóô`ô}ô-õWõöRölö‹öÉöãö÷@÷Z÷w÷“÷®÷Ê÷æ÷øø9øUøqø øÌøàø9ùVùú/úcúú‘úêúûYûvûáûþûüÔüý<ýZýnýÈýåý&þQþ‘þ°þÿ?ÿõÿ']z­Â<TŠ¥ÀÔ-Jú$Zu‘¥þËð1J€›¶Ê#@ðLf’ë¸Ý 4 « È Ý G q §  Þ ò K h  = ~ ä+A,],q,Ê,î,>-\-z-˜-¶-Ô-ò-.,.H.d.€.ž.¼.Ú.í../S4�5ã5M8‰8¢8 9F9_9±;2<¯<¢=Œ>¶@FA1B©EFWFmG IîJKÈK LLxL•L M*M?MªMªOP3P�PªP[Q€QøQR*R•R UÊUÞU8VUVW+W£WÀWÕW@XAY¬YúYQZ„Z™ZóZ[([ [½[Y\“\¨\]d^¢^Á^_Å_ó_/`K`h`…`¡`½`Ñ`*aLa~a’aëa bAb]bqbÊbîb$cBcVc°cÍc~dªdàdþdekeˆe9fef�f»fËféfüfVgsg$hPh†h–h´hÇh!i>iïijŒj£j·jÌj7kckÙkl2lQl�lªlÉlm"mUmjmÄmämùmªnÏnGodoyoäo>v›v·vêvÿvXwwwŒwx x5xŸxÄx0yUyÀyêyFzƒz�z»zøz{D{Y{²{Ñ{æ{]|z|�|ù|}Š}¯}~j‚Ç‚ã‚ò‚%ƒ:ƒ“ƒ©ƒ¿ƒZ…˜…½…Ý…“†¨‡ê‡ˆ%ˆCˆdˆ‰Š\ŠzŠ˜Š¸Šn‹¯‹î‹ Œ-ŒãŒ(�…�¢�¶�Ž-ŽÞŽ �=�p�…�ß�ÿ��Å�ê�+‘A‘¹‘Ö‘ë‘V’�’Þ’û’ “>“S“­“ÓÚ“ï“0”F”¾”Õ”é”þ”i•£•á•–&–Ü–—Z—x—˜—N˜¨P¨l¨‰¨�¨ö¨ê« «€«ß«¬Ǭ‚ÎßÎüÎÏjχÏ8Ð]ОлÐöÐÑ4ÑRÑeÑÒ;Ò|Ò1ÔeÔyÔÓÔðÔ¡ÕÍÕ+ÖIÖgÖ…Ö£ÖÀÖÞÖüÖ×8×V×t׈×â×ÿ×°Ø+ÚhÚØÚ7ÛgÛÜ-ÝoݔݲÝÑÝ7ÞíÞ7à�àªàÜàñàJáiá‘áÌáèá'âMâ«âÝâã¼ãôãrä¢äÊä;åyåÝå"æ<æ[æŸæ¹æøæ ç€ç²çÚç‘èÉèGéwéŸéê9t�±?ôd Ä ÿ H  Ð 0k¬pçG‚ÇÇe�ž=LCm|b Œ › O!y!ˆ!-"W"f"o#›#ª#$-$<$Æ$ð$ÿ$Z%„%“%Ä&ð&ÿ&(J(Y(î()')ú)$*3*,+V+e+W,�,�,Z-„-“-�.«.º.í./[/z/�/?0d0Û0ø0 1w1Ã2E5w5Œ5å566Z6p6ç677ƒ7C8w8‹8å89³9â<=*=„=¡=R>¾@A6AIA£AÀAqB�BÔBøBLC}CDJD‹DëDEME F7FŸF²F G'GÖGþG[HwH†HšHòHI¾IæIAJ]JpJÈJåJ”K½KL:LSLfL¿LÜLŒMµMN8NQNjN}NÖNóN£OÊO*P=P•P²PaQˆQÖQéQAR^R SÏ^_—_Ä_×_0`M`ý`(aýa:bTbrb¯bÉbçb$c>c\c™c³cÑcd(dFdƒd�d»døde&e€e�eNfÞi;jUjˆj�jöjk*k¡k¾kHl‚l—lm&m’m·m"nƒ{Þ{ú{,|A|š|¹|Î|~}£}ä}ú}q~Ž~RgÑöb€‡€ò€)‚[‚n‚ǂ䂔ƒ¹ƒ0„M„b„Ì„ö„(…<…•…²…b†DСмŠïŠ‹^‹~‹“‹Ô‹ê‹bŒŒ �D�Y�Ä�é�VŽ{ŽçŽ~‘Û‘ö‘)’>’˜’¸’Í’“$“œ“¹“D”~”“”þ”#•�•µ•!–F–¤–Ò–þ–,—¤—ˆ˜á˜`™á™dšåš˜›6œSœåœ�x�–�Õ�ö�®žõž7Ÿ›ŸãŸ` Á ¡g¡È¡E¢r¢»¢Ý¢£N£p£££á£¤6¤t¤–¤ɤ¥)¥‘¥Ì¥ã¥›¦Ǧ §,§_§´§¨`¨´¨ô¨J©ã©@ª]ªqª˪誙«¾«6¬S¬h¬Ó¬ý¬Z­y­�­ç­®µ®þ®F¯h¯¤¯ °V°±@±ž±̱ø±&²ž²‚³Ù³Z´Û´^µßµ’¶0·M·ß·ú·p¸ޏ͸¹í¹/º“ºÛºX»¹»û»_¼À¼=½j½³½Õ½¾F¾h¾›¾Ù¾û¾.¿l¿Ž¿Á¿ÿ¿!À‰ÀÄÀÛÀ“Á¿ÁÂ$ÂW¬ÂþÂPäÃäÃ:ÄÓÄ0ÅMÅaÅ»ÅØÅ‰Æ®Æ&ÇCÇXÇÃÇíÇJÈiÈ}È×ÈôÈ¥ÉîÉ6ÊXÊŒÊôÊ6Ë÷ËÜÛÜ,Ü@ܙܶÜfÝ�ÝÁÝÐÝäÝ=Þ^ÞÝÞßß3ß^ßm߉ߴßÃßßß àà5à`àoà‹à¶àÅàøà áfá…ášáJâoâæâãã‚ãïæ5çOçiçƒç�ç¸çÒçìçè è;èlè�èÚèùèé¾éwìííyíÕí¥î=òoòƒò3óÁõö:öNöþö(÷¸÷Ô÷ñ÷ ø*øFøcøøšø¶øÒøíø ù%ù@ù\ùxù•ù±ùÎùêùú#ú?ú[úoúûû£ûüü0ü‰ü¦üý:ýÄýþýþ}þ¢þÿ3ÿžÿÇÿ$@T­Êz£0‰«ßûh[š¶Òî k`ËMb¼Üñi† K ` Ë '$]${$­$Â$%<%Q%&'&Ÿ&¼&G'�'–'( +C+a+”+©+,#,8,é,-†-£-..h.}.è.Ì34 444Ž4«4\5�5ù56+6–6"8X8v8‰8ã89±9$;a;<m<�<U=MOŠPµPiQ“QrR®RÇRúRSiS‰SžSOTtTìT UU‰U5m£mÍmnnon�n¤nånûn¬oÑoIpfp{pæpïqrT~³~æ~ú~Tq"€G€¿€Ü€ñ€\�T‚ƒmƒƃs…!†Ò‡0ˆ€Œ«Œ¿Œ�6�ç� ބޡ޶Ž!�J�}�˜�¬��"�Ò�û�1‘L‘h‘|‘Õ‘’c’‹’¬’a“é9 ì= CI öS >i �n V} … ß• £ ñ² QÀ ›Ì OÍ ïÍ Ï ¢Ï :Ð Ñ ,Ò ?Ó šÔ ²Ö =Ø fÛ ½Û Ý ùÝ @ß ôâ ä ãå áç sè ªë Äí 5ð ò Iò lô @õ ‘ö •ø Ëú $û Ðý w D Ç ¿ z ¶   S% È% ª- ~1 }5 ‰@ {b Ng œg j ¼j ;k »k l Œl Km øm \n ¶n p ñp Wq ¢r s „s çs Jt ät Ru Àu #v ‘v w ew Þw Hx àx Cy ¦y 7z æz ¸| !} Š} ó} \~ Å~ . ¥ € ‡€ æ€ P� Å� "‚ €‚ Þ‚ Xƒ ă 9„ X… 8† €† þ† ³‡ &ˆ Óˆ ¬‰ ZŠ ²Š ~‹ ;Œ ”Œ F� à� CŽ ÂŽ C� ­� � f� ¾� ‘ x‘ 7’ Í’ 0” W– £— û— =™ 'š ‚š ò𠇛 ê›  œ #� z� bž 2Ÿ   P  o¡ P¢ þ¢ V£ æ£ `¤ ¥ u¥ ô¥ e¦ ʦ :§ ž§ ø§ [¨ è¨ C© õ© ­ª éª .« ­ ® ì® ‹¯ +° ¢° Q± l² ͳ n¼ ½ p½ ¶½ ñ½ *¾ e¾  ¾ è¾ y¿ \À <Ë ÈÎ +Ñ dÓ .Ø üÞ pä "é vî Kï ò ðò “ô ™õ Êö Œ÷ ›ø où xú * @ € æ h ³ � ¸  Y º k 0 ¶ á" ä# ¸( 0+ . …. *2 ß4 û7 v8 ; °L ÏR ½S rT BV ©V W wW ÞW EX ®X #Y ˜Y Z ^Z ÆZ 9[ ”[ ð[ L\ Ä\ .] ¡] Î^ ×_ |` Õ` b Ðb ,c d be þe af Àf ƒg ih üh �i Õj òl 5n Žn )o p up æp ‚q àq Dr ør fs ½t zu -v xw zx ‡y ôy Uz ·z '{ ”{ | b| Ä| u} ~ Ì~ G€ � ø� 4‚ š‚ ¹„ 0… Ó… † l† (‡ Hˆ ¢ˆ 5‰ “‰ î‰ [Š °Š ‹ ®‹ TŒ ®Œ K� —Ž ;� Š� I� ¢� ‘ q‘ Þ‘ 6’ ±’ ˆ“ ” \¸ Œ» Ä !Ë ŠÎ ½Ð òÜ ³õ 5ý ×R &#Ÿ/`4T@ÊDÏTB]cVntqá…'™Ê¦²r¼î¾j¿æ¿WÀÖÀ¶Á–ÂÃuÃãÃQÄ¿Ä-ÅšÅþÅmÆæÆHÇ«ÇȈÈ<ÉÊýÊøËÍ}λÏ,ÐqÐþлыÓÈÖ׉×é×IتØyÙ+ÚûÚ�Û ÜŒÜ_ÝÍÝ/ޜކàFâ8ã�ãhåJæ©çsèé=é�éóéHê�êòêGëžëQìáìÈî!ï{ïíïÍðÉñ�ò�óðóõWõ¬õöÿ÷ ùíûðüQn䤦©â  _ ù h¿)ÖC¼€áB£eÉ5™ñ ¹[°¦3ý3ù4ƒ6W=§@…DíEG”IêL–PXRËX:[äz±}¶Ô‚/ƒˆ$‘+’ƒ”Ÿ•d—z˜š,›*�„�]¡ë²aº†ÁÞʵϺÖ9ÜÒÜ}ÝFÞÔÞÄßkàýàVá¬á“âcã’äUå]ê(í£ò÷Ãøüðü0þÿàÿ Ϋxöwb3ª&  r Ë $ – ï U ®  ‡ ï H¤uÜ7�;Ú–øQ¾0¬ {Ý`¡øk­ñ5w»ÿU¼~‰Âûm ™!&"#z#Ó#,$Ô$9%&-'ñ'ê),*€*ï*i+ÿ+A,•,.-¨-94U6Ø8;M>B(EEIÎMêPNW´Wt]Ðaxe�kÔrñz<€8†T�+“•›¢ý¤}¥f¦­¦§x§¨i¨ͨ3©øª“«ö°O±©±:²8µ¶…·¹ѹ»j»¸»J¿ïÀ’«ÃÃÅúÅNƞǑÈìÈTÉÛÉgÊòÊcËíËS̼Í5δÎKϦÏ-ÐLÒ–ÒíÒQÓÓÓªÔæÕ¡Öõé.ìíînïjð_ñWò´òôÜôõÃõ2ö¿öb÷1øù*ú‡üþ³þ ¼ €Ùèã™OáOŠùmûL±xBÜx΋=²Àvä+0˜4}7<R?žIÎM[V]["d j‡mnrïu�} ‚$Œ$’Ešœ–œ>� ž»ž^Ÿ A¡æ¡I¢_¶ ºÅÁ˜ÈaÌ³Ò ØÛÞñãuè�ëð’óÙô�õóõ÷Æ÷øƒøcù©ùüùCúŠú!ûèûìü’ýœþûþóÿgH 3œ}å)—9$«%c.§8À:á<CïG€RÒS!U­Yç[h]_¾_a´bÉd f¹fRhikjl3n¼o]q~r“tå~a�u„l…[†Ö‡·‰oŠÏŠñ‹�Â�J’L“!•–ÖÕ—e˜ߘ‚™oša›©œ—��ž”Ÿc ,¡¡ì¢¯£‡¤I¥¦צ‡§<¨ó¨¬©ͪÑ«œ¯R°L±M²µ·m»ù»ú½†¾%¿úÀÂ<ÃbăŢÆÃÇèÈËšÌÂÍæÎ_ÐØÑÿÒ"ÔŸÕ׸×*ØÊØLÙ:ÚrÚÜÚ#éŸéöê“îPð›õ¨ö8øùVû¤ü¥ý¶þãÜ$ȆA ý ) Û ¦ ’IISüç=º7‹X.„Á >!’!g"=#“#$�$á$J% &v&ó&p'Ä'-()Y)Ö)S*§*r+H,ž,-˜-ì-·.Œ/â/_0Ü001¬:Ü;J? D’HYM'NÎN�SUeUíUuVÒVÐW1X¹XAY YZ [«[ŒdGe¤ešhëj€k/læl®m’nÈo3qRrsÍstgu,v¸v9wºw;x¼x_y÷yêz\¼É¼D¿àÀá¬ÅhÆÇ•Ç ÈyÈØÈ›É ÊzÊUË•ËÍË$̤ѕÔQ×WÚƒÛlÝÞßïã~æqëâì ïãò€ö)ýù|ž6½Wæ{ƒ aС… g Ç Ò ]£òA�Ôjý¸lÅ?¢ &“ã8Àòbô&T©<ñ¾ž~ À u!/"“"õ"Z#ý#U$­$a%&ƒ&î&F'n' (p(Ö(p)Ö)<*ñ-n.X/‘/å/90�0ã091Ž1î1‰2 3u3!4Z4�4ò4d5C6†6Û607†7J8«8:9å9Ç:;`;¶;P<ê<K=«=:>¶>?Á?@z@Ù@8A™AúA[BÈB”CUDEwE FG­GaHÂH"I‚IâICJ¥JwK!L�LðL|MNwNÑN2O‰OòO:RêR-TžYn[?]y_Û_€`Æ` a„aÄab³bùb?c…cdHdˆdÈd€eÆe fRf˜f&gfg¦gæg&hËhiWiÏijOjÿjEk‹kÑkTl”lÔlm§m.n8oðoºp’qKrsUuZƒ_ˆ„še£ü¥©W¬ã®“±¥³µð·Iºè¼¦¾bÀ‹ÁçÃ/ÇÊÇùÈ™ÉAÊ'Ë?Ì ÍŒÍŠÎϳÏ4ИÐþÐ�ÑkÒ™Ó#ÕsÖÕÙ=ݧޅß^à;áÂá×âwãõæ}ç+è‰ê±ë»ìÎïmð1òKó5ôdõÄõlö%ùVûÛûý�ýgÿ—Ä"¯[Ånó7—ìA—öT © 7 © ± 4 n ì > ‘ Ñ ,—TÉ�!¾!4"e.0È0Ó1 2¬3ø35­5X6@7Ï7w8Æ9u:7;ß>Z?Ñ?Ž@KA¿A,BsBºBxCïCÌYÏZ�[_·`ènzoñoswØx%ySz¡z5|ƒ|å}5~Ç~l8€„€¼�l‚ü‚€‡vˆíˆâ‰nŠeŽš�‘·‘Œ’“¨“A•î•h–Þ–Ò—]˜ì˜|™Ü™t𛓛8œ°�=ž(¡Ö¡¶£Z¤ܤi¥]¦è¦G§TªÛªQ«E¬ЬZÊÊË@ÌÍ|Í�ÎÏÚÏŽÑŸÒ5Õ·Û9ÜÈÜðå ç„ç,èúè‰é2êëÅëaìØì�íî•î>ïØïOð¹ó3ô©ôOõ8ö¯ö&÷¾ø ù‚ù'ú½úûOüþüšýþ;þoÿîLvÑGBöl¾4   i  ” i Ü+',�,æ,/K4o8,9 KJLàLlM¢O_PÖPËQWRU V�VvWX9YÅZs[é[Õ\N^?_ë_ý`Da¾ab�bæb‚cùc¢d=e´e]f(gŸgHhóhji_jùj[kýkulíl–m%no¦o6v�v+w×wbxñx�yâyjzßz…{1|¼|K}Û}b‚­‚fƒD… †’‡”ˆŠèŠ™‹]Œ �k�â�YŽ�±�@�‘Œ‘’y’Ä’“”‘”+•�•V–—È—¨ɨ­ª°«A¬zÎÅÎ<ϳωгБÑgÒ)Ô¥ÔÕÅÕ´×+ØÚÛ™ÛÝgÞ/àwàá{á}â7ãEäýäcåæ…æRç èéÒé#áo5 ¨ … ¡ é¸+¿�/_~ k!I"�#$â$v%â&<( )*H+s,v-�../»/¯0:1»2¸5E6»6F7;8·8.9Ú<V=Í=¶@AuAìAÆBjDÐD†E/FÞFSGöGAHÆH;IÞI(JœJKµKL’LM­MÿM©NOÂOiPÞP€QRŠRÇ^`y` a b•b ccôcidÞdReÉeÖi!jÉjukêkÄlSmãm{{Å{m|ú|Ï}E~º~”#€³€!‚š‚ƒ„�„î„h…Þ…<ЇŠ0‹¿‹5Œ«Œ†�ާŽv‘Á‘j’ù’o“å“À”P•á•�—o˜ʘ1™²™5š¶šk›œÍœJ�¾�)ž_Ÿ$ +¡ ¢¤¢7£Ê£]¤ð¤d¥¦ó¦†§G¨©Û©&ª�ª« ¬•¬õ¬@­¹­0®Û®Ý¯‘°‡²i³³+´¬´/µ°µe¶·Ç·B¸¶¸!¹Wº»#¼½œ½/¾¾U¿è¿\ÀÁëÁ~Â7à ÄËÄÅ�ÅÆùÆ…ÇåÇ0È©È ÉËÉÅÊqËÔÛlÜâ܇ÝÞVÞúÞPߦßüßRà¨à9áÆáºâEãçæ­è:é6ìî5ò¯ò¹õözö ÷›ú›ûæû\üñüfý@þÏþ_ÿ¿ÿ €ö›æ\£;E=XŽ<²� $î$}%r&è&Ã'+Õ+d,Y-Ï-ª.Ä3`4×4Ì5X68µ8,9;><Ï<EO§P…Q”R;SÊS¿TKU-m¿mAnÐn'op¨prL~™~&�’€�L‚ëŒb�WŽãŽB�Ø�N�ó�¨‘î‘H’Ü’é9 ì= CI öS >i �n V} … ß• £ ñ² QÀ ›Ì OÍ ïÍ Ï ¢Ï :Ð Ñ ,Ò ?Ó šÔ ²Ö =Ø fÛ ½Û Ý ùÝ Aß ôâ ä ãå áç sè ªë Åí 5ð ò Iò mô Aõ ’ö –ø Ìú %û Ñý x E È À { ·   T% Ê% «- 1 ~5 Š@ |b Og žg j ¼j ;k »k l �l Lm øm \n ¶n p ñp Wq £r s …s ès Kt åt Su Áu $v ’v w fw ßw Ix áx Dy §y 8z çz ¹| "} ‹} ô} ]~ Æ~ / ¦ € ˆ€ ç€ Q� Æ� #‚ �‚ ß‚ Yƒ Ń :„ Y… 8† €† þ† ³‡ 'ˆ Óˆ ®‰ [Š ³Š ‹ <Œ •Œ G� á� DŽ ÃŽ D� ®� � g� ¿� ‘ y‘ 8’ Í’ 1” Y– ¤— ü— >™ (š ƒš óš ˆ› ë› ¡œ $� cž 3Ÿ   P  o¡ R¢ ÿ¢ W£ ç£ a¤ ¥ v¥ õ¥ f¦ ˦ ;§ Ÿ§ ù§ \¨ è¨ C© ö© ­ª éª ­ í® Œ¯ ,° £° R± m² γ n¼ ½ p½ ¶½ ñ½ *¾ e¾  ¾ è¾ y¿ \À <Ë ÉÎ +Ñ eÓ .Ø ÿÞ sä %é wî Lï ò ñò ”ô œõ Êö Œ÷ ›ø pù yú + @ € æ h ³ ‘ ¸  Z » l 1 · â" å# ¹( 1+ . ‡. +2 à4 ü7 x8 ; ±L ÐR ¾S sT CV ªV W xW ßW FX ¯X $Y ™Y Z _Z ÇZ :[ •[ ñ[ M\ Å\ /] ¢] Ï^ Ù_ }` Ö` b Ñb -c d ce ÿe bf Áf „g jh ýh ‘i Öj ôl 6n �n *o p vp çp ƒq áq Er ùr ¿t |u zw |x ˆy õy Vz ¸z ({ •{ | c| Æ| v} ~ H€ � ø� 4‚ š‚ ¹„ 0… Ó… † l† )‡ Iˆ £ˆ 6‰ ”‰ ï‰ \Š ±Š ‹ °‹ UŒ ¯Œ L� ™Ž ;� Š� I� ¢� ‘ q‘ Þ‘ 6’ ±’ ˆ“ ” ]¸ �» Ä "Ë ‹Î ¾Ð óÜ ´õ 6ý ØS '# /a4U@ËDÐTC]cWnuqâ…(™˦²s¼ð¾l¿è¿YÀØÀ¸Á˜Â ÃwÃåÃSÄÁÄ/ÅœÅÆoÆèÆJÇ­ÇÈŠÈ>ÉÊÿÊúË Í}λÏ,ÐqÐþмьÓÈÖ׉×é×IتØzÙ,ÚüÚ‚Û Ü�Ü`ÝÎÝ0Þ�ÞGâ9ã‚ãiåKæªçtèé=é�éóéHê�êòêGëŸëQìáìÉî"ï|ïïïÎðÊñ‚ò�óðóõWõ¬õöø ùîûñüRo奧ªã  ` ù h¿*ÖC¼€áB£eÉ5™ñ º[°¦3ý3ù4ƒ6W=§@…DíEG”IêL–PXRËX:[äz±}¶Ô‚/ƒˆ$‘+’ƒ”Ÿ•d—z˜š,›*�„�]¡ë²aº†ÁÞʵϺÖ9ÜÒÜ}ÝFÞÔÞÄßkàýàVá¬á“âcã’äUå]ê)í£ò÷Ãøüñü0þÿàÿ!Ϋxöwb3ª&  r Ë $ – ï U ®  ‡ ï H¤uÜ7�;Û—ùR¿1­|Þ`¡øk­ñ5w»ÿU¼~‰Âûm ™!&"#z#Ó#,$Ô$9%&.'ñ'ê),*€*ï*i+ÿ+A,•,.-¨-94V6Ø8;M>B(EEIÎMêPNW´Wt]Ðaxe�kÔrñz<€8†T�+“•›¢ý¤}¥f¦­¦§x§¨i¨ͨ3©øª“«ö°O±©±:²8µ¶…·¹ѹ»j»J¿ïÀ’¬ÃÃÅúÅPƞǑÈìÈTÉÛÉgÊòÊcËíËU̼Í5δÎKϦÏ-ÐLÒ–ÒíÒQÓÓÓªÔæÕ¡Öõé.ìíînïjð_ñWò´òôÜôõÃõ2ö¿öb÷1øù*ú‡üþ³þ ¼ €ÙéäšPáOŠùmûL±xBÜxÎŒ=²Áwä+0˜4}7<R?žIÎM[V]["d j‡mnrïu‚}‚$Œ$’Ešœ–œžðž_Ÿ B¡ç¡J¢b¶ ºÅÁ˜ÈaÌ³Ò ØÛÞñãuè�ëð’óÙô�õôõ÷Æ÷øƒøcù©ùüùCúŠú!ûèûìü“ý�þüþôÿg{¡4ž~å)—:$¬%e.©8Â:ã<CñG‚RÔS#Ué[j]_À_a¶b"f»fThimjl¾o_q€r•t:c�w„n…]†¹‰qŠÑŠó‹�Â�J’L“!•–ÖÕ—e˜ߘ‚™oša›©œ—��ž”Ÿc ,¡¡ì¢¯£‡¤I¥¦צ‡§<¨ó¨¬©ͪÑ«œ¯R°L±M²µ·m»ù»ú½†¾%¿úÀÂ<ÃbăŢÆÃÇèÈËšÌÂÍæÎ_ÐØÑÿÒ"ÔŸÕ׸×*ØÊØLÙ:ÚrÚÜÚxé¡éøê•îRð�õªöõøùYû§ü¨ý¹þÞ&ʈC ÿ + © •LLVýç=º7‹Y.„Á >!’!h"=#“#$�$á$K% &v&ó&p'Ä'.()Y)Ö)S*§*s+H,ž,-˜-ì-¸.Œ/â/_0Ü001­:Ü;J?¡D’HYM'NÎN�SUfUîUvVÓVÑW2XºXBY¡YZ [¬[ŒdGe¤ešhëj€k/læl®m’nÈo3qRrsÎs€thu-v¸v9wºw;x¼x_y÷yêz]¼ʼD¿àÀá¬ÅhÆÇ•Ç ÈyÈØÈ›É ÊzÊUË•ËÍË$̤іÔQ×XÚƒÛlÝÞßïã~æqëâì ïãò€ö)ýù|ž6½Wæ{ƒ aС… g Ç Ò ]£òA�Ôjý¸lÆ?£ &“ã9Àòcô&Tª<ñ¾ž~ À u!/"“"õ"[#ý#U$­$a%&„&ï& (p(Ö(p)Ö)<*ñ-n.X/‘/å/90�0ã091Ž1î1Š2 3u3!4Z4�4ò4d5C6†6Û607‡7J8«8:9å9Ç:;`;·;Q<ê<K=«=:>é>?Â?@{@Ú@9AšAûA\BÉB–CWDExE FG®GbHÃH#IƒIãIDJ§JyK"L�LñL}MNwNÑN2O‰OòO:RêR-T Yp[A]z_Û_�`Ç` a„aÄab´búb@c†cdHdˆdÈd�eÇe fSf™f&gfg¦gæg&hÌhiXiÏijOjkFkŒkÒkTl”lÔlm¨m/n8oðoºp’qKrsWu\ƒaˆ…šf£þ¥©X¬ä®”±¦³µñ·Jºé¼§¾cÀŒÁèÃ0ÇËÇûÈ™ÉAÊ'Ë?Ì ÍŒÍŠÎϳÏ4ИÐþÐ�ÑkÒ™Ó#ÕsÖÖÙ>ݧޅß^à;áÂá×âwãõæ}ç+è‰ê±ë»ìÎïmð1òKó5ôeõÅõmö%ùVûÛûý�ýgÿ—Ä"¯[Ånó7—ìA—öT © 7 © ² 4 n ì > ‘ Ñ ,TÉ�¾!4"0Ô1­35®5@7Ï7Ç98;Z?Ñ?Ê@KAÞ@¿AxCïCÐZ‚[º`zoñoÙxTz6|æ}Ç~9€¾�ü‚vˆíˆâ‰nŠš�‘Œ’“B•h–Þ–Ò—]˜ì˜|™tš“›°�=žܤi¥]¦è¦ÛªQ«E¬ЬÊË@ÌÍ�ÎÏÚÏ9ÜÈÜ ç„çúè‰éëaìØìî•îØïOð3ô©ô‹õ8öŸõ¯ö³õ&÷ ù‚ù½úPüšýþpÿîvÑGöl¾4    ” i ,',�,/Ž4o8¢4,9JLàLlM_PÖPËQWR V�VvWXÅZs[ê[Õ\@_ý`¾a�b‚cùc=e´e(gŸgóhji_jùj‹kýkŸkul³kíl–m%no¦oZv�v+w×wbxñx�yzjz!zßz…{1|¼|K}Û}†‚­‚fƒ†•ˆéŠ^ŒD�k�â�Yޱ�@�‘Œ‘’�’Ä’“”‘”+•W–É—ɨ±«B¬žÎÅÎ<ϳωБÑgÒ¥ÔÕ´×+Ø ÛšÛhÞSàwàá~â8ãFäþäžåæ²å†æSç èéÓéâp� ª ‡ í ë-./»/¯0:1¸5E6»6F7·8.9V=Í=Ú@AuAìAÆB©DÑD‡EÞFSGHAHÆH;IJ(JœJKÛKL’LMÕMÿM©NOiPÞPRŠR`y``a bta•bˆa cœac°aôcÄaidØaÞdReÉeúi!jÉjukëkÄlSmãmŸ{Å{m|ú|Ï}E~»~”#€³€š‚ƒ„�„h…Þ…`ЇŠ0‹¿‹5Œ¬Œ†�Ž§Žš‘Á‘j’ù’o“æ“À”P•á•�—o˜ʘ1™²™5š¶šk›œÍœJ�¾�)ž`Ÿ% ,¡ ¢¤¢7£Ê£]¤ð¤d¥¦ó¦†§H¨©ÿ©&ª�ª« ¬•¬­@­¹­0®Þ¯’°‡²i³³+´¬´/µ°µe¶·Ç·B¸¶¸!¹Xº»$¼½œ½/¾¾U¿è¿\ÀÁëÁ~Â8à ÄïÄÅ�ÅÆùÆ…Ç È0È©È ÉÆÊrËlÜâÜÞ9áÆáºâEã­è:é!î¯òÝõözö›ú¿ûæû\üñügý@þÏþ_ÿãÿ €ö¿æ\;>Ž<³� î$}%r&é&Ã'Õ+d,Y-Ð-ª.`4×4Ì5X6µ8,9?<Ð<…O”R;SÊS¿TKUAnÐn'op¨pp~™~&�’€�ëŒb�WŽãŽØ�N�¨‘!’I’Ý’Ô9 ×= .I áS )i ˆn A} ò„ Ê• í¢ Ü² <À †Ì :Í ÚÍ ôÎ �Ï %Ð ýÐ Ò *Ó …Ô ßÔ �Ö (Ø QÛ §Û Ü ëÜ äÝ +ß ßâ Iã òã Îå Ìç ^è •ë ¯í ð ûñ 3ò Wô +õ |ö €ø ¶ú û »ý b / ² ª e ¡ ø  >% ²% •- i1 h5 t@ fb 9g †g ñi ¦j %k ¥k ÿk vl 5m âm Fn  n p ^p Ûp Aq •q Œr s ns Ñs 4t Ît z  z { }{ ê{ K| ­| ^} ò} 0€ ñ€ á� ‚ ƒ‚ £„ … ¾… ö… U† ‡ 3ˆ �ˆ ‰ ~‰ Ù‰ FŠ ™Š ÿŠ ™‹ ?Œ ™Œ 6� ‚Ž &� u� Ç� 2� ‹� ú� \‘ É‘ ’ š’ ù’ q“ ” G¸ w» ôÃ Ë uÎ EÏ ¨Ð xÑ ÝÜ žõ ý Â= #Š/K4?@µDºT-]cAn_qÌ…ž†í†™ä™3𵦛§²ì²]¼Ù¾U¿Ñ¿BÀÁÀ¡Á�ÂòÂ`ÃÎÃ<ĪÄÅ…ÅéÅXÆÑÆ3Ç–ÇùÇsÈ'ÉÊèÊãËóÌhΦÏÐ[ÐéФÑuÓ³ÖëÖt×Ô×4Ø•ØbÙ¨ÙÚäÚjÛòÛuÜÝÜHݶÝÞ…Þ1â#ãlã¯ãäxäçäQåÄå3æÒæ’çìç\èíè&é†éÜé1ê†êÛê0ë‡ë:ìÊìUí²î ïeï×ï·ðMñ³ñkò÷òxóÙóíôAõ–õöê÷ôøØûÙüLÿšÿèÿ<WÎç6��’Ë ü I ã � R©À-¦ jË,�îO³ƒÛõ£Ešî�3æ3ä4n6B=’@å@pDØEðFIÕL�PCR¶X%[Ïzœ}¡¿‚ƒyƒñ‡‘’n”Š•O—e˜š›�m�H¡Ö²LºqÁÉʓϥÖ$ܽÜhÝ1Þ¿Þ¢ßVàèà?á–áöá~âNã}ä@åHêíŽò÷®øþûÙüuýÄýþšþÿÉÿ:¦ ·”aú~ß`ÛKøŸ“ € ê [ ´   Ø > —  p Ø 1�^Å xé$ÃáYÌ:§•ödÆIŒáU—Ûa¥é?§is¬åV ¾ !!ƒ!"í"c#¼#$½$"%v%&'Ü'Õ)*k*Ú*T+ê+,,€,-“-$4@6Ã8ð:8>ìAE0I¹MÕP9WžW_]»acelk¿rÜz'€#†?�“€›¢è¤h¥O¦–¦ù¦a§î§R¨¶¨©Œ©Œªáª~«á°8±’±%²ز=³#µ›µðµP¶p·î¸f¹»¹ºòºT»­½ü½5¿®¿ÚÀ7ÁþÁ}–îÅåÅ9ƉÇôÇ|ÈÕÈ=ÉÄÉPÊÛÊLËÖË<Ì3Í¥ÍÎ�Î4Ï�ÏЩÐÑwÑÓÑ5ÒÒÖÒ:Ó¾Ó•ÔHÕÑÕŠÖàéìúìðíYïUð›ðJñBòŸòôÇôÿô­õöªöM÷øúøúrüþžþëñ ¥ kÄÓ΄:Ì9tãWå6›bÊ,Æb¸u'�«aÏ+û/ƒ4h7ò;=?‰I¹MFVØVH[ döirmn‰nYrÚu€võvl}~ø�œ‚Œ’0šÿ›�œø�GŸ ,¡Ñ¡4¢J¶y·ô¹°Á'ƒÈLÌßÌžÒõ×]ØïÚþÝÜã`èˆëð}óÄôvõÜõ›öðöN÷¯÷ølø¿øLù’ùåù,úsú ûÓûÕü}ýþ‡þæþÞÿR‹f‡åhÐéÇ!€$$–%N.’8«:Ì<ýBÚGkR»S UÒ[S]ì^©_aŸb f¤f=húhVjïk§oHq§qir~tJ�`„W…F† ‰XЏŠÜ‹þŒ­�5’7“ •ï•®–À—P˜ʘm™ZšL›”œ‚�lžŸN ¡­¡×¢š£r¤4¥¦¦r§'¨Þ¨—©¸ª¼«‡¯=°7±8²î´ù¶X»ã»å½p¾¿Š¿åÀ Â'ÃMÄnÅ�Æ®ÇÓÈìÊ…Ì­ÍÑÎJÐÃÑêÒ ÔŠÕףרµØ7Ù#Ú[ÚÅÚˆéáê~î;ð‘ðÂðñ†õ“öùAû�ü�ý¡þî'VŽÅ ë–ë±o* æ  � {24>æÑ'¤!uBnæC « (!|!Q"'#}#ú#w$Ë$4% &`&Ý&Z'®'(í(C)À)=*‘*\+2,ˆ,-‚-Ö-¡.v/Ì/I0Æ01—:$;r;Å;5?‹DE}HDMN¹N{SðTOU×U_V¼VºWX£X+YŠYýY‰ZóZ•[wd2e�e…hÖjkklÑl™m}n³oq=rðr·sitQuv£v$w¥w&x§xJyâyÕzF¼³¼/¿ËÀ{ÁÌ—ÅSÆðÆ€ÇôÇcÈÂÈ…ÉôÉeÊ?ËË·ËÌ�Ñ€Ô<×BÚnÛWÝÉßÚãiæ\ëÍì÷îÎòköýägû‰!¨BÑfìnøKº‹p Q ² ¼ FŒÛ*x½Tè¢ûV¯)Œô¯}Í"ªÜLÞÒ>“&ÛF¨ûˆ7 ühÄ-‰õª _!"}"ß"D#ç#?$—$é$K%&m&Ø&ô'Z(À(Z)À)&*Ü-Y.B/{/Ï/#0w0Í0#1x1Ø1s2 3^3 4D4†4Ü4O5-6p6Å67p748”8#9Ð9±:;J; ;:<Ô<5=”=#>ù>ª?@c@Â@!A‚AãADB±B C}C>DÿD`EôE®F–GJH«H IkIËI,JŽJ`K LxLÙLeMÿM`NºNOrOÜO¦PQhQÂQ$RÔRXS¶ST›TöTQU¬UVbV½VWsWÎW)X„XßXˆYX[(]c_Å_j`°`ö`na®aîa�bãb)cocòc2drd²dje°eöel~l¾lþl‘mn"oyoÚo>p¤pq|qÔq5r˜rùrgs@uEƒJˆošP£ç¥©B¬ή~±�³ë´Û·4ºÓ¼‘¾MÀvÁÒÃǵÇäÈ„É,ÊË*ÌöÌwÍtÎøÎ�ÏЃÐéÐzÑVÒ„ÓÕ^ÖÀÙ(Ý’ÞpßIà&á­áÂâbãàæhçètêœë¦ì¹ïXðò6ó ôOõ¯õWöùAûÅûýˆýRÿ‚¯ šE¯XÝ!�Ö+�à> “ ! ” œ  W Ö ( z » ?´ˆ©!"0Z0¾1—3î4˜5+7º7±9";E?¼?5A©AB]B¤BcCÚCºZl[¢`eoÜoÃx>z |Ð}²~#€§�ç‚aˆ؈͉YŠ…�ü�w’í’,•S–É–½—H˜טg™_š~››�(žÁ¡¡£E¤ǤT¥H¦Ó¦=ªƪ<«0¬»¬µË+ÌÍzÎðÎÅÏŠÒ Õ¢Û$ܸܳæoçåètéëLìÃì î€îÃï:ðô”ô!ö˜ö÷§ø÷ømù¨ú:ü…ýüýZÿÙëa¼2áW©ôj õ   T ,ˆ,/Z89÷J5LËLWMJPÁP¶QBRõUlVaWíW°Z^[Ô[À\*_è`©aˆbmcäc(eŸegŠgÞhUiJjäjæk^lÖl�mno‘ojvwÂwMxÜxlySzÈzp{|§|6}Æ}–‚Qƒø…ˆÓŠHŒT�Í�DŽœ�+�‘w‘’­’j“”|”•A–³—´¨›«,¬®Î'ÏžÏtÐ|ÑRÒ�ÔÕŸ×ØóÚ„ÛRÞbàáhâ"ã0äèäðånæ=ç÷çé½éÌZ‘ p ý ÔëlJi V!4"x# $Í$a%Í&'(õ(*3+^,a-ˆ./¦/š0%1£506¦617¢89A=¸=é@`A×A¯BC^CÒC+D¹DqEÉF>G*H±H&IJ‡JüJìK}LóLèM”N OTPÉPRuRî_d` bbôbicÞcSdÈd=e´e j´j`kÕk¯l>mÎm®{X|å|º}0~¥~€ž€…‚û‚ïƒz„S…É…pŠ‹ª‹ Œ–Œq�Ž’Žª‘U’ä’Z“Г«”;•Ì•x—Z˜µ˜™�™ š¡šV› œ¸œ5�¨�žIŸ ¡ó¡�¢"£µ£H¤Û¤O¥¦ܦq§0¨©ªˆªÿªô«€¬)­¤­®ȯ|°r²T³­³´—´µ›µP¶·²·-¸ ¸ ¹Aº» ¼ë¼‡½¾­¾@¿Ó¿GÀùÀÔÁi ÃöÃÿÄxÅïÅäÆpÇÈ”È É°Ê\ËWÜÍÜûÝäÞ:ß�ßæß<à’à$á±á¥â0ã˜è%é îšòíõeö†ú8ûÏûGüÜüQý+þºþJÿóÿkáÏG&(y'�x Ù$h%]&Ó&®'À+O,D-º-•.K4Â4·5C6 89)<º<’PpQR&SµSªT6Uªm,n»nop“púq‚~ˆ}€ �ÖŒM�BŽÎŽÃ�9�“‘1’Ç’æô{õ†õ^öi÷´÷Jøœø¬ù·ùiúµú7ûBû0ü{ü†üÑü_ýjý]þ¶þøþÿ {ÓO Z ¨ ^ ¾ " gQ™ûOp{†Ò-8Œû]±j½#m #êõGR]Ê" - Ÿ!³!c"²"# #Y#¨#³# $\$g$©$´$ %%Y'¥'ò'B(M(X(š(ä(ï(9)Ÿ)«)·)Â) *m*½* +i+Ñ+,k,Ò,¸.v/‡/–/å/ô/000,0£0®0û0Ô5d68©8´8T:_:j:‡:*;9;Ã;<<\<f<p<z<„<Ž<˜<==¯=º=Ê=Ù=ç=-><>L>M@X@ª@µ@CCÂC DÖó…ô�ô›ôÛôñô‘õáõ£öòöýöH÷S÷^÷øUø§øÜøçø¡ùÂù úútúªúÀúMû¬ûÜüíý#þhþÁþÿzÿ…ÿ�ÿœÿ¬ÿ÷ÿr}~µÀË×ç÷Ekôÿ ep{†‘�­ü.ÅÐÛMXc²½ÈÞT_ŸªµÀ X c ¥ ° ò ý 3 > D e ³  S i É   - | ‡ Ö á ì ;F‹–¡¬¸È"-r\r}‰¤×âíù <GR^n³¾ÉÔßëZÑI�˜Ûæ5@‚�˜¤´(3>IT`‘ËÖáìø#z…�›§·ÇÝ"C—h¼ö BMXcny…•ÏÚåðû"uȹ.hs~Üç(ß<hÕ  j ³ ¾ É Ô ß ë û W!b!m!x!ƒ!�!"X"½"d#$#%–&¡&¬&·&Â&Î&Þ&''''2'='I'd'š'°'ç'ý'7(ú(+*b*x*²*È*++^+t+Æ+Ü+,),`,v,Ç,/-..U.`.k.v.�.�.�.­.Ã.ý.///)/4/?/K/[/k/:0q0|0‡0“0¹0ð01@1K1V1a1l1w1ƒ1“1£1®1è1ó1þ1 222+2;2K2V2a2q2€2�2Ÿ2­2»2É2×2Q3\3¬3 4å23*353A3g3¡3·344!414@4P4_4m4{4‰4—455l5É5¥4ß4ê4õ45'5a5w5¾5ß5#6.6o6þ6 777*767F7þ7 88*8r8¿8ù8¤:Ý:è:ó:ÿ:;;D;~;‰;Î;¥<+=g=r=}=ˆ=“=Ÿ=\>Ÿ>ª>µ>À>Ë>Ö>â>ò>6?A?L?W?b?m?y?‰?Ì?×?â?î?þ?B@c@Ÿ@À@A$A/A:AEAQAaA A«A¶AÁAÌA×AãAóA-B8BCBOB_BßBêBõBC'CiCtCÍCÎß *î Ñõ ® I& *h ™h )m Öm €r Åz •| ±ˆ Љ 8Š ’ 5– ã– ~œ .¢ Ü¢ Œª ¥« ݬ 0Ï ÌÓ íØ ùß å ê ãê ²ð \õ îù ÷ú « ø »  % õ. ÷8 ES QT !V ´_ Y` `g li j Ïl tm Õr Ís €t Yu ”v ;w Yx R} ˆ 5Œ ,� ^Ž Ç° ;hÓKÔ0ì[î’ðHñaòòò’öçøNúÌüÓýJÁá�ƒ¼õ Ù «;§í°÷oý½ÿª½6rÇÇ Í-ÍæY·f·s·•öTaÓà~/Â9Û;>DúH­SýTMV ZšZÄ^�_±`wb'e¶ehîhjÇk“nRo q]rVt–­€$€Ã�Ð�'…4…/†<†;ˆHˆ,‰9‰‰‰–‰BŠOŠÅ‹Ò‹èŒõŒÔéæéWêdêÂñÏñ|ö‰ö^ùkùúú_ülüyý†ýŠþ—þIV<IÐÝIV¬¹Òßû  € � v ƒ )%2~ÆÕ"¸%›(à+$/;EQT¯WƒZt[\“s_t-u vþ»E½÷ÔÍÚèžÒ|Û#½%3*80<Ê<2DóDTKþK@[M[]]à^í^3_(`RbeshžjamnÉuÖƒÙˆy¦™©ØÈHڠݺ.ù/1µ1s2Ž3C4å4�5Z±Zc[ _™`Ãwºxry5zôz|²€÷€ž��\æ g RËiâEhEpl@2�l”ŸþŸå ã¡!¨Ö¨&¯¿¯s°ºöºÝ»Û¼ÃÆÃʧÊSË¡ì®ìòíîìý9 o'V.¢kåuóv0{«€Š€5�¦�K‚·‚\ƒ†Œ‡!ˆ²ˆ9‰þŒ6Žl�š�r—~²8³J¹³¹º…ºe» ¼²½F¿²¿wÀSÁÄ<ÆâÆ‹ÇEþÿÆÿ†GÉz0¨  ¿ ¥ yä?—Ç-”$]'¤(D*-/:0B12+34¨4Ø6ò7µ;�K3LÕL>QS#UM] ^ß^ù_JdqÔtvèw}9~E€Mƒ$„üˆщŽï’ •èœz¨ª®«9¯Û¯¥±?³SÅÄÆ-Ç–Ç?ÍïαÑõÚKãèæ^è1évé? Ì ó#&…&('–'â(s)*‹*�,C-ö-Ÿ.žAGËGXhiÕi“jRklÐl†nUofpÒpáq s tttßt”x§y·z}¡‹dޤ�H‘"žgŸ ³ µ­#±‚¶þ½Î_ÏÐðÓ—Õ�׫à2áQâñâ“ãøìÊøöúuþkåßš¢A&! #'Ä'p0 19T=P?éAyCYEãEÝFJGtMPÕPV‰XFY-^_)cdhhiMjkÒk–lZmnÜn›oZpqØq—r7s÷sØtwuv¶vwwxÜx y…zj{GˆB�Ͷm·¼`â-äÒŒF•V!�9O:;©=:@HPÖW¶\äl»m oJprÄs�ucysÄXÍÎ¥è&íY÷SHRIOJK·K�MGN2O`PbQRÂRrS"TDUûU¯VcWCyx}Å~©ä†'ˆ ‰RŒŽÀ§ÀVÃnÄkÅÇOÈ3Ê£ËHÌÿÌÏÖ©çVøòøVù?ýî¨Ôu’ªõ" =J>aCDÑI²MoN7PlQFRWàWÐXÈYãZÔ[Ô\�fI{ñ�²š>›%¦·³ζÖ¹`³ˀÌMÍCδÐÕÓ{Ô"ÕÔÖ¶Ú[ÛÂßhà á»âœæAçžëDìòÓô`ù@þ¼ÿið¬Ê� uQ&t+k,H8Y@¶@(AÞAÞB…CrDXE¨FõHBJ�KtLDO4RŸR�SfTmUBV)WýWÎX¢YsZG[é\'d�jykclmÃmÇo]qcuïxH|&}‰� ‰qŒï�†“—6™îš¿ž¤6¥:¦Ö¨«�«ì®í° ²Ͳ{³¼¨¼nÃÇyÇHÙúßeà|áBâãæ`ïèöhøfýòýÝ v ß Ð C ‹ Ó 3 ³ _  ¨ � j H æ I! ¬! r" q# q$ -% È0 I9 : \D ÅE RO ÙO õP ÔQ ÅR ¶S lT ]U DV Y Z ´Z ¸[ Ô\ À] .« õ« Õ³ ÿ´ hÓ Ïç ²é ì ‹í Üö 7ø ù · – Û ¬ | G  † ° Ð ð q í V ö – ÿ Ò ;   ­ ‡ " £" =# û# M%  & ‹' v( j) * ·* ó+ é1 p2 �3 ê3 39 û: h< Ñ< s= > ä> M? @ P èP �VY]äeÎhjîqµÝ8Ò`;b“‹÷‹¡–Øöš´›Á�© ®¥á¦ËÉÏ�Ð*äW{`®-// 7J<P|&~�„�E„Ù…N¢þ£¦9®}¯¬°±б2³ÿ³¤µœQþQ¾vwFx”x|/„ÿ�}�í¢¨6®ǰµ³ޏºpº »µ¿£  ©  �/®Q,É�®•‘&Î':+ý,Þ-š0N1Ä2Ò446@8P9Ä:Ò<ù=@ã@=AÚBD)FQGŒ\N`ÈgHhz{N|¤|׃Š„º…†m�×�3� ‘B“E–4›.œ8�=žÜŸÌ ~¢Ø£¦§´¨$©}ªäªÙ­/®8³�³ñ³Ä´zµG¶¯¶ ·âº’»�¿·×ZÙæÛùÝ.àãàðáTâ‰ãädäKåÃåUæ¿æŠògôDöB»^ c!p"“beˆ|C}t~¯‚öˆ·‰éŠw�±¦§¸¨©fªΪì¬F­±²¦ÙŒåPøG!£!ü$J%{>à>`?´?;böb¥h]i›¢ü¢3¶s¹õº\ ¶ ½ o A Ü ¦ } — ¨  d R ¬ ™ * ë% Š* —@ ü@ PA B ÙB �C §F G H ‰H ÝH ‘I 6J ìJ «^ O_ }` Ñ` va 1b `c Äc Id Ÿd Xe +f ãf ­g h �h æh •i ]j k ¬m Jo »p Àq s Ht ‹u Ðv w Çx •y [z ~{ ¶| ¶} H† ¹‡ ¶~ n {€ Ñ€ ¤� \‚ iƒ §„ ¾� \� Í� Ò‘ “ X” ›• Þ– �— Ó˜ Ÿ™ c𠆛 ¾œ ¾� .¦ ›§ ¾ž sŸ |  Ò  š¡ O¢ X£ �¤ ¼¬ À­ o¯ Ù° 5± β ³ X» Æ» à ÎÄ ýÅ Ç äî éï =ð óð Ãñ yò Fó ûó õ ¶õ   y Ï Ö 0- š- 8/ ”/ �0 Q4 »4 ]6 ¹6 Ã7 î@ )B ÊC &D tE dF H {I ­J K M cM ïQ MR žR ªS úS µT ´U ÂV W ìW ³Z y_ Û_ 9g eh j bk ÚU¦a•ΕIz ƒ{ ¬} îþp¿(æ+2\;V~ ¯~ ¶K ÓL yN ðN VP MR >S T åT ¡ë %í † E‡ §l yt òt Cu ”u äu 4v „v Ôv %w vw Çw x ix ¹x y Wy §y øy ãz 4{ | U| ¦| þ| U} á¼—rM(Þ¹”oJ%Û¶‘l ~ µ¸  _ ® ü U€ ¸€ � Z� «� ü� M‚ ž‚ ï‚ ?ƒ Žƒ ߃ ßk Rl Æl 9m ýo nr ³s öt ;v 0„ „„ ñ‹ dŒ ØŒ K� � €’ Ó • I– Ø„ ,… €… Ð… † q† ɇ ˆ kˆ aV�Vîãäü<=,=@=1'1 G*G襑À•ç6>Ü�û´ýX öY  Z 5° K° §î »î Ïî Mt ct Üt .<j¢ü¥©z¿ò¿7å¯å«æ§ ³x �y Gz ¿˜ ‹™ Oš Y¯ a° u° ‰° �° ±° Ű à ìqñv.{©€ˆ€3�¤�I‚µ‚Zƒ†Їˆ°ˆ7‰üŒ4Žj�˜�p—|²6³H¹±¹ºƒºc»¼°½D¿°¿uÀQÁÄ:ÆàƉÇCþÿÄÿ„EÇx.¦  ½ £  wâ=•m³’$['¢(B*-/80@12)34¦4Ö6ð7Û8�K1LÓL_CDÏIWMmN5PjQDRWÞWÎXÆYáZÒ[Ò\‘bG{t|°š<›#¦¯¦̶Ô¹^±Ë~ÌKÍAβÐÓÓyÔ ÕÒÖBÙYÛÀßfà á¹â(å?çœëBìòµôì÷>þíþgîªoŽ sOß¾(å+2[;´@&AÜAÜBƒCpDVE¦FóH@J�KrLBO2R�RŽSdTkU@V'WûWÌX YqZE[ç\9b£hwkalmÁmÅo[qauíxF|$}‡�‰oŒí�„“—4™ìš½ž™¢4¥8¦Ô¨«Ž«ê®ë°²˲y³ù´¦¼lÜÆwÇFÙˆßcàzá@âãæ^ïæöfødýðýZ ¥ ? ¤ •  P — ± M  ¦ ~ h F ä G! ª! p" o# o$ +% é% G9 : •@ ÃE ¥F ×O UP ÒQ LR =S T äT BV ŒX ôY žZ ¶[ Ò\ ¾] ©^ ó« º¬ ý´ V» gç °é Ÿë #í ¥î 5ø ù µ  Ù ª z E  „ ® Î î o ë T ô ” ý Ð 9 ž « …  ¡" ;# ù# K% ž& ‰' t( h) * µ* ñ+ .- n2 3 è3 O4 ù: f< Ï< q= > â> K? @ ì@ æP íQ W] cÌhj kãu+³;9bHdõ‹ŽÁ˜ô𲛿œ§ ¬¥ߦx¨=ÍÐ¯Ñææþ|!±i¤ã9ú<$~�‚�C„×…Eˆü£}¦ ¬{¯ª°þ°α0³ý³¢µ˶üQØUwDx’xay-„ý�{�뢨ÿ«Ű³³· ºnºž»³¿ê §  ‹-¬O*Ǭ“�&Ì'8+û,Ü-˜01Â2Ð426>8N9Â:Ð<÷=@á@;AØBD'FGQHL`ÆgFhAy{L|¢|v}ˆ„¸…†â†Õ�1�ž‘@“_•2›,œ6�;žÚŸÊ h¢Ö£æ¥§²¨©{ªâª×­-®6³›³ï³´xµE¶­¶·àº�»x¿ð¿XÙäÛ÷Ý,àáàîáRâ‡ã äbä5å­åSæ©æ“çeôBöTø¹\ a!n"ó"eŽfA}r~­‚ôˆµ‰çŠu�Ú�§¶¨©dª̪ê¬D­±²µ³´Úšæ^ù¡!ú$H%&Þ>^?²?W@ôb%d[i�jú¢¤¸óº¼´ Û m t Ú Ý { Î ¦ A b ‰ ª Ñ ( 1 ˆ* Æ0 ú@ NA B ×B �C ZD G H ‡H ÛH �I 4J êJ ´K M_ {` Ï` ta /b ^c Âc Gd �d Ve )f áf «g h Žh äh “i [j k Ýk Ho üo ¾q mr ²s õt :v }w ±x y Ez |{ ´| ´} ´~ ·‡ ï‹ l y€ Ï€ ¢� Z‚ gƒ ¥„ F† Z� � Б ’ “ • H– ‹— ½˜ ‰™ Mš „› ¼œ ¼� ¼ž ™§ ,« qŸ z  Р ˜¡ M¢ V£ ‹¤ ,¦ ¾­ W¯ 3° 3± ̲ ³ Ó³ Ä» ZÀ ÌÄ ûÅ Ç fÓ çï ;ð ñð Áñ wò Dó ùó õ ´õ Úö ” w Í Ô þ! ˜- 6/ ’/ ›0 ç1 ¹4 [6 ·6 Á7 19 'B ÈC $D rE bF H yI «J K M aM P KR œR ¨S øS ³T ²U ÀV W êW ±Z w_ Ù_ 7g ch j `k ¥l `Víqòv/{ª€‰€4�¥�J‚¶‚[ƒ†‹‡ ˆ±ˆ8‰ýŒ5Žk�™�q—}²7³I¹²¹º„ºd» ¼±½E¿±¿vÀRÁÄ;ÆáÆŠÇDþÿÅÿ…FÈy/§  ¾ ¤ xã>–n´“$\'£(C*-/90A12*34§4×6ñ7Ü8ŽK2LÔL=QS"UL] ^Þ^ø_Ñ`qÓtvçw}8~D€Lƒ#„”ˆЉ’‹î’• –À�ª­«8¯Ú¯¤±>³RÅÃÆ,Ç•ÇËîÎÈÏôÚJãíã]è0éè> Ë ò#&„&''•'á(r)*Š*�,B-õ-ž.�AGÊGWhiÔi’jQklÏl…nToepÑpàqŸs tstÞt“x¦y¶zV{ ‹cŽ£�G‘É�ýž ² [­_®�¶¾¼Î^ÏÐïӖ՜תà1áPâðâ’ã÷ìÉøõútþ,.Þ™¡@%! #'Ã' /1 7-<O?èAxCXEâEˆFIGsMPÔPVˆXEY,^_(cd~hgiLjkÑk•lYmnÛnšoYpq×q–r6sös×tvuvµvvwxÛxŸy„zi{O|A�M¢l·¼_â,äÑ‹E”U!�9N: ;¨=9@HP›Qµ\|lºm¡nIprÃs€uUv|WÍΤè%íX÷¢ QINJK¶K�MFN1O_PaQRÁRqS!TCUúU®VbW‹\zÄ~¨Öƒ&ˆ ‰á‹��l�Í•D–�ÀUÃmÄjÅÇNÈ2Ê¢ËGÌþÌcÖ¶×"òñøUù>ýí§Ót‘©Aâz =5>`CDÐIXMnN6PkQERWßWÏXÇYâZÓ[Ó\’bH{‡|| ±š=›$¦°¦ͶÕ¹_²ËÌLÍBγÐÔÓzÔ!ÕÓÖCÙZÛÁßgà áºâ)å@ç�ëCìòÒôí÷?þ~ »ÿhï«É� tPàs+j,G8z>µ@'AÝAÝB„CqDWE§FôHAJŽKsLCO3RžR�SeTlUAV(WüWÍX¡YrZF[è\:b¤hxkblmÂmÆo\qbuîxG|%}ˆ� ‰pŒî�…“—5™íš¾žš¢®~ 5¥9¦Õ¨«�«ë®ì°  ²̲z³ú´§¼mÃ�ÆxÇGÙ‰ßdà{áAâãæ_ïçögøeýñý[ ¦ @ ¥ –  Q ˜ ² ^  § Œ i G å H! «! q" p# p$ ,% ê% H9 : –@ ÄE ¦F ÒL N ïN QO ØO ôP ÓQ ÄR µS kT \U CV �X õY ŸZ ·[ Ó\ ¿] ª^ ô« »¬ þ´ W» hç ±é  ë ì $í Ší ¦î D‡ ȇ 6ø ù ¶  Ú « { F  … ¯ Ï ï p ì U õ • þ Ñ : Ÿ ¬ †  ¢" <# ú# L% Ÿ& Š' u( i) * ¶* ò+ /- o2 €3 é3 P4 ú: g< Ð< r= > ã> L? @ í@ çP îQ Lt Ût X] cÍhj¡käu,´;:bIdö‹Ž˜õš³›çœBu “u ¨ ­¥à¦y¨>̀аÑçæÿ|"±j¥ä9û<%~�ƒ�D„Ø…Fˆý£~¦ ¬|¯«°ÿ°ϱ1³þ³£µ̶ýQÙUwEx“xby.„þ�|�좨¬ư´³·ºoºŸ»´¿ë ¨  Œ.­P+È€­ãu 3v ƒv ”�&Í'9+ü,Ý-™01Ã2Ñ436?8O9Ã:Ñ<ø=@â@_?³?X@õb&d\iŽjU~ û¢¤2¶¸r¹ôº^ ¼µ Ü ­ n u û Û Þ T€ | Ï ·€ § B c Š « Ò ) 2 � Y� ª� û� L‚ �‚ î‚ ‰* Ç0 >ƒ û@ OA B ØB ŽC [D �ƒ G H ˆH ÜH �I 5J ëJ µK N_ |` Ð` ua 0b _c Þƒ Ãc Hd žd We *f âf ¬g /„ h �h åh ”i \j k Þk Ql Ål 8m «m Io ºp ¿q s Gt Šu Ïv ~w ²x €y Fz }{ µ| µ} µ~ ¸‡ ð‹ ƒ„ m z€ Ѐ £� ׄ [‚ hƒ ¦„ G† cŒ ׌ J� ½� [� Ì� Ñ‘ “ W” š• Ý– Œ— ¾˜ Š™ Nš …› ½œ ½� ½ž š§ -« +… rŸ {  Ñ  ™¡ … N¢ W£ Œ¤ -¦ ¿­ X¯ 4° 4± Ͳ ³ Ô³ Å» [À ÍÄ üÅ Ï… Ç gÓ † èï <ð òð Âñ xò Eó p† úó õ Á† µõ Ûö • x Î Õ ÿ! ™- 7/ “/ œ0 è1 º4 \6 ¸6 Â7 29 (B ÉC %D sE cF H zI ¬J ˆ K M bM P LR �R ©S ùS ´T jˆ ³U ÁV W ëW ²Z x_ Ú_ 8g dh j ak ½ˆ ¦l yŸ¹{1�щÚ�a’c“7•¹é7ùkYlmØm¼n)?ÆG} cA×APöÇö>÷?,‡8D9l�lm™v�zözÅ‚ƒ�Ü’ÝÎŽà æ�æ .EAéDYH?JLN8b­b"c—c d�död9jÜ{ŸŠÙ‘†˜^™ß™bšãš>ªX­€³X´Ù´\µݵ.ÅHÈöþû"þ¬R±~a’4VhV–Vôã#äÿ( =%=9=M=141G7Gº•=–õ¥žÀ¢çC>é�µËL N èN JO Y Z ­Z B° X° óë wí ´î Èî Üî Zt pt Ôt ét ;<w¢ ¦©‡¿ÿ¿Då¼å¸æ°‹fA÷Ò­ˆc>ôϪ…` ;!+¶k¹´ Jl ®l 1m •m Àx Žy Tz \Œ ÀŒ C� §� ̘ ˜™ \š f¯ n° ‚° –° ª° ¾° Ò° à 8VlVšVøã'ä, =)===Q=181G;G¾•A–ù¥¢À¦çG>í� µÏL N ìN NO Y Z ±Z F° \° ÷ë {í ¸î Ìî àî ^t tt Øt ít ?<{¢ ¦!©‹¿ÀHåÀ弿´�jE ûÖ±ŒgBøÓ®‰d ?!/¶o¹¸ Nl ²l 5m ™m Äx ’y Xz `Œ ÄŒ G� «� И œ™ `š j¯ r° †° š° ®° ° Ö° à ÿ9 > _I T Zi ¹n q} "… ú• £ ³ nÀ ¸Ì {Í lÎ 5Ï ÐÏ hÐ >Ñ XÒ kÓ ÈÔ ÞÖ kØ ”Û îÛ Ý 7Þ ²ß 3ã 7ä æ è Šè Öë î Lð 'ò ‰ò Šô ^õ H÷ Ëø ûú ^û þý ± y ö ô ¯ ì C S ‰% 5& ò- Æ1 Å5 ¸@ ýb rg h >j õj tk ìk Kl m °m *n Œn îo Pp %q ‡q Ür [s ¾s !t »t u �u òu Rv Çv <w —w x µx y uy z qz s{ ï| X} Á} *~ “~ ü~ i à U€ ¼€ � ‹� ù� V‚ ´‚ &ƒ ‘ƒ „ ¾„ Ó… U† ¹† /‡ é‡ ‹ˆ ‰ Š ‰Š L‹ ý‹ kŒ � ·� Ž {Ž ûŽ |� ç� >� •� í� G‘ §‘ w’ W“ «” Å– Ò— C˜ é™ Wš ¸š _› Á› œ Þœ c� šž ­Ÿ %  Ö  ²¡ ¾¢ -£ ž£ .¤ Þ¤ L¥ ¹¥ (¦ –¦ § t§ ͧ 2¨ Ѝ © Ë© oª ¿ª « œ­ b¯ ° c° ì° à± é² ´ �¼ G½ ‹½ н ¾ D¾ ¾ ¼¾ ¿ ÿ¿ äÀ jË Ï YÑ ¸Ó HØ ×ß àä àé ï ëï Eò *ó Èô Ýõ âö Í÷ Üø Òù Ûú ‡ t ´  ‚ á ä Ò : § f ¡ f ê !# $ î( f+ E. á. r2 '5 C8 Ú8 /; +M óR õS ÿT yV àV GW ®W X |X éX ^Y ÑY 6Z –Z [ m[ È[ $\ ”\ ý\ q] &^ I_ ;` «` pa ‘b c Úc %e Õe 8f –f ïf 7h £h Pi ói Pk Vm dn èn Üo Kp «p Yq ·q r sr 6s út v úw y Áy ,z �z ôz a{ Î{ 8| š| 4} ¬} –~ ƒ€ •� ‚ g‚ Û‚ õ„ l… í… =† �† £‡ }ˆ ‰ n‰ lj /Š ‰Š çŠ ‰‹ Œ ‰Œ ÜŒ ×� ÓŽ U� ¹� f� ¿� @‘ ¡‘ ’ q’ â’ Æ“ ¥” –¸ Æ» AÄ bË 1Ï dÑ +Ý êõ lý ‰ ]#Ö/•4Œ@EýTp]Jc™nùq‰†Ï™~§Ï²,½0¿¬¿&À¦À…ÁeÂÖÂEóÃ!Ä�ÄýÄkÅÖÅ=ƯÆ!ÇƒÇæÇXÈÉëÉËʾ˹ÌÉÍ•ÎêÏFЌІÑBÓ'ÔâÖT׼ר|ØÝØ�Ù¾ÚDÛÍÛGÜÇÜšÝÞiÞÓÞÔâ\ã¤ã±å§æàçªèéoéÍé"êwêÌê ëwëì¤ì5íüîUïµïwð4ñ4ò×òÁó"ô2õ†õáõwöÈøú­ü«ý#‘¹acŠÃÚ , ¾ € ˜ó�sìO°rÓ4—ögÈ ’ˆÜ0Ö3,45±6Œ=Ø@¹DF5GÅIMÊPŒRÿXq[{ç}çƒcƒ=ˆS‘Z’²”Ε•—µ˜Hš]›Z�µ�u¡ ³}º¦ÁüÊÓÏØÖYÜÿܪÝuÞßóßšà,áƒáàá­â’ã¿äoåžê‹íæò“÷õøGüSýsþ ÿ#�fAÀU:¼Ùˆvíi 6 ¡ ú Y Å ! „ ã S » y,¨ f¾kbÎB‹ùyãH³“Ñ2†ÊO“×m;£Ü= ¢ Û!­"/#ª#$ª$%i%Ÿ&ª'y(*[*Á*3+ +,p,Ö,r-ß-g4©6ò8;g>B™EuIýMQ‚WïW¯]b±e¼ks {k€g†ƒ�f“Æ›M¢-¥¦ƒ¦æ¦D§À§6¨š¨©v©:«¬%±±ë±Â²}µ:¶¶·H¹º8»¨»�¿!ÁBÂÃãÃÝÅ)ÆWÇßÇÂÈ É�ÉÊ¢Ê0Ë¡Ë ÌüÌìÍiÎ Ï|ÏáÏ’ÐiÒ¶ÒÓ�Ó[Ô2ÕnÖ¹ÖêHì*ífîˆï‡ðzñrò;ó1ôöôœõö_öðö‘÷cø=ùWú¶üCþ$ÿʉ 1šaeчûi¾;ž~ãE«³M¥Vôk:øó,-0µ4«75<�?ÏINËV�[[d\jémÃrUvñ}y‚TŒW’€šOœ�œž¤ ¾¡"¢l¢D·#º ÂÉÉÌ>Ó>Ø8ÛAÞ"ä¥èËëIðÂóõ¾õfö6÷ô÷Oø²ø~ùÆùú^úºú¡ûpüýþÔþÿpîÁ$£¡×²«]$ì%b/¦9¿;ä=DÞHˆSØT'V\¯]>_R`bañbIfg�h£i²jAlåošqsÐt@�¯„°…ì†Ö‰©ŠN‹‚ŒL�á�f’h“>•–Ý–ò—˜ø˜ž™�š�›ÕœÅ�¯ž¯Ÿ| E¡ß¡ £â£¥¤|¥7¦ §¥§o¨©ß©þª¬ °Ú°}±g²6µ>·³»=¼@¾Ê¾j¿;Á`ÂÃ¥ÄÆÅåÆÈ+ÉFËßÌÎ)ϤÐÒBÓeÔäÕa×Ò×DØäØÔÙNÚ�ÚÛë²îwðö9÷ÌûïüðýNÿùC‰� Ë ‡ » ò hŠŠìb‚ÿf¹©^É!m!À!¸"m#Ø#U$¼$%›%P&»&8'Ÿ'ò'~(3)ž)*‚*Õ*Ã+x,ã,`-Ç-./¼/'0¤0 1^1;ù;}?÷DÕHžMVNýN¾S<U°U8VªVWX|XYvYÔYgZW[ÿ[¨dae+f´hkœk^lmÝmÁnõoNqmr3stÁt©unvÔvUwÖwWxØxŽy~z{¡¼ý¼^¿nÁoÃÌňÆ3ÇÃÇ:È©È_ÉÛÉ7ÊËoˬËüËQÌÌÑãÔ‹×±Ú�ÛŠÝüß äœæ�ëí*ïóžöHýª>Ìd놩/²; o7 Ÿ ‚ N ï 4zÁ_¬ñ:Š„êCž hÔŠ_¹‰Ñµ«ü½ç^¬Œ A!ù!W"»"#§#$p$È$v%O&º&%'<(¢()¢)*n*+.õ.r/¿/0g0½01h1À1c2å2O3Ý3;4w4Ì4!5ë5`6µ6 7`78|89¢9l:÷::;�;<¯<=…=>¢>ö?R@°@ApAÑA1B•BCDÖDME®E˜F˜HùHYI¹IJ{J7KáK[LÆL<MìMBN¥NýN]OµO[PŽR8S{T[á\©^š_ö_¡`ç`-aŸaßabÔbc`c¦c#dcd£dãd¡eçe-fsf¹fAg�gÁghAhìh2iwiêi*jjj kfk¬kòkol¯lïl/mÈmOnbopêp¾qyr?s²uºƒ¾ˆ«šŠ£\¦}©�¬¯Í±Ý³?µ'¸€º ½Þ¾šÀÁÁÄgÇYÈ"ÉÈÉnÊUËpÌ>ÍξÎBÏåÏQеÐ?ÑÐшҷÓRÕ¡Ö*Ú‚ÝØÞµßŒàláñáã§ãç­ç]è¹ê6ìêìûï�ðaò°ó½ôœõüõ¤öRù‡û ü4ýØýƒÿ³à=73ŒôH�hÆoÈ' ƒ  f 0 è F ‚  f § ù @…Q·ð!½"N0 2ã3:5;6s7Y8W:È;�?[@«CyD[\Ta­o{py‹zm|~Qo€Q‚.ƒ©ˆw‰Š±ŠÍ�›‘¾’‹“Ñ•š–g—˜Ÿ˜0™À™ýšœâ�Æž¥ò¥Ž¦*§ «Ú«v¬­üËÉÌ/ÍÁÎŽÏôÏlÜRÝ@çè-éê¦ë”ìbíQîï ðÙðeô2õ>ù úïúßüÍý+þ!2ÿÐ6(õð½# ° L P  ƒ Ï,3/}LM¯M’P`QýQšR=V W¨WEXøZ¥[b\]Ð_/aðaÏbµcƒdpe>f[g)h&iôi‘j<kÉm¯nLoéo]wx¤x5yÅy·{b|þ|�}~˜ƒž†%‰y‹îŒŽãŽä�Ê�0‘¾‘[’²“5”Ôn•ç–Y˜û¨ê«Ò¬oÏ=УÐÒ�ÒØÔ¦Õç×µØBÛ*ÜøÞOá¶âÇã}äFå‹çœèRéêÿ –`/D0à0|1ê5_6ì6ˆ7ê8¸9‰=W>¨AvB×BFGÛG÷HÃIÍJ™KÄL‘MÛN¨OšPfQFRS5`a…eSfûj¦kQlm—m'nŸ|ƒ}é}v~!Ög€÷€Ì‚™ƒ5„Ñ„š…g†c‹Ù‹gŒ�É�[ŽìŽ�’“¡“M”•••&–§—�˜ä˜c™æ™gšêš�›;œêœ}�Ø�³ž¤Ÿi p¡N¢À¢S£æ£y¤ ¥–¥ ¦§¹§i¨S©Ðªž«;¬Ø¬ì­º®° ±¡²…³Þ³]´à´aµäµ—¶5·â·u¸Ð¸«¹œºa»h¼F½¸½K¾Þ¾q¿ÀŽÀ˜Á±ÂYÃCÄÀÅŽÆ+ÇÈÇÜȪÉýÊÌžÜkÝBÞkáOâëâ‡ãßèÃé²î8ó÷$ûŽü"ýÍý‚þÿ£ÿ²ŽmvÁn Ð !%&¤&P'(,î,‹-7.í.“4a5þ5›6è8¶9x<`=nSTTñTŽUtnên±oNpëpY'€Ä€a��ì�‰Ž&� �×�Ú‘l“,ˆj ³ðHw¯½CMDȰ \îRTÿ»¾%4_)`SbethŸjbmó gô @1 ?3 F9 xÜ =è Ñè Fî óò cõ X Å@ dh ij r z ‰{ Ì„ ÷… ‰ Ë‘ š’ x“ ß• =œ q� ò� ¨ž ÑŸ É¡ —¨ %« p¬ ÷­ �® ± ÷± ]³ (´ ż @¿ #À ´Ã ÁÈ ^Ï Ô šØ ¢ê nð Öô 9ö 0 ¼ ~ _ ª ´$ <; S T U 3^ X_ g Æh j vl —r \s t u #v Úv x #y º} Â~ € ¹€ À� ƒ ž… ·† °‡ èŒ ë� ÞŽ ä“ Î” –° L½èÍ÷ϱÐÅÐdÔ‹ÖÙýÞ~àüáçâ¶èÚí#î—ð[óIô«ô«ö – @Ï;$Â0«1r384Ô�¸ [â²âÌä]üËx-¨#…G+Mï!À"<#Þ%¶&¸'¡(¯)Ä+.�1D¥¦Z«1¬²¢³Ì·K¾YÂ;ÃÄwÅ·ËùÍîÏšÓqÔ­ÕØÜ•æKç}òNóH xs)ß©«yQ®#0%ðƒ]œ4�À�±žÈŸ» z¢¢¢É¢Kõ$ùèú¯ûŒü ý,ÿTÿ|ÿ0Aé‘4®­!g"¥YNZÁ]L_h`taÁdjeg�h¸iÄj+n op r=s½uÞ~ÌN�½„¼…‡͇¢ˆ>‰ä‰Z‹•ŒáŽI�I•°ð°б€×××ÿØÙÚ@Ýéê_ñ!ö1ø‹ùÚûûüüýtÿÙ×Pä\[� Ñ ñ ˜˜äjÌ„Ä(ËË!7"Ú"%½%ý' (à*B+å+%.‡.)/.2ËS)WáYÄb»cme>fNs#tètÐu�vávbwãwdxäx­yÀy’zû ½�½V¾ÎÇCÊ˵ÎÒÚM ” 7 � u ‡ ³Æ“%='e'º' )­*m,»-7./è3-5þ5®9:­>Z?¼E GúG9Yò^ _¥_`8a*b±cîdÄfLhƒivjýk:mÓmZnoÂs“t}Ç{È0ÉSÍ+ÎÔÎXÏûÏ_ÐÄÐUÑæÑ®ÖÉãÓóüóéôö±ö”ûübv_Û¨r D ó ÿ �’f!‡!ý!].©/¿0p12F3ï3 4G5O6ô6 7ƒ7˜7n8~9l:ï:×>#?š?…@A†AûABB‰BÐBCAC¸CÂYdZ[_&`ànCoºolwrxyïy—zÎ{y|›}+~�~dÕ{€:�d‚Å‚x‡?ˆ¶ˆŒ‰!Š6Š]Ž�ð�c�Ú�®‘U’Ë’ž“÷”ä•1–§–|—˜%˜´˜E™Ó™=š›\›/œd�y�ñ�ž ¡¦¡ƒ£*¤�¤¥¤¥2¥¦›¦°¦=§̧¨>¨w¨̨=©®©ç© ªiª¤ª«ï«ƒ¬˜¬RÊ“Ë ÌÞÌtÍXÎÎΣυÑoÒÕ„ÛíÛÜ|Ü‘ÜçåÖæMç"è®èÃè=éRé'êÍêºë*ì¡ìvíçí^î3ï¡ïð±óüórôEõüõsöêöa÷´÷ø?øŠøÕøKùú†úúúüóücýÚý0þ'ÿ¢·1DÉ?šå:¿5‡ýÒ) ½ Ò _ ç ] 2 Ô+f,Û,â.B4y578ô8œ;Ž=¡@”EÙJ´KLŠLM4M™O(PŸPuQ RRUÓUJV WµWÊW0YyZŽZ[[²[ˆ\�\E^÷^ã_Æ`:a‡aûafbÛbKcÂc—de}eRfñfhg=h¼h3i j¬jÁjPkÁk9l±lJm_mÙmîmÄnYono.vßvôvlw�wx*x¹xJyØy.z£z9{N{Æ{Û{o|„|}¤}Z‚ƒ/ƒ´ƒ;…Å…‰‡Lˆý‰ ŠŽ‹Œ�«�"Ž÷Že�z�ô� �ß�6‘Ë‘à‘n’3“H“Ï“ä“;”ޔ󔃕–ü–€— ¨’¨¤ªh«÷«qÎÏ|ÏRШÐZÑ0Ò ÔnÔåÔºÕÖQÖªÖæÖ"×}×ô× ÚÀÚOÛÝÞ'àÑàæà^áqáâ5âÅâíâÜãŠä²äYåÅåCæàæçšçÂç±è_é‡é™',  ˜ t¯‹·Qÿ/N ;!"[#ï#²$F%¯& (Ú(æ)+C,F-m.â.÷.o/„/Y0í01³2l5�5ù56e6ù6728€8÷8Ñ<=–=­@>AµA_D"E'F§FGîG�HIÖIeJÚJ¬K[LÑL¤MrNèNºO2P§PxQÞQSR¿^Ì_B`aæa[bÐbEcºc/d¤de’eÎi}j’j kk³kwlŒlm¬ms{!|6|®|Ã|˜}ï}ƒ~G\ë|€‚c‚Ù‚®ƒB„W„å„1…§…3ŠäŠùŠs‹ˆ‹ß‹tŒ9�N�Þ�pŽm‘’3’­’Â’“®“s”ˆ”•ª•;–ë�О¾Ÿœ £¡g¢Ò¢e£ø£‹¤¥Á¥Ø¥¼¦!§˧y¨Ò©fªݪ³«H¬]¬ë¬‚­ù­Ñ®q¯"°5±ã¸ȹ¶º”»›¼_½ʽ]¾ð¾ƒ¿À¹ÀÐÀ´ÁÂÃÂiÃÂÄVÅÍÅ£Æ8ÇMÇÛÇrÈéÈÁÉaÊ ËÌÛ5Ü«Ü~ÝÙÝMÞÈÞßtßÊß àvàíàázá�ádâøâ ãßæaèvèîèé.ì‚í-òxò±õCö÷¢÷Û÷øMø øóøFùù¸ù údú’û%ü›ü/ýóýþ—þ(ÿ¶ÿI¿’%š=õPBWÑæ{@ U $¢$·$1%F%&±&v'‹'ý*‰+ž+,-,-˜-].r.¼3)4 4v5 6 68~8õ8;ö;…<=OvPUQ\RïRS~S“SiTþTU%m�mõm n„n™nðnÆo[pppÙqD~ï~f<€Ñ€æ€D‚í‚^…½‡kŒ´Œ+�Ž–Ž«Ž9�¡��ê�q‘å‘”’ � †« &® ®s uv ò~ ¬àd�ážnìYern-ˆkéèø-\ ^'†'Ü>rG¯'!–.ù0Q2)4p6�8›:÷>¦@þYz_o£wVyÒz©|M~œÙ€„‚˜‡}ŽÏ‘Γ–ô™2›Pœ@¡_§rÊ”Í¦ÑæDèXêÝë™íVïÑógõ?ú*ûýaþ7d4Z(� ô+þ,c4ºO0UQYt^`\abþbºduf`hskNvúyz‚j…¸‡,Š¿‹8��‘’³•,—*¨Óª’ÎËÐAÔÝÕ;Ú=ÝGà¡á‰åIt à ÷×Ó2S8ò<Î@œDGFHöIÍKÅMÚO˜Qß^8aîi“{9‚…TŠŽ‘ó© ­¯ãÄýÇþÉìÛŸÝnÞÿæ‡ìMòÑõ8÷³û×ÿ³»kp7$+Ü3284;]OEmd~d‚Z� ‘’“� y« ® ¡s hv å~ ŸàW�ÔžaßYûden ˆ^éÛø O Q'y'Ï>eG¢!‰.ì0D24c6�8Ž:ê>™@ñYm_ón–wIyÅzœ|@~�Ì€w‚‹‡pŽ‘Á“ù•ç™%›Cœ3¡R§eʇ͙Ñûå7èKêÐëŒíIïÄóZõ2úû ýTþ*W'Mt ç+ñ,V4­O#UDYg^ö_Oabñb­dhfShfkAvíym‚]…«‡Š²‹+� �„’¦•—¨ƪ…ξÐ4ÔÐÕ.Ú0Ý:à”á|å<g Ó êÊÆ2F8å<Á@ŽD:FHéIÀK¸MÍO‹QÒ^+aái†{,‚ù„GŠ�‘æ©­¯ÖÄðÇñÉßÛ’ÝaÞòæzì@òÄõ+÷¦ûÊÿ¦®^c*$+Ï3%8';PO8mW~W‚M�þ�’²µ¼ÀÇÎÒÖãíô "-9=AEIMQUY]aeimquy}�…‰�‘•™�¡¥©­±µ¹½ÁÅÉÍÑÕÙÝáåéíñõùý    ! / 3 : K [ j { Œ ª ½ Ù ä   4 I ] p … – ¸ Ï ï þ  $ = ^ n r v } ‰ š ¡ ¶ º Ê × æ ê ð ÿ   $ 7 I P T a o s { ƒ “ › ¬ ´ ¼ Ð ß í    < W u … � « Æ ä ø ü 4DLPXmqˆžµÈÕø *2IQVe�†Š’¡´ÃÐÞï 3FUex†Ÿ¸ÆÓ×ßçëó  5Kaw‰¥»ÃÔéú )<Yltx€ˆŒ›¦®³¿ÇÏßãëóû#+3;CXmz‚Š’¢ª®¶ÇË×Ûãëðõúþ (05:BJRZbjnv‡�¤¬¶¾ÂÊÒÚÞæîòÿ  $,4<DLZbj€’𢰏ËÓ×çï÷ÿ*2:BLPX`hpu�‰“›®²ºÂÜäìðø !%-5=A_dhp{¨¿ÜþDHVZbnsx}‚‡Œ‘–› ¥ª¯´¹¾ÃÜáéñùþ'/4<AIYckp|„Œ�§¯·¼ÄÖéîö!)19AINS[cw‡ ¨¿ÇÏ×ßäëøý  %*/49>CHMRW\afkpuz„‰Ž“˜�¢§¬±¶»ÀÅÊÏÔÜäéñöþ  2:?DINV^fnv~†Ž“›£«³»ÃËÓÛãëóø%*2:?GOW_gow‡�—Ÿ§¯·¿ÇÏ×ßäìôù !&.6>OW_muz‚“¥ª²ºÐØÝåíò÷ü #+3;CKS[ckpx€ˆ�˜ ¨­µ½ÅÍÒÚâêòú    ' / 7 < D L T Y a i y � Ž � ¥ ­ µ ½ Å Í Ò Ú â ò ú ! !!,!4!,C,H,M,R,W,\,a,f,k,p,u,z,,„,Œ,”,¨,°,Æ,Î,Ö,ê,ò,ú,ÿ,- -%---M-U-q-y-~-ƒ-“-›-«-³-Â-Ê-Ù-á-ú-. .....".'.,.1.6.A.F.N.V.^.f.k.s.�.•.�.¢.ª.¹.¾.á.æ.î.ö.þ.////-/>/F/N/U/Z/_/d/i/n/s/x/€/ˆ/�/˜/®/Â/É/Ñ/Ù/Þ/ã/è/í/ò/÷/ü/00 00000$0)0.03080=0B0G0L0X0`0e0m0u0}0’0—0­0Ç0Ï0à0ñ0 11-1=1V1m1}1Ž1–1›1¨1¸1È1Û1î12242J2R2j2r2w2|2�2†2‹2�2•2š2Ÿ2¤2©2®2³2¸2½2Â2Ç2Ì2Ñ2Ö2Û2à2å2ê2ï2ô2ù2þ233 3333!3&3.3:3B3X3f3v3Œ3 3¨3°3Ê3Ü3ð3 44/474<4A4H4M4\4j4o4w44‡4�4¥4À4È4Ð4Ø4Ý4ì4ô4ù4þ45 5555*525E5J5O5a5i5v5Š5›5­5²5Ç5Ø5Ý5ñ56 686F6W6\6k6z6ˆ6�6˜6 6¨6°6¸6À6È6Ð6Ø6à6è6ð677777$7,7:7B7G7L7`7h7z7‚7”7¤7»7À7Û7è7í7ò7÷7ü788 88%8-858A8Z8b8}8š8¶8»8Ã8È8Ð8ä8é8î8ó8ø8ý899 9999 9%9*929:9B9Z9_9d9l9q9y9~9†9Ž9“9›9ª9¸9Ì9æ9ë9ð9ø9ý9: :::":*:/:4:9:>:C:H:M:R:W:\:i:u:z:‚:Š:’:š:¢:§:¯:·:¿:Ç:Ï:×:ß:ç:ì:ñ:ö:û:;; ;;;;;#;(;-;2;7;<;A;F;K;P;U;Z;_;d;i;n;s;x;};‚;‡;Œ;‘;–;›; ;¨;°;¸;À;È;Ð;Ø;è;ð;<<&<<>>>>">'>,>1>9>>>F>K>S>X>`>e>j>r>z>‚>”>™>ž>£>¨>­>²>·>¼>Á>Æ>Ë>Ð>Ý>é>î>ö>þ>????#?+?@L@Z@j@o@w@|@„@‰@Ž@–@¨@­@²@·@¼@Á@Æ@Ë@Ð@Õ@Ú@ß@ä@é@î@ù@ AAAAA"A'A,A4A?ALAZAjAyA~AŒA A¥A­A²AºA¿AÑAÙAáAéAñAùA BBB%B9BABXB`BeBuB‹B�B—BœB¤B©B±B¹BÁBÆBÎBÖBÞBãBëBóBûBCCCCC$C)C1CBCQCYC^CfCkCsC�C‰CŸC¤C¬C¿CÇCÏCÔCÜCäCéCñCöCþCD DDD D(D0D8D=DEDJDODTDYD^DcDhDmDrDwD|D�D†D‹D�D•DšD¢DªD²DºDÉDÑDâDûDEEE!E;EZE_EdE}E›E E¥E´E¼EÄEÉEÎEÓEèEðEøEýEFF FF'F4FEFJFRFjFrF}F‰FŽF–FžF©F®F¶F¾FÆFËFÓFÛFàFèFðFøF GGGG#G+G0G8G@GHGPGUG]GbGjGoG~G“G˜G©G²G·GÃGËGÔGéGùGH+H3H8H@HEH\HvH~HƒHœH¡H¦H®H·HÍHÒH×HßHöH I)I1I6I>ICIKIPIUI]IbIjIrIzIIˆI�I•I�I¢IªI¯I·I¿IÇIÕIÚIßIçIìIJJJJJ#J+J>JCJHJMJRJ`J†J¯J´JÁJèJñJöJûJK KKK,KGKLKQKlKtKyK~KƒKˆK�K’K—KŸK§K´K¾KÒKÚKéKñK LL$L,LJLRLkLsL�L•LÀLÈLîLöLMM M(M6M;MCMKM]MfMpMuM}M…M�M•MšM¢MªM²M·M¿MÇMÐMÙMÞMæMîMöMþMNN$N,N5N:NBNJNSN\NeNjNrNzN‚NŠN�N—NŸN§N¬N´N¼NÅNÎNÓNÛNãNëNóN OOO"O+O4O9OAOIOROWO_OgOoOwO|O�O‰O‘O™OžO¦O®O¶O¾OÆOËO×OÜOäOìOôOùOP PPPP&P.P3P;PCPKPSPXP`PhPpPxP}P‚P‡PŒP‘P–P›P¤P¬P´PÀPÎPÛPàPèPðPõPýPQ QQQ"Q*Q2Q7Q?QGQOQTQ\QdQlQxQ}Q‚Q‡QŒQœQ«Q¼QËQÐQØQàQñQùQR R R@R\RvR’R§RÄRßRçRïRS SS$S8S?SPSaSvS‡S™SªS¯S·S¼SÄSÌSÑSÙSôSTT-T@TZTpTuT…T“T¦T·TÌTßTôTU'UEU`UyU–U±UÑUïUV1V6V=VBVJVWV\VaViVqVzV…V�VœV¨V­VµV½VÅVÊVÒVÚVâV÷V"W'WDWIWNWSW[WcWkWpWxW€WˆW™WžW¦W®W¶W¾WÃWËWÓWÛWæWëWóWûWX XXX X(X0X8X=XEXMXUX]XeXjXoXtXyX~XƒXˆX�X’X—XœX¡X¦X«X°X¿XØXïXYY(Y0Y8YAYOY\YmYrYzY‚Y‡Y�Y—YœY¤Y¬Y±Y¹YÁYÉYÒY×YßYçYïYôYZZZ-Z@Z]ZbZjZrZzZƒZ‹Z“Z›Z¤Z¬Z»ZÀZÈZÐZØZàZñZúZ [[[[&[.[3[;[C[K[S[[[o[t[y[~[ƒ[ˆ[�[•[�[¢[ª[²[À[È[×[æ[ë[ð[õ[ú[ÿ[\ \\\!\)\.\3\<\D\M\U\Z\_\d\i\n\s\{\ƒ\ˆ\�\˜\¡\©\²\·\¿\Ç\Ì\Ô\Ü\å\í\ö\û\] ]]] ])]1]:]H]M]R]W]\]a]f]n]v]{]ƒ]‹]”]œ]¥]²]·]¼]Á]Æ]Ë]Ð]Ø]à]å]í]õ]þ]^^^^^#^(^-^2^7^<^A^F^K^P^U^Z^_^d^i^n^s^x^}^‚^Š^’^—^œ^¯^Æ^Þ^æ^ë^ó^ü^__#_5_=_E_N_V___d_l_t_|_…_�_–_›_£_«_°_À_È_Ø_à_ò_÷_ü_`` ````"`*`/`7`<`G`T```l`t`|`ˆ`‘`Ÿ`­`»`Ë`à`å`a aa!a&a.a6a>aCaKaSaXa`ahapaua}a…aŠa’a—a¤a¬a±aºaÂaÇaÐaØaÝaæaîaóab bbbb#b+bCb[bsb‰bŽb–bžb£b¨b­b²b·b¼bÁbÆbËbÐbØbòb÷bc$c4cKc_cdclcqcyc�c†cŽc–c›c£c¨c­cµc½cÆcÏc×cÜcácæcëcðcõcúcÿcd dd(d0dBdYdadfdnd†d˜d´dÀd×dédeee+e8eKege}e�e­e¶eÌeéeñeff%f6fGfLfSf_fdfifnfsfxf}f‚f‡fŒf‘f–f›f f¥f½fÂfÊfÏfÔfãfìfgg0gJg`g{g“g©g®g³g»gÀgÙgögh(h0hLhhhph‚h‡hšh±hÎhìhôhi*i?iGi`iwi|i�i¢iºiÂiÛiðiõiúij/j7jTjYj^jcj€j…jŠj�j£j·jÌjÜjájñjöjk k#k+k3k;kCkHk[kikzk‹k�k§k±k¹k¾kÇkÐkÙkÞkçkðkùkll lllll$l)l.l3l8l=lBlGlLlQlVl[l`lelmlrlwl|l�l†l‹l�l•lšlŸl¤l©l®l³l¸l½lËlÐlØlÝlålílmm&m7m?mGm`mzm‚mŠm’m—mŸm³m»mËmÐmØmÝmåmýmnn3nYnun}n�n’nšnŸn¯n·nÀnÉnÒnçnðnooo!o-o2o:oBoGoOoWonowo€o‰o’ošo¢o«o°oÎoÖoßoçopp!p)p1p6pEpJpRpZp_pgp{p–pŸp¨p±pºpÃpÌpÕpÞpçpqqq+q>qRqeqnqsq{q€q…qŠq�q¦q¼qÁqÆqçqìqñqöqûqrr rrrrr#r(r0r5r:r?rVr^rfr}r…r�r r¨r°r»rÅrÎrÓrÜrçrðrþr sss$s-s8sAsJsYsisnsws€s‰s’s�s¦s¯s¸sÇs×sÜsåsîs÷st ttt,t=tBtKtTt]tjtst�tŠt“t˜t¡tªt³t¼tÄtÍtÒtÚtãtëtðtøtuuuu(u-uwFwKwSwXw`whwmwuwzw‚wŠw�w—wœw¤w©w±w¶w¾wÃwËwÔwÝwåwêwòwúwx xxx$x,x5x=xExJxRxZxbxjx|x„x“x›x¤x¬x±x¶x¾xÃxËxÓxÛxäxéxñxyyyyy>yCyKySy[yjyƒy‹y�y•y�y¯y´y¹y¾yÃyÈyÐyÞyæyîyöyûyz zzz%z-z5z=zEzMzRzZz_zgzozwz‹z“zœz­z²z·zÃzÈzÖzézñz{&{3{;{F{N{V{^{f{n{v{~{†{Ž{–{š{¢{¦{®{²{¹{Ç{Ï{×{Û{ã{ç{ï{ù{| |||#|+|4|<|D|H|P|X|]|s|{|ƒ|’|š|ž|¦|®|¿|Ç|Ï|×|ß|ç|ï|}1}5}=}E}W}_}g}o}w}{}ƒ}‹}�}—}Ÿ}«}³}»}Ã}Ç}Ë}Ó}×}Û}ã}ý}~ ~~~!~)~I~Q~Y~d~h~p~x~‰~‘~•~�~¡~©~¾~É~Î~Ö~é~î~ö~ */MRn{Ÿ¨¬´¸ÀÈÐØàåíõú€ €€%€-€5€?€G€L€T€\€d€l€u€}€‚€Š€�€—€ €¨€°€¸€À€É€Ñ€Ù€Þ€æ€î€� ���"�*�/�7�?�H�P�X�`�h�p�x���Š���—�Ÿ�§�¯�·�¿�Ç�Ï�×�ß�ç�ì�ô�ü�‚‚‚‚+‚3‚;‚@‚H‚P‚b‚j‚r‚z‚‚‚‡‚�‚—‚Ÿ‚¬‚µ‚º‚¿‚ǂ߂ê‚ò‚ü‚ƒ#ƒ(ƒ0ƒ5ƒ=ƒBƒJƒOƒTƒ\ƒnƒzƒ†ƒ¡ƒ­ƒ²ƒºƒ¿ƒÇƒÐƒØƒàƒèƒðƒõƒýƒ„ „„ „(„0„8„N„[„u„„„‘„®„³„»„Äӄބã„ë„ð„ø„ý„… …………$…)…1…A…I…W…\…d…w……„…Œ…›…¦…®…¿…Ð…á…ò…††††&†+†0†8†I†U†Z†l†q†�†††‹†�†˜†�†¢†ª†¯†·†¼†Á†É†Ñ†Þ†æ†÷†ÿ† ‡‡!‡*‡2‡F‡N‡a‡i‡{‡ƒ‡Œ‡”‡œ‡®‡Â‡Ë‡×‡Ü‡é‡ñ‡ö‡þ‡ˆ ˆˆˆˆ"ˆ*ˆ3ˆ;ˆCˆKˆSˆhˆpˆxˆ€ˆˆˆ�ˆ•ˆšˆ¢ˆ§ˆ®ˆ·ˆ¿ˆÇˆÏˆ×ˆßˆçˆìˆôˆùˆ‰‰ ‰"‰-‰2‰B‰G‰O‰T‰Y‰^‰f‰k‰p‰x‰ˆ‰–‰ž‰¦‰¸‰Ê‰Ý‰â‰ê‰ï‰÷‰ ŠŠŠŠ$Š,Š1Š6Š>ŠRŠZŠbŠjŠrŠwŠŠ‡Š˜Š¨ŠºŠ¿ŠÇŠÌŠÔŠäŠìŠôŠùŠ‹‹‹(‹0‹8‹=‹E‹J‹R‹[‹c‹h‹p‹u‹}‹†‹”‹™‹¡‹±‹¶‹¾‹Ê‹Ï‹×‹î‹û‹Œ ŒŒŒ8ŒAŒ\ŒdŒŒ„Œ‰Œ‘Œ–ŒžŒ±Œ¹ŒÂŒÇŒÏŒÜŒäŒìŒôŒûŒ���� �(�0�5�=�B�I�`�h�p�x�†�‹�“�›�­�¶�¾�Ã�È�Ð�Õ�ë�ó�ü�Ž ŽŽŽŽ6Ž>ŽIŽQŽVŽ^ŽcŽkŽpŽwŽŒŽ”Ž�Ž¥ŽªŽ²Ž·Ž¿ŽÔŽÜŽäŽìŽñŽùŽþŽ� ����$�)�1�H�P�Y�a�f�n�s�{�€�‡���•���¢�ª�·�¿�Ç�Ï�×�ß�ç�ï�÷�ÿ�����'�;�@�G�O�X�`�i�n�v�ƒ�ˆ���™�¢�ª�²�»�Î�Ú�æ�í�õ�ý�‘‘‘‘&‘.‘3‘;‘@‘H‘M‘R‘Z‘s‘{‘€‘ˆ‘�‘•‘𑢑§‘¬‘´‘Ì‘Ô‘Ù‘á‘æ‘î‘ó‘û‘’’ ’’’&’.’3’8’@’E’J’R’W’_’g’l’q’y’Œ’”’œ’«’°’¸’À’Ñ’Ù’å’÷’““&“+“3“;“C“H“P“Y“a“p“u“}“�“›“©“®“¶“»“Óӓۓç“ì“ô“ù“”””$”)”1”6”>”C”K”X”`”e”m”r”z””‡”Œ”””™”ž”£”«”½”Ȕ͔Քà”å”í”ö”û”•• ••••'•,•4•9•>•F•R•W•_•d•i•q•v•{•ƒ•ˆ•�•••𕢕§•¯•¿•ȕ͕Օà•å•í•ò•÷•ÿ•– ––––#–(–0–5–=–P–U–]–b–g–l–t–y–~–“–›–¤–¬–±–¹–Á–á–é–ò–——$—)—1—9—R—Z—c—p—y—~—†—Ž—¬—´—½—Å—Ê—Ò—Ú—î—ó—û—˜˜ ˜˜$˜,˜1˜6˜>˜C˜H˜P˜U˜\˜a˜i˜n˜s˜{˜‰˜Ž˜–˜›˜ ˜¥˜­˜²˜·˜¼˜Ã˜È˜Ð˜Õ˜Ú˜ß˜ç˜ú˜™ ™™™™'™?™G™O™W™\™d™l™u™}™†™�™”™œ™·™¿™È™Ð™Õ™Ý™å™ê™ò™ú™ šššš%š*š2š7š>šTšgš|š‘šššŸš§š¬š³šÉšÑšÖšÞšãšëš›››+›4›C›X›a›{›„›•›ž›¦›«›³›¸›À›Ý›å›í›ò›ú›œœœœ0œ8œ@œLœ_œgœlœtœ|œ�œ’œšœŸœ¤œ¬œ±œÃœËœÖœÞœãœëœðœøœ�� ���"�'�/�7�<�D�I�Q�Y�d�l�t�y�����”�œ�¡�©�®�¶�¾�Ã�Ë�Ð�Ø�à�å�í�õ�ú�žžžž'ž/ž8žNžSž[žcžhžpžxž�ž”žœž¤ž¬ž±ž¹žÁžÉžÜžážéžñžùžþžŸŸŸ*Ÿ/Ÿ7Ÿ?ŸGŸLŸTŸ\ŸdŸmŸzŸŸ„Ÿ�Ÿ”Ÿ™Ÿ¨Ÿ­Ÿ²Ÿ¿ŸÄŸÉŸÚŸßŸäŸóŸøŸýŸ   / 4 9 L Q V o t y � ” ™ ­ ² · Ï Ô Ù ï ô ù ¡¡¡5¡:¡?¡[¡`¡e¡¡„¡‰¡Ž¡“¡›¡ ¡¥¡­¡²¡º¡¿¡Ä¡Ì¡Û¡ã¡è¡í¡õ¡ú¡ÿ¡¢ ¢¢¢¢%¢8¢@¢E¢M¢R¢Z¢m¢}¢‚¢Š¢�¢—¢·¢¼¢Ä¢É¢Ñ¢Ö¢Þ¢ï¢£££;£@£I£Z£_£g£o£t£|£„£—£¦£«£³£¸£À£É£Î£Ö£Û£à£è£í£õ£¤¤¤¤¤"¤*¤9¤>¤F¤N¤S¤[¤`¤h¤w¤|¤„¤Œ¤”¤™¤¡¤¦¤®¤¼¤Å¤Ê¤Ò¤×¤ß¤ì¤õ¤ú¤¥¥¥ ¥)¥2¥;¥@¥H¥M¥U¥c¥l¥q¥y¥‚¥‡¥�¥˜¥�¥¥¥®¥³¥»¥Ä¥É¥Ñ¥Ú¥ß¥ç¥ð¥õ¥ý¥¦ ¦¦¦*¦/¦7¦<¦A¦I¦N¦S¦[¦`¦h¦p¦u¦z¦‚¦‡¦�¦”¦œ¦®¦³¦»¦À¦Å¦Í¦Ò¦×¦ß¦ä¦ë¦ð¦ø¦ý¦§ §§§§$§,§1§9§P§Y§^§f§k§s§x§€§…§Š§’§¨§³§¸§À§Å§Í§Þ§ã§ë§ð§õ§ý§¨¨¨¨¨ ¨(¨0¨5¨:¨B¨G¨O¨T¨\¨k¨p¨x¨}¨‚¨Š¨�¨”¨›¨ ¨¨¨­¨µ¨½¨Â¨Ç¨Ï¨Ô¨Ü¨á¨é¨î¨÷¨© ©©©"©+©4©=©F©O©X©a©f©o©t©}©‚©Š©�©—©œ©¤©¬©´©¹©Á©É©Î©Ö©Þ©æ©ë©ó©û©ªª ªªª#ª,ª4ª9ªBªJªOªXª`ªeªnªsªxª€ª…ª�ª’ªšª¢ª§ª¯ª·ª¼ªÄªÌªÔªêªïª÷ªüª« ««««#«(«0«E«J«R«W«_«d«l«…«�«•«ž«£«««³«¸«À«È«Í«Ö«ß«è«ñ«ù«¬ ¬¬¬%¬.¬7¬@¬E¬N¬S¬\¬a¬i¬n¬v¬{¬ƒ¬‹¬“¬˜¬ ¬¨¬­¬µ¬½¬Å¬Ê¬Ò¬Ú¬ß¬ç¬ì¬õ¬ý¬­ ­­­!­)­.­7­?­D­M­R­W­_­d­l­q­y­�­†­Ž­–­›­£­«­³­Ç­Ì­Ô­Ù­á­æ­î­ó­û­®® ® ®%®-®2®:®?®G®^®f®n®w®|®„®Œ®‘®™®¡®ª®³®¼®Á®É®Î®Ö®ê®ò®÷®ü®¯ ¯ ¯%¯*¯:¯?¯D¯P¯U¯Z¯h¯m¯r¯€¯…¯Š¯¦¯«¯°¯µ¯º¯Â¯Ç¯Ì¯Ô¯Ù¯á¯æ¯ë¯ó¯ü¯°°° °)°2°;°D°L°U°^°c°h°p°u°z°‚°‘°™°¡°¯°´°½°Â°Ê°Ò°Ú°ð°ü°± ±!±&±.±3±;±W±f±q±‡±�±¤±­±Ä±Ì±Ù±ï±÷±²²!²)²>²F²`²i²r²z²ƒ²Œ²”²�²¢²ª²¯²·²¼²Ä²É²Ñ²Ö²Þ²ã²ë²ó²ø²ý²³ ³³³³8³=³E³J³R³W³_³z³³‡³Œ³”³«³³³Ì³Ñ³Ù³á³é³ò³û³´ ´´´"´.´6´>´C´H´P´U´Z´b´g´o´w´|´�´‰´š´£´«´°´µ´½´Â´Ç´Ï´Ô´Ü´á´é´ñ´ö´û´µ µµµ#µ(µ0µ5µ:µBµGµOµTµ\µdµiµnµvµˆµ�µ�µ¢µªµ¯µ·µ¼µÄµÉµÎµÖµóµüµ¶ ¶¶¶¶5¶=¶E¶J¶R¶Z¶_¶g¶o¶x¶‚¶‡¶’¶—¶¦¶«¶³¶¸¶½¶Å¶Ê¶Ï¶×¶Ü¶ä¶é¶î¶ö¶·····'·,·1·8·=·E·J·R·W·\·d·y·~·�·•·�·¢·ª·¯···¼·Ä·É·Î·Ö·ì·õ·þ·¸¸¸3¸;¸D¸M¸R¸Z¸_¸g¸l¸t¸y¸~¸†¸˜¸¤¸°¸µ¸½¸Â¸Ê¸Û¸ã¸ë¸ó¸ø¸¹¹¹"¹*¹/¹7¹?¹F¹M¹T¹[¹a¹g¹m¹s¹y¹¹…¹‹¹‘¹—¹�¹£¹©¹°¹·¹¾¹Å¹Ë¹Ñ¹×¹Ý¹ã¹é¹ï¹õ¹û¹ººººº!º(º/º6º=ºDºKºRºYº`ºgºnºuº|ºƒºŠº‘º˜ºŸº¦º­º´º»ºÂºÉºÐº×ºÞºåºìºóºúº»»»»»$»+»2»9»@»G»N»U»\»c»j»q»x»»†»�»”»›»¢»©»°»·»¾»Å»Ì»Ó»Ú»á»è»ï»ö»ý»¼ ¼¼¼ ¼'¼.¼5¼<¼C¼J¼Q¼X¼_¼f¼m¼t¼{¼‚¼‰¼�¼—¼ž¼¥¼¬¼³¼º¼Á¼È¼Ï¼Ö¼Ý¼ä¼ë¼ò¼ù¼½½½½½#½*½1½8½?½F½M½T½[½b½i½p½w½~½…½Œ½“½š½¡½¨½¯½¶½½½Ä½Ë½Ò½Ù½à½ç½î½õ½ü½¾ ¾¾¾¾&¾-¾4¾;¾B¾I¾P¾W¾^¾e¾l¾s¾z¾�¾ˆ¾�¾–¾�¾¤¾«¾²¾¹¾À¾Ç¾Î¾Õ¾Ü¾ã¾ê¾ñ¾ø¾ÿ¾¿ ¿¿¿"¿)¿0¿7¿>¿E¿L¿S¿Z¿a¿h¿o¿v¿}¿„¿‹¿’¿™¿ ¿§¿®¿µ¿¼¿Ã¿Ê¿Ñ¿Ø¿ß¿æ¿í¿ô¿û¿À ÀÀÀÀ%À,À3À:ÀAÀHÀOÀVÀ]ÀdÀkÀrÀyÀ€À‡ÀŽÀ•ÀœÀ£ÀªÀ±À¸À¿ÀÆÀÍÀÔÀÛÀâÀéÀðÀ÷ÀþÀÁ ÁÁÁ!Á(Á/Á6Á=ÁDÁKÁRÁYÁ`ÁgÁnÁuÁ|ÁƒÁŠÁ‘Á˜ÁŸÁ¦Á­Á´Á»ÁÂÁÉÁÐÁ×ÁÞÁåÁìÁóÁúÁÂÂÂÂÂ$Â+Â2Â9Â@ÂGÂNÂUÂ\ÂcÂjÂqÂx†Â�”›¢©°·¾ÂÅÂÌÂÓÂÚÂáÂèÂïÂöÂýÂà ÃÃà Ã'Ã.Ã5Ã<ÃCÃJÃQÃXÃ_ÃfÃmÃtÃ{ÂÉÃ�×ÞåìóúÃÁÃÈÃÏÃÖÃÝÃäÃëÃòÃùÃÄÄÄÄÄ#Ä*Ä1Ä8Ä?ÄFÄMÄTÄ[ÄbÄiÄpÄwÄ~ąČēĚġĨįĶĽÄÄÄËÄÒÄÙÄàÄçÄîÄõÄüÄÅ ÅÅÅÅ&Å-Å4Å;ÅBÅIÅPÅWÅ^ÅeÅlÅsÅzÅ�ňÅ�Å–Å�ŤūŲŹÅÀÅÇÅÎÅÕÅÜÅãÅêÅñÅøÅÿÅÆ ÆÆÆ"Æ)Æ0Æ7Æ>ÆEÆLÆSÆZÆaÆhÆoÆvÆ}ƄƋƒƙƠƧƮƵƼÆÃÆÊÆÑÆØÆßÆæÆíÆôÆûÆÇ ÇÇÇÇ%Ç,Ç3Ç:ÇAÇHÇOÇVÇ]ÇdÇkÇrÇyÇ€Ç‡ÇŽÇ•ÇœÇ£ÇªÇ±Ç¸Ç¿ÇÆÇÍÇÔÇÛÇâÇéÇðÇ÷ÇþÇÈ ÈÈÈ!È(È/È6È=ÈDÈKÈRÈYÈ`ÈgÈnÈuÈ|ȃȊȑȘȟȦȭȴȻÈÂÈÉÈÐÈ×ÈÞÈåÈìÈóÈúÈÉÉÉÉÉ$É+É2É9É@ÉGÉNÉUÉ\ÉcÉjÉqÉxÉɆÉ�ɔɛɢɩɰɷɾÉÅÉÌÉÓÉÚÉáÉèÉïÉöÉýÉÊ ÊÊÊ Ê'Ê.Ê5Ê<ÊCÊJÊQÊXÊ_ÊfÊmÊtÊ{ʂʉÊ�ʗʞʥʬʳʺÊÁÊÈÊÏÊÖÊÝÊäÊëÊòÊùÊËËËËË#Ë*Ë1Ë8Ë?ËFËMËTË[ËbËiËpËwË~˅ˌ˓˚ˡ˨˯˶˽ËÄËËËÒËÙËàËçËîËõËüËÌ ÌÌÌÌ&Ì-Ì4Ì;ÌBÌIÌPÌWÌ^ÌeÌlÌsÌzÌ�̈Ì�Ì–Ì�̤̫̲̹ÌÀÌÇÌÎÌÕÌÜÌãÌêÌñÌøÌÿÌÍ ÍÍÍ"Í)Í0Í7Í>ÍEÍLÍSÍZÍaÍhÍoÍvÍ}͙̈́͋͒ͧͮ͠͵ͼÍÃÍÊÍÑÍØÍßÍæÍíÍôÍûÍÎ ÎÎÎÎ%Î,Î3Î:ÎAÎHÎOÎVÎ]ÎdÎkÎrÎyÎ€Î‡ÎŽÎ•ÎœÎ£ÎªÎ±Î¸Î¿ÎÆÎÍÎÔÎÛÎâÎéÎðÎ÷ÎþÎÏ ÏÏÏ!Ï(Ï/Ï6Ï=ÏDÏKÏRÏYÏ`ÏgÏnÏuÏ|σϊϑϘϟϦϭϴϻÏÂÏÉÏÐÏ×ÏÞÏåÏìÏóÏúÏÐÐÐÐÐ$Ð+Ð2Ð9Ð@ÐGÐNÐUÐ\ÐcÐjÐqÐxÐІÐ�ДЛТЩазоÐÅÐÌÐÓÐÚÐáÐèÐïÐöÐýÐÑ ÑÑÑ Ñ'Ñ.Ñ5Ñ<ÑCÑJÑQÑXÑ_ÑfÑmÑtÑ{тщÑ�їўѥѬѳѺÑÁÑÈÑÏÑÖÑÝÑäÑëÑòÑùÑÒÒÒÒÒ#Ò*Ò1Ò8Ò?ÒFÒMÒTÒ[ÒbÒiÒpÒwÒ~҅ҌғҚҡҨүҶҽÒÄÒËÒÒÒÙÒàÒçÒîÒõÒüÒÓ ÓÓÓÓ&Ó-Ó4Ó;ÓBÓIÓPÓWÓ^ÓeÓlÓsÓzÓ�ÓˆÓ�Ó–Ó�Ó¤Ó«Ó²Ó¹ÓÀÓÇÓÎÓÕÓÜÓãÓêÓñÓøÓÿÓÔ ÔÔÔ"Ô)Ô0Ô7Ô>ÔEÔLÔSÔZÔaÔhÔoÔvÔ}Ô„Ô‹Ô’Ô™Ô Ô§Ô®ÔµÔ¼ÔÃÔÊÔÑÔØÔßÔæÔíÔôÔûÔÕ ÕÕÕÕ%Õ,Õ3Õ:ÕAÕHÕOÕVÕ]ÕdÕkÕrÕyÕ€Õ‡ÕŽÕ•ÕœÕ£ÕªÕ±Õ¸Õ¿ÕÆÕÍÕÔÕÛÕâÕéÕðÕ÷ÕþÕÖ ÖÖÖ!Ö(Ö/Ö6Ö=ÖDÖKÖRÖYÖ`ÖgÖnÖuÖ|ÖƒÖŠÖ‘Ö˜ÖŸÖ¦Ö­Ö´Ö»ÖÂÖÉÖÐÖ×ÖÞÖåÖìÖóÖúÖ×××××$×+×2×9×@×G×N×U×\×c×j×q×x×׆×�הכעשװ׷׾×Å×Ì×Ó×Ú×á×è×ï×ö×ýר ØØØ Ø'Ø.Ø5Ø<ØCØJØQØXØ_ØfØmØtØ{؂؉Ø�ؗ؞إجسغØÁØÈØÏØÖØÝØäØëØòØùØÙÙÙÙÙ#Ù*Ù1Ù8Ù?ÙFÙMÙTÙ[ÙbÙiÙpÙwÙ~مٌٓٚ١٨ٯٶٽÙÄÙËÙÒÙÙÙàÙçÙîÙõÙüÙÚ ÚÚÚÚ&Ú-Ú4Ú;ÚBÚIÚPÚWÚ^ÚeÚlÚsÚzÚ�ÚˆÚ�Ú–Ú�Ú¤Ú«Ú²Ú¹ÚÀÚÇÚÎÚÕÚÜÚãÚêÚñÚøÚÿÚÛ ÛÛÛ"Û)Û0Û7Û>ÛEÛLÛSÛZÛaÛhÛoÛvÛ}Û„Û‹Û’Û™Û Û§Û®ÛµÛ¼ÛÃÛÊÛÑÛØÛßÛæÛíÛôÛûÛÜ ÜÜÜÜ%Ü,Ü3Ü:ÜAÜHÜOÜVÜ]ÜdÜkÜrÜyÜ€Ü‡ÜŽÜ•ÜœÜ£ÜªÜ±Ü¸Ü¿ÜÆÜÍÜÔÜÛÜâÜéÜðÜ÷ÜþÜÝ ÝÝÝ!Ý(Ý/Ý6Ý=ÝDÝKÝRÝYÝ`ÝgÝnÝuÝ|݃݊ݑݘݟݦݭݴݻÝÂÝÉÝÐÝ×ÝÞÝåÝìÝóÝúÝÞÞÞÞÞ$Þ+Þ2Þ9Þ@ÞGÞNÞUÞ\ÞcÞjÞqÞxÞÞ†Þ�Þ”Þ›Þ¢Þ©Þ°Þ·Þ¾ÞÅÞÌÞÓÞÚÞáÞèÞïÞöÞýÞß ßßß ß'ß.ß5ß<ßCßJßQßXß_ßfßmßtß{߂߉ß�ߗߞߥ߬߳ߺßÁßÈßÏßÖßÝßäßëßòßùßààààà#à*à1à8à?àFàMàTà[àbàiàpàwà~à…àŒà“àšà¡à¨à¯à¶à½àÄàËàÒàÙàààçàîàõàüàá áááá&á-á4á;áBáIáPáWá^áeálásázá�áˆá�á–á�á¤á«á²á¹áÀáÇáÎáÕáÜáãáêáñáøáÿáâ âââ"â)â0â7â>âEâLâSâZâaâhâoâvâ}â„â‹â’â™â â§â®âµâ¼âÃâÊâÑâØâßâæâíâôâûâã ãããã%ã,ã3ã:ãAãHãOãVã]ãdãkãrãyã€ã‡ãŽã•ãœã£ãªã±ã¸ã¿ãÆãÍãÔãÛãâãéãðã÷ãþãä äää!ä(ä/ä6ä=äDäKäRäYä`ägänäuä|äƒäŠä‘ä˜äŸä¦ä­ä´ä»äÂäÉäÐä×äÞäåäìäóäúäååååå$å+å2å9å@åGåNåUå\åcåjåqåxåå†å�å”å›å¢å©å°å·å¾åÅåÌåÓåÚåáåèåïåöåýåæ æææ æ'æ.æ5æ<æCæJæQæXæ_æfæmætæ{æ‚æ‰æ�æ—æžæ¥æ¬æ³æºæÁæÈæÏæÖæÝæäæëæòæùæççççç#ç*ç1ç8ç?çFçMçTç[çbçiçpçwç~ç…çŒç“çšç¡ç¨ç¯ç¶ç½çÄçËçÒçÙçàçççîçõçüçè èèèè&è-è4è;èBèIèPèWè^èeèlèsèzè�èˆè�è–è�è¤è«è²è¹èÀèÇèÎèÕèÜèãèêèñèøèÿèé ééé"é)é0é7é>éEéLéSéZéaéhéoévé}é„é‹é’é™é é§é®éµé¼éÃéÊéÑéØéßéæéíéôéûéê êêêê%ê,ê3ê:êAêHêOêVê]êdêkêrêyê€ê‡êŽê•êœê£êªê±ê¸ê¿êÆêÍêÔêÛêâêéêðê÷êþêë ëëë!ë(ë/ë6ë=ëDëKëRëYë`ëgënëuë|ëƒëŠë‘ë˜ëŸë¦ë­ë´ë»ëÂëÉëÐë×ëÞëåëìëóëúëììììì$ì+ì2ì9ì@ìGìNìUì\ìcìjìqìxìì†ì�ì”ì›ì¢ì©ì°ì·ì¾ìÅìÌìÓìÚìáìèìïìöìýìí ííí í'í.í5í<íCíJíQíXí_ífímítí{í‚í‰í�í—íží¥í¬í³íºíÁíÈíÏíÖíÝíäíëíòíùíîîîîî#î*î1î8î?îFîMîTî[îbîiîpîwî~î…îŒî“îšî¡î¨î¯î¶î½îÄîËîÒîÙîàîçîîîõîüîï ïïïï&ï-ï4ï;ïBïIïPïWï^ïeïlïsïzï�ïˆï�ï–ï�ï¤ï«ï²ï¹ïÀïÇïÎïÕïÜïãïêïñïøïÿïð ððð"ð)ð0ð7ð>ðEðLðSðZðaðhðoðvð}ð„ð‹ð’ð™ð ð§ð®ðµð¼ðÃðÊðÑðØðßðæðíðôðûðñ ññññ%ñ,ñ3ñ:ñAñHñOñVñ]ñdñkñrñyñ€ñ‡ñŽñ•ñœñ£ñªñ±ñ¸ñ¿ñÆñÍñÔñÛñâñéñðñ÷ñþñò òòò!ò(ò/ò6ò=òDòKòRòYò`ògònòuò|òƒòŠò‘ò˜òŸò¦ò­ò´ò»òÂòÉòÐò×òÞòåòìòóòúòóóóóó$ó+ó2ó9ó@óGóNóUó\ócójóqóxóó†ó�ó”ó›ó¢ó©ó°ó·ó£� ‰« )® ±s xv õ~ ¯àg�äžqïY eun0!ˆnéëø0_ ß>uG±)!™.ü0T2,4r6 8ž:ù>À@Ô@è@ð@ø@AAZ}_o¦wYyÕz¬|O~ŸÜ€†‚š‡ƒŽŠŽÑ‘Ñ“–ö™4›RœN¡V¡^¡w§~§…§Œ§•§ §«§²§¹§Á§tʖʹѼÑÄÑ æFè[êßë›íXïÓó�õ•õ©õ½õÆõÏõÖõÝõAú-ûýdþ9f6\*ƒ ö+-}4„4˜4¬4µ4¼4Å4Ò4Ú4¼O2USYw^`^abc¼dwfbh�k•k©kPvzz|‚m…»‡/Š‹:��“’¶•/—,¨Öª”ÎÍÐCÔéÕðÕùÕÖÖ>Ú@ÝIà¤á”å¨åLw ã ú!+5?IS]gq{…�™£­·ÁËÕ2U8ô<Ð@ŸDIFHøIÏKÇMÜOšQá^Vaja~a’a¦aºaÎaði•{;‚…VŠ�‘õ©­¯åÄÿÇÊî݈ۡޒޜަް޺ÞçŠìOòÓõN÷U÷\÷c÷l÷u÷~÷…÷Œ÷•÷µûÙÿµ½nr9$+Þ3487;kOsO{OOmWmf~n‚w‚~‚…‚\� ‘’m9 n9 o9 p9 q9 r9 s9 t9 u9 v9 w9 x9 y9 z9 {9 |9 }9 ~9 9 €9 �9 ‚9 ƒ9 „9 …9 †9 ŒÜ �Ü ŽÜ �Ü �Ü ‘Ü ’Ü Kè àè áè Vî Wî Xî “ó ”ó ºõ »õ ¼õ ½õ ¾õ ¿õ Àõ Áõ Âõ Ãõ ˜ ™ š › œ � ž Ÿ   iA jA kA ‹h Žj �j �j ‘j ’j “j ”j •j –j —j ˜j ™j ar br cr dr er fr gr hr ir jr kr lr mr nr or pr qr rr ¯z Ý{ â{ ç{ ì{ ñ{ ö{ û{ | | | | | | | #| (| -| 2| 7| -… † † † † † † l‰ m‰ n‰ o‰ p‰ q‰ r‰ s‰ t‰ u‰ v‰ w‰ x‰ y‰ z‰ {‰ |‰ ’ ©’ ” – – !– "– #– $– %– &– '– oœ pœ ž ž Ÿ äŸ åŸ æŸ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¬¨ ­¨ ®¨ ¯¨ »¬ À¬ ¿® À® Á® ® ± ² ² {³ €³ 7´ â¼ ã¼ ä¼ å¼ æ¼ ç¼ è¼ é¼ O¿ 2À ÒÈ ÓÈ oÏ pÏ ÕÔ ÝØ ÞØ ߨ Ôê Õê ¢ð £ð ¤ð 3õ 8õ Xö Yö Zö [ö \ö ]ö ^ö _ö `ö ? � � r s t î ï ð ñ ò ó ô$ õ$ ö$ ÷$ ø$ ù$ ú$ û$ ü$ Æ; Ç; 7S ;T iU nU sU xU }U ‚U ‡U ŒU ‘U –U ›U  U ¥U ªU ¯U ´U ¹U ¾U ÃU £^ œ_ �_ ž_ Ÿ_  _ ¡_ ¢_ £_ ¤_ ¥_ ¦_ Qg Rg ×h Øh ªj ¸l ¹l ºl »l ¼l ½l ¾l ¿l Àl Ál Çr ^t ct ¦?¦@¦A¦B¦i«D¬E¬F¬²µ³¶³·³á·â·ã·ä·^¾_¾`¾hÂYÃ^ÚśŜÅ�ŞşŠšŢţŤÅÈËÉËÎÎÎÎÐÐÐРЩӀԼÕhçiçjçkçlçmçnçoçŒò{ó|ó}ó~óó€ó�ó‚óƒó„ó…ó†ó‡óˆó‰óŠóW¯–›‘–GLý¸*+,-ÎÏÐÑÒÓÔÕÖרˆot$)_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%„„„„lœÜ�äŸÝ â ç ì ô¢õ¢ö¢÷¢ø¢ù¢ú¢û¢ü¢ý¢þ¢ÿ¢£££dõeõfõgõhõiõ;ù<ù=ù>ù?ù÷ú¾ûÈü.ý3ý8ý=ýšÿŸÿ?P½—"˜"™"š"›"œ"�"ž"Ÿ" "¡"„Z…Z¢^§^€_œ`UbZb e¡eógøgÑhìi¥kªk=oþpq@r4t9t €µ� ……†{‰3Š4Н‹ÒŒ^�_�`�a�Ž•�•�•‘•’•“•”•••–•—•˜•™•š•›•œ•�•ž•Ÿ• •¡•¢•£•¤•¥•¦•§•¨•©•(°±±˱̱ͱαϱбѱÒ±Ó±Ô±Õ±Ö±×±رÙ±Ú±Û±ܱݱޱ߱à±á±â±ã±ä±�×è×é×"ÙGêHêIê´ñföíù>üCü]ýnþ�ž¿ÀÁÂÃÄå ^ _ ` a ÿÛ› ¥ª¯7âçìñöF"ñ"ö"û"##)%Ô%Ù%Þ%ã%è% (·(¼(Á(Æ(Ë(Q+ü+,, ,,–.@/E/J/O/T/M2N2O2P2Q2R2S2T2U2ËTÌTÍTÎTÏTrWwW|W�W†WðYÌcÍc|eifjfkflfmfnfofpfqfrfsftfufvfwfvs|sItuuöu�vòv÷vswxwôwùwuxzxóxÏy£z¨z0¼1¼q¾r¾s¾t¾u¾v¾w¾åÇæÇçÇèÇéÇRÊ1Ë2Ë3Ë4ËÛÛÛÛÛÛÛÛÛÛÛÛÛ Û!Û"Û#Û$Û%Û&Û'Û(Û)Û*Û+Û,Û\ F Ÿ ¨ © ª « ¬ ­ ® ¯ ° ± Õç%è%é%Í'Ò'×'3)8)=)Ê-F.-/.///0/1/2/3/4/5/6/7/8/ý3þ3ÿ34<566666 6!6"6½9ž:Ÿ: :¡:¢:£:¤:¥:¦:Ž?�?�?‘?’?“?”?•?–?—?˜?™?š?ØE,H-H.H/H0H1H2H3H4H5H6H7HU_³_R`S`T`JaOaTa€b�b‚bƒbÅcÊcÏcÔcHeIeJeKeLeÚfßfäféfîf�hžhŸh•išiŸiÌjÍjÎjÏjlll lƒmùmÕtÖt×tØtÙtÚtÛtÜtÝtÞtßtàtátâtãtätåtætçtèt™Ç¸ÈGÉHÉIÉJÉKÉbÍ<ÎBÎãÎgÏmÏ ÐnÐÓÐdÑûÑüÑýÑþÑÍÖÎÖÏÖÐÖÑÖÒÖÓÖÔÖÕÖêãëãìãíãîãïãðãñãòãóã ô õõõ;öÂöÃö£û0ü1ü2ü3ü4ü5ü…òóôõöÉÊËÌÍÎÏÐÑÒ� b g -¢v—! "á/Ÿ1v3Ï4w57¨7›9 ;3?ª?QCÈC›ZK[y`SoÊo¢xzÿ{¸} ~€„�Õ‚Oˆƈœ‰FŠs�ê�e’Û’•A–·–Œ—5˜ĘU™Mšl›‰�žµ¤B¥¦À¦´ª*«ÿ«¨¬£ËÌîÌhÎÞγÏܡܿæ]çÓèbéêê:ì±ì÷ínî±ï(ð ô‚ôåø[ù–ú$üsýêýDÿÇÙOª õÏE— â9 â ÷ m B v,ò.#LšLDM8P¯P…Q/RãUZV0WÚWžZ-[Â[­\_Ö`—avb[cÒce�egxgÌhCijÑjomþmÔn~ow‘w:xÉxZy^{ë{”|#}´}?ƒâ…iˆ½Š2Œ»�2ŽŠ��ï�F‘ð‘X“ô“K”•+–�—¢¨…«¬ÏŒÏbÐjÑ@Ò~ÔõÔ�רÝÚlÛ<ÞöàRâ ãùãÏä%çßçÎè¤é¶DM ±È/”/i01‘56u67�89/=¦=NAÅARE·F,GŸHIuJêJkLáL‚NøNBP·PîQcRÜ_R`+e¢e¢j/kÃkœl+m¼mF|Ó|¨}ÿ}“~lûŒ€s‚邾ƒg„A…·… ‹˜‹ï‹„Œ^�î�€ŽC’Ò’)“¾“˜”(•º•i–j–k–l–m–n–o–p–q–r–s–t–u–v–w–x–û�üžŸèŸÈ ΠÍ¡w¢ä¢é¢w£|£ ¤¤�¤¢¤.¥è¥̦3§8§¨»¨À¨vªíªëm¬’­ ®©¯[°c±d±e±f±g±h±i±j±k±l±m±n±o±p±q±r±ó¸ô¹ú¹àºÀ»Æ»żo½ܽá½o¾t¾¿¿•¿š¿&ÀàÀÄÁ+Â0ÂëðÃfÅÝųÆ]Ç‚ÈùÈ‘Ê;ËEÜ»ÜéÝáŸátâã†èéÚíˆòSötú5ü«ü?ýþ§þ8ÿYÏ5gö‹e Ç$V%,&Á&›'®+=,-¨-‚.94°4†506Ž89<¢<S£SyT#Un©noÖo€pÿ~vL€ö€ÄŒ;�޻ޱ�'��‘±’zô yõ jö ¤Å YúÞýÓ +{�Øçî€ù¼ý1ž æ å ¼hç²5rÅ$*%ê'o('-.Ñ/ 1z1Î2¼3c;Â;$"<�<ñ$<b=Ä=&>…>ä>F?¨?@i@È@'A†AåAD#B´#B"C�Cà CED™½i� � Ø� Ý“ ‘ÎEô*2ºeq„rHsWÈ{ÉÌ@o"Ó"7#� ¥ Ê ¾‚Íf˜h¥jô‚«ƒ “œה N~� Š!h"¬#>$%•%'[())5*g+’,•-¼.ýBˆHUœ�˜�O·ü·�¸ÒÝßoßÅßàqàÇàí‡9 “Ü Pè âè Yî •ó Äõ ¡ lA Œh šj sr ´z <| .… † }‰ ’ ª’ ” (– qœ ž Ÿ çŸ !¢ °¨ Ŭ î %± ² …³ 8´ ê¼ T¿ 7À ÔÈ qÏ ÖÔ àØ Öê ¥ð =õ aö D ‘ u ô ý$ È; 8S @T ÈU ¤^ §_ Sg Ùh «j Âl Èr ht Au #w Ax [y Û} € Ú€ Ö� ´… ‡ ˆ � GŽ � ø“ g± N¾ûÍ Ð¾ÐÙЪÖRÙâãäè™î­ðnóÔôß ë…3œ4ø oâÅâîäÍüÞ°=N™[i"Ý"X#ò%Þ&Ì'Ë)à+Ù1X¥C¦n«G¬²¸³å·a¾mÂcÃ¥ÅÊËΠЮӅÔÁÕpç‘ò‹ó\´ ›Q½.Ù�y.p% „qœá�éŸñ ”¢¼¢£jõ@ùüúÃûÉüBýFÿnÿ¤ÿD U¢"†Z¬^…_�`_b¢eýgÖhíi¯k>oqEr>t €¶�…†‰|‰5Š´‹׌b�ª•-° ±å±”×ê× Ù'ÙJêµñköîùHübýsþ/Ã<ŸÅê b  Ü´8ûG" #*%í% (Ð(R+,—.Y/V2ÐT‹WñYÎc�exf‚sNtuûu•vüv}wþwxôxºyÔy­z2¼8½x¾êÇWÊ5Ë-Ûa G ¤ ‚ ² ÀÚê%Ü'B)Ï-K.9/4A5#6Â9§:›?ÝE8HV_¸_U`Ya„bÙcMeóf h¤iÐj%l„mþmétžÇ½ÈLÉgÍHÎèÎsÏÐsÐÙÐjÑÿÑÖÖôãàóôõ@öÄö¤û6üoŠ÷Ó† l 2§{œ!"æ/¤1{3Ô4|577‘7­7 9;8?¯?VCÍC ZP[~`XoÏo§x$z|½}¥~ €‰�Ú‚Tˆˈ¡‰/ŠLŠx�ï�j’à’•F–¼–‘—˜;˜ʘZ™Ršq›r�Ž�ÿ�žž¤º¤+¥G¥¦©¦Ʀ¹ª/«¬‘¬®¬¨ËÌóÌmÎãθÏûÛ܊ܦÜëæbç¼èØèKégéïê?ì¶ìüísî¶ï-ðô‡ôêø`ù›ú)üxýïýIÿ°Ì?ÞT¯%úÔJœç> Ë è ü r G {,÷.(LŸL-MJM=P´PŠQR5RèU_V5WÃWàW‡Z£Z[2[Ç[–\³\_Û`œa{b`c×ce’eg}gÑhHijºj×jXmtmçmnÙngo„oív wzw–w#x@xÏx_yG{c{Ô{ð{}|š|)}¹}(ƒDƒƒç…nˆŠ7ŒÀ�7Žs�����ô�K‘Ù‘ö‘A“]“Ý“ù“P”ì” •0–¢—§¨Š«¬Ï‘ÏgÐoÑEÒƒÔúÔ’× ØâÚqÛAÞßàûàlá*âWâàâãþã¥äÕäûæ*çµçäçÓèzéªé»IR ¶Íð. /}/™/n0û01z5–56#6z67$7•8 94=«=SAÊAWE¼F1G¤HIzJïJpLæL‡NýNGP¼PóQhRá_W`0e§e‹j§jk4kÈk…l¢l1mÁm/|K|¼|Ø|­}~˜~Ur€‘€x‚î‚ÃP„m„F…¼…òŠ‹�‹�‹ô‹‰ŒG�d�ô�…Ž,’H’»’×’.“Ó�”ž”.•¿•y–žŸíŸÔ Ò¡|¢î¢�£¤§¤/¥Ï¥í¥ͦ=§¨Ũ{ªòªÈ«V¬s¬—­®®¯`°s±ø¸ºåºÌ»ʼt½æ½y¾ ¿Ÿ¿'ÀÇÀåÀÅÁ5ÂõÃkÅâŸÆFÇcLJÈþÈ–Ê@ËJÜÀÜîÝûàáˆá¤áyâã#ãoè‹èüèéßí�òXöyú:ü°üDýþþ­þ=ÿ^Ô:Plßû�N k °$Ì$?%[%1&Æ&„'¡'—+³+&,B,-­-k.ˆ.>4µ4‹5666“8 9<§<ýRSŒS¨S~T U)Unn’n®noÛoip†p{Q€߀ü€ÉŒ@�ޤŽÁ޶�,�†‘¶’O_RSU]\Y[^afVZXTbge`NWcQP�´²³ò—·¸÷¦©¨£¥¢§ÎÖÒØÚáÞÑÍÓÝÏÙßÛÌÐÕã×ÔÜàâ© ¡ ¢ £ ¤ ¨ ¦ ¥ ” � ™ • š – ‰ ‘ ‹ Š “ ®¯€ ÿ ü � ‚ ƒ ƒ ˆ Œ … ¡ Ÿ ¢ � ™ œ ¤   £ ¥ – — š ˜ › ž •½¼² ± › ¬ « ·"·#x¶·¹² ® ¯ ¶ µ ×"—#}|—˜‹�‰ˆ‡Ë Û Ü È Ú Ù Ø Ý æ á Ø€�¦¶´µ¿½¾Ï œ�ë í ä è ì Å à Á ò ñ ð ó ô ë à å oklrsq‘ùø¹º€±­°ÞêÙéïÕ×îíáìëàÜØÒÔÓæâßèçÚãÝÛŠ£¦Ÿ¨ ¢¥§¡¤ŠŒ‹�‡…‰†ž¾¿º»¼½ÆÚÛðîã ¶·©èêá甕Š�Œ‹¨™¶¸ÈŬ­óôòñ½»Å”¦„ŽÏÎÍø¾ uÚ”•“–‚³¯ � ¹"É"Ì"Ï"Ò"²#µ#º#¿#ÞŸ ¡ž¢Á ¶ ¦ êèçéëÕ"Ú"ß"™#©#¬#¯#À©¨ªüà  Ä à ƒ ´ �±²³´£ˆÇ … ¸ ¬ óñðòôçÍËÌË ˆ º ›üÑÏÐÏ Áÿ©Ó ‚Õ Ç À…ö Ì ˆø Ù¨‹ŒŠù–ïç« ¨ ˜ Ž © úÁ¿¾À‘�Ž�’áßÞàâ‚€ÿ�ƒÒÎÍÑÓí ñ ÿ ‚��õ �«Š¯°³’¦¡Âßãèöø™�Õw‡ïÕwðÉÕw»ÈÕw³äÕw‰ÈÕwþWÈÞ³ä“�&þWÈÞ‹ã�Ý%þWÈÞ·‚˜X´ÛûÙ¬¤¸$�®$Ÿ¸$þWËÖ’—þWò¯ûÙþý†Ö‹ ˜X¡¸$ûÙ²þÆœ¸$ñ¸$þWä­ðÊðÔþW¯¨ Ä”Ñý†ª¨ °âTþW¯¨ Ĕуòª¨ �܃Xúô!þW†Ù—¢º_’Ó"ÇÓ"ùÓ"Ç_’ŠÈ�‚•¢�º_ÈÞ¿á³ä“�&º_ÈÞ¿á‹ã�Ý%Ç_ÈÞ¿áì¼Î áMáMâMÖ�äMóØM 6­ƒ‘0þˆêñÚ”ä­ÇÚÕÚÇ_ÈÞ¿áì¼ç “ïÇÚ¦ÑÇ_ÈÞ¿áì¼ç ä­ÇÚ¦ÑÇ_³äªê¬òüý†¯Ù Ç_³ä¿áªêã�&Ç_‹ãêæì¼¤ÎÇ_‹ã¿áêæÑÝ%Ç_²Ÿ‚•¬òýÚ§f¶¿&§f‚„§f÷À §f†š§f«¼§f±f©f‚ï©fÈÞ©f³ä©f‹ã©fôí©fÚÀ©fâ°©f–®©fó¥©fŸ…©f⺩ffàâ©f˜Ú©fõ„©fΞ©fä­©f†š©fŽýý†�Š žŠ ‘Ä °þƪ¤¸$¡ ³ä¸ß1½‡¡ ³äžHžHŸH SetValZSTÁ š1³žûŸô½‡¡ ³äÆþ½‡¡³ä¸ß1ê ³ä¸ß1½‡Uÿë‘C½‡¡³äÞà”ê ³äÞà”½‡Òá”ë‘C½‡¡³äÆþê ³äÆþ½‡Òá”ë‘C½‡»¤¸$‹¤¸$Û¤¸$ü¤¸$ʤ¸$¶j³ä ²²³ä³ä´j³ä¢ã”¶j¤¸$ ²²¤¸$¤¸$´j¤¸$Ðã”» À°Æ¤¸$¯³ä¸ß1»á”½‡¯³äÞà”øá”½‡¯³äÆþ°â”½‡øôôõMutÁ÷óè òU†Ïrõ¸ß1ƒ„ì/Q¥·2ý=¸ß1øé䔳ä¸ß1¨å”³äøé䔳äÞà”¨å”³äøé䔳äÆþ¨å”³äøððñImmutÁóóè ›Ê|ð~‰Þé³ä¸ß1¨å”³äø©æ”³äÞà”¨å”³äø©æ”³äÆþ¨å”³ä䤸$–g†0†0aˆ0�ñ.×"®®>¾ ©m˜gÈç”þç”§³ä¸ß1½‡�³ä¸ß1¦³ä¸ß1½‡ððNodeRefÁõheightÁ¾öƒª@¾÷¡¥¾”;(cÈÔé䔳ä¸ß1ë0ºj4V›=ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔé䔳ä¸ß1¨å”Öé”UÿÖ锽‡�³ä¸ß1£³ä¸ß1½‡Ýè”ßè”Uÿß蔽‡§³äÞà”½‡�³äÞà”¦³äÞà”½‡ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔé䔳äÞà”Áé”ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔé䔳äÞà”¨å”±ì”Uÿ±ì”½‡�³äÞà”£³äÞà”½‡Ñë”Óë”UÿÓ딽‡§³äÆþ½‡�³äÆþ¦³äÆþ½‡ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔé䔳äÆþÁé”ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔé䔳äÆþ¨å”‹ï”Uÿ‹ï”½‡�³äÆþ£³äÆþ½‡¬î”®î”Uÿ®î”½‡ �ðÊÈÞÖн‡ ûðÊÈÞÖн‡ û©ö³äÖн‡³÷° ä­³ ’г þÆ‹g‹g‹g‹g‹g‹g‹g‹g‹g‹g‹g ‹g#‹g#‹g%‹g%‹g'‹g)‹g)‹g*‹g+‹g1‹g3‹g5‹g7‹g7‹g;‹g>‹g>‹g@‹gB‹gD‹gG‹gJ‹gL‹gQ‹gQ‹gT‹g‹g^‹g‹gp‹gv‹gy‹g}‹g‹g ‹g ‹g¿Èç”õ Èç”ÖÐUÿÖÐÂÈç”—€•ÖЫðÊÈÞÖн‡�ðÊÈÞÖн‡�©ö³äÖн‡³÷Æ ÌŠÌŠ̵ÏŠ�Њœ“D^)c˜þOþ�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ’Š» ’Šêþ?‹­Æ ÌŠÌŠ̵ÏŠ�Њœ“D^)c˜þOþ�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫþÆ» þÆ þÆž°Uÿ‹­¸ ’Џ þÆí¤¸$…e ºÃ;�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫºÃ;…ežŠ �p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫìÜ …eºß�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫƒ„…eô‡ü¾…e«©À¾…eç› ב)·ä­»€†»£Ž¹ä­Ê ¾Ú”ñÚ”ä­ ¼ðÊÈÞ½‡ ÄðÊÈÞÖÐ 釕Uÿ ÖÐ Ê釕½‡ ÊðÊðÊÈÞ�ˆ•Uÿ“ïö‡• Ð釕½‡ ÊðÊÈÞÒˆ•îª ¸釕½‡ö‡• ¼©ö³ä½‡ Ä©ö³äÖÐ ¸‰•Uÿ¢ˆ• ʸ‰•½‡ Ê©ö©ö³ä߉•Uÿ©à'ʼn• 艕½‡ ʳ÷©ö³ä�Š•Ó× ¸¸‰•½‡ʼn•å “ïå ä­¤¸ß1ƒ„½‡¢¸ß1ƒ„½‡¤³ä¸ß1½‡¢³ä¸ß1½‡¤³äÞà”½‡¢³äÞà”½‡¤³äÆþ½‡¢³äÆþ½‡Íý†Ëý†©¸ß1ƒ„½‡«¸ß1ƒ„½‡©³ä¸ß1½‡«³ä¸ß1½‡©³äÞà”½‡«³äÞà”½‡©³äÆþ½‡«³äÆþ½‡¨¸ß1ƒ„½‡¨³ä¸ß1½‡¨³äÞà”½‡¨³äÆþ½‡´¸ß1ƒ„½‡´³ä¸ß1½‡´³äÞà”½‡´³äÆþ½‡º¸ß1ƒ„½‡Û ¸ß1ƒ„½‡ÖÖ SplitResultÁÛleftÁÜkvÁÝrightÁ棑)ïÚHK¸ß1ƒ„¨å”Uÿ ï ï DormantMutRefÁò í ì ó ¡¥ì nÝœ¬•wò ò Wö êÝ1à ÷ úÝ1à ø «à ù ¡¥à Þ ×¯0W“Ô¸ß1ƒ„½‡ ½‡º³ä¸ß1½‡Û ³ä¸ß1½‡ÖÖýŽ•Û‘�•Üž�•Ý©�•棑)ïÚHK³ä¸ß1¨å”Uÿ ï ï ç�•ò í ì ó ¡¥ì nÝœ¬•wØÞ1‡’•º³äÞà”½‡Û ³äÞà”½‡ÖÖýŽ•Û‘�•Üž�•Ý©�•棑)ïÚHK³äÞà”¨å”Uÿ ï ï ç�•ò í ì ó ¡¥ì nÝœ¬•wò ò Wö êÝ1à ÷ úÝ1à ø «à ù ¡¥à Þ ×¯0W“Ô³äÞà”½‡‡’•º³äÆþ½‡Û ³äÆþ½‡ÖÖýŽ•Û‘�•Üž�•Ý©�•棑)ïÚHK³äÆþ¨å”Uÿ ï ï ç�•ò í ì ó ¡¥ì nÝœ¬•wò ò Wö êÝ1à ÷ úÝ1à ø «à ù ¡¥à Þ ×¯0W“Ô³äÆþ½‡‡’•ö¸ß1ƒ„½‡ö³ä¸ß1½‡ö³äÞà”½‡ö³äÆþ½‡ý¸ß1ƒ„½‡ý³ä¸ß1½‡ý³äÞà”½‡ý³äÆþ½‡ÑC³ä½‡™D³ä½‡ ³ä ³äUÿmä­úý†§ ³ä¸ß1½‡§ ³äÞà”½‡§ ³äÆþ½‡¨³ä¸ß1»á”½‡¨³äÞà”øá”½‡¨³äÆþ°â”½‡åé䔸ß1ƒ„¸ß1åé䔳ä¸ß1³äåé䔳äÞà”³äåé䔳äÆþ³ä婿”³ä¸ß1³ä婿”³äÞà”³ä婿”³äÆþ³ä ™釕 ™¸‰• ›釕½‡ ›¸‰•½‡ ‰½‡ ‹½‡Â¸ß1ƒ„½‡¾¸ß1ƒ„½‡Â³ä¸ß1½‡¾³ä¸ß1½‡Â³äÞà”½‡¾³äÞà”½‡Â³äÆþ½‡¾³äÆþ½‡ÿ³ä½‡³äæ³ä½‡³äá¸ß1ƒ„½‡á³ä¸ß1½‡á³äÞà”½‡á³äÆþ½‡ í釕 í¸‰•«³ä¸ß1½‡³ä´³ä¸ß1½‡³äŸ³ä¸ß1½‡³ä±³ä¸ß1½‡³ä´³äÞà”½‡³äŸ³äÞà”½‡³ä±³äÞà”½‡³ä«³äÆþ½‡³ä´³äÆþ½‡³äŸ³äÆþ½‡³ä±³äÆþ½‡³äñD³ä½‡ç‰ç‰ClonedÁé‰Ç,ô:³^‡Ã/ã¬ìŠìŠRevÁîŠ�ÄF‡ÂœrMºNÓü¾ñD³ä½‡ç‰ç‰™¢•é‰Ç,ô:³^‡Ã/ã¬ü¾ïD³ä½‡‚Ù)ïD–®½‡¬§ïD¾¤½‡Ý‚ñD½‡çó ñD½‡šŒšŒóò œŒ�¥I�Œ¤¥I]”£• ÛŽÛŽùñ ÝŽ‰ò ÏNï«JþÒH"û¸ß1ƒ„½‡÷¸ß1ƒ„½‡û³ä¸ß1½‡÷³ä¸ß1½‡û³äÞà”½‡÷³äÞà”½‡û³äÆþ½‡÷³äÆþ½‡É9³÷Ü9¥µ¥µ¤¦µßƒ†§µ¦ƒ†¼ºàË£ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw®®«°¿ ”3¯f*²Û�³÷õõĵ AllocErrorÁ Ô]YO^÷`UÿÝ9  Ý8Ý8ArcInnerÁß8strongÁä7à8Âä7á8¹¡ä71%wãÿÃxd³÷UÿÂà™¸ß1ƒ„òýòýÁôý‚õý’öýЂÝ ßÖ çP™¸ß1ƒ„ðü™³ä¸ß1檕™³ä¸ß1ðü™³äÞà”檕™³äÞà”ðü™³äÆþ檕™³äÆþðü­³ä¸ß1½‡­³äÞà”½‡­³äÆþ½‡šDìÜ šD‡ïšD³äšDÍžšDŒœšDšDšDå;ä3³ä¢ã”ä3¤¸$Ð㔀¬ù«ý­ý­ MaybeUninitÁÿ­uninitÁ瀮�çÙW£Ÿì·œ ³äù«ý­ý­έ•ÿ­ã­•瀮�çÙW£Ÿì·œ ¤¸$ù« ‘¯•ù« 㯕› — — RawTableInnerÁ ˜ bucket_maskÁ K ™ctrlÁ K š growth_leftÁ K ›itemsÁ KT“ ×Gפ⛳ä›ù‡›¤¸$�³äø³äøƒ  îöŸŸ öãó‹¤ô‹ljô²ßk#Ͷ½‡ðù‡ô™Ä;ô°³ô´²ô˜þôÉ÷ôñ”°•ñ³äñù‡ñ¤¸$ï³äïó¦$“2“2æ„#•2�ñ.ç–\*=°"�ÿ°“2“2æ„#•2�ñ.ç–\*=°"�ìÜ “2“2æ„#•2�ñ.ç–\*=°"�ǯ“2“2æ„#•2�ñ.ç–\*=°"�ß§“2“2æ„#•2�ñ.ç–\*=°"�ñœ“2“2æ„#•2�ñ.ç–\*=°"�³�“2“2æ„#•2�ñ.ç–\*=°"�™“½1½1ÞºÀ1�ñ.Á1ÂÙñ.?Ý3 ×*rÿ°½1½1ÞºÀ1�ñ.Á1ÂÙñ.?Ý3 ×*rìÜ ½1½1ÞºÀ1�ñ.Á1ÂÙñ.?Ý3 ×*rǯ½1½1ÞºÀ1�ñ.Á1ÂÙñ.?Ý3 ×*rß§½1½1ÞºÀ1�ñ.Á1ÂÙñ.?Ý3 ×*rñœ½1½1ÞºÀ1�ñ.Á1ÂÙñ.?Ý3 ×*r³�½1½1ÞºÀ1�ñ.Á1ÂÙñ.?Ý3 ×*r™“ý1ý1Ó €2�ñ.�2ÂÙñ.‚2… ñ.뜿Eòürÿ°ý1ý1Ó €2�ñ.�2ÂÙñ.‚2… ñ.뜿EòürìÜ ý1ý1Ó €2�ñ.�2ÂÙñ.‚2… ñ.뜿Eòürǯý1ý1Ó €2�ñ.�2ÂÙñ.‚2… ñ.뜿Eòürß§ý1ý1Ó €2�ñ.�2ÂÙñ.‚2… ñ.뜿EòürñœÉ¡ý1ý1Ó €2�ñ.�2ÂÙñ.‚2… ñ.뜿Eòür™“İ”ÞŒ¯éûãüøùðú®¯‚åP«Êó¯©Õ"Íݾ0¾0WeakÁÁ0í Ÿ-Â0«Ÿ-‘n?Q’òäQ”Þ‡’•Û-Û-RcInnerÁÝ-�©•Ÿ-Þ-Ÿ-ß-�Ÿ-6>¿Á)ù˜\”ÞÿÂ;µÉºÃ;ðÉÌî·ã…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅõ õ ScalarRangeÁö ‚Ó ÷ ’Ó `S$Ò‡2½‡ÿ°™Ä;ìÜ ¸ß1…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅ–®½‡°³È·Ù­´²ǯÏ×…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàÅøÔ½‡¥Î¨ô¦ä˜þýŸ‚ÈÞŸ¶Ïñá…C…CüˆC�†Ð=‰C¶Ð=ò¹Úàųä³ä½‡…C…CüˆC�†Ð=‰C¶Ð=ò¹Úàž¤½‡ËØ…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàŽ‡ý†­¦$óÁå�øÞ'ðÊÅ8Å8Ⱦ•È8í ä7É8«ä7=ÆÖ�Bó¦$‡’•Å8Å8Ⱦ•È8í ä7É8«ä7=ÆÖ�Bƒ¼‡’•Å8Å8Ⱦ•È8í ä7É8«ä7=ÆÖ�B÷Ÿ‡’•Å8Å8Ⱦ•È8í ä7É8«ä7=ÆÖ�B³÷‡’•Å8Å8Ⱦ•È8í ä7É8«ä7=ÆÖ�B‡’•Ý8Ý8ü¨•ß8�©•ä7à8Âä7á8¹¡ä71%wãÿÃxdƒ¼Ý8Ý8ü¨•ß8�©•ä7à8Âä7á8¹¡ä71%wãÿÃxd÷Ÿü±•ŸŸ öãó‹¤ô‹ljô²ßk#ý­ý­έ•ÿ­ã­•瀮�çÙW£Ÿì·œºÉ•½‡ŸŸ öãó‹¤ô‹ljô²ßk#ââ InternalNodeÁ幡¾æedgesÁ¾y¸¥ð÷’¸ß1ƒ„½‡ŸŸ öãó‹¤ô‹ljô²ßk#ââÂ˕幡¾æäË•¾y¸¥ð÷’³ä¸ß1½‡ŸŸ öãó‹¤ô‹ljô²ßk#ââÂ˕幡¾æäË•¾y¸¥ð÷’³äÞà”½‡ŸŸ öãó‹¤ô‹ljô²ßk#ââÂ˕幡¾æäË•¾y¸¥ð÷’³äÆþ½‡ŸŸ öãó‹¤ô‹ljô²ßk#ÒÒLeafNodeÁÕparentÁ¾Ö parent_idxÁ¾×¶¾ØkeysÁ¾ÚvalsÁ¾ø©7BCËJ-¸ß1ƒ„½‡ŸŸ öãó‹¤ô‹ljô²ßk#Ò҈ЕՙЕ¾Ö«Ð•¾×¶¾ØÍЕ¾ÚÝЕ¾ø©7BCËJ-³ä¸ß1½‡ŸŸ öãó‹¤ô‹ljô²ßk#Ò҈ЕՙЕ¾Ö«Ð•¾×¶¾ØÍЕ¾ÚÝЕ¾ø©7BCËJ-³äÞà”½‡ŸŸ öãó‹¤ô‹ljô²ßk#Ò҈ЕՙЕ¾Ö«Ð•¾×¶¾ØÍЕ¾ÚÝЕ¾ø©7BCËJ-³äÆþ½‡èıõ((RawVecÁ+” ,¡¥©XÕ”ˆó‰«Ê½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰‡ï½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰ºÃ;½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰ðɽ‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰ìÜ ½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰»È½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰ÌÁ•½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰º±½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰ƒ„½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰³ä½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰‹ã½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰–®½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰ëª½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰‹©½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰Ö¨½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰Ω½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰�ª½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰Κ½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰øÔ½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰—™½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰Íž½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰Œœ½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰ó¥½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰á¡½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰²Š½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰è“½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰©ö½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰‰È½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰úÄ•½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰¾¤½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰†Ù½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰½‡((ÊÕ•+” ,¡¥©XÕ”ˆó‰½‡ š  š ScopeGuardÁ � dropfnÁ “  ž � “ ¥êÚ»­å�>”°• ´½‡ ”°•Uÿ‡’• ” ” TableLayoutÁ •ß K – ctrl_alignÁ KÓk®%¹Õ– š  š òæ• � …ç• “  ž � “ ¥êÚ»­å�>  ‘ ‘RawTableÁ ”ò& K •« K –…  K¸:1‹{ho¸‰•½‡ µ¸‰•½‡ ðé•Uÿ š  š òæ• � …ç• “  ž � “ ¥êÚ»­å�> ”°• » µë•UÿřǙș­É™Ê™àË™óG*¤�R{9 í©•ÿ ± ±’ ¶ hash_builderÁ  ·ò& ›j™£ôÒSÍðÊÈÞÖн‡ ± ±’ ¶Éë•  ·ò& ›j™£ôÒSÍ©ö³äÖн‡ ‘ ‘üè• ”ò& K •« K –…  K¸:1‹{ho釕½‡òé•©7«7¬7OsÁ­7óÙ6®7¯7SimpleÁ°7óÙ6±7²7 SimpleMessageÁ³7óÙ6´7µ7CustomÁ¶7óÙ6VNè7Oö‡ö‡÷‡ CustomOwnerÁø‡óÙ6 fûËÒñD¶ÚÇþÇþIntoIterÁÊþ” Ó(¯AzF¢oqfˆêá?á?©ï•ä?�†Ð=å?õÙÐ=æ?йÐ=ç?«Ð=è?í Ð=é?’Ð=ö_©ú¥O ©ö½‡á?á?©ï•ä?�†Ð=å?õÙÐ=æ?йÐ=ç?«Ð=è?í Ð=é?’Ð=ö_©ú¥O ¾¤½‡Öþóü÷ýœü€†Æò‹‡ ®� £Ž Å ÿÍ"ƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�𕃊ƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—ìð•§‘•ØÞ1¶••ê—•¶¶©ï•º†Aà »úÝ1à ¼«à Êk Q\?‹¸ß1ƒ„½‡¶¶©ï•º†Aà »úÝ1à ¼«à Êk Q\?‹³ä¸ß1½‡¶¶©ï•º†Aà »úÝ1à ¼«à Êk Q\?‹³äÞà”½‡¶¶©ï•º†Aà »úÝ1à ¼«à Êk Q\?‹³äÆþ½‡ò©†H†H©ï•‰H�€çººNµ:³ä½‡ÖÖýŽ•Û‘�•Üž�•Ý©�•棑)ïÚHK¸ß1ƒ„êd†`À.jçGÖÖýŽ•Û‘�•Üž�•Ý©�•棑)ïÚHK¸ß1ƒ„Áé”ÖÖýŽ•Û‘�•Üž�•Ý©�•棑)ïÚHK³ä¸ß1åø•ÖÖýŽ•Û‘�•Üž�•Ý©�•棑)ïÚHK³ä¸ß1Á锻ȜÐÁÁПĹ¡¹ÅÅ¡¹ÆÓ¡¹›Cï© _…Ͷ¶Î"ðlðl CopyOnDropÁòlsrcÁ§lól�œ§lôl¶§lnóȘΉq¢³äðlðl÷ú•òlŠû•§lól�œ§lôl¶§lnóȘΉq¢¤¸$­j­j MergeStateÁ¯j‚¥j°j’¥j±j�œ¥jAâÙùd³ä­j­j¦ü•¯j‚¥j°j’¥j±j�œ¥jAâÙùd¤¸$Œ Œ VacantEntryÁ‘ Üà ’ handleÁà “ dormant_mapÁà ” «à • ¡¥à êD¹êSs�¸ß1ƒ„½‡ü � ‚ VacantÁƒ ó„ … OccupiedÁ† ó=ç?žÅæ 2¸ß1ƒ„½‡ääåDropperÁèó¾ öúA¸ß1ääåÊÿ•èó¾ öúAÞà”ääåÊÿ•èó¾ öúAÆþääåÊÿ•èó¾ öúAƒ„ÓCÓC FillGapOnDropÁ×CreadÁÐ=ØCöÜNÐ=ÙC–Ð=&6j:dr³¥³ä½‡¢ ¢ DropOnPanicÁ¤ ” � ¯�|Âz×.‘¯•¢ ¢ ª‚–¤ ” � ¯�|Âz×.㯕–3–3 DropGuardÁš3–½2›3num_initÁ½2Ýiz÷‰Q:C«Ê½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:Cðɽ‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:Cƒ„½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:C몽‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:C‹©½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:CÖ¨½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:CΩ½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:C�ª½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:CÍž½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:CŒœ½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:C²Š½‡–3–3¥ƒ–š3–½2›3Ö½2Ýiz÷‰Q:C蓽‡Ç@Ç@È@¥ƒ–Ì@óÃ? Õ�ºh0~…©ö½‡Ç@Ç@È@¥ƒ–Ì@óÃ? Õ�ºh0~…¾¤½‡¦¦§¥ƒ–¬óà  0HY,H*W¸ß1ƒ„½‡¦¦§¥ƒ–¬óà  0HY,H*W³ä¸ß1½‡¦¦§¥ƒ–¬óà  0HY,H*W³äÞà”½‡¦¦§¥ƒ–¬óà  0HY,H*W³äÆþ½‡óD³ä½‡�£•ÊÊ; ³äŒBŒB SetLenOnDropÁŽB¶‹B�B local_lenÁ‹BÌþõ²µ³°òóD³ä½‡�¤•ÊÊ;óD½‡çó ý´;Uÿí©•öŽ–óD½‡§¥•®�@Uÿ öŽ–±Dô‡³äÒ�ìQ³äÕŽ–³äUÿÕŽ–ô‡Uÿà�–Ò�±Dô‡³äÒ�ìQ³äË�–ò�–Ë�–‹‘–½‘–Ò�à�–½‘–üIî�–ͶUÿî�–üIœ�–ͶUÿœ�–½½£½>¾ range_stackÁÓ 1¶(c¼ÐvÈ�Øï•ÇÓ"¬òìòÛè êöÓ ùõòüƒ„¬Ï;‡…¬‡ù‡ì¼ƒ¼­½³»ûÙê6ê6ë6¦Þì6óÚ6í6ôÚ6 BÆi�½£Ö¨ß§ê—øÔ—™ñœ²›ŒœŽ¥©¤²Ÿ÷Ÿá¡‚•ղг�ã�è“™“ÓøÉ÷Žø©ö¥¥¦ PanicGuardÁ äÙˆjÖ£ Ý’ ºÃ;°‘ ìÜ È„ ƒ„ Ö¨ øÔ —™ Œœ�ž ²Š è“ ©öÃÑ;釕³ä¸ß1¸‰•Æyº±Ê[Ê[¨n‹ã�åëÝ»n‹ãñ… ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^�åUÿ¼n‹ãȈ# ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^�åëÝUÿÄv³äÄv‹ãÄvÄvÇv³äÃ‘Ä ©ïõ¢ïõÉþÆ¡××HandleÁÚƒª@¾ÛidxÁ¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔîÂ÷8ÈA�¸ß1ƒ„åø•‰1ø—výe‡�××Ìš–Úƒª@¾Ûèš–¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔßœ–¸ß1ƒ„¨å”ˆ_zT¦lÄ’¸ß1ƒ„½‡›–›–˜�–Uÿ½‡¡××Ìš–Úƒª@¾Ûèš–¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔßœ–³ä¸ß1åø•‚�–××Ìš–Úƒª@¾Ûèš–¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔßœ–³ä¸ß1¨å”ž–’³ä¸ß1½‡’Ÿ–’Ÿ–Á –UÿƒŸ–¡××Ìš–Úƒª@¾Ûèš–¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔßœ–³äÞà”åø•‚�–××Ìš–Úƒª@¾Ûèš–¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔßœ–³äÞà”¨å”ž–’³äÞà”½‡©¢–©¢–Ù£–UÿƒŸ–¡××Ìš–Úƒª@¾Ûèš–¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔßœ–³äÆþåø•‚�–××Ìš–Úƒª@¾Ûèš–¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔßœ–³äÆþ¨å”ž–’³äÆþ½‡Ã¥–Ã¥–ò¦–UÿƒŸ–¡××Ìš–Úƒª@¾Ûèš–¾Ü¡¥¾$¸ˆCæUÑððéç”õù甾öƒª@¾÷¡¥¾”;(cÈԩ攳ä¸ß1åø•‚�–ô‡ ¸ß1‚³ä¸ß1Ú¨–Ú¨–‰ª–Uÿ¡ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔíÉf­‰ ˆZ¸ß1ƒ„¨å” ʪ–¬¸ß1ƒ„½‡ʪ–ʪ–UÿƒŸ–ß«–ʪ–UÿÇ«–¡ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔ–«–³ä¸ß1¨å” –¬–¬³ä¸ß1½‡–¬––¬–UÿƒŸ–š­––¬–Uÿ‚­–¡ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔ–«–³äÞà”¨å” Ñ­–¬³äÞà”½‡Ñ­–Ñ­–UÿƒŸ–×®–Ñ­–Uÿ¾®–¡ððéç”õù甾öƒª@¾÷¡¥¾”;(cÈÔ–«–³äÆþ¨å” ޝ–¬³äÆþ½‡ޝ–ޝ–UÿƒŸ–’°–ޝ–Uÿú¯–Џß1Š®®«°¿ ”3¯f*²Û�þЕŠ®®«°¿ ”3¯f*²Û�ËÒ•Š®®«°¿ ”3¯f*²Û�‚Ô•Š®®«°¿ ”3¯f*²Û�ºÕ•ŠÞà”ŠÆþŠƒ„Š³äŒ¸ß1Œ’±–Œα–Œв–ŒÞà”ŒÆþŒ³ä’¸ß1’Ö°–’’±–’α–’в–’Þà”’Æþ’ƒ„’³äޏß1Ž’±–Žα–Žв–ŽÞà”ŽÆþ޳ä�¸ß1�’±–�α–�в–�Þà”�Æþ�³äþ6Øï•ý6 Õ7Õ7®î•Ö7¦Ù6×7àoÙ6Ø7 error_dropÁÙ6Ù7 outer_dropÁÙ6ß*I]@ÆDàØï•UÿßMñÚ”ÔNÔN„k³ä¢ã”ìÜ „k¤¸$Ðã”…C…CüˆC�†Ð=‰C¶Ð=ò¹ÚàŤ¸$½‡¡l³ä¢ã”¡l¤¸$Ð㔞l³ä¢ã”žl¤¸$Ðã”…m³ä¢ã”…m¤¸$Ð㔋m³ä¢ã”‹m¤¸$Ð㔎m³ä¢ã”—m³ä¢ã”—m¤¸$Ð㔈m³ä¢ã”ˆm¤¸$Ðã”ìl³ä¢ã”ìl¤¸$Ðã”Ðj³ä¢ã”Ðj¤¸$Ðã”Ój³ä¢ã”Ój¤¸$Ðã”Äj³ä¢ã”Äj¤¸$Ð㔪j³ä¢ã”ªj¤¸$Ðã”çj³äæj³ä¢ã” ³ä ³äUÿ ¢ã”çj³ä¢ã”çj¤¸$æj¤¸$Ðã” ¤¸$ ¤¸$Uÿ Ðã”çj¤¸$Ðã”ãj³ä¢ã”ãj¤¸$Ðã”êw³äêw¤¸$ûAìÜ ½‡ûA‡ï½‡ûA³ä½‡ûAÍž½‡ûAŒœ½‡ˆgÈç””3ðɽ‡”3«Ê½‡”3ƒ„½‡”3몽‡”3‹©½‡”3Ö¨½‡”3Ω½‡”3�ª½‡”3Íž½‡”3Œœ½‡”3²Š½‡”3蓽‡ÏiëBëBìB DefaultHasherÁíBóë ô™ldñÎaÇD�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ¤¸$­¤¸$ ¤¸$Uÿ�S鱕†ÙUÿ鱕ž;³÷½‡ö¿–ž;½‡ö¿–…B½‡º©’Šº ’Šíþ?Uÿ‹­µ©³ä¨‘–¼©¤¸$Ȥ¸$ Á–Uÿµ©¤¸$±D¢Á–�Á–³Á–¢Á–Uÿ³Á–�Á–º©þƺ þÆúƒ•Uÿ‹­Øiö¿–ÜiðÊö¿–Üi©öö¿–Üi³÷ö¿–Üiö¿–í¦ö¿–õIíò î�–õI楕œ�–ÿA½‡ÿA½‡ÙFü¾Ë�–ÊIíò î�–ÊI楕œ�–•;Ä£•³äà�–•;ü¾³ä½‘–è<ü¾ÙR ›ˆ› ›ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ ›Uÿˆ›ÁÆ–£3º±½‡£3³ä½‡£3󥽇Ø$ö¿–ÎD³ä�¤•ÎD³ä‚Ù)ÎD–®¬§ÎD¾¤Ý‚çD½‡çó çD½‡§¥•þD³ä½‡Ä£•þD³ä½‡ü¾Ë+º±Ë+ôíãQð�•ž°¿‚•ÞQ�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫº±Ñ¡ßPü¾Ë�–ãQü¾³äÒ�­Sü¾³ä°Rü¾ó<ô‡ÁÆ–¦Æ–Ž‘–ÁÆ–Uÿ¦Æ–Ä�<ÁÆ–ãQÁÀ–�Á–ãQ›ƒ•ž°ꃕªS�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ°Ríò ƒ’–Ͷ°R楕°’–ͶŠSÌŠÌŠ̵ÏŠ�Њœ“D^)c˜þOþÁÀ–�Á–鱕ÀRôÌ–³Á–ãQÄ£•³äÒ�­SÄ£•³äæQ�£•ÕŽ–ŽR�¤•ìÜ æQ�¤•Ë�–ãQ�Š�Š�øB�Š�‘йøB²=²=J/VÔáËŸ¯ Š›ó¥æžÓRŸ¯ ˆ›íQŸ¯ Š›©iÖГï©iÖЩà'©iÖÐÓשiÖÐä­ŽRÝ‚‹Å•ŽR‚Ù)ìÜ ŽR¬§¹Â•²þÆœ¸$ñ¸$¬¤¸$�®$Ÿ¸$Ȥ¸$í–¦³ä¸ß1½‡Ú蔣³ä¸ß1½‡ðꔦ³äÞà”½‡Î딣³äÞà”½‡Î픦³äÆþ½‡©î”£³äÆþ½‡¥ð”º ’ŠªÂ–‹­» ’Šêþ?‹­º þÆäÖ‹­» þÆ÷ƒ•‹­Î ¾Ú”ñÚ”ä­ÇÚÕÚ ¾釕½‡ö‡•Ëè•Uÿ ö‡• ¿釕½‡ö‡•ë©•Uÿ Í釕½‡½ˆ•ö‡•‹«2 ½ˆ• Üí• Ò釕½‡üˆ•‹«2 üˆ•ÏÔ– ¾¸‰•½‡ʼn•ÞÓ– ʼn• ¿¸‰•½‡ʼn•”Ô– ͸‰•½‡ˆŠ•ʼn•‹«2 ˆŠ• òé• Ò¸‰•½‡ÇŠ•‹«2 ÇŠ•úÕ–ç “ïÇÚ¦Ñç ä­ÇÚ¦Ñüý†¯Ù þý†Ö‹ ýý†�Š •à” ´½‡Äè•Ûè•óD³ä½‡�£•ÊÊ;óD³ä½‡�¤•ÊÊ;óD½‡çó ‚�–��–óD½‡§¥•±�–¼�–’¸ß1ƒ„½‡íž–ƒŸ–’³ä¸ß1½‡…¢–ƒŸ–’³äÞà”½‡Ÿ¥–ƒŸ–’³äÆþ½‡¶¨–ƒŸ–¬¸ß1ƒ„½‡Ü«–ƒŸ–¬³ä¸ß1½‡—­–ƒŸ–¬³äÞà”½‡Ô®–ƒŸ–¬³äÆþ½‡�°–ƒŸ– ÄðÊÈÞÖЋˆ•¢ˆ• Ä©ö³äÖÐÚ‰•¢ˆ• ÊðÊðÊÈÞÒˆ•߈• Ê©ö©ö³ä�Š•ªŠ• ʳ÷©ö³ä�Š•ን ÊðÊÈÞÒˆ•ʪ–Ç«–ô«–†¬– –¬–‚­–¯­–Á­– Ñ­–¾®–ì®–þ®– ޝ–ú¯–§°–¹°–±Dô‡³äÒ�à�–‹‘–š‘–±Dô‡³äÒ�½‘–‹‘–ã‘–±D¢Á–�Á–³Á–¬Ã–¼Ã–æj³ä¢ã”ç»–ˆ¼–æj¤¸$Ðã”ü–ä¼–ÙR ›ˆ›·Æ–—Ç–�S鱕ÄÁ–ÏÁ–ìQ³äÕŽ–ò�–�‘–ìQ³äË�–ò�–Ô‘–üIî�––’–¥’–üIœ�–Ã’–Ò’–ó<ô‡ÁÆ–¦Æ–’Ë– Ë–­¤¸$�Á–½‚Ô"­mřǙș­É™Ê™àË™óG*¤�R{9  řǙș­É™Ê™àË™óG*¤�R{9 Èç” Èç”Uÿõ €•™D³ä½‡«š•Û ¸ß1ƒ„½‡î�•Ù�•Û ³ä¸ß1½‡¼’•™“•Û ³äÞà”½‡•”•ó”•Û ³äÆþ½‡Ê–•§—•Õ ›—Ø  ¢Ò À‚¾ “›¿ ïžê ³ä¸ß1½‡Òá”ë‘Cê ³äÞà”½‡Òá”ë‘Cê ³äÆþ½‡Òá”ë‘C µ¸‰•½‡Ùê• »Æë•Ýë•‚³ä¸ß1¨ª–Ü9ß§•Ý9è©•Â༖Õ"ý6 ¶–»n‹ãᘖ¼n‹ãÍ™–Ñý†ª¨ êØ”Ñƒòª¨ ”Ù”ŒCºÃ;ŒCðÉŒC«ÊŒC‡ïŒC»ÈŒCº±ŒCƒ„ŒC³äŒC‹ãŒC몌C‹©ŒCÖ¨ŒCΩŒC�ªŒCøÔŒCÍžŒCŒœ�Có¥ŒCó¥ŒC蓌C‰ÈŒCúÄ•ŒCÿ2³äŒ3³äÿ2¤¸$Œ3ó¥ìw«ÊìwðÉøxº±´wº±ìwƒ„�x³ä‘x³ä’x³äìw³äçw³äïw³äéw³äíw³ä�x³äìw‹ãìwôí�x¤¸$’x¤¸$éw¤¸$ìw¹¬ìw‹©ìwÖ¨ìwΚìw—™ìwó¥íwó¥¼wó¥ìwá¡ìw²ŠìwþÆ»w‰Èíw‰ÈìwúÄ•ìw†Ù»w†Ùìwíw�xøx‘x’xïw�xçwðWó¯�XͶùWͶðWðÊ’XðÊ’XŸŸ öãó‹¤ô‹ljô²ßk#½‡ùWÖñWü»íWü»�Xš‰ùWš‰÷W³ä÷W‹ãíW‹ãùWµÐ�XæƒùWæƒ�X‘µñW‘µíW‘µùW‘µðWûÙ�Xè�ùWè�«Xµ”ðWµ”íWµ”÷Wè“ùW¶ëêWò¯«X¢Ý«XÀ¾«X‡´ �X÷WíWêWùWêWÒ_ÈÞ¿áÒ_³ä±€Ò_³»ì¼Ò_ä­à«à« Utf8ErrorÁá« valid_up_toÁýyâ« error_lenÁýy"øCð*u³HÒ_ƒ�¶_ÇÓ"Ò_Õ¶Ò_Õ¶Ò_ÄòÒ_Õ¶æͶíðÊÈÞ´Hðü›k³ä›k¤¸$õj³äõj¤¸$÷?©ö½‡÷?¾¤½‡ÞhÚ¦Ú¦Û¦ Sip13RoundsÁ �¸I£±¨%Äý†Æý†Åý†Ãý†ÆƒòŃòÃò«³ä¸ß1¬³ä¸ß1«³äÞà”¬³äÞà”«³äÆþ¬³äÆþ§³ä¸ß1½‡­³ä¸ß1½‡¬³äÆþ½‡­³äÆþ½‡Â#�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ—™Â#�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫá¡Â#�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ²Š‡D³ä½‡ˆD½‡ ÇðÊÈÞÖн‡ Ç©ö³äÖн‡ÃX‡ïÄXÈÞÃX³äÃXŠ©ö³äÖ퇑©ö³äÖн‡â"µpµpÑç¸pí óo¹píçóoºp¡¥óo¥hECØ8G‰È¯ðÊÈÞÖн‡¯©ö³äÖ퇻 ¸ß1ƒ„½‡”DìÜ ½‡”D‡ï½‡”D³ä½‡”DÍž½‡”DŒœ½‡”D½‡”D½‡±aͶ©€†ª€†˜D³ä½‡½FºÃ;½‡½Fðɽ‡½F«Ê½‡½F»È½‡½Fº±½‡½Fƒ„½‡½F³ä½‡½F‹ã½‡½F몽‡½F‹©½‡½FÖ¨½‡½FΩ½‡½F�ª½‡½FΚ½‡½FøÔ½‡½F—™½‡½F󥽇½F᡽‡½F²Š½‡½F蓽‡½F©ö½‡½F‰È½‡½FúÄ•½‡½F†Ù½‡½F½‡­p«Ê­pðÉ­pƒ„­p³ä­p‹ã­pôí­p¹¬­p‹©­pÖ¨­pΚ­p—™­pó¥­pá¡­p²Š­pþÆ­púÄ•­p†Ù­p†ý†Šý†‰ý†�ý†ˆý†Œý†‹ý†‡ý†ŒƒòÚ ¸ß1ƒ„½‡Ú ³ä¸ß1½‡Ú ³äÞà”½‡Ú ³äÆþ½‡ù#ø#÷#�ý†æ ¸ß1ƒ„½‡ç ³ä¸ß1½‡æ ³ä¸ß1½‡é ³ä¸ß1½‡ç ³äÞà”½‡æ ³äÞà”½‡é ³äÞà”½‡ç ³äÆþ½‡æ ³äÆþ½‡é ³äÆþ½‡�.”Þ½‡÷Ͷ Ï釕½‡ ϸ‰•½‡ ´¸‰•½‡„.”ÞÀÓ×ÃÓ×ÂÓ×É��È��²)ˆê¡ˆ¾ý†¼ý†Åý†½ý†Äý†¹ý†Ãý†ºý†¸ý†¶ý†Áý†»ý†Åƒò½ƒòăòºƒò¶ƒòÁƒò‘MºÃ;½‡’MºÃ;½‡‘Mðɽ‡’Mðɽ‡‘M«Ê½‡’M«Ê½‡‘M»È½‡’M»È½‡‘Mº±½‡’Mº±½‡‘Mƒ„½‡’Mƒ„½‡‘M³ä½‡’M³ä½‡‘M‹ã½‡’M‹ã½‡‘M몽‡’M몽‡‘M‹©½‡’M‹©½‡‘MÖ¨½‡’MÖ¨½‡‘MΩ½‡’MΩ½‡‘M�ª½‡’M�ª½‡‘MøÔ½‡’MøÔ½‡‘M—™½‡’M—™½‡‘M󥽇’M󥽇‘M᡽‡’M᡽‡‘M²Š½‡’M²Š½‡‘M蓽‡’M蓽‡‘M©ö½‡’M©ö½‡‘M‰È½‡’M‰È½‡‘MúÄ•½‡’MúÄ•½‡‘M†Ù½‡’M†Ù½‡‘M½‡’M½‡£¸ß1ƒ„£³ä¸ß1£³äÞà”£³äÆþ®¸ß1ƒ„®³ä¸ß1®³äÞà”®³äÆþ³¸ß1ƒ„³³ä¸ß1³³äÞà”³³äÆþȳä¸ß1¨å”ȳäÞà”¨å”ȳäÆþ¨å”ϸß1ƒ„¨å”ϳä¸ß1¨å”ϳäÞà”¨å”ϳäÆþ¨å”ݳä¸ß1¨å”ܳä¸ß1¨å”ݳä¸ß1Áé”ܳä¸ß1Áé”ݳäÞà”¨å”ܳäÞà”¨å”ݳäÞà”Áé”ܳäÞà”Áé”ݳäÆþ¨å”ܳäÆþ¨å”ݳäÆþÁé”ܳäÆþÁé”ã¸ß1ƒ„¨å”â¸ß1ƒ„¨å”ã³ä¸ß1¨å”â³ä¸ß1¨å”ã³äÞà”¨å”â³äÞà”¨å”ã³äÆþ¨å”â³äÆþ¨å”ñ¸ß1ƒ„åø•ñ¸ß1ƒ„Áé”ñ³ä¸ß1åø•ñ³ä¸ß1Áé”ñ³äÞà”åø•ñ³äÞà”Áé”ñ³äÆþåø•ñ³äÆþÁ锸³ä¸ß1ø³äÞà”ø³äÆþ�³ä¸ß1�³äÞà”�³äÆþ¤Cðɽ‡éCðɽ‡èCðɽ‡êCðɽ‡ CìÜ ½‡éC«Ê½‡ C‡ï½‡¤C»È½‡éC»È½‡ Càþ½‡àCº±½‡èCº±½‡éCƒ„½‡àCƒ„½‡èCƒ„½‡ Cƒ„½‡¤C³ä½‡åC³ä½‡¨C³ä½‡éC³ä½‡àC³ä½‡èC³ä½‡ C³ä½‡ŸC³ä½‡êC³ä½‡¬C³ä½‡éC‹ã½‡ C–®½‡àC몽‡èC몽‡·C‹©½‡éC‹©½‡èC‹©½‡¶C‹©½‡åCÖ¨½‡éCÖ¨½‡àCÖ¨½‡äCÖ¨½‡ CÖ¨½‡àCΩ½‡èCΩ½‡àC�ª½‡èC�ª½‡·CΚ½‡éCΚ½‡¶CΚ½‡êCΚ½‡àCøÔ½‡éC—™½‡éCÍž½‡ CÍž½‡êCÍž½‡éCŒœ½‡ CŒœ½‡êCŒœ½‡¨C󥽇éC󥽇àC󥽇êC󥽇¤C᡽‡éC᡽‡éC²Š½‡èC²Š½‡éC蓽‡àC蓽‡èC蓽‡éC©ö½‡¤C‰È½‡éC‰È½‡ C¾¤½‡êC†Ù½‡¨C½‡ C½‡¤C½‡éC½‡èC½‡­C½‡ŸC½‡¤C½‡åC½‡éC½‡ C½‡¬C½‡¾¸Ì•½‡¿¸Ì•½‡¾ÓÍ•½‡¿ÓÍ•½‡¾áΕ½‡¿áΕ½‡¾ðÏ•½‡¿ðÏ•½‡¾þЕ½‡¿þЕ½‡¾ËÒ•½‡¿ËÒ•½‡¾‚Ô•½‡¿‚Ô•½‡¾ºÕ•½‡¿ºÕ•½‡Åp³äÅpó¥Åp‰ÈÅpáÓ×àÓ×âÓ×ճ佸ß1ƒ„½³ä¸ß1½³äÞà”½³äÆþæ��ø³ä½‡Èßœ–¸ß1ƒ„Èßœ–³ä¸ß1Èßœ–³äÞà”Èßœ–³äÆþȩ攳ä¸ß1é8ƒ¼é8÷Ÿé8°Õé8®Ùé8ÍÖé8�×é8ù×é8áØé8ýÕ÷ý†ýý†ÿý†ûý†ôý†úý†õý†üý†þý†öý†÷ƒòýƒòûƒòôƒòúƒòõƒòüƒòþƒòöƒòÊé䔸ß1ƒ„¨å”Êé䔳ä¸ß1¨å”Êé䔳ä¸ß1åø•Êé䔳äÞà”¨å”Êé䔳äÞà”åø•Êé䔳äÆþ¨å”Êé䔳äÆþåø•Êßœ–¸ß1ƒ„¨å”Êßœ–³ä¸ß1¨å”Êßœ–³äÞà”¨å”Êßœ–³äÆþ¨å”ʩ攳ä¸ß1¨å”‚ý†”¸ß1ƒ„”³ä¸ß1”³äÆþíé䔳ä¸ß1íé䔳äÞà”íé䔳äÆþí©æ”³ä¸ß1 ì釕 츉•šý†˜ý†—ý†™ý†•ý†™ƒòøß1ƒ„½‡Ã³ä¸ß1½‡¯³ä¸ß1½‡Ã³äÞà”½‡¯³äÞà”½‡Ã³äÆþ½‡¯³äÆþ½‡žý†Å9ó¦$½‡Å9ƒ¼½‡Å9÷Ÿ½‡Å9³÷½‡¾9½‡Å9½‡¹ý†¾ý†ºý†¿ý†¸ý†»ý†½ý†¼ý†¹ƒò¾ƒòºƒò»ƒò½ƒò¼ƒò›é䔳ä¸ß1›é䔳äÞà”›é䔳äÆþ´é䔳ä¸ß1´é䔳äÞà”´é䔳äÆþ´ßœ–¸ß1ƒ„´ßœ–³ä¸ß1´ßœ–³äÞà”´ßœ–³äÆþ´©æ”³ä¸ß1Þ9Û9€1ÿ°€1ìÜ €1ǯ€1ß§€1ñœ€1³�€1™“Š1ÿ°ˆ1ÿ°Š1ìÜ ˆ1ìÜ Š1ǯˆ1ǯŠ1ß§ˆ1ß§Š1ñœˆ1ñœŠ1³�ˆ1³�Š1™“ˆ1™“º¸ß1ƒ„º³ä¸ß1º³äÞà”º³äÆþÁ¸ß1ƒ„Á³ä¸ß1Á³äÞà”Á³äÆþ·¸ß1ƒ„½‡·³ä¸ß1½‡·³äÞà”½‡·³äÆþ½‡ ½ðÊðÊ ½©ö©ö ½³÷©ö ½ðÊÕ¸ß1ÕðÊÕ’ŠÕ³äÕ©öºðʺ³÷³÷º…ò…òºÃL³ä³ä½‡½‡ïB³ä‚Ù)½‡ïB–®¬§½‡ïB¾¤Ý‚½‡ÚB³ä�¤•ÚB³ä‚Ù)ÚB–®¬§ÚB¾¤Ý‚ÅB³ä‚Ù)ÅB–®¬§ÅB¾¤Ý‚§" ›¨" ›þ'¦€†§€†ª€†¨€†©€†þ ¸ß1ƒ„½‡þ ³ä¸ß1½‡þ ³äÞà”½‡þ ³äÆþ½‡–P¾Ú”–P²�•–PÝ‚•–PÄ£•–Pçó –P§¥•–P�¤•–PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—ÌŠÌŠ̵ÏŠ�Њœ“D^)c˜þOþ¿Î–æž–PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—¾Ú”–Pºó•–P¿¿–PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫôí–PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ¹¬–PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫÖ¨–PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—“Ò–PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—åË––P‚ô•–PÝ¢–PŠ” –PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—•š–Pü»–PƒŠƒŠé¡…Š�Ð<†ŠŠÐ< 0{?i—�Ñ–P檕–PÇ„•–P§…•–P‡†•–Pü¾–PÀ¾–P�‚–P�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫúÄ•–Pב)–PΪΪÌÛѪ¬óoÒªéÛóoSð #Ò±–PÇè–PµpµpÑç¸pí óo¹píçóoºp¡¥óo¥hECØ8Gó¥–PµpµpÑç¸pí óo¹píçóoºp¡¥óo¥hECØ8G–PÇÇž,ÊýËÇ,=Èd4Í;ù_ý†–PÇÇž,ÊýËÇ,=Èd4Í;ù_ƒò–Pçç“)ê±)ÂëŸÂŒ×®Ç¦T=…Ó×–Põõž,øË!ÂùŽ-ÂÁÊVIç †xÓ×–PÚ#Ú#ÌÜÜ#Ç,ÍÝ#؉Í2íãȳ‹Õ"ýø––PÚ#Ú#ÌÜÜ#Ç,ÍÝ#؉Í2íãȳ‹Õ"Õù––PÚ#Ú#ÌÜÜ#Ç,ÍÝ#؉Í2íãȳ‹Õ"­ú––Pú"ú"ñÖü"Ç,Íý"؉͵ÝwÃ7{t0Åü––P——ʽ›†Aà œúÝ1à Ž�C™­PzE³ä¸ß1–PÝ’––PÝ‚–Pä° –P–µ –P‚Ù)–PéÏ–PŒè–P•š–Péë–P¤¯–PÌ¿–P¬§–Pü©ÙNÚNÙNÚNë¸ß1ëÞà”ëÆþ냄ÞC³ä½‡§ ‘¯•§ 㯕 3ðɽ‡ 3«Ê½‡ 3ƒ„½‡ 3몽‡ 3‹©½‡ 3Ö¨½‡ 3Ω½‡ 3�ª½‡ 3Íž½‡ 3Œœ½‡ 3²Š½‡ 3蓽‡Ð@©ö½‡Ð@¾¤½‡²¸ß1ƒ„½‡²³ä¸ß1½‡²³äÞà”½‡²³äÆþ½‡ˆ½‡Û’Šùn‡ïýnºÃ;þnºÃ;ùnðÉýnðÉþnðÉýnìÜ þnìÜ ùn»Èýn»Èþn»Èýnƒ„þnƒ„ùn³äýn³äþn³äýn‹©þn‹©ýnÖ¨þnÖ¨ýn—™þn—™ýnÍžþnÍžýnŒœþnŒœýnó¥ýná¡ýn²Šþn²Šýnè“þnè“ýn©öùn‰Èýn‰Èþn‰ÈýnþnùnþnþnÁDó¥¿Î–æžÁDž°ð�•¿‚•ÁDÁÀ–�Á–ÁDž°›ƒ•ꃕ€<åË–�=ב)ýj³äýj¤¸$½"À"Ä"ðÉÄ"»ÈÄ"‰ÈÇ"ðÉÇ"»ÈÇ"³äÇ"‰È¬;žs³äžsÆ#ýø–Æ#Õù–Æ#­ú–RºÃ;½‡Rðɽ‡RìÜ ½‡R«Ê½‡R‡ï½‡R»È½‡RÌÁ•½‡Rº±½‡Rƒ„½‡R³ä½‡R‹ã½‡R–®½‡R몽‡R‹©½‡RÖ¨½‡RΩ½‡R�ª½‡RΚ½‡RøÔ½‡R—™½‡RÍž½‡RŒœ½‡R󥽇R᡽‡R²Š½‡R蓽‡R©ö½‡R‰È½‡RúÄ•½‡R¾¤½‡R†Ù½‡R½‡R½‡ ² ”°•·è• ² ðé•Çê• ² µë•½ë•ÆÆÿB³äÄ£•½‡¡#´›Š›å=Ÿ¯ Š›ò0”Þ‡’•–¥ц$–¥ÍÝ–¥ºÃ;–¥ìÜ –¥¸ß1–¥àþ–¥Ü Ü §èÝ ‚Þ ’.Äœ%T;–¥€ € œÃ� ¦ ‚ ¿‰ ƒ ¸ë íw« ²¸–¥ßßœÃà¦ãΈãâ¸ëã�hâØ«/¢–¥È�–¥ìò–¥ƒ„–¥êæ–¥¿á–¥³ä–¥‹ã–¥‚Ñ–¥¨Ë–¥þò–¥Å‚–¥ì¼–¥­½–¥‹©–¥Ö¨–¥Κ–¥—™–¥ó¥–¥á¡–¥‚•–¥Õ–¥ä­–¥–¥™¥€†æ"Åü–œ¥ªêœ¥ê朥䭜¥œ¥Ý;½‡á;½‡�#³ä�#ᡤ#³ä¤#Ö¨¤#—™¤#ᡤ#²Š¤#§#³ä§#Ö¨§#—™§#²Š§#ª©«Ê±©«Ê°©«Êª©ºÃ;ª©ðɪ©ìÜ ª©¸ß1ª©º±ª©ƒ„ª©³ä°©³äª©‹ãª©ôíª©–®ª©ëªª©¹¬ª©‹©°©‹©ª©Ö¨ª©Ωª©�ªª©Κª©—™ª©Ížª©Œœª©ó¥°©ó¥ª©á¡ª©²ŠÇ©è“ª©è“°©è“ª©þƪ©ä­ª©úÄ•ª©†Ùª©°©Ω³äΩ穳äç©ó¥ç©á¡ç©‰Èç©„C³ä½‡„C½‡î)ˆê�n³ä³ä�nó¥ó¥�oº±ÚͶ¶Î"éh�ö–ëh�ö–êh�ö–ðL’KÖÉ–�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫè““KÖÉ–Ðó—ÑXó¯ÑXͶÑXðÊÑXš‰ÑX ÝÑX‹ãÑXµÐÑXæƒÑX‘µÑXûÙÑXè�ÑXµ”ÑXÑÓ×ÑÓ×ÂÅÑÓ×ïçÑÑ‹@©ö½‡Œ@©ö½‡‹@¾¤½‡Œ@¾¤½‡÷LŠ*ˆê¢oº±¹Ú*Ú*Ú*ÖÖ‚Mªoº±ªo³äªoΚ«o÷l³ä÷l¤¸$¯Dðɽ‡¯D«Ê½‡¯D‡ï½‡¯D»È½‡¯Dº±½‡¯Dƒ„½‡¯D³ä½‡¯D‹©½‡¯DÖ¨½‡¯DΚ½‡¯D—™½‡¯D󥽇¯D᡽‡¯D²Š½‡¯D‰È½‡¯DúÄ•½‡¯D†Ù½‡ÙXó¯ÙXͶÙXš‰ÙX‹ãÙXµÐÙXæƒÙX‘µÙXè�ÙX¿ƒ„ƒ„ÀË�Ë�¿Í(ºn‹ã½oÓ©ö³äÖгD³ä½‡³D󥽇³D‰È½‡³D½‡�Ͷ½‡�ªË•½‡�¸Ì•½‡�ÓÍ•½‡�áΕ½‡�ðÏ•½‡�þЕ½‡�ËÒ•½‡�‚Ô•½‡�ºÕ•½‡�íg�ðõ½‡é3³äê3³äé3¤¸$ê3¤¸$¡¶š>ð�•¾¸ß1ƒ„½‡À¸ß1ƒ„½‡¾³ä¸ß1½‡¾³äÞà”½‡¾³äÆþ½‡¢:ó¦$½‡¢:ƒ¼½‡¢:÷Ÿ½‡¢:³÷½‡¢:½‡Ý/”Þ½‡â/”Þ½‡Å1ìÜ îY‡ïîY ÝîY‹ãîY¨ËîY¹íîY�€îY˜ÚîYΞîYÏ„îYé‹îYˆêîY†ÙñY„³ñY¨ËñY°ûñY³ä˜ÚñY³äΞñY³äÏ„ñY‹ã¹íñY‹ãˆêÿ/”Þ½‡Õ:ó¦$‡’•Õ:ƒ¼‡’•Õ:÷Ÿ‡’•Õ:³÷‡’•Õ:‡’•ã:³÷½‡ã:½‡†2ÿ°†2ß§†2ñœ†2³�è:³÷½‡è:½‡‰2ÿ°‰2ìÜ ‰2ǯ‰2ß§‰2ñœ‰2³�‰2™“À™¸ß1À™‹ãÀ™€;÷Ÿ½‡‡;ƒ¼ÊLó¥ó¥½‡ôB³ä�£•½‡ôB³ä�¤•½‡ôBçó ½‡ôB§¥•½‡ÉB³ä�¤•¬" ›Ú)ˆê–pº±–p³ä–p‹ã–pó¥–pþÆ–pä­Äó¦$ëMñÚ”ÒFü¾åJÖÉ–Ðó—ºIíò ºI楕�;Ä£•³ä�;ü¾³ä�;ü¾³äë;åË–ä<¥Â—ä<¾Ú”ä<�ð•ä<Öä<�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫðÉä<�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ¸ß1ä<‡†•ä<ü¾ä<À¾ä<œÄ—ä<�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫëªä<³Å—ä<�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ‹©ä<ÊÆ—ä<�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫΩä<�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫ�ªä<“Òä<�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫÍžä<�p�pʽ pí óo¡píçóo¢p¡¥óoÛê2ÝЫŒœä<­ú–ä<Ðó—ä<ב)å<ב)ä<åË–ä<ÀÜä<ìð•ä<Ý‚ä<–µ ä<•šä<»¼ç<»¼å<»¼ä<�Ѻj³äºj¤¸$ºDðɽ‡ºD«Ê½‡ºDº±½‡ºDƒ„½‡ºD³ä½‡ºD몽‡ºD‹©½‡ºDÖ¨½‡ºDΩ½‡ºD�ª½‡ºDÍž½‡ºDŒœ½‡ºD󥽇ºD²Š½‡ºD蓽‡ý*Êý†Þý†ßý†Îý†Ïý†Øý†Òý†Ðý†Ñý†Ýý†×ý†ÒƒòЃò׃òÆDºÃ;½‡ÆDðɽ‡ÆDìÜ ½‡ÆD»È½‡ÆDƒ„½‡ÆD³ä‹²½‡ÆD³ä½‡ÆD‹©½‡ÆDÖ¨½‡ÆDΚÉ•½‡ÆD—™½‡ÆDÍž½‡ÆDŒœ½‡ÆD󥽇ÆD᡽‡ÆD²Š½‡ÆD蓽‡ÆD©ö½‡ÆD‰È½‡ÆD½‡ÆDÉ•½‡®MËDºÃ;½‡ËDðɽ‡ËDìÜ ½‡ËD»È½‡ËDƒ„½‡ËD³ä½‡ËD‹©½‡ËDÖ¨½‡ËD—™½‡ËDÍž½‡ËDŒœ½‡ËD²Š½‡ËD蓽‡ËD‰È½‡ËD½‡ËDðü½‡ËDÉ•½‡ËD½‡ËD½‡”+º±‹²”+¹¬‹²”+À°”+ðü»MÅnðÓך+º±‹²š+À°Æ@©ö½‡Æ@¾¤½‡«$¬$ÕD©ö½‡ÕD¾¤½‡úXþÓ×ÜDƒ„½‡ÜD³ä½‡ÜD‹ã½‡ÜD–®½‡ÜD蓽‡ Ý釕½‡ ݸ‰•½‡­³ä½‡ãD᡽‡·+º±·+ôíܳä¸ß1ŽE‹ã½‡ŽE½‡’EºÃ;½‡’Eðɽ‡’EìÜ ½‡’E«Ê½‡’E‡ï½‡’E»È½‡’EÌÁ•½‡’Eº±½‡’Eƒ„½‡’E³ä½‡’E‹ã½‡’E–®½‡’E몽‡’E‹©½‡’EÖ¨½‡’EΩ½‡’E�ª½‡’EΚ½‡’EøÔ½‡’E—™½‡’EÍž½‡’EŒœ½‡’E󥽇’E᡽‡’E²Š½‡’E蓽‡’E©ö½‡’E‰È½‡’EúÄ•½‡’E¾¤½‡’E†Ù½‡’E½‡’E½‡•EðÉ•E»È•E³ä•EΚ•Eó¥•Eá¡•E²Š•E‰È•E†Ù㽇×`ïçÄò×`óü¬ò×`÷ý¬ò×`€†¬ò×`‹‡ ¬ò×`£Ž¬ò×`’Š‚•×`ÆþÄò×`öÓ ¬ò×`òüÄò×`ê” Äò×`ÈÞì¼×`³äÄò×`³ä¬ò×`³ä‚•×`‹ãÄò×`‹ãì¼×`‹ã¬ò×`‹ã‚•×`³»ì¼×`²Ÿ‚•×`²Ÿ¬ò×`ä‘‚•×`úœ‚•×`“öÄò×`°ôÄò×`´õÄò×`ÙóÄò×`ÆòÄò×`ˆÇ Äò×`¢Æ Äò×` Å Äò×`¦Ô2Äò×`î­<Äò×`Ü›<Äò×`•¶;¬ò×`ŒÀÄò×`Œ²PÄò×`»“OÄò×`øëCÄò×`±³DÄò×`†ÙÄò×`™¿PÄò×`ÛÄPÄò×`‚Ñ×`Äò×`Äò×`¬ò×`‚Ñ×`Äò×`ì¼×`‚•Ðý†Ðƒò™EºÃ;½‡™EìÜ ½‡™Eƒ„½‡™E³ä½‡™E‹ã½‡Ü`÷ý¬ò¬òÜ`€†¬ò¬òÜ`�× ¬ò¬òÜ`£Ž¬ò¬òÜ`ÆþÄòÄòÜ`öÓ ¬ò¬òÜ`òüÄòÄòÜ`ê” ÄòÄòÜ`³äÄòÄòÜ`³ä¬ò¬òÜ`³ä‚•‚•Ü`‹ã‚•‚•Ü`³»ì¼ì¼Ü`²Ÿ‚•‚•Ü`ä‘‚•‚•Ü`úœ‚•‚•Ü`µª˜ÄòÄòÜ`ʪ˜ÄòÄòÜ`ߪ˜ÄòÄòÜ`ôª˜ÄòÄòÜ`‰«˜ÄòÄòÜ`ž«˜ÄòÄòÜ`³«˜ÄòÄòÜ`È«˜ÄòÄòÜ`¦Ô2ÄòÄòÜ`î­<ÄòÄòÜ`Ü›<ÄòÄòÜ`ŒÀÄòÄòÜ`Œ²PÄòÄòÜ`»“OÄòÄòÜ`øëCÄòÄòÜ`±³DÄòÄòÜ`™¿PÄòÄòÜ`ÛÄPÄòÄòÜ`Œ¼PÄòÄòÜ`‚Ñ‚ÑÜ`ÄòÄòÜ`¬ò¬òÜ`‚Ñ‚ÑÜ`ÄòÄòÜ`ì¼ì¼Ü`‚•‚•¯hºÃ;¯hìÜ ¯hƒ„¯h³ä¯h‹ã¯h¥E½‡ø9©E½‡©E½‡ü9ó¦$½‡ü9³÷½‡ü9½‡ºhìÜ ¶/”Þ½‡½hìÜ º/”Þ½‡‡:ó¦$½‡‡:ƒ¼½‡‡:÷Ÿ½‡‡:³÷½‡‡:½‡™1ÿ°™1ǯ™1ß§™1ñœ™1³�™1™“ ¸ß1ƒ„½‡ ³ä¸ß1½‡ ³äÆþ½‡¥¸ß1ƒ„½‡¥³ä¸ß1½‡¥³äÞà”½‡¥³äÆþ½‡ 1ìÜ ˜³ä½‡…1‰À•„1‰À•ú±�¥�¥òQìð•òQ�ð•¤Sü¾òQü¾òQÀ¾òQœÄ—òQ³Å—òQÊÆ—òQ“Ò”ýø–”Õù–”­ú–ÆKÐó—òQב)òQåË–òQÀÜ“Åü–òQ¾Ú”üQíò üQ楕òQ¥Â—üRôÌ–„È�…È�‚È�†È�ƒÈ�‹iö¿–’iö¿–òQÝ‚ÊQÝ‚òQ–µ µ²³ä³ä´²³ä³ä³²³ä³ä²²³ä³äï³äð³äú±³ä³äÊQ‚Ù)òQ•šÊQ¬§„켅켆켃ì¼òQ»¼²²¤¸$¤¸$òQ�Ñú±Ë�Ë�ú±ó¥ó¥„‚•…‚•†‚•ƒ‚•û‚žÁêÐÅ©¹á�ëハX�oª µ ¼þƒµÕ á ׳•¿ÀÔøœöÉ ö”ˆK€ µö ’œ Øž Ö¾ Ì þš“°ÌÁ¦¶Ý㺇VŸ­ ¯ ì³Ð ¨Ý È’½ÒÕôÅ òïü±ó Ô› Ò¤È ‡úÍ–â ¬»½£²¦ Ù‡ßè¦Ü ¶„�T™¾ ­ ç© ¬ 豕ӻ�Èîî­‡ø• Ò˜ Ýθ ö’¼¨Â!¹ ¢ ÕÖçƒÏ®Ó ‡�Ø ùRÚÃó ‚ œ¥ « å¥ © ¯É ‚Œ¹Ä–D‘ ÐÊ´ ªòÇŽ¤¾µ�Ñž ÓäÚƒÔ ¿ï ÿ ˜¢ ¡ ¦ ­× €‰ ˆ·ñÕÀè”òô°‡‚‘ Æ�° ñÊ‹Þì º±šš §àÇÚÿòÐ �޼ü ¼ž £ ß� £ ûçÜÓ œ…íѼä�€‰ ÌŽ Ñš¸ ïê¿­ Ø ¬Ú¶­—– £ûŸùÌ ‹ó‚ Šºžù ¸Ÿ Û™   õØÏ ú��î²éÏàŒòîâ þÊÍ‹  © ˜æ»Ô ‡à Ö²©”Ó÷ùÈ õõòÿõ ›‘› ו � ­½ §Ë ™’˵ÜîâëÚ œüÈɈ ° €…Ï §À•Ü Ç‘øÔÙóÄ ñGð ò ˜Ž— š £Ç ùÌ•¿†±Ø†êÞÖ ¥˜úÆ… æƒÌ Ø ÒŽÇ™íÀ E•¬÷†” Ñ— · à õ‘þ»Á­ÆÔ‚ÕæÎ߆ø•€øÂÛ¤ ª äÈ �‹½ÑÃäý¼ ÷¨’^Ï“ ³ ¿ óñÆú�½ÄÒãÊÙ‚’ˆ ¾¿—¡ ÿˆŸ™‡ðÔ¿ç“ù¸ ñáó¯Ž�†[Í� Ôœ¯ » íÂö‰Û Ý¹ë ¦ÂÏÆ3þñŽÙ… »û � ¢ Þûæý„›ì»ã�õ´ íÝŒ�YËÐ� ÎÝp· î龬 ò·× «ÙµÀÂÖúžŠø� ·ø �”ž ÚÀ œèÎ¨ß‹Ý á ‰‹WžÉÌŠ —¨ ³ ëåî´ü‚Ò —±¾øöô’‡ñþâ ô š�³š Ö¬¦¼ ü˜ä ‘®¼¥´Ûáê†Þ ›UÇÛȇ –¦ ® 겆¦Î Õ¤�¼÷ÃÊðó ï —�¯¥ – � ™ Тº Ë”¾ª¢Èפ …°à‰Õ ¤Ú ƒ—SÅÆ„ žÒ¼ ¬ …î« Ë °Ñ �ºÀƘ¿ ì‘í«”…– – ̶  õô�º¦ÀŸ ¬  ÓþÔÍÞÑ …Ö ”QÁ� šÂ© 㨠®Ç Ù §¢¸Šã¼×•» ôäö‘§„” Έ ’ Ȳ ¾ ðÅùŒ¢¼œœ ©ÑâØ�¢‘Ò ö‡ ½¾þ –  ¥ ¬Ä Õ ‡žé ïӾ撷 ð�®Ž’�‹ ô„ � Ä›º ÁÚ ¸Ü¸™¥˜ Î×ýð�Î ®ü„ ôºé ú ÚŸœ ¡ Ý¢ Ñ üƒÂð³ëºâŽì‹ÿ€ Œ À™« ¶ í½ñ¶Ö ƙش–” Õªúù�Ê ÷÷‰â÷ Öœ“¶� ÙŸ ¿ Í ›”çͧ·ÞŠðÜ ˆ¬�ýü ‰ § ² êä†Ñ Þ Â–É“ùÆËõóÆ ýðÒ™²Õœ «Ó¥É » ûˆ—ã ʤ³Ú§ ìéàØ šÝ …ûø † ® ­ þ„Í …Ú ÔÕÆêÂÉ ïF®Î–Œ— Ó¹ Å ÷Ê“½õ ¡Ç¯Ö„ψ£Ù ‚¤–ùă �ÑÅ…íª ‚Ê ƒÖ ÐÑÄÅ—¾ �ìÊ“• µ Á ôóü�¿žÅÒ«å„ “Õ PÀÁ€ ™£ ¨ â§ €Æ Ø ¡‰òÖÁ(éãûº óãõÆ�•ƒŽ “ DZ ½ Ä‹Œ»›Ã¨› ùÐáÈ4€¡�Ñ õ½ý •Ÿ ¤ à ~Ô †�†4¶îҽ呶 ïß÷Œ­Â�‘ZóŠ •Ãq¹ §ÀôÙ ­å Û·Á˜— ¤ÖÄü ŒÍ úMƒ ¹�  Ü¡ ÙÐ ?˜?˜ õ—"?˜úûèÜ0š•¶Åá×a³·¢p["»~Œìšeöi_core_intrinsicsÁderive_eq_internalsÁ¢ŒÏ¾Ü0š•¶Åá×·{/Èš"L\eú,õÞ}”V¯‘ì˜derive_clone_copy_internalsÁð‰âÜ0š•¶Åá×,Øè|¥£ï SR?˜ fmt_internalsÁfmt_arguments_from_strÁÜ0š•¶Åá×Ám~iüžØi?˜Ü0š•¶Åá×6tšÀ¿�èÛü©Ä;µŽ ]panic_internalsÁ�‹Ü0š•¶Åá×â2¢†‡ �?˜úûèÜ0š•¶Åá×Ýuë?˜úûèÜ0š•¶Åá×ïÞ4« \¶âHû–±)�ÀO_‘옢˾Ü0š•¶Åá×ÖS€ò.´ T´¥?˜Ü0š•¶Åá×é–©�ê eÃ,¶‚ Ë‘ì˜öì˜ð‰âÜ0š•¶Åá×ý^Å•Ü!ÿ^Ñ4?˜úûèÜ0š•¶Åá×5�EMBY£i$crate::format_argsÁñL©©]Åõ‘]Äí˜Ô혞œÜ0š•¶Åá×-ïÄá?…Þ~þì,å‘옣옢ŒÏ¾Ü0š•¶Åá×Ð wg¹•swritelnÁüË—,¥È±]‡˜‹Ü0š•¶Åá×2ÿ”…4_ ®§ ?˜úûèÜ0š•¶Åá×õ´6’\ Êô$crate::panic::unreachable_2021ÁLp®ÞRÕü`À[ˆZÜ0š•¶Åá×à,Ò]óèQ¤ƒ?˜úûèÜ0š•¶Åá×.a ¯aKm©É„“¹ í´œÜ0š•¶Åá×/{<ÛÉ¿¿r–<™ã�Äl‘ì˜øôÜ0š•¶Åá× .5ò¦-M$crate::assertÁŒÉЇT]�±ù]‘ì˜Àgeneric_assert_internalsÁ±œÜ0š•¶Åá×H2¹«í— ɼÅÔ¼´œÜ0š•¶Åá×ÿsùÁ=haÝ ›× ?˜úûèÜ0š•¶Åá×õryrPž:¶xL³­x‘옢˾Ü0š•¶Åá׃ÈÁྉ÷—V?˜úûèÜ0š•¶Åá×Å ±÷ƒÙ�‹=?˜úûèÜ0š•¶Åá×: Ç.Ee D•_?˜Ü0š•¶Åá×nÎá/¬&Í |ÁÙ?˜Ü0š•¶Åá×6Ò\´�½’ËrÁ<ÈsÞ‘ì˜øôÜ0š•¶Åá×~Èaf�é ÐÙ ?˜Äí˜Ôí˜Ü0š•¶Åá×€×ßO`ÇðÚɼ®�(^´œÜ0š•¶Åáװذ�¢‡Ø $–õ ?˜Ü0š•¶Åá׳ì?1nlÔÍ © ?˜Ü0š•¶Åá×�ñk°ö …–¬°y…— ù liballoc_internalsÁÜ0š•¶Åáבc4!3,k'?˜úûèÜ0š•¶Åá×p ,ùà_I Þó?˜Äí˜Ôí˜Ü0š•¶ÅáׄWŠ'r0™e¨,üÀ H ‘ì˜öì˜ð‰âÜ0š•¶Åá×>öFÍQ^ ìg+?˜úûèÜ0š•¶Åá×bÌèÞÞ Že,ر ‘ì˜öì˜ð‰âÜ0š•¶Åáסå#QÃù–žì?˜úûèÜ0š•¶Åá×>ÕÐ<<Ší§oã$Ä"*u‚‚´‘ì˜öì˜ú Ì Ü0š•¶Åá×Åÿö6EXW1>?˜úûèÜ0š•¶Åá×ÁÒP|KŒ¯¹eÍ,ñ † ‘ì˜öì˜ð‰âÜ0š•¶Åá×ò„ó–/�È©e5,í� Á ‘ì˜öì˜ð‰âÜ0š•¶Åá×Àú¤SMo�V té?˜Äí˜Ôí˜Ü0š•¶Åáל• p$€¹šÉü­‚& e ´œÜ0š•¶Åá×z”Ô%稶‹L܉ò‘옢˾Ü0š•¶Åá×ooéß�ë÷wqï,ìÅš ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×S˜"ÎL~ ¡J?˜Äí˜Ôí˜Ü0š•¶Åáד„¡n}ˆ< ·?˜Äí˜Ôí˜Ü0š•¶Åá×7穇šö6Z$crate::panic::panic_2021Á™ø°½‰”"¥Â`Àî˜Ï¢[ˆZÜ0š•¶Åáׇ²ÐúÖ¨?wÉ„‡°½ ´œÜ0š•¶Åá×Eá¸Ûtñ ”§?˜Ü0š•¶Åáל|cþôßT~‘Ø9 ‘옣옢ŒÏ¾Ü0š•¶Åá×\¡:çÿyh Öé?˜úûèÜ0š•¶Åáךï—/²wîD–4ïØ¨ù ”þ˜Ü0š•¶Åá×CÔNšð�‹qµ,×%‚ ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×’0|ÔÄtq×,¶ž » ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ÄLˆ;Ú²³k°ÄüÙÑN)ü¿u­O)‘ÍÜ0š•¶Åá×?ÈkÙFEc $’¼?˜Ü0š•¶ÅáרïæÜŒ»qÔ,‘l)L ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×8u0¤E$@`?˜úûèÜ0š•¶Åá×&ÓA?X~* ÜÚ¡?˜Ü0š•¶Åá×Ö7L¬ŒÛ|Jr�<À÷ ð‘ì˜øôÜ0š•¶Åá×sº‚Ÿl;KÉüµ‰2@ ´œÜ0š•¶Åá×õ¢ ×LKUt ù’?˜úûèÜ0š•¶Åá׊×Î[R‡g  “æ?˜Äí˜Ôí˜Ü0š•¶Åá×¢^‰#w] |‹&?˜Ü0š•¶Åá× Š\Ö&¸ux $¬û?˜Ü0š•¶Åá×ymZÿ¬Þhe¿,ÙÐ ä‘ì˜öì˜ð‰âÜ0š•¶Åá×D!taŠz$crate::format_args_nlÁùDݲ!]Ýøš]Äí˜Ô혠œÜ0š•¶Åá×㑉‚èÑmî âŸ?˜úûèÜ0š•¶Åá×€×Nwˆ  Î6?˜Ü0š•¶Åá×hÀb1'4ÉüóÀ& ´œÜ0š•¶Åá×_yx®iNJqÝ,œ³ þ‘ì˜ñð˜¢g¡gÜ0š•¶Åá׈]qÇéKü�÷† ?˜Ü0š•¶Åá×!"ÊQãEqH,À¸^‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ïk׬«dS6?˜úûèÜ0š•¶Åá×^ÍcÍÂò¸ ~”±¨ ‘옣옢ŒÏ¾Ü0š•¶Åá×Û·›¿5 ó$ü´± ƒ?˜Ü0š•¶Åáׯ<ŒLY@`öÜN|ˆ“•Û¨]—‹Ü0š•¶Åá× 4°˜ŒpxÛüÌ£�ŒÀî˜�‹Ü0š•¶Åá×/êyž”Y3ü·Öœ ?˜Ü0š•¶Åá×çë�2bx ›?˜Äí˜Ôí˜Ü0š•¶Åá×o}ÚtÏ l~^?˜úûèÜ0š•¶Åá×S­ˆtMN?˜úûèÜ0š•¶ÅáןlÜNåÔ~Àª¥‘옣옢ŒÏ¾Ü0š•¶Åá×;ñ¥Èd& |áœ?˜Ü0š•¶Åá×ÐÒüúæŠ<‡qõ,ýj ¯‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ölÇ:*‚ü×ÔS?˜Ü0š•¶Åá×ùE£ßÍŽV;üÀK¶(?˜Ü0š•¶Åá× ¼ÇÀ¦NP® „Ù?˜Ü0š•¶Åá×d} ',Ðà �Œ?˜úûèÜ0š•¶Åá×/nú"„Á½qá,·f‹‘ì˜ñð˜¢g¡gÜ0š•¶Åá×öñLÖ¬ å–É„’> ô´œÜ0š•¶Åá×á¿ì!§¾&œ~Ì« J‘옣옢ŒÏ¾Ü0š•¶Åá×ÔŒ}XýO¶e-,¦¥ )‘ì˜öì˜ð‰âÜ0š•¶Åá׆1§@æ\Œo‹$ʼnJ ‘ì˜öì˜ú Ì Ü0š•¶Åá×+µžŒÅɼÐÐ Ô´œÜ0š•¶Åá×^¡|ywš8k —Ü?˜úûèÜ0š•¶Åá×2ÏC5�@¾ •ì"?˜úûèÜ0š•¶Åá×Í ªZ#n»Ý?˜úûèÜ0š•¶Åá×nBõ¿J Ž ï˜…ùÕŽ"`Äí˜Ô혟œÜ0š•¶Åá×q]ì|Qÿÿ eŸ,ä -™‘ì˜öì˜ð‰âÜ0š•¶Åá×> ¼»z×ås ¢p?˜úûèÜ0š•¶Åá×#bÒyÊBF–4ùícù ”þ˜Ü0š•¶Åá×­‚`è� DÉ„¥ƒo´œÜ0š•¶Åá×ú4À5ž´ðq–,Òæ"l‘ì˜ñð˜¢g¡gÜ0š•¶Åá×w¼ìÀwJì½q‹,â&¤‘ì˜ñð˜¢g¡gÜ0š•¶Åá×çB£b½ÉA"œ?˜úûèÜ0š•¶ÅáשUe5!„ɼ½†=´œÜ0š•¶Åá×B“ÉW•6=e³,— %4‘ì˜öì˜ð‰âÜ0š•¶Åá×B×ÞgrÉx $Ü»?˜Ü0š•¶Åá×Ò~SÓ])òïÿ?˜úûèÜ0š•¶Åá×/|Yž6BîÉü“&û´œÜ0š•¶Åá×böÄMŸ£�¶ÓL¶2)‡‘옢˾Ü0š•¶Åá×RÓ©¤ÎÊMeˆ,ŠG )‘ì˜öì˜ð‰âÜ0š•¶Åá×ÖJ<¦Eè·$À?˜úûèÜ0š•¶Åá×…�€> ÃÞÉ„¨&É´œÜ0š•¶Åá׿Ýb§ÜÚ·íë?˜úûèÜ0š•¶Åá×›«Ö¼IQP $êú?˜Ü0š•¶Åá×DoÜì,1 |m ?˜Ü0š•¶Åá×’\÷õ} M›í?˜úûèÜ0š•¶Åáׯê Íü<¼³”õ˜ñ<©©]#Äí˜Ô혞œÜ0š•¶Åáטç»Ogv ÷2?˜Ü0š•¶Åá×2NÚÂ[ú7¾Ž…™öøÃÆ}kƒÀî˜Ï¢[ˆZÜ0š•¶Åá×áp•qݲÚüúó Ý‘ì˜Àªù˜±œÜ0š•¶Åáוe©ÒúýÉD ´œÜ0š•¶Åá×;Vé÷Gér ³?˜úûèÜ0š•¶Åá×3áv©/¿q“,·ü«‘ì˜ñð˜¢g¡gÜ0š•¶Åá×”†goª¨õ� kY?˜Äí˜Ôí˜Ü0š•¶Åáש•cF—mxes,ìy‘ì˜öì˜ð‰âÜ0š•¶Åá×áÏ�Y£m~ÙG?˜úûèÜ0š•¶Åá×TŠm±�b É„ãy®´œÜ0š•¶Åá×·‘ñÄssîe¡,ó¦‘ì˜öì˜ð‰âÜ0š•¶Åá×Á~ðR´`ë~½�@‘옣옢ŒÏ¾Ü0š•¶Åá×ý†ÿÌ êJ´ 7™?˜Äí˜Ôí˜Ü0š•¶Åá×_L÷ÑöÅÉì¨@†´œÜ0š•¶Åá×Á…ð¤ÆT˜­eí,ñ! }‘ì˜öì˜ð‰âÜ0š•¶Åá×6›j!Q‡L ´¾?˜úûèÜ0š•¶Åá×9˜� Þú#É„­ž ´œÜ0š•¶Åá×Bõ­5Çþ+¶ØL†Ñ)¬‘옢˾Ü0š•¶Åá×é8¹ƒcÀ ÐØ?˜Äí˜Ôí˜Ü0š•¶Åá×>œóW; ± ¢e?˜Äí˜Ôí˜Ü0š•¶Åá×�ù+FMîä �†"?˜úûèÜ0š•¶Åá×a~Œ=v‘‰$”ðuÔ=‰‘ì˜�i€iÜ0š•¶Åá×ô�XË4kÑqå,�û ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×cJz‹ÿËßÿüûÚ¨?˜Ü0š•¶Åá×nƒe&Ыé©Tò?˜úûèÜ0š•¶Åá×23„r|_a6þŒ™[ùÎݲ!]vÄí˜Ô혠œÜ0š•¶Åá×–Ç|ßßÇÑf žo?˜úûèÜ0š•¶Åá×'qu¹oñ±"£ö˜ü®á4M‡˜‹Ü0š•¶Åá×Ó˸1ó[ýÿŽ…™“ø ùZ™"Àî˜Ï¢[ˆZÜ0š•¶Åá×\Ðâ/3g�”õ˜†ñ©©©]DÄí˜Ô혞œÜ0š•¶Åá×”èÜÑ©El çã?˜úûèÜ0š•¶Åá×.úõj±P xÑ?˜Äí˜Ôí˜Ü0š•¶Åá×X~ ‡zÏ‘xq°,a$,‘ì˜ñð˜¢g¡gÜ0š•¶Åá×™°Á ÇèÄeÎ,¸Ú `!‘ì˜öì˜ð‰âÜ0š•¶Åá×P÷…º“ÙïÉüü<)Ò´œÜ0š•¶Åá×üÎYc7kr $üº?˜Ü0š•¶Åá×ãÚc‰}qcÞqÓ,œ2)ô‘ì˜ñð˜¢g¡gÜ0š•¶Åá×µ¸æ,Ë;�Ûü¹„„Z!Àî˜�‹Ü0š•¶Åá×´ ÔwL�à‡q‡,îE b ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×6Á,Ãø;ƒüb´?˜úûèÜ0š•¶Åá×­Ú ÚK š ?˜úûèÜ0š•¶Åá×Dð*ýî¢b �Ç?˜Äí˜Ôí˜Ü0š•¶Åá×èw„ÿýX+Øh?˜úûèÜ0š•¶Åá×ö¶þJ"ˆÎqÑ(çؾ)[!‘ì˜ñð˜¢g¡gÜ0š•¶Åá×gÕ-%f ”«® ?˜Ü0š•¶Åáמ“gõ„.øe‘,öõš$‘ì˜öì˜ð‰âÜ0š•¶Åá×è–—Ù¦mV assert_neÁüÀ…{ µŸ]À‹Ü0š•¶Åá×w¤5èTb}q‚,ÍŽ#‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ÓÖ!®q¯Ô âá?˜úûèÜ0š•¶Åáר|ãVmPÙ ?˜úûèÜ0š•¶Åá×¹áòÙR[B”õ˜oñúè]g!Äí˜Ô혞œÜ0š•¶Åá×Zæ-ÒŸºüØÌà ?˜Ü0š•¶Åá׌S-ç>¶} LÏü?˜Ü0š•¶Åá×z" *ú”»Ûüãd­j%Àî˜�‹Ü0š•¶Åá×㤜'¬N\”õ˜¼ñóè]("Äí˜Ô혞œÜ0š•¶Åá×Ñ¢ìÉH�>é Úì?˜úûèÜ0š•¶ÅáרTi„6–SqÁ,è((à$‘ì˜ñð˜¢g¡gÜ0š•¶Åá×±, Â$µYÄžLüæEÁëÒÜ0š•¶Åá×úŽ.yÉ„·0y%´œÜ0š•¶Åá×_�ßXÁ<8 ù½?˜úûèÜ0š•¶Åá×ÊHPŽê¾Z¦oØ$íÐ)†‘ì˜öì˜ú Ì Ü0š•¶Åá×–ë¹%–Çÿ%ÉÜ?˜úûèÜ0š•¶Åá×=ƒ®ëq3pÈ Áh?˜úûèÜ0š•¶ÅáרusÔ‹Øþ ÷—?˜úûèÜ0š•¶Åáת5Æ ”²1°qÛ,Í!l&‘ì˜ñð˜¢g¡gÜ0š•¶Åá×"uçêO DÕ‚?˜Ü0š•¶Åáײy.U  "?˜úûèÜ0š•¶Åá×Ě؈>7Š ï˜§ ùèŽ"`œ'Äí˜Ô혟œÜ0š•¶Åá×ò8Û‘ ûÿÇÉ„åÇj'´œÜ0š•¶Åáלã�œ`Uc7~â¬Û Á)‘옣옢ŒÏ¾Ü0š•¶Åá×d^FƒkQmó„ð?˜úûèÜ0š•¶Åáתé}O@×À Áæ?˜úûèÜ0š•¶Åá׿Âqdjk~˜¯—_*‘옣옢ŒÏ¾Ü0š•¶Åá×ùL~hj|Ô�þŒ™WùÆݲ!] Äí˜Ô혠œÜ0š•¶Åá×Àʲº•­F?~�¢=Ü*‘옣옢ŒÏ¾Ü0š•¶Åá×ûw0¾2N£ö˜ü÷Ý&ò%‡˜‹Ü0š•¶Åá×�ô7 „\YÑ”õ˜‚ñ¡©©]¬&Äí˜Ô혞œÜ0š•¶Åáד€lËÎóÉûóÂ)?˜úûèÜ0š•¶Åá׃¦gqíØw öÜN|–í:—‹Ü0š•¶Åá×’ü�T<ǽ[rË<ë «%‘ì˜øôÜ0š•¶Åá×I¨3‘옢˾Ü0š•¶Åá×8 ð3øÁp ,¼o?˜Ü0š•¶Åá×Y»3¾õï?ª÷ì?˜úûèÜ0š•¶Åá׿\!ŒúÅ~e,ÃÓ47‘ì˜öì˜ð‰âÜ0š•¶Åá×ìœüÀâîŒ ŒòØ?˜Ü0š•¶Åá× X÷IƒÚ›Ôq:,»Ò š5‘ì˜ñð˜¢g¡gÜ0š•¶Åá×|-C…´ÕŒœ ü?˜Äí˜Ôí˜Ü0š•¶Åá×@¡çë  :Ž…™�øýÔ¢5·+Àî˜Ï¢[ˆZÜ0š•¶Åá×|R¢Ùì·Éìä� r6´œÜ0š•¶Åá×À�…uÚÆÞ qû,ñào6‘ì˜ñð˜¢g¡gÜ0š•¶Åáשe4L‡B1ë R?˜Äí˜Ôí˜Ü0š•¶Åá× d-Ix:�~ø?˜úûèÜ0š•¶Åá×k1~ B¥òÉ„õ€97´œÜ0š•¶Åá×ÀÛQöèqœ,Ã57‘ì˜ñð˜¢g¡gÜ0š•¶Åá×÷óćÅ- Ÿ”?˜Äí˜Ôí˜Ü0š•¶Åá×ãüœ&ý(­É„£Ï7´œÜ0š•¶Åáרè ¤=´«eã,ÛÆ9‘ì˜öì˜ð‰âÜ0š•¶Åá×)©eŽ^#Æ „½?˜úûèÜ0š•¶Åá×®û¿Ò.›‚^ —›?˜úûèÜ0š•¶Åá×�j¡ŠŠ½=°ÉüÔ ˜8´œÜ0š•¶Åá×ý+äFê«æ¢o×$¤Ë)u0‘ì˜öì˜ú Ì Ü0š•¶Åá×"ta·Æä?˜úûèÜ0š•¶Åá×â×€ìì+üÆ“¥?˜Ü0š•¶Åá×`›$ïäEÉ„£š V9´œÜ0š•¶Åá×ävp2Ç eä(ûù¶)P;‘ì˜öì˜ð‰âÜ0š•¶Åá×Ê£Áç:PH”¶ÃLÈ‚ !8‘옢˾Ü0š•¶Åá×¹Š;xw„“ DÍ€?˜Ü0š•¶Åá×K"}à—ˆþŒ™ùRݲ!]¶+Äí˜Ô혠œÜ0š•¶Åá×ìÀ躞�ȘÉ„ßH ]:´œÜ0š•¶Åá×_DXÙã$›‹·þT�-¥™‘_‘ì˜÷¾Ü0š•¶Åá×èæ@ÀÃÖ?Åoá$¦Ù q2‘ì˜öì˜ú Ì Ü0š•¶Åá×Ęt:éïöÜNôÀ›�*—‹Ü0š•¶Åá×§êoùÐoW¾yÙ?˜úûèÜ0š•¶Åá× 8•Ãp‰ ï˜õùµŽ"`Ê;Äí˜Ô혟œÜ0š•¶Åá× Ta‚J© ¬£i?˜Ü0š•¶ÅáלZIîi{Éü–Ù5 ¾;´œÜ0š•¶Åá×´újÛ„b^¶–L­ãK:‘옢˾Ü0š•¶Åáבx ×T®eŽ,Í;í=‘ì˜öì˜ð‰âÜ0š•¶Åáןý…5†A É ãÂ?˜úûèÜ0š•¶Åáרo·FöN�¥ˆ ?˜úûèÜ0š•¶Åá×BPc¬/á <ŽJ ?˜Ü0š•¶Åá×®úb»’àÒq¦,Á™²<‘ì˜ñð˜¢g¡gÜ0š•¶Åá׿ö\„îŠ{öÜNtÙè¾,—‹Ü0š•¶Åá×¢ªH† ›š?˜úûèÜ0š•¶Åá×£Ù¬0ÈóŠ… Rî?˜Äí˜Ôí˜Ü0š•¶Åáײ6í+¼ÊÞ „Ò¡?˜Ü0š•¶Åá×Úî ÊRÞqý,¬š  =‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Åó�Á³e}ºÛüÙ~%?Àî˜�‹Ü0š•¶Åá×^¼¡Bô^´/à-?˜úûèÜ0š•¶Åá×gLÅš-ôeÍ(焱)9@‘ì˜öì˜ð‰âÜ0š•¶Åá× 6-Lñ ’ž $Ðæ?˜Ü0š•¶Åá×¾Äò´¥v>¶¨LŽÁ 0=‘옢˾Ü0š•¶Åá×sû˜…Ž P¹ Þ9 ?˜Äí˜Ôí˜Ü0š•¶Åá×›ƒÆÐë×~üñ›í?˜Ü0š•¶Åá×eœ°ðP¡qå,˜0?‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Ó­¼ä¬Î ¬Ü×?˜Ü0š•¶Åá×&€Í%ÂwýR¶ÍL‚ >‘옢˾Ü0š•¶Åá×=èÓ�6~ÿ�­ó?˜úûèÜ0š•¶Åá×…Bv~]âsqŒ,åšõ?‘ì˜ñð˜¢g¡gÜ0š•¶Åá×¢ã3ÌÀ|Ö¤ró<‰¤D<‘ì˜øôÜ0š•¶Åá×{�ÕŽäŠ �Þ?˜úûèÜ0š•¶Åá×^± 2Š„­qg,þ€‘@‘ì˜ñð˜¢g¡gÜ0š•¶Åáמ³c!§üq¥,®<-É@‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Tçmú©%8Ûü±Ã1.BÀî˜�‹Ü0š•¶Åá×øÕC {ÊŽ…™›øµ‡¥˜"ë6Àî˜Ï¢[ˆZÜ0š•¶Åá×,È\¼SÒA£±‘óW‘ì˜ò¾Ü0š•¶Åá×ñÓÈN²¢´¶™üÌÃ$ÇÀ‹Ü0š•¶Åá×}oú÷,«iQ  ê?˜úûèÜ0š•¶Åá×ÝÖ×ÈSP|q·,a&B‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Dõ 4TeÙ,   BD‘ì˜öì˜ð‰âÜ0š•¶Åá×-æ/£ÍÏͯÉ„–<³B´œÜ0š•¶Åá×› ÏGTQ” μ?˜úûèÜ0š•¶Åá×·Ö±@B¿ ¿ àš?˜úûèÜ0š•¶Åá×åGW%÷²âžïº?˜úûèÜ0š•¶Åáן׷6�~ PÌ?˜úûèÜ0š•¶Åáלv9á³ØQÉü£¿& C´œÜ0š•¶Åá׋¯•3q‚Ê ²Î?˜Äí˜Ôí˜Ü0š•¶Åá×CT†EZNÚ~âû’±)*F‘옣옢ŒÏ¾Ü0š•¶ÅáפuX²JE2qÀ,ŒÓ D‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Tüg%Ÿ  DË?˜Ü0š•¶Åá×}�·íÅÈd+”õ˜ñJ©©]!BÄí˜Ô혞œÜ0š•¶Åá×û�þ8�ç$eþ,å,¤F‘ì˜öì˜ð‰âÜ0š•¶Åá×~\ÕE`Âìôqß,ÃË åD‘ì˜ñð˜¢g¡gÜ0š•¶Åá×­P~7‹¯*=ß?˜úûèÜ0š•¶Åá×ùN;v~£y+eJ,ÒFG‘ì˜öì˜ð‰âÜ0š•¶Åá×Ñd¦!Q£¦%£ö˜üÜ–$¸B‡˜‹Ü0š•¶Åá×DP{v10‚o–$“ãœ=‘ì˜öì˜ú Ì Ü0š•¶Åá×ÌZ`ÚÿÉ„“³ &F´œÜ0š•¶Åá×-ýµ5ëÛ É„·¸TF´œÜ0š•¶Åá×_Œó(C­ºÖ¸?˜úûèÜ0š•¶Åá×b#°ü5ü~x¯­ÙH‘옣옢ŒÏ¾Ü0š•¶Åá×´3|éûÀ7)Éü…=,ïF´œÜ0š•¶Åá×¾%ä ¡  f ƒž?˜úûèÜ0š•¶Åá×s á2*Û0.$crate::thread::local_impl::thread_local_innerÁêùÓ„hQaåùethread_local_internalsÁ‚Ö– ŸgâfÜ0š•¶Åá×FC�b;ZÈqÁ,Ás G‘ì˜ñð˜¢g¡gÜ0š•¶Åá×£æ/�I¼ÂɼØ(( H´œÜ0š•¶Åá׌Ìzµ Yí–lêu_Aù ”þ˜Ü0š•¶Åá×P€š’#àÖÉÙ¸çð¶)nH´œÜ0š•¶Åá×?ÇÔóuƒ±õüÔî„ ?˜Ü0š•¶Åá×àÓ™� Ð Dáå?˜Ü0š•¶Åá×!$Œ BMæü§Nû?˜Ü0š•¶Åá×òAÞz°©ˆþûþ ?˜úûèÜ0š•¶Åá×âxȃo­É„¥<-?I´œÜ0š•¶Åá×ßÀ2 � güº™Ô?˜Ü0š•¶Åá× W^¨Íeã,½"*^K‘ì˜öì˜ð‰âÜ0š•¶Åá×§NrîSkQÉ”·÷ ÐI´œÜ0š•¶Åá׉èw)Œ©š |”Ö?˜Ü0š•¶Åáׯ"éxœþ*±ÌÆ Õ‘ì˜ò¾Ü0š•¶Åá× ‚º¢‡‹· í¬?˜úûèÜ0š•¶Åá×AÉd¨ÖÏ ï˜ÖùŽ"`øJÄí˜Ô혟œÜ0š•¶Åá×Zqó3—Å9‘‹$Ö‰¯-‘ì˜�i€iÜ0š•¶ÅáטŠÑµ!ýUœ ƒ‰"?˜úûèÜ0š•¶Åá×À˜+ï=pÍ* »Ü?˜úûèÜ0š•¶Åá׸ä BJMº+ɼ�¥ [K´œÜ0š•¶Åáר·“v�™+eï,åÅSM‘ì˜öì˜ð‰âÜ0š•¶Åá×a»°ýÍ|€ Ûr?˜úûèÜ0š•¶Åá×Áù¨R·`öq˜,܃"ÃK‘ì˜ñð˜¢g¡gÜ0š•¶Åá×®â–ä‡ÔÃq‘,ÑûK‘ì˜ñð˜¢g¡gÜ0š•¶Åá×™§ÌŠ "©@œ?˜úûèÜ0š•¶Åá×#Ì+*©›ÏIÉ„¸™”L´œÜ0š•¶Åá×ÿ)»ÇcQÈNÉüÁ7ÂL´œÜ0š•¶Åá×oü°QÑ̶"eµ,Ð%¹N‘ì˜öì˜ð‰âÜ0š•¶Åá×ø!÷ÿ{JxqÖ,›” úL‘ì˜ñð˜¢g¡gÜ0š•¶Åá×¹#‡N¶�* ˜¼?˜úûèÜ0š•¶Åá×àÈJòÊUKÉüÝÐE)•M´œÜ0š•¶Åá×îÕþMÍǵ œš?˜úûèÜ0š•¶Åá׈S(SÒeÔ,Šl)¼O‘ì˜öì˜ð‰âÜ0š•¶Åá×*N4tæððe�,›> ÷O‘ì˜öì˜ð‰âÜ0š•¶Åá×3è§ ®ÙÉ9ë?˜úûèÜ0š•¶Åá×y܉Nì÷ûÉ„ôj —N´œÜ0š•¶Åá×Ç©²¿·Öu¿ÉÚ¸ûȾ)ÈN´œÜ0š•¶Åá×/O�?ˆHãÒq¾,©Î ÅN‘ì˜ñð˜¢g¡gÜ0š•¶Åá×O L*&£[Ë ²û?˜úûèÜ0š•¶Åá×Ãõ~=ò`Ý.þŒ™ùBݲ!]õ@Äí˜Ô혠œÜ0š•¶Åá׉=èG#·ôIºí?˜úûèÜ0š•¶Åá×]H«™öÈíqÜ,ᥠ›O‘ì˜ñð˜¢g¡gÜ0š•¶Åá×B à$êöÜN¼Ç’§?—‹Ü0š•¶Åá×ÑcŽ’$â‹”õ˜Eñ¤è]·MÄí˜Ô혞œÜ0š•¶Åá×R¶Z|ÍXª ‰·?˜úûèÜ0š•¶Åá×ÞS–мêŠÊq”,ª¨pP‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ótò\PX õ ÜZ?˜Äí˜Ôí˜Ü0š•¶ÅáךmXî\ó7—È1ü½¯*ü ù‹ùÜ0š•¶Åá×ýÊqú½_®Ë ¬Ö ?˜úûèÜ0š•¶Åá×{‡1y÷è�; Îâ?˜úûèÜ0š•¶Åá×;Þº-—Asq£,͆lQ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×´P×'V6ñÄqÀ,£¤Q‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ÕMfnÈ3H' š?˜Äí˜Ôí˜Ü0š•¶Åá×eãåÂùew.ɼ†¡ ?R´œÜ0š•¶Åá×Wèwq ë­µµÙøç̓~)�ý¿]¤œÜ0š•¶Åá×è6#hæ �Ù?˜Äí˜Ôí˜Ü0š•¶Åá×i’\ |q7å"?˜úûèÜ0š•¶Åá×ä#Nõø6†ÿ t¯Õ?˜Ü0š•¶Åá×ô¾–�Asµoá$±fÖJ‘ì˜öì˜ú Ì Ü0š•¶Åá×t˜YdpÄ‘oÌ$¥ K‘ì˜öì˜ú Ì Ü0š•¶Åá×)�JpHA’; $íþ?˜Ü0š•¶Åá׸+á¬]/õÛ?˜úûèÜ0š•¶Åá×EÑ;a‚Iõ—ɼ™Î íS´œÜ0š•¶Åá×p–ñåàÝ+e‹,¾‰åU‘ì˜öì˜ð‰âÜ0š•¶Åá×Ò·e¡Õ�[ò]?˜úûèÜ0š•¶Åá×)¡5ãÃÕ%áÉ„ö� †T´œÜ0š•¶Åá×X´m/K´€ ä± ?˜úûèÜ0š•¶Åá×@hý’–¦ìdŽ…™_øÓ…™0eJÀî˜Ï¢[ˆZÜ0š•¶Åá×a0›ä[ß $¹€?˜Ü0š•¶Åá×Uñ29‚W¢ÔÙ4?˜úûèÜ0š•¶Åá×O·×޲~¬‹–4ÖížNù ”þ˜Ü0š•¶Åá×¹n2¯·P ï˜Ëù¦Ž"`VÄí˜Ô혟œÜ0š•¶Åá×Þ¼ÕyhV£ö˜„àâèR‡˜‹Ü0š•¶Åá×Ñ_’>H¬qˆ,ñëU‘ì˜ñð˜¢g¡gÜ0š•¶Åá×xÙžKz‘  ž�?˜Äí˜Ôí˜Ü0š•¶Åá×Ûk!�40â± ”ÀÛ ?˜Ü0š•¶Åá×c6ò3Ä»8•Éü�l&)¬V´œÜ0š•¶Åá×kï% ‹{ â»?˜úûèÜ0š•¶Åá×·MxËt{‘Ó$°2)ò9‘ì˜�i€iÜ0š•¶Åá×½›�à_~ Ù™?˜úûèÜ0š•¶Åá×Ö¹fï‰éÖö‡L‚F ÌU‘옢˾Ü0š•¶Åáׇ”ÓµÐ�ú œ‘?˜úûèÜ0š•¶Åá×ì¦.ïm¡ZñÉÚøûû°&)ÙW´œÜ0š•¶Åá× €î"a'* |Ÿï?˜Ü0š•¶Åá×8¾«ùÈb‘se°,çK öY‘ì˜öì˜ð‰âÜ0š•¶Åá×»EòÍ'�< ðú?˜úûèÜ0š•¶Åá×cÎ.?K�èÔ ç?˜Äí˜Ôí˜Ü0š•¶Åá×àw-´Šªé¿”õ˜ñ:©©]LVÄí˜Ô혞œÜ0š•¶Åá×k·Èýˆ[= ï˜“ ùÁŽ"`wYÄí˜Ô혟œÜ0š•¶Åá×Ì•¿í²&¢Úü´ñ äT‘ì˜Àªù˜±œÜ0š•¶ÅáלÀåô»¹{û Úª?˜úûèÜ0š•¶Åáר3ÿ&;»Àe“,°ü�[‘ì˜öì˜ð‰âÜ0š•¶Åá×]x$¤m° ¤â?˜úûèÜ0š•¶Åá×°sx Í 5_ ÜÕ ?˜úûèÜ0š•¶Åá×:¬ ɛĠ\qr,Îp Z‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ä¿îõÀx¯ìq ,ý¦YZ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×õ5•£W~‡ãÉ„ÅpÂZ´œÜ0š•¶Åá×?Áì"²ºkq½,ú¾Z‘ì˜ñð˜¢g¡gÜ0š•¶Åá×R‘{²WKh ¥í?˜úûèÜ0š•¶Åá×­:¯‘Š7'æ©?˜úûèÜ0š•¶Åá×-Š�*›áÿÔ‘Ø$€Ñ)p>‘ì˜�i€iÜ0š•¶Åá×F—zÎ2Éì…” ¼[´œÜ0š•¶Åá×µèÚÑà þå?˜úûèÜ0š•¶Åá×{ËñVƺ ߘ?˜úûèÜ0š•¶Åá×RxB§ÑF Éü�G J\´œÜ0š•¶Åá×9[Fãÿ¿‚Š Ì«Ô?˜Ü0š•¶Åá×é‘AkOî@U $²þ?˜Ü0š•¶Åá×Q.’äN+´:Ã?˜úûèÜ0š•¶Åá׊'D¸­l~‰�ð_‘옣옢ŒÏ¾Ü0š•¶Åá×¥b†>"ôê  ÏG?˜Äí˜Ôí˜Ü0š•¶Åáר:ËwÃY�¹”õ˜äñÊè]çZÄí˜Ô혞œÜ0š•¶Åá׿΢âI´nò Ÿ° ?˜úûèÜ0š•¶Åá×ÿ€ê§ä4ßþŒ™ZùÌݲ!]hOÄí˜Ô혠œÜ0š•¶Åá×!$M€[Ë $Œ÷?˜Ü0š•¶Åá×h¿+™Ìl§4?˜úûèÜ0š•¶Åá×Sž-Ï×Ôq’,¡8"3^‘ì˜ñð˜¢g¡gÜ0š•¶ÅáׯœŠ ÔŽnc£ö˜üàà9�[‡˜‹Ü0š•¶Åá×[™ ÌcÝ‹K”õ˜…ñ§©©]W\Äí˜Ô혞œÜ0š•¶Åá×K¬A2_ôâ ”Öâ ?˜Ü0š•¶Åá×4œ�ÿŸš{>�?˜úûèÜ0š•¶Åá×L”¦ó³nïe°,Z$.a‘ì˜öì˜ð‰âÜ0š•¶Åá×¾(¿¹uý6@qÌ,�¡ o_‘ì˜ñð˜¢g¡gÜ0š•¶Åá×#ž$z®¶d ­× ?˜Ü0š•¶Åá×i-€8ØÖ#oÓ$–2)­W‘ì˜öì˜ú Ì Ü0š•¶Åá×ïð:„Êâ3-Ûü¬ƒƒ3aÀî˜�‹Ü0š•¶Åá×ÍÖ;xFW5¿ æ–?˜úûèÜ0š•¶Åá×!õÔ£Iu›e‡,çE fb‘ì˜öì˜ð‰âÜ0š•¶Åá×Ogê±޽OÉ„íR×`´œÜ0š•¶Åá×üªú_Ú ¤à À�?˜úûèÜ0š•¶Åá×r“ñÉÜàT7eÑ(çѾ)c‘ì˜öì˜ð‰âÜ0š•¶Åá×ÚbÅkà¹÷É„è! ra´œÜ0š•¶Åá×>?$V~‚° Í¡?˜úûèÜ0š•¶Åá×P6ðâ4/ ®ú?˜úûèÜ0š•¶Åá×mÆFÑGzˆ$½?˜úûèÜ0š•¶Åáמ“èàgîã Ôž?˜úûèÜ0š•¶Åáד¦<ÿ+F  l¹#?˜Ü0š•¶Åá×Ö%åX³’;•É´›F ƒb´œÜ0š•¶Åá×°=ó=çö^?˜úûèÜ0š•¶Åá׆œ°y–xxòɼ–ø àb´œÜ0š•¶Åá×&Y…oÔ]ùq�,ý†Ýb‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Ë댡<ÇL ï˜—ùøŽ"`¸cÄí˜Ô혟œÜ0š•¶Åáטxƒ­‚·ç ŽÕ ?˜úûèÜ0š•¶Åá×¥¯iŸå÷+É´‡!µc´œÜ0š•¶Åá×22˜¤EªÚ—¶�Lî[Ab‘옢˾Ü0š•¶Åá׿FTèÐ×5”õ˜»ññè]žaÄí˜Ô혞œÜ0š•¶Åá×.TÃKM^6 Ç*?˜úûèÜ0š•¶Åá×ÊÕ·.@r÷Öœ?˜úûèÜ0š•¶Åá×°Žr”Ñ%#ɼÇ%µd´œÜ0š•¶Åáצ�µ–@›¯eÁ,á((¬f‘ì˜öì˜ð‰âÜ0š•¶Åá×6Ÿ­.§›¢ µYì÷JÔ?ëÒÜ0š•¶Åá×0@úµpÑ.É„ò/Je´œÜ0š•¶Åá×Añ®žÛ%{§?˜úûèÜ0š•¶Åá×È×ký¦(eØ,æÐ)qg‘ì˜öì˜ð‰âÜ0š•¶Åá×}y¾µçáXÎ œå?˜úûèÜ0š•¶Åá×\ �Qn’7ì?˜úûèÜ0š•¶Åá×Ow{†QLÙ- ?˜úûèÜ0š•¶Åá×ã"ò¦ �eÛ,Æ!:h‘ì˜öì˜ð‰âÜ0š•¶Åá× SùQŠV¬ª $÷ý?˜Ü0š•¶Åá×ÇŽÒS¹¢£¯º?˜úûèÜ0š•¶Åá×B,0¼[ZŽ…™ˆøæ°“ç„\Àî˜Ï¢[ˆZÜ0š•¶Åáן=¹*Yûrâ<£Û $c‘ì˜øôÜ0š•¶Åá×~ºÍÑ„1çI£ö˜„ÒŸrd‡˜‹Ü0š•¶Åá׿}$~`ÿLÿ ¹¯ ?˜úûèÜ0š•¶Åá×ö6¾ h~QýþŒ™VùÄݲ!]nYÄí˜Ô혠œÜ0š•¶Åá×ïôdr±5q˜,¨—åg‘ì˜ñð˜¢g¡gÜ0š•¶Åá×y·A ð8”?˜úûèÜ0š•¶Åáט(“­Ý+þLq�,›=Lh‘ì˜ñð˜¢g¡gÜ0š•¶Åá×H"_�íqÍÁ£ö˜|¬Üµe‡˜‹Ü0š•¶Åá×ù³­¨ÿ’”õ˜�ñŸ©©]ofÄí˜Ô혞œÜ0š•¶Åá×7†M–V/&? ”×Þ ?˜Ü0š•¶Åá×ø²ªŽãÞðà4¨ ?˜úûèÜ0š•¶Åáדç0„ç{›É„€¢"~i´œÜ0š•¶Åá×»„`�Í•JöÜN|ËìNY—‹Ü0š•¶Åá×û÷e•)>â±qË,ä ©i‘ì˜ñð˜¢g¡gÜ0š•¶Åá×¥3¿µÛWäB Ø�?˜úûèÜ0š•¶Åá×\…C¤ÜŽj·ÑT§)¸/‘ì˜÷¾Ü0š•¶Åá׸ЬœàÉAq�,É% Ej‘ì˜ñð˜¢g¡gÜ0š•¶Åá×p|J ÉTn§ÉüÜ,6¯j´œÜ0š•¶Åá×sD@HÌiš^ ¾‘?˜úûèÜ0š•¶Åá×ûì“ KwŸqÏ(瀷)Þj‘ì˜ñð˜¢g¡gÜ0š•¶Åá×òA G%~ªØð qm‘옣옢ŒÏ¾Ü0š•¶Åáס<~…ò–! ¡v?˜úûèÜ0š•¶Åá×}ûZÂ>å‘¥í?˜úûèÜ0š•¶ÅáׯÔsB?M@ º ?˜Ü0š•¶Åá×6ˆ'QôU eÑ,¤F Óm‘ì˜öì˜ð‰âÜ0š•¶Åá׫‡²Ù#¶e<,Ÿø n‘ì˜öì˜ð‰âÜ0š•¶Åá×op“hÊv,æEý�eá,ŸÙ Ø|‘ì˜öì˜ð‰âÜ0š•¶Åá×Û&„ði˜i›£ö˜|œ™Ix‡˜‹Ü0š•¶Åá×8#â«*F³œ ·­ ?˜úûèÜ0š•¶Åá×½¨ÅÏÒYô8 $–Ð?˜Ü0š•¶Åá×s<âÈ•~–©ãý}‘옣옢ŒÏ¾Ü0š•¶Åá×Î�¾bä Ë-?˜Äí˜Ôí˜Ü0š•¶Åá×� qïü…𙎅™Nø³§\‰ÅqÀî˜Ï¢[ˆZÜ0š•¶Åá×3¾s‡Ð¯A–Ü›K¨uù ”þ˜Ü0š•¶Åá×Wc^d\)¹ùø˜�ÉŽ‡T]Wx‘ì˜Àªù˜±œÜ0š•¶Åá×~58xç&Æ¡qy,ñÈÈ|‘ì˜ñð˜¢g¡gÜ0š•¶Åá׺E.»,x Ç× ?˜úûèÜ0š•¶Åá×¢CóT¿[ɼ‘8"a}´œÜ0š•¶Åá×GjY~_d!Ô«\?˜úûèÜ0š•¶Åá×âÏ1´\9\† $–Ú ?˜Ü0š•¶Åá×mà­Ì@@u ï˜íù׎"`U~Äí˜Ô혟œÜ0š•¶Åá×Ãâ¬MV¼½1 ôÚ?˜Ü0š•¶Åá×̘1’j£Î· L§?˜Ü0š•¶Åá×_†Ð»Q4ü+ ˆì?˜Äí˜Ôí˜Ü0š•¶Åá×�÷XÖI‰ ì ?˜Ü0š•¶Åá×ЖOÑ5\äüÙõõ?˜Ü0š•¶Åá×'³�ƒ{]‚ ¶æ?˜úûèÜ0š•¶Åá×±kÇÒ †©~¨ŠÁ F�‘옣옢ŒÏ¾Ü0š•¶Åá×ðš„| ‘ÆÃ ,é`?˜Ü0š•¶ÅáזלØîIÖr<æd{‘ì˜øôÜ0š•¶Åá׎§Ê2ë¨ ¢Ý?˜Äí˜Ôí˜Ü0š•¶Åá×…ûºï!Ç,qä,ɲ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Üg0ª§ü+~Íþ D‚‘옣옢ŒÏ¾Ü0š•¶Åáל äÍ/Èבq5,ú� (€‘ì˜ñð˜¢g¡gÜ0š•¶Åáׇ°¸sǹoŒ$ßšAx‘ì˜öì˜ú Ì Ü0š•¶Åá×�ê©fÙ¹| Ę"?˜úûèÜ0š•¶Åá×±‰%­  S]?˜úûèÜ0š•¶Åá×Q+רéVçÅqó,‚¤ù€‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ðíÍc;ã�— ”Ô¨?˜Ü0š•¶Åá×µx¨?T déqš,‰¢"X�‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ø#Â÷t%·‘Tç7G‘ì˜÷¾Ü0š•¶Åá×p·)qm5«D^œ?˜úûèÜ0š•¶Åá×L�5œ„ýie·,Z&탑ì˜öì˜ð‰âÜ0š•¶Åá×Q‘OŒ©Tè;qØ,¼Ÿ .‚‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ij ’$°²rä¢?˜úûèÜ0š•¶Åá×Ó•}áÔeŒÎɼ½!Æ‚´œÜ0š•¶Åá×'à`¶wŒV8Ð?˜úûèÜ0š•¶Åá×TŸœ\ü‰"¶ÔLœl)��‘옢˾Ü0š•¶Åá×C¯,ºÓfd§ —“?˜úûèÜ0š•¶Åá×ÄhŽ&cÅ?,ÉÌ©ƒ Šƒ´œÜ0š•¶Åá×Ë·ûûžœ'qâ(û‹±)‰ƒ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ài2—áe×eÀ,…Ó ½…‘ì˜öì˜ð‰âÜ0š•¶Åá×É«ðnùË $«ü?˜Ü0š•¶Åá׺ogt¨Á_þŒ™ùHݲ!]ëuÄí˜Ô혠œÜ0š•¶Åá× á,WçåÚ lª7?˜Ü0š•¶Åá×8ퟯÁûÈÉüÂð+ ¹„´œÜ0š•¶Åá× KùézþsÈeß,¼Ë ±†‘ì˜öì˜ð‰âÜ0š•¶Åá×"Ñ3QÉ›Øg£ö˜üŽ–&#‚‡˜‹Ü0š•¶Åá×ξ�>ou�BqI,ÕÔ&…‘ì˜ñð˜¢g¡gÜ0š•¶Åá× É?3yß‹° Ëø ?˜úûèÜ0š•¶Åá×\„µ*æ6 $«Î?˜Ü0š•¶Åá×ð€GS5dàɄإ æ…´œÜ0š•¶Åá×DH{/á1£e–,ŒãÞ‡‘ì˜öì˜ð‰âÜ0š•¶Åáט-˜±Çí…E <[?˜Äí˜Ôí˜Ü0š•¶Åá×$�-ébXZáÛüƲF|‡Àî˜�‹Ü0š•¶Åáוزðs‡¯€qx,¨­„†‘ì˜ñð˜¢g¡gÜ0š•¶Åáפ_]Ñ Ç¹ ëÖ ?˜úûèÜ0š•¶Åá×! ýl¤ï×åQ?˜úûèÜ0š•¶Åá×…ê¡Ï¨ÉüÄ;,M‡´œÜ0š•¶Åá×NCD­8h D§Ù ?˜Ü0š•¶Åá× nUÝVýŽ…™2ø}‘ø :mÀî˜Ï¢[ˆZÜ0š•¶Åá×.‚˜ƒJ!tCÛç?˜úûèÜ0š•¶Åá×/k„%5J ~‹Ò‰€Œ‘옣옢ŒÏ¾Ü0š•¶Åá×gÛ`v¶(qî,Ï„eŠ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×>GñcnXç']?˜úûèÜ0š•¶Åá×M¹Óè·G%Ç9?˜úûèÜ0š•¶Åá×3¥¨Ro"ÉÌù£-‹´œÜ0š•¶Åá×6Jy¯éÆ Ce ,ž-$�‘ì˜öì˜ð‰âÜ0š•¶Åá×Ô{&€Î¥ýG D¾¦?˜Ü0š•¶Åá×lK‰öÏ¡–d°½å„ù ”þ˜Ü0š•¶Åá׌F¬9o\+F ï˜Îù­Ž"`bŒÄí˜Ô혟œÜ0š•¶Åá×Tz¨ã®Põçe‘,Êù�‘ì˜öì˜ð‰âÜ0š•¶Åáר~3¯™K è�?˜Äí˜Ôí˜Ü0š•¶Åá×bBRvæ_ã ¹�?˜úûèÜ0š•¶Åá×Û-*ÁYA"oÖ$•” {„‘ì˜öì˜ú Ì Ü0š•¶Åá×.r¥zŒ�Ôö ÷Ü ?˜Ü0š•¶Åá×”zÖMºðCÉü”ËE),�´œÜ0š•¶Åá×�1”Pok‰b[¡?˜úûèÜ0š•¶Åá׎›¤¢‡«±ÓÍ2):c‘ì˜ò¾Ü0š•¶Åá×õãoO_wå?˜úûèÜ0š•¶Åáׯ(m1z:Xõrˆ<˜G Љ‘ì˜øôÜ0š•¶Åáׇ÷Í!ÅñÉüúï+ Ž´œÜ0š•¶ÅáךrÙ´çÄt ¡Í?˜Äí˜Ôí˜Ü0š•¶Åá×Á¯:÷�MØÊ <¼Ž?˜Ü0š•¶Åá×x‰Ð¸}šŠe¾,¢Î o�‘ì˜öì˜ð‰âÜ0š•¶Åá×Bð(ð"¦÷j2?˜úûèÜ0š•¶Åá×Q!¤ ¥FÍA Óè?˜Äí˜Ôí˜Ü0š•¶Åá×2Çþ‰«}ÚþŒ™ù@ݲ!]×€Äí˜Ô혠œÜ0š•¶Åá×5ßçéKßj ¹4?˜Ü0š•¶Åá×´Yc?TÝ^ q ?˜Ü0š•¶Åá×xå]׆:Ô”õ˜øñÈè]M�Äí˜Ô혞œÜ0š•¶Åá×b#Á¤;°AóqÛ,ÆŸ Ö�‘ì˜ñð˜¢g¡gÜ0š•¶Åá×~€Šë ä`£ö˜Ô¦�?�‡˜‹Ü0š•¶Åá×R›2eγ �± ?˜Ü0š•¶Åá×]Ç=í'2 që,ã8h�‘ì˜ñð˜¢g¡gÜ0š•¶Åá×·È­3�”ê^~?˜úûèÜ0š•¶Åá×"IV9,fo”$¤¨°ˆ‘ì˜öì˜ú Ì Ü0š•¶Åá×9ü°ž’¬Û Õâ?˜úûèÜ0š•¶Åá×vLžIúÕ]f?˜úûèÜ0š•¶Åá×dÉRIÔž\’üëÂU(?˜Ü0š•¶Åá×wÀ–·°%›åsH?˜úûèÜ0š•¶Åá×T½™43T<e£,Ɔ¹“‘ì˜öì˜ð‰âÜ0š•¶Åá×ò÷¢#0WÉ—eÀ,œô“‘ì˜öì˜ð‰âÜ0š•¶Åá×KÂå5þWÞ Ìí?˜úûèÜ0š•¶Åá×ðà¼Aµ° ÀɼQ'”’´œÜ0š•¶Åá×À‰‰cÚ\[±Ø�Ñ)th‘ì˜ò¾Ü0š•¶Åá×Ùc¤óÄ~/³É¼—  ÷’´œÜ0š•¶Åá×!Ü\%}c ƒw?˜úûèÜ0š•¶Åá×$íwKuqÉ„•-S“´œÜ0š•¶Åá×j3LZ³t³¨ «™?˜úûèÜ0š•¶Åá×gí±¡6àt~eá,ªfz•‘ì˜öì˜ð‰âÜ0š•¶Åá×xŸk‚~^]À óþ?˜úûèÜ0š•¶Åá×f^2�ÛGecï¸~‡þE ¢š‘옣옢ŒÏ¾Ü0š•¶Åá×;ÜR‘•3Þãê?˜úûèÜ0š•¶Åá×»_YÍBþÜÿü¶î„?˜Ü0š•¶Åá×Å#Äö97ï‰1?˜úûèÜ0š•¶Åá×—i®\we¯,èH ›‘ì˜öì˜ð‰âÜ0š•¶Åá׊˜‡žŸÒßÙþŒ™ù8ݲ!]‹Äí˜Ô혠œÜ0š•¶Åá×¢?Œjƒ{ –Ÿ?˜úûèÜ0š•¶ÅáרúTÎ&è‡ Å2?˜Ü0š•¶Åá×Ò'BÅâëaŽ…™õø¿‚}>��Àî˜Ï¢[ˆZÜ0š•¶Åá×®‹"DÊ×·õ ”‡° ?˜Ü0š•¶ÅáךrÜõåíêf?˜úûèÜ0š•¶ÅáוO�bp×ï2^?˜úûèÜ0š•¶Åá×[•ŸºWÍû¦oƒ$—!z’‘ì˜öì˜ú Ì Ü0š•¶Åá×°Ï¢w0Ê÷)?˜úûèÜ0š•¶Åá×çM"G ~”õ˜qñþ©©]·˜Äí˜Ô혞œÜ0š•¶Åá×½3�¾[‚e ,ö¦;�‘ì˜öì˜ð‰âÜ0š•¶Åá×äÈ ±´m4öÜNt­pN‹—‹Ü0š•¶Åá×ú¨Î8@ÌXo½$ô‰“‘ì˜öì˜ú Ì Ü0š•¶Åá׈ù;B‚bôœ?˜úûèÜ0š•¶Åá×[¢Ò>¨qÂ,¾�(œ‘ì˜ñð˜¢g¡gÜ0š•¶Åáך㉠Í!ëƒ ”Ȉ ?˜Ü0š•¶Åá×—g�&–ðd~ØüÐ)Êž‘옣옢ŒÏ¾Ü0š•¶Åá×âË8œa-œéÝ?˜úûèÜ0š•¶Åá×D�kÁï ¬Žs?˜Ü0š•¶Åá×Î>òhH%¾ƒ/ì?˜úûèÜ0š•¶ÅáׇûþßèŠÉüÞE/ c�´œÜ0š•¶Åá×=l{³‹^¬ ¸þ?˜úûèÜ0š•¶Åá×oÌ$‰¡ ˜‘ì˜öì˜ú Ì Ü0š•¶Åá×qeâ’±…œü¶Ö †?˜Ü0š•¶Åá× 6'r}Û $ý¹?˜Ü0š•¶Åá×e§¤¹pKßÕºý?˜úûèÜ0š•¶Åá×K·ŸÞ\:¥ÃeÓ,�2)梑ì˜öì˜ð‰âÜ0š•¶Åá×$2¿8ÌËêÕq†,Î@ &¡‘ì˜ñð˜¢g¡gÜ0š•¶ÅáׯØ(ã?a:=·ê?˜úûèÜ0š•¶Åáטiµ‡æ¹@˜É„êE¾¡´œÜ0š•¶Åá×z1Ïq&Ò¢l ”‰ì?˜Ü0š•¶Åá×ù;Ï}”zëÉF?˜úûèÜ0š•¶Åá×k’¤HA“T¬/?˜úûèÜ0š•¶Åá×Ô\;cËJnAí?˜úûèÜ0š•¶Åá×ñu@YÑÁ@f Dݬ ?˜Ü0š•¶ÅáדÉ À“ָɼáà Å¢´œÜ0š•¶Åá×"�Ðî��Œïe�,ö†½¤‘ì˜öì˜ð‰âÜ0š•¶Åáׇ©@§²î ¸V?˜Äí˜Ôí˜Ü0š•¶Åá×à�ÌSð’ÒŽ…™nøöîW'à˜Àî˜Ï¢[ˆZÜ0š•¶Åá×éáH¢Ž Hû?˜úûèÜ0š•¶Åá×øãâZF¢íɄĎʣ´œÜ0š•¶Åá×+t]lUu~�ê[ ¦‘옣옢ŒÏ¾Ü0š•¶Åá×­B7K+Ë ë¬?˜Ü0š•¶Åá×€ƒ×BmËq¥,¾@*¤‘ì˜ñð˜¢g¡gÜ0š•¶Åá×|•Nœ¢ˆ")“· ?˜úûèÜ0š•¶Åá׈n¸/(¿¸ —?˜Äí˜Ôí˜Ü0š•¶Åá×�7‡çY6šµYÄÖHªëÒÜ0š•¶Åá××ÛF â±×ÔË)Óz‘ì˜ò¾Ü0š•¶Åá× "´)®ï¶šL´ç µ£‘옢˾Ü0š•¶Åá×<­Ty94§Û?˜úûèÜ0š•¶Åá׾↬k³­ ½`?˜úûèÜ0š•¶Åá×!Ð+íO:«$Éü˜—&í¥´œÜ0š•¶Åá×ýøt¡$ˆò _Ô?˜Äí˜Ôí˜Ü0š•¶Åá×C@Ï‚–+ç%qæ(ûؾ)¦‘ì˜ñð˜¢g¡gÜ0š•¶Åá×§ÇÚFÆ ýý?˜úûèÜ0š•¶Åá×רU+¢ºò´ D“‚?˜Ü0š•¶Åá׎…¾Ýß~ ` p¸?˜Äí˜Ôí˜Ü0š•¶Åá× g‰^öáîe‡,±&ר‘ì˜öì˜ð‰âÜ0š•¶Åá×®tB[¬Q}oâ$�Û øž‘ì˜öì˜ú Ì Ü0š•¶Åá×<Ô´ÑàN£ö˜ü¡Ÿ&‚¤‡˜‹Ü0š•¶Åá׆l:Lo y¤Tï?˜úûèÜ0š•¶Åá×nÞs«B þŒ™UùÂݲ!]}™Äí˜Ô혠œÜ0š•¶Åá×BCÜ£6×u Îà?˜úûèÜ0š•¶Åáׯs‡tÃ�¥É„§+T¨´œÜ0š•¶Åá×±˲å•.1e˜,¡—Lª‘ì˜öì˜ð‰âÜ0š•¶Åá×8Ôõr5£Óxo�$•=l ‘ì˜öì˜ú Ì Ü0š•¶Åá×4ùò9Û!²q£ö˜üÞÛ9ö¥‡˜‹Ü0š•¶Åá×)G3 Îuè«”õ˜€ñ�©©]°¦Äí˜Ô혞œÜ0š•¶Åá×&"‘š`¤È.q«,a#7©‘ì˜ñð˜¢g¡gÜ0š•¶Åá×öÒ%ø!löÜN|œìC™—‹Ü0š•¶Åá×~ø¦|t † D£Ô ?˜Ü0š•¶Åá×½äæÇµF5¬eË,Ý ¿«‘ì˜öì˜ð‰âÜ0š•¶Åáל+¦F¢Œ $»¹?˜Ü0š•¶Åá×åük”dkÙù?˜úûèÜ0š•¶Åá×çôÕË'”.¶ÑLœ)䨑옢˾Ü0š•¶ÅáדFßö `EËe�,Â% †¬‘ì˜öì˜ð‰âÜ0š•¶Åá×KXómSÊù(Ì??˜úûèÜ0š•¶Åá×èIÞ^0PåeÏ(çù¶)ó¬‘ì˜öì˜ð‰âÜ0š•¶Åá×,Ý\+Åà÷5 ”´è?˜Ü0š•¶Åá×{$ð$_lj)oª$Òð :£‘ì˜öì˜ú Ì Ü0š•¶Åá×ÔˆŒcÕñfÂ?˜úûèÜ0š•¶Åá×9ÂvjGÉî— Óâ?˜Äí˜Ôí˜Ü0š•¶Åá×O‚Ì+zEÚÉü ç %¬´œÜ0š•¶Åá×53i$ml¬ åÙ?˜Ü0š•¶Åá×ٴ쮿ydxÉ„ºÓy¬´œÜ0š•¶Åá×ÂVrjÈñV»q;,ñà u¬‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Iýp�ôâ'ÊÉü•6 ߬´œÜ0š•¶Åá×ËHÎiÉ,¼eŽ,¬¿×®‘ì˜öì˜ð‰âÜ0š•¶Åá×°T¨}Á#Û ±à?˜úûèÜ0š•¶Åá×â;âBx‚ ºù?˜úûèÜ0š•¶Åáטº<8†œ˜Ý ,»‰?˜Ü0š•¶Åá×3ÊÊŒ¡æá¶œLÎ,¬‘옢˾Ü0š•¶Åá×B.ªÉ¼Q$®´œÜ0š•¶Åá×`Ð¥ Ý  ¸ë?˜úûèÜ0š•¶ÅáצèÎlŠËq¼,a'.®‘ì˜ñð˜¢g¡gÜ0š•¶Åá×êg9Y†Rv´µYÄ�p€æÒÜ0š•¶ÅáדׇÐ'Ù/”eä,÷ް‘ì˜öì˜ð‰âÜ0š•¶Åá×8ö\RüÅzÀ–4í*(¨ù ”þ˜Ü0š•¶Åá×óPv9^µ"R~׳Ë)]±‘옣옢ŒÏ¾Ü0š•¶Åá×$$9ÔÝ…6uÒ?˜úûèÜ0š•¶Åá×ð•Õo˜päù?˜úûèÜ0š•¶Åá׸ÄdÒÕ Éü”¨,Ò¯´œÜ0š•¶Åá×aJ—:P% ´–?˜úûèÜ0š•¶Åá×­Bˆ `Tå2 Çý?˜úûèÜ0š•¶Åá×.[_µîÚoÄ$ïƒ ¨‘ì˜öì˜ú Ì Ü0š•¶Åá×»8Åpß D��?˜Ü0š•¶Åá×Ê¥TTYþŒ™ ùVݲ!]U¢Äí˜Ô혠œÜ0š•¶Åá×’¶úäšñõeÿ,ú?Ʋ‘ì˜öì˜ð‰âÜ0š•¶Åá×ÅÚ�yÌÞrá<³Ù ­‘ì˜øôÜ0š•¶Åá× ßƒÂV`]möÜN¤¶�¡—‹Ü0š•¶Åá×¹y”òFäíqþŒ™Qùºݲ!]2£Äí˜Ô혠œÜ0š•¶Åá× �#e¸Án –Ñ?˜úûèÜ0š•¶Åá×:ÇŠ¾‚Ne—,—ƒÔ³‘ì˜öì˜ð‰âÜ0š•¶Åá×ýù/6³k�iÛ?˜úûèÜ0š•¶Åá×s±BKb'ÛüÇõD p³Àî˜�‹Ü0š•¶Åá×ÑѺ'Š÷®qŽ,Ú;x²‘ì˜ñð˜¢g¡gÜ0š•¶Åá×<†I¥]+y êÚ ?˜úûèÜ0š•¶Åá׬ùà›yª1 Ãë?˜úûèÜ0š•¶Åá× fÃ;ç‹ïÚ¬œÏ"஑ì˜Àªù˜±œÜ0š•¶Åá×0U4àŸÔÍ‘“×™¨áÛåc]r�À‹Ü0š•¶Åá×�;b„¦½XöÜNtÈé^£—‹Ü0š•¶Åá׈ï½q™hj $ù¸?˜Ü0š•¶Åá×á`Ÿ8�R§keÑ,…)Úµ‘ì˜öì˜ð‰âÜ0š•¶Åá×)Bl|loþ$†Ÿ û«‘ì˜öì˜ú Ì Ü0š•¶Åá×äWÑwè'~Íç’±)°¶‘옣옢ŒÏ¾Ü0š•¶Åá×\4OLݵHɼîÅ´´œÜ0š•¶Åá×TF²˜âÙßÁ?˜úûèÜ0š•¶ÅáוèXB€q©,¡Ú ñ´‘ì˜ñð˜¢g¡gÜ0š•¶Åá׳J“.#×V ¤5?˜úûèÜ0š•¶Åá×ÖŽêØÞˈxe,¶†S·‘ì˜öì˜ð‰âÜ0š•¶Åá×}ƒÔ�«4l ‰�?˜úûèÜ0š•¶Åá×yªÖbW!ãqç,û/õ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×(¼O™ZžÿF±Í™ Þ‹‘ì˜ò¾Ü0š•¶Åá×{ž¿¤­¦Ã?˜?˜Ü Ü0š•¶Åá׫XÁò™W¢„‘Œ$ðšs™‘ì˜�i€iÜ0š•¶Åá×-a¾Ø\oöúù?˜úûèÜ0š•¶Åá×r#" ŽªFWr]?˜úûèÜ0š•¶Åá×Ý� ÊÂvçôqú,üÞì¶‘ì˜ñð˜¢g¡gÜ0š•¶Åá׊u¦;H.Úü¡ý õ²‘ì˜Àªù˜±œÜ0š•¶Åá×sôd—!œï… $»ù?˜Ü0š•¶Åá×j ©mGü8ɼìÞ¾·´œÜ0š•¶Åá×”å¼‰Ô ð  ´©?˜úûèÜ0š•¶Åá×F8G. +»íeœ,¶å¹‘ì˜öì˜ð‰âÜ0š•¶Åá׆^] m³�2Ìm?˜úûèÜ0š•¶Åá×”ç]Ô5[Aeq™,¬T¸‘ì˜ñð˜¢g¡gÜ0š•¶Åá×Â�Q¨‚=f|œ?˜úûèÜ0š•¶Åáד0‡s•eÚ,�¡ ·º‘ì˜öì˜ð‰âÜ0š•¶Åá×cdmìRæ×Ý ˜›?˜úûèÜ0š•¶Åáׯ‘¼gmÉ*qÖ,ƒq)'¹‘ì˜ñð˜¢g¡gÜ0š•¶Åá×µõ’h¯& ½?˜Äí˜Ôí˜Ü0š•¶Åá×�äš’MWÒ×?˜úûèÜ0š•¶ÅáךùLÅŽ¬å� »“?˜úûèÜ0š•¶Åá×�kˆîÁ¨ äqÃ,½‚ ð¹‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ÒÖ‡Ò[Ô_x ‘ý?˜úûèÜ0š•¶Åá×^+£q4^ " D‹€?˜Ü0š•¶Åá×mç6|�¥)á”õ˜ñN©©]3¸Äí˜Ô혞œÜ0š•¶Åá×CŸžW[lÉ„˜ÿ íº´œÜ0š•¶Åá×!ì3ÕXLÄÊ‘þ$ð,ž‘ì˜�i€iÜ0š•¶Åá×y³ñ·_‡Ë�£ö˜ü»˜$O¸‡˜‹Ü0š•¶Åá×f¨`ÐBF÷”õ˜Mñ±÷$]¹Äí˜Ô혞œÜ0š•¶Åá׈Š-} ¾ci"Ø?˜úûèÜ0š•¶Åá×± JD†bq–,¢ã¿»‘ì˜ñð˜¢g¡gÜ0š•¶Åá×#¢s¸™dcóɼ³Ë )¼´œÜ0š•¶Åá×N†‚þúmB «Ï?˜úûèÜ0š•¶Åá×× O->{)´É„Ɇ¼´œÜ0š•¶Åá×â Ât¡Ú\ ÔˆÊ ?˜Ü0š•¶Åá×™¦*çS£æ.ey,êÈ£¾‘ì˜öì˜ð‰âÜ0š•¶Åá×¼ý4"¤×?˜úûèÜ0š•¶Åá×¹dïÇh* ‚ ?˜úûèÜ0š•¶Åá××%›Ï¾qÙW üÙ ?˜úûèÜ0š•¶Åá×Â`{Í\0RŽ…™ìøÕÕ”5&³Àî˜Ï¢[ˆZÜ0š•¶Åá׳¥Å�Þ›[ D¥¸?˜Ü0š•¶Åá×sЉ¶ÆÏºá rÛ ?˜Äí˜Ôí˜Ü0š•¶Åá×Ħ.QìˆrÒ œñ?˜úûèÜ0š•¶Åá×’ÕÿZƒõÉÙ¸çȾ)k¾´œÜ0š•¶Åá×Ý7ryA׿©•À?˜úûèÜ0š•¶Åá×_¸àn¨q¨,ƒÁ —¾‘ì˜ñð˜¢g¡gÜ0š•¶Åá×÷Ÿ*Q˜Î ö?˜Äí˜Ôí˜Ü0š•¶Åá×¥ñ³E&  Þ›?˜úûèÜ0š•¶Åáל:QYŒ?Ä»q,ß/¿‘ì˜ñð˜¢g¡gÜ0š•¶Åá×=ù0ŒTÚa  ׯ?˜úûèÜ0š•¶Åá×6Ø×!N£qã,Ê"*—¿‘ì˜ñð˜¢g¡gÜ0š•¶Åá× ‘­Ô¶Á Ù ?˜Äí˜Ôí˜Ü0š•¶Åá×àægw@'QKoÍ$ø à·‘ì˜öì˜ú Ì Ü0š•¶ÅáשÚç!ºÒ³� ”²×?˜Ü0š•¶Åá×ùà9jénŽo5$ô� >¸‘ì˜öì˜ú Ì Ü0š•¶Åá×&Y‰Yz¿ß•í?˜úûèÜ0š•¶Åá×"-‰Ò3îf1Éü߃, øÀ´œÜ0š•¶Åáצ)OaìOà—eŒ,Øšð‘ì˜öì˜ð‰âÜ0š•¶Åá×cóÝZö�9rï<óÅG½‘ì˜øôÜ0š•¶Åá×ýp‰Þ!wʶüÆÜß?˜Ü0š•¶Åá×–Æ>f7ZÑ ¤§Ø?˜Ü0š•¶Åá×ÑÄ?+ õ¸ ï˜Ñù²Ž"`UÂÄí˜Ô혟œÜ0š•¶Åá×<ê:ü¶‘LÜ�À‘옢˾Ü0š•¶Åá×$”Y8}ò+  Ï‘?˜Äí˜Ôí˜Ü0š•¶Åá×cŽ,°pÄ%DeØ,µŸ UÄ‘ì˜öì˜ð‰âÜ0š•¶Åá×ë#_¹4·¡ƒ°Äü©ÒF)¢¶‘ÍÜ0š•¶Åá×ïý9≿¼ áš?˜úûèÜ0š•¶Åá×óÒ'†ˆ,ð~Ô˜l)Oő옣옢ŒÏ¾Ü0š•¶Åá×.119ÃÉüÏš2fôœÜ0š•¶Åá׿õF|-O×Wë?˜úûèÜ0š•¶Åá×ÀÈ*^ÌŽ˜éeâ(û„±)�Å‘ì˜öì˜ð‰âÜ0š•¶Åá×¢•È_UbÀ T“�?˜Ü0š•¶ÅáטXYfT6§¯q¿,àÐ öÑì˜ñð˜¢g¡gÜ0š•¶Åá×N'hàåüCF ;é?˜Äí˜Ôí˜Ü0š•¶Åá׌F«¡n‰µþŒ™ùFݲ!]'¶Äí˜Ô혠œÜ0š•¶Åá× Ö>Ÿ0OÆ™Éü‘Ú& ÐÄ´œÜ0š•¶Åá×�R<ä òMqÞ,œ¹ ÍÄ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×äÈ“¹éý£ö˜|¬“6‡˜‹Ü0š•¶Åá×I³ªŸ¯3þ8 ¨² ?˜Ü0š•¶Åá×ú“Â(¬¨NeI,ÎÔZÇ‘ì˜öì˜ð‰âÜ0š•¶Åá×iM SüãG Ä·?˜úûèÜ0š•¶Åá×F‡!ÖšS É„½Ÿ üÅ´œÜ0š•¶Åáר¿£ßYßö”Lµ¨‰Ä‘옢˾Ü0š•¶Åá×z©¨ß‡;Ë ä·Y?˜Ü0š•¶Åá×ÿ;0]Ÿ ‚ ðâ?˜úûèÜ0š•¶Åá×Îv?B¡×!Úüå¤'V‘ì˜Àªù˜±œÜ0š•¶Åá×4mÚ‘w¨Ÿƒex,¡­ÂÈ‘ì˜öì˜ð‰âÜ0š•¶Åá×EsÜ7á¼B Øë?˜úûèÜ0š•¶Åá×N_û _M?˜Äí˜Ôí˜Ü0š•¶Åá׿B ×cY è² ?˜úûèÜ0š•¶Åá×)›v¤ ºe`,�°—Ì‘ì˜öì˜ð‰âÜ0š•¶Åá׬·l¹Gì?2„ ?˜úûèÜ0š•¶Åáׯ+þ÷%MJqŸ,ë -Ë‘ì˜ñð˜¢g¡gÜ0š•¶Åá×H¨Ù,\ë–4œî™Äù ”þ˜Ü0š•¶Åá×ÉOëQVBO Ú3?˜Äí˜Ôí˜Ü0š•¶Åá×�l<š*(«É„¸§ÖË´œÜ0š•¶Åá××ý­Ôû·Á Ž…™—ø«Ïì™"‡ÁÀî˜Ï¢[ˆZÜ0š•¶Åá×ËÆb•£Ô¸c ¨é?˜úûèÜ0š•¶Åá×P‡òt(+Åq³,ž %@Ì‘ì˜ñð˜¢g¡gÜ0š•¶Åá×_Kùžô>4{üûÛ ‹?˜Ü0š•¶Åá×û$$s¨4¡eÖ,Ž” œÎ‘ì˜öì˜ð‰âÜ0š•¶Åá×ÿ˜…±^)5ɼóp) Í´œÜ0š•¶Åá×7Fi¸aÿ'i·ÓTÁ2)°’‘ì˜÷¾Ü0š•¶Åá×xµ}Ùï�x€Éü±s oÍ´œÜ0š•¶Åá×—ÇñœH²J É™?˜úûèÜ0š•¶ÅáׂÒ§ç%BQqˆ,‘G ›Í‘ì˜ñð˜¢g¡gÜ0š•¶Åá×vî3üõÄ0 ÜȘ?˜Ü0š•¶Åá×ÇK:IãÎ ‡?˜úûèÜ0š•¶Åá×Þ{S_§; Þ’?˜úûèÜ0š•¶Åá׳­ØK¿×$LÉÚ¸ûð¶)�δœÜ0š•¶Åá×g±–óü'€äDo ?˜Ü0š•¶Åá×1Û¡Õ±&™ ÇŸ?˜úûèÜ0š•¶Åá×B¹bÍþU¤þŒ™ù>ݲ!]¦ÀÄí˜Ô혠œÜ0š•¶Åá×-ÛC¸Epu ï˜• ùÅŽ"`¿ÏÄí˜Ô혟œÜ0š•¶Åáס ôbáLÌ®eë,Ü8VÑ‘ì˜öì˜ð‰âÜ0š•¶Åáד§ÞÒ�R¬ ç° ?˜úûèÜ0š•¶Åá×[È¥9 že”,�¨ÂÑ‘ì˜öì˜ð‰âÜ0š•¶Åá×òã Ÿ1Ô8_^?˜úûèÜ0š•¶Åá× \žë+Âî †Ö ?˜úûèÜ0š•¶Åá׈+i)FCq¡,ʳbБì˜ñð˜¢g¡gÜ0š•¶Åá×>˜�þ¹ŽÌ}¶½L…*ϑ옢˾Ü0š•¶Åá×5í.æÄn·ã�?˜úûèÜ0š•¶Åá×øÓ’zc7xN $®¾?˜Ü0š•¶Åá×t�…Ì��ޙɼ¬Ÿ XÑ´œÜ0š•¶Åá×y·–wñí ·ØT‘Ñ)ü–‘ì˜÷¾Ü0š•¶Åá×al?ßB³4ûÉ¼Û -ºÑ´œÜ0š•¶Åá×:m»oÏ|¬7?˜úûèÜ0š•¶Åá×»‡æ[ðÆÀ Ì�Õ?˜Ü0š•¶Åá×oŽ/§!0‚|Nì?˜úûèÜ0š•¶Åá×uÛãþ#lL‰±:?˜úûèÜ0š•¶Åá×Hu¸rÊ_ìe),ÿ� dÔ‘ì˜öì˜ð‰âÜ0š•¶Åá×ð*aXˆÙ1´ lg?˜Äí˜Ôí˜Ü0š•¶Åá×ÍrÁ2ĉ’ ¶‰Lšðfё옢˾Ü0š•¶Åá×s¾ˆk·K«ÒÅ?˜úûèÜ0š•¶Åá×€2 ûÕiàwqæ,­þ =Ó‘ì˜ñð˜¢g¡gÜ0š•¶Åá×f ô©:T¹¶Û\?˜úûèÜ0š•¶Åá×^SßÅGœÓe\,®ƒŸÕ‘ì˜öì˜ð‰âÜ0š•¶Åá×í½]€tÁj_ Ô° ?˜úûèÜ0š•¶Åá׆n‡/Çî÷ë·œ?˜úûèÜ0š•¶Åá×¶x„WºFɼ¿„pÔ´œÜ0š•¶Åá×5¿Kþ–ÍY’  1?˜Äí˜Ôí˜Ü0š•¶Åá×]BÈ‚\Ǹ ï˜Éù¢Ž"`@ÕÄí˜Ô혟œÜ0š•¶Åá×û½HYÌgÎx£ö˜üíá7Ò‡˜‹Ü0š•¶Åá×ü@ey)”õ˜‡ñ«©©]ÈÒÄí˜Ô혞œÜ0š•¶Åá×(XQº"Ù=üŽã ƒ?˜Ü0š•¶ÅáלžDBßaáœ?˜úûèÜ0š•¶Åá×õµ&Ô:l.”ɼí¦ÙÕ´œÜ0š•¶Åá×VM.iVÉ„Ù&Ö´œÜ0š•¶Åá×d÷ƒz‘e±,Z%üבì˜öì˜ð‰âÜ0š•¶Åá×4[9kÙüß;qÎ,¿Ú =Ö‘ì˜ñð˜¢g¡gÜ0š•¶Åá× nbª‰Ó­ ””Ù ?˜Ü0š•¶Åá×>83ÇxH ²™?˜úûèÜ0š•¶Åá×ДÄ+¶}?Éüä,ýÖ´œÜ0š•¶Åá××ã¶«›~frÓ<£2)Ó‘ì˜øôÜ0š•¶Åáמ˜zû.Ì~ár‡<õE BÓ‘ì˜øôÜ0š•¶Åá×ÕãõNÁ— Î�?˜úûèÜ0š•¶Åá×£Š@¤Óö¡I |‚?˜Ü0š•¶Åá×qU¦¨\"üË�Ø?˜Ü0š•¶Åá×Î(?†Š#ÊÌ ã¹?˜úûèÜ0š•¶Åá×=¢‡ Ë›µÚøû̓~)Ñ…¤œÜ0š•¶Åáת°6KŽ®“e®,¼@ 9Ú‘ì˜öì˜ð‰âÜ0š•¶Åá×ìëë®Zní?˜úûèÜ0š•¶Åá׃hN¢P¥ùø˜É4‡T]{Ô‘ì˜Àªù˜±œÜ0š•¶Åá×`ábAØúq‘,ýõíØ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×…<ÉËgÖ'ü¤ì% ?˜Ü0š•¶Åá×ô“Sæ‘‹8eƒ,�!GÛ‘ì˜öì˜ð‰âÜ0š•¶Åá×Ûp7‘ãé'³ ÎW?˜Äí˜Ôí˜Ü0š•¶Åá×`ëlB?K5q”õ˜pñü©©]n×Äí˜Ô혞œÜ0š•¶Åá×Óx+#ž>æ ·Õ ?˜úûèÜ0š•¶Åáײ¢Ë¬bÁöÜN¤ŠoùÉ—‹Ü0š•¶Åá×&8ؤX\e½,íOÜ‘ì˜öì˜ð‰âÜ0š•¶Åá×ö``õ×ÎÖ! þ—?˜Äí˜Ôí˜Ü0š•¶Åáת>œNfB_‚ɼQ&ðÚ´œÜ0š•¶Åá×[yæíoCºReÂ,·�(èÜ‘ì˜öì˜ð‰âÜ0š•¶Åá×T¤¢%¨r9µYìúM¶ëÒÜ0š•¶Åá×ßÅ {¿8Ž ox?˜Äí˜Ôí˜Ü0š•¶Åá×\¤¿a11� $ó½?˜Ü0š•¶Åá×ŰTö{¡äÿüæÐG?˜Ü0š•¶Åá×¶Ö‰…SµårØ<óÐ)ê×‘ì˜øôÜ0š•¶Åá×a%)˜k­q Íå?˜úûèÜ0š•¶Åá×}lg’F) ÛÖ?˜Äí˜Ôí˜Ü0š•¶Åá×+Ë^�ËüÜ ”‰Ô?˜Ü0š•¶Åá×B¿OcQÙD ɼ¾@ ¿Ü´œÜ0š•¶Åá×\«w©äheÜ,Ÿ<¶Þ‘ì˜öì˜ð‰âÜ0š•¶Åá×Ü#”…_D³\>9?˜úûèÜ0š•¶Åá×Å:Â:++øî¼?˜úûèÜ0š•¶Åá×LmmˆT'âe‰,ƒðPß‘ì˜öì˜ð‰âÜ0š•¶Åá×%gß.þ (¶âL°Û !ܑ옢˾Ü0š•¶Åá×P¡CHn½ Œ¯\?˜úûèÜ0š•¶Åá×­¿2Zjá í¯ ?˜úûèÜ0š•¶Åá×`U‰[!c»þŒ™XùÈݲ!]ðÏÄí˜Ô혠œÜ0š•¶Åá×üH8yñ"Ÿa”?˜úûèÜ0š•¶Åá×5§žÔ;Ÿë¶˜L³—&ݑ옢˾Ü0š•¶Åá×=I¸ o؉¶�L¦=]ݑ옢˾Ü0š•¶Åá×¥ù«ŠLmqš£ö˜üÅÞ$6܇˜‹Ü0š•¶Åá× r0ëûPqƒ ”áà ?˜Ü0š•¶Åáן›Ó<Ù¡7b”õ˜ƒñ£©©]ÝÄí˜Ô혞œÜ0š•¶ÅáלQ"‡¥®ÏÉü­,Ðß´œÜ0š•¶Åáס“)êwš®öÜN|½í Ï—‹Ü0š•¶Åá׋´ÔTëTeÌ,‚¡ ÷á‘ì˜öì˜ð‰âÜ0š•¶Åá×ëåàÉ—Z ƒº?˜úûèÜ0š•¶Åá×û‡9±° ì�?˜úûèÜ0š•¶Åá×Ä̵\Å(×ye†,Ç@ ’â‘ì˜öì˜ð‰âÜ0š•¶Åá×õ˜¡!à  ¤¡?˜úûèÜ0š•¶Åá×Xá_J {¶ªLâð “ߑ옢˾Ü0š•¶Åá×NU+ÑÒ¼þ ü–{¡?˜Ü0š•¶Åá×t…›$‹£ ˜à?˜Äí˜Ôí˜Ü0š•¶Åá×NT”/\–Þ Ý"?˜Ü0š•¶Åá×~Œ~L…Ñ™ì”õ˜Òñ¡÷$]mßÄí˜Ô혞œÜ0š•¶ÅáסÚÃüGµÉ¶ŽL¾¿†à‘옢˾Ü0š•¶Åá×�ßó.sÊ7³ ™á?˜úûèÜ0š•¶Åá×ZЃ~#ݼ¬É„²Ò �â´œÜ0š•¶Åá×*÷Óêòý6 éÔ ?˜úûèÜ0š•¶Åá×¼&—|ã>‚el,Ñ,µä‘ì˜öì˜ð‰âÜ0š•¶Åá×Û�oÅí·íü²‰‡?˜Ü0š•¶Åáמ«~9à˜É¼í†Oã´œÜ0š•¶Åá×¹ÀHÝÚ´¥Sr�<á[aß‘ì˜øôÜ0š•¶Åá×¹¤(c TÑrÉ„È,¯ã´œÜ0š•¶Åá×ör¡Í×÷ ͬ?˜úûèÜ0š•¶Åá×YA>Ò×ÛQo¥$¸@»Û‘ì˜öì˜ú Ì Ü0š•¶Åá×ß±ªçFS(ÿüùW*?˜Ü0š•¶Åá×päwìµ�ýÉ¼Ž %jä´œÜ0š•¶Åá×—S§'e]Ê «ì?˜úûèÜ0š•¶Åá×u°¹ÙM\êµYì‡! ¶æÒÜ0š•¶Åá׸ôß.Ý�Œ*É„�ôä´œÜ0š•¶Åá×:]UÀ„3 $¹½?˜Ü0š•¶Åá×?VCš^žç·×TÈË)¾ª‘ì˜÷¾Ü0š•¶Åá×l²ÀiF‡  µâ?˜úûèÜ0š•¶Åá×;Gï’j¤i6~š°ç Öç‘옣옢ŒÏ¾Ü0š•¶Åá׋_ÿlœÄL!jú?˜úûèÜ0š•¶Åá×FjOÐÓWÌÉüŽƒ&æ´œÜ0š•¶Åá×Dð¥0¦« €—?˜úûèÜ0š•¶Åá×pùâ•Ê—Üeæ(ûѾ)Fè‘ì˜öì˜ð‰âÜ0š•¶Åá×1²OSa¯ŸË7?˜úûèÜ0š•¶Åá×�OsÞü})¶ÄL€„ Få‘옢˾Ü0š•¶Åá×Àbÿ7ì\> fµ?˜Äí˜Ôí˜Ü0š•¶Åá×€Üg=J^‚õe‚,öRé‘ì˜öì˜ð‰âÜ0š•¶Åá×·/áþ…:aÇeâ,–Û Ué‘ì˜öì˜ð‰âÜ0š•¶Åá׃e´KÒ«­ �¯ ?˜úûèÜ0š•¶ÅáוÀ+õdá•£ö˜üßž7÷䇘‹Ü0š•¶Åá×£QMÿ¼ôËþŒ™TùÀݲ!]ÃÙÄí˜Ô혠œÜ0š•¶Åá׸ÿ;~G®É„¤þ kè´œÜ0š•¶Åá×N÷D~"œ€Z¶—L©ƒøæ‘옢˾Ü0š•¶Åá×{¶T;o-+‘?˜úûèÜ0š•¶Åáש ”qî{€ e�,Ž=Éê‘ì˜öì˜ð‰âÜ0š•¶Åá×Pþxg‘¥l£ö˜ÜÕÚ:懘‹Ü0š•¶Åá×@õZƒ þ ”¼Ü ?˜Ü0š•¶Åá×%!Ù[ß j””õ˜ñ›©©]çÄí˜Ô혞œÜ0š•¶Åá×OZa­» »8ɄӃ"Óé´œÜ0š•¶Åáײ®oeéÎP ̆?˜úûèÜ0š•¶Åá×å”ÕSUDÝ9e«,Z#ùë‘ì˜öì˜ð‰âÜ0š•¶Åá×–d«ê"¶=öÜN|©ë Ú—‹Ü0š•¶Åá×ÀŽN¿' ö Á¹?˜úûèÜ0š•¶Åá×9[)W^õÌu‘Ñ$–)²Í‘ì˜�i€iÜ0š•¶Åá×FS(“ƒa÷Oq€,‚ Ìê‘ì˜ñð˜¢g¡gÜ0š•¶Åá×ß/æ#†Æ‘ ÿù?˜úûèÜ0š•¶Åá×èh’=ÕñYøeª,Ëð 0í‘ì˜öì˜ð‰âÜ0š•¶Åá×E½¨Ì¾R Ê�?˜úûèÜ0š•¶Åá×°ÚQv—Kâ ê?˜Ü0š•¶Åá×Pmõ:NÐÜɼ­†÷ë´œÜ0š•¶Åá×˹`ð©�e;,êà îí‘ì˜öì˜ð‰âÜ0š•¶Åá× ›|nÎDÁ@ ¬˜?˜Ü0š•¶Åá×Þðˆ¯•€Ü ï˜» ùÿŽ"`÷ìÄí˜Ô혟œÜ0š•¶Åá×srTF6pŸŸª]?˜úûèÜ0š•¶Åá×=Ò>… a#÷ ¹Ó ?˜úûèÜ0š•¶Åá×zÛ7ú,Éaéü²ùÓ?˜Ü0š•¶Åá×?©*‘Ì~> ”ëª?˜Ü0š•¶Åá×7¡[óõ³�~œÊšï‘옣옢ŒÏ¾Ü0š•¶Åá×Öˆ¥â.X…Øùø˜£ÉчT]Sé‘ì˜Àªù˜±œÜ0š•¶Åá×·ztË߉šœ?˜úûèÜ0š•¶Åá×9¦ Fè´6É„›=$î´œÜ0š•¶Åá×f'Zr˜²e¼,Z'ð‘ì˜öì˜ð‰âÜ0š•¶Åá×e¦ÞPPqã,âZî‘ì˜ñð˜¢g¡gÜ0š•¶Åá×L1lE¯•¾ $þ¼?˜Ü0š•¶Åá× “ç(HÛ^Éü¡f,êî´œÜ0š•¶Åá×\Œmu·ð?àÉìù  ï´œÜ0š•¶Åá×pþ×Ï÷…šr×<ªË)+ë‘ì˜øôÜ0š•¶Åá×t8µ;ª³Û*ɼ§üzï´œÜ0š•¶Åá×qð”³ïL± ù@?˜úûèÜ0š•¶Åá×!ù-›ÊœL¬ë?˜úûèÜ0š•¶Åá×h‚fo‹=›É´öž ð´œÜ0š•¶Åá׿/­ÀÞЦmqä(û€·)ð‘ì˜ñð˜¢g¡gÜ0š•¶Åá×HuÄ»E•reÄ,èƒ 9ò‘ì˜öì˜ð‰âÜ0š•¶Åá׈Ëî�À,3N6?˜úûèÜ0š•¶Åáד `¡þŒ™ùTݲ!]pâÄí˜Ô혠œÜ0š•¶Åá׿²ãÀa;m,É„ÞK ñ´œÜ0š•¶Åá×Á~WC5ä±þ�-öÆ‘ì˜ò¾Ü0š•¶Åáׂ>°—òÔ$÷qá,¬Ù Hñ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×,‰É:÷›ÄöÜN|úœTá—‹Ü0š•¶Åá×Ï“@£¡Í2 �® ?˜úûèÜ0š•¶Åá××QËT¤ê—>–i¸?˜Ü0š•¶Åá×a|™¢ïæjÉü�Û. :ò´œÜ0š•¶Åá×2Z‡ïn º…?˜úûèÜ0š•¶Åá×ûCϯ 5`doŽ$Ô;Eê‘ì˜öì˜ú Ì Ü0š•¶Åáׄ|T•>þ ´¶™ü¥[t»ÏÀ‹Ü0š•¶Åá×|äkšÈ˜M¸×>?˜úûèÜ0š•¶Åá×ešo_w ‘þa?˜úûèÜ0š•¶Åá×ð~YgilçóÂ)?˜úûèÜ0š•¶ÅáסÕ`€¬ß{•ü…J; ?˜Ü0š•¶Åá×ÝÙ„Í•ñá ýÜ?˜Ü0š•¶Åá×÷BŽá)Ò–öÜNtšéƒã—‹Ü0š•¶Åá×~­©YÖÄ ÿ¸?˜úûèÜ0š•¶Åá׿8¾í'Þ1f å ?˜Äí˜Ôí˜Ü0š•¶Åá×;>ñB¸Fpeþ,ÿž ;ö‘ì˜öì˜ð‰âÜ0š•¶Åá×3Zºb§ ÙÙÛü„”¨õÀî˜�‹Ü0š•¶Åá×–;.ݽŸ˜ öø?˜úûèÜ0š•¶Åá×Õž£¾Rs‡É¼Òõ´œÜ0š•¶Åá×Ûr,°Û‘qÍ(狱)õ‘ì˜ñð˜¢g¡gÜ0š•¶Åá×KO‚CÏ Fe©,šÚ D÷‘ì˜öì˜ð‰âÜ0š•¶Åá×V0ëO¦j,¥ ,Šm?˜Ü0š•¶Åá×b«ÁòÊF5nËì?˜úûèÜ0š•¶Åá× °:òÏHŠ·ÍT� »‘ì˜÷¾Ü0š•¶Åá×,â碋QSÄ9·©²ôôËÃü¢°ˆYÇ¢ù³Ò—2½ùÉÿ¨³”E½»øÏ‚çÙOÂõֆ” ?ºýš™Lž®ŒUÅØîòÊÉ— �Åý£¤±é¨ _˖쨿úÿ›A»Ë€ª´›NG¾š¬ö§ÌQÀ×ûÚ¥îû™KÀ¶öÁû�WƮϠ¯É•Çþù˜€ ¼ ¸Õ¤¦²“C¼Í�;¸MÁ¬µén=¹£ÊI¿œ­Æ– Úü‘ø :Ãó‘ì˜Àªù˜±œÜ0š•¶Åá׬Ë�lˆ¿W, debug_assertÁüÓ­'ÍœS]ƒ‘‹Ü0š•¶Åá×EÁe`· ÚüÆ}kEô‘ì˜Àªù˜±œÜ0š•¶Åá×fè„Ýs±Úü‚}>†ô‘ì˜Àªù˜±œÜ0š•¶Åá×x¢¾æ�6Uö ëüÕ”5•Ú]ƒŒ‹Ü0š•¶Åá×jhbl¤èydebug_assert_neÁü�¯'å÷b]“‹Ü0š•¶Åá×(9Åß÷¸gâö üîW'tƒŒ‹Ü0š•¶Åá×ïÄ]Ë(ÃÛ²ÚüÔ¢5oõ‘ì˜Àªù˜±œÜ0š•¶Åá×B¥>«9ȇãœü¬¥'¦“‹Ü0š•¶Åá×l`qÀ�9´ö ü‡¥˜"ƒŒ‹Ü0š•¶Åá×2?Y, õ®Úü…™0ö‘ì˜Àªù˜±œÜ0š•¶Åá×1yXšÔÞŽáœüç4&Gƒ‘‹Ü0š•¶Åá×Ïo¸G͹÷ÿš¥ùÑ©wGaèr¹ÿ™´¨Ü0š•¶Åá׳tæ,YKX;ö ü½‰”"ýƒŒ‹Ü0š•¶Åá×þãÅÉÏS©1Žáœüè &郑‹Ü0š•¶Åá×äB–®_§hpö üÏì™"eƒŒ‹Ü0š•¶Åá×Ù–ÿ¯Z£1Úü°“çb÷‘ì˜Àªù˜±œÜ0š•¶Åá×lh5ÛNJµŒŽáœü΃&•ƒ‘‹Ü0š•¶Åá×î€T£sêeÚü§\‰Ù÷‘ì˜Àªù˜±œÜ0š•¶Åá×Q˜IÛàÔö›ö üŠz”"RƒŒ‹Ü0š•¶ÅáןÝ_±ÈX«XÓtÞRÅšÂ]ƒ™‹Ü0š•¶Åá×Ü-Åb–¹"ö üùZ™"¹ƒŒ‹Ü0š•¶Åá×"`ACÏ™ZŽáœü½°'¦ƒ‘‹Ü0š•¶Åá×VCPvàŸø¥ÖüߌÜÍàva¹ÿ™µ¨Ü0š•¶Åá×MÕ† ÞÇýÕc.'ð/&1,&»&&@!&‡*&%&/5&æ*& &Ñ/'³4&)&»#&Å3&.&a(&#& 3&'-&‘'&)"&22&F,&Ð&&T!&O1&g+&&&Š &j0&–*&%&C5&…/&¶)&)$&A4&•.&È(&[#&\3&š-&ø'&ˆ"&‘2&¨,&Ø3&j(&Þ&&^!&©.'W5&˜/&Å)&`4&­.&Ü(&s#&P'&Ü!&à1&æ+&&&!&#&$3&J-&©'&="&K2&÷&&r!&v1&�+&$&&¸ &/'D%&z5&¼/&y/'x4&Æ.&€3&Ñ-&/(&Î"&Ä2&ä,&d'&û!&ù1&ÿ+&“&&"!&1&+&¶%&J &"0&B*&Ç$&ú4&C/&g)&í#& 4&N.&’(&C/'Y-&¼'&G"&ˆ5&,&)0'/+&Ô%&S &20&[*&å$&5&]/&z)&ü#&…,&'&•!&š1&¯+&W&&›4&î.&)&�#&¬3&ø-&W(&ü"&í2&-&x'&"&2&',&±&&6!&01&M+&è%&l &P0&}*&q/&†-&é'&y"&‚2&™,&2'& &ù/& *&•$&©4&/&)&±#&»3& .&2/'3&ù/',2&Ë&&J!&E1&½!&½1&Ò+&k&&!&ã0&ï*&˜%& &¤$&½4&/&&)&Å#&Î3&!.&=$&V4&¨.&Ò(&n#&k3& (&¡"&¥2&: &0&.*&¸$&Ö4&*/&D)&Ù#&ð3&5.&&&­ &—0&´*&ö!&Â$&b)&è#&Z2&j,& '&–+&8&&Ë &±0&Í*&‡4&ß.&ú(&�#&“3&ß-&>(&â"&Ó2&÷,&&!&Ê%&�1&ª+&M&&Þ%&a &F0&n*&ù$& 5&g/&Ž)& $&(4&w.&´(&A#&x2&�,&('&©!&3&-&‡'&$"&'2&;,&ò%&{ &`0&Œ*& %&95&v/&¢)&$&Þ0&ê*&“%& &0&*&Ÿ$&¸4& /&!)&À#&É3&K,&Ù&&Y!&S1&(&¦"& 2&·,&F'&×!&÷0&þ*&¢%&5 &0&*&³$&Ì4& /&5)&Ô#&á3&+.&t(&#&3&6-&š'&ž &ˆ0&ª*&0%&f5&¢/&Î)&Q$&i4&·.& (&É"&¯2&Ð,&Z'&æ!&½$&ê4&4/&S)&ã#& /'N%&Á/'`$&Ð.&ð(&‚#&„3&Õ-&4(&×"&É2&è,&i'&,&˜&&0' +&»%&¿.'F*&Ñ$&5&k)&¤.'X.&–(&(#&ü.'Æ'&V"&d2&t/'†!&†1&¥+&B&&Õ &À0&×*&h%&’5&Ü/&ö)&z$&¢3&î-&M(&ñ"&s'& "&p5'$0'&1&>+&M/'A0&d*&ï$&5&R/'$&q.'ª(&7#&>3&w-&~%& &ë/&*&)&§#&#&÷2&2&,,&$&24&È+&f&&ø &Ù0&&%&R5&‰/&±)&8$&F4&ž.&f3&ž-&ó'&°"&–2&¼,&<'&È!&Ç1&Ü+&p&& !&í0&+ & 0&*&©$&Â4&/&+)&Ê#&Ó3&&.&o(&#&3&1-&•'&3"&<2&U,&ã&&]1&&&” &x0& *&Ø)&G$&¸-&(&Ò"&Á,&á!&Û1&ë+&„&&¬%&? &N)&Þ#&ú3&?.&ƒ(&w!&q1&†+&)&&¼ &¡0&¹*&I%&~5&·/&Ý)&Ë.&ë(&þ4&M/&à.'4&S.&ˆ/'/3&^-&·'&L"&_2&Ò/&ì)&p$&Œ4&ä.&ÿ(&’#&˜3&C(&ç"&,&Ž.'1&4+&Ï%&W &70&s*&þ$&)&$&4&h.& (&2#&43&m-&Ð'&j"&i2&Š,&'/'¤1&´+&R&&ä &Ê0&Ü*&–4&ó.&±3&ý-&R(&#&ò2&-&}'&"&2&6,&¶&&;!&51&X+&ã%&q &U0&‚*&%&*5&l/&�)&³!&¸1&Ã+&/&¬)&$&‡2&)*&Ñ4&%/&?)&ë3&0.&~(&3&;-&¤'&A2&í&&h!&l1&&&¨ &�0&:%&p5&¬/&V$&s4&Á.&}#&{3&Ç-&Ä"&´2&Õ,&ë!&ï1&õ+&+&±%&'&�!&l.'‹+&.&&Æ &¦0&Ã*&Y%&0'Æ/&ç)&f$&‚4&Ú.&-0'‡#&Ž3&Ú-&ñ.'Ü"&Î2&ò,&n'&c/'þ1&,&¢&& 0'1&*+&Å%&Ä.''0&P*&Ö$&}/'R/&p)&ò#&80'].&›(&c-&Ë'&["&°/'z,&'&‹!&‹1&0'G&&Ú &Å0&Û.'m%&—5&á/&“/'$&‘4&é.&g.'—#&§3&ó-&/'ö"&è2& -&Æ/'"& 2&,&“.'+!&ü2&‚'&"2&Æ&&E!&:1&í%&v &45&s0&!%&M5&Ž/&3$&K4&™.&d#&£-&’"&²,&Í!&Ñ1&½-&µ"&Ë,&U'&å1&‰&&1&+&˜/'_,&û&&Ì$&5&H/&4&##&Á'&Q"&¤/'t,&'& +&=&&Ð &»0&Ò*&c%&�5&×/&ñ)&u$&�3&é-&H(&ì"&v.'-&µ/'"&2&§&&!1&9+&\ &<0&_*&ê$&5&b/&„)&#4&m.&¥(&93&r-&Õ'&n2&'&š!&Ÿ1&\&&é &Ï0&y%&¡5&æ/&�$&Ÿ4&ø.&¢#&¶3&.&š$&®4&É.')&¶#&À3&.&\(& #&­.'!-&Œ'&."&W/'@,&Ô&&O!&J1&»/'ü%&… &n0&‚.'%&H5&€/&,/'-$&<4&�.&á/'U#&W3&•-&³.'Œ"&Œ2&£,&h/'Â!&Â1&×+&0'!&è0&ô*&Ï.'% &� &›*&\5&À)&B$&[4&×(&³-&(&«"&3*&Û4&I)&õ3&:.&+&N &=*&õ4&>/&4&-0&à$& 5&X/&÷#&4&c.&-#&h-&e"&€,&�!&•1&ß &å.'s%&œ5&‹$&"&",&1!&H+&K0&x*&%5&“)&|.&¹(&H3&ä'&ç/'.&e(&,-&ª/'62&P,&X1&“/&»)&ö.'P4&£.&Í(&i#&]/'­-&(&œ"&@-&Ÿ'&8"&F2&Z,&ò&&m!&g1&v+&&&£ &’0&5%&u5&*(&¿"&¹2&Ú,&‚/'ð!&ô1&ð+&=0'!&1& +&/'D &0&8*&Õ/'ï4&9/&])&ˆ.'ÿ3&D.&�(&7/')3&T-&­'&þ/'T2&e,&'&¹.'{1&‘+&3&&n/'«0&È*&T%&0'Ì/&+1&C+&Ù%&i*&ô$&‰)&r.&¯(&<#&C3&|-&Ú'&o"&s2&#'&¤!&©1&¹+&î &ƒ%& &ô/&*&¤4&ý.& )&¬#&†.&K#&‹-&~"&ž,&¸!&Í+&ý &/'�%&|.'þ/&_#&a3&¨-&ý'&—"&›2&­,&A'&Ò!&Ì1&á+&u&&!&ò0&ù*&�%&0 &0&*&®$&Ç4&/&0)&Ï#&Ü3&è&&c!&b1&q+& &&™ &ƒ0&¥*&+%&a5&�/&É)&L$&d4&².&á(&x#&p3&Â-&(&º"&ª2&Æ,&3&E-&Ø2&ü,&˜.'U*&2&¬&&Û/'R+&G/'f &˜)&$&-4&�.&¾(&F#&M3&�-&ß'&t"&}2&”,&-'&®!&³1&¾+&a&&ó &Ô0&á*&ˆ%& &.&b+&÷%&€ &e0&‘*&%&>5&{/&§)&$$&74&‹.&Ã(&P#&R3&�-&î'&ƒ"&K'&Ö1&z&&ü0&§%&$*&à4&:)&æ3&y(&20'{+&�/'² &œ0&¯*&?%&k5&§/&Ó)&[$&n4&¼.&æ(&Ë/'u3&Ì-&%(&ž.'¾2&ß,&_'&ÿ!&ê1&ú+&Ž&&ó/' 1&+&I.&ˆ(&O-&²'&B"&O2&o,&|!&�1&›+&Á &¶0&¾*&^%&ƒ5&Á/&â)&k$&}4&Õ.&õ(&‰3&ä-&9(&Ý2&í,&/',&�&&%+&À%&K*&Û$&u)&`"&Õ.'û)&…$&ž/'â2&-&7'&Ÿ!&®1&ë.'À&&C0'?1&]+&!/'Z0&l+&&&=/'}0&í/'±/&å4&//&X)&¦5&†î&®&$'žä&j‘&cQ&*4'eÈ&*ˆ&ƒH&\ý&H½&Ý}& ;&tó&o³& s&×)'‘é&x©&Qi& '§ß&˜Ÿ&�_&CÎ&«Œ&€ƒ&I0'{ï&L¯&—n&e&´'êÚ&›&0‰&µH&Üþ&¦¾&y~&á<&¬ô&¥´&Ô4'ô*'_4'Èj&`!'á&Û &a&['¼×&–&rV&3 '„Î&Ž&”M&û'áÃ&›2'âB&^o&Õ'Ä1'”\&}'ÒÓ&è’&ÔR&çÿ&Æ¿&Au&,'áë&•«&Øk&�"'Æá&Ñ¡&½a&#'_Ø&,'ç„&õo&J&'½æ&K¦&Mf&í'Ý&C�&o]&'‹0';5'¬S&\˜&ƒX&"' O&”'½p&='' §&g&á“&DT&} 'Ë&dŠ&7-'ëì&˜™&½†&¯»&{q&+('7¨&h&å'ˆÕ&o”&K&õ�&Iä&%G&ôü&ݼ&ó&³&ƒr&=)'Œ&ùK&ï'‰A&ù&å&¥¤&©š&1[&!þ& ¾&K~&<&Nô&âs&^*'šê&ƒª&3j&� 'zà&• '±Í&š�&_M&•'RÃ&Xy&*7&ãï&�¯&t'ïÛ&Û›&3'Ý2'r¿&&‡µ&5'¡4'gë&A«&³3'ø!'K3'£¡&g2'õ'1Ø&þ 'Ï&bN&u5'¹„&¤C&72'„1'ÿy&'8&*æ&¦&�'Ûœ&'»Ê&/€&ƒ>&÷W&¯Ï&ÑŽ&3'PÅ&¹…&JD&ìú&ìº&Ùz&''%ç&ߦ&}f&'p�&Ÿ]&\€&ý>& 1'Ì0'/v&Ò,'Ô¢& c&äÙ&ý˜&ïO&ç3'DÆ&dE&Šû&õ1'Ä{&ͱ&Ÿ''öç&Ч&²g&@'Þ&à 'yË&e�&@&‡÷&¦·&¯í&$­&�m&ÿ'žÑ&î�&ÅP&5'fÇ&„‡&{F&¶ü&z¼&Ã|&‘:&Õò&‘²&Er&ÿ('äè&è&}h&À '…K&†'Â&­‚&A&µø&¸&@®&ñm&J$'Ìä&j¤&yd&¥Q&²'¿È&Yˆ&µG&¶ý&}½&£}&�;&©ó&i´&~s&Àé&Ü©&µi&Q ' à&üŸ&š`&~'ãÖ&ö•&V&û 'FÍ& �&¶L&ó'èx&'…Û&l›& \&'XÓ&x’&kR&ÿ&Û¾&Ö~&?=&ÿô&µ&ýj&º!'Pá&¡&La&¶'ò×&÷–&äV&h '¹Î&BŽ&ûM&UÄ&R„&6C&Hú&ç¹&Ëy&«ð&=°&Õ%'¨¥&ãe&2'�Ü&?œ&É\&«'Ô&“&=S&ñ'PÊ&û‰&¢I&'fÀ&÷&>&â&¢&ìa&R'ŒØ&Å—&»W&“'÷'ñÄ&P…&D&°ú&„º&�z&V8&ñ&¥°&"p&±&'êæ&x¦&ÙS&J&M'íÀ&öu&–,'qì&tl&##'ââ&œ¢&Úb&î'}Ù&˜&¹X&ƒ'ŸÐ&“�&…O&ò'Æ&S†&0E&Gg&Ò'{Ý&£?&íö&B·&öv&Ÿ-'Gí&å¬&m&‹#'°ã&m£&¶c&Y'Z&•'cÑ&R�&ÊÆ&‡&?F&Lü&¼&e|&&:&Fò&R²&çq&”('…è&d¨&>h& 'AÌ&…‹&GK&O'ÞÁ&I‚&â@&Wø&A¸&åw&/.'Rî&/¤&Ad&',È&ñ‡&TG&#ý& ½&;}&3³&çr&ž)']é&9©&i&°'nß&dŸ&½_&ç'uÖ&ˆ•&tU&“ 'ÜÌ&V'»Â&®ƒ&ðA&‡ù&O¹&„x&[6&Bï&à®&Ån&Û&3›&q[&£'ñÒ&v<&Ù´&It&¼*'Ïê&¸ª&‘j&%!'ãà&£ &Ù`&$'�×&Š–&§V&ô 'Î&Ï�&ÂM&)'Ä&„&‹B& ú&®¹&�y&�7&Að&߯&Œo&—%'óå&m¥&«e&¢'Ü&œ&–Ó&¯’&S&¸'Ê&‰&3'ô¿&r&N1'Éõ& ¶&u&¨ë&�k&V"'�á&‹—&„W&Y'xÏ&�N&—'…&ÙC&Jº&fz&w&'†æ&�&7]&C'gÔ&6ì&Ä«&6l&ï"'«â&h¢&tb&BÙ&$˜&KX&P' Ð&/�&NO&`'®Å&†&£D&Lû&H»&û8&~ñ& ±&ëp&k''Yç&:§&Úf&m'FÝ&Ì�&ü]&*'ÆÔ&¬“&rT&« 'çÊ&’Š&°'�€&�ö&’v&d-'ªì&T¬&Lã&2£&Z™&¯Y&c'ú�&¯'ê†&èû&Ý»&$|&Ä9&©q&Y('Ÿ'qÞ&–ž&Ã^&'ÖË&M‹&âJ&'§Á&º�&w@&î÷& ¸&‡w&î&�­&1Ò&+‘&'Q&s'îÇ&}&â:&@ó&ϲ&°r&j)'"é&©&Þh&u'3ß&&Ÿ&P_&«' Ö&•&J&‰'µÙ&*™&OY& 'ÝÐ&Ê�&P&'sÆ&ކ&“E&¹û&»&ó{&•9&ò&û±&Sq&ü''%è&Ÿ§&ág&o'@Þ&8ž&“^&Ž'YÕ&?”&ªT&b '¦Ë&ÇŠ&ŒJ&’�&H@&W÷&Ø·&_w&.'êí&\­&am&Ç#'ä&Û£&ëc&¸'•Ú&Tš&žZ&Ð'ÜÑ&½�&–P&'5Ç&‡&ÐF&…ü&ÄÚ&ÏZ&mÒ&ÒQ&í'™È&[H&�ý&Ùô& ¿&¥=&™õ&ãµ&*+'ë&«&”!'N¡&�'6—&§ 'ôÎ&õá&b&ÅØ&þ—&Ì'«Ž&Ï'*Å&¬' Ô&ñX&¶'yÐ&*' E&f{&69&¶ñ&x±&˜ç&o§&ƒg&¢'³Ý&ž&5^&^'Õ&”&eJ&â'!Á&�&r?&&÷&�·&Û-'¾¬&&Ķ&Ðu&ü«&é€&¾ö&·&Ðv&í&ެ&Þl&Šã&ic&Ú&êY& Ñ&,�&¤Æ&ÃE&&ü&:&¿'�”&< ''‹&Á&#‚&�ø&¿w&ê­&Ëm&xä&d&I&‡þ&Ô=&8´&½s&öª&[–&CV&à 'àÍ&k�&0M&Ê'#Ã&êƒ&åÉ&’‰&sI&Yÿ&C¿&B&v=&iõ&´µ&„t&Y+'7ë&;k&&"'\—&#W&Ï 'HÏ&zŽ&3N&g'�Ä&Š„&tC&ú&º&6z&ö7&ãð&u°&Äo&&'Væ&î¥&f&½'èÜ&¬œ&]&æ'8Ô&M“&{S&( '‹Ê&3Š&%š& Y&æ'ÀO&P'ôE&•{&f9&çñ&ž±&$q&Í''Çç&¨&'âÝ&gž&d^&4Õ& 'JË&øŠ&²J&PÁ&}‚&³@&¾÷&ž|&¯ò&r&¾è&¸h&ÜÞ&û^&æÕ&ÛT&û '�G&‰ÿ&µ½&t}&];&æó&£³&Os&*'kê&¬©&†i&ì'Üß&ÌŸ&ü_&N'"×&Æ•&ÕU&6 'Í&ÙŒ&‡L&Ã'/o&%'žå&=¥&Me&â'ÀÛ&«›&Ú[&M')Ó&H’&¥R&ˆ'�É&b‰&ëH&¸ÿ&¿&§~&=&:õ&Wµ&F\&|'ãt&º+'SW&¡À&±>&“¶&Ÿu&|â&8¢&«b&¾'Ù&’˜&oZ&ò'JÐ&c�&ñN&Â'âÅ&è…&ÛD&û&»&6{&Ì8&Nñ&I±&�p&'Á€&C?&]ö&ê¶&cv&-'€í&$¬&¯l&[#'ã&£&:c&)'7Ú&Å™&€Y&3'Å­&÷#' ¤&é'„š& Ò&Q&¤Ç&G&¸¼&D'ß&÷ž&!_&|'EÖ&é”& U&d '|Ì&ã‹&WL&¾'MÂ& ƒ&XA&íø&ð¸&x&Ì5&äî&x®&)n&…$'“Ò&¬‘&÷È&–ˆ&íG&ñý&å½&ã;&|ô&Ó³&�*'ÿé&ª&aj&ö 'Jà&t &+`&½'Q×&5–&f '�Í&E�&.'ÁÄ&ZB&ãù&7&½ï&I%'Íå&L'¾É&´t&ˆ+'t¡&‹a&j'¹Ü&}œ&R>&,ö&n¶&e,'6�&ß?&&ø&.w&qP&à'ÉÇ&¼5&Ÿî&0®&:$'¼ä&œ‘&•Q&O4'‰È&Iˆ&¥H&€ý&m½&~&M;&™ó&“³&?s&ö)'°é&œ©&vi&A 'Ìß&¼Ÿ&­_&tÎ&ÉŒ&žƒ&{0'­ï&q¯&µn&=e&Ò'Û&#›&R‰&ÛH&ÿ&˾&—~&ÿ<&Éô&É´&ø4'+'‘4'íj&„!'@á&ÿ &O&²'Ûp&[''*§&7g&ÿ“&bT&› ':Ë&‚Š&T-'í&µ™&Ú†&Í»&™q&I('T¨&.h&'¦Õ&�”&7K&‚&hä&DG&ý&ü¼&0ó&#³& r&Z)'0Œ&L& '¨A&;ù&"å&ä&Æš&a[&?þ&)¾&i~&0<&lô&t&}*'¿ê&¨ª&Qj&® '—à&³ 'ÐÍ&¿�&„M&º'pÃ&}y&^7&ð&Ÿ¯&’' Ü&ø›&£3'3'�¿&2&¤µ&+5'Ä4'˜ë&_«&×3'"'o3'Á¡&‹2''OØ&'8Ï&€N&�5'ׄ&ÉC&W2'´1'&z&F8&Fæ&;¦&­'øœ&3'×Ê&L€&¡>&X&ÍÏ&ïŽ&P'oÅ&Ø…&mD& û& »&öz&-''Iç&ü¦&šf&7'��&¼]&€€&3?&>1'ý0'Sv&÷,'ò¢&*c&Ú&™& P&4'cÆ&ƒE&©û&'2'ã{&ë±&½''è&ø§&Ñg&_'0Þ&ý '–Ë&‚�&8@&®÷&È·&Úí&L­&»m&3'ÌÑ&‘&òP&c'”Ç&²‡&ÀF&äü&¨¼&ð|&Ò:&ó&¿²&sr&-)'é&ñ¨&¨h&ë '°K&®'=Â&Û‚&HA&Ýø&§¸&h®&n&u$'ôä&•¤&¡d&ÂQ&Ý'çÈ&†ˆ&ÝG&áý&¥½&Í}&Ó;&Öó&•´&­s&ïé& ª&äi&€ ':à&+ &É`&­'×&%–&3V&& 'qÍ&5�&åL&'y&<'°Û&››&6\&='†Ó&Ÿ’&•R&Iÿ&¿&&f=&*õ&Gµ&+k&è!'á&>¡&{a&å'!Ø&&—&W&— 'äÎ&jŽ&#N&€Ä&z„&dC&oú& º&ïy&Óð&e°& &'Þ¥&f&Z'©Ü&mœ&÷\&Ö'(Ô&=“&kS& '{Ê&#Š&ÐI&='‘À&€&B>&Fâ&(¢&b&~'µØ&î—&çW&¼'#'Å&y…&:D&Üú&­º&Éz&–8&>ñ&ΰ&Mp&Ù&'ç& ¦&T&.J&y'Á&v&Â,'šì&Ÿl&K#' ã&Ä¢&ýb&'¥Ù&í˜&áX&¦'ÍÐ&º�&°O&'4Æ&~†&TE&sg&'£Ý&Ï?&÷&q·&w&Ë-'pí&­&,m&·#'Ùã&œ£&Ûc&�'9Z&À'ŽÑ&}�&öÆ&D‡&kF&uü&D¼&Ž|&R:&oò&�²&r&À('®è&�¨&mh&4'lÌ&­‹&uK&v'Â&m‚& A&ø&o¸& x&S.'vî&Z¤&id&<'UÈ&ˆ&}G&Lý&8½&d}&_³&s&Ç)'�é&h©&Ai&Ü'—ß&ˆŸ&ì_&'£Ö&¶•&�U&¼ 'Í&‚'äÂ&Úƒ&B&«ù&x¹&¨x&£6&kï& ¯&în&DÛ&\›&š[&Î'Ó&Ñ<&µ&tt&ä*'÷ê&æª&¸j&P!' á&Ë &a&K'¬×&²–&ÔV&# '3Î&þ�&ëM&W'EÄ&B„&ÒB&8ú&×¹&»y&æ7&lð&°&´o&Å%'æ&˜¥&Óe&Å'KÜ&/œ&ÂÓ&Ø’&-S&á'@Ê&ë‰&;3'VÀ&ç&t1'öõ&8¶&1u&Ñë&Èk&€"'¶á&µ—&«W&ƒ'ŸÏ&»N&¿'@…&D&tº&�z&¡&'­æ&3�&_]&o'�Ô&aì&ì«&dl&#'Òâ&Œ¢&›b&mÙ&L˜&sX&s':Ð&S�&uO&„'ÒÅ&C†&ËD&zû&o»&&9&¦ñ&9±&q&�''ˆç&_§&g&’'kÝ&ø�&%^&N'õÔ&Ñ“&šT&Ð ' Ë&·Š&Ò'±€&®ö&Àv&�-'Ûì&~¬&zã&]£&ˆ™&ÚY&…'�&Ð' ‡&ü&¼&U|&ð9&×q&„('Í'œÞ&Áž&ë^&='Ì&u‹& K&?'ÎÁ&å�&£@&ø&1¸&¯w&Bî&µ­&]Ò&Z‘&SQ&¢'È&+}&;&dó&ö²&×r&Ž)'Mé&)©& i& '^ß&TŸ&_&×'5Ö&G•&dU&T 'lŒ&éK&F'«Â&ƒ&àA&wù&à¸&tx&K6&Ôî&Ю&‡n&Ú$'^å&ü¤&àd&t'![&l'’&*R&I'OÉ&ïˆ&KH&wþ&e¾&;~&f<&>ô&(´&9t&N*'[ê&sª&#j&æ 'Óà&d &Š`&' M&…'«Ã&Hy&›ð&ϯ&„\&ö&�u&U,'&ì&&l&ß"'lâ&db&®'Ù&;X&üÏ&�&áN&žÅ&©…&“D&ܺ&&{&¼8&ý°&}p&ÿ&'Ϧ&Êf&]'¼�&ì]&ó'œ“&4T&m 'UJ& 'ÔÙ&J™&pY&#'üÐ&ê�&;P&Ÿ'”Æ&­†&³E&Øû&Ÿ»&|&´9&6ò&²&kq&('Eè&À§&h&�'aÞ&Wž&³^&¯'xÕ&_”&ËT&� 'ÆË&èŠ&¢J&ª�&g@&w÷&ù·&ww&.' î&}­&€m&ç#'9ä&ú£& d&Ù'´Ú&tš&¿Z&ï'üÑ&Þ�&µP&%'VÇ&á‡&ðF&¦ü&ÚÚ&åZ&ƒÒ&ñQ& '¯È&sH&¦ý&ïô&¶¿&Ä=&¹õ&ùµ&I+''ë&1«&ª!'d¡&¦'L—&¿ ' Ï& â&5b&ÝØ&˜&â'ÁŽ&ç'@Å&Í'¶Ô&Y&Ö'�Ð&@' E&…{&V9&×ñ&ޱ&·ç&�§&¢g&Â'ÒÝ&(ž&T^&~'$Õ&/”&|J&'@Á&&�&“?&G÷&–·&ð-'Õ¬&Qm&ä&Ë£&¦c&¨'…Ú&š&_Z&SÑ&­�&aP&%Ç&t‡&/F&j¼&�:&Ÿò&B²&ï('uè&³¨&ü'ÌÞ&çž&l'ÖÕ&Ù”&° '1Ì&Ó‹&>'ÓÖ&x•&ÅU&ë 'ÌÌ&›Œ&GL&³'Ã&pƒ&JB&Óù&?¹&Øx&ó6&2ï&<¯&o& %'Žå&-¥&e&¤'uÛ&õš&Ê[&ÿ'áÒ&8’&[R&x'É& ‰&cI&Ìþ&–¾&ÑÃ&&C&ž¹&�7&1ð&-°&‡%'›e&"'qÜ&>&^¶&ö+'…«&€k&öI&ÝÀ&í>&Ú¶&æu&¬&ÿ€&Ýö&2·&æv&7í&®¬&ôl& ã&c&'Ú&Z&$Ñ&B�&ºÆ&äE&<ü&:&Õ'³”&R '=‹&—Á&9‚&¥ø&Õw&®&ám&Žä&1d&4I&œþ&é=&Y´&Òs& «&z–&bV&ä 'öÍ&Š�&OM&ë'BÃ& „&Ê&²‰&’I&yÿ&b¿&b&•=&‰õ&Óµ&¤t&x+'Wë&Zk&F"'{—&CW&î 'hÏ&›Ž&RN&‡'±Ä&©„&”C& ú&:º&Vz&8&ñ&•°&åo&:&'væ&¦&=f&Ý' Ý&Ëœ&']&'WÔ&m“&œS&G '«Ê&TŠ&Dš&?Y&û'ßO&o' F&´{&…9&ò&½±&Cq&ì''æç&'¨&0'Þ&†ž&ƒ^&IÕ&, 'iË&‹&ÒJ&oÁ&�‚&Ò@&Þ÷&³|&Åò&5r&Ôè&Îh&òÞ&_&üÕ&üT& '¥G&¨ÿ&Õ½&“}&};&ô&ó&ns&&*'Šê&Ì©&¥i& 'ûß&ìŸ&`&n'A×&æ•&ôU&V '6Í&ùŒ&¦L&ã'No&9%'½å&]¥&le&'ßÛ&Ë›&ù[&m'HÓ&h’&ÄR&¨'®É&‚‰&I&×ÿ&3¿&Æ~&/=&Yõ&wµ&^\&“'øt&Ð+'tW&·À&Ç>&´¶&Àu&›â&X¢&Êb&Þ'2Ù&²˜&ŽZ&'iÐ&ƒ�&O&â'Æ&†&úD&<û&8»&V{&ë8&nñ&h±&­p&'Ù€&b?&}ö&·&‚v&'-'Ÿí&D¬&Îl&{#'<ã&"£&Yc&I'VÚ&å™&ŸY&S'Ú­& $'¤&þ'™š&!Ò&Q&¹Ç&G&ͼ&e'#ß&Ÿ&@_&›'eÖ&•&,U&ƒ 'œÌ&Œ&wL&ß'lÂ&@ƒ&yA& ù&¹&;x&ì5&ï&˜®&Jn&›$'²Ò&Ì‘&É&¶ˆ& H&þ&û½&<&œô&é³&¬*'ê&:ª&�j&!'jà&“ &K`&Ü'q×&K–&… '¡Í&[�&M'áÄ&{B&ùù&7&Óï&a%'ãå&d'ÕÉ&Ót&ª+'“¡&­a&€'ØÜ&œœ&s>&Mö&ƒ¶&†,'U�&þ?&Gø&Ow&†P&õ'ÞÇ&°ÀODHT  ·ÞãøW)ÃþJÔj K¾àZµ¡ îçUèÿîSñÖ½â†@° »“ú€Ïª¥}„ÀûCU -çY`Q/}ß®ä €9Œé'„`®@’6�Z-¢Ó Àœ•š)Û¢Åö÷4!˘ •Á¥'ä… € ~yj `jãG„NvµÀ€jú<ê  _C£GO«Ñ |S3MŸH€¦q †×o àµÞ„C¦Ãå éÉ땊¥«`>1ÿÕÀʆÀ `äv%Þßæ8´‚ýðøÿ.:x.N�€Â&�?o^»{ÑÕªI`‰S¤ _uw¸HÌÉÌ*W¼?˜g? % ”€)/ýÏ�¦�`âõBIø2¦ðÿÁ:ø~ÔÝ"@� gORH^#€ÐÑñì?Ÿ# £úVtÉ™¸&€?$ [x@o)œa(#—+w* ?5�½Ô{uÉŸ¬!úmêŒ, B²À‰‘‚(- +y0©êƒ—-`W·©r©Ä¸. óv§òR. :•’äÿV1 à@§5}®ÐŸi‚rñô±<3|%¼}4€Ô[é¯ö?ƒ8€¥«p›=©=ÀàUŽ ¬}Åä>Àk¬ŒÑ6·ë@àÎöácA`Z+= Ä›6A3žØ ëúÄ@`´—M8 D ñ!�RõEÀc˰nÓ ?FÃ]ÁC_WªGÍʦýsG`Ê·ƹªI òù§l ÅJ«ÌfùìšÀF¦˜Ë &°G@3‹Æ#zÉMà¹ê£ qnN@£#� üª»OàWAè€R”�E Ù‡�ЩH FûÏqÂ’ÊRÀQhP÷ºÁÇK€TXÅ89OH ÷!Ÿ{m#UL—~^i�¸M üÀ–1hD[B@,3`š1²XàìEGõ’nY`¿+ˆ‘ÝZ¤À蕇^Ì[€á[¬J[ §¯W�ÿLÊ]@¯P± ³³v´] �㥒LÌY ½-G«‘ÓNb "rÑqH/cÀ€GÑ BP‚Übßjj§T(e@‚ö�g«Ô»c@ÙmPÐ÷ÖÞgψBÔáøøi€è\h³wj€�,©û{.`j ¹g á£Øl@L³ ·›$úm@¬;5X¬½ãnÀÒ{÷2œj@¬SÃT4CÉm`5¶'ÐéÇq`Ø`g¤p¤m jŸ$ø†§s ü1Ô "gEÇqàÅÍËzRu Õ‹}ž]Ú­z@“Œ•ï�®„{ b¯"Èk›{À‘kfîåK}ÀU¢ a‰ÆÌ~À&µ¨KQö °Å Dæ‡| œ àoŠ�àØ“¶ÆæÑ»�   2Ît‚@Oæ2G7ú„`Ò&q.ãÒƒ`Ju”K°ÐR†`Z‚žôar‡@ɰΉy† S¤(.ab‰ÀŽ� ÿF…*‡À*ä` œ&†@ÿ• ›5ŸŒ@Qý¦oU¸Š@$p ?RÆ‚…¸ñ{]š‡à÷ëú8áq2�  $ Ä‘8�@KÇ… Öd2 ‘ [˜ä µÝ ‘€Öâ— Tþ–ŒàhvoÎŠÈ z õsoQb}�@4“›v9—àŒÄ]ä©E˜ NŽ* |Uî.™ 2tÐc1íš`ÄC шd›à¸(±¯Æ£œ Ðè­Z`�As¾1–þôœ Ö9ŠE”kFŸ€þ›Z ÖY¤r `F°VÇ/b¡ [騿¼¡`ëê° søM“™À”?Y{ð…%¢@>貃tJ¥€6µj g{ÎÛ¦àØ›-Hoa§@Û~¶ÃU9Œš@€OOÐ7À›ÀHï6­xÞXª,yWÀ—«` C»�<ñ¬`!Áà ha×z¨`8¾^ÛU¿<®€—'Ëåèã®àWµ6 G}¹à™à‹®èS�±HpÖ“*²àžñ¨zK+±€Œ Ù d;ÿ´ %Ë|Ù"I, Àp}·…Ê'N¶@æâýZq‘· ÌåŽ8�Oü° ™Ç ü̹àη[ Éî¼°Ó« �Ÿ\»¼àªóÝ x¢Å_¾`LÎÆ�Eζ¿ ‹ƒMN¢5¿ ö$m PްÁíª$&uÓ¼@)áºãZÃ@€g7 £¿l\¿€wvZôCÝ ãFÝOS<Æi? ©?LÆ Wnzôa|Ç`@ô@yÓNÉÀæ$ël a.É@»¹]±›ùË! ee0É€eàiìføË`–úðÌ`]Æ‹:ÜmÏ@�ü ÛPÏ •ÔEKÄ9‹Öào²¯ù}ñ#× _ïɬ´›Ø€øU :ç´[Ø  §ñ?ƒÚ`´ Ö¶~ÝÛ¹Nw W[ŽÜÀa•.Á ìÅÜ€ ñ˜ 6Ù”|Þ@!þîqtyIÜà~ò äéÛþÞàáa, ž “òÜ C�"­H‹â !\çÐ× ¢oH‹Ü‘‘`èŸ),Ó–Oõ OYæ1q×õ œbÔ Ýß&qø`âu Ðÿ{ù@ÎzR Ük“ù`â· ¿®ìÎúàØ.a´I\ø,˜Õ�€¿3ý ¦ç,ˆ1ÿ€qGÐê#Ná_°0¯qª^�9àŠûkývK7§˜šauƒ®bða”©¢ü�nÆŽå—É ánmÚÞ< C aà[äÇî°Œ ð•¡ ãc�� ��=O�Á a?bR[¨!¹ŽdLSaòµõ¼¡Î A¨c/‡ƒ%±uÅA¥Ó0¼ái÷Ž�OÀÊ] g� 4!À ‡Îš€a+ ×B5á™�¯FïÐ^QµÎãOM!¨\A� ȱ §Y�s3ÀžëT9)8üb�mE*O«À•gÙ áD'Þô Ù!!„-8ñ\»!!Ì^�°"¡+¾ö&DЮ#�Z†¸ØE¥"%ôÜý ;¨Më%a³¢ïEÉçYÅ:—3&Áì"�ëdzv$Á¤¶F"m )xAõF~Ù+�h÷1á~¦‚,A‚þMO[”Ø.¡18»3ç8Ð/!M¶¸†f¨0�“KQá¹&.Á•±ž?k73A>¿ óÊÀf4!Êñu$$âÚ4¡îÞ�1ga7ÁyG„¼7|ZŒã¨ÿ9A[ö‘q é:a(k  ‚¼V9á2v‘ Ð<ñ=�k¬¶R_(Z>�>*zâ]AÁiýøëAÁ1`±¯SÃ!D!e3& Rî‹E¡E‹« ÷À²DA‚—›úÆÉiG�Y«?ÂFaŒëàÄI¡�0²‹&JA Ý_Y€Fa„ƒEæ•EAÌ5·¶SGD�¾C‰aQN!\Ž0 õn�4HZ·ûcäóSásA §ãÁT�‚K/ bƸU¡£óVr´$VÞŤ‡}Ua’í ögÍVaÞéPí)TÁ‹a6+7u]Saj­“½‡Ü\á¹4ì™;n ]!ÞÂͰ¦`!íðýVÊPaá9ň¤‰ïºca^¹-Ü ®¿dA8G›ä|ÍÏe¡ µÛO­Œda_@¿ ;(f¡mõc'©²há�µ,·þügÁ¢XŠlÔ&k!ïJ¯ "žHÝlá’.Ú¸‚»‰k�©ÁwˆÆ‘nÁ÷T¢·ŽWÝÇ\ÈžâþŽ$¢L…ŸBùvšÉpB£ '÷ (9Y ¤qVs äQà¥â±¸\†çÌI¨B ÅÝ\^媤§Ý—¥f­‚KWA<%LÍ®">RJz±±ÂÖ7 ÌrµSµ"îU:®à®¶Âõ®0;T(ܶ"?�Æk¼¸"guÊ¢Ì}¹‚RuI,3Õó¹‚�S1Ç®wºº‚Ãq "®è¤¼‚�•u e°ï¸"m®!Á ·¢ _ÀÈèôº¢IQ&gÚH·B/srpò; ¹BÝ‚1“W�ÏÃB‚kJÁ.pEÄbF79Òc¢åÇ"Ö•�ò(ZþÇ"b@®ÛÊÊâ‡(,Sð[Ë"p›ÖQ äÍ^ëëM@õ3΢-š_Ï/Ñ¢¹o6‚h²èÒb—{núuÆÔâ™uІ‚ÕÂ91ƒÓÐØ×ýT2åH�ØbwÓë ÀžèU×b�ÎâHgÚ‚qè´6×" `nÑ”D“Þ‚æö µÉ¿ßÂJÖöó⣃ ã9óæôÂïÞˆj¸õbv�¨³Šðö"Œ#µ j´Ëê÷B€æÌÅSÍŽ÷"�ø(8ÍöB5iÁŠº7ú‚3«/¥9¥õÂ,Ÿtu×[üÂ)ÒêÆrÖ,ýB}:þ£ª6~ÃëWt®L #ûc“m.3c¢ÉÀÔ¬,cc�,^¢£,dzö_èC;WN Ïn� ÃñP�lÑr ƒ¢Á[ ä%§<Ãê“DoNBi#qU 9kfcGÊ‹dŽÉC�Ÿ ŸW¨mŠÕ Ü5'ÑC ¶Gµæƒ¤¡¸|«ÒCļRêR¿ƒ¿D ¶€‚cÑ›!•ÇÃ'–_ ÛDÊÊãÏA½$O„OãßPƹ³8%£zr~[)ß gw¬ ˜8Ð-"£gMTÍòP#C,žù¶h#£2_ðFÉ %Ã)x?ÿ%ƒ¾'½¦gVü&cø…U žø (ƒ õÒ´)éÖ(ÃM«q z¸*£.Óø GU¦+C­!€˜£š,ƒœØà�èÕ-£;ðó ykï,#´5ÀCà-ãDCŠ·�‚.#ÜåVaB;�1cK]Ù [ºuÕ2e Ïê¡3C0A¥½´æÂ3ƒÈ¸ F^g›5#â� $ëþÉ6Ë�<4¢‰þ.cú.¿ÞH+޼‹ÉU“Š1£Šô°EÛu4C·ß¨RÛ_;#Ⲃyò‚Ñ&ó™K6=hn<£SsÝS.u[>£t™´Þ7Ê@ƒitH µÏ�«Acàheà»Æ§BÖL'}UCcnÐø�‰DcUpä j.�ŒFÑ0]'¥©½GÃËtæ ‚(vG#í\ÚKmOICÛP¯ ynÈIƒÿŸÅf°­œtW£§÷[‚7GPY£ýO¯;ÐgX£>Cî¶òé@YƒeÔþ6CõsMcƒ«#^“ySÃŤç»Ú²^ãJùK —âK_ƒ¨§­�ó®^Ctù‹‰Ê`js_fAbãEGFÄ’6bc-0 årbã%Ž  …}#Y`ãD@ب�bãÛçɶ¹�}gCx>c|(Œ?bשy†,bÄic�Ôß>ë–jãÀ:vwê¢ökC6¨£+oº3lÃm$jòškãÙC% ¥óiãx‚Bv²Þl£_r—jö5ppQwó|¨Z›qCÇí¡HñXFr#uD›¯ì½jqãFýžð˜ÚUÃ!�&i:—g#LEd½ïCtC¯}6,¤õdwcõe� ØÆqwƒe|ÓF–£ä{cÿ{t{LÓ,|£ÉÅŠ<®M#å¥üi¤È/O£Â¢ §Kr=€c"U Ñï¥N€Ã3Åô;fô€#êËûøDàƒ˜ýgÞLh@„ã("wãùÕƒ#Î/:c<Ž €£å[=ßg‘�‡ƒ~DÄy ~ꃃ´ÈiÇTý‰óÈo áY´ô‹Ã«^([CgŒc]†ÍÿJ±�ƒfŒ"ö`ÔmŽÃU¦µôþŒC·v¶DÒ\„�ãÞ¨YN¸öÉŒ£L¥FVÏø=–ã5?) »¦–Šê½ c»W˜£¶íÖ‘±`–ù\1“íçÍšãÒŸ%Õýû›ÃQ½� xNZ˜œc&TÜ5uî•—ÃC1ð>×8ÛžÃÂ0j‹ý.9žƒ½‰ÃÆÉ§" Ãó€µÚ9Ÿš¢ãwg&*Ž0¢Ãp Ë¢�4¤£˜¥…´Lñ&¦ƒd�†•ݧccÖ¿|þ4¨C𠽝š€©cu×e˜Ø©þˆ7þ7¨J«cÆ!û'cÇ^¬#ÅÿW‚Ó¥n­`Ð…“™®c+äñ™ä�¯ãI+� èÎâ�®£õ â ¥as±ƒ8?ÉÁ­zDz#¬ÿOÀ‰€³ƒ¨ŸdHh ñ¶C|ìºN·ø_!œ½j3·£µýc>)uɹCs-è”Úp»Ãd4ÿí¼ƒsÜý•»'Ì3Ö¥-¾)÷ÿ |?¿ã|¯rõf/:ÀnÚØÕ_ýÇÀÃeúŠ5´³ä¿ƒÖ‡¸ !=|‡Â�6ý o*ƒÀÂ4„L»ò2Ńů9 óWÁ!ÆÃ*‚$óv¿#g(ÓþV5¨ÈƒÆÐÂLd”É£àƒ¯ÄQ°Ê£Ö†¡S»s˃½M7¶‹¾Ã¶;ÊVàøèÍ£‘�“‘·ò7Í#ç�ˆ6†] Ïãe;a£BA΃Z?]˜J¾ÑƒªeZz €ÌgJ ùT;¦Ó°Ñì(â6Ô#yP µÃÍ>Õ£'ÿ·]DPÔc7´³ à×ïÕã Q “Ý Ök|˜ëK™¾ÙÃá¨ÆëÅÃÔ¼+÷ÚfÛCåªØ�¦bÛƒ,4»R@RoÝcQŒIœ.Ô%ßÃ~™—…À]àƒŠïi Ú�P¢âC&ê y™ã#°Eø ©ß©¸âcbºñoÝÒ@åc"Ýô¯¦æƒy)�í®åç£ö-ÌWØèÔwMd@ñçc¢oŸÊ&çãuÚú ‹ ñìëã 9á÷‹ìc?áÔz!ÅìCrBÁ‰&î£î¥ÿPœf$âÛ ãümÞî#0¶ô C³5šñƒí3èÍMîcŠÃ¿ /°j+óc5+¬/û`ôÃ)ùkçî꣮n ËÑn’ïãB≠ƒ´ÕØócõ;‰:æ4$ø#V;s´îÃ5”ˆat÷£ñ›ÏÄíôã nÖnT[ÏüÓë±Sªû§íƒïlcª‚l¦ïC€# ^ôÿ£�W¸=ë.$Y‡ "±ÕlïôƒH¡}ý#ë!΢éw@är;2\!¬e$Æ"ÄbEÂxVmôï䨢ˆ,зØ¤JêÚ # ÁIñc•{Ý; ¤—š#ÁË $vÉìà* „é{FŽéò6 DAã >aQ ¤¸ÂUhIë= äJ‘y;ƒ*æ2šv{�Ê$T QkhšÄ2�h Ý„ý)¤�¾¢�(ND æ˜Ê®‰C¤HºA ü+«®�ÎËiÝÔD•�Ϥü3,2óhSä:Þ© yÕ‹ˆä¿ ÒÝöŠ„Škdë®ß¤rû\ÎŽ$rþMYÿLÄÿOóç…¤Õ¼2Þ¤AÊ$³»Øè¼;œ„w¨îgEªä±ë3 >gÇèCu,†ó,R$•#Ó±(ôã4Õ^ºV %„`¿¿ºÍ­ ÄÊÍÞ†Æå['dûsk `þü'„]E… Æ£§–)d‚. ¦ùTQ'd¤¢yòÜSùC: qu_Ø1Öƒ6¤å€ ;ç“:¤¸Z ”lƒ;äx³a T' Ë<¯ÁÞüù9`<äû›�Ù:$>$$�Î ;‘×Ì?Dµ|¬Cÿº@$㱊¬úÛ(¸í=¨›lÇ—ÒAoÐy Vf­=ÄdsýÉÎ}GDˆ¡&‚«DHÄN ­oŽ]I$»Ôôn§|ØId'•@œ¼^K„¦Å÷ ˜}¯M¤É�àD™ÍN$€¶ë°×P>OD<œyLJHDO$<x †GìoO¤(°uÑä?ØHD|hê�lêPL$5öÍB&¨O$Šƒ¶¾òU$Úb�øw´PDZü×%W$¹) æ”íoXdÍèêE=¡«Y¦w¡®| EZ$H§Ùj¹[ävŠÍ�jæ÷\„yÎÈz–aZäL… å.òZD:n�ÔWš\„ÖjÀ5o˜R„ûZõZT T„•ŠY \)õboŒÁ kvcäæ¾„˜iu›dd/Æ–lU-—b¤´°” …7Ê`f$_É•^̪g$R¦¨ ŸEQ,e„ m#°•Š^ä'ÝôÈÑB†jDœ”Æëëˆj„ھݞ®ak„[¡-uÉNmä¼àÆ›§vnäãëR FÅadTõYp„„�Rû…Ûuqd¬w;éSaq¤¯VAíÿrqÄÛý¼Üt¤ÂžR5Œ#¼rdMõ烢óÃvÄ_T�ì@ŸÝwd_ŒŠ}û€ªsäÊžkð¡QÚyä¿SÕ ì� rz$Ì}ÒîízDK7®@:n Iá—GX¸±ID¤¬ž/÷âsÄH²Æ6g7€dß›´uJãQ„f×Í}��q‚Ä­•¯v6è]ƒDÔ¯˺g½„ä¥=E£UN†„Ī9üÀà¥w†äWî»SñD‡D‹ØL$Ù“lˆ*$ê“èãaˆ¤Â)²´\KŠD^:Hh´æÍˆ¤7S,”ýWˆÄRyV‹Aªò�äÕ²¦ÄR'ôŽDô÷:XÓ„¤ù¸¬?¶¤é�$GÏ=ü_è\‘¤®'# ú"0$ÔT‹å*ùÒ“äº+{=:¶Œ”dÌz™ ½¼†3äÃðFý.*–kQ¬ ­á£*ècz¹5?/a˜¤ã«Cz ÏÍ™äö?|ª†4&šj ï’ Ô›döø¤ˆ³Æœ$ÁÀ~ u4“œ¤Œ¢É>ß°šD`ûÈ}6=Ÿ¤øvÁ¸ùŸäi[1âçµÝ¡$š†Ui¢·¢$¬ÂD!˜³£„».ÑBý¨¤ä=ʉh>¢Ä›+b !S˜¦¤yš}‹£Ä«{Ñ8Iz˜¨ÄØt õHÀ)©$<¾"Øö”ªžþ×´âC«Dã»;·Y\XªÄc6Ì l›N­dY-O>G‰ª„J\°¶�¿¥D¬øw  J°¤”“€£¤Aɱdï=a¨ †²d³§Ž ‹J…I³-Œa7ǹ²$A&>UrC²dbüdE>϶¤™Ó,뙉·ä’2Lè%›dònæ¼òýP¹dÀ=« Ç‘ù”¯$Ëé°© 1ѨZΧw>丼D÷Ù9Sió ‹ÄK§µøD;¾D]Æl˜²ê¿äü –-¯$¿d†w€H’m¹Àau šecíÂdýš‹eîÌŠ¿Ä�ìì ¸‚£Â$J©ù7®ÏÅ„zá- J*BîÃd¿¤…Ny ðÇþª¸ê±7¶È„h| “ŠÁ$6b&vT3Êd|� дߴ‘$™<Èý.³Ìä�J ámÚÇägã§Ø™%ÎD€ã¦o@L“„rŠãu$+ЄÐùë„ê5ÑÄF+hŽÒ„ TriÒ¤dBq$æ¡Ô¤ËO€1\Æ`Öd¨¶1¤ä”îפGŠßÝZ]âØäT<4D~ëÙù‚v ÂÎÛÖКŒ SÔÛäq1y Ã�)RêC=ì=nΰ˜ÝÄ>ÁˆRñ¿§Þä(û�°BÔÞ$A¢`¯¾Aà„U¤c­¹„»ád:ŒØKyIâĆx YЧéá$Ëå÷€Â"ZäÄÝ+�ÖÒ �äÄI  l RæäTÉ\DEçÿŒdîI†çDœŒøhM#Ùè䥚X© Ÿ9êäÑ ÞDôà™è$„° yñÝ'êdÕñ vÃs0焹¡jFåƒî$vÏ3 FîßþK÷?[ð´–ˆ I9\ÔíD5«ˆyd’ïÄû†«>¹óD‡³w8®Ç"ôd÷#¦¸õÍØ ׋§¥ô„û=¹?õ¨ÀíD(9„hÖÁí$s²XŽÆF2ç$%ö±ú6Ló„U—w›ýT”ûÄ|€™ì|´òäÓ7hT€ýœ2¾ H˜È¨þDUç/d\uõÿ„»pÒ‘Aâä’püb›…À…uZ§ 6ÏÙåWÝÔ,zä×¢Awad ;©¦Š Ϙí �€\B…¢´ì ¸Q—¶ ­^/éEûçì°‡ìè åÇVÑ &·� Ù„S÷ËŸ„%ñ …óc Ø %7º /è­ Å N–éP=%’ ô–õRÛe…[Z.e $E¤tðgb¨Å| çÓ¥]A:í³ð–%’Gê¸TŒEö¦“’PÓ%yë‡ÇNíBe&'z$j©%qÑxÙµe–hB(ãceäô¶±e†…¾I8Â�ìe�Sï ·F^哘¾M�=E¢ÇúJ?–ÓÞê8ŠtU%ï–°Éîb" eB •«·Cï!Å[é"9F"〠Zœ¤#%¸ØˆÁÑc˜ e2ï¸ ì‘P$…-Ú, %WH…}¦`ïÜÜ ehÎÕ~H^¥_¯£Eb\)%]¸–=Í"¥Py@6RG+e ¶¢à+Å|EšDëDúü0?ÅX}�;éšàË“ÈP G:Þd£8¤›}s5%�±sRECåfãéÑ×ýþC¥©E Õ§6§/…†Œ¥¶ÚüÎFÅ]Ö^<‡iPGÅ»¬Ä@sŒGe+ cl)¿G³ËÿR"éJ…Øv5ÔѲJeï!BØ b]Lå½$�†5”ÉLeÇŒX âÓ“^G…!ÚùHÛp—JeXaTfê3P%¡[êùÿQű·£g½©ŒQEcâù àh BS%œA,¸!ÔRå,ÐdwP‚UE鉩rí8üVŠó ·¸[£W…aŒ ¬›Ç'?e¬é¤f lYEf׎·jYåØe‘â[û%ľغgh6>Å%iÕµD 1]oñÓXX^%HgA�4ö_%ž…³A`Å^"£0ŠO)…’Å\ÅED¥[–R}cůŪñcÅ~ì Æ ÎúdÅ+�„UHžfE?]’'.ºgà¦)_r0Bh¥ µ¢rX©æh¥Æ¥èéžg嬅…šk<Îk¥Ú„Y­¤k¥1ë>Pªl…e ê�~�hÅ5 °‰fVi¥¤›4JÀˆGiå…ß^¼…#Àq¥—W ÆÈL0råÏ¿ç¡êBrEJ�f±#rt%øMT‚Enyq ˜¿'7aFg…U™‡³LÝt…kk ç ‘¼m…ŽÌÑ¿yåíìÝ à>¥ ¼go*Ur%—ìÒ®ÝÖª|¥�¹K‹²ÜÌ|%ùâUi.¹~E¨ò)â |…î¢ïÁ²&b€EüîL£’íéá�›'€d|~‚E°õò”Ö/ƒE+à ¯õW„Q.Ç à0Žn…e®q./2¾ …ÅšiNTÂ�‡¤U ˪ÈˆÅ Ö óêa‡ÅDUï œ4Š%f*¸ ¡Té1‰BÅ€ áÞš™ŒÅï™ocf‚p‰Å ‘Ä6F‚ûŒE��%$:iœƒ%N/º²î ¯‚%¤•dîàW�%<> ðľ‰’¥_~KöSY‡…z†’ >‘ŠeqaxÊvÕ•Å~0EÎØˆu–Ťœi-ª‚–¥Q~( �¶##˜E¡÷‚ ÞéÿÒ–…geò £J{‹šeKŒ5y˜Œã›¥¯ûúìZ ®œ… R˜_Z1–Åa‡*+;GžÅAçXÓ‚1蟥“> rqò„…•ÿlüô�¡ez=²Ÿ|¨¡Å›ŒŨ¡%‰?ÌYÝ!W¤eB­aÈå£WŠÅþÄõÒkK½¦åÚƒ ƒ,)5–V&àyŅû˜ò¨|¸s I2¿ªE�^?`×Ù«ee(LüqΡE–#l„OHä­¥§_Vp £®¥žÙd˜E�u…b”F‹ÈëܙŀÄô,FÊ¥±{Ù]'R+~Å>O¡”Û³EùŸ8 h=$´e0v+"RÓ¯´å£ÐXÜ0š•¶ÅáדyÇ·e·Ÿ­Zju³¶E+jC ö¼mw¹¥¯±-ülóºÅ\ KãÄöº…²¤Tæm»º¥m£^ %}½å…**¬Ä‰¾éÖè‰Ô#¼%ñs•l�¬¼uÞ�zƒ¥Dbº”¸IŒ^s‚M¹#»ÃÅf¡KSQ–5ÄÅ;‡‹%\2¯… �¦A°Ï¾¶6Ò´v�pù£U-A\MÝ2È…ÏÎàÚÓiÉ…�nj ‡É¥áuÉnyËåõÛñ°ÄÎEÙ�¯([§RÏÅÛ %äˆÏ%$¦­Dˆû¤Ò%“É?V±L5Óå�æQˆ` Ô…Fç¨ÁµՅ‘ŸHÜáÖeóÜÄT c×%/2# ÉT¢ðØ*¾ÎÚÑëØeᘠ¤¸”`ÚE±ä 9þ²BØ%sÈŽHA¨›Ó%ºöm!G¤ÝåÚ™ T”žÞÅk6JÉŒkÝÅu2N˜XòXàÅóN­…¡à�áåµÑ×7»ÈˆÙ%›vy×}3†«åyù]ùÉ×>äÅ5gùºG�Õå…Ú×w ºç±œæEw™â=GPç%ëÚi hI��æ%¦U¤Ž;½Fée|«6‰°m�äEaÈè:‹”¤«BM 1íå »³¡CP̚ ŠG(šï% Û1¶š¸0ð%nŒþTÙ_ðÅè°´Q°vòò…Ñ�S ò´Tzò…j® 8”ßôE L-ë­U´òÅ6�ñ$M[Jíš è}©köE1qÅWã)ù¥-ÛuüyNcú%qâ¹�ð^çû…?|y$ Èrý%—tï¢OnýÅ”“ò`'Wqý%}=»ÿ]¤æñu¹ËAxÉ&­<?Õ.¾F'…[âÞn&úÈÁÅ ‚ÿn"úâ2Ü1Æðä#@4ŽÆUkóu©†PÖ‹re6†°U "Å%› f¦•_‰ ƤQëGÄ æ¶É 2"'¦-^ ›'l FM#–ü¸µ]f·ŸøOµQ Fw�iø�g F´¯ ºK&p#=Hp‹œé›ÌÁ|F"€&|>` FtíÚKJ &u‰v‚^I¼¦ëu– ¦¢ñ†?Í †êÆCæé§à %fVË&þë½|äwõfpzÇ«¢W. F®7þ¤¨‘Æ ÆÀ»~ºAd¦ø«ãGH™qfáë¯ä~½pftŒàÖ¶k&‘€¡ m§õ †’ ^hÃ~¥"Æ@k3ý\»§ʇÓÐø&¦æ-c%û®Ô%†ayÝ çh^×&f.JÓ zP'†X]‰ «úå>'Fô˜\pD)æ¥l‰x¯j*æz]þ <ÈO•&#½æcÞw-†P:e u6øå.ÆT‘aìsx0&¢Ê^¶ÿ1„5ˆžC2fæR¡tËn7&ÏÆ¡¹*öç7W§¦ 7²!ø9†0î.`<�:æ4až;†×IÑ !EL×<†Õc| ÷Ãý)=ÔºrìZÕø9&³CâÞ�ñ?¦Ð¨x Î` @fªdŠ ¹o,[?†a.K~Q=BF ܪoeÔ¢A&6ôá�HÒ—@Æ©²dPÔFmE†™é(•”P«EF8E›Jûc EFÌ\Ñ ê{ÃGfZÛù«kã8I†ÑepTaG&… ¼ \ŽÎK†ƒÊoÁ6]Kfà2×uN}™L†t‹åKtŒg>¦ ¾éá‘RFÆÑghq(0UæùÓÎÆI:UF~²4 Jr�WÆò™ukc™‹Xæ7EÈKVËîY¦ùÆô_ÍZ5 ¿-$Û{[&,Lú �ErRYÆÓ“Í?<*]f6›sçÀRŠ[<ßÁÇcî2`fn—s$õÉbæóNÕ´Ýq}c¦Ÿ+âÀcÆäLx*ˆqfÆaDz75ågf_1¸þÖOf&éî&8»½h†Y‡)õrWkFy‹ðdÝ$ lÆ&½ÕYÔÄ'k†¨„Æ4ºÚºp­4)—žÆr¦ ¥B0Ä÷ZsÆÌØݰJ3s&m½œL êv¦´HœàÞÀÖ{¦òø²<ö¹x}FlÁ ˶±K�†ú�~úžÌ‚FtnÒ¹¡Ÿ½ƒÆÕ\Þ┄F�”Î tÖŸƒ¦hj d úˆ‚F6†äÎ>®;ˆfã§Bv$ˆæ ˆ3ŽÞL‹Æ`gÊ×ÃÝ;Œæ9 ÌŠ:c�/Ú4·fÿk�æ‚õ!7Á W’†òx O¦:6”çmSG¢Áj•&•jó'�-ú•ÆLëó 4Jy~•fyÃÌ¡Žzí˜ÆZDà ¾D™¦ñs°km ™F0Q¿ mî™v›¦÷/P õ¼Ùt™¦=í:JC1™¦á—0Çvž`¡Dµpx›æMú–µPŸÆ[_D+¥‘Ÿ›FÑ? óˆ4¢&êUçøvÔ¢& Ž™*Ÿ¤F"Ž=×—FdïFó0, ¦† ú Se¤Š§æ¦™Ìyžqœ&ûðOöö¯å &~½%Jƒ¢¦™¦4ðDýÔV®FV p~9§°†Ð@YÐ0b±æ$] Ö)в&dƒ¬ù�‡]²Fü�ŸÚt´Æ“þË vk‹µ&Êx »A±¶f–snYë±·¦R=ú—vk¸F•;ö ˜óeD¶F¬áâHë2y³æa\„¶°…»ÆÒ¯YC|»^¼¼dñôßõݼ¦U!¥ .4{Ó¾&æç¢V©‡+¿¦ {л ¿&-n×ú«”ÀÆCóf,EÚÁfU[úJ³ù2Âfy4%ü¹D§Ä¦>—Ê ®å9î¸æ=“œå?IÆf˜8m}1ýÆÆ·2F³V”Ά†%í+[‘φHìÅ+èñŸÏæ÷Á’ –I>­ÑfÿÉ O¦PÒ�IZ PŠQ¹Ò†µ(2�%?ÔàC‹2JŒ•Õ†D{j'ñ¾ÖΆ´ºiÚeÿû׆þ÷-¨áÓž§2ª+VÙ¦C¯l Ú%ObÚfró÷TN¿™Úæ¢JË`ܲ¢pT™7˜Ù戓,MؤÔù/›`ŒÈÚ&eºà>Êûà&>Q³dª:cá&µ‡kCJ{[â×|b9ð"vã&ã�z !6–Oà†LCÖ¦ÐWøÞ†1hÙËUÙ“áÆ@F�#& ïçû|�ÔÕèÆèG\'Çà0D \ªØ�(G[Ù3 ·×~)§•Il"°é‚*Çb²C¢ÿ•.ÇÒ@Ü ŽõJ/çU`ùY90‡×Íý‹²-1§å·.>(2§cÇBZ0'LÁƒÐâ]a4'‹§2 =¸¼B4g@ëÆ“z"U5Ç/5ö™l"Ý3>'W¼¼_8g#ÙúÝW¿8çÅ.Î%�Á8§*ƒ ïÿêì;Õe± ÿŽkçÇOP¾"Ê>Çz ~@™'",6è4@‡n&‡ =ÍV9CÇ•ÁF4®CçP»GÈ¢°EG“YâÅN1BFgˆœ¢ ðßßAG'HY«ðb«LEÇR€·�€gJG53lžzRjK“°—ûøÓM§äˆ­½,‰EQ§«ã&R:9Qg÷ë: AhSG<�çFÅ*ÇTGEzлždøT§©¢8ë+xdUÇ–M�ö ‘W§ @¿lºÉ€XÜZ Ú¯ñYG‰�>þêUGF\ɰµ1�X‡Êg2uT8P\gâ–ú Æêžå\GHú}r÷ž¯^çaq9.·)^g½Û­8?è6_'Ö4ôGSha‡Tõ#ÆòÖÙb‡8é¾ 2v<]GR®óϯd‡Ö¤Ü¾te'Ë”;Æ%Ñcç7»v$k’\çJ°g$ðÿhgGõ`½¯u»igíJ(«à´Ugå9à©CjÇŠñ'©pPl‡RÝܹgX§~TŒñð_dV°¸‰og©ÛJ n÷gp‡@6Ý mŠj!p‡¨oV ÕµËkÇ�ÚÑK{i¹s'Ð=u?~ûïqçÍ÷ê埮eeûa#>áwgÅõŸDNvÛyǵäßÈ/¹×zÇG3åµ?“…{§.¢Úäöo }ÇC$[ éè\ çG‚¯9Ž¥…�Gƒ¼o'€¨®‚- ñ'Õ݃§6êŸQÜbN�§£Õ&£ùÙ †Çèêi*�X0ˆ§ç�©Î¶²‰‡Œ 4d’s‰¦’ç §DÝÍ‹gòõç ‚“ˌǿI> Á^Ö�ÇDKÛ¬×d‰'z‰É 5ûŠgÆFÏ�ÆA²‹'ÑB€Y³2‘Gí°8×j‰ÇCDyôà�•ÇÊ{� ­Yï–ç-•ë ¹­ùê•ÇàÄBÜ2䙇(ÆïG  𧝋tº0ˆšgâ k‹¬ÍœçÀDV<]? §Áª8YH¿¡G'ù ,Ïõ­¤Ç{^´~e†4¦'êïÜ l°Û‹¦gsôzK›×è§·�Íq‡©§àÓ l3 §«ç"†+¼¬‡M„ØerI ­Êq'ëMI¯‡F^Ê Æ9±G´¯E »2ê@±§h_ —êꢱçÆuG®ÿO§±ç¿¸¸˜‘g·§!§m ÷LÙ�·G°¢Mê4ºî¹Ç¿íª�I¦»‰[/Ãà»çºl6 ]th½§ÒaÜiEz¾'ùˆ¥ë ËÃ>õ*vÁ:×Ä6Kn—ÕRÃÇrëý ÿ&ý¤ÆçGá »c¨ È'öÅ-_ƒ¢ɇð'}Å^bÉ'òZÇŒz(ŠÌ‡6èL J·_¯ÌG6ÖØî© ÎGÙIª”r•AϧÉS/GÈ/$ЧO„ÓØç¢²ÑçÁ›s³˜^eÒ§´†c b|–‰ÒXÚ’ óƒc©Ó'u–� 7*údÓ'v#’L#“®Õçº/ùÀ—×'q¦l ™ë+Øçµç¤úƒ_@ÎÇý<~V(ÚÇÚ)ÝÆÜ't�o ØÜç¦Y£„E UÞ+–Ù–rßšß§Ê ´G ⇙�ö ´’â'<\€ ´<·ãçžÑoSªQæ's3˜«žâ懪Ç;–bÏç‡,×ä­I�jé義< KÃÊêgiü> Nÿðsëg›x9³ˆÝ&êgßáø)}' íþS ½†É"îÇç­o ê]z>ï§Ë¸„Ùq€ÖðçwÝéûF�é§óu'±†-Áò‰±kÞbñÇ�¢–ð´‡ôÇÞ ©¥ÑëGôÙTÅ6qöÇÓ{,â˜ë÷Gš†ŸøLbHñG¥î`2äúæùÜÞ­lbúçï}* ¬+¨û'ÍÉ9w:{áü'Ç-ÊR ž§ý§•µá&ŽÔþ ?X lÿç© ô H¹%¨³1 Ä^Hû•nò�ñ¬úg#µb2£ÉòÈ$Ÿô8‚Sˆ–w§ ҋܬèÛ—P¢ä-ÿùg‰§E„aˆµè‘]µ ™9yP�¤cCr¯ Ÿø HX-žþ'I|òG=€ hÚm�= îóúGÚç‚J-Îÿ§®;OR‹áÞÈ^±F£hˆß7 ‹.øèÛKXóÞ|H  ’Ô±h"#Ê€‘>hʉÕl!MÈuàz ³¦ìXæç´REgiÌ(5“ Áo¶í(Ò–# nLWèµb•íÏ—O¨\Lÿ!È]6æB¦$#HØ~c³-{$èEý¾ æÏgW%H„�D ÄË./&È—Ðéåkø%ˆ¡Î—kÏ(ÈÉ”O 1ý­$hê÷g%å+ȳ† EBÁ³/H)†ˆHÄÝ"0èl‡­ Q W1H ð/ê‘2¨ä‘��Þ 2ˆ™„a4n»J4ÈhkŸ"Ǽµ4H)nh º´ 2Èàì©‘Oy7¨VPÞ z¬ 8(ÄÂ\ u Ãð9¨¾K �ï8H>D þé2(ÚXm8’!¨ qÉüµV?(¼ÁìJ�^ì/èBBgOƒ\:¨â…™é$ÙBˆdŽo•8H§Û±(0£ŒD¨§¬Y aqqEhp@+EtœD(5�†eè ´Ghk•íÿÏãEH«,ÌmYê�Iè¶Ÿ3À;m©Jè k ïOÇKèPRˆË‘‡çLˆá~c ýÞ¼M(`Øb k è N(šÛɹ…H.MÈl™5:á;¹Q`Ö£À!=R(qž�}õ6R(4<xŒcêUèÿsµª®òoWȨÞÅÓQqXˆÓØ$T.IÖYHm“$åg ¸]h›8_Î9‹^H¶ „�¾y_èQ·Zj¿ÿj`È*ó‘ nS$ ahûå[Hx<`ˆÙ¥ ]ÀcÈ=4ç�ŠØždˆrˆ½ÙN¸c(¥Ä¼ òhYþeè ‡l±g(ÿn@ølXg¨1eï�ûKdÈwõ.ß8”cjƒDM@ר;jhÜš ÁÚç�l ÚÉÝã'Km¨¸ËVlÄàmÈäà“ɼ�ÅoˆÖÃL»oˆQé ¬ò½kÈNª‘kàdˆÑÕÚ]ÅÇsˆ~ÈAë�Ñ‚dÈÆå³¢ñuH�t§z4jÔih¾W�ŸÕdhò£Ãݦ%`È58S]GO²yha6ßjc(zH™÷vOÂéA~ÈñÑ ¨(.à�(S$Ãn-Ë‚HŒ|Y C΃èR�¼©—„NKgoæÍ²„¨˜@t»ó ‡h÷þ\�%ª:‡èש]Ù@(à‰è¹Q ©Àù‰HubkAéZˆÈ{_tŗލa’›y0,�ˆlȰša_�(F2ÕGp·n‘ˆe ÜØÐ’(…—È Ò Fß�acá Á—‚�(Üj B rß•=Ð>ØÂc}”¨©áâ×�h—h[ÿ-ž€”;˜È�YH Ð#ýǘलi;šW†­Ù“˜èñ/ž¾nA œ¸´WîÒêžèºòGˆìÆŸÈÞŸÎ×@÷ (ýÿ!�¡P2ñÐW#¢¨�A¾vGâžhŒYCÄÐ|—Ÿ¨®0$SQ>Ì¥H 2œ”Š0¦!P’!\„ ¥HÃÍFµ15¨ÈY°ëué³"ªÈWɬÕɬh¶ãdžio­ñ¶*Gã°ˆE”N%²HFÉ7á@«_³è/§Z¶´ÏÖ˜ †Z´1£ô†Ú½^¶èà©==N¿¶è-_”ƒÕú¶ˆôÍZKw‚÷¹àfm.pº½¹è8õ) ¸8¸è’η½è*V :R­û½Ha‘!„V#@¿·F3�‚Ô†Áè¾DéqγŠÂh.Ø&ôíÈ<ß~Eû|rÃ!b³ <¡ÕÕň¦jñ v$ÖňÑÇwÙxH>ÇH‹ŽW2t¾`Å(mn5xzµÉÈŒAôb™qĨ御±èàÂH£°ÚpÈÌH,T-0¤;fÆèÁîT‰Ÿ3ÑH‚ŠU,þ¿ÒHÞªßØË÷åÓˆ—WJQ/$pÔè&f3!·‚RÕèä&è6@FnÕh^üM˜Gt×È»ªnISAçØèC·vÑ¢Ä׈]þžTCÚ(jšÿðE<Û£%ƒÁý÷aÛ(: ΑÖZÝHR«_0ý_Ü(˱ä wGßh#Q}ù±ÏàÈä"·I#àèØã']dâ(´‡—W¦ãÈÀÓ `Rú¡äè<�ÿà€5äh½3Ö èëÛ刺.v;;¡Àç(•9†»Ÿg¶çh¯T{Ò×ñ×éè|îØ ÅPÙªÞ(ˆ3»e³QÇéˆs£`à~ ÛHò}­®×ª†íˆ;‡[)`åˆJÕ©ÓãÅ*Úˆïßwß ãßèpd“‘|ñèý¡K™X%²ñèÛùïîÂêñhŸÍ†|´ŒrÜhfl«¡Üÿõˆ‰gˆ‚& ÛÈ¡ˆ$ârFÝÈ·®•�§Nø¨ öëá±¾âøˆ`#R ¼¤Å�ú¨¯p+ º´IÙûèìa÷çÅ£(ý¨¿‹ …H*IþˆÑEÄê7â—IŠª ¯8‰XꉓÉH6à�L•)ÀÿÅ剉KöÓ.IÓˆ["ý«æ¤PéÌR 2. äPæ?À] )P ¬0¬e ‰-%AG/ØF éšÎ—ä3¤ )Ö[ LÎð )Þ( ]¿f”ɼ öƒÉmýéæ‘í HÇ4É)fªTÛ÷pÉEÄ,”Ø ipw+…v3Iô¦Ÿ‰˜ �ÆFª ñ:„YM‘ ‹XK�} aÉ�‹‰¢±Ò[I U5P�¸ )ñ ø�‹ „OUíˆÌ‰Dp PƒiIy¾³‡ é„ãd ŽÁ i2*^�<ì"IƒoŒt7º%©³öÇò<,)©F›‹ ©ê+N*é�Õ«•Â;³*‰œE× ¥A2v,)L€… åý@ )©ÁäU ò|…ú)É*‰Y¶¨ é<ò?iº¡ì‚ÿ…?éØlC Èw¶AIr  yvX’BÉŸˆ×þ—C e¢FYOCé­‹W]úE©Í-bÍõŸ—Ei¸ ‡pzZF 8·è ýOGH‰5†5‡î>™HIo> mo,HJ©‰`Vaï¾$K© n:\Ð3LÉ?KÎÂײM©óÿ¬W«NI²OàGðdO‰hgG¸DCºPÉi[û ø�EP©ÙŒçB�Þ½R‰„PAÎ9€ðRÉ;T1RéãTé”ÖªWn×DU)tDH<µ¼UÉ‚î¦cÝz…Ué¤Îå´¸ÿTXI¢)&ÁWÝ>Y)´V.Æ DX) ¢b­j¡+UÉ…Kñ:ÆSý\I¯;Þ!`]Éo éß�ù8^Éñõ5VßÛ¦J !SÏg`­vEéæÕÜ{Ð(oaÉë0û¼µëÚbéεÿ [Çc)K¢2޳‘8G‰òrœHU7ÜJÉ`PžGz))S©r14¡¦h âÛt Äñj¹i '�f!Lèj ¥ß^b …l©M³óÙZrÜmÉu©hFqnéÿl DpTÈt©1Â8Löõ°t‰. =j^viæ_¼w<w©œ?Áÿ5­t)&„²âÒÜ@ué cAŒLz _[Î%’L{éVãÞâ¿0‚|©ò6+…ï­|©Õçý›` m|Éõ@Iùƒ1ei”L+L# €i'‘64²£�éú ®ê„I€áNúvS„ÉFn£R¹‡ Q‡bòý Š)wä�ˆž‹)å¶ÔÃïíŒé2Òzü��)ôù“þJÝŽ C±—Pà¢ß�IÝÀê罎B�Iœ"w â¨ã�É¢¼@\ÊÕ’i4ÚJ–».“É$lGØMm’É_¸C³­ä�IýpiûwBè– à EÜé&Ì—éþ5ðV –)'tB‚ÀÎè˜©Š¿ ¸±ªK–ÉcsÁ ܯÔ)–)�ÞQ˜‚œéÈöá¡û Œ™Iwôî“ÉÒ1‘É;ò¼|8ŸIÙgZ5]Q )D›áÔóÇr�©ÑcÒySÐ�IlŒ{™qʣɃá*g¨å£éhV›Í)Ïí†S¹Çé¤iß™š'N×6§ ÏòÆÚ°<‹i‹]Ž#À�Éû}h§Äš©‚#èMŠÏ­)RT œ/P°ÉE¶þ �óqz±)£=ÌÙ=O²é¾ÞNà�°éØOб(´©¹s àvµ)ìˆ óÉþµ &ÇêŽ�7=· ìÊ*þj`µéùá†ã§Üɶé\C‰D[â±·i¥ ´4ËŒ¸ }Í1©}S"²iE;ëjèåã½É» õÊ"Љêóá}?Í ¿‰švéß~Àiïi b®1CÁÉ‚ÓwJÈÔÂi¼Æ @ëß~Â)Š¡œMŠˆ ÄÉ ‹ƒ *WlÅ G@èzÄI,Å]kÇi‡±Þ{nÄID¥cõa MÉi„Í@ð¤€×ɉhƒw �ÃÚ˜Ë ;nSÙ¤1Í –Ÿ C±ÑÏÉwÇà r‘-Ð)r% ;ìTÖi$q3IñÊuØIÄ%ûjØÉšÄy {;F§ØÉì=Z !¨õæÛI§)ª–\eÜiñj ´òí?ÝIåÁÚˆ…Üéex�Ð'²„ßÉQ–¸ÙQÁÝibs»#wÜ©TF1àŠ—ËªͶ¾ JÀ»�¯ü b" �Ý�*A%SÕQ± ÷–l. Ε?m­.ê˜ݼ& -Ê&T/ÔaÇT1*TYèRwgý.*-I /*d~¿`ï‰�4 á˜a Cä=Æ5*æÍü Òò„4Š¶Çøu�TY7*ºVÅDÏÀ8ê&ØäÐÿ¸H8ŠÆÈ> lÀ.jq¶(‘³;й^0�<ê>”l M=Ê7ßšNììAJrU" _-CÊÄj‚¯¶ËŒCªÒÖ @w:ÞE*ÿÚF ¶ìFÊ�}9-¬Fê:Ê» mBœG ‘†s,YþIj”‘$ä~2oI*DŠ0'�âÍKj 9Ýw([ÔLj£(ü =¬íM Ó� ¥ß�ÊMÊÊ ×â;kOÊ}µé[§Ý³PÊLVø|~ó}KjU÷ þ2ßPJškŒ¹TQê­WDO½¿HT %Œ|hbDwU*‘Ü/#žPê<ã;‡TìLÊŠ�r XË0Yªˆ5ä 3úþ&YвÒ`?ê¸_ Y¨² ÛkLA`*؎ߩޑ8_Š”ã‡ïÄ÷bJ�ö– ̳‚Âc Kjq­ñAdÊ*‰6Û�»eª^B Ô•ófJ£ Åëvã¤gJüCKÉé/h °òcq:fªP'àKXòcŠà”‰>Wœk*­™ª=Ö¿Alª¼ Vq²nÊ®ý Úì �pªâ}N/Y#qоø'ø�rÊåÅdÊÕsêp;˜H3±s bÚ 6K£ÂsŠm#¹—@|tj�r73ªxêý+ÐyBSxÊŵðÇ+QûzÊ„»$cÜÃÚzê�‘è ˜R†ÀzŠ�?Ù”óÚŠ}J�^œ<Ôw~ �ÛÖ!’~ªÆ–öc€à�ÊteÀ(‚šƒJ°à<Úëi„Êá ªjńЕj,[ÔL†ê@WÝÓ/_t†êQîß “;.‹ˆ*Øå²Ä��‰êÝ/¦‰ÿþ¦‡êÇÌ�‡±o»‹*¸µÇ~z¸‡‹Š¤›óA„éŒ*¥EÅÕ%ŽJaÞ~Øê"Æ„J'ìŽô É�êÞ¡¦g@ ŒJ#•*\›H’*›ô–P“ê«œê ŽðΔŠQÇ´Vn�ó•J¿_·à[ó—– Gq[H¼Û– ß®“Ÿ/¶Y˜ $Ç0 3Zr혊·»¿š†*bØ–*†HK… ázÿ0Ëo�ŠOzI ü7^{¢Jy÷Ä££Š�‘$Á¥¿¤Š5¤ WÉ@¥ªÊʲVÛŒ°¤J´*+ ë=¶¥ª˜$â DM–¤ª#vì ©5–s©êSØGAOÑEª*\à4 ákq¦J¦Mµí6Îq¨Šúd7kÿ9§ŠÖ»�7D¿«ª”‰/¦§¤ ñc¹¿©�z°j(Aÿ LN ˆ­Šuk>ê�5­²ŠZ8 ‹Ý³*¡Ÿ˜WŒË�³ŠaÂÇPY…© ×w7^àš¶J4Ù] 3•Þ˜·*K„„oÔ… ¸ÊÞÕI êv¸ªÜ‡Ü#Òº>ºÊd5º +,H » åJ±HrÿWº*#úB€Ý£³ çø±ü_¾Š\5˜/Bï%¬ŠóWEÜý¯Àê�ù¯&å€ÀªùÀׂ«‡6ê:°ƒ2¥�QÅj5ÆB}ïÇJ%ײØÂÉÊåÐUþý®‡ÊJÿ’ã Õ-�çÌê\.fr&VEÎÊ¡U ÍÚ¦àÏ PÆL&!ö‡Õj}êln pØÊˆð…;'Ænتλš7ñ\@Øj‡G9é�ÚêM¬ºØò§BØŠC»cÚUh¥ÝJŸÄsU&˜—ßÊÎáÉZÖ0ÚàŠ‚;i ±\ŽcáÊ0»› ÄÜ Åäj=S^¼õÙåªÂÐø÷›å*‹a� 0øèTçÊpŠTo¾šÒêj.‘ì^—‡äë ìÕÂØiâ.몃¹�2û�‰ìJêk¿ý8Ÿ˜î ‡ÖË:ʵ˜îªŸ!­[œyÜïŠÕRUÛÿ­-ñŠ LZ ƒ˜KòjF6p×€"òªÀ:5|û<óóÊW*]Y0KõJŽÀu)Wbõê±™]?¼õj5L¼ï¨ÅÅó*k&G«&ûÊÓ _Tå°üêS…»ŸgOúûj¸‡ö )IÏ{þJ›Mipñ­ÿê @+A¶©ûJjWã tüo/üŠˆ[}!¼ÛÁKXEŸ 5Oa½k¶Kë&öŸë#[ˆV6髱?›1[Ãëw/Õkª% ëT¸“cæ‹ ë=l ¦£_¸‹¨.%Æð%¿ Ëò)< “{ «£Â�G�Pë=¹§F¨“+l¼ ü{ˆð+SÞU —w ëçI>Á¼¿Ñ«êr'€³i˜«‹– $g� ÓýATÈ€«Ý×ÒÆÛ/ H q.KH\ç® õßc2c‡ë«¬•XZK°öç\{:§k40R7 ‡K8íªY+”k3>¬ZØfŽ‹Ð´= PK‹ðQoOfˆ«  3“4‚ý!«âÆqëõlKæmªŒÎ +7ÏnÈ68'ËXµ±Ô%lß(«¹…ÿHÏN(k1Ôº’Üñ�*«%WÅ-‹C–(o�f.«"bþczâ/ë8VŒ& /këçIõT1ë—ÓŒª[Ù×2«¡˜ciÚ-kx*I�b4kú:T}'›ç0KÀDì 7+|:‡£@ËB")ìÔûAëQZm­òàkAË9[S¾ªA¼CK5•Äèp}£C+ Ðz Õ¶@Ck˜u1ª½Œ@«&¥Æö,wöHËпÇ%Žv¨J+*z¸Þ]*K ØÚ³ÄoIyL‹¼Ñ£ŽrÅÓNË·èx&Ï]åNKSJâÏRþP«ªúËÁHàQKJr ~@R ±°�:Sk?ÌåýêŸTËÐNÚÍB�‡SËŸ öA*Qkq< £ñ¤WkÂ^�e‹WK[·- �ÔWR+h<‰kKVËÓT†7уù[ ¬7²@|zcYKþ ²ñxóH\k]QK�XW+þC­lp9ŸbËÝÒ/è«;f Ó fÚ|Êg‹; ¸+Xng j)SJï�jËÄ §áÚ–1k«*ø‰�|1kkKÆEË @¨„†m«N•w›‰Km«Ù�¬ BóM˜mkªP­¢øÞ l+IHx\@áj«~ã}X¬:gq‹G•HÜ»á«sK³Ë+t×Ðq‹Û‚ æv+©ÎMLµ»yË™¥Ø�o_az ?ŽÜ1V {‹t¥¹y”Êq{ °¦° ê$f{ í[qŠ­k‰ x‡¬0Qñ… PÖ¹ ‚曇ËD¤]™‰ P| ñ僌 ¢ EL¤N�‹)Ð"×oðG�ëñ³- .“׎K§Íx½w‘‹ÌÈH‘¶Lí’k¯§Ãêìy¾‘KöÜ7Œ§E•ëåa[ m˜•«Ž,��c^— —(Z¦÷ŠU˜ 4é›3m¹™‹5†ë( »™ë"sÉQ�I•˾žÛ­rƒ\–k;Oš;…D� \7F»†¶�+¤¦— ê²ÎŸkƒh:’²* ‹ …Jžà2�Ÿ«Ÿ]Æ îžÄ2  _õ~Pà.ž “õ×Ôù‡¸¤ë“'4­eL¦‹:-öÀµ¹k§ëNš.�¬ˆÆ¨‹äBøýG©K[T�ÉæFªË]Ö� sï)•ªËÂ*„'šg¬ëÈG ¹ƒßß­K&§¯ èÀǬk´ÁÔ¦£Ž¯Ëhì» V®ó¥®ëœ/ûÊá5±kÊNVŽ™ ”²‹G,‹ 5I’°«"¼½ c©k]yJ]]WµËj œ­)¥¶k ùÆ;?·«þ‹TŸÚ¸kò@mbæmO¸Ëú-b•ô0™ºË)hF~6„»kä·æ+”¼+˜ÚÖ -�ÒZ¹+xÑêi|¸[½Ë·Þ éqz¿‹Ú#à ·¯¯®Ëé¾ b;ìÁkÉÊŠ àÚÁ‹ h̤aßÍÃËDEÔ„ðhÎÄkaµ nDdÅköEŽOXyŠÆëˆjm)Ç‹`¶ ¬Ý1È«–êQ Å�õÉË¿O¶¹0¾ÚÊK /¾NÆ syý�9NëßÐ Ù…µÊËÙ Ë…¿6ÙÁë;nëgE]^Ï+¹1 cج­Ð«À*8 ¥ ,ÏËi< �Ò hQ °¾îÞÏ c^ÐÄdüÑKßn¼›¿ îÕkî£ 0Õ‹ÕÉÄÎ2gÑ+‘’a¬aÝØ+!Æzï3ÞjÙ‹(Ì.W,Ú«<4Í…÷¯CÛK!ú< aîµÔÜ ‰<2 Â/«Ü«e" \­-åÝkýyÑêgßKö³À)Vµà‹,¤ çYrgá+m!&Ñ©8Gâ ²•Á ‡ÚýÓ ÖŽ¹ÄÊ’ÓË‘š¬Ù¾ÁÃå«þd¯e0‹`ÌKôþ¿){„çË¿LQŠ3ɲçë8Œô&{<¢çKÎdqBŸt±k¹¤#Ñ./³ë‹t0¨Ý³¼Ë¼´ð ¬›’í‹Í¿VroÔ¶ËͪS¿.ÌÑëƒYµîJðËÓ ô .ðËÜ*÷)ÕRaóë EAµ¤õë—¿ŽXd”öKc¤ ¹~pöK^ð�•D ù‹n¢¯+˜9ú‹]y(yâúËÀ²ÏGM¥œû‹Í²Í/Šåÿ ÙeЗIàÈ,õD ‚Ñpvÿk›$e=7\Ç,×K¨DE×, :XvD´,¶ V9ÁÃ,稘>2…ÐÌ-³L¬}©HLùéøßÇI‡ Œ¹Õ= xcý ì ß}²b•"ìÅìJ ‘u Ò#¬] n{ƒä"쳤™F±?y%ŒZ•¬ž .&lH)WQ‘þ&¬âé” ÷-Œ&lÝ­ òK�ñ)Œ…-= T %0*,»Å¥Þ¿âv* 4†[Ó˜c^, ç}¦ g¬ÎÈ-ì­Î 3%IT%ì¥1˜Ì]ò�/Ì!M.ê,0ì™8ä £ ý3,a)Ÿ%WmÆ6ŒU)y k{öi7Ì¢¢c–&=Æ6 ,²;t†Æ’<¬¡+O²¨§H= ÑÇ�‚ )Þ=ìµ…& |@œÖ> "T ÌG»K>l]2�\ý-4AlÕ+Þ ·©R˜A ”¾Gìí CÌxí§ Rï«ÑC,\µÒéì–ÏEŒÕÂ[¸g¿ELß‹Šn)küHÌÍl?õÛHÌÆi uîôJJ¬fÐeÙG×&Hì4’ÅV2J¬V5{î½ÈM ç Ü‘­búN,¦Ok \jƒO V)€·ñ"JM ^¥ð¨ÄøMlÿ*¸m c›R,žÆ/ ¹EäHSLîËI‰ˆ’T¬ÏuĊŸU º-F‹Ø _VŒr…ÅÒ+ËüWL�¾X à5“#Xìð!'¯ŠVL¸Òw†K ZÌ÷�É XÏTlçy¤$þšVÌ©ÿÄœË^�]ŒJä?£…3A^̶Ä$�Aru_Œ©Îº½%€®_l�*)I]€f,ÎDzvÒNf  IƒñhLyÕqH[ iìB† à “g SOÖ*\*h ›8z(˜p6llŒ + çϾkŒ0FÊ{¿mìÉ uª&kÌÞéåŠãø/pL †õG(WqŒ:sºãßïïqì�O™Õ�âp¬çâ`¤WRÕqŒ e¦DR”Ëh,ѵœUbLvÌüKÌ>Íw ô,Q»–\cw,}TdµIxÌþÁPo YvL´ý!˜S…yLñ&; ™$”)| �‘öDrÝ—|Œ5�g«~¡é~L^à'²OÇüŒä B*b~ �G;l›€Ì�ü M˜¥?‚LØ´Pn{~ 5¢°Ù�R„ìÍŽ ÇúÛžyÌÕüÍïŠ&Ò| ï§i!W �} ç¼q%ÁƒˆìǰD?Mĉlm¢È!°Ï‚ì.Ë'e§‹,•”Þš7�ìÊúÕ†³�¬×ƒ¬åÍÀU,ðºrQòeˆ�ŒÝ<{šÖUF�Œ¨c, >?~ìÌ¢ þ‘Ì$çga¹t“L 8óŽÐ¢Ì“Ì—}æ'R¡•L¡} ±E¡z–ì’.½U¬o–ÌË€ ƒøO• "ûˆ ‡ö¡™l¶¨�/ ‹,X*_™e�‡il‘³Ç”"Øœlw²>4Àº²œ,5›�fÈžŒË9B ÂGÜ žì¼|sHJ-�¬€'öì�¬Õ•ùQ¸l£Ìš²ðÛí�¦Ì^“RˆÃ¥¦¬bßà�ô…¨ìbާu³Î©¬U‹ª6Tbǧlš¿X~ÜU¬LL¤® l2E�} H©k¤õAò®LI¸7nÔñ÷®L Þ6�Qî»°ì^�N¡'Þ5±¬¦púîAu±¬œðJÙñj²ŒF?¹y¤üC³lÑ%Ô ¤Í¥Cµ,d¨Ifº‡²¬ -Àk¥sC³,ÄÇÓ÷ }¹ÌÈ•_ .*ͺŒË¡�ÞëûÞ» $ì·£·�¼Ì^�s è“%×È ©˜¡fXË,ÿîœ 2l±0É,žq9°“X€Ð ËŒj …\ÈõÑ ÷|âÕ è.ÑŒþº(|ÓìB†, ý2RjÔ,_8 ÁjÂÔ,·OF:�ÿÓl;T¢ä�Ôì2‹~ÿÞýجn\ i•³NÙ ÂùŃk £ÙLàP@ÇIÙ ò¿¼‰ÁùÞÙŒ)ùD*'¬GÝ Ú?–ù[ÞÌ®¸ý„ž;SÑ,~ˆÆ„ì3g଎ô¬¢âÝìÀwF ‡UâÌS¹5§Š+&â Ûä'›Yãì.¦»…b™£ã¬÷Ø Õ´á-æ,q8ÏËŒƒçÌ€d~¹ ©Ÿè ž“ÌÀµãŽç¬—˜«Å/ÅóêŒæ©+(¡ëlƒ¬�ÐP÷ØélDKxÂПžíŒ‹QÎ1© Ÿḭ́†|¡î¥îìÕÙmò‹%o#ñŒ¨Ù ¦û˜mâì xÛw×Íä¬åòtñ¡] åLpe×LíFNçLRn9t1#ËöìÉÆò Apˆ÷L†ê(ͯøì^œ ê… iølD£-=øŽú Jÿý#cìì3^<0ž¹bôŒ‚x0”9kâlüæÿ»hÖaÿ T<ŠGøÿŒF¬ö½ç÷@­ø_š˜Žh^Í�ô¨ ¯ôcÍ#œ‰˜ÏÄí\ µÓ¢‰M7sŠÈ'²!ío' 3òKmÑ.A‡âž(-ßE섬KtÙìJáךt¶ m,“O ó[ �M~ÏSnrSMK¤Ó\å‘m}$[oœ>m* Ëf¦ÒÍ�›í›v ”-îpоÓìM7ɉïSbê­¿{ÄYŒ±­z­_€Þô1 NMé˰VˆM¹Ð)1õŠeÍ¿¹ GßÒ_�Ot¥¤$5m]|é aÈ@<&mÈW×–' ݬò——¤+Ms*¾:�J./í�ùU™q{«1-Òœ Qí�4­Èú;È­)z5 `âYGÒþ6­'i©s™K4­Ýhkß 7�9áƒ�2‰; �­JÏMè·>�?6Ž  —2?MÂ&c¯µÉ@­¢Ö¾MïÂA-eà õóOgA-ª�mFCmÐ/™ é¶ZMEm¶i>©•H ®{¤×blÚI­ÌyX g¬Jm®|*Ȧ¨LJ­a®\íD-L-Æëž :]H-rH–ÈÌ-©OM�7C�à+UPÍé{Úð‡¡ÕQ 8åŽ[f6BRí ·Ý yÉ‹—Pí=’CÀK™rR-¨q.ö PoV­�»(¤d¹/WMè¹sý>†XÍâáÞ$ÞJ³Xí´-Å (›ù;X­T²®y¯ Ò[ípf^ ¶ä•[­ñ]�­Uw£ZMN¿–ŒC®ñ\Í…ì©sŠí_-Ò˜ä>!‹ÛcM·A€ö3õcíu£»èMAÎemÖÆ# CG…fmλ11•í|g-¤ïˆ ƒØ±ghm¥‚8Öá®™i­ ú¿xˆ%÷i ÿLN¾&°h­…a�ä–ª?l�ï8xA(fem­Ö` ;Vf¼l-¿à¿IŠš2n w\ȧÌÙßp͈s|¡IÕq�ÕÙ}…Zr­®@¼3§ö1q ¨Ðúÿ’Ÿls ¦ñÉ Wö¨ŸlÍ�Æk�*Ÿªv-eîÄß`(½pmeh•Pž¦x­¢O w%¡–sMYœÊÁ.�fwM{tø·ª^{-¡¨%¶‡“é|í±ó{ ¡@Í�~-AmÛÙ^Ú7€­š×ÿk†F;�í'~¤�£¿8„­‡ˆ8l…†mÔ´ 7-†-šIÉú_ˆmm˜ãç?±ˆM]ó« oœ\Š�çrŸ.’³„Š cÛ +%z†‰mX·} ¥^_ÆŽÍÊ´Þ Ž~Ä0�m§\;ͼe�­C3$\J¹�ÍÆ ¿ðö@’�y™ Æ *+Ž�2àA”™4”ퟟ÷ÏçŒò•�c€j&]O”Íï‘ÞvVœ$— Áµx« ®M�­šL ÷5Cœ™må©9g©ò Žíù:pXnŽMÔ&11æ�-ÃÙ SIó�-e—ií”QÑžM5}J�æ@Ÿ ýÝÒ %!’âžÍ{³' Bÿ�¡�ÑŸ»¯ù“¢m–üÔÙÖ4Ÿí¹Î53 Ȥ-4ÑLT‹¥mj’%ãà¦ír[X?5ä§MªC™Q‹l¾¨ 2æx‹d¤©�HÔ�O»Ô©�’-Û²±¦¬®ífW-¨-Zìs³ÔPŸ�Í:aE§¥írmkÓÒ¬²mÈ9: 3,�¸MÊ]±Y¿¸í¯¯µ @¨Èlºm¨»Æ�7>š»�Ì¢a ËãÓg»-Ô� i‡‚½­ÿI‘nå<Ö¿mruEƪ:ëÀm>PáaÅ€Á­ f‡·0éÁ X®¶n¡m‰¿mjoý×É�U-Gþ ÊMäWFðgrÈ ˆ¿±j­Ì-µ¾ºjÿÍ�±,Œì<—WέɱÊwÙuÍ­=áV¦î� ÐíõNŒ /UÚvÐMeؾMùùÐ ÷Ô!ú0T…ÇÍ*ÓÕÎl˜BÓ­‡‹:âþÄíéÒj5†S‚ÖMþ/dÜÒÆ-×mÕÛ-¯üÈcØÍ'_ )CUêÛ�ª¾=Ý´DãÜmñž_4Ü nô r6@‚ÛM­ÞÉZºµeà��dºAx×á�Š’ Á{lÅá-M QÁíã-uyæã Ósä­ŒÄà¿P5æ ìj„šá®úç-Ý7‘+°gèíÆÆ|O>7šè ;VœÌÛ\ê ݈’}w]TèíT˜%÷¡2Åì-‘Jx­ þ±éíÍS–Tàîî ’e¢ÃôÿGïM|Ä2•¢ú¡æM)×EÏñÕÊô­\® õýóð÷m¿oZ§$ãôøÍªú â.ÑÎùmP=sÑèZü­¯¸ ”`ü-F?n¸÷qÿívÞã´ãаîça­ËãQÿ ÜçWO N™ŽN9·"%Äÿ qh‚¹*éÿ­�¯.T`$LO Áw1tαá²oOÍð .pü I»uy N<3†à îPåq÷ÔJ¢ ŽªÔv.9â ®+#€P¡ ޵—Ë ¼nX ßÔà Ž@[ ²XKwŽŸÒ ~B‡'®�'lX­h n¬¼\�óö Nª,•çáÍîú—MGô¹®jùpšŽ×É. °æ\ɺ¾Nõ±¢ÍÇ.~îÿÛËåó[Ž>d% #©›.u4 Æd:N¿Ht°È*É.Gú«®ä#Žò™_ >ø$nâ�ÄéÍŠx$Î8Çô\b×&nW0—V\}'.e}�J>|_(.Z³a®o+).˜vÉSZS`,.Y]å (Éêñ-#•Ì|‰À-Î!: ¯U®0îòžgê}—d1n+î, Š#Ÿ1þB] »<Â3ÎåþÁ ÔÜW4Žª=Zùþ 4Žî� ¿>þË6Ž0ÚH»D37Î,ϸAÂQ8Îâî~-[ý9.È| ‘{Ðs:.@8¨¶*:.‰Mt ~tô<F/ ŽË] =”’š KBU9®­›ÇX]ê?ŽO$ÿÂÅR?N~„` Ý,bK8Nç¶ï¯'e6BnåöW e@Ôp@®¯MYç/oà?ÎóWaeþ9o8~Ϫi¯eFîûfúÙÁ² BÎÏ«]bÍË(IîÏ\Ñ–%“’J®4ƒ"3ÙÿKÎÕw¢ ‘OLŽJT= o ßMŽaßK á6±öK.ö¾q‰Ú{NŽF^ÒœÕgPf 5!AP]{¢þÓH×R®Ä|9‹ykS®Hhæ~sÒTÎ2à: gµžU.µ}ÖYBM}MnñXà°KÎir£íûÉšY.ŠÏp -!ƒ£[î¦%…Ю”\îT|)a…>]®²~˦ò^îx¸8 “_ÎÕ‚ Lé/_Èäã`uÚÐöQ•_®)΂Xü¨t]NÒG’”Vúdî“£r© Jàe’ éÑFYfµsJ [8<Äd®�7ðÖ¨ÌbfÎ4I/æØfiîÌxcáëïÁjîí˜P Ù¼èkŽ=‡¡‰bž^.ÀÐ:|}m_@…;änŽ$ÿŠÜSìŠnN«Øì68ÿ0jŽŽè·a¦q®ò§Õ (†ÑärnMh¿Bü sÎT >Ž(Öys.~{_\’k®)ô•ÒÞ‹ïvÎõp(nIwÎ3ñã �Ä]x.À?ãIÜáy®ït’è|Kx_?bÝç‚{îWpòAk·|ž»e!Óã}ÎÁ&—ü›‹~Žh¸| É(ñHN¬ËZ~´‘€÷Lì¨ËW€oÀá!l㺂NðÚ<óC°ì�rÓ–½î¸Ke[_ãxο½¶Es/'~.öCõb>Ã?zNÄ ;åÈQ/ˆâ,"ÇÏŒò‰N¶Ë¤çâ¨2ˆî[i wV/‰îë~s-²ÙÀŠîÓ¿U¦‰ž��N;±v b›W¼Ž®->ÉÜ{ã�îGCÕÈ»�NÔjÏ d)™‰b®3’p‰;•.“ ÅÜOñ–î¥ð 6TT ™.ÎȵWšŽ Nk¸ ›Ž*ü7ƒ©›N®Û�|qÏà�æ:ºOç™.(¸ʽn-ŸNÀ®§óY£¾ÃÎ=wƒ¾¾+Ç.¶ !¥ºÁ޽"½¼^÷5ÉNÐOå&y$Ên!†䇋™ÉN3À" ¥5�Ìn”ôµÎînoÌn×3Î \ZOÎnf—Ê ,v¼†Ï®‰Ÿç­1'QÊî™§�žT!pÑ®Qƒ¤ MÛmÎŽOÍí _üŠÓnvàx)U/Ô„tö–‚�Õ“¨ë*üب֎�Où=�á¼×{MDzd|Õ%{ -&֨׻ãW½8KÑîTüe© ÛŽAÅyòž¿ÐÛ®šP[çÕ!ÝNÀ �’‡ÛNì,N Y!CØŽ,AñŽŠæàîú,£ï}@�ÝN˜ÿUÅ»ßÎ�›Ùj\4>×Îþ˜À úÁâî µÿ|gåÁY?KòÖ°å.l$G=%úçÎìk‘ÜÊÎèN¿òŒ/ë én·v3Ö>ÁéîÇ_+¬ò뎑ÒáÇÃì®—ùˆ˜3I´ìfªÔß^ãï®ja Hɹð.Û²ŸÑR¨ðî‚Fóp„÷òŽ<'úµýeXðn« 9ÙÇôÎ,Õ�Ð�¯óη“$@søöÎ'ÔŽФ±uöŽ`\:àü,]øѹ•Su”1ùŽ= ‡ÛÉûùŽn­\mÔAbú�(B}6ÖÉûný2ñÞ.Vkýî(a7 ´Ç-íþî±Þžç”ùŽfvãïF?ѯ˜j&ÔóܘùXè*A¶¨zú¤Æ+kkaøï´Z_/3¨oa¾u{¤rOœXjhCÅ� ç™.Y‡™æ Ïús …呵 Ï#|ó±ì*6 ÏUJ\z‚în ïÃôeoJ¨¥  ?àÿà‘e¯2f‹£ÈŠ0/Aä§cmöÃí0ùr9÷osטÈý1{o]Õ?-Ï6B»tŒœ@O-˜>­á†'�Ý#k ì©�Üt’ �E|'*Ï„éiÏÜ—æLu!šOƒ"ŤxUå"ïwò÷§°5î%¯�áÀ‚Pç'Ï*ôE#Š^(ºWCQÕôd*Ï×V´©¿=*¯ww#›s~G,O�RY ÍÏ-�B‘)É«ã�*�´|wÒax/�Û\u}ïm60/ß *›0ä/o·Â˜å4Î2¯‚°JÞZ52/<(hé0-z-ÏWç0"û10OnPJ¡ä7ÏIÌ7 ¯ Ù58�€ú¤çÙ:9o«Æ£ …}p*9�cZ2™?Qh;/[=å Àût‚<¯ p ×öëÐ= 0+Ìøòï>�}ôx—³3Ñ?9n‡yâç;O0`ã}óK<¯AÀî8Šö?Aoa2¥ÊGâE.Ž ûÚe掎oÅŠy‰ #ª‘¯ÜU— Î_†oLÒ*1¹‘/DUûL·�”¯�L! Ƭ•/»‚ñΖoYk5›ž&¼—ÏŠâ Y¿Ï˜�©¿Ö ÿCiZ™ïì!EŒ|™Ï¯2|Ä‹c™Ê³�܆œogÃ7 ÈXÛë•‹@öRûËKžOHù!Aµ¶ÓŸ¾yª ÛÀ¢¯´p3s­//Ö#C5:Á­Op7rÂó¢ï6xån#]v´/�t\+’j¶oF×q ôh|ˆ¸ÏÂý¦!Å@¸ï|”hƒÌSº�p$9Ž©Cºdg §òÌúo¸@|)Qû}¾¯/{¢gÿýÀ¯¨z1 Ò±t~Àdø}Fœ&ìÂTmš-8ˆˆÃOáðu�Æ|Ã/;j6ín¹wÅ/•ÔÁòiÝÆï»ÞÛ\#D�ÅÏç Û ÄÏ虋äPØNÉÏÆ ·éo:Ç��EÌK‰7„ÌÏ~Xò¶Hn�̯ú±D›G7ÏOÊè)«t ËÏ�ØÖó«Ð*Ñï÷œöPÚÓoiw‚`òÖ¯77 ¡!"ÐÖo—ýTIüMKØ/¯Y†$Fs%ÛïzòÔ AÝ›&Ûoó[YlÕܺýÜmêÖ•Þ/ßC^)*ßÏÓ­Õrô°üà�×B÷ü#Õv߯qeî¤B âO>û^.ÙÍ;àõ|‚. iäÏp»³š§~³Ý+ M(ço˜b½ŽZvèOéä W©{óé´Xžœ}ÀìïOt? $¾í�nÂwa,ŸeíOÓµùÐhvïï’=Ð —&Yìo`v‰›¨æòðO!JŽù'ô�ã¢8jÀ–�ô�ãpÐcRZ÷ïp¦«ÕQ&�øO‡ç0®7J³ûoYùª  ûïr6K) $ýï�if 'ZJ¶ýÏf*Tp‹·ÿ¯x½E%¤ýv‹õµ²>e�{ªÆ|þou®$@¨¨°'S b±ŸIÿ¯‹kÔŽ>Ìÿ�îA ˜² ã0‚kK.|¥Þû�â�-B�¼ÊðR¯C ÎT£¸ PAŸª ©_«c �/uÍ * ÕPIJ”Îê-ýÐó+(>Êpæ-î¢Yp”3+šÞËD0 wÞhհ3æDŠ0£¶l]ÁQïPL’nhV“pƒÛÿw¶·ñ°�Q9÷6æKðÓs“gƒù�;Ár¤`{ð±ºpP’{läd¾0*®T©w\2Ðkܺ `®û°©ìíþo¤Pï#³ÈPnp•((xá7 !�•þÓ‹r�ep/²9#Þ ðßm•y$T $¤‚[pì%ðuW“ɨ B&p_§ ¹í“'P\ Æmɧ0�騜 AF)°¡H SLií�ÂAÉiÈ"P`.08/@,°œ#:tªU,�P�ë”a¥é,Я>ûµü/°´¹š 3«)30°›X ùÞýÿ5°uÑü©sŽ’6"ŠüzW=T60a$kŽ!(*9°[®þƆÐ:�V �ƒ©ŠÐ>0èŽ#Nô\×>Уãám¾•@°Hæ¹IBÐøH>àeEP¢6* ášüÌF° ¶ÇòžÌKp­€F`Š“KÐüÕ ºo æM�OÂ!×(ÝNðJÉÑaâbN,x-3SPpK3©ã”n&QF\-ùªL�w))ÖÏT©Sðü�Ú›3:T08 ¢îå³#U0fê «¦,(VðçüH»´”.Y°6ï_ qƒVZð¦ëe5Ð1‹Y�›¸–ûpà\�¡¸9»”óê\�÷D-‹†ÛÔ^ðV:ñ‘qòO^° “ òè~…`PÕ±óÝJZPÓBíب÷ÈbÐ�ÖÈ \W¹èc C_�Ò±cpu¹ @a9eðÕ `™Bfpo$FàCDÇd0Á T¹ @gÐqn°�9£jT§Ó»&êÄjÐtÚÓ×s.lð3f|}£îsm0pÖÒL暈mÐê$>ÁG’opjžcVspZѾ°¾®×q�þËoQÞb²pp*÷} è$oÃ#ÂÅöW¦q;§ó%1!©up•ÐÙ{†Äìv°&SrÚeZvP§ý½±l�vðTQ7OÍ÷Hx�t<^G4¹y�f“ŒÔô±`{ð´¸EÀç‚v°J‡q¦†÷:p0mh¨� ¬~ð°…œ%:Žð¶! ÌÈ^l€pŽ�Œ‹·™8�º—’èBøñðïÁ:†‘Öt¼µÀX„0‚ðÿƒ•‡Ð‚(¼éKk‡Ðð4¶…Èì:‰°3Y¯rBWë‰PÀû» ¦å"�Å1uìÓóŽ0}˜¨5/§�й·{à¾Ö�ð_ù°ÔP;S‘ÐŒŽéòÔpp’ð‘$ÊWj¹“�ÔÍcÒ‹+3’�%œ½ �x²�° ‡2 ¸¡{•°øx+ž—С€³’hzí’ØP#Ærà™ðHoVúÎp}™°E K«…˜�ðÛ!+ÊŸEúœ�.<³j�0ïH…£ö`žðð6ù 0ûu&ŸÐÂÔk9Ma ðU]޳ÖQ�¡½ºÎÇí‹�� 7oÒi¿‘PVQæ6÷^äpaàB(rm¤PUÃN«³¦Vz Q?‘‰¦ð|è$ÿ÷l¤ð¯tö t:[®?¼€ê¹‡°P†5H­F±ð<äQ:Ì2W²p§"Ng ¹Q¶0“a‘s?š¸Ð§!‹Z°:¹P‡j¼$°Iv»pA±¢a®:¼0ÙhÁ ÙÔ#3¼�¢-ÊUµÑ¾pƒ¸Þ¸l«Ò¾0‘ã§:ãËdÀ�®[Ó®!Á«…3œÌ¢#ÂЈ¦Nï´ÃQŠ¥ÆñX»0áCþO¼Ü»Ð3ªÝÃ;wØÈPŒ° îÊ0§8¸ÄÊÐøâhw@,ËðêW»PìôôËPð‚j c[[ïÍã- ¾ iÏP@NÑVáøõÐ�|¬D°tÏð¶¹ÕâI1Òð}œþðÄ¿Ó�üÛ'Fé˜ÒPs�°‹0rÒ�8©v . ¤Õ�nŸ `ìL×Ð &A6[Ð+Ópa(�ÎöÏŒ.{CÔð’DÙþ/pÐP„„º_<ë~ܰ¨4÷¾u!Êð‡N�²˜R‰ÜhÑü?H;~ßTgŠ  Ä7àPó  �P}Óðe‡5ì2ƒçËðÙSsí«ºèãp…ëB‘áoLäPîÇLuräð+–UîÃxÖæ0c’é…^éçp‚Ž (Ö åP>YXçÐÓ¶çGÙe�äà0­®ëbë°8�ÐHIí³mÞÅ î°9¸ìëëœíÐ,dRð\ÛJñPʳҚ׃>óðS‡öÓœ=õ°ögixÝ?ñö°¼^e »^H�ö°”Jû +hv'ø��A2 ¾½‹¢øðkÇBgœ†ù�IBÕœL¤û0‰Ì×?ƒÇüp¥ÇXR�Âúp�\…ºo{ù0wevSÊ‚·ÿ°LÂô ooZÿ0KƒìÍÙOÁÙõÑÜíGÑ(�üà18Ññ¸ “¢š�QÆßwg'¥‘õ– j‘\qèyPän ±Œé,ñu´p QðŽ7‰©, ‘…T cÀ¶8qê5\˜ÇùÑc•Z#lÊÄ›2gX£sÑ›"r~d‘˜¶´!:Ñ5±‹‡E¸èq‘Ñ€€o‡Q=Ø:ÍÉ Ñàç/ ·Ø² ºo]�Žñw2Âf¬�þDqôÈã¾ó±ÆÛ:Ž _Q]l°£ ÑÉÛ8Š\i¦#±3š’¨çË$ŠüÿÃH/ %±øÛý èô/}%Qó�Z’ L'1%$¡­Ö§(})(4Õ³)‘�-]s}#1” V••+±ö3Mû-‘Ûv,üV±.ѤiÏÚ@“Å/QÏÁÊ~XV01˜VG IO911ê×Ñ1•Qª0Qc#�‡ Ð63Q¸€E£}M3qÑŸ‡.àæ5qh¶Kªt72�e…1h·8qôâýTIDe81sÅœÝXvÔ: ‰ÉÄŒ9ÑÔÖ Ö1m×<1Ïb. 4Æuš8±ÄEÈ‘§ƒ<‘¿wUô ,I@1g• ;›2 AQmû$ $5áBv÷À  Ï@Ñ `© ÌW"CØŽù †ÜW­E‘ÿÕY LƒÎF‘›!þÒvd¸Eу5× 4ê|H‘"nÏ öu$øEñ$J·;8¥bJ‘ ß¿rȬJñ·ƒß ƒ*$ALñš å ÉäÆHqŸ�Vt6ìáNáå%‰Þ®F±ö‡¯cdǵN‘xÜ7 AÿQ‘'<ã�…1Aâg!ÀvSQ†\æÄjT±$¥CvEcÐMµ%`믗MQ} g׉�ÃW±¹V%]�žWQà }@ûWX«sJ×q‚ZQ„Ü»to[ñäãz8Éà\ñ1ô€nvˆêCñYsza]€QÈñh'3¨_±àA &B\_Ñ: ‡í¤P`‘ÇFÃù9gb±/u (ËV`qøx’åõzdQ8}IïØ™eq.!³-9(ÙeQ:1eb˜'e‘½^[ ƒÖwBeÑȧµ ªª«bi±ÝÏéŒSc�jQuóÕ«jQLó*unß;g:ø“!Õ\k1‰«è›È#nq²½™(Ÿo1„ÞñÄÃitl¦â™:qQ¾ÙÛñÍ4q±¬)s %RÊ•r‘#ì…qödt‘3ÓMTjauñk{ð ºÔ^ƒfñÇ6‚éÙšow±{ÑAïðÍWxÑ}k¿÷ayñËú£´bz‘!Sð‚ õ…{Q³ó G±ˆßzbÑ9 ™‚�}qÂ&¾e8çZw±*iŠùº÷y±d½/üØÅ€€;rÓùb€‘gƒ�÷ž'íz‘ÕFH¼:FƒñFÛ žÏp±|Ñú!¡›º¡…±Éô# ÝþÕÓ…1{�LGqcuѤûïë/�ˆñÐ>¿`ë=‰‘J{ò‘h‰Zƒ1Ý;(«ÙN‹1‚ìB ö÷‡ñ£ŸL™“\�‘J »–vŽÑCâ¶ ˆfE’1rWs )cŸƒ“±¾q›µÞ6“±/§(Ÿ¬ªbÃ"¡ –1üü›Âm“q·ƒ×�˜ÑŒ»§ Cö£K™Ñ²˜B$£!™‘™:,æ›Q꙱ijO›1dJù {ö›1Üc {ÇqˆžñaðW‘Í=�cQtÏ?*q.†£±|j&Sés8¤‘ˆ›h¬„¥Q©$›í�¥´£qíUá@·�¥qHñd•œ¨Q}y“ö n©‘H5ò³ò“Ô¨„zn yÆ/u«±Ü‹9Dxé'¥Ñ_ Ìö‰ªa¤z¾Š )s®ÑǪÚ¾$0§qçÁ eq(±q)åHšvCî³`‚­x´‘NÕq¢ÖõHµš®&¦‹!!¸1&{% éÐ¥º‘7ï•të�ºQþ ˜´;1¼Ñ5lÔ±½1ö˜Êçv¾<•‚¤%¿1òûõ&w¤ÀQ�ùbÈäó¿qu€Yǯ7ÂQx×ú°ù8ÂQ`ùéÏÕ5PÀ±k‡´9h&ëÂìr-½RƱGƒP ,±Ê}DZ×ö+ }7žÞÈñ¤¶—”£¡Éq¿` ó8pɱ}˪9›—LÈ‘‡–0;ÍØDÌñ§%NÏ®<áͱC$M¬È8¶ÎñÛ�VÈöSÊà™¨bs<\ÉqQÖ‹ Ô×ÐQe;� æšo ÒÑ*â�üÑhvÒmm x!™*Ó1!È q=rÈè¦,\ìÒ1 )kQÊ‚5ÆQ]®Ñ(Øq8êìp),ÙQJ†‚ ØâP­Ú±�cS A†Wñ¼Ñ¯*ØV†ÍÚñ‘£: �ÝqŽ Z†ßÅãqºIàÞNhæQäËÜÉ:Ò-éÌ«ÑË$áéq”åïÄ4Oê‘lD* ký2Rë±Dã YBp ê‘�í4E/OïQNò¼‡ä£6ð1_9•†¡ÅðuãA œËdñæ¹ð!�ýó‘—žø+ò±–¢!î¿Tµõ1{ôyý~¶µöQP£j$E÷ãvÁÉŽ§1ö1ê¾m âù�ü1•í¡¦Â ©ü‘ÜAü ÉÎßþ…óßï¯gçÿ±8j rÉUæÿñˆ'`*Aº²oÜéh1ìÖòþŒS0TR2hôƒ¥°òʇÝ‚!ıÒ7Â� ;$à>d3 2”´I±1Ût Ò<ªÁAìJ R¿†°u5[ �oœ FŠKU òð$ /¶½Ä ~ìŸ�Õ¸ÏÒ¯7ïoÏá% ²ÑJØ&"-¢ ÒÓ÷ì­drÔ'0XÿH™Òu%r ÅÌ´½rZ×\šÑr¿94%waòt…Õ³³BÝ’ÁÕ  ÒhÏXò³hmlô½’H^+D*^D  ö Uòyî#\"²ÚÛéûdÒrl  ¤5íRè*üë'ür“òñ ³ÐO6²~$è±) �hááºòò¿?kö#ìûCaÝ@$r©HÞªbl$òÙÏ0>�–­²^þÁIM’FßôeM|ž*òܹ¹/•\|-’.&] ^:�-a¥Ð ÊÖ/Ò´«œŸBýâ0Ruîí\n1r†ÇXÝTPÉ/Ò) }ª–ð/2Bp çö42幪˜Äù²3²êd™ d:µ46RÍ;¹ @ÛT-òÁ#Ùiæ$B7’{§N4+�ó:R=L#B‡*A;ò¾1o$‹;¢<²/àZ¨‡<Ò¡ž&ìù¶>2Z�žÚ¡D\?²Ë�™òˆ>@ÒØ¸FÎi½@Rü€T·Þ™¹Dr]ײ}øD™1 OiPRG’…�„gfèK2­ÁeÞúsÁLrטÇå>æÔMÒ�²é ÒìNòŠ; a#ÐOò-on?=^Pòj„{îcÖNrRË·‘-ÕgRÒÒ²8ð; %QrÑ çTEûÉTÒæp¸ —.TÒsÊWgA&UñQ µÃV~U’რŽëì¥Xr ð��¨�ÂUò�â_{±þTò¡çS^hÏk[²šq°¼Ê�§ZòCë–é|+¬X’ßìx|$Ͱ[Rµx7E º[_Ém0—Ä£_’¢âÕÉ­wa2ó 5¤\W2þçJ¬ºWXrïŽàUÐ’d’>Q@cwé dò¨ærvî¯Ãfò~‰OĽ¨fr¬îí@õ&Ýg¶�áþÉi2ŽŠ™ö i’V¶ô?ñìÖi§;¼'ì6l² ±`×cèLmR9† ‰rÝoÒÆ[­ï##pr¢¸{Ú€p2n!Û¼ãE¶tÒÖÛ¥[Þ�vR­:.ÑåJ«w’yŸ­ Ix²Õ4Bî˜zòë?Çúù¿'{2td-*´’Ã|阄 =†<€2â ÿ žå¨Ý�’i<ü*µ€Ò;òÏ #.M;€’~¥­&4©„·ï¯ÐKrŒ€REöêD™¨�†•„—o�˜;†Ê c œz‡’›ž¾ ëP9‡²¼ù ôB Š2¨–a6»®øŠ2ýžäýE@‚ÒJT|<¾i‰RO.U•6ʼnÒÄ´d{bÒ�Ò: ì½Kºœ�’'†°¦e:Ç�’t«òÞdd’’@—÷‚ï$·€r“�ž¾ÎJ” :ã ?‹Mû•’ø?q„<$‘–8ÜÚ ¬èº~”R{Úš‚¸èÚ„Ø ��Ѭ“Ò³G+Áp ”Òåº?Ö©À»›R0ï³)Ö—›²Ã–|¨‚ã�›RÔñIó-ô¶‘rœi¢€ê¥ò]÷1•ÚzÞ¦’{þLux³Ã§Rß ê¨N®å¥RÞ*ùpl½¨òM[ŽÉpªrÿ©ŒYUTË«2÷[5Ùä�Ã¥Òø=! …­r³c žƒã®’ ±ñaè®ò¾§]ú*·®Ò§e s,$™­rSŽa’p+©òbyIì[¯³2𘭠7–œ´’±ŽÊÛ_еÒ½â-ön¶ÒÅÓËX _A¶Rd¸¿\¸rëFž³ÞµòÁyÂá8 ß¹rö ÆÇÙ8»2ÚÈÄ3¦Joºr«9 I+ˆÈ½²É>™zFß ½ì¥Æ¸Ü8_½ÒÜq°×H8ŠÀò�Ñ Àj+d¿’A{ ½˜®ËÂ2l ñ*Ò�Ã2˜$ÎýÈAÊÁ2âÙ† þ’y*Â2ÐÑ �Æ|¾²›qDtúZ¸µÒpÑmµ%á¬æW]ïsfÉ’"‚l' ʲƓt ЉuÁòL—º3¾)X:Ü˶)„ÈÜZÿ¸\)3Yp‚höÅ–)SWMàEÞ)¼*3Ûâú»`v-–R {‡ÄÆ.3`N�\/\Z/sh>¨…sÑ0§Bú8ûa1Óõ�¿¡†z13:üRñÝ!1Ó¸U?CIùG2Ó‹R|ÁXw5³8zèù06³ûfȸºP7}¸¾Ka¢¼6s…¢Ì»46³ØhÚ—K,1:K[µ² ;3m? ÎÀ`Í5£ªô;‘;³©>Í~,aû<Óò3ð;IøÎ@³CqeÙ�Œ˜AÓ$0˜M]BSWÎŽ6•zAn.>rŸŽD³`V‚FB¹Eóù9hEðgbEðoÝ ‰D“Û6¼ ] áÿHÓñW;SØ*IÓÁ"‰ä3lUI³Êλ †J Å ykJ:ðR A\;JS“�¸3½èN³Ø�âϬ–KJ³ ñörÌ1rIâ26JÈ¡MsšÝÝÈ ÈKScøù½TKISÙô.sUÖEC1„õ—™ÐJÓݲº–7d~B“ê­—'ÿöWE6ÓíEiW³Ä„âóƒHþY“ó¿(¦«-Z3öÁ¬Ü£ä[S~yÍu:¹\Sò"uâG[sªÜÈÛ±M\3 ®Š%-Þ_“æ»Ç V¶À>Y“t¨¨°]—¤a3ƒ˜&ú¬´^b³Âyb ÷^­cóû©EHÆrccÓJUeÏÄ­´QS"6Ì¿ñUgDïŒ C…µJi“Œ\mÎis`|ë´¬\†lóŠ´ÙÆw�êmó^y^Ï’ŸÂmÓì�Ju+ÞWnS—Í«�gaæpÓSAÄØsp“¸rdcp¦‚ Ž®bródÂå ‚O2s³Å»²öx5sSÊÆQ§„{»pSFcV›Œ–,wÓð6gŒ ŠxDO”v©¾¯xs'%<ìzõ³ž0`¶v{Ó S¡L]|“ƒ' ±¨Ã}szÃ’Óº8t“ì¥üø-3‚SBT‡\_€Ó¥VùbÀž|3Gk�ÓÁ|³Ëë´aÏý€³MLó‚¤Pc„ó)[pH$ì…íiò=Hßò{Ó¨‹ª$f:‡“ŽD~b·ôˆ3$c˜ =Û‘g‰SnR= /“®ˆ™®Ê~1·–‚3[ZâÛºdŒ3�ýåÞO“à�ÓA]Öõ¾Ó}Ž“a^ÁÚ?º0�(ÁÁSá·�3!AƒPÎö‘3-Þ ü:ý�Ó~«”BÆ]c�óÁKRÁ$�”39­xÄ¢¿#Œ³ÊpU$ ’“³7¯áˆ0†¥ŒSâ×}d[‹ ˜ó�—m»Ã“ä˜sÐÏá÷´v÷šöG ¾M8›Óéšž ù™œ“ª‡ŠFLkf�szû– ã4~ �Sè­š ÐadìŸÓn™^ êÝ×»™³1È i»Æ@¡³ÿö# ‡ÅÞ>™ó \ ü¿œ£S©2ñL8Ç"˜³ôÙê[dÂ¥³üL C`1¢3ìy6¸½ï{¥×ìЪ—n•Ód¹�Q?H‰©S޽�¥%‰ªsjhÓløxÈ«“åôP×Ñ)¬­S«ÔEÿú®³øX„ ⌜­3=² Éý»p®S•Æã$r™±sž‡Vë�ik®óg·8ê2& ®S¬ ŒMÁ%´³çR�#n-.´3Ôû’ì"‚‚µSçå,ðIº�´SÚ‰×Ý÷‚¶\G>É$1m¹S�’³õ²s*{âiNÁ뺳­µ¾+Ò½?«5e±ìÀ35¼^µp+fÃsw*<€òœÄ³—`åÓYe|ÃSW’~æ–Æó‡�*3.™8È“†{8 C É“¿V–BYêéʳyQ7°SʳqzJéÞ´ÈËw9Í?2à¦Í“…UÌ4iËÓSÓ3ü …ɧ—Ôs"ÂÓrëÇÕó)�à_ñcDÕ3€ãL2Øó ´b)ܶ¹Ø3.YÀ´tü_�(ÝÔ ô�’�(ÅÃ!”qHܼDL T?ô Ò!´ìtY QT,ò"T~j@ ^Òö>#t% À ÓÛ?~$TQè.Ò�Çë%ôšì»öô%ô6]Ó·÷åË&tefÉYHs(´aQ{}|_¦)t‘&½àÚž#t9‡çƒ)Mb+Ôµ8_�,”F rt‘:-t8¨�§2Ô-tv_®Ðw|/t5ÊÛ )mï@0ôÕÔÁá”>1XÕÚ“c%-”ýúD,7°34¬mq)È“4”�…“‘Þ5ÔÄóÊy®6´kÖ‰p°–d8ÔûÅQLyë9”Ž ´l؇C?T¸_eÕ�šÑ@tOëbë`†YA46œ±ttÀBô;‰p A(ùêBÔºÌÊÆêDTÖµq9CæE´Óà Dm†âF‹ý~6²�Fô´k­O€vûG4-È ¨C†TGô¡< »øuÇH´Òó?+:¶HtÔ™·+øgC´aKó–{àÅMTˆO aIº‡Bt˜2Ýœä8«O”ÅSQʨ P4Nž羨ÖAÔíòDçB7;Bö¡V@¸A SÔŸVNaqTt½Çûat$ T4“QÈÚ&WVtÿe½˜}:EVÔ8)ÑåbX[XôžÚ•»ÍYt3;ʨöY4ÛP× æÿÒU4ýÛ’& l\ôÛGæJË]ôÇÖºñ�]Ô-\6 Yyò_ÔÞV\ 6$1]”™ÖpsWNa^´åeæCZ÷ `” ä°Í]t‡›Ï½ãodT` ±°�ÂeÔ´OÕè ÷§e”-g߬ŒqÀdÔuY¶ ó‹•�h´þ…Ò¥¹—fÔj}?AõÂjFg·* jØSÌß^ k´F}k]õYmTqYÓS;öf”‡° GÍ�-^t ë¹,z�¯p´8uShÍ a´_YØ‘àåbrÔtŒO+»i´ÿ¥uóU]4²ï¹D«8pj”¼cñâ^8rxË�ñ‚óäwôÊT—ñwB1xt·k�öÌN`ÔÛü*JêòÌ ´ ïÃo³áýt´Y›Ôƒpeô³må5¾9Ö}ô\¢§Å•”Ô~ôsâ^ƒÀ~ôKÊ ïVMp~TEæ±e êh�ÔH9z"ýóŽ�ÔëG, M8Ôè�°š· &ìgP„±Ÿ£ï–"�”`«}Ë益„4ùód©+Q‡´u¦ Ç Ý‡”Ù�– ÖõÜSƒÔ�—P€ßM„7;™Ñ<úù‰ÔUÇp:™dDŠÔÓÌ*kŒ´=n@Ù?xµ‘tÀ±ß$åÌE’ÔYÁ~ yûGY“ìYñ Ã%Ñ‘’ôÓs]ÃVËÝ’4~Rå"�˜Ô€T´‘Û«æ�ô|îq|îNžô�ˆ u Jß´k�œ÷ÿ[oŸ”['rOSêúžtÙ97R±gÀ¡ôøP0w�9D¤”Æ:Á¹ÁŽ.¨TQM�ñÒ*¨L#¹!ŸfªôaÏf›ë…¯tØke—^c¯´^K™¬ª5]³Ÿ-Ã!¶T73Ú N? ·”cš¥ž©„¸¨×Ò I¬¾º”F]¥•¦\»´slr !e7²»tÐÕÍ ™«Q½”ýéýîWã(»”³[½ ÇW¼ŽÕ× ñþƒ¿»4fœì§¼°¾t>´¾4ñß»túàÆžxÂf¿ô;÷@Ž¿ ÄtÛ­ .7Ó¼~zÅ¥—wWÆÔa~ ,Ç”jˆS IäBzÇ´4cW ’.ÀÆÔŸšu ™Ì† Æô>™›À7ÛRË4;ªû ‘¾äÌ´0‚âhfœÀÍ´9 è¤ÍdÍ´‹Ñ”QjF]Ï”TÕmÈÁTÛ*4»»Ét�—´:ge¿TÖ³ù·ÃL¤Ó”AW8ó¯=7¿ü«p ªæÝÕ´ÃÕ †CRÕÔ»Ѩ×ôzÓEµtžØQˆ¦T‘ö×´ñµ«b™ÕxØ´ÕQª+1Œ‰Õô½|äãðeÜTcTÅO‚ìÝTør ƪ~”Ý”boK ×ñŽß”¶)\2„ÄHÞ”l�‹N¾*já”æåBòÕ­ÄáÔó¸%´WbAãT›9Å›ät¡ñ’¹ñ¿å4Ç •¦£ìæ4˜µH3UH,çTF½ìÃvãæ4É» ¸‘Lé´\¨ÒοËAê›ÏH 3é£ÁëÔ¾âX¯œ¤ùæ©ì¹�,eÁêôpý/ÇûîÃÜ iP$åVŒÒºÀ5ðóã0‹‘®ðt˜��=¥ÏŽòvãl1Y&3òTÉ5ù Ñþz5ôÔ¢¿Q“™v½òôM £‰ñŸò,Á¾ÂM#óNäšP"øÔÚ±÷…ðMö49ýqW§ƒŠúTöi£ö¯›óû´2»è� ‘ü4Äð áý´Žß–~dÑþÔ©–Vž:ŠýÔA­ç ë4”õ«»( qùûÒ5#‡<x3W•‹{Ê9!?5ÙqâÇ1O0•àÀ´­Ñ"•íó µ‚ljÕ)ØFÈ0–•ÊR +a¤U�×v ¬�ö u¥ƒÆ éCf õ^÷… kœƒƒ 5œ dm€¤ õâ¥Á!áRw Õ¢ mpcH¾ UëmdË…�k5�c½©™<uos- ›¼ŠU % ‡ôXU %õ­¸L*Õ2¡_öšÆµD) öšŠíu'ŠZˆaJõŽ›2<Ú0’ÕÖ{Õ ›c!ó5ÊAÓDĽڴgÃO`™Õõ ÜÖj�ñ ÔP^X‡¹‡u£‡£ b˜0õ8ñÖ5�)ÙÎô=± up≺Rõd,w�cž»!Õ­q¶jØ"U¾mPvz7#²¼)âù¯9%Õèî½9J=D&õKrs.Ú'Õ=2?<Ðm(5+q$9cõ)U©°­ÖO %5�eì B88%u±[þÿÊÁ%u»;÷ùÖÛm-UyêÑRõøÓ.UÜð ÷ñÕ‹/•½ÿÚ´/Õòn�'º1•¸ðÌŒê2µ « ò0u:¤ úmx.õÅ9† ¢Hû—Qu(«Ü @ƒ„…M5åƒvÏ©ËS• $]OOm>SUvF—¦¢ãNTÕVßèS?òV•ؽ †*úÚRu³¬ŸáˆŽXµÛ3 ‘ýÝYÕ$6ùº˜ç2Y•xKyŠÏ[•”0� mdli˜µéAà%Ö°š5Jâú i€p›U¿‚Ë1…lbœ‰ž•þb?�õ¡KH®R�ž5—O -JvjŸµJ.'�i– Õ'Íd×ν�µS95 zº  5Õ}á ‡B·ò¡UÄÉl'¤ µ˜ƒS ©X¥51i%?Ëó¥UÓ×5�ò¹�UÔÆÊÒ5™vžõ'zãÞ»œÕL¼I×böœš5\¾¬eµ$û«5ÔÌx8†K«ÕÑ” Tœ~«•¿}XtR,ƒ­•É1¤5 ô}¯5`&Ýß8bU°•‰p"HŒ¯°5ðj;H•Cb²ÕH‘𠜳•n ÿG]R³•HXú‰M@f´5| ÐÏðØë²Õñ '»_£·Uù?#ËQj¤³Ê1£$\)¹NÎضŹ5uÙÏ*U7»ÕLÊE‡¡¼U‹³_F…—£µu­¿÷OÂÖ¾•#D3 H1ßr±5F¼â®Ê ½ÀõO†õ °Ôup°Õ`&Í¿8˜wÂ(¼PÀÌ1õ¬×î7ûïpÄõ[BYù<é*ÅuŒrûÕ¤ÚÅU«ë¬ <ÈÙVÅ•! ¼¯áÈU Ë·?šÊ„ ÇÈu\,AâïËðJ� ÿßfôÌõù19„Û�$˵þæ)-§¼Ô¼ßôf™äÆÏÏuΟÔgëTÀÏ•�÷ï‰�rÏ•8ʉ Ìq­ØÒ5PÉSfÁh{Ò•l1ØÙ9ЕÔÌä•ÊõôÕµ%êêTÕÍO%¬G»Øµ—KŠž]X ÙõK…’qÚUùäź¿÷˜ÙÕ²ÁSÐÚ#}Üu²S¹ ØöÜ• ý†OáNoÞµæðÂOÙMØu8X>~Ì:àÕ-žp.�ŸƒáM7¾Õ6á•óˆ0°!?þáuÈ{ª1MܵÒ*§ÓÔL–åõâBg·412èõ-Å6»òe°éõ˜Öç—H•ëžd›•šíµ.¥!�5#íÕ 0Ow#�óÆ©QY+›RóÕ$:F~joÐõµbªz&9Ôöu³Ì®ÑöUàç Ó�7­ø­á÷ �ܱïù•ûL÷»�ú¦g�¼…îâúòxL€0Yù•Ýz…ì¦Tmý•¸­Ošé´¦ý5Ñ»n,ût3þuðîÄ1è\®þ�âM Ñw‹e¶  Ë"ÜŸ™øu9Ýl Jc!óUìŠíFglÖ~KWÊË5ö•� ¡o?ý•Iˆ~ƒªb϶þÔ~ ¬z×¾öµ°”sy„ù5·Í{SC§ö~"¢EÀÌ=VU’!üËc v_^¬=Ã ÖÆÕFþ‘lâvæíè‡`úøúÔ‰áâµ26[U²`[¡Ú„'rw6¨P¸2v.Po >/ÅtÜ'bßÉ›6p'“|x$£6‹„Ì Ó×e¶ü¼ö^#ÖˆeÊ2å»'¶ É#¬’övã³nêöÓÈÁ ˆÆ™Öô²%9Í]§¶i¿_4ööi–- ’Âv –bûFGcn!¶«x"×¢Üë"ö€ tìÄF#6íµ{š Wª©EI@>ñ%–'1öZ­�Î&Öº.Z×pœÄ'6 ý ˜ûž(ö_s1* Û±%¶ÇþŒ–!+Ñ6�y"Š%¦B+6ÄË^]5e,ö¦U¾I²v[öÇŸ!$–ǃԟ>ó/vûm 3¿Á)-V‹@o¬W½'–­Ÿ/“Dvf2hSŒi…ñ2Öëh±ëÍ46­~,,n«6Ög› 2š.7ö¤ôñ®•7Þꆱ áY9–{$ÎX¹ü;¶¼úa‘ô‰H=¶ys”ˆ è>vü1› *Õ;=6C/–N’¤@3Å€c*»û@VP3 u—Bö+ w�™œth] ¥Ãüuqð øÎ’t¶~; ‹ãå¯w6Õ5*;L28xÖp×XNtv�=ìÖa1Wt4£M·M§OmaÏ_�FJq–|.¬ƒ'~Ö†Õ í¬%¶·ºGohîî�v±r¨ê ‚ÖSzÄš=íƒvïmé- *…vK«$»Ô÷†Æ7 ä¯>c‡VRYE_g[ˆÖ™µë¥àf‰ÖáCk¢{‹‡ÖŒÜR p”Ùµ‹¶_`fvƒ¥kŒÖ[JzH�>Œ][?T€�VHS±÷ø:ŒVù —hÛAŠV’J� Ïùò…ÖoCB «Wz¯†vXV» ‹WŽVS`Ó 0/�ò”V"Ê3 ® ,‡öJ� ‘dñ}…–Ó|f2ß‹’Ö2·Úž^EH†vfÛ^·Sˆè™Vå_ Ý–þ†VËÔØÃZ�Þ–VõyÕ¿��–|‰“lâù�ön>iÕúž–Ã(¤-@} žÖ$ d‡}Ñ7žö¦|4ÏHÖŸöÍ”˜›ræ\œ|E\;tQx£v¦±0V#3£VË`.%j�•£–L¶IÇ­�£V{ ~M%S§6‡ažÕÄÆ¨6Ý‘‚ qÛߨ¼ä3I_•žÖ¦ÐÙ†�«Ú„aÞP¬¶*=ËÖ|˜¸­ KŒ/¤jv®–?¾ã“ì‹�¯ñVn‚�&«¶ƒ8< òÞ}9±öóË™í½h!²Öˆ$_7pʲÖò0�ª��@³7ç ó¸,µV'+v2ŒŠ¶–↕¼�j ³ÖoòN½0è®v“ML–NÏɧå¬]AíºVøû‰‚Ó0”ºv Ü„«�j¤6Jíë„Jœ¼vï÷7‚åçŒvç9#¥¼�ì¿6öʶ # uÀv4Œ› ‘üÔð¶–T«øÕý\ÁÂÖS©š‰.ÃVÊ^:-éUÄÌ®>•“6˜I÷BY~žÆ–7$k[+‰ŽÇÖ*ƒêDÂàÈVÛŒ ¿ÒHÈym: —MÒoÊVÑDe‚›ØËVeÖåZó—c•–Ì*óÄgbÍ–wQU í÷ÎÖå$ð§ j+•1EbR¡©ÐÖ$Âî Z[ÝžÑ6m1•Õ±×&Ñ–ŽÀçx”Î?Ó–÷[ÙXaÒ¶²”þ áwÕÖ�$" ¿}U„Ö6M vqÕVn£JƒB÷3ØV)æ8cHFÙv0¿ ȲÓ6+ÆTò]Ù©Ûc>@ø.A„ÛVõƒ Ò–,Òv?Ð^Ñ©¥Þ•§¹‰‹ËÚ–Ö?�e†iÚV\ÊæßUáDáãSæ–6Ù¾á–w½$ jŸžÃãV�¡à @èÓÖE؃5Ð?åö,0d„ÙY¨æ¶u ‚÷&­ç¶{´}Ž`3Oè¶ ‘M�¤Ô/àöN 9V RÓVŒ$•F,Rë¶M±}§¡s–ì6JEÀä%Gívyep§6]îöXMO5àcáç🞠2ð6†§¨—²>ÕÖçþ¦É¼vÚ¼î¼ +ƒóQì» ƒákô¶»¹ÖÉuô6 ìqqöö¶]êü‰Yxöv\U f˜F¿ëvfõ?^Ñ‘ ÉçµT ¹$ú–Ûð›~¿š¶•¬sø=ôèV©¬ãeø—ýÖ-�ê.£ @�Ö5ÜŠ<&™Ë¶(pò3´ÔT×ás”®©EóѶqÙí�#÷”˜ÑÍÆcuWÊø_EZÆ7Í})>tÀ´ÒV½’É”vvá7™‚í ‚9¶ÐVnÙáÜ(OW¿cièúi wJš©ƒ°Ÿ w#S8=ÎÖ n7è:kÊ ×zÃ&QÇè×gÑšx¥ýªVn>œüŒ¦ WrUhÙÙ· %ïð…Â`Ü«Ì Ó¨]×®$SDÃ.·|‹¢ }Ë·±žó ÓÁ5y÷Kæ„ ì™zæWZˆY ‚ÉÄ´×Dî Óuß÷qAö%X[è·˜ê «C{·:€!×TñûSÒ4Çlÿ5Nsl­W Úá]Ôç Ü�‡7¡ÿ7ËöÈ –9 _ר‡AN !7ubÙ_õ"׿ 9W_#·ßé_skÎh$÷ÛɲîÈ)¨%0}²FÑu7 î^ðÞ¹'7ìǼ ¡¨’J(Wþ¨И¾)×Ã(œ ¯Œ¢'×�¾—ztÛø+—Å_¼ñô)÷ÑŠ­z»*ê-wEiÖyN—.·eõƒJ#¦ä'·×fn)ÖY0Vö4 &æEº0wÛä0¢ŸøK.w´ hz#Õ<3·G=s 즹�3·4¦JÇA'wš_·i_)÷ѽr‰Çš&7epÁNÂεØvä&�ZÎÙv"ˆ¢_h÷kÚÖÑ›¾1¶õ!7bÑD&¬³Øöæ¹”›Š °÷IÑïú­>7iè ^Ž?w;g`èR@Wh�é 7`í?—ÜÚ"Pd³?—­/5 ì æÞCWjÿÍk”ƒ›D×Ô#kå w>÷3¤X¶ùFw½}§©ÒÑG7wòæ¿/ HWü¥. °8ºÖ?·8â "˜I×¶[G°Ä”›Eœ–¯k¸‰�L—CÙø er~M·(ó�”ƒÝ�N— ¨ïýƒwü"]_ºW’ûõm§Q·‡Þ¨éë¢ÜôVbâQ²¬ò»U×+s¼XuºV½ÿ"$ZtX÷ÕQ“r¢Ç[YwkôÀLïΔY…™ååë)»–Ÿt”§ Ê×\÷ÑK,¸YU]-(‚�+ýñ.÷ãöBùlŽ_÷ÉÁ¶Ûfª=_Wò½üI·†;awÂù{…xNAa·¿? +æýDbw—q‘ ’G¬ódWüòÜCeÏÇeê¸qovb—VàÐØ&g>sä¸~æ³f5kÍùiwy@ÃÉŠÔácטYÎ`73ƒW$ÛL"×�{¨hi.nw…Z «"…Éo·6§ |×ÓÝp÷ˆ´¸ œÞ"Sq÷8( ]A:fp4> ->¹$r�7Ó Ž®ÖVq—æ¦]ÖÔýu—Öä )ý(}v÷A—ŸO^˜Xu·e]dzOܲxw:{? �â‹v×§Ie~2årwrÌú|Ð¥'v׳Õ#²+<Ó|׎‘ m €„}÷’¥¤Âš4}W«]ªöjÔˆ¶êÓ�>ö팀žû è#ËÏ�—Ë…l¶6¨‚WþÌÞF ëƒ×Î|ß  e�Ê‚÷ÌÅ4Ϭ°ïƒqa.?ã2†·F–è ‡ŠLˆW¿Ò èÝ/�‡—¯ZÉeû€wƒî¦°);t…§”ý �T‹wT·¥Ý‘p…×I"ËÈü­®�WKs`ò*?FŽ÷±X¹óû,�7ÅãýxzÇ÷g'ò3+^z‘·K�¸2¸Ë—’L�ŠV»Ý’÷g¦@iðzî”Y_V4Ñ•7WÂvn�Àð–×ä bQ‚'–wH_ !‘r�ãUlª…÷1ô:j ;­� fË!¯iŸ—¬ó>¹=˜¡÷€¥¨ZB’‡¡÷HVŠw“Æ£7ñ‹¹Ã÷ ¤wër~–Ñû¦×š¤Ù6×§—Ä—Pñ[=^¨½i© ¶T馗šÁ Âz}¨wÒ6ŸçvN´«w‚5'{{´ù¦×C€¿2göªwz )µÆ#²®×ǬrAÒì¯÷–­Q bÒ1«°7�,ÊÞö\°WTcEKT4²—žÙÈ}9.U³÷Ž˜` p¸Mâ³·à=@‹WñŒx �ÏÊEX¶7¦øK9 ŽÇºvè�Rµ]»—ýe– B‚ÝØ¼× àUÌç½×ú®Èk/¾—=Ĉó½×ì=RÄßgEÀ—7¨Æøq…Æ¿7Åɺ0Ú+øÀj‘ 7[dÀ·Î-õ SÍrÒÄßÚÏdfÊÄ—§D $ ¹¨Æ— ¤Àd…*Ä7= Ñ Ö ¥ ÁW•‘ç�_¼wH%ŒŠdÊwñd Ar‘½Ä÷5GõBNuÌW,Ù¸@�è÷ºkW…k™Î¼ñųÛxÎ÷í85•KáÐ7ž£mÿ†ÚuÑ·™yS üG¿Úї͹è eÕ¸€Ðw™;Âþ!Ó7ů¹ºÑC¾7lt_ÃN×7nè®™¿Ú³Ùá¸S·=©ðÙ—ù¿þóFÛ÷^Q•V¹FÝÛ׺< á02Ý÷Ï:;øäÿÝWhŽ� À¿ßWcŸøAnê³ß÷§Qµ „qÏ0áWÏ×hŽ _á—)„špͧ­ÝsÜ}dÛùä×À¤K 6å®ZrÄë‡Ù÷¦­/{TŽ<çw…u ´fóÐÜ·-F[*J8¥êwd~ IŸDð÷FM fj¯Òñ7oÜÐ,à~òwä• .hŒó·oÁSûm·ôô—#‰ˆØÏ ÷÷Êù ‰s÷·!`¬­FHV÷—ܶ„ ñ«û§ú÷TooèÅ¢Nû×õ»æ&�Bdüwgb4O³âûD®î®ŸòþWs'‘ÍÎÝ8ÿ7 ø=G0§8ŒeluGE3xv“7ï6 ú7±¿Ýƒ9^‰Ø[ÕO|mV/øWO¥±É![8[Q/ ýeï•8pWØ SAU©Òg>oÀ¸“=��Sz¸(ß)º³Ÿúø_ e#ȶ xàœˆ!‚ Ù xhÌ LïØ@ ˜½×ÈÀdÜá—õ ÔkX¼à³o¥¨ðxÏ_]?Ž x77˜& sXmM Z­P踺E-êKNxk,cƒ{L8V{"7=ÿâ˜Îj3’}º¸[lÄ ç{8�X¶"Õ󮿏ŸJx{9 ˜Þ„=k•øŠÚѳ~¿˜"ý‘ qXÚ®{½ÁÐ¥˜œ�LtWáèøJ�ÚÑŠØØ�ð±�Œ!¸§§[W!BZ!øÝkI „FBX#ØAl^°=÷@$8P"£(+Õ%8OYŒ<>Ùj%8zÝþp(ýØì‡‰}j°YÖ6Äé• sØ•ª&röC¤÷wˆx=t×*¸Ø(çJÉjj¼Ø93L°,úÔ-XPúºcˆ˜o-xŸ–d ù*Üý)ýŠýV¸0Ø–˜À£¥P£1ø•¿@EU!1�01>}ñ{5Ø>œËX(ü5øàèüJâ¶7xýƒÿÊÐí7øR™¯úá”5x¦ùho­:…€ï®Í:õ:¸*'Ö@ªÔ7˜§8÷ä-$>xyÊWKÖ¯T?xuº?ɦ=Bø’€¤¡�ãVCøCSϰ½€ÒCØGD ?i:–EXÅÄwë’Õ)EØhz5¥Ð§dDXùÚþzè�&HøåÍ” }í×qKøe}µ‰fîOø“Ê–»0ïDPx€­ ˜bÈQÞÆ¿ÌvÛ§RØèåB ï¯&ÁP¸cz8 À¦RØDÏK;þUØîÛ' cóÎVlwmͬ# W(êË)âYUÐ>Ùm Zx„² ¯Pï¬[xÛÓo ®{ã"\øócž Õò]¸Ì<_2ÞPI]xì é zä�!Z–#ë]°|“`xîÙI-ûÛ\�ž»ƒøbx59Ö1¨5bxf»t[îÉcX¿žB ǺQ/aX$8åN­Jf­×O]‹ÓšgX^7‘†ÿphxQÅìÔÒ}ÒiÁ¶ßœ.6jxÊ9 c†gk¸Ÿƒ¬‘M�(gí7Ï &=@;mø)žÃC�ìIn¸WS"o'«Ž_ î*k_8:\rÄ·qØaäÞŽ©Ócøf}aÂáìMs8/´  k¥`nsØÄÇjçj³‡uøLËÿ™«š¸Ý†§Öh´œ8ž—� Šaí�ø>.Ð)ü�ù˜˜Ì?‹Wå7˜žØÒUO ŽA˜˜CiÁ»Œî¡ø¡1 À†Ré¡x{ÉF €:ôÀ£XRË £¢¤ø*·JrèD�¤x€O¡ š'‹q¦¸‹QݶÏa3§ØAc *낦x¸©3£œ«˜UyÁ޳#«XBZ•RYƒY®˜DíR·ÇȰ¸ïe|ûóèH±¸ïjÙ¦¦è²8,o à`Ëœ±8Ð%“=n´œb .d?®µxl>³w °´‡Y~8�Ÿ€´ØŠÁ<7Rc§¸8ÇŸ�ùò¸˜ð­üd¬e ¼8LPdNœuÒ½¸š6í 7ÃïU¾¸,(ÉÌÂE¿x»óÚM¡À­ÈšŽMcÁX‘NY V<Á8 ÷í÷Ì=¿8u‹yX™nÀ¸ù<´ŒÅØ.äM©ÉÊÒÇøÅÿ,úQ`É…L<Ê÷’ɘÖjkl “ÌX÷M‰­mÍØpߤx>ÓöÍØÅ˜±ì ÌÏø˜£ø èé Ϙ©Ùa z@Ý¿Î\wÊú©.âÐXwÚ†=FçuÓ2�\…÷Ri̸„'£gÛ[ùÕ˜ Uy£‡R{Õ¸5k«A#½uÕxüÕ"u¨,F׸KíµaÜ:ÙøQn�¾„Ù ¿ >Ý8=X® ’l Þ8k>‡j¿à¸Ânå ÌóÚÍäXåd aõ: æøo"ÆúrnÁço U½ªO/ç˜=‰r 7µé˜ÙSm’7%êØcÍäSÕšgëxù´ÝÆeëøõMj(¥|çø^"t9öðïxªª;Ûé¬9ð¿é­–6*†ñ8çx ÕyПò8‰Oÿ´ :ÎóxÏ’pP�eÌó˜_Å­ ûßì:õ¸4àöõ4%öø‘D<°Ö�›÷ØD)m!}-òØ~aß áâ΂ùxZ+:ç¿A,ñX9:ºKØÉ3û¸Ð%mF¥šü8E…“«žü8·ØŒ ØaßþÓ?~4¢^ñÿØ5qõFIÏþ8·“¶éšKÐþø×úÞ ×÷VK™QÀI̽èÿ8@w2F -jÙWeß �1ÿ8V+ª åÛRÙ‰“6Lÿö™þŒòü#|4™’k®Ó~´,ÙÊÓæKäõ:¹_üv }ÃR Ù<ؘA gã`è¢ Õ Y²„‹«‚œ ˜NžoÀŽ ”à §Ž 9ã˜EHˆ2X YÑyó”n…Ní� ¨—‰9d�4.€ê ™¦½Î:Z9𗇪«ÓyÚ"¢NH§«@9'÷ù¥ò˘�kyÇ�\I䵿ù4´ñDN ?YCMú$—Ù™¿BŒ.ÖÈ""Y[  ‹ ª"¹o`Ô@0%ÙŸµ…#n'&žÏ ñ2t&Y‰¼@X^ç¢%ù¤JÃÔ¹Åè)YÙ_ 8S§¡)ù>¢· €íÆÇ+Yw� Æå¨0,¹wë× ï~5) èC$“©.ÙHc‡�u.¹=~{»Óùø0¹ÍF.y-î&ùÅ;ß*~29Oô�èR‚4ÙŒ À­ðs59õF'`ܸi6¹¿7fao@¸6¹)Š ° W4ÙDjøD\ˆ9y¸G<³Mã:yú˜YYg ¤:Ùûùöá•Ô:ù`—� ùCaá;ÙÑ-J ¥DÓ8Y¢¨Zw«×c;yC»É´€üA"r´1¾ÅíBY1Šî LƒewCy/ íý´ªB¹”vÌ 4è )AÙv½UÜÀÜ_F91¸päÛÁG™”¢ä²‘íâH¹ ¼Ú þm”Gù?ù¤y†±Jù“JZI?�AÙVà‘s‰ƒqC“õÙ~vzM¹fî?¹ä ´OÙbó�èn�YPùVþj‚_OÙ€� ‚REO™ƒÐ‘^_ª±Vy¯œ4*bW9êlízÉWÙ†UC¨¦,’WYÐò¥ —ÆÇVYiKZÛy[ù·‘Ʊ\Ùš×iÄÀö,]ù™½åŸ]í\Y�>aþ*u[]Ïø)ë­`Y 5€Z[ ßck·ãXÓçdù8ƒ›¥+AšeùO”Á…  7d¹Êó•Dd×gÙý% 't–Éó$æ Au%ïz©û>"Cl½Ú <} ×^-‰:üec Z”Ü$úe†J¯ï^Í /£ï ²— šŠØ ñ±èŸzd�c:V¶ÿ À×´´¶ƒ ºûÎ:îL� zÆ>bÆ*üË ZoÅ”žž•ßš•ЪTwñz LK›ÆXl ft}Ä�Æ·z&úfè®&_Oc•Ýk„:Ô}8 îHhÇš×dA^:¹šÄAÊH¼Ú÷‹Y CTÉH ‚£[¦ZÕ݆ rüÃåúøìvµ4eöZæ÷®ÓáßÚQæÿ·¥º =IjVÌ:‡›Í~?„"oÅ¡d8Š‚"º†º#*²4ž"z—qG~‚%z}üª–/ÏÁZ�"¬Dòœ !š½k™ÀÉÖK(š M w,X^(Ze�ÿO-•lÚ©”‚Õꃒ-¼Ñò V 8},úF�‰œ7¡/Z^ ®$ {9/+rØ1Z�÷�ŽY(#(šÇerv1í3úÅžX£ª3Å9îqŽ'5šÇ 08L†O6Ú¾Uô;Û›7úNú%ÔO:ú²ãñ­Óש:Z<õyK‰<šoc­ýÃ=šïÅù3À„ =êR9A°‚»?ZÝX«¨[Hß@ºÏgqÔTÛBú˜º:í¥ÅBÚ—lÖí”>~Dz7½ë�õåEZ.Å ·[YŸFZTù—µŠ·dJúŠÿ‚Z‰ÔKz±ˆ/ú²³õLðdÀb²qKšqô´sd�N>Á¾ ô~øNZbýãfÚ÷NZÍù“쀮N…¹ý·ò´T*:‹ t3UÚP†\ Ò÷!!Tš¼ ; ‚`Ò¸Wºw ±âPíU:¯}-vj‡YZ#®à|>TYú b˜ ŠÆÏ¦\úŸ‹Ón"Ò\šÖo %dV\úš ’ì8ó_Úe xÚíbº±“g¹mFcúRÂu‘¸HczšèÕÌË7bbºñôð›FÞgÚ¤³Øæ_Öhú|œ<ÂÅ›hÚ�»@^dÊjº~]Ô ›fânkZy§Æ Ìa€j:œ£iõá�mzˆÇ<ñftƒm[ÇÍyâWlúÑ›«áéÞjnš÷Ü'3%4òn¾ø+XÂ6rÚnT‘Sg6lVd“  |¡mºçØvïÉ¡wÚ<ÿº ‹ZîcwZ8Õãã÷ª~yšÏèš eлfyÚ¶bêk‹_•|z1 ½[_¢}zTåú°Áú½¥xgü¦Ú€ZžÚµùlÑ‚úÒ?ùª~É„Ú{_¹^Ÿ@¢…šX@ {j „£$'*„ûÁ‡: v³Mw0ˆºr³z÷á‰z4C2 Ï•­VŠúº!3 ÀF©dŠº­¶Ï_·Â8ŒZj,ë Å¥è�Ú4p ŸvvôŽZé~ïëú½øŽºbù µ”Ã‘ŽºñÏ l¶–‘ºn%p ÉI;’8  žZ�:0›ÚV®g³ŠZItêÐ�¶é•šL÷è^‡£•ú²» ±�טz‡4Í8‘EÇ™ZéöŸ÷™ºä[µì1›ú¯¼ …Ioᘚp�Å áü~5�Zv5-Ó°\�ú.Üß�©”�:sâ0•ÄŠ‚ ºŽúM %/çV¡ºáúÍ^ëïã¢úlË ÒÓ»)ŸšÑé’ô´ º×Ó;.)�:;jC<Ìm¦ZIîºû´ÂU§ëË  lƒ+§:Æšh Ø��%¨z…ê OÆ�ªzVjÕ¶cÍ«Úm¡b3¢ºNÍu#LS™­úS¯zêpü™Ú VW.دZk§:ÕKjž:Þ3¦'ä^±Ú‘…ä}ou²únüÿí‰ßW²:üÇ ½å´ú²UŤ˜=mµºÄÄ.âÀÒwµ:Î×û?ùˆ·š|DÒaÕ ò¸úåb#Gô)X¹Z") Ÿ5i1ºúré9önC4ººÒ†X*H!¹:ãР× ’µÚ³’ÈV³Zö[�™<ï¿Ú�`Cçik“À$™• ¹¼ÕÂÀóÄÒ3>Â8½¶Q£ÖƒÀš�¶:zš$´ÂZüD�š)fÅÚAYNS8-7¬Zuæþ ®ºê8| )­˜ú@JDÈ¡‹!±K]7iÉÊz[_¦°[neÊZIr—C x¢œÚK¹Ðè�®Íº/¢+ËéÎ:›Úpdîý™lÏÏÚîŒ#(ÆÓàÊZžú¡ÈG gâ~ÊÕºÿñÓ5\æ&ך6þäA™‚4ØOc$õ†Â*Ù:vV ;•ÓqÙºt9P-ŽÛÚ|³/ÜÏjIÜZˆ+ÌmŠgÞh|6 dõõ©Þ:Û—·à©…_ßÚx¢IíwÞ£áÚóßÔ-Kû×áÚÞn ©BŠä:ǰD#¤ÃæšÁ‚å^ɹŸèúúr§¨­¹éÚëóf\ë麮Ü#ß j¢ëšë±~i:.êúA�• ÈžšíÚ²�šíoú÷ê:<è st—¾èzŸõ ô9„�ðúÚy´á?ìºrÜô K38Gòºmšº .[æëóz{à�{ý˨ðšãé,X,rõú9=Þ ;‹ÎMöº?&Ó•¾«ïZ’/ÃÛ ˜øZŽwŸ )ƒ=ùú‹D—¦=†êú?PT{Ô´ùº O؉�÷µõšN ïneZðš§�ž¼¶?þZµSwå0ÿZÓt0 [åì7»ßgÔÎŽÛ.ƒ³á2›ùþ2RL-»;Ç{Ç’¦sùú¥éËH–B»ÑÛ£^)¹»ó óÚ®•´ûÙ¶¡Ñ¢Ù"þZï8“ÙÕm›uE?|,Œ Ûé¾+³ʰ ;¬MX ¾“]ž ûDG^ ¨li/ ÛüýN ªktÝ;D†û­Ú¥›®»¾ˆÝÏ;éè…g»P>ûþ£Â0'á%ÛIø kßG[‘G^”y1»†;™¨×r›Á=Ó¦î[ÖËžá¡æÑ[Eƒ Ínyö»Ìµ?=iü—û´' i›€‚›ªøQ³†+;|ëyÞfs ›ÿø " JSÛéeñ¼ÎýûÙ EÞ–»£s»{>+TïúñêÃM1Ùx›çÊy]›"[O›ÿ mà•à[AàŒ@mì�$Jõ÷ýk¾ó:�WtSá]öš^{2)¤µòÚ´÷¯b ÇÓ(ûÐ7ŒdF<½ [ËÅãkÛÉí*;ƒ^ k@w%+{ö\Ò1<Ѹ,»ž4ýæPÿ(+›îúÐ ˜VVò.M´‡HS.ûõjiªQC¸*»0ÖÑ´”ô)Û±ƒnɆ3;„ù%aºÜ9{ÿZç‚Dé“:›s™F/t9ûï¥,Y¹®ø<›ô‡× Ÿx’•=;JâÚ˜½�?[Œ� sä×@›øM žCÉA»0O3›ˆ Aû;›Ec?ûånáPØÖD»n©Õ÷qV E_­_[40Dû,¿É˜Æ%ƒGó…î òtÑA{ÎCjCKƒ–?;ìP�—�A#C’‚] L»ŽóG0K�ÀM»Fž$«G”uL[Á-®øÛ÷LOÛ´ òŽûDP[@ãZõMj¬¥ ‹ºF¹M›ÐX T›1ápÓ{XTÛKLE žDXX;Nü§Ù6–2Y[©8I®íå¹Z›¤ÄþÚf[eV xD«Á[:£ v,Qœb{5±XZf©¦b;í´|N�bd;)68êÑ'e[ÍOñ uþ‘ôhiyÑú rhû 7UÕQçk{ðö×å¿k+¬2RìYÏn߇‘¶Î/o[’Ýs:üšznÛ²È0!÷án»íþì`Æn;OTù™lS�t›QÍЇv;2ŸT}ÚœWv›ûo·)}Ðx[ø¿,HÔªy`/×ãk­~zÛωM´ø {[ö^q ÷;ícz»šÿ)6±Ü}ÛjØ«ðmóJ€;‰A|�!�»öÛ6 ±½c‚ûžÆYq¤'ƒ»¥!)xH�À„››|=÷jjë…{tÒñ0|……ýö12�s¬‡;ÅÉîxø‡»‘'/<0±µ‰›â c"B}ðŽ[_AKXË�;¢]ÔmêQ‘›t¢ õŽ�Ø“Û n%Ü‘•ûÓ ®Šþø—{gtÄ §âUÒœÛ ]Ç Ÿ6.¸ ;¾ôéiÑ)¡{‚þŒ å6’P¡[È ¤~ )¡»äÓ´e$}¤û&ñtÆ�¢¥;ë©o_«œß¥û53Ί²x¡[m�7áÁt-¨»Leá ;ú3ƒ©[4V!áéópªûhH�±·�«›lÓ`E+Ö"®[™�± �»VA¯]mÙîe`°û‘Æ "r±[ùÏÛ”uæî²¨fÇ€§{³ÛQˆhm$´›Ÿžâ_ೈÕè6¶›¾ïLN›·{+³%옭¸»u®¢w^·[ëÂ:¾Ð”¶ûH/mï\²¼»;xAý“0x¼[?Ä�óûÊ»ÛÚÊsL(>n¾Û!ØŽFÔ¡¿û:äsR!ïÀÛ’îlDýñÀ›#»à HòšÂ[]‚‘TÖ™iÂ0€÷b}òÄ[V1$§Å{lSàó§ Æ›!¡ópdøÂ;Rm låóÙÈÛÞ�"¹ÒvÇÛ§$6¼ÐžYÊ;CÒ*ضÊ[ØÇöÂ`ž¸¢½y#§Í;:÷‰ÛóÈžÅ;R&kŒu¶‚¶Ûù©T†>`Ð[óä6Ù-ÍÆÑ[½ÓF Ep¯Ñ;Ù€wb¬¾Ó›�ªãån¥ÍÓ»:t³ âJ®àÕûü5Èý‡§@Ö;º}Oª+¿ÑûÉ‘Oô£ˆÜ›NO§ Ç�ØÝ›Iya@TÜÛ ¼ C;ãß[,0H#`÷à;4Ø Ö]^Ý»kæÛžÑ¢â;MÚ’ ¶V½ôÜb*Bð“Žjä;³! —t˜~è[Âx¡ KFûéû;  2Vû컂 0«)E¥í;Ó¶�0šî{&�<óu`î. ůØ&óö‘ I$ô›Íb� °_%{ó;u9«†*ê÷†Çú+Y#÷{%órƪûû‘ãÌü�ü»)ZŸÿåTü[’ºá ±(5BüÛª¨ßm "Øÿ;A·² -¬kDþ»·šk}³d|QÕfΚ|< ¸‘Cè|Ø÷–úÁܲ.Ù•I°Ò|‹…«˜úì w# ߬Ѡü2õ&y.z\�èMëéÂØÜ$$‘ÓÏ#^q‡p L×J¼6÷h‚Ñ \r“Mî_¶— <¯xzÐû¬ 5 PΠB|À¤owJÉ´|í�· Ç\h¸ ܣ⤠á,OÄüx<5=¨ IÜþæÐ ÆeýjÜz$<¾°c¼¼M›^óÄ^\l΢Dl= ¼¨Á®0 �=œµ~rHŠK¶ <Þ{”÷é½<ÙPÔ„Ùò×B|»…ªñ¿Bü6‘a8ŒËÆDœ»*„=ĦZDï;½N\Õ¸‡üÓùë y¯JVˆÜb÷ŽØÊ…´ �fx½<íMõ ûfƾ¼çäP™æÂÙ¿üØ$(šX¦aÀ6€ô/¥K9ÁœØ¸ ]*jjÁœ0Œ ´wžúœ/ÜÔV²n«Äœk䀷´ÉÅœÀ¤+�ûÿæÅÚ 68 ÇÜ?Ö=�äïzÈ|¹[ô?2sPɼ4(RZ³GõÊ\]Šñ 7ë¢Ë<Ä‹®Ë,±–ʼ{p{]3ªÆœ�[Út­ßׯœ_w[îfÙêÏgq0 GÁQƒÐœ- ¥´~Ñ3Lߊ€Ð\ÑiL Ÿqw*ÈÜjÒë¬(¢|Ôõ;ÙÜÍö¥—š>Úܲ5(‹ý2vÛ\ËuäÈø/VÛ\aPƒt—Óݼ´B#ƺ™Ù5¶gFºÁß@HvÀüÛœ~ÄÖ~uˆyá¼wYØË‹Wuà<`é\…æoã|QÀ¨•ì§×ä\‚S…nÈÐå|³WÍ ë½å\©¶�¥ûé|ˆêIª=m需K•Ôvë<4o :Š~¿ë¼imCö9�í ?}Ã~¿î|é_Òv1ûï<®›h÷{éîÝÐoL›MP+1@öäÞƒ-"Ýɽ” ìì63Ý©i„Öbo¥4]J~'0R‹d5=ðOèUœ‚5½DD¿·áH>]ÉŒª[ˆ.]ç·M8dÂk9=7Ÿ^ p¤4}=fX°û ;RrµMõ"f;Ý�l£&<=¯íÄ ÛyÄ>]C*AYTŒ?ý� ç:µÓ”.ýuÐs¶ã£û)<†6ØêrãB}Í—X ÀøÅìCýSžª;QmD�Ö|nŒÌE]2 �v`F]R�½aeÜlFÝ.¤� Xl÷B�ƒ6=;¿B}X˜hQƒöîJ½!€í(KTJ0X˜} ÑäBýú‘ÏÂfA½b j‹ø·¢N=}W„ü¬O½ç|—dÂÍO=8Áž ‰å(|QÝ.‹e»Í+Rýãšø�‚[8SÝßÔ%§×<Œ@=Œhã'U�wФ `ë}±V}V�ûC©2"WÝóš¨ ^QóPW½B¡Õ‚)ëÀYÝ,ܦiR�õÜ7že‡&[�uÿ!ùiŒV]Ós®¡]½´Ã) hNGG]]p˜Þz7³]]Ýäô| kû<Å¿#Õ„ó/}žôßÇäƒ(ü<£Tþ NÒ-½hì"öъd� >tè d�±–ŽTìî I}¥•I@RnÓ,]G^f7ɺhÝ£që%r²k=º˜Ö³ÈÒœRÎgûÔ„¹oý¹Âw¡Øpýø�@¡ñq�ÝJ? ³6³š"üOìÅSëwu]þ_ªN‘Éw]\šÎø�¸w}5‡^Õ�(y=P©. ‹m“yÝ+ù*B_GŠ}=°a$¼R‡~=“)a<�Ý—2 â“À€}vD\þ—�5�Ý�óÂoUž!‚ÝÞ‹ ø8Ãú‚="ÿ°õa€êº'ùUÝ}…=îž… 2T;†Ýf“ ê™6„¤eP)ï0ˆIú `W£È�=ƒÁ©v—º�ŠýùýT Ö„üヽ>)±èjðŒ}ùÃì}¬‰ýæÊ®×zŽ}ýÜfÎ1£5Ð�=ù(]�Ž]æZQ:5-(‘ýc˜ T}="­èoz“ª<bA�^”Ýls]DwÁ•]Úé �]Øä–ݔҲP(ÿe•=S¹��ÀÁï•=vA æ3K˜ÝRèŽ[Dׯ™Ý1è`˜] \†(ØÀ††}°Ðve©*™ô îد.9 =&*{€Œ¨'¡}f’2íEÃ(£Öu%¿ÏJ¦=·±§É“¡¨Ýé¼Ñ  ©ý RlîaíE¬½‰ç ßC¼¯®„%ßÖ1¿®�õÆ „½È¿°�¿¨šws�Õ²Ý ¼³õã7³=ÜPTbù/¶½¬6z —E˜‚·ý…Ôà hF+¸ý›�ØûâØ¸]+Û¸»ƒº]°ÉÝrŠä¼�°_JãV„�¼Ý‚膦ì©t¿Ú½¨iÆ4ŒÁ]‚–G $óQÄý9u4Ï«ÑMÄÝW þw©Ä]µ8ÉcøRÊ]²0“xŽY�˽ßF’ºá§Ï=f XwqÏ].F”MÝuUÑ=Ô3/Ñ"ƒ€Ñ}Ç»~ƒ×óÓ=*å`À]–Ó}Çâ <-Õ];ûÄ ²Ó_ÏÕý¸)�°iÖ�Ze9Í(%…Ø=œ‘B�^£ÚÝ.Òûs„Úýøs ¬lÛqÜý`{ãÝqÛ=õ#0>¿]ÚÝUZ®]ß�¥už �æ‰Óà½I ÷†Fá½è5ëJA,ߪý9,Ñ|%à=�H[s/œ9ä�Ä•¡)åiYä]x|‘à±}¥Û=ø v. Î� ¤;Xæ=%»4I ê�`šÝ<�Œð}NhjïÚƒCð=9Õ<fé3nò]ó›jD¬Ö%óÝ©“ÍSÜûô]®AYÁÃ5õ�݈^–i£ôõý=Î, h;Ì÷}l`U†/Ø÷áñÔTp:÷ý*n ½SB5÷=—Ù¥ ìoˆÛùÝd!»ŽYzTüýæcL -­ò¸ý]ŒªJÔy•Aþ�*‘— Z¢gÿc6H DRxfú={»ÌÜû}žßÉí”þ�N»Ôú…R¾‚ ¼¬ÁrÞÛÕb^€Ãý½Nñò½PPþZÑCàÞaBÞ©3íÐÛ�Ä~5Í UØ~¾Q[…VP¾ŠžÕ±ˆû Þ킽 ¯rn¾yLT4ÇH6·ê”ð>Óy^y_žK=q dF^ó~£™‡XÖd¾gÔþ šÄT^&ö I±Õ%ž˜?–Z);’^‘¯zugÜþWrN Nß_þ+’øk«]ú¾7 r ût£‘þkÝ/!<—Pþ#©ã†Se-~. •e š >ZÖ�ñ ^b¾‰ŽC§¶·b#ž8ã 6\ûþ&^3bœÚ@kl(Ô{^ v : (^Ãî òÈÎ\*ÞÒ‡‡_ï’,~EuóN6H·->50‚”ï9.>ÆÝ¤ÄØ /¾¹ì<Ré¿%0¾„£W«S[R.>Ø­uÌËÐ1>E~ŒæEz3~NlZ÷,¾ã6>¾Iûù_7^‘Vôzذÿ8~ À&ÉØc9Þ½ ”14—8^hà§â;.8ž:éT«ˆgz<¾‰ˆÓ›’å:~ÌÏ„÷=>:mò âJK6~¼ð$'£¿àAÖJ!ð£ZlAþúy  }›Cþ`|ˆÀÓcC~|;Ùá™¶½E^ƒqR¬þñEÞÑ"òÍÕ5G¾_»²·YDèG¾æyÎ ¯ZJ~æ¦î%¦CäJ~3öY¯ÅPL~ÙM8äN|êMž ß9[þ�´Nþ8'ÚÈ™£ÌMþrÎtúã­}Pþ}z8¿ßP^P¢;ïJpéQÞƒïÛ`‰"ãQ>�Þ1©øùRÞÀH" :WO^R^æ1þÒXÕV.SìV^DjGVÜ©V^ ŒSX¤Y¾i“ üiLZ~IZ7 ‹pÝ[>ù`×çsx SÔ·º§�`"( A¶ýa~VT ;-!*`žçL¹ ucÞD™Å:Ù˜dw´‰ »¾Ne^.ê#l€cþ�kÛ™žâg~J Çg>Œ¯w�£itjžúx ‚¿l>÷‹ÿÓNJmžöi;{,ön¾S—Íü,:¦o~�Š6 û2Ép^“=J'KrÞÐö"³¢ps¾ÖX(߸75tÞ¾š¼æYxtþe ´ »¼v¾Õ>AŽ#›Îs^üsfcÏçxþ=�µØ a€yî.Ò #Âx |~èÞÔ  ~žØrjNt>�(é¦}0€~iíš Èù=�¾BSív¥·ƒ³¸)ÊSƃúOK5°?†ža¿D ¢oÔ¥‡ÞN²Óá³>†¾ÿˆI â¬B¤†¾í�ð ~[�ŠÞKWF<Û�ø�þ+pd ¥Û?]�^RQ Õ˜!®‘ž×jèÄ–v’‘¾Žg s�Þ�¿çRNM“žØNS+�ò�•ž¹jî¼3±!•O]bçÿΖþ<6¸êÛ±˜þðñCÔÍ™~œw•"-Œ²›~¥¤Ñéšþš�>Gá¢!°@Mž~0§g U真҂æ +à骠~B ¤Ft¢ž'ÁÉïdò£ÞTÓ½u娖¤þ7ÕÑgÝ·Ç¥¾^*»$/Ûפ¾ÙÒeZó§¾KÀ( Ó~x§>eþÁpÐ&w¦¾«åàúqŠªþl2W9}~«žq÷) ƒ?ñ·§ž(Û•ÿwœ`­~ù¢/PçšÐ­¾ü~” «·J¥¾' °¬z#¥^1B>½Fɱ• ¹Pzz±¾|„=bQ޲^ßÃì!ú•´> ‡m­šxµÞ‹d •â÷Ö²~Hf Dªsµ^ž±ö ¥Á¶~q’k �‚º¾Äp" ‘Þ»¾ìG± ÌY¼5æ‰ðϒ¼žmðþ´ͽž‚B€‡¸¨¾þýqò >â×¼~úÊ;à̓©ÁÞ‰£¶¾.Â~-x–ŠIÂ~W<ûMµò-ľ“¼›pSR ÅþE´üÒ¹‘1Æç¬`šG(»þ€Ñ„ì´H·ÅþEž÷Éž¯cõq!0×Éþ1ßv±ö/ɾ¸7´.³×õÌÞ¼Ò�úÑ` ËÞÙÆ@  +—k;¬Ut]Ž´ÑÞæ0%ÃsH)Ôþ”éZi_"7Õ‚Ï&#V8OÖ~W‹¼Rû.×þ 2ƒÇdÜÖ¾¶1ErÁì3ÕÞñgB;|BPÚ•20 ¤·ºÛþ=,Q¸pbþÜ^SP ßܾ¡mÌçrXïßþJ½f ß~8 àèÂtãÞw²zmQ¿ùêþŸ×gŽmioêä¼ø¾ ŒìèèM!wzì¾Bá82Tè§ë~FN(#pïÿ*{!�ðž<óŽþŽùñ^7“?�™‰ò^³ù~Y³òþFÿhi¢ãYòþxüŸ®>W8ô¾YÝðïŒ×ñöÞótNÔù÷^^ = äJ;zøžÏÜÛNrVùùÞ�ƒ™ 3—ÎúÞÜñP‘�A®û~¯�½!› ¸û~βý J+-MûÞ¡¢X +ÁP§þ‡Œ aEQ÷ž@‘zŒ.¥?fè÷Âm¿RZ¤ÄNåä_±¶D´ç"_Ê"k¿_£ŸghÿX<“ŸO\þ{¼›?ªMNehð} _·ñê ¢ î…Û£kŸ ¿½ó?"|†ß©–ûºž0ßN˜{¤Åàkÿä¿ý¿ `ß;¦üˆ®€ßÓwáVjÄ-¨élyoû?nñ± ÄwÀßÝo[Á‡¦"?ƒÐ‚ ÄL\#?ÀÄÃE¦�|$ÿÈÈ*¿Ï¥#ÿ •�E|Ù¾&¿r�±"ÄÀÓ'ÿŒWm(Yp(? `lµ /�'?BzÔ>{¯‰&_ } aQÛ'?#,0½öE,__¾ˆð¸žH,?N~œºJƒ’._æ¢ îÖ ^/_†ëYQ¬U—/?SOscòÀ¼/?;zt¶+‰ÿ1Ÿ‹èÕoÛÊ 2Ÿ*®ƒò(ì$îÒÐÆ5ìŒHÕ>$5Ÿtš Ø‹žC6ÿ¾sëm(Xf51˜1 „q]Z9ŸY+ Œ»-ß‚³ DôåN<ÿwyÂ(ß?:Ò› |4´…?Ÿˆuh(í®‹A¿± ~">CßiÇ€wADª¬�]Œ¯¡Eù[ãu“âóF?ÞöI XÒ0ZDo‡Ø€ç¶ßH…ž|Ò=¼LNÖ3v)”€M¿êÞQÑʲ.Mß!ônÑ*òªR_÷½-s€S_Ò¯ jM€T_ÝshŽÆU?$E ñÃÓKR¿åx@ ÷}ôTÿªÂL .|XŸë…iºÑ\3S>Ò{‚k+¬Zÿp{¢z†Æ‚ZDë «ÖOE\ÿyU?<׆G\ÿµ¥\qK€^ Yg /ã?c_Ÿý�4 �ºh_ÿƒÐ— Ìc¡™[?öáÕ“•_ÎÌ4)Uc¿à"Ÿ ' ú,YŸò¹ñò ÊÀeøÏJmô|f¿àçÑX•fŸœËèèè·çi›¡´X? ÿiŸGì(~è‰l_yZ.̇ëºmù^ ª6-énßJˆè:Gt�mŸ ˆ{ hžñlp?øÇ­ ±ïdqßö�: o‡[ÍqpEYBY–s_�âQ™ÙsR ÊYø]s_No‘CµÏo_ªZ2KýíwÎ/¹,âÆºsÿš§|Š`ávŸÌ)KâWzú© úI3š{?íÊ8“,–|?ëD; ÍYA»x„žË³ÄFl_à ùI6ŸiSèúulž:l¿!P+x’uÁt;>4 ¸×;‚Ÿ¡ Y �p‚_ Ì©ÇØº«‚¹­JÌÏ.™rŸÄÜÈ^=Åㇿµ^oÎëˆÿMИío¥‰ö ›j°ˆ5Sy º—p[‰_OnÑ=†ÂxŠ?O5�€#[ˆß;®Gi¾ˆ?�‹æ¤ª<Œ�?Óvx?@½¹‘_â Y ŠÐé@–¿þé4Å-º¾–?ÞRy¦]Û~˜Ÿ:¥ú73š?À E0kÿš?mÃW |vœ? çN K›_‚@��s<›ßŸ*û9Ÿ8&À K¬ÿÝ(•Mæ$±?Ó³²§odÞ¯¿�™÷;uz•ºŸ^[• 4<ªÜ»ŸA½ƒv²„¼ÿ•îo#a>(½ßï$B5Œ½8­é Òüq¾ßÿ$P�± ÀŸOm° Ÿ‹øàÁ?ôbafQˆÁ?Ñó`ÞÖÌ.À_ðAg"8Ã?vŽ0`ýÚyÅÿúï& ™C]ãÆ¿Uq¼¦9»Ç?¢j�ùÇñ"ÆŸ ’¹œYÉ_ÁøúY •øÊß >' Å}W Ë_O�SÊNÉPÈ_rgu=PÞFÍßü� LLoBÎߣ‰ì ˆÀ´¦ÍŸïÌ·KœaÆ좨ˆš+xÊ_b¡i­ðnìÀŸ?Ú©�|~”Òß­$Æ$³ÝÇ¿îÓPÄ=×'ÕÿÝ�Ôt52Ö_ +¬ÖÞˆv׿n†O‹­æØß`XÂSgÉÚÕ*~‡¶u¬“Ú_xæ @qÛßû íºšÛ_…¢v;Tg¡Û?wû·^V¿Ü?Ÿ\R˜ïÿÛ¿bKsnÎÛߪ, èÿ"Û¿a�¾2Yâ¬é Róß�ã® ¡ã×dä_:ÀÓç+ª’å¿þ¥ Ye¤½æ_À±rç4eðæÿ̪Ö©­ÌæŸ'Ge=wìÏç_¬³ýÎ êÿõ¼ÀÍ7™ê_ÿ/¿ü6àë¿�6qäú6}íŸæÑAT.UäŸædÀržï?ŸTý_+É€ð_HûAªûññßgå• [¶ò_ ã“—7Fî�j:LÆŸ¬ôŸxÉj›dN¥õ¿2Sˆhá]ô_€°³!˜1n÷߀øÙ‰µµÙâ¿tqŸs.öxùÈJÈ µ<ðù5x †ª°f›_ i—íÔÂü?®:¼ôê6ýÿÜÃ)Ð>áŸÑ�ЊFØÿ´´%Z) !FJ{`q5!od=)ÿ$3z ÿh}ÿÿÿ0VY<[aJ A>-ÿÿÿUÿÿÿÿ*VÿgOZxe. |fLEu Cg4,K`"`-W(Nÿÿ#5{6Dÿ\i)[ OEÿÿÿÿFWQXNI s :-XRGrJ~8\ucLq;zbG\t9M#-u ZM?wqr [ÿÿiygAUp3;#47z\ p.~jÿÿÿÿÿYw*'Jx?0N,Lp 0Spf@wAD-7O,1ÿ=qLSÿ8Xpÿÿÿ;: c6-J1G1b4ÿ?ÿÿN(.d' _CnYb[ {ÿ[IXÿxoÿ#-{5;ÿVÿÿ~0ÿEK,FnG[ÿÿÿ %ybIt0Vÿ ÿÿxbÿ\#Z zZ,ÿ%`* TDrE&ÿÿÿ)ÿÿkÿÿuDAÿÿÿÿÿÿG`ÿKB6{2ÿ2Iÿÿ&ÿÿÿL;P?rN4_?`> hXÿW^DÿQÿÿÿ{5 ÿZrf\ÿÿ!nÿÿv~ Db:ÿÿ#.}2NpqÿÿY-FHNÿ#ÿ'iÿÿuav #]^|.!ÿÿÿÿÿÿOs-!f4*!n=/Wm|!lrF)IX;Zd5G;ÿÿ+\ÿÿbÿÿÿ+ÿÿÿÿÿ*W3:)8JW/$9Aÿ5ÿÿJ1ÿMÿuMÿÿ7ÿÿ*ig0ÿÿ%@"ÿ. ÿG.ÿ]mP2ÿ/CANs|Oiÿÿÿÿu1ÿd+(`ÿÿÿIÿ*eOP^ ÿK ÿ(9ÿ;ÿ&O/<BzUilx"r. qG}^zoYL9:ÿ:4&78ÿ:v( )=/,(kCJV:{~!jUR|S:9#G sTT !9;v"~">2>ÿÿ=?RÿQ*be~-" dÿ/.F*;TRÿÿÿÿuv.O^*D@ÿ3Rÿ2kkD0Oÿÿ?/~ÿ?9f{Wm}CBWcAC FN2%h<Z>^UFÿLwÿu"]n;mp9Rq[va|Wq 7u6+CAXQ Mh9DjJbDH[N X4{E1a\t;Eg&75-EF_cXdS6nJa-puH;Oz*FO)>KVYÿMkJwla)L%qq9| !'ÿ[E*Av`}QR I{u 4r$)LoKbqlwmgW i&)KN'8 8 BOf ">IXqTFkV e;Fm0-[q D t2l47OKb H.SZcB?uMoK N&L*5fvv\qQwMz84**bLHHJ?C8N?{2F}Cs Vbb\/SlJb'O;hkO5XYQk9 19PCNig7:mÿÿ@SÿdssO_Xd{m'h;|3k m*U0!ÿ]fmFXF5&G8ÿmq>ÿ:I:BdJR/OFZM@ D:Su=]UuF@5C1<%..ÿHÿe)ÿÿÿÿcSws$1]!T2nzYt".m2PeEÿÿÿhÿÿiYL" & Moÿÿ' ÿ" CÿE^BÿÿÿRl^ÿ$ÿÿÿÿ|ÿ`ÿÿÿ}7J5Cÿÿ3mzÿÿÿ<ÿ65ua"9(vKP}/uGw x^xÿÿÿÿ AN9p0W2s 7y-KIÿÿÿÿÿÿv`$!=] Wy%Q ](C>F!4#>;ÿE0C#p]W(+@m+lO`KAS~I-osÿ5ÿF7ÿÿÿÿÿ:*ÿ(T wmÿÿÿ64 +4ÿÿ*l$Yÿÿÿ 0fc`Su A2E)(ÿ`],N,@ÿXÿDÿÿÿqu@=QK -.3K}0mzt)RJ]Xzrxn +m7m{}ÿzÿrQÿÿAÿ^ujÿuÿIz$%D#!v"ÿÿ=JbÿcE"ÿÿÿU|ÿÿ/ÿwz@iÿB8ÿ/ÿW/: ÿÿSQvÿ-6iDÿÿÿÿz%upÿb-ÿtk$)BMCmKSsmÿH,Kÿÿ@.hÿckT~dZJZO;KS.R|>6sWÿÿoÿÿo%DpÿÿÿK1.ÿ?~FhgJuÿCÿÿÿCCxHB57v(a_"mHr`!q mV GJO)?lmLÿkOÿ9ÿTlIÿÿÿ [[yr?b72z"Mmepa'jd :_Q{ÿÿÿhÿÿ @% ÿT(1 ÿÿI K15hp,pCZÿO ,(fXÿdÿq[ÿÿJÿdSQT/f3IÿH#ÿ"o15cG _Q*wÿÿÿU+3~U[MX(qZ` *wQ>Cjw2P|f63?{80ÿE"ÿEÿ$(g-ÿÿHÿ3";z,E*x'8$qAÿÿ{ÿÿÿMj"@rÿÿS*ÿÿ#*wCÿÿÿ[P6O E[C707y'3-F(*k"wg+Q%?z)jZQ9(ÿmoÿY ÿÿÿÿÿa/NB1q s &Hÿÿp#ÿ ÿÿ iX`^m68:_9?{zylM1Fp+vLy>ÿÿ)ÿÿ[o 9vcep!f yM4i^PE bRfA7ÿOÿc ÿÿÿÿÿ8ÿbx`ÿÿÿÿÿÿÿÿ--Jh:Rÿ_ÿ=mhÿt%} X'[*(!ÿÿÿiÿÿÿa5ÿ|"JG($qJ ÿTÿÿRGRS-ÿCÿÿÿÿÿkÿÿÿÿPhYfÿdSnÿ0tC9O'S4B.zzÿM!*kS`v'^<|E 4mh 4"Z" 0u'g&ÿÿÿÿQYÿÿÿcBJvZaEÿ4hI'/ce:B_iN<rbgFÿÿÿÿÿj'tC9'q2h%*`~H@p#FZQG~S^XQeJ}A]1Qs e}YYM^@JÿYÿÿIoGE_ÿRT\oF TbÿJP@,qyL%iÿÿÿN[Kw8ÿÿÿF>]CE.|(_|\Dz;\rSl2ILV%(XjW y27cu /AsÿV/z97"pÿÿI?%ÿÿÿM8dÿÿVÿ&h\:>ÿÿÿÿÿnÿÿÿÿÿÿ|ÿ ÿÿ}04npÿÿVÿÿkaGÿ[ÿÿ=<>Wu$ÿ=r[I8ÿ]\pY3._vLÿÿÿ[Qc]wA} 0kp.9 hxcw4 N=Tyÿ6ÿk?ÿÿDÿj$Ly9m[ÿZLpOHZ&TlK>nYO\ !s |9$vf6ÿÿÿÿÿeW]Qj$ÿ:(3W5>XH#,+D_Xp'ljiEim ÿÿ_OoÿFEY;ÿÿ. ÿOw!Hmgwd&#IMB[{&+?3Uÿ.A;*o_/J=>4p>9ÿgÿ>< mg#QN9$%zÿ3ÿrvkwÿ!ÿLIKÿÿÿyÿÿÿz+ÿ+;?H>.as ÿf@c-8z70`hÿÿR'!I)"\Aa}Pr6hhÿÿÿÿ84)`.ÿQÿch_7sS ÿtQi2 kM[N!1#:Epj'P JD[E*i &5E_ a |<ÿÿ)+fNo?+#6S k<ÿÿÿÿFÿkÿ 3 ÿÿ=|6x5jo?L"ÿ,Xÿtl{ÿ;ÿÿ~,ÿÿy-~oV!2}>]Pÿ r,ÿÿ:ai;ÿÿQ8ÿSsÿÿ|4[|GfNC @l7"$j.](0*=t:ÿÿÿÿÿ^ÿCrÿÿÿ0ÿ5ÿ4\q-B?EpUÿÿXÿSq+A'V\NmHT7"B?'h3C)uwKI [Hÿ6\2ÿYÿ)ÿ3/% c$ c 2aAlG\oK<ÿÿÿtGÿBÿÿÿJÿM [Chls7am6mÿÿM~m ÿ;4`+k@ [2ÿqb_k1";ÿJ}{0Gj7%oA@Cn3.RZ+Unqz9xp<>/Sgy|U^B6vi=h5})h4^ A# zG}=vQqÿÿÿ+8 [] u% xgÿÿÿ5M*<=Ea`ÿrÿjWÿÿ=ÿw?J}H@ |CA{ 0eK@Lkq6dSauC1Hÿÿÿÿÿ$ÿÿeÿÿUr""ÿyq\Qz;_ÿÿÿv y5 nF4CÿÿpZU 7v%{kBj4/P6 y4}g/oÿÿ\ÿÿRU?c\2Sÿ&pOFF\@ÿÿkLÿGÿÿÿ`LYE?eY8epxqs8uv<6qsG(saw[E[SXCÿc ÿÿmÿÿZ3?>8Xu:,FRw^e*5~wM6Qq%s#MXU:FKc 7ÿÿÿX`,9)ÿÿ*ÿÿÿÿwFG(ÿÿÿÿ& ÿÿÿÿ5%ÿÿÿÿMkÿ.6jt-jNZp{V=0D1MLUAhjmKY+UjiDZ(>97Fr\ Z^]Tgqv8FqNq_`X~4]bGV]C=8ayl)kA{NR619EM= an(Cq _^ÿw98X2-uyxRz/I*/d!Ns`u\>ÿÿÿÿÿDfLÿE U#lVEP>o+XUV*;G (iH]gk.s ÿY^ÿK k[xKqÿ? ?)ue*Uÿÿÿÿ qAO%'f>b kc^_j >85H , 'leY_"^Ck!FuM%szO{edf'ÿ%%r`)~s OD=!ÿÿbkÿ ÿRÿÿÿÿTU p&3y=V]wqnE%FDjXf*/jvj*(ÿB^2dqdY_}<Z"~9<~4x?kQg ÿj]ÿ9=wÿU) !n0% )|%!+0eN>[m/jZD>J"X0[0Hrh%_+eCy&}v{eFUT/$AF6hk;"a`-JQ_cASe)^Pl ZH X"&xS^v]..zZxVVN 89lL|>IAl1M)ah*UEOsD L@) mG{Ctd cT_/E"z3{rP /h8D\htN yRq-KlyT~}oÿÿq9ÿ(zB:{`^|8y\+95 ,A=ÿ-SZSrK.=$fj R.i Bf>b0KwJ[9,q@GS/aP$GzÿÿÿÿyÿR+ 9ÿRK4`@ VlLG|ÿÿÿt2p}TdHm J2#l xQ<\LWÿtÿ\_(GO(kBnRWVB#ÿ?ÿÿÿÿÿ&7r`Dÿÿ0[7]1W2I_j'(+iIoN?Kpg&"=56%oEWH% S56(,=CtUÿÿÿeVcr=gm;uÿhai1l ]Okb[eAO)w.>ZcR6y3}lk\]|s%#m?$A_*|5gÿÿÿXÿm>wTCK*! d['( ÿÿ-ÿvÿ2 71,`Vÿÿ(yd'{ rÿÿ&5ÿ&oLQl;mF*5jv7ÿÿ,5ÿ7ÿÿÿÿD)f&ÿUt<'Ibp"0Bl8I}`;2IF5i~ qB'L<HSK SyNZÿÿ&!ÿÿÿÿZg^%lQut1?#'ÿ##L|KT]ÿ9EP;^Q^| pzwÿy@hÿÿÿu*y%k^|ÿÿAJy.ÿÿÿk0ÿÿa?R!:Sÿÿÿ%ÿHVqÿ?_8~=;ex^]ÿ`r$u3A#ÿ/ÿ)4{;Ayh_Yw2bÿE$nv{sCb]?~5@Jzh#{Ob*ÿÿqz1b),3ÿ]6^b|ÿÿÿD2z`~ \ÿÿC>1ÿE 2ÿÿIatzÿY>].SQccMn|*2ÿÿjt1ÿ*ÿRmÿiÿ/ ;Y![?| M:{]ÿ-^@q}}eti5weM + fW+S~c*b"1tCh0Ly^[",%./9\*F2F}wÿxÿ1; Yÿ>KQo7ÿXÿAÿ9nXHFOmnMpq;"'H):oA=tm["_&#~CWtQ$ e"Z|u 9usMp+={b/.}&5 Xÿ|ÿÿÿÿÿ-RCqÿH 'TV_B!(IÿyOV,ÿp&ÿÿ~RÿÿÿÿÿXZ'ÿÿ<ÿ{VÿCndv*ÿfÿO7_D/lÿÿ mc>i{dÿÿÿÿ/ÿ.:ÿÿPÿ:ÿÿÿÿ.ÿÿÿzd xTN2+4iÿÿH6cg3(D_ Wu elrw]A@ 6o!c^{Tri@U:>Hÿÿÿÿ'< lsm ÿÿÿ<ÿÿP[Gÿÿÿ{1ÿcÿÿH]T[[?{BztC{I<RNqsMg:J 9* GW,7e=Xvj vF@:'NOrTh~`?=(BHz~4G-\g>Fi\- V)TX7Eo9cu#+1E%`EMjFEFMPnOaLz_z*vKJ/8ÿÿLÿÿga|%vÿÿ ÿMT|ÿÿ0"y]O2 `~ae3 -L9ti\t .XÿÿIÿÿÿÿ)ÿÿ ÿcTÿ(ÿÿjNmdÿ/tÿ^ÿKÿÿ:Zÿÿÿ#ÿÿÿ#cr}2Hÿ9=: ~$J>RÿMÿÿÿÿÿ4jMI Dg6xl1UH]O]Ajxh OÿAÿ<ÿ<ÿÿLj{H9InTkGÿqÿÿ1ÿ=aCÿ:nvQl"6ÿÿ+PptD6xÿ%<>8]<ÿS{&og=Qw@$s  -0ÿÿÿ+?LZu5%WÿÿE4KEIÿ{,M9Nÿÿoÿ9v)ÿ\'ÿ_YDG+ÿÿ8ÿÿ(5_'5.x;ÿRÿpSAÿijl`r{mQ?JoCE$XIÿ#s !8e ^ZVh1oic*ÿÿÿÿtg+3 6ÿÿÿYÿÿÿÿÿÿk^tp'yI|~n:nAx@YQF ÿtR .&ÿÿBÿyÿKÿÿÿÿÿÿLrS;ÿÿTÿx7ÿÿhbdJG+0= _?Qu'=tFM9LYÿ<ÿÿi:ÿ4V-{COÿÿÿkozÿÿÿ^W9"D, '  L2 A 0*,@65NNP 6KJMBIDDG!MNHOK$##+ )++3?#LOOLO4LPL@7$7% FKLKMNHMLMFJNLM-GB( *() M 5)3*( 3 K *() M 5)3C( 3 C4+6 ONKPMMLM%NJPPKNMLL2FIKN)FMOFMINP,5# )NKM8GK9JMPNLML&L$ B7) (H/(34=1NKLN-4=13 <ILI79M@ 0 3 2"1,3,IKOO31,22ONNNOMP@)'&@++3 =& CM 5( &/K(*AJMMF!F )&A3 =& JLMM#MPMGNLPOLLP0NLPOO"%LH %3 (K#&PL6/*AMMIM)>7ON;)=A3 D2 LN*NMPFOGPKMOKJBLGKKMN29' 6OOOIKOOKLKNJL!LNLHAK@EJ"%ON %* (I$H*24>#LHLO$12=(PP,42.(942.(3 BJOO"0 &MM,KOK8NMLLONN8NO2JLK!1MOPLKOF BJ(?(.MLB3J#3 ;JA6 $3 69 5NPL6HONLMIM2PNONN+GNNMLKOFKNOGMD C!D 5CME,*3 PN  C(*CF-+3 D2 :DPP"C>OMN-!MMM B>M$M(M 4H3 II<IMNOO BI,13$M(,13 4H3 F+ DDMJL=BN-!BBMOJO1 BP>,7&P(,7 4H3 FGMJOO BP0 ,71&P(,71 4C83 N3 D+(F84M)'?0<<,3P&86LO-*NN64LLO/9DPKK86IJM?8,LJMPOP+J%@4MLL::54::')3@%'11')3F&(2 M+NAON;KIOL/IJHKKMPL?OL,MJIJKKK!$9B!31:/"G''1 ,OI$-N(&(M(D"("(L %  /J"3 ?4>#3 (K3: #  ;LPON#&8NHLFM%' $& 7<# #6>N"( * PJNL387 ;$&&',IB5 <9OJ-& BAPOJK) OLMJG6>LLLNLNOOOPP6HMN?1?B'MMJJ)OOM J&*N/IPOMNE#IPLNO:PO$'KPPHP,N8.JJNMK;M&>C I45O3 @&N,>C I@4O3 $(,3 I/4DG3 <1,7 >.@C3 ;0,JIL' ( L3E1%% ?P? GE*"KH-"""#### JBN)$$$#.## ?NNNM1,P&6LPNKP8I4&PJLKMMPKL*1KNKLM7KJJ"ONKGNLILIL *OOP1LILP1O!NOPMO"%OLNL4$9JI?*%%)J>0JJH' I3)4O3 "J&HOJIJ2(MOKC N%3LN>O94L3 "?$EOJIJ2(MOKC N%3LH>O94L3 "<$HOJIJ2(MOKJJMNIOO-C N%3>O94L3 "?$K*"8'ILP%CMLJIJ2(OOOMJ# N%3LLN>$ ILNLJ4L3 #)0JLJIJ2(OOOMJ# N%3LLN>$ ILHLJ4L3 )0MLJIJ2(JJMNIOO-OOOMJ# N%3LLN>$ ILJ4L3 #)0IO.*'*LO2P N3+EEDB =.=1@?;; 8J HDIIFOIKK?=PP$I9 IMD 2 P-$M0?/:J9A:B MJ8PP#HG N.;L=P4L3 (=196::I ?PKLC;KCMKK*P)* G "9BBA- 9666;:;*9EIJDDOMN8'#>0N"%LL/NN";KPG LMGMINM+4 4 LNM** =KP*;?($HJKOK0#1".N;*:# M*L?%I<+25!>" F 0GM50NNJ(4K;/0#9KKFF2LO+6&5>3FM+>>MO??>8 LKHNON (# 2226 NMPJ. NKM; KK#?+>@?L@I7J=9LD-G-GJHOMLMLL3< NJLP86&5>:3F>8 DNNO*5 PBO3MLNN%!C OGM.$L$ F:-8"N4L/#$ KOJM+?0KL<"2C(' MILL 0$ ++MO&33.(23E1/):#/(0 $ 3(I.!2:/(0 5) PBOKL L<)H,,(E1N 0'B>>@@N@ .(B>>@@N> F./B";>/(+9NJH6N%.KC"I*=JCC*8B0N"L7".MPMOH:M!PA"@#C8FE.980JKML@7OMCLL.87OMC.)7$.?%%7(&*& J($()!ML0F3 $(:,"&1P*+" >B1H496*93'93'94(94(94(9C499$JMN=393 9<8*9%90#9LLOLM-&$ 659"9 91,9 '.5!M8, '9I@?* 92& 8941NL'KKLOMN9GJLMJIJONPMJJLLK%LMLJAKK8@NOPMO"&MKONO 8OLLPPOPLE$I5AL=LH2; PIH2= /J-2O M)- L25+OO: A10 >:!MKED'( M55 MN1J>:GPL/NCDDDGFE8 I- #?(! * #6(! GIFIKK1 FGK%L@<KPL5EEPP2E LNM*I-*(@ JKP*)2+OL8)* N "N?,.@A, -$#>! K&+&&/IOG%LM%1G4556*B:C316:C1(:F <5(+# :B1+# N0$#D FNJH+@ HPAH/&NPAN*5HB6POO."6DP@"6D3$5EJEP+OL FPN$&$IOP. ;EL&++3096PP:KMOLEMFPPNLMLNKLM@NJ:K6GH/GNOKNE,LOJMLNMOH<IKNP=DKPNM&"%9NPLM!NOMFKD?6LNJM) KP;1IN9/KMNNMO $4). #?9!AIKE 5= 42., !LP)KNO 8OMLLMO1PLE$D58@G$21 &IF$ E2. )FOG22 'DKEP ,&& OMNL)A 1 )* J25+OO: A10 (& :&MM4)* 9& "0 0B@, PM ,I,7 ,GP ,#>! O&!(%)97/OPHGO2H M2F ""6706; 60(/!+IE 4=1/!+IE OMPMK29',%1L/L*(3O&+%"5" DO+33$5?F&+&=KM,%)8(*!FB&F. &;09&OOPL$'+,?% L>I/-C< /NP"KOOPPIMMJLLN5OH5O"$E52G.M*4 O47,LN@ K421 OP3 CGLF(JM4;+LN@ K476 C:<2I 555*3=+ K3CFDJKMN(=:P-* LN&LE9P8AN&996HN&9E?10L9'8290 E9,=A&KIELM OP1IL'/ 6MOK"0($F K94G-+< PL')) * I 6/A!G1*JFDK-% 5:.*1 7D KIHIB)5 N<NLN$BEOIOK/)OC"CJ?&0!23*%  $?N(/"3; HENN,30+>(.'(D& LNO8NP-2$<6;N;E95@5'D <1 =K2HOPLO PFNPLO(KILNKM BP>(,7@+/(=?-0(=-03 3%.!%*; FG"M"NIMNK5N PMK7K:L+L%3'(A6JEEK,>4;:@?DHLPJ 4(E7 )KG6G5< 4+PNNML)F5G+>I'"FOHN = $ -9 !/5AP "05A)A 4 %!B="42.(42.(N9 '0! 5,JLMMF ,0/' 5,ÞÂÿƛʛÌä« ¤­ ðPsYÛc©Kô~î[×_/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á_/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/mod.rsÁ !Ÿæ<ÉØÍÔoˆ #õšfÝô|ô|èOPMP.KH IGP!H9O8N?LI=LML!J205%8+%JL+:0.8+MMOE0D%8+P30C2%%%?+MDB@9>?CC?PP"6%9+*MIJHONKNNOLLLOOK ;:>EE?FF"6%9+IB/(NLKHMNL@DGOILOM0LE PHNHIJJOKOMN8M+MPLLJN-OPLPO-P7JNNNFMLM,NO-bHFLHGI K29?MONNOILK"MLKNPO%@OON"KNHG:IMLLN/, <  ÃîCµøf8&Ÿ#‚�#,ÄGb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/sparse.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/sparse.rsÁ ¹© à_g¡cñ[Í{óD†¨†¨ñ,1GMKNNG/!%@'/#+;<!;<++ A *)*,@6NLOKFP FPO)P NMNN#N@M K&0H/HPKHLMOKM->H: J55O3 D1N,>H: JA4O3 $,"13 & 04DG3 @0> ?/@C3 ?/K/,OOFPNO: IEOPN K$OLNPP5C$$@>;(B7.-))';LA'KJKL"FJELFML!?#8'L.IL=+=1M.8,8O0>J+,EO-'3<0%MMM().??,MJKO$5:- 5,0:H9,( LJ(>:9:60 '&M P>3""### J<M9$$### ?NNNM1,LPNKP.B4&PLKOOMPKL*19JI@*8O+HJIJ2(MILC O%3LN9O84L3 "6$EJIJ2(MILC O%3LH9O84L3 "3$HJIJ2(MILJJMNIOO-C O%39O84L3 "6$K*"/4LP%/ MLJIJ2(OMJ# O%3I*LNFC4L3 #)'JLJIJ2(OMJ# O%3I*LHFC4L3 )'MLJIJ2(JJMNIOO-OMJ# O%3I*FC4L3 #)'K*)9BBA- 966;;IO.*'*L)P O%3 ;-OI$M=&OL8)* 9+ "C, E, -7H,$4(4!HN K&+-&8IOI(MM/P?4LMF)?,--.*B:D31!O)&(N LLN IJIJ,%E'+POPO0/5*1>A2 #23 80#+'+ 6=,+'+ ?-NPNM909<0@D1;+ /.OHL:KLN#/12; 9M&L2)2- 02C72I POP?NF>-3N MM0(IK6D4O#+ OJ$1J&6K"G#!&HB'6! 02C =2K /2C PNNKL G25<2M<2J 1 E ?2F ?L=+75 F AH&&G-;A<0!DH1;/! /2 =,6MGKO&K.GNPLM!NOMFKD?6LNJM) KP;1IN9/$#O@39(!$0,6P (3KKOC$ >,?  M,I/-C< ')EO5:)3;F1M,9.2 G2.;CL&.1LJ"IO;P'PHMLDIBNJ9+KLKMH(.0(MNMN" B$&/N,AE-')?0M&<3FO'%3#.(M)* 9, O;,K3"9- K0-.13 :BI& ,&> $?!((".O)&$% 1"7 G*&.1LJ" IO;P'PHMLD49')L'?%!-+ #EDGEHAGHGHECDGGBDAF 0#- :(/ 0*0 MMLHOKJPP7NMLK:5FJB7&?   = &I %!B="42.(42.(I %!B="42.(42.(JLK? ,.EF>/ 0@‰™ÉšŒŸÌ q�c,ØšNÐ{ɺ}e/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/automaton.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/automaton.rsÁ ®Æê¶q£‘‘T�ýs ­ÐòÐòÔ%  *:PNNKNLPPNJIJINBEDLKNBJIILNNJNN">IDLLNO+LPNA-PLOIKJIKM.ILLNKPMLHFFGILKLP! EN,N KK LM9MNIEKNK!O* >0)L*I/. P>+,3 BMMK<OP?O>$MN0LKKPNNNPNNKNK!PE >0)L* MI/. LOO++,3 ;MM7HOK=OL8GIJFHN*MMM0 &OM6OM,HKN0'?<+#$E/:7 OM6OM,HKN0'?<+*/:7 MOKOKPPNP.OPO#@LN&MHJL& * M8DDEJEEEF3 J JJGKNGOMLK#NP<MKKN' %* 5POLOM'OKNI9213:99/9KLH23<NJIPF/+21$ LLK:/521&MGK71521&MP.B521%81%91%3 5OOMN=PMNOOLHKJLHMPMP2ONMPPLJGJ?c8AJLPPAP2JN/MLINMMIINLO%JLIN P3IAMGJF.N5LOLNK:.JKOLLLGPKLNBGAGDCO-NI %* KJ4H %5L#M')'213:9%9/9KLH23B:POM1AP2/PF/+21$ MHNO(K!:>1&N981&N(=3 3K74POOOLLOJLJION'JMLJKM:EMNMLFLIOMP:L3ENL :6*3 F :7*3 H :C*3 $GJM0PM(M)ILL. 2*FEM7LNHLOO BI(HH*L*I/. +,-M???3 /MGLKH&I@JJKNEOMMOMJLMKKM/ J5!9K,#=1#8O4&AKOLO$!B7.#O')>4/#3 5L@ IKJ$:/NGNL14/#PMKH6/#3 1<9%; PMJLINMO PPNA70 OIM&KJO6H:L9DHRFKM  % (="4MKON(=4H3 FIM?O8 *) !=7+"0&>:4GKH?8 )## '3 GL *) !I7+"0&>:4GKH?8 )#### '3 1<8%; A60 OALNMOHKLNLLPCM&KJO6H:LHINHIJNNOOPNE B7) (HA34L1NKLN-4L13 #&"<;"-;!E OHHNNIICLPCM&KJO6H:LFIM?O8 <) !A=*7'3"A&. )### '3 GL <) !AI*7'3"A&. ?:,##### '3 #&"<;"-;!E KJO8L>NLMKINM&KJO6H:LLN B**  !A$*=A,M#3 &!"3A 0K: =C,$6<) '%',',I-6&3#3#4$4$4$%0F*" 1,2!4!1'1'#&":#&":&!">;LPPMN(KOK@O7'ML'KNFLK$$KMLPMOO=0NNKLOHAM)$ OI;3IHJLGKJOKN# *L$91"G1))K1L/6I;EH;G..;E4$ O>PLJ*"KFFGP+,2 1'#  ;NKM1& $ &'$ '$ '  = OO % 3(-; ÷‚è…ü’’ØúØ›âƒãŒICµN®þóœÇrŠÄ×g/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/determinize.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ág/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/determinize.rsÁ —ÊV(ðVÆ®�µ,a2¥Ì@ßÈßÈ×. # #B*' >#+P)2$"* NPOO#"""-JLN3 NMKJ%*"5#:"= 8J>KLM11C OG: PML% PG#- O#ONLPPO>I>- "IPOPHGKLLMJPP"JNL&KHKKNL: M(KOKNJJJKJ$ILPNO'.NJ8OA;*MP1;< M LKIJMP3CFO,/4,PNOJ.NDNH2 ;#!%# PP%N$#H?24- $O?9C LNNE$KLP&JOF/L6/$= &I3*"3+OO@4@ 2A BOMLOMKMP#0-N LNNHN&H*")98(G NMMLIE PNILOOP/@D$ =EAE( ?ACC&-LA(NC(NC(M&-( JKL)P5/MGMOK6" #,)$ 6+  &L5OO?MNP"/GIM-+ 7KONP"'.*/)+( (N$91&):1H B-H PO(J3;-& LI>@$- OK& 7KI"70ã,qx°w/,!°€¨ñJd/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/remapper.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ád/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/remapper.rsÁ /A|iwÑóãG-q„æMæMò&KNNNOK9DNOPMPO!M0+"MP KLKO.ENPMJN;PN0;KO(NKO7JGL7LMIOON-:LM<9;O!MJ(! !MI;=GONNM LMLO LPPE'$5("?"* >CNLPLNLIP HN3-/&-5HOK6 B#'& %$ @2 @'  ?'! %GP @- @" Ô�×=e 5¥ªa�[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/lib.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/lib.rsÁ Ô†5J­ xñ[‹‡{ö‡ð‡ð‹IKJFOONL*M M)KJ PIL MLKMNJN ONGIOMI:KPJKAMJM1-MJ/H M/KNOOMN.844; 5$;;<<*A'+*ONM,63D"A''&*/#$+PN/,$D"H'"3*/0+!ONP-/ @8+9((!!0+NLFLNOMNP7KMLMLJM-LNMMPOKOLMPNK@JPDLMOLNOJON  N-CPMNK?N,IK ILNKMJMM&PPGMILM<I.%^QSDiNINNNKHMP iLNO<LIMNMKMOJMPNMMLMNHPML)KMN /BDOOKGNOLHHMO<*NJOKOKLMLJ&OLIHPKJHOPNPK*MNLONJMDFLJ8PPNOOFLKOLD J>0OI@HLOK MK]K-JL67pkD-LIGKJRHMQJLPNJN)GGMKOOOML)4NEM4J-=CK$ MN+ *JPPM O +IIPOLOPL@LN ,17.(PI-FKJFPKN!! I#',  = ! .#JHM'îä(˜8™Dh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/mod.rsÁ c.â3ï½cjñm„À„„QGENOOEPT'HPO#?5FPLO L%GPLNO JFMPJOKN@LNMMNMN="    M Ì~¦|2b�X}Í™3›ÊÑFl/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/builder.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ál/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/builder.rsÁ vòRŠ–â'PîAhû¡Î¡Î¹ ' 9 #H8NKJ NOPA' I?FFIIL AL0%HNJKNMMOOP-D(PPOALLOL(!ANPOALLOL(!AKL.(KN,LONN4KLNP?/MPN& MMONO0% P&(1J$3,$ @& &!)'(3A1=8= 7OC$JLLIMLOOOPOB BKLNN&C7IHKH-OLIKKLPJ"KINO GINM NPM.MLMOP%J$>#&M)NP'D/O$5 PP-*K":($6" H O $NLP,NI)')/0,/!=@D#MLMJIGNN!JM"O?O*KNH:LH>7ON#7MIO& $ 9KMBNN)GPPM4NKJ9L/LP!##PEB! -!'9JNGM0"JN 8OINLKM2B+LO6/0K7;8=3.IL@0KKLL#&B:M?$%ILLLP,#&B9(#M?$%5/@6<46G11)DP(2"3 H# B$2 L*KPD1? 00K.0&"I:46 79 C?+,/-(&)&"I:46 79 C?+,/-(&)J%%NF>:IJ-+"A#ANANANANAN3  '-DK, N3B, PJJLLK9@P5N/+ M'JKFMLKNAOMLPI)JNNMMIF'-DK, K!NKNP:@"HKOM?P:HCA4:JO2E1K4!"4JONJMN<MPN("4"/4!&?25%A<%A:8& 5& N@NBNOJMKLMPNI?NLO)LMJGOPO#,@O%KKP27M"/BP (PGCM9?N5,LJ7"! 4L4NMKJ5*I;/-D  NM>LMKNNM ,7,7#êTSó(1 ?- 3 >% ?P;:, C%"P(&M8,1'%PL)+J8:54DN4. 3   MLL:(1F.FPO .PN;9OC IM:HKNP>OO!<=CJMPOP@A"NJM80PP.$K$L2)A*'388A BOMOMMC K@H-+-3703 D$IN( K@B -+-3703 &#'30 (N PLPO3 KJ@....@K-+-3703 J*M'N( KJ:42:2222 @P-+-3703 0#C 0@H*3 C5 <9OMO @BGO*3 -( GKN7P,D %9 < +DJ?@OMMF21+AC M.E >+8425F<>N-A4%G@E1;NK9 LN1K+H HP;%+ L(). '8PLLPKN<"L?E .## #/I% 5HO@LLPO!J =&*% '&% '%)%*&$0, .GM5LOK1+1<8N7I :#0)%'K$+#FGMP P&LI+1 KKO !!&!&!&! KO* !!&!&!&! G''$!)**0'% &<MLGLI+JHK8N(%-.42EKKLNLDB*#!)-/'!)+3*&<*$!).0B7&$!)1*,@ MLI+O&',#*5<+/9PNNOO5L+%@$" @3MPP1NQPL!+NP0)D"M9(IHDD&+LOK>NHMLJOOPNI$=(P'5=C I"&MMN9?E$H0 OMKOOPNNO KNOPN= NOB L PONOM H B" ILI-MJDEJ,!+LKL17')!F'-.#+'1>""H4*/) 7JN#-)1-515A9E?;C?GCKG '/CKIN=IM#O./LIM#;$/M:#/DKPLNL2?2);9.M9! !'5H$ @94A<'(5 'P8-9.#"JK@ LHKKKNKLLMOPC+VE& P! ""0+A>$)4H )+7A,(0H$7.( $'4A 915%(=E$ 2O LAC.04:D3(?7/)#  3&%9/%$#"0A#;5#<&4!92#8@*$+% P&:2 %-J %"J#$!  :"JC  9"J#$!&  C"#:#$!?&  @"#:?(!  8 J"= #M /"9/D!F &3 )I  !0C C((!!? )!!?  #? $?  $O %< &O  $2 &!!? #> #> NOPB $"9##/,%"!!"!!"!!  &"9/%!!# 8:O@@PP) 9E#1'M;8 ;I#1'M; ".9#!#!#!# &. %".>#!!!# &. !".:M &.ùž$Üè³ô-m°£fŽÌJ™ÆGRþMÍq/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/literal_trie.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áq/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/literal_trie.rsÁ êãÎ9pž{”©‰í¨º½ýÕ©«©«� G3:NLJ PCLMOMOLP ONKKMNMNOO$IPJOMNP?MJ?MNLN*5OIO6MPPLHDLON7 NPJM!O-%7A-%6,JL$K&,P4 'KMM'7?)3IC4N6D3< <O+G KMKLPKOONL5( =439'%#9'%PNN"-#:ML1&8@F0(N3LK>#..IIMB5 ;&ML/D  <NK912OO?M$B("($1073 (G&BA GMOKNOPJ78!NLA4JMLMDLO('JPA,),,(EHKMPNKHLF$KLGLN)CPPLL"! O'MENOOOD 504K0 $LMP.-(/ <./#L,6"G6.5%%"&% OOL#3&,"5:8 2 4'G7!    /&!#))"#*' # /$%%))##"+P( #§ý_j·gheóTè>K8Kh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/nfa.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/nfa.rsÁ —>Ç�É€8+·Èw˜÷çÿÛ”Û”²K" % 5/,M GPJ@H,INKO'NJJ!.O P2,C):CHKN'KMHONPL(KKJNMIPONNMKMONPLKOFLONJPMLKPPNPNLP@)')/5,/*F2>'"F'P=HH F"L-03 3 13OMOP B0,/3M3 '7JKM;L-L =?LPO%G#GP3 ->?JMPO A)$$KP"$PPMNO( H2"J%3 (IMMOMJLMKKM/ @5!9K,#=1#8O4&AKOLO$"7.'2N+71I623 59BNJP4EBG'P 3% ,,#C&+>(1 ?- 3 1MLNGLM&PNNLPO D""0MJ;;J*5>;3 ,IPM:OLMKJM<O D""7MJOP*9OOP;9;**5*'< %,74P NM5<0G+9K3*"ED') (( ;3! 9MIL!##.25)3+6=@/NNOO*J ,&*C NP=OOOOK=(% ?C2# ?(B95K 4(3J 4 NNHOMJOJIJNMO1 O88POOLKL1EDHNOOM! KGKL. NK/$JO"LLJ:K&NO,8NJO>IJKOK99PKK!KILOJMPLKO O7 % LML$ 0@ 3%!)+$ %%'O &3 '$#","(- B&$!($" FAD1= MKM1-4/J2,H4(F53(C&&I& ?.!+3,%$HH+,%%.-@ @MLMJ'<(DHK=K=MHKP) >DN@>+ -%  M) H NP N L$".+1// ?NMM IP.'M%DJJ =K=MJMI >DJD>8# J!P2-'0 CEI%7.%#*M5,/-6F%>@BKP?CK3/!?,5$I%" ! 03M'MMLN0(.* 7KM<MM ,7,7 E+-0@6. -../// D+-0@6. *++,,,†‡�GË}zÞ%£âÆ]Eòo/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/range_trie.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áo/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/range_trie.rsÁ ‚¸æ“¹DF&? &&}šâÆâÆ›MMIK!EKHIMHHMJHL(FMMIJD !!!JDJLLHJAJHLI2LJK1GHIKFMMKAHMJLMMLLHJKJK& !!!FF(LPK" !!!!JH'LOKMKC/K:4#&N'& 1BGGNOALKLGLKO1LMDOM*N(D*LJG!#!O;"MN)' #./ "  KJ,#"KJ=68KJI:LK;2L-5"2&(!"LGGK* 9H5%$L3-G)=KNJJ68PK=H=LINKNG?*PK"/JM1'D*HNHMOIOKM&$C#J+!J@#0JPHMNL*FE0OOPIM6O97E"-5"JN/*JF1LK&2PJLMO #->JJMJB I3%= MMLDMIJO%LM2: D'I(1D?C(L%A5D&'* !6H< 2N 7KPD-A9 N?MPJJNLNL0OO7 KJOK&?" 7!C.$!$ KK UI<"2(?L-PM:K7J7 LKMD ;,NMNP %,: -$/';PLJNCP>K OD?JJK;L"MMMJLM+MKMLMILKPOL!!KLL=,767600==77F0""""""KK#'!H- 3O:8 113M=%-$=$=$=$=#M#M$M$M#M#M N)AD709AD52I38*% ?;H7 ?'&!?0$")+" ) <6. 3?!!#!!; 55 8 113<<HHHHHHHHHHHH!7 !7 !7 !7 !7 !7 !7 !7 !7 !7 !7 !7 !7 !7 LD½*ê^èØGäÝr„ æuJ?e/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/alphabet.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/alphabet.rsÁ Ìù4¬?ç§Ð~²!p¥‚�¾�¾óI LK(MNKONPMJOLMJKPO:LIKFNNIPLPP+4KLHNKNNNCKG/FOK F!77I% KMO  6NOLLMM."!3MPKCI8+K( LI8'(& OI)%7 PJ;%/4 PM-2K" GN(D!G@2 ;OPMMOK(7O,#&96 6/#O$L#)0 ONPO :>0=: HP@%:6I JPL*)* L "! A1 61+6("M590 O' L?KO *NL.)EMMPPB%N(MKN@)#F..N;MLLOPON'M- H'*EJ $3 P9 H'*NJ $3 ;(33K# 1%=9& 8 # INOMHNOOHF H'*KI(3 C<KP1JO""(K!5(8&;A&19! -K9K*)7%97" GDK*5)==0 0/- DNMILJNMN'(- ;=K#.) 9<- %- I#$%!3172*&;(@,?39 6NL?MOM JLKIOKNPLO) #N$'HC=%# K60( MPG70#$7+ P6HH/&') M-!6%D0!9B6!:LF083(M?-69,IOP<6 JLN;NPP:) * F 7!7!NB A1)#G&7  $('3&  )--8&+!E$' %  -#*'''.***.))-*'''''''') -! < -###*/J(42JB JEJ  J(12J4J)46K4 11M4K4 ,/J)46K4 -###*D #E!F!J!NH%1-+#H #M-#M=#M=#M-#M #HN#M@#Ô»ýTØŠÁlµlô±Üe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/captures.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/captures.rsÁ rá cV¾SŽ4rG å÷©Z‰™‰™÷2NKPL(MPMLF #MOJNJGGPP7KGIIPMLKDONMI+NGAP%K(O'XMO OLNPOP#?BK6;;</&J>?QK6EEF/NOPK#1JM>MLJO&MHMNIILN"OMOMK!OPC%MMP&MNJK +& L +I6"BI;MN3 4+EL6MNML+ +& L +M6"BP;;<3 8JOFEOMNN> +& =+K5">D,;">D,3 6:MFHL> +& *+K5"3 %EMMIFHP9 +& =+K3>IO,3 1KD8GOD D=O3B3 />OP*PLDILGINIJJMJJJPM BJFOAC?@H-:.?3 <#OO;OK1 ;7:OO*O,DILGINL BJFOACMMH<3 BHOJ.PM&@ BCGK OB"?!%$%& 3 MON BCGK O<"?!%$% 3 4HA2NKCO0MOB B;GK O<)3 ') )HMNOHL%NIH H%& )+2+++++23+2 ?95#3 -FN)M*K- H%FF +-@+?1@;0?1@;3 %G FN1M*K- H%FF +-@+?1%B80?1%B83 $9$(/F FN.M*K- H%FF +-A+@1?A0@1?A3 F FN6M*K- H%FF +-A+@1A>0@1A>3 #9$(8F DNPO#FO.KM ;D+-?1"<("!>0("3 (#1G-G %DNPI#FO.KM ;D+-@1"B)#" >6)#3 .%1G-G %OMK%NL&OMMKKPO!KAL B;FOA"(GL  P#(G  3 , 2KN II?P@ B;FOA"+(GL  J #,(GL  3 <NOLLOKFOAOMM)O +8 % O3>KN<!! ,3 4PJ@B@%G6)&K M5G00O*-- %D=4566 AJLI%=013/4:BGMM N MOKN J +LNHH4NEJHLOPLOOINNOKCNFLLKOIKPI =NFL$F'LO NKKLKE!K GL$!3' -':777729%IB;)CC/4KM-L$!3' BAAAADACCCCCCMLO99/!+ILNN'MKHIIJ%KKMFLL@BNAKMJ(FK 7(%7+ 1+)3 %K 7'+(3 $M  7N %)9LJMP2CL%2?%%%3 HNP #+.!## POB4>B'I(K&-IL;GO9GFH )022,+K*M 7'+-(3 "A8NI+FLMJOMM B=E#, ';KO,;J::3 JA9NL@OP8LMJL! B=E#*$ '3:3333:D33 PG3N"L.KEL =?LPO%G#GP3 O %/' OOCL9 =# +2+++ 94#3 L; A"JD=3 77 HM.P/LK, =/;; EP 3 "MO DMKLK, =/:: 3 N0 OMKE%OK26= BHMK 0C7&7'73 ):=L7 N+LED%5D"J>MPON+098-GMIPOI(*&CFHBG0AC )8>C"F6B!FEKJ9E0K DF;=EMJL$D7BN!A8; KE*@(:@KJ M%NL3H" MMND6H-MOJJJJ9EOLBEHK*-I<NNOE@NHGMMHJ0M BMOJ >OEF E2* ,E777<< -K)-L4B,'1J*'1&302!4-4)#$ 'tÒͨí˜åŒ4#­h/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/interpolate.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/interpolate.rsÁ úbS´Ï3½Ø¡®žÆSÈn¶õ†õ†À>OLMNHA OLGMO>OMNHNINKOPO7"NOL'!PMJ7MMON!F+!%  $0:$511 #I- 0C&#1 3."7$ O JIEMMON!F+/  *1:$*:1 #>- 08& 1 3."7$ (M>B-1"-%%$(K0AONO@"* 0IMOP5-*%' PJ>M653PLL;*%' L(@ 0+'B 5K /B 02**,700/"## .101/113335597!,%0%&:1 7!,$09&:1 (S;2:1          &  &  &  &  &  & JML$ & ¢a¬aÓaÞa‡b’b¹bÄbíbùb¡c­cÖcÙcäcçc⬬{ø…\Áf�¿gîa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/lazy.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/lazy.rsÁ ¡'fÃÑs‚.„† Þó“ó“Í=NF@KJP,PKJLNLMJL"#NKL&WLLFP095NK!0&#<HMK;LN0*8>;  -*LKKLNHM#NOQN G$KOP1MN&L1GEP;=$ 'IJM').(9IKL35'"#'P<5OJ% NO*'9PN# B?H %, MP5   ,,8E!KL ###4NMEONN%#!$KOP1GIK!EJ@;718 +HLO<)MMO5JNIP5[JN,:%%&'OOKNB(LNLLFNO!*?@88>NO!LJ).MJ)L-! NN'GO B E?#E/- %:LD< NKPMM#"MMMB  !!6< $$&)NGKPOGLGC (8)!D(JI% �¸b›qïÜJârÇf½ð|a/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/look.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/look.rsÁ •ÑïÓ1~)‰'œ&üÊIm®”ø”øò<+ELG:OOIKJOLL5,IPN03MM4L5INOOJOKHJLNP-PHNO0OI$NOO$OIPLGL9NGL; POPLKPLOP JIPKP4"IJ5 OH4$ML+" O;KL*&&**..0<4@88<<@@DD MJNK(NJM8;9=;?=?EAGDBFDHFJH EN!NP) " $"$*)/)'-+/-1/ AHP/NFAMJPD7 5?MN$.&H J297$O 0(ML,GHM5?NLN1%*.,NP5/CNH71GKN)CP51)65397N3/'43175P'"PP415I!/#PP416H!/#O72O5&G41N2#N81N6'J*0GM*0+?PKP#5H46G>BE*0 $G% ". B3 )! O0J/**O P+/!((?"':$-;)/B"3EPMH?IKJ JFPJD.NMPMLIJMKI>L00MPMLIJMKI>9"84=9A=ANN)CLH(B&@*<(:,G*E P(MPMLIJMKI>3B9&NKM'. %, )1 '/ +3 )1 +3 1: -> 3E 09 .7 2D 0B 4> 2< 6I 4G O7"7*-A1--$ &#!%#'%),MMLK@JMO<2/O5>%!"!J!L(OHIO OD>BPD>?H D>DKOD>BEJ D>F$)*DH D>D"%&;J D>FJE"P D>M*L D>@C82<;&L&D>@C8#2LPKOIONPPO/ MNHPLP NLOLPLPH MK+!:9A-59A&O D>LJE#M D>JJE#K&D>@C8"2<;'I&D>@C8 2<;'M&D>%JK&D>OEO&D>@C8'2MMK.!:9AM&D>@C8%2MKK--59A"KNIMOJ) 36%F=77KED, GG5L?N;GMPJMHIEPMMJLCK"PLPOMPGONILL-LO&N.SSW NNOLLLLO== '#=K99I*=$1"9$%B!$%*& D9907 *=$1"9%B!$%*& DG '11K99E%J8N 4$%-+-%3& 899E%JCNLFE8N 4%-+-%3& 8N 'K991*3 996*3 9-8D4. OKO '<K991*3 996*3 9,E? 0),$&&#IJB/K4994994 4M  #")++*,+. ! )+,,-+-.. # )+*,-+. !)+,-.+-.. >%&+/)**+,,?--.//A11**,,--;//00...:2222222 #$+/)**+,,M8../00N@22**,,--;./00...:2222222 >,,+/)++,--?../00A22*)++,,;..//P5...KO*222222RO+1 **+/)++,--M8--.//N@11*)++,,;/.//---:1111111 ))+/)*+,,-M8../00N@22**,,--;.//00...:2222222 ''+/)+*+-,M8../00N@22**,,--;/./00...:2222222 >+++/)*+,,-?-.//0A12**,,--;///00...:2222222 >))+/)+*+-,?.-.0/A21**,,--;///00...:2222222 .-+/)*+,,-M8--.//N@11*),+,,;././/---:1111111 ,++/)+*+-,M8--.//N@11*),+,,;/..//---:1111111 >0/+/)*+,,-?-.//0A12*),+,,;//.//...:2222221 >.-+/)+*+-,?.-.0/A21*),+,,;//.//...:2222221 (+)-+17/5#*#+!(!)%,%-#*#+'.'/%,%-)0)1/6/7'.'/-4-5,3,4*1*2.5.6,3,40708.5.6292:0708 $+#,N+:+B+E+ < ;Aœ¥VÔVÒWýW¬XÙXŠY¹Yñ¤Õ‹€ŒóŽ �Í�ü�«�›‘Ÿ‘Ì‘БÁ”ð” •Еÿ•­–Û–Ä—È—ö—ú—¨˜¬˜Ú˜Þ˜Œ™�™¾™™ð™ô™ùš¤›ÞžŒŸºŸêŸš Ø¡Ü¡Š¢Ž¢þ¤­¥Ý¥�¦¼¦ê¦˜§�¨…¨³¨·¨å¨é¨—©›©É©Í©û©ÿ©­ª±ª…¬°¬©¯ׯ…°µ°å°Ö±Ú±ˆ²Œ²÷´¥µÔµƒ¶··å·“¸†ºŠº¸º¼ºêºîºœ» »λÒ»€¼„¼´¼¬½ý½�¾“¿¾¿ü©ÃÖÃ…Ä´ÄñÅõŢƦƒÉÀÉïÉžÊÌÊùʦˎ̒̿ÌÃÌðÌô̡ͥÍÒÍÖ̓·δθÎÈÏóϰÓÞӌԼÔìÔªÖ®ÖÜÖàÖÐÙ€Ú®ÚÞÚŽÛ½ÛëÛ™Ü‚Ý†Ý´Ý¸ÝæÝêݘޜÞÊÞÎÞüހ߲߮߾àéà¥äÓä�å±åáåŸç£çÑçÕçÆêõê£ëÓëƒì²ìàìŽí÷íûí©î­îÛîßî�ï‘ï¿ïÃïñïõï£ð§ðùñ¤òšõÈõöõ¥öÕöÅ÷É÷÷÷û÷ìúœûÊûúûªüÙü‡ýµýžþ¢þÐþÔþ‚ÿ†ÿ´ÿ¸ÿæÿêÿ˜€œ€Ê€΀œ‚Ç‚½…ê…—†džö†ç‡ë‡˜ˆœˆ�‹½‹ë‹›ŒËŒúŒ¨�Ö�¿ŽÃŽñŽõŽ£�§�Õ�Ù�‡�‹�¹�½�ë�ï�ˆ’³’–É–ø–§—ä˜è˜•™™™…œµœâœ‘�À�î�›žÈž°Ÿ´ŸáŸåŸ’ – àÇ ô ø ¥¡©¡Ö¡Ú¡ï¢š£Õ¦‚§¯§Þ§�¨Ê©Ωû©ÿ©ì¬›­È­÷­¦®Ô®�¯®¯–°š°ǰ˰ø°ü°©±­±Ú±Þ±‹²�²¼²À²›´Æ´¼·ê·˜¸Ǹ÷¸ç¹ë¹™º�ºнº½ç½–¾žô¾¢¿п¹À½ÀëÀïÀ�Á¡ÁÏÁÓÁ�…³·ÂäÂè¿ÄêÄàÇ�ȺÈêșɊʎʻʿʬÍÜ͉θÎçΖÏÄÏòÏÛÐßÐ�ёѿÑÃÑñÑõÑ£Ò§ÒÕÒÙÒ†ÓŠÓ„÷ç÷ë÷ñ÷ô÷÷÷ú÷ý÷€øع%�»á—Ã�+J©B{.a/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/pool.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/pool.rsÁ "7ÀI£>œ!XUD‘#öÓ¾Ó¾õ ILPOMMMKN;?>>?N?O0MOKM$KGLPNPOLLNLKMOPOIPKA<=ALEKPPHINJMLNKONIKNNNM>LKM OOOHLLOCO0NL,PNMN4#LKL&WIFM5'(;&70KII!*?I!PNMOMOJHIE@ I!MOJ@J )@OD*+ %  )DKL2LHM+JLJN/ ?G6KK(M6<OO/,'KN(DG; ,/,*7M#7KM )NLL!'POMNJKHN )P>KPLPNNOKNLOPNLNNP%LNEHNNOOMLOLJKM1GJKGOKNLN,K -GL-MLILIEHJIKE3#+)32<./;7C@MH?FIA H@ C DKELH"F//G+3)@'A;(I:DF<@NG2EP#-<-I+G ?5?ONOP/ %. GKONOP/ )2 A5CJKKLG %0 CJJ0"$0-"BP=HMP@<B NHNN=@,(HPMIPLKJNP,+HKG)+NJ!ID C"+ 4DOMNN"'NP+J&&271 2.P :F OPBO-K%)?:)"POML6LPB'IOL>%'<2B <NJA1%/JA6NKN>NM?'3)M INP7A(%&H G-KNA>4'6.HKM0N26LNN+ %JJ4>!2%>IO>>2%4,FIM0J04JNL) %JHMLN>%03@JHMLN>%03@MMKH>.5,MMKH>.5,NNKH>/6.N;N"5.HN;N"5.HO<0JNM+"$$> O!>'BJ!>'BJ!>'"D"BOK=*=N EP*EP*FL,!+4+4-5+4+4-5%  !>:8 ")< %@ 3@ ''(((((((_ͱôÕîô[]¨�:ˆÛ¶n/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/determinize/state.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Án/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/determinize/state.rsÁ 6ôà 7̵žøáÐðÑ®qù�ù�‹M MMMMNJL<KPPPLKIBIONOKJHLMOL9JHNLO8LHNJOMBNNIMMPIE7KMJMOONNMHNPOKO<LN-"&K PG7$IPPN5, "G<O $F,0#0#0 0 . D)G(!M.G*1!4KLJ9.O/)B@$->J)00GJO:3K0+0+0)!-+D2!,EKPM3$ ,GFO-&580 !-+!-+> @-!, ENN1PNPNONOMLN LNNK"OMJJOKI6EPKPILKKGFPO;OLML!!LNKG=(!PPMP=LMKP%!NLN/%!PPN0LO%)N9JKL+%)EH#,' HNB9%7KA M6< &;DF KOL:%  ?!,-KKH F@=!1 $IPH6 N-,2 OFAIMM8-% J+A)G):19933C.IONI8%)L6!FNMJH(JHJ:%APP%P% N9% G,K<N@K<L+8K39NONPO NHF,(%J.H(KFKJM(%H% )GPIK,O, '/G0M1G:MH/G2%@! :I.#JI.%) MLML-I2-KI.NP-9 4 2*C)  M<.L )""7 M<0A --"; < !<.0A -& )"'@'<1 4"'2+ 4"'2+ =;"$ C;"$ °¤ê¡)¬ “7[V` ÐKec/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/memchr.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/memchr.rsÁ /Ð�Ò¼3í6T¶Š9X¥´´]NLD+9E%9N*9.9F&9O+9/09E/9N:9E9F09O;9F?å�‡ âÜ™TôƒÇ¯„c/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/search.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/search.rsÁ ëÕw²ûëíª Ô‹ÒKߜŜÅÍGNO %CHOLJPN?9N7F/;6LNIHKJK9H<G-H5I?OG)I=PPOL*AJ>DJANLLJO-N 'H9CO$KMNML(BHRMR@*:$ &OMNCAI11IM5KPL- B+ 2*+-C!9*2,IIK 12BKI.52,3 NLOOLMOLOL,A ;PMN2HJGJ&P8 #*-7- K *BMOO,;ONLKIMMNIMLMNMOLMO+LJNN(JAIJ +$ &OL2M%,%OM2PLB%OM2HM,%OL2MO2303 =! 8PNNNJO%MLMMMMK0%K K-+-B,2BDC;2B3 8 4ICA"M5 #.-- 9 ,;;! DJPMNJGJ&O8 #.- - CLIJP0&M># ,>&7 ,LL/OK #.-- 0:JJ/MK #.-- ,8)G  :.8&4B 5IG  #.("' 0H #*1 )2GIK7 #*&5& #0EM) #*$5$ !7OLA +*A %BOMA #*- . @K :.8&4B -F #*( )JO$ #.##" $4O;NJ #',--,- <3*G0 @'//>,;FKILKLOOO6,1/ &*L%)P!,JK4GP2D!G2',*8!&+#+4#*3(1;((9=PMM:HOPP3!M!EA&ELM>A4INK)#KL$<L:JIO8L:3# 9GA"&J. 04/"! F&? EGA"HMGJ. #'/"! C34IKP),A#*?!+C5)!;L%*P!MI9%1##'!!B%':MONIKOMKJLLHJ&IM-PNOML,0*8 D =/ P5<O=POE$7BO=PO$/// +   NJJN;;L5?7 ! N%NN$OONMM4$&E!KMP8&FM/=DOE#44G?0' BPA <+.9NLPN> 463>NLPN> ,PPO9IN  LJMMJH/;H0IKPMKP=HHLM>'+! '(2G?8GH592KHJDIJL. 92M 9I/-N0EJ&E ONPN* 3..C (>NN 323&A 11 <KE;LOPOP(LHMK;LLKJ&'! 'H//MOK NNKNMOHPMMEJOPN6P6'@*'C81/PJN.%LLON.=*'/) H* /6% PMJILLMLHLJNLP= IMKKPNILOOPP NJJMIIO PNKMPOLOh+*PL0'A36J"5" 5 '  :,MP;='9?L>=)2;O9=29AOK=6@F-O!'H N<LJ"JN LBLJNMF@JBKLM%n lNMPP9))G=F!3B9BMLLN2.I0$  OPOLN;NM& 9*. G?( !?K( !?K !+#(+ 3&8�âps):†–ÀŠÑÎm/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/unicode_data/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/unicode_data/mod.rsÁ �ü­+ØQ0û HÄ9òèèJ F' L(IGLK";;}#îßGªeõ­é¨a/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/regex.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/regex.rsÁ c˜q={7ŠJ—à“Ìz-(�…�…æFNLNKKL"2# (!! OPP!JP$!"0 ' NMOMLOPJNNMLL,AMNJ"NMNOPKMP! /61N33FDP93 KLO /FP03 OOKPL<LM*KOM  BL"@(,MLB36#3 7 O(M$ 8.)+ 3 =&L= 8:=;;;===%3 $%,7#LFM$ 85)+ 3 ;-KK 8A=;;;===%3 +;31)HE*H BC "7;+93%#3 "EKNPPNM&KJO6H:L P /.623 GM1LL)M&KJO6H:L P 80+LLNP'@3 L0MOBH>'M' 8+(@""#$ 3 2"4%K5L)?FNKI$M(KJO6H:L-;5% PPPC+', IMPI%'- LLLMJKL4 LLJLLJ/%)IB 1JL57%G: KDMM6"DMM6"D B/D)3 )P%KPJ(H,C?G$A*41DNKNNGHKN NL8KJLIIHK($2KJNN6=LJ MM>?37'5/!79#A/"C*( .O;F$@O;;+/;&%6%%451I$36;-;-113CFKNOF!6&EOLI:JPI /3:G=23 PJ /3:55=23 *#<9O;-! BAK-;.# KL"E$ DYÆ kC¬’uáeƶ؊a/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/accel.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/accel.rsÁ á}#i˜óDù” «N ™‹�‹�…PNNKNPD22*2**MKLM*LNLMLPJNLO LMPHPL=*04 <BFNNPN=1>MONML .PL5"6>E74NO 56>E74KH>PN+J<-#-NDL*>M3,KIN;"!N@LJN'P!D5HFII'O) -5 L27/KP")6 I&5A9710M&+M2).. CJ+E*PPMJOJC9/5 %4.-B!I(:I4E/ 4B?>**OGOI )*$C" J ECP8#GP-=J/ A*;G' -?*.K NPJGIJMOL6KKMKA @"(OI1MBN!?DG02D /7MK7NOL0J". MN9 "11 + 8!#L"%2H!'O"+A?"-"=JJ"G%#; âHBD9¯àîàjú³0°gd/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/minimize.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ád/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/minimize.rsÁ <5|/ƦX& Å}qõëêŒêŒÏ%; . *CCHDIIN PLONKNNOPOPK:LMONGJ"",(?$%;3-KLNHLFIL 8$@C=*?*64 L...#P<36?NLPOMO )4O-C"K-C"!H..C%12"46%6I" NPQJNHB$@ MKL5@)CL  :'OLOHO?NI3-A GGKO81LKMPM:=&% LMIC(@*. PNM42LNNILO:.*6*+I4,,,, +*+I4$,,,,'& *>3!J$ !DJP$P-.$0'8A!2&6)* &@ O# = $3M 8%(!&'' !'?52. D1 DOI'#"'#"'#"'#" @1( DOI'#"'%"'#"'%"  ï;÷‰V^‰Õ�•LtÕb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/search.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/search.rsÁ 'ÄhBNöMÞsdþ,ÆÂÆÂŒ 2 4( -6 N"01 "12 5(  -5M) JP%"$=1 !0PPOP<1$ !&? MJIINMMP1 NP"!09 -*:N  5# !3+&6<,> )&65  J4M5- ##dƒ³Ã”žØ×Æ1†„óc/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/special.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/special.rsÁ WÖOG‘mCfõ’õˆ{9ó¢ó¢î  @5LM MLKNMNJMMJKKKK#KLJLLKOLCFMNIG3NJNIG LIINN4PKN?PONL4(/HHKMLONO57("K$!0ML$IG)K6-I6K6I2JNM/5PP3NHKMNIMK+ >>>>>>>>>>7NFPP!1#0#7#6#1#0#PL"% N"N (,,,,,, LKJM-O&6LHB- .3::::::  3JDF>= >= >= >= >= >= .-D -D -D F>B =B =B PD PD OD A%< '> '> '> K&(ONM>5M NLKO')8-O <@BBBBBB!9 H A1L<"'F LMP&EOL";KKAH>H>6I?PJ?PI?PN=M G+2"=M G*G*7Oü‹C¦3{KÃ!ñÉöŒa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/start.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/start.rsÁ YÅ\TÛûçÈ¥bv99:N ˆˆJIFNKJOO6-7 MPPM,M8MH,20L ')* H "(& 192A90?PXûÍ�sùe»@g$j/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/error.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áj/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/error.rsÁ +¶dÀ¿�£èRH%·ž ž6ž6¶&JK2HJPMJKJ OMH5!PKL@(OL&*HC1OM/L,MM).HK)LOJ/0H (C9J;L7B&N@$LDIDK9A(E':< )K'K-7)@H:6F<6COE:.';F! …ÄB0 �X]rtU;KU,h/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/map.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/map.rsÁ Ü�R¢Ô�‹<; 1NLMP%+ O JMM LKMNF8O/P=0!KL7G?M$MIHE3<J8!H9#L /7+V*09<:1NLO%+  JMM PKxHlÓÂqMöˇŽ(?Qc/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/escape.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/escape.rsÁ Ë´ aÞ7·‚i©·d(PF²²T6GMNM=MN&GIN% N#L'2 F>NJ%,2GL 7$1)-+B "<,9 ¾ù[zŒÞ¨\Œ.›âŠma/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/iter.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/iter.rsÁ âYlÅ*3WôãŒüg÷tNß³¦³¦þLKNM/K9%@LMK*;LKPLK9IIO3KOPOJM%C7NK)NPPLHMJNOONKNPOKK#AOMOMOKIK:JKJLNPLCM KNGM:'KMLHK>'5()'<31 LB/@FNP,#@LPL%31;IN52O&JPNO> " ;+D+5Q#5Q#5Q#Q#3 P " #+(+4Q#4Q#4Q#Q#3 F G. OD+4'5! M%#5'5! #5'5! #'5! #3 = C) 7H L&P / G1% 5M) *0OK+ C1% BH) '-O5LHJF$ " ;+DK1 9)9)9))3 &# G0O0LHFF "" =+DF- 8)9)9))3 J C,O:LHGHONKKKJ?OM +" @ K;**643D-4E,3C*&3 " G3KLKO // GNKIG OKKJKOMPP1MJIOPILLNI *+ CJMN(E:7KOF'(7ON38;HL=23C/B?=K-#+PM (E:7KOI5>%;HL=20C. :9K)#+KP(E:7KOD16!;HL=2,?* 7H IM(E:7KOB$%7ON350C.AK#(%-( :K*#'+LL (E:7KOJ-8-C- ;H iãWð€²ïbĬ±o!ÊÚs/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/aho_corasick.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ás/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/aho_corasick.rsÁ ¡'M=€£–Ûööªþ…§0§0™ 94#'=  8 LIMMKMMNL(-?;NPMN543=>%+;LOKJHL5MOKJO!"!$N!% "%B=  8 OB D=  8 ;7-B &=  8 #  =  8 JOLON@LOLMLO( $äb£ )™ÕÃ<ÐL*š§™n/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/byteset.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Án/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/byteset.rsÁ cφÍò!W7�vï�µ€ä ä >('=  8 (+.'!4 %BN(! D,$B &  tÔŒ]×à· Åá˜kñÍm/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/memchr.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/memchr.rsÁ S ;8åAÅT#ª· b¦Ë%Ë%Æ'8  3 $01 %B8  3 >,%$ D,B &  #'8  3 $@--" %B8  3 G,%$ D,(B &  ''8  3 $@---& %B8  3 O,%$ D,7B &  J˜(zšŒ±¡o'•òJm/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/memmem.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/memmem.rsÁ ·ð:Bµç¼Vw9ÎÐ̲²\JE-'N  I $.K$ %BN  I 8,>$ DN  I /4F &N  I '  N  I  )>…Å †–Á57†-w¤l/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/teddy.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ál/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/teddy.rsÁ ÍžÜú—š™–8ɉ;Cj‰6‰6¤9#OIJK#4.PNMPOLO!4)8PO<4 '=  8 CIN+IIMNGB?D<M=/!@+?" G %B=  8 I,B D=  8 4;7-"F>B &=  8 4K  =  8 MNOOJLNOJPO3LNLMMO" C“EÓV�hÁ¶Ã­áÅpVj/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áj/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/mod.rsÁ ­ÆïS—pűPTÅ’ÎÛu‰Ð‰ÐÖ5>MMPN@MNMKNLKOPML!KILI  (',)(1DDEMMPILLHJKIMO@OH:L'$D :'%9/K'$ D :':9/#NIHHLLOP4GMKN 2 #H5P$%@ NP$$@ 3 7!M; O,'  " :2332137)= NKMM 2 8M$*%@ 3 N2OKKPLO:KL( 2 )"! O$*%@ 3 -9PNMMP 2 0M$.%@ 3 F'  " * LOPMP= 2 0M$.65B 62 %B 3 H'  " , M*'  " $ 0,'  " MLMLLMJLM.MMO2$'  "  GKJPB?+$PNMALOPCM%M@5%9B&9D(9& 9 KPJMMON'KMMOK1KMPK7GJJMNMIO$GBDO'H! N GI#;N JMPLO8/. 90/ 90/ 8/. 7.- 90/ =53 I NOO NJM-P"MNG"32.> O &:  N MG"32.> O &:  N ¢Hža 6¯É½9…Än�êg/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/primitives.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ág/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/primitives.rsÁ QÌ8iãÙôªÊgÈÑ3-s«Ø«ØˆK N!LM%KJL KKLMPNLP@KMJMF..P4NJMLO 7>%=&9P6BN# %ON(G&,NKNAOMLKNMOKPKNMJGH%LNLNEJ1KONE PJMPP( G!J L@!( 9M=?F@"JF$J%FNNO=J!N.=J,LH(MM(O7(N;P<&M+M4/,+F 5M+OMCHP+// 2;$2/ 5;$'6#"E9I 8#"E.I 8#"E.> 8%"G0G - ,<?+C COJ'H%..GJ #"#/, *CDH, A#;D8 =H6KP">@O%HGM5L)@8H12 'N(4"L 0 L&0 K)0 =MN,."O3MDJJO3OOFBL3%I,I6  O0*OP 22( 5>, "52( "8>, "*/ &=E &=E &=E (?E /?2 E L K/*H-#  ++OI'&   1*)D,'"6 "2) PLKM ) =,1& J*=,M53! HLKLIO4M(*I;F"AOOKMEM&F PHONO;.9 )%5 )#ºíY-9ýZÄpÈÌNgc/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/syntax.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/syntax.rsÁ åm•%Åÿ5U+ƒÄA‹ n«Š«Šâ?:;MMLJH  K9&4J/4,LL &'% H?/N2JK&"<A/J, #LK& &'C& =LDLMJPKMML4 M1@MKEIMKL1 FPN:LNIN5MNLLMNONOJ.8! 0MENPOFMKN-2 3(<16+@5"0%B.6+=2/%**1&8>#5)=3)7) #DJHJJLJHJIFLIILHIKGKHPN&LHFLL?,< IK #2EIJD=)" %2#. ¦ƒ©Ëþ/Õ2X 2˜ “·`œ^“ö'Íôå`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/int.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/int.rsÁ ¤CPüΉ²ƒ#vX¶ åò2ò2öLLPK M2IPMLJ$PPOLLLNM;OOKOO LLJG@ ! ! !! A &   !! A &   !!! A &  "! = &  ! ? &  ! ? &  ! ? &  LLOPNMMO, !¢ À�?íö¨Å"ÐÆlg/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/sparse_set.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ág/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/sparse_set.rsÁ ç `x°òhË �Ù\Ë‘�Ì>Ì>ïF!3*-MEIO&IOO>OMK  PK7,, B,K;(( %$9N1<;ML.FNP86I405MLK>9JNK6K @+K;,6 89*HO-4(7,M1L#DLO9; !A M!/ ! G9%A4%57J1M&G<=3ME*9,EÒqÄ4MÃ°Ä ,D/ô·a/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/utf8.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/utf8.rsÁ h}¼¹`”i}O3À¥¯«”ÌÖ8Ö8¿"FO MNK5,*L$#' ' ' +HM99MN@5A$,F:06'HL395F%/G$&;L(K 5$.+...O,H5<KN5"KLIPI!:ON5/MMOM%IMN6HFJNLOLONM(5 2P/# Y±îy+,zäҙ̅^/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/macros.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á^/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/macros.rsÁ †·Ï*¥d-¬ù ëñ¿+§§N,$  33nM㺥€@p«]�û}æK_/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á_/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/mod.rsÁ ¢w�¿Œ«² ŸnÕ¤Žâ‰‰7LRNPDNPNKK=MLIJN0NLPNMM FN,PN0HKFLLPNHNS8!fÙ=¢<¬¿ó~çÎùÀÛP`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/mod.rsÁ ÝÇBÐ^9¾ c¨f¤—0µ…««9L KI LJ"LM$J;F LKPJ.L=7¢)í¯OŠLZ/¶•€Ð¤sôl/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/determinize/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ál/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/determinize/mod.rsÁ È*G×·Ù3‹þðÚL­ÎõÎõªJ@KFLN&JLEDM GNH7OKINJHILM-D  - LONNMAMM2MMOGKPO)LOO)NPOK(&IP IKM$B)KGKHJ(%OJPNO*'L/3A2A&'), 77 .3 ; 9"/2M ""03 :",/A".1 IOON@ ENN;)* 0!'" O4FN15LI!BLJLMO1KDLOD'24 (#*2$+47IDIIKHHDA&LKNJMOP&KLNOKN":=:.%$-+5@%-+3?%-+ HK.OLOPPMNMNMOL2"G( 5O ( .:MIMMN DI8LOOO/"+OLK4NE!#210(::3?3')NP0@A&; MONNPPOOLMP'JL##3202/242A*7MLOEOJOLHFEPLMOLKMMOJOMMMJMLBNMKLLNNM3//'33)KNNMOPMOPMPMLL1OJI;MJPO'2NH2OPP'2/JJJIJD2 FD.(5L!)' =& )/:< ), 4H0/G)/:< 404N4PEJ)/:< 0P0EJ)/:< )0JNON6)203>@ ’I•{”Ÿæ(˜¦HÀµYíI)1_)ìa)Èm)x)Õ{)$~)ü�)±ƒ)YŠ)•)¡˜)>¢)Χ)¢­)ú¸)Ѽ)÷¿)«Ñ)ù×)3Û)?à)=å)ôæ)"ð)¡ñ)`ö)¾ù)ìü)Ó**¾*Ý*j * *o*ƒ*1*f*0*A*‚*ï#*.'*¢)*í+*?.*U0*¹1*B3*Ï4*x86_64-unknown-linux-gnuÁÜ{QwS¶­øZPõ” regex_automataÁ-c7b3f1c1cc1ae10fÁÜ0š•¶Åá×Òò¨!à Æß(óû `™ ’’‰&ÿ6‰&½ ø·½ ±9¸±9¶˜¶ŽpŽp”&ä¾ÄÔu & & &�& &·�& &·ú% ¿ž&â½ÿ6–¿ &ÿ6ÿ6àrÿ6ý¤ý¤£  &é &àr &àr &àr & ¿ &àrž&àrÚr©% &ûo›&àr¥$Ñr &ïlàr &àr›&Ñr¥$¥$ïlïl & ¿›Ñ3ä ¶¬bž&¢CÚrš&š&Îrÿ6Îrþmš& &Îr’àr¶9ÊÊÞCòp½ ¥$·"ïlž&¿ÚräÕÌ©–�äO�­K­K3ýŸ ™rust-end-file