From 4083865c6fdd46cff7b9962f4a78ff7cb4aff45a Mon Sep 17 00:00:00 2001 From: evgeny Date: Fri, 30 Oct 2026 12:12:53 +0100 Subject: [PATCH] Add the legacy BLE example as a reference --- BLE_EXAMPLE/src/.DS_Store | Bin 0 -> 6148 bytes BLE_EXAMPLE/src/main/.DS_Store | Bin 0 -> 6148 bytes BLE_EXAMPLE/src/main/AndroidManifest.xml | 38 + BLE_EXAMPLE/src/main/cpp/.DS_Store | Bin 0 -> 6148 bytes BLE_EXAMPLE/src/main/cpp/CMakeLists.txt | 99 + BLE_EXAMPLE/src/main/cpp/ble_eth.c | 190 + BLE_EXAMPLE/src/main/cpp/ble_eth.h | 29 + BLE_EXAMPLE/src/main/cpp/ble_tcp.c | 196 + BLE_EXAMPLE/src/main/cpp/ble_tcp.h | 57 + BLE_EXAMPLE/src/main/cpp/bt_drv.c | 355 ++ BLE_EXAMPLE/src/main/cpp/bt_drv.h | 9 + BLE_EXAMPLE/src/main/cpp/eth_mem.c | 377 ++ BLE_EXAMPLE/src/main/cpp/eth_mem.h | 234 ++ BLE_EXAMPLE/src/main/cpp/eth_nat.c | 489 +++ BLE_EXAMPLE/src/main/cpp/eth_nat.h | 40 + BLE_EXAMPLE/src/main/cpp/eth_queue.c | 34 + BLE_EXAMPLE/src/main/cpp/eth_queue.h | 14 + BLE_EXAMPLE/src/main/cpp/eth_router.c | 124 + BLE_EXAMPLE/src/main/cpp/eth_router.h | 58 + BLE_EXAMPLE/src/main/cpp/eth_router_cfg.h | 18 + BLE_EXAMPLE/src/main/cpp/images.c | 138 + BLE_EXAMPLE/src/main/cpp/lwip/api/api_lib.c | 1367 +++++++ BLE_EXAMPLE/src/main/cpp/lwip/api/api_msg.c | 2173 ++++++++++ BLE_EXAMPLE/src/main/cpp/lwip/api/err.c | 115 + BLE_EXAMPLE/src/main/cpp/lwip/api/if_api.c | 102 + BLE_EXAMPLE/src/main/cpp/lwip/api/tcpip.c | 669 ++++ BLE_EXAMPLE/src/main/cpp/lwip/core/def.c | 240 ++ .../src/main/cpp/lwip/core/inet_chksum.c | 608 +++ BLE_EXAMPLE/src/main/cpp/lwip/core/init.c | 380 ++ BLE_EXAMPLE/src/main/cpp/lwip/core/ip.c | 167 + .../src/main/cpp/lwip/core/ipv4/autoip.c | 527 +++ .../src/main/cpp/lwip/core/ipv4/dhcp.c | 1990 ++++++++++ .../src/main/cpp/lwip/core/ipv4/etharp.c | 1204 ++++++ .../src/main/cpp/lwip/core/ipv4/icmp.c | 404 ++ .../src/main/cpp/lwip/core/ipv4/igmp.c | 801 ++++ BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4.c | 1132 ++++++ .../src/main/cpp/lwip/core/ipv4/ip4_addr.c | 321 ++ .../src/main/cpp/lwip/core/ipv4/ip4_frag.c | 894 +++++ BLE_EXAMPLE/src/main/cpp/lwip/core/mem.c | 1017 +++++ BLE_EXAMPLE/src/main/cpp/lwip/core/memp.c | 447 +++ BLE_EXAMPLE/src/main/cpp/lwip/core/netif.c | 1795 +++++++++ BLE_EXAMPLE/src/main/cpp/lwip/core/pbuf.c | 1514 +++++++ BLE_EXAMPLE/src/main/cpp/lwip/core/raw.c | 671 ++++ BLE_EXAMPLE/src/main/cpp/lwip/core/stats.c | 169 + BLE_EXAMPLE/src/main/cpp/lwip/core/sys.c | 148 + BLE_EXAMPLE/src/main/cpp/lwip/core/tcp.c | 2686 +++++++++++++ BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_in.c | 2178 ++++++++++ BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_out.c | 2190 ++++++++++ BLE_EXAMPLE/src/main/cpp/lwip/core/timeouts.c | 451 +++ BLE_EXAMPLE/src/main/cpp/lwip/core/udp.c | 1314 ++++++ BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.c | 1423 +++++++ BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.h | 192 + .../src/main/cpp/lwip/dhcpserver_options.h | 147 + BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.c | 255 ++ BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.h | 3 + .../src/main/cpp/lwip/eth_router_if_lwip.c | 150 + .../src/main/cpp/lwip/eth_router_if_lwip.h | 13 + .../src/main/cpp/lwip/include/arch/cc.h | 87 + .../src/main/cpp/lwip/include/arch/perf.h | 63 + .../src/main/cpp/lwip/include/arch/sys_arch.h | 65 + .../src/main/cpp/lwip/include/lwip/altcp.h | 201 + .../main/cpp/lwip/include/lwip/altcp_tcp.h | 72 + .../main/cpp/lwip/include/lwip/altcp_tls.h | 117 + .../src/main/cpp/lwip/include/lwip/api.h | 431 ++ .../include/lwip/apps/altcp_proxyconnect.h | 79 + .../lwip/apps/altcp_tls_mbedtls_opts.h | 67 + .../src/main/cpp/lwip/include/lwip/apps/fs.h | 126 + .../cpp/lwip/include/lwip/apps/http_client.h | 160 + .../main/cpp/lwip/include/lwip/apps/httpd.h | 255 ++ .../cpp/lwip/include/lwip/apps/httpd_opts.h | 396 ++ .../main/cpp/lwip/include/lwip/apps/lwiperf.h | 100 + .../main/cpp/lwip/include/lwip/apps/mdns.h | 105 + .../cpp/lwip/include/lwip/apps/mdns_opts.h | 81 + .../cpp/lwip/include/lwip/apps/mdns_priv.h | 74 + .../main/cpp/lwip/include/lwip/apps/mqtt.h | 205 + .../cpp/lwip/include/lwip/apps/mqtt_opts.h | 103 + .../cpp/lwip/include/lwip/apps/mqtt_priv.h | 104 + .../cpp/lwip/include/lwip/apps/netbiosns.h | 51 + .../lwip/include/lwip/apps/netbiosns_opts.h | 66 + .../main/cpp/lwip/include/lwip/apps/smtp.h | 128 + .../cpp/lwip/include/lwip/apps/smtp_opts.h | 81 + .../main/cpp/lwip/include/lwip/apps/snmp.h | 135 + .../cpp/lwip/include/lwip/apps/snmp_core.h | 377 ++ .../cpp/lwip/include/lwip/apps/snmp_mib2.h | 78 + .../cpp/lwip/include/lwip/apps/snmp_opts.h | 297 ++ .../cpp/lwip/include/lwip/apps/snmp_scalar.h | 113 + .../include/lwip/apps/snmp_snmpv2_framework.h | 32 + .../lwip/include/lwip/apps/snmp_snmpv2_usm.h | 24 + .../cpp/lwip/include/lwip/apps/snmp_table.h | 134 + .../lwip/include/lwip/apps/snmp_threadsync.h | 114 + .../main/cpp/lwip/include/lwip/apps/snmpv3.h | 114 + .../main/cpp/lwip/include/lwip/apps/sntp.h | 80 + .../cpp/lwip/include/lwip/apps/sntp_opts.h | 209 + .../cpp/lwip/include/lwip/apps/tftp_opts.h | 106 + .../cpp/lwip/include/lwip/apps/tftp_server.h | 95 + .../src/main/cpp/lwip/include/lwip/arch.h | 393 ++ .../src/main/cpp/lwip/include/lwip/autoip.h | 99 + .../src/main/cpp/lwip/include/lwip/debug.h | 161 + .../src/main/cpp/lwip/include/lwip/def.h | 152 + .../src/main/cpp/lwip/include/lwip/dhcp.h | 139 + .../src/main/cpp/lwip/include/lwip/dhcp6.h | 104 + .../src/main/cpp/lwip/include/lwip/dns.h | 131 + .../src/main/cpp/lwip/include/lwip/err.h | 117 + .../src/main/cpp/lwip/include/lwip/errno.h | 198 + .../src/main/cpp/lwip/include/lwip/etharp.h | 105 + .../src/main/cpp/lwip/include/lwip/ethip6.h | 68 + .../src/main/cpp/lwip/include/lwip/icmp.h | 110 + .../src/main/cpp/lwip/include/lwip/icmp6.h | 72 + .../src/main/cpp/lwip/include/lwip/if_api.h | 68 + .../src/main/cpp/lwip/include/lwip/igmp.h | 115 + .../src/main/cpp/lwip/include/lwip/inet.h | 169 + .../main/cpp/lwip/include/lwip/inet_chksum.h | 105 + .../src/main/cpp/lwip/include/lwip/init.h | 100 + .../src/main/cpp/lwip/include/lwip/ip.h | 330 ++ .../src/main/cpp/lwip/include/lwip/ip4.h | 111 + .../src/main/cpp/lwip/include/lwip/ip4_addr.h | 216 + .../src/main/cpp/lwip/include/lwip/ip4_frag.h | 100 + .../src/main/cpp/lwip/include/lwip/ip6.h | 93 + .../src/main/cpp/lwip/include/lwip/ip6_addr.h | 352 ++ .../src/main/cpp/lwip/include/lwip/ip6_frag.h | 144 + .../src/main/cpp/lwip/include/lwip/ip6_zone.h | 304 ++ .../src/main/cpp/lwip/include/lwip/ip_addr.h | 438 ++ .../src/main/cpp/lwip/include/lwip/mem.h | 82 + .../src/main/cpp/lwip/include/lwip/memp.h | 155 + .../src/main/cpp/lwip/include/lwip/mld6.h | 99 + .../src/main/cpp/lwip/include/lwip/nd6.h | 90 + .../src/main/cpp/lwip/include/lwip/netbuf.h | 116 + .../src/main/cpp/lwip/include/lwip/netdb.h | 150 + .../src/main/cpp/lwip/include/lwip/netif.h | 669 ++++ .../src/main/cpp/lwip/include/lwip/netifapi.h | 161 + .../src/main/cpp/lwip/include/lwip/opt.h | 3519 +++++++++++++++++ .../src/main/cpp/lwip/include/lwip/pbuf.h | 322 ++ .../cpp/lwip/include/lwip/priv/altcp_priv.h | 146 + .../main/cpp/lwip/include/lwip/priv/api_msg.h | 272 ++ .../cpp/lwip/include/lwip/priv/mem_priv.h | 84 + .../cpp/lwip/include/lwip/priv/memp_priv.h | 161 + .../cpp/lwip/include/lwip/priv/memp_std.h | 153 + .../cpp/lwip/include/lwip/priv/nd6_priv.h | 142 + .../cpp/lwip/include/lwip/priv/raw_priv.h | 69 + .../cpp/lwip/include/lwip/priv/sockets_priv.h | 175 + .../cpp/lwip/include/lwip/priv/tcp_priv.h | 523 +++ .../cpp/lwip/include/lwip/priv/tcpip_priv.h | 170 + .../main/cpp/lwip/include/lwip/prot/autoip.h | 78 + .../main/cpp/lwip/include/lwip/prot/dhcp.h | 178 + .../main/cpp/lwip/include/lwip/prot/dhcp6.h | 138 + .../src/main/cpp/lwip/include/lwip/prot/dns.h | 140 + .../main/cpp/lwip/include/lwip/prot/etharp.h | 114 + .../cpp/lwip/include/lwip/prot/ethernet.h | 125 + .../main/cpp/lwip/include/lwip/prot/iana.h | 97 + .../main/cpp/lwip/include/lwip/prot/icmp.h | 91 + .../main/cpp/lwip/include/lwip/prot/icmp6.h | 170 + .../main/cpp/lwip/include/lwip/prot/ieee.h | 91 + .../main/cpp/lwip/include/lwip/prot/igmp.h | 90 + .../src/main/cpp/lwip/include/lwip/prot/ip.h | 59 + .../src/main/cpp/lwip/include/lwip/prot/ip4.h | 131 + .../src/main/cpp/lwip/include/lwip/prot/ip6.h | 233 ++ .../main/cpp/lwip/include/lwip/prot/mld6.h | 71 + .../src/main/cpp/lwip/include/lwip/prot/nd6.h | 274 ++ .../src/main/cpp/lwip/include/lwip/prot/tcp.h | 100 + .../src/main/cpp/lwip/include/lwip/prot/udp.h | 68 + .../src/main/cpp/lwip/include/lwip/raw.h | 143 + .../src/main/cpp/lwip/include/lwip/sio.h | 142 + .../src/main/cpp/lwip/include/lwip/snmp.h | 213 + .../src/main/cpp/lwip/include/lwip/sockets.h | 688 ++++ .../src/main/cpp/lwip/include/lwip/stats.h | 491 +++ .../src/main/cpp/lwip/include/lwip/sys.h | 560 +++ .../src/main/cpp/lwip/include/lwip/tcp.h | 500 +++ .../src/main/cpp/lwip/include/lwip/tcpbase.h | 88 + .../src/main/cpp/lwip/include/lwip/tcpip.h | 113 + .../src/main/cpp/lwip/include/lwip/timeouts.h | 128 + .../src/main/cpp/lwip/include/lwip/udp.h | 195 + .../main/cpp/lwip/include/netif/bridgeif.h | 127 + .../cpp/lwip/include/netif/bridgeif_opts.h | 90 + .../src/main/cpp/lwip/include/netif/etharp.h | 3 + .../main/cpp/lwip/include/netif/ethernet.h | 77 + .../main/cpp/lwip/include/netif/ieee802154.h | 112 + .../src/main/cpp/lwip/include/netif/ppp/ccp.h | 164 + .../cpp/lwip/include/netif/ppp/chap-md5.h | 36 + .../cpp/lwip/include/netif/ppp/chap-new.h | 200 + .../main/cpp/lwip/include/netif/ppp/chap_ms.h | 44 + .../src/main/cpp/lwip/include/netif/ppp/eap.h | 169 + .../src/main/cpp/lwip/include/netif/ppp/ecp.h | 62 + .../main/cpp/lwip/include/netif/ppp/eui64.h | 102 + .../src/main/cpp/lwip/include/netif/ppp/fsm.h | 182 + .../main/cpp/lwip/include/netif/ppp/ipcp.h | 134 + .../main/cpp/lwip/include/netif/ppp/ipv6cp.h | 191 + .../src/main/cpp/lwip/include/netif/ppp/lcp.h | 179 + .../main/cpp/lwip/include/netif/ppp/magic.h | 130 + .../main/cpp/lwip/include/netif/ppp/mppe.h | 181 + .../src/main/cpp/lwip/include/netif/ppp/ppp.h | 698 ++++ .../cpp/lwip/include/netif/ppp/ppp_impl.h | 722 ++++ .../cpp/lwip/include/netif/ppp/ppp_opts.h | 610 +++ .../main/cpp/lwip/include/netif/ppp/pppapi.h | 137 + .../cpp/lwip/include/netif/ppp/pppcrypt.h | 144 + .../cpp/lwip/include/netif/ppp/pppdebug.h | 88 + .../main/cpp/lwip/include/netif/ppp/pppoe.h | 187 + .../cpp/lwip/include/netif/ppp/pppol2tp.h | 209 + .../main/cpp/lwip/include/netif/ppp/pppos.h | 126 + .../main/cpp/lwip/include/netif/ppp/upap.h | 131 + .../src/main/cpp/lwip/include/netif/ppp/vj.h | 169 + BLE_EXAMPLE/src/main/cpp/lwip/lwip.c | 79 + BLE_EXAMPLE/src/main/cpp/lwip/lwip.h | 17 + BLE_EXAMPLE/src/main/cpp/lwip/lwipopts.h | 175 + BLE_EXAMPLE/src/main/cpp/lwip/lwippools.h | 11 + BLE_EXAMPLE/src/main/cpp/lwip/mdns.c | 1139 ++++++ BLE_EXAMPLE/src/main/cpp/lwip/mdns.c_ | 1106 ++++++ BLE_EXAMPLE/src/main/cpp/lwip/mdns.h | 114 + BLE_EXAMPLE/src/main/cpp/lwip/mdns.h_ | 114 + BLE_EXAMPLE/src/main/cpp/lwip/net_raw.c | 124 + BLE_EXAMPLE/src/main/cpp/lwip/net_raw.h | 25 + BLE_EXAMPLE/src/main/cpp/lwip/net_topology.c | 229 ++ BLE_EXAMPLE/src/main/cpp/lwip/net_topology.h | 53 + .../src/main/cpp/lwip/netif/ethernet.c | 321 ++ BLE_EXAMPLE/src/main/cpp/lwip/tcpip.c | 673 ++++ BLE_EXAMPLE/src/main/cpp/settings.c | 47 + BLE_EXAMPLE/src/main/cpp/settings.h | 29 + BLE_EXAMPLE/src/main/cpp/xlib.c | 48 + BLE_EXAMPLE/src/main/cpp/xlib.h | 20 + .../java/ua/cn/stu/navigation/MainActivity.kt | 990 +++++ .../main/java/ua/cn/stu/navigation/Options.kt | 16 + .../navigation/ble/BluetoothLeService.java | 362 ++ .../navigation/ble/SampleGattAttributes.java | 80 + .../cn/stu/navigation/connection/ScanItem.kt | 6 + .../navigation/contract/ConstantManager.kt | 106 + .../navigation/contract/HasBatteryAction.kt | 18 + .../navigation/contract/HasCustomAction.kt | 23 + .../stu/navigation/contract/HasCustomTitle.kt | 11 + .../contract/HasDisconnectionAction.kt | 18 + .../navigation/contract/HasReturnAction.kt | 18 + .../cn/stu/navigation/contract/Navigator.kt | 43 + .../contract/OnChatClickListener.kt | 5 + .../contract/OnProfileClickListener.kt | 5 + .../contract/OnProfilePeriodClickListener.kt | 5 + .../contract/OnScanClickListener.kt | 5 + .../contract/OnStatClickListener.kt | 5 + .../stu/navigation/fragments/BMSFragment.kt | 300 ++ .../stu/navigation/fragments/DebugFragment.kt | 176 + .../stu/navigation/fragments/ExempleClass.kt | 51 + .../stu/navigation/fragments/HomeFragment.kt | 309 ++ .../navigation/fragments/ScanningFragment.kt | 111 + .../navigation/fragments/StatisticFragment.kt | 56 + .../navigation/fragments/TerminalFragment.kt | 468 +++ .../persistence/TerminalConstants.kt | 6 + .../persistence/preference/PreferenceKeys.kt | 40 + .../recyclers_adapters/ScanningAdapter.kt | 44 + .../recyclers_adapters/StatisticAdapter.kt | 39 + .../stu/navigation/rx/RxUpdateMainEvent.java | 43 + .../cn/stu/navigation/services/BasalPeriod.kt | 7 + .../navigation/services/BlockingQueue.java | 25 + .../navigation/services/TerminalViewModel.kt | 15 + .../ua/cn/stu/navigation/ui/theme/Color.kt | 8 + .../ua/cn/stu/navigation/ui/theme/Shape.kt | 11 + .../ua/cn/stu/navigation/ui/theme/Theme.kt | 44 + .../ua/cn/stu/navigation/ui/theme/Type.kt | 28 + BLE_EXAMPLE/src/main/res/.DS_Store | Bin 0 -> 10244 bytes BLE_EXAMPLE/src/main/res/anim/fade_in.xml | 5 + BLE_EXAMPLE/src/main/res/anim/fade_out.xml | 5 + BLE_EXAMPLE/src/main/res/anim/my_rotator.xml | 6 + BLE_EXAMPLE/src/main/res/anim/rotator.xml | 12 + BLE_EXAMPLE/src/main/res/anim/slide_in.xml | 5 + BLE_EXAMPLE/src/main/res/anim/slide_out.xml | 5 + .../main/res/drawable-hdpi/arrow_cancel.png | Bin 0 -> 21214 bytes .../src/main/res/drawable-hdpi/arrow_down.png | Bin 0 -> 7495 bytes .../main/res/drawable-hdpi/arrow_forward.png | Bin 0 -> 12152 bytes .../src/main/res/drawable-hdpi/arrow_left.png | Bin 0 -> 7228 bytes .../main/res/drawable-hdpi/arrow_right.png | Bin 0 -> 12152 bytes .../src/main/res/drawable-hdpi/arrow_up.png | Bin 0 -> 7457 bytes .../src/main/res/drawable-hdpi/back_arrow.png | Bin 0 -> 6967 bytes .../src/main/res/drawable-hdpi/box.png | Bin 0 -> 54019 bytes .../src/main/res/drawable-hdpi/center.png | Bin 0 -> 6961 bytes .../res/drawable-hdpi/ic_active_boluses.png | Bin 0 -> 849 bytes .../res/drawable-hdpi/ic_delete_period.png | Bin 0 -> 592 bytes .../src/main/res/drawable-hdpi/ic_time.png | Bin 0 -> 686 bytes .../ic_top_bar_profile_settings.xml | 27 + .../main/res/drawable-hdpi/rectangle_bg.xml | 9 + .../main/res/drawable-hdpi/switch_thumb.xml | 8 + .../main/res/drawable-hdpi/switch_truck.xml | 16 + .../src/main/res/drawable-mdpi/box.png | Bin 0 -> 23980 bytes ...x_alert_dialog_et_background_selector2.xml | 10 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../src/main/res/drawable-xhdpi/box.png | Bin 0 -> 87901 bytes .../src/main/res/drawable-xxhdpi/.DS_Store | Bin 0 -> 6148 bytes ...ex_alert_dialog_et_background_selector.xml | 10 + .../main/res/drawable-xxhdpi/arrow_power.png | Bin 0 -> 5166 bytes .../battery_for_dialog_100.png | Bin 0 -> 17592 bytes .../src/main/res/drawable-xxhdpi/box.png | Bin 0 -> 213485 bytes .../closing_the_2_arrow_layer.png | Bin 0 -> 4362 bytes .../closing_the_arrow_layer.png | Bin 0 -> 4814 bytes .../main/res/drawable-xxhdpi/ic_cannule.png | Bin 0 -> 604 bytes .../main/res/drawable-xxhdpi/ic_drawing.xml | 10 + .../main/res/drawable-xxhdpi/ic_reservoir.png | Bin 0 -> 432 bytes .../res/drawable-xxhdpi/massage_type_1_bg.xml | 9 + .../res/drawable-xxhdpi/massage_type_2_bg.xml | 9 + .../res/drawable-xxhdpi/massage_type_3_bg.xml | 9 + .../src/main/res/drawable-xxhdpi/send.png | Bin 0 -> 6630 bytes .../main/res/drawable-xxhdpi/speed_arrow.png | Bin 0 -> 38888 bytes .../res/drawable-xxhdpi/thumb_invisible.xml | 11 + .../main/res/drawable-xxhdpi/track_full.xml | 26 + .../main/res/drawable-xxhdpi/track_low.xml | 26 + .../main/res/drawable-xxhdpi/track_mid.xml | 26 + .../underlayer_power_arrow.png | Bin 0 -> 15547 bytes BLE_EXAMPLE/src/main/res/drawable/.DS_Store | Bin 0 -> 6148 bytes BLE_EXAMPLE/src/main/res/drawable/battery.png | Bin 0 -> 1553 bytes .../src/main/res/drawable/battery_10.png | Bin 0 -> 17093 bytes .../src/main/res/drawable/battery_100.png | Bin 0 -> 16626 bytes .../src/main/res/drawable/battery_30.png | Bin 0 -> 17141 bytes .../src/main/res/drawable/battery_50.png | Bin 0 -> 17124 bytes .../src/main/res/drawable/battery_70.png | Bin 0 -> 17090 bytes .../src/main/res/drawable/battery_90.png | Bin 0 -> 17084 bytes .../src/main/res/drawable/battery_circle.png | Bin 0 -> 26671 bytes .../drawable/battery_error_critical_off.png | Bin 0 -> 2181 bytes .../drawable/battery_error_lvl1_style3.png | Bin 0 -> 659984 bytes .../drawable/battery_error_lvl2_style3.png | Bin 0 -> 457977 bytes .../res/drawable/battery_for_dialog_10.png | Bin 0 -> 18374 bytes .../res/drawable/battery_for_dialog_30.png | Bin 0 -> 18388 bytes .../res/drawable/battery_for_dialog_50.png | Bin 0 -> 18394 bytes .../res/drawable/battery_for_dialog_70.png | Bin 0 -> 18324 bytes .../res/drawable/battery_for_dialog_90.png | Bin 0 -> 18317 bytes .../src/main/res/drawable/battery_shell.png | Bin 0 -> 4773 bytes .../src/main/res/drawable/bms_bottom_line.png | Bin 0 -> 8945 bytes .../src/main/res/drawable/bms_left_line.png | Bin 0 -> 25281 bytes .../src/main/res/drawable/bms_top_line.png | Bin 0 -> 2168 bytes .../drawable/bms_underlayer_for_numbers.png | Bin 0 -> 2832 bytes .../src/main/res/drawable/breaking.png | Bin 0 -> 3303 bytes .../drawable/breaking_error_lvl1_style3.png | Bin 0 -> 757445 bytes .../drawable/breaking_error_lvl2_style3.png | Bin 0 -> 522108 bytes .../main/res/drawable/breaking_error_off.png | Bin 0 -> 11873 bytes .../src/main/res/drawable/cell_highlight.png | Bin 0 -> 3891 bytes .../main/res/drawable/cell_metal_border.png | Bin 0 -> 163798 bytes .../res/drawable/cell_top_light_border.png | Bin 0 -> 90519 bytes .../src/main/res/drawable/chevron_down.xml | 8 + .../res/drawable/chevron_down_disabled.xml | 8 + .../closing_speed_arrow_lvl_minus_1.png | Bin 0 -> 8386 bytes .../closing_temperature_battery_layer.png | Bin 0 -> 6957 bytes BLE_EXAMPLE/src/main/res/drawable/connect.png | Bin 0 -> 597240 bytes .../src/main/res/drawable/connect_list.png | Bin 0 -> 636543 bytes .../res/drawable/darkening_top_and_bottom.png | Bin 0 -> 4462 bytes .../src/main/res/drawable/disconnect.png | Bin 0 -> 408249 bytes .../src/main/res/drawable/disconnect_list.png | Bin 0 -> 436809 bytes .../src/main/res/drawable/display_center.png | Bin 0 -> 263116 bytes .../main/res/drawable/display_center_half.png | Bin 0 -> 91474 bytes .../main/res/drawable/dual_pattern_bolus.png | Bin 0 -> 4749 bytes .../res/drawable/edit_text_foreground.xml | 12 + .../src/main/res/drawable/extended_bolus.png | Bin 0 -> 3181 bytes .../main/res/drawable/force_breaking_off.png | Bin 0 -> 18408 bytes .../res/drawable/force_breaking_off_2.png | Bin 0 -> 18503 bytes .../main/res/drawable/force_breaking_on.png | Bin 0 -> 1200182 bytes BLE_EXAMPLE/src/main/res/drawable/fork.png | Bin 0 -> 1976 bytes BLE_EXAMPLE/src/main/res/drawable/form.xml | 9 + BLE_EXAMPLE/src/main/res/drawable/ic_add.xml | 5 + .../ic_baseline_arrow_back_ios_24.xml | 5 + .../src/main/res/drawable/ic_chart_white.png | Bin 0 -> 683 bytes .../src/main/res/drawable/ic_circle_add.xml | 11 + BLE_EXAMPLE/src/main/res/drawable/ic_dec.xml | 12 + .../main/res/drawable/ic_delete_profile.png | Bin 0 -> 618 bytes BLE_EXAMPLE/src/main/res/drawable/ic_done.xml | 5 + .../res/drawable/ic_launcher_background.xml | 170 + .../main/res/drawable/ic_navigate_next.xml | 6 + .../main/res/drawable/ic_rename_profile.png | Bin 0 -> 412 bytes BLE_EXAMPLE/src/main/res/drawable/ic_send.xml | 6 + .../src/main/res/drawable/ic_top_bar.xml | 27 + .../src/main/res/drawable/line_big_border.png | Bin 0 -> 5043 bytes .../res/drawable/motor_error_lvl1_style3.png | Bin 0 -> 743288 bytes .../res/drawable/motor_error_lvl2_style3.png | Bin 0 -> 512293 bytes .../src/main/res/drawable/motor_error_off.png | Bin 0 -> 16214 bytes .../res/drawable/overflow_cell_highlight.png | Bin 0 -> 2821 bytes .../main/res/drawable/pedal_assist_off.png | Bin 0 -> 11893 bytes .../src/main/res/drawable/pedal_assist_on.png | Bin 0 -> 796704 bytes .../res/drawable/recuperation_off_active.png | Bin 0 -> 1416641 bytes .../res/drawable/recuperation_off_passive.png | Bin 0 -> 14209 bytes .../res/drawable/recupertion_on_active.png | Bin 0 -> 1195361 bytes .../res/drawable/side_highlights_blue.png | Bin 0 -> 2271 bytes .../res/drawable/side_highlights_green.png | Bin 0 -> 4124 bytes .../main/res/drawable/side_highlights_red.png | Bin 0 -> 2300 bytes .../src/main/res/drawable/simple_bolus.png | Bin 0 -> 4068 bytes .../src/main/res/drawable/speed_arrow_lv2.png | Bin 0 -> 36290 bytes .../src/main/res/drawable/speed_arrow_lv3.png | Bin 0 -> 30178 bytes .../res/drawable/speed_arrow_lvl_minus_1.png | Bin 0 -> 22849 bytes .../main/res/drawable/spinner_background.xml | 51 + .../src/main/res/drawable/super_bolus.png | Bin 0 -> 5437 bytes .../res/drawable/temp_error_lvl1_style3.png | Bin 0 -> 727924 bytes .../res/drawable/temp_error_lvl2_style3.png | Bin 0 -> 502861 bytes .../src/main/res/drawable/temp_error_off.png | Bin 0 -> 10801 bytes .../res/drawable/temperature_alert_circle.png | Bin 0 -> 22016 bytes .../main/res/drawable/temperature_circle.png | Bin 0 -> 26439 bytes .../src/main/res/font/exo2_0_regular.otf | Bin 0 -> 67220 bytes .../src/main/res/font/font_open_sans.ttf | Bin 0 -> 224592 bytes .../main/res/font/ropa_sans_pro_regular.ttf | Bin 0 -> 125436 bytes .../main/res/font/sf_pro_display_light.otf | Bin 0 -> 318908 bytes .../src/main/res/font/sf_pro_text_bold.otf | Bin 0 -> 341844 bytes .../src/main/res/layout/activity_main.xml | 266 ++ .../main/res/layout/dialog_disconnection.xml | 171 + .../src/main/res/layout/fragment_bms.xml | 571 +++ .../src/main/res/layout/fragment_debug.xml | 794 ++++ .../src/main/res/layout/fragment_home.xml | 902 +++++ .../src/main/res/layout/fragment_scanning.xml | 15 + .../main/res/layout/fragment_statistic.xml | 19 + .../src/main/res/layout/fragment_terminal.xml | 189 + BLE_EXAMPLE/src/main/res/layout/item_scan.xml | 107 + .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 38856 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 44692 bytes BLE_EXAMPLE/src/main/res/raw/error.json | 1 + BLE_EXAMPLE/src/main/res/raw/loader.json | 1 + BLE_EXAMPLE/src/main/res/raw/success.json | 1 + BLE_EXAMPLE/src/main/res/raw/updating.json | 1 + .../src/main/res/values-night/strings.xml | 3 + .../src/main/res/values-night/themes.xml | 29 + .../src/main/res/values-ru/strings.xml | 163 + BLE_EXAMPLE/src/main/res/values/colors.xml | 50 + BLE_EXAMPLE/src/main/res/values/strings.xml | 164 + BLE_EXAMPLE/src/main/res/values/themes.xml | 91 + 411 files changed, 72114 insertions(+) create mode 100644 BLE_EXAMPLE/src/.DS_Store create mode 100644 BLE_EXAMPLE/src/main/.DS_Store create mode 100644 BLE_EXAMPLE/src/main/AndroidManifest.xml create mode 100644 BLE_EXAMPLE/src/main/cpp/.DS_Store create mode 100644 BLE_EXAMPLE/src/main/cpp/CMakeLists.txt create mode 100644 BLE_EXAMPLE/src/main/cpp/ble_eth.c create mode 100644 BLE_EXAMPLE/src/main/cpp/ble_eth.h create mode 100644 BLE_EXAMPLE/src/main/cpp/ble_tcp.c create mode 100644 BLE_EXAMPLE/src/main/cpp/ble_tcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/bt_drv.c create mode 100644 BLE_EXAMPLE/src/main/cpp/bt_drv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_mem.c create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_mem.h create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_nat.c create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_nat.h create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_queue.c create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_queue.h create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_router.c create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_router.h create mode 100644 BLE_EXAMPLE/src/main/cpp/eth_router_cfg.h create mode 100644 BLE_EXAMPLE/src/main/cpp/images.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/api/api_lib.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/api/api_msg.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/api/err.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/api/if_api.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/api/tcpip.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/def.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/inet_chksum.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/init.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ip.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/autoip.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/dhcp.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/etharp.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/icmp.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/igmp.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4_addr.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4_frag.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/mem.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/memp.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/netif.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/pbuf.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/raw.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/stats.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/sys.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/tcp.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_in.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_out.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/timeouts.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/core/udp.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/dhcpserver_options.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/eth_router_if_lwip.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/eth_router_if_lwip.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/arch/cc.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/arch/perf.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/arch/sys_arch.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp_tcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp_tls.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/api.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/altcp_proxyconnect.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/altcp_tls_mbedtls_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/fs.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/http_client.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/httpd.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/httpd_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/lwiperf.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/netbiosns.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/netbiosns_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/smtp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/smtp_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_core.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_mib2.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_scalar.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_snmpv2_framework.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_snmpv2_usm.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_table.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_threadsync.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmpv3.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/sntp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/sntp_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/tftp_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/tftp_server.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/arch.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/autoip.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/debug.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/def.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dhcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dhcp6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dns.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/err.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/errno.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/etharp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ethip6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/icmp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/icmp6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/if_api.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/igmp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/inet.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/inet_chksum.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/init.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4_addr.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4_frag.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_addr.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_frag.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_zone.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip_addr.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/mem.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/memp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/mld6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/nd6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netbuf.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netdb.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netif.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netifapi.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/opt.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/pbuf.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/altcp_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/api_msg.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/mem_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/memp_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/memp_std.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/nd6_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/raw_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/sockets_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/tcp_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/tcpip_priv.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/autoip.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dhcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dhcp6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dns.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/etharp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ethernet.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/iana.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/icmp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/icmp6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ieee.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/igmp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip4.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/mld6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/nd6.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/tcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/udp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/raw.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sio.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/snmp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sockets.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/stats.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sys.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcpbase.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcpip.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/timeouts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/udp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/bridgeif.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/bridgeif_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/etharp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ethernet.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ieee802154.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ccp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap-md5.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap-new.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap_ms.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/eap.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ecp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/eui64.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/fsm.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ipcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ipv6cp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/lcp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/magic.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/mppe.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp_impl.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp_opts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppapi.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppcrypt.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppdebug.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppoe.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppol2tp.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppos.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/upap.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/vj.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/lwip.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/lwip.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/lwipopts.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/lwippools.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/mdns.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/mdns.c_ create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/mdns.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/mdns.h_ create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/net_raw.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/net_raw.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/net_topology.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/net_topology.h create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/netif/ethernet.c create mode 100644 BLE_EXAMPLE/src/main/cpp/lwip/tcpip.c create mode 100644 BLE_EXAMPLE/src/main/cpp/settings.c create mode 100644 BLE_EXAMPLE/src/main/cpp/settings.h create mode 100644 BLE_EXAMPLE/src/main/cpp/xlib.c create mode 100644 BLE_EXAMPLE/src/main/cpp/xlib.h create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/MainActivity.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/Options.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ble/BluetoothLeService.java create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ble/SampleGattAttributes.java create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/connection/ScanItem.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/ConstantManager.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasBatteryAction.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasCustomAction.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasCustomTitle.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasDisconnectionAction.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasReturnAction.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/Navigator.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnChatClickListener.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnProfileClickListener.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnProfilePeriodClickListener.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnScanClickListener.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnStatClickListener.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/BMSFragment.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/DebugFragment.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/ExempleClass.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/HomeFragment.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/ScanningFragment.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/StatisticFragment.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/TerminalFragment.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/persistence/TerminalConstants.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/persistence/preference/PreferenceKeys.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/recyclers_adapters/ScanningAdapter.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/recyclers_adapters/StatisticAdapter.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/rx/RxUpdateMainEvent.java create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/BasalPeriod.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/BlockingQueue.java create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/TerminalViewModel.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Color.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Shape.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Theme.kt create mode 100644 BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Type.kt create mode 100644 BLE_EXAMPLE/src/main/res/.DS_Store create mode 100644 BLE_EXAMPLE/src/main/res/anim/fade_in.xml create mode 100644 BLE_EXAMPLE/src/main/res/anim/fade_out.xml create mode 100644 BLE_EXAMPLE/src/main/res/anim/my_rotator.xml create mode 100644 BLE_EXAMPLE/src/main/res/anim/rotator.xml create mode 100644 BLE_EXAMPLE/src/main/res/anim/slide_in.xml create mode 100644 BLE_EXAMPLE/src/main/res/anim/slide_out.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_cancel.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_down.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_forward.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_left.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_right.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_up.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/back_arrow.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/box.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/center.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_active_boluses.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_delete_period.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_time.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_top_bar_profile_settings.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/rectangle_bg.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/switch_thumb.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-hdpi/switch_truck.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-mdpi/box.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-v24/andex_alert_dialog_et_background_selector2.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xhdpi/box.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/.DS_Store create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/andex_alert_dialog_et_background_selector.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/arrow_power.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/battery_for_dialog_100.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/box.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/closing_the_2_arrow_layer.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/closing_the_arrow_layer.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/ic_cannule.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/ic_drawing.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/ic_reservoir.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_1_bg.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_2_bg.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_3_bg.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/send.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/speed_arrow.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/thumb_invisible.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_full.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_low.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_mid.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable-xxhdpi/underlayer_power_arrow.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/.DS_Store create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_10.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_100.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_30.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_50.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_70.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_90.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_circle.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_error_critical_off.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_error_lvl1_style3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_error_lvl2_style3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_10.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_30.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_50.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_70.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_90.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/battery_shell.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/bms_bottom_line.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/bms_left_line.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/bms_top_line.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/bms_underlayer_for_numbers.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/breaking.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/breaking_error_lvl1_style3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/breaking_error_lvl2_style3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/breaking_error_off.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/cell_highlight.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/cell_metal_border.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/cell_top_light_border.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/chevron_down.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/chevron_down_disabled.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/closing_speed_arrow_lvl_minus_1.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/closing_temperature_battery_layer.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/connect.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/connect_list.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/darkening_top_and_bottom.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/disconnect.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/disconnect_list.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/display_center.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/display_center_half.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/dual_pattern_bolus.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/edit_text_foreground.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/extended_bolus.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/force_breaking_off.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/force_breaking_off_2.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/force_breaking_on.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/fork.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/form.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_add.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_baseline_arrow_back_ios_24.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_chart_white.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_circle_add.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_dec.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_delete_profile.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_done.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_launcher_background.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_navigate_next.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_rename_profile.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_send.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/ic_top_bar.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/line_big_border.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/motor_error_lvl1_style3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/motor_error_lvl2_style3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/motor_error_off.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/overflow_cell_highlight.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/pedal_assist_off.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/pedal_assist_on.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/recuperation_off_active.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/recuperation_off_passive.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/recupertion_on_active.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/side_highlights_blue.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/side_highlights_green.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/side_highlights_red.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/simple_bolus.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/speed_arrow_lv2.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/speed_arrow_lv3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/speed_arrow_lvl_minus_1.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/spinner_background.xml create mode 100644 BLE_EXAMPLE/src/main/res/drawable/super_bolus.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/temp_error_lvl1_style3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/temp_error_lvl2_style3.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/temp_error_off.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/temperature_alert_circle.png create mode 100644 BLE_EXAMPLE/src/main/res/drawable/temperature_circle.png create mode 100644 BLE_EXAMPLE/src/main/res/font/exo2_0_regular.otf create mode 100644 BLE_EXAMPLE/src/main/res/font/font_open_sans.ttf create mode 100644 BLE_EXAMPLE/src/main/res/font/ropa_sans_pro_regular.ttf create mode 100644 BLE_EXAMPLE/src/main/res/font/sf_pro_display_light.otf create mode 100644 BLE_EXAMPLE/src/main/res/font/sf_pro_text_bold.otf create mode 100644 BLE_EXAMPLE/src/main/res/layout/activity_main.xml create mode 100644 BLE_EXAMPLE/src/main/res/layout/dialog_disconnection.xml create mode 100644 BLE_EXAMPLE/src/main/res/layout/fragment_bms.xml create mode 100644 BLE_EXAMPLE/src/main/res/layout/fragment_debug.xml create mode 100644 BLE_EXAMPLE/src/main/res/layout/fragment_home.xml create mode 100644 BLE_EXAMPLE/src/main/res/layout/fragment_scanning.xml create mode 100644 BLE_EXAMPLE/src/main/res/layout/fragment_statistic.xml create mode 100644 BLE_EXAMPLE/src/main/res/layout/fragment_terminal.xml create mode 100644 BLE_EXAMPLE/src/main/res/layout/item_scan.xml create mode 100644 BLE_EXAMPLE/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 BLE_EXAMPLE/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 BLE_EXAMPLE/src/main/res/raw/error.json create mode 100644 BLE_EXAMPLE/src/main/res/raw/loader.json create mode 100644 BLE_EXAMPLE/src/main/res/raw/success.json create mode 100644 BLE_EXAMPLE/src/main/res/raw/updating.json create mode 100644 BLE_EXAMPLE/src/main/res/values-night/strings.xml create mode 100644 BLE_EXAMPLE/src/main/res/values-night/themes.xml create mode 100644 BLE_EXAMPLE/src/main/res/values-ru/strings.xml create mode 100644 BLE_EXAMPLE/src/main/res/values/colors.xml create mode 100644 BLE_EXAMPLE/src/main/res/values/strings.xml create mode 100644 BLE_EXAMPLE/src/main/res/values/themes.xml diff --git a/BLE_EXAMPLE/src/.DS_Store b/BLE_EXAMPLE/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f704553eecdb0ca3229d7249ef7b0d4620e751f4 GIT binary patch literal 6148 zcmeHKy-ve05VlJJM+hkc2*yaPNVNP^LM)+_k%b@_0JRCJXha%U{h>ouDKoqa3kwgx zGcYl;@dgas*=}i7U_=$Vlg{7yer)GUWXFs#UhIT<#%#uz07cAL(0n5pN1c$2@yr2o z93$wq8bK@r=s!(llVchgz;~Brb>_2(C8O^zXv9&goy)!O%uIH6ZeGlb1##)sWY=r^ z?M|!cH_x$mB4r#5Y(F@Ss@<}^bRd(qA0^eMDu}`=q+FauNhrHT*-65ds`Ye0Si&mX ztG(W4A-C>q?d1FGPH%S;?Cq^Wzi)}w@=aV%)j zKm7UrKVC#VVt^RH|*}_0=TD}EAi9`$EK$Di| z2hcNncR0Q{hz=pN8{JL34^MXN_)u_j}#%)tT$LRc=dLCmfUN6VWoHrZ0 zm+gt^x2P@mIxp_=226|JdjhTff6CMT?KD#6?7pmAO}_dxb!EnC)Z=^C%qJ!ahytR( ztO8iG*}^4@GK&JDfGAKXz|RMb!5BHrEt*FMCbIcQ{r&#m zFOnlsKos~_3aB9N#4WVs*49dMyw+-rE(ROt + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/cpp/.DS_Store b/BLE_EXAMPLE/src/main/cpp/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c7c8bf12148e9f9d92aa488ef1ba70e76f13801b GIT binary patch literal 6148 zcmeHK!AitH3{Bh~3SRc;aXfkQu;2&OrQ*ed&<{{{i>uJmf~eR2fj{LB_#qHL6$w5&7xX&Z9lQeUv8Y{CN{=T3*|IRosmx^>kO)&VV!E3^)VMfG~hNTO{9CbnOf{1J1yf0XZK6hG1bh zD8{1$Dz*T?4DKkfrI(PLU|1Lqiikj1Q-PYw)?%=x!yjy2VK^viI@8cJdQ|iJT(`F{tq%Hr5q}gQDyr{+JH*AAv}SD`(&r82A9+U_(g& literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/cpp/CMakeLists.txt b/BLE_EXAMPLE/src/main/cpp/CMakeLists.txt new file mode 100644 index 000000000..4c1928d62 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/CMakeLists.txt @@ -0,0 +1,99 @@ + +# For more information about using CMake with Android Studio, read the +# documentation: https://d.android.com/studio/projects/add-native-code.html + +# Sets the minimum version of CMake required to build the native library. + +cmake_minimum_required(VERSION 3.18.1) + +# Declares and names the project. + +project("bt_drv") + +# Creates and names a library, sets it as either STATIC +# or SHARED, and provides the relative paths to its source code. +# You can define multiple libraries, and CMake builds them for you. +# Gradle automatically packages shared libraries with your APK. + +add_library( # Sets the name of the library. + bt_drv + + # Sets the library as a shared library. + SHARED + + # Provides a relative path to your source file(s). + bt_drv.c + ble_tcp.c + ble_eth.c + eth_mem.c + eth_router.c + eth_nat.c + eth_queue.c + xlib.c + settings.c + images.c + + +# LWIP +# lwip/api/api_lib.c +#// lwip/api/api_msg.c +#// lwip/api/err.c +#// lwip/api/if_api.c +#// lwip/api/tcpip.c + lwip/dnsproxy.c + lwip/dhcp_server.c + lwip/net_raw.c + lwip/net_topology.c + lwip/lwip.c + lwip/eth_router_if_lwip.c + lwip/core/def.c + lwip/core/inet_chksum.c + lwip/core/init.c + lwip/core/ip.c + lwip/core/mem.c + lwip/core/memp.c + lwip/core/netif.c + lwip/core/pbuf.c + lwip/core/raw.c + lwip/core/stats.c + lwip/core/sys.c + lwip/core/tcp.c + lwip/core/tcp_in.c + lwip/core/tcp_out.c + lwip/core/timeouts.c + lwip/core/udp.c + lwip/core/ipv4/icmp.c + lwip/core/ipv4/ip4.c + lwip/core/ipv4/ip4_addr.c + lwip/core/ipv4/ip4_frag.c + lwip/core/ipv4/etharp.c + lwip/netif/ethernet.c + ) +include_directories( + . + lwip + lwip/include +) +# Searches for a specified prebuilt library and stores the path as a +# variable. Because CMake includes system libraries in the search path by +# default, you only need to specify the name of the public NDK library +# you want to add. CMake verifies that the library exists before +# completing its build. + +find_library( # Sets the name of the path variable. + log-lib + + # Specifies the name of the NDK library that + # you want CMake to locate. + log ) + +# Specifies libraries CMake should link to your target library. You +# can link multiple libraries, such as libraries you define in this +# build script, prebuilt third-party libraries, or system libraries. + +target_link_libraries( # Specifies the target library. + bt_drv + + # Links the target library to the log library + # included in the NDK. + ${log-lib} ) diff --git a/BLE_EXAMPLE/src/main/cpp/ble_eth.c b/BLE_EXAMPLE/src/main/cpp/ble_eth.c new file mode 100644 index 000000000..5e00490ea --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/ble_eth.c @@ -0,0 +1,190 @@ +#include +#include +#include +#include "xlib.h" +#include "ble_eth.h" +#include "eth_mem.h" +#include "eth_router.h" +#include "ble_tcp.h" + +//#define BLE_FLOOD_TEST +// модуль разобрки-сборки кодограмм на фрагменты. Работает вместе с ble_tcp и с ble_link + +/* Формат посылки: +Кодограмма разбиватеся на куски. К каждому куску в начале добавляется один байт. +Формат байта: байт0 биты 6,7 - тип посылки. Биты 0-5 будут перезаписаны при передаче. + bit7:6 - тип кодограммы: + 00 (0x00) - промежуточный блок кодограммы + 01 (0x40) - первый блок кодограммы + 10 (0x80) - последний блок кодограммы + 11 (0xC0) - вся кодограмма в одном фрагменте +*/ + +struct BLE_ETH_STATS ble_eth_stats; + +static struct ETH_PBUF* current_tx_block=NULL; +static uint8_t eth_rst_req_rx; +static uint8_t tx_rst=0; + +void gatt_eth_reset() { + eth_rst_req_rx=1; + tx_rst=1; + } + +static struct ETH_PBUF* rx_pbuf=NULL; +static uint16_t rx_ptr; + +static uint8_t rx_prev_seq; +static uint8_t rx_seq_err; + +int process_dgram_asm(uint8_t* data, uint16_t len) {// BLE to ETH_router + + ble_eth_stats.rx_chunks++; + if (len<2) { ble_eth_stats.rx_too_short_chunk++; return 0; } + +// if (eth_netif_array[BLE_NETIF_ID].input_queue_len>IN_BLE_NETIF_QLEN_THR) { ble_eth_stats.rx_qpause++; return -1; }// очередь заполнена, временно не принимаем новое (loopback test mode) +// если очередь полная, то приостановим поток + + if (eth_rst_req_rx) { + eth_rst_req_rx=0; + if (rx_pbuf) { + eth_pbuf_free_request(rx_pbuf); + rx_pbuf=NULL; + } + rx_ptr=0; + } + + uint8_t dg_type=data[0]&0x0C0; + uint8_t dg_seq=data[0]&0x03F; + if (dg_type & 0x40) {// first block + rx_ptr=0; + rx_seq_err=0; + rx_prev_seq=(dg_seq-1)&0x03F; + if (rx_pbuf==NULL) rx_pbuf=eth_pbuf_alloc(&xeth_pbuf_ctrl, NULL); + if (rx_pbuf==NULL) { ble_eth_stats.rx_pbuf_alloc_err++; return -1; } + } + if (rx_pbuf!=NULL) { + rx_prev_seq=(rx_prev_seq+1)&0x3F; + if (rx_prev_seq!=dg_seq || rx_seq_err) { + ble_eth_stats.rx_seqerr++; + eth_pbuf_free_request(rx_pbuf); + rx_pbuf=NULL; + return 0; + } + len--; + if (rx_ptr+len<=ETH_MEM_BUF_SIZE) { + memcpy((uint8_t*)rx_pbuf->pbuf.payload+rx_ptr, data+1, len); + rx_ptr+=len; + if (dg_type & 0x080) {// last block + rx_pbuf->pbuf.len=rx_ptr; + rx_pbuf->pbuf.tot_len=rx_ptr; + rx_pbuf->pbuf.if_idx=BLE_NETIF_ID; + if (rx_ptr>=14) { ble_eth_stats.rx_dgrams++; eth_add_packet_to_router_queue(rx_pbuf); } + else { ble_eth_stats.rx_too_short_dgram++; eth_pbuf_free_request(rx_pbuf); } + rx_pbuf=NULL; + } + } + else {// invalid block + ble_eth_stats.rx_oversize++; + eth_pbuf_free_request(rx_pbuf); + rx_pbuf=NULL; + } + } + return 0; + } + + + +#define MAX_CHUNK_LEN 167//239 +static uint16_t chunk_len;// for BLE - current chunk length +static uint16_t tx_ptr;// pointer for chunks + +static int cbk_pending=0; +int get_next_chunk(uint8_t* chunk_for_tx) {// взять новый блок. Или NULL если блока нет (если блока нет - будет вызван коллбэк) + + if (tx_rst) { + tx_rst=0; + tx_ptr=0; + } + +#ifdef BLE_FLOOD_TEST + ble_eth_stats.tx_chunks++; + chunk_for_tx[0]=0xC0; + return 240;// for test +#endif + if (cbk_pending) return 0; + if (current_tx_block==NULL) { + cbk_pending=1; + struct ETH_PBUF* tb=eth_get_packet(ð_netif_array[BLE_NETIF_ID]); + if (tb==NULL) { + return 0;// waiting for callback + } else { current_tx_block=tb; cbk_pending=0; } + + } + + uint8_t pkt_sent;// 0 - no data; 1 - send in progress, 2 - send finished + int32_t len=current_tx_block->pbuf.len-tx_ptr; + if (tx_ptr==0) chunk_for_tx[1]=0x40; else chunk_for_tx[1]=0; + if (len>MAX_CHUNK_LEN) { len=MAX_CHUNK_LEN; pkt_sent=0; } else { chunk_for_tx[1]|=0x80; pkt_sent=1; } + chunk_len=len+2; + memcpy(&chunk_for_tx[2], (uint8_t*)(current_tx_block->pbuf.payload)+tx_ptr, len); + tx_ptr+=len; + + if (pkt_sent) {// последний блок скопирован в chunk_for_tx. пакат можно освобождать + ble_eth_stats.tx_dgrams++; + eth_pbuf_free_request(current_tx_block); + current_tx_block=NULL; + tx_ptr=0; + } + + ble_eth_stats.tx_chunks++; + return chunk_len; + } + +void next_chunk_avail(); + +static void callback_from_bridge(struct ETH_PBUF* block, struct ETH_NETIF* enetif) {// появился пакет на передачу + current_tx_block=block; + cbk_pending=0; + next_chunk_avail(); + } + +void ble_callback_qlen(struct ETH_NETIF* netif) { + if (netif->input_queue_lenpbuf.payload, 0,1000); + char* d=(char*)block->pbuf.payload; + d[0]=1; + d[1]=2; + d[2]=3; + d[3]=4; + d[4]=5; + d[5]=6; + + block->pbuf.len=230; + block->pbuf.tot_len=230; + block->pbuf.if_idx=LWIP_NETIF_ID; + eth_add_packet_to_router_queue(block); + } + usleep(1000*500); + } + } +pthread_t ttHandle; + +void eth_ble_if_init() { + eth_netif_array[BLE_NETIF_ID].callback_fn=callback_from_bridge;// инициализируем callback (пакет готов) + eth_netif_array[BLE_NETIF_ID].q_output_len_max=BLE_NETIF_QLEN; + eth_netif_array[BLE_NETIF_ID].q_update_cbk=ble_callback_qlen; + eth_netif_array[BLE_NETIF_ID].if_up=1; +// TaskCreate (tcp_test_Task, &ttHandle); + + eth_netif_array[TEST_NETIF_ID].q_output_len_max=BLE_NETIF_QLEN; + eth_netif_array[TEST_NETIF_ID].if_up=1; + } diff --git a/BLE_EXAMPLE/src/main/cpp/ble_eth.h b/BLE_EXAMPLE/src/main/cpp/ble_eth.h new file mode 100644 index 000000000..b552bc004 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/ble_eth.h @@ -0,0 +1,29 @@ +#pragma once +#include +#define MAX_CHUNK_LEN 167 + +struct BLE_ETH_STATS { + uint32_t tx_chunks; + uint32_t rx_chunks; + uint32_t tx_dgrams; + uint32_t rx_dgrams; + + uint32_t rx_too_short_chunk; + uint32_t rx_too_short_dgram; + uint32_t rx_oversize; + uint32_t rx_pbuf_alloc_err; + uint32_t rx_qpause; + uint32_t rx_seqerr; + + uint32_t d1; + uint32_t d2; + uint32_t d3; + uint32_t d4; +}; + +extern struct BLE_ETH_STATS ble_eth_stats; + +int get_next_chunk(uint8_t* chunk_for_tx); +int process_dgram_asm(uint8_t* data, uint16_t len); +void eth_ble_if_init(); +void gatt_eth_reset(); diff --git a/BLE_EXAMPLE/src/main/cpp/ble_tcp.c b/BLE_EXAMPLE/src/main/cpp/ble_tcp.c new file mode 100644 index 000000000..98a7d6fd4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/ble_tcp.c @@ -0,0 +1,196 @@ +#include +#include +#include +#include +#include "ble_tcp.h" +#include "xlib.h" +#include "bt_drv.h" +#include "eth_mem.h" +#include "eth_router.h" +#include "ble_eth.h" +// модуль обеспечивающий ретрансмиссии, буферизацию, контроль потока для GATT посылок. +#define ACK_MIN_INTERVAL 25// mS. на эту величину может задерживаться отправка ACK +//#define print_pkt_body + +static uint32_t last_ack_time; +static uint8_t ack_sent_value; +static uint8_t snd_blk_len; +static uint8_t snd_blk[MAX_CHUNK_LEN+2]; + +static struct itimerspec trigger; +static timer_t timerid; +static uint8_t ack_notify_request; + +#define TMR_CHECK_TXBUF_PERIOD 100 + +//static TimerHandle_t xTcpTimer; +static struct NHandle_t tNotifyHandle; +pthread_t tHandle; +pthread_t tHandle1; + +sem_t tcp_tx_sem; +sem_t tcp_rx_sem; + +#define TX_LOCK sem_wait(&tcp_tx_sem) +#define TX_UNLOCK sem_post(&tcp_tx_sem) +#define RX_LOCK sem_wait(&tcp_rx_sem) +#define RX_UNLOCK sem_post(&tcp_rx_sem) + +#define taskNOTIFY_ACK_UPDATE 1// очередь передачи +#define taskNOTIFY_NEXT_CHUNK_AVAIL 2 +#define taskNOTIFY_NEXT_CHUNK_FOR_TX_AVAIL 4 +#define taskNOTIFY_BLE_TX_COMPLETE 8 +#define taskNOTIFY_nACK_UPDATE 16// приемная очередь +#define taskNOTIFY_TMR_IDLE 64 +#define taskNOTIFY_PUSH_RECVD 256 + +struct BLE_TCP_STATS ble_tcp_stats; +struct BLE_TCP ble_tcp; + + +uint8_t tx_index_blk;// ячейка ожидающая передачу +uint8_t tx_push_ptr_blk;// ячейка ожидающая добавление элемента +static uint32_t tx_last_time;// ячейка ожидающая добавление элемента + + +uint8_t rx_nack_blk;// циклический номер блока, ожидающего приём + +void gatt_conn_reset() { + TX_LOCK; + RX_LOCK; + ble_tcp.ble_tx_busy=0; + ble_tcp_stats.rst_cnt++; + rx_nack_blk=1; + tx_index_blk=0; + tx_push_ptr_blk=0; + snd_blk_len=0; + gatt_eth_reset(); + TNotifyAdd( &tNotifyHandle, taskNOTIFY_BLE_TX_COMPLETE); + RX_UNLOCK; + TX_UNLOCK; + } + +void notify_ble_out_queue() {// callback: обновилась очередь ETH / ble_if + TNotifyAdd(&tNotifyHandle, taskNOTIFY_PUSH_RECVD); + } + +void process_gatt_data(uint8_t* data, uint16_t len) { + ble_tcp_stats.rx_raw++; + if (len<1) { ble_tcp_stats.rx_empty_dg++; return; } + ble_tcp_stats.rx_bytes+=len; +#ifdef print_pkt_body + if (len==1) print_log("Recv %d bytes [%02x]", len, data[0]); + else print_log("Recv %d bytes [%02x %02x]", len, data[0], data[1]); +#endif + TX_LOCK; + rx_nack_blk=data[0]&0x3F; + TNotifyAdd( &tNotifyHandle, taskNOTIFY_nACK_UPDATE ); + TX_UNLOCK; + + if (len>1) { + RX_LOCK; + process_dgram_asm(data+1, len-1); + RX_UNLOCK; + } +} + + +void next_chunk_avail() { + TNotifyAdd( &tNotifyHandle, taskNOTIFY_NEXT_CHUNK_AVAIL ); + } + +void ble_tx_complete(int status) { + ble_tcp.ble_tx_busy=0; + TNotifyAdd( &tNotifyHandle, taskNOTIFY_BLE_TX_COMPLETE );// ззавершена передача. можно затолкать в буфер передачи еще + } + +static int ble_gatt_trysend(uint8_t * data, uint16_t len) { + if (ble_connection_status!=2) return -3;// not ready for send + if (ble_tcp.ble_tx_busy) return -1; + ble_tcp.ble_tx_busy=1; + int ret=bt_send(data, len);// status: 1 - all ok, 0 - error + if (ret!=1) { ble_tcp.ble_tx_busy=0; return -2; } + ble_tcp_stats.tx_raw++; + +#ifdef print_pkt_body + if (len==1) print_log("Send %d bytes [%02x]", len, data[0]); + else print_log("Send %d bytes [%02x %02x]", len, data[0], data[1]); +#endif + + return 0; + } + +// байт 1 (или 1+2) - rx ack / sack +_Noreturn void BLE_TCP_Task(void * arg) { + + send_thread_register();// зарегистрировать в java VM этот поток для возможности совершать вызовы + + while (1) { + uint32_t res=TNotifyWait( &tNotifyHandle ); + +// попробуем передать что накопилось + if ((res & (taskNOTIFY_BLE_TX_COMPLETE | taskNOTIFY_NEXT_CHUNK_AVAIL | taskNOTIFY_nACK_UPDATE | taskNOTIFY_TMR_IDLE)) && ble_tcp.ble_tx_busy==0) { +dbg[0]++; + TX_LOCK; + + int idx=tx_index_blk; + int len=snd_blk_len; + if (len==0) { + len=get_next_chunk(&snd_blk[0]); + snd_blk_len=len; + } + + + + if (len || (ack_notify_request && ack_sent_value!=rx_nack_blk )) {// шлем если есть что слать, либо пора отправить обновление по ACK + uint32_t ack=rx_nack_blk; + + snd_blk[0]=ack; + if (len==0) len=1; + else snd_blk[1]=(idx&0x3F)|(snd_blk[1] & 0xC0);// сохраняем биты признака начала-конца кодограммы для разобрщика кодограмм +// 167 = 5 (800) *9=1503 (169 bytes max incl. headers) + int ret=ble_gatt_trysend(&snd_blk[0], len);// ack + dgram + if (ret==0) { + snd_blk_len=0; + ble_tcp_stats.tx_bytes+=len; + ble_tcp_stats.tx_blocks++; + ack_sent_value=ack; + ack_notify_request=0; + timer_settime(timerid, 0, &trigger, NULL); + tx_index_blk=(idx+1)&0x3F; + } + } + + TX_UNLOCK; + } + + } + } + +static void tcp_tmr( void* arg ) { + TX_LOCK; + ack_notify_request=1; + TX_UNLOCK; + TNotifyAdd( &tNotifyHandle, taskNOTIFY_TMR_IDLE);// no activity. for timed-out retransmit +} + +void ble_tcp_init() { + sem_init(&tcp_tx_sem, 0, 1); + sem_init(&tcp_rx_sem, 0, 1); + + tx_last_time=xTaskGetTickCount(); + TaskCreate (BLE_TCP_Task, &tHandle); + TNotifyCreate(&tNotifyHandle); + TNotifyAdd( &tNotifyHandle, taskNOTIFY_ACK_UPDATE); + + struct sigevent sev; + memset(&sev, 0, sizeof(struct sigevent)); + sev.sigev_notify = SIGEV_THREAD; + sev.sigev_notify_function = &tcp_tmr; + memset(&trigger, 0, sizeof(struct itimerspec)); + timer_create(CLOCK_REALTIME, &sev, &timerid); + trigger.it_value.tv_sec = ACK_MIN_INTERVAL/1000000; + trigger.it_value.tv_nsec = ACK_MIN_INTERVAL*1000000; + timer_settime(timerid, 0, &trigger, NULL); + + } diff --git a/BLE_EXAMPLE/src/main/cpp/ble_tcp.h b/BLE_EXAMPLE/src/main/cpp/ble_tcp.h new file mode 100644 index 000000000..ad554baab --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/ble_tcp.h @@ -0,0 +1,57 @@ +struct BLE_TCP_STATS { + uint32_t tx_raw; + uint32_t rx_raw; + uint32_t tx_blocks; + uint32_t rx_blocks; + uint32_t tx_err; + uint32_t tx_ack_err; + uint32_t tx_sack_err; + uint32_t tx_ack_negdist_err; + uint32_t tx_ack_toomuch_err; + + uint32_t ack_upd; + uint32_t rx_empty_dg; + uint32_t rx_only_ack; + uint32_t rx_seq_err; + uint32_t rx_dup_ack; + uint32_t rx_neg_ack; + uint32_t rx_duplicates; + uint32_t rx_detected_retransmit_jumps; + uint32_t rx_detected_packet_loss_single; + uint32_t rx_detected_packet_loss_multiple; + uint32_t rx_detected_incorrect_jumps; + + uint32_t rst_cnt; + uint32_t rstreq_cnt; + uint32_t rxasm_throttle; + uint32_t rxasm_try; + uint32_t tx_bytes; + uint32_t rx_bytes; + uint32_t d1; + uint32_t d2; + uint32_t d3; + uint32_t d4; + }; +extern struct BLE_TCP_STATS ble_tcp_stats; + +struct BLE_TCP { + uint32_t ble_tx_busy; + }; +extern struct BLE_TCP ble_tcp; + + +extern uint8_t tx_busy_mask[8]; +extern uint8_t rx_ready_mask[8]; +extern uint8_t rx_nack_blk; +extern uint8_t rx_last_recvd_blk; + +extern uint8_t tx_ack_blk;// следующая после подтвержденной ячейка (т.е. начиная с которой надо передавать) +extern uint8_t tx_index_blk;// ячейка ожидающая передачу +extern uint8_t tx_push_ptr_blk;// ячейка ожидающая добавление элемента + +void ble_tcp_init(); + +void notify_ble_out_queue();// +void ble_tx_complete(int status); +void process_gatt_data(uint8_t* data, uint16_t len); +void gatt_conn_reset(); diff --git a/BLE_EXAMPLE/src/main/cpp/bt_drv.c b/BLE_EXAMPLE/src/main/cpp/bt_drv.c new file mode 100644 index 000000000..a087c4256 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/bt_drv.c @@ -0,0 +1,355 @@ +#include +#include "bt_drv.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "xlib.h" +#include "ble_tcp.h" +#include "eth_mem.h" +#include "eth_router.h" +#include "ble_eth.h" +#include "lwip/lwip.h" +#include "eth_nat.h" +#include "lwip/net_topology.h" +//#include "lwip/opt.h" +//#include "lwip/mem.h" +//#include "lwip/memp.h" +//#include "lwip/netif.h" +//#include "lwip/init.h" + +int dbg_scr_num=0; + +// ====================================== startup ========================= +JavaVM* gJvm = NULL; +jobject bleservice; +jclass bleserv; +jclass bleserv1; +JNIEnv* send_env; +JNIEnv* status_upd_env; + +jmethodID send_method; +jmethodID frame_method; +jmethodID status_upd_method; + +volatile int ble_connection_status=0;// 2 - connection up. + +int bt_send(uint8_t* dgr, uint16_t dglen) { + dbg[3]++; + + + JNIEnv *env=send_env; + jbyteArray dgram=(*env)->NewByteArray(env, dglen); + if (dgram == NULL) return -1; + (*env)->SetByteArrayRegion (env, dgram, 0, dglen, dgr); + +// jbyteArray bytes = (*env)->GetObjectField(env, obj, sendId) +// jbyte *stateJava = (*env)->GetByteArrayElements(env, dgram, NULL); +// if (stateJava == NULL) return -1; +// memcpy(stateJava, dgr, dglen); + int ret=-1; + if (send_method) ret=(*env)->CallStaticIntMethod(env, bleserv, send_method, dgram); + (*env)->DeleteLocalRef(env, dgram); + +// print_log("[BLE] send dgram %d", ret); + return ret; +} +jbyteArray jname; +jbyteArray jval; + +static void status_upd(int p, char* name, char* val) { + JNIEnv *env=status_upd_env; + jbyteArray jname=(*env)->NewByteArray(env, strlen(name)); + if (jname == NULL) return; + (*env)->SetByteArrayRegion (env, jname, 0, strlen(name), name); + jbyteArray jval=(*env)->NewByteArray(env, strlen(val)); + if (jval == NULL) return; + (*env)->SetByteArrayRegion (env, jval, 0, strlen(val), val); + if (status_upd_method) (*env)->CallStaticVoidMethod(env, bleserv1, status_upd_method, p, jname, jval); + (*env)->DeleteLocalRef(env, jname); + (*env)->DeleteLocalRef(env, jval); +} + +void status_upd_thread_register() { + JavaVMAttachArgs args; + args.version = JNI_VERSION_1_6; // choose your JNI version + args.name = NULL; + args.group = NULL; + jint ret=(*gJvm)->AttachCurrentThread(gJvm, &status_upd_env, &args); + if (ret) return; +} + +void send_thread_register() { + JavaVMAttachArgs args; + args.version = JNI_VERSION_1_6; // choose your JNI version + args.name = NULL; + args.group = NULL; + jint ret=(*gJvm)->AttachCurrentThread(gJvm, &send_env, &args); + if (ret) return; +} + +void status_upd1(int i, char* b, uint32_t c) { + char str[100]; + sprintf(str, "%d",c); + status_upd(i, b, str); +} + + +uint32_t tx_hist[16]; +uint32_t rx_hist[16]; +uint32_t htime[16]; +uint8_t histptr; + + +pthread_t thr; +_Noreturn void status_thread(void* arg) { + status_upd_thread_register(); + while(1) { + int p=histptr&15; + tx_hist[p]=ble_tcp_stats.tx_bytes; + rx_hist[p]=ble_tcp_stats.rx_bytes; + htime[p]=xTaskGetTickCount(); + int tx_spd=(tx_hist[p]-tx_hist[(p-10)&15])*1000/(htime[p]-htime[(p-10)&15]); + int rx_spd=(rx_hist[p]-rx_hist[(p-10)&15])*1000/(htime[p]-htime[(p-10)&15]); + p++; + histptr=p&15; + dbg[1]=(dbg[1]+1)%170; + + int i = 1; + if (dbg_scr_num==0) { + status_upd1(i++, "dbg[0]", dbg[0]); + status_upd1(i++, "dbg[1]", dbg[1]); + status_upd1(i++, "dbg[2]", dbg[2]); + status_upd1(i++, "dbg[3]", dbg[3]); + status_upd1(i++, "dbg[4]", dbg[4]); + status_upd1(i++, "dbg[5]", dbg[5]); + status_upd1(i++, "dbg[6]", dbg[6]); + status_upd1(i++, "dbg[7]", dbg[7]); + status_upd1(i++, "dbg[8]", dbg[8]); + status_upd1(i++, "dbg[9]", dbg[9]); + status_upd1(i++, "dbg[10]", dbg[10]); + + status_upd1(i++, "tx_chunks", ble_eth_stats.tx_chunks); + status_upd1(i++, "rx_chunks", ble_eth_stats.rx_chunks); + status_upd1(i++, "tx_dgrams", ble_eth_stats.tx_dgrams); + status_upd1(i++, "rx_dgrams", ble_eth_stats.rx_dgrams); + status_upd1(i++, "rx_qpause", ble_eth_stats.rx_qpause); + status_upd1(i++, "rx_seqerr", ble_eth_stats.rx_seqerr); + + status_upd1(i++, "tx_spd", tx_spd); + status_upd1(i++, "rx_spd", rx_spd); + + } + if (dbg_scr_num==1) { + status_upd1(i++, "ble_conn_status", ble_connection_status); + status_upd1(i++, "BLEif_dg_in", eth_netif_array[BLE_NETIF_ID].dgrams_in); + status_upd1(i++, "BLEif_dg_lost", eth_netif_array[BLE_NETIF_ID].dgrams_lost); + status_upd1(i++, "BLEif_dg_out", eth_netif_array[BLE_NETIF_ID].dgrams_out); + status_upd1(i++, "BLEif_dg_outqlen", eth_netif_array[BLE_NETIF_ID].q_output_len); + status_upd1(i++, "BLEif_dg_in_qlen", eth_netif_array[BLE_NETIF_ID].input_queue_len); + status_upd1(i++, "BLEif_cbk_p", eth_netif_array[BLE_NETIF_ID].callback_pending); + + status_upd(i++, "", ""); + status_upd1(i++, "LWif_dg_in", eth_netif_array[LWIP_NETIF_ID].dgrams_in); + status_upd1(i++, "LWif_dg_lost", eth_netif_array[LWIP_NETIF_ID].dgrams_lost); + status_upd1(i++, "LWif_dg_out", eth_netif_array[LWIP_NETIF_ID].dgrams_out); + status_upd1(i++, "LWif_dg_outqlen", eth_netif_array[LWIP_NETIF_ID].q_output_len); + status_upd1(i++, "LWif_dg_in_qlen", eth_netif_array[LWIP_NETIF_ID].input_queue_len); + status_upd1(i++, "LWif_cbk_p", eth_netif_array[LWIP_NETIF_ID].callback_pending); + + status_upd(i++, "", ""); + status_upd1(i++, "NAT_pbuf_brk", nat_stat.pbuf_broken); + status_upd1(i++, "NAT_tcp_new", nat_stat.tcp_new); + status_upd1(i++, "NAT_tcp_close", nat_stat.tcp_close); + + status_upd(i++, "", ""); + status_upd1(i++, "eth_pbuf used", xeth_pbuf_ctrl.used); + status_upd1(i++, "eth_queue used", xeth_queuepool_ctrl.used); + status_upd1(i++, "nat pbuf used", nat_stat.pbuf_used); + status_upd1(i++, "nat lw conn used", nat_stat.lw_conn_used); + + } + if (dbg_scr_num==2) { + status_upd1(i++, "tx_raw", ble_tcp_stats.tx_raw); + status_upd1(i++, "rx_raw", ble_tcp_stats.rx_raw); + status_upd1(i++, "tx_blocks", ble_tcp_stats.tx_blocks); + status_upd1(i++, "rx_blocks", ble_tcp_stats.rx_blocks); + status_upd1(i++, "tx_err", ble_tcp_stats.tx_err); + status_upd1(i++, "tx_ack_err", ble_tcp_stats.tx_ack_err); + status_upd1(i++, "tx_sack_err", ble_tcp_stats.tx_sack_err); +// status_upd1(i++, "tx_ack_negd_err", ble_tcp_stats.tx_ack_negdist_err); +// status_upd1(i++, "tx_ack_toom_err", ble_tcp_stats.tx_ack_toomuch_err); +// status_upd1(i++, "ack_upd", ble_tcp_stats.ack_upd); +// status_upd1(i++, "rx_empty_dg", ble_tcp_stats.rx_empty_dg); +// status_upd1(i++, "rx_only_ack", ble_tcp_stats.rx_only_ack); + status_upd1(i++, "rx_seq_err", ble_tcp_stats.rx_seq_err); +// status_upd1(i++, "rx_dup_ack", ble_tcp_stats.rx_dup_ack); +// status_upd1(i++, "rx_neg_ack", ble_tcp_stats.rx_neg_ack); + status_upd1(i++, "rx_duplicates", ble_tcp_stats.rx_duplicates); + status_upd1(i++, "rx_rtr_jmps", ble_tcp_stats.rx_detected_retransmit_jumps); +// status_upd1(i++, "rx_pl1", ble_tcp_stats.rx_detected_packet_loss_single); +// status_upd1(i++, "rx_pl2+", ble_tcp_stats.rx_detected_packet_loss_multiple); + status_upd1(i++, "rx_incor_jmps", ble_tcp_stats.rx_detected_incorrect_jumps); + char b[100]; int ptr=0; +// for (int i=0; i<8; i++) ptr+=sprintf(b+ptr, "%d ",tx_busy_mask[i]); + status_upd(i++, "tx_busy_mask", b); +// status_upd1(i++, "tx_ack_blk", tx_ack_blk); + status_upd1(i++, "tx_index_blk", tx_index_blk); + status_upd1(i++, "tx_push_ptr_blk", tx_push_ptr_blk); + ptr=0; +// for (int i=0; i<8; i++) ptr+=sprintf(b+ptr, "%d ",rx_ready_mask[i]); + status_upd(i++, "rx_ready_mask", b); + status_upd1(i++, "rx_nack_blk", rx_nack_blk); +// status_upd1(i++, "rx_last_rcvd_blk", rx_last_recvd_blk); + status_upd1(i++, "conn_rst", ble_tcp_stats.rst_cnt); + status_upd1(i++, "conn_rst_req", ble_tcp_stats.rstreq_cnt); + status_upd1(i++, "ble_tx_busy", ble_tcp.ble_tx_busy); + status_upd1(i++, "rxasm_try", ble_tcp_stats.rxasm_try); + status_upd1(i++, "rxasm_throttle", ble_tcp_stats.rxasm_throttle); + + } + while (i<=30) status_upd(i++, "", ""); + usleep(100000); + } +} + +JNIEXPORT void JNICALL +Java_ua_cn_stu_navigation_MainActivity_change_1dbg_1scr(JNIEnv *env, jobject thiz, jint scr) { + dbg_scr_num=scr; +} + +pthread_t frameThreadHandle; +extern uint8_t imageCubes[]; +extern uint8_t imageWolf[]; +JNIEnv* frame_env; + +void frameThread(void *argsw) +{ + JavaVMAttachArgs args; + args.version = JNI_VERSION_1_6; // choose your JNI version + args.name = NULL; + args.group = NULL; + jint ret=(*gJvm)->AttachCurrentThread(gJvm, &frame_env, &args); + if (ret) return; + static unsigned char parity; + while(1) + { + usleep(50000); + if (frame_method) + { + JNIEnv *env = frame_env; + jbyteArray dgramm = (*env)->NewByteArray(env, 132 * 8); + if (dgramm == NULL) continue; + (*env)->SetByteArrayRegion (env, dgramm, 0, 132 * 8, ! parity ? imageWolf : imageCubes); + (*env)->CallStaticVoidMethod(env, bleserv, frame_method, dgramm); + (*env)->DeleteLocalRef(env, dgramm); + parity = !parity; + } + } +} + +void frameThreadInit() +{ + TaskCreate (frameThread, &frameThreadHandle); +} + +JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* pjvm, void* reserved) { + gJvm = pjvm; + JNIEnv* env; + if ((*pjvm)->GetEnv(pjvm, &env, JNI_VERSION_1_6) != JNI_OK) {return JNI_ERR;} + + bleserv = (*env)->NewGlobalRef(env, (*env)->FindClass(env, "ua/cn/stu/navigation/MainActivity")); + if (bleserv == NULL) return JNI_ERR; + bleserv1 = (*env)->NewGlobalRef(env, (*env)->FindClass(env, "ua/cn/stu/navigation/MainActivity")); + if (bleserv1 == NULL) return JNI_ERR; + send_method = (*env)->GetStaticMethodID(env, bleserv, "send_to_ble","([B)I"); + if (send_method == NULL) return JNI_ERR; + frame_method = (*env)->GetStaticMethodID(env, bleserv, "frame", "([B)V"); + if (frame_method == NULL) return JNI_ERR; + status_upd_method = (*env)->GetStaticMethodID(env, bleserv, "upd_status_param","(I[B[B)V"); + if (status_upd_method == NULL) return JNI_ERR; + + TaskCreate(status_thread, &thr); + eth_router_init(); + eth_ble_if_init(); + ble_tcp_init(); + + MX_LWIP_Init(); + topology_init(); + frameThreadInit(); + return JNI_VERSION_1_6; +} + +//JNIEXPORT void JNICALL Java_ua_cn_stu_navigation_MainActivity_char_1wr_1cbk(JNIEnv *env, jobject thiz, jint status) { +// ble_tx_complete(status); +//} +JNIEXPORT void JNICALL +Java_ua_cn_stu_navigation_ble_BluetoothLeService_char_1wr_1cbk(JNIEnv *env, jclass clazz, + jint status) { + ble_tx_complete(status); +} + +JNIEXPORT void JNICALL +Java_ua_cn_stu_navigation_MainActivity_new_1dg_1from_1bt(JNIEnv *env, jobject thiz, jbyteArray jdgram) { + dbg[4]++; + + jbyte *stateJava = (*env)->GetByteArrayElements(env, jdgram, NULL); + if (stateJava == NULL) return ; + jint len = (*env)->GetArrayLength(env, jdgram); + if (len>0) process_gatt_data(stateJava, len); +// int pid=getpid(); +// int ppid=getppid(); +// int tid = gettid(); +// print_log("tid %d pid %d ppid %d recvd %d bytes",tid, pid, ppid, len); + (*env)->ReleaseByteArrayElements(env, jdgram, stateJava, 0); +} + +JNIEXPORT void JNICALL +Java_ua_cn_stu_navigation_MainActivity_eth_1ble_1stack_1control(JNIEnv *env, jobject thiz, + jint status) { +// status: +// 0 - service started +// 1 - service shutdown request +// 2 - ble connection up +// 3 - ble connection down + ble_connection_status=status; + if (status==2) gatt_conn_reset(); +} + + +JNIEXPORT void JNICALL +Java_ua_cn_stu_navigation_MainActivity_tap_1detected(JNIEnv *env, jobject thiz, jint area) { + // tap_detected(area); + dbg[2]++; +} + +JNIEXPORT void JNICALL +Java_ua_cn_stu_navigation_MainActivity_coord_1from_1terminal(JNIEnv *env, jobject thiz, jint x_pix, + jint y_pix) { + static volatile char x; + x++; + // TODO: implement coord_from_terminal() +} + +JNIEXPORT void JNICALL +Java_ua_cn_stu_navigation_MainActivity_button_1from_1terminal(JNIEnv *env, jobject thiz, + jint button_id) { + volatile int lol = button_id; + // TODO: implement button_from_terminal() +} + +//JNIEXPORT void JNICALL Java_ua_cn_stu_navigation_MainActivity_eth_1ble_1stack_1control(JNIEnv *env, jobject thiz, jint status) { +//// status: +//// 0 - service started +//// 1 - service shutdown request +//// 2 - ble connection up +//// 3 - ble connection down +// ble_connection_status=status; +// if (status==2) gatt_conn_reset(); +//} diff --git a/BLE_EXAMPLE/src/main/cpp/bt_drv.h b/BLE_EXAMPLE/src/main/cpp/bt_drv.h new file mode 100644 index 000000000..6a8db91d7 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/bt_drv.h @@ -0,0 +1,9 @@ +#ifndef TESTBLE_BT_DRV_H +#define TESTBLE_BT_DRV_H + +#include + +int bt_send(uint8_t* dgr, uint16_t dglen); +void send_thread_register(); +extern volatile int ble_connection_status; +#endif //TESTBLE_BT_DRV_H diff --git a/BLE_EXAMPLE/src/main/cpp/eth_mem.c b/BLE_EXAMPLE/src/main/cpp/eth_mem.c new file mode 100644 index 000000000..0e468cb53 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_mem.c @@ -0,0 +1,377 @@ +// ETH_MEM ver 1.0 + +#include "xlib.h" +#include +#include +#include + +#include "eth_mem.h" +#include "eth_router.h" + +sem_t eth_mem_sem; + +// ============ task for queue management +struct ETH_MEM_STATS eth_mem_stats; + +// private function prototypes +static void EthQueueTask(void *argument); +static void eth_custom_pbuf_free_request(struct pbuf* p); + +#define taskNOTIFY_NEW_FREE_P_REQUEST 1// освобождение элемента очереди +#define taskNOTIFY_NEW_P_REQUEST 4// дефицит pbuf +#define taskNOTIFY_ROUTER_Q_UPDATE 16// толкнуть обработчик очередей (роутер) +// ref увеличивается только в главном пакете из цепочки. +inline static struct ETH_PBUF* do_eth_pbuf_alloc(struct ETH_PBUF_CTRL* eth_pbuf_ctrl, struct NOMEM_CALLBACK* cb) { + + struct ETH_PBUF* p=(struct ETH_PBUF*)eth_pbuf_ctrl->free_chain; + if (p==NULL) {// no memory + if (cb) { + if (cb->wait_active) return NULL; + eth_mem_stats.eth_pbuf_alloc_delayed++; + if (eth_mem_stats.eth_pbuf_alloc_delayed==2) {} + cb->next_p=NULL; + struct NOMEM_CALLBACK* nopbuf_queue_prev=(struct NOMEM_CALLBACK*)eth_pbuf_ctrl->pool->nopbuf_q_end; + if (nopbuf_queue_prev) nopbuf_queue_prev->next_p=cb; else eth_pbuf_ctrl->pool->nopbuf_q_begin=cb; + eth_pbuf_ctrl->pool->nopbuf_q_end=cb; + cb->wait_active=1; + } + else eth_mem_stats.eth_pbuf_alloc_fails++; + return NULL; + } + eth_pbuf_ctrl->free_chain=(struct ETH_PBUF*)p->pbuf.next; + eth_pbuf_ctrl->used++; + if (eth_pbuf_ctrl->used>eth_pbuf_ctrl->used_max) eth_pbuf_ctrl->used_max=eth_pbuf_ctrl->used; + p->pbuf.next=NULL; + int pbuf_num=(p-ð_pbuf[0]); + return p; + } + +struct ETH_PBUF* eth_pbuf_alloc(struct ETH_PBUF_CTRL* eth_pbuf_ctrl, struct NOMEM_CALLBACK* cb) { + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + struct ETH_PBUF* p=do_eth_pbuf_alloc(eth_pbuf_ctrl, cb); + ETH_MEM_UNPROTECT(); + if (cb) { + if (p==NULL) { + TNotifyAdd(ð_pbuf_ctrl->pool->tNotifyHandle, taskNOTIFY_NEW_P_REQUEST); + return NULL; + } + p->pbuf.if_idx = cb->src_interface_id; + } + else p->pbuf.if_idx=0; + + p->pbuf.ref=1; + p->pbuf.type_internal=0;// payload directly follows the struct pbuf + p->pbuf.flags=PBUF_FLAG_IS_CUSTOM;// bufer have custom free function + p->pbuf.payload=p->default_payload; + + return p; + } + + +static struct ETH_QUEUEPOOL_CTRL* xpool; +// добавить мост. выделяем пул для пакетных буферов моста, память для интерфейсов +void eth_router_add_bridge(struct ETH_QUEUEPOOL_CTRL* pool, struct ETH_QUEUE* eth_q, uint32_t pool_mem_size_blocks, + struct ETH_PBUF_CTRL* eth_pbuf_ctrl, struct ETH_PBUF* eth_pbuf, uint8_t* eth_pbuf_mem, uint32_t eth_pbufs_cnt, + struct ETH_NETIF* netif_arr, uint32_t netif_count) { + +// pbufs init + + eth_pbuf_ctrl->free_chain=eth_pbuf; + eth_pbuf_ctrl->pool=pool; + + for (int i=0; iused=0;// выделено блоков (статистика) + pool->used_max=0;// пик выделения (статистика) + pool->q_begin=eth_q; + pool->eth_netif_array=netif_arr; + pool->eth_netif_size=netif_count; + + for (int i=0; itNotifyHandle); + TaskCreate (EthQueueTask, &pool->pThr); + } + + +static void eth_custom_pbuf_free_request(struct pbuf* p) {// callback from LWIP pbuf + p->ref=1;// lwip уже декрементировал ref. Чтобы нам корректно освободить, нужно ref вернуть. + eth_pbuf_free_request((struct ETH_PBUF*)p); + } + +void eth_pbuf_free_request(struct ETH_PBUF* xpbuf) {// добавлене в очередь на освобождение блока (или передачу другому владельцу) + struct ETH_QUEUEPOOL_CTRL* pool=xpbuf->ctrl->pool; + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + if (xpbuf->pbuf.ref>1) { + xpbuf->pbuf.ref--; + ETH_MEM_UNPROTECT(); + return; + } + if (xpbuf->pbuf.ref==0) EM_ASSERT(1);// already free? + + int pbuf_num=(xpbuf-ð_pbuf[0]); + + xpbuf->pbuf.next=NULL;//this pbuf must be last in chain + if (pool->free_pbuf_q_end) {// pbuf is not empty + if (pool->free_pbuf_q_end->pbuf.next) EM_ASSERT(2);// ASSERT: invalid pointer to last pbuf. last pbuf not marked as last in chain + pool->free_pbuf_q_end->pbuf.next=&xpbuf->pbuf;// add to end of chain + } else pool->free_pbuf_q_begin=xpbuf; + pool->free_pbuf_q_end=xpbuf; + ETH_MEM_UNPROTECT(); + TNotifyAdd(&pool->tNotifyHandle, taskNOTIFY_NEW_FREE_P_REQUEST); + } + +static void free_blk(struct ETH_QUEUEPOOL_CTRL* pool) {// освободим блоки из очереди на освобождение + while (1) { +// взятие освобождаемого ETH_PBUF из очереди + struct ETH_PBUF* xpbuf=(struct ETH_PBUF*)pool->free_pbuf_q_begin;// pbuf в начале очереди + if (xpbuf==NULL) { /*ETH_MEM_UNPROTECT();*/ break; } + if (xpbuf->pbuf.ref!=1) EM_ASSERT(3);// ASSERT: invalid allocation counter + int src_if=xpbuf->src_if; + xpbuf->src_if=0; + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + pool->eth_netif_array[src_if].input_queue_len--; + struct ETH_PBUF* n=(struct ETH_PBUF*)xpbuf->pbuf.next;// кто следующий в очереди + pool->free_pbuf_q_begin=n;// продвигаем очередь + if (n==NULL) pool->free_pbuf_q_end=NULL;// если очередь пуста +// действие с освобождаемым ETH_PBUF (освобождение или передача) + if (pool->nopbuf_q_begin) {// pass memory to new owner directly + struct NOMEM_CALLBACK* cb=(struct NOMEM_CALLBACK*)pool->nopbuf_q_begin; + pool->nopbuf_q_begin=cb->next_p; + if (pool->nopbuf_q_begin==NULL) pool->nopbuf_q_end=NULL; + cb->wait_active=0; + ETH_MEM_UNPROTECT(); + cb->next_p=NULL;// на всякий случай, в принципе это не нужно + eth_mem_stats.eth_pbuf_alloc_delay_cbks++; + xpbuf->pbuf.if_idx = cb->src_interface_id; + cb->callback_fn(xpbuf, cb);// нужно выделить только pbuf + } + else {// free memory + xpbuf->pbuf.next=(struct pbuf*)xpbuf->ctrl->free_chain;// освобождаемый блок добавляем в начало очереди + xpbuf->ctrl->free_chain=xpbuf; + xpbuf->pbuf.ref=0;// для порядка. в продакшене не требуется + if (xpbuf->ctrl->used==0) EM_ASSERT(4); + xpbuf->ctrl->used--; + ETH_MEM_UNPROTECT(); + } + if (pool->eth_netif_array[src_if].q_update_cbk) pool->eth_netif_array[src_if].q_update_cbk(&pool->eth_netif_array[src_if]);// вызовем callback, что очередь стала меньше + } + } + +// Процесс, обслуживающий: +// - очередь запросов на освобождение памяти +// - очередь коллбэков на выделение памяти (тем кто в очереди на получение памяти при дефиците памяти) +// - очередь пакетов на роутинг +static void EthQueueTask(void* arg) { + struct ETH_QUEUEPOOL_CTRL* pool=xpool; + while (1) { + uint32_t res=TNotifyWait(&pool->tNotifyHandle); + + if (res & taskNOTIFY_NEW_FREE_P_REQUEST) {// new pbuf_free requests + free_blk(pool); + } + if (res & taskNOTIFY_ROUTER_Q_UPDATE) {// new dgram in queue + while (1) { + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + struct ETH_QUEUE* queue=(struct ETH_QUEUE*)pool->q_input_begin; + if (queue==NULL) { ETH_MEM_UNPROTECT(); break; } + struct ETH_QUEUE* n=queue->next; + pool->q_input_begin=n;// забираем из очереди + if (n==NULL) pool->q_input_end=NULL; + queue->next=NULL; + pool->q_input_used--; + ETH_MEM_UNPROTECT(); + eth_route_block(queue);// и отдаём в роутинг + if (pool->free_pbuf_q_begin) free_blk(pool); + } + } + } + + } + +// Выделить блок памяти. +inline static struct ETH_QUEUE* do_eth_queue_entry_alloc(struct ETH_QUEUEPOOL_CTRL* pool) { + struct ETH_QUEUE* queue = (struct ETH_QUEUE*)pool->q_begin;// try to allocate queue + if (queue==NULL) { + pool->alloc_fails++; + eth_mem_stats.qpool_alloc_fails++; + return NULL; + } + pool->q_begin = queue->next;// update pointer to next free queue + pool->used++; + if (pool->used_max < pool->used) pool->used_max = pool->used; + queue->state = st_allocated; + return queue;// allocated memory + } + +static struct ETH_QUEUE* eth_queue_entry_alloc(struct ETH_QUEUEPOOL_CTRL* pool) { + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + struct ETH_QUEUE* q=do_eth_queue_entry_alloc(pool); + ETH_MEM_UNPROTECT(); + return q; + } + +void eth_queue_entry_free(struct ETH_QUEUE* queue) {// освобождение элемента очереди + struct ETH_QUEUEPOOL_CTRL* pool=queue->pool; + if (queue->state==st_free) EM_ASSERT(5);// ASSERT: trying to free not used queue + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + queue->state=st_free; + queue->next=(struct ETH_QUEUE*)pool->q_begin;// освобождаемый блок добавляем в начало очереди + pool->q_begin=queue; + pool->used--; + ETH_MEM_UNPROTECT(); + } + +#pragma optimize=none +void eth_add_packet_to_router_queue(struct ETH_PBUF* xpbuf) { + uint32_t nif=xpbuf->pbuf.if_idx; + if (xpbuf->pbuf.ref==0) EM_ASSERT(11); + if (nif>=ETH_NETIFS) EM_ASSERT(6);// + xpbuf->src_if=nif; + if (xpbuf->pbuf.len<14) {// invalid datagram. 14 bytes (src mac+dst mac + ethertype) required + eth_pbuf_free_request(xpbuf); + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + xpbuf->ctrl->pool->eth_netif_array[nif].dgrams_lost++; + ETH_MEM_UNPROTECT(); + return; + } + struct ETH_QUEUEPOOL_CTRL* pool=xpbuf->ctrl->pool; + struct ETH_QUEUE* queue=eth_queue_entry_alloc(pool); + if (queue==NULL) { + eth_pbuf_free_request(xpbuf); + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + pool->eth_netif_array[nif].dgrams_lost++; + ETH_MEM_UNPROTECT(); + return; + } + queue->next = NULL; + queue->state = st_in_queue; + queue->pbuf = xpbuf; + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + pool->eth_netif_array[nif].input_queue_len++; + pool->eth_netif_array[nif].dgrams_in++; + if (pool->q_input_end!=NULL) pool->q_input_end->next=queue; else pool->q_input_begin=queue; + pool->q_input_end=queue; + pool->q_input_used++; + if (pool->q_input_used_maxq_input_used) pool->q_input_used_max=pool->q_input_used; + + ETH_MEM_UNPROTECT(); + TNotifyAdd(&pool->tNotifyHandle, taskNOTIFY_ROUTER_Q_UPDATE); + } + +struct ETH_PBUF* eth_get_packet(struct ETH_NETIF* enetif) {// запрос пакета из исходящей очереди драйвером для передачи во внешний мир + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + struct ETH_QUEUE* queue=(struct ETH_QUEUE*)enetif->q_output_begin; + if (queue) {// packet ready + struct ETH_QUEUE* next_queue=queue->next; + enetif->q_output_begin=next_queue; + if (next_queue == NULL) enetif->q_output_end = NULL; + if (enetif->q_output_len==0) EM_ASSERT(7);// ASSERT: сбой подсчета размера очереди. + enetif->q_output_len--; + enetif->dgrams_out++; + ETH_MEM_UNPROTECT(); + queue->next=NULL; + queue->state=st_sending; + struct ETH_PBUF* xpbuf=queue->pbuf; + eth_queue_entry_free(queue); + return xpbuf; + } + if (enetif->callback_fn) enetif->callback_pending=1; + ETH_MEM_UNPROTECT(); + return NULL; + } + +void eth_add_packet_to_output_queue(struct ETH_QUEUE* queue, struct ETH_NETIF* enetif) {// для роутера. отправить в исходящую очередь нужного интерфейса (или передать сразу драйверу, если он ждёт пакет) + queue->next = NULL; + if (queue->pbuf->pbuf.ref==0) EM_ASSERT(8); + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + if (enetif->callback_pending) {// интерфейс ожидает блок - отправляем сразу в интерфейс без очереди + if (enetif->q_output_end) EM_ASSERT(9);// assert: драйвер ждёт пакет, но в очереди почему-то что-то есть. Хотя должно быть пусто... + enetif->callback_pending=0; + queue->state = st_sending; + enetif->dgrams_out++; + ETH_MEM_UNPROTECT(); + struct ETH_PBUF* xpbuf=queue->pbuf; + eth_queue_entry_free(queue); + if (enetif->callback_fn) enetif->callback_fn(xpbuf, enetif); + else EM_ASSERT(10);// no callback + return; + } + if (enetif->q_output_len>=enetif->q_output_len_max) {// очередь уже полна. дропаем пакет. + enetif->dgrams_lost++; + ETH_MEM_UNPROTECT(); + eth_pbuf_free_request(queue->pbuf); + eth_queue_entry_free(queue); + return; + } + queue->state = st_in_queue;// добавляем в очередь + if (enetif->q_output_end) enetif->q_output_end->next=queue; else enetif->q_output_begin=queue;// этот элемент приписываем к концу очереди + enetif->q_output_end=queue;// конечным элементом ставим этот элемент + enetif->q_output_len++; + if (enetif->q_output_len_maxq_output_len) enetif->q_output_len_max=enetif->q_output_len; + ETH_MEM_UNPROTECT(); + } + +struct ETH_QUEUE* eth_mem_clone(struct ETH_QUEUE* queue) { + struct ETH_QUEUE* queue_copy=eth_queue_entry_alloc(queue->pool); + if (queue_copy) { + queue_copy->pbuf=queue->pbuf; + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + queue->pbuf->pbuf.ref++; + ETH_MEM_UNPROTECT(); + } + return queue_copy; + } diff --git a/BLE_EXAMPLE/src/main/cpp/eth_mem.h b/BLE_EXAMPLE/src/main/cpp/eth_mem.h new file mode 100644 index 000000000..ffd55f7a3 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_mem.h @@ -0,0 +1,234 @@ +#pragma once + +#include +#include "xlib.h" +#include "eth_router_cfg.h" +#include "lwip/pbuf.h" + +/* Менеджер памяти и очередей для ethernet пакетов. +Умеет: +- выделять и освобождать память из пулов (пока пул один, но архитектурно заложена возможность использования нескольких пулов) +- при ошибке выделения памяти вызвать callback как только память появилась (т.е. как только кто-то освободил) +- работать с очередями: помещать пакеты из всех интерфейсов в общую очередь на роутинг (из irq или потока) +Менеджер содержит в себе поток, обслуживающий нужды очереди менеджера памяти и очередь на роутинг. Из этого потока вызываются все коллбэки. +Коллбэки могут заниматься среднезатратными по времени вещами (например, копирование всего пакета или подсчет CRC всего пакета), но не могут вставать в ожидание чего-либо. +Ожидание коллбэков будет тормозить обработку входящих очередей с интерфейсов и очереди на операции с памятью. + +Роутер из очереди на роутинг распихивает пакеты в интерфейсы назначения. Если при попытке запихнуть пакет в интерфейс назначения размер очередь этого интерфейса заполнена, пакет отбрасывается. +Для броадкастов роутером создаются копии пакета на каждый исходящий интерфейс. Ибо нужно каждую копию запихнуть в свою очередь, а очередь у пакета только одна. +Рекомендуемый размер входящих очередей - 2 пакета: один в процессе приёма, второй в потоке роутера. +Пакеты во входящих очередях обрабатываются сразу (как это позволть сделать приоритет потока обработчика). +Размер исходящих очередей должен быть больше, его задача удерживать в буферах всё что вовремя не пролезает через медленные интерфейсы. +Пока пакет не фрагментируется. Всё что не влезает в размер одного буфера (ETH_MEM_BUF_SIZE), отбрасывается. + + +Рекомендации по драйверам интерфейсов: +- при инициализации: +eth_netif_array[YOUR_NETIF_ID].q_output_len_max=<размер очереди на передачу в пакетах> +eth_netif_array[YOUR_NETIF_ID].callback_fn=lwip_callback_from_bridge;// инициализируем callback (пакет готов) +eth_netif_array[ETH_NETIF_ID].if_up=1;// интерфейс готов принимать пакеты + + +- выделить память из пула перед приёмом пакета (т.е. буфера резервируются когда инициализируются буфера приёма), и записывать пакет сразу в эту память. +- если при инициализации буфера был отказ в выделении памяти, ждать коллбэк. Когда прилетит callback, можно инициализировать буфер и запускать приём. + +Передача: +1. инициализируем callback на новый пакет. +2. запрашиваем пакет (eth_get_packet). Функция либо возвратит что есть в очереди, либо активирует коллбэк. В этом случае ждем пакет. +3. когда пакет получен, передаем пакет +4. повторяем начиная с пп.2 +Обработчик коллбэка вызывается один раз после того как eth_get_packet вернул NULL (т.е. отсутствие пакета) +*/ + +// параметры инициализации пула по умолчанию: +extern sem_t eth_mem_sem; + + +#define ETH_MEM_ALIGN __attribute__((aligned(4)))// для CPU без кеша + +#define ETH_MEM_DECL_PROTECT() +#define ETH_MEM_PROTECT() {sem_wait(ð_mem_sem); /*asm("DSB SY");*/} +#define ETH_MEM_UNPROTECT() {/*asm("DSB SY");*/ sem_post(ð_mem_sem);} + +#define EM_ASSERT(x) {dbg[10]=x; while(1);} + + + +// ======================== Управляющие структуры ============= +struct ETH_PBUF_CTRL { + volatile struct ETH_PBUF* free_chain;// linked-list для размещения-освобождения буферов + volatile uint32_t used;// счетчик, сколько сейчас элементов занято + uint32_t used_max;// сколько было занято максимум + struct ETH_QUEUEPOOL_CTRL* pool; + + }; + +#ifndef PBUF_FLAG_IS_CUSTOM// cleck for LWIP pbuf is included +#define PBUF_FLAG_IS_CUSTOM 0x02U + +struct pbuf { + struct pbuf *next; // next fragment in chain (NULL - end of packet) + void *payload; // memory for packet payload + uint16_t tot_len; // remain packet length from begin of this part + uint16_t len; // this fragment length + uint8_t type_internal; // payload directly follows the struct pbuf + uint8_t flags; // PBUF_FLAG_IS_CUSTOM + uint8_t ref; // reference count + uint8_t if_idx; // network interface index + }; + +typedef void (*pbuf_free_custom_fn)(struct pbuf *p); +#endif + +struct ETH_PBUF { + struct pbuf pbuf; + // struct pbuf: *next // next fragment in chain (NULL - end of packet) + // void *payload; // memory for packet payload + // u16_t tot_len; // remain packet length from begin of this part + // u16_t len; // this fragment length + // u8_t type_internal; // payload directly follows the struct pbuf + // u8_t flags; // PBUF_FLAG_IS_CUSTOM + // LWIP_PBUF_REF_T ref; // reference count + // u8_t if_idx; // network interface index + // pbuf_free_custom_fn // custom pbuf free function + pbuf_free_custom_fn custom_free_function; + uint8_t* default_payload; + uint8_t src_if; + struct ETH_PBUF_CTRL* ctrl; + }; + + +struct ETH_QUEUE {// ячейка пула + struct ETH_QUEUE* next;// указатель на следующий элемент списка (очереди, которая определяется параметром mia_state) + struct ETH_QUEUEPOOL_CTRL* pool; + struct ETH_PBUF* pbuf;// Обращаться к ETH_PBUF / pbuf нужно через этот указатель! + volatile enum { + st_free=0,// ячейка свободна, поле next указывает на следующую свободную ячейку, т.е. используется дл выделения памяти + st_allocated=1,// ячейка занята, идёт процесс записи данных в ячейку, поле next не используется + st_in_queue=2,// ячейка в очереди на обработку, поле next указывает на следующую ячейку в данной очереди + st_sending=3,// в процессе отправки на интерфейсе назначения + st_free_pending=4 } state;// ячейка в очереди на освобождение (или передачи другому ожидающему память владельцу), поле next указывает на следующий элемент очереди на совобождение + uint8_t dst_if_idx;// если 0 - то роутится роутером. Если не 0, то роутится в соответствующиё исходящий интерфейс + }; + +struct ETH_MEM_STATS { + uint32_t qpool_alloc_fails;// queue entry alloc fail (summary, for all queues) + uint32_t eth_pbuf_alloc_fails; + uint32_t eth_pbuf_alloc_delayed; + uint32_t eth_pbuf_alloc_delay_cbks; + }; + +extern struct ETH_MEM_STATS eth_mem_stats; + +struct NOMEM_CALLBACK {// структура для организации очереди коллбэков на выделение памяти для входящих пакетов, т.е. принимаемых драйвером (экземпляры структуры создаются интерфейсом) + void (*callback_fn)(struct ETH_PBUF*, struct NOMEM_CALLBACK*); + struct NOMEM_CALLBACK* next_p;// chain for pbuf allocation requests + struct ETH_PBUF* p; + uint8_t src_interface_id; + uint8_t wait_active;// Если в состоянии ожидания выдачи памяти - то =1 + }; + +struct ETH_NETIF {// сетевой интерфейс (элемент netif_list). определа в виде массива элементов заранее определенного размера, индекс является номером интерфейса и eth_netif_id. + volatile struct ETH_QUEUE* q_output_end;// сюда добавляем пакет после роутинга + volatile struct ETH_QUEUE* q_output_begin;// забираем пакет драйвером интерфейса + volatile uint32_t q_output_len; // размер исходящей очереди + volatile uint32_t q_output_len_max; // фиксируем пик очереди + volatile uint32_t q_output_size; // максимальный размер исходящей очереди. Количество элементов в пуле должно хватать для обслуживания всех очередей. +// входящая очередь не лимитируется (предполагается, что пакет во входящей очереди не задерждится надолго и быстро улетит в исходящую, либо отбросится если исходящая очередь пепеполнена). + + void (*callback_fn)(struct ETH_PBUF*, struct ETH_NETIF*);// callback готовности пакета на передачу драйверу + struct ETH_QUEUEPOOL_CTRL* pool;// пул памяти, использующийся этим интерфейсом + void (*q_update_cbk)(struct ETH_NETIF*);// callback уменьшения кол-ва пакетов в ожидании обработки от этого интерфейса + uint8_t eth_netif_id;// ID интерфейса. всегда является индексом eth_netif_array. сделан для ускорения определения индекса по указателю. + volatile uint8_t if_up;// интерфейс включен (если 0, то интерфейс не используется для передачи-приема пакетов) + volatile uint8_t callback_pending;// ждём callback + uint32_t dgrams_in; + uint32_t dgrams_out; + uint32_t dgrams_lost; + uint32_t input_queue_len;// размер очереди кодограмм от этого интерфейса + char* if_name; + }; + +struct ETH_QUEUEPOOL_CTRL {// описание пула элементов для интерфейса моста + volatile struct ETH_QUEUE* q_begin;// начало списка свободных буферов. Сюда и добавляем освобождаемую память, и забираем при размещении (т.е. работает как стек) + volatile struct NOMEM_CALLBACK* nopbuf_q_end;// сюда добавляем / очередь желающих получить pbuf + volatile struct NOMEM_CALLBACK* nopbuf_q_begin;// отсюда забираем + volatile struct ETH_PBUF* free_pbuf_q_end;// добавляем - очередь запросов на освобождение блока + volatile struct ETH_PBUF* free_pbuf_q_begin;// забираем + volatile struct ETH_QUEUE* q_input_end;// добавляем - очередь входящих пакетов на роутинг + volatile struct ETH_QUEUE* q_input_begin;// забираем + volatile uint32_t q_input_used;// счетчик, сколько сейчас элементов входящей очереди занято + volatile uint32_t q_input_used_max;// пик + volatile uint32_t used;// счетчик, сколько сейчас элементов пула занято + uint32_t used_max;// сколько было занято максимум + volatile uint32_t alloc_fails;// счетчик ошибок выделения + struct ETH_NETIF* eth_netif_array;// массив структур описывающих подключенные сетевые интерфейсы + struct NHandle_t tNotifyHandle;// процесс, обслуживающий этот пул + pthread_t pThr; + uint8_t eth_netif_size;// количество элементов структуры eth_netif_array + }; + + + +// ======================== API ============= + +// проинициализировать мост: +// - кастомный пул памяти (pool - управляющая структура, pool_mem - структура блоков памяти для пула, pool_mem_size_blocks - количество блоков памяти) +// - пул очередей +// не thread-safe. пул можно переинициализировать в любой момент. Пока не завершена (пере)инициализация нельзя пользоваться функциями работы с пулом. +// т.е. сперва инициализируем пул, потом запускаем периферию интерфейсов. +void eth_router_add_bridge(struct ETH_QUEUEPOOL_CTRL* pool, struct ETH_QUEUE* eth_q, uint32_t pool_mem_size_blocks, + struct ETH_PBUF_CTRL* eth_pbuf_ctrl, struct ETH_PBUF* eth_pbuf, uint8_t* eth_pbuf_mem, uint32_t eth_pbufs_cnt, + struct ETH_NETIF* netif_arr, uint32_t netif_count); + +void eth_router_start_task(struct ETH_QUEUEPOOL_CTRL* pool); + +// Внутренняя функция +// выделить элемент очереди из пула pool (thread/irq safe, если настроено выше) +//struct ETH_QUEUE* eth_queue_entry_alloc(struct ETH_QUEUEPOOL_CTRL* pool); + +// Функция для роутера +// Освобождаем блок (thread/irq safe, если настроено выше). +// Блок должен быть выделен из любого пула ETH_QUEUE. +void eth_queue_entry_free(struct ETH_QUEUE* q); + +// Запрос пакета драйвером интерфейса из очереди (thread/irq safe, если настроено выше) +// Если пакет есть в очереди на передачу, пакет извлекается из очереди и указатель на него возвращается функцией. +// Драйвер должен передать пакет, затем освободить буфер. +// Если в очереди пусто, функция возвращает NULL и инициирует ожидание пакета в очереди. Как только в очереди появится новый пакет, будет вызван callback, описанный в структуре enetif. +// В вызове callback будет указатель на пакет и указатель на сетевой интерфейс. +// в enetif предварительно надо проинициализировать: +// callback_fn - указатель на callback-функцию; +struct ETH_PBUF* eth_get_packet(struct ETH_NETIF* enetif); + +// Функция для драйвера сетевого интерфейса +// отправить принятый интерфейсом пакет в роутер (thread/irq safe, если настроено выше) +// перед этим вызовом предполагается что память была выделена функцией eth_pbuf_alloc, пакет записан в память pbuf->payload и в pbuf->if_idx вписан номер интерфейса. +// размер доступной памяти payload в байтах равен ETH_MEM_BUF_SIZE +void eth_add_packet_to_router_queue(struct ETH_PBUF* pbuf); + +// Функция для роутера +// отправить пакет "block" в очередь исходящую очередь интерфейса "enetif" (только из потока роутера). +// либо если драйвер ждёт пакет, педедать его сразу, минуя очередь +void eth_add_packet_to_output_queue(struct ETH_QUEUE* queue, struct ETH_NETIF* enetif); + +// Функция для роутера +// дублирует пакет и создает новую очередь для пакета. +// память пакета для всех копий общая. Поэтому изменеять содержимое пакета после клонирования нельзя. +// используется для броадкастов (отправка копии пакета на все интерфйесы) +struct ETH_QUEUE* eth_mem_clone(struct ETH_QUEUE* block); + +// выделяет pbuf. Если указан CB, то при ошибке выделения как только появится свободный ETH_PBUF, будет вызван callback с этим ETH_PBUF +// Для активации CB нужен заранее проинициализированный экземпляр структуры callback. +// Если предполагается очередь из нескольких callback-ов на отказ памяти, то для всех callback-ов, которые одновременно могут находиться в очереди, нужен отдельный экземпляр структуры. +// Рекомендуется при первом отказе памяти перестать размещать новые блоки и дождаться callback-а. В коллбэке можно пытаться дальше выделять память до первой ошибки. +// в cb предварительно надо проинициализировать: +// callback_fn - указатель на callback-функцию; +// src_interface_id - номер интерфейса (он проинициализируется в pbuf). Также можно использовать для определения экземпляра драйвера (если один обработчик на несколько интерфейсов) +// Нумерация интерфейсов - от единицы. 0 означает "не проинициализировано". Драйвер должен установить корректно номер интерфейса, иначе будут проблемы с роутингом. +// если cb=NULL, то номер интерфейса нужно будет проинициализировать самостоятельно после выделения блока. +struct ETH_PBUF* eth_pbuf_alloc(struct ETH_PBUF_CTRL* eth_pbuf_ctrl, struct NOMEM_CALLBACK* cb); + +// Освобождаем блок (thread/irq safe, если настроено выше). +// Блок должен быть выделен из любого пула ETH_PBUF. +void eth_pbuf_free_request(struct ETH_PBUF* pbuf); diff --git a/BLE_EXAMPLE/src/main/cpp/eth_nat.c b/BLE_EXAMPLE/src/main/cpp/eth_nat.c new file mode 100644 index 000000000..bf958a900 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_nat.c @@ -0,0 +1,489 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "lwip/opt.h" +#include "lwip/tcp.h" +#include "lwip/udp.h" +#include "lwip/mem.h" +#include "dnsproxy.h" +#include "eth_router.h" +#include "eth_queue.h" +#include "lwip/lwip.h" +#include "eth_nat.h" +#include "linux/tcp.h" + +#define PROT_TCP 6 +#define PROT_UDP 17 +#define PROT_ICMP 1 + +#define NAT_DIVERT_PORT 1234 +pthread_t tnatHandle; +pthread_t tnatRXHandle; +//static struct NHandle_t tNotifyHandle; +#define taskNOTIFY_NEW_DATA 1 + + +// src ip:port / dst ip:port -> src ip/port / dst <- divert ip:port +// В пакете подменяется dst ip:port, и в таблицу nat пишется соответствие src ip:port к dst ip:port + +struct NAT_TAB nattab[NAT_TAB_SIZE]; + +struct NAT_STAT nat_stat; + +static int nat_task_pipe[2]; +static int nat_rx_task_pipe[2]; + + +_Noreturn static void calc_stats(void * arg) { +while(1) { + int nofl_conn = 0; + for (int i = 0; i < NAT_TAB_SIZE; i++) { + int didx=nattab[i].index_end-nattab[i].index_begin; + if (didx<0) didx+=SNDQ_MAXLEN; + nofl_conn+=didx; +// if (nattab[i].index_begin != nattab[i].index_end) nofl_conn++; + } + nat_stat.lw_conn_used = nofl_conn; + usleep(10000); +} +} + + +int forward_nat(struct ETH_QUEUE* block) {// пакет в интернет - заворачивается на локальный ip/port по таблице соответствий + struct ETH_PKT_HDR* pkt=(struct ETH_PKT_HDR*)block->pbuf->pbuf.payload; + if (pkt->ethertype!=htons(0x800)) return -1;// no match + if (pkt->ip_dst==0xffffffff) return -1;//broadcast + if ((gnetif.ip_addr.addr & gnetif.netmask.addr) == (pkt->ip_dst & gnetif.netmask.addr) ) return -1;// local dgram + if (pkt->proto!=PROT_TCP && pkt->proto!=PROT_UDP/* && pkt->proto!=PROT_ICMP*/) return -1; + + uint32_t curtime=xTaskGetTickCount(); + + uint8_t* ip=&pkt->ip_src; + uint16_t port=htons(pkt->port_src); + uint8_t* dip=&pkt->ip_dst; + uint16_t dport=htons(pkt->port_dst); + + int nat_entry=-1; + for (int i=0; iproto==PROT_TCP || pkt->proto==PROT_UDP) { + if (pkt->ip_src == nattab[i].src_ip && + pkt->ip_dst==nattab[i].dst_ip && + pkt->port_src==nattab[i].src_port && + pkt->port_dst==nattab[i].dst_port && + nattab[i].proto==pkt->proto ) { /*print_log("[NAT_TCP] Found match...");*/ nat_entry=i; break;} +// } + } + if (nat_entry==-1) {// find oldest entry + int oldent=0; + uint32_t maxtime=0; + for (int i=0; imaxtime) { maxtime=curtime-nattab[i].time; oldent=i; } + } + nat_entry=oldent; + nattab[nat_entry].src_ip=pkt->ip_src; + nattab[nat_entry].dst_ip=pkt->ip_dst; + nattab[nat_entry].src_port=pkt->port_src; + nattab[nat_entry].dst_port=pkt->port_dst; + nattab[nat_entry].proto=pkt->proto; + } + nattab[nat_entry].time=curtime; + pkt->ip_dst=gnetif.ip_addr.addr; + pkt->port_dst=htons(NAT_DIVERT_PORT); + +// print_log("[NAT_TCP] === forward pkt from %d.%d.%d.%d:%d to %d.%d.%d.%d:%d nat_entry %d proto %d", ip[0],ip[1],ip[2],ip[3], port, dip[0],dip[1],dip[2],dip[3], dport, nat_entry, pkt->proto); + + + return 0; + } + +int backward_nat(struct ETH_QUEUE* block) {// пакет из интернета (т.е. LWIP стека) в локалку + struct ETH_PKT_HDR *pkt = (struct ETH_PKT_HDR *) block->pbuf->pbuf.payload; + if (pkt->ethertype != htons(0x800)) return -1;// no match + if (pkt->ip_src != gnetif.ip_addr.addr && pkt->port_src != htons(NAT_DIVERT_PORT)) + return -1;// local dgram + if (pkt->proto != PROT_TCP && pkt->proto != PROT_UDP && pkt->proto != PROT_ICMP) return -1; + + uint32_t curtime = xTaskGetTickCount(); + + int nat_entry = -1; + for (int i = 0; i < NAT_TAB_SIZE; i++) { + if (pkt->ip_dst == nattab[i].src_ip && pkt->port_dst == nattab[i].src_port && + pkt->proto == nattab[i].proto) { + nat_entry = i; + break; + } + } + if (nat_entry == -1) return -1;// no match + pkt->ip_src = nattab[nat_entry].dst_ip; + pkt->port_src = nattab[nat_entry].dst_port; + + uint8_t* ip=&pkt->ip_src; + uint16_t port=htons(pkt->port_src); + uint8_t* dip=&pkt->ip_dst; + uint16_t dport=htons(pkt->port_dst); + +// print_log("[NAT_TCP] === backward pkt from %d.%d.%d.%d:%d to %d.%d.%d.%d:%d nat_entry %d proto %d", ip[0],ip[1],ip[2],ip[3], port, dip[0],dip[1],dip[2],dip[3], dport, nat_entry, pkt->proto); + + return 0; + } + +struct tcp_pcb* nat_tcp; + +static void nat_close_so_conn(uint32_t idx) { + if (nattab[idx].status) { + shutdown(nattab[idx].socket, SHUT_RDWR); + nattab[idx].status=0; + } +// if (nattab[idx].status) { close(nattab[idx].socket); nattab[idx].status=0;} +} + +static void nat_close_lw_conn(uint32_t idx) { + if (nattab[idx].pcb) { + uint32_t ptr=nattab[idx].index_begin; + while (ptr!=nattab[idx].index_end) { + if (nattab[idx].p[ptr]) { + tcp_recved(nattab[idx].pcb, nattab[idx].p[ptr]->tot_len); + pbuf_free(nattab[idx].p[ptr]); + nat_stat.pbuf_used--; + nattab[idx].p[ptr]=NULL; + } + ptr++; + if (ptr>=SNDQ_MAXLEN) ptr=0; + } + nattab[idx].offs=0; + nattab[idx].index_begin=ptr; + nat_stat.tcp_close++; + err_t e=tcp_shutdown(nattab[idx].pcb, 1, 1); + if (e==ERR_OK) { + tcp_abort(nattab[idx].pcb); + nattab[idx].pcb=NULL; + } + nattab[idx].pcb=NULL; + } + nattab[idx].txbuf_len=0; +} + +_Noreturn static void NAT_Task( void* arg ) {// здесь обслуживаем передачу из LWIP в сокет + uint32_t sel_req=0; + LOCK_LWIP_CORE(); + while (1) { + uint32_t act; + + int maxfd=-1; + fd_set wfd; + FD_ZERO(&wfd); + for (int i = 0; i < NAT_TAB_SIZE; i++) { + if (nattab[i].status>0 ) {// descriptor is active + if (nattab[i].socket>maxfd) maxfd=nattab[i].socket; + if (nattab[i].index_begin!=nattab[i].index_end) { FD_SET(nattab[i].socket, &wfd); sel_req=1; } + } + } + + fd_set rfd; + FD_ZERO(&rfd); + FD_SET(nat_task_pipe[0], &rfd); + if (maxfdtot_len; + while(p1->next!=NULL && offs>=p1->len) {// SEEK to offs into pbuf chain + if (p1->next==NULL && p1->len!=size) { nat_stat.pbuf_broken++; size=p1->len; } + offs-=p1->len; size-=p1->len; p1=p->next; + } + int len=send(nattab[i].socket, (uint8_t*)p1->payload+offs, p->len-offs, MSG_DONTWAIT); +// print_log("[NAT_Task] tab %d send %d:%d bytes, %d sent", i, offs, p->len-offs, len); + if (len<0) { + if (errno == EAGAIN || errno == ENOBUFS) break;// + print_log("[NAT_Task] tab %d send error, close connection (err %d: %s)", i, errno, strerror(errno)); + nattab[i].shutdown_req=1; + nat_close_so_conn(i); + nat_close_lw_conn(i); + break; + } + nattab[i].offs+=len; + if (nattab[i].offstot_len) { sel_req=1; break;}// not all sent + + nattab[i].p[nattab[i].index_begin]=0; + nattab[i].index_begin++; + if (nattab[i].index_begin>=SNDQ_MAXLEN) nattab[i].index_begin=0; + nattab[i].offs=0; + tcp_recved(nattab[i].pcb, p->tot_len); + nat_stat.pbuf_used--; + pbuf_free(p); +// print_log("[NAT_Task] tab %d free pbuf", i); + } while(0); + } + } +} + +_Noreturn static void NAT_RX_Task( void* arg ) {// здесь обслуживаем прием из сокетов и передачу в LWIP + uint32_t sel_req=0; + LOCK_LWIP_CORE(); + while (1) { + uint32_t act; + + int maxfd=-1; + fd_set rfd, efd; + FD_ZERO(&rfd); FD_ZERO(&efd); + for (int i = 0; i < NAT_TAB_SIZE; i++) { + if (nattab[i].status>0 ) {// descriptor is active + if (nattab[i].socket>maxfd) maxfd=nattab[i].socket; + FD_SET(nattab[i].socket, &rfd); + FD_SET(nattab[i].socket, &efd); + } + } + FD_SET(nat_rx_task_pipe[0], &rfd); + if (maxfd 0) { + err_t err=tcp_write(nattab[i].pcb, nattab[i].txbuf, nattab[i].txbuf_len, TCP_WRITE_FLAG_COPY);// write to lwip + if (err==ERR_OK) { + nattab[i].txbuf_len=0; + continue; + } + } + break; + } while(1); + } + } + } +} + +static void nat_tcp_err(void *arg, err_t err) { // The pcb had an error and is already deallocated. The argument might still be valid (if != NULL). + if (arg) { + uint32_t num=(int)arg-1; + print_log("[NAT_Task] tab %d close connection (by local host)", num); + if (numremote_ip.addr; + uint16_t port=htons(pcb->remote_port); +// print_log("[NAT_LWTCP_RECV3] nat_entry=%d rport=%d %d.%d.%d.%d", nat_entry, htons(port), (*ip)&0xff, (*ip>>8)&0xff, (*ip>>16)&0xff, (*ip>>24)&0xff); + if (nat_entry>=NAT_TAB_SIZE) goto recv_abrt; + if (*ip!=nattab[nat_entry].src_ip || port != nattab[nat_entry].src_port || nattab[nat_entry].proto != PROT_TCP) {nattab[nat_entry].errors++; goto recv_abrt; } + uint16_t idx=nattab[nat_entry].index_end; + if (idx>=SNDQ_MAXLEN) { nattab[nat_entry].errors++; goto recv_abrt; } + int idx_next=idx+1; + if (idx_next>=SNDQ_MAXLEN) idx_next=0; + if (idx_next==nattab[nat_entry].index_begin) { nattab[nat_entry].rx_ovf++; print_log("[NAT_LWTCP_RECV] RX_OVF: idx_b=%d idx_e=%d", nattab[nat_entry].index_begin, nattab[nat_entry].index_end ); goto recv_abrt; } +// print_log("[NAT_TCP] tab %d LWIP RECV %d/%d bytes", nat_entry, p->len, p->tot_len); + + if (nattab[nat_entry].pcb!=pcb) { print_log("[NAT_TCP] PCB not match!!!!!!!!!!!!!!!!"); while(1);} + nattab[nat_entry].p[idx]=p; + nattab[nat_entry].index_end=idx_next; + nat_stat.pbuf_used++; +// TNotifyAdd( &tNotifyHandle, taskNOTIFY_NEW_DATA); + write(nat_task_pipe[1], "1",1);// notify for new data + +// nattab[nat_entry].shutdown_req=1; +// nat_close_so_conn(nat_entry); +// nat_close_lw_conn(nat_entry); + + return ERR_OK; + recv_abrt: + if (p) { + tcp_recved(pcb, p->tot_len); + pbuf_free(p); + } + return ERR_OK; + +// return ERR_ABRT; +} + +static err_t nat_accept_fn(void *arg, struct tcp_pcb *pcb, err_t err) { +// print_log("[NAT_TCP] === NEW connection callback"); + + if ((err != ERR_OK) || (pcb == NULL)) { return ERR_VAL; } + uint8_t* ip=(uint8_t*)&pcb->remote_ip.addr; + uint16_t port=pcb->remote_port; + print_log("[NAT_TCP] === NEW connecion from %d.%d.%d.%d:%d", ip[0],ip[1],ip[2],ip[3], port); + int entry=nat_find_match(pcb->remote_ip.addr, htons(pcb->remote_port), PROT_TCP); + if (entry<0) return ERR_VAL; + tcp_arg(pcb, (void*)(entry+1));// arg for this TCP connection + int s=socket(AF_INET, SOCK_STREAM, 0); + if (s==-1) { print_log("[NAT_TCP] tab %d socket allocation err", entry); return ERR_VAL; } + int status = fcntl(s, F_SETFL, fcntl(s, F_GETFL, 0) | O_NONBLOCK); + if (status==-1) { close(s); print_log("[NAT_TCP] tab %d FCNTL error", entry); return ERR_VAL; } + int keepcnt = 8; + int keepidle = 2; + int keepintvl = 2; + int nodelay = 1; + int syncnt = 3; + setsockopt(s, IPPROTO_TCP, TCP_KEEPCNT, &keepcnt, sizeof(int)); + setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, &keepidle, sizeof(int)); + setsockopt(s, IPPROTO_TCP, TCP_KEEPINTVL, &keepintvl, sizeof(int)); + setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &nodelay, sizeof(int)); + setsockopt(s, IPPROTO_TCP, TCP_SYNCNT, &syncnt, sizeof(int)); + tcp_nagle_disabled(pcb); + + struct sockaddr_in servaddr; + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = nattab[entry].dst_ip; + servaddr.sin_port = nattab[entry].dst_port; + ip=(uint8_t*)&servaddr.sin_addr.s_addr; + port=htons(servaddr.sin_port); + print_log("[NAT_TCP] === connecion to %d.%d.%d.%d:%d", ip[0],ip[1],ip[2],ip[3], port); + int r=connect(s, (struct sockaddr*)&servaddr, sizeof(servaddr)); + if (r != 0) if (errno != EINPROGRESS) + { + print_log("[NAT_TCP] tab %d can not connect: %d", entry, errno); + close(s); + return ERR_VAL; + } + nattab[entry].socket=s; + nattab[entry].status=1; + nattab[entry].index_begin=0; + nattab[entry].index_end=0; + nattab[entry].offs=0; + nattab[entry].shutdown_req=0; + nattab[entry].pcb=pcb; + + print_log("[NAT_TCP] tab %d new remote TCP conn", entry); + + /* Set up the various callback functions */ + tcp_recv(pcb, nat_tcp_recv); + tcp_err(pcb, nat_tcp_err); +// tcp_poll(pcb, nat_tcp_poll, HTTPD_POLL_INTERVAL); + tcp_sent(pcb, nat_tcp_sent); + nat_stat.tcp_new++; + write(nat_task_pipe[1], "1",1);// notify for new connection + write(nat_rx_task_pipe[1], "1",1);// notify for new connection + + return ERR_OK; +} + +void eth_nat_init() { + int ret=pipe2(&nat_task_pipe, O_NONBLOCK); + ret=pipe2(&nat_rx_task_pipe, O_NONBLOCK); + if (ret) return; + + fcntl(nat_task_pipe[0], F_SETFL, O_NONBLOCK); + fcntl(nat_rx_task_pipe[0], F_SETFL, O_NONBLOCK); + fcntl(nat_task_pipe[1], F_SETFL, O_NONBLOCK); + fcntl(nat_rx_task_pipe[1], F_SETFL, O_NONBLOCK); + +// TNotifyCreate(&tNotifyHandle); + TaskCreate (NAT_Task, &tnatHandle); + TaskCreate (NAT_RX_Task, &tnatRXHandle); + + pthread_t tstats; + TaskCreate (calc_stats, &tstats); + + + nat_tcp=tcp_new_ip_type(IPADDR_TYPE_V4); + if (nat_tcp==NULL) return; + tcp_bind(nat_tcp, IP_ANY_TYPE, NAT_DIVERT_PORT); + err_t err; + nat_tcp=tcp_listen_with_backlog_and_err(nat_tcp, 10, &err); + if (nat_tcp==NULL) { print_log("[NAT_TCP] === NAT tcp listen failed (err %d)", err); return; } + tcp_accept(nat_tcp, nat_accept_fn); +// print_log("[NAT_TCP] === NAT INIT"); + +} diff --git a/BLE_EXAMPLE/src/main/cpp/eth_nat.h b/BLE_EXAMPLE/src/main/cpp/eth_nat.h new file mode 100644 index 000000000..faa9cffb9 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_nat.h @@ -0,0 +1,40 @@ +#define NAT_TAB_SIZE 16 + +#define SNDQ_MAXLEN 100 + +struct NAT_TAB { + uint32_t src_ip;// порядок байт в сетевом формате + uint32_t dst_ip;// порядок байт в сетевом формате + uint16_t src_port;// порядок байт в сетевом формате + uint16_t dst_port;// порядок байт в сетевом формате + uint16_t proto; + uint32_t time; + + struct pbuf* p[SNDQ_MAXLEN];// очередь приема с lwip + uint8_t txbuf[1500];// на передачу в lwip + uint16_t txbuf_len; + struct tcp_pcb *pcb;// null - free + uint32_t index_begin; + uint32_t index_end; + uint32_t status;// 0-free, 1-active (for TCP-based entries) + int socket; + uint32_t offs; + uint32_t errors; + uint32_t rx_ovf; + uint32_t shutdown_req;// 1 - waiting for shutdown sockets + }; + +struct NAT_STAT { + uint32_t pbuf_broken; + uint32_t tcp_new; + uint32_t tcp_close; + uint32_t pbuf_used; + uint32_t lw_conn_used; + uint32_t so_conn_used; + }; +extern struct NAT_STAT nat_stat; + + +int forward_nat(struct ETH_QUEUE* block); +int backward_nat(struct ETH_QUEUE* block); +void eth_nat_init(); diff --git a/BLE_EXAMPLE/src/main/cpp/eth_queue.c b/BLE_EXAMPLE/src/main/cpp/eth_queue.c new file mode 100644 index 000000000..5d76d30c0 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_queue.c @@ -0,0 +1,34 @@ +#include "eth_mem.h" +#include "eth_queue.h" + +void add_to_custom_queue(struct pbuf* p, struct ETH_Q* q) { + p->next = NULL; + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + if (q->q_len>=q->q_len_max) {// очередь уже полна. дропаем пакет. + q->lost++; + ETH_MEM_UNPROTECT(); + pbuf_free(p); + return; + } + if (q->q_end) q->q_end->next=p; else q->q_begin=p;// этот элемент приписываем к концу очереди + q->q_end=p;// конечным элементом ставим этот элемент + q->q_len++; + if (q->q_len_maxq_len) q->q_len_max=q->q_len; + ETH_MEM_UNPROTECT(); + } + +struct pbuf* get_from_custom_queue(struct ETH_Q* q) { + ETH_MEM_DECL_PROTECT(); + ETH_MEM_PROTECT(); + struct pbuf* p=(struct pbuf*)q->q_begin; + if (p==NULL) { ETH_MEM_UNPROTECT(); return NULL; } + struct pbuf* next_pbuf=p->next; + q->q_begin=next_pbuf; + if (next_pbuf == NULL) q->q_end = NULL; + if (q->q_len==0) EM_ASSERT(7);// ASSERT: сбой подсчета размера очереди. + q->q_len--; + ETH_MEM_UNPROTECT(); + p->next=NULL; + return p; + } diff --git a/BLE_EXAMPLE/src/main/cpp/eth_queue.h b/BLE_EXAMPLE/src/main/cpp/eth_queue.h new file mode 100644 index 000000000..de944a77a --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_queue.h @@ -0,0 +1,14 @@ +struct ETH_Q { + struct pbuf* q_begin; + struct pbuf* q_end; + uint32_t q_len; + uint32_t q_len_max; + uint32_t lost; + }; + +// добавить ETH_PBUF p в очередь q +void add_to_custom_queue(struct pbuf* p, struct ETH_Q* q); + + +// возврат - NULL - очередь пуста; иначе pbuf +struct pbuf* get_from_custom_queue(struct ETH_Q* q); diff --git a/BLE_EXAMPLE/src/main/cpp/eth_router.c b/BLE_EXAMPLE/src/main/cpp/eth_router.c new file mode 100644 index 000000000..dcbe56231 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_router.c @@ -0,0 +1,124 @@ +#include +#include +#include +#include + +#include "eth_mem.h" +#include "eth_router.h" +#include "eth_router_cfg.h" +#include "eth_nat.h" + +struct ETH_ROUTER_STATS eth_router_stats; + +struct ETH_QUEUEPOOL_CTRL xeth_queuepool_ctrl; +struct ETH_QUEUE xeth_queuepool[ETH_MEM_BUFS_CNT] ETH_MEM_ALIGN; + +struct ETH_PBUF_CTRL xeth_pbuf_ctrl; +struct ETH_PBUF eth_pbuf[ETH_PBUFS_CNT]; +uint8_t eth_pbuf_mem[ETH_PBUFS_CNT*ETH_MEM_BUF_SIZE];// граница элементов кратна 32 байтам. иначе будут проблемки с кешем. + + +struct ETH_NETIF eth_netif_array[ETH_NETIFS]; + +void eth_router_init() { + eth_router_add_bridge(&xeth_queuepool_ctrl, xeth_queuepool, ETH_MEM_BUFS_CNT, &xeth_pbuf_ctrl, eth_pbuf, eth_pbuf_mem, ETH_PBUFS_CNT, eth_netif_array, ETH_NETIFS); + eth_router_start_task(&xeth_queuepool_ctrl); + } + + +#define ETHTYPE_IPV4 0x0800 +#define ETHTYPE_IPV6 0x86DD +#define ETHTYPE_ARP 0x0806 + +#define ETHTYPE_ADP 0x8777// braodcast топологии +#define ETHTYPE_DBG 0x8778// unicast diagram +#define ETHTYPE_CONTROLS 0x8779// controls, terminal, gui controls + + +void sprint_pkt(char* pkt, int pkt_len) { + char textbuf[1000]; + char textptr=0; + + textptr+=sprintf(textbuf+textptr,"DMAC=%02X:%02X:%02X:%02X:%02X:%02X ",pkt[0],pkt[1],pkt[2],pkt[3],pkt[4],pkt[5]); + textptr+=sprintf(textbuf+textptr,"SMAC=%02X:%02X:%02X:%02X:%02X:%02X ",pkt[6],pkt[7],pkt[8],pkt[9],pkt[10],pkt[11]); + uint16_t ethertype=(pkt[12]<<8)+pkt[13]; + textptr+=sprintf(textbuf+textptr,"ET=%04X ",ethertype); + + if (ethertype == ETHTYPE_ARP) { + textptr+=sprintf(textbuf+textptr,"[ARP] "); + } + if (ethertype == ETHTYPE_IPV4) { + textptr+=sprintf(textbuf+textptr,"[IP4] "); + } + if (ethertype == ETHTYPE_ADP) { + textptr+=sprintf(textbuf+textptr,"[ADP] "); + } + if (ethertype == ETHTYPE_DBG) { + textptr+=sprintf(textbuf+textptr,"[DBG] "); + } + if (ethertype == ETHTYPE_CONTROLS) { + textptr+=sprintf(textbuf+textptr,"[CTR] "); + } + + if (ethertype == ETHTYPE_ADP || ethertype == ETHTYPE_DBG || ethertype == ETHTYPE_CONTROLS) { + + } + + textptr+=sprintf(textbuf+textptr,"LEN=%d ",pkt_len); + + print_log("%s",textbuf); + + } + +int prev_num; +void eth_route_block(struct ETH_QUEUE* block) { + + + if (block->pbuf->pbuf.ref==0) EM_ASSERT(20); + + int pbuf_num=(block->pbuf-eth_pbuf); + + uint32_t src_netif=block->pbuf->pbuf.if_idx; + + +// sprint_pkt(block->pbuf->pbuf.payload, block->pbuf->pbuf.len); + +/*if (src_netif == LWIP_NETIF_ID) { + print_log("Route pbuf from lwip"); + sprint_pkt(block->pbuf->pbuf.payload, block->pbuf->pbuf.len); + }*/ + + if (src_netif>=ETH_NETIFS) EM_ASSERT(21);// assert: invalid netif + if (src_netif==0) EM_ASSERT(22);// assert: invalid netif + + if (src_netif==TEST_NETIF_ID) eth_router_stats.in_test++; + if (src_netif==BLE_NETIF_ID) eth_router_stats.in_ble++; + + if (eth_netif_array[src_netif].if_up==0) {// src interface is down: drop packet & exit + block->pool->eth_netif_array[src_netif].dgrams_lost++; + eth_pbuf_free_request(block->pbuf); + eth_queue_entry_free(block); + print_log("interface (%d) is not up, dropping dgram ",src_netif); + return; + } + +// block->pool->eth_netif_array[src_netif].dgrams_lost++; + + uint32_t dst_netif=src_netif; + if (src_netif == BLE_NETIF_ID) { + forward_nat(block); + dst_netif=LWIP_NETIF_ID; + } + if (src_netif == LWIP_NETIF_ID) { + backward_nat(block); + dst_netif=BLE_NETIF_ID; + } + + if (dst_netif>=ETH_NETIFS) EM_ASSERT(23);// assert: invalid netif + if (dst_netif==0) { + eth_pbuf_free_request(block->pbuf); + eth_queue_entry_free(block); + return; + } + eth_add_packet_to_output_queue(block, &block->pool->eth_netif_array[dst_netif]); + } diff --git a/BLE_EXAMPLE/src/main/cpp/eth_router.h b/BLE_EXAMPLE/src/main/cpp/eth_router.h new file mode 100644 index 000000000..67448a290 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_router.h @@ -0,0 +1,58 @@ +#pragma once +#include "eth_mem.h" + +struct __attribute__((__packed__)) MAC_ADDR { + uint32_t mac32; + uint16_t mac16; + }; + +struct __attribute__((__packed__)) ETH_PKT_HDR { + struct MAC_ADDR dst_mac; + struct MAC_ADDR src_mac; + uint16_t ethertype; + uint8_t tos_hdrl; + uint8_t dscp; + uint16_t len; + uint16_t id; + uint16_t frag_offs; + uint8_t ttl; + uint8_t proto; + uint16_t hdr_csum; + uint32_t ip_src; + uint32_t ip_dst; + uint16_t port_src;// tcp/udp hdr + uint16_t port_dst; + }; + +struct MAC_LOOKUP_TAB { + struct MAC_ADDR mac; + uint16_t time_upd; + uint8_t if_idx; + }; + +struct ETH_ROUTER_STATS { + uint32_t in_test; + uint32_t in_ble; + uint32_t out_if_not_found; + uint32_t test_err; + + }; +extern struct ETH_ROUTER_STATS eth_router_stats; + +void eth_route_block(struct ETH_QUEUE* block); +uint32_t mac_search(struct MAC_ADDR mac); + +// проинициализировать мост по умолчанию (запускает eth_router_add_bridge с дефолтным пулом) +void eth_router_init(); +void notify_eth_ble_send_queue_update(); +void notify_eth_uart_send_queue_update(); + +//extern struct ETH_QUEUE xeth_queuepool[ETH_MEM_BUFS_CNT]; +extern struct ETH_QUEUEPOOL_CTRL xeth_queuepool_ctrl; +extern struct ETH_QUEUE xeth_queuepool[ETH_MEM_BUFS_CNT]; + +extern struct ETH_PBUF_CTRL xeth_pbuf_ctrl; +extern struct ETH_PBUF eth_pbuf[ETH_PBUFS_CNT]; +extern uint8_t eth_pbuf_mem[ETH_PBUFS_CNT*ETH_MEM_BUF_SIZE]; + +extern struct ETH_NETIF eth_netif_array[ETH_NETIFS]; diff --git a/BLE_EXAMPLE/src/main/cpp/eth_router_cfg.h b/BLE_EXAMPLE/src/main/cpp/eth_router_cfg.h new file mode 100644 index 000000000..2068cde1b --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/eth_router_cfg.h @@ -0,0 +1,18 @@ +#pragma once + +#define ETH_MEM_BUFS_CNT 100 // количество буферов (занимают ETH_MEM_BUF_SIZE байт) +#define ETH_PBUFS_CNT 400// (занимают один pbuf) +#define ETH_MEM_BUF_SIZE 1600// размер данных ethernet пакета (начиная с мак адресов) +#define ETH_NETIFS 4// макс. количество интерфейсов + +// номер интерфейса в роутере (начиная с единицы) +#define LWIP_NETIF_ID 1 +#define TEST_NETIF_ID 2 +#define BLE_NETIF_ID 3 + +// Зармеры исходящих очередей на интерфейсы +#define LWIP_NETIF_QLEN 20 +#define UART_NETIF_QLEN 20 +#define BLE_NETIF_QLEN 20 +#define IN_BLE_NETIF_QLEN_THR 3 +#define IN_UART_NETIF_QLEN_THR 3 diff --git a/BLE_EXAMPLE/src/main/cpp/images.c b/BLE_EXAMPLE/src/main/cpp/images.c new file mode 100644 index 000000000..41f6cbff8 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/images.c @@ -0,0 +1,138 @@ +#include "stdint.h" +uint8_t imageCubes[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xe3, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xf1, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfc, 0x60, 0xff, 0xff, 0xff, 0xff, 0x00, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xf0, 0xfe, 0x00, 0xe0, 0x7f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf1, 0xe0, 0x7f, 0xff, 0xff, 0xf0, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe1, 0xc0, 0x7f, 0xff, 0xff, 0xf2, 0x7e, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe1, 0xd8, 0x7f, 0xff, 0xff, 0xf1, 0x30, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc1, 0xb8, 0x3f, 0xff, 0xff, 0xf0, 0xf8, 0x00, 0x07, 0xc7, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xf0, 0x7c, 0x00, 0x0f, 0xe3, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x70, 0x1f, 0xff, 0xff, 0xfc, 0x7e, 0x00, 0x0f, 0xe1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xf8, 0x03, 0xc1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfc, 0x00, 0xee, 0x1f, 0xff, 0xff, 0xfe, 0x1f, 0xfc, 0x00, 0x0f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf8, 0x00, 0x5e, 0x1f, 0xff, 0xff, 0xfe, 0x1f, 0xfc, 0x01, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf9, 0x80, 0x1e, 0x3f, 0xff, 0xff, 0xfe, 0x0f, 0xf0, 0x1f, 0xe0, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xf3, 0x80, 0x3c, 0x3f, 0xff, 0xff, 0xfe, 0x07, 0xe3, 0xfc, 0x00, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xe7, 0x80, 0x3c, 0x7d, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xe7, 0x80, 0x38, 0xe0, 0x7f, 0xcf, 0xfd, 0x63, 0xf8, 0x00, 0x38, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xc7, 0x00, 0x10, 0xc1, 0x1f, 0xe7, 0xff, 0x77, 0xf0, 0x00, 0x7c, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xc6, 0xc0, 0x01, 0x00, 0x4e, 0x73, 0xff, 0x77, 0xf0, 0x00, 0xfc, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xc1, 0xe0, 0x02, 0x0e, 0x33, 0x3b, 0xff, 0x77, 0xee, 0x00, 0xf8, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xc1, 0xc0, 0x06, 0x1f, 0x7d, 0x9d, 0xff, 0x73, 0xff, 0x01, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xe3, 0xc0, 0x0c, 0x3f, 0xbe, 0x45, 0xff, 0xfb, 0xff, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xe3, 0x80, 0x18, 0x7f, 0xbf, 0x90, 0xff, 0xf3, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xe3, 0xb0, 0x30, 0x7f, 0xbf, 0xe8, 0xff, 0xf3, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xe0, 0x70, 0x60, 0x7f, 0x3f, 0xf2, 0x7f, 0xf3, 0xfe, 0x18, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf0, 0xf0, 0x40, 0x3e, 0x1f, 0xfd, 0xff, 0xf3, 0xd8, 0x7c, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf0, 0xf0, 0x80, 0x00, 0x0f, 0xfe, 0x7f, 0xf3, 0xe0, 0xfc, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf1, 0xe1, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf3, 0xf8, 0xfc, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf1, 0xc2, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf3, 0xf8, 0xfc, 0x01, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf8, 0x84, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf3, 0xfe, 0xf8, 0xf1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf8, 0x08, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf3, 0xff, 0x21, 0xf1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf8, 0x10, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf3, 0xff, 0xc3, 0xf1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf8, 0x30, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf3, 0xff, 0xf3, 0xf3, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfc, 0x60, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfc, 0xc0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe0, 0x00, 0x0f, 0xbf, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xdf, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0x00, 0x3f, 0xdf, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x80, 0x3f, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe0, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0c, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +}; + +uint8_t imageWolf[] = { + 0xff, 0xff, 0xff, 0x8f, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xf9, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x7f, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfc, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfc, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf9, 0x80, 0x7f, 0xe3, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf9, 0xea, 0x9f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf8, 0xd5, 0x7f, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfb, 0x29, 0x54, 0x5f, 0x9f, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xb1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfa, 0x80, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x5f, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x07, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xb0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xa8, 0x60, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xfd, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x37, 0x20, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x01, 0xe0, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x05, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x00, 0xd0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3e, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xfd, 0xf0, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0c, 0x7f, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc4, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x1f, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf7, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xfa, 0xff, 0xef, 0xff, 0xff, 0xff, 0x28, 0x0b, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfd, 0xff, 0xdf, 0xff, 0xf7, 0xff, 0xff, 0xfe, 0xc0, 0x2b, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfe, 0xff, 0xff, 0xfd, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0x97, 0xff, 0xfb, 0xff, 0xff, 0xed, 0x4a, 0x95, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xd2, 0xbf, 0xfa, 0xbf, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xd7, 0xff, 0xfd, 0x3f, 0xff, 0x3a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xf4, 0x9f, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x9d, 0x9f, 0xff, 0x67, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x4c, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xbf, 0xff, 0xc9, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xb8, 0x7f, 0xff, 0xc3, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xfc, 0x7f, 0xff, 0x86, 0x31, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xfe, 0x3f, 0xff, 0x1f, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x7f, 0x3f, 0xff, 0x3f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0xbf, 0xff, 0x3f, 0x3f, 0xd7, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0x7f, 0xfa, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0xff, 0xff, 0xef, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xfe, 0x0f, 0xff, + 0xff, 0xff, 0xff, 0xef, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xa9, 0x17, 0xef, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xee, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xf1, 0xbf, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xfc, 0x4f, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7e, 0x17, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8b, 0xc7, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xb3, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x50, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x93, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xf7, 0x47, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xfb, 0xa3, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xfe, 0xd3, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0x8f, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x9f, 0xbf, + 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0x1e, 0xef, 0xbf, 0xe7, 0xf7, 0xee, 0xdf, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x80, 0x80, 0xff, 0x27, 0xff, 0xfd, 0xff, 0xe2, 0x6f, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xf8, 0x0f, 0xcf, 0xd7, 0xff, 0xff, 0xff, 0xf1, 0x37, + 0xff, 0xff, 0xff, 0xfe, 0xc7, 0xf9, 0x9f, 0xff, 0xbf, 0x9b, 0xf7, 0xff, 0xfb, 0xff, 0xf8, 0x13, + 0xff, 0xff, 0xff, 0xff, 0xdf, 0xe8, 0xcb, 0xfe, 0x1e, 0x1b, 0xbd, 0xff, 0xff, 0xff, 0xf4, 0x1b, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0xdc, 0xe3, 0xfd, 0x8f, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x83, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0xdc, 0xe3, 0xfd, 0x8f, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x83, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0xdc, 0xe3, 0xfd, 0x8f, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x83, +}; \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/api/api_lib.c b/BLE_EXAMPLE/src/main/cpp/lwip/api/api_lib.c new file mode 100644 index 000000000..9a30ec048 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/api/api_lib.c @@ -0,0 +1,1367 @@ +/** + * @file + * Sequential API External module + * + * @defgroup netconn Netconn API + * @ingroup sequential_api + * Thread-safe, to be called from non-TCPIP threads only. + * TX/RX handling based on @ref netbuf (containing @ref pbuf) + * to avoid copying data around. + * + * @defgroup netconn_common Common functions + * @ingroup netconn + * For use with TCP and UDP + * + * @defgroup netconn_tcp TCP only + * @ingroup netconn + * TCP only functions + * + * @defgroup netconn_udp UDP only + * @ingroup netconn + * UDP only functions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + */ + +/* This is the part of the API that is linked with + the application */ + +#include "lwip/opt.h" + +#if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/api.h" +#include "lwip/memp.h" + +#include "lwip/ip.h" +#include "lwip/raw.h" +#include "lwip/udp.h" +#include "lwip/priv/api_msg.h" +#include "lwip/priv/tcp_priv.h" +#include "lwip/priv/tcpip_priv.h" + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +#include + +#define API_MSG_VAR_REF(name) API_VAR_REF(name) +#define API_MSG_VAR_DECLARE(name) API_VAR_DECLARE(struct api_msg, name) +#define API_MSG_VAR_ALLOC(name) API_VAR_ALLOC(struct api_msg, MEMP_API_MSG, name, ERR_MEM) +#define API_MSG_VAR_ALLOC_RETURN_NULL(name) API_VAR_ALLOC(struct api_msg, MEMP_API_MSG, name, NULL) +#define API_MSG_VAR_FREE(name) API_VAR_FREE(MEMP_API_MSG, name) + +#if TCP_LISTEN_BACKLOG +/* need to allocate API message for accept so empty message pool does not result in event loss + * see bug #47512: MPU_COMPATIBLE may fail on empty pool */ +#define API_MSG_VAR_ALLOC_ACCEPT(msg) API_MSG_VAR_ALLOC(msg) +#define API_MSG_VAR_FREE_ACCEPT(msg) API_MSG_VAR_FREE(msg) +#else /* TCP_LISTEN_BACKLOG */ +#define API_MSG_VAR_ALLOC_ACCEPT(msg) +#define API_MSG_VAR_FREE_ACCEPT(msg) +#endif /* TCP_LISTEN_BACKLOG */ + +#if LWIP_NETCONN_FULLDUPLEX +#define NETCONN_RECVMBOX_WAITABLE(conn) (sys_mbox_valid(&(conn)->recvmbox) && (((conn)->flags & NETCONN_FLAG_MBOXINVALID) == 0)) +#define NETCONN_ACCEPTMBOX_WAITABLE(conn) (sys_mbox_valid(&(conn)->acceptmbox) && (((conn)->flags & (NETCONN_FLAG_MBOXCLOSED|NETCONN_FLAG_MBOXINVALID)) == 0)) +#define NETCONN_MBOX_WAITING_INC(conn) SYS_ARCH_INC(conn->mbox_threads_waiting, 1) +#define NETCONN_MBOX_WAITING_DEC(conn) SYS_ARCH_DEC(conn->mbox_threads_waiting, 1) +#else /* LWIP_NETCONN_FULLDUPLEX */ +#define NETCONN_RECVMBOX_WAITABLE(conn) sys_mbox_valid(&(conn)->recvmbox) +#define NETCONN_ACCEPTMBOX_WAITABLE(conn) (sys_mbox_valid(&(conn)->acceptmbox) && (((conn)->flags & NETCONN_FLAG_MBOXCLOSED) == 0)) +#define NETCONN_MBOX_WAITING_INC(conn) +#define NETCONN_MBOX_WAITING_DEC(conn) +#endif /* LWIP_NETCONN_FULLDUPLEX */ + +static err_t netconn_close_shutdown(struct netconn *conn, u8_t how); + +/** + * Call the lower part of a netconn_* function + * This function is then running in the thread context + * of tcpip_thread and has exclusive access to lwIP core code. + * + * @param fn function to call + * @param apimsg a struct containing the function to call and its parameters + * @return ERR_OK if the function was called, another err_t if not + */ +static err_t +netconn_apimsg(tcpip_callback_fn fn, struct api_msg *apimsg) +{ + err_t err; + +#ifdef LWIP_DEBUG + /* catch functions that don't set err */ + apimsg->err = ERR_VAL; +#endif /* LWIP_DEBUG */ + +#if LWIP_NETCONN_SEM_PER_THREAD + apimsg->op_completed_sem = LWIP_NETCONN_THREAD_SEM_GET(); +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + + err = tcpip_send_msg_wait_sem(fn, apimsg, LWIP_API_MSG_SEM(apimsg)); + if (err == ERR_OK) { + return apimsg->err; + } + return err; +} + +/** + * Create a new netconn (of a specific type) that has a callback function. + * The corresponding pcb is also created. + * + * @param t the type of 'connection' to create (@see enum netconn_type) + * @param proto the IP protocol for RAW IP pcbs + * @param callback a function to call on status changes (RX available, TX'ed) + * @return a newly allocated struct netconn or + * NULL on memory error + */ +struct netconn * +netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto, netconn_callback callback) +{ + struct netconn *conn; + API_MSG_VAR_DECLARE(msg); + API_MSG_VAR_ALLOC_RETURN_NULL(msg); + + conn = netconn_alloc(t, callback); + if (conn != NULL) { + err_t err; + + API_MSG_VAR_REF(msg).msg.n.proto = proto; + API_MSG_VAR_REF(msg).conn = conn; + err = netconn_apimsg(lwip_netconn_do_newconn, &API_MSG_VAR_REF(msg)); + if (err != ERR_OK) { + LWIP_ASSERT("freeing conn without freeing pcb", conn->pcb.tcp == NULL); + LWIP_ASSERT("conn has no recvmbox", sys_mbox_valid(&conn->recvmbox)); +#if LWIP_TCP + LWIP_ASSERT("conn->acceptmbox shouldn't exist", !sys_mbox_valid(&conn->acceptmbox)); +#endif /* LWIP_TCP */ +#if !LWIP_NETCONN_SEM_PER_THREAD + LWIP_ASSERT("conn has no op_completed", sys_sem_valid(&conn->op_completed)); + sys_sem_free(&conn->op_completed); +#endif /* !LWIP_NETCONN_SEM_PER_THREAD */ + sys_mbox_free(&conn->recvmbox); + memp_free(MEMP_NETCONN, conn); + API_MSG_VAR_FREE(msg); + return NULL; + } + } + API_MSG_VAR_FREE(msg); + return conn; +} + +/** + * @ingroup netconn_common + * Close a netconn 'connection' and free all its resources but not the netconn itself. + * UDP and RAW connection are completely closed, TCP pcbs might still be in a waitstate + * after this returns. + * + * @param conn the netconn to delete + * @return ERR_OK if the connection was deleted + */ +err_t +netconn_prepare_delete(struct netconn *conn) +{ + err_t err; + API_MSG_VAR_DECLARE(msg); + + /* No ASSERT here because possible to get a (conn == NULL) if we got an accept error */ + if (conn == NULL) { + return ERR_OK; + } + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; +#if LWIP_SO_SNDTIMEO || LWIP_SO_LINGER + /* get the time we started, which is later compared to + sys_now() + conn->send_timeout */ + API_MSG_VAR_REF(msg).msg.sd.time_started = sys_now(); +#else /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ +#if LWIP_TCP + API_MSG_VAR_REF(msg).msg.sd.polls_left = + ((LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT + TCP_SLOW_INTERVAL - 1) / TCP_SLOW_INTERVAL) + 1; +#endif /* LWIP_TCP */ +#endif /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ + err = netconn_apimsg(lwip_netconn_do_delconn, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + if (err != ERR_OK) { + return err; + } + return ERR_OK; +} + +/** + * @ingroup netconn_common + * Close a netconn 'connection' and free its resources. + * UDP and RAW connection are completely closed, TCP pcbs might still be in a waitstate + * after this returns. + * + * @param conn the netconn to delete + * @return ERR_OK if the connection was deleted + */ +err_t +netconn_delete(struct netconn *conn) +{ + err_t err; + + /* No ASSERT here because possible to get a (conn == NULL) if we got an accept error */ + if (conn == NULL) { + return ERR_OK; + } + +#if LWIP_NETCONN_FULLDUPLEX + if (conn->flags & NETCONN_FLAG_MBOXINVALID) { + /* Already called netconn_prepare_delete() before */ + err = ERR_OK; + } else +#endif /* LWIP_NETCONN_FULLDUPLEX */ + { + err = netconn_prepare_delete(conn); + } + if (err == ERR_OK) { + netconn_free(conn); + } + return err; +} + +/** + * Get the local or remote IP address and port of a netconn. + * For RAW netconns, this returns the protocol instead of a port! + * + * @param conn the netconn to query + * @param addr a pointer to which to save the IP address + * @param port a pointer to which to save the port (or protocol for RAW) + * @param local 1 to get the local IP address, 0 to get the remote one + * @return ERR_CONN for invalid connections + * ERR_OK if the information was retrieved + */ +err_t +netconn_getaddr(struct netconn *conn, ip_addr_t *addr, u16_t *port, u8_t local) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + + LWIP_ERROR("netconn_getaddr: invalid conn", (conn != NULL), return ERR_ARG;); + LWIP_ERROR("netconn_getaddr: invalid addr", (addr != NULL), return ERR_ARG;); + LWIP_ERROR("netconn_getaddr: invalid port", (port != NULL), return ERR_ARG;); + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; + API_MSG_VAR_REF(msg).msg.ad.local = local; +#if LWIP_MPU_COMPATIBLE + err = netconn_apimsg(lwip_netconn_do_getaddr, &API_MSG_VAR_REF(msg)); + *addr = msg->msg.ad.ipaddr; + *port = msg->msg.ad.port; +#else /* LWIP_MPU_COMPATIBLE */ + msg.msg.ad.ipaddr = addr; + msg.msg.ad.port = port; + err = netconn_apimsg(lwip_netconn_do_getaddr, &msg); +#endif /* LWIP_MPU_COMPATIBLE */ + API_MSG_VAR_FREE(msg); + + return err; +} + +/** + * @ingroup netconn_common + * Bind a netconn to a specific local IP address and port. + * Binding one netconn twice might not always be checked correctly! + * + * @param conn the netconn to bind + * @param addr the local IP address to bind the netconn to + * (use IP4_ADDR_ANY/IP6_ADDR_ANY to bind to all addresses) + * @param port the local port to bind the netconn to (not used for RAW) + * @return ERR_OK if bound, any other err_t on failure + */ +err_t +netconn_bind(struct netconn *conn, const ip_addr_t *addr, u16_t port) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + + LWIP_ERROR("netconn_bind: invalid conn", (conn != NULL), return ERR_ARG;); + +#if LWIP_IPV4 + /* Don't propagate NULL pointer (IP_ADDR_ANY alias) to subsequent functions */ + if (addr == NULL) { + addr = IP4_ADDR_ANY; + } +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV4 && LWIP_IPV6 + /* "Socket API like" dual-stack support: If IP to bind to is IP6_ADDR_ANY, + * and NETCONN_FLAG_IPV6_V6ONLY is 0, use IP_ANY_TYPE to bind + */ + if ((netconn_get_ipv6only(conn) == 0) && + ip_addr_cmp(addr, IP6_ADDR_ANY)) { + addr = IP_ANY_TYPE; + } +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; + API_MSG_VAR_REF(msg).msg.bc.ipaddr = API_MSG_VAR_REF(addr); + API_MSG_VAR_REF(msg).msg.bc.port = port; + err = netconn_apimsg(lwip_netconn_do_bind, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +} + +/** + * @ingroup netconn_common + * Bind a netconn to a specific interface and port. + * Binding one netconn twice might not always be checked correctly! + * + * @param conn the netconn to bind + * @param if_idx the local interface index to bind the netconn to + * @return ERR_OK if bound, any other err_t on failure + */ +err_t +netconn_bind_if(struct netconn *conn, u8_t if_idx) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + + LWIP_ERROR("netconn_bind_if: invalid conn", (conn != NULL), return ERR_ARG;); + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; + API_MSG_VAR_REF(msg).msg.bc.if_idx = if_idx; + err = netconn_apimsg(lwip_netconn_do_bind_if, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +} + +/** + * @ingroup netconn_common + * Connect a netconn to a specific remote IP address and port. + * + * @param conn the netconn to connect + * @param addr the remote IP address to connect to + * @param port the remote port to connect to (no used for RAW) + * @return ERR_OK if connected, return value of tcp_/udp_/raw_connect otherwise + */ +err_t +netconn_connect(struct netconn *conn, const ip_addr_t *addr, u16_t port) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + + LWIP_ERROR("netconn_connect: invalid conn", (conn != NULL), return ERR_ARG;); + +#if LWIP_IPV4 + /* Don't propagate NULL pointer (IP_ADDR_ANY alias) to subsequent functions */ + if (addr == NULL) { + addr = IP4_ADDR_ANY; + } +#endif /* LWIP_IPV4 */ + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; + API_MSG_VAR_REF(msg).msg.bc.ipaddr = API_MSG_VAR_REF(addr); + API_MSG_VAR_REF(msg).msg.bc.port = port; + err = netconn_apimsg(lwip_netconn_do_connect, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +} + +/** + * @ingroup netconn_udp + * Disconnect a netconn from its current peer (only valid for UDP netconns). + * + * @param conn the netconn to disconnect + * @return See @ref err_t + */ +err_t +netconn_disconnect(struct netconn *conn) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + + LWIP_ERROR("netconn_disconnect: invalid conn", (conn != NULL), return ERR_ARG;); + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; + err = netconn_apimsg(lwip_netconn_do_disconnect, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +} + +/** + * @ingroup netconn_tcp + * Set a TCP netconn into listen mode + * + * @param conn the tcp netconn to set to listen mode + * @param backlog the listen backlog, only used if TCP_LISTEN_BACKLOG==1 + * @return ERR_OK if the netconn was set to listen (UDP and RAW netconns + * don't return any error (yet?)) + */ +err_t +netconn_listen_with_backlog(struct netconn *conn, u8_t backlog) +{ +#if LWIP_TCP + API_MSG_VAR_DECLARE(msg); + err_t err; + + /* This does no harm. If TCP_LISTEN_BACKLOG is off, backlog is unused. */ + LWIP_UNUSED_ARG(backlog); + + LWIP_ERROR("netconn_listen: invalid conn", (conn != NULL), return ERR_ARG;); + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; +#if TCP_LISTEN_BACKLOG + API_MSG_VAR_REF(msg).msg.lb.backlog = backlog; +#endif /* TCP_LISTEN_BACKLOG */ + err = netconn_apimsg(lwip_netconn_do_listen, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +#else /* LWIP_TCP */ + LWIP_UNUSED_ARG(conn); + LWIP_UNUSED_ARG(backlog); + return ERR_ARG; +#endif /* LWIP_TCP */ +} + +/** + * @ingroup netconn_tcp + * Accept a new connection on a TCP listening netconn. + * + * @param conn the TCP listen netconn + * @param new_conn pointer where the new connection is stored + * @return ERR_OK if a new connection has been received or an error + * code otherwise + */ +err_t +netconn_accept(struct netconn *conn, struct netconn **new_conn) +{ +#if LWIP_TCP + err_t err; + void *accept_ptr; + struct netconn *newconn; +#if TCP_LISTEN_BACKLOG + API_MSG_VAR_DECLARE(msg); +#endif /* TCP_LISTEN_BACKLOG */ + + LWIP_ERROR("netconn_accept: invalid pointer", (new_conn != NULL), return ERR_ARG;); + *new_conn = NULL; + LWIP_ERROR("netconn_accept: invalid conn", (conn != NULL), return ERR_ARG;); + + /* NOTE: Although the opengroup spec says a pending error shall be returned to + send/recv/getsockopt(SO_ERROR) only, we return it for listening + connections also, to handle embedded-system errors */ + err = netconn_err(conn); + if (err != ERR_OK) { + /* return pending error */ + return err; + } + if (!NETCONN_ACCEPTMBOX_WAITABLE(conn)) { + /* don't accept if closed: this might block the application task + waiting on acceptmbox forever! */ + return ERR_CLSD; + } + + API_MSG_VAR_ALLOC_ACCEPT(msg); + + NETCONN_MBOX_WAITING_INC(conn); + if (netconn_is_nonblocking(conn)) { + if (sys_arch_mbox_tryfetch(&conn->acceptmbox, &accept_ptr) == SYS_ARCH_TIMEOUT) { + API_MSG_VAR_FREE_ACCEPT(msg); + NETCONN_MBOX_WAITING_DEC(conn); + return ERR_WOULDBLOCK; + } + } else { +#if LWIP_SO_RCVTIMEO + if (sys_arch_mbox_fetch(&conn->acceptmbox, &accept_ptr, conn->recv_timeout) == SYS_ARCH_TIMEOUT) { + API_MSG_VAR_FREE_ACCEPT(msg); + NETCONN_MBOX_WAITING_DEC(conn); + return ERR_TIMEOUT; + } +#else + sys_arch_mbox_fetch(&conn->acceptmbox, &accept_ptr, 0); +#endif /* LWIP_SO_RCVTIMEO*/ + } + NETCONN_MBOX_WAITING_DEC(conn); +#if LWIP_NETCONN_FULLDUPLEX + if (conn->flags & NETCONN_FLAG_MBOXINVALID) { + if (lwip_netconn_is_deallocated_msg(accept_ptr)) { + /* the netconn has been closed from another thread */ + API_MSG_VAR_FREE_ACCEPT(msg); + return ERR_CONN; + } + } +#endif + + /* Register event with callback */ + API_EVENT(conn, NETCONN_EVT_RCVMINUS, 0); + + if (lwip_netconn_is_err_msg(accept_ptr, &err)) { + /* a connection has been aborted: e.g. out of pcbs or out of netconns during accept */ + API_MSG_VAR_FREE_ACCEPT(msg); + return err; + } + if (accept_ptr == NULL) { + /* connection has been aborted */ + API_MSG_VAR_FREE_ACCEPT(msg); + return ERR_CLSD; + } + newconn = (struct netconn *)accept_ptr; +#if TCP_LISTEN_BACKLOG + /* Let the stack know that we have accepted the connection. */ + API_MSG_VAR_REF(msg).conn = newconn; + /* don't care for the return value of lwip_netconn_do_recv */ + netconn_apimsg(lwip_netconn_do_accepted, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); +#endif /* TCP_LISTEN_BACKLOG */ + + *new_conn = newconn; + /* don't set conn->last_err: it's only ERR_OK, anyway */ + return ERR_OK; +#else /* LWIP_TCP */ + LWIP_UNUSED_ARG(conn); + LWIP_UNUSED_ARG(new_conn); + return ERR_ARG; +#endif /* LWIP_TCP */ +} + +/** + * @ingroup netconn_common + * Receive data: actual implementation that doesn't care whether pbuf or netbuf + * is received (this is internal, it's just here for describing common errors) + * + * @param conn the netconn from which to receive data + * @param new_buf pointer where a new pbuf/netbuf is stored when received data + * @param apiflags flags that control function behaviour. For now only: + * - NETCONN_DONTBLOCK: only read data that is available now, don't wait for more data + * @return ERR_OK if data has been received, an error code otherwise (timeout, + * memory error or another error) + * ERR_CONN if not connected + * ERR_CLSD if TCP connection has been closed + * ERR_WOULDBLOCK if the netconn is nonblocking but would block to wait for data + * ERR_TIMEOUT if the netconn has a receive timeout and no data was received + */ +static err_t +netconn_recv_data(struct netconn *conn, void **new_buf, u8_t apiflags) +{ + void *buf = NULL; + u16_t len; + + LWIP_ERROR("netconn_recv: invalid pointer", (new_buf != NULL), return ERR_ARG;); + *new_buf = NULL; + LWIP_ERROR("netconn_recv: invalid conn", (conn != NULL), return ERR_ARG;); + + if (!NETCONN_RECVMBOX_WAITABLE(conn)) { + err_t err = netconn_err(conn); + if (err != ERR_OK) { + /* return pending error */ + return err; + } + return ERR_CONN; + } + + NETCONN_MBOX_WAITING_INC(conn); + if (netconn_is_nonblocking(conn) || (apiflags & NETCONN_DONTBLOCK) || + (conn->flags & NETCONN_FLAG_MBOXCLOSED) || (conn->pending_err != ERR_OK)) { + if (sys_arch_mbox_tryfetch(&conn->recvmbox, &buf) == SYS_ARCH_TIMEOUT) { + err_t err; + NETCONN_MBOX_WAITING_DEC(conn); + err = netconn_err(conn); + if (err != ERR_OK) { + /* return pending error */ + return err; + } + if (conn->flags & NETCONN_FLAG_MBOXCLOSED) { + return ERR_CONN; + } + return ERR_WOULDBLOCK; + } + } else { +#if LWIP_SO_RCVTIMEO + if (sys_arch_mbox_fetch(&conn->recvmbox, &buf, conn->recv_timeout) == SYS_ARCH_TIMEOUT) { + NETCONN_MBOX_WAITING_DEC(conn); + return ERR_TIMEOUT; + } +#else + sys_arch_mbox_fetch(&conn->recvmbox, &buf, 0); +#endif /* LWIP_SO_RCVTIMEO*/ + } + NETCONN_MBOX_WAITING_DEC(conn); +#if LWIP_NETCONN_FULLDUPLEX + if (conn->flags & NETCONN_FLAG_MBOXINVALID) { + if (lwip_netconn_is_deallocated_msg(buf)) { + /* the netconn has been closed from another thread */ + API_MSG_VAR_FREE_ACCEPT(msg); + return ERR_CONN; + } + } +#endif + +#if LWIP_TCP +#if (LWIP_UDP || LWIP_RAW) + if (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP) +#endif /* (LWIP_UDP || LWIP_RAW) */ + { + err_t err; + /* Check if this is an error message or a pbuf */ + if (lwip_netconn_is_err_msg(buf, &err)) { + /* new_buf has been zeroed above already */ + if (err == ERR_CLSD) { + /* connection closed translates to ERR_OK with *new_buf == NULL */ + return ERR_OK; + } + return err; + } + len = ((struct pbuf *)buf)->tot_len; + } +#endif /* LWIP_TCP */ +#if LWIP_TCP && (LWIP_UDP || LWIP_RAW) + else +#endif /* LWIP_TCP && (LWIP_UDP || LWIP_RAW) */ +#if (LWIP_UDP || LWIP_RAW) + { + LWIP_ASSERT("buf != NULL", buf != NULL); + len = netbuf_len((struct netbuf *)buf); + } +#endif /* (LWIP_UDP || LWIP_RAW) */ + +#if LWIP_SO_RCVBUF + SYS_ARCH_DEC(conn->recv_avail, len); +#endif /* LWIP_SO_RCVBUF */ + /* Register event with callback */ + API_EVENT(conn, NETCONN_EVT_RCVMINUS, len); + + LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_recv_data: received %p, len=%"U16_F"\n", buf, len)); + + *new_buf = buf; + /* don't set conn->last_err: it's only ERR_OK, anyway */ + return ERR_OK; +} + +#if LWIP_TCP +static err_t +netconn_tcp_recvd_msg(struct netconn *conn, size_t len, struct api_msg *msg) +{ + LWIP_ERROR("netconn_recv_tcp_pbuf: invalid conn", (conn != NULL) && + NETCONNTYPE_GROUP(netconn_type(conn)) == NETCONN_TCP, return ERR_ARG;); + + msg->conn = conn; + msg->msg.r.len = len; + + return netconn_apimsg(lwip_netconn_do_recv, msg); +} + +err_t +netconn_tcp_recvd(struct netconn *conn, size_t len) +{ + err_t err; + API_MSG_VAR_DECLARE(msg); + LWIP_ERROR("netconn_recv_tcp_pbuf: invalid conn", (conn != NULL) && + NETCONNTYPE_GROUP(netconn_type(conn)) == NETCONN_TCP, return ERR_ARG;); + + API_MSG_VAR_ALLOC(msg); + err = netconn_tcp_recvd_msg(conn, len, &API_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + return err; +} + +static err_t +netconn_recv_data_tcp(struct netconn *conn, struct pbuf **new_buf, u8_t apiflags) +{ + err_t err; + struct pbuf *buf; + API_MSG_VAR_DECLARE(msg); +#if LWIP_MPU_COMPATIBLE + msg = NULL; +#endif + + if (!NETCONN_RECVMBOX_WAITABLE(conn)) { + /* This only happens when calling this function more than once *after* receiving FIN */ + return ERR_CONN; + } + if (netconn_is_flag_set(conn, NETCONN_FIN_RX_PENDING)) { + netconn_clear_flags(conn, NETCONN_FIN_RX_PENDING); + goto handle_fin; + } + + if (!(apiflags & NETCONN_NOAUTORCVD)) { + /* need to allocate API message here so empty message pool does not result in event loss + * see bug #47512: MPU_COMPATIBLE may fail on empty pool */ + API_MSG_VAR_ALLOC(msg); + } + + err = netconn_recv_data(conn, (void **)new_buf, apiflags); + if (err != ERR_OK) { + if (!(apiflags & NETCONN_NOAUTORCVD)) { + API_MSG_VAR_FREE(msg); + } + return err; + } + buf = *new_buf; + if (!(apiflags & NETCONN_NOAUTORCVD)) { + /* Let the stack know that we have taken the data. */ + u16_t len = buf ? buf->tot_len : 1; + /* don't care for the return value of lwip_netconn_do_recv */ + /* @todo: this should really be fixed, e.g. by retrying in poll on error */ + netconn_tcp_recvd_msg(conn, len, &API_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + } + + /* If we are closed, we indicate that we no longer wish to use the socket */ + if (buf == NULL) { + if (apiflags & NETCONN_NOFIN) { + /* received a FIN but the caller cannot handle it right now: + re-enqueue it and return "no data" */ + netconn_set_flags(conn, NETCONN_FIN_RX_PENDING); + return ERR_WOULDBLOCK; + } else { +handle_fin: + API_EVENT(conn, NETCONN_EVT_RCVMINUS, 0); + if (conn->pcb.ip == NULL) { + /* race condition: RST during recv */ + err = netconn_err(conn); + if (err != ERR_OK) { + return err; + } + return ERR_RST; + } + /* RX side is closed, so deallocate the recvmbox */ + netconn_close_shutdown(conn, NETCONN_SHUT_RD); + /* Don' store ERR_CLSD as conn->err since we are only half-closed */ + return ERR_CLSD; + } + } + return err; +} + +/** + * @ingroup netconn_tcp + * Receive data (in form of a pbuf) from a TCP netconn + * + * @param conn the netconn from which to receive data + * @param new_buf pointer where a new pbuf is stored when received data + * @return ERR_OK if data has been received, an error code otherwise (timeout, + * memory error or another error, @see netconn_recv_data) + * ERR_ARG if conn is not a TCP netconn + */ +err_t +netconn_recv_tcp_pbuf(struct netconn *conn, struct pbuf **new_buf) +{ + LWIP_ERROR("netconn_recv_tcp_pbuf: invalid conn", (conn != NULL) && + NETCONNTYPE_GROUP(netconn_type(conn)) == NETCONN_TCP, return ERR_ARG;); + + return netconn_recv_data_tcp(conn, new_buf, 0); +} + +/** + * @ingroup netconn_tcp + * Receive data (in form of a pbuf) from a TCP netconn + * + * @param conn the netconn from which to receive data + * @param new_buf pointer where a new pbuf is stored when received data + * @param apiflags flags that control function behaviour. For now only: + * - NETCONN_DONTBLOCK: only read data that is available now, don't wait for more data + * @return ERR_OK if data has been received, an error code otherwise (timeout, + * memory error or another error, @see netconn_recv_data) + * ERR_ARG if conn is not a TCP netconn + */ +err_t +netconn_recv_tcp_pbuf_flags(struct netconn *conn, struct pbuf **new_buf, u8_t apiflags) +{ + LWIP_ERROR("netconn_recv_tcp_pbuf: invalid conn", (conn != NULL) && + NETCONNTYPE_GROUP(netconn_type(conn)) == NETCONN_TCP, return ERR_ARG;); + + return netconn_recv_data_tcp(conn, new_buf, apiflags); +} +#endif /* LWIP_TCP */ + +/** + * Receive data (in form of a netbuf) from a UDP or RAW netconn + * + * @param conn the netconn from which to receive data + * @param new_buf pointer where a new netbuf is stored when received data + * @return ERR_OK if data has been received, an error code otherwise (timeout, + * memory error or another error) + * ERR_ARG if conn is not a UDP/RAW netconn + */ +err_t +netconn_recv_udp_raw_netbuf(struct netconn *conn, struct netbuf **new_buf) +{ + LWIP_ERROR("netconn_recv_udp_raw_netbuf: invalid conn", (conn != NULL) && + NETCONNTYPE_GROUP(netconn_type(conn)) != NETCONN_TCP, return ERR_ARG;); + + return netconn_recv_data(conn, (void **)new_buf, 0); +} + +/** + * Receive data (in form of a netbuf) from a UDP or RAW netconn + * + * @param conn the netconn from which to receive data + * @param new_buf pointer where a new netbuf is stored when received data + * @param apiflags flags that control function behaviour. For now only: + * - NETCONN_DONTBLOCK: only read data that is available now, don't wait for more data + * @return ERR_OK if data has been received, an error code otherwise (timeout, + * memory error or another error) + * ERR_ARG if conn is not a UDP/RAW netconn + */ +err_t +netconn_recv_udp_raw_netbuf_flags(struct netconn *conn, struct netbuf **new_buf, u8_t apiflags) +{ + LWIP_ERROR("netconn_recv_udp_raw_netbuf: invalid conn", (conn != NULL) && + NETCONNTYPE_GROUP(netconn_type(conn)) != NETCONN_TCP, return ERR_ARG;); + + return netconn_recv_data(conn, (void **)new_buf, apiflags); +} + +/** + * @ingroup netconn_common + * Receive data (in form of a netbuf containing a packet buffer) from a netconn + * + * @param conn the netconn from which to receive data + * @param new_buf pointer where a new netbuf is stored when received data + * @return ERR_OK if data has been received, an error code otherwise (timeout, + * memory error or another error) + */ +err_t +netconn_recv(struct netconn *conn, struct netbuf **new_buf) +{ +#if LWIP_TCP + struct netbuf *buf = NULL; + err_t err; +#endif /* LWIP_TCP */ + + LWIP_ERROR("netconn_recv: invalid pointer", (new_buf != NULL), return ERR_ARG;); + *new_buf = NULL; + LWIP_ERROR("netconn_recv: invalid conn", (conn != NULL), return ERR_ARG;); + +#if LWIP_TCP +#if (LWIP_UDP || LWIP_RAW) + if (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP) +#endif /* (LWIP_UDP || LWIP_RAW) */ + { + struct pbuf *p = NULL; + /* This is not a listening netconn, since recvmbox is set */ + + buf = (struct netbuf *)memp_malloc(MEMP_NETBUF); + if (buf == NULL) { + return ERR_MEM; + } + + err = netconn_recv_data_tcp(conn, &p, 0); + if (err != ERR_OK) { + memp_free(MEMP_NETBUF, buf); + return err; + } + LWIP_ASSERT("p != NULL", p != NULL); + + buf->p = p; + buf->ptr = p; + buf->port = 0; + ip_addr_set_zero(&buf->addr); + *new_buf = buf; + /* don't set conn->last_err: it's only ERR_OK, anyway */ + return ERR_OK; + } +#endif /* LWIP_TCP */ +#if LWIP_TCP && (LWIP_UDP || LWIP_RAW) + else +#endif /* LWIP_TCP && (LWIP_UDP || LWIP_RAW) */ + { +#if (LWIP_UDP || LWIP_RAW) + return netconn_recv_data(conn, (void **)new_buf, 0); +#endif /* (LWIP_UDP || LWIP_RAW) */ + } +} + +/** + * @ingroup netconn_udp + * Send data (in form of a netbuf) to a specific remote IP address and port. + * Only to be used for UDP and RAW netconns (not TCP). + * + * @param conn the netconn over which to send data + * @param buf a netbuf containing the data to send + * @param addr the remote IP address to which to send the data + * @param port the remote port to which to send the data + * @return ERR_OK if data was sent, any other err_t on error + */ +err_t +netconn_sendto(struct netconn *conn, struct netbuf *buf, const ip_addr_t *addr, u16_t port) +{ + if (buf != NULL) { + ip_addr_set(&buf->addr, addr); + buf->port = port; + return netconn_send(conn, buf); + } + return ERR_VAL; +} + +/** + * @ingroup netconn_udp + * Send data over a UDP or RAW netconn (that is already connected). + * + * @param conn the UDP or RAW netconn over which to send data + * @param buf a netbuf containing the data to send + * @return ERR_OK if data was sent, any other err_t on error + */ +err_t +netconn_send(struct netconn *conn, struct netbuf *buf) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + + LWIP_ERROR("netconn_send: invalid conn", (conn != NULL), return ERR_ARG;); + + LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_send: sending %"U16_F" bytes\n", buf->p->tot_len)); + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; + API_MSG_VAR_REF(msg).msg.b = buf; + err = netconn_apimsg(lwip_netconn_do_send, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +} + +/** + * @ingroup netconn_tcp + * Send data over a TCP netconn. + * + * @param conn the TCP netconn over which to send data + * @param dataptr pointer to the application buffer that contains the data to send + * @param size size of the application data to send + * @param apiflags combination of following flags : + * - NETCONN_COPY: data will be copied into memory belonging to the stack + * - NETCONN_MORE: for TCP connection, PSH flag will be set on last segment sent + * - NETCONN_DONTBLOCK: only write the data if all data can be written at once + * @param bytes_written pointer to a location that receives the number of written bytes + * @return ERR_OK if data was sent, any other err_t on error + */ +err_t +netconn_write_partly(struct netconn *conn, const void *dataptr, size_t size, + u8_t apiflags, size_t *bytes_written) +{ + struct netvector vector; + vector.ptr = dataptr; + vector.len = size; + return netconn_write_vectors_partly(conn, &vector, 1, apiflags, bytes_written); +} + +/** + * Send vectorized data atomically over a TCP netconn. + * + * @param conn the TCP netconn over which to send data + * @param vectors array of vectors containing data to send + * @param vectorcnt number of vectors in the array + * @param apiflags combination of following flags : + * - NETCONN_COPY: data will be copied into memory belonging to the stack + * - NETCONN_MORE: for TCP connection, PSH flag will be set on last segment sent + * - NETCONN_DONTBLOCK: only write the data if all data can be written at once + * @param bytes_written pointer to a location that receives the number of written bytes + * @return ERR_OK if data was sent, any other err_t on error + */ +err_t +netconn_write_vectors_partly(struct netconn *conn, struct netvector *vectors, u16_t vectorcnt, + u8_t apiflags, size_t *bytes_written) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + u8_t dontblock; + size_t size; + int i; + + LWIP_ERROR("netconn_write: invalid conn", (conn != NULL), return ERR_ARG;); + LWIP_ERROR("netconn_write: invalid conn->type", (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP), return ERR_VAL;); + dontblock = netconn_is_nonblocking(conn) || (apiflags & NETCONN_DONTBLOCK); +#if LWIP_SO_SNDTIMEO + if (conn->send_timeout != 0) { + dontblock = 1; + } +#endif /* LWIP_SO_SNDTIMEO */ + if (dontblock && !bytes_written) { + /* This implies netconn_write() cannot be used for non-blocking send, since + it has no way to return the number of bytes written. */ + return ERR_VAL; + } + + /* sum up the total size */ + size = 0; + for (i = 0; i < vectorcnt; i++) { + size += vectors[i].len; + if (size < vectors[i].len) { + /* overflow */ + return ERR_VAL; + } + } + if (size == 0) { + return ERR_OK; + } else if (size > SSIZE_MAX) { + ssize_t limited; + /* this is required by the socket layer (cannot send full size_t range) */ + if (!bytes_written) { + return ERR_VAL; + } + /* limit the amount of data to send */ + limited = SSIZE_MAX; + size = (size_t)limited; + } + + API_MSG_VAR_ALLOC(msg); + /* non-blocking write sends as much */ + API_MSG_VAR_REF(msg).conn = conn; + API_MSG_VAR_REF(msg).msg.w.vector = vectors; + API_MSG_VAR_REF(msg).msg.w.vector_cnt = vectorcnt; + API_MSG_VAR_REF(msg).msg.w.vector_off = 0; + API_MSG_VAR_REF(msg).msg.w.apiflags = apiflags; + API_MSG_VAR_REF(msg).msg.w.len = size; + API_MSG_VAR_REF(msg).msg.w.offset = 0; +#if LWIP_SO_SNDTIMEO + if (conn->send_timeout != 0) { + /* get the time we started, which is later compared to + sys_now() + conn->send_timeout */ + API_MSG_VAR_REF(msg).msg.w.time_started = sys_now(); + } else { + API_MSG_VAR_REF(msg).msg.w.time_started = 0; + } +#endif /* LWIP_SO_SNDTIMEO */ + + /* For locking the core: this _can_ be delayed on low memory/low send buffer, + but if it is, this is done inside api_msg.c:do_write(), so we can use the + non-blocking version here. */ + err = netconn_apimsg(lwip_netconn_do_write, &API_MSG_VAR_REF(msg)); + if (err == ERR_OK) { + if (bytes_written != NULL) { + *bytes_written = API_MSG_VAR_REF(msg).msg.w.offset; + } + /* for blocking, check all requested bytes were written, NOTE: send_timeout is + treated as dontblock (see dontblock assignment above) */ + if (!dontblock) { + LWIP_ASSERT("do_write failed to write all bytes", API_MSG_VAR_REF(msg).msg.w.offset == size); + } + } + API_MSG_VAR_FREE(msg); + + return err; +} + +/** + * @ingroup netconn_tcp + * Close or shutdown a TCP netconn (doesn't delete it). + * + * @param conn the TCP netconn to close or shutdown + * @param how fully close or only shutdown one side? + * @return ERR_OK if the netconn was closed, any other err_t on error + */ +static err_t +netconn_close_shutdown(struct netconn *conn, u8_t how) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + LWIP_UNUSED_ARG(how); + + LWIP_ERROR("netconn_close: invalid conn", (conn != NULL), return ERR_ARG;); + + API_MSG_VAR_ALLOC(msg); + API_MSG_VAR_REF(msg).conn = conn; +#if LWIP_TCP + /* shutting down both ends is the same as closing */ + API_MSG_VAR_REF(msg).msg.sd.shut = how; +#if LWIP_SO_SNDTIMEO || LWIP_SO_LINGER + /* get the time we started, which is later compared to + sys_now() + conn->send_timeout */ + API_MSG_VAR_REF(msg).msg.sd.time_started = sys_now(); +#else /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ + API_MSG_VAR_REF(msg).msg.sd.polls_left = + ((LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT + TCP_SLOW_INTERVAL - 1) / TCP_SLOW_INTERVAL) + 1; +#endif /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ +#endif /* LWIP_TCP */ + err = netconn_apimsg(lwip_netconn_do_close, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +} + +/** + * @ingroup netconn_tcp + * Close a TCP netconn (doesn't delete it). + * + * @param conn the TCP netconn to close + * @return ERR_OK if the netconn was closed, any other err_t on error + */ +err_t +netconn_close(struct netconn *conn) +{ + /* shutting down both ends is the same as closing */ + return netconn_close_shutdown(conn, NETCONN_SHUT_RDWR); +} + +/** + * @ingroup netconn_common + * Get and reset pending error on a netconn + * + * @param conn the netconn to get the error from + * @return and pending error or ERR_OK if no error was pending + */ +err_t +netconn_err(struct netconn *conn) +{ + err_t err; + SYS_ARCH_DECL_PROTECT(lev); + if (conn == NULL) { + return ERR_OK; + } + SYS_ARCH_PROTECT(lev); + err = conn->pending_err; + conn->pending_err = ERR_OK; + SYS_ARCH_UNPROTECT(lev); + return err; +} + +/** + * @ingroup netconn_tcp + * Shut down one or both sides of a TCP netconn (doesn't delete it). + * + * @param conn the TCP netconn to shut down + * @param shut_rx shut down the RX side (no more read possible after this) + * @param shut_tx shut down the TX side (no more write possible after this) + * @return ERR_OK if the netconn was closed, any other err_t on error + */ +err_t +netconn_shutdown(struct netconn *conn, u8_t shut_rx, u8_t shut_tx) +{ + return netconn_close_shutdown(conn, (u8_t)((shut_rx ? NETCONN_SHUT_RD : 0) | (shut_tx ? NETCONN_SHUT_WR : 0))); +} + +#if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) +/** + * @ingroup netconn_udp + * Join multicast groups for UDP netconns. + * + * @param conn the UDP netconn for which to change multicast addresses + * @param multiaddr IP address of the multicast group to join or leave + * @param netif_addr the IP address of the network interface on which to send + * the igmp message + * @param join_or_leave flag whether to send a join- or leave-message + * @return ERR_OK if the action was taken, any err_t on error + */ +err_t +netconn_join_leave_group(struct netconn *conn, + const ip_addr_t *multiaddr, + const ip_addr_t *netif_addr, + enum netconn_igmp join_or_leave) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + + LWIP_ERROR("netconn_join_leave_group: invalid conn", (conn != NULL), return ERR_ARG;); + + API_MSG_VAR_ALLOC(msg); + +#if LWIP_IPV4 + /* Don't propagate NULL pointer (IP_ADDR_ANY alias) to subsequent functions */ + if (multiaddr == NULL) { + multiaddr = IP4_ADDR_ANY; + } + if (netif_addr == NULL) { + netif_addr = IP4_ADDR_ANY; + } +#endif /* LWIP_IPV4 */ + + API_MSG_VAR_REF(msg).conn = conn; + API_MSG_VAR_REF(msg).msg.jl.multiaddr = API_MSG_VAR_REF(multiaddr); + API_MSG_VAR_REF(msg).msg.jl.netif_addr = API_MSG_VAR_REF(netif_addr); + API_MSG_VAR_REF(msg).msg.jl.join_or_leave = join_or_leave; + err = netconn_apimsg(lwip_netconn_do_join_leave_group, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +} +/** + * @ingroup netconn_udp + * Join multicast groups for UDP netconns. + * + * @param conn the UDP netconn for which to change multicast addresses + * @param multiaddr IP address of the multicast group to join or leave + * @param if_idx the index of the netif + * @param join_or_leave flag whether to send a join- or leave-message + * @return ERR_OK if the action was taken, any err_t on error + */ +err_t +netconn_join_leave_group_netif(struct netconn *conn, + const ip_addr_t *multiaddr, + u8_t if_idx, + enum netconn_igmp join_or_leave) +{ + API_MSG_VAR_DECLARE(msg); + err_t err; + + LWIP_ERROR("netconn_join_leave_group: invalid conn", (conn != NULL), return ERR_ARG;); + + API_MSG_VAR_ALLOC(msg); + +#if LWIP_IPV4 + /* Don't propagate NULL pointer (IP_ADDR_ANY alias) to subsequent functions */ + if (multiaddr == NULL) { + multiaddr = IP4_ADDR_ANY; + } + if (if_idx == NETIF_NO_INDEX) { + return ERR_IF; + } +#endif /* LWIP_IPV4 */ + + API_MSG_VAR_REF(msg).conn = conn; + API_MSG_VAR_REF(msg).msg.jl.multiaddr = API_MSG_VAR_REF(multiaddr); + API_MSG_VAR_REF(msg).msg.jl.if_idx = if_idx; + API_MSG_VAR_REF(msg).msg.jl.join_or_leave = join_or_leave; + err = netconn_apimsg(lwip_netconn_do_join_leave_group_netif, &API_MSG_VAR_REF(msg)); + API_MSG_VAR_FREE(msg); + + return err; +} +#endif /* LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) */ + +#if LWIP_DNS +/** + * @ingroup netconn_common + * Execute a DNS query, only one IP address is returned + * + * @param name a string representation of the DNS host name to query + * @param addr a preallocated ip_addr_t where to store the resolved IP address + * @param dns_addrtype IP address type (IPv4 / IPv6) + * @return ERR_OK: resolving succeeded + * ERR_MEM: memory error, try again later + * ERR_ARG: dns client not initialized or invalid hostname + * ERR_VAL: dns server response was invalid + */ +#if LWIP_IPV4 && LWIP_IPV6 +err_t +netconn_gethostbyname_addrtype(const char *name, ip_addr_t *addr, u8_t dns_addrtype) +#else +err_t +netconn_gethostbyname(const char *name, ip_addr_t *addr) +#endif +{ + API_VAR_DECLARE(struct dns_api_msg, msg); +#if !LWIP_MPU_COMPATIBLE + sys_sem_t sem; +#endif /* LWIP_MPU_COMPATIBLE */ + err_t err; + err_t cberr; + + LWIP_ERROR("netconn_gethostbyname: invalid name", (name != NULL), return ERR_ARG;); + LWIP_ERROR("netconn_gethostbyname: invalid addr", (addr != NULL), return ERR_ARG;); +#if LWIP_MPU_COMPATIBLE + if (strlen(name) >= DNS_MAX_NAME_LENGTH) { + return ERR_ARG; + } +#endif + +#ifdef LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE +#if LWIP_IPV4 && LWIP_IPV6 + if (LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE(name, addr, dns_addrtype, &err)) { +#else + if (LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE(name, addr, NETCONN_DNS_DEFAULT, &err)) { +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + return err; + } +#endif /* LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE */ + + API_VAR_ALLOC(struct dns_api_msg, MEMP_DNS_API_MSG, msg, ERR_MEM); +#if LWIP_MPU_COMPATIBLE + strncpy(API_VAR_REF(msg).name, name, DNS_MAX_NAME_LENGTH - 1); + API_VAR_REF(msg).name[DNS_MAX_NAME_LENGTH - 1] = 0; +#else /* LWIP_MPU_COMPATIBLE */ + msg.err = &err; + msg.sem = &sem; + API_VAR_REF(msg).addr = API_VAR_REF(addr); + API_VAR_REF(msg).name = name; +#endif /* LWIP_MPU_COMPATIBLE */ +#if LWIP_IPV4 && LWIP_IPV6 + API_VAR_REF(msg).dns_addrtype = dns_addrtype; +#endif /* LWIP_IPV4 && LWIP_IPV6 */ +#if LWIP_NETCONN_SEM_PER_THREAD + API_VAR_REF(msg).sem = LWIP_NETCONN_THREAD_SEM_GET(); +#else /* LWIP_NETCONN_SEM_PER_THREAD*/ + err = sys_sem_new(API_EXPR_REF(API_VAR_REF(msg).sem), 0); + if (err != ERR_OK) { + API_VAR_FREE(MEMP_DNS_API_MSG, msg); + return err; + } +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + + cberr = tcpip_send_msg_wait_sem(lwip_netconn_do_gethostbyname, &API_VAR_REF(msg), API_EXPR_REF(API_VAR_REF(msg).sem)); +#if !LWIP_NETCONN_SEM_PER_THREAD + sys_sem_free(API_EXPR_REF(API_VAR_REF(msg).sem)); +#endif /* !LWIP_NETCONN_SEM_PER_THREAD */ + if (cberr != ERR_OK) { + API_VAR_FREE(MEMP_DNS_API_MSG, msg); + return cberr; + } + +#if LWIP_MPU_COMPATIBLE + *addr = msg->addr; + err = msg->err; +#endif /* LWIP_MPU_COMPATIBLE */ + + API_VAR_FREE(MEMP_DNS_API_MSG, msg); + return err; +} +#endif /* LWIP_DNS*/ + +#if LWIP_NETCONN_SEM_PER_THREAD +void +netconn_thread_init(void) +{ + sys_sem_t *sem = LWIP_NETCONN_THREAD_SEM_GET(); + if ((sem == NULL) || !sys_sem_valid(sem)) { + /* call alloc only once */ + LWIP_NETCONN_THREAD_SEM_ALLOC(); + LWIP_ASSERT("LWIP_NETCONN_THREAD_SEM_ALLOC() failed", sys_sem_valid(LWIP_NETCONN_THREAD_SEM_GET())); + } +} + +void +netconn_thread_cleanup(void) +{ + sys_sem_t *sem = LWIP_NETCONN_THREAD_SEM_GET(); + if ((sem != NULL) && sys_sem_valid(sem)) { + /* call free only once */ + LWIP_NETCONN_THREAD_SEM_FREE(); + } +} +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + +#endif /* LWIP_NETCONN */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/api/api_msg.c b/BLE_EXAMPLE/src/main/cpp/lwip/api/api_msg.c new file mode 100644 index 000000000..8952baafa --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/api/api_msg.c @@ -0,0 +1,2173 @@ +/** + * @file + * Sequential API Internal module + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/priv/api_msg.h" + +#include "lwip/ip.h" +#include "lwip/ip_addr.h" +#include "lwip/udp.h" +#include "lwip/tcp.h" +#include "lwip/raw.h" + +#include "lwip/memp.h" +#include "lwip/igmp.h" +#include "lwip/dns.h" +#include "lwip/mld6.h" +#include "lwip/priv/tcpip_priv.h" + +#include + +/* netconns are polled once per second (e.g. continue write on memory error) */ +#define NETCONN_TCP_POLL_INTERVAL 2 + +#define SET_NONBLOCKING_CONNECT(conn, val) do { if (val) { \ + netconn_set_flags(conn, NETCONN_FLAG_IN_NONBLOCKING_CONNECT); \ +} else { \ + netconn_clear_flags(conn, NETCONN_FLAG_IN_NONBLOCKING_CONNECT); }} while(0) +#define IN_NONBLOCKING_CONNECT(conn) netconn_is_flag_set(conn, NETCONN_FLAG_IN_NONBLOCKING_CONNECT) + +#if LWIP_NETCONN_FULLDUPLEX +#define NETCONN_MBOX_VALID(conn, mbox) (sys_mbox_valid(mbox) && ((conn->flags & NETCONN_FLAG_MBOXINVALID) == 0)) +#else +#define NETCONN_MBOX_VALID(conn, mbox) sys_mbox_valid(mbox) +#endif + +/* forward declarations */ +#if LWIP_TCP +#if LWIP_TCPIP_CORE_LOCKING +#define WRITE_DELAYED , 1 +#define WRITE_DELAYED_PARAM , u8_t delayed +#else /* LWIP_TCPIP_CORE_LOCKING */ +#define WRITE_DELAYED +#define WRITE_DELAYED_PARAM +#endif /* LWIP_TCPIP_CORE_LOCKING */ +static err_t lwip_netconn_do_writemore(struct netconn *conn WRITE_DELAYED_PARAM); +static err_t lwip_netconn_do_close_internal(struct netconn *conn WRITE_DELAYED_PARAM); +#endif + +static void netconn_drain(struct netconn *conn); + +#if LWIP_TCPIP_CORE_LOCKING +#define TCPIP_APIMSG_ACK(m) +#else /* LWIP_TCPIP_CORE_LOCKING */ +#define TCPIP_APIMSG_ACK(m) do { sys_sem_signal(LWIP_API_MSG_SEM(m)); } while(0) +#endif /* LWIP_TCPIP_CORE_LOCKING */ + +#if LWIP_NETCONN_FULLDUPLEX +const u8_t netconn_deleted = 0; + +int +lwip_netconn_is_deallocated_msg(void *msg) +{ + if (msg == &netconn_deleted) { + return 1; + } + return 0; +} +#endif /* LWIP_NETCONN_FULLDUPLEX */ + +#if LWIP_TCP +const u8_t netconn_aborted = 0; +const u8_t netconn_reset = 0; +const u8_t netconn_closed = 0; + +/** Translate an error to a unique void* passed via an mbox */ +static void * +lwip_netconn_err_to_msg(err_t err) +{ + switch (err) { + case ERR_ABRT: + return LWIP_CONST_CAST(void *, &netconn_aborted); + case ERR_RST: + return LWIP_CONST_CAST(void *, &netconn_reset); + case ERR_CLSD: + return LWIP_CONST_CAST(void *, &netconn_closed); + default: + LWIP_ASSERT("unhandled error", err == ERR_OK); + return NULL; + } +} + +int +lwip_netconn_is_err_msg(void *msg, err_t *err) +{ + LWIP_ASSERT("err != NULL", err != NULL); + + if (msg == &netconn_aborted) { + *err = ERR_ABRT; + return 1; + } else if (msg == &netconn_reset) { + *err = ERR_RST; + return 1; + } else if (msg == &netconn_closed) { + *err = ERR_CLSD; + return 1; + } + return 0; +} +#endif /* LWIP_TCP */ + + +#if LWIP_RAW +/** + * Receive callback function for RAW netconns. + * Doesn't 'eat' the packet, only copies it and sends it to + * conn->recvmbox + * + * @see raw.h (struct raw_pcb.recv) for parameters and return value + */ +static u8_t +recv_raw(void *arg, struct raw_pcb *pcb, struct pbuf *p, + const ip_addr_t *addr) +{ + struct pbuf *q; + struct netbuf *buf; + struct netconn *conn; + + LWIP_UNUSED_ARG(addr); + conn = (struct netconn *)arg; + + if ((conn != NULL) && NETCONN_MBOX_VALID(conn, &conn->recvmbox)) { +#if LWIP_SO_RCVBUF + int recv_avail; + SYS_ARCH_GET(conn->recv_avail, recv_avail); + if ((recv_avail + (int)(p->tot_len)) > conn->recv_bufsize) { + return 0; + } +#endif /* LWIP_SO_RCVBUF */ + /* copy the whole packet into new pbufs */ + q = pbuf_clone(PBUF_RAW, PBUF_RAM, p); + if (q != NULL) { + u16_t len; + buf = (struct netbuf *)memp_malloc(MEMP_NETBUF); + if (buf == NULL) { + pbuf_free(q); + return 0; + } + + buf->p = q; + buf->ptr = q; + ip_addr_copy(buf->addr, *ip_current_src_addr()); + buf->port = pcb->protocol; + + len = q->tot_len; + if (sys_mbox_trypost(&conn->recvmbox, buf) != ERR_OK) { + netbuf_delete(buf); + return 0; + } else { +#if LWIP_SO_RCVBUF + SYS_ARCH_INC(conn->recv_avail, len); +#endif /* LWIP_SO_RCVBUF */ + /* Register event with callback */ + API_EVENT(conn, NETCONN_EVT_RCVPLUS, len); + } + } + } + + return 0; /* do not eat the packet */ +} +#endif /* LWIP_RAW*/ + +#if LWIP_UDP +/** + * Receive callback function for UDP netconns. + * Posts the packet to conn->recvmbox or deletes it on memory error. + * + * @see udp.h (struct udp_pcb.recv) for parameters + */ +static void +recv_udp(void *arg, struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *addr, u16_t port) +{ + struct netbuf *buf; + struct netconn *conn; + u16_t len; +#if LWIP_SO_RCVBUF + int recv_avail; +#endif /* LWIP_SO_RCVBUF */ + + LWIP_UNUSED_ARG(pcb); /* only used for asserts... */ + LWIP_ASSERT("recv_udp must have a pcb argument", pcb != NULL); + LWIP_ASSERT("recv_udp must have an argument", arg != NULL); + conn = (struct netconn *)arg; + + if (conn == NULL) { + pbuf_free(p); + return; + } + + LWIP_ASSERT("recv_udp: recv for wrong pcb!", conn->pcb.udp == pcb); + +#if LWIP_SO_RCVBUF + SYS_ARCH_GET(conn->recv_avail, recv_avail); + if (!NETCONN_MBOX_VALID(conn, &conn->recvmbox) || + ((recv_avail + (int)(p->tot_len)) > conn->recv_bufsize)) { +#else /* LWIP_SO_RCVBUF */ + if (!NETCONN_MBOX_VALID(conn, &conn->recvmbox)) { +#endif /* LWIP_SO_RCVBUF */ + pbuf_free(p); + return; + } + + buf = (struct netbuf *)memp_malloc(MEMP_NETBUF); + if (buf == NULL) { + pbuf_free(p); + return; + } else { + buf->p = p; + buf->ptr = p; + ip_addr_set(&buf->addr, addr); + buf->port = port; +#if LWIP_NETBUF_RECVINFO + if (conn->flags & NETCONN_FLAG_PKTINFO) { + /* get the UDP header - always in the first pbuf, ensured by udp_input */ + const struct udp_hdr *udphdr = (const struct udp_hdr *)ip_next_header_ptr(); + buf->flags = NETBUF_FLAG_DESTADDR; + ip_addr_set(&buf->toaddr, ip_current_dest_addr()); + buf->toport_chksum = udphdr->dest; + } +#endif /* LWIP_NETBUF_RECVINFO */ + } + + len = p->tot_len; + if (sys_mbox_trypost(&conn->recvmbox, buf) != ERR_OK) { + netbuf_delete(buf); + return; + } else { +#if LWIP_SO_RCVBUF + SYS_ARCH_INC(conn->recv_avail, len); +#endif /* LWIP_SO_RCVBUF */ + /* Register event with callback */ + API_EVENT(conn, NETCONN_EVT_RCVPLUS, len); + } +} +#endif /* LWIP_UDP */ + +#if LWIP_TCP +/** + * Receive callback function for TCP netconns. + * Posts the packet to conn->recvmbox, but doesn't delete it on errors. + * + * @see tcp.h (struct tcp_pcb.recv) for parameters and return value + */ +static err_t +recv_tcp(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) +{ + struct netconn *conn; + u16_t len; + void *msg; + + LWIP_UNUSED_ARG(pcb); + LWIP_ASSERT("recv_tcp must have a pcb argument", pcb != NULL); + LWIP_ASSERT("recv_tcp must have an argument", arg != NULL); + LWIP_ASSERT("err != ERR_OK unhandled", err == ERR_OK); + LWIP_UNUSED_ARG(err); /* for LWIP_NOASSERT */ + conn = (struct netconn *)arg; + + if (conn == NULL) { + return ERR_VAL; + } + LWIP_ASSERT("recv_tcp: recv for wrong pcb!", conn->pcb.tcp == pcb); + + if (!NETCONN_MBOX_VALID(conn, &conn->recvmbox)) { + /* recvmbox already deleted */ + if (p != NULL) { + tcp_recved(pcb, p->tot_len); + pbuf_free(p); + } + return ERR_OK; + } + /* Unlike for UDP or RAW pcbs, don't check for available space + using recv_avail since that could break the connection + (data is already ACKed) */ + + if (p != NULL) { + msg = p; + len = p->tot_len; + } else { + msg = LWIP_CONST_CAST(void *, &netconn_closed); + len = 0; + } + + if (sys_mbox_trypost(&conn->recvmbox, msg) != ERR_OK) { + /* don't deallocate p: it is presented to us later again from tcp_fasttmr! */ + return ERR_MEM; + } else { +#if LWIP_SO_RCVBUF + SYS_ARCH_INC(conn->recv_avail, len); +#endif /* LWIP_SO_RCVBUF */ + /* Register event with callback */ + API_EVENT(conn, NETCONN_EVT_RCVPLUS, len); + } + + return ERR_OK; +} + +/** + * Poll callback function for TCP netconns. + * Wakes up an application thread that waits for a connection to close + * or data to be sent. The application thread then takes the + * appropriate action to go on. + * + * Signals the conn->sem. + * netconn_close waits for conn->sem if closing failed. + * + * @see tcp.h (struct tcp_pcb.poll) for parameters and return value + */ +static err_t +poll_tcp(void *arg, struct tcp_pcb *pcb) +{ + struct netconn *conn = (struct netconn *)arg; + + LWIP_UNUSED_ARG(pcb); + LWIP_ASSERT("conn != NULL", (conn != NULL)); + + if (conn->state == NETCONN_WRITE) { + lwip_netconn_do_writemore(conn WRITE_DELAYED); + } else if (conn->state == NETCONN_CLOSE) { +#if !LWIP_SO_SNDTIMEO && !LWIP_SO_LINGER + if (conn->current_msg && conn->current_msg->msg.sd.polls_left) { + conn->current_msg->msg.sd.polls_left--; + } +#endif /* !LWIP_SO_SNDTIMEO && !LWIP_SO_LINGER */ + lwip_netconn_do_close_internal(conn WRITE_DELAYED); + } + /* @todo: implement connect timeout here? */ + + /* Did a nonblocking write fail before? Then check available write-space. */ + if (conn->flags & NETCONN_FLAG_CHECK_WRITESPACE) { + /* If the queued byte- or pbuf-count drops below the configured low-water limit, + let select mark this pcb as writable again. */ + if ((conn->pcb.tcp != NULL) && (tcp_sndbuf(conn->pcb.tcp) > TCP_SNDLOWAT) && + (tcp_sndqueuelen(conn->pcb.tcp) < TCP_SNDQUEUELOWAT)) { + netconn_clear_flags(conn, NETCONN_FLAG_CHECK_WRITESPACE); + API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0); + } + } + + return ERR_OK; +} + +/** + * Sent callback function for TCP netconns. + * Signals the conn->sem and calls API_EVENT. + * netconn_write waits for conn->sem if send buffer is low. + * + * @see tcp.h (struct tcp_pcb.sent) for parameters and return value + */ +static err_t +sent_tcp(void *arg, struct tcp_pcb *pcb, u16_t len) +{ + struct netconn *conn = (struct netconn *)arg; + + LWIP_UNUSED_ARG(pcb); + LWIP_ASSERT("conn != NULL", (conn != NULL)); + + if (conn) { + if (conn->state == NETCONN_WRITE) { + lwip_netconn_do_writemore(conn WRITE_DELAYED); + } else if (conn->state == NETCONN_CLOSE) { + lwip_netconn_do_close_internal(conn WRITE_DELAYED); + } + + /* If the queued byte- or pbuf-count drops below the configured low-water limit, + let select mark this pcb as writable again. */ + if ((conn->pcb.tcp != NULL) && (tcp_sndbuf(conn->pcb.tcp) > TCP_SNDLOWAT) && + (tcp_sndqueuelen(conn->pcb.tcp) < TCP_SNDQUEUELOWAT)) { + netconn_clear_flags(conn, NETCONN_FLAG_CHECK_WRITESPACE); + API_EVENT(conn, NETCONN_EVT_SENDPLUS, len); + } + } + + return ERR_OK; +} + +/** + * Error callback function for TCP netconns. + * Signals conn->sem, posts to all conn mboxes and calls API_EVENT. + * The application thread has then to decide what to do. + * + * @see tcp.h (struct tcp_pcb.err) for parameters + */ +static void +err_tcp(void *arg, err_t err) +{ + struct netconn *conn; + enum netconn_state old_state; + void *mbox_msg; + SYS_ARCH_DECL_PROTECT(lev); + + conn = (struct netconn *)arg; + LWIP_ASSERT("conn != NULL", (conn != NULL)); + + SYS_ARCH_PROTECT(lev); + + /* when err is called, the pcb is deallocated, so delete the reference */ + conn->pcb.tcp = NULL; + /* store pending error */ + conn->pending_err = err; + /* prevent application threads from blocking on 'recvmbox'/'acceptmbox' */ + conn->flags |= NETCONN_FLAG_MBOXCLOSED; + + /* reset conn->state now before waking up other threads */ + old_state = conn->state; + conn->state = NETCONN_NONE; + + SYS_ARCH_UNPROTECT(lev); + + /* Notify the user layer about a connection error. Used to signal select. */ + API_EVENT(conn, NETCONN_EVT_ERROR, 0); + /* Try to release selects pending on 'read' or 'write', too. + They will get an error if they actually try to read or write. */ + API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); + API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0); + + mbox_msg = lwip_netconn_err_to_msg(err); + /* pass error message to recvmbox to wake up pending recv */ + if (NETCONN_MBOX_VALID(conn, &conn->recvmbox)) { + /* use trypost to prevent deadlock */ + sys_mbox_trypost(&conn->recvmbox, mbox_msg); + } + /* pass error message to acceptmbox to wake up pending accept */ + if (NETCONN_MBOX_VALID(conn, &conn->acceptmbox)) { + /* use trypost to preven deadlock */ + sys_mbox_trypost(&conn->acceptmbox, mbox_msg); + } + + if ((old_state == NETCONN_WRITE) || (old_state == NETCONN_CLOSE) || + (old_state == NETCONN_CONNECT)) { + /* calling lwip_netconn_do_writemore/lwip_netconn_do_close_internal is not necessary + since the pcb has already been deleted! */ + int was_nonblocking_connect = IN_NONBLOCKING_CONNECT(conn); + SET_NONBLOCKING_CONNECT(conn, 0); + + if (!was_nonblocking_connect) { + sys_sem_t *op_completed_sem; + /* set error return code */ + LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL); + if (old_state == NETCONN_CLOSE) { + /* let close succeed: the connection is closed after all... */ + conn->current_msg->err = ERR_OK; + } else { + /* Write and connect fail */ + conn->current_msg->err = err; + } + op_completed_sem = LWIP_API_MSG_SEM(conn->current_msg); + LWIP_ASSERT("inavlid op_completed_sem", sys_sem_valid(op_completed_sem)); + conn->current_msg = NULL; + /* wake up the waiting task */ + sys_sem_signal(op_completed_sem); + } else { + /* @todo: test what happens for error on nonblocking connect */ + } + } else { + LWIP_ASSERT("conn->current_msg == NULL", conn->current_msg == NULL); + } +} + +/** + * Setup a tcp_pcb with the correct callback function pointers + * and their arguments. + * + * @param conn the TCP netconn to setup + */ +static void +setup_tcp(struct netconn *conn) +{ + struct tcp_pcb *pcb; + + pcb = conn->pcb.tcp; + tcp_arg(pcb, conn); + tcp_recv(pcb, recv_tcp); + tcp_sent(pcb, sent_tcp); + tcp_poll(pcb, poll_tcp, NETCONN_TCP_POLL_INTERVAL); + tcp_err(pcb, err_tcp); +} + +/** + * Accept callback function for TCP netconns. + * Allocates a new netconn and posts that to conn->acceptmbox. + * + * @see tcp.h (struct tcp_pcb_listen.accept) for parameters and return value + */ +static err_t +accept_function(void *arg, struct tcp_pcb *newpcb, err_t err) +{ + struct netconn *newconn; + struct netconn *conn = (struct netconn *)arg; + + if (conn == NULL) { + return ERR_VAL; + } + if (!NETCONN_MBOX_VALID(conn, &conn->acceptmbox)) { + LWIP_DEBUGF(API_MSG_DEBUG, ("accept_function: acceptmbox already deleted\n")); + return ERR_VAL; + } + + if (newpcb == NULL) { + /* out-of-pcbs during connect: pass on this error to the application */ + if (sys_mbox_trypost(&conn->acceptmbox, lwip_netconn_err_to_msg(ERR_ABRT)) == ERR_OK) { + /* Register event with callback */ + API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); + } + return ERR_VAL; + } + LWIP_ASSERT("expect newpcb == NULL or err == ERR_OK", err == ERR_OK); + LWIP_UNUSED_ARG(err); /* for LWIP_NOASSERT */ + + LWIP_DEBUGF(API_MSG_DEBUG, ("accept_function: newpcb->state: %s\n", tcp_debug_state_str(newpcb->state))); + + /* We have to set the callback here even though + * the new socket is unknown. newconn->socket is marked as -1. */ + newconn = netconn_alloc(conn->type, conn->callback); + if (newconn == NULL) { + /* outof netconns: pass on this error to the application */ + if (sys_mbox_trypost(&conn->acceptmbox, lwip_netconn_err_to_msg(ERR_ABRT)) == ERR_OK) { + /* Register event with callback */ + API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); + } + return ERR_MEM; + } + newconn->pcb.tcp = newpcb; + setup_tcp(newconn); + + /* handle backlog counter */ + tcp_backlog_delayed(newpcb); + + if (sys_mbox_trypost(&conn->acceptmbox, newconn) != ERR_OK) { + /* When returning != ERR_OK, the pcb is aborted in tcp_process(), + so do nothing here! */ + /* remove all references to this netconn from the pcb */ + struct tcp_pcb *pcb = newconn->pcb.tcp; + tcp_arg(pcb, NULL); + tcp_recv(pcb, NULL); + tcp_sent(pcb, NULL); + tcp_poll(pcb, NULL, 0); + tcp_err(pcb, NULL); + /* remove reference from to the pcb from this netconn */ + newconn->pcb.tcp = NULL; + /* no need to drain since we know the recvmbox is empty. */ + sys_mbox_free(&newconn->recvmbox); + sys_mbox_set_invalid(&newconn->recvmbox); + netconn_free(newconn); + return ERR_MEM; + } else { + /* Register event with callback */ + API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); + } + + return ERR_OK; +} +#endif /* LWIP_TCP */ + +/** + * Create a new pcb of a specific type. + * Called from lwip_netconn_do_newconn(). + * + * @param msg the api_msg describing the connection type + */ +static void +pcb_new(struct api_msg *msg) +{ + enum lwip_ip_addr_type iptype = IPADDR_TYPE_V4; + + LWIP_ASSERT("pcb_new: pcb already allocated", msg->conn->pcb.tcp == NULL); + +#if LWIP_IPV6 && LWIP_IPV4 + /* IPv6: Dual-stack by default, unless netconn_set_ipv6only() is called */ + if (NETCONNTYPE_ISIPV6(netconn_type(msg->conn))) { + iptype = IPADDR_TYPE_ANY; + } +#endif + + /* Allocate a PCB for this connection */ + switch (NETCONNTYPE_GROUP(msg->conn->type)) { +#if LWIP_RAW + case NETCONN_RAW: + msg->conn->pcb.raw = raw_new_ip_type(iptype, msg->msg.n.proto); + if (msg->conn->pcb.raw != NULL) { +#if LWIP_IPV6 + /* ICMPv6 packets should always have checksum calculated by the stack as per RFC 3542 chapter 3.1 */ + if (NETCONNTYPE_ISIPV6(msg->conn->type) && msg->conn->pcb.raw->protocol == IP6_NEXTH_ICMP6) { + msg->conn->pcb.raw->chksum_reqd = 1; + msg->conn->pcb.raw->chksum_offset = 2; + } +#endif /* LWIP_IPV6 */ + raw_recv(msg->conn->pcb.raw, recv_raw, msg->conn); + } + break; +#endif /* LWIP_RAW */ +#if LWIP_UDP + case NETCONN_UDP: + msg->conn->pcb.udp = udp_new_ip_type(iptype); + if (msg->conn->pcb.udp != NULL) { +#if LWIP_UDPLITE + if (NETCONNTYPE_ISUDPLITE(msg->conn->type)) { + udp_setflags(msg->conn->pcb.udp, UDP_FLAGS_UDPLITE); + } +#endif /* LWIP_UDPLITE */ + if (NETCONNTYPE_ISUDPNOCHKSUM(msg->conn->type)) { + udp_setflags(msg->conn->pcb.udp, UDP_FLAGS_NOCHKSUM); + } + udp_recv(msg->conn->pcb.udp, recv_udp, msg->conn); + } + break; +#endif /* LWIP_UDP */ +#if LWIP_TCP + case NETCONN_TCP: + msg->conn->pcb.tcp = tcp_new_ip_type(iptype); + if (msg->conn->pcb.tcp != NULL) { + setup_tcp(msg->conn); + } + break; +#endif /* LWIP_TCP */ + default: + /* Unsupported netconn type, e.g. protocol disabled */ + msg->err = ERR_VAL; + return; + } + if (msg->conn->pcb.ip == NULL) { + msg->err = ERR_MEM; + } +} + +/** + * Create a new pcb of a specific type inside a netconn. + * Called from netconn_new_with_proto_and_callback. + * + * @param m the api_msg describing the connection type + */ +void +lwip_netconn_do_newconn(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + + msg->err = ERR_OK; + if (msg->conn->pcb.tcp == NULL) { + pcb_new(msg); + } + /* Else? This "new" connection already has a PCB allocated. */ + /* Is this an error condition? Should it be deleted? */ + /* We currently just are happy and return. */ + + TCPIP_APIMSG_ACK(msg); +} + +/** + * Create a new netconn (of a specific type) that has a callback function. + * The corresponding pcb is NOT created! + * + * @param t the type of 'connection' to create (@see enum netconn_type) + * @param callback a function to call on status changes (RX available, TX'ed) + * @return a newly allocated struct netconn or + * NULL on memory error + */ +struct netconn * +netconn_alloc(enum netconn_type t, netconn_callback callback) +{ + struct netconn *conn; + int size; + u8_t init_flags = 0; + + conn = (struct netconn *)memp_malloc(MEMP_NETCONN); + if (conn == NULL) { + return NULL; + } + + conn->pending_err = ERR_OK; + conn->type = t; + conn->pcb.tcp = NULL; + + /* If all sizes are the same, every compiler should optimize this switch to nothing */ + switch (NETCONNTYPE_GROUP(t)) { +#if LWIP_RAW + case NETCONN_RAW: + size = DEFAULT_RAW_RECVMBOX_SIZE; + break; +#endif /* LWIP_RAW */ +#if LWIP_UDP + case NETCONN_UDP: + size = DEFAULT_UDP_RECVMBOX_SIZE; +#if LWIP_NETBUF_RECVINFO + init_flags |= NETCONN_FLAG_PKTINFO; +#endif /* LWIP_NETBUF_RECVINFO */ + break; +#endif /* LWIP_UDP */ +#if LWIP_TCP + case NETCONN_TCP: + size = DEFAULT_TCP_RECVMBOX_SIZE; + break; +#endif /* LWIP_TCP */ + default: + LWIP_ASSERT("netconn_alloc: undefined netconn_type", 0); + goto free_and_return; + } + + if (sys_mbox_new(&conn->recvmbox, size) != ERR_OK) { + goto free_and_return; + } +#if !LWIP_NETCONN_SEM_PER_THREAD + if (sys_sem_new(&conn->op_completed, 0) != ERR_OK) { + sys_mbox_free(&conn->recvmbox); + goto free_and_return; + } +#endif + +#if LWIP_TCP + sys_mbox_set_invalid(&conn->acceptmbox); +#endif + conn->state = NETCONN_NONE; +#if LWIP_SOCKET + /* initialize socket to -1 since 0 is a valid socket */ + conn->socket = -1; +#endif /* LWIP_SOCKET */ + conn->callback = callback; +#if LWIP_TCP + conn->current_msg = NULL; +#endif /* LWIP_TCP */ +#if LWIP_SO_SNDTIMEO + conn->send_timeout = 0; +#endif /* LWIP_SO_SNDTIMEO */ +#if LWIP_SO_RCVTIMEO + conn->recv_timeout = 0; +#endif /* LWIP_SO_RCVTIMEO */ +#if LWIP_SO_RCVBUF + conn->recv_bufsize = RECV_BUFSIZE_DEFAULT; + conn->recv_avail = 0; +#endif /* LWIP_SO_RCVBUF */ +#if LWIP_SO_LINGER + conn->linger = -1; +#endif /* LWIP_SO_LINGER */ + conn->flags = init_flags; + return conn; +free_and_return: + memp_free(MEMP_NETCONN, conn); + return NULL; +} + +/** + * Delete a netconn and all its resources. + * The pcb is NOT freed (since we might not be in the right thread context do this). + * + * @param conn the netconn to free + */ +void +netconn_free(struct netconn *conn) +{ + LWIP_ASSERT("PCB must be deallocated outside this function", conn->pcb.tcp == NULL); + +#if LWIP_NETCONN_FULLDUPLEX + /* in fullduplex, netconn is drained here */ + netconn_drain(conn); +#endif /* LWIP_NETCONN_FULLDUPLEX */ + + LWIP_ASSERT("recvmbox must be deallocated before calling this function", + !sys_mbox_valid(&conn->recvmbox)); +#if LWIP_TCP + LWIP_ASSERT("acceptmbox must be deallocated before calling this function", + !sys_mbox_valid(&conn->acceptmbox)); +#endif /* LWIP_TCP */ + +#if !LWIP_NETCONN_SEM_PER_THREAD + sys_sem_free(&conn->op_completed); + sys_sem_set_invalid(&conn->op_completed); +#endif + + memp_free(MEMP_NETCONN, conn); +} + +/** + * Delete rcvmbox and acceptmbox of a netconn and free the left-over data in + * these mboxes + * + * @param conn the netconn to free + * @bytes_drained bytes drained from recvmbox + * @accepts_drained pending connections drained from acceptmbox + */ +static void +netconn_drain(struct netconn *conn) +{ + void *mem; + + /* This runs when mbox and netconn are marked as closed, + so we don't need to lock against rx packets */ +#if LWIP_NETCONN_FULLDUPLEX + LWIP_ASSERT("netconn marked closed", conn->flags & NETCONN_FLAG_MBOXINVALID); +#endif /* LWIP_NETCONN_FULLDUPLEX */ + + /* Delete and drain the recvmbox. */ + if (sys_mbox_valid(&conn->recvmbox)) { + while (sys_mbox_tryfetch(&conn->recvmbox, &mem) != SYS_MBOX_EMPTY) { +#if LWIP_NETCONN_FULLDUPLEX + if (!lwip_netconn_is_deallocated_msg(mem)) +#endif /* LWIP_NETCONN_FULLDUPLEX */ + { +#if LWIP_TCP + if (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP) { + err_t err; + if (!lwip_netconn_is_err_msg(mem, &err)) { + pbuf_free((struct pbuf *)mem); + } + } else +#endif /* LWIP_TCP */ + { + netbuf_delete((struct netbuf *)mem); + } + } + } + sys_mbox_free(&conn->recvmbox); + sys_mbox_set_invalid(&conn->recvmbox); + } + + /* Delete and drain the acceptmbox. */ +#if LWIP_TCP + if (sys_mbox_valid(&conn->acceptmbox)) { + while (sys_mbox_tryfetch(&conn->acceptmbox, &mem) != SYS_MBOX_EMPTY) { +#if LWIP_NETCONN_FULLDUPLEX + if (!lwip_netconn_is_deallocated_msg(mem)) +#endif /* LWIP_NETCONN_FULLDUPLEX */ + { + err_t err; + if (!lwip_netconn_is_err_msg(mem, &err)) { + struct netconn *newconn = (struct netconn *)mem; + /* Only tcp pcbs have an acceptmbox, so no need to check conn->type */ + /* pcb might be set to NULL already by err_tcp() */ + /* drain recvmbox */ + netconn_drain(newconn); + if (newconn->pcb.tcp != NULL) { + tcp_abort(newconn->pcb.tcp); + newconn->pcb.tcp = NULL; + } + netconn_free(newconn); + } + } + } + sys_mbox_free(&conn->acceptmbox); + sys_mbox_set_invalid(&conn->acceptmbox); + } +#endif /* LWIP_TCP */ +} + +#if LWIP_NETCONN_FULLDUPLEX +static void +netconn_mark_mbox_invalid(struct netconn *conn) +{ + int i, num_waiting; + void *msg = LWIP_CONST_CAST(void *, &netconn_deleted); + + /* Prevent new calls/threads from reading from the mbox */ + conn->flags |= NETCONN_FLAG_MBOXINVALID; + + SYS_ARCH_LOCKED(num_waiting = conn->mbox_threads_waiting); + for (i = 0; i < num_waiting; i++) { + if (sys_mbox_valid_val(conn->recvmbox)) { + sys_mbox_trypost(&conn->recvmbox, msg); + } else { + sys_mbox_trypost(&conn->acceptmbox, msg); + } + } +} +#endif /* LWIP_NETCONN_FULLDUPLEX */ + +#if LWIP_TCP +/** + * Internal helper function to close a TCP netconn: since this sometimes + * doesn't work at the first attempt, this function is called from multiple + * places. + * + * @param conn the TCP netconn to close + */ +static err_t +lwip_netconn_do_close_internal(struct netconn *conn WRITE_DELAYED_PARAM) +{ + err_t err; + u8_t shut, shut_rx, shut_tx, shut_close; + u8_t close_finished = 0; + struct tcp_pcb *tpcb; +#if LWIP_SO_LINGER + u8_t linger_wait_required = 0; +#endif /* LWIP_SO_LINGER */ + + LWIP_ASSERT("invalid conn", (conn != NULL)); + LWIP_ASSERT("this is for tcp netconns only", (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP)); + LWIP_ASSERT("conn must be in state NETCONN_CLOSE", (conn->state == NETCONN_CLOSE)); + LWIP_ASSERT("pcb already closed", (conn->pcb.tcp != NULL)); + LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL); + + tpcb = conn->pcb.tcp; + shut = conn->current_msg->msg.sd.shut; + shut_rx = shut & NETCONN_SHUT_RD; + shut_tx = shut & NETCONN_SHUT_WR; + /* shutting down both ends is the same as closing + (also if RD or WR side was shut down before already) */ + if (shut == NETCONN_SHUT_RDWR) { + shut_close = 1; + } else if (shut_rx && + ((tpcb->state == FIN_WAIT_1) || + (tpcb->state == FIN_WAIT_2) || + (tpcb->state == CLOSING))) { + shut_close = 1; + } else if (shut_tx && ((tpcb->flags & TF_RXCLOSED) != 0)) { + shut_close = 1; + } else { + shut_close = 0; + } + + /* Set back some callback pointers */ + if (shut_close) { + tcp_arg(tpcb, NULL); + } + if (tpcb->state == LISTEN) { + tcp_accept(tpcb, NULL); + } else { + /* some callbacks have to be reset if tcp_close is not successful */ + if (shut_rx) { + tcp_recv(tpcb, NULL); + tcp_accept(tpcb, NULL); + } + if (shut_tx) { + tcp_sent(tpcb, NULL); + } + if (shut_close) { + tcp_poll(tpcb, NULL, 0); + tcp_err(tpcb, NULL); + } + } + /* Try to close the connection */ + if (shut_close) { +#if LWIP_SO_LINGER + /* check linger possibilites before calling tcp_close */ + err = ERR_OK; + /* linger enabled/required at all? (i.e. is there untransmitted data left?) */ + if ((conn->linger >= 0) && (conn->pcb.tcp->unsent || conn->pcb.tcp->unacked)) { + if ((conn->linger == 0)) { + /* data left but linger prevents waiting */ + tcp_abort(tpcb); + tpcb = NULL; + } else if (conn->linger > 0) { + /* data left and linger says we should wait */ + if (netconn_is_nonblocking(conn)) { + /* data left on a nonblocking netconn -> cannot linger */ + err = ERR_WOULDBLOCK; + } else if ((s32_t)(sys_now() - conn->current_msg->msg.sd.time_started) >= + (conn->linger * 1000)) { + /* data left but linger timeout has expired (this happens on further + calls to this function through poll_tcp */ + tcp_abort(tpcb); + tpcb = NULL; + } else { + /* data left -> need to wait for ACK after successful close */ + linger_wait_required = 1; + } + } + } + if ((err == ERR_OK) && (tpcb != NULL)) +#endif /* LWIP_SO_LINGER */ + { + err = tcp_close(tpcb); + } + } else { + err = tcp_shutdown(tpcb, shut_rx, shut_tx); + } + if (err == ERR_OK) { + close_finished = 1; +#if LWIP_SO_LINGER + if (linger_wait_required) { + /* wait for ACK of all unsent/unacked data by just getting called again */ + close_finished = 0; + err = ERR_INPROGRESS; + } +#endif /* LWIP_SO_LINGER */ + } else { + if (err == ERR_MEM) { + /* Closing failed because of memory shortage, try again later. Even for + nonblocking netconns, we have to wait since no standard socket application + is prepared for close failing because of resource shortage. + Check the timeout: this is kind of an lwip addition to the standard sockets: + we wait for some time when failing to allocate a segment for the FIN */ +#if LWIP_SO_SNDTIMEO || LWIP_SO_LINGER + s32_t close_timeout = LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT; +#if LWIP_SO_SNDTIMEO + if (conn->send_timeout > 0) { + close_timeout = conn->send_timeout; + } +#endif /* LWIP_SO_SNDTIMEO */ +#if LWIP_SO_LINGER + if (conn->linger >= 0) { + /* use linger timeout (seconds) */ + close_timeout = conn->linger * 1000U; + } +#endif + if ((s32_t)(sys_now() - conn->current_msg->msg.sd.time_started) >= close_timeout) { +#else /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ + if (conn->current_msg->msg.sd.polls_left == 0) { +#endif /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ + close_finished = 1; + if (shut_close) { + /* in this case, we want to RST the connection */ + tcp_abort(tpcb); + err = ERR_OK; + } + } + } else { + /* Closing failed for a non-memory error: give up */ + close_finished = 1; + } + } + if (close_finished) { + /* Closing done (succeeded, non-memory error, nonblocking error or timeout) */ + sys_sem_t *op_completed_sem = LWIP_API_MSG_SEM(conn->current_msg); + conn->current_msg->err = err; + conn->current_msg = NULL; + conn->state = NETCONN_NONE; + if (err == ERR_OK) { + if (shut_close) { + /* Set back some callback pointers as conn is going away */ + conn->pcb.tcp = NULL; + /* Trigger select() in socket layer. Make sure everybody notices activity + on the connection, error first! */ + API_EVENT(conn, NETCONN_EVT_ERROR, 0); + } + if (shut_rx) { + API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); + } + if (shut_tx) { + API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0); + } + } +#if LWIP_TCPIP_CORE_LOCKING + if (delayed) +#endif + { + /* wake up the application task */ + sys_sem_signal(op_completed_sem); + } + return ERR_OK; + } + if (!close_finished) { + /* Closing failed and we want to wait: restore some of the callbacks */ + /* Closing of listen pcb will never fail! */ + LWIP_ASSERT("Closing a listen pcb may not fail!", (tpcb->state != LISTEN)); + if (shut_tx) { + tcp_sent(tpcb, sent_tcp); + } + /* when waiting for close, set up poll interval to 500ms */ + tcp_poll(tpcb, poll_tcp, 1); + tcp_err(tpcb, err_tcp); + tcp_arg(tpcb, conn); + /* don't restore recv callback: we don't want to receive any more data */ + } + /* If closing didn't succeed, we get called again either + from poll_tcp or from sent_tcp */ + LWIP_ASSERT("err != ERR_OK", err != ERR_OK); + return err; +} +#endif /* LWIP_TCP */ + +/** + * Delete the pcb inside a netconn. + * Called from netconn_delete. + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_delconn(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + + enum netconn_state state = msg->conn->state; + LWIP_ASSERT("netconn state error", /* this only happens for TCP netconns */ + (state == NETCONN_NONE) || (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP)); +#if LWIP_NETCONN_FULLDUPLEX + /* In full duplex mode, blocking write/connect is aborted with ERR_CLSD */ + if (state != NETCONN_NONE) { + if ((state == NETCONN_WRITE) || + ((state == NETCONN_CONNECT) && !IN_NONBLOCKING_CONNECT(msg->conn))) { + /* close requested, abort running write/connect */ + sys_sem_t *op_completed_sem; + LWIP_ASSERT("msg->conn->current_msg != NULL", msg->conn->current_msg != NULL); + op_completed_sem = LWIP_API_MSG_SEM(msg->conn->current_msg); + msg->conn->current_msg->err = ERR_CLSD; + msg->conn->current_msg = NULL; + msg->conn->state = NETCONN_NONE; + sys_sem_signal(op_completed_sem); + } + } +#else /* LWIP_NETCONN_FULLDUPLEX */ + if (((state != NETCONN_NONE) && + (state != NETCONN_LISTEN) && + (state != NETCONN_CONNECT)) || + ((state == NETCONN_CONNECT) && !IN_NONBLOCKING_CONNECT(msg->conn))) { + /* This means either a blocking write or blocking connect is running + (nonblocking write returns and sets state to NONE) */ + msg->err = ERR_INPROGRESS; + } else +#endif /* LWIP_NETCONN_FULLDUPLEX */ + { + LWIP_ASSERT("blocking connect in progress", + (state != NETCONN_CONNECT) || IN_NONBLOCKING_CONNECT(msg->conn)); + msg->err = ERR_OK; +#if LWIP_NETCONN_FULLDUPLEX + /* Mark mboxes invalid */ + netconn_mark_mbox_invalid(msg->conn); +#else /* LWIP_NETCONN_FULLDUPLEX */ + netconn_drain(msg->conn); +#endif /* LWIP_NETCONN_FULLDUPLEX */ + + if (msg->conn->pcb.tcp != NULL) { + + switch (NETCONNTYPE_GROUP(msg->conn->type)) { +#if LWIP_RAW + case NETCONN_RAW: + raw_remove(msg->conn->pcb.raw); + break; +#endif /* LWIP_RAW */ +#if LWIP_UDP + case NETCONN_UDP: + msg->conn->pcb.udp->recv_arg = NULL; + udp_remove(msg->conn->pcb.udp); + break; +#endif /* LWIP_UDP */ +#if LWIP_TCP + case NETCONN_TCP: + LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL); + msg->conn->state = NETCONN_CLOSE; + msg->msg.sd.shut = NETCONN_SHUT_RDWR; + msg->conn->current_msg = msg; +#if LWIP_TCPIP_CORE_LOCKING + if (lwip_netconn_do_close_internal(msg->conn, 0) != ERR_OK) { + LWIP_ASSERT("state!", msg->conn->state == NETCONN_CLOSE); + UNLOCK_TCPIP_CORE(); + sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0); + LOCK_TCPIP_CORE(); + LWIP_ASSERT("state!", msg->conn->state == NETCONN_NONE); + } +#else /* LWIP_TCPIP_CORE_LOCKING */ + lwip_netconn_do_close_internal(msg->conn); +#endif /* LWIP_TCPIP_CORE_LOCKING */ + /* API_EVENT is called inside lwip_netconn_do_close_internal, before releasing + the application thread, so we can return at this point! */ + return; +#endif /* LWIP_TCP */ + default: + break; + } + msg->conn->pcb.tcp = NULL; + } + /* tcp netconns don't come here! */ + + /* @todo: this lets select make the socket readable and writable, + which is wrong! errfd instead? */ + API_EVENT(msg->conn, NETCONN_EVT_RCVPLUS, 0); + API_EVENT(msg->conn, NETCONN_EVT_SENDPLUS, 0); + } + if (sys_sem_valid(LWIP_API_MSG_SEM(msg))) { + TCPIP_APIMSG_ACK(msg); + } +} + +/** + * Bind a pcb contained in a netconn + * Called from netconn_bind. + * + * @param m the api_msg pointing to the connection and containing + * the IP address and port to bind to + */ +void +lwip_netconn_do_bind(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + err_t err; + + if (msg->conn->pcb.tcp != NULL) { + switch (NETCONNTYPE_GROUP(msg->conn->type)) { +#if LWIP_RAW + case NETCONN_RAW: + err = raw_bind(msg->conn->pcb.raw, API_EXPR_REF(msg->msg.bc.ipaddr)); + break; +#endif /* LWIP_RAW */ +#if LWIP_UDP + case NETCONN_UDP: + err = udp_bind(msg->conn->pcb.udp, API_EXPR_REF(msg->msg.bc.ipaddr), msg->msg.bc.port); + break; +#endif /* LWIP_UDP */ +#if LWIP_TCP + case NETCONN_TCP: + err = tcp_bind(msg->conn->pcb.tcp, API_EXPR_REF(msg->msg.bc.ipaddr), msg->msg.bc.port); + break; +#endif /* LWIP_TCP */ + default: + err = ERR_VAL; + break; + } + } else { + err = ERR_VAL; + } + msg->err = err; + TCPIP_APIMSG_ACK(msg); +} +/** + * Bind a pcb contained in a netconn to an interface + * Called from netconn_bind_if. + * + * @param m the api_msg pointing to the connection and containing + * the IP address and port to bind to + */ +void +lwip_netconn_do_bind_if(void *m) +{ + struct netif *netif; + struct api_msg *msg = (struct api_msg *)m; + err_t err; + + netif = netif_get_by_index(msg->msg.bc.if_idx); + + if ((netif != NULL) && (msg->conn->pcb.tcp != NULL)) { + err = ERR_OK; + switch (NETCONNTYPE_GROUP(msg->conn->type)) { +#if LWIP_RAW + case NETCONN_RAW: + raw_bind_netif(msg->conn->pcb.raw, netif); + break; +#endif /* LWIP_RAW */ +#if LWIP_UDP + case NETCONN_UDP: + udp_bind_netif(msg->conn->pcb.udp, netif); + break; +#endif /* LWIP_UDP */ +#if LWIP_TCP + case NETCONN_TCP: + tcp_bind_netif(msg->conn->pcb.tcp, netif); + break; +#endif /* LWIP_TCP */ + default: + err = ERR_VAL; + break; + } + } else { + err = ERR_VAL; + } + msg->err = err; + TCPIP_APIMSG_ACK(msg); +} + +#if LWIP_TCP +/** + * TCP callback function if a connection (opened by tcp_connect/lwip_netconn_do_connect) has + * been established (or reset by the remote host). + * + * @see tcp.h (struct tcp_pcb.connected) for parameters and return values + */ +static err_t +lwip_netconn_do_connected(void *arg, struct tcp_pcb *pcb, err_t err) +{ + struct netconn *conn; + int was_blocking; + sys_sem_t *op_completed_sem = NULL; + + LWIP_UNUSED_ARG(pcb); + + conn = (struct netconn *)arg; + + if (conn == NULL) { + return ERR_VAL; + } + + LWIP_ASSERT("conn->state == NETCONN_CONNECT", conn->state == NETCONN_CONNECT); + LWIP_ASSERT("(conn->current_msg != NULL) || conn->in_non_blocking_connect", + (conn->current_msg != NULL) || IN_NONBLOCKING_CONNECT(conn)); + + if (conn->current_msg != NULL) { + conn->current_msg->err = err; + op_completed_sem = LWIP_API_MSG_SEM(conn->current_msg); + } + if ((NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP) && (err == ERR_OK)) { + setup_tcp(conn); + } + was_blocking = !IN_NONBLOCKING_CONNECT(conn); + SET_NONBLOCKING_CONNECT(conn, 0); + LWIP_ASSERT("blocking connect state error", + (was_blocking && op_completed_sem != NULL) || + (!was_blocking && op_completed_sem == NULL)); + conn->current_msg = NULL; + conn->state = NETCONN_NONE; + API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0); + + if (was_blocking) { + sys_sem_signal(op_completed_sem); + } + return ERR_OK; +} +#endif /* LWIP_TCP */ + +/** + * Connect a pcb contained inside a netconn + * Called from netconn_connect. + * + * @param m the api_msg pointing to the connection and containing + * the IP address and port to connect to + */ +void +lwip_netconn_do_connect(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + err_t err; + + if (msg->conn->pcb.tcp == NULL) { + /* This may happen when calling netconn_connect() a second time */ + err = ERR_CLSD; + } else { + switch (NETCONNTYPE_GROUP(msg->conn->type)) { +#if LWIP_RAW + case NETCONN_RAW: + err = raw_connect(msg->conn->pcb.raw, API_EXPR_REF(msg->msg.bc.ipaddr)); + break; +#endif /* LWIP_RAW */ +#if LWIP_UDP + case NETCONN_UDP: + err = udp_connect(msg->conn->pcb.udp, API_EXPR_REF(msg->msg.bc.ipaddr), msg->msg.bc.port); + break; +#endif /* LWIP_UDP */ +#if LWIP_TCP + case NETCONN_TCP: + /* Prevent connect while doing any other action. */ + if (msg->conn->state == NETCONN_CONNECT) { + err = ERR_ALREADY; + } else if (msg->conn->state != NETCONN_NONE) { + err = ERR_ISCONN; + } else { + setup_tcp(msg->conn); + err = tcp_connect(msg->conn->pcb.tcp, API_EXPR_REF(msg->msg.bc.ipaddr), + msg->msg.bc.port, lwip_netconn_do_connected); + if (err == ERR_OK) { + u8_t non_blocking = netconn_is_nonblocking(msg->conn); + msg->conn->state = NETCONN_CONNECT; + SET_NONBLOCKING_CONNECT(msg->conn, non_blocking); + if (non_blocking) { + err = ERR_INPROGRESS; + } else { + msg->conn->current_msg = msg; + /* sys_sem_signal() is called from lwip_netconn_do_connected (or err_tcp()), + when the connection is established! */ +#if LWIP_TCPIP_CORE_LOCKING + LWIP_ASSERT("state!", msg->conn->state == NETCONN_CONNECT); + UNLOCK_TCPIP_CORE(); + sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0); + LOCK_TCPIP_CORE(); + LWIP_ASSERT("state!", msg->conn->state != NETCONN_CONNECT); +#endif /* LWIP_TCPIP_CORE_LOCKING */ + return; + } + } + } + break; +#endif /* LWIP_TCP */ + default: + LWIP_ERROR("Invalid netconn type", 0, do { + err = ERR_VAL; + } while (0)); + break; + } + } + msg->err = err; + /* For all other protocols, netconn_connect() calls netconn_apimsg(), + so use TCPIP_APIMSG_ACK() here. */ + TCPIP_APIMSG_ACK(msg); +} + +/** + * Disconnect a pcb contained inside a netconn + * Only used for UDP netconns. + * Called from netconn_disconnect. + * + * @param m the api_msg pointing to the connection to disconnect + */ +void +lwip_netconn_do_disconnect(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + +#if LWIP_UDP + if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) { + udp_disconnect(msg->conn->pcb.udp); + msg->err = ERR_OK; + } else +#endif /* LWIP_UDP */ + { + msg->err = ERR_VAL; + } + TCPIP_APIMSG_ACK(msg); +} + +#if LWIP_TCP +/** + * Set a TCP pcb contained in a netconn into listen mode + * Called from netconn_listen. + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_listen(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + err_t err; + + if (msg->conn->pcb.tcp != NULL) { + if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) { + if (msg->conn->state == NETCONN_NONE) { + struct tcp_pcb *lpcb; + if (msg->conn->pcb.tcp->state != CLOSED) { + /* connection is not closed, cannot listen */ + err = ERR_VAL; + } else { + u8_t backlog; +#if TCP_LISTEN_BACKLOG + backlog = msg->msg.lb.backlog; +#else /* TCP_LISTEN_BACKLOG */ + backlog = TCP_DEFAULT_LISTEN_BACKLOG; +#endif /* TCP_LISTEN_BACKLOG */ +#if LWIP_IPV4 && LWIP_IPV6 + /* "Socket API like" dual-stack support: If IP to listen to is IP6_ADDR_ANY, + * and NETCONN_FLAG_IPV6_V6ONLY is NOT set, use IP_ANY_TYPE to listen + */ + if (ip_addr_cmp(&msg->conn->pcb.ip->local_ip, IP6_ADDR_ANY) && + (netconn_get_ipv6only(msg->conn) == 0)) { + /* change PCB type to IPADDR_TYPE_ANY */ + IP_SET_TYPE_VAL(msg->conn->pcb.tcp->local_ip, IPADDR_TYPE_ANY); + IP_SET_TYPE_VAL(msg->conn->pcb.tcp->remote_ip, IPADDR_TYPE_ANY); + } +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + + lpcb = tcp_listen_with_backlog_and_err(msg->conn->pcb.tcp, backlog, &err); + + if (lpcb == NULL) { + /* in this case, the old pcb is still allocated */ + } else { + /* delete the recvmbox and allocate the acceptmbox */ + if (sys_mbox_valid(&msg->conn->recvmbox)) { + /** @todo: should we drain the recvmbox here? */ + sys_mbox_free(&msg->conn->recvmbox); + sys_mbox_set_invalid(&msg->conn->recvmbox); + } + err = ERR_OK; + if (!sys_mbox_valid(&msg->conn->acceptmbox)) { + err = sys_mbox_new(&msg->conn->acceptmbox, DEFAULT_ACCEPTMBOX_SIZE); + } + if (err == ERR_OK) { + msg->conn->state = NETCONN_LISTEN; + msg->conn->pcb.tcp = lpcb; + tcp_arg(msg->conn->pcb.tcp, msg->conn); + tcp_accept(msg->conn->pcb.tcp, accept_function); + } else { + /* since the old pcb is already deallocated, free lpcb now */ + tcp_close(lpcb); + msg->conn->pcb.tcp = NULL; + } + } + } + } else if (msg->conn->state == NETCONN_LISTEN) { + /* already listening, allow updating of the backlog */ + err = ERR_OK; + tcp_backlog_set(msg->conn->pcb.tcp, msg->msg.lb.backlog); + } else { + err = ERR_CONN; + } + } else { + err = ERR_ARG; + } + } else { + err = ERR_CONN; + } + msg->err = err; + TCPIP_APIMSG_ACK(msg); +} +#endif /* LWIP_TCP */ + +/** + * Send some data on a RAW or UDP pcb contained in a netconn + * Called from netconn_send + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_send(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + + err_t err = netconn_err(msg->conn); + if (err == ERR_OK) { + if (msg->conn->pcb.tcp != NULL) { + switch (NETCONNTYPE_GROUP(msg->conn->type)) { +#if LWIP_RAW + case NETCONN_RAW: + if (ip_addr_isany(&msg->msg.b->addr) || IP_IS_ANY_TYPE_VAL(msg->msg.b->addr)) { + err = raw_send(msg->conn->pcb.raw, msg->msg.b->p); + } else { + err = raw_sendto(msg->conn->pcb.raw, msg->msg.b->p, &msg->msg.b->addr); + } + break; +#endif +#if LWIP_UDP + case NETCONN_UDP: +#if LWIP_CHECKSUM_ON_COPY + if (ip_addr_isany(&msg->msg.b->addr) || IP_IS_ANY_TYPE_VAL(msg->msg.b->addr)) { + err = udp_send_chksum(msg->conn->pcb.udp, msg->msg.b->p, + msg->msg.b->flags & NETBUF_FLAG_CHKSUM, msg->msg.b->toport_chksum); + } else { + err = udp_sendto_chksum(msg->conn->pcb.udp, msg->msg.b->p, + &msg->msg.b->addr, msg->msg.b->port, + msg->msg.b->flags & NETBUF_FLAG_CHKSUM, msg->msg.b->toport_chksum); + } +#else /* LWIP_CHECKSUM_ON_COPY */ + if (ip_addr_isany_val(msg->msg.b->addr) || IP_IS_ANY_TYPE_VAL(msg->msg.b->addr)) { + err = udp_send(msg->conn->pcb.udp, msg->msg.b->p); + } else { + err = udp_sendto(msg->conn->pcb.udp, msg->msg.b->p, &msg->msg.b->addr, msg->msg.b->port); + } +#endif /* LWIP_CHECKSUM_ON_COPY */ + break; +#endif /* LWIP_UDP */ + default: + err = ERR_CONN; + break; + } + } else { + err = ERR_CONN; + } + } + msg->err = err; + TCPIP_APIMSG_ACK(msg); +} + +#if LWIP_TCP +/** + * Indicate data has been received from a TCP pcb contained in a netconn + * Called from netconn_recv + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_recv(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + + msg->err = ERR_OK; + if (msg->conn->pcb.tcp != NULL) { + if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) { + size_t remaining = msg->msg.r.len; + do { + u16_t recved = (u16_t)((remaining > 0xffff) ? 0xffff : remaining); + tcp_recved(msg->conn->pcb.tcp, recved); + remaining -= recved; + } while (remaining != 0); + } + } + TCPIP_APIMSG_ACK(msg); +} + +#if TCP_LISTEN_BACKLOG +/** Indicate that a TCP pcb has been accepted + * Called from netconn_accept + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_accepted(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + + msg->err = ERR_OK; + if (msg->conn->pcb.tcp != NULL) { + if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) { + tcp_backlog_accepted(msg->conn->pcb.tcp); + } + } + TCPIP_APIMSG_ACK(msg); +} +#endif /* TCP_LISTEN_BACKLOG */ + +/** + * See if more data needs to be written from a previous call to netconn_write. + * Called initially from lwip_netconn_do_write. If the first call can't send all data + * (because of low memory or empty send-buffer), this function is called again + * from sent_tcp() or poll_tcp() to send more data. If all data is sent, the + * blocking application thread (waiting in netconn_write) is released. + * + * @param conn netconn (that is currently in state NETCONN_WRITE) to process + * @return ERR_OK + * ERR_MEM if LWIP_TCPIP_CORE_LOCKING=1 and sending hasn't yet finished + */ +static err_t +lwip_netconn_do_writemore(struct netconn *conn WRITE_DELAYED_PARAM) +{ + err_t err; + const void *dataptr; + u16_t len, available; + u8_t write_finished = 0; + size_t diff; + u8_t dontblock; + u8_t apiflags; + u8_t write_more; + + LWIP_ASSERT("conn != NULL", conn != NULL); + LWIP_ASSERT("conn->state == NETCONN_WRITE", (conn->state == NETCONN_WRITE)); + LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL); + LWIP_ASSERT("conn->pcb.tcp != NULL", conn->pcb.tcp != NULL); + LWIP_ASSERT("conn->current_msg->msg.w.offset < conn->current_msg->msg.w.len", + conn->current_msg->msg.w.offset < conn->current_msg->msg.w.len); + LWIP_ASSERT("conn->current_msg->msg.w.vector_cnt > 0", conn->current_msg->msg.w.vector_cnt > 0); + + apiflags = conn->current_msg->msg.w.apiflags; + dontblock = netconn_is_nonblocking(conn) || (apiflags & NETCONN_DONTBLOCK); + +#if LWIP_SO_SNDTIMEO + if ((conn->send_timeout != 0) && + ((s32_t)(sys_now() - conn->current_msg->msg.w.time_started) >= conn->send_timeout)) { + write_finished = 1; + if (conn->current_msg->msg.w.offset == 0) { + /* nothing has been written */ + err = ERR_WOULDBLOCK; + } else { + /* partial write */ + err = ERR_OK; + } + } else +#endif /* LWIP_SO_SNDTIMEO */ + { + do { + dataptr = (const u8_t *)conn->current_msg->msg.w.vector->ptr + conn->current_msg->msg.w.vector_off; + diff = conn->current_msg->msg.w.vector->len - conn->current_msg->msg.w.vector_off; + if (diff > 0xffffUL) { /* max_u16_t */ + len = 0xffff; + apiflags |= TCP_WRITE_FLAG_MORE; + } else { + len = (u16_t)diff; + } + available = tcp_sndbuf(conn->pcb.tcp); + if (available < len) { + /* don't try to write more than sendbuf */ + len = available; + if (dontblock) { + if (!len) { + /* set error according to partial write or not */ + err = (conn->current_msg->msg.w.offset == 0) ? ERR_WOULDBLOCK : ERR_OK; + goto err_mem; + } + } else { + apiflags |= TCP_WRITE_FLAG_MORE; + } + } + LWIP_ASSERT("lwip_netconn_do_writemore: invalid length!", + ((conn->current_msg->msg.w.vector_off + len) <= conn->current_msg->msg.w.vector->len)); + /* we should loop around for more sending in the following cases: + 1) We couldn't finish the current vector because of 16-bit size limitations. + tcp_write() and tcp_sndbuf() both are limited to 16-bit sizes + 2) We are sending the remainder of the current vector and have more */ + if ((len == 0xffff && diff > 0xffffUL) || + (len == (u16_t)diff && conn->current_msg->msg.w.vector_cnt > 1)) { + write_more = 1; + apiflags |= TCP_WRITE_FLAG_MORE; + } else { + write_more = 0; + } + err = tcp_write(conn->pcb.tcp, dataptr, len, apiflags); + if (err == ERR_OK) { + conn->current_msg->msg.w.offset += len; + conn->current_msg->msg.w.vector_off += len; + /* check if current vector is finished */ + if (conn->current_msg->msg.w.vector_off == conn->current_msg->msg.w.vector->len) { + conn->current_msg->msg.w.vector_cnt--; + /* if we have additional vectors, move on to them */ + if (conn->current_msg->msg.w.vector_cnt > 0) { + conn->current_msg->msg.w.vector++; + conn->current_msg->msg.w.vector_off = 0; + } + } + } + } while (write_more && err == ERR_OK); + /* if OK or memory error, check available space */ + if ((err == ERR_OK) || (err == ERR_MEM)) { +err_mem: + if (dontblock && (conn->current_msg->msg.w.offset < conn->current_msg->msg.w.len)) { + /* non-blocking write did not write everything: mark the pcb non-writable + and let poll_tcp check writable space to mark the pcb writable again */ + API_EVENT(conn, NETCONN_EVT_SENDMINUS, 0); + conn->flags |= NETCONN_FLAG_CHECK_WRITESPACE; + } else if ((tcp_sndbuf(conn->pcb.tcp) <= TCP_SNDLOWAT) || + (tcp_sndqueuelen(conn->pcb.tcp) >= TCP_SNDQUEUELOWAT)) { + /* The queued byte- or pbuf-count exceeds the configured low-water limit, + let select mark this pcb as non-writable. */ + API_EVENT(conn, NETCONN_EVT_SENDMINUS, 0); + } + } + + if (err == ERR_OK) { + err_t out_err; + if ((conn->current_msg->msg.w.offset == conn->current_msg->msg.w.len) || dontblock) { + /* return sent length (caller reads length from msg.w.offset) */ + write_finished = 1; + } + out_err = tcp_output(conn->pcb.tcp); + if (out_err == ERR_RTE) { + /* If tcp_output fails because no route is found, + don't try writing any more but return the error + to the application thread. */ + err = out_err; + write_finished = 1; + } + } else if (err == ERR_MEM) { + /* If ERR_MEM, we wait for sent_tcp or poll_tcp to be called. + For blocking sockets, we do NOT return to the application + thread, since ERR_MEM is only a temporary error! Non-blocking + will remain non-writable until sent_tcp/poll_tcp is called */ + + /* tcp_write returned ERR_MEM, try tcp_output anyway */ + err_t out_err = tcp_output(conn->pcb.tcp); + if (out_err == ERR_RTE) { + /* If tcp_output fails because no route is found, + don't try writing any more but return the error + to the application thread. */ + err = out_err; + write_finished = 1; + } else if (dontblock) { + /* non-blocking write is done on ERR_MEM, set error according + to partial write or not */ + err = (conn->current_msg->msg.w.offset == 0) ? ERR_WOULDBLOCK : ERR_OK; + write_finished = 1; + } + } else { + /* On errors != ERR_MEM, we don't try writing any more but return + the error to the application thread. */ + write_finished = 1; + } + } + if (write_finished) { + /* everything was written: set back connection state + and back to application task */ + sys_sem_t *op_completed_sem = LWIP_API_MSG_SEM(conn->current_msg); + conn->current_msg->err = err; + conn->current_msg = NULL; + conn->state = NETCONN_NONE; +#if LWIP_TCPIP_CORE_LOCKING + if (delayed) +#endif + { + sys_sem_signal(op_completed_sem); + } + } +#if LWIP_TCPIP_CORE_LOCKING + else { + return ERR_MEM; + } +#endif + return ERR_OK; +} +#endif /* LWIP_TCP */ + +/** + * Send some data on a TCP pcb contained in a netconn + * Called from netconn_write + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_write(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + + err_t err = netconn_err(msg->conn); + if (err == ERR_OK) { + if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) { +#if LWIP_TCP + if (msg->conn->state != NETCONN_NONE) { + /* netconn is connecting, closing or in blocking write */ + err = ERR_INPROGRESS; + } else if (msg->conn->pcb.tcp != NULL) { + msg->conn->state = NETCONN_WRITE; + /* set all the variables used by lwip_netconn_do_writemore */ + LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL); + LWIP_ASSERT("msg->msg.w.len != 0", msg->msg.w.len != 0); + msg->conn->current_msg = msg; +#if LWIP_TCPIP_CORE_LOCKING + if (lwip_netconn_do_writemore(msg->conn, 0) != ERR_OK) { + LWIP_ASSERT("state!", msg->conn->state == NETCONN_WRITE); + UNLOCK_TCPIP_CORE(); + sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0); + LOCK_TCPIP_CORE(); + LWIP_ASSERT("state!", msg->conn->state != NETCONN_WRITE); + } +#else /* LWIP_TCPIP_CORE_LOCKING */ + lwip_netconn_do_writemore(msg->conn); +#endif /* LWIP_TCPIP_CORE_LOCKING */ + /* for both cases: if lwip_netconn_do_writemore was called, don't ACK the APIMSG + since lwip_netconn_do_writemore ACKs it! */ + return; + } else { + err = ERR_CONN; + } +#else /* LWIP_TCP */ + err = ERR_VAL; +#endif /* LWIP_TCP */ +#if (LWIP_UDP || LWIP_RAW) + } else { + err = ERR_VAL; +#endif /* (LWIP_UDP || LWIP_RAW) */ + } + } + msg->err = err; + TCPIP_APIMSG_ACK(msg); +} + +/** + * Return a connection's local or remote address + * Called from netconn_getaddr + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_getaddr(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + + if (msg->conn->pcb.ip != NULL) { + if (msg->msg.ad.local) { + ip_addr_copy(API_EXPR_DEREF(msg->msg.ad.ipaddr), + msg->conn->pcb.ip->local_ip); + } else { + ip_addr_copy(API_EXPR_DEREF(msg->msg.ad.ipaddr), + msg->conn->pcb.ip->remote_ip); + } + + msg->err = ERR_OK; + switch (NETCONNTYPE_GROUP(msg->conn->type)) { +#if LWIP_RAW + case NETCONN_RAW: + if (msg->msg.ad.local) { + API_EXPR_DEREF(msg->msg.ad.port) = msg->conn->pcb.raw->protocol; + } else { + /* return an error as connecting is only a helper for upper layers */ + msg->err = ERR_CONN; + } + break; +#endif /* LWIP_RAW */ +#if LWIP_UDP + case NETCONN_UDP: + if (msg->msg.ad.local) { + API_EXPR_DEREF(msg->msg.ad.port) = msg->conn->pcb.udp->local_port; + } else { + if ((msg->conn->pcb.udp->flags & UDP_FLAGS_CONNECTED) == 0) { + msg->err = ERR_CONN; + } else { + API_EXPR_DEREF(msg->msg.ad.port) = msg->conn->pcb.udp->remote_port; + } + } + break; +#endif /* LWIP_UDP */ +#if LWIP_TCP + case NETCONN_TCP: + if ((msg->msg.ad.local == 0) && + ((msg->conn->pcb.tcp->state == CLOSED) || (msg->conn->pcb.tcp->state == LISTEN))) { + /* pcb is not connected and remote name is requested */ + msg->err = ERR_CONN; + } else { + API_EXPR_DEREF(msg->msg.ad.port) = (msg->msg.ad.local ? msg->conn->pcb.tcp->local_port : msg->conn->pcb.tcp->remote_port); + } + break; +#endif /* LWIP_TCP */ + default: + LWIP_ASSERT("invalid netconn_type", 0); + break; + } + } else { + msg->err = ERR_CONN; + } + TCPIP_APIMSG_ACK(msg); +} + +/** + * Close or half-shutdown a TCP pcb contained in a netconn + * Called from netconn_close + * In contrast to closing sockets, the netconn is not deallocated. + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_close(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + +#if LWIP_TCP + enum netconn_state state = msg->conn->state; + /* First check if this is a TCP netconn and if it is in a correct state + (LISTEN doesn't support half shutdown) */ + if ((msg->conn->pcb.tcp != NULL) && + (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) && + ((msg->msg.sd.shut == NETCONN_SHUT_RDWR) || (state != NETCONN_LISTEN))) { + /* Check if we are in a connected state */ + if (state == NETCONN_CONNECT) { + /* TCP connect in progress: cannot shutdown */ + msg->err = ERR_CONN; + } else if (state == NETCONN_WRITE) { +#if LWIP_NETCONN_FULLDUPLEX + if (msg->msg.sd.shut & NETCONN_SHUT_WR) { + /* close requested, abort running write */ + sys_sem_t *write_completed_sem; + LWIP_ASSERT("msg->conn->current_msg != NULL", msg->conn->current_msg != NULL); + write_completed_sem = LWIP_API_MSG_SEM(msg->conn->current_msg); + msg->conn->current_msg->err = ERR_CLSD; + msg->conn->current_msg = NULL; + msg->conn->state = NETCONN_NONE; + state = NETCONN_NONE; + sys_sem_signal(write_completed_sem); + } else { + LWIP_ASSERT("msg->msg.sd.shut == NETCONN_SHUT_RD", msg->msg.sd.shut == NETCONN_SHUT_RD); + /* In this case, let the write continue and do not interfere with + conn->current_msg or conn->state! */ + msg->err = tcp_shutdown(msg->conn->pcb.tcp, 1, 0); + } + } + if (state == NETCONN_NONE) { +#else /* LWIP_NETCONN_FULLDUPLEX */ + msg->err = ERR_INPROGRESS; + } else { +#endif /* LWIP_NETCONN_FULLDUPLEX */ + if (msg->msg.sd.shut & NETCONN_SHUT_RD) { +#if LWIP_NETCONN_FULLDUPLEX + /* Mark mboxes invalid */ + netconn_mark_mbox_invalid(msg->conn); +#else /* LWIP_NETCONN_FULLDUPLEX */ + netconn_drain(msg->conn); +#endif /* LWIP_NETCONN_FULLDUPLEX */ + } + LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL); + msg->conn->state = NETCONN_CLOSE; + msg->conn->current_msg = msg; +#if LWIP_TCPIP_CORE_LOCKING + if (lwip_netconn_do_close_internal(msg->conn, 0) != ERR_OK) { + LWIP_ASSERT("state!", msg->conn->state == NETCONN_CLOSE); + UNLOCK_TCPIP_CORE(); + sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0); + LOCK_TCPIP_CORE(); + LWIP_ASSERT("state!", msg->conn->state == NETCONN_NONE); + } +#else /* LWIP_TCPIP_CORE_LOCKING */ + lwip_netconn_do_close_internal(msg->conn); +#endif /* LWIP_TCPIP_CORE_LOCKING */ + /* for tcp netconns, lwip_netconn_do_close_internal ACKs the message */ + return; + } + } else +#endif /* LWIP_TCP */ + { + msg->err = ERR_CONN; + } + TCPIP_APIMSG_ACK(msg); +} + +#if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) +/** + * Join multicast groups for UDP netconns. + * Called from netconn_join_leave_group + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_join_leave_group(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + + msg->err = ERR_CONN; + if (msg->conn->pcb.tcp != NULL) { + if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) { +#if LWIP_UDP +#if LWIP_IPV6 && LWIP_IPV6_MLD + if (NETCONNTYPE_ISIPV6(msg->conn->type)) { + if (msg->msg.jl.join_or_leave == NETCONN_JOIN) { + msg->err = mld6_joingroup(ip_2_ip6(API_EXPR_REF(msg->msg.jl.netif_addr)), + ip_2_ip6(API_EXPR_REF(msg->msg.jl.multiaddr))); + } else { + msg->err = mld6_leavegroup(ip_2_ip6(API_EXPR_REF(msg->msg.jl.netif_addr)), + ip_2_ip6(API_EXPR_REF(msg->msg.jl.multiaddr))); + } + } else +#endif /* LWIP_IPV6 && LWIP_IPV6_MLD */ + { +#if LWIP_IGMP + if (msg->msg.jl.join_or_leave == NETCONN_JOIN) { + msg->err = igmp_joingroup(ip_2_ip4(API_EXPR_REF(msg->msg.jl.netif_addr)), + ip_2_ip4(API_EXPR_REF(msg->msg.jl.multiaddr))); + } else { + msg->err = igmp_leavegroup(ip_2_ip4(API_EXPR_REF(msg->msg.jl.netif_addr)), + ip_2_ip4(API_EXPR_REF(msg->msg.jl.multiaddr))); + } +#endif /* LWIP_IGMP */ + } +#endif /* LWIP_UDP */ +#if (LWIP_TCP || LWIP_RAW) + } else { + msg->err = ERR_VAL; +#endif /* (LWIP_TCP || LWIP_RAW) */ + } + } + TCPIP_APIMSG_ACK(msg); +} +/** + * Join multicast groups for UDP netconns. + * Called from netconn_join_leave_group_netif + * + * @param m the api_msg pointing to the connection + */ +void +lwip_netconn_do_join_leave_group_netif(void *m) +{ + struct api_msg *msg = (struct api_msg *)m; + struct netif *netif; + + netif = netif_get_by_index(msg->msg.jl.if_idx); + if (netif == NULL) { + msg->err = ERR_IF; + goto done; + } + + msg->err = ERR_CONN; + if (msg->conn->pcb.tcp != NULL) { + if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) { +#if LWIP_UDP +#if LWIP_IPV6 && LWIP_IPV6_MLD + if (NETCONNTYPE_ISIPV6(msg->conn->type)) { + if (msg->msg.jl.join_or_leave == NETCONN_JOIN) { + msg->err = mld6_joingroup_netif(netif, + ip_2_ip6(API_EXPR_REF(msg->msg.jl.multiaddr))); + } else { + msg->err = mld6_leavegroup_netif(netif, + ip_2_ip6(API_EXPR_REF(msg->msg.jl.multiaddr))); + } + } else +#endif /* LWIP_IPV6 && LWIP_IPV6_MLD */ + { +#if LWIP_IGMP + if (msg->msg.jl.join_or_leave == NETCONN_JOIN) { + msg->err = igmp_joingroup_netif(netif, + ip_2_ip4(API_EXPR_REF(msg->msg.jl.multiaddr))); + } else { + msg->err = igmp_leavegroup_netif(netif, + ip_2_ip4(API_EXPR_REF(msg->msg.jl.multiaddr))); + } +#endif /* LWIP_IGMP */ + } +#endif /* LWIP_UDP */ +#if (LWIP_TCP || LWIP_RAW) + } else { + msg->err = ERR_VAL; +#endif /* (LWIP_TCP || LWIP_RAW) */ + } + } + +done: + TCPIP_APIMSG_ACK(msg); +} +#endif /* LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) */ + +#if LWIP_DNS +/** + * Callback function that is called when DNS name is resolved + * (or on timeout). A waiting application thread is waked up by + * signaling the semaphore. + */ +static void +lwip_netconn_do_dns_found(const char *name, const ip_addr_t *ipaddr, void *arg) +{ + struct dns_api_msg *msg = (struct dns_api_msg *)arg; + + /* we trust the internal implementation to be correct :-) */ + LWIP_UNUSED_ARG(name); + + if (ipaddr == NULL) { + /* timeout or memory error */ + API_EXPR_DEREF(msg->err) = ERR_VAL; + } else { + /* address was resolved */ + API_EXPR_DEREF(msg->err) = ERR_OK; + API_EXPR_DEREF(msg->addr) = *ipaddr; + } + /* wake up the application task waiting in netconn_gethostbyname */ + sys_sem_signal(API_EXPR_REF_SEM(msg->sem)); +} + +/** + * Execute a DNS query + * Called from netconn_gethostbyname + * + * @param arg the dns_api_msg pointing to the query + */ +void +lwip_netconn_do_gethostbyname(void *arg) +{ + struct dns_api_msg *msg = (struct dns_api_msg *)arg; + u8_t addrtype = +#if LWIP_IPV4 && LWIP_IPV6 + msg->dns_addrtype; +#else + LWIP_DNS_ADDRTYPE_DEFAULT; +#endif + + API_EXPR_DEREF(msg->err) = dns_gethostbyname_addrtype(msg->name, + API_EXPR_REF(msg->addr), lwip_netconn_do_dns_found, msg, addrtype); +#if LWIP_TCPIP_CORE_LOCKING + /* For core locking, only block if we need to wait for answer/timeout */ + if (API_EXPR_DEREF(msg->err) == ERR_INPROGRESS) { + UNLOCK_TCPIP_CORE(); + sys_sem_wait(API_EXPR_REF_SEM(msg->sem)); + LOCK_TCPIP_CORE(); + LWIP_ASSERT("do_gethostbyname still in progress!!", API_EXPR_DEREF(msg->err) != ERR_INPROGRESS); + } +#else /* LWIP_TCPIP_CORE_LOCKING */ + if (API_EXPR_DEREF(msg->err) != ERR_INPROGRESS) { + /* on error or immediate success, wake up the application + * task waiting in netconn_gethostbyname */ + sys_sem_signal(API_EXPR_REF_SEM(msg->sem)); + } +#endif /* LWIP_TCPIP_CORE_LOCKING */ +} +#endif /* LWIP_DNS */ + +#endif /* LWIP_NETCONN */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/api/err.c b/BLE_EXAMPLE/src/main/cpp/lwip/api/err.c new file mode 100644 index 000000000..f2d718038 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/api/err.c @@ -0,0 +1,115 @@ +/** + * @file + * Error Management module + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/err.h" +#include "lwip/def.h" +#include "lwip/sys.h" + +#include "lwip/errno.h" + +#if !NO_SYS +/** Table to quickly map an lwIP error (err_t) to a socket error + * by using -err as an index */ +static const int err_to_errno_table[] = { + 0, /* ERR_OK 0 No error, everything OK. */ + ENOMEM, /* ERR_MEM -1 Out of memory error. */ + ENOBUFS, /* ERR_BUF -2 Buffer error. */ + EWOULDBLOCK, /* ERR_TIMEOUT -3 Timeout */ + EHOSTUNREACH, /* ERR_RTE -4 Routing problem. */ + EINPROGRESS, /* ERR_INPROGRESS -5 Operation in progress */ + EINVAL, /* ERR_VAL -6 Illegal value. */ + EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */ + EADDRINUSE, /* ERR_USE -8 Address in use. */ + EALREADY, /* ERR_ALREADY -9 Already connecting. */ + EISCONN, /* ERR_ISCONN -10 Conn already established.*/ + ENOTCONN, /* ERR_CONN -11 Not connected. */ + -1, /* ERR_IF -12 Low-level netif error */ + ECONNABORTED, /* ERR_ABRT -13 Connection aborted. */ + ECONNRESET, /* ERR_RST -14 Connection reset. */ + ENOTCONN, /* ERR_CLSD -15 Connection closed. */ + EIO /* ERR_ARG -16 Illegal argument. */ +}; + +int +err_to_errno(err_t err) +{ + if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_to_errno_table))) { + return EIO; + } + return err_to_errno_table[-err]; +} +#endif /* !NO_SYS */ + +#ifdef LWIP_DEBUG + +static const char *err_strerr[] = { + "Ok.", /* ERR_OK 0 */ + "Out of memory error.", /* ERR_MEM -1 */ + "Buffer error.", /* ERR_BUF -2 */ + "Timeout.", /* ERR_TIMEOUT -3 */ + "Routing problem.", /* ERR_RTE -4 */ + "Operation in progress.", /* ERR_INPROGRESS -5 */ + "Illegal value.", /* ERR_VAL -6 */ + "Operation would block.", /* ERR_WOULDBLOCK -7 */ + "Address in use.", /* ERR_USE -8 */ + "Already connecting.", /* ERR_ALREADY -9 */ + "Already connected.", /* ERR_ISCONN -10 */ + "Not connected.", /* ERR_CONN -11 */ + "Low-level netif error.", /* ERR_IF -12 */ + "Connection aborted.", /* ERR_ABRT -13 */ + "Connection reset.", /* ERR_RST -14 */ + "Connection closed.", /* ERR_CLSD -15 */ + "Illegal argument." /* ERR_ARG -16 */ +}; + +/** + * Convert an lwip internal error to a string representation. + * + * @param err an lwip internal err_t + * @return a string representation for err + */ +const char * +lwip_strerr(err_t err) +{ + if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_strerr))) { + return "Unknown error."; + } + return err_strerr[-err]; +} + +#endif /* LWIP_DEBUG */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/api/if_api.c b/BLE_EXAMPLE/src/main/cpp/lwip/api/if_api.c new file mode 100644 index 000000000..2eda9f0b5 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/api/if_api.c @@ -0,0 +1,102 @@ +/** + * @file + * Interface Identification APIs from: + * RFC 3493: Basic Socket Interface Extensions for IPv6 + * Section 4: Interface Identification + * + * @defgroup if_api Interface Identification API + * @ingroup socket + */ + +/* + * Copyright (c) 2017 Joel Cunningham, Garmin International, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Joel Cunningham + * + */ +#include "lwip/opt.h" + +#if LWIP_SOCKET + +#include "lwip/errno.h" +#include "lwip/if_api.h" +#include "lwip/netifapi.h" +#include "lwip/priv/sockets_priv.h" + +/** + * @ingroup if_api + * Maps an interface index to its corresponding name. + * @param ifindex interface index + * @param ifname shall point to a buffer of at least {IF_NAMESIZE} bytes + * @return If ifindex is an interface index, then the function shall return the + * value supplied in ifname, which points to a buffer now containing the interface name. + * Otherwise, the function shall return a NULL pointer. + */ +char * +lwip_if_indextoname(unsigned int ifindex, char *ifname) +{ +#if LWIP_NETIF_API + if (ifindex <= 0xff) { + err_t err = netifapi_netif_index_to_name((u8_t)ifindex, ifname); + if (!err && ifname[0] != '\0') { + return ifname; + } + } +#else /* LWIP_NETIF_API */ + LWIP_UNUSED_ARG(ifindex); + LWIP_UNUSED_ARG(ifname); +#endif /* LWIP_NETIF_API */ + set_errno(ENXIO); + return NULL; +} + +/** + * @ingroup if_api + * Returs the interface index corresponding to name ifname. + * @param ifname Interface name + * @return The corresponding index if ifname is the name of an interface; + * otherwise, zero. + */ +unsigned int +lwip_if_nametoindex(const char *ifname) +{ +#if LWIP_NETIF_API + err_t err; + u8_t idx; + + err = netifapi_netif_name_to_index(ifname, &idx); + if (!err) { + return idx; + } +#else /* LWIP_NETIF_API */ + LWIP_UNUSED_ARG(ifname); +#endif /* LWIP_NETIF_API */ + return 0; /* invalid index */ +} + +#endif /* LWIP_SOCKET */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/api/tcpip.c b/BLE_EXAMPLE/src/main/cpp/lwip/api/tcpip.c new file mode 100644 index 000000000..73878ce53 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/api/tcpip.c @@ -0,0 +1,669 @@ +/** + * @file + * Sequential API Main thread module + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if !NO_SYS /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/priv/tcpip_priv.h" +#include "lwip/sys.h" +#include "lwip/memp.h" +#include "lwip/mem.h" +#include "lwip/init.h" +#include "lwip/ip.h" +#include "lwip/pbuf.h" +#include "lwip/etharp.h" +#include "netif/ethernet.h" + +#define TCPIP_MSG_VAR_REF(name) API_VAR_REF(name) +#define TCPIP_MSG_VAR_DECLARE(name) API_VAR_DECLARE(struct tcpip_msg, name) +#define TCPIP_MSG_VAR_ALLOC(name) API_VAR_ALLOC(struct tcpip_msg, MEMP_TCPIP_MSG_API, name, ERR_MEM) +#define TCPIP_MSG_VAR_FREE(name) API_VAR_FREE(MEMP_TCPIP_MSG_API, name) + +/* global variables */ +static tcpip_init_done_fn tcpip_init_done; +static void *tcpip_init_done_arg; +static sys_mbox_t tcpip_mbox; + +#if LWIP_TCPIP_CORE_LOCKING +/** The global semaphore to lock the stack. */ +sys_mutex_t lock_tcpip_core; +#endif /* LWIP_TCPIP_CORE_LOCKING */ + +static void tcpip_thread_handle_msg(struct tcpip_msg *msg); + +#if !LWIP_TIMERS +/* wait for a message with timers disabled (e.g. pass a timer-check trigger into tcpip_thread) */ +#define TCPIP_MBOX_FETCH(mbox, msg) sys_mbox_fetch(mbox, msg) +#else /* !LWIP_TIMERS */ +/* wait for a message, timeouts are processed while waiting */ +#define TCPIP_MBOX_FETCH(mbox, msg) tcpip_timeouts_mbox_fetch(mbox, msg) +/** + * Wait (forever) for a message to arrive in an mbox. + * While waiting, timeouts are processed. + * + * @param mbox the mbox to fetch the message from + * @param msg the place to store the message + */ +static void +tcpip_timeouts_mbox_fetch(sys_mbox_t *mbox, void **msg) +{ + u32_t sleeptime, res; + +again: + LWIP_ASSERT_CORE_LOCKED(); + + sleeptime = sys_timeouts_sleeptime(); + if (sleeptime == SYS_TIMEOUTS_SLEEPTIME_INFINITE) { + UNLOCK_TCPIP_CORE(); + sys_arch_mbox_fetch(mbox, msg, 0); + LOCK_TCPIP_CORE(); + return; + } else if (sleeptime == 0) { + sys_check_timeouts(); + /* We try again to fetch a message from the mbox. */ + goto again; + } + + UNLOCK_TCPIP_CORE(); + res = sys_arch_mbox_fetch(mbox, msg, sleeptime); + LOCK_TCPIP_CORE(); + if (res == SYS_ARCH_TIMEOUT) { + /* If a SYS_ARCH_TIMEOUT value is returned, a timeout occurred + before a message could be fetched. */ + sys_check_timeouts(); + /* We try again to fetch a message from the mbox. */ + goto again; + } +} +#endif /* !LWIP_TIMERS */ + +/** + * The main lwIP thread. This thread has exclusive access to lwIP core functions + * (unless access to them is not locked). Other threads communicate with this + * thread using message boxes. + * + * It also starts all the timers to make sure they are running in the right + * thread context. + * + * @param arg unused argument + */ + +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +SemaphoreHandle_t ipSemaphore = NULL; + +static void +tcpip_thread(void *arg) +{ + struct tcpip_msg *msg; + LWIP_UNUSED_ARG(arg); + + ipSemaphore = xSemaphoreCreateMutex(); + xSemaphoreGive( ipSemaphore ); + LWIP_MARK_TCPIP_THREAD(); + + LOCK_TCPIP_CORE(); + if (tcpip_init_done != NULL) { + tcpip_init_done(tcpip_init_done_arg); + } + + while (1) { /* MAIN Loop */ + LWIP_TCPIP_THREAD_ALIVE(); + /* wait for a message, timeouts are processed while waiting */ + TCPIP_MBOX_FETCH(&tcpip_mbox, (void **)&msg); + if (msg == NULL) { + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: invalid message: NULL\n")); + LWIP_ASSERT("tcpip_thread: invalid message", 0); + continue; + } + if( xSemaphoreTake( ipSemaphore, ( TickType_t ) 0 ) ) { + tcpip_thread_handle_msg(msg); + xSemaphoreGive( ipSemaphore ); + } + } +} + +/* Handle a single tcpip_msg + * This is in its own function for access by tests only. + */ +static void +tcpip_thread_handle_msg(struct tcpip_msg *msg) +{ + switch (msg->type) { +#if !LWIP_TCPIP_CORE_LOCKING + case TCPIP_MSG_API: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg)); + msg->msg.api_msg.function(msg->msg.api_msg.msg); + break; + case TCPIP_MSG_API_CALL: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API CALL message %p\n", (void *)msg)); + msg->msg.api_call.arg->err = msg->msg.api_call.function(msg->msg.api_call.arg); + sys_sem_signal(msg->msg.api_call.sem); + break; +#endif /* !LWIP_TCPIP_CORE_LOCKING */ + +#if !LWIP_TCPIP_CORE_LOCKING_INPUT + case TCPIP_MSG_INPKT: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg)); + if (msg->msg.inp.input_fn(msg->msg.inp.p, msg->msg.inp.netif) != ERR_OK) { + pbuf_free(msg->msg.inp.p); + } + memp_free(MEMP_TCPIP_MSG_INPKT, msg); + break; +#endif /* !LWIP_TCPIP_CORE_LOCKING_INPUT */ + +#if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS + case TCPIP_MSG_TIMEOUT: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: TIMEOUT %p\n", (void *)msg)); + sys_timeout(msg->msg.tmo.msecs, msg->msg.tmo.h, msg->msg.tmo.arg); + memp_free(MEMP_TCPIP_MSG_API, msg); + break; + case TCPIP_MSG_UNTIMEOUT: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: UNTIMEOUT %p\n", (void *)msg)); + sys_untimeout(msg->msg.tmo.h, msg->msg.tmo.arg); + memp_free(MEMP_TCPIP_MSG_API, msg); + break; +#endif /* LWIP_TCPIP_TIMEOUT && LWIP_TIMERS */ + + case TCPIP_MSG_CALLBACK: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg)); + msg->msg.cb.function(msg->msg.cb.ctx); + memp_free(MEMP_TCPIP_MSG_API, msg); + break; + + case TCPIP_MSG_CALLBACK_STATIC: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK_STATIC %p\n", (void *)msg)); + msg->msg.cb.function(msg->msg.cb.ctx); + break; + + default: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: invalid message: %d\n", msg->type)); + LWIP_ASSERT("tcpip_thread: invalid message", 0); + break; + } +} + +#ifdef TCPIP_THREAD_TEST +/** Work on queued items in single-threaded test mode */ +int +tcpip_thread_poll_one(void) +{ + int ret = 0; + struct tcpip_msg *msg; + + if (sys_arch_mbox_tryfetch(&tcpip_mbox, (void **)&msg) != SYS_ARCH_TIMEOUT) { + LOCK_TCPIP_CORE(); + if (msg != NULL) { + tcpip_thread_handle_msg(msg); + ret = 1; + } + UNLOCK_TCPIP_CORE(); + } + return ret; +} +#endif + +/** + * Pass a received packet to tcpip_thread for input processing + * + * @param p the received packet + * @param inp the network interface on which the packet was received + * @param input_fn input function to call + */ +err_t +tcpip_inpkt(struct pbuf *p, struct netif *inp, netif_input_fn input_fn) +{ +#if LWIP_TCPIP_CORE_LOCKING_INPUT + err_t ret; + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_inpkt: PACKET %p/%p\n", (void *)p, (void *)inp)); + LOCK_TCPIP_CORE(); + ret = input_fn(p, inp); + UNLOCK_TCPIP_CORE(); + return ret; +#else /* LWIP_TCPIP_CORE_LOCKING_INPUT */ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_INPKT); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_INPKT; + msg->msg.inp.p = p; + msg->msg.inp.netif = inp; + msg->msg.inp.input_fn = input_fn; + if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) { + memp_free(MEMP_TCPIP_MSG_INPKT, msg); + return ERR_MEM; + } + return ERR_OK; +#endif /* LWIP_TCPIP_CORE_LOCKING_INPUT */ +} + +/** + * @ingroup lwip_os + * Pass a received packet to tcpip_thread for input processing with + * ethernet_input or ip_input. Don't call directly, pass to netif_add() + * and call netif->input(). + * + * @param p the received packet, p->payload pointing to the Ethernet header or + * to an IP header (if inp doesn't have NETIF_FLAG_ETHARP or + * NETIF_FLAG_ETHERNET flags) + * @param inp the network interface on which the packet was received + */ +err_t +tcpip_input(struct pbuf *p, struct netif *inp) +{ +#if LWIP_ETHERNET + if (inp->flags & (NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET)) { + return tcpip_inpkt(p, inp, ethernet_input); + } else +#endif /* LWIP_ETHERNET */ + return tcpip_inpkt(p, inp, ip_input); +} + +/** + * @ingroup lwip_os + * Call a specific function in the thread context of + * tcpip_thread for easy access synchronization. + * A function called in that way may access lwIP core code + * without fearing concurrent access. + * Blocks until the request is posted. + * Must not be called from interrupt context! + * + * @param function the function to call + * @param ctx parameter passed to f + * @return ERR_OK if the function was called, another err_t if not + * + * @see tcpip_try_callback + */ +err_t +tcpip_callback(tcpip_callback_fn function, void *ctx) +{ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_CALLBACK; + msg->msg.cb.function = function; + msg->msg.cb.ctx = ctx; + + sys_mbox_post(&tcpip_mbox, msg); + return ERR_OK; +} + +/** + * @ingroup lwip_os + * Call a specific function in the thread context of + * tcpip_thread for easy access synchronization. + * A function called in that way may access lwIP core code + * without fearing concurrent access. + * Does NOT block when the request cannot be posted because the + * tcpip_mbox is full, but returns ERR_MEM instead. + * Can be called from interrupt context. + * + * @param function the function to call + * @param ctx parameter passed to f + * @return ERR_OK if the function was called, another err_t if not + * + * @see tcpip_callback + */ +err_t +tcpip_try_callback(tcpip_callback_fn function, void *ctx) +{ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_CALLBACK; + msg->msg.cb.function = function; + msg->msg.cb.ctx = ctx; + + if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) { + memp_free(MEMP_TCPIP_MSG_API, msg); + return ERR_MEM; + } + return ERR_OK; +} + +#if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS +/** + * call sys_timeout in tcpip_thread + * + * @param msecs time in milliseconds for timeout + * @param h function to be called on timeout + * @param arg argument to pass to timeout function h + * @return ERR_MEM on memory error, ERR_OK otherwise + */ +err_t +tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg) +{ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_TIMEOUT; + msg->msg.tmo.msecs = msecs; + msg->msg.tmo.h = h; + msg->msg.tmo.arg = arg; + sys_mbox_post(&tcpip_mbox, msg); + return ERR_OK; +} + +/** + * call sys_untimeout in tcpip_thread + * + * @param h function to be called on timeout + * @param arg argument to pass to timeout function h + * @return ERR_MEM on memory error, ERR_OK otherwise + */ +err_t +tcpip_untimeout(sys_timeout_handler h, void *arg) +{ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_UNTIMEOUT; + msg->msg.tmo.h = h; + msg->msg.tmo.arg = arg; + sys_mbox_post(&tcpip_mbox, msg); + return ERR_OK; +} +#endif /* LWIP_TCPIP_TIMEOUT && LWIP_TIMERS */ + + +/** + * Sends a message to TCPIP thread to call a function. Caller thread blocks on + * on a provided semaphore, which ist NOT automatically signalled by TCPIP thread, + * this has to be done by the user. + * It is recommended to use LWIP_TCPIP_CORE_LOCKING since this is the way + * with least runtime overhead. + * + * @param fn function to be called from TCPIP thread + * @param apimsg argument to API function + * @param sem semaphore to wait on + * @return ERR_OK if the function was called, another err_t if not + */ +err_t +tcpip_send_msg_wait_sem(tcpip_callback_fn fn, void *apimsg, sys_sem_t *sem) +{ +#if LWIP_TCPIP_CORE_LOCKING + LWIP_UNUSED_ARG(sem); + LOCK_TCPIP_CORE(); + fn(apimsg); + UNLOCK_TCPIP_CORE(); + return ERR_OK; +#else /* LWIP_TCPIP_CORE_LOCKING */ + TCPIP_MSG_VAR_DECLARE(msg); + + LWIP_ASSERT("semaphore not initialized", sys_sem_valid(sem)); + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + TCPIP_MSG_VAR_ALLOC(msg); + TCPIP_MSG_VAR_REF(msg).type = TCPIP_MSG_API; + TCPIP_MSG_VAR_REF(msg).msg.api_msg.function = fn; + TCPIP_MSG_VAR_REF(msg).msg.api_msg.msg = apimsg; + sys_mbox_post(&tcpip_mbox, &TCPIP_MSG_VAR_REF(msg)); + sys_arch_sem_wait(sem, 0); + TCPIP_MSG_VAR_FREE(msg); + return ERR_OK; +#endif /* LWIP_TCPIP_CORE_LOCKING */ +} + +/** + * Synchronously calls function in TCPIP thread and waits for its completion. + * It is recommended to use LWIP_TCPIP_CORE_LOCKING (preferred) or + * LWIP_NETCONN_SEM_PER_THREAD. + * If not, a semaphore is created and destroyed on every call which is usually + * an expensive/slow operation. + * @param fn Function to call + * @param call Call parameters + * @return Return value from tcpip_api_call_fn + */ +err_t +tcpip_api_call(tcpip_api_call_fn fn, struct tcpip_api_call_data *call) +{ +#if LWIP_TCPIP_CORE_LOCKING + err_t err; + LOCK_TCPIP_CORE(); + err = fn(call); + UNLOCK_TCPIP_CORE(); + return err; +#else /* LWIP_TCPIP_CORE_LOCKING */ + TCPIP_MSG_VAR_DECLARE(msg); + +#if !LWIP_NETCONN_SEM_PER_THREAD + err_t err = sys_sem_new(&call->sem, 0); + if (err != ERR_OK) { + return err; + } +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + TCPIP_MSG_VAR_ALLOC(msg); + TCPIP_MSG_VAR_REF(msg).type = TCPIP_MSG_API_CALL; + TCPIP_MSG_VAR_REF(msg).msg.api_call.arg = call; + TCPIP_MSG_VAR_REF(msg).msg.api_call.function = fn; +#if LWIP_NETCONN_SEM_PER_THREAD + TCPIP_MSG_VAR_REF(msg).msg.api_call.sem = LWIP_NETCONN_THREAD_SEM_GET(); +#else /* LWIP_NETCONN_SEM_PER_THREAD */ + TCPIP_MSG_VAR_REF(msg).msg.api_call.sem = &call->sem; +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + sys_mbox_post(&tcpip_mbox, &TCPIP_MSG_VAR_REF(msg)); + sys_arch_sem_wait(TCPIP_MSG_VAR_REF(msg).msg.api_call.sem, 0); + TCPIP_MSG_VAR_FREE(msg); + +#if !LWIP_NETCONN_SEM_PER_THREAD + sys_sem_free(&call->sem); +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + + return call->err; +#endif /* LWIP_TCPIP_CORE_LOCKING */ +} + +/** + * @ingroup lwip_os + * Allocate a structure for a static callback message and initialize it. + * The message has a special type such that lwIP never frees it. + * This is intended to be used to send "static" messages from interrupt context, + * e.g. the message is allocated once and posted several times from an IRQ + * using tcpip_callbackmsg_trycallback(). + * Example usage: Trigger execution of an ethernet IRQ DPC routine in lwIP thread context. + * + * @param function the function to call + * @param ctx parameter passed to function + * @return a struct pointer to pass to tcpip_callbackmsg_trycallback(). + * + * @see tcpip_callbackmsg_trycallback() + * @see tcpip_callbackmsg_delete() + */ +struct tcpip_callback_msg * +tcpip_callbackmsg_new(tcpip_callback_fn function, void *ctx) +{ + struct tcpip_msg *msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return NULL; + } + msg->type = TCPIP_MSG_CALLBACK_STATIC; + msg->msg.cb.function = function; + msg->msg.cb.ctx = ctx; + return (struct tcpip_callback_msg *)msg; +} + +/** + * @ingroup lwip_os + * Free a callback message allocated by tcpip_callbackmsg_new(). + * + * @param msg the message to free + * + * @see tcpip_callbackmsg_new() + */ +void +tcpip_callbackmsg_delete(struct tcpip_callback_msg *msg) +{ + memp_free(MEMP_TCPIP_MSG_API, msg); +} + +/** + * @ingroup lwip_os + * Try to post a callback-message to the tcpip_thread tcpip_mbox. + * + * @param msg pointer to the message to post + * @return sys_mbox_trypost() return code + * + * @see tcpip_callbackmsg_new() + */ +err_t +tcpip_callbackmsg_trycallback(struct tcpip_callback_msg *msg) +{ + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + return sys_mbox_trypost(&tcpip_mbox, msg); +} + +/** + * @ingroup lwip_os + * Try to post a callback-message to the tcpip_thread mbox. + * Same as @ref tcpip_callbackmsg_trycallback but calls sys_mbox_trypost_fromisr(), + * mainly to help FreeRTOS, where calls differ between task level and ISR level. + * + * @param msg pointer to the message to post + * @return sys_mbox_trypost_fromisr() return code (without change, so this + * knowledge can be used to e.g. propagate "bool needs_scheduling") + * + * @see tcpip_callbackmsg_new() + */ +err_t +tcpip_callbackmsg_trycallback_fromisr(struct tcpip_callback_msg *msg) +{ + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + return sys_mbox_trypost_fromisr(&tcpip_mbox, msg); +} + +/** + * @ingroup lwip_os + * Initialize this module: + * - initialize all sub modules + * - start the tcpip_thread + * + * @param initfunc a function to call when tcpip_thread is running and finished initializing + * @param arg argument to pass to initfunc + */ +void +tcpip_init(tcpip_init_done_fn initfunc, void *arg) +{ + lwip_init(); + + tcpip_init_done = initfunc; + tcpip_init_done_arg = arg; + if (sys_mbox_new(&tcpip_mbox, TCPIP_MBOX_SIZE) != ERR_OK) { + LWIP_ASSERT("failed to create tcpip_thread mbox", 0); + } +#if LWIP_TCPIP_CORE_LOCKING + if (sys_mutex_new(&lock_tcpip_core) != ERR_OK) { + LWIP_ASSERT("failed to create lock_tcpip_core", 0); + } +#endif /* LWIP_TCPIP_CORE_LOCKING */ + + sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO); +} + +/** + * Simple callback function used with tcpip_callback to free a pbuf + * (pbuf_free has a wrong signature for tcpip_callback) + * + * @param p The pbuf (chain) to be dereferenced. + */ +static void +pbuf_free_int(void *p) +{ + struct pbuf *q = (struct pbuf *)p; + pbuf_free(q); +} + +/** + * A simple wrapper function that allows you to free a pbuf from interrupt context. + * + * @param p The pbuf (chain) to be dereferenced. + * @return ERR_OK if callback could be enqueued, an err_t if not + */ +err_t +pbuf_free_callback(struct pbuf *p) +{ + return tcpip_try_callback(pbuf_free_int, p); +} + +/** + * A simple wrapper function that allows you to free heap memory from + * interrupt context. + * + * @param m the heap memory to free + * @return ERR_OK if callback could be enqueued, an err_t if not + */ +err_t +mem_free_callback(void *m) +{ + return tcpip_try_callback(mem_free, m); +} + +#endif /* !NO_SYS */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/def.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/def.c new file mode 100644 index 000000000..004a5288f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/def.c @@ -0,0 +1,240 @@ +/** + * @file + * Common functions used throughout the stack. + * + * These are reference implementations of the byte swapping functions. + * Again with the aim of being simple, correct and fully portable. + * Byte swapping is the second thing you would want to optimize. You will + * need to port it to your architecture and in your cc.h: + * + * \#define lwip_htons(x) your_htons + * \#define lwip_htonl(x) your_htonl + * + * Note lwip_ntohs() and lwip_ntohl() are merely references to the htonx counterparts. + * + * If you \#define them to htons() and htonl(), you should + * \#define LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS to prevent lwIP from + * defining htonx/ntohx compatibility macros. + + * @defgroup sys_nonstandard Non-standard functions + * @ingroup sys_layer + * lwIP provides default implementations for non-standard functions. + * These can be mapped to OS functions to reduce code footprint if desired. + * All defines related to this section must not be placed in lwipopts.h, + * but in arch/cc.h! + * These options cannot be \#defined in lwipopts.h since they are not options + * of lwIP itself, but options of the lwIP port to your system. + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ + +#include "lwip/opt.h" +#include "lwip/def.h" + +#include + +#if BYTE_ORDER == LITTLE_ENDIAN + +#if !defined(lwip_htons) +/** + * Convert an u16_t from host- to network byte order. + * + * @param n u16_t in host byte order + * @return n in network byte order + */ +u16_t +lwip_htons(u16_t n) +{ + return PP_HTONS(n); +} +#endif /* lwip_htons */ + +#if !defined(lwip_htonl) +/** + * Convert an u32_t from host- to network byte order. + * + * @param n u32_t in host byte order + * @return n in network byte order + */ +u32_t +lwip_htonl(u32_t n) +{ + return PP_HTONL(n); +} +#endif /* lwip_htonl */ + +#endif /* BYTE_ORDER == LITTLE_ENDIAN */ + +#ifndef lwip_strnstr +/** + * @ingroup sys_nonstandard + * lwIP default implementation for strnstr() non-standard function. + * This can be \#defined to strnstr() depending on your platform port. + */ +char * +lwip_strnstr(const char *buffer, const char *token, size_t n) +{ + const char *p; + size_t tokenlen = strlen(token); + if (tokenlen == 0) { + return LWIP_CONST_CAST(char *, buffer); + } + for (p = buffer; *p && (p + tokenlen <= buffer + n); p++) { + if ((*p == *token) && (strncmp(p, token, tokenlen) == 0)) { + return LWIP_CONST_CAST(char *, p); + } + } + return NULL; +} +#endif + +#ifndef lwip_stricmp +/** + * @ingroup sys_nonstandard + * lwIP default implementation for stricmp() non-standard function. + * This can be \#defined to stricmp() depending on your platform port. + */ +int +lwip_stricmp(const char *str1, const char *str2) +{ + char c1, c2; + + do { + c1 = *str1++; + c2 = *str2++; + if (c1 != c2) { + char c1_upc = c1 | 0x20; + if ((c1_upc >= 'a') && (c1_upc <= 'z')) { + /* characters are not equal an one is in the alphabet range: + downcase both chars and check again */ + char c2_upc = c2 | 0x20; + if (c1_upc != c2_upc) { + /* still not equal */ + /* don't care for < or > */ + return 1; + } + } else { + /* characters are not equal but none is in the alphabet range */ + return 1; + } + } + } while (c1 != 0); + return 0; +} +#endif + +#ifndef lwip_strnicmp +/** + * @ingroup sys_nonstandard + * lwIP default implementation for strnicmp() non-standard function. + * This can be \#defined to strnicmp() depending on your platform port. + */ +int +lwip_strnicmp(const char *str1, const char *str2, size_t len) +{ + char c1, c2; + + do { + c1 = *str1++; + c2 = *str2++; + if (c1 != c2) { + char c1_upc = c1 | 0x20; + if ((c1_upc >= 'a') && (c1_upc <= 'z')) { + /* characters are not equal an one is in the alphabet range: + downcase both chars and check again */ + char c2_upc = c2 | 0x20; + if (c1_upc != c2_upc) { + /* still not equal */ + /* don't care for < or > */ + return 1; + } + } else { + /* characters are not equal but none is in the alphabet range */ + return 1; + } + } + len--; + } while ((len != 0) && (c1 != 0)); + return 0; +} +#endif + +#ifndef lwip_itoa +/** + * @ingroup sys_nonstandard + * lwIP default implementation for itoa() non-standard function. + * This can be \#defined to itoa() or snprintf(result, bufsize, "%d", number) depending on your platform port. + */ +void +lwip_itoa(char *result, size_t bufsize, int number) +{ + char *res = result; + char *tmp = result + bufsize - 1; + int n = (number >= 0) ? number : -number; + + /* handle invalid bufsize */ + if (bufsize < 2) { + if (bufsize == 1) { + *result = 0; + } + return; + } + + /* First, add sign */ + if (number < 0) { + *res++ = '-'; + } + /* Then create the string from the end and stop if buffer full, + and ensure output string is zero terminated */ + *tmp = 0; + while ((n != 0) && (tmp > res)) { + char val = (char)('0' + (n % 10)); + tmp--; + *tmp = val; + n = n / 10; + } + if (n) { + /* buffer is too small */ + *result = 0; + return; + } + if (*tmp == 0) { + /* Nothing added? */ + *res++ = '0'; + *res++ = 0; + return; + } + /* move from temporary buffer to output buffer (sign is not moved) */ + memmove(res, tmp, (size_t)((result + bufsize) - tmp)); +} +#endif diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/inet_chksum.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/inet_chksum.c new file mode 100644 index 000000000..25255b907 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/inet_chksum.c @@ -0,0 +1,608 @@ +/** + * @file + * Internet checksum functions.\n + * + * These are some reference implementations of the checksum algorithm, with the + * aim of being simple, correct and fully portable. Checksumming is the + * first thing you would want to optimize for your platform. If you create + * your own version, link it in and in your cc.h put: + * + * \#define LWIP_CHKSUM your_checksum_routine + * + * Or you can select from the implementations below by defining + * LWIP_CHKSUM_ALGORITHM to 1, 2 or 3. + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#include "lwip/inet_chksum.h" +#include "lwip/def.h" +#include "lwip/ip_addr.h" + +#include + +#ifndef LWIP_CHKSUM +# define LWIP_CHKSUM lwip_standard_chksum +# ifndef LWIP_CHKSUM_ALGORITHM +# define LWIP_CHKSUM_ALGORITHM 2 +# endif +u16_t lwip_standard_chksum(const void *dataptr, int len); +#endif +/* If none set: */ +#ifndef LWIP_CHKSUM_ALGORITHM +# define LWIP_CHKSUM_ALGORITHM 0 +#endif + +#if (LWIP_CHKSUM_ALGORITHM == 1) /* Version #1 */ +/** + * lwip checksum + * + * @param dataptr points to start of data to be summed at any boundary + * @param len length of data to be summed + * @return host order (!) lwip checksum (non-inverted Internet sum) + * + * @note accumulator size limits summable length to 64k + * @note host endianess is irrelevant (p3 RFC1071) + */ +u16_t +lwip_standard_chksum(const void *dataptr, int len) +{ + u32_t acc; + u16_t src; + const u8_t *octetptr; + + acc = 0; + /* dataptr may be at odd or even addresses */ + octetptr = (const u8_t *)dataptr; + while (len > 1) { + /* declare first octet as most significant + thus assume network order, ignoring host order */ + src = (*octetptr) << 8; + octetptr++; + /* declare second octet as least significant */ + src |= (*octetptr); + octetptr++; + acc += src; + len -= 2; + } + if (len > 0) { + /* accumulate remaining octet */ + src = (*octetptr) << 8; + acc += src; + } + /* add deferred carry bits */ + acc = (acc >> 16) + (acc & 0x0000ffffUL); + if ((acc & 0xffff0000UL) != 0) { + acc = (acc >> 16) + (acc & 0x0000ffffUL); + } + /* This maybe a little confusing: reorder sum using lwip_htons() + instead of lwip_ntohs() since it has a little less call overhead. + The caller must invert bits for Internet sum ! */ + return lwip_htons((u16_t)acc); +} +#endif + +#if (LWIP_CHKSUM_ALGORITHM == 2) /* Alternative version #2 */ +/* + * Curt McDowell + * Broadcom Corp. + * csm@broadcom.com + * + * IP checksum two bytes at a time with support for + * unaligned buffer. + * Works for len up to and including 0x20000. + * by Curt McDowell, Broadcom Corp. 12/08/2005 + * + * @param dataptr points to start of data to be summed at any boundary + * @param len length of data to be summed + * @return host order (!) lwip checksum (non-inverted Internet sum) + */ +u16_t +lwip_standard_chksum(const void *dataptr, int len) +{ + const u8_t *pb = (const u8_t *)dataptr; + const u16_t *ps; + u16_t t = 0; + u32_t sum = 0; + int odd = ((mem_ptr_t)pb & 1); + + /* Get aligned to u16_t */ + if (odd && len > 0) { + ((u8_t *)&t)[1] = *pb++; + len--; + } + + /* Add the bulk of the data */ + ps = (const u16_t *)(const void *)pb; + while (len > 1) { + sum += *ps++; + len -= 2; + } + + /* Consume left-over byte, if any */ + if (len > 0) { + ((u8_t *)&t)[0] = *(const u8_t *)ps; + } + + /* Add end bytes */ + sum += t; + + /* Fold 32-bit sum to 16 bits + calling this twice is probably faster than if statements... */ + sum = FOLD_U32T(sum); + sum = FOLD_U32T(sum); + + /* Swap if alignment was odd */ + if (odd) { + sum = SWAP_BYTES_IN_WORD(sum); + } + + return (u16_t)sum; +} +#endif + +#if (LWIP_CHKSUM_ALGORITHM == 3) /* Alternative version #3 */ +/** + * An optimized checksum routine. Basically, it uses loop-unrolling on + * the checksum loop, treating the head and tail bytes specially, whereas + * the inner loop acts on 8 bytes at a time. + * + * @arg start of buffer to be checksummed. May be an odd byte address. + * @len number of bytes in the buffer to be checksummed. + * @return host order (!) lwip checksum (non-inverted Internet sum) + * + * by Curt McDowell, Broadcom Corp. December 8th, 2005 + */ +u16_t +lwip_standard_chksum(const void *dataptr, int len) +{ + const u8_t *pb = (const u8_t *)dataptr; + const u16_t *ps; + u16_t t = 0; + const u32_t *pl; + u32_t sum = 0, tmp; + /* starts at odd byte address? */ + int odd = ((mem_ptr_t)pb & 1); + + if (odd && len > 0) { + ((u8_t *)&t)[1] = *pb++; + len--; + } + + ps = (const u16_t *)(const void *)pb; + + if (((mem_ptr_t)ps & 3) && len > 1) { + sum += *ps++; + len -= 2; + } + + pl = (const u32_t *)(const void *)ps; + + while (len > 7) { + tmp = sum + *pl++; /* ping */ + if (tmp < sum) { + tmp++; /* add back carry */ + } + + sum = tmp + *pl++; /* pong */ + if (sum < tmp) { + sum++; /* add back carry */ + } + + len -= 8; + } + + /* make room in upper bits */ + sum = FOLD_U32T(sum); + + ps = (const u16_t *)pl; + + /* 16-bit aligned word remaining? */ + while (len > 1) { + sum += *ps++; + len -= 2; + } + + /* dangling tail byte remaining? */ + if (len > 0) { /* include odd byte */ + ((u8_t *)&t)[0] = *(const u8_t *)ps; + } + + sum += t; /* add end bytes */ + + /* Fold 32-bit sum to 16 bits + calling this twice is probably faster than if statements... */ + sum = FOLD_U32T(sum); + sum = FOLD_U32T(sum); + + if (odd) { + sum = SWAP_BYTES_IN_WORD(sum); + } + + return (u16_t)sum; +} +#endif + +/** Parts of the pseudo checksum which are common to IPv4 and IPv6 */ +static u16_t +inet_cksum_pseudo_base(struct pbuf *p, u8_t proto, u16_t proto_len, u32_t acc) +{ + struct pbuf *q; + int swapped = 0; + + /* iterate through all pbuf in chain */ + for (q = p; q != NULL; q = q->next) { + LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): checksumming pbuf %p (has next %p) \n", + (void *)q, (void *)q->next)); + acc += LWIP_CHKSUM(q->payload, q->len); + /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/ + /* just executing this next line is probably faster that the if statement needed + to check whether we really need to execute it, and does no harm */ + acc = FOLD_U32T(acc); + if (q->len % 2 != 0) { + swapped = !swapped; + acc = SWAP_BYTES_IN_WORD(acc); + } + /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): wrapped lwip_chksum()=%"X32_F" \n", acc));*/ + } + + if (swapped) { + acc = SWAP_BYTES_IN_WORD(acc); + } + + acc += (u32_t)lwip_htons((u16_t)proto); + acc += (u32_t)lwip_htons(proto_len); + + /* Fold 32-bit sum to 16 bits + calling this twice is probably faster than if statements... */ + acc = FOLD_U32T(acc); + acc = FOLD_U32T(acc); + LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc)); + return (u16_t)~(acc & 0xffffUL); +} + +#if LWIP_IPV4 +/* inet_chksum_pseudo: + * + * Calculates the IPv4 pseudo Internet checksum used by TCP and UDP for a pbuf chain. + * IP addresses are expected to be in network byte order. + * + * @param p chain of pbufs over that a checksum should be calculated (ip data part) + * @param src source ip address (used for checksum of pseudo header) + * @param dst destination ip address (used for checksum of pseudo header) + * @param proto ip protocol (used for checksum of pseudo header) + * @param proto_len length of the ip data part (used for checksum of pseudo header) + * @return checksum (as u16_t) to be saved directly in the protocol header + */ +u16_t +inet_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len, + const ip4_addr_t *src, const ip4_addr_t *dest) +{ + u32_t acc; + u32_t addr; + + addr = ip4_addr_get_u32(src); + acc = (addr & 0xffffUL); + acc = (u32_t)(acc + ((addr >> 16) & 0xffffUL)); + addr = ip4_addr_get_u32(dest); + acc = (u32_t)(acc + (addr & 0xffffUL)); + acc = (u32_t)(acc + ((addr >> 16) & 0xffffUL)); + /* fold down to 16 bits */ + acc = FOLD_U32T(acc); + acc = FOLD_U32T(acc); + + return inet_cksum_pseudo_base(p, proto, proto_len, acc); +} +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV6 +/** + * Calculates the checksum with IPv6 pseudo header used by TCP and UDP for a pbuf chain. + * IPv6 addresses are expected to be in network byte order. + * + * @param p chain of pbufs over that a checksum should be calculated (ip data part) + * @param proto ipv6 protocol/next header (used for checksum of pseudo header) + * @param proto_len length of the ipv6 payload (used for checksum of pseudo header) + * @param src source ipv6 address (used for checksum of pseudo header) + * @param dest destination ipv6 address (used for checksum of pseudo header) + * @return checksum (as u16_t) to be saved directly in the protocol header + */ +u16_t +ip6_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len, + const ip6_addr_t *src, const ip6_addr_t *dest) +{ + u32_t acc = 0; + u32_t addr; + u8_t addr_part; + + for (addr_part = 0; addr_part < 4; addr_part++) { + addr = src->addr[addr_part]; + acc = (u32_t)(acc + (addr & 0xffffUL)); + acc = (u32_t)(acc + ((addr >> 16) & 0xffffUL)); + addr = dest->addr[addr_part]; + acc = (u32_t)(acc + (addr & 0xffffUL)); + acc = (u32_t)(acc + ((addr >> 16) & 0xffffUL)); + } + /* fold down to 16 bits */ + acc = FOLD_U32T(acc); + acc = FOLD_U32T(acc); + + return inet_cksum_pseudo_base(p, proto, proto_len, acc); +} +#endif /* LWIP_IPV6 */ + +/* ip_chksum_pseudo: + * + * Calculates the IPv4 or IPv6 pseudo Internet checksum used by TCP and UDP for a pbuf chain. + * IP addresses are expected to be in network byte order. + * + * @param p chain of pbufs over that a checksum should be calculated (ip data part) + * @param src source ip address (used for checksum of pseudo header) + * @param dst destination ip address (used for checksum of pseudo header) + * @param proto ip protocol (used for checksum of pseudo header) + * @param proto_len length of the ip data part (used for checksum of pseudo header) + * @return checksum (as u16_t) to be saved directly in the protocol header + */ +u16_t +ip_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len, + const ip_addr_t *src, const ip_addr_t *dest) +{ +#if LWIP_IPV6 + if (IP_IS_V6(dest)) { + return ip6_chksum_pseudo(p, proto, proto_len, ip_2_ip6(src), ip_2_ip6(dest)); + } +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 && LWIP_IPV6 + else +#endif /* LWIP_IPV4 && LWIP_IPV6 */ +#if LWIP_IPV4 + { + return inet_chksum_pseudo(p, proto, proto_len, ip_2_ip4(src), ip_2_ip4(dest)); + } +#endif /* LWIP_IPV4 */ +} + +/** Parts of the pseudo checksum which are common to IPv4 and IPv6 */ +static u16_t +inet_cksum_pseudo_partial_base(struct pbuf *p, u8_t proto, u16_t proto_len, + u16_t chksum_len, u32_t acc) +{ + struct pbuf *q; + int swapped = 0; + u16_t chklen; + + /* iterate through all pbuf in chain */ + for (q = p; (q != NULL) && (chksum_len > 0); q = q->next) { + LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): checksumming pbuf %p (has next %p) \n", + (void *)q, (void *)q->next)); + chklen = q->len; + if (chklen > chksum_len) { + chklen = chksum_len; + } + acc += LWIP_CHKSUM(q->payload, chklen); + chksum_len = (u16_t)(chksum_len - chklen); + LWIP_ASSERT("delete me", chksum_len < 0x7fff); + /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/ + /* fold the upper bit down */ + acc = FOLD_U32T(acc); + if (q->len % 2 != 0) { + swapped = !swapped; + acc = SWAP_BYTES_IN_WORD(acc); + } + /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): wrapped lwip_chksum()=%"X32_F" \n", acc));*/ + } + + if (swapped) { + acc = SWAP_BYTES_IN_WORD(acc); + } + + acc += (u32_t)lwip_htons((u16_t)proto); + acc += (u32_t)lwip_htons(proto_len); + + /* Fold 32-bit sum to 16 bits + calling this twice is probably faster than if statements... */ + acc = FOLD_U32T(acc); + acc = FOLD_U32T(acc); + LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc)); + return (u16_t)~(acc & 0xffffUL); +} + +#if LWIP_IPV4 +/* inet_chksum_pseudo_partial: + * + * Calculates the IPv4 pseudo Internet checksum used by TCP and UDP for a pbuf chain. + * IP addresses are expected to be in network byte order. + * + * @param p chain of pbufs over that a checksum should be calculated (ip data part) + * @param src source ip address (used for checksum of pseudo header) + * @param dst destination ip address (used for checksum of pseudo header) + * @param proto ip protocol (used for checksum of pseudo header) + * @param proto_len length of the ip data part (used for checksum of pseudo header) + * @return checksum (as u16_t) to be saved directly in the protocol header + */ +u16_t +inet_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len, + u16_t chksum_len, const ip4_addr_t *src, const ip4_addr_t *dest) +{ + u32_t acc; + u32_t addr; + + addr = ip4_addr_get_u32(src); + acc = (addr & 0xffffUL); + acc = (u32_t)(acc + ((addr >> 16) & 0xffffUL)); + addr = ip4_addr_get_u32(dest); + acc = (u32_t)(acc + (addr & 0xffffUL)); + acc = (u32_t)(acc + ((addr >> 16) & 0xffffUL)); + /* fold down to 16 bits */ + acc = FOLD_U32T(acc); + acc = FOLD_U32T(acc); + + return inet_cksum_pseudo_partial_base(p, proto, proto_len, chksum_len, acc); +} +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV6 +/** + * Calculates the checksum with IPv6 pseudo header used by TCP and UDP for a pbuf chain. + * IPv6 addresses are expected to be in network byte order. Will only compute for a + * portion of the payload. + * + * @param p chain of pbufs over that a checksum should be calculated (ip data part) + * @param proto ipv6 protocol/next header (used for checksum of pseudo header) + * @param proto_len length of the ipv6 payload (used for checksum of pseudo header) + * @param chksum_len number of payload bytes used to compute chksum + * @param src source ipv6 address (used for checksum of pseudo header) + * @param dest destination ipv6 address (used for checksum of pseudo header) + * @return checksum (as u16_t) to be saved directly in the protocol header + */ +u16_t +ip6_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len, + u16_t chksum_len, const ip6_addr_t *src, const ip6_addr_t *dest) +{ + u32_t acc = 0; + u32_t addr; + u8_t addr_part; + + for (addr_part = 0; addr_part < 4; addr_part++) { + addr = src->addr[addr_part]; + acc = (u32_t)(acc + (addr & 0xffffUL)); + acc = (u32_t)(acc + ((addr >> 16) & 0xffffUL)); + addr = dest->addr[addr_part]; + acc = (u32_t)(acc + (addr & 0xffffUL)); + acc = (u32_t)(acc + ((addr >> 16) & 0xffffUL)); + } + /* fold down to 16 bits */ + acc = FOLD_U32T(acc); + acc = FOLD_U32T(acc); + + return inet_cksum_pseudo_partial_base(p, proto, proto_len, chksum_len, acc); +} +#endif /* LWIP_IPV6 */ + +/* ip_chksum_pseudo_partial: + * + * Calculates the IPv4 or IPv6 pseudo Internet checksum used by TCP and UDP for a pbuf chain. + * + * @param p chain of pbufs over that a checksum should be calculated (ip data part) + * @param src source ip address (used for checksum of pseudo header) + * @param dst destination ip address (used for checksum of pseudo header) + * @param proto ip protocol (used for checksum of pseudo header) + * @param proto_len length of the ip data part (used for checksum of pseudo header) + * @return checksum (as u16_t) to be saved directly in the protocol header + */ +u16_t +ip_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len, + u16_t chksum_len, const ip_addr_t *src, const ip_addr_t *dest) +{ +#if LWIP_IPV6 + if (IP_IS_V6(dest)) { + return ip6_chksum_pseudo_partial(p, proto, proto_len, chksum_len, ip_2_ip6(src), ip_2_ip6(dest)); + } +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 && LWIP_IPV6 + else +#endif /* LWIP_IPV4 && LWIP_IPV6 */ +#if LWIP_IPV4 + { + return inet_chksum_pseudo_partial(p, proto, proto_len, chksum_len, ip_2_ip4(src), ip_2_ip4(dest)); + } +#endif /* LWIP_IPV4 */ +} + +/* inet_chksum: + * + * Calculates the Internet checksum over a portion of memory. Used primarily for IP + * and ICMP. + * + * @param dataptr start of the buffer to calculate the checksum (no alignment needed) + * @param len length of the buffer to calculate the checksum + * @return checksum (as u16_t) to be saved directly in the protocol header + */ + +u16_t +inet_chksum(const void *dataptr, u16_t len) +{ + return (u16_t)~(unsigned int)LWIP_CHKSUM(dataptr, len); +} + +/** + * Calculate a checksum over a chain of pbufs (without pseudo-header, much like + * inet_chksum only pbufs are used). + * + * @param p pbuf chain over that the checksum should be calculated + * @return checksum (as u16_t) to be saved directly in the protocol header + */ +u16_t +inet_chksum_pbuf(struct pbuf *p) +{ + u32_t acc; + struct pbuf *q; + int swapped = 0; + + acc = 0; + for (q = p; q != NULL; q = q->next) { + acc += LWIP_CHKSUM(q->payload, q->len); + acc = FOLD_U32T(acc); + if (q->len % 2 != 0) { + swapped = !swapped; + acc = SWAP_BYTES_IN_WORD(acc); + } + } + + if (swapped) { + acc = SWAP_BYTES_IN_WORD(acc); + } + return (u16_t)~(acc & 0xffffUL); +} + +/* These are some implementations for LWIP_CHKSUM_COPY, which copies data + * like MEMCPY but generates a checksum at the same time. Since this is a + * performance-sensitive function, you might want to create your own version + * in assembly targeted at your hardware by defining it in lwipopts.h: + * #define LWIP_CHKSUM_COPY(dst, src, len) your_chksum_copy(dst, src, len) + */ + +#if (LWIP_CHKSUM_COPY_ALGORITHM == 1) /* Version #1 */ +/** Safe but slow: first call MEMCPY, then call LWIP_CHKSUM. + * For architectures with big caches, data might still be in cache when + * generating the checksum after copying. + */ +u16_t +lwip_chksum_copy(void *dst, const void *src, u16_t len) +{ + MEMCPY(dst, src, len); + return LWIP_CHKSUM(dst, len); +} +#endif /* (LWIP_CHKSUM_COPY_ALGORITHM == 1) */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/init.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/init.c new file mode 100644 index 000000000..b68853649 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/init.c @@ -0,0 +1,380 @@ +/** + * @file + * Modules initialization + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + */ + +#include "lwip/opt.h" + +#include "lwip/init.h" +#include "lwip/stats.h" +#include "lwip/sys.h" +#include "lwip/mem.h" +#include "lwip/memp.h" +#include "lwip/pbuf.h" +#include "lwip/netif.h" +#include "lwip/sockets.h" +#include "lwip/ip.h" +#include "lwip/raw.h" +#include "lwip/udp.h" +#include "lwip/priv/tcp_priv.h" +#include "lwip/igmp.h" +#include "lwip/dns.h" +#include "lwip/timeouts.h" +#include "lwip/etharp.h" +#include "lwip/ip6.h" +#include "lwip/nd6.h" +#include "lwip/mld6.h" +#include "lwip/api.h" + +#include "netif/ppp/ppp_opts.h" +#include "netif/ppp/ppp_impl.h" + +#ifndef LWIP_SKIP_PACKING_CHECK + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct packed_struct_test { + PACK_STRUCT_FLD_8(u8_t dummy1); + PACK_STRUCT_FIELD(u32_t dummy2); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define PACKED_STRUCT_TEST_EXPECTED_SIZE 5 + +#endif + +/* Compile-time sanity checks for configuration errors. + * These can be done independently of LWIP_DEBUG, without penalty. + */ +#ifndef BYTE_ORDER +#error "BYTE_ORDER is not defined, you have to define it in your cc.h" +#endif +#if (!IP_SOF_BROADCAST && IP_SOF_BROADCAST_RECV) +#error "If you want to use broadcast filter per pcb on recv operations, you have to define IP_SOF_BROADCAST=1 in your lwipopts.h" +#endif +#if (!LWIP_UDP && LWIP_UDPLITE) +#error "If you want to use UDP Lite, you have to define LWIP_UDP=1 in your lwipopts.h" +#endif +#if (!LWIP_UDP && LWIP_DHCP) +#error "If you want to use DHCP, you have to define LWIP_UDP=1 in your lwipopts.h" +#endif +#if (!LWIP_UDP && !LWIP_RAW && LWIP_MULTICAST_TX_OPTIONS) +#error "If you want to use LWIP_MULTICAST_TX_OPTIONS, you have to define LWIP_UDP=1 and/or LWIP_RAW=1 in your lwipopts.h" +#endif +#if (!LWIP_UDP && LWIP_DNS) +#error "If you want to use DNS, you have to define LWIP_UDP=1 in your lwipopts.h" +#endif +#if !MEMP_MEM_MALLOC /* MEMP_NUM_* checks are disabled when not using the pool allocator */ +#if (LWIP_ARP && ARP_QUEUEING && (MEMP_NUM_ARP_QUEUE<=0)) +#error "If you want to use ARP Queueing, you have to define MEMP_NUM_ARP_QUEUE>=1 in your lwipopts.h" +#endif +#if (LWIP_RAW && (MEMP_NUM_RAW_PCB<=0)) +#error "If you want to use RAW, you have to define MEMP_NUM_RAW_PCB>=1 in your lwipopts.h" +#endif +#if (LWIP_UDP && (MEMP_NUM_UDP_PCB<=0)) +#error "If you want to use UDP, you have to define MEMP_NUM_UDP_PCB>=1 in your lwipopts.h" +#endif +#if (LWIP_TCP && (MEMP_NUM_TCP_PCB<=0)) +#error "If you want to use TCP, you have to define MEMP_NUM_TCP_PCB>=1 in your lwipopts.h" +#endif +#if (LWIP_IGMP && (MEMP_NUM_IGMP_GROUP<=1)) +#error "If you want to use IGMP, you have to define MEMP_NUM_IGMP_GROUP>1 in your lwipopts.h" +#endif +#if (LWIP_IGMP && !LWIP_MULTICAST_TX_OPTIONS) +#error "If you want to use IGMP, you have to define LWIP_MULTICAST_TX_OPTIONS==1 in your lwipopts.h" +#endif +#if (LWIP_IGMP && !LWIP_IPV4) +#error "IGMP needs LWIP_IPV4 enabled in your lwipopts.h" +#endif +#if ((LWIP_NETCONN || LWIP_SOCKET) && (MEMP_NUM_TCPIP_MSG_API<=0)) +#error "If you want to use Sequential API, you have to define MEMP_NUM_TCPIP_MSG_API>=1 in your lwipopts.h" +#endif +/* There must be sufficient timeouts, taking into account requirements of the subsystems. */ +#if LWIP_TIMERS && (MEMP_NUM_SYS_TIMEOUT < LWIP_NUM_SYS_TIMEOUT_INTERNAL) +#error "MEMP_NUM_SYS_TIMEOUT is too low to accomodate all required timeouts" +#endif +#if (IP_REASSEMBLY && (MEMP_NUM_REASSDATA > IP_REASS_MAX_PBUFS)) +#error "MEMP_NUM_REASSDATA > IP_REASS_MAX_PBUFS doesn't make sense since each struct ip_reassdata must hold 2 pbufs at least!" +#endif +#endif /* !MEMP_MEM_MALLOC */ +#if LWIP_WND_SCALE +#if (LWIP_TCP && (TCP_WND > 0xffffffff)) +#error "If you want to use TCP, TCP_WND must fit in an u32_t, so, you have to reduce it in your lwipopts.h" +#endif +#if (LWIP_TCP && (TCP_RCV_SCALE > 14)) +#error "The maximum valid window scale value is 14!" +#endif +#if (LWIP_TCP && (TCP_WND > (0xFFFFU << TCP_RCV_SCALE))) +#error "TCP_WND is bigger than the configured LWIP_WND_SCALE allows!" +#endif +#if (LWIP_TCP && ((TCP_WND >> TCP_RCV_SCALE) == 0)) +#error "TCP_WND is too small for the configured LWIP_WND_SCALE (results in zero window)!" +#endif +#else /* LWIP_WND_SCALE */ +#if (LWIP_TCP && (TCP_WND > 0xffff)) +#error "If you want to use TCP, TCP_WND must fit in an u16_t, so, you have to reduce it in your lwipopts.h (or enable window scaling)" +#endif +#endif /* LWIP_WND_SCALE */ +#if (LWIP_TCP && (TCP_SND_QUEUELEN > 0xffff)) +#error "If you want to use TCP, TCP_SND_QUEUELEN must fit in an u16_t, so, you have to reduce it in your lwipopts.h" +#endif +#if (LWIP_TCP && (TCP_SND_QUEUELEN < 2)) +#error "TCP_SND_QUEUELEN must be at least 2 for no-copy TCP writes to work" +#endif +#if (LWIP_TCP && ((TCP_MAXRTX > 12) || (TCP_SYNMAXRTX > 12))) +#error "If you want to use TCP, TCP_MAXRTX and TCP_SYNMAXRTX must less or equal to 12 (due to tcp_backoff table), so, you have to reduce them in your lwipopts.h" +#endif +#if (LWIP_TCP && TCP_LISTEN_BACKLOG && ((TCP_DEFAULT_LISTEN_BACKLOG < 0) || (TCP_DEFAULT_LISTEN_BACKLOG > 0xff))) +#error "If you want to use TCP backlog, TCP_DEFAULT_LISTEN_BACKLOG must fit into an u8_t" +#endif +#if (LWIP_TCP && LWIP_TCP_SACK_OUT && !TCP_QUEUE_OOSEQ) +#error "To use LWIP_TCP_SACK_OUT, TCP_QUEUE_OOSEQ needs to be enabled" +#endif +#if (LWIP_TCP && LWIP_TCP_SACK_OUT && (LWIP_TCP_MAX_SACK_NUM < 1)) +#error "LWIP_TCP_MAX_SACK_NUM must be greater than 0" +#endif +#if (LWIP_NETIF_API && (NO_SYS==1)) +#error "If you want to use NETIF API, you have to define NO_SYS=0 in your lwipopts.h" +#endif +#if ((LWIP_SOCKET || LWIP_NETCONN) && (NO_SYS==1)) +#error "If you want to use Sequential API, you have to define NO_SYS=0 in your lwipopts.h" +#endif +#if (LWIP_PPP_API && (NO_SYS==1)) +#error "If you want to use PPP API, you have to define NO_SYS=0 in your lwipopts.h" +#endif +#if (LWIP_PPP_API && (PPP_SUPPORT==0)) +#error "If you want to use PPP API, you have to enable PPP_SUPPORT in your lwipopts.h" +#endif +#if (((!LWIP_DHCP) || (!LWIP_AUTOIP)) && LWIP_DHCP_AUTOIP_COOP) +#error "If you want to use DHCP/AUTOIP cooperation mode, you have to define LWIP_DHCP=1 and LWIP_AUTOIP=1 in your lwipopts.h" +#endif +#if (((!LWIP_DHCP) || (!LWIP_ARP)) && DHCP_DOES_ARP_CHECK) +#error "If you want to use DHCP ARP checking, you have to define LWIP_DHCP=1 and LWIP_ARP=1 in your lwipopts.h" +#endif +#if (!LWIP_ARP && LWIP_AUTOIP) +#error "If you want to use AUTOIP, you have to define LWIP_ARP=1 in your lwipopts.h" +#endif +#if (LWIP_TCP && ((LWIP_EVENT_API && LWIP_CALLBACK_API) || (!LWIP_EVENT_API && !LWIP_CALLBACK_API))) +#error "One and exactly one of LWIP_EVENT_API and LWIP_CALLBACK_API has to be enabled in your lwipopts.h" +#endif +#if (LWIP_ALTCP && LWIP_EVENT_API) +#error "The application layered tcp API does not work with LWIP_EVENT_API" +#endif +#if (MEM_LIBC_MALLOC && MEM_USE_POOLS) +#error "MEM_LIBC_MALLOC and MEM_USE_POOLS may not both be simultaneously enabled in your lwipopts.h" +#endif +#if (MEM_USE_POOLS && !MEMP_USE_CUSTOM_POOLS) +#error "MEM_USE_POOLS requires custom pools (MEMP_USE_CUSTOM_POOLS) to be enabled in your lwipopts.h" +#endif +#if (PBUF_POOL_BUFSIZE <= MEM_ALIGNMENT) +#error "PBUF_POOL_BUFSIZE must be greater than MEM_ALIGNMENT or the offset may take the full first pbuf" +#endif +#if (DNS_LOCAL_HOSTLIST && !DNS_LOCAL_HOSTLIST_IS_DYNAMIC && !(defined(DNS_LOCAL_HOSTLIST_INIT))) +#error "you have to define define DNS_LOCAL_HOSTLIST_INIT {{'host1', 0x123}, {'host2', 0x234}} to initialize DNS_LOCAL_HOSTLIST" +#endif +#if PPP_SUPPORT && !PPPOS_SUPPORT && !PPPOE_SUPPORT && !PPPOL2TP_SUPPORT +#error "PPP_SUPPORT needs at least one of PPPOS_SUPPORT, PPPOE_SUPPORT or PPPOL2TP_SUPPORT turned on" +#endif +#if PPP_SUPPORT && !PPP_IPV4_SUPPORT && !PPP_IPV6_SUPPORT +#error "PPP_SUPPORT needs PPP_IPV4_SUPPORT and/or PPP_IPV6_SUPPORT turned on" +#endif +#if PPP_SUPPORT && PPP_IPV4_SUPPORT && !LWIP_IPV4 +#error "PPP_IPV4_SUPPORT needs LWIP_IPV4 turned on" +#endif +#if PPP_SUPPORT && PPP_IPV6_SUPPORT && !LWIP_IPV6 +#error "PPP_IPV6_SUPPORT needs LWIP_IPV6 turned on" +#endif +#if !LWIP_ETHERNET && (LWIP_ARP || PPPOE_SUPPORT) +#error "LWIP_ETHERNET needs to be turned on for LWIP_ARP or PPPOE_SUPPORT" +#endif +#if LWIP_TCPIP_CORE_LOCKING_INPUT && !LWIP_TCPIP_CORE_LOCKING +#error "When using LWIP_TCPIP_CORE_LOCKING_INPUT, LWIP_TCPIP_CORE_LOCKING must be enabled, too" +#endif +#if LWIP_TCP && LWIP_NETIF_TX_SINGLE_PBUF && !TCP_OVERSIZE +#error "LWIP_NETIF_TX_SINGLE_PBUF needs TCP_OVERSIZE enabled to create single-pbuf TCP packets" +#endif +#if LWIP_NETCONN && LWIP_TCP +#if NETCONN_COPY != TCP_WRITE_FLAG_COPY +#error "NETCONN_COPY != TCP_WRITE_FLAG_COPY" +#endif +#if NETCONN_MORE != TCP_WRITE_FLAG_MORE +#error "NETCONN_MORE != TCP_WRITE_FLAG_MORE" +#endif +#endif /* LWIP_NETCONN && LWIP_TCP */ +#if LWIP_SOCKET +#endif /* LWIP_SOCKET */ + + +/* Compile-time checks for deprecated options. + */ +#ifdef MEMP_NUM_TCPIP_MSG +#error "MEMP_NUM_TCPIP_MSG option is deprecated. Remove it from your lwipopts.h." +#endif +#ifdef TCP_REXMIT_DEBUG +#error "TCP_REXMIT_DEBUG option is deprecated. Remove it from your lwipopts.h." +#endif +#ifdef RAW_STATS +#error "RAW_STATS option is deprecated. Remove it from your lwipopts.h." +#endif +#ifdef ETHARP_QUEUE_FIRST +#error "ETHARP_QUEUE_FIRST option is deprecated. Remove it from your lwipopts.h." +#endif +#ifdef ETHARP_ALWAYS_INSERT +#error "ETHARP_ALWAYS_INSERT option is deprecated. Remove it from your lwipopts.h." +#endif +#if !NO_SYS && LWIP_TCPIP_CORE_LOCKING && LWIP_COMPAT_MUTEX && !defined(LWIP_COMPAT_MUTEX_ALLOWED) +#error "LWIP_COMPAT_MUTEX cannot prevent priority inversion. It is recommended to implement priority-aware mutexes. (Define LWIP_COMPAT_MUTEX_ALLOWED to disable this error.)" +#endif + +#ifndef LWIP_DISABLE_TCP_SANITY_CHECKS +#define LWIP_DISABLE_TCP_SANITY_CHECKS 0 +#endif +#ifndef LWIP_DISABLE_MEMP_SANITY_CHECKS +#define LWIP_DISABLE_MEMP_SANITY_CHECKS 0 +#endif + +/* MEMP sanity checks */ +#if MEMP_MEM_MALLOC +#if !LWIP_DISABLE_MEMP_SANITY_CHECKS +#if LWIP_NETCONN || LWIP_SOCKET +#if !MEMP_NUM_NETCONN && LWIP_SOCKET +#error "lwip_sanity_check: WARNING: MEMP_NUM_NETCONN cannot be 0 when using sockets!" +#endif +#else /* MEMP_MEM_MALLOC */ +#if MEMP_NUM_NETCONN > (MEMP_NUM_TCP_PCB+MEMP_NUM_TCP_PCB_LISTEN+MEMP_NUM_UDP_PCB+MEMP_NUM_RAW_PCB) +#error "lwip_sanity_check: WARNING: MEMP_NUM_NETCONN should be less than the sum of MEMP_NUM_{TCP,RAW,UDP}_PCB+MEMP_NUM_TCP_PCB_LISTEN. If you know what you are doing, define LWIP_DISABLE_MEMP_SANITY_CHECKS to 1 to disable this error." +#endif +#endif /* LWIP_NETCONN || LWIP_SOCKET */ +#endif /* !LWIP_DISABLE_MEMP_SANITY_CHECKS */ +#if MEM_USE_POOLS +#error "MEMP_MEM_MALLOC and MEM_USE_POOLS cannot be enabled at the same time" +#endif +#ifdef LWIP_HOOK_MEMP_AVAILABLE +#error "LWIP_HOOK_MEMP_AVAILABLE doesn't make sense with MEMP_MEM_MALLOC" +#endif +#endif /* MEMP_MEM_MALLOC */ + +/* TCP sanity checks */ +#if !LWIP_DISABLE_TCP_SANITY_CHECKS +#if LWIP_TCP +#if !MEMP_MEM_MALLOC && (MEMP_NUM_TCP_SEG < TCP_SND_QUEUELEN) +#error "lwip_sanity_check: WARNING: MEMP_NUM_TCP_SEG should be at least as big as TCP_SND_QUEUELEN. If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable this error." +#endif +#if TCP_SND_BUF < (2 * TCP_MSS) +#error "lwip_sanity_check: WARNING: TCP_SND_BUF must be at least as much as (2 * TCP_MSS) for things to work smoothly. If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable this error." +#endif +#if TCP_SND_QUEUELEN < (2 * (TCP_SND_BUF / TCP_MSS)) +#error "lwip_sanity_check: WARNING: TCP_SND_QUEUELEN must be at least as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work. If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable this error." +#endif +#if TCP_SNDLOWAT >= TCP_SND_BUF +#error "lwip_sanity_check: WARNING: TCP_SNDLOWAT must be less than TCP_SND_BUF. If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable this error." +#endif +#if TCP_SNDLOWAT >= (0xFFFF - (4 * TCP_MSS)) +#error "lwip_sanity_check: WARNING: TCP_SNDLOWAT must at least be 4*MSS below u16_t overflow!" +#endif +#if TCP_SNDQUEUELOWAT >= TCP_SND_QUEUELEN +#error "lwip_sanity_check: WARNING: TCP_SNDQUEUELOWAT must be less than TCP_SND_QUEUELEN. If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable this error." +#endif +#if !MEMP_MEM_MALLOC && PBUF_POOL_SIZE && (PBUF_POOL_BUFSIZE <= (PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN)) +#error "lwip_sanity_check: WARNING: PBUF_POOL_BUFSIZE does not provide enough space for protocol headers. If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable this error." +#endif +#if !MEMP_MEM_MALLOC && PBUF_POOL_SIZE && (TCP_WND > (PBUF_POOL_SIZE * (PBUF_POOL_BUFSIZE - (PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN)))) +#error "lwip_sanity_check: WARNING: TCP_WND is larger than space provided by PBUF_POOL_SIZE * (PBUF_POOL_BUFSIZE - protocol headers). If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable this error." +#endif +#if TCP_WND < TCP_MSS +#error "lwip_sanity_check: WARNING: TCP_WND is smaller than MSS. If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable this error." +#endif +#endif /* LWIP_TCP */ +#endif /* !LWIP_DISABLE_TCP_SANITY_CHECKS */ + +/** + * @ingroup lwip_nosys + * Initialize all modules. + * Use this in NO_SYS mode. Use tcpip_init() otherwise. + */ +void +lwip_init(void) +{ +#ifndef LWIP_SKIP_CONST_CHECK + int a = 0; + LWIP_UNUSED_ARG(a); + LWIP_ASSERT("LWIP_CONST_CAST not implemented correctly. Check your lwIP port.", LWIP_CONST_CAST(void *, &a) == &a); +#endif +#ifndef LWIP_SKIP_PACKING_CHECK + LWIP_ASSERT("Struct packing not implemented correctly. Check your lwIP port.", sizeof(struct packed_struct_test) == PACKED_STRUCT_TEST_EXPECTED_SIZE); +#endif + + /* Modules initialization */ + stats_init(); +#if !NO_SYS + sys_init(); +#endif /* !NO_SYS */ + mem_init(); + memp_init(); + pbuf_init(); + netif_init(); +#if LWIP_IPV4 + ip_init(); +#if LWIP_ARP + etharp_init(); +#endif /* LWIP_ARP */ +#endif /* LWIP_IPV4 */ +#if LWIP_RAW + raw_init(); +#endif /* LWIP_RAW */ +#if LWIP_UDP + udp_init(); +#endif /* LWIP_UDP */ +#if LWIP_TCP + tcp_init(); +#endif /* LWIP_TCP */ +#if LWIP_IGMP + igmp_init(); +#endif /* LWIP_IGMP */ +#if LWIP_DNS + dns_init(); +#endif /* LWIP_DNS */ +#if PPP_SUPPORT + ppp_init(); +#endif + +#if LWIP_TIMERS + sys_timeouts_init(); +#endif /* LWIP_TIMERS */ +} diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ip.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ip.c new file mode 100644 index 000000000..d611315b2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ip.c @@ -0,0 +1,167 @@ +/** + * @file + * Common IPv4 and IPv6 code + * + * @defgroup ip IP + * @ingroup callbackstyle_api + * + * @defgroup ip4 IPv4 + * @ingroup ip + * + * @defgroup ip6 IPv6 + * @ingroup ip + * + * @defgroup ipaddr IP address handling + * @ingroup infrastructure + * + * @defgroup ip4addr IPv4 only + * @ingroup ipaddr + * + * @defgroup ip6addr IPv6 only + * @ingroup ipaddr + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_IPV4 || LWIP_IPV6 + +#include "lwip/ip_addr.h" +#include "lwip/ip.h" + +/** Global data for both IPv4 and IPv6 */ +struct ip_globals ip_data; + +#if LWIP_IPV4 && LWIP_IPV6 + +const ip_addr_t ip_addr_any_type = IPADDR_ANY_TYPE_INIT; + +/** + * @ingroup ipaddr + * Convert numeric IP address (both versions) into ASCII representation. + * returns ptr to static buffer; not reentrant! + * + * @param addr ip address in network order to convert + * @return pointer to a global static (!) buffer that holds the ASCII + * representation of addr + */ +char *ipaddr_ntoa(const ip_addr_t *addr) +{ + if (addr == NULL) { + return NULL; + } + if (IP_IS_V6(addr)) { + return ip6addr_ntoa(ip_2_ip6(addr)); + } else { + return ip4addr_ntoa(ip_2_ip4(addr)); + } +} + +/** + * @ingroup ipaddr + * Same as ipaddr_ntoa, but reentrant since a user-supplied buffer is used. + * + * @param addr ip address in network order to convert + * @param buf target buffer where the string is stored + * @param buflen length of buf + * @return either pointer to buf which now holds the ASCII + * representation of addr or NULL if buf was too small + */ +char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen) +{ + if (addr == NULL) { + return NULL; + } + if (IP_IS_V6(addr)) { + return ip6addr_ntoa_r(ip_2_ip6(addr), buf, buflen); + } else { + return ip4addr_ntoa_r(ip_2_ip4(addr), buf, buflen); + } +} + +/** + * @ingroup ipaddr + * Convert IP address string (both versions) to numeric. + * The version is auto-detected from the string. + * + * @param cp IP address string to convert + * @param addr conversion result is stored here + * @return 1 on success, 0 on error + */ +int +ipaddr_aton(const char *cp, ip_addr_t *addr) +{ + if (cp != NULL) { + const char *c; + for (c = cp; *c != 0; c++) { + if (*c == ':') { + /* contains a colon: IPv6 address */ + if (addr) { + IP_SET_TYPE_VAL(*addr, IPADDR_TYPE_V6); + } + return ip6addr_aton(cp, ip_2_ip6(addr)); + } else if (*c == '.') { + /* contains a dot: IPv4 address */ + break; + } + } + /* call ip4addr_aton as fallback or if IPv4 was found */ + if (addr) { + IP_SET_TYPE_VAL(*addr, IPADDR_TYPE_V4); + } + return ip4addr_aton(cp, ip_2_ip4(addr)); + } + return 0; +} + +/** + * @ingroup lwip_nosys + * If both IP versions are enabled, this function can dispatch packets to the correct one. + * Don't call directly, pass to netif_add() and call netif->input(). + */ +err_t +ip_input(struct pbuf *p, struct netif *inp) +{ + if (p != NULL) { + if (IP_HDR_GET_VERSION(p->payload) == 6) { + return ip6_input(p, inp); + } + return ip4_input(p, inp); + } + return ERR_VAL; +} + +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + +#endif /* LWIP_IPV4 || LWIP_IPV6 */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/autoip.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/autoip.c new file mode 100644 index 000000000..a45450494 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/autoip.c @@ -0,0 +1,527 @@ +/** + * @file + * AutoIP Automatic LinkLocal IP Configuration + * + * This is a AutoIP implementation for the lwIP TCP/IP stack. It aims to conform + * with RFC 3927. + * + * @defgroup autoip AUTOIP + * @ingroup ip4 + * AUTOIP related functions + * USAGE: + * + * define @ref LWIP_AUTOIP 1 in your lwipopts.h + * Options: + * AUTOIP_TMR_INTERVAL msecs, + * I recommend a value of 100. The value must divide 1000 with a remainder almost 0. + * Possible values are 1000, 500, 333, 250, 200, 166, 142, 125, 111, 100 .... + * + * Without DHCP: + * - Call autoip_start() after netif_add(). + * + * With DHCP: + * - define @ref LWIP_DHCP_AUTOIP_COOP 1 in your lwipopts.h. + * - Configure your DHCP Client. + * + * @see netifapi_autoip + */ + +/* + * + * Copyright (c) 2007 Dominik Spies + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * Author: Dominik Spies + */ + +#include "lwip/opt.h" + +#if LWIP_IPV4 && LWIP_AUTOIP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/mem.h" +/* #include "lwip/udp.h" */ +#include "lwip/ip_addr.h" +#include "lwip/netif.h" +#include "lwip/autoip.h" +#include "lwip/etharp.h" +#include "lwip/prot/autoip.h" + +#include + +/** Pseudo random macro based on netif informations. + * You could use "rand()" from the C Library if you define LWIP_AUTOIP_RAND in lwipopts.h */ +#ifndef LWIP_AUTOIP_RAND +#define LWIP_AUTOIP_RAND(netif) ( (((u32_t)((netif->hwaddr[5]) & 0xff) << 24) | \ + ((u32_t)((netif->hwaddr[3]) & 0xff) << 16) | \ + ((u32_t)((netif->hwaddr[2]) & 0xff) << 8) | \ + ((u32_t)((netif->hwaddr[4]) & 0xff))) + \ + (netif_autoip_data(netif)? netif_autoip_data(netif)->tried_llipaddr : 0)) +#endif /* LWIP_AUTOIP_RAND */ + +/** + * Macro that generates the initial IP address to be tried by AUTOIP. + * If you want to override this, define it to something else in lwipopts.h. + */ +#ifndef LWIP_AUTOIP_CREATE_SEED_ADDR +#define LWIP_AUTOIP_CREATE_SEED_ADDR(netif) \ + lwip_htonl(AUTOIP_RANGE_START + ((u32_t)(((u8_t)(netif->hwaddr[4])) | \ + ((u32_t)((u8_t)(netif->hwaddr[5]))) << 8))) +#endif /* LWIP_AUTOIP_CREATE_SEED_ADDR */ + +/* static functions */ +static err_t autoip_arp_announce(struct netif *netif); +static void autoip_start_probing(struct netif *netif); + +/** + * @ingroup autoip + * Set a statically allocated struct autoip to work with. + * Using this prevents autoip_start to allocate it using mem_malloc. + * + * @param netif the netif for which to set the struct autoip + * @param autoip (uninitialised) autoip struct allocated by the application + */ +void +autoip_set_struct(struct netif *netif, struct autoip *autoip) +{ + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("netif != NULL", netif != NULL); + LWIP_ASSERT("autoip != NULL", autoip != NULL); + LWIP_ASSERT("netif already has a struct autoip set", + netif_autoip_data(netif) == NULL); + + /* clear data structure */ + memset(autoip, 0, sizeof(struct autoip)); + /* autoip->state = AUTOIP_STATE_OFF; */ + netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP, autoip); +} + +/** Restart AutoIP client and check the next address (conflict detected) + * + * @param netif The netif under AutoIP control + */ +static void +autoip_restart(struct netif *netif) +{ + struct autoip *autoip = netif_autoip_data(netif); + autoip->tried_llipaddr++; + autoip_start(netif); +} + +/** + * Handle a IP address conflict after an ARP conflict detection + */ +static void +autoip_handle_arp_conflict(struct netif *netif) +{ + struct autoip *autoip = netif_autoip_data(netif); + + /* RFC3927, 2.5 "Conflict Detection and Defense" allows two options where + a) means retreat on the first conflict and + b) allows to keep an already configured address when having only one + conflict in 10 seconds + We use option b) since it helps to improve the chance that one of the two + conflicting hosts may be able to retain its address. */ + + if (autoip->lastconflict > 0) { + /* retreat, there was a conflicting ARP in the last DEFEND_INTERVAL seconds */ + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("autoip_handle_arp_conflict(): we are defending, but in DEFEND_INTERVAL, retreating\n")); + + /* Active TCP sessions are aborted when removing the ip addresss */ + autoip_restart(netif); + } else { + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("autoip_handle_arp_conflict(): we are defend, send ARP Announce\n")); + autoip_arp_announce(netif); + autoip->lastconflict = DEFEND_INTERVAL * AUTOIP_TICKS_PER_SECOND; + } +} + +/** + * Create an IP-Address out of range 169.254.1.0 to 169.254.254.255 + * + * @param netif network interface on which create the IP-Address + * @param ipaddr ip address to initialize + */ +static void +autoip_create_addr(struct netif *netif, ip4_addr_t *ipaddr) +{ + struct autoip *autoip = netif_autoip_data(netif); + + /* Here we create an IP-Address out of range 169.254.1.0 to 169.254.254.255 + * compliant to RFC 3927 Section 2.1 + * We have 254 * 256 possibilities */ + + u32_t addr = lwip_ntohl(LWIP_AUTOIP_CREATE_SEED_ADDR(netif)); + addr += autoip->tried_llipaddr; + addr = AUTOIP_NET | (addr & 0xffff); + /* Now, 169.254.0.0 <= addr <= 169.254.255.255 */ + + if (addr < AUTOIP_RANGE_START) { + addr += AUTOIP_RANGE_END - AUTOIP_RANGE_START + 1; + } + if (addr > AUTOIP_RANGE_END) { + addr -= AUTOIP_RANGE_END - AUTOIP_RANGE_START + 1; + } + LWIP_ASSERT("AUTOIP address not in range", (addr >= AUTOIP_RANGE_START) && + (addr <= AUTOIP_RANGE_END)); + ip4_addr_set_u32(ipaddr, lwip_htonl(addr)); + + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("autoip_create_addr(): tried_llipaddr=%"U16_F", %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + (u16_t)(autoip->tried_llipaddr), ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), + ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr))); +} + +/** + * Sends an ARP probe from a network interface + * + * @param netif network interface used to send the probe + */ +static err_t +autoip_arp_probe(struct netif *netif) +{ + struct autoip *autoip = netif_autoip_data(netif); + /* this works because netif->ip_addr is ANY */ + return etharp_request(netif, &autoip->llipaddr); +} + +/** + * Sends an ARP announce from a network interface + * + * @param netif network interface used to send the announce + */ +static err_t +autoip_arp_announce(struct netif *netif) +{ + return etharp_gratuitous(netif); +} + +/** + * Configure interface for use with current LL IP-Address + * + * @param netif network interface to configure with current LL IP-Address + */ +static err_t +autoip_bind(struct netif *netif) +{ + struct autoip *autoip = netif_autoip_data(netif); + ip4_addr_t sn_mask, gw_addr; + + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, + ("autoip_bind(netif=%p) %c%c%"U16_F" %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + (void *)netif, netif->name[0], netif->name[1], (u16_t)netif->num, + ip4_addr1_16(&autoip->llipaddr), ip4_addr2_16(&autoip->llipaddr), + ip4_addr3_16(&autoip->llipaddr), ip4_addr4_16(&autoip->llipaddr))); + + IP4_ADDR(&sn_mask, 255, 255, 0, 0); + IP4_ADDR(&gw_addr, 0, 0, 0, 0); + + netif_set_addr(netif, &autoip->llipaddr, &sn_mask, &gw_addr); + /* interface is used by routing now that an address is set */ + + return ERR_OK; +} + +/** + * @ingroup autoip + * Start AutoIP client + * + * @param netif network interface on which start the AutoIP client + */ +err_t +autoip_start(struct netif *netif) +{ + struct autoip *autoip = netif_autoip_data(netif); + err_t result = ERR_OK; + + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ERROR("netif is not up, old style port?", netif_is_up(netif), return ERR_ARG;); + + /* Set IP-Address, Netmask and Gateway to 0 to make sure that + * ARP Packets are formed correctly + */ + netif_set_addr(netif, IP4_ADDR_ANY4, IP4_ADDR_ANY4, IP4_ADDR_ANY4); + + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("autoip_start(netif=%p) %c%c%"U16_F"\n", (void *)netif, netif->name[0], + netif->name[1], (u16_t)netif->num)); + if (autoip == NULL) { + /* no AutoIP client attached yet? */ + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, + ("autoip_start(): starting new AUTOIP client\n")); + autoip = (struct autoip *)mem_calloc(1, sizeof(struct autoip)); + if (autoip == NULL) { + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, + ("autoip_start(): could not allocate autoip\n")); + return ERR_MEM; + } + /* store this AutoIP client in the netif */ + netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP, autoip); + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_start(): allocated autoip")); + } else { + autoip->state = AUTOIP_STATE_OFF; + autoip->ttw = 0; + autoip->sent_num = 0; + ip4_addr_set_zero(&autoip->llipaddr); + autoip->lastconflict = 0; + } + + autoip_create_addr(netif, &(autoip->llipaddr)); + autoip_start_probing(netif); + + return result; +} + +static void +autoip_start_probing(struct netif *netif) +{ + struct autoip *autoip = netif_autoip_data(netif); + + autoip->state = AUTOIP_STATE_PROBING; + autoip->sent_num = 0; + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("autoip_start_probing(): changing state to PROBING: %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(&autoip->llipaddr), ip4_addr2_16(&autoip->llipaddr), + ip4_addr3_16(&autoip->llipaddr), ip4_addr4_16(&autoip->llipaddr))); + + /* time to wait to first probe, this is randomly + * chosen out of 0 to PROBE_WAIT seconds. + * compliant to RFC 3927 Section 2.2.1 + */ + autoip->ttw = (u16_t)(LWIP_AUTOIP_RAND(netif) % (PROBE_WAIT * AUTOIP_TICKS_PER_SECOND)); + + /* + * if we tried more then MAX_CONFLICTS we must limit our rate for + * acquiring and probing address + * compliant to RFC 3927 Section 2.2.1 + */ + if (autoip->tried_llipaddr > MAX_CONFLICTS) { + autoip->ttw = RATE_LIMIT_INTERVAL * AUTOIP_TICKS_PER_SECOND; + } +} + +/** + * Handle a possible change in the network configuration. + * + * If there is an AutoIP address configured, take the interface down + * and begin probing with the same address. + */ +void +autoip_network_changed(struct netif *netif) +{ + struct autoip *autoip = netif_autoip_data(netif); + + if (autoip && (autoip->state != AUTOIP_STATE_OFF)) { + autoip_start_probing(netif); + } +} + +/** + * @ingroup autoip + * Stop AutoIP client + * + * @param netif network interface on which stop the AutoIP client + */ +err_t +autoip_stop(struct netif *netif) +{ + struct autoip *autoip = netif_autoip_data(netif); + + LWIP_ASSERT_CORE_LOCKED(); + if (autoip != NULL) { + autoip->state = AUTOIP_STATE_OFF; + if (ip4_addr_islinklocal(netif_ip4_addr(netif))) { + netif_set_addr(netif, IP4_ADDR_ANY4, IP4_ADDR_ANY4, IP4_ADDR_ANY4); + } + } + return ERR_OK; +} + +/** + * Has to be called in loop every AUTOIP_TMR_INTERVAL milliseconds + */ +void +autoip_tmr(void) +{ + struct netif *netif; + /* loop through netif's */ + NETIF_FOREACH(netif) { + struct autoip *autoip = netif_autoip_data(netif); + /* only act on AutoIP configured interfaces */ + if (autoip != NULL) { + if (autoip->lastconflict > 0) { + autoip->lastconflict--; + } + + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, + ("autoip_tmr() AutoIP-State: %"U16_F", ttw=%"U16_F"\n", + (u16_t)(autoip->state), autoip->ttw)); + + if (autoip->ttw > 0) { + autoip->ttw--; + } + + switch (autoip->state) { + case AUTOIP_STATE_PROBING: + if (autoip->ttw == 0) { + if (autoip->sent_num >= PROBE_NUM) { + /* Switch to ANNOUNCING: now we can bind to an IP address and use it */ + autoip->state = AUTOIP_STATE_ANNOUNCING; + autoip_bind(netif); + /* autoip_bind() calls netif_set_addr(): this triggers a gratuitous ARP + which counts as an announcement */ + autoip->sent_num = 1; + autoip->ttw = ANNOUNCE_WAIT * AUTOIP_TICKS_PER_SECOND; + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("autoip_tmr(): changing state to ANNOUNCING: %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(&autoip->llipaddr), ip4_addr2_16(&autoip->llipaddr), + ip4_addr3_16(&autoip->llipaddr), ip4_addr4_16(&autoip->llipaddr))); + } else { + autoip_arp_probe(netif); + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_tmr() PROBING Sent Probe\n")); + autoip->sent_num++; + if (autoip->sent_num == PROBE_NUM) { + /* calculate time to wait to for announce */ + autoip->ttw = ANNOUNCE_WAIT * AUTOIP_TICKS_PER_SECOND; + } else { + /* calculate time to wait to next probe */ + autoip->ttw = (u16_t)((LWIP_AUTOIP_RAND(netif) % + ((PROBE_MAX - PROBE_MIN) * AUTOIP_TICKS_PER_SECOND) ) + + PROBE_MIN * AUTOIP_TICKS_PER_SECOND); + } + } + } + break; + + case AUTOIP_STATE_ANNOUNCING: + if (autoip->ttw == 0) { + autoip_arp_announce(netif); + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_tmr() ANNOUNCING Sent Announce\n")); + autoip->ttw = ANNOUNCE_INTERVAL * AUTOIP_TICKS_PER_SECOND; + autoip->sent_num++; + + if (autoip->sent_num >= ANNOUNCE_NUM) { + autoip->state = AUTOIP_STATE_BOUND; + autoip->sent_num = 0; + autoip->ttw = 0; + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("autoip_tmr(): changing state to BOUND: %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(&autoip->llipaddr), ip4_addr2_16(&autoip->llipaddr), + ip4_addr3_16(&autoip->llipaddr), ip4_addr4_16(&autoip->llipaddr))); + } + } + break; + + default: + /* nothing to do in other states */ + break; + } + } + } +} + +/** + * Handles every incoming ARP Packet, called by etharp_input(). + * + * @param netif network interface to use for autoip processing + * @param hdr Incoming ARP packet + */ +void +autoip_arp_reply(struct netif *netif, struct etharp_hdr *hdr) +{ + struct autoip *autoip = netif_autoip_data(netif); + + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_arp_reply()\n")); + if ((autoip != NULL) && (autoip->state != AUTOIP_STATE_OFF)) { + /* when ip.src == llipaddr && hw.src != netif->hwaddr + * + * when probing ip.dst == llipaddr && hw.src != netif->hwaddr + * we have a conflict and must solve it + */ + ip4_addr_t sipaddr, dipaddr; + struct eth_addr netifaddr; + SMEMCPY(netifaddr.addr, netif->hwaddr, ETH_HWADDR_LEN); + + /* Copy struct ip4_addr_wordaligned to aligned ip4_addr, to support compilers without + * structure packing (not using structure copy which breaks strict-aliasing rules). + */ + IPADDR_WORDALIGNED_COPY_TO_IP4_ADDR_T(&sipaddr, &hdr->sipaddr); + IPADDR_WORDALIGNED_COPY_TO_IP4_ADDR_T(&dipaddr, &hdr->dipaddr); + + if (autoip->state == AUTOIP_STATE_PROBING) { + /* RFC 3927 Section 2.2.1: + * from beginning to after ANNOUNCE_WAIT + * seconds we have a conflict if + * ip.src == llipaddr OR + * ip.dst == llipaddr && hw.src != own hwaddr + */ + if ((ip4_addr_cmp(&sipaddr, &autoip->llipaddr)) || + (ip4_addr_isany_val(sipaddr) && + ip4_addr_cmp(&dipaddr, &autoip->llipaddr) && + !eth_addr_cmp(&netifaddr, &hdr->shwaddr))) { + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | LWIP_DBG_LEVEL_WARNING, + ("autoip_arp_reply(): Probe Conflict detected\n")); + autoip_restart(netif); + } + } else { + /* RFC 3927 Section 2.5: + * in any state we have a conflict if + * ip.src == llipaddr && hw.src != own hwaddr + */ + if (ip4_addr_cmp(&sipaddr, &autoip->llipaddr) && + !eth_addr_cmp(&netifaddr, &hdr->shwaddr)) { + LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | LWIP_DBG_LEVEL_WARNING, + ("autoip_arp_reply(): Conflicting ARP-Packet detected\n")); + autoip_handle_arp_conflict(netif); + } + } + } +} + +/** check if AutoIP supplied netif->ip_addr + * + * @param netif the netif to check + * @return 1 if AutoIP supplied netif->ip_addr (state BOUND or ANNOUNCING), + * 0 otherwise + */ +u8_t +autoip_supplied_address(const struct netif *netif) +{ + if ((netif != NULL) && (netif_autoip_data(netif) != NULL)) { + struct autoip *autoip = netif_autoip_data(netif); + return (autoip->state == AUTOIP_STATE_BOUND) || (autoip->state == AUTOIP_STATE_ANNOUNCING); + } + return 0; +} + +u8_t +autoip_accept_packet(struct netif *netif, const ip4_addr_t *addr) +{ + struct autoip *autoip = netif_autoip_data(netif); + return (autoip != NULL) && ip4_addr_cmp(addr, &(autoip->llipaddr)); +} + +#endif /* LWIP_IPV4 && LWIP_AUTOIP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/dhcp.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/dhcp.c new file mode 100644 index 000000000..89f9c4166 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/dhcp.c @@ -0,0 +1,1990 @@ +/** + * @file + * Dynamic Host Configuration Protocol client + * + * @defgroup dhcp4 DHCPv4 + * @ingroup ip4 + * DHCP (IPv4) related functions + * This is a DHCP client for the lwIP TCP/IP stack. It aims to conform + * with RFC 2131 and RFC 2132. + * + * @todo: + * - Support for interfaces other than Ethernet (SLIP, PPP, ...) + * + * Options: + * @ref DHCP_COARSE_TIMER_SECS (recommended 60 which is a minute) + * @ref DHCP_FINE_TIMER_MSECS (recommended 500 which equals TCP coarse timer) + * + * dhcp_start() starts a DHCP client instance which + * configures the interface by obtaining an IP address lease and maintaining it. + * + * Use dhcp_release() to end the lease and use dhcp_stop() + * to remove the DHCP client. + * + * @see LWIP_HOOK_DHCP_APPEND_OPTIONS + * @see LWIP_HOOK_DHCP_PARSE_OPTION + * + * @see netifapi_dhcp4 + */ + +/* + * Copyright (c) 2001-2004 Leon Woestenberg + * Copyright (c) 2001-2004 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * The Swedish Institute of Computer Science and Adam Dunkels + * are specifically granted permission to redistribute this + * source code. + * + * Author: Leon Woestenberg + * + */ + +#include "lwip/opt.h" + +#if LWIP_IPV4 && LWIP_DHCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/stats.h" +#include "lwip/mem.h" +#include "lwip/udp.h" +#include "lwip/ip_addr.h" +#include "lwip/netif.h" +#include "lwip/def.h" +#include "lwip/dhcp.h" +#include "lwip/autoip.h" +#include "lwip/dns.h" +#include "lwip/etharp.h" +#include "lwip/prot/dhcp.h" +#include "lwip/prot/iana.h" + +#include + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif +#ifndef LWIP_HOOK_DHCP_APPEND_OPTIONS +#define LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, state, msg, msg_type, options_len_ptr) +#endif +#ifndef LWIP_HOOK_DHCP_PARSE_OPTION +#define LWIP_HOOK_DHCP_PARSE_OPTION(netif, dhcp, state, msg, msg_type, option, len, pbuf, offset) do { LWIP_UNUSED_ARG(msg); } while(0) +#endif + +/** DHCP_CREATE_RAND_XID: if this is set to 1, the xid is created using + * LWIP_RAND() (this overrides DHCP_GLOBAL_XID) + */ +#ifndef DHCP_CREATE_RAND_XID +#define DHCP_CREATE_RAND_XID 1 +#endif + +/** Default for DHCP_GLOBAL_XID is 0xABCD0000 + * This can be changed by defining DHCP_GLOBAL_XID and DHCP_GLOBAL_XID_HEADER, e.g. + * \#define DHCP_GLOBAL_XID_HEADER "stdlib.h" + * \#define DHCP_GLOBAL_XID rand() + */ +#ifdef DHCP_GLOBAL_XID_HEADER +#include DHCP_GLOBAL_XID_HEADER /* include optional starting XID generation prototypes */ +#endif + +/** DHCP_OPTION_MAX_MSG_SIZE is set to the MTU + * MTU is checked to be big enough in dhcp_start */ +#define DHCP_MAX_MSG_LEN(netif) (netif->mtu) +#define DHCP_MAX_MSG_LEN_MIN_REQUIRED 576 +/** Minimum length for reply before packet is parsed */ +#define DHCP_MIN_REPLY_LEN 44 + +#define REBOOT_TRIES 2 + +#if LWIP_DNS && LWIP_DHCP_MAX_DNS_SERVERS +#if DNS_MAX_SERVERS > LWIP_DHCP_MAX_DNS_SERVERS +#define LWIP_DHCP_PROVIDE_DNS_SERVERS LWIP_DHCP_MAX_DNS_SERVERS +#else +#define LWIP_DHCP_PROVIDE_DNS_SERVERS DNS_MAX_SERVERS +#endif +#else +#define LWIP_DHCP_PROVIDE_DNS_SERVERS 0 +#endif + +/** Option handling: options are parsed in dhcp_parse_reply + * and saved in an array where other functions can load them from. + * This might be moved into the struct dhcp (not necessarily since + * lwIP is single-threaded and the array is only used while in recv + * callback). */ +enum dhcp_option_idx { + DHCP_OPTION_IDX_OVERLOAD = 0, + DHCP_OPTION_IDX_MSG_TYPE, + DHCP_OPTION_IDX_SERVER_ID, + DHCP_OPTION_IDX_LEASE_TIME, + DHCP_OPTION_IDX_T1, + DHCP_OPTION_IDX_T2, + DHCP_OPTION_IDX_SUBNET_MASK, + DHCP_OPTION_IDX_ROUTER, +#if LWIP_DHCP_PROVIDE_DNS_SERVERS + DHCP_OPTION_IDX_DNS_SERVER, + DHCP_OPTION_IDX_DNS_SERVER_LAST = DHCP_OPTION_IDX_DNS_SERVER + LWIP_DHCP_PROVIDE_DNS_SERVERS - 1, +#endif /* LWIP_DHCP_PROVIDE_DNS_SERVERS */ +#if LWIP_DHCP_GET_NTP_SRV + DHCP_OPTION_IDX_NTP_SERVER, + DHCP_OPTION_IDX_NTP_SERVER_LAST = DHCP_OPTION_IDX_NTP_SERVER + LWIP_DHCP_MAX_NTP_SERVERS - 1, +#endif /* LWIP_DHCP_GET_NTP_SRV */ + DHCP_OPTION_IDX_MAX +}; + +/** Holds the decoded option values, only valid while in dhcp_recv. + @todo: move this into struct dhcp? */ +u32_t dhcp_rx_options_val[DHCP_OPTION_IDX_MAX]; +/** Holds a flag which option was received and is contained in dhcp_rx_options_val, + only valid while in dhcp_recv. + @todo: move this into struct dhcp? */ +u8_t dhcp_rx_options_given[DHCP_OPTION_IDX_MAX]; + +static u8_t dhcp_discover_request_options[] = { + DHCP_OPTION_SUBNET_MASK, + DHCP_OPTION_ROUTER, + DHCP_OPTION_BROADCAST +#if LWIP_DHCP_PROVIDE_DNS_SERVERS + , DHCP_OPTION_DNS_SERVER +#endif /* LWIP_DHCP_PROVIDE_DNS_SERVERS */ +#if LWIP_DHCP_GET_NTP_SRV + , DHCP_OPTION_NTP +#endif /* LWIP_DHCP_GET_NTP_SRV */ +}; + +#ifdef DHCP_GLOBAL_XID +static u32_t xid; +static u8_t xid_initialised; +#endif /* DHCP_GLOBAL_XID */ + +#define dhcp_option_given(dhcp, idx) (dhcp_rx_options_given[idx] != 0) +#define dhcp_got_option(dhcp, idx) (dhcp_rx_options_given[idx] = 1) +#define dhcp_clear_option(dhcp, idx) (dhcp_rx_options_given[idx] = 0) +#define dhcp_clear_all_options(dhcp) (memset(dhcp_rx_options_given, 0, sizeof(dhcp_rx_options_given))) +#define dhcp_get_option_value(dhcp, idx) (dhcp_rx_options_val[idx]) +#define dhcp_set_option_value(dhcp, idx, val) (dhcp_rx_options_val[idx] = (val)) + +static struct udp_pcb *dhcp_pcb; +static u8_t dhcp_pcb_refcount; + +/* DHCP client state machine functions */ +static err_t dhcp_discover(struct netif *netif); +static err_t dhcp_select(struct netif *netif); +static void dhcp_bind(struct netif *netif); +#if DHCP_DOES_ARP_CHECK +static err_t dhcp_decline(struct netif *netif); +#endif /* DHCP_DOES_ARP_CHECK */ +static err_t dhcp_rebind(struct netif *netif); +static err_t dhcp_reboot(struct netif *netif); +static void dhcp_set_state(struct dhcp *dhcp, u8_t new_state); + +/* receive, unfold, parse and free incoming messages */ +static void dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr, u16_t port); + +/* set the DHCP timers */ +static void dhcp_timeout(struct netif *netif); +static void dhcp_t1_timeout(struct netif *netif); +static void dhcp_t2_timeout(struct netif *netif); + +/* build outgoing messages */ +/* create a DHCP message, fill in common headers */ +static struct pbuf *dhcp_create_msg(struct netif *netif, struct dhcp *dhcp, u8_t message_type, u16_t *options_out_len); +/* add a DHCP option (type, then length in bytes) */ +static u16_t dhcp_option(u16_t options_out_len, u8_t *options, u8_t option_type, u8_t option_len); +/* add option values */ +static u16_t dhcp_option_byte(u16_t options_out_len, u8_t *options, u8_t value); +static u16_t dhcp_option_short(u16_t options_out_len, u8_t *options, u16_t value); +static u16_t dhcp_option_long(u16_t options_out_len, u8_t *options, u32_t value); +#if LWIP_NETIF_HOSTNAME +static u16_t dhcp_option_hostname(u16_t options_out_len, u8_t *options, struct netif *netif); +#endif /* LWIP_NETIF_HOSTNAME */ +/* always add the DHCP options trailer to end and pad */ +static void dhcp_option_trailer(u16_t options_out_len, u8_t *options, struct pbuf *p_out); + +/** Ensure DHCP PCB is allocated and bound */ +static err_t +dhcp_inc_pcb_refcount(void) +{ + if (dhcp_pcb_refcount == 0) { + LWIP_ASSERT("dhcp_inc_pcb_refcount(): memory leak", dhcp_pcb == NULL); + + /* allocate UDP PCB */ + dhcp_pcb = udp_new(); + + if (dhcp_pcb == NULL) { + return ERR_MEM; + } + + ip_set_option(dhcp_pcb, SOF_BROADCAST); + + /* set up local and remote port for the pcb -> listen on all interfaces on all src/dest IPs */ + udp_bind(dhcp_pcb, IP4_ADDR_ANY, LWIP_IANA_PORT_DHCP_CLIENT); + udp_connect(dhcp_pcb, IP4_ADDR_ANY, LWIP_IANA_PORT_DHCP_SERVER); + udp_recv(dhcp_pcb, dhcp_recv, NULL); + } + + dhcp_pcb_refcount++; + + return ERR_OK; +} + +/** Free DHCP PCB if the last netif stops using it */ +static void +dhcp_dec_pcb_refcount(void) +{ + LWIP_ASSERT("dhcp_pcb_refcount(): refcount error", (dhcp_pcb_refcount > 0)); + dhcp_pcb_refcount--; + + if (dhcp_pcb_refcount == 0) { + udp_remove(dhcp_pcb); + dhcp_pcb = NULL; + } +} + +/** + * Back-off the DHCP client (because of a received NAK response). + * + * Back-off the DHCP client because of a received NAK. Receiving a + * NAK means the client asked for something non-sensible, for + * example when it tries to renew a lease obtained on another network. + * + * We clear any existing set IP address and restart DHCP negotiation + * afresh (as per RFC2131 3.2.3). + * + * @param netif the netif under DHCP control + */ +static void +dhcp_handle_nak(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_nak(netif=%p) %c%c%"U16_F"\n", + (void *)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); + /* Change to a defined state - set this before assigning the address + to ensure the callback can use dhcp_supplied_address() */ + dhcp_set_state(dhcp, DHCP_STATE_BACKING_OFF); + /* remove IP address from interface (must no longer be used, as per RFC2131) */ + netif_set_addr(netif, IP4_ADDR_ANY4, IP4_ADDR_ANY4, IP4_ADDR_ANY4); + /* We can immediately restart discovery */ + dhcp_discover(netif); +} + +#if DHCP_DOES_ARP_CHECK +/** + * Checks if the offered IP address is already in use. + * + * It does so by sending an ARP request for the offered address and + * entering CHECKING state. If no ARP reply is received within a small + * interval, the address is assumed to be free for use by us. + * + * @param netif the netif under DHCP control + */ +static void +dhcp_check(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + err_t result; + u16_t msecs; + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_check(netif=%p) %c%c\n", (void *)netif, (s16_t)netif->name[0], + (s16_t)netif->name[1])); + dhcp_set_state(dhcp, DHCP_STATE_CHECKING); + /* create an ARP query for the offered IP address, expecting that no host + responds, as the IP address should not be in use. */ + result = etharp_query(netif, &dhcp->offered_ip_addr, NULL); + if (result != ERR_OK) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("dhcp_check: could not perform ARP query\n")); + } + if (dhcp->tries < 255) { + dhcp->tries++; + } + msecs = 500; + dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_check(): set request timeout %"U16_F" msecs\n", msecs)); +} +#endif /* DHCP_DOES_ARP_CHECK */ + +/** + * Remember the configuration offered by a DHCP server. + * + * @param netif the netif under DHCP control + */ +static void +dhcp_handle_offer(struct netif *netif, struct dhcp_msg *msg_in) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_offer(netif=%p) %c%c%"U16_F"\n", + (void *)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); + /* obtain the server address */ + if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SERVER_ID)) { + dhcp->request_timeout = 0; /* stop timer */ + + ip_addr_set_ip4_u32(&dhcp->server_ip_addr, lwip_htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_SERVER_ID))); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): server 0x%08"X32_F"\n", + ip4_addr_get_u32(ip_2_ip4(&dhcp->server_ip_addr)))); + /* remember offered address */ + ip4_addr_copy(dhcp->offered_ip_addr, msg_in->yiaddr); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): offer for 0x%08"X32_F"\n", + ip4_addr_get_u32(&dhcp->offered_ip_addr))); + + dhcp_select(netif); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, + ("dhcp_handle_offer(netif=%p) did not get server ID!\n", (void *)netif)); + } +} + +/** + * Select a DHCP server offer out of all offers. + * + * Simply select the first offer received. + * + * @param netif the netif under DHCP control + * @return lwIP specific error (see error.h) + */ +static err_t +dhcp_select(struct netif *netif) +{ + struct dhcp *dhcp; + err_t result; + u16_t msecs; + u8_t i; + struct pbuf *p_out; + u16_t options_out_len; + + LWIP_ERROR("dhcp_select: netif != NULL", (netif != NULL), return ERR_ARG;); + dhcp = netif_dhcp_data(netif); + LWIP_ERROR("dhcp_select: dhcp != NULL", (dhcp != NULL), return ERR_VAL;); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_select(netif=%p) %c%c%"U16_F"\n", (void *)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); + dhcp_set_state(dhcp, DHCP_STATE_REQUESTING); + + /* create and initialize the DHCP message header */ + p_out = dhcp_create_msg(netif, dhcp, DHCP_REQUEST, &options_out_len); + if (p_out != NULL) { + struct dhcp_msg *msg_out = (struct dhcp_msg *)p_out->payload; + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); + options_out_len = dhcp_option_short(options_out_len, msg_out->options, DHCP_MAX_MSG_LEN(netif)); + + /* MUST request the offered IP address */ + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_REQUESTED_IP, 4); + options_out_len = dhcp_option_long(options_out_len, msg_out->options, lwip_ntohl(ip4_addr_get_u32(&dhcp->offered_ip_addr))); + + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_SERVER_ID, 4); + options_out_len = dhcp_option_long(options_out_len, msg_out->options, lwip_ntohl(ip4_addr_get_u32(ip_2_ip4(&dhcp->server_ip_addr)))); + + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_PARAMETER_REQUEST_LIST, LWIP_ARRAYSIZE(dhcp_discover_request_options)); + for (i = 0; i < LWIP_ARRAYSIZE(dhcp_discover_request_options); i++) { + options_out_len = dhcp_option_byte(options_out_len, msg_out->options, dhcp_discover_request_options[i]); + } + +#if LWIP_NETIF_HOSTNAME + options_out_len = dhcp_option_hostname(options_out_len, msg_out->options, netif); +#endif /* LWIP_NETIF_HOSTNAME */ + + LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, DHCP_STATE_REQUESTING, msg_out, DHCP_REQUEST, &options_out_len); + dhcp_option_trailer(options_out_len, msg_out->options, p_out); + + /* send broadcast to any DHCP server */ + result = udp_sendto_if_src(dhcp_pcb, p_out, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER, netif, IP4_ADDR_ANY); + pbuf_free(p_out); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_select: REQUESTING\n")); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("dhcp_select: could not allocate DHCP request\n")); + result = ERR_MEM; + } + if (dhcp->tries < 255) { + dhcp->tries++; + } + msecs = (u16_t)((dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000); + dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_select(): set request timeout %"U16_F" msecs\n", msecs)); + return result; +} + +/** + * The DHCP timer that checks for lease renewal/rebind timeouts. + * Must be called once a minute (see @ref DHCP_COARSE_TIMER_SECS). + */ +void +dhcp_coarse_tmr(void) +{ + struct netif *netif; + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_coarse_tmr()\n")); + /* iterate through all network interfaces */ + NETIF_FOREACH(netif) { + /* only act on DHCP configured interfaces */ + struct dhcp *dhcp = netif_dhcp_data(netif); + if ((dhcp != NULL) && (dhcp->state != DHCP_STATE_OFF)) { + /* compare lease time to expire timeout */ + if (dhcp->t0_timeout && (++dhcp->lease_used == dhcp->t0_timeout)) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_coarse_tmr(): t0 timeout\n")); + /* this clients' lease time has expired */ + dhcp_release_and_stop(netif); + dhcp_start(netif); + /* timer is active (non zero), and triggers (zeroes) now? */ + } else if (dhcp->t2_rebind_time && (dhcp->t2_rebind_time-- == 1)) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_coarse_tmr(): t2 timeout\n")); + /* this clients' rebind timeout triggered */ + dhcp_t2_timeout(netif); + /* timer is active (non zero), and triggers (zeroes) now */ + } else if (dhcp->t1_renew_time && (dhcp->t1_renew_time-- == 1)) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_coarse_tmr(): t1 timeout\n")); + /* this clients' renewal timeout triggered */ + dhcp_t1_timeout(netif); + } + } + } +} + +/** + * DHCP transaction timeout handling (this function must be called every 500ms, + * see @ref DHCP_FINE_TIMER_MSECS). + * + * A DHCP server is expected to respond within a short period of time. + * This timer checks whether an outstanding DHCP request is timed out. + */ +void +dhcp_fine_tmr(void) +{ + struct netif *netif; + /* loop through netif's */ + NETIF_FOREACH(netif) { + struct dhcp *dhcp = netif_dhcp_data(netif); + /* only act on DHCP configured interfaces */ + if (dhcp != NULL) { + /* timer is active (non zero), and is about to trigger now */ + if (dhcp->request_timeout > 1) { + dhcp->request_timeout--; + } else if (dhcp->request_timeout == 1) { + dhcp->request_timeout--; + /* { dhcp->request_timeout == 0 } */ + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_fine_tmr(): request timeout\n")); + /* this client's request timeout triggered */ + dhcp_timeout(netif); + } + } + } +} + +/** + * A DHCP negotiation transaction, or ARP request, has timed out. + * + * The timer that was started with the DHCP or ARP request has + * timed out, indicating no response was received in time. + * + * @param netif the netif under DHCP control + */ +static void +dhcp_timeout(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout()\n")); + /* back-off period has passed, or server selection timed out */ + if ((dhcp->state == DHCP_STATE_BACKING_OFF) || (dhcp->state == DHCP_STATE_SELECTING)) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout(): restarting discovery\n")); + dhcp_discover(netif); + /* receiving the requested lease timed out */ + } else if (dhcp->state == DHCP_STATE_REQUESTING) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REQUESTING, DHCP request timed out\n")); + if (dhcp->tries <= 5) { + dhcp_select(netif); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REQUESTING, releasing, restarting\n")); + dhcp_release_and_stop(netif); + dhcp_start(netif); + } +#if DHCP_DOES_ARP_CHECK + /* received no ARP reply for the offered address (which is good) */ + } else if (dhcp->state == DHCP_STATE_CHECKING) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): CHECKING, ARP request timed out\n")); + if (dhcp->tries <= 1) { + dhcp_check(netif); + /* no ARP replies on the offered address, + looks like the IP address is indeed free */ + } else { + /* bind the interface to the offered address */ + dhcp_bind(netif); + } +#endif /* DHCP_DOES_ARP_CHECK */ + } else if (dhcp->state == DHCP_STATE_REBOOTING) { + if (dhcp->tries < REBOOT_TRIES) { + dhcp_reboot(netif); + } else { + dhcp_discover(netif); + } + } +} + +/** + * The renewal period has timed out. + * + * @param netif the netif under DHCP control + */ +static void +dhcp_t1_timeout(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_t1_timeout()\n")); + if ((dhcp->state == DHCP_STATE_REQUESTING) || (dhcp->state == DHCP_STATE_BOUND) || + (dhcp->state == DHCP_STATE_RENEWING)) { + /* just retry to renew - note that the rebind timer (t2) will + * eventually time-out if renew tries fail. */ + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("dhcp_t1_timeout(): must renew\n")); + /* This slightly different to RFC2131: DHCPREQUEST will be sent from state + DHCP_STATE_RENEWING, not DHCP_STATE_BOUND */ + dhcp_renew(netif); + /* Calculate next timeout */ + if (((dhcp->t2_timeout - dhcp->lease_used) / 2) >= ((60 + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS)) { + dhcp->t1_renew_time = (u16_t)((dhcp->t2_timeout - dhcp->lease_used) / 2); + } + } +} + +/** + * The rebind period has timed out. + * + * @param netif the netif under DHCP control + */ +static void +dhcp_t2_timeout(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_t2_timeout()\n")); + if ((dhcp->state == DHCP_STATE_REQUESTING) || (dhcp->state == DHCP_STATE_BOUND) || + (dhcp->state == DHCP_STATE_RENEWING) || (dhcp->state == DHCP_STATE_REBINDING)) { + /* just retry to rebind */ + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + ("dhcp_t2_timeout(): must rebind\n")); + /* This slightly different to RFC2131: DHCPREQUEST will be sent from state + DHCP_STATE_REBINDING, not DHCP_STATE_BOUND */ + dhcp_rebind(netif); + /* Calculate next timeout */ + if (((dhcp->t0_timeout - dhcp->lease_used) / 2) >= ((60 + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS)) { + dhcp->t2_rebind_time = (u16_t)((dhcp->t0_timeout - dhcp->lease_used) / 2); + } + } +} + +/** + * Handle a DHCP ACK packet + * + * @param netif the netif under DHCP control + */ +static void +dhcp_handle_ack(struct netif *netif, struct dhcp_msg *msg_in) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + +#if LWIP_DHCP_PROVIDE_DNS_SERVERS || LWIP_DHCP_GET_NTP_SRV + u8_t n; +#endif /* LWIP_DHCP_PROVIDE_DNS_SERVERS || LWIP_DHCP_GET_NTP_SRV */ +#if LWIP_DHCP_GET_NTP_SRV + ip4_addr_t ntp_server_addrs[LWIP_DHCP_MAX_NTP_SERVERS]; +#endif + + /* clear options we might not get from the ACK */ + ip4_addr_set_zero(&dhcp->offered_sn_mask); + ip4_addr_set_zero(&dhcp->offered_gw_addr); +#if LWIP_DHCP_BOOTP_FILE + ip4_addr_set_zero(&dhcp->offered_si_addr); +#endif /* LWIP_DHCP_BOOTP_FILE */ + + /* lease time given? */ + if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_LEASE_TIME)) { + /* remember offered lease time */ + dhcp->offered_t0_lease = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_LEASE_TIME); + } + /* renewal period given? */ + if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_T1)) { + /* remember given renewal period */ + dhcp->offered_t1_renew = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_T1); + } else { + /* calculate safe periods for renewal */ + dhcp->offered_t1_renew = dhcp->offered_t0_lease / 2; + } + + /* renewal period given? */ + if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_T2)) { + /* remember given rebind period */ + dhcp->offered_t2_rebind = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_T2); + } else { + /* calculate safe periods for rebinding (offered_t0_lease * 0.875 -> 87.5%)*/ + dhcp->offered_t2_rebind = (dhcp->offered_t0_lease * 7U) / 8U; + } + + /* (y)our internet address */ + ip4_addr_copy(dhcp->offered_ip_addr, msg_in->yiaddr); + +#if LWIP_DHCP_BOOTP_FILE + /* copy boot server address, + boot file name copied in dhcp_parse_reply if not overloaded */ + ip4_addr_copy(dhcp->offered_si_addr, msg_in->siaddr); +#endif /* LWIP_DHCP_BOOTP_FILE */ + + /* subnet mask given? */ + if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SUBNET_MASK)) { + /* remember given subnet mask */ + ip4_addr_set_u32(&dhcp->offered_sn_mask, lwip_htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_SUBNET_MASK))); + dhcp->subnet_mask_given = 1; + } else { + dhcp->subnet_mask_given = 0; + } + + /* gateway router */ + if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_ROUTER)) { + ip4_addr_set_u32(&dhcp->offered_gw_addr, lwip_htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_ROUTER))); + } + +#if LWIP_DHCP_GET_NTP_SRV + /* NTP servers */ + for (n = 0; (n < LWIP_DHCP_MAX_NTP_SERVERS) && dhcp_option_given(dhcp, DHCP_OPTION_IDX_NTP_SERVER + n); n++) { + ip4_addr_set_u32(&ntp_server_addrs[n], lwip_htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_NTP_SERVER + n))); + } + dhcp_set_ntp_servers(n, ntp_server_addrs); +#endif /* LWIP_DHCP_GET_NTP_SRV */ + +#if LWIP_DHCP_PROVIDE_DNS_SERVERS + /* DNS servers */ + for (n = 0; (n < LWIP_DHCP_PROVIDE_DNS_SERVERS) && dhcp_option_given(dhcp, DHCP_OPTION_IDX_DNS_SERVER + n); n++) { + ip_addr_t dns_addr; + ip_addr_set_ip4_u32_val(dns_addr, lwip_htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_DNS_SERVER + n))); + dns_setserver(n, &dns_addr); + } +#endif /* LWIP_DHCP_PROVIDE_DNS_SERVERS */ +} + +/** + * @ingroup dhcp4 + * Set a statically allocated struct dhcp to work with. + * Using this prevents dhcp_start to allocate it using mem_malloc. + * + * @param netif the netif for which to set the struct dhcp + * @param dhcp (uninitialised) dhcp struct allocated by the application + */ +void +dhcp_set_struct(struct netif *netif, struct dhcp *dhcp) +{ + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("netif != NULL", netif != NULL); + LWIP_ASSERT("dhcp != NULL", dhcp != NULL); + LWIP_ASSERT("netif already has a struct dhcp set", netif_dhcp_data(netif) == NULL); + + /* clear data structure */ + memset(dhcp, 0, sizeof(struct dhcp)); + /* dhcp_set_state(&dhcp, DHCP_STATE_OFF); */ + netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP, dhcp); +} + +/** + * @ingroup dhcp4 + * Removes a struct dhcp from a netif. + * + * ATTENTION: Only use this when not using dhcp_set_struct() to allocate the + * struct dhcp since the memory is passed back to the heap. + * + * @param netif the netif from which to remove the struct dhcp + */ +void dhcp_cleanup(struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("netif != NULL", netif != NULL); + + if (netif_dhcp_data(netif) != NULL) { + mem_free(netif_dhcp_data(netif)); + netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP, NULL); + } +} + +/** + * @ingroup dhcp4 + * Start DHCP negotiation for a network interface. + * + * If no DHCP client instance was attached to this interface, + * a new client is created first. If a DHCP client instance + * was already present, it restarts negotiation. + * + * @param netif The lwIP network interface + * @return lwIP error code + * - ERR_OK - No error + * - ERR_MEM - Out of memory + */ +err_t +dhcp_start(struct netif *netif) +{ + struct dhcp *dhcp; + err_t result; + + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG;); + LWIP_ERROR("netif is not up, old style port?", netif_is_up(netif), return ERR_ARG;); + dhcp = netif_dhcp_data(netif); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(netif=%p) %c%c%"U16_F"\n", (void *)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); + + /* check MTU of the netif */ + if (netif->mtu < DHCP_MAX_MSG_LEN_MIN_REQUIRED) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): Cannot use this netif with DHCP: MTU is too small\n")); + return ERR_MEM; + } + + /* no DHCP client attached yet? */ + if (dhcp == NULL) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): mallocing new DHCP client\n")); + dhcp = (struct dhcp *)mem_malloc(sizeof(struct dhcp)); + if (dhcp == NULL) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): could not allocate dhcp\n")); + return ERR_MEM; + } + + /* store this dhcp client in the netif */ + netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP, dhcp); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): allocated dhcp")); + /* already has DHCP client attached */ + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(): restarting DHCP configuration\n")); + + if (dhcp->pcb_allocated != 0) { + dhcp_dec_pcb_refcount(); /* free DHCP PCB if not needed any more */ + } + /* dhcp is cleared below, no need to reset flag*/ + } + + /* clear data structure */ + memset(dhcp, 0, sizeof(struct dhcp)); + /* dhcp_set_state(&dhcp, DHCP_STATE_OFF); */ + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): starting DHCP configuration\n")); + + if (dhcp_inc_pcb_refcount() != ERR_OK) { /* ensure DHCP PCB is allocated */ + return ERR_MEM; + } + dhcp->pcb_allocated = 1; + + if (!netif_is_link_up(netif)) { + /* set state INIT and wait for dhcp_network_changed() to call dhcp_discover() */ + dhcp_set_state(dhcp, DHCP_STATE_INIT); + return ERR_OK; + } + + /* (re)start the DHCP negotiation */ + result = dhcp_discover(netif); + if (result != ERR_OK) { + /* free resources allocated above */ + dhcp_release_and_stop(netif); + return ERR_MEM; + } + return result; +} + +/** + * @ingroup dhcp4 + * Inform a DHCP server of our manual configuration. + * + * This informs DHCP servers of our fixed IP address configuration + * by sending an INFORM message. It does not involve DHCP address + * configuration, it is just here to be nice to the network. + * + * @param netif The lwIP network interface + */ +void +dhcp_inform(struct netif *netif) +{ + struct dhcp dhcp; + struct pbuf *p_out; + u16_t options_out_len; + + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ERROR("netif != NULL", (netif != NULL), return;); + + if (dhcp_inc_pcb_refcount() != ERR_OK) { /* ensure DHCP PCB is allocated */ + return; + } + + memset(&dhcp, 0, sizeof(struct dhcp)); + dhcp_set_state(&dhcp, DHCP_STATE_INFORMING); + + /* create and initialize the DHCP message header */ + p_out = dhcp_create_msg(netif, &dhcp, DHCP_INFORM, &options_out_len); + if (p_out != NULL) { + struct dhcp_msg *msg_out = (struct dhcp_msg *)p_out->payload; + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); + options_out_len = dhcp_option_short(options_out_len, msg_out->options, DHCP_MAX_MSG_LEN(netif)); + + LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, &dhcp, DHCP_STATE_INFORMING, msg_out, DHCP_INFORM, &options_out_len); + dhcp_option_trailer(options_out_len, msg_out->options, p_out); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_inform: INFORMING\n")); + + udp_sendto_if(dhcp_pcb, p_out, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER, netif); + + pbuf_free(p_out); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_inform: could not allocate DHCP request\n")); + } + + dhcp_dec_pcb_refcount(); /* delete DHCP PCB if not needed any more */ +} + +/** Handle a possible change in the network configuration. + * + * This enters the REBOOTING state to verify that the currently bound + * address is still valid. + */ +void +dhcp_network_changed(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + + if (!dhcp) { + return; + } + switch (dhcp->state) { + case DHCP_STATE_REBINDING: + case DHCP_STATE_RENEWING: + case DHCP_STATE_BOUND: + case DHCP_STATE_REBOOTING: + dhcp->tries = 0; + dhcp_reboot(netif); + break; + case DHCP_STATE_OFF: + /* stay off */ + break; + default: + LWIP_ASSERT("invalid dhcp->state", dhcp->state <= DHCP_STATE_BACKING_OFF); + /* INIT/REQUESTING/CHECKING/BACKING_OFF restart with new 'rid' because the + state changes, SELECTING: continue with current 'rid' as we stay in the + same state */ +#if LWIP_DHCP_AUTOIP_COOP + if (dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_ON) { + autoip_stop(netif); + dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_OFF; + } +#endif /* LWIP_DHCP_AUTOIP_COOP */ + /* ensure we start with short timeouts, even if already discovering */ + dhcp->tries = 0; + dhcp_discover(netif); + break; + } +} + +#if DHCP_DOES_ARP_CHECK +/** + * Match an ARP reply with the offered IP address: + * check whether the offered IP address is not in use using ARP + * + * @param netif the network interface on which the reply was received + * @param addr The IP address we received a reply from + */ +void +dhcp_arp_reply(struct netif *netif, const ip4_addr_t *addr) +{ + struct dhcp *dhcp; + + LWIP_ERROR("netif != NULL", (netif != NULL), return;); + dhcp = netif_dhcp_data(netif); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_arp_reply()\n")); + /* is a DHCP client doing an ARP check? */ + if ((dhcp != NULL) && (dhcp->state == DHCP_STATE_CHECKING)) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_arp_reply(): CHECKING, arp reply for 0x%08"X32_F"\n", + ip4_addr_get_u32(addr))); + /* did a host respond with the address we + were offered by the DHCP server? */ + if (ip4_addr_cmp(addr, &dhcp->offered_ip_addr)) { + /* we will not accept the offered address */ + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | LWIP_DBG_LEVEL_WARNING, + ("dhcp_arp_reply(): arp reply matched with offered address, declining\n")); + dhcp_decline(netif); + } + } +} + +/** + * Decline an offered lease. + * + * Tell the DHCP server we do not accept the offered address. + * One reason to decline the lease is when we find out the address + * is already in use by another host (through ARP). + * + * @param netif the netif under DHCP control + */ +static err_t +dhcp_decline(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + err_t result; + u16_t msecs; + struct pbuf *p_out; + u16_t options_out_len; + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_decline()\n")); + dhcp_set_state(dhcp, DHCP_STATE_BACKING_OFF); + /* create and initialize the DHCP message header */ + p_out = dhcp_create_msg(netif, dhcp, DHCP_DECLINE, &options_out_len); + if (p_out != NULL) { + struct dhcp_msg *msg_out = (struct dhcp_msg *)p_out->payload; + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_REQUESTED_IP, 4); + options_out_len = dhcp_option_long(options_out_len, msg_out->options, lwip_ntohl(ip4_addr_get_u32(&dhcp->offered_ip_addr))); + + LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, DHCP_STATE_BACKING_OFF, msg_out, DHCP_DECLINE, &options_out_len); + dhcp_option_trailer(options_out_len, msg_out->options, p_out); + + /* per section 4.4.4, broadcast DECLINE messages */ + result = udp_sendto_if_src(dhcp_pcb, p_out, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER, netif, IP4_ADDR_ANY); + pbuf_free(p_out); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_decline: BACKING OFF\n")); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, + ("dhcp_decline: could not allocate DHCP request\n")); + result = ERR_MEM; + } + if (dhcp->tries < 255) { + dhcp->tries++; + } + msecs = 10 * 1000; + dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_decline(): set request timeout %"U16_F" msecs\n", msecs)); + return result; +} +#endif /* DHCP_DOES_ARP_CHECK */ + + +/** + * Start the DHCP process, discover a DHCP server. + * + * @param netif the netif under DHCP control + */ +static err_t +dhcp_discover(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + err_t result = ERR_OK; + u16_t msecs; + u8_t i; + struct pbuf *p_out; + u16_t options_out_len; + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover()\n")); + + ip4_addr_set_any(&dhcp->offered_ip_addr); + dhcp_set_state(dhcp, DHCP_STATE_SELECTING); + /* create and initialize the DHCP message header */ + p_out = dhcp_create_msg(netif, dhcp, DHCP_DISCOVER, &options_out_len); + if (p_out != NULL) { + struct dhcp_msg *msg_out = (struct dhcp_msg *)p_out->payload; + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: making request\n")); + + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); + options_out_len = dhcp_option_short(options_out_len, msg_out->options, DHCP_MAX_MSG_LEN(netif)); + + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_PARAMETER_REQUEST_LIST, LWIP_ARRAYSIZE(dhcp_discover_request_options)); + for (i = 0; i < LWIP_ARRAYSIZE(dhcp_discover_request_options); i++) { + options_out_len = dhcp_option_byte(options_out_len, msg_out->options, dhcp_discover_request_options[i]); + } + LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, DHCP_STATE_SELECTING, msg_out, DHCP_DISCOVER, &options_out_len); + dhcp_option_trailer(options_out_len, msg_out->options, p_out); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: sendto(DISCOVER, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER)\n")); + udp_sendto_if_src(dhcp_pcb, p_out, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER, netif, IP4_ADDR_ANY); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: deleting()ing\n")); + pbuf_free(p_out); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover: SELECTING\n")); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_discover: could not allocate DHCP request\n")); + } + if (dhcp->tries < 255) { + dhcp->tries++; + } +#if LWIP_DHCP_AUTOIP_COOP + if (dhcp->tries >= LWIP_DHCP_AUTOIP_COOP_TRIES && dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_OFF) { + dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_ON; + autoip_start(netif); + } +#endif /* LWIP_DHCP_AUTOIP_COOP */ + msecs = (u16_t)((dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000); + dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover(): set request timeout %"U16_F" msecs\n", msecs)); + return result; +} + + +/** + * Bind the interface to the offered IP address. + * + * @param netif network interface to bind to the offered address + */ +static void +dhcp_bind(struct netif *netif) +{ + u32_t timeout; + struct dhcp *dhcp; + ip4_addr_t sn_mask, gw_addr; + LWIP_ERROR("dhcp_bind: netif != NULL", (netif != NULL), return;); + dhcp = netif_dhcp_data(netif); + LWIP_ERROR("dhcp_bind: dhcp != NULL", (dhcp != NULL), return;); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(netif=%p) %c%c%"U16_F"\n", (void *)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); + + /* reset time used of lease */ + dhcp->lease_used = 0; + + if (dhcp->offered_t0_lease != 0xffffffffUL) { + /* set renewal period timer */ + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t0 renewal timer %"U32_F" secs\n", dhcp->offered_t0_lease)); + timeout = (dhcp->offered_t0_lease + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS; + if (timeout > 0xffff) { + timeout = 0xffff; + } + dhcp->t0_timeout = (u16_t)timeout; + if (dhcp->t0_timeout == 0) { + dhcp->t0_timeout = 1; + } + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t0_lease * 1000)); + } + + /* temporary DHCP lease? */ + if (dhcp->offered_t1_renew != 0xffffffffUL) { + /* set renewal period timer */ + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t1 renewal timer %"U32_F" secs\n", dhcp->offered_t1_renew)); + timeout = (dhcp->offered_t1_renew + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS; + if (timeout > 0xffff) { + timeout = 0xffff; + } + dhcp->t1_timeout = (u16_t)timeout; + if (dhcp->t1_timeout == 0) { + dhcp->t1_timeout = 1; + } + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t1_renew * 1000)); + dhcp->t1_renew_time = dhcp->t1_timeout; + } + /* set renewal period timer */ + if (dhcp->offered_t2_rebind != 0xffffffffUL) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t2 rebind timer %"U32_F" secs\n", dhcp->offered_t2_rebind)); + timeout = (dhcp->offered_t2_rebind + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS; + if (timeout > 0xffff) { + timeout = 0xffff; + } + dhcp->t2_timeout = (u16_t)timeout; + if (dhcp->t2_timeout == 0) { + dhcp->t2_timeout = 1; + } + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t2_rebind * 1000)); + dhcp->t2_rebind_time = dhcp->t2_timeout; + } + + /* If we have sub 1 minute lease, t2 and t1 will kick in at the same time. */ + if ((dhcp->t1_timeout >= dhcp->t2_timeout) && (dhcp->t2_timeout > 0)) { + dhcp->t1_timeout = 0; + } + + if (dhcp->subnet_mask_given) { + /* copy offered network mask */ + ip4_addr_copy(sn_mask, dhcp->offered_sn_mask); + } else { + /* subnet mask not given, choose a safe subnet mask given the network class */ + u8_t first_octet = ip4_addr1(&dhcp->offered_ip_addr); + if (first_octet <= 127) { + ip4_addr_set_u32(&sn_mask, PP_HTONL(0xff000000UL)); + } else if (first_octet >= 192) { + ip4_addr_set_u32(&sn_mask, PP_HTONL(0xffffff00UL)); + } else { + ip4_addr_set_u32(&sn_mask, PP_HTONL(0xffff0000UL)); + } + } + + ip4_addr_copy(gw_addr, dhcp->offered_gw_addr); + /* gateway address not given? */ + if (ip4_addr_isany_val(gw_addr)) { + /* copy network address */ + ip4_addr_get_network(&gw_addr, &dhcp->offered_ip_addr, &sn_mask); + /* use first host address on network as gateway */ + ip4_addr_set_u32(&gw_addr, ip4_addr_get_u32(&gw_addr) | PP_HTONL(0x00000001UL)); + } + +#if LWIP_DHCP_AUTOIP_COOP + if (dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_ON) { + autoip_stop(netif); + dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_OFF; + } +#endif /* LWIP_DHCP_AUTOIP_COOP */ + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): IP: 0x%08"X32_F" SN: 0x%08"X32_F" GW: 0x%08"X32_F"\n", + ip4_addr_get_u32(&dhcp->offered_ip_addr), ip4_addr_get_u32(&sn_mask), ip4_addr_get_u32(&gw_addr))); + /* netif is now bound to DHCP leased address - set this before assigning the address + to ensure the callback can use dhcp_supplied_address() */ + dhcp_set_state(dhcp, DHCP_STATE_BOUND); + + netif_set_addr(netif, &dhcp->offered_ip_addr, &sn_mask, &gw_addr); + /* interface is used by routing now that an address is set */ +} + +/** + * @ingroup dhcp4 + * Renew an existing DHCP lease at the involved DHCP server. + * + * @param netif network interface which must renew its lease + */ +err_t +dhcp_renew(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + err_t result; + u16_t msecs; + u8_t i; + struct pbuf *p_out; + u16_t options_out_len; + + LWIP_ASSERT_CORE_LOCKED(); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_renew()\n")); + dhcp_set_state(dhcp, DHCP_STATE_RENEWING); + + /* create and initialize the DHCP message header */ + p_out = dhcp_create_msg(netif, dhcp, DHCP_REQUEST, &options_out_len); + if (p_out != NULL) { + struct dhcp_msg *msg_out = (struct dhcp_msg *)p_out->payload; + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); + options_out_len = dhcp_option_short(options_out_len, msg_out->options, DHCP_MAX_MSG_LEN(netif)); + + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_PARAMETER_REQUEST_LIST, LWIP_ARRAYSIZE(dhcp_discover_request_options)); + for (i = 0; i < LWIP_ARRAYSIZE(dhcp_discover_request_options); i++) { + options_out_len = dhcp_option_byte(options_out_len, msg_out->options, dhcp_discover_request_options[i]); + } + +#if LWIP_NETIF_HOSTNAME + options_out_len = dhcp_option_hostname(options_out_len, msg_out->options, netif); +#endif /* LWIP_NETIF_HOSTNAME */ + + LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, DHCP_STATE_RENEWING, msg_out, DHCP_REQUEST, &options_out_len); + dhcp_option_trailer(options_out_len, msg_out->options, p_out); + + result = udp_sendto_if(dhcp_pcb, p_out, &dhcp->server_ip_addr, LWIP_IANA_PORT_DHCP_SERVER, netif); + pbuf_free(p_out); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew: RENEWING\n")); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_renew: could not allocate DHCP request\n")); + result = ERR_MEM; + } + if (dhcp->tries < 255) { + dhcp->tries++; + } + /* back-off on retries, but to a maximum of 20 seconds */ + msecs = (u16_t)(dhcp->tries < 10 ? dhcp->tries * 2000 : 20 * 1000); + dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew(): set request timeout %"U16_F" msecs\n", msecs)); + return result; +} + +/** + * Rebind with a DHCP server for an existing DHCP lease. + * + * @param netif network interface which must rebind with a DHCP server + */ +static err_t +dhcp_rebind(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + err_t result; + u16_t msecs; + u8_t i; + struct pbuf *p_out; + u16_t options_out_len; + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind()\n")); + dhcp_set_state(dhcp, DHCP_STATE_REBINDING); + + /* create and initialize the DHCP message header */ + p_out = dhcp_create_msg(netif, dhcp, DHCP_REQUEST, &options_out_len); + if (p_out != NULL) { + struct dhcp_msg *msg_out = (struct dhcp_msg *)p_out->payload; + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); + options_out_len = dhcp_option_short(options_out_len, msg_out->options, DHCP_MAX_MSG_LEN(netif)); + + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_PARAMETER_REQUEST_LIST, LWIP_ARRAYSIZE(dhcp_discover_request_options)); + for (i = 0; i < LWIP_ARRAYSIZE(dhcp_discover_request_options); i++) { + options_out_len = dhcp_option_byte(options_out_len, msg_out->options, dhcp_discover_request_options[i]); + } + +#if LWIP_NETIF_HOSTNAME + options_out_len = dhcp_option_hostname(options_out_len, msg_out->options, netif); +#endif /* LWIP_NETIF_HOSTNAME */ + + LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, DHCP_STATE_REBINDING, msg_out, DHCP_DISCOVER, &options_out_len); + dhcp_option_trailer(options_out_len, msg_out->options, p_out); + + /* broadcast to server */ + result = udp_sendto_if(dhcp_pcb, p_out, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER, netif); + pbuf_free(p_out); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind: REBINDING\n")); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_rebind: could not allocate DHCP request\n")); + result = ERR_MEM; + } + if (dhcp->tries < 255) { + dhcp->tries++; + } + msecs = (u16_t)(dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000); + dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind(): set request timeout %"U16_F" msecs\n", msecs)); + return result; +} + +/** + * Enter REBOOTING state to verify an existing lease + * + * @param netif network interface which must reboot + */ +static err_t +dhcp_reboot(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + err_t result; + u16_t msecs; + u8_t i; + struct pbuf *p_out; + u16_t options_out_len; + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot()\n")); + dhcp_set_state(dhcp, DHCP_STATE_REBOOTING); + + /* create and initialize the DHCP message header */ + p_out = dhcp_create_msg(netif, dhcp, DHCP_REQUEST, &options_out_len); + if (p_out != NULL) { + struct dhcp_msg *msg_out = (struct dhcp_msg *)p_out->payload; + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); + options_out_len = dhcp_option_short(options_out_len, msg_out->options, DHCP_MAX_MSG_LEN_MIN_REQUIRED); + + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_REQUESTED_IP, 4); + options_out_len = dhcp_option_long(options_out_len, msg_out->options, lwip_ntohl(ip4_addr_get_u32(&dhcp->offered_ip_addr))); + + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_PARAMETER_REQUEST_LIST, LWIP_ARRAYSIZE(dhcp_discover_request_options)); + for (i = 0; i < LWIP_ARRAYSIZE(dhcp_discover_request_options); i++) { + options_out_len = dhcp_option_byte(options_out_len, msg_out->options, dhcp_discover_request_options[i]); + } + +#if LWIP_NETIF_HOSTNAME + options_out_len = dhcp_option_hostname(options_out_len, msg_out->options, netif); +#endif /* LWIP_NETIF_HOSTNAME */ + + LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, DHCP_STATE_REBOOTING, msg_out, DHCP_REQUEST, &options_out_len); + dhcp_option_trailer(options_out_len, msg_out->options, p_out); + + /* broadcast to server */ + result = udp_sendto_if(dhcp_pcb, p_out, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER, netif); + pbuf_free(p_out); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot: REBOOTING\n")); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_reboot: could not allocate DHCP request\n")); + result = ERR_MEM; + } + if (dhcp->tries < 255) { + dhcp->tries++; + } + msecs = (u16_t)(dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000); + dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot(): set request timeout %"U16_F" msecs\n", msecs)); + return result; +} + +/** + * @ingroup dhcp4 + * Release a DHCP lease and stop DHCP statemachine (and AUTOIP if LWIP_DHCP_AUTOIP_COOP). + * + * @param netif network interface + */ +void +dhcp_release_and_stop(struct netif *netif) +{ + struct dhcp *dhcp = netif_dhcp_data(netif); + ip_addr_t server_ip_addr; + + LWIP_ASSERT_CORE_LOCKED(); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_release_and_stop()\n")); + if (dhcp == NULL) { + return; + } + + /* already off? -> nothing to do */ + if (dhcp->state == DHCP_STATE_OFF) { + return; + } + + ip_addr_copy(server_ip_addr, dhcp->server_ip_addr); + + /* clean old DHCP offer */ + ip_addr_set_zero_ip4(&dhcp->server_ip_addr); + ip4_addr_set_zero(&dhcp->offered_ip_addr); + ip4_addr_set_zero(&dhcp->offered_sn_mask); + ip4_addr_set_zero(&dhcp->offered_gw_addr); +#if LWIP_DHCP_BOOTP_FILE + ip4_addr_set_zero(&dhcp->offered_si_addr); +#endif /* LWIP_DHCP_BOOTP_FILE */ + dhcp->offered_t0_lease = dhcp->offered_t1_renew = dhcp->offered_t2_rebind = 0; + dhcp->t1_renew_time = dhcp->t2_rebind_time = dhcp->lease_used = dhcp->t0_timeout = 0; + + /* send release message when current IP was assigned via DHCP */ + if (dhcp_supplied_address(netif)) { + /* create and initialize the DHCP message header */ + struct pbuf *p_out; + u16_t options_out_len; + p_out = dhcp_create_msg(netif, dhcp, DHCP_RELEASE, &options_out_len); + if (p_out != NULL) { + struct dhcp_msg *msg_out = (struct dhcp_msg *)p_out->payload; + options_out_len = dhcp_option(options_out_len, msg_out->options, DHCP_OPTION_SERVER_ID, 4); + options_out_len = dhcp_option_long(options_out_len, msg_out->options, lwip_ntohl(ip4_addr_get_u32(ip_2_ip4(&server_ip_addr)))); + + LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, dhcp->state, msg_out, DHCP_RELEASE, &options_out_len); + dhcp_option_trailer(options_out_len, msg_out->options, p_out); + + udp_sendto_if(dhcp_pcb, p_out, &server_ip_addr, LWIP_IANA_PORT_DHCP_SERVER, netif); + pbuf_free(p_out); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_release: RELEASED, DHCP_STATE_OFF\n")); + } else { + /* sending release failed, but that's not a problem since the correct behaviour of dhcp does not rely on release */ + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_release: could not allocate DHCP request\n")); + } + } + + /* remove IP address from interface (prevents routing from selecting this interface) */ + netif_set_addr(netif, IP4_ADDR_ANY4, IP4_ADDR_ANY4, IP4_ADDR_ANY4); + +#if LWIP_DHCP_AUTOIP_COOP + if (dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_ON) { + autoip_stop(netif); + dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_OFF; + } +#endif /* LWIP_DHCP_AUTOIP_COOP */ + + dhcp_set_state(dhcp, DHCP_STATE_OFF); + + if (dhcp->pcb_allocated != 0) { + dhcp_dec_pcb_refcount(); /* free DHCP PCB if not needed any more */ + dhcp->pcb_allocated = 0; + } +} + +/** + * @ingroup dhcp4 + * This function calls dhcp_release_and_stop() internally. + * @deprecated Use dhcp_release_and_stop() instead. + */ +err_t +dhcp_release(struct netif *netif) +{ + dhcp_release_and_stop(netif); + return ERR_OK; +} + +/** + * @ingroup dhcp4 + * This function calls dhcp_release_and_stop() internally. + * @deprecated Use dhcp_release_and_stop() instead. + */ +void +dhcp_stop(struct netif *netif) +{ + dhcp_release_and_stop(netif); +} + +/* + * Set the DHCP state of a DHCP client. + * + * If the state changed, reset the number of tries. + */ +static void +dhcp_set_state(struct dhcp *dhcp, u8_t new_state) +{ + if (new_state != dhcp->state) { + dhcp->state = new_state; + dhcp->tries = 0; + dhcp->request_timeout = 0; + } +} + +/* + * Concatenate an option type and length field to the outgoing + * DHCP message. + * + */ +static u16_t +dhcp_option(u16_t options_out_len, u8_t *options, u8_t option_type, u8_t option_len) +{ + LWIP_ASSERT("dhcp_option: options_out_len + 2 + option_len <= DHCP_OPTIONS_LEN", options_out_len + 2U + option_len <= DHCP_OPTIONS_LEN); + options[options_out_len++] = option_type; + options[options_out_len++] = option_len; + return options_out_len; +} +/* + * Concatenate a single byte to the outgoing DHCP message. + * + */ +static u16_t +dhcp_option_byte(u16_t options_out_len, u8_t *options, u8_t value) +{ + LWIP_ASSERT("dhcp_option_byte: options_out_len < DHCP_OPTIONS_LEN", options_out_len < DHCP_OPTIONS_LEN); + options[options_out_len++] = value; + return options_out_len; +} + +static u16_t +dhcp_option_short(u16_t options_out_len, u8_t *options, u16_t value) +{ + LWIP_ASSERT("dhcp_option_short: options_out_len + 2 <= DHCP_OPTIONS_LEN", options_out_len + 2U <= DHCP_OPTIONS_LEN); + options[options_out_len++] = (u8_t)((value & 0xff00U) >> 8); + options[options_out_len++] = (u8_t) (value & 0x00ffU); + return options_out_len; +} + +static u16_t +dhcp_option_long(u16_t options_out_len, u8_t *options, u32_t value) +{ + LWIP_ASSERT("dhcp_option_long: options_out_len + 4 <= DHCP_OPTIONS_LEN", options_out_len + 4U <= DHCP_OPTIONS_LEN); + options[options_out_len++] = (u8_t)((value & 0xff000000UL) >> 24); + options[options_out_len++] = (u8_t)((value & 0x00ff0000UL) >> 16); + options[options_out_len++] = (u8_t)((value & 0x0000ff00UL) >> 8); + options[options_out_len++] = (u8_t)((value & 0x000000ffUL)); + return options_out_len; +} + +#if LWIP_NETIF_HOSTNAME +static u16_t +dhcp_option_hostname(u16_t options_out_len, u8_t *options, struct netif *netif) +{ + if (netif->hostname != NULL) { + size_t namelen = strlen(netif->hostname); + if (namelen > 0) { + size_t len; + const char *p = netif->hostname; + /* Shrink len to available bytes (need 2 bytes for OPTION_HOSTNAME + and 1 byte for trailer) */ + size_t available = DHCP_OPTIONS_LEN - options_out_len - 3; + LWIP_ASSERT("DHCP: hostname is too long!", namelen <= available); + len = LWIP_MIN(namelen, available); + LWIP_ASSERT("DHCP: hostname is too long!", len <= 0xFF); + options_out_len = dhcp_option(options_out_len, options, DHCP_OPTION_HOSTNAME, (u8_t)len); + while (len--) { + options_out_len = dhcp_option_byte(options_out_len, options, *p++); + } + } + } + return options_out_len; +} +#endif /* LWIP_NETIF_HOSTNAME */ + +/** + * Extract the DHCP message and the DHCP options. + * + * Extract the DHCP message and the DHCP options, each into a contiguous + * piece of memory. As a DHCP message is variable sized by its options, + * and also allows overriding some fields for options, the easy approach + * is to first unfold the options into a contiguous piece of memory, and + * use that further on. + * + */ +static err_t +dhcp_parse_reply(struct pbuf *p, struct dhcp *dhcp) +{ + u8_t *options; + u16_t offset; + u16_t offset_max; + u16_t options_idx; + u16_t options_idx_max; + struct pbuf *q; + int parse_file_as_options = 0; + int parse_sname_as_options = 0; + struct dhcp_msg *msg_in; +#if LWIP_DHCP_BOOTP_FILE + int file_overloaded = 0; +#endif + + LWIP_UNUSED_ARG(dhcp); + + /* clear received options */ + dhcp_clear_all_options(dhcp); + /* check that beginning of dhcp_msg (up to and including chaddr) is in first pbuf */ + if (p->len < DHCP_SNAME_OFS) { + return ERR_BUF; + } + msg_in = (struct dhcp_msg *)p->payload; +#if LWIP_DHCP_BOOTP_FILE + /* clear boot file name */ + dhcp->boot_file_name[0] = 0; +#endif /* LWIP_DHCP_BOOTP_FILE */ + + /* parse options */ + + /* start with options field */ + options_idx = DHCP_OPTIONS_OFS; + /* parse options to the end of the received packet */ + options_idx_max = p->tot_len; +again: + q = p; + while ((q != NULL) && (options_idx >= q->len)) { + options_idx = (u16_t)(options_idx - q->len); + options_idx_max = (u16_t)(options_idx_max - q->len); + q = q->next; + } + if (q == NULL) { + return ERR_BUF; + } + offset = options_idx; + offset_max = options_idx_max; + options = (u8_t *)q->payload; + /* at least 1 byte to read and no end marker, then at least 3 bytes to read? */ + while ((q != NULL) && (offset < offset_max) && (options[offset] != DHCP_OPTION_END)) { + u8_t op = options[offset]; + u8_t len; + u8_t decode_len = 0; + int decode_idx = -1; + u16_t val_offset = (u16_t)(offset + 2); + if (val_offset < offset) { + /* overflow */ + return ERR_BUF; + } + /* len byte might be in the next pbuf */ + if ((offset + 1) < q->len) { + len = options[offset + 1]; + } else { + len = (q->next != NULL ? ((u8_t *)q->next->payload)[0] : 0); + } + /* LWIP_DEBUGF(DHCP_DEBUG, ("msg_offset=%"U16_F", q->len=%"U16_F, msg_offset, q->len)); */ + decode_len = len; + switch (op) { + /* case(DHCP_OPTION_END): handled above */ + case (DHCP_OPTION_PAD): + /* special option: no len encoded */ + decode_len = len = 0; + /* will be increased below */ + break; + case (DHCP_OPTION_SUBNET_MASK): + LWIP_ERROR("len == 4", len == 4, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_SUBNET_MASK; + break; + case (DHCP_OPTION_ROUTER): + decode_len = 4; /* only copy the first given router */ + LWIP_ERROR("len >= decode_len", len >= decode_len, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_ROUTER; + break; +#if LWIP_DHCP_PROVIDE_DNS_SERVERS + case (DHCP_OPTION_DNS_SERVER): + /* special case: there might be more than one server */ + LWIP_ERROR("len %% 4 == 0", len % 4 == 0, return ERR_VAL;); + /* limit number of DNS servers */ + decode_len = LWIP_MIN(len, 4 * DNS_MAX_SERVERS); + LWIP_ERROR("len >= decode_len", len >= decode_len, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_DNS_SERVER; + break; +#endif /* LWIP_DHCP_PROVIDE_DNS_SERVERS */ + case (DHCP_OPTION_LEASE_TIME): + LWIP_ERROR("len == 4", len == 4, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_LEASE_TIME; + break; +#if LWIP_DHCP_GET_NTP_SRV + case (DHCP_OPTION_NTP): + /* special case: there might be more than one server */ + LWIP_ERROR("len %% 4 == 0", len % 4 == 0, return ERR_VAL;); + /* limit number of NTP servers */ + decode_len = LWIP_MIN(len, 4 * LWIP_DHCP_MAX_NTP_SERVERS); + LWIP_ERROR("len >= decode_len", len >= decode_len, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_NTP_SERVER; + break; +#endif /* LWIP_DHCP_GET_NTP_SRV*/ + case (DHCP_OPTION_OVERLOAD): + LWIP_ERROR("len == 1", len == 1, return ERR_VAL;); + /* decode overload only in options, not in file/sname: invalid packet */ + LWIP_ERROR("overload in file/sname", options_idx == DHCP_OPTIONS_OFS, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_OVERLOAD; + break; + case (DHCP_OPTION_MESSAGE_TYPE): + LWIP_ERROR("len == 1", len == 1, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_MSG_TYPE; + break; + case (DHCP_OPTION_SERVER_ID): + LWIP_ERROR("len == 4", len == 4, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_SERVER_ID; + break; + case (DHCP_OPTION_T1): + LWIP_ERROR("len == 4", len == 4, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_T1; + break; + case (DHCP_OPTION_T2): + LWIP_ERROR("len == 4", len == 4, return ERR_VAL;); + decode_idx = DHCP_OPTION_IDX_T2; + break; + default: + decode_len = 0; + LWIP_DEBUGF(DHCP_DEBUG, ("skipping option %"U16_F" in options\n", (u16_t)op)); + LWIP_HOOK_DHCP_PARSE_OPTION(ip_current_netif(), dhcp, dhcp->state, msg_in, + dhcp_option_given(dhcp, DHCP_OPTION_IDX_MSG_TYPE) ? (u8_t)dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_MSG_TYPE) : 0, + op, len, q, val_offset); + break; + } + if (op == DHCP_OPTION_PAD) { + offset++; + } else { + if (offset + len + 2 > 0xFFFF) { + /* overflow */ + return ERR_BUF; + } + offset = (u16_t)(offset + len + 2); + if (decode_len > 0) { + u32_t value = 0; + u16_t copy_len; +decode_next: + LWIP_ASSERT("check decode_idx", decode_idx >= 0 && decode_idx < DHCP_OPTION_IDX_MAX); + if (!dhcp_option_given(dhcp, decode_idx)) { + copy_len = LWIP_MIN(decode_len, 4); + if (pbuf_copy_partial(q, &value, copy_len, val_offset) != copy_len) { + return ERR_BUF; + } + if (decode_len > 4) { + /* decode more than one u32_t */ + u16_t next_val_offset; + LWIP_ERROR("decode_len %% 4 == 0", decode_len % 4 == 0, return ERR_VAL;); + dhcp_got_option(dhcp, decode_idx); + dhcp_set_option_value(dhcp, decode_idx, lwip_htonl(value)); + decode_len = (u8_t)(decode_len - 4); + next_val_offset = (u16_t)(val_offset + 4); + if (next_val_offset < val_offset) { + /* overflow */ + return ERR_BUF; + } + val_offset = next_val_offset; + decode_idx++; + goto decode_next; + } else if (decode_len == 4) { + value = lwip_ntohl(value); + } else { + LWIP_ERROR("invalid decode_len", decode_len == 1, return ERR_VAL;); + value = ((u8_t *)&value)[0]; + } + dhcp_got_option(dhcp, decode_idx); + dhcp_set_option_value(dhcp, decode_idx, value); + } + } + } + if (offset >= q->len) { + offset = (u16_t)(offset - q->len); + offset_max = (u16_t)(offset_max - q->len); + if (offset < offset_max) { + q = q->next; + LWIP_ERROR("next pbuf was null", q != NULL, return ERR_VAL;); + options = (u8_t *)q->payload; + } else { + /* We've run out of bytes, probably no end marker. Don't proceed. */ + return ERR_BUF; + } + } + } + /* is this an overloaded message? */ + if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_OVERLOAD)) { + u32_t overload = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_OVERLOAD); + dhcp_clear_option(dhcp, DHCP_OPTION_IDX_OVERLOAD); + if (overload == DHCP_OVERLOAD_FILE) { + parse_file_as_options = 1; + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded file field\n")); + } else if (overload == DHCP_OVERLOAD_SNAME) { + parse_sname_as_options = 1; + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded sname field\n")); + } else if (overload == DHCP_OVERLOAD_SNAME_FILE) { + parse_sname_as_options = 1; + parse_file_as_options = 1; + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded sname and file field\n")); + } else { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("invalid overload option: %d\n", (int)overload)); + } + } + if (parse_file_as_options) { + /* if both are overloaded, parse file first and then sname (RFC 2131 ch. 4.1) */ + parse_file_as_options = 0; + options_idx = DHCP_FILE_OFS; + options_idx_max = DHCP_FILE_OFS + DHCP_FILE_LEN; +#if LWIP_DHCP_BOOTP_FILE + file_overloaded = 1; +#endif + goto again; + } else if (parse_sname_as_options) { + parse_sname_as_options = 0; + options_idx = DHCP_SNAME_OFS; + options_idx_max = DHCP_SNAME_OFS + DHCP_SNAME_LEN; + goto again; + } +#if LWIP_DHCP_BOOTP_FILE + if (!file_overloaded) { + /* only do this for ACK messages */ + if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_MSG_TYPE) && + (dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_MSG_TYPE) == DHCP_ACK)) + /* copy bootp file name, don't care for sname (server hostname) */ + if (pbuf_copy_partial(p, dhcp->boot_file_name, DHCP_FILE_LEN-1, DHCP_FILE_OFS) != (DHCP_FILE_LEN-1)) { + return ERR_BUF; + } + /* make sure the string is really NULL-terminated */ + dhcp->boot_file_name[DHCP_FILE_LEN-1] = 0; + } +#endif /* LWIP_DHCP_BOOTP_FILE */ + return ERR_OK; +} + +/** + * If an incoming DHCP message is in response to us, then trigger the state machine + */ +static void +dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr, u16_t port) +{ + struct netif *netif = ip_current_input_netif(); + struct dhcp *dhcp = netif_dhcp_data(netif); + struct dhcp_msg *reply_msg = (struct dhcp_msg *)p->payload; + u8_t msg_type; + u8_t i; + struct dhcp_msg *msg_in; + + LWIP_UNUSED_ARG(arg); + + /* Caught DHCP message from netif that does not have DHCP enabled? -> not interested */ + if ((dhcp == NULL) || (dhcp->pcb_allocated == 0)) { + goto free_pbuf_and_return; + } + + LWIP_ASSERT("invalid server address type", IP_IS_V4(addr)); + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_recv(pbuf = %p) from DHCP server %"U16_F".%"U16_F".%"U16_F".%"U16_F" port %"U16_F"\n", (void *)p, + ip4_addr1_16(ip_2_ip4(addr)), ip4_addr2_16(ip_2_ip4(addr)), ip4_addr3_16(ip_2_ip4(addr)), ip4_addr4_16(ip_2_ip4(addr)), port)); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("pbuf->len = %"U16_F"\n", p->len)); + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("pbuf->tot_len = %"U16_F"\n", p->tot_len)); + /* prevent warnings about unused arguments */ + LWIP_UNUSED_ARG(pcb); + LWIP_UNUSED_ARG(addr); + LWIP_UNUSED_ARG(port); + + if (p->len < DHCP_MIN_REPLY_LEN) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("DHCP reply message or pbuf too short\n")); + goto free_pbuf_and_return; + } + + if (reply_msg->op != DHCP_BOOTREPLY) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("not a DHCP reply message, but type %"U16_F"\n", (u16_t)reply_msg->op)); + goto free_pbuf_and_return; + } + /* iterate through hardware address and match against DHCP message */ + for (i = 0; i < netif->hwaddr_len && i < LWIP_MIN(DHCP_CHADDR_LEN, NETIF_MAX_HWADDR_LEN); i++) { + if (netif->hwaddr[i] != reply_msg->chaddr[i]) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, + ("netif->hwaddr[%"U16_F"]==%02"X16_F" != reply_msg->chaddr[%"U16_F"]==%02"X16_F"\n", + (u16_t)i, (u16_t)netif->hwaddr[i], (u16_t)i, (u16_t)reply_msg->chaddr[i])); + goto free_pbuf_and_return; + } + } + /* match transaction ID against what we expected */ + if (lwip_ntohl(reply_msg->xid) != dhcp->xid) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, + ("transaction id mismatch reply_msg->xid(%"X32_F")!=dhcp->xid(%"X32_F")\n", lwip_ntohl(reply_msg->xid), dhcp->xid)); + goto free_pbuf_and_return; + } + /* option fields could be unfold? */ + if (dhcp_parse_reply(p, dhcp) != ERR_OK) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, + ("problem unfolding DHCP message - too short on memory?\n")); + goto free_pbuf_and_return; + } + + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("searching DHCP_OPTION_MESSAGE_TYPE\n")); + /* obtain pointer to DHCP message type */ + if (!dhcp_option_given(dhcp, DHCP_OPTION_IDX_MSG_TYPE)) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("DHCP_OPTION_MESSAGE_TYPE option not found\n")); + goto free_pbuf_and_return; + } + + msg_in = (struct dhcp_msg *)p->payload; + /* read DHCP message type */ + msg_type = (u8_t)dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_MSG_TYPE); + /* message type is DHCP ACK? */ + if (msg_type == DHCP_ACK) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_ACK received\n")); + /* in requesting state? */ + if (dhcp->state == DHCP_STATE_REQUESTING) { + dhcp_handle_ack(netif, msg_in); +#if DHCP_DOES_ARP_CHECK + if ((netif->flags & NETIF_FLAG_ETHARP) != 0) { + /* check if the acknowledged lease address is already in use */ + dhcp_check(netif); + } else { + /* bind interface to the acknowledged lease address */ + dhcp_bind(netif); + } +#else + /* bind interface to the acknowledged lease address */ + dhcp_bind(netif); +#endif + } + /* already bound to the given lease address? */ + else if ((dhcp->state == DHCP_STATE_REBOOTING) || (dhcp->state == DHCP_STATE_REBINDING) || + (dhcp->state == DHCP_STATE_RENEWING)) { + dhcp_handle_ack(netif, msg_in); + dhcp_bind(netif); + } + } + /* received a DHCP_NAK in appropriate state? */ + else if ((msg_type == DHCP_NAK) && + ((dhcp->state == DHCP_STATE_REBOOTING) || (dhcp->state == DHCP_STATE_REQUESTING) || + (dhcp->state == DHCP_STATE_REBINDING) || (dhcp->state == DHCP_STATE_RENEWING ))) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_NAK received\n")); + dhcp_handle_nak(netif); + } + /* received a DHCP_OFFER in DHCP_STATE_SELECTING state? */ + else if ((msg_type == DHCP_OFFER) && (dhcp->state == DHCP_STATE_SELECTING)) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_OFFER received in DHCP_STATE_SELECTING state\n")); + /* remember offered lease */ + dhcp_handle_offer(netif, msg_in); + } + +free_pbuf_and_return: + pbuf_free(p); +} + +/** + * Create a DHCP request, fill in common headers + * + * @param netif the netif under DHCP control + * @param dhcp dhcp control struct + * @param message_type message type of the request + */ +static struct pbuf * +dhcp_create_msg(struct netif *netif, struct dhcp *dhcp, u8_t message_type, u16_t *options_out_len) +{ + u16_t i; + struct pbuf *p_out; + struct dhcp_msg *msg_out; + u16_t options_out_len_loc; + +#ifndef DHCP_GLOBAL_XID + /** default global transaction identifier starting value (easy to match + * with a packet analyser). We simply increment for each new request. + * Predefine DHCP_GLOBAL_XID to a better value or a function call to generate one + * at runtime, any supporting function prototypes can be defined in DHCP_GLOBAL_XID_HEADER */ +#if DHCP_CREATE_RAND_XID && defined(LWIP_RAND) + static u32_t xid; +#else /* DHCP_CREATE_RAND_XID && defined(LWIP_RAND) */ + static u32_t xid = 0xABCD0000; +#endif /* DHCP_CREATE_RAND_XID && defined(LWIP_RAND) */ +#else + if (!xid_initialised) { + xid = DHCP_GLOBAL_XID; + xid_initialised = !xid_initialised; + } +#endif + LWIP_ERROR("dhcp_create_msg: netif != NULL", (netif != NULL), return NULL;); + LWIP_ERROR("dhcp_create_msg: dhcp != NULL", (dhcp != NULL), return NULL;); + p_out = pbuf_alloc(PBUF_TRANSPORT, sizeof(struct dhcp_msg), PBUF_RAM); + if (p_out == NULL) { + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, + ("dhcp_create_msg(): could not allocate pbuf\n")); + return NULL; + } + LWIP_ASSERT("dhcp_create_msg: check that first pbuf can hold struct dhcp_msg", + (p_out->len >= sizeof(struct dhcp_msg))); + + /* DHCP_REQUEST should reuse 'xid' from DHCPOFFER */ + if ((message_type != DHCP_REQUEST) || (dhcp->state == DHCP_STATE_REBOOTING)) { + /* reuse transaction identifier in retransmissions */ + if (dhcp->tries == 0) { +#if DHCP_CREATE_RAND_XID && defined(LWIP_RAND) + xid = LWIP_RAND(); +#else /* DHCP_CREATE_RAND_XID && defined(LWIP_RAND) */ + xid++; +#endif /* DHCP_CREATE_RAND_XID && defined(LWIP_RAND) */ + } + dhcp->xid = xid; + } + LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, + ("transaction id xid(%"X32_F")\n", xid)); + + msg_out = (struct dhcp_msg *)p_out->payload; + memset(msg_out, 0, sizeof(struct dhcp_msg)); + + msg_out->op = DHCP_BOOTREQUEST; + /* @todo: make link layer independent */ + msg_out->htype = LWIP_IANA_HWTYPE_ETHERNET; + msg_out->hlen = netif->hwaddr_len; + msg_out->xid = lwip_htonl(dhcp->xid); + /* we don't need the broadcast flag since we can receive unicast traffic + before being fully configured! */ + /* set ciaddr to netif->ip_addr based on message_type and state */ + if ((message_type == DHCP_INFORM) || (message_type == DHCP_DECLINE) || (message_type == DHCP_RELEASE) || + ((message_type == DHCP_REQUEST) && /* DHCP_STATE_BOUND not used for sending! */ + ((dhcp->state == DHCP_STATE_RENEWING) || dhcp->state == DHCP_STATE_REBINDING))) { + ip4_addr_copy(msg_out->ciaddr, *netif_ip4_addr(netif)); + } + for (i = 0; i < LWIP_MIN(DHCP_CHADDR_LEN, NETIF_MAX_HWADDR_LEN); i++) { + /* copy netif hardware address (padded with zeroes through memset already) */ + msg_out->chaddr[i] = netif->hwaddr[i]; + } + msg_out->cookie = PP_HTONL(DHCP_MAGIC_COOKIE); + /* Add option MESSAGE_TYPE */ + options_out_len_loc = dhcp_option(0, msg_out->options, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN); + options_out_len_loc = dhcp_option_byte(options_out_len_loc, msg_out->options, message_type); + if (options_out_len) { + *options_out_len = options_out_len_loc; + } + return p_out; +} + +/** + * Add a DHCP message trailer + * + * Adds the END option to the DHCP message, and if + * necessary, up to three padding bytes. + */ +static void +dhcp_option_trailer(u16_t options_out_len, u8_t *options, struct pbuf *p_out) +{ + options[options_out_len++] = DHCP_OPTION_END; + /* packet is too small, or not 4 byte aligned? */ + while (((options_out_len < DHCP_MIN_OPTIONS_LEN) || (options_out_len & 3)) && + (options_out_len < DHCP_OPTIONS_LEN)) { + /* add a fill/padding byte */ + options[options_out_len++] = 0; + } + /* shrink the pbuf to the actual content length */ + pbuf_realloc(p_out, (u16_t)(sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + options_out_len)); +} + +/** check if DHCP supplied netif->ip_addr + * + * @param netif the netif to check + * @return 1 if DHCP supplied netif->ip_addr (states BOUND or RENEWING), + * 0 otherwise + */ +u8_t +dhcp_supplied_address(const struct netif *netif) +{ + if ((netif != NULL) && (netif_dhcp_data(netif) != NULL)) { + struct dhcp *dhcp = netif_dhcp_data(netif); + return (dhcp->state == DHCP_STATE_BOUND) || (dhcp->state == DHCP_STATE_RENEWING) || + (dhcp->state == DHCP_STATE_REBINDING); + } + return 0; +} + +#endif /* LWIP_IPV4 && LWIP_DHCP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/etharp.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/etharp.c new file mode 100644 index 000000000..570aaa3b6 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/etharp.c @@ -0,0 +1,1204 @@ +/** + * @file + * Address Resolution Protocol module for IP over Ethernet + * + * Functionally, ARP is divided into two parts. The first maps an IP address + * to a physical address when sending a packet, and the second part answers + * requests from other machines for our physical address. + * + * This implementation complies with RFC 826 (Ethernet ARP). It supports + * Gratuitious ARP from RFC3220 (IP Mobility Support for IPv4) section 4.6 + * if an interface calls etharp_gratuitous(our_netif) upon address change. + */ + +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * Copyright (c) 2003-2004 Leon Woestenberg + * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ + +#include "lwip/opt.h" + +#if LWIP_IPV4 && LWIP_ARP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/etharp.h" +#include "lwip/stats.h" +#include "lwip/snmp.h" +#include "lwip/dhcp.h" +#include "lwip/autoip.h" +#include "lwip/prot/iana.h" +#include "netif/ethernet.h" + +#include + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +/** Re-request a used ARP entry 1 minute before it would expire to prevent + * breaking a steadily used connection because the ARP entry timed out. */ +#define ARP_AGE_REREQUEST_USED_UNICAST (ARP_MAXAGE - 30) +#define ARP_AGE_REREQUEST_USED_BROADCAST (ARP_MAXAGE - 15) + +/** the time an ARP entry stays pending after first request, + * for ARP_TMR_INTERVAL = 1000, this is + * 10 seconds. + * + * @internal Keep this number at least 2, otherwise it might + * run out instantly if the timeout occurs directly after a request. + */ +#define ARP_MAXPENDING 5 + +/** ARP states */ +enum etharp_state { + ETHARP_STATE_EMPTY = 0, + ETHARP_STATE_PENDING, + ETHARP_STATE_STABLE, + ETHARP_STATE_STABLE_REREQUESTING_1, + ETHARP_STATE_STABLE_REREQUESTING_2 +#if ETHARP_SUPPORT_STATIC_ENTRIES + , ETHARP_STATE_STATIC +#endif /* ETHARP_SUPPORT_STATIC_ENTRIES */ +}; + +struct etharp_entry { +#if ARP_QUEUEING + /** Pointer to queue of pending outgoing packets on this ARP entry. */ + struct etharp_q_entry *q; +#else /* ARP_QUEUEING */ + /** Pointer to a single pending outgoing packet on this ARP entry. */ + struct pbuf *q; +#endif /* ARP_QUEUEING */ + ip4_addr_t ipaddr; + struct netif *netif; + struct eth_addr ethaddr; + u16_t ctime; + u8_t state; +}; + +static struct etharp_entry arp_table[ARP_TABLE_SIZE]; + +#if !LWIP_NETIF_HWADDRHINT +static netif_addr_idx_t etharp_cached_entry; +#endif /* !LWIP_NETIF_HWADDRHINT */ + +/** Try hard to create a new entry - we want the IP address to appear in + the cache (even if this means removing an active entry or so). */ +#define ETHARP_FLAG_TRY_HARD 1 +#define ETHARP_FLAG_FIND_ONLY 2 +#if ETHARP_SUPPORT_STATIC_ENTRIES +#define ETHARP_FLAG_STATIC_ENTRY 4 +#endif /* ETHARP_SUPPORT_STATIC_ENTRIES */ + +#if LWIP_NETIF_HWADDRHINT +#define ETHARP_SET_ADDRHINT(netif, addrhint) do { if (((netif) != NULL) && ((netif)->hints != NULL)) { \ + (netif)->hints->addr_hint = (addrhint); }} while(0) +#else /* LWIP_NETIF_HWADDRHINT */ +#define ETHARP_SET_ADDRHINT(netif, addrhint) (etharp_cached_entry = (addrhint)) +#endif /* LWIP_NETIF_HWADDRHINT */ + + +/* Check for maximum ARP_TABLE_SIZE */ +#if (ARP_TABLE_SIZE > NETIF_ADDR_IDX_MAX) +#error "ARP_TABLE_SIZE must fit in an s16_t, you have to reduce it in your lwipopts.h" +#endif + + +static err_t etharp_request_dst(struct netif *netif, const ip4_addr_t *ipaddr, const struct eth_addr *hw_dst_addr); +static err_t etharp_raw(struct netif *netif, + const struct eth_addr *ethsrc_addr, const struct eth_addr *ethdst_addr, + const struct eth_addr *hwsrc_addr, const ip4_addr_t *ipsrc_addr, + const struct eth_addr *hwdst_addr, const ip4_addr_t *ipdst_addr, + const u16_t opcode); + +#if ARP_QUEUEING +/** + * Free a complete queue of etharp entries + * + * @param q a qeueue of etharp_q_entry's to free + */ +static void +free_etharp_q(struct etharp_q_entry *q) +{ + struct etharp_q_entry *r; + LWIP_ASSERT("q != NULL", q != NULL); + while (q) { + r = q; + q = q->next; + LWIP_ASSERT("r->p != NULL", (r->p != NULL)); + pbuf_free(r->p); + memp_free(MEMP_ARP_QUEUE, r); + } +} +#else /* ARP_QUEUEING */ + +/** Compatibility define: free the queued pbuf */ +#define free_etharp_q(q) pbuf_free(q) + +#endif /* ARP_QUEUEING */ + +/** Clean up ARP table entries */ +static void +etharp_free_entry(int i) +{ + /* remove from SNMP ARP index tree */ + mib2_remove_arp_entry(arp_table[i].netif, &arp_table[i].ipaddr); + /* and empty packet queue */ + if (arp_table[i].q != NULL) { + /* remove all queued packets */ + LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_free_entry: freeing entry %"U16_F", packet queue %p.\n", (u16_t)i, (void *)(arp_table[i].q))); + free_etharp_q(arp_table[i].q); + arp_table[i].q = NULL; + } + /* recycle entry for re-use */ + arp_table[i].state = ETHARP_STATE_EMPTY; +#ifdef LWIP_DEBUG + /* for debugging, clean out the complete entry */ + arp_table[i].ctime = 0; + arp_table[i].netif = NULL; + ip4_addr_set_zero(&arp_table[i].ipaddr); + arp_table[i].ethaddr = ethzero; +#endif /* LWIP_DEBUG */ +} + +/** + * Clears expired entries in the ARP table. + * + * This function should be called every ARP_TMR_INTERVAL milliseconds (1 second), + * in order to expire entries in the ARP table. + */ +void +etharp_tmr(void) +{ + int i; + + LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer\n")); + /* remove expired entries from the ARP table */ + for (i = 0; i < ARP_TABLE_SIZE; ++i) { + u8_t state = arp_table[i].state; + if (state != ETHARP_STATE_EMPTY +#if ETHARP_SUPPORT_STATIC_ENTRIES + && (state != ETHARP_STATE_STATIC) +#endif /* ETHARP_SUPPORT_STATIC_ENTRIES */ + ) { + arp_table[i].ctime++; + if ((arp_table[i].ctime >= ARP_MAXAGE) || + ((arp_table[i].state == ETHARP_STATE_PENDING) && + (arp_table[i].ctime >= ARP_MAXPENDING))) { + /* pending or stable entry has become old! */ + LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer: expired %s entry %d.\n", + arp_table[i].state >= ETHARP_STATE_STABLE ? "stable" : "pending", i)); + /* clean up entries that have just been expired */ + etharp_free_entry(i); + } else if (arp_table[i].state == ETHARP_STATE_STABLE_REREQUESTING_1) { + /* Don't send more than one request every 2 seconds. */ + arp_table[i].state = ETHARP_STATE_STABLE_REREQUESTING_2; + } else if (arp_table[i].state == ETHARP_STATE_STABLE_REREQUESTING_2) { + /* Reset state to stable, so that the next transmitted packet will + re-send an ARP request. */ + arp_table[i].state = ETHARP_STATE_STABLE; + } else if (arp_table[i].state == ETHARP_STATE_PENDING) { + /* still pending, resend an ARP query */ + etharp_request(arp_table[i].netif, &arp_table[i].ipaddr); + } + } + } +} + +/** + * Search the ARP table for a matching or new entry. + * + * If an IP address is given, return a pending or stable ARP entry that matches + * the address. If no match is found, create a new entry with this address set, + * but in state ETHARP_EMPTY. The caller must check and possibly change the + * state of the returned entry. + * + * If ipaddr is NULL, return a initialized new entry in state ETHARP_EMPTY. + * + * In all cases, attempt to create new entries from an empty entry. If no + * empty entries are available and ETHARP_FLAG_TRY_HARD flag is set, recycle + * old entries. Heuristic choose the least important entry for recycling. + * + * @param ipaddr IP address to find in ARP cache, or to add if not found. + * @param flags See @ref etharp_state + * @param netif netif related to this address (used for NETIF_HWADDRHINT) + * + * @return The ARP entry index that matched or is created, ERR_MEM if no + * entry is found or could be recycled. + */ +static s16_t +etharp_find_entry(const ip4_addr_t *ipaddr, u8_t flags, struct netif *netif) +{ + s16_t old_pending = ARP_TABLE_SIZE, old_stable = ARP_TABLE_SIZE; + s16_t empty = ARP_TABLE_SIZE; + s16_t i = 0; + /* oldest entry with packets on queue */ + s16_t old_queue = ARP_TABLE_SIZE; + /* its age */ + u16_t age_queue = 0, age_pending = 0, age_stable = 0; + + LWIP_UNUSED_ARG(netif); + + /** + * a) do a search through the cache, remember candidates + * b) select candidate entry + * c) create new entry + */ + + /* a) in a single search sweep, do all of this + * 1) remember the first empty entry (if any) + * 2) remember the oldest stable entry (if any) + * 3) remember the oldest pending entry without queued packets (if any) + * 4) remember the oldest pending entry with queued packets (if any) + * 5) search for a matching IP entry, either pending or stable + * until 5 matches, or all entries are searched for. + */ + + for (i = 0; i < ARP_TABLE_SIZE; ++i) { + u8_t state = arp_table[i].state; + /* no empty entry found yet and now we do find one? */ + if ((empty == ARP_TABLE_SIZE) && (state == ETHARP_STATE_EMPTY)) { + LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_find_entry: found empty entry %d\n", (int)i)); + /* remember first empty entry */ + empty = i; + } else if (state != ETHARP_STATE_EMPTY) { + LWIP_ASSERT("state == ETHARP_STATE_PENDING || state >= ETHARP_STATE_STABLE", + state == ETHARP_STATE_PENDING || state >= ETHARP_STATE_STABLE); + /* if given, does IP address match IP address in ARP entry? */ + if (ipaddr && ip4_addr_cmp(ipaddr, &arp_table[i].ipaddr) +#if ETHARP_TABLE_MATCH_NETIF + && ((netif == NULL) || (netif == arp_table[i].netif)) +#endif /* ETHARP_TABLE_MATCH_NETIF */ + ) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: found matching entry %d\n", (int)i)); + /* found exact IP address match, simply bail out */ + return i; + } + /* pending entry? */ + if (state == ETHARP_STATE_PENDING) { + /* pending with queued packets? */ + if (arp_table[i].q != NULL) { + if (arp_table[i].ctime >= age_queue) { + old_queue = i; + age_queue = arp_table[i].ctime; + } + } else + /* pending without queued packets? */ + { + if (arp_table[i].ctime >= age_pending) { + old_pending = i; + age_pending = arp_table[i].ctime; + } + } + /* stable entry? */ + } else if (state >= ETHARP_STATE_STABLE) { +#if ETHARP_SUPPORT_STATIC_ENTRIES + /* don't record old_stable for static entries since they never expire */ + if (state < ETHARP_STATE_STATIC) +#endif /* ETHARP_SUPPORT_STATIC_ENTRIES */ + { + /* remember entry with oldest stable entry in oldest, its age in maxtime */ + if (arp_table[i].ctime >= age_stable) { + old_stable = i; + age_stable = arp_table[i].ctime; + } + } + } + } + } + /* { we have no match } => try to create a new entry */ + + /* don't create new entry, only search? */ + if (((flags & ETHARP_FLAG_FIND_ONLY) != 0) || + /* or no empty entry found and not allowed to recycle? */ + ((empty == ARP_TABLE_SIZE) && ((flags & ETHARP_FLAG_TRY_HARD) == 0))) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: no empty entry found and not allowed to recycle\n")); + return (s16_t)ERR_MEM; + } + + /* b) choose the least destructive entry to recycle: + * 1) empty entry + * 2) oldest stable entry + * 3) oldest pending entry without queued packets + * 4) oldest pending entry with queued packets + * + * { ETHARP_FLAG_TRY_HARD is set at this point } + */ + + /* 1) empty entry available? */ + if (empty < ARP_TABLE_SIZE) { + i = empty; + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: selecting empty entry %d\n", (int)i)); + } else { + /* 2) found recyclable stable entry? */ + if (old_stable < ARP_TABLE_SIZE) { + /* recycle oldest stable*/ + i = old_stable; + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: selecting oldest stable entry %d\n", (int)i)); + /* no queued packets should exist on stable entries */ + LWIP_ASSERT("arp_table[i].q == NULL", arp_table[i].q == NULL); + /* 3) found recyclable pending entry without queued packets? */ + } else if (old_pending < ARP_TABLE_SIZE) { + /* recycle oldest pending */ + i = old_pending; + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: selecting oldest pending entry %d (without queue)\n", (int)i)); + /* 4) found recyclable pending entry with queued packets? */ + } else if (old_queue < ARP_TABLE_SIZE) { + /* recycle oldest pending (queued packets are free in etharp_free_entry) */ + i = old_queue; + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: selecting oldest pending entry %d, freeing packet queue %p\n", (int)i, (void *)(arp_table[i].q))); + /* no empty or recyclable entries found */ + } else { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: no empty or recyclable entries found\n")); + return (s16_t)ERR_MEM; + } + + /* { empty or recyclable entry found } */ + LWIP_ASSERT("i < ARP_TABLE_SIZE", i < ARP_TABLE_SIZE); + etharp_free_entry(i); + } + + LWIP_ASSERT("i < ARP_TABLE_SIZE", i < ARP_TABLE_SIZE); + LWIP_ASSERT("arp_table[i].state == ETHARP_STATE_EMPTY", + arp_table[i].state == ETHARP_STATE_EMPTY); + + /* IP address given? */ + if (ipaddr != NULL) { + /* set IP address */ + ip4_addr_copy(arp_table[i].ipaddr, *ipaddr); + } + arp_table[i].ctime = 0; +#if ETHARP_TABLE_MATCH_NETIF + arp_table[i].netif = netif; +#endif /* ETHARP_TABLE_MATCH_NETIF */ + return (s16_t)i; +} + +/** + * Update (or insert) a IP/MAC address pair in the ARP cache. + * + * If a pending entry is resolved, any queued packets will be sent + * at this point. + * + * @param netif netif related to this entry (used for NETIF_ADDRHINT) + * @param ipaddr IP address of the inserted ARP entry. + * @param ethaddr Ethernet address of the inserted ARP entry. + * @param flags See @ref etharp_state + * + * @return + * - ERR_OK Successfully updated ARP cache. + * - ERR_MEM If we could not add a new ARP entry when ETHARP_FLAG_TRY_HARD was set. + * - ERR_ARG Non-unicast address given, those will not appear in ARP cache. + * + * @see pbuf_free() + */ +static err_t +etharp_update_arp_entry(struct netif *netif, const ip4_addr_t *ipaddr, struct eth_addr *ethaddr, u8_t flags) +{ + s16_t i; + LWIP_ASSERT("netif->hwaddr_len == ETH_HWADDR_LEN", netif->hwaddr_len == ETH_HWADDR_LEN); + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_update_arp_entry: %"U16_F".%"U16_F".%"U16_F".%"U16_F" - %02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F"\n", + ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr), + (u16_t)ethaddr->addr[0], (u16_t)ethaddr->addr[1], (u16_t)ethaddr->addr[2], + (u16_t)ethaddr->addr[3], (u16_t)ethaddr->addr[4], (u16_t)ethaddr->addr[5])); + /* non-unicast address? */ + if (ip4_addr_isany(ipaddr) || + ip4_addr_isbroadcast(ipaddr, netif) || + ip4_addr_ismulticast(ipaddr)) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_update_arp_entry: will not add non-unicast IP address to ARP cache\n")); + return ERR_ARG; + } + /* find or create ARP entry */ + i = etharp_find_entry(ipaddr, flags, netif); + /* bail out if no entry could be found */ + if (i < 0) { + return (err_t)i; + } + +#if ETHARP_SUPPORT_STATIC_ENTRIES + if (flags & ETHARP_FLAG_STATIC_ENTRY) { + /* record static type */ + arp_table[i].state = ETHARP_STATE_STATIC; + } else if (arp_table[i].state == ETHARP_STATE_STATIC) { + /* found entry is a static type, don't overwrite it */ + return ERR_VAL; + } else +#endif /* ETHARP_SUPPORT_STATIC_ENTRIES */ + { + /* mark it stable */ + arp_table[i].state = ETHARP_STATE_STABLE; + } + + /* record network interface */ + arp_table[i].netif = netif; + /* insert in SNMP ARP index tree */ + mib2_add_arp_entry(netif, &arp_table[i].ipaddr); + + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_update_arp_entry: updating stable entry %"S16_F"\n", i)); + /* update address */ + SMEMCPY(&arp_table[i].ethaddr, ethaddr, ETH_HWADDR_LEN); + /* reset time stamp */ + arp_table[i].ctime = 0; + /* this is where we will send out queued packets! */ +#if ARP_QUEUEING + while (arp_table[i].q != NULL) { + struct pbuf *p; + /* remember remainder of queue */ + struct etharp_q_entry *q = arp_table[i].q; + /* pop first item off the queue */ + arp_table[i].q = q->next; + /* get the packet pointer */ + p = q->p; + /* now queue entry can be freed */ + memp_free(MEMP_ARP_QUEUE, q); +#else /* ARP_QUEUEING */ + if (arp_table[i].q != NULL) { + struct pbuf *p = arp_table[i].q; + arp_table[i].q = NULL; +#endif /* ARP_QUEUEING */ + /* send the queued IP packet */ + ethernet_output(netif, p, (struct eth_addr *)(netif->hwaddr), ethaddr, ETHTYPE_IP); + /* free the queued IP packet */ + pbuf_free(p); + } + return ERR_OK; +} + +#if ETHARP_SUPPORT_STATIC_ENTRIES +/** Add a new static entry to the ARP table. If an entry exists for the + * specified IP address, this entry is overwritten. + * If packets are queued for the specified IP address, they are sent out. + * + * @param ipaddr IP address for the new static entry + * @param ethaddr ethernet address for the new static entry + * @return See return values of etharp_add_static_entry + */ +err_t +etharp_add_static_entry(const ip4_addr_t *ipaddr, struct eth_addr *ethaddr) +{ + struct netif *netif; + LWIP_ASSERT_CORE_LOCKED(); + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_add_static_entry: %"U16_F".%"U16_F".%"U16_F".%"U16_F" - %02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F"\n", + ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr), + (u16_t)ethaddr->addr[0], (u16_t)ethaddr->addr[1], (u16_t)ethaddr->addr[2], + (u16_t)ethaddr->addr[3], (u16_t)ethaddr->addr[4], (u16_t)ethaddr->addr[5])); + + netif = ip4_route(ipaddr); + if (netif == NULL) { + return ERR_RTE; + } + + return etharp_update_arp_entry(netif, ipaddr, ethaddr, ETHARP_FLAG_TRY_HARD | ETHARP_FLAG_STATIC_ENTRY); +} + +/** Remove a static entry from the ARP table previously added with a call to + * etharp_add_static_entry. + * + * @param ipaddr IP address of the static entry to remove + * @return ERR_OK: entry removed + * ERR_MEM: entry wasn't found + * ERR_ARG: entry wasn't a static entry but a dynamic one + */ +err_t +etharp_remove_static_entry(const ip4_addr_t *ipaddr) +{ + s16_t i; + LWIP_ASSERT_CORE_LOCKED(); + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_remove_static_entry: %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr))); + + /* find or create ARP entry */ + i = etharp_find_entry(ipaddr, ETHARP_FLAG_FIND_ONLY, NULL); + /* bail out if no entry could be found */ + if (i < 0) { + return (err_t)i; + } + + if (arp_table[i].state != ETHARP_STATE_STATIC) { + /* entry wasn't a static entry, cannot remove it */ + return ERR_ARG; + } + /* entry found, free it */ + etharp_free_entry(i); + return ERR_OK; +} +#endif /* ETHARP_SUPPORT_STATIC_ENTRIES */ + +/** + * Remove all ARP table entries of the specified netif. + * + * @param netif points to a network interface + */ +void +etharp_cleanup_netif(struct netif *netif) +{ + int i; + + for (i = 0; i < ARP_TABLE_SIZE; ++i) { + u8_t state = arp_table[i].state; + if ((state != ETHARP_STATE_EMPTY) && (arp_table[i].netif == netif)) { + etharp_free_entry(i); + } + } +} + +/** + * Finds (stable) ethernet/IP address pair from ARP table + * using interface and IP address index. + * @note the addresses in the ARP table are in network order! + * + * @param netif points to interface index + * @param ipaddr points to the (network order) IP address index + * @param eth_ret points to return pointer + * @param ip_ret points to return pointer + * @return table index if found, -1 otherwise + */ +ssize_t +etharp_find_addr(struct netif *netif, const ip4_addr_t *ipaddr, + struct eth_addr **eth_ret, const ip4_addr_t **ip_ret) +{ + s16_t i; + + LWIP_ASSERT("eth_ret != NULL && ip_ret != NULL", + eth_ret != NULL && ip_ret != NULL); + + LWIP_UNUSED_ARG(netif); + + i = etharp_find_entry(ipaddr, ETHARP_FLAG_FIND_ONLY, netif); + if ((i >= 0) && (arp_table[i].state >= ETHARP_STATE_STABLE)) { + *eth_ret = &arp_table[i].ethaddr; + *ip_ret = &arp_table[i].ipaddr; + return i; + } + return -1; +} + +/** + * Possibility to iterate over stable ARP table entries + * + * @param i entry number, 0 to ARP_TABLE_SIZE + * @param ipaddr return value: IP address + * @param netif return value: points to interface + * @param eth_ret return value: ETH address + * @return 1 on valid index, 0 otherwise + */ +int +etharp_get_entry(size_t i, ip4_addr_t **ipaddr, struct netif **netif, struct eth_addr **eth_ret) +{ + LWIP_ASSERT("ipaddr != NULL", ipaddr != NULL); + LWIP_ASSERT("netif != NULL", netif != NULL); + LWIP_ASSERT("eth_ret != NULL", eth_ret != NULL); + + if ((i < ARP_TABLE_SIZE) && (arp_table[i].state >= ETHARP_STATE_STABLE)) { + *ipaddr = &arp_table[i].ipaddr; + *netif = arp_table[i].netif; + *eth_ret = &arp_table[i].ethaddr; + return 1; + } else { + return 0; + } +} + +/** + * Responds to ARP requests to us. Upon ARP replies to us, add entry to cache + * send out queued IP packets. Updates cache with snooped address pairs. + * + * Should be called for incoming ARP packets. The pbuf in the argument + * is freed by this function. + * + * @param p The ARP packet that arrived on netif. Is freed by this function. + * @param netif The lwIP network interface on which the ARP packet pbuf arrived. + * + * @see pbuf_free() + */ +void +etharp_input(struct pbuf *p, struct netif *netif) +{ + struct etharp_hdr *hdr; + /* these are aligned properly, whereas the ARP header fields might not be */ + ip4_addr_t sipaddr, dipaddr; + u8_t for_us; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("netif != NULL", (netif != NULL), return;); + + hdr = (struct etharp_hdr *)p->payload; + + /* RFC 826 "Packet Reception": */ + if ((hdr->hwtype != PP_HTONS(LWIP_IANA_HWTYPE_ETHERNET)) || + (hdr->hwlen != ETH_HWADDR_LEN) || + (hdr->protolen != sizeof(ip4_addr_t)) || + (hdr->proto != PP_HTONS(ETHTYPE_IP))) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, + ("etharp_input: packet dropped, wrong hw type, hwlen, proto, protolen or ethernet type (%"U16_F"/%"U16_F"/%"U16_F"/%"U16_F")\n", + hdr->hwtype, (u16_t)hdr->hwlen, hdr->proto, (u16_t)hdr->protolen)); + ETHARP_STATS_INC(etharp.proterr); + ETHARP_STATS_INC(etharp.drop); + pbuf_free(p); + return; + } + ETHARP_STATS_INC(etharp.recv); + +#if LWIP_AUTOIP + /* We have to check if a host already has configured our random + * created link local address and continuously check if there is + * a host with this IP-address so we can detect collisions */ + autoip_arp_reply(netif, hdr); +#endif /* LWIP_AUTOIP */ + + /* Copy struct ip4_addr_wordaligned to aligned ip4_addr, to support compilers without + * structure packing (not using structure copy which breaks strict-aliasing rules). */ + IPADDR_WORDALIGNED_COPY_TO_IP4_ADDR_T(&sipaddr, &hdr->sipaddr); + IPADDR_WORDALIGNED_COPY_TO_IP4_ADDR_T(&dipaddr, &hdr->dipaddr); + + /* this interface is not configured? */ + if (ip4_addr_isany_val(*netif_ip4_addr(netif))) { + for_us = 0; + } else { + /* ARP packet directed to us? */ + for_us = (u8_t)ip4_addr_cmp(&dipaddr, netif_ip4_addr(netif)); + } + + /* ARP message directed to us? + -> add IP address in ARP cache; assume requester wants to talk to us, + can result in directly sending the queued packets for this host. + ARP message not directed to us? + -> update the source IP address in the cache, if present */ + etharp_update_arp_entry(netif, &sipaddr, &(hdr->shwaddr), + for_us ? ETHARP_FLAG_TRY_HARD : ETHARP_FLAG_FIND_ONLY); + + /* now act on the message itself */ + switch (hdr->opcode) { + /* ARP request? */ + case PP_HTONS(ARP_REQUEST): + /* ARP request. If it asked for our address, we send out a + * reply. In any case, we time-stamp any existing ARP entry, + * and possibly send out an IP packet that was queued on it. */ + + LWIP_DEBUGF (ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_input: incoming ARP request\n")); + /* ARP request for our address? */ + if (for_us) { + /* send ARP response */ + etharp_raw(netif, + (struct eth_addr *)netif->hwaddr, &hdr->shwaddr, + (struct eth_addr *)netif->hwaddr, netif_ip4_addr(netif), + &hdr->shwaddr, &sipaddr, + ARP_REPLY); + /* we are not configured? */ + } else if (ip4_addr_isany_val(*netif_ip4_addr(netif))) { + /* { for_us == 0 and netif->ip_addr.addr == 0 } */ + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_input: we are unconfigured, ARP request ignored.\n")); + /* request was not directed to us */ + } else { + /* { for_us == 0 and netif->ip_addr.addr != 0 } */ + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_input: ARP request was not for us.\n")); + } + break; + case PP_HTONS(ARP_REPLY): + /* ARP reply. We already updated the ARP cache earlier. */ + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_input: incoming ARP reply\n")); +#if (LWIP_DHCP && DHCP_DOES_ARP_CHECK) + /* DHCP wants to know about ARP replies from any host with an + * IP address also offered to us by the DHCP server. We do not + * want to take a duplicate IP address on a single network. + * @todo How should we handle redundant (fail-over) interfaces? */ + dhcp_arp_reply(netif, &sipaddr); +#endif /* (LWIP_DHCP && DHCP_DOES_ARP_CHECK) */ + break; + default: + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_input: ARP unknown opcode type %"S16_F"\n", lwip_htons(hdr->opcode))); + ETHARP_STATS_INC(etharp.err); + break; + } + /* free ARP packet */ + pbuf_free(p); +} + +/** Just a small helper function that sends a pbuf to an ethernet address + * in the arp_table specified by the index 'arp_idx'. + */ +static err_t +etharp_output_to_arp_index(struct netif *netif, struct pbuf *q, netif_addr_idx_t arp_idx) +{ + LWIP_ASSERT("arp_table[arp_idx].state >= ETHARP_STATE_STABLE", + arp_table[arp_idx].state >= ETHARP_STATE_STABLE); + /* if arp table entry is about to expire: re-request it, + but only if its state is ETHARP_STATE_STABLE to prevent flooding the + network with ARP requests if this address is used frequently. */ + if (arp_table[arp_idx].state == ETHARP_STATE_STABLE) { + if (arp_table[arp_idx].ctime >= ARP_AGE_REREQUEST_USED_BROADCAST) { + /* issue a standard request using broadcast */ + if (etharp_request(netif, &arp_table[arp_idx].ipaddr) == ERR_OK) { + arp_table[arp_idx].state = ETHARP_STATE_STABLE_REREQUESTING_1; + } + } else if (arp_table[arp_idx].ctime >= ARP_AGE_REREQUEST_USED_UNICAST) { + /* issue a unicast request (for 15 seconds) to prevent unnecessary broadcast */ + if (etharp_request_dst(netif, &arp_table[arp_idx].ipaddr, &arp_table[arp_idx].ethaddr) == ERR_OK) { + arp_table[arp_idx].state = ETHARP_STATE_STABLE_REREQUESTING_1; + } + } + } + + return ethernet_output(netif, q, (struct eth_addr *)(netif->hwaddr), &arp_table[arp_idx].ethaddr, ETHTYPE_IP); +} + +/** + * Resolve and fill-in Ethernet address header for outgoing IP packet. + * + * For IP multicast and broadcast, corresponding Ethernet addresses + * are selected and the packet is transmitted on the link. + * + * For unicast addresses, the packet is submitted to etharp_query(). In + * case the IP address is outside the local network, the IP address of + * the gateway is used. + * + * @param netif The lwIP network interface which the IP packet will be sent on. + * @param q The pbuf(s) containing the IP packet to be sent. + * @param ipaddr The IP address of the packet destination. + * + * @return + * - ERR_RTE No route to destination (no gateway to external networks), + * or the return type of either etharp_query() or ethernet_output(). + */ +err_t +etharp_output(struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr) +{ + const struct eth_addr *dest; + struct eth_addr mcastaddr; + const ip4_addr_t *dst_addr = ipaddr; + + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("netif != NULL", netif != NULL); + LWIP_ASSERT("q != NULL", q != NULL); + LWIP_ASSERT("ipaddr != NULL", ipaddr != NULL); + + /* Determine on destination hardware address. Broadcasts and multicasts + * are special, other IP addresses are looked up in the ARP table. */ + + /* broadcast destination IP address? */ + if (ip4_addr_isbroadcast(ipaddr, netif)) { + /* broadcast on Ethernet also */ + dest = (const struct eth_addr *)ðbroadcast; + /* multicast destination IP address? */ + } else if (ip4_addr_ismulticast(ipaddr)) { + /* Hash IP multicast address to MAC address.*/ + mcastaddr.addr[0] = LL_IP4_MULTICAST_ADDR_0; + mcastaddr.addr[1] = LL_IP4_MULTICAST_ADDR_1; + mcastaddr.addr[2] = LL_IP4_MULTICAST_ADDR_2; + mcastaddr.addr[3] = ip4_addr2(ipaddr) & 0x7f; + mcastaddr.addr[4] = ip4_addr3(ipaddr); + mcastaddr.addr[5] = ip4_addr4(ipaddr); + /* destination Ethernet address is multicast */ + dest = &mcastaddr; + /* unicast destination IP address? */ + } else { + netif_addr_idx_t i; + /* outside local network? if so, this can neither be a global broadcast nor + a subnet broadcast. */ + if (!ip4_addr_netcmp(ipaddr, netif_ip4_addr(netif), netif_ip4_netmask(netif)) && + !ip4_addr_islinklocal(ipaddr)) { +#if LWIP_AUTOIP + struct ip_hdr *iphdr = LWIP_ALIGNMENT_CAST(struct ip_hdr *, q->payload); + /* According to RFC 3297, chapter 2.6.2 (Forwarding Rules), a packet with + a link-local source address must always be "directly to its destination + on the same physical link. The host MUST NOT send the packet to any + router for forwarding". */ + if (!ip4_addr_islinklocal(&iphdr->src)) +#endif /* LWIP_AUTOIP */ + { +#ifdef LWIP_HOOK_ETHARP_GET_GW + /* For advanced routing, a single default gateway might not be enough, so get + the IP address of the gateway to handle the current destination address. */ + dst_addr = LWIP_HOOK_ETHARP_GET_GW(netif, ipaddr); + if (dst_addr == NULL) +#endif /* LWIP_HOOK_ETHARP_GET_GW */ + { + /* interface has default gateway? */ + if (!ip4_addr_isany_val(*netif_ip4_gw(netif))) { + /* send to hardware address of default gateway IP address */ + dst_addr = netif_ip4_gw(netif); + /* no default gateway available */ + } else { + /* no route to destination error (default gateway missing) */ + return ERR_RTE; + } + } + } + } +#if LWIP_NETIF_HWADDRHINT + if (netif->hints != NULL) { + /* per-pcb cached entry was given */ + netif_addr_idx_t etharp_cached_entry = netif->hints->addr_hint; + if (etharp_cached_entry < ARP_TABLE_SIZE) { +#endif /* LWIP_NETIF_HWADDRHINT */ + if ((arp_table[etharp_cached_entry].state >= ETHARP_STATE_STABLE) && +#if ETHARP_TABLE_MATCH_NETIF + (arp_table[etharp_cached_entry].netif == netif) && +#endif + (ip4_addr_cmp(dst_addr, &arp_table[etharp_cached_entry].ipaddr))) { + /* the per-pcb-cached entry is stable and the right one! */ + ETHARP_STATS_INC(etharp.cachehit); + return etharp_output_to_arp_index(netif, q, etharp_cached_entry); + } +#if LWIP_NETIF_HWADDRHINT + } + } +#endif /* LWIP_NETIF_HWADDRHINT */ + + /* find stable entry: do this here since this is a critical path for + throughput and etharp_find_entry() is kind of slow */ + for (i = 0; i < ARP_TABLE_SIZE; i++) { + if ((arp_table[i].state >= ETHARP_STATE_STABLE) && +#if ETHARP_TABLE_MATCH_NETIF + (arp_table[i].netif == netif) && +#endif + (ip4_addr_cmp(dst_addr, &arp_table[i].ipaddr))) { + /* found an existing, stable entry */ + ETHARP_SET_ADDRHINT(netif, i); + return etharp_output_to_arp_index(netif, q, i); + } + } + /* no stable entry found, use the (slower) query function: + queue on destination Ethernet address belonging to ipaddr */ + return etharp_query(netif, dst_addr, q); + } + + /* continuation for multicast/broadcast destinations */ + /* obtain source Ethernet address of the given interface */ + /* send packet directly on the link */ + return ethernet_output(netif, q, (struct eth_addr *)(netif->hwaddr), dest, ETHTYPE_IP); +} + +/** + * Send an ARP request for the given IP address and/or queue a packet. + * + * If the IP address was not yet in the cache, a pending ARP cache entry + * is added and an ARP request is sent for the given address. The packet + * is queued on this entry. + * + * If the IP address was already pending in the cache, a new ARP request + * is sent for the given address. The packet is queued on this entry. + * + * If the IP address was already stable in the cache, and a packet is + * given, it is directly sent and no ARP request is sent out. + * + * If the IP address was already stable in the cache, and no packet is + * given, an ARP request is sent out. + * + * @param netif The lwIP network interface on which ipaddr + * must be queried for. + * @param ipaddr The IP address to be resolved. + * @param q If non-NULL, a pbuf that must be delivered to the IP address. + * q is not freed by this function. + * + * @note q must only be ONE packet, not a packet queue! + * + * @return + * - ERR_BUF Could not make room for Ethernet header. + * - ERR_MEM Hardware address unknown, and no more ARP entries available + * to query for address or queue the packet. + * - ERR_MEM Could not queue packet due to memory shortage. + * - ERR_RTE No route to destination (no gateway to external networks). + * - ERR_ARG Non-unicast address given, those will not appear in ARP cache. + * + */ +err_t +etharp_query(struct netif *netif, const ip4_addr_t *ipaddr, struct pbuf *q) +{ + struct eth_addr *srcaddr = (struct eth_addr *)netif->hwaddr; + err_t result = ERR_MEM; + int is_new_entry = 0; + s16_t i_err; + netif_addr_idx_t i; + + /* non-unicast address? */ + if (ip4_addr_isbroadcast(ipaddr, netif) || + ip4_addr_ismulticast(ipaddr) || + ip4_addr_isany(ipaddr)) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: will not add non-unicast IP address to ARP cache\n")); + return ERR_ARG; + } + + /* find entry in ARP cache, ask to create entry if queueing packet */ + i_err = etharp_find_entry(ipaddr, ETHARP_FLAG_TRY_HARD, netif); + + /* could not find or create entry? */ + if (i_err < 0) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not create ARP entry\n")); + if (q) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: packet dropped\n")); + ETHARP_STATS_INC(etharp.memerr); + } + return (err_t)i_err; + } + LWIP_ASSERT("type overflow", (size_t)i_err < NETIF_ADDR_IDX_MAX); + i = (netif_addr_idx_t)i_err; + + /* mark a fresh entry as pending (we just sent a request) */ + if (arp_table[i].state == ETHARP_STATE_EMPTY) { + is_new_entry = 1; + arp_table[i].state = ETHARP_STATE_PENDING; + /* record network interface for re-sending arp request in etharp_tmr */ + arp_table[i].netif = netif; + } + + /* { i is either a STABLE or (new or existing) PENDING entry } */ + LWIP_ASSERT("arp_table[i].state == PENDING or STABLE", + ((arp_table[i].state == ETHARP_STATE_PENDING) || + (arp_table[i].state >= ETHARP_STATE_STABLE))); + + /* do we have a new entry? or an implicit query request? */ + if (is_new_entry || (q == NULL)) { + /* try to resolve it; send out ARP request */ + result = etharp_request(netif, ipaddr); + if (result != ERR_OK) { + /* ARP request couldn't be sent */ + /* We don't re-send arp request in etharp_tmr, but we still queue packets, + since this failure could be temporary, and the next packet calling + etharp_query again could lead to sending the queued packets. */ + } + if (q == NULL) { + return result; + } + } + + /* packet given? */ + LWIP_ASSERT("q != NULL", q != NULL); + /* stable entry? */ + if (arp_table[i].state >= ETHARP_STATE_STABLE) { + /* we have a valid IP->Ethernet address mapping */ + ETHARP_SET_ADDRHINT(netif, i); + /* send the packet */ + result = ethernet_output(netif, q, srcaddr, &(arp_table[i].ethaddr), ETHTYPE_IP); + /* pending entry? (either just created or already pending */ + } else if (arp_table[i].state == ETHARP_STATE_PENDING) { + /* entry is still pending, queue the given packet 'q' */ + struct pbuf *p; + int copy_needed = 0; + /* IF q includes a pbuf that must be copied, copy the whole chain into a + * new PBUF_RAM. See the definition of PBUF_NEEDS_COPY for details. */ + p = q; + while (p) { + LWIP_ASSERT("no packet queues allowed!", (p->len != p->tot_len) || (p->next == 0)); + if (PBUF_NEEDS_COPY(p)) { + copy_needed = 1; + break; + } + p = p->next; + } + if (copy_needed) { + /* copy the whole packet into new pbufs */ + p = pbuf_clone(PBUF_LINK, PBUF_RAM, q); + } else { + /* referencing the old pbuf is enough */ + p = q; + pbuf_ref(p); + } + /* packet could be taken over? */ + if (p != NULL) { + /* queue packet ... */ +#if ARP_QUEUEING + struct etharp_q_entry *new_entry; + /* allocate a new arp queue entry */ + new_entry = (struct etharp_q_entry *)memp_malloc(MEMP_ARP_QUEUE); + if (new_entry != NULL) { + unsigned int qlen = 0; + new_entry->next = 0; + new_entry->p = p; + if (arp_table[i].q != NULL) { + /* queue was already existent, append the new entry to the end */ + struct etharp_q_entry *r; + r = arp_table[i].q; + qlen++; + while (r->next != NULL) { + r = r->next; + qlen++; + } + r->next = new_entry; + } else { + /* queue did not exist, first item in queue */ + arp_table[i].q = new_entry; + } +#if ARP_QUEUE_LEN + if (qlen >= ARP_QUEUE_LEN) { + struct etharp_q_entry *old; + old = arp_table[i].q; + arp_table[i].q = arp_table[i].q->next; + pbuf_free(old->p); + memp_free(MEMP_ARP_QUEUE, old); + } +#endif + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: queued packet %p on ARP entry %"U16_F"\n", (void *)q, i)); + result = ERR_OK; + } else { + /* the pool MEMP_ARP_QUEUE is empty */ + pbuf_free(p); + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q)); + result = ERR_MEM; + } +#else /* ARP_QUEUEING */ + /* always queue one packet per ARP request only, freeing a previously queued packet */ + if (arp_table[i].q != NULL) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: dropped previously queued packet %p for ARP entry %"U16_F"\n", (void *)q, (u16_t)i)); + pbuf_free(arp_table[i].q); + } + arp_table[i].q = p; + result = ERR_OK; + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: queued packet %p on ARP entry %"U16_F"\n", (void *)q, (u16_t)i)); +#endif /* ARP_QUEUEING */ + } else { + ETHARP_STATS_INC(etharp.memerr); + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q)); + result = ERR_MEM; + } + } + return result; +} + +/** + * Send a raw ARP packet (opcode and all addresses can be modified) + * + * @param netif the lwip network interface on which to send the ARP packet + * @param ethsrc_addr the source MAC address for the ethernet header + * @param ethdst_addr the destination MAC address for the ethernet header + * @param hwsrc_addr the source MAC address for the ARP protocol header + * @param ipsrc_addr the source IP address for the ARP protocol header + * @param hwdst_addr the destination MAC address for the ARP protocol header + * @param ipdst_addr the destination IP address for the ARP protocol header + * @param opcode the type of the ARP packet + * @return ERR_OK if the ARP packet has been sent + * ERR_MEM if the ARP packet couldn't be allocated + * any other err_t on failure + */ +static err_t +etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr, + const struct eth_addr *ethdst_addr, + const struct eth_addr *hwsrc_addr, const ip4_addr_t *ipsrc_addr, + const struct eth_addr *hwdst_addr, const ip4_addr_t *ipdst_addr, + const u16_t opcode) +{ + struct pbuf *p; + err_t result = ERR_OK; + struct etharp_hdr *hdr; + + LWIP_ASSERT("netif != NULL", netif != NULL); + + /* allocate a pbuf for the outgoing ARP request packet */ + p = pbuf_alloc(PBUF_LINK, SIZEOF_ETHARP_HDR, PBUF_RAM); + /* could allocate a pbuf for an ARP request? */ + if (p == NULL) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, + ("etharp_raw: could not allocate pbuf for ARP request.\n")); + ETHARP_STATS_INC(etharp.memerr); + return ERR_MEM; + } + LWIP_ASSERT("check that first pbuf can hold struct etharp_hdr", + (p->len >= SIZEOF_ETHARP_HDR)); + + hdr = (struct etharp_hdr *)p->payload; + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_raw: sending raw ARP packet.\n")); + hdr->opcode = lwip_htons(opcode); + + LWIP_ASSERT("netif->hwaddr_len must be the same as ETH_HWADDR_LEN for etharp!", + (netif->hwaddr_len == ETH_HWADDR_LEN)); + + /* Write the ARP MAC-Addresses */ + SMEMCPY(&hdr->shwaddr, hwsrc_addr, ETH_HWADDR_LEN); + SMEMCPY(&hdr->dhwaddr, hwdst_addr, ETH_HWADDR_LEN); + /* Copy struct ip4_addr_wordaligned to aligned ip4_addr, to support compilers without + * structure packing. */ + IPADDR_WORDALIGNED_COPY_FROM_IP4_ADDR_T(&hdr->sipaddr, ipsrc_addr); + IPADDR_WORDALIGNED_COPY_FROM_IP4_ADDR_T(&hdr->dipaddr, ipdst_addr); + + hdr->hwtype = PP_HTONS(LWIP_IANA_HWTYPE_ETHERNET); + hdr->proto = PP_HTONS(ETHTYPE_IP); + /* set hwlen and protolen */ + hdr->hwlen = ETH_HWADDR_LEN; + hdr->protolen = sizeof(ip4_addr_t); + + /* send ARP query */ +#if LWIP_AUTOIP + /* If we are using Link-Local, all ARP packets that contain a Link-Local + * 'sender IP address' MUST be sent using link-layer broadcast instead of + * link-layer unicast. (See RFC3927 Section 2.5, last paragraph) */ + if (ip4_addr_islinklocal(ipsrc_addr)) { + ethernet_output(netif, p, ethsrc_addr, ðbroadcast, ETHTYPE_ARP); + } else +#endif /* LWIP_AUTOIP */ + { + ethernet_output(netif, p, ethsrc_addr, ethdst_addr, ETHTYPE_ARP); + } + + ETHARP_STATS_INC(etharp.xmit); + /* free ARP query packet */ + pbuf_free(p); + p = NULL; + /* could not allocate pbuf for ARP request */ + + return result; +} + +/** + * Send an ARP request packet asking for ipaddr to a specific eth address. + * Used to send unicast request to refresh the ARP table just before an entry + * times out + * + * @param netif the lwip network interface on which to send the request + * @param ipaddr the IP address for which to ask + * @param hw_dst_addr the ethernet address to send this packet to + * @return ERR_OK if the request has been sent + * ERR_MEM if the ARP packet couldn't be allocated + * any other err_t on failure + */ +static err_t +etharp_request_dst(struct netif *netif, const ip4_addr_t *ipaddr, const struct eth_addr *hw_dst_addr) +{ + return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, hw_dst_addr, + (struct eth_addr *)netif->hwaddr, netif_ip4_addr(netif), ðzero, + ipaddr, ARP_REQUEST); +} + +/** + * Send an ARP request packet asking for ipaddr. + * + * @param netif the lwip network interface on which to send the request + * @param ipaddr the IP address for which to ask + * @return ERR_OK if the request has been sent + * ERR_MEM if the ARP packet couldn't be allocated + * any other err_t on failure + */ +err_t +etharp_request(struct netif *netif, const ip4_addr_t *ipaddr) +{ + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_request: sending ARP request.\n")); + return etharp_request_dst(netif, ipaddr, ðbroadcast); +} + +#endif /* LWIP_IPV4 && LWIP_ARP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/icmp.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/icmp.c new file mode 100644 index 000000000..fd9054b68 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/icmp.c @@ -0,0 +1,404 @@ +/** + * @file + * ICMP - Internet Control Message Protocol + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +/* Some ICMP messages should be passed to the transport protocols. This + is not implemented. */ + +#include "lwip/opt.h" + +#if LWIP_IPV4 && LWIP_ICMP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/icmp.h" +#include "lwip/inet_chksum.h" +#include "lwip/ip.h" +#include "lwip/def.h" +#include "lwip/stats.h" + +#include + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +/** Small optimization: set to 0 if incoming PBUF_POOL pbuf always can be + * used to modify and send a response packet (and to 1 if this is not the case, + * e.g. when link header is stripped off when receiving) */ +#ifndef LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN +#define LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN 1 +#endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */ + +/* The amount of data from the original packet to return in a dest-unreachable */ +#define ICMP_DEST_UNREACH_DATASIZE 8 + +static void icmp_send_response(struct pbuf *p, u8_t type, u8_t code); + +/** + * Processes ICMP input packets, called from ip_input(). + * + * Currently only processes icmp echo requests and sends + * out the echo response. + * + * @param p the icmp echo request packet, p->payload pointing to the icmp header + * @param inp the netif on which this packet was received + */ +void +icmp_input(struct pbuf *p, struct netif *inp) +{ + u8_t type; +#ifdef LWIP_DEBUG + u8_t code; +#endif /* LWIP_DEBUG */ + struct icmp_echo_hdr *iecho; + const struct ip_hdr *iphdr_in; + u16_t hlen; + const ip4_addr_t *src; + + ICMP_STATS_INC(icmp.recv); + MIB2_STATS_INC(mib2.icmpinmsgs); + + iphdr_in = ip4_current_header(); + hlen = IPH_HL_BYTES(iphdr_in); + if (hlen < IP_HLEN) { + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: short IP header (%"S16_F" bytes) received\n", hlen)); + goto lenerr; + } + if (p->len < sizeof(u16_t) * 2) { + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: short ICMP (%"U16_F" bytes) received\n", p->tot_len)); + goto lenerr; + } + + type = *((u8_t *)p->payload); +#ifdef LWIP_DEBUG + code = *(((u8_t *)p->payload) + 1); + /* if debug is enabled but debug statement below is somehow disabled: */ + LWIP_UNUSED_ARG(code); +#endif /* LWIP_DEBUG */ + switch (type) { + case ICMP_ER: + /* This is OK, echo reply might have been parsed by a raw PCB + (as obviously, an echo request has been sent, too). */ + MIB2_STATS_INC(mib2.icmpinechoreps); + break; + case ICMP_ECHO: + MIB2_STATS_INC(mib2.icmpinechos); + src = ip4_current_dest_addr(); + /* multicast destination address? */ + if (ip4_addr_ismulticast(ip4_current_dest_addr())) { +#if LWIP_MULTICAST_PING + /* For multicast, use address of receiving interface as source address */ + src = netif_ip4_addr(inp); +#else /* LWIP_MULTICAST_PING */ + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: Not echoing to multicast pings\n")); + goto icmperr; +#endif /* LWIP_MULTICAST_PING */ + } + /* broadcast destination address? */ + if (ip4_addr_isbroadcast(ip4_current_dest_addr(), ip_current_netif())) { +#if LWIP_BROADCAST_PING + /* For broadcast, use address of receiving interface as source address */ + src = netif_ip4_addr(inp); +#else /* LWIP_BROADCAST_PING */ + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: Not echoing to broadcast pings\n")); + goto icmperr; +#endif /* LWIP_BROADCAST_PING */ + } + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ping\n")); + if (p->tot_len < sizeof(struct icmp_echo_hdr)) { + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: bad ICMP echo received\n")); + goto lenerr; + } +#if CHECKSUM_CHECK_ICMP + IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_CHECK_ICMP) { + if (inet_chksum_pbuf(p) != 0) { + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: checksum failed for received ICMP echo\n")); + pbuf_free(p); + ICMP_STATS_INC(icmp.chkerr); + MIB2_STATS_INC(mib2.icmpinerrors); + return; + } + } +#endif +#if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN + if (pbuf_add_header(p, hlen + PBUF_LINK_HLEN + PBUF_LINK_ENCAPSULATION_HLEN)) { + /* p is not big enough to contain link headers + * allocate a new one and copy p into it + */ + struct pbuf *r; + u16_t alloc_len = (u16_t)(p->tot_len + hlen); + if (alloc_len < p->tot_len) { + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: allocating new pbuf failed (tot_len overflow)\n")); + goto icmperr; + } + /* allocate new packet buffer with space for link headers */ + r = pbuf_alloc(PBUF_LINK, alloc_len, PBUF_RAM); + if (r == NULL) { + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: allocating new pbuf failed\n")); + goto icmperr; + } + if (r->len < hlen + sizeof(struct icmp_echo_hdr)) { + LWIP_DEBUGF(ICMP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("first pbuf cannot hold the ICMP header")); + pbuf_free(r); + goto icmperr; + } + /* copy the ip header */ + MEMCPY(r->payload, iphdr_in, hlen); + /* switch r->payload back to icmp header (cannot fail) */ + if (pbuf_remove_header(r, hlen)) { + LWIP_ASSERT("icmp_input: moving r->payload to icmp header failed\n", 0); + pbuf_free(r); + goto icmperr; + } + /* copy the rest of the packet without ip header */ + if (pbuf_copy(r, p) != ERR_OK) { + LWIP_DEBUGF(ICMP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("icmp_input: copying to new pbuf failed")); + pbuf_free(r); + goto icmperr; + } + /* free the original p */ + pbuf_free(p); + /* we now have an identical copy of p that has room for link headers */ + p = r; + } else { + /* restore p->payload to point to icmp header (cannot fail) */ + if (pbuf_remove_header(p, hlen + PBUF_LINK_HLEN + PBUF_LINK_ENCAPSULATION_HLEN)) { + LWIP_ASSERT("icmp_input: restoring original p->payload failed\n", 0); + goto icmperr; + } + } +#endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */ + /* At this point, all checks are OK. */ + /* We generate an answer by switching the dest and src ip addresses, + * setting the icmp type to ECHO_RESPONSE and updating the checksum. */ + iecho = (struct icmp_echo_hdr *)p->payload; + if (pbuf_add_header(p, hlen)) { + LWIP_DEBUGF(ICMP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("Can't move over header in packet")); + } else { + err_t ret; + struct ip_hdr *iphdr = (struct ip_hdr *)p->payload; + ip4_addr_copy(iphdr->src, *src); + ip4_addr_copy(iphdr->dest, *ip4_current_src_addr()); + ICMPH_TYPE_SET(iecho, ICMP_ER); +#if CHECKSUM_GEN_ICMP + IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_GEN_ICMP) { + /* adjust the checksum */ + if (iecho->chksum > PP_HTONS(0xffffU - (ICMP_ECHO << 8))) { + iecho->chksum = (u16_t)(iecho->chksum + PP_HTONS((u16_t)(ICMP_ECHO << 8)) + 1); + } else { + iecho->chksum = (u16_t)(iecho->chksum + PP_HTONS(ICMP_ECHO << 8)); + } + } +#if LWIP_CHECKSUM_CTRL_PER_NETIF + else { + iecho->chksum = 0; + } +#endif /* LWIP_CHECKSUM_CTRL_PER_NETIF */ +#else /* CHECKSUM_GEN_ICMP */ + iecho->chksum = 0; +#endif /* CHECKSUM_GEN_ICMP */ + + /* Set the correct TTL and recalculate the header checksum. */ + IPH_TTL_SET(iphdr, ICMP_TTL); + IPH_CHKSUM_SET(iphdr, 0); +#if CHECKSUM_GEN_IP + IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_GEN_IP) { + IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, hlen)); + } +#endif /* CHECKSUM_GEN_IP */ + + ICMP_STATS_INC(icmp.xmit); + /* increase number of messages attempted to send */ + MIB2_STATS_INC(mib2.icmpoutmsgs); + /* increase number of echo replies attempted to send */ + MIB2_STATS_INC(mib2.icmpoutechoreps); + + /* send an ICMP packet */ + ret = ip4_output_if(p, src, LWIP_IP_HDRINCL, + ICMP_TTL, 0, IP_PROTO_ICMP, inp); + if (ret != ERR_OK) { + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ip_output_if returned an error: %s\n", lwip_strerr(ret))); + } + } + break; + default: + if (type == ICMP_DUR) { + MIB2_STATS_INC(mib2.icmpindestunreachs); + } else if (type == ICMP_TE) { + MIB2_STATS_INC(mib2.icmpintimeexcds); + } else if (type == ICMP_PP) { + MIB2_STATS_INC(mib2.icmpinparmprobs); + } else if (type == ICMP_SQ) { + MIB2_STATS_INC(mib2.icmpinsrcquenchs); + } else if (type == ICMP_RD) { + MIB2_STATS_INC(mib2.icmpinredirects); + } else if (type == ICMP_TS) { + MIB2_STATS_INC(mib2.icmpintimestamps); + } else if (type == ICMP_TSR) { + MIB2_STATS_INC(mib2.icmpintimestampreps); + } else if (type == ICMP_AM) { + MIB2_STATS_INC(mib2.icmpinaddrmasks); + } else if (type == ICMP_AMR) { + MIB2_STATS_INC(mib2.icmpinaddrmaskreps); + } + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" code %"S16_F" not supported.\n", + (s16_t)type, (s16_t)code)); + ICMP_STATS_INC(icmp.proterr); + ICMP_STATS_INC(icmp.drop); + } + pbuf_free(p); + return; +lenerr: + pbuf_free(p); + ICMP_STATS_INC(icmp.lenerr); + MIB2_STATS_INC(mib2.icmpinerrors); + return; +#if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN || !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING +icmperr: + pbuf_free(p); + ICMP_STATS_INC(icmp.err); + MIB2_STATS_INC(mib2.icmpinerrors); + return; +#endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN || !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING */ +} + +/** + * Send an icmp 'destination unreachable' packet, called from ip_input() if + * the transport layer protocol is unknown and from udp_input() if the local + * port is not bound. + * + * @param p the input packet for which the 'unreachable' should be sent, + * p->payload pointing to the IP header + * @param t type of the 'unreachable' packet + */ +void +icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t) +{ + MIB2_STATS_INC(mib2.icmpoutdestunreachs); + icmp_send_response(p, ICMP_DUR, t); +} + +#if IP_FORWARD || IP_REASSEMBLY +/** + * Send a 'time exceeded' packet, called from ip_forward() if TTL is 0. + * + * @param p the input packet for which the 'time exceeded' should be sent, + * p->payload pointing to the IP header + * @param t type of the 'time exceeded' packet + */ +void +icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t) +{ + MIB2_STATS_INC(mib2.icmpouttimeexcds); + icmp_send_response(p, ICMP_TE, t); +} + +#endif /* IP_FORWARD || IP_REASSEMBLY */ + +/** + * Send an icmp packet in response to an incoming packet. + * + * @param p the input packet for which the 'unreachable' should be sent, + * p->payload pointing to the IP header + * @param type Type of the ICMP header + * @param code Code of the ICMP header + */ +static void +icmp_send_response(struct pbuf *p, u8_t type, u8_t code) +{ + struct pbuf *q; + struct ip_hdr *iphdr; + /* we can use the echo header here */ + struct icmp_echo_hdr *icmphdr; + ip4_addr_t iphdr_src; + struct netif *netif; + + /* increase number of messages attempted to send */ + MIB2_STATS_INC(mib2.icmpoutmsgs); + + /* ICMP header + IP header + 8 bytes of data */ + q = pbuf_alloc(PBUF_IP, sizeof(struct icmp_echo_hdr) + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE, + PBUF_RAM); + if (q == NULL) { + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_time_exceeded: failed to allocate pbuf for ICMP packet.\n")); + MIB2_STATS_INC(mib2.icmpouterrors); + return; + } + LWIP_ASSERT("check that first pbuf can hold icmp message", + (q->len >= (sizeof(struct icmp_echo_hdr) + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE))); + + iphdr = (struct ip_hdr *)p->payload; + LWIP_DEBUGF(ICMP_DEBUG, ("icmp_time_exceeded from ")); + ip4_addr_debug_print_val(ICMP_DEBUG, iphdr->src); + LWIP_DEBUGF(ICMP_DEBUG, (" to ")); + ip4_addr_debug_print_val(ICMP_DEBUG, iphdr->dest); + LWIP_DEBUGF(ICMP_DEBUG, ("\n")); + + icmphdr = (struct icmp_echo_hdr *)q->payload; + icmphdr->type = type; + icmphdr->code = code; + icmphdr->id = 0; + icmphdr->seqno = 0; + + /* copy fields from original packet */ + SMEMCPY((u8_t *)q->payload + sizeof(struct icmp_echo_hdr), (u8_t *)p->payload, + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE); + + ip4_addr_copy(iphdr_src, iphdr->src); +#ifdef LWIP_HOOK_IP4_ROUTE_SRC + { + ip4_addr_t iphdr_dst; + ip4_addr_copy(iphdr_dst, iphdr->dest); + netif = ip4_route_src(&iphdr_dst, &iphdr_src); + } +#else + netif = ip4_route(&iphdr_src); +#endif + if (netif != NULL) { + /* calculate checksum */ + icmphdr->chksum = 0; +#if CHECKSUM_GEN_ICMP + IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_ICMP) { + icmphdr->chksum = inet_chksum(icmphdr, q->len); + } +#endif + ICMP_STATS_INC(icmp.xmit); + ip4_output_if(q, NULL, &iphdr_src, ICMP_TTL, 0, IP_PROTO_ICMP, netif); + } + pbuf_free(q); +} + +#endif /* LWIP_IPV4 && LWIP_ICMP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/igmp.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/igmp.c new file mode 100644 index 000000000..61f45d95c --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/igmp.c @@ -0,0 +1,801 @@ +/** + * @file + * IGMP - Internet Group Management Protocol + * + * @defgroup igmp IGMP + * @ingroup ip4 + * To be called from TCPIP thread + */ + +/* + * Copyright (c) 2002 CITEL Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of CITEL Technologies Ltd nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CITEL TECHNOLOGIES AND CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CITEL TECHNOLOGIES OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is a contribution to the lwIP TCP/IP stack. + * The Swedish Institute of Computer Science and Adam Dunkels + * are specifically granted permission to redistribute this + * source code. +*/ + +/*------------------------------------------------------------- +Note 1) +Although the rfc requires V1 AND V2 capability +we will only support v2 since now V1 is very old (August 1989) +V1 can be added if required + +a debug print and statistic have been implemented to +show this up. +------------------------------------------------------------- +------------------------------------------------------------- +Note 2) +A query for a specific group address (as opposed to ALLHOSTS) +has now been implemented as I am unsure if it is required + +a debug print and statistic have been implemented to +show this up. +------------------------------------------------------------- +------------------------------------------------------------- +Note 3) +The router alert rfc 2113 is implemented in outgoing packets +but not checked rigorously incoming +------------------------------------------------------------- +Steve Reynolds +------------------------------------------------------------*/ + +/*----------------------------------------------------------------------------- + * RFC 988 - Host extensions for IP multicasting - V0 + * RFC 1054 - Host extensions for IP multicasting - + * RFC 1112 - Host extensions for IP multicasting - V1 + * RFC 2236 - Internet Group Management Protocol, Version 2 - V2 <- this code is based on this RFC (it's the "de facto" standard) + * RFC 3376 - Internet Group Management Protocol, Version 3 - V3 + * RFC 4604 - Using Internet Group Management Protocol Version 3... - V3+ + * RFC 2113 - IP Router Alert Option - + *----------------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------------- + * Includes + *----------------------------------------------------------------------------*/ + +#include "lwip/opt.h" + +#if LWIP_IPV4 && LWIP_IGMP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/igmp.h" +#include "lwip/debug.h" +#include "lwip/def.h" +#include "lwip/mem.h" +#include "lwip/ip.h" +#include "lwip/inet_chksum.h" +#include "lwip/netif.h" +#include "lwip/stats.h" +#include "lwip/prot/igmp.h" + +#include + +static struct igmp_group *igmp_lookup_group(struct netif *ifp, const ip4_addr_t *addr); +static err_t igmp_remove_group(struct netif *netif, struct igmp_group *group); +static void igmp_timeout(struct netif *netif, struct igmp_group *group); +static void igmp_start_timer(struct igmp_group *group, u8_t max_time); +static void igmp_delaying_member(struct igmp_group *group, u8_t maxresp); +static err_t igmp_ip_output_if(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, struct netif *netif); +static void igmp_send(struct netif *netif, struct igmp_group *group, u8_t type); + +static ip4_addr_t allsystems; +static ip4_addr_t allrouters; + +/** + * Initialize the IGMP module + */ +void +igmp_init(void) +{ + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_init: initializing\n")); + + IP4_ADDR(&allsystems, 224, 0, 0, 1); + IP4_ADDR(&allrouters, 224, 0, 0, 2); +} + +/** + * Start IGMP processing on interface + * + * @param netif network interface on which start IGMP processing + */ +err_t +igmp_start(struct netif *netif) +{ + struct igmp_group *group; + + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_start: starting IGMP processing on if %p\n", (void *)netif)); + + group = igmp_lookup_group(netif, &allsystems); + + if (group != NULL) { + group->group_state = IGMP_GROUP_IDLE_MEMBER; + group->use++; + + /* Allow the igmp messages at the MAC level */ + if (netif->igmp_mac_filter != NULL) { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_start: igmp_mac_filter(ADD ")); + ip4_addr_debug_print_val(IGMP_DEBUG, allsystems); + LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", (void *)netif)); + netif->igmp_mac_filter(netif, &allsystems, NETIF_ADD_MAC_FILTER); + } + + return ERR_OK; + } + + return ERR_MEM; +} + +/** + * Stop IGMP processing on interface + * + * @param netif network interface on which stop IGMP processing + */ +err_t +igmp_stop(struct netif *netif) +{ + struct igmp_group *group = netif_igmp_data(netif); + + netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_IGMP, NULL); + + while (group != NULL) { + struct igmp_group *next = group->next; /* avoid use-after-free below */ + + /* disable the group at the MAC level */ + if (netif->igmp_mac_filter != NULL) { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_stop: igmp_mac_filter(DEL ")); + ip4_addr_debug_print_val(IGMP_DEBUG, group->group_address); + LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", (void *)netif)); + netif->igmp_mac_filter(netif, &(group->group_address), NETIF_DEL_MAC_FILTER); + } + + /* free group */ + memp_free(MEMP_IGMP_GROUP, group); + + /* move to "next" */ + group = next; + } + return ERR_OK; +} + +/** + * Report IGMP memberships for this interface + * + * @param netif network interface on which report IGMP memberships + */ +void +igmp_report_groups(struct netif *netif) +{ + struct igmp_group *group = netif_igmp_data(netif); + + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_report_groups: sending IGMP reports on if %p\n", (void *)netif)); + + /* Skip the first group in the list, it is always the allsystems group added in igmp_start() */ + if (group != NULL) { + group = group->next; + } + + while (group != NULL) { + igmp_delaying_member(group, IGMP_JOIN_DELAYING_MEMBER_TMR); + group = group->next; + } +} + +/** + * Search for a group in the netif's igmp group list + * + * @param ifp the network interface for which to look + * @param addr the group ip address to search for + * @return a struct igmp_group* if the group has been found, + * NULL if the group wasn't found. + */ +struct igmp_group * +igmp_lookfor_group(struct netif *ifp, const ip4_addr_t *addr) +{ + struct igmp_group *group = netif_igmp_data(ifp); + + while (group != NULL) { + if (ip4_addr_cmp(&(group->group_address), addr)) { + return group; + } + group = group->next; + } + + /* to be clearer, we return NULL here instead of + * 'group' (which is also NULL at this point). + */ + return NULL; +} + +/** + * Search for a specific igmp group and create a new one if not found- + * + * @param ifp the network interface for which to look + * @param addr the group ip address to search + * @return a struct igmp_group*, + * NULL on memory error. + */ +static struct igmp_group * +igmp_lookup_group(struct netif *ifp, const ip4_addr_t *addr) +{ + struct igmp_group *group; + struct igmp_group *list_head = netif_igmp_data(ifp); + + /* Search if the group already exists */ + group = igmp_lookfor_group(ifp, addr); + if (group != NULL) { + /* Group already exists. */ + return group; + } + + /* Group doesn't exist yet, create a new one */ + group = (struct igmp_group *)memp_malloc(MEMP_IGMP_GROUP); + if (group != NULL) { + ip4_addr_set(&(group->group_address), addr); + group->timer = 0; /* Not running */ + group->group_state = IGMP_GROUP_NON_MEMBER; + group->last_reporter_flag = 0; + group->use = 0; + + /* Ensure allsystems group is always first in list */ + if (list_head == NULL) { + /* this is the first entry in linked list */ + LWIP_ASSERT("igmp_lookup_group: first group must be allsystems", + (ip4_addr_cmp(addr, &allsystems) != 0)); + group->next = NULL; + netif_set_client_data(ifp, LWIP_NETIF_CLIENT_DATA_INDEX_IGMP, group); + } else { + /* append _after_ first entry */ + LWIP_ASSERT("igmp_lookup_group: all except first group must not be allsystems", + (ip4_addr_cmp(addr, &allsystems) == 0)); + group->next = list_head->next; + list_head->next = group; + } + } + + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_lookup_group: %sallocated a new group with address ", (group ? "" : "impossible to "))); + ip4_addr_debug_print(IGMP_DEBUG, addr); + LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", (void *)ifp)); + + return group; +} + +/** + * Remove a group from netif's igmp group list, but don't free it yet + * + * @param group the group to remove from the netif's igmp group list + * @return ERR_OK if group was removed from the list, an err_t otherwise + */ +static err_t +igmp_remove_group(struct netif *netif, struct igmp_group *group) +{ + err_t err = ERR_OK; + struct igmp_group *tmp_group; + + /* Skip the first group in the list, it is always the allsystems group added in igmp_start() */ + for (tmp_group = netif_igmp_data(netif); tmp_group != NULL; tmp_group = tmp_group->next) { + if (tmp_group->next == group) { + tmp_group->next = group->next; + break; + } + } + /* Group not found in netif's igmp group list */ + if (tmp_group == NULL) { + err = ERR_ARG; + } + + return err; +} + +/** + * Called from ip_input() if a new IGMP packet is received. + * + * @param p received igmp packet, p->payload pointing to the igmp header + * @param inp network interface on which the packet was received + * @param dest destination ip address of the igmp packet + */ +void +igmp_input(struct pbuf *p, struct netif *inp, const ip4_addr_t *dest) +{ + struct igmp_msg *igmp; + struct igmp_group *group; + struct igmp_group *groupref; + + IGMP_STATS_INC(igmp.recv); + + /* Note that the length CAN be greater than 8 but only 8 are used - All are included in the checksum */ + if (p->len < IGMP_MINLEN) { + pbuf_free(p); + IGMP_STATS_INC(igmp.lenerr); + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: length error\n")); + return; + } + + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: message from ")); + ip4_addr_debug_print_val(IGMP_DEBUG, ip4_current_header()->src); + LWIP_DEBUGF(IGMP_DEBUG, (" to address ")); + ip4_addr_debug_print_val(IGMP_DEBUG, ip4_current_header()->dest); + LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", (void *)inp)); + + /* Now calculate and check the checksum */ + igmp = (struct igmp_msg *)p->payload; + if (inet_chksum(igmp, p->len)) { + pbuf_free(p); + IGMP_STATS_INC(igmp.chkerr); + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: checksum error\n")); + return; + } + + /* Packet is ok so find an existing group */ + group = igmp_lookfor_group(inp, dest); /* use the destination IP address of incoming packet */ + + /* If group can be found or create... */ + if (!group) { + pbuf_free(p); + IGMP_STATS_INC(igmp.drop); + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP frame not for us\n")); + return; + } + + /* NOW ACT ON THE INCOMING MESSAGE TYPE... */ + switch (igmp->igmp_msgtype) { + case IGMP_MEMB_QUERY: + /* IGMP_MEMB_QUERY to the "all systems" address ? */ + if ((ip4_addr_cmp(dest, &allsystems)) && ip4_addr_isany(&igmp->igmp_group_address)) { + /* THIS IS THE GENERAL QUERY */ + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: General IGMP_MEMB_QUERY on \"ALL SYSTEMS\" address (224.0.0.1) [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp))); + + if (igmp->igmp_maxresp == 0) { + IGMP_STATS_INC(igmp.rx_v1); + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: got an all hosts query with time== 0 - this is V1 and not implemented - treat as v2\n")); + igmp->igmp_maxresp = IGMP_V1_DELAYING_MEMBER_TMR; + } else { + IGMP_STATS_INC(igmp.rx_general); + } + + groupref = netif_igmp_data(inp); + + /* Do not send messages on the all systems group address! */ + /* Skip the first group in the list, it is always the allsystems group added in igmp_start() */ + if (groupref != NULL) { + groupref = groupref->next; + } + + while (groupref) { + igmp_delaying_member(groupref, igmp->igmp_maxresp); + groupref = groupref->next; + } + } else { + /* IGMP_MEMB_QUERY to a specific group ? */ + if (!ip4_addr_isany(&igmp->igmp_group_address)) { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP_MEMB_QUERY to a specific group ")); + ip4_addr_debug_print_val(IGMP_DEBUG, igmp->igmp_group_address); + if (ip4_addr_cmp(dest, &allsystems)) { + ip4_addr_t groupaddr; + LWIP_DEBUGF(IGMP_DEBUG, (" using \"ALL SYSTEMS\" address (224.0.0.1) [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp))); + /* we first need to re-look for the group since we used dest last time */ + ip4_addr_copy(groupaddr, igmp->igmp_group_address); + group = igmp_lookfor_group(inp, &groupaddr); + } else { + LWIP_DEBUGF(IGMP_DEBUG, (" with the group address as destination [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp))); + } + + if (group != NULL) { + IGMP_STATS_INC(igmp.rx_group); + igmp_delaying_member(group, igmp->igmp_maxresp); + } else { + IGMP_STATS_INC(igmp.drop); + } + } else { + IGMP_STATS_INC(igmp.proterr); + } + } + break; + case IGMP_V2_MEMB_REPORT: + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP_V2_MEMB_REPORT\n")); + IGMP_STATS_INC(igmp.rx_report); + if (group->group_state == IGMP_GROUP_DELAYING_MEMBER) { + /* This is on a specific group we have already looked up */ + group->timer = 0; /* stopped */ + group->group_state = IGMP_GROUP_IDLE_MEMBER; + group->last_reporter_flag = 0; + } + break; + default: + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: unexpected msg %d in state %d on group %p on if %p\n", + igmp->igmp_msgtype, group->group_state, (void *)&group, (void *)inp)); + IGMP_STATS_INC(igmp.proterr); + break; + } + + pbuf_free(p); + return; +} + +/** + * @ingroup igmp + * Join a group on one network interface. + * + * @param ifaddr ip address of the network interface which should join a new group + * @param groupaddr the ip address of the group which to join + * @return ERR_OK if group was joined on the netif(s), an err_t otherwise + */ +err_t +igmp_joingroup(const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr) +{ + err_t err = ERR_VAL; /* no matching interface */ + struct netif *netif; + + LWIP_ASSERT_CORE_LOCKED(); + + /* make sure it is multicast address */ + LWIP_ERROR("igmp_joingroup: attempt to join non-multicast address", ip4_addr_ismulticast(groupaddr), return ERR_VAL;); + LWIP_ERROR("igmp_joingroup: attempt to join allsystems address", (!ip4_addr_cmp(groupaddr, &allsystems)), return ERR_VAL;); + + /* loop through netif's */ + NETIF_FOREACH(netif) { + /* Should we join this interface ? */ + if ((netif->flags & NETIF_FLAG_IGMP) && ((ip4_addr_isany(ifaddr) || ip4_addr_cmp(netif_ip4_addr(netif), ifaddr)))) { + err = igmp_joingroup_netif(netif, groupaddr); + if (err != ERR_OK) { + /* Return an error even if some network interfaces are joined */ + /** @todo undo any other netif already joined */ + return err; + } + } + } + + return err; +} + +/** + * @ingroup igmp + * Join a group on one network interface. + * + * @param netif the network interface which should join a new group + * @param groupaddr the ip address of the group which to join + * @return ERR_OK if group was joined on the netif, an err_t otherwise + */ +err_t +igmp_joingroup_netif(struct netif *netif, const ip4_addr_t *groupaddr) +{ + struct igmp_group *group; + + LWIP_ASSERT_CORE_LOCKED(); + + /* make sure it is multicast address */ + LWIP_ERROR("igmp_joingroup_netif: attempt to join non-multicast address", ip4_addr_ismulticast(groupaddr), return ERR_VAL;); + LWIP_ERROR("igmp_joingroup_netif: attempt to join allsystems address", (!ip4_addr_cmp(groupaddr, &allsystems)), return ERR_VAL;); + + /* make sure it is an igmp-enabled netif */ + LWIP_ERROR("igmp_joingroup_netif: attempt to join on non-IGMP netif", netif->flags & NETIF_FLAG_IGMP, return ERR_VAL;); + + /* find group or create a new one if not found */ + group = igmp_lookup_group(netif, groupaddr); + + if (group != NULL) { + /* This should create a new group, check the state to make sure */ + if (group->group_state != IGMP_GROUP_NON_MEMBER) { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup_netif: join to group not in state IGMP_GROUP_NON_MEMBER\n")); + } else { + /* OK - it was new group */ + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup_netif: join to new group: ")); + ip4_addr_debug_print(IGMP_DEBUG, groupaddr); + LWIP_DEBUGF(IGMP_DEBUG, ("\n")); + + /* If first use of the group, allow the group at the MAC level */ + if ((group->use == 0) && (netif->igmp_mac_filter != NULL)) { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup_netif: igmp_mac_filter(ADD ")); + ip4_addr_debug_print(IGMP_DEBUG, groupaddr); + LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", (void *)netif)); + netif->igmp_mac_filter(netif, groupaddr, NETIF_ADD_MAC_FILTER); + } + + IGMP_STATS_INC(igmp.tx_join); + igmp_send(netif, group, IGMP_V2_MEMB_REPORT); + + igmp_start_timer(group, IGMP_JOIN_DELAYING_MEMBER_TMR); + + /* Need to work out where this timer comes from */ + group->group_state = IGMP_GROUP_DELAYING_MEMBER; + } + /* Increment group use */ + group->use++; + /* Join on this interface */ + return ERR_OK; + } else { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup_netif: Not enough memory to join to group\n")); + return ERR_MEM; + } +} + +/** + * @ingroup igmp + * Leave a group on one network interface. + * + * @param ifaddr ip address of the network interface which should leave a group + * @param groupaddr the ip address of the group which to leave + * @return ERR_OK if group was left on the netif(s), an err_t otherwise + */ +err_t +igmp_leavegroup(const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr) +{ + err_t err = ERR_VAL; /* no matching interface */ + struct netif *netif; + + LWIP_ASSERT_CORE_LOCKED(); + + /* make sure it is multicast address */ + LWIP_ERROR("igmp_leavegroup: attempt to leave non-multicast address", ip4_addr_ismulticast(groupaddr), return ERR_VAL;); + LWIP_ERROR("igmp_leavegroup: attempt to leave allsystems address", (!ip4_addr_cmp(groupaddr, &allsystems)), return ERR_VAL;); + + /* loop through netif's */ + NETIF_FOREACH(netif) { + /* Should we leave this interface ? */ + if ((netif->flags & NETIF_FLAG_IGMP) && ((ip4_addr_isany(ifaddr) || ip4_addr_cmp(netif_ip4_addr(netif), ifaddr)))) { + err_t res = igmp_leavegroup_netif(netif, groupaddr); + if (err != ERR_OK) { + /* Store this result if we have not yet gotten a success */ + err = res; + } + } + } + + return err; +} + +/** + * @ingroup igmp + * Leave a group on one network interface. + * + * @param netif the network interface which should leave a group + * @param groupaddr the ip address of the group which to leave + * @return ERR_OK if group was left on the netif, an err_t otherwise + */ +err_t +igmp_leavegroup_netif(struct netif *netif, const ip4_addr_t *groupaddr) +{ + struct igmp_group *group; + + LWIP_ASSERT_CORE_LOCKED(); + + /* make sure it is multicast address */ + LWIP_ERROR("igmp_leavegroup_netif: attempt to leave non-multicast address", ip4_addr_ismulticast(groupaddr), return ERR_VAL;); + LWIP_ERROR("igmp_leavegroup_netif: attempt to leave allsystems address", (!ip4_addr_cmp(groupaddr, &allsystems)), return ERR_VAL;); + + /* make sure it is an igmp-enabled netif */ + LWIP_ERROR("igmp_leavegroup_netif: attempt to leave on non-IGMP netif", netif->flags & NETIF_FLAG_IGMP, return ERR_VAL;); + + /* find group */ + group = igmp_lookfor_group(netif, groupaddr); + + if (group != NULL) { + /* Only send a leave if the flag is set according to the state diagram */ + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup_netif: Leaving group: ")); + ip4_addr_debug_print(IGMP_DEBUG, groupaddr); + LWIP_DEBUGF(IGMP_DEBUG, ("\n")); + + /* If there is no other use of the group */ + if (group->use <= 1) { + /* Remove the group from the list */ + igmp_remove_group(netif, group); + + /* If we are the last reporter for this group */ + if (group->last_reporter_flag) { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup_netif: sending leaving group\n")); + IGMP_STATS_INC(igmp.tx_leave); + igmp_send(netif, group, IGMP_LEAVE_GROUP); + } + + /* Disable the group at the MAC level */ + if (netif->igmp_mac_filter != NULL) { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup_netif: igmp_mac_filter(DEL ")); + ip4_addr_debug_print(IGMP_DEBUG, groupaddr); + LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", (void *)netif)); + netif->igmp_mac_filter(netif, groupaddr, NETIF_DEL_MAC_FILTER); + } + + /* Free group struct */ + memp_free(MEMP_IGMP_GROUP, group); + } else { + /* Decrement group use */ + group->use--; + } + return ERR_OK; + } else { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup_netif: not member of group\n")); + return ERR_VAL; + } +} + +/** + * The igmp timer function (both for NO_SYS=1 and =0) + * Should be called every IGMP_TMR_INTERVAL milliseconds (100 ms is default). + */ +void +igmp_tmr(void) +{ + struct netif *netif; + + NETIF_FOREACH(netif) { + struct igmp_group *group = netif_igmp_data(netif); + + while (group != NULL) { + if (group->timer > 0) { + group->timer--; + if (group->timer == 0) { + igmp_timeout(netif, group); + } + } + group = group->next; + } + } +} + +/** + * Called if a timeout for one group is reached. + * Sends a report for this group. + * + * @param group an igmp_group for which a timeout is reached + */ +static void +igmp_timeout(struct netif *netif, struct igmp_group *group) +{ + /* If the state is IGMP_GROUP_DELAYING_MEMBER then we send a report for this group + (unless it is the allsystems group) */ + if ((group->group_state == IGMP_GROUP_DELAYING_MEMBER) && + (!(ip4_addr_cmp(&(group->group_address), &allsystems)))) { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_timeout: report membership for group with address ")); + ip4_addr_debug_print_val(IGMP_DEBUG, group->group_address); + LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", (void *)netif)); + + group->group_state = IGMP_GROUP_IDLE_MEMBER; + + IGMP_STATS_INC(igmp.tx_report); + igmp_send(netif, group, IGMP_V2_MEMB_REPORT); + } +} + +/** + * Start a timer for an igmp group + * + * @param group the igmp_group for which to start a timer + * @param max_time the time in multiples of IGMP_TMR_INTERVAL (decrease with + * every call to igmp_tmr()) + */ +static void +igmp_start_timer(struct igmp_group *group, u8_t max_time) +{ +#ifdef LWIP_RAND + group->timer = (u16_t)(max_time > 2 ? (LWIP_RAND() % max_time) : 1); +#else /* LWIP_RAND */ + /* ATTENTION: use this only if absolutely necessary! */ + group->timer = max_time / 2; +#endif /* LWIP_RAND */ + + if (group->timer == 0) { + group->timer = 1; + } +} + +/** + * Delaying membership report for a group if necessary + * + * @param group the igmp_group for which "delaying" membership report + * @param maxresp query delay + */ +static void +igmp_delaying_member(struct igmp_group *group, u8_t maxresp) +{ + if ((group->group_state == IGMP_GROUP_IDLE_MEMBER) || + ((group->group_state == IGMP_GROUP_DELAYING_MEMBER) && + ((group->timer == 0) || (maxresp < group->timer)))) { + igmp_start_timer(group, maxresp); + group->group_state = IGMP_GROUP_DELAYING_MEMBER; + } +} + + +/** + * Sends an IP packet on a network interface. This function constructs the IP header + * and calculates the IP header checksum. If the source IP address is NULL, + * the IP address of the outgoing network interface is filled in as source address. + * + * @param p the packet to send (p->payload points to the data, e.g. next + protocol header; if dest == LWIP_IP_HDRINCL, p already includes an + IP header and p->payload points to that IP header) + * @param src the source IP address to send from (if src == IP4_ADDR_ANY, the + * IP address of the netif used to send is used as source address) + * @param dest the destination IP address to send the packet to + * @param netif the netif on which to send this packet + * @return ERR_OK if the packet was sent OK + * ERR_BUF if p doesn't have enough space for IP/LINK headers + * returns errors returned by netif->output + */ +static err_t +igmp_ip_output_if(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, struct netif *netif) +{ + /* This is the "router alert" option */ + u16_t ra[2]; + ra[0] = PP_HTONS(ROUTER_ALERT); + ra[1] = 0x0000; /* Router shall examine packet */ + IGMP_STATS_INC(igmp.xmit); + return ip4_output_if_opt(p, src, dest, IGMP_TTL, 0, IP_PROTO_IGMP, netif, ra, ROUTER_ALERTLEN); +} + +/** + * Send an igmp packet to a specific group. + * + * @param group the group to which to send the packet + * @param type the type of igmp packet to send + */ +static void +igmp_send(struct netif *netif, struct igmp_group *group, u8_t type) +{ + struct pbuf *p = NULL; + struct igmp_msg *igmp = NULL; + ip4_addr_t src = *IP4_ADDR_ANY4; + ip4_addr_t *dest = NULL; + + /* IP header + "router alert" option + IGMP header */ + p = pbuf_alloc(PBUF_TRANSPORT, IGMP_MINLEN, PBUF_RAM); + + if (p) { + igmp = (struct igmp_msg *)p->payload; + LWIP_ASSERT("igmp_send: check that first pbuf can hold struct igmp_msg", + (p->len >= sizeof(struct igmp_msg))); + ip4_addr_copy(src, *netif_ip4_addr(netif)); + + if (type == IGMP_V2_MEMB_REPORT) { + dest = &(group->group_address); + ip4_addr_copy(igmp->igmp_group_address, group->group_address); + group->last_reporter_flag = 1; /* Remember we were the last to report */ + } else { + if (type == IGMP_LEAVE_GROUP) { + dest = &allrouters; + ip4_addr_copy(igmp->igmp_group_address, group->group_address); + } + } + + if ((type == IGMP_V2_MEMB_REPORT) || (type == IGMP_LEAVE_GROUP)) { + igmp->igmp_msgtype = type; + igmp->igmp_maxresp = 0; + igmp->igmp_checksum = 0; + igmp->igmp_checksum = inet_chksum(igmp, IGMP_MINLEN); + + igmp_ip_output_if(p, &src, dest, netif); + } + + pbuf_free(p); + } else { + LWIP_DEBUGF(IGMP_DEBUG, ("igmp_send: not enough memory for igmp_send\n")); + IGMP_STATS_INC(igmp.memerr); + } +} + +#endif /* LWIP_IPV4 && LWIP_IGMP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4.c new file mode 100644 index 000000000..00b09f9f3 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4.c @@ -0,0 +1,1132 @@ +/** + * @file + * This is the IPv4 layer implementation for incoming and outgoing IP traffic. + * + * @see ip_frag.c + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_IPV4 + +#include "lwip/ip.h" +#include "lwip/def.h" +#include "lwip/mem.h" +#include "lwip/ip4_frag.h" +#include "lwip/inet_chksum.h" +#include "lwip/netif.h" +#include "lwip/icmp.h" +#include "lwip/igmp.h" +#include "lwip/priv/raw_priv.h" +#include "lwip/udp.h" +#include "lwip/priv/tcp_priv.h" +#include "lwip/autoip.h" +#include "lwip/stats.h" +#include "lwip/prot/iana.h" + +#include + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +/** Set this to 0 in the rare case of wanting to call an extra function to + * generate the IP checksum (in contrast to calculating it on-the-fly). */ +#ifndef LWIP_INLINE_IP_CHKSUM +#if LWIP_CHECKSUM_CTRL_PER_NETIF +#define LWIP_INLINE_IP_CHKSUM 0 +#else /* LWIP_CHECKSUM_CTRL_PER_NETIF */ +#define LWIP_INLINE_IP_CHKSUM 1 +#endif /* LWIP_CHECKSUM_CTRL_PER_NETIF */ +#endif + +#if LWIP_INLINE_IP_CHKSUM && CHECKSUM_GEN_IP +#define CHECKSUM_GEN_IP_INLINE 1 +#else +#define CHECKSUM_GEN_IP_INLINE 0 +#endif + +#if LWIP_DHCP || defined(LWIP_IP_ACCEPT_UDP_PORT) +#define IP_ACCEPT_LINK_LAYER_ADDRESSING 1 + +/** Some defines for DHCP to let link-layer-addressed packets through while the + * netif is down. + * To use this in your own application/protocol, define LWIP_IP_ACCEPT_UDP_PORT(port) + * to return 1 if the port is accepted and 0 if the port is not accepted. + */ +#if LWIP_DHCP && defined(LWIP_IP_ACCEPT_UDP_PORT) +/* accept DHCP client port and custom port */ +#define IP_ACCEPT_LINK_LAYER_ADDRESSED_PORT(port) (((port) == PP_NTOHS(LWIP_IANA_PORT_DHCP_CLIENT)) \ + || (LWIP_IP_ACCEPT_UDP_PORT(port))) +#elif defined(LWIP_IP_ACCEPT_UDP_PORT) /* LWIP_DHCP && defined(LWIP_IP_ACCEPT_UDP_PORT) */ +/* accept custom port only */ +#define IP_ACCEPT_LINK_LAYER_ADDRESSED_PORT(port) (LWIP_IP_ACCEPT_UDP_PORT(port)) +#else /* LWIP_DHCP && defined(LWIP_IP_ACCEPT_UDP_PORT) */ +/* accept DHCP client port only */ +#define IP_ACCEPT_LINK_LAYER_ADDRESSED_PORT(port) ((port) == PP_NTOHS(LWIP_IANA_PORT_DHCP_CLIENT)) +#endif /* LWIP_DHCP && defined(LWIP_IP_ACCEPT_UDP_PORT) */ + +#else /* LWIP_DHCP */ +#define IP_ACCEPT_LINK_LAYER_ADDRESSING 0 +#endif /* LWIP_DHCP */ + +/** The IP header ID of the next outgoing IP packet */ +static u16_t ip_id; + +#if LWIP_MULTICAST_TX_OPTIONS +/** The default netif used for multicast */ +static struct netif *ip4_default_multicast_netif; + +/** + * @ingroup ip4 + * Set a default netif for IPv4 multicast. */ +void +ip4_set_default_multicast_netif(struct netif *default_multicast_netif) +{ + ip4_default_multicast_netif = default_multicast_netif; +} +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + +#ifdef LWIP_HOOK_IP4_ROUTE_SRC +/** + * Source based IPv4 routing must be fully implemented in + * LWIP_HOOK_IP4_ROUTE_SRC(). This function only provides the parameters. + */ +struct netif * +ip4_route_src(const ip4_addr_t *src, const ip4_addr_t *dest) +{ + if (src != NULL) { + /* when src==NULL, the hook is called from ip4_route(dest) */ + struct netif *netif = LWIP_HOOK_IP4_ROUTE_SRC(src, dest); + if (netif != NULL) { + return netif; + } + } + return ip4_route(dest); +} +#endif /* LWIP_HOOK_IP4_ROUTE_SRC */ + +/** + * Finds the appropriate network interface for a given IP address. It + * searches the list of network interfaces linearly. A match is found + * if the masked IP address of the network interface equals the masked + * IP address given to the function. + * + * @param dest the destination IP address for which to find the route + * @return the netif on which to send to reach dest + */ +struct netif * +ip4_route(const ip4_addr_t *dest) +{ +#if !LWIP_SINGLE_NETIF + struct netif *netif; + + LWIP_ASSERT_CORE_LOCKED(); + +#if LWIP_MULTICAST_TX_OPTIONS + /* Use administratively selected interface for multicast by default */ + if (ip4_addr_ismulticast(dest) && ip4_default_multicast_netif) { + return ip4_default_multicast_netif; + } +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + + /* bug #54569: in case LWIP_SINGLE_NETIF=1 and LWIP_DEBUGF() disabled, the following loop is optimized away */ + LWIP_UNUSED_ARG(dest); + + /* iterate through netifs */ + NETIF_FOREACH(netif) { + /* is the netif up, does it have a link and a valid address? */ + if (netif_is_up(netif) && netif_is_link_up(netif) && !ip4_addr_isany_val(*netif_ip4_addr(netif))) { + /* network mask matches? */ + if (ip4_addr_netcmp(dest, netif_ip4_addr(netif), netif_ip4_netmask(netif))) { + /* return netif on which to forward IP packet */ + return netif; + } + /* gateway matches on a non broadcast interface? (i.e. peer in a point to point interface) */ + if (((netif->flags & NETIF_FLAG_BROADCAST) == 0) && ip4_addr_cmp(dest, netif_ip4_gw(netif))) { + /* return netif on which to forward IP packet */ + return netif; + } + } + } + +#if LWIP_NETIF_LOOPBACK && !LWIP_HAVE_LOOPIF + /* loopif is disabled, looopback traffic is passed through any netif */ + if (ip4_addr_isloopback(dest)) { + /* don't check for link on loopback traffic */ + if (netif_default != NULL && netif_is_up(netif_default)) { + return netif_default; + } + /* default netif is not up, just use any netif for loopback traffic */ + NETIF_FOREACH(netif) { + if (netif_is_up(netif)) { + return netif; + } + } + return NULL; + } +#endif /* LWIP_NETIF_LOOPBACK && !LWIP_HAVE_LOOPIF */ + +#ifdef LWIP_HOOK_IP4_ROUTE_SRC + netif = LWIP_HOOK_IP4_ROUTE_SRC(NULL, dest); + if (netif != NULL) { + return netif; + } +#elif defined(LWIP_HOOK_IP4_ROUTE) + netif = LWIP_HOOK_IP4_ROUTE(dest); + if (netif != NULL) { + return netif; + } +#endif +#endif /* !LWIP_SINGLE_NETIF */ + + if ((netif_default == NULL) || !netif_is_up(netif_default) || !netif_is_link_up(netif_default) || + ip4_addr_isany_val(*netif_ip4_addr(netif_default)) || ip4_addr_isloopback(dest)) { + /* No matching netif found and default netif is not usable. + If this is not good enough for you, use LWIP_HOOK_IP4_ROUTE() */ + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip4_route: No route to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(dest), ip4_addr2_16(dest), ip4_addr3_16(dest), ip4_addr4_16(dest))); + IP_STATS_INC(ip.rterr); + MIB2_STATS_INC(mib2.ipoutnoroutes); + return NULL; + } + + return netif_default; +} + +#if IP_FORWARD +/** + * Determine whether an IP address is in a reserved set of addresses + * that may not be forwarded, or whether datagrams to that destination + * may be forwarded. + * @param p the packet to forward + * @return 1: can forward 0: discard + */ +static int +ip4_canforward(struct pbuf *p) +{ + u32_t addr = lwip_htonl(ip4_addr_get_u32(ip4_current_dest_addr())); + +#ifdef LWIP_HOOK_IP4_CANFORWARD + int ret = LWIP_HOOK_IP4_CANFORWARD(p, addr); + if (ret >= 0) { + return ret; + } +#endif /* LWIP_HOOK_IP4_CANFORWARD */ + + if (p->flags & PBUF_FLAG_LLBCAST) { + /* don't route link-layer broadcasts */ + return 0; + } + if ((p->flags & PBUF_FLAG_LLMCAST) || IP_MULTICAST(addr)) { + /* don't route link-layer multicasts (use LWIP_HOOK_IP4_CANFORWARD instead) */ + return 0; + } + if (IP_EXPERIMENTAL(addr)) { + return 0; + } + if (IP_CLASSA(addr)) { + u32_t net = addr & IP_CLASSA_NET; + if ((net == 0) || (net == ((u32_t)IP_LOOPBACKNET << IP_CLASSA_NSHIFT))) { + /* don't route loopback packets */ + return 0; + } + } + return 1; +} + +/** + * Forwards an IP packet. It finds an appropriate route for the + * packet, decrements the TTL value of the packet, adjusts the + * checksum and outputs the packet on the appropriate interface. + * + * @param p the packet to forward (p->payload points to IP header) + * @param iphdr the IP header of the input packet + * @param inp the netif on which this packet was received + */ +static void +ip4_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp) +{ + struct netif *netif; + + PERF_START; + LWIP_UNUSED_ARG(inp); + + if (!ip4_canforward(p)) { + goto return_noroute; + } + + /* RFC3927 2.7: do not forward link-local addresses */ + if (ip4_addr_islinklocal(ip4_current_dest_addr())) { + LWIP_DEBUGF(IP_DEBUG, ("ip4_forward: not forwarding LLA %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(ip4_current_dest_addr()), ip4_addr2_16(ip4_current_dest_addr()), + ip4_addr3_16(ip4_current_dest_addr()), ip4_addr4_16(ip4_current_dest_addr()))); + goto return_noroute; + } + + /* Find network interface where to forward this IP packet to. */ + netif = ip4_route_src(ip4_current_src_addr(), ip4_current_dest_addr()); + if (netif == NULL) { + LWIP_DEBUGF(IP_DEBUG, ("ip4_forward: no forwarding route for %"U16_F".%"U16_F".%"U16_F".%"U16_F" found\n", + ip4_addr1_16(ip4_current_dest_addr()), ip4_addr2_16(ip4_current_dest_addr()), + ip4_addr3_16(ip4_current_dest_addr()), ip4_addr4_16(ip4_current_dest_addr()))); + /* @todo: send ICMP_DUR_NET? */ + goto return_noroute; + } +#if !IP_FORWARD_ALLOW_TX_ON_RX_NETIF + /* Do not forward packets onto the same network interface on which + * they arrived. */ + if (netif == inp) { + LWIP_DEBUGF(IP_DEBUG, ("ip4_forward: not bouncing packets back on incoming interface.\n")); + goto return_noroute; + } +#endif /* IP_FORWARD_ALLOW_TX_ON_RX_NETIF */ + + /* decrement TTL */ + IPH_TTL_SET(iphdr, IPH_TTL(iphdr) - 1); + /* send ICMP if TTL == 0 */ + if (IPH_TTL(iphdr) == 0) { + MIB2_STATS_INC(mib2.ipinhdrerrors); +#if LWIP_ICMP + /* Don't send ICMP messages in response to ICMP messages */ + if (IPH_PROTO(iphdr) != IP_PROTO_ICMP) { + icmp_time_exceeded(p, ICMP_TE_TTL); + } +#endif /* LWIP_ICMP */ + return; + } + + /* Incrementally update the IP checksum. */ + if (IPH_CHKSUM(iphdr) >= PP_HTONS(0xffffU - 0x100)) { + IPH_CHKSUM_SET(iphdr, (u16_t)(IPH_CHKSUM(iphdr) + PP_HTONS(0x100) + 1)); + } else { + IPH_CHKSUM_SET(iphdr, (u16_t)(IPH_CHKSUM(iphdr) + PP_HTONS(0x100))); + } + + LWIP_DEBUGF(IP_DEBUG, ("ip4_forward: forwarding packet to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(ip4_current_dest_addr()), ip4_addr2_16(ip4_current_dest_addr()), + ip4_addr3_16(ip4_current_dest_addr()), ip4_addr4_16(ip4_current_dest_addr()))); + + IP_STATS_INC(ip.fw); + MIB2_STATS_INC(mib2.ipforwdatagrams); + IP_STATS_INC(ip.xmit); + + PERF_STOP("ip4_forward"); + /* don't fragment if interface has mtu set to 0 [loopif] */ + if (netif->mtu && (p->tot_len > netif->mtu)) { + if ((IPH_OFFSET(iphdr) & PP_NTOHS(IP_DF)) == 0) { +#if IP_FRAG + ip4_frag(p, netif, ip4_current_dest_addr()); +#else /* IP_FRAG */ + /* @todo: send ICMP Destination Unreachable code 13 "Communication administratively prohibited"? */ +#endif /* IP_FRAG */ + } else { +#if LWIP_ICMP + /* send ICMP Destination Unreachable code 4: "Fragmentation Needed and DF Set" */ + icmp_dest_unreach(p, ICMP_DUR_FRAG); +#endif /* LWIP_ICMP */ + } + return; + } + /* transmit pbuf on chosen interface */ + netif->output(netif, p, ip4_current_dest_addr()); + return; +return_noroute: + MIB2_STATS_INC(mib2.ipoutnoroutes); +} +#endif /* IP_FORWARD */ + +/** Return true if the current input packet should be accepted on this netif */ +static int +ip4_input_accept(struct netif *netif) +{ + LWIP_DEBUGF(IP_DEBUG, ("ip_input: iphdr->dest 0x%"X32_F" netif->ip_addr 0x%"X32_F" (0x%"X32_F", 0x%"X32_F", 0x%"X32_F")\n", + ip4_addr_get_u32(ip4_current_dest_addr()), ip4_addr_get_u32(netif_ip4_addr(netif)), + ip4_addr_get_u32(ip4_current_dest_addr()) & ip4_addr_get_u32(netif_ip4_netmask(netif)), + ip4_addr_get_u32(netif_ip4_addr(netif)) & ip4_addr_get_u32(netif_ip4_netmask(netif)), + ip4_addr_get_u32(ip4_current_dest_addr()) & ~ip4_addr_get_u32(netif_ip4_netmask(netif)))); + + /* interface is up and configured? */ + if ((netif_is_up(netif)) && (!ip4_addr_isany_val(*netif_ip4_addr(netif)))) { + /* unicast to this interface address? */ + if (ip4_addr_cmp(ip4_current_dest_addr(), netif_ip4_addr(netif)) || + /* or broadcast on this interface network address? */ + ip4_addr_isbroadcast(ip4_current_dest_addr(), netif) +#if LWIP_NETIF_LOOPBACK && !LWIP_HAVE_LOOPIF + || (ip4_addr_get_u32(ip4_current_dest_addr()) == PP_HTONL(IPADDR_LOOPBACK)) +#endif /* LWIP_NETIF_LOOPBACK && !LWIP_HAVE_LOOPIF */ + ) { + LWIP_DEBUGF(IP_DEBUG, ("ip4_input: packet accepted on interface %c%c\n", + netif->name[0], netif->name[1])); + /* accept on this netif */ + return 1; + } +#if LWIP_AUTOIP + /* connections to link-local addresses must persist after changing + the netif's address (RFC3927 ch. 1.9) */ + if (autoip_accept_packet(netif, ip4_current_dest_addr())) { + LWIP_DEBUGF(IP_DEBUG, ("ip4_input: LLA packet accepted on interface %c%c\n", + netif->name[0], netif->name[1])); + /* accept on this netif */ + return 1; + } +#endif /* LWIP_AUTOIP */ + } + return 0; +} + +/** + * This function is called by the network interface device driver when + * an IP packet is received. The function does the basic checks of the + * IP header such as packet size being at least larger than the header + * size etc. If the packet was not destined for us, the packet is + * forwarded (using ip_forward). The IP checksum is always checked. + * + * Finally, the packet is sent to the upper layer protocol input function. + * + * @param p the received IP packet (p->payload points to IP header) + * @param inp the netif on which this packet was received + * @return ERR_OK if the packet was processed (could return ERR_* if it wasn't + * processed, but currently always returns ERR_OK) + */ +err_t +ip4_input(struct pbuf *p, struct netif *inp) +{ + const struct ip_hdr *iphdr; + struct netif *netif; + u16_t iphdr_hlen; + u16_t iphdr_len; +#if IP_ACCEPT_LINK_LAYER_ADDRESSING || LWIP_IGMP + int check_ip_src = 1; +#endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING || LWIP_IGMP */ +#if LWIP_RAW + raw_input_state_t raw_status; +#endif /* LWIP_RAW */ + + LWIP_ASSERT_CORE_LOCKED(); + + IP_STATS_INC(ip.recv); + MIB2_STATS_INC(mib2.ipinreceives); + + /* identify the IP header */ + iphdr = (struct ip_hdr *)p->payload; + if (IPH_V(iphdr) != 4) { + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_WARNING, ("IP packet dropped due to bad version number %"U16_F"\n", (u16_t)IPH_V(iphdr))); + ip4_debug_print(p); + pbuf_free(p); + IP_STATS_INC(ip.err); + IP_STATS_INC(ip.drop); + MIB2_STATS_INC(mib2.ipinhdrerrors); + return ERR_OK; + } + +#ifdef LWIP_HOOK_IP4_INPUT + if (LWIP_HOOK_IP4_INPUT(p, inp)) { + /* the packet has been eaten */ + return ERR_OK; + } +#endif + + /* obtain IP header length in bytes */ + iphdr_hlen = IPH_HL_BYTES(iphdr); + /* obtain ip length in bytes */ + iphdr_len = lwip_ntohs(IPH_LEN(iphdr)); + + /* Trim pbuf. This is especially required for packets < 60 bytes. */ + if (iphdr_len < p->tot_len) { + pbuf_realloc(p, iphdr_len); + } + + /* header length exceeds first pbuf length, or ip length exceeds total pbuf length? */ + if ((iphdr_hlen > p->len) || (iphdr_len > p->tot_len) || (iphdr_hlen < IP_HLEN)) { + if (iphdr_hlen < IP_HLEN) { + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("ip4_input: short IP header (%"U16_F" bytes) received, IP packet dropped\n", iphdr_hlen)); + } + if (iphdr_hlen > p->len) { + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("IP header (len %"U16_F") does not fit in first pbuf (len %"U16_F"), IP packet dropped.\n", + iphdr_hlen, p->len)); + } + if (iphdr_len > p->tot_len) { + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("IP (len %"U16_F") is longer than pbuf (len %"U16_F"), IP packet dropped.\n", + iphdr_len, p->tot_len)); + } + /* free (drop) packet pbufs */ + pbuf_free(p); + IP_STATS_INC(ip.lenerr); + IP_STATS_INC(ip.drop); + MIB2_STATS_INC(mib2.ipindiscards); + return ERR_OK; + } + + /* verify checksum */ +#if CHECKSUM_CHECK_IP + IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_CHECK_IP) { + if (inet_chksum(iphdr, iphdr_hlen) != 0) { + + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("Checksum (0x%"X16_F") failed, IP packet dropped.\n", inet_chksum(iphdr, iphdr_hlen))); + ip4_debug_print(p); + pbuf_free(p); + IP_STATS_INC(ip.chkerr); + IP_STATS_INC(ip.drop); + MIB2_STATS_INC(mib2.ipinhdrerrors); + return ERR_OK; + } + } +#endif + + /* copy IP addresses to aligned ip_addr_t */ + ip_addr_copy_from_ip4(ip_data.current_iphdr_dest, iphdr->dest); + ip_addr_copy_from_ip4(ip_data.current_iphdr_src, iphdr->src); + + /* match packet against an interface, i.e. is this packet for us? */ + if (ip4_addr_ismulticast(ip4_current_dest_addr())) { +#if LWIP_IGMP + if ((inp->flags & NETIF_FLAG_IGMP) && (igmp_lookfor_group(inp, ip4_current_dest_addr()))) { + /* IGMP snooping switches need 0.0.0.0 to be allowed as source address (RFC 4541) */ + ip4_addr_t allsystems; + IP4_ADDR(&allsystems, 224, 0, 0, 1); + if (ip4_addr_cmp(ip4_current_dest_addr(), &allsystems) && + ip4_addr_isany(ip4_current_src_addr())) { + check_ip_src = 0; + } + netif = inp; + } else { + netif = NULL; + } +#else /* LWIP_IGMP */ + if ((netif_is_up(inp)) && (!ip4_addr_isany_val(*netif_ip4_addr(inp)))) { + netif = inp; + } else { + netif = NULL; + } +#endif /* LWIP_IGMP */ + } else { + /* start trying with inp. if that's not acceptable, start walking the + list of configured netifs. */ + if (ip4_input_accept(inp)) { + netif = inp; + } else { + netif = NULL; +#if !LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF + /* Packets sent to the loopback address must not be accepted on an + * interface that does not have the loopback address assigned to it, + * unless a non-loopback interface is used for loopback traffic. */ + if (!ip4_addr_isloopback(ip4_current_dest_addr())) +#endif /* !LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF */ + { +#if !LWIP_SINGLE_NETIF + NETIF_FOREACH(netif) { + if (netif == inp) { + /* we checked that before already */ + continue; + } + if (ip4_input_accept(netif)) { + break; + } + } +#endif /* !LWIP_SINGLE_NETIF */ + } + } + } + +#if IP_ACCEPT_LINK_LAYER_ADDRESSING + /* Pass DHCP messages regardless of destination address. DHCP traffic is addressed + * using link layer addressing (such as Ethernet MAC) so we must not filter on IP. + * According to RFC 1542 section 3.1.1, referred by RFC 2131). + * + * If you want to accept private broadcast communication while a netif is down, + * define LWIP_IP_ACCEPT_UDP_PORT(dst_port), e.g.: + * + * #define LWIP_IP_ACCEPT_UDP_PORT(dst_port) ((dst_port) == PP_NTOHS(12345)) + */ + if (netif == NULL) { + /* remote port is DHCP server? */ + if (IPH_PROTO(iphdr) == IP_PROTO_UDP) { + const struct udp_hdr *udphdr = (const struct udp_hdr *)((const u8_t *)iphdr + iphdr_hlen); + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE, ("ip4_input: UDP packet to DHCP client port %"U16_F"\n", + lwip_ntohs(udphdr->dest))); + if (IP_ACCEPT_LINK_LAYER_ADDRESSED_PORT(udphdr->dest)) { + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE, ("ip4_input: DHCP packet accepted.\n")); + netif = inp; + check_ip_src = 0; + } + } + } +#endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */ + + /* broadcast or multicast packet source address? Compliant with RFC 1122: 3.2.1.3 */ +#if LWIP_IGMP || IP_ACCEPT_LINK_LAYER_ADDRESSING + if (check_ip_src +#if IP_ACCEPT_LINK_LAYER_ADDRESSING + /* DHCP servers need 0.0.0.0 to be allowed as source address (RFC 1.1.2.2: 3.2.1.3/a) */ + && !ip4_addr_isany_val(*ip4_current_src_addr()) +#endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */ + ) +#endif /* LWIP_IGMP || IP_ACCEPT_LINK_LAYER_ADDRESSING */ + { + if ((ip4_addr_isbroadcast(ip4_current_src_addr(), inp)) || + (ip4_addr_ismulticast(ip4_current_src_addr()))) { + /* packet source is not valid */ + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("ip4_input: packet source is not valid.\n")); + /* free (drop) packet pbufs */ + pbuf_free(p); + IP_STATS_INC(ip.drop); + MIB2_STATS_INC(mib2.ipinaddrerrors); + MIB2_STATS_INC(mib2.ipindiscards); + return ERR_OK; + } + } + + /* packet not for us? */ + if (netif == NULL) { + /* packet not for us, route or discard */ + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE, ("ip4_input: packet not for us.\n")); +#if IP_FORWARD + /* non-broadcast packet? */ + if (!ip4_addr_isbroadcast(ip4_current_dest_addr(), inp)) { + /* try to forward IP packet on (other) interfaces */ + ip4_forward(p, (struct ip_hdr *)p->payload, inp); + } else +#endif /* IP_FORWARD */ + { + IP_STATS_INC(ip.drop); + MIB2_STATS_INC(mib2.ipinaddrerrors); + MIB2_STATS_INC(mib2.ipindiscards); + } + pbuf_free(p); + return ERR_OK; + } + /* packet consists of multiple fragments? */ + if ((IPH_OFFSET(iphdr) & PP_HTONS(IP_OFFMASK | IP_MF)) != 0) { +#if IP_REASSEMBLY /* packet fragment reassembly code present? */ + LWIP_DEBUGF(IP_DEBUG, ("IP packet is a fragment (id=0x%04"X16_F" tot_len=%"U16_F" len=%"U16_F" MF=%"U16_F" offset=%"U16_F"), calling ip4_reass()\n", + lwip_ntohs(IPH_ID(iphdr)), p->tot_len, lwip_ntohs(IPH_LEN(iphdr)), (u16_t)!!(IPH_OFFSET(iphdr) & PP_HTONS(IP_MF)), (u16_t)((lwip_ntohs(IPH_OFFSET(iphdr)) & IP_OFFMASK) * 8))); + /* reassemble the packet*/ + p = ip4_reass(p); + /* packet not fully reassembled yet? */ + if (p == NULL) { + return ERR_OK; + } + iphdr = (const struct ip_hdr *)p->payload; +#else /* IP_REASSEMBLY == 0, no packet fragment reassembly code present */ + pbuf_free(p); + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("IP packet dropped since it was fragmented (0x%"X16_F") (while IP_REASSEMBLY == 0).\n", + lwip_ntohs(IPH_OFFSET(iphdr)))); + IP_STATS_INC(ip.opterr); + IP_STATS_INC(ip.drop); + /* unsupported protocol feature */ + MIB2_STATS_INC(mib2.ipinunknownprotos); + return ERR_OK; +#endif /* IP_REASSEMBLY */ + } + +#if IP_OPTIONS_ALLOWED == 0 /* no support for IP options in the IP header? */ + +#if LWIP_IGMP + /* there is an extra "router alert" option in IGMP messages which we allow for but do not police */ + if ((iphdr_hlen > IP_HLEN) && (IPH_PROTO(iphdr) != IP_PROTO_IGMP)) { +#else + if (iphdr_hlen > IP_HLEN) { +#endif /* LWIP_IGMP */ + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("IP packet dropped since there were IP options (while IP_OPTIONS_ALLOWED == 0).\n")); + pbuf_free(p); + IP_STATS_INC(ip.opterr); + IP_STATS_INC(ip.drop); + /* unsupported protocol feature */ + MIB2_STATS_INC(mib2.ipinunknownprotos); + return ERR_OK; + } +#endif /* IP_OPTIONS_ALLOWED == 0 */ + + /* send to upper layers */ + LWIP_DEBUGF(IP_DEBUG, ("ip4_input: \n")); + ip4_debug_print(p); + LWIP_DEBUGF(IP_DEBUG, ("ip4_input: p->len %"U16_F" p->tot_len %"U16_F"\n", p->len, p->tot_len)); + + ip_data.current_netif = netif; + ip_data.current_input_netif = inp; + ip_data.current_ip4_header = iphdr; + ip_data.current_ip_header_tot_len = IPH_HL_BYTES(iphdr); + +#if LWIP_RAW + /* raw input did not eat the packet? */ + raw_status = raw_input(p, inp); + if (raw_status != RAW_INPUT_EATEN) +#endif /* LWIP_RAW */ + { + pbuf_remove_header(p, iphdr_hlen); /* Move to payload, no check necessary. */ + + switch (IPH_PROTO(iphdr)) { +#if LWIP_UDP + case IP_PROTO_UDP: +#if LWIP_UDPLITE + case IP_PROTO_UDPLITE: +#endif /* LWIP_UDPLITE */ + MIB2_STATS_INC(mib2.ipindelivers); + udp_input(p, inp); + break; +#endif /* LWIP_UDP */ +#if LWIP_TCP + case IP_PROTO_TCP: + MIB2_STATS_INC(mib2.ipindelivers); + tcp_input(p, inp); + break; +#endif /* LWIP_TCP */ +#if LWIP_ICMP + case IP_PROTO_ICMP: + MIB2_STATS_INC(mib2.ipindelivers); + icmp_input(p, inp); + break; +#endif /* LWIP_ICMP */ +#if LWIP_IGMP + case IP_PROTO_IGMP: + igmp_input(p, inp, ip4_current_dest_addr()); + break; +#endif /* LWIP_IGMP */ + default: +#if LWIP_RAW + if (raw_status == RAW_INPUT_DELIVERED) { + MIB2_STATS_INC(mib2.ipindelivers); + } else +#endif /* LWIP_RAW */ + { +#if LWIP_ICMP + /* send ICMP destination protocol unreachable unless is was a broadcast */ + if (!ip4_addr_isbroadcast(ip4_current_dest_addr(), netif) && + !ip4_addr_ismulticast(ip4_current_dest_addr())) { + pbuf_header_force(p, (s16_t)iphdr_hlen); /* Move to ip header, no check necessary. */ + icmp_dest_unreach(p, ICMP_DUR_PROTO); + } +#endif /* LWIP_ICMP */ + + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("Unsupported transport protocol %"U16_F"\n", (u16_t)IPH_PROTO(iphdr))); + + IP_STATS_INC(ip.proterr); + IP_STATS_INC(ip.drop); + MIB2_STATS_INC(mib2.ipinunknownprotos); + } + pbuf_free(p); + break; + } + } + + /* @todo: this is not really necessary... */ + ip_data.current_netif = NULL; + ip_data.current_input_netif = NULL; + ip_data.current_ip4_header = NULL; + ip_data.current_ip_header_tot_len = 0; + ip4_addr_set_any(ip4_current_src_addr()); + ip4_addr_set_any(ip4_current_dest_addr()); + + return ERR_OK; +} + +/** + * Sends an IP packet on a network interface. This function constructs + * the IP header and calculates the IP header checksum. If the source + * IP address is NULL, the IP address of the outgoing network + * interface is filled in as source address. + * If the destination IP address is LWIP_IP_HDRINCL, p is assumed to already + * include an IP header and p->payload points to it instead of the data. + * + * @param p the packet to send (p->payload points to the data, e.g. next + protocol header; if dest == LWIP_IP_HDRINCL, p already includes an + IP header and p->payload points to that IP header) + * @param src the source IP address to send from (if src == IP4_ADDR_ANY, the + * IP address of the netif used to send is used as source address) + * @param dest the destination IP address to send the packet to + * @param ttl the TTL value to be set in the IP header + * @param tos the TOS value to be set in the IP header + * @param proto the PROTOCOL to be set in the IP header + * @param netif the netif on which to send this packet + * @return ERR_OK if the packet was sent OK + * ERR_BUF if p doesn't have enough space for IP/LINK headers + * returns errors returned by netif->output + * + * @note ip_id: RFC791 "some host may be able to simply use + * unique identifiers independent of destination" + */ +err_t +ip4_output_if(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, + u8_t proto, struct netif *netif) +{ +#if IP_OPTIONS_SEND + return ip4_output_if_opt(p, src, dest, ttl, tos, proto, netif, NULL, 0); +} + +/** + * Same as ip_output_if() but with the possibility to include IP options: + * + * @ param ip_options pointer to the IP options, copied into the IP header + * @ param optlen length of ip_options + */ +err_t +ip4_output_if_opt(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options, + u16_t optlen) +{ +#endif /* IP_OPTIONS_SEND */ + const ip4_addr_t *src_used = src; + if (dest != LWIP_IP_HDRINCL) { + if (ip4_addr_isany(src)) { + src_used = netif_ip4_addr(netif); + } + } + +#if IP_OPTIONS_SEND + return ip4_output_if_opt_src(p, src_used, dest, ttl, tos, proto, netif, + ip_options, optlen); +#else /* IP_OPTIONS_SEND */ + return ip4_output_if_src(p, src_used, dest, ttl, tos, proto, netif); +#endif /* IP_OPTIONS_SEND */ +} + +/** + * Same as ip_output_if() but 'src' address is not replaced by netif address + * when it is 'any'. + */ +err_t +ip4_output_if_src(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, + u8_t proto, struct netif *netif) +{ +#if IP_OPTIONS_SEND + return ip4_output_if_opt_src(p, src, dest, ttl, tos, proto, netif, NULL, 0); +} + +/** + * Same as ip_output_if_opt() but 'src' address is not replaced by netif address + * when it is 'any'. + */ +err_t +ip4_output_if_opt_src(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options, + u16_t optlen) +{ +#endif /* IP_OPTIONS_SEND */ + struct ip_hdr *iphdr; + ip4_addr_t dest_addr; +#if CHECKSUM_GEN_IP_INLINE + u32_t chk_sum = 0; +#endif /* CHECKSUM_GEN_IP_INLINE */ + + LWIP_ASSERT_CORE_LOCKED(); + LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX(p); + + MIB2_STATS_INC(mib2.ipoutrequests); + + /* Should the IP header be generated or is it already included in p? */ + if (dest != LWIP_IP_HDRINCL) { + u16_t ip_hlen = IP_HLEN; +#if IP_OPTIONS_SEND + u16_t optlen_aligned = 0; + if (optlen != 0) { +#if CHECKSUM_GEN_IP_INLINE + int i; +#endif /* CHECKSUM_GEN_IP_INLINE */ + if (optlen > (IP_HLEN_MAX - IP_HLEN)) { + /* optlen too long */ + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip4_output_if_opt: optlen too long\n")); + IP_STATS_INC(ip.err); + MIB2_STATS_INC(mib2.ipoutdiscards); + return ERR_VAL; + } + /* round up to a multiple of 4 */ + optlen_aligned = (u16_t)((optlen + 3) & ~3); + ip_hlen = (u16_t)(ip_hlen + optlen_aligned); + /* First write in the IP options */ + if (pbuf_add_header(p, optlen_aligned)) { + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip4_output_if_opt: not enough room for IP options in pbuf\n")); + IP_STATS_INC(ip.err); + MIB2_STATS_INC(mib2.ipoutdiscards); + return ERR_BUF; + } + MEMCPY(p->payload, ip_options, optlen); + if (optlen < optlen_aligned) { + /* zero the remaining bytes */ + memset(((char *)p->payload) + optlen, 0, (size_t)(optlen_aligned - optlen)); + } +#if CHECKSUM_GEN_IP_INLINE + for (i = 0; i < optlen_aligned / 2; i++) { + chk_sum += ((u16_t *)p->payload)[i]; + } +#endif /* CHECKSUM_GEN_IP_INLINE */ + } +#endif /* IP_OPTIONS_SEND */ + /* generate IP header */ + if (pbuf_add_header(p, IP_HLEN)) { + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip4_output: not enough room for IP header in pbuf\n")); + + IP_STATS_INC(ip.err); + MIB2_STATS_INC(mib2.ipoutdiscards); + return ERR_BUF; + } + + iphdr = (struct ip_hdr *)p->payload; + LWIP_ASSERT("check that first pbuf can hold struct ip_hdr", + (p->len >= sizeof(struct ip_hdr))); + + IPH_TTL_SET(iphdr, ttl); + IPH_PROTO_SET(iphdr, proto); +#if CHECKSUM_GEN_IP_INLINE + chk_sum += PP_NTOHS(proto | (ttl << 8)); +#endif /* CHECKSUM_GEN_IP_INLINE */ + + /* dest cannot be NULL here */ + ip4_addr_copy(iphdr->dest, *dest); +#if CHECKSUM_GEN_IP_INLINE + chk_sum += ip4_addr_get_u32(&iphdr->dest) & 0xFFFF; + chk_sum += ip4_addr_get_u32(&iphdr->dest) >> 16; +#endif /* CHECKSUM_GEN_IP_INLINE */ + + IPH_VHL_SET(iphdr, 4, ip_hlen / 4); + IPH_TOS_SET(iphdr, tos); +#if CHECKSUM_GEN_IP_INLINE + chk_sum += PP_NTOHS(tos | (iphdr->_v_hl << 8)); +#endif /* CHECKSUM_GEN_IP_INLINE */ + IPH_LEN_SET(iphdr, lwip_htons(p->tot_len)); +#if CHECKSUM_GEN_IP_INLINE + chk_sum += iphdr->_len; +#endif /* CHECKSUM_GEN_IP_INLINE */ + IPH_OFFSET_SET(iphdr, 0); + IPH_ID_SET(iphdr, lwip_htons(ip_id)); +#if CHECKSUM_GEN_IP_INLINE + chk_sum += iphdr->_id; +#endif /* CHECKSUM_GEN_IP_INLINE */ + ++ip_id; + + if (src == NULL) { + ip4_addr_copy(iphdr->src, *IP4_ADDR_ANY4); + } else { + /* src cannot be NULL here */ + ip4_addr_copy(iphdr->src, *src); + } + +#if CHECKSUM_GEN_IP_INLINE + chk_sum += ip4_addr_get_u32(&iphdr->src) & 0xFFFF; + chk_sum += ip4_addr_get_u32(&iphdr->src) >> 16; + chk_sum = (chk_sum >> 16) + (chk_sum & 0xFFFF); + chk_sum = (chk_sum >> 16) + chk_sum; + chk_sum = ~chk_sum; + IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_IP) { + iphdr->_chksum = (u16_t)chk_sum; /* network order */ + } +#if LWIP_CHECKSUM_CTRL_PER_NETIF + else { + IPH_CHKSUM_SET(iphdr, 0); + } +#endif /* LWIP_CHECKSUM_CTRL_PER_NETIF*/ +#else /* CHECKSUM_GEN_IP_INLINE */ + IPH_CHKSUM_SET(iphdr, 0); +#if CHECKSUM_GEN_IP + IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_IP) { + IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, ip_hlen)); + } +#endif /* CHECKSUM_GEN_IP */ +#endif /* CHECKSUM_GEN_IP_INLINE */ + } else { + /* IP header already included in p */ + if (p->len < IP_HLEN) { + LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip4_output: LWIP_IP_HDRINCL but pbuf is too short\n")); + IP_STATS_INC(ip.err); + MIB2_STATS_INC(mib2.ipoutdiscards); + return ERR_BUF; + } + iphdr = (struct ip_hdr *)p->payload; + ip4_addr_copy(dest_addr, iphdr->dest); + dest = &dest_addr; + } + + IP_STATS_INC(ip.xmit); + + LWIP_DEBUGF(IP_DEBUG, ("ip4_output_if: %c%c%"U16_F"\n", netif->name[0], netif->name[1], (u16_t)netif->num)); + ip4_debug_print(p); + +#if ENABLE_LOOPBACK + if (ip4_addr_cmp(dest, netif_ip4_addr(netif)) +#if !LWIP_HAVE_LOOPIF + || ip4_addr_isloopback(dest) +#endif /* !LWIP_HAVE_LOOPIF */ + ) { + /* Packet to self, enqueue it for loopback */ + LWIP_DEBUGF(IP_DEBUG, ("netif_loop_output()")); + return netif_loop_output(netif, p); + } +#if LWIP_MULTICAST_TX_OPTIONS + if ((p->flags & PBUF_FLAG_MCASTLOOP) != 0) { + netif_loop_output(netif, p); + } +#endif /* LWIP_MULTICAST_TX_OPTIONS */ +#endif /* ENABLE_LOOPBACK */ +#if IP_FRAG + /* don't fragment if interface has mtu set to 0 [loopif] */ + if (netif->mtu && (p->tot_len > netif->mtu)) { + return ip4_frag(p, netif, dest); + } +#endif /* IP_FRAG */ + + LWIP_DEBUGF(IP_DEBUG, ("ip4_output_if: call netif->output()\n")); + return netif->output(netif, p, dest); +} + +/** + * Simple interface to ip_output_if. It finds the outgoing network + * interface and calls upon ip_output_if to do the actual work. + * + * @param p the packet to send (p->payload points to the data, e.g. next + protocol header; if dest == LWIP_IP_HDRINCL, p already includes an + IP header and p->payload points to that IP header) + * @param src the source IP address to send from (if src == IP4_ADDR_ANY, the + * IP address of the netif used to send is used as source address) + * @param dest the destination IP address to send the packet to + * @param ttl the TTL value to be set in the IP header + * @param tos the TOS value to be set in the IP header + * @param proto the PROTOCOL to be set in the IP header + * + * @return ERR_RTE if no route is found + * see ip_output_if() for more return values + */ +err_t +ip4_output(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto) +{ + struct netif *netif; + + LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX(p); + + if ((netif = ip4_route_src(src, dest)) == NULL) { + LWIP_DEBUGF(IP_DEBUG, ("ip4_output: No route to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(dest), ip4_addr2_16(dest), ip4_addr3_16(dest), ip4_addr4_16(dest))); + IP_STATS_INC(ip.rterr); + return ERR_RTE; + } + + return ip4_output_if(p, src, dest, ttl, tos, proto, netif); +} + +#if LWIP_NETIF_USE_HINTS +/** Like ip_output, but takes and addr_hint pointer that is passed on to netif->addr_hint + * before calling ip_output_if. + * + * @param p the packet to send (p->payload points to the data, e.g. next + protocol header; if dest == LWIP_IP_HDRINCL, p already includes an + IP header and p->payload points to that IP header) + * @param src the source IP address to send from (if src == IP4_ADDR_ANY, the + * IP address of the netif used to send is used as source address) + * @param dest the destination IP address to send the packet to + * @param ttl the TTL value to be set in the IP header + * @param tos the TOS value to be set in the IP header + * @param proto the PROTOCOL to be set in the IP header + * @param netif_hint netif output hint pointer set to netif->hint before + * calling ip_output_if() + * + * @return ERR_RTE if no route is found + * see ip_output_if() for more return values + */ +err_t +ip4_output_hinted(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto, struct netif_hint *netif_hint) +{ + struct netif *netif; + err_t err; + + LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX(p); + + if ((netif = ip4_route_src(src, dest)) == NULL) { + LWIP_DEBUGF(IP_DEBUG, ("ip4_output: No route to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + ip4_addr1_16(dest), ip4_addr2_16(dest), ip4_addr3_16(dest), ip4_addr4_16(dest))); + IP_STATS_INC(ip.rterr); + return ERR_RTE; + } + + NETIF_SET_HINTS(netif, netif_hint); + err = ip4_output_if(p, src, dest, ttl, tos, proto, netif); + NETIF_RESET_HINTS(netif); + + return err; +} +#endif /* LWIP_NETIF_USE_HINTS*/ + +#if IP_DEBUG +/* Print an IP header by using LWIP_DEBUGF + * @param p an IP packet, p->payload pointing to the IP header + */ +void +ip4_debug_print(struct pbuf *p) +{ + struct ip_hdr *iphdr = (struct ip_hdr *)p->payload; + + LWIP_DEBUGF(IP_DEBUG, ("IP header:\n")); + LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(IP_DEBUG, ("|%2"S16_F" |%2"S16_F" | 0x%02"X16_F" | %5"U16_F" | (v, hl, tos, len)\n", + (u16_t)IPH_V(iphdr), + (u16_t)IPH_HL(iphdr), + (u16_t)IPH_TOS(iphdr), + lwip_ntohs(IPH_LEN(iphdr)))); + LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(IP_DEBUG, ("| %5"U16_F" |%"U16_F"%"U16_F"%"U16_F"| %4"U16_F" | (id, flags, offset)\n", + lwip_ntohs(IPH_ID(iphdr)), + (u16_t)(lwip_ntohs(IPH_OFFSET(iphdr)) >> 15 & 1), + (u16_t)(lwip_ntohs(IPH_OFFSET(iphdr)) >> 14 & 1), + (u16_t)(lwip_ntohs(IPH_OFFSET(iphdr)) >> 13 & 1), + (u16_t)(lwip_ntohs(IPH_OFFSET(iphdr)) & IP_OFFMASK))); + LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | 0x%04"X16_F" | (ttl, proto, chksum)\n", + (u16_t)IPH_TTL(iphdr), + (u16_t)IPH_PROTO(iphdr), + lwip_ntohs(IPH_CHKSUM(iphdr)))); + LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | %3"U16_F" | %3"U16_F" | (src)\n", + ip4_addr1_16_val(iphdr->src), + ip4_addr2_16_val(iphdr->src), + ip4_addr3_16_val(iphdr->src), + ip4_addr4_16_val(iphdr->src))); + LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | %3"U16_F" | %3"U16_F" | (dest)\n", + ip4_addr1_16_val(iphdr->dest), + ip4_addr2_16_val(iphdr->dest), + ip4_addr3_16_val(iphdr->dest), + ip4_addr4_16_val(iphdr->dest))); + LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); +} +#endif /* IP_DEBUG */ + +#endif /* LWIP_IPV4 */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4_addr.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4_addr.c new file mode 100644 index 000000000..92077c20c --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4_addr.c @@ -0,0 +1,321 @@ +/** + * @file + * This is the IPv4 address tools implementation. + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_IPV4 + +#include "lwip/ip_addr.h" +#include "lwip/netif.h" + +/* used by IP4_ADDR_ANY and IP_ADDR_BROADCAST in ip_addr.h */ +const ip_addr_t ip_addr_any = IPADDR4_INIT(IPADDR_ANY); +const ip_addr_t ip_addr_broadcast = IPADDR4_INIT(IPADDR_BROADCAST); + +/** + * Determine if an address is a broadcast address on a network interface + * + * @param addr address to be checked + * @param netif the network interface against which the address is checked + * @return returns non-zero if the address is a broadcast address + */ +u8_t +ip4_addr_isbroadcast_u32(u32_t addr, const struct netif *netif) +{ + ip4_addr_t ipaddr; + ip4_addr_set_u32(&ipaddr, addr); + + /* all ones (broadcast) or all zeroes (old skool broadcast) */ + if ((~addr == IPADDR_ANY) || + (addr == IPADDR_ANY)) { + return 1; + /* no broadcast support on this network interface? */ + } else if ((netif->flags & NETIF_FLAG_BROADCAST) == 0) { + /* the given address cannot be a broadcast address + * nor can we check against any broadcast addresses */ + return 0; + /* address matches network interface address exactly? => no broadcast */ + } else if (addr == ip4_addr_get_u32(netif_ip4_addr(netif))) { + return 0; + /* on the same (sub) network... */ + } else if (ip4_addr_netcmp(&ipaddr, netif_ip4_addr(netif), netif_ip4_netmask(netif)) + /* ...and host identifier bits are all ones? =>... */ + && ((addr & ~ip4_addr_get_u32(netif_ip4_netmask(netif))) == + (IPADDR_BROADCAST & ~ip4_addr_get_u32(netif_ip4_netmask(netif))))) { + /* => network broadcast address */ + return 1; + } else { + return 0; + } +} + +/** Checks if a netmask is valid (starting with ones, then only zeros) + * + * @param netmask the IPv4 netmask to check (in network byte order!) + * @return 1 if the netmask is valid, 0 if it is not + */ +u8_t +ip4_addr_netmask_valid(u32_t netmask) +{ + u32_t mask; + u32_t nm_hostorder = lwip_htonl(netmask); + + /* first, check for the first zero */ + for (mask = 1UL << 31 ; mask != 0; mask >>= 1) { + if ((nm_hostorder & mask) == 0) { + break; + } + } + /* then check that there is no one */ + for (; mask != 0; mask >>= 1) { + if ((nm_hostorder & mask) != 0) { + /* there is a one after the first zero -> invalid */ + return 0; + } + } + /* no one after the first zero -> valid */ + return 1; +} + +/** + * Ascii internet address interpretation routine. + * The value returned is in network order. + * + * @param cp IP address in ascii representation (e.g. "127.0.0.1") + * @return ip address in network order + */ +u32_t +ipaddr_addr(const char *cp) +{ + ip4_addr_t val; + + if (ip4addr_aton(cp, &val)) { + return ip4_addr_get_u32(&val); + } + return (IPADDR_NONE); +} + +/** + * Check whether "cp" is a valid ascii representation + * of an Internet address and convert to a binary address. + * Returns 1 if the address is valid, 0 if not. + * This replaces inet_addr, the return value from which + * cannot distinguish between failure and a local broadcast address. + * + * @param cp IP address in ascii representation (e.g. "127.0.0.1") + * @param addr pointer to which to save the ip address in network order + * @return 1 if cp could be converted to addr, 0 on failure + */ +int +ip4addr_aton(const char *cp, ip4_addr_t *addr) +{ + u32_t val; + u8_t base; + char c; + u32_t parts[4]; + u32_t *pp = parts; + + c = *cp; + for (;;) { + /* + * Collect number up to ``.''. + * Values are specified as for C: + * 0x=hex, 0=octal, 1-9=decimal. + */ + if (!lwip_isdigit(c)) { + return 0; + } + val = 0; + base = 10; + if (c == '0') { + c = *++cp; + if (c == 'x' || c == 'X') { + base = 16; + c = *++cp; + } else { + base = 8; + } + } + for (;;) { + if (lwip_isdigit(c)) { + val = (val * base) + (u32_t)(c - '0'); + c = *++cp; + } else if (base == 16 && lwip_isxdigit(c)) { + val = (val << 4) | (u32_t)(c + 10 - (lwip_islower(c) ? 'a' : 'A')); + c = *++cp; + } else { + break; + } + } + if (c == '.') { + /* + * Internet format: + * a.b.c.d + * a.b.c (with c treated as 16 bits) + * a.b (with b treated as 24 bits) + */ + if (pp >= parts + 3) { + return 0; + } + *pp++ = val; + c = *++cp; + } else { + break; + } + } + /* + * Check for trailing characters. + */ + if (c != '\0' && !lwip_isspace(c)) { + return 0; + } + /* + * Concoct the address according to + * the number of parts specified. + */ + switch (pp - parts + 1) { + + case 0: + return 0; /* initial nondigit */ + + case 1: /* a -- 32 bits */ + break; + + case 2: /* a.b -- 8.24 bits */ + if (val > 0xffffffUL) { + return 0; + } + if (parts[0] > 0xff) { + return 0; + } + val |= parts[0] << 24; + break; + + case 3: /* a.b.c -- 8.8.16 bits */ + if (val > 0xffff) { + return 0; + } + if ((parts[0] > 0xff) || (parts[1] > 0xff)) { + return 0; + } + val |= (parts[0] << 24) | (parts[1] << 16); + break; + + case 4: /* a.b.c.d -- 8.8.8.8 bits */ + if (val > 0xff) { + return 0; + } + if ((parts[0] > 0xff) || (parts[1] > 0xff) || (parts[2] > 0xff)) { + return 0; + } + val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8); + break; + default: + LWIP_ASSERT("unhandled", 0); + break; + } + if (addr) { + ip4_addr_set_u32(addr, lwip_htonl(val)); + } + return 1; +} + +/** + * Convert numeric IP address into decimal dotted ASCII representation. + * returns ptr to static buffer; not reentrant! + * + * @param addr ip address in network order to convert + * @return pointer to a global static (!) buffer that holds the ASCII + * representation of addr + */ +char * +ip4addr_ntoa(const ip4_addr_t *addr) +{ + static char str[IP4ADDR_STRLEN_MAX]; + return ip4addr_ntoa_r(addr, str, IP4ADDR_STRLEN_MAX); +} + +/** + * Same as ip4addr_ntoa, but reentrant since a user-supplied buffer is used. + * + * @param addr ip address in network order to convert + * @param buf target buffer where the string is stored + * @param buflen length of buf + * @return either pointer to buf which now holds the ASCII + * representation of addr or NULL if buf was too small + */ +char * +ip4addr_ntoa_r(const ip4_addr_t *addr, char *buf, int buflen) +{ + u32_t s_addr; + char inv[3]; + char *rp; + u8_t *ap; + u8_t rem; + u8_t n; + u8_t i; + int len = 0; + + s_addr = ip4_addr_get_u32(addr); + + rp = buf; + ap = (u8_t *)&s_addr; + for (n = 0; n < 4; n++) { + i = 0; + do { + rem = *ap % (u8_t)10; + *ap /= (u8_t)10; + inv[i++] = (char)('0' + rem); + } while (*ap); + while (i--) { + if (len++ >= buflen) { + return NULL; + } + *rp++ = inv[i]; + } + if (len++ >= buflen) { + return NULL; + } + *rp++ = '.'; + ap++; + } + *--rp = 0; + return buf; +} + +#endif /* LWIP_IPV4 */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4_frag.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4_frag.c new file mode 100644 index 000000000..b2fd14c59 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/ipv4/ip4_frag.c @@ -0,0 +1,894 @@ +/** + * @file + * This is the IPv4 packet segmentation and reassembly implementation. + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Jani Monoses + * Simon Goldschmidt + * original reassembly code by Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_IPV4 + +#include "lwip/ip4_frag.h" +#include "lwip/def.h" +#include "lwip/inet_chksum.h" +#include "lwip/netif.h" +#include "lwip/stats.h" +#include "lwip/icmp.h" + +#include + +#if IP_REASSEMBLY +/** + * The IP reassembly code currently has the following limitations: + * - IP header options are not supported + * - fragments must not overlap (e.g. due to different routes), + * currently, overlapping or duplicate fragments are thrown away + * if IP_REASS_CHECK_OVERLAP=1 (the default)! + * + * @todo: work with IP header options + */ + +/** Setting this to 0, you can turn off checking the fragments for overlapping + * regions. The code gets a little smaller. Only use this if you know that + * overlapping won't occur on your network! */ +#ifndef IP_REASS_CHECK_OVERLAP +#define IP_REASS_CHECK_OVERLAP 1 +#endif /* IP_REASS_CHECK_OVERLAP */ + +/** Set to 0 to prevent freeing the oldest datagram when the reassembly buffer is + * full (IP_REASS_MAX_PBUFS pbufs are enqueued). The code gets a little smaller. + * Datagrams will be freed by timeout only. Especially useful when MEMP_NUM_REASSDATA + * is set to 1, so one datagram can be reassembled at a time, only. */ +#ifndef IP_REASS_FREE_OLDEST +#define IP_REASS_FREE_OLDEST 1 +#endif /* IP_REASS_FREE_OLDEST */ + +#define IP_REASS_FLAG_LASTFRAG 0x01 + +#define IP_REASS_VALIDATE_TELEGRAM_FINISHED 1 +#define IP_REASS_VALIDATE_PBUF_QUEUED 0 +#define IP_REASS_VALIDATE_PBUF_DROPPED -1 + +/** This is a helper struct which holds the starting + * offset and the ending offset of this fragment to + * easily chain the fragments. + * It has the same packing requirements as the IP header, since it replaces + * the IP header in memory in incoming fragments (after copying it) to keep + * track of the various fragments. (-> If the IP header doesn't need packing, + * this struct doesn't need packing, too.) + */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip_reass_helper { + PACK_STRUCT_FIELD(struct pbuf *next_pbuf); + PACK_STRUCT_FIELD(u16_t start); + PACK_STRUCT_FIELD(u16_t end); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#define IP_ADDRESSES_AND_ID_MATCH(iphdrA, iphdrB) \ + (ip4_addr_cmp(&(iphdrA)->src, &(iphdrB)->src) && \ + ip4_addr_cmp(&(iphdrA)->dest, &(iphdrB)->dest) && \ + IPH_ID(iphdrA) == IPH_ID(iphdrB)) ? 1 : 0 + +/* global variables */ +static struct ip_reassdata *reassdatagrams; +static u16_t ip_reass_pbufcount; + +/* function prototypes */ +static void ip_reass_dequeue_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev); +static int ip_reass_free_complete_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev); + +/** + * Reassembly timer base function + * for both NO_SYS == 0 and 1 (!). + * + * Should be called every 1000 msec (defined by IP_TMR_INTERVAL). + */ +void +ip_reass_tmr(void) +{ + struct ip_reassdata *r, *prev = NULL; + + r = reassdatagrams; + while (r != NULL) { + /* Decrement the timer. Once it reaches 0, + * clean up the incomplete fragment assembly */ + if (r->timer > 0) { + r->timer--; + LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass_tmr: timer dec %"U16_F"\n", (u16_t)r->timer)); + prev = r; + r = r->next; + } else { + /* reassembly timed out */ + struct ip_reassdata *tmp; + LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass_tmr: timer timed out\n")); + tmp = r; + /* get the next pointer before freeing */ + r = r->next; + /* free the helper struct and all enqueued pbufs */ + ip_reass_free_complete_datagram(tmp, prev); + } + } +} + +/** + * Free a datagram (struct ip_reassdata) and all its pbufs. + * Updates the total count of enqueued pbufs (ip_reass_pbufcount), + * SNMP counters and sends an ICMP time exceeded packet. + * + * @param ipr datagram to free + * @param prev the previous datagram in the linked list + * @return the number of pbufs freed + */ +static int +ip_reass_free_complete_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev) +{ + u16_t pbufs_freed = 0; + u16_t clen; + struct pbuf *p; + struct ip_reass_helper *iprh; + + LWIP_ASSERT("prev != ipr", prev != ipr); + if (prev != NULL) { + LWIP_ASSERT("prev->next == ipr", prev->next == ipr); + } + + MIB2_STATS_INC(mib2.ipreasmfails); +#if LWIP_ICMP + iprh = (struct ip_reass_helper *)ipr->p->payload; + if (iprh->start == 0) { + /* The first fragment was received, send ICMP time exceeded. */ + /* First, de-queue the first pbuf from r->p. */ + p = ipr->p; + ipr->p = iprh->next_pbuf; + /* Then, copy the original header into it. */ + SMEMCPY(p->payload, &ipr->iphdr, IP_HLEN); + icmp_time_exceeded(p, ICMP_TE_FRAG); + clen = pbuf_clen(p); + LWIP_ASSERT("pbufs_freed + clen <= 0xffff", pbufs_freed + clen <= 0xffff); + pbufs_freed = (u16_t)(pbufs_freed + clen); + pbuf_free(p); + } +#endif /* LWIP_ICMP */ + + /* First, free all received pbufs. The individual pbufs need to be released + separately as they have not yet been chained */ + p = ipr->p; + while (p != NULL) { + struct pbuf *pcur; + iprh = (struct ip_reass_helper *)p->payload; + pcur = p; + /* get the next pointer before freeing */ + p = iprh->next_pbuf; + clen = pbuf_clen(pcur); + LWIP_ASSERT("pbufs_freed + clen <= 0xffff", pbufs_freed + clen <= 0xffff); + pbufs_freed = (u16_t)(pbufs_freed + clen); + pbuf_free(pcur); + } + /* Then, unchain the struct ip_reassdata from the list and free it. */ + ip_reass_dequeue_datagram(ipr, prev); + LWIP_ASSERT("ip_reass_pbufcount >= pbufs_freed", ip_reass_pbufcount >= pbufs_freed); + ip_reass_pbufcount = (u16_t)(ip_reass_pbufcount - pbufs_freed); + + return pbufs_freed; +} + +#if IP_REASS_FREE_OLDEST +/** + * Free the oldest datagram to make room for enqueueing new fragments. + * The datagram 'fraghdr' belongs to is not freed! + * + * @param fraghdr IP header of the current fragment + * @param pbufs_needed number of pbufs needed to enqueue + * (used for freeing other datagrams if not enough space) + * @return the number of pbufs freed + */ +static int +ip_reass_remove_oldest_datagram(struct ip_hdr *fraghdr, int pbufs_needed) +{ + /* @todo Can't we simply remove the last datagram in the + * linked list behind reassdatagrams? + */ + struct ip_reassdata *r, *oldest, *prev, *oldest_prev; + int pbufs_freed = 0, pbufs_freed_current; + int other_datagrams; + + /* Free datagrams until being allowed to enqueue 'pbufs_needed' pbufs, + * but don't free the datagram that 'fraghdr' belongs to! */ + do { + oldest = NULL; + prev = NULL; + oldest_prev = NULL; + other_datagrams = 0; + r = reassdatagrams; + while (r != NULL) { + if (!IP_ADDRESSES_AND_ID_MATCH(&r->iphdr, fraghdr)) { + /* Not the same datagram as fraghdr */ + other_datagrams++; + if (oldest == NULL) { + oldest = r; + oldest_prev = prev; + } else if (r->timer <= oldest->timer) { + /* older than the previous oldest */ + oldest = r; + oldest_prev = prev; + } + } + if (r->next != NULL) { + prev = r; + } + r = r->next; + } + if (oldest != NULL) { + pbufs_freed_current = ip_reass_free_complete_datagram(oldest, oldest_prev); + pbufs_freed += pbufs_freed_current; + } + } while ((pbufs_freed < pbufs_needed) && (other_datagrams > 1)); + return pbufs_freed; +} +#endif /* IP_REASS_FREE_OLDEST */ + +/** + * Enqueues a new fragment into the fragment queue + * @param fraghdr points to the new fragments IP hdr + * @param clen number of pbufs needed to enqueue (used for freeing other datagrams if not enough space) + * @return A pointer to the queue location into which the fragment was enqueued + */ +static struct ip_reassdata * +ip_reass_enqueue_new_datagram(struct ip_hdr *fraghdr, int clen) +{ + struct ip_reassdata *ipr; +#if ! IP_REASS_FREE_OLDEST + LWIP_UNUSED_ARG(clen); +#endif + + /* No matching previous fragment found, allocate a new reassdata struct */ + ipr = (struct ip_reassdata *)memp_malloc(MEMP_REASSDATA); + if (ipr == NULL) { +#if IP_REASS_FREE_OLDEST + if (ip_reass_remove_oldest_datagram(fraghdr, clen) >= clen) { + ipr = (struct ip_reassdata *)memp_malloc(MEMP_REASSDATA); + } + if (ipr == NULL) +#endif /* IP_REASS_FREE_OLDEST */ + { + IPFRAG_STATS_INC(ip_frag.memerr); + LWIP_DEBUGF(IP_REASS_DEBUG, ("Failed to alloc reassdata struct\n")); + return NULL; + } + } + memset(ipr, 0, sizeof(struct ip_reassdata)); + ipr->timer = IP_REASS_MAXAGE; + + /* enqueue the new structure to the front of the list */ + ipr->next = reassdatagrams; + reassdatagrams = ipr; + /* copy the ip header for later tests and input */ + /* @todo: no ip options supported? */ + SMEMCPY(&(ipr->iphdr), fraghdr, IP_HLEN); + return ipr; +} + +/** + * Dequeues a datagram from the datagram queue. Doesn't deallocate the pbufs. + * @param ipr points to the queue entry to dequeue + */ +static void +ip_reass_dequeue_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev) +{ + /* dequeue the reass struct */ + if (reassdatagrams == ipr) { + /* it was the first in the list */ + reassdatagrams = ipr->next; + } else { + /* it wasn't the first, so it must have a valid 'prev' */ + LWIP_ASSERT("sanity check linked list", prev != NULL); + prev->next = ipr->next; + } + + /* now we can free the ip_reassdata struct */ + memp_free(MEMP_REASSDATA, ipr); +} + +/** + * Chain a new pbuf into the pbuf list that composes the datagram. The pbuf list + * will grow over time as new pbufs are rx. + * Also checks that the datagram passes basic continuity checks (if the last + * fragment was received at least once). + * @param ipr points to the reassembly state + * @param new_p points to the pbuf for the current fragment + * @param is_last is 1 if this pbuf has MF==0 (ipr->flags not updated yet) + * @return see IP_REASS_VALIDATE_* defines + */ +static int +ip_reass_chain_frag_into_datagram_and_validate(struct ip_reassdata *ipr, struct pbuf *new_p, int is_last) +{ + struct ip_reass_helper *iprh, *iprh_tmp, *iprh_prev = NULL; + struct pbuf *q; + u16_t offset, len; + u8_t hlen; + struct ip_hdr *fraghdr; + int valid = 1; + + /* Extract length and fragment offset from current fragment */ + fraghdr = (struct ip_hdr *)new_p->payload; + len = lwip_ntohs(IPH_LEN(fraghdr)); + hlen = IPH_HL_BYTES(fraghdr); + if (hlen > len) { + /* invalid datagram */ + return IP_REASS_VALIDATE_PBUF_DROPPED; + } + len = (u16_t)(len - hlen); + offset = IPH_OFFSET_BYTES(fraghdr); + + /* overwrite the fragment's ip header from the pbuf with our helper struct, + * and setup the embedded helper structure. */ + /* make sure the struct ip_reass_helper fits into the IP header */ + LWIP_ASSERT("sizeof(struct ip_reass_helper) <= IP_HLEN", + sizeof(struct ip_reass_helper) <= IP_HLEN); + iprh = (struct ip_reass_helper *)new_p->payload; + iprh->next_pbuf = NULL; + iprh->start = offset; + iprh->end = (u16_t)(offset + len); + if (iprh->end < offset) { + /* u16_t overflow, cannot handle this */ + return IP_REASS_VALIDATE_PBUF_DROPPED; + } + + /* Iterate through until we either get to the end of the list (append), + * or we find one with a larger offset (insert). */ + for (q = ipr->p; q != NULL;) { + iprh_tmp = (struct ip_reass_helper *)q->payload; + if (iprh->start < iprh_tmp->start) { + /* the new pbuf should be inserted before this */ + iprh->next_pbuf = q; + if (iprh_prev != NULL) { + /* not the fragment with the lowest offset */ +#if IP_REASS_CHECK_OVERLAP + if ((iprh->start < iprh_prev->end) || (iprh->end > iprh_tmp->start)) { + /* fragment overlaps with previous or following, throw away */ + return IP_REASS_VALIDATE_PBUF_DROPPED; + } +#endif /* IP_REASS_CHECK_OVERLAP */ + iprh_prev->next_pbuf = new_p; + if (iprh_prev->end != iprh->start) { + /* There is a fragment missing between the current + * and the previous fragment */ + valid = 0; + } + } else { +#if IP_REASS_CHECK_OVERLAP + if (iprh->end > iprh_tmp->start) { + /* fragment overlaps with following, throw away */ + return IP_REASS_VALIDATE_PBUF_DROPPED; + } +#endif /* IP_REASS_CHECK_OVERLAP */ + /* fragment with the lowest offset */ + ipr->p = new_p; + } + break; + } else if (iprh->start == iprh_tmp->start) { + /* received the same datagram twice: no need to keep the datagram */ + return IP_REASS_VALIDATE_PBUF_DROPPED; +#if IP_REASS_CHECK_OVERLAP + } else if (iprh->start < iprh_tmp->end) { + /* overlap: no need to keep the new datagram */ + return IP_REASS_VALIDATE_PBUF_DROPPED; +#endif /* IP_REASS_CHECK_OVERLAP */ + } else { + /* Check if the fragments received so far have no holes. */ + if (iprh_prev != NULL) { + if (iprh_prev->end != iprh_tmp->start) { + /* There is a fragment missing between the current + * and the previous fragment */ + valid = 0; + } + } + } + q = iprh_tmp->next_pbuf; + iprh_prev = iprh_tmp; + } + + /* If q is NULL, then we made it to the end of the list. Determine what to do now */ + if (q == NULL) { + if (iprh_prev != NULL) { + /* this is (for now), the fragment with the highest offset: + * chain it to the last fragment */ +#if IP_REASS_CHECK_OVERLAP + LWIP_ASSERT("check fragments don't overlap", iprh_prev->end <= iprh->start); +#endif /* IP_REASS_CHECK_OVERLAP */ + iprh_prev->next_pbuf = new_p; + if (iprh_prev->end != iprh->start) { + valid = 0; + } + } else { +#if IP_REASS_CHECK_OVERLAP + LWIP_ASSERT("no previous fragment, this must be the first fragment!", + ipr->p == NULL); +#endif /* IP_REASS_CHECK_OVERLAP */ + /* this is the first fragment we ever received for this ip datagram */ + ipr->p = new_p; + } + } + + /* At this point, the validation part begins: */ + /* If we already received the last fragment */ + if (is_last || ((ipr->flags & IP_REASS_FLAG_LASTFRAG) != 0)) { + /* and had no holes so far */ + if (valid) { + /* then check if the rest of the fragments is here */ + /* Check if the queue starts with the first datagram */ + if ((ipr->p == NULL) || (((struct ip_reass_helper *)ipr->p->payload)->start != 0)) { + valid = 0; + } else { + /* and check that there are no holes after this datagram */ + iprh_prev = iprh; + q = iprh->next_pbuf; + while (q != NULL) { + iprh = (struct ip_reass_helper *)q->payload; + if (iprh_prev->end != iprh->start) { + valid = 0; + break; + } + iprh_prev = iprh; + q = iprh->next_pbuf; + } + /* if still valid, all fragments are received + * (because to the MF==0 already arrived */ + if (valid) { + LWIP_ASSERT("sanity check", ipr->p != NULL); + LWIP_ASSERT("sanity check", + ((struct ip_reass_helper *)ipr->p->payload) != iprh); + LWIP_ASSERT("validate_datagram:next_pbuf!=NULL", + iprh->next_pbuf == NULL); + } + } + } + /* If valid is 0 here, there are some fragments missing in the middle + * (since MF == 0 has already arrived). Such datagrams simply time out if + * no more fragments are received... */ + return valid ? IP_REASS_VALIDATE_TELEGRAM_FINISHED : IP_REASS_VALIDATE_PBUF_QUEUED; + } + /* If we come here, not all fragments were received, yet! */ + return IP_REASS_VALIDATE_PBUF_QUEUED; /* not yet valid! */ +} + +/** + * Reassembles incoming IP fragments into an IP datagram. + * + * @param p points to a pbuf chain of the fragment + * @return NULL if reassembly is incomplete, ? otherwise + */ +struct pbuf * +ip4_reass(struct pbuf *p) +{ + struct pbuf *r; + struct ip_hdr *fraghdr; + struct ip_reassdata *ipr; + struct ip_reass_helper *iprh; + u16_t offset, len, clen; + u8_t hlen; + int valid; + int is_last; + + IPFRAG_STATS_INC(ip_frag.recv); + MIB2_STATS_INC(mib2.ipreasmreqds); + + fraghdr = (struct ip_hdr *)p->payload; + + if (IPH_HL_BYTES(fraghdr) != IP_HLEN) { + LWIP_DEBUGF(IP_REASS_DEBUG, ("ip4_reass: IP options currently not supported!\n")); + IPFRAG_STATS_INC(ip_frag.err); + goto nullreturn; + } + + offset = IPH_OFFSET_BYTES(fraghdr); + len = lwip_ntohs(IPH_LEN(fraghdr)); + hlen = IPH_HL_BYTES(fraghdr); + if (hlen > len) { + /* invalid datagram */ + goto nullreturn; + } + len = (u16_t)(len - hlen); + + /* Check if we are allowed to enqueue more datagrams. */ + clen = pbuf_clen(p); + if ((ip_reass_pbufcount + clen) > IP_REASS_MAX_PBUFS) { +#if IP_REASS_FREE_OLDEST + if (!ip_reass_remove_oldest_datagram(fraghdr, clen) || + ((ip_reass_pbufcount + clen) > IP_REASS_MAX_PBUFS)) +#endif /* IP_REASS_FREE_OLDEST */ + { + /* No datagram could be freed and still too many pbufs enqueued */ + LWIP_DEBUGF(IP_REASS_DEBUG, ("ip4_reass: Overflow condition: pbufct=%d, clen=%d, MAX=%d\n", + ip_reass_pbufcount, clen, IP_REASS_MAX_PBUFS)); + IPFRAG_STATS_INC(ip_frag.memerr); + /* @todo: send ICMP time exceeded here? */ + /* drop this pbuf */ + goto nullreturn; + } + } + + /* Look for the datagram the fragment belongs to in the current datagram queue, + * remembering the previous in the queue for later dequeueing. */ + for (ipr = reassdatagrams; ipr != NULL; ipr = ipr->next) { + /* Check if the incoming fragment matches the one currently present + in the reassembly buffer. If so, we proceed with copying the + fragment into the buffer. */ + if (IP_ADDRESSES_AND_ID_MATCH(&ipr->iphdr, fraghdr)) { + LWIP_DEBUGF(IP_REASS_DEBUG, ("ip4_reass: matching previous fragment ID=%"X16_F"\n", + lwip_ntohs(IPH_ID(fraghdr)))); + IPFRAG_STATS_INC(ip_frag.cachehit); + break; + } + } + + if (ipr == NULL) { + /* Enqueue a new datagram into the datagram queue */ + ipr = ip_reass_enqueue_new_datagram(fraghdr, clen); + /* Bail if unable to enqueue */ + if (ipr == NULL) { + goto nullreturn; + } + } else { + if (((lwip_ntohs(IPH_OFFSET(fraghdr)) & IP_OFFMASK) == 0) && + ((lwip_ntohs(IPH_OFFSET(&ipr->iphdr)) & IP_OFFMASK) != 0)) { + /* ipr->iphdr is not the header from the first fragment, but fraghdr is + * -> copy fraghdr into ipr->iphdr since we want to have the header + * of the first fragment (for ICMP time exceeded and later, for copying + * all options, if supported)*/ + SMEMCPY(&ipr->iphdr, fraghdr, IP_HLEN); + } + } + + /* At this point, we have either created a new entry or pointing + * to an existing one */ + + /* check for 'no more fragments', and update queue entry*/ + is_last = (IPH_OFFSET(fraghdr) & PP_NTOHS(IP_MF)) == 0; + if (is_last) { + u16_t datagram_len = (u16_t)(offset + len); + if ((datagram_len < offset) || (datagram_len > (0xFFFF - IP_HLEN))) { + /* u16_t overflow, cannot handle this */ + goto nullreturn_ipr; + } + } + /* find the right place to insert this pbuf */ + /* @todo: trim pbufs if fragments are overlapping */ + valid = ip_reass_chain_frag_into_datagram_and_validate(ipr, p, is_last); + if (valid == IP_REASS_VALIDATE_PBUF_DROPPED) { + goto nullreturn_ipr; + } + /* if we come here, the pbuf has been enqueued */ + + /* Track the current number of pbufs current 'in-flight', in order to limit + the number of fragments that may be enqueued at any one time + (overflow checked by testing against IP_REASS_MAX_PBUFS) */ + ip_reass_pbufcount = (u16_t)(ip_reass_pbufcount + clen); + if (is_last) { + u16_t datagram_len = (u16_t)(offset + len); + ipr->datagram_len = datagram_len; + ipr->flags |= IP_REASS_FLAG_LASTFRAG; + LWIP_DEBUGF(IP_REASS_DEBUG, + ("ip4_reass: last fragment seen, total len %"S16_F"\n", + ipr->datagram_len)); + } + + if (valid == IP_REASS_VALIDATE_TELEGRAM_FINISHED) { + struct ip_reassdata *ipr_prev; + /* the totally last fragment (flag more fragments = 0) was received at least + * once AND all fragments are received */ + u16_t datagram_len = (u16_t)(ipr->datagram_len + IP_HLEN); + + /* save the second pbuf before copying the header over the pointer */ + r = ((struct ip_reass_helper *)ipr->p->payload)->next_pbuf; + + /* copy the original ip header back to the first pbuf */ + fraghdr = (struct ip_hdr *)(ipr->p->payload); + SMEMCPY(fraghdr, &ipr->iphdr, IP_HLEN); + IPH_LEN_SET(fraghdr, lwip_htons(datagram_len)); + IPH_OFFSET_SET(fraghdr, 0); + IPH_CHKSUM_SET(fraghdr, 0); + /* @todo: do we need to set/calculate the correct checksum? */ +#if CHECKSUM_GEN_IP + IF__NETIF_CHECKSUM_ENABLED(ip_current_input_netif(), NETIF_CHECKSUM_GEN_IP) { + IPH_CHKSUM_SET(fraghdr, inet_chksum(fraghdr, IP_HLEN)); + } +#endif /* CHECKSUM_GEN_IP */ + + p = ipr->p; + + /* chain together the pbufs contained within the reass_data list. */ + while (r != NULL) { + iprh = (struct ip_reass_helper *)r->payload; + + /* hide the ip header for every succeeding fragment */ + pbuf_remove_header(r, IP_HLEN); + pbuf_cat(p, r); + r = iprh->next_pbuf; + } + + /* find the previous entry in the linked list */ + if (ipr == reassdatagrams) { + ipr_prev = NULL; + } else { + for (ipr_prev = reassdatagrams; ipr_prev != NULL; ipr_prev = ipr_prev->next) { + if (ipr_prev->next == ipr) { + break; + } + } + } + + /* release the sources allocate for the fragment queue entry */ + ip_reass_dequeue_datagram(ipr, ipr_prev); + + /* and adjust the number of pbufs currently queued for reassembly. */ + clen = pbuf_clen(p); + LWIP_ASSERT("ip_reass_pbufcount >= clen", ip_reass_pbufcount >= clen); + ip_reass_pbufcount = (u16_t)(ip_reass_pbufcount - clen); + + MIB2_STATS_INC(mib2.ipreasmoks); + + /* Return the pbuf chain */ + return p; + } + /* the datagram is not (yet?) reassembled completely */ + LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass_pbufcount: %d out\n", ip_reass_pbufcount)); + return NULL; + +nullreturn_ipr: + LWIP_ASSERT("ipr != NULL", ipr != NULL); + if (ipr->p == NULL) { + /* dropped pbuf after creating a new datagram entry: remove the entry, too */ + LWIP_ASSERT("not firstalthough just enqueued", ipr == reassdatagrams); + ip_reass_dequeue_datagram(ipr, NULL); + } + +nullreturn: + LWIP_DEBUGF(IP_REASS_DEBUG, ("ip4_reass: nullreturn\n")); + IPFRAG_STATS_INC(ip_frag.drop); + pbuf_free(p); + return NULL; +} +#endif /* IP_REASSEMBLY */ + +#if IP_FRAG +#if !LWIP_NETIF_TX_SINGLE_PBUF +/** Allocate a new struct pbuf_custom_ref */ +static struct pbuf_custom_ref * +ip_frag_alloc_pbuf_custom_ref(void) +{ + return (struct pbuf_custom_ref *)memp_malloc(MEMP_FRAG_PBUF); +} + +/** Free a struct pbuf_custom_ref */ +static void +ip_frag_free_pbuf_custom_ref(struct pbuf_custom_ref *p) +{ + LWIP_ASSERT("p != NULL", p != NULL); + memp_free(MEMP_FRAG_PBUF, p); +} + +/** Free-callback function to free a 'struct pbuf_custom_ref', called by + * pbuf_free. */ +static void +ipfrag_free_pbuf_custom(struct pbuf *p) +{ + struct pbuf_custom_ref *pcr = (struct pbuf_custom_ref *)p; + LWIP_ASSERT("pcr != NULL", pcr != NULL); + LWIP_ASSERT("pcr == p", (void *)pcr == (void *)p); + if (pcr->original != NULL) { + pbuf_free(pcr->original); + } + ip_frag_free_pbuf_custom_ref(pcr); +} +#endif /* !LWIP_NETIF_TX_SINGLE_PBUF */ + +/** + * Fragment an IP datagram if too large for the netif. + * + * Chop the datagram in MTU sized chunks and send them in order + * by pointing PBUF_REFs into p. + * + * @param p ip packet to send + * @param netif the netif on which to send + * @param dest destination ip address to which to send + * + * @return ERR_OK if sent successfully, err_t otherwise + */ +err_t +ip4_frag(struct pbuf *p, struct netif *netif, const ip4_addr_t *dest) +{ + struct pbuf *rambuf; +#if !LWIP_NETIF_TX_SINGLE_PBUF + struct pbuf *newpbuf; + u16_t newpbuflen = 0; + u16_t left_to_copy; +#endif + struct ip_hdr *original_iphdr; + struct ip_hdr *iphdr; + const u16_t nfb = (u16_t)((netif->mtu - IP_HLEN) / 8); + u16_t left, fragsize; + u16_t ofo; + int last; + u16_t poff = IP_HLEN; + u16_t tmp; + int mf_set; + + original_iphdr = (struct ip_hdr *)p->payload; + iphdr = original_iphdr; + if (IPH_HL_BYTES(iphdr) != IP_HLEN) { + /* ip4_frag() does not support IP options */ + return ERR_VAL; + } + LWIP_ERROR("ip4_frag(): pbuf too short", p->len >= IP_HLEN, return ERR_VAL); + + /* Save original offset */ + tmp = lwip_ntohs(IPH_OFFSET(iphdr)); + ofo = tmp & IP_OFFMASK; + /* already fragmented? if so, the last fragment we create must have MF, too */ + mf_set = tmp & IP_MF; + + left = (u16_t)(p->tot_len - IP_HLEN); + + while (left) { + /* Fill this fragment */ + fragsize = LWIP_MIN(left, (u16_t)(nfb * 8)); + +#if LWIP_NETIF_TX_SINGLE_PBUF + rambuf = pbuf_alloc(PBUF_IP, fragsize, PBUF_RAM); + if (rambuf == NULL) { + goto memerr; + } + LWIP_ASSERT("this needs a pbuf in one piece!", + (rambuf->len == rambuf->tot_len) && (rambuf->next == NULL)); + poff += pbuf_copy_partial(p, rambuf->payload, fragsize, poff); + /* make room for the IP header */ + if (pbuf_add_header(rambuf, IP_HLEN)) { + pbuf_free(rambuf); + goto memerr; + } + /* fill in the IP header */ + SMEMCPY(rambuf->payload, original_iphdr, IP_HLEN); + iphdr = (struct ip_hdr *)rambuf->payload; +#else /* LWIP_NETIF_TX_SINGLE_PBUF */ + /* When not using a static buffer, create a chain of pbufs. + * The first will be a PBUF_RAM holding the link and IP header. + * The rest will be PBUF_REFs mirroring the pbuf chain to be fragged, + * but limited to the size of an mtu. + */ + rambuf = pbuf_alloc(PBUF_LINK, IP_HLEN, PBUF_RAM); + if (rambuf == NULL) { + goto memerr; + } + LWIP_ASSERT("this needs a pbuf in one piece!", + (rambuf->len >= (IP_HLEN))); + SMEMCPY(rambuf->payload, original_iphdr, IP_HLEN); + iphdr = (struct ip_hdr *)rambuf->payload; + + left_to_copy = fragsize; + while (left_to_copy) { + struct pbuf_custom_ref *pcr; + u16_t plen = (u16_t)(p->len - poff); + LWIP_ASSERT("p->len >= poff", p->len >= poff); + newpbuflen = LWIP_MIN(left_to_copy, plen); + /* Is this pbuf already empty? */ + if (!newpbuflen) { + poff = 0; + p = p->next; + continue; + } + pcr = ip_frag_alloc_pbuf_custom_ref(); + if (pcr == NULL) { + pbuf_free(rambuf); + goto memerr; + } + /* Mirror this pbuf, although we might not need all of it. */ + newpbuf = pbuf_alloced_custom(PBUF_RAW, newpbuflen, PBUF_REF, &pcr->pc, + (u8_t *)p->payload + poff, newpbuflen); + if (newpbuf == NULL) { + ip_frag_free_pbuf_custom_ref(pcr); + pbuf_free(rambuf); + goto memerr; + } + pbuf_ref(p); + pcr->original = p; + pcr->pc.custom_free_function = ipfrag_free_pbuf_custom; + + /* Add it to end of rambuf's chain, but using pbuf_cat, not pbuf_chain + * so that it is removed when pbuf_dechain is later called on rambuf. + */ + pbuf_cat(rambuf, newpbuf); + left_to_copy = (u16_t)(left_to_copy - newpbuflen); + if (left_to_copy) { + poff = 0; + p = p->next; + } + } + poff = (u16_t)(poff + newpbuflen); +#endif /* LWIP_NETIF_TX_SINGLE_PBUF */ + + /* Correct header */ + last = (left <= netif->mtu - IP_HLEN); + + /* Set new offset and MF flag */ + tmp = (IP_OFFMASK & (ofo)); + if (!last || mf_set) { + /* the last fragment has MF set if the input frame had it */ + tmp = tmp | IP_MF; + } + IPH_OFFSET_SET(iphdr, lwip_htons(tmp)); + IPH_LEN_SET(iphdr, lwip_htons((u16_t)(fragsize + IP_HLEN))); + IPH_CHKSUM_SET(iphdr, 0); +#if CHECKSUM_GEN_IP + IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_IP) { + IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, IP_HLEN)); + } +#endif /* CHECKSUM_GEN_IP */ + + /* No need for separate header pbuf - we allowed room for it in rambuf + * when allocated. + */ + netif->output(netif, rambuf, dest); + IPFRAG_STATS_INC(ip_frag.xmit); + + /* Unfortunately we can't reuse rambuf - the hardware may still be + * using the buffer. Instead we free it (and the ensuing chain) and + * recreate it next time round the loop. If we're lucky the hardware + * will have already sent the packet, the free will really free, and + * there will be zero memory penalty. + */ + + pbuf_free(rambuf); + left = (u16_t)(left - fragsize); + ofo = (u16_t)(ofo + nfb); + } + MIB2_STATS_INC(mib2.ipfragoks); + return ERR_OK; +memerr: + MIB2_STATS_INC(mib2.ipfragfails); + return ERR_MEM; +} +#endif /* IP_FRAG */ + +#endif /* LWIP_IPV4 */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/mem.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/mem.c new file mode 100644 index 000000000..16fd9849c --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/mem.c @@ -0,0 +1,1017 @@ +/** + * @file + * Dynamic memory manager + * + * This is a lightweight replacement for the standard C library malloc(). + * + * If you want to use the standard C library malloc() instead, define + * MEM_LIBC_MALLOC to 1 in your lwipopts.h + * + * To let mem_malloc() use pools (prevents fragmentation and is much faster than + * a heap but might waste some memory), define MEM_USE_POOLS to 1, define + * MEMP_USE_CUSTOM_POOLS to 1 and create a file "lwippools.h" that includes a list + * of pools like this (more pools can be added between _START and _END): + * + * Define three pools with sizes 256, 512, and 1512 bytes + * LWIP_MALLOC_MEMPOOL_START + * LWIP_MALLOC_MEMPOOL(20, 256) + * LWIP_MALLOC_MEMPOOL(10, 512) + * LWIP_MALLOC_MEMPOOL(5, 1512) + * LWIP_MALLOC_MEMPOOL_END + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * Simon Goldschmidt + * + */ + +#include "lwip/opt.h" +#include "lwip/mem.h" +#include "lwip/def.h" +#include "lwip/sys.h" +#include "lwip/stats.h" +#include "lwip/err.h" + +#include + +#if MEM_LIBC_MALLOC +#include /* for malloc()/free() */ +#endif + +/* This is overridable for tests only... */ +#ifndef LWIP_MEM_ILLEGAL_FREE +#define LWIP_MEM_ILLEGAL_FREE(msg) LWIP_ASSERT(msg, 0) +#endif + +#define MEM_STATS_INC_LOCKED(x) SYS_ARCH_LOCKED(MEM_STATS_INC(x)) +#define MEM_STATS_INC_USED_LOCKED(x, y) SYS_ARCH_LOCKED(MEM_STATS_INC_USED(x, y)) +#define MEM_STATS_DEC_USED_LOCKED(x, y) SYS_ARCH_LOCKED(MEM_STATS_DEC_USED(x, y)) + +#if MEM_OVERFLOW_CHECK +#define MEM_SANITY_OFFSET MEM_SANITY_REGION_BEFORE_ALIGNED +#define MEM_SANITY_OVERHEAD (MEM_SANITY_REGION_BEFORE_ALIGNED + MEM_SANITY_REGION_AFTER_ALIGNED) +#else +#define MEM_SANITY_OFFSET 0 +#define MEM_SANITY_OVERHEAD 0 +#endif + +#if MEM_OVERFLOW_CHECK || MEMP_OVERFLOW_CHECK +/** + * Check if a mep element was victim of an overflow or underflow + * (e.g. the restricted area after/before it has been altered) + * + * @param p the mem element to check + * @param size allocated size of the element + * @param descr1 description of the element source shown on error + * @param descr2 description of the element source shown on error + */ +void +mem_overflow_check_raw(void *p, size_t size, const char *descr1, const char *descr2) +{ +#if MEM_SANITY_REGION_AFTER_ALIGNED || MEM_SANITY_REGION_BEFORE_ALIGNED + u16_t k; + u8_t *m; + +#if MEM_SANITY_REGION_AFTER_ALIGNED > 0 + m = (u8_t *)p + size; + for (k = 0; k < MEM_SANITY_REGION_AFTER_ALIGNED; k++) { + if (m[k] != 0xcd) { + char errstr[128]; + snprintf(errstr, sizeof(errstr), "detected mem overflow in %s%s", descr1, descr2); + LWIP_ASSERT(errstr, 0); + } + } +#endif /* MEM_SANITY_REGION_AFTER_ALIGNED > 0 */ + +#if MEM_SANITY_REGION_BEFORE_ALIGNED > 0 + m = (u8_t *)p - MEM_SANITY_REGION_BEFORE_ALIGNED; + for (k = 0; k < MEM_SANITY_REGION_BEFORE_ALIGNED; k++) { + if (m[k] != 0xcd) { + char errstr[128]; + snprintf(errstr, sizeof(errstr), "detected mem underflow in %s%s", descr1, descr2); + LWIP_ASSERT(errstr, 0); + } + } +#endif /* MEM_SANITY_REGION_BEFORE_ALIGNED > 0 */ +#else + LWIP_UNUSED_ARG(p); + LWIP_UNUSED_ARG(desc); + LWIP_UNUSED_ARG(descr); +#endif +} + +/** + * Initialize the restricted area of a mem element. + */ +void +mem_overflow_init_raw(void *p, size_t size) +{ +#if MEM_SANITY_REGION_BEFORE_ALIGNED > 0 || MEM_SANITY_REGION_AFTER_ALIGNED > 0 + u8_t *m; +#if MEM_SANITY_REGION_BEFORE_ALIGNED > 0 + m = (u8_t *)p - MEM_SANITY_REGION_BEFORE_ALIGNED; + memset(m, 0xcd, MEM_SANITY_REGION_BEFORE_ALIGNED); +#endif +#if MEM_SANITY_REGION_AFTER_ALIGNED > 0 + m = (u8_t *)p + size; + memset(m, 0xcd, MEM_SANITY_REGION_AFTER_ALIGNED); +#endif +#else /* MEM_SANITY_REGION_BEFORE_ALIGNED > 0 || MEM_SANITY_REGION_AFTER_ALIGNED > 0 */ + LWIP_UNUSED_ARG(p); + LWIP_UNUSED_ARG(desc); +#endif /* MEM_SANITY_REGION_BEFORE_ALIGNED > 0 || MEM_SANITY_REGION_AFTER_ALIGNED > 0 */ +} +#endif /* MEM_OVERFLOW_CHECK || MEMP_OVERFLOW_CHECK */ + +#if MEM_LIBC_MALLOC || MEM_USE_POOLS + +/** mem_init is not used when using pools instead of a heap or using + * C library malloc(). + */ +void +mem_init(void) +{ +} + +/** mem_trim is not used when using pools instead of a heap or using + * C library malloc(): we can't free part of a pool element and the stack + * support mem_trim() to return a different pointer + */ +void * +mem_trim(void *mem, mem_size_t size) +{ + LWIP_UNUSED_ARG(size); + return mem; +} +#endif /* MEM_LIBC_MALLOC || MEM_USE_POOLS */ + +#if MEM_LIBC_MALLOC +/* lwIP heap implemented using C library malloc() */ + +/* in case C library malloc() needs extra protection, + * allow these defines to be overridden. + */ +#ifndef mem_clib_free +#define mem_clib_free free +#endif +#ifndef mem_clib_malloc +#define mem_clib_malloc malloc +#endif +#ifndef mem_clib_calloc +#define mem_clib_calloc calloc +#endif + +#if LWIP_STATS && MEM_STATS +#define MEM_LIBC_STATSHELPER_SIZE LWIP_MEM_ALIGN_SIZE(sizeof(mem_size_t)) +#else +#define MEM_LIBC_STATSHELPER_SIZE 0 +#endif + +/** + * Allocate a block of memory with a minimum of 'size' bytes. + * + * @param size is the minimum size of the requested block in bytes. + * @return pointer to allocated memory or NULL if no free memory was found. + * + * Note that the returned value must always be aligned (as defined by MEM_ALIGNMENT). + */ +void * +mem_malloc(mem_size_t size) +{ + void *ret = mem_clib_malloc(size + MEM_LIBC_STATSHELPER_SIZE); + if (ret == NULL) { + MEM_STATS_INC_LOCKED(err); + } else { + LWIP_ASSERT("malloc() must return aligned memory", LWIP_MEM_ALIGN(ret) == ret); +#if LWIP_STATS && MEM_STATS + *(mem_size_t *)ret = size; + ret = (u8_t *)ret + MEM_LIBC_STATSHELPER_SIZE; + MEM_STATS_INC_USED_LOCKED(used, size); +#endif + } + return ret; +} + +/** Put memory back on the heap + * + * @param rmem is the pointer as returned by a previous call to mem_malloc() + */ +void +mem_free(void *rmem) +{ + LWIP_ASSERT("rmem != NULL", (rmem != NULL)); + LWIP_ASSERT("rmem == MEM_ALIGN(rmem)", (rmem == LWIP_MEM_ALIGN(rmem))); +#if LWIP_STATS && MEM_STATS + rmem = (u8_t *)rmem - MEM_LIBC_STATSHELPER_SIZE; + MEM_STATS_DEC_USED_LOCKED(used, *(mem_size_t *)rmem); +#endif + mem_clib_free(rmem); +} + +#elif MEM_USE_POOLS + +/* lwIP heap implemented with different sized pools */ + +/** + * Allocate memory: determine the smallest pool that is big enough + * to contain an element of 'size' and get an element from that pool. + * + * @param size the size in bytes of the memory needed + * @return a pointer to the allocated memory or NULL if the pool is empty + */ +void * +mem_malloc(mem_size_t size) +{ + void *ret; + struct memp_malloc_helper *element = NULL; + memp_t poolnr; + mem_size_t required_size = size + LWIP_MEM_ALIGN_SIZE(sizeof(struct memp_malloc_helper)); + + for (poolnr = MEMP_POOL_FIRST; poolnr <= MEMP_POOL_LAST; poolnr = (memp_t)(poolnr + 1)) { + /* is this pool big enough to hold an element of the required size + plus a struct memp_malloc_helper that saves the pool this element came from? */ + if (required_size <= memp_pools[poolnr]->size) { + element = (struct memp_malloc_helper *)memp_malloc(poolnr); + if (element == NULL) { + /* No need to DEBUGF or ASSERT: This error is already taken care of in memp.c */ +#if MEM_USE_POOLS_TRY_BIGGER_POOL + /** Try a bigger pool if this one is empty! */ + if (poolnr < MEMP_POOL_LAST) { + continue; + } +#endif /* MEM_USE_POOLS_TRY_BIGGER_POOL */ + MEM_STATS_INC_LOCKED(err); + return NULL; + } + break; + } + } + if (poolnr > MEMP_POOL_LAST) { + LWIP_ASSERT("mem_malloc(): no pool is that big!", 0); + MEM_STATS_INC_LOCKED(err); + return NULL; + } + + /* save the pool number this element came from */ + element->poolnr = poolnr; + /* and return a pointer to the memory directly after the struct memp_malloc_helper */ + ret = (u8_t *)element + LWIP_MEM_ALIGN_SIZE(sizeof(struct memp_malloc_helper)); + +#if MEMP_OVERFLOW_CHECK || (LWIP_STATS && MEM_STATS) + /* truncating to u16_t is safe because struct memp_desc::size is u16_t */ + element->size = (u16_t)size; + MEM_STATS_INC_USED_LOCKED(used, element->size); +#endif /* MEMP_OVERFLOW_CHECK || (LWIP_STATS && MEM_STATS) */ +#if MEMP_OVERFLOW_CHECK + /* initialize unused memory (diff between requested size and selected pool's size) */ + memset((u8_t *)ret + size, 0xcd, memp_pools[poolnr]->size - size); +#endif /* MEMP_OVERFLOW_CHECK */ + return ret; +} + +/** + * Free memory previously allocated by mem_malloc. Loads the pool number + * and calls memp_free with that pool number to put the element back into + * its pool + * + * @param rmem the memory element to free + */ +void +mem_free(void *rmem) +{ + struct memp_malloc_helper *hmem; + + LWIP_ASSERT("rmem != NULL", (rmem != NULL)); + LWIP_ASSERT("rmem == MEM_ALIGN(rmem)", (rmem == LWIP_MEM_ALIGN(rmem))); + + /* get the original struct memp_malloc_helper */ + /* cast through void* to get rid of alignment warnings */ + hmem = (struct memp_malloc_helper *)(void *)((u8_t *)rmem - LWIP_MEM_ALIGN_SIZE(sizeof(struct memp_malloc_helper))); + + LWIP_ASSERT("hmem != NULL", (hmem != NULL)); + LWIP_ASSERT("hmem == MEM_ALIGN(hmem)", (hmem == LWIP_MEM_ALIGN(hmem))); + LWIP_ASSERT("hmem->poolnr < MEMP_MAX", (hmem->poolnr < MEMP_MAX)); + + MEM_STATS_DEC_USED_LOCKED(used, hmem->size); +#if MEMP_OVERFLOW_CHECK + { + u16_t i; + LWIP_ASSERT("MEM_USE_POOLS: invalid chunk size", + hmem->size <= memp_pools[hmem->poolnr]->size); + /* check that unused memory remained untouched (diff between requested size and selected pool's size) */ + for (i = hmem->size; i < memp_pools[hmem->poolnr]->size; i++) { + u8_t data = *((u8_t *)rmem + i); + LWIP_ASSERT("MEM_USE_POOLS: mem overflow detected", data == 0xcd); + } + } +#endif /* MEMP_OVERFLOW_CHECK */ + + /* and put it in the pool we saved earlier */ + memp_free(hmem->poolnr, hmem); +} + +#else /* MEM_USE_POOLS */ +/* lwIP replacement for your libc malloc() */ + +/** + * The heap is made up as a list of structs of this type. + * This does not have to be aligned since for getting its size, + * we only use the macro SIZEOF_STRUCT_MEM, which automatically aligns. + */ +struct mem { + /** index (-> ram[next]) of the next struct */ + mem_size_t next; + /** index (-> ram[prev]) of the previous struct */ + mem_size_t prev; + /** 1: this area is used; 0: this area is unused */ + u8_t used; +#if MEM_OVERFLOW_CHECK + /** this keeps track of the user allocation size for guard checks */ + mem_size_t user_size; +#endif +}; + +/** All allocated blocks will be MIN_SIZE bytes big, at least! + * MIN_SIZE can be overridden to suit your needs. Smaller values save space, + * larger values could prevent too small blocks to fragment the RAM too much. */ +#ifndef MIN_SIZE +#define MIN_SIZE 12 +#endif /* MIN_SIZE */ +/* some alignment macros: we define them here for better source code layout */ +#define MIN_SIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(MIN_SIZE) +#define SIZEOF_STRUCT_MEM LWIP_MEM_ALIGN_SIZE(sizeof(struct mem)) +#define MEM_SIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(MEM_SIZE) + +/** If you want to relocate the heap to external memory, simply define + * LWIP_RAM_HEAP_POINTER as a void-pointer to that location. + * If so, make sure the memory at that location is big enough (see below on + * how that space is calculated). */ +#ifndef LWIP_RAM_HEAP_POINTER +/** the heap. we need one struct mem at the end and some room for alignment */ +LWIP_DECLARE_MEMORY_ALIGNED(ram_heap, MEM_SIZE_ALIGNED + (2U * SIZEOF_STRUCT_MEM)); +#define LWIP_RAM_HEAP_POINTER ram_heap +#endif /* LWIP_RAM_HEAP_POINTER */ + +/** pointer to the heap (ram_heap): for alignment, ram is now a pointer instead of an array */ +static u8_t *ram; +/** the last entry, always unused! */ +static struct mem *ram_end; + +/** concurrent access protection */ +#if !NO_SYS +static sys_mutex_t mem_mutex; +#endif + +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT + +static volatile u8_t mem_free_count; + +/* Allow mem_free from other (e.g. interrupt) context */ +#define LWIP_MEM_FREE_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_free) +#define LWIP_MEM_FREE_PROTECT() SYS_ARCH_PROTECT(lev_free) +#define LWIP_MEM_FREE_UNPROTECT() SYS_ARCH_UNPROTECT(lev_free) +#define LWIP_MEM_ALLOC_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_alloc) +#define LWIP_MEM_ALLOC_PROTECT() SYS_ARCH_PROTECT(lev_alloc) +#define LWIP_MEM_ALLOC_UNPROTECT() SYS_ARCH_UNPROTECT(lev_alloc) +#define LWIP_MEM_LFREE_VOLATILE volatile + +#else /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + +/* Protect the heap only by using a mutex */ +#define LWIP_MEM_FREE_DECL_PROTECT() +#define LWIP_MEM_FREE_PROTECT() sys_mutex_lock(&mem_mutex) +#define LWIP_MEM_FREE_UNPROTECT() sys_mutex_unlock(&mem_mutex) +/* mem_malloc is protected using mutex AND LWIP_MEM_ALLOC_PROTECT */ +#define LWIP_MEM_ALLOC_DECL_PROTECT() +#define LWIP_MEM_ALLOC_PROTECT() +#define LWIP_MEM_ALLOC_UNPROTECT() +#define LWIP_MEM_LFREE_VOLATILE + +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + +/** pointer to the lowest free block, this is used for faster search */ +static struct mem * LWIP_MEM_LFREE_VOLATILE lfree; + +#if MEM_SANITY_CHECK +static void mem_sanity(void); +#define MEM_SANITY() mem_sanity() +#else +#define MEM_SANITY() +#endif + +#if MEM_OVERFLOW_CHECK +static void +mem_overflow_init_element(struct mem *mem, mem_size_t user_size) +{ + void *p = (u8_t *)mem + SIZEOF_STRUCT_MEM + MEM_SANITY_OFFSET; + mem->user_size = user_size; + mem_overflow_init_raw(p, user_size); +} + +static void +mem_overflow_check_element(struct mem *mem) +{ + void *p = (u8_t *)mem + SIZEOF_STRUCT_MEM + MEM_SANITY_OFFSET; + mem_overflow_check_raw(p, mem->user_size, "heap", ""); +} +#else /* MEM_OVERFLOW_CHECK */ +#define mem_overflow_init_element(mem, size) +#define mem_overflow_check_element(mem) +#endif /* MEM_OVERFLOW_CHECK */ + +static struct mem * +ptr_to_mem(mem_size_t ptr) +{ + return (struct mem *)(void *)&ram[ptr]; +} + +static mem_size_t +mem_to_ptr(void *mem) +{ + return (mem_size_t)((u8_t *)mem - ram); +} + +/** + * "Plug holes" by combining adjacent empty struct mems. + * After this function is through, there should not exist + * one empty struct mem pointing to another empty struct mem. + * + * @param mem this points to a struct mem which just has been freed + * @internal this function is only called by mem_free() and mem_trim() + * + * This assumes access to the heap is protected by the calling function + * already. + */ +static void +plug_holes(struct mem *mem) +{ + struct mem *nmem; + struct mem *pmem; + + LWIP_ASSERT("plug_holes: mem >= ram", (u8_t *)mem >= ram); + LWIP_ASSERT("plug_holes: mem < ram_end", (u8_t *)mem < (u8_t *)ram_end); + LWIP_ASSERT("plug_holes: mem->used == 0", mem->used == 0); + + /* plug hole forward */ + LWIP_ASSERT("plug_holes: mem->next <= MEM_SIZE_ALIGNED", mem->next <= MEM_SIZE_ALIGNED); + + nmem = ptr_to_mem(mem->next); + if (mem != nmem && nmem->used == 0 && (u8_t *)nmem != (u8_t *)ram_end) { + /* if mem->next is unused and not end of ram, combine mem and mem->next */ + if (lfree == nmem) { + lfree = mem; + } + mem->next = nmem->next; + if (nmem->next != MEM_SIZE_ALIGNED) { + ptr_to_mem(nmem->next)->prev = mem_to_ptr(mem); + } + } + + /* plug hole backward */ + pmem = ptr_to_mem(mem->prev); + if (pmem != mem && pmem->used == 0) { + /* if mem->prev is unused, combine mem and mem->prev */ + if (lfree == mem) { + lfree = pmem; + } + pmem->next = mem->next; + if (mem->next != MEM_SIZE_ALIGNED) { + ptr_to_mem(mem->next)->prev = mem_to_ptr(pmem); + } + } +} + +/** + * Zero the heap and initialize start, end and lowest-free + */ +void +mem_init(void) +{ + struct mem *mem; + + LWIP_ASSERT("Sanity check alignment", + (SIZEOF_STRUCT_MEM & (MEM_ALIGNMENT - 1)) == 0); + + /* align the heap */ + ram = (u8_t *)LWIP_MEM_ALIGN(LWIP_RAM_HEAP_POINTER); + /* initialize the start of the heap */ + mem = (struct mem *)(void *)ram; + mem->next = MEM_SIZE_ALIGNED; + mem->prev = 0; + mem->used = 0; + /* initialize the end of the heap */ + ram_end = ptr_to_mem(MEM_SIZE_ALIGNED); + ram_end->used = 1; + ram_end->next = MEM_SIZE_ALIGNED; + ram_end->prev = MEM_SIZE_ALIGNED; + MEM_SANITY(); + + /* initialize the lowest-free pointer to the start of the heap */ + lfree = (struct mem *)(void *)ram; + + MEM_STATS_AVAIL(avail, MEM_SIZE_ALIGNED); + + if (sys_mutex_new(&mem_mutex) != ERR_OK) { + LWIP_ASSERT("failed to create mem_mutex", 0); + } +} + +/* Check if a struct mem is correctly linked. + * If not, double-free is a possible reason. + */ +static int +mem_link_valid(struct mem *mem) +{ + struct mem *nmem, *pmem; + mem_size_t rmem_idx; + rmem_idx = mem_to_ptr(mem); + nmem = ptr_to_mem(mem->next); + pmem = ptr_to_mem(mem->prev); + if ((mem->next > MEM_SIZE_ALIGNED) || (mem->prev > MEM_SIZE_ALIGNED) || + ((mem->prev != rmem_idx) && (pmem->next != rmem_idx)) || + ((nmem != ram_end) && (nmem->prev != rmem_idx))) { + return 0; + } + return 1; +} + +#if MEM_SANITY_CHECK +static void +mem_sanity(void) +{ + struct mem *mem; + u8_t last_used; + + /* begin with first element here */ + mem = (struct mem *)ram; + LWIP_ASSERT("heap element used valid", (mem->used == 0) || (mem->used == 1)); + last_used = mem->used; + LWIP_ASSERT("heap element prev ptr valid", mem->prev == 0); + LWIP_ASSERT("heap element next ptr valid", mem->next <= MEM_SIZE_ALIGNED); + LWIP_ASSERT("heap element next ptr aligned", LWIP_MEM_ALIGN(ptr_to_mem(mem->next) == ptr_to_mem(mem->next))); + + /* check all elements before the end of the heap */ + for (mem = ptr_to_mem(mem->next); + ((u8_t *)mem > ram) && (mem < ram_end); + mem = ptr_to_mem(mem->next)) { + LWIP_ASSERT("heap element aligned", LWIP_MEM_ALIGN(mem) == mem); + LWIP_ASSERT("heap element prev ptr valid", mem->prev <= MEM_SIZE_ALIGNED); + LWIP_ASSERT("heap element next ptr valid", mem->next <= MEM_SIZE_ALIGNED); + LWIP_ASSERT("heap element prev ptr aligned", LWIP_MEM_ALIGN(ptr_to_mem(mem->prev) == ptr_to_mem(mem->prev))); + LWIP_ASSERT("heap element next ptr aligned", LWIP_MEM_ALIGN(ptr_to_mem(mem->next) == ptr_to_mem(mem->next))); + + if (last_used == 0) { + /* 2 unused elements in a row? */ + LWIP_ASSERT("heap element unused?", mem->used == 1); + } else { + LWIP_ASSERT("heap element unused member", (mem->used == 0) || (mem->used == 1)); + } + + LWIP_ASSERT("heap element link valid", mem_link_valid(mem)); + + /* used/unused altering */ + last_used = mem->used; + } + LWIP_ASSERT("heap end ptr sanity", mem == ptr_to_mem(MEM_SIZE_ALIGNED)); + LWIP_ASSERT("heap element used valid", mem->used == 1); + LWIP_ASSERT("heap element prev ptr valid", mem->prev == MEM_SIZE_ALIGNED); + LWIP_ASSERT("heap element next ptr valid", mem->next == MEM_SIZE_ALIGNED); +} +#endif /* MEM_SANITY_CHECK */ + +/** + * Put a struct mem back on the heap + * + * @param rmem is the data portion of a struct mem as returned by a previous + * call to mem_malloc() + */ +void +mem_free(void *rmem) +{ + struct mem *mem; + LWIP_MEM_FREE_DECL_PROTECT(); + + if (rmem == NULL) { + LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("mem_free(p == NULL) was called.\n")); + return; + } + if ((((mem_ptr_t)rmem) & (MEM_ALIGNMENT - 1)) != 0) { + LWIP_MEM_ILLEGAL_FREE("mem_free: sanity check alignment"); + LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_free: sanity check alignment\n")); + /* protect mem stats from concurrent access */ + MEM_STATS_INC_LOCKED(illegal); + return; + } + + /* Get the corresponding struct mem: */ + /* cast through void* to get rid of alignment warnings */ + mem = (struct mem *)(void *)((u8_t *)rmem - (SIZEOF_STRUCT_MEM + MEM_SANITY_OFFSET)); + + if ((u8_t *)mem < ram || (u8_t *)rmem + MIN_SIZE_ALIGNED > (u8_t *)ram_end) { + LWIP_MEM_ILLEGAL_FREE("mem_free: illegal memory"); + LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_free: illegal memory\n")); + /* protect mem stats from concurrent access */ + MEM_STATS_INC_LOCKED(illegal); + return; + } +#if MEM_OVERFLOW_CHECK + mem_overflow_check_element(mem); +#endif + /* protect the heap from concurrent access */ + LWIP_MEM_FREE_PROTECT(); + /* mem has to be in a used state */ + if (!mem->used) { + LWIP_MEM_ILLEGAL_FREE("mem_free: illegal memory: double free"); + LWIP_MEM_FREE_UNPROTECT(); + LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_free: illegal memory: double free?\n")); + /* protect mem stats from concurrent access */ + MEM_STATS_INC_LOCKED(illegal); + return; + } + + if (!mem_link_valid(mem)) { + LWIP_MEM_ILLEGAL_FREE("mem_free: illegal memory: non-linked: double free"); + LWIP_MEM_FREE_UNPROTECT(); + LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_free: illegal memory: non-linked: double free?\n")); + /* protect mem stats from concurrent access */ + MEM_STATS_INC_LOCKED(illegal); + return; + } + + /* mem is now unused. */ + mem->used = 0; + + if (mem < lfree) { + /* the newly freed struct is now the lowest */ + lfree = mem; + } + + MEM_STATS_DEC_USED(used, mem->next - (mem_size_t)(((u8_t *)mem - ram))); + + /* finally, see if prev or next are free also */ + plug_holes(mem); + MEM_SANITY(); +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT + mem_free_count = 1; +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + LWIP_MEM_FREE_UNPROTECT(); +} + +/** + * Shrink memory returned by mem_malloc(). + * + * @param rmem pointer to memory allocated by mem_malloc the is to be shrinked + * @param new_size required size after shrinking (needs to be smaller than or + * equal to the previous size) + * @return for compatibility reasons: is always == rmem, at the moment + * or NULL if newsize is > old size, in which case rmem is NOT touched + * or freed! + */ +void * +mem_trim(void *rmem, mem_size_t new_size) +{ + mem_size_t size, newsize; + mem_size_t ptr, ptr2; + struct mem *mem, *mem2; + /* use the FREE_PROTECT here: it protects with sem OR SYS_ARCH_PROTECT */ + LWIP_MEM_FREE_DECL_PROTECT(); + + /* Expand the size of the allocated memory region so that we can + adjust for alignment. */ + newsize = (mem_size_t)LWIP_MEM_ALIGN_SIZE(new_size); + if (newsize < MIN_SIZE_ALIGNED) { + /* every data block must be at least MIN_SIZE_ALIGNED long */ + newsize = MIN_SIZE_ALIGNED; + } +#if MEM_OVERFLOW_CHECK + newsize += MEM_SANITY_REGION_BEFORE_ALIGNED + MEM_SANITY_REGION_AFTER_ALIGNED; +#endif + if ((newsize > MEM_SIZE_ALIGNED) || (newsize < new_size)) { + return NULL; + } + + LWIP_ASSERT("mem_trim: legal memory", (u8_t *)rmem >= (u8_t *)ram && + (u8_t *)rmem < (u8_t *)ram_end); + + if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) { + LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_trim: illegal memory\n")); + /* protect mem stats from concurrent access */ + MEM_STATS_INC_LOCKED(illegal); + return rmem; + } + /* Get the corresponding struct mem ... */ + /* cast through void* to get rid of alignment warnings */ + mem = (struct mem *)(void *)((u8_t *)rmem - (SIZEOF_STRUCT_MEM + MEM_SANITY_OFFSET)); +#if MEM_OVERFLOW_CHECK + mem_overflow_check_element(mem); +#endif + /* ... and its offset pointer */ + ptr = mem_to_ptr(mem); + + size = (mem_size_t)((mem_size_t)(mem->next - ptr) - (SIZEOF_STRUCT_MEM + MEM_SANITY_OVERHEAD)); + LWIP_ASSERT("mem_trim can only shrink memory", newsize <= size); + if (newsize > size) { + /* not supported */ + return NULL; + } + if (newsize == size) { + /* No change in size, simply return */ + return rmem; + } + + /* protect the heap from concurrent access */ + LWIP_MEM_FREE_PROTECT(); + + mem2 = ptr_to_mem(mem->next); + if (mem2->used == 0) { + /* The next struct is unused, we can simply move it at little */ + mem_size_t next; + LWIP_ASSERT("invalid next ptr", mem->next != MEM_SIZE_ALIGNED); + /* remember the old next pointer */ + next = mem2->next; + /* create new struct mem which is moved directly after the shrinked mem */ + ptr2 = (mem_size_t)(ptr + SIZEOF_STRUCT_MEM + newsize); + if (lfree == mem2) { + lfree = ptr_to_mem(ptr2); + } + mem2 = ptr_to_mem(ptr2); + mem2->used = 0; + /* restore the next pointer */ + mem2->next = next; + /* link it back to mem */ + mem2->prev = ptr; + /* link mem to it */ + mem->next = ptr2; + /* last thing to restore linked list: as we have moved mem2, + * let 'mem2->next->prev' point to mem2 again. but only if mem2->next is not + * the end of the heap */ + if (mem2->next != MEM_SIZE_ALIGNED) { + ptr_to_mem(mem2->next)->prev = ptr2; + } + MEM_STATS_DEC_USED(used, (size - newsize)); + /* no need to plug holes, we've already done that */ + } else if (newsize + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED <= size) { + /* Next struct is used but there's room for another struct mem with + * at least MIN_SIZE_ALIGNED of data. + * Old size ('size') must be big enough to contain at least 'newsize' plus a struct mem + * ('SIZEOF_STRUCT_MEM') with some data ('MIN_SIZE_ALIGNED'). + * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty + * region that couldn't hold data, but when mem->next gets freed, + * the 2 regions would be combined, resulting in more free memory */ + ptr2 = (mem_size_t)(ptr + SIZEOF_STRUCT_MEM + newsize); + LWIP_ASSERT("invalid next ptr", mem->next != MEM_SIZE_ALIGNED); + mem2 = ptr_to_mem(ptr2); + if (mem2 < lfree) { + lfree = mem2; + } + mem2->used = 0; + mem2->next = mem->next; + mem2->prev = ptr; + mem->next = ptr2; + if (mem2->next != MEM_SIZE_ALIGNED) { + ptr_to_mem(mem2->next)->prev = ptr2; + } + MEM_STATS_DEC_USED(used, (size - newsize)); + /* the original mem->next is used, so no need to plug holes! */ + } + /* else { + next struct mem is used but size between mem and mem2 is not big enough + to create another struct mem + -> don't do anyhting. + -> the remaining space stays unused since it is too small + } */ +#if MEM_OVERFLOW_CHECK + mem_overflow_init_element(mem, new_size); +#endif + MEM_SANITY(); +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT + mem_free_count = 1; +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + LWIP_MEM_FREE_UNPROTECT(); + return rmem; +} + +/** + * Allocate a block of memory with a minimum of 'size' bytes. + * + * @param size_in is the minimum size of the requested block in bytes. + * @return pointer to allocated memory or NULL if no free memory was found. + * + * Note that the returned value will always be aligned (as defined by MEM_ALIGNMENT). + */ +void * +mem_malloc(mem_size_t size_in) +{ + mem_size_t ptr, ptr2, size; + struct mem *mem, *mem2; +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT + u8_t local_mem_free_count = 0; +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + LWIP_MEM_ALLOC_DECL_PROTECT(); + + if (size_in == 0) { + return NULL; + } + + /* Expand the size of the allocated memory region so that we can + adjust for alignment. */ + size = (mem_size_t)LWIP_MEM_ALIGN_SIZE(size_in); + if (size < MIN_SIZE_ALIGNED) { + /* every data block must be at least MIN_SIZE_ALIGNED long */ + size = MIN_SIZE_ALIGNED; + } +#if MEM_OVERFLOW_CHECK + size += MEM_SANITY_REGION_BEFORE_ALIGNED + MEM_SANITY_REGION_AFTER_ALIGNED; +#endif + if ((size > MEM_SIZE_ALIGNED) || (size < size_in)) { + return NULL; + } + + /* protect the heap from concurrent access */ + sys_mutex_lock(&mem_mutex); + LWIP_MEM_ALLOC_PROTECT(); +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT + /* run as long as a mem_free disturbed mem_malloc or mem_trim */ + do { + local_mem_free_count = 0; +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + + /* Scan through the heap searching for a free block that is big enough, + * beginning with the lowest free block. + */ + for (ptr = mem_to_ptr(lfree); ptr < MEM_SIZE_ALIGNED - size; + ptr = ptr_to_mem(ptr)->next) { + mem = ptr_to_mem(ptr); +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT + mem_free_count = 0; + LWIP_MEM_ALLOC_UNPROTECT(); + /* allow mem_free or mem_trim to run */ + LWIP_MEM_ALLOC_PROTECT(); + if (mem_free_count != 0) { + /* If mem_free or mem_trim have run, we have to restart since they + could have altered our current struct mem. */ + local_mem_free_count = 1; + break; + } +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + + if ((!mem->used) && + (mem->next - (ptr + SIZEOF_STRUCT_MEM)) >= size) { + /* mem is not used and at least perfect fit is possible: + * mem->next - (ptr + SIZEOF_STRUCT_MEM) gives us the 'user data size' of mem */ + + if (mem->next - (ptr + SIZEOF_STRUCT_MEM) >= (size + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED)) { + /* (in addition to the above, we test if another struct mem (SIZEOF_STRUCT_MEM) containing + * at least MIN_SIZE_ALIGNED of data also fits in the 'user data space' of 'mem') + * -> split large block, create empty remainder, + * remainder must be large enough to contain MIN_SIZE_ALIGNED data: if + * mem->next - (ptr + (2*SIZEOF_STRUCT_MEM)) == size, + * struct mem would fit in but no data between mem2 and mem2->next + * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty + * region that couldn't hold data, but when mem->next gets freed, + * the 2 regions would be combined, resulting in more free memory + */ + ptr2 = (mem_size_t)(ptr + SIZEOF_STRUCT_MEM + size); + LWIP_ASSERT("invalid next ptr",ptr2 != MEM_SIZE_ALIGNED); + /* create mem2 struct */ + mem2 = ptr_to_mem(ptr2); + mem2->used = 0; + mem2->next = mem->next; + mem2->prev = ptr; + /* and insert it between mem and mem->next */ + mem->next = ptr2; + mem->used = 1; + + if (mem2->next != MEM_SIZE_ALIGNED) { + ptr_to_mem(mem2->next)->prev = ptr2; + } + MEM_STATS_INC_USED(used, (size + SIZEOF_STRUCT_MEM)); + } else { + /* (a mem2 struct does no fit into the user data space of mem and mem->next will always + * be used at this point: if not we have 2 unused structs in a row, plug_holes should have + * take care of this). + * -> near fit or exact fit: do not split, no mem2 creation + * also can't move mem->next directly behind mem, since mem->next + * will always be used at this point! + */ + mem->used = 1; + MEM_STATS_INC_USED(used, mem->next - mem_to_ptr(mem)); + } +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT +mem_malloc_adjust_lfree: +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + if (mem == lfree) { + struct mem *cur = lfree; + /* Find next free block after mem and update lowest free pointer */ + while (cur->used && cur != ram_end) { +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT + mem_free_count = 0; + LWIP_MEM_ALLOC_UNPROTECT(); + /* prevent high interrupt latency... */ + LWIP_MEM_ALLOC_PROTECT(); + if (mem_free_count != 0) { + /* If mem_free or mem_trim have run, we have to restart since they + could have altered our current struct mem or lfree. */ + goto mem_malloc_adjust_lfree; + } +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + cur = ptr_to_mem(cur->next); + } + lfree = cur; + LWIP_ASSERT("mem_malloc: !lfree->used", ((lfree == ram_end) || (!lfree->used))); + } + LWIP_MEM_ALLOC_UNPROTECT(); + sys_mutex_unlock(&mem_mutex); + LWIP_ASSERT("mem_malloc: allocated memory not above ram_end.", + (mem_ptr_t)mem + SIZEOF_STRUCT_MEM + size <= (mem_ptr_t)ram_end); + LWIP_ASSERT("mem_malloc: allocated memory properly aligned.", + ((mem_ptr_t)mem + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT == 0); + LWIP_ASSERT("mem_malloc: sanity check alignment", + (((mem_ptr_t)mem) & (MEM_ALIGNMENT - 1)) == 0); + +#if MEM_OVERFLOW_CHECK + mem_overflow_init_element(mem, size_in); +#endif + MEM_SANITY(); + return (u8_t *)mem + SIZEOF_STRUCT_MEM + MEM_SANITY_OFFSET; + } + } +#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT + /* if we got interrupted by a mem_free, try again */ + } while (local_mem_free_count != 0); +#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ + MEM_STATS_INC(err); + LWIP_MEM_ALLOC_UNPROTECT(); + sys_mutex_unlock(&mem_mutex); + LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mem_malloc: could not allocate %"S16_F" bytes\n", (s16_t)size)); + return NULL; +} + +#endif /* MEM_USE_POOLS */ + +#if MEM_LIBC_MALLOC && (!LWIP_STATS || !MEM_STATS) +void * +mem_calloc(mem_size_t count, mem_size_t size) +{ + return mem_clib_calloc(count, size); +} + +#else /* MEM_LIBC_MALLOC && (!LWIP_STATS || !MEM_STATS) */ +/** + * Contiguously allocates enough space for count objects that are size bytes + * of memory each and returns a pointer to the allocated memory. + * + * The allocated memory is filled with bytes of value zero. + * + * @param count number of objects to allocate + * @param size size of the objects to allocate + * @return pointer to allocated memory / NULL pointer if there is an error + */ +void * +mem_calloc(mem_size_t count, mem_size_t size) +{ + void *p; + size_t alloc_size = (size_t)count * (size_t)size; + + if ((size_t)(mem_size_t)alloc_size != alloc_size) { + LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mem_calloc: could not allocate %"SZT_F" bytes\n", alloc_size)); + return NULL; + } + + /* allocate 'count' objects of size 'size' */ + p = mem_malloc((mem_size_t)alloc_size); + if (p) { + /* zero the memory */ + memset(p, 0, alloc_size); + } + return p; +} +#endif /* MEM_LIBC_MALLOC && (!LWIP_STATS || !MEM_STATS) */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/memp.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/memp.c new file mode 100644 index 000000000..18771f623 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/memp.c @@ -0,0 +1,447 @@ +/** + * @file + * Dynamic pool memory manager + * + * lwIP has dedicated pools for many structures (netconn, protocol control blocks, + * packet buffers, ...). All these pools are managed here. + * + * @defgroup mempool Memory pools + * @ingroup infrastructure + * Custom memory pools + + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#include "lwip/memp.h" +#include "lwip/sys.h" +#include "lwip/stats.h" + +#include + +/* Make sure we include everything we need for size calculation required by memp_std.h */ +#include "lwip/pbuf.h" +#include "lwip/raw.h" +#include "lwip/udp.h" +#include "lwip/tcp.h" +#include "lwip/priv/tcp_priv.h" +#include "lwip/altcp.h" +#include "lwip/ip4_frag.h" +#include "lwip/netbuf.h" +#include "lwip/api.h" +#include "lwip/priv/tcpip_priv.h" +#include "lwip/priv/api_msg.h" +#include "lwip/priv/sockets_priv.h" +#include "lwip/etharp.h" +#include "lwip/igmp.h" +#include "lwip/timeouts.h" +/* needed by default MEMP_NUM_SYS_TIMEOUT */ +#include "netif/ppp/ppp_opts.h" +#include "lwip/netdb.h" +#include "lwip/dns.h" +#include "lwip/priv/nd6_priv.h" +#include "lwip/ip6_frag.h" +#include "lwip/mld6.h" + +#define LWIP_MEMPOOL(name,num,size,desc) LWIP_MEMPOOL_DECLARE(name,num,size,desc) +#include "lwip/priv/memp_std.h" + +const struct memp_desc *const memp_pools[MEMP_MAX] = { +#define LWIP_MEMPOOL(name,num,size,desc) &memp_ ## name, +#include "lwip/priv/memp_std.h" +}; + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +#if MEMP_MEM_MALLOC && MEMP_OVERFLOW_CHECK >= 2 +#undef MEMP_OVERFLOW_CHECK +/* MEMP_OVERFLOW_CHECK >= 2 does not work with MEMP_MEM_MALLOC, use 1 instead */ +#define MEMP_OVERFLOW_CHECK 1 +#endif + +#if MEMP_SANITY_CHECK && !MEMP_MEM_MALLOC +/** + * Check that memp-lists don't form a circle, using "Floyd's cycle-finding algorithm". + */ +static int +memp_sanity(const struct memp_desc *desc) +{ + struct memp *t, *h; + + t = *desc->tab; + if (t != NULL) { + for (h = t->next; (t != NULL) && (h != NULL); t = t->next, + h = ((h->next != NULL) ? h->next->next : NULL)) { + if (t == h) { + return 0; + } + } + } + + return 1; +} +#endif /* MEMP_SANITY_CHECK && !MEMP_MEM_MALLOC */ + +#if MEMP_OVERFLOW_CHECK +/** + * Check if a memp element was victim of an overflow or underflow + * (e.g. the restricted area after/before it has been altered) + * + * @param p the memp element to check + * @param desc the pool p comes from + */ +static void +memp_overflow_check_element(struct memp *p, const struct memp_desc *desc) +{ + mem_overflow_check_raw((u8_t *)p + MEMP_SIZE, desc->size, "pool ", desc->desc); +} + +/** + * Initialize the restricted area of on memp element. + */ +static void +memp_overflow_init_element(struct memp *p, const struct memp_desc *desc) +{ + mem_overflow_init_raw((u8_t *)p + MEMP_SIZE, desc->size); +} + +#if MEMP_OVERFLOW_CHECK >= 2 +/** + * Do an overflow check for all elements in every pool. + * + * @see memp_overflow_check_element for a description of the check + */ +static void +memp_overflow_check_all(void) +{ + u16_t i, j; + struct memp *p; + SYS_ARCH_DECL_PROTECT(old_level); + SYS_ARCH_PROTECT(old_level); + + for (i = 0; i < MEMP_MAX; ++i) { + p = (struct memp *)LWIP_MEM_ALIGN(memp_pools[i]->base); + for (j = 0; j < memp_pools[i]->num; ++j) { + memp_overflow_check_element(p, memp_pools[i]); + p = LWIP_ALIGNMENT_CAST(struct memp *, ((u8_t *)p + MEMP_SIZE + memp_pools[i]->size + MEM_SANITY_REGION_AFTER_ALIGNED)); + } + } + SYS_ARCH_UNPROTECT(old_level); +} +#endif /* MEMP_OVERFLOW_CHECK >= 2 */ +#endif /* MEMP_OVERFLOW_CHECK */ + +/** + * Initialize custom memory pool. + * Related functions: memp_malloc_pool, memp_free_pool + * + * @param desc pool to initialize + */ +void +memp_init_pool(const struct memp_desc *desc) +{ +#if MEMP_MEM_MALLOC + LWIP_UNUSED_ARG(desc); +#else + int i; + struct memp *memp; + + *desc->tab = NULL; + memp = (struct memp *)LWIP_MEM_ALIGN(desc->base); +#if MEMP_MEM_INIT + /* force memset on pool memory */ + memset(memp, 0, (size_t)desc->num * (MEMP_SIZE + desc->size +#if MEMP_OVERFLOW_CHECK + + MEM_SANITY_REGION_AFTER_ALIGNED +#endif + )); +#endif + /* create a linked list of memp elements */ + for (i = 0; i < desc->num; ++i) { + memp->next = *desc->tab; + *desc->tab = memp; +#if MEMP_OVERFLOW_CHECK + memp_overflow_init_element(memp, desc); +#endif /* MEMP_OVERFLOW_CHECK */ + /* cast through void* to get rid of alignment warnings */ + memp = (struct memp *)(void *)((u8_t *)memp + MEMP_SIZE + desc->size +#if MEMP_OVERFLOW_CHECK + + MEM_SANITY_REGION_AFTER_ALIGNED +#endif + ); + } +#if MEMP_STATS + desc->stats->avail = desc->num; +#endif /* MEMP_STATS */ +#endif /* !MEMP_MEM_MALLOC */ + +#if MEMP_STATS && (defined(LWIP_DEBUG) || LWIP_STATS_DISPLAY) + desc->stats->name = desc->desc; +#endif /* MEMP_STATS && (defined(LWIP_DEBUG) || LWIP_STATS_DISPLAY) */ +} + +/** + * Initializes lwIP built-in pools. + * Related functions: memp_malloc, memp_free + * + * Carves out memp_memory into linked lists for each pool-type. + */ +void +memp_init(void) +{ + u16_t i; + + /* for every pool: */ + for (i = 0; i < LWIP_ARRAYSIZE(memp_pools); i++) { + memp_init_pool(memp_pools[i]); + +#if LWIP_STATS && MEMP_STATS + lwip_stats.memp[i] = memp_pools[i]->stats; +#endif + } + +#if MEMP_OVERFLOW_CHECK >= 2 + /* check everything a first time to see if it worked */ + memp_overflow_check_all(); +#endif /* MEMP_OVERFLOW_CHECK >= 2 */ +} + +static void * +#if !MEMP_OVERFLOW_CHECK +do_memp_malloc_pool(const struct memp_desc *desc) +#else +do_memp_malloc_pool_fn(const struct memp_desc *desc, const char *file, const int line) +#endif +{ + struct memp *memp; + SYS_ARCH_DECL_PROTECT(old_level); + +#if MEMP_MEM_MALLOC + memp = (struct memp *)mem_malloc(MEMP_SIZE + MEMP_ALIGN_SIZE(desc->size)); + SYS_ARCH_PROTECT(old_level); +#else /* MEMP_MEM_MALLOC */ + SYS_ARCH_PROTECT(old_level); + + memp = *desc->tab; +#endif /* MEMP_MEM_MALLOC */ + + if (memp != NULL) { +#if !MEMP_MEM_MALLOC +#if MEMP_OVERFLOW_CHECK == 1 + memp_overflow_check_element(memp, desc); +#endif /* MEMP_OVERFLOW_CHECK */ + + *desc->tab = memp->next; +#if MEMP_OVERFLOW_CHECK + memp->next = NULL; +#endif /* MEMP_OVERFLOW_CHECK */ +#endif /* !MEMP_MEM_MALLOC */ +#if MEMP_OVERFLOW_CHECK + memp->file = file; + memp->line = line; +#if MEMP_MEM_MALLOC + memp_overflow_init_element(memp, desc); +#endif /* MEMP_MEM_MALLOC */ +#endif /* MEMP_OVERFLOW_CHECK */ + LWIP_ASSERT("memp_malloc: memp properly aligned", + ((mem_ptr_t)memp % MEM_ALIGNMENT) == 0); +#if MEMP_STATS + desc->stats->used++; + if (desc->stats->used > desc->stats->max) { + desc->stats->max = desc->stats->used; + } +#endif + SYS_ARCH_UNPROTECT(old_level); + /* cast through u8_t* to get rid of alignment warnings */ + return ((u8_t *)memp + MEMP_SIZE); + } else { +#if MEMP_STATS + desc->stats->err++; +#endif + SYS_ARCH_UNPROTECT(old_level); + LWIP_DEBUGF(MEMP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("memp_malloc: out of memory in pool %s\n", desc->desc)); + } + + return NULL; +} + +/** + * Get an element from a custom pool. + * + * @param desc the pool to get an element from + * + * @return a pointer to the allocated memory or a NULL pointer on error + */ +void * +#if !MEMP_OVERFLOW_CHECK +memp_malloc_pool(const struct memp_desc *desc) +#else +memp_malloc_pool_fn(const struct memp_desc *desc, const char *file, const int line) +#endif +{ + LWIP_ASSERT("invalid pool desc", desc != NULL); + if (desc == NULL) { + return NULL; + } + +#if !MEMP_OVERFLOW_CHECK + return do_memp_malloc_pool(desc); +#else + return do_memp_malloc_pool_fn(desc, file, line); +#endif +} + +/** + * Get an element from a specific pool. + * + * @param type the pool to get an element from + * + * @return a pointer to the allocated memory or a NULL pointer on error + */ +void * +#if !MEMP_OVERFLOW_CHECK +memp_malloc(memp_t type) +#else +memp_malloc_fn(memp_t type, const char *file, const int line) +#endif +{ + void *memp; + LWIP_ERROR("memp_malloc: type < MEMP_MAX", (type < MEMP_MAX), return NULL;); + +#if MEMP_OVERFLOW_CHECK >= 2 + memp_overflow_check_all(); +#endif /* MEMP_OVERFLOW_CHECK >= 2 */ + +#if !MEMP_OVERFLOW_CHECK + memp = do_memp_malloc_pool(memp_pools[type]); +#else + memp = do_memp_malloc_pool_fn(memp_pools[type], file, line); +#endif + + return memp; +} + +static void +do_memp_free_pool(const struct memp_desc *desc, void *mem) +{ + struct memp *memp; + SYS_ARCH_DECL_PROTECT(old_level); + + LWIP_ASSERT("memp_free: mem properly aligned", + ((mem_ptr_t)mem % MEM_ALIGNMENT) == 0); + + /* cast through void* to get rid of alignment warnings */ + memp = (struct memp *)(void *)((u8_t *)mem - MEMP_SIZE); + + SYS_ARCH_PROTECT(old_level); + +#if MEMP_OVERFLOW_CHECK == 1 + memp_overflow_check_element(memp, desc); +#endif /* MEMP_OVERFLOW_CHECK */ + +#if MEMP_STATS + desc->stats->used--; +#endif + +#if MEMP_MEM_MALLOC + LWIP_UNUSED_ARG(desc); + SYS_ARCH_UNPROTECT(old_level); + mem_free(memp); +#else /* MEMP_MEM_MALLOC */ + memp->next = *desc->tab; + *desc->tab = memp; + +#if MEMP_SANITY_CHECK + LWIP_ASSERT("memp sanity", memp_sanity(desc)); +#endif /* MEMP_SANITY_CHECK */ + + SYS_ARCH_UNPROTECT(old_level); +#endif /* !MEMP_MEM_MALLOC */ +} + +/** + * Put a custom pool element back into its pool. + * + * @param desc the pool where to put mem + * @param mem the memp element to free + */ +void +memp_free_pool(const struct memp_desc *desc, void *mem) +{ + LWIP_ASSERT("invalid pool desc", desc != NULL); + if ((desc == NULL) || (mem == NULL)) { + return; + } + + do_memp_free_pool(desc, mem); +} + +/** + * Put an element back into its pool. + * + * @param type the pool where to put mem + * @param mem the memp element to free + */ +void +memp_free(memp_t type, void *mem) +{ +#ifdef LWIP_HOOK_MEMP_AVAILABLE + struct memp *old_first; +#endif + + LWIP_ERROR("memp_free: type < MEMP_MAX", (type < MEMP_MAX), return;); + + if (mem == NULL) { + return; + } + +#if MEMP_OVERFLOW_CHECK >= 2 + memp_overflow_check_all(); +#endif /* MEMP_OVERFLOW_CHECK >= 2 */ + +#ifdef LWIP_HOOK_MEMP_AVAILABLE + old_first = *memp_pools[type]->tab; +#endif + + do_memp_free_pool(memp_pools[type], mem); + +#ifdef LWIP_HOOK_MEMP_AVAILABLE + if (old_first == NULL) { + LWIP_HOOK_MEMP_AVAILABLE(type); + } +#endif +} diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/netif.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/netif.c new file mode 100644 index 000000000..a19018c88 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/netif.c @@ -0,0 +1,1795 @@ +/** + * @file + * lwIP network interface abstraction + * + * @defgroup netif Network interface (NETIF) + * @ingroup callbackstyle_api + * + * @defgroup netif_ip4 IPv4 address handling + * @ingroup netif + * + * @defgroup netif_ip6 IPv6 address handling + * @ingroup netif + * + * @defgroup netif_cd Client data handling + * Store data (void*) on a netif for application usage. + * @see @ref LWIP_NUM_NETIF_CLIENT_DATA + * @ingroup netif + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + */ + +#include "lwip/opt.h" + +#include /* memset */ +#include /* atoi */ + +#include "lwip/def.h" +#include "lwip/ip_addr.h" +#include "lwip/ip6_addr.h" +#include "lwip/netif.h" +#include "lwip/priv/tcp_priv.h" +#include "lwip/udp.h" +#include "lwip/priv/raw_priv.h" +#include "lwip/snmp.h" +#include "lwip/igmp.h" +#include "lwip/etharp.h" +#include "lwip/stats.h" +#include "lwip/sys.h" +#include "lwip/ip.h" +#if ENABLE_LOOPBACK +#if LWIP_NETIF_LOOPBACK_MULTITHREADING +#include "lwip/tcpip.h" +#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */ +#endif /* ENABLE_LOOPBACK */ + +#include "netif/ethernet.h" + +#if LWIP_AUTOIP +#include "lwip/autoip.h" +#endif /* LWIP_AUTOIP */ +#if LWIP_DHCP +#include "lwip/dhcp.h" +#endif /* LWIP_DHCP */ +#if LWIP_IPV6_DHCP6 +#include "lwip/dhcp6.h" +#endif /* LWIP_IPV6_DHCP6 */ +#if LWIP_IPV6_MLD +#include "lwip/mld6.h" +#endif /* LWIP_IPV6_MLD */ +#if LWIP_IPV6 +#include "lwip/nd6.h" +#endif + +#if LWIP_NETIF_STATUS_CALLBACK +#define NETIF_STATUS_CALLBACK(n) do{ if (n->status_callback) { (n->status_callback)(n); }}while(0) +#else +#define NETIF_STATUS_CALLBACK(n) +#endif /* LWIP_NETIF_STATUS_CALLBACK */ + +#if LWIP_NETIF_LINK_CALLBACK +#define NETIF_LINK_CALLBACK(n) do{ if (n->link_callback) { (n->link_callback)(n); }}while(0) +#else +#define NETIF_LINK_CALLBACK(n) +#endif /* LWIP_NETIF_LINK_CALLBACK */ + +#if LWIP_NETIF_EXT_STATUS_CALLBACK +static netif_ext_callback_t *ext_callback; +#endif + +#if !LWIP_SINGLE_NETIF +struct netif *netif_list; +#endif /* !LWIP_SINGLE_NETIF */ +struct netif *netif_default; + +#define netif_index_to_num(index) ((index) - 1) +static u8_t netif_num; + +#if LWIP_NUM_NETIF_CLIENT_DATA > 0 +static u8_t netif_client_id; +#endif + +#define NETIF_REPORT_TYPE_IPV4 0x01 +#define NETIF_REPORT_TYPE_IPV6 0x02 +static void netif_issue_reports(struct netif *netif, u8_t report_type); + +#if LWIP_IPV6 +static err_t netif_null_output_ip6(struct netif *netif, struct pbuf *p, const ip6_addr_t *ipaddr); +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 +static err_t netif_null_output_ip4(struct netif *netif, struct pbuf *p, const ip4_addr_t *ipaddr); +#endif /* LWIP_IPV4 */ + +#if LWIP_HAVE_LOOPIF +#if LWIP_IPV4 +static err_t netif_loop_output_ipv4(struct netif *netif, struct pbuf *p, const ip4_addr_t *addr); +#endif +#if LWIP_IPV6 +static err_t netif_loop_output_ipv6(struct netif *netif, struct pbuf *p, const ip6_addr_t *addr); +#endif + + +static struct netif loop_netif; + +/** + * Initialize a lwip network interface structure for a loopback interface + * + * @param netif the lwip network interface structure for this loopif + * @return ERR_OK if the loopif is initialized + * ERR_MEM if private data couldn't be allocated + */ +static err_t +netif_loopif_init(struct netif *netif) +{ + LWIP_ASSERT("netif_loopif_init: invalid netif", netif != NULL); + + /* initialize the snmp variables and counters inside the struct netif + * ifSpeed: no assumption can be made! + */ + MIB2_INIT_NETIF(netif, snmp_ifType_softwareLoopback, 0); + + netif->name[0] = 'l'; + netif->name[1] = 'o'; +#if LWIP_IPV4 + netif->output = netif_loop_output_ipv4; +#endif +#if LWIP_IPV6 + netif->output_ip6 = netif_loop_output_ipv6; +#endif +#if LWIP_LOOPIF_MULTICAST + netif_set_flags(netif, NETIF_FLAG_IGMP); +#endif + NETIF_SET_CHECKSUM_CTRL(netif, NETIF_CHECKSUM_DISABLE_ALL); + return ERR_OK; +} +#endif /* LWIP_HAVE_LOOPIF */ + +void +netif_init(void) +{ +#if LWIP_HAVE_LOOPIF +#if LWIP_IPV4 +#define LOOPIF_ADDRINIT &loop_ipaddr, &loop_netmask, &loop_gw, + ip4_addr_t loop_ipaddr, loop_netmask, loop_gw; + IP4_ADDR(&loop_gw, 127, 0, 0, 1); + IP4_ADDR(&loop_ipaddr, 127, 0, 0, 1); + IP4_ADDR(&loop_netmask, 255, 0, 0, 0); +#else /* LWIP_IPV4 */ +#define LOOPIF_ADDRINIT +#endif /* LWIP_IPV4 */ + +#if NO_SYS + netif_add(&loop_netif, LOOPIF_ADDRINIT NULL, netif_loopif_init, ip_input); +#else /* NO_SYS */ + netif_add(&loop_netif, LOOPIF_ADDRINIT NULL, netif_loopif_init, tcpip_input); +#endif /* NO_SYS */ + +#if LWIP_IPV6 + IP_ADDR6_HOST(loop_netif.ip6_addr, 0, 0, 0, 0x00000001UL); + loop_netif.ip6_addr_state[0] = IP6_ADDR_VALID; +#endif /* LWIP_IPV6 */ + + netif_set_link_up(&loop_netif); + netif_set_up(&loop_netif); + +#endif /* LWIP_HAVE_LOOPIF */ +} + +/** + * @ingroup lwip_nosys + * Forwards a received packet for input processing with + * ethernet_input() or ip_input() depending on netif flags. + * Don't call directly, pass to netif_add() and call + * netif->input(). + * Only works if the netif driver correctly sets + * NETIF_FLAG_ETHARP and/or NETIF_FLAG_ETHERNET flag! + */ +err_t +netif_input(struct pbuf *p, struct netif *inp) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ASSERT("netif_input: invalid pbuf", p != NULL); + LWIP_ASSERT("netif_input: invalid netif", inp != NULL); + +#if LWIP_ETHERNET + if (inp->flags & (NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET)) { + return ethernet_input(p, inp); + } else +#endif /* LWIP_ETHERNET */ + return ip_input(p, inp); +} + +/** + * @ingroup netif + * Add a network interface to the list of lwIP netifs. + * + * Same as @ref netif_add but without IPv4 addresses + */ +struct netif * +netif_add_noaddr(struct netif *netif, void *state, netif_init_fn init, netif_input_fn input) +{ + return netif_add(netif, +#if LWIP_IPV4 + NULL, NULL, NULL, +#endif /* LWIP_IPV4*/ + state, init, input); +} + +/** + * @ingroup netif + * Add a network interface to the list of lwIP netifs. + * + * @param netif a pre-allocated netif structure + * @param ipaddr IP address for the new netif + * @param netmask network mask for the new netif + * @param gw default gateway IP address for the new netif + * @param state opaque data passed to the new netif + * @param init callback function that initializes the interface + * @param input callback function that is called to pass + * ingress packets up in the protocol layer stack.\n + * It is recommended to use a function that passes the input directly + * to the stack (netif_input(), NO_SYS=1 mode) or via sending a + * message to TCPIP thread (tcpip_input(), NO_SYS=0 mode).\n + * These functions use netif flags NETIF_FLAG_ETHARP and NETIF_FLAG_ETHERNET + * to decide whether to forward to ethernet_input() or ip_input(). + * In other words, the functions only work when the netif + * driver is implemented correctly!\n + * Most members of struct netif should be be initialized by the + * netif init function = netif driver (init parameter of this function).\n + * IPv6: Don't forget to call netif_create_ip6_linklocal_address() after + * setting the MAC address in struct netif.hwaddr + * (IPv6 requires a link-local address). + * + * @return netif, or NULL if failed. + */ +struct netif * +netif_add(struct netif *netif, +#if LWIP_IPV4 + const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw, +#endif /* LWIP_IPV4 */ + void *state, netif_init_fn init, netif_input_fn input) +{ +#if LWIP_IPV6 + s8_t i; +#endif + + LWIP_ASSERT_CORE_LOCKED(); + +#if LWIP_SINGLE_NETIF + if (netif_default != NULL) { + LWIP_ASSERT("single netif already set", 0); + return NULL; + } +#endif + + LWIP_ERROR("netif_add: invalid netif", netif != NULL, return NULL); + LWIP_ERROR("netif_add: No init function given", init != NULL, return NULL); + +#if LWIP_IPV4 + if (ipaddr == NULL) { + ipaddr = ip_2_ip4(IP4_ADDR_ANY); + } + if (netmask == NULL) { + netmask = ip_2_ip4(IP4_ADDR_ANY); + } + if (gw == NULL) { + gw = ip_2_ip4(IP4_ADDR_ANY); + } + + /* reset new interface configuration state */ + ip_addr_set_zero_ip4(&netif->ip_addr); + ip_addr_set_zero_ip4(&netif->netmask); + ip_addr_set_zero_ip4(&netif->gw); + netif->output = netif_null_output_ip4; +#endif /* LWIP_IPV4 */ +#if LWIP_IPV6 + for (i = 0; i < LWIP_IPV6_NUM_ADDRESSES; i++) { + ip_addr_set_zero_ip6(&netif->ip6_addr[i]); + netif->ip6_addr_state[i] = IP6_ADDR_INVALID; +#if LWIP_IPV6_ADDRESS_LIFETIMES + netif->ip6_addr_valid_life[i] = IP6_ADDR_LIFE_STATIC; + netif->ip6_addr_pref_life[i] = IP6_ADDR_LIFE_STATIC; +#endif /* LWIP_IPV6_ADDRESS_LIFETIMES */ + } + netif->output_ip6 = netif_null_output_ip6; +#endif /* LWIP_IPV6 */ + NETIF_SET_CHECKSUM_CTRL(netif, NETIF_CHECKSUM_ENABLE_ALL); + netif->mtu = 0; + netif->flags = 0; +#ifdef netif_get_client_data + memset(netif->client_data, 0, sizeof(netif->client_data)); +#endif /* LWIP_NUM_NETIF_CLIENT_DATA */ +#if LWIP_IPV6 +#if LWIP_IPV6_AUTOCONFIG + /* IPv6 address autoconfiguration not enabled by default */ + netif->ip6_autoconfig_enabled = 0; +#endif /* LWIP_IPV6_AUTOCONFIG */ + nd6_restart_netif(netif); +#endif /* LWIP_IPV6 */ +#if LWIP_NETIF_STATUS_CALLBACK + netif->status_callback = NULL; +#endif /* LWIP_NETIF_STATUS_CALLBACK */ +#if LWIP_NETIF_LINK_CALLBACK + netif->link_callback = NULL; +#endif /* LWIP_NETIF_LINK_CALLBACK */ +#if LWIP_IGMP + netif->igmp_mac_filter = NULL; +#endif /* LWIP_IGMP */ +#if LWIP_IPV6 && LWIP_IPV6_MLD + netif->mld_mac_filter = NULL; +#endif /* LWIP_IPV6 && LWIP_IPV6_MLD */ +#if ENABLE_LOOPBACK + netif->loop_first = NULL; + netif->loop_last = NULL; +#endif /* ENABLE_LOOPBACK */ + + /* remember netif specific state information data */ + netif->state = state; + netif->num = netif_num; + netif->input = input; + + NETIF_RESET_HINTS(netif); +#if ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS + netif->loop_cnt_current = 0; +#endif /* ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS */ + +#if LWIP_IPV4 + netif_set_addr(netif, ipaddr, netmask, gw); +#endif /* LWIP_IPV4 */ + + /* call user specified initialization function for netif */ + if (init(netif) != ERR_OK) { + return NULL; + } +#if LWIP_IPV6 && LWIP_ND6_ALLOW_RA_UPDATES + /* Initialize the MTU for IPv6 to the one set by the netif driver. + This can be updated later by RA. */ + netif->mtu6 = netif->mtu; +#endif /* LWIP_IPV6 && LWIP_ND6_ALLOW_RA_UPDATES */ + +#if !LWIP_SINGLE_NETIF + /* Assign a unique netif number in the range [0..254], so that (num+1) can + serve as an interface index that fits in a u8_t. + We assume that the new netif has not yet been added to the list here. + This algorithm is O(n^2), but that should be OK for lwIP. + */ + { + struct netif *netif2; + int num_netifs; + do { + if (netif->num == 255) { + netif->num = 0; + } + num_netifs = 0; + for (netif2 = netif_list; netif2 != NULL; netif2 = netif2->next) { + LWIP_ASSERT("netif already added", netif2 != netif); + num_netifs++; + LWIP_ASSERT("too many netifs, max. supported number is 255", num_netifs <= 255); + if (netif2->num == netif->num) { + netif->num++; + break; + } + } + } while (netif2 != NULL); + } + if (netif->num == 254) { + netif_num = 0; + } else { + netif_num = (u8_t)(netif->num + 1); + } + + /* add this netif to the list */ + netif->next = netif_list; + netif_list = netif; +#endif /* "LWIP_SINGLE_NETIF */ + mib2_netif_added(netif); + +#if LWIP_IGMP + /* start IGMP processing */ + if (netif->flags & NETIF_FLAG_IGMP) { + igmp_start(netif); + } +#endif /* LWIP_IGMP */ + + LWIP_DEBUGF(NETIF_DEBUG, ("netif: added interface %c%c IP", + netif->name[0], netif->name[1])); +#if LWIP_IPV4 + LWIP_DEBUGF(NETIF_DEBUG, (" addr ")); + ip4_addr_debug_print(NETIF_DEBUG, ipaddr); + LWIP_DEBUGF(NETIF_DEBUG, (" netmask ")); + ip4_addr_debug_print(NETIF_DEBUG, netmask); + LWIP_DEBUGF(NETIF_DEBUG, (" gw ")); + ip4_addr_debug_print(NETIF_DEBUG, gw); +#endif /* LWIP_IPV4 */ + LWIP_DEBUGF(NETIF_DEBUG, ("\n")); + + netif_invoke_ext_callback(netif, LWIP_NSC_NETIF_ADDED, NULL); + + return netif; +} + +static void +netif_do_ip_addr_changed(const ip_addr_t *old_addr, const ip_addr_t *new_addr) +{ +#if LWIP_TCP + tcp_netif_ip_addr_changed(old_addr, new_addr); +#endif /* LWIP_TCP */ +#if LWIP_UDP + udp_netif_ip_addr_changed(old_addr, new_addr); +#endif /* LWIP_UDP */ +#if LWIP_RAW + raw_netif_ip_addr_changed(old_addr, new_addr); +#endif /* LWIP_RAW */ +} + +#if LWIP_IPV4 +static int +netif_do_set_ipaddr(struct netif *netif, const ip4_addr_t *ipaddr, ip_addr_t *old_addr) +{ + LWIP_ASSERT("invalid pointer", ipaddr != NULL); + LWIP_ASSERT("invalid pointer", old_addr != NULL); + + /* address is actually being changed? */ + if (ip4_addr_cmp(ipaddr, netif_ip4_addr(netif)) == 0) { + ip_addr_t new_addr; + *ip_2_ip4(&new_addr) = *ipaddr; + IP_SET_TYPE_VAL(new_addr, IPADDR_TYPE_V4); + + ip_addr_copy(*old_addr, *netif_ip_addr4(netif)); + + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_set_ipaddr: netif address being changed\n")); + netif_do_ip_addr_changed(old_addr, &new_addr); + + mib2_remove_ip4(netif); + mib2_remove_route_ip4(0, netif); + /* set new IP address to netif */ + ip4_addr_set(ip_2_ip4(&netif->ip_addr), ipaddr); + IP_SET_TYPE_VAL(netif->ip_addr, IPADDR_TYPE_V4); + mib2_add_ip4(netif); + mib2_add_route_ip4(0, netif); + + netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV4); + + NETIF_STATUS_CALLBACK(netif); + return 1; /* address changed */ + } + return 0; /* address unchanged */ +} + +/** + * @ingroup netif_ip4 + * Change the IP address of a network interface + * + * @param netif the network interface to change + * @param ipaddr the new IP address + * + * @note call netif_set_addr() if you also want to change netmask and + * default gateway + */ +void +netif_set_ipaddr(struct netif *netif, const ip4_addr_t *ipaddr) +{ + ip_addr_t old_addr; + + LWIP_ERROR("netif_set_ipaddr: invalid netif", netif != NULL, return); + + /* Don't propagate NULL pointer (IPv4 ANY) to subsequent functions */ + if (ipaddr == NULL) { + ipaddr = IP4_ADDR_ANY4; + } + + LWIP_ASSERT_CORE_LOCKED(); + + if (netif_do_set_ipaddr(netif, ipaddr, &old_addr)) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + netif_ext_callback_args_t args; + args.ipv4_changed.old_address = &old_addr; + netif_invoke_ext_callback(netif, LWIP_NSC_IPV4_ADDRESS_CHANGED, &args); +#endif + } +} + +static int +netif_do_set_netmask(struct netif *netif, const ip4_addr_t *netmask, ip_addr_t *old_nm) +{ + /* address is actually being changed? */ + if (ip4_addr_cmp(netmask, netif_ip4_netmask(netif)) == 0) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + LWIP_ASSERT("invalid pointer", old_nm != NULL); + ip_addr_copy(*old_nm, *netif_ip_netmask4(netif)); +#else + LWIP_UNUSED_ARG(old_nm); +#endif + mib2_remove_route_ip4(0, netif); + /* set new netmask to netif */ + ip4_addr_set(ip_2_ip4(&netif->netmask), netmask); + IP_SET_TYPE_VAL(netif->netmask, IPADDR_TYPE_V4); + mib2_add_route_ip4(0, netif); + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("netif: netmask of interface %c%c set to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + netif->name[0], netif->name[1], + ip4_addr1_16(netif_ip4_netmask(netif)), + ip4_addr2_16(netif_ip4_netmask(netif)), + ip4_addr3_16(netif_ip4_netmask(netif)), + ip4_addr4_16(netif_ip4_netmask(netif)))); + return 1; /* netmask changed */ + } + return 0; /* netmask unchanged */ +} + +/** + * @ingroup netif_ip4 + * Change the netmask of a network interface + * + * @param netif the network interface to change + * @param netmask the new netmask + * + * @note call netif_set_addr() if you also want to change ip address and + * default gateway + */ +void +netif_set_netmask(struct netif *netif, const ip4_addr_t *netmask) +{ +#if LWIP_NETIF_EXT_STATUS_CALLBACK + ip_addr_t old_nm_val; + ip_addr_t *old_nm = &old_nm_val; +#else + ip_addr_t *old_nm = NULL; +#endif + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("netif_set_netmask: invalid netif", netif != NULL, return); + + /* Don't propagate NULL pointer (IPv4 ANY) to subsequent functions */ + if (netmask == NULL) { + netmask = IP4_ADDR_ANY4; + } + + if (netif_do_set_netmask(netif, netmask, old_nm)) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + netif_ext_callback_args_t args; + args.ipv4_changed.old_netmask = old_nm; + netif_invoke_ext_callback(netif, LWIP_NSC_IPV4_NETMASK_CHANGED, &args); +#endif + } +} + +static int +netif_do_set_gw(struct netif *netif, const ip4_addr_t *gw, ip_addr_t *old_gw) +{ + /* address is actually being changed? */ + if (ip4_addr_cmp(gw, netif_ip4_gw(netif)) == 0) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + LWIP_ASSERT("invalid pointer", old_gw != NULL); + ip_addr_copy(*old_gw, *netif_ip_gw4(netif)); +#else + LWIP_UNUSED_ARG(old_gw); +#endif + + ip4_addr_set(ip_2_ip4(&netif->gw), gw); + IP_SET_TYPE_VAL(netif->gw, IPADDR_TYPE_V4); + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("netif: GW address of interface %c%c set to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", + netif->name[0], netif->name[1], + ip4_addr1_16(netif_ip4_gw(netif)), + ip4_addr2_16(netif_ip4_gw(netif)), + ip4_addr3_16(netif_ip4_gw(netif)), + ip4_addr4_16(netif_ip4_gw(netif)))); + return 1; /* gateway changed */ + } + return 0; /* gateway unchanged */ +} + +/** + * @ingroup netif_ip4 + * Change the default gateway for a network interface + * + * @param netif the network interface to change + * @param gw the new default gateway + * + * @note call netif_set_addr() if you also want to change ip address and netmask + */ +void +netif_set_gw(struct netif *netif, const ip4_addr_t *gw) +{ +#if LWIP_NETIF_EXT_STATUS_CALLBACK + ip_addr_t old_gw_val; + ip_addr_t *old_gw = &old_gw_val; +#else + ip_addr_t *old_gw = NULL; +#endif + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("netif_set_gw: invalid netif", netif != NULL, return); + + /* Don't propagate NULL pointer (IPv4 ANY) to subsequent functions */ + if (gw == NULL) { + gw = IP4_ADDR_ANY4; + } + + if (netif_do_set_gw(netif, gw, old_gw)) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + netif_ext_callback_args_t args; + args.ipv4_changed.old_gw = old_gw; + netif_invoke_ext_callback(netif, LWIP_NSC_IPV4_GATEWAY_CHANGED, &args); +#endif + } +} + +/** + * @ingroup netif_ip4 + * Change IP address configuration for a network interface (including netmask + * and default gateway). + * + * @param netif the network interface to change + * @param ipaddr the new IP address + * @param netmask the new netmask + * @param gw the new default gateway + */ +void +netif_set_addr(struct netif *netif, const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, + const ip4_addr_t *gw) +{ +#if LWIP_NETIF_EXT_STATUS_CALLBACK + netif_nsc_reason_t change_reason = LWIP_NSC_NONE; + netif_ext_callback_args_t cb_args; + ip_addr_t old_nm_val; + ip_addr_t old_gw_val; + ip_addr_t *old_nm = &old_nm_val; + ip_addr_t *old_gw = &old_gw_val; +#else + ip_addr_t *old_nm = NULL; + ip_addr_t *old_gw = NULL; +#endif + ip_addr_t old_addr; + int remove; + + LWIP_ASSERT_CORE_LOCKED(); + + /* Don't propagate NULL pointer (IPv4 ANY) to subsequent functions */ + if (ipaddr == NULL) { + ipaddr = IP4_ADDR_ANY4; + } + if (netmask == NULL) { + netmask = IP4_ADDR_ANY4; + } + if (gw == NULL) { + gw = IP4_ADDR_ANY4; + } + + remove = ip4_addr_isany(ipaddr); + if (remove) { + /* when removing an address, we have to remove it *before* changing netmask/gw + to ensure that tcp RST segment can be sent correctly */ + if (netif_do_set_ipaddr(netif, ipaddr, &old_addr)) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + change_reason |= LWIP_NSC_IPV4_ADDRESS_CHANGED; + cb_args.ipv4_changed.old_address = &old_addr; +#endif + } + } + if (netif_do_set_netmask(netif, netmask, old_nm)) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + change_reason |= LWIP_NSC_IPV4_NETMASK_CHANGED; + cb_args.ipv4_changed.old_netmask = old_nm; +#endif + } + if (netif_do_set_gw(netif, gw, old_gw)) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + change_reason |= LWIP_NSC_IPV4_GATEWAY_CHANGED; + cb_args.ipv4_changed.old_gw = old_gw; +#endif + } + if (!remove) { + /* set ipaddr last to ensure netmask/gw have been set when status callback is called */ + if (netif_do_set_ipaddr(netif, ipaddr, &old_addr)) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + change_reason |= LWIP_NSC_IPV4_ADDRESS_CHANGED; + cb_args.ipv4_changed.old_address = &old_addr; +#endif + } + } + +#if LWIP_NETIF_EXT_STATUS_CALLBACK + if (change_reason != LWIP_NSC_NONE) { + change_reason |= LWIP_NSC_IPV4_SETTINGS_CHANGED; + netif_invoke_ext_callback(netif, change_reason, &cb_args); + } +#endif +} +#endif /* LWIP_IPV4*/ + +/** + * @ingroup netif + * Remove a network interface from the list of lwIP netifs. + * + * @param netif the network interface to remove + */ +void +netif_remove(struct netif *netif) +{ +#if LWIP_IPV6 + int i; +#endif + + LWIP_ASSERT_CORE_LOCKED(); + + if (netif == NULL) { + return; + } + + netif_invoke_ext_callback(netif, LWIP_NSC_NETIF_REMOVED, NULL); + +#if LWIP_IPV4 + if (!ip4_addr_isany_val(*netif_ip4_addr(netif))) { + netif_do_ip_addr_changed(netif_ip_addr4(netif), NULL); + } + +#if LWIP_IGMP + /* stop IGMP processing */ + if (netif->flags & NETIF_FLAG_IGMP) { + igmp_stop(netif); + } +#endif /* LWIP_IGMP */ +#endif /* LWIP_IPV4*/ + +#if LWIP_IPV6 + for (i = 0; i < LWIP_IPV6_NUM_ADDRESSES; i++) { + if (ip6_addr_isvalid(netif_ip6_addr_state(netif, i))) { + netif_do_ip_addr_changed(netif_ip_addr6(netif, i), NULL); + } + } +#if LWIP_IPV6_MLD + /* stop MLD processing */ + mld6_stop(netif); +#endif /* LWIP_IPV6_MLD */ +#endif /* LWIP_IPV6 */ + if (netif_is_up(netif)) { + /* set netif down before removing (call callback function) */ + netif_set_down(netif); + } + + mib2_remove_ip4(netif); + + /* this netif is default? */ + if (netif_default == netif) { + /* reset default netif */ + netif_set_default(NULL); + } +#if !LWIP_SINGLE_NETIF + /* is it the first netif? */ + if (netif_list == netif) { + netif_list = netif->next; + } else { + /* look for netif further down the list */ + struct netif *tmp_netif; + NETIF_FOREACH(tmp_netif) { + if (tmp_netif->next == netif) { + tmp_netif->next = netif->next; + break; + } + } + if (tmp_netif == NULL) { + return; /* netif is not on the list */ + } + } +#endif /* !LWIP_SINGLE_NETIF */ + mib2_netif_removed(netif); +#if LWIP_NETIF_REMOVE_CALLBACK + if (netif->remove_callback) { + netif->remove_callback(netif); + } +#endif /* LWIP_NETIF_REMOVE_CALLBACK */ + LWIP_DEBUGF( NETIF_DEBUG, ("netif_remove: removed netif\n") ); +} + +/** + * @ingroup netif + * Set a network interface as the default network interface + * (used to output all packets for which no specific route is found) + * + * @param netif the default network interface + */ +void +netif_set_default(struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + + if (netif == NULL) { + /* remove default route */ + mib2_remove_route_ip4(1, netif); + } else { + /* install default route */ + mib2_add_route_ip4(1, netif); + } + netif_default = netif; + LWIP_DEBUGF(NETIF_DEBUG, ("netif: setting default interface %c%c\n", + netif ? netif->name[0] : '\'', netif ? netif->name[1] : '\'')); +} + +/** + * @ingroup netif + * Bring an interface up, available for processing + * traffic. + */ +void +netif_set_up(struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("netif_set_up: invalid netif", netif != NULL, return); + + if (!(netif->flags & NETIF_FLAG_UP)) { + netif_set_flags(netif, NETIF_FLAG_UP); + + MIB2_COPY_SYSUPTIME_TO(&netif->ts); + + NETIF_STATUS_CALLBACK(netif); + +#if LWIP_NETIF_EXT_STATUS_CALLBACK + { + netif_ext_callback_args_t args; + args.status_changed.state = 1; + netif_invoke_ext_callback(netif, LWIP_NSC_STATUS_CHANGED, &args); + } +#endif + + netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV4 | NETIF_REPORT_TYPE_IPV6); +#if LWIP_IPV6 + nd6_restart_netif(netif); +#endif /* LWIP_IPV6 */ + } +} + +/** Send ARP/IGMP/MLD/RS events, e.g. on link-up/netif-up or addr-change + */ +static void +netif_issue_reports(struct netif *netif, u8_t report_type) +{ + LWIP_ASSERT("netif_issue_reports: invalid netif", netif != NULL); + + /* Only send reports when both link and admin states are up */ + if (!(netif->flags & NETIF_FLAG_LINK_UP) || + !(netif->flags & NETIF_FLAG_UP)) { + return; + } + +#if LWIP_IPV4 + if ((report_type & NETIF_REPORT_TYPE_IPV4) && + !ip4_addr_isany_val(*netif_ip4_addr(netif))) { +#if LWIP_ARP + /* For Ethernet network interfaces, we would like to send a "gratuitous ARP" */ + if (netif->flags & (NETIF_FLAG_ETHARP)) { + etharp_gratuitous(netif); + } +#endif /* LWIP_ARP */ + +#if LWIP_IGMP + /* resend IGMP memberships */ + if (netif->flags & NETIF_FLAG_IGMP) { + igmp_report_groups(netif); + } +#endif /* LWIP_IGMP */ + } +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV6 + if (report_type & NETIF_REPORT_TYPE_IPV6) { +#if LWIP_IPV6_MLD + /* send mld memberships */ + mld6_report_groups(netif); +#endif /* LWIP_IPV6_MLD */ + } +#endif /* LWIP_IPV6 */ +} + +/** + * @ingroup netif + * Bring an interface down, disabling any traffic processing. + */ +void +netif_set_down(struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("netif_set_down: invalid netif", netif != NULL, return); + + if (netif->flags & NETIF_FLAG_UP) { +#if LWIP_NETIF_EXT_STATUS_CALLBACK + { + netif_ext_callback_args_t args; + args.status_changed.state = 0; + netif_invoke_ext_callback(netif, LWIP_NSC_STATUS_CHANGED, &args); + } +#endif + + netif_clear_flags(netif, NETIF_FLAG_UP); + MIB2_COPY_SYSUPTIME_TO(&netif->ts); + +#if LWIP_IPV4 && LWIP_ARP + if (netif->flags & NETIF_FLAG_ETHARP) { + etharp_cleanup_netif(netif); + } +#endif /* LWIP_IPV4 && LWIP_ARP */ + +#if LWIP_IPV6 + nd6_cleanup_netif(netif); +#endif /* LWIP_IPV6 */ + + NETIF_STATUS_CALLBACK(netif); + } +} + +#if LWIP_NETIF_STATUS_CALLBACK +/** + * @ingroup netif + * Set callback to be called when interface is brought up/down or address is changed while up + */ +void +netif_set_status_callback(struct netif *netif, netif_status_callback_fn status_callback) +{ + LWIP_ASSERT_CORE_LOCKED(); + + if (netif) { + netif->status_callback = status_callback; + } +} +#endif /* LWIP_NETIF_STATUS_CALLBACK */ + +#if LWIP_NETIF_REMOVE_CALLBACK +/** + * @ingroup netif + * Set callback to be called when the interface has been removed + */ +void +netif_set_remove_callback(struct netif *netif, netif_status_callback_fn remove_callback) +{ + LWIP_ASSERT_CORE_LOCKED(); + + if (netif) { + netif->remove_callback = remove_callback; + } +} +#endif /* LWIP_NETIF_REMOVE_CALLBACK */ + +/** + * @ingroup netif + * Called by a driver when its link goes up + */ +void +netif_set_link_up(struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("netif_set_link_up: invalid netif", netif != NULL, return); + + if (!(netif->flags & NETIF_FLAG_LINK_UP)) { + netif_set_flags(netif, NETIF_FLAG_LINK_UP); + +#if LWIP_DHCP + dhcp_network_changed(netif); +#endif /* LWIP_DHCP */ + +#if LWIP_AUTOIP + autoip_network_changed(netif); +#endif /* LWIP_AUTOIP */ + + netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV4 | NETIF_REPORT_TYPE_IPV6); +#if LWIP_IPV6 + nd6_restart_netif(netif); +#endif /* LWIP_IPV6 */ + + NETIF_LINK_CALLBACK(netif); +#if LWIP_NETIF_EXT_STATUS_CALLBACK + { + netif_ext_callback_args_t args; + args.link_changed.state = 1; + netif_invoke_ext_callback(netif, LWIP_NSC_LINK_CHANGED, &args); + } +#endif + } +} + +/** + * @ingroup netif + * Called by a driver when its link goes down + */ +void +netif_set_link_down(struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("netif_set_link_down: invalid netif", netif != NULL, return); + + if (netif->flags & NETIF_FLAG_LINK_UP) { + netif_clear_flags(netif, NETIF_FLAG_LINK_UP); + NETIF_LINK_CALLBACK(netif); +#if LWIP_NETIF_EXT_STATUS_CALLBACK + { + netif_ext_callback_args_t args; + args.link_changed.state = 0; + netif_invoke_ext_callback(netif, LWIP_NSC_LINK_CHANGED, &args); + } +#endif + } +} + +#if LWIP_NETIF_LINK_CALLBACK +/** + * @ingroup netif + * Set callback to be called when link is brought up/down + */ +void +netif_set_link_callback(struct netif *netif, netif_status_callback_fn link_callback) +{ + LWIP_ASSERT_CORE_LOCKED(); + + if (netif) { + netif->link_callback = link_callback; + } +} +#endif /* LWIP_NETIF_LINK_CALLBACK */ + +#if ENABLE_LOOPBACK +/** + * @ingroup netif + * Send an IP packet to be received on the same netif (loopif-like). + * The pbuf is simply copied and handed back to netif->input. + * In multithreaded mode, this is done directly since netif->input must put + * the packet on a queue. + * In callback mode, the packet is put on an internal queue and is fed to + * netif->input by netif_poll(). + * + * @param netif the lwip network interface structure + * @param p the (IP) packet to 'send' + * @return ERR_OK if the packet has been sent + * ERR_MEM if the pbuf used to copy the packet couldn't be allocated + */ +err_t +netif_loop_output(struct netif *netif, struct pbuf *p) +{ + struct pbuf *r; + err_t err; + struct pbuf *last; +#if LWIP_LOOPBACK_MAX_PBUFS + u16_t clen = 0; +#endif /* LWIP_LOOPBACK_MAX_PBUFS */ + /* If we have a loopif, SNMP counters are adjusted for it, + * if not they are adjusted for 'netif'. */ +#if MIB2_STATS +#if LWIP_HAVE_LOOPIF + struct netif *stats_if = &loop_netif; +#else /* LWIP_HAVE_LOOPIF */ + struct netif *stats_if = netif; +#endif /* LWIP_HAVE_LOOPIF */ +#endif /* MIB2_STATS */ +#if LWIP_NETIF_LOOPBACK_MULTITHREADING + u8_t schedule_poll = 0; +#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */ + SYS_ARCH_DECL_PROTECT(lev); + + LWIP_ASSERT("netif_loop_output: invalid netif", netif != NULL); + LWIP_ASSERT("netif_loop_output: invalid pbuf", p != NULL); + + /* Allocate a new pbuf */ + r = pbuf_alloc(PBUF_LINK, p->tot_len, PBUF_RAM); + if (r == NULL) { + LINK_STATS_INC(link.memerr); + LINK_STATS_INC(link.drop); + MIB2_STATS_NETIF_INC(stats_if, ifoutdiscards); + return ERR_MEM; + } +#if LWIP_LOOPBACK_MAX_PBUFS + clen = pbuf_clen(r); + /* check for overflow or too many pbuf on queue */ + if (((netif->loop_cnt_current + clen) < netif->loop_cnt_current) || + ((netif->loop_cnt_current + clen) > LWIP_MIN(LWIP_LOOPBACK_MAX_PBUFS, 0xFFFF))) { + pbuf_free(r); + LINK_STATS_INC(link.memerr); + LINK_STATS_INC(link.drop); + MIB2_STATS_NETIF_INC(stats_if, ifoutdiscards); + return ERR_MEM; + } + netif->loop_cnt_current = (u16_t)(netif->loop_cnt_current + clen); +#endif /* LWIP_LOOPBACK_MAX_PBUFS */ + + /* Copy the whole pbuf queue p into the single pbuf r */ + if ((err = pbuf_copy(r, p)) != ERR_OK) { + pbuf_free(r); + LINK_STATS_INC(link.memerr); + LINK_STATS_INC(link.drop); + MIB2_STATS_NETIF_INC(stats_if, ifoutdiscards); + return err; + } + + /* Put the packet on a linked list which gets emptied through calling + netif_poll(). */ + + /* let last point to the last pbuf in chain r */ + for (last = r; last->next != NULL; last = last->next) { + /* nothing to do here, just get to the last pbuf */ + } + + SYS_ARCH_PROTECT(lev); + if (netif->loop_first != NULL) { + LWIP_ASSERT("if first != NULL, last must also be != NULL", netif->loop_last != NULL); + netif->loop_last->next = r; + netif->loop_last = last; + } else { + netif->loop_first = r; + netif->loop_last = last; +#if LWIP_NETIF_LOOPBACK_MULTITHREADING + /* No existing packets queued, schedule poll */ + schedule_poll = 1; +#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */ + } + SYS_ARCH_UNPROTECT(lev); + + LINK_STATS_INC(link.xmit); + MIB2_STATS_NETIF_ADD(stats_if, ifoutoctets, p->tot_len); + MIB2_STATS_NETIF_INC(stats_if, ifoutucastpkts); + +#if LWIP_NETIF_LOOPBACK_MULTITHREADING + /* For multithreading environment, schedule a call to netif_poll */ + if (schedule_poll) { + tcpip_try_callback((tcpip_callback_fn)netif_poll, netif); + } +#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */ + + return ERR_OK; +} + +#if LWIP_HAVE_LOOPIF +#if LWIP_IPV4 +static err_t +netif_loop_output_ipv4(struct netif *netif, struct pbuf *p, const ip4_addr_t *addr) +{ + LWIP_UNUSED_ARG(addr); + return netif_loop_output(netif, p); +} +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV6 +static err_t +netif_loop_output_ipv6(struct netif *netif, struct pbuf *p, const ip6_addr_t *addr) +{ + LWIP_UNUSED_ARG(addr); + return netif_loop_output(netif, p); +} +#endif /* LWIP_IPV6 */ +#endif /* LWIP_HAVE_LOOPIF */ + + +/** + * Call netif_poll() in the main loop of your application. This is to prevent + * reentering non-reentrant functions like tcp_input(). Packets passed to + * netif_loop_output() are put on a list that is passed to netif->input() by + * netif_poll(). + */ +void +netif_poll(struct netif *netif) +{ + /* If we have a loopif, SNMP counters are adjusted for it, + * if not they are adjusted for 'netif'. */ +#if MIB2_STATS +#if LWIP_HAVE_LOOPIF + struct netif *stats_if = &loop_netif; +#else /* LWIP_HAVE_LOOPIF */ + struct netif *stats_if = netif; +#endif /* LWIP_HAVE_LOOPIF */ +#endif /* MIB2_STATS */ + SYS_ARCH_DECL_PROTECT(lev); + + LWIP_ASSERT("netif_poll: invalid netif", netif != NULL); + + /* Get a packet from the list. With SYS_LIGHTWEIGHT_PROT=1, this is protected */ + SYS_ARCH_PROTECT(lev); + while (netif->loop_first != NULL) { + struct pbuf *in, *in_end; +#if LWIP_LOOPBACK_MAX_PBUFS + u8_t clen = 1; +#endif /* LWIP_LOOPBACK_MAX_PBUFS */ + + in = in_end = netif->loop_first; + while (in_end->len != in_end->tot_len) { + LWIP_ASSERT("bogus pbuf: len != tot_len but next == NULL!", in_end->next != NULL); + in_end = in_end->next; +#if LWIP_LOOPBACK_MAX_PBUFS + clen++; +#endif /* LWIP_LOOPBACK_MAX_PBUFS */ + } +#if LWIP_LOOPBACK_MAX_PBUFS + /* adjust the number of pbufs on queue */ + LWIP_ASSERT("netif->loop_cnt_current underflow", + ((netif->loop_cnt_current - clen) < netif->loop_cnt_current)); + netif->loop_cnt_current = (u16_t)(netif->loop_cnt_current - clen); +#endif /* LWIP_LOOPBACK_MAX_PBUFS */ + + /* 'in_end' now points to the last pbuf from 'in' */ + if (in_end == netif->loop_last) { + /* this was the last pbuf in the list */ + netif->loop_first = netif->loop_last = NULL; + } else { + /* pop the pbuf off the list */ + netif->loop_first = in_end->next; + LWIP_ASSERT("should not be null since first != last!", netif->loop_first != NULL); + } + /* De-queue the pbuf from its successors on the 'loop_' list. */ + in_end->next = NULL; + SYS_ARCH_UNPROTECT(lev); + + in->if_idx = netif_get_index(netif); + + LINK_STATS_INC(link.recv); + MIB2_STATS_NETIF_ADD(stats_if, ifinoctets, in->tot_len); + MIB2_STATS_NETIF_INC(stats_if, ifinucastpkts); + /* loopback packets are always IP packets! */ + if (ip_input(in, netif) != ERR_OK) { + pbuf_free(in); + } + SYS_ARCH_PROTECT(lev); + } + SYS_ARCH_UNPROTECT(lev); +} + +#if !LWIP_NETIF_LOOPBACK_MULTITHREADING +/** + * Calls netif_poll() for every netif on the netif_list. + */ +void +netif_poll_all(void) +{ + struct netif *netif; + /* loop through netifs */ + NETIF_FOREACH(netif) { + netif_poll(netif); + } +} +#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ +#endif /* ENABLE_LOOPBACK */ + +#if LWIP_NUM_NETIF_CLIENT_DATA > 0 +/** + * @ingroup netif_cd + * Allocate an index to store data in client_data member of struct netif. + * Returned value is an index in mentioned array. + * @see LWIP_NUM_NETIF_CLIENT_DATA + */ +u8_t +netif_alloc_client_data_id(void) +{ + u8_t result = netif_client_id; + netif_client_id++; + + LWIP_ASSERT_CORE_LOCKED(); + +#if LWIP_NUM_NETIF_CLIENT_DATA > 256 +#error LWIP_NUM_NETIF_CLIENT_DATA must be <= 256 +#endif + LWIP_ASSERT("Increase LWIP_NUM_NETIF_CLIENT_DATA in lwipopts.h", result < LWIP_NUM_NETIF_CLIENT_DATA); + return (u8_t)(result + LWIP_NETIF_CLIENT_DATA_INDEX_MAX); +} +#endif + +#if LWIP_IPV6 +/** + * @ingroup netif_ip6 + * Change an IPv6 address of a network interface + * + * @param netif the network interface to change + * @param addr_idx index of the IPv6 address + * @param addr6 the new IPv6 address + * + * @note call netif_ip6_addr_set_state() to set the address valid/temptative + */ +void +netif_ip6_addr_set(struct netif *netif, s8_t addr_idx, const ip6_addr_t *addr6) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ASSERT("netif_ip6_addr_set: invalid netif", netif != NULL); + LWIP_ASSERT("netif_ip6_addr_set: invalid addr6", addr6 != NULL); + + netif_ip6_addr_set_parts(netif, addr_idx, addr6->addr[0], addr6->addr[1], + addr6->addr[2], addr6->addr[3]); +} + +/* + * Change an IPv6 address of a network interface (internal version taking 4 * u32_t) + * + * @param netif the network interface to change + * @param addr_idx index of the IPv6 address + * @param i0 word0 of the new IPv6 address + * @param i1 word1 of the new IPv6 address + * @param i2 word2 of the new IPv6 address + * @param i3 word3 of the new IPv6 address + */ +void +netif_ip6_addr_set_parts(struct netif *netif, s8_t addr_idx, u32_t i0, u32_t i1, u32_t i2, u32_t i3) +{ + ip_addr_t old_addr; + ip_addr_t new_ipaddr; + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("netif != NULL", netif != NULL); + LWIP_ASSERT("invalid index", addr_idx < LWIP_IPV6_NUM_ADDRESSES); + + ip6_addr_copy(*ip_2_ip6(&old_addr), *netif_ip6_addr(netif, addr_idx)); + IP_SET_TYPE_VAL(old_addr, IPADDR_TYPE_V6); + + /* address is actually being changed? */ + if ((ip_2_ip6(&old_addr)->addr[0] != i0) || (ip_2_ip6(&old_addr)->addr[1] != i1) || + (ip_2_ip6(&old_addr)->addr[2] != i2) || (ip_2_ip6(&old_addr)->addr[3] != i3)) { + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_ip6_addr_set: netif address being changed\n")); + + IP_ADDR6(&new_ipaddr, i0, i1, i2, i3); + ip6_addr_assign_zone(ip_2_ip6(&new_ipaddr), IP6_UNICAST, netif); + + if (ip6_addr_isvalid(netif_ip6_addr_state(netif, addr_idx))) { + netif_do_ip_addr_changed(netif_ip_addr6(netif, addr_idx), &new_ipaddr); + } + /* @todo: remove/readd mib2 ip6 entries? */ + + ip_addr_copy(netif->ip6_addr[addr_idx], new_ipaddr); + + if (ip6_addr_isvalid(netif_ip6_addr_state(netif, addr_idx))) { + netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV6); + NETIF_STATUS_CALLBACK(netif); + } + +#if LWIP_NETIF_EXT_STATUS_CALLBACK + { + netif_ext_callback_args_t args; + args.ipv6_set.addr_index = addr_idx; + args.ipv6_set.old_address = &old_addr; + netif_invoke_ext_callback(netif, LWIP_NSC_IPV6_SET, &args); + } +#endif + } + + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("netif: IPv6 address %d of interface %c%c set to %s/0x%"X8_F"\n", + addr_idx, netif->name[0], netif->name[1], ip6addr_ntoa(netif_ip6_addr(netif, addr_idx)), + netif_ip6_addr_state(netif, addr_idx))); +} + +/** + * @ingroup netif_ip6 + * Change the state of an IPv6 address of a network interface + * (INVALID, TEMPTATIVE, PREFERRED, DEPRECATED, where TEMPTATIVE + * includes the number of checks done, see ip6_addr.h) + * + * @param netif the network interface to change + * @param addr_idx index of the IPv6 address + * @param state the new IPv6 address state + */ +void +netif_ip6_addr_set_state(struct netif *netif, s8_t addr_idx, u8_t state) +{ + u8_t old_state; + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("netif != NULL", netif != NULL); + LWIP_ASSERT("invalid index", addr_idx < LWIP_IPV6_NUM_ADDRESSES); + + old_state = netif_ip6_addr_state(netif, addr_idx); + /* state is actually being changed? */ + if (old_state != state) { + u8_t old_valid = old_state & IP6_ADDR_VALID; + u8_t new_valid = state & IP6_ADDR_VALID; + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_ip6_addr_set_state: netif address state being changed\n")); + +#if LWIP_IPV6_MLD + /* Reevaluate solicited-node multicast group membership. */ + if (netif->flags & NETIF_FLAG_MLD6) { + nd6_adjust_mld_membership(netif, addr_idx, state); + } +#endif /* LWIP_IPV6_MLD */ + + if (old_valid && !new_valid) { + /* address about to be removed by setting invalid */ + netif_do_ip_addr_changed(netif_ip_addr6(netif, addr_idx), NULL); + /* @todo: remove mib2 ip6 entries? */ + } + netif->ip6_addr_state[addr_idx] = state; + + if (!old_valid && new_valid) { + /* address added by setting valid */ + /* This is a good moment to check that the address is properly zoned. */ + IP6_ADDR_ZONECHECK_NETIF(netif_ip6_addr(netif, addr_idx), netif); + /* @todo: add mib2 ip6 entries? */ + netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV6); + } + if ((old_state & ~IP6_ADDR_TENTATIVE_COUNT_MASK) != + (state & ~IP6_ADDR_TENTATIVE_COUNT_MASK)) { + /* address state has changed -> call the callback function */ + NETIF_STATUS_CALLBACK(netif); + } + +#if LWIP_NETIF_EXT_STATUS_CALLBACK + { + netif_ext_callback_args_t args; + args.ipv6_addr_state_changed.addr_index = addr_idx; + args.ipv6_addr_state_changed.old_state = old_state; + args.ipv6_addr_state_changed.address = netif_ip_addr6(netif, addr_idx); + netif_invoke_ext_callback(netif, LWIP_NSC_IPV6_ADDR_STATE_CHANGED, &args); + } +#endif + } + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("netif: IPv6 address %d of interface %c%c set to %s/0x%"X8_F"\n", + addr_idx, netif->name[0], netif->name[1], ip6addr_ntoa(netif_ip6_addr(netif, addr_idx)), + netif_ip6_addr_state(netif, addr_idx))); +} + +/** + * Checks if a specific local address is present on the netif and returns its + * index. Depending on its state, it may or may not be assigned to the + * interface (as per RFC terminology). + * + * The given address may or may not be zoned (i.e., have a zone index other + * than IP6_NO_ZONE). If the address is zoned, it must have the correct zone + * for the given netif, or no match will be found. + * + * @param netif the netif to check + * @param ip6addr the IPv6 address to find + * @return >= 0: address found, this is its index + * -1: address not found on this netif + */ +s8_t +netif_get_ip6_addr_match(struct netif *netif, const ip6_addr_t *ip6addr) +{ + s8_t i; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ASSERT("netif_get_ip6_addr_match: invalid netif", netif != NULL); + LWIP_ASSERT("netif_get_ip6_addr_match: invalid ip6addr", ip6addr != NULL); + +#if LWIP_IPV6_SCOPES + if (ip6_addr_has_zone(ip6addr) && !ip6_addr_test_zone(ip6addr, netif)) { + return -1; /* wrong zone, no match */ + } +#endif /* LWIP_IPV6_SCOPES */ + + for (i = 0; i < LWIP_IPV6_NUM_ADDRESSES; i++) { + if (!ip6_addr_isinvalid(netif_ip6_addr_state(netif, i)) && + ip6_addr_cmp_zoneless(netif_ip6_addr(netif, i), ip6addr)) { + return i; + } + } + return -1; +} + +/** + * @ingroup netif_ip6 + * Create a link-local IPv6 address on a netif (stored in slot 0) + * + * @param netif the netif to create the address on + * @param from_mac_48bit if != 0, assume hwadr is a 48-bit MAC address (std conversion) + * if == 0, use hwaddr directly as interface ID + */ +void +netif_create_ip6_linklocal_address(struct netif *netif, u8_t from_mac_48bit) +{ + u8_t i, addr_index; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ASSERT("netif_create_ip6_linklocal_address: invalid netif", netif != NULL); + + /* Link-local prefix. */ + ip_2_ip6(&netif->ip6_addr[0])->addr[0] = PP_HTONL(0xfe800000ul); + ip_2_ip6(&netif->ip6_addr[0])->addr[1] = 0; + + /* Generate interface ID. */ + if (from_mac_48bit) { + /* Assume hwaddr is a 48-bit IEEE 802 MAC. Convert to EUI-64 address. Complement Group bit. */ + ip_2_ip6(&netif->ip6_addr[0])->addr[2] = lwip_htonl((((u32_t)(netif->hwaddr[0] ^ 0x02)) << 24) | + ((u32_t)(netif->hwaddr[1]) << 16) | + ((u32_t)(netif->hwaddr[2]) << 8) | + (0xff)); + ip_2_ip6(&netif->ip6_addr[0])->addr[3] = lwip_htonl((u32_t)(0xfeul << 24) | + ((u32_t)(netif->hwaddr[3]) << 16) | + ((u32_t)(netif->hwaddr[4]) << 8) | + (netif->hwaddr[5])); + } else { + /* Use hwaddr directly as interface ID. */ + ip_2_ip6(&netif->ip6_addr[0])->addr[2] = 0; + ip_2_ip6(&netif->ip6_addr[0])->addr[3] = 0; + + addr_index = 3; + for (i = 0; (i < 8) && (i < netif->hwaddr_len); i++) { + if (i == 4) { + addr_index--; + } + ip_2_ip6(&netif->ip6_addr[0])->addr[addr_index] |= lwip_htonl(((u32_t)(netif->hwaddr[netif->hwaddr_len - i - 1])) << (8 * (i & 0x03))); + } + } + + /* Set a link-local zone. Even though the zone is implied by the owning + * netif, setting the zone anyway has two important conceptual advantages: + * 1) it avoids the need for a ton of exceptions in internal code, allowing + * e.g. ip6_addr_cmp() to be used on local addresses; + * 2) the properly zoned address is visible externally, e.g. when any outside + * code enumerates available addresses or uses one to bind a socket. + * Any external code unaware of address scoping is likely to just ignore the + * zone field, so this should not create any compatibility problems. */ + ip6_addr_assign_zone(ip_2_ip6(&netif->ip6_addr[0]), IP6_UNICAST, netif); + + /* Set address state. */ +#if LWIP_IPV6_DUP_DETECT_ATTEMPTS + /* Will perform duplicate address detection (DAD). */ + netif_ip6_addr_set_state(netif, 0, IP6_ADDR_TENTATIVE); +#else + /* Consider address valid. */ + netif_ip6_addr_set_state(netif, 0, IP6_ADDR_PREFERRED); +#endif /* LWIP_IPV6_AUTOCONFIG */ +} + +/** + * @ingroup netif_ip6 + * This function allows for the easy addition of a new IPv6 address to an interface. + * It takes care of finding an empty slot and then sets the address tentative + * (to make sure that all the subsequent processing happens). + * + * @param netif netif to add the address on + * @param ip6addr address to add + * @param chosen_idx if != NULL, the chosen IPv6 address index will be stored here + */ +err_t +netif_add_ip6_address(struct netif *netif, const ip6_addr_t *ip6addr, s8_t *chosen_idx) +{ + s8_t i; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ASSERT("netif_add_ip6_address: invalid netif", netif != NULL); + LWIP_ASSERT("netif_add_ip6_address: invalid ip6addr", ip6addr != NULL); + + i = netif_get_ip6_addr_match(netif, ip6addr); + if (i >= 0) { + /* Address already added */ + if (chosen_idx != NULL) { + *chosen_idx = i; + } + return ERR_OK; + } + + /* Find a free slot. The first one is reserved for link-local addresses. */ + for (i = ip6_addr_islinklocal(ip6addr) ? 0 : 1; i < LWIP_IPV6_NUM_ADDRESSES; i++) { + if (ip6_addr_isinvalid(netif_ip6_addr_state(netif, i))) { + ip_addr_copy_from_ip6(netif->ip6_addr[i], *ip6addr); + ip6_addr_assign_zone(ip_2_ip6(&netif->ip6_addr[i]), IP6_UNICAST, netif); + netif_ip6_addr_set_state(netif, i, IP6_ADDR_TENTATIVE); + if (chosen_idx != NULL) { + *chosen_idx = i; + } + return ERR_OK; + } + } + + if (chosen_idx != NULL) { + *chosen_idx = -1; + } + return ERR_VAL; +} + +/** Dummy IPv6 output function for netifs not supporting IPv6 + */ +static err_t +netif_null_output_ip6(struct netif *netif, struct pbuf *p, const ip6_addr_t *ipaddr) +{ + LWIP_UNUSED_ARG(netif); + LWIP_UNUSED_ARG(p); + LWIP_UNUSED_ARG(ipaddr); + + return ERR_IF; +} +#endif /* LWIP_IPV6 */ + +#if LWIP_IPV4 +/** Dummy IPv4 output function for netifs not supporting IPv4 + */ +static err_t +netif_null_output_ip4(struct netif *netif, struct pbuf *p, const ip4_addr_t *ipaddr) +{ + LWIP_UNUSED_ARG(netif); + LWIP_UNUSED_ARG(p); + LWIP_UNUSED_ARG(ipaddr); + + return ERR_IF; +} +#endif /* LWIP_IPV4 */ + +/** +* @ingroup netif +* Return the interface index for the netif with name +* or NETIF_NO_INDEX if not found/on error +* +* @param name the name of the netif +*/ +u8_t +netif_name_to_index(const char *name) +{ + struct netif *netif = netif_find(name); + if (netif != NULL) { + return netif_get_index(netif); + } + /* No name found, return invalid index */ + return NETIF_NO_INDEX; +} + +/** +* @ingroup netif +* Return the interface name for the netif matching index +* or NULL if not found/on error +* +* @param idx the interface index of the netif +* @param name char buffer of at least NETIF_NAMESIZE bytes +*/ +char * +netif_index_to_name(u8_t idx, char *name) +{ + struct netif *netif = netif_get_by_index(idx); + + if (netif != NULL) { + name[0] = netif->name[0]; + name[1] = netif->name[1]; + lwip_itoa(&name[2], NETIF_NAMESIZE - 2, netif_index_to_num(idx)); + return name; + } + return NULL; +} + +/** +* @ingroup netif +* Return the interface for the netif index +* +* @param idx index of netif to find +*/ +struct netif * +netif_get_by_index(u8_t idx) +{ + struct netif *netif; + + LWIP_ASSERT_CORE_LOCKED(); + + if (idx != NETIF_NO_INDEX) { + NETIF_FOREACH(netif) { + if (idx == netif_get_index(netif)) { + return netif; /* found! */ + } + } + } + + return NULL; +} + +/** + * @ingroup netif + * Find a network interface by searching for its name + * + * @param name the name of the netif (like netif->name) plus concatenated number + * in ascii representation (e.g. 'en0') + */ +struct netif * +netif_find(const char *name) +{ + struct netif *netif; + u8_t num; + + LWIP_ASSERT_CORE_LOCKED(); + + if (name == NULL) { + return NULL; + } + + num = (u8_t)atoi(&name[2]); + + NETIF_FOREACH(netif) { + if (num == netif->num && + name[0] == netif->name[0] && + name[1] == netif->name[1]) { + LWIP_DEBUGF(NETIF_DEBUG, ("netif_find: found %c%c\n", name[0], name[1])); + return netif; + } + } + LWIP_DEBUGF(NETIF_DEBUG, ("netif_find: didn't find %c%c\n", name[0], name[1])); + return NULL; +} + +#if LWIP_NETIF_EXT_STATUS_CALLBACK +/** + * @ingroup netif + * Add extended netif events listener + * @param callback pointer to listener structure + * @param fn callback function + */ +void +netif_add_ext_callback(netif_ext_callback_t *callback, netif_ext_callback_fn fn) +{ + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("callback must be != NULL", callback != NULL); + LWIP_ASSERT("fn must be != NULL", fn != NULL); + + callback->callback_fn = fn; + callback->next = ext_callback; + ext_callback = callback; +} + +/** + * @ingroup netif + * Remove extended netif events listener + * @param callback pointer to listener structure + */ +void +netif_remove_ext_callback(netif_ext_callback_t* callback) +{ + netif_ext_callback_t *last, *iter; + + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("callback must be != NULL", callback != NULL); + + if (ext_callback == NULL) { + return; + } + + if (callback == ext_callback) { + ext_callback = ext_callback->next; + } else { + last = ext_callback; + for (iter = ext_callback->next; iter != NULL; last = iter, iter = iter->next) { + if (iter == callback) { + LWIP_ASSERT("last != NULL", last != NULL); + last->next = callback->next; + callback->next = NULL; + return; + } + } + } +} + +/** + * Invoke extended netif status event + * @param netif netif that is affected by change + * @param reason change reason + * @param args depends on reason, see reason description + */ +void +netif_invoke_ext_callback(struct netif *netif, netif_nsc_reason_t reason, const netif_ext_callback_args_t *args) +{ + netif_ext_callback_t *callback = ext_callback; + + LWIP_ASSERT("netif must be != NULL", netif != NULL); + + while (callback != NULL) { + callback->callback_fn(netif, reason, args); + callback = callback->next; + } +} +#endif /* LWIP_NETIF_EXT_STATUS_CALLBACK */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/pbuf.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/pbuf.c new file mode 100644 index 000000000..7579d8624 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/pbuf.c @@ -0,0 +1,1514 @@ +/** + * @file + * Packet buffer management + */ + +/** + * @defgroup pbuf Packet buffers (PBUF) + * @ingroup infrastructure + * + * Packets are built from the pbuf data structure. It supports dynamic + * memory allocation for packet contents or can reference externally + * managed packet contents both in RAM and ROM. Quick allocation for + * incoming packets is provided through pools with fixed sized pbufs. + * + * A packet may span over multiple pbufs, chained as a singly linked + * list. This is called a "pbuf chain". + * + * Multiple packets may be queued, also using this singly linked list. + * This is called a "packet queue". + * + * So, a packet queue consists of one or more pbuf chains, each of + * which consist of one or more pbufs. CURRENTLY, PACKET QUEUES ARE + * NOT SUPPORTED!!! Use helper structs to queue multiple packets. + * + * The differences between a pbuf chain and a packet queue are very + * precise but subtle. + * + * The last pbuf of a packet has a ->tot_len field that equals the + * ->len field. It can be found by traversing the list. If the last + * pbuf of a packet has a ->next field other than NULL, more packets + * are on the queue. + * + * Therefore, looping through a pbuf of a single packet, has an + * loop end condition (tot_len == p->len), NOT (next == NULL). + * + * Example of custom pbuf usage: @ref zerocopyrx + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#include "lwip/pbuf.h" +#include "lwip/stats.h" +#include "lwip/def.h" +#include "lwip/mem.h" +#include "lwip/memp.h" +#include "lwip/sys.h" +#include "lwip/netif.h" +#if LWIP_TCP && TCP_QUEUE_OOSEQ +#include "lwip/priv/tcp_priv.h" +#endif +#if LWIP_CHECKSUM_ON_COPY +#include "lwip/inet_chksum.h" +#endif + +#include + +#define SIZEOF_STRUCT_PBUF LWIP_MEM_ALIGN_SIZE(sizeof(struct pbuf)) +/* Since the pool is created in memp, PBUF_POOL_BUFSIZE will be automatically + aligned there. Therefore, PBUF_POOL_BUFSIZE_ALIGNED can be used here. */ +#define PBUF_POOL_BUFSIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(PBUF_POOL_BUFSIZE) + +static const struct pbuf * +pbuf_skip_const(const struct pbuf *in, u16_t in_offset, u16_t *out_offset); + +#if !LWIP_TCP || !TCP_QUEUE_OOSEQ || !PBUF_POOL_FREE_OOSEQ +#define PBUF_POOL_IS_EMPTY() +#else /* !LWIP_TCP || !TCP_QUEUE_OOSEQ || !PBUF_POOL_FREE_OOSEQ */ + +#if !NO_SYS +#ifndef PBUF_POOL_FREE_OOSEQ_QUEUE_CALL +#include "lwip/tcpip.h" +#define PBUF_POOL_FREE_OOSEQ_QUEUE_CALL() do { \ + if (tcpip_try_callback(pbuf_free_ooseq_callback, NULL) != ERR_OK) { \ + SYS_ARCH_PROTECT(old_level); \ + pbuf_free_ooseq_pending = 0; \ + SYS_ARCH_UNPROTECT(old_level); \ + } } while(0) +#endif /* PBUF_POOL_FREE_OOSEQ_QUEUE_CALL */ +#endif /* !NO_SYS */ + +volatile u8_t pbuf_free_ooseq_pending; +#define PBUF_POOL_IS_EMPTY() pbuf_pool_is_empty() + +/** + * Attempt to reclaim some memory from queued out-of-sequence TCP segments + * if we run out of pool pbufs. It's better to give priority to new packets + * if we're running out. + * + * This must be done in the correct thread context therefore this function + * can only be used with NO_SYS=0 and through tcpip_callback. + */ +#if !NO_SYS +static +#endif /* !NO_SYS */ +void +pbuf_free_ooseq(void) +{ + struct tcp_pcb *pcb; + SYS_ARCH_SET(pbuf_free_ooseq_pending, 0); + + for (pcb = tcp_active_pcbs; NULL != pcb; pcb = pcb->next) { + if (pcb->ooseq != NULL) { + /** Free the ooseq pbufs of one PCB only */ + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free_ooseq: freeing out-of-sequence pbufs\n")); + tcp_free_ooseq(pcb); + return; + } + } +} + +#if !NO_SYS +/** + * Just a callback function for tcpip_callback() that calls pbuf_free_ooseq(). + */ +static void +pbuf_free_ooseq_callback(void *arg) +{ + LWIP_UNUSED_ARG(arg); + pbuf_free_ooseq(); +} +#endif /* !NO_SYS */ + +/** Queue a call to pbuf_free_ooseq if not already queued. */ +static void +pbuf_pool_is_empty(void) +{ +#ifndef PBUF_POOL_FREE_OOSEQ_QUEUE_CALL + SYS_ARCH_SET(pbuf_free_ooseq_pending, 1); +#else /* PBUF_POOL_FREE_OOSEQ_QUEUE_CALL */ + u8_t queued; + SYS_ARCH_DECL_PROTECT(old_level); + SYS_ARCH_PROTECT(old_level); + queued = pbuf_free_ooseq_pending; + pbuf_free_ooseq_pending = 1; + SYS_ARCH_UNPROTECT(old_level); + + if (!queued) { + /* queue a call to pbuf_free_ooseq if not already queued */ + PBUF_POOL_FREE_OOSEQ_QUEUE_CALL(); + } +#endif /* PBUF_POOL_FREE_OOSEQ_QUEUE_CALL */ +} +#endif /* !LWIP_TCP || !TCP_QUEUE_OOSEQ || !PBUF_POOL_FREE_OOSEQ */ + +/* Initialize members of struct pbuf after allocation */ +static void +pbuf_init_alloced_pbuf(struct pbuf *p, void *payload, u16_t tot_len, u16_t len, pbuf_type type, u8_t flags) +{ + p->next = NULL; + p->payload = payload; + p->tot_len = tot_len; + p->len = len; + p->type_internal = (u8_t)type; + p->flags = flags; + p->ref = 1; + p->if_idx = NETIF_NO_INDEX; +} + +/** + * @ingroup pbuf + * Allocates a pbuf of the given type (possibly a chain for PBUF_POOL type). + * + * The actual memory allocated for the pbuf is determined by the + * layer at which the pbuf is allocated and the requested size + * (from the size parameter). + * + * @param layer header size + * @param length size of the pbuf's payload + * @param type this parameter decides how and where the pbuf + * should be allocated as follows: + * + * - PBUF_RAM: buffer memory for pbuf is allocated as one large + * chunk. This includes protocol headers as well. + * - PBUF_ROM: no buffer memory is allocated for the pbuf, even for + * protocol headers. Additional headers must be prepended + * by allocating another pbuf and chain in to the front of + * the ROM pbuf. It is assumed that the memory used is really + * similar to ROM in that it is immutable and will not be + * changed. Memory which is dynamic should generally not + * be attached to PBUF_ROM pbufs. Use PBUF_REF instead. + * - PBUF_REF: no buffer memory is allocated for the pbuf, even for + * protocol headers. It is assumed that the pbuf is only + * being used in a single thread. If the pbuf gets queued, + * then pbuf_take should be called to copy the buffer. + * - PBUF_POOL: the pbuf is allocated as a pbuf chain, with pbufs from + * the pbuf pool that is allocated during pbuf_init(). + * + * @return the allocated pbuf. If multiple pbufs where allocated, this + * is the first pbuf of a pbuf chain. + */ +struct pbuf * +pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type) +{ + struct pbuf *p; + u16_t offset = (u16_t)layer; + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F")\n", length)); + + switch (type) { + case PBUF_REF: /* fall through */ + case PBUF_ROM: + p = pbuf_alloc_reference(NULL, length, type); + break; + case PBUF_POOL: { + struct pbuf *q, *last; + u16_t rem_len; /* remaining length */ + p = NULL; + last = NULL; + rem_len = length; + do { + u16_t qlen; + q = (struct pbuf *)memp_malloc(MEMP_PBUF_POOL); + if (q == NULL) { + PBUF_POOL_IS_EMPTY(); + /* free chain so far allocated */ + if (p) { + pbuf_free(p); + } + /* bail out unsuccessfully */ + return NULL; + } + qlen = LWIP_MIN(rem_len, (u16_t)(PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset))); + pbuf_init_alloced_pbuf(q, LWIP_MEM_ALIGN((void *)((u8_t *)q + SIZEOF_STRUCT_PBUF + offset)), + rem_len, qlen, type, 0); + LWIP_ASSERT("pbuf_alloc: pbuf q->payload properly aligned", + ((mem_ptr_t)q->payload % MEM_ALIGNMENT) == 0); + LWIP_ASSERT("PBUF_POOL_BUFSIZE must be bigger than MEM_ALIGNMENT", + (PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset)) > 0 ); + if (p == NULL) { + /* allocated head of pbuf chain (into p) */ + p = q; + } else { + /* make previous pbuf point to this pbuf */ + last->next = q; + } + last = q; + rem_len = (u16_t)(rem_len - qlen); + offset = 0; + } while (rem_len > 0); + break; + } + case PBUF_RAM: { + u16_t payload_len = (u16_t)(LWIP_MEM_ALIGN_SIZE(offset) + LWIP_MEM_ALIGN_SIZE(length)); + mem_size_t alloc_len = (mem_size_t)(LWIP_MEM_ALIGN_SIZE(SIZEOF_STRUCT_PBUF) + payload_len); + + /* bug #50040: Check for integer overflow when calculating alloc_len */ + if ((payload_len < LWIP_MEM_ALIGN_SIZE(length)) || + (alloc_len < LWIP_MEM_ALIGN_SIZE(length))) { + return NULL; + } + + /* If pbuf is to be allocated in RAM, allocate memory for it. */ + p = (struct pbuf *)mem_malloc(alloc_len); + if (p == NULL) { + return NULL; + } + pbuf_init_alloced_pbuf(p, LWIP_MEM_ALIGN((void *)((u8_t *)p + SIZEOF_STRUCT_PBUF + offset)), + length, length, type, 0); + LWIP_ASSERT("pbuf_alloc: pbuf->payload properly aligned", + ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0); + break; + } + default: + LWIP_ASSERT("pbuf_alloc: erroneous type", 0); + return NULL; + } + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F") == %p\n", length, (void *)p)); + return p; +} + +/** + * @ingroup pbuf + * Allocates a pbuf for referenced data. + * Referenced data can be volatile (PBUF_REF) or long-lived (PBUF_ROM). + * + * The actual memory allocated for the pbuf is determined by the + * layer at which the pbuf is allocated and the requested size + * (from the size parameter). + * + * @param payload referenced payload + * @param length size of the pbuf's payload + * @param type this parameter decides how and where the pbuf + * should be allocated as follows: + * + * - PBUF_ROM: It is assumed that the memory used is really + * similar to ROM in that it is immutable and will not be + * changed. Memory which is dynamic should generally not + * be attached to PBUF_ROM pbufs. Use PBUF_REF instead. + * - PBUF_REF: It is assumed that the pbuf is only + * being used in a single thread. If the pbuf gets queued, + * then pbuf_take should be called to copy the buffer. + * + * @return the allocated pbuf. + */ +struct pbuf * +pbuf_alloc_reference(void *payload, u16_t length, pbuf_type type) +{ + struct pbuf *p; + LWIP_ASSERT("invalid pbuf_type", (type == PBUF_REF) || (type == PBUF_ROM)); + /* only allocate memory for the pbuf structure */ + p = (struct pbuf *)memp_malloc(MEMP_PBUF); + if (p == NULL) { + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("pbuf_alloc_reference: Could not allocate MEMP_PBUF for PBUF_%s.\n", + (type == PBUF_ROM) ? "ROM" : "REF")); + return NULL; + } + pbuf_init_alloced_pbuf(p, payload, length, length, type, 0); + return p; +} + + +#if LWIP_SUPPORT_CUSTOM_PBUF +/** + * @ingroup pbuf + * Initialize a custom pbuf (already allocated). + * Example of custom pbuf usage: @ref zerocopyrx + * + * @param l header size + * @param length size of the pbuf's payload + * @param type type of the pbuf (only used to treat the pbuf accordingly, as + * this function allocates no memory) + * @param p pointer to the custom pbuf to initialize (already allocated) + * @param payload_mem pointer to the buffer that is used for payload and headers, + * must be at least big enough to hold 'length' plus the header size, + * may be NULL if set later. + * ATTENTION: The caller is responsible for correct alignment of this buffer!! + * @param payload_mem_len the size of the 'payload_mem' buffer, must be at least + * big enough to hold 'length' plus the header size + */ +struct pbuf * +pbuf_alloced_custom(pbuf_layer l, u16_t length, pbuf_type type, struct pbuf_custom *p, + void *payload_mem, u16_t payload_mem_len) +{ + u16_t offset = (u16_t)l; + void *payload; + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloced_custom(length=%"U16_F")\n", length)); + + if (LWIP_MEM_ALIGN_SIZE(offset) + length > payload_mem_len) { + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_LEVEL_WARNING, ("pbuf_alloced_custom(length=%"U16_F") buffer too short\n", length)); + return NULL; + } + + if (payload_mem != NULL) { + payload = (u8_t *)payload_mem + LWIP_MEM_ALIGN_SIZE(offset); + } else { + payload = NULL; + } + pbuf_init_alloced_pbuf(&p->pbuf, payload, length, length, type, PBUF_FLAG_IS_CUSTOM); + return &p->pbuf; +} +#endif /* LWIP_SUPPORT_CUSTOM_PBUF */ + +/** + * @ingroup pbuf + * Shrink a pbuf chain to a desired length. + * + * @param p pbuf to shrink. + * @param new_len desired new length of pbuf chain + * + * Depending on the desired length, the first few pbufs in a chain might + * be skipped and left unchanged. The new last pbuf in the chain will be + * resized, and any remaining pbufs will be freed. + * + * @note If the pbuf is ROM/REF, only the ->tot_len and ->len fields are adjusted. + * @note May not be called on a packet queue. + * + * @note Despite its name, pbuf_realloc cannot grow the size of a pbuf (chain). + */ +void +pbuf_realloc(struct pbuf *p, u16_t new_len) +{ + struct pbuf *q; + u16_t rem_len; /* remaining length */ + u16_t shrink; + + LWIP_ASSERT("pbuf_realloc: p != NULL", p != NULL); + + /* desired length larger than current length? */ + if (new_len >= p->tot_len) { + /* enlarging not yet supported */ + return; + } + + /* the pbuf chain grows by (new_len - p->tot_len) bytes + * (which may be negative in case of shrinking) */ + shrink = (u16_t)(p->tot_len - new_len); + + /* first, step over any pbufs that should remain in the chain */ + rem_len = new_len; + q = p; + /* should this pbuf be kept? */ + while (rem_len > q->len) { + /* decrease remaining length by pbuf length */ + rem_len = (u16_t)(rem_len - q->len); + /* decrease total length indicator */ + q->tot_len = (u16_t)(q->tot_len - shrink); + /* proceed to next pbuf in chain */ + q = q->next; + LWIP_ASSERT("pbuf_realloc: q != NULL", q != NULL); + } + /* we have now reached the new last pbuf (in q) */ + /* rem_len == desired length for pbuf q */ + + /* shrink allocated memory for PBUF_RAM */ + /* (other types merely adjust their length fields */ + if (pbuf_match_allocsrc(q, PBUF_TYPE_ALLOC_SRC_MASK_STD_HEAP) && (rem_len != q->len) +#if LWIP_SUPPORT_CUSTOM_PBUF + && ((q->flags & PBUF_FLAG_IS_CUSTOM) == 0) +#endif /* LWIP_SUPPORT_CUSTOM_PBUF */ + ) { + /* reallocate and adjust the length of the pbuf that will be split */ + q = (struct pbuf *)mem_trim(q, (mem_size_t)(((u8_t *)q->payload - (u8_t *)q) + rem_len)); + LWIP_ASSERT("mem_trim returned q == NULL", q != NULL); + } + /* adjust length fields for new last pbuf */ + q->len = rem_len; + q->tot_len = q->len; + + /* any remaining pbufs in chain? */ + if (q->next != NULL) { + /* free remaining pbufs in chain */ + pbuf_free(q->next); + } + /* q is last packet in chain */ + q->next = NULL; + +} + +/** + * Adjusts the payload pointer to reveal headers in the payload. + * @see pbuf_add_header. + * + * @param p pbuf to change the header size. + * @param header_size_increment Number of bytes to increment header size. + * @param force Allow 'header_size_increment > 0' for PBUF_REF/PBUF_ROM types + * + * @return non-zero on failure, zero on success. + * + */ +static u8_t +pbuf_add_header_impl(struct pbuf *p, size_t header_size_increment, u8_t force) +{ + u16_t type_internal; + void *payload; + u16_t increment_magnitude; + + LWIP_ASSERT("p != NULL", p != NULL); + if ((p == NULL) || (header_size_increment > 0xFFFF)) { + return 1; + } + if (header_size_increment == 0) { + return 0; + } + + increment_magnitude = (u16_t)header_size_increment; + /* Do not allow tot_len to wrap as a result. */ + if ((u16_t)(increment_magnitude + p->tot_len) < increment_magnitude) { + return 1; + } + + type_internal = p->type_internal; + + /* pbuf types containing payloads? */ + if (type_internal & PBUF_TYPE_FLAG_STRUCT_DATA_CONTIGUOUS) { + /* set new payload pointer */ + payload = (u8_t *)p->payload - header_size_increment; + /* boundary check fails? */ + if ((u8_t *)payload < (u8_t *)p + SIZEOF_STRUCT_PBUF) { + LWIP_DEBUGF( PBUF_DEBUG | LWIP_DBG_TRACE, + ("pbuf_add_header: failed as %p < %p (not enough space for new header size)\n", + (void *)payload, (void *)((u8_t *)p + SIZEOF_STRUCT_PBUF))); + /* bail out unsuccessfully */ + return 1; + } + /* pbuf types referring to external payloads? */ + } else { + /* hide a header in the payload? */ + if (force) { + payload = (u8_t *)p->payload - header_size_increment; + } else { + /* cannot expand payload to front (yet!) + * bail out unsuccessfully */ + return 1; + } + } + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_add_header: old %p new %p (%"U16_F")\n", + (void *)p->payload, (void *)payload, increment_magnitude)); + + /* modify pbuf fields */ + p->payload = payload; + p->len = (u16_t)(p->len + increment_magnitude); + p->tot_len = (u16_t)(p->tot_len + increment_magnitude); + + + return 0; +} + +/** + * Adjusts the payload pointer to reveal headers in the payload. + * + * Adjusts the ->payload pointer so that space for a header + * appears in the pbuf payload. + * + * The ->payload, ->tot_len and ->len fields are adjusted. + * + * @param p pbuf to change the header size. + * @param header_size_increment Number of bytes to increment header size which + * increases the size of the pbuf. New space is on the front. + * If header_size_increment is 0, this function does nothing and returns successful. + * + * PBUF_ROM and PBUF_REF type buffers cannot have their sizes increased, so + * the call will fail. A check is made that the increase in header size does + * not move the payload pointer in front of the start of the buffer. + * + * @return non-zero on failure, zero on success. + * + */ +u8_t +pbuf_add_header(struct pbuf *p, size_t header_size_increment) +{ + return pbuf_add_header_impl(p, header_size_increment, 0); +} + +/** + * Same as @ref pbuf_add_header but does not check if 'header_size > 0' is allowed. + * This is used internally only, to allow PBUF_REF for RX. + */ +u8_t +pbuf_add_header_force(struct pbuf *p, size_t header_size_increment) +{ + return pbuf_add_header_impl(p, header_size_increment, 1); +} + +/** + * Adjusts the payload pointer to hide headers in the payload. + * + * Adjusts the ->payload pointer so that space for a header + * disappears in the pbuf payload. + * + * The ->payload, ->tot_len and ->len fields are adjusted. + * + * @param p pbuf to change the header size. + * @param header_size_decrement Number of bytes to decrement header size which + * decreases the size of the pbuf. + * If header_size_decrement is 0, this function does nothing and returns successful. + * @return non-zero on failure, zero on success. + * + */ +u8_t +pbuf_remove_header(struct pbuf *p, size_t header_size_decrement) +{ + void *payload; + u16_t increment_magnitude; + + LWIP_ASSERT("p != NULL", p != NULL); + if ((p == NULL) || (header_size_decrement > 0xFFFF)) { + return 1; + } + if (header_size_decrement == 0) { + return 0; + } + + increment_magnitude = (u16_t)header_size_decrement; + /* Check that we aren't going to move off the end of the pbuf */ + LWIP_ERROR("increment_magnitude <= p->len", (increment_magnitude <= p->len), return 1;); + + /* remember current payload pointer */ + payload = p->payload; + LWIP_UNUSED_ARG(payload); /* only used in LWIP_DEBUGF below */ + + /* increase payload pointer (guarded by length check above) */ + p->payload = (u8_t *)p->payload + header_size_decrement; + /* modify pbuf length fields */ + p->len = (u16_t)(p->len - increment_magnitude); + p->tot_len = (u16_t)(p->tot_len - increment_magnitude); + + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_remove_header: old %p new %p (%"U16_F")\n", + (void *)payload, (void *)p->payload, increment_magnitude)); + + return 0; +} + +static u8_t +pbuf_header_impl(struct pbuf *p, s16_t header_size_increment, u8_t force) +{ + if (header_size_increment < 0) { + return pbuf_remove_header(p, (size_t) - header_size_increment); + } else { + return pbuf_add_header_impl(p, (size_t)header_size_increment, force); + } +} + +/** + * Adjusts the payload pointer to hide or reveal headers in the payload. + * + * Adjusts the ->payload pointer so that space for a header + * (dis)appears in the pbuf payload. + * + * The ->payload, ->tot_len and ->len fields are adjusted. + * + * @param p pbuf to change the header size. + * @param header_size_increment Number of bytes to increment header size which + * increases the size of the pbuf. New space is on the front. + * (Using a negative value decreases the header size.) + * If header_size_increment is 0, this function does nothing and returns successful. + * + * PBUF_ROM and PBUF_REF type buffers cannot have their sizes increased, so + * the call will fail. A check is made that the increase in header size does + * not move the payload pointer in front of the start of the buffer. + * @return non-zero on failure, zero on success. + * + */ +u8_t +pbuf_header(struct pbuf *p, s16_t header_size_increment) +{ + return pbuf_header_impl(p, header_size_increment, 0); +} + +/** + * Same as pbuf_header but does not check if 'header_size > 0' is allowed. + * This is used internally only, to allow PBUF_REF for RX. + */ +u8_t +pbuf_header_force(struct pbuf *p, s16_t header_size_increment) +{ + return pbuf_header_impl(p, header_size_increment, 1); +} + +/** Similar to pbuf_header(-size) but de-refs header pbufs for (size >= p->len) + * + * @param q pbufs to operate on + * @param size The number of bytes to remove from the beginning of the pbuf list. + * While size >= p->len, pbufs are freed. + * ATTENTION: this is the opposite direction as @ref pbuf_header, but + * takes an u16_t not s16_t! + * @return the new head pbuf + */ +struct pbuf * +pbuf_free_header(struct pbuf *q, u16_t size) +{ + struct pbuf *p = q; + u16_t free_left = size; + while (free_left && p) { + if (free_left >= p->len) { + struct pbuf *f = p; + free_left = (u16_t)(free_left - p->len); + p = p->next; + f->next = 0; + pbuf_free(f); + } else { + pbuf_remove_header(p, free_left); + free_left = 0; + } + } + return p; +} + +/** + * @ingroup pbuf + * Dereference a pbuf chain or queue and deallocate any no-longer-used + * pbufs at the head of this chain or queue. + * + * Decrements the pbuf reference count. If it reaches zero, the pbuf is + * deallocated. + * + * For a pbuf chain, this is repeated for each pbuf in the chain, + * up to the first pbuf which has a non-zero reference count after + * decrementing. So, when all reference counts are one, the whole + * chain is free'd. + * + * @param p The pbuf (chain) to be dereferenced. + * + * @return the number of pbufs that were de-allocated + * from the head of the chain. + * + * @note MUST NOT be called on a packet queue (Not verified to work yet). + * @note the reference counter of a pbuf equals the number of pointers + * that refer to the pbuf (or into the pbuf). + * + * @internal examples: + * + * Assuming existing chains a->b->c with the following reference + * counts, calling pbuf_free(a) results in: + * + * 1->2->3 becomes ...1->3 + * 3->3->3 becomes 2->3->3 + * 1->1->2 becomes ......1 + * 2->1->1 becomes 1->1->1 + * 1->1->1 becomes ....... + * + */ +u8_t +pbuf_free(struct pbuf *p) +{ + u8_t alloc_src; + struct pbuf *q; + u8_t count; + + if (p == NULL) { + LWIP_ASSERT("p != NULL", p != NULL); + /* if assertions are disabled, proceed with debug output */ + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("pbuf_free(p == NULL) was called.\n")); + return 0; + } + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free(%p)\n", (void *)p)); + + PERF_START; + + count = 0; + /* de-allocate all consecutive pbufs from the head of the chain that + * obtain a zero reference count after decrementing*/ + while (p != NULL) { + LWIP_PBUF_REF_T ref; + SYS_ARCH_DECL_PROTECT(old_level); + /* Since decrementing ref cannot be guaranteed to be a single machine operation + * we must protect it. We put the new ref into a local variable to prevent + * further protection. */ + SYS_ARCH_PROTECT(old_level); + /* all pbufs in a chain are referenced at least once */ + LWIP_ASSERT("pbuf_free: p->ref > 0", p->ref > 0); + /* decrease reference count (number of pointers to pbuf) */ + ref = --(p->ref); + SYS_ARCH_UNPROTECT(old_level); + /* this pbuf is no longer referenced to? */ + if (ref == 0) { + /* remember next pbuf in chain for next iteration */ + q = p->next; + LWIP_DEBUGF( PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free: deallocating %p\n", (void *)p)); + alloc_src = pbuf_get_allocsrc(p); +#if LWIP_SUPPORT_CUSTOM_PBUF + /* is this a custom pbuf? */ + if ((p->flags & PBUF_FLAG_IS_CUSTOM) != 0) { + struct pbuf_custom *pc = (struct pbuf_custom *)p; + LWIP_ASSERT("pc->custom_free_function != NULL", pc->custom_free_function != NULL); + pc->custom_free_function(p); + } else +#endif /* LWIP_SUPPORT_CUSTOM_PBUF */ + { + /* is this a pbuf from the pool? */ + if (alloc_src == PBUF_TYPE_ALLOC_SRC_MASK_STD_MEMP_PBUF_POOL) { + memp_free(MEMP_PBUF_POOL, p); + /* is this a ROM or RAM referencing pbuf? */ + } else if (alloc_src == PBUF_TYPE_ALLOC_SRC_MASK_STD_MEMP_PBUF) { + memp_free(MEMP_PBUF, p); + /* type == PBUF_RAM */ + } else if (alloc_src == PBUF_TYPE_ALLOC_SRC_MASK_STD_HEAP) { + mem_free(p); + } else { + /* @todo: support freeing other types */ + LWIP_ASSERT("invalid pbuf type", 0); + } + } + count++; + /* proceed to next pbuf */ + p = q; + /* p->ref > 0, this pbuf is still referenced to */ + /* (and so the remaining pbufs in chain as well) */ + } else { + LWIP_DEBUGF( PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free: %p has ref %"U16_F", ending here.\n", (void *)p, (u16_t)ref)); + /* stop walking through the chain */ + p = NULL; + } + } + PERF_STOP("pbuf_free"); + /* return number of de-allocated pbufs */ + return count; +} + +/** + * Count number of pbufs in a chain + * + * @param p first pbuf of chain + * @return the number of pbufs in a chain + */ +u16_t +pbuf_clen(const struct pbuf *p) +{ + u16_t len; + + len = 0; + while (p != NULL) { + ++len; + p = p->next; + } + return len; +} + +/** + * @ingroup pbuf + * Increment the reference count of the pbuf. + * + * @param p pbuf to increase reference counter of + * + */ +void +pbuf_ref(struct pbuf *p) +{ + /* pbuf given? */ + if (p != NULL) { + SYS_ARCH_SET(p->ref, (LWIP_PBUF_REF_T)(p->ref + 1)); + LWIP_ASSERT("pbuf ref overflow", p->ref > 0); + } +} + +/** + * @ingroup pbuf + * Concatenate two pbufs (each may be a pbuf chain) and take over + * the caller's reference of the tail pbuf. + * + * @note The caller MAY NOT reference the tail pbuf afterwards. + * Use pbuf_chain() for that purpose. + * + * This function explicitly does not check for tot_len overflow to prevent + * failing to queue too long pbufs. This can produce invalid pbufs, so + * handle with care! + * + * @see pbuf_chain() + */ +void +pbuf_cat(struct pbuf *h, struct pbuf *t) +{ + struct pbuf *p; + + LWIP_ERROR("(h != NULL) && (t != NULL) (programmer violates API)", + ((h != NULL) && (t != NULL)), return;); + + /* proceed to last pbuf of chain */ + for (p = h; p->next != NULL; p = p->next) { + /* add total length of second chain to all totals of first chain */ + p->tot_len = (u16_t)(p->tot_len + t->tot_len); + } + /* { p is last pbuf of first h chain, p->next == NULL } */ + LWIP_ASSERT("p->tot_len == p->len (of last pbuf in chain)", p->tot_len == p->len); + LWIP_ASSERT("p->next == NULL", p->next == NULL); + /* add total length of second chain to last pbuf total of first chain */ + p->tot_len = (u16_t)(p->tot_len + t->tot_len); + /* chain last pbuf of head (p) with first of tail (t) */ + p->next = t; + /* p->next now references t, but the caller will drop its reference to t, + * so netto there is no change to the reference count of t. + */ +} + +/** + * @ingroup pbuf + * Chain two pbufs (or pbuf chains) together. + * + * The caller MUST call pbuf_free(t) once it has stopped + * using it. Use pbuf_cat() instead if you no longer use t. + * + * @param h head pbuf (chain) + * @param t tail pbuf (chain) + * @note The pbufs MUST belong to the same packet. + * @note MAY NOT be called on a packet queue. + * + * The ->tot_len fields of all pbufs of the head chain are adjusted. + * The ->next field of the last pbuf of the head chain is adjusted. + * The ->ref field of the first pbuf of the tail chain is adjusted. + * + */ +void +pbuf_chain(struct pbuf *h, struct pbuf *t) +{ + pbuf_cat(h, t); + /* t is now referenced by h */ + pbuf_ref(t); + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_chain: %p references %p\n", (void *)h, (void *)t)); +} + +/** + * Dechains the first pbuf from its succeeding pbufs in the chain. + * + * Makes p->tot_len field equal to p->len. + * @param p pbuf to dechain + * @return remainder of the pbuf chain, or NULL if it was de-allocated. + * @note May not be called on a packet queue. + */ +struct pbuf * +pbuf_dechain(struct pbuf *p) +{ + struct pbuf *q; + u8_t tail_gone = 1; + /* tail */ + q = p->next; + /* pbuf has successor in chain? */ + if (q != NULL) { + /* assert tot_len invariant: (p->tot_len == p->len + (p->next? p->next->tot_len: 0) */ + LWIP_ASSERT("p->tot_len == p->len + q->tot_len", q->tot_len == p->tot_len - p->len); + /* enforce invariant if assertion is disabled */ + q->tot_len = (u16_t)(p->tot_len - p->len); + /* decouple pbuf from remainder */ + p->next = NULL; + /* total length of pbuf p is its own length only */ + p->tot_len = p->len; + /* q is no longer referenced by p, free it */ + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_dechain: unreferencing %p\n", (void *)q)); + tail_gone = pbuf_free(q); + if (tail_gone > 0) { + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, + ("pbuf_dechain: deallocated %p (as it is no longer referenced)\n", (void *)q)); + } + /* return remaining tail or NULL if deallocated */ + } + /* assert tot_len invariant: (p->tot_len == p->len + (p->next? p->next->tot_len: 0) */ + LWIP_ASSERT("p->tot_len == p->len", p->tot_len == p->len); + return ((tail_gone > 0) ? NULL : q); +} + +/** + * @ingroup pbuf + * Create PBUF_RAM copies of pbufs. + * + * Used to queue packets on behalf of the lwIP stack, such as + * ARP based queueing. + * + * @note You MUST explicitly use p = pbuf_take(p); + * + * @note Only one packet is copied, no packet queue! + * + * @param p_to pbuf destination of the copy + * @param p_from pbuf source of the copy + * + * @return ERR_OK if pbuf was copied + * ERR_ARG if one of the pbufs is NULL or p_to is not big + * enough to hold p_from + */ +err_t +pbuf_copy(struct pbuf *p_to, const struct pbuf *p_from) +{ + size_t offset_to = 0, offset_from = 0, len; + + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_copy(%p, %p)\n", + (const void *)p_to, (const void *)p_from)); + + /* is the target big enough to hold the source? */ + LWIP_ERROR("pbuf_copy: target not big enough to hold source", ((p_to != NULL) && + (p_from != NULL) && (p_to->tot_len >= p_from->tot_len)), return ERR_ARG;); + + /* iterate through pbuf chain */ + do { + /* copy one part of the original chain */ + if ((p_to->len - offset_to) >= (p_from->len - offset_from)) { + /* complete current p_from fits into current p_to */ + len = p_from->len - offset_from; + } else { + /* current p_from does not fit into current p_to */ + len = p_to->len - offset_to; + } + MEMCPY((u8_t *)p_to->payload + offset_to, (u8_t *)p_from->payload + offset_from, len); + offset_to += len; + offset_from += len; + LWIP_ASSERT("offset_to <= p_to->len", offset_to <= p_to->len); + LWIP_ASSERT("offset_from <= p_from->len", offset_from <= p_from->len); + if (offset_from >= p_from->len) { + /* on to next p_from (if any) */ + offset_from = 0; + p_from = p_from->next; + } + if (offset_to == p_to->len) { + /* on to next p_to (if any) */ + offset_to = 0; + p_to = p_to->next; + LWIP_ERROR("p_to != NULL", (p_to != NULL) || (p_from == NULL), return ERR_ARG;); + } + + if ((p_from != NULL) && (p_from->len == p_from->tot_len)) { + /* don't copy more than one packet! */ + LWIP_ERROR("pbuf_copy() does not allow packet queues!", + (p_from->next == NULL), return ERR_VAL;); + } + if ((p_to != NULL) && (p_to->len == p_to->tot_len)) { + /* don't copy more than one packet! */ + LWIP_ERROR("pbuf_copy() does not allow packet queues!", + (p_to->next == NULL), return ERR_VAL;); + } + } while (p_from); + LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_copy: end of chain reached.\n")); + return ERR_OK; +} + +/** + * @ingroup pbuf + * Copy (part of) the contents of a packet buffer + * to an application supplied buffer. + * + * @param buf the pbuf from which to copy data + * @param dataptr the application supplied buffer + * @param len length of data to copy (dataptr must be big enough). No more + * than buf->tot_len will be copied, irrespective of len + * @param offset offset into the packet buffer from where to begin copying len bytes + * @return the number of bytes copied, or 0 on failure + */ +u16_t +pbuf_copy_partial(const struct pbuf *buf, void *dataptr, u16_t len, u16_t offset) +{ + const struct pbuf *p; + u16_t left = 0; + u16_t buf_copy_len; + u16_t copied_total = 0; + + LWIP_ERROR("pbuf_copy_partial: invalid buf", (buf != NULL), return 0;); + LWIP_ERROR("pbuf_copy_partial: invalid dataptr", (dataptr != NULL), return 0;); + + /* Note some systems use byte copy if dataptr or one of the pbuf payload pointers are unaligned. */ + for (p = buf; len != 0 && p != NULL; p = p->next) { + if ((offset != 0) && (offset >= p->len)) { + /* don't copy from this buffer -> on to the next */ + offset = (u16_t)(offset - p->len); + } else { + /* copy from this buffer. maybe only partially. */ + buf_copy_len = (u16_t)(p->len - offset); + if (buf_copy_len > len) { + buf_copy_len = len; + } + /* copy the necessary parts of the buffer */ + MEMCPY(&((char *)dataptr)[left], &((char *)p->payload)[offset], buf_copy_len); + copied_total = (u16_t)(copied_total + buf_copy_len); + left = (u16_t)(left + buf_copy_len); + len = (u16_t)(len - buf_copy_len); + offset = 0; + } + } + return copied_total; +} + +/** + * @ingroup pbuf + * Get part of a pbuf's payload as contiguous memory. The returned memory is + * either a pointer into the pbuf's payload or, if split over multiple pbufs, + * a copy into the user-supplied buffer. + * + * @param p the pbuf from which to copy data + * @param buffer the application supplied buffer + * @param bufsize size of the application supplied buffer + * @param len length of data to copy (dataptr must be big enough). No more + * than buf->tot_len will be copied, irrespective of len + * @param offset offset into the packet buffer from where to begin copying len bytes + * @return the number of bytes copied, or 0 on failure + */ +void * +pbuf_get_contiguous(const struct pbuf *p, void *buffer, size_t bufsize, u16_t len, u16_t offset) +{ + const struct pbuf *q; + u16_t out_offset; + + LWIP_ERROR("pbuf_get_contiguous: invalid buf", (p != NULL), return NULL;); + LWIP_ERROR("pbuf_get_contiguous: invalid dataptr", (buffer != NULL), return NULL;); + LWIP_ERROR("pbuf_get_contiguous: invalid dataptr", (bufsize >= len), return NULL;); + + q = pbuf_skip_const(p, offset, &out_offset); + if (q != NULL) { + if (q->len >= (out_offset + len)) { + /* all data in this pbuf, return zero-copy */ + return (u8_t *)q->payload + out_offset; + } + /* need to copy */ + if (pbuf_copy_partial(q, buffer, len, out_offset) != len) { + /* copying failed: pbuf is too short */ + return NULL; + } + return buffer; + } + /* pbuf is too short (offset does not fit in) */ + return NULL; +} + +#if LWIP_TCP && TCP_QUEUE_OOSEQ && LWIP_WND_SCALE +/** + * This method modifies a 'pbuf chain', so that its total length is + * smaller than 64K. The remainder of the original pbuf chain is stored + * in *rest. + * This function never creates new pbufs, but splits an existing chain + * in two parts. The tot_len of the modified packet queue will likely be + * smaller than 64K. + * 'packet queues' are not supported by this function. + * + * @param p the pbuf queue to be split + * @param rest pointer to store the remainder (after the first 64K) + */ +void pbuf_split_64k(struct pbuf *p, struct pbuf **rest) +{ + *rest = NULL; + if ((p != NULL) && (p->next != NULL)) { + u16_t tot_len_front = p->len; + struct pbuf *i = p; + struct pbuf *r = p->next; + + /* continue until the total length (summed up as u16_t) overflows */ + while ((r != NULL) && ((u16_t)(tot_len_front + r->len) >= tot_len_front)) { + tot_len_front = (u16_t)(tot_len_front + r->len); + i = r; + r = r->next; + } + /* i now points to last packet of the first segment. Set next + pointer to NULL */ + i->next = NULL; + + if (r != NULL) { + /* Update the tot_len field in the first part */ + for (i = p; i != NULL; i = i->next) { + i->tot_len = (u16_t)(i->tot_len - r->tot_len); + LWIP_ASSERT("tot_len/len mismatch in last pbuf", + (i->next != NULL) || (i->tot_len == i->len)); + } + if (p->flags & PBUF_FLAG_TCP_FIN) { + r->flags |= PBUF_FLAG_TCP_FIN; + } + + /* tot_len field in rest does not need modifications */ + /* reference counters do not need modifications */ + *rest = r; + } + } +} +#endif /* LWIP_TCP && TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + +/* Actual implementation of pbuf_skip() but returning const pointer... */ +static const struct pbuf * +pbuf_skip_const(const struct pbuf *in, u16_t in_offset, u16_t *out_offset) +{ + u16_t offset_left = in_offset; + const struct pbuf *q = in; + + /* get the correct pbuf */ + while ((q != NULL) && (q->len <= offset_left)) { + offset_left = (u16_t)(offset_left - q->len); + q = q->next; + } + if (out_offset != NULL) { + *out_offset = offset_left; + } + return q; +} + +/** + * @ingroup pbuf + * Skip a number of bytes at the start of a pbuf + * + * @param in input pbuf + * @param in_offset offset to skip + * @param out_offset resulting offset in the returned pbuf + * @return the pbuf in the queue where the offset is + */ +struct pbuf * +pbuf_skip(struct pbuf *in, u16_t in_offset, u16_t *out_offset) +{ + const struct pbuf *out = pbuf_skip_const(in, in_offset, out_offset); + return LWIP_CONST_CAST(struct pbuf *, out); +} + +/** + * @ingroup pbuf + * Copy application supplied data into a pbuf. + * This function can only be used to copy the equivalent of buf->tot_len data. + * + * @param buf pbuf to fill with data + * @param dataptr application supplied data buffer + * @param len length of the application supplied data buffer + * + * @return ERR_OK if successful, ERR_MEM if the pbuf is not big enough + */ +err_t +pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len) +{ + struct pbuf *p; + size_t buf_copy_len; + size_t total_copy_len = len; + size_t copied_total = 0; + + LWIP_ERROR("pbuf_take: invalid buf", (buf != NULL), return ERR_ARG;); + LWIP_ERROR("pbuf_take: invalid dataptr", (dataptr != NULL), return ERR_ARG;); + LWIP_ERROR("pbuf_take: buf not large enough", (buf->tot_len >= len), return ERR_MEM;); + + if ((buf == NULL) || (dataptr == NULL) || (buf->tot_len < len)) { + return ERR_ARG; + } + + /* Note some systems use byte copy if dataptr or one of the pbuf payload pointers are unaligned. */ + for (p = buf; total_copy_len != 0; p = p->next) { + LWIP_ASSERT("pbuf_take: invalid pbuf", p != NULL); + buf_copy_len = total_copy_len; + if (buf_copy_len > p->len) { + /* this pbuf cannot hold all remaining data */ + buf_copy_len = p->len; + } + /* copy the necessary parts of the buffer */ + MEMCPY(p->payload, &((const char *)dataptr)[copied_total], buf_copy_len); + total_copy_len -= buf_copy_len; + copied_total += buf_copy_len; + } + LWIP_ASSERT("did not copy all data", total_copy_len == 0 && copied_total == len); + return ERR_OK; +} + +/** + * @ingroup pbuf + * Same as pbuf_take() but puts data at an offset + * + * @param buf pbuf to fill with data + * @param dataptr application supplied data buffer + * @param len length of the application supplied data buffer + * @param offset offset in pbuf where to copy dataptr to + * + * @return ERR_OK if successful, ERR_MEM if the pbuf is not big enough + */ +err_t +pbuf_take_at(struct pbuf *buf, const void *dataptr, u16_t len, u16_t offset) +{ + u16_t target_offset; + struct pbuf *q = pbuf_skip(buf, offset, &target_offset); + + /* return requested data if pbuf is OK */ + if ((q != NULL) && (q->tot_len >= target_offset + len)) { + u16_t remaining_len = len; + const u8_t *src_ptr = (const u8_t *)dataptr; + /* copy the part that goes into the first pbuf */ + u16_t first_copy_len; + LWIP_ASSERT("check pbuf_skip result", target_offset < q->len); + first_copy_len = (u16_t)LWIP_MIN(q->len - target_offset, len); + MEMCPY(((u8_t *)q->payload) + target_offset, dataptr, first_copy_len); + remaining_len = (u16_t)(remaining_len - first_copy_len); + src_ptr += first_copy_len; + if (remaining_len > 0) { + return pbuf_take(q->next, src_ptr, remaining_len); + } + return ERR_OK; + } + return ERR_MEM; +} + +/** + * @ingroup pbuf + * Creates a single pbuf out of a queue of pbufs. + * + * @remark: Either the source pbuf 'p' is freed by this function or the original + * pbuf 'p' is returned, therefore the caller has to check the result! + * + * @param p the source pbuf + * @param layer pbuf_layer of the new pbuf + * + * @return a new, single pbuf (p->next is NULL) + * or the old pbuf if allocation fails + */ +struct pbuf * +pbuf_coalesce(struct pbuf *p, pbuf_layer layer) +{ + struct pbuf *q; + if (p->next == NULL) { + return p; + } + q = pbuf_clone(layer, PBUF_RAM, p); + if (q == NULL) { + /* @todo: what do we do now? */ + return p; + } + pbuf_free(p); + return q; +} + +/** + * @ingroup pbuf + * Allocates a new pbuf of same length (via pbuf_alloc()) and copies the source + * pbuf into this new pbuf (using pbuf_copy()). + * + * @param layer pbuf_layer of the new pbuf + * @param type this parameter decides how and where the pbuf should be allocated + * (@see pbuf_alloc()) + * @param p the source pbuf + * + * @return a new pbuf or NULL if allocation fails + */ +struct pbuf * +pbuf_clone(pbuf_layer layer, pbuf_type type, struct pbuf *p) +{ + struct pbuf *q; + err_t err; + q = pbuf_alloc(layer, p->tot_len, type); + if (q == NULL) { + return NULL; + } + err = pbuf_copy(q, p); + LWIP_UNUSED_ARG(err); /* in case of LWIP_NOASSERT */ + LWIP_ASSERT("pbuf_copy failed", err == ERR_OK); + return q; +} + +#if LWIP_CHECKSUM_ON_COPY +/** + * Copies data into a single pbuf (*not* into a pbuf queue!) and updates + * the checksum while copying + * + * @param p the pbuf to copy data into + * @param start_offset offset of p->payload where to copy the data to + * @param dataptr data to copy into the pbuf + * @param len length of data to copy into the pbuf + * @param chksum pointer to the checksum which is updated + * @return ERR_OK if successful, another error if the data does not fit + * within the (first) pbuf (no pbuf queues!) + */ +err_t +pbuf_fill_chksum(struct pbuf *p, u16_t start_offset, const void *dataptr, + u16_t len, u16_t *chksum) +{ + u32_t acc; + u16_t copy_chksum; + char *dst_ptr; + LWIP_ASSERT("p != NULL", p != NULL); + LWIP_ASSERT("dataptr != NULL", dataptr != NULL); + LWIP_ASSERT("chksum != NULL", chksum != NULL); + LWIP_ASSERT("len != 0", len != 0); + + if ((start_offset >= p->len) || (start_offset + len > p->len)) { + return ERR_ARG; + } + + dst_ptr = ((char *)p->payload) + start_offset; + copy_chksum = LWIP_CHKSUM_COPY(dst_ptr, dataptr, len); + if ((start_offset & 1) != 0) { + copy_chksum = SWAP_BYTES_IN_WORD(copy_chksum); + } + acc = *chksum; + acc += copy_chksum; + *chksum = FOLD_U32T(acc); + return ERR_OK; +} +#endif /* LWIP_CHECKSUM_ON_COPY */ + +/** + * @ingroup pbuf + * Get one byte from the specified position in a pbuf + * WARNING: returns zero for offset >= p->tot_len + * + * @param p pbuf to parse + * @param offset offset into p of the byte to return + * @return byte at an offset into p OR ZERO IF 'offset' >= p->tot_len + */ +u8_t +pbuf_get_at(const struct pbuf *p, u16_t offset) +{ + int ret = pbuf_try_get_at(p, offset); + if (ret >= 0) { + return (u8_t)ret; + } + return 0; +} + +/** + * @ingroup pbuf + * Get one byte from the specified position in a pbuf + * + * @param p pbuf to parse + * @param offset offset into p of the byte to return + * @return byte at an offset into p [0..0xFF] OR negative if 'offset' >= p->tot_len + */ +int +pbuf_try_get_at(const struct pbuf *p, u16_t offset) +{ + u16_t q_idx; + const struct pbuf *q = pbuf_skip_const(p, offset, &q_idx); + + /* return requested data if pbuf is OK */ + if ((q != NULL) && (q->len > q_idx)) { + return ((u8_t *)q->payload)[q_idx]; + } + return -1; +} + +/** + * @ingroup pbuf + * Put one byte to the specified position in a pbuf + * WARNING: silently ignores offset >= p->tot_len + * + * @param p pbuf to fill + * @param offset offset into p of the byte to write + * @param data byte to write at an offset into p + */ +void +pbuf_put_at(struct pbuf *p, u16_t offset, u8_t data) +{ + u16_t q_idx; + struct pbuf *q = pbuf_skip(p, offset, &q_idx); + + /* write requested data if pbuf is OK */ + if ((q != NULL) && (q->len > q_idx)) { + ((u8_t *)q->payload)[q_idx] = data; + } +} + +/** + * @ingroup pbuf + * Compare pbuf contents at specified offset with memory s2, both of length n + * + * @param p pbuf to compare + * @param offset offset into p at which to start comparing + * @param s2 buffer to compare + * @param n length of buffer to compare + * @return zero if equal, nonzero otherwise + * (0xffff if p is too short, diffoffset+1 otherwise) + */ +u16_t +pbuf_memcmp(const struct pbuf *p, u16_t offset, const void *s2, u16_t n) +{ + u16_t start = offset; + const struct pbuf *q = p; + u16_t i; + + /* pbuf long enough to perform check? */ + if (p->tot_len < (offset + n)) { + return 0xffff; + } + + /* get the correct pbuf from chain. We know it succeeds because of p->tot_len check above. */ + while ((q != NULL) && (q->len <= start)) { + start = (u16_t)(start - q->len); + q = q->next; + } + + /* return requested data if pbuf is OK */ + for (i = 0; i < n; i++) { + /* We know pbuf_get_at() succeeds because of p->tot_len check above. */ + u8_t a = pbuf_get_at(q, (u16_t)(start + i)); + u8_t b = ((const u8_t *)s2)[i]; + if (a != b) { + return (u16_t)LWIP_MIN(i + 1, 0xFFFF); + } + } + return 0; +} + +/** + * @ingroup pbuf + * Find occurrence of mem (with length mem_len) in pbuf p, starting at offset + * start_offset. + * + * @param p pbuf to search, maximum length is 0xFFFE since 0xFFFF is used as + * return value 'not found' + * @param mem search for the contents of this buffer + * @param mem_len length of 'mem' + * @param start_offset offset into p at which to start searching + * @return 0xFFFF if substr was not found in p or the index where it was found + */ +u16_t +pbuf_memfind(const struct pbuf *p, const void *mem, u16_t mem_len, u16_t start_offset) +{ + u16_t i; + u16_t max_cmp_start = (u16_t)(p->tot_len - mem_len); + if (p->tot_len >= mem_len + start_offset) { + for (i = start_offset; i <= max_cmp_start; i++) { + u16_t plus = pbuf_memcmp(p, i, mem, mem_len); + if (plus == 0) { + return i; + } + } + } + return 0xFFFF; +} + +/** + * Find occurrence of substr with length substr_len in pbuf p, start at offset + * start_offset + * WARNING: in contrast to strstr(), this one does not stop at the first \0 in + * the pbuf/source string! + * + * @param p pbuf to search, maximum length is 0xFFFE since 0xFFFF is used as + * return value 'not found' + * @param substr string to search for in p, maximum length is 0xFFFE + * @return 0xFFFF if substr was not found in p or the index where it was found + */ +u16_t +pbuf_strstr(const struct pbuf *p, const char *substr) +{ + size_t substr_len; + if ((substr == NULL) || (substr[0] == 0) || (p->tot_len == 0xFFFF)) { + return 0xFFFF; + } + substr_len = strlen(substr); + if (substr_len >= 0xFFFF) { + return 0xFFFF; + } + return pbuf_memfind(p, substr, (u16_t)substr_len, 0); +} diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/raw.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/raw.c new file mode 100644 index 000000000..7a4243258 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/raw.c @@ -0,0 +1,671 @@ +/** + * @file + * Implementation of raw protocol PCBs for low-level handling of + * different types of protocols besides (or overriding) those + * already available in lwIP.\n + * See also @ref raw_raw + * + * @defgroup raw_raw RAW + * @ingroup callbackstyle_api + * Implementation of raw protocol PCBs for low-level handling of + * different types of protocols besides (or overriding) those + * already available in lwIP.\n + * @see @ref api + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_RAW /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/def.h" +#include "lwip/memp.h" +#include "lwip/ip_addr.h" +#include "lwip/netif.h" +#include "lwip/raw.h" +#include "lwip/priv/raw_priv.h" +#include "lwip/stats.h" +#include "lwip/ip6.h" +#include "lwip/ip6_addr.h" +#include "lwip/inet_chksum.h" + +#include + +/** The list of RAW PCBs */ +static struct raw_pcb *raw_pcbs; + +static u8_t +raw_input_local_match(struct raw_pcb *pcb, u8_t broadcast) +{ + LWIP_UNUSED_ARG(broadcast); /* in IPv6 only case */ + + /* check if PCB is bound to specific netif */ + if ((pcb->netif_idx != NETIF_NO_INDEX) && + (pcb->netif_idx != netif_get_index(ip_data.current_input_netif))) { + return 0; + } + +#if LWIP_IPV4 && LWIP_IPV6 + /* Dual-stack: PCBs listening to any IP type also listen to any IP address */ + if (IP_IS_ANY_TYPE_VAL(pcb->local_ip)) { +#if IP_SOF_BROADCAST_RECV + if ((broadcast != 0) && !ip_get_option(pcb, SOF_BROADCAST)) { + return 0; + } +#endif /* IP_SOF_BROADCAST_RECV */ + return 1; + } +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + + /* Only need to check PCB if incoming IP version matches PCB IP version */ + if (IP_ADDR_PCB_VERSION_MATCH_EXACT(pcb, ip_current_dest_addr())) { +#if LWIP_IPV4 + /* Special case: IPv4 broadcast: receive all broadcasts + * Note: broadcast variable can only be 1 if it is an IPv4 broadcast */ + if (broadcast != 0) { +#if IP_SOF_BROADCAST_RECV + if (ip_get_option(pcb, SOF_BROADCAST)) +#endif /* IP_SOF_BROADCAST_RECV */ + { + if (ip4_addr_isany(ip_2_ip4(&pcb->local_ip))) { + return 1; + } + } + } else +#endif /* LWIP_IPV4 */ + /* Handle IPv4 and IPv6: catch all or exact match */ + if (ip_addr_isany(&pcb->local_ip) || + ip_addr_cmp(&pcb->local_ip, ip_current_dest_addr())) { + return 1; + } + } + + return 0; +} + +/** + * Determine if in incoming IP packet is covered by a RAW PCB + * and if so, pass it to a user-provided receive callback function. + * + * Given an incoming IP datagram (as a chain of pbufs) this function + * finds a corresponding RAW PCB and calls the corresponding receive + * callback function. + * + * @param p pbuf to be demultiplexed to a RAW PCB. + * @param inp network interface on which the datagram was received. + * @return - 1 if the packet has been eaten by a RAW PCB receive + * callback function. The caller MAY NOT not reference the + * packet any longer, and MAY NOT call pbuf_free(). + * @return - 0 if packet is not eaten (pbuf is still referenced by the + * caller). + * + */ +raw_input_state_t +raw_input(struct pbuf *p, struct netif *inp) +{ + struct raw_pcb *pcb, *prev; + s16_t proto; + raw_input_state_t ret = RAW_INPUT_NONE; + u8_t broadcast = ip_addr_isbroadcast(ip_current_dest_addr(), ip_current_netif()); + + LWIP_UNUSED_ARG(inp); + +#if LWIP_IPV6 +#if LWIP_IPV4 + if (IP_HDR_GET_VERSION(p->payload) == 6) +#endif /* LWIP_IPV4 */ + { + struct ip6_hdr *ip6hdr = (struct ip6_hdr *)p->payload; + proto = IP6H_NEXTH(ip6hdr); + } +#if LWIP_IPV4 + else +#endif /* LWIP_IPV4 */ +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 + { + proto = IPH_PROTO((struct ip_hdr *)p->payload); + } +#endif /* LWIP_IPV4 */ + + prev = NULL; + pcb = raw_pcbs; + /* loop through all raw pcbs until the packet is eaten by one */ + /* this allows multiple pcbs to match against the packet by design */ + while (pcb != NULL) { + if ((pcb->protocol == proto) && raw_input_local_match(pcb, broadcast) && + (((pcb->flags & RAW_FLAGS_CONNECTED) == 0) || + ip_addr_cmp(&pcb->remote_ip, ip_current_src_addr()))) { + /* receive callback function available? */ + if (pcb->recv != NULL) { + u8_t eaten; +#ifndef LWIP_NOASSERT + void *old_payload = p->payload; +#endif + ret = RAW_INPUT_DELIVERED; + /* the receive callback function did not eat the packet? */ + eaten = pcb->recv(pcb->recv_arg, pcb, p, ip_current_src_addr()); + if (eaten != 0) { + /* receive function ate the packet */ + p = NULL; + if (prev != NULL) { + /* move the pcb to the front of raw_pcbs so that is + found faster next time */ + prev->next = pcb->next; + pcb->next = raw_pcbs; + raw_pcbs = pcb; + } + return RAW_INPUT_EATEN; + } else { + /* sanity-check that the receive callback did not alter the pbuf */ + LWIP_ASSERT("raw pcb recv callback altered pbuf payload pointer without eating packet", + p->payload == old_payload); + } + } + /* no receive callback function was set for this raw PCB */ + } + /* drop the packet */ + prev = pcb; + pcb = pcb->next; + } + return ret; +} + +/** + * @ingroup raw_raw + * Bind a RAW PCB. + * + * @param pcb RAW PCB to be bound with a local address ipaddr. + * @param ipaddr local IP address to bind with. Use IP4_ADDR_ANY to + * bind to all local interfaces. + * + * @return lwIP error code. + * - ERR_OK. Successful. No error occurred. + * - ERR_USE. The specified IP address is already bound to by + * another RAW PCB. + * + * @see raw_disconnect() + */ +err_t +raw_bind(struct raw_pcb *pcb, const ip_addr_t *ipaddr) +{ + LWIP_ASSERT_CORE_LOCKED(); + if ((pcb == NULL) || (ipaddr == NULL)) { + return ERR_VAL; + } + ip_addr_set_ipaddr(&pcb->local_ip, ipaddr); +#if LWIP_IPV6 && LWIP_IPV6_SCOPES + /* If the given IP address should have a zone but doesn't, assign one now. + * This is legacy support: scope-aware callers should always provide properly + * zoned source addresses. */ + if (IP_IS_V6(&pcb->local_ip) && + ip6_addr_lacks_zone(ip_2_ip6(&pcb->local_ip), IP6_UNKNOWN)) { + ip6_addr_select_zone(ip_2_ip6(&pcb->local_ip), ip_2_ip6(&pcb->local_ip)); + } +#endif /* LWIP_IPV6 && LWIP_IPV6_SCOPES */ + return ERR_OK; +} + +/** + * @ingroup raw_raw + * Bind an RAW PCB to a specific netif. + * After calling this function, all packets received via this PCB + * are guaranteed to have come in via the specified netif, and all + * outgoing packets will go out via the specified netif. + * + * @param pcb RAW PCB to be bound with netif. + * @param netif netif to bind to. Can be NULL. + * + * @see raw_disconnect() + */ +void +raw_bind_netif(struct raw_pcb *pcb, const struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + if (netif != NULL) { + pcb->netif_idx = netif_get_index(netif); + } else { + pcb->netif_idx = NETIF_NO_INDEX; + } +} + +/** + * @ingroup raw_raw + * Connect an RAW PCB. This function is required by upper layers + * of lwip. Using the raw api you could use raw_sendto() instead + * + * This will associate the RAW PCB with the remote address. + * + * @param pcb RAW PCB to be connected with remote address ipaddr and port. + * @param ipaddr remote IP address to connect with. + * + * @return lwIP error code + * + * @see raw_disconnect() and raw_sendto() + */ +err_t +raw_connect(struct raw_pcb *pcb, const ip_addr_t *ipaddr) +{ + LWIP_ASSERT_CORE_LOCKED(); + if ((pcb == NULL) || (ipaddr == NULL)) { + return ERR_VAL; + } + ip_addr_set_ipaddr(&pcb->remote_ip, ipaddr); +#if LWIP_IPV6 && LWIP_IPV6_SCOPES + /* If the given IP address should have a zone but doesn't, assign one now, + * using the bound address to make a more informed decision when possible. */ + if (IP_IS_V6(&pcb->remote_ip) && + ip6_addr_lacks_zone(ip_2_ip6(&pcb->remote_ip), IP6_UNKNOWN)) { + ip6_addr_select_zone(ip_2_ip6(&pcb->remote_ip), ip_2_ip6(&pcb->local_ip)); + } +#endif /* LWIP_IPV6 && LWIP_IPV6_SCOPES */ + raw_set_flags(pcb, RAW_FLAGS_CONNECTED); + return ERR_OK; +} + +/** + * @ingroup raw_raw + * Disconnect a RAW PCB. + * + * @param pcb the raw pcb to disconnect. + */ +void +raw_disconnect(struct raw_pcb *pcb) +{ + LWIP_ASSERT_CORE_LOCKED(); + /* reset remote address association */ +#if LWIP_IPV4 && LWIP_IPV6 + if (IP_IS_ANY_TYPE_VAL(pcb->local_ip)) { + ip_addr_copy(pcb->remote_ip, *IP_ANY_TYPE); + } else { +#endif + ip_addr_set_any(IP_IS_V6_VAL(pcb->remote_ip), &pcb->remote_ip); +#if LWIP_IPV4 && LWIP_IPV6 + } +#endif + pcb->netif_idx = NETIF_NO_INDEX; + /* mark PCB as unconnected */ + raw_clear_flags(pcb, RAW_FLAGS_CONNECTED); +} + +/** + * @ingroup raw_raw + * Set the callback function for received packets that match the + * raw PCB's protocol and binding. + * + * The callback function MUST either + * - eat the packet by calling pbuf_free() and returning non-zero. The + * packet will not be passed to other raw PCBs or other protocol layers. + * - not free the packet, and return zero. The packet will be matched + * against further PCBs and/or forwarded to another protocol layers. + */ +void +raw_recv(struct raw_pcb *pcb, raw_recv_fn recv, void *recv_arg) +{ + LWIP_ASSERT_CORE_LOCKED(); + /* remember recv() callback and user data */ + pcb->recv = recv; + pcb->recv_arg = recv_arg; +} + +/** + * @ingroup raw_raw + * Send the raw IP packet to the given address. An IP header will be prepended + * to the packet, unless the RAW_FLAGS_HDRINCL flag is set on the PCB. In that + * case, the packet must include an IP header, which will then be sent as is. + * + * @param pcb the raw pcb which to send + * @param p the IP payload to send + * @param ipaddr the destination address of the IP packet + * + */ +err_t +raw_sendto(struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *ipaddr) +{ + struct netif *netif; + const ip_addr_t *src_ip; + + if ((pcb == NULL) || (ipaddr == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, ipaddr)) { + return ERR_VAL; + } + + LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE, ("raw_sendto\n")); + + if (pcb->netif_idx != NETIF_NO_INDEX) { + netif = netif_get_by_index(pcb->netif_idx); + } else { +#if LWIP_MULTICAST_TX_OPTIONS + netif = NULL; + if (ip_addr_ismulticast(ipaddr)) { + /* For multicast-destined packets, use the user-provided interface index to + * determine the outgoing interface, if an interface index is set and a + * matching netif can be found. Otherwise, fall back to regular routing. */ + netif = netif_get_by_index(pcb->mcast_ifindex); + } + + if (netif == NULL) +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + { + netif = ip_route(&pcb->local_ip, ipaddr); + } + } + + if (netif == NULL) { + LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_LEVEL_WARNING, ("raw_sendto: No route to ")); + ip_addr_debug_print(RAW_DEBUG | LWIP_DBG_LEVEL_WARNING, ipaddr); + return ERR_RTE; + } + + if (ip_addr_isany(&pcb->local_ip) || ip_addr_ismulticast(&pcb->local_ip)) { + /* use outgoing network interface IP address as source address */ + src_ip = ip_netif_get_local_ip(netif, ipaddr); +#if LWIP_IPV6 + if (src_ip == NULL) { + return ERR_RTE; + } +#endif /* LWIP_IPV6 */ + } else { + /* use RAW PCB local IP address as source address */ + src_ip = &pcb->local_ip; + } + + return raw_sendto_if_src(pcb, p, ipaddr, netif, src_ip); +} + +/** + * @ingroup raw_raw + * Send the raw IP packet to the given address, using a particular outgoing + * netif and source IP address. An IP header will be prepended to the packet, + * unless the RAW_FLAGS_HDRINCL flag is set on the PCB. In that case, the + * packet must include an IP header, which will then be sent as is. + * + * @param pcb RAW PCB used to send the data + * @param p chain of pbufs to be sent + * @param dst_ip destination IP address + * @param netif the netif used for sending + * @param src_ip source IP address + */ +err_t +raw_sendto_if_src(struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, + struct netif *netif, const ip_addr_t *src_ip) +{ + err_t err; + struct pbuf *q; /* q will be sent down the stack */ + u16_t header_size; + u8_t ttl; + + LWIP_ASSERT_CORE_LOCKED(); + + if ((pcb == NULL) || (dst_ip == NULL) || (netif == NULL) || (src_ip == NULL) || + !IP_ADDR_PCB_VERSION_MATCH(pcb, src_ip) || !IP_ADDR_PCB_VERSION_MATCH(pcb, dst_ip)) { + return ERR_VAL; + } + + header_size = ( +#if LWIP_IPV4 && LWIP_IPV6 + IP_IS_V6(dst_ip) ? IP6_HLEN : IP_HLEN); +#elif LWIP_IPV4 + IP_HLEN); +#else + IP6_HLEN); +#endif + + /* Handle the HDRINCL option as an exception: none of the code below applies + * to this case, and sending the packet needs to be done differently too. */ + if (pcb->flags & RAW_FLAGS_HDRINCL) { + /* A full header *must* be present in the first pbuf of the chain, as the + * output routines may access its fields directly. */ + if (p->len < header_size) { + return ERR_VAL; + } + /* @todo multicast loop support, if at all desired for this scenario.. */ + NETIF_SET_HINTS(netif, &pcb->netif_hints); + err = ip_output_if_hdrincl(p, src_ip, dst_ip, netif); + NETIF_RESET_HINTS(netif); + return err; + } + + /* packet too large to add an IP header without causing an overflow? */ + if ((u16_t)(p->tot_len + header_size) < p->tot_len) { + return ERR_MEM; + } + /* not enough space to add an IP header to first pbuf in given p chain? */ + if (pbuf_add_header(p, header_size)) { + /* allocate header in new pbuf */ + q = pbuf_alloc(PBUF_IP, 0, PBUF_RAM); + /* new header pbuf could not be allocated? */ + if (q == NULL) { + LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("raw_sendto: could not allocate header\n")); + return ERR_MEM; + } + if (p->tot_len != 0) { + /* chain header q in front of given pbuf p */ + pbuf_chain(q, p); + } + /* { first pbuf q points to header pbuf } */ + LWIP_DEBUGF(RAW_DEBUG, ("raw_sendto: added header pbuf %p before given pbuf %p\n", (void *)q, (void *)p)); + } else { + /* first pbuf q equals given pbuf */ + q = p; + if (pbuf_remove_header(q, header_size)) { + LWIP_ASSERT("Can't restore header we just removed!", 0); + return ERR_MEM; + } + } + +#if IP_SOF_BROADCAST + if (IP_IS_V4(dst_ip)) { + /* broadcast filter? */ + if (!ip_get_option(pcb, SOF_BROADCAST) && ip_addr_isbroadcast(dst_ip, netif)) { + LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_LEVEL_WARNING, ("raw_sendto: SOF_BROADCAST not enabled on pcb %p\n", (void *)pcb)); + /* free any temporary header pbuf allocated by pbuf_header() */ + if (q != p) { + pbuf_free(q); + } + return ERR_VAL; + } + } +#endif /* IP_SOF_BROADCAST */ + + /* Multicast Loop? */ +#if LWIP_MULTICAST_TX_OPTIONS + if (((pcb->flags & RAW_FLAGS_MULTICAST_LOOP) != 0) && ip_addr_ismulticast(dst_ip)) { + q->flags |= PBUF_FLAG_MCASTLOOP; + } +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + +#if LWIP_IPV6 + /* If requested, based on the IPV6_CHECKSUM socket option per RFC3542, + compute the checksum and update the checksum in the payload. */ + if (IP_IS_V6(dst_ip) && pcb->chksum_reqd) { + u16_t chksum = ip6_chksum_pseudo(p, pcb->protocol, p->tot_len, ip_2_ip6(src_ip), ip_2_ip6(dst_ip)); + LWIP_ASSERT("Checksum must fit into first pbuf", p->len >= (pcb->chksum_offset + 2)); + SMEMCPY(((u8_t *)p->payload) + pcb->chksum_offset, &chksum, sizeof(u16_t)); + } +#endif + + /* Determine TTL to use */ +#if LWIP_MULTICAST_TX_OPTIONS + ttl = (ip_addr_ismulticast(dst_ip) ? raw_get_multicast_ttl(pcb) : pcb->ttl); +#else /* LWIP_MULTICAST_TX_OPTIONS */ + ttl = pcb->ttl; +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + + NETIF_SET_HINTS(netif, &pcb->netif_hints); + err = ip_output_if(q, src_ip, dst_ip, ttl, pcb->tos, pcb->protocol, netif); + NETIF_RESET_HINTS(netif); + + /* did we chain a header earlier? */ + if (q != p) { + /* free the header */ + pbuf_free(q); + } + return err; +} + +/** + * @ingroup raw_raw + * Send the raw IP packet to the address given by raw_connect() + * + * @param pcb the raw pcb which to send + * @param p the IP payload to send + * + */ +err_t +raw_send(struct raw_pcb *pcb, struct pbuf *p) +{ + return raw_sendto(pcb, p, &pcb->remote_ip); +} + +/** + * @ingroup raw_raw + * Remove an RAW PCB. + * + * @param pcb RAW PCB to be removed. The PCB is removed from the list of + * RAW PCB's and the data structure is freed from memory. + * + * @see raw_new() + */ +void +raw_remove(struct raw_pcb *pcb) +{ + struct raw_pcb *pcb2; + LWIP_ASSERT_CORE_LOCKED(); + /* pcb to be removed is first in list? */ + if (raw_pcbs == pcb) { + /* make list start at 2nd pcb */ + raw_pcbs = raw_pcbs->next; + /* pcb not 1st in list */ + } else { + for (pcb2 = raw_pcbs; pcb2 != NULL; pcb2 = pcb2->next) { + /* find pcb in raw_pcbs list */ + if (pcb2->next != NULL && pcb2->next == pcb) { + /* remove pcb from list */ + pcb2->next = pcb->next; + break; + } + } + } + memp_free(MEMP_RAW_PCB, pcb); +} + +/** + * @ingroup raw_raw + * Create a RAW PCB. + * + * @return The RAW PCB which was created. NULL if the PCB data structure + * could not be allocated. + * + * @param proto the protocol number of the IPs payload (e.g. IP_PROTO_ICMP) + * + * @see raw_remove() + */ +struct raw_pcb * +raw_new(u8_t proto) +{ + struct raw_pcb *pcb; + + LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE, ("raw_new\n")); + LWIP_ASSERT_CORE_LOCKED(); + + pcb = (struct raw_pcb *)memp_malloc(MEMP_RAW_PCB); + /* could allocate RAW PCB? */ + if (pcb != NULL) { + /* initialize PCB to all zeroes */ + memset(pcb, 0, sizeof(struct raw_pcb)); + pcb->protocol = proto; + pcb->ttl = RAW_TTL; +#if LWIP_MULTICAST_TX_OPTIONS + raw_set_multicast_ttl(pcb, RAW_TTL); +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + pcb->next = raw_pcbs; + raw_pcbs = pcb; + } + return pcb; +} + +/** + * @ingroup raw_raw + * Create a RAW PCB for specific IP type. + * + * @return The RAW PCB which was created. NULL if the PCB data structure + * could not be allocated. + * + * @param type IP address type, see @ref lwip_ip_addr_type definitions. + * If you want to listen to IPv4 and IPv6 (dual-stack) packets, + * supply @ref IPADDR_TYPE_ANY as argument and bind to @ref IP_ANY_TYPE. + * @param proto the protocol number (next header) of the IPv6 packet payload + * (e.g. IP6_NEXTH_ICMP6) + * + * @see raw_remove() + */ +struct raw_pcb * +raw_new_ip_type(u8_t type, u8_t proto) +{ + struct raw_pcb *pcb; + LWIP_ASSERT_CORE_LOCKED(); + pcb = raw_new(proto); +#if LWIP_IPV4 && LWIP_IPV6 + if (pcb != NULL) { + IP_SET_TYPE_VAL(pcb->local_ip, type); + IP_SET_TYPE_VAL(pcb->remote_ip, type); + } +#else /* LWIP_IPV4 && LWIP_IPV6 */ + LWIP_UNUSED_ARG(type); +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + return pcb; +} + +/** This function is called from netif.c when address is changed + * + * @param old_addr IP address of the netif before change + * @param new_addr IP address of the netif after change + */ +void raw_netif_ip_addr_changed(const ip_addr_t *old_addr, const ip_addr_t *new_addr) +{ + struct raw_pcb *rpcb; + + if (!ip_addr_isany(old_addr) && !ip_addr_isany(new_addr)) { + for (rpcb = raw_pcbs; rpcb != NULL; rpcb = rpcb->next) { + /* PCB bound to current local interface address? */ + if (ip_addr_cmp(&rpcb->local_ip, old_addr)) { + /* The PCB is bound to the old ipaddr and + * is set to bound to the new one instead */ + ip_addr_copy(rpcb->local_ip, *new_addr); + } + } + } +} + +#endif /* LWIP_RAW */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/stats.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/stats.c new file mode 100644 index 000000000..4602842ad --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/stats.c @@ -0,0 +1,169 @@ +/** + * @file + * Statistics module + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_STATS /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/def.h" +#include "lwip/stats.h" +#include "lwip/mem.h" +#include "lwip/debug.h" + +#include + +struct stats_ lwip_stats; + +void +stats_init(void) +{ +#ifdef LWIP_DEBUG +#if MEM_STATS + lwip_stats.mem.name = "MEM"; +#endif /* MEM_STATS */ +#endif /* LWIP_DEBUG */ +} + +#if LWIP_STATS_DISPLAY +void +stats_display_proto(struct stats_proto *proto, const char *name) +{ + LWIP_PLATFORM_DIAG(("\n%s\n\t", name)); + LWIP_PLATFORM_DIAG(("xmit: %"STAT_COUNTER_F"\n\t", proto->xmit)); + LWIP_PLATFORM_DIAG(("recv: %"STAT_COUNTER_F"\n\t", proto->recv)); + LWIP_PLATFORM_DIAG(("fw: %"STAT_COUNTER_F"\n\t", proto->fw)); + LWIP_PLATFORM_DIAG(("drop: %"STAT_COUNTER_F"\n\t", proto->drop)); + LWIP_PLATFORM_DIAG(("chkerr: %"STAT_COUNTER_F"\n\t", proto->chkerr)); + LWIP_PLATFORM_DIAG(("lenerr: %"STAT_COUNTER_F"\n\t", proto->lenerr)); + LWIP_PLATFORM_DIAG(("memerr: %"STAT_COUNTER_F"\n\t", proto->memerr)); + LWIP_PLATFORM_DIAG(("rterr: %"STAT_COUNTER_F"\n\t", proto->rterr)); + LWIP_PLATFORM_DIAG(("proterr: %"STAT_COUNTER_F"\n\t", proto->proterr)); + LWIP_PLATFORM_DIAG(("opterr: %"STAT_COUNTER_F"\n\t", proto->opterr)); + LWIP_PLATFORM_DIAG(("err: %"STAT_COUNTER_F"\n\t", proto->err)); + LWIP_PLATFORM_DIAG(("cachehit: %"STAT_COUNTER_F"\n", proto->cachehit)); +} + +#if IGMP_STATS || MLD6_STATS +void +stats_display_igmp(struct stats_igmp *igmp, const char *name) +{ + LWIP_PLATFORM_DIAG(("\n%s\n\t", name)); + LWIP_PLATFORM_DIAG(("xmit: %"STAT_COUNTER_F"\n\t", igmp->xmit)); + LWIP_PLATFORM_DIAG(("recv: %"STAT_COUNTER_F"\n\t", igmp->recv)); + LWIP_PLATFORM_DIAG(("drop: %"STAT_COUNTER_F"\n\t", igmp->drop)); + LWIP_PLATFORM_DIAG(("chkerr: %"STAT_COUNTER_F"\n\t", igmp->chkerr)); + LWIP_PLATFORM_DIAG(("lenerr: %"STAT_COUNTER_F"\n\t", igmp->lenerr)); + LWIP_PLATFORM_DIAG(("memerr: %"STAT_COUNTER_F"\n\t", igmp->memerr)); + LWIP_PLATFORM_DIAG(("proterr: %"STAT_COUNTER_F"\n\t", igmp->proterr)); + LWIP_PLATFORM_DIAG(("rx_v1: %"STAT_COUNTER_F"\n\t", igmp->rx_v1)); + LWIP_PLATFORM_DIAG(("rx_group: %"STAT_COUNTER_F"\n\t", igmp->rx_group)); + LWIP_PLATFORM_DIAG(("rx_general: %"STAT_COUNTER_F"\n\t", igmp->rx_general)); + LWIP_PLATFORM_DIAG(("rx_report: %"STAT_COUNTER_F"\n\t", igmp->rx_report)); + LWIP_PLATFORM_DIAG(("tx_join: %"STAT_COUNTER_F"\n\t", igmp->tx_join)); + LWIP_PLATFORM_DIAG(("tx_leave: %"STAT_COUNTER_F"\n\t", igmp->tx_leave)); + LWIP_PLATFORM_DIAG(("tx_report: %"STAT_COUNTER_F"\n", igmp->tx_report)); +} +#endif /* IGMP_STATS || MLD6_STATS */ + +#if MEM_STATS || MEMP_STATS +void +stats_display_mem(struct stats_mem *mem, const char *name) +{ + LWIP_PLATFORM_DIAG(("\nMEM %s\n\t", name)); + LWIP_PLATFORM_DIAG(("avail: %"MEM_SIZE_F"\n\t", mem->avail)); + LWIP_PLATFORM_DIAG(("used: %"MEM_SIZE_F"\n\t", mem->used)); + LWIP_PLATFORM_DIAG(("max: %"MEM_SIZE_F"\n\t", mem->max)); + LWIP_PLATFORM_DIAG(("err: %"STAT_COUNTER_F"\n", mem->err)); +} + +#if MEMP_STATS +void +stats_display_memp(struct stats_mem *mem, int idx) +{ + if (idx < MEMP_MAX) { + stats_display_mem(mem, mem->name); + } +} +#endif /* MEMP_STATS */ +#endif /* MEM_STATS || MEMP_STATS */ + +#if SYS_STATS +void +stats_display_sys(struct stats_sys *sys) +{ + LWIP_PLATFORM_DIAG(("\nSYS\n\t")); + LWIP_PLATFORM_DIAG(("sem.used: %"STAT_COUNTER_F"\n\t", sys->sem.used)); + LWIP_PLATFORM_DIAG(("sem.max: %"STAT_COUNTER_F"\n\t", sys->sem.max)); + LWIP_PLATFORM_DIAG(("sem.err: %"STAT_COUNTER_F"\n\t", sys->sem.err)); + LWIP_PLATFORM_DIAG(("mutex.used: %"STAT_COUNTER_F"\n\t", sys->mutex.used)); + LWIP_PLATFORM_DIAG(("mutex.max: %"STAT_COUNTER_F"\n\t", sys->mutex.max)); + LWIP_PLATFORM_DIAG(("mutex.err: %"STAT_COUNTER_F"\n\t", sys->mutex.err)); + LWIP_PLATFORM_DIAG(("mbox.used: %"STAT_COUNTER_F"\n\t", sys->mbox.used)); + LWIP_PLATFORM_DIAG(("mbox.max: %"STAT_COUNTER_F"\n\t", sys->mbox.max)); + LWIP_PLATFORM_DIAG(("mbox.err: %"STAT_COUNTER_F"\n", sys->mbox.err)); +} +#endif /* SYS_STATS */ + +void +stats_display(void) +{ + s16_t i; + + LINK_STATS_DISPLAY(); + ETHARP_STATS_DISPLAY(); + IPFRAG_STATS_DISPLAY(); + IP6_FRAG_STATS_DISPLAY(); + IP_STATS_DISPLAY(); + ND6_STATS_DISPLAY(); + IP6_STATS_DISPLAY(); + IGMP_STATS_DISPLAY(); + MLD6_STATS_DISPLAY(); + ICMP_STATS_DISPLAY(); + ICMP6_STATS_DISPLAY(); + UDP_STATS_DISPLAY(); + TCP_STATS_DISPLAY(); + MEM_STATS_DISPLAY(); + for (i = 0; i < MEMP_MAX; i++) { + MEMP_STATS_DISPLAY(i); + } + SYS_STATS_DISPLAY(); +} +#endif /* LWIP_STATS_DISPLAY */ + +#endif /* LWIP_STATS */ + diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/sys.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/sys.c new file mode 100644 index 000000000..b95f4bd61 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/sys.c @@ -0,0 +1,148 @@ +/** + * @file + * lwIP Operating System abstraction + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +/** + * @defgroup sys_layer Porting (system abstraction layer) + * @ingroup lwip + * + * @defgroup sys_os OS abstraction layer + * @ingroup sys_layer + * No need to implement functions in this section in NO_SYS mode. + * The OS-specific code should be implemented in arch/sys_arch.h + * and sys_arch.c of your port. + * + * The operating system emulation layer provides a common interface + * between the lwIP code and the underlying operating system kernel. The + * general idea is that porting lwIP to new architectures requires only + * small changes to a few header files and a new sys_arch + * implementation. It is also possible to do a sys_arch implementation + * that does not rely on any underlying operating system. + * + * The sys_arch provides semaphores, mailboxes and mutexes to lwIP. For the full + * lwIP functionality, multiple threads support can be implemented in the + * sys_arch, but this is not required for the basic lwIP + * functionality. Timer scheduling is implemented in lwIP, but can be implemented + * by the sys_arch port (LWIP_TIMERS_CUSTOM==1). + * + * In addition to the source file providing the functionality of sys_arch, + * the OS emulation layer must provide several header files defining + * macros used throughout lwip. The files required and the macros they + * must define are listed below the sys_arch description. + * + * Since lwIP 1.4.0, semaphore, mutexes and mailbox functions are prototyped in a way that + * allows both using pointers or actual OS structures to be used. This way, memory + * required for such types can be either allocated in place (globally or on the + * stack) or on the heap (allocated internally in the "*_new()" functions). + * + * Note: + * ----- + * Be careful with using mem_malloc() in sys_arch. When malloc() refers to + * mem_malloc() you can run into a circular function call problem. In mem.c + * mem_init() tries to allocate a semaphore using mem_malloc, which of course + * can't be performed when sys_arch uses mem_malloc. + * + * @defgroup sys_sem Semaphores + * @ingroup sys_os + * Semaphores can be either counting or binary - lwIP works with both + * kinds. + * Semaphores are represented by the type "sys_sem_t" which is typedef'd + * in the sys_arch.h file. Mailboxes are equivalently represented by the + * type "sys_mbox_t". Mutexes are represented by the type "sys_mutex_t". + * lwIP does not place any restrictions on how these types are represented + * internally. + * + * @defgroup sys_mutex Mutexes + * @ingroup sys_os + * Mutexes are recommended to correctly handle priority inversion, + * especially if you use LWIP_CORE_LOCKING . + * + * @defgroup sys_mbox Mailboxes + * @ingroup sys_os + * Mailboxes should be implemented as a queue which allows multiple messages + * to be posted (implementing as a rendez-vous point where only one message can be + * posted at a time can have a highly negative impact on performance). A message + * in a mailbox is just a pointer, nothing more. + * + * @defgroup sys_time Time + * @ingroup sys_layer + * + * @defgroup sys_prot Critical sections + * @ingroup sys_layer + * Used to protect short regions of code against concurrent access. + * - Your system is a bare-metal system (probably with an RTOS) + * and interrupts are under your control: + * Implement this as LockInterrupts() / UnlockInterrupts() + * - Your system uses an RTOS with deferred interrupt handling from a + * worker thread: Implement as a global mutex or lock/unlock scheduler + * - Your system uses a high-level OS with e.g. POSIX signals: + * Implement as a global mutex + * + * @defgroup sys_misc Misc + * @ingroup sys_os + */ + +#include "lwip/opt.h" + +#include "lwip/sys.h" + +/* Most of the functions defined in sys.h must be implemented in the + * architecture-dependent file sys_arch.c */ + +#if !NO_SYS + +#ifndef sys_msleep +/** + * Sleep for some ms. Timeouts are NOT processed while sleeping. + * + * @param ms number of milliseconds to sleep + */ +void +sys_msleep(u32_t ms) +{ + if (ms > 0) { + sys_sem_t delaysem; + err_t err = sys_sem_new(&delaysem, 0); + if (err == ERR_OK) { + sys_arch_sem_wait(&delaysem, ms); + sys_sem_free(&delaysem); + } + } +} +#endif /* sys_msleep */ + +#endif /* !NO_SYS */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp.c new file mode 100644 index 000000000..2ff37ef36 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp.c @@ -0,0 +1,2686 @@ +/** + * @file + * Transmission Control Protocol for IP + * See also @ref tcp_raw + * + * @defgroup tcp_raw TCP + * @ingroup callbackstyle_api + * Transmission Control Protocol for IP\n + * @see @ref api + * + * Common functions for the TCP implementation, such as functions + * for manipulating the data structures and the TCP timer functions. TCP functions + * related to input and output is found in tcp_in.c and tcp_out.c respectively.\n + * + * TCP connection setup + * -------------------- + * The functions used for setting up connections is similar to that of + * the sequential API and of the BSD socket API. A new TCP connection + * identifier (i.e., a protocol control block - PCB) is created with the + * tcp_new() function. This PCB can then be either set to listen for new + * incoming connections or be explicitly connected to another host. + * - tcp_new() + * - tcp_bind() + * - tcp_listen() and tcp_listen_with_backlog() + * - tcp_accept() + * - tcp_connect() + * + * Sending TCP data + * ---------------- + * TCP data is sent by enqueueing the data with a call to tcp_write() and + * triggering to send by calling tcp_output(). When the data is successfully + * transmitted to the remote host, the application will be notified with a + * call to a specified callback function. + * - tcp_write() + * - tcp_output() + * - tcp_sent() + * + * Receiving TCP data + * ------------------ + * TCP data reception is callback based - an application specified + * callback function is called when new data arrives. When the + * application has taken the data, it has to call the tcp_recved() + * function to indicate that TCP can advertise increase the receive + * window. + * - tcp_recv() + * - tcp_recved() + * + * Application polling + * ------------------- + * When a connection is idle (i.e., no data is either transmitted or + * received), lwIP will repeatedly poll the application by calling a + * specified callback function. This can be used either as a watchdog + * timer for killing connections that have stayed idle for too long, or + * as a method of waiting for memory to become available. For instance, + * if a call to tcp_write() has failed because memory wasn't available, + * the application may use the polling functionality to call tcp_write() + * again when the connection has been idle for a while. + * - tcp_poll() + * + * Closing and aborting connections + * -------------------------------- + * - tcp_close() + * - tcp_abort() + * - tcp_err() + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/def.h" +#include "lwip/mem.h" +#include "lwip/memp.h" +#include "lwip/tcp.h" +#include "lwip/priv/tcp_priv.h" +#include "lwip/debug.h" +#include "lwip/stats.h" +#include "lwip/ip6.h" +#include "lwip/ip6_addr.h" +#include "lwip/nd6.h" + +#include + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +#ifndef TCP_LOCAL_PORT_RANGE_START +/* From http://www.iana.org/assignments/port-numbers: + "The Dynamic and/or Private Ports are those from 49152 through 65535" */ +#define TCP_LOCAL_PORT_RANGE_START 0xc000 +#define TCP_LOCAL_PORT_RANGE_END 0xffff +#define TCP_ENSURE_LOCAL_PORT_RANGE(port) ((u16_t)(((port) & (u16_t)~TCP_LOCAL_PORT_RANGE_START) + TCP_LOCAL_PORT_RANGE_START)) +#endif + +#if LWIP_TCP_KEEPALIVE +#define TCP_KEEP_DUR(pcb) ((pcb)->keep_cnt * (pcb)->keep_intvl) +#define TCP_KEEP_INTVL(pcb) ((pcb)->keep_intvl) +#else /* LWIP_TCP_KEEPALIVE */ +#define TCP_KEEP_DUR(pcb) TCP_MAXIDLE +#define TCP_KEEP_INTVL(pcb) TCP_KEEPINTVL_DEFAULT +#endif /* LWIP_TCP_KEEPALIVE */ + +/* As initial send MSS, we use TCP_MSS but limit it to 536. */ +#if TCP_MSS > 536 +#define INITIAL_MSS 536 +#else +#define INITIAL_MSS TCP_MSS +#endif + +static const char *const tcp_state_str[] = { + "CLOSED", + "LISTEN", + "SYN_SENT", + "SYN_RCVD", + "ESTABLISHED", + "FIN_WAIT_1", + "FIN_WAIT_2", + "CLOSE_WAIT", + "CLOSING", + "LAST_ACK", + "TIME_WAIT" +}; + +/* last local TCP port */ +static u16_t tcp_port = TCP_LOCAL_PORT_RANGE_START; + +/* Incremented every coarse grained timer shot (typically every 500 ms). */ +u32_t tcp_ticks; +static const u8_t tcp_backoff[13] = +{ 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7}; +/* Times per slowtmr hits */ +static const u8_t tcp_persist_backoff[7] = { 3, 6, 12, 24, 48, 96, 120 }; + +/* The TCP PCB lists. */ + +/** List of all TCP PCBs bound but not yet (connected || listening) */ +struct tcp_pcb *tcp_bound_pcbs; +/** List of all TCP PCBs in LISTEN state */ +union tcp_listen_pcbs_t tcp_listen_pcbs; +/** List of all TCP PCBs that are in a state in which + * they accept or send data. */ +struct tcp_pcb *tcp_active_pcbs; +/** List of all TCP PCBs in TIME-WAIT state */ +struct tcp_pcb *tcp_tw_pcbs; + +/** An array with all (non-temporary) PCB lists, mainly used for smaller code size */ +struct tcp_pcb **const tcp_pcb_lists[] = {&tcp_listen_pcbs.pcbs, &tcp_bound_pcbs, + &tcp_active_pcbs, &tcp_tw_pcbs +}; + +u8_t tcp_active_pcbs_changed; + +/** Timer counter to handle calling slow-timer from tcp_tmr() */ +static u8_t tcp_timer; +static u8_t tcp_timer_ctr; +static u16_t tcp_new_port(void); + +static err_t tcp_close_shutdown_fin(struct tcp_pcb *pcb); +#if LWIP_TCP_PCB_NUM_EXT_ARGS +static void tcp_ext_arg_invoke_callbacks_destroyed(struct tcp_pcb_ext_args *ext_args); +#endif + +/** + * Initialize this module. + */ +void +tcp_init(void) +{ +#ifdef LWIP_RAND + tcp_port = TCP_ENSURE_LOCAL_PORT_RANGE(LWIP_RAND()); +#endif /* LWIP_RAND */ +} + +/** Free a tcp pcb */ +void +tcp_free(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("tcp_free: LISTEN", pcb->state != LISTEN); +#if LWIP_TCP_PCB_NUM_EXT_ARGS + tcp_ext_arg_invoke_callbacks_destroyed(pcb->ext_args); +#endif + memp_free(MEMP_TCP_PCB, pcb); +} + +/** Free a tcp listen pcb */ +static void +tcp_free_listen(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("tcp_free_listen: !LISTEN", pcb->state != LISTEN); +#if LWIP_TCP_PCB_NUM_EXT_ARGS + tcp_ext_arg_invoke_callbacks_destroyed(pcb->ext_args); +#endif + memp_free(MEMP_TCP_PCB_LISTEN, pcb); +} + +/** + * Called periodically to dispatch TCP timers. + */ +void +tcp_tmr(void) +{ + /* Call tcp_fasttmr() every 250 ms */ + tcp_fasttmr(); + + if (++tcp_timer & 1) { + /* Call tcp_slowtmr() every 500 ms, i.e., every other timer + tcp_tmr() is called. */ + tcp_slowtmr(); + } +} + +#if LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG +/** Called when a listen pcb is closed. Iterates one pcb list and removes the + * closed listener pcb from pcb->listener if matching. + */ +static void +tcp_remove_listener(struct tcp_pcb *list, struct tcp_pcb_listen *lpcb) +{ + struct tcp_pcb *pcb; + + LWIP_ASSERT("tcp_remove_listener: invalid listener", lpcb != NULL); + + for (pcb = list; pcb != NULL; pcb = pcb->next) { + if (pcb->listener == lpcb) { + pcb->listener = NULL; + } + } +} +#endif + +/** Called when a listen pcb is closed. Iterates all pcb lists and removes the + * closed listener pcb from pcb->listener if matching. + */ +static void +tcp_listen_closed(struct tcp_pcb *pcb) +{ +#if LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG + size_t i; + LWIP_ASSERT("pcb != NULL", pcb != NULL); + LWIP_ASSERT("pcb->state == LISTEN", pcb->state == LISTEN); + for (i = 1; i < LWIP_ARRAYSIZE(tcp_pcb_lists); i++) { + tcp_remove_listener(*tcp_pcb_lists[i], (struct tcp_pcb_listen *)pcb); + } +#endif + LWIP_UNUSED_ARG(pcb); +} + +#if TCP_LISTEN_BACKLOG +/** @ingroup tcp_raw + * Delay accepting a connection in respect to the listen backlog: + * the number of outstanding connections is increased until + * tcp_backlog_accepted() is called. + * + * ATTENTION: the caller is responsible for calling tcp_backlog_accepted() + * or else the backlog feature will get out of sync! + * + * @param pcb the connection pcb which is not fully accepted yet + */ +void +tcp_backlog_delayed(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("pcb != NULL", pcb != NULL); + LWIP_ASSERT_CORE_LOCKED(); + if ((pcb->flags & TF_BACKLOGPEND) == 0) { + if (pcb->listener != NULL) { + pcb->listener->accepts_pending++; + LWIP_ASSERT("accepts_pending != 0", pcb->listener->accepts_pending != 0); + tcp_set_flags(pcb, TF_BACKLOGPEND); + } + } +} + +/** @ingroup tcp_raw + * A delayed-accept a connection is accepted (or closed/aborted): decreases + * the number of outstanding connections after calling tcp_backlog_delayed(). + * + * ATTENTION: the caller is responsible for calling tcp_backlog_accepted() + * or else the backlog feature will get out of sync! + * + * @param pcb the connection pcb which is now fully accepted (or closed/aborted) + */ +void +tcp_backlog_accepted(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("pcb != NULL", pcb != NULL); + LWIP_ASSERT_CORE_LOCKED(); + if ((pcb->flags & TF_BACKLOGPEND) != 0) { + if (pcb->listener != NULL) { + LWIP_ASSERT("accepts_pending != 0", pcb->listener->accepts_pending != 0); + pcb->listener->accepts_pending--; + tcp_clear_flags(pcb, TF_BACKLOGPEND); + } + } +} +#endif /* TCP_LISTEN_BACKLOG */ + +/** + * Closes the TX side of a connection held by the PCB. + * For tcp_close(), a RST is sent if the application didn't receive all data + * (tcp_recved() not called for all data passed to recv callback). + * + * Listening pcbs are freed and may not be referenced any more. + * Connection pcbs are freed if not yet connected and may not be referenced + * any more. If a connection is established (at least SYN received or in + * a closing state), the connection is closed, and put in a closing state. + * The pcb is then automatically freed in tcp_slowtmr(). It is therefore + * unsafe to reference it. + * + * @param pcb the tcp_pcb to close + * @return ERR_OK if connection has been closed + * another err_t if closing failed and pcb is not freed + */ +static err_t +tcp_close_shutdown(struct tcp_pcb *pcb, u8_t rst_on_unacked_data) +{ + LWIP_ASSERT("tcp_close_shutdown: invalid pcb", pcb != NULL); + + if (rst_on_unacked_data && ((pcb->state == ESTABLISHED) || (pcb->state == CLOSE_WAIT))) { + if ((pcb->refused_data != NULL) || (pcb->rcv_wnd != TCP_WND_MAX(pcb))) { + /* Not all data received by application, send RST to tell the remote + side about this. */ + LWIP_ASSERT("pcb->flags & TF_RXCLOSED", pcb->flags & TF_RXCLOSED); + + /* don't call tcp_abort here: we must not deallocate the pcb since + that might not be expected when calling tcp_close */ + tcp_rst(pcb, pcb->snd_nxt, pcb->rcv_nxt, &pcb->local_ip, &pcb->remote_ip, + pcb->local_port, pcb->remote_port); + + tcp_pcb_purge(pcb); + TCP_RMV_ACTIVE(pcb); + /* Deallocate the pcb since we already sent a RST for it */ + if (tcp_input_pcb == pcb) { + /* prevent using a deallocated pcb: free it from tcp_input later */ + tcp_trigger_input_pcb_close(); + } else { + tcp_free(pcb); + } + return ERR_OK; + } + } + + /* - states which free the pcb are handled here, + - states which send FIN and change state are handled in tcp_close_shutdown_fin() */ + switch (pcb->state) { + case CLOSED: + /* Closing a pcb in the CLOSED state might seem erroneous, + * however, it is in this state once allocated and as yet unused + * and the user needs some way to free it should the need arise. + * Calling tcp_close() with a pcb that has already been closed, (i.e. twice) + * or for a pcb that has been used and then entered the CLOSED state + * is erroneous, but this should never happen as the pcb has in those cases + * been freed, and so any remaining handles are bogus. */ + if (pcb->local_port != 0) { + TCP_RMV(&tcp_bound_pcbs, pcb); + } + tcp_free(pcb); + break; + case LISTEN: + tcp_listen_closed(pcb); + tcp_pcb_remove(&tcp_listen_pcbs.pcbs, pcb); + tcp_free_listen(pcb); + break; + case SYN_SENT: + TCP_PCB_REMOVE_ACTIVE(pcb); + tcp_free(pcb); + MIB2_STATS_INC(mib2.tcpattemptfails); + break; + default: + return tcp_close_shutdown_fin(pcb); + } + return ERR_OK; +} + +static err_t +tcp_close_shutdown_fin(struct tcp_pcb *pcb) +{ + err_t err; + LWIP_ASSERT("pcb != NULL", pcb != NULL); + + switch (pcb->state) { + case SYN_RCVD: + err = tcp_send_fin(pcb); + if (err == ERR_OK) { + tcp_backlog_accepted(pcb); + MIB2_STATS_INC(mib2.tcpattemptfails); + pcb->state = FIN_WAIT_1; + } + break; + case ESTABLISHED: + err = tcp_send_fin(pcb); + if (err == ERR_OK) { + MIB2_STATS_INC(mib2.tcpestabresets); + pcb->state = FIN_WAIT_1; + } + break; + case CLOSE_WAIT: + err = tcp_send_fin(pcb); + if (err == ERR_OK) { + MIB2_STATS_INC(mib2.tcpestabresets); + pcb->state = LAST_ACK; + } + break; + default: + /* Has already been closed, do nothing. */ + return ERR_OK; + } + + if (err == ERR_OK) { + /* To ensure all data has been sent when tcp_close returns, we have + to make sure tcp_output doesn't fail. + Since we don't really have to ensure all data has been sent when tcp_close + returns (unsent data is sent from tcp timer functions, also), we don't care + for the return value of tcp_output for now. */ + tcp_output(pcb); + } else if (err == ERR_MEM) { + /* Mark this pcb for closing. Closing is retried from tcp_tmr. */ + tcp_set_flags(pcb, TF_CLOSEPEND); + /* We have to return ERR_OK from here to indicate to the callers that this + pcb should not be used any more as it will be freed soon via tcp_tmr. + This is OK here since sending FIN does not guarantee a time frime for + actually freeing the pcb, either (it is left in closure states for + remote ACK or timeout) */ + return ERR_OK; + } + return err; +} + +/** + * @ingroup tcp_raw + * Closes the connection held by the PCB. + * + * Listening pcbs are freed and may not be referenced any more. + * Connection pcbs are freed if not yet connected and may not be referenced + * any more. If a connection is established (at least SYN received or in + * a closing state), the connection is closed, and put in a closing state. + * The pcb is then automatically freed in tcp_slowtmr(). It is therefore + * unsafe to reference it (unless an error is returned). + * + * The function may return ERR_MEM if no memory + * was available for closing the connection. If so, the application + * should wait and try again either by using the acknowledgment + * callback or the polling functionality. If the close succeeds, the + * function returns ERR_OK. + * + * @param pcb the tcp_pcb to close + * @return ERR_OK if connection has been closed + * another err_t if closing failed and pcb is not freed + */ +err_t +tcp_close(struct tcp_pcb *pcb) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("tcp_close: invalid pcb", pcb != NULL, return ERR_ARG); + LWIP_DEBUGF(TCP_DEBUG, ("tcp_close: closing in ")); + + tcp_debug_print_state(pcb->state); + + if (pcb->state != LISTEN) { + /* Set a flag not to receive any more data... */ + tcp_set_flags(pcb, TF_RXCLOSED); + } + /* ... and close */ + return tcp_close_shutdown(pcb, 1); +} + +/** + * @ingroup tcp_raw + * Causes all or part of a full-duplex connection of this PCB to be shut down. + * This doesn't deallocate the PCB unless shutting down both sides! + * Shutting down both sides is the same as calling tcp_close, so if it succeds + * (i.e. returns ER_OK), the PCB must not be referenced any more! + * + * @param pcb PCB to shutdown + * @param shut_rx shut down receive side if this is != 0 + * @param shut_tx shut down send side if this is != 0 + * @return ERR_OK if shutdown succeeded (or the PCB has already been shut down) + * another err_t on error. + */ +err_t +tcp_shutdown(struct tcp_pcb *pcb, int shut_rx, int shut_tx) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("tcp_shutdown: invalid pcb", pcb != NULL, return ERR_ARG); + + if (pcb->state == LISTEN) { + return ERR_CONN; + } + if (shut_rx) { + /* shut down the receive side: set a flag not to receive any more data... */ + tcp_set_flags(pcb, TF_RXCLOSED); + if (shut_tx) { + /* shutting down the tx AND rx side is the same as closing for the raw API */ + return tcp_close_shutdown(pcb, 1); + } + /* ... and free buffered data */ + if (pcb->refused_data != NULL) { + pbuf_free(pcb->refused_data); + pcb->refused_data = NULL; + } + } + if (shut_tx) { + /* This can't happen twice since if it succeeds, the pcb's state is changed. + Only close in these states as the others directly deallocate the PCB */ + switch (pcb->state) { + case SYN_RCVD: + case ESTABLISHED: + case CLOSE_WAIT: + return tcp_close_shutdown(pcb, (u8_t)shut_rx); + default: + /* Not (yet?) connected, cannot shutdown the TX side as that would bring us + into CLOSED state, where the PCB is deallocated. */ + return ERR_CONN; + } + } + return ERR_OK; +} + +/** + * Abandons a connection and optionally sends a RST to the remote + * host. Deletes the local protocol control block. This is done when + * a connection is killed because of shortage of memory. + * + * @param pcb the tcp_pcb to abort + * @param reset boolean to indicate whether a reset should be sent + */ +void +tcp_abandon(struct tcp_pcb *pcb, int reset) +{ + u32_t seqno, ackno; +#if LWIP_CALLBACK_API + tcp_err_fn errf; +#endif /* LWIP_CALLBACK_API */ + void *errf_arg; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("tcp_abandon: invalid pcb", pcb != NULL, return); + + /* pcb->state LISTEN not allowed here */ + LWIP_ASSERT("don't call tcp_abort/tcp_abandon for listen-pcbs", + pcb->state != LISTEN); + /* Figure out on which TCP PCB list we are, and remove us. If we + are in an active state, call the receive function associated with + the PCB with a NULL argument, and send an RST to the remote end. */ + if (pcb->state == TIME_WAIT) { + tcp_pcb_remove(&tcp_tw_pcbs, pcb); + tcp_free(pcb); + } else { + int send_rst = 0; + u16_t local_port = 0; + enum tcp_state last_state; + seqno = pcb->snd_nxt; + ackno = pcb->rcv_nxt; +#if LWIP_CALLBACK_API + errf = pcb->errf; +#endif /* LWIP_CALLBACK_API */ + errf_arg = pcb->callback_arg; + if (pcb->state == CLOSED) { + if (pcb->local_port != 0) { + /* bound, not yet opened */ + TCP_RMV(&tcp_bound_pcbs, pcb); + } + } else { + send_rst = reset; + local_port = pcb->local_port; + TCP_PCB_REMOVE_ACTIVE(pcb); + } + if (pcb->unacked != NULL) { + tcp_segs_free(pcb->unacked); + } + if (pcb->unsent != NULL) { + tcp_segs_free(pcb->unsent); + } +#if TCP_QUEUE_OOSEQ + if (pcb->ooseq != NULL) { + tcp_segs_free(pcb->ooseq); + } +#endif /* TCP_QUEUE_OOSEQ */ + tcp_backlog_accepted(pcb); + if (send_rst) { + LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_abandon: sending RST\n")); + tcp_rst(pcb, seqno, ackno, &pcb->local_ip, &pcb->remote_ip, local_port, pcb->remote_port); + } + last_state = pcb->state; + tcp_free(pcb); + TCP_EVENT_ERR(last_state, errf, errf_arg, ERR_ABRT); + } +} + +/** + * @ingroup tcp_raw + * Aborts the connection by sending a RST (reset) segment to the remote + * host. The pcb is deallocated. This function never fails. + * + * ATTENTION: When calling this from one of the TCP callbacks, make + * sure you always return ERR_ABRT (and never return ERR_ABRT otherwise + * or you will risk accessing deallocated memory or memory leaks! + * + * @param pcb the tcp pcb to abort + */ +void +tcp_abort(struct tcp_pcb *pcb) +{ + tcp_abandon(pcb, 1); +} + +/** + * @ingroup tcp_raw + * Binds the connection to a local port number and IP address. If the + * IP address is not given (i.e., ipaddr == IP_ANY_TYPE), the connection is + * bound to all local IP addresses. + * If another connection is bound to the same port, the function will + * return ERR_USE, otherwise ERR_OK is returned. + * + * @param pcb the tcp_pcb to bind (no check is done whether this pcb is + * already bound!) + * @param ipaddr the local ip address to bind to (use IPx_ADDR_ANY to bind + * to any local address + * @param port the local port to bind to + * @return ERR_USE if the port is already in use + * ERR_VAL if bind failed because the PCB is not in a valid state + * ERR_OK if bound + */ +err_t +tcp_bind(struct tcp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port) +{ + int i; + int max_pcb_list = NUM_TCP_PCB_LISTS; + struct tcp_pcb *cpcb; +#if LWIP_IPV6 && LWIP_IPV6_SCOPES + ip_addr_t zoned_ipaddr; +#endif /* LWIP_IPV6 && LWIP_IPV6_SCOPES */ + + LWIP_ASSERT_CORE_LOCKED(); + +#if LWIP_IPV4 + /* Don't propagate NULL pointer (IPv4 ANY) to subsequent functions */ + if (ipaddr == NULL) { + ipaddr = IP4_ADDR_ANY; + } +#else /* LWIP_IPV4 */ + LWIP_ERROR("tcp_bind: invalid ipaddr", ipaddr != NULL, return ERR_ARG); +#endif /* LWIP_IPV4 */ + + LWIP_ERROR("tcp_bind: invalid pcb", pcb != NULL, return ERR_ARG); + + LWIP_ERROR("tcp_bind: can only bind in state CLOSED", pcb->state == CLOSED, return ERR_VAL); + +#if SO_REUSE + /* Unless the REUSEADDR flag is set, + we have to check the pcbs in TIME-WAIT state, also. + We do not dump TIME_WAIT pcb's; they can still be matched by incoming + packets using both local and remote IP addresses and ports to distinguish. + */ + if (ip_get_option(pcb, SOF_REUSEADDR)) { + max_pcb_list = NUM_TCP_PCB_LISTS_NO_TIME_WAIT; + } +#endif /* SO_REUSE */ + +#if LWIP_IPV6 && LWIP_IPV6_SCOPES + /* If the given IP address should have a zone but doesn't, assign one now. + * This is legacy support: scope-aware callers should always provide properly + * zoned source addresses. Do the zone selection before the address-in-use + * check below; as such we have to make a temporary copy of the address. */ + if (IP_IS_V6(ipaddr) && ip6_addr_lacks_zone(ip_2_ip6(ipaddr), IP6_UNICAST)) { + ip_addr_copy(zoned_ipaddr, *ipaddr); + ip6_addr_select_zone(ip_2_ip6(&zoned_ipaddr), ip_2_ip6(&zoned_ipaddr)); + ipaddr = &zoned_ipaddr; + } +#endif /* LWIP_IPV6 && LWIP_IPV6_SCOPES */ + + if (port == 0) { + port = tcp_new_port(); + if (port == 0) { + return ERR_BUF; + } + } else { + /* Check if the address already is in use (on all lists) */ + for (i = 0; i < max_pcb_list; i++) { + for (cpcb = *tcp_pcb_lists[i]; cpcb != NULL; cpcb = cpcb->next) { + if (cpcb->local_port == port) { +#if SO_REUSE + /* Omit checking for the same port if both pcbs have REUSEADDR set. + For SO_REUSEADDR, the duplicate-check for a 5-tuple is done in + tcp_connect. */ + if (!ip_get_option(pcb, SOF_REUSEADDR) || + !ip_get_option(cpcb, SOF_REUSEADDR)) +#endif /* SO_REUSE */ + { + /* @todo: check accept_any_ip_version */ + if ((IP_IS_V6(ipaddr) == IP_IS_V6_VAL(cpcb->local_ip)) && + (ip_addr_isany(&cpcb->local_ip) || + ip_addr_isany(ipaddr) || + ip_addr_cmp(&cpcb->local_ip, ipaddr))) { + return ERR_USE; + } + } + } + } + } + } + + if (!ip_addr_isany(ipaddr) +#if LWIP_IPV4 && LWIP_IPV6 + || (IP_GET_TYPE(ipaddr) != IP_GET_TYPE(&pcb->local_ip)) +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + ) { + ip_addr_set(&pcb->local_ip, ipaddr); + } + pcb->local_port = port; + TCP_REG(&tcp_bound_pcbs, pcb); + LWIP_DEBUGF(TCP_DEBUG, ("tcp_bind: bind to port %"U16_F"\n", port)); + return ERR_OK; +} + +/** + * @ingroup tcp_raw + * Binds the connection to a netif and IP address. + * After calling this function, all packets received via this PCB + * are guaranteed to have come in via the specified netif, and all + * outgoing packets will go out via the specified netif. + * + * @param pcb the tcp_pcb to bind. + * @param netif the netif to bind to. Can be NULL. + */ +void +tcp_bind_netif(struct tcp_pcb *pcb, const struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + if (netif != NULL) { + pcb->netif_idx = netif_get_index(netif); + } else { + pcb->netif_idx = NETIF_NO_INDEX; + } +} + +#if LWIP_CALLBACK_API +/** + * Default accept callback if no accept callback is specified by the user. + */ +static err_t +tcp_accept_null(void *arg, struct tcp_pcb *pcb, err_t err) +{ + LWIP_UNUSED_ARG(arg); + LWIP_UNUSED_ARG(err); + + LWIP_ASSERT("tcp_accept_null: invalid pcb", pcb != NULL); + + tcp_abort(pcb); + + return ERR_ABRT; +} +#endif /* LWIP_CALLBACK_API */ + +/** + * @ingroup tcp_raw + * Set the state of the connection to be LISTEN, which means that it + * is able to accept incoming connections. The protocol control block + * is reallocated in order to consume less memory. Setting the + * connection to LISTEN is an irreversible process. + * When an incoming connection is accepted, the function specified with + * the tcp_accept() function will be called. The pcb has to be bound + * to a local port with the tcp_bind() function. + * + * The tcp_listen() function returns a new connection identifier, and + * the one passed as an argument to the function will be + * deallocated. The reason for this behavior is that less memory is + * needed for a connection that is listening, so tcp_listen() will + * reclaim the memory needed for the original connection and allocate a + * new smaller memory block for the listening connection. + * + * tcp_listen() may return NULL if no memory was available for the + * listening connection. If so, the memory associated with the pcb + * passed as an argument to tcp_listen() will not be deallocated. + * + * The backlog limits the number of outstanding connections + * in the listen queue to the value specified by the backlog argument. + * To use it, your need to set TCP_LISTEN_BACKLOG=1 in your lwipopts.h. + * + * @param pcb the original tcp_pcb + * @param backlog the incoming connections queue limit + * @return tcp_pcb used for listening, consumes less memory. + * + * @note The original tcp_pcb is freed. This function therefore has to be + * called like this: + * tpcb = tcp_listen_with_backlog(tpcb, backlog); + */ +struct tcp_pcb * +tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog) +{ + LWIP_ASSERT_CORE_LOCKED(); + return tcp_listen_with_backlog_and_err(pcb, backlog, NULL); +} + +/** + * @ingroup tcp_raw + * Set the state of the connection to be LISTEN, which means that it + * is able to accept incoming connections. The protocol control block + * is reallocated in order to consume less memory. Setting the + * connection to LISTEN is an irreversible process. + * + * @param pcb the original tcp_pcb + * @param backlog the incoming connections queue limit + * @param err when NULL is returned, this contains the error reason + * @return tcp_pcb used for listening, consumes less memory. + * + * @note The original tcp_pcb is freed. This function therefore has to be + * called like this: + * tpcb = tcp_listen_with_backlog_and_err(tpcb, backlog, &err); + */ +struct tcp_pcb * +tcp_listen_with_backlog_and_err(struct tcp_pcb *pcb, u8_t backlog, err_t *err) +{ + struct tcp_pcb_listen *lpcb = NULL; + err_t res; + + LWIP_UNUSED_ARG(backlog); + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("tcp_listen_with_backlog_and_err: invalid pcb", pcb != NULL, res = ERR_ARG; goto done); + LWIP_ERROR("tcp_listen_with_backlog_and_err: pcb already connected", pcb->state == CLOSED, res = ERR_CLSD; goto done); + + /* already listening? */ + if (pcb->state == LISTEN) { + lpcb = (struct tcp_pcb_listen *)pcb; + res = ERR_ALREADY; + goto done; + } +#if SO_REUSE + if (ip_get_option(pcb, SOF_REUSEADDR)) { + /* Since SOF_REUSEADDR allows reusing a local address before the pcb's usage + is declared (listen-/connection-pcb), we have to make sure now that + this port is only used once for every local IP. */ + for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) { + if ((lpcb->local_port == pcb->local_port) && + ip_addr_cmp(&lpcb->local_ip, &pcb->local_ip)) { + /* this address/port is already used */ + lpcb = NULL; + res = ERR_USE; + goto done; + } + } + } +#endif /* SO_REUSE */ + lpcb = (struct tcp_pcb_listen *)memp_malloc(MEMP_TCP_PCB_LISTEN); + if (lpcb == NULL) { + res = ERR_MEM; + goto done; + } + lpcb->callback_arg = pcb->callback_arg; + lpcb->local_port = pcb->local_port; + lpcb->state = LISTEN; + lpcb->prio = pcb->prio; + lpcb->so_options = pcb->so_options; + lpcb->netif_idx = NETIF_NO_INDEX; + lpcb->ttl = pcb->ttl; + lpcb->tos = pcb->tos; +#if LWIP_IPV4 && LWIP_IPV6 + IP_SET_TYPE_VAL(lpcb->remote_ip, pcb->local_ip.type); +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + ip_addr_copy(lpcb->local_ip, pcb->local_ip); + if (pcb->local_port != 0) { + TCP_RMV(&tcp_bound_pcbs, pcb); + } +#if LWIP_TCP_PCB_NUM_EXT_ARGS + /* copy over ext_args to listening pcb */ + memcpy(&lpcb->ext_args, &pcb->ext_args, sizeof(pcb->ext_args)); +#endif + tcp_free(pcb); +#if LWIP_CALLBACK_API + lpcb->accept = tcp_accept_null; +#endif /* LWIP_CALLBACK_API */ +#if TCP_LISTEN_BACKLOG + lpcb->accepts_pending = 0; + tcp_backlog_set(lpcb, backlog); +#endif /* TCP_LISTEN_BACKLOG */ + TCP_REG(&tcp_listen_pcbs.pcbs, (struct tcp_pcb *)lpcb); + res = ERR_OK; +done: + if (err != NULL) { + *err = res; + } + return (struct tcp_pcb *)lpcb; +} + +/** + * Update the state that tracks the available window space to advertise. + * + * Returns how much extra window would be advertised if we sent an + * update now. + */ +u32_t +tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb) +{ + u32_t new_right_edge; + + LWIP_ASSERT("tcp_update_rcv_ann_wnd: invalid pcb", pcb != NULL); + new_right_edge = pcb->rcv_nxt + pcb->rcv_wnd; + + if (TCP_SEQ_GEQ(new_right_edge, pcb->rcv_ann_right_edge + LWIP_MIN((TCP_WND / 2), pcb->mss))) { + /* we can advertise more window */ + pcb->rcv_ann_wnd = pcb->rcv_wnd; + return new_right_edge - pcb->rcv_ann_right_edge; + } else { + if (TCP_SEQ_GT(pcb->rcv_nxt, pcb->rcv_ann_right_edge)) { + /* Can happen due to other end sending out of advertised window, + * but within actual available (but not yet advertised) window */ + pcb->rcv_ann_wnd = 0; + } else { + /* keep the right edge of window constant */ + u32_t new_rcv_ann_wnd = pcb->rcv_ann_right_edge - pcb->rcv_nxt; +#if !LWIP_WND_SCALE + LWIP_ASSERT("new_rcv_ann_wnd <= 0xffff", new_rcv_ann_wnd <= 0xffff); +#endif + pcb->rcv_ann_wnd = (tcpwnd_size_t)new_rcv_ann_wnd; + } + return 0; + } +} + +/** + * @ingroup tcp_raw + * This function should be called by the application when it has + * processed the data. The purpose is to advertise a larger window + * when the data has been processed. + * + * @param pcb the tcp_pcb for which data is read + * @param len the amount of bytes that have been read by the application + */ +void +tcp_recved(struct tcp_pcb *pcb, u16_t len) +{ + u32_t wnd_inflation; + tcpwnd_size_t rcv_wnd; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("tcp_recved: invalid pcb", pcb != NULL, return); + + /* pcb->state LISTEN not allowed here */ + LWIP_ASSERT("don't call tcp_recved for listen-pcbs", + pcb->state != LISTEN); + + rcv_wnd = (tcpwnd_size_t)(pcb->rcv_wnd + len); + if ((rcv_wnd > TCP_WND_MAX(pcb)) || (rcv_wnd < pcb->rcv_wnd)) { + /* window got too big or tcpwnd_size_t overflow */ + LWIP_DEBUGF(TCP_DEBUG, ("tcp_recved: window got too big or tcpwnd_size_t overflow\n")); + pcb->rcv_wnd = TCP_WND_MAX(pcb); + } else { + pcb->rcv_wnd = rcv_wnd; + } + + wnd_inflation = tcp_update_rcv_ann_wnd(pcb); + + /* If the change in the right edge of window is significant (default + * watermark is TCP_WND/4), then send an explicit update now. + * Otherwise wait for a packet to be sent in the normal course of + * events (or more window to be available later) */ + if (wnd_inflation >= TCP_WND_UPDATE_THRESHOLD) { + tcp_ack_now(pcb); + tcp_output(pcb); + } + + LWIP_DEBUGF(TCP_DEBUG, ("tcp_recved: received %"U16_F" bytes, wnd %"TCPWNDSIZE_F" (%"TCPWNDSIZE_F").\n", + len, pcb->rcv_wnd, (u16_t)(TCP_WND_MAX(pcb) - pcb->rcv_wnd))); +} + +/** + * Allocate a new local TCP port. + * + * @return a new (free) local TCP port number + */ +static u16_t +tcp_new_port(void) +{ + u8_t i; + u16_t n = 0; + struct tcp_pcb *pcb; + +again: + tcp_port++; + if (tcp_port == TCP_LOCAL_PORT_RANGE_END) { + tcp_port = TCP_LOCAL_PORT_RANGE_START; + } + /* Check all PCB lists. */ + for (i = 0; i < NUM_TCP_PCB_LISTS; i++) { + for (pcb = *tcp_pcb_lists[i]; pcb != NULL; pcb = pcb->next) { + if (pcb->local_port == tcp_port) { + n++; + if (n > (TCP_LOCAL_PORT_RANGE_END - TCP_LOCAL_PORT_RANGE_START)) { + return 0; + } + goto again; + } + } + } + return tcp_port; +} + +/** + * @ingroup tcp_raw + * Connects to another host. The function given as the "connected" + * argument will be called when the connection has been established. + * Sets up the pcb to connect to the remote host and sends the + * initial SYN segment which opens the connection. + * + * The tcp_connect() function returns immediately; it does not wait for + * the connection to be properly setup. Instead, it will call the + * function specified as the fourth argument (the "connected" argument) + * when the connection is established. If the connection could not be + * properly established, either because the other host refused the + * connection or because the other host didn't answer, the "err" + * callback function of this pcb (registered with tcp_err, see below) + * will be called. + * + * The tcp_connect() function can return ERR_MEM if no memory is + * available for enqueueing the SYN segment. If the SYN indeed was + * enqueued successfully, the tcp_connect() function returns ERR_OK. + * + * @param pcb the tcp_pcb used to establish the connection + * @param ipaddr the remote ip address to connect to + * @param port the remote tcp port to connect to + * @param connected callback function to call when connected (on error, + the err calback will be called) + * @return ERR_VAL if invalid arguments are given + * ERR_OK if connect request has been sent + * other err_t values if connect request couldn't be sent + */ +err_t +tcp_connect(struct tcp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port, + tcp_connected_fn connected) +{ + struct netif *netif = NULL; + err_t ret; + u32_t iss; + u16_t old_local_port; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("tcp_connect: invalid pcb", pcb != NULL, return ERR_ARG); + LWIP_ERROR("tcp_connect: invalid ipaddr", ipaddr != NULL, return ERR_ARG); + + LWIP_ERROR("tcp_connect: can only connect from state CLOSED", pcb->state == CLOSED, return ERR_ISCONN); + + LWIP_DEBUGF(TCP_DEBUG, ("tcp_connect to port %"U16_F"\n", port)); + ip_addr_set(&pcb->remote_ip, ipaddr); + pcb->remote_port = port; + + if (pcb->netif_idx != NETIF_NO_INDEX) { + netif = netif_get_by_index(pcb->netif_idx); + } else { + /* check if we have a route to the remote host */ + netif = ip_route(&pcb->local_ip, &pcb->remote_ip); + } + if (netif == NULL) { + /* Don't even try to send a SYN packet if we have no route since that will fail. */ + return ERR_RTE; + } + + /* check if local IP has been assigned to pcb, if not, get one */ + if (ip_addr_isany(&pcb->local_ip)) { + const ip_addr_t *local_ip = ip_netif_get_local_ip(netif, ipaddr); + if (local_ip == NULL) { + return ERR_RTE; + } + ip_addr_copy(pcb->local_ip, *local_ip); + } + +#if LWIP_IPV6 && LWIP_IPV6_SCOPES + /* If the given IP address should have a zone but doesn't, assign one now. + * Given that we already have the target netif, this is easy and cheap. */ + if (IP_IS_V6(&pcb->remote_ip) && + ip6_addr_lacks_zone(ip_2_ip6(&pcb->remote_ip), IP6_UNICAST)) { + ip6_addr_assign_zone(ip_2_ip6(&pcb->remote_ip), IP6_UNICAST, netif); + } +#endif /* LWIP_IPV6 && LWIP_IPV6_SCOPES */ + + old_local_port = pcb->local_port; + if (pcb->local_port == 0) { + pcb->local_port = tcp_new_port(); + if (pcb->local_port == 0) { + return ERR_BUF; + } + } else { +#if SO_REUSE + if (ip_get_option(pcb, SOF_REUSEADDR)) { + /* Since SOF_REUSEADDR allows reusing a local address, we have to make sure + now that the 5-tuple is unique. */ + struct tcp_pcb *cpcb; + int i; + /* Don't check listen- and bound-PCBs, check active- and TIME-WAIT PCBs. */ + for (i = 2; i < NUM_TCP_PCB_LISTS; i++) { + for (cpcb = *tcp_pcb_lists[i]; cpcb != NULL; cpcb = cpcb->next) { + if ((cpcb->local_port == pcb->local_port) && + (cpcb->remote_port == port) && + ip_addr_cmp(&cpcb->local_ip, &pcb->local_ip) && + ip_addr_cmp(&cpcb->remote_ip, ipaddr)) { + /* linux returns EISCONN here, but ERR_USE should be OK for us */ + return ERR_USE; + } + } + } + } +#endif /* SO_REUSE */ + } + + iss = tcp_next_iss(pcb); + pcb->rcv_nxt = 0; + pcb->snd_nxt = iss; + pcb->lastack = iss - 1; + pcb->snd_wl2 = iss - 1; + pcb->snd_lbb = iss - 1; + /* Start with a window that does not need scaling. When window scaling is + enabled and used, the window is enlarged when both sides agree on scaling. */ + pcb->rcv_wnd = pcb->rcv_ann_wnd = TCPWND_MIN16(TCP_WND); + pcb->rcv_ann_right_edge = pcb->rcv_nxt; + pcb->snd_wnd = TCP_WND; + /* As initial send MSS, we use TCP_MSS but limit it to 536. + The send MSS is updated when an MSS option is received. */ + pcb->mss = INITIAL_MSS; +#if TCP_CALCULATE_EFF_SEND_MSS + pcb->mss = tcp_eff_send_mss_netif(pcb->mss, netif, &pcb->remote_ip); +#endif /* TCP_CALCULATE_EFF_SEND_MSS */ + pcb->cwnd = 1; +#if LWIP_CALLBACK_API + pcb->connected = connected; +#else /* LWIP_CALLBACK_API */ + LWIP_UNUSED_ARG(connected); +#endif /* LWIP_CALLBACK_API */ + + /* Send a SYN together with the MSS option. */ + ret = tcp_enqueue_flags(pcb, TCP_SYN); + if (ret == ERR_OK) { + /* SYN segment was enqueued, changed the pcbs state now */ + pcb->state = SYN_SENT; + if (old_local_port != 0) { + TCP_RMV(&tcp_bound_pcbs, pcb); + } + TCP_REG_ACTIVE(pcb); + MIB2_STATS_INC(mib2.tcpactiveopens); + + tcp_output(pcb); + } + return ret; +} + +/** + * Called every 500 ms and implements the retransmission timer and the timer that + * removes PCBs that have been in TIME-WAIT for enough time. It also increments + * various timers such as the inactivity timer in each PCB. + * + * Automatically called from tcp_tmr(). + */ +void +tcp_slowtmr(void) +{ + struct tcp_pcb *pcb, *prev; + tcpwnd_size_t eff_wnd; + u8_t pcb_remove; /* flag if a PCB should be removed */ + u8_t pcb_reset; /* flag if a RST should be sent when removing */ + err_t err; + + err = ERR_OK; + + ++tcp_ticks; + ++tcp_timer_ctr; + +tcp_slowtmr_start: + /* Steps through all of the active PCBs. */ + prev = NULL; + pcb = tcp_active_pcbs; + if (pcb == NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs\n")); + } + while (pcb != NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb\n")); + LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSED\n", pcb->state != CLOSED); + LWIP_ASSERT("tcp_slowtmr: active pcb->state != LISTEN\n", pcb->state != LISTEN); + LWIP_ASSERT("tcp_slowtmr: active pcb->state != TIME-WAIT\n", pcb->state != TIME_WAIT); + if (pcb->last_timer == tcp_timer_ctr) { + /* skip this pcb, we have already processed it */ + prev = pcb; + pcb = pcb->next; + continue; + } + pcb->last_timer = tcp_timer_ctr; + + pcb_remove = 0; + pcb_reset = 0; + + if (pcb->state == SYN_SENT && pcb->nrtx >= TCP_SYNMAXRTX) { + ++pcb_remove; + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max SYN retries reached\n")); + } else if (pcb->nrtx >= TCP_MAXRTX) { + ++pcb_remove; + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max DATA retries reached\n")); + } else { + if (pcb->persist_backoff > 0) { + LWIP_ASSERT("tcp_slowtimr: persist ticking with in-flight data", pcb->unacked == NULL); + LWIP_ASSERT("tcp_slowtimr: persist ticking with empty send buffer", pcb->unsent != NULL); + if (pcb->persist_probe >= TCP_MAXRTX) { + ++pcb_remove; /* max probes reached */ + } else { + u8_t backoff_cnt = tcp_persist_backoff[pcb->persist_backoff - 1]; + if (pcb->persist_cnt < backoff_cnt) { + pcb->persist_cnt++; + } + if (pcb->persist_cnt >= backoff_cnt) { + int next_slot = 1; /* increment timer to next slot */ + /* If snd_wnd is zero, send 1 byte probes */ + if (pcb->snd_wnd == 0) { + if (tcp_zero_window_probe(pcb) != ERR_OK) { + next_slot = 0; /* try probe again with current slot */ + } + /* snd_wnd not fully closed, split unsent head and fill window */ + } else { + if (tcp_split_unsent_seg(pcb, (u16_t)pcb->snd_wnd) == ERR_OK) { + if (tcp_output(pcb) == ERR_OK) { + /* sending will cancel persist timer, else retry with current slot */ + next_slot = 0; + } + } + } + if (next_slot) { + pcb->persist_cnt = 0; + if (pcb->persist_backoff < sizeof(tcp_persist_backoff)) { + pcb->persist_backoff++; + } + } + } + } + } else { + /* Increase the retransmission timer if it is running */ + if ((pcb->rtime >= 0) && (pcb->rtime < 0x7FFF)) { + ++pcb->rtime; + } + + if (pcb->rtime >= pcb->rto) { + /* Time for a retransmission. */ + LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_slowtmr: rtime %"S16_F + " pcb->rto %"S16_F"\n", + pcb->rtime, pcb->rto)); + /* If prepare phase fails but we have unsent data but no unacked data, + still execute the backoff calculations below, as this means we somehow + failed to send segment. */ + if ((tcp_rexmit_rto_prepare(pcb) == ERR_OK) || ((pcb->unacked == NULL) && (pcb->unsent != NULL))) { + /* Double retransmission time-out unless we are trying to + * connect to somebody (i.e., we are in SYN_SENT). */ + if (pcb->state != SYN_SENT) { + u8_t backoff_idx = LWIP_MIN(pcb->nrtx, sizeof(tcp_backoff) - 1); + int calc_rto = ((pcb->sa >> 3) + pcb->sv) << tcp_backoff[backoff_idx]; + pcb->rto = (s16_t)LWIP_MIN(calc_rto, 0x7FFF); + } + + /* Reset the retransmission timer. */ + pcb->rtime = 0; + + /* Reduce congestion window and ssthresh. */ + eff_wnd = LWIP_MIN(pcb->cwnd, pcb->snd_wnd); + pcb->ssthresh = eff_wnd >> 1; + if (pcb->ssthresh < (tcpwnd_size_t)(pcb->mss << 1)) { + pcb->ssthresh = (tcpwnd_size_t)(pcb->mss << 1); + } + pcb->cwnd = pcb->mss; + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: cwnd %"TCPWNDSIZE_F + " ssthresh %"TCPWNDSIZE_F"\n", + pcb->cwnd, pcb->ssthresh)); + pcb->bytes_acked = 0; + + /* The following needs to be called AFTER cwnd is set to one + mss - STJ */ + tcp_rexmit_rto_commit(pcb); + } + } + } + } + /* Check if this PCB has stayed too long in FIN-WAIT-2 */ + if (pcb->state == FIN_WAIT_2) { + /* If this PCB is in FIN_WAIT_2 because of SHUT_WR don't let it time out. */ + if (pcb->flags & TF_RXCLOSED) { + /* PCB was fully closed (either through close() or SHUT_RDWR): + normal FIN-WAIT timeout handling. */ + if ((u32_t)(tcp_ticks - pcb->tmr) > + TCP_FIN_WAIT_TIMEOUT / TCP_SLOW_INTERVAL) { + ++pcb_remove; + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in FIN-WAIT-2\n")); + } + } + } + + /* Check if KEEPALIVE should be sent */ + if (ip_get_option(pcb, SOF_KEEPALIVE) && + ((pcb->state == ESTABLISHED) || + (pcb->state == CLOSE_WAIT))) { + if ((u32_t)(tcp_ticks - pcb->tmr) > + (pcb->keep_idle + TCP_KEEP_DUR(pcb)) / TCP_SLOW_INTERVAL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: KEEPALIVE timeout. Aborting connection to ")); + ip_addr_debug_print_val(TCP_DEBUG, pcb->remote_ip); + LWIP_DEBUGF(TCP_DEBUG, ("\n")); + + ++pcb_remove; + ++pcb_reset; + } else if ((u32_t)(tcp_ticks - pcb->tmr) > + (pcb->keep_idle + pcb->keep_cnt_sent * TCP_KEEP_INTVL(pcb)) + / TCP_SLOW_INTERVAL) { + err = tcp_keepalive(pcb); + if (err == ERR_OK) { + pcb->keep_cnt_sent++; + } + } + } + + /* If this PCB has queued out of sequence data, but has been + inactive for too long, will drop the data (it will eventually + be retransmitted). */ +#if TCP_QUEUE_OOSEQ + if (pcb->ooseq != NULL && + (tcp_ticks - pcb->tmr >= (u32_t)pcb->rto * TCP_OOSEQ_TIMEOUT)) { + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: dropping OOSEQ queued data\n")); + tcp_free_ooseq(pcb); + } +#endif /* TCP_QUEUE_OOSEQ */ + + /* Check if this PCB has stayed too long in SYN-RCVD */ + if (pcb->state == SYN_RCVD) { + if ((u32_t)(tcp_ticks - pcb->tmr) > + TCP_SYN_RCVD_TIMEOUT / TCP_SLOW_INTERVAL) { + ++pcb_remove; + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in SYN-RCVD\n")); + } + } + + /* Check if this PCB has stayed too long in LAST-ACK */ + if (pcb->state == LAST_ACK) { + if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) { + ++pcb_remove; + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in LAST-ACK\n")); + } + } + + /* If the PCB should be removed, do it. */ + if (pcb_remove) { + struct tcp_pcb *pcb2; +#if LWIP_CALLBACK_API + tcp_err_fn err_fn = pcb->errf; +#endif /* LWIP_CALLBACK_API */ + void *err_arg; + enum tcp_state last_state; + tcp_pcb_purge(pcb); + /* Remove PCB from tcp_active_pcbs list. */ + if (prev != NULL) { + LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_active_pcbs", pcb != tcp_active_pcbs); + prev->next = pcb->next; + } else { + /* This PCB was the first. */ + LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_active_pcbs", tcp_active_pcbs == pcb); + tcp_active_pcbs = pcb->next; + } + + if (pcb_reset) { + tcp_rst(pcb, pcb->snd_nxt, pcb->rcv_nxt, &pcb->local_ip, &pcb->remote_ip, + pcb->local_port, pcb->remote_port); + } + + err_arg = pcb->callback_arg; + last_state = pcb->state; + pcb2 = pcb; + pcb = pcb->next; + tcp_free(pcb2); + + tcp_active_pcbs_changed = 0; + TCP_EVENT_ERR(last_state, err_fn, err_arg, ERR_ABRT); + if (tcp_active_pcbs_changed) { + goto tcp_slowtmr_start; + } + } else { + /* get the 'next' element now and work with 'prev' below (in case of abort) */ + prev = pcb; + pcb = pcb->next; + + /* We check if we should poll the connection. */ + ++prev->polltmr; + if (prev->polltmr >= prev->pollinterval) { + prev->polltmr = 0; + LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: polling application\n")); + tcp_active_pcbs_changed = 0; + TCP_EVENT_POLL(prev, err); + if (tcp_active_pcbs_changed) { + goto tcp_slowtmr_start; + } + /* if err == ERR_ABRT, 'prev' is already deallocated */ + if (err == ERR_OK) { + tcp_output(prev); + } + } + } + } + + + /* Steps through all of the TIME-WAIT PCBs. */ + prev = NULL; + pcb = tcp_tw_pcbs; + while (pcb != NULL) { + LWIP_ASSERT("tcp_slowtmr: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT); + pcb_remove = 0; + + /* Check if this PCB has stayed long enough in TIME-WAIT */ + if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) { + ++pcb_remove; + } + + /* If the PCB should be removed, do it. */ + if (pcb_remove) { + struct tcp_pcb *pcb2; + tcp_pcb_purge(pcb); + /* Remove PCB from tcp_tw_pcbs list. */ + if (prev != NULL) { + LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_tw_pcbs", pcb != tcp_tw_pcbs); + prev->next = pcb->next; + } else { + /* This PCB was the first. */ + LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb); + tcp_tw_pcbs = pcb->next; + } + pcb2 = pcb; + pcb = pcb->next; + tcp_free(pcb2); + } else { + prev = pcb; + pcb = pcb->next; + } + } +} + +/** + * Is called every TCP_FAST_INTERVAL (250 ms) and process data previously + * "refused" by upper layer (application) and sends delayed ACKs or pending FINs. + * + * Automatically called from tcp_tmr(). + */ +void +tcp_fasttmr(void) +{ + struct tcp_pcb *pcb; + + ++tcp_timer_ctr; + +tcp_fasttmr_start: + pcb = tcp_active_pcbs; + + while (pcb != NULL) { + if (pcb->last_timer != tcp_timer_ctr) { + struct tcp_pcb *next; + pcb->last_timer = tcp_timer_ctr; + /* send delayed ACKs */ + if (pcb->flags & TF_ACK_DELAY) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_fasttmr: delayed ACK\n")); + tcp_ack_now(pcb); + tcp_output(pcb); + tcp_clear_flags(pcb, TF_ACK_DELAY | TF_ACK_NOW); + } + /* send pending FIN */ + if (pcb->flags & TF_CLOSEPEND) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_fasttmr: pending FIN\n")); + tcp_clear_flags(pcb, TF_CLOSEPEND); + tcp_close_shutdown_fin(pcb); + } + + next = pcb->next; + + /* If there is data which was previously "refused" by upper layer */ + if (pcb->refused_data != NULL) { + tcp_active_pcbs_changed = 0; + tcp_process_refused_data(pcb); + if (tcp_active_pcbs_changed) { + /* application callback has changed the pcb list: restart the loop */ + goto tcp_fasttmr_start; + } + } + pcb = next; + } else { + pcb = pcb->next; + } + } +} + +/** Call tcp_output for all active pcbs that have TF_NAGLEMEMERR set */ +void +tcp_txnow(void) +{ + struct tcp_pcb *pcb; + + for (pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { + if (pcb->flags & TF_NAGLEMEMERR) { + tcp_output(pcb); + } + } +} + +/** Pass pcb->refused_data to the recv callback */ +err_t +tcp_process_refused_data(struct tcp_pcb *pcb) +{ +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + struct pbuf *rest; +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + + LWIP_ERROR("tcp_process_refused_data: invalid pcb", pcb != NULL, return ERR_ARG); + +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + while (pcb->refused_data != NULL) +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + { + err_t err; + u8_t refused_flags = pcb->refused_data->flags; + /* set pcb->refused_data to NULL in case the callback frees it and then + closes the pcb */ + struct pbuf *refused_data = pcb->refused_data; +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + pbuf_split_64k(refused_data, &rest); + pcb->refused_data = rest; +#else /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + pcb->refused_data = NULL; +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + /* Notify again application with data previously received. */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: notify kept packet\n")); + TCP_EVENT_RECV(pcb, refused_data, ERR_OK, err); + if (err == ERR_OK) { + /* did refused_data include a FIN? */ + if ((refused_flags & PBUF_FLAG_TCP_FIN) +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + && (rest == NULL) +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + ) { + /* correct rcv_wnd as the application won't call tcp_recved() + for the FIN's seqno */ + if (pcb->rcv_wnd != TCP_WND_MAX(pcb)) { + pcb->rcv_wnd++; + } + TCP_EVENT_CLOSED(pcb, err); + if (err == ERR_ABRT) { + return ERR_ABRT; + } + } + } else if (err == ERR_ABRT) { + /* if err == ERR_ABRT, 'pcb' is already deallocated */ + /* Drop incoming packets because pcb is "full" (only if the incoming + segment contains data). */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: drop incoming packets, because pcb is \"full\"\n")); + return ERR_ABRT; + } else { + /* data is still refused, pbuf is still valid (go on for ACK-only packets) */ +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + if (rest != NULL) { + pbuf_cat(refused_data, rest); + } +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + pcb->refused_data = refused_data; + return ERR_INPROGRESS; + } + } + return ERR_OK; +} + +/** + * Deallocates a list of TCP segments (tcp_seg structures). + * + * @param seg tcp_seg list of TCP segments to free + */ +void +tcp_segs_free(struct tcp_seg *seg) +{ + while (seg != NULL) { + struct tcp_seg *next = seg->next; + tcp_seg_free(seg); + seg = next; + } +} + +/** + * Frees a TCP segment (tcp_seg structure). + * + * @param seg single tcp_seg to free + */ +void +tcp_seg_free(struct tcp_seg *seg) +{ + if (seg != NULL) { + if (seg->p != NULL) { + pbuf_free(seg->p); +#if TCP_DEBUG + seg->p = NULL; +#endif /* TCP_DEBUG */ + } + memp_free(MEMP_TCP_SEG, seg); + } +} + +/** + * @ingroup tcp + * Sets the priority of a connection. + * + * @param pcb the tcp_pcb to manipulate + * @param prio new priority + */ +void +tcp_setprio(struct tcp_pcb *pcb, u8_t prio) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("tcp_setprio: invalid pcb", pcb != NULL, return); + + pcb->prio = prio; +} + +#if TCP_QUEUE_OOSEQ +/** + * Returns a copy of the given TCP segment. + * The pbuf and data are not copied, only the pointers + * + * @param seg the old tcp_seg + * @return a copy of seg + */ +struct tcp_seg * +tcp_seg_copy(struct tcp_seg *seg) +{ + struct tcp_seg *cseg; + + LWIP_ASSERT("tcp_seg_copy: invalid seg", seg != NULL); + + cseg = (struct tcp_seg *)memp_malloc(MEMP_TCP_SEG); + if (cseg == NULL) { + return NULL; + } + SMEMCPY((u8_t *)cseg, (const u8_t *)seg, sizeof(struct tcp_seg)); + pbuf_ref(cseg->p); + return cseg; +} +#endif /* TCP_QUEUE_OOSEQ */ + +#if LWIP_CALLBACK_API +/** + * Default receive callback that is called if the user didn't register + * a recv callback for the pcb. + */ +err_t +tcp_recv_null(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) +{ + LWIP_UNUSED_ARG(arg); + + LWIP_ERROR("tcp_recv_null: invalid pcb", pcb != NULL, return ERR_ARG); + + if (p != NULL) { + tcp_recved(pcb, p->tot_len); + pbuf_free(p); + } else if (err == ERR_OK) { + return tcp_close(pcb); + } + return ERR_OK; +} +#endif /* LWIP_CALLBACK_API */ + +/** + * Kills the oldest active connection that has a lower priority than 'prio'. + * + * @param prio minimum priority + */ +static void +tcp_kill_prio(u8_t prio) +{ + struct tcp_pcb *pcb, *inactive; + u32_t inactivity; + u8_t mprio; + + mprio = LWIP_MIN(TCP_PRIO_MAX, prio); + + /* We want to kill connections with a lower prio, so bail out if + * supplied prio is 0 - there can never be a lower prio + */ + if (mprio == 0) { + return; + } + + /* We only want kill connections with a lower prio, so decrement prio by one + * and start searching for oldest connection with same or lower priority than mprio. + * We want to find the connections with the lowest possible prio, and among + * these the one with the longest inactivity time. + */ + mprio--; + + inactivity = 0; + inactive = NULL; + for (pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { + /* lower prio is always a kill candidate */ + if ((pcb->prio < mprio) || + /* longer inactivity is also a kill candidate */ + ((pcb->prio == mprio) && ((u32_t)(tcp_ticks - pcb->tmr) >= inactivity))) { + inactivity = tcp_ticks - pcb->tmr; + inactive = pcb; + mprio = pcb->prio; + } + } + if (inactive != NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_prio: killing oldest PCB %p (%"S32_F")\n", + (void *)inactive, inactivity)); + tcp_abort(inactive); + } +} + +/** + * Kills the oldest connection that is in specific state. + * Called from tcp_alloc() for LAST_ACK and CLOSING if no more connections are available. + */ +static void +tcp_kill_state(enum tcp_state state) +{ + struct tcp_pcb *pcb, *inactive; + u32_t inactivity; + + LWIP_ASSERT("invalid state", (state == CLOSING) || (state == LAST_ACK)); + + inactivity = 0; + inactive = NULL; + /* Go through the list of active pcbs and get the oldest pcb that is in state + CLOSING/LAST_ACK. */ + for (pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { + if (pcb->state == state) { + if ((u32_t)(tcp_ticks - pcb->tmr) >= inactivity) { + inactivity = tcp_ticks - pcb->tmr; + inactive = pcb; + } + } + } + if (inactive != NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_closing: killing oldest %s PCB %p (%"S32_F")\n", + tcp_state_str[state], (void *)inactive, inactivity)); + /* Don't send a RST, since no data is lost. */ + tcp_abandon(inactive, 0); + } +} + +/** + * Kills the oldest connection that is in TIME_WAIT state. + * Called from tcp_alloc() if no more connections are available. + */ +static void +tcp_kill_timewait(void) +{ + struct tcp_pcb *pcb, *inactive; + u32_t inactivity; + + inactivity = 0; + inactive = NULL; + /* Go through the list of TIME_WAIT pcbs and get the oldest pcb. */ + for (pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { + if ((u32_t)(tcp_ticks - pcb->tmr) >= inactivity) { + inactivity = tcp_ticks - pcb->tmr; + inactive = pcb; + } + } + if (inactive != NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_timewait: killing oldest TIME-WAIT PCB %p (%"S32_F")\n", + (void *)inactive, inactivity)); + tcp_abort(inactive); + } +} + +/* Called when allocating a pcb fails. + * In this case, we want to handle all pcbs that want to close first: if we can + * now send the FIN (which failed before), the pcb might be in a state that is + * OK for us to now free it. + */ +static void +tcp_handle_closepend(void) +{ + struct tcp_pcb *pcb = tcp_active_pcbs; + + while (pcb != NULL) { + struct tcp_pcb *next = pcb->next; + /* send pending FIN */ + if (pcb->flags & TF_CLOSEPEND) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_handle_closepend: pending FIN\n")); + tcp_clear_flags(pcb, TF_CLOSEPEND); + tcp_close_shutdown_fin(pcb); + } + pcb = next; + } +} + +/** + * Allocate a new tcp_pcb structure. + * + * @param prio priority for the new pcb + * @return a new tcp_pcb that initially is in state CLOSED + */ +struct tcp_pcb * +tcp_alloc(u8_t prio) +{ + struct tcp_pcb *pcb; + + LWIP_ASSERT_CORE_LOCKED(); + + pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB); + if (pcb == NULL) { + /* Try to send FIN for all pcbs stuck in TF_CLOSEPEND first */ + tcp_handle_closepend(); + + /* Try killing oldest connection in TIME-WAIT. */ + LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing off oldest TIME-WAIT connection\n")); + tcp_kill_timewait(); + /* Try to allocate a tcp_pcb again. */ + pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB); + if (pcb == NULL) { + /* Try killing oldest connection in LAST-ACK (these wouldn't go to TIME-WAIT). */ + LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing off oldest LAST-ACK connection\n")); + tcp_kill_state(LAST_ACK); + /* Try to allocate a tcp_pcb again. */ + pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB); + if (pcb == NULL) { + /* Try killing oldest connection in CLOSING. */ + LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing off oldest CLOSING connection\n")); + tcp_kill_state(CLOSING); + /* Try to allocate a tcp_pcb again. */ + pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB); + if (pcb == NULL) { + /* Try killing oldest active connection with lower priority than the new one. */ + LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing oldest connection with prio lower than %d\n", prio)); + tcp_kill_prio(prio); + /* Try to allocate a tcp_pcb again. */ + pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB); + if (pcb != NULL) { + /* adjust err stats: memp_malloc failed multiple times before */ + MEMP_STATS_DEC(err, MEMP_TCP_PCB); + } + } + if (pcb != NULL) { + /* adjust err stats: memp_malloc failed multiple times before */ + MEMP_STATS_DEC(err, MEMP_TCP_PCB); + } + } + if (pcb != NULL) { + /* adjust err stats: memp_malloc failed multiple times before */ + MEMP_STATS_DEC(err, MEMP_TCP_PCB); + } + } + if (pcb != NULL) { + /* adjust err stats: memp_malloc failed above */ + MEMP_STATS_DEC(err, MEMP_TCP_PCB); + } + } + if (pcb != NULL) { + /* zero out the whole pcb, so there is no need to initialize members to zero */ + memset(pcb, 0, sizeof(struct tcp_pcb)); + pcb->prio = prio; + pcb->snd_buf = TCP_SND_BUF; + /* Start with a window that does not need scaling. When window scaling is + enabled and used, the window is enlarged when both sides agree on scaling. */ + pcb->rcv_wnd = pcb->rcv_ann_wnd = TCPWND_MIN16(TCP_WND); + pcb->ttl = TCP_TTL; + /* As initial send MSS, we use TCP_MSS but limit it to 536. + The send MSS is updated when an MSS option is received. */ + pcb->mss = INITIAL_MSS; + pcb->rto = 3000 / TCP_SLOW_INTERVAL; + pcb->sv = 3000 / TCP_SLOW_INTERVAL; + pcb->rtime = -1; + pcb->cwnd = 1; + pcb->tmr = tcp_ticks; + pcb->last_timer = tcp_timer_ctr; + + /* RFC 5681 recommends setting ssthresh abritrarily high and gives an example + of using the largest advertised receive window. We've seen complications with + receiving TCPs that use window scaling and/or window auto-tuning where the + initial advertised window is very small and then grows rapidly once the + connection is established. To avoid these complications, we set ssthresh to the + largest effective cwnd (amount of in-flight data) that the sender can have. */ + pcb->ssthresh = TCP_SND_BUF; + +#if LWIP_CALLBACK_API + pcb->recv = tcp_recv_null; +#endif /* LWIP_CALLBACK_API */ + + /* Init KEEPALIVE timer */ + pcb->keep_idle = TCP_KEEPIDLE_DEFAULT; + +#if LWIP_TCP_KEEPALIVE + pcb->keep_intvl = TCP_KEEPINTVL_DEFAULT; + pcb->keep_cnt = TCP_KEEPCNT_DEFAULT; +#endif /* LWIP_TCP_KEEPALIVE */ + } + return pcb; +} + +/** + * @ingroup tcp_raw + * Creates a new TCP protocol control block but doesn't place it on + * any of the TCP PCB lists. + * The pcb is not put on any list until binding using tcp_bind(). + * If memory is not available for creating the new pcb, NULL is returned. + * + * @internal: Maybe there should be a idle TCP PCB list where these + * PCBs are put on. Port reservation using tcp_bind() is implemented but + * allocated pcbs that are not bound can't be killed automatically if wanting + * to allocate a pcb with higher prio (@see tcp_kill_prio()) + * + * @return a new tcp_pcb that initially is in state CLOSED + */ +struct tcp_pcb * +tcp_new(void) +{ + return tcp_alloc(TCP_PRIO_NORMAL); +} + +/** + * @ingroup tcp_raw + * Creates a new TCP protocol control block but doesn't + * place it on any of the TCP PCB lists. + * The pcb is not put on any list until binding using tcp_bind(). + * + * @param type IP address type, see @ref lwip_ip_addr_type definitions. + * If you want to listen to IPv4 and IPv6 (dual-stack) connections, + * supply @ref IPADDR_TYPE_ANY as argument and bind to @ref IP_ANY_TYPE. + * @return a new tcp_pcb that initially is in state CLOSED + */ +struct tcp_pcb * +tcp_new_ip_type(u8_t type) +{ + struct tcp_pcb *pcb; + pcb = tcp_alloc(TCP_PRIO_NORMAL); +#if LWIP_IPV4 && LWIP_IPV6 + if (pcb != NULL) { + IP_SET_TYPE_VAL(pcb->local_ip, type); + IP_SET_TYPE_VAL(pcb->remote_ip, type); + } +#else + LWIP_UNUSED_ARG(type); +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + return pcb; +} + +/** + * @ingroup tcp_raw + * Specifies the program specific state that should be passed to all + * other callback functions. The "pcb" argument is the current TCP + * connection control block, and the "arg" argument is the argument + * that will be passed to the callbacks. + * + * @param pcb tcp_pcb to set the callback argument + * @param arg void pointer argument to pass to callback functions + */ +void +tcp_arg(struct tcp_pcb *pcb, void *arg) +{ + LWIP_ASSERT_CORE_LOCKED(); + /* This function is allowed to be called for both listen pcbs and + connection pcbs. */ + if (pcb != NULL) { + pcb->callback_arg = arg; + } +} +#if LWIP_CALLBACK_API + +/** + * @ingroup tcp_raw + * Sets the callback function that will be called when new data + * arrives. The callback function will be passed a NULL pbuf to + * indicate that the remote host has closed the connection. If the + * callback function returns ERR_OK or ERR_ABRT it must have + * freed the pbuf, otherwise it must not have freed it. + * + * @param pcb tcp_pcb to set the recv callback + * @param recv callback function to call for this pcb when data is received + */ +void +tcp_recv(struct tcp_pcb *pcb, tcp_recv_fn recv) +{ + LWIP_ASSERT_CORE_LOCKED(); + if (pcb != NULL) { + LWIP_ASSERT("invalid socket state for recv callback", pcb->state != LISTEN); + pcb->recv = recv; + } +} + +/** + * @ingroup tcp_raw + * Specifies the callback function that should be called when data has + * successfully been received (i.e., acknowledged) by the remote + * host. The len argument passed to the callback function gives the + * amount bytes that was acknowledged by the last acknowledgment. + * + * @param pcb tcp_pcb to set the sent callback + * @param sent callback function to call for this pcb when data is successfully sent + */ +void +tcp_sent(struct tcp_pcb *pcb, tcp_sent_fn sent) +{ + LWIP_ASSERT_CORE_LOCKED(); + if (pcb != NULL) { + LWIP_ASSERT("invalid socket state for sent callback", pcb->state != LISTEN); + pcb->sent = sent; + } +} + +/** + * @ingroup tcp_raw + * Used to specify the function that should be called when a fatal error + * has occurred on the connection. + * + * If a connection is aborted because of an error, the application is + * alerted of this event by the err callback. Errors that might abort a + * connection are when there is a shortage of memory. The callback + * function to be called is set using the tcp_err() function. + * + * @note The corresponding pcb is already freed when this callback is called! + * + * @param pcb tcp_pcb to set the err callback + * @param err callback function to call for this pcb when a fatal error + * has occurred on the connection + */ +void +tcp_err(struct tcp_pcb *pcb, tcp_err_fn err) +{ + LWIP_ASSERT_CORE_LOCKED(); + if (pcb != NULL) { + LWIP_ASSERT("invalid socket state for err callback", pcb->state != LISTEN); + pcb->errf = err; + } +} + +/** + * @ingroup tcp_raw + * Used for specifying the function that should be called when a + * LISTENing connection has been connected to another host. + * + * @param pcb tcp_pcb to set the accept callback + * @param accept callback function to call for this pcb when LISTENing + * connection has been connected to another host + */ +void +tcp_accept(struct tcp_pcb *pcb, tcp_accept_fn accept) +{ + LWIP_ASSERT_CORE_LOCKED(); + if ((pcb != NULL) && (pcb->state == LISTEN)) { + struct tcp_pcb_listen *lpcb = (struct tcp_pcb_listen *)pcb; + lpcb->accept = accept; + } +} +#endif /* LWIP_CALLBACK_API */ + + +/** + * @ingroup tcp_raw + * Specifies the polling interval and the callback function that should + * be called to poll the application. The interval is specified in + * number of TCP coarse grained timer shots, which typically occurs + * twice a second. An interval of 10 means that the application would + * be polled every 5 seconds. + * + * When a connection is idle (i.e., no data is either transmitted or + * received), lwIP will repeatedly poll the application by calling a + * specified callback function. This can be used either as a watchdog + * timer for killing connections that have stayed idle for too long, or + * as a method of waiting for memory to become available. For instance, + * if a call to tcp_write() has failed because memory wasn't available, + * the application may use the polling functionality to call tcp_write() + * again when the connection has been idle for a while. + */ +void +tcp_poll(struct tcp_pcb *pcb, tcp_poll_fn poll, u8_t interval) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("tcp_poll: invalid pcb", pcb != NULL, return); + LWIP_ASSERT("invalid socket state for poll", pcb->state != LISTEN); + +#if LWIP_CALLBACK_API + pcb->poll = poll; +#else /* LWIP_CALLBACK_API */ + LWIP_UNUSED_ARG(poll); +#endif /* LWIP_CALLBACK_API */ + pcb->pollinterval = interval; +} + +/** + * Purges a TCP PCB. Removes any buffered data and frees the buffer memory + * (pcb->ooseq, pcb->unsent and pcb->unacked are freed). + * + * @param pcb tcp_pcb to purge. The pcb itself is not deallocated! + */ +void +tcp_pcb_purge(struct tcp_pcb *pcb) +{ + LWIP_ERROR("tcp_pcb_purge: invalid pcb", pcb != NULL, return); + + if (pcb->state != CLOSED && + pcb->state != TIME_WAIT && + pcb->state != LISTEN) { + + LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge\n")); + + tcp_backlog_accepted(pcb); + + if (pcb->refused_data != NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->refused_data\n")); + pbuf_free(pcb->refused_data); + pcb->refused_data = NULL; + } + if (pcb->unsent != NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: not all data sent\n")); + } + if (pcb->unacked != NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->unacked\n")); + } +#if TCP_QUEUE_OOSEQ + if (pcb->ooseq != NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->ooseq\n")); + tcp_free_ooseq(pcb); + } +#endif /* TCP_QUEUE_OOSEQ */ + + /* Stop the retransmission timer as it will expect data on unacked + queue if it fires */ + pcb->rtime = -1; + + tcp_segs_free(pcb->unsent); + tcp_segs_free(pcb->unacked); + pcb->unacked = pcb->unsent = NULL; +#if TCP_OVERSIZE + pcb->unsent_oversize = 0; +#endif /* TCP_OVERSIZE */ + } +} + +/** + * Purges the PCB and removes it from a PCB list. Any delayed ACKs are sent first. + * + * @param pcblist PCB list to purge. + * @param pcb tcp_pcb to purge. The pcb itself is NOT deallocated! + */ +void +tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb) +{ + LWIP_ASSERT("tcp_pcb_remove: invalid pcb", pcb != NULL); + LWIP_ASSERT("tcp_pcb_remove: invalid pcblist", pcblist != NULL); + + TCP_RMV(pcblist, pcb); + + tcp_pcb_purge(pcb); + + /* if there is an outstanding delayed ACKs, send it */ + if ((pcb->state != TIME_WAIT) && + (pcb->state != LISTEN) && + (pcb->flags & TF_ACK_DELAY)) { + tcp_ack_now(pcb); + tcp_output(pcb); + } + + if (pcb->state != LISTEN) { + LWIP_ASSERT("unsent segments leaking", pcb->unsent == NULL); + LWIP_ASSERT("unacked segments leaking", pcb->unacked == NULL); +#if TCP_QUEUE_OOSEQ + LWIP_ASSERT("ooseq segments leaking", pcb->ooseq == NULL); +#endif /* TCP_QUEUE_OOSEQ */ + } + + pcb->state = CLOSED; + /* reset the local port to prevent the pcb from being 'bound' */ + pcb->local_port = 0; + + LWIP_ASSERT("tcp_pcb_remove: tcp_pcbs_sane()", tcp_pcbs_sane()); +} + +/** + * Calculates a new initial sequence number for new connections. + * + * @return u32_t pseudo random sequence number + */ +u32_t +tcp_next_iss(struct tcp_pcb *pcb) +{ +#ifdef LWIP_HOOK_TCP_ISN + LWIP_ASSERT("tcp_next_iss: invalid pcb", pcb != NULL); + return LWIP_HOOK_TCP_ISN(&pcb->local_ip, pcb->local_port, &pcb->remote_ip, pcb->remote_port); +#else /* LWIP_HOOK_TCP_ISN */ + static u32_t iss = 6510; + + LWIP_ASSERT("tcp_next_iss: invalid pcb", pcb != NULL); + LWIP_UNUSED_ARG(pcb); + + iss += tcp_ticks; /* XXX */ + return iss; +#endif /* LWIP_HOOK_TCP_ISN */ +} + +#if TCP_CALCULATE_EFF_SEND_MSS +/** + * Calculates the effective send mss that can be used for a specific IP address + * by calculating the minimum of TCP_MSS and the mtu (if set) of the target + * netif (if not NULL). + */ +u16_t +tcp_eff_send_mss_netif(u16_t sendmss, struct netif *outif, const ip_addr_t *dest) +{ + u16_t mss_s; + u16_t mtu; + + LWIP_UNUSED_ARG(dest); /* in case IPv6 is disabled */ + + LWIP_ASSERT("tcp_eff_send_mss_netif: invalid dst_ip", dest != NULL); + +#if LWIP_IPV6 +#if LWIP_IPV4 + if (IP_IS_V6(dest)) +#endif /* LWIP_IPV4 */ + { + /* First look in destination cache, to see if there is a Path MTU. */ + mtu = nd6_get_destination_mtu(ip_2_ip6(dest), outif); + } +#if LWIP_IPV4 + else +#endif /* LWIP_IPV4 */ +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 + { + if (outif == NULL) { + return sendmss; + } + mtu = outif->mtu; + } +#endif /* LWIP_IPV4 */ + + if (mtu != 0) { + u16_t offset; +#if LWIP_IPV6 +#if LWIP_IPV4 + if (IP_IS_V6(dest)) +#endif /* LWIP_IPV4 */ + { + offset = IP6_HLEN + TCP_HLEN; + } +#if LWIP_IPV4 + else +#endif /* LWIP_IPV4 */ +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 + { + offset = IP_HLEN + TCP_HLEN; + } +#endif /* LWIP_IPV4 */ + mss_s = (mtu > offset) ? (u16_t)(mtu - offset) : 0; + /* RFC 1122, chap 4.2.2.6: + * Eff.snd.MSS = min(SendMSS+20, MMS_S) - TCPhdrsize - IPoptionsize + * We correct for TCP options in tcp_write(), and don't support IP options. + */ + sendmss = LWIP_MIN(sendmss, mss_s); + } + return sendmss; +} +#endif /* TCP_CALCULATE_EFF_SEND_MSS */ + +/** Helper function for tcp_netif_ip_addr_changed() that iterates a pcb list */ +static void +tcp_netif_ip_addr_changed_pcblist(const ip_addr_t *old_addr, struct tcp_pcb *pcb_list) +{ + struct tcp_pcb *pcb; + pcb = pcb_list; + + LWIP_ASSERT("tcp_netif_ip_addr_changed_pcblist: invalid old_addr", old_addr != NULL); + + while (pcb != NULL) { + /* PCB bound to current local interface address? */ + if (ip_addr_cmp(&pcb->local_ip, old_addr) +#if LWIP_AUTOIP + /* connections to link-local addresses must persist (RFC3927 ch. 1.9) */ + && (!IP_IS_V4_VAL(pcb->local_ip) || !ip4_addr_islinklocal(ip_2_ip4(&pcb->local_ip))) +#endif /* LWIP_AUTOIP */ + ) { + /* this connection must be aborted */ + struct tcp_pcb *next = pcb->next; + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_set_ipaddr: aborting TCP pcb %p\n", (void *)pcb)); + tcp_abort(pcb); + pcb = next; + } else { + pcb = pcb->next; + } + } +} + +/** This function is called from netif.c when address is changed or netif is removed + * + * @param old_addr IP address of the netif before change + * @param new_addr IP address of the netif after change or NULL if netif has been removed + */ +void +tcp_netif_ip_addr_changed(const ip_addr_t *old_addr, const ip_addr_t *new_addr) +{ + struct tcp_pcb_listen *lpcb; + + if (!ip_addr_isany(old_addr)) { + tcp_netif_ip_addr_changed_pcblist(old_addr, tcp_active_pcbs); + tcp_netif_ip_addr_changed_pcblist(old_addr, tcp_bound_pcbs); + + if (!ip_addr_isany(new_addr)) { + /* PCB bound to current local interface address? */ + for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) { + /* PCB bound to current local interface address? */ + if (ip_addr_cmp(&lpcb->local_ip, old_addr)) { + /* The PCB is listening to the old ipaddr and + * is set to listen to the new one instead */ + ip_addr_copy(lpcb->local_ip, *new_addr); + } + } + } + } +} + +const char * +tcp_debug_state_str(enum tcp_state s) +{ + return tcp_state_str[s]; +} + +err_t +tcp_tcp_get_tcp_addrinfo(struct tcp_pcb *pcb, int local, ip_addr_t *addr, u16_t *port) +{ + if (pcb) { + if (local) { + if (addr) { + *addr = pcb->local_ip; + } + if (port) { + *port = pcb->local_port; + } + } else { + if (addr) { + *addr = pcb->remote_ip; + } + if (port) { + *port = pcb->remote_port; + } + } + return ERR_OK; + } + return ERR_VAL; +} + +#if TCP_QUEUE_OOSEQ +/* Free all ooseq pbufs (and possibly reset SACK state) */ +void +tcp_free_ooseq(struct tcp_pcb *pcb) +{ + if (pcb->ooseq) { + tcp_segs_free(pcb->ooseq); + pcb->ooseq = NULL; +#if LWIP_TCP_SACK_OUT + memset(pcb->rcv_sacks, 0, sizeof(pcb->rcv_sacks)); +#endif /* LWIP_TCP_SACK_OUT */ + } +} +#endif /* TCP_QUEUE_OOSEQ */ + +#if TCP_DEBUG || TCP_INPUT_DEBUG || TCP_OUTPUT_DEBUG +/** + * Print a tcp header for debugging purposes. + * + * @param tcphdr pointer to a struct tcp_hdr + */ +void +tcp_debug_print(struct tcp_hdr *tcphdr) +{ + LWIP_DEBUGF(TCP_DEBUG, ("TCP header:\n")); + LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(TCP_DEBUG, ("| %5"U16_F" | %5"U16_F" | (src port, dest port)\n", + lwip_ntohs(tcphdr->src), lwip_ntohs(tcphdr->dest))); + LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(TCP_DEBUG, ("| %010"U32_F" | (seq no)\n", + lwip_ntohl(tcphdr->seqno))); + LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(TCP_DEBUG, ("| %010"U32_F" | (ack no)\n", + lwip_ntohl(tcphdr->ackno))); + LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(TCP_DEBUG, ("| %2"U16_F" | |%"U16_F"%"U16_F"%"U16_F"%"U16_F"%"U16_F"%"U16_F"| %5"U16_F" | (hdrlen, flags (", + TCPH_HDRLEN(tcphdr), + (u16_t)(TCPH_FLAGS(tcphdr) >> 5 & 1), + (u16_t)(TCPH_FLAGS(tcphdr) >> 4 & 1), + (u16_t)(TCPH_FLAGS(tcphdr) >> 3 & 1), + (u16_t)(TCPH_FLAGS(tcphdr) >> 2 & 1), + (u16_t)(TCPH_FLAGS(tcphdr) >> 1 & 1), + (u16_t)(TCPH_FLAGS(tcphdr) & 1), + lwip_ntohs(tcphdr->wnd))); + tcp_debug_print_flags(TCPH_FLAGS(tcphdr)); + LWIP_DEBUGF(TCP_DEBUG, ("), win)\n")); + LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(TCP_DEBUG, ("| 0x%04"X16_F" | %5"U16_F" | (chksum, urgp)\n", + lwip_ntohs(tcphdr->chksum), lwip_ntohs(tcphdr->urgp))); + LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); +} + +/** + * Print a tcp state for debugging purposes. + * + * @param s enum tcp_state to print + */ +void +tcp_debug_print_state(enum tcp_state s) +{ + LWIP_DEBUGF(TCP_DEBUG, ("State: %s\n", tcp_state_str[s])); +} + +/** + * Print tcp flags for debugging purposes. + * + * @param flags tcp flags, all active flags are printed + */ +void +tcp_debug_print_flags(u8_t flags) +{ + if (flags & TCP_FIN) { + LWIP_DEBUGF(TCP_DEBUG, ("FIN ")); + } + if (flags & TCP_SYN) { + LWIP_DEBUGF(TCP_DEBUG, ("SYN ")); + } + if (flags & TCP_RST) { + LWIP_DEBUGF(TCP_DEBUG, ("RST ")); + } + if (flags & TCP_PSH) { + LWIP_DEBUGF(TCP_DEBUG, ("PSH ")); + } + if (flags & TCP_ACK) { + LWIP_DEBUGF(TCP_DEBUG, ("ACK ")); + } + if (flags & TCP_URG) { + LWIP_DEBUGF(TCP_DEBUG, ("URG ")); + } + if (flags & TCP_ECE) { + LWIP_DEBUGF(TCP_DEBUG, ("ECE ")); + } + if (flags & TCP_CWR) { + LWIP_DEBUGF(TCP_DEBUG, ("CWR ")); + } + LWIP_DEBUGF(TCP_DEBUG, ("\n")); +} + +/** + * Print all tcp_pcbs in every list for debugging purposes. + */ +void +tcp_debug_print_pcbs(void) +{ + struct tcp_pcb *pcb; + struct tcp_pcb_listen *pcbl; + + LWIP_DEBUGF(TCP_DEBUG, ("Active PCB states:\n")); + for (pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { + LWIP_DEBUGF(TCP_DEBUG, ("Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ", + pcb->local_port, pcb->remote_port, + pcb->snd_nxt, pcb->rcv_nxt)); + tcp_debug_print_state(pcb->state); + } + + LWIP_DEBUGF(TCP_DEBUG, ("Listen PCB states:\n")); + for (pcbl = tcp_listen_pcbs.listen_pcbs; pcbl != NULL; pcbl = pcbl->next) { + LWIP_DEBUGF(TCP_DEBUG, ("Local port %"U16_F" ", pcbl->local_port)); + tcp_debug_print_state(pcbl->state); + } + + LWIP_DEBUGF(TCP_DEBUG, ("TIME-WAIT PCB states:\n")); + for (pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { + LWIP_DEBUGF(TCP_DEBUG, ("Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ", + pcb->local_port, pcb->remote_port, + pcb->snd_nxt, pcb->rcv_nxt)); + tcp_debug_print_state(pcb->state); + } +} + +/** + * Check state consistency of the tcp_pcb lists. + */ +s16_t +tcp_pcbs_sane(void) +{ + struct tcp_pcb *pcb; + for (pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { + LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != CLOSED", pcb->state != CLOSED); + LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != LISTEN", pcb->state != LISTEN); + LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT); + } + for (pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { + LWIP_ASSERT("tcp_pcbs_sane: tw pcb->state == TIME-WAIT", pcb->state == TIME_WAIT); + } + return 1; +} +#endif /* TCP_DEBUG */ + +#if LWIP_TCP_PCB_NUM_EXT_ARGS +/** + * @defgroup tcp_raw_extargs ext arguments + * @ingroup tcp_raw + * Additional data storage per tcp pcb\n + * @see @ref tcp_raw + * + * When LWIP_TCP_PCB_NUM_EXT_ARGS is > 0, every tcp pcb (including listen pcb) + * includes a number of additional argument entries in an array. + * + * To support memory management, in addition to a 'void *', callbacks can be + * provided to manage transition from listening pcbs to connections and to + * deallocate memory when a pcb is deallocated (see struct @ref tcp_ext_arg_callbacks). + * + * After allocating this index, use @ref tcp_ext_arg_set and @ref tcp_ext_arg_get + * to store and load arguments from this index for a given pcb. + */ + +static u8_t tcp_ext_arg_id; + +/** + * @ingroup tcp_raw_extargs + * Allocate an index to store data in ext_args member of struct tcp_pcb. + * Returned value is an index in mentioned array. + * The index is *global* over all pcbs! + * + * When @ref LWIP_TCP_PCB_NUM_EXT_ARGS is > 0, every tcp pcb (including listen pcb) + * includes a number of additional argument entries in an array. + * + * To support memory management, in addition to a 'void *', callbacks can be + * provided to manage transition from listening pcbs to connections and to + * deallocate memory when a pcb is deallocated (see struct @ref tcp_ext_arg_callbacks). + * + * After allocating this index, use @ref tcp_ext_arg_set and @ref tcp_ext_arg_get + * to store and load arguments from this index for a given pcb. + * + * @return a unique index into struct tcp_pcb.ext_args + */ +u8_t +tcp_ext_arg_alloc_id(void) +{ + u8_t result = tcp_ext_arg_id; + tcp_ext_arg_id++; + + LWIP_ASSERT_CORE_LOCKED(); + +#if LWIP_TCP_PCB_NUM_EXT_ARGS >= 255 +#error LWIP_TCP_PCB_NUM_EXT_ARGS +#endif + LWIP_ASSERT("Increase LWIP_TCP_PCB_NUM_EXT_ARGS in lwipopts.h", result < LWIP_TCP_PCB_NUM_EXT_ARGS); + return result; +} + +/** + * @ingroup tcp_raw_extargs + * Set callbacks for a given index of ext_args on the specified pcb. + * + * @param pcb tcp_pcb for which to set the callback + * @param id ext_args index to set (allocated via @ref tcp_ext_arg_alloc_id) + * @param callbacks callback table (const since it is referenced, not copied!) + */ +void +tcp_ext_arg_set_callbacks(struct tcp_pcb *pcb, uint8_t id, const struct tcp_ext_arg_callbacks * const callbacks) +{ + LWIP_ASSERT("pcb != NULL", pcb != NULL); + LWIP_ASSERT("id < LWIP_TCP_PCB_NUM_EXT_ARGS", id < LWIP_TCP_PCB_NUM_EXT_ARGS); + LWIP_ASSERT("callbacks != NULL", callbacks != NULL); + + LWIP_ASSERT_CORE_LOCKED(); + + pcb->ext_args[id].callbacks = callbacks; +} + +/** + * @ingroup tcp_raw_extargs + * Set data for a given index of ext_args on the specified pcb. + * + * @param pcb tcp_pcb for which to set the data + * @param id ext_args index to set (allocated via @ref tcp_ext_arg_alloc_id) + * @param arg data pointer to set + */ +void tcp_ext_arg_set(struct tcp_pcb *pcb, uint8_t id, void *arg) +{ + LWIP_ASSERT("pcb != NULL", pcb != NULL); + LWIP_ASSERT("id < LWIP_TCP_PCB_NUM_EXT_ARGS", id < LWIP_TCP_PCB_NUM_EXT_ARGS); + + LWIP_ASSERT_CORE_LOCKED(); + + pcb->ext_args[id].data = arg; +} + +/** + * @ingroup tcp_raw_extargs + * Set data for a given index of ext_args on the specified pcb. + * + * @param pcb tcp_pcb for which to set the data + * @param id ext_args index to set (allocated via @ref tcp_ext_arg_alloc_id) + * @return data pointer at the given index + */ +void *tcp_ext_arg_get(const struct tcp_pcb *pcb, uint8_t id) +{ + LWIP_ASSERT("pcb != NULL", pcb != NULL); + LWIP_ASSERT("id < LWIP_TCP_PCB_NUM_EXT_ARGS", id < LWIP_TCP_PCB_NUM_EXT_ARGS); + + LWIP_ASSERT_CORE_LOCKED(); + + return pcb->ext_args[id].data; +} + +/** This function calls the "destroy" callback for all ext_args once a pcb is + * freed. + */ +static void +tcp_ext_arg_invoke_callbacks_destroyed(struct tcp_pcb_ext_args *ext_args) +{ + int i; + LWIP_ASSERT("ext_args != NULL", ext_args != NULL); + + for (i = 0; i < LWIP_TCP_PCB_NUM_EXT_ARGS; i++) { + if (ext_args[i].callbacks != NULL) { + if (ext_args[i].callbacks->destroy != NULL) { + ext_args[i].callbacks->destroy((u8_t)i, ext_args[i].data); + } + } + } +} + +/** This function calls the "passive_open" callback for all ext_args if a connection + * is in the process of being accepted. This is called just after the SYN is + * received and before a SYN/ACK is sent, to allow to modify the very first + * segment sent even on passive open. Naturally, the "accepted" callback of the + * pcb has not been called yet! + */ +err_t +tcp_ext_arg_invoke_callbacks_passive_open(struct tcp_pcb_listen *lpcb, struct tcp_pcb *cpcb) +{ + int i; + LWIP_ASSERT("lpcb != NULL", lpcb != NULL); + LWIP_ASSERT("cpcb != NULL", cpcb != NULL); + + for (i = 0; i < LWIP_TCP_PCB_NUM_EXT_ARGS; i++) { + if (lpcb->ext_args[i].callbacks != NULL) { + if (lpcb->ext_args[i].callbacks->passive_open != NULL) { + err_t err = lpcb->ext_args[i].callbacks->passive_open((u8_t)i, lpcb, cpcb); + if (err != ERR_OK) { + return err; + } + } + } + } + return ERR_OK; +} +#endif /* LWIP_TCP_PCB_NUM_EXT_ARGS */ + +#endif /* LWIP_TCP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_in.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_in.c new file mode 100644 index 000000000..467017804 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_in.c @@ -0,0 +1,2178 @@ +/** + * @file + * Transmission Control Protocol, incoming traffic + * + * The input processing functions of the TCP layer. + * + * These functions are generally called in the order (ip_input() ->) + * tcp_input() -> * tcp_process() -> tcp_receive() (-> application). + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/priv/tcp_priv.h" +#include "lwip/def.h" +#include "lwip/ip_addr.h" +#include "lwip/netif.h" +#include "lwip/mem.h" +#include "lwip/memp.h" +#include "lwip/inet_chksum.h" +#include "lwip/stats.h" +#include "lwip/ip6.h" +#include "lwip/ip6_addr.h" +#if LWIP_ND6_TCP_REACHABILITY_HINTS +#include "lwip/nd6.h" +#endif /* LWIP_ND6_TCP_REACHABILITY_HINTS */ + +#include + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +/** Initial CWND calculation as defined RFC 2581 */ +#define LWIP_TCP_CALC_INITIAL_CWND(mss) ((tcpwnd_size_t)LWIP_MIN((4U * (mss)), LWIP_MAX((2U * (mss)), 4380U))) + +/* These variables are global to all functions involved in the input + processing of TCP segments. They are set by the tcp_input() + function. */ +static struct tcp_seg inseg; +static struct tcp_hdr *tcphdr; +static u16_t tcphdr_optlen; +static u16_t tcphdr_opt1len; +static u8_t *tcphdr_opt2; +static u16_t tcp_optidx; +static u32_t seqno, ackno; +static tcpwnd_size_t recv_acked; +static u16_t tcplen; +static u8_t flags; + +static u8_t recv_flags; +static struct pbuf *recv_data; + +struct tcp_pcb *tcp_input_pcb; + +/* Forward declarations. */ +static err_t tcp_process(struct tcp_pcb *pcb); +static void tcp_receive(struct tcp_pcb *pcb); +static void tcp_parseopt(struct tcp_pcb *pcb); + +static void tcp_listen_input(struct tcp_pcb_listen *pcb); +static void tcp_timewait_input(struct tcp_pcb *pcb); + +static int tcp_input_delayed_close(struct tcp_pcb *pcb); + +#if LWIP_TCP_SACK_OUT +static void tcp_add_sack(struct tcp_pcb *pcb, u32_t left, u32_t right); +static void tcp_remove_sacks_lt(struct tcp_pcb *pcb, u32_t seq); +#if defined(TCP_OOSEQ_BYTES_LIMIT) || defined(TCP_OOSEQ_PBUFS_LIMIT) +static void tcp_remove_sacks_gt(struct tcp_pcb *pcb, u32_t seq); +#endif /* TCP_OOSEQ_BYTES_LIMIT || TCP_OOSEQ_PBUFS_LIMIT */ +#endif /* LWIP_TCP_SACK_OUT */ + +/** + * The initial input processing of TCP. It verifies the TCP header, demultiplexes + * the segment between the PCBs and passes it on to tcp_process(), which implements + * the TCP finite state machine. This function is called by the IP layer (in + * ip_input()). + * + * @param p received TCP segment to process (p->payload pointing to the TCP header) + * @param inp network interface on which this segment was received + */ +void +tcp_input(struct pbuf *p, struct netif *inp) +{ + struct tcp_pcb *pcb, *prev; + struct tcp_pcb_listen *lpcb; +#if SO_REUSE + struct tcp_pcb *lpcb_prev = NULL; + struct tcp_pcb_listen *lpcb_any = NULL; +#endif /* SO_REUSE */ + u8_t hdrlen_bytes; + err_t err; + + LWIP_UNUSED_ARG(inp); + LWIP_ASSERT_CORE_LOCKED(); + LWIP_ASSERT("tcp_input: invalid pbuf", p != NULL); + + PERF_START; + + TCP_STATS_INC(tcp.recv); + MIB2_STATS_INC(mib2.tcpinsegs); + + tcphdr = (struct tcp_hdr *)p->payload; + +#if TCP_INPUT_DEBUG + tcp_debug_print(tcphdr); +#endif + + /* Check that TCP header fits in payload */ + if (p->len < TCP_HLEN) { + /* drop short packets */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: short packet (%"U16_F" bytes) discarded\n", p->tot_len)); + TCP_STATS_INC(tcp.lenerr); + goto dropped; + } + + /* Don't even process incoming broadcasts/multicasts. */ + if (ip_addr_isbroadcast(ip_current_dest_addr(), ip_current_netif()) || + ip_addr_ismulticast(ip_current_dest_addr())) { + TCP_STATS_INC(tcp.proterr); + goto dropped; + } + +#if CHECKSUM_CHECK_TCP + IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_CHECK_TCP) { + /* Verify TCP checksum. */ + u16_t chksum = ip_chksum_pseudo(p, IP_PROTO_TCP, p->tot_len, + ip_current_src_addr(), ip_current_dest_addr()); + if (chksum != 0) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packet discarded due to failing checksum 0x%04"X16_F"\n", + chksum)); + tcp_debug_print(tcphdr); + TCP_STATS_INC(tcp.chkerr); + goto dropped; + } + } +#endif /* CHECKSUM_CHECK_TCP */ + + /* sanity-check header length */ + hdrlen_bytes = TCPH_HDRLEN_BYTES(tcphdr); + if ((hdrlen_bytes < TCP_HLEN) || (hdrlen_bytes > p->tot_len)) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: invalid header length (%"U16_F")\n", (u16_t)hdrlen_bytes)); + TCP_STATS_INC(tcp.lenerr); + goto dropped; + } + + /* Move the payload pointer in the pbuf so that it points to the + TCP data instead of the TCP header. */ + tcphdr_optlen = (u16_t)(hdrlen_bytes - TCP_HLEN); + tcphdr_opt2 = NULL; + if (p->len >= hdrlen_bytes) { + /* all options are in the first pbuf */ + tcphdr_opt1len = tcphdr_optlen; + pbuf_remove_header(p, hdrlen_bytes); /* cannot fail */ + } else { + u16_t opt2len; + /* TCP header fits into first pbuf, options don't - data is in the next pbuf */ + /* there must be a next pbuf, due to hdrlen_bytes sanity check above */ + LWIP_ASSERT("p->next != NULL", p->next != NULL); + + /* advance over the TCP header (cannot fail) */ + pbuf_remove_header(p, TCP_HLEN); + + /* determine how long the first and second parts of the options are */ + tcphdr_opt1len = p->len; + opt2len = (u16_t)(tcphdr_optlen - tcphdr_opt1len); + + /* options continue in the next pbuf: set p to zero length and hide the + options in the next pbuf (adjusting p->tot_len) */ + pbuf_remove_header(p, tcphdr_opt1len); + + /* check that the options fit in the second pbuf */ + if (opt2len > p->next->len) { + /* drop short packets */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: options overflow second pbuf (%"U16_F" bytes)\n", p->next->len)); + TCP_STATS_INC(tcp.lenerr); + goto dropped; + } + + /* remember the pointer to the second part of the options */ + tcphdr_opt2 = (u8_t *)p->next->payload; + + /* advance p->next to point after the options, and manually + adjust p->tot_len to keep it consistent with the changed p->next */ + pbuf_remove_header(p->next, opt2len); + p->tot_len = (u16_t)(p->tot_len - opt2len); + + LWIP_ASSERT("p->len == 0", p->len == 0); + LWIP_ASSERT("p->tot_len == p->next->tot_len", p->tot_len == p->next->tot_len); + } + + /* Convert fields in TCP header to host byte order. */ + tcphdr->src = lwip_ntohs(tcphdr->src); + tcphdr->dest = lwip_ntohs(tcphdr->dest); + seqno = tcphdr->seqno = lwip_ntohl(tcphdr->seqno); + ackno = tcphdr->ackno = lwip_ntohl(tcphdr->ackno); + tcphdr->wnd = lwip_ntohs(tcphdr->wnd); + + flags = TCPH_FLAGS(tcphdr); + tcplen = p->tot_len; + if (flags & (TCP_FIN | TCP_SYN)) { + tcplen++; + if (tcplen < p->tot_len) { + /* u16_t overflow, cannot handle this */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: length u16_t overflow, cannot handle this\n")); + TCP_STATS_INC(tcp.lenerr); + goto dropped; + } + } + + /* Demultiplex an incoming segment. First, we check if it is destined + for an active connection. */ + prev = NULL; + + for (pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { + LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state != CLOSED); + LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT); + LWIP_ASSERT("tcp_input: active pcb->state != LISTEN", pcb->state != LISTEN); + + /* check if PCB is bound to specific netif */ + if ((pcb->netif_idx != NETIF_NO_INDEX) && + (pcb->netif_idx != netif_get_index(ip_data.current_input_netif))) { + prev = pcb; + continue; + } + + if (pcb->remote_port == tcphdr->src && + pcb->local_port == tcphdr->dest && + ip_addr_cmp(&pcb->remote_ip, ip_current_src_addr()) && + ip_addr_cmp(&pcb->local_ip, ip_current_dest_addr())) { + /* Move this PCB to the front of the list so that subsequent + lookups will be faster (we exploit locality in TCP segment + arrivals). */ + LWIP_ASSERT("tcp_input: pcb->next != pcb (before cache)", pcb->next != pcb); + if (prev != NULL) { + prev->next = pcb->next; + pcb->next = tcp_active_pcbs; + tcp_active_pcbs = pcb; + } else { + TCP_STATS_INC(tcp.cachehit); + } + LWIP_ASSERT("tcp_input: pcb->next != pcb (after cache)", pcb->next != pcb); + break; + } + prev = pcb; + } + + if (pcb == NULL) { + /* If it did not go to an active connection, we check the connections + in the TIME-WAIT state. */ + for (pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { + LWIP_ASSERT("tcp_input: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT); + + /* check if PCB is bound to specific netif */ + if ((pcb->netif_idx != NETIF_NO_INDEX) && + (pcb->netif_idx != netif_get_index(ip_data.current_input_netif))) { + continue; + } + + if (pcb->remote_port == tcphdr->src && + pcb->local_port == tcphdr->dest && + ip_addr_cmp(&pcb->remote_ip, ip_current_src_addr()) && + ip_addr_cmp(&pcb->local_ip, ip_current_dest_addr())) { + /* We don't really care enough to move this PCB to the front + of the list since we are not very likely to receive that + many segments for connections in TIME-WAIT. */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packed for TIME_WAITing connection.\n")); +#ifdef LWIP_HOOK_TCP_INPACKET_PCB + if (LWIP_HOOK_TCP_INPACKET_PCB(pcb, tcphdr, tcphdr_optlen, tcphdr_opt1len, + tcphdr_opt2, p) == ERR_OK) +#endif + { + tcp_timewait_input(pcb); + } + pbuf_free(p); + return; + } + } + + /* Finally, if we still did not get a match, we check all PCBs that + are LISTENing for incoming connections. */ + prev = NULL; + for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) { + /* check if PCB is bound to specific netif */ + if ((lpcb->netif_idx != NETIF_NO_INDEX) && + (lpcb->netif_idx != netif_get_index(ip_data.current_input_netif))) { + prev = (struct tcp_pcb *)lpcb; + continue; + } + + if (lpcb->local_port == tcphdr->dest) { + if (IP_IS_ANY_TYPE_VAL(lpcb->local_ip)) { + /* found an ANY TYPE (IPv4/IPv6) match */ +#if SO_REUSE + lpcb_any = lpcb; + lpcb_prev = prev; +#else /* SO_REUSE */ + break; +#endif /* SO_REUSE */ + } else if (IP_ADDR_PCB_VERSION_MATCH_EXACT(lpcb, ip_current_dest_addr())) { + if (ip_addr_cmp(&lpcb->local_ip, ip_current_dest_addr())) { + /* found an exact match */ + break; + } else if (ip_addr_isany(&lpcb->local_ip)) { + /* found an ANY-match */ +#if SO_REUSE + lpcb_any = lpcb; + lpcb_prev = prev; +#else /* SO_REUSE */ + break; +#endif /* SO_REUSE */ + } + } + } + prev = (struct tcp_pcb *)lpcb; + } +#if SO_REUSE + /* first try specific local IP */ + if (lpcb == NULL) { + /* only pass to ANY if no specific local IP has been found */ + lpcb = lpcb_any; + prev = lpcb_prev; + } +#endif /* SO_REUSE */ + if (lpcb != NULL) { + /* Move this PCB to the front of the list so that subsequent + lookups will be faster (we exploit locality in TCP segment + arrivals). */ + if (prev != NULL) { + ((struct tcp_pcb_listen *)prev)->next = lpcb->next; + /* our successor is the remainder of the listening list */ + lpcb->next = tcp_listen_pcbs.listen_pcbs; + /* put this listening pcb at the head of the listening list */ + tcp_listen_pcbs.listen_pcbs = lpcb; + } else { + TCP_STATS_INC(tcp.cachehit); + } + + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packed for LISTENing connection.\n")); +#ifdef LWIP_HOOK_TCP_INPACKET_PCB + if (LWIP_HOOK_TCP_INPACKET_PCB((struct tcp_pcb *)lpcb, tcphdr, tcphdr_optlen, + tcphdr_opt1len, tcphdr_opt2, p) == ERR_OK) +#endif + { + tcp_listen_input(lpcb); + } + pbuf_free(p); + return; + } + } + +#if TCP_INPUT_DEBUG + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags ")); + tcp_debug_print_flags(TCPH_FLAGS(tcphdr)); + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n")); +#endif /* TCP_INPUT_DEBUG */ + + +#ifdef LWIP_HOOK_TCP_INPACKET_PCB + if ((pcb != NULL) && LWIP_HOOK_TCP_INPACKET_PCB(pcb, tcphdr, tcphdr_optlen, + tcphdr_opt1len, tcphdr_opt2, p) != ERR_OK) { + pbuf_free(p); + return; + } +#endif + if (pcb != NULL) { + /* The incoming segment belongs to a connection. */ +#if TCP_INPUT_DEBUG + tcp_debug_print_state(pcb->state); +#endif /* TCP_INPUT_DEBUG */ + + /* Set up a tcp_seg structure. */ + inseg.next = NULL; + inseg.len = p->tot_len; + inseg.p = p; + inseg.tcphdr = tcphdr; + + recv_data = NULL; + recv_flags = 0; + recv_acked = 0; + + if (flags & TCP_PSH) { + p->flags |= PBUF_FLAG_PUSH; + } + + /* If there is data which was previously "refused" by upper layer */ + if (pcb->refused_data != NULL) { + if ((tcp_process_refused_data(pcb) == ERR_ABRT) || + ((pcb->refused_data != NULL) && (tcplen > 0))) { + /* pcb has been aborted or refused data is still refused and the new + segment contains data */ + if (pcb->rcv_ann_wnd == 0) { + /* this is a zero-window probe, we respond to it with current RCV.NXT + and drop the data segment */ + tcp_send_empty_ack(pcb); + } + TCP_STATS_INC(tcp.drop); + MIB2_STATS_INC(mib2.tcpinerrs); + goto aborted; + } + } + tcp_input_pcb = pcb; + err = tcp_process(pcb); + /* A return value of ERR_ABRT means that tcp_abort() was called + and that the pcb has been freed. If so, we don't do anything. */ + if (err != ERR_ABRT) { + if (recv_flags & TF_RESET) { + /* TF_RESET means that the connection was reset by the other + end. We then call the error callback to inform the + application that the connection is dead before we + deallocate the PCB. */ + TCP_EVENT_ERR(pcb->state, pcb->errf, pcb->callback_arg, ERR_RST); + tcp_pcb_remove(&tcp_active_pcbs, pcb); + tcp_free(pcb); + } else { + err = ERR_OK; + /* If the application has registered a "sent" function to be + called when new send buffer space is available, we call it + now. */ + if (recv_acked > 0) { + u16_t acked16; +#if LWIP_WND_SCALE + /* recv_acked is u32_t but the sent callback only takes a u16_t, + so we might have to call it multiple times. */ + u32_t acked = recv_acked; + while (acked > 0) { + acked16 = (u16_t)LWIP_MIN(acked, 0xffffu); + acked -= acked16; +#else + { + acked16 = recv_acked; +#endif + TCP_EVENT_SENT(pcb, (u16_t)acked16, err); + if (err == ERR_ABRT) { + goto aborted; + } + } + recv_acked = 0; + } + if (tcp_input_delayed_close(pcb)) { + goto aborted; + } +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + while (recv_data != NULL) { + struct pbuf *rest = NULL; + pbuf_split_64k(recv_data, &rest); +#else /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + if (recv_data != NULL) { +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + + LWIP_ASSERT("pcb->refused_data == NULL", pcb->refused_data == NULL); + if (pcb->flags & TF_RXCLOSED) { + /* received data although already closed -> abort (send RST) to + notify the remote host that not all data has been processed */ + pbuf_free(recv_data); +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + if (rest != NULL) { + pbuf_free(rest); + } +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + tcp_abort(pcb); + goto aborted; + } + + /* Notify application that data has been received. */ + TCP_EVENT_RECV(pcb, recv_data, ERR_OK, err); + if (err == ERR_ABRT) { +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + if (rest != NULL) { + pbuf_free(rest); + } +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + goto aborted; + } + + /* If the upper layer can't receive this data, store it */ + if (err != ERR_OK) { +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + if (rest != NULL) { + pbuf_cat(recv_data, rest); + } +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + pcb->refused_data = recv_data; + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: keep incoming packet, because pcb is \"full\"\n")); +#if TCP_QUEUE_OOSEQ && LWIP_WND_SCALE + break; + } else { + /* Upper layer received the data, go on with the rest if > 64K */ + recv_data = rest; +#endif /* TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + } + } + + /* If a FIN segment was received, we call the callback + function with a NULL buffer to indicate EOF. */ + if (recv_flags & TF_GOT_FIN) { + if (pcb->refused_data != NULL) { + /* Delay this if we have refused data. */ + pcb->refused_data->flags |= PBUF_FLAG_TCP_FIN; + } else { + /* correct rcv_wnd as the application won't call tcp_recved() + for the FIN's seqno */ + if (pcb->rcv_wnd != TCP_WND_MAX(pcb)) { + pcb->rcv_wnd++; + } + TCP_EVENT_CLOSED(pcb, err); + if (err == ERR_ABRT) { + goto aborted; + } + } + } + + tcp_input_pcb = NULL; + if (tcp_input_delayed_close(pcb)) { + goto aborted; + } + /* Try to send something out. */ + tcp_output(pcb); +#if TCP_INPUT_DEBUG +#if TCP_DEBUG + tcp_debug_print_state(pcb->state); +#endif /* TCP_DEBUG */ +#endif /* TCP_INPUT_DEBUG */ + } + } + /* Jump target if pcb has been aborted in a callback (by calling tcp_abort()). + Below this line, 'pcb' may not be dereferenced! */ +aborted: + tcp_input_pcb = NULL; + recv_data = NULL; + + /* give up our reference to inseg.p */ + if (inseg.p != NULL) { + pbuf_free(inseg.p); + inseg.p = NULL; + } + } else { + /* If no matching PCB was found, send a TCP RST (reset) to the + sender. */ + LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_input: no PCB match found, resetting.\n")); + if (!(TCPH_FLAGS(tcphdr) & TCP_RST)) { + TCP_STATS_INC(tcp.proterr); + TCP_STATS_INC(tcp.drop); + tcp_rst(NULL, ackno, seqno + tcplen, ip_current_dest_addr(), + ip_current_src_addr(), tcphdr->dest, tcphdr->src); + } + pbuf_free(p); + } + + LWIP_ASSERT("tcp_input: tcp_pcbs_sane()", tcp_pcbs_sane()); + PERF_STOP("tcp_input"); + return; +dropped: + TCP_STATS_INC(tcp.drop); + MIB2_STATS_INC(mib2.tcpinerrs); + pbuf_free(p); +} + +/** Called from tcp_input to check for TF_CLOSED flag. This results in closing + * and deallocating a pcb at the correct place to ensure noone references it + * any more. + * @returns 1 if the pcb has been closed and deallocated, 0 otherwise + */ +static int +tcp_input_delayed_close(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("tcp_input_delayed_close: invalid pcb", pcb != NULL); + + if (recv_flags & TF_CLOSED) { + /* The connection has been closed and we will deallocate the + PCB. */ + if (!(pcb->flags & TF_RXCLOSED)) { + /* Connection closed although the application has only shut down the + tx side: call the PCB's err callback and indicate the closure to + ensure the application doesn't continue using the PCB. */ + TCP_EVENT_ERR(pcb->state, pcb->errf, pcb->callback_arg, ERR_CLSD); + } + tcp_pcb_remove(&tcp_active_pcbs, pcb); + tcp_free(pcb); + return 1; + } + return 0; +} + +/** + * Called by tcp_input() when a segment arrives for a listening + * connection (from tcp_input()). + * + * @param pcb the tcp_pcb_listen for which a segment arrived + * + * @note the segment which arrived is saved in global variables, therefore only the pcb + * involved is passed as a parameter to this function + */ +static void +tcp_listen_input(struct tcp_pcb_listen *pcb) +{ + struct tcp_pcb *npcb; + u32_t iss; + err_t rc; + + if (flags & TCP_RST) { + /* An incoming RST should be ignored. Return. */ + return; + } + + LWIP_ASSERT("tcp_listen_input: invalid pcb", pcb != NULL); + + /* In the LISTEN state, we check for incoming SYN segments, + creates a new PCB, and responds with a SYN|ACK. */ + if (flags & TCP_ACK) { + /* For incoming segments with the ACK flag set, respond with a + RST. */ + LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_listen_input: ACK in LISTEN, sending reset\n")); + tcp_rst((const struct tcp_pcb *)pcb, ackno, seqno + tcplen, ip_current_dest_addr(), + ip_current_src_addr(), tcphdr->dest, tcphdr->src); + } else if (flags & TCP_SYN) { + LWIP_DEBUGF(TCP_DEBUG, ("TCP connection request %"U16_F" -> %"U16_F".\n", tcphdr->src, tcphdr->dest)); +#if TCP_LISTEN_BACKLOG + if (pcb->accepts_pending >= pcb->backlog) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_listen_input: listen backlog exceeded for port %"U16_F"\n", tcphdr->dest)); + return; + } +#endif /* TCP_LISTEN_BACKLOG */ + npcb = tcp_alloc(pcb->prio); + /* If a new PCB could not be created (probably due to lack of memory), + we don't do anything, but rely on the sender will retransmit the + SYN at a time when we have more memory available. */ + if (npcb == NULL) { + err_t err; + LWIP_DEBUGF(TCP_DEBUG, ("tcp_listen_input: could not allocate PCB\n")); + TCP_STATS_INC(tcp.memerr); + TCP_EVENT_ACCEPT(pcb, NULL, pcb->callback_arg, ERR_MEM, err); + LWIP_UNUSED_ARG(err); /* err not useful here */ + return; + } +#if TCP_LISTEN_BACKLOG + pcb->accepts_pending++; + tcp_set_flags(npcb, TF_BACKLOGPEND); +#endif /* TCP_LISTEN_BACKLOG */ + /* Set up the new PCB. */ + ip_addr_copy(npcb->local_ip, *ip_current_dest_addr()); + ip_addr_copy(npcb->remote_ip, *ip_current_src_addr()); + npcb->local_port = pcb->local_port; + npcb->remote_port = tcphdr->src; + npcb->state = SYN_RCVD; + npcb->rcv_nxt = seqno + 1; + npcb->rcv_ann_right_edge = npcb->rcv_nxt; + iss = tcp_next_iss(npcb); + npcb->snd_wl2 = iss; + npcb->snd_nxt = iss; + npcb->lastack = iss; + npcb->snd_lbb = iss; + npcb->snd_wl1 = seqno - 1;/* initialise to seqno-1 to force window update */ + npcb->callback_arg = pcb->callback_arg; +#if LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG + npcb->listener = pcb; +#endif /* LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG */ + /* inherit socket options */ + npcb->so_options = pcb->so_options & SOF_INHERITED; + npcb->netif_idx = pcb->netif_idx; + /* Register the new PCB so that we can begin receiving segments + for it. */ + TCP_REG_ACTIVE(npcb); + + /* Parse any options in the SYN. */ + tcp_parseopt(npcb); + npcb->snd_wnd = tcphdr->wnd; + npcb->snd_wnd_max = npcb->snd_wnd; + +#if TCP_CALCULATE_EFF_SEND_MSS + npcb->mss = tcp_eff_send_mss(npcb->mss, &npcb->local_ip, &npcb->remote_ip); +#endif /* TCP_CALCULATE_EFF_SEND_MSS */ + + MIB2_STATS_INC(mib2.tcppassiveopens); + +#if LWIP_TCP_PCB_NUM_EXT_ARGS + if (tcp_ext_arg_invoke_callbacks_passive_open(pcb, npcb) != ERR_OK) { + tcp_abandon(npcb, 0); + return; + } +#endif + + /* Send a SYN|ACK together with the MSS option. */ + rc = tcp_enqueue_flags(npcb, TCP_SYN | TCP_ACK); + if (rc != ERR_OK) { + tcp_abandon(npcb, 0); + return; + } + tcp_output(npcb); + } + return; +} + +/** + * Called by tcp_input() when a segment arrives for a connection in + * TIME_WAIT. + * + * @param pcb the tcp_pcb for which a segment arrived + * + * @note the segment which arrived is saved in global variables, therefore only the pcb + * involved is passed as a parameter to this function + */ +static void +tcp_timewait_input(struct tcp_pcb *pcb) +{ + /* RFC 1337: in TIME_WAIT, ignore RST and ACK FINs + any 'acceptable' segments */ + /* RFC 793 3.9 Event Processing - Segment Arrives: + * - first check sequence number - we skip that one in TIME_WAIT (always + * acceptable since we only send ACKs) + * - second check the RST bit (... return) */ + if (flags & TCP_RST) { + return; + } + + LWIP_ASSERT("tcp_timewait_input: invalid pcb", pcb != NULL); + + /* - fourth, check the SYN bit, */ + if (flags & TCP_SYN) { + /* If an incoming segment is not acceptable, an acknowledgment + should be sent in reply */ + if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt + pcb->rcv_wnd)) { + /* If the SYN is in the window it is an error, send a reset */ + tcp_rst(pcb, ackno, seqno + tcplen, ip_current_dest_addr(), + ip_current_src_addr(), tcphdr->dest, tcphdr->src); + return; + } + } else if (flags & TCP_FIN) { + /* - eighth, check the FIN bit: Remain in the TIME-WAIT state. + Restart the 2 MSL time-wait timeout.*/ + pcb->tmr = tcp_ticks; + } + + if ((tcplen > 0)) { + /* Acknowledge data, FIN or out-of-window SYN */ + tcp_ack_now(pcb); + tcp_output(pcb); + } + return; +} + +/** + * Implements the TCP state machine. Called by tcp_input. In some + * states tcp_receive() is called to receive data. The tcp_seg + * argument will be freed by the caller (tcp_input()) unless the + * recv_data pointer in the pcb is set. + * + * @param pcb the tcp_pcb for which a segment arrived + * + * @note the segment which arrived is saved in global variables, therefore only the pcb + * involved is passed as a parameter to this function + */ +static err_t +tcp_process(struct tcp_pcb *pcb) +{ + struct tcp_seg *rseg; + u8_t acceptable = 0; + err_t err; + + err = ERR_OK; + + LWIP_ASSERT("tcp_process: invalid pcb", pcb != NULL); + + /* Process incoming RST segments. */ + if (flags & TCP_RST) { + /* First, determine if the reset is acceptable. */ + if (pcb->state == SYN_SENT) { + /* "In the SYN-SENT state (a RST received in response to an initial SYN), + the RST is acceptable if the ACK field acknowledges the SYN." */ + if (ackno == pcb->snd_nxt) { + acceptable = 1; + } + } else { + /* "In all states except SYN-SENT, all reset (RST) segments are validated + by checking their SEQ-fields." */ + if (seqno == pcb->rcv_nxt) { + acceptable = 1; + } else if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, + pcb->rcv_nxt + pcb->rcv_wnd)) { + /* If the sequence number is inside the window, we send a challenge ACK + and wait for a re-send with matching sequence number. + This follows RFC 5961 section 3.2 and addresses CVE-2004-0230 + (RST spoofing attack), which is present in RFC 793 RST handling. */ + tcp_ack_now(pcb); + } + } + + if (acceptable) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_process: Connection RESET\n")); + LWIP_ASSERT("tcp_input: pcb->state != CLOSED", pcb->state != CLOSED); + recv_flags |= TF_RESET; + tcp_clear_flags(pcb, TF_ACK_DELAY); + return ERR_RST; + } else { + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_process: unacceptable reset seqno %"U32_F" rcv_nxt %"U32_F"\n", + seqno, pcb->rcv_nxt)); + LWIP_DEBUGF(TCP_DEBUG, ("tcp_process: unacceptable reset seqno %"U32_F" rcv_nxt %"U32_F"\n", + seqno, pcb->rcv_nxt)); + return ERR_OK; + } + } + + if ((flags & TCP_SYN) && (pcb->state != SYN_SENT && pcb->state != SYN_RCVD)) { + /* Cope with new connection attempt after remote end crashed */ + tcp_ack_now(pcb); + return ERR_OK; + } + + if ((pcb->flags & TF_RXCLOSED) == 0) { + /* Update the PCB (in)activity timer unless rx is closed (see tcp_shutdown) */ + pcb->tmr = tcp_ticks; + } + pcb->keep_cnt_sent = 0; + pcb->persist_probe = 0; + + tcp_parseopt(pcb); + + /* Do different things depending on the TCP state. */ + switch (pcb->state) { + case SYN_SENT: + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("SYN-SENT: ackno %"U32_F" pcb->snd_nxt %"U32_F" unacked %"U32_F"\n", ackno, + pcb->snd_nxt, lwip_ntohl(pcb->unacked->tcphdr->seqno))); + /* received SYN ACK with expected sequence number? */ + if ((flags & TCP_ACK) && (flags & TCP_SYN) + && (ackno == pcb->lastack + 1)) { + pcb->rcv_nxt = seqno + 1; + pcb->rcv_ann_right_edge = pcb->rcv_nxt; + pcb->lastack = ackno; + pcb->snd_wnd = tcphdr->wnd; + pcb->snd_wnd_max = pcb->snd_wnd; + pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */ + pcb->state = ESTABLISHED; + +#if TCP_CALCULATE_EFF_SEND_MSS + pcb->mss = tcp_eff_send_mss(pcb->mss, &pcb->local_ip, &pcb->remote_ip); +#endif /* TCP_CALCULATE_EFF_SEND_MSS */ + + pcb->cwnd = LWIP_TCP_CALC_INITIAL_CWND(pcb->mss); + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_process (SENT): cwnd %"TCPWNDSIZE_F + " ssthresh %"TCPWNDSIZE_F"\n", + pcb->cwnd, pcb->ssthresh)); + LWIP_ASSERT("pcb->snd_queuelen > 0", (pcb->snd_queuelen > 0)); + --pcb->snd_queuelen; + LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_process: SYN-SENT --queuelen %"TCPWNDSIZE_F"\n", (tcpwnd_size_t)pcb->snd_queuelen)); + rseg = pcb->unacked; + if (rseg == NULL) { + /* might happen if tcp_output fails in tcp_rexmit_rto() + in which case the segment is on the unsent list */ + rseg = pcb->unsent; + LWIP_ASSERT("no segment to free", rseg != NULL); + pcb->unsent = rseg->next; + } else { + pcb->unacked = rseg->next; + } + tcp_seg_free(rseg); + + /* If there's nothing left to acknowledge, stop the retransmit + timer, otherwise reset it to start again */ + if (pcb->unacked == NULL) { + pcb->rtime = -1; + } else { + pcb->rtime = 0; + pcb->nrtx = 0; + } + + /* Call the user specified function to call when successfully + * connected. */ + TCP_EVENT_CONNECTED(pcb, ERR_OK, err); + if (err == ERR_ABRT) { + return ERR_ABRT; + } + tcp_ack_now(pcb); + } + /* received ACK? possibly a half-open connection */ + else if (flags & TCP_ACK) { + /* send a RST to bring the other side in a non-synchronized state. */ + tcp_rst(pcb, ackno, seqno + tcplen, ip_current_dest_addr(), + ip_current_src_addr(), tcphdr->dest, tcphdr->src); + /* Resend SYN immediately (don't wait for rto timeout) to establish + connection faster, but do not send more SYNs than we otherwise would + have, or we might get caught in a loop on loopback interfaces. */ + if (pcb->nrtx < TCP_SYNMAXRTX) { + pcb->rtime = 0; + tcp_rexmit_rto(pcb); + } + } + break; + case SYN_RCVD: + if (flags & TCP_ACK) { + /* expected ACK number? */ + if (TCP_SEQ_BETWEEN(ackno, pcb->lastack + 1, pcb->snd_nxt)) { + pcb->state = ESTABLISHED; + LWIP_DEBUGF(TCP_DEBUG, ("TCP connection established %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); +#if LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG + if (pcb->listener == NULL) { + /* listen pcb might be closed by now */ + err = ERR_VAL; + } else +#endif /* LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG */ + { +#if LWIP_CALLBACK_API + LWIP_ASSERT("pcb->listener->accept != NULL", pcb->listener->accept != NULL); +#endif + tcp_backlog_accepted(pcb); + /* Call the accept function. */ + TCP_EVENT_ACCEPT(pcb->listener, pcb, pcb->callback_arg, ERR_OK, err); + } + if (err != ERR_OK) { + /* If the accept function returns with an error, we abort + * the connection. */ + /* Already aborted? */ + if (err != ERR_ABRT) { + tcp_abort(pcb); + } + return ERR_ABRT; + } + /* If there was any data contained within this ACK, + * we'd better pass it on to the application as well. */ + tcp_receive(pcb); + + /* Prevent ACK for SYN to generate a sent event */ + if (recv_acked != 0) { + recv_acked--; + } + + pcb->cwnd = LWIP_TCP_CALC_INITIAL_CWND(pcb->mss); + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_process (SYN_RCVD): cwnd %"TCPWNDSIZE_F + " ssthresh %"TCPWNDSIZE_F"\n", + pcb->cwnd, pcb->ssthresh)); + + if (recv_flags & TF_GOT_FIN) { + tcp_ack_now(pcb); + pcb->state = CLOSE_WAIT; + } + } else { + /* incorrect ACK number, send RST */ + tcp_rst(pcb, ackno, seqno + tcplen, ip_current_dest_addr(), + ip_current_src_addr(), tcphdr->dest, tcphdr->src); + } + } else if ((flags & TCP_SYN) && (seqno == pcb->rcv_nxt - 1)) { + /* Looks like another copy of the SYN - retransmit our SYN-ACK */ + tcp_rexmit(pcb); + } + break; + case CLOSE_WAIT: + /* FALLTHROUGH */ + case ESTABLISHED: + tcp_receive(pcb); + if (recv_flags & TF_GOT_FIN) { /* passive close */ + tcp_ack_now(pcb); + pcb->state = CLOSE_WAIT; + } + break; + case FIN_WAIT_1: + tcp_receive(pcb); + if (recv_flags & TF_GOT_FIN) { + if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt) && + pcb->unsent == NULL) { + LWIP_DEBUGF(TCP_DEBUG, + ("TCP connection closed: FIN_WAIT_1 %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); + tcp_ack_now(pcb); + tcp_pcb_purge(pcb); + TCP_RMV_ACTIVE(pcb); + pcb->state = TIME_WAIT; + TCP_REG(&tcp_tw_pcbs, pcb); + } else { + tcp_ack_now(pcb); + pcb->state = CLOSING; + } + } else if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt) && + pcb->unsent == NULL) { + pcb->state = FIN_WAIT_2; + } + break; + case FIN_WAIT_2: + tcp_receive(pcb); + if (recv_flags & TF_GOT_FIN) { + LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: FIN_WAIT_2 %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); + tcp_ack_now(pcb); + tcp_pcb_purge(pcb); + TCP_RMV_ACTIVE(pcb); + pcb->state = TIME_WAIT; + TCP_REG(&tcp_tw_pcbs, pcb); + } + break; + case CLOSING: + tcp_receive(pcb); + if ((flags & TCP_ACK) && ackno == pcb->snd_nxt && pcb->unsent == NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: CLOSING %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); + tcp_pcb_purge(pcb); + TCP_RMV_ACTIVE(pcb); + pcb->state = TIME_WAIT; + TCP_REG(&tcp_tw_pcbs, pcb); + } + break; + case LAST_ACK: + tcp_receive(pcb); + if ((flags & TCP_ACK) && ackno == pcb->snd_nxt && pcb->unsent == NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: LAST_ACK %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); + /* bugfix #21699: don't set pcb->state to CLOSED here or we risk leaking segments */ + recv_flags |= TF_CLOSED; + } + break; + default: + break; + } + return ERR_OK; +} + +#if TCP_QUEUE_OOSEQ +/** + * Insert segment into the list (segments covered with new one will be deleted) + * + * Called from tcp_receive() + */ +static void +tcp_oos_insert_segment(struct tcp_seg *cseg, struct tcp_seg *next) +{ + struct tcp_seg *old_seg; + + LWIP_ASSERT("tcp_oos_insert_segment: invalid cseg", cseg != NULL); + + if (TCPH_FLAGS(cseg->tcphdr) & TCP_FIN) { + /* received segment overlaps all following segments */ + tcp_segs_free(next); + next = NULL; + } else { + /* delete some following segments + oos queue may have segments with FIN flag */ + while (next && + TCP_SEQ_GEQ((seqno + cseg->len), + (next->tcphdr->seqno + next->len))) { + /* cseg with FIN already processed */ + if (TCPH_FLAGS(next->tcphdr) & TCP_FIN) { + TCPH_SET_FLAG(cseg->tcphdr, TCP_FIN); + } + old_seg = next; + next = next->next; + tcp_seg_free(old_seg); + } + if (next && + TCP_SEQ_GT(seqno + cseg->len, next->tcphdr->seqno)) { + /* We need to trim the incoming segment. */ + cseg->len = (u16_t)(next->tcphdr->seqno - seqno); + pbuf_realloc(cseg->p, cseg->len); + } + } + cseg->next = next; +} +#endif /* TCP_QUEUE_OOSEQ */ + +/** Remove segments from a list if the incoming ACK acknowledges them */ +static struct tcp_seg * +tcp_free_acked_segments(struct tcp_pcb *pcb, struct tcp_seg *seg_list, const char *dbg_list_name, + struct tcp_seg *dbg_other_seg_list) +{ + struct tcp_seg *next; + u16_t clen; + + LWIP_UNUSED_ARG(dbg_list_name); + LWIP_UNUSED_ARG(dbg_other_seg_list); + + while (seg_list != NULL && + TCP_SEQ_LEQ(lwip_ntohl(seg_list->tcphdr->seqno) + + TCP_TCPLEN(seg_list), ackno)) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: removing %"U32_F":%"U32_F" from pcb->%s\n", + lwip_ntohl(seg_list->tcphdr->seqno), + lwip_ntohl(seg_list->tcphdr->seqno) + TCP_TCPLEN(seg_list), + dbg_list_name)); + + next = seg_list; + seg_list = seg_list->next; + + clen = pbuf_clen(next->p); + LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"TCPWNDSIZE_F" ... ", + (tcpwnd_size_t)pcb->snd_queuelen)); + LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= clen)); + + pcb->snd_queuelen = (u16_t)(pcb->snd_queuelen - clen); + recv_acked = (tcpwnd_size_t)(recv_acked + next->len); + tcp_seg_free(next); + + LWIP_DEBUGF(TCP_QLEN_DEBUG, ("%"TCPWNDSIZE_F" (after freeing %s)\n", + (tcpwnd_size_t)pcb->snd_queuelen, + dbg_list_name)); + if (pcb->snd_queuelen != 0) { + LWIP_ASSERT("tcp_receive: valid queue length", + seg_list != NULL || dbg_other_seg_list != NULL); + } + } + return seg_list; +} + +/** + * Called by tcp_process. Checks if the given segment is an ACK for outstanding + * data, and if so frees the memory of the buffered data. Next, it places the + * segment on any of the receive queues (pcb->recved or pcb->ooseq). If the segment + * is buffered, the pbuf is referenced by pbuf_ref so that it will not be freed until + * it has been removed from the buffer. + * + * If the incoming segment constitutes an ACK for a segment that was used for RTT + * estimation, the RTT is estimated here as well. + * + * Called from tcp_process(). + */ +static void +tcp_receive(struct tcp_pcb *pcb) +{ + s16_t m; + u32_t right_wnd_edge; + int found_dupack = 0; + + LWIP_ASSERT("tcp_receive: invalid pcb", pcb != NULL); + LWIP_ASSERT("tcp_receive: wrong state", pcb->state >= ESTABLISHED); + + if (flags & TCP_ACK) { + right_wnd_edge = pcb->snd_wnd + pcb->snd_wl2; + + /* Update window. */ + if (TCP_SEQ_LT(pcb->snd_wl1, seqno) || + (pcb->snd_wl1 == seqno && TCP_SEQ_LT(pcb->snd_wl2, ackno)) || + (pcb->snd_wl2 == ackno && (u32_t)SND_WND_SCALE(pcb, tcphdr->wnd) > pcb->snd_wnd)) { + pcb->snd_wnd = SND_WND_SCALE(pcb, tcphdr->wnd); + /* keep track of the biggest window announced by the remote host to calculate + the maximum segment size */ + if (pcb->snd_wnd_max < pcb->snd_wnd) { + pcb->snd_wnd_max = pcb->snd_wnd; + } + pcb->snd_wl1 = seqno; + pcb->snd_wl2 = ackno; + LWIP_DEBUGF(TCP_WND_DEBUG, ("tcp_receive: window update %"TCPWNDSIZE_F"\n", pcb->snd_wnd)); +#if TCP_WND_DEBUG + } else { + if (pcb->snd_wnd != (tcpwnd_size_t)SND_WND_SCALE(pcb, tcphdr->wnd)) { + LWIP_DEBUGF(TCP_WND_DEBUG, + ("tcp_receive: no window update lastack %"U32_F" ackno %" + U32_F" wl1 %"U32_F" seqno %"U32_F" wl2 %"U32_F"\n", + pcb->lastack, ackno, pcb->snd_wl1, seqno, pcb->snd_wl2)); + } +#endif /* TCP_WND_DEBUG */ + } + + /* (From Stevens TCP/IP Illustrated Vol II, p970.) Its only a + * duplicate ack if: + * 1) It doesn't ACK new data + * 2) length of received packet is zero (i.e. no payload) + * 3) the advertised window hasn't changed + * 4) There is outstanding unacknowledged data (retransmission timer running) + * 5) The ACK is == biggest ACK sequence number so far seen (snd_una) + * + * If it passes all five, should process as a dupack: + * a) dupacks < 3: do nothing + * b) dupacks == 3: fast retransmit + * c) dupacks > 3: increase cwnd + * + * If it only passes 1-3, should reset dupack counter (and add to + * stats, which we don't do in lwIP) + * + * If it only passes 1, should reset dupack counter + * + */ + + /* Clause 1 */ + if (TCP_SEQ_LEQ(ackno, pcb->lastack)) { + /* Clause 2 */ + if (tcplen == 0) { + /* Clause 3 */ + if (pcb->snd_wl2 + pcb->snd_wnd == right_wnd_edge) { + /* Clause 4 */ + if (pcb->rtime >= 0) { + /* Clause 5 */ + if (pcb->lastack == ackno) { + found_dupack = 1; + if ((u8_t)(pcb->dupacks + 1) > pcb->dupacks) { + ++pcb->dupacks; + } + if (pcb->dupacks > 3) { + /* Inflate the congestion window */ + TCP_WND_INC(pcb->cwnd, pcb->mss); + } + if (pcb->dupacks >= 3) { + /* Do fast retransmit (checked via TF_INFR, not via dupacks count) */ + tcp_rexmit_fast(pcb); + } + } + } + } + } + /* If Clause (1) or more is true, but not a duplicate ack, reset + * count of consecutive duplicate acks */ + if (!found_dupack) { + pcb->dupacks = 0; + } + } else if (TCP_SEQ_BETWEEN(ackno, pcb->lastack + 1, pcb->snd_nxt)) { + /* We come here when the ACK acknowledges new data. */ + tcpwnd_size_t acked; + + /* Reset the "IN Fast Retransmit" flag, since we are no longer + in fast retransmit. Also reset the congestion window to the + slow start threshold. */ + if (pcb->flags & TF_INFR) { + tcp_clear_flags(pcb, TF_INFR); + pcb->cwnd = pcb->ssthresh; + pcb->bytes_acked = 0; + } + + /* Reset the number of retransmissions. */ + pcb->nrtx = 0; + + /* Reset the retransmission time-out. */ + pcb->rto = (s16_t)((pcb->sa >> 3) + pcb->sv); + + /* Record how much data this ACK acks */ + acked = (tcpwnd_size_t)(ackno - pcb->lastack); + + /* Reset the fast retransmit variables. */ + pcb->dupacks = 0; + pcb->lastack = ackno; + + /* Update the congestion control variables (cwnd and + ssthresh). */ + if (pcb->state >= ESTABLISHED) { + if (pcb->cwnd < pcb->ssthresh) { + tcpwnd_size_t increase; + /* limit to 1 SMSS segment during period following RTO */ + u8_t num_seg = (pcb->flags & TF_RTO) ? 1 : 2; + /* RFC 3465, section 2.2 Slow Start */ + increase = LWIP_MIN(acked, (tcpwnd_size_t)(num_seg * pcb->mss)); + TCP_WND_INC(pcb->cwnd, increase); + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: slow start cwnd %"TCPWNDSIZE_F"\n", pcb->cwnd)); + } else { + /* RFC 3465, section 2.1 Congestion Avoidance */ + TCP_WND_INC(pcb->bytes_acked, acked); + if (pcb->bytes_acked >= pcb->cwnd) { + pcb->bytes_acked = (tcpwnd_size_t)(pcb->bytes_acked - pcb->cwnd); + TCP_WND_INC(pcb->cwnd, pcb->mss); + } + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: congestion avoidance cwnd %"TCPWNDSIZE_F"\n", pcb->cwnd)); + } + } + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: ACK for %"U32_F", unacked->seqno %"U32_F":%"U32_F"\n", + ackno, + pcb->unacked != NULL ? + lwip_ntohl(pcb->unacked->tcphdr->seqno) : 0, + pcb->unacked != NULL ? + lwip_ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked) : 0)); + + /* Remove segment from the unacknowledged list if the incoming + ACK acknowledges them. */ + pcb->unacked = tcp_free_acked_segments(pcb, pcb->unacked, "unacked", pcb->unsent); + /* We go through the ->unsent list to see if any of the segments + on the list are acknowledged by the ACK. This may seem + strange since an "unsent" segment shouldn't be acked. The + rationale is that lwIP puts all outstanding segments on the + ->unsent list after a retransmission, so these segments may + in fact have been sent once. */ + pcb->unsent = tcp_free_acked_segments(pcb, pcb->unsent, "unsent", pcb->unacked); + + /* If there's nothing left to acknowledge, stop the retransmit + timer, otherwise reset it to start again */ + if (pcb->unacked == NULL) { + pcb->rtime = -1; + } else { + pcb->rtime = 0; + } + + pcb->polltmr = 0; + +#if TCP_OVERSIZE + if (pcb->unsent == NULL) { + pcb->unsent_oversize = 0; + } +#endif /* TCP_OVERSIZE */ + +#if LWIP_IPV6 && LWIP_ND6_TCP_REACHABILITY_HINTS + if (ip_current_is_v6()) { + /* Inform neighbor reachability of forward progress. */ + nd6_reachability_hint(ip6_current_src_addr()); + } +#endif /* LWIP_IPV6 && LWIP_ND6_TCP_REACHABILITY_HINTS*/ + + pcb->snd_buf = (tcpwnd_size_t)(pcb->snd_buf + recv_acked); + /* check if this ACK ends our retransmission of in-flight data */ + if (pcb->flags & TF_RTO) { + /* RTO is done if + 1) both queues are empty or + 2) unacked is empty and unsent head contains data not part of RTO or + 3) unacked head contains data not part of RTO */ + if (pcb->unacked == NULL) { + if ((pcb->unsent == NULL) || + (TCP_SEQ_LEQ(pcb->rto_end, lwip_ntohl(pcb->unsent->tcphdr->seqno)))) { + tcp_clear_flags(pcb, TF_RTO); + } + } else if (TCP_SEQ_LEQ(pcb->rto_end, lwip_ntohl(pcb->unacked->tcphdr->seqno))) { + tcp_clear_flags(pcb, TF_RTO); + } + } + /* End of ACK for new data processing. */ + } else { + /* Out of sequence ACK, didn't really ack anything */ + tcp_send_empty_ack(pcb); + } + + LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: pcb->rttest %"U32_F" rtseq %"U32_F" ackno %"U32_F"\n", + pcb->rttest, pcb->rtseq, ackno)); + + /* RTT estimation calculations. This is done by checking if the + incoming segment acknowledges the segment we use to take a + round-trip time measurement. */ + if (pcb->rttest && TCP_SEQ_LT(pcb->rtseq, ackno)) { + /* diff between this shouldn't exceed 32K since this are tcp timer ticks + and a round-trip shouldn't be that long... */ + m = (s16_t)(tcp_ticks - pcb->rttest); + + LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: experienced rtt %"U16_F" ticks (%"U16_F" msec).\n", + m, (u16_t)(m * TCP_SLOW_INTERVAL))); + + /* This is taken directly from VJs original code in his paper */ + m = (s16_t)(m - (pcb->sa >> 3)); + pcb->sa = (s16_t)(pcb->sa + m); + if (m < 0) { + m = (s16_t) - m; + } + m = (s16_t)(m - (pcb->sv >> 2)); + pcb->sv = (s16_t)(pcb->sv + m); + pcb->rto = (s16_t)((pcb->sa >> 3) + pcb->sv); + + LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: RTO %"U16_F" (%"U16_F" milliseconds)\n", + pcb->rto, (u16_t)(pcb->rto * TCP_SLOW_INTERVAL))); + + pcb->rttest = 0; + } + } + + /* If the incoming segment contains data, we must process it + further unless the pcb already received a FIN. + (RFC 793, chapter 3.9, "SEGMENT ARRIVES" in states CLOSE-WAIT, CLOSING, + LAST-ACK and TIME-WAIT: "Ignore the segment text.") */ + if ((tcplen > 0) && (pcb->state < CLOSE_WAIT)) { + /* This code basically does three things: + + +) If the incoming segment contains data that is the next + in-sequence data, this data is passed to the application. This + might involve trimming the first edge of the data. The rcv_nxt + variable and the advertised window are adjusted. + + +) If the incoming segment has data that is above the next + sequence number expected (->rcv_nxt), the segment is placed on + the ->ooseq queue. This is done by finding the appropriate + place in the ->ooseq queue (which is ordered by sequence + number) and trim the segment in both ends if needed. An + immediate ACK is sent to indicate that we received an + out-of-sequence segment. + + +) Finally, we check if the first segment on the ->ooseq queue + now is in sequence (i.e., if rcv_nxt >= ooseq->seqno). If + rcv_nxt > ooseq->seqno, we must trim the first edge of the + segment on ->ooseq before we adjust rcv_nxt. The data in the + segments that are now on sequence are chained onto the + incoming segment so that we only need to call the application + once. + */ + + /* First, we check if we must trim the first edge. We have to do + this if the sequence number of the incoming segment is less + than rcv_nxt, and the sequence number plus the length of the + segment is larger than rcv_nxt. */ + /* if (TCP_SEQ_LT(seqno, pcb->rcv_nxt)) { + if (TCP_SEQ_LT(pcb->rcv_nxt, seqno + tcplen)) {*/ + if (TCP_SEQ_BETWEEN(pcb->rcv_nxt, seqno + 1, seqno + tcplen - 1)) { + /* Trimming the first edge is done by pushing the payload + pointer in the pbuf downwards. This is somewhat tricky since + we do not want to discard the full contents of the pbuf up to + the new starting point of the data since we have to keep the + TCP header which is present in the first pbuf in the chain. + + What is done is really quite a nasty hack: the first pbuf in + the pbuf chain is pointed to by inseg.p. Since we need to be + able to deallocate the whole pbuf, we cannot change this + inseg.p pointer to point to any of the later pbufs in the + chain. Instead, we point the ->payload pointer in the first + pbuf to data in one of the later pbufs. We also set the + inseg.data pointer to point to the right place. This way, the + ->p pointer will still point to the first pbuf, but the + ->p->payload pointer will point to data in another pbuf. + + After we are done with adjusting the pbuf pointers we must + adjust the ->data pointer in the seg and the segment + length.*/ + + struct pbuf *p = inseg.p; + u32_t off32 = pcb->rcv_nxt - seqno; + u16_t new_tot_len, off; + LWIP_ASSERT("inseg.p != NULL", inseg.p); + LWIP_ASSERT("insane offset!", (off32 < 0xffff)); + off = (u16_t)off32; + LWIP_ASSERT("pbuf too short!", (((s32_t)inseg.p->tot_len) >= off)); + inseg.len -= off; + new_tot_len = (u16_t)(inseg.p->tot_len - off); + while (p->len < off) { + off -= p->len; + /* all pbufs up to and including this one have len==0, so tot_len is equal */ + p->tot_len = new_tot_len; + p->len = 0; + p = p->next; + } + /* cannot fail... */ + pbuf_remove_header(p, off); + inseg.tcphdr->seqno = seqno = pcb->rcv_nxt; + } else { + if (TCP_SEQ_LT(seqno, pcb->rcv_nxt)) { + /* the whole segment is < rcv_nxt */ + /* must be a duplicate of a packet that has already been correctly handled */ + + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: duplicate seqno %"U32_F"\n", seqno)); + tcp_ack_now(pcb); + } + } + + /* The sequence number must be within the window (above rcv_nxt + and below rcv_nxt + rcv_wnd) in order to be further + processed. */ + if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, + pcb->rcv_nxt + pcb->rcv_wnd - 1)) { + if (pcb->rcv_nxt == seqno) { + /* The incoming segment is the next in sequence. We check if + we have to trim the end of the segment and update rcv_nxt + and pass the data to the application. */ + tcplen = TCP_TCPLEN(&inseg); + + if (tcplen > pcb->rcv_wnd) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, + ("tcp_receive: other end overran receive window" + "seqno %"U32_F" len %"U16_F" right edge %"U32_F"\n", + seqno, tcplen, pcb->rcv_nxt + pcb->rcv_wnd)); + if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) { + /* Must remove the FIN from the header as we're trimming + * that byte of sequence-space from the packet */ + TCPH_FLAGS_SET(inseg.tcphdr, TCPH_FLAGS(inseg.tcphdr) & ~(unsigned int)TCP_FIN); + } + /* Adjust length of segment to fit in the window. */ + TCPWND_CHECK16(pcb->rcv_wnd); + inseg.len = (u16_t)pcb->rcv_wnd; + if (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) { + inseg.len -= 1; + } + pbuf_realloc(inseg.p, inseg.len); + tcplen = TCP_TCPLEN(&inseg); + LWIP_ASSERT("tcp_receive: segment not trimmed correctly to rcv_wnd\n", + (seqno + tcplen) == (pcb->rcv_nxt + pcb->rcv_wnd)); + } +#if TCP_QUEUE_OOSEQ + /* Received in-sequence data, adjust ooseq data if: + - FIN has been received or + - inseq overlaps with ooseq */ + if (pcb->ooseq != NULL) { + if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, + ("tcp_receive: received in-order FIN, binning ooseq queue\n")); + /* Received in-order FIN means anything that was received + * out of order must now have been received in-order, so + * bin the ooseq queue */ + while (pcb->ooseq != NULL) { + struct tcp_seg *old_ooseq = pcb->ooseq; + pcb->ooseq = pcb->ooseq->next; + tcp_seg_free(old_ooseq); + } + } else { + struct tcp_seg *next = pcb->ooseq; + /* Remove all segments on ooseq that are covered by inseg already. + * FIN is copied from ooseq to inseg if present. */ + while (next && + TCP_SEQ_GEQ(seqno + tcplen, + next->tcphdr->seqno + next->len)) { + struct tcp_seg *tmp; + /* inseg cannot have FIN here (already processed above) */ + if ((TCPH_FLAGS(next->tcphdr) & TCP_FIN) != 0 && + (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) == 0) { + TCPH_SET_FLAG(inseg.tcphdr, TCP_FIN); + tcplen = TCP_TCPLEN(&inseg); + } + tmp = next; + next = next->next; + tcp_seg_free(tmp); + } + /* Now trim right side of inseg if it overlaps with the first + * segment on ooseq */ + if (next && + TCP_SEQ_GT(seqno + tcplen, + next->tcphdr->seqno)) { + /* inseg cannot have FIN here (already processed above) */ + inseg.len = (u16_t)(next->tcphdr->seqno - seqno); + if (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) { + inseg.len -= 1; + } + pbuf_realloc(inseg.p, inseg.len); + tcplen = TCP_TCPLEN(&inseg); + LWIP_ASSERT("tcp_receive: segment not trimmed correctly to ooseq queue\n", + (seqno + tcplen) == next->tcphdr->seqno); + } + pcb->ooseq = next; + } + } +#endif /* TCP_QUEUE_OOSEQ */ + + pcb->rcv_nxt = seqno + tcplen; + + /* Update the receiver's (our) window. */ + LWIP_ASSERT("tcp_receive: tcplen > rcv_wnd\n", pcb->rcv_wnd >= tcplen); + pcb->rcv_wnd -= tcplen; + + tcp_update_rcv_ann_wnd(pcb); + + /* If there is data in the segment, we make preparations to + pass this up to the application. The ->recv_data variable + is used for holding the pbuf that goes to the + application. The code for reassembling out-of-sequence data + chains its data on this pbuf as well. + + If the segment was a FIN, we set the TF_GOT_FIN flag that will + be used to indicate to the application that the remote side has + closed its end of the connection. */ + if (inseg.p->tot_len > 0) { + recv_data = inseg.p; + /* Since this pbuf now is the responsibility of the + application, we delete our reference to it so that we won't + (mistakingly) deallocate it. */ + inseg.p = NULL; + } + if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: received FIN.\n")); + recv_flags |= TF_GOT_FIN; + } + +#if TCP_QUEUE_OOSEQ + /* We now check if we have segments on the ->ooseq queue that + are now in sequence. */ + while (pcb->ooseq != NULL && + pcb->ooseq->tcphdr->seqno == pcb->rcv_nxt) { + + struct tcp_seg *cseg = pcb->ooseq; + seqno = pcb->ooseq->tcphdr->seqno; + + pcb->rcv_nxt += TCP_TCPLEN(cseg); + LWIP_ASSERT("tcp_receive: ooseq tcplen > rcv_wnd\n", + pcb->rcv_wnd >= TCP_TCPLEN(cseg)); + pcb->rcv_wnd -= TCP_TCPLEN(cseg); + + tcp_update_rcv_ann_wnd(pcb); + + if (cseg->p->tot_len > 0) { + /* Chain this pbuf onto the pbuf that we will pass to + the application. */ + /* With window scaling, this can overflow recv_data->tot_len, but + that's not a problem since we explicitly fix that before passing + recv_data to the application. */ + if (recv_data) { + pbuf_cat(recv_data, cseg->p); + } else { + recv_data = cseg->p; + } + cseg->p = NULL; + } + if (TCPH_FLAGS(cseg->tcphdr) & TCP_FIN) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: dequeued FIN.\n")); + recv_flags |= TF_GOT_FIN; + if (pcb->state == ESTABLISHED) { /* force passive close or we can move to active close */ + pcb->state = CLOSE_WAIT; + } + } + + pcb->ooseq = cseg->next; + tcp_seg_free(cseg); + } +#if LWIP_TCP_SACK_OUT + if (pcb->flags & TF_SACK) { + if (pcb->ooseq != NULL) { + /* Some segments may have been removed from ooseq, let's remove all SACKs that + describe anything before the new beginning of that list. */ + tcp_remove_sacks_lt(pcb, pcb->ooseq->tcphdr->seqno); + } else if (LWIP_TCP_SACK_VALID(pcb, 0)) { + /* ooseq has been cleared. Nothing to SACK */ + memset(pcb->rcv_sacks, 0, sizeof(pcb->rcv_sacks)); + } + } +#endif /* LWIP_TCP_SACK_OUT */ +#endif /* TCP_QUEUE_OOSEQ */ + + + /* Acknowledge the segment(s). */ + tcp_ack(pcb); + +#if LWIP_TCP_SACK_OUT + if (LWIP_TCP_SACK_VALID(pcb, 0)) { + /* Normally the ACK for the data received could be piggy-backed on a data packet, + but lwIP currently does not support including SACKs in data packets. So we force + it to respond with an empty ACK packet (only if there is at least one SACK to be sent). + NOTE: tcp_send_empty_ack() on success clears the ACK flags (set by tcp_ack()) */ + tcp_send_empty_ack(pcb); + } +#endif /* LWIP_TCP_SACK_OUT */ + +#if LWIP_IPV6 && LWIP_ND6_TCP_REACHABILITY_HINTS + if (ip_current_is_v6()) { + /* Inform neighbor reachability of forward progress. */ + nd6_reachability_hint(ip6_current_src_addr()); + } +#endif /* LWIP_IPV6 && LWIP_ND6_TCP_REACHABILITY_HINTS*/ + + } else { + /* We get here if the incoming segment is out-of-sequence. */ + +#if TCP_QUEUE_OOSEQ + /* We queue the segment on the ->ooseq queue. */ + if (pcb->ooseq == NULL) { + pcb->ooseq = tcp_seg_copy(&inseg); +#if LWIP_TCP_SACK_OUT + if (pcb->flags & TF_SACK) { + /* All the SACKs should be invalid, so we can simply store the most recent one: */ + pcb->rcv_sacks[0].left = seqno; + pcb->rcv_sacks[0].right = seqno + inseg.len; + } +#endif /* LWIP_TCP_SACK_OUT */ + } else { + /* If the queue is not empty, we walk through the queue and + try to find a place where the sequence number of the + incoming segment is between the sequence numbers of the + previous and the next segment on the ->ooseq queue. That is + the place where we put the incoming segment. If needed, we + trim the second edges of the previous and the incoming + segment so that it will fit into the sequence. + + If the incoming segment has the same sequence number as a + segment on the ->ooseq queue, we discard the segment that + contains less data. */ + +#if LWIP_TCP_SACK_OUT + /* This is the left edge of the lowest possible SACK range. + It may start before the newly received segment (possibly adjusted below). */ + u32_t sackbeg = TCP_SEQ_LT(seqno, pcb->ooseq->tcphdr->seqno) ? seqno : pcb->ooseq->tcphdr->seqno; +#endif /* LWIP_TCP_SACK_OUT */ + struct tcp_seg *next, *prev = NULL; + for (next = pcb->ooseq; next != NULL; next = next->next) { + if (seqno == next->tcphdr->seqno) { + /* The sequence number of the incoming segment is the + same as the sequence number of the segment on + ->ooseq. We check the lengths to see which one to + discard. */ + if (inseg.len > next->len) { + /* The incoming segment is larger than the old + segment. We replace some segments with the new + one. */ + struct tcp_seg *cseg = tcp_seg_copy(&inseg); + if (cseg != NULL) { + if (prev != NULL) { + prev->next = cseg; + } else { + pcb->ooseq = cseg; + } + tcp_oos_insert_segment(cseg, next); + } + break; + } else { + /* Either the lengths are the same or the incoming + segment was smaller than the old one; in either + case, we ditch the incoming segment. */ + break; + } + } else { + if (prev == NULL) { + if (TCP_SEQ_LT(seqno, next->tcphdr->seqno)) { + /* The sequence number of the incoming segment is lower + than the sequence number of the first segment on the + queue. We put the incoming segment first on the + queue. */ + struct tcp_seg *cseg = tcp_seg_copy(&inseg); + if (cseg != NULL) { + pcb->ooseq = cseg; + tcp_oos_insert_segment(cseg, next); + } + break; + } + } else { + /*if (TCP_SEQ_LT(prev->tcphdr->seqno, seqno) && + TCP_SEQ_LT(seqno, next->tcphdr->seqno)) {*/ + if (TCP_SEQ_BETWEEN(seqno, prev->tcphdr->seqno + 1, next->tcphdr->seqno - 1)) { + /* The sequence number of the incoming segment is in + between the sequence numbers of the previous and + the next segment on ->ooseq. We trim trim the previous + segment, delete next segments that included in received segment + and trim received, if needed. */ + struct tcp_seg *cseg = tcp_seg_copy(&inseg); + if (cseg != NULL) { + if (TCP_SEQ_GT(prev->tcphdr->seqno + prev->len, seqno)) { + /* We need to trim the prev segment. */ + prev->len = (u16_t)(seqno - prev->tcphdr->seqno); + pbuf_realloc(prev->p, prev->len); + } + prev->next = cseg; + tcp_oos_insert_segment(cseg, next); + } + break; + } + } + +#if LWIP_TCP_SACK_OUT + /* The new segment goes after the 'next' one. If there is a "hole" in sequence numbers + between 'prev' and the beginning of 'next', we want to move sackbeg. */ + if (prev != NULL && prev->tcphdr->seqno + prev->len != next->tcphdr->seqno) { + sackbeg = next->tcphdr->seqno; + } +#endif /* LWIP_TCP_SACK_OUT */ + + /* We don't use 'prev' below, so let's set it to current 'next'. + This way even if we break the loop below, 'prev' will be pointing + at the segment right in front of the newly added one. */ + prev = next; + + /* If the "next" segment is the last segment on the + ooseq queue, we add the incoming segment to the end + of the list. */ + if (next->next == NULL && + TCP_SEQ_GT(seqno, next->tcphdr->seqno)) { + if (TCPH_FLAGS(next->tcphdr) & TCP_FIN) { + /* segment "next" already contains all data */ + break; + } + next->next = tcp_seg_copy(&inseg); + if (next->next != NULL) { + if (TCP_SEQ_GT(next->tcphdr->seqno + next->len, seqno)) { + /* We need to trim the last segment. */ + next->len = (u16_t)(seqno - next->tcphdr->seqno); + pbuf_realloc(next->p, next->len); + } + /* check if the remote side overruns our receive window */ + if (TCP_SEQ_GT((u32_t)tcplen + seqno, pcb->rcv_nxt + (u32_t)pcb->rcv_wnd)) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, + ("tcp_receive: other end overran receive window" + "seqno %"U32_F" len %"U16_F" right edge %"U32_F"\n", + seqno, tcplen, pcb->rcv_nxt + pcb->rcv_wnd)); + if (TCPH_FLAGS(next->next->tcphdr) & TCP_FIN) { + /* Must remove the FIN from the header as we're trimming + * that byte of sequence-space from the packet */ + TCPH_FLAGS_SET(next->next->tcphdr, TCPH_FLAGS(next->next->tcphdr) & ~TCP_FIN); + } + /* Adjust length of segment to fit in the window. */ + next->next->len = (u16_t)(pcb->rcv_nxt + pcb->rcv_wnd - seqno); + pbuf_realloc(next->next->p, next->next->len); + tcplen = TCP_TCPLEN(next->next); + LWIP_ASSERT("tcp_receive: segment not trimmed correctly to rcv_wnd\n", + (seqno + tcplen) == (pcb->rcv_nxt + pcb->rcv_wnd)); + } + } + break; + } + } + } + +#if LWIP_TCP_SACK_OUT + if (pcb->flags & TF_SACK) { + if (prev == NULL) { + /* The new segment is at the beginning. sackbeg should already be set properly. + We need to find the right edge. */ + next = pcb->ooseq; + } else if (prev->next != NULL) { + /* The new segment was added after 'prev'. If there is a "hole" between 'prev' and 'prev->next', + we need to move sackbeg. After that we should find the right edge. */ + next = prev->next; + if (prev->tcphdr->seqno + prev->len != next->tcphdr->seqno) { + sackbeg = next->tcphdr->seqno; + } + } else { + next = NULL; + } + if (next != NULL) { + u32_t sackend = next->tcphdr->seqno; + for ( ; (next != NULL) && (sackend == next->tcphdr->seqno); next = next->next) { + sackend += next->len; + } + tcp_add_sack(pcb, sackbeg, sackend); + } + } +#endif /* LWIP_TCP_SACK_OUT */ + } +#if defined(TCP_OOSEQ_BYTES_LIMIT) || defined(TCP_OOSEQ_PBUFS_LIMIT) + { + /* Check that the data on ooseq doesn't exceed one of the limits + and throw away everything above that limit. */ +#ifdef TCP_OOSEQ_BYTES_LIMIT + const u32_t ooseq_max_blen = TCP_OOSEQ_BYTES_LIMIT(pcb); + u32_t ooseq_blen = 0; +#endif +#ifdef TCP_OOSEQ_PBUFS_LIMIT + const u16_t ooseq_max_qlen = TCP_OOSEQ_PBUFS_LIMIT(pcb); + u16_t ooseq_qlen = 0; +#endif + struct tcp_seg *next, *prev = NULL; + for (next = pcb->ooseq; next != NULL; prev = next, next = next->next) { + struct pbuf *p = next->p; + int stop_here = 0; +#ifdef TCP_OOSEQ_BYTES_LIMIT + ooseq_blen += p->tot_len; + if (ooseq_blen > ooseq_max_blen) { + stop_here = 1; + } +#endif +#ifdef TCP_OOSEQ_PBUFS_LIMIT + ooseq_qlen += pbuf_clen(p); + if (ooseq_qlen > ooseq_max_qlen) { + stop_here = 1; + } +#endif + if (stop_here) { +#if LWIP_TCP_SACK_OUT + if (pcb->flags & TF_SACK) { + /* Let's remove all SACKs from next's seqno up. */ + tcp_remove_sacks_gt(pcb, next->tcphdr->seqno); + } +#endif /* LWIP_TCP_SACK_OUT */ + /* too much ooseq data, dump this and everything after it */ + tcp_segs_free(next); + if (prev == NULL) { + /* first ooseq segment is too much, dump the whole queue */ + pcb->ooseq = NULL; + } else { + /* just dump 'next' and everything after it */ + prev->next = NULL; + } + break; + } + } + } +#endif /* TCP_OOSEQ_BYTES_LIMIT || TCP_OOSEQ_PBUFS_LIMIT */ +#endif /* TCP_QUEUE_OOSEQ */ + + /* We send the ACK packet after we've (potentially) dealt with SACKs, + so they can be included in the acknowledgment. */ + tcp_send_empty_ack(pcb); + } + } else { + /* The incoming segment is not within the window. */ + tcp_send_empty_ack(pcb); + } + } else { + /* Segments with length 0 is taken care of here. Segments that + fall out of the window are ACKed. */ + if (!TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt + pcb->rcv_wnd - 1)) { + tcp_ack_now(pcb); + } + } +} + +static u8_t +tcp_get_next_optbyte(void) +{ + u16_t optidx = tcp_optidx++; + if ((tcphdr_opt2 == NULL) || (optidx < tcphdr_opt1len)) { + u8_t *opts = (u8_t *)tcphdr + TCP_HLEN; + return opts[optidx]; + } else { + u8_t idx = (u8_t)(optidx - tcphdr_opt1len); + return tcphdr_opt2[idx]; + } +} + +/** + * Parses the options contained in the incoming segment. + * + * Called from tcp_listen_input() and tcp_process(). + * Currently, only the MSS option is supported! + * + * @param pcb the tcp_pcb for which a segment arrived + */ +static void +tcp_parseopt(struct tcp_pcb *pcb) +{ + u8_t data; + u16_t mss; +#if LWIP_TCP_TIMESTAMPS + u32_t tsval; +#endif + + LWIP_ASSERT("tcp_parseopt: invalid pcb", pcb != NULL); + + /* Parse the TCP MSS option, if present. */ + if (tcphdr_optlen != 0) { + for (tcp_optidx = 0; tcp_optidx < tcphdr_optlen; ) { + u8_t opt = tcp_get_next_optbyte(); + switch (opt) { + case LWIP_TCP_OPT_EOL: + /* End of options. */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: EOL\n")); + return; + case LWIP_TCP_OPT_NOP: + /* NOP option. */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: NOP\n")); + break; + case LWIP_TCP_OPT_MSS: + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: MSS\n")); + if (tcp_get_next_optbyte() != LWIP_TCP_OPT_LEN_MSS || (tcp_optidx - 2 + LWIP_TCP_OPT_LEN_MSS) > tcphdr_optlen) { + /* Bad length */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); + return; + } + /* An MSS option with the right option length. */ + mss = (u16_t)(tcp_get_next_optbyte() << 8); + mss |= tcp_get_next_optbyte(); + /* Limit the mss to the configured TCP_MSS and prevent division by zero */ + pcb->mss = ((mss > TCP_MSS) || (mss == 0)) ? TCP_MSS : mss; + break; +#if LWIP_WND_SCALE + case LWIP_TCP_OPT_WS: + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: WND_SCALE\n")); + if (tcp_get_next_optbyte() != LWIP_TCP_OPT_LEN_WS || (tcp_optidx - 2 + LWIP_TCP_OPT_LEN_WS) > tcphdr_optlen) { + /* Bad length */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); + return; + } + /* An WND_SCALE option with the right option length. */ + data = tcp_get_next_optbyte(); + /* If syn was received with wnd scale option, + activate wnd scale opt, but only if this is not a retransmission */ + if ((flags & TCP_SYN) && !(pcb->flags & TF_WND_SCALE)) { + pcb->snd_scale = data; + if (pcb->snd_scale > 14U) { + pcb->snd_scale = 14U; + } + pcb->rcv_scale = TCP_RCV_SCALE; + tcp_set_flags(pcb, TF_WND_SCALE); + /* window scaling is enabled, we can use the full receive window */ + LWIP_ASSERT("window not at default value", pcb->rcv_wnd == TCPWND_MIN16(TCP_WND)); + LWIP_ASSERT("window not at default value", pcb->rcv_ann_wnd == TCPWND_MIN16(TCP_WND)); + pcb->rcv_wnd = pcb->rcv_ann_wnd = TCP_WND; + } + break; +#endif /* LWIP_WND_SCALE */ +#if LWIP_TCP_TIMESTAMPS + case LWIP_TCP_OPT_TS: + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: TS\n")); + if (tcp_get_next_optbyte() != LWIP_TCP_OPT_LEN_TS || (tcp_optidx - 2 + LWIP_TCP_OPT_LEN_TS) > tcphdr_optlen) { + /* Bad length */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); + return; + } + /* TCP timestamp option with valid length */ + tsval = tcp_get_next_optbyte(); + tsval |= (tcp_get_next_optbyte() << 8); + tsval |= (tcp_get_next_optbyte() << 16); + tsval |= (tcp_get_next_optbyte() << 24); + if (flags & TCP_SYN) { + pcb->ts_recent = lwip_ntohl(tsval); + /* Enable sending timestamps in every segment now that we know + the remote host supports it. */ + tcp_set_flags(pcb, TF_TIMESTAMP); + } else if (TCP_SEQ_BETWEEN(pcb->ts_lastacksent, seqno, seqno + tcplen)) { + pcb->ts_recent = lwip_ntohl(tsval); + } + /* Advance to next option (6 bytes already read) */ + tcp_optidx += LWIP_TCP_OPT_LEN_TS - 6; + break; +#endif /* LWIP_TCP_TIMESTAMPS */ +#if LWIP_TCP_SACK_OUT + case LWIP_TCP_OPT_SACK_PERM: + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: SACK_PERM\n")); + if (tcp_get_next_optbyte() != LWIP_TCP_OPT_LEN_SACK_PERM || (tcp_optidx - 2 + LWIP_TCP_OPT_LEN_SACK_PERM) > tcphdr_optlen) { + /* Bad length */ + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); + return; + } + /* TCP SACK_PERM option with valid length */ + if (flags & TCP_SYN) { + /* We only set it if we receive it in a SYN (or SYN+ACK) packet */ + tcp_set_flags(pcb, TF_SACK); + } + break; +#endif /* LWIP_TCP_SACK_OUT */ + default: + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: other\n")); + data = tcp_get_next_optbyte(); + if (data < 2) { + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); + /* If the length field is zero, the options are malformed + and we don't process them further. */ + return; + } + /* All other options have a length field, so that we easily + can skip past them. */ + tcp_optidx += data - 2; + } + } + } +} + +void +tcp_trigger_input_pcb_close(void) +{ + recv_flags |= TF_CLOSED; +} + +#if LWIP_TCP_SACK_OUT +/** + * Called by tcp_receive() to add new SACK entry. + * + * The new SACK entry will be placed at the beginning of rcv_sacks[], as the newest one. + * Existing SACK entries will be "pushed back", to preserve their order. + * This is the behavior described in RFC 2018, section 4. + * + * @param pcb the tcp_pcb for which a segment arrived + * @param left the left side of the SACK (the first sequence number) + * @param right the right side of the SACK (the first sequence number past this SACK) + */ +static void +tcp_add_sack(struct tcp_pcb *pcb, u32_t left, u32_t right) +{ + u8_t i; + u8_t unused_idx; + + if ((pcb->flags & TF_SACK) == 0 || !TCP_SEQ_LT(left, right)) { + return; + } + + /* First, let's remove all SACKs that are no longer needed (because they overlap with the newest one), + while moving all other SACKs forward. + We run this loop for all entries, until we find the first invalid one. + There is no point checking after that. */ + for (i = unused_idx = 0; (i < LWIP_TCP_MAX_SACK_NUM) && LWIP_TCP_SACK_VALID(pcb, i); ++i) { + /* We only want to use SACK at [i] if it doesn't overlap with left:right range. + It does not overlap if its right side is before the newly added SACK, + or if its left side is after the newly added SACK. + NOTE: The equality should not really happen, but it doesn't hurt. */ + if (TCP_SEQ_LEQ(pcb->rcv_sacks[i].right, left) || TCP_SEQ_LEQ(right, pcb->rcv_sacks[i].left)) { + if (unused_idx != i) { + /* We don't need to copy if it's already in the right spot */ + pcb->rcv_sacks[unused_idx] = pcb->rcv_sacks[i]; + } + ++unused_idx; + } + } + + /* Now 'unused_idx' is the index of the first invalid SACK entry, + anywhere between 0 (no valid entries) and LWIP_TCP_MAX_SACK_NUM (all entries are valid). + We want to clear this and all following SACKs. + However, we will be adding another one in the front (and shifting everything else back). + So let's just iterate from the back, and set each entry to the one to the left if it's valid, + or to 0 if it is not. */ + for (i = LWIP_TCP_MAX_SACK_NUM - 1; i > 0; --i) { + /* [i] is the index we are setting, and the value should be at index [i-1], + or 0 if that index is unused (>= unused_idx). */ + if (i - 1 >= unused_idx) { + /* [i-1] is unused. Let's clear [i]. */ + pcb->rcv_sacks[i].left = pcb->rcv_sacks[i].right = 0; + } else { + pcb->rcv_sacks[i] = pcb->rcv_sacks[i - 1]; + } + } + + /* And now we can store the newest SACK */ + pcb->rcv_sacks[0].left = left; + pcb->rcv_sacks[0].right = right; +} + +/** + * Called to remove a range of SACKs. + * + * SACK entries will be removed or adjusted to not acknowledge any sequence + * numbers that are less than 'seq' passed. It not only invalidates entries, + * but also moves all entries that are still valid to the beginning. + * + * @param pcb the tcp_pcb to modify + * @param seq the lowest sequence number to keep in SACK entries + */ +static void +tcp_remove_sacks_lt(struct tcp_pcb *pcb, u32_t seq) +{ + u8_t i; + u8_t unused_idx; + + /* We run this loop for all entries, until we find the first invalid one. + There is no point checking after that. */ + for (i = unused_idx = 0; (i < LWIP_TCP_MAX_SACK_NUM) && LWIP_TCP_SACK_VALID(pcb, i); ++i) { + /* We only want to use SACK at index [i] if its right side is > 'seq'. */ + if (TCP_SEQ_GT(pcb->rcv_sacks[i].right, seq)) { + if (unused_idx != i) { + /* We only copy it if it's not in the right spot already. */ + pcb->rcv_sacks[unused_idx] = pcb->rcv_sacks[i]; + } + /* NOTE: It is possible that its left side is < 'seq', in which case we should adjust it. */ + if (TCP_SEQ_LT(pcb->rcv_sacks[unused_idx].left, seq)) { + pcb->rcv_sacks[unused_idx].left = seq; + } + ++unused_idx; + } + } + + /* We also need to invalidate everything from 'unused_idx' till the end */ + for (i = unused_idx; i < LWIP_TCP_MAX_SACK_NUM; ++i) { + pcb->rcv_sacks[i].left = pcb->rcv_sacks[i].right = 0; + } +} + +#if defined(TCP_OOSEQ_BYTES_LIMIT) || defined(TCP_OOSEQ_PBUFS_LIMIT) +/** + * Called to remove a range of SACKs. + * + * SACK entries will be removed or adjusted to not acknowledge any sequence + * numbers that are greater than (or equal to) 'seq' passed. It not only invalidates entries, + * but also moves all entries that are still valid to the beginning. + * + * @param pcb the tcp_pcb to modify + * @param seq the highest sequence number to keep in SACK entries + */ +static void +tcp_remove_sacks_gt(struct tcp_pcb *pcb, u32_t seq) +{ + u8_t i; + u8_t unused_idx; + + /* We run this loop for all entries, until we find the first invalid one. + There is no point checking after that. */ + for (i = unused_idx = 0; (i < LWIP_TCP_MAX_SACK_NUM) && LWIP_TCP_SACK_VALID(pcb, i); ++i) { + /* We only want to use SACK at index [i] if its left side is < 'seq'. */ + if (TCP_SEQ_LT(pcb->rcv_sacks[i].left, seq)) { + if (unused_idx != i) { + /* We only copy it if it's not in the right spot already. */ + pcb->rcv_sacks[unused_idx] = pcb->rcv_sacks[i]; + } + /* NOTE: It is possible that its right side is > 'seq', in which case we should adjust it. */ + if (TCP_SEQ_GT(pcb->rcv_sacks[unused_idx].right, seq)) { + pcb->rcv_sacks[unused_idx].right = seq; + } + ++unused_idx; + } + } + + /* We also need to invalidate everything from 'unused_idx' till the end */ + for (i = unused_idx; i < LWIP_TCP_MAX_SACK_NUM; ++i) { + pcb->rcv_sacks[i].left = pcb->rcv_sacks[i].right = 0; + } +} +#endif /* TCP_OOSEQ_BYTES_LIMIT || TCP_OOSEQ_PBUFS_LIMIT */ + +#endif /* LWIP_TCP_SACK_OUT */ + +#endif /* LWIP_TCP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_out.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_out.c new file mode 100644 index 000000000..375e18d77 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/tcp_out.c @@ -0,0 +1,2190 @@ +/** + * @file + * Transmission Control Protocol, outgoing traffic + * + * The output functions of TCP. + * + * There are two distinct ways for TCP segments to get sent: + * - queued data: these are segments transferring data or segments containing + * SYN or FIN (which both count as one sequence number). They are created as + * struct @ref pbuf together with a struct tcp_seg and enqueue to the + * unsent list of the pcb. They are sent by tcp_output: + * - @ref tcp_write : creates data segments + * - @ref tcp_split_unsent_seg : splits a data segment + * - @ref tcp_enqueue_flags : creates SYN-only or FIN-only segments + * - @ref tcp_output / tcp_output_segment : finalize the tcp header + * (e.g. sequence numbers, options, checksum) and output to IP + * - the various tcp_rexmit functions shuffle around segments between the + * unsent an unacked lists to retransmit them + * - tcp_create_segment and tcp_pbuf_prealloc allocate pbuf and + * segment for these functions + * - direct send: these segments don't contain data but control the connection + * behaviour. They are created as pbuf only and sent directly without + * enqueueing them: + * - @ref tcp_send_empty_ack sends an ACK-only segment + * - @ref tcp_rst sends a RST segment + * - @ref tcp_keepalive sends a keepalive segment + * - @ref tcp_zero_window_probe sends a window probe segment + * - tcp_output_alloc_header allocates a header-only pbuf for these functions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/priv/tcp_priv.h" +#include "lwip/def.h" +#include "lwip/mem.h" +#include "lwip/memp.h" +#include "lwip/ip_addr.h" +#include "lwip/netif.h" +#include "lwip/inet_chksum.h" +#include "lwip/stats.h" +#include "lwip/ip6.h" +#include "lwip/ip6_addr.h" +#if LWIP_TCP_TIMESTAMPS +#include "lwip/sys.h" +#endif + +#include + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +/* Allow to add custom TCP header options by defining this hook */ +#ifdef LWIP_HOOK_TCP_OUT_TCPOPT_LENGTH +#define LWIP_TCP_OPT_LENGTH_SEGMENT(flags, pcb) LWIP_HOOK_TCP_OUT_TCPOPT_LENGTH(pcb, LWIP_TCP_OPT_LENGTH(flags)) +#else +#define LWIP_TCP_OPT_LENGTH_SEGMENT(flags, pcb) LWIP_TCP_OPT_LENGTH(flags) +#endif + +/* Define some copy-macros for checksum-on-copy so that the code looks + nicer by preventing too many ifdef's. */ +#if TCP_CHECKSUM_ON_COPY +#define TCP_DATA_COPY(dst, src, len, seg) do { \ + tcp_seg_add_chksum(LWIP_CHKSUM_COPY(dst, src, len), \ + len, &seg->chksum, &seg->chksum_swapped); \ + seg->flags |= TF_SEG_DATA_CHECKSUMMED; } while(0) +#define TCP_DATA_COPY2(dst, src, len, chksum, chksum_swapped) \ + tcp_seg_add_chksum(LWIP_CHKSUM_COPY(dst, src, len), len, chksum, chksum_swapped); +#else /* TCP_CHECKSUM_ON_COPY*/ +#define TCP_DATA_COPY(dst, src, len, seg) MEMCPY(dst, src, len) +#define TCP_DATA_COPY2(dst, src, len, chksum, chksum_swapped) MEMCPY(dst, src, len) +#endif /* TCP_CHECKSUM_ON_COPY*/ + +/** Define this to 1 for an extra check that the output checksum is valid + * (usefule when the checksum is generated by the application, not the stack) */ +#ifndef TCP_CHECKSUM_ON_COPY_SANITY_CHECK +#define TCP_CHECKSUM_ON_COPY_SANITY_CHECK 0 +#endif +/* Allow to override the failure of sanity check from warning to e.g. hard failure */ +#if TCP_CHECKSUM_ON_COPY_SANITY_CHECK +#ifndef TCP_CHECKSUM_ON_COPY_SANITY_CHECK_FAIL +#define TCP_CHECKSUM_ON_COPY_SANITY_CHECK_FAIL(msg) LWIP_DEBUGF(TCP_DEBUG | LWIP_DBG_LEVEL_WARNING, msg) +#endif +#endif + +#if TCP_OVERSIZE +/** The size of segment pbufs created when TCP_OVERSIZE is enabled */ +#ifndef TCP_OVERSIZE_CALC_LENGTH +#define TCP_OVERSIZE_CALC_LENGTH(length) ((length) + TCP_OVERSIZE) +#endif +#endif + +/* Forward declarations.*/ +static err_t tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb, struct netif *netif); + +/* tcp_route: common code that returns a fixed bound netif or calls ip_route */ +static struct netif * +tcp_route(const struct tcp_pcb *pcb, const ip_addr_t *src, const ip_addr_t *dst) +{ + LWIP_UNUSED_ARG(src); /* in case IPv4-only and source-based routing is disabled */ + + if ((pcb != NULL) && (pcb->netif_idx != NETIF_NO_INDEX)) { + return netif_get_by_index(pcb->netif_idx); + } else { + return ip_route(src, dst); + } +} + +/** + * Create a TCP segment with prefilled header. + * + * Called by @ref tcp_write, @ref tcp_enqueue_flags and @ref tcp_split_unsent_seg + * + * @param pcb Protocol control block for the TCP connection. + * @param p pbuf that is used to hold the TCP header. + * @param hdrflags TCP flags for header. + * @param seqno TCP sequence number of this packet + * @param optflags options to include in TCP header + * @return a new tcp_seg pointing to p, or NULL. + * The TCP header is filled in except ackno and wnd. + * p is freed on failure. + */ +static struct tcp_seg * +tcp_create_segment(const struct tcp_pcb *pcb, struct pbuf *p, u8_t hdrflags, u32_t seqno, u8_t optflags) +{ + struct tcp_seg *seg; + u8_t optlen; + + LWIP_ASSERT("tcp_create_segment: invalid pcb", pcb != NULL); + LWIP_ASSERT("tcp_create_segment: invalid pbuf", p != NULL); + + optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(optflags, pcb); + + if ((seg = (struct tcp_seg *)memp_malloc(MEMP_TCP_SEG)) == NULL) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("tcp_create_segment: no memory.\n")); + pbuf_free(p); + return NULL; + } + seg->flags = optflags; + seg->next = NULL; + seg->p = p; + LWIP_ASSERT("p->tot_len >= optlen", p->tot_len >= optlen); + seg->len = p->tot_len - optlen; +#if TCP_OVERSIZE_DBGCHECK + seg->oversize_left = 0; +#endif /* TCP_OVERSIZE_DBGCHECK */ +#if TCP_CHECKSUM_ON_COPY + seg->chksum = 0; + seg->chksum_swapped = 0; + /* check optflags */ + LWIP_ASSERT("invalid optflags passed: TF_SEG_DATA_CHECKSUMMED", + (optflags & TF_SEG_DATA_CHECKSUMMED) == 0); +#endif /* TCP_CHECKSUM_ON_COPY */ + + /* build TCP header */ + if (pbuf_add_header(p, TCP_HLEN)) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("tcp_create_segment: no room for TCP header in pbuf.\n")); + TCP_STATS_INC(tcp.err); + tcp_seg_free(seg); + return NULL; + } + seg->tcphdr = (struct tcp_hdr *)seg->p->payload; + seg->tcphdr->src = lwip_htons(pcb->local_port); + seg->tcphdr->dest = lwip_htons(pcb->remote_port); + seg->tcphdr->seqno = lwip_htonl(seqno); + /* ackno is set in tcp_output */ + TCPH_HDRLEN_FLAGS_SET(seg->tcphdr, (5 + optlen / 4), hdrflags); + /* wnd and chksum are set in tcp_output */ + seg->tcphdr->urgp = 0; + return seg; +} + +/** + * Allocate a PBUF_RAM pbuf, perhaps with extra space at the end. + * + * This function is like pbuf_alloc(layer, length, PBUF_RAM) except + * there may be extra bytes available at the end. + * + * Called by @ref tcp_write + * + * @param layer flag to define header size. + * @param length size of the pbuf's payload. + * @param max_length maximum usable size of payload+oversize. + * @param oversize pointer to a u16_t that will receive the number of usable tail bytes. + * @param pcb The TCP connection that will enqueue the pbuf. + * @param apiflags API flags given to tcp_write. + * @param first_seg true when this pbuf will be used in the first enqueued segment. + */ +#if TCP_OVERSIZE +static struct pbuf * +tcp_pbuf_prealloc(pbuf_layer layer, u16_t length, u16_t max_length, + u16_t *oversize, const struct tcp_pcb *pcb, u8_t apiflags, + u8_t first_seg) +{ + struct pbuf *p; + u16_t alloc = length; + + LWIP_ASSERT("tcp_pbuf_prealloc: invalid oversize", oversize != NULL); + LWIP_ASSERT("tcp_pbuf_prealloc: invalid pcb", pcb != NULL); + +#if LWIP_NETIF_TX_SINGLE_PBUF + LWIP_UNUSED_ARG(max_length); + LWIP_UNUSED_ARG(pcb); + LWIP_UNUSED_ARG(apiflags); + LWIP_UNUSED_ARG(first_seg); + alloc = max_length; +#else /* LWIP_NETIF_TX_SINGLE_PBUF */ + if (length < max_length) { + /* Should we allocate an oversized pbuf, or just the minimum + * length required? If tcp_write is going to be called again + * before this segment is transmitted, we want the oversized + * buffer. If the segment will be transmitted immediately, we can + * save memory by allocating only length. We use a simple + * heuristic based on the following information: + * + * Did the user set TCP_WRITE_FLAG_MORE? + * + * Will the Nagle algorithm defer transmission of this segment? + */ + if ((apiflags & TCP_WRITE_FLAG_MORE) || + (!(pcb->flags & TF_NODELAY) && + (!first_seg || + pcb->unsent != NULL || + pcb->unacked != NULL))) { + alloc = LWIP_MIN(max_length, LWIP_MEM_ALIGN_SIZE(TCP_OVERSIZE_CALC_LENGTH(length))); + } + } +#endif /* LWIP_NETIF_TX_SINGLE_PBUF */ + p = pbuf_alloc(layer, alloc, PBUF_RAM); + if (p == NULL) { + return NULL; + } + LWIP_ASSERT("need unchained pbuf", p->next == NULL); + *oversize = p->len - length; + /* trim p->len to the currently used size */ + p->len = p->tot_len = length; + return p; +} +#else /* TCP_OVERSIZE */ +#define tcp_pbuf_prealloc(layer, length, mx, os, pcb, api, fst) pbuf_alloc((layer), (length), PBUF_RAM) +#endif /* TCP_OVERSIZE */ + +#if TCP_CHECKSUM_ON_COPY +/** Add a checksum of newly added data to the segment. + * + * Called by tcp_write and tcp_split_unsent_seg. + */ +static void +tcp_seg_add_chksum(u16_t chksum, u16_t len, u16_t *seg_chksum, + u8_t *seg_chksum_swapped) +{ + u32_t helper; + /* add chksum to old chksum and fold to u16_t */ + helper = chksum + *seg_chksum; + chksum = FOLD_U32T(helper); + if ((len & 1) != 0) { + *seg_chksum_swapped = 1 - *seg_chksum_swapped; + chksum = SWAP_BYTES_IN_WORD(chksum); + } + *seg_chksum = chksum; +} +#endif /* TCP_CHECKSUM_ON_COPY */ + +/** Checks if tcp_write is allowed or not (checks state, snd_buf and snd_queuelen). + * + * @param pcb the tcp pcb to check for + * @param len length of data to send (checked agains snd_buf) + * @return ERR_OK if tcp_write is allowed to proceed, another err_t otherwise + */ +static err_t +tcp_write_checks(struct tcp_pcb *pcb, u16_t len) +{ + LWIP_ASSERT("tcp_write_checks: invalid pcb", pcb != NULL); + + /* connection is in invalid state for data transmission? */ + if ((pcb->state != ESTABLISHED) && + (pcb->state != CLOSE_WAIT) && + (pcb->state != SYN_SENT) && + (pcb->state != SYN_RCVD)) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_STATE | LWIP_DBG_LEVEL_SEVERE, ("tcp_write() called in invalid state\n")); + return ERR_CONN; + } else if (len == 0) { + return ERR_OK; + } + + /* fail on too much data */ + if (len > pcb->snd_buf) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("tcp_write: too much data (len=%"U16_F" > snd_buf=%"TCPWNDSIZE_F")\n", + len, pcb->snd_buf)); + tcp_set_flags(pcb, TF_NAGLEMEMERR); + return ERR_MEM; + } + + LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_write: queuelen: %"TCPWNDSIZE_F"\n", (tcpwnd_size_t)pcb->snd_queuelen)); + + /* If total number of pbufs on the unsent/unacked queues exceeds the + * configured maximum, return an error */ + /* check for configured max queuelen and possible overflow */ + if (pcb->snd_queuelen >= LWIP_MIN(TCP_SND_QUEUELEN, (TCP_SNDQUEUELEN_OVERFLOW + 1))) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("tcp_write: too long queue %"U16_F" (max %"U16_F")\n", + pcb->snd_queuelen, (u16_t)TCP_SND_QUEUELEN)); + TCP_STATS_INC(tcp.memerr); + tcp_set_flags(pcb, TF_NAGLEMEMERR); + return ERR_MEM; + } + if (pcb->snd_queuelen != 0) { + LWIP_ASSERT("tcp_write: pbufs on queue => at least one queue non-empty", + pcb->unacked != NULL || pcb->unsent != NULL); + } else { + LWIP_ASSERT("tcp_write: no pbufs on queue => both queues empty", + pcb->unacked == NULL && pcb->unsent == NULL); + } + return ERR_OK; +} + +/** + * @ingroup tcp_raw + * Write data for sending (but does not send it immediately). + * + * It waits in the expectation of more data being sent soon (as + * it can send them more efficiently by combining them together). + * To prompt the system to send data now, call tcp_output() after + * calling tcp_write(). + * + * This function enqueues the data pointed to by the argument dataptr. The length of + * the data is passed as the len parameter. The apiflags can be one or more of: + * - TCP_WRITE_FLAG_COPY: indicates whether the new memory should be allocated + * for the data to be copied into. If this flag is not given, no new memory + * should be allocated and the data should only be referenced by pointer. This + * also means that the memory behind dataptr must not change until the data is + * ACKed by the remote host + * - TCP_WRITE_FLAG_MORE: indicates that more data follows. If this is omitted, + * the PSH flag is set in the last segment created by this call to tcp_write. + * If this flag is given, the PSH flag is not set. + * + * The tcp_write() function will fail and return ERR_MEM if the length + * of the data exceeds the current send buffer size or if the length of + * the queue of outgoing segment is larger than the upper limit defined + * in lwipopts.h. The number of bytes available in the output queue can + * be retrieved with the tcp_sndbuf() function. + * + * The proper way to use this function is to call the function with at + * most tcp_sndbuf() bytes of data. If the function returns ERR_MEM, + * the application should wait until some of the currently enqueued + * data has been successfully received by the other host and try again. + * + * @param pcb Protocol control block for the TCP connection to enqueue data for. + * @param arg Pointer to the data to be enqueued for sending. + * @param len Data length in bytes + * @param apiflags combination of following flags : + * - TCP_WRITE_FLAG_COPY (0x01) data will be copied into memory belonging to the stack + * - TCP_WRITE_FLAG_MORE (0x02) for TCP connection, PSH flag will not be set on last segment sent, + * @return ERR_OK if enqueued, another err_t on error + */ +err_t +tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags) +{ + struct pbuf *concat_p = NULL; + struct tcp_seg *last_unsent = NULL, *seg = NULL, *prev_seg = NULL, *queue = NULL; + u16_t pos = 0; /* position in 'arg' data */ + u16_t queuelen; + u8_t optlen; + u8_t optflags = 0; +#if TCP_OVERSIZE + u16_t oversize = 0; + u16_t oversize_used = 0; +#if TCP_OVERSIZE_DBGCHECK + u16_t oversize_add = 0; +#endif /* TCP_OVERSIZE_DBGCHECK*/ +#endif /* TCP_OVERSIZE */ + u16_t extendlen = 0; +#if TCP_CHECKSUM_ON_COPY + u16_t concat_chksum = 0; + u8_t concat_chksum_swapped = 0; + u16_t concat_chksummed = 0; +#endif /* TCP_CHECKSUM_ON_COPY */ + err_t err; + u16_t mss_local; + + LWIP_ERROR("tcp_write: invalid pcb", pcb != NULL, return ERR_ARG); + + /* don't allocate segments bigger than half the maximum window we ever received */ + mss_local = LWIP_MIN(pcb->mss, TCPWND_MIN16(pcb->snd_wnd_max / 2)); + mss_local = mss_local ? mss_local : pcb->mss; + + LWIP_ASSERT_CORE_LOCKED(); + +#if LWIP_NETIF_TX_SINGLE_PBUF + /* Always copy to try to create single pbufs for TX */ + apiflags |= TCP_WRITE_FLAG_COPY; +#endif /* LWIP_NETIF_TX_SINGLE_PBUF */ + + LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_write(pcb=%p, data=%p, len=%"U16_F", apiflags=%"U16_F")\n", + (void *)pcb, arg, len, (u16_t)apiflags)); + LWIP_ERROR("tcp_write: arg == NULL (programmer violates API)", + arg != NULL, return ERR_ARG;); + + err = tcp_write_checks(pcb, len); + if (err != ERR_OK) { + return err; + } + queuelen = pcb->snd_queuelen; + +#if LWIP_TCP_TIMESTAMPS + if ((pcb->flags & TF_TIMESTAMP)) { + /* Make sure the timestamp option is only included in data segments if we + agreed about it with the remote host. */ + optflags = TF_SEG_OPTS_TS; + optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(TF_SEG_OPTS_TS, pcb); + /* ensure that segments can hold at least one data byte... */ + mss_local = LWIP_MAX(mss_local, LWIP_TCP_OPT_LEN_TS + 1); + } else +#endif /* LWIP_TCP_TIMESTAMPS */ + { + optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(0, pcb); + } + + + /* + * TCP segmentation is done in three phases with increasing complexity: + * + * 1. Copy data directly into an oversized pbuf. + * 2. Chain a new pbuf to the end of pcb->unsent. + * 3. Create new segments. + * + * We may run out of memory at any point. In that case we must + * return ERR_MEM and not change anything in pcb. Therefore, all + * changes are recorded in local variables and committed at the end + * of the function. Some pcb fields are maintained in local copies: + * + * queuelen = pcb->snd_queuelen + * oversize = pcb->unsent_oversize + * + * These variables are set consistently by the phases: + * + * seg points to the last segment tampered with. + * + * pos records progress as data is segmented. + */ + + /* Find the tail of the unsent queue. */ + if (pcb->unsent != NULL) { + u16_t space; + u16_t unsent_optlen; + + /* @todo: this could be sped up by keeping last_unsent in the pcb */ + for (last_unsent = pcb->unsent; last_unsent->next != NULL; + last_unsent = last_unsent->next); + + /* Usable space at the end of the last unsent segment */ + unsent_optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(last_unsent->flags, pcb); + LWIP_ASSERT("mss_local is too small", mss_local >= last_unsent->len + unsent_optlen); + space = mss_local - (last_unsent->len + unsent_optlen); + + /* + * Phase 1: Copy data directly into an oversized pbuf. + * + * The number of bytes copied is recorded in the oversize_used + * variable. The actual copying is done at the bottom of the + * function. + */ +#if TCP_OVERSIZE +#if TCP_OVERSIZE_DBGCHECK + /* check that pcb->unsent_oversize matches last_unsent->oversize_left */ + LWIP_ASSERT("unsent_oversize mismatch (pcb vs. last_unsent)", + pcb->unsent_oversize == last_unsent->oversize_left); +#endif /* TCP_OVERSIZE_DBGCHECK */ + oversize = pcb->unsent_oversize; + if (oversize > 0) { + LWIP_ASSERT("inconsistent oversize vs. space", oversize <= space); + seg = last_unsent; + oversize_used = LWIP_MIN(space, LWIP_MIN(oversize, len)); + pos += oversize_used; + oversize -= oversize_used; + space -= oversize_used; + } + /* now we are either finished or oversize is zero */ + LWIP_ASSERT("inconsistent oversize vs. len", (oversize == 0) || (pos == len)); +#endif /* TCP_OVERSIZE */ + +#if !LWIP_NETIF_TX_SINGLE_PBUF + /* + * Phase 2: Chain a new pbuf to the end of pcb->unsent. + * + * As an exception when NOT copying the data, if the given data buffer + * directly follows the last unsent data buffer in memory, extend the last + * ROM pbuf reference to the buffer, thus saving a ROM pbuf allocation. + * + * We don't extend segments containing SYN/FIN flags or options + * (len==0). The new pbuf is kept in concat_p and pbuf_cat'ed at + * the end. + * + * This phase is skipped for LWIP_NETIF_TX_SINGLE_PBUF as we could only execute + * it after rexmit puts a segment from unacked to unsent and at this point, + * oversize info is lost. + */ + if ((pos < len) && (space > 0) && (last_unsent->len > 0)) { + u16_t seglen = LWIP_MIN(space, len - pos); + seg = last_unsent; + + /* Create a pbuf with a copy or reference to seglen bytes. We + * can use PBUF_RAW here since the data appears in the middle of + * a segment. A header will never be prepended. */ + if (apiflags & TCP_WRITE_FLAG_COPY) { + /* Data is copied */ + if ((concat_p = tcp_pbuf_prealloc(PBUF_RAW, seglen, space, &oversize, pcb, apiflags, 1)) == NULL) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("tcp_write : could not allocate memory for pbuf copy size %"U16_F"\n", + seglen)); + goto memerr; + } +#if TCP_OVERSIZE_DBGCHECK + oversize_add = oversize; +#endif /* TCP_OVERSIZE_DBGCHECK */ + TCP_DATA_COPY2(concat_p->payload, (const u8_t *)arg + pos, seglen, &concat_chksum, &concat_chksum_swapped); +#if TCP_CHECKSUM_ON_COPY + concat_chksummed += seglen; +#endif /* TCP_CHECKSUM_ON_COPY */ + queuelen += pbuf_clen(concat_p); + } else { + /* Data is not copied */ + /* If the last unsent pbuf is of type PBUF_ROM, try to extend it. */ + struct pbuf *p; + for (p = last_unsent->p; p->next != NULL; p = p->next); + if (((p->type_internal & (PBUF_TYPE_FLAG_STRUCT_DATA_CONTIGUOUS | PBUF_TYPE_FLAG_DATA_VOLATILE)) == 0) && + (const u8_t *)p->payload + p->len == (const u8_t *)arg) { + LWIP_ASSERT("tcp_write: ROM pbufs cannot be oversized", pos == 0); + extendlen = seglen; + } else { + if ((concat_p = pbuf_alloc(PBUF_RAW, seglen, PBUF_ROM)) == NULL) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("tcp_write: could not allocate memory for zero-copy pbuf\n")); + goto memerr; + } + /* reference the non-volatile payload data */ + ((struct pbuf_rom *)concat_p)->payload = (const u8_t *)arg + pos; + queuelen += pbuf_clen(concat_p); + } +#if TCP_CHECKSUM_ON_COPY + /* calculate the checksum of nocopy-data */ + tcp_seg_add_chksum(~inet_chksum((const u8_t *)arg + pos, seglen), seglen, + &concat_chksum, &concat_chksum_swapped); + concat_chksummed += seglen; +#endif /* TCP_CHECKSUM_ON_COPY */ + } + + pos += seglen; + } +#endif /* !LWIP_NETIF_TX_SINGLE_PBUF */ + } else { +#if TCP_OVERSIZE + LWIP_ASSERT("unsent_oversize mismatch (pcb->unsent is NULL)", + pcb->unsent_oversize == 0); +#endif /* TCP_OVERSIZE */ + } + + /* + * Phase 3: Create new segments. + * + * The new segments are chained together in the local 'queue' + * variable, ready to be appended to pcb->unsent. + */ + while (pos < len) { + struct pbuf *p; + u16_t left = len - pos; + u16_t max_len = mss_local - optlen; + u16_t seglen = LWIP_MIN(left, max_len); +#if TCP_CHECKSUM_ON_COPY + u16_t chksum = 0; + u8_t chksum_swapped = 0; +#endif /* TCP_CHECKSUM_ON_COPY */ + + if (apiflags & TCP_WRITE_FLAG_COPY) { + /* If copy is set, memory should be allocated and data copied + * into pbuf */ + if ((p = tcp_pbuf_prealloc(PBUF_TRANSPORT, seglen + optlen, mss_local, &oversize, pcb, apiflags, queue == NULL)) == NULL) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("tcp_write : could not allocate memory for pbuf copy size %"U16_F"\n", seglen)); + goto memerr; + } + LWIP_ASSERT("tcp_write: check that first pbuf can hold the complete seglen", + (p->len >= seglen)); + TCP_DATA_COPY2((char *)p->payload + optlen, (const u8_t *)arg + pos, seglen, &chksum, &chksum_swapped); + } else { + /* Copy is not set: First allocate a pbuf for holding the data. + * Since the referenced data is available at least until it is + * sent out on the link (as it has to be ACKed by the remote + * party) we can safely use PBUF_ROM instead of PBUF_REF here. + */ + struct pbuf *p2; +#if TCP_OVERSIZE + LWIP_ASSERT("oversize == 0", oversize == 0); +#endif /* TCP_OVERSIZE */ + if ((p2 = pbuf_alloc(PBUF_TRANSPORT, seglen, PBUF_ROM)) == NULL) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("tcp_write: could not allocate memory for zero-copy pbuf\n")); + goto memerr; + } +#if TCP_CHECKSUM_ON_COPY + /* calculate the checksum of nocopy-data */ + chksum = ~inet_chksum((const u8_t *)arg + pos, seglen); + if (seglen & 1) { + chksum_swapped = 1; + chksum = SWAP_BYTES_IN_WORD(chksum); + } +#endif /* TCP_CHECKSUM_ON_COPY */ + /* reference the non-volatile payload data */ + ((struct pbuf_rom *)p2)->payload = (const u8_t *)arg + pos; + + /* Second, allocate a pbuf for the headers. */ + if ((p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) { + /* If allocation fails, we have to deallocate the data pbuf as + * well. */ + pbuf_free(p2); + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("tcp_write: could not allocate memory for header pbuf\n")); + goto memerr; + } + /* Concatenate the headers and data pbufs together. */ + pbuf_cat(p/*header*/, p2/*data*/); + } + + queuelen += pbuf_clen(p); + + /* Now that there are more segments queued, we check again if the + * length of the queue exceeds the configured maximum or + * overflows. */ + if (queuelen > LWIP_MIN(TCP_SND_QUEUELEN, TCP_SNDQUEUELEN_OVERFLOW)) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("tcp_write: queue too long %"U16_F" (%d)\n", + queuelen, (int)TCP_SND_QUEUELEN)); + pbuf_free(p); + goto memerr; + } + + if ((seg = tcp_create_segment(pcb, p, 0, pcb->snd_lbb + pos, optflags)) == NULL) { + goto memerr; + } +#if TCP_OVERSIZE_DBGCHECK + seg->oversize_left = oversize; +#endif /* TCP_OVERSIZE_DBGCHECK */ +#if TCP_CHECKSUM_ON_COPY + seg->chksum = chksum; + seg->chksum_swapped = chksum_swapped; + seg->flags |= TF_SEG_DATA_CHECKSUMMED; +#endif /* TCP_CHECKSUM_ON_COPY */ + + /* first segment of to-be-queued data? */ + if (queue == NULL) { + queue = seg; + } else { + /* Attach the segment to the end of the queued segments */ + LWIP_ASSERT("prev_seg != NULL", prev_seg != NULL); + prev_seg->next = seg; + } + /* remember last segment of to-be-queued data for next iteration */ + prev_seg = seg; + + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_TRACE, ("tcp_write: queueing %"U32_F":%"U32_F"\n", + lwip_ntohl(seg->tcphdr->seqno), + lwip_ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg))); + + pos += seglen; + } + + /* + * All three segmentation phases were successful. We can commit the + * transaction. + */ +#if TCP_OVERSIZE_DBGCHECK + if ((last_unsent != NULL) && (oversize_add != 0)) { + last_unsent->oversize_left += oversize_add; + } +#endif /* TCP_OVERSIZE_DBGCHECK */ + + /* + * Phase 1: If data has been added to the preallocated tail of + * last_unsent, we update the length fields of the pbuf chain. + */ +#if TCP_OVERSIZE + if (oversize_used > 0) { + struct pbuf *p; + /* Bump tot_len of whole chain, len of tail */ + for (p = last_unsent->p; p; p = p->next) { + p->tot_len += oversize_used; + if (p->next == NULL) { + TCP_DATA_COPY((char *)p->payload + p->len, arg, oversize_used, last_unsent); + p->len += oversize_used; + } + } + last_unsent->len += oversize_used; +#if TCP_OVERSIZE_DBGCHECK + LWIP_ASSERT("last_unsent->oversize_left >= oversize_used", + last_unsent->oversize_left >= oversize_used); + last_unsent->oversize_left -= oversize_used; +#endif /* TCP_OVERSIZE_DBGCHECK */ + } + pcb->unsent_oversize = oversize; +#endif /* TCP_OVERSIZE */ + + /* + * Phase 2: concat_p can be concatenated onto last_unsent->p, unless we + * determined that the last ROM pbuf can be extended to include the new data. + */ + if (concat_p != NULL) { + LWIP_ASSERT("tcp_write: cannot concatenate when pcb->unsent is empty", + (last_unsent != NULL)); + pbuf_cat(last_unsent->p, concat_p); + last_unsent->len += concat_p->tot_len; + } else if (extendlen > 0) { + struct pbuf *p; + LWIP_ASSERT("tcp_write: extension of reference requires reference", + last_unsent != NULL && last_unsent->p != NULL); + for (p = last_unsent->p; p->next != NULL; p = p->next) { + p->tot_len += extendlen; + } + p->tot_len += extendlen; + p->len += extendlen; + last_unsent->len += extendlen; + } + +#if TCP_CHECKSUM_ON_COPY + if (concat_chksummed) { + LWIP_ASSERT("tcp_write: concat checksum needs concatenated data", + concat_p != NULL || extendlen > 0); + /*if concat checksumm swapped - swap it back */ + if (concat_chksum_swapped) { + concat_chksum = SWAP_BYTES_IN_WORD(concat_chksum); + } + tcp_seg_add_chksum(concat_chksum, concat_chksummed, &last_unsent->chksum, + &last_unsent->chksum_swapped); + last_unsent->flags |= TF_SEG_DATA_CHECKSUMMED; + } +#endif /* TCP_CHECKSUM_ON_COPY */ + + /* + * Phase 3: Append queue to pcb->unsent. Queue may be NULL, but that + * is harmless + */ + if (last_unsent == NULL) { + pcb->unsent = queue; + } else { + last_unsent->next = queue; + } + + /* + * Finally update the pcb state. + */ + pcb->snd_lbb += len; + pcb->snd_buf -= len; + pcb->snd_queuelen = queuelen; + + LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_write: %"S16_F" (after enqueued)\n", + pcb->snd_queuelen)); + if (pcb->snd_queuelen != 0) { + LWIP_ASSERT("tcp_write: valid queue length", + pcb->unacked != NULL || pcb->unsent != NULL); + } + + /* Set the PSH flag in the last segment that we enqueued. */ + if (seg != NULL && seg->tcphdr != NULL && ((apiflags & TCP_WRITE_FLAG_MORE) == 0)) { + TCPH_SET_FLAG(seg->tcphdr, TCP_PSH); + } + + return ERR_OK; +memerr: + tcp_set_flags(pcb, TF_NAGLEMEMERR); + TCP_STATS_INC(tcp.memerr); + + if (concat_p != NULL) { + pbuf_free(concat_p); + } + if (queue != NULL) { + tcp_segs_free(queue); + } + if (pcb->snd_queuelen != 0) { + LWIP_ASSERT("tcp_write: valid queue length", pcb->unacked != NULL || + pcb->unsent != NULL); + } + LWIP_DEBUGF(TCP_QLEN_DEBUG | LWIP_DBG_STATE, ("tcp_write: %"S16_F" (with mem err)\n", pcb->snd_queuelen)); + return ERR_MEM; +} + +/** + * Split segment on the head of the unsent queue. If return is not + * ERR_OK, existing head remains intact + * + * The split is accomplished by creating a new TCP segment and pbuf + * which holds the remainder payload after the split. The original + * pbuf is trimmed to new length. This allows splitting of read-only + * pbufs + * + * @param pcb the tcp_pcb for which to split the unsent head + * @param split the amount of payload to remain in the head + */ +err_t +tcp_split_unsent_seg(struct tcp_pcb *pcb, u16_t split) +{ + struct tcp_seg *seg = NULL, *useg = NULL; + struct pbuf *p = NULL; + u8_t optlen; + u8_t optflags; + u8_t split_flags; + u8_t remainder_flags; + u16_t remainder; + u16_t offset; +#if TCP_CHECKSUM_ON_COPY + u16_t chksum = 0; + u8_t chksum_swapped = 0; + struct pbuf *q; +#endif /* TCP_CHECKSUM_ON_COPY */ + + LWIP_ASSERT("tcp_split_unsent_seg: invalid pcb", pcb != NULL); + + useg = pcb->unsent; + if (useg == NULL) { + return ERR_MEM; + } + + if (split == 0) { + LWIP_ASSERT("Can't split segment into length 0", 0); + return ERR_VAL; + } + + if (useg->len <= split) { + return ERR_OK; + } + + LWIP_ASSERT("split <= mss", split <= pcb->mss); + LWIP_ASSERT("useg->len > 0", useg->len > 0); + + /* We should check that we don't exceed TCP_SND_QUEUELEN but we need + * to split this packet so we may actually exceed the max value by + * one! + */ + LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_enqueue: split_unsent_seg: %u\n", (unsigned int)pcb->snd_queuelen)); + + optflags = useg->flags; +#if TCP_CHECKSUM_ON_COPY + /* Remove since checksum is not stored until after tcp_create_segment() */ + optflags &= ~TF_SEG_DATA_CHECKSUMMED; +#endif /* TCP_CHECKSUM_ON_COPY */ + optlen = LWIP_TCP_OPT_LENGTH(optflags); + remainder = useg->len - split; + + /* Create new pbuf for the remainder of the split */ + p = pbuf_alloc(PBUF_TRANSPORT, remainder + optlen, PBUF_RAM); + if (p == NULL) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("tcp_split_unsent_seg: could not allocate memory for pbuf remainder %u\n", remainder)); + goto memerr; + } + + /* Offset into the original pbuf is past TCP/IP headers, options, and split amount */ + offset = useg->p->tot_len - useg->len + split; + /* Copy remainder into new pbuf, headers and options will not be filled out */ + if (pbuf_copy_partial(useg->p, (u8_t *)p->payload + optlen, remainder, offset ) != remainder) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("tcp_split_unsent_seg: could not copy pbuf remainder %u\n", remainder)); + goto memerr; + } +#if TCP_CHECKSUM_ON_COPY + /* calculate the checksum on remainder data */ + tcp_seg_add_chksum(~inet_chksum((const u8_t *)p->payload + optlen, remainder), remainder, + &chksum, &chksum_swapped); +#endif /* TCP_CHECKSUM_ON_COPY */ + + /* Options are created when calling tcp_output() */ + + /* Migrate flags from original segment */ + split_flags = TCPH_FLAGS(useg->tcphdr); + remainder_flags = 0; /* ACK added in tcp_output() */ + + if (split_flags & TCP_PSH) { + split_flags &= ~TCP_PSH; + remainder_flags |= TCP_PSH; + } + if (split_flags & TCP_FIN) { + split_flags &= ~TCP_FIN; + remainder_flags |= TCP_FIN; + } + /* SYN should be left on split, RST should not be present with data */ + + seg = tcp_create_segment(pcb, p, remainder_flags, lwip_ntohl(useg->tcphdr->seqno) + split, optflags); + if (seg == NULL) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("tcp_split_unsent_seg: could not create new TCP segment\n")); + goto memerr; + } + +#if TCP_CHECKSUM_ON_COPY + seg->chksum = chksum; + seg->chksum_swapped = chksum_swapped; + seg->flags |= TF_SEG_DATA_CHECKSUMMED; +#endif /* TCP_CHECKSUM_ON_COPY */ + + /* Remove this segment from the queue since trimming it may free pbufs */ + pcb->snd_queuelen -= pbuf_clen(useg->p); + + /* Trim the original pbuf into our split size. At this point our remainder segment must be setup + successfully because we are modifying the original segment */ + pbuf_realloc(useg->p, useg->p->tot_len - remainder); + useg->len -= remainder; + TCPH_SET_FLAG(useg->tcphdr, split_flags); +#if TCP_OVERSIZE_DBGCHECK + /* By trimming, realloc may have actually shrunk the pbuf, so clear oversize_left */ + useg->oversize_left = 0; +#endif /* TCP_OVERSIZE_DBGCHECK */ + + /* Add back to the queue with new trimmed pbuf */ + pcb->snd_queuelen += pbuf_clen(useg->p); + +#if TCP_CHECKSUM_ON_COPY + /* The checksum on the split segment is now incorrect. We need to re-run it over the split */ + useg->chksum = 0; + useg->chksum_swapped = 0; + q = useg->p; + offset = q->tot_len - useg->len; /* Offset due to exposed headers */ + + /* Advance to the pbuf where the offset ends */ + while (q != NULL && offset > q->len) { + offset -= q->len; + q = q->next; + } + LWIP_ASSERT("Found start of payload pbuf", q != NULL); + /* Checksum the first payload pbuf accounting for offset, then other pbufs are all payload */ + for (; q != NULL; offset = 0, q = q->next) { + tcp_seg_add_chksum(~inet_chksum((const u8_t *)q->payload + offset, q->len - offset), q->len - offset, + &useg->chksum, &useg->chksum_swapped); + } +#endif /* TCP_CHECKSUM_ON_COPY */ + + /* Update number of segments on the queues. Note that length now may + * exceed TCP_SND_QUEUELEN! We don't have to touch pcb->snd_buf + * because the total amount of data is constant when packet is split */ + pcb->snd_queuelen += pbuf_clen(seg->p); + + /* Finally insert remainder into queue after split (which stays head) */ + seg->next = useg->next; + useg->next = seg; + +#if TCP_OVERSIZE + /* If remainder is last segment on the unsent, ensure we clear the oversize amount + * because the remainder is always sized to the exact remaining amount */ + if (seg->next == NULL) { + pcb->unsent_oversize = 0; + } +#endif /* TCP_OVERSIZE */ + + return ERR_OK; +memerr: + TCP_STATS_INC(tcp.memerr); + + LWIP_ASSERT("seg == NULL", seg == NULL); + if (p != NULL) { + pbuf_free(p); + } + + return ERR_MEM; +} + +/** + * Called by tcp_close() to send a segment including FIN flag but not data. + * This FIN may be added to an existing segment or a new, otherwise empty + * segment is enqueued. + * + * @param pcb the tcp_pcb over which to send a segment + * @return ERR_OK if sent, another err_t otherwise + */ +err_t +tcp_send_fin(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("tcp_send_fin: invalid pcb", pcb != NULL); + + /* first, try to add the fin to the last unsent segment */ + if (pcb->unsent != NULL) { + struct tcp_seg *last_unsent; + for (last_unsent = pcb->unsent; last_unsent->next != NULL; + last_unsent = last_unsent->next); + + if ((TCPH_FLAGS(last_unsent->tcphdr) & (TCP_SYN | TCP_FIN | TCP_RST)) == 0) { + /* no SYN/FIN/RST flag in the header, we can add the FIN flag */ + TCPH_SET_FLAG(last_unsent->tcphdr, TCP_FIN); + tcp_set_flags(pcb, TF_FIN); + return ERR_OK; + } + } + /* no data, no length, flags, copy=1, no optdata */ + return tcp_enqueue_flags(pcb, TCP_FIN); +} + +/** + * Enqueue SYN or FIN for transmission. + * + * Called by @ref tcp_connect, tcp_listen_input, and @ref tcp_close + * (via @ref tcp_send_fin) + * + * @param pcb Protocol control block for the TCP connection. + * @param flags TCP header flags to set in the outgoing segment. + */ +err_t +tcp_enqueue_flags(struct tcp_pcb *pcb, u8_t flags) +{ + struct pbuf *p; + struct tcp_seg *seg; + u8_t optflags = 0; + u8_t optlen = 0; + + LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_enqueue_flags: queuelen: %"U16_F"\n", (u16_t)pcb->snd_queuelen)); + + LWIP_ASSERT("tcp_enqueue_flags: need either TCP_SYN or TCP_FIN in flags (programmer violates API)", + (flags & (TCP_SYN | TCP_FIN)) != 0); + LWIP_ASSERT("tcp_enqueue_flags: invalid pcb", pcb != NULL); + + /* No need to check pcb->snd_queuelen if only SYN or FIN are allowed! */ + + /* Get options for this segment. This is a special case since this is the + only place where a SYN can be sent. */ + if (flags & TCP_SYN) { + optflags = TF_SEG_OPTS_MSS; +#if LWIP_WND_SCALE + if ((pcb->state != SYN_RCVD) || (pcb->flags & TF_WND_SCALE)) { + /* In a (sent in state SYN_RCVD), the window scale option may only + be sent if we received a window scale option from the remote host. */ + optflags |= TF_SEG_OPTS_WND_SCALE; + } +#endif /* LWIP_WND_SCALE */ +#if LWIP_TCP_SACK_OUT + if ((pcb->state != SYN_RCVD) || (pcb->flags & TF_SACK)) { + /* In a (sent in state SYN_RCVD), the SACK_PERM option may only + be sent if we received a SACK_PERM option from the remote host. */ + optflags |= TF_SEG_OPTS_SACK_PERM; + } +#endif /* LWIP_TCP_SACK_OUT */ + } +#if LWIP_TCP_TIMESTAMPS + if ((pcb->flags & TF_TIMESTAMP) || ((flags & TCP_SYN) && (pcb->state != SYN_RCVD))) { + /* Make sure the timestamp option is only included in data segments if we + agreed about it with the remote host (and in active open SYN segments). */ + optflags |= TF_SEG_OPTS_TS; + } +#endif /* LWIP_TCP_TIMESTAMPS */ + optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(optflags, pcb); + + /* Allocate pbuf with room for TCP header + options */ + if ((p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) { + tcp_set_flags(pcb, TF_NAGLEMEMERR); + TCP_STATS_INC(tcp.memerr); + return ERR_MEM; + } + LWIP_ASSERT("tcp_enqueue_flags: check that first pbuf can hold optlen", + (p->len >= optlen)); + + /* Allocate memory for tcp_seg, and fill in fields. */ + if ((seg = tcp_create_segment(pcb, p, flags, pcb->snd_lbb, optflags)) == NULL) { + tcp_set_flags(pcb, TF_NAGLEMEMERR); + TCP_STATS_INC(tcp.memerr); + return ERR_MEM; + } + LWIP_ASSERT("seg->tcphdr not aligned", ((mem_ptr_t)seg->tcphdr % LWIP_MIN(MEM_ALIGNMENT, 4)) == 0); + LWIP_ASSERT("tcp_enqueue_flags: invalid segment length", seg->len == 0); + + LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_TRACE, + ("tcp_enqueue_flags: queueing %"U32_F":%"U32_F" (0x%"X16_F")\n", + lwip_ntohl(seg->tcphdr->seqno), + lwip_ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg), + (u16_t)flags)); + + /* Now append seg to pcb->unsent queue */ + if (pcb->unsent == NULL) { + pcb->unsent = seg; + } else { + struct tcp_seg *useg; + for (useg = pcb->unsent; useg->next != NULL; useg = useg->next); + useg->next = seg; + } +#if TCP_OVERSIZE + /* The new unsent tail has no space */ + pcb->unsent_oversize = 0; +#endif /* TCP_OVERSIZE */ + + /* SYN and FIN bump the sequence number */ + if ((flags & TCP_SYN) || (flags & TCP_FIN)) { + pcb->snd_lbb++; + /* optlen does not influence snd_buf */ + } + if (flags & TCP_FIN) { + tcp_set_flags(pcb, TF_FIN); + } + + /* update number of segments on the queues */ + pcb->snd_queuelen += pbuf_clen(seg->p); + LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_enqueue_flags: %"S16_F" (after enqueued)\n", pcb->snd_queuelen)); + if (pcb->snd_queuelen != 0) { + LWIP_ASSERT("tcp_enqueue_flags: invalid queue length", + pcb->unacked != NULL || pcb->unsent != NULL); + } + + return ERR_OK; +} + +#if LWIP_TCP_TIMESTAMPS +/* Build a timestamp option (12 bytes long) at the specified options pointer) + * + * @param pcb tcp_pcb + * @param opts option pointer where to store the timestamp option + */ +static void +tcp_build_timestamp_option(const struct tcp_pcb *pcb, u32_t *opts) +{ + LWIP_ASSERT("tcp_build_timestamp_option: invalid pcb", pcb != NULL); + + /* Pad with two NOP options to make everything nicely aligned */ + opts[0] = PP_HTONL(0x0101080A); + opts[1] = lwip_htonl(sys_now()); + opts[2] = lwip_htonl(pcb->ts_recent); +} +#endif + +#if LWIP_TCP_SACK_OUT +/** + * Calculates the number of SACK entries that should be generated. + * It takes into account whether TF_SACK flag is set, + * the number of SACK entries in tcp_pcb that are valid, + * as well as the available options size. + * + * @param pcb tcp_pcb + * @param optlen the length of other TCP options (in bytes) + * @return the number of SACK ranges that can be used + */ +static u8_t +tcp_get_num_sacks(const struct tcp_pcb *pcb, u8_t optlen) +{ + u8_t num_sacks = 0; + + LWIP_ASSERT("tcp_get_num_sacks: invalid pcb", pcb != NULL); + + if (pcb->flags & TF_SACK) { + u8_t i; + + /* The first SACK takes up 12 bytes (it includes SACK header and two NOP options), + each additional one - 8 bytes. */ + optlen += 12; + + /* Max options size = 40, number of SACK array entries = LWIP_TCP_MAX_SACK_NUM */ + for (i = 0; (i < LWIP_TCP_MAX_SACK_NUM) && (optlen <= TCP_MAX_OPTION_BYTES) && + LWIP_TCP_SACK_VALID(pcb, i); ++i) { + ++num_sacks; + optlen += 8; + } + } + + return num_sacks; +} + +/** Build a SACK option (12 or more bytes long) at the specified options pointer) + * + * @param pcb tcp_pcb + * @param opts option pointer where to store the SACK option + * @param num_sacks the number of SACKs to store + */ +static void +tcp_build_sack_option(const struct tcp_pcb *pcb, u32_t *opts, u8_t num_sacks) +{ + u8_t i; + + LWIP_ASSERT("tcp_build_sack_option: invalid pcb", pcb != NULL); + LWIP_ASSERT("tcp_build_sack_option: invalid opts", opts != NULL); + + /* Pad with two NOP options to make everything nicely aligned. + We add the length (of just the SACK option, not the NOPs in front of it), + which is 2B of header, plus 8B for each SACK. */ + *(opts++) = PP_HTONL(0x01010500 + 2 + num_sacks * 8); + + for (i = 0; i < num_sacks; ++i) { + *(opts++) = lwip_htonl(pcb->rcv_sacks[i].left); + *(opts++) = lwip_htonl(pcb->rcv_sacks[i].right); + } +} + +#endif + +#if LWIP_WND_SCALE +/** Build a window scale option (3 bytes long) at the specified options pointer) + * + * @param opts option pointer where to store the window scale option + */ +static void +tcp_build_wnd_scale_option(u32_t *opts) +{ + LWIP_ASSERT("tcp_build_wnd_scale_option: invalid opts", opts != NULL); + + /* Pad with one NOP option to make everything nicely aligned */ + opts[0] = PP_HTONL(0x01030300 | TCP_RCV_SCALE); +} +#endif + +/** + * @ingroup tcp_raw + * Find out what we can send and send it + * + * @param pcb Protocol control block for the TCP connection to send data + * @return ERR_OK if data has been sent or nothing to send + * another err_t on error + */ +err_t +tcp_output(struct tcp_pcb *pcb) +{ + struct tcp_seg *seg, *useg; + u32_t wnd, snd_nxt; + err_t err; + struct netif *netif; +#if TCP_CWND_DEBUG + s16_t i = 0; +#endif /* TCP_CWND_DEBUG */ + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ASSERT("tcp_output: invalid pcb", pcb != NULL); + /* pcb->state LISTEN not allowed here */ + LWIP_ASSERT("don't call tcp_output for listen-pcbs", + pcb->state != LISTEN); + + /* First, check if we are invoked by the TCP input processing + code. If so, we do not output anything. Instead, we rely on the + input processing code to call us when input processing is done + with. */ + if (tcp_input_pcb == pcb) { + return ERR_OK; + } + + wnd = LWIP_MIN(pcb->snd_wnd, pcb->cwnd); + + seg = pcb->unsent; + + if (seg == NULL) { + LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: nothing to send (%p)\n", + (void *)pcb->unsent)); + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_output: snd_wnd %"TCPWNDSIZE_F + ", cwnd %"TCPWNDSIZE_F", wnd %"U32_F + ", seg == NULL, ack %"U32_F"\n", + pcb->snd_wnd, pcb->cwnd, wnd, pcb->lastack)); + + /* If the TF_ACK_NOW flag is set and the ->unsent queue is empty, construct + * an empty ACK segment and send it. */ + if (pcb->flags & TF_ACK_NOW) { + return tcp_send_empty_ack(pcb); + } + /* nothing to send: shortcut out of here */ + goto output_done; + } else { + LWIP_DEBUGF(TCP_CWND_DEBUG, + ("tcp_output: snd_wnd %"TCPWNDSIZE_F", cwnd %"TCPWNDSIZE_F", wnd %"U32_F + ", effwnd %"U32_F", seq %"U32_F", ack %"U32_F"\n", + pcb->snd_wnd, pcb->cwnd, wnd, + lwip_ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len, + lwip_ntohl(seg->tcphdr->seqno), pcb->lastack)); + } + + netif = tcp_route(pcb, &pcb->local_ip, &pcb->remote_ip); + if (netif == NULL) { + return ERR_RTE; + } + + /* If we don't have a local IP address, we get one from netif */ + if (ip_addr_isany(&pcb->local_ip)) { + const ip_addr_t *local_ip = ip_netif_get_local_ip(netif, &pcb->remote_ip); + if (local_ip == NULL) { + return ERR_RTE; + } + ip_addr_copy(pcb->local_ip, *local_ip); + } + + /* Handle the current segment not fitting within the window */ + if (lwip_ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > wnd) { + /* We need to start the persistent timer when the next unsent segment does not fit + * within the remaining (could be 0) send window and RTO timer is not running (we + * have no in-flight data). If window is still too small after persist timer fires, + * then we split the segment. We don't consider the congestion window since a cwnd + * smaller than 1 SMSS implies in-flight data + */ + if (wnd == pcb->snd_wnd && pcb->unacked == NULL && pcb->persist_backoff == 0) { + pcb->persist_cnt = 0; + pcb->persist_backoff = 1; + pcb->persist_probe = 0; + } + /* We need an ACK, but can't send data now, so send an empty ACK */ + if (pcb->flags & TF_ACK_NOW) { + return tcp_send_empty_ack(pcb); + } + goto output_done; + } + /* Stop persist timer, above conditions are not active */ + pcb->persist_backoff = 0; + + /* useg should point to last segment on unacked queue */ + useg = pcb->unacked; + if (useg != NULL) { + for (; useg->next != NULL; useg = useg->next); + } + /* data available and window allows it to be sent? */ + while (seg != NULL && + lwip_ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) { + LWIP_ASSERT("RST not expected here!", + (TCPH_FLAGS(seg->tcphdr) & TCP_RST) == 0); + /* Stop sending if the nagle algorithm would prevent it + * Don't stop: + * - if tcp_write had a memory error before (prevent delayed ACK timeout) or + * - if FIN was already enqueued for this PCB (SYN is always alone in a segment - + * either seg->next != NULL or pcb->unacked == NULL; + * RST is no sent using tcp_write/tcp_output. + */ + if ((tcp_do_output_nagle(pcb) == 0) && + ((pcb->flags & (TF_NAGLEMEMERR | TF_FIN)) == 0)) { + break; + } +#if TCP_CWND_DEBUG + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_output: snd_wnd %"TCPWNDSIZE_F", cwnd %"TCPWNDSIZE_F", wnd %"U32_F", effwnd %"U32_F", seq %"U32_F", ack %"U32_F", i %"S16_F"\n", + pcb->snd_wnd, pcb->cwnd, wnd, + lwip_ntohl(seg->tcphdr->seqno) + seg->len - + pcb->lastack, + lwip_ntohl(seg->tcphdr->seqno), pcb->lastack, i)); + ++i; +#endif /* TCP_CWND_DEBUG */ + + if (pcb->state != SYN_SENT) { + TCPH_SET_FLAG(seg->tcphdr, TCP_ACK); + } + + err = tcp_output_segment(seg, pcb, netif); + if (err != ERR_OK) { + /* segment could not be sent, for whatever reason */ + tcp_set_flags(pcb, TF_NAGLEMEMERR); + return err; + } +#if TCP_OVERSIZE_DBGCHECK + seg->oversize_left = 0; +#endif /* TCP_OVERSIZE_DBGCHECK */ + pcb->unsent = seg->next; + if (pcb->state != SYN_SENT) { + tcp_clear_flags(pcb, TF_ACK_DELAY | TF_ACK_NOW); + } + snd_nxt = lwip_ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg); + if (TCP_SEQ_LT(pcb->snd_nxt, snd_nxt)) { + pcb->snd_nxt = snd_nxt; + } + /* put segment on unacknowledged list if length > 0 */ + if (TCP_TCPLEN(seg) > 0) { + seg->next = NULL; + /* unacked list is empty? */ + if (pcb->unacked == NULL) { + pcb->unacked = seg; + useg = seg; + /* unacked list is not empty? */ + } else { + /* In the case of fast retransmit, the packet should not go to the tail + * of the unacked queue, but rather somewhere before it. We need to check for + * this case. -STJ Jul 27, 2004 */ + if (TCP_SEQ_LT(lwip_ntohl(seg->tcphdr->seqno), lwip_ntohl(useg->tcphdr->seqno))) { + /* add segment to before tail of unacked list, keeping the list sorted */ + struct tcp_seg **cur_seg = &(pcb->unacked); + while (*cur_seg && + TCP_SEQ_LT(lwip_ntohl((*cur_seg)->tcphdr->seqno), lwip_ntohl(seg->tcphdr->seqno))) { + cur_seg = &((*cur_seg)->next ); + } + seg->next = (*cur_seg); + (*cur_seg) = seg; + } else { + /* add segment to tail of unacked list */ + useg->next = seg; + useg = useg->next; + } + } + /* do not queue empty segments on the unacked list */ + } else { + tcp_seg_free(seg); + } + seg = pcb->unsent; + } +#if TCP_OVERSIZE + if (pcb->unsent == NULL) { + /* last unsent has been removed, reset unsent_oversize */ + pcb->unsent_oversize = 0; + } +#endif /* TCP_OVERSIZE */ + +output_done: + tcp_clear_flags(pcb, TF_NAGLEMEMERR); + return ERR_OK; +} + +/** Check if a segment's pbufs are used by someone else than TCP. + * This can happen on retransmission if the pbuf of this segment is still + * referenced by the netif driver due to deferred transmission. + * This is the case (only!) if someone down the TX call path called + * pbuf_ref() on one of the pbufs! + * + * @arg seg the tcp segment to check + * @return 1 if ref != 1, 0 if ref == 1 + */ +static int +tcp_output_segment_busy(const struct tcp_seg *seg) +{ + LWIP_ASSERT("tcp_output_segment_busy: invalid seg", seg != NULL); + + /* We only need to check the first pbuf here: + If a pbuf is queued for transmission, a driver calls pbuf_ref(), + which only changes the ref count of the first pbuf */ + if (seg->p->ref != 1) { + /* other reference found */ + return 1; + } + /* no other references found */ + return 0; +} + +/** + * Called by tcp_output() to actually send a TCP segment over IP. + * + * @param seg the tcp_seg to send + * @param pcb the tcp_pcb for the TCP connection used to send the segment + * @param netif the netif used to send the segment + */ +static err_t +tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb, struct netif *netif) +{ + err_t err; + u16_t len; + u32_t *opts; +#if TCP_CHECKSUM_ON_COPY + int seg_chksum_was_swapped = 0; +#endif + + LWIP_ASSERT("tcp_output_segment: invalid seg", seg != NULL); + LWIP_ASSERT("tcp_output_segment: invalid pcb", pcb != NULL); + LWIP_ASSERT("tcp_output_segment: invalid netif", netif != NULL); + + if (tcp_output_segment_busy(seg)) { + /* This should not happen: rexmit functions should have checked this. + However, since this function modifies p->len, we must not continue in this case. */ + LWIP_DEBUGF(TCP_RTO_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("tcp_output_segment: segment busy\n")); + return ERR_OK; + } + + /* The TCP header has already been constructed, but the ackno and + wnd fields remain. */ + seg->tcphdr->ackno = lwip_htonl(pcb->rcv_nxt); + + /* advertise our receive window size in this TCP segment */ +#if LWIP_WND_SCALE + if (seg->flags & TF_SEG_OPTS_WND_SCALE) { + /* The Window field in a SYN segment itself (the only type where we send + the window scale option) is never scaled. */ + seg->tcphdr->wnd = lwip_htons(TCPWND_MIN16(pcb->rcv_ann_wnd)); + } else +#endif /* LWIP_WND_SCALE */ + { + seg->tcphdr->wnd = lwip_htons(TCPWND_MIN16(RCV_WND_SCALE(pcb, pcb->rcv_ann_wnd))); + } + + pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd; + + /* Add any requested options. NB MSS option is only set on SYN + packets, so ignore it here */ + /* cast through void* to get rid of alignment warnings */ + opts = (u32_t *)(void *)(seg->tcphdr + 1); + if (seg->flags & TF_SEG_OPTS_MSS) { + u16_t mss; +#if TCP_CALCULATE_EFF_SEND_MSS + mss = tcp_eff_send_mss_netif(TCP_MSS, netif, &pcb->remote_ip); +#else /* TCP_CALCULATE_EFF_SEND_MSS */ + mss = TCP_MSS; +#endif /* TCP_CALCULATE_EFF_SEND_MSS */ + *opts = TCP_BUILD_MSS_OPTION(mss); + opts += 1; + } +#if LWIP_TCP_TIMESTAMPS + pcb->ts_lastacksent = pcb->rcv_nxt; + + if (seg->flags & TF_SEG_OPTS_TS) { + tcp_build_timestamp_option(pcb, opts); + opts += 3; + } +#endif +#if LWIP_WND_SCALE + if (seg->flags & TF_SEG_OPTS_WND_SCALE) { + tcp_build_wnd_scale_option(opts); + opts += 1; + } +#endif +#if LWIP_TCP_SACK_OUT + if (seg->flags & TF_SEG_OPTS_SACK_PERM) { + /* Pad with two NOP options to make everything nicely aligned + * NOTE: When we send both timestamp and SACK_PERM options, + * we could use the first two NOPs before the timestamp to store SACK_PERM option, + * but that would complicate the code. + */ + *(opts++) = PP_HTONL(0x01010402); + } +#endif + + /* Set retransmission timer running if it is not currently enabled + This must be set before checking the route. */ + if (pcb->rtime < 0) { + pcb->rtime = 0; + } + + if (pcb->rttest == 0) { + pcb->rttest = tcp_ticks; + pcb->rtseq = lwip_ntohl(seg->tcphdr->seqno); + + LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_output_segment: rtseq %"U32_F"\n", pcb->rtseq)); + } + LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output_segment: %"U32_F":%"U32_F"\n", + lwip_htonl(seg->tcphdr->seqno), lwip_htonl(seg->tcphdr->seqno) + + seg->len)); + + len = (u16_t)((u8_t *)seg->tcphdr - (u8_t *)seg->p->payload); + if (len == 0) { + /** Exclude retransmitted segments from this count. */ + MIB2_STATS_INC(mib2.tcpoutsegs); + } + + seg->p->len -= len; + seg->p->tot_len -= len; + + seg->p->payload = seg->tcphdr; + + seg->tcphdr->chksum = 0; + +#ifdef LWIP_HOOK_TCP_OUT_ADD_TCPOPTS + opts = LWIP_HOOK_TCP_OUT_ADD_TCPOPTS(seg->p, seg->tcphdr, pcb, opts); +#endif + LWIP_ASSERT("options not filled", (u8_t *)opts == ((u8_t *)(seg->tcphdr + 1)) + LWIP_TCP_OPT_LENGTH_SEGMENT(seg->flags, pcb)); + +#if CHECKSUM_GEN_TCP + IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_TCP) { +#if TCP_CHECKSUM_ON_COPY + u32_t acc; +#if TCP_CHECKSUM_ON_COPY_SANITY_CHECK + u16_t chksum_slow = ip_chksum_pseudo(seg->p, IP_PROTO_TCP, + seg->p->tot_len, &pcb->local_ip, &pcb->remote_ip); +#endif /* TCP_CHECKSUM_ON_COPY_SANITY_CHECK */ + if ((seg->flags & TF_SEG_DATA_CHECKSUMMED) == 0) { + LWIP_ASSERT("data included but not checksummed", + seg->p->tot_len == TCPH_HDRLEN_BYTES(seg->tcphdr)); + } + + /* rebuild TCP header checksum (TCP header changes for retransmissions!) */ + acc = ip_chksum_pseudo_partial(seg->p, IP_PROTO_TCP, + seg->p->tot_len, TCPH_HDRLEN_BYTES(seg->tcphdr), &pcb->local_ip, &pcb->remote_ip); + /* add payload checksum */ + if (seg->chksum_swapped) { + seg_chksum_was_swapped = 1; + seg->chksum = SWAP_BYTES_IN_WORD(seg->chksum); + seg->chksum_swapped = 0; + } + acc = (u16_t)~acc + seg->chksum; + seg->tcphdr->chksum = (u16_t)~FOLD_U32T(acc); +#if TCP_CHECKSUM_ON_COPY_SANITY_CHECK + if (chksum_slow != seg->tcphdr->chksum) { + TCP_CHECKSUM_ON_COPY_SANITY_CHECK_FAIL( + ("tcp_output_segment: calculated checksum is %"X16_F" instead of %"X16_F"\n", + seg->tcphdr->chksum, chksum_slow)); + seg->tcphdr->chksum = chksum_slow; + } +#endif /* TCP_CHECKSUM_ON_COPY_SANITY_CHECK */ +#else /* TCP_CHECKSUM_ON_COPY */ + seg->tcphdr->chksum = ip_chksum_pseudo(seg->p, IP_PROTO_TCP, + seg->p->tot_len, &pcb->local_ip, &pcb->remote_ip); +#endif /* TCP_CHECKSUM_ON_COPY */ + } +#endif /* CHECKSUM_GEN_TCP */ + TCP_STATS_INC(tcp.xmit); + + NETIF_SET_HINTS(netif, &(pcb->netif_hints)); + err = ip_output_if(seg->p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, + pcb->tos, IP_PROTO_TCP, netif); + NETIF_RESET_HINTS(netif); + +#if TCP_CHECKSUM_ON_COPY + if (seg_chksum_was_swapped) { + /* if data is added to this segment later, chksum needs to be swapped, + so restore this now */ + seg->chksum = SWAP_BYTES_IN_WORD(seg->chksum); + seg->chksum_swapped = 1; + } +#endif + + return err; +} + +/** + * Requeue all unacked segments for retransmission + * + * Called by tcp_slowtmr() for slow retransmission. + * + * @param pcb the tcp_pcb for which to re-enqueue all unacked segments + */ +err_t +tcp_rexmit_rto_prepare(struct tcp_pcb *pcb) +{ + struct tcp_seg *seg; + + LWIP_ASSERT("tcp_rexmit_rto_prepare: invalid pcb", pcb != NULL); + + if (pcb->unacked == NULL) { + return ERR_VAL; + } + + /* Move all unacked segments to the head of the unsent queue. + However, give up if any of the unsent pbufs are still referenced by the + netif driver due to deferred transmission. No point loading the link further + if it is struggling to flush its buffered writes. */ + for (seg = pcb->unacked; seg->next != NULL; seg = seg->next) { + if (tcp_output_segment_busy(seg)) { + LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_rexmit_rto: segment busy\n")); + return ERR_VAL; + } + } + if (tcp_output_segment_busy(seg)) { + LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_rexmit_rto: segment busy\n")); + return ERR_VAL; + } + /* concatenate unsent queue after unacked queue */ + seg->next = pcb->unsent; +#if TCP_OVERSIZE_DBGCHECK + /* if last unsent changed, we need to update unsent_oversize */ + if (pcb->unsent == NULL) { + pcb->unsent_oversize = seg->oversize_left; + } +#endif /* TCP_OVERSIZE_DBGCHECK */ + /* unsent queue is the concatenated queue (of unacked, unsent) */ + pcb->unsent = pcb->unacked; + /* unacked queue is now empty */ + pcb->unacked = NULL; + + /* Mark RTO in-progress */ + tcp_set_flags(pcb, TF_RTO); + /* Record the next byte following retransmit */ + pcb->rto_end = lwip_ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg); + /* Don't take any RTT measurements after retransmitting. */ + pcb->rttest = 0; + + return ERR_OK; +} + +/** + * Requeue all unacked segments for retransmission + * + * Called by tcp_slowtmr() for slow retransmission. + * + * @param pcb the tcp_pcb for which to re-enqueue all unacked segments + */ +void +tcp_rexmit_rto_commit(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("tcp_rexmit_rto_commit: invalid pcb", pcb != NULL); + + /* increment number of retransmissions */ + if (pcb->nrtx < 0xFF) { + ++pcb->nrtx; + } + /* Do the actual retransmission */ + tcp_output(pcb); +} + +/** + * Requeue all unacked segments for retransmission + * + * Called by tcp_process() only, tcp_slowtmr() needs to do some things between + * "prepare" and "commit". + * + * @param pcb the tcp_pcb for which to re-enqueue all unacked segments + */ +void +tcp_rexmit_rto(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("tcp_rexmit_rto: invalid pcb", pcb != NULL); + + if (tcp_rexmit_rto_prepare(pcb) == ERR_OK) { + tcp_rexmit_rto_commit(pcb); + } +} + +/** + * Requeue the first unacked segment for retransmission + * + * Called by tcp_receive() for fast retransmit. + * + * @param pcb the tcp_pcb for which to retransmit the first unacked segment + */ +err_t +tcp_rexmit(struct tcp_pcb *pcb) +{ + struct tcp_seg *seg; + struct tcp_seg **cur_seg; + + LWIP_ASSERT("tcp_rexmit: invalid pcb", pcb != NULL); + + if (pcb->unacked == NULL) { + return ERR_VAL; + } + + seg = pcb->unacked; + + /* Give up if the segment is still referenced by the netif driver + due to deferred transmission. */ + if (tcp_output_segment_busy(seg)) { + LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_rexmit busy\n")); + return ERR_VAL; + } + + /* Move the first unacked segment to the unsent queue */ + /* Keep the unsent queue sorted. */ + pcb->unacked = seg->next; + + cur_seg = &(pcb->unsent); + while (*cur_seg && + TCP_SEQ_LT(lwip_ntohl((*cur_seg)->tcphdr->seqno), lwip_ntohl(seg->tcphdr->seqno))) { + cur_seg = &((*cur_seg)->next ); + } + seg->next = *cur_seg; + *cur_seg = seg; +#if TCP_OVERSIZE + if (seg->next == NULL) { + /* the retransmitted segment is last in unsent, so reset unsent_oversize */ + pcb->unsent_oversize = 0; + } +#endif /* TCP_OVERSIZE */ + + if (pcb->nrtx < 0xFF) { + ++pcb->nrtx; + } + + /* Don't take any rtt measurements after retransmitting. */ + pcb->rttest = 0; + + /* Do the actual retransmission. */ + MIB2_STATS_INC(mib2.tcpretranssegs); + /* No need to call tcp_output: we are always called from tcp_input() + and thus tcp_output directly returns. */ + return ERR_OK; +} + + +/** + * Handle retransmission after three dupacks received + * + * @param pcb the tcp_pcb for which to retransmit the first unacked segment + */ +void +tcp_rexmit_fast(struct tcp_pcb *pcb) +{ + LWIP_ASSERT("tcp_rexmit_fast: invalid pcb", pcb != NULL); + + if (pcb->unacked != NULL && !(pcb->flags & TF_INFR)) { + /* This is fast retransmit. Retransmit the first unacked segment. */ + LWIP_DEBUGF(TCP_FR_DEBUG, + ("tcp_receive: dupacks %"U16_F" (%"U32_F + "), fast retransmit %"U32_F"\n", + (u16_t)pcb->dupacks, pcb->lastack, + lwip_ntohl(pcb->unacked->tcphdr->seqno))); + if (tcp_rexmit(pcb) == ERR_OK) { + /* Set ssthresh to half of the minimum of the current + * cwnd and the advertised window */ + pcb->ssthresh = LWIP_MIN(pcb->cwnd, pcb->snd_wnd) / 2; + + /* The minimum value for ssthresh should be 2 MSS */ + if (pcb->ssthresh < (2U * pcb->mss)) { + LWIP_DEBUGF(TCP_FR_DEBUG, + ("tcp_receive: The minimum value for ssthresh %"TCPWNDSIZE_F + " should be min 2 mss %"U16_F"...\n", + pcb->ssthresh, (u16_t)(2 * pcb->mss))); + pcb->ssthresh = 2 * pcb->mss; + } + + pcb->cwnd = pcb->ssthresh + 3 * pcb->mss; + tcp_set_flags(pcb, TF_INFR); + + /* Reset the retransmission timer to prevent immediate rto retransmissions */ + pcb->rtime = 0; + } + } +} + +static struct pbuf * +tcp_output_alloc_header_common(u32_t ackno, u16_t optlen, u16_t datalen, + u32_t seqno_be /* already in network byte order */, + u16_t src_port, u16_t dst_port, u8_t flags, u16_t wnd) +{ + struct tcp_hdr *tcphdr; + struct pbuf *p; + + p = pbuf_alloc(PBUF_IP, TCP_HLEN + optlen + datalen, PBUF_RAM); + if (p != NULL) { + LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr", + (p->len >= TCP_HLEN + optlen)); + tcphdr = (struct tcp_hdr *)p->payload; + tcphdr->src = lwip_htons(src_port); + tcphdr->dest = lwip_htons(dst_port); + tcphdr->seqno = seqno_be; + tcphdr->ackno = lwip_htonl(ackno); + TCPH_HDRLEN_FLAGS_SET(tcphdr, (5 + optlen / 4), flags); + tcphdr->wnd = lwip_htons(wnd); + tcphdr->chksum = 0; + tcphdr->urgp = 0; + } + return p; +} + +/** Allocate a pbuf and create a tcphdr at p->payload, used for output + * functions other than the default tcp_output -> tcp_output_segment + * (e.g. tcp_send_empty_ack, etc.) + * + * @param pcb tcp pcb for which to send a packet (used to initialize tcp_hdr) + * @param optlen length of header-options + * @param datalen length of tcp data to reserve in pbuf + * @param seqno_be seqno in network byte order (big-endian) + * @return pbuf with p->payload being the tcp_hdr + */ +static struct pbuf * +tcp_output_alloc_header(struct tcp_pcb *pcb, u16_t optlen, u16_t datalen, + u32_t seqno_be /* already in network byte order */) +{ + struct pbuf *p; + + LWIP_ASSERT("tcp_output_alloc_header: invalid pcb", pcb != NULL); + + p = tcp_output_alloc_header_common(pcb->rcv_nxt, optlen, datalen, + seqno_be, pcb->local_port, pcb->remote_port, TCP_ACK, + TCPWND_MIN16(RCV_WND_SCALE(pcb, pcb->rcv_ann_wnd))); + if (p != NULL) { + /* If we're sending a packet, update the announced right window edge */ + pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd; + } + return p; +} + +/* Fill in options for control segments */ +static void +tcp_output_fill_options(const struct tcp_pcb *pcb, struct pbuf *p, u8_t optflags, u8_t num_sacks) +{ + struct tcp_hdr *tcphdr; + u32_t *opts; + u16_t sacks_len = 0; + + LWIP_ASSERT("tcp_output_fill_options: invalid pbuf", p != NULL); + + tcphdr = (struct tcp_hdr *)p->payload; + opts = (u32_t *)(void *)(tcphdr + 1); + + /* NB. MSS and window scale options are only sent on SYNs, so ignore them here */ + +#if LWIP_TCP_TIMESTAMPS + if (optflags & TF_SEG_OPTS_TS) { + tcp_build_timestamp_option(pcb, opts); + opts += 3; + } +#endif + +#if LWIP_TCP_SACK_OUT + if (pcb && (num_sacks > 0)) { + tcp_build_sack_option(pcb, opts, num_sacks); + /* 1 word for SACKs header (including 2xNOP), and 2 words for each SACK */ + sacks_len = 1 + num_sacks * 2; + opts += sacks_len; + } +#else + LWIP_UNUSED_ARG(num_sacks); +#endif + +#ifdef LWIP_HOOK_TCP_OUT_ADD_TCPOPTS + opts = LWIP_HOOK_TCP_OUT_ADD_TCPOPTS(p, tcphdr, pcb, opts); +#endif + + LWIP_UNUSED_ARG(pcb); + LWIP_UNUSED_ARG(sacks_len); + LWIP_ASSERT("options not filled", (u8_t *)opts == ((u8_t *)(tcphdr + 1)) + sacks_len * 4 + LWIP_TCP_OPT_LENGTH_SEGMENT(optflags, pcb)); + LWIP_UNUSED_ARG(optflags); /* for LWIP_NOASSERT */ + LWIP_UNUSED_ARG(opts); /* for LWIP_NOASSERT */ +} + +/** Output a control segment pbuf to IP. + * + * Called from tcp_rst, tcp_send_empty_ack, tcp_keepalive and tcp_zero_window_probe, + * this function combines selecting a netif for transmission, generating the tcp + * header checksum and calling ip_output_if while handling netif hints and stats. + */ +static err_t +tcp_output_control_segment(const struct tcp_pcb *pcb, struct pbuf *p, + const ip_addr_t *src, const ip_addr_t *dst) +{ + err_t err; + struct netif *netif; + + LWIP_ASSERT("tcp_output_control_segment: invalid pbuf", p != NULL); + + netif = tcp_route(pcb, src, dst); + if (netif == NULL) { + err = ERR_RTE; + } else { + u8_t ttl, tos; +#if CHECKSUM_GEN_TCP + IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_TCP) { + struct tcp_hdr *tcphdr = (struct tcp_hdr *)p->payload; + tcphdr->chksum = ip_chksum_pseudo(p, IP_PROTO_TCP, p->tot_len, + src, dst); + } +#endif + if (pcb != NULL) { + NETIF_SET_HINTS(netif, LWIP_CONST_CAST(struct netif_hint*, &(pcb->netif_hints))); + ttl = pcb->ttl; + tos = pcb->tos; + } else { + /* Send output with hardcoded TTL/HL since we have no access to the pcb */ + ttl = TCP_TTL; + tos = 0; + } + TCP_STATS_INC(tcp.xmit); + err = ip_output_if(p, src, dst, ttl, tos, IP_PROTO_TCP, netif); + NETIF_RESET_HINTS(netif); + } + pbuf_free(p); + return err; +} + +/** + * Send a TCP RESET packet (empty segment with RST flag set) either to + * abort a connection or to show that there is no matching local connection + * for a received segment. + * + * Called by tcp_abort() (to abort a local connection), tcp_input() (if no + * matching local pcb was found), tcp_listen_input() (if incoming segment + * has ACK flag set) and tcp_process() (received segment in the wrong state) + * + * Since a RST segment is in most cases not sent for an active connection, + * tcp_rst() has a number of arguments that are taken from a tcp_pcb for + * most other segment output functions. + * + * @param pcb TCP pcb (may be NULL if no pcb is available) + * @param seqno the sequence number to use for the outgoing segment + * @param ackno the acknowledge number to use for the outgoing segment + * @param local_ip the local IP address to send the segment from + * @param remote_ip the remote IP address to send the segment to + * @param local_port the local TCP port to send the segment from + * @param remote_port the remote TCP port to send the segment to + */ +void +tcp_rst(const struct tcp_pcb *pcb, u32_t seqno, u32_t ackno, + const ip_addr_t *local_ip, const ip_addr_t *remote_ip, + u16_t local_port, u16_t remote_port) +{ + struct pbuf *p; + u16_t wnd; + u8_t optlen; + + LWIP_ASSERT("tcp_rst: invalid local_ip", local_ip != NULL); + LWIP_ASSERT("tcp_rst: invalid remote_ip", remote_ip != NULL); + + optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(0, pcb); + +#if LWIP_WND_SCALE + wnd = PP_HTONS(((TCP_WND >> TCP_RCV_SCALE) & 0xFFFF)); +#else + wnd = PP_HTONS(TCP_WND); +#endif + + p = tcp_output_alloc_header_common(ackno, optlen, 0, lwip_htonl(seqno), local_port, + remote_port, TCP_RST | TCP_ACK, wnd); + if (p == NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_rst: could not allocate memory for pbuf\n")); + return; + } + tcp_output_fill_options(pcb, p, 0, optlen); + + MIB2_STATS_INC(mib2.tcpoutrsts); + + tcp_output_control_segment(pcb, p, local_ip, remote_ip); + LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_rst: seqno %"U32_F" ackno %"U32_F".\n", seqno, ackno)); +} + +/** + * Send an ACK without data. + * + * @param pcb Protocol control block for the TCP connection to send the ACK + */ +err_t +tcp_send_empty_ack(struct tcp_pcb *pcb) +{ + err_t err; + struct pbuf *p; + u8_t optlen, optflags = 0; + u8_t num_sacks = 0; + + LWIP_ASSERT("tcp_send_empty_ack: invalid pcb", pcb != NULL); + +#if LWIP_TCP_TIMESTAMPS + if (pcb->flags & TF_TIMESTAMP) { + optflags = TF_SEG_OPTS_TS; + } +#endif + optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(optflags, pcb); + +#if LWIP_TCP_SACK_OUT + /* For now, SACKs are only sent with empty ACKs */ + if ((num_sacks = tcp_get_num_sacks(pcb, optlen)) > 0) { + optlen += 4 + num_sacks * 8; /* 4 bytes for header (including 2*NOP), plus 8B for each SACK */ + } +#endif + + p = tcp_output_alloc_header(pcb, optlen, 0, lwip_htonl(pcb->snd_nxt)); + if (p == NULL) { + /* let tcp_fasttmr retry sending this ACK */ + tcp_set_flags(pcb, TF_ACK_DELAY | TF_ACK_NOW); + LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: (ACK) could not allocate pbuf\n")); + return ERR_BUF; + } + tcp_output_fill_options(pcb, p, optflags, num_sacks); + +#if LWIP_TCP_TIMESTAMPS + pcb->ts_lastacksent = pcb->rcv_nxt; +#endif + + LWIP_DEBUGF(TCP_OUTPUT_DEBUG, + ("tcp_output: sending ACK for %"U32_F"\n", pcb->rcv_nxt)); + err = tcp_output_control_segment(pcb, p, &pcb->local_ip, &pcb->remote_ip); + if (err != ERR_OK) { + /* let tcp_fasttmr retry sending this ACK */ + tcp_set_flags(pcb, TF_ACK_DELAY | TF_ACK_NOW); + } else { + /* remove ACK flags from the PCB, as we sent an empty ACK now */ + tcp_clear_flags(pcb, TF_ACK_DELAY | TF_ACK_NOW); + } + + return err; +} + +/** + * Send keepalive packets to keep a connection active although + * no data is sent over it. + * + * Called by tcp_slowtmr() + * + * @param pcb the tcp_pcb for which to send a keepalive packet + */ +err_t +tcp_keepalive(struct tcp_pcb *pcb) +{ + err_t err; + struct pbuf *p; + u8_t optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(0, pcb); + + LWIP_ASSERT("tcp_keepalive: invalid pcb", pcb != NULL); + + LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: sending KEEPALIVE probe to ")); + ip_addr_debug_print_val(TCP_DEBUG, pcb->remote_ip); + LWIP_DEBUGF(TCP_DEBUG, ("\n")); + + LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: tcp_ticks %"U32_F" pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", + tcp_ticks, pcb->tmr, (u16_t)pcb->keep_cnt_sent)); + + p = tcp_output_alloc_header(pcb, optlen, 0, lwip_htonl(pcb->snd_nxt - 1)); + if (p == NULL) { + LWIP_DEBUGF(TCP_DEBUG, + ("tcp_keepalive: could not allocate memory for pbuf\n")); + return ERR_MEM; + } + tcp_output_fill_options(pcb, p, 0, optlen); + err = tcp_output_control_segment(pcb, p, &pcb->local_ip, &pcb->remote_ip); + + LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: seqno %"U32_F" ackno %"U32_F" err %d.\n", + pcb->snd_nxt - 1, pcb->rcv_nxt, (int)err)); + return err; +} + +/** + * Send persist timer zero-window probes to keep a connection active + * when a window update is lost. + * + * Called by tcp_slowtmr() + * + * @param pcb the tcp_pcb for which to send a zero-window probe packet + */ +err_t +tcp_zero_window_probe(struct tcp_pcb *pcb) +{ + err_t err; + struct pbuf *p; + struct tcp_hdr *tcphdr; + struct tcp_seg *seg; + u16_t len; + u8_t is_fin; + u32_t snd_nxt; + u8_t optlen = LWIP_TCP_OPT_LENGTH_SEGMENT(0, pcb); + + LWIP_ASSERT("tcp_zero_window_probe: invalid pcb", pcb != NULL); + + LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: sending ZERO WINDOW probe to ")); + ip_addr_debug_print_val(TCP_DEBUG, pcb->remote_ip); + LWIP_DEBUGF(TCP_DEBUG, ("\n")); + + LWIP_DEBUGF(TCP_DEBUG, + ("tcp_zero_window_probe: tcp_ticks %"U32_F + " pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", + tcp_ticks, pcb->tmr, (u16_t)pcb->keep_cnt_sent)); + + /* Only consider unsent, persist timer should be off when there is data in-flight */ + seg = pcb->unsent; + if (seg == NULL) { + /* Not expected, persist timer should be off when the send buffer is empty */ + return ERR_OK; + } + + /* increment probe count. NOTE: we record probe even if it fails + to actually transmit due to an error. This ensures memory exhaustion/ + routing problem doesn't leave a zero-window pcb as an indefinite zombie. + RTO mechanism has similar behavior, see pcb->nrtx */ + if (pcb->persist_probe < 0xFF) { + ++pcb->persist_probe; + } + + is_fin = ((TCPH_FLAGS(seg->tcphdr) & TCP_FIN) != 0) && (seg->len == 0); + /* we want to send one seqno: either FIN or data (no options) */ + len = is_fin ? 0 : 1; + + p = tcp_output_alloc_header(pcb, optlen, len, seg->tcphdr->seqno); + if (p == NULL) { + LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: no memory for pbuf\n")); + return ERR_MEM; + } + tcphdr = (struct tcp_hdr *)p->payload; + + if (is_fin) { + /* FIN segment, no data */ + TCPH_FLAGS_SET(tcphdr, TCP_ACK | TCP_FIN); + } else { + /* Data segment, copy in one byte from the head of the unacked queue */ + char *d = ((char *)p->payload + TCP_HLEN); + /* Depending on whether the segment has already been sent (unacked) or not + (unsent), seg->p->payload points to the IP header or TCP header. + Ensure we copy the first TCP data byte: */ + pbuf_copy_partial(seg->p, d, 1, seg->p->tot_len - seg->len); + } + + /* The byte may be acknowledged without the window being opened. */ + snd_nxt = lwip_ntohl(seg->tcphdr->seqno) + 1; + if (TCP_SEQ_LT(pcb->snd_nxt, snd_nxt)) { + pcb->snd_nxt = snd_nxt; + } + tcp_output_fill_options(pcb, p, 0, optlen); + + err = tcp_output_control_segment(pcb, p, &pcb->local_ip, &pcb->remote_ip); + + LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: seqno %"U32_F + " ackno %"U32_F" err %d.\n", + pcb->snd_nxt - 1, pcb->rcv_nxt, (int)err)); + return err; +} +#endif /* LWIP_TCP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/timeouts.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/timeouts.c new file mode 100644 index 000000000..c3431e89c --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/timeouts.c @@ -0,0 +1,451 @@ +/** + * @file + * Stack-internal timers implementation. + * This file includes timer callbacks for stack-internal timers as well as + * functions to set up or stop timers and check for expired timers. + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * Simon Goldschmidt + * + */ + +#include "lwip/opt.h" + +#include "lwip/timeouts.h" +#include "lwip/priv/tcp_priv.h" + +#include "lwip/def.h" +#include "lwip/memp.h" +#include "lwip/priv/tcpip_priv.h" + +#include "lwip/ip4_frag.h" +#include "lwip/etharp.h" +#include "lwip/dhcp.h" +#include "lwip/autoip.h" +#include "lwip/igmp.h" +#include "lwip/dns.h" +#include "lwip/nd6.h" +#include "lwip/ip6_frag.h" +#include "lwip/mld6.h" +#include "lwip/dhcp6.h" +#include "lwip/sys.h" +#include "lwip/pbuf.h" + +#if LWIP_DEBUG_TIMERNAMES +#define HANDLER(x) x, #x +#else /* LWIP_DEBUG_TIMERNAMES */ +#define HANDLER(x) x +#endif /* LWIP_DEBUG_TIMERNAMES */ + +#define LWIP_MAX_TIMEOUT 0x7fffffff + +/* Check if timer's expiry time is greater than time and care about u32_t wraparounds */ +#define TIME_LESS_THAN(t, compare_to) ( (((u32_t)((t)-(compare_to))) > LWIP_MAX_TIMEOUT) ? 1 : 0 ) + +/** This array contains all stack-internal cyclic timers. To get the number of + * timers, use LWIP_ARRAYSIZE() */ +const struct lwip_cyclic_timer lwip_cyclic_timers[] = { +#if LWIP_TCP + /* The TCP timer is a special case: it does not have to run always and + is triggered to start from TCP using tcp_timer_needed() */ + {TCP_TMR_INTERVAL, HANDLER(tcp_tmr)}, +#endif /* LWIP_TCP */ +#if LWIP_IPV4 +#if IP_REASSEMBLY + {IP_TMR_INTERVAL, HANDLER(ip_reass_tmr)}, +#endif /* IP_REASSEMBLY */ +#if LWIP_ARP + {ARP_TMR_INTERVAL, HANDLER(etharp_tmr)}, +#endif /* LWIP_ARP */ +#if LWIP_DHCP + {DHCP_COARSE_TIMER_MSECS, HANDLER(dhcp_coarse_tmr)}, + {DHCP_FINE_TIMER_MSECS, HANDLER(dhcp_fine_tmr)}, +#endif /* LWIP_DHCP */ +#if LWIP_AUTOIP + {AUTOIP_TMR_INTERVAL, HANDLER(autoip_tmr)}, +#endif /* LWIP_AUTOIP */ +#if LWIP_IGMP + {IGMP_TMR_INTERVAL, HANDLER(igmp_tmr)}, +#endif /* LWIP_IGMP */ +#endif /* LWIP_IPV4 */ +#if LWIP_DNS + {DNS_TMR_INTERVAL, HANDLER(dns_tmr)}, +#endif /* LWIP_DNS */ +#if LWIP_IPV6 + {ND6_TMR_INTERVAL, HANDLER(nd6_tmr)}, +#if LWIP_IPV6_REASS + {IP6_REASS_TMR_INTERVAL, HANDLER(ip6_reass_tmr)}, +#endif /* LWIP_IPV6_REASS */ +#if LWIP_IPV6_MLD + {MLD6_TMR_INTERVAL, HANDLER(mld6_tmr)}, +#endif /* LWIP_IPV6_MLD */ +#if LWIP_IPV6_DHCP6 + {DHCP6_TIMER_MSECS, HANDLER(dhcp6_tmr)}, +#endif /* LWIP_IPV6_DHCP6 */ +#endif /* LWIP_IPV6 */ +}; +const int lwip_num_cyclic_timers = LWIP_ARRAYSIZE(lwip_cyclic_timers); + +#if LWIP_TIMERS && !LWIP_TIMERS_CUSTOM + +/** The one and only timeout list */ +static struct sys_timeo *next_timeout; + +static u32_t current_timeout_due_time; + +#if LWIP_TESTMODE +struct sys_timeo** +sys_timeouts_get_next_timeout(void) +{ + return &next_timeout; +} +#endif + +#if LWIP_TCP +/** global variable that shows if the tcp timer is currently scheduled or not */ +static int tcpip_tcp_timer_active; + +/** + * Timer callback function that calls tcp_tmr() and reschedules itself. + * + * @param arg unused argument + */ +static void +tcpip_tcp_timer(void *arg) +{ + LWIP_UNUSED_ARG(arg); + + /* call TCP timer handler */ + tcp_tmr(); + /* timer still needed? */ + if (tcp_active_pcbs || tcp_tw_pcbs) { + /* restart timer */ + sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL); + } else { + /* disable timer */ + tcpip_tcp_timer_active = 0; + } +} + +/** + * Called from TCP_REG when registering a new PCB: + * the reason is to have the TCP timer only running when + * there are active (or time-wait) PCBs. + */ +void +tcp_timer_needed(void) +{ + LWIP_ASSERT_CORE_LOCKED(); + + /* timer is off but needed again? */ + if (!tcpip_tcp_timer_active && (tcp_active_pcbs || tcp_tw_pcbs)) { + /* enable and start timer */ + tcpip_tcp_timer_active = 1; + sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL); + } +} +#endif /* LWIP_TCP */ + +static void +#if LWIP_DEBUG_TIMERNAMES +sys_timeout_abs(u32_t abs_time, sys_timeout_handler handler, void *arg, const char *handler_name) +#else /* LWIP_DEBUG_TIMERNAMES */ +sys_timeout_abs(u32_t abs_time, sys_timeout_handler handler, void *arg) +#endif +{ + struct sys_timeo *timeout, *t; + + timeout = (struct sys_timeo *)memp_malloc(MEMP_SYS_TIMEOUT); + if (timeout == NULL) { + LWIP_ASSERT("sys_timeout: timeout != NULL, pool MEMP_SYS_TIMEOUT is empty", timeout != NULL); + return; + } + + timeout->next = NULL; + timeout->h = handler; + timeout->arg = arg; + timeout->time = abs_time; + +#if LWIP_DEBUG_TIMERNAMES + timeout->handler_name = handler_name; + LWIP_DEBUGF(TIMERS_DEBUG, ("sys_timeout: %p abs_time=%"U32_F" handler=%s arg=%p\n", + (void *)timeout, abs_time, handler_name, (void *)arg)); +#endif /* LWIP_DEBUG_TIMERNAMES */ + + if (next_timeout == NULL) { + next_timeout = timeout; + return; + } + if (TIME_LESS_THAN(timeout->time, next_timeout->time)) { + timeout->next = next_timeout; + next_timeout = timeout; + } else { + for (t = next_timeout; t != NULL; t = t->next) { + if ((t->next == NULL) || TIME_LESS_THAN(timeout->time, t->next->time)) { + timeout->next = t->next; + t->next = timeout; + break; + } + } + } +} + +/** + * Timer callback function that calls cyclic->handler() and reschedules itself. + * + * @param arg unused argument + */ +#if !LWIP_TESTMODE +static +#endif +void +lwip_cyclic_timer(void *arg) +{ + u32_t now; + u32_t next_timeout_time; + const struct lwip_cyclic_timer *cyclic = (const struct lwip_cyclic_timer *)arg; + +#if LWIP_DEBUG_TIMERNAMES + LWIP_DEBUGF(TIMERS_DEBUG, ("tcpip: %s()\n", cyclic->handler_name)); +#endif + cyclic->handler(); + + now = sys_now(); + next_timeout_time = (u32_t)(current_timeout_due_time + cyclic->interval_ms); /* overflow handled by TIME_LESS_THAN macro */ + if (TIME_LESS_THAN(next_timeout_time, now)) { + /* timer would immediately expire again -> "overload" -> restart without any correction */ +#if LWIP_DEBUG_TIMERNAMES + sys_timeout_abs((u32_t)(now + cyclic->interval_ms), lwip_cyclic_timer, arg, cyclic->handler_name); +#else + sys_timeout_abs((u32_t)(now + cyclic->interval_ms), lwip_cyclic_timer, arg); +#endif + + } else { + /* correct cyclic interval with handler execution delay and sys_check_timeouts jitter */ +#if LWIP_DEBUG_TIMERNAMES + sys_timeout_abs(next_timeout_time, lwip_cyclic_timer, arg, cyclic->handler_name); +#else + sys_timeout_abs(next_timeout_time, lwip_cyclic_timer, arg); +#endif + } +} + +/** Initialize this module */ +void sys_timeouts_init(void) +{ + size_t i; + /* tcp_tmr() at index 0 is started on demand */ + for (i = (LWIP_TCP ? 1 : 0); i < LWIP_ARRAYSIZE(lwip_cyclic_timers); i++) { + /* we have to cast via size_t to get rid of const warning + (this is OK as cyclic_timer() casts back to const* */ + sys_timeout(lwip_cyclic_timers[i].interval_ms, lwip_cyclic_timer, LWIP_CONST_CAST(void *, &lwip_cyclic_timers[i])); + } +} + +/** + * Create a one-shot timer (aka timeout). Timeouts are processed in the + * following cases: + * - while waiting for a message using sys_timeouts_mbox_fetch() + * - by calling sys_check_timeouts() (NO_SYS==1 only) + * + * @param msecs time in milliseconds after that the timer should expire + * @param handler callback function to call when msecs have elapsed + * @param arg argument to pass to the callback function + */ +#if LWIP_DEBUG_TIMERNAMES +void +sys_timeout_debug(u32_t msecs, sys_timeout_handler handler, void *arg, const char *handler_name) +#else /* LWIP_DEBUG_TIMERNAMES */ +void +sys_timeout(u32_t msecs, sys_timeout_handler handler, void *arg) +#endif /* LWIP_DEBUG_TIMERNAMES */ +{ + u32_t next_timeout_time; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ASSERT("Timeout time too long, max is LWIP_UINT32_MAX/4 msecs", msecs <= (LWIP_UINT32_MAX / 4)); + + next_timeout_time = (u32_t)(sys_now() + msecs); /* overflow handled by TIME_LESS_THAN macro */ + +#if LWIP_DEBUG_TIMERNAMES + sys_timeout_abs(next_timeout_time, handler, arg, handler_name); +#else + sys_timeout_abs(next_timeout_time, handler, arg); +#endif +} + +/** + * Go through timeout list (for this task only) and remove the first matching + * entry (subsequent entries remain untouched), even though the timeout has not + * triggered yet. + * + * @param handler callback function that would be called by the timeout + * @param arg callback argument that would be passed to handler +*/ +void +sys_untimeout(sys_timeout_handler handler, void *arg) +{ + struct sys_timeo *prev_t, *t; + + LWIP_ASSERT_CORE_LOCKED(); + + if (next_timeout == NULL) { + return; + } + + for (t = next_timeout, prev_t = NULL; t != NULL; prev_t = t, t = t->next) { + if ((t->h == handler) && (t->arg == arg)) { + /* We have a match */ + /* Unlink from previous in list */ + if (prev_t == NULL) { + next_timeout = t->next; + } else { + prev_t->next = t->next; + } + memp_free(MEMP_SYS_TIMEOUT, t); + return; + } + } + return; +} + +/** + * @ingroup lwip_nosys + * Handle timeouts for NO_SYS==1 (i.e. without using + * tcpip_thread/sys_timeouts_mbox_fetch(). Uses sys_now() to call timeout + * handler functions when timeouts expire. + * + * Must be called periodically from your main loop. + */ +void +sys_check_timeouts(void) +{ + u32_t now; + + LWIP_ASSERT_CORE_LOCKED(); + + /* Process only timers expired at the start of the function. */ + now = sys_now(); + + do { + struct sys_timeo *tmptimeout; + sys_timeout_handler handler; + void *arg; + + PBUF_CHECK_FREE_OOSEQ(); + + tmptimeout = next_timeout; + if (tmptimeout == NULL) { + return; + } + + if (TIME_LESS_THAN(now, tmptimeout->time)) { + return; + } + + /* Timeout has expired */ + next_timeout = tmptimeout->next; + handler = tmptimeout->h; + arg = tmptimeout->arg; + current_timeout_due_time = tmptimeout->time; +#if LWIP_DEBUG_TIMERNAMES + if (handler != NULL) { + LWIP_DEBUGF(TIMERS_DEBUG, ("sct calling h=%s t=%"U32_F" arg=%p\n", + tmptimeout->handler_name, sys_now() - tmptimeout->time, arg)); + } +#endif /* LWIP_DEBUG_TIMERNAMES */ + memp_free(MEMP_SYS_TIMEOUT, tmptimeout); + if (handler != NULL) { + handler(arg); + } + LWIP_TCPIP_THREAD_ALIVE(); + + /* Repeat until all expired timers have been called */ + } while (1); +} + +/** Rebase the timeout times to the current time. + * This is necessary if sys_check_timeouts() hasn't been called for a long + * time (e.g. while saving energy) to prevent all timer functions of that + * period being called. + */ +void +sys_restart_timeouts(void) +{ + u32_t now; + u32_t base; + struct sys_timeo *t; + + if (next_timeout == NULL) { + return; + } + + now = sys_now(); + base = next_timeout->time; + + for (t = next_timeout; t != NULL; t = t->next) { + t->time = (t->time - base) + now; + } +} + +/** Return the time left before the next timeout is due. If no timeouts are + * enqueued, returns 0xffffffff + */ +u32_t +sys_timeouts_sleeptime(void) +{ + u32_t now; + + LWIP_ASSERT_CORE_LOCKED(); + + if (next_timeout == NULL) { + return SYS_TIMEOUTS_SLEEPTIME_INFINITE; + } + now = sys_now(); + if (TIME_LESS_THAN(next_timeout->time, now)) { + return 0; + } else { + u32_t ret = (u32_t)(next_timeout->time - now); + LWIP_ASSERT("invalid sleeptime", ret <= LWIP_MAX_TIMEOUT); + return ret; + } +} + +#else /* LWIP_TIMERS && !LWIP_TIMERS_CUSTOM */ +/* Satisfy the TCP code which calls this function */ +void +tcp_timer_needed(void) +{ +} +#endif /* LWIP_TIMERS && !LWIP_TIMERS_CUSTOM */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/core/udp.c b/BLE_EXAMPLE/src/main/cpp/lwip/core/udp.c new file mode 100644 index 000000000..4f45f8d70 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/core/udp.c @@ -0,0 +1,1314 @@ +/** + * @file + * User Datagram Protocol module\n + * The code for the User Datagram Protocol UDP & UDPLite (RFC 3828).\n + * See also @ref udp_raw + * + * @defgroup udp_raw UDP + * @ingroup callbackstyle_api + * User Datagram Protocol module\n + * @see @ref api + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +/* @todo Check the use of '(struct udp_pcb).chksum_len_rx'! + */ + +#include "lwip/opt.h" + +#if LWIP_UDP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/udp.h" +#include "lwip/def.h" +#include "lwip/memp.h" +#include "lwip/inet_chksum.h" +#include "lwip/ip_addr.h" +#include "lwip/ip6.h" +#include "lwip/ip6_addr.h" +#include "lwip/netif.h" +#include "lwip/icmp.h" +#include "lwip/icmp6.h" +#include "lwip/stats.h" +#include "lwip/snmp.h" +#include "lwip/dhcp.h" + +#include + +#ifndef UDP_LOCAL_PORT_RANGE_START +/* From http://www.iana.org/assignments/port-numbers: + "The Dynamic and/or Private Ports are those from 49152 through 65535" */ +#define UDP_LOCAL_PORT_RANGE_START 0xc000 +#define UDP_LOCAL_PORT_RANGE_END 0xffff +#define UDP_ENSURE_LOCAL_PORT_RANGE(port) ((u16_t)(((port) & (u16_t)~UDP_LOCAL_PORT_RANGE_START) + UDP_LOCAL_PORT_RANGE_START)) +#endif + +/* last local UDP port */ +static u16_t udp_port = UDP_LOCAL_PORT_RANGE_START; + +/* The list of UDP PCBs */ +/* exported in udp.h (was static) */ +struct udp_pcb *udp_pcbs; + +/** + * Initialize this module. + */ +void +udp_init(void) +{ +#ifdef LWIP_RAND + udp_port = UDP_ENSURE_LOCAL_PORT_RANGE(LWIP_RAND()); +#endif /* LWIP_RAND */ +} + +/** + * Allocate a new local UDP port. + * + * @return a new (free) local UDP port number + */ +static u16_t +udp_new_port(void) +{ + u16_t n = 0; + struct udp_pcb *pcb; + +again: + if (udp_port++ == UDP_LOCAL_PORT_RANGE_END) { + udp_port = UDP_LOCAL_PORT_RANGE_START; + } + /* Check all PCBs. */ + for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) { + if (pcb->local_port == udp_port) { + if (++n > (UDP_LOCAL_PORT_RANGE_END - UDP_LOCAL_PORT_RANGE_START)) { + return 0; + } + goto again; + } + } + return udp_port; +} + +/** Common code to see if the current input packet matches the pcb + * (current input packet is accessed via ip(4/6)_current_* macros) + * + * @param pcb pcb to check + * @param inp network interface on which the datagram was received (only used for IPv4) + * @param broadcast 1 if his is an IPv4 broadcast (global or subnet-only), 0 otherwise (only used for IPv4) + * @return 1 on match, 0 otherwise + */ +static u8_t +udp_input_local_match(struct udp_pcb *pcb, struct netif *inp, u8_t broadcast) +{ + LWIP_UNUSED_ARG(inp); /* in IPv6 only case */ + LWIP_UNUSED_ARG(broadcast); /* in IPv6 only case */ + + LWIP_ASSERT("udp_input_local_match: invalid pcb", pcb != NULL); + LWIP_ASSERT("udp_input_local_match: invalid netif", inp != NULL); + + /* check if PCB is bound to specific netif */ + if ((pcb->netif_idx != NETIF_NO_INDEX) && + (pcb->netif_idx != netif_get_index(ip_data.current_input_netif))) { + return 0; + } + + /* Dual-stack: PCBs listening to any IP type also listen to any IP address */ + if (IP_IS_ANY_TYPE_VAL(pcb->local_ip)) { +#if LWIP_IPV4 && IP_SOF_BROADCAST_RECV + if ((broadcast != 0) && !ip_get_option(pcb, SOF_BROADCAST)) { + return 0; + } +#endif /* LWIP_IPV4 && IP_SOF_BROADCAST_RECV */ + return 1; + } + + /* Only need to check PCB if incoming IP version matches PCB IP version */ + if (IP_ADDR_PCB_VERSION_MATCH_EXACT(pcb, ip_current_dest_addr())) { +#if LWIP_IPV4 + /* Special case: IPv4 broadcast: all or broadcasts in my subnet + * Note: broadcast variable can only be 1 if it is an IPv4 broadcast */ + if (broadcast != 0) { +#if IP_SOF_BROADCAST_RECV + if (ip_get_option(pcb, SOF_BROADCAST)) +#endif /* IP_SOF_BROADCAST_RECV */ + { + if (ip4_addr_isany(ip_2_ip4(&pcb->local_ip)) || + ((ip4_current_dest_addr()->addr == IPADDR_BROADCAST)) || + ip4_addr_netcmp(ip_2_ip4(&pcb->local_ip), ip4_current_dest_addr(), netif_ip4_netmask(inp))) { + return 1; + } + } + } else +#endif /* LWIP_IPV4 */ + /* Handle IPv4 and IPv6: all or exact match */ + if (ip_addr_isany(&pcb->local_ip) || ip_addr_cmp(&pcb->local_ip, ip_current_dest_addr())) { + return 1; + } + } + + return 0; +} + +/** + * Process an incoming UDP datagram. + * + * Given an incoming UDP datagram (as a chain of pbufs) this function + * finds a corresponding UDP PCB and hands over the pbuf to the pcbs + * recv function. If no pcb is found or the datagram is incorrect, the + * pbuf is freed. + * + * @param p pbuf to be demultiplexed to a UDP PCB (p->payload pointing to the UDP header) + * @param inp network interface on which the datagram was received. + * + */ +void +udp_input(struct pbuf *p, struct netif *inp) +{ + struct udp_hdr *udphdr; + struct udp_pcb *pcb, *prev; + struct udp_pcb *uncon_pcb; + u16_t src, dest; + u8_t broadcast; + u8_t for_us = 0; + + LWIP_UNUSED_ARG(inp); + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ASSERT("udp_input: invalid pbuf", p != NULL); + LWIP_ASSERT("udp_input: invalid netif", inp != NULL); + + PERF_START; + + UDP_STATS_INC(udp.recv); + + /* Check minimum length (UDP header) */ + if (p->len < UDP_HLEN) { + /* drop short packets */ + LWIP_DEBUGF(UDP_DEBUG, + ("udp_input: short UDP datagram (%"U16_F" bytes) discarded\n", p->tot_len)); + UDP_STATS_INC(udp.lenerr); + UDP_STATS_INC(udp.drop); + MIB2_STATS_INC(mib2.udpinerrors); + pbuf_free(p); + goto end; + } + + udphdr = (struct udp_hdr *)p->payload; + + /* is broadcast packet ? */ + broadcast = ip_addr_isbroadcast(ip_current_dest_addr(), ip_current_netif()); + + LWIP_DEBUGF(UDP_DEBUG, ("udp_input: received datagram of length %"U16_F"\n", p->tot_len)); + + /* convert src and dest ports to host byte order */ + src = lwip_ntohs(udphdr->src); + dest = lwip_ntohs(udphdr->dest); + + udp_debug_print(udphdr); + + /* print the UDP source and destination */ + LWIP_DEBUGF(UDP_DEBUG, ("udp (")); + ip_addr_debug_print_val(UDP_DEBUG, *ip_current_dest_addr()); + LWIP_DEBUGF(UDP_DEBUG, (", %"U16_F") <-- (", lwip_ntohs(udphdr->dest))); + ip_addr_debug_print_val(UDP_DEBUG, *ip_current_src_addr()); + LWIP_DEBUGF(UDP_DEBUG, (", %"U16_F")\n", lwip_ntohs(udphdr->src))); + + pcb = NULL; + prev = NULL; + uncon_pcb = NULL; + /* Iterate through the UDP pcb list for a matching pcb. + * 'Perfect match' pcbs (connected to the remote port & ip address) are + * preferred. If no perfect match is found, the first unconnected pcb that + * matches the local port and ip address gets the datagram. */ + for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) { + /* print the PCB local and remote address */ + LWIP_DEBUGF(UDP_DEBUG, ("pcb (")); + ip_addr_debug_print_val(UDP_DEBUG, pcb->local_ip); + LWIP_DEBUGF(UDP_DEBUG, (", %"U16_F") <-- (", pcb->local_port)); + ip_addr_debug_print_val(UDP_DEBUG, pcb->remote_ip); + LWIP_DEBUGF(UDP_DEBUG, (", %"U16_F")\n", pcb->remote_port)); + + /* compare PCB local addr+port to UDP destination addr+port */ + if ((pcb->local_port == dest) && + (udp_input_local_match(pcb, inp, broadcast) != 0)) { + if ((pcb->flags & UDP_FLAGS_CONNECTED) == 0) { + if (uncon_pcb == NULL) { + /* the first unconnected matching PCB */ + uncon_pcb = pcb; +#if LWIP_IPV4 + } else if (broadcast && ip4_current_dest_addr()->addr == IPADDR_BROADCAST) { + /* global broadcast address (only valid for IPv4; match was checked before) */ + if (!IP_IS_V4_VAL(uncon_pcb->local_ip) || !ip4_addr_cmp(ip_2_ip4(&uncon_pcb->local_ip), netif_ip4_addr(inp))) { + /* uncon_pcb does not match the input netif, check this pcb */ + if (IP_IS_V4_VAL(pcb->local_ip) && ip4_addr_cmp(ip_2_ip4(&pcb->local_ip), netif_ip4_addr(inp))) { + /* better match */ + uncon_pcb = pcb; + } + } +#endif /* LWIP_IPV4 */ + } +#if SO_REUSE + else if (!ip_addr_isany(&pcb->local_ip)) { + /* prefer specific IPs over catch-all */ + uncon_pcb = pcb; + } +#endif /* SO_REUSE */ + } + + /* compare PCB remote addr+port to UDP source addr+port */ + if ((pcb->remote_port == src) && + (ip_addr_isany_val(pcb->remote_ip) || + ip_addr_cmp(&pcb->remote_ip, ip_current_src_addr()))) { + /* the first fully matching PCB */ + if (prev != NULL) { + /* move the pcb to the front of udp_pcbs so that is + found faster next time */ + prev->next = pcb->next; + pcb->next = udp_pcbs; + udp_pcbs = pcb; + } else { + UDP_STATS_INC(udp.cachehit); + } + break; + } + } + + prev = pcb; + } + /* no fully matching pcb found? then look for an unconnected pcb */ + if (pcb == NULL) { + pcb = uncon_pcb; + } + + /* Check checksum if this is a match or if it was directed at us. */ + if (pcb != NULL) { + for_us = 1; + } else { +#if LWIP_IPV6 + if (ip_current_is_v6()) { + for_us = netif_get_ip6_addr_match(inp, ip6_current_dest_addr()) >= 0; + } +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 + if (!ip_current_is_v6()) { + for_us = ip4_addr_cmp(netif_ip4_addr(inp), ip4_current_dest_addr()); + } +#endif /* LWIP_IPV4 */ + } + + if (for_us) { + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_input: calculating checksum\n")); +#if CHECKSUM_CHECK_UDP + IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_CHECK_UDP) { +#if LWIP_UDPLITE + if (ip_current_header_proto() == IP_PROTO_UDPLITE) { + /* Do the UDP Lite checksum */ + u16_t chklen = lwip_ntohs(udphdr->len); + if (chklen < sizeof(struct udp_hdr)) { + if (chklen == 0) { + /* For UDP-Lite, checksum length of 0 means checksum + over the complete packet (See RFC 3828 chap. 3.1) */ + chklen = p->tot_len; + } else { + /* At least the UDP-Lite header must be covered by the + checksum! (Again, see RFC 3828 chap. 3.1) */ + goto chkerr; + } + } + if (ip_chksum_pseudo_partial(p, IP_PROTO_UDPLITE, + p->tot_len, chklen, + ip_current_src_addr(), ip_current_dest_addr()) != 0) { + goto chkerr; + } + } else +#endif /* LWIP_UDPLITE */ + { + if (udphdr->chksum != 0) { + if (ip_chksum_pseudo(p, IP_PROTO_UDP, p->tot_len, + ip_current_src_addr(), + ip_current_dest_addr()) != 0) { + goto chkerr; + } + } + } + } +#endif /* CHECKSUM_CHECK_UDP */ + if (pbuf_remove_header(p, UDP_HLEN)) { + /* Can we cope with this failing? Just assert for now */ + LWIP_ASSERT("pbuf_remove_header failed\n", 0); + UDP_STATS_INC(udp.drop); + MIB2_STATS_INC(mib2.udpinerrors); + pbuf_free(p); + goto end; + } + + if (pcb != NULL) { + MIB2_STATS_INC(mib2.udpindatagrams); +#if SO_REUSE && SO_REUSE_RXTOALL + if (ip_get_option(pcb, SOF_REUSEADDR) && + (broadcast || ip_addr_ismulticast(ip_current_dest_addr()))) { + /* pass broadcast- or multicast packets to all multicast pcbs + if SOF_REUSEADDR is set on the first match */ + struct udp_pcb *mpcb; + for (mpcb = udp_pcbs; mpcb != NULL; mpcb = mpcb->next) { + if (mpcb != pcb) { + /* compare PCB local addr+port to UDP destination addr+port */ + if ((mpcb->local_port == dest) && + (udp_input_local_match(mpcb, inp, broadcast) != 0)) { + /* pass a copy of the packet to all local matches */ + if (mpcb->recv != NULL) { + struct pbuf *q; + q = pbuf_clone(PBUF_RAW, PBUF_POOL, p); + if (q != NULL) { + mpcb->recv(mpcb->recv_arg, mpcb, q, ip_current_src_addr(), src); + } + } + } + } + } + } +#endif /* SO_REUSE && SO_REUSE_RXTOALL */ + /* callback */ + if (pcb->recv != NULL) { + /* now the recv function is responsible for freeing p */ + pcb->recv(pcb->recv_arg, pcb, p, ip_current_src_addr(), src); + } else { + /* no recv function registered? then we have to free the pbuf! */ + pbuf_free(p); + goto end; + } + } else { + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_input: not for us.\n")); + +#if LWIP_ICMP || LWIP_ICMP6 + /* No match was found, send ICMP destination port unreachable unless + destination address was broadcast/multicast. */ + if (!broadcast && !ip_addr_ismulticast(ip_current_dest_addr())) { + /* move payload pointer back to ip header */ + pbuf_header_force(p, (s16_t)(ip_current_header_tot_len() + UDP_HLEN)); + icmp_port_unreach(ip_current_is_v6(), p); + } +#endif /* LWIP_ICMP || LWIP_ICMP6 */ + UDP_STATS_INC(udp.proterr); + UDP_STATS_INC(udp.drop); + MIB2_STATS_INC(mib2.udpnoports); + pbuf_free(p); + } + } else { + pbuf_free(p); + } +end: + PERF_STOP("udp_input"); + return; +#if CHECKSUM_CHECK_UDP +chkerr: + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("udp_input: UDP (or UDP Lite) datagram discarded due to failing checksum\n")); + UDP_STATS_INC(udp.chkerr); + UDP_STATS_INC(udp.drop); + MIB2_STATS_INC(mib2.udpinerrors); + pbuf_free(p); + PERF_STOP("udp_input"); +#endif /* CHECKSUM_CHECK_UDP */ +} + +/** + * @ingroup udp_raw + * Sends the pbuf p using UDP. The pbuf is not deallocated. + * + * + * @param pcb UDP PCB used to send the data. + * @param p chain of pbuf's to be sent. + * + * The datagram will be sent to the current remote_ip & remote_port + * stored in pcb. If the pcb is not bound to a port, it will + * automatically be bound to a random port. + * + * @return lwIP error code. + * - ERR_OK. Successful. No error occurred. + * - ERR_MEM. Out of memory. + * - ERR_RTE. Could not find route to destination address. + * - ERR_VAL. No PCB or PCB is dual-stack + * - More errors could be returned by lower protocol layers. + * + * @see udp_disconnect() udp_sendto() + */ +err_t +udp_send(struct udp_pcb *pcb, struct pbuf *p) +{ + LWIP_ERROR("udp_send: invalid pcb", pcb != NULL, return ERR_ARG); + LWIP_ERROR("udp_send: invalid pbuf", p != NULL, return ERR_ARG); + + if (IP_IS_ANY_TYPE_VAL(pcb->remote_ip)) { + return ERR_VAL; + } + + /* send to the packet using remote ip and port stored in the pcb */ + return udp_sendto(pcb, p, &pcb->remote_ip, pcb->remote_port); +} + +#if LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP +/** @ingroup udp_raw + * Same as udp_send() but with checksum + */ +err_t +udp_send_chksum(struct udp_pcb *pcb, struct pbuf *p, + u8_t have_chksum, u16_t chksum) +{ + LWIP_ERROR("udp_send_chksum: invalid pcb", pcb != NULL, return ERR_ARG); + LWIP_ERROR("udp_send_chksum: invalid pbuf", p != NULL, return ERR_ARG); + + if (IP_IS_ANY_TYPE_VAL(pcb->remote_ip)) { + return ERR_VAL; + } + + /* send to the packet using remote ip and port stored in the pcb */ + return udp_sendto_chksum(pcb, p, &pcb->remote_ip, pcb->remote_port, + have_chksum, chksum); +} +#endif /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ + +/** + * @ingroup udp_raw + * Send data to a specified address using UDP. + * + * @param pcb UDP PCB used to send the data. + * @param p chain of pbuf's to be sent. + * @param dst_ip Destination IP address. + * @param dst_port Destination UDP port. + * + * dst_ip & dst_port are expected to be in the same byte order as in the pcb. + * + * If the PCB already has a remote address association, it will + * be restored after the data is sent. + * + * @return lwIP error code (@see udp_send for possible error codes) + * + * @see udp_disconnect() udp_send() + */ +err_t +udp_sendto(struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port) +{ +#if LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP + return udp_sendto_chksum(pcb, p, dst_ip, dst_port, 0, 0); +} + +/** @ingroup udp_raw + * Same as udp_sendto(), but with checksum */ +err_t +udp_sendto_chksum(struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, + u16_t dst_port, u8_t have_chksum, u16_t chksum) +{ +#endif /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ + struct netif *netif; + + LWIP_ERROR("udp_sendto: invalid pcb", pcb != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto: invalid pbuf", p != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto: invalid dst_ip", dst_ip != NULL, return ERR_ARG); + + if (!IP_ADDR_PCB_VERSION_MATCH(pcb, dst_ip)) { + return ERR_VAL; + } + + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_send\n")); + + if (pcb->netif_idx != NETIF_NO_INDEX) { + netif = netif_get_by_index(pcb->netif_idx); + } else { +#if LWIP_MULTICAST_TX_OPTIONS + netif = NULL; + if (ip_addr_ismulticast(dst_ip)) { + /* For IPv6, the interface to use for packets with a multicast destination + * is specified using an interface index. The same approach may be used for + * IPv4 as well, in which case it overrides the IPv4 multicast override + * address below. Here we have to look up the netif by going through the + * list, but by doing so we skip a route lookup. If the interface index has + * gone stale, we fall through and do the regular route lookup after all. */ + if (pcb->mcast_ifindex != NETIF_NO_INDEX) { + netif = netif_get_by_index(pcb->mcast_ifindex); + } +#if LWIP_IPV4 + else +#if LWIP_IPV6 + if (IP_IS_V4(dst_ip)) +#endif /* LWIP_IPV6 */ + { + /* IPv4 does not use source-based routing by default, so we use an + administratively selected interface for multicast by default. + However, this can be overridden by setting an interface address + in pcb->mcast_ip4 that is used for routing. If this routing lookup + fails, we try regular routing as though no override was set. */ + if (!ip4_addr_isany_val(pcb->mcast_ip4) && + !ip4_addr_cmp(&pcb->mcast_ip4, IP4_ADDR_BROADCAST)) { + netif = ip4_route_src(ip_2_ip4(&pcb->local_ip), &pcb->mcast_ip4); + } + } +#endif /* LWIP_IPV4 */ + } + + if (netif == NULL) +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + { + /* find the outgoing network interface for this packet */ + netif = ip_route(&pcb->local_ip, dst_ip); + } + } + + /* no outgoing network interface could be found? */ + if (netif == NULL) { + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: No route to ")); + ip_addr_debug_print(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, dst_ip); + LWIP_DEBUGF(UDP_DEBUG, ("\n")); + UDP_STATS_INC(udp.rterr); + return ERR_RTE; + } +#if LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP + return udp_sendto_if_chksum(pcb, p, dst_ip, dst_port, netif, have_chksum, chksum); +#else /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ + return udp_sendto_if(pcb, p, dst_ip, dst_port, netif); +#endif /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ +} + +/** + * @ingroup udp_raw + * Send data to a specified address using UDP. + * The netif used for sending can be specified. + * + * This function exists mainly for DHCP, to be able to send UDP packets + * on a netif that is still down. + * + * @param pcb UDP PCB used to send the data. + * @param p chain of pbuf's to be sent. + * @param dst_ip Destination IP address. + * @param dst_port Destination UDP port. + * @param netif the netif used for sending. + * + * dst_ip & dst_port are expected to be in the same byte order as in the pcb. + * + * @return lwIP error code (@see udp_send for possible error codes) + * + * @see udp_disconnect() udp_send() + */ +err_t +udp_sendto_if(struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port, struct netif *netif) +{ +#if LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP + return udp_sendto_if_chksum(pcb, p, dst_ip, dst_port, netif, 0, 0); +} + +/** Same as udp_sendto_if(), but with checksum */ +err_t +udp_sendto_if_chksum(struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, + u16_t dst_port, struct netif *netif, u8_t have_chksum, + u16_t chksum) +{ +#endif /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ + const ip_addr_t *src_ip; + + LWIP_ERROR("udp_sendto_if: invalid pcb", pcb != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto_if: invalid pbuf", p != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto_if: invalid dst_ip", dst_ip != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto_if: invalid netif", netif != NULL, return ERR_ARG); + + if (!IP_ADDR_PCB_VERSION_MATCH(pcb, dst_ip)) { + return ERR_VAL; + } + + /* PCB local address is IP_ANY_ADDR or multicast? */ +#if LWIP_IPV6 + if (IP_IS_V6(dst_ip)) { + if (ip6_addr_isany(ip_2_ip6(&pcb->local_ip)) || + ip6_addr_ismulticast(ip_2_ip6(&pcb->local_ip))) { + src_ip = ip6_select_source_address(netif, ip_2_ip6(dst_ip)); + if (src_ip == NULL) { + /* No suitable source address was found. */ + return ERR_RTE; + } + } else { + /* use UDP PCB local IPv6 address as source address, if still valid. */ + if (netif_get_ip6_addr_match(netif, ip_2_ip6(&pcb->local_ip)) < 0) { + /* Address isn't valid anymore. */ + return ERR_RTE; + } + src_ip = &pcb->local_ip; + } + } +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 && LWIP_IPV6 + else +#endif /* LWIP_IPV4 && LWIP_IPV6 */ +#if LWIP_IPV4 + if (ip4_addr_isany(ip_2_ip4(&pcb->local_ip)) || + ip4_addr_ismulticast(ip_2_ip4(&pcb->local_ip))) { + /* if the local_ip is any or multicast + * use the outgoing network interface IP address as source address */ + src_ip = netif_ip_addr4(netif); + } else { + /* check if UDP PCB local IP address is correct + * this could be an old address if netif->ip_addr has changed */ + if (!ip4_addr_cmp(ip_2_ip4(&(pcb->local_ip)), netif_ip4_addr(netif))) { + /* local_ip doesn't match, drop the packet */ + return ERR_RTE; + } + /* use UDP PCB local IP address as source address */ + src_ip = &pcb->local_ip; + } +#endif /* LWIP_IPV4 */ +#if LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP + return udp_sendto_if_src_chksum(pcb, p, dst_ip, dst_port, netif, have_chksum, chksum, src_ip); +#else /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ + return udp_sendto_if_src(pcb, p, dst_ip, dst_port, netif, src_ip); +#endif /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ +} + +/** @ingroup udp_raw + * Same as @ref udp_sendto_if, but with source address */ +err_t +udp_sendto_if_src(struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port, struct netif *netif, const ip_addr_t *src_ip) +{ +#if LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP + return udp_sendto_if_src_chksum(pcb, p, dst_ip, dst_port, netif, 0, 0, src_ip); +} + +/** Same as udp_sendto_if_src(), but with checksum */ +err_t +udp_sendto_if_src_chksum(struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, + u16_t dst_port, struct netif *netif, u8_t have_chksum, + u16_t chksum, const ip_addr_t *src_ip) +{ +#endif /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ + struct udp_hdr *udphdr; + err_t err; + struct pbuf *q; /* q will be sent down the stack */ + u8_t ip_proto; + u8_t ttl; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("udp_sendto_if_src: invalid pcb", pcb != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto_if_src: invalid pbuf", p != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto_if_src: invalid dst_ip", dst_ip != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto_if_src: invalid src_ip", src_ip != NULL, return ERR_ARG); + LWIP_ERROR("udp_sendto_if_src: invalid netif", netif != NULL, return ERR_ARG); + + if (!IP_ADDR_PCB_VERSION_MATCH(pcb, src_ip) || + !IP_ADDR_PCB_VERSION_MATCH(pcb, dst_ip)) { + return ERR_VAL; + } + +#if LWIP_IPV4 && IP_SOF_BROADCAST + /* broadcast filter? */ + if (!ip_get_option(pcb, SOF_BROADCAST) && +#if LWIP_IPV6 + IP_IS_V4(dst_ip) && +#endif /* LWIP_IPV6 */ + ip_addr_isbroadcast(dst_ip, netif)) { + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, + ("udp_sendto_if: SOF_BROADCAST not enabled on pcb %p\n", (void *)pcb)); + return ERR_VAL; + } +#endif /* LWIP_IPV4 && IP_SOF_BROADCAST */ + + /* if the PCB is not yet bound to a port, bind it here */ + if (pcb->local_port == 0) { + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_send: not yet bound to a port, binding now\n")); + err = udp_bind(pcb, &pcb->local_ip, pcb->local_port); + if (err != ERR_OK) { + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: forced port bind failed\n")); + return err; + } + } + + /* packet too large to add a UDP header without causing an overflow? */ + if ((u16_t)(p->tot_len + UDP_HLEN) < p->tot_len) { + return ERR_MEM; + } + /* not enough space to add an UDP header to first pbuf in given p chain? */ + if (pbuf_add_header(p, UDP_HLEN)) { + /* allocate header in a separate new pbuf */ + q = pbuf_alloc(PBUF_IP, UDP_HLEN, PBUF_RAM); + /* new header pbuf could not be allocated? */ + if (q == NULL) { + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: could not allocate header\n")); + return ERR_MEM; + } + if (p->tot_len != 0) { + /* chain header q in front of given pbuf p (only if p contains data) */ + pbuf_chain(q, p); + } + /* first pbuf q points to header pbuf */ + LWIP_DEBUGF(UDP_DEBUG, + ("udp_send: added header pbuf %p before given pbuf %p\n", (void *)q, (void *)p)); + } else { + /* adding space for header within p succeeded */ + /* first pbuf q equals given pbuf */ + q = p; + LWIP_DEBUGF(UDP_DEBUG, ("udp_send: added header in given pbuf %p\n", (void *)p)); + } + LWIP_ASSERT("check that first pbuf can hold struct udp_hdr", + (q->len >= sizeof(struct udp_hdr))); + /* q now represents the packet to be sent */ + udphdr = (struct udp_hdr *)q->payload; + udphdr->src = lwip_htons(pcb->local_port); + udphdr->dest = lwip_htons(dst_port); + /* in UDP, 0 checksum means 'no checksum' */ + udphdr->chksum = 0x0000; + + /* Multicast Loop? */ +#if LWIP_MULTICAST_TX_OPTIONS + if (((pcb->flags & UDP_FLAGS_MULTICAST_LOOP) != 0) && ip_addr_ismulticast(dst_ip)) { + q->flags |= PBUF_FLAG_MCASTLOOP; + } +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + + LWIP_DEBUGF(UDP_DEBUG, ("udp_send: sending datagram of length %"U16_F"\n", q->tot_len)); + +#if LWIP_UDPLITE + /* UDP Lite protocol? */ + if (pcb->flags & UDP_FLAGS_UDPLITE) { + u16_t chklen, chklen_hdr; + LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP LITE packet length %"U16_F"\n", q->tot_len)); + /* set UDP message length in UDP header */ + chklen_hdr = chklen = pcb->chksum_len_tx; + if ((chklen < sizeof(struct udp_hdr)) || (chklen > q->tot_len)) { + if (chklen != 0) { + LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP LITE pcb->chksum_len is illegal: %"U16_F"\n", chklen)); + } + /* For UDP-Lite, checksum length of 0 means checksum + over the complete packet. (See RFC 3828 chap. 3.1) + At least the UDP-Lite header must be covered by the + checksum, therefore, if chksum_len has an illegal + value, we generate the checksum over the complete + packet to be safe. */ + chklen_hdr = 0; + chklen = q->tot_len; + } + udphdr->len = lwip_htons(chklen_hdr); + /* calculate checksum */ +#if CHECKSUM_GEN_UDP + IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_UDP) { +#if LWIP_CHECKSUM_ON_COPY + if (have_chksum) { + chklen = UDP_HLEN; + } +#endif /* LWIP_CHECKSUM_ON_COPY */ + udphdr->chksum = ip_chksum_pseudo_partial(q, IP_PROTO_UDPLITE, + q->tot_len, chklen, src_ip, dst_ip); +#if LWIP_CHECKSUM_ON_COPY + if (have_chksum) { + u32_t acc; + acc = udphdr->chksum + (u16_t)~(chksum); + udphdr->chksum = FOLD_U32T(acc); + } +#endif /* LWIP_CHECKSUM_ON_COPY */ + + /* chksum zero must become 0xffff, as zero means 'no checksum' */ + if (udphdr->chksum == 0x0000) { + udphdr->chksum = 0xffff; + } + } +#endif /* CHECKSUM_GEN_UDP */ + + ip_proto = IP_PROTO_UDPLITE; + } else +#endif /* LWIP_UDPLITE */ + { /* UDP */ + LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP packet length %"U16_F"\n", q->tot_len)); + udphdr->len = lwip_htons(q->tot_len); + /* calculate checksum */ +#if CHECKSUM_GEN_UDP + IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_UDP) { + /* Checksum is mandatory over IPv6. */ + if (IP_IS_V6(dst_ip) || (pcb->flags & UDP_FLAGS_NOCHKSUM) == 0) { + u16_t udpchksum; +#if LWIP_CHECKSUM_ON_COPY + if (have_chksum) { + u32_t acc; + udpchksum = ip_chksum_pseudo_partial(q, IP_PROTO_UDP, + q->tot_len, UDP_HLEN, src_ip, dst_ip); + acc = udpchksum + (u16_t)~(chksum); + udpchksum = FOLD_U32T(acc); + } else +#endif /* LWIP_CHECKSUM_ON_COPY */ + { + udpchksum = ip_chksum_pseudo(q, IP_PROTO_UDP, q->tot_len, + src_ip, dst_ip); + } + + /* chksum zero must become 0xffff, as zero means 'no checksum' */ + if (udpchksum == 0x0000) { + udpchksum = 0xffff; + } + udphdr->chksum = udpchksum; + } + } +#endif /* CHECKSUM_GEN_UDP */ + ip_proto = IP_PROTO_UDP; + } + + /* Determine TTL to use */ +#if LWIP_MULTICAST_TX_OPTIONS + ttl = (ip_addr_ismulticast(dst_ip) ? udp_get_multicast_ttl(pcb) : pcb->ttl); +#else /* LWIP_MULTICAST_TX_OPTIONS */ + ttl = pcb->ttl; +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + + LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP checksum 0x%04"X16_F"\n", udphdr->chksum)); + LWIP_DEBUGF(UDP_DEBUG, ("udp_send: ip_output_if (,,,,0x%02"X16_F",)\n", (u16_t)ip_proto)); + /* output to IP */ + NETIF_SET_HINTS(netif, &(pcb->netif_hints)); + err = ip_output_if_src(q, src_ip, dst_ip, ttl, pcb->tos, ip_proto, netif); + NETIF_RESET_HINTS(netif); + + /* @todo: must this be increased even if error occurred? */ + MIB2_STATS_INC(mib2.udpoutdatagrams); + + /* did we chain a separate header pbuf earlier? */ + if (q != p) { + /* free the header pbuf */ + pbuf_free(q); + q = NULL; + /* p is still referenced by the caller, and will live on */ + } + + UDP_STATS_INC(udp.xmit); + return err; +} + +/** + * @ingroup udp_raw + * Bind an UDP PCB. + * + * @param pcb UDP PCB to be bound with a local address ipaddr and port. + * @param ipaddr local IP address to bind with. Use IP_ANY_TYPE to + * bind to all local interfaces. + * @param port local UDP port to bind with. Use 0 to automatically bind + * to a random port between UDP_LOCAL_PORT_RANGE_START and + * UDP_LOCAL_PORT_RANGE_END. + * + * ipaddr & port are expected to be in the same byte order as in the pcb. + * + * @return lwIP error code. + * - ERR_OK. Successful. No error occurred. + * - ERR_USE. The specified ipaddr and port are already bound to by + * another UDP PCB. + * + * @see udp_disconnect() + */ +err_t +udp_bind(struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port) +{ + struct udp_pcb *ipcb; + u8_t rebind; +#if LWIP_IPV6 && LWIP_IPV6_SCOPES + ip_addr_t zoned_ipaddr; +#endif /* LWIP_IPV6 && LWIP_IPV6_SCOPES */ + + LWIP_ASSERT_CORE_LOCKED(); + +#if LWIP_IPV4 + /* Don't propagate NULL pointer (IPv4 ANY) to subsequent functions */ + if (ipaddr == NULL) { + ipaddr = IP4_ADDR_ANY; + } +#else /* LWIP_IPV4 */ + LWIP_ERROR("udp_bind: invalid ipaddr", ipaddr != NULL, return ERR_ARG); +#endif /* LWIP_IPV4 */ + + LWIP_ERROR("udp_bind: invalid pcb", pcb != NULL, return ERR_ARG); + + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_bind(ipaddr = ")); + ip_addr_debug_print(UDP_DEBUG | LWIP_DBG_TRACE, ipaddr); + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, (", port = %"U16_F")\n", port)); + + rebind = 0; + /* Check for double bind and rebind of the same pcb */ + for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) { + /* is this UDP PCB already on active list? */ + if (pcb == ipcb) { + rebind = 1; + break; + } + } + +#if LWIP_IPV6 && LWIP_IPV6_SCOPES + /* If the given IP address should have a zone but doesn't, assign one now. + * This is legacy support: scope-aware callers should always provide properly + * zoned source addresses. Do the zone selection before the address-in-use + * check below; as such we have to make a temporary copy of the address. */ + if (IP_IS_V6(ipaddr) && ip6_addr_lacks_zone(ip_2_ip6(ipaddr), IP6_UNKNOWN)) { + ip_addr_copy(zoned_ipaddr, *ipaddr); + ip6_addr_select_zone(ip_2_ip6(&zoned_ipaddr), ip_2_ip6(&zoned_ipaddr)); + ipaddr = &zoned_ipaddr; + } +#endif /* LWIP_IPV6 && LWIP_IPV6_SCOPES */ + + /* no port specified? */ + if (port == 0) { + port = udp_new_port(); + if (port == 0) { + /* no more ports available in local range */ + LWIP_DEBUGF(UDP_DEBUG, ("udp_bind: out of free UDP ports\n")); + return ERR_USE; + } + } else { + for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) { + if (pcb != ipcb) { + /* By default, we don't allow to bind to a port that any other udp + PCB is already bound to, unless *all* PCBs with that port have tha + REUSEADDR flag set. */ +#if SO_REUSE + if (!ip_get_option(pcb, SOF_REUSEADDR) || + !ip_get_option(ipcb, SOF_REUSEADDR)) +#endif /* SO_REUSE */ + { + /* port matches that of PCB in list and REUSEADDR not set -> reject */ + if ((ipcb->local_port == port) && + /* IP address matches or any IP used? */ + (ip_addr_cmp(&ipcb->local_ip, ipaddr) || ip_addr_isany(ipaddr) || + ip_addr_isany(&ipcb->local_ip))) { + /* other PCB already binds to this local IP and port */ + LWIP_DEBUGF(UDP_DEBUG, + ("udp_bind: local port %"U16_F" already bound by another pcb\n", port)); + return ERR_USE; + } + } + } + } + } + + ip_addr_set_ipaddr(&pcb->local_ip, ipaddr); + + pcb->local_port = port; + mib2_udp_bind(pcb); + /* pcb not active yet? */ + if (rebind == 0) { + /* place the PCB on the active list if not already there */ + pcb->next = udp_pcbs; + udp_pcbs = pcb; + } + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("udp_bind: bound to ")); + ip_addr_debug_print_val(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, pcb->local_ip); + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, (", port %"U16_F")\n", pcb->local_port)); + return ERR_OK; +} + +/** + * @ingroup udp_raw + * Bind an UDP PCB to a specific netif. + * After calling this function, all packets received via this PCB + * are guaranteed to have come in via the specified netif, and all + * outgoing packets will go out via the specified netif. + * + * @param pcb UDP PCB to be bound. + * @param netif netif to bind udp pcb to. Can be NULL. + * + * @see udp_disconnect() + */ +void +udp_bind_netif(struct udp_pcb *pcb, const struct netif *netif) +{ + LWIP_ASSERT_CORE_LOCKED(); + + if (netif != NULL) { + pcb->netif_idx = netif_get_index(netif); + } else { + pcb->netif_idx = NETIF_NO_INDEX; + } +} + +/** + * @ingroup udp_raw + * Sets the remote end of the pcb. This function does not generate any + * network traffic, but only sets the remote address of the pcb. + * + * @param pcb UDP PCB to be connected with remote address ipaddr and port. + * @param ipaddr remote IP address to connect with. + * @param port remote UDP port to connect with. + * + * @return lwIP error code + * + * ipaddr & port are expected to be in the same byte order as in the pcb. + * + * The udp pcb is bound to a random local port if not already bound. + * + * @see udp_disconnect() + */ +err_t +udp_connect(struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port) +{ + struct udp_pcb *ipcb; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("udp_connect: invalid pcb", pcb != NULL, return ERR_ARG); + LWIP_ERROR("udp_connect: invalid ipaddr", ipaddr != NULL, return ERR_ARG); + + if (pcb->local_port == 0) { + err_t err = udp_bind(pcb, &pcb->local_ip, pcb->local_port); + if (err != ERR_OK) { + return err; + } + } + + ip_addr_set_ipaddr(&pcb->remote_ip, ipaddr); +#if LWIP_IPV6 && LWIP_IPV6_SCOPES + /* If the given IP address should have a zone but doesn't, assign one now, + * using the bound address to make a more informed decision when possible. */ + if (IP_IS_V6(&pcb->remote_ip) && + ip6_addr_lacks_zone(ip_2_ip6(&pcb->remote_ip), IP6_UNKNOWN)) { + ip6_addr_select_zone(ip_2_ip6(&pcb->remote_ip), ip_2_ip6(&pcb->local_ip)); + } +#endif /* LWIP_IPV6 && LWIP_IPV6_SCOPES */ + + pcb->remote_port = port; + pcb->flags |= UDP_FLAGS_CONNECTED; + + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("udp_connect: connected to ")); + ip_addr_debug_print_val(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, + pcb->remote_ip); + LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, (", port %"U16_F")\n", pcb->remote_port)); + + /* Insert UDP PCB into the list of active UDP PCBs. */ + for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) { + if (pcb == ipcb) { + /* already on the list, just return */ + return ERR_OK; + } + } + /* PCB not yet on the list, add PCB now */ + pcb->next = udp_pcbs; + udp_pcbs = pcb; + return ERR_OK; +} + +/** + * @ingroup udp_raw + * Remove the remote end of the pcb. This function does not generate + * any network traffic, but only removes the remote address of the pcb. + * + * @param pcb the udp pcb to disconnect. + */ +void +udp_disconnect(struct udp_pcb *pcb) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("udp_disconnect: invalid pcb", pcb != NULL, return); + + /* reset remote address association */ +#if LWIP_IPV4 && LWIP_IPV6 + if (IP_IS_ANY_TYPE_VAL(pcb->local_ip)) { + ip_addr_copy(pcb->remote_ip, *IP_ANY_TYPE); + } else { +#endif + ip_addr_set_any(IP_IS_V6_VAL(pcb->remote_ip), &pcb->remote_ip); +#if LWIP_IPV4 && LWIP_IPV6 + } +#endif + pcb->remote_port = 0; + pcb->netif_idx = NETIF_NO_INDEX; + /* mark PCB as unconnected */ + udp_clear_flags(pcb, UDP_FLAGS_CONNECTED); +} + +/** + * @ingroup udp_raw + * Set a receive callback for a UDP PCB. + * This callback will be called when receiving a datagram for the pcb. + * + * @param pcb the pcb for which to set the recv callback + * @param recv function pointer of the callback function + * @param recv_arg additional argument to pass to the callback function + */ +void +udp_recv(struct udp_pcb *pcb, udp_recv_fn recv, void *recv_arg) +{ + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("udp_recv: invalid pcb", pcb != NULL, return); + + /* remember recv() callback and user data */ + pcb->recv = recv; + pcb->recv_arg = recv_arg; +} + +/** + * @ingroup udp_raw + * Removes and deallocates the pcb. + * + * @param pcb UDP PCB to be removed. The PCB is removed from the list of + * UDP PCB's and the data structure is freed from memory. + * + * @see udp_new() + */ +void +udp_remove(struct udp_pcb *pcb) +{ + struct udp_pcb *pcb2; + + LWIP_ASSERT_CORE_LOCKED(); + + LWIP_ERROR("udp_remove: invalid pcb", pcb != NULL, return); + + mib2_udp_unbind(pcb); + /* pcb to be removed is first in list? */ + if (udp_pcbs == pcb) { + /* make list start at 2nd pcb */ + udp_pcbs = udp_pcbs->next; + /* pcb not 1st in list */ + } else { + for (pcb2 = udp_pcbs; pcb2 != NULL; pcb2 = pcb2->next) { + /* find pcb in udp_pcbs list */ + if (pcb2->next != NULL && pcb2->next == pcb) { + /* remove pcb from list */ + pcb2->next = pcb->next; + break; + } + } + } + memp_free(MEMP_UDP_PCB, pcb); +} + +/** + * @ingroup udp_raw + * Creates a new UDP pcb which can be used for UDP communication. The + * pcb is not active until it has either been bound to a local address + * or connected to a remote address. + * + * @return The UDP PCB which was created. NULL if the PCB data structure + * could not be allocated. + * + * @see udp_remove() + */ +struct udp_pcb * +udp_new(void) +{ + struct udp_pcb *pcb; + + LWIP_ASSERT_CORE_LOCKED(); + + pcb = (struct udp_pcb *)memp_malloc(MEMP_UDP_PCB); + /* could allocate UDP PCB? */ + if (pcb != NULL) { + /* UDP Lite: by initializing to all zeroes, chksum_len is set to 0 + * which means checksum is generated over the whole datagram per default + * (recommended as default by RFC 3828). */ + /* initialize PCB to all zeroes */ + memset(pcb, 0, sizeof(struct udp_pcb)); + pcb->ttl = UDP_TTL; +#if LWIP_MULTICAST_TX_OPTIONS + udp_set_multicast_ttl(pcb, UDP_TTL); +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + } + return pcb; +} + +/** + * @ingroup udp_raw + * Create a UDP PCB for specific IP type. + * The pcb is not active until it has either been bound to a local address + * or connected to a remote address. + * + * @param type IP address type, see @ref lwip_ip_addr_type definitions. + * If you want to listen to IPv4 and IPv6 (dual-stack) packets, + * supply @ref IPADDR_TYPE_ANY as argument and bind to @ref IP_ANY_TYPE. + * @return The UDP PCB which was created. NULL if the PCB data structure + * could not be allocated. + * + * @see udp_remove() + */ +struct udp_pcb * +udp_new_ip_type(u8_t type) +{ + struct udp_pcb *pcb; + + LWIP_ASSERT_CORE_LOCKED(); + + pcb = udp_new(); +#if LWIP_IPV4 && LWIP_IPV6 + if (pcb != NULL) { + IP_SET_TYPE_VAL(pcb->local_ip, type); + IP_SET_TYPE_VAL(pcb->remote_ip, type); + } +#else + LWIP_UNUSED_ARG(type); +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + return pcb; +} + +/** This function is called from netif.c when address is changed + * + * @param old_addr IP address of the netif before change + * @param new_addr IP address of the netif after change + */ +void udp_netif_ip_addr_changed(const ip_addr_t *old_addr, const ip_addr_t *new_addr) +{ + struct udp_pcb *upcb; + + if (!ip_addr_isany(old_addr) && !ip_addr_isany(new_addr)) { + for (upcb = udp_pcbs; upcb != NULL; upcb = upcb->next) { + /* PCB bound to current local interface address? */ + if (ip_addr_cmp(&upcb->local_ip, old_addr)) { + /* The PCB is bound to the old ipaddr and + * is set to bound to the new one instead */ + ip_addr_copy(upcb->local_ip, *new_addr); + } + } + } +} + +#if UDP_DEBUG +/** + * Print UDP header information for debug purposes. + * + * @param udphdr pointer to the udp header in memory. + */ +void +udp_debug_print(struct udp_hdr *udphdr) +{ + LWIP_DEBUGF(UDP_DEBUG, ("UDP header:\n")); + LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(UDP_DEBUG, ("| %5"U16_F" | %5"U16_F" | (src port, dest port)\n", + lwip_ntohs(udphdr->src), lwip_ntohs(udphdr->dest))); + LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n")); + LWIP_DEBUGF(UDP_DEBUG, ("| %5"U16_F" | 0x%04"X16_F" | (len, chksum)\n", + lwip_ntohs(udphdr->len), lwip_ntohs(udphdr->chksum))); + LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n")); +} +#endif /* UDP_DEBUG */ + +#endif /* LWIP_UDP */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.c b/BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.c new file mode 100644 index 000000000..07329cd56 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.c @@ -0,0 +1,1423 @@ +/* + * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +//#include "esp_common.h" +#include +#include +#include "lwip/dhcp.h" +#include "lwip/err.h" +#include "lwip/pbuf.h" +#include "lwip/udp.h" +#include "lwip/mem.h" +#include "lwip/ip_addr.h" +#include "lwip/timeouts.h" + +#include "dhcp_server.h" +#include "dhcpserver_options.h" + +#if ESP_DHCPS + +#define BOOTP_BROADCAST 0x8000 + +#define DHCP_REQUEST 1 +#define DHCP_REPLY 2 +#define DHCP_HTYPE_ETHERNET 1 +#define DHCP_HLEN_ETHERNET 6 +#define DHCP_MSG_LEN 236 + +#define DHCPS_SERVER_PORT 67 +#define DHCPS_CLIENT_PORT 68 + +#define DHCPDISCOVER 1 +#define DHCPOFFER 2 +#define DHCPREQUEST 3 +#define DHCPDECLINE 4 +#define DHCPACK 5 +#define DHCPNAK 6 +#define DHCPRELEASE 7 + +#define DHCP_OPTION_SUBNET_MASK 1 +#define DHCP_OPTION_ROUTER 3 +#define DHCP_OPTION_DNS_SERVER 6 +#define DHCP_OPTION_REQ_IPADDR 50 +#define DHCP_OPTION_LEASE_TIME 51 +#define DHCP_OPTION_MSG_TYPE 53 +#define DHCP_OPTION_SERVER_ID 54 +#define DHCP_OPTION_INTERFACE_MTU 26 +#define DHCP_OPTION_PERFORM_ROUTER_DISCOVERY 31 +#define DHCP_OPTION_BROADCAST_ADDRESS 28 +#define DHCP_OPTION_REQ_LIST 55 +#define DHCP_OPTION_END 255 + +//#define USE_CLASS_B_NET 1 +#define DHCPS_DEBUG 0 +#define DHCPS_LOG print_log + +#define MAX_STATION_NUM CONFIG_LWIP_DHCPS_MAX_STATION_NUM + +#define DHCPS_STATE_OFFER 1 +#define DHCPS_STATE_DECLINE 2 +#define DHCPS_STATE_ACK 3 +#define DHCPS_STATE_NAK 4 +#define DHCPS_STATE_IDLE 5 +#define DHCPS_STATE_RELEASE 6 + +typedef enum { + DHCPS_HANDLE_CREATED = 0, + DHCPS_HANDLE_STARTED, + DHCPS_HANDLE_STOPPED, + DHCPS_HANDLE_DELETE_PENDING, +} dhcps_handle_state; + +typedef struct list_node { + void *pnode; + struct list_node *pnext; +} list_node; + +typedef struct { + ip4_addr_t ip; + ip4_addr_t netmask; + ip4_addr_t gw; +} ip_info_t; +//////////////////////////////////////////////////////////////////////////////////// + +static const u32_t magic_cookie = 0x63538263; + +struct dhcps_t { + struct netif *dhcps_netif; + ip4_addr_t broadcast_dhcps; + ip4_addr_t server_address; + ip4_addr_t dns_server; + ip4_addr_t client_address; + ip4_addr_t client_address_plus; + ip4_addr_t dhcps_mask; + list_node *plist; + bool renew; + dhcps_lease_t dhcps_poll; + dhcps_time_t dhcps_lease_time; + dhcps_offer_t dhcps_offer; + dhcps_offer_t dhcps_dns; + dhcps_cb_t dhcps_cb; + void* dhcps_cb_arg; + struct udp_pcb *dhcps_pcb; + dhcps_handle_state state; +}; + + +static void dhcps_tmr(void* arg); + + +dhcps_t *dhcps_new(void) +{ + dhcps_t *dhcps = mem_malloc(sizeof(dhcps_t)); + + if (dhcps == NULL) { + return NULL; + } + memset(dhcps, 0, sizeof(dhcps_t)); + dhcps->dhcps_netif = NULL; + dhcps->dns_server.addr = 0; +#ifdef USE_CLASS_B_NET + dhcps->dhcps_mask.addr = PP_HTONL(LWIP_MAKEU32(255, 240, 0, 0)); +#else + dhcps->dhcps_mask.addr = PP_HTONL(LWIP_MAKEU32(255, 255, 255, 0)); +#endif + dhcps->plist = NULL; + dhcps->renew = false; + dhcps->dhcps_lease_time = DHCPS_LEASE_TIME_DEF; + dhcps->dhcps_offer = 0xFF; + dhcps->dhcps_dns = 0x00; + dhcps->dhcps_pcb = NULL; + dhcps->state = DHCPS_HANDLE_CREATED; + return dhcps; +} + +void dhcps_delete(dhcps_t *dhcps) +{ + if (dhcps) { + if (dhcps->state == DHCPS_HANDLE_STARTED) { + // if the dhcp-server has started already, we have to postpone the deletion + dhcps->state = DHCPS_HANDLE_DELETE_PENDING; + } else { + // otherwise, we're free to delete the handle immediately + mem_free(dhcps); + } + } +} + +static void get_ip_info(struct netif * netif, ip_info_t *ip_info) +{ + if (netif != NULL && netif_is_up(netif)) { + ip4_addr_set(&ip_info->ip, ip_2_ip4(&netif->ip_addr)); + ip4_addr_set(&ip_info->netmask, ip_2_ip4(&netif->netmask)); + ip4_addr_set(&ip_info->gw, ip_2_ip4(&netif->gw)); + } +} + +/****************************************************************************** + * FunctionName : dhcps_option_info + * Description : get the DHCP message option info + * Parameters : op_id -- DHCP message option id + * opt_len -- DHCP message option length + * Returns : DHCP message option addr +*******************************************************************************/ +void *dhcps_option_info(dhcps_t *dhcps, u8_t op_id, u32_t opt_len) +{ + void *option_arg = NULL; + if (dhcps == NULL) { + return NULL; + } + + switch (op_id) { + case IP_ADDRESS_LEASE_TIME: + if (opt_len == sizeof(dhcps_time_t)) { + option_arg = &dhcps->dhcps_lease_time; + } + + break; + + case REQUESTED_IP_ADDRESS: + if (opt_len == sizeof(dhcps_lease_t)) { + option_arg = &dhcps->dhcps_poll; + } + + break; + + case ROUTER_SOLICITATION_ADDRESS: + if (opt_len == sizeof(dhcps_offer_t)) { + option_arg = &dhcps->dhcps_offer; + } + + break; + + case DOMAIN_NAME_SERVER: + if (opt_len == sizeof(dhcps_offer_t)) { + option_arg = &dhcps->dhcps_dns; + } + + break; + case SUBNET_MASK: + if (opt_len == sizeof(dhcps->dhcps_mask)) { + option_arg = &dhcps->dhcps_mask; + } + + break; + default: + break; + } + + return option_arg; +} + +/****************************************************************************** + * FunctionName : dhcps_set_option_info + * Description : set the DHCP message option info + * Parameters : op_id -- DHCP message option id + * opt_info -- DHCP message option info + * opt_len -- DHCP message option length + * Returns : none +*******************************************************************************/ +err_t dhcps_set_option_info(dhcps_t *dhcps, u8_t op_id, void *opt_info, u32_t opt_len) +{ + if (dhcps == NULL || opt_info == NULL) { + return ERR_ARG; + } + switch (op_id) { + case IP_ADDRESS_LEASE_TIME: + if (opt_len == sizeof(dhcps_time_t)) { + dhcps->dhcps_lease_time = *(dhcps_time_t *)opt_info; + } + + break; + + case REQUESTED_IP_ADDRESS: + if (opt_len == sizeof(dhcps_lease_t)) { + dhcps->dhcps_poll = *(dhcps_lease_t *)opt_info; + } + + break; + + case ROUTER_SOLICITATION_ADDRESS: + if (opt_len == sizeof(dhcps_offer_t)) { + dhcps->dhcps_offer = *(dhcps_offer_t *)opt_info; + } + + break; + + case DOMAIN_NAME_SERVER: + if (opt_len == sizeof(dhcps_offer_t)) { + dhcps->dhcps_dns = *(dhcps_offer_t *)opt_info; + } + break; + + case SUBNET_MASK: + if (opt_len == sizeof(dhcps->dhcps_mask)) { + dhcps->dhcps_mask = *(ip4_addr_t *)opt_info; + } + + + default: + break; + } + return ERR_OK; +} + +/****************************************************************************** + * FunctionName : node_insert_to_list + * Description : insert the node to the list + * Parameters : phead -- the head node of the list + * pinsert -- the insert node of the list + * Returns : none +*******************************************************************************/ +static void node_insert_to_list(list_node **phead, list_node *pinsert) +{ + list_node *plist = NULL; + struct dhcps_pool *pdhcps_pool = NULL; + struct dhcps_pool *pdhcps_node = NULL; + + if (*phead == NULL) { + *phead = pinsert; + } else { + plist = *phead; + pdhcps_node = pinsert->pnode; + pdhcps_pool = plist->pnode; + + if (pdhcps_node->ip.addr < pdhcps_pool->ip.addr) { + pinsert->pnext = plist; + *phead = pinsert; + } else { + while (plist->pnext != NULL) { + pdhcps_pool = plist->pnext->pnode; + + if (pdhcps_node->ip.addr < pdhcps_pool->ip.addr) { + pinsert->pnext = plist->pnext; + plist->pnext = pinsert; + break; + } + + plist = plist->pnext; + } + + if (plist->pnext == NULL) { + plist->pnext = pinsert; + } + } + } + +// pinsert->pnext = NULL; +} + +/****************************************************************************** + * FunctionName : node_delete_from_list + * Description : remove the node from list + * Parameters : phead -- the head node of the list + * pdelete -- the remove node of the list + * Returns : none +*******************************************************************************/ +void node_remove_from_list(list_node **phead, list_node *pdelete) +{ + list_node *plist = NULL; + + plist = *phead; + + if (plist == NULL) { + *phead = NULL; + } else { + if (plist == pdelete) { + // Note: Ignoring the "use after free" warnings, as it could only happen + // if the linked list contains loops + *phead = plist->pnext; // NOLINT(clang-analyzer-unix.Malloc) + pdelete->pnext = NULL; + } else { + while (plist != NULL) { + if (plist->pnext == pdelete) { // NOLINT(clang-analyzer-unix.Malloc) + plist->pnext = pdelete->pnext; + pdelete->pnext = NULL; + } + + plist = plist->pnext; + } + } + } +} + +/****************************************************************************** + * FunctionName : add_msg_type + * Description : add TYPE option of DHCP message + * Parameters : optptr -- the addr of DHCP message option + * Returns : the addr of DHCP message option +*******************************************************************************/ +static u8_t *add_msg_type(u8_t *optptr, u8_t type) +{ + *optptr++ = DHCP_OPTION_MSG_TYPE; + *optptr++ = 1; + *optptr++ = type; + return optptr; +} + +/****************************************************************************** + * FunctionName : add_offer_options + * Description : add OFFER option of DHCP message + * Parameters : optptr -- the addr of DHCP message option + * Returns : the addr of DHCP message option +*******************************************************************************/ +static u8_t *add_offer_options(dhcps_t *dhcps, u8_t *optptr) +{ + ip4_addr_t ipadd; + + ipadd.addr = *((u32_t *) &dhcps->server_address); + + *optptr++ = DHCP_OPTION_SUBNET_MASK; + *optptr++ = 4; + *optptr++ = ip4_addr1(&dhcps->dhcps_mask); + *optptr++ = ip4_addr2(&dhcps->dhcps_mask); + *optptr++ = ip4_addr3(&dhcps->dhcps_mask); + *optptr++ = ip4_addr4(&dhcps->dhcps_mask); + + *optptr++ = DHCP_OPTION_LEASE_TIME; + *optptr++ = 4; + *optptr++ = ((dhcps->dhcps_lease_time * DHCPS_LEASE_UNIT) >> 24) & 0xFF; + *optptr++ = ((dhcps->dhcps_lease_time * DHCPS_LEASE_UNIT) >> 16) & 0xFF; + *optptr++ = ((dhcps->dhcps_lease_time * DHCPS_LEASE_UNIT) >> 8) & 0xFF; + *optptr++ = ((dhcps->dhcps_lease_time * DHCPS_LEASE_UNIT) >> 0) & 0xFF; + + *optptr++ = DHCP_OPTION_SERVER_ID; + *optptr++ = 4; + *optptr++ = ip4_addr1(&ipadd); + *optptr++ = ip4_addr2(&ipadd); + *optptr++ = ip4_addr3(&ipadd); + *optptr++ = ip4_addr4(&ipadd); + + if (dhcps_router_enabled(dhcps->dhcps_offer)) { + ip_info_t if_ip = { 0 }; + get_ip_info(dhcps->dhcps_netif, &if_ip); + + ip4_addr_t* gw_ip = (ip4_addr_t*)&if_ip.gw; + + if (!ip4_addr_isany_val(*gw_ip)) { + *optptr++ = DHCP_OPTION_ROUTER; + *optptr++ = 4; + *optptr++ = ip4_addr1(gw_ip); + *optptr++ = ip4_addr2(gw_ip); + *optptr++ = ip4_addr3(gw_ip); + *optptr++ = ip4_addr4(gw_ip); + } + } + + *optptr++ = DHCP_OPTION_DNS_SERVER; + *optptr++ = 4; + if (dhcps_dns_enabled(dhcps->dhcps_dns)) { + *optptr++ = ip4_addr1(&dhcps->dns_server); + *optptr++ = ip4_addr2(&dhcps->dns_server); + *optptr++ = ip4_addr3(&dhcps->dns_server); + *optptr++ = ip4_addr4(&dhcps->dns_server); + }else { + *optptr++ = ip4_addr1(&ipadd); + *optptr++ = ip4_addr2(&ipadd); + *optptr++ = ip4_addr3(&ipadd); + *optptr++ = ip4_addr4(&ipadd); + } + + ip4_addr_t broadcast_addr = { .addr = (ipadd.addr & dhcps->dhcps_mask.addr) | ~dhcps->dhcps_mask.addr }; + *optptr++ = DHCP_OPTION_BROADCAST_ADDRESS; + *optptr++ = 4; + *optptr++ = ip4_addr1(&broadcast_addr); + *optptr++ = ip4_addr2(&broadcast_addr); + *optptr++ = ip4_addr3(&broadcast_addr); + *optptr++ = ip4_addr4(&broadcast_addr); + + *optptr++ = DHCP_OPTION_INTERFACE_MTU; + *optptr++ = 2; + *optptr++ = 0x05; + *optptr++ = 0xdc; + + *optptr++ = DHCP_OPTION_PERFORM_ROUTER_DISCOVERY; + *optptr++ = 1; + *optptr++ = 0x00; + + *optptr++ = 43; + *optptr++ = 6; + + *optptr++ = 0x01; + *optptr++ = 4; + *optptr++ = 0x00; + *optptr++ = 0x00; + *optptr++ = 0x00; + *optptr++ = 0x02; + + return optptr; +} + +/****************************************************************************** + * FunctionName : add_end + * Description : add end option of DHCP message + * Parameters : optptr -- the addr of DHCP message option + * Returns : the addr of DHCP message option +*******************************************************************************/ +static u8_t *add_end(u8_t *optptr) +{ + *optptr++ = DHCP_OPTION_END; + return optptr; +} + +/****************************************************************************** + * FunctionName : create_msg + * Description : create response message + * Parameters : m -- DHCP message info + * Returns : none +*******************************************************************************/ +static void create_msg(dhcps_t *dhcps, struct dhcps_msg *m) +{ + ip4_addr_t client; + + + client.addr = *((uint32_t *) &dhcps->client_address); + + m->op = DHCP_REPLY; + + m->htype = DHCP_HTYPE_ETHERNET; + + m->hlen = 6; + + m->hops = 0; +// os_memcpy((char *) xid, (char *) m->xid, sizeof(m->xid)); + m->secs = 0; + m->flags = htons(BOOTP_BROADCAST); + + memcpy((char *) m->yiaddr, (char *) &client.addr, sizeof(m->yiaddr)); + + memset((char *) m->ciaddr, 0, sizeof(m->ciaddr)); + + memset((char *) m->siaddr, 0, sizeof(m->siaddr)); + + memset((char *) m->giaddr, 0, sizeof(m->giaddr)); + + memset((char *) m->sname, 0, sizeof(m->sname)); + + memset((char *) m->file, 0, sizeof(m->file)); + + memset((char *) m->options, 0, sizeof(m->options)); + + u32_t magic_cookie_temp = magic_cookie; + + memcpy((char *) m->options, &magic_cookie_temp, sizeof(magic_cookie_temp)); +} + +struct pbuf * dhcps_pbuf_alloc(u16_t len) +{ + u16_t mlen = sizeof(struct dhcps_msg); + + if (len > mlen) { +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: len=%d mlen=%d", len, mlen); +#endif + mlen = len; + } + + return pbuf_alloc(PBUF_TRANSPORT, mlen, PBUF_RAM); +} + +/****************************************************************************** + * FunctionName : send_offer + * Description : DHCP message OFFER Response + * Parameters : m -- DHCP message info + * Returns : none +*******************************************************************************/ +static void send_offer(dhcps_t *dhcps, struct dhcps_msg *m, u16_t len) +{ + u8_t *end; + struct pbuf *p, *q; + u8_t *data; + u16_t cnt = 0; + u16_t i; +#if DHCPS_DEBUG + err_t SendOffer_err_t; +#endif + create_msg(dhcps, m); + + end = add_msg_type(&m->options[4], DHCPOFFER); + end = add_offer_options(dhcps, end); + end = add_end(end); + + p = dhcps_pbuf_alloc(len); +#if DHCPS_DEBUG + DHCPS_LOG("udhcp: send_offer>>p->ref = %d\n", p->ref); +#endif + + if (p != NULL) { + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: send_offer>>pbuf_alloc succeed\n"); + DHCPS_LOG("dhcps: send_offer>>p->tot_len = %d\n", p->tot_len); + DHCPS_LOG("dhcps: send_offer>>p->len = %d\n", p->len); +#endif + q = p; + + while (q != NULL) { + data = (u8_t *)q->payload; + + for (i = 0; i < q->len; i++) { + data[i] = ((u8_t *) m)[cnt++]; +#if DHCPS_DEBUG + DHCPS_LOG("%02x ", data[i]); + + if ((i + 1) % 16 == 0) { + DHCPS_LOG("\n"); + } + +#endif + } + + q = q->next; + } + } else { + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: send_offer>>pbuf_alloc failed\n"); +#endif + return; + } + + ip_addr_t ip_temp = IPADDR4_INIT(0x0); + ip4_addr_set(ip_2_ip4(&ip_temp), &dhcps->broadcast_dhcps); +#if DHCPS_DEBUG + SendOffer_err_t = udp_sendto(dhcps->dhcps_pcb, p, &ip_temp, DHCPS_CLIENT_PORT); + DHCPS_LOG("dhcps: send_offer>>udp_sendto result %x\n", SendOffer_err_t); +#else + udp_sendto(dhcps->dhcps_pcb, p, &ip_temp, DHCPS_CLIENT_PORT); +#endif + + if (p->ref != 0) { +#if DHCPS_DEBUG + DHCPS_LOG("udhcp: send_offer>>free pbuf\n"); +#endif + pbuf_free(p); + } +} + +/****************************************************************************** + * FunctionName : send_nak + * Description : DHCP message NACK Response + * Parameters : m -- DHCP message info + * Returns : none +*******************************************************************************/ +static void send_nak(dhcps_t *dhcps, struct dhcps_msg *m, u16_t len) +{ + u8_t *end; + struct pbuf *p, *q; + u8_t *data; + u16_t cnt = 0; + u16_t i; +#if DHCPS_DEBUG + err_t SendNak_err_t; +#endif + create_msg(dhcps, m); + + end = add_msg_type(&m->options[4], DHCPNAK); + end = add_end(end); + + p = dhcps_pbuf_alloc(len); +#if DHCPS_DEBUG + DHCPS_LOG("udhcp: send_nak>>p->ref = %d\n", p->ref); +#endif + + if (p != NULL) { + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: send_nak>>pbuf_alloc succeed\n"); + DHCPS_LOG("dhcps: send_nak>>p->tot_len = %d\n", p->tot_len); + DHCPS_LOG("dhcps: send_nak>>p->len = %d\n", p->len); +#endif + q = p; + + while (q != NULL) { + data = (u8_t *)q->payload; + + for (i = 0; i < q->len; i++) { + data[i] = ((u8_t *) m)[cnt++]; +#if DHCPS_DEBUG + DHCPS_LOG("%02x ", data[i]); + + if ((i + 1) % 16 == 0) { + DHCPS_LOG("\n"); + } + +#endif + } + + q = q->next; + } + } else { + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: send_nak>>pbuf_alloc failed\n"); +#endif + return; + } + + ip_addr_t ip_temp = IPADDR4_INIT(0x0); + ip4_addr_set(ip_2_ip4(&ip_temp), &dhcps->broadcast_dhcps); +#if DHCPS_DEBUG + SendNak_err_t = udp_sendto(dhcps->dhcps_pcb, p, &ip_temp, DHCPS_CLIENT_PORT); + DHCPS_LOG("dhcps: send_nak>>udp_sendto result %x\n", SendNak_err_t); +#else + udp_sendto(dhcps->dhcps_pcb, p, &ip_temp, DHCPS_CLIENT_PORT); +#endif + + if (p->ref != 0) { +#if DHCPS_DEBUG + DHCPS_LOG("udhcp: send_nak>>free pbuf\n"); +#endif + pbuf_free(p); + } +} + +/****************************************************************************** + * FunctionName : send_ack + * Description : DHCP message ACK Response + * Parameters : m -- DHCP message info + * Returns : none +*******************************************************************************/ +static void send_ack(dhcps_t *dhcps, struct dhcps_msg *m, u16_t len) +{ + u8_t *end; + struct pbuf *p, *q; + u8_t *data; + u16_t cnt = 0; + u16_t i; + err_t SendAck_err_t; + create_msg(dhcps, m); + + end = add_msg_type(&m->options[4], DHCPACK); + end = add_offer_options(dhcps, end); + end = add_end(end); + + p = dhcps_pbuf_alloc(len); +#if DHCPS_DEBUG + DHCPS_LOG("udhcp: send_ack>>p->ref = %d\n", p->ref); +#endif + + if (p != NULL) { + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: send_ack>>pbuf_alloc succeed\n"); + DHCPS_LOG("dhcps: send_ack>>p->tot_len = %d\n", p->tot_len); + DHCPS_LOG("dhcps: send_ack>>p->len = %d\n", p->len); +#endif + q = p; + + while (q != NULL) { + data = (u8_t *)q->payload; + + for (i = 0; i < q->len; i++) { + data[i] = ((u8_t *) m)[cnt++]; +#if DHCPS_DEBUG + DHCPS_LOG("%02x ", data[i]); + + if ((i + 1) % 16 == 0) { + DHCPS_LOG("\n"); + } + +#endif + } + + q = q->next; + } + } else { + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: send_ack>>pbuf_alloc failed\n"); +#endif + return; + } + + ip_addr_t ip_temp = IPADDR4_INIT(0x0); + ip4_addr_set(ip_2_ip4(&ip_temp), &dhcps->broadcast_dhcps); + SendAck_err_t = udp_sendto(dhcps->dhcps_pcb, p, &ip_temp, DHCPS_CLIENT_PORT); +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: send_ack>>udp_sendto result %x\n", SendAck_err_t); +#endif + + if (SendAck_err_t == ERR_OK) { + if (dhcps->dhcps_cb) dhcps->dhcps_cb(dhcps->dhcps_cb_arg, m->yiaddr, m->chaddr); + } + + if (p->ref != 0) { +#if DHCPS_DEBUG + DHCPS_LOG("udhcp: send_ack>>free pbuf\n"); +#endif + pbuf_free(p); + } +} + +/****************************************************************************** + * FunctionName : parse_options + * Description : parse DHCP message options + * Parameters : optptr -- DHCP message option info + * len -- DHCP message option length + * Returns : none +*******************************************************************************/ +static u8_t parse_options(dhcps_t *dhcps, u8_t *optptr, s16_t len) +{ + ip4_addr_t client; + bool is_dhcp_parse_end = false; + struct dhcps_state s; + + client.addr = *((uint32_t *) &dhcps->client_address); + + u8_t *end = optptr + len; + u16_t type = 0; + + s.state = DHCPS_STATE_IDLE; + + while (optptr < end) { +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: (s16_t)*optptr = %d\n", (s16_t)*optptr); +#endif + + switch ((s16_t) *optptr) { + + case DHCP_OPTION_MSG_TYPE: //53 + type = *(optptr + 2); + break; + + case DHCP_OPTION_REQ_IPADDR://50 + if (memcmp((char *) &client.addr, (char *) optptr + 2, 4) == 0) { +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: DHCP_OPTION_REQ_IPADDR = 0 ok\n"); +#endif + s.state = DHCPS_STATE_ACK; + } else { +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: DHCP_OPTION_REQ_IPADDR != 0 err\n"); +#endif + s.state = DHCPS_STATE_NAK; + } + + break; + + case DHCP_OPTION_END: { + is_dhcp_parse_end = true; + } + break; + } + + if (is_dhcp_parse_end) { + break; + } + + optptr += optptr[1] + 2; + } + + switch (type) { + + case DHCPDISCOVER://1 + s.state = DHCPS_STATE_OFFER; +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: DHCPD_STATE_OFFER\n"); +#endif + break; + + case DHCPREQUEST://3 + if (!(s.state == DHCPS_STATE_ACK || s.state == DHCPS_STATE_NAK)) { + if (dhcps->renew == true) { + s.state = DHCPS_STATE_ACK; + } else { + s.state = DHCPS_STATE_NAK; + } + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: DHCPD_STATE_NAK\n"); +#endif + } + + break; + + case DHCPDECLINE://4 + s.state = DHCPS_STATE_IDLE; +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: DHCPD_STATE_IDLE\n"); +#endif + break; + + case DHCPRELEASE://7 + s.state = DHCPS_STATE_RELEASE; +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: DHCPD_STATE_IDLE\n"); +#endif + break; + } + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: return s.state = %d\n", s.state); +#endif + return s.state; +} + +/****************************************************************************** + * FunctionName : parse_msg + * Description : parse DHCP message from netif + * Parameters : m -- DHCP message info + * len -- DHCP message length + * Returns : DHCP message type +*******************************************************************************/ +static s16_t parse_msg(dhcps_t *dhcps, struct dhcps_msg *m, u16_t len) +{ + u32_t lease_timer = (dhcps->dhcps_lease_time * DHCPS_LEASE_UNIT)/DHCPS_COARSE_TIMER_SECS; + + if (memcmp((char *)m->options, &magic_cookie, sizeof(magic_cookie)) == 0) { +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: len = %d\n", len); +#endif + ip4_addr_t addr_tmp; + + struct dhcps_pool *pdhcps_pool = NULL; + list_node *pnode = NULL; + list_node *pback_node = NULL; + ip4_addr_t first_address; + bool flag = false; + + first_address.addr = dhcps->dhcps_poll.start_ip.addr; + dhcps->client_address.addr = dhcps->client_address_plus.addr; + dhcps->renew = false; + + if (dhcps->plist != NULL) { + for (pback_node = dhcps->plist; pback_node != NULL; pback_node = pback_node->pnext) { + pdhcps_pool = pback_node->pnode; + + if (memcmp(pdhcps_pool->mac, m->chaddr, sizeof(pdhcps_pool->mac)) == 0) { + if (memcmp(&pdhcps_pool->ip.addr, m->ciaddr, sizeof(pdhcps_pool->ip.addr)) == 0) { + dhcps->renew = true; + } + + dhcps->client_address.addr = pdhcps_pool->ip.addr; + pdhcps_pool->lease_timer = lease_timer; + pnode = pback_node; + goto POOL_CHECK; + } else if (pdhcps_pool->ip.addr == dhcps->client_address_plus.addr) { + addr_tmp.addr = htonl(dhcps->client_address_plus.addr); + addr_tmp.addr++; + dhcps->client_address_plus.addr = htonl(addr_tmp.addr); + dhcps->client_address.addr = dhcps->client_address_plus.addr; + } + + if (flag == false) { // search the fisrt unused ip + if (first_address.addr < pdhcps_pool->ip.addr) { + flag = true; + } else { + addr_tmp.addr = htonl(first_address.addr); + addr_tmp.addr++; + first_address.addr = htonl(addr_tmp.addr); + } + } + } + } else { + dhcps->client_address.addr = dhcps->dhcps_poll.start_ip.addr; + } + + if (dhcps->client_address_plus.addr > dhcps->dhcps_poll.end_ip.addr) { + dhcps->client_address.addr = first_address.addr; + } + + if (dhcps->client_address.addr > dhcps->dhcps_poll.end_ip.addr) { + dhcps->client_address_plus.addr = dhcps->dhcps_poll.start_ip.addr; + pdhcps_pool = NULL; + pnode = NULL; + } else { + pdhcps_pool = (struct dhcps_pool *)mem_malloc(sizeof(struct dhcps_pool)); + + pdhcps_pool->ip.addr = dhcps->client_address.addr; + memcpy(pdhcps_pool->mac, m->chaddr, sizeof(pdhcps_pool->mac)); + pdhcps_pool->lease_timer = lease_timer; + pnode = (list_node *)mem_malloc(sizeof(list_node)); + + pnode->pnode = pdhcps_pool; + pnode->pnext = NULL; + node_insert_to_list(&dhcps->plist, pnode); + + if (dhcps->client_address.addr == dhcps->dhcps_poll.end_ip.addr) { + dhcps->client_address_plus.addr = dhcps->dhcps_poll.start_ip.addr; + } else { + addr_tmp.addr = htonl(dhcps->client_address.addr); + addr_tmp.addr++; + dhcps->client_address_plus.addr = htonl(addr_tmp.addr); + } + } + +POOL_CHECK: + + if ((dhcps->client_address.addr > dhcps->dhcps_poll.end_ip.addr) || (ip4_addr_isany(&dhcps->client_address))) { + if (pnode != NULL) { + node_remove_from_list(&dhcps->plist, pnode); + mem_free(pnode); + pnode = NULL; + } + + if (pdhcps_pool != NULL) { + mem_free(pdhcps_pool); + pdhcps_pool = NULL; + } + + return 4; + } + + s16_t ret = parse_options(dhcps, &m->options[4], len);; + + if (ret == DHCPS_STATE_RELEASE || ret == DHCPS_STATE_NAK) { + if (pnode != NULL) { + node_remove_from_list(&dhcps->plist, pnode); + mem_free(pnode); + pnode = NULL; + } + + if (pdhcps_pool != NULL) { + mem_free(pdhcps_pool); + pdhcps_pool = NULL; + } + + memset(&dhcps->client_address, 0x0, sizeof(dhcps->client_address)); + } + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: xid changed\n"); + DHCPS_LOG("dhcps: client_address.addr = %x\n", dhcps->client_address.addr); +#endif + return ret; + } + + return 0; +} + +/****************************************************************************** + * FunctionName : handle_dhcp + * Description : If an incoming DHCP message is in response to us, then trigger the state machine + * Parameters : arg -- arg user supplied argument (udp_pcb.recv_arg) + * pcb -- the udp_pcb which received data + * p -- the packet buffer that was received + * addr -- the remote IP address from which the packet was received + * port -- the remote port from which the packet was received + * Returns : none +*******************************************************************************/ +static void handle_dhcp(void *arg, + struct udp_pcb *pcb, + struct pbuf *p, + const ip_addr_t *addr, + u16_t port) +{ + struct dhcps_t *dhcps = arg; + struct dhcps_msg *pmsg_dhcps = NULL; + s16_t tlen, malloc_len; + u16_t i; + u16_t dhcps_msg_cnt = 0; + u8_t *p_dhcps_msg = NULL; + u8_t *data; + s16_t state; + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp-> receive a packet\n"); +#endif + + if (p == NULL) { + return; + } + + malloc_len = sizeof(struct dhcps_msg); +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp malloc_len=%d rx_len=%d", malloc_len, p->tot_len); +#endif + if (malloc_len < p->tot_len) { + malloc_len = p->tot_len; + } + + pmsg_dhcps = (struct dhcps_msg *)mem_malloc(malloc_len); + if (NULL == pmsg_dhcps) { + pbuf_free(p); + return; + } + + p_dhcps_msg = (u8_t *)pmsg_dhcps; + tlen = p->tot_len; + data = p->payload; + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp-> p->tot_len = %d\n", tlen); + DHCPS_LOG("dhcps: handle_dhcp-> p->len = %d\n", p->len); +#endif + + for (i = 0; i < p->len; i++) { + p_dhcps_msg[dhcps_msg_cnt++] = data[i]; +#if DHCPS_DEBUG + DHCPS_LOG("%02x ", data[i]); + + if ((i + 1) % 16 == 0) { + DHCPS_LOG("\n"); + } + +#endif + } + + if (p->next != NULL) { +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp-> p->next != NULL\n"); + DHCPS_LOG("dhcps: handle_dhcp-> p->next->tot_len = %d\n", p->next->tot_len); + DHCPS_LOG("dhcps: handle_dhcp-> p->next->len = %d\n", p->next->len); +#endif + + data = p->next->payload; + + for (i = 0; i < p->next->len; i++) { + p_dhcps_msg[dhcps_msg_cnt++] = data[i]; +#if DHCPS_DEBUG + DHCPS_LOG("%02x ", data[i]); + + if ((i + 1) % 16 == 0) { + DHCPS_LOG("\n"); + } + +#endif + } + } + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp-> parse_msg(p)\n"); +#endif + + state = parse_msg(dhcps, pmsg_dhcps, tlen - 240); +#ifdef LWIP_HOOK_DHCPS_POST_STATE + state = LWIP_HOOK_DHCPS_POST_STATE(pmsg_dhcps, malloc_len, state); +#endif /* LWIP_HOOK_DHCPS_POST_STATE */ + + switch (state) { + case DHCPS_STATE_OFFER://1 +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp-> DHCPD_STATE_OFFER\n"); +#endif + send_offer(dhcps, pmsg_dhcps, malloc_len); + break; + + case DHCPS_STATE_ACK://3 +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp-> DHCPD_STATE_ACK\n"); +#endif + send_ack(dhcps, pmsg_dhcps, malloc_len); + break; + + case DHCPS_STATE_NAK://4 +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp-> DHCPD_STATE_NAK\n"); +#endif + send_nak(dhcps, pmsg_dhcps, malloc_len); + break; + + default : + break; + } + +#if DHCPS_DEBUG + DHCPS_LOG("dhcps: handle_dhcp-> pbuf_free(p)\n"); +#endif + pbuf_free(p); + mem_free(pmsg_dhcps); + pmsg_dhcps = NULL; +} + +/****************************************************************************** + * FunctionName : dhcps_poll_set + * Description : set ip poll from start to end for station + * Parameters : ip -- The current ip addr + * Returns : none +*******************************************************************************/ +static void dhcps_poll_set(dhcps_t *dhcps, u32_t ip) +{ + u32_t softap_ip = 0, local_ip = 0; + u32_t start_ip = 0; + u32_t end_ip = 0; + dhcps_lease_t *dhcps_poll = &dhcps->dhcps_poll; + if (dhcps_poll->enable == true) { + softap_ip = htonl(ip); + start_ip = htonl(dhcps_poll->start_ip.addr); + end_ip = htonl(dhcps_poll->end_ip.addr); + + /*config ip information can't contain local ip*/ + if ((start_ip <= softap_ip) && (softap_ip <= end_ip)) { + dhcps_poll->enable = false; + } else { + /*config ip information must be in the same segment as the local ip*/ + softap_ip >>= 8; + + if (((start_ip >> 8 != softap_ip) || (end_ip >> 8 != softap_ip)) + || (end_ip - start_ip > DHCPS_MAX_LEASE)) { + dhcps_poll->enable = false; + } + } + } + + if (dhcps_poll->enable == false) { + local_ip = softap_ip = htonl(ip); + softap_ip &= 0xFFFFFF00; + local_ip &= 0xFF; + + if (local_ip >= 0x80) { + local_ip -= DHCPS_MAX_LEASE; + } else { + local_ip ++; + } + + bzero(dhcps_poll, sizeof(*dhcps_poll)); + dhcps_poll->start_ip.addr = softap_ip | local_ip; + dhcps_poll->end_ip.addr = softap_ip | (local_ip + DHCPS_MAX_LEASE - 1); + dhcps_poll->start_ip.addr = htonl(dhcps_poll->start_ip.addr); + dhcps_poll->end_ip.addr = htonl(dhcps_poll->end_ip.addr); + } + +} + + +/****************************************************************************** + * FunctionName : dhcps_set_new_lease_cb + * Description : set callback for dhcp server when it assign an IP + * to the connected dhcp client + * Parameters : cb -- callback for dhcp server + * Returns : ERR_OK on success +*******************************************************************************/ +err_t dhcps_set_new_lease_cb(dhcps_t *dhcps, dhcps_cb_t cb, void* cb_arg) +{ + if (dhcps == NULL) { + return ERR_ARG; + } + dhcps->dhcps_cb = cb; + dhcps->dhcps_cb_arg = cb_arg; + return ERR_OK; +} + +/****************************************************************************** + * FunctionName : dhcps_start + * Description : start dhcp server function + * Parameters : netif -- The current netif addr + * : info -- The current ip info + * Returns : none +*******************************************************************************/ +err_t dhcps_start(dhcps_t *dhcps, struct netif *netif, ip4_addr_t ip) +{ + if (dhcps == NULL || netif == NULL) { + return ERR_ARG; + } + dhcps->dhcps_netif = netif; + if (dhcps->dhcps_pcb != NULL) { + udp_remove(dhcps->dhcps_pcb); + } + + dhcps->dhcps_pcb = udp_new(); + + if (dhcps->dhcps_pcb == NULL || ip4_addr_isany_val(ip)) { + printf("dhcps_start(): could not obtain pcb\n"); + return ERR_ARG; + } + + IP4_ADDR(&dhcps->broadcast_dhcps, 255, 255, 255, 255); + + dhcps->server_address.addr = ip.addr; + dhcps_poll_set(dhcps, dhcps->server_address.addr); + + dhcps->client_address_plus.addr = dhcps->dhcps_poll.start_ip.addr; + + udp_bind(dhcps->dhcps_pcb, &netif->ip_addr, DHCPS_SERVER_PORT); + udp_recv(dhcps->dhcps_pcb, handle_dhcp, dhcps); +#if DHCPS_DEBUG + DHCPS_LOG("dhcps:dhcps_start->udp_recv function Set a receive callback handle_dhcp for UDP_PCB pcb_dhcps\n"); +#endif + dhcps->state = DHCPS_HANDLE_STARTED; + sys_timeout(DHCP_COARSE_TIMER_MSECS, dhcps_tmr, dhcps); + return ERR_OK; +} + +/****************************************************************************** + * FunctionName : dhcps_stop + * Description : stop dhcp server function + * Parameters : netif -- The current netif addr + * Returns : none +*******************************************************************************/ +err_t dhcps_stop(dhcps_t *dhcps, struct netif *netif) +{ + if (dhcps == NULL || netif == NULL || dhcps->dhcps_netif != netif) { +#if DHCPS_DEBUG + DHCPS_LOG("dhcps_stop: netif is NULL or invalid\n"); +#endif + return ERR_ARG; + } + + if (dhcps->dhcps_pcb != NULL) { + udp_disconnect(dhcps->dhcps_pcb); + udp_remove(dhcps->dhcps_pcb); + dhcps->dhcps_pcb = NULL; + } + + list_node *pnode = NULL; + list_node *pback_node = NULL; + pnode = dhcps->plist; + + while (pnode != NULL) { + pback_node = pnode; + pnode = pback_node->pnext; + node_remove_from_list(&dhcps->plist, pback_node); + mem_free(pback_node->pnode); + pback_node->pnode = NULL; + mem_free(pback_node); + pback_node = NULL; + } + sys_untimeout(dhcps_tmr, dhcps); + dhcps->state = DHCPS_HANDLE_STOPPED; + return ERR_OK; +} + +/****************************************************************************** + * FunctionName : kill_oldest_dhcps_pool + * Description : remove the oldest node from list + * Parameters : none + * Returns : none +*******************************************************************************/ +static void kill_oldest_dhcps_pool(dhcps_t *dhcps) +{ + list_node *pre = NULL, *p = NULL; + list_node *minpre = NULL, *minp = NULL; + struct dhcps_pool *pdhcps_pool = NULL, *pmin_pool = NULL; + pre = dhcps->plist; +// assert(pre != NULL && pre->pnext != NULL); // Expect the list to have at least 2 nodes + p = pre->pnext; + minpre = pre; + minp = p; + + while (p != NULL) { + pdhcps_pool = p->pnode; + pmin_pool = minp->pnode; + + if (pdhcps_pool->lease_timer < pmin_pool->lease_timer) { + minp = p; + minpre = pre; + } + + pre = p; + p = p->pnext; + } + + minpre->pnext = minp->pnext; + mem_free(minp->pnode); + minp->pnode = NULL; + mem_free(minp); + minp = NULL; +} + +/****************************************************************************** + * FunctionName : dhcps_coarse_tmr + * Description : the lease time count + * Parameters : none + * Returns : none +*******************************************************************************/ +static void dhcps_tmr(void *arg) +{ + dhcps_t *dhcps = arg; + dhcps_handle_state state = dhcps->state; + if (state == DHCPS_HANDLE_DELETE_PENDING) { + mem_free(dhcps); + return; + } + + if (state != DHCPS_HANDLE_STARTED) { + return; + } + sys_timeout(DHCP_COARSE_TIMER_MSECS, dhcps_tmr, dhcps); + u8_t num_dhcps_pool = 0; + list_node *pback_node = NULL; + list_node *pnode = NULL; + struct dhcps_pool *pdhcps_pool = NULL; + pnode = dhcps->plist; + + while (pnode != NULL) { + pdhcps_pool = pnode->pnode; + pdhcps_pool->lease_timer --; + + if (pdhcps_pool->lease_timer == 0) { + pback_node = pnode; + pnode = pback_node->pnext; + node_remove_from_list(&dhcps->plist, pback_node); + mem_free(pback_node->pnode); + pback_node->pnode = NULL; + mem_free(pback_node); + pback_node = NULL; + } else { + pnode = pnode ->pnext; + num_dhcps_pool ++; + } + } + + if (num_dhcps_pool > MAX_STATION_NUM) { + kill_oldest_dhcps_pool(dhcps); + } +} + +/****************************************************************************** + * FunctionName : dhcp_search_ip_on_mac + * Description : Search ip address based on mac address + * Parameters : mac -- The MAC addr + * ip -- The IP info + * Returns : true or false +*******************************************************************************/ +bool dhcp_search_ip_on_mac(dhcps_t *dhcps, u8_t *mac, ip4_addr_t *ip) +{ + struct dhcps_pool *pdhcps_pool = NULL; + list_node *pback_node = NULL; + bool ret = false; + + if (dhcps == NULL) { + return false; + } + + for (pback_node = dhcps->plist; pback_node != NULL; pback_node = pback_node->pnext) { + pdhcps_pool = pback_node->pnode; + + if (memcmp(pdhcps_pool->mac, mac, sizeof(pdhcps_pool->mac)) == 0) { + memcpy(&ip->addr, &pdhcps_pool->ip.addr, sizeof(pdhcps_pool->ip.addr)); + ret = true; + break; + } + } + + return ret; +} + +/****************************************************************************** + * FunctionName : dhcps_dns_setserver + * Description : set DNS server address for dhcpserver + * Parameters : dnsserver -- The DNS server address + * Returns : ERR_ARG if invalid handle, ERR_OK on success +*******************************************************************************/ +err_t dhcps_dns_setserver(dhcps_t *dhcps, const ip_addr_t *dnsserver) +{ + if (dhcps == NULL) { + return ERR_ARG; + } + if (dnsserver != NULL) { + dhcps->dns_server = *(ip_2_ip4(dnsserver)); + } else { + dhcps->dns_server = *(ip_2_ip4(IP_ADDR_ANY)); + } + return ERR_OK; +} + +/****************************************************************************** + * FunctionName : dhcps_dns_getserver + * Description : get DNS server address for dhcpserver + * Parameters : none + * Returns : ip4_addr_t +*******************************************************************************/ +err_t dhcps_dns_getserver(dhcps_t *dhcps, ip4_addr_t *dnsserver) +{ + if (dhcps) { + *dnsserver = dhcps->dns_server; + return ERR_OK; + } + return ERR_ARG; +} +#endif // ESP_DHCPS diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.h b/BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.h new file mode 100644 index 000000000..7ea8deee4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/dhcp_server.h @@ -0,0 +1,192 @@ +/* + * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#ifndef __DHCPS_H__ +#define __DHCPS_H__ + +//#include "sdkconfig.h" +#include +#include "lwip/ip_addr.h" +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct dhcps_state{ + s16_t state; +} dhcps_state; + +typedef struct dhcps_msg { + uint8_t op, htype, hlen, hops;// operation code, hw type, hw addr len, hops + uint8_t xid[4];// transaction id + uint16_t secs, flags; // seconds, flags + uint8_t ciaddr[4];// client ip addr + uint8_t yiaddr[4];// your ip addr + uint8_t siaddr[4];// server ip addr + uint8_t giaddr[4];// GW ip + uint8_t chaddr[16];// client hw address + uint8_t sname[64];// server name + uint8_t file[128];// boot filename + uint8_t options[312]; +}dhcps_msg; + +/* Defined in esp_misc.h */ +typedef struct { + bool enable; + ip4_addr_t start_ip; + ip4_addr_t end_ip; +} dhcps_lease_t; + +enum dhcps_offer_option{ + OFFER_START = 0x00, + OFFER_ROUTER = 0x01, + OFFER_DNS = 0x02, + OFFER_END +}; + +/** @brief DHCP server's description of compile time configuration values in dhcpserver.c + * + * - DHCPS_DEBUG: Prints very detailed debug messages if set to 1, hardcoded to 0 + * - USE_CLASS_B_NET: Use class B network mask if enabled, not-defined (could be enabled as CC_FLAGS) + * - MAX_STATION_NUM: Maximum number of clients, set to Kconfig value CONFIG_LWIP_DHCPS_MAX_STATION_NUM + * - LWIP_HOOK_DHCPS_POST_STATE: Used to inject user code after parsing DHCP message, not defined + * - could be enabled in lwipopts.h or via CC_FLAGS + * - basic usage of the hook to print hex representation of the entire option field is below: + * #define LWIP_HOOK_DHCPS_POST_STATE(msg, len, state) \ + * ({ s16_t ret = state; if (state == DHCPS_STATE_ACK) { ESP_LOG_BUFFER_HEXDUMP("DHCPS",msg->options, 312, ESP_LOG_INFO);} ret; }) + */ + +/** + * @brief Definitions related to lease time, units and limits + */ +#define DHCPS_COARSE_TIMER_SECS 1 +#define DHCPS_MAX_LEASE 0x64 +#define DHCPS_LEASE_TIME_DEF (120) +#define DHCPS_LEASE_UNIT CONFIG_LWIP_DHCPS_LEASE_UNIT + +struct dhcps_pool{ + ip4_addr_t ip; + u8_t mac[6]; + u32_t lease_timer; +}; + +typedef u32_t dhcps_time_t; +typedef u8_t dhcps_offer_t; + +typedef struct { + dhcps_offer_t dhcps_offer; + dhcps_offer_t dhcps_dns; + dhcps_time_t dhcps_time; + dhcps_lease_t dhcps_poll; +} dhcps_options_t; + +typedef void (*dhcps_cb_t)(void* cb_arg, u8_t client_ip[4], u8_t client_mac[6]); + +static inline bool dhcps_router_enabled (dhcps_offer_t offer) +{ + return (offer & OFFER_ROUTER) != 0; +} + +static inline bool dhcps_dns_enabled (dhcps_offer_t offer) +{ + return (offer & OFFER_DNS) != 0; +} + +typedef struct dhcps_t dhcps_t; + +/** + * @brief Creates new DHCP server object + * + * @return Pointer to the DHCP server handle on success, NULL on error + */ +dhcps_t *dhcps_new(void); + +/** + * @brief Deletes supplied DHPC server object + * + * @warning This may not delete the handle immediately if the server wasn't + * stopped properly, but mark for deleting once the timer callback occurs + * + * @param dhcps Pointer to the DHCP handle + */ +void dhcps_delete(dhcps_t *dhcps); + +/** + * @brief Starts the DHCP server on the specified network interface + * + * @param dhcps Pointer to the DHCP handle + * @param netif Pointer to the lwIP's network interface struct + * @param ip DHCP server's address + * @return ERR_ARG if invalid args, ERR_OK on success + */ +err_t dhcps_start(dhcps_t *dhcps, struct netif *netif, ip4_addr_t ip); + +/** + * @brief Stops the DHCP server on the specified netif + * @param dhcps Pointer to the DHCP handle + * @param netif Pointer to the lwIP's network interface struct + * @return ERR_ARG if invalid args, ERR_OK on success + */ +err_t dhcps_stop(dhcps_t *dhcps, struct netif *netif); + +/** + * @brief Gets the DHCP server option info + * @param dhcps Pointer to the DHCP handle + * @param op_id DHCP message option id + * @param opt_len DHCP message option length + * @return DHCP message option addr + */ +void *dhcps_option_info(dhcps_t *dhcps, u8_t op_id, u32_t opt_len); + +/** + * @brief Sets the DHCP server option info + * @param dhcps Pointer to the DHCP handle + * @param op_id DHCP message option id + * @param opt_info DHCP message option info + * @param opt_len DHCP message option length + * @return ERR_ARG if invalid args, ERR_OK on success + */ +err_t dhcps_set_option_info(dhcps_t *dhcps, u8_t op_id, void *opt_info, u32_t opt_len); + +/** + * @brief Tries to find IP address corresponding to the supplied MAC + * @param dhcps Pointer to the DHCP handle + * @param mac Supplied MAC address + * @param ip Pointer to the resultant IP address + * @return True if the IP address has been found + */ +bool dhcp_search_ip_on_mac(dhcps_t *dhcps, u8_t *mac, ip4_addr_t *ip); + +/** + * @brief Sets DNS server address for the DHCP server + * @param dhcps Pointer to the DHCP handle + * @param dnsserver Address of the DNS server + * @return ERR_ARG if invalid handle, ERR_OK on success + */ +err_t dhcps_dns_setserver(dhcps_t *dhcps, const ip_addr_t *dnsserver); + +/** + * @brief Gets DNS server associated with this DHCP server + * @param dhcps Pointer to the DHCP handle + * @param dnsserver Address of the DNS server + * @return ERR_ARG if invalid handle, ERR_OK on success + */ +err_t dhcps_dns_getserver(dhcps_t *dhcps, ip4_addr_t *dnsserver); + +/** + * @brief Sets callback on assigning an IP to the connected client + * @param dhcps Pointer to the DHCP handle + * @param cb Callback for dhcp server + * @param cb_arg Context pointer to be added to the callback + * @return ERR_ARG if invalid handle, ERR_OK on success + */ +err_t dhcps_set_new_lease_cb(dhcps_t *dhcps, dhcps_cb_t cb, void* cb_arg); + +#ifdef __cplusplus +} +#endif + +#endif /* __DHCPS_H__ */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/dhcpserver_options.h b/BLE_EXAMPLE/src/main/cpp/lwip/dhcpserver_options.h new file mode 100644 index 000000000..960e7aa57 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/dhcpserver_options.h @@ -0,0 +1,147 @@ +// Copyright 2017 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once + +#define ESP_DHCPS 1 +#define DHCP_COARSE_TIMER_MSECS 1000 +#define CONFIG_LWIP_DHCPS_MAX_STATION_NUM 500 +#define DHCPS_LEASE_UNIT 1000 + + +#ifdef __cplusplus +extern "C" { +#endif +/** DHCP Options + + This macros are not part of the public dhcpserver.h interface. + **/ +typedef enum +{ + /* RFC 1497 Vendor Extensions */ + + PAD = 0, + END = 255, + + SUBNET_MASK = 1, + TIME_OFFSET = 2, + ROUTER = 3, + TIME_SERVER = 4, + NAME_SERVER = 5, + DOMAIN_NAME_SERVER = 6, + LOG_SERVER = 7, + COOKIE_SERVER = 8, + LPR_SERVER = 9, + IMPRESS_SERVER = 10, + RESOURCE_LOCATION_SERVER = 11, + HOST_NAME = 12, + BOOT_FILE_SIZE = 13, + MERIT_DUMP_FILE = 14, + DOMAIN_NAME = 15, + SWAP_SERVER = 16, + ROOT_PATH = 17, + EXTENSIONS_PATH = 18, + + /* IP Layer Parameters per Host */ + + IP_FORWARDING = 19, + NON_LOCAL_SOURCE_ROUTING = 20, + POLICY_FILTER = 21, + MAXIMUM_DATAGRAM_REASSEMBLY_SIZE = 22, + DEFAULT_IP_TIME_TO_LIVE = 23, + PATH_MTU_AGING_TIMEOUT = 24, + PATH_MTU_PLATEAU_TABLE = 25, + + /* IP Layer Parameters per Interface */ + + INTERFACE_MTU = 26, + ALL_SUBNETS_ARE_LOCAL = 27, + BROADCAST_ADDRESS = 28, + PERFORM_MASK_DISCOVERY = 29, + MASK_SUPPLIER = 30, + PERFORM_ROUTER_DISCOVERY = 31, + ROUTER_SOLICITATION_ADDRESS = 32, + STATIC_ROUTE = 33, + + /* Link Layer Parameters per Interface */ + + TRAILER_ENCAPSULATION = 34, + ARP_CACHE_TIMEOUT = 35, + ETHERNET_ENCAPSULATION = 36, + + /* TCP Parameters */ + + TCP_DEFAULT_TTL = 37, + TCP_KEEPALIVE_INTERVAL = 38, + TCP_KEEPALIVE_GARBAGE = 39, + + /* Application and Service Parameters */ + + NETWORK_INFORMATION_SERVICE_DOMAIN = 40, + NETWORK_INFORMATION_SERVERS = 41, + NETWORK_TIME_PROTOCOL_SERVERS = 42, + VENDOR_SPECIFIC_INFORMATION = 43, + NETBIOS_OVER_TCP_IP_NAME_SERVER = 44, + NETBIOS_OVER_TCP_IP_DATAGRAM_DISTRIBUTION_SERVER = 45, + NETBIOS_OVER_TCP_IP_NODE_TYPE = 46, + NETBIOS_OVER_TCP_IP_SCOPE = 47, + X_WINDOW_SYSTEM_FONT_SERVER = 48, + X_WINDOW_SYSTEM_DISPLAY_MANAGER = 49, + NETWORK_INFORMATION_SERVICE_PLUS_DOMAIN = 64, + NETWORK_INFORMATION_SERVICE_PLUS_SERVERS = 65, + MOBILE_IP_HOME_AGENT = 68, + SMTP_SERVER = 69, + POP3_SERVER = 70, + NNTP_SERVER = 71, + DEFAULT_WWW_SERVER = 72, + DEFAULT_FINGER_SERVER = 73, + DEFAULT_IRC_SERVER = 74, + STREETTALK_SERVER = 75, + STREETTALK_DIRECTORY_ASSISTANCE_SERVER = 76, + + /* DHCP Extensions */ + + REQUESTED_IP_ADDRESS = 50, + IP_ADDRESS_LEASE_TIME = 51, + OPTION_OVERLOAD = 52, + TFTP_SERVER_NAME = 66, + BOOTFILE_NAME = 67, + DHCP_MESSAGE_TYPE = 53, + SERVER_IDENTIFIER = 54, + PARAMETER_REQUEST_LIST = 55, + MESSAGE = 56, + MAXIMUM_DHCP_MESSAGE_SIZE = 57, + RENEWAL_T1_TIME_VALUE = 58, + REBINDING_T2_TIME_VALUE = 59, + VENDOR_CLASS_IDENTIFIER = 60, + CLIENT_IDENTIFIER = 61, + + USER_CLASS = 77, + FQDN = 81, + DHCP_AGENT_OPTIONS = 82, + NDS_SERVERS = 85, + NDS_TREE_NAME = 86, + NDS_CONTEXT = 87, + CLIENT_LAST_TRANSACTION_TIME = 91, + ASSOCIATED_IP = 92, + USER_AUTHENTICATION_PROTOCOL = 98, + AUTO_CONFIGURE = 116, + NAME_SERVICE_SEARCH = 117, + SUBNET_SELECTION = 118, + DOMAIN_SEARCH = 119, + CLASSLESS_ROUTE = 121, +} dhcp_msg_option; + +#ifdef __cplusplus +} +#endif diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.c b/BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.c new file mode 100644 index 000000000..237134104 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.c @@ -0,0 +1,255 @@ +#include +#include +#include +#include +#include +#include +#include "lwip/opt.h" +#include "lwip/udp.h" +#include "lwip/mem.h" +#include "dnsproxy.h" +#include "eth_router.h" +#include "eth_queue.h" + +static u8_t mdns_payload[DNS_MSG_SIZE]; + +static struct udp_pcb *pdns_pcb = NULL; + +struct ETH_Q dns_q; + +static struct NHandle_t tNotifyHandle; +static pthread_t tHandle; + +#define MDNS_MAX_NAME_LENGTH (256) + +struct __attribute__((__packed__)) mdns_hdr { + u16_t id; + u8_t flags1; + u8_t flags2; + u16_t numquestions; + u16_t numanswers; + u16_t numauthrr; + u16_t numextrarr; +}; + +#define SIZEOF_DNS_HDR 12 + +struct __attribute__((__packed__)) mdns_query { + /* MDNS query record starts with either a domain name or a pointer + to a name already present somewhere in the packet. */ + u16_t type; + u16_t class; +}; + +#define SIZEOF_DNS_QUERY 4 + +struct __attribute__((__packed__)) mdns_answer { + /* MDNS answer record starts with either a domain name or a pointer + to a name already present somewhere in the packet. */ + u16_t type; + u16_t class; + u32_t ttl; + u16_t len; +}; +#define SIZEOF_DNS_ANSWER 10 + +struct DNS_RECORD { + uint16_t query_type; + uint16_t query_class; + uint8_t name[512]; + uint32_t ip; + uint16_t port; + uint16_t id; +}; + +static int query_decode(uint8_t* query, int len, struct DNS_RECORD* out) { + int pos=0; + int outpos=0; + do { + if (pos>=len) return -1; + uint8_t nlen=query[pos++]; + if (nlen==0) break; + if (outpos+nlen>=sizeof(out->name)-1) return -1; + if (pos+nlen>len) return -1; + for (int i=0; iname[outpos++]=query[pos++]; + out->name[outpos++]='.'; + } while(1); + if (pos+4>len) return -1; + if (outpos>0) outpos--; + out->name[outpos]=0; + out->query_type=(query[pos]<<8)+query[pos+1]; + out->query_class=(query[pos+2]<<8)+query[pos+3]; + return pos+4; + } + +static void pdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *iaddr, u16_t port) { + u8_t i; + struct mdns_hdr *hdr; + u8_t nquestions; + LWIP_UNUSED_ARG(arg); + LWIP_UNUSED_ARG(pcb); + struct mdns_info *info = (struct mdns_info *)arg; + /* is the dns message too big ? */ + if (p->tot_len > DNS_MSG_SIZE) { + LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too big\n")); + /* free pbuf and return */ + goto memerr1; + } + + /* is the dns message big enough ? */ + if (p->tot_len < (SIZEOF_DNS_HDR + SIZEOF_DNS_QUERY + SIZEOF_DNS_ANSWER)) { + LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too small\n")); + /* free pbuf and return */ + goto memerr1; + } + /* copy dns payload inside static buffer for processing */ + if (pbuf_copy_partial(p, mdns_payload, p->tot_len, 0) != p->tot_len) goto memerr1; + + hdr = (struct mdns_hdr*) mdns_payload; + uint8_t* data=(uint8_t*) mdns_payload + SIZEOF_DNS_HDR; + + struct ETH_PBUF* p_req=eth_pbuf_alloc(&xeth_pbuf_ctrl, NULL); + if (p_req==NULL) goto memerr1; + + print_log("DNS request: id=%04X fg1=%02X fg2=%02X nq=%d na=%d", htons(hdr->id), hdr->flags1, hdr->flags2, htons(hdr->numquestions), htons(hdr->numanswers)); + int num_q=htons(hdr->numquestions); + int num_a=htons(hdr->numanswers); + if (num_a!=0) goto memerr2; + if (num_q!=1) goto memerr2; + int remain_len=p->tot_len-SIZEOF_DNS_HDR; + struct DNS_RECORD* rec=(struct DNS_RECORD*)p_req->pbuf.payload; + int len=query_decode(data, remain_len, rec); + if (len<0) goto memerr2; + rec->id=htons(hdr->id); + rec->ip=*(uint32_t*)iaddr; + rec->port=port; + print_log("DNS request: <%s> from ip=%d.%d.%d.%d port=%d", rec->name, (rec->ip)&0xff, (rec->ip>>8)&0xff, (rec->ip>>16)&0xff, (rec->ip>>24)&0xff, rec->port); + add_to_custom_queue(&p_req->pbuf, &dns_q); + TNotifyAdd( &tNotifyHandle, 1); + + goto memerr1; +memerr2: + eth_pbuf_free_request(p_req); +memerr1: + pbuf_free(p); + return; + } +// a a a . b b b . c c c 0 +// 3 a a a 3 b b b 3 c c c 0 +// 0 1 2 3 4 5 6 7 8 9 B C D + int dns_encode_name(uint8_t* dst, uint8_t* str) { + int pos=0; + int cnt=0; + do { + if (str[pos]=='.') { dst[pos-cnt]=cnt; cnt=0; pos++; continue;} + if (str[pos]==0) { dst[pos-cnt]=cnt; dst[pos+1]=0; pos+=2; break; } + dst[pos+1]=str[pos]; + pos++; cnt++; + } while(1); + return pos; + } + +_Noreturn void dnsproxy_thread(void* arg) { + + struct pbuf* p; + while (1) { + uint32_t res=TNotifyWait( &tNotifyHandle ); + do { + p=get_from_custom_queue(&dns_q); + if (p==NULL) break; + + struct DNS_RECORD* rec=(struct DNS_RECORD*)p->payload; + + int status; + struct addrinfo hints; + struct addrinfo *servinfo; // указатель на результаты + memset(&hints, 0, sizeof hints); // убедимся, что структура пуста + hints.ai_family = PF_INET;//AF_UNSPEC - AF_INET; // неважно, IPv4 или IPv6 + hints.ai_socktype = SOCK_STREAM; // TCP stream-sockets + hints.ai_flags = AI_PASSIVE; // заполните мой IP-адрес за меняif ((status = getaddrinfo(NULL, «3490», &hints, &servinfo)) != 0) { + status = getaddrinfo(rec->name, NULL, &hints, &servinfo);// servinfo теперь — + if (status==0 && servinfo->ai_family==AF_INET) { + uint8_t* ip=(uint8_t*)&((struct sockaddr_in *)servinfo->ai_addr)->sin_addr; + print_log("DNS query service: <%s> IP=%d.%d.%d.%d", rec->name, ip[0], ip[1], ip[2], ip[3]); + + struct pbuf* p1 = pbuf_alloc(PBUF_TRANSPORT, 1400, PBUF_RAM); + if (p1 != NULL) { + int pos=0; + struct mdns_hdr* hdr=p1->payload; + hdr->id=htons(rec->id); + hdr->flags1=0x81; + hdr->flags2=0x80; + // FLAGS1 FLAGS2 Flags: 0x8180 Standard query response, No error + // 1... .... .... .... = Response: Message is a response + // .000 0... .... .... = Opcode: Standard query (0) + // .... .0.. .... .... = Authoritative: Server is not an authority for domain + // .... ..0. .... .... = Truncated: Message is not truncated + // .... ...1 .... .... = Recursion desired: Do query recursively + // .... .... 1... .... = Recursion available: Server can do recursive queries + // .... .... .0.. .... = Z: reserved (0) + // .... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server + // .... .... ...0 .... = Non-authenticated data: Unacceptable + // .... .... .... 0000 = Reply code: No error (0) + + hdr->numquestions=htons(1); + hdr->numanswers=htons(1); + hdr->numauthrr=htons(0); + hdr->numextrarr=htons(0); + uint8_t dpos=sizeof(struct mdns_hdr); + uint8_t* rsp=(uint8_t*)p1->payload; + int ret=dns_encode_name(rsp+dpos, rec->name); + if (ret>0) { + dpos += ret; + rsp[dpos++]=0;// TYPE + rsp[dpos++]=1; + rsp[dpos++]=0;// CLASS + rsp[dpos++]=1; + rsp[dpos++]=0xc0;// answer: name + rsp[dpos++]=0x0c; + rsp[dpos++]=0;// type + rsp[dpos++]=1; + rsp[dpos++]=0;// class + rsp[dpos++]=1; + rsp[dpos++]=0;// TTL + rsp[dpos++]=0;// TTL + rsp[dpos++]=0x27;// TTL + rsp[dpos++]=0x10;// TTL + rsp[dpos++]=0;// data length + rsp[dpos++]=4;// data length + rsp[dpos++]=ip[0]; + rsp[dpos++]=ip[1]; + rsp[dpos++]=ip[2]; + rsp[dpos++]=ip[3]; + p1->len=dpos; + p1->tot_len=dpos; + char ans[3000]; int pt=0; + for (int i=0; i", ans); + udp_sendto(pdns_pcb, p1, &rec->ip, rec->port); + } + pbuf_free(p1); + } + + } else print_log("DNS query err (status=%d)", status); + pbuf_free(p); + } while(1); + + } + + } + + +void dnsproxy_init() { + dns_q.q_len_max=5; + int ret; + pdns_pcb = udp_new(); + if (pdns_pcb) { + ret=udp_bind(pdns_pcb, IP_ADDR_ANY, 53); + if (ret) return; + udp_recv(pdns_pcb, pdns_recv, NULL); + } + + TaskCreate (dnsproxy_thread, &tHandle); + TNotifyCreate(&tNotifyHandle); + + } diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.h b/BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.h new file mode 100644 index 000000000..3bcc5d41f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/dnsproxy.h @@ -0,0 +1,3 @@ +#define DNS_MSG_SIZE 1500 + +void dnsproxy_init(); diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/eth_router_if_lwip.c b/BLE_EXAMPLE/src/main/cpp/lwip/eth_router_if_lwip.c new file mode 100644 index 000000000..c989b2969 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/eth_router_if_lwip.c @@ -0,0 +1,150 @@ +// LWIP interface for router + +#include + +#include "lwip/lwip.h" +#include "lwip/opt.h" +#include "lwip/timeouts.h" +#include "netif/ethernet.h" +#include "netif/etharp.h" +#include "lwip/tcpip.h" + +#include "lwip/pbuf.h" + +#include "eth_mem.h" +#include "eth_router_cfg.h" +#include "eth_router.h" +#include "lwip/eth_router_if_lwip.h" + +static struct ETH_QUEUEPOOL_CTRL* if_pool=&xeth_queuepool_ctrl; + +struct netif* lwip_netif; +static pthread_t xLWIP_input_task; +static pthread_t xLWIP_tmr_task; +struct NHandle_t TTskHandle; + +struct ETH_IF_LWIP_STATS eth_if_lwip; + +static char if_name[]="LWIP"; + +struct ETH_PBUF* block_to_send; + + +//#pragma optimize=none +static err_t lwip_output_to_bridge(struct netif *netif, struct pbuf *p) { + if (p->tot_len>ETH_MEM_BUF_SIZE) { + eth_if_lwip.in_too_big++; + return ERR_OK; + } + struct ETH_PBUF* block=eth_pbuf_alloc(&xeth_pbuf_ctrl, NULL); + if (block==NULL) { + eth_if_lwip.in_alloc_errs++; + return ERR_OK; + } + int ptr=0; + struct pbuf *frag; + for (frag=p; frag!=NULL; frag=frag->next) {// copy datagram payload from LWIP to ETH_MEM pbuf + if (frag->len+ptr<=ETH_MEM_BUF_SIZE) memcpy((uint8_t*)block->pbuf.payload+ptr, frag->payload, frag->len); + else { + eth_pbuf_free_request(block); + eth_if_lwip.in_too_big++; + return ERR_OK; + } + ptr+=frag->len; + } +// print_log("dgram from LWIP, size=%d",ptr); + block->pbuf.len=ptr; + block->pbuf.tot_len=ptr; + block->pbuf.if_idx=LWIP_NETIF_ID; + for (int i=0; i<6; i++) ((uint8_t*)(block->pbuf.payload))[i+6]=netif->hwaddr[i]; + + eth_add_packet_to_router_queue(block); + return ERR_OK; + } + + +static void to_lwip_QueueTask(void* arg) { + print_log("********** LWIP task started"); + while (1) { + int res=TNotifyWait( &TTskHandle ); + if (res & 2) { + LOCK_LWIP_CORE(); + sys_check_timeouts(); + UNLOCK_LWIP_CORE(); + } + if (res & 1) do { + if (block_to_send->pbuf.ref==0) while(1); + + int in=0; + int err=1; + LOCK_LWIP_CORE(); + if (lwip_netif->input) err=lwip_netif->input(&block_to_send->pbuf, lwip_netif); + UNLOCK_LWIP_CORE(); +// if (err == ERR_OK) in=1; +// print_log("dgram to LWIP, size=%d",block_to_send->pbuf.len); + if (err != ERR_OK) eth_pbuf_free_request(block_to_send); +// if (in==0) { +// eth_if_lwip.lwip_out_errs++; eth_if_lwip.lwip_out_err=err; +// LOCK_LWIP_CORE(); +// if (lwip_netif->input) err=lwip_netif->input(&block_to_send->pbuf, lwip_netif); +// UNLOCK_LWIP_CORE(); +// if (err) eth_pbuf_free_request(block_to_send); +// } + block_to_send=NULL; + struct ETH_PBUF* tb=eth_get_packet(&if_pool->eth_netif_array[LWIP_NETIF_ID]); + if (tb) block_to_send=tb; + } while (block_to_send); + + } + } + +static void to_lwip_TmrTask(void* arg) { + while(1) { + TNotifyAdd( &TTskHandle, 2); + usleep(1000*100); + } + } + +static void lwip_callback_from_bridge(struct ETH_PBUF* block, struct ETH_NETIF* enetif) { + block_to_send=block; + TNotifyAdd( &TTskHandle, 1); + } + + +err_t eth_lwip_if_init(struct netif *netif) { + LWIP_ASSERT("netif != NULL", (netif != NULL)); + lwip_netif=netif; + + netif->name[0] = 'L'; + netif->name[1] = 'W'; + + print_log("********** LWIP interface init"); + + netif->output = etharp_output; + + netif->linkoutput = lwip_output_to_bridge;//low_level_output; + + for (int i=0; i<6; i++) netif->hwaddr[i] = rand(); + netif->hwaddr[0]=0x00; + netif->hwaddr[1]=0x80; + netif->hwaddr_len = ETH_HWADDR_LEN; + netif->mtu = 1500;//ETH_MAX_PAYLOAD; + + netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP; + + if (xLWIP_input_task==NULL) { + if_pool->eth_netif_array[LWIP_NETIF_ID].callback_fn=lwip_callback_from_bridge; + TaskCreate (to_lwip_QueueTask, &xLWIP_input_task); + TaskCreate (to_lwip_TmrTask, &xLWIP_tmr_task); + TNotifyCreate(&TTskHandle); + while ( eth_get_packet(&if_pool->eth_netif_array[LWIP_NETIF_ID]) ); + } + + if_pool->eth_netif_array[LWIP_NETIF_ID].q_output_len_max=LWIP_NETIF_QLEN; + if_pool->eth_netif_array[LWIP_NETIF_ID].if_name=if_name; + + netif_set_up(netif); + netif_set_link_up(netif); + if_pool->eth_netif_array[LWIP_NETIF_ID].if_up=1; + return ERR_OK; + } diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/eth_router_if_lwip.h b/BLE_EXAMPLE/src/main/cpp/lwip/eth_router_if_lwip.h new file mode 100644 index 000000000..5e83dde3d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/eth_router_if_lwip.h @@ -0,0 +1,13 @@ +#define LWIP_TASK_STACK_SIZE 1024// x4 bytes +err_t eth_lwip_if_init(struct netif *netif); +extern struct netif* lwip_netif; + +struct ETH_IF_LWIP_STATS { + uint32_t in_frags; + uint32_t in_too_big; + uint32_t in_alloc_errs; + uint32_t lwip_out_errs; + err_enum_t lwip_out_err; + }; + +extern struct ETH_IF_LWIP_STATS eth_if_lwip; diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/cc.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/cc.h new file mode 100644 index 000000000..541528940 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/cc.h @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_ARCH_CC_H +#define LWIP_ARCH_CC_H + +/* see https://sourceforge.net/p/predef/wiki/OperatingSystems/ */ +#if defined __ANDROID__ +#define LWIP_UNIX_ANDROID +#elif defined __linux__ +#define LWIP_UNIX_LINUX +#elif defined __APPLE__ +#define LWIP_UNIX_MACH +#elif defined __OpenBSD__ +#define LWIP_UNIX_OPENBSD +#elif defined __CYGWIN__ +#define LWIP_UNIX_CYGWIN +#elif defined __GNU__ +#define LWIP_UNIX_HURD +#endif + +#define LWIP_TIMEVAL_PRIVATE 0 +#include + +#define LWIP_ERRNO_INCLUDE + +#if defined(LWIP_UNIX_LINUX) || defined(LWIP_UNIX_HURD) +#define LWIP_ERRNO_STDINCLUDE 1 +#endif + +//extern unsigned int lwip_port_rand(void); +#define LWIP_RAND() (rand()) + +/* different handling for unit test, normally not needed */ +#ifdef LWIP_NOASSERT_ON_ERROR +#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \ + handler;}} while(0) +#endif + +#if defined(LWIP_UNIX_ANDROID) && defined(FD_SET) +//typedef __kernel_fd_set fd_set; +#endif + +#if defined(LWIP_UNIX_MACH) +/* sys/types.h and signal.h bring in Darwin byte order macros. pull the + header here and disable LwIP's version so that apps still can get + the macros via LwIP headers and use system headers */ +#include +#define LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS +#endif + +struct sio_status_s; +typedef struct sio_status_s sio_status_t; +#define sio_fd_t sio_status_t* +#define __sio_fd_t_defined + +typedef unsigned int sys_prot_t; + +#endif /* LWIP_ARCH_CC_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/perf.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/perf.h new file mode 100644 index 000000000..b6a638e16 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/perf.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_ARCH_PERF_H +#define LWIP_ARCH_PERF_H + +#include + +#ifdef PERF +#define PERF_START { \ + unsigned long __c1l, __c1h, __c2l, __c2h; \ + __asm__(".byte 0x0f, 0x31" : "=a" (__c1l), "=d" (__c1h)) +#define PERF_STOP(x) __asm__(".byte 0x0f, 0x31" : "=a" (__c2l), "=d" (__c2h)); \ + perf_print(__c1l, __c1h, __c2l, __c2h, x);} + +/*#define PERF_START do { \ + struct tms __perf_start, __perf_end; \ + times(&__perf_start) +#define PERF_STOP(x) times(&__perf_end); \ + perf_print_times(&__perf_start, &__perf_end, x);\ + } while(0)*/ +#else /* PERF */ +#define PERF_START /* null definition */ +#define PERF_STOP(x) /* null definition */ +#endif /* PERF */ + +void perf_print(unsigned long c1l, unsigned long c1h, + unsigned long c2l, unsigned long c2h, + char *key); + +void perf_print_times(struct tms *start, struct tms *end, char *key); + +void perf_init(char *fname); + +#endif /* LWIP_ARCH_PERF_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/sys_arch.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/sys_arch.h new file mode 100644 index 000000000..97c19bad3 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/arch/sys_arch.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_ARCH_SYS_ARCH_H +#define LWIP_ARCH_SYS_ARCH_H + +#define SYS_MBOX_NULL NULL +#define SYS_SEM_NULL NULL + +/*typedef u32_t sys_prot_t;*/ + +struct sys_sem; +typedef struct sys_sem * sys_sem_t; +#define sys_sem_valid(sem) (((sem) != NULL) && (*(sem) != NULL)) +#define sys_sem_valid_val(sem) ((sem) != NULL) +#define sys_sem_set_invalid(sem) do { if((sem) != NULL) { *(sem) = NULL; }}while(0) +#define sys_sem_set_invalid_val(sem) do { (sem) = NULL; }while(0) + +struct sys_mutex; +typedef struct sys_mutex * sys_mutex_t; +#define sys_mutex_valid(mutex) sys_sem_valid(mutex) +#define sys_mutex_set_invalid(mutex) sys_sem_set_invalid(mutex) + +struct sys_mbox; +typedef struct sys_mbox * sys_mbox_t; +#define sys_mbox_valid(mbox) sys_sem_valid(mbox) +#define sys_mbox_valid_val(mbox) sys_sem_valid_val(mbox) +#define sys_mbox_set_invalid(mbox) sys_sem_set_invalid(mbox) +#define sys_mbox_set_invalid_val(mbox) sys_sem_set_invalid_val(mbox) + +struct sys_thread; +typedef struct sys_thread * sys_thread_t; + +#define LWIP_EXAMPLE_APP_ABORT() lwip_unix_keypressed() +int lwip_unix_keypressed(void); + +#endif /* LWIP_ARCH_SYS_ARCH_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp.h new file mode 100644 index 000000000..08bb8d542 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp.h @@ -0,0 +1,201 @@ +/** + * @file + * Application layered TCP connection API (to be used from TCPIP thread)\n + * + * This file contains the generic API. + * For more details see @ref altcp_api. + */ + +/* + * Copyright (c) 2017 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_ALTCP_H +#define LWIP_HDR_ALTCP_H + +#include "lwip/opt.h" + +#if LWIP_ALTCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/tcpbase.h" +#include "lwip/err.h" +#include "lwip/pbuf.h" +#include "lwip/ip_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct altcp_pcb; +struct altcp_functions; + +typedef err_t (*altcp_accept_fn)(void *arg, struct altcp_pcb *new_conn, err_t err); +typedef err_t (*altcp_connected_fn)(void *arg, struct altcp_pcb *conn, err_t err); +typedef err_t (*altcp_recv_fn)(void *arg, struct altcp_pcb *conn, struct pbuf *p, err_t err); +typedef err_t (*altcp_sent_fn)(void *arg, struct altcp_pcb *conn, u16_t len); +typedef err_t (*altcp_poll_fn)(void *arg, struct altcp_pcb *conn); +typedef void (*altcp_err_fn)(void *arg, err_t err); + +typedef struct altcp_pcb* (*altcp_new_fn)(void *arg, u8_t ip_type); + +struct altcp_pcb { + const struct altcp_functions *fns; + struct altcp_pcb *inner_conn; + void *arg; + void *state; + /* application callbacks */ + altcp_accept_fn accept; + altcp_connected_fn connected; + altcp_recv_fn recv; + altcp_sent_fn sent; + altcp_poll_fn poll; + altcp_err_fn err; + u8_t pollinterval; +}; + +/** @ingroup altcp */ +typedef struct altcp_allocator_s { + /** Allocator function */ + altcp_new_fn alloc; + /** Argument to allocator function */ + void *arg; +} altcp_allocator_t; + +struct altcp_pcb *altcp_new(altcp_allocator_t *allocator); +struct altcp_pcb *altcp_new_ip6(altcp_allocator_t *allocator); +struct altcp_pcb *altcp_new_ip_type(altcp_allocator_t *allocator, u8_t ip_type); + +void altcp_arg(struct altcp_pcb *conn, void *arg); +void altcp_accept(struct altcp_pcb *conn, altcp_accept_fn accept); +void altcp_recv(struct altcp_pcb *conn, altcp_recv_fn recv); +void altcp_sent(struct altcp_pcb *conn, altcp_sent_fn sent); +void altcp_poll(struct altcp_pcb *conn, altcp_poll_fn poll, u8_t interval); +void altcp_err(struct altcp_pcb *conn, altcp_err_fn err); + +void altcp_recved(struct altcp_pcb *conn, u16_t len); +err_t altcp_bind(struct altcp_pcb *conn, const ip_addr_t *ipaddr, u16_t port); +err_t altcp_connect(struct altcp_pcb *conn, const ip_addr_t *ipaddr, u16_t port, altcp_connected_fn connected); + +/* return conn for source code compatibility to tcp callback API only */ +struct altcp_pcb *altcp_listen_with_backlog_and_err(struct altcp_pcb *conn, u8_t backlog, err_t *err); +#define altcp_listen_with_backlog(conn, backlog) altcp_listen_with_backlog_and_err(conn, backlog, NULL) +/** @ingroup altcp */ +#define altcp_listen(conn) altcp_listen_with_backlog_and_err(conn, TCP_DEFAULT_LISTEN_BACKLOG, NULL) + +void altcp_abort(struct altcp_pcb *conn); +err_t altcp_close(struct altcp_pcb *conn); +err_t altcp_shutdown(struct altcp_pcb *conn, int shut_rx, int shut_tx); + +err_t altcp_write(struct altcp_pcb *conn, const void *dataptr, u16_t len, u8_t apiflags); +err_t altcp_output(struct altcp_pcb *conn); + +u16_t altcp_mss(struct altcp_pcb *conn); +u16_t altcp_sndbuf(struct altcp_pcb *conn); +u16_t altcp_sndqueuelen(struct altcp_pcb *conn); +void altcp_nagle_disable(struct altcp_pcb *conn); +void altcp_nagle_enable(struct altcp_pcb *conn); +int altcp_nagle_disabled(struct altcp_pcb *conn); + +void altcp_setprio(struct altcp_pcb *conn, u8_t prio); + +err_t altcp_get_tcp_addrinfo(struct altcp_pcb *conn, int local, ip_addr_t *addr, u16_t *port); +ip_addr_t *altcp_get_ip(struct altcp_pcb *conn, int local); +u16_t altcp_get_port(struct altcp_pcb *conn, int local); + +#ifdef LWIP_DEBUG +enum tcp_state altcp_dbg_get_tcp_state(struct altcp_pcb *conn); +#endif + +#ifdef __cplusplus +} +#endif + +#else /* LWIP_ALTCP */ + +/* ALTCP disabled, define everything to link against tcp callback API (e.g. to get a small non-ssl httpd) */ + +#include "lwip/tcp.h" + +#define altcp_accept_fn tcp_accept_fn +#define altcp_connected_fn tcp_connected_fn +#define altcp_recv_fn tcp_recv_fn +#define altcp_sent_fn tcp_sent_fn +#define altcp_poll_fn tcp_poll_fn +#define altcp_err_fn tcp_err_fn + +#define altcp_pcb tcp_pcb +#define altcp_tcp_new_ip_type tcp_new_ip_type +#define altcp_tcp_new tcp_new +#define altcp_tcp_new_ip6 tcp_new_ip6 + +#define altcp_new(allocator) tcp_new() +#define altcp_new_ip6(allocator) tcp_new_ip6() +#define altcp_new_ip_type(allocator, ip_type) tcp_new_ip_type(ip_type) + +#define altcp_arg tcp_arg +#define altcp_accept tcp_accept +#define altcp_recv tcp_recv +#define altcp_sent tcp_sent +#define altcp_poll tcp_poll +#define altcp_err tcp_err + +#define altcp_recved tcp_recved +#define altcp_bind tcp_bind +#define altcp_connect tcp_connect + +#define altcp_listen_with_backlog_and_err tcp_listen_with_backlog_and_err +#define altcp_listen_with_backlog tcp_listen_with_backlog +#define altcp_listen tcp_listen + +#define altcp_abort tcp_abort +#define altcp_close tcp_close +#define altcp_shutdown tcp_shutdown + +#define altcp_write tcp_write +#define altcp_output tcp_output + +#define altcp_mss tcp_mss +#define altcp_sndbuf tcp_sndbuf +#define altcp_sndqueuelen tcp_sndqueuelen +#define altcp_nagle_disable tcp_nagle_disable +#define altcp_nagle_enable tcp_nagle_enable +#define altcp_nagle_disabled tcp_nagle_disabled +#define altcp_setprio tcp_setprio + +#define altcp_get_tcp_addrinfo tcp_get_tcp_addrinfo +#define altcp_get_ip(pcb, local) ((local) ? (&(pcb)->local_ip) : (&(pcb)->remote_ip)) + +#ifdef LWIP_DEBUG +#define altcp_dbg_get_tcp_state tcp_dbg_get_tcp_state +#endif + +#endif /* LWIP_ALTCP */ + +#endif /* LWIP_HDR_ALTCP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp_tcp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp_tcp.h new file mode 100644 index 000000000..53550c702 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp_tcp.h @@ -0,0 +1,72 @@ +/** + * @file + * Application layered TCP connection API (to be used from TCPIP thread)\n + * This interface mimics the tcp callback API to the application while preventing + * direct linking (much like virtual functions). + * This way, an application can make use of other application layer protocols + * on top of TCP without knowing the details (e.g. TLS, proxy connection). + * + * This file contains the base implementation calling into tcp. + */ + +/* + * Copyright (c) 2017 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_ALTCP_TCP_H +#define LWIP_HDR_ALTCP_TCP_H + +#include "lwip/opt.h" + +#if LWIP_ALTCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/altcp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct altcp_pcb *altcp_tcp_new_ip_type(u8_t ip_type); + +#define altcp_tcp_new() altcp_tcp_new_ip_type(IPADDR_TYPE_V4) +#define altcp_tcp_new_ip6() altcp_tcp_new_ip_type(IPADDR_TYPE_V6) + +struct altcp_pcb *altcp_tcp_alloc(void *arg, u8_t ip_type); + +struct tcp_pcb; +struct altcp_pcb *altcp_tcp_wrap(struct tcp_pcb *tpcb); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_ALTCP */ + +#endif /* LWIP_HDR_ALTCP_TCP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp_tls.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp_tls.h new file mode 100644 index 000000000..c5a682002 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/altcp_tls.h @@ -0,0 +1,117 @@ +/** + * @file + * Application layered TCP/TLS connection API (to be used from TCPIP thread) + * + * @defgroup altcp_tls TLS layer + * @ingroup altcp + * This file contains function prototypes for a TLS layer. + * A port to ARM mbedtls is provided in the apps/ tree + * (LWIP_ALTCP_TLS_MBEDTLS option). + */ + +/* + * Copyright (c) 2017 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_ALTCP_TLS_H +#define LWIP_HDR_ALTCP_TLS_H + +#include "lwip/opt.h" + +#if LWIP_ALTCP /* don't build if not configured for use in lwipopts.h */ + +#if LWIP_ALTCP_TLS + +#include "lwip/altcp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @ingroup altcp_tls + * ALTCP_TLS configuration handle, content depends on port (e.g. mbedtls) + */ +struct altcp_tls_config; + +/** @ingroup altcp_tls + * Create an ALTCP_TLS server configuration handle + */ +struct altcp_tls_config *altcp_tls_create_config_server_privkey_cert(const u8_t *privkey, size_t privkey_len, + const u8_t *privkey_pass, size_t privkey_pass_len, + const u8_t *cert, size_t cert_len); + +/** @ingroup altcp_tls + * Create an ALTCP_TLS client configuration handle + */ +struct altcp_tls_config *altcp_tls_create_config_client(const u8_t *cert, size_t cert_len); + +/** @ingroup altcp_tls + * Create an ALTCP_TLS client configuration handle with two-way server/client authentication + */ +struct altcp_tls_config *altcp_tls_create_config_client_2wayauth(const u8_t *ca, size_t ca_len, const u8_t *privkey, size_t privkey_len, + const u8_t *privkey_pass, size_t privkey_pass_len, + const u8_t *cert, size_t cert_len); + +/** @ingroup altcp_tls + * Free an ALTCP_TLS configuration handle + */ +void altcp_tls_free_config(struct altcp_tls_config *conf); + +/** @ingroup altcp_tls + * Create new ALTCP_TLS layer wrapping an existing pcb as inner connection (e.g. TLS over TCP) + */ +struct altcp_pcb *altcp_tls_wrap(struct altcp_tls_config *config, struct altcp_pcb *inner_pcb); + +/** @ingroup altcp_tls + * Create new ALTCP_TLS pcb and its inner tcp pcb + */ +struct altcp_pcb *altcp_tls_new(struct altcp_tls_config *config, u8_t ip_type); + +/** @ingroup altcp_tls + * Create new ALTCP_TLS layer pcb and its inner tcp pcb. + * Same as @ref altcp_tls_new but this allocator function fits to + * @ref altcp_allocator_t / @ref altcp_new.\n + 'arg' must contain a struct altcp_tls_config *. + */ +struct altcp_pcb *altcp_tls_alloc(void *arg, u8_t ip_type); + +/** @ingroup altcp_tls + * Return pointer to internal TLS context so application can tweak it. + * Real type depends on port (e.g. mbedtls) + */ +void *altcp_tls_context(struct altcp_pcb *conn); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_ALTCP_TLS */ +#endif /* LWIP_ALTCP */ +#endif /* LWIP_HDR_ALTCP_TLS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/api.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/api.h new file mode 100644 index 000000000..eca6ac21f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/api.h @@ -0,0 +1,431 @@ +/** + * @file + * netconn API (to be used from non-TCPIP threads) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_API_H +#define LWIP_HDR_API_H + +#include "lwip/opt.h" + +#if LWIP_NETCONN || LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ +/* Note: Netconn API is always available when sockets are enabled - + * sockets are implemented on top of them */ + +#include "lwip/arch.h" +#include "lwip/netbuf.h" +#include "lwip/sys.h" +#include "lwip/ip_addr.h" +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Throughout this file, IP addresses and port numbers are expected to be in + * the same byte order as in the corresponding pcb. + */ + +/* Flags for netconn_write (u8_t) */ +#define NETCONN_NOFLAG 0x00 +#define NETCONN_NOCOPY 0x00 /* Only for source code compatibility */ +#define NETCONN_COPY 0x01 +#define NETCONN_MORE 0x02 +#define NETCONN_DONTBLOCK 0x04 +#define NETCONN_NOAUTORCVD 0x08 /* prevent netconn_recv_data_tcp() from updating the tcp window - must be done manually via netconn_tcp_recvd() */ +#define NETCONN_NOFIN 0x10 /* upper layer already received data, leave FIN in queue until called again */ + +/* Flags for struct netconn.flags (u8_t) */ +/** This netconn had an error, don't block on recvmbox/acceptmbox any more */ +#define NETCONN_FLAG_MBOXCLOSED 0x01 +/** Should this netconn avoid blocking? */ +#define NETCONN_FLAG_NON_BLOCKING 0x02 +/** Was the last connect action a non-blocking one? */ +#define NETCONN_FLAG_IN_NONBLOCKING_CONNECT 0x04 +#if LWIP_NETCONN_FULLDUPLEX + /** The mbox of this netconn is being deallocated, don't use it anymore */ +#define NETCONN_FLAG_MBOXINVALID 0x08 +#endif /* LWIP_NETCONN_FULLDUPLEX */ +/** If a nonblocking write has been rejected before, poll_tcp needs to + check if the netconn is writable again */ +#define NETCONN_FLAG_CHECK_WRITESPACE 0x10 +#if LWIP_IPV6 +/** If this flag is set then only IPv6 communication is allowed on the + netconn. As per RFC#3493 this features defaults to OFF allowing + dual-stack usage by default. */ +#define NETCONN_FLAG_IPV6_V6ONLY 0x20 +#endif /* LWIP_IPV6 */ +#if LWIP_NETBUF_RECVINFO +/** Received packet info will be recorded for this netconn */ +#define NETCONN_FLAG_PKTINFO 0x40 +#endif /* LWIP_NETBUF_RECVINFO */ +/** A FIN has been received but not passed to the application yet */ +#define NETCONN_FIN_RX_PENDING 0x80 + +/* Helpers to process several netconn_types by the same code */ +#define NETCONNTYPE_GROUP(t) ((t)&0xF0) +#define NETCONNTYPE_DATAGRAM(t) ((t)&0xE0) +#if LWIP_IPV6 +#define NETCONN_TYPE_IPV6 0x08 +#define NETCONNTYPE_ISIPV6(t) (((t)&NETCONN_TYPE_IPV6) != 0) +#define NETCONNTYPE_ISUDPLITE(t) (((t)&0xF3) == NETCONN_UDPLITE) +#define NETCONNTYPE_ISUDPNOCHKSUM(t) (((t)&0xF3) == NETCONN_UDPNOCHKSUM) +#else /* LWIP_IPV6 */ +#define NETCONNTYPE_ISIPV6(t) (0) +#define NETCONNTYPE_ISUDPLITE(t) ((t) == NETCONN_UDPLITE) +#define NETCONNTYPE_ISUDPNOCHKSUM(t) ((t) == NETCONN_UDPNOCHKSUM) +#endif /* LWIP_IPV6 */ + +/** @ingroup netconn_common + * Protocol family and type of the netconn + */ +enum netconn_type { + NETCONN_INVALID = 0, + /** TCP IPv4 */ + NETCONN_TCP = 0x10, +#if LWIP_IPV6 + /** TCP IPv6 */ + NETCONN_TCP_IPV6 = NETCONN_TCP | NETCONN_TYPE_IPV6 /* 0x18 */, +#endif /* LWIP_IPV6 */ + /** UDP IPv4 */ + NETCONN_UDP = 0x20, + /** UDP IPv4 lite */ + NETCONN_UDPLITE = 0x21, + /** UDP IPv4 no checksum */ + NETCONN_UDPNOCHKSUM = 0x22, + +#if LWIP_IPV6 + /** UDP IPv6 (dual-stack by default, unless you call @ref netconn_set_ipv6only) */ + NETCONN_UDP_IPV6 = NETCONN_UDP | NETCONN_TYPE_IPV6 /* 0x28 */, + /** UDP IPv6 lite (dual-stack by default, unless you call @ref netconn_set_ipv6only) */ + NETCONN_UDPLITE_IPV6 = NETCONN_UDPLITE | NETCONN_TYPE_IPV6 /* 0x29 */, + /** UDP IPv6 no checksum (dual-stack by default, unless you call @ref netconn_set_ipv6only) */ + NETCONN_UDPNOCHKSUM_IPV6 = NETCONN_UDPNOCHKSUM | NETCONN_TYPE_IPV6 /* 0x2a */, +#endif /* LWIP_IPV6 */ + + /** Raw connection IPv4 */ + NETCONN_RAW = 0x40 +#if LWIP_IPV6 + /** Raw connection IPv6 (dual-stack by default, unless you call @ref netconn_set_ipv6only) */ + , NETCONN_RAW_IPV6 = NETCONN_RAW | NETCONN_TYPE_IPV6 /* 0x48 */ +#endif /* LWIP_IPV6 */ +}; + +/** Current state of the netconn. Non-TCP netconns are always + * in state NETCONN_NONE! */ +enum netconn_state { + NETCONN_NONE, + NETCONN_WRITE, + NETCONN_LISTEN, + NETCONN_CONNECT, + NETCONN_CLOSE +}; + +/** Used to inform the callback function about changes + * + * Event explanation: + * + * In the netconn implementation, there are three ways to block a client: + * + * - accept mbox (sys_arch_mbox_fetch(&conn->acceptmbox, &accept_ptr, 0); in netconn_accept()) + * - receive mbox (sys_arch_mbox_fetch(&conn->recvmbox, &buf, 0); in netconn_recv_data()) + * - send queue is full (sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0); in lwip_netconn_do_write()) + * + * The events have to be seen as events signaling the state of these mboxes/semaphores. For non-blocking + * connections, you need to know in advance whether a call to a netconn function call would block or not, + * and these events tell you about that. + * + * RCVPLUS events say: Safe to perform a potentially blocking call call once more. + * They are counted in sockets - three RCVPLUS events for accept mbox means you are safe + * to call netconn_accept 3 times without being blocked. + * Same thing for receive mbox. + * + * RCVMINUS events say: Your call to to a possibly blocking function is "acknowledged". + * Socket implementation decrements the counter. + * + * For TX, there is no need to count, its merely a flag. SENDPLUS means you may send something. + * SENDPLUS occurs when enough data was delivered to peer so netconn_send() can be called again. + * A SENDMINUS event occurs when the next call to a netconn_send() would be blocking. + */ +enum netconn_evt { + NETCONN_EVT_RCVPLUS, + NETCONN_EVT_RCVMINUS, + NETCONN_EVT_SENDPLUS, + NETCONN_EVT_SENDMINUS, + NETCONN_EVT_ERROR +}; + +#if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) +/** Used for netconn_join_leave_group() */ +enum netconn_igmp { + NETCONN_JOIN, + NETCONN_LEAVE +}; +#endif /* LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) */ + +#if LWIP_DNS +/* Used for netconn_gethostbyname_addrtype(), these should match the DNS_ADDRTYPE defines in dns.h */ +#define NETCONN_DNS_DEFAULT NETCONN_DNS_IPV4_IPV6 +#define NETCONN_DNS_IPV4 0 +#define NETCONN_DNS_IPV6 1 +#define NETCONN_DNS_IPV4_IPV6 2 /* try to resolve IPv4 first, try IPv6 if IPv4 fails only */ +#define NETCONN_DNS_IPV6_IPV4 3 /* try to resolve IPv6 first, try IPv4 if IPv6 fails only */ +#endif /* LWIP_DNS */ + +/* forward-declare some structs to avoid to include their headers */ +struct ip_pcb; +struct tcp_pcb; +struct udp_pcb; +struct raw_pcb; +struct netconn; +struct api_msg; + +/** A callback prototype to inform about events for a netconn */ +typedef void (* netconn_callback)(struct netconn *, enum netconn_evt, u16_t len); + +/** A netconn descriptor */ +struct netconn { + /** type of the netconn (TCP, UDP or RAW) */ + enum netconn_type type; + /** current state of the netconn */ + enum netconn_state state; + /** the lwIP internal protocol control block */ + union { + struct ip_pcb *ip; + struct tcp_pcb *tcp; + struct udp_pcb *udp; + struct raw_pcb *raw; + } pcb; + /** the last asynchronous unreported error this netconn had */ + err_t pending_err; +#if !LWIP_NETCONN_SEM_PER_THREAD + /** sem that is used to synchronously execute functions in the core context */ + sys_sem_t op_completed; +#endif + /** mbox where received packets are stored until they are fetched + by the netconn application thread (can grow quite big) */ + sys_mbox_t recvmbox; +#if LWIP_TCP + /** mbox where new connections are stored until processed + by the application thread */ + sys_mbox_t acceptmbox; +#endif /* LWIP_TCP */ +#if LWIP_NETCONN_FULLDUPLEX + /** number of threads waiting on an mbox. This is required to unblock + all threads when closing while threads are waiting. */ + int mbox_threads_waiting; +#endif + /** only used for socket layer */ +#if LWIP_SOCKET + int socket; +#endif /* LWIP_SOCKET */ +#if LWIP_SO_SNDTIMEO + /** timeout to wait for sending data (which means enqueueing data for sending + in internal buffers) in milliseconds */ + s32_t send_timeout; +#endif /* LWIP_SO_RCVTIMEO */ +#if LWIP_SO_RCVTIMEO + /** timeout in milliseconds to wait for new data to be received + (or connections to arrive for listening netconns) */ + u32_t recv_timeout; +#endif /* LWIP_SO_RCVTIMEO */ +#if LWIP_SO_RCVBUF + /** maximum amount of bytes queued in recvmbox + not used for TCP: adjust TCP_WND instead! */ + int recv_bufsize; + /** number of bytes currently in recvmbox to be received, + tested against recv_bufsize to limit bytes on recvmbox + for UDP and RAW, used for FIONREAD */ + int recv_avail; +#endif /* LWIP_SO_RCVBUF */ +#if LWIP_SO_LINGER + /** values <0 mean linger is disabled, values > 0 are seconds to linger */ + s16_t linger; +#endif /* LWIP_SO_LINGER */ + /** flags holding more netconn-internal state, see NETCONN_FLAG_* defines */ + u8_t flags; +#if LWIP_TCP + /** TCP: when data passed to netconn_write doesn't fit into the send buffer, + this temporarily stores the message. + Also used during connect and close. */ + struct api_msg *current_msg; +#endif /* LWIP_TCP */ + /** A callback function that is informed about events for this netconn */ + netconn_callback callback; +}; + +/** This vector type is passed to @ref netconn_write_vectors_partly to send + * multiple buffers at once. + * ATTENTION: This type has to directly map struct iovec since one is casted + * into the other! + */ +struct netvector { + /** pointer to the application buffer that contains the data to send */ + const void *ptr; + /** size of the application data to send */ + size_t len; +}; + +/** Register an Network connection event */ +#define API_EVENT(c,e,l) if (c->callback) { \ + (*c->callback)(c, e, l); \ + } + +/* Network connection functions: */ + +/** @ingroup netconn_common + * Create new netconn connection + * @param t @ref netconn_type */ +#define netconn_new(t) netconn_new_with_proto_and_callback(t, 0, NULL) +#define netconn_new_with_callback(t, c) netconn_new_with_proto_and_callback(t, 0, c) +struct netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto, + netconn_callback callback); +err_t netconn_prepare_delete(struct netconn *conn); +err_t netconn_delete(struct netconn *conn); +/** Get the type of a netconn (as enum netconn_type). */ +#define netconn_type(conn) (conn->type) + +err_t netconn_getaddr(struct netconn *conn, ip_addr_t *addr, + u16_t *port, u8_t local); +/** @ingroup netconn_common */ +#define netconn_peer(c,i,p) netconn_getaddr(c,i,p,0) +/** @ingroup netconn_common */ +#define netconn_addr(c,i,p) netconn_getaddr(c,i,p,1) + +err_t netconn_bind(struct netconn *conn, const ip_addr_t *addr, u16_t port); +err_t netconn_bind_if(struct netconn *conn, u8_t if_idx); +err_t netconn_connect(struct netconn *conn, const ip_addr_t *addr, u16_t port); +err_t netconn_disconnect (struct netconn *conn); +err_t netconn_listen_with_backlog(struct netconn *conn, u8_t backlog); +/** @ingroup netconn_tcp */ +#define netconn_listen(conn) netconn_listen_with_backlog(conn, TCP_DEFAULT_LISTEN_BACKLOG) +err_t netconn_accept(struct netconn *conn, struct netconn **new_conn); +err_t netconn_recv(struct netconn *conn, struct netbuf **new_buf); +err_t netconn_recv_udp_raw_netbuf(struct netconn *conn, struct netbuf **new_buf); +err_t netconn_recv_udp_raw_netbuf_flags(struct netconn *conn, struct netbuf **new_buf, u8_t apiflags); +err_t netconn_recv_tcp_pbuf(struct netconn *conn, struct pbuf **new_buf); +err_t netconn_recv_tcp_pbuf_flags(struct netconn *conn, struct pbuf **new_buf, u8_t apiflags); +err_t netconn_tcp_recvd(struct netconn *conn, size_t len); +err_t netconn_sendto(struct netconn *conn, struct netbuf *buf, + const ip_addr_t *addr, u16_t port); +err_t netconn_send(struct netconn *conn, struct netbuf *buf); +err_t netconn_write_partly(struct netconn *conn, const void *dataptr, size_t size, + u8_t apiflags, size_t *bytes_written); +err_t netconn_write_vectors_partly(struct netconn *conn, struct netvector *vectors, u16_t vectorcnt, + u8_t apiflags, size_t *bytes_written); +/** @ingroup netconn_tcp */ +#define netconn_write(conn, dataptr, size, apiflags) \ + netconn_write_partly(conn, dataptr, size, apiflags, NULL) +err_t netconn_close(struct netconn *conn); +err_t netconn_shutdown(struct netconn *conn, u8_t shut_rx, u8_t shut_tx); + +#if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) +err_t netconn_join_leave_group(struct netconn *conn, const ip_addr_t *multiaddr, + const ip_addr_t *netif_addr, enum netconn_igmp join_or_leave); +err_t netconn_join_leave_group_netif(struct netconn *conn, const ip_addr_t *multiaddr, + u8_t if_idx, enum netconn_igmp join_or_leave); +#endif /* LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) */ +#if LWIP_DNS +#if LWIP_IPV4 && LWIP_IPV6 +err_t netconn_gethostbyname_addrtype(const char *name, ip_addr_t *addr, u8_t dns_addrtype); +#define netconn_gethostbyname(name, addr) netconn_gethostbyname_addrtype(name, addr, NETCONN_DNS_DEFAULT) +#else /* LWIP_IPV4 && LWIP_IPV6 */ +err_t netconn_gethostbyname(const char *name, ip_addr_t *addr); +#define netconn_gethostbyname_addrtype(name, addr, dns_addrtype) netconn_gethostbyname(name, addr) +#endif /* LWIP_IPV4 && LWIP_IPV6 */ +#endif /* LWIP_DNS */ + +err_t netconn_err(struct netconn *conn); +#define netconn_recv_bufsize(conn) ((conn)->recv_bufsize) + +#define netconn_set_flags(conn, set_flags) do { (conn)->flags = (u8_t)((conn)->flags | (set_flags)); } while(0) +#define netconn_clear_flags(conn, clr_flags) do { (conn)->flags = (u8_t)((conn)->flags & (u8_t)(~(clr_flags) & 0xff)); } while(0) +#define netconn_is_flag_set(conn, flag) (((conn)->flags & (flag)) != 0) + +/** Set the blocking status of netconn calls (@todo: write/send is missing) */ +#define netconn_set_nonblocking(conn, val) do { if(val) { \ + netconn_set_flags(conn, NETCONN_FLAG_NON_BLOCKING); \ +} else { \ + netconn_clear_flags(conn, NETCONN_FLAG_NON_BLOCKING); }} while(0) +/** Get the blocking status of netconn calls (@todo: write/send is missing) */ +#define netconn_is_nonblocking(conn) (((conn)->flags & NETCONN_FLAG_NON_BLOCKING) != 0) + +#if LWIP_IPV6 +/** @ingroup netconn_common + * TCP: Set the IPv6 ONLY status of netconn calls (see NETCONN_FLAG_IPV6_V6ONLY) + */ +#define netconn_set_ipv6only(conn, val) do { if(val) { \ + netconn_set_flags(conn, NETCONN_FLAG_IPV6_V6ONLY); \ +} else { \ + netconn_clear_flags(conn, NETCONN_FLAG_IPV6_V6ONLY); }} while(0) +/** @ingroup netconn_common + * TCP: Get the IPv6 ONLY status of netconn calls (see NETCONN_FLAG_IPV6_V6ONLY) + */ +#define netconn_get_ipv6only(conn) (((conn)->flags & NETCONN_FLAG_IPV6_V6ONLY) != 0) +#endif /* LWIP_IPV6 */ + +#if LWIP_SO_SNDTIMEO +/** Set the send timeout in milliseconds */ +#define netconn_set_sendtimeout(conn, timeout) ((conn)->send_timeout = (timeout)) +/** Get the send timeout in milliseconds */ +#define netconn_get_sendtimeout(conn) ((conn)->send_timeout) +#endif /* LWIP_SO_SNDTIMEO */ +#if LWIP_SO_RCVTIMEO +/** Set the receive timeout in milliseconds */ +#define netconn_set_recvtimeout(conn, timeout) ((conn)->recv_timeout = (timeout)) +/** Get the receive timeout in milliseconds */ +#define netconn_get_recvtimeout(conn) ((conn)->recv_timeout) +#endif /* LWIP_SO_RCVTIMEO */ +#if LWIP_SO_RCVBUF +/** Set the receive buffer in bytes */ +#define netconn_set_recvbufsize(conn, recvbufsize) ((conn)->recv_bufsize = (recvbufsize)) +/** Get the receive buffer in bytes */ +#define netconn_get_recvbufsize(conn) ((conn)->recv_bufsize) +#endif /* LWIP_SO_RCVBUF*/ + +#if LWIP_NETCONN_SEM_PER_THREAD +void netconn_thread_init(void); +void netconn_thread_cleanup(void); +#else /* LWIP_NETCONN_SEM_PER_THREAD */ +#define netconn_thread_init() +#define netconn_thread_cleanup() +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_NETCONN || LWIP_SOCKET */ + +#endif /* LWIP_HDR_API_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/altcp_proxyconnect.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/altcp_proxyconnect.h new file mode 100644 index 000000000..a7c352794 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/altcp_proxyconnect.h @@ -0,0 +1,79 @@ +/** + * @file + * Application layered TCP connection API that executes a proxy-connect. + * + * This file provides a starting layer that executes a proxy-connect e.g. to + * set up TLS connections through a http proxy. + */ + +/* + * Copyright (c) 2018 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ + +#ifndef LWIP_HDR_APPS_ALTCP_PROXYCONNECT_H +#define LWIP_HDR_APPS_ALTCP_PROXYCONNECT_H + +#include "lwip/opt.h" + +#if LWIP_ALTCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/ip_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct altcp_proxyconnect_config { + ip_addr_t proxy_addr; + u16_t proxy_port; +}; + + +struct altcp_pcb *altcp_proxyconnect_new(struct altcp_proxyconnect_config *config, struct altcp_pcb *inner_pcb); +struct altcp_pcb *altcp_proxyconnect_new_tcp(struct altcp_proxyconnect_config *config, u8_t ip_type); + +struct altcp_pcb *altcp_proxyconnect_alloc(void *arg, u8_t ip_type); + +#if LWIP_ALTCP_TLS +struct altcp_proxyconnect_tls_config { + struct altcp_proxyconnect_config proxy; + struct altcp_tls_config *tls_config; +}; + +struct altcp_pcb *altcp_proxyconnect_tls_alloc(void *arg, u8_t ip_type); +#endif /* LWIP_ALTCP_TLS */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_ALTCP */ +#endif /* LWIP_HDR_APPS_ALTCP_PROXYCONNECT_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/altcp_tls_mbedtls_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/altcp_tls_mbedtls_opts.h new file mode 100644 index 000000000..63f72e3e9 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/altcp_tls_mbedtls_opts.h @@ -0,0 +1,67 @@ +/** + * @file + * Application layered TCP/TLS connection API (to be used from TCPIP thread) + * + * This file contains options for an mbedtls port of the TLS layer. + */ + +/* + * Copyright (c) 2017 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_ALTCP_TLS_OPTS_H +#define LWIP_HDR_ALTCP_TLS_OPTS_H + +#include "lwip/opt.h" + +#if LWIP_ALTCP /* don't build if not configured for use in lwipopts.h */ + +/** LWIP_ALTCP_TLS_MBEDTLS==1: use mbedTLS for TLS support for altcp API + * mbedtls include directory must be reachable via include search path + */ +#ifndef LWIP_ALTCP_TLS_MBEDTLS +#define LWIP_ALTCP_TLS_MBEDTLS 0 +#endif + +/** Configure debug level of this file */ +#ifndef ALTCP_MBEDTLS_DEBUG +#define ALTCP_MBEDTLS_DEBUG LWIP_DBG_OFF +#endif + +/** Set a session timeout in seconds for the basic session cache + * ATTENTION: Using a session cache can lower security by reusing keys! + */ +#ifndef ALTCP_MBEDTLS_SESSION_CACHE_TIMEOUT_SECONDS +#define ALTCP_MBEDTLS_SESSION_CACHE_TIMEOUT_SECONDS 0 +#endif + +#endif /* LWIP_ALTCP */ + +#endif /* LWIP_HDR_ALTCP_TLS_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/fs.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/fs.h new file mode 100644 index 000000000..02bde1fc0 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/fs.h @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_APPS_FS_H +#define LWIP_HDR_APPS_FS_H + +#include "httpd_opts.h" +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define FS_READ_EOF -1 +#define FS_READ_DELAYED -2 + +#if HTTPD_PRECALCULATED_CHECKSUM +struct fsdata_chksum { + u32_t offset; + u16_t chksum; + u16_t len; +}; +#endif /* HTTPD_PRECALCULATED_CHECKSUM */ + +#define FS_FILE_FLAGS_HEADER_INCLUDED 0x01 +#define FS_FILE_FLAGS_HEADER_PERSISTENT 0x02 +#define FS_FILE_FLAGS_HEADER_HTTPVER_1_1 0x04 +#define FS_FILE_FLAGS_SSI 0x08 + +/** Define FS_FILE_EXTENSION_T_DEFINED if you have typedef'ed to your private + * pointer type (defaults to 'void' so the default usage is 'void*') + */ +#ifndef FS_FILE_EXTENSION_T_DEFINED +typedef void fs_file_extension; +#endif + +struct fs_file { + const char *data; + int len; + int index; + /* pextension is free for implementations to hold private (extensional) + arbitrary data, e.g. holding some file state or file system handle */ + fs_file_extension *pextension; +#if HTTPD_PRECALCULATED_CHECKSUM + const struct fsdata_chksum *chksum; + u16_t chksum_count; +#endif /* HTTPD_PRECALCULATED_CHECKSUM */ + u8_t flags; +#if LWIP_HTTPD_CUSTOM_FILES + u8_t is_custom_file; +#endif /* LWIP_HTTPD_CUSTOM_FILES */ +#if LWIP_HTTPD_FILE_STATE + void *state; +#endif /* LWIP_HTTPD_FILE_STATE */ +}; + +#if LWIP_HTTPD_FS_ASYNC_READ +typedef void (*fs_wait_cb)(void *arg); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ + +err_t fs_open(struct fs_file *file, const char *name); +void fs_close(struct fs_file *file); +#if LWIP_HTTPD_DYNAMIC_FILE_READ +#if LWIP_HTTPD_FS_ASYNC_READ +int fs_read_async(struct fs_file *file, char *buffer, int count, fs_wait_cb callback_fn, void *callback_arg); +#else /* LWIP_HTTPD_FS_ASYNC_READ */ +int fs_read(struct fs_file *file, char *buffer, int count); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ +#endif /* LWIP_HTTPD_DYNAMIC_FILE_READ */ +#if LWIP_HTTPD_FS_ASYNC_READ +int fs_is_file_ready(struct fs_file *file, fs_wait_cb callback_fn, void *callback_arg); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ +int fs_bytes_left(struct fs_file *file); + +#if LWIP_HTTPD_FILE_STATE +/** This user-defined function is called when a file is opened. */ +void *fs_state_init(struct fs_file *file, const char *name); +/** This user-defined function is called when a file is closed. */ +void fs_state_free(struct fs_file *file, void *state); +#endif /* #if LWIP_HTTPD_FILE_STATE */ + +struct fsdata_file { + const struct fsdata_file *next; + const unsigned char *name; + const unsigned char *data; + int len; + u8_t flags; +#if HTTPD_PRECALCULATED_CHECKSUM + u16_t chksum_count; + const struct fsdata_chksum *chksum; +#endif /* HTTPD_PRECALCULATED_CHECKSUM */ +}; + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_FS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/http_client.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/http_client.h new file mode 100644 index 000000000..f4754b3a9 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/http_client.h @@ -0,0 +1,160 @@ +/** + * @file + * HTTP client + */ + +/* + * Copyright (c) 2018 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ + +#ifndef LWIP_HDR_APPS_HTTP_CLIENT_H +#define LWIP_HDR_APPS_HTTP_CLIENT_H + +#include "lwip/opt.h" +#include "lwip/ip_addr.h" +#include "lwip/err.h" +#include "lwip/altcp.h" +#include "lwip/prot/iana.h" +#include "lwip/pbuf.h" + +#if LWIP_TCP && LWIP_CALLBACK_API + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @ingroup httpc + * HTTPC_HAVE_FILE_IO: define this to 1 to have functions dowloading directly + * to disk via fopen/fwrite. + * These functions are example implementations of the interface only. + */ +#ifndef LWIP_HTTPC_HAVE_FILE_IO +#define LWIP_HTTPC_HAVE_FILE_IO 0 +#endif + +/** + * @ingroup httpc + * The default TCP port used for HTTP + */ +#define HTTP_DEFAULT_PORT LWIP_IANA_PORT_HTTP + +/** + * @ingroup httpc + * HTTP client result codes + */ +typedef enum ehttpc_result { + /** File successfully received */ + HTTPC_RESULT_OK = 0, + /** Unknown error */ + HTTPC_RESULT_ERR_UNKNOWN = 1, + /** Connection to server failed */ + HTTPC_RESULT_ERR_CONNECT = 2, + /** Failed to resolve server hostname */ + HTTPC_RESULT_ERR_HOSTNAME = 3, + /** Connection unexpectedly closed by remote server */ + HTTPC_RESULT_ERR_CLOSED = 4, + /** Connection timed out (server didn't respond in time) */ + HTTPC_RESULT_ERR_TIMEOUT = 5, + /** Server responded with an error code */ + HTTPC_RESULT_ERR_SVR_RESP = 6, + /** Local memory error */ + HTTPC_RESULT_ERR_MEM = 7, + /** Local abort */ + HTTPC_RESULT_LOCAL_ABORT = 8, + /** Content length mismatch */ + HTTPC_RESULT_ERR_CONTENT_LEN = 9 +} httpc_result_t; + +typedef struct _httpc_state httpc_state_t; + +/** + * @ingroup httpc + * Prototype of a http client callback function + * + * @param arg argument specified when initiating the request + * @param httpc_result result of the http transfer (see enum httpc_result_t) + * @param rx_content_len number of bytes received (without headers) + * @param srv_res this contains the http status code received (if any) + * @param err an error returned by internal lwip functions, can help to specify + * the source of the error but must not necessarily be != ERR_OK + */ +typedef void (*httpc_result_fn)(void *arg, httpc_result_t httpc_result, u32_t rx_content_len, u32_t srv_res, err_t err); + +/** + * @ingroup httpc + * Prototype of http client callback: called when the headers are received + * + * @param connection http client connection + * @param arg argument specified when initiating the request + * @param hdr header pbuf(s) (may contain data also) + * @param hdr_len length of the heders in 'hdr' + * @param content_len content length as received in the headers (-1 if not received) + * @return if != ERR_OK is returned, the connection is aborted + */ +typedef err_t (*httpc_headers_done_fn)(httpc_state_t *connection, void *arg, struct pbuf *hdr, u16_t hdr_len, u32_t content_len); + +typedef struct _httpc_connection { + ip_addr_t proxy_addr; + u16_t proxy_port; + u8_t use_proxy; + /* @todo: add username:pass? */ + +#if LWIP_ALTCP + altcp_allocator_t *altcp_allocator; +#endif + + /* this callback is called when the transfer is finished (or aborted) */ + httpc_result_fn result_fn; + /* this callback is called after receiving the http headers + It can abort the connection by returning != ERR_OK */ + httpc_headers_done_fn headers_done_fn; +} httpc_connection_t; + +err_t httpc_get_file(const ip_addr_t* server_addr, u16_t port, const char* uri, const httpc_connection_t *settings, + altcp_recv_fn recv_fn, void* callback_arg, httpc_state_t **connection); +err_t httpc_get_file_dns(const char* server_name, u16_t port, const char* uri, const httpc_connection_t *settings, + altcp_recv_fn recv_fn, void* callback_arg, httpc_state_t **connection); + +#if LWIP_HTTPC_HAVE_FILE_IO +err_t httpc_get_file_to_disk(const ip_addr_t* server_addr, u16_t port, const char* uri, const httpc_connection_t *settings, + void* callback_arg, const char* local_file_name, httpc_state_t **connection); +err_t httpc_get_file_dns_to_disk(const char* server_name, u16_t port, const char* uri, const httpc_connection_t *settings, + void* callback_arg, const char* local_file_name, httpc_state_t **connection); +#endif /* LWIP_HTTPC_HAVE_FILE_IO */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_TCP && LWIP_CALLBACK_API */ + +#endif /* LWIP_HDR_APPS_HTTP_CLIENT_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/httpd.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/httpd.h new file mode 100644 index 000000000..615261ea1 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/httpd.h @@ -0,0 +1,255 @@ +/** + * @file + * HTTP server + */ + +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + * This version of the file has been modified by Texas Instruments to offer + * simple server-side-include (SSI) and Common Gateway Interface (CGI) + * capability. + */ + +#ifndef LWIP_HDR_APPS_HTTPD_H +#define LWIP_HDR_APPS_HTTPD_H + +#include "httpd_opts.h" +#include "lwip/err.h" +#include "lwip/pbuf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_HTTPD_CGI + +/** + * @ingroup httpd + * Function pointer for a CGI script handler. + * + * This function is called each time the HTTPD server is asked for a file + * whose name was previously registered as a CGI function using a call to + * http_set_cgi_handlers. The iIndex parameter provides the index of the + * CGI within the cgis array passed to http_set_cgi_handlers. Parameters + * pcParam and pcValue provide access to the parameters provided along with + * the URI. iNumParams provides a count of the entries in the pcParam and + * pcValue arrays. Each entry in the pcParam array contains the name of a + * parameter with the corresponding entry in the pcValue array containing the + * value for that parameter. Note that pcParam may contain multiple elements + * with the same name if, for example, a multi-selection list control is used + * in the form generating the data. + * + * The function should return a pointer to a character string which is the + * path and filename of the response that is to be sent to the connected + * browser, for example "/thanks.htm" or "/response/error.ssi". + * + * The maximum number of parameters that will be passed to this function via + * iNumParams is defined by LWIP_HTTPD_MAX_CGI_PARAMETERS. Any parameters in + * the incoming HTTP request above this number will be discarded. + * + * Requests intended for use by this CGI mechanism must be sent using the GET + * method (which encodes all parameters within the URI rather than in a block + * later in the request). Attempts to use the POST method will result in the + * request being ignored. + * + */ +typedef const char *(*tCGIHandler)(int iIndex, int iNumParams, char *pcParam[], + char *pcValue[]); + +/** + * @ingroup httpd + * Structure defining the base filename (URL) of a CGI and the associated + * function which is to be called when that URL is requested. + */ +typedef struct +{ + const char *pcCGIName; + tCGIHandler pfnCGIHandler; +} tCGI; + +void http_set_cgi_handlers(const tCGI *pCGIs, int iNumHandlers); + +#endif /* LWIP_HTTPD_CGI */ + +#if LWIP_HTTPD_CGI || LWIP_HTTPD_CGI_SSI + +#if LWIP_HTTPD_CGI_SSI +/* we have to prototype this struct here to make it available for the handler */ +struct fs_file; + +/** Define this generic CGI handler in your application. + * It is called once for every URI with parameters. + * The parameters can be stored to the object passed as connection_state, which + * is allocated to file->state via fs_state_init() from fs_open() or fs_open_custom(). + * Content creation via SSI or complete dynamic files can retrieve the CGI params from there. + */ +extern void httpd_cgi_handler(struct fs_file *file, const char* uri, int iNumParams, + char **pcParam, char **pcValue +#if defined(LWIP_HTTPD_FILE_STATE) && LWIP_HTTPD_FILE_STATE + , void *connection_state +#endif /* LWIP_HTTPD_FILE_STATE */ + ); +#endif /* LWIP_HTTPD_CGI_SSI */ + +#endif /* LWIP_HTTPD_CGI || LWIP_HTTPD_CGI_SSI */ + +#if LWIP_HTTPD_SSI + +/** + * @ingroup httpd + * Function pointer for the SSI tag handler callback. + * + * This function will be called each time the HTTPD server detects a tag of the + * form in files with extensions mentioned in the g_pcSSIExtensions + * array (currently .shtml, .shtm, .ssi, .xml, .json) where "name" appears as + * one of the tags supplied to http_set_ssi_handler in the tags array. The + * returned insert string, which will be appended after the the string + * "" in file sent back to the client, should be written to pointer + * pcInsert. iInsertLen contains the size of the buffer pointed to by + * pcInsert. The iIndex parameter provides the zero-based index of the tag as + * found in the tags array and identifies the tag that is to be processed. + * + * The handler returns the number of characters written to pcInsert excluding + * any terminating NULL or HTTPD_SSI_TAG_UNKNOWN when tag is not recognized. + * + * Note that the behavior of this SSI mechanism is somewhat different from the + * "normal" SSI processing as found in, for example, the Apache web server. In + * this case, the inserted text is appended following the SSI tag rather than + * replacing the tag entirely. This allows for an implementation that does not + * require significant additional buffering of output data yet which will still + * offer usable SSI functionality. One downside to this approach is when + * attempting to use SSI within JavaScript. The SSI tag is structured to + * resemble an HTML comment but this syntax does not constitute a comment + * within JavaScript and, hence, leaving the tag in place will result in + * problems in these cases. In order to avoid these problems, define + * LWIP_HTTPD_SSI_INCLUDE_TAG as zero in your lwip options file, or use JavaScript + * style block comments in the form / * # name * / (without the spaces). + */ +typedef u16_t (*tSSIHandler)( +#if LWIP_HTTPD_SSI_RAW + const char* ssi_tag_name, +#else /* LWIP_HTTPD_SSI_RAW */ + int iIndex, +#endif /* LWIP_HTTPD_SSI_RAW */ + char *pcInsert, int iInsertLen +#if LWIP_HTTPD_SSI_MULTIPART + , u16_t current_tag_part, u16_t *next_tag_part +#endif /* LWIP_HTTPD_SSI_MULTIPART */ +#if defined(LWIP_HTTPD_FILE_STATE) && LWIP_HTTPD_FILE_STATE + , void *connection_state +#endif /* LWIP_HTTPD_FILE_STATE */ + ); + +/** Set the SSI handler function + * (if LWIP_HTTPD_SSI_RAW==1, only the first argument is used) + */ +void http_set_ssi_handler(tSSIHandler pfnSSIHandler, + const char **ppcTags, int iNumTags); + +/** For LWIP_HTTPD_SSI_RAW==1, return this to indicate the tag is unknown. + * In this case, the webserver writes a warning into the page. + * You can also just return 0 to write nothing for unknown tags. + */ +#define HTTPD_SSI_TAG_UNKNOWN 0xFFFF + +#endif /* LWIP_HTTPD_SSI */ + +#if LWIP_HTTPD_SUPPORT_POST + +/* These functions must be implemented by the application */ + +/** + * @ingroup httpd + * Called when a POST request has been received. The application can decide + * whether to accept it or not. + * + * @param connection Unique connection identifier, valid until httpd_post_end + * is called. + * @param uri The HTTP header URI receiving the POST request. + * @param http_request The raw HTTP request (the first packet, normally). + * @param http_request_len Size of 'http_request'. + * @param content_len Content-Length from HTTP header. + * @param response_uri Filename of response file, to be filled when denying the + * request + * @param response_uri_len Size of the 'response_uri' buffer. + * @param post_auto_wnd Set this to 0 to let the callback code handle window + * updates by calling 'httpd_post_data_recved' (to throttle rx speed) + * default is 1 (httpd handles window updates automatically) + * @return ERR_OK: Accept the POST request, data may be passed in + * another err_t: Deny the POST request, send back 'bad request'. + */ +err_t httpd_post_begin(void *connection, const char *uri, const char *http_request, + u16_t http_request_len, int content_len, char *response_uri, + u16_t response_uri_len, u8_t *post_auto_wnd); + +/** + * @ingroup httpd + * Called for each pbuf of data that has been received for a POST. + * ATTENTION: The application is responsible for freeing the pbufs passed in! + * + * @param connection Unique connection identifier. + * @param p Received data. + * @return ERR_OK: Data accepted. + * another err_t: Data denied, http_post_get_response_uri will be called. + */ +err_t httpd_post_receive_data(void *connection, struct pbuf *p); + +/** + * @ingroup httpd + * Called when all data is received or when the connection is closed. + * The application must return the filename/URI of a file to send in response + * to this POST request. If the response_uri buffer is untouched, a 404 + * response is returned. + * + * @param connection Unique connection identifier. + * @param response_uri Filename of response file, to be filled when denying the request + * @param response_uri_len Size of the 'response_uri' buffer. + */ +void httpd_post_finished(void *connection, char *response_uri, u16_t response_uri_len); + +#if LWIP_HTTPD_POST_MANUAL_WND +void httpd_post_data_recved(void *connection, u16_t recved_len); +#endif /* LWIP_HTTPD_POST_MANUAL_WND */ + +#endif /* LWIP_HTTPD_SUPPORT_POST */ + +void httpd_init(void); + +#if HTTPD_ENABLE_HTTPS +struct altcp_tls_config; +void httpd_inits(struct altcp_tls_config *conf); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_HTTPD_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/httpd_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/httpd_opts.h new file mode 100644 index 000000000..99f388084 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/httpd_opts.h @@ -0,0 +1,396 @@ +/** + * @file + * HTTP server options list + */ + +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + * This version of the file has been modified by Texas Instruments to offer + * simple server-side-include (SSI) and Common Gateway Interface (CGI) + * capability. + */ + +#ifndef LWIP_HDR_APPS_HTTPD_OPTS_H +#define LWIP_HDR_APPS_HTTPD_OPTS_H + +#include "lwip/opt.h" +#include "lwip/prot/iana.h" + +/** + * @defgroup httpd_opts Options + * @ingroup httpd + * @{ + */ + +/** Set this to 1 to support CGI (old style). + * + * This old style CGI support works by registering an array of URLs and + * associated CGI handler functions (@ref http_set_cgi_handlers). + * This list is scanned just before fs_open is called from request handling. + * The handler can return a new URL that is used internally by the httpd to + * load the returned page (passed to fs_open). + * + * Use this CGI type e.g. to execute specific actions and return a page that + * does not depend on the CGI parameters. + */ +#if !defined LWIP_HTTPD_CGI || defined __DOXYGEN__ +#define LWIP_HTTPD_CGI 0 +#endif + +/** Set this to 1 to support CGI (new style). + * + * This new style CGI support works by calling a global function + * (@ref tCGIHandler) for all URLs that are found. fs_open is called first + * and the URL can not be written by the CGI handler. Instead, this handler gets + * passed the http file state, an object where it can store information derived + * from the CGI URL or parameters. This file state is later passed to SSI, so + * the SSI code can return data depending on CGI input. + * + * Use this CGI handler if you want CGI information passed on to SSI. + */ +#if !defined LWIP_HTTPD_CGI_SSI || defined __DOXYGEN__ +#define LWIP_HTTPD_CGI_SSI 0 +#endif + +/** Set this to 1 to support SSI (Server-Side-Includes) + * + * In contrast to other http servers, this only calls a preregistered callback + * function (@see http_set_ssi_handler) for each tag (in the format of + * ) encountered in SSI-enabled pages. + * SSI-enabled pages must have one of the predefined SSI-enabled file extensions. + * All files with one of these extensions are parsed when sent. + * + * A downside of the current SSI implementation is that persistent connections + * don't work, as the file length is not known in advance (and httpd currently + * relies on the Content-Length header for persistent connections). + * + * To save memory, the maximum tag length is limited (@see LWIP_HTTPD_MAX_TAG_NAME_LEN). + * To save memory, the maximum insertion string length is limited (@see + * LWIP_HTTPD_MAX_TAG_INSERT_LEN). If this is not enought, @ref LWIP_HTTPD_SSI_MULTIPART + * can be used. + */ +#if !defined LWIP_HTTPD_SSI || defined __DOXYGEN__ +#define LWIP_HTTPD_SSI 0 +#endif + +/** Set this to 1 to implement an SSI tag handler callback that gets a const char* + * to the tag (instead of an index into a pre-registered array of known tags) + * If this is 0, the SSI handler callback function is only called pre-registered tags. + */ +#if !defined LWIP_HTTPD_SSI_RAW || defined __DOXYGEN__ +#define LWIP_HTTPD_SSI_RAW 0 +#endif + +/** Set this to 0 to prevent parsing the file extension at runtime to decide + * if a file should be scanned for SSI tags or not. + * Default is 1 (file extensions are checked using the g_pcSSIExtensions array) + * Set to 2 to override this runtime test function. + * + * This is enabled by default, but if you only use a newer version of makefsdata + * supporting the "-ssi" option, this info is already present in + */ +#if !defined LWIP_HTTPD_SSI_BY_FILE_EXTENSION || defined __DOXYGEN__ +#define LWIP_HTTPD_SSI_BY_FILE_EXTENSION 1 +#endif + +/** Set this to 1 to support HTTP POST */ +#if !defined LWIP_HTTPD_SUPPORT_POST || defined __DOXYGEN__ +#define LWIP_HTTPD_SUPPORT_POST 0 +#endif + +/* The maximum number of parameters that the CGI handler can be sent. */ +#if !defined LWIP_HTTPD_MAX_CGI_PARAMETERS || defined __DOXYGEN__ +#define LWIP_HTTPD_MAX_CGI_PARAMETERS 16 +#endif + +/** LWIP_HTTPD_SSI_MULTIPART==1: SSI handler function is called with 2 more + * arguments indicating a counter for insert string that are too long to be + * inserted at once: the SSI handler function must then set 'next_tag_part' + * which will be passed back to it in the next call. */ +#if !defined LWIP_HTTPD_SSI_MULTIPART || defined __DOXYGEN__ +#define LWIP_HTTPD_SSI_MULTIPART 0 +#endif + +/* The maximum length of the string comprising the SSI tag name + * ATTENTION: tags longer than this are ignored, not truncated! + */ +#if !defined LWIP_HTTPD_MAX_TAG_NAME_LEN || defined __DOXYGEN__ +#define LWIP_HTTPD_MAX_TAG_NAME_LEN 8 +#endif + +/* The maximum length of string that can be returned to replace any given tag + * If this buffer is not long enough, use LWIP_HTTPD_SSI_MULTIPART. + */ +#if !defined LWIP_HTTPD_MAX_TAG_INSERT_LEN || defined __DOXYGEN__ +#define LWIP_HTTPD_MAX_TAG_INSERT_LEN 192 +#endif + +#if !defined LWIP_HTTPD_POST_MANUAL_WND || defined __DOXYGEN__ +#define LWIP_HTTPD_POST_MANUAL_WND 0 +#endif + +/** This string is passed in the HTTP header as "Server: " */ +#if !defined HTTPD_SERVER_AGENT || defined __DOXYGEN__ +#define HTTPD_SERVER_AGENT "lwIP/" LWIP_VERSION_STRING " (http://savannah.nongnu.org/projects/lwip)" +#endif + +/** Set this to 1 if you want to include code that creates HTTP headers + * at runtime. Default is off: HTTP headers are then created statically + * by the makefsdata tool. Static headers mean smaller code size, but + * the (readonly) fsdata will grow a bit as every file includes the HTTP + * header. */ +#if !defined LWIP_HTTPD_DYNAMIC_HEADERS || defined __DOXYGEN__ +#define LWIP_HTTPD_DYNAMIC_HEADERS 0 +#endif + +#if !defined HTTPD_DEBUG || defined __DOXYGEN__ +#define HTTPD_DEBUG LWIP_DBG_OFF +#endif + +/** Set this to 1 to use a memp pool for allocating + * struct http_state instead of the heap. + * If enabled, you'll need to define MEMP_NUM_PARALLEL_HTTPD_CONNS + * (and MEMP_NUM_PARALLEL_HTTPD_SSI_CONNS for SSI) to set the size of + * the pool(s). + */ +#if !defined HTTPD_USE_MEM_POOL || defined __DOXYGEN__ +#define HTTPD_USE_MEM_POOL 0 +#endif + +/** The server port for HTTPD to use */ +#if !defined HTTPD_SERVER_PORT || defined __DOXYGEN__ +#define HTTPD_SERVER_PORT LWIP_IANA_PORT_HTTP +#endif + +/** The https server port for HTTPD to use */ +#if !defined HTTPD_SERVER_PORT_HTTPS || defined __DOXYGEN__ +#define HTTPD_SERVER_PORT_HTTPS LWIP_IANA_PORT_HTTPS +#endif + +/** Enable https support? */ +#if !defined HTTPD_ENABLE_HTTPS || defined __DOXYGEN__ +#define HTTPD_ENABLE_HTTPS 0 +#endif + +/** Maximum retries before the connection is aborted/closed. + * - number of times pcb->poll is called -> default is 4*500ms = 2s; + * - reset when pcb->sent is called + */ +#if !defined HTTPD_MAX_RETRIES || defined __DOXYGEN__ +#define HTTPD_MAX_RETRIES 4 +#endif + +/** The poll delay is X*500ms */ +#if !defined HTTPD_POLL_INTERVAL || defined __DOXYGEN__ +#define HTTPD_POLL_INTERVAL 4 +#endif + +/** Priority for tcp pcbs created by HTTPD (very low by default). + * Lower priorities get killed first when running out of memory. + */ +#if !defined HTTPD_TCP_PRIO || defined __DOXYGEN__ +#define HTTPD_TCP_PRIO TCP_PRIO_MIN +#endif + +/** Set this to 1 to enable timing each file sent */ +#if !defined LWIP_HTTPD_TIMING || defined __DOXYGEN__ +#define LWIP_HTTPD_TIMING 0 +#endif +/** Set this to 1 to enable timing each file sent */ +#if !defined HTTPD_DEBUG_TIMING || defined __DOXYGEN__ +#define HTTPD_DEBUG_TIMING LWIP_DBG_OFF +#endif + +/** Set this to one to show error pages when parsing a request fails instead + of simply closing the connection. */ +#if !defined LWIP_HTTPD_SUPPORT_EXTSTATUS || defined __DOXYGEN__ +#define LWIP_HTTPD_SUPPORT_EXTSTATUS 0 +#endif + +/** Set this to 0 to drop support for HTTP/0.9 clients (to save some bytes) */ +#if !defined LWIP_HTTPD_SUPPORT_V09 || defined __DOXYGEN__ +#define LWIP_HTTPD_SUPPORT_V09 1 +#endif + +/** Set this to 1 to enable HTTP/1.1 persistent connections. + * ATTENTION: If the generated file system includes HTTP headers, these must + * include the "Connection: keep-alive" header (pass argument "-11" to makefsdata). + */ +#if !defined LWIP_HTTPD_SUPPORT_11_KEEPALIVE || defined __DOXYGEN__ +#define LWIP_HTTPD_SUPPORT_11_KEEPALIVE 0 +#endif + +/** Set this to 1 to support HTTP request coming in in multiple packets/pbufs */ +#if !defined LWIP_HTTPD_SUPPORT_REQUESTLIST || defined __DOXYGEN__ +#define LWIP_HTTPD_SUPPORT_REQUESTLIST 1 +#endif + +#if LWIP_HTTPD_SUPPORT_REQUESTLIST +/** Number of rx pbufs to enqueue to parse an incoming request (up to the first + newline) */ +#if !defined LWIP_HTTPD_REQ_QUEUELEN || defined __DOXYGEN__ +#define LWIP_HTTPD_REQ_QUEUELEN 5 +#endif + +/** Number of (TCP payload-) bytes (in pbufs) to enqueue to parse and incoming + request (up to the first double-newline) */ +#if !defined LWIP_HTTPD_REQ_BUFSIZE || defined __DOXYGEN__ +#define LWIP_HTTPD_REQ_BUFSIZE LWIP_HTTPD_MAX_REQ_LENGTH +#endif + +/** Defines the maximum length of a HTTP request line (up to the first CRLF, + copied from pbuf into this a global buffer when pbuf- or packet-queues + are received - otherwise the input pbuf is used directly) */ +#if !defined LWIP_HTTPD_MAX_REQ_LENGTH || defined __DOXYGEN__ +#define LWIP_HTTPD_MAX_REQ_LENGTH LWIP_MIN(1023, (LWIP_HTTPD_REQ_QUEUELEN * PBUF_POOL_BUFSIZE)) +#endif +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + +/** This is the size of a static buffer used when URIs end with '/'. + * In this buffer, the directory requested is concatenated with all the + * configured default file names. + * Set to 0 to disable checking default filenames on non-root directories. + */ +#if !defined LWIP_HTTPD_MAX_REQUEST_URI_LEN || defined __DOXYGEN__ +#define LWIP_HTTPD_MAX_REQUEST_URI_LEN 63 +#endif + +/** Maximum length of the filename to send as response to a POST request, + * filled in by the application when a POST is finished. + */ +#if !defined LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN || defined __DOXYGEN__ +#define LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN 63 +#endif + +/** Set this to 0 to not send the SSI tag (default is on, so the tag will + * be sent in the HTML page */ +#if !defined LWIP_HTTPD_SSI_INCLUDE_TAG || defined __DOXYGEN__ +#define LWIP_HTTPD_SSI_INCLUDE_TAG 1 +#endif + +/** Set this to 1 to call tcp_abort when tcp_close fails with memory error. + * This can be used to prevent consuming all memory in situations where the + * HTTP server has low priority compared to other communication. */ +#if !defined LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR || defined __DOXYGEN__ +#define LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR 0 +#endif + +/** Set this to 1 to kill the oldest connection when running out of + * memory for 'struct http_state' or 'struct http_ssi_state'. + * ATTENTION: This puts all connections on a linked list, so may be kind of slow. + */ +#if !defined LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED || defined __DOXYGEN__ +#define LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED 0 +#endif + +/** Set this to 1 to send URIs without extension without headers + * (who uses this at all??) */ +#if !defined LWIP_HTTPD_OMIT_HEADER_FOR_EXTENSIONLESS_URI || defined __DOXYGEN__ +#define LWIP_HTTPD_OMIT_HEADER_FOR_EXTENSIONLESS_URI 0 +#endif + +/** Default: Tags are sent from struct http_state and are therefore volatile */ +#if !defined HTTP_IS_TAG_VOLATILE || defined __DOXYGEN__ +#define HTTP_IS_TAG_VOLATILE(ptr) TCP_WRITE_FLAG_COPY +#endif + +/* By default, the httpd is limited to send 2*pcb->mss to keep resource usage low + when http is not an important protocol in the device. */ +#if !defined HTTPD_LIMIT_SENDING_TO_2MSS || defined __DOXYGEN__ +#define HTTPD_LIMIT_SENDING_TO_2MSS 1 +#endif + +/* Define this to a function that returns the maximum amount of data to enqueue. + The function have this signature: u16_t fn(struct altcp_pcb* pcb); + The best place to define this is the hooks file (@see LWIP_HOOK_FILENAME) */ +#if !defined HTTPD_MAX_WRITE_LEN || defined __DOXYGEN__ +#if HTTPD_LIMIT_SENDING_TO_2MSS +#define HTTPD_MAX_WRITE_LEN(pcb) ((u16_t)(2 * altcp_mss(pcb))) +#endif +#endif + +/*------------------- FS OPTIONS -------------------*/ + +/** Set this to 1 and provide the functions: + * - "int fs_open_custom(struct fs_file *file, const char *name)" + * Called first for every opened file to allow opening files + * that are not included in fsdata(_custom).c + * - "void fs_close_custom(struct fs_file *file)" + * Called to free resources allocated by fs_open_custom(). + */ +#if !defined LWIP_HTTPD_CUSTOM_FILES || defined __DOXYGEN__ +#define LWIP_HTTPD_CUSTOM_FILES 0 +#endif + +/** Set this to 1 to support fs_read() to dynamically read file data. + * Without this (default=off), only one-block files are supported, + * and the contents must be ready after fs_open(). + */ +#if !defined LWIP_HTTPD_DYNAMIC_FILE_READ || defined __DOXYGEN__ +#define LWIP_HTTPD_DYNAMIC_FILE_READ 0 +#endif + +/** Set this to 1 to include an application state argument per file + * that is opened. This allows to keep a state per connection/file. + */ +#if !defined LWIP_HTTPD_FILE_STATE || defined __DOXYGEN__ +#define LWIP_HTTPD_FILE_STATE 0 +#endif + +/** HTTPD_PRECALCULATED_CHECKSUM==1: include precompiled checksums for + * predefined (MSS-sized) chunks of the files to prevent having to calculate + * the checksums at runtime. */ +#if !defined HTTPD_PRECALCULATED_CHECKSUM || defined __DOXYGEN__ +#define HTTPD_PRECALCULATED_CHECKSUM 0 +#endif + +/** LWIP_HTTPD_FS_ASYNC_READ==1: support asynchronous read operations + * (fs_read_async returns FS_READ_DELAYED and calls a callback when finished). + */ +#if !defined LWIP_HTTPD_FS_ASYNC_READ || defined __DOXYGEN__ +#define LWIP_HTTPD_FS_ASYNC_READ 0 +#endif + +/** Filename (including path) to use as FS data file */ +#if !defined HTTPD_FSDATA_FILE || defined __DOXYGEN__ +/* HTTPD_USE_CUSTOM_FSDATA: Compatibility with deprecated lwIP option */ +#if defined(HTTPD_USE_CUSTOM_FSDATA) && (HTTPD_USE_CUSTOM_FSDATA != 0) +#define HTTPD_FSDATA_FILE "fsdata.c" +#else +#define HTTPD_FSDATA_FILE "fsdata.c" +#endif +#endif + +/** + * @} + */ + +#endif /* LWIP_HDR_APPS_HTTPD_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/lwiperf.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/lwiperf.h new file mode 100644 index 000000000..ff4d6f736 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/lwiperf.h @@ -0,0 +1,100 @@ +/** + * @file + * lwIP iPerf server implementation + */ + +/* + * Copyright (c) 2014 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_APPS_LWIPERF_H +#define LWIP_HDR_APPS_LWIPERF_H + +#include "lwip/opt.h" +#include "lwip/ip_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define LWIPERF_TCP_PORT_DEFAULT 5001 + +/** lwIPerf test results */ +enum lwiperf_report_type +{ + /** The server side test is done */ + LWIPERF_TCP_DONE_SERVER, + /** The client side test is done */ + LWIPERF_TCP_DONE_CLIENT, + /** Local error lead to test abort */ + LWIPERF_TCP_ABORTED_LOCAL, + /** Data check error lead to test abort */ + LWIPERF_TCP_ABORTED_LOCAL_DATAERROR, + /** Transmit error lead to test abort */ + LWIPERF_TCP_ABORTED_LOCAL_TXERROR, + /** Remote side aborted the test */ + LWIPERF_TCP_ABORTED_REMOTE +}; + +/** Control */ +enum lwiperf_client_type +{ + /** Unidirectional tx only test */ + LWIPERF_CLIENT, + /** Do a bidirectional test simultaneously */ + LWIPERF_DUAL, + /** Do a bidirectional test individually */ + LWIPERF_TRADEOFF +}; + +/** Prototype of a report function that is called when a session is finished. + This report function can show the test results. + @param report_type contains the test result */ +typedef void (*lwiperf_report_fn)(void *arg, enum lwiperf_report_type report_type, + const ip_addr_t* local_addr, u16_t local_port, const ip_addr_t* remote_addr, u16_t remote_port, + u32_t bytes_transferred, u32_t ms_duration, u32_t bandwidth_kbitpsec); + +void* lwiperf_start_tcp_server(const ip_addr_t* local_addr, u16_t local_port, + lwiperf_report_fn report_fn, void* report_arg); +void* lwiperf_start_tcp_server_default(lwiperf_report_fn report_fn, void* report_arg); +void* lwiperf_start_tcp_client(const ip_addr_t* remote_addr, u16_t remote_port, + enum lwiperf_client_type type, + lwiperf_report_fn report_fn, void* report_arg); +void* lwiperf_start_tcp_client_default(const ip_addr_t* remote_addr, + lwiperf_report_fn report_fn, void* report_arg); + +void lwiperf_abort(void* lwiperf_session); + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_LWIPERF_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns.h new file mode 100644 index 000000000..3c3d054df --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns.h @@ -0,0 +1,105 @@ +/** + * @file + * MDNS responder + */ + + /* + * Copyright (c) 2015 Verisure Innovation AB + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Erik Ekman + * + */ + +#ifndef LWIP_HDR_APPS_MDNS_H +#define LWIP_HDR_APPS_MDNS_H + +#include "lwip/apps/mdns_opts.h" +#include "lwip/netif.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_MDNS_RESPONDER + +enum mdns_sd_proto { + DNSSD_PROTO_UDP = 0, + DNSSD_PROTO_TCP = 1 +}; + +#define MDNS_PROBING_CONFLICT 0 +#define MDNS_PROBING_SUCCESSFUL 1 + +#define MDNS_LABEL_MAXLEN 63 + +struct mdns_host; +struct mdns_service; + +/** Callback function to add text to a reply, called when generating the reply */ +typedef void (*service_get_txt_fn_t)(struct mdns_service *service, void *txt_userdata); + +/** Callback function to let application know the result of probing network for name + * uniqueness, called with result MDNS_PROBING_SUCCESSFUL if no other node claimed + * use for the name for the netif or a service and is safe to use, or MDNS_PROBING_CONFLICT + * if another node is already using it and mdns is disabled on this interface */ +typedef void (*mdns_name_result_cb_t)(struct netif* netif, u8_t result); + +void mdns_resp_init(void); + +void mdns_resp_register_name_result_cb(mdns_name_result_cb_t cb); + +err_t mdns_resp_add_netif(struct netif *netif, const char *hostname, u32_t dns_ttl); +err_t mdns_resp_remove_netif(struct netif *netif); +err_t mdns_resp_rename_netif(struct netif *netif, const char *hostname); + +s8_t mdns_resp_add_service(struct netif *netif, const char *name, const char *service, enum mdns_sd_proto proto, u16_t port, u32_t dns_ttl, service_get_txt_fn_t txt_fn, void *txt_userdata); +err_t mdns_resp_del_service(struct netif *netif, s8_t slot); +err_t mdns_resp_rename_service(struct netif *netif, s8_t slot, const char *name); + +err_t mdns_resp_add_service_txtitem(struct mdns_service *service, const char *txt, u8_t txt_len); + +void mdns_resp_restart(struct netif *netif); +void mdns_resp_announce(struct netif *netif); + +/** + * @ingroup mdns + * Announce IP settings have changed on netif. + * Call this in your callback registered by netif_set_status_callback(). + * No need to call this function when LWIP_NETIF_EXT_STATUS_CALLBACK==1, + * this handled automatically for you. + * @param netif The network interface where settings have changed. + */ +#define mdns_resp_netif_settings_changed(netif) mdns_resp_announce(netif) + +#endif /* LWIP_MDNS_RESPONDER */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_MDNS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns_opts.h new file mode 100644 index 000000000..74d3f41e4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns_opts.h @@ -0,0 +1,81 @@ +/** + * @file + * MDNS responder + */ + + /* + * Copyright (c) 2015 Verisure Innovation AB + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Erik Ekman + * + */ + +#ifndef LWIP_HDR_APPS_MDNS_OPTS_H +#define LWIP_HDR_APPS_MDNS_OPTS_H + +#include "lwip/opt.h" + +/** + * @defgroup mdns_opts Options + * @ingroup mdns + * @{ + */ + +/** + * LWIP_MDNS_RESPONDER==1: Turn on multicast DNS module. UDP must be available for MDNS + * transport. IGMP is needed for IPv4 multicast. + */ +#ifndef LWIP_MDNS_RESPONDER +#define LWIP_MDNS_RESPONDER 0 +#endif /* LWIP_MDNS_RESPONDER */ + +/** The maximum number of services per netif */ +#ifndef MDNS_MAX_SERVICES +#define MDNS_MAX_SERVICES 1 +#endif + +/** MDNS_RESP_USENETIF_EXTCALLBACK==1: register an ext_callback on the netif + * to automatically restart probing/announcing on status or address change. + */ +#ifndef MDNS_RESP_USENETIF_EXTCALLBACK +#define MDNS_RESP_USENETIF_EXTCALLBACK LWIP_NETIF_EXT_STATUS_CALLBACK +#endif + +/** + * MDNS_DEBUG: Enable debugging for multicast DNS. + */ +#ifndef MDNS_DEBUG +#define MDNS_DEBUG LWIP_DBG_OFF +#endif + +/** + * @} + */ + +#endif /* LWIP_HDR_APPS_MDNS_OPTS_H */ + diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns_priv.h new file mode 100644 index 000000000..239415770 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mdns_priv.h @@ -0,0 +1,74 @@ +/** + * @file + * MDNS responder private definitions + */ + + /* + * Copyright (c) 2015 Verisure Innovation AB + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Erik Ekman + * + */ +#ifndef LWIP_HDR_MDNS_PRIV_H +#define LWIP_HDR_MDNS_PRIV_H + +#include "lwip/apps/mdns_opts.h" +#include "lwip/pbuf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_MDNS_RESPONDER + +/* Domain struct and methods - visible for unit tests */ + +#define MDNS_DOMAIN_MAXLEN 256 +#define MDNS_READNAME_ERROR 0xFFFF + +struct mdns_domain { + /* Encoded domain name */ + u8_t name[MDNS_DOMAIN_MAXLEN]; + /* Total length of domain name, including zero */ + u16_t length; + /* Set if compression of this domain is not allowed */ + u8_t skip_compression; +}; + +err_t mdns_domain_add_label(struct mdns_domain *domain, const char *label, u8_t len); +u16_t mdns_readname(struct pbuf *p, u16_t offset, struct mdns_domain *domain); +int mdns_domain_eq(struct mdns_domain *a, struct mdns_domain *b); +u16_t mdns_compress_domain(struct pbuf *pbuf, u16_t *offset, struct mdns_domain *domain); + +#endif /* LWIP_MDNS_RESPONDER */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_MDNS_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt.h new file mode 100644 index 000000000..e796ae11e --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt.h @@ -0,0 +1,205 @@ +/** + * @file + * MQTT client + */ + +/* + * Copyright (c) 2016 Erik Andersson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Erik Andersson + * + */ +#ifndef LWIP_HDR_APPS_MQTT_CLIENT_H +#define LWIP_HDR_APPS_MQTT_CLIENT_H + +#include "lwip/apps/mqtt_opts.h" +#include "lwip/err.h" +#include "lwip/ip_addr.h" +#include "lwip/prot/iana.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct mqtt_client_s mqtt_client_t; + +#if LWIP_ALTCP && LWIP_ALTCP_TLS +struct altcp_tls_config; +#endif + +/** @ingroup mqtt + * Default MQTT port (non-TLS) */ +#define MQTT_PORT LWIP_IANA_PORT_MQTT +/** @ingroup mqtt + * Default MQTT TLS port */ +#define MQTT_TLS_PORT LWIP_IANA_PORT_SECURE_MQTT + +/*---------------------------------------------------------------------------------------------- */ +/* Connection with server */ + +/** + * @ingroup mqtt + * Client information and connection parameters */ +struct mqtt_connect_client_info_t { + /** Client identifier, must be set by caller */ + const char *client_id; + /** User name, set to NULL if not used */ + const char* client_user; + /** Password, set to NULL if not used */ + const char* client_pass; + /** keep alive time in seconds, 0 to disable keep alive functionality*/ + u16_t keep_alive; + /** will topic, set to NULL if will is not to be used, + will_msg, will_qos and will retain are then ignored */ + const char* will_topic; + /** will_msg, see will_topic */ + const char* will_msg; + /** will_qos, see will_topic */ + u8_t will_qos; + /** will_retain, see will_topic */ + u8_t will_retain; +#if LWIP_ALTCP && LWIP_ALTCP_TLS + /** TLS configuration for secure connections */ + struct altcp_tls_config *tls_config; +#endif +}; + +/** + * @ingroup mqtt + * Connection status codes */ +typedef enum +{ + /** Accepted */ + MQTT_CONNECT_ACCEPTED = 0, + /** Refused protocol version */ + MQTT_CONNECT_REFUSED_PROTOCOL_VERSION = 1, + /** Refused identifier */ + MQTT_CONNECT_REFUSED_IDENTIFIER = 2, + /** Refused server */ + MQTT_CONNECT_REFUSED_SERVER = 3, + /** Refused user credentials */ + MQTT_CONNECT_REFUSED_USERNAME_PASS = 4, + /** Refused not authorized */ + MQTT_CONNECT_REFUSED_NOT_AUTHORIZED_ = 5, + /** Disconnected */ + MQTT_CONNECT_DISCONNECTED = 256, + /** Timeout */ + MQTT_CONNECT_TIMEOUT = 257 +} mqtt_connection_status_t; + +/** + * @ingroup mqtt + * Function prototype for mqtt connection status callback. Called when + * client has connected to the server after initiating a mqtt connection attempt by + * calling mqtt_client_connect() or when connection is closed by server or an error + * + * @param client MQTT client itself + * @param arg Additional argument to pass to the callback function + * @param status Connect result code or disconnection notification @see mqtt_connection_status_t + * + */ +typedef void (*mqtt_connection_cb_t)(mqtt_client_t *client, void *arg, mqtt_connection_status_t status); + + +/** + * @ingroup mqtt + * Data callback flags */ +enum { + /** Flag set when last fragment of data arrives in data callback */ + MQTT_DATA_FLAG_LAST = 1 +}; + +/** + * @ingroup mqtt + * Function prototype for MQTT incoming publish data callback function. Called when data + * arrives to a subscribed topic @see mqtt_subscribe + * + * @param arg Additional argument to pass to the callback function + * @param data User data, pointed object, data may not be referenced after callback return, + NULL is passed when all publish data are delivered + * @param len Length of publish data fragment + * @param flags MQTT_DATA_FLAG_LAST set when this call contains the last part of data from publish message + * + */ +typedef void (*mqtt_incoming_data_cb_t)(void *arg, const u8_t *data, u16_t len, u8_t flags); + + +/** + * @ingroup mqtt + * Function prototype for MQTT incoming publish function. Called when an incoming publish + * arrives to a subscribed topic @see mqtt_subscribe + * + * @param arg Additional argument to pass to the callback function + * @param topic Zero terminated Topic text string, topic may not be referenced after callback return + * @param tot_len Total length of publish data, if set to 0 (no publish payload) data callback will not be invoked + */ +typedef void (*mqtt_incoming_publish_cb_t)(void *arg, const char *topic, u32_t tot_len); + + +/** + * @ingroup mqtt + * Function prototype for mqtt request callback. Called when a subscribe, unsubscribe + * or publish request has completed + * @param arg Pointer to user data supplied when invoking request + * @param err ERR_OK on success + * ERR_TIMEOUT if no response was received within timeout, + * ERR_ABRT if (un)subscribe was denied + */ +typedef void (*mqtt_request_cb_t)(void *arg, err_t err); + + +err_t mqtt_client_connect(mqtt_client_t *client, const ip_addr_t *ipaddr, u16_t port, mqtt_connection_cb_t cb, void *arg, + const struct mqtt_connect_client_info_t *client_info); + +void mqtt_disconnect(mqtt_client_t *client); + +mqtt_client_t *mqtt_client_new(void); +void mqtt_client_free(mqtt_client_t* client); + +u8_t mqtt_client_is_connected(mqtt_client_t *client); + +void mqtt_set_inpub_callback(mqtt_client_t *client, mqtt_incoming_publish_cb_t, + mqtt_incoming_data_cb_t data_cb, void *arg); + +err_t mqtt_sub_unsub(mqtt_client_t *client, const char *topic, u8_t qos, mqtt_request_cb_t cb, void *arg, u8_t sub); + +/** @ingroup mqtt + *Subscribe to topic */ +#define mqtt_subscribe(client, topic, qos, cb, arg) mqtt_sub_unsub(client, topic, qos, cb, arg, 1) +/** @ingroup mqtt + * Unsubscribe to topic */ +#define mqtt_unsubscribe(client, topic, cb, arg) mqtt_sub_unsub(client, topic, 0, cb, arg, 0) + +err_t mqtt_publish(mqtt_client_t *client, const char *topic, const void *payload, u16_t payload_length, u8_t qos, u8_t retain, + mqtt_request_cb_t cb, void *arg); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_MQTT_CLIENT_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt_opts.h new file mode 100644 index 000000000..e05613010 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt_opts.h @@ -0,0 +1,103 @@ +/** + * @file + * MQTT client options + */ + +/* + * Copyright (c) 2016 Erik Andersson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Erik Andersson + * + */ +#ifndef LWIP_HDR_APPS_MQTT_OPTS_H +#define LWIP_HDR_APPS_MQTT_OPTS_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup mqtt_opts Options + * @ingroup mqtt + * @{ + */ + +/** + * Output ring-buffer size, must be able to fit largest outgoing publish message topic+payloads + */ +#ifndef MQTT_OUTPUT_RINGBUF_SIZE +#define MQTT_OUTPUT_RINGBUF_SIZE 256 +#endif + +/** + * Number of bytes in receive buffer, must be at least the size of the longest incoming topic + 8 + * If one wants to avoid fragmented incoming publish, set length to max incoming topic length + max payload length + 8 + */ +#ifndef MQTT_VAR_HEADER_BUFFER_LEN +#define MQTT_VAR_HEADER_BUFFER_LEN 128 +#endif + +/** + * Maximum number of pending subscribe, unsubscribe and publish requests to server . + */ +#ifndef MQTT_REQ_MAX_IN_FLIGHT +#define MQTT_REQ_MAX_IN_FLIGHT 4 +#endif + +/** + * Seconds between each cyclic timer call. + */ +#ifndef MQTT_CYCLIC_TIMER_INTERVAL +#define MQTT_CYCLIC_TIMER_INTERVAL 5 +#endif + +/** + * Publish, subscribe and unsubscribe request timeout in seconds. + */ +#ifndef MQTT_REQ_TIMEOUT +#define MQTT_REQ_TIMEOUT 30 +#endif + +/** + * Seconds for MQTT connect response timeout after sending connect request + */ +#ifndef MQTT_CONNECT_TIMOUT +#define MQTT_CONNECT_TIMOUT 100 +#endif + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_MQTT_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt_priv.h new file mode 100644 index 000000000..04d2336b0 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/mqtt_priv.h @@ -0,0 +1,104 @@ +/** + * @file + * MQTT client (private interface) + */ + +/* + * Copyright (c) 2016 Erik Andersson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Erik Andersson + * + */ +#ifndef LWIP_HDR_APPS_MQTT_PRIV_H +#define LWIP_HDR_APPS_MQTT_PRIV_H + +#include "lwip/apps/mqtt.h" +#include "lwip/altcp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** Pending request item, binds application callback to pending server requests */ +struct mqtt_request_t +{ + /** Next item in list, NULL means this is the last in chain, + next pointing at itself means request is unallocated */ + struct mqtt_request_t *next; + /** Callback to upper layer */ + mqtt_request_cb_t cb; + void *arg; + /** MQTT packet identifier */ + u16_t pkt_id; + /** Expire time relative to element before this */ + u16_t timeout_diff; +}; + +/** Ring buffer */ +struct mqtt_ringbuf_t { + u16_t put; + u16_t get; + u8_t buf[MQTT_OUTPUT_RINGBUF_SIZE]; +}; + +/** MQTT client */ +struct mqtt_client_s +{ + /** Timers and timeouts */ + u16_t cyclic_tick; + u16_t keep_alive; + u16_t server_watchdog; + /** Packet identifier generator*/ + u16_t pkt_id_seq; + /** Packet identifier of pending incoming publish */ + u16_t inpub_pkt_id; + /** Connection state */ + u8_t conn_state; + struct altcp_pcb *conn; + /** Connection callback */ + void *connect_arg; + mqtt_connection_cb_t connect_cb; + /** Pending requests to server */ + struct mqtt_request_t *pend_req_queue; + struct mqtt_request_t req_list[MQTT_REQ_MAX_IN_FLIGHT]; + void *inpub_arg; + /** Incoming data callback */ + mqtt_incoming_data_cb_t data_cb; + mqtt_incoming_publish_cb_t pub_cb; + /** Input */ + u32_t msg_idx; + u8_t rx_buffer[MQTT_VAR_HEADER_BUFFER_LEN]; + /** Output ring-buffer */ + struct mqtt_ringbuf_t output; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_MQTT_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/netbiosns.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/netbiosns.h new file mode 100644 index 000000000..c5aedb6e8 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/netbiosns.h @@ -0,0 +1,51 @@ +/** + * @file + * NETBIOS name service responder + */ + +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ +#ifndef LWIP_HDR_APPS_NETBIOS_H +#define LWIP_HDR_APPS_NETBIOS_H + +#include "lwip/apps/netbiosns_opts.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void netbiosns_init(void); +#ifndef NETBIOS_LWIP_NAME +void netbiosns_set_name(const char* hostname); +#endif +void netbiosns_stop(void); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_NETBIOS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/netbiosns_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/netbiosns_opts.h new file mode 100644 index 000000000..0bab59eb4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/netbiosns_opts.h @@ -0,0 +1,66 @@ +/** + * @file + * NETBIOS name service responder options + */ + +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ +#ifndef LWIP_HDR_APPS_NETBIOS_OPTS_H +#define LWIP_HDR_APPS_NETBIOS_OPTS_H + +#include "lwip/opt.h" + +/** + * @defgroup netbiosns_opts Options + * @ingroup netbiosns + * @{ + */ + +/** NetBIOS name of lwip device + * This must be uppercase until NETBIOS_STRCMP() is defined to a string + * comparision function that is case insensitive. + * If you want to use the netif's hostname, use this (with LWIP_NETIF_HOSTNAME): + * (ip_current_netif() != NULL ? ip_current_netif()->hostname != NULL ? ip_current_netif()->hostname : "" : "") + * + * If this is not defined, netbiosns_set_name() can be called at runtime to change the name. + */ +#ifdef __DOXYGEN__ +#define NETBIOS_LWIP_NAME "NETBIOSLWIPDEV" +#endif + +/** Respond to NetBIOS name queries + * Default is disabled + */ +#if !defined LWIP_NETBIOS_RESPOND_NAME_QUERY || defined __DOXYGEN__ +#define LWIP_NETBIOS_RESPOND_NAME_QUERY 0 +#endif + +/** + * @} + */ + +#endif /* LWIP_HDR_APPS_NETBIOS_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/smtp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/smtp.h new file mode 100644 index 000000000..e6076a109 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/smtp.h @@ -0,0 +1,128 @@ +#ifndef LWIP_HDR_APPS_SMTP_H +#define LWIP_HDR_APPS_SMTP_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lwip/apps/smtp_opts.h" +#include "lwip/err.h" +#include "lwip/prot/iana.h" + +/** The default TCP port used for SMTP */ +#define SMTP_DEFAULT_PORT LWIP_IANA_PORT_SMTP +/** The default TCP port used for SMTPS */ +#define SMTPS_DEFAULT_PORT LWIP_IANA_PORT_SMTPS + +/** Email successfully sent */ +#define SMTP_RESULT_OK 0 +/** Unknown error */ +#define SMTP_RESULT_ERR_UNKNOWN 1 +/** Connection to server failed */ +#define SMTP_RESULT_ERR_CONNECT 2 +/** Failed to resolve server hostname */ +#define SMTP_RESULT_ERR_HOSTNAME 3 +/** Connection unexpectedly closed by remote server */ +#define SMTP_RESULT_ERR_CLOSED 4 +/** Connection timed out (server didn't respond in time) */ +#define SMTP_RESULT_ERR_TIMEOUT 5 +/** Server responded with an unknown response code */ +#define SMTP_RESULT_ERR_SVR_RESP 6 +/** Out of resources locally */ +#define SMTP_RESULT_ERR_MEM 7 + +/** Prototype of an smtp callback function + * + * @param arg argument specified when initiating the email + * @param smtp_result result of the mail transfer (see defines SMTP_RESULT_*) + * @param srv_err if aborted by the server, this contains the error code received + * @param err an error returned by internal lwip functions, can help to specify + * the source of the error but must not necessarily be != ERR_OK + */ +typedef void (*smtp_result_fn)(void *arg, u8_t smtp_result, u16_t srv_err, err_t err); + +/** This structure is used as argument for smtp_send_mail_int(), + * which in turn can be used with tcpip_callback() to send mail + * from interrupt context, e.g. like this: + * struct smtp_send_request *req; (to be filled) + * tcpip_try_callback(smtp_send_mail_int, (void*)req); + * + * For member description, see parameter description of smtp_send_mail(). + * When using with tcpip_callback, this structure has to stay allocated + * (e.g. using mem_malloc/mem_free) until its 'callback_fn' is called. + */ +struct smtp_send_request { + const char *from; + const char* to; + const char* subject; + const char* body; + smtp_result_fn callback_fn; + void* callback_arg; + /** If this is != 0, data is *not* copied into an extra buffer + * but used from the pointers supplied in this struct. + * This means less memory usage, but data must stay untouched until + * the callback function is called. */ + u8_t static_data; +}; + + +#if SMTP_BODYDH + +#ifndef SMTP_BODYDH_BUFFER_SIZE +#define SMTP_BODYDH_BUFFER_SIZE 256 +#endif /* SMTP_BODYDH_BUFFER_SIZE */ + +struct smtp_bodydh { + u16_t state; + u16_t length; /* Length of content in buffer */ + char buffer[SMTP_BODYDH_BUFFER_SIZE]; /* buffer for generated content */ +#ifdef SMTP_BODYDH_USER_SIZE + u8_t user[SMTP_BODYDH_USER_SIZE]; +#endif /* SMTP_BODYDH_USER_SIZE */ +}; + +enum bdh_retvals_e { + BDH_DONE = 0, + BDH_WORKING +}; + +/** Prototype of an smtp body callback function + * It receives a struct smtp_bodydh, and a buffer to write data, + * must return BDH_WORKING to be called again and BDH_DONE when + * it has finished processing. This one tries to fill one TCP buffer with + * data, your function will be repeatedly called until that happens; so if you + * know you'll be taking too long to serve your request, pause once in a while + * by writing length=0 to avoid hogging system resources + * + * @param arg argument specified when initiating the email + * @param smtp_bodydh state handling + buffer structure + */ +typedef int (*smtp_bodycback_fn)(void *arg, struct smtp_bodydh *bodydh); + +err_t smtp_send_mail_bodycback(const char *from, const char* to, const char* subject, + smtp_bodycback_fn bodycback_fn, smtp_result_fn callback_fn, void* callback_arg); + +#endif /* SMTP_BODYDH */ + + +err_t smtp_set_server_addr(const char* server); +void smtp_set_server_port(u16_t port); +#if LWIP_ALTCP && LWIP_ALTCP_TLS +struct altcp_tls_config; +void smtp_set_tls_config(struct altcp_tls_config *tls_config); +#endif +err_t smtp_set_auth(const char* username, const char* pass); +err_t smtp_send_mail(const char *from, const char* to, const char* subject, const char* body, + smtp_result_fn callback_fn, void* callback_arg); +err_t smtp_send_mail_static(const char *from, const char* to, const char* subject, const char* body, + smtp_result_fn callback_fn, void* callback_arg); +void smtp_send_mail_int(void *arg); +#ifdef LWIP_DEBUG +const char* smtp_result_str(u8_t smtp_result); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_SMTP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/smtp_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/smtp_opts.h new file mode 100644 index 000000000..29c0c0863 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/smtp_opts.h @@ -0,0 +1,81 @@ +#ifndef LWIP_HDR_APPS_SMTP_OPTS_H +#define LWIP_HDR_APPS_SMTP_OPTS_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup smtp_opts Options + * @ingroup smtp + * + * @{ + */ + +/** Set this to 1 to enable data handler callback on BODY */ +#ifndef SMTP_BODYDH +#define SMTP_BODYDH 0 +#endif + +/** SMTP_DEBUG: Enable debugging for SNTP. */ +#ifndef SMTP_DEBUG +#define SMTP_DEBUG LWIP_DBG_OFF +#endif + +/** Maximum length reserved for server name including terminating 0 byte */ +#ifndef SMTP_MAX_SERVERNAME_LEN +#define SMTP_MAX_SERVERNAME_LEN 256 +#endif + +/** Maximum length reserved for username */ +#ifndef SMTP_MAX_USERNAME_LEN +#define SMTP_MAX_USERNAME_LEN 32 +#endif + +/** Maximum length reserved for password */ +#ifndef SMTP_MAX_PASS_LEN +#define SMTP_MAX_PASS_LEN 32 +#endif + +/** Set this to 0 if you know the authentication data will not change + * during the smtp session, which saves some heap space. */ +#ifndef SMTP_COPY_AUTHDATA +#define SMTP_COPY_AUTHDATA 1 +#endif + +/** Set this to 0 to save some code space if you know for sure that all data + * passed to this module conforms to the requirements in the SMTP RFC. + * WARNING: use this with care! + */ +#ifndef SMTP_CHECK_DATA +#define SMTP_CHECK_DATA 1 +#endif + +/** Set this to 1 to enable AUTH PLAIN support */ +#ifndef SMTP_SUPPORT_AUTH_PLAIN +#define SMTP_SUPPORT_AUTH_PLAIN 1 +#endif + +/** Set this to 1 to enable AUTH LOGIN support */ +#ifndef SMTP_SUPPORT_AUTH_LOGIN +#define SMTP_SUPPORT_AUTH_LOGIN 1 +#endif + +/* Memory allocation/deallocation can be overridden... */ +#ifndef SMTP_STATE_MALLOC +#define SMTP_STATE_MALLOC(size) mem_malloc(size) +#define SMTP_STATE_FREE(ptr) mem_free(ptr) +#endif + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* SMTP_OPTS_H */ + diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp.h new file mode 100644 index 000000000..15b154ea0 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp.h @@ -0,0 +1,135 @@ +/** + * @file + * SNMP server main API - start and basic configuration + */ + +/* + * Copyright (c) 2001, 2002 Leon Woestenberg + * Copyright (c) 2001, 2002 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Leon Woestenberg + * Martin Hentschel + * + */ +#ifndef LWIP_HDR_APPS_SNMP_H +#define LWIP_HDR_APPS_SNMP_H + +#include "lwip/apps/snmp_opts.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/err.h" +#include "lwip/apps/snmp_core.h" + +/** SNMP variable binding descriptor (publically needed for traps) */ +struct snmp_varbind +{ + /** pointer to next varbind, NULL for last in list */ + struct snmp_varbind *next; + /** pointer to previous varbind, NULL for first in list */ + struct snmp_varbind *prev; + + /** object identifier */ + struct snmp_obj_id oid; + + /** value ASN1 type */ + u8_t type; + /** object value length */ + u16_t value_len; + /** object value */ + void *value; +}; + +/** + * @ingroup snmp_core + * Agent setup, start listening to port 161. + */ +void snmp_init(void); +void snmp_set_mibs(const struct snmp_mib **mibs, u8_t num_mibs); + +void snmp_set_device_enterprise_oid(const struct snmp_obj_id* device_enterprise_oid); +const struct snmp_obj_id* snmp_get_device_enterprise_oid(void); + +void snmp_trap_dst_enable(u8_t dst_idx, u8_t enable); +void snmp_trap_dst_ip_set(u8_t dst_idx, const ip_addr_t *dst); + +/** Generic trap: cold start */ +#define SNMP_GENTRAP_COLDSTART 0 +/** Generic trap: warm start */ +#define SNMP_GENTRAP_WARMSTART 1 +/** Generic trap: link down */ +#define SNMP_GENTRAP_LINKDOWN 2 +/** Generic trap: link up */ +#define SNMP_GENTRAP_LINKUP 3 +/** Generic trap: authentication failure */ +#define SNMP_GENTRAP_AUTH_FAILURE 4 +/** Generic trap: EGP neighbor lost */ +#define SNMP_GENTRAP_EGP_NEIGHBOR_LOSS 5 +/** Generic trap: enterprise specific */ +#define SNMP_GENTRAP_ENTERPRISE_SPECIFIC 6 + +err_t snmp_send_trap_generic(s32_t generic_trap); +err_t snmp_send_trap_specific(s32_t specific_trap, struct snmp_varbind *varbinds); +err_t snmp_send_trap(const struct snmp_obj_id* oid, s32_t generic_trap, s32_t specific_trap, struct snmp_varbind *varbinds); + +#define SNMP_AUTH_TRAPS_DISABLED 0 +#define SNMP_AUTH_TRAPS_ENABLED 1 +void snmp_set_auth_traps_enabled(u8_t enable); +u8_t snmp_get_auth_traps_enabled(void); + +u8_t snmp_v1_enabled(void); +u8_t snmp_v2c_enabled(void); +u8_t snmp_v3_enabled(void); +void snmp_v1_enable(u8_t enable); +void snmp_v2c_enable(u8_t enable); +void snmp_v3_enable(u8_t enable); + +const char * snmp_get_community(void); +const char * snmp_get_community_write(void); +const char * snmp_get_community_trap(void); +void snmp_set_community(const char * const community); +void snmp_set_community_write(const char * const community); +void snmp_set_community_trap(const char * const community); + +void snmp_coldstart_trap(void); +void snmp_authfail_trap(void); + +typedef void (*snmp_write_callback_fct)(const u32_t* oid, u8_t oid_len, void* callback_arg); +void snmp_set_write_callback(snmp_write_callback_fct write_callback, void* callback_arg); + +#endif /* LWIP_SNMP */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_SNMP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_core.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_core.h new file mode 100644 index 000000000..4748df696 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_core.h @@ -0,0 +1,377 @@ +/** + * @file + * SNMP core API for implementing MIBs + */ + +/* + * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * Author: Christiaan Simons + * Martin Hentschel + */ + +#ifndef LWIP_HDR_APPS_SNMP_CORE_H +#define LWIP_HDR_APPS_SNMP_CORE_H + +#include "lwip/apps/snmp_opts.h" + +#if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/ip_addr.h" +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* basic ASN1 defines */ +#define SNMP_ASN1_CLASS_UNIVERSAL 0x00 +#define SNMP_ASN1_CLASS_APPLICATION 0x40 +#define SNMP_ASN1_CLASS_CONTEXT 0x80 +#define SNMP_ASN1_CLASS_PRIVATE 0xC0 + +#define SNMP_ASN1_CONTENTTYPE_PRIMITIVE 0x00 +#define SNMP_ASN1_CONTENTTYPE_CONSTRUCTED 0x20 + +/* universal tags (from ASN.1 spec.) */ +#define SNMP_ASN1_UNIVERSAL_END_OF_CONTENT 0 +#define SNMP_ASN1_UNIVERSAL_INTEGER 2 +#define SNMP_ASN1_UNIVERSAL_OCTET_STRING 4 +#define SNMP_ASN1_UNIVERSAL_NULL 5 +#define SNMP_ASN1_UNIVERSAL_OBJECT_ID 6 +#define SNMP_ASN1_UNIVERSAL_SEQUENCE_OF 16 + +/* application specific (SNMP) tags (from SNMPv2-SMI) */ +#define SNMP_ASN1_APPLICATION_IPADDR 0 /* [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4)) */ +#define SNMP_ASN1_APPLICATION_COUNTER 1 /* [APPLICATION 1] IMPLICIT INTEGER (0..4294967295) => u32_t */ +#define SNMP_ASN1_APPLICATION_GAUGE 2 /* [APPLICATION 2] IMPLICIT INTEGER (0..4294967295) => u32_t */ +#define SNMP_ASN1_APPLICATION_TIMETICKS 3 /* [APPLICATION 3] IMPLICIT INTEGER (0..4294967295) => u32_t */ +#define SNMP_ASN1_APPLICATION_OPAQUE 4 /* [APPLICATION 4] IMPLICIT OCTET STRING */ +#define SNMP_ASN1_APPLICATION_COUNTER64 6 /* [APPLICATION 6] IMPLICIT INTEGER (0..18446744073709551615) */ + +/* context specific (SNMP) tags (from RFC 1905) */ +#define SNMP_ASN1_CONTEXT_VARBIND_NO_SUCH_INSTANCE 1 + +/* full ASN1 type defines */ +#define SNMP_ASN1_TYPE_END_OF_CONTENT (SNMP_ASN1_CLASS_UNIVERSAL | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_UNIVERSAL_END_OF_CONTENT) +#define SNMP_ASN1_TYPE_INTEGER (SNMP_ASN1_CLASS_UNIVERSAL | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_UNIVERSAL_INTEGER) +#define SNMP_ASN1_TYPE_OCTET_STRING (SNMP_ASN1_CLASS_UNIVERSAL | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_UNIVERSAL_OCTET_STRING) +#define SNMP_ASN1_TYPE_NULL (SNMP_ASN1_CLASS_UNIVERSAL | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_UNIVERSAL_NULL) +#define SNMP_ASN1_TYPE_OBJECT_ID (SNMP_ASN1_CLASS_UNIVERSAL | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_UNIVERSAL_OBJECT_ID) +#define SNMP_ASN1_TYPE_SEQUENCE (SNMP_ASN1_CLASS_UNIVERSAL | SNMP_ASN1_CONTENTTYPE_CONSTRUCTED | SNMP_ASN1_UNIVERSAL_SEQUENCE_OF) +#define SNMP_ASN1_TYPE_IPADDR (SNMP_ASN1_CLASS_APPLICATION | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_APPLICATION_IPADDR) +#define SNMP_ASN1_TYPE_IPADDRESS SNMP_ASN1_TYPE_IPADDR +#define SNMP_ASN1_TYPE_COUNTER (SNMP_ASN1_CLASS_APPLICATION | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_APPLICATION_COUNTER) +#define SNMP_ASN1_TYPE_COUNTER32 SNMP_ASN1_TYPE_COUNTER +#define SNMP_ASN1_TYPE_GAUGE (SNMP_ASN1_CLASS_APPLICATION | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_APPLICATION_GAUGE) +#define SNMP_ASN1_TYPE_GAUGE32 SNMP_ASN1_TYPE_GAUGE +#define SNMP_ASN1_TYPE_UNSIGNED32 SNMP_ASN1_TYPE_GAUGE +#define SNMP_ASN1_TYPE_TIMETICKS (SNMP_ASN1_CLASS_APPLICATION | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_APPLICATION_TIMETICKS) +#define SNMP_ASN1_TYPE_OPAQUE (SNMP_ASN1_CLASS_APPLICATION | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_APPLICATION_OPAQUE) +#if LWIP_HAVE_INT64 +#define SNMP_ASN1_TYPE_COUNTER64 (SNMP_ASN1_CLASS_APPLICATION | SNMP_ASN1_CONTENTTYPE_PRIMITIVE | SNMP_ASN1_APPLICATION_COUNTER64) +#endif + +#define SNMP_VARBIND_EXCEPTION_OFFSET 0xF0 +#define SNMP_VARBIND_EXCEPTION_MASK 0x0F + +/** error codes predefined by SNMP prot. */ +typedef enum { + SNMP_ERR_NOERROR = 0, +/* +outdated v1 error codes. do not use anmore! +#define SNMP_ERR_NOSUCHNAME 2 use SNMP_ERR_NOSUCHINSTANCE instead +#define SNMP_ERR_BADVALUE 3 use SNMP_ERR_WRONGTYPE,SNMP_ERR_WRONGLENGTH,SNMP_ERR_WRONGENCODING or SNMP_ERR_WRONGVALUE instead +#define SNMP_ERR_READONLY 4 use SNMP_ERR_NOTWRITABLE instead +*/ + SNMP_ERR_GENERROR = 5, + SNMP_ERR_NOACCESS = 6, + SNMP_ERR_WRONGTYPE = 7, + SNMP_ERR_WRONGLENGTH = 8, + SNMP_ERR_WRONGENCODING = 9, + SNMP_ERR_WRONGVALUE = 10, + SNMP_ERR_NOCREATION = 11, + SNMP_ERR_INCONSISTENTVALUE = 12, + SNMP_ERR_RESOURCEUNAVAILABLE = 13, + SNMP_ERR_COMMITFAILED = 14, + SNMP_ERR_UNDOFAILED = 15, + SNMP_ERR_NOTWRITABLE = 17, + SNMP_ERR_INCONSISTENTNAME = 18, + + SNMP_ERR_NOSUCHINSTANCE = SNMP_VARBIND_EXCEPTION_OFFSET + SNMP_ASN1_CONTEXT_VARBIND_NO_SUCH_INSTANCE +} snmp_err_t; + +/** internal object identifier representation */ +struct snmp_obj_id +{ + u8_t len; + u32_t id[SNMP_MAX_OBJ_ID_LEN]; +}; + +struct snmp_obj_id_const_ref +{ + u8_t len; + const u32_t* id; +}; + +extern const struct snmp_obj_id_const_ref snmp_zero_dot_zero; /* administrative identifier from SNMPv2-SMI */ + +/** SNMP variant value, used as reference in struct snmp_node_instance and table implementation */ +union snmp_variant_value +{ + void* ptr; + const void* const_ptr; + u32_t u32; + s32_t s32; +#if LWIP_HAVE_INT64 + u64_t u64; +#endif +}; + + +/** +SNMP MIB node types + tree node is the only node the stack can process in order to walk the tree, + all other nodes are assumed to be leaf nodes. + This cannot be an enum because users may want to define their own node types. +*/ +#define SNMP_NODE_TREE 0x00 +/* predefined leaf node types */ +#define SNMP_NODE_SCALAR 0x01 +#define SNMP_NODE_SCALAR_ARRAY 0x02 +#define SNMP_NODE_TABLE 0x03 +#define SNMP_NODE_THREADSYNC 0x04 + +/** node "base class" layout, the mandatory fields for a node */ +struct snmp_node +{ + /** one out of SNMP_NODE_TREE or any leaf node type (like SNMP_NODE_SCALAR) */ + u8_t node_type; + /** the number assigned to this node which used as part of the full OID */ + u32_t oid; +}; + +/** SNMP node instance access types */ +typedef enum { + SNMP_NODE_INSTANCE_ACCESS_READ = 1, + SNMP_NODE_INSTANCE_ACCESS_WRITE = 2, + SNMP_NODE_INSTANCE_READ_ONLY = SNMP_NODE_INSTANCE_ACCESS_READ, + SNMP_NODE_INSTANCE_READ_WRITE = (SNMP_NODE_INSTANCE_ACCESS_READ | SNMP_NODE_INSTANCE_ACCESS_WRITE), + SNMP_NODE_INSTANCE_WRITE_ONLY = SNMP_NODE_INSTANCE_ACCESS_WRITE, + SNMP_NODE_INSTANCE_NOT_ACCESSIBLE = 0 +} snmp_access_t; + +struct snmp_node_instance; + +typedef s16_t (*node_instance_get_value_method)(struct snmp_node_instance*, void*); +typedef snmp_err_t (*node_instance_set_test_method)(struct snmp_node_instance*, u16_t, void*); +typedef snmp_err_t (*node_instance_set_value_method)(struct snmp_node_instance*, u16_t, void*); +typedef void (*node_instance_release_method)(struct snmp_node_instance*); + +#define SNMP_GET_VALUE_RAW_DATA 0x4000 /* do not use 0x8000 because return value of node_instance_get_value_method is signed16 and 0x8000 would be the signed bit */ + +/** SNMP node instance */ +struct snmp_node_instance +{ + /** prefilled with the node, get_instance() is called on; may be changed by user to any value to pass an arbitrary node between calls to get_instance() and get_value/test_value/set_value */ + const struct snmp_node* node; + /** prefilled with the instance id requested; for get_instance() this is the exact oid requested; for get_next_instance() this is the relative starting point, stack expects relative oid of next node here */ + struct snmp_obj_id instance_oid; + + /** ASN type for this object (see snmp_asn1.h for definitions) */ + u8_t asn1_type; + /** one out of instance access types defined above (SNMP_NODE_INSTANCE_READ_ONLY,...) */ + snmp_access_t access; + + /** returns object value for the given object identifier. Return values <0 to indicate an error */ + node_instance_get_value_method get_value; + /** tests length and/or range BEFORE setting */ + node_instance_set_test_method set_test; + /** sets object value, only called when set_test() was successful */ + node_instance_set_value_method set_value; + /** called in any case when the instance is not required anymore by stack (useful for freeing memory allocated in get_instance/get_next_instance methods) */ + node_instance_release_method release_instance; + + /** reference to pass arbitrary value between calls to get_instance() and get_value/test_value/set_value */ + union snmp_variant_value reference; + /** see reference (if reference is a pointer, the length of underlying data may be stored here or anything else) */ + u32_t reference_len; +}; + + +/** SNMP tree node */ +struct snmp_tree_node +{ + /** inherited "base class" members */ + struct snmp_node node; + u16_t subnode_count; + const struct snmp_node* const *subnodes; +}; + +#define SNMP_CREATE_TREE_NODE(oid, subnodes) \ + {{ SNMP_NODE_TREE, (oid) }, \ + (u16_t)LWIP_ARRAYSIZE(subnodes), (subnodes) } + +#define SNMP_CREATE_EMPTY_TREE_NODE(oid) \ + {{ SNMP_NODE_TREE, (oid) }, \ + 0, NULL } + +/** SNMP leaf node */ +struct snmp_leaf_node +{ + /** inherited "base class" members */ + struct snmp_node node; + snmp_err_t (*get_instance)(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); + snmp_err_t (*get_next_instance)(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); +}; + +/** represents a single mib with its base oid and root node */ +struct snmp_mib +{ + const u32_t *base_oid; + u8_t base_oid_len; + const struct snmp_node *root_node; +}; + +#define SNMP_MIB_CREATE(oid_list, root_node) { (oid_list), (u8_t)LWIP_ARRAYSIZE(oid_list), root_node } + +/** OID range structure */ +struct snmp_oid_range +{ + u32_t min; + u32_t max; +}; + +/** checks if incoming OID length and values are in allowed ranges */ +u8_t snmp_oid_in_range(const u32_t *oid_in, u8_t oid_len, const struct snmp_oid_range *oid_ranges, u8_t oid_ranges_len); + +typedef enum { + SNMP_NEXT_OID_STATUS_SUCCESS, + SNMP_NEXT_OID_STATUS_NO_MATCH, + SNMP_NEXT_OID_STATUS_BUF_TO_SMALL +} snmp_next_oid_status_t; + +/** state for next_oid_init / next_oid_check functions */ +struct snmp_next_oid_state +{ + const u32_t* start_oid; + u8_t start_oid_len; + + u32_t* next_oid; + u8_t next_oid_len; + u8_t next_oid_max_len; + + snmp_next_oid_status_t status; + void* reference; +}; + +void snmp_next_oid_init(struct snmp_next_oid_state *state, + const u32_t *start_oid, u8_t start_oid_len, + u32_t *next_oid_buf, u8_t next_oid_max_len); +u8_t snmp_next_oid_precheck(struct snmp_next_oid_state *state, const u32_t *oid, u8_t oid_len); +u8_t snmp_next_oid_check(struct snmp_next_oid_state *state, const u32_t *oid, u8_t oid_len, void* reference); + +void snmp_oid_assign(struct snmp_obj_id* target, const u32_t *oid, u8_t oid_len); +void snmp_oid_combine(struct snmp_obj_id* target, const u32_t *oid1, u8_t oid1_len, const u32_t *oid2, u8_t oid2_len); +void snmp_oid_prefix(struct snmp_obj_id* target, const u32_t *oid, u8_t oid_len); +void snmp_oid_append(struct snmp_obj_id* target, const u32_t *oid, u8_t oid_len); +u8_t snmp_oid_equal(const u32_t *oid1, u8_t oid1_len, const u32_t *oid2, u8_t oid2_len); +s8_t snmp_oid_compare(const u32_t *oid1, u8_t oid1_len, const u32_t *oid2, u8_t oid2_len); + +#if LWIP_IPV4 +u8_t snmp_oid_to_ip4(const u32_t *oid, ip4_addr_t *ip); +void snmp_ip4_to_oid(const ip4_addr_t *ip, u32_t *oid); +#endif /* LWIP_IPV4 */ +#if LWIP_IPV6 +u8_t snmp_oid_to_ip6(const u32_t *oid, ip6_addr_t *ip); +void snmp_ip6_to_oid(const ip6_addr_t *ip, u32_t *oid); +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 || LWIP_IPV6 +u8_t snmp_ip_to_oid(const ip_addr_t *ip, u32_t *oid); +u8_t snmp_ip_port_to_oid(const ip_addr_t *ip, u16_t port, u32_t *oid); + +u8_t snmp_oid_to_ip(const u32_t *oid, u8_t oid_len, ip_addr_t *ip); +u8_t snmp_oid_to_ip_port(const u32_t *oid, u8_t oid_len, ip_addr_t *ip, u16_t *port); +#endif /* LWIP_IPV4 || LWIP_IPV6 */ + +struct netif; +u8_t netif_to_num(const struct netif *netif); + +snmp_err_t snmp_set_test_ok(struct snmp_node_instance* instance, u16_t value_len, void* value); /* generic function which can be used if test is always successful */ + +err_t snmp_decode_bits(const u8_t *buf, u32_t buf_len, u32_t *bit_value); +err_t snmp_decode_truthvalue(const s32_t *asn1_value, u8_t *bool_value); +u8_t snmp_encode_bits(u8_t *buf, u32_t buf_len, u32_t bit_value, u8_t bit_count); +u8_t snmp_encode_truthvalue(s32_t *asn1_value, u32_t bool_value); + +struct snmp_statistics +{ + u32_t inpkts; + u32_t outpkts; + u32_t inbadversions; + u32_t inbadcommunitynames; + u32_t inbadcommunityuses; + u32_t inasnparseerrs; + u32_t intoobigs; + u32_t innosuchnames; + u32_t inbadvalues; + u32_t inreadonlys; + u32_t ingenerrs; + u32_t intotalreqvars; + u32_t intotalsetvars; + u32_t ingetrequests; + u32_t ingetnexts; + u32_t insetrequests; + u32_t ingetresponses; + u32_t intraps; + u32_t outtoobigs; + u32_t outnosuchnames; + u32_t outbadvalues; + u32_t outgenerrs; + u32_t outgetrequests; + u32_t outgetnexts; + u32_t outsetrequests; + u32_t outgetresponses; + u32_t outtraps; +#if LWIP_SNMP_V3 + u32_t unsupportedseclevels; + u32_t notintimewindows; + u32_t unknownusernames; + u32_t unknownengineids; + u32_t wrongdigests; + u32_t decryptionerrors; +#endif +}; + +extern struct snmp_statistics snmp_stats; + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_SNMP */ + +#endif /* LWIP_HDR_APPS_SNMP_CORE_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_mib2.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_mib2.h new file mode 100644 index 000000000..392ee2577 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_mib2.h @@ -0,0 +1,78 @@ +/** + * @file + * SNMP MIB2 API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Dirk Ziegelmeier + * + */ +#ifndef LWIP_HDR_APPS_SNMP_MIB2_H +#define LWIP_HDR_APPS_SNMP_MIB2_H + +#include "lwip/apps/snmp_opts.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ +#if SNMP_LWIP_MIB2 + +#include "lwip/apps/snmp_core.h" + +extern const struct snmp_mib mib2; + +#if SNMP_USE_NETCONN +#include "lwip/apps/snmp_threadsync.h" +void snmp_mib2_lwip_synchronizer(snmp_threadsync_called_fn fn, void* arg); +extern struct snmp_threadsync_instance snmp_mib2_lwip_locks; +#endif + +#ifndef SNMP_SYSSERVICES +#define SNMP_SYSSERVICES ((1 << 6) | (1 << 3) | ((IP_FORWARD) << 2)) +#endif + +void snmp_mib2_set_sysdescr(const u8_t* str, const u16_t* len); /* read-only be defintion */ +void snmp_mib2_set_syscontact(u8_t *ocstr, u16_t *ocstrlen, u16_t bufsize); +void snmp_mib2_set_syscontact_readonly(const u8_t *ocstr, const u16_t *ocstrlen); +void snmp_mib2_set_sysname(u8_t *ocstr, u16_t *ocstrlen, u16_t bufsize); +void snmp_mib2_set_sysname_readonly(const u8_t *ocstr, const u16_t *ocstrlen); +void snmp_mib2_set_syslocation(u8_t *ocstr, u16_t *ocstrlen, u16_t bufsize); +void snmp_mib2_set_syslocation_readonly(const u8_t *ocstr, const u16_t *ocstrlen); + +#endif /* SNMP_LWIP_MIB2 */ +#endif /* LWIP_SNMP */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_SNMP_MIB2_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_opts.h new file mode 100644 index 000000000..1c6350486 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_opts.h @@ -0,0 +1,297 @@ +/** + * @file + * SNMP server options list + */ + +/* + * Copyright (c) 2015 Dirk Ziegelmeier + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Dirk Ziegelmeier + * + */ +#ifndef LWIP_HDR_SNMP_OPTS_H +#define LWIP_HDR_SNMP_OPTS_H + +#include "lwip/opt.h" + +/** + * @defgroup snmp_opts Options + * @ingroup snmp + * @{ + */ + +/** + * LWIP_SNMP==1: This enables the lwIP SNMP agent. UDP must be available + * for SNMP transport. + * If you want to use your own SNMP agent, leave this disabled. + * To integrate MIB2 of an external agent, you need to enable + * LWIP_MIB2_CALLBACKS and MIB2_STATS. This will give you the callbacks + * and statistics counters you need to get MIB2 working. + */ +#if !defined LWIP_SNMP || defined __DOXYGEN__ +#define LWIP_SNMP 0 +#endif + +/** + * SNMP_USE_NETCONN: Use netconn API instead of raw API. + * Makes SNMP agent run in a worker thread, so blocking operations + * can be done in MIB calls. + */ +#if !defined SNMP_USE_NETCONN || defined __DOXYGEN__ +#define SNMP_USE_NETCONN 0 +#endif + +/** + * SNMP_USE_RAW: Use raw API. + * SNMP agent does not run in a worker thread, so blocking operations + * should not be done in MIB calls. + */ +#if !defined SNMP_USE_RAW || defined __DOXYGEN__ +#define SNMP_USE_RAW 1 +#endif + +#if SNMP_USE_NETCONN && SNMP_USE_RAW +#error SNMP stack can use only one of the APIs {raw, netconn} +#endif + +#if LWIP_SNMP && !SNMP_USE_NETCONN && !SNMP_USE_RAW +#error SNMP stack needs a receive API and UDP {raw, netconn} +#endif + +#if SNMP_USE_NETCONN +/** + * SNMP_STACK_SIZE: Stack size of SNMP netconn worker thread + */ +#if !defined SNMP_STACK_SIZE || defined __DOXYGEN__ +#define SNMP_STACK_SIZE DEFAULT_THREAD_STACKSIZE +#endif + +/** + * SNMP_THREAD_PRIO: SNMP netconn worker thread priority + */ +#if !defined SNMP_THREAD_PRIO || defined __DOXYGEN__ +#define SNMP_THREAD_PRIO DEFAULT_THREAD_PRIO +#endif +#endif /* SNMP_USE_NETCONN */ + +/** + * SNMP_TRAP_DESTINATIONS: Number of trap destinations. At least one trap + * destination is required + */ +#if !defined SNMP_TRAP_DESTINATIONS || defined __DOXYGEN__ +#define SNMP_TRAP_DESTINATIONS 1 +#endif + +/** + * Only allow SNMP write actions that are 'safe' (e.g. disabling netifs is not + * a safe action and disabled when SNMP_SAFE_REQUESTS = 1). + * Unsafe requests are disabled by default! + */ +#if !defined SNMP_SAFE_REQUESTS || defined __DOXYGEN__ +#define SNMP_SAFE_REQUESTS 1 +#endif + +/** + * The maximum length of strings used. + */ +#if !defined SNMP_MAX_OCTET_STRING_LEN || defined __DOXYGEN__ +#define SNMP_MAX_OCTET_STRING_LEN 127 +#endif + +/** + * The maximum number of Sub ID's inside an object identifier. + * Indirectly this also limits the maximum depth of SNMP tree. + */ +#if !defined SNMP_MAX_OBJ_ID_LEN || defined __DOXYGEN__ +#define SNMP_MAX_OBJ_ID_LEN 50 +#endif + +#if !defined SNMP_MAX_VALUE_SIZE || defined __DOXYGEN__ +/** + * The minimum size of a value. + */ +#define SNMP_MIN_VALUE_SIZE (2 * sizeof(u32_t*)) /* size required to store the basic types (8 bytes for counter64) */ +/** + * The maximum size of a value. + */ +#define SNMP_MAX_VALUE_SIZE LWIP_MAX(LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN), sizeof(u32_t)*(SNMP_MAX_OBJ_ID_LEN)), SNMP_MIN_VALUE_SIZE) +#endif + +/** + * The snmp read-access community. Used for write-access and traps, too + * unless SNMP_COMMUNITY_WRITE or SNMP_COMMUNITY_TRAP are enabled, respectively. + */ +#if !defined SNMP_COMMUNITY || defined __DOXYGEN__ +#define SNMP_COMMUNITY "public" +#endif + +/** + * The snmp write-access community. + * Set this community to "" in order to disallow any write access. + */ +#if !defined SNMP_COMMUNITY_WRITE || defined __DOXYGEN__ +#define SNMP_COMMUNITY_WRITE "private" +#endif + +/** + * The snmp community used for sending traps. + */ +#if !defined SNMP_COMMUNITY_TRAP || defined __DOXYGEN__ +#define SNMP_COMMUNITY_TRAP "public" +#endif + +/** + * The maximum length of community string. + * If community names shall be adjusted at runtime via snmp_set_community() calls, + * enter here the possible maximum length (+1 for terminating null character). + */ +#if !defined SNMP_MAX_COMMUNITY_STR_LEN || defined __DOXYGEN__ +#define SNMP_MAX_COMMUNITY_STR_LEN LWIP_MAX(LWIP_MAX(sizeof(SNMP_COMMUNITY), sizeof(SNMP_COMMUNITY_WRITE)), sizeof(SNMP_COMMUNITY_TRAP)) +#endif + +/** + * The OID identifiying the device. This may be the enterprise OID itself or any OID located below it in tree. + */ +#if !defined SNMP_DEVICE_ENTERPRISE_OID || defined __DOXYGEN__ +#define SNMP_LWIP_ENTERPRISE_OID 26381 +/** + * IANA assigned enterprise ID for lwIP is 26381 + * @see http://www.iana.org/assignments/enterprise-numbers + * + * @note this enterprise ID is assigned to the lwIP project, + * all object identifiers living under this ID are assigned + * by the lwIP maintainers! + * @note don't change this define, use snmp_set_device_enterprise_oid() + * + * If you need to create your own private MIB you'll need + * to apply for your own enterprise ID with IANA: + * http://www.iana.org/numbers.html + */ +#define SNMP_DEVICE_ENTERPRISE_OID {1, 3, 6, 1, 4, 1, SNMP_LWIP_ENTERPRISE_OID} +/** + * Length of SNMP_DEVICE_ENTERPRISE_OID + */ +#define SNMP_DEVICE_ENTERPRISE_OID_LEN 7 +#endif + +/** + * SNMP_DEBUG: Enable debugging for SNMP messages. + */ +#if !defined SNMP_DEBUG || defined __DOXYGEN__ +#define SNMP_DEBUG LWIP_DBG_OFF +#endif + +/** + * SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs. + */ +#if !defined SNMP_MIB_DEBUG || defined __DOXYGEN__ +#define SNMP_MIB_DEBUG LWIP_DBG_OFF +#endif + +/** + * Indicates if the MIB2 implementation of LWIP SNMP stack is used. + */ +#if !defined SNMP_LWIP_MIB2 || defined __DOXYGEN__ +#define SNMP_LWIP_MIB2 LWIP_SNMP +#endif + +/** + * Value return for sysDesc field of MIB2. + */ +#if !defined SNMP_LWIP_MIB2_SYSDESC || defined __DOXYGEN__ +#define SNMP_LWIP_MIB2_SYSDESC "lwIP" +#endif + +/** + * Value return for sysName field of MIB2. + * To make sysName field settable, call snmp_mib2_set_sysname() to provide the necessary buffers. + */ +#if !defined SNMP_LWIP_MIB2_SYSNAME || defined __DOXYGEN__ +#define SNMP_LWIP_MIB2_SYSNAME "FQDN-unk" +#endif + +/** + * Value return for sysContact field of MIB2. + * To make sysContact field settable, call snmp_mib2_set_syscontact() to provide the necessary buffers. + */ +#if !defined SNMP_LWIP_MIB2_SYSCONTACT || defined __DOXYGEN__ +#define SNMP_LWIP_MIB2_SYSCONTACT "" +#endif + +/** + * Value return for sysLocation field of MIB2. + * To make sysLocation field settable, call snmp_mib2_set_syslocation() to provide the necessary buffers. + */ +#if !defined SNMP_LWIP_MIB2_SYSLOCATION || defined __DOXYGEN__ +#define SNMP_LWIP_MIB2_SYSLOCATION "" +#endif + +/** + * This value is used to limit the repetitions processed in GetBulk requests (value == 0 means no limitation). + * This may be useful to limit the load for a single request. + * According to SNMP RFC 1905 it is allowed to not return all requested variables from a GetBulk request if system load would be too high. + * so the effect is that the client will do more requests to gather all data. + * For the stack this could be useful in case that SNMP processing is done in TCP/IP thread. In this situation a request with many + * repetitions could block the thread for a longer time. Setting limit here will keep the stack more responsive. + */ +#if !defined SNMP_LWIP_GETBULK_MAX_REPETITIONS || defined __DOXYGEN__ +#define SNMP_LWIP_GETBULK_MAX_REPETITIONS 0 +#endif + +/** + * @} + */ + +/* + ------------------------------------ + ---------- SNMPv3 options ---------- + ------------------------------------ +*/ + +/** + * LWIP_SNMP_V3==1: This enables EXPERIMENTAL SNMPv3 support. LWIP_SNMP must + * also be enabled. + * THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS. + */ +#ifndef LWIP_SNMP_V3 +#define LWIP_SNMP_V3 0 +#endif + +#ifndef LWIP_SNMP_V3_MBEDTLS +#define LWIP_SNMP_V3_MBEDTLS LWIP_SNMP_V3 +#endif + +#ifndef LWIP_SNMP_V3_CRYPTO +#define LWIP_SNMP_V3_CRYPTO LWIP_SNMP_V3_MBEDTLS +#endif + +#ifndef LWIP_SNMP_CONFIGURE_VERSIONS +#define LWIP_SNMP_CONFIGURE_VERSIONS 0 +#endif + +#endif /* LWIP_HDR_SNMP_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_scalar.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_scalar.h new file mode 100644 index 000000000..99bcdf95f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_scalar.h @@ -0,0 +1,113 @@ +/** + * @file + * SNMP server MIB API to implement scalar nodes + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Martin Hentschel + * + */ + +#ifndef LWIP_HDR_APPS_SNMP_SCALAR_H +#define LWIP_HDR_APPS_SNMP_SCALAR_H + +#include "lwip/apps/snmp_opts.h" +#include "lwip/apps/snmp_core.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ + +/** basic scalar node */ +struct snmp_scalar_node +{ + /** inherited "base class" members */ + struct snmp_leaf_node node; + u8_t asn1_type; + snmp_access_t access; + node_instance_get_value_method get_value; + node_instance_set_test_method set_test; + node_instance_set_value_method set_value; +}; + + +snmp_err_t snmp_scalar_get_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); +snmp_err_t snmp_scalar_get_next_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); + +#define SNMP_SCALAR_CREATE_NODE(oid, access, asn1_type, get_value_method, set_test_method, set_value_method) \ + {{{ SNMP_NODE_SCALAR, (oid) }, \ + snmp_scalar_get_instance, \ + snmp_scalar_get_next_instance }, \ + (asn1_type), (access), (get_value_method), (set_test_method), (set_value_method) } + +#define SNMP_SCALAR_CREATE_NODE_READONLY(oid, asn1_type, get_value_method) SNMP_SCALAR_CREATE_NODE(oid, SNMP_NODE_INSTANCE_READ_ONLY, asn1_type, get_value_method, NULL, NULL) + +/** scalar array node - a tree node which contains scalars only as children */ +struct snmp_scalar_array_node_def +{ + u32_t oid; + u8_t asn1_type; + snmp_access_t access; +}; + +typedef s16_t (*snmp_scalar_array_get_value_method)(const struct snmp_scalar_array_node_def*, void*); +typedef snmp_err_t (*snmp_scalar_array_set_test_method)(const struct snmp_scalar_array_node_def*, u16_t, void*); +typedef snmp_err_t (*snmp_scalar_array_set_value_method)(const struct snmp_scalar_array_node_def*, u16_t, void*); + +/** basic scalar array node */ +struct snmp_scalar_array_node +{ + /** inherited "base class" members */ + struct snmp_leaf_node node; + u16_t array_node_count; + const struct snmp_scalar_array_node_def* array_nodes; + snmp_scalar_array_get_value_method get_value; + snmp_scalar_array_set_test_method set_test; + snmp_scalar_array_set_value_method set_value; +}; + +snmp_err_t snmp_scalar_array_get_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); +snmp_err_t snmp_scalar_array_get_next_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); + +#define SNMP_SCALAR_CREATE_ARRAY_NODE(oid, array_nodes, get_value_method, set_test_method, set_value_method) \ + {{{ SNMP_NODE_SCALAR_ARRAY, (oid) }, \ + snmp_scalar_array_get_instance, \ + snmp_scalar_array_get_next_instance }, \ + (u16_t)LWIP_ARRAYSIZE(array_nodes), (array_nodes), (get_value_method), (set_test_method), (set_value_method) } + +#endif /* LWIP_SNMP */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_SNMP_SCALAR_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_snmpv2_framework.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_snmpv2_framework.h new file mode 100644 index 000000000..9f4b41c27 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_snmpv2_framework.h @@ -0,0 +1,32 @@ +/* +Generated by LwipMibCompiler +*/ + +#ifndef LWIP_HDR_APPS_SNMP_FRAMEWORK_MIB_H +#define LWIP_HDR_APPS_SNMP_FRAMEWORK_MIB_H + +#include "lwip/apps/snmp_opts.h" +#if LWIP_SNMP + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include "lwip/apps/snmp_core.h" + +extern const struct snmp_obj_id usmNoAuthProtocol; +extern const struct snmp_obj_id usmHMACMD5AuthProtocol; +extern const struct snmp_obj_id usmHMACSHAAuthProtocol; + +extern const struct snmp_obj_id usmNoPrivProtocol; +extern const struct snmp_obj_id usmDESPrivProtocol; +extern const struct snmp_obj_id usmAESPrivProtocol; + +extern const struct snmp_mib snmpframeworkmib; + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* LWIP_SNMP */ +#endif /* LWIP_HDR_APPS_SNMP_FRAMEWORK_MIB_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_snmpv2_usm.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_snmpv2_usm.h new file mode 100644 index 000000000..ae09baa57 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_snmpv2_usm.h @@ -0,0 +1,24 @@ +/* +Generated by LwipMibCompiler +*/ + +#ifndef LWIP_HDR_APPS_SNMP_USER_BASED_SM_MIB_H +#define LWIP_HDR_APPS_SNMP_USER_BASED_SM_MIB_H + +#include "lwip/apps/snmp_opts.h" +#if LWIP_SNMP + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include "lwip/apps/snmp_core.h" + +extern const struct snmp_mib snmpusmmib; + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* LWIP_SNMP */ +#endif /* LWIP_HDR_APPS_SNMP_USER_BASED_SM_MIB_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_table.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_table.h new file mode 100644 index 000000000..6930d0b4f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_table.h @@ -0,0 +1,134 @@ +/** + * @file + * SNMP server MIB API to implement table nodes + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Martin Hentschel + * + */ + +#ifndef LWIP_HDR_APPS_SNMP_TABLE_H +#define LWIP_HDR_APPS_SNMP_TABLE_H + +#include "lwip/apps/snmp_opts.h" +#include "lwip/apps/snmp_core.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ + +/** default (customizable) read/write table */ +struct snmp_table_col_def +{ + u32_t index; + u8_t asn1_type; + snmp_access_t access; +}; + +/** table node */ +struct snmp_table_node +{ + /** inherited "base class" members */ + struct snmp_leaf_node node; + u16_t column_count; + const struct snmp_table_col_def* columns; + snmp_err_t (*get_cell_instance)(const u32_t* column, const u32_t* row_oid, u8_t row_oid_len, struct snmp_node_instance* cell_instance); + snmp_err_t (*get_next_cell_instance)(const u32_t* column, struct snmp_obj_id* row_oid, struct snmp_node_instance* cell_instance); + /** returns object value for the given object identifier */ + node_instance_get_value_method get_value; + /** tests length and/or range BEFORE setting */ + node_instance_set_test_method set_test; + /** sets object value, only called when set_test() was successful */ + node_instance_set_value_method set_value; +}; + +snmp_err_t snmp_table_get_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); +snmp_err_t snmp_table_get_next_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); + +#define SNMP_TABLE_CREATE(oid, columns, get_cell_instance_method, get_next_cell_instance_method, get_value_method, set_test_method, set_value_method) \ + {{{ SNMP_NODE_TABLE, (oid) }, \ + snmp_table_get_instance, \ + snmp_table_get_next_instance }, \ + (u16_t)LWIP_ARRAYSIZE(columns), (columns), \ + (get_cell_instance_method), (get_next_cell_instance_method), \ + (get_value_method), (set_test_method), (set_value_method)} + +#define SNMP_TABLE_GET_COLUMN_FROM_OID(oid) ((oid)[1]) /* first array value is (fixed) row entry (fixed to 1) and 2nd value is column, follow3ed by instance */ + + +/** simple read-only table */ +typedef enum { + SNMP_VARIANT_VALUE_TYPE_U32, + SNMP_VARIANT_VALUE_TYPE_S32, + SNMP_VARIANT_VALUE_TYPE_PTR, + SNMP_VARIANT_VALUE_TYPE_CONST_PTR +} snmp_table_column_data_type_t; + +struct snmp_table_simple_col_def +{ + u32_t index; + u8_t asn1_type; + snmp_table_column_data_type_t data_type; /* depending of what union member is used to store the value*/ +}; + +/** simple read-only table node */ +struct snmp_table_simple_node +{ + /* inherited "base class" members */ + struct snmp_leaf_node node; + u16_t column_count; + const struct snmp_table_simple_col_def* columns; + snmp_err_t (*get_cell_value)(const u32_t* column, const u32_t* row_oid, u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len); + snmp_err_t (*get_next_cell_instance_and_value)(const u32_t* column, struct snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len); +}; + +snmp_err_t snmp_table_simple_get_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); +snmp_err_t snmp_table_simple_get_next_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); + +#define SNMP_TABLE_CREATE_SIMPLE(oid, columns, get_cell_value_method, get_next_cell_instance_and_value_method) \ + {{{ SNMP_NODE_TABLE, (oid) }, \ + snmp_table_simple_get_instance, \ + snmp_table_simple_get_next_instance }, \ + (u16_t)LWIP_ARRAYSIZE(columns), (columns), (get_cell_value_method), (get_next_cell_instance_and_value_method) } + +s16_t snmp_table_extract_value_from_s32ref(struct snmp_node_instance* instance, void* value); +s16_t snmp_table_extract_value_from_u32ref(struct snmp_node_instance* instance, void* value); +s16_t snmp_table_extract_value_from_refconstptr(struct snmp_node_instance* instance, void* value); + +#endif /* LWIP_SNMP */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_SNMP_TABLE_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_threadsync.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_threadsync.h new file mode 100644 index 000000000..5eb353870 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmp_threadsync.h @@ -0,0 +1,114 @@ +/** + * @file + * SNMP server MIB API to implement thread synchronization + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Dirk Ziegelmeier + * + */ + +#ifndef LWIP_HDR_APPS_SNMP_THREADSYNC_H +#define LWIP_HDR_APPS_SNMP_THREADSYNC_H + +#include "lwip/apps/snmp_opts.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/apps/snmp_core.h" +#include "lwip/sys.h" + +typedef void (*snmp_threadsync_called_fn)(void* arg); +typedef void (*snmp_threadsync_synchronizer_fn)(snmp_threadsync_called_fn fn, void* arg); + + +/** Thread sync runtime data. For internal usage only. */ +struct threadsync_data +{ + union { + snmp_err_t err; + s16_t s16; + } retval; + union { + const u32_t *root_oid; + void *value; + } arg1; + union { + u8_t root_oid_len; + u16_t len; + } arg2; + const struct snmp_threadsync_node *threadsync_node; + struct snmp_node_instance proxy_instance; +}; + +/** Thread sync instance. Needed EXCATLY once for every thread to be synced into. */ +struct snmp_threadsync_instance +{ + sys_sem_t sem; + sys_mutex_t sem_usage_mutex; + snmp_threadsync_synchronizer_fn sync_fn; + struct threadsync_data data; +}; + +/** SNMP thread sync proxy leaf node */ +struct snmp_threadsync_node +{ + /* inherited "base class" members */ + struct snmp_leaf_node node; + + const struct snmp_leaf_node *target; + struct snmp_threadsync_instance *instance; +}; + +snmp_err_t snmp_threadsync_get_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); +snmp_err_t snmp_threadsync_get_next_instance(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance* instance); + +/** Create thread sync proxy node */ +#define SNMP_CREATE_THREAD_SYNC_NODE(oid, target_leaf_node, threadsync_instance) \ + {{{ SNMP_NODE_THREADSYNC, (oid) }, \ + snmp_threadsync_get_instance, \ + snmp_threadsync_get_next_instance }, \ + (target_leaf_node), \ + (threadsync_instance) } + +/** Create thread sync instance data */ +void snmp_threadsync_init(struct snmp_threadsync_instance *instance, snmp_threadsync_synchronizer_fn sync_fn); + +#endif /* LWIP_SNMP */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_SNMP_THREADSYNC_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmpv3.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmpv3.h new file mode 100644 index 000000000..bd7d31476 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/snmpv3.h @@ -0,0 +1,114 @@ +/** + * @file + * Additional SNMPv3 functionality RFC3414 and RFC3826. + */ + +/* + * Copyright (c) 2016 Elias Oenal. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * Author: Elias Oenal + */ + +#ifndef LWIP_HDR_APPS_SNMP_V3_H +#define LWIP_HDR_APPS_SNMP_V3_H + +#include "lwip/apps/snmp_opts.h" +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_SNMP && LWIP_SNMP_V3 + +typedef enum +{ + SNMP_V3_AUTH_ALGO_INVAL = 0, + SNMP_V3_AUTH_ALGO_MD5 = 1, + SNMP_V3_AUTH_ALGO_SHA = 2 +} snmpv3_auth_algo_t; + +typedef enum +{ + SNMP_V3_PRIV_ALGO_INVAL = 0, + SNMP_V3_PRIV_ALGO_DES = 1, + SNMP_V3_PRIV_ALGO_AES = 2 +} snmpv3_priv_algo_t; + +typedef enum +{ + SNMP_V3_USER_STORAGETYPE_OTHER = 1, + SNMP_V3_USER_STORAGETYPE_VOLATILE = 2, + SNMP_V3_USER_STORAGETYPE_NONVOLATILE = 3, + SNMP_V3_USER_STORAGETYPE_PERMANENT = 4, + SNMP_V3_USER_STORAGETYPE_READONLY = 5 +} snmpv3_user_storagetype_t; + +/* + * The following callback functions must be implemented by the application. + * There is a dummy implementation in snmpv3_dummy.c. + */ + +void snmpv3_get_engine_id(const char **id, u8_t *len); +err_t snmpv3_set_engine_id(const char* id, u8_t len); + +u32_t snmpv3_get_engine_boots(void); +void snmpv3_set_engine_boots(u32_t boots); + +u32_t snmpv3_get_engine_time(void); +void snmpv3_reset_engine_time(void); + +err_t snmpv3_get_user(const char* username, snmpv3_auth_algo_t *auth_algo, u8_t *auth_key, snmpv3_priv_algo_t *priv_algo, u8_t *priv_key); +u8_t snmpv3_get_amount_of_users(void); +err_t snmpv3_get_user_storagetype(const char *username, snmpv3_user_storagetype_t *storagetype); +err_t snmpv3_get_username(char *username, u8_t index); + +/* The following functions are provided by the SNMPv3 agent */ + +void snmpv3_engine_id_changed(void); +s32_t snmpv3_get_engine_time_internal(void); + +void snmpv3_password_to_key_md5( + const u8_t *password, /* IN */ + size_t passwordlen, /* IN */ + const u8_t *engineID, /* IN - pointer to snmpEngineID */ + u8_t engineLength, /* IN - length of snmpEngineID */ + u8_t *key); /* OUT - pointer to caller 16-octet buffer */ + +void snmpv3_password_to_key_sha( + const u8_t *password, /* IN */ + size_t passwordlen, /* IN */ + const u8_t *engineID, /* IN - pointer to snmpEngineID */ + u8_t engineLength, /* IN - length of snmpEngineID */ + u8_t *key); /* OUT - pointer to caller 20-octet buffer */ + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_SNMP_V3_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/sntp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/sntp.h new file mode 100644 index 000000000..00135b497 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/sntp.h @@ -0,0 +1,80 @@ +/** + * @file + * SNTP client API + */ + +/* + * Copyright (c) 2007-2009 Frédéric Bernon, Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Frédéric Bernon, Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_APPS_SNTP_H +#define LWIP_HDR_APPS_SNTP_H + +#include "lwip/apps/sntp_opts.h" +#include "lwip/ip_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SNTP operating modes: default is to poll using unicast. + The mode has to be set before calling sntp_init(). */ +#define SNTP_OPMODE_POLL 0 +#define SNTP_OPMODE_LISTENONLY 1 +void sntp_setoperatingmode(u8_t operating_mode); +u8_t sntp_getoperatingmode(void); + +void sntp_init(void); +void sntp_stop(void); +u8_t sntp_enabled(void); + +void sntp_setserver(u8_t idx, const ip_addr_t *addr); +const ip_addr_t* sntp_getserver(u8_t idx); + +#if SNTP_MONITOR_SERVER_REACHABILITY +u8_t sntp_getreachability(u8_t idx); +#endif /* SNTP_MONITOR_SERVER_REACHABILITY */ + +#if SNTP_SERVER_DNS +void sntp_setservername(u8_t idx, const char *server); +const char *sntp_getservername(u8_t idx); +#endif /* SNTP_SERVER_DNS */ + +#if SNTP_GET_SERVERS_FROM_DHCP +void sntp_servermode_dhcp(int set_servers_from_dhcp); +#else /* SNTP_GET_SERVERS_FROM_DHCP */ +#define sntp_servermode_dhcp(x) +#endif /* SNTP_GET_SERVERS_FROM_DHCP */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_SNTP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/sntp_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/sntp_opts.h new file mode 100644 index 000000000..c25a38611 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/sntp_opts.h @@ -0,0 +1,209 @@ +/** + * @file + * SNTP client options list + */ + +/* + * Copyright (c) 2007-2009 Frédéric Bernon, Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Frédéric Bernon, Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_APPS_SNTP_OPTS_H +#define LWIP_HDR_APPS_SNTP_OPTS_H + +#include "lwip/opt.h" +#include "lwip/prot/iana.h" + +/** + * @defgroup sntp_opts Options + * @ingroup sntp + * @{ + */ + +/** SNTP macro to change system time in seconds + * Define SNTP_SET_SYSTEM_TIME_US(sec, us) to set the time in microseconds + * instead of this one if you need the additional precision. Alternatively, + * define SNTP_SET_SYSTEM_TIME_NTP(sec, frac) in order to work with native + * NTP timestamps instead. + */ +#if !defined SNTP_SET_SYSTEM_TIME || defined __DOXYGEN__ +#define SNTP_SET_SYSTEM_TIME(sec) LWIP_UNUSED_ARG(sec) +#endif + +/** The maximum number of SNTP servers that can be set */ +#if !defined SNTP_MAX_SERVERS || defined __DOXYGEN__ +#define SNTP_MAX_SERVERS LWIP_DHCP_MAX_NTP_SERVERS +#endif + +/** Set this to 1 to implement the callback function called by dhcp when + * NTP servers are received. */ +#if !defined SNTP_GET_SERVERS_FROM_DHCP || defined __DOXYGEN__ +#define SNTP_GET_SERVERS_FROM_DHCP LWIP_DHCP_GET_NTP_SRV +#endif + +/** Set this to 1 to support DNS names (or IP address strings) to set sntp servers + * One server address/name can be defined as default if SNTP_SERVER_DNS == 1: + * \#define SNTP_SERVER_ADDRESS "pool.ntp.org" + */ +#if !defined SNTP_SERVER_DNS || defined __DOXYGEN__ +#define SNTP_SERVER_DNS 0 +#endif + +/** + * SNTP_DEBUG: Enable debugging for SNTP. + */ +#if !defined SNTP_DEBUG || defined __DOXYGEN__ +#define SNTP_DEBUG LWIP_DBG_OFF +#endif + +/** SNTP server port */ +#if !defined SNTP_PORT || defined __DOXYGEN__ +#define SNTP_PORT LWIP_IANA_PORT_SNTP +#endif + +/** Sanity check: + * Define this to + * - 0 to turn off sanity checks (default; smaller code) + * - >= 1 to check address and port of the response packet to ensure the + * response comes from the server we sent the request to. + * - >= 2 to check returned Originate Timestamp against Transmit Timestamp + * sent to the server (to ensure response to older request). + * - >= 3 @todo: discard reply if any of the VN, Stratum, or Transmit Timestamp + * fields is 0 or the Mode field is not 4 (unicast) or 5 (broadcast). + * - >= 4 @todo: to check that the Root Delay and Root Dispersion fields are each + * greater than or equal to 0 and less than infinity, where infinity is + * currently a cozy number like one second. This check avoids using a + * server whose synchronization source has expired for a very long time. + */ +#if !defined SNTP_CHECK_RESPONSE || defined __DOXYGEN__ +#define SNTP_CHECK_RESPONSE 0 +#endif + +/** Enable round-trip delay compensation. + * Compensate for the round-trip delay by calculating the clock offset from + * the originate, receive, transmit and destination timestamps, as per RFC. + * + * The calculation requires compiler support for 64-bit integers. Also, either + * SNTP_SET_SYSTEM_TIME_US or SNTP_SET_SYSTEM_TIME_NTP has to be implemented + * for setting the system clock with sub-second precision. Likewise, either + * SNTP_GET_SYSTEM_TIME or SNTP_GET_SYSTEM_TIME_NTP needs to be implemented + * with sub-second precision. + * + * Although not strictly required, it makes sense to combine this option with + * SNTP_CHECK_RESPONSE >= 2 for sanity-checking of the received timestamps. + * Also, in order for the round-trip calculation to work, the difference + * between the local clock and the NTP server clock must not be larger than + * about 34 years. If that limit is exceeded, the implementation will fall back + * to setting the clock without compensation. In order to ensure that the local + * clock is always within the permitted range for compensation, even at first + * try, it may be necessary to store at least the current year in non-volatile + * memory. + */ +#if !defined SNTP_COMP_ROUNDTRIP || defined __DOXYGEN__ +#define SNTP_COMP_ROUNDTRIP 0 +#endif + +/** According to the RFC, this shall be a random delay + * between 1 and 5 minutes (in milliseconds) to prevent load peaks. + * This can be defined to a random generation function, + * which must return the delay in milliseconds as u32_t. + * Turned off by default. + */ +#if !defined SNTP_STARTUP_DELAY || defined __DOXYGEN__ +#ifdef LWIP_RAND +#define SNTP_STARTUP_DELAY 1 +#else +#define SNTP_STARTUP_DELAY 0 +#endif +#endif + +/** If you want the startup delay to be a function, define this + * to a function (including the brackets) and define SNTP_STARTUP_DELAY to 1. + */ +#if !defined SNTP_STARTUP_DELAY_FUNC || defined __DOXYGEN__ +#define SNTP_STARTUP_DELAY_FUNC (LWIP_RAND() % 5000) +#endif + +/** SNTP receive timeout - in milliseconds + * Also used as retry timeout - this shouldn't be too low. + * Default is 15 seconds. Must not be beolw 15 seconds by specification (i.e. 15000) + */ +#if !defined SNTP_RECV_TIMEOUT || defined __DOXYGEN__ +#define SNTP_RECV_TIMEOUT 15000 +#endif + +/** SNTP update delay - in milliseconds + * Default is 1 hour. Must not be beolw 60 seconds by specification (i.e. 60000) + */ +#if !defined SNTP_UPDATE_DELAY || defined __DOXYGEN__ +#define SNTP_UPDATE_DELAY 3600000 +#endif + +/** SNTP macro to get system time, used with SNTP_CHECK_RESPONSE >= 2 + * to send in request and compare in response. Also used for round-trip + * delay compensation if SNTP_COMP_ROUNDTRIP != 0. + * Alternatively, define SNTP_GET_SYSTEM_TIME_NTP(sec, frac) in order to + * work with native NTP timestamps instead. + */ +#if !defined SNTP_GET_SYSTEM_TIME || defined __DOXYGEN__ +#define SNTP_GET_SYSTEM_TIME(sec, us) do { (sec) = 0; (us) = 0; } while(0) +#endif + +/** Default retry timeout (in milliseconds) if the response + * received is invalid. + * This is doubled with each retry until SNTP_RETRY_TIMEOUT_MAX is reached. + */ +#if !defined SNTP_RETRY_TIMEOUT || defined __DOXYGEN__ +#define SNTP_RETRY_TIMEOUT SNTP_RECV_TIMEOUT +#endif + +/** Maximum retry timeout (in milliseconds). */ +#if !defined SNTP_RETRY_TIMEOUT_MAX || defined __DOXYGEN__ +#define SNTP_RETRY_TIMEOUT_MAX (SNTP_RETRY_TIMEOUT * 10) +#endif + +/** Increase retry timeout with every retry sent + * Default is on to conform to RFC. + */ +#if !defined SNTP_RETRY_TIMEOUT_EXP || defined __DOXYGEN__ +#define SNTP_RETRY_TIMEOUT_EXP 1 +#endif + +/** Keep a reachability shift register per server + * Default is on to conform to RFC. + */ +#if !defined SNTP_MONITOR_SERVER_REACHABILITY || defined __DOXYGEN__ +#define SNTP_MONITOR_SERVER_REACHABILITY 1 +#endif + +/** + * @} + */ + +#endif /* LWIP_HDR_APPS_SNTP_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/tftp_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/tftp_opts.h new file mode 100644 index 000000000..d187b8217 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/tftp_opts.h @@ -0,0 +1,106 @@ +/** + * + * @file tftp_opts.h + * + * @author Logan Gunthorpe + * + * @brief Trivial File Transfer Protocol (RFC 1350) implementation options + * + * Copyright (c) Deltatee Enterprises Ltd. 2013 + * All rights reserved. + * + */ + +/* + * Redistribution and use in source and binary forms, with or without + * modification,are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Author: Logan Gunthorpe + * + */ + +#ifndef LWIP_HDR_APPS_TFTP_OPTS_H +#define LWIP_HDR_APPS_TFTP_OPTS_H + +#include "lwip/opt.h" +#include "lwip/prot/iana.h" + +/** + * @defgroup tftp_opts Options + * @ingroup tftp + * @{ + */ + +/** + * Enable TFTP debug messages + */ +#if !defined TFTP_DEBUG || defined __DOXYGEN__ +#define TFTP_DEBUG LWIP_DBG_OFF +#endif + +/** + * TFTP server port + */ +#if !defined TFTP_PORT || defined __DOXYGEN__ +#define TFTP_PORT LWIP_IANA_PORT_TFTP +#endif + +/** + * TFTP timeout + */ +#if !defined TFTP_TIMEOUT_MSECS || defined __DOXYGEN__ +#define TFTP_TIMEOUT_MSECS 10000 +#endif + +/** + * Max. number of retries when a file is read from server + */ +#if !defined TFTP_MAX_RETRIES || defined __DOXYGEN__ +#define TFTP_MAX_RETRIES 5 +#endif + +/** + * TFTP timer cyclic interval + */ +#if !defined TFTP_TIMER_MSECS || defined __DOXYGEN__ +#define TFTP_TIMER_MSECS (TFTP_TIMEOUT_MSECS / 10) +#endif + +/** + * Max. length of TFTP filename + */ +#if !defined TFTP_MAX_FILENAME_LEN || defined __DOXYGEN__ +#define TFTP_MAX_FILENAME_LEN 20 +#endif + +/** + * Max. length of TFTP mode + */ +#if !defined TFTP_MAX_MODE_LEN || defined __DOXYGEN__ +#define TFTP_MAX_MODE_LEN 7 +#endif + +/** + * @} + */ + +#endif /* LWIP_HDR_APPS_TFTP_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/tftp_server.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/tftp_server.h new file mode 100644 index 000000000..3ce5e405d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/apps/tftp_server.h @@ -0,0 +1,95 @@ +/** + * + * @file tftp_server.h + * + * @author Logan Gunthorpe + * + * @brief Trivial File Transfer Protocol (RFC 1350) + * + * Copyright (c) Deltatee Enterprises Ltd. 2013 + * All rights reserved. + * + */ + +/* + * Redistribution and use in source and binary forms, with or without + * modification,are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Author: Logan Gunthorpe + * + */ + +#ifndef LWIP_HDR_APPS_TFTP_SERVER_H +#define LWIP_HDR_APPS_TFTP_SERVER_H + +#include "lwip/apps/tftp_opts.h" +#include "lwip/err.h" +#include "lwip/pbuf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @ingroup tftp + * TFTP context containing callback functions for TFTP transfers + */ +struct tftp_context { + /** + * Open file for read/write. + * @param fname Filename + * @param mode Mode string from TFTP RFC 1350 (netascii, octet, mail) + * @param write Flag indicating read (0) or write (!= 0) access + * @returns File handle supplied to other functions + */ + void* (*open)(const char* fname, const char* mode, u8_t write); + /** + * Close file handle + * @param handle File handle returned by open() + */ + void (*close)(void* handle); + /** + * Read from file + * @param handle File handle returned by open() + * @param buf Target buffer to copy read data to + * @param bytes Number of bytes to copy to buf + * @returns >= 0: Success; < 0: Error + */ + int (*read)(void* handle, void* buf, int bytes); + /** + * Write to file + * @param handle File handle returned by open() + * @param pbuf PBUF adjusted such that payload pointer points + * to the beginning of write data. In other words, + * TFTP headers are stripped off. + * @returns >= 0: Success; < 0: Error + */ + int (*write)(void* handle, struct pbuf* p); +}; + +err_t tftp_init(const struct tftp_context* ctx); +void tftp_cleanup(void); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_APPS_TFTP_SERVER_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/arch.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/arch.h new file mode 100644 index 000000000..d281da734 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/arch.h @@ -0,0 +1,393 @@ +/** + * @file + * Support for different processor and compiler architectures + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_ARCH_H +#define LWIP_HDR_ARCH_H + +#ifndef LITTLE_ENDIAN +#define LITTLE_ENDIAN 1234 +#endif + +#ifndef BIG_ENDIAN +#define BIG_ENDIAN 4321 +#endif + +#include "arch/cc.h" + +/** + * @defgroup compiler_abstraction Compiler/platform abstraction + * @ingroup sys_layer + * All defines related to this section must not be placed in lwipopts.h, + * but in arch/cc.h! + * If the compiler does not provide memset() this file must include a + * definition of it, or include a file which defines it. + * These options cannot be \#defined in lwipopts.h since they are not options + * of lwIP itself, but options of the lwIP port to your system. + * @{ + */ + +/** Define the byte order of the system. + * Needed for conversion of network data to host byte order. + * Allowed values: LITTLE_ENDIAN and BIG_ENDIAN + */ +#ifndef BYTE_ORDER +#define BYTE_ORDER LITTLE_ENDIAN +#endif + +/** Define random number generator function of your system */ +#ifdef __DOXYGEN__ +#define LWIP_RAND() ((u32_t)rand()) +#endif + +/** Platform specific diagnostic output.\n + * Note the default implementation pulls in printf, which may + * in turn pull in a lot of standard libary code. In resource-constrained + * systems, this should be defined to something less resource-consuming. + */ +#ifndef LWIP_PLATFORM_DIAG +#define LWIP_PLATFORM_DIAG(x) do {printf x;} while(0) +#include +#include +#endif + +/** Platform specific assertion handling.\n + * Note the default implementation pulls in printf, fflush and abort, which may + * in turn pull in a lot of standard libary code. In resource-constrained + * systems, this should be defined to something less resource-consuming. + */ +#ifndef LWIP_PLATFORM_ASSERT +#define LWIP_PLATFORM_ASSERT(x) do {printf("Assertion \"%s\" failed at line %d in %s\n", \ + x, __LINE__, __FILE__); fflush(NULL); abort();} while(0) +#include +#include +#endif + +/** Define this to 1 in arch/cc.h of your port if you do not want to + * include stddef.h header to get size_t. You need to typedef size_t + * by yourself in this case. + */ +#ifndef LWIP_NO_STDDEF_H +#define LWIP_NO_STDDEF_H 0 +#endif + +#if !LWIP_NO_STDDEF_H +#include /* for size_t */ +#endif + +/** Define this to 1 in arch/cc.h of your port if your compiler does not provide + * the stdint.h header. You need to typedef the generic types listed in + * lwip/arch.h yourself in this case (u8_t, u16_t...). + */ +#ifndef LWIP_NO_STDINT_H +#define LWIP_NO_STDINT_H 0 +#endif + +/* Define generic types used in lwIP */ +#if !LWIP_NO_STDINT_H +#include +/* stdint.h is C99 which should also provide support for 64-bit integers */ +#if !defined(LWIP_HAVE_INT64) && defined(UINT64_MAX) +#define LWIP_HAVE_INT64 1 +#endif +typedef uint8_t u8_t; +typedef int8_t s8_t; +typedef uint16_t u16_t; +typedef int16_t s16_t; +typedef uint32_t u32_t; +typedef int32_t s32_t; +#if LWIP_HAVE_INT64 +typedef uint64_t u64_t; +typedef int64_t s64_t; +#endif +typedef uintptr_t mem_ptr_t; +#endif + +/** Define this to 1 in arch/cc.h of your port if your compiler does not provide + * the inttypes.h header. You need to define the format strings listed in + * lwip/arch.h yourself in this case (X8_F, U16_F...). + */ +#ifndef LWIP_NO_INTTYPES_H +#define LWIP_NO_INTTYPES_H 0 +#endif + +/* Define (sn)printf formatters for these lwIP types */ +#if !LWIP_NO_INTTYPES_H +#include +#ifndef X8_F +#define X8_F "02" PRIx8 +#endif +#ifndef U16_F +#define U16_F PRIu16 +#endif +#ifndef S16_F +#define S16_F PRId16 +#endif +#ifndef X16_F +#define X16_F PRIx16 +#endif +#ifndef U32_F +#define U32_F PRIu32 +#endif +#ifndef S32_F +#define S32_F PRId32 +#endif +#ifndef X32_F +#define X32_F PRIx32 +#endif +#ifndef SZT_F +#define SZT_F PRIuPTR +#endif +#endif + +/** Define this to 1 in arch/cc.h of your port if your compiler does not provide + * the limits.h header. You need to define the type limits yourself in this case + * (e.g. INT_MAX, SSIZE_MAX). + */ +#ifndef LWIP_NO_LIMITS_H +#define LWIP_NO_LIMITS_H 0 +#endif + +/* Include limits.h? */ +#if !LWIP_NO_LIMITS_H +#include +#endif + +/* Do we need to define ssize_t? This is a compatibility hack: + * Unfortunately, this type seems to be unavailable on some systems (even if + * sys/types or unistd.h are available). + * Being like that, we define it to 'int' if SSIZE_MAX is not defined. + */ +#ifdef SSIZE_MAX +/* If SSIZE_MAX is defined, unistd.h should provide the type as well */ +#ifndef LWIP_NO_UNISTD_H +#define LWIP_NO_UNISTD_H 0 +#endif +#if !LWIP_NO_UNISTD_H +#include +#endif +#else /* SSIZE_MAX */ +typedef int ssize_t; +#define SSIZE_MAX INT_MAX +#endif /* SSIZE_MAX */ + +/* some maximum values needed in lwip code */ +#define LWIP_UINT32_MAX 0xffffffff + +/** Define this to 1 in arch/cc.h of your port if your compiler does not provide + * the ctype.h header. If ctype.h is available, a few character functions + * are mapped to the appropriate functions (lwip_islower, lwip_isdigit...), if + * not, a private implementation is provided. + */ +#ifndef LWIP_NO_CTYPE_H +#define LWIP_NO_CTYPE_H 0 +#endif + +#if LWIP_NO_CTYPE_H +#define lwip_in_range(c, lo, up) ((u8_t)(c) >= (lo) && (u8_t)(c) <= (up)) +#define lwip_isdigit(c) lwip_in_range((c), '0', '9') +#define lwip_isxdigit(c) (lwip_isdigit(c) || lwip_in_range((c), 'a', 'f') || lwip_in_range((c), 'A', 'F')) +#define lwip_islower(c) lwip_in_range((c), 'a', 'z') +#define lwip_isspace(c) ((c) == ' ' || (c) == '\f' || (c) == '\n' || (c) == '\r' || (c) == '\t' || (c) == '\v') +#define lwip_isupper(c) lwip_in_range((c), 'A', 'Z') +#define lwip_tolower(c) (lwip_isupper(c) ? (c) - 'A' + 'a' : c) +#define lwip_toupper(c) (lwip_islower(c) ? (c) - 'a' + 'A' : c) +#else +#include +#define lwip_isdigit(c) isdigit((unsigned char)(c)) +#define lwip_isxdigit(c) isxdigit((unsigned char)(c)) +#define lwip_islower(c) islower((unsigned char)(c)) +#define lwip_isspace(c) isspace((unsigned char)(c)) +#define lwip_isupper(c) isupper((unsigned char)(c)) +#define lwip_tolower(c) tolower((unsigned char)(c)) +#define lwip_toupper(c) toupper((unsigned char)(c)) +#endif + +/** C++ const_cast(val) equivalent to remove constness from a value (GCC -Wcast-qual) */ +#ifndef LWIP_CONST_CAST +#define LWIP_CONST_CAST(target_type, val) ((target_type)((ptrdiff_t)val)) +#endif + +/** Get rid of alignment cast warnings (GCC -Wcast-align) */ +#ifndef LWIP_ALIGNMENT_CAST +#define LWIP_ALIGNMENT_CAST(target_type, val) LWIP_CONST_CAST(target_type, val) +#endif + +/** Get rid of warnings related to pointer-to-numeric and vice-versa casts, + * e.g. "conversion from 'u8_t' to 'void *' of greater size" + */ +#ifndef LWIP_PTR_NUMERIC_CAST +#define LWIP_PTR_NUMERIC_CAST(target_type, val) LWIP_CONST_CAST(target_type, val) +#endif + +/** Avoid warnings/errors related to implicitly casting away packed attributes by doing a explicit cast */ +#ifndef LWIP_PACKED_CAST +#define LWIP_PACKED_CAST(target_type, val) LWIP_CONST_CAST(target_type, val) +#endif + +/** Allocates a memory buffer of specified size that is of sufficient size to align + * its start address using LWIP_MEM_ALIGN. + * You can declare your own version here e.g. to enforce alignment without adding + * trailing padding bytes (see LWIP_MEM_ALIGN_BUFFER) or your own section placement + * requirements.\n + * e.g. if you use gcc and need 32 bit alignment:\n + * \#define LWIP_DECLARE_MEMORY_ALIGNED(variable_name, size) u8_t variable_name[size] \_\_attribute\_\_((aligned(4)))\n + * or more portable:\n + * \#define LWIP_DECLARE_MEMORY_ALIGNED(variable_name, size) u32_t variable_name[(size + sizeof(u32_t) - 1) / sizeof(u32_t)] + */ +#ifndef LWIP_DECLARE_MEMORY_ALIGNED +#define LWIP_DECLARE_MEMORY_ALIGNED(variable_name, size) u8_t variable_name[LWIP_MEM_ALIGN_BUFFER(size)] +#endif + +/** Calculate memory size for an aligned buffer - returns the next highest + * multiple of MEM_ALIGNMENT (e.g. LWIP_MEM_ALIGN_SIZE(3) and + * LWIP_MEM_ALIGN_SIZE(4) will both yield 4 for MEM_ALIGNMENT == 4). + */ +#ifndef LWIP_MEM_ALIGN_SIZE +#define LWIP_MEM_ALIGN_SIZE(size) (((size) + MEM_ALIGNMENT - 1U) & ~(MEM_ALIGNMENT-1U)) +#endif + +/** Calculate safe memory size for an aligned buffer when using an unaligned + * type as storage. This includes a safety-margin on (MEM_ALIGNMENT - 1) at the + * start (e.g. if buffer is u8_t[] and actual data will be u32_t*) + */ +#ifndef LWIP_MEM_ALIGN_BUFFER +#define LWIP_MEM_ALIGN_BUFFER(size) (((size) + MEM_ALIGNMENT - 1U)) +#endif + +/** Align a memory pointer to the alignment defined by MEM_ALIGNMENT + * so that ADDR % MEM_ALIGNMENT == 0 + */ +#ifndef LWIP_MEM_ALIGN +#define LWIP_MEM_ALIGN(addr) ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1))) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** Packed structs support. + * Placed BEFORE declaration of a packed struct.\n + * For examples of packed struct declarations, see include/lwip/prot/ subfolder.\n + * A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here. + */ +#ifndef PACK_STRUCT_BEGIN +#define PACK_STRUCT_BEGIN +#endif /* PACK_STRUCT_BEGIN */ + +/** Packed structs support. + * Placed AFTER declaration of a packed struct.\n + * For examples of packed struct declarations, see include/lwip/prot/ subfolder.\n + * A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here. + */ +#ifndef PACK_STRUCT_END +#define PACK_STRUCT_END +#endif /* PACK_STRUCT_END */ + +/** Packed structs support. + * Placed between end of declaration of a packed struct and trailing semicolon.\n + * For examples of packed struct declarations, see include/lwip/prot/ subfolder.\n + * A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here. + */ +#ifndef PACK_STRUCT_STRUCT +#if defined(__GNUC__) || defined(__clang__) +#define PACK_STRUCT_STRUCT __attribute__((packed)) +#else +#define PACK_STRUCT_STRUCT +#endif +#endif /* PACK_STRUCT_STRUCT */ + +/** Packed structs support. + * Wraps u32_t and u16_t members.\n + * For examples of packed struct declarations, see include/lwip/prot/ subfolder.\n + * A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here. + */ +#ifndef PACK_STRUCT_FIELD +#define PACK_STRUCT_FIELD(x) x +#endif /* PACK_STRUCT_FIELD */ + +/** Packed structs support. + * Wraps u8_t members, where some compilers warn that packing is not necessary.\n + * For examples of packed struct declarations, see include/lwip/prot/ subfolder.\n + * A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here. + */ +#ifndef PACK_STRUCT_FLD_8 +#define PACK_STRUCT_FLD_8(x) PACK_STRUCT_FIELD(x) +#endif /* PACK_STRUCT_FLD_8 */ + +/** Packed structs support. + * Wraps members that are packed structs themselves, where some compilers warn that packing is not necessary.\n + * For examples of packed struct declarations, see include/lwip/prot/ subfolder.\n + * A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here. + */ +#ifndef PACK_STRUCT_FLD_S +#define PACK_STRUCT_FLD_S(x) PACK_STRUCT_FIELD(x) +#endif /* PACK_STRUCT_FLD_S */ + +/** PACK_STRUCT_USE_INCLUDES==1: Packed structs support using \#include files before and after struct to be packed.\n + * The file included BEFORE the struct is "arch/bpstruct.h".\n + * The file included AFTER the struct is "arch/epstruct.h".\n + * This can be used to implement struct packing on MS Visual C compilers, see + * the Win32 port in the lwIP contrib repository for reference. + * For examples of packed struct declarations, see include/lwip/prot/ subfolder.\n + * A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here. + */ +#ifdef __DOXYGEN__ +#define PACK_STRUCT_USE_INCLUDES +#endif + +/** Eliminates compiler warning about unused arguments (GCC -Wextra -Wunused). */ +#ifndef LWIP_UNUSED_ARG +#define LWIP_UNUSED_ARG(x) (void)x +#endif /* LWIP_UNUSED_ARG */ + +/** LWIP_PROVIDE_ERRNO==1: Let lwIP provide ERRNO values and the 'errno' variable. + * If this is disabled, cc.h must either define 'errno', include , + * define LWIP_ERRNO_STDINCLUDE to get included or + * define LWIP_ERRNO_INCLUDE to or equivalent. + */ +#if defined __DOXYGEN__ +#define LWIP_PROVIDE_ERRNO +#endif + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_ARCH_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/autoip.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/autoip.h new file mode 100644 index 000000000..5c6d13e7d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/autoip.h @@ -0,0 +1,99 @@ +/** + * @file + * + * AutoIP Automatic LinkLocal IP Configuration + */ + +/* + * + * Copyright (c) 2007 Dominik Spies + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * Author: Dominik Spies + * + * This is a AutoIP implementation for the lwIP TCP/IP stack. It aims to conform + * with RFC 3927. + * + */ + +#ifndef LWIP_HDR_AUTOIP_H +#define LWIP_HDR_AUTOIP_H + +#include "lwip/opt.h" + +#if LWIP_IPV4 && LWIP_AUTOIP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/netif.h" +/* #include "lwip/udp.h" */ +#include "lwip/etharp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** AutoIP Timing */ +#define AUTOIP_TMR_INTERVAL 100 +#define AUTOIP_TICKS_PER_SECOND (1000 / AUTOIP_TMR_INTERVAL) + +/** AutoIP state information per netif */ +struct autoip +{ + /** the currently selected, probed, announced or used LL IP-Address */ + ip4_addr_t llipaddr; + /** current AutoIP state machine state */ + u8_t state; + /** sent number of probes or announces, dependent on state */ + u8_t sent_num; + /** ticks to wait, tick is AUTOIP_TMR_INTERVAL long */ + u16_t ttw; + /** ticks until a conflict can be solved by defending */ + u8_t lastconflict; + /** total number of probed/used Link Local IP-Addresses */ + u8_t tried_llipaddr; +}; + + +void autoip_set_struct(struct netif *netif, struct autoip *autoip); +/** Remove a struct autoip previously set to the netif using autoip_set_struct() */ +#define autoip_remove_struct(netif) do { (netif)->autoip = NULL; } while (0) +err_t autoip_start(struct netif *netif); +err_t autoip_stop(struct netif *netif); +void autoip_arp_reply(struct netif *netif, struct etharp_hdr *hdr); +void autoip_tmr(void); +void autoip_network_changed(struct netif *netif); +u8_t autoip_supplied_address(const struct netif *netif); + +/* for lwIP internal use by ip4.c */ +u8_t autoip_accept_packet(struct netif *netif, const ip4_addr_t *addr); + +#define netif_autoip_data(netif) ((struct autoip*)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP)) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV4 && LWIP_AUTOIP */ + +#endif /* LWIP_HDR_AUTOIP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/debug.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/debug.h new file mode 100644 index 000000000..346ac47d2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/debug.h @@ -0,0 +1,161 @@ +/** + * @file + * Debug messages infrastructure + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_DEBUG_H +#define LWIP_HDR_DEBUG_H + +#include "lwip/arch.h" +#include "lwip/opt.h" + +/** + * @defgroup debugging_levels LWIP_DBG_MIN_LEVEL and LWIP_DBG_TYPES_ON values + * @ingroup lwip_opts_debugmsg + * @{ + */ + +/** @name Debug level (LWIP_DBG_MIN_LEVEL) + * @{ + */ +/** Debug level: ALL messages*/ +#define LWIP_DBG_LEVEL_ALL 0x00 +/** Debug level: Warnings. bad checksums, dropped packets, ... */ +#define LWIP_DBG_LEVEL_WARNING 0x01 +/** Debug level: Serious. memory allocation failures, ... */ +#define LWIP_DBG_LEVEL_SERIOUS 0x02 +/** Debug level: Severe */ +#define LWIP_DBG_LEVEL_SEVERE 0x03 +/** + * @} + */ + +#define LWIP_DBG_MASK_LEVEL 0x03 +/* compatibility define only */ +#define LWIP_DBG_LEVEL_OFF LWIP_DBG_LEVEL_ALL + +/** @name Enable/disable debug messages completely (LWIP_DBG_TYPES_ON) + * @{ + */ +/** flag for LWIP_DEBUGF to enable that debug message */ +#define LWIP_DBG_ON 0x80U +/** flag for LWIP_DEBUGF to disable that debug message */ +#define LWIP_DBG_OFF 0x00U +/** + * @} + */ + +/** @name Debug message types (LWIP_DBG_TYPES_ON) + * @{ + */ +/** flag for LWIP_DEBUGF indicating a tracing message (to follow program flow) */ +#define LWIP_DBG_TRACE 0x40U +/** flag for LWIP_DEBUGF indicating a state debug message (to follow module states) */ +#define LWIP_DBG_STATE 0x20U +/** flag for LWIP_DEBUGF indicating newly added code, not thoroughly tested yet */ +#define LWIP_DBG_FRESH 0x10U +/** flag for LWIP_DEBUGF to halt after printing this debug message */ +#define LWIP_DBG_HALT 0x08U +/** + * @} + */ + +/** + * @} + */ + +/** + * @defgroup lwip_assertions Assertion handling + * @ingroup lwip_opts_debug + * @{ + */ +/** + * LWIP_NOASSERT: Disable LWIP_ASSERT checks: + * To disable assertions define LWIP_NOASSERT in arch/cc.h. + */ +#ifdef __DOXYGEN__ +#define LWIP_NOASSERT +#undef LWIP_NOASSERT +#endif +/** + * @} + */ + +#ifndef LWIP_NOASSERT +#define LWIP_ASSERT(message, assertion) do { if (!(assertion)) { \ + LWIP_PLATFORM_ASSERT(message); }} while(0) +#else /* LWIP_NOASSERT */ +#define LWIP_ASSERT(message, assertion) +#endif /* LWIP_NOASSERT */ + +#ifndef LWIP_ERROR +#ifndef LWIP_NOASSERT +#define LWIP_PLATFORM_ERROR(message) LWIP_PLATFORM_ASSERT(message) +#elif defined LWIP_DEBUG +#define LWIP_PLATFORM_ERROR(message) LWIP_PLATFORM_DIAG((message)) +#else +#define LWIP_PLATFORM_ERROR(message) +#endif + +/* if "expression" isn't true, then print "message" and execute "handler" expression */ +#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \ + LWIP_PLATFORM_ERROR(message); handler;}} while(0) +#endif /* LWIP_ERROR */ + +/** Enable debug message printing, but only if debug message type is enabled + * AND is of correct type AND is at least LWIP_DBG_LEVEL. + */ +#ifdef __DOXYGEN__ +#define LWIP_DEBUG +#undef LWIP_DEBUG +#endif + +#ifdef LWIP_DEBUG +#define LWIP_DEBUGF(debug, message) do { \ + if ( \ + ((debug) & LWIP_DBG_ON) && \ + ((debug) & LWIP_DBG_TYPES_ON) && \ + ((s16_t)((debug) & LWIP_DBG_MASK_LEVEL) >= LWIP_DBG_MIN_LEVEL)) { \ + LWIP_PLATFORM_DIAG(message); \ + if ((debug) & LWIP_DBG_HALT) { \ + while(1); \ + } \ + } \ + } while(0) + +#else /* LWIP_DEBUG */ +#define LWIP_DEBUGF(debug, message) +#endif /* LWIP_DEBUG */ + +#endif /* LWIP_HDR_DEBUG_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/def.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/def.h new file mode 100644 index 000000000..10b5ac262 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/def.h @@ -0,0 +1,152 @@ +/** + * @file + * various utility macros + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +/** + * @defgroup perf Performance measurement + * @ingroup sys_layer + * All defines related to this section must not be placed in lwipopts.h, + * but in arch/perf.h! + * Measurement calls made throughout lwip, these can be defined to nothing. + * - PERF_START: start measuring something. + * - PERF_STOP(x): stop measuring something, and record the result. + */ + +#ifndef LWIP_HDR_DEF_H +#define LWIP_HDR_DEF_H + +/* arch.h might define NULL already */ +#include "lwip/arch.h" +#include "lwip/opt.h" +#if LWIP_PERF +#include "arch/perf.h" +#else /* LWIP_PERF */ +#define PERF_START /* null definition */ +#define PERF_STOP(x) /* null definition */ +#endif /* LWIP_PERF */ + +#ifdef __cplusplus +extern "C" { +#endif + +#define LWIP_MAX(x , y) (((x) > (y)) ? (x) : (y)) +#define LWIP_MIN(x , y) (((x) < (y)) ? (x) : (y)) + +/* Get the number of entries in an array ('x' must NOT be a pointer!) */ +#define LWIP_ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0])) + +/** Create u32_t value from bytes */ +#define LWIP_MAKEU32(a,b,c,d) (((u32_t)((a) & 0xff) << 24) | \ + ((u32_t)((b) & 0xff) << 16) | \ + ((u32_t)((c) & 0xff) << 8) | \ + (u32_t)((d) & 0xff)) + +#ifndef NULL +#ifdef __cplusplus +#define NULL 0 +#else +#define NULL ((void *)0) +#endif +#endif + +#if BYTE_ORDER == BIG_ENDIAN +#define lwip_htons(x) ((u16_t)(x)) +#define lwip_ntohs(x) ((u16_t)(x)) +#define lwip_htonl(x) ((u32_t)(x)) +#define lwip_ntohl(x) ((u32_t)(x)) +#define PP_HTONS(x) ((u16_t)(x)) +#define PP_NTOHS(x) ((u16_t)(x)) +#define PP_HTONL(x) ((u32_t)(x)) +#define PP_NTOHL(x) ((u32_t)(x)) +#else /* BYTE_ORDER != BIG_ENDIAN */ +#ifndef lwip_htons +u16_t lwip_htons(u16_t x); +#endif +#define lwip_ntohs(x) lwip_htons(x) + +#ifndef lwip_htonl +u32_t lwip_htonl(u32_t x); +#endif +#define lwip_ntohl(x) lwip_htonl(x) + +/* These macros should be calculated by the preprocessor and are used + with compile-time constants only (so that there is no little-endian + overhead at runtime). */ +#define PP_HTONS(x) ((u16_t)((((x) & (u16_t)0x00ffU) << 8) | (((x) & (u16_t)0xff00U) >> 8))) +#define PP_NTOHS(x) PP_HTONS(x) +#define PP_HTONL(x) ((((x) & (u32_t)0x000000ffUL) << 24) | \ + (((x) & (u32_t)0x0000ff00UL) << 8) | \ + (((x) & (u32_t)0x00ff0000UL) >> 8) | \ + (((x) & (u32_t)0xff000000UL) >> 24)) +#define PP_NTOHL(x) PP_HTONL(x) +#endif /* BYTE_ORDER == BIG_ENDIAN */ + +/* Provide usual function names as macros for users, but this can be turned off */ +#ifndef LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS +#define htons(x) lwip_htons(x) +#define ntohs(x) lwip_ntohs(x) +#define htonl(x) lwip_htonl(x) +#define ntohl(x) lwip_ntohl(x) +#endif + +/* Functions that are not available as standard implementations. + * In cc.h, you can #define these to implementations available on + * your platform to save some code bytes if you use these functions + * in your application, too. + */ + +#ifndef lwip_itoa +/* This can be #defined to itoa() or snprintf(result, bufsize, "%d", number) depending on your platform */ +void lwip_itoa(char* result, size_t bufsize, int number); +#endif +#ifndef lwip_strnicmp +/* This can be #defined to strnicmp() or strncasecmp() depending on your platform */ +int lwip_strnicmp(const char* str1, const char* str2, size_t len); +#endif +#ifndef lwip_stricmp +/* This can be #defined to stricmp() or strcasecmp() depending on your platform */ +int lwip_stricmp(const char* str1, const char* str2); +#endif +#ifndef lwip_strnstr +/* This can be #defined to strnstr() depending on your platform */ +char* lwip_strnstr(const char* buffer, const char* token, size_t n); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_DEF_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dhcp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dhcp.h new file mode 100644 index 000000000..005203ed8 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dhcp.h @@ -0,0 +1,139 @@ +/** + * @file + * DHCP client API + */ + +/* + * Copyright (c) 2001-2004 Leon Woestenberg + * Copyright (c) 2001-2004 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Leon Woestenberg + * + */ +#ifndef LWIP_HDR_DHCP_H +#define LWIP_HDR_DHCP_H + +#include "lwip/opt.h" + +#if LWIP_DHCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/netif.h" +#include "lwip/udp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** period (in seconds) of the application calling dhcp_coarse_tmr() */ +#define DHCP_COARSE_TIMER_SECS 6 +/** period (in milliseconds) of the application calling dhcp_coarse_tmr() */ +#define DHCP_COARSE_TIMER_MSECS (DHCP_COARSE_TIMER_SECS * 1000UL) +/** period (in milliseconds) of the application calling dhcp_fine_tmr() */ +#define DHCP_FINE_TIMER_MSECS 500 + +#define DHCP_BOOT_FILE_LEN 128U + +/* AutoIP cooperation flags (struct dhcp.autoip_coop_state) */ +typedef enum { + DHCP_AUTOIP_COOP_STATE_OFF = 0, + DHCP_AUTOIP_COOP_STATE_ON = 1 +} dhcp_autoip_coop_state_enum_t; + +struct dhcp +{ + /** transaction identifier of last sent request */ + u32_t xid; + /** track PCB allocation state */ + u8_t pcb_allocated; + /** current DHCP state machine state */ + u8_t state; + /** retries of current request */ + u8_t tries; +#if LWIP_DHCP_AUTOIP_COOP + u8_t autoip_coop_state; +#endif + u8_t subnet_mask_given; + + u16_t request_timeout; /* #ticks with period DHCP_FINE_TIMER_SECS for request timeout */ + u16_t t1_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for renewal time */ + u16_t t2_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for rebind time */ + u16_t t1_renew_time; /* #ticks with period DHCP_COARSE_TIMER_SECS until next renew try */ + u16_t t2_rebind_time; /* #ticks with period DHCP_COARSE_TIMER_SECS until next rebind try */ + u16_t lease_used; /* #ticks with period DHCP_COARSE_TIMER_SECS since last received DHCP ack */ + u16_t t0_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for lease time */ + ip_addr_t server_ip_addr; /* dhcp server address that offered this lease (ip_addr_t because passed to UDP) */ + ip4_addr_t offered_ip_addr; + ip4_addr_t offered_sn_mask; + ip4_addr_t offered_gw_addr; + + u32_t offered_t0_lease; /* lease period (in seconds) */ + u32_t offered_t1_renew; /* recommended renew time (usually 50% of lease period) */ + u32_t offered_t2_rebind; /* recommended rebind time (usually 87.5 of lease period) */ +#if LWIP_DHCP_BOOTP_FILE + ip4_addr_t offered_si_addr; + char boot_file_name[DHCP_BOOT_FILE_LEN]; +#endif /* LWIP_DHCP_BOOTPFILE */ +}; + + +void dhcp_set_struct(struct netif *netif, struct dhcp *dhcp); +/** Remove a struct dhcp previously set to the netif using dhcp_set_struct() */ +#define dhcp_remove_struct(netif) netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP, NULL) +void dhcp_cleanup(struct netif *netif); +err_t dhcp_start(struct netif *netif); +err_t dhcp_renew(struct netif *netif); +err_t dhcp_release(struct netif *netif); +void dhcp_stop(struct netif *netif); +void dhcp_release_and_stop(struct netif *netif); +void dhcp_inform(struct netif *netif); +void dhcp_network_changed(struct netif *netif); +#if DHCP_DOES_ARP_CHECK +void dhcp_arp_reply(struct netif *netif, const ip4_addr_t *addr); +#endif +u8_t dhcp_supplied_address(const struct netif *netif); +/* to be called every minute */ +void dhcp_coarse_tmr(void); +/* to be called every half second */ +void dhcp_fine_tmr(void); + +#if LWIP_DHCP_GET_NTP_SRV +/** This function must exist, in other to add offered NTP servers to + * the NTP (or SNTP) engine. + * See LWIP_DHCP_MAX_NTP_SERVERS */ +extern void dhcp_set_ntp_servers(u8_t num_ntp_servers, const ip4_addr_t* ntp_server_addrs); +#endif /* LWIP_DHCP_GET_NTP_SRV */ + +#define netif_dhcp_data(netif) ((struct dhcp*)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP)) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_DHCP */ + +#endif /*LWIP_HDR_DHCP_H*/ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dhcp6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dhcp6.h new file mode 100644 index 000000000..61ca4c427 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dhcp6.h @@ -0,0 +1,104 @@ +/** + * @file + * + * DHCPv6 client: IPv6 address autoconfiguration as per + * RFC 3315 (stateful DHCPv6) and + * RFC 3736 (stateless DHCPv6). + */ + +/* + * Copyright (c) 2018 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + */ + +#ifndef LWIP_HDR_IP6_DHCP6_H +#define LWIP_HDR_IP6_DHCP6_H + +#include "lwip/opt.h" + +#if LWIP_IPV6_DHCP6 /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/err.h" +#include "lwip/netif.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** period (in milliseconds) of the application calling dhcp6_tmr() */ +#define DHCP6_TIMER_MSECS 500 + +struct dhcp6 +{ + /** transaction identifier of last sent request */ + u32_t xid; + /** track PCB allocation state */ + u8_t pcb_allocated; + /** current DHCPv6 state machine state */ + u8_t state; + /** retries of current request */ + u8_t tries; + /** if request config is triggered while another action is active, this keeps track of it */ + u8_t request_config_pending; + /** #ticks with period DHCP6_TIMER_MSECS for request timeout */ + u16_t request_timeout; +#if LWIP_IPV6_DHCP6_STATEFUL + /* @todo: add more members here to keep track of stateful DHCPv6 data, like lease times */ +#endif /* LWIP_IPV6_DHCP6_STATEFUL */ +}; + +void dhcp6_set_struct(struct netif *netif, struct dhcp6 *dhcp6); +/** Remove a struct dhcp6 previously set to the netif using dhcp6_set_struct() */ +#define dhcp6_remove_struct(netif) netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP6, NULL) +void dhcp6_cleanup(struct netif *netif); + +err_t dhcp6_enable_stateful(struct netif *netif); +err_t dhcp6_enable_stateless(struct netif *netif); +void dhcp6_disable(struct netif *netif); + +void dhcp6_tmr(void); + +void dhcp6_nd6_ra_trigger(struct netif *netif, u8_t managed_addr_config, u8_t other_config); + +#if LWIP_DHCP6_GET_NTP_SRV +/** This function must exist, in other to add offered NTP servers to + * the NTP (or SNTP) engine. + * See LWIP_DHCP6_MAX_NTP_SERVERS */ +extern void dhcp6_set_ntp_servers(u8_t num_ntp_servers, const ip_addr_t* ntp_server_addrs); +#endif /* LWIP_DHCP6_GET_NTP_SRV */ + +#define netif_dhcp6_data(netif) ((struct dhcp6*)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP6)) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV6_DHCP6 */ + +#endif /* LWIP_HDR_IP6_DHCP6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dns.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dns.h new file mode 100644 index 000000000..eed682587 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/dns.h @@ -0,0 +1,131 @@ +/** + * @file + * DNS API + */ + +/** + * lwip DNS resolver header file. + + * Author: Jim Pettinato + * April 2007 + + * ported from uIP resolv.c Copyright (c) 2002-2003, Adam Dunkels. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef LWIP_HDR_DNS_H +#define LWIP_HDR_DNS_H + +#include "lwip/opt.h" + +#if LWIP_DNS + +#include "lwip/ip_addr.h" +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** DNS timer period */ +#define DNS_TMR_INTERVAL 1000 + +/* DNS resolve types: */ +#define LWIP_DNS_ADDRTYPE_IPV4 0 +#define LWIP_DNS_ADDRTYPE_IPV6 1 +#define LWIP_DNS_ADDRTYPE_IPV4_IPV6 2 /* try to resolve IPv4 first, try IPv6 if IPv4 fails only */ +#define LWIP_DNS_ADDRTYPE_IPV6_IPV4 3 /* try to resolve IPv6 first, try IPv4 if IPv6 fails only */ +#if LWIP_IPV4 && LWIP_IPV6 +#ifndef LWIP_DNS_ADDRTYPE_DEFAULT +#define LWIP_DNS_ADDRTYPE_DEFAULT LWIP_DNS_ADDRTYPE_IPV4_IPV6 +#endif +#elif LWIP_IPV4 +#define LWIP_DNS_ADDRTYPE_DEFAULT LWIP_DNS_ADDRTYPE_IPV4 +#else +#define LWIP_DNS_ADDRTYPE_DEFAULT LWIP_DNS_ADDRTYPE_IPV6 +#endif + +#if DNS_LOCAL_HOSTLIST +/** struct used for local host-list */ +struct local_hostlist_entry { + /** static hostname */ + const char *name; + /** static host address in network byteorder */ + ip_addr_t addr; + struct local_hostlist_entry *next; +}; +#define DNS_LOCAL_HOSTLIST_ELEM(name, addr_init) {name, addr_init, NULL} +#if DNS_LOCAL_HOSTLIST_IS_DYNAMIC +#ifndef DNS_LOCAL_HOSTLIST_MAX_NAMELEN +#define DNS_LOCAL_HOSTLIST_MAX_NAMELEN DNS_MAX_NAME_LENGTH +#endif +#define LOCALHOSTLIST_ELEM_SIZE ((sizeof(struct local_hostlist_entry) + DNS_LOCAL_HOSTLIST_MAX_NAMELEN + 1)) +#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ +#endif /* DNS_LOCAL_HOSTLIST */ + +#if LWIP_IPV4 +extern const ip_addr_t dns_mquery_v4group; +#endif /* LWIP_IPV4 */ +#if LWIP_IPV6 +extern const ip_addr_t dns_mquery_v6group; +#endif /* LWIP_IPV6 */ + +/** Callback which is invoked when a hostname is found. + * A function of this type must be implemented by the application using the DNS resolver. + * @param name pointer to the name that was looked up. + * @param ipaddr pointer to an ip_addr_t containing the IP address of the hostname, + * or NULL if the name could not be found (or on any other error). + * @param callback_arg a user-specified callback argument passed to dns_gethostbyname +*/ +typedef void (*dns_found_callback)(const char *name, const ip_addr_t *ipaddr, void *callback_arg); + +void dns_init(void); +void dns_tmr(void); +void dns_setserver(u8_t numdns, const ip_addr_t *dnsserver); +const ip_addr_t* dns_getserver(u8_t numdns); +err_t dns_gethostbyname(const char *hostname, ip_addr_t *addr, + dns_found_callback found, void *callback_arg); +err_t dns_gethostbyname_addrtype(const char *hostname, ip_addr_t *addr, + dns_found_callback found, void *callback_arg, + u8_t dns_addrtype); + + +#if DNS_LOCAL_HOSTLIST +size_t dns_local_iterate(dns_found_callback iterator_fn, void *iterator_arg); +err_t dns_local_lookup(const char *hostname, ip_addr_t *addr, u8_t dns_addrtype); +#if DNS_LOCAL_HOSTLIST_IS_DYNAMIC +int dns_local_removehost(const char *hostname, const ip_addr_t *addr); +err_t dns_local_addhost(const char *hostname, const ip_addr_t *addr); +#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ +#endif /* DNS_LOCAL_HOSTLIST */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_DNS */ + +#endif /* LWIP_HDR_DNS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/err.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/err.h new file mode 100644 index 000000000..8cf3ea3fe --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/err.h @@ -0,0 +1,117 @@ +/** + * @file + * lwIP Error codes + */ +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_ERR_H +#define LWIP_HDR_ERR_H + +#include "lwip/opt.h" +#include "lwip/arch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup infrastructure_errors Error codes + * @ingroup infrastructure + * @{ + */ + +/** Definitions for error constants. */ +typedef enum { +/** No error, everything OK. */ + ERR_OK = 0, +/** Out of memory error. */ + ERR_MEM = -1, +/** Buffer error. */ + ERR_BUF = -2, +/** Timeout. */ + ERR_TIMEOUT = -3, +/** Routing problem. */ + ERR_RTE = -4, +/** Operation in progress */ + ERR_INPROGRESS = -5, +/** Illegal value. */ + ERR_VAL = -6, +/** Operation would block. */ + ERR_WOULDBLOCK = -7, +/** Address in use. */ + ERR_USE = -8, +/** Already connecting. */ + ERR_ALREADY = -9, +/** Conn already established.*/ + ERR_ISCONN = -10, +/** Not connected. */ + ERR_CONN = -11, +/** Low-level netif error */ + ERR_IF = -12, + +/** Connection aborted. */ + ERR_ABRT = -13, +/** Connection reset. */ + ERR_RST = -14, +/** Connection closed. */ + ERR_CLSD = -15, +/** Illegal argument. */ + ERR_ARG = -16 +} err_enum_t; + +/** Define LWIP_ERR_T in cc.h if you want to use + * a different type for your platform (must be signed). */ +#ifdef LWIP_ERR_T +typedef LWIP_ERR_T err_t; +#else /* LWIP_ERR_T */ +typedef s8_t err_t; +#endif /* LWIP_ERR_T*/ + +/** + * @} + */ + +#ifdef LWIP_DEBUG +extern const char *lwip_strerr(err_t err); +#else +#define lwip_strerr(x) "" +#endif /* LWIP_DEBUG */ + +#ifndef NO_SYS +int err_to_errno(err_t err); +#endif /* !NO_SYS */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_ERR_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/errno.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/errno.h new file mode 100644 index 000000000..eae5d6ed8 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/errno.h @@ -0,0 +1,198 @@ +/** + * @file + * Posix Errno defines + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_ERRNO_H +#define LWIP_HDR_ERRNO_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef LWIP_PROVIDE_ERRNO + +#define EPERM 1 /* Operation not permitted */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +#define EINTR 4 /* Interrupted system call */ +#define EIO 5 /* I/O error */ +#define ENXIO 6 /* No such device or address */ +#define E2BIG 7 /* Arg list too long */ +#define ENOEXEC 8 /* Exec format error */ +#define EBADF 9 /* Bad file number */ +#define ECHILD 10 /* No child processes */ +#define EAGAIN 11 /* Try again */ +#define ENOMEM 12 /* Out of memory */ +#define EACCES 13 /* Permission denied */ +#define EFAULT 14 /* Bad address */ +#define ENOTBLK 15 /* Block device required */ +#define EBUSY 16 /* Device or resource busy */ +#define EEXIST 17 /* File exists */ +#define EXDEV 18 /* Cross-device link */ +#define ENODEV 19 /* No such device */ +#define ENOTDIR 20 /* Not a directory */ +#define EISDIR 21 /* Is a directory */ +#define EINVAL 22 /* Invalid argument */ +#define ENFILE 23 /* File table overflow */ +#define EMFILE 24 /* Too many open files */ +#define ENOTTY 25 /* Not a typewriter */ +#define ETXTBSY 26 /* Text file busy */ +#define EFBIG 27 /* File too large */ +#define ENOSPC 28 /* No space left on device */ +#define ESPIPE 29 /* Illegal seek */ +#define EROFS 30 /* Read-only file system */ +#define EMLINK 31 /* Too many links */ +#define EPIPE 32 /* Broken pipe */ +#define EDOM 33 /* Math argument out of domain of func */ +#define ERANGE 34 /* Math result not representable */ +#define EDEADLK 35 /* Resource deadlock would occur */ +#define ENAMETOOLONG 36 /* File name too long */ +#define ENOLCK 37 /* No record locks available */ +#define ENOSYS 38 /* Function not implemented */ +#define ENOTEMPTY 39 /* Directory not empty */ +#define ELOOP 40 /* Too many symbolic links encountered */ +#define EWOULDBLOCK EAGAIN /* Operation would block */ +#define ENOMSG 42 /* No message of desired type */ +#define EIDRM 43 /* Identifier removed */ +#define ECHRNG 44 /* Channel number out of range */ +#define EL2NSYNC 45 /* Level 2 not synchronized */ +#define EL3HLT 46 /* Level 3 halted */ +#define EL3RST 47 /* Level 3 reset */ +#define ELNRNG 48 /* Link number out of range */ +#define EUNATCH 49 /* Protocol driver not attached */ +#define ENOCSI 50 /* No CSI structure available */ +#define EL2HLT 51 /* Level 2 halted */ +#define EBADE 52 /* Invalid exchange */ +#define EBADR 53 /* Invalid request descriptor */ +#define EXFULL 54 /* Exchange full */ +#define ENOANO 55 /* No anode */ +#define EBADRQC 56 /* Invalid request code */ +#define EBADSLT 57 /* Invalid slot */ + +#define EDEADLOCK EDEADLK + +#define EBFONT 59 /* Bad font file format */ +#define ENOSTR 60 /* Device not a stream */ +#define ENODATA 61 /* No data available */ +#define ETIME 62 /* Timer expired */ +#define ENOSR 63 /* Out of streams resources */ +#define ENONET 64 /* Machine is not on the network */ +#define ENOPKG 65 /* Package not installed */ +#define EREMOTE 66 /* Object is remote */ +#define ENOLINK 67 /* Link has been severed */ +#define EADV 68 /* Advertise error */ +#define ESRMNT 69 /* Srmount error */ +#define ECOMM 70 /* Communication error on send */ +#define EPROTO 71 /* Protocol error */ +#define EMULTIHOP 72 /* Multihop attempted */ +#define EDOTDOT 73 /* RFS specific error */ +#define EBADMSG 74 /* Not a data message */ +#define EOVERFLOW 75 /* Value too large for defined data type */ +#define ENOTUNIQ 76 /* Name not unique on network */ +#define EBADFD 77 /* File descriptor in bad state */ +#define EREMCHG 78 /* Remote address changed */ +#define ELIBACC 79 /* Can not access a needed shared library */ +#define ELIBBAD 80 /* Accessing a corrupted shared library */ +#define ELIBSCN 81 /* .lib section in a.out corrupted */ +#define ELIBMAX 82 /* Attempting to link in too many shared libraries */ +#define ELIBEXEC 83 /* Cannot exec a shared library directly */ +#define EILSEQ 84 /* Illegal byte sequence */ +#define ERESTART 85 /* Interrupted system call should be restarted */ +#define ESTRPIPE 86 /* Streams pipe error */ +#define EUSERS 87 /* Too many users */ +#define ENOTSOCK 88 /* Socket operation on non-socket */ +#define EDESTADDRREQ 89 /* Destination address required */ +#define EMSGSIZE 90 /* Message too long */ +#define EPROTOTYPE 91 /* Protocol wrong type for socket */ +#define ENOPROTOOPT 92 /* Protocol not available */ +#define EPROTONOSUPPORT 93 /* Protocol not supported */ +#define ESOCKTNOSUPPORT 94 /* Socket type not supported */ +#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ +#define EPFNOSUPPORT 96 /* Protocol family not supported */ +#define EAFNOSUPPORT 97 /* Address family not supported by protocol */ +#define EADDRINUSE 98 /* Address already in use */ +#define EADDRNOTAVAIL 99 /* Cannot assign requested address */ +#define ENETDOWN 100 /* Network is down */ +#define ENETUNREACH 101 /* Network is unreachable */ +#define ENETRESET 102 /* Network dropped connection because of reset */ +#define ECONNABORTED 103 /* Software caused connection abort */ +#define ECONNRESET 104 /* Connection reset by peer */ +#define ENOBUFS 105 /* No buffer space available */ +#define EISCONN 106 /* Transport endpoint is already connected */ +#define ENOTCONN 107 /* Transport endpoint is not connected */ +#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ +#define ETOOMANYREFS 109 /* Too many references: cannot splice */ +#define ETIMEDOUT 110 /* Connection timed out */ +#define ECONNREFUSED 111 /* Connection refused */ +#define EHOSTDOWN 112 /* Host is down */ +#define EHOSTUNREACH 113 /* No route to host */ +#define EALREADY 114 /* Operation already in progress */ +#define EINPROGRESS 115 /* Operation now in progress */ +#define ESTALE 116 /* Stale NFS file handle */ +#define EUCLEAN 117 /* Structure needs cleaning */ +#define ENOTNAM 118 /* Not a XENIX named type file */ +#define ENAVAIL 119 /* No XENIX semaphores available */ +#define EISNAM 120 /* Is a named type file */ +#define EREMOTEIO 121 /* Remote I/O error */ +#define EDQUOT 122 /* Quota exceeded */ + +#define ENOMEDIUM 123 /* No medium found */ +#define EMEDIUMTYPE 124 /* Wrong medium type */ + +#ifndef errno +extern int errno; +#endif + +#else /* LWIP_PROVIDE_ERRNO */ + +/* Define LWIP_ERRNO_STDINCLUDE if you want to include here */ +#ifdef LWIP_ERRNO_STDINCLUDE +#include +#else /* LWIP_ERRNO_STDINCLUDE */ +/* Define LWIP_ERRNO_INCLUDE to an equivalent of to include the error defines here */ +#ifdef LWIP_ERRNO_INCLUDE +#include LWIP_ERRNO_INCLUDE +#endif /* LWIP_ERRNO_INCLUDE */ +#endif /* LWIP_ERRNO_STDINCLUDE */ + +#endif /* LWIP_PROVIDE_ERRNO */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_ERRNO_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/etharp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/etharp.h new file mode 100644 index 000000000..b018f0742 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/etharp.h @@ -0,0 +1,105 @@ +/** + * @file + * Ethernet output function - handles OUTGOING ethernet level traffic, implements + * ARP resolving. + * To be used in most low-level netif implementations + */ + +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * Copyright (c) 2003-2004 Leon Woestenberg + * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#ifndef LWIP_HDR_NETIF_ETHARP_H +#define LWIP_HDR_NETIF_ETHARP_H + +#include "lwip/opt.h" + +#if LWIP_ARP || LWIP_ETHERNET /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/pbuf.h" +#include "lwip/ip4_addr.h" +#include "lwip/netif.h" +#include "lwip/ip4.h" +#include "lwip/prot/ethernet.h" + +#if LWIP_IPV4 && LWIP_ARP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/prot/etharp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** 1 seconds period */ +#define ARP_TMR_INTERVAL 1000 + +#if ARP_QUEUEING +/** struct for queueing outgoing packets for unknown address + * defined here to be accessed by memp.h + */ +struct etharp_q_entry { + struct etharp_q_entry *next; + struct pbuf *p; +}; +#endif /* ARP_QUEUEING */ + +#define etharp_init() /* Compatibility define, no init needed. */ +void etharp_tmr(void); +ssize_t etharp_find_addr(struct netif *netif, const ip4_addr_t *ipaddr, + struct eth_addr **eth_ret, const ip4_addr_t **ip_ret); +int etharp_get_entry(size_t i, ip4_addr_t **ipaddr, struct netif **netif, struct eth_addr **eth_ret); +err_t etharp_output(struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr); +err_t etharp_query(struct netif *netif, const ip4_addr_t *ipaddr, struct pbuf *q); +err_t etharp_request(struct netif *netif, const ip4_addr_t *ipaddr); +/** For Ethernet network interfaces, we might want to send "gratuitous ARP"; + * this is an ARP packet sent by a node in order to spontaneously cause other + * nodes to update an entry in their ARP cache. + * From RFC 3220 "IP Mobility Support for IPv4" section 4.6. */ +#define etharp_gratuitous(netif) etharp_request((netif), netif_ip4_addr(netif)) +void etharp_cleanup_netif(struct netif *netif); + +#if ETHARP_SUPPORT_STATIC_ENTRIES +err_t etharp_add_static_entry(const ip4_addr_t *ipaddr, struct eth_addr *ethaddr); +err_t etharp_remove_static_entry(const ip4_addr_t *ipaddr); +#endif /* ETHARP_SUPPORT_STATIC_ENTRIES */ + +void etharp_input(struct pbuf *p, struct netif *netif); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV4 && LWIP_ARP */ +#endif /* LWIP_ARP || LWIP_ETHERNET */ + +#endif /* LWIP_HDR_NETIF_ETHARP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ethip6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ethip6.h new file mode 100644 index 000000000..f393c9cda --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ethip6.h @@ -0,0 +1,68 @@ +/** + * @file + * + * Ethernet output for IPv6. Uses ND tables for link-layer addressing. + */ + +/* + * Copyright (c) 2010 Inico Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Ivan Delamer + * + * + * Please coordinate changes and requests with Ivan Delamer + * + */ + +#ifndef LWIP_HDR_ETHIP6_H +#define LWIP_HDR_ETHIP6_H + +#include "lwip/opt.h" + +#if LWIP_IPV6 && LWIP_ETHERNET /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/pbuf.h" +#include "lwip/ip6.h" +#include "lwip/ip6_addr.h" +#include "lwip/netif.h" + + +#ifdef __cplusplus +extern "C" { +#endif + + +err_t ethip6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV6 && LWIP_ETHERNET */ + +#endif /* LWIP_HDR_ETHIP6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/icmp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/icmp.h new file mode 100644 index 000000000..d0d67b690 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/icmp.h @@ -0,0 +1,110 @@ +/** + * @file + * ICMP API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_ICMP_H +#define LWIP_HDR_ICMP_H + +#include "lwip/opt.h" +#include "lwip/pbuf.h" +#include "lwip/ip_addr.h" +#include "lwip/netif.h" +#include "lwip/prot/icmp.h" + +#if LWIP_IPV6 && LWIP_ICMP6 +#include "lwip/icmp6.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** ICMP destination unreachable codes */ +enum icmp_dur_type { + /** net unreachable */ + ICMP_DUR_NET = 0, + /** host unreachable */ + ICMP_DUR_HOST = 1, + /** protocol unreachable */ + ICMP_DUR_PROTO = 2, + /** port unreachable */ + ICMP_DUR_PORT = 3, + /** fragmentation needed and DF set */ + ICMP_DUR_FRAG = 4, + /** source route failed */ + ICMP_DUR_SR = 5 +}; + +/** ICMP time exceeded codes */ +enum icmp_te_type { + /** time to live exceeded in transit */ + ICMP_TE_TTL = 0, + /** fragment reassembly time exceeded */ + ICMP_TE_FRAG = 1 +}; + +#if LWIP_IPV4 && LWIP_ICMP /* don't build if not configured for use in lwipopts.h */ + +void icmp_input(struct pbuf *p, struct netif *inp); +void icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t); +void icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t); + +#endif /* LWIP_IPV4 && LWIP_ICMP */ + +#if LWIP_IPV4 && LWIP_IPV6 +#if LWIP_ICMP && LWIP_ICMP6 +#define icmp_port_unreach(isipv6, pbuf) ((isipv6) ? \ + icmp6_dest_unreach(pbuf, ICMP6_DUR_PORT) : \ + icmp_dest_unreach(pbuf, ICMP_DUR_PORT)) +#elif LWIP_ICMP +#define icmp_port_unreach(isipv6, pbuf) do{ if(!(isipv6)) { icmp_dest_unreach(pbuf, ICMP_DUR_PORT);}}while(0) +#elif LWIP_ICMP6 +#define icmp_port_unreach(isipv6, pbuf) do{ if(isipv6) { icmp6_dest_unreach(pbuf, ICMP6_DUR_PORT);}}while(0) +#else +#define icmp_port_unreach(isipv6, pbuf) +#endif +#elif LWIP_IPV6 && LWIP_ICMP6 +#define icmp_port_unreach(isipv6, pbuf) icmp6_dest_unreach(pbuf, ICMP6_DUR_PORT) +#elif LWIP_IPV4 && LWIP_ICMP +#define icmp_port_unreach(isipv6, pbuf) icmp_dest_unreach(pbuf, ICMP_DUR_PORT) +#else /* (LWIP_IPV6 && LWIP_ICMP6) || (LWIP_IPV4 && LWIP_ICMP) */ +#define icmp_port_unreach(isipv6, pbuf) +#endif /* (LWIP_IPV6 && LWIP_ICMP6) || (LWIP_IPV4 && LWIP_ICMP) LWIP_IPV4*/ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_ICMP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/icmp6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/icmp6.h new file mode 100644 index 000000000..cb383d937 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/icmp6.h @@ -0,0 +1,72 @@ +/** + * @file + * + * IPv6 version of ICMP, as per RFC 4443. + */ + +/* + * Copyright (c) 2010 Inico Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Ivan Delamer + * + * + * Please coordinate changes and requests with Ivan Delamer + * + */ +#ifndef LWIP_HDR_ICMP6_H +#define LWIP_HDR_ICMP6_H + +#include "lwip/opt.h" +#include "lwip/pbuf.h" +#include "lwip/ip6_addr.h" +#include "lwip/netif.h" +#include "lwip/prot/icmp6.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_ICMP6 && LWIP_IPV6 /* don't build if not configured for use in lwipopts.h */ + +void icmp6_input(struct pbuf *p, struct netif *inp); +void icmp6_dest_unreach(struct pbuf *p, enum icmp6_dur_code c); +void icmp6_packet_too_big(struct pbuf *p, u32_t mtu); +void icmp6_time_exceeded(struct pbuf *p, enum icmp6_te_code c); +void icmp6_time_exceeded_with_addrs(struct pbuf *p, enum icmp6_te_code c, + const ip6_addr_t *src_addr, const ip6_addr_t *dest_addr); +void icmp6_param_problem(struct pbuf *p, enum icmp6_pp_code c, const void *pointer); + +#endif /* LWIP_ICMP6 && LWIP_IPV6 */ + + +#ifdef __cplusplus +} +#endif + + +#endif /* LWIP_HDR_ICMP6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/if_api.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/if_api.h new file mode 100644 index 000000000..d8261f77f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/if_api.h @@ -0,0 +1,68 @@ +/** + * @file + * Interface Identification APIs from: + * RFC 3493: Basic Socket Interface Extensions for IPv6 + * Section 4: Interface Identification + */ + +/* + * Copyright (c) 2017 Joel Cunningham, Garmin International, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Joel Cunningham + * + */ +#ifndef LWIP_HDR_IF_H +#define LWIP_HDR_IF_H + +#include "lwip/opt.h" + +#if LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/netif.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define IF_NAMESIZE NETIF_NAMESIZE + +char * lwip_if_indextoname(unsigned int ifindex, char *ifname); +unsigned int lwip_if_nametoindex(const char *ifname); + +#if LWIP_COMPAT_SOCKETS +#define if_indextoname(ifindex, ifname) lwip_if_indextoname(ifindex,ifname) +#define if_nametoindex(ifname) lwip_if_nametoindex(ifname) +#endif /* LWIP_COMPAT_SOCKETS */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_SOCKET */ + +#endif /* LWIP_HDR_IF_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/igmp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/igmp.h new file mode 100644 index 000000000..ca52a2d32 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/igmp.h @@ -0,0 +1,115 @@ +/** + * @file + * IGMP API + */ + +/* + * Copyright (c) 2002 CITEL Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of CITEL Technologies Ltd nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CITEL TECHNOLOGIES AND CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CITEL TECHNOLOGIES OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is a contribution to the lwIP TCP/IP stack. + * The Swedish Institute of Computer Science and Adam Dunkels + * are specifically granted permission to redistribute this + * source code. +*/ + +#ifndef LWIP_HDR_IGMP_H +#define LWIP_HDR_IGMP_H + +#include "lwip/opt.h" +#include "lwip/ip_addr.h" +#include "lwip/netif.h" +#include "lwip/pbuf.h" + +#if LWIP_IPV4 && LWIP_IGMP /* don't build if not configured for use in lwipopts.h */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* IGMP timer */ +#define IGMP_TMR_INTERVAL 100 /* Milliseconds */ +#define IGMP_V1_DELAYING_MEMBER_TMR (1000/IGMP_TMR_INTERVAL) +#define IGMP_JOIN_DELAYING_MEMBER_TMR (500 /IGMP_TMR_INTERVAL) + +/* Compatibility defines (don't use for new code) */ +#define IGMP_DEL_MAC_FILTER NETIF_DEL_MAC_FILTER +#define IGMP_ADD_MAC_FILTER NETIF_ADD_MAC_FILTER + +/** + * igmp group structure - there is + * a list of groups for each interface + * these should really be linked from the interface, but + * if we keep them separate we will not affect the lwip original code + * too much + * + * There will be a group for the all systems group address but this + * will not run the state machine as it is used to kick off reports + * from all the other groups + */ +struct igmp_group { + /** next link */ + struct igmp_group *next; + /** multicast address */ + ip4_addr_t group_address; + /** signifies we were the last person to report */ + u8_t last_reporter_flag; + /** current state of the group */ + u8_t group_state; + /** timer for reporting, negative is OFF */ + u16_t timer; + /** counter of simultaneous uses */ + u8_t use; +}; + +/* Prototypes */ +void igmp_init(void); +err_t igmp_start(struct netif *netif); +err_t igmp_stop(struct netif *netif); +void igmp_report_groups(struct netif *netif); +struct igmp_group *igmp_lookfor_group(struct netif *ifp, const ip4_addr_t *addr); +void igmp_input(struct pbuf *p, struct netif *inp, const ip4_addr_t *dest); +err_t igmp_joingroup(const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr); +err_t igmp_joingroup_netif(struct netif *netif, const ip4_addr_t *groupaddr); +err_t igmp_leavegroup(const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr); +err_t igmp_leavegroup_netif(struct netif *netif, const ip4_addr_t *groupaddr); +void igmp_tmr(void); + +/** @ingroup igmp + * Get list head of IGMP groups for netif. + * Note: The allsystems group IP is contained in the list as first entry. + * @see @ref netif_set_igmp_mac_filter() + */ +#define netif_igmp_data(netif) ((struct igmp_group *)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_IGMP)) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV4 && LWIP_IGMP */ + +#endif /* LWIP_HDR_IGMP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/inet.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/inet.h new file mode 100644 index 000000000..36f6ec73d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/inet.h @@ -0,0 +1,169 @@ +/** + * @file + * This file (together with sockets.h) aims to provide structs and functions from + * - arpa/inet.h + * - netinet/in.h + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_INET_H +#define LWIP_HDR_INET_H + +#include "lwip/opt.h" +#include "lwip/def.h" +#include "lwip/ip_addr.h" +#include "lwip/ip6_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* If your port already typedef's in_addr_t, define IN_ADDR_T_DEFINED + to prevent this code from redefining it. */ +#if !defined(in_addr_t) && !defined(IN_ADDR_T_DEFINED) +typedef u32_t in_addr_t; +#endif + +struct in_addr { + in_addr_t s_addr; +}; + +struct in6_addr { + union { + u32_t u32_addr[4]; + u8_t u8_addr[16]; + } un; +#define s6_addr un.u8_addr +}; + +/** 255.255.255.255 */ +#define INADDR_NONE IPADDR_NONE +/** 127.0.0.1 */ +#define INADDR_LOOPBACK IPADDR_LOOPBACK +/** 0.0.0.0 */ +#define INADDR_ANY IPADDR_ANY +/** 255.255.255.255 */ +#define INADDR_BROADCAST IPADDR_BROADCAST + +/** This macro can be used to initialize a variable of type struct in6_addr + to the IPv6 wildcard address. */ +#define IN6ADDR_ANY_INIT {{{0,0,0,0}}} +/** This macro can be used to initialize a variable of type struct in6_addr + to the IPv6 loopback address. */ +#define IN6ADDR_LOOPBACK_INIT {{{0,0,0,PP_HTONL(1)}}} +/** This variable is initialized by the system to contain the wildcard IPv6 address. */ +extern const struct in6_addr in6addr_any; + +/* Definitions of the bits in an (IPv4) Internet address integer. + + On subnets, host and network parts are found according to + the subnet mask, not these masks. */ +#define IN_CLASSA(a) IP_CLASSA(a) +#define IN_CLASSA_NET IP_CLASSA_NET +#define IN_CLASSA_NSHIFT IP_CLASSA_NSHIFT +#define IN_CLASSA_HOST IP_CLASSA_HOST +#define IN_CLASSA_MAX IP_CLASSA_MAX + +#define IN_CLASSB(b) IP_CLASSB(b) +#define IN_CLASSB_NET IP_CLASSB_NET +#define IN_CLASSB_NSHIFT IP_CLASSB_NSHIFT +#define IN_CLASSB_HOST IP_CLASSB_HOST +#define IN_CLASSB_MAX IP_CLASSB_MAX + +#define IN_CLASSC(c) IP_CLASSC(c) +#define IN_CLASSC_NET IP_CLASSC_NET +#define IN_CLASSC_NSHIFT IP_CLASSC_NSHIFT +#define IN_CLASSC_HOST IP_CLASSC_HOST +#define IN_CLASSC_MAX IP_CLASSC_MAX + +#define IN_CLASSD(d) IP_CLASSD(d) +#define IN_CLASSD_NET IP_CLASSD_NET /* These ones aren't really */ +#define IN_CLASSD_NSHIFT IP_CLASSD_NSHIFT /* net and host fields, but */ +#define IN_CLASSD_HOST IP_CLASSD_HOST /* routing needn't know. */ +#define IN_CLASSD_MAX IP_CLASSD_MAX + +#define IN_MULTICAST(a) IP_MULTICAST(a) + +#define IN_EXPERIMENTAL(a) IP_EXPERIMENTAL(a) +#define IN_BADCLASS(a) IP_BADCLASS(a) + +#define IN_LOOPBACKNET IP_LOOPBACKNET + + +#ifndef INET_ADDRSTRLEN +#define INET_ADDRSTRLEN IP4ADDR_STRLEN_MAX +#endif +#if LWIP_IPV6 +#ifndef INET6_ADDRSTRLEN +#define INET6_ADDRSTRLEN IP6ADDR_STRLEN_MAX +#endif +#endif + +#if LWIP_IPV4 + +#define inet_addr_from_ip4addr(target_inaddr, source_ipaddr) ((target_inaddr)->s_addr = ip4_addr_get_u32(source_ipaddr)) +#define inet_addr_to_ip4addr(target_ipaddr, source_inaddr) (ip4_addr_set_u32(target_ipaddr, (source_inaddr)->s_addr)) + +/* directly map this to the lwip internal functions */ +#define inet_addr(cp) ipaddr_addr(cp) +#define inet_aton(cp, addr) ip4addr_aton(cp, (ip4_addr_t*)addr) +#define inet_ntoa(addr) ip4addr_ntoa((const ip4_addr_t*)&(addr)) +#define inet_ntoa_r(addr, buf, buflen) ip4addr_ntoa_r((const ip4_addr_t*)&(addr), buf, buflen) + +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV6 +#define inet6_addr_from_ip6addr(target_in6addr, source_ip6addr) {(target_in6addr)->un.u32_addr[0] = (source_ip6addr)->addr[0]; \ + (target_in6addr)->un.u32_addr[1] = (source_ip6addr)->addr[1]; \ + (target_in6addr)->un.u32_addr[2] = (source_ip6addr)->addr[2]; \ + (target_in6addr)->un.u32_addr[3] = (source_ip6addr)->addr[3];} +#define inet6_addr_to_ip6addr(target_ip6addr, source_in6addr) {(target_ip6addr)->addr[0] = (source_in6addr)->un.u32_addr[0]; \ + (target_ip6addr)->addr[1] = (source_in6addr)->un.u32_addr[1]; \ + (target_ip6addr)->addr[2] = (source_in6addr)->un.u32_addr[2]; \ + (target_ip6addr)->addr[3] = (source_in6addr)->un.u32_addr[3]; \ + ip6_addr_clear_zone(target_ip6addr);} + +/* directly map this to the lwip internal functions */ +#define inet6_aton(cp, addr) ip6addr_aton(cp, (ip6_addr_t*)addr) +#define inet6_ntoa(addr) ip6addr_ntoa((const ip6_addr_t*)&(addr)) +#define inet6_ntoa_r(addr, buf, buflen) ip6addr_ntoa_r((const ip6_addr_t*)&(addr), buf, buflen) + +#endif /* LWIP_IPV6 */ + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_INET_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/inet_chksum.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/inet_chksum.h new file mode 100644 index 000000000..46ec2ae6d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/inet_chksum.h @@ -0,0 +1,105 @@ +/** + * @file + * IP checksum calculation functions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_INET_CHKSUM_H +#define LWIP_HDR_INET_CHKSUM_H + +#include "lwip/opt.h" + +#include "lwip/pbuf.h" +#include "lwip/ip_addr.h" + +/** Swap the bytes in an u16_t: much like lwip_htons() for little-endian */ +#ifndef SWAP_BYTES_IN_WORD +#define SWAP_BYTES_IN_WORD(w) (((w) & 0xff) << 8) | (((w) & 0xff00) >> 8) +#endif /* SWAP_BYTES_IN_WORD */ + +/** Split an u32_t in two u16_ts and add them up */ +#ifndef FOLD_U32T +#define FOLD_U32T(u) ((u32_t)(((u) >> 16) + ((u) & 0x0000ffffUL))) +#endif + +#if LWIP_CHECKSUM_ON_COPY +/** Function-like macro: same as MEMCPY but returns the checksum of copied data + as u16_t */ +# ifndef LWIP_CHKSUM_COPY +# define LWIP_CHKSUM_COPY(dst, src, len) lwip_chksum_copy(dst, src, len) +# ifndef LWIP_CHKSUM_COPY_ALGORITHM +# define LWIP_CHKSUM_COPY_ALGORITHM 1 +# endif /* LWIP_CHKSUM_COPY_ALGORITHM */ +# else /* LWIP_CHKSUM_COPY */ +# define LWIP_CHKSUM_COPY_ALGORITHM 0 +# endif /* LWIP_CHKSUM_COPY */ +#else /* LWIP_CHECKSUM_ON_COPY */ +# define LWIP_CHKSUM_COPY_ALGORITHM 0 +#endif /* LWIP_CHECKSUM_ON_COPY */ + +#ifdef __cplusplus +extern "C" { +#endif + +u16_t inet_chksum(const void *dataptr, u16_t len); +u16_t inet_chksum_pbuf(struct pbuf *p); +#if LWIP_CHKSUM_COPY_ALGORITHM +u16_t lwip_chksum_copy(void *dst, const void *src, u16_t len); +#endif /* LWIP_CHKSUM_COPY_ALGORITHM */ + +#if LWIP_IPV4 +u16_t inet_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len, + const ip4_addr_t *src, const ip4_addr_t *dest); +u16_t inet_chksum_pseudo_partial(struct pbuf *p, u8_t proto, + u16_t proto_len, u16_t chksum_len, const ip4_addr_t *src, const ip4_addr_t *dest); +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV6 +u16_t ip6_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len, + const ip6_addr_t *src, const ip6_addr_t *dest); +u16_t ip6_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len, + u16_t chksum_len, const ip6_addr_t *src, const ip6_addr_t *dest); +#endif /* LWIP_IPV6 */ + + +u16_t ip_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len, + const ip_addr_t *src, const ip_addr_t *dest); +u16_t ip_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len, + u16_t chksum_len, const ip_addr_t *src, const ip_addr_t *dest); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_INET_H */ + diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/init.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/init.h new file mode 100644 index 000000000..48c256bcc --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/init.h @@ -0,0 +1,100 @@ +/** + * @file + * lwIP initialization API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_INIT_H +#define LWIP_HDR_INIT_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup lwip_version Version + * @ingroup lwip + * @{ + */ + +/** X.x.x: Major version of the stack */ +#define LWIP_VERSION_MAJOR 2 +/** x.X.x: Minor version of the stack */ +#define LWIP_VERSION_MINOR 1 +/** x.x.X: Revision of the stack */ +#define LWIP_VERSION_REVISION 2 +/** For release candidates, this is set to 1..254 + * For official releases, this is set to 255 (LWIP_RC_RELEASE) + * For development versions (Git), this is set to 0 (LWIP_RC_DEVELOPMENT) */ +#define LWIP_VERSION_RC LWIP_RC_RELEASE + +/** LWIP_VERSION_RC is set to LWIP_RC_RELEASE for official releases */ +#define LWIP_RC_RELEASE 255 +/** LWIP_VERSION_RC is set to LWIP_RC_DEVELOPMENT for Git versions */ +#define LWIP_RC_DEVELOPMENT 0 + +#define LWIP_VERSION_IS_RELEASE (LWIP_VERSION_RC == LWIP_RC_RELEASE) +#define LWIP_VERSION_IS_DEVELOPMENT (LWIP_VERSION_RC == LWIP_RC_DEVELOPMENT) +#define LWIP_VERSION_IS_RC ((LWIP_VERSION_RC != LWIP_RC_RELEASE) && (LWIP_VERSION_RC != LWIP_RC_DEVELOPMENT)) + +/* Some helper defines to get a version string */ +#define LWIP_VERSTR2(x) #x +#define LWIP_VERSTR(x) LWIP_VERSTR2(x) +#if LWIP_VERSION_IS_RELEASE +#define LWIP_VERSION_STRING_SUFFIX "" +#elif LWIP_VERSION_IS_DEVELOPMENT +#define LWIP_VERSION_STRING_SUFFIX "d" +#else +#define LWIP_VERSION_STRING_SUFFIX "rc" LWIP_VERSTR(LWIP_VERSION_RC) +#endif + +/** Provides the version of the stack */ +#define LWIP_VERSION ((LWIP_VERSION_MAJOR) << 24 | (LWIP_VERSION_MINOR) << 16 | \ + (LWIP_VERSION_REVISION) << 8 | (LWIP_VERSION_RC)) +/** Provides the version of the stack as string */ +#define LWIP_VERSION_STRING LWIP_VERSTR(LWIP_VERSION_MAJOR) "." LWIP_VERSTR(LWIP_VERSION_MINOR) "." LWIP_VERSTR(LWIP_VERSION_REVISION) LWIP_VERSION_STRING_SUFFIX + +/** + * @} + */ + +/* Modules initialization */ +void lwip_init(void); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_INIT_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip.h new file mode 100644 index 000000000..28889d54d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip.h @@ -0,0 +1,330 @@ +/** + * @file + * IP API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_IP_H +#define LWIP_HDR_IP_H + +#include "lwip/opt.h" + +#include "lwip/def.h" +#include "lwip/pbuf.h" +#include "lwip/ip_addr.h" +#include "lwip/err.h" +#include "lwip/netif.h" +#include "lwip/ip4.h" +#include "lwip/ip6.h" +#include "lwip/prot/ip.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* This is passed as the destination address to ip_output_if (not + to ip_output), meaning that an IP header already is constructed + in the pbuf. This is used when TCP retransmits. */ +#define LWIP_IP_HDRINCL NULL + +/** pbufs passed to IP must have a ref-count of 1 as their payload pointer + gets altered as the packet is passed down the stack */ +#ifndef LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX +#define LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX(p) LWIP_ASSERT("p->ref == 1", (p)->ref == 1) +#endif + +#if LWIP_NETIF_USE_HINTS +#define IP_PCB_NETIFHINT ;struct netif_hint netif_hints +#else /* LWIP_NETIF_USE_HINTS */ +#define IP_PCB_NETIFHINT +#endif /* LWIP_NETIF_USE_HINTS */ + +/** This is the common part of all PCB types. It needs to be at the + beginning of a PCB type definition. It is located here so that + changes to this common part are made in one location instead of + having to change all PCB structs. */ +#define IP_PCB \ + /* ip addresses in network byte order */ \ + ip_addr_t local_ip; \ + ip_addr_t remote_ip; \ + /* Bound netif index */ \ + u8_t netif_idx; \ + /* Socket options */ \ + u8_t so_options; \ + /* Type Of Service */ \ + u8_t tos; \ + /* Time To Live */ \ + u8_t ttl \ + /* link layer address resolution hint */ \ + IP_PCB_NETIFHINT + +struct ip_pcb { + /* Common members of all PCB types */ + IP_PCB; +}; + +/* + * Option flags per-socket. These are the same like SO_XXX in sockets.h + */ +#define SOF_REUSEADDR 0x04U /* allow local address reuse */ +#define SOF_KEEPALIVE 0x08U /* keep connections alive */ +#define SOF_BROADCAST 0x20U /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */ + +/* These flags are inherited (e.g. from a listen-pcb to a connection-pcb): */ +#define SOF_INHERITED (SOF_REUSEADDR|SOF_KEEPALIVE) + +/** Global variables of this module, kept in a struct for efficient access using base+index. */ +struct ip_globals +{ + /** The interface that accepted the packet for the current callback invocation. */ + struct netif *current_netif; + /** The interface that received the packet for the current callback invocation. */ + struct netif *current_input_netif; +#if LWIP_IPV4 + /** Header of the input packet currently being processed. */ + const struct ip_hdr *current_ip4_header; +#endif /* LWIP_IPV4 */ +#if LWIP_IPV6 + /** Header of the input IPv6 packet currently being processed. */ + struct ip6_hdr *current_ip6_header; +#endif /* LWIP_IPV6 */ + /** Total header length of current_ip4/6_header (i.e. after this, the UDP/TCP header starts) */ + u16_t current_ip_header_tot_len; + /** Source IP address of current_header */ + ip_addr_t current_iphdr_src; + /** Destination IP address of current_header */ + ip_addr_t current_iphdr_dest; +}; +extern struct ip_globals ip_data; + + +/** Get the interface that accepted the current packet. + * This may or may not be the receiving netif, depending on your netif/network setup. + * This function must only be called from a receive callback (udp_recv, + * raw_recv, tcp_accept). It will return NULL otherwise. */ +#define ip_current_netif() (ip_data.current_netif) +/** Get the interface that received the current packet. + * This function must only be called from a receive callback (udp_recv, + * raw_recv, tcp_accept). It will return NULL otherwise. */ +#define ip_current_input_netif() (ip_data.current_input_netif) +/** Total header length of ip(6)_current_header() (i.e. after this, the UDP/TCP header starts) */ +#define ip_current_header_tot_len() (ip_data.current_ip_header_tot_len) +/** Source IP address of current_header */ +#define ip_current_src_addr() (&ip_data.current_iphdr_src) +/** Destination IP address of current_header */ +#define ip_current_dest_addr() (&ip_data.current_iphdr_dest) + +#if LWIP_IPV4 && LWIP_IPV6 +/** Get the IPv4 header of the current packet. + * This function must only be called from a receive callback (udp_recv, + * raw_recv, tcp_accept). It will return NULL otherwise. */ +#define ip4_current_header() ip_data.current_ip4_header +/** Get the IPv6 header of the current packet. + * This function must only be called from a receive callback (udp_recv, + * raw_recv, tcp_accept). It will return NULL otherwise. */ +#define ip6_current_header() ((const struct ip6_hdr*)(ip_data.current_ip6_header)) +/** Returns TRUE if the current IP input packet is IPv6, FALSE if it is IPv4 */ +#define ip_current_is_v6() (ip6_current_header() != NULL) +/** Source IPv6 address of current_header */ +#define ip6_current_src_addr() (ip_2_ip6(&ip_data.current_iphdr_src)) +/** Destination IPv6 address of current_header */ +#define ip6_current_dest_addr() (ip_2_ip6(&ip_data.current_iphdr_dest)) +/** Get the transport layer protocol */ +#define ip_current_header_proto() (ip_current_is_v6() ? \ + IP6H_NEXTH(ip6_current_header()) :\ + IPH_PROTO(ip4_current_header())) +/** Get the transport layer header */ +#define ip_next_header_ptr() ((const void*)((ip_current_is_v6() ? \ + (const u8_t*)ip6_current_header() : (const u8_t*)ip4_current_header()) + ip_current_header_tot_len())) + +/** Source IP4 address of current_header */ +#define ip4_current_src_addr() (ip_2_ip4(&ip_data.current_iphdr_src)) +/** Destination IP4 address of current_header */ +#define ip4_current_dest_addr() (ip_2_ip4(&ip_data.current_iphdr_dest)) + +#elif LWIP_IPV4 /* LWIP_IPV4 && LWIP_IPV6 */ + +/** Get the IPv4 header of the current packet. + * This function must only be called from a receive callback (udp_recv, + * raw_recv, tcp_accept). It will return NULL otherwise. */ +#define ip4_current_header() ip_data.current_ip4_header +/** Always returns FALSE when only supporting IPv4 only */ +#define ip_current_is_v6() 0 +/** Get the transport layer protocol */ +#define ip_current_header_proto() IPH_PROTO(ip4_current_header()) +/** Get the transport layer header */ +#define ip_next_header_ptr() ((const void*)((const u8_t*)ip4_current_header() + ip_current_header_tot_len())) +/** Source IP4 address of current_header */ +#define ip4_current_src_addr() (&ip_data.current_iphdr_src) +/** Destination IP4 address of current_header */ +#define ip4_current_dest_addr() (&ip_data.current_iphdr_dest) + +#elif LWIP_IPV6 /* LWIP_IPV4 && LWIP_IPV6 */ + +/** Get the IPv6 header of the current packet. + * This function must only be called from a receive callback (udp_recv, + * raw_recv, tcp_accept). It will return NULL otherwise. */ +#define ip6_current_header() ((const struct ip6_hdr*)(ip_data.current_ip6_header)) +/** Always returns TRUE when only supporting IPv6 only */ +#define ip_current_is_v6() 1 +/** Get the transport layer protocol */ +#define ip_current_header_proto() IP6H_NEXTH(ip6_current_header()) +/** Get the transport layer header */ +#define ip_next_header_ptr() ((const void*)(((const u8_t*)ip6_current_header()) + ip_current_header_tot_len())) +/** Source IP6 address of current_header */ +#define ip6_current_src_addr() (&ip_data.current_iphdr_src) +/** Destination IP6 address of current_header */ +#define ip6_current_dest_addr() (&ip_data.current_iphdr_dest) + +#endif /* LWIP_IPV6 */ + +/** Union source address of current_header */ +#define ip_current_src_addr() (&ip_data.current_iphdr_src) +/** Union destination address of current_header */ +#define ip_current_dest_addr() (&ip_data.current_iphdr_dest) + +/** Gets an IP pcb option (SOF_* flags) */ +#define ip_get_option(pcb, opt) ((pcb)->so_options & (opt)) +/** Sets an IP pcb option (SOF_* flags) */ +#define ip_set_option(pcb, opt) ((pcb)->so_options = (u8_t)((pcb)->so_options | (opt))) +/** Resets an IP pcb option (SOF_* flags) */ +#define ip_reset_option(pcb, opt) ((pcb)->so_options = (u8_t)((pcb)->so_options & ~(opt))) + +#if LWIP_IPV4 && LWIP_IPV6 +/** + * @ingroup ip + * Output IP packet, netif is selected by source address + */ +#define ip_output(p, src, dest, ttl, tos, proto) \ + (IP_IS_V6(dest) ? \ + ip6_output(p, ip_2_ip6(src), ip_2_ip6(dest), ttl, tos, proto) : \ + ip4_output(p, ip_2_ip4(src), ip_2_ip4(dest), ttl, tos, proto)) +/** + * @ingroup ip + * Output IP packet to specified interface + */ +#define ip_output_if(p, src, dest, ttl, tos, proto, netif) \ + (IP_IS_V6(dest) ? \ + ip6_output_if(p, ip_2_ip6(src), ip_2_ip6(dest), ttl, tos, proto, netif) : \ + ip4_output_if(p, ip_2_ip4(src), ip_2_ip4(dest), ttl, tos, proto, netif)) +/** + * @ingroup ip + * Output IP packet to interface specifying source address + */ +#define ip_output_if_src(p, src, dest, ttl, tos, proto, netif) \ + (IP_IS_V6(dest) ? \ + ip6_output_if_src(p, ip_2_ip6(src), ip_2_ip6(dest), ttl, tos, proto, netif) : \ + ip4_output_if_src(p, ip_2_ip4(src), ip_2_ip4(dest), ttl, tos, proto, netif)) +/** Output IP packet that already includes an IP header. */ +#define ip_output_if_hdrincl(p, src, dest, netif) \ + (IP_IS_V6(dest) ? \ + ip6_output_if(p, ip_2_ip6(src), LWIP_IP_HDRINCL, 0, 0, 0, netif) : \ + ip4_output_if(p, ip_2_ip4(src), LWIP_IP_HDRINCL, 0, 0, 0, netif)) +/** Output IP packet with netif_hint */ +#define ip_output_hinted(p, src, dest, ttl, tos, proto, netif_hint) \ + (IP_IS_V6(dest) ? \ + ip6_output_hinted(p, ip_2_ip6(src), ip_2_ip6(dest), ttl, tos, proto, netif_hint) : \ + ip4_output_hinted(p, ip_2_ip4(src), ip_2_ip4(dest), ttl, tos, proto, netif_hint)) +/** + * @ingroup ip + * Get netif for address combination. See \ref ip6_route and \ref ip4_route + */ +#define ip_route(src, dest) \ + (IP_IS_V6(dest) ? \ + ip6_route(ip_2_ip6(src), ip_2_ip6(dest)) : \ + ip4_route_src(ip_2_ip4(src), ip_2_ip4(dest))) +/** + * @ingroup ip + * Get netif for IP. + */ +#define ip_netif_get_local_ip(netif, dest) (IP_IS_V6(dest) ? \ + ip6_netif_get_local_ip(netif, ip_2_ip6(dest)) : \ + ip4_netif_get_local_ip(netif)) +#define ip_debug_print(is_ipv6, p) ((is_ipv6) ? ip6_debug_print(p) : ip4_debug_print(p)) + +err_t ip_input(struct pbuf *p, struct netif *inp); + +#elif LWIP_IPV4 /* LWIP_IPV4 && LWIP_IPV6 */ + +#define ip_output(p, src, dest, ttl, tos, proto) \ + ip4_output(p, src, dest, ttl, tos, proto) +#define ip_output_if(p, src, dest, ttl, tos, proto, netif) \ + ip4_output_if(p, src, dest, ttl, tos, proto, netif) +#define ip_output_if_src(p, src, dest, ttl, tos, proto, netif) \ + ip4_output_if_src(p, src, dest, ttl, tos, proto, netif) +#define ip_output_hinted(p, src, dest, ttl, tos, proto, netif_hint) \ + ip4_output_hinted(p, src, dest, ttl, tos, proto, netif_hint) +#define ip_output_if_hdrincl(p, src, dest, netif) \ + ip4_output_if(p, src, LWIP_IP_HDRINCL, 0, 0, 0, netif) +#define ip_route(src, dest) \ + ip4_route_src(src, dest) +#define ip_netif_get_local_ip(netif, dest) \ + ip4_netif_get_local_ip(netif) +#define ip_debug_print(is_ipv6, p) ip4_debug_print(p) + +#define ip_input ip4_input + +#elif LWIP_IPV6 /* LWIP_IPV4 && LWIP_IPV6 */ + +#define ip_output(p, src, dest, ttl, tos, proto) \ + ip6_output(p, src, dest, ttl, tos, proto) +#define ip_output_if(p, src, dest, ttl, tos, proto, netif) \ + ip6_output_if(p, src, dest, ttl, tos, proto, netif) +#define ip_output_if_src(p, src, dest, ttl, tos, proto, netif) \ + ip6_output_if_src(p, src, dest, ttl, tos, proto, netif) +#define ip_output_hinted(p, src, dest, ttl, tos, proto, netif_hint) \ + ip6_output_hinted(p, src, dest, ttl, tos, proto, netif_hint) +#define ip_output_if_hdrincl(p, src, dest, netif) \ + ip6_output_if(p, src, LWIP_IP_HDRINCL, 0, 0, 0, netif) +#define ip_route(src, dest) \ + ip6_route(src, dest) +#define ip_netif_get_local_ip(netif, dest) \ + ip6_netif_get_local_ip(netif, dest) +#define ip_debug_print(is_ipv6, p) ip6_debug_print(p) + +#define ip_input ip6_input + +#endif /* LWIP_IPV6 */ + +#define ip_route_get_local_ip(src, dest, netif, ipaddr) do { \ + (netif) = ip_route(src, dest); \ + (ipaddr) = ip_netif_get_local_ip(netif, dest); \ +}while(0) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_IP_H */ + + diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4.h new file mode 100644 index 000000000..6409c4be5 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4.h @@ -0,0 +1,111 @@ +/** + * @file + * IPv4 API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_IP4_H +#define LWIP_HDR_IP4_H + +#include "lwip/opt.h" + +#if LWIP_IPV4 + +#include "lwip/def.h" +#include "lwip/pbuf.h" +#include "lwip/ip4_addr.h" +#include "lwip/err.h" +#include "lwip/netif.h" +#include "lwip/prot/ip4.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef LWIP_HOOK_IP4_ROUTE_SRC +#define LWIP_IPV4_SRC_ROUTING 1 +#else +#define LWIP_IPV4_SRC_ROUTING 0 +#endif + +/** Currently, the function ip_output_if_opt() is only used with IGMP */ +#define IP_OPTIONS_SEND (LWIP_IPV4 && LWIP_IGMP) + +#define ip_init() /* Compatibility define, no init needed. */ +struct netif *ip4_route(const ip4_addr_t *dest); +#if LWIP_IPV4_SRC_ROUTING +struct netif *ip4_route_src(const ip4_addr_t *src, const ip4_addr_t *dest); +#else /* LWIP_IPV4_SRC_ROUTING */ +#define ip4_route_src(src, dest) ip4_route(dest) +#endif /* LWIP_IPV4_SRC_ROUTING */ +err_t ip4_input(struct pbuf *p, struct netif *inp); +err_t ip4_output(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto); +err_t ip4_output_if(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto, struct netif *netif); +err_t ip4_output_if_src(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto, struct netif *netif); +#if LWIP_NETIF_USE_HINTS +err_t ip4_output_hinted(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto, struct netif_hint *netif_hint); +#endif /* LWIP_NETIF_USE_HINTS */ +#if IP_OPTIONS_SEND +err_t ip4_output_if_opt(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options, + u16_t optlen); +err_t ip4_output_if_opt_src(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t *dest, + u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options, + u16_t optlen); +#endif /* IP_OPTIONS_SEND */ + +#if LWIP_MULTICAST_TX_OPTIONS +void ip4_set_default_multicast_netif(struct netif* default_multicast_netif); +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + +#define ip4_netif_get_local_ip(netif) (((netif) != NULL) ? netif_ip_addr4(netif) : NULL) + +#if IP_DEBUG +void ip4_debug_print(struct pbuf *p); +#else +#define ip4_debug_print(p) +#endif /* IP_DEBUG */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV4 */ + +#endif /* LWIP_HDR_IP_H */ + + diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4_addr.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4_addr.h new file mode 100644 index 000000000..9990756c5 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4_addr.h @@ -0,0 +1,216 @@ +/** + * @file + * IPv4 address API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_IP4_ADDR_H +#define LWIP_HDR_IP4_ADDR_H + +#include "lwip/opt.h" +#include "lwip/def.h" + +#if LWIP_IPV4 + +#ifdef __cplusplus +extern "C" { +#endif + +/** This is the aligned version of ip4_addr_t, + used as local variable, on the stack, etc. */ +struct ip4_addr { + u32_t addr; +}; + +/** ip4_addr_t uses a struct for convenience only, so that the same defines can + * operate both on ip4_addr_t as well as on ip4_addr_p_t. */ +typedef struct ip4_addr ip4_addr_t; + +/* Forward declaration to not include netif.h */ +struct netif; + +/** 255.255.255.255 */ +#define IPADDR_NONE ((u32_t)0xffffffffUL) +/** 127.0.0.1 */ +#define IPADDR_LOOPBACK ((u32_t)0x7f000001UL) +/** 0.0.0.0 */ +#define IPADDR_ANY ((u32_t)0x00000000UL) +/** 255.255.255.255 */ +#define IPADDR_BROADCAST ((u32_t)0xffffffffUL) + +/* Definitions of the bits in an Internet address integer. + + On subnets, host and network parts are found according to + the subnet mask, not these masks. */ +#define IP_CLASSA(a) ((((u32_t)(a)) & 0x80000000UL) == 0) +#define IP_CLASSA_NET 0xff000000 +#define IP_CLASSA_NSHIFT 24 +#define IP_CLASSA_HOST (0xffffffff & ~IP_CLASSA_NET) +#define IP_CLASSA_MAX 128 + +#define IP_CLASSB(a) ((((u32_t)(a)) & 0xc0000000UL) == 0x80000000UL) +#define IP_CLASSB_NET 0xffff0000 +#define IP_CLASSB_NSHIFT 16 +#define IP_CLASSB_HOST (0xffffffff & ~IP_CLASSB_NET) +#define IP_CLASSB_MAX 65536 + +#define IP_CLASSC(a) ((((u32_t)(a)) & 0xe0000000UL) == 0xc0000000UL) +#define IP_CLASSC_NET 0xffffff00 +#define IP_CLASSC_NSHIFT 8 +#define IP_CLASSC_HOST (0xffffffff & ~IP_CLASSC_NET) + +#define IP_CLASSD(a) (((u32_t)(a) & 0xf0000000UL) == 0xe0000000UL) +#define IP_CLASSD_NET 0xf0000000 /* These ones aren't really */ +#define IP_CLASSD_NSHIFT 28 /* net and host fields, but */ +#define IP_CLASSD_HOST 0x0fffffff /* routing needn't know. */ +#define IP_MULTICAST(a) IP_CLASSD(a) + +#define IP_EXPERIMENTAL(a) (((u32_t)(a) & 0xf0000000UL) == 0xf0000000UL) +#define IP_BADCLASS(a) (((u32_t)(a) & 0xf0000000UL) == 0xf0000000UL) + +#define IP_LOOPBACKNET 127 /* official! */ + +/** Set an IP address given by the four byte-parts */ +#define IP4_ADDR(ipaddr, a,b,c,d) (ipaddr)->addr = PP_HTONL(LWIP_MAKEU32(a,b,c,d)) + +/** Copy IP address - faster than ip4_addr_set: no NULL check */ +#define ip4_addr_copy(dest, src) ((dest).addr = (src).addr) +/** Safely copy one IP address to another (src may be NULL) */ +#define ip4_addr_set(dest, src) ((dest)->addr = \ + ((src) == NULL ? 0 : \ + (src)->addr)) +/** Set complete address to zero */ +#define ip4_addr_set_zero(ipaddr) ((ipaddr)->addr = 0) +/** Set address to IPADDR_ANY (no need for lwip_htonl()) */ +#define ip4_addr_set_any(ipaddr) ((ipaddr)->addr = IPADDR_ANY) +/** Set address to loopback address */ +#define ip4_addr_set_loopback(ipaddr) ((ipaddr)->addr = PP_HTONL(IPADDR_LOOPBACK)) +/** Check if an address is in the loopback region */ +#define ip4_addr_isloopback(ipaddr) (((ipaddr)->addr & PP_HTONL(IP_CLASSA_NET)) == PP_HTONL(((u32_t)IP_LOOPBACKNET) << 24)) +/** Safely copy one IP address to another and change byte order + * from host- to network-order. */ +#define ip4_addr_set_hton(dest, src) ((dest)->addr = \ + ((src) == NULL ? 0:\ + lwip_htonl((src)->addr))) +/** IPv4 only: set the IP address given as an u32_t */ +#define ip4_addr_set_u32(dest_ipaddr, src_u32) ((dest_ipaddr)->addr = (src_u32)) +/** IPv4 only: get the IP address as an u32_t */ +#define ip4_addr_get_u32(src_ipaddr) ((src_ipaddr)->addr) + +/** Get the network address by combining host address with netmask */ +#define ip4_addr_get_network(target, host, netmask) do { ((target)->addr = ((host)->addr) & ((netmask)->addr)); } while(0) + +/** + * Determine if two address are on the same network. + * + * @arg addr1 IP address 1 + * @arg addr2 IP address 2 + * @arg mask network identifier mask + * @return !0 if the network identifiers of both address match + */ +#define ip4_addr_netcmp(addr1, addr2, mask) (((addr1)->addr & \ + (mask)->addr) == \ + ((addr2)->addr & \ + (mask)->addr)) +#define ip4_addr_cmp(addr1, addr2) ((addr1)->addr == (addr2)->addr) + +#define ip4_addr_isany_val(addr1) ((addr1).addr == IPADDR_ANY) +#define ip4_addr_isany(addr1) ((addr1) == NULL || ip4_addr_isany_val(*(addr1))) + +#define ip4_addr_isbroadcast(addr1, netif) ip4_addr_isbroadcast_u32((addr1)->addr, netif) +u8_t ip4_addr_isbroadcast_u32(u32_t addr, const struct netif *netif); + +#define ip_addr_netmask_valid(netmask) ip4_addr_netmask_valid((netmask)->addr) +u8_t ip4_addr_netmask_valid(u32_t netmask); + +#define ip4_addr_ismulticast(addr1) (((addr1)->addr & PP_HTONL(0xf0000000UL)) == PP_HTONL(0xe0000000UL)) + +#define ip4_addr_islinklocal(addr1) (((addr1)->addr & PP_HTONL(0xffff0000UL)) == PP_HTONL(0xa9fe0000UL)) + +#define ip4_addr_debug_print_parts(debug, a, b, c, d) \ + LWIP_DEBUGF(debug, ("%" U16_F ".%" U16_F ".%" U16_F ".%" U16_F, a, b, c, d)) +#define ip4_addr_debug_print(debug, ipaddr) \ + ip4_addr_debug_print_parts(debug, \ + (u16_t)((ipaddr) != NULL ? ip4_addr1_16(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? ip4_addr2_16(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? ip4_addr3_16(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? ip4_addr4_16(ipaddr) : 0)) +#define ip4_addr_debug_print_val(debug, ipaddr) \ + ip4_addr_debug_print_parts(debug, \ + ip4_addr1_16_val(ipaddr), \ + ip4_addr2_16_val(ipaddr), \ + ip4_addr3_16_val(ipaddr), \ + ip4_addr4_16_val(ipaddr)) + +/* Get one byte from the 4-byte address */ +#define ip4_addr_get_byte(ipaddr, idx) (((const u8_t*)(&(ipaddr)->addr))[idx]) +#define ip4_addr1(ipaddr) ip4_addr_get_byte(ipaddr, 0) +#define ip4_addr2(ipaddr) ip4_addr_get_byte(ipaddr, 1) +#define ip4_addr3(ipaddr) ip4_addr_get_byte(ipaddr, 2) +#define ip4_addr4(ipaddr) ip4_addr_get_byte(ipaddr, 3) +/* Get one byte from the 4-byte address, but argument is 'ip4_addr_t', + * not a pointer */ +#define ip4_addr_get_byte_val(ipaddr, idx) ((u8_t)(((ipaddr).addr >> (idx * 8)) & 0xff)) +#define ip4_addr1_val(ipaddr) ip4_addr_get_byte_val(ipaddr, 0) +#define ip4_addr2_val(ipaddr) ip4_addr_get_byte_val(ipaddr, 1) +#define ip4_addr3_val(ipaddr) ip4_addr_get_byte_val(ipaddr, 2) +#define ip4_addr4_val(ipaddr) ip4_addr_get_byte_val(ipaddr, 3) +/* These are cast to u16_t, with the intent that they are often arguments + * to printf using the U16_F format from cc.h. */ +#define ip4_addr1_16(ipaddr) ((u16_t)ip4_addr1(ipaddr)) +#define ip4_addr2_16(ipaddr) ((u16_t)ip4_addr2(ipaddr)) +#define ip4_addr3_16(ipaddr) ((u16_t)ip4_addr3(ipaddr)) +#define ip4_addr4_16(ipaddr) ((u16_t)ip4_addr4(ipaddr)) +#define ip4_addr1_16_val(ipaddr) ((u16_t)ip4_addr1_val(ipaddr)) +#define ip4_addr2_16_val(ipaddr) ((u16_t)ip4_addr2_val(ipaddr)) +#define ip4_addr3_16_val(ipaddr) ((u16_t)ip4_addr3_val(ipaddr)) +#define ip4_addr4_16_val(ipaddr) ((u16_t)ip4_addr4_val(ipaddr)) + +#define IP4ADDR_STRLEN_MAX 16 + +/** For backwards compatibility */ +#define ip_ntoa(ipaddr) ipaddr_ntoa(ipaddr) + +u32_t ipaddr_addr(const char *cp); +int ip4addr_aton(const char *cp, ip4_addr_t *addr); +/** returns ptr to static buffer; not reentrant! */ +char *ip4addr_ntoa(const ip4_addr_t *addr); +char *ip4addr_ntoa_r(const ip4_addr_t *addr, char *buf, int buflen); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV4 */ + +#endif /* LWIP_HDR_IP_ADDR_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4_frag.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4_frag.h new file mode 100644 index 000000000..18cd2d05f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip4_frag.h @@ -0,0 +1,100 @@ +/** + * @file + * IP fragmentation/reassembly + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Jani Monoses + * + */ + +#ifndef LWIP_HDR_IP4_FRAG_H +#define LWIP_HDR_IP4_FRAG_H + +#include "lwip/opt.h" +#include "lwip/err.h" +#include "lwip/pbuf.h" +#include "lwip/netif.h" +#include "lwip/ip_addr.h" +#include "lwip/ip.h" + +#if LWIP_IPV4 + +#ifdef __cplusplus +extern "C" { +#endif + +#if IP_REASSEMBLY +/* The IP reassembly timer interval in milliseconds. */ +#define IP_TMR_INTERVAL 1000 + +/** IP reassembly helper struct. + * This is exported because memp needs to know the size. + */ +struct ip_reassdata { + struct ip_reassdata *next; + struct pbuf *p; + struct ip_hdr iphdr; + u16_t datagram_len; + u8_t flags; + u8_t timer; +}; + +void ip_reass_init(void); +void ip_reass_tmr(void); +struct pbuf * ip4_reass(struct pbuf *p); +#endif /* IP_REASSEMBLY */ + +#if IP_FRAG +#if !LWIP_NETIF_TX_SINGLE_PBUF +#ifndef LWIP_PBUF_CUSTOM_REF_DEFINED +#define LWIP_PBUF_CUSTOM_REF_DEFINED +/** A custom pbuf that holds a reference to another pbuf, which is freed + * when this custom pbuf is freed. This is used to create a custom PBUF_REF + * that points into the original pbuf. */ +struct pbuf_custom_ref { + /** 'base class' */ + struct pbuf_custom pc; + /** pointer to the original pbuf that is referenced */ + struct pbuf *original; +}; +#endif /* LWIP_PBUF_CUSTOM_REF_DEFINED */ +#endif /* !LWIP_NETIF_TX_SINGLE_PBUF */ + +err_t ip4_frag(struct pbuf *p, struct netif *netif, const ip4_addr_t *dest); +#endif /* IP_FRAG */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV4 */ + +#endif /* LWIP_HDR_IP4_FRAG_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6.h new file mode 100644 index 000000000..706f66dc3 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6.h @@ -0,0 +1,93 @@ +/** + * @file + * + * IPv6 layer. + */ + +/* + * Copyright (c) 2010 Inico Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Ivan Delamer + * + * + * Please coordinate changes and requests with Ivan Delamer + * + */ +#ifndef LWIP_HDR_IP6_H +#define LWIP_HDR_IP6_H + +#include "lwip/opt.h" + +#if LWIP_IPV6 /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/ip6_addr.h" +#include "lwip/prot/ip6.h" +#include "lwip/def.h" +#include "lwip/pbuf.h" +#include "lwip/netif.h" + +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct netif *ip6_route(const ip6_addr_t *src, const ip6_addr_t *dest); +const ip_addr_t *ip6_select_source_address(struct netif *netif, const ip6_addr_t * dest); +err_t ip6_input(struct pbuf *p, struct netif *inp); +err_t ip6_output(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t *dest, + u8_t hl, u8_t tc, u8_t nexth); +err_t ip6_output_if(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t *dest, + u8_t hl, u8_t tc, u8_t nexth, struct netif *netif); +err_t ip6_output_if_src(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t *dest, + u8_t hl, u8_t tc, u8_t nexth, struct netif *netif); +#if LWIP_NETIF_USE_HINTS +err_t ip6_output_hinted(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t *dest, + u8_t hl, u8_t tc, u8_t nexth, struct netif_hint *netif_hint); +#endif /* LWIP_NETIF_USE_HINTS */ +#if LWIP_IPV6_MLD +err_t ip6_options_add_hbh_ra(struct pbuf * p, u8_t nexth, u8_t value); +#endif /* LWIP_IPV6_MLD */ + +#define ip6_netif_get_local_ip(netif, dest) (((netif) != NULL) ? \ + ip6_select_source_address(netif, dest) : NULL) + +#if IP6_DEBUG +void ip6_debug_print(struct pbuf *p); +#else +#define ip6_debug_print(p) +#endif /* IP6_DEBUG */ + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV6 */ + +#endif /* LWIP_HDR_IP6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_addr.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_addr.h new file mode 100644 index 000000000..7c1f9136e --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_addr.h @@ -0,0 +1,352 @@ +/** + * @file + * + * IPv6 addresses. + */ + +/* + * Copyright (c) 2010 Inico Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Ivan Delamer + * + * Structs and macros for handling IPv6 addresses. + * + * Please coordinate changes and requests with Ivan Delamer + * + */ +#ifndef LWIP_HDR_IP6_ADDR_H +#define LWIP_HDR_IP6_ADDR_H + +#include "lwip/opt.h" +#include "def.h" + +#if LWIP_IPV6 /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/ip6_zone.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** This is the aligned version of ip6_addr_t, + used as local variable, on the stack, etc. */ +struct ip6_addr { + u32_t addr[4]; +#if LWIP_IPV6_SCOPES + u8_t zone; +#endif /* LWIP_IPV6_SCOPES */ +}; + +/** IPv6 address */ +typedef struct ip6_addr ip6_addr_t; + +/** Set an IPv6 partial address given by byte-parts */ +#define IP6_ADDR_PART(ip6addr, index, a,b,c,d) \ + (ip6addr)->addr[index] = PP_HTONL(LWIP_MAKEU32(a,b,c,d)) + +/** Set a full IPv6 address by passing the 4 u32_t indices in network byte order + (use PP_HTONL() for constants) */ +#define IP6_ADDR(ip6addr, idx0, idx1, idx2, idx3) do { \ + (ip6addr)->addr[0] = idx0; \ + (ip6addr)->addr[1] = idx1; \ + (ip6addr)->addr[2] = idx2; \ + (ip6addr)->addr[3] = idx3; \ + ip6_addr_clear_zone(ip6addr); } while(0) + +/** Access address in 16-bit block */ +#define IP6_ADDR_BLOCK1(ip6addr) ((u16_t)((lwip_htonl((ip6addr)->addr[0]) >> 16) & 0xffff)) +/** Access address in 16-bit block */ +#define IP6_ADDR_BLOCK2(ip6addr) ((u16_t)((lwip_htonl((ip6addr)->addr[0])) & 0xffff)) +/** Access address in 16-bit block */ +#define IP6_ADDR_BLOCK3(ip6addr) ((u16_t)((lwip_htonl((ip6addr)->addr[1]) >> 16) & 0xffff)) +/** Access address in 16-bit block */ +#define IP6_ADDR_BLOCK4(ip6addr) ((u16_t)((lwip_htonl((ip6addr)->addr[1])) & 0xffff)) +/** Access address in 16-bit block */ +#define IP6_ADDR_BLOCK5(ip6addr) ((u16_t)((lwip_htonl((ip6addr)->addr[2]) >> 16) & 0xffff)) +/** Access address in 16-bit block */ +#define IP6_ADDR_BLOCK6(ip6addr) ((u16_t)((lwip_htonl((ip6addr)->addr[2])) & 0xffff)) +/** Access address in 16-bit block */ +#define IP6_ADDR_BLOCK7(ip6addr) ((u16_t)((lwip_htonl((ip6addr)->addr[3]) >> 16) & 0xffff)) +/** Access address in 16-bit block */ +#define IP6_ADDR_BLOCK8(ip6addr) ((u16_t)((lwip_htonl((ip6addr)->addr[3])) & 0xffff)) + +/** Copy IPv6 address - faster than ip6_addr_set: no NULL check */ +#define ip6_addr_copy(dest, src) do{(dest).addr[0] = (src).addr[0]; \ + (dest).addr[1] = (src).addr[1]; \ + (dest).addr[2] = (src).addr[2]; \ + (dest).addr[3] = (src).addr[3]; \ + ip6_addr_copy_zone((dest), (src)); }while(0) +/** Safely copy one IPv6 address to another (src may be NULL) */ +#define ip6_addr_set(dest, src) do{(dest)->addr[0] = (src) == NULL ? 0 : (src)->addr[0]; \ + (dest)->addr[1] = (src) == NULL ? 0 : (src)->addr[1]; \ + (dest)->addr[2] = (src) == NULL ? 0 : (src)->addr[2]; \ + (dest)->addr[3] = (src) == NULL ? 0 : (src)->addr[3]; \ + ip6_addr_set_zone((dest), (src) == NULL ? IP6_NO_ZONE : ip6_addr_zone(src)); }while(0) + +/** Copy packed IPv6 address to unpacked IPv6 address; zone is not set */ +#define ip6_addr_copy_from_packed(dest, src) do{(dest).addr[0] = (src).addr[0]; \ + (dest).addr[1] = (src).addr[1]; \ + (dest).addr[2] = (src).addr[2]; \ + (dest).addr[3] = (src).addr[3]; \ + ip6_addr_clear_zone(&dest); }while(0) + +/** Copy unpacked IPv6 address to packed IPv6 address; zone is lost */ +#define ip6_addr_copy_to_packed(dest, src) do{(dest).addr[0] = (src).addr[0]; \ + (dest).addr[1] = (src).addr[1]; \ + (dest).addr[2] = (src).addr[2]; \ + (dest).addr[3] = (src).addr[3]; }while(0) + +/** Set complete address to zero */ +#define ip6_addr_set_zero(ip6addr) do{(ip6addr)->addr[0] = 0; \ + (ip6addr)->addr[1] = 0; \ + (ip6addr)->addr[2] = 0; \ + (ip6addr)->addr[3] = 0; \ + ip6_addr_clear_zone(ip6addr);}while(0) + +/** Set address to ipv6 'any' (no need for lwip_htonl()) */ +#define ip6_addr_set_any(ip6addr) ip6_addr_set_zero(ip6addr) +/** Set address to ipv6 loopback address */ +#define ip6_addr_set_loopback(ip6addr) do{(ip6addr)->addr[0] = 0; \ + (ip6addr)->addr[1] = 0; \ + (ip6addr)->addr[2] = 0; \ + (ip6addr)->addr[3] = PP_HTONL(0x00000001UL); \ + ip6_addr_clear_zone(ip6addr);}while(0) +/** Safely copy one IPv6 address to another and change byte order + * from host- to network-order. */ +#define ip6_addr_set_hton(dest, src) do{(dest)->addr[0] = (src) == NULL ? 0 : lwip_htonl((src)->addr[0]); \ + (dest)->addr[1] = (src) == NULL ? 0 : lwip_htonl((src)->addr[1]); \ + (dest)->addr[2] = (src) == NULL ? 0 : lwip_htonl((src)->addr[2]); \ + (dest)->addr[3] = (src) == NULL ? 0 : lwip_htonl((src)->addr[3]); \ + ip6_addr_set_zone((dest), (src) == NULL ? IP6_NO_ZONE : ip6_addr_zone(src));}while(0) + + +/** Compare IPv6 networks, ignoring zone information. To be used sparingly! */ +#define ip6_addr_netcmp_zoneless(addr1, addr2) (((addr1)->addr[0] == (addr2)->addr[0]) && \ + ((addr1)->addr[1] == (addr2)->addr[1])) + +/** + * Determine if two IPv6 address are on the same network. + * + * @param addr1 IPv6 address 1 + * @param addr2 IPv6 address 2 + * @return 1 if the network identifiers of both address match, 0 if not + */ +#define ip6_addr_netcmp(addr1, addr2) (ip6_addr_netcmp_zoneless((addr1), (addr2)) && \ + ip6_addr_cmp_zone((addr1), (addr2))) + +/* Exact-host comparison *after* ip6_addr_netcmp() succeeded, for efficiency. */ +#define ip6_addr_nethostcmp(addr1, addr2) (((addr1)->addr[2] == (addr2)->addr[2]) && \ + ((addr1)->addr[3] == (addr2)->addr[3])) + +/** Compare IPv6 addresses, ignoring zone information. To be used sparingly! */ +#define ip6_addr_cmp_zoneless(addr1, addr2) (((addr1)->addr[0] == (addr2)->addr[0]) && \ + ((addr1)->addr[1] == (addr2)->addr[1]) && \ + ((addr1)->addr[2] == (addr2)->addr[2]) && \ + ((addr1)->addr[3] == (addr2)->addr[3])) +/** + * Determine if two IPv6 addresses are the same. In particular, the address + * part of both must be the same, and the zone must be compatible. + * + * @param addr1 IPv6 address 1 + * @param addr2 IPv6 address 2 + * @return 1 if the addresses are considered equal, 0 if not + */ +#define ip6_addr_cmp(addr1, addr2) (ip6_addr_cmp_zoneless((addr1), (addr2)) && \ + ip6_addr_cmp_zone((addr1), (addr2))) + +/** Compare IPv6 address to packed address and zone */ +#define ip6_addr_cmp_packed(ip6addr, paddr, zone_idx) (((ip6addr)->addr[0] == (paddr)->addr[0]) && \ + ((ip6addr)->addr[1] == (paddr)->addr[1]) && \ + ((ip6addr)->addr[2] == (paddr)->addr[2]) && \ + ((ip6addr)->addr[3] == (paddr)->addr[3]) && \ + ip6_addr_equals_zone((ip6addr), (zone_idx))) + +#define ip6_get_subnet_id(ip6addr) (lwip_htonl((ip6addr)->addr[2]) & 0x0000ffffUL) + +#define ip6_addr_isany_val(ip6addr) (((ip6addr).addr[0] == 0) && \ + ((ip6addr).addr[1] == 0) && \ + ((ip6addr).addr[2] == 0) && \ + ((ip6addr).addr[3] == 0)) +#define ip6_addr_isany(ip6addr) (((ip6addr) == NULL) || ip6_addr_isany_val(*(ip6addr))) + +#define ip6_addr_isloopback(ip6addr) (((ip6addr)->addr[0] == 0UL) && \ + ((ip6addr)->addr[1] == 0UL) && \ + ((ip6addr)->addr[2] == 0UL) && \ + ((ip6addr)->addr[3] == PP_HTONL(0x00000001UL))) + +#define ip6_addr_isglobal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xe0000000UL)) == PP_HTONL(0x20000000UL)) + +#define ip6_addr_islinklocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xffc00000UL)) == PP_HTONL(0xfe800000UL)) + +#define ip6_addr_issitelocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xffc00000UL)) == PP_HTONL(0xfec00000UL)) + +#define ip6_addr_isuniquelocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xfe000000UL)) == PP_HTONL(0xfc000000UL)) + +#define ip6_addr_isipv4mappedipv6(ip6addr) (((ip6addr)->addr[0] == 0) && ((ip6addr)->addr[1] == 0) && (((ip6addr)->addr[2]) == PP_HTONL(0x0000FFFFUL))) + +#define ip6_addr_ismulticast(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff000000UL)) == PP_HTONL(0xff000000UL)) +#define ip6_addr_multicast_transient_flag(ip6addr) ((ip6addr)->addr[0] & PP_HTONL(0x00100000UL)) +#define ip6_addr_multicast_prefix_flag(ip6addr) ((ip6addr)->addr[0] & PP_HTONL(0x00200000UL)) +#define ip6_addr_multicast_rendezvous_flag(ip6addr) ((ip6addr)->addr[0] & PP_HTONL(0x00400000UL)) +#define ip6_addr_multicast_scope(ip6addr) ((lwip_htonl((ip6addr)->addr[0]) >> 16) & 0xf) +#define IP6_MULTICAST_SCOPE_RESERVED 0x0 +#define IP6_MULTICAST_SCOPE_RESERVED0 0x0 +#define IP6_MULTICAST_SCOPE_INTERFACE_LOCAL 0x1 +#define IP6_MULTICAST_SCOPE_LINK_LOCAL 0x2 +#define IP6_MULTICAST_SCOPE_RESERVED3 0x3 +#define IP6_MULTICAST_SCOPE_ADMIN_LOCAL 0x4 +#define IP6_MULTICAST_SCOPE_SITE_LOCAL 0x5 +#define IP6_MULTICAST_SCOPE_ORGANIZATION_LOCAL 0x8 +#define IP6_MULTICAST_SCOPE_GLOBAL 0xe +#define IP6_MULTICAST_SCOPE_RESERVEDF 0xf +#define ip6_addr_ismulticast_iflocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff010000UL)) +#define ip6_addr_ismulticast_linklocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff020000UL)) +#define ip6_addr_ismulticast_adminlocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff040000UL)) +#define ip6_addr_ismulticast_sitelocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff050000UL)) +#define ip6_addr_ismulticast_orglocal(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff080000UL)) +#define ip6_addr_ismulticast_global(ip6addr) (((ip6addr)->addr[0] & PP_HTONL(0xff8f0000UL)) == PP_HTONL(0xff0e0000UL)) + +/* Scoping note: while interface-local and link-local multicast addresses do + * have a scope (i.e., they are meaningful only in the context of a particular + * interface), the following functions are not assigning or comparing zone + * indices. The reason for this is backward compatibility. Any call site that + * produces a non-global multicast address must assign a multicast address as + * appropriate itself. */ + +#define ip6_addr_isallnodes_iflocal(ip6addr) (((ip6addr)->addr[0] == PP_HTONL(0xff010000UL)) && \ + ((ip6addr)->addr[1] == 0UL) && \ + ((ip6addr)->addr[2] == 0UL) && \ + ((ip6addr)->addr[3] == PP_HTONL(0x00000001UL))) + +#define ip6_addr_isallnodes_linklocal(ip6addr) (((ip6addr)->addr[0] == PP_HTONL(0xff020000UL)) && \ + ((ip6addr)->addr[1] == 0UL) && \ + ((ip6addr)->addr[2] == 0UL) && \ + ((ip6addr)->addr[3] == PP_HTONL(0x00000001UL))) +#define ip6_addr_set_allnodes_linklocal(ip6addr) do{(ip6addr)->addr[0] = PP_HTONL(0xff020000UL); \ + (ip6addr)->addr[1] = 0; \ + (ip6addr)->addr[2] = 0; \ + (ip6addr)->addr[3] = PP_HTONL(0x00000001UL); \ + ip6_addr_clear_zone(ip6addr); }while(0) + +#define ip6_addr_isallrouters_linklocal(ip6addr) (((ip6addr)->addr[0] == PP_HTONL(0xff020000UL)) && \ + ((ip6addr)->addr[1] == 0UL) && \ + ((ip6addr)->addr[2] == 0UL) && \ + ((ip6addr)->addr[3] == PP_HTONL(0x00000002UL))) +#define ip6_addr_set_allrouters_linklocal(ip6addr) do{(ip6addr)->addr[0] = PP_HTONL(0xff020000UL); \ + (ip6addr)->addr[1] = 0; \ + (ip6addr)->addr[2] = 0; \ + (ip6addr)->addr[3] = PP_HTONL(0x00000002UL); \ + ip6_addr_clear_zone(ip6addr); }while(0) + +#define ip6_addr_issolicitednode(ip6addr) ( ((ip6addr)->addr[0] == PP_HTONL(0xff020000UL)) && \ + ((ip6addr)->addr[2] == PP_HTONL(0x00000001UL)) && \ + (((ip6addr)->addr[3] & PP_HTONL(0xff000000UL)) == PP_HTONL(0xff000000UL)) ) + +#define ip6_addr_set_solicitednode(ip6addr, if_id) do{(ip6addr)->addr[0] = PP_HTONL(0xff020000UL); \ + (ip6addr)->addr[1] = 0; \ + (ip6addr)->addr[2] = PP_HTONL(0x00000001UL); \ + (ip6addr)->addr[3] = (PP_HTONL(0xff000000UL) | (if_id)); \ + ip6_addr_clear_zone(ip6addr); }while(0) + +#define ip6_addr_cmp_solicitednode(ip6addr, sn_addr) (((ip6addr)->addr[0] == PP_HTONL(0xff020000UL)) && \ + ((ip6addr)->addr[1] == 0) && \ + ((ip6addr)->addr[2] == PP_HTONL(0x00000001UL)) && \ + ((ip6addr)->addr[3] == (PP_HTONL(0xff000000UL) | (sn_addr)->addr[3]))) + +/* IPv6 address states. */ +#define IP6_ADDR_INVALID 0x00 +#define IP6_ADDR_TENTATIVE 0x08 +#define IP6_ADDR_TENTATIVE_1 0x09 /* 1 probe sent */ +#define IP6_ADDR_TENTATIVE_2 0x0a /* 2 probes sent */ +#define IP6_ADDR_TENTATIVE_3 0x0b /* 3 probes sent */ +#define IP6_ADDR_TENTATIVE_4 0x0c /* 4 probes sent */ +#define IP6_ADDR_TENTATIVE_5 0x0d /* 5 probes sent */ +#define IP6_ADDR_TENTATIVE_6 0x0e /* 6 probes sent */ +#define IP6_ADDR_TENTATIVE_7 0x0f /* 7 probes sent */ +#define IP6_ADDR_VALID 0x10 /* This bit marks an address as valid (preferred or deprecated) */ +#define IP6_ADDR_PREFERRED 0x30 +#define IP6_ADDR_DEPRECATED 0x10 /* Same as VALID (valid but not preferred) */ +#define IP6_ADDR_DUPLICATED 0x40 /* Failed DAD test, not valid */ + +#define IP6_ADDR_TENTATIVE_COUNT_MASK 0x07 /* 1-7 probes sent */ + +#define ip6_addr_isinvalid(addr_state) (addr_state == IP6_ADDR_INVALID) +#define ip6_addr_istentative(addr_state) (addr_state & IP6_ADDR_TENTATIVE) +#define ip6_addr_isvalid(addr_state) (addr_state & IP6_ADDR_VALID) /* Include valid, preferred, and deprecated. */ +#define ip6_addr_ispreferred(addr_state) (addr_state == IP6_ADDR_PREFERRED) +#define ip6_addr_isdeprecated(addr_state) (addr_state == IP6_ADDR_DEPRECATED) +#define ip6_addr_isduplicated(addr_state) (addr_state == IP6_ADDR_DUPLICATED) + +#if LWIP_IPV6_ADDRESS_LIFETIMES +#define IP6_ADDR_LIFE_STATIC (0) +#define IP6_ADDR_LIFE_INFINITE (0xffffffffUL) +#define ip6_addr_life_isstatic(addr_life) ((addr_life) == IP6_ADDR_LIFE_STATIC) +#define ip6_addr_life_isinfinite(addr_life) ((addr_life) == IP6_ADDR_LIFE_INFINITE) +#endif /* LWIP_IPV6_ADDRESS_LIFETIMES */ + +#define ip6_addr_debug_print_parts(debug, a, b, c, d, e, f, g, h) \ + LWIP_DEBUGF(debug, ("%" X16_F ":%" X16_F ":%" X16_F ":%" X16_F ":%" X16_F ":%" X16_F ":%" X16_F ":%" X16_F, \ + a, b, c, d, e, f, g, h)) +#define ip6_addr_debug_print(debug, ipaddr) \ + ip6_addr_debug_print_parts(debug, \ + (u16_t)((ipaddr) != NULL ? IP6_ADDR_BLOCK1(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? IP6_ADDR_BLOCK2(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? IP6_ADDR_BLOCK3(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? IP6_ADDR_BLOCK4(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? IP6_ADDR_BLOCK5(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? IP6_ADDR_BLOCK6(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? IP6_ADDR_BLOCK7(ipaddr) : 0), \ + (u16_t)((ipaddr) != NULL ? IP6_ADDR_BLOCK8(ipaddr) : 0)) +#define ip6_addr_debug_print_val(debug, ipaddr) \ + ip6_addr_debug_print_parts(debug, \ + IP6_ADDR_BLOCK1(&(ipaddr)), \ + IP6_ADDR_BLOCK2(&(ipaddr)), \ + IP6_ADDR_BLOCK3(&(ipaddr)), \ + IP6_ADDR_BLOCK4(&(ipaddr)), \ + IP6_ADDR_BLOCK5(&(ipaddr)), \ + IP6_ADDR_BLOCK6(&(ipaddr)), \ + IP6_ADDR_BLOCK7(&(ipaddr)), \ + IP6_ADDR_BLOCK8(&(ipaddr))) + +#define IP6ADDR_STRLEN_MAX 46 + +int ip6addr_aton(const char *cp, ip6_addr_t *addr); +/** returns ptr to static buffer; not reentrant! */ +char *ip6addr_ntoa(const ip6_addr_t *addr); +char *ip6addr_ntoa_r(const ip6_addr_t *addr, char *buf, int buflen); + + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV6 */ + +#endif /* LWIP_HDR_IP6_ADDR_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_frag.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_frag.h new file mode 100644 index 000000000..71940dd7d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_frag.h @@ -0,0 +1,144 @@ +/** + * @file + * + * IPv6 fragmentation and reassembly. + */ + +/* + * Copyright (c) 2010 Inico Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Ivan Delamer + * + * + * Please coordinate changes and requests with Ivan Delamer + * + */ +#ifndef LWIP_HDR_IP6_FRAG_H +#define LWIP_HDR_IP6_FRAG_H + +#include "lwip/opt.h" +#include "lwip/pbuf.h" +#include "lwip/ip6_addr.h" +#include "lwip/ip6.h" +#include "lwip/netif.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +#if LWIP_IPV6 && LWIP_IPV6_REASS /* don't build if not configured for use in lwipopts.h */ + +/** The IPv6 reassembly timer interval in milliseconds. */ +#define IP6_REASS_TMR_INTERVAL 1000 + +/** IP6_FRAG_COPYHEADER==1: for platforms where sizeof(void*) > 4, "struct + * ip6_reass_helper" is too large to be stored in the IPv6 fragment header, and + * will bleed into the header before it, which may be the IPv6 header or an + * extension header. This means that for each first fragment packet, we need to + * 1) make a copy of some IPv6 header fields (src+dest) that we need later on, + * just in case we do overwrite part of the IPv6 header, and 2) make a copy of + * the header data that we overwrote, so that we can restore it before either + * completing reassembly or sending an ICMPv6 reply. The last part is true even + * if this setting is disabled, but if it is enabled, we need to save a bit + * more data (up to the size of a pointer) because we overwrite more. */ +#ifndef IPV6_FRAG_COPYHEADER +#define IPV6_FRAG_COPYHEADER 0 +#endif + +/* With IPV6_FRAG_COPYHEADER==1, a helper structure may (or, depending on the + * presence of extensions, may not) overwrite part of the IP header. Therefore, + * we copy the fields that we need from the IP header for as long as the helper + * structure may still be in place. This is easier than temporarily restoring + * those fields in the IP header each time we need to perform checks on them. */ +#if IPV6_FRAG_COPYHEADER +#define IPV6_FRAG_SRC(ipr) ((ipr)->src) +#define IPV6_FRAG_DEST(ipr) ((ipr)->dest) +#else /* IPV6_FRAG_COPYHEADER */ +#define IPV6_FRAG_SRC(ipr) ((ipr)->iphdr->src) +#define IPV6_FRAG_DEST(ipr) ((ipr)->iphdr->dest) +#endif /* IPV6_FRAG_COPYHEADER */ + +/** IPv6 reassembly helper struct. + * This is exported because memp needs to know the size. + */ +struct ip6_reassdata { + struct ip6_reassdata *next; + struct pbuf *p; + struct ip6_hdr *iphdr; /* pointer to the first (original) IPv6 header */ +#if IPV6_FRAG_COPYHEADER + ip6_addr_p_t src; /* copy of the source address in the IP header */ + ip6_addr_p_t dest; /* copy of the destination address in the IP header */ + /* This buffer (for the part of the original header that we overwrite) will + * be slightly oversized, but we cannot compute the exact size from here. */ + u8_t orig_hdr[sizeof(struct ip6_frag_hdr) + sizeof(void*)]; +#else /* IPV6_FRAG_COPYHEADER */ + /* In this case we still need the buffer, for sending ICMPv6 replies. */ + u8_t orig_hdr[sizeof(struct ip6_frag_hdr)]; +#endif /* IPV6_FRAG_COPYHEADER */ + u32_t identification; + u16_t datagram_len; + u8_t nexth; + u8_t timer; +#if LWIP_IPV6_SCOPES + u8_t src_zone; /* zone of original packet's source address */ + u8_t dest_zone; /* zone of original packet's destination address */ +#endif /* LWIP_IPV6_SCOPES */ +}; + +#define ip6_reass_init() /* Compatibility define */ +void ip6_reass_tmr(void); +struct pbuf *ip6_reass(struct pbuf *p); + +#endif /* LWIP_IPV6 && LWIP_IPV6_REASS */ + +#if LWIP_IPV6 && LWIP_IPV6_FRAG /* don't build if not configured for use in lwipopts.h */ + +#ifndef LWIP_PBUF_CUSTOM_REF_DEFINED +#define LWIP_PBUF_CUSTOM_REF_DEFINED +/** A custom pbuf that holds a reference to another pbuf, which is freed + * when this custom pbuf is freed. This is used to create a custom PBUF_REF + * that points into the original pbuf. */ +struct pbuf_custom_ref { + /** 'base class' */ + struct pbuf_custom pc; + /** pointer to the original pbuf that is referenced */ + struct pbuf *original; +}; +#endif /* LWIP_PBUF_CUSTOM_REF_DEFINED */ + +err_t ip6_frag(struct pbuf *p, struct netif *netif, const ip6_addr_t *dest); + +#endif /* LWIP_IPV6 && LWIP_IPV6_FRAG */ + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_IP6_FRAG_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_zone.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_zone.h new file mode 100644 index 000000000..235141ead --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip6_zone.h @@ -0,0 +1,304 @@ +/** + * @file + * + * IPv6 address scopes, zones, and scoping policy. + * + * This header provides the means to implement support for IPv6 address scopes, + * as per RFC 4007. An address scope can be either global or more constrained. + * In lwIP, we say that an address "has a scope" or "is scoped" when its scope + * is constrained, in which case the address is meaningful only in a specific + * "zone." For unicast addresses, only link-local addresses have a scope; in + * that case, the scope is the link. For multicast addresses, there are various + * scopes defined by RFC 4007 and others. For any constrained scope, a system + * must establish a (potentially one-to-many) mapping between zones and local + * interfaces. For example, a link-local address is valid on only one link (its + * zone). That link may be attached to one or more local interfaces. The + * decisions on which scopes are constrained and the mapping between zones and + * interfaces is together what we refer to as the "scoping policy" - more on + * this in a bit. + * + * In lwIP, each IPv6 address has an associated zone index. This zone index may + * be set to "no zone" (IP6_NO_ZONE, 0) or an actual zone. We say that an + * address "has a zone" or "is zoned" when its zone index is *not* set to "no + * zone." In lwIP, in principle, each address should be "properly zoned," which + * means that if the address has a zone if and only if has a scope. As such, it + * is a rule that an unscoped (e.g., global) address must never have a zone. + * Even though one could argue that there is always one zone even for global + * scopes, this rule exists for implementation simplicity. Violation of the + * rule will trigger assertions or otherwise result in undesired behavior. + * + * Backward compatibility prevents us from requiring that applications always + * provide properly zoned addresses. We do enforce the rule that the in the + * lwIP link layer (everything below netif->output_ip6() and in particular ND6) + * *all* addresses are properly zoned. Thus, on the output paths down the + * stack, various places deal with the case of addresses that lack a zone. + * Some of them are best-effort for efficiency (e.g. the PCB bind and connect + * API calls' attempts to add missing zones); ultimately the IPv6 output + * handler (@ref ip6_output_if_src) will set a zone if necessary. + * + * Aside from dealing with scoped addresses lacking a zone, a proper IPv6 + * implementation must also ensure that a packet with a scoped source and/or + * destination address does not leave its zone. This is currently implemented + * in the input and forward functions. However, for output, these checks are + * deliberately omitted in order to keep the implementation lightweight. The + * routing algorithm in @ref ip6_route will take decisions such that it will + * not cause zone violations unless the application sets bad addresses, though. + * + * In terms of scoping policy, lwIP implements the default policy from RFC 4007 + * using macros in this file. This policy considers link-local unicast + * addresses and (only) interface-local and link-local multicast addresses as + * having a scope. For all these addresses, the zone is equal to the interface. + * As shown below in this file, it is possible to implement a custom policy. + */ + +/* + * Copyright (c) 2017 The MINIX 3 Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: David van Moolenbroek + * + */ +#ifndef LWIP_HDR_IP6_ZONE_H +#define LWIP_HDR_IP6_ZONE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup ip6_zones IPv6 Zones + * @ingroup ip6 + * @{ + */ + +#if LWIP_IPV6 /* don't build if not configured for use in lwipopts.h */ + +/** Identifier for "no zone". */ +#define IP6_NO_ZONE 0 + +#if LWIP_IPV6_SCOPES + +/** Zone initializer for static IPv6 address initialization, including comma. */ +#define IPADDR6_ZONE_INIT , IP6_NO_ZONE + +/** Return the zone index of the given IPv6 address; possibly "no zone". */ +#define ip6_addr_zone(ip6addr) ((ip6addr)->zone) + +/** Does the given IPv6 address have a zone set? (0/1) */ +#define ip6_addr_has_zone(ip6addr) (ip6_addr_zone(ip6addr) != IP6_NO_ZONE) + +/** Set the zone field of an IPv6 address to a particular value. */ +#define ip6_addr_set_zone(ip6addr, zone_idx) ((ip6addr)->zone = (zone_idx)) + +/** Clear the zone field of an IPv6 address, setting it to "no zone". */ +#define ip6_addr_clear_zone(ip6addr) ((ip6addr)->zone = IP6_NO_ZONE) + +/** Copy the zone field from the second IPv6 address to the first one. */ +#define ip6_addr_copy_zone(ip6addr1, ip6addr2) ((ip6addr1).zone = (ip6addr2).zone) + +/** Is the zone field of the given IPv6 address equal to the given zone index? (0/1) */ +#define ip6_addr_equals_zone(ip6addr, zone_idx) ((ip6addr)->zone == (zone_idx)) + +/** Are the zone fields of the given IPv6 addresses equal? (0/1) + * This macro must only be used on IPv6 addresses of the same scope. */ +#define ip6_addr_cmp_zone(ip6addr1, ip6addr2) ((ip6addr1)->zone == (ip6addr2)->zone) + +/** Symbolic constants for the 'type' parameters in some of the macros. + * These exist for efficiency only, allowing the macros to avoid certain tests + * when the address is known not to be of a certain type. Dead code elimination + * will do the rest. IP6_MULTICAST is supported but currently not optimized. + * @see ip6_addr_has_scope, ip6_addr_assign_zone, ip6_addr_lacks_zone. + */ +enum lwip_ipv6_scope_type +{ + /** Unknown */ + IP6_UNKNOWN = 0, + /** Unicast */ + IP6_UNICAST = 1, + /** Multicast */ + IP6_MULTICAST = 2 +}; + +/** IPV6_CUSTOM_SCOPES: together, the following three macro definitions, + * @ref ip6_addr_has_scope, @ref ip6_addr_assign_zone, and + * @ref ip6_addr_test_zone, completely define the lwIP scoping policy. + * The definitions below implement the default policy from RFC 4007 Sec. 6. + * Should an implementation desire to implement a different policy, it can + * define IPV6_CUSTOM_SCOPES to 1 and supply its own definitions for the three + * macros instead. + */ +#ifndef IPV6_CUSTOM_SCOPES +#define IPV6_CUSTOM_SCOPES 0 +#endif /* !IPV6_CUSTOM_SCOPES */ + +#if !IPV6_CUSTOM_SCOPES + +/** + * Determine whether an IPv6 address has a constrained scope, and as such is + * meaningful only if accompanied by a zone index to identify the scope's zone. + * The given address type may be used to eliminate at compile time certain + * checks that will evaluate to false at run time anyway. + * + * This default implementation follows the default model of RFC 4007, where + * only interface-local and link-local scopes are defined. + * + * Even though the unicast loopback address does have an implied link-local + * scope, in this implementation it does not have an explicitly assigned zone + * index. As such it should not be tested for in this macro. + * + * @param ip6addr the IPv6 address (const); only its address part is examined. + * @param type address type; see @ref lwip_ipv6_scope_type. + * @return 1 if the address has a constrained scope, 0 if it does not. + */ +#define ip6_addr_has_scope(ip6addr, type) \ + (ip6_addr_islinklocal(ip6addr) || (((type) != IP6_UNICAST) && \ + (ip6_addr_ismulticast_iflocal(ip6addr) || \ + ip6_addr_ismulticast_linklocal(ip6addr)))) + +/** + * Assign a zone index to an IPv6 address, based on a network interface. If the + * given address has a scope, the assigned zone index is that scope's zone of + * the given netif; otherwise, the assigned zone index is "no zone". + * + * This default implementation follows the default model of RFC 4007, where + * only interface-local and link-local scopes are defined, and the zone index + * of both of those scopes always equals the index of the network interface. + * As such, this default implementation need not distinguish between different + * constrained scopes when assigning the zone. + * + * @param ip6addr the IPv6 address; its address part is examined, and its zone + * index is assigned. + * @param type address type; see @ref lwip_ipv6_scope_type. + * @param netif the network interface (const). + */ +#define ip6_addr_assign_zone(ip6addr, type, netif) \ + (ip6_addr_set_zone((ip6addr), \ + ip6_addr_has_scope((ip6addr), (type)) ? netif_get_index(netif) : 0)) + +/** + * Test whether an IPv6 address is "zone-compatible" with a network interface. + * That is, test whether the network interface is part of the zone associated + * with the address. For efficiency, this macro is only ever called if the + * given address is either scoped or zoned, and thus, it need not test this. + * If an address is scoped but not zoned, or zoned and not scoped, it is + * considered not zone-compatible with any netif. + * + * This default implementation follows the default model of RFC 4007, where + * only interface-local and link-local scopes are defined, and the zone index + * of both of those scopes always equals the index of the network interface. + * As such, there is always only one matching netif for a specific zone index, + * but all call sites of this macro currently support multiple matching netifs + * as well (at no additional expense in the common case). + * + * @param ip6addr the IPv6 address (const). + * @param netif the network interface (const). + * @return 1 if the address is scope-compatible with the netif, 0 if not. + */ +#define ip6_addr_test_zone(ip6addr, netif) \ + (ip6_addr_equals_zone((ip6addr), netif_get_index(netif))) + +#endif /* !IPV6_CUSTOM_SCOPES */ + +/** Does the given IPv6 address have a scope, and as such should also have a + * zone to be meaningful, but does not actually have a zone? (0/1) */ +#define ip6_addr_lacks_zone(ip6addr, type) \ + (!ip6_addr_has_zone(ip6addr) && ip6_addr_has_scope((ip6addr), (type))) + +/** + * Try to select a zone for a scoped address that does not yet have a zone. + * Called from PCB bind and connect routines, for two reasons: 1) to save on + * this (relatively expensive) selection for every individual packet route + * operation and 2) to allow the application to obtain the selected zone from + * the PCB as is customary for e.g. getsockname/getpeername BSD socket calls. + * + * Ideally, callers would always supply a properly zoned address, in which case + * this function would not be needed. It exists both for compatibility with the + * BSD socket API (which accepts zoneless destination addresses) and for + * backward compatibility with pre-scoping lwIP code. + * + * It may be impossible to select a zone, e.g. if there are no netifs. In that + * case, the address's zone field will be left as is. + * + * @param dest the IPv6 address for which to select and set a zone. + * @param src source IPv6 address (const); may be equal to dest. + */ +#define ip6_addr_select_zone(dest, src) do { struct netif *selected_netif; \ + selected_netif = ip6_route((src), (dest)); \ + if (selected_netif != NULL) { \ + ip6_addr_assign_zone((dest), IP6_UNKNOWN, selected_netif); \ + } } while (0) + +/** + * @} + */ + +#else /* LWIP_IPV6_SCOPES */ + +#define IPADDR6_ZONE_INIT +#define ip6_addr_zone(ip6addr) (IP6_NO_ZONE) +#define ip6_addr_has_zone(ip6addr) (0) +#define ip6_addr_set_zone(ip6addr, zone_idx) +#define ip6_addr_clear_zone(ip6addr) +#define ip6_addr_copy_zone(ip6addr1, ip6addr2) +#define ip6_addr_equals_zone(ip6addr, zone_idx) (1) +#define ip6_addr_cmp_zone(ip6addr1, ip6addr2) (1) +#define IPV6_CUSTOM_SCOPES 0 +#define ip6_addr_has_scope(ip6addr, type) (0) +#define ip6_addr_assign_zone(ip6addr, type, netif) +#define ip6_addr_test_zone(ip6addr, netif) (1) +#define ip6_addr_lacks_zone(ip6addr, type) (0) +#define ip6_addr_select_zone(ip6addr, src) + +#endif /* LWIP_IPV6_SCOPES */ + +#if LWIP_IPV6_SCOPES && LWIP_IPV6_SCOPES_DEBUG + +/** Verify that the given IPv6 address is properly zoned. */ +#define IP6_ADDR_ZONECHECK(ip6addr) LWIP_ASSERT("IPv6 zone check failed", \ + ip6_addr_has_scope(ip6addr, IP6_UNKNOWN) == ip6_addr_has_zone(ip6addr)) + +/** Verify that the given IPv6 address is properly zoned for the given netif. */ +#define IP6_ADDR_ZONECHECK_NETIF(ip6addr, netif) LWIP_ASSERT("IPv6 netif zone check failed", \ + ip6_addr_has_scope(ip6addr, IP6_UNKNOWN) ? \ + (ip6_addr_has_zone(ip6addr) && \ + (((netif) == NULL) || ip6_addr_test_zone((ip6addr), (netif)))) : \ + !ip6_addr_has_zone(ip6addr)) + +#else /* LWIP_IPV6_SCOPES && LWIP_IPV6_SCOPES_DEBUG */ + +#define IP6_ADDR_ZONECHECK(ip6addr) +#define IP6_ADDR_ZONECHECK_NETIF(ip6addr, netif) + +#endif /* LWIP_IPV6_SCOPES && LWIP_IPV6_SCOPES_DEBUG */ + +#endif /* LWIP_IPV6 */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_IP6_ZONE_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip_addr.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip_addr.h new file mode 100644 index 000000000..f98fa8ad4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/ip_addr.h @@ -0,0 +1,438 @@ +/** + * @file + * IP address API (common IPv4 and IPv6) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_IP_ADDR_H +#define LWIP_HDR_IP_ADDR_H + +#include "lwip/opt.h" +#include "lwip/def.h" + +#include "lwip/ip4_addr.h" +#include "lwip/ip6_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @ingroup ipaddr + * IP address types for use in ip_addr_t.type member. + * @see tcp_new_ip_type(), udp_new_ip_type(), raw_new_ip_type(). + */ +enum lwip_ip_addr_type { + /** IPv4 */ + IPADDR_TYPE_V4 = 0U, + /** IPv6 */ + IPADDR_TYPE_V6 = 6U, + /** IPv4+IPv6 ("dual-stack") */ + IPADDR_TYPE_ANY = 46U +}; + +#if LWIP_IPV4 && LWIP_IPV6 +/** + * @ingroup ipaddr + * A union struct for both IP version's addresses. + * ATTENTION: watch out for its size when adding IPv6 address scope! + */ +typedef struct ip_addr { + union { + ip6_addr_t ip6; + ip4_addr_t ip4; + } u_addr; + /** @ref lwip_ip_addr_type */ + u8_t type; +} ip_addr_t; + +extern const ip_addr_t ip_addr_any_type; + +/** @ingroup ip4addr */ +#define IPADDR4_INIT(u32val) { { { { u32val, 0ul, 0ul, 0ul } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_V4 } +/** @ingroup ip4addr */ +#define IPADDR4_INIT_BYTES(a,b,c,d) IPADDR4_INIT(PP_HTONL(LWIP_MAKEU32(a,b,c,d))) + +/** @ingroup ip6addr */ +#define IPADDR6_INIT(a, b, c, d) { { { { a, b, c, d } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_V6 } +/** @ingroup ip6addr */ +#define IPADDR6_INIT_HOST(a, b, c, d) { { { { PP_HTONL(a), PP_HTONL(b), PP_HTONL(c), PP_HTONL(d) } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_V6 } + +/** @ingroup ipaddr */ +#define IP_IS_ANY_TYPE_VAL(ipaddr) (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_ANY) +/** @ingroup ipaddr */ +#define IPADDR_ANY_TYPE_INIT { { { { 0ul, 0ul, 0ul, 0ul } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_ANY } + +/** @ingroup ip4addr */ +#define IP_IS_V4_VAL(ipaddr) (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_V4) +/** @ingroup ip6addr */ +#define IP_IS_V6_VAL(ipaddr) (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_V6) +/** @ingroup ip4addr */ +#define IP_IS_V4(ipaddr) (((ipaddr) == NULL) || IP_IS_V4_VAL(*(ipaddr))) +/** @ingroup ip6addr */ +#define IP_IS_V6(ipaddr) (((ipaddr) != NULL) && IP_IS_V6_VAL(*(ipaddr))) + +#define IP_SET_TYPE_VAL(ipaddr, iptype) do { (ipaddr).type = (iptype); }while(0) +#define IP_SET_TYPE(ipaddr, iptype) do { if((ipaddr) != NULL) { IP_SET_TYPE_VAL(*(ipaddr), iptype); }}while(0) +#define IP_GET_TYPE(ipaddr) ((ipaddr)->type) + +#define IP_ADDR_RAW_SIZE(ipaddr) (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_V4 ? sizeof(ip4_addr_t) : sizeof(ip6_addr_t)) + +#define IP_ADDR_PCB_VERSION_MATCH_EXACT(pcb, ipaddr) (IP_GET_TYPE(&pcb->local_ip) == IP_GET_TYPE(ipaddr)) +#define IP_ADDR_PCB_VERSION_MATCH(pcb, ipaddr) (IP_IS_ANY_TYPE_VAL(pcb->local_ip) || IP_ADDR_PCB_VERSION_MATCH_EXACT(pcb, ipaddr)) + +/** @ingroup ip6addr + * Convert generic ip address to specific protocol version + */ +#define ip_2_ip6(ipaddr) (&((ipaddr)->u_addr.ip6)) +/** @ingroup ip4addr + * Convert generic ip address to specific protocol version + */ +#define ip_2_ip4(ipaddr) (&((ipaddr)->u_addr.ip4)) + +/** @ingroup ip4addr */ +#define IP_ADDR4(ipaddr,a,b,c,d) do { IP4_ADDR(ip_2_ip4(ipaddr),a,b,c,d); \ + IP_SET_TYPE_VAL(*(ipaddr), IPADDR_TYPE_V4); } while(0) +/** @ingroup ip6addr */ +#define IP_ADDR6(ipaddr,i0,i1,i2,i3) do { IP6_ADDR(ip_2_ip6(ipaddr),i0,i1,i2,i3); \ + IP_SET_TYPE_VAL(*(ipaddr), IPADDR_TYPE_V6); } while(0) +/** @ingroup ip6addr */ +#define IP_ADDR6_HOST(ipaddr,i0,i1,i2,i3) IP_ADDR6(ipaddr,PP_HTONL(i0),PP_HTONL(i1),PP_HTONL(i2),PP_HTONL(i3)) + +#define ip_clear_no4(ipaddr) do { ip_2_ip6(ipaddr)->addr[1] = \ + ip_2_ip6(ipaddr)->addr[2] = \ + ip_2_ip6(ipaddr)->addr[3] = 0; \ + ip6_addr_clear_zone(ip_2_ip6(ipaddr)); }while(0) + +/** @ingroup ipaddr */ +#define ip_addr_copy(dest, src) do{ IP_SET_TYPE_VAL(dest, IP_GET_TYPE(&src)); if(IP_IS_V6_VAL(src)){ \ + ip6_addr_copy(*ip_2_ip6(&(dest)), *ip_2_ip6(&(src))); }else{ \ + ip4_addr_copy(*ip_2_ip4(&(dest)), *ip_2_ip4(&(src))); ip_clear_no4(&dest); }}while(0) +/** @ingroup ip6addr */ +#define ip_addr_copy_from_ip6(dest, src) do{ \ + ip6_addr_copy(*ip_2_ip6(&(dest)), src); IP_SET_TYPE_VAL(dest, IPADDR_TYPE_V6); }while(0) +/** @ingroup ip6addr */ +#define ip_addr_copy_from_ip6_packed(dest, src) do{ \ + ip6_addr_copy_from_packed(*ip_2_ip6(&(dest)), src); IP_SET_TYPE_VAL(dest, IPADDR_TYPE_V6); }while(0) +/** @ingroup ip4addr */ +#define ip_addr_copy_from_ip4(dest, src) do{ \ + ip4_addr_copy(*ip_2_ip4(&(dest)), src); IP_SET_TYPE_VAL(dest, IPADDR_TYPE_V4); ip_clear_no4(&dest); }while(0) +/** @ingroup ip4addr */ +#define ip_addr_set_ip4_u32(ipaddr, val) do{if(ipaddr){ip4_addr_set_u32(ip_2_ip4(ipaddr), val); \ + IP_SET_TYPE(ipaddr, IPADDR_TYPE_V4); ip_clear_no4(ipaddr); }}while(0) +/** @ingroup ip4addr */ +#define ip_addr_set_ip4_u32_val(ipaddr, val) do{ ip4_addr_set_u32(ip_2_ip4(&(ipaddr)), val); \ + IP_SET_TYPE_VAL(ipaddr, IPADDR_TYPE_V4); ip_clear_no4(&ipaddr); }while(0) +/** @ingroup ip4addr */ +#define ip_addr_get_ip4_u32(ipaddr) (((ipaddr) && IP_IS_V4(ipaddr)) ? \ + ip4_addr_get_u32(ip_2_ip4(ipaddr)) : 0) +/** @ingroup ipaddr */ +#define ip_addr_set(dest, src) do{ IP_SET_TYPE(dest, IP_GET_TYPE(src)); if(IP_IS_V6(src)){ \ + ip6_addr_set(ip_2_ip6(dest), ip_2_ip6(src)); }else{ \ + ip4_addr_set(ip_2_ip4(dest), ip_2_ip4(src)); ip_clear_no4(dest); }}while(0) +/** @ingroup ipaddr */ +#define ip_addr_set_ipaddr(dest, src) ip_addr_set(dest, src) +/** @ingroup ipaddr */ +#define ip_addr_set_zero(ipaddr) do{ \ + ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, 0); }while(0) +/** @ingroup ip5addr */ +#define ip_addr_set_zero_ip4(ipaddr) do{ \ + ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V4); }while(0) +/** @ingroup ip6addr */ +#define ip_addr_set_zero_ip6(ipaddr) do{ \ + ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V6); }while(0) +/** @ingroup ipaddr */ +#define ip_addr_set_any(is_ipv6, ipaddr) do{if(is_ipv6){ \ + ip6_addr_set_any(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V6); }else{ \ + ip4_addr_set_any(ip_2_ip4(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V4); ip_clear_no4(ipaddr); }}while(0) +/** @ingroup ipaddr */ +#define ip_addr_set_any_val(is_ipv6, ipaddr) do{if(is_ipv6){ \ + ip6_addr_set_any(ip_2_ip6(&(ipaddr))); IP_SET_TYPE_VAL(ipaddr, IPADDR_TYPE_V6); }else{ \ + ip4_addr_set_any(ip_2_ip4(&(ipaddr))); IP_SET_TYPE_VAL(ipaddr, IPADDR_TYPE_V4); ip_clear_no4(&ipaddr); }}while(0) +/** @ingroup ipaddr */ +#define ip_addr_set_loopback(is_ipv6, ipaddr) do{if(is_ipv6){ \ + ip6_addr_set_loopback(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V6); }else{ \ + ip4_addr_set_loopback(ip_2_ip4(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V4); ip_clear_no4(ipaddr); }}while(0) +/** @ingroup ipaddr */ +#define ip_addr_set_loopback_val(is_ipv6, ipaddr) do{if(is_ipv6){ \ + ip6_addr_set_loopback(ip_2_ip6(&(ipaddr))); IP_SET_TYPE_VAL(ipaddr, IPADDR_TYPE_V6); }else{ \ + ip4_addr_set_loopback(ip_2_ip4(&(ipaddr))); IP_SET_TYPE_VAL(ipaddr, IPADDR_TYPE_V4); ip_clear_no4(&ipaddr); }}while(0) +/** @ingroup ipaddr */ +#define ip_addr_set_hton(dest, src) do{if(IP_IS_V6(src)){ \ + ip6_addr_set_hton(ip_2_ip6(dest), ip_2_ip6(src)); IP_SET_TYPE(dest, IPADDR_TYPE_V6); }else{ \ + ip4_addr_set_hton(ip_2_ip4(dest), ip_2_ip4(src)); IP_SET_TYPE(dest, IPADDR_TYPE_V4); ip_clear_no4(ipaddr); }}while(0) +/** @ingroup ipaddr */ +#define ip_addr_get_network(target, host, netmask) do{if(IP_IS_V6(host)){ \ + ip4_addr_set_zero(ip_2_ip4(target)); IP_SET_TYPE(target, IPADDR_TYPE_V6); } else { \ + ip4_addr_get_network(ip_2_ip4(target), ip_2_ip4(host), ip_2_ip4(netmask)); IP_SET_TYPE(target, IPADDR_TYPE_V4); }}while(0) +/** @ingroup ipaddr */ +#define ip_addr_netcmp(addr1, addr2, mask) ((IP_IS_V6(addr1) && IP_IS_V6(addr2)) ? \ + 0 : \ + ip4_addr_netcmp(ip_2_ip4(addr1), ip_2_ip4(addr2), mask)) +/** @ingroup ipaddr */ +#define ip_addr_cmp(addr1, addr2) ((IP_GET_TYPE(addr1) != IP_GET_TYPE(addr2)) ? 0 : (IP_IS_V6_VAL(*(addr1)) ? \ + ip6_addr_cmp(ip_2_ip6(addr1), ip_2_ip6(addr2)) : \ + ip4_addr_cmp(ip_2_ip4(addr1), ip_2_ip4(addr2)))) +/** @ingroup ipaddr */ +#define ip_addr_cmp_zoneless(addr1, addr2) ((IP_GET_TYPE(addr1) != IP_GET_TYPE(addr2)) ? 0 : (IP_IS_V6_VAL(*(addr1)) ? \ + ip6_addr_cmp_zoneless(ip_2_ip6(addr1), ip_2_ip6(addr2)) : \ + ip4_addr_cmp(ip_2_ip4(addr1), ip_2_ip4(addr2)))) +/** @ingroup ipaddr */ +#define ip_addr_isany(ipaddr) (((ipaddr) == NULL) ? 1 : ((IP_IS_V6(ipaddr)) ? \ + ip6_addr_isany(ip_2_ip6(ipaddr)) : \ + ip4_addr_isany(ip_2_ip4(ipaddr)))) +/** @ingroup ipaddr */ +#define ip_addr_isany_val(ipaddr) ((IP_IS_V6_VAL(ipaddr)) ? \ + ip6_addr_isany_val(*ip_2_ip6(&(ipaddr))) : \ + ip4_addr_isany_val(*ip_2_ip4(&(ipaddr)))) +/** @ingroup ipaddr */ +#define ip_addr_isbroadcast(ipaddr, netif) ((IP_IS_V6(ipaddr)) ? \ + 0 : \ + ip4_addr_isbroadcast(ip_2_ip4(ipaddr), netif)) +/** @ingroup ipaddr */ +#define ip_addr_ismulticast(ipaddr) ((IP_IS_V6(ipaddr)) ? \ + ip6_addr_ismulticast(ip_2_ip6(ipaddr)) : \ + ip4_addr_ismulticast(ip_2_ip4(ipaddr))) +/** @ingroup ipaddr */ +#define ip_addr_isloopback(ipaddr) ((IP_IS_V6(ipaddr)) ? \ + ip6_addr_isloopback(ip_2_ip6(ipaddr)) : \ + ip4_addr_isloopback(ip_2_ip4(ipaddr))) +/** @ingroup ipaddr */ +#define ip_addr_islinklocal(ipaddr) ((IP_IS_V6(ipaddr)) ? \ + ip6_addr_islinklocal(ip_2_ip6(ipaddr)) : \ + ip4_addr_islinklocal(ip_2_ip4(ipaddr))) +#define ip_addr_debug_print(debug, ipaddr) do { if(IP_IS_V6(ipaddr)) { \ + ip6_addr_debug_print(debug, ip_2_ip6(ipaddr)); } else { \ + ip4_addr_debug_print(debug, ip_2_ip4(ipaddr)); }}while(0) +#define ip_addr_debug_print_val(debug, ipaddr) do { if(IP_IS_V6_VAL(ipaddr)) { \ + ip6_addr_debug_print_val(debug, *ip_2_ip6(&(ipaddr))); } else { \ + ip4_addr_debug_print_val(debug, *ip_2_ip4(&(ipaddr))); }}while(0) +char *ipaddr_ntoa(const ip_addr_t *addr); +char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen); +int ipaddr_aton(const char *cp, ip_addr_t *addr); + +/** @ingroup ipaddr */ +#define IPADDR_STRLEN_MAX IP6ADDR_STRLEN_MAX + +/** @ingroup ipaddr */ +#define ip4_2_ipv4_mapped_ipv6(ip6addr, ip4addr) do { \ + (ip6addr)->addr[3] = (ip4addr)->addr; \ + (ip6addr)->addr[2] = PP_HTONL(0x0000FFFFUL); \ + (ip6addr)->addr[1] = 0; \ + (ip6addr)->addr[0] = 0; \ + ip6_addr_clear_zone(ip6addr); } while(0); + +/** @ingroup ipaddr */ +#define unmap_ipv4_mapped_ipv6(ip4addr, ip6addr) \ + (ip4addr)->addr = (ip6addr)->addr[3]; + +#define IP46_ADDR_ANY(type) (((type) == IPADDR_TYPE_V6)? IP6_ADDR_ANY : IP4_ADDR_ANY) + +#else /* LWIP_IPV4 && LWIP_IPV6 */ + +#define IP_ADDR_PCB_VERSION_MATCH(addr, pcb) 1 +#define IP_ADDR_PCB_VERSION_MATCH_EXACT(pcb, ipaddr) 1 + +#define ip_addr_set_any_val(is_ipv6, ipaddr) ip_addr_set_any(is_ipv6, &(ipaddr)) +#define ip_addr_set_loopback_val(is_ipv6, ipaddr) ip_addr_set_loopback(is_ipv6, &(ipaddr)) + +#if LWIP_IPV4 + +typedef ip4_addr_t ip_addr_t; +#define IPADDR4_INIT(u32val) { u32val } +#define IPADDR4_INIT_BYTES(a,b,c,d) IPADDR4_INIT(PP_HTONL(LWIP_MAKEU32(a,b,c,d))) +#define IP_IS_V4_VAL(ipaddr) 1 +#define IP_IS_V6_VAL(ipaddr) 0 +#define IP_IS_V4(ipaddr) 1 +#define IP_IS_V6(ipaddr) 0 +#define IP_IS_ANY_TYPE_VAL(ipaddr) 0 +#define IP_SET_TYPE_VAL(ipaddr, iptype) +#define IP_SET_TYPE(ipaddr, iptype) +#define IP_GET_TYPE(ipaddr) IPADDR_TYPE_V4 +#define IP_ADDR_RAW_SIZE(ipaddr) sizeof(ip4_addr_t) +#define ip_2_ip4(ipaddr) (ipaddr) +#define IP_ADDR4(ipaddr,a,b,c,d) IP4_ADDR(ipaddr,a,b,c,d) + +#define ip_addr_copy(dest, src) ip4_addr_copy(dest, src) +#define ip_addr_copy_from_ip4(dest, src) ip4_addr_copy(dest, src) +#define ip_addr_set_ip4_u32(ipaddr, val) ip4_addr_set_u32(ip_2_ip4(ipaddr), val) +#define ip_addr_set_ip4_u32_val(ipaddr, val) ip_addr_set_ip4_u32(&(ipaddr), val) +#define ip_addr_get_ip4_u32(ipaddr) ip4_addr_get_u32(ip_2_ip4(ipaddr)) +#define ip_addr_set(dest, src) ip4_addr_set(dest, src) +#define ip_addr_set_ipaddr(dest, src) ip4_addr_set(dest, src) +#define ip_addr_set_zero(ipaddr) ip4_addr_set_zero(ipaddr) +#define ip_addr_set_zero_ip4(ipaddr) ip4_addr_set_zero(ipaddr) +#define ip_addr_set_any(is_ipv6, ipaddr) ip4_addr_set_any(ipaddr) +#define ip_addr_set_loopback(is_ipv6, ipaddr) ip4_addr_set_loopback(ipaddr) +#define ip_addr_set_hton(dest, src) ip4_addr_set_hton(dest, src) +#define ip_addr_get_network(target, host, mask) ip4_addr_get_network(target, host, mask) +#define ip_addr_netcmp(addr1, addr2, mask) ip4_addr_netcmp(addr1, addr2, mask) +#define ip_addr_cmp(addr1, addr2) ip4_addr_cmp(addr1, addr2) +#define ip_addr_isany(ipaddr) ip4_addr_isany(ipaddr) +#define ip_addr_isany_val(ipaddr) ip4_addr_isany_val(ipaddr) +#define ip_addr_isloopback(ipaddr) ip4_addr_isloopback(ipaddr) +#define ip_addr_islinklocal(ipaddr) ip4_addr_islinklocal(ipaddr) +#define ip_addr_isbroadcast(addr, netif) ip4_addr_isbroadcast(addr, netif) +#define ip_addr_ismulticast(ipaddr) ip4_addr_ismulticast(ipaddr) +#define ip_addr_debug_print(debug, ipaddr) ip4_addr_debug_print(debug, ipaddr) +#define ip_addr_debug_print_val(debug, ipaddr) ip4_addr_debug_print_val(debug, ipaddr) +#define ipaddr_ntoa(ipaddr) ip4addr_ntoa(ipaddr) +#define ipaddr_ntoa_r(ipaddr, buf, buflen) ip4addr_ntoa_r(ipaddr, buf, buflen) +#define ipaddr_aton(cp, addr) ip4addr_aton(cp, addr) + +#define IPADDR_STRLEN_MAX IP4ADDR_STRLEN_MAX + +#define IP46_ADDR_ANY(type) (IP4_ADDR_ANY) + +#else /* LWIP_IPV4 */ + +typedef ip6_addr_t ip_addr_t; +#define IPADDR6_INIT(a, b, c, d) { { a, b, c, d } IPADDR6_ZONE_INIT } +#define IPADDR6_INIT_HOST(a, b, c, d) { { PP_HTONL(a), PP_HTONL(b), PP_HTONL(c), PP_HTONL(d) } IPADDR6_ZONE_INIT } +#define IP_IS_V4_VAL(ipaddr) 0 +#define IP_IS_V6_VAL(ipaddr) 1 +#define IP_IS_V4(ipaddr) 0 +#define IP_IS_V6(ipaddr) 1 +#define IP_IS_ANY_TYPE_VAL(ipaddr) 0 +#define IP_SET_TYPE_VAL(ipaddr, iptype) +#define IP_SET_TYPE(ipaddr, iptype) +#define IP_GET_TYPE(ipaddr) IPADDR_TYPE_V6 +#define IP_ADDR_RAW_SIZE(ipaddr) sizeof(ip6_addr_t) +#define ip_2_ip6(ipaddr) (ipaddr) +#define IP_ADDR6(ipaddr,i0,i1,i2,i3) IP6_ADDR(ipaddr,i0,i1,i2,i3) +#define IP_ADDR6_HOST(ipaddr,i0,i1,i2,i3) IP_ADDR6(ipaddr,PP_HTONL(i0),PP_HTONL(i1),PP_HTONL(i2),PP_HTONL(i3)) + +#define ip_addr_copy(dest, src) ip6_addr_copy(dest, src) +#define ip_addr_copy_from_ip6(dest, src) ip6_addr_copy(dest, src) +#define ip_addr_copy_from_ip6_packed(dest, src) ip6_addr_copy_from_packed(dest, src) +#define ip_addr_set(dest, src) ip6_addr_set(dest, src) +#define ip_addr_set_ipaddr(dest, src) ip6_addr_set(dest, src) +#define ip_addr_set_zero(ipaddr) ip6_addr_set_zero(ipaddr) +#define ip_addr_set_zero_ip6(ipaddr) ip6_addr_set_zero(ipaddr) +#define ip_addr_set_any(is_ipv6, ipaddr) ip6_addr_set_any(ipaddr) +#define ip_addr_set_loopback(is_ipv6, ipaddr) ip6_addr_set_loopback(ipaddr) +#define ip_addr_set_hton(dest, src) ip6_addr_set_hton(dest, src) +#define ip_addr_get_network(target, host, mask) ip6_addr_set_zero(target) +#define ip_addr_netcmp(addr1, addr2, mask) 0 +#define ip_addr_cmp(addr1, addr2) ip6_addr_cmp(addr1, addr2) +#define ip_addr_cmp_zoneless(addr1, addr2) ip6_addr_cmp_zoneless(addr1, addr2) +#define ip_addr_isany(ipaddr) ip6_addr_isany(ipaddr) +#define ip_addr_isany_val(ipaddr) ip6_addr_isany_val(ipaddr) +#define ip_addr_isloopback(ipaddr) ip6_addr_isloopback(ipaddr) +#define ip_addr_islinklocal(ipaddr) ip6_addr_islinklocal(ipaddr) +#define ip_addr_isbroadcast(addr, netif) 0 +#define ip_addr_ismulticast(ipaddr) ip6_addr_ismulticast(ipaddr) +#define ip_addr_debug_print(debug, ipaddr) ip6_addr_debug_print(debug, ipaddr) +#define ip_addr_debug_print_val(debug, ipaddr) ip6_addr_debug_print_val(debug, ipaddr) +#define ipaddr_ntoa(ipaddr) ip6addr_ntoa(ipaddr) +#define ipaddr_ntoa_r(ipaddr, buf, buflen) ip6addr_ntoa_r(ipaddr, buf, buflen) +#define ipaddr_aton(cp, addr) ip6addr_aton(cp, addr) + +#define IPADDR_STRLEN_MAX IP6ADDR_STRLEN_MAX + +#define IP46_ADDR_ANY(type) (IP6_ADDR_ANY) + +#endif /* LWIP_IPV4 */ +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + +#if LWIP_IPV4 + +extern const ip_addr_t ip_addr_any; +extern const ip_addr_t ip_addr_broadcast; + +/** + * @ingroup ip4addr + * Can be used as a fixed/const ip_addr_t + * for the IP wildcard. + * Defined to @ref IP4_ADDR_ANY when IPv4 is enabled. + * Defined to @ref IP6_ADDR_ANY in IPv6 only systems. + * Use this if you can handle IPv4 _AND_ IPv6 addresses. + * Use @ref IP4_ADDR_ANY or @ref IP6_ADDR_ANY when the IP + * type matters. + */ +#define IP_ADDR_ANY IP4_ADDR_ANY +/** + * @ingroup ip4addr + * Can be used as a fixed/const ip_addr_t + * for the IPv4 wildcard and the broadcast address + */ +#define IP4_ADDR_ANY (&ip_addr_any) +/** + * @ingroup ip4addr + * Can be used as a fixed/const ip4_addr_t + * for the wildcard and the broadcast address + */ +#define IP4_ADDR_ANY4 (ip_2_ip4(&ip_addr_any)) + +/** @ingroup ip4addr */ +#define IP_ADDR_BROADCAST (&ip_addr_broadcast) +/** @ingroup ip4addr */ +#define IP4_ADDR_BROADCAST (ip_2_ip4(&ip_addr_broadcast)) + +#endif /* LWIP_IPV4*/ + +#if LWIP_IPV6 + +extern const ip_addr_t ip6_addr_any; + +/** + * @ingroup ip6addr + * IP6_ADDR_ANY can be used as a fixed ip_addr_t + * for the IPv6 wildcard address + */ +#define IP6_ADDR_ANY (&ip6_addr_any) +/** + * @ingroup ip6addr + * IP6_ADDR_ANY6 can be used as a fixed ip6_addr_t + * for the IPv6 wildcard address + */ +#define IP6_ADDR_ANY6 (ip_2_ip6(&ip6_addr_any)) + +#if !LWIP_IPV4 +/** IPv6-only configurations */ +#define IP_ADDR_ANY IP6_ADDR_ANY +#endif /* !LWIP_IPV4 */ + +#endif + +#if LWIP_IPV4 && LWIP_IPV6 +/** @ingroup ipaddr */ +#define IP_ANY_TYPE (&ip_addr_any_type) +#else +#define IP_ANY_TYPE IP_ADDR_ANY +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_IP_ADDR_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/mem.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/mem.h new file mode 100644 index 000000000..424de91b8 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/mem.h @@ -0,0 +1,82 @@ +/** + * @file + * Heap API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_MEM_H +#define LWIP_HDR_MEM_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if MEM_LIBC_MALLOC + +#include "lwip/arch.h" + +typedef size_t mem_size_t; +#define MEM_SIZE_F SZT_F + +#elif MEM_USE_POOLS + +typedef u16_t mem_size_t; +#define MEM_SIZE_F U16_F + +#else + +/* MEM_SIZE would have to be aligned, but using 64000 here instead of + * 65535 leaves some room for alignment... + */ +#if MEM_SIZE > 64000L +typedef u32_t mem_size_t; +#define MEM_SIZE_F U32_F +#else +typedef u16_t mem_size_t; +#define MEM_SIZE_F U16_F +#endif /* MEM_SIZE > 64000 */ +#endif + +void mem_init(void); +void *mem_trim(void *mem, mem_size_t size); +void *mem_malloc(mem_size_t size); +void *mem_calloc(mem_size_t count, mem_size_t size); +void mem_free(void *mem); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_MEM_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/memp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/memp.h new file mode 100644 index 000000000..74ac8189a --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/memp.h @@ -0,0 +1,155 @@ +/** + * @file + * Memory pool API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#ifndef LWIP_HDR_MEMP_H +#define LWIP_HDR_MEMP_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* run once with empty definition to handle all custom includes in lwippools.h */ +#define LWIP_MEMPOOL(name,num,size,desc) +#include "lwip/priv/memp_std.h" + +/** Create the list of all memory pools managed by memp. MEMP_MAX represents a NULL pool at the end */ +typedef enum { +#define LWIP_MEMPOOL(name,num,size,desc) MEMP_##name, +#include "lwip/priv/memp_std.h" + MEMP_MAX +} memp_t; + +#include "lwip/priv/memp_priv.h" +#include "lwip/stats.h" + +extern const struct memp_desc* const memp_pools[MEMP_MAX]; + +/** + * @ingroup mempool + * Declare prototype for private memory pool if it is used in multiple files + */ +#define LWIP_MEMPOOL_PROTOTYPE(name) extern const struct memp_desc memp_ ## name + +#if MEMP_MEM_MALLOC + +#define LWIP_MEMPOOL_DECLARE(name,num,size,desc) \ + LWIP_MEMPOOL_DECLARE_STATS_INSTANCE(memp_stats_ ## name) \ + const struct memp_desc memp_ ## name = { \ + DECLARE_LWIP_MEMPOOL_DESC(desc) \ + LWIP_MEMPOOL_DECLARE_STATS_REFERENCE(memp_stats_ ## name) \ + LWIP_MEM_ALIGN_SIZE(size) \ + }; + +#else /* MEMP_MEM_MALLOC */ + +/** + * @ingroup mempool + * Declare a private memory pool + * Private mempools example: + * .h: only when pool is used in multiple .c files: LWIP_MEMPOOL_PROTOTYPE(my_private_pool); + * .c: + * - in global variables section: LWIP_MEMPOOL_DECLARE(my_private_pool, 10, sizeof(foo), "Some description") + * - call ONCE before using pool (e.g. in some init() function): LWIP_MEMPOOL_INIT(my_private_pool); + * - allocate: void* my_new_mem = LWIP_MEMPOOL_ALLOC(my_private_pool); + * - free: LWIP_MEMPOOL_FREE(my_private_pool, my_new_mem); + * + * To relocate a pool, declare it as extern in cc.h. Example for GCC: + * extern u8_t \_\_attribute\_\_((section(".onchip_mem"))) memp_memory_my_private_pool_base[]; + */ +#define LWIP_MEMPOOL_DECLARE(name,num,size,desc) \ + LWIP_DECLARE_MEMORY_ALIGNED(memp_memory_ ## name ## _base, ((num) * (MEMP_SIZE + MEMP_ALIGN_SIZE(size)))); \ + \ + LWIP_MEMPOOL_DECLARE_STATS_INSTANCE(memp_stats_ ## name) \ + \ + static struct memp *memp_tab_ ## name; \ + \ + const struct memp_desc memp_ ## name = { \ + DECLARE_LWIP_MEMPOOL_DESC(desc) \ + LWIP_MEMPOOL_DECLARE_STATS_REFERENCE(memp_stats_ ## name) \ + LWIP_MEM_ALIGN_SIZE(size), \ + (num), \ + memp_memory_ ## name ## _base, \ + &memp_tab_ ## name \ + }; + +#endif /* MEMP_MEM_MALLOC */ + +/** + * @ingroup mempool + * Initialize a private memory pool + */ +#define LWIP_MEMPOOL_INIT(name) memp_init_pool(&memp_ ## name) +/** + * @ingroup mempool + * Allocate from a private memory pool + */ +#define LWIP_MEMPOOL_ALLOC(name) memp_malloc_pool(&memp_ ## name) +/** + * @ingroup mempool + * Free element from a private memory pool + */ +#define LWIP_MEMPOOL_FREE(name, x) memp_free_pool(&memp_ ## name, (x)) + +#if MEM_USE_POOLS +/** This structure is used to save the pool one element came from. + * This has to be defined here as it is required for pool size calculation. */ +struct memp_malloc_helper +{ + memp_t poolnr; +#if MEMP_OVERFLOW_CHECK || (LWIP_STATS && MEM_STATS) + u16_t size; +#endif /* MEMP_OVERFLOW_CHECK || (LWIP_STATS && MEM_STATS) */ +}; +#endif /* MEM_USE_POOLS */ + +void memp_init(void); + +#if MEMP_OVERFLOW_CHECK +void *memp_malloc_fn(memp_t type, const char* file, const int line); +#define memp_malloc(t) memp_malloc_fn((t), __FILE__, __LINE__) +#else +void *memp_malloc(memp_t type); +#endif +void memp_free(memp_t type, void *mem); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_MEMP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/mld6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/mld6.h new file mode 100644 index 000000000..f8c99d9d9 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/mld6.h @@ -0,0 +1,99 @@ +/** + * @file + * + * Multicast listener discovery for IPv6. Aims to be compliant with RFC 2710. + * No support for MLDv2. + */ + +/* + * Copyright (c) 2010 Inico Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Ivan Delamer + * + * + * Please coordinate changes and requests with Ivan Delamer + * + */ + +#ifndef LWIP_HDR_MLD6_H +#define LWIP_HDR_MLD6_H + +#include "lwip/opt.h" + +#if LWIP_IPV6_MLD && LWIP_IPV6 /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/pbuf.h" +#include "lwip/netif.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** MLD group */ +struct mld_group { + /** next link */ + struct mld_group *next; + /** multicast address */ + ip6_addr_t group_address; + /** signifies we were the last person to report */ + u8_t last_reporter_flag; + /** current state of the group */ + u8_t group_state; + /** timer for reporting */ + u16_t timer; + /** counter of simultaneous uses */ + u8_t use; +}; + +#define MLD6_TMR_INTERVAL 100 /* Milliseconds */ + +err_t mld6_stop(struct netif *netif); +void mld6_report_groups(struct netif *netif); +void mld6_tmr(void); +struct mld_group *mld6_lookfor_group(struct netif *ifp, const ip6_addr_t *addr); +void mld6_input(struct pbuf *p, struct netif *inp); +err_t mld6_joingroup(const ip6_addr_t *srcaddr, const ip6_addr_t *groupaddr); +err_t mld6_joingroup_netif(struct netif *netif, const ip6_addr_t *groupaddr); +err_t mld6_leavegroup(const ip6_addr_t *srcaddr, const ip6_addr_t *groupaddr); +err_t mld6_leavegroup_netif(struct netif *netif, const ip6_addr_t *groupaddr); + +/** @ingroup mld6 + * Get list head of MLD6 groups for netif. + * Note: The allnodes group IP is NOT in the list, since it must always + * be received for correct IPv6 operation. + * @see @ref netif_set_mld_mac_filter() + */ +#define netif_mld6_data(netif) ((struct mld_group *)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_MLD6)) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV6_MLD && LWIP_IPV6 */ + +#endif /* LWIP_HDR_MLD6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/nd6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/nd6.h new file mode 100644 index 000000000..89137d5d3 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/nd6.h @@ -0,0 +1,90 @@ +/** + * @file + * + * Neighbor discovery and stateless address autoconfiguration for IPv6. + * Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862 + * (Address autoconfiguration). + */ + +/* + * Copyright (c) 2010 Inico Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Ivan Delamer + * + * + * Please coordinate changes and requests with Ivan Delamer + * + */ + +#ifndef LWIP_HDR_ND6_H +#define LWIP_HDR_ND6_H + +#include "lwip/opt.h" + +#if LWIP_IPV6 /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/ip6_addr.h" +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** 1 second period */ +#define ND6_TMR_INTERVAL 1000 + +/** Router solicitations are sent in 4 second intervals (see RFC 4861, ch. 6.3.7) */ +#ifndef ND6_RTR_SOLICITATION_INTERVAL +#define ND6_RTR_SOLICITATION_INTERVAL 4000 +#endif + +struct pbuf; +struct netif; + +void nd6_tmr(void); +void nd6_input(struct pbuf *p, struct netif *inp); +void nd6_clear_destination_cache(void); +struct netif *nd6_find_route(const ip6_addr_t *ip6addr); +err_t nd6_get_next_hop_addr_or_queue(struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr, const u8_t **hwaddrp); +u16_t nd6_get_destination_mtu(const ip6_addr_t *ip6addr, struct netif *netif); +#if LWIP_ND6_TCP_REACHABILITY_HINTS +void nd6_reachability_hint(const ip6_addr_t *ip6addr); +#endif /* LWIP_ND6_TCP_REACHABILITY_HINTS */ +void nd6_cleanup_netif(struct netif *netif); +#if LWIP_IPV6_MLD +void nd6_adjust_mld_membership(struct netif *netif, s8_t addr_idx, u8_t new_state); +#endif /* LWIP_IPV6_MLD */ +void nd6_restart_netif(struct netif *netif); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV6 */ + +#endif /* LWIP_HDR_ND6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netbuf.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netbuf.h new file mode 100644 index 000000000..e92c934e4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netbuf.h @@ -0,0 +1,116 @@ +/** + * @file + * netbuf API (for netconn API) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_NETBUF_H +#define LWIP_HDR_NETBUF_H + +#include "lwip/opt.h" + +#if LWIP_NETCONN || LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ +/* Note: Netconn API is always available when sockets are enabled - + * sockets are implemented on top of them */ + +#include "lwip/pbuf.h" +#include "lwip/ip_addr.h" +#include "lwip/ip6_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** This netbuf has dest-addr/port set */ +#define NETBUF_FLAG_DESTADDR 0x01 +/** This netbuf includes a checksum */ +#define NETBUF_FLAG_CHKSUM 0x02 + +/** "Network buffer" - contains data and addressing info */ +struct netbuf { + struct pbuf *p, *ptr; + ip_addr_t addr; + u16_t port; +#if LWIP_NETBUF_RECVINFO || LWIP_CHECKSUM_ON_COPY + u8_t flags; + u16_t toport_chksum; +#if LWIP_NETBUF_RECVINFO + ip_addr_t toaddr; +#endif /* LWIP_NETBUF_RECVINFO */ +#endif /* LWIP_NETBUF_RECVINFO || LWIP_CHECKSUM_ON_COPY */ +}; + +/* Network buffer functions: */ +struct netbuf * netbuf_new (void); +void netbuf_delete (struct netbuf *buf); +void * netbuf_alloc (struct netbuf *buf, u16_t size); +void netbuf_free (struct netbuf *buf); +err_t netbuf_ref (struct netbuf *buf, + const void *dataptr, u16_t size); +void netbuf_chain (struct netbuf *head, struct netbuf *tail); + +err_t netbuf_data (struct netbuf *buf, + void **dataptr, u16_t *len); +s8_t netbuf_next (struct netbuf *buf); +void netbuf_first (struct netbuf *buf); + + +#define netbuf_copy_partial(buf, dataptr, len, offset) \ + pbuf_copy_partial((buf)->p, (dataptr), (len), (offset)) +#define netbuf_copy(buf,dataptr,len) netbuf_copy_partial(buf, dataptr, len, 0) +#define netbuf_take(buf, dataptr, len) pbuf_take((buf)->p, dataptr, len) +#define netbuf_len(buf) ((buf)->p->tot_len) +#define netbuf_fromaddr(buf) (&((buf)->addr)) +#define netbuf_set_fromaddr(buf, fromaddr) ip_addr_set(&((buf)->addr), fromaddr) +#define netbuf_fromport(buf) ((buf)->port) +#if LWIP_NETBUF_RECVINFO +#define netbuf_destaddr(buf) (&((buf)->toaddr)) +#define netbuf_set_destaddr(buf, destaddr) ip_addr_set(&((buf)->toaddr), destaddr) +#if LWIP_CHECKSUM_ON_COPY +#define netbuf_destport(buf) (((buf)->flags & NETBUF_FLAG_DESTADDR) ? (buf)->toport_chksum : 0) +#else /* LWIP_CHECKSUM_ON_COPY */ +#define netbuf_destport(buf) ((buf)->toport_chksum) +#endif /* LWIP_CHECKSUM_ON_COPY */ +#endif /* LWIP_NETBUF_RECVINFO */ +#if LWIP_CHECKSUM_ON_COPY +#define netbuf_set_chksum(buf, chksum) do { (buf)->flags = NETBUF_FLAG_CHKSUM; \ + (buf)->toport_chksum = chksum; } while(0) +#endif /* LWIP_CHECKSUM_ON_COPY */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_NETCONN || LWIP_SOCKET */ + +#endif /* LWIP_HDR_NETBUF_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netdb.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netdb.h new file mode 100644 index 000000000..6aae914be --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netdb.h @@ -0,0 +1,150 @@ +/** + * @file + * NETDB API (sockets) + */ + +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_NETDB_H +#define LWIP_HDR_NETDB_H + +#include "lwip/opt.h" + +#if LWIP_DNS && LWIP_SOCKET + +#include "lwip/arch.h" +#include "lwip/inet.h" +#include "lwip/sockets.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* some rarely used options */ +#ifndef LWIP_DNS_API_DECLARE_H_ERRNO +#define LWIP_DNS_API_DECLARE_H_ERRNO 1 +#endif + +#ifndef LWIP_DNS_API_DEFINE_ERRORS +#define LWIP_DNS_API_DEFINE_ERRORS 1 +#endif + +#ifndef LWIP_DNS_API_DEFINE_FLAGS +#define LWIP_DNS_API_DEFINE_FLAGS 1 +#endif + +#ifndef LWIP_DNS_API_DECLARE_STRUCTS +#define LWIP_DNS_API_DECLARE_STRUCTS 1 +#endif + +#if LWIP_DNS_API_DEFINE_ERRORS +/** Errors used by the DNS API functions, h_errno can be one of them */ +#define EAI_NONAME 200 +#define EAI_SERVICE 201 +#define EAI_FAIL 202 +#define EAI_MEMORY 203 +#define EAI_FAMILY 204 + +#define HOST_NOT_FOUND 210 +#define NO_DATA 211 +#define NO_RECOVERY 212 +#define TRY_AGAIN 213 +#endif /* LWIP_DNS_API_DEFINE_ERRORS */ + +#if LWIP_DNS_API_DEFINE_FLAGS +/* input flags for struct addrinfo */ +#define AI_PASSIVE 0x01 +#define AI_CANONNAME 0x02 +#define AI_NUMERICHOST 0x04 +#define AI_NUMERICSERV 0x08 +#define AI_V4MAPPED 0x10 +#define AI_ALL 0x20 +#define AI_ADDRCONFIG 0x40 +#endif /* LWIP_DNS_API_DEFINE_FLAGS */ + +#if LWIP_DNS_API_DECLARE_STRUCTS +struct hostent { + char *h_name; /* Official name of the host. */ + char **h_aliases; /* A pointer to an array of pointers to alternative host names, + terminated by a null pointer. */ + int h_addrtype; /* Address type. */ + int h_length; /* The length, in bytes, of the address. */ + char **h_addr_list; /* A pointer to an array of pointers to network addresses (in + network byte order) for the host, terminated by a null pointer. */ +#define h_addr h_addr_list[0] /* for backward compatibility */ +}; + +struct addrinfo { + int ai_flags; /* Input flags. */ + int ai_family; /* Address family of socket. */ + int ai_socktype; /* Socket type. */ + int ai_protocol; /* Protocol of socket. */ + socklen_t ai_addrlen; /* Length of socket address. */ + struct sockaddr *ai_addr; /* Socket address of socket. */ + char *ai_canonname; /* Canonical name of service location. */ + struct addrinfo *ai_next; /* Pointer to next in list. */ +}; +#endif /* LWIP_DNS_API_DECLARE_STRUCTS */ + +#define NETDB_ELEM_SIZE (sizeof(struct addrinfo) + sizeof(struct sockaddr_storage) + DNS_MAX_NAME_LENGTH + 1) + +#if LWIP_DNS_API_DECLARE_H_ERRNO +/* application accessible error code set by the DNS API functions */ +extern int h_errno; +#endif /* LWIP_DNS_API_DECLARE_H_ERRNO*/ + +struct hostent *lwip_gethostbyname(const char *name); +int lwip_gethostbyname_r(const char *name, struct hostent *ret, char *buf, + size_t buflen, struct hostent **result, int *h_errnop); +void lwip_freeaddrinfo(struct addrinfo *ai); +int lwip_getaddrinfo(const char *nodename, + const char *servname, + const struct addrinfo *hints, + struct addrinfo **res); + +#if LWIP_COMPAT_SOCKETS +/** @ingroup netdbapi */ +#define gethostbyname(name) lwip_gethostbyname(name) +/** @ingroup netdbapi */ +#define gethostbyname_r(name, ret, buf, buflen, result, h_errnop) \ + lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop) +/** @ingroup netdbapi */ +#define freeaddrinfo(addrinfo) lwip_freeaddrinfo(addrinfo) +/** @ingroup netdbapi */ +#define getaddrinfo(nodname, servname, hints, res) \ + lwip_getaddrinfo(nodname, servname, hints, res) +#endif /* LWIP_COMPAT_SOCKETS */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_DNS && LWIP_SOCKET */ + +#endif /* LWIP_HDR_NETDB_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netif.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netif.h new file mode 100644 index 000000000..d3ec064a3 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netif.h @@ -0,0 +1,669 @@ +/** + * @file + * netif API (to be used from TCPIP thread) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_NETIF_H +#define LWIP_HDR_NETIF_H + +#include "lwip/opt.h" + +#define ENABLE_LOOPBACK (LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF) + +#include "lwip/err.h" + +#include "lwip/ip_addr.h" + +#include "lwip/def.h" +#include "lwip/pbuf.h" +#include "lwip/stats.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Throughout this file, IP addresses are expected to be in + * the same byte order as in IP_PCB. */ + +/** Must be the maximum of all used hardware address lengths + across all types of interfaces in use. + This does not have to be changed, normally. */ +#ifndef NETIF_MAX_HWADDR_LEN +#define NETIF_MAX_HWADDR_LEN 6U +#endif + +/** The size of a fully constructed netif name which the + * netif can be identified by in APIs. Composed of + * 2 chars, 3 (max) digits, and 1 \0 + */ +#define NETIF_NAMESIZE 6 + +/** + * @defgroup netif_flags Flags + * @ingroup netif + * @{ + */ + +/** Whether the network interface is 'up'. This is + * a software flag used to control whether this network + * interface is enabled and processes traffic. + * It must be set by the startup code before this netif can be used + * (also for dhcp/autoip). + */ +#define NETIF_FLAG_UP 0x01U +/** If set, the netif has broadcast capability. + * Set by the netif driver in its init function. */ +#define NETIF_FLAG_BROADCAST 0x02U +/** If set, the interface has an active link + * (set by the network interface driver). + * Either set by the netif driver in its init function (if the link + * is up at that time) or at a later point once the link comes up + * (if link detection is supported by the hardware). */ +#define NETIF_FLAG_LINK_UP 0x04U +/** If set, the netif is an ethernet device using ARP. + * Set by the netif driver in its init function. + * Used to check input packet types and use of DHCP. */ +#define NETIF_FLAG_ETHARP 0x08U +/** If set, the netif is an ethernet device. It might not use + * ARP or TCP/IP if it is used for PPPoE only. + */ +#define NETIF_FLAG_ETHERNET 0x10U +/** If set, the netif has IGMP capability. + * Set by the netif driver in its init function. */ +#define NETIF_FLAG_IGMP 0x20U +/** If set, the netif has MLD6 capability. + * Set by the netif driver in its init function. */ +#define NETIF_FLAG_MLD6 0x40U + +/** + * @} + */ + +enum lwip_internal_netif_client_data_index +{ +#if LWIP_IPV4 +#if LWIP_DHCP + LWIP_NETIF_CLIENT_DATA_INDEX_DHCP, +#endif +#if LWIP_AUTOIP + LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP, +#endif +#if LWIP_IGMP + LWIP_NETIF_CLIENT_DATA_INDEX_IGMP, +#endif +#endif /* LWIP_IPV4 */ +#if LWIP_IPV6 +#if LWIP_IPV6_DHCP6 + LWIP_NETIF_CLIENT_DATA_INDEX_DHCP6, +#endif +#if LWIP_IPV6_MLD + LWIP_NETIF_CLIENT_DATA_INDEX_MLD6, +#endif +#endif /* LWIP_IPV6 */ + LWIP_NETIF_CLIENT_DATA_INDEX_MAX +}; + +#if LWIP_CHECKSUM_CTRL_PER_NETIF +#define NETIF_CHECKSUM_GEN_IP 0x0001 +#define NETIF_CHECKSUM_GEN_UDP 0x0002 +#define NETIF_CHECKSUM_GEN_TCP 0x0004 +#define NETIF_CHECKSUM_GEN_ICMP 0x0008 +#define NETIF_CHECKSUM_GEN_ICMP6 0x0010 +#define NETIF_CHECKSUM_CHECK_IP 0x0100 +#define NETIF_CHECKSUM_CHECK_UDP 0x0200 +#define NETIF_CHECKSUM_CHECK_TCP 0x0400 +#define NETIF_CHECKSUM_CHECK_ICMP 0x0800 +#define NETIF_CHECKSUM_CHECK_ICMP6 0x1000 +#define NETIF_CHECKSUM_ENABLE_ALL 0xFFFF +#define NETIF_CHECKSUM_DISABLE_ALL 0x0000 +#endif /* LWIP_CHECKSUM_CTRL_PER_NETIF */ + +struct netif; + +/** MAC Filter Actions, these are passed to a netif's igmp_mac_filter or + * mld_mac_filter callback function. */ +enum netif_mac_filter_action { + /** Delete a filter entry */ + NETIF_DEL_MAC_FILTER = 0, + /** Add a filter entry */ + NETIF_ADD_MAC_FILTER = 1 +}; + +/** Function prototype for netif init functions. Set up flags and output/linkoutput + * callback functions in this function. + * + * @param netif The netif to initialize + */ +typedef err_t (*netif_init_fn)(struct netif *netif); +/** Function prototype for netif->input functions. This function is saved as 'input' + * callback function in the netif struct. Call it when a packet has been received. + * + * @param p The received packet, copied into a pbuf + * @param inp The netif which received the packet + * @return ERR_OK if the packet was handled + * != ERR_OK is the packet was NOT handled, in this case, the caller has + * to free the pbuf + */ +typedef err_t (*netif_input_fn)(struct pbuf *p, struct netif *inp); + +#if LWIP_IPV4 +/** Function prototype for netif->output functions. Called by lwIP when a packet + * shall be sent. For ethernet netif, set this to 'etharp_output' and set + * 'linkoutput'. + * + * @param netif The netif which shall send a packet + * @param p The packet to send (p->payload points to IP header) + * @param ipaddr The IP address to which the packet shall be sent + */ +typedef err_t (*netif_output_fn)(struct netif *netif, struct pbuf *p, + const ip4_addr_t *ipaddr); +#endif /* LWIP_IPV4*/ + +#if LWIP_IPV6 +/** Function prototype for netif->output_ip6 functions. Called by lwIP when a packet + * shall be sent. For ethernet netif, set this to 'ethip6_output' and set + * 'linkoutput'. + * + * @param netif The netif which shall send a packet + * @param p The packet to send (p->payload points to IP header) + * @param ipaddr The IPv6 address to which the packet shall be sent + */ +typedef err_t (*netif_output_ip6_fn)(struct netif *netif, struct pbuf *p, + const ip6_addr_t *ipaddr); +#endif /* LWIP_IPV6 */ + +/** Function prototype for netif->linkoutput functions. Only used for ethernet + * netifs. This function is called by ARP when a packet shall be sent. + * + * @param netif The netif which shall send a packet + * @param p The packet to send (raw ethernet packet) + */ +typedef err_t (*netif_linkoutput_fn)(struct netif *netif, struct pbuf *p); +/** Function prototype for netif status- or link-callback functions. */ +typedef void (*netif_status_callback_fn)(struct netif *netif); +#if LWIP_IPV4 && LWIP_IGMP +/** Function prototype for netif igmp_mac_filter functions */ +typedef err_t (*netif_igmp_mac_filter_fn)(struct netif *netif, + const ip4_addr_t *group, enum netif_mac_filter_action action); +#endif /* LWIP_IPV4 && LWIP_IGMP */ +#if LWIP_IPV6 && LWIP_IPV6_MLD +/** Function prototype for netif mld_mac_filter functions */ +typedef err_t (*netif_mld_mac_filter_fn)(struct netif *netif, + const ip6_addr_t *group, enum netif_mac_filter_action action); +#endif /* LWIP_IPV6 && LWIP_IPV6_MLD */ + +#if LWIP_DHCP || LWIP_AUTOIP || LWIP_IGMP || LWIP_IPV6_MLD || LWIP_IPV6_DHCP6 || (LWIP_NUM_NETIF_CLIENT_DATA > 0) +#if LWIP_NUM_NETIF_CLIENT_DATA > 0 +u8_t netif_alloc_client_data_id(void); +#endif +/** @ingroup netif_cd + * Set client data. Obtain ID from netif_alloc_client_data_id(). + */ +#define netif_set_client_data(netif, id, data) netif_get_client_data(netif, id) = (data) +/** @ingroup netif_cd + * Get client data. Obtain ID from netif_alloc_client_data_id(). + */ +#define netif_get_client_data(netif, id) (netif)->client_data[(id)] +#endif + +#if (LWIP_IPV4 && LWIP_ARP && (ARP_TABLE_SIZE > 0x7f)) || (LWIP_IPV6 && (LWIP_ND6_NUM_DESTINATIONS > 0x7f)) +typedef u16_t netif_addr_idx_t; +#define NETIF_ADDR_IDX_MAX 0x7FFF +#else +typedef u8_t netif_addr_idx_t; +#define NETIF_ADDR_IDX_MAX 0x7F +#endif + +#if LWIP_NETIF_HWADDRHINT +#define LWIP_NETIF_USE_HINTS 1 +struct netif_hint { + netif_addr_idx_t addr_hint; +}; +#else /* LWIP_NETIF_HWADDRHINT */ +#define LWIP_NETIF_USE_HINTS 0 +#endif /* LWIP_NETIF_HWADDRHINT */ + +/** Generic data structure used for all lwIP network interfaces. + * The following fields should be filled in by the initialization + * function for the device driver: hwaddr_len, hwaddr[], mtu, flags */ +struct netif { +#if !LWIP_SINGLE_NETIF + /** pointer to next in linked list */ + struct netif *next; +#endif + +#if LWIP_IPV4 + /** IP address configuration in network byte order */ + ip_addr_t ip_addr; + ip_addr_t netmask; + ip_addr_t gw; +#endif /* LWIP_IPV4 */ +#if LWIP_IPV6 + /** Array of IPv6 addresses for this netif. */ + ip_addr_t ip6_addr[LWIP_IPV6_NUM_ADDRESSES]; + /** The state of each IPv6 address (Tentative, Preferred, etc). + * @see ip6_addr.h */ + u8_t ip6_addr_state[LWIP_IPV6_NUM_ADDRESSES]; +#if LWIP_IPV6_ADDRESS_LIFETIMES + /** Remaining valid and preferred lifetime of each IPv6 address, in seconds. + * For valid lifetimes, the special value of IP6_ADDR_LIFE_STATIC (0) + * indicates the address is static and has no lifetimes. */ + u32_t ip6_addr_valid_life[LWIP_IPV6_NUM_ADDRESSES]; + u32_t ip6_addr_pref_life[LWIP_IPV6_NUM_ADDRESSES]; +#endif /* LWIP_IPV6_ADDRESS_LIFETIMES */ +#endif /* LWIP_IPV6 */ + /** This function is called by the network device driver + * to pass a packet up the TCP/IP stack. */ + netif_input_fn input; +#if LWIP_IPV4 + /** This function is called by the IP module when it wants + * to send a packet on the interface. This function typically + * first resolves the hardware address, then sends the packet. + * For ethernet physical layer, this is usually etharp_output() */ + netif_output_fn output; +#endif /* LWIP_IPV4 */ + /** This function is called by ethernet_output() when it wants + * to send a packet on the interface. This function outputs + * the pbuf as-is on the link medium. */ + netif_linkoutput_fn linkoutput; +#if LWIP_IPV6 + /** This function is called by the IPv6 module when it wants + * to send a packet on the interface. This function typically + * first resolves the hardware address, then sends the packet. + * For ethernet physical layer, this is usually ethip6_output() */ + netif_output_ip6_fn output_ip6; +#endif /* LWIP_IPV6 */ +#if LWIP_NETIF_STATUS_CALLBACK + /** This function is called when the netif state is set to up or down + */ + netif_status_callback_fn status_callback; +#endif /* LWIP_NETIF_STATUS_CALLBACK */ +#if LWIP_NETIF_LINK_CALLBACK + /** This function is called when the netif link is set to up or down + */ + netif_status_callback_fn link_callback; +#endif /* LWIP_NETIF_LINK_CALLBACK */ +#if LWIP_NETIF_REMOVE_CALLBACK + /** This function is called when the netif has been removed */ + netif_status_callback_fn remove_callback; +#endif /* LWIP_NETIF_REMOVE_CALLBACK */ + /** This field can be set by the device driver and could point + * to state information for the device. */ + void *state; +#ifdef netif_get_client_data + void* client_data[LWIP_NETIF_CLIENT_DATA_INDEX_MAX + LWIP_NUM_NETIF_CLIENT_DATA]; +#endif +#if LWIP_NETIF_HOSTNAME + /* the hostname for this netif, NULL is a valid value */ + const char* hostname; +#endif /* LWIP_NETIF_HOSTNAME */ +#if LWIP_CHECKSUM_CTRL_PER_NETIF + u16_t chksum_flags; +#endif /* LWIP_CHECKSUM_CTRL_PER_NETIF*/ + /** maximum transfer unit (in bytes) */ + u16_t mtu; +#if LWIP_IPV6 && LWIP_ND6_ALLOW_RA_UPDATES + /** maximum transfer unit (in bytes), updated by RA */ + u16_t mtu6; +#endif /* LWIP_IPV6 && LWIP_ND6_ALLOW_RA_UPDATES */ + /** link level hardware address of this interface */ + u8_t hwaddr[NETIF_MAX_HWADDR_LEN]; + /** number of bytes used in hwaddr */ + u8_t hwaddr_len; + /** flags (@see @ref netif_flags) */ + u8_t flags; + /** descriptive abbreviation */ + char name[2]; + /** number of this interface. Used for @ref if_api and @ref netifapi_netif, + * as well as for IPv6 zones */ + u8_t num; +#if LWIP_IPV6_AUTOCONFIG + /** is this netif enabled for IPv6 autoconfiguration */ + u8_t ip6_autoconfig_enabled; +#endif /* LWIP_IPV6_AUTOCONFIG */ +#if LWIP_IPV6_SEND_ROUTER_SOLICIT + /** Number of Router Solicitation messages that remain to be sent. */ + u8_t rs_count; +#endif /* LWIP_IPV6_SEND_ROUTER_SOLICIT */ +#if MIB2_STATS + /** link type (from "snmp_ifType" enum from snmp_mib2.h) */ + u8_t link_type; + /** (estimate) link speed */ + u32_t link_speed; + /** timestamp at last change made (up/down) */ + u32_t ts; + /** counters */ + struct stats_mib2_netif_ctrs mib2_counters; +#endif /* MIB2_STATS */ +#if LWIP_IPV4 && LWIP_IGMP + /** This function could be called to add or delete an entry in the multicast + filter table of the ethernet MAC.*/ + netif_igmp_mac_filter_fn igmp_mac_filter; +#endif /* LWIP_IPV4 && LWIP_IGMP */ +#if LWIP_IPV6 && LWIP_IPV6_MLD + /** This function could be called to add or delete an entry in the IPv6 multicast + filter table of the ethernet MAC. */ + netif_mld_mac_filter_fn mld_mac_filter; +#endif /* LWIP_IPV6 && LWIP_IPV6_MLD */ +#if LWIP_NETIF_USE_HINTS + struct netif_hint *hints; +#endif /* LWIP_NETIF_USE_HINTS */ +#if ENABLE_LOOPBACK + /* List of packets to be queued for ourselves. */ + struct pbuf *loop_first; + struct pbuf *loop_last; +#if LWIP_LOOPBACK_MAX_PBUFS + u16_t loop_cnt_current; +#endif /* LWIP_LOOPBACK_MAX_PBUFS */ +#endif /* ENABLE_LOOPBACK */ +}; + +#if LWIP_CHECKSUM_CTRL_PER_NETIF +#define NETIF_SET_CHECKSUM_CTRL(netif, chksumflags) do { \ + (netif)->chksum_flags = chksumflags; } while(0) +#define IF__NETIF_CHECKSUM_ENABLED(netif, chksumflag) if (((netif) == NULL) || (((netif)->chksum_flags & (chksumflag)) != 0)) +#else /* LWIP_CHECKSUM_CTRL_PER_NETIF */ +#define NETIF_SET_CHECKSUM_CTRL(netif, chksumflags) +#define IF__NETIF_CHECKSUM_ENABLED(netif, chksumflag) +#endif /* LWIP_CHECKSUM_CTRL_PER_NETIF */ + +#if LWIP_SINGLE_NETIF +#define NETIF_FOREACH(netif) if (((netif) = netif_default) != NULL) +#else /* LWIP_SINGLE_NETIF */ +/** The list of network interfaces. */ +extern struct netif *netif_list; +#define NETIF_FOREACH(netif) for ((netif) = netif_list; (netif) != NULL; (netif) = (netif)->next) +#endif /* LWIP_SINGLE_NETIF */ +/** The default network interface. */ +extern struct netif *netif_default; + +void netif_init(void); + +struct netif *netif_add_noaddr(struct netif *netif, void *state, netif_init_fn init, netif_input_fn input); + +#if LWIP_IPV4 +struct netif *netif_add(struct netif *netif, + const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw, + void *state, netif_init_fn init, netif_input_fn input); +void netif_set_addr(struct netif *netif, const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, + const ip4_addr_t *gw); +#else /* LWIP_IPV4 */ +struct netif *netif_add(struct netif *netif, void *state, netif_init_fn init, netif_input_fn input); +#endif /* LWIP_IPV4 */ +void netif_remove(struct netif * netif); + +/* Returns a network interface given its name. The name is of the form + "et0", where the first two letters are the "name" field in the + netif structure, and the digit is in the num field in the same + structure. */ +struct netif *netif_find(const char *name); + +void netif_set_default(struct netif *netif); + +#if LWIP_IPV4 +void netif_set_ipaddr(struct netif *netif, const ip4_addr_t *ipaddr); +void netif_set_netmask(struct netif *netif, const ip4_addr_t *netmask); +void netif_set_gw(struct netif *netif, const ip4_addr_t *gw); +/** @ingroup netif_ip4 */ +#define netif_ip4_addr(netif) ((const ip4_addr_t*)ip_2_ip4(&((netif)->ip_addr))) +/** @ingroup netif_ip4 */ +#define netif_ip4_netmask(netif) ((const ip4_addr_t*)ip_2_ip4(&((netif)->netmask))) +/** @ingroup netif_ip4 */ +#define netif_ip4_gw(netif) ((const ip4_addr_t*)ip_2_ip4(&((netif)->gw))) +/** @ingroup netif_ip4 */ +#define netif_ip_addr4(netif) ((const ip_addr_t*)&((netif)->ip_addr)) +/** @ingroup netif_ip4 */ +#define netif_ip_netmask4(netif) ((const ip_addr_t*)&((netif)->netmask)) +/** @ingroup netif_ip4 */ +#define netif_ip_gw4(netif) ((const ip_addr_t*)&((netif)->gw)) +#endif /* LWIP_IPV4 */ + +#define netif_set_flags(netif, set_flags) do { (netif)->flags = (u8_t)((netif)->flags | (set_flags)); } while(0) +#define netif_clear_flags(netif, clr_flags) do { (netif)->flags = (u8_t)((netif)->flags & (u8_t)(~(clr_flags) & 0xff)); } while(0) +#define netif_is_flag_set(nefif, flag) (((netif)->flags & (flag)) != 0) + +void netif_set_up(struct netif *netif); +void netif_set_down(struct netif *netif); +/** @ingroup netif + * Ask if an interface is up + */ +#define netif_is_up(netif) (((netif)->flags & NETIF_FLAG_UP) ? (u8_t)1 : (u8_t)0) + +#if LWIP_NETIF_STATUS_CALLBACK +void netif_set_status_callback(struct netif *netif, netif_status_callback_fn status_callback); +#endif /* LWIP_NETIF_STATUS_CALLBACK */ +#if LWIP_NETIF_REMOVE_CALLBACK +void netif_set_remove_callback(struct netif *netif, netif_status_callback_fn remove_callback); +#endif /* LWIP_NETIF_REMOVE_CALLBACK */ + +void netif_set_link_up(struct netif *netif); +void netif_set_link_down(struct netif *netif); +/** Ask if a link is up */ +#define netif_is_link_up(netif) (((netif)->flags & NETIF_FLAG_LINK_UP) ? (u8_t)1 : (u8_t)0) + +#if LWIP_NETIF_LINK_CALLBACK +void netif_set_link_callback(struct netif *netif, netif_status_callback_fn link_callback); +#endif /* LWIP_NETIF_LINK_CALLBACK */ + +#if LWIP_NETIF_HOSTNAME +/** @ingroup netif */ +#define netif_set_hostname(netif, name) do { if((netif) != NULL) { (netif)->hostname = name; }}while(0) +/** @ingroup netif */ +#define netif_get_hostname(netif) (((netif) != NULL) ? ((netif)->hostname) : NULL) +#endif /* LWIP_NETIF_HOSTNAME */ + +#if LWIP_IGMP +/** @ingroup netif */ +#define netif_set_igmp_mac_filter(netif, function) do { if((netif) != NULL) { (netif)->igmp_mac_filter = function; }}while(0) +#define netif_get_igmp_mac_filter(netif) (((netif) != NULL) ? ((netif)->igmp_mac_filter) : NULL) +#endif /* LWIP_IGMP */ + +#if LWIP_IPV6 && LWIP_IPV6_MLD +/** @ingroup netif */ +#define netif_set_mld_mac_filter(netif, function) do { if((netif) != NULL) { (netif)->mld_mac_filter = function; }}while(0) +#define netif_get_mld_mac_filter(netif) (((netif) != NULL) ? ((netif)->mld_mac_filter) : NULL) +#define netif_mld_mac_filter(netif, addr, action) do { if((netif) && (netif)->mld_mac_filter) { (netif)->mld_mac_filter((netif), (addr), (action)); }}while(0) +#endif /* LWIP_IPV6 && LWIP_IPV6_MLD */ + +#if ENABLE_LOOPBACK +err_t netif_loop_output(struct netif *netif, struct pbuf *p); +void netif_poll(struct netif *netif); +#if !LWIP_NETIF_LOOPBACK_MULTITHREADING +void netif_poll_all(void); +#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ +#endif /* ENABLE_LOOPBACK */ + +err_t netif_input(struct pbuf *p, struct netif *inp); + +#if LWIP_IPV6 +/** @ingroup netif_ip6 */ +#define netif_ip_addr6(netif, i) ((const ip_addr_t*)(&((netif)->ip6_addr[i]))) +/** @ingroup netif_ip6 */ +#define netif_ip6_addr(netif, i) ((const ip6_addr_t*)ip_2_ip6(&((netif)->ip6_addr[i]))) +void netif_ip6_addr_set(struct netif *netif, s8_t addr_idx, const ip6_addr_t *addr6); +void netif_ip6_addr_set_parts(struct netif *netif, s8_t addr_idx, u32_t i0, u32_t i1, u32_t i2, u32_t i3); +#define netif_ip6_addr_state(netif, i) ((netif)->ip6_addr_state[i]) +void netif_ip6_addr_set_state(struct netif* netif, s8_t addr_idx, u8_t state); +s8_t netif_get_ip6_addr_match(struct netif *netif, const ip6_addr_t *ip6addr); +void netif_create_ip6_linklocal_address(struct netif *netif, u8_t from_mac_48bit); +err_t netif_add_ip6_address(struct netif *netif, const ip6_addr_t *ip6addr, s8_t *chosen_idx); +#define netif_set_ip6_autoconfig_enabled(netif, action) do { if(netif) { (netif)->ip6_autoconfig_enabled = (action); }}while(0) +#if LWIP_IPV6_ADDRESS_LIFETIMES +#define netif_ip6_addr_valid_life(netif, i) \ + (((netif) != NULL) ? ((netif)->ip6_addr_valid_life[i]) : IP6_ADDR_LIFE_STATIC) +#define netif_ip6_addr_set_valid_life(netif, i, secs) \ + do { if (netif != NULL) { (netif)->ip6_addr_valid_life[i] = (secs); }} while (0) +#define netif_ip6_addr_pref_life(netif, i) \ + (((netif) != NULL) ? ((netif)->ip6_addr_pref_life[i]) : IP6_ADDR_LIFE_STATIC) +#define netif_ip6_addr_set_pref_life(netif, i, secs) \ + do { if (netif != NULL) { (netif)->ip6_addr_pref_life[i] = (secs); }} while (0) +#define netif_ip6_addr_isstatic(netif, i) \ + (netif_ip6_addr_valid_life((netif), (i)) == IP6_ADDR_LIFE_STATIC) +#else /* !LWIP_IPV6_ADDRESS_LIFETIMES */ +#define netif_ip6_addr_isstatic(netif, i) (1) /* all addresses are static */ +#endif /* !LWIP_IPV6_ADDRESS_LIFETIMES */ +#if LWIP_ND6_ALLOW_RA_UPDATES +#define netif_mtu6(netif) ((netif)->mtu6) +#else /* LWIP_ND6_ALLOW_RA_UPDATES */ +#define netif_mtu6(netif) ((netif)->mtu) +#endif /* LWIP_ND6_ALLOW_RA_UPDATES */ +#endif /* LWIP_IPV6 */ + +#if LWIP_NETIF_USE_HINTS +#define NETIF_SET_HINTS(netif, netifhint) (netif)->hints = (netifhint) +#define NETIF_RESET_HINTS(netif) (netif)->hints = NULL +#else /* LWIP_NETIF_USE_HINTS */ +#define NETIF_SET_HINTS(netif, netifhint) +#define NETIF_RESET_HINTS(netif) +#endif /* LWIP_NETIF_USE_HINTS */ + +u8_t netif_name_to_index(const char *name); +char * netif_index_to_name(u8_t idx, char *name); +struct netif* netif_get_by_index(u8_t idx); + +/* Interface indexes always start at 1 per RFC 3493, section 4, num starts at 0 (internal index is 0..254)*/ +#define netif_get_index(netif) ((u8_t)((netif)->num + 1)) +#define NETIF_NO_INDEX (0) + +/** + * @ingroup netif + * Extended netif status callback (NSC) reasons flags. + * May be extended in the future! + */ +typedef u16_t netif_nsc_reason_t; + +/* used for initialization only */ +#define LWIP_NSC_NONE 0x0000 +/** netif was added. arg: NULL. Called AFTER netif was added. */ +#define LWIP_NSC_NETIF_ADDED 0x0001 +/** netif was removed. arg: NULL. Called BEFORE netif is removed. */ +#define LWIP_NSC_NETIF_REMOVED 0x0002 +/** link changed */ +#define LWIP_NSC_LINK_CHANGED 0x0004 +/** netif administrative status changed.\n + * up is called AFTER netif is set up.\n + * down is called BEFORE the netif is actually set down. */ +#define LWIP_NSC_STATUS_CHANGED 0x0008 +/** IPv4 address has changed */ +#define LWIP_NSC_IPV4_ADDRESS_CHANGED 0x0010 +/** IPv4 gateway has changed */ +#define LWIP_NSC_IPV4_GATEWAY_CHANGED 0x0020 +/** IPv4 netmask has changed */ +#define LWIP_NSC_IPV4_NETMASK_CHANGED 0x0040 +/** called AFTER IPv4 address/gateway/netmask changes have been applied */ +#define LWIP_NSC_IPV4_SETTINGS_CHANGED 0x0080 +/** IPv6 address was added */ +#define LWIP_NSC_IPV6_SET 0x0100 +/** IPv6 address state has changed */ +#define LWIP_NSC_IPV6_ADDR_STATE_CHANGED 0x0200 + +/** @ingroup netif + * Argument supplied to netif_ext_callback_fn. + */ +typedef union +{ + /** Args to LWIP_NSC_LINK_CHANGED callback */ + struct link_changed_s + { + /** 1: up; 0: down */ + u8_t state; + } link_changed; + /** Args to LWIP_NSC_STATUS_CHANGED callback */ + struct status_changed_s + { + /** 1: up; 0: down */ + u8_t state; + } status_changed; + /** Args to LWIP_NSC_IPV4_ADDRESS_CHANGED|LWIP_NSC_IPV4_GATEWAY_CHANGED|LWIP_NSC_IPV4_NETMASK_CHANGED|LWIP_NSC_IPV4_SETTINGS_CHANGED callback */ + struct ipv4_changed_s + { + /** Old IPv4 address */ + const ip_addr_t* old_address; + const ip_addr_t* old_netmask; + const ip_addr_t* old_gw; + } ipv4_changed; + /** Args to LWIP_NSC_IPV6_SET callback */ + struct ipv6_set_s + { + /** Index of changed IPv6 address */ + s8_t addr_index; + /** Old IPv6 address */ + const ip_addr_t* old_address; + } ipv6_set; + /** Args to LWIP_NSC_IPV6_ADDR_STATE_CHANGED callback */ + struct ipv6_addr_state_changed_s + { + /** Index of affected IPv6 address */ + s8_t addr_index; + /** Old IPv6 address state */ + u8_t old_state; + /** Affected IPv6 address */ + const ip_addr_t* address; + } ipv6_addr_state_changed; +} netif_ext_callback_args_t; + +/** + * @ingroup netif + * Function used for extended netif status callbacks + * Note: When parsing reason argument, keep in mind that more reasons may be added in the future! + * @param netif netif that is affected by change + * @param reason change reason + * @param args depends on reason, see reason description + */ +typedef void (*netif_ext_callback_fn)(struct netif* netif, netif_nsc_reason_t reason, const netif_ext_callback_args_t* args); + +#if LWIP_NETIF_EXT_STATUS_CALLBACK +struct netif_ext_callback; +typedef struct netif_ext_callback +{ + netif_ext_callback_fn callback_fn; + struct netif_ext_callback* next; +} netif_ext_callback_t; + +#define NETIF_DECLARE_EXT_CALLBACK(name) static netif_ext_callback_t name; +void netif_add_ext_callback(netif_ext_callback_t* callback, netif_ext_callback_fn fn); +void netif_remove_ext_callback(netif_ext_callback_t* callback); +void netif_invoke_ext_callback(struct netif* netif, netif_nsc_reason_t reason, const netif_ext_callback_args_t* args); +#else +#define NETIF_DECLARE_EXT_CALLBACK(name) +#define netif_add_ext_callback(callback, fn) +#define netif_remove_ext_callback(callback) +#define netif_invoke_ext_callback(netif, reason, args) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_NETIF_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netifapi.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netifapi.h new file mode 100644 index 000000000..5bbd8f880 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/netifapi.h @@ -0,0 +1,161 @@ +/** + * @file + * netif API (to be used from non-TCPIP threads) + */ + +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ +#ifndef LWIP_HDR_NETIFAPI_H +#define LWIP_HDR_NETIFAPI_H + +#include "lwip/opt.h" + +#if LWIP_NETIF_API /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/sys.h" +#include "lwip/netif.h" +#include "lwip/dhcp.h" +#include "lwip/autoip.h" +#include "lwip/priv/tcpip_priv.h" +#include "lwip/priv/api_msg.h" +#include "lwip/prot/ethernet.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* API for application */ +#if LWIP_ARP && LWIP_IPV4 +/* Used for netfiapi_arp_* APIs */ +enum netifapi_arp_entry { + NETIFAPI_ARP_PERM /* Permanent entry */ + /* Other entry types can be added here */ +}; + +/** @ingroup netifapi_arp */ +err_t netifapi_arp_add(const ip4_addr_t *ipaddr, struct eth_addr *ethaddr, enum netifapi_arp_entry type); +/** @ingroup netifapi_arp */ +err_t netifapi_arp_remove(const ip4_addr_t *ipaddr, enum netifapi_arp_entry type); +#endif /* LWIP_ARP && LWIP_IPV4 */ + +err_t netifapi_netif_add(struct netif *netif, +#if LWIP_IPV4 + const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw, +#endif /* LWIP_IPV4 */ + void *state, netif_init_fn init, netif_input_fn input); + +#if LWIP_IPV4 +err_t netifapi_netif_set_addr(struct netif *netif, const ip4_addr_t *ipaddr, + const ip4_addr_t *netmask, const ip4_addr_t *gw); +#endif /* LWIP_IPV4*/ + +err_t netifapi_netif_common(struct netif *netif, netifapi_void_fn voidfunc, + netifapi_errt_fn errtfunc); + +/** @ingroup netifapi_netif */ +err_t netifapi_netif_name_to_index(const char *name, u8_t *index); +/** @ingroup netifapi_netif */ +err_t netifapi_netif_index_to_name(u8_t index, char *name); + +/** @ingroup netifapi_netif + * @see netif_remove() + */ +#define netifapi_netif_remove(n) netifapi_netif_common(n, netif_remove, NULL) +/** @ingroup netifapi_netif + * @see netif_set_up() + */ +#define netifapi_netif_set_up(n) netifapi_netif_common(n, netif_set_up, NULL) +/** @ingroup netifapi_netif + * @see netif_set_down() + */ +#define netifapi_netif_set_down(n) netifapi_netif_common(n, netif_set_down, NULL) +/** @ingroup netifapi_netif + * @see netif_set_default() + */ +#define netifapi_netif_set_default(n) netifapi_netif_common(n, netif_set_default, NULL) +/** @ingroup netifapi_netif + * @see netif_set_link_up() + */ +#define netifapi_netif_set_link_up(n) netifapi_netif_common(n, netif_set_link_up, NULL) +/** @ingroup netifapi_netif + * @see netif_set_link_down() + */ +#define netifapi_netif_set_link_down(n) netifapi_netif_common(n, netif_set_link_down, NULL) + +/** + * @defgroup netifapi_dhcp4 DHCPv4 + * @ingroup netifapi + * To be called from non-TCPIP threads + */ +/** @ingroup netifapi_dhcp4 + * @see dhcp_start() + */ +#define netifapi_dhcp_start(n) netifapi_netif_common(n, NULL, dhcp_start) +/** + * @ingroup netifapi_dhcp4 + * @deprecated Use netifapi_dhcp_release_and_stop() instead. + */ +#define netifapi_dhcp_stop(n) netifapi_netif_common(n, dhcp_stop, NULL) +/** @ingroup netifapi_dhcp4 + * @see dhcp_inform() + */ +#define netifapi_dhcp_inform(n) netifapi_netif_common(n, dhcp_inform, NULL) +/** @ingroup netifapi_dhcp4 + * @see dhcp_renew() + */ +#define netifapi_dhcp_renew(n) netifapi_netif_common(n, NULL, dhcp_renew) +/** + * @ingroup netifapi_dhcp4 + * @deprecated Use netifapi_dhcp_release_and_stop() instead. + */ +#define netifapi_dhcp_release(n) netifapi_netif_common(n, NULL, dhcp_release) +/** @ingroup netifapi_dhcp4 + * @see dhcp_release_and_stop() + */ +#define netifapi_dhcp_release_and_stop(n) netifapi_netif_common(n, dhcp_release_and_stop, NULL) + +/** + * @defgroup netifapi_autoip AUTOIP + * @ingroup netifapi + * To be called from non-TCPIP threads + */ +/** @ingroup netifapi_autoip + * @see autoip_start() + */ +#define netifapi_autoip_start(n) netifapi_netif_common(n, NULL, autoip_start) +/** @ingroup netifapi_autoip + * @see autoip_stop() + */ +#define netifapi_autoip_stop(n) netifapi_netif_common(n, NULL, autoip_stop) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_NETIF_API */ + +#endif /* LWIP_HDR_NETIFAPI_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/opt.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/opt.h new file mode 100644 index 000000000..bb6c33dd9 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/opt.h @@ -0,0 +1,3519 @@ +/** + * @file + * + * lwIP Options Configuration + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +/* + * NOTE: || defined __DOXYGEN__ is a workaround for doxygen bug - + * without this, doxygen does not see the actual #define + */ + +#if !defined LWIP_HDR_OPT_H +#define LWIP_HDR_OPT_H + +/* + * Include user defined options first. Anything not defined in these files + * will be set to standard values. Override anything you don't like! + */ +#include "lwipopts.h" +#include "lwip/debug.h" + +/** + * @defgroup lwip_opts Options (lwipopts.h) + * @ingroup lwip + * + * @defgroup lwip_opts_debug Debugging + * @ingroup lwip_opts + * + * @defgroup lwip_opts_infrastructure Infrastructure + * @ingroup lwip_opts + * + * @defgroup lwip_opts_callback Callback-style APIs + * @ingroup lwip_opts + * + * @defgroup lwip_opts_threadsafe_apis Thread-safe APIs + * @ingroup lwip_opts + */ + + /* + ------------------------------------ + -------------- NO SYS -------------- + ------------------------------------ +*/ +/** + * @defgroup lwip_opts_nosys NO_SYS + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * NO_SYS==1: Use lwIP without OS-awareness (no thread, semaphores, mutexes or + * mboxes). This means threaded APIs cannot be used (socket, netconn, + * i.e. everything in the 'api' folder), only the callback-style raw API is + * available (and you have to watch out for yourself that you don't access + * lwIP functions/structures from more than one context at a time!) + */ +#if !defined NO_SYS || defined __DOXYGEN__ +#define NO_SYS 0 +#endif +/** + * @} + */ + +/** + * @defgroup lwip_opts_timers Timers + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * LWIP_TIMERS==0: Drop support for sys_timeout and lwip-internal cyclic timers. + * (the array of lwip-internal cyclic timers is still provided) + * (check NO_SYS_NO_TIMERS for compatibility to old versions) + */ +#if !defined LWIP_TIMERS || defined __DOXYGEN__ +#ifdef NO_SYS_NO_TIMERS +#define LWIP_TIMERS (!NO_SYS || (NO_SYS && !NO_SYS_NO_TIMERS)) +#else +#define LWIP_TIMERS 1 +#endif +#endif + +/** + * LWIP_TIMERS_CUSTOM==1: Provide your own timer implementation. + * Function prototypes in timeouts.h and the array of lwip-internal cyclic timers + * are still included, but the implementation is not. The following functions + * will be required: sys_timeouts_init(), sys_timeout(), sys_untimeout(), + * sys_timeouts_mbox_fetch() + */ +#if !defined LWIP_TIMERS_CUSTOM || defined __DOXYGEN__ +#define LWIP_TIMERS_CUSTOM 0 +#endif +/** + * @} + */ + +/** + * @defgroup lwip_opts_memcpy memcpy + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * MEMCPY: override this if you have a faster implementation at hand than the + * one included in your C library + */ +#if !defined MEMCPY || defined __DOXYGEN__ +#define MEMCPY(dst,src,len) memcpy(dst,src,len) +#endif + +/** + * SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a + * call to memcpy() if the length is known at compile time and is small. + */ +#if !defined SMEMCPY || defined __DOXYGEN__ +#define SMEMCPY(dst,src,len) memcpy(dst,src,len) +#endif + +/** + * MEMMOVE: override this if you have a faster implementation at hand than the + * one included in your C library. lwIP currently uses MEMMOVE only when IPv6 + * fragmentation support is enabled. + */ +#if !defined MEMMOVE || defined __DOXYGEN__ +#define MEMMOVE(dst,src,len) memmove(dst,src,len) +#endif +/** + * @} + */ + +/* + ------------------------------------ + ----------- Core locking ----------- + ------------------------------------ +*/ +/** + * @defgroup lwip_opts_lock Core locking and MPU + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * LWIP_MPU_COMPATIBLE: enables special memory management mechanism + * which makes lwip able to work on MPU (Memory Protection Unit) system + * by not passing stack-pointers to other threads + * (this decreases performance as memory is allocated from pools instead + * of keeping it on the stack) + */ +#if !defined LWIP_MPU_COMPATIBLE || defined __DOXYGEN__ +#define LWIP_MPU_COMPATIBLE 0 +#endif + +/** + * LWIP_TCPIP_CORE_LOCKING + * Creates a global mutex that is held during TCPIP thread operations. + * Can be locked by client code to perform lwIP operations without changing + * into TCPIP thread using callbacks. See LOCK_TCPIP_CORE() and + * UNLOCK_TCPIP_CORE(). + * Your system should provide mutexes supporting priority inversion to use this. + */ +#if !defined LWIP_TCPIP_CORE_LOCKING || defined __DOXYGEN__ +#define LWIP_TCPIP_CORE_LOCKING 1 +#endif + +/** + * LWIP_TCPIP_CORE_LOCKING_INPUT: when LWIP_TCPIP_CORE_LOCKING is enabled, + * this lets tcpip_input() grab the mutex for input packets as well, + * instead of allocating a message and passing it to tcpip_thread. + * + * ATTENTION: this does not work when tcpip_input() is called from + * interrupt context! + */ +#if !defined LWIP_TCPIP_CORE_LOCKING_INPUT || defined __DOXYGEN__ +#define LWIP_TCPIP_CORE_LOCKING_INPUT 0 +#endif + +/** + * SYS_LIGHTWEIGHT_PROT==1: enable inter-task protection (and task-vs-interrupt + * protection) for certain critical regions during buffer allocation, deallocation + * and memory allocation and deallocation. + * ATTENTION: This is required when using lwIP from more than one context! If + * you disable this, you must be sure what you are doing! + */ +#if !defined SYS_LIGHTWEIGHT_PROT || defined __DOXYGEN__ +#define SYS_LIGHTWEIGHT_PROT 1 +#endif + +/** + * Macro/function to check whether lwIP's threading/locking + * requirements are satisfied during current function call. + * This macro usually calls a function that is implemented in the OS-dependent + * sys layer and performs the following checks: + * - Not in ISR (this should be checked for NO_SYS==1, too!) + * - If @ref LWIP_TCPIP_CORE_LOCKING = 1: TCPIP core lock is held + * - If @ref LWIP_TCPIP_CORE_LOCKING = 0: function is called from TCPIP thread + * @see @ref multithreading + */ +#if !defined LWIP_ASSERT_CORE_LOCKED || defined __DOXYGEN__ +#define LWIP_ASSERT_CORE_LOCKED() +#endif + +/** + * Called as first thing in the lwIP TCPIP thread. Can be used in conjunction + * with @ref LWIP_ASSERT_CORE_LOCKED to check core locking. + * @see @ref multithreading + */ +#if !defined LWIP_MARK_TCPIP_THREAD || defined __DOXYGEN__ +#define LWIP_MARK_TCPIP_THREAD() +#endif +/** + * @} + */ + +/* + ------------------------------------ + ---------- Memory options ---------- + ------------------------------------ +*/ +/** + * @defgroup lwip_opts_mem Heap and memory pools + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library + * instead of the lwip internal allocator. Can save code size if you + * already use it. + */ +#if !defined MEM_LIBC_MALLOC || defined __DOXYGEN__ +#define MEM_LIBC_MALLOC 0 +#endif + +/** + * MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator. + * Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution + * speed (heap alloc can be much slower than pool alloc) and usage from interrupts + * (especially if your netif driver allocates PBUF_POOL pbufs for received frames + * from interrupt)! + * ATTENTION: Currently, this uses the heap for ALL pools (also for private pools, + * not only for internal pools defined in memp_std.h)! + */ +#if !defined MEMP_MEM_MALLOC || defined __DOXYGEN__ +#define MEMP_MEM_MALLOC 0 +#endif + +/** + * MEMP_MEM_INIT==1: Force use of memset to initialize pool memory. + * Useful if pool are moved in uninitialized section of memory. This will ensure + * default values in pcbs struct are well initialized in all conditions. + */ +#if !defined MEMP_MEM_INIT || defined __DOXYGEN__ +#define MEMP_MEM_INIT 0 +#endif + +/** + * MEM_ALIGNMENT: should be set to the alignment of the CPU + * 4 byte alignment -> \#define MEM_ALIGNMENT 4 + * 2 byte alignment -> \#define MEM_ALIGNMENT 2 + */ +#if !defined MEM_ALIGNMENT || defined __DOXYGEN__ +#define MEM_ALIGNMENT 1 +#endif + +/** + * MEM_SIZE: the size of the heap memory. If the application will send + * a lot of data that needs to be copied, this should be set high. + */ +#if !defined MEM_SIZE || defined __DOXYGEN__ +#define MEM_SIZE 1600 +#endif + +/** + * MEMP_OVERFLOW_CHECK: memp overflow protection reserves a configurable + * amount of bytes before and after each memp element in every pool and fills + * it with a prominent default value. + * MEMP_OVERFLOW_CHECK == 0 no checking + * MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed + * MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time + * memp_malloc() or memp_free() is called (useful but slow!) + */ +#if !defined MEMP_OVERFLOW_CHECK || defined __DOXYGEN__ +#define MEMP_OVERFLOW_CHECK 0 +#endif + +/** + * MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make + * sure that there are no cycles in the linked lists. + */ +#if !defined MEMP_SANITY_CHECK || defined __DOXYGEN__ +#define MEMP_SANITY_CHECK 0 +#endif + +/** + * MEM_OVERFLOW_CHECK: mem overflow protection reserves a configurable + * amount of bytes before and after each heap allocation chunk and fills + * it with a prominent default value. + * MEM_OVERFLOW_CHECK == 0 no checking + * MEM_OVERFLOW_CHECK == 1 checks each element when it is freed + * MEM_OVERFLOW_CHECK >= 2 checks all heap elements every time + * mem_malloc() or mem_free() is called (useful but slow!) + */ +#if !defined MEM_OVERFLOW_CHECK || defined __DOXYGEN__ +#define MEM_OVERFLOW_CHECK 0 +#endif + +/** + * MEM_SANITY_CHECK==1: run a sanity check after each mem_free() to make + * sure that the linked list of heap elements is not corrupted. + */ +#if !defined MEM_SANITY_CHECK || defined __DOXYGEN__ +#define MEM_SANITY_CHECK 0 +#endif + +/** + * MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set + * of memory pools of various sizes. When mem_malloc is called, an element of + * the smallest pool that can provide the length needed is returned. + * To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled. + */ +#if !defined MEM_USE_POOLS || defined __DOXYGEN__ +#define MEM_USE_POOLS 0 +#endif + +/** + * MEM_USE_POOLS_TRY_BIGGER_POOL==1: if one malloc-pool is empty, try the next + * bigger pool - WARNING: THIS MIGHT WASTE MEMORY but it can make a system more + * reliable. */ +#if !defined MEM_USE_POOLS_TRY_BIGGER_POOL || defined __DOXYGEN__ +#define MEM_USE_POOLS_TRY_BIGGER_POOL 0 +#endif + +/** + * MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h + * that defines additional pools beyond the "standard" ones required + * by lwIP. If you set this to 1, you must have lwippools.h in your + * include path somewhere. + */ +#if !defined MEMP_USE_CUSTOM_POOLS || defined __DOXYGEN__ +#define MEMP_USE_CUSTOM_POOLS 0 +#endif + +/** + * Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from + * interrupt context (or another context that doesn't allow waiting for a + * semaphore). + * If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT, + * while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs + * with each loop so that mem_free can run. + * + * ATTENTION: As you can see from the above description, this leads to dis-/ + * enabling interrupts often, which can be slow! Also, on low memory, mem_malloc + * can need longer. + * + * If you don't want that, at least for NO_SYS=0, you can still use the following + * functions to enqueue a deallocation call which then runs in the tcpip_thread + * context: + * - pbuf_free_callback(p); + * - mem_free_callback(m); + */ +#if !defined LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT || defined __DOXYGEN__ +#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0 +#endif +/** + * @} + */ + +/* + ------------------------------------------------ + ---------- Internal Memory Pool Sizes ---------- + ------------------------------------------------ +*/ +/** + * @defgroup lwip_opts_memp Internal memory pools + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF). + * If the application sends a lot of data out of ROM (or other static memory), + * this should be set high. + */ +#if !defined MEMP_NUM_PBUF || defined __DOXYGEN__ +#define MEMP_NUM_PBUF 16 +#endif + +/** + * MEMP_NUM_RAW_PCB: Number of raw connection PCBs + * (requires the LWIP_RAW option) + */ +#if !defined MEMP_NUM_RAW_PCB || defined __DOXYGEN__ +#define MEMP_NUM_RAW_PCB 4 +#endif + +/** + * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One + * per active UDP "connection". + * (requires the LWIP_UDP option) + */ +#if !defined MEMP_NUM_UDP_PCB || defined __DOXYGEN__ +#define MEMP_NUM_UDP_PCB 4 +#endif + +/** + * MEMP_NUM_TCP_PCB: the number of simultaneously active TCP connections. + * (requires the LWIP_TCP option) + */ +#if !defined MEMP_NUM_TCP_PCB || defined __DOXYGEN__ +#define MEMP_NUM_TCP_PCB 5 +#endif + +/** + * MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections. + * (requires the LWIP_TCP option) + */ +#if !defined MEMP_NUM_TCP_PCB_LISTEN || defined __DOXYGEN__ +#define MEMP_NUM_TCP_PCB_LISTEN 8 +#endif + +/** + * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. + * (requires the LWIP_TCP option) + */ +#if !defined MEMP_NUM_TCP_SEG || defined __DOXYGEN__ +#define MEMP_NUM_TCP_SEG 16 +#endif + +/** + * MEMP_NUM_ALTCP_PCB: the number of simultaneously active altcp layer pcbs. + * (requires the LWIP_ALTCP option) + * Connections with multiple layers require more than one altcp_pcb (e.g. TLS + * over TCP requires 2 altcp_pcbs, one for TLS and one for TCP). + */ +#if !defined MEMP_NUM_ALTCP_PCB || defined __DOXYGEN__ +#define MEMP_NUM_ALTCP_PCB MEMP_NUM_TCP_PCB +#endif + +/** + * MEMP_NUM_REASSDATA: the number of IP packets simultaneously queued for + * reassembly (whole packets, not fragments!) + */ +#if !defined MEMP_NUM_REASSDATA || defined __DOXYGEN__ +#define MEMP_NUM_REASSDATA 5 +#endif + +/** + * MEMP_NUM_FRAG_PBUF: the number of IP fragments simultaneously sent + * (fragments, not whole packets!). + * This is only used with LWIP_NETIF_TX_SINGLE_PBUF==0 and only has to be > 1 + * with DMA-enabled MACs where the packet is not yet sent when netif->output + * returns. + */ +#if !defined MEMP_NUM_FRAG_PBUF || defined __DOXYGEN__ +#define MEMP_NUM_FRAG_PBUF 15 +#endif + +/** + * MEMP_NUM_ARP_QUEUE: the number of simultaneously queued outgoing + * packets (pbufs) that are waiting for an ARP request (to resolve + * their destination address) to finish. + * (requires the ARP_QUEUEING option) + */ +#if !defined MEMP_NUM_ARP_QUEUE || defined __DOXYGEN__ +#define MEMP_NUM_ARP_QUEUE 30 +#endif + +/** + * MEMP_NUM_IGMP_GROUP: The number of multicast groups whose network interfaces + * can be members at the same time (one per netif - allsystems group -, plus one + * per netif membership). + * (requires the LWIP_IGMP option) + */ +#if !defined MEMP_NUM_IGMP_GROUP || defined __DOXYGEN__ +#define MEMP_NUM_IGMP_GROUP 8 +#endif + +/** + * The number of sys timeouts used by the core stack (not apps) + * The default number of timeouts is calculated here for all enabled modules. + */ +#define LWIP_NUM_SYS_TIMEOUT_INTERNAL (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_NUM_TIMEOUTS + (LWIP_IPV6 * (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD))) + +/** + * MEMP_NUM_SYS_TIMEOUT: the number of simultaneously active timeouts. + * The default number of timeouts is calculated here for all enabled modules. + * The formula expects settings to be either '0' or '1'. + */ +#if !defined MEMP_NUM_SYS_TIMEOUT || defined __DOXYGEN__ +#define MEMP_NUM_SYS_TIMEOUT LWIP_NUM_SYS_TIMEOUT_INTERNAL +#endif + +/** + * MEMP_NUM_NETBUF: the number of struct netbufs. + * (only needed if you use the sequential API, like api_lib.c) + */ +#if !defined MEMP_NUM_NETBUF || defined __DOXYGEN__ +#define MEMP_NUM_NETBUF 2 +#endif + +/** + * MEMP_NUM_NETCONN: the number of struct netconns. + * (only needed if you use the sequential API, like api_lib.c) + */ +#if !defined MEMP_NUM_NETCONN || defined __DOXYGEN__ +#define MEMP_NUM_NETCONN 4 +#endif + +/** + * MEMP_NUM_SELECT_CB: the number of struct lwip_select_cb. + * (Only needed if you have LWIP_MPU_COMPATIBLE==1 and use the socket API. + * In that case, you need one per thread calling lwip_select.) + */ +#if !defined MEMP_NUM_SELECT_CB || defined __DOXYGEN__ +#define MEMP_NUM_SELECT_CB 4 +#endif + +/** + * MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used + * for callback/timeout API communication. + * (only needed if you use tcpip.c) + */ +#if !defined MEMP_NUM_TCPIP_MSG_API || defined __DOXYGEN__ +#define MEMP_NUM_TCPIP_MSG_API 8 +#endif + +/** + * MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used + * for incoming packets. + * (only needed if you use tcpip.c) + */ +#if !defined MEMP_NUM_TCPIP_MSG_INPKT || defined __DOXYGEN__ +#define MEMP_NUM_TCPIP_MSG_INPKT 8 +#endif + +/** + * MEMP_NUM_NETDB: the number of concurrently running lwip_addrinfo() calls + * (before freeing the corresponding memory using lwip_freeaddrinfo()). + */ +#if !defined MEMP_NUM_NETDB || defined __DOXYGEN__ +#define MEMP_NUM_NETDB 1 +#endif + +/** + * MEMP_NUM_LOCALHOSTLIST: the number of host entries in the local host list + * if DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1. + */ +#if !defined MEMP_NUM_LOCALHOSTLIST || defined __DOXYGEN__ +#define MEMP_NUM_LOCALHOSTLIST 1 +#endif + +/** + * PBUF_POOL_SIZE: the number of buffers in the pbuf pool. + */ +#if !defined PBUF_POOL_SIZE || defined __DOXYGEN__ +#define PBUF_POOL_SIZE 16 +#endif + +/** MEMP_NUM_API_MSG: the number of concurrently active calls to various + * socket, netconn, and tcpip functions + */ +#if !defined MEMP_NUM_API_MSG || defined __DOXYGEN__ +#define MEMP_NUM_API_MSG MEMP_NUM_TCPIP_MSG_API +#endif + +/** MEMP_NUM_DNS_API_MSG: the number of concurrently active calls to netconn_gethostbyname + */ +#if !defined MEMP_NUM_DNS_API_MSG || defined __DOXYGEN__ +#define MEMP_NUM_DNS_API_MSG MEMP_NUM_TCPIP_MSG_API +#endif + +/** MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA: the number of concurrently active calls + * to getsockopt/setsockopt + */ +#if !defined MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA || defined __DOXYGEN__ +#define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA MEMP_NUM_TCPIP_MSG_API +#endif + +/** MEMP_NUM_NETIFAPI_MSG: the number of concurrently active calls to the + * netifapi functions + */ +#if !defined MEMP_NUM_NETIFAPI_MSG || defined __DOXYGEN__ +#define MEMP_NUM_NETIFAPI_MSG MEMP_NUM_TCPIP_MSG_API +#endif +/** + * @} + */ + +/* + --------------------------------- + ---------- ARP options ---------- + --------------------------------- +*/ +/** + * @defgroup lwip_opts_arp ARP + * @ingroup lwip_opts_ipv4 + * @{ + */ +/** + * LWIP_ARP==1: Enable ARP functionality. + */ +#if !defined LWIP_ARP || defined __DOXYGEN__ +#define LWIP_ARP 1 +#endif + +/** + * ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached. + */ +#if !defined ARP_TABLE_SIZE || defined __DOXYGEN__ +#define ARP_TABLE_SIZE 10 +#endif + +/** the time an ARP entry stays valid after its last update, + * for ARP_TMR_INTERVAL = 1000, this is + * (60 * 5) seconds = 5 minutes. + */ +#if !defined ARP_MAXAGE || defined __DOXYGEN__ +#define ARP_MAXAGE 300 +#endif + +/** + * ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address + * resolution. By default, only the most recent packet is queued per IP address. + * This is sufficient for most protocols and mainly reduces TCP connection + * startup time. Set this to 1 if you know your application sends more than one + * packet in a row to an IP address that is not in the ARP cache. + */ +#if !defined ARP_QUEUEING || defined __DOXYGEN__ +#define ARP_QUEUEING 0 +#endif + +/** The maximum number of packets which may be queued for each + * unresolved address by other network layers. Defaults to 3, 0 means disabled. + * Old packets are dropped, new packets are queued. + */ +#if !defined ARP_QUEUE_LEN || defined __DOXYGEN__ +#define ARP_QUEUE_LEN 3 +#endif + +/** + * ETHARP_SUPPORT_VLAN==1: support receiving and sending ethernet packets with + * VLAN header. See the description of LWIP_HOOK_VLAN_CHECK and + * LWIP_HOOK_VLAN_SET hooks to check/set VLAN headers. + * Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check. + * If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted. + * If ETHARP_VLAN_CHECK is not defined, all traffic is accepted. + * Alternatively, define a function/define ETHARP_VLAN_CHECK_FN(eth_hdr, vlan) + * that returns 1 to accept a packet or 0 to drop a packet. + */ +#if !defined ETHARP_SUPPORT_VLAN || defined __DOXYGEN__ +#define ETHARP_SUPPORT_VLAN 0 +#endif + +/** LWIP_ETHERNET==1: enable ethernet support even though ARP might be disabled + */ +#if !defined LWIP_ETHERNET || defined __DOXYGEN__ +#define LWIP_ETHERNET LWIP_ARP +#endif + +/** ETH_PAD_SIZE: number of bytes added before the ethernet header to ensure + * alignment of payload after that header. Since the header is 14 bytes long, + * without this padding e.g. addresses in the IP header will not be aligned + * on a 32-bit boundary, so setting this to 2 can speed up 32-bit-platforms. + */ +#if !defined ETH_PAD_SIZE || defined __DOXYGEN__ +#define ETH_PAD_SIZE 0 +#endif + +/** ETHARP_SUPPORT_STATIC_ENTRIES==1: enable code to support static ARP table + * entries (using etharp_add_static_entry/etharp_remove_static_entry). + */ +#if !defined ETHARP_SUPPORT_STATIC_ENTRIES || defined __DOXYGEN__ +#define ETHARP_SUPPORT_STATIC_ENTRIES 0 +#endif + +/** ETHARP_TABLE_MATCH_NETIF==1: Match netif for ARP table entries. + * If disabled, duplicate IP address on multiple netifs are not supported + * (but this should only occur for AutoIP). + */ +#if !defined ETHARP_TABLE_MATCH_NETIF || defined __DOXYGEN__ +#define ETHARP_TABLE_MATCH_NETIF !LWIP_SINGLE_NETIF +#endif +/** + * @} + */ + +/* + -------------------------------- + ---------- IP options ---------- + -------------------------------- +*/ +/** + * @defgroup lwip_opts_ipv4 IPv4 + * @ingroup lwip_opts + * @{ + */ +/** + * LWIP_IPV4==1: Enable IPv4 + */ +#if !defined LWIP_IPV4 || defined __DOXYGEN__ +#define LWIP_IPV4 1 +#endif + +/** + * IP_FORWARD==1: Enables the ability to forward IP packets across network + * interfaces. If you are going to run lwIP on a device with only one network + * interface, define this to 0. + */ +#if !defined IP_FORWARD || defined __DOXYGEN__ +#define IP_FORWARD 0 +#endif + +/** + * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that + * this option does not affect outgoing packet sizes, which can be controlled + * via IP_FRAG. + */ +#if !defined IP_REASSEMBLY || defined __DOXYGEN__ +#define IP_REASSEMBLY 1 +#endif + +/** + * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note + * that this option does not affect incoming packet sizes, which can be + * controlled via IP_REASSEMBLY. + */ +#if !defined IP_FRAG || defined __DOXYGEN__ +#define IP_FRAG 1 +#endif + +#if !LWIP_IPV4 +/* disable IPv4 extensions when IPv4 is disabled */ +#undef IP_FORWARD +#define IP_FORWARD 0 +#undef IP_REASSEMBLY +#define IP_REASSEMBLY 0 +#undef IP_FRAG +#define IP_FRAG 0 +#endif /* !LWIP_IPV4 */ + +/** + * IP_OPTIONS_ALLOWED: Defines the behavior for IP options. + * IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped. + * IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed). + */ +#if !defined IP_OPTIONS_ALLOWED || defined __DOXYGEN__ +#define IP_OPTIONS_ALLOWED 1 +#endif + +/** + * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) + * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived + * in this time, the whole packet is discarded. + */ +#if !defined IP_REASS_MAXAGE || defined __DOXYGEN__ +#define IP_REASS_MAXAGE 15 +#endif + +/** + * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled. + * Since the received pbufs are enqueued, be sure to configure + * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive + * packets even if the maximum amount of fragments is enqueued for reassembly! + * When IPv4 *and* IPv6 are enabled, this even changes to + * (PBUF_POOL_SIZE > 2 * IP_REASS_MAX_PBUFS)! + */ +#if !defined IP_REASS_MAX_PBUFS || defined __DOXYGEN__ +#define IP_REASS_MAX_PBUFS 10 +#endif + +/** + * IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers. + */ +#if !defined IP_DEFAULT_TTL || defined __DOXYGEN__ +#define IP_DEFAULT_TTL 255 +#endif + +/** + * IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast + * filter per pcb on udp and raw send operations. To enable broadcast filter + * on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1. + */ +#if !defined IP_SOF_BROADCAST || defined __DOXYGEN__ +#define IP_SOF_BROADCAST 0 +#endif + +/** + * IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast + * filter on recv operations. + */ +#if !defined IP_SOF_BROADCAST_RECV || defined __DOXYGEN__ +#define IP_SOF_BROADCAST_RECV 0 +#endif + +/** + * IP_FORWARD_ALLOW_TX_ON_RX_NETIF==1: allow ip_forward() to send packets back + * out on the netif where it was received. This should only be used for + * wireless networks. + * ATTENTION: When this is 1, make sure your netif driver correctly marks incoming + * link-layer-broadcast/multicast packets as such using the corresponding pbuf flags! + */ +#if !defined IP_FORWARD_ALLOW_TX_ON_RX_NETIF || defined __DOXYGEN__ +#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0 +#endif +/** + * @} + */ + +/* + ---------------------------------- + ---------- ICMP options ---------- + ---------------------------------- +*/ +/** + * @defgroup lwip_opts_icmp ICMP + * @ingroup lwip_opts_ipv4 + * @{ + */ +/** + * LWIP_ICMP==1: Enable ICMP module inside the IP stack. + * Be careful, disable that make your product non-compliant to RFC1122 + */ +#if !defined LWIP_ICMP || defined __DOXYGEN__ +#define LWIP_ICMP 1 +#endif + +/** + * ICMP_TTL: Default value for Time-To-Live used by ICMP packets. + */ +#if !defined ICMP_TTL || defined __DOXYGEN__ +#define ICMP_TTL IP_DEFAULT_TTL +#endif + +/** + * LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only) + */ +#if !defined LWIP_BROADCAST_PING || defined __DOXYGEN__ +#define LWIP_BROADCAST_PING 0 +#endif + +/** + * LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only) + */ +#if !defined LWIP_MULTICAST_PING || defined __DOXYGEN__ +#define LWIP_MULTICAST_PING 0 +#endif +/** + * @} + */ + +/* + --------------------------------- + ---------- RAW options ---------- + --------------------------------- +*/ +/** + * @defgroup lwip_opts_raw RAW + * @ingroup lwip_opts_callback + * @{ + */ +/** + * LWIP_RAW==1: Enable application layer to hook into the IP layer itself. + */ +#if !defined LWIP_RAW || defined __DOXYGEN__ +#define LWIP_RAW 0 +#endif + +/** + * LWIP_RAW==1: Enable application layer to hook into the IP layer itself. + */ +#if !defined RAW_TTL || defined __DOXYGEN__ +#define RAW_TTL IP_DEFAULT_TTL +#endif +/** + * @} + */ + +/* + ---------------------------------- + ---------- DHCP options ---------- + ---------------------------------- +*/ +/** + * @defgroup lwip_opts_dhcp DHCP + * @ingroup lwip_opts_ipv4 + * @{ + */ +/** + * LWIP_DHCP==1: Enable DHCP module. + */ +#if !defined LWIP_DHCP || defined __DOXYGEN__ +#define LWIP_DHCP 0 +#endif +#if !LWIP_IPV4 +/* disable DHCP when IPv4 is disabled */ +#undef LWIP_DHCP +#define LWIP_DHCP 0 +#endif /* !LWIP_IPV4 */ + +/** + * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. + */ +#if !defined DHCP_DOES_ARP_CHECK || defined __DOXYGEN__ +#define DHCP_DOES_ARP_CHECK (LWIP_DHCP && LWIP_ARP) +#endif + +/** + * LWIP_DHCP_BOOTP_FILE==1: Store offered_si_addr and boot_file_name. + */ +#if !defined LWIP_DHCP_BOOTP_FILE || defined __DOXYGEN__ +#define LWIP_DHCP_BOOTP_FILE 0 +#endif + +/** + * LWIP_DHCP_GETS_NTP==1: Request NTP servers with discover/select. For each + * response packet, an callback is called, which has to be provided by the port: + * void dhcp_set_ntp_servers(u8_t num_ntp_servers, ip_addr_t* ntp_server_addrs); +*/ +#if !defined LWIP_DHCP_GET_NTP_SRV || defined __DOXYGEN__ +#define LWIP_DHCP_GET_NTP_SRV 0 +#endif + +/** + * The maximum of NTP servers requested + */ +#if !defined LWIP_DHCP_MAX_NTP_SERVERS || defined __DOXYGEN__ +#define LWIP_DHCP_MAX_NTP_SERVERS 1 +#endif + +/** + * LWIP_DHCP_MAX_DNS_SERVERS > 0: Request DNS servers with discover/select. + * DNS servers received in the response are passed to DNS via @ref dns_setserver() + * (up to the maximum limit defined here). + */ +#if !defined LWIP_DHCP_MAX_DNS_SERVERS || defined __DOXYGEN__ +#define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS +#endif +/** + * @} + */ + +/* + ------------------------------------ + ---------- AUTOIP options ---------- + ------------------------------------ +*/ +/** + * @defgroup lwip_opts_autoip AUTOIP + * @ingroup lwip_opts_ipv4 + * @{ + */ +/** + * LWIP_AUTOIP==1: Enable AUTOIP module. + */ +#if !defined LWIP_AUTOIP || defined __DOXYGEN__ +#define LWIP_AUTOIP 0 +#endif +#if !LWIP_IPV4 +/* disable AUTOIP when IPv4 is disabled */ +#undef LWIP_AUTOIP +#define LWIP_AUTOIP 0 +#endif /* !LWIP_IPV4 */ + +/** + * LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on + * the same interface at the same time. + */ +#if !defined LWIP_DHCP_AUTOIP_COOP || defined __DOXYGEN__ +#define LWIP_DHCP_AUTOIP_COOP 0 +#endif + +/** + * LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes + * that should be sent before falling back on AUTOIP (the DHCP client keeps + * running in this case). This can be set as low as 1 to get an AutoIP address + * very quickly, but you should be prepared to handle a changing IP address + * when DHCP overrides AutoIP. + */ +#if !defined LWIP_DHCP_AUTOIP_COOP_TRIES || defined __DOXYGEN__ +#define LWIP_DHCP_AUTOIP_COOP_TRIES 9 +#endif +/** + * @} + */ + +/* + ---------------------------------- + ----- SNMP MIB2 support ----- + ---------------------------------- +*/ +/** + * @defgroup lwip_opts_mib2 SNMP MIB2 callbacks + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * LWIP_MIB2_CALLBACKS==1: Turn on SNMP MIB2 callbacks. + * Turn this on to get callbacks needed to implement MIB2. + * Usually MIB2_STATS should be enabled, too. + */ +#if !defined LWIP_MIB2_CALLBACKS || defined __DOXYGEN__ +#define LWIP_MIB2_CALLBACKS 0 +#endif +/** + * @} + */ + +/* + ---------------------------------- + -------- Multicast options ------- + ---------------------------------- +*/ +/** + * @defgroup lwip_opts_multicast Multicast + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * LWIP_MULTICAST_TX_OPTIONS==1: Enable multicast TX support like the socket options + * IP_MULTICAST_TTL/IP_MULTICAST_IF/IP_MULTICAST_LOOP, as well as (currently only) + * core support for the corresponding IPv6 options. + */ +#if !defined LWIP_MULTICAST_TX_OPTIONS || defined __DOXYGEN__ +#define LWIP_MULTICAST_TX_OPTIONS ((LWIP_IGMP || LWIP_IPV6_MLD) && (LWIP_UDP || LWIP_RAW)) +#endif +/** + * @} + */ + +/* + ---------------------------------- + ---------- IGMP options ---------- + ---------------------------------- +*/ +/** + * @defgroup lwip_opts_igmp IGMP + * @ingroup lwip_opts_ipv4 + * @{ + */ +/** + * LWIP_IGMP==1: Turn on IGMP module. + */ +#if !defined LWIP_IGMP || defined __DOXYGEN__ +#define LWIP_IGMP 0 +#endif +#if !LWIP_IPV4 +#undef LWIP_IGMP +#define LWIP_IGMP 0 +#endif +/** + * @} + */ + +/* + ---------------------------------- + ---------- DNS options ----------- + ---------------------------------- +*/ +/** + * @defgroup lwip_opts_dns DNS + * @ingroup lwip_opts_callback + * @{ + */ +/** + * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS + * transport. + */ +#if !defined LWIP_DNS || defined __DOXYGEN__ +#define LWIP_DNS 0 +#endif + +/** DNS maximum number of entries to maintain locally. */ +#if !defined DNS_TABLE_SIZE || defined __DOXYGEN__ +#define DNS_TABLE_SIZE 4 +#endif + +/** DNS maximum host name length supported in the name table. */ +#if !defined DNS_MAX_NAME_LENGTH || defined __DOXYGEN__ +#define DNS_MAX_NAME_LENGTH 256 +#endif + +/** The maximum of DNS servers + * The first server can be initialized automatically by defining + * DNS_SERVER_ADDRESS(ipaddr), where 'ipaddr' is an 'ip_addr_t*' + */ +#if !defined DNS_MAX_SERVERS || defined __DOXYGEN__ +#define DNS_MAX_SERVERS 2 +#endif + +/** DNS maximum number of retries when asking for a name, before "timeout". */ +#if !defined DNS_MAX_RETRIES || defined __DOXYGEN__ +#define DNS_MAX_RETRIES 4 +#endif + +/** DNS do a name checking between the query and the response. */ +#if !defined DNS_DOES_NAME_CHECK || defined __DOXYGEN__ +#define DNS_DOES_NAME_CHECK 1 +#endif + +/** LWIP_DNS_SECURE: controls the security level of the DNS implementation + * Use all DNS security features by default. + * This is overridable but should only be needed by very small targets + * or when using against non standard DNS servers. */ +#if !defined LWIP_DNS_SECURE || defined __DOXYGEN__ +#define LWIP_DNS_SECURE (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT) +#endif + +/* A list of DNS security features follows */ +#define LWIP_DNS_SECURE_RAND_XID 1 +#define LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING 2 +#define LWIP_DNS_SECURE_RAND_SRC_PORT 4 + +/** DNS_LOCAL_HOSTLIST: Implements a local host-to-address list. If enabled, you have to define an initializer: + * \#define DNS_LOCAL_HOSTLIST_INIT {DNS_LOCAL_HOSTLIST_ELEM("host_ip4", IPADDR4_INIT_BYTES(1,2,3,4)), \ + * DNS_LOCAL_HOSTLIST_ELEM("host_ip6", IPADDR6_INIT_HOST(123, 234, 345, 456)} + * + * Instead, you can also use an external function: + * \#define DNS_LOOKUP_LOCAL_EXTERN(x) extern err_t my_lookup_function(const char *name, ip_addr_t *addr, u8_t dns_addrtype) + * that looks up the IP address and returns ERR_OK if found (LWIP_DNS_ADDRTYPE_xxx is passed in dns_addrtype). + */ +#if !defined DNS_LOCAL_HOSTLIST || defined __DOXYGEN__ +#define DNS_LOCAL_HOSTLIST 0 +#endif /* DNS_LOCAL_HOSTLIST */ + +/** If this is turned on, the local host-list can be dynamically changed + * at runtime. */ +#if !defined DNS_LOCAL_HOSTLIST_IS_DYNAMIC || defined __DOXYGEN__ +#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0 +#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ + +/** Set this to 1 to enable querying ".local" names via mDNS + * using a One-Shot Multicast DNS Query */ +#if !defined LWIP_DNS_SUPPORT_MDNS_QUERIES || defined __DOXYGEN__ +#define LWIP_DNS_SUPPORT_MDNS_QUERIES 0 +#endif +/** + * @} + */ + +/* + --------------------------------- + ---------- UDP options ---------- + --------------------------------- +*/ +/** + * @defgroup lwip_opts_udp UDP + * @ingroup lwip_opts_callback + * @{ + */ +/** + * LWIP_UDP==1: Turn on UDP. + */ +#if !defined LWIP_UDP || defined __DOXYGEN__ +#define LWIP_UDP 1 +#endif + +/** + * LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP) + */ +#if !defined LWIP_UDPLITE || defined __DOXYGEN__ +#define LWIP_UDPLITE 0 +#endif + +/** + * UDP_TTL: Default Time-To-Live value. + */ +#if !defined UDP_TTL || defined __DOXYGEN__ +#define UDP_TTL IP_DEFAULT_TTL +#endif + +/** + * LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf. + */ +#if !defined LWIP_NETBUF_RECVINFO || defined __DOXYGEN__ +#define LWIP_NETBUF_RECVINFO 0 +#endif +/** + * @} + */ + +/* + --------------------------------- + ---------- TCP options ---------- + --------------------------------- +*/ +/** + * @defgroup lwip_opts_tcp TCP + * @ingroup lwip_opts_callback + * @{ + */ +/** + * LWIP_TCP==1: Turn on TCP. + */ +#if !defined LWIP_TCP || defined __DOXYGEN__ +#define LWIP_TCP 1 +#endif + +/** + * TCP_TTL: Default Time-To-Live value. + */ +#if !defined TCP_TTL || defined __DOXYGEN__ +#define TCP_TTL IP_DEFAULT_TTL +#endif + +/** + * TCP_WND: The size of a TCP window. This must be at least + * (2 * TCP_MSS) for things to work well. + * ATTENTION: when using TCP_RCV_SCALE, TCP_WND is the total size + * with scaling applied. Maximum window value in the TCP header + * will be TCP_WND >> TCP_RCV_SCALE + */ +#if !defined TCP_WND || defined __DOXYGEN__ +#define TCP_WND (4 * TCP_MSS) +#endif + +/** + * TCP_MAXRTX: Maximum number of retransmissions of data segments. + */ +#if !defined TCP_MAXRTX || defined __DOXYGEN__ +#define TCP_MAXRTX 12 +#endif + +/** + * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments. + */ +#if !defined TCP_SYNMAXRTX || defined __DOXYGEN__ +#define TCP_SYNMAXRTX 6 +#endif + +/** + * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. + * Define to 0 if your device is low on memory. + */ +#if !defined TCP_QUEUE_OOSEQ || defined __DOXYGEN__ +#define TCP_QUEUE_OOSEQ LWIP_TCP +#endif + +/** + * LWIP_TCP_SACK_OUT==1: TCP will support sending selective acknowledgements (SACKs). + */ +#if !defined LWIP_TCP_SACK_OUT || defined __DOXYGEN__ +#define LWIP_TCP_SACK_OUT 0 +#endif + +/** + * LWIP_TCP_MAX_SACK_NUM: The maximum number of SACK values to include in TCP segments. + * Must be at least 1, but is only used if LWIP_TCP_SACK_OUT is enabled. + * NOTE: Even though we never send more than 3 or 4 SACK ranges in a single segment + * (depending on other options), setting this option to values greater than 4 is not pointless. + * This is basically the max number of SACK ranges we want to keep track of. + * As new data is delivered, some of the SACK ranges may be removed or merged. + * In that case some of those older SACK ranges may be used again. + * The amount of memory used to store SACK ranges is LWIP_TCP_MAX_SACK_NUM * 8 bytes for each TCP PCB. + */ +#if !defined LWIP_TCP_MAX_SACK_NUM || defined __DOXYGEN__ +#define LWIP_TCP_MAX_SACK_NUM 4 +#endif + +/** + * TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default, + * you might want to increase this.) + * For the receive side, this MSS is advertised to the remote side + * when opening a connection. For the transmit size, this MSS sets + * an upper limit on the MSS advertised by the remote host. + */ +#if !defined TCP_MSS || defined __DOXYGEN__ +#define TCP_MSS 536 +#endif + +/** + * TCP_CALCULATE_EFF_SEND_MSS: "The maximum size of a segment that TCP really + * sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which + * reflects the available reassembly buffer size at the remote host) and the + * largest size permitted by the IP layer" (RFC 1122) + * Setting this to 1 enables code that checks TCP_MSS against the MTU of the + * netif used for a connection and limits the MSS if it would be too big otherwise. + */ +#if !defined TCP_CALCULATE_EFF_SEND_MSS || defined __DOXYGEN__ +#define TCP_CALCULATE_EFF_SEND_MSS 1 +#endif + + +/** + * TCP_SND_BUF: TCP sender buffer space (bytes). + * To achieve good performance, this should be at least 2 * TCP_MSS. + */ +#if !defined TCP_SND_BUF || defined __DOXYGEN__ +#define TCP_SND_BUF (2 * TCP_MSS) +#endif + +/** + * TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). This must be at least + * as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work. + */ +#if !defined TCP_SND_QUEUELEN || defined __DOXYGEN__ +#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS)) +#endif + +/** + * TCP_SNDLOWAT: TCP writable space (bytes). This must be less than + * TCP_SND_BUF. It is the amount of space which must be available in the + * TCP snd_buf for select to return writable (combined with TCP_SNDQUEUELOWAT). + */ +#if !defined TCP_SNDLOWAT || defined __DOXYGEN__ +#define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1) +#endif + +/** + * TCP_SNDQUEUELOWAT: TCP writable bufs (pbuf count). This must be less + * than TCP_SND_QUEUELEN. If the number of pbufs queued on a pcb drops below + * this number, select returns writable (combined with TCP_SNDLOWAT). + */ +#if !defined TCP_SNDQUEUELOWAT || defined __DOXYGEN__ +#define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5) +#endif + +/** + * TCP_OOSEQ_MAX_BYTES: The default maximum number of bytes queued on ooseq per + * pcb if TCP_OOSEQ_BYTES_LIMIT is not defined. Default is 0 (no limit). + * Only valid for TCP_QUEUE_OOSEQ==1. + */ +#if !defined TCP_OOSEQ_MAX_BYTES || defined __DOXYGEN__ +#define TCP_OOSEQ_MAX_BYTES 0 +#endif + +/** + * TCP_OOSEQ_BYTES_LIMIT(pcb): Return the maximum number of bytes to be queued + * on ooseq per pcb, given the pcb. Only valid for TCP_QUEUE_OOSEQ==1 && + * TCP_OOSEQ_MAX_BYTES==1. + * Use this to override TCP_OOSEQ_MAX_BYTES to a dynamic value per pcb. + */ +#if !defined TCP_OOSEQ_BYTES_LIMIT +#if TCP_OOSEQ_MAX_BYTES +#define TCP_OOSEQ_BYTES_LIMIT(pcb) TCP_OOSEQ_MAX_BYTES +#elif defined __DOXYGEN__ +#define TCP_OOSEQ_BYTES_LIMIT(pcb) +#endif +#endif + +/** + * TCP_OOSEQ_MAX_PBUFS: The default maximum number of pbufs queued on ooseq per + * pcb if TCP_OOSEQ_BYTES_LIMIT is not defined. Default is 0 (no limit). + * Only valid for TCP_QUEUE_OOSEQ==1. + */ +#if !defined TCP_OOSEQ_MAX_PBUFS || defined __DOXYGEN__ +#define TCP_OOSEQ_MAX_PBUFS 0 +#endif + +/** + * TCP_OOSEQ_PBUFS_LIMIT(pcb): Return the maximum number of pbufs to be queued + * on ooseq per pcb, given the pcb. Only valid for TCP_QUEUE_OOSEQ==1 && + * TCP_OOSEQ_MAX_PBUFS==1. + * Use this to override TCP_OOSEQ_MAX_PBUFS to a dynamic value per pcb. + */ +#if !defined TCP_OOSEQ_PBUFS_LIMIT +#if TCP_OOSEQ_MAX_PBUFS +#define TCP_OOSEQ_PBUFS_LIMIT(pcb) TCP_OOSEQ_MAX_PBUFS +#elif defined __DOXYGEN__ +#define TCP_OOSEQ_PBUFS_LIMIT(pcb) +#endif +#endif + +/** + * TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb. + */ +#if !defined TCP_LISTEN_BACKLOG || defined __DOXYGEN__ +#define TCP_LISTEN_BACKLOG 0 +#endif + +/** + * The maximum allowed backlog for TCP listen netconns. + * This backlog is used unless another is explicitly specified. + * 0xff is the maximum (u8_t). + */ +#if !defined TCP_DEFAULT_LISTEN_BACKLOG || defined __DOXYGEN__ +#define TCP_DEFAULT_LISTEN_BACKLOG 0xff +#endif + +/** + * TCP_OVERSIZE: The maximum number of bytes that tcp_write may + * allocate ahead of time in an attempt to create shorter pbuf chains + * for transmission. The meaningful range is 0 to TCP_MSS. Some + * suggested values are: + * + * 0: Disable oversized allocation. Each tcp_write() allocates a new + pbuf (old behaviour). + * 1: Allocate size-aligned pbufs with minimal excess. Use this if your + * scatter-gather DMA requires aligned fragments. + * 128: Limit the pbuf/memory overhead to 20%. + * TCP_MSS: Try to create unfragmented TCP packets. + * TCP_MSS/4: Try to create 4 fragments or less per TCP packet. + */ +#if !defined TCP_OVERSIZE || defined __DOXYGEN__ +#define TCP_OVERSIZE TCP_MSS +#endif + +/** + * LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option. + * The timestamp option is currently only used to help remote hosts, it is not + * really used locally. Therefore, it is only enabled when a TS option is + * received in the initial SYN packet from a remote host. + */ +#if !defined LWIP_TCP_TIMESTAMPS || defined __DOXYGEN__ +#define LWIP_TCP_TIMESTAMPS 0 +#endif + +/** + * TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an + * explicit window update + */ +#if !defined TCP_WND_UPDATE_THRESHOLD || defined __DOXYGEN__ +#define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4)) +#endif + +/** + * LWIP_EVENT_API and LWIP_CALLBACK_API: Only one of these should be set to 1. + * LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all + * events (accept, sent, etc) that happen in the system. + * LWIP_CALLBACK_API==1: The PCB callback function is called directly + * for the event. This is the default. + */ +#if !defined(LWIP_EVENT_API) && !defined(LWIP_CALLBACK_API) || defined __DOXYGEN__ +#define LWIP_EVENT_API 0 +#define LWIP_CALLBACK_API 1 +#else +#ifndef LWIP_EVENT_API +#define LWIP_EVENT_API 0 +#endif +#ifndef LWIP_CALLBACK_API +#define LWIP_CALLBACK_API 0 +#endif +#endif + +/** + * LWIP_WND_SCALE and TCP_RCV_SCALE: + * Set LWIP_WND_SCALE to 1 to enable window scaling. + * Set TCP_RCV_SCALE to the desired scaling factor (shift count in the + * range of [0..14]). + * When LWIP_WND_SCALE is enabled but TCP_RCV_SCALE is 0, we can use a large + * send window while having a small receive window only. + */ +#if !defined LWIP_WND_SCALE || defined __DOXYGEN__ +#define LWIP_WND_SCALE 0 +#define TCP_RCV_SCALE 0 +#endif + +/** + * LWIP_TCP_PCB_NUM_EXT_ARGS: + * When this is > 0, every tcp pcb (including listen pcb) includes a number of + * additional argument entries in an array (see tcp_ext_arg_alloc_id) + */ +#if !defined LWIP_TCP_PCB_NUM_EXT_ARGS || defined __DOXYGEN__ +#define LWIP_TCP_PCB_NUM_EXT_ARGS 0 +#endif + +/** LWIP_ALTCP==1: enable the altcp API. + * altcp is an abstraction layer that prevents applications linking against the + * tcp.h functions but provides the same functionality. It is used to e.g. add + * SSL/TLS or proxy-connect support to an application written for the tcp callback + * API without that application knowing the protocol details. + * + * With LWIP_ALTCP==0, applications written against the altcp API can still be + * compiled but are directly linked against the tcp.h callback API and then + * cannot use layered protocols. + * + * See @ref altcp_api + */ +#if !defined LWIP_ALTCP || defined __DOXYGEN__ +#define LWIP_ALTCP 0 +#endif + +/** LWIP_ALTCP_TLS==1: enable TLS support for altcp API. + * This needs a port of the functions in altcp_tls.h to a TLS library. + * A port to ARM mbedtls is provided with lwIP, see apps/altcp_tls/ directory + * and LWIP_ALTCP_TLS_MBEDTLS option. + */ +#if !defined LWIP_ALTCP_TLS || defined __DOXYGEN__ +#define LWIP_ALTCP_TLS 0 +#endif + +/** + * @} + */ + +/* + ---------------------------------- + ---------- Pbuf options ---------- + ---------------------------------- +*/ +/** + * @defgroup lwip_opts_pbuf PBUF + * @ingroup lwip_opts + * @{ + */ +/** + * PBUF_LINK_HLEN: the number of bytes that should be allocated for a + * link level header. The default is 14, the standard value for + * Ethernet. + */ +#if !defined PBUF_LINK_HLEN || defined __DOXYGEN__ +#if defined LWIP_HOOK_VLAN_SET && !defined __DOXYGEN__ +#define PBUF_LINK_HLEN (18 + ETH_PAD_SIZE) +#else /* LWIP_HOOK_VLAN_SET */ +#define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE) +#endif /* LWIP_HOOK_VLAN_SET */ +#endif + +/** + * PBUF_LINK_ENCAPSULATION_HLEN: the number of bytes that should be allocated + * for an additional encapsulation header before ethernet headers (e.g. 802.11) + */ +#if !defined PBUF_LINK_ENCAPSULATION_HLEN || defined __DOXYGEN__ +#define PBUF_LINK_ENCAPSULATION_HLEN 0 +#endif + +/** + * PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. The default is + * designed to accommodate single full size TCP frame in one pbuf, including + * TCP_MSS, IP header, and link header. + */ +#if !defined PBUF_POOL_BUFSIZE || defined __DOXYGEN__ +#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_ENCAPSULATION_HLEN+PBUF_LINK_HLEN) +#endif + +/** + * LWIP_PBUF_REF_T: Refcount type in pbuf. + * Default width of u8_t can be increased if 255 refs are not enough for you. + */ +#if !defined LWIP_PBUF_REF_T || defined __DOXYGEN__ +#define LWIP_PBUF_REF_T u8_t +#endif +/** + * @} + */ + +/* + ------------------------------------------------ + ---------- Network Interfaces options ---------- + ------------------------------------------------ +*/ +/** + * @defgroup lwip_opts_netif NETIF + * @ingroup lwip_opts + * @{ + */ +/** + * LWIP_SINGLE_NETIF==1: use a single netif only. This is the common case for + * small real-life targets. Some code like routing etc. can be left out. + */ +#if !defined LWIP_SINGLE_NETIF || defined __DOXYGEN__ +#define LWIP_SINGLE_NETIF 0 +#endif + +/** + * LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname + * field. + */ +#if !defined LWIP_NETIF_HOSTNAME || defined __DOXYGEN__ +#define LWIP_NETIF_HOSTNAME 0 +#endif + +/** + * LWIP_NETIF_API==1: Support netif api (in netifapi.c) + */ +#if !defined LWIP_NETIF_API || defined __DOXYGEN__ +#define LWIP_NETIF_API 0 +#endif + +/** + * LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface + * changes its up/down status (i.e., due to DHCP IP acquisition) + */ +#if !defined LWIP_NETIF_STATUS_CALLBACK || defined __DOXYGEN__ +#define LWIP_NETIF_STATUS_CALLBACK 0 +#endif + +/** + * LWIP_NETIF_EXT_STATUS_CALLBACK==1: Support an extended callback function + * for several netif related event that supports multiple subscribers. + * @see netif_ext_status_callback + */ +#if !defined LWIP_NETIF_EXT_STATUS_CALLBACK || defined __DOXYGEN__ +#define LWIP_NETIF_EXT_STATUS_CALLBACK 0 +#endif + +/** + * LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface + * whenever the link changes (i.e., link down) + */ +#if !defined LWIP_NETIF_LINK_CALLBACK || defined __DOXYGEN__ +#define LWIP_NETIF_LINK_CALLBACK 0 +#endif + +/** + * LWIP_NETIF_REMOVE_CALLBACK==1: Support a callback function that is called + * when a netif has been removed + */ +#if !defined LWIP_NETIF_REMOVE_CALLBACK || defined __DOXYGEN__ +#define LWIP_NETIF_REMOVE_CALLBACK 0 +#endif + +/** + * LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. table + * indices) in struct netif. TCP and UDP can make use of this to prevent + * scanning the ARP table for every sent packet. While this is faster for big + * ARP tables or many concurrent connections, it might be counterproductive + * if you have a tiny ARP table or if there never are concurrent connections. + */ +#if !defined LWIP_NETIF_HWADDRHINT || defined __DOXYGEN__ +#define LWIP_NETIF_HWADDRHINT 0 +#endif + +/** + * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP *tries* to put all data + * to be sent into one single pbuf. This is for compatibility with DMA-enabled + * MACs that do not support scatter-gather. + * Beware that this might involve CPU-memcpy before transmitting that would not + * be needed without this flag! Use this only if you need to! + * + * ATTENTION: a driver should *NOT* rely on getting single pbufs but check TX + * pbufs for being in one piece. If not, @ref pbuf_clone can be used to get + * a single pbuf: + * if (p->next != NULL) { + * struct pbuf *q = pbuf_clone(PBUF_RAW, PBUF_RAM, p); + * if (q == NULL) { + * return ERR_MEM; + * } + * p = q; ATTENTION: do NOT free the old 'p' as the ref belongs to the caller! + * } + */ +#if !defined LWIP_NETIF_TX_SINGLE_PBUF || defined __DOXYGEN__ +#define LWIP_NETIF_TX_SINGLE_PBUF 0 +#endif /* LWIP_NETIF_TX_SINGLE_PBUF */ + +/** + * LWIP_NUM_NETIF_CLIENT_DATA: Number of clients that may store + * data in client_data member array of struct netif (max. 256). + */ +#if !defined LWIP_NUM_NETIF_CLIENT_DATA || defined __DOXYGEN__ +#define LWIP_NUM_NETIF_CLIENT_DATA 0 +#endif +/** + * @} + */ + +/* + ------------------------------------ + ---------- LOOPIF options ---------- + ------------------------------------ +*/ +/** + * @defgroup lwip_opts_loop Loopback interface + * @ingroup lwip_opts_netif + * @{ + */ +/** + * LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1). + * This is only needed when no real netifs are available. If at least one other + * netif is available, loopback traffic uses this netif. + */ +#if !defined LWIP_HAVE_LOOPIF || defined __DOXYGEN__ +#define LWIP_HAVE_LOOPIF (LWIP_NETIF_LOOPBACK && !LWIP_SINGLE_NETIF) +#endif + +/** + * LWIP_LOOPIF_MULTICAST==1: Support multicast/IGMP on loop interface (127.0.0.1). + */ +#if !defined LWIP_LOOPIF_MULTICAST || defined __DOXYGEN__ +#define LWIP_LOOPIF_MULTICAST 0 +#endif + +/** + * LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP + * address equal to the netif IP address, looping them back up the stack. + */ +#if !defined LWIP_NETIF_LOOPBACK || defined __DOXYGEN__ +#define LWIP_NETIF_LOOPBACK 0 +#endif + +/** + * LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback + * sending for each netif (0 = disabled) + */ +#if !defined LWIP_LOOPBACK_MAX_PBUFS || defined __DOXYGEN__ +#define LWIP_LOOPBACK_MAX_PBUFS 0 +#endif + +/** + * LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in + * the system, as netifs must change how they behave depending on this setting + * for the LWIP_NETIF_LOOPBACK option to work. + * Setting this is needed to avoid reentering non-reentrant functions like + * tcp_input(). + * LWIP_NETIF_LOOPBACK_MULTITHREADING==1: Indicates that the user is using a + * multithreaded environment like tcpip.c. In this case, netif->input() + * is called directly. + * LWIP_NETIF_LOOPBACK_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup. + * The packets are put on a list and netif_poll() must be called in + * the main application loop. + */ +#if !defined LWIP_NETIF_LOOPBACK_MULTITHREADING || defined __DOXYGEN__ +#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS) +#endif +/** + * @} + */ + +/* + ------------------------------------ + ---------- Thread options ---------- + ------------------------------------ +*/ +/** + * @defgroup lwip_opts_thread Threading + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * TCPIP_THREAD_NAME: The name assigned to the main tcpip thread. + */ +#if !defined TCPIP_THREAD_NAME || defined __DOXYGEN__ +#define TCPIP_THREAD_NAME "tcpip_thread" +#endif + +/** + * TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#if !defined TCPIP_THREAD_STACKSIZE || defined __DOXYGEN__ +#define TCPIP_THREAD_STACKSIZE 0 +#endif + +/** + * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#if !defined TCPIP_THREAD_PRIO || defined __DOXYGEN__ +#define TCPIP_THREAD_PRIO 1 +#endif + +/** + * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages + * The queue size value itself is platform-dependent, but is passed to + * sys_mbox_new() when tcpip_init is called. + */ +#if !defined TCPIP_MBOX_SIZE || defined __DOXYGEN__ +#define TCPIP_MBOX_SIZE 0 +#endif + +/** + * Define this to something that triggers a watchdog. This is called from + * tcpip_thread after processing a message. + */ +#if !defined LWIP_TCPIP_THREAD_ALIVE || defined __DOXYGEN__ +#define LWIP_TCPIP_THREAD_ALIVE() +#endif + +/** + * SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread. + */ +#if !defined SLIPIF_THREAD_NAME || defined __DOXYGEN__ +#define SLIPIF_THREAD_NAME "slipif_loop" +#endif + +/** + * SLIP_THREAD_STACKSIZE: The stack size used by the slipif_loop thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#if !defined SLIPIF_THREAD_STACKSIZE || defined __DOXYGEN__ +#define SLIPIF_THREAD_STACKSIZE 0 +#endif + +/** + * SLIPIF_THREAD_PRIO: The priority assigned to the slipif_loop thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#if !defined SLIPIF_THREAD_PRIO || defined __DOXYGEN__ +#define SLIPIF_THREAD_PRIO 1 +#endif + +/** + * DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread. + */ +#if !defined DEFAULT_THREAD_NAME || defined __DOXYGEN__ +#define DEFAULT_THREAD_NAME "lwIP" +#endif + +/** + * DEFAULT_THREAD_STACKSIZE: The stack size used by any other lwIP thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#if !defined DEFAULT_THREAD_STACKSIZE || defined __DOXYGEN__ +#define DEFAULT_THREAD_STACKSIZE 0 +#endif + +/** + * DEFAULT_THREAD_PRIO: The priority assigned to any other lwIP thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#if !defined DEFAULT_THREAD_PRIO || defined __DOXYGEN__ +#define DEFAULT_THREAD_PRIO 1 +#endif + +/** + * DEFAULT_RAW_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_RAW. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#if !defined DEFAULT_RAW_RECVMBOX_SIZE || defined __DOXYGEN__ +#define DEFAULT_RAW_RECVMBOX_SIZE 0 +#endif + +/** + * DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_UDP. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#if !defined DEFAULT_UDP_RECVMBOX_SIZE || defined __DOXYGEN__ +#define DEFAULT_UDP_RECVMBOX_SIZE 0 +#endif + +/** + * DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_TCP. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#if !defined DEFAULT_TCP_RECVMBOX_SIZE || defined __DOXYGEN__ +#define DEFAULT_TCP_RECVMBOX_SIZE 0 +#endif + +/** + * DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections. + * The queue size value itself is platform-dependent, but is passed to + * sys_mbox_new() when the acceptmbox is created. + */ +#if !defined DEFAULT_ACCEPTMBOX_SIZE || defined __DOXYGEN__ +#define DEFAULT_ACCEPTMBOX_SIZE 0 +#endif +/** + * @} + */ + +/* + ---------------------------------------------- + ---------- Sequential layer options ---------- + ---------------------------------------------- +*/ +/** + * @defgroup lwip_opts_netconn Netconn + * @ingroup lwip_opts_threadsafe_apis + * @{ + */ +/** + * LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c) + */ +#if !defined LWIP_NETCONN || defined __DOXYGEN__ +#define LWIP_NETCONN 1 +#endif + +/** LWIP_TCPIP_TIMEOUT==1: Enable tcpip_timeout/tcpip_untimeout to create + * timers running in tcpip_thread from another thread. + */ +#if !defined LWIP_TCPIP_TIMEOUT || defined __DOXYGEN__ +#define LWIP_TCPIP_TIMEOUT 0 +#endif + +/** LWIP_NETCONN_SEM_PER_THREAD==1: Use one (thread-local) semaphore per + * thread calling socket/netconn functions instead of allocating one + * semaphore per netconn (and per select etc.) + * ATTENTION: a thread-local semaphore for API calls is needed: + * - LWIP_NETCONN_THREAD_SEM_GET() returning a sys_sem_t* + * - LWIP_NETCONN_THREAD_SEM_ALLOC() creating the semaphore + * - LWIP_NETCONN_THREAD_SEM_FREE() freeing the semaphore + * The latter 2 can be invoked up by calling netconn_thread_init()/netconn_thread_cleanup(). + * Ports may call these for threads created with sys_thread_new(). + */ +#if !defined LWIP_NETCONN_SEM_PER_THREAD || defined __DOXYGEN__ +#define LWIP_NETCONN_SEM_PER_THREAD 0 +#endif + +/** LWIP_NETCONN_FULLDUPLEX==1: Enable code that allows reading from one thread, + * writing from a 2nd thread and closing from a 3rd thread at the same time. + * ATTENTION: This is currently really alpha! Some requirements: + * - LWIP_NETCONN_SEM_PER_THREAD==1 is required to use one socket/netconn from + * multiple threads at once + * - sys_mbox_free() has to unblock receive tasks waiting on recvmbox/acceptmbox + * and prevent a task pending on this during/after deletion + */ +#if !defined LWIP_NETCONN_FULLDUPLEX || defined __DOXYGEN__ +#define LWIP_NETCONN_FULLDUPLEX 0 +#endif +/** + * @} + */ + +/* + ------------------------------------ + ---------- Socket options ---------- + ------------------------------------ +*/ +/** + * @defgroup lwip_opts_socket Sockets + * @ingroup lwip_opts_threadsafe_apis + * @{ + */ +/** + * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c) + */ +#if !defined LWIP_SOCKET || defined __DOXYGEN__ +#define LWIP_SOCKET 1 +#endif + +/** + * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names through defines. + * LWIP_COMPAT_SOCKETS==2: Same as ==1 but correctly named functions are created. + * While this helps code completion, it might conflict with existing libraries. + * (only used if you use sockets.c) + */ +#if !defined LWIP_COMPAT_SOCKETS || defined __DOXYGEN__ +#define LWIP_COMPAT_SOCKETS 1 +#endif + +/** + * LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. + * Disable this option if you use a POSIX operating system that uses the same + * names (read, write & close). (only used if you use sockets.c) + */ +#if !defined LWIP_POSIX_SOCKETS_IO_NAMES || defined __DOXYGEN__ +#define LWIP_POSIX_SOCKETS_IO_NAMES 1 +#endif + +/** + * LWIP_SOCKET_OFFSET==n: Increases the file descriptor number created by LwIP with n. + * This can be useful when there are multiple APIs which create file descriptors. + * When they all start with a different offset and you won't make them overlap you can + * re implement read/write/close/ioctl/fnctl to send the requested action to the right + * library (sharing select will need more work though). + */ +#if !defined LWIP_SOCKET_OFFSET || defined __DOXYGEN__ +#define LWIP_SOCKET_OFFSET 0 +#endif + +/** + * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT + * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set + * in seconds. (does not require sockets.c, and will affect tcp.c) + */ +#if !defined LWIP_TCP_KEEPALIVE || defined __DOXYGEN__ +#define LWIP_TCP_KEEPALIVE 0 +#endif + +/** + * LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and + * SO_SNDTIMEO processing. + */ +#if !defined LWIP_SO_SNDTIMEO || defined __DOXYGEN__ +#define LWIP_SO_SNDTIMEO 0 +#endif + +/** + * LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and + * SO_RCVTIMEO processing. + */ +#if !defined LWIP_SO_RCVTIMEO || defined __DOXYGEN__ +#define LWIP_SO_RCVTIMEO 0 +#endif + +/** + * LWIP_SO_SNDRCVTIMEO_NONSTANDARD==1: SO_RCVTIMEO/SO_SNDTIMEO take an int + * (milliseconds, much like winsock does) instead of a struct timeval (default). + */ +#if !defined LWIP_SO_SNDRCVTIMEO_NONSTANDARD || defined __DOXYGEN__ +#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0 +#endif + +/** + * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. + */ +#if !defined LWIP_SO_RCVBUF || defined __DOXYGEN__ +#define LWIP_SO_RCVBUF 0 +#endif + +/** + * LWIP_SO_LINGER==1: Enable SO_LINGER processing. + */ +#if !defined LWIP_SO_LINGER || defined __DOXYGEN__ +#define LWIP_SO_LINGER 0 +#endif + +/** + * If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize. + */ +#if !defined RECV_BUFSIZE_DEFAULT || defined __DOXYGEN__ +#define RECV_BUFSIZE_DEFAULT INT_MAX +#endif + +/** + * By default, TCP socket/netconn close waits 20 seconds max to send the FIN + */ +#if !defined LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT || defined __DOXYGEN__ +#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000 +#endif + +/** + * SO_REUSE==1: Enable SO_REUSEADDR option. + */ +#if !defined SO_REUSE || defined __DOXYGEN__ +#define SO_REUSE 0 +#endif + +/** + * SO_REUSE_RXTOALL==1: Pass a copy of incoming broadcast/multicast packets + * to all local matches if SO_REUSEADDR is turned on. + * WARNING: Adds a memcpy for every packet if passing to more than one pcb! + */ +#if !defined SO_REUSE_RXTOALL || defined __DOXYGEN__ +#define SO_REUSE_RXTOALL 0 +#endif + +/** + * LWIP_FIONREAD_LINUXMODE==0 (default): ioctl/FIONREAD returns the amount of + * pending data in the network buffer. This is the way windows does it. It's + * the default for lwIP since it is smaller. + * LWIP_FIONREAD_LINUXMODE==1: ioctl/FIONREAD returns the size of the next + * pending datagram in bytes. This is the way linux does it. This code is only + * here for compatibility. + */ +#if !defined LWIP_FIONREAD_LINUXMODE || defined __DOXYGEN__ +#define LWIP_FIONREAD_LINUXMODE 0 +#endif + +/** + * LWIP_SOCKET_SELECT==1 (default): enable select() for sockets (uses a netconn + * callback to keep track of events). + * This saves RAM (counters per socket) and code (netconn event callback), which + * should improve performance a bit). + */ +#if !defined LWIP_SOCKET_SELECT || defined __DOXYGEN__ +#define LWIP_SOCKET_SELECT 1 +#endif + +/** + * LWIP_SOCKET_POLL==1 (default): enable poll() for sockets (including + * struct pollfd, nfds_t, and constants) + */ +#if !defined LWIP_SOCKET_POLL || defined __DOXYGEN__ +#define LWIP_SOCKET_POLL 1 +#endif +/** + * @} + */ + +/* + ---------------------------------------- + ---------- Statistics options ---------- + ---------------------------------------- +*/ +/** + * @defgroup lwip_opts_stats Statistics + * @ingroup lwip_opts_debug + * @{ + */ +/** + * LWIP_STATS==1: Enable statistics collection in lwip_stats. + */ +#if !defined LWIP_STATS || defined __DOXYGEN__ +#define LWIP_STATS 1 +#endif + +#if LWIP_STATS + +/** + * LWIP_STATS_DISPLAY==1: Compile in the statistics output functions. + */ +#if !defined LWIP_STATS_DISPLAY || defined __DOXYGEN__ +#define LWIP_STATS_DISPLAY 0 +#endif + +/** + * LINK_STATS==1: Enable link stats. + */ +#if !defined LINK_STATS || defined __DOXYGEN__ +#define LINK_STATS 1 +#endif + +/** + * ETHARP_STATS==1: Enable etharp stats. + */ +#if !defined ETHARP_STATS || defined __DOXYGEN__ +#define ETHARP_STATS (LWIP_ARP) +#endif + +/** + * IP_STATS==1: Enable IP stats. + */ +#if !defined IP_STATS || defined __DOXYGEN__ +#define IP_STATS 1 +#endif + +/** + * IPFRAG_STATS==1: Enable IP fragmentation stats. Default is + * on if using either frag or reass. + */ +#if !defined IPFRAG_STATS || defined __DOXYGEN__ +#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) +#endif + +/** + * ICMP_STATS==1: Enable ICMP stats. + */ +#if !defined ICMP_STATS || defined __DOXYGEN__ +#define ICMP_STATS 1 +#endif + +/** + * IGMP_STATS==1: Enable IGMP stats. + */ +#if !defined IGMP_STATS || defined __DOXYGEN__ +#define IGMP_STATS (LWIP_IGMP) +#endif + +/** + * UDP_STATS==1: Enable UDP stats. Default is on if + * UDP enabled, otherwise off. + */ +#if !defined UDP_STATS || defined __DOXYGEN__ +#define UDP_STATS (LWIP_UDP) +#endif + +/** + * TCP_STATS==1: Enable TCP stats. Default is on if TCP + * enabled, otherwise off. + */ +#if !defined TCP_STATS || defined __DOXYGEN__ +#define TCP_STATS (LWIP_TCP) +#endif + +/** + * MEM_STATS==1: Enable mem.c stats. + */ +#if !defined MEM_STATS || defined __DOXYGEN__ +#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0)) +#endif + +/** + * MEMP_STATS==1: Enable memp.c pool stats. + */ +#if !defined MEMP_STATS || defined __DOXYGEN__ +#define MEMP_STATS (MEMP_MEM_MALLOC == 0) +#endif + +/** + * SYS_STATS==1: Enable system stats (sem and mbox counts, etc). + */ +#if !defined SYS_STATS || defined __DOXYGEN__ +#define SYS_STATS (NO_SYS == 0) +#endif + +/** + * IP6_STATS==1: Enable IPv6 stats. + */ +#if !defined IP6_STATS || defined __DOXYGEN__ +#define IP6_STATS (LWIP_IPV6) +#endif + +/** + * ICMP6_STATS==1: Enable ICMP for IPv6 stats. + */ +#if !defined ICMP6_STATS || defined __DOXYGEN__ +#define ICMP6_STATS (LWIP_IPV6 && LWIP_ICMP6) +#endif + +/** + * IP6_FRAG_STATS==1: Enable IPv6 fragmentation stats. + */ +#if !defined IP6_FRAG_STATS || defined __DOXYGEN__ +#define IP6_FRAG_STATS (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS)) +#endif + +/** + * MLD6_STATS==1: Enable MLD for IPv6 stats. + */ +#if !defined MLD6_STATS || defined __DOXYGEN__ +#define MLD6_STATS (LWIP_IPV6 && LWIP_IPV6_MLD) +#endif + +/** + * ND6_STATS==1: Enable Neighbor discovery for IPv6 stats. + */ +#if !defined ND6_STATS || defined __DOXYGEN__ +#define ND6_STATS (LWIP_IPV6) +#endif + +/** + * MIB2_STATS==1: Stats for SNMP MIB2. + */ +#if !defined MIB2_STATS || defined __DOXYGEN__ +#define MIB2_STATS 0 +#endif + +#else + +#define LINK_STATS 0 +#define ETHARP_STATS 0 +#define IP_STATS 0 +#define IPFRAG_STATS 0 +#define ICMP_STATS 0 +#define IGMP_STATS 0 +#define UDP_STATS 0 +#define TCP_STATS 0 +#define MEM_STATS 0 +#define MEMP_STATS 0 +#define SYS_STATS 0 +#define LWIP_STATS_DISPLAY 0 +#define IP6_STATS 0 +#define ICMP6_STATS 0 +#define IP6_FRAG_STATS 0 +#define MLD6_STATS 0 +#define ND6_STATS 0 +#define MIB2_STATS 0 + +#endif /* LWIP_STATS */ +/** + * @} + */ + +/* + -------------------------------------- + ---------- Checksum options ---------- + -------------------------------------- +*/ +/** + * @defgroup lwip_opts_checksum Checksum + * @ingroup lwip_opts_infrastructure + * @{ + */ +/** + * LWIP_CHECKSUM_CTRL_PER_NETIF==1: Checksum generation/check can be enabled/disabled + * per netif. + * ATTENTION: if enabled, the CHECKSUM_GEN_* and CHECKSUM_CHECK_* defines must be enabled! + */ +#if !defined LWIP_CHECKSUM_CTRL_PER_NETIF || defined __DOXYGEN__ +#define LWIP_CHECKSUM_CTRL_PER_NETIF 0 +#endif + +/** + * CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets. + */ +#if !defined CHECKSUM_GEN_IP || defined __DOXYGEN__ +#define CHECKSUM_GEN_IP 1 +#endif + +/** + * CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets. + */ +#if !defined CHECKSUM_GEN_UDP || defined __DOXYGEN__ +#define CHECKSUM_GEN_UDP 1 +#endif + +/** + * CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets. + */ +#if !defined CHECKSUM_GEN_TCP || defined __DOXYGEN__ +#define CHECKSUM_GEN_TCP 1 +#endif + +/** + * CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets. + */ +#if !defined CHECKSUM_GEN_ICMP || defined __DOXYGEN__ +#define CHECKSUM_GEN_ICMP 1 +#endif + +/** + * CHECKSUM_GEN_ICMP6==1: Generate checksums in software for outgoing ICMP6 packets. + */ +#if !defined CHECKSUM_GEN_ICMP6 || defined __DOXYGEN__ +#define CHECKSUM_GEN_ICMP6 1 +#endif + +/** + * CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets. + */ +#if !defined CHECKSUM_CHECK_IP || defined __DOXYGEN__ +#define CHECKSUM_CHECK_IP 1 +#endif + +/** + * CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets. + */ +#if !defined CHECKSUM_CHECK_UDP || defined __DOXYGEN__ +#define CHECKSUM_CHECK_UDP 1 +#endif + +/** + * CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets. + */ +#if !defined CHECKSUM_CHECK_TCP || defined __DOXYGEN__ +#define CHECKSUM_CHECK_TCP 1 +#endif + +/** + * CHECKSUM_CHECK_ICMP==1: Check checksums in software for incoming ICMP packets. + */ +#if !defined CHECKSUM_CHECK_ICMP || defined __DOXYGEN__ +#define CHECKSUM_CHECK_ICMP 1 +#endif + +/** + * CHECKSUM_CHECK_ICMP6==1: Check checksums in software for incoming ICMPv6 packets + */ +#if !defined CHECKSUM_CHECK_ICMP6 || defined __DOXYGEN__ +#define CHECKSUM_CHECK_ICMP6 1 +#endif + +/** + * LWIP_CHECKSUM_ON_COPY==1: Calculate checksum when copying data from + * application buffers to pbufs. + */ +#if !defined LWIP_CHECKSUM_ON_COPY || defined __DOXYGEN__ +#define LWIP_CHECKSUM_ON_COPY 0 +#endif +/** + * @} + */ + +/* + --------------------------------------- + ---------- IPv6 options --------------- + --------------------------------------- +*/ +/** + * @defgroup lwip_opts_ipv6 IPv6 + * @ingroup lwip_opts + * @{ + */ +/** + * LWIP_IPV6==1: Enable IPv6 + */ +#if !defined LWIP_IPV6 || defined __DOXYGEN__ +#define LWIP_IPV6 0 +#endif + +/** + * IPV6_REASS_MAXAGE: Maximum time (in multiples of IP6_REASS_TMR_INTERVAL - so seconds, normally) + * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived + * in this time, the whole packet is discarded. + */ +#if !defined IPV6_REASS_MAXAGE || defined __DOXYGEN__ +#define IPV6_REASS_MAXAGE 60 +#endif + +/** + * LWIP_IPV6_SCOPES==1: Enable support for IPv6 address scopes, ensuring that + * e.g. link-local addresses are really treated as link-local. Disable this + * setting only for single-interface configurations. + * All addresses that have a scope according to the default policy (link-local + * unicast addresses, interface-local and link-local multicast addresses) should + * now have a zone set on them before being passed to the core API, although + * lwIP will currently attempt to select a zone on the caller's behalf when + * necessary. Applications that directly assign IPv6 addresses to interfaces + * (which is NOT recommended) must now ensure that link-local addresses carry + * the netif's zone. See the new ip6_zone.h header file for more information and + * relevant macros. For now it is still possible to turn off scopes support + * through the new LWIP_IPV6_SCOPES option. When upgrading an implementation that + * uses the core API directly, it is highly recommended to enable + * LWIP_IPV6_SCOPES_DEBUG at least for a while, to ensure e.g. proper address + * initialization. + */ +#if !defined LWIP_IPV6_SCOPES || defined __DOXYGEN__ +#define LWIP_IPV6_SCOPES (LWIP_IPV6 && !LWIP_SINGLE_NETIF) +#endif + +/** + * LWIP_IPV6_SCOPES_DEBUG==1: Perform run-time checks to verify that addresses + * are properly zoned (see ip6_zone.h on what that means) where it matters. + * Enabling this setting is highly recommended when upgrading from an existing + * installation that is not yet scope-aware; otherwise it may be too expensive. + */ +#if !defined LWIP_IPV6_SCOPES_DEBUG || defined __DOXYGEN__ +#define LWIP_IPV6_SCOPES_DEBUG 0 +#endif + +/** + * LWIP_IPV6_NUM_ADDRESSES: Number of IPv6 addresses per netif. + */ +#if !defined LWIP_IPV6_NUM_ADDRESSES || defined __DOXYGEN__ +#define LWIP_IPV6_NUM_ADDRESSES 3 +#endif + +/** + * LWIP_IPV6_FORWARD==1: Forward IPv6 packets across netifs + */ +#if !defined LWIP_IPV6_FORWARD || defined __DOXYGEN__ +#define LWIP_IPV6_FORWARD 0 +#endif + +/** + * LWIP_IPV6_FRAG==1: Fragment outgoing IPv6 packets that are too big. + */ +#if !defined LWIP_IPV6_FRAG || defined __DOXYGEN__ +#define LWIP_IPV6_FRAG 1 +#endif + +/** + * LWIP_IPV6_REASS==1: reassemble incoming IPv6 packets that fragmented + */ +#if !defined LWIP_IPV6_REASS || defined __DOXYGEN__ +#define LWIP_IPV6_REASS LWIP_IPV6 +#endif + +/** + * LWIP_IPV6_SEND_ROUTER_SOLICIT==1: Send router solicitation messages during + * network startup. + */ +#if !defined LWIP_IPV6_SEND_ROUTER_SOLICIT || defined __DOXYGEN__ +#define LWIP_IPV6_SEND_ROUTER_SOLICIT 1 +#endif + +/** + * LWIP_IPV6_AUTOCONFIG==1: Enable stateless address autoconfiguration as per RFC 4862. + */ +#if !defined LWIP_IPV6_AUTOCONFIG || defined __DOXYGEN__ +#define LWIP_IPV6_AUTOCONFIG LWIP_IPV6 +#endif + +/** + * LWIP_IPV6_ADDRESS_LIFETIMES==1: Keep valid and preferred lifetimes for each + * IPv6 address. Required for LWIP_IPV6_AUTOCONFIG. May still be enabled + * otherwise, in which case the application may assign address lifetimes with + * the appropriate macros. Addresses with no lifetime are assumed to be static. + * If this option is disabled, all addresses are assumed to be static. + */ +#if !defined LWIP_IPV6_ADDRESS_LIFETIMES || defined __DOXYGEN__ +#define LWIP_IPV6_ADDRESS_LIFETIMES LWIP_IPV6_AUTOCONFIG +#endif + +/** + * LWIP_IPV6_DUP_DETECT_ATTEMPTS=[0..7]: Number of duplicate address detection attempts. + */ +#if !defined LWIP_IPV6_DUP_DETECT_ATTEMPTS || defined __DOXYGEN__ +#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 1 +#endif +/** + * @} + */ + +/** + * @defgroup lwip_opts_icmp6 ICMP6 + * @ingroup lwip_opts_ipv6 + * @{ + */ +/** + * LWIP_ICMP6==1: Enable ICMPv6 (mandatory per RFC) + */ +#if !defined LWIP_ICMP6 || defined __DOXYGEN__ +#define LWIP_ICMP6 LWIP_IPV6 +#endif + +/** + * LWIP_ICMP6_DATASIZE: bytes from original packet to send back in + * ICMPv6 error messages. + */ +#if !defined LWIP_ICMP6_DATASIZE || defined __DOXYGEN__ +#define LWIP_ICMP6_DATASIZE 8 +#endif + +/** + * LWIP_ICMP6_HL: default hop limit for ICMPv6 messages + */ +#if !defined LWIP_ICMP6_HL || defined __DOXYGEN__ +#define LWIP_ICMP6_HL 255 +#endif +/** + * @} + */ + +/** + * @defgroup lwip_opts_mld6 Multicast listener discovery + * @ingroup lwip_opts_ipv6 + * @{ + */ +/** + * LWIP_IPV6_MLD==1: Enable multicast listener discovery protocol. + * If LWIP_IPV6 is enabled but this setting is disabled, the MAC layer must + * indiscriminately pass all inbound IPv6 multicast traffic to lwIP. + */ +#if !defined LWIP_IPV6_MLD || defined __DOXYGEN__ +#define LWIP_IPV6_MLD LWIP_IPV6 +#endif + +/** + * MEMP_NUM_MLD6_GROUP: Max number of IPv6 multicast groups that can be joined. + * There must be enough groups so that each netif can join the solicited-node + * multicast group for each of its local addresses, plus one for MDNS if + * applicable, plus any number of groups to be joined on UDP sockets. + */ +#if !defined MEMP_NUM_MLD6_GROUP || defined __DOXYGEN__ +#define MEMP_NUM_MLD6_GROUP 4 +#endif +/** + * @} + */ + +/** + * @defgroup lwip_opts_nd6 Neighbor discovery + * @ingroup lwip_opts_ipv6 + * @{ + */ +/** + * LWIP_ND6_QUEUEING==1: queue outgoing IPv6 packets while MAC address + * is being resolved. + */ +#if !defined LWIP_ND6_QUEUEING || defined __DOXYGEN__ +#define LWIP_ND6_QUEUEING LWIP_IPV6 +#endif + +/** + * MEMP_NUM_ND6_QUEUE: Max number of IPv6 packets to queue during MAC resolution. + */ +#if !defined MEMP_NUM_ND6_QUEUE || defined __DOXYGEN__ +#define MEMP_NUM_ND6_QUEUE 20 +#endif + +/** + * LWIP_ND6_NUM_NEIGHBORS: Number of entries in IPv6 neighbor cache + */ +#if !defined LWIP_ND6_NUM_NEIGHBORS || defined __DOXYGEN__ +#define LWIP_ND6_NUM_NEIGHBORS 10 +#endif + +/** + * LWIP_ND6_NUM_DESTINATIONS: number of entries in IPv6 destination cache + */ +#if !defined LWIP_ND6_NUM_DESTINATIONS || defined __DOXYGEN__ +#define LWIP_ND6_NUM_DESTINATIONS 10 +#endif + +/** + * LWIP_ND6_NUM_PREFIXES: number of entries in IPv6 on-link prefixes cache + */ +#if !defined LWIP_ND6_NUM_PREFIXES || defined __DOXYGEN__ +#define LWIP_ND6_NUM_PREFIXES 5 +#endif + +/** + * LWIP_ND6_NUM_ROUTERS: number of entries in IPv6 default router cache + */ +#if !defined LWIP_ND6_NUM_ROUTERS || defined __DOXYGEN__ +#define LWIP_ND6_NUM_ROUTERS 3 +#endif + +/** + * LWIP_ND6_MAX_MULTICAST_SOLICIT: max number of multicast solicit messages to send + * (neighbor solicit and router solicit) + */ +#if !defined LWIP_ND6_MAX_MULTICAST_SOLICIT || defined __DOXYGEN__ +#define LWIP_ND6_MAX_MULTICAST_SOLICIT 3 +#endif + +/** + * LWIP_ND6_MAX_UNICAST_SOLICIT: max number of unicast neighbor solicitation messages + * to send during neighbor reachability detection. + */ +#if !defined LWIP_ND6_MAX_UNICAST_SOLICIT || defined __DOXYGEN__ +#define LWIP_ND6_MAX_UNICAST_SOLICIT 3 +#endif + +/** + * Unused: See ND RFC (time in milliseconds). + */ +#if !defined LWIP_ND6_MAX_ANYCAST_DELAY_TIME || defined __DOXYGEN__ +#define LWIP_ND6_MAX_ANYCAST_DELAY_TIME 1000 +#endif + +/** + * Unused: See ND RFC + */ +#if !defined LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT || defined __DOXYGEN__ +#define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT 3 +#endif + +/** + * LWIP_ND6_REACHABLE_TIME: default neighbor reachable time (in milliseconds). + * May be updated by router advertisement messages. + */ +#if !defined LWIP_ND6_REACHABLE_TIME || defined __DOXYGEN__ +#define LWIP_ND6_REACHABLE_TIME 30000 +#endif + +/** + * LWIP_ND6_RETRANS_TIMER: default retransmission timer for solicitation messages + */ +#if !defined LWIP_ND6_RETRANS_TIMER || defined __DOXYGEN__ +#define LWIP_ND6_RETRANS_TIMER 1000 +#endif + +/** + * LWIP_ND6_DELAY_FIRST_PROBE_TIME: Delay before first unicast neighbor solicitation + * message is sent, during neighbor reachability detection. + */ +#if !defined LWIP_ND6_DELAY_FIRST_PROBE_TIME || defined __DOXYGEN__ +#define LWIP_ND6_DELAY_FIRST_PROBE_TIME 5000 +#endif + +/** + * LWIP_ND6_ALLOW_RA_UPDATES==1: Allow Router Advertisement messages to update + * Reachable time and retransmission timers, and netif MTU. + */ +#if !defined LWIP_ND6_ALLOW_RA_UPDATES || defined __DOXYGEN__ +#define LWIP_ND6_ALLOW_RA_UPDATES 1 +#endif + +/** + * LWIP_ND6_TCP_REACHABILITY_HINTS==1: Allow TCP to provide Neighbor Discovery + * with reachability hints for connected destinations. This helps avoid sending + * unicast neighbor solicitation messages. + */ +#if !defined LWIP_ND6_TCP_REACHABILITY_HINTS || defined __DOXYGEN__ +#define LWIP_ND6_TCP_REACHABILITY_HINTS 1 +#endif + +/** + * LWIP_ND6_RDNSS_MAX_DNS_SERVERS > 0: Use IPv6 Router Advertisement Recursive + * DNS Server Option (as per RFC 6106) to copy a defined maximum number of DNS + * servers to the DNS module. + */ +#if !defined LWIP_ND6_RDNSS_MAX_DNS_SERVERS || defined __DOXYGEN__ +#define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0 +#endif +/** + * @} + */ + +/** + * @defgroup lwip_opts_dhcpv6 DHCPv6 + * @ingroup lwip_opts_ipv6 + * @{ + */ +/** + * LWIP_IPV6_DHCP6==1: enable DHCPv6 stateful/stateless address autoconfiguration. + */ +#if !defined LWIP_IPV6_DHCP6 || defined __DOXYGEN__ +#define LWIP_IPV6_DHCP6 0 +#endif + +/** + * LWIP_IPV6_DHCP6_STATEFUL==1: enable DHCPv6 stateful address autoconfiguration. + * (not supported, yet!) + */ +#if !defined LWIP_IPV6_DHCP6_STATEFUL || defined __DOXYGEN__ +#define LWIP_IPV6_DHCP6_STATEFUL 0 +#endif + +/** + * LWIP_IPV6_DHCP6_STATELESS==1: enable DHCPv6 stateless address autoconfiguration. + */ +#if !defined LWIP_IPV6_DHCP6_STATELESS || defined __DOXYGEN__ +#define LWIP_IPV6_DHCP6_STATELESS LWIP_IPV6_DHCP6 +#endif + +/** + * LWIP_DHCP6_GETS_NTP==1: Request NTP servers via DHCPv6. For each + * response packet, a callback is called, which has to be provided by the port: + * void dhcp6_set_ntp_servers(u8_t num_ntp_servers, ip_addr_t* ntp_server_addrs); +*/ +#if !defined LWIP_DHCP6_GET_NTP_SRV || defined __DOXYGEN__ +#define LWIP_DHCP6_GET_NTP_SRV 0 +#endif + +/** + * The maximum of NTP servers requested + */ +#if !defined LWIP_DHCP6_MAX_NTP_SERVERS || defined __DOXYGEN__ +#define LWIP_DHCP6_MAX_NTP_SERVERS 1 +#endif + +/** + * LWIP_DHCP6_MAX_DNS_SERVERS > 0: Request DNS servers via DHCPv6. + * DNS servers received in the response are passed to DNS via @ref dns_setserver() + * (up to the maximum limit defined here). + */ +#if !defined LWIP_DHCP6_MAX_DNS_SERVERS || defined __DOXYGEN__ +#define LWIP_DHCP6_MAX_DNS_SERVERS DNS_MAX_SERVERS +#endif +/** + * @} + */ + +/* + --------------------------------------- + ---------- Hook options --------------- + --------------------------------------- +*/ + +/** + * @defgroup lwip_opts_hooks Hooks + * @ingroup lwip_opts_infrastructure + * Hooks are undefined by default, define them to a function if you need them. + * @{ + */ + +/** + * LWIP_HOOK_FILENAME: Custom filename to \#include in files that provide hooks. + * Declare your hook function prototypes in there, you may also \#include all headers + * providing data types that are need in this file. + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_FILENAME "path/to/my/lwip_hooks.h" +#endif + +/** + * LWIP_HOOK_TCP_ISN: + * Hook for generation of the Initial Sequence Number (ISN) for a new TCP + * connection. The default lwIP ISN generation algorithm is very basic and may + * allow for TCP spoofing attacks. This hook provides the means to implement + * the standardized ISN generation algorithm from RFC 6528 (see contrib/adons/tcp_isn), + * or any other desired algorithm as a replacement. + * Called from tcp_connect() and tcp_listen_input() when an ISN is needed for + * a new TCP connection, if TCP support (@ref LWIP_TCP) is enabled.\n + * Signature:\code{.c} + * u32_t my_hook_tcp_isn(const ip_addr_t* local_ip, u16_t local_port, const ip_addr_t* remote_ip, u16_t remote_port); + * \endcode + * - it may be necessary to use "struct ip_addr" (ip4_addr, ip6_addr) instead of "ip_addr_t" in function declarations\n + * Arguments: + * - local_ip: pointer to the local IP address of the connection + * - local_port: local port number of the connection (host-byte order) + * - remote_ip: pointer to the remote IP address of the connection + * - remote_port: remote port number of the connection (host-byte order)\n + * Return value: + * - the 32-bit Initial Sequence Number to use for the new TCP connection. + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_TCP_ISN(local_ip, local_port, remote_ip, remote_port) +#endif + +/** + * LWIP_HOOK_TCP_INPACKET_PCB: + * Hook for intercepting incoming packets before they are passed to a pcb. This + * allows updating some state or even dropping a packet. + * Signature:\code{.c} + * err_t my_hook_tcp_inpkt(struct tcp_pcb *pcb, struct tcp_hdr *hdr, u16_t optlen, u16_t opt1len, u8_t *opt2, struct pbuf *p); + * \endcode + * Arguments: + * - pcb: tcp_pcb selected for input of this packet (ATTENTION: this may be + * struct tcp_pcb_listen if pcb->state == LISTEN) + * - hdr: pointer to tcp header (ATTENTION: tcp options may not be in one piece!) + * - optlen: tcp option length + * - opt1len: tcp option length 1st part + * - opt2: if this is != NULL, tcp options are split among 2 pbufs. In that case, + * options start at right after the tcp header ('(u8_t*)(hdr + 1)') for + * the first 'opt1len' bytes and the rest starts at 'opt2'. opt2len can + * be simply calculated: 'opt2len = optlen - opt1len;' + * - p: input packet, p->payload points to application data (that's why tcp hdr + * and options are passed in seperately) + * Return value: + * - ERR_OK: continue input of this packet as normal + * - != ERR_OK: drop this packet for input (don't continue input processing) + * + * ATTENTION: don't call any tcp api functions that might change tcp state (pcb + * state or any pcb lists) from this callback! + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_TCP_INPACKET_PCB(pcb, hdr, optlen, opt1len, opt2, p) +#endif + +/** + * LWIP_HOOK_TCP_OUT_TCPOPT_LENGTH: + * Hook for increasing the size of the options allocated with a tcp header. + * Together with LWIP_HOOK_TCP_OUT_ADD_TCPOPTS, this can be used to add custom + * options to outgoing tcp segments. + * Signature:\code{.c} + * u8_t my_hook_tcp_out_tcpopt_length(const struct tcp_pcb *pcb, u8_t internal_option_length); + * \endcode + * Arguments: + * - pcb: tcp_pcb that transmits (ATTENTION: this may be NULL or + * struct tcp_pcb_listen if pcb->state == LISTEN) + * - internal_option_length: tcp option length used by the stack internally + * Return value: + * - a number of bytes to allocate for tcp options (internal_option_length <= ret <= 40) + * + * ATTENTION: don't call any tcp api functions that might change tcp state (pcb + * state or any pcb lists) from this callback! + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_TCP_OUT_TCPOPT_LENGTH(pcb, internal_len) +#endif + +/** + * LWIP_HOOK_TCP_OUT_ADD_TCPOPTS: + * Hook for adding custom options to outgoing tcp segments. + * Space for these custom options has to be reserved via LWIP_HOOK_TCP_OUT_TCPOPT_LENGTH. + * Signature:\code{.c} + * u32_t *my_hook_tcp_out_add_tcpopts(struct pbuf *p, struct tcp_hdr *hdr, const struct tcp_pcb *pcb, u32_t *opts); + * \endcode + * Arguments: + * - p: output packet, p->payload pointing to tcp header, data follows + * - hdr: tcp header + * - pcb: tcp_pcb that transmits (ATTENTION: this may be NULL or + * struct tcp_pcb_listen if pcb->state == LISTEN) + * - opts: pointer where to add the custom options (there may already be options + * between the header and these) + * Return value: + * - pointer pointing directly after the inserted options + * + * ATTENTION: don't call any tcp api functions that might change tcp state (pcb + * state or any pcb lists) from this callback! + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_TCP_OUT_ADD_TCPOPTS(p, hdr, pcb, opts) +#endif + +/** + * LWIP_HOOK_IP4_INPUT(pbuf, input_netif): + * Called from ip_input() (IPv4) + * Signature:\code{.c} + * int my_hook(struct pbuf *pbuf, struct netif *input_netif); + * \endcode + * Arguments: + * - pbuf: received struct pbuf passed to ip_input() + * - input_netif: struct netif on which the packet has been received + * Return values: + * - 0: Hook has not consumed the packet, packet is processed as normal + * - != 0: Hook has consumed the packet. + * If the hook consumed the packet, 'pbuf' is in the responsibility of the hook + * (i.e. free it when done). + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_IP4_INPUT(pbuf, input_netif) +#endif + +/** + * LWIP_HOOK_IP4_ROUTE(dest): + * Called from ip_route() (IPv4) + * Signature:\code{.c} + * struct netif *my_hook(const ip4_addr_t *dest); + * \endcode + * Arguments: + * - dest: destination IPv4 address + * Returns values: + * - the destination netif + * - NULL if no destination netif is found. In that case, ip_route() continues as normal. + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_IP4_ROUTE() +#endif + +/** + * LWIP_HOOK_IP4_ROUTE_SRC(src, dest): + * Source-based routing for IPv4 - called from ip_route() (IPv4) + * Signature:\code{.c} + * struct netif *my_hook(const ip4_addr_t *src, const ip4_addr_t *dest); + * \endcode + * Arguments: + * - src: local/source IPv4 address + * - dest: destination IPv4 address + * Returns values: + * - the destination netif + * - NULL if no destination netif is found. In that case, ip_route() continues as normal. + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_IP4_ROUTE_SRC(src, dest) +#endif + +/** + * LWIP_HOOK_IP4_CANFORWARD(src, dest): + * Check if an IPv4 can be forwarded - called from: + * ip4_input() -> ip4_forward() -> ip4_canforward() (IPv4) + * - source address is available via ip4_current_src_addr() + * - calling an output function in this context (e.g. multicast router) is allowed + * Signature:\code{.c} + * int my_hook(struct pbuf *p, u32_t dest_addr_hostorder); + * \endcode + * Arguments: + * - p: packet to forward + * - dest: destination IPv4 address + * Returns values: + * - 1: forward + * - 0: don't forward + * - -1: no decision. In that case, ip4_canforward() continues as normal. + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_IP4_CANFORWARD(src, dest) +#endif + +/** + * LWIP_HOOK_ETHARP_GET_GW(netif, dest): + * Called from etharp_output() (IPv4) + * Signature:\code{.c} + * const ip4_addr_t *my_hook(struct netif *netif, const ip4_addr_t *dest); + * \endcode + * Arguments: + * - netif: the netif used for sending + * - dest: the destination IPv4 address + * Return values: + * - the IPv4 address of the gateway to handle the specified destination IPv4 address + * - NULL, in which case the netif's default gateway is used + * + * The returned address MUST be directly reachable on the specified netif! + * This function is meant to implement advanced IPv4 routing together with + * LWIP_HOOK_IP4_ROUTE(). The actual routing/gateway table implementation is + * not part of lwIP but can e.g. be hidden in the netif's state argument. +*/ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_ETHARP_GET_GW(netif, dest) +#endif + +/** + * LWIP_HOOK_IP6_INPUT(pbuf, input_netif): + * Called from ip6_input() (IPv6) + * Signature:\code{.c} + * int my_hook(struct pbuf *pbuf, struct netif *input_netif); + * \endcode + * Arguments: + * - pbuf: received struct pbuf passed to ip6_input() + * - input_netif: struct netif on which the packet has been received + * Return values: + * - 0: Hook has not consumed the packet, packet is processed as normal + * - != 0: Hook has consumed the packet. + * If the hook consumed the packet, 'pbuf' is in the responsibility of the hook + * (i.e. free it when done). + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_IP6_INPUT(pbuf, input_netif) +#endif + +/** + * LWIP_HOOK_IP6_ROUTE(src, dest): + * Called from ip_route() (IPv6) + * Signature:\code{.c} + * struct netif *my_hook(const ip6_addr_t *dest, const ip6_addr_t *src); + * \endcode + * Arguments: + * - src: source IPv6 address + * - dest: destination IPv6 address + * Return values: + * - the destination netif + * - NULL if no destination netif is found. In that case, ip6_route() continues as normal. + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_IP6_ROUTE(src, dest) +#endif + +/** + * LWIP_HOOK_ND6_GET_GW(netif, dest): + * Called from nd6_get_next_hop_entry() (IPv6) + * Signature:\code{.c} + * const ip6_addr_t *my_hook(struct netif *netif, const ip6_addr_t *dest); + * \endcode + * Arguments: + * - netif: the netif used for sending + * - dest: the destination IPv6 address + * Return values: + * - the IPv6 address of the next hop to handle the specified destination IPv6 address + * - NULL, in which case a NDP-discovered router is used instead + * + * The returned address MUST be directly reachable on the specified netif! + * This function is meant to implement advanced IPv6 routing together with + * LWIP_HOOK_IP6_ROUTE(). The actual routing/gateway table implementation is + * not part of lwIP but can e.g. be hidden in the netif's state argument. +*/ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_ND6_GET_GW(netif, dest) +#endif + +/** + * LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr): + * Called from ethernet_input() if VLAN support is enabled + * Signature:\code{.c} + * int my_hook(struct netif *netif, struct eth_hdr *eth_hdr, struct eth_vlan_hdr *vlan_hdr); + * \endcode + * Arguments: + * - netif: struct netif on which the packet has been received + * - eth_hdr: struct eth_hdr of the packet + * - vlan_hdr: struct eth_vlan_hdr of the packet + * Return values: + * - 0: Packet must be dropped. + * - != 0: Packet must be accepted. + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr) +#endif + +/** + * LWIP_HOOK_VLAN_SET: + * Hook can be used to set prio_vid field of vlan_hdr. If you need to store data + * on per-netif basis to implement this callback, see @ref netif_cd. + * Called from ethernet_output() if VLAN support (@ref ETHARP_SUPPORT_VLAN) is enabled.\n + * Signature:\code{.c} + * s32_t my_hook_vlan_set(struct netif* netif, struct pbuf* pbuf, const struct eth_addr* src, const struct eth_addr* dst, u16_t eth_type);\n + * \endcode + * Arguments: + * - netif: struct netif that the packet will be sent through + * - p: struct pbuf packet to be sent + * - src: source eth address + * - dst: destination eth address + * - eth_type: ethernet type to packet to be sent\n + * + * + * Return values: + * - <0: Packet shall not contain VLAN header. + * - 0 <= return value <= 0xFFFF: Packet shall contain VLAN header. Return value is prio_vid in host byte order. + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type) +#endif + +/** + * LWIP_HOOK_MEMP_AVAILABLE(memp_t_type): + * Called from memp_free() when a memp pool was empty and an item is now available + * Signature:\code{.c} + * void my_hook(memp_t type); + * \endcode + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_MEMP_AVAILABLE(memp_t_type) +#endif + +/** + * LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif): + * Called from ethernet_input() when an unknown eth type is encountered. + * Signature:\code{.c} + * err_t my_hook(struct pbuf* pbuf, struct netif* netif); + * \endcode + * Arguments: + * - p: rx packet with unknown eth type + * - netif: netif on which the packet has been received + * Return values: + * - ERR_OK if packet is accepted (hook function now owns the pbuf) + * - any error code otherwise (pbuf is freed) + * + * Payload points to ethernet header! + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif) +#endif + +/** + * LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, state, msg, msg_type, options_len_ptr): + * Called from various dhcp functions when sending a DHCP message. + * This hook is called just before the DHCP message trailer is added, so the + * options are at the end of a DHCP message. + * Signature:\code{.c} + * void my_hook(struct netif *netif, struct dhcp *dhcp, u8_t state, struct dhcp_msg *msg, + * u8_t msg_type, u16_t *options_len_ptr); + * \endcode + * Arguments: + * - netif: struct netif that the packet will be sent through + * - dhcp: struct dhcp on that netif + * - state: current dhcp state (dhcp_state_enum_t as an u8_t) + * - msg: struct dhcp_msg that will be sent + * - msg_type: dhcp message type to be sent (u8_t) + * - options_len_ptr: pointer to the current length of options in the dhcp_msg "msg" + * (must be increased when options are added!) + * + * Options need to appended like this: + * LWIP_ASSERT("dhcp option overflow", *options_len_ptr + option_len + 2 <= DHCP_OPTIONS_LEN); + * msg->options[(*options_len_ptr)++] = <option_number>; + * msg->options[(*options_len_ptr)++] = <option_len>; + * msg->options[(*options_len_ptr)++] = <option_bytes>; + * [...] + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, state, msg, msg_type, options_len_ptr) +#endif + +/** + * LWIP_HOOK_DHCP_PARSE_OPTION(netif, dhcp, state, msg, msg_type, option, len, pbuf, option_value_offset): + * Called from dhcp_parse_reply when receiving a DHCP message. + * This hook is called for every option in the received message that is not handled internally. + * Signature:\code{.c} + * void my_hook(struct netif *netif, struct dhcp *dhcp, u8_t state, struct dhcp_msg *msg, + * u8_t msg_type, u8_t option, u8_t option_len, struct pbuf *pbuf, u16_t option_value_offset); + * \endcode + * Arguments: + * - netif: struct netif that the packet will be sent through + * - dhcp: struct dhcp on that netif + * - state: current dhcp state (dhcp_state_enum_t as an u8_t) + * - msg: struct dhcp_msg that was received + * - msg_type: dhcp message type received (u8_t, ATTENTION: only valid after + * the message type option has been parsed!) + * - option: option value (u8_t) + * - len: option data length (u8_t) + * - pbuf: pbuf where option data is contained + * - option_value_offset: offset in pbuf where option data begins + * + * A nice way to get the option contents is pbuf_get_contiguous(): + * u8_t buf[32]; + * u8_t *ptr = (u8_t*)pbuf_get_contiguous(p, buf, sizeof(buf), LWIP_MIN(option_len, sizeof(buf)), offset); + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_DHCP_PARSE_OPTION(netif, dhcp, state, msg, msg_type, option, len, pbuf, offset) +#endif + +/** + * LWIP_HOOK_DHCP6_APPEND_OPTIONS(netif, dhcp6, state, msg, msg_type, options_len_ptr, max_len): + * Called from various dhcp6 functions when sending a DHCP6 message. + * This hook is called just before the DHCP6 message is sent, so the + * options are at the end of a DHCP6 message. + * Signature:\code{.c} + * void my_hook(struct netif *netif, struct dhcp6 *dhcp, u8_t state, struct dhcp6_msg *msg, + * u8_t msg_type, u16_t *options_len_ptr); + * \endcode + * Arguments: + * - netif: struct netif that the packet will be sent through + * - dhcp6: struct dhcp6 on that netif + * - state: current dhcp6 state (dhcp6_state_enum_t as an u8_t) + * - msg: struct dhcp6_msg that will be sent + * - msg_type: dhcp6 message type to be sent (u8_t) + * - options_len_ptr: pointer to the current length of options in the dhcp6_msg "msg" + * (must be increased when options are added!) + * + * Options need to appended like this: + * u8_t *options = (u8_t *)(msg + 1); + * LWIP_ASSERT("dhcp option overflow", sizeof(struct dhcp6_msg) + *options_len_ptr + newoptlen <= max_len); + * options[(*options_len_ptr)++] = <option_data>; + * [...] + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_DHCP6_APPEND_OPTIONS(netif, dhcp6, state, msg, msg_type, options_len_ptr, max_len) +#endif + +/** + * LWIP_HOOK_SOCKETS_SETSOCKOPT(s, sock, level, optname, optval, optlen, err) + * Called from socket API to implement setsockopt() for options not provided by lwIP. + * Core lock is held when this hook is called. + * Signature:\code{.c} + * int my_hook(int s, struct lwip_sock *sock, int level, int optname, const void *optval, socklen_t optlen, int *err) + * \endcode + * Arguments: + * - s: socket file descriptor + * - sock: internal socket descriptor (see lwip/priv/sockets_priv.h) + * - level: protocol level at which the option resides + * - optname: option to set + * - optval: value to set + * - optlen: size of optval + * - err: output error + * Return values: + * - 0: Hook has not consumed the option, code continues as normal (to internal options) + * - != 0: Hook has consumed the option, 'err' is returned + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_SOCKETS_SETSOCKOPT(s, sock, level, optname, optval, optlen, err) +#endif + +/** + * LWIP_HOOK_SOCKETS_GETSOCKOPT(s, sock, level, optname, optval, optlen, err) + * Called from socket API to implement getsockopt() for options not provided by lwIP. + * Core lock is held when this hook is called. + * Signature:\code{.c} + * int my_hook(int s, struct lwip_sock *sock, int level, int optname, void *optval, socklen_t *optlen, int *err) + * \endcode + * Arguments: + * - s: socket file descriptor + * - sock: internal socket descriptor (see lwip/priv/sockets_priv.h) + * - level: protocol level at which the option resides + * - optname: option to get + * - optval: value to get + * - optlen: size of optval + * - err: output error + * Return values: + * - 0: Hook has not consumed the option, code continues as normal (to internal options) + * - != 0: Hook has consumed the option, 'err' is returned + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_SOCKETS_GETSOCKOPT(s, sock, level, optname, optval, optlen, err) +#endif + +/** + * LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE(name, addr, addrtype, err) + * Called from netconn APIs (not usable with callback apps) allowing an + * external DNS resolver (which uses sequential API) to handle the query. + * Signature:\code{.c} + * int my_hook(const char *name, ip_addr_t *addr, u8_t addrtype, err_t *err) + * \endcode + * Arguments: + * - name: hostname to resolve + * - addr: output host address + * - addrtype: type of address to query + * - err: output error + * Return values: + * - 0: Hook has not consumed hostname query, query continues into DNS module + * - != 0: Hook has consumed the query + * + * err must also be checked to determine if the hook consumed the query, but + * the query failed + */ +#ifdef __DOXYGEN__ +#define LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE(name, addr, addrtype, err) +#endif +/** + * @} + */ + +/* + --------------------------------------- + ---------- Debugging options ---------- + --------------------------------------- +*/ +/** + * @defgroup lwip_opts_debugmsg Debug messages + * @ingroup lwip_opts_debug + * @{ + */ +/** + * LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is + * compared against this value. If it is smaller, then debugging + * messages are written. + * @see debugging_levels + */ +#if !defined LWIP_DBG_MIN_LEVEL || defined __DOXYGEN__ +#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL +#endif + +/** + * LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable + * debug messages of certain types. + * @see debugging_levels + */ +#if !defined LWIP_DBG_TYPES_ON || defined __DOXYGEN__ +#define LWIP_DBG_TYPES_ON LWIP_DBG_ON +#endif + +/** + * ETHARP_DEBUG: Enable debugging in etharp.c. + */ +#if !defined ETHARP_DEBUG || defined __DOXYGEN__ +#define ETHARP_DEBUG LWIP_DBG_OFF +#endif + +/** + * NETIF_DEBUG: Enable debugging in netif.c. + */ +#if !defined NETIF_DEBUG || defined __DOXYGEN__ +#define NETIF_DEBUG LWIP_DBG_OFF +#endif + +/** + * PBUF_DEBUG: Enable debugging in pbuf.c. + */ +#if !defined PBUF_DEBUG || defined __DOXYGEN__ +#define PBUF_DEBUG LWIP_DBG_OFF +#endif + +/** + * API_LIB_DEBUG: Enable debugging in api_lib.c. + */ +#if !defined API_LIB_DEBUG || defined __DOXYGEN__ +#define API_LIB_DEBUG LWIP_DBG_OFF +#endif + +/** + * API_MSG_DEBUG: Enable debugging in api_msg.c. + */ +#if !defined API_MSG_DEBUG || defined __DOXYGEN__ +#define API_MSG_DEBUG LWIP_DBG_OFF +#endif + +/** + * SOCKETS_DEBUG: Enable debugging in sockets.c. + */ +#if !defined SOCKETS_DEBUG || defined __DOXYGEN__ +#define SOCKETS_DEBUG LWIP_DBG_OFF +#endif + +/** + * ICMP_DEBUG: Enable debugging in icmp.c. + */ +#if !defined ICMP_DEBUG || defined __DOXYGEN__ +#define ICMP_DEBUG LWIP_DBG_OFF +#endif + +/** + * IGMP_DEBUG: Enable debugging in igmp.c. + */ +#if !defined IGMP_DEBUG || defined __DOXYGEN__ +#define IGMP_DEBUG LWIP_DBG_OFF +#endif + +/** + * INET_DEBUG: Enable debugging in inet.c. + */ +#if !defined INET_DEBUG || defined __DOXYGEN__ +#define INET_DEBUG LWIP_DBG_OFF +#endif + +/** + * IP_DEBUG: Enable debugging for IP. + */ +#if !defined IP_DEBUG || defined __DOXYGEN__ +#define IP_DEBUG LWIP_DBG_OFF +#endif + +/** + * IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass. + */ +#if !defined IP_REASS_DEBUG || defined __DOXYGEN__ +#define IP_REASS_DEBUG LWIP_DBG_OFF +#endif + +/** + * RAW_DEBUG: Enable debugging in raw.c. + */ +#if !defined RAW_DEBUG || defined __DOXYGEN__ +#define RAW_DEBUG LWIP_DBG_OFF +#endif + +/** + * MEM_DEBUG: Enable debugging in mem.c. + */ +#if !defined MEM_DEBUG || defined __DOXYGEN__ +#define MEM_DEBUG LWIP_DBG_OFF +#endif + +/** + * MEMP_DEBUG: Enable debugging in memp.c. + */ +#if !defined MEMP_DEBUG || defined __DOXYGEN__ +#define MEMP_DEBUG LWIP_DBG_OFF +#endif + +/** + * SYS_DEBUG: Enable debugging in sys.c. + */ +#if !defined SYS_DEBUG || defined __DOXYGEN__ +#define SYS_DEBUG LWIP_DBG_OFF +#endif + +/** + * TIMERS_DEBUG: Enable debugging in timers.c. + */ +#if !defined TIMERS_DEBUG || defined __DOXYGEN__ +#define TIMERS_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_DEBUG: Enable debugging for TCP. + */ +#if !defined TCP_DEBUG || defined __DOXYGEN__ +#define TCP_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug. + */ +#if !defined TCP_INPUT_DEBUG || defined __DOXYGEN__ +#define TCP_INPUT_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit. + */ +#if !defined TCP_FR_DEBUG || defined __DOXYGEN__ +#define TCP_FR_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_RTO_DEBUG: Enable debugging in TCP for retransmit + * timeout. + */ +#if !defined TCP_RTO_DEBUG || defined __DOXYGEN__ +#define TCP_RTO_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_CWND_DEBUG: Enable debugging for TCP congestion window. + */ +#if !defined TCP_CWND_DEBUG || defined __DOXYGEN__ +#define TCP_CWND_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating. + */ +#if !defined TCP_WND_DEBUG || defined __DOXYGEN__ +#define TCP_WND_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions. + */ +#if !defined TCP_OUTPUT_DEBUG || defined __DOXYGEN__ +#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_RST_DEBUG: Enable debugging for TCP with the RST message. + */ +#if !defined TCP_RST_DEBUG || defined __DOXYGEN__ +#define TCP_RST_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths. + */ +#if !defined TCP_QLEN_DEBUG || defined __DOXYGEN__ +#define TCP_QLEN_DEBUG LWIP_DBG_OFF +#endif + +/** + * UDP_DEBUG: Enable debugging in UDP. + */ +#if !defined UDP_DEBUG || defined __DOXYGEN__ +#define UDP_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCPIP_DEBUG: Enable debugging in tcpip.c. + */ +#if !defined TCPIP_DEBUG || defined __DOXYGEN__ +#define TCPIP_DEBUG LWIP_DBG_OFF +#endif + +/** + * SLIP_DEBUG: Enable debugging in slipif.c. + */ +#if !defined SLIP_DEBUG || defined __DOXYGEN__ +#define SLIP_DEBUG LWIP_DBG_OFF +#endif + +/** + * DHCP_DEBUG: Enable debugging in dhcp.c. + */ +#if !defined DHCP_DEBUG || defined __DOXYGEN__ +#define DHCP_DEBUG LWIP_DBG_OFF +#endif + +/** + * AUTOIP_DEBUG: Enable debugging in autoip.c. + */ +#if !defined AUTOIP_DEBUG || defined __DOXYGEN__ +#define AUTOIP_DEBUG LWIP_DBG_OFF +#endif + +/** + * DNS_DEBUG: Enable debugging for DNS. + */ +#if !defined DNS_DEBUG || defined __DOXYGEN__ +#define DNS_DEBUG LWIP_DBG_OFF +#endif + +/** + * IP6_DEBUG: Enable debugging for IPv6. + */ +#if !defined IP6_DEBUG || defined __DOXYGEN__ +#define IP6_DEBUG LWIP_DBG_OFF +#endif + +/** + * DHCP6_DEBUG: Enable debugging in dhcp6.c. + */ +#if !defined DHCP6_DEBUG || defined __DOXYGEN__ +#define DHCP6_DEBUG LWIP_DBG_OFF +#endif +/** + * @} + */ + +/** + * LWIP_TESTMODE: Changes to make unit test possible + */ +#if !defined LWIP_TESTMODE +#define LWIP_TESTMODE 0 +#endif + +/* + -------------------------------------------------- + ---------- Performance tracking options ---------- + -------------------------------------------------- +*/ +/** + * @defgroup lwip_opts_perf Performance + * @ingroup lwip_opts_debug + * @{ + */ +/** + * LWIP_PERF: Enable performance testing for lwIP + * (if enabled, arch/perf.h is included) + */ +#if !defined LWIP_PERF || defined __DOXYGEN__ +#define LWIP_PERF 0 +#endif +/** + * @} + */ + +#endif /* LWIP_HDR_OPT_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/pbuf.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/pbuf.h new file mode 100644 index 000000000..328c772d6 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/pbuf.h @@ -0,0 +1,322 @@ +/** + * @file + * pbuf API + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#ifndef LWIP_HDR_PBUF_H +#define LWIP_HDR_PBUF_H + +#include "lwip/opt.h" +#include "lwip/err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** LWIP_SUPPORT_CUSTOM_PBUF==1: Custom pbufs behave much like their pbuf type + * but they are allocated by external code (initialised by calling + * pbuf_alloced_custom()) and when pbuf_free gives up their last reference, they + * are freed by calling pbuf_custom->custom_free_function(). + * Currently, the pbuf_custom code is only needed for one specific configuration + * of IP_FRAG, unless required by external driver/application code. */ +#ifndef LWIP_SUPPORT_CUSTOM_PBUF +#define LWIP_SUPPORT_CUSTOM_PBUF ((IP_FRAG && !LWIP_NETIF_TX_SINGLE_PBUF) || (LWIP_IPV6 && LWIP_IPV6_FRAG)) +#endif + +/** @ingroup pbuf + * PBUF_NEEDS_COPY(p): return a boolean value indicating whether the given + * pbuf needs to be copied in order to be kept around beyond the current call + * stack without risking being corrupted. The default setting provides safety: + * it will make a copy iof any pbuf chain that does not consist entirely of + * PBUF_ROM type pbufs. For setups with zero-copy support, it may be redefined + * to evaluate to true in all cases, for example. However, doing so also has an + * effect on the application side: any buffers that are *not* copied must also + * *not* be reused by the application after passing them to lwIP. For example, + * when setting PBUF_NEEDS_COPY to (0), after using udp_send() with a PBUF_RAM + * pbuf, the application must free the pbuf immediately, rather than reusing it + * for other purposes. For more background information on this, see tasks #6735 + * and #7896, and bugs #11400 and #49914. */ +#ifndef PBUF_NEEDS_COPY +#define PBUF_NEEDS_COPY(p) ((p)->type_internal & PBUF_TYPE_FLAG_DATA_VOLATILE) +#endif /* PBUF_NEEDS_COPY */ + +/* @todo: We need a mechanism to prevent wasting memory in every pbuf + (TCP vs. UDP, IPv4 vs. IPv6: UDP/IPv4 packets may waste up to 28 bytes) */ + +#define PBUF_TRANSPORT_HLEN 20 +#if LWIP_IPV6 +#define PBUF_IP_HLEN 40 +#else +#define PBUF_IP_HLEN 20 +#endif + +/** + * @ingroup pbuf + * Enumeration of pbuf layers + */ +typedef enum { + /** Includes spare room for transport layer header, e.g. UDP header. + * Use this if you intend to pass the pbuf to functions like udp_send(). + */ + PBUF_TRANSPORT = PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN, + /** Includes spare room for IP header. + * Use this if you intend to pass the pbuf to functions like raw_send(). + */ + PBUF_IP = PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN, + /** Includes spare room for link layer header (ethernet header). + * Use this if you intend to pass the pbuf to functions like ethernet_output(). + * @see PBUF_LINK_HLEN + */ + PBUF_LINK = PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN, + /** Includes spare room for additional encapsulation header before ethernet + * headers (e.g. 802.11). + * Use this if you intend to pass the pbuf to functions like netif->linkoutput(). + * @see PBUF_LINK_ENCAPSULATION_HLEN + */ + PBUF_RAW_TX = PBUF_LINK_ENCAPSULATION_HLEN, + /** Use this for input packets in a netif driver when calling netif->input() + * in the most common case - ethernet-layer netif driver. */ + PBUF_RAW = 0 +} pbuf_layer; + + +/* Base flags for pbuf_type definitions: */ + +/** Indicates that the payload directly follows the struct pbuf. + * This makes @ref pbuf_header work in both directions. */ +#define PBUF_TYPE_FLAG_STRUCT_DATA_CONTIGUOUS 0x80 +/** Indicates the data stored in this pbuf can change. If this pbuf needs + * to be queued, it must be copied/duplicated. */ +#define PBUF_TYPE_FLAG_DATA_VOLATILE 0x40 +/** 4 bits are reserved for 16 allocation sources (e.g. heap, pool1, pool2, etc) + * Internally, we use: 0=heap, 1=MEMP_PBUF, 2=MEMP_PBUF_POOL -> 13 types free*/ +#define PBUF_TYPE_ALLOC_SRC_MASK 0x0F +/** Indicates this pbuf is used for RX (if not set, indicates use for TX). + * This information can be used to keep some spare RX buffers e.g. for + * receiving TCP ACKs to unblock a connection) */ +#define PBUF_ALLOC_FLAG_RX 0x0100 +/** Indicates the application needs the pbuf payload to be in one piece */ +#define PBUF_ALLOC_FLAG_DATA_CONTIGUOUS 0x0200 + +#define PBUF_TYPE_ALLOC_SRC_MASK_STD_HEAP 0x00 +#define PBUF_TYPE_ALLOC_SRC_MASK_STD_MEMP_PBUF 0x01 +#define PBUF_TYPE_ALLOC_SRC_MASK_STD_MEMP_PBUF_POOL 0x02 +/** First pbuf allocation type for applications */ +#define PBUF_TYPE_ALLOC_SRC_MASK_APP_MIN 0x03 +/** Last pbuf allocation type for applications */ +#define PBUF_TYPE_ALLOC_SRC_MASK_APP_MAX PBUF_TYPE_ALLOC_SRC_MASK + +/** + * @ingroup pbuf + * Enumeration of pbuf types + */ +typedef enum { + /** pbuf data is stored in RAM, used for TX mostly, struct pbuf and its payload + are allocated in one piece of contiguous memory (so the first payload byte + can be calculated from struct pbuf). + pbuf_alloc() allocates PBUF_RAM pbufs as unchained pbufs (although that might + change in future versions). + This should be used for all OUTGOING packets (TX).*/ + PBUF_RAM = (PBUF_ALLOC_FLAG_DATA_CONTIGUOUS | PBUF_TYPE_FLAG_STRUCT_DATA_CONTIGUOUS | PBUF_TYPE_ALLOC_SRC_MASK_STD_HEAP), + /** pbuf data is stored in ROM, i.e. struct pbuf and its payload are located in + totally different memory areas. Since it points to ROM, payload does not + have to be copied when queued for transmission. */ + PBUF_ROM = PBUF_TYPE_ALLOC_SRC_MASK_STD_MEMP_PBUF, + /** pbuf comes from the pbuf pool. Much like PBUF_ROM but payload might change + so it has to be duplicated when queued before transmitting, depending on + who has a 'ref' to it. */ + PBUF_REF = (PBUF_TYPE_FLAG_DATA_VOLATILE | PBUF_TYPE_ALLOC_SRC_MASK_STD_MEMP_PBUF), + /** pbuf payload refers to RAM. This one comes from a pool and should be used + for RX. Payload can be chained (scatter-gather RX) but like PBUF_RAM, struct + pbuf and its payload are allocated in one piece of contiguous memory (so + the first payload byte can be calculated from struct pbuf). + Don't use this for TX, if the pool becomes empty e.g. because of TCP queuing, + you are unable to receive TCP acks! */ + PBUF_POOL = (PBUF_ALLOC_FLAG_RX | PBUF_TYPE_FLAG_STRUCT_DATA_CONTIGUOUS | PBUF_TYPE_ALLOC_SRC_MASK_STD_MEMP_PBUF_POOL) +} pbuf_type; + + +/** indicates this packet's data should be immediately passed to the application */ +#define PBUF_FLAG_PUSH 0x01U +/** indicates this is a custom pbuf: pbuf_free calls pbuf_custom->custom_free_function() + when the last reference is released (plus custom PBUF_RAM cannot be trimmed) */ +#define PBUF_FLAG_IS_CUSTOM 0x02U +/** indicates this pbuf is UDP multicast to be looped back */ +#define PBUF_FLAG_MCASTLOOP 0x04U +/** indicates this pbuf was received as link-level broadcast */ +#define PBUF_FLAG_LLBCAST 0x08U +/** indicates this pbuf was received as link-level multicast */ +#define PBUF_FLAG_LLMCAST 0x10U +/** indicates this pbuf includes a TCP FIN flag */ +#define PBUF_FLAG_TCP_FIN 0x20U + +/** Main packet buffer struct */ +struct pbuf { + /** next pbuf in singly linked pbuf chain */ + struct pbuf *next; + + /** pointer to the actual data in the buffer */ + void *payload; + + /** + * total length of this buffer and all next buffers in chain + * belonging to the same packet. + * + * For non-queue packet chains this is the invariant: + * p->tot_len == p->len + (p->next? p->next->tot_len: 0) + */ + u16_t tot_len; + + /** length of this buffer */ + u16_t len; + + /** a bit field indicating pbuf type and allocation sources + (see PBUF_TYPE_FLAG_*, PBUF_ALLOC_FLAG_* and PBUF_TYPE_ALLOC_SRC_MASK) + */ + u8_t type_internal; + + /** misc flags */ + u8_t flags; + + /** + * the reference count always equals the number of pointers + * that refer to this pbuf. This can be pointers from an application, + * the stack itself, or pbuf->next pointers from a chain. + */ + LWIP_PBUF_REF_T ref; + + /** For incoming packets, this contains the input netif's index */ + u8_t if_idx; +}; + + +/** Helper struct for const-correctness only. + * The only meaning of this one is to provide a const payload pointer + * for PBUF_ROM type. + */ +struct pbuf_rom { + /** next pbuf in singly linked pbuf chain */ + struct pbuf *next; + + /** pointer to the actual data in the buffer */ + const void *payload; +}; + +#if LWIP_SUPPORT_CUSTOM_PBUF +/** Prototype for a function to free a custom pbuf */ +typedef void (*pbuf_free_custom_fn)(struct pbuf *p); + +/** A custom pbuf: like a pbuf, but following a function pointer to free it. */ +struct pbuf_custom { + /** The actual pbuf */ + struct pbuf pbuf; + /** This function is called when pbuf_free deallocates this pbuf(_custom) */ + pbuf_free_custom_fn custom_free_function; +}; +#endif /* LWIP_SUPPORT_CUSTOM_PBUF */ + +/** Define this to 0 to prevent freeing ooseq pbufs when the PBUF_POOL is empty */ +#ifndef PBUF_POOL_FREE_OOSEQ +#define PBUF_POOL_FREE_OOSEQ 1 +#endif /* PBUF_POOL_FREE_OOSEQ */ +#if LWIP_TCP && TCP_QUEUE_OOSEQ && NO_SYS && PBUF_POOL_FREE_OOSEQ +extern volatile u8_t pbuf_free_ooseq_pending; +void pbuf_free_ooseq(void); +/** When not using sys_check_timeouts(), call PBUF_CHECK_FREE_OOSEQ() + at regular intervals from main level to check if ooseq pbufs need to be + freed! */ +#define PBUF_CHECK_FREE_OOSEQ() do { if(pbuf_free_ooseq_pending) { \ + /* pbuf_alloc() reported PBUF_POOL to be empty -> try to free some \ + ooseq queued pbufs now */ \ + pbuf_free_ooseq(); }}while(0) +#else /* LWIP_TCP && TCP_QUEUE_OOSEQ && NO_SYS && PBUF_POOL_FREE_OOSEQ */ + /* Otherwise declare an empty PBUF_CHECK_FREE_OOSEQ */ + #define PBUF_CHECK_FREE_OOSEQ() +#endif /* LWIP_TCP && TCP_QUEUE_OOSEQ && NO_SYS && PBUF_POOL_FREE_OOSEQ*/ + +/* Initializes the pbuf module. This call is empty for now, but may not be in future. */ +#define pbuf_init() + +struct pbuf *pbuf_alloc(pbuf_layer l, u16_t length, pbuf_type type); +struct pbuf *pbuf_alloc_reference(void *payload, u16_t length, pbuf_type type); +#if LWIP_SUPPORT_CUSTOM_PBUF +struct pbuf *pbuf_alloced_custom(pbuf_layer l, u16_t length, pbuf_type type, + struct pbuf_custom *p, void *payload_mem, + u16_t payload_mem_len); +#endif /* LWIP_SUPPORT_CUSTOM_PBUF */ +void pbuf_realloc(struct pbuf *p, u16_t size); +#define pbuf_get_allocsrc(p) ((p)->type_internal & PBUF_TYPE_ALLOC_SRC_MASK) +#define pbuf_match_allocsrc(p, type) (pbuf_get_allocsrc(p) == ((type) & PBUF_TYPE_ALLOC_SRC_MASK)) +#define pbuf_match_type(p, type) pbuf_match_allocsrc(p, type) +u8_t pbuf_header(struct pbuf *p, s16_t header_size); +u8_t pbuf_header_force(struct pbuf *p, s16_t header_size); +u8_t pbuf_add_header(struct pbuf *p, size_t header_size_increment); +u8_t pbuf_add_header_force(struct pbuf *p, size_t header_size_increment); +u8_t pbuf_remove_header(struct pbuf *p, size_t header_size); +struct pbuf *pbuf_free_header(struct pbuf *q, u16_t size); +void pbuf_ref(struct pbuf *p); +u8_t pbuf_free(struct pbuf *p); +u16_t pbuf_clen(const struct pbuf *p); +void pbuf_cat(struct pbuf *head, struct pbuf *tail); +void pbuf_chain(struct pbuf *head, struct pbuf *tail); +struct pbuf *pbuf_dechain(struct pbuf *p); +err_t pbuf_copy(struct pbuf *p_to, const struct pbuf *p_from); +u16_t pbuf_copy_partial(const struct pbuf *p, void *dataptr, u16_t len, u16_t offset); +void *pbuf_get_contiguous(const struct pbuf *p, void *buffer, size_t bufsize, u16_t len, u16_t offset); +err_t pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len); +err_t pbuf_take_at(struct pbuf *buf, const void *dataptr, u16_t len, u16_t offset); +struct pbuf *pbuf_skip(struct pbuf* in, u16_t in_offset, u16_t* out_offset); +struct pbuf *pbuf_coalesce(struct pbuf *p, pbuf_layer layer); +struct pbuf *pbuf_clone(pbuf_layer l, pbuf_type type, struct pbuf *p); +#if LWIP_CHECKSUM_ON_COPY +err_t pbuf_fill_chksum(struct pbuf *p, u16_t start_offset, const void *dataptr, + u16_t len, u16_t *chksum); +#endif /* LWIP_CHECKSUM_ON_COPY */ +#if LWIP_TCP && TCP_QUEUE_OOSEQ && LWIP_WND_SCALE +void pbuf_split_64k(struct pbuf *p, struct pbuf **rest); +#endif /* LWIP_TCP && TCP_QUEUE_OOSEQ && LWIP_WND_SCALE */ + +u8_t pbuf_get_at(const struct pbuf* p, u16_t offset); +int pbuf_try_get_at(const struct pbuf* p, u16_t offset); +void pbuf_put_at(struct pbuf* p, u16_t offset, u8_t data); +u16_t pbuf_memcmp(const struct pbuf* p, u16_t offset, const void* s2, u16_t n); +u16_t pbuf_memfind(const struct pbuf* p, const void* mem, u16_t mem_len, u16_t start_offset); +u16_t pbuf_strstr(const struct pbuf* p, const char* substr); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PBUF_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/altcp_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/altcp_priv.h new file mode 100644 index 000000000..381fc9685 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/altcp_priv.h @@ -0,0 +1,146 @@ +/** + * @file + * Application layered TCP connection API (to be used from TCPIP thread)\n + * This interface mimics the tcp callback API to the application while preventing + * direct linking (much like virtual functions). + * This way, an application can make use of other application layer protocols + * on top of TCP without knowing the details (e.g. TLS, proxy connection). + */ + +/* + * Copyright (c) 2017 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_ALTCP_PRIV_H +#define LWIP_HDR_ALTCP_PRIV_H + +#include "lwip/opt.h" + +#if LWIP_ALTCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/altcp.h" +#include "lwip/ip_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct altcp_pcb *altcp_alloc(void); +void altcp_free(struct altcp_pcb *conn); + +/* Function prototypes for application layers */ +typedef void (*altcp_set_poll_fn)(struct altcp_pcb *conn, u8_t interval); +typedef void (*altcp_recved_fn)(struct altcp_pcb *conn, u16_t len); +typedef err_t (*altcp_bind_fn)(struct altcp_pcb *conn, const ip_addr_t *ipaddr, u16_t port); +typedef err_t (*altcp_connect_fn)(struct altcp_pcb *conn, const ip_addr_t *ipaddr, u16_t port, altcp_connected_fn connected); + +typedef struct altcp_pcb *(*altcp_listen_fn)(struct altcp_pcb *conn, u8_t backlog, err_t *err); + +typedef void (*altcp_abort_fn)(struct altcp_pcb *conn); +typedef err_t (*altcp_close_fn)(struct altcp_pcb *conn); +typedef err_t (*altcp_shutdown_fn)(struct altcp_pcb *conn, int shut_rx, int shut_tx); + +typedef err_t (*altcp_write_fn)(struct altcp_pcb *conn, const void *dataptr, u16_t len, u8_t apiflags); +typedef err_t (*altcp_output_fn)(struct altcp_pcb *conn); + +typedef u16_t (*altcp_mss_fn)(struct altcp_pcb *conn); +typedef u16_t (*altcp_sndbuf_fn)(struct altcp_pcb *conn); +typedef u16_t (*altcp_sndqueuelen_fn)(struct altcp_pcb *conn); +typedef void (*altcp_nagle_disable_fn)(struct altcp_pcb *conn); +typedef void (*altcp_nagle_enable_fn)(struct altcp_pcb *conn); +typedef int (*altcp_nagle_disabled_fn)(struct altcp_pcb *conn); + +typedef void (*altcp_setprio_fn)(struct altcp_pcb *conn, u8_t prio); + +typedef void (*altcp_dealloc_fn)(struct altcp_pcb *conn); + +typedef err_t (*altcp_get_tcp_addrinfo_fn)(struct altcp_pcb *conn, int local, ip_addr_t *addr, u16_t *port); +typedef ip_addr_t *(*altcp_get_ip_fn)(struct altcp_pcb *conn, int local); +typedef u16_t (*altcp_get_port_fn)(struct altcp_pcb *conn, int local); + +#ifdef LWIP_DEBUG +typedef enum tcp_state (*altcp_dbg_get_tcp_state_fn)(struct altcp_pcb *conn); +#endif + +struct altcp_functions { + altcp_set_poll_fn set_poll; + altcp_recved_fn recved; + altcp_bind_fn bind; + altcp_connect_fn connect; + altcp_listen_fn listen; + altcp_abort_fn abort; + altcp_close_fn close; + altcp_shutdown_fn shutdown; + altcp_write_fn write; + altcp_output_fn output; + altcp_mss_fn mss; + altcp_sndbuf_fn sndbuf; + altcp_sndqueuelen_fn sndqueuelen; + altcp_nagle_disable_fn nagle_disable; + altcp_nagle_enable_fn nagle_enable; + altcp_nagle_disabled_fn nagle_disabled; + altcp_setprio_fn setprio; + altcp_dealloc_fn dealloc; + altcp_get_tcp_addrinfo_fn addrinfo; + altcp_get_ip_fn getip; + altcp_get_port_fn getport; +#ifdef LWIP_DEBUG + altcp_dbg_get_tcp_state_fn dbg_get_tcp_state; +#endif +}; + +void altcp_default_set_poll(struct altcp_pcb *conn, u8_t interval); +void altcp_default_recved(struct altcp_pcb *conn, u16_t len); +err_t altcp_default_bind(struct altcp_pcb *conn, const ip_addr_t *ipaddr, u16_t port); +err_t altcp_default_shutdown(struct altcp_pcb *conn, int shut_rx, int shut_tx); +err_t altcp_default_write(struct altcp_pcb *conn, const void *dataptr, u16_t len, u8_t apiflags); +err_t altcp_default_output(struct altcp_pcb *conn); +u16_t altcp_default_mss(struct altcp_pcb *conn); +u16_t altcp_default_sndbuf(struct altcp_pcb *conn); +u16_t altcp_default_sndqueuelen(struct altcp_pcb *conn); +void altcp_default_nagle_disable(struct altcp_pcb *conn); +void altcp_default_nagle_enable(struct altcp_pcb *conn); +int altcp_default_nagle_disabled(struct altcp_pcb *conn); +void altcp_default_setprio(struct altcp_pcb *conn, u8_t prio); +void altcp_default_dealloc(struct altcp_pcb *conn); +err_t altcp_default_get_tcp_addrinfo(struct altcp_pcb *conn, int local, ip_addr_t *addr, u16_t *port); +ip_addr_t *altcp_default_get_ip(struct altcp_pcb *conn, int local); +u16_t altcp_default_get_port(struct altcp_pcb *conn, int local); +#ifdef LWIP_DEBUG +enum tcp_state altcp_default_dbg_get_tcp_state(struct altcp_pcb *conn); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_ALTCP */ + +#endif /* LWIP_HDR_ALTCP_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/api_msg.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/api_msg.h new file mode 100644 index 000000000..64c876319 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/api_msg.h @@ -0,0 +1,272 @@ +/** + * @file + * netconn API lwIP internal implementations (do not use in application code) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_API_MSG_H +#define LWIP_HDR_API_MSG_H + +#include "lwip/opt.h" + +#include "lwip/arch.h" +#include "lwip/ip_addr.h" +#include "lwip/err.h" +#include "lwip/sys.h" +#include "lwip/igmp.h" +#include "lwip/api.h" +#include "lwip/priv/tcpip_priv.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_NETCONN || LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ +/* Note: Netconn API is always available when sockets are enabled - + * sockets are implemented on top of them */ + +#if LWIP_MPU_COMPATIBLE +#if LWIP_NETCONN_SEM_PER_THREAD +#define API_MSG_M_DEF_SEM(m) *m +#else +#define API_MSG_M_DEF_SEM(m) API_MSG_M_DEF(m) +#endif +#else /* LWIP_MPU_COMPATIBLE */ +#define API_MSG_M_DEF_SEM(m) API_MSG_M_DEF(m) +#endif /* LWIP_MPU_COMPATIBLE */ + +/* For the netconn API, these values are use as a bitmask! */ +#define NETCONN_SHUT_RD 1 +#define NETCONN_SHUT_WR 2 +#define NETCONN_SHUT_RDWR (NETCONN_SHUT_RD | NETCONN_SHUT_WR) + +/* IP addresses and port numbers are expected to be in + * the same byte order as in the corresponding pcb. + */ +/** This struct includes everything that is necessary to execute a function + for a netconn in another thread context (mainly used to process netconns + in the tcpip_thread context to be thread safe). */ +struct api_msg { + /** The netconn which to process - always needed: it includes the semaphore + which is used to block the application thread until the function finished. */ + struct netconn *conn; + /** The return value of the function executed in tcpip_thread. */ + err_t err; + /** Depending on the executed function, one of these union members is used */ + union { + /** used for lwip_netconn_do_send */ + struct netbuf *b; + /** used for lwip_netconn_do_newconn */ + struct { + u8_t proto; + } n; + /** used for lwip_netconn_do_bind and lwip_netconn_do_connect */ + struct { + API_MSG_M_DEF_C(ip_addr_t, ipaddr); + u16_t port; + u8_t if_idx; + } bc; + /** used for lwip_netconn_do_getaddr */ + struct { + ip_addr_t API_MSG_M_DEF(ipaddr); + u16_t API_MSG_M_DEF(port); + u8_t local; + } ad; + /** used for lwip_netconn_do_write */ + struct { + /** current vector to write */ + const struct netvector *vector; + /** number of unwritten vectors */ + u16_t vector_cnt; + /** offset into current vector */ + size_t vector_off; + /** total length across vectors */ + size_t len; + /** offset into total length/output of bytes written when err == ERR_OK */ + size_t offset; + u8_t apiflags; +#if LWIP_SO_SNDTIMEO + u32_t time_started; +#endif /* LWIP_SO_SNDTIMEO */ + } w; + /** used for lwip_netconn_do_recv */ + struct { + size_t len; + } r; +#if LWIP_TCP + /** used for lwip_netconn_do_close (/shutdown) */ + struct { + u8_t shut; +#if LWIP_SO_SNDTIMEO || LWIP_SO_LINGER + u32_t time_started; +#else /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ + u8_t polls_left; +#endif /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ + } sd; +#endif /* LWIP_TCP */ +#if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) + /** used for lwip_netconn_do_join_leave_group */ + struct { + API_MSG_M_DEF_C(ip_addr_t, multiaddr); + API_MSG_M_DEF_C(ip_addr_t, netif_addr); + u8_t if_idx; + enum netconn_igmp join_or_leave; + } jl; +#endif /* LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) */ +#if TCP_LISTEN_BACKLOG + struct { + u8_t backlog; + } lb; +#endif /* TCP_LISTEN_BACKLOG */ + } msg; +#if LWIP_NETCONN_SEM_PER_THREAD + sys_sem_t* op_completed_sem; +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ +}; + +#if LWIP_NETCONN_SEM_PER_THREAD +#define LWIP_API_MSG_SEM(msg) ((msg)->op_completed_sem) +#else /* LWIP_NETCONN_SEM_PER_THREAD */ +#define LWIP_API_MSG_SEM(msg) (&(msg)->conn->op_completed) +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + + +#if LWIP_DNS +/** As lwip_netconn_do_gethostbyname requires more arguments but doesn't require a netconn, + it has its own struct (to avoid struct api_msg getting bigger than necessary). + lwip_netconn_do_gethostbyname must be called using tcpip_callback instead of tcpip_apimsg + (see netconn_gethostbyname). */ +struct dns_api_msg { + /** Hostname to query or dotted IP address string */ +#if LWIP_MPU_COMPATIBLE + char name[DNS_MAX_NAME_LENGTH]; +#else /* LWIP_MPU_COMPATIBLE */ + const char *name; +#endif /* LWIP_MPU_COMPATIBLE */ + /** The resolved address is stored here */ + ip_addr_t API_MSG_M_DEF(addr); +#if LWIP_IPV4 && LWIP_IPV6 + /** Type of resolve call */ + u8_t dns_addrtype; +#endif /* LWIP_IPV4 && LWIP_IPV6 */ + /** This semaphore is posted when the name is resolved, the application thread + should wait on it. */ + sys_sem_t API_MSG_M_DEF_SEM(sem); + /** Errors are given back here */ + err_t API_MSG_M_DEF(err); +}; +#endif /* LWIP_DNS */ + +#if LWIP_NETCONN_FULLDUPLEX +int lwip_netconn_is_deallocated_msg(void *msg); +#endif +int lwip_netconn_is_err_msg(void *msg, err_t *err); +void lwip_netconn_do_newconn (void *m); +void lwip_netconn_do_delconn (void *m); +void lwip_netconn_do_bind (void *m); +void lwip_netconn_do_bind_if (void *m); +void lwip_netconn_do_connect (void *m); +void lwip_netconn_do_disconnect (void *m); +void lwip_netconn_do_listen (void *m); +void lwip_netconn_do_send (void *m); +void lwip_netconn_do_recv (void *m); +#if TCP_LISTEN_BACKLOG +void lwip_netconn_do_accepted (void *m); +#endif /* TCP_LISTEN_BACKLOG */ +void lwip_netconn_do_write (void *m); +void lwip_netconn_do_getaddr (void *m); +void lwip_netconn_do_close (void *m); +void lwip_netconn_do_shutdown (void *m); +#if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) +void lwip_netconn_do_join_leave_group(void *m); +void lwip_netconn_do_join_leave_group_netif(void *m); +#endif /* LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD) */ + +#if LWIP_DNS +void lwip_netconn_do_gethostbyname(void *arg); +#endif /* LWIP_DNS */ + +struct netconn* netconn_alloc(enum netconn_type t, netconn_callback callback); +void netconn_free(struct netconn *conn); + +#endif /* LWIP_NETCONN || LWIP_SOCKET */ + +#if LWIP_NETIF_API /* don't build if not configured for use in lwipopts.h */ + +/* netifapi related lwIP internal definitions */ + +#if LWIP_MPU_COMPATIBLE +#define NETIFAPI_IPADDR_DEF(type, m) type m +#else /* LWIP_MPU_COMPATIBLE */ +#define NETIFAPI_IPADDR_DEF(type, m) const type * m +#endif /* LWIP_MPU_COMPATIBLE */ + +typedef void (*netifapi_void_fn)(struct netif *netif); +typedef err_t (*netifapi_errt_fn)(struct netif *netif); + +struct netifapi_msg { + struct tcpip_api_call_data call; + struct netif *netif; + union { + struct { +#if LWIP_IPV4 + NETIFAPI_IPADDR_DEF(ip4_addr_t, ipaddr); + NETIFAPI_IPADDR_DEF(ip4_addr_t, netmask); + NETIFAPI_IPADDR_DEF(ip4_addr_t, gw); +#endif /* LWIP_IPV4 */ + void *state; + netif_init_fn init; + netif_input_fn input; + } add; + struct { + netifapi_void_fn voidfunc; + netifapi_errt_fn errtfunc; + } common; + struct { +#if LWIP_MPU_COMPATIBLE + char name[NETIF_NAMESIZE]; +#else /* LWIP_MPU_COMPATIBLE */ + char *name; +#endif /* LWIP_MPU_COMPATIBLE */ + u8_t index; + } ifs; + } msg; +}; + +#endif /* LWIP_NETIF_API */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_API_MSG_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/mem_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/mem_priv.h new file mode 100644 index 000000000..5abd9b5d2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/mem_priv.h @@ -0,0 +1,84 @@ +/** + * @file + * lwIP internal memory implementations (do not use in application code) + */ + +/* + * Copyright (c) 2018 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ + +#ifndef LWIP_HDR_MEM_PRIV_H +#define LWIP_HDR_MEM_PRIV_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lwip/mem.h" + +#if MEM_OVERFLOW_CHECK || MEMP_OVERFLOW_CHECK +/* if MEM_OVERFLOW_CHECK or MEMP_OVERFLOW_CHECK is turned on, we reserve some + * bytes at the beginning and at the end of each element, initialize them as + * 0xcd and check them later. + * If MEM(P)_OVERFLOW_CHECK is >= 2, on every call to mem(p)_malloc or mem(p)_free, + * every single element in each pool/heap is checked! + * This is VERY SLOW but also very helpful. + * MEM_SANITY_REGION_BEFORE and MEM_SANITY_REGION_AFTER can be overridden in + * lwipopts.h to change the amount reserved for checking. */ +#ifndef MEM_SANITY_REGION_BEFORE +#define MEM_SANITY_REGION_BEFORE 16 +#endif /* MEM_SANITY_REGION_BEFORE*/ +#if MEM_SANITY_REGION_BEFORE > 0 +#define MEM_SANITY_REGION_BEFORE_ALIGNED LWIP_MEM_ALIGN_SIZE(MEM_SANITY_REGION_BEFORE) +#else +#define MEM_SANITY_REGION_BEFORE_ALIGNED 0 +#endif /* MEM_SANITY_REGION_BEFORE*/ +#ifndef MEM_SANITY_REGION_AFTER +#define MEM_SANITY_REGION_AFTER 16 +#endif /* MEM_SANITY_REGION_AFTER*/ +#if MEM_SANITY_REGION_AFTER > 0 +#define MEM_SANITY_REGION_AFTER_ALIGNED LWIP_MEM_ALIGN_SIZE(MEM_SANITY_REGION_AFTER) +#else +#define MEM_SANITY_REGION_AFTER_ALIGNED 0 +#endif /* MEM_SANITY_REGION_AFTER*/ + +void mem_overflow_init_raw(void *p, size_t size); +void mem_overflow_check_raw(void *p, size_t size, const char *descr1, const char *descr2); + +#endif /* MEM_OVERFLOW_CHECK || MEMP_OVERFLOW_CHECK */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_MEMP_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/memp_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/memp_priv.h new file mode 100644 index 000000000..f9930fd76 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/memp_priv.h @@ -0,0 +1,161 @@ +/** + * @file + * memory pools lwIP internal implementations (do not use in application code) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#ifndef LWIP_HDR_MEMP_PRIV_H +#define LWIP_HDR_MEMP_PRIV_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lwip/mem.h" +#include "lwip/priv/mem_priv.h" + +#if MEMP_OVERFLOW_CHECK + + +/* MEMP_SIZE: save space for struct memp and for sanity check */ +#define MEMP_SIZE (LWIP_MEM_ALIGN_SIZE(sizeof(struct memp)) + MEM_SANITY_REGION_BEFORE_ALIGNED) +#define MEMP_ALIGN_SIZE(x) (LWIP_MEM_ALIGN_SIZE(x) + MEM_SANITY_REGION_AFTER_ALIGNED) + +#else /* MEMP_OVERFLOW_CHECK */ + +/* No sanity checks + * We don't need to preserve the struct memp while not allocated, so we + * can save a little space and set MEMP_SIZE to 0. + */ +#define MEMP_SIZE 0 +#define MEMP_ALIGN_SIZE(x) (LWIP_MEM_ALIGN_SIZE(x)) + +#endif /* MEMP_OVERFLOW_CHECK */ + +#if !MEMP_MEM_MALLOC || MEMP_OVERFLOW_CHECK +struct memp { + struct memp *next; +#if MEMP_OVERFLOW_CHECK + const char *file; + int line; +#endif /* MEMP_OVERFLOW_CHECK */ +}; +#endif /* !MEMP_MEM_MALLOC || MEMP_OVERFLOW_CHECK */ + +#if MEM_USE_POOLS && MEMP_USE_CUSTOM_POOLS +/* Use a helper type to get the start and end of the user "memory pools" for mem_malloc */ +typedef enum { + /* Get the first (via: + MEMP_POOL_HELPER_START = ((u8_t) 1*MEMP_POOL_A + 0*MEMP_POOL_B + 0*MEMP_POOL_C + 0)*/ + MEMP_POOL_HELPER_FIRST = ((u8_t) +#define LWIP_MEMPOOL(name,num,size,desc) +#define LWIP_MALLOC_MEMPOOL_START 1 +#define LWIP_MALLOC_MEMPOOL(num, size) * MEMP_POOL_##size + 0 +#define LWIP_MALLOC_MEMPOOL_END +#include "lwip/priv/memp_std.h" + ) , + /* Get the last (via: + MEMP_POOL_HELPER_END = ((u8_t) 0 + MEMP_POOL_A*0 + MEMP_POOL_B*0 + MEMP_POOL_C*1) */ + MEMP_POOL_HELPER_LAST = ((u8_t) +#define LWIP_MEMPOOL(name,num,size,desc) +#define LWIP_MALLOC_MEMPOOL_START +#define LWIP_MALLOC_MEMPOOL(num, size) 0 + MEMP_POOL_##size * +#define LWIP_MALLOC_MEMPOOL_END 1 +#include "lwip/priv/memp_std.h" + ) +} memp_pool_helper_t; + +/* The actual start and stop values are here (cast them over) + We use this helper type and these defines so we can avoid using const memp_t values */ +#define MEMP_POOL_FIRST ((memp_t) MEMP_POOL_HELPER_FIRST) +#define MEMP_POOL_LAST ((memp_t) MEMP_POOL_HELPER_LAST) +#endif /* MEM_USE_POOLS && MEMP_USE_CUSTOM_POOLS */ + +/** Memory pool descriptor */ +struct memp_desc { +#if defined(LWIP_DEBUG) || MEMP_OVERFLOW_CHECK || LWIP_STATS_DISPLAY + /** Textual description */ + const char *desc; +#endif /* LWIP_DEBUG || MEMP_OVERFLOW_CHECK || LWIP_STATS_DISPLAY */ +#if MEMP_STATS + /** Statistics */ + struct stats_mem *stats; +#endif + + /** Element size */ + u16_t size; + +#if !MEMP_MEM_MALLOC + /** Number of elements */ + u16_t num; + + /** Base address */ + u8_t *base; + + /** First free element of each pool. Elements form a linked list. */ + struct memp **tab; +#endif /* MEMP_MEM_MALLOC */ +}; + +#if defined(LWIP_DEBUG) || MEMP_OVERFLOW_CHECK || LWIP_STATS_DISPLAY +#define DECLARE_LWIP_MEMPOOL_DESC(desc) (desc), +#else +#define DECLARE_LWIP_MEMPOOL_DESC(desc) +#endif + +#if MEMP_STATS +#define LWIP_MEMPOOL_DECLARE_STATS_INSTANCE(name) static struct stats_mem name; +#define LWIP_MEMPOOL_DECLARE_STATS_REFERENCE(name) &name, +#else +#define LWIP_MEMPOOL_DECLARE_STATS_INSTANCE(name) +#define LWIP_MEMPOOL_DECLARE_STATS_REFERENCE(name) +#endif + +void memp_init_pool(const struct memp_desc *desc); + +#if MEMP_OVERFLOW_CHECK +void *memp_malloc_pool_fn(const struct memp_desc* desc, const char* file, const int line); +#define memp_malloc_pool(d) memp_malloc_pool_fn((d), __FILE__, __LINE__) +#else +void *memp_malloc_pool(const struct memp_desc *desc); +#endif +void memp_free_pool(const struct memp_desc* desc, void *mem); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_MEMP_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/memp_std.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/memp_std.h new file mode 100644 index 000000000..4d3b192df --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/memp_std.h @@ -0,0 +1,153 @@ +/** + * @file + * lwIP internal memory pools (do not use in application code) + * This file is deliberately included multiple times: once with empty + * definition of LWIP_MEMPOOL() to handle all includes and multiple times + * to build up various lists of mem pools. + */ + +/* + * SETUP: Make sure we define everything we will need. + * + * We have create three types of pools: + * 1) MEMPOOL - standard pools + * 2) MALLOC_MEMPOOL - to be used by mem_malloc in mem.c + * 3) PBUF_MEMPOOL - a mempool of pbuf's, so include space for the pbuf struct + * + * If the include'r doesn't require any special treatment of each of the types + * above, then will declare #2 & #3 to be just standard mempools. + */ +#ifndef LWIP_MALLOC_MEMPOOL +/* This treats "malloc pools" just like any other pool. + The pools are a little bigger to provide 'size' as the amount of user data. */ +#define LWIP_MALLOC_MEMPOOL(num, size) LWIP_MEMPOOL(POOL_##size, num, (size + LWIP_MEM_ALIGN_SIZE(sizeof(struct memp_malloc_helper))), "MALLOC_"#size) +#define LWIP_MALLOC_MEMPOOL_START +#define LWIP_MALLOC_MEMPOOL_END +#endif /* LWIP_MALLOC_MEMPOOL */ + +#ifndef LWIP_PBUF_MEMPOOL +/* This treats "pbuf pools" just like any other pool. + * Allocates buffers for a pbuf struct AND a payload size */ +#define LWIP_PBUF_MEMPOOL(name, num, payload, desc) LWIP_MEMPOOL(name, num, (LWIP_MEM_ALIGN_SIZE(sizeof(struct pbuf)) + LWIP_MEM_ALIGN_SIZE(payload)), desc) +#endif /* LWIP_PBUF_MEMPOOL */ + + +/* + * A list of internal pools used by LWIP. + * + * LWIP_MEMPOOL(pool_name, number_elements, element_size, pool_description) + * creates a pool name MEMP_pool_name. description is used in stats.c + */ +#if LWIP_RAW +LWIP_MEMPOOL(RAW_PCB, MEMP_NUM_RAW_PCB, sizeof(struct raw_pcb), "RAW_PCB") +#endif /* LWIP_RAW */ + +#if LWIP_UDP +LWIP_MEMPOOL(UDP_PCB, MEMP_NUM_UDP_PCB, sizeof(struct udp_pcb), "UDP_PCB") +#endif /* LWIP_UDP */ + +#if LWIP_TCP +LWIP_MEMPOOL(TCP_PCB, MEMP_NUM_TCP_PCB, sizeof(struct tcp_pcb), "TCP_PCB") +LWIP_MEMPOOL(TCP_PCB_LISTEN, MEMP_NUM_TCP_PCB_LISTEN, sizeof(struct tcp_pcb_listen), "TCP_PCB_LISTEN") +LWIP_MEMPOOL(TCP_SEG, MEMP_NUM_TCP_SEG, sizeof(struct tcp_seg), "TCP_SEG") +#endif /* LWIP_TCP */ + +#if LWIP_ALTCP && LWIP_TCP +LWIP_MEMPOOL(ALTCP_PCB, MEMP_NUM_ALTCP_PCB, sizeof(struct altcp_pcb), "ALTCP_PCB") +#endif /* LWIP_ALTCP && LWIP_TCP */ + +#if LWIP_IPV4 && IP_REASSEMBLY +LWIP_MEMPOOL(REASSDATA, MEMP_NUM_REASSDATA, sizeof(struct ip_reassdata), "REASSDATA") +#endif /* LWIP_IPV4 && IP_REASSEMBLY */ +#if (IP_FRAG && !LWIP_NETIF_TX_SINGLE_PBUF) || (LWIP_IPV6 && LWIP_IPV6_FRAG) +LWIP_MEMPOOL(FRAG_PBUF, MEMP_NUM_FRAG_PBUF, sizeof(struct pbuf_custom_ref),"FRAG_PBUF") +#endif /* IP_FRAG && !LWIP_NETIF_TX_SINGLE_PBUF || (LWIP_IPV6 && LWIP_IPV6_FRAG) */ + +#if LWIP_NETCONN || LWIP_SOCKET +LWIP_MEMPOOL(NETBUF, MEMP_NUM_NETBUF, sizeof(struct netbuf), "NETBUF") +LWIP_MEMPOOL(NETCONN, MEMP_NUM_NETCONN, sizeof(struct netconn), "NETCONN") +#endif /* LWIP_NETCONN || LWIP_SOCKET */ + +#if NO_SYS==0 +LWIP_MEMPOOL(TCPIP_MSG_API, MEMP_NUM_TCPIP_MSG_API, sizeof(struct tcpip_msg), "TCPIP_MSG_API") +#if LWIP_MPU_COMPATIBLE +LWIP_MEMPOOL(API_MSG, MEMP_NUM_API_MSG, sizeof(struct api_msg), "API_MSG") +#if LWIP_DNS +LWIP_MEMPOOL(DNS_API_MSG, MEMP_NUM_DNS_API_MSG, sizeof(struct dns_api_msg), "DNS_API_MSG") +#endif +#if LWIP_SOCKET && !LWIP_TCPIP_CORE_LOCKING +LWIP_MEMPOOL(SOCKET_SETGETSOCKOPT_DATA, MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA, sizeof(struct lwip_setgetsockopt_data), "SOCKET_SETGETSOCKOPT_DATA") +#endif +#if LWIP_SOCKET && (LWIP_SOCKET_SELECT || LWIP_SOCKET_POLL) +LWIP_MEMPOOL(SELECT_CB, MEMP_NUM_SELECT_CB, sizeof(struct lwip_select_cb), "SELECT_CB") +#endif /* LWIP_SOCKET && (LWIP_SOCKET_SELECT || LWIP_SOCKET_POLL) */ +#if LWIP_NETIF_API +LWIP_MEMPOOL(NETIFAPI_MSG, MEMP_NUM_NETIFAPI_MSG, sizeof(struct netifapi_msg), "NETIFAPI_MSG") +#endif +#endif /* LWIP_MPU_COMPATIBLE */ +#if !LWIP_TCPIP_CORE_LOCKING_INPUT +LWIP_MEMPOOL(TCPIP_MSG_INPKT,MEMP_NUM_TCPIP_MSG_INPKT, sizeof(struct tcpip_msg), "TCPIP_MSG_INPKT") +#endif /* !LWIP_TCPIP_CORE_LOCKING_INPUT */ +#endif /* NO_SYS==0 */ + +#if LWIP_IPV4 && LWIP_ARP && ARP_QUEUEING +LWIP_MEMPOOL(ARP_QUEUE, MEMP_NUM_ARP_QUEUE, sizeof(struct etharp_q_entry), "ARP_QUEUE") +#endif /* LWIP_IPV4 && LWIP_ARP && ARP_QUEUEING */ + +#if LWIP_IGMP +LWIP_MEMPOOL(IGMP_GROUP, MEMP_NUM_IGMP_GROUP, sizeof(struct igmp_group), "IGMP_GROUP") +#endif /* LWIP_IGMP */ + +#if LWIP_TIMERS && !LWIP_TIMERS_CUSTOM +LWIP_MEMPOOL(SYS_TIMEOUT, MEMP_NUM_SYS_TIMEOUT, sizeof(struct sys_timeo), "SYS_TIMEOUT") +#endif /* LWIP_TIMERS && !LWIP_TIMERS_CUSTOM */ + +#if LWIP_DNS && LWIP_SOCKET +LWIP_MEMPOOL(NETDB, MEMP_NUM_NETDB, NETDB_ELEM_SIZE, "NETDB") +#endif /* LWIP_DNS && LWIP_SOCKET */ +#if LWIP_DNS && DNS_LOCAL_HOSTLIST && DNS_LOCAL_HOSTLIST_IS_DYNAMIC +LWIP_MEMPOOL(LOCALHOSTLIST, MEMP_NUM_LOCALHOSTLIST, LOCALHOSTLIST_ELEM_SIZE, "LOCALHOSTLIST") +#endif /* LWIP_DNS && DNS_LOCAL_HOSTLIST && DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ + +#if LWIP_IPV6 && LWIP_ND6_QUEUEING +LWIP_MEMPOOL(ND6_QUEUE, MEMP_NUM_ND6_QUEUE, sizeof(struct nd6_q_entry), "ND6_QUEUE") +#endif /* LWIP_IPV6 && LWIP_ND6_QUEUEING */ + +#if LWIP_IPV6 && LWIP_IPV6_REASS +LWIP_MEMPOOL(IP6_REASSDATA, MEMP_NUM_REASSDATA, sizeof(struct ip6_reassdata), "IP6_REASSDATA") +#endif /* LWIP_IPV6 && LWIP_IPV6_REASS */ + +#if LWIP_IPV6 && LWIP_IPV6_MLD +LWIP_MEMPOOL(MLD6_GROUP, MEMP_NUM_MLD6_GROUP, sizeof(struct mld_group), "MLD6_GROUP") +#endif /* LWIP_IPV6 && LWIP_IPV6_MLD */ + + +/* + * A list of pools of pbuf's used by LWIP. + * + * LWIP_PBUF_MEMPOOL(pool_name, number_elements, pbuf_payload_size, pool_description) + * creates a pool name MEMP_pool_name. description is used in stats.c + * This allocates enough space for the pbuf struct and a payload. + * (Example: pbuf_payload_size=0 allocates only size for the struct) + */ +LWIP_MEMPOOL(PBUF, MEMP_NUM_PBUF, sizeof(struct pbuf), "PBUF_REF/ROM") +LWIP_PBUF_MEMPOOL(PBUF_POOL, PBUF_POOL_SIZE, PBUF_POOL_BUFSIZE, "PBUF_POOL") + + +/* + * Allow for user-defined pools; this must be explicitly set in lwipopts.h + * since the default is to NOT look for lwippools.h + */ +#if MEMP_USE_CUSTOM_POOLS +#include "lwippools.h" +#endif /* MEMP_USE_CUSTOM_POOLS */ + +/* + * REQUIRED CLEANUP: Clear up so we don't get "multiply defined" error later + * (#undef is ignored for something that is not defined) + */ +#undef LWIP_MEMPOOL +#undef LWIP_MALLOC_MEMPOOL +#undef LWIP_MALLOC_MEMPOOL_START +#undef LWIP_MALLOC_MEMPOOL_END +#undef LWIP_PBUF_MEMPOOL diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/nd6_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/nd6_priv.h new file mode 100644 index 000000000..61c0b73bd --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/nd6_priv.h @@ -0,0 +1,142 @@ +/** + * @file + * + * Neighbor discovery and stateless address autoconfiguration for IPv6. + * Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862 + * (Address autoconfiguration). + */ + +/* + * Copyright (c) 2010 Inico Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Ivan Delamer + * + * + * Please coordinate changes and requests with Ivan Delamer + * + */ + +#ifndef LWIP_HDR_ND6_PRIV_H +#define LWIP_HDR_ND6_PRIV_H + +#include "lwip/opt.h" + +#if LWIP_IPV6 /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/pbuf.h" +#include "lwip/ip6_addr.h" +#include "lwip/netif.h" + + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_ND6_QUEUEING +/** struct for queueing outgoing packets for unknown address + * defined here to be accessed by memp.h + */ +struct nd6_q_entry { + struct nd6_q_entry *next; + struct pbuf *p; +}; +#endif /* LWIP_ND6_QUEUEING */ + +/** Struct for tables. */ +struct nd6_neighbor_cache_entry { + ip6_addr_t next_hop_address; + struct netif *netif; + u8_t lladdr[NETIF_MAX_HWADDR_LEN]; + /*u32_t pmtu;*/ +#if LWIP_ND6_QUEUEING + /** Pointer to queue of pending outgoing packets on this entry. */ + struct nd6_q_entry *q; +#else /* LWIP_ND6_QUEUEING */ + /** Pointer to a single pending outgoing packet on this entry. */ + struct pbuf *q; +#endif /* LWIP_ND6_QUEUEING */ + u8_t state; + u8_t isrouter; + union { + u32_t reachable_time; /* in seconds */ + u32_t delay_time; /* ticks (ND6_TMR_INTERVAL) */ + u32_t probes_sent; + u32_t stale_time; /* ticks (ND6_TMR_INTERVAL) */ + } counter; +}; + +struct nd6_destination_cache_entry { + ip6_addr_t destination_addr; + ip6_addr_t next_hop_addr; + u16_t pmtu; + u32_t age; +}; + +struct nd6_prefix_list_entry { + ip6_addr_t prefix; + struct netif *netif; + u32_t invalidation_timer; /* in seconds */ +}; + +struct nd6_router_list_entry { + struct nd6_neighbor_cache_entry *neighbor_entry; + u32_t invalidation_timer; /* in seconds */ + u8_t flags; +}; + +enum nd6_neighbor_cache_entry_state { + ND6_NO_ENTRY = 0, + ND6_INCOMPLETE, + ND6_REACHABLE, + ND6_STALE, + ND6_DELAY, + ND6_PROBE +}; + +#define ND6_HOPLIM 255 /* maximum hop limit, required in all ND packets */ + +#define ND6_2HRS 7200 /* two hours, expressed in number of seconds */ + +/* Router tables. */ +/* @todo make these static? and entries accessible through API? */ +extern struct nd6_neighbor_cache_entry neighbor_cache[]; +extern struct nd6_destination_cache_entry destination_cache[]; +extern struct nd6_prefix_list_entry prefix_list[]; +extern struct nd6_router_list_entry default_router_list[]; + +/* Default values, can be updated by a RA message. */ +extern u32_t reachable_time; +extern u32_t retrans_timer; + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_IPV6 */ + +#endif /* LWIP_HDR_ND6_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/raw_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/raw_priv.h new file mode 100644 index 000000000..083542211 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/raw_priv.h @@ -0,0 +1,69 @@ +/** + * @file + * raw API internal implementations (do not use in application code) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_RAW_PRIV_H +#define LWIP_HDR_RAW_PRIV_H + +#include "lwip/opt.h" + +#if LWIP_RAW /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/raw.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** return codes for raw_input */ +typedef enum raw_input_state +{ + RAW_INPUT_NONE = 0, /* pbuf did not match any pcbs */ + RAW_INPUT_EATEN, /* pbuf handed off and delivered to pcb */ + RAW_INPUT_DELIVERED /* pbuf only delivered to pcb (pbuf can still be referenced) */ +} raw_input_state_t; + +/* The following functions are the lower layer interface to RAW. */ +raw_input_state_t raw_input(struct pbuf *p, struct netif *inp); + +void raw_netif_ip_addr_changed(const ip_addr_t* old_addr, const ip_addr_t* new_addr); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_RAW */ + +#endif /* LWIP_HDR_RAW_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/sockets_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/sockets_priv.h new file mode 100644 index 000000000..e481cd1c2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/sockets_priv.h @@ -0,0 +1,175 @@ +/** + * @file + * Sockets API internal implementations (do not use in application code) + */ + +/* + * Copyright (c) 2017 Joel Cunningham, Garmin International, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Joel Cunningham + * + */ +#ifndef LWIP_HDR_SOCKETS_PRIV_H +#define LWIP_HDR_SOCKETS_PRIV_H + +#include "lwip/opt.h" + +#if LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/err.h" +#include "lwip/sockets.h" +#include "lwip/sys.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define NUM_SOCKETS MEMP_NUM_NETCONN + +/** This is overridable for the rare case where more than 255 threads + * select on the same socket... + */ +#ifndef SELWAIT_T +#define SELWAIT_T u8_t +#endif + +union lwip_sock_lastdata { + struct netbuf *netbuf; + struct pbuf *pbuf; +}; + +/** Contains all internal pointers and states used for a socket */ +struct lwip_sock { + /** sockets currently are built on netconns, each socket has one netconn */ + struct netconn *conn; + /** data that was left from the previous read */ + union lwip_sock_lastdata lastdata; +#if LWIP_SOCKET_SELECT || LWIP_SOCKET_POLL + /** number of times data was received, set by event_callback(), + tested by the receive and select functions */ + s16_t rcvevent; + /** number of times data was ACKed (free send buffer), set by event_callback(), + tested by select */ + u16_t sendevent; + /** error happened for this socket, set by event_callback(), tested by select */ + u16_t errevent; + /** counter of how many threads are waiting for this socket using select */ + SELWAIT_T select_waiting; +#endif /* LWIP_SOCKET_SELECT || LWIP_SOCKET_POLL */ +#if LWIP_NETCONN_FULLDUPLEX + /* counter of how many threads are using a struct lwip_sock (not the 'int') */ + u8_t fd_used; + /* status of pending close/delete actions */ + u8_t fd_free_pending; +#define LWIP_SOCK_FD_FREE_TCP 1 +#define LWIP_SOCK_FD_FREE_FREE 2 +#endif +}; + +#ifndef set_errno +#define set_errno(err) do { if (err) { errno = (err); } } while(0) +#endif + +#if !LWIP_TCPIP_CORE_LOCKING +/** Maximum optlen used by setsockopt/getsockopt */ +#define LWIP_SETGETSOCKOPT_MAXOPTLEN LWIP_MAX(16, sizeof(struct ifreq)) + +/** This struct is used to pass data to the set/getsockopt_internal + * functions running in tcpip_thread context (only a void* is allowed) */ +struct lwip_setgetsockopt_data { + /** socket index for which to change options */ + int s; + /** level of the option to process */ + int level; + /** name of the option to process */ + int optname; + /** set: value to set the option to + * get: value of the option is stored here */ +#if LWIP_MPU_COMPATIBLE + u8_t optval[LWIP_SETGETSOCKOPT_MAXOPTLEN]; +#else + union { + void *p; + const void *pc; + } optval; +#endif + /** size of *optval */ + socklen_t optlen; + /** if an error occurs, it is temporarily stored here */ + int err; + /** semaphore to wake up the calling task */ + void* completed_sem; +}; +#endif /* !LWIP_TCPIP_CORE_LOCKING */ + +#ifdef __cplusplus +} +#endif + +struct lwip_sock* lwip_socket_dbg_get_socket(int fd); + +#if LWIP_SOCKET_SELECT || LWIP_SOCKET_POLL + +#if LWIP_NETCONN_SEM_PER_THREAD +#define SELECT_SEM_T sys_sem_t* +#define SELECT_SEM_PTR(sem) (sem) +#else /* LWIP_NETCONN_SEM_PER_THREAD */ +#define SELECT_SEM_T sys_sem_t +#define SELECT_SEM_PTR(sem) (&(sem)) +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + +/** Description for a task waiting in select */ +struct lwip_select_cb { + /** Pointer to the next waiting task */ + struct lwip_select_cb *next; + /** Pointer to the previous waiting task */ + struct lwip_select_cb *prev; +#if LWIP_SOCKET_SELECT + /** readset passed to select */ + fd_set *readset; + /** writeset passed to select */ + fd_set *writeset; + /** unimplemented: exceptset passed to select */ + fd_set *exceptset; +#endif /* LWIP_SOCKET_SELECT */ +#if LWIP_SOCKET_POLL + /** fds passed to poll; NULL if select */ + struct pollfd *poll_fds; + /** nfds passed to poll; 0 if select */ + nfds_t poll_nfds; +#endif /* LWIP_SOCKET_POLL */ + /** don't signal the same semaphore twice: set to 1 when signalled */ + int sem_signalled; + /** semaphore to wake up a task waiting for select */ + SELECT_SEM_T sem; +}; +#endif /* LWIP_SOCKET_SELECT || LWIP_SOCKET_POLL */ + +#endif /* LWIP_SOCKET */ + +#endif /* LWIP_HDR_SOCKETS_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/tcp_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/tcp_priv.h new file mode 100644 index 000000000..96e07e338 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/tcp_priv.h @@ -0,0 +1,523 @@ +/** + * @file + * TCP internal implementations (do not use in application code) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_TCP_PRIV_H +#define LWIP_HDR_TCP_PRIV_H + +#include "lwip/opt.h" + +#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/tcp.h" +#include "lwip/mem.h" +#include "lwip/pbuf.h" +#include "lwip/ip.h" +#include "lwip/icmp.h" +#include "lwip/err.h" +#include "lwip/ip6.h" +#include "lwip/ip6_addr.h" +#include "lwip/prot/tcp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Functions for interfacing with TCP: */ + +/* Lower layer interface to TCP: */ +void tcp_init (void); /* Initialize this module. */ +void tcp_tmr (void); /* Must be called every + TCP_TMR_INTERVAL + ms. (Typically 250 ms). */ +/* It is also possible to call these two functions at the right + intervals (instead of calling tcp_tmr()). */ +void tcp_slowtmr (void); +void tcp_fasttmr (void); + +/* Call this from a netif driver (watch out for threading issues!) that has + returned a memory error on transmit and now has free buffers to send more. + This iterates all active pcbs that had an error and tries to call + tcp_output, so use this with care as it might slow down the system. */ +void tcp_txnow (void); + +/* Only used by IP to pass a TCP segment to TCP: */ +void tcp_input (struct pbuf *p, struct netif *inp); +/* Used within the TCP code only: */ +struct tcp_pcb * tcp_alloc (u8_t prio); +void tcp_free (struct tcp_pcb *pcb); +void tcp_abandon (struct tcp_pcb *pcb, int reset); +err_t tcp_send_empty_ack(struct tcp_pcb *pcb); +err_t tcp_rexmit (struct tcp_pcb *pcb); +err_t tcp_rexmit_rto_prepare(struct tcp_pcb *pcb); +void tcp_rexmit_rto_commit(struct tcp_pcb *pcb); +void tcp_rexmit_rto (struct tcp_pcb *pcb); +void tcp_rexmit_fast (struct tcp_pcb *pcb); +u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb); +err_t tcp_process_refused_data(struct tcp_pcb *pcb); + +/** + * This is the Nagle algorithm: try to combine user data to send as few TCP + * segments as possible. Only send if + * - no previously transmitted data on the connection remains unacknowledged or + * - the TF_NODELAY flag is set (nagle algorithm turned off for this pcb) or + * - the only unsent segment is at least pcb->mss bytes long (or there is more + * than one unsent segment - with lwIP, this can happen although unsent->len < mss) + * - or if we are in fast-retransmit (TF_INFR) + */ +#define tcp_do_output_nagle(tpcb) ((((tpcb)->unacked == NULL) || \ + ((tpcb)->flags & (TF_NODELAY | TF_INFR)) || \ + (((tpcb)->unsent != NULL) && (((tpcb)->unsent->next != NULL) || \ + ((tpcb)->unsent->len >= (tpcb)->mss))) || \ + ((tcp_sndbuf(tpcb) == 0) || (tcp_sndqueuelen(tpcb) >= TCP_SND_QUEUELEN)) \ + ) ? 1 : 0) +#define tcp_output_nagle(tpcb) (tcp_do_output_nagle(tpcb) ? tcp_output(tpcb) : ERR_OK) + + +#define TCP_SEQ_LT(a,b) ((s32_t)((u32_t)(a) - (u32_t)(b)) < 0) +#define TCP_SEQ_LEQ(a,b) ((s32_t)((u32_t)(a) - (u32_t)(b)) <= 0) +#define TCP_SEQ_GT(a,b) ((s32_t)((u32_t)(a) - (u32_t)(b)) > 0) +#define TCP_SEQ_GEQ(a,b) ((s32_t)((u32_t)(a) - (u32_t)(b)) >= 0) +/* is b<=a<=c? */ +#if 0 /* see bug #10548 */ +#define TCP_SEQ_BETWEEN(a,b,c) ((c)-(b) >= (a)-(b)) +#endif +#define TCP_SEQ_BETWEEN(a,b,c) (TCP_SEQ_GEQ(a,b) && TCP_SEQ_LEQ(a,c)) + +#ifndef TCP_TMR_INTERVAL +#define TCP_TMR_INTERVAL 250 /* The TCP timer interval in milliseconds. */ +#endif /* TCP_TMR_INTERVAL */ + +#ifndef TCP_FAST_INTERVAL +#define TCP_FAST_INTERVAL TCP_TMR_INTERVAL /* the fine grained timeout in milliseconds */ +#endif /* TCP_FAST_INTERVAL */ + +#ifndef TCP_SLOW_INTERVAL +#define TCP_SLOW_INTERVAL (2*TCP_TMR_INTERVAL) /* the coarse grained timeout in milliseconds */ +#endif /* TCP_SLOW_INTERVAL */ + +#define TCP_FIN_WAIT_TIMEOUT 20000 /* milliseconds */ +#define TCP_SYN_RCVD_TIMEOUT 20000 /* milliseconds */ + +#define TCP_OOSEQ_TIMEOUT 6U /* x RTO */ + +#ifndef TCP_MSL +#define TCP_MSL 60000UL /* The maximum segment lifetime in milliseconds */ +#endif + +/* Keepalive values, compliant with RFC 1122. Don't change this unless you know what you're doing */ +#ifndef TCP_KEEPIDLE_DEFAULT +#define TCP_KEEPIDLE_DEFAULT 7200000UL /* Default KEEPALIVE timer in milliseconds */ +#endif + +#ifndef TCP_KEEPINTVL_DEFAULT +#define TCP_KEEPINTVL_DEFAULT 75000UL /* Default Time between KEEPALIVE probes in milliseconds */ +#endif + +#ifndef TCP_KEEPCNT_DEFAULT +#define TCP_KEEPCNT_DEFAULT 9U /* Default Counter for KEEPALIVE probes */ +#endif + +#define TCP_MAXIDLE TCP_KEEPCNT_DEFAULT * TCP_KEEPINTVL_DEFAULT /* Maximum KEEPALIVE probe time */ + +#define TCP_TCPLEN(seg) ((seg)->len + (((TCPH_FLAGS((seg)->tcphdr) & (TCP_FIN | TCP_SYN)) != 0) ? 1U : 0U)) + +/** Flags used on input processing, not on pcb->flags +*/ +#define TF_RESET (u8_t)0x08U /* Connection was reset. */ +#define TF_CLOSED (u8_t)0x10U /* Connection was successfully closed. */ +#define TF_GOT_FIN (u8_t)0x20U /* Connection was closed by the remote end. */ + + +#if LWIP_EVENT_API + +#define TCP_EVENT_ACCEPT(lpcb,pcb,arg,err,ret) ret = lwip_tcp_event(arg, (pcb),\ + LWIP_EVENT_ACCEPT, NULL, 0, err) +#define TCP_EVENT_SENT(pcb,space,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ + LWIP_EVENT_SENT, NULL, space, ERR_OK) +#define TCP_EVENT_RECV(pcb,p,err,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ + LWIP_EVENT_RECV, (p), 0, (err)) +#define TCP_EVENT_CLOSED(pcb,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ + LWIP_EVENT_RECV, NULL, 0, ERR_OK) +#define TCP_EVENT_CONNECTED(pcb,err,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ + LWIP_EVENT_CONNECTED, NULL, 0, (err)) +#define TCP_EVENT_POLL(pcb,ret) do { if ((pcb)->state != SYN_RCVD) { \ + ret = lwip_tcp_event((pcb)->callback_arg, (pcb), LWIP_EVENT_POLL, NULL, 0, ERR_OK); \ + } else { \ + ret = ERR_ARG; } } while(0) +/* For event API, last state SYN_RCVD must be excluded here: the application + has not seen this pcb, yet! */ +#define TCP_EVENT_ERR(last_state,errf,arg,err) do { if (last_state != SYN_RCVD) { \ + lwip_tcp_event((arg), NULL, LWIP_EVENT_ERR, NULL, 0, (err)); } } while(0) + +#else /* LWIP_EVENT_API */ + +#define TCP_EVENT_ACCEPT(lpcb,pcb,arg,err,ret) \ + do { \ + if((lpcb)->accept != NULL) \ + (ret) = (lpcb)->accept((arg),(pcb),(err)); \ + else (ret) = ERR_ARG; \ + } while (0) + +#define TCP_EVENT_SENT(pcb,space,ret) \ + do { \ + if((pcb)->sent != NULL) \ + (ret) = (pcb)->sent((pcb)->callback_arg,(pcb),(space)); \ + else (ret) = ERR_OK; \ + } while (0) + +#define TCP_EVENT_RECV(pcb,p,err,ret) \ + do { \ + if((pcb)->recv != NULL) { \ + (ret) = (pcb)->recv((pcb)->callback_arg,(pcb),(p),(err));\ + } else { \ + (ret) = tcp_recv_null(NULL, (pcb), (p), (err)); \ + } \ + } while (0) + +#define TCP_EVENT_CLOSED(pcb,ret) \ + do { \ + if(((pcb)->recv != NULL)) { \ + (ret) = (pcb)->recv((pcb)->callback_arg,(pcb),NULL,ERR_OK);\ + } else { \ + (ret) = ERR_OK; \ + } \ + } while (0) + +#define TCP_EVENT_CONNECTED(pcb,err,ret) \ + do { \ + if((pcb)->connected != NULL) \ + (ret) = (pcb)->connected((pcb)->callback_arg,(pcb),(err)); \ + else (ret) = ERR_OK; \ + } while (0) + +#define TCP_EVENT_POLL(pcb,ret) \ + do { \ + if((pcb)->poll != NULL) \ + (ret) = (pcb)->poll((pcb)->callback_arg,(pcb)); \ + else (ret) = ERR_OK; \ + } while (0) + +#define TCP_EVENT_ERR(last_state,errf,arg,err) \ + do { \ + LWIP_UNUSED_ARG(last_state); \ + if((errf) != NULL) \ + (errf)((arg),(err)); \ + } while (0) + +#endif /* LWIP_EVENT_API */ + +/** Enabled extra-check for TCP_OVERSIZE if LWIP_DEBUG is enabled */ +#if TCP_OVERSIZE && defined(LWIP_DEBUG) +#define TCP_OVERSIZE_DBGCHECK 1 +#else +#define TCP_OVERSIZE_DBGCHECK 0 +#endif + +/** Don't generate checksum on copy if CHECKSUM_GEN_TCP is disabled */ +#define TCP_CHECKSUM_ON_COPY (LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_TCP) + +/* This structure represents a TCP segment on the unsent, unacked and ooseq queues */ +struct tcp_seg { + struct tcp_seg *next; /* used when putting segments on a queue */ + struct pbuf *p; /* buffer containing data + TCP header */ + u16_t len; /* the TCP length of this segment */ +#if TCP_OVERSIZE_DBGCHECK + u16_t oversize_left; /* Extra bytes available at the end of the last + pbuf in unsent (used for asserting vs. + tcp_pcb.unsent_oversize only) */ +#endif /* TCP_OVERSIZE_DBGCHECK */ +#if TCP_CHECKSUM_ON_COPY + u16_t chksum; + u8_t chksum_swapped; +#endif /* TCP_CHECKSUM_ON_COPY */ + u8_t flags; +#define TF_SEG_OPTS_MSS (u8_t)0x01U /* Include MSS option (only used in SYN segments) */ +#define TF_SEG_OPTS_TS (u8_t)0x02U /* Include timestamp option. */ +#define TF_SEG_DATA_CHECKSUMMED (u8_t)0x04U /* ALL data (not the header) is + checksummed into 'chksum' */ +#define TF_SEG_OPTS_WND_SCALE (u8_t)0x08U /* Include WND SCALE option (only used in SYN segments) */ +#define TF_SEG_OPTS_SACK_PERM (u8_t)0x10U /* Include SACK Permitted option (only used in SYN segments) */ + struct tcp_hdr *tcphdr; /* the TCP header */ +}; + +#define LWIP_TCP_OPT_EOL 0 +#define LWIP_TCP_OPT_NOP 1 +#define LWIP_TCP_OPT_MSS 2 +#define LWIP_TCP_OPT_WS 3 +#define LWIP_TCP_OPT_SACK_PERM 4 +#define LWIP_TCP_OPT_TS 8 + +#define LWIP_TCP_OPT_LEN_MSS 4 +#if LWIP_TCP_TIMESTAMPS +#define LWIP_TCP_OPT_LEN_TS 10 +#define LWIP_TCP_OPT_LEN_TS_OUT 12 /* aligned for output (includes NOP padding) */ +#else +#define LWIP_TCP_OPT_LEN_TS_OUT 0 +#endif +#if LWIP_WND_SCALE +#define LWIP_TCP_OPT_LEN_WS 3 +#define LWIP_TCP_OPT_LEN_WS_OUT 4 /* aligned for output (includes NOP padding) */ +#else +#define LWIP_TCP_OPT_LEN_WS_OUT 0 +#endif + +#if LWIP_TCP_SACK_OUT +#define LWIP_TCP_OPT_LEN_SACK_PERM 2 +#define LWIP_TCP_OPT_LEN_SACK_PERM_OUT 4 /* aligned for output (includes NOP padding) */ +#else +#define LWIP_TCP_OPT_LEN_SACK_PERM_OUT 0 +#endif + +#define LWIP_TCP_OPT_LENGTH(flags) \ + ((flags) & TF_SEG_OPTS_MSS ? LWIP_TCP_OPT_LEN_MSS : 0) + \ + ((flags) & TF_SEG_OPTS_TS ? LWIP_TCP_OPT_LEN_TS_OUT : 0) + \ + ((flags) & TF_SEG_OPTS_WND_SCALE ? LWIP_TCP_OPT_LEN_WS_OUT : 0) + \ + ((flags) & TF_SEG_OPTS_SACK_PERM ? LWIP_TCP_OPT_LEN_SACK_PERM_OUT : 0) + +/** This returns a TCP header option for MSS in an u32_t */ +#define TCP_BUILD_MSS_OPTION(mss) lwip_htonl(0x02040000 | ((mss) & 0xFFFF)) + +#if LWIP_WND_SCALE +#define TCPWNDSIZE_F U32_F +#define TCPWND_MAX 0xFFFFFFFFU +#define TCPWND_CHECK16(x) LWIP_ASSERT("window size > 0xFFFF", (x) <= 0xFFFF) +#define TCPWND_MIN16(x) ((u16_t)LWIP_MIN((x), 0xFFFF)) +#else /* LWIP_WND_SCALE */ +#define TCPWNDSIZE_F U16_F +#define TCPWND_MAX 0xFFFFU +#define TCPWND_CHECK16(x) +#define TCPWND_MIN16(x) x +#endif /* LWIP_WND_SCALE */ + +/* Global variables: */ +extern struct tcp_pcb *tcp_input_pcb; +extern u32_t tcp_ticks; +extern u8_t tcp_active_pcbs_changed; + +/* The TCP PCB lists. */ +union tcp_listen_pcbs_t { /* List of all TCP PCBs in LISTEN state. */ + struct tcp_pcb_listen *listen_pcbs; + struct tcp_pcb *pcbs; +}; +extern struct tcp_pcb *tcp_bound_pcbs; +extern union tcp_listen_pcbs_t tcp_listen_pcbs; +extern struct tcp_pcb *tcp_active_pcbs; /* List of all TCP PCBs that are in a + state in which they accept or send + data. */ +extern struct tcp_pcb *tcp_tw_pcbs; /* List of all TCP PCBs in TIME-WAIT. */ + +#define NUM_TCP_PCB_LISTS_NO_TIME_WAIT 3 +#define NUM_TCP_PCB_LISTS 4 +extern struct tcp_pcb ** const tcp_pcb_lists[NUM_TCP_PCB_LISTS]; + +/* Axioms about the above lists: + 1) Every TCP PCB that is not CLOSED is in one of the lists. + 2) A PCB is only in one of the lists. + 3) All PCBs in the tcp_listen_pcbs list is in LISTEN state. + 4) All PCBs in the tcp_tw_pcbs list is in TIME-WAIT state. +*/ +/* Define two macros, TCP_REG and TCP_RMV that registers a TCP PCB + with a PCB list or removes a PCB from a list, respectively. */ +#ifndef TCP_DEBUG_PCB_LISTS +#define TCP_DEBUG_PCB_LISTS 0 +#endif +#if TCP_DEBUG_PCB_LISTS +#define TCP_REG(pcbs, npcb) do {\ + struct tcp_pcb *tcp_tmp_pcb; \ + LWIP_DEBUGF(TCP_DEBUG, ("TCP_REG %p local port %"U16_F"\n", (void *)(npcb), (npcb)->local_port)); \ + for (tcp_tmp_pcb = *(pcbs); \ + tcp_tmp_pcb != NULL; \ + tcp_tmp_pcb = tcp_tmp_pcb->next) { \ + LWIP_ASSERT("TCP_REG: already registered\n", tcp_tmp_pcb != (npcb)); \ + } \ + LWIP_ASSERT("TCP_REG: pcb->state != CLOSED", ((pcbs) == &tcp_bound_pcbs) || ((npcb)->state != CLOSED)); \ + (npcb)->next = *(pcbs); \ + LWIP_ASSERT("TCP_REG: npcb->next != npcb", (npcb)->next != (npcb)); \ + *(pcbs) = (npcb); \ + LWIP_ASSERT("TCP_REG: tcp_pcbs sane", tcp_pcbs_sane()); \ + tcp_timer_needed(); \ + } while(0) +#define TCP_RMV(pcbs, npcb) do { \ + struct tcp_pcb *tcp_tmp_pcb; \ + LWIP_ASSERT("TCP_RMV: pcbs != NULL", *(pcbs) != NULL); \ + LWIP_DEBUGF(TCP_DEBUG, ("TCP_RMV: removing %p from %p\n", (void *)(npcb), (void *)(*(pcbs)))); \ + if(*(pcbs) == (npcb)) { \ + *(pcbs) = (*pcbs)->next; \ + } else for (tcp_tmp_pcb = *(pcbs); tcp_tmp_pcb != NULL; tcp_tmp_pcb = tcp_tmp_pcb->next) { \ + if(tcp_tmp_pcb->next == (npcb)) { \ + tcp_tmp_pcb->next = (npcb)->next; \ + break; \ + } \ + } \ + (npcb)->next = NULL; \ + LWIP_ASSERT("TCP_RMV: tcp_pcbs sane", tcp_pcbs_sane()); \ + LWIP_DEBUGF(TCP_DEBUG, ("TCP_RMV: removed %p from %p\n", (void *)(npcb), (void *)(*(pcbs)))); \ + } while(0) + +#else /* LWIP_DEBUG */ + +#define TCP_REG(pcbs, npcb) \ + do { \ + (npcb)->next = *pcbs; \ + *(pcbs) = (npcb); \ + tcp_timer_needed(); \ + } while (0) + +#define TCP_RMV(pcbs, npcb) \ + do { \ + if(*(pcbs) == (npcb)) { \ + (*(pcbs)) = (*pcbs)->next; \ + } \ + else { \ + struct tcp_pcb *tcp_tmp_pcb; \ + for (tcp_tmp_pcb = *pcbs; \ + tcp_tmp_pcb != NULL; \ + tcp_tmp_pcb = tcp_tmp_pcb->next) { \ + if(tcp_tmp_pcb->next == (npcb)) { \ + tcp_tmp_pcb->next = (npcb)->next; \ + break; \ + } \ + } \ + } \ + (npcb)->next = NULL; \ + } while(0) + +#endif /* LWIP_DEBUG */ + +#define TCP_REG_ACTIVE(npcb) \ + do { \ + TCP_REG(&tcp_active_pcbs, npcb); \ + tcp_active_pcbs_changed = 1; \ + } while (0) + +#define TCP_RMV_ACTIVE(npcb) \ + do { \ + TCP_RMV(&tcp_active_pcbs, npcb); \ + tcp_active_pcbs_changed = 1; \ + } while (0) + +#define TCP_PCB_REMOVE_ACTIVE(pcb) \ + do { \ + tcp_pcb_remove(&tcp_active_pcbs, pcb); \ + tcp_active_pcbs_changed = 1; \ + } while (0) + + +/* Internal functions: */ +struct tcp_pcb *tcp_pcb_copy(struct tcp_pcb *pcb); +void tcp_pcb_purge(struct tcp_pcb *pcb); +void tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb); + +void tcp_segs_free(struct tcp_seg *seg); +void tcp_seg_free(struct tcp_seg *seg); +struct tcp_seg *tcp_seg_copy(struct tcp_seg *seg); + +#define tcp_ack(pcb) \ + do { \ + if((pcb)->flags & TF_ACK_DELAY) { \ + tcp_clear_flags(pcb, TF_ACK_DELAY); \ + tcp_ack_now(pcb); \ + } \ + else { \ + tcp_set_flags(pcb, TF_ACK_DELAY); \ + } \ + } while (0) + +#define tcp_ack_now(pcb) \ + tcp_set_flags(pcb, TF_ACK_NOW) + +err_t tcp_send_fin(struct tcp_pcb *pcb); +err_t tcp_enqueue_flags(struct tcp_pcb *pcb, u8_t flags); + +void tcp_rexmit_seg(struct tcp_pcb *pcb, struct tcp_seg *seg); + +void tcp_rst(const struct tcp_pcb* pcb, u32_t seqno, u32_t ackno, + const ip_addr_t *local_ip, const ip_addr_t *remote_ip, + u16_t local_port, u16_t remote_port); + +u32_t tcp_next_iss(struct tcp_pcb *pcb); + +err_t tcp_keepalive(struct tcp_pcb *pcb); +err_t tcp_split_unsent_seg(struct tcp_pcb *pcb, u16_t split); +err_t tcp_zero_window_probe(struct tcp_pcb *pcb); +void tcp_trigger_input_pcb_close(void); + +#if TCP_CALCULATE_EFF_SEND_MSS +u16_t tcp_eff_send_mss_netif(u16_t sendmss, struct netif *outif, + const ip_addr_t *dest); +#define tcp_eff_send_mss(sendmss, src, dest) \ + tcp_eff_send_mss_netif(sendmss, ip_route(src, dest), dest) +#endif /* TCP_CALCULATE_EFF_SEND_MSS */ + +#if LWIP_CALLBACK_API +err_t tcp_recv_null(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err); +#endif /* LWIP_CALLBACK_API */ + +#if TCP_DEBUG || TCP_INPUT_DEBUG || TCP_OUTPUT_DEBUG +void tcp_debug_print(struct tcp_hdr *tcphdr); +void tcp_debug_print_flags(u8_t flags); +void tcp_debug_print_state(enum tcp_state s); +void tcp_debug_print_pcbs(void); +s16_t tcp_pcbs_sane(void); +#else +# define tcp_debug_print(tcphdr) +# define tcp_debug_print_flags(flags) +# define tcp_debug_print_state(s) +# define tcp_debug_print_pcbs() +# define tcp_pcbs_sane() 1 +#endif /* TCP_DEBUG */ + +/** External function (implemented in timers.c), called when TCP detects + * that a timer is needed (i.e. active- or time-wait-pcb found). */ +void tcp_timer_needed(void); + +void tcp_netif_ip_addr_changed(const ip_addr_t* old_addr, const ip_addr_t* new_addr); + +#if TCP_QUEUE_OOSEQ +void tcp_free_ooseq(struct tcp_pcb *pcb); +#endif + +#if LWIP_TCP_PCB_NUM_EXT_ARGS +err_t tcp_ext_arg_invoke_callbacks_passive_open(struct tcp_pcb_listen *lpcb, struct tcp_pcb *cpcb); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_TCP */ + +#endif /* LWIP_HDR_TCP_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/tcpip_priv.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/tcpip_priv.h new file mode 100644 index 000000000..327673b9d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/priv/tcpip_priv.h @@ -0,0 +1,170 @@ +/** + * @file + * TCPIP API internal implementations (do not use in application code) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_TCPIP_PRIV_H +#define LWIP_HDR_TCPIP_PRIV_H + +#include "lwip/opt.h" + +#if !NO_SYS /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/tcpip.h" +#include "lwip/sys.h" +#include "lwip/timeouts.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct pbuf; +struct netif; + +#if LWIP_MPU_COMPATIBLE +#define API_VAR_REF(name) (*(name)) +#define API_VAR_DECLARE(type, name) type * name +#define API_VAR_ALLOC_EXT(type, pool, name, errorblock) do { \ + name = (type *)memp_malloc(pool); \ + if (name == NULL) { \ + errorblock; \ + } \ + } while(0) +#define API_VAR_ALLOC(type, pool, name, errorval) API_VAR_ALLOC_EXT(type, pool, name, return errorval) +#define API_VAR_ALLOC_POOL(type, pool, name, errorval) do { \ + name = (type *)LWIP_MEMPOOL_ALLOC(pool); \ + if (name == NULL) { \ + return errorval; \ + } \ + } while(0) +#define API_VAR_FREE(pool, name) memp_free(pool, name) +#define API_VAR_FREE_POOL(pool, name) LWIP_MEMPOOL_FREE(pool, name) +#define API_EXPR_REF(expr) (&(expr)) +#if LWIP_NETCONN_SEM_PER_THREAD +#define API_EXPR_REF_SEM(expr) (expr) +#else +#define API_EXPR_REF_SEM(expr) API_EXPR_REF(expr) +#endif +#define API_EXPR_DEREF(expr) expr +#define API_MSG_M_DEF(m) m +#define API_MSG_M_DEF_C(t, m) t m +#else /* LWIP_MPU_COMPATIBLE */ +#define API_VAR_REF(name) name +#define API_VAR_DECLARE(type, name) type name +#define API_VAR_ALLOC_EXT(type, pool, name, errorblock) +#define API_VAR_ALLOC(type, pool, name, errorval) +#define API_VAR_ALLOC_POOL(type, pool, name, errorval) +#define API_VAR_FREE(pool, name) +#define API_VAR_FREE_POOL(pool, name) +#define API_EXPR_REF(expr) expr +#define API_EXPR_REF_SEM(expr) API_EXPR_REF(expr) +#define API_EXPR_DEREF(expr) (*(expr)) +#define API_MSG_M_DEF(m) *m +#define API_MSG_M_DEF_C(t, m) const t * m +#endif /* LWIP_MPU_COMPATIBLE */ + +err_t tcpip_send_msg_wait_sem(tcpip_callback_fn fn, void *apimsg, sys_sem_t* sem); + +struct tcpip_api_call_data +{ +#if !LWIP_TCPIP_CORE_LOCKING + err_t err; +#if !LWIP_NETCONN_SEM_PER_THREAD + sys_sem_t sem; +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ +#else /* !LWIP_TCPIP_CORE_LOCKING */ + u8_t dummy; /* avoid empty struct :-( */ +#endif /* !LWIP_TCPIP_CORE_LOCKING */ +}; +typedef err_t (*tcpip_api_call_fn)(struct tcpip_api_call_data* call); +err_t tcpip_api_call(tcpip_api_call_fn fn, struct tcpip_api_call_data *call); + +enum tcpip_msg_type { +#if !LWIP_TCPIP_CORE_LOCKING + TCPIP_MSG_API, + TCPIP_MSG_API_CALL, +#endif /* !LWIP_TCPIP_CORE_LOCKING */ +#if !LWIP_TCPIP_CORE_LOCKING_INPUT + TCPIP_MSG_INPKT, +#endif /* !LWIP_TCPIP_CORE_LOCKING_INPUT */ +#if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS + TCPIP_MSG_TIMEOUT, + TCPIP_MSG_UNTIMEOUT, +#endif /* LWIP_TCPIP_TIMEOUT && LWIP_TIMERS */ + TCPIP_MSG_CALLBACK, + TCPIP_MSG_CALLBACK_STATIC +}; + +struct tcpip_msg { + enum tcpip_msg_type type; + union { +#if !LWIP_TCPIP_CORE_LOCKING + struct { + tcpip_callback_fn function; + void* msg; + } api_msg; + struct { + tcpip_api_call_fn function; + struct tcpip_api_call_data *arg; + sys_sem_t *sem; + } api_call; +#endif /* LWIP_TCPIP_CORE_LOCKING */ +#if !LWIP_TCPIP_CORE_LOCKING_INPUT + struct { + struct pbuf *p; + struct netif *netif; + netif_input_fn input_fn; + } inp; +#endif /* !LWIP_TCPIP_CORE_LOCKING_INPUT */ + struct { + tcpip_callback_fn function; + void *ctx; + } cb; +#if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS + struct { + u32_t msecs; + sys_timeout_handler h; + void *arg; + } tmo; +#endif /* LWIP_TCPIP_TIMEOUT && LWIP_TIMERS */ + } msg; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* !NO_SYS */ + +#endif /* LWIP_HDR_TCPIP_PRIV_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/autoip.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/autoip.h new file mode 100644 index 000000000..3fe15327b --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/autoip.h @@ -0,0 +1,78 @@ +/** + * @file + * AutoIP protocol definitions + */ + +/* + * + * Copyright (c) 2007 Dominik Spies + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * Author: Dominik Spies + * + * This is a AutoIP implementation for the lwIP TCP/IP stack. It aims to conform + * with RFC 3927. + * + */ + +#ifndef LWIP_HDR_PROT_AUTOIP_H +#define LWIP_HDR_PROT_AUTOIP_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* 169.254.0.0 */ +#define AUTOIP_NET 0xA9FE0000 +/* 169.254.1.0 */ +#define AUTOIP_RANGE_START (AUTOIP_NET | 0x0100) +/* 169.254.254.255 */ +#define AUTOIP_RANGE_END (AUTOIP_NET | 0xFEFF) + +/* RFC 3927 Constants */ +#define PROBE_WAIT 1 /* second (initial random delay) */ +#define PROBE_MIN 1 /* second (minimum delay till repeated probe) */ +#define PROBE_MAX 2 /* seconds (maximum delay till repeated probe) */ +#define PROBE_NUM 3 /* (number of probe packets) */ +#define ANNOUNCE_NUM 2 /* (number of announcement packets) */ +#define ANNOUNCE_INTERVAL 2 /* seconds (time between announcement packets) */ +#define ANNOUNCE_WAIT 2 /* seconds (delay before announcing) */ +#define MAX_CONFLICTS 10 /* (max conflicts before rate limiting) */ +#define RATE_LIMIT_INTERVAL 60 /* seconds (delay between successive attempts) */ +#define DEFEND_INTERVAL 10 /* seconds (min. wait between defensive ARPs) */ + +/* AutoIP client states */ +typedef enum { + AUTOIP_STATE_OFF = 0, + AUTOIP_STATE_PROBING = 1, + AUTOIP_STATE_ANNOUNCING = 2, + AUTOIP_STATE_BOUND = 3 +} autoip_state_enum_t; + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_AUTOIP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dhcp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dhcp.h new file mode 100644 index 000000000..6d16ce368 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dhcp.h @@ -0,0 +1,178 @@ +/** + * @file + * DHCP protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Leon Woestenberg + * Copyright (c) 2001-2004 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Leon Woestenberg + * + */ +#ifndef LWIP_HDR_PROT_DHCP_H +#define LWIP_HDR_PROT_DHCP_H + +#include "lwip/opt.h" +#include "lwip/arch.h" +#include "lwip/prot/ip4.h" + +#ifdef __cplusplus +extern "C" { +#endif + + /* DHCP message item offsets and length */ +#define DHCP_CHADDR_LEN 16U +#define DHCP_SNAME_OFS 44U +#define DHCP_SNAME_LEN 64U +#define DHCP_FILE_OFS 108U +#define DHCP_FILE_LEN 128U +#define DHCP_MSG_LEN 236U +#define DHCP_OPTIONS_OFS (DHCP_MSG_LEN + 4U) /* 4 byte: cookie */ + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/** minimum set of fields of any DHCP message */ +struct dhcp_msg +{ + PACK_STRUCT_FLD_8(u8_t op); + PACK_STRUCT_FLD_8(u8_t htype); + PACK_STRUCT_FLD_8(u8_t hlen); + PACK_STRUCT_FLD_8(u8_t hops); + PACK_STRUCT_FIELD(u32_t xid); + PACK_STRUCT_FIELD(u16_t secs); + PACK_STRUCT_FIELD(u16_t flags); + PACK_STRUCT_FLD_S(ip4_addr_p_t ciaddr); + PACK_STRUCT_FLD_S(ip4_addr_p_t yiaddr); + PACK_STRUCT_FLD_S(ip4_addr_p_t siaddr); + PACK_STRUCT_FLD_S(ip4_addr_p_t giaddr); + PACK_STRUCT_FLD_8(u8_t chaddr[DHCP_CHADDR_LEN]); + PACK_STRUCT_FLD_8(u8_t sname[DHCP_SNAME_LEN]); + PACK_STRUCT_FLD_8(u8_t file[DHCP_FILE_LEN]); + PACK_STRUCT_FIELD(u32_t cookie); +#define DHCP_MIN_OPTIONS_LEN 68U +/** make sure user does not configure this too small */ +#if ((defined(DHCP_OPTIONS_LEN)) && (DHCP_OPTIONS_LEN < DHCP_MIN_OPTIONS_LEN)) +# undef DHCP_OPTIONS_LEN +#endif +/** allow this to be configured in lwipopts.h, but not too small */ +#if (!defined(DHCP_OPTIONS_LEN)) +/** set this to be sufficient for your options in outgoing DHCP msgs */ +# define DHCP_OPTIONS_LEN DHCP_MIN_OPTIONS_LEN +#endif + PACK_STRUCT_FLD_8(u8_t options[DHCP_OPTIONS_LEN]); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + + +/* DHCP client states */ +typedef enum { + DHCP_STATE_OFF = 0, + DHCP_STATE_REQUESTING = 1, + DHCP_STATE_INIT = 2, + DHCP_STATE_REBOOTING = 3, + DHCP_STATE_REBINDING = 4, + DHCP_STATE_RENEWING = 5, + DHCP_STATE_SELECTING = 6, + DHCP_STATE_INFORMING = 7, + DHCP_STATE_CHECKING = 8, + DHCP_STATE_PERMANENT = 9, /* not yet implemented */ + DHCP_STATE_BOUND = 10, + DHCP_STATE_RELEASING = 11, /* not yet implemented */ + DHCP_STATE_BACKING_OFF = 12 +} dhcp_state_enum_t; + +/* DHCP op codes */ +#define DHCP_BOOTREQUEST 1 +#define DHCP_BOOTREPLY 2 + +/* DHCP message types */ +#define DHCP_DISCOVER 1 +#define DHCP_OFFER 2 +#define DHCP_REQUEST 3 +#define DHCP_DECLINE 4 +#define DHCP_ACK 5 +#define DHCP_NAK 6 +#define DHCP_RELEASE 7 +#define DHCP_INFORM 8 + +#define DHCP_MAGIC_COOKIE 0x63825363UL + +/* This is a list of options for BOOTP and DHCP, see RFC 2132 for descriptions */ + +/* BootP options */ +#define DHCP_OPTION_PAD 0 +#define DHCP_OPTION_SUBNET_MASK 1 /* RFC 2132 3.3 */ +#define DHCP_OPTION_ROUTER 3 +#define DHCP_OPTION_DNS_SERVER 6 +#define DHCP_OPTION_HOSTNAME 12 +#define DHCP_OPTION_IP_TTL 23 +#define DHCP_OPTION_MTU 26 +#define DHCP_OPTION_BROADCAST 28 +#define DHCP_OPTION_TCP_TTL 37 +#define DHCP_OPTION_NTP 42 +#define DHCP_OPTION_END 255 + +/* DHCP options */ +#define DHCP_OPTION_REQUESTED_IP 50 /* RFC 2132 9.1, requested IP address */ +#define DHCP_OPTION_LEASE_TIME 51 /* RFC 2132 9.2, time in seconds, in 4 bytes */ +#define DHCP_OPTION_OVERLOAD 52 /* RFC2132 9.3, use file and/or sname field for options */ + +#define DHCP_OPTION_MESSAGE_TYPE 53 /* RFC 2132 9.6, important for DHCP */ +#define DHCP_OPTION_MESSAGE_TYPE_LEN 1 + +#define DHCP_OPTION_SERVER_ID 54 /* RFC 2132 9.7, server IP address */ +#define DHCP_OPTION_PARAMETER_REQUEST_LIST 55 /* RFC 2132 9.8, requested option types */ + +#define DHCP_OPTION_MAX_MSG_SIZE 57 /* RFC 2132 9.10, message size accepted >= 576 */ +#define DHCP_OPTION_MAX_MSG_SIZE_LEN 2 + +#define DHCP_OPTION_T1 58 /* T1 renewal time */ +#define DHCP_OPTION_T2 59 /* T2 rebinding time */ +#define DHCP_OPTION_US 60 +#define DHCP_OPTION_CLIENT_ID 61 +#define DHCP_OPTION_TFTP_SERVERNAME 66 +#define DHCP_OPTION_BOOTFILE 67 + +/* possible combinations of overloading the file and sname fields with options */ +#define DHCP_OVERLOAD_NONE 0 +#define DHCP_OVERLOAD_FILE 1 +#define DHCP_OVERLOAD_SNAME 2 +#define DHCP_OVERLOAD_SNAME_FILE 3 + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_DHCP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dhcp6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dhcp6.h new file mode 100644 index 000000000..1be5f840f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dhcp6.h @@ -0,0 +1,138 @@ +/** + * @file + * DHCPv6 protocol definitions + */ + +/* + * Copyright (c) 2017 Simon Goldschmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_PROT_DHCP6_H +#define LWIP_HDR_PROT_DHCP6_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define DHCP6_CLIENT_PORT 546 +#define DHCP6_SERVER_PORT 547 + + + /* DHCPv6 message item offsets and length */ +#define DHCP6_TRANSACTION_ID_LEN 3 + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/** minimum set of fields of any DHCPv6 message */ +struct dhcp6_msg +{ + PACK_STRUCT_FLD_8(u8_t msgtype); + PACK_STRUCT_FLD_8(u8_t transaction_id[DHCP6_TRANSACTION_ID_LEN]); + /* options follow */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + + +/* DHCP6 client states */ +typedef enum { + DHCP6_STATE_OFF = 0, + DHCP6_STATE_STATELESS_IDLE = 1, + DHCP6_STATE_REQUESTING_CONFIG = 2 +} dhcp6_state_enum_t; + +/* DHCPv6 message types */ +#define DHCP6_SOLICIT 1 +#define DHCP6_ADVERTISE 2 +#define DHCP6_REQUEST 3 +#define DHCP6_CONFIRM 4 +#define DHCP6_RENEW 5 +#define DHCP6_REBIND 6 +#define DHCP6_REPLY 7 +#define DHCP6_RELEASE 8 +#define DHCP6_DECLINE 9 +#define DHCP6_RECONFIGURE 10 +#define DHCP6_INFOREQUEST 11 +#define DHCP6_RELAYFORW 12 +#define DHCP6_RELAYREPL 13 +/* More message types see https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml */ + +/** DHCPv6 status codes */ +#define DHCP6_STATUS_SUCCESS 0 /* Success. */ +#define DHCP6_STATUS_UNSPECFAIL 1 /* Failure, reason unspecified; this status code is sent by either a client or a server to indicate a failure not explicitly specified in this document. */ +#define DHCP6_STATUS_NOADDRSAVAIL 2 /* Server has no addresses available to assign to the IA(s). */ +#define DHCP6_STATUS_NOBINDING 3 /* Client record (binding) unavailable. */ +#define DHCP6_STATUS_NOTONLINK 4 /* The prefix for the address is not appropriate for the link to which the client is attached. */ +#define DHCP6_STATUS_USEMULTICAST 5 /* Sent by a server to a client to force the client to send messages to the server using the All_DHCP_Relay_Agents_and_Servers address. */ +/* More status codes see https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml */ + +/** DHCPv6 DUID types */ +#define DHCP6_DUID_LLT 1 /* LLT: Link-layer Address Plus Time */ +#define DHCP6_DUID_EN 2 /* EN: Enterprise number */ +#define DHCP6_DUID_LL 3 /* LL: Link-layer Address */ +#define DHCP6_DUID_UUID 4 /* UUID (RFC 6355) */ + +/* DHCPv6 options */ +#define DHCP6_OPTION_CLIENTID 1 +#define DHCP6_OPTION_SERVERID 2 +#define DHCP6_OPTION_IA_NA 3 +#define DHCP6_OPTION_IA_TA 4 +#define DHCP6_OPTION_IAADDR 5 +#define DHCP6_OPTION_ORO 6 +#define DHCP6_OPTION_PREFERENCE 7 +#define DHCP6_OPTION_ELAPSED_TIME 8 +#define DHCP6_OPTION_RELAY_MSG 9 +#define DHCP6_OPTION_AUTH 11 +#define DHCP6_OPTION_UNICAST 12 +#define DHCP6_OPTION_STATUS_CODE 13 +#define DHCP6_OPTION_RAPID_COMMIT 14 +#define DHCP6_OPTION_USER_CLASS 15 +#define DHCP6_OPTION_VENDOR_CLASS 16 +#define DHCP6_OPTION_VENDOR_OPTS 17 +#define DHCP6_OPTION_INTERFACE_ID 18 +#define DHCP6_OPTION_RECONF_MSG 19 +#define DHCP6_OPTION_RECONF_ACCEPT 20 +/* More options see https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml */ +#define DHCP6_OPTION_DNS_SERVERS 23 /* RFC 3646 */ +#define DHCP6_OPTION_DOMAIN_LIST 24 /* RFC 3646 */ +#define DHCP6_OPTION_SNTP_SERVERS 31 /* RFC 4075 */ + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_DHCP6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dns.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dns.h new file mode 100644 index 000000000..022a32c15 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/dns.h @@ -0,0 +1,140 @@ +/** + * @file + * DNS - host name to IP address resolver. + */ + +/* + * Port to lwIP from uIP + * by Jim Pettinato April 2007 + * + * security fixes and more by Simon Goldschmidt + * + * uIP version Copyright (c) 2002-2003, Adam Dunkels. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef LWIP_HDR_PROT_DNS_H +#define LWIP_HDR_PROT_DNS_H + +#include "lwip/arch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** DNS server port address */ +#ifndef DNS_SERVER_PORT +#define DNS_SERVER_PORT 53 +#endif + +/* DNS field TYPE used for "Resource Records" */ +#define DNS_RRTYPE_A 1 /* a host address */ +#define DNS_RRTYPE_NS 2 /* an authoritative name server */ +#define DNS_RRTYPE_MD 3 /* a mail destination (Obsolete - use MX) */ +#define DNS_RRTYPE_MF 4 /* a mail forwarder (Obsolete - use MX) */ +#define DNS_RRTYPE_CNAME 5 /* the canonical name for an alias */ +#define DNS_RRTYPE_SOA 6 /* marks the start of a zone of authority */ +#define DNS_RRTYPE_MB 7 /* a mailbox domain name (EXPERIMENTAL) */ +#define DNS_RRTYPE_MG 8 /* a mail group member (EXPERIMENTAL) */ +#define DNS_RRTYPE_MR 9 /* a mail rename domain name (EXPERIMENTAL) */ +#define DNS_RRTYPE_NULL 10 /* a null RR (EXPERIMENTAL) */ +#define DNS_RRTYPE_WKS 11 /* a well known service description */ +#define DNS_RRTYPE_PTR 12 /* a domain name pointer */ +#define DNS_RRTYPE_HINFO 13 /* host information */ +#define DNS_RRTYPE_MINFO 14 /* mailbox or mail list information */ +#define DNS_RRTYPE_MX 15 /* mail exchange */ +#define DNS_RRTYPE_TXT 16 /* text strings */ +#define DNS_RRTYPE_AAAA 28 /* IPv6 address */ +#define DNS_RRTYPE_SRV 33 /* service location */ +#define DNS_RRTYPE_ANY 255 /* any type */ + +/* DNS field CLASS used for "Resource Records" */ +#define DNS_RRCLASS_IN 1 /* the Internet */ +#define DNS_RRCLASS_CS 2 /* the CSNET class (Obsolete - used only for examples in some obsolete RFCs) */ +#define DNS_RRCLASS_CH 3 /* the CHAOS class */ +#define DNS_RRCLASS_HS 4 /* Hesiod [Dyer 87] */ +#define DNS_RRCLASS_ANY 255 /* any class */ +#define DNS_RRCLASS_FLUSH 0x800 /* Flush bit */ + +/* DNS protocol flags */ +#define DNS_FLAG1_RESPONSE 0x80 +#define DNS_FLAG1_OPCODE_STATUS 0x10 +#define DNS_FLAG1_OPCODE_INVERSE 0x08 +#define DNS_FLAG1_OPCODE_STANDARD 0x00 +#define DNS_FLAG1_AUTHORATIVE 0x04 +#define DNS_FLAG1_TRUNC 0x02 +#define DNS_FLAG1_RD 0x01 +#define DNS_FLAG2_RA 0x80 +#define DNS_FLAG2_ERR_MASK 0x0f +#define DNS_FLAG2_ERR_NONE 0x00 +#define DNS_FLAG2_ERR_NAME 0x03 + +#define DNS_HDR_GET_OPCODE(hdr) ((((hdr)->flags1) >> 3) & 0xF) + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/** DNS message header */ +struct dns_hdr { + PACK_STRUCT_FIELD(u16_t id); + PACK_STRUCT_FLD_8(u8_t flags1); + PACK_STRUCT_FLD_8(u8_t flags2); + PACK_STRUCT_FIELD(u16_t numquestions); + PACK_STRUCT_FIELD(u16_t numanswers); + PACK_STRUCT_FIELD(u16_t numauthrr); + PACK_STRUCT_FIELD(u16_t numextrarr); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define SIZEOF_DNS_HDR 12 + + +/* Multicast DNS definitions */ + +/** UDP port for multicast DNS queries */ +#ifndef DNS_MQUERY_PORT +#define DNS_MQUERY_PORT 5353 +#endif + +/* IPv4 group for multicast DNS queries: 224.0.0.251 */ +#ifndef DNS_MQUERY_IPV4_GROUP_INIT +#define DNS_MQUERY_IPV4_GROUP_INIT IPADDR4_INIT_BYTES(224,0,0,251) +#endif + +/* IPv6 group for multicast DNS queries: FF02::FB */ +#ifndef DNS_MQUERY_IPV6_GROUP_INIT +#define DNS_MQUERY_IPV6_GROUP_INIT IPADDR6_INIT_HOST(0xFF020000,0,0,0xFB) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_DNS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/etharp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/etharp.h new file mode 100644 index 000000000..9e4b02c67 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/etharp.h @@ -0,0 +1,114 @@ +/** + * @file + * ARP protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_ETHARP_H +#define LWIP_HDR_PROT_ETHARP_H + +#include "lwip/arch.h" +#include "lwip/prot/ethernet.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef ETHARP_HWADDR_LEN +#define ETHARP_HWADDR_LEN ETH_HWADDR_LEN +#endif + +/** + * struct ip4_addr_wordaligned is used in the definition of the ARP packet format in + * order to support compilers that don't have structure packing. + */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip4_addr_wordaligned { + PACK_STRUCT_FIELD(u16_t addrw[2]); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** MEMCPY-like copying of IP addresses where addresses are known to be + * 16-bit-aligned if the port is correctly configured (so a port could define + * this to copying 2 u16_t's) - no NULL-pointer-checking needed. */ +#ifndef IPADDR_WORDALIGNED_COPY_TO_IP4_ADDR_T +#define IPADDR_WORDALIGNED_COPY_TO_IP4_ADDR_T(dest, src) SMEMCPY(dest, src, sizeof(ip4_addr_t)) +#endif + + /** MEMCPY-like copying of IP addresses where addresses are known to be + * 16-bit-aligned if the port is correctly configured (so a port could define + * this to copying 2 u16_t's) - no NULL-pointer-checking needed. */ +#ifndef IPADDR_WORDALIGNED_COPY_FROM_IP4_ADDR_T +#define IPADDR_WORDALIGNED_COPY_FROM_IP4_ADDR_T(dest, src) SMEMCPY(dest, src, sizeof(ip4_addr_t)) +#endif + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/** the ARP message, see RFC 826 ("Packet format") */ +struct etharp_hdr { + PACK_STRUCT_FIELD(u16_t hwtype); + PACK_STRUCT_FIELD(u16_t proto); + PACK_STRUCT_FLD_8(u8_t hwlen); + PACK_STRUCT_FLD_8(u8_t protolen); + PACK_STRUCT_FIELD(u16_t opcode); + PACK_STRUCT_FLD_S(struct eth_addr shwaddr); + PACK_STRUCT_FLD_S(struct ip4_addr_wordaligned sipaddr); + PACK_STRUCT_FLD_S(struct eth_addr dhwaddr); + PACK_STRUCT_FLD_S(struct ip4_addr_wordaligned dipaddr); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#define SIZEOF_ETHARP_HDR 28 + +/* ARP message types (opcodes) */ +enum etharp_opcode { + ARP_REQUEST = 1, + ARP_REPLY = 2 +}; + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_ETHARP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ethernet.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ethernet.h new file mode 100644 index 000000000..fef49e2a2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ethernet.h @@ -0,0 +1,125 @@ +/** + * @file + * Ethernet protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_ETHERNET_H +#define LWIP_HDR_PROT_ETHERNET_H + +#include "lwip/arch.h" +#include "lwip/prot/ieee.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef ETH_HWADDR_LEN +#ifdef ETHARP_HWADDR_LEN +#define ETH_HWADDR_LEN ETHARP_HWADDR_LEN /* compatibility mode */ +#else +#define ETH_HWADDR_LEN 6 +#endif +#endif + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/** An Ethernet MAC address */ +struct eth_addr { + PACK_STRUCT_FLD_8(u8_t addr[ETH_HWADDR_LEN]); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Initialize a struct eth_addr with its 6 bytes (takes care of correct braces) */ +#define ETH_ADDR(b0, b1, b2, b3, b4, b5) {{b0, b1, b2, b3, b4, b5}} + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/** Ethernet header */ +struct eth_hdr { +#if ETH_PAD_SIZE + PACK_STRUCT_FLD_8(u8_t padding[ETH_PAD_SIZE]); +#endif + PACK_STRUCT_FLD_S(struct eth_addr dest); + PACK_STRUCT_FLD_S(struct eth_addr src); + PACK_STRUCT_FIELD(u16_t type); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#define SIZEOF_ETH_HDR (14 + ETH_PAD_SIZE) + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/** VLAN header inserted between ethernet header and payload + * if 'type' in ethernet header is ETHTYPE_VLAN. + * See IEEE802.Q */ +struct eth_vlan_hdr { + PACK_STRUCT_FIELD(u16_t prio_vid); + PACK_STRUCT_FIELD(u16_t tpid); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#define SIZEOF_VLAN_HDR 4 +#define VLAN_ID(vlan_hdr) (lwip_htons((vlan_hdr)->prio_vid) & 0xFFF) + +/** The 24-bit IANA IPv4-multicast OUI is 01-00-5e: */ +#define LL_IP4_MULTICAST_ADDR_0 0x01 +#define LL_IP4_MULTICAST_ADDR_1 0x00 +#define LL_IP4_MULTICAST_ADDR_2 0x5e + +/** IPv6 multicast uses this prefix */ +#define LL_IP6_MULTICAST_ADDR_0 0x33 +#define LL_IP6_MULTICAST_ADDR_1 0x33 + +#define eth_addr_cmp(addr1, addr2) (memcmp((addr1)->addr, (addr2)->addr, ETH_HWADDR_LEN) == 0) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_ETHERNET_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/iana.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/iana.h new file mode 100644 index 000000000..859d238d8 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/iana.h @@ -0,0 +1,97 @@ +/** + * @file + * IANA assigned numbers (RFC 1700 and successors) + * + * @defgroup iana IANA assigned numbers + * @ingroup infrastructure + */ + +/* + * Copyright (c) 2017 Dirk Ziegelmeier. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Dirk Ziegelmeier + * + */ + +#ifndef LWIP_HDR_PROT_IANA_H +#define LWIP_HDR_PROT_IANA_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @ingroup iana + * Hardware types + */ +enum lwip_iana_hwtype { + /** Ethernet */ + LWIP_IANA_HWTYPE_ETHERNET = 1 +}; + +/** + * @ingroup iana + * Port numbers + * https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt + */ +enum lwip_iana_port_number { + /** SMTP */ + LWIP_IANA_PORT_SMTP = 25, + /** DHCP server */ + LWIP_IANA_PORT_DHCP_SERVER = 67, + /** DHCP client */ + LWIP_IANA_PORT_DHCP_CLIENT = 68, + /** TFTP */ + LWIP_IANA_PORT_TFTP = 69, + /** HTTP */ + LWIP_IANA_PORT_HTTP = 80, + /** SNTP */ + LWIP_IANA_PORT_SNTP = 123, + /** NETBIOS */ + LWIP_IANA_PORT_NETBIOS = 137, + /** SNMP */ + LWIP_IANA_PORT_SNMP = 161, + /** SNMP traps */ + LWIP_IANA_PORT_SNMP_TRAP = 162, + /** HTTPS */ + LWIP_IANA_PORT_HTTPS = 443, + /** SMTPS */ + LWIP_IANA_PORT_SMTPS = 465, + /** MQTT */ + LWIP_IANA_PORT_MQTT = 1883, + /** MDNS */ + LWIP_IANA_PORT_MDNS = 5353, + /** Secure MQTT */ + LWIP_IANA_PORT_SECURE_MQTT = 8883 +}; + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_IANA_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/icmp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/icmp.h new file mode 100644 index 000000000..d8183fd3d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/icmp.h @@ -0,0 +1,91 @@ +/** + * @file + * ICMP protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_ICMP_H +#define LWIP_HDR_PROT_ICMP_H + +#include "lwip/arch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ICMP_ER 0 /* echo reply */ +#define ICMP_DUR 3 /* destination unreachable */ +#define ICMP_SQ 4 /* source quench */ +#define ICMP_RD 5 /* redirect */ +#define ICMP_ECHO 8 /* echo */ +#define ICMP_TE 11 /* time exceeded */ +#define ICMP_PP 12 /* parameter problem */ +#define ICMP_TS 13 /* timestamp */ +#define ICMP_TSR 14 /* timestamp reply */ +#define ICMP_IRQ 15 /* information request */ +#define ICMP_IR 16 /* information reply */ +#define ICMP_AM 17 /* address mask request */ +#define ICMP_AMR 18 /* address mask reply */ + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +/** This is the standard ICMP header only that the u32_t data + * is split to two u16_t like ICMP echo needs it. + * This header is also used for other ICMP types that do not + * use the data part. + */ +PACK_STRUCT_BEGIN +struct icmp_echo_hdr { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u16_t id); + PACK_STRUCT_FIELD(u16_t seqno); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/* Compatibility defines, old versions used to combine type and code to an u16_t */ +#define ICMPH_TYPE(hdr) ((hdr)->type) +#define ICMPH_CODE(hdr) ((hdr)->code) +#define ICMPH_TYPE_SET(hdr, t) ((hdr)->type = (t)) +#define ICMPH_CODE_SET(hdr, c) ((hdr)->code = (c)) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_ICMP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/icmp6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/icmp6.h new file mode 100644 index 000000000..b1c6d56b4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/icmp6.h @@ -0,0 +1,170 @@ +/** + * @file + * ICMP6 protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_ICMP6_H +#define LWIP_HDR_PROT_ICMP6_H + +#include "lwip/arch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** ICMP type */ +enum icmp6_type { + /** Destination unreachable */ + ICMP6_TYPE_DUR = 1, + /** Packet too big */ + ICMP6_TYPE_PTB = 2, + /** Time exceeded */ + ICMP6_TYPE_TE = 3, + /** Parameter problem */ + ICMP6_TYPE_PP = 4, + /** Private experimentation */ + ICMP6_TYPE_PE1 = 100, + /** Private experimentation */ + ICMP6_TYPE_PE2 = 101, + /** Reserved for expansion of error messages */ + ICMP6_TYPE_RSV_ERR = 127, + + /** Echo request */ + ICMP6_TYPE_EREQ = 128, + /** Echo reply */ + ICMP6_TYPE_EREP = 129, + /** Multicast listener query */ + ICMP6_TYPE_MLQ = 130, + /** Multicast listener report */ + ICMP6_TYPE_MLR = 131, + /** Multicast listener done */ + ICMP6_TYPE_MLD = 132, + /** Router solicitation */ + ICMP6_TYPE_RS = 133, + /** Router advertisement */ + ICMP6_TYPE_RA = 134, + /** Neighbor solicitation */ + ICMP6_TYPE_NS = 135, + /** Neighbor advertisement */ + ICMP6_TYPE_NA = 136, + /** Redirect */ + ICMP6_TYPE_RD = 137, + /** Multicast router advertisement */ + ICMP6_TYPE_MRA = 151, + /** Multicast router solicitation */ + ICMP6_TYPE_MRS = 152, + /** Multicast router termination */ + ICMP6_TYPE_MRT = 153, + /** Private experimentation */ + ICMP6_TYPE_PE3 = 200, + /** Private experimentation */ + ICMP6_TYPE_PE4 = 201, + /** Reserved for expansion of informational messages */ + ICMP6_TYPE_RSV_INF = 255 +}; + +/** ICMP destination unreachable codes */ +enum icmp6_dur_code { + /** No route to destination */ + ICMP6_DUR_NO_ROUTE = 0, + /** Communication with destination administratively prohibited */ + ICMP6_DUR_PROHIBITED = 1, + /** Beyond scope of source address */ + ICMP6_DUR_SCOPE = 2, + /** Address unreachable */ + ICMP6_DUR_ADDRESS = 3, + /** Port unreachable */ + ICMP6_DUR_PORT = 4, + /** Source address failed ingress/egress policy */ + ICMP6_DUR_POLICY = 5, + /** Reject route to destination */ + ICMP6_DUR_REJECT_ROUTE = 6 +}; + +/** ICMP time exceeded codes */ +enum icmp6_te_code { + /** Hop limit exceeded in transit */ + ICMP6_TE_HL = 0, + /** Fragment reassembly time exceeded */ + ICMP6_TE_FRAG = 1 +}; + +/** ICMP parameter code */ +enum icmp6_pp_code { + /** Erroneous header field encountered */ + ICMP6_PP_FIELD = 0, + /** Unrecognized next header type encountered */ + ICMP6_PP_HEADER = 1, + /** Unrecognized IPv6 option encountered */ + ICMP6_PP_OPTION = 2 +}; + +/** This is the standard ICMP6 header. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct icmp6_hdr { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u32_t data); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** This is the ICMP6 header adapted for echo req/resp. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct icmp6_echo_hdr { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u16_t id); + PACK_STRUCT_FIELD(u16_t seqno); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_ICMP6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ieee.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ieee.h new file mode 100644 index 000000000..ef651b155 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ieee.h @@ -0,0 +1,91 @@ +/** + * @file + * IEEE assigned numbers + * + * @defgroup ieee IEEE assigned numbers + * @ingroup infrastructure + */ + +/* + * Copyright (c) 2017 Dirk Ziegelmeier. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Dirk Ziegelmeier + * + */ + +#ifndef LWIP_HDR_PROT_IEEE_H +#define LWIP_HDR_PROT_IEEE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @ingroup ieee + * A list of often ethtypes (although lwIP does not use all of them). + */ +enum lwip_ieee_eth_type { + /** Internet protocol v4 */ + ETHTYPE_IP = 0x0800U, + /** Address resolution protocol */ + ETHTYPE_ARP = 0x0806U, + /** Wake on lan */ + ETHTYPE_WOL = 0x0842U, + /** RARP */ + ETHTYPE_RARP = 0x8035U, + /** Virtual local area network */ + ETHTYPE_VLAN = 0x8100U, + /** Internet protocol v6 */ + ETHTYPE_IPV6 = 0x86DDU, + /** PPP Over Ethernet Discovery Stage */ + ETHTYPE_PPPOEDISC = 0x8863U, + /** PPP Over Ethernet Session Stage */ + ETHTYPE_PPPOE = 0x8864U, + /** Jumbo Frames */ + ETHTYPE_JUMBO = 0x8870U, + /** Process field network */ + ETHTYPE_PROFINET = 0x8892U, + /** Ethernet for control automation technology */ + ETHTYPE_ETHERCAT = 0x88A4U, + /** Link layer discovery protocol */ + ETHTYPE_LLDP = 0x88CCU, + /** Serial real-time communication system */ + ETHTYPE_SERCOS = 0x88CDU, + /** Media redundancy protocol */ + ETHTYPE_MRP = 0x88E3U, + /** Precision time protocol */ + ETHTYPE_PTP = 0x88F7U, + /** Q-in-Q, 802.1ad */ + ETHTYPE_QINQ = 0x9100U +}; + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_IEEE_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/igmp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/igmp.h new file mode 100644 index 000000000..41e4e6759 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/igmp.h @@ -0,0 +1,90 @@ +/** + * @file + * IGMP protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_IGMP_H +#define LWIP_HDR_PROT_IGMP_H + +#include "lwip/arch.h" +#include "lwip/prot/ip4.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * IGMP constants + */ +#define IGMP_TTL 1 +#define IGMP_MINLEN 8 +#define ROUTER_ALERT 0x9404U +#define ROUTER_ALERTLEN 4 + +/* + * IGMP message types, including version number. + */ +#define IGMP_MEMB_QUERY 0x11 /* Membership query */ +#define IGMP_V1_MEMB_REPORT 0x12 /* Ver. 1 membership report */ +#define IGMP_V2_MEMB_REPORT 0x16 /* Ver. 2 membership report */ +#define IGMP_LEAVE_GROUP 0x17 /* Leave-group message */ + +/* Group membership states */ +#define IGMP_GROUP_NON_MEMBER 0 +#define IGMP_GROUP_DELAYING_MEMBER 1 +#define IGMP_GROUP_IDLE_MEMBER 2 + +/** + * IGMP packet format. + */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct igmp_msg { + PACK_STRUCT_FLD_8(u8_t igmp_msgtype); + PACK_STRUCT_FLD_8(u8_t igmp_maxresp); + PACK_STRUCT_FIELD(u16_t igmp_checksum); + PACK_STRUCT_FLD_S(ip4_addr_p_t igmp_group_address); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_IGMP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip.h new file mode 100644 index 000000000..3ce496c49 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip.h @@ -0,0 +1,59 @@ +/** + * @file + * IP protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_IP_H +#define LWIP_HDR_PROT_IP_H + +#include "lwip/arch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define IP_PROTO_ICMP 1 +#define IP_PROTO_IGMP 2 +#define IP_PROTO_UDP 17 +#define IP_PROTO_UDPLITE 136 +#define IP_PROTO_TCP 6 + +/** This operates on a void* by loading the first byte */ +#define IP_HDR_GET_VERSION(ptr) ((*(u8_t*)(ptr)) >> 4) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_IP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip4.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip4.h new file mode 100644 index 000000000..4635a7a60 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip4.h @@ -0,0 +1,131 @@ +/** + * @file + * IPv4 protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_IP4_H +#define LWIP_HDR_PROT_IP4_H + +#include "lwip/arch.h" +#include "lwip/ip4_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** This is the packed version of ip4_addr_t, + used in network headers that are itself packed */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip4_addr_packed { + PACK_STRUCT_FIELD(u32_t addr); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +typedef struct ip4_addr_packed ip4_addr_p_t; + +/* Size of the IPv4 header. Same as 'sizeof(struct ip_hdr)'. */ +#define IP_HLEN 20 +/* Maximum size of the IPv4 header with options. */ +#define IP_HLEN_MAX 60 + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/* The IPv4 header */ +struct ip_hdr { + /* version / header length */ + PACK_STRUCT_FLD_8(u8_t _v_hl); + /* type of service */ + PACK_STRUCT_FLD_8(u8_t _tos); + /* total length */ + PACK_STRUCT_FIELD(u16_t _len); + /* identification */ + PACK_STRUCT_FIELD(u16_t _id); + /* fragment offset field */ + PACK_STRUCT_FIELD(u16_t _offset); +#define IP_RF 0x8000U /* reserved fragment flag */ +#define IP_DF 0x4000U /* don't fragment flag */ +#define IP_MF 0x2000U /* more fragments flag */ +#define IP_OFFMASK 0x1fffU /* mask for fragmenting bits */ + /* time to live */ + PACK_STRUCT_FLD_8(u8_t _ttl); + /* protocol*/ + PACK_STRUCT_FLD_8(u8_t _proto); + /* checksum */ + PACK_STRUCT_FIELD(u16_t _chksum); + /* source and destination IP addresses */ + PACK_STRUCT_FLD_S(ip4_addr_p_t src); + PACK_STRUCT_FLD_S(ip4_addr_p_t dest); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/* Macros to get struct ip_hdr fields: */ +#define IPH_V(hdr) ((hdr)->_v_hl >> 4) +#define IPH_HL(hdr) ((hdr)->_v_hl & 0x0f) +#define IPH_HL_BYTES(hdr) ((u8_t)(IPH_HL(hdr) * 4)) +#define IPH_TOS(hdr) ((hdr)->_tos) +#define IPH_LEN(hdr) ((hdr)->_len) +#define IPH_ID(hdr) ((hdr)->_id) +#define IPH_OFFSET(hdr) ((hdr)->_offset) +#define IPH_OFFSET_BYTES(hdr) ((u16_t)((lwip_ntohs(IPH_OFFSET(hdr)) & IP_OFFMASK) * 8U)) +#define IPH_TTL(hdr) ((hdr)->_ttl) +#define IPH_PROTO(hdr) ((hdr)->_proto) +#define IPH_CHKSUM(hdr) ((hdr)->_chksum) + +/* Macros to set struct ip_hdr fields: */ +#define IPH_VHL_SET(hdr, v, hl) (hdr)->_v_hl = (u8_t)((((v) << 4) | (hl))) +#define IPH_TOS_SET(hdr, tos) (hdr)->_tos = (tos) +#define IPH_LEN_SET(hdr, len) (hdr)->_len = (len) +#define IPH_ID_SET(hdr, id) (hdr)->_id = (id) +#define IPH_OFFSET_SET(hdr, off) (hdr)->_offset = (off) +#define IPH_TTL_SET(hdr, ttl) (hdr)->_ttl = (u8_t)(ttl) +#define IPH_PROTO_SET(hdr, proto) (hdr)->_proto = (u8_t)(proto) +#define IPH_CHKSUM_SET(hdr, chksum) (hdr)->_chksum = (chksum) + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_IP4_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip6.h new file mode 100644 index 000000000..272d6cea3 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/ip6.h @@ -0,0 +1,233 @@ +/** + * @file + * IPv6 protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_IP6_H +#define LWIP_HDR_PROT_IP6_H + +#include "lwip/arch.h" +#include "lwip/ip6_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** This is the packed version of ip6_addr_t, + used in network headers that are itself packed */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip6_addr_packed { + PACK_STRUCT_FIELD(u32_t addr[4]); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +typedef struct ip6_addr_packed ip6_addr_p_t; + +#define IP6_HLEN 40 + +#define IP6_NEXTH_HOPBYHOP 0 +#define IP6_NEXTH_TCP 6 +#define IP6_NEXTH_UDP 17 +#define IP6_NEXTH_ENCAPS 41 +#define IP6_NEXTH_ROUTING 43 +#define IP6_NEXTH_FRAGMENT 44 +#define IP6_NEXTH_ICMP6 58 +#define IP6_NEXTH_NONE 59 +#define IP6_NEXTH_DESTOPTS 60 +#define IP6_NEXTH_UDPLITE 136 + +/** The IPv6 header. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip6_hdr { + /** version / traffic class / flow label */ + PACK_STRUCT_FIELD(u32_t _v_tc_fl); + /** payload length */ + PACK_STRUCT_FIELD(u16_t _plen); + /** next header */ + PACK_STRUCT_FLD_8(u8_t _nexth); + /** hop limit */ + PACK_STRUCT_FLD_8(u8_t _hoplim); + /** source and destination IP addresses */ + PACK_STRUCT_FLD_S(ip6_addr_p_t src); + PACK_STRUCT_FLD_S(ip6_addr_p_t dest); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define IP6H_V(hdr) ((lwip_ntohl((hdr)->_v_tc_fl) >> 28) & 0x0f) +#define IP6H_TC(hdr) ((lwip_ntohl((hdr)->_v_tc_fl) >> 20) & 0xff) +#define IP6H_FL(hdr) (lwip_ntohl((hdr)->_v_tc_fl) & 0x000fffff) +#define IP6H_PLEN(hdr) (lwip_ntohs((hdr)->_plen)) +#define IP6H_NEXTH(hdr) ((hdr)->_nexth) +#define IP6H_NEXTH_P(hdr) ((u8_t *)(hdr) + 6) +#define IP6H_HOPLIM(hdr) ((hdr)->_hoplim) +#define IP6H_VTCFL_SET(hdr, v, tc, fl) (hdr)->_v_tc_fl = (lwip_htonl((((u32_t)(v)) << 28) | (((u32_t)(tc)) << 20) | (fl))) +#define IP6H_PLEN_SET(hdr, plen) (hdr)->_plen = lwip_htons(plen) +#define IP6H_NEXTH_SET(hdr, nexth) (hdr)->_nexth = (nexth) +#define IP6H_HOPLIM_SET(hdr, hl) (hdr)->_hoplim = (u8_t)(hl) + +/* ipv6 extended options header */ +#define IP6_PAD1_OPTION 0 +#define IP6_PADN_OPTION 1 +#define IP6_ROUTER_ALERT_OPTION 5 +#define IP6_JUMBO_OPTION 194 +#define IP6_HOME_ADDRESS_OPTION 201 +#define IP6_ROUTER_ALERT_DLEN 2 +#define IP6_ROUTER_ALERT_VALUE_MLD 0 + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip6_opt_hdr { + /* router alert option type */ + PACK_STRUCT_FLD_8(u8_t _opt_type); + /* router alert option data len */ + PACK_STRUCT_FLD_8(u8_t _opt_dlen); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define IP6_OPT_HLEN 2 +#define IP6_OPT_TYPE_ACTION(hdr) ((((hdr)->_opt_type) >> 6) & 0x3) +#define IP6_OPT_TYPE_CHANGE(hdr) ((((hdr)->_opt_type) >> 5) & 0x1) +#define IP6_OPT_TYPE(hdr) ((hdr)->_opt_type) +#define IP6_OPT_DLEN(hdr) ((hdr)->_opt_dlen) + +/* Hop-by-Hop header. */ +#define IP6_HBH_HLEN 2 + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip6_hbh_hdr { + /* next header */ + PACK_STRUCT_FLD_8(u8_t _nexth); + /* header length in 8-octet units */ + PACK_STRUCT_FLD_8(u8_t _hlen); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define IP6_HBH_NEXTH(hdr) ((hdr)->_nexth) + +/* Destination header. */ +#define IP6_DEST_HLEN 2 + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip6_dest_hdr { + /* next header */ + PACK_STRUCT_FLD_8(u8_t _nexth); + /* header length in 8-octet units */ + PACK_STRUCT_FLD_8(u8_t _hlen); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define IP6_DEST_NEXTH(hdr) ((hdr)->_nexth) + +/* Routing header */ +#define IP6_ROUT_TYPE2 2 +#define IP6_ROUT_RPL 3 + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip6_rout_hdr { + /* next header */ + PACK_STRUCT_FLD_8(u8_t _nexth); + /* reserved */ + PACK_STRUCT_FLD_8(u8_t _hlen); + /* fragment offset */ + PACK_STRUCT_FIELD(u8_t _routing_type); + /* fragmented packet identification */ + PACK_STRUCT_FIELD(u8_t _segments_left); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define IP6_ROUT_NEXTH(hdr) ((hdr)->_nexth) +#define IP6_ROUT_TYPE(hdr) ((hdr)->_routing_type) +#define IP6_ROUT_SEG_LEFT(hdr) ((hdr)->_segments_left) + +/* Fragment header. */ +#define IP6_FRAG_HLEN 8 +#define IP6_FRAG_OFFSET_MASK 0xfff8 +#define IP6_FRAG_MORE_FLAG 0x0001 + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ip6_frag_hdr { + /* next header */ + PACK_STRUCT_FLD_8(u8_t _nexth); + /* reserved */ + PACK_STRUCT_FLD_8(u8_t reserved); + /* fragment offset */ + PACK_STRUCT_FIELD(u16_t _fragment_offset); + /* fragmented packet identification */ + PACK_STRUCT_FIELD(u32_t _identification); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define IP6_FRAG_NEXTH(hdr) ((hdr)->_nexth) +#define IP6_FRAG_MBIT(hdr) (lwip_ntohs((hdr)->_fragment_offset) & 0x1) +#define IP6_FRAG_ID(hdr) (lwip_ntohl((hdr)->_identification)) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_IP6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/mld6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/mld6.h new file mode 100644 index 000000000..27a63bf0e --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/mld6.h @@ -0,0 +1,71 @@ +/** + * @file + * MLD6 protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_MLD6_H +#define LWIP_HDR_PROT_MLD6_H + +#include "lwip/arch.h" +#include "lwip/prot/ip6.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define MLD6_HBH_HLEN 8 +/** Multicast listener report/query/done message header. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct mld_header { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u16_t max_resp_delay); + PACK_STRUCT_FIELD(u16_t reserved); + PACK_STRUCT_FLD_S(ip6_addr_p_t multicast_address); + /* Options follow. */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_MLD6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/nd6.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/nd6.h new file mode 100644 index 000000000..af87e29d9 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/nd6.h @@ -0,0 +1,274 @@ +/** + * @file + * ND6 protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_ND6_H +#define LWIP_HDR_PROT_ND6_H + +#include "lwip/arch.h" +#include "lwip/ip6_addr.h" +#include "lwip/prot/ip6.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** Neighbor solicitation message header. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ns_header { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u32_t reserved); + PACK_STRUCT_FLD_S(ip6_addr_p_t target_address); + /* Options follow. */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Neighbor advertisement message header. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct na_header { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FLD_8(u8_t flags); + PACK_STRUCT_FLD_8(u8_t reserved[3]); + PACK_STRUCT_FLD_S(ip6_addr_p_t target_address); + /* Options follow. */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif +#define ND6_FLAG_ROUTER (0x80) +#define ND6_FLAG_SOLICITED (0x40) +#define ND6_FLAG_OVERRIDE (0x20) + +/** Router solicitation message header. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct rs_header { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u32_t reserved); + /* Options follow. */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Router advertisement message header. */ +#define ND6_RA_FLAG_MANAGED_ADDR_CONFIG (0x80) +#define ND6_RA_FLAG_OTHER_CONFIG (0x40) +#define ND6_RA_FLAG_HOME_AGENT (0x20) +#define ND6_RA_PREFERENCE_MASK (0x18) +#define ND6_RA_PREFERENCE_HIGH (0x08) +#define ND6_RA_PREFERENCE_MEDIUM (0x00) +#define ND6_RA_PREFERENCE_LOW (0x18) +#define ND6_RA_PREFERENCE_DISABLED (0x10) +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct ra_header { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FLD_8(u8_t current_hop_limit); + PACK_STRUCT_FLD_8(u8_t flags); + PACK_STRUCT_FIELD(u16_t router_lifetime); + PACK_STRUCT_FIELD(u32_t reachable_time); + PACK_STRUCT_FIELD(u32_t retrans_timer); + /* Options follow. */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Redirect message header. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct redirect_header { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u32_t reserved); + PACK_STRUCT_FLD_S(ip6_addr_p_t target_address); + PACK_STRUCT_FLD_S(ip6_addr_p_t destination_address); + /* Options follow. */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Link-layer address option. */ +#define ND6_OPTION_TYPE_SOURCE_LLADDR (0x01) +#define ND6_OPTION_TYPE_TARGET_LLADDR (0x02) +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct lladdr_option { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t length); + PACK_STRUCT_FLD_8(u8_t addr[NETIF_MAX_HWADDR_LEN]); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Prefix information option. */ +#define ND6_OPTION_TYPE_PREFIX_INFO (0x03) +#define ND6_PREFIX_FLAG_ON_LINK (0x80) +#define ND6_PREFIX_FLAG_AUTONOMOUS (0x40) +#define ND6_PREFIX_FLAG_ROUTER_ADDRESS (0x20) +#define ND6_PREFIX_FLAG_SITE_PREFIX (0x10) +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct prefix_option { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t length); + PACK_STRUCT_FLD_8(u8_t prefix_length); + PACK_STRUCT_FLD_8(u8_t flags); + PACK_STRUCT_FIELD(u32_t valid_lifetime); + PACK_STRUCT_FIELD(u32_t preferred_lifetime); + PACK_STRUCT_FLD_8(u8_t reserved2[3]); + PACK_STRUCT_FLD_8(u8_t site_prefix_length); + PACK_STRUCT_FLD_S(ip6_addr_p_t prefix); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Redirected header option. */ +#define ND6_OPTION_TYPE_REDIR_HDR (0x04) +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct redirected_header_option { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t length); + PACK_STRUCT_FLD_8(u8_t reserved[6]); + /* Portion of redirected packet follows. */ + /* PACK_STRUCT_FLD_8(u8_t redirected[8]); */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** MTU option. */ +#define ND6_OPTION_TYPE_MTU (0x05) +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct mtu_option { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t length); + PACK_STRUCT_FIELD(u16_t reserved); + PACK_STRUCT_FIELD(u32_t mtu); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Route information option. */ +#define ND6_OPTION_TYPE_ROUTE_INFO (24) +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct route_option { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t length); + PACK_STRUCT_FLD_8(u8_t prefix_length); + PACK_STRUCT_FLD_8(u8_t preference); + PACK_STRUCT_FIELD(u32_t route_lifetime); + PACK_STRUCT_FLD_S(ip6_addr_p_t prefix); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/** Recursive DNS Server Option. */ +#define ND6_OPTION_TYPE_RDNSS (25) +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct rdnss_option { + PACK_STRUCT_FLD_8(u8_t type); + PACK_STRUCT_FLD_8(u8_t length); + PACK_STRUCT_FIELD(u16_t reserved); + PACK_STRUCT_FIELD(u32_t lifetime); + PACK_STRUCT_FLD_S(ip6_addr_p_t rdnss_address[1]); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#define SIZEOF_RDNSS_OPTION_BASE 8 /* size without addresses */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_ND6_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/tcp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/tcp.h new file mode 100644 index 000000000..f5a3dc8c6 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/tcp.h @@ -0,0 +1,100 @@ +/** + * @file + * TCP protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_TCP_H +#define LWIP_HDR_PROT_TCP_H + +#include "lwip/arch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Length of the TCP header, excluding options. */ +#define TCP_HLEN 20 + +/* Fields are (of course) in network byte order. + * Some fields are converted to host byte order in tcp_input(). + */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct tcp_hdr { + PACK_STRUCT_FIELD(u16_t src); + PACK_STRUCT_FIELD(u16_t dest); + PACK_STRUCT_FIELD(u32_t seqno); + PACK_STRUCT_FIELD(u32_t ackno); + PACK_STRUCT_FIELD(u16_t _hdrlen_rsvd_flags); + PACK_STRUCT_FIELD(u16_t wnd); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u16_t urgp); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/* TCP header flags bits */ +#define TCP_FIN 0x01U +#define TCP_SYN 0x02U +#define TCP_RST 0x04U +#define TCP_PSH 0x08U +#define TCP_ACK 0x10U +#define TCP_URG 0x20U +#define TCP_ECE 0x40U +#define TCP_CWR 0x80U +/* Valid TCP header flags */ +#define TCP_FLAGS 0x3fU + +#define TCP_MAX_OPTION_BYTES 40 + +#define TCPH_HDRLEN(phdr) ((u16_t)(lwip_ntohs((phdr)->_hdrlen_rsvd_flags) >> 12)) +#define TCPH_HDRLEN_BYTES(phdr) ((u8_t)(TCPH_HDRLEN(phdr) << 2)) +#define TCPH_FLAGS(phdr) ((u8_t)((lwip_ntohs((phdr)->_hdrlen_rsvd_flags) & TCP_FLAGS))) + +#define TCPH_HDRLEN_SET(phdr, len) (phdr)->_hdrlen_rsvd_flags = lwip_htons(((len) << 12) | TCPH_FLAGS(phdr)) +#define TCPH_FLAGS_SET(phdr, flags) (phdr)->_hdrlen_rsvd_flags = (((phdr)->_hdrlen_rsvd_flags & PP_HTONS(~TCP_FLAGS)) | lwip_htons(flags)) +#define TCPH_HDRLEN_FLAGS_SET(phdr, len, flags) (phdr)->_hdrlen_rsvd_flags = (u16_t)(lwip_htons((u16_t)((len) << 12) | (flags))) + +#define TCPH_SET_FLAG(phdr, flags ) (phdr)->_hdrlen_rsvd_flags = ((phdr)->_hdrlen_rsvd_flags | lwip_htons(flags)) +#define TCPH_UNSET_FLAG(phdr, flags) (phdr)->_hdrlen_rsvd_flags = ((phdr)->_hdrlen_rsvd_flags & ~lwip_htons(flags)) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_TCP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/udp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/udp.h new file mode 100644 index 000000000..4904b7e2e --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/prot/udp.h @@ -0,0 +1,68 @@ +/** + * @file + * UDP protocol definitions + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_PROT_UDP_H +#define LWIP_HDR_PROT_UDP_H + +#include "lwip/arch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define UDP_HLEN 8 + +/* Fields are (of course) in network byte order. */ +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct udp_hdr { + PACK_STRUCT_FIELD(u16_t src); + PACK_STRUCT_FIELD(u16_t dest); /* src/dest UDP ports */ + PACK_STRUCT_FIELD(u16_t len); + PACK_STRUCT_FIELD(u16_t chksum); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_PROT_UDP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/raw.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/raw.h new file mode 100644 index 000000000..1be1273cd --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/raw.h @@ -0,0 +1,143 @@ +/** + * @file + * raw API (to be used from TCPIP thread)\n + * See also @ref raw_raw + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_RAW_H +#define LWIP_HDR_RAW_H + +#include "lwip/opt.h" + +#if LWIP_RAW /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/pbuf.h" +#include "lwip/def.h" +#include "lwip/ip.h" +#include "lwip/ip_addr.h" +#include "lwip/ip6_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define RAW_FLAGS_CONNECTED 0x01U +#define RAW_FLAGS_HDRINCL 0x02U +#define RAW_FLAGS_MULTICAST_LOOP 0x04U + +struct raw_pcb; + +/** Function prototype for raw pcb receive callback functions. + * @param arg user supplied argument (raw_pcb.recv_arg) + * @param pcb the raw_pcb which received data + * @param p the packet buffer that was received + * @param addr the remote IP address from which the packet was received + * @return 1 if the packet was 'eaten' (aka. deleted), + * 0 if the packet lives on + * If returning 1, the callback is responsible for freeing the pbuf + * if it's not used any more. + */ +typedef u8_t (*raw_recv_fn)(void *arg, struct raw_pcb *pcb, struct pbuf *p, + const ip_addr_t *addr); + +/** the RAW protocol control block */ +struct raw_pcb { + /* Common members of all PCB types */ + IP_PCB; + + struct raw_pcb *next; + + u8_t protocol; + u8_t flags; + +#if LWIP_MULTICAST_TX_OPTIONS + /** outgoing network interface for multicast packets, by interface index (if nonzero) */ + u8_t mcast_ifindex; + /** TTL for outgoing multicast packets */ + u8_t mcast_ttl; +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + + /** receive callback function */ + raw_recv_fn recv; + /* user-supplied argument for the recv callback */ + void *recv_arg; +#if LWIP_IPV6 + /* fields for handling checksum computations as per RFC3542. */ + u16_t chksum_offset; + u8_t chksum_reqd; +#endif +}; + +/* The following functions is the application layer interface to the + RAW code. */ +struct raw_pcb * raw_new (u8_t proto); +struct raw_pcb * raw_new_ip_type(u8_t type, u8_t proto); +void raw_remove (struct raw_pcb *pcb); +err_t raw_bind (struct raw_pcb *pcb, const ip_addr_t *ipaddr); +void raw_bind_netif (struct raw_pcb *pcb, const struct netif *netif); +err_t raw_connect (struct raw_pcb *pcb, const ip_addr_t *ipaddr); +void raw_disconnect (struct raw_pcb *pcb); + +err_t raw_sendto (struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *ipaddr); +err_t raw_sendto_if_src(struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, struct netif *netif, const ip_addr_t *src_ip); +err_t raw_send (struct raw_pcb *pcb, struct pbuf *p); + +void raw_recv (struct raw_pcb *pcb, raw_recv_fn recv, void *recv_arg); + +#define raw_flags(pcb) ((pcb)->flags) +#define raw_setflags(pcb,f) ((pcb)->flags = (f)) + +#define raw_set_flags(pcb, set_flags) do { (pcb)->flags = (u8_t)((pcb)->flags | (set_flags)); } while(0) +#define raw_clear_flags(pcb, clr_flags) do { (pcb)->flags = (u8_t)((pcb)->flags & (u8_t)(~(clr_flags) & 0xff)); } while(0) +#define raw_is_flag_set(pcb, flag) (((pcb)->flags & (flag)) != 0) + +#define raw_init() /* Compatibility define, no init needed. */ + +/* for compatibility with older implementation */ +#define raw_new_ip6(proto) raw_new_ip_type(IPADDR_TYPE_V6, proto) + +#if LWIP_MULTICAST_TX_OPTIONS +#define raw_set_multicast_netif_index(pcb, idx) ((pcb)->mcast_ifindex = (idx)) +#define raw_get_multicast_netif_index(pcb) ((pcb)->mcast_ifindex) +#define raw_set_multicast_ttl(pcb, value) ((pcb)->mcast_ttl = (value)) +#define raw_get_multicast_ttl(pcb) ((pcb)->mcast_ttl) +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_RAW */ + +#endif /* LWIP_HDR_RAW_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sio.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sio.h new file mode 100644 index 000000000..efa8adea2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sio.h @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + */ + +/* + * This is the interface to the platform specific serial IO module + * It needs to be implemented by those platforms which need SLIP or PPP + */ + +#ifndef SIO_H +#define SIO_H + +#include "lwip/arch.h" +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* If you want to define sio_fd_t elsewhere or differently, + define this in your cc.h file. */ +#ifndef __sio_fd_t_defined +typedef void * sio_fd_t; +#endif + +/* The following functions can be defined to something else in your cc.h file + or be implemented in your custom sio.c file. */ + +#ifndef sio_open +/** + * Opens a serial device for communication. + * + * @param devnum device number + * @return handle to serial device if successful, NULL otherwise + */ +sio_fd_t sio_open(u8_t devnum); +#endif + +#ifndef sio_send +/** + * Sends a single character to the serial device. + * + * @param c character to send + * @param fd serial device handle + * + * @note This function will block until the character can be sent. + */ +void sio_send(u8_t c, sio_fd_t fd); +#endif + +#ifndef sio_recv +/** + * Receives a single character from the serial device. + * + * @param fd serial device handle + * + * @note This function will block until a character is received. + */ +u8_t sio_recv(sio_fd_t fd); +#endif + +#ifndef sio_read +/** + * Reads from the serial device. + * + * @param fd serial device handle + * @param data pointer to data buffer for receiving + * @param len maximum length (in bytes) of data to receive + * @return number of bytes actually received - may be 0 if aborted by sio_read_abort + * + * @note This function will block until data can be received. The blocking + * can be cancelled by calling sio_read_abort(). + */ +u32_t sio_read(sio_fd_t fd, u8_t *data, u32_t len); +#endif + +#ifndef sio_tryread +/** + * Tries to read from the serial device. Same as sio_read but returns + * immediately if no data is available and never blocks. + * + * @param fd serial device handle + * @param data pointer to data buffer for receiving + * @param len maximum length (in bytes) of data to receive + * @return number of bytes actually received + */ +u32_t sio_tryread(sio_fd_t fd, u8_t *data, u32_t len); +#endif + +#ifndef sio_write +/** + * Writes to the serial device. + * + * @param fd serial device handle + * @param data pointer to data to send + * @param len length (in bytes) of data to send + * @return number of bytes actually sent + * + * @note This function will block until all data can be sent. + */ +u32_t sio_write(sio_fd_t fd, u8_t *data, u32_t len); +#endif + +#ifndef sio_read_abort +/** + * Aborts a blocking sio_read() call. + * + * @param fd serial device handle + */ +void sio_read_abort(sio_fd_t fd); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* SIO_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/snmp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/snmp.h new file mode 100644 index 000000000..80e6e57c2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/snmp.h @@ -0,0 +1,213 @@ +/** + * @file + * SNMP support API for implementing netifs and statitics for MIB2 + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Dirk Ziegelmeier + * + */ +#ifndef LWIP_HDR_SNMP_H +#define LWIP_HDR_SNMP_H + +#include "lwip/opt.h" +#include "lwip/ip_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct udp_pcb; +struct netif; + +/** + * @defgroup netif_mib2 MIB2 statistics + * @ingroup netif + */ + +/* MIB2 statistics functions */ +#if MIB2_STATS /* don't build if not configured for use in lwipopts.h */ +/** + * @ingroup netif_mib2 + * @see RFC1213, "MIB-II, 6. Definitions" + */ +enum snmp_ifType { + snmp_ifType_other=1, /* none of the following */ + snmp_ifType_regular1822, + snmp_ifType_hdh1822, + snmp_ifType_ddn_x25, + snmp_ifType_rfc877_x25, + snmp_ifType_ethernet_csmacd, + snmp_ifType_iso88023_csmacd, + snmp_ifType_iso88024_tokenBus, + snmp_ifType_iso88025_tokenRing, + snmp_ifType_iso88026_man, + snmp_ifType_starLan, + snmp_ifType_proteon_10Mbit, + snmp_ifType_proteon_80Mbit, + snmp_ifType_hyperchannel, + snmp_ifType_fddi, + snmp_ifType_lapb, + snmp_ifType_sdlc, + snmp_ifType_ds1, /* T-1 */ + snmp_ifType_e1, /* european equiv. of T-1 */ + snmp_ifType_basicISDN, + snmp_ifType_primaryISDN, /* proprietary serial */ + snmp_ifType_propPointToPointSerial, + snmp_ifType_ppp, + snmp_ifType_softwareLoopback, + snmp_ifType_eon, /* CLNP over IP [11] */ + snmp_ifType_ethernet_3Mbit, + snmp_ifType_nsip, /* XNS over IP */ + snmp_ifType_slip, /* generic SLIP */ + snmp_ifType_ultra, /* ULTRA technologies */ + snmp_ifType_ds3, /* T-3 */ + snmp_ifType_sip, /* SMDS */ + snmp_ifType_frame_relay +}; + +/** This macro has a precision of ~49 days because sys_now returns u32_t. \#define your own if you want ~490 days. */ +#ifndef MIB2_COPY_SYSUPTIME_TO +#define MIB2_COPY_SYSUPTIME_TO(ptrToVal) (*(ptrToVal) = (sys_now() / 10)) +#endif + +/** + * @ingroup netif_mib2 + * Increment stats member for SNMP MIB2 stats (struct stats_mib2_netif_ctrs) + */ +#define MIB2_STATS_NETIF_INC(n, x) do { ++(n)->mib2_counters.x; } while(0) +/** + * @ingroup netif_mib2 + * Add value to stats member for SNMP MIB2 stats (struct stats_mib2_netif_ctrs) + */ +#define MIB2_STATS_NETIF_ADD(n, x, val) do { (n)->mib2_counters.x += (val); } while(0) + +/** + * @ingroup netif_mib2 + * Init MIB2 statistic counters in netif + * @param netif Netif to init + * @param type one of enum @ref snmp_ifType + * @param speed your link speed here (units: bits per second) + */ +#define MIB2_INIT_NETIF(netif, type, speed) do { \ + (netif)->link_type = (type); \ + (netif)->link_speed = (speed);\ + (netif)->ts = 0; \ + (netif)->mib2_counters.ifinoctets = 0; \ + (netif)->mib2_counters.ifinucastpkts = 0; \ + (netif)->mib2_counters.ifinnucastpkts = 0; \ + (netif)->mib2_counters.ifindiscards = 0; \ + (netif)->mib2_counters.ifinerrors = 0; \ + (netif)->mib2_counters.ifinunknownprotos = 0; \ + (netif)->mib2_counters.ifoutoctets = 0; \ + (netif)->mib2_counters.ifoutucastpkts = 0; \ + (netif)->mib2_counters.ifoutnucastpkts = 0; \ + (netif)->mib2_counters.ifoutdiscards = 0; \ + (netif)->mib2_counters.ifouterrors = 0; } while(0) +#else /* MIB2_STATS */ +#ifndef MIB2_COPY_SYSUPTIME_TO +#define MIB2_COPY_SYSUPTIME_TO(ptrToVal) +#endif +#define MIB2_INIT_NETIF(netif, type, speed) +#define MIB2_STATS_NETIF_INC(n, x) +#define MIB2_STATS_NETIF_ADD(n, x, val) +#endif /* MIB2_STATS */ + +/* LWIP MIB2 callbacks */ +#if LWIP_MIB2_CALLBACKS /* don't build if not configured for use in lwipopts.h */ +/* network interface */ +void mib2_netif_added(struct netif *ni); +void mib2_netif_removed(struct netif *ni); + +#if LWIP_IPV4 && LWIP_ARP +/* ARP (for atTable and ipNetToMediaTable) */ +void mib2_add_arp_entry(struct netif *ni, ip4_addr_t *ip); +void mib2_remove_arp_entry(struct netif *ni, ip4_addr_t *ip); +#else /* LWIP_IPV4 && LWIP_ARP */ +#define mib2_add_arp_entry(ni,ip) +#define mib2_remove_arp_entry(ni,ip) +#endif /* LWIP_IPV4 && LWIP_ARP */ + +/* IP */ +#if LWIP_IPV4 +void mib2_add_ip4(struct netif *ni); +void mib2_remove_ip4(struct netif *ni); +void mib2_add_route_ip4(u8_t dflt, struct netif *ni); +void mib2_remove_route_ip4(u8_t dflt, struct netif *ni); +#endif /* LWIP_IPV4 */ + +/* UDP */ +#if LWIP_UDP +void mib2_udp_bind(struct udp_pcb *pcb); +void mib2_udp_unbind(struct udp_pcb *pcb); +#endif /* LWIP_UDP */ + +#else /* LWIP_MIB2_CALLBACKS */ +/* LWIP_MIB2_CALLBACKS support not available */ +/* define everything to be empty */ + +/* network interface */ +#define mib2_netif_added(ni) +#define mib2_netif_removed(ni) + +/* ARP */ +#define mib2_add_arp_entry(ni,ip) +#define mib2_remove_arp_entry(ni,ip) + +/* IP */ +#define mib2_add_ip4(ni) +#define mib2_remove_ip4(ni) +#define mib2_add_route_ip4(dflt, ni) +#define mib2_remove_route_ip4(dflt, ni) + +/* UDP */ +#define mib2_udp_bind(pcb) +#define mib2_udp_unbind(pcb) +#endif /* LWIP_MIB2_CALLBACKS */ + +/* for source-code compatibility reasons only, can be removed (not used internally) */ +#define NETIF_INIT_SNMP MIB2_INIT_NETIF +#define snmp_add_ifinoctets(ni,value) MIB2_STATS_NETIF_ADD(ni, ifinoctets, value) +#define snmp_inc_ifinucastpkts(ni) MIB2_STATS_NETIF_INC(ni, ifinucastpkts) +#define snmp_inc_ifinnucastpkts(ni) MIB2_STATS_NETIF_INC(ni, ifinnucastpkts) +#define snmp_inc_ifindiscards(ni) MIB2_STATS_NETIF_INC(ni, ifindiscards) +#define snmp_inc_ifinerrors(ni) MIB2_STATS_NETIF_INC(ni, ifinerrors) +#define snmp_inc_ifinunknownprotos(ni) MIB2_STATS_NETIF_INC(ni, ifinunknownprotos) +#define snmp_add_ifoutoctets(ni,value) MIB2_STATS_NETIF_ADD(ni, ifoutoctets, value) +#define snmp_inc_ifoutucastpkts(ni) MIB2_STATS_NETIF_INC(ni, ifoutucastpkts) +#define snmp_inc_ifoutnucastpkts(ni) MIB2_STATS_NETIF_INC(ni, ifoutnucastpkts) +#define snmp_inc_ifoutdiscards(ni) MIB2_STATS_NETIF_INC(ni, ifoutdiscards) +#define snmp_inc_ifouterrors(ni) MIB2_STATS_NETIF_INC(ni, ifouterrors) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_SNMP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sockets.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sockets.h new file mode 100644 index 000000000..4be2bc340 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sockets.h @@ -0,0 +1,688 @@ +/** + * @file + * Socket API (to be used from non-TCPIP threads) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + + +#ifndef LWIP_HDR_SOCKETS_H +#define LWIP_HDR_SOCKETS_H + +#include "lwip/opt.h" + +#if LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/ip_addr.h" +#include "lwip/netif.h" +#include "lwip/err.h" +#include "lwip/inet.h" +#include "lwip/errno.h" + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* If your port already typedef's sa_family_t, define SA_FAMILY_T_DEFINED + to prevent this code from redefining it. */ +#if !defined(sa_family_t) && !defined(SA_FAMILY_T_DEFINED) +typedef u8_t sa_family_t; +#endif +/* If your port already typedef's in_port_t, define IN_PORT_T_DEFINED + to prevent this code from redefining it. */ +#if !defined(in_port_t) && !defined(IN_PORT_T_DEFINED) +typedef u16_t in_port_t; +#endif + +#if LWIP_IPV4 +/* members are in network byte order */ +struct sockaddr_in { + u8_t sin_len; + sa_family_t sin_family; + in_port_t sin_port; + struct in_addr sin_addr; +#define SIN_ZERO_LEN 8 + char sin_zero[SIN_ZERO_LEN]; +}; +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV6 +struct sockaddr_in6 { + u8_t sin6_len; /* length of this structure */ + sa_family_t sin6_family; /* AF_INET6 */ + in_port_t sin6_port; /* Transport layer port # */ + u32_t sin6_flowinfo; /* IPv6 flow information */ + struct in6_addr sin6_addr; /* IPv6 address */ + u32_t sin6_scope_id; /* Set of interfaces for scope */ +}; +#endif /* LWIP_IPV6 */ + +struct sockaddr { + u8_t sa_len; + sa_family_t sa_family; + char sa_data[14]; +}; + +struct sockaddr_storage { + u8_t s2_len; + sa_family_t ss_family; + char s2_data1[2]; + u32_t s2_data2[3]; +#if LWIP_IPV6 + u32_t s2_data3[3]; +#endif /* LWIP_IPV6 */ +}; + +/* If your port already typedef's socklen_t, define SOCKLEN_T_DEFINED + to prevent this code from redefining it. */ +#if !defined(socklen_t) && !defined(SOCKLEN_T_DEFINED) +//typedef u32_t socklen_t; +#endif + +#if !defined IOV_MAX +#define IOV_MAX 0xFFFF +#elif IOV_MAX > 0xFFFF +#error "IOV_MAX larger than supported by LwIP" +#endif /* IOV_MAX */ + +#if !defined(iovec) +struct iovec { + void *iov_base; + size_t iov_len; +}; +#endif + +struct msghdr { + void *msg_name; + socklen_t msg_namelen; + struct iovec *msg_iov; + int msg_iovlen; + void *msg_control; + socklen_t msg_controllen; + int msg_flags; +}; + +/* struct msghdr->msg_flags bit field values */ +#define MSG_TRUNC 0x04 +#define MSG_CTRUNC 0x08 + +/* RFC 3542, Section 20: Ancillary Data */ +struct cmsghdr { + socklen_t cmsg_len; /* number of bytes, including header */ + int cmsg_level; /* originating protocol */ + int cmsg_type; /* protocol-specific type */ +}; +/* Data section follows header and possible padding, typically referred to as + unsigned char cmsg_data[]; */ + +/* cmsg header/data alignment. NOTE: we align to native word size (double word +size on 16-bit arch) so structures are not placed at an unaligned address. +16-bit arch needs double word to ensure 32-bit alignment because socklen_t +could be 32 bits. If we ever have cmsg data with a 64-bit variable, alignment +will need to increase long long */ +#define ALIGN_H(size) (((size) + sizeof(long) - 1U) & ~(sizeof(long)-1U)) +#define ALIGN_D(size) ALIGN_H(size) + +#define CMSG_FIRSTHDR(mhdr) \ + ((mhdr)->msg_controllen >= sizeof(struct cmsghdr) ? \ + (struct cmsghdr *)(mhdr)->msg_control : \ + (struct cmsghdr *)NULL) + +#define CMSG_NXTHDR(mhdr, cmsg) \ + (((cmsg) == NULL) ? CMSG_FIRSTHDR(mhdr) : \ + (((u8_t *)(cmsg) + ALIGN_H((cmsg)->cmsg_len) \ + + ALIGN_D(sizeof(struct cmsghdr)) > \ + (u8_t *)((mhdr)->msg_control) + (mhdr)->msg_controllen) ? \ + (struct cmsghdr *)NULL : \ + (struct cmsghdr *)((void*)((u8_t *)(cmsg) + \ + ALIGN_H((cmsg)->cmsg_len))))) + +#define CMSG_DATA(cmsg) ((void*)((u8_t *)(cmsg) + \ + ALIGN_D(sizeof(struct cmsghdr)))) + +#define CMSG_SPACE(length) (ALIGN_D(sizeof(struct cmsghdr)) + \ + ALIGN_H(length)) + +#define CMSG_LEN(length) (ALIGN_D(sizeof(struct cmsghdr)) + \ + length) + +/* Set socket options argument */ +#define IFNAMSIZ NETIF_NAMESIZE +struct ifreq { + char ifr_name[IFNAMSIZ]; /* Interface name */ +}; + +/* Socket protocol types (TCP/UDP/RAW) */ +#define SOCK_STREAM 1 +#define SOCK_DGRAM 2 +#define SOCK_RAW 3 + +/* + * Option flags per-socket. These must match the SOF_ flags in ip.h (checked in init.c) + */ +#define SO_REUSEADDR 0x0004 /* Allow local address reuse */ +#define SO_KEEPALIVE 0x0008 /* keep connections alive */ +#define SO_BROADCAST 0x0020 /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */ + + +/* + * Additional options, not kept in so_options. + */ +#define SO_DEBUG 0x0001 /* Unimplemented: turn on debugging info recording */ +#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ +#define SO_DONTROUTE 0x0010 /* Unimplemented: just use interface addresses */ +#define SO_USELOOPBACK 0x0040 /* Unimplemented: bypass hardware when possible */ +#define SO_LINGER 0x0080 /* linger on close if data present */ +#define SO_DONTLINGER ((int)(~SO_LINGER)) +#define SO_OOBINLINE 0x0100 /* Unimplemented: leave received OOB data in line */ +#define SO_REUSEPORT 0x0200 /* Unimplemented: allow local address & port reuse */ +#define SO_SNDBUF 0x1001 /* Unimplemented: send buffer size */ +#define SO_RCVBUF 0x1002 /* receive buffer size */ +#define SO_SNDLOWAT 0x1003 /* Unimplemented: send low-water mark */ +#define SO_RCVLOWAT 0x1004 /* Unimplemented: receive low-water mark */ +#define SO_SNDTIMEO 0x1005 /* send timeout */ +#define SO_RCVTIMEO 0x1006 /* receive timeout */ +#define SO_ERROR 0x1007 /* get error status and clear */ +#define SO_TYPE 0x1008 /* get socket type */ +#define SO_CONTIMEO 0x1009 /* Unimplemented: connect timeout */ +#define SO_NO_CHECK 0x100a /* don't create UDP checksum */ +#define SO_BINDTODEVICE 0x100b /* bind to device */ + +/* + * Structure used for manipulating linger option. + */ +struct linger { + int l_onoff; /* option on/off */ + int l_linger; /* linger time in seconds */ +}; + +/* + * Level number for (get/set)sockopt() to apply to socket itself. + */ +#define SOL_SOCKET 0xfff /* options for socket level */ + + +#define AF_UNSPEC 0 +#define AF_INET 2 +#if LWIP_IPV6 +#define AF_INET6 10 +#else /* LWIP_IPV6 */ +#define AF_INET6 AF_UNSPEC +#endif /* LWIP_IPV6 */ +#define PF_INET AF_INET +#define PF_INET6 AF_INET6 +#define PF_UNSPEC AF_UNSPEC + +#define IPPROTO_IP 0 +#define IPPROTO_ICMP 1 +#define IPPROTO_TCP 6 +#define IPPROTO_UDP 17 +#if LWIP_IPV6 +#define IPPROTO_IPV6 41 +#define IPPROTO_ICMPV6 58 +#endif /* LWIP_IPV6 */ +#define IPPROTO_UDPLITE 136 +#define IPPROTO_RAW 255 + +/* Flags we can use with send and recv. */ +#define MSG_PEEK 0x01 /* Peeks at an incoming message */ +#define MSG_WAITALL 0x02 /* Unimplemented: Requests that the function block until the full amount of data requested can be returned */ +#define MSG_OOB 0x04 /* Unimplemented: Requests out-of-band data. The significance and semantics of out-of-band data are protocol-specific */ +#define MSG_DONTWAIT 0x08 /* Nonblocking i/o for this operation only */ +#define MSG_MORE 0x10 /* Sender will send more */ +#define MSG_NOSIGNAL 0x20 /* Uninmplemented: Requests not to send the SIGPIPE signal if an attempt to send is made on a stream-oriented socket that is no longer connected. */ + + +/* + * Options for level IPPROTO_IP + */ +#define IP_TOS 1 +#define IP_TTL 2 +#define IP_PKTINFO 8 + +#if LWIP_TCP +/* + * Options for level IPPROTO_TCP + */ +#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */ +#define TCP_KEEPALIVE 0x02 /* send KEEPALIVE probes when idle for pcb->keep_idle milliseconds */ +#define TCP_KEEPIDLE 0x03 /* set pcb->keep_idle - Same as TCP_KEEPALIVE, but use seconds for get/setsockopt */ +#define TCP_KEEPINTVL 0x04 /* set pcb->keep_intvl - Use seconds for get/setsockopt */ +#define TCP_KEEPCNT 0x05 /* set pcb->keep_cnt - Use number of probes sent for get/setsockopt */ +#endif /* LWIP_TCP */ + +#if LWIP_IPV6 +/* + * Options for level IPPROTO_IPV6 + */ +#define IPV6_CHECKSUM 7 /* RFC3542: calculate and insert the ICMPv6 checksum for raw sockets. */ +#define IPV6_V6ONLY 27 /* RFC3493: boolean control to restrict AF_INET6 sockets to IPv6 communications only. */ +#endif /* LWIP_IPV6 */ + +#if LWIP_UDP && LWIP_UDPLITE +/* + * Options for level IPPROTO_UDPLITE + */ +#define UDPLITE_SEND_CSCOV 0x01 /* sender checksum coverage */ +#define UDPLITE_RECV_CSCOV 0x02 /* minimal receiver checksum coverage */ +#endif /* LWIP_UDP && LWIP_UDPLITE*/ + + +#if LWIP_MULTICAST_TX_OPTIONS +/* + * Options and types for UDP multicast traffic handling + */ +#define IP_MULTICAST_TTL 5 +#define IP_MULTICAST_IF 6 +#define IP_MULTICAST_LOOP 7 +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + +#if LWIP_IGMP +/* + * Options and types related to multicast membership + */ +#define IP_ADD_MEMBERSHIP 3 +#define IP_DROP_MEMBERSHIP 4 + +typedef struct ip_mreq { + struct in_addr imr_multiaddr; /* IP multicast address of group */ + struct in_addr imr_interface; /* local IP address of interface */ +} ip_mreq; +#endif /* LWIP_IGMP */ + +#if LWIP_IPV4 +struct in_pktinfo { + unsigned int ipi_ifindex; /* Interface index */ + struct in_addr ipi_addr; /* Destination (from header) address */ +}; +#endif /* LWIP_IPV4 */ + +#if LWIP_IPV6_MLD +/* + * Options and types related to IPv6 multicast membership + */ +#define IPV6_JOIN_GROUP 12 +#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP +#define IPV6_LEAVE_GROUP 13 +#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP + +typedef struct ipv6_mreq { + struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */ + unsigned int ipv6mr_interface; /* interface index, or 0 */ +} ipv6_mreq; +#endif /* LWIP_IPV6_MLD */ + +/* + * The Type of Service provides an indication of the abstract + * parameters of the quality of service desired. These parameters are + * to be used to guide the selection of the actual service parameters + * when transmitting a datagram through a particular network. Several + * networks offer service precedence, which somehow treats high + * precedence traffic as more important than other traffic (generally + * by accepting only traffic above a certain precedence at time of high + * load). The major choice is a three way tradeoff between low-delay, + * high-reliability, and high-throughput. + * The use of the Delay, Throughput, and Reliability indications may + * increase the cost (in some sense) of the service. In many networks + * better performance for one of these parameters is coupled with worse + * performance on another. Except for very unusual cases at most two + * of these three indications should be set. + */ +#define IPTOS_TOS_MASK 0x1E +#define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK) +#define IPTOS_LOWDELAY 0x10 +#define IPTOS_THROUGHPUT 0x08 +#define IPTOS_RELIABILITY 0x04 +#define IPTOS_LOWCOST 0x02 +#define IPTOS_MINCOST IPTOS_LOWCOST + +/* + * The Network Control precedence designation is intended to be used + * within a network only. The actual use and control of that + * designation is up to each network. The Internetwork Control + * designation is intended for use by gateway control originators only. + * If the actual use of these precedence designations is of concern to + * a particular network, it is the responsibility of that network to + * control the access to, and use of, those precedence designations. + */ +#define IPTOS_PREC_MASK 0xe0 +#define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK) +#define IPTOS_PREC_NETCONTROL 0xe0 +#define IPTOS_PREC_INTERNETCONTROL 0xc0 +#define IPTOS_PREC_CRITIC_ECP 0xa0 +#define IPTOS_PREC_FLASHOVERRIDE 0x80 +#define IPTOS_PREC_FLASH 0x60 +#define IPTOS_PREC_IMMEDIATE 0x40 +#define IPTOS_PREC_PRIORITY 0x20 +#define IPTOS_PREC_ROUTINE 0x00 + + +/* + * Commands for ioctlsocket(), taken from the BSD file fcntl.h. + * lwip_ioctl only supports FIONREAD and FIONBIO, for now + * + * Ioctl's have the command encoded in the lower word, + * and the size of any in or out parameters in the upper + * word. The high 2 bits of the upper word are used + * to encode the in/out status of the parameter; for now + * we restrict parameters to at most 128 bytes. + */ +#if !defined(FIONREAD) || !defined(FIONBIO) +#define IOCPARM_MASK 0x7fU /* parameters must be < 128 bytes */ +#define IOC_VOID 0x20000000UL /* no parameters */ +#define IOC_OUT 0x40000000UL /* copy out parameters */ +#define IOC_IN 0x80000000UL /* copy in parameters */ +#define IOC_INOUT (IOC_IN|IOC_OUT) + /* 0x20000000 distinguishes new & + old ioctl's */ +#define _IO(x,y) ((long)(IOC_VOID|((x)<<8)|(y))) + +#define _IOR(x,y,t) ((long)(IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))) + +#define _IOW(x,y,t) ((long)(IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))) +#endif /* !defined(FIONREAD) || !defined(FIONBIO) */ + +#ifndef FIONREAD +#define FIONREAD _IOR('f', 127, unsigned long) /* get # bytes to read */ +#endif +#ifndef FIONBIO +#define FIONBIO _IOW('f', 126, unsigned long) /* set/clear non-blocking i/o */ +#endif + +/* Socket I/O Controls: unimplemented */ +#ifndef SIOCSHIWAT +#define SIOCSHIWAT _IOW('s', 0, unsigned long) /* set high watermark */ +#define SIOCGHIWAT _IOR('s', 1, unsigned long) /* get high watermark */ +#define SIOCSLOWAT _IOW('s', 2, unsigned long) /* set low watermark */ +#define SIOCGLOWAT _IOR('s', 3, unsigned long) /* get low watermark */ +#define SIOCATMARK _IOR('s', 7, unsigned long) /* at oob mark? */ +#endif + +/* commands for fnctl */ +#ifndef F_GETFL +#define F_GETFL 3 +#endif +#ifndef F_SETFL +#define F_SETFL 4 +#endif + +/* File status flags and file access modes for fnctl, + these are bits in an int. */ +#ifndef O_NONBLOCK +#define O_NONBLOCK 1 /* nonblocking I/O */ +#endif +#ifndef O_NDELAY +#define O_NDELAY O_NONBLOCK /* same as O_NONBLOCK, for compatibility */ +#endif +#ifndef O_RDONLY +#define O_RDONLY 2 +#endif +#ifndef O_WRONLY +#define O_WRONLY 4 +#endif +#ifndef O_RDWR +#define O_RDWR (O_RDONLY|O_WRONLY) +#endif + +#ifndef SHUT_RD + #define SHUT_RD 0 + #define SHUT_WR 1 + #define SHUT_RDWR 2 +#endif + +/* FD_SET used for lwip_select */ +#ifndef FD_SET +#undef FD_SETSIZE +/* Make FD_SETSIZE match NUM_SOCKETS in socket.c */ +#define FD_SETSIZE MEMP_NUM_NETCONN +#define LWIP_SELECT_MAXNFDS (FD_SETSIZE + LWIP_SOCKET_OFFSET) +#define FDSETSAFESET(n, code) do { \ + if (((n) - LWIP_SOCKET_OFFSET < MEMP_NUM_NETCONN) && (((int)(n) - LWIP_SOCKET_OFFSET) >= 0)) { \ + code; }} while(0) +#define FDSETSAFEGET(n, code) (((n) - LWIP_SOCKET_OFFSET < MEMP_NUM_NETCONN) && (((int)(n) - LWIP_SOCKET_OFFSET) >= 0) ?\ + (code) : 0) +#define FD_SET(n, p) FDSETSAFESET(n, (p)->fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] = (u8_t)((p)->fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] | (1 << (((n)-LWIP_SOCKET_OFFSET) & 7)))) +#define FD_CLR(n, p) FDSETSAFESET(n, (p)->fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] = (u8_t)((p)->fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] & ~(1 << (((n)-LWIP_SOCKET_OFFSET) & 7)))) +#define FD_ISSET(n,p) FDSETSAFEGET(n, (p)->fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] & (1 << (((n)-LWIP_SOCKET_OFFSET) & 7))) +#define FD_ZERO(p) memset((void*)(p), 0, sizeof(*(p))) + +typedef struct fd_set +{ + unsigned char fd_bits [(FD_SETSIZE+7)/8]; +} fd_set; + +#elif FD_SETSIZE < (LWIP_SOCKET_OFFSET + MEMP_NUM_NETCONN) +#error "external FD_SETSIZE too small for number of sockets" +#else +#define LWIP_SELECT_MAXNFDS FD_SETSIZE +#endif /* FD_SET */ + +/* poll-related defines and types */ +/* @todo: find a better way to guard the definition of these defines and types if already defined */ +#if !defined(POLLIN) && !defined(POLLOUT) +#define POLLIN 0x1 +#define POLLOUT 0x2 +#define POLLERR 0x4 +#define POLLNVAL 0x8 +/* Below values are unimplemented */ +#define POLLRDNORM 0x10 +#define POLLRDBAND 0x20 +#define POLLPRI 0x40 +#define POLLWRNORM 0x80 +#define POLLWRBAND 0x100 +#define POLLHUP 0x200 +typedef unsigned int nfds_t; +struct pollfd +{ + int fd; + short events; + short revents; +}; +#endif + +/** LWIP_TIMEVAL_PRIVATE: if you want to use the struct timeval provided + * by your system, set this to 0 and include in cc.h */ +#ifndef LWIP_TIMEVAL_PRIVATE +#define LWIP_TIMEVAL_PRIVATE 1 +#endif + +#if LWIP_TIMEVAL_PRIVATE +struct timeval { + long tv_sec; /* seconds */ + long tv_usec; /* and microseconds */ +}; +#endif /* LWIP_TIMEVAL_PRIVATE */ + +#define lwip_socket_init() /* Compatibility define, no init needed. */ +void lwip_socket_thread_init(void); /* LWIP_NETCONN_SEM_PER_THREAD==1: initialize thread-local semaphore */ +void lwip_socket_thread_cleanup(void); /* LWIP_NETCONN_SEM_PER_THREAD==1: destroy thread-local semaphore */ + +#if LWIP_COMPAT_SOCKETS == 2 +/* This helps code parsers/code completion by not having the COMPAT functions as defines */ +#define lwip_accept accept +#define lwip_bind bind +#define lwip_shutdown shutdown +#define lwip_getpeername getpeername +#define lwip_getsockname getsockname +#define lwip_setsockopt setsockopt +#define lwip_getsockopt getsockopt +#define lwip_close closesocket +#define lwip_connect connect +#define lwip_listen listen +#define lwip_recv recv +#define lwip_recvmsg recvmsg +#define lwip_recvfrom recvfrom +#define lwip_send send +#define lwip_sendmsg sendmsg +#define lwip_sendto sendto +#define lwip_socket socket +#if LWIP_SOCKET_SELECT +#define lwip_select select +#endif +#if LWIP_SOCKET_POLL +#define lwip_poll poll +#endif +#define lwip_ioctl ioctlsocket +#define lwip_inet_ntop inet_ntop +#define lwip_inet_pton inet_pton + +#if LWIP_POSIX_SOCKETS_IO_NAMES +#define lwip_read read +#define lwip_readv readv +#define lwip_write write +#define lwip_writev writev +#undef lwip_close +#define lwip_close close +#define closesocket(s) close(s) +int fcntl(int s, int cmd, ...); +#undef lwip_ioctl +#define lwip_ioctl ioctl +#define ioctlsocket ioctl +#endif /* LWIP_POSIX_SOCKETS_IO_NAMES */ +#endif /* LWIP_COMPAT_SOCKETS == 2 */ + +int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen); +int lwip_bind(int s, const struct sockaddr *name, socklen_t namelen); +int lwip_shutdown(int s, int how); +int lwip_getpeername (int s, struct sockaddr *name, socklen_t *namelen); +int lwip_getsockname (int s, struct sockaddr *name, socklen_t *namelen); +int lwip_getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen); +int lwip_setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen); + int lwip_close(int s); +int lwip_connect(int s, const struct sockaddr *name, socklen_t namelen); +int lwip_listen(int s, int backlog); +ssize_t lwip_recv(int s, void *mem, size_t len, int flags); +ssize_t lwip_read(int s, void *mem, size_t len); +ssize_t lwip_readv(int s, const struct iovec *iov, int iovcnt); +ssize_t lwip_recvfrom(int s, void *mem, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen); +ssize_t lwip_recvmsg(int s, struct msghdr *message, int flags); +ssize_t lwip_send(int s, const void *dataptr, size_t size, int flags); +ssize_t lwip_sendmsg(int s, const struct msghdr *message, int flags); +ssize_t lwip_sendto(int s, const void *dataptr, size_t size, int flags, + const struct sockaddr *to, socklen_t tolen); +int lwip_socket(int domain, int type, int protocol); +ssize_t lwip_write(int s, const void *dataptr, size_t size); +ssize_t lwip_writev(int s, const struct iovec *iov, int iovcnt); +#if LWIP_SOCKET_SELECT +int lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, + struct timeval *timeout); +#endif +#if LWIP_SOCKET_POLL +int lwip_poll(struct pollfd *fds, nfds_t nfds, int timeout); +#endif +int lwip_ioctl(int s, long cmd, void *argp); +int lwip_fcntl(int s, int cmd, int val); +const char *lwip_inet_ntop(int af, const void *src, char *dst, socklen_t size); +int lwip_inet_pton(int af, const char *src, void *dst); + +#if LWIP_COMPAT_SOCKETS +#if LWIP_COMPAT_SOCKETS != 2 +/** @ingroup socket */ +#define accept(s,addr,addrlen) lwip_accept(s,addr,addrlen) +/** @ingroup socket */ +#define bind(s,name,namelen) lwip_bind(s,name,namelen) +/** @ingroup socket */ +#define shutdown(s,how) lwip_shutdown(s,how) +/** @ingroup socket */ +#define getpeername(s,name,namelen) lwip_getpeername(s,name,namelen) +/** @ingroup socket */ +#define getsockname(s,name,namelen) lwip_getsockname(s,name,namelen) +/** @ingroup socket */ +#define setsockopt(s,level,optname,opval,optlen) lwip_setsockopt(s,level,optname,opval,optlen) +/** @ingroup socket */ +#define getsockopt(s,level,optname,opval,optlen) lwip_getsockopt(s,level,optname,opval,optlen) +/** @ingroup socket */ +#define closesocket(s) lwip_close(s) +/** @ingroup socket */ +#define connect(s,name,namelen) lwip_connect(s,name,namelen) +/** @ingroup socket */ +#define listen(s,backlog) lwip_listen(s,backlog) +/** @ingroup socket */ +#define recv(s,mem,len,flags) lwip_recv(s,mem,len,flags) +/** @ingroup socket */ +#define recvmsg(s,message,flags) lwip_recvmsg(s,message,flags) +/** @ingroup socket */ +#define recvfrom(s,mem,len,flags,from,fromlen) lwip_recvfrom(s,mem,len,flags,from,fromlen) +/** @ingroup socket */ +#define send(s,dataptr,size,flags) lwip_send(s,dataptr,size,flags) +/** @ingroup socket */ +#define sendmsg(s,message,flags) lwip_sendmsg(s,message,flags) +/** @ingroup socket */ +#define sendto(s,dataptr,size,flags,to,tolen) lwip_sendto(s,dataptr,size,flags,to,tolen) +/** @ingroup socket */ +#define socket(domain,type,protocol) lwip_socket(domain,type,protocol) +#if LWIP_SOCKET_SELECT +/** @ingroup socket */ +#define select(maxfdp1,readset,writeset,exceptset,timeout) lwip_select(maxfdp1,readset,writeset,exceptset,timeout) +#endif +#if LWIP_SOCKET_POLL +/** @ingroup socket */ +#define poll(fds,nfds,timeout) lwip_poll(fds,nfds,timeout) +#endif +/** @ingroup socket */ +#define ioctlsocket(s,cmd,argp) lwip_ioctl(s,cmd,argp) +/** @ingroup socket */ +#define inet_ntop(af,src,dst,size) lwip_inet_ntop(af,src,dst,size) +/** @ingroup socket */ +#define inet_pton(af,src,dst) lwip_inet_pton(af,src,dst) + +#if LWIP_POSIX_SOCKETS_IO_NAMES +/** @ingroup socket */ +#define read(s,mem,len) lwip_read(s,mem,len) +/** @ingroup socket */ +#define readv(s,iov,iovcnt) lwip_readv(s,iov,iovcnt) +/** @ingroup socket */ +#define write(s,dataptr,len) lwip_write(s,dataptr,len) +/** @ingroup socket */ +#define writev(s,iov,iovcnt) lwip_writev(s,iov,iovcnt) +/** @ingroup socket */ +#define close(s) lwip_close(s) +/** @ingroup socket */ +#define fcntl(s,cmd,val) lwip_fcntl(s,cmd,val) +/** @ingroup socket */ +#define ioctl(s,cmd,argp) lwip_ioctl(s,cmd,argp) +#endif /* LWIP_POSIX_SOCKETS_IO_NAMES */ +#endif /* LWIP_COMPAT_SOCKETS != 2 */ + +#endif /* LWIP_COMPAT_SOCKETS */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_SOCKET */ + +#endif /* LWIP_HDR_SOCKETS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/stats.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/stats.h new file mode 100644 index 000000000..1cf4e59d2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/stats.h @@ -0,0 +1,491 @@ +/** + * @file + * Statistics API (to be used from TCPIP thread) + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_STATS_H +#define LWIP_HDR_STATS_H + +#include "lwip/opt.h" + +#include "lwip/mem.h" +#include "lwip/memp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_STATS + +#ifndef LWIP_STATS_LARGE +#define LWIP_STATS_LARGE 0 +#endif + +#if LWIP_STATS_LARGE +#define STAT_COUNTER u32_t +#define STAT_COUNTER_F U32_F +#else +#define STAT_COUNTER u16_t +#define STAT_COUNTER_F U16_F +#endif + +/** Protocol related stats */ +struct stats_proto { + STAT_COUNTER xmit; /* Transmitted packets. */ + STAT_COUNTER recv; /* Received packets. */ + STAT_COUNTER fw; /* Forwarded packets. */ + STAT_COUNTER drop; /* Dropped packets. */ + STAT_COUNTER chkerr; /* Checksum error. */ + STAT_COUNTER lenerr; /* Invalid length error. */ + STAT_COUNTER memerr; /* Out of memory error. */ + STAT_COUNTER rterr; /* Routing error. */ + STAT_COUNTER proterr; /* Protocol error. */ + STAT_COUNTER opterr; /* Error in options. */ + STAT_COUNTER err; /* Misc error. */ + STAT_COUNTER cachehit; +}; + +/** IGMP stats */ +struct stats_igmp { + STAT_COUNTER xmit; /* Transmitted packets. */ + STAT_COUNTER recv; /* Received packets. */ + STAT_COUNTER drop; /* Dropped packets. */ + STAT_COUNTER chkerr; /* Checksum error. */ + STAT_COUNTER lenerr; /* Invalid length error. */ + STAT_COUNTER memerr; /* Out of memory error. */ + STAT_COUNTER proterr; /* Protocol error. */ + STAT_COUNTER rx_v1; /* Received v1 frames. */ + STAT_COUNTER rx_group; /* Received group-specific queries. */ + STAT_COUNTER rx_general; /* Received general queries. */ + STAT_COUNTER rx_report; /* Received reports. */ + STAT_COUNTER tx_join; /* Sent joins. */ + STAT_COUNTER tx_leave; /* Sent leaves. */ + STAT_COUNTER tx_report; /* Sent reports. */ +}; + +/** Memory stats */ +struct stats_mem { +#if defined(LWIP_DEBUG) || LWIP_STATS_DISPLAY + const char *name; +#endif /* defined(LWIP_DEBUG) || LWIP_STATS_DISPLAY */ + STAT_COUNTER err; + mem_size_t avail; + mem_size_t used; + mem_size_t max; + STAT_COUNTER illegal; +}; + +/** System element stats */ +struct stats_syselem { + STAT_COUNTER used; + STAT_COUNTER max; + STAT_COUNTER err; +}; + +/** System stats */ +struct stats_sys { + struct stats_syselem sem; + struct stats_syselem mutex; + struct stats_syselem mbox; +}; + +/** SNMP MIB2 stats */ +struct stats_mib2 { + /* IP */ + u32_t ipinhdrerrors; + u32_t ipinaddrerrors; + u32_t ipinunknownprotos; + u32_t ipindiscards; + u32_t ipindelivers; + u32_t ipoutrequests; + u32_t ipoutdiscards; + u32_t ipoutnoroutes; + u32_t ipreasmoks; + u32_t ipreasmfails; + u32_t ipfragoks; + u32_t ipfragfails; + u32_t ipfragcreates; + u32_t ipreasmreqds; + u32_t ipforwdatagrams; + u32_t ipinreceives; + + /* TCP */ + u32_t tcpactiveopens; + u32_t tcppassiveopens; + u32_t tcpattemptfails; + u32_t tcpestabresets; + u32_t tcpoutsegs; + u32_t tcpretranssegs; + u32_t tcpinsegs; + u32_t tcpinerrs; + u32_t tcpoutrsts; + + /* UDP */ + u32_t udpindatagrams; + u32_t udpnoports; + u32_t udpinerrors; + u32_t udpoutdatagrams; + + /* ICMP */ + u32_t icmpinmsgs; + u32_t icmpinerrors; + u32_t icmpindestunreachs; + u32_t icmpintimeexcds; + u32_t icmpinparmprobs; + u32_t icmpinsrcquenchs; + u32_t icmpinredirects; + u32_t icmpinechos; + u32_t icmpinechoreps; + u32_t icmpintimestamps; + u32_t icmpintimestampreps; + u32_t icmpinaddrmasks; + u32_t icmpinaddrmaskreps; + u32_t icmpoutmsgs; + u32_t icmpouterrors; + u32_t icmpoutdestunreachs; + u32_t icmpouttimeexcds; + u32_t icmpoutechos; /* can be incremented by user application ('ping') */ + u32_t icmpoutechoreps; +}; + +/** + * @ingroup netif_mib2 + * SNMP MIB2 interface stats + */ +struct stats_mib2_netif_ctrs { + /** The total number of octets received on the interface, including framing characters */ + u32_t ifinoctets; + /** The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were + * not addressed to a multicast or broadcast address at this sub-layer */ + u32_t ifinucastpkts; + /** The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were + * addressed to a multicast or broadcast address at this sub-layer */ + u32_t ifinnucastpkts; + /** The number of inbound packets which were chosen to be discarded even though no errors had + * been detected to prevent their being deliverable to a higher-layer protocol. One possible + * reason for discarding such a packet could be to free up buffer space */ + u32_t ifindiscards; + /** For packet-oriented interfaces, the number of inbound packets that contained errors + * preventing them from being deliverable to a higher-layer protocol. For character- + * oriented or fixed-length interfaces, the number of inbound transmission units that + * contained errors preventing them from being deliverable to a higher-layer protocol. */ + u32_t ifinerrors; + /** For packet-oriented interfaces, the number of packets received via the interface which + * were discarded because of an unknown or unsupported protocol. For character-oriented + * or fixed-length interfaces that support protocol multiplexing the number of transmission + * units received via the interface which were discarded because of an unknown or unsupported + * protocol. For any interface that does not support protocol multiplexing, this counter will + * always be 0 */ + u32_t ifinunknownprotos; + /** The total number of octets transmitted out of the interface, including framing characters. */ + u32_t ifoutoctets; + /** The total number of packets that higher-level protocols requested be transmitted, and + * which were not addressed to a multicast or broadcast address at this sub-layer, including + * those that were discarded or not sent. */ + u32_t ifoutucastpkts; + /** The total number of packets that higher-level protocols requested be transmitted, and which + * were addressed to a multicast or broadcast address at this sub-layer, including + * those that were discarded or not sent. */ + u32_t ifoutnucastpkts; + /** The number of outbound packets which were chosen to be discarded even though no errors had + * been detected to prevent their being transmitted. One possible reason for discarding + * such a packet could be to free up buffer space. */ + u32_t ifoutdiscards; + /** For packet-oriented interfaces, the number of outbound packets that could not be transmitted + * because of errors. For character-oriented or fixed-length interfaces, the number of outbound + * transmission units that could not be transmitted because of errors. */ + u32_t ifouterrors; +}; + +/** lwIP stats container */ +struct stats_ { +#if LINK_STATS + /** Link level */ + struct stats_proto link; +#endif +#if ETHARP_STATS + /** ARP */ + struct stats_proto etharp; +#endif +#if IPFRAG_STATS + /** Fragmentation */ + struct stats_proto ip_frag; +#endif +#if IP_STATS + /** IP */ + struct stats_proto ip; +#endif +#if ICMP_STATS + /** ICMP */ + struct stats_proto icmp; +#endif +#if IGMP_STATS + /** IGMP */ + struct stats_igmp igmp; +#endif +#if UDP_STATS + /** UDP */ + struct stats_proto udp; +#endif +#if TCP_STATS + /** TCP */ + struct stats_proto tcp; +#endif +#if MEM_STATS + /** Heap */ + struct stats_mem mem; +#endif +#if MEMP_STATS + /** Internal memory pools */ + struct stats_mem *memp[MEMP_MAX]; +#endif +#if SYS_STATS + /** System */ + struct stats_sys sys; +#endif +#if IP6_STATS + /** IPv6 */ + struct stats_proto ip6; +#endif +#if ICMP6_STATS + /** ICMP6 */ + struct stats_proto icmp6; +#endif +#if IP6_FRAG_STATS + /** IPv6 fragmentation */ + struct stats_proto ip6_frag; +#endif +#if MLD6_STATS + /** Multicast listener discovery */ + struct stats_igmp mld6; +#endif +#if ND6_STATS + /** Neighbor discovery */ + struct stats_proto nd6; +#endif +#if MIB2_STATS + /** SNMP MIB2 */ + struct stats_mib2 mib2; +#endif +}; + +/** Global variable containing lwIP internal statistics. Add this to your debugger's watchlist. */ +extern struct stats_ lwip_stats; + +/** Init statistics */ +void stats_init(void); + +#define STATS_INC(x) ++lwip_stats.x +#define STATS_DEC(x) --lwip_stats.x +#define STATS_INC_USED(x, y, type) do { lwip_stats.x.used = (type)(lwip_stats.x.used + y); \ + if (lwip_stats.x.max < lwip_stats.x.used) { \ + lwip_stats.x.max = lwip_stats.x.used; \ + } \ + } while(0) +#define STATS_GET(x) lwip_stats.x +#else /* LWIP_STATS */ +#define stats_init() +#define STATS_INC(x) +#define STATS_DEC(x) +#define STATS_INC_USED(x, y, type) +#endif /* LWIP_STATS */ + +#if TCP_STATS +#define TCP_STATS_INC(x) STATS_INC(x) +#define TCP_STATS_DISPLAY() stats_display_proto(&lwip_stats.tcp, "TCP") +#else +#define TCP_STATS_INC(x) +#define TCP_STATS_DISPLAY() +#endif + +#if UDP_STATS +#define UDP_STATS_INC(x) STATS_INC(x) +#define UDP_STATS_DISPLAY() stats_display_proto(&lwip_stats.udp, "UDP") +#else +#define UDP_STATS_INC(x) +#define UDP_STATS_DISPLAY() +#endif + +#if ICMP_STATS +#define ICMP_STATS_INC(x) STATS_INC(x) +#define ICMP_STATS_DISPLAY() stats_display_proto(&lwip_stats.icmp, "ICMP") +#else +#define ICMP_STATS_INC(x) +#define ICMP_STATS_DISPLAY() +#endif + +#if IGMP_STATS +#define IGMP_STATS_INC(x) STATS_INC(x) +#define IGMP_STATS_DISPLAY() stats_display_igmp(&lwip_stats.igmp, "IGMP") +#else +#define IGMP_STATS_INC(x) +#define IGMP_STATS_DISPLAY() +#endif + +#if IP_STATS +#define IP_STATS_INC(x) STATS_INC(x) +#define IP_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip, "IP") +#else +#define IP_STATS_INC(x) +#define IP_STATS_DISPLAY() +#endif + +#if IPFRAG_STATS +#define IPFRAG_STATS_INC(x) STATS_INC(x) +#define IPFRAG_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip_frag, "IP_FRAG") +#else +#define IPFRAG_STATS_INC(x) +#define IPFRAG_STATS_DISPLAY() +#endif + +#if ETHARP_STATS +#define ETHARP_STATS_INC(x) STATS_INC(x) +#define ETHARP_STATS_DISPLAY() stats_display_proto(&lwip_stats.etharp, "ETHARP") +#else +#define ETHARP_STATS_INC(x) +#define ETHARP_STATS_DISPLAY() +#endif + +#if LINK_STATS +#define LINK_STATS_INC(x) STATS_INC(x) +#define LINK_STATS_DISPLAY() stats_display_proto(&lwip_stats.link, "LINK") +#else +#define LINK_STATS_INC(x) +#define LINK_STATS_DISPLAY() +#endif + +#if MEM_STATS +#define MEM_STATS_AVAIL(x, y) lwip_stats.mem.x = y +#define MEM_STATS_INC(x) STATS_INC(mem.x) +#define MEM_STATS_INC_USED(x, y) STATS_INC_USED(mem, y, mem_size_t) +#define MEM_STATS_DEC_USED(x, y) lwip_stats.mem.x = (mem_size_t)((lwip_stats.mem.x) - (y)) +#define MEM_STATS_DISPLAY() stats_display_mem(&lwip_stats.mem, "HEAP") +#else +#define MEM_STATS_AVAIL(x, y) +#define MEM_STATS_INC(x) +#define MEM_STATS_INC_USED(x, y) +#define MEM_STATS_DEC_USED(x, y) +#define MEM_STATS_DISPLAY() +#endif + + #if MEMP_STATS +#define MEMP_STATS_DEC(x, i) STATS_DEC(memp[i]->x) +#define MEMP_STATS_DISPLAY(i) stats_display_memp(lwip_stats.memp[i], i) +#define MEMP_STATS_GET(x, i) STATS_GET(memp[i]->x) + #else +#define MEMP_STATS_DEC(x, i) +#define MEMP_STATS_DISPLAY(i) +#define MEMP_STATS_GET(x, i) 0 +#endif + +#if SYS_STATS +#define SYS_STATS_INC(x) STATS_INC(sys.x) +#define SYS_STATS_DEC(x) STATS_DEC(sys.x) +#define SYS_STATS_INC_USED(x) STATS_INC_USED(sys.x, 1, STAT_COUNTER) +#define SYS_STATS_DISPLAY() stats_display_sys(&lwip_stats.sys) +#else +#define SYS_STATS_INC(x) +#define SYS_STATS_DEC(x) +#define SYS_STATS_INC_USED(x) +#define SYS_STATS_DISPLAY() +#endif + +#if IP6_STATS +#define IP6_STATS_INC(x) STATS_INC(x) +#define IP6_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip6, "IPv6") +#else +#define IP6_STATS_INC(x) +#define IP6_STATS_DISPLAY() +#endif + +#if ICMP6_STATS +#define ICMP6_STATS_INC(x) STATS_INC(x) +#define ICMP6_STATS_DISPLAY() stats_display_proto(&lwip_stats.icmp6, "ICMPv6") +#else +#define ICMP6_STATS_INC(x) +#define ICMP6_STATS_DISPLAY() +#endif + +#if IP6_FRAG_STATS +#define IP6_FRAG_STATS_INC(x) STATS_INC(x) +#define IP6_FRAG_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip6_frag, "IPv6 FRAG") +#else +#define IP6_FRAG_STATS_INC(x) +#define IP6_FRAG_STATS_DISPLAY() +#endif + +#if MLD6_STATS +#define MLD6_STATS_INC(x) STATS_INC(x) +#define MLD6_STATS_DISPLAY() stats_display_igmp(&lwip_stats.mld6, "MLDv1") +#else +#define MLD6_STATS_INC(x) +#define MLD6_STATS_DISPLAY() +#endif + +#if ND6_STATS +#define ND6_STATS_INC(x) STATS_INC(x) +#define ND6_STATS_DISPLAY() stats_display_proto(&lwip_stats.nd6, "ND") +#else +#define ND6_STATS_INC(x) +#define ND6_STATS_DISPLAY() +#endif + +#if MIB2_STATS +#define MIB2_STATS_INC(x) STATS_INC(x) +#else +#define MIB2_STATS_INC(x) +#endif + +/* Display of statistics */ +#if LWIP_STATS_DISPLAY +void stats_display(void); +void stats_display_proto(struct stats_proto *proto, const char *name); +void stats_display_igmp(struct stats_igmp *igmp, const char *name); +void stats_display_mem(struct stats_mem *mem, const char *name); +void stats_display_memp(struct stats_mem *mem, int index); +void stats_display_sys(struct stats_sys *sys); +#else /* LWIP_STATS_DISPLAY */ +#define stats_display() +#define stats_display_proto(proto, name) +#define stats_display_igmp(igmp, name) +#define stats_display_mem(mem, name) +#define stats_display_memp(mem, index) +#define stats_display_sys(sys) +#endif /* LWIP_STATS_DISPLAY */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_STATS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sys.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sys.h new file mode 100644 index 000000000..ee0ff54b5 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/sys.h @@ -0,0 +1,560 @@ +/** + * @file + * OS abstraction layer + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + */ + +#ifndef LWIP_HDR_SYS_H +#define LWIP_HDR_SYS_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if NO_SYS + +/* For a totally minimal and standalone system, we provide null + definitions of the sys_ functions. */ +typedef u8_t sys_sem_t; +typedef u8_t sys_mutex_t; +typedef u8_t sys_mbox_t; + +#define sys_sem_new(s, c) ERR_OK +#define sys_sem_signal(s) +#define sys_sem_wait(s) +#define sys_arch_sem_wait(s,t) +#define sys_sem_free(s) +#define sys_sem_valid(s) 0 +#define sys_sem_valid_val(s) 0 +#define sys_sem_set_invalid(s) +#define sys_sem_set_invalid_val(s) +#define sys_mutex_new(mu) ERR_OK +#define sys_mutex_lock(mu) +#define sys_mutex_unlock(mu) +#define sys_mutex_free(mu) +#define sys_mutex_valid(mu) 0 +#define sys_mutex_set_invalid(mu) +#define sys_mbox_new(m, s) ERR_OK +#define sys_mbox_fetch(m,d) +#define sys_mbox_tryfetch(m,d) +#define sys_mbox_post(m,d) +#define sys_mbox_trypost(m,d) +#define sys_mbox_free(m) +#define sys_mbox_valid(m) +#define sys_mbox_valid_val(m) +#define sys_mbox_set_invalid(m) +#define sys_mbox_set_invalid_val(m) + +#define sys_thread_new(n,t,a,s,p) + +#define sys_msleep(t) + +#else /* NO_SYS */ + +/** Return code for timeouts from sys_arch_mbox_fetch and sys_arch_sem_wait */ +#define SYS_ARCH_TIMEOUT 0xffffffffUL + +/** sys_mbox_tryfetch() returns SYS_MBOX_EMPTY if appropriate. + * For now we use the same magic value, but we allow this to change in future. + */ +#define SYS_MBOX_EMPTY SYS_ARCH_TIMEOUT + +#include "lwip/err.h" +#include "arch/sys_arch.h" + +/** Function prototype for thread functions */ +typedef void (*lwip_thread_fn)(void *arg); + +/* Function prototypes for functions to be implemented by platform ports + (in sys_arch.c) */ + +/* Mutex functions: */ + +/** Define LWIP_COMPAT_MUTEX if the port has no mutexes and binary semaphores + should be used instead */ +#ifndef LWIP_COMPAT_MUTEX +#define LWIP_COMPAT_MUTEX 0 +#endif + +#if LWIP_COMPAT_MUTEX +/* for old ports that don't have mutexes: define them to binary semaphores */ +#define sys_mutex_t sys_sem_t +#define sys_mutex_new(mutex) sys_sem_new(mutex, 1) +#define sys_mutex_lock(mutex) sys_sem_wait(mutex) +#define sys_mutex_unlock(mutex) sys_sem_signal(mutex) +#define sys_mutex_free(mutex) sys_sem_free(mutex) +#define sys_mutex_valid(mutex) sys_sem_valid(mutex) +#define sys_mutex_set_invalid(mutex) sys_sem_set_invalid(mutex) + +#else /* LWIP_COMPAT_MUTEX */ + +/** + * @ingroup sys_mutex + * Create a new mutex. + * Note that mutexes are expected to not be taken recursively by the lwIP code, + * so both implementation types (recursive or non-recursive) should work. + * The mutex is allocated to the memory that 'mutex' + * points to (which can be both a pointer or the actual OS structure). + * If the mutex has been created, ERR_OK should be returned. Returning any + * other error will provide a hint what went wrong, but except for assertions, + * no real error handling is implemented. + * + * @param mutex pointer to the mutex to create + * @return ERR_OK if successful, another err_t otherwise + */ +err_t sys_mutex_new(sys_mutex_t *mutex); +/** + * @ingroup sys_mutex + * Blocks the thread until the mutex can be grabbed. + * @param mutex the mutex to lock + */ +void sys_mutex_lock(sys_mutex_t *mutex); +/** + * @ingroup sys_mutex + * Releases the mutex previously locked through 'sys_mutex_lock()'. + * @param mutex the mutex to unlock + */ +void sys_mutex_unlock(sys_mutex_t *mutex); +/** + * @ingroup sys_mutex + * Deallocates a mutex. + * @param mutex the mutex to delete + */ +void sys_mutex_free(sys_mutex_t *mutex); +#ifndef sys_mutex_valid +/** + * @ingroup sys_mutex + * Returns 1 if the mutes is valid, 0 if it is not valid. + * When using pointers, a simple way is to check the pointer for != NULL. + * When directly using OS structures, implementing this may be more complex. + * This may also be a define, in which case the function is not prototyped. + */ +int sys_mutex_valid(sys_mutex_t *mutex); +#endif +#ifndef sys_mutex_set_invalid +/** + * @ingroup sys_mutex + * Invalidate a mutex so that sys_mutex_valid() returns 0. + * ATTENTION: This does NOT mean that the mutex shall be deallocated: + * sys_mutex_free() is always called before calling this function! + * This may also be a define, in which case the function is not prototyped. + */ +void sys_mutex_set_invalid(sys_mutex_t *mutex); +#endif +#endif /* LWIP_COMPAT_MUTEX */ + +/* Semaphore functions: */ + +/** + * @ingroup sys_sem + * Create a new semaphore + * Creates a new semaphore. The semaphore is allocated to the memory that 'sem' + * points to (which can be both a pointer or the actual OS structure). + * The "count" argument specifies the initial state of the semaphore (which is + * either 0 or 1). + * If the semaphore has been created, ERR_OK should be returned. Returning any + * other error will provide a hint what went wrong, but except for assertions, + * no real error handling is implemented. + * + * @param sem pointer to the semaphore to create + * @param count initial count of the semaphore + * @return ERR_OK if successful, another err_t otherwise + */ +err_t sys_sem_new(sys_sem_t *sem, u8_t count); +/** + * @ingroup sys_sem + * Signals a semaphore + * @param sem the semaphore to signal + */ +void sys_sem_signal(sys_sem_t *sem); +/** + * @ingroup sys_sem + * Blocks the thread while waiting for the semaphore to be signaled. If the + * "timeout" argument is non-zero, the thread should only be blocked for the + * specified time (measured in milliseconds). If the "timeout" argument is zero, + * the thread should be blocked until the semaphore is signalled. + * + * The return value is SYS_ARCH_TIMEOUT if the semaphore wasn't signaled within + * the specified time or any other value if it was signaled (with or without + * waiting). + * Notice that lwIP implements a function with a similar name, + * sys_sem_wait(), that uses the sys_arch_sem_wait() function. + * + * @param sem the semaphore to wait for + * @param timeout timeout in milliseconds to wait (0 = wait forever) + * @return SYS_ARCH_TIMEOUT on timeout, any other value on success + */ +u32_t sys_arch_sem_wait(sys_sem_t *sem, u32_t timeout); +/** + * @ingroup sys_sem + * Deallocates a semaphore. + * @param sem semaphore to delete + */ +void sys_sem_free(sys_sem_t *sem); +/** Wait for a semaphore - forever/no timeout */ +#define sys_sem_wait(sem) sys_arch_sem_wait(sem, 0) +#ifndef sys_sem_valid +/** + * @ingroup sys_sem + * Returns 1 if the semaphore is valid, 0 if it is not valid. + * When using pointers, a simple way is to check the pointer for != NULL. + * When directly using OS structures, implementing this may be more complex. + * This may also be a define, in which case the function is not prototyped. + */ +int sys_sem_valid(sys_sem_t *sem); +#endif +#ifndef sys_sem_set_invalid +/** + * @ingroup sys_sem + * Invalidate a semaphore so that sys_sem_valid() returns 0. + * ATTENTION: This does NOT mean that the semaphore shall be deallocated: + * sys_sem_free() is always called before calling this function! + * This may also be a define, in which case the function is not prototyped. + */ +void sys_sem_set_invalid(sys_sem_t *sem); +#endif +#ifndef sys_sem_valid_val +/** + * Same as sys_sem_valid() but taking a value, not a pointer + */ +#define sys_sem_valid_val(sem) sys_sem_valid(&(sem)) +#endif +#ifndef sys_sem_set_invalid_val +/** + * Same as sys_sem_set_invalid() but taking a value, not a pointer + */ +#define sys_sem_set_invalid_val(sem) sys_sem_set_invalid(&(sem)) +#endif + +#ifndef sys_msleep +/** + * @ingroup sys_misc + * Sleep for specified number of ms + */ +void sys_msleep(u32_t ms); /* only has a (close to) 1 ms resolution. */ +#endif + +/* Mailbox functions. */ + +/** + * @ingroup sys_mbox + * Creates an empty mailbox for maximum "size" elements. Elements stored + * in mailboxes are pointers. You have to define macros "_MBOX_SIZE" + * in your lwipopts.h, or ignore this parameter in your implementation + * and use a default size. + * If the mailbox has been created, ERR_OK should be returned. Returning any + * other error will provide a hint what went wrong, but except for assertions, + * no real error handling is implemented. + * + * @param mbox pointer to the mbox to create + * @param size (minimum) number of messages in this mbox + * @return ERR_OK if successful, another err_t otherwise + */ +err_t sys_mbox_new(sys_mbox_t *mbox, int size); +/** + * @ingroup sys_mbox + * Post a message to an mbox - may not fail + * -> blocks if full, only to be used from tasks NOT from ISR! + * + * @param mbox mbox to posts the message + * @param msg message to post (ATTENTION: can be NULL) + */ +void sys_mbox_post(sys_mbox_t *mbox, void *msg); +/** + * @ingroup sys_mbox + * Try to post a message to an mbox - may fail if full. + * Can be used from ISR (if the sys arch layer allows this). + * Returns ERR_MEM if it is full, else, ERR_OK if the "msg" is posted. + * + * @param mbox mbox to posts the message + * @param msg message to post (ATTENTION: can be NULL) + */ +err_t sys_mbox_trypost(sys_mbox_t *mbox, void *msg); +/** + * @ingroup sys_mbox + * Try to post a message to an mbox - may fail if full. + * To be be used from ISR. + * Returns ERR_MEM if it is full, else, ERR_OK if the "msg" is posted. + * + * @param mbox mbox to posts the message + * @param msg message to post (ATTENTION: can be NULL) + */ +err_t sys_mbox_trypost_fromisr(sys_mbox_t *mbox, void *msg); +/** + * @ingroup sys_mbox + * Blocks the thread until a message arrives in the mailbox, but does + * not block the thread longer than "timeout" milliseconds (similar to + * the sys_arch_sem_wait() function). If "timeout" is 0, the thread should + * be blocked until a message arrives. The "msg" argument is a result + * parameter that is set by the function (i.e., by doing "*msg = + * ptr"). The "msg" parameter maybe NULL to indicate that the message + * should be dropped. + * The return values are the same as for the sys_arch_sem_wait() function: + * SYS_ARCH_TIMEOUT if there was a timeout, any other value if a messages + * is received. + * + * Note that a function with a similar name, sys_mbox_fetch(), is + * implemented by lwIP. + * + * @param mbox mbox to get a message from + * @param msg pointer where the message is stored + * @param timeout maximum time (in milliseconds) to wait for a message (0 = wait forever) + * @return SYS_ARCH_TIMEOUT on timeout, any other value if a message has been received + */ +u32_t sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout); +/* Allow port to override with a macro, e.g. special timeout for sys_arch_mbox_fetch() */ +#ifndef sys_arch_mbox_tryfetch +/** + * @ingroup sys_mbox + * This is similar to sys_arch_mbox_fetch, however if a message is not + * present in the mailbox, it immediately returns with the code + * SYS_MBOX_EMPTY. On success 0 is returned. + * To allow for efficient implementations, this can be defined as a + * function-like macro in sys_arch.h instead of a normal function. For + * example, a naive implementation could be: + * \#define sys_arch_mbox_tryfetch(mbox,msg) sys_arch_mbox_fetch(mbox,msg,1) + * although this would introduce unnecessary delays. + * + * @param mbox mbox to get a message from + * @param msg pointer where the message is stored + * @return 0 (milliseconds) if a message has been received + * or SYS_MBOX_EMPTY if the mailbox is empty + */ +u32_t sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg); +#endif +/** + * For now, we map straight to sys_arch implementation. + */ +#define sys_mbox_tryfetch(mbox, msg) sys_arch_mbox_tryfetch(mbox, msg) +/** + * @ingroup sys_mbox + * Deallocates a mailbox. If there are messages still present in the + * mailbox when the mailbox is deallocated, it is an indication of a + * programming error in lwIP and the developer should be notified. + * + * @param mbox mbox to delete + */ +void sys_mbox_free(sys_mbox_t *mbox); +#define sys_mbox_fetch(mbox, msg) sys_arch_mbox_fetch(mbox, msg, 0) +#ifndef sys_mbox_valid +/** + * @ingroup sys_mbox + * Returns 1 if the mailbox is valid, 0 if it is not valid. + * When using pointers, a simple way is to check the pointer for != NULL. + * When directly using OS structures, implementing this may be more complex. + * This may also be a define, in which case the function is not prototyped. + */ +int sys_mbox_valid(sys_mbox_t *mbox); +#endif +#ifndef sys_mbox_set_invalid +/** + * @ingroup sys_mbox + * Invalidate a mailbox so that sys_mbox_valid() returns 0. + * ATTENTION: This does NOT mean that the mailbox shall be deallocated: + * sys_mbox_free() is always called before calling this function! + * This may also be a define, in which case the function is not prototyped. + */ +void sys_mbox_set_invalid(sys_mbox_t *mbox); +#endif +#ifndef sys_mbox_valid_val +/** + * Same as sys_mbox_valid() but taking a value, not a pointer + */ +#define sys_mbox_valid_val(mbox) sys_mbox_valid(&(mbox)) +#endif +#ifndef sys_mbox_set_invalid_val +/** + * Same as sys_mbox_set_invalid() but taking a value, not a pointer + */ +#define sys_mbox_set_invalid_val(mbox) sys_mbox_set_invalid(&(mbox)) +#endif + + +/** + * @ingroup sys_misc + * The only thread function: + * Starts a new thread named "name" with priority "prio" that will begin its + * execution in the function "thread()". The "arg" argument will be passed as an + * argument to the thread() function. The stack size to used for this thread is + * the "stacksize" parameter. The id of the new thread is returned. Both the id + * and the priority are system dependent. + * ATTENTION: although this function returns a value, it MUST NOT FAIL (ports have to assert this!) + * + * @param name human-readable name for the thread (used for debugging purposes) + * @param thread thread-function + * @param arg parameter passed to 'thread' + * @param stacksize stack size in bytes for the new thread (may be ignored by ports) + * @param prio priority of the new thread (may be ignored by ports) */ +sys_thread_t sys_thread_new(const char *name, lwip_thread_fn thread, void *arg, int stacksize, int prio); + +#endif /* NO_SYS */ + +/** + * @ingroup sys_misc + * sys_init() must be called before anything else. + * Initialize the sys_arch layer. + */ +void sys_init(void); + +#ifndef sys_jiffies +/** + * Ticks/jiffies since power up. + */ +u32_t sys_jiffies(void); +#endif + +/** + * @ingroup sys_time + * Returns the current time in milliseconds, + * may be the same as sys_jiffies or at least based on it. + * Don't care for wraparound, this is only used for time diffs. + * Not implementing this function means you cannot use some modules (e.g. TCP + * timestamps, internal timeouts for NO_SYS==1). + */ + u32_t sys_now(); + +/* Critical Region Protection */ +/* These functions must be implemented in the sys_arch.c file. + In some implementations they can provide a more light-weight protection + mechanism than using semaphores. Otherwise semaphores can be used for + implementation */ +#ifndef SYS_ARCH_PROTECT +/** SYS_LIGHTWEIGHT_PROT + * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection + * for certain critical regions during buffer allocation, deallocation and memory + * allocation and deallocation. + */ +#if SYS_LIGHTWEIGHT_PROT + +/** + * @ingroup sys_prot + * SYS_ARCH_DECL_PROTECT + * declare a protection variable. This macro will default to defining a variable of + * type sys_prot_t. If a particular port needs a different implementation, then + * this macro may be defined in sys_arch.h. + */ +#define SYS_ARCH_DECL_PROTECT(lev) sys_prot_t lev +/** + * @ingroup sys_prot + * SYS_ARCH_PROTECT + * Perform a "fast" protect. This could be implemented by + * disabling interrupts for an embedded system or by using a semaphore or + * mutex. The implementation should allow calling SYS_ARCH_PROTECT when + * already protected. The old protection level is returned in the variable + * "lev". This macro will default to calling the sys_arch_protect() function + * which should be implemented in sys_arch.c. If a particular port needs a + * different implementation, then this macro may be defined in sys_arch.h + */ +#define SYS_ARCH_PROTECT(lev) lev = sys_arch_protect() +/** + * @ingroup sys_prot + * SYS_ARCH_UNPROTECT + * Perform a "fast" set of the protection level to "lev". This could be + * implemented by setting the interrupt level to "lev" within the MACRO or by + * using a semaphore or mutex. This macro will default to calling the + * sys_arch_unprotect() function which should be implemented in + * sys_arch.c. If a particular port needs a different implementation, then + * this macro may be defined in sys_arch.h + */ +#define SYS_ARCH_UNPROTECT(lev) sys_arch_unprotect(lev) +sys_prot_t sys_arch_protect(void); +void sys_arch_unprotect(sys_prot_t pval); + +#else + +#define SYS_ARCH_DECL_PROTECT(lev) +#define SYS_ARCH_PROTECT(lev) +#define SYS_ARCH_UNPROTECT(lev) + +#endif /* SYS_LIGHTWEIGHT_PROT */ + +#endif /* SYS_ARCH_PROTECT */ + +/* + * Macros to set/get and increase/decrease variables in a thread-safe way. + * Use these for accessing variable that are used from more than one thread. + */ + +#ifndef SYS_ARCH_INC +#define SYS_ARCH_INC(var, val) do { \ + SYS_ARCH_DECL_PROTECT(old_level); \ + SYS_ARCH_PROTECT(old_level); \ + var += val; \ + SYS_ARCH_UNPROTECT(old_level); \ + } while(0) +#endif /* SYS_ARCH_INC */ + +#ifndef SYS_ARCH_DEC +#define SYS_ARCH_DEC(var, val) do { \ + SYS_ARCH_DECL_PROTECT(old_level); \ + SYS_ARCH_PROTECT(old_level); \ + var -= val; \ + SYS_ARCH_UNPROTECT(old_level); \ + } while(0) +#endif /* SYS_ARCH_DEC */ + +#ifndef SYS_ARCH_GET +#define SYS_ARCH_GET(var, ret) do { \ + SYS_ARCH_DECL_PROTECT(old_level); \ + SYS_ARCH_PROTECT(old_level); \ + ret = var; \ + SYS_ARCH_UNPROTECT(old_level); \ + } while(0) +#endif /* SYS_ARCH_GET */ + +#ifndef SYS_ARCH_SET +#define SYS_ARCH_SET(var, val) do { \ + SYS_ARCH_DECL_PROTECT(old_level); \ + SYS_ARCH_PROTECT(old_level); \ + var = val; \ + SYS_ARCH_UNPROTECT(old_level); \ + } while(0) +#endif /* SYS_ARCH_SET */ + +#ifndef SYS_ARCH_LOCKED +#define SYS_ARCH_LOCKED(code) do { \ + SYS_ARCH_DECL_PROTECT(old_level); \ + SYS_ARCH_PROTECT(old_level); \ + code; \ + SYS_ARCH_UNPROTECT(old_level); \ + } while(0) +#endif /* SYS_ARCH_LOCKED */ + + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_SYS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcp.h new file mode 100644 index 000000000..8c9ba98c2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcp.h @@ -0,0 +1,500 @@ +/** + * @file + * TCP API (to be used from TCPIP thread)\n + * See also @ref tcp_raw + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_TCP_H +#define LWIP_HDR_TCP_H + +#include "lwip/opt.h" + +#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/tcpbase.h" +#include "lwip/mem.h" +#include "lwip/pbuf.h" +#include "lwip/ip.h" +#include "lwip/icmp.h" +#include "lwip/err.h" +#include "lwip/ip6.h" +#include "lwip/ip6_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct tcp_pcb; +struct tcp_pcb_listen; + +/** Function prototype for tcp accept callback functions. Called when a new + * connection can be accepted on a listening pcb. + * + * @param arg Additional argument to pass to the callback function (@see tcp_arg()) + * @param newpcb The new connection pcb + * @param err An error code if there has been an error accepting. + * Only return ERR_ABRT if you have called tcp_abort from within the + * callback function! + */ +typedef err_t (*tcp_accept_fn)(void *arg, struct tcp_pcb *newpcb, err_t err); + +/** Function prototype for tcp receive callback functions. Called when data has + * been received. + * + * @param arg Additional argument to pass to the callback function (@see tcp_arg()) + * @param tpcb The connection pcb which received data + * @param p The received data (or NULL when the connection has been closed!) + * @param err An error code if there has been an error receiving + * Only return ERR_ABRT if you have called tcp_abort from within the + * callback function! + */ +typedef err_t (*tcp_recv_fn)(void *arg, struct tcp_pcb *tpcb, + struct pbuf *p, err_t err); + +/** Function prototype for tcp sent callback functions. Called when sent data has + * been acknowledged by the remote side. Use it to free corresponding resources. + * This also means that the pcb has now space available to send new data. + * + * @param arg Additional argument to pass to the callback function (@see tcp_arg()) + * @param tpcb The connection pcb for which data has been acknowledged + * @param len The amount of bytes acknowledged + * @return ERR_OK: try to send some data by calling tcp_output + * Only return ERR_ABRT if you have called tcp_abort from within the + * callback function! + */ +typedef err_t (*tcp_sent_fn)(void *arg, struct tcp_pcb *tpcb, + u16_t len); + +/** Function prototype for tcp poll callback functions. Called periodically as + * specified by @see tcp_poll. + * + * @param arg Additional argument to pass to the callback function (@see tcp_arg()) + * @param tpcb tcp pcb + * @return ERR_OK: try to send some data by calling tcp_output + * Only return ERR_ABRT if you have called tcp_abort from within the + * callback function! + */ +typedef err_t (*tcp_poll_fn)(void *arg, struct tcp_pcb *tpcb); + +/** Function prototype for tcp error callback functions. Called when the pcb + * receives a RST or is unexpectedly closed for any other reason. + * + * @note The corresponding pcb is already freed when this callback is called! + * + * @param arg Additional argument to pass to the callback function (@see tcp_arg()) + * @param err Error code to indicate why the pcb has been closed + * ERR_ABRT: aborted through tcp_abort or by a TCP timer + * ERR_RST: the connection was reset by the remote host + */ +typedef void (*tcp_err_fn)(void *arg, err_t err); + +/** Function prototype for tcp connected callback functions. Called when a pcb + * is connected to the remote side after initiating a connection attempt by + * calling tcp_connect(). + * + * @param arg Additional argument to pass to the callback function (@see tcp_arg()) + * @param tpcb The connection pcb which is connected + * @param err An unused error code, always ERR_OK currently ;-) @todo! + * Only return ERR_ABRT if you have called tcp_abort from within the + * callback function! + * + * @note When a connection attempt fails, the error callback is currently called! + */ +typedef err_t (*tcp_connected_fn)(void *arg, struct tcp_pcb *tpcb, err_t err); + +#if LWIP_WND_SCALE +#define RCV_WND_SCALE(pcb, wnd) (((wnd) >> (pcb)->rcv_scale)) +#define SND_WND_SCALE(pcb, wnd) (((wnd) << (pcb)->snd_scale)) +#define TCPWND16(x) ((u16_t)LWIP_MIN((x), 0xFFFF)) +#define TCP_WND_MAX(pcb) ((tcpwnd_size_t)(((pcb)->flags & TF_WND_SCALE) ? TCP_WND : TCPWND16(TCP_WND))) +#else +#define RCV_WND_SCALE(pcb, wnd) (wnd) +#define SND_WND_SCALE(pcb, wnd) (wnd) +#define TCPWND16(x) (x) +#define TCP_WND_MAX(pcb) TCP_WND +#endif +/* Increments a tcpwnd_size_t and holds at max value rather than rollover */ +#define TCP_WND_INC(wnd, inc) do { \ + if ((tcpwnd_size_t)(wnd + inc) >= wnd) { \ + wnd = (tcpwnd_size_t)(wnd + inc); \ + } else { \ + wnd = (tcpwnd_size_t)-1; \ + } \ + } while(0) + +#if LWIP_TCP_SACK_OUT +/** SACK ranges to include in ACK packets. + * SACK entry is invalid if left==right. */ +struct tcp_sack_range { + /** Left edge of the SACK: the first acknowledged sequence number. */ + u32_t left; + /** Right edge of the SACK: the last acknowledged sequence number +1 (so first NOT acknowledged). */ + u32_t right; +}; +#endif /* LWIP_TCP_SACK_OUT */ + +/** Function prototype for deallocation of arguments. Called *just before* the + * pcb is freed, so don't expect to be able to do anything with this pcb! + * + * @param id ext arg id (allocated via @ref tcp_ext_arg_alloc_id) + * @param data pointer to the data (set via @ref tcp_ext_arg_set before) + */ +typedef void (*tcp_extarg_callback_pcb_destroyed_fn)(u8_t id, void *data); + +/** Function prototype to transition arguments from a listening pcb to an accepted pcb + * + * @param id ext arg id (allocated via @ref tcp_ext_arg_alloc_id) + * @param lpcb the listening pcb accepting a connection + * @param cpcb the newly allocated connection pcb + * @return ERR_OK if OK, any error if connection should be dropped + */ +typedef err_t (*tcp_extarg_callback_passive_open_fn)(u8_t id, struct tcp_pcb_listen *lpcb, struct tcp_pcb *cpcb); + +/** A table of callback functions that is invoked for ext arguments */ +struct tcp_ext_arg_callbacks { + /** @ref tcp_extarg_callback_pcb_destroyed_fn */ + tcp_extarg_callback_pcb_destroyed_fn destroy; + /** @ref tcp_extarg_callback_passive_open_fn */ + tcp_extarg_callback_passive_open_fn passive_open; +}; + +#define LWIP_TCP_PCB_NUM_EXT_ARG_ID_INVALID 0xFF + +#if LWIP_TCP_PCB_NUM_EXT_ARGS +/* This is the structure for ext args in tcp pcbs (used as array) */ +struct tcp_pcb_ext_args { + const struct tcp_ext_arg_callbacks *callbacks; + void *data; +}; +/* This is a helper define to prevent zero size arrays if disabled */ +#define TCP_PCB_EXTARGS struct tcp_pcb_ext_args ext_args[LWIP_TCP_PCB_NUM_EXT_ARGS]; +#else +#define TCP_PCB_EXTARGS +#endif + +typedef u16_t tcpflags_t; +#define TCP_ALLFLAGS 0xffffU + +/** + * members common to struct tcp_pcb and struct tcp_listen_pcb + */ +#define TCP_PCB_COMMON(type) \ + type *next; /* for the linked list */ \ + void *callback_arg; \ + TCP_PCB_EXTARGS \ + enum tcp_state state; /* TCP state */ \ + u8_t prio; \ + /* ports are in host byte order */ \ + u16_t local_port + + +/** the TCP protocol control block for listening pcbs */ +struct tcp_pcb_listen { +/** Common members of all PCB types */ + IP_PCB; +/** Protocol specific PCB members */ + TCP_PCB_COMMON(struct tcp_pcb_listen); + +#if LWIP_CALLBACK_API + /* Function to call when a listener has been connected. */ + tcp_accept_fn accept; +#endif /* LWIP_CALLBACK_API */ + +#if TCP_LISTEN_BACKLOG + u8_t backlog; + u8_t accepts_pending; +#endif /* TCP_LISTEN_BACKLOG */ +}; + + +/** the TCP protocol control block */ +struct tcp_pcb { +/** common PCB members */ + IP_PCB; +/** protocol specific PCB members */ + TCP_PCB_COMMON(struct tcp_pcb); + + /* ports are in host byte order */ + u16_t remote_port; + + tcpflags_t flags; +#define TF_ACK_DELAY 0x01U /* Delayed ACK. */ +#define TF_ACK_NOW 0x02U /* Immediate ACK. */ +#define TF_INFR 0x04U /* In fast recovery. */ +#define TF_CLOSEPEND 0x08U /* If this is set, tcp_close failed to enqueue the FIN (retried in tcp_tmr) */ +#define TF_RXCLOSED 0x10U /* rx closed by tcp_shutdown */ +#define TF_FIN 0x20U /* Connection was closed locally (FIN segment enqueued). */ +#define TF_NODELAY 0x40U /* Disable Nagle algorithm */ +#define TF_NAGLEMEMERR 0x80U /* nagle enabled, memerr, try to output to prevent delayed ACK to happen */ +#if LWIP_WND_SCALE +#define TF_WND_SCALE 0x0100U /* Window Scale option enabled */ +#endif +#if TCP_LISTEN_BACKLOG +#define TF_BACKLOGPEND 0x0200U /* If this is set, a connection pcb has increased the backlog on its listener */ +#endif +#if LWIP_TCP_TIMESTAMPS +#define TF_TIMESTAMP 0x0400U /* Timestamp option enabled */ +#endif +#define TF_RTO 0x0800U /* RTO timer has fired, in-flight data moved to unsent and being retransmitted */ +#if LWIP_TCP_SACK_OUT +#define TF_SACK 0x1000U /* Selective ACKs enabled */ +#endif + + /* the rest of the fields are in host byte order + as we have to do some math with them */ + + /* Timers */ + u8_t polltmr, pollinterval; + u8_t last_timer; + u32_t tmr; + + /* receiver variables */ + u32_t rcv_nxt; /* next seqno expected */ + tcpwnd_size_t rcv_wnd; /* receiver window available */ + tcpwnd_size_t rcv_ann_wnd; /* receiver window to announce */ + u32_t rcv_ann_right_edge; /* announced right edge of window */ + +#if LWIP_TCP_SACK_OUT + /* SACK ranges to include in ACK packets (entry is invalid if left==right) */ + struct tcp_sack_range rcv_sacks[LWIP_TCP_MAX_SACK_NUM]; +#define LWIP_TCP_SACK_VALID(pcb, idx) ((pcb)->rcv_sacks[idx].left != (pcb)->rcv_sacks[idx].right) +#endif /* LWIP_TCP_SACK_OUT */ + + /* Retransmission timer. */ + s16_t rtime; + + u16_t mss; /* maximum segment size */ + + /* RTT (round trip time) estimation variables */ + u32_t rttest; /* RTT estimate in 500ms ticks */ + u32_t rtseq; /* sequence number being timed */ + s16_t sa, sv; /* @see "Congestion Avoidance and Control" by Van Jacobson and Karels */ + + s16_t rto; /* retransmission time-out (in ticks of TCP_SLOW_INTERVAL) */ + u8_t nrtx; /* number of retransmissions */ + + /* fast retransmit/recovery */ + u8_t dupacks; + u32_t lastack; /* Highest acknowledged seqno. */ + + /* congestion avoidance/control variables */ + tcpwnd_size_t cwnd; + tcpwnd_size_t ssthresh; + + /* first byte following last rto byte */ + u32_t rto_end; + + /* sender variables */ + u32_t snd_nxt; /* next new seqno to be sent */ + u32_t snd_wl1, snd_wl2; /* Sequence and acknowledgement numbers of last + window update. */ + u32_t snd_lbb; /* Sequence number of next byte to be buffered. */ + tcpwnd_size_t snd_wnd; /* sender window */ + tcpwnd_size_t snd_wnd_max; /* the maximum sender window announced by the remote host */ + + tcpwnd_size_t snd_buf; /* Available buffer space for sending (in bytes). */ +#define TCP_SNDQUEUELEN_OVERFLOW (0xffffU-3) + u16_t snd_queuelen; /* Number of pbufs currently in the send buffer. */ + +#if TCP_OVERSIZE + /* Extra bytes available at the end of the last pbuf in unsent. */ + u16_t unsent_oversize; +#endif /* TCP_OVERSIZE */ + + tcpwnd_size_t bytes_acked; + + /* These are ordered by sequence number: */ + struct tcp_seg *unsent; /* Unsent (queued) segments. */ + struct tcp_seg *unacked; /* Sent but unacknowledged segments. */ +#if TCP_QUEUE_OOSEQ + struct tcp_seg *ooseq; /* Received out of sequence segments. */ +#endif /* TCP_QUEUE_OOSEQ */ + + struct pbuf *refused_data; /* Data previously received but not yet taken by upper layer */ + +#if LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG + struct tcp_pcb_listen* listener; +#endif /* LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG */ + +#if LWIP_CALLBACK_API + /* Function to be called when more send buffer space is available. */ + tcp_sent_fn sent; + /* Function to be called when (in-sequence) data has arrived. */ + tcp_recv_fn recv; + /* Function to be called when a connection has been set up. */ + tcp_connected_fn connected; + /* Function which is called periodically. */ + tcp_poll_fn poll; + /* Function to be called whenever a fatal error occurs. */ + tcp_err_fn errf; +#endif /* LWIP_CALLBACK_API */ + +#if LWIP_TCP_TIMESTAMPS + u32_t ts_lastacksent; + u32_t ts_recent; +#endif /* LWIP_TCP_TIMESTAMPS */ + + /* idle time before KEEPALIVE is sent */ + u32_t keep_idle; +#if LWIP_TCP_KEEPALIVE + u32_t keep_intvl; + u32_t keep_cnt; +#endif /* LWIP_TCP_KEEPALIVE */ + + /* Persist timer counter */ + u8_t persist_cnt; + /* Persist timer back-off */ + u8_t persist_backoff; + /* Number of persist probes */ + u8_t persist_probe; + + /* KEEPALIVE counter */ + u8_t keep_cnt_sent; + +#if LWIP_WND_SCALE + u8_t snd_scale; + u8_t rcv_scale; +#endif +}; + +#if LWIP_EVENT_API + +enum lwip_event { + LWIP_EVENT_ACCEPT, + LWIP_EVENT_SENT, + LWIP_EVENT_RECV, + LWIP_EVENT_CONNECTED, + LWIP_EVENT_POLL, + LWIP_EVENT_ERR +}; + +err_t lwip_tcp_event(void *arg, struct tcp_pcb *pcb, + enum lwip_event, + struct pbuf *p, + u16_t size, + err_t err); + +#endif /* LWIP_EVENT_API */ + +/* Application program's interface: */ +struct tcp_pcb * tcp_new (void); +struct tcp_pcb * tcp_new_ip_type (u8_t type); + +void tcp_arg (struct tcp_pcb *pcb, void *arg); +#if LWIP_CALLBACK_API +void tcp_recv (struct tcp_pcb *pcb, tcp_recv_fn recv); +void tcp_sent (struct tcp_pcb *pcb, tcp_sent_fn sent); +void tcp_err (struct tcp_pcb *pcb, tcp_err_fn err); +void tcp_accept (struct tcp_pcb *pcb, tcp_accept_fn accept); +#endif /* LWIP_CALLBACK_API */ +void tcp_poll (struct tcp_pcb *pcb, tcp_poll_fn poll, u8_t interval); + +#define tcp_set_flags(pcb, set_flags) do { (pcb)->flags = (tcpflags_t)((pcb)->flags | (set_flags)); } while(0) +#define tcp_clear_flags(pcb, clr_flags) do { (pcb)->flags = (tcpflags_t)((pcb)->flags & (tcpflags_t)(~(clr_flags) & TCP_ALLFLAGS)); } while(0) +#define tcp_is_flag_set(pcb, flag) (((pcb)->flags & (flag)) != 0) + +#if LWIP_TCP_TIMESTAMPS +#define tcp_mss(pcb) (((pcb)->flags & TF_TIMESTAMP) ? ((pcb)->mss - 12) : (pcb)->mss) +#else /* LWIP_TCP_TIMESTAMPS */ +/** @ingroup tcp_raw */ +#define tcp_mss(pcb) ((pcb)->mss) +#endif /* LWIP_TCP_TIMESTAMPS */ +/** @ingroup tcp_raw */ +#define tcp_sndbuf(pcb) (TCPWND16((pcb)->snd_buf)) +/** @ingroup tcp_raw */ +#define tcp_sndqueuelen(pcb) ((pcb)->snd_queuelen) +/** @ingroup tcp_raw */ +#define tcp_nagle_disable(pcb) tcp_set_flags(pcb, TF_NODELAY) +/** @ingroup tcp_raw */ +#define tcp_nagle_enable(pcb) tcp_clear_flags(pcb, TF_NODELAY) +/** @ingroup tcp_raw */ +#define tcp_nagle_disabled(pcb) tcp_is_flag_set(pcb, TF_NODELAY) + +#if TCP_LISTEN_BACKLOG +#define tcp_backlog_set(pcb, new_backlog) do { \ + LWIP_ASSERT("pcb->state == LISTEN (called for wrong pcb?)", (pcb)->state == LISTEN); \ + ((struct tcp_pcb_listen *)(pcb))->backlog = ((new_backlog) ? (new_backlog) : 1); } while(0) +void tcp_backlog_delayed(struct tcp_pcb* pcb); +void tcp_backlog_accepted(struct tcp_pcb* pcb); +#else /* TCP_LISTEN_BACKLOG */ +#define tcp_backlog_set(pcb, new_backlog) +#define tcp_backlog_delayed(pcb) +#define tcp_backlog_accepted(pcb) +#endif /* TCP_LISTEN_BACKLOG */ +#define tcp_accepted(pcb) do { LWIP_UNUSED_ARG(pcb); } while(0) /* compatibility define, not needed any more */ + +void tcp_recved (struct tcp_pcb *pcb, u16_t len); +err_t tcp_bind (struct tcp_pcb *pcb, const ip_addr_t *ipaddr, + u16_t port); +void tcp_bind_netif(struct tcp_pcb *pcb, const struct netif *netif); +err_t tcp_connect (struct tcp_pcb *pcb, const ip_addr_t *ipaddr, + u16_t port, tcp_connected_fn connected); + +struct tcp_pcb * tcp_listen_with_backlog_and_err(struct tcp_pcb *pcb, u8_t backlog, err_t *err); +struct tcp_pcb * tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog); +/** @ingroup tcp_raw */ +#define tcp_listen(pcb) tcp_listen_with_backlog(pcb, TCP_DEFAULT_LISTEN_BACKLOG) + +void tcp_abort (struct tcp_pcb *pcb); +err_t tcp_close (struct tcp_pcb *pcb); +err_t tcp_shutdown(struct tcp_pcb *pcb, int shut_rx, int shut_tx); + +err_t tcp_write (struct tcp_pcb *pcb, const void *dataptr, u16_t len, + u8_t apiflags); + +void tcp_setprio (struct tcp_pcb *pcb, u8_t prio); + +err_t tcp_output (struct tcp_pcb *pcb); + +err_t tcp_tcp_get_tcp_addrinfo(struct tcp_pcb *pcb, int local, ip_addr_t *addr, u16_t *port); + +#define tcp_dbg_get_tcp_state(pcb) ((pcb)->state) + +/* for compatibility with older implementation */ +#define tcp_new_ip6() tcp_new_ip_type(IPADDR_TYPE_V6) + +#if LWIP_TCP_PCB_NUM_EXT_ARGS +u8_t tcp_ext_arg_alloc_id(void); +void tcp_ext_arg_set_callbacks(struct tcp_pcb *pcb, uint8_t id, const struct tcp_ext_arg_callbacks * const callbacks); +void tcp_ext_arg_set(struct tcp_pcb *pcb, uint8_t id, void *arg); +void *tcp_ext_arg_get(const struct tcp_pcb *pcb, uint8_t id); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_TCP */ + +#endif /* LWIP_HDR_TCP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcpbase.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcpbase.h new file mode 100644 index 000000000..6614b8077 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcpbase.h @@ -0,0 +1,88 @@ +/** + * @file + * Base TCP API definitions shared by TCP and ALTCP\n + * See also @ref tcp_raw + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_TCPBASE_H +#define LWIP_HDR_TCPBASE_H + +#include "lwip/opt.h" + +#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ + +#ifdef __cplusplus +extern "C" { +#endif + + +#if LWIP_WND_SCALE +typedef u32_t tcpwnd_size_t; +#else +typedef u16_t tcpwnd_size_t; +#endif + +enum tcp_state { + CLOSED = 0, + LISTEN = 1, + SYN_SENT = 2, + SYN_RCVD = 3, + ESTABLISHED = 4, + FIN_WAIT_1 = 5, + FIN_WAIT_2 = 6, + CLOSE_WAIT = 7, + CLOSING = 8, + LAST_ACK = 9, + TIME_WAIT = 10 +}; +/* ATTENTION: this depends on state number ordering! */ +#define TCP_STATE_IS_CLOSING(state) ((state) >= FIN_WAIT_1) + +/* Flags for "apiflags" parameter in tcp_write */ +#define TCP_WRITE_FLAG_COPY 0x01 +#define TCP_WRITE_FLAG_MORE 0x02 + +#define TCP_PRIO_MIN 1 +#define TCP_PRIO_NORMAL 64 +#define TCP_PRIO_MAX 127 + +const char* tcp_debug_state_str(enum tcp_state s); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_TCP */ + +#endif /* LWIP_HDR_TCPBASE_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcpip.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcpip.h new file mode 100644 index 000000000..ec1470164 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/tcpip.h @@ -0,0 +1,113 @@ +/** + * @file + * Functions to sync with TCPIP thread + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_TCPIP_H +#define LWIP_HDR_TCPIP_H + +#include "lwip/opt.h" + +#if !NO_SYS /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/err.h" +#include "lwip/timeouts.h" +#include "lwip/netif.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_TCPIP_CORE_LOCKING +/** The global semaphore to lock the stack. */ +extern sys_mutex_t lock_tcpip_core; +#if !defined LOCK_TCPIP_CORE || defined __DOXYGEN__ +/** Lock lwIP core mutex (needs @ref LWIP_TCPIP_CORE_LOCKING 1) */ +#define LOCK_TCPIP_CORE() sys_mutex_lock(&lock_tcpip_core) +/** Unlock lwIP core mutex (needs @ref LWIP_TCPIP_CORE_LOCKING 1) */ +#define UNLOCK_TCPIP_CORE() sys_mutex_unlock(&lock_tcpip_core) +#endif /* LOCK_TCPIP_CORE */ +#else /* LWIP_TCPIP_CORE_LOCKING */ +#define LOCK_TCPIP_CORE() +#define UNLOCK_TCPIP_CORE() +#endif /* LWIP_TCPIP_CORE_LOCKING */ + +struct pbuf; +struct netif; + +/** Function prototype for the init_done function passed to tcpip_init */ +typedef void (*tcpip_init_done_fn)(void *arg); +/** Function prototype for functions passed to tcpip_callback() */ +typedef void (*tcpip_callback_fn)(void *ctx); + +/* Forward declarations */ +struct tcpip_callback_msg; + +void tcpip_init(tcpip_init_done_fn tcpip_init_done, void *arg); + +err_t tcpip_inpkt(struct pbuf *p, struct netif *inp, netif_input_fn input_fn); +err_t tcpip_input(struct pbuf *p, struct netif *inp); + +err_t tcpip_try_callback(tcpip_callback_fn function, void *ctx); +err_t tcpip_callback(tcpip_callback_fn function, void *ctx); +/** @ingroup lwip_os + * @deprecated use tcpip_try_callback() or tcpip_callback() instead + */ +#define tcpip_callback_with_block(function, ctx, block) ((block != 0)? tcpip_callback(function, ctx) : tcpip_try_callback(function, ctx)) + +struct tcpip_callback_msg* tcpip_callbackmsg_new(tcpip_callback_fn function, void *ctx); +void tcpip_callbackmsg_delete(struct tcpip_callback_msg* msg); +err_t tcpip_callbackmsg_trycallback(struct tcpip_callback_msg* msg); +err_t tcpip_callbackmsg_trycallback_fromisr(struct tcpip_callback_msg* msg); + +/* free pbufs or heap memory from another context without blocking */ +err_t pbuf_free_callback(struct pbuf *p); +err_t mem_free_callback(void *m); + +#if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS +err_t tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg); +err_t tcpip_untimeout(sys_timeout_handler h, void *arg); +#endif /* LWIP_TCPIP_TIMEOUT && LWIP_TIMERS */ + +#ifdef TCPIP_THREAD_TEST +int tcpip_thread_poll_one(void); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* !NO_SYS */ + +#endif /* LWIP_HDR_TCPIP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/timeouts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/timeouts.h new file mode 100644 index 000000000..3ab3c0ea4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/timeouts.h @@ -0,0 +1,128 @@ +/** + * @file + * Timer implementations + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_TIMEOUTS_H +#define LWIP_HDR_TIMEOUTS_H + +#include "lwip/opt.h" +#include "lwip/err.h" +#if !NO_SYS +#include "lwip/sys.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef LWIP_DEBUG_TIMERNAMES +#ifdef LWIP_DEBUG +#define LWIP_DEBUG_TIMERNAMES SYS_DEBUG +#else /* LWIP_DEBUG */ +#define LWIP_DEBUG_TIMERNAMES 0 +#endif /* LWIP_DEBUG*/ +#endif + +/** Returned by sys_timeouts_sleeptime() to indicate there is no timer, so we + * can sleep forever. + */ +#define SYS_TIMEOUTS_SLEEPTIME_INFINITE 0xFFFFFFFF + +/** Function prototype for a stack-internal timer function that has to be + * called at a defined interval */ +typedef void (* lwip_cyclic_timer_handler)(void); + +/** This struct contains information about a stack-internal timer function + that has to be called at a defined interval */ +struct lwip_cyclic_timer { + u32_t interval_ms; + lwip_cyclic_timer_handler handler; +#if LWIP_DEBUG_TIMERNAMES + const char* handler_name; +#endif /* LWIP_DEBUG_TIMERNAMES */ +}; + +/** This array contains all stack-internal cyclic timers. To get the number of + * timers, use lwip_num_cyclic_timers */ +extern const struct lwip_cyclic_timer lwip_cyclic_timers[]; +/** Array size of lwip_cyclic_timers[] */ +extern const int lwip_num_cyclic_timers; + +#if LWIP_TIMERS + +/** Function prototype for a timeout callback function. Register such a function + * using sys_timeout(). + * + * @param arg Additional argument to pass to the function - set up by sys_timeout() + */ +typedef void (* sys_timeout_handler)(void *arg); + +struct sys_timeo { + struct sys_timeo *next; + u32_t time; + sys_timeout_handler h; + void *arg; +#if LWIP_DEBUG_TIMERNAMES + const char* handler_name; +#endif /* LWIP_DEBUG_TIMERNAMES */ +}; + +void sys_timeouts_init(void); + +#if LWIP_DEBUG_TIMERNAMES +void sys_timeout_debug(u32_t msecs, sys_timeout_handler handler, void *arg, const char* handler_name); +#define sys_timeout(msecs, handler, arg) sys_timeout_debug(msecs, handler, arg, #handler) +#else /* LWIP_DEBUG_TIMERNAMES */ +void sys_timeout(u32_t msecs, sys_timeout_handler handler, void *arg); +#endif /* LWIP_DEBUG_TIMERNAMES */ + +void sys_untimeout(sys_timeout_handler handler, void *arg); +void sys_restart_timeouts(void); +void sys_check_timeouts(void); +u32_t sys_timeouts_sleeptime(void); + +#if LWIP_TESTMODE +struct sys_timeo** sys_timeouts_get_next_timeout(void); +void lwip_cyclic_timer(void *arg); +#endif + +#endif /* LWIP_TIMERS */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_TIMEOUTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/udp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/udp.h new file mode 100644 index 000000000..3794af437 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/lwip/udp.h @@ -0,0 +1,195 @@ +/** + * @file + * UDP API (to be used from TCPIP thread)\n + * See also @ref udp_raw + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef LWIP_HDR_UDP_H +#define LWIP_HDR_UDP_H + +#include "lwip/opt.h" + +#if LWIP_UDP /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/pbuf.h" +#include "lwip/netif.h" +#include "lwip/ip_addr.h" +#include "lwip/ip.h" +#include "lwip/ip6_addr.h" +#include "lwip/prot/udp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define UDP_FLAGS_NOCHKSUM 0x01U +#define UDP_FLAGS_UDPLITE 0x02U +#define UDP_FLAGS_CONNECTED 0x04U +#define UDP_FLAGS_MULTICAST_LOOP 0x08U + +struct udp_pcb; + +/** Function prototype for udp pcb receive callback functions + * addr and port are in same byte order as in the pcb + * The callback is responsible for freeing the pbuf + * if it's not used any more. + * + * ATTENTION: Be aware that 'addr' might point into the pbuf 'p' so freeing this pbuf + * can make 'addr' invalid, too. + * + * @param arg user supplied argument (udp_pcb.recv_arg) + * @param pcb the udp_pcb which received data + * @param p the packet buffer that was received + * @param addr the remote IP address from which the packet was received + * @param port the remote port from which the packet was received + */ +typedef void (*udp_recv_fn)(void *arg, struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *addr, u16_t port); + +/** the UDP protocol control block */ +struct udp_pcb { +/** Common members of all PCB types */ + IP_PCB; + +/* Protocol specific PCB members */ + + struct udp_pcb *next; + + u8_t flags; + /** ports are in host byte order */ + u16_t local_port, remote_port; + +#if LWIP_MULTICAST_TX_OPTIONS +#if LWIP_IPV4 + /** outgoing network interface for multicast packets, by IPv4 address (if not 'any') */ + ip4_addr_t mcast_ip4; +#endif /* LWIP_IPV4 */ + /** outgoing network interface for multicast packets, by interface index (if nonzero) */ + u8_t mcast_ifindex; + /** TTL for outgoing multicast packets */ + u8_t mcast_ttl; +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + +#if LWIP_UDPLITE + /** used for UDP_LITE only */ + u16_t chksum_len_rx, chksum_len_tx; +#endif /* LWIP_UDPLITE */ + + /** receive callback function */ + udp_recv_fn recv; + /** user-supplied argument for the recv callback */ + void *recv_arg; +}; +/* udp_pcbs export for external reference (e.g. SNMP agent) */ +extern struct udp_pcb *udp_pcbs; + +/* The following functions is the application layer interface to the + UDP code. */ +struct udp_pcb * udp_new (void); +struct udp_pcb * udp_new_ip_type(u8_t type); +void udp_remove (struct udp_pcb *pcb); +err_t udp_bind (struct udp_pcb *pcb, const ip_addr_t *ipaddr, + u16_t port); +void udp_bind_netif (struct udp_pcb *pcb, const struct netif* netif); +err_t udp_connect (struct udp_pcb *pcb, const ip_addr_t *ipaddr, + u16_t port); +void udp_disconnect (struct udp_pcb *pcb); +void udp_recv (struct udp_pcb *pcb, udp_recv_fn recv, + void *recv_arg); +err_t udp_sendto_if (struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port, + struct netif *netif); +err_t udp_sendto_if_src(struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port, + struct netif *netif, const ip_addr_t *src_ip); +err_t udp_sendto (struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port); +err_t udp_send (struct udp_pcb *pcb, struct pbuf *p); + +#if LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP +err_t udp_sendto_if_chksum(struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port, + struct netif *netif, u8_t have_chksum, + u16_t chksum); +err_t udp_sendto_chksum(struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port, + u8_t have_chksum, u16_t chksum); +err_t udp_send_chksum(struct udp_pcb *pcb, struct pbuf *p, + u8_t have_chksum, u16_t chksum); +err_t udp_sendto_if_src_chksum(struct udp_pcb *pcb, struct pbuf *p, + const ip_addr_t *dst_ip, u16_t dst_port, struct netif *netif, + u8_t have_chksum, u16_t chksum, const ip_addr_t *src_ip); +#endif /* LWIP_CHECKSUM_ON_COPY && CHECKSUM_GEN_UDP */ + +#define udp_flags(pcb) ((pcb)->flags) +#define udp_setflags(pcb, f) ((pcb)->flags = (f)) + +#define udp_set_flags(pcb, set_flags) do { (pcb)->flags = (u8_t)((pcb)->flags | (set_flags)); } while(0) +#define udp_clear_flags(pcb, clr_flags) do { (pcb)->flags = (u8_t)((pcb)->flags & (u8_t)(~(clr_flags) & 0xff)); } while(0) +#define udp_is_flag_set(pcb, flag) (((pcb)->flags & (flag)) != 0) + +/* The following functions are the lower layer interface to UDP. */ +void udp_input (struct pbuf *p, struct netif *inp); + +void udp_init (void); + +/* for compatibility with older implementation */ +#define udp_new_ip6() udp_new_ip_type(IPADDR_TYPE_V6) + +#if LWIP_MULTICAST_TX_OPTIONS +#if LWIP_IPV4 +#define udp_set_multicast_netif_addr(pcb, ip4addr) ip4_addr_copy((pcb)->mcast_ip4, *(ip4addr)) +#define udp_get_multicast_netif_addr(pcb) (&(pcb)->mcast_ip4) +#endif /* LWIP_IPV4 */ +#define udp_set_multicast_netif_index(pcb, idx) ((pcb)->mcast_ifindex = (idx)) +#define udp_get_multicast_netif_index(pcb) ((pcb)->mcast_ifindex) +#define udp_set_multicast_ttl(pcb, value) ((pcb)->mcast_ttl = (value)) +#define udp_get_multicast_ttl(pcb) ((pcb)->mcast_ttl) +#endif /* LWIP_MULTICAST_TX_OPTIONS */ + +#if UDP_DEBUG +void udp_debug_print(struct udp_hdr *udphdr); +#else +#define udp_debug_print(udphdr) +#endif + +void udp_netif_ip_addr_changed(const ip_addr_t* old_addr, const ip_addr_t* new_addr); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_UDP */ + +#endif /* LWIP_HDR_UDP_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/bridgeif.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/bridgeif.h new file mode 100644 index 000000000..927c61903 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/bridgeif.h @@ -0,0 +1,127 @@ +/** + * @file + * lwIP netif implementing an IEEE 802.1D MAC Bridge + */ + +/* + * Copyright (c) 2017 Simon Goldschmidt. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_NETIF_BRIDGEIF_H +#define LWIP_HDR_NETIF_BRIDGEIF_H + +#include "netif/bridgeif_opts.h" + +#include "lwip/err.h" +#include "lwip/prot/ethernet.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct netif; + +#if (BRIDGEIF_MAX_PORTS < 0) || (BRIDGEIF_MAX_PORTS >= 64) +#error BRIDGEIF_MAX_PORTS must be [1..63] +#elif BRIDGEIF_MAX_PORTS < 8 +typedef u8_t bridgeif_portmask_t; +#elif BRIDGEIF_MAX_PORTS < 16 +typedef u16_t bridgeif_portmask_t; +#elif BRIDGEIF_MAX_PORTS < 32 +typedef u32_t bridgeif_portmask_t; +#elif BRIDGEIF_MAX_PORTS < 64 +typedef u64_t bridgeif_portmask_t; +#endif + +#define BR_FLOOD ((bridgeif_portmask_t)-1) + +/** @ingroup bridgeif + * Initialisation data for @ref bridgeif_init. + * An instance of this type must be passed as parameter 'state' to @ref netif_add + * when the bridge is added. + */ +typedef struct bridgeif_initdata_s { + /** MAC address of the bridge (cannot use the netif's addresses) */ + struct eth_addr ethaddr; + /** Maximum number of ports in the bridge (ports are stored in an array, this + influences memory allocated for netif->state of the bridge netif). */ + u8_t max_ports; + /** Maximum number of dynamic/learning entries in the bridge's forwarding database. + In the default implementation, this controls memory consumption only. */ + u16_t max_fdb_dynamic_entries; + /** Maximum number of static forwarding entries. Influences memory consumption! */ + u16_t max_fdb_static_entries; +} bridgeif_initdata_t; + +/** @ingroup bridgeif + * Use this for constant initialization of a bridgeif_initdat_t + * (ethaddr must be passed as ETH_ADDR()) + */ +#define BRIDGEIF_INITDATA1(max_ports, max_fdb_dynamic_entries, max_fdb_static_entries, ethaddr) {ethaddr, max_ports, max_fdb_dynamic_entries, max_fdb_static_entries} +/** @ingroup bridgeif + * Use this for constant initialization of a bridgeif_initdat_t + * (each byte of ethaddr must be passed) + */ +#define BRIDGEIF_INITDATA2(max_ports, max_fdb_dynamic_entries, max_fdb_static_entries, e0, e1, e2, e3, e4, e5) {{e0, e1, e2, e3, e4, e5}, max_ports, max_fdb_dynamic_entries, max_fdb_static_entries} + +err_t bridgeif_init(struct netif *netif); +err_t bridgeif_add_port(struct netif *bridgeif, struct netif *portif); +err_t bridgeif_fdb_add(struct netif *bridgeif, const struct eth_addr *addr, bridgeif_portmask_t ports); +err_t bridgeif_fdb_remove(struct netif *bridgeif, const struct eth_addr *addr); + +/* FDB interface, can be replaced by own implementation */ +void bridgeif_fdb_update_src(void *fdb_ptr, struct eth_addr *src_addr, u8_t port_idx); +bridgeif_portmask_t bridgeif_fdb_get_dst_ports(void *fdb_ptr, struct eth_addr *dst_addr); +void* bridgeif_fdb_init(u16_t max_fdb_entries); + +#if BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT +#ifndef BRIDGEIF_DECL_PROTECT +/* define bridgeif protection to sys_arch_protect... */ +#include "lwip/sys.h" +#define BRIDGEIF_DECL_PROTECT(lev) SYS_ARCH_DECL_PROTECT(lev) +#define BRIDGEIF_READ_PROTECT(lev) SYS_ARCH_PROTECT(lev) +#define BRIDGEIF_READ_UNPROTECT(lev) SYS_ARCH_UNPROTECT(lev) +#define BRIDGEIF_WRITE_PROTECT(lev) +#define BRIDGEIF_WRITE_UNPROTECT(lev) +#endif +#else /* BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT */ +#include "lwip/tcpip.h" +#define BRIDGEIF_DECL_PROTECT(lev) +#define BRIDGEIF_READ_PROTECT(lev) +#define BRIDGEIF_READ_UNPROTECT(lev) +#define BRIDGEIF_WRITE_PROTECT(lev) +#define BRIDGEIF_WRITE_UNPROTECT(lev) +#endif /* BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_NETIF_BRIDGEIF_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/bridgeif_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/bridgeif_opts.h new file mode 100644 index 000000000..5866410ea --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/bridgeif_opts.h @@ -0,0 +1,90 @@ +/** + * @file + * lwIP netif implementing an IEEE 802.1D MAC Bridge + */ + +/* + * Copyright (c) 2017 Simon Goldschmidt. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ + +#ifndef LWIP_HDR_NETIF_BRIDGEIF_OPTS_H +#define LWIP_HDR_NETIF_BRIDGEIF_OPTS_H + +#include "lwip/opt.h" + +/** + * @defgroup bridgeif_opts Options + * @ingroup bridgeif + * @{ + */ + +/** BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT==1: set port netif's 'input' function + * to call directly into bridgeif code and on top of that, directly call into + * the selected forwarding port's 'linkoutput' function. + * This means that the bridgeif input/output path is protected from concurrent access + * but as well, *all* bridge port netif's drivers must correctly handle concurrent access! + * == 0: get into tcpip_thread for every input packet (no multithreading) + * ATTENTION: as ==0 relies on tcpip.h, the default depends on NO_SYS setting + */ +#ifndef BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT +#define BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT NO_SYS +#endif + +/** BRIDGEIF_MAX_PORTS: this is used to create a typedef used for forwarding + * bit-fields: the number of bits required is this + 1 (for the internal/cpu port) + * (63 is the maximum, resulting in an u64_t for the bit mask) + * ATTENTION: this controls the maximum number of the implementation only! + * The max. number of ports per bridge must still be passed via netif_add parameter! + */ +#ifndef BRIDGEIF_MAX_PORTS +#define BRIDGEIF_MAX_PORTS 7 +#endif + +/** BRIDGEIF_DEBUG: Enable generic debugging in bridgeif.c. */ +#ifndef BRIDGEIF_DEBUG +#define BRIDGEIF_DEBUG LWIP_DBG_OFF +#endif + +/** BRIDGEIF_DEBUG: Enable FDB debugging in bridgeif.c. */ +#ifndef BRIDGEIF_FDB_DEBUG +#define BRIDGEIF_FDB_DEBUG LWIP_DBG_OFF +#endif + +/** BRIDGEIF_DEBUG: Enable forwarding debugging in bridgeif.c. */ +#ifndef BRIDGEIF_FW_DEBUG +#define BRIDGEIF_FW_DEBUG LWIP_DBG_OFF +#endif + +/** + * @} + */ + +#endif /* LWIP_HDR_NETIF_BRIDGEIF_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/etharp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/etharp.h new file mode 100644 index 000000000..c00de0498 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/etharp.h @@ -0,0 +1,3 @@ +/* ARP has been moved to core/ipv4, provide this #include for compatibility only */ +#include "lwip/etharp.h" +#include "netif/ethernet.h" diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ethernet.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ethernet.h new file mode 100644 index 000000000..6e94e16a2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ethernet.h @@ -0,0 +1,77 @@ +/** + * @file + * Ethernet input function - handles INCOMING ethernet level traffic + * To be used in most low-level netif implementations + */ + +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * Copyright (c) 2003-2004 Leon Woestenberg + * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#ifndef LWIP_HDR_NETIF_ETHERNET_H +#define LWIP_HDR_NETIF_ETHERNET_H + +#include "lwip/opt.h" + +#include "lwip/pbuf.h" +#include "lwip/netif.h" +#include "lwip/prot/ethernet.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if LWIP_ARP || LWIP_ETHERNET + +/** Define this to 1 and define LWIP_ARP_FILTER_NETIF_FN(pbuf, netif, type) + * to a filter function that returns the correct netif when using multiple + * netifs on one hardware interface where the netif's low-level receive + * routine cannot decide for the correct netif (e.g. when mapping multiple + * IP addresses to one hardware interface). + */ +#ifndef LWIP_ARP_FILTER_NETIF +#define LWIP_ARP_FILTER_NETIF 0 +#endif + +err_t ethernet_input(struct pbuf *p, struct netif *netif); +err_t ethernet_output(struct netif* netif, struct pbuf* p, const struct eth_addr* src, const struct eth_addr* dst, u16_t eth_type); + +extern const struct eth_addr ethbroadcast, ethzero; + +#endif /* LWIP_ARP || LWIP_ETHERNET */ + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_NETIF_ETHERNET_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ieee802154.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ieee802154.h new file mode 100644 index 000000000..0a11a2b28 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ieee802154.h @@ -0,0 +1,112 @@ +/** + * @file + * Definitions for IEEE 802.15.4 MAC frames + */ + +/* + * Copyright (c) 2018 Simon Goldschmidt. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef LWIP_HDR_NETIF_IEEE802154_H +#define LWIP_HDR_NETIF_IEEE802154_H + +#include "lwip/opt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +/** General MAC frame format + * This shows the full featured header, mainly for documentation. + * Some fields are omitted or shortened to achieve frame compression. + */ +struct ieee_802154_hdr { + /** See IEEE_802154_FC_* defines */ + PACK_STRUCT_FIELD(u16_t frame_control); + /** Sequence number is omitted if IEEE_802154_FC_SEQNO_SUPPR is set in frame_control */ + PACK_STRUCT_FLD_8(u8_t sequence_number); + /** Destination PAN ID is omitted if Destination Addressing Mode is 0 */ + PACK_STRUCT_FIELD(u16_t destination_pan_id); + /** Destination Address is omitted if Destination Addressing Mode is 0 */ + PACK_STRUCT_FLD_8(u8_t destination_address[8]); + /** Source PAN ID is omitted if Source Addressing Mode is 0 + or if IEEE_802154_FC_PANID_COMPR is set in frame control*/ + PACK_STRUCT_FIELD(u16_t source_pan_id); + /** Source Address is omitted if Source Addressing Mode is 0 */ + PACK_STRUCT_FLD_8(u8_t source_address[8]); + /* The rest is variable */ +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +/* Addressing modes (2 bits) */ +#define IEEE_802154_ADDR_MODE_NO_ADDR 0x00 /* PAN ID and address fields are not present */ +#define IEEE_802154_ADDR_MODE_RESERVED 0x01 /* Reserved */ +#define IEEE_802154_ADDR_MODE_SHORT 0x02 /* Address field contains a short address (16 bit) */ +#define IEEE_802154_ADDR_MODE_EXT 0x03 /* Address field contains an extended address (64 bit) */ + +/* IEEE 802.15.4 Frame Control definitions (2 bytes; see IEEE 802.15.4-2015 ch. 7.2.1) */ +#define IEEE_802154_FC_FT_MASK 0x0007 /* bits 0..2: Frame Type */ +#define IEEE_802154_FC_FT_BEACON 0x00 +#define IEEE_802154_FC_FT_DATA 0x01 +#define IEEE_802154_FC_FT_ACK 0x02 +#define IEEE_802154_FC_FT_MAC_CMD 0x03 +#define IEEE_802154_FC_FT_RESERVED 0x04 +#define IEEE_802154_FC_FT_MULTIPURPOSE 0x05 +#define IEEE_802154_FC_FT_FRAG 0x06 +#define IEEE_802154_FC_FT_EXT 0x07 +#define IEEE_802154_FC_SEC_EN 0x0008 /* bit 3: Security Enabled */ +#define IEEE_802154_FC_FRAME_PEND 0x0010 /* bit 4: Frame Pending */ +#define IEEE_802154_FC_ACK_REQ 0x0020 /* bit 5: AR (ACK required) */ +#define IEEE_802154_FC_PANID_COMPR 0x0040 /* bit 6: PAN ID Compression (src and dst are equal, src PAN ID omitted) */ +#define IEEE_802154_FC_RESERVED 0x0080 +#define IEEE_802154_FC_SEQNO_SUPPR 0x0100 /* bit 8: Sequence Number Suppression */ +#define IEEE_802154_FC_IE_PRESENT 0x0200 /* bit 9: IE Present */ +#define IEEE_802154_FC_DST_ADDR_MODE_MASK 0x0c00 /* bits 10..11: Destination Addressing Mode */ +#define IEEE_802154_FC_DST_ADDR_MODE_NO_ADDR (IEEE_802154_ADDR_MODE_NO_ADDR << 10) +#define IEEE_802154_FC_DST_ADDR_MODE_SHORT (IEEE_802154_ADDR_MODE_SHORT << 10) +#define IEEE_802154_FC_DST_ADDR_MODE_EXT (IEEE_802154_ADDR_MODE_EXT << 10) +#define IEEE_802154_FC_FRAME_VERSION_MASK 0x3000 /* bits 12..13: Frame Version */ +#define IEEE_802154_FC_FRAME_VERSION_GET(x) (((x) & IEEE_802154_FC_FRAME_VERSION_MASK) >> 12) +#define IEEE_802154_FC_SRC_ADDR_MODE_MASK 0xc000 /* bits 14..15: Source Addressing Mode */ +#define IEEE_802154_FC_SRC_ADDR_MODE_SHORT (IEEE_802154_ADDR_MODE_SHORT << 14) +#define IEEE_802154_FC_SRC_ADDR_MODE_EXT (IEEE_802154_ADDR_MODE_EXT << 14) + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_HDR_NETIF_IEEE802154_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ccp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ccp.h new file mode 100644 index 000000000..c35336f9a --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ccp.h @@ -0,0 +1,164 @@ +/* + * ccp.h - Definitions for PPP Compression Control Protocol. + * + * Copyright (c) 1994-2002 Paul Mackerras. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * 3. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Paul Mackerras + * ". + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: ccp.h,v 1.12 2004/11/04 10:02:26 paulus Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && CCP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef CCP_H +#define CCP_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * CCP codes. + */ + +#define CCP_CONFREQ 1 +#define CCP_CONFACK 2 +#define CCP_TERMREQ 5 +#define CCP_TERMACK 6 +#define CCP_RESETREQ 14 +#define CCP_RESETACK 15 + +/* + * Max # bytes for a CCP option + */ + +#define CCP_MAX_OPTION_LENGTH 32 + +/* + * Parts of a CCP packet. + */ + +#define CCP_CODE(dp) ((dp)[0]) +#define CCP_ID(dp) ((dp)[1]) +#define CCP_LENGTH(dp) (((dp)[2] << 8) + (dp)[3]) +#define CCP_HDRLEN 4 + +#define CCP_OPT_CODE(dp) ((dp)[0]) +#define CCP_OPT_LENGTH(dp) ((dp)[1]) +#define CCP_OPT_MINLEN 2 + +#if BSDCOMPRESS_SUPPORT +/* + * Definitions for BSD-Compress. + */ + +#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */ +#define CILEN_BSD_COMPRESS 3 /* length of config. option */ + +/* Macros for handling the 3rd byte of the BSD-Compress config option. */ +#define BSD_NBITS(x) ((x) & 0x1F) /* number of bits requested */ +#define BSD_VERSION(x) ((x) >> 5) /* version of option format */ +#define BSD_CURRENT_VERSION 1 /* current version number */ +#define BSD_MAKE_OPT(v, n) (((v) << 5) | (n)) + +#define BSD_MIN_BITS 9 /* smallest code size supported */ +#define BSD_MAX_BITS 15 /* largest code size supported */ +#endif /* BSDCOMPRESS_SUPPORT */ + +#if DEFLATE_SUPPORT +/* + * Definitions for Deflate. + */ + +#define CI_DEFLATE 26 /* config option for Deflate */ +#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */ +#define CILEN_DEFLATE 4 /* length of its config option */ + +#define DEFLATE_MIN_SIZE 9 +#define DEFLATE_MAX_SIZE 15 +#define DEFLATE_METHOD_VAL 8 +#define DEFLATE_SIZE(x) (((x) >> 4) + 8) +#define DEFLATE_METHOD(x) ((x) & 0x0F) +#define DEFLATE_MAKE_OPT(w) ((((w) - 8) << 4) + DEFLATE_METHOD_VAL) +#define DEFLATE_CHK_SEQUENCE 0 +#endif /* DEFLATE_SUPPORT */ + +#if MPPE_SUPPORT +/* + * Definitions for MPPE. + */ + +#define CI_MPPE 18 /* config option for MPPE */ +#define CILEN_MPPE 6 /* length of config option */ +#endif /* MPPE_SUPPORT */ + +#if PREDICTOR_SUPPORT +/* + * Definitions for other, as yet unsupported, compression methods. + */ + +#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */ +#define CILEN_PREDICTOR_1 2 /* length of its config option */ +#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */ +#define CILEN_PREDICTOR_2 2 /* length of its config option */ +#endif /* PREDICTOR_SUPPORT */ + +typedef struct ccp_options { +#if DEFLATE_SUPPORT + unsigned int deflate :1; /* do Deflate? */ + unsigned int deflate_correct :1; /* use correct code for deflate? */ + unsigned int deflate_draft :1; /* use draft RFC code for deflate? */ +#endif /* DEFLATE_SUPPORT */ +#if BSDCOMPRESS_SUPPORT + unsigned int bsd_compress :1; /* do BSD Compress? */ +#endif /* BSDCOMPRESS_SUPPORT */ +#if PREDICTOR_SUPPORT + unsigned int predictor_1 :1; /* do Predictor-1? */ + unsigned int predictor_2 :1; /* do Predictor-2? */ +#endif /* PREDICTOR_SUPPORT */ + +#if MPPE_SUPPORT + u8_t mppe; /* MPPE bitfield */ +#endif /* MPPE_SUPPORT */ +#if BSDCOMPRESS_SUPPORT + u_short bsd_bits; /* # bits/code for BSD Compress */ +#endif /* BSDCOMPRESS_SUPPORT */ +#if DEFLATE_SUPPORT + u_short deflate_size; /* lg(window size) for Deflate */ +#endif /* DEFLATE_SUPPORT */ + u8_t method; /* code for chosen compression method */ +} ccp_options; + +extern const struct protent ccp_protent; + +void ccp_resetrequest(ppp_pcb *pcb); /* Issue a reset-request. */ + +#ifdef __cplusplus +} +#endif + +#endif /* CCP_H */ +#endif /* PPP_SUPPORT && CCP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap-md5.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap-md5.h new file mode 100644 index 000000000..1f58dfe7d --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap-md5.h @@ -0,0 +1,36 @@ +/* + * chap-md5.h - New CHAP/MD5 implementation. + * + * Copyright (c) 2003 Paul Mackerras. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * 3. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Paul Mackerras + * ". + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && CHAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +extern const struct chap_digest_type md5_digest; + +#endif /* PPP_SUPPORT && CHAP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap-new.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap-new.h new file mode 100644 index 000000000..dadd9c2f8 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap-new.h @@ -0,0 +1,200 @@ +/* + * chap-new.c - New CHAP implementation. + * + * Copyright (c) 2003 Paul Mackerras. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * 3. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Paul Mackerras + * ". + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && CHAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef CHAP_H +#define CHAP_H + +#include "ppp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * CHAP packets begin with a standard header with code, id, len (2 bytes). + */ +#define CHAP_HDRLEN 4 + +/* + * Values for the code field. + */ +#define CHAP_CHALLENGE 1 +#define CHAP_RESPONSE 2 +#define CHAP_SUCCESS 3 +#define CHAP_FAILURE 4 + +/* + * CHAP digest codes. + */ +#define CHAP_MD5 5 +#if MSCHAP_SUPPORT +#define CHAP_MICROSOFT 0x80 +#define CHAP_MICROSOFT_V2 0x81 +#endif /* MSCHAP_SUPPORT */ + +/* + * Semi-arbitrary limits on challenge and response fields. + */ +#define MAX_CHALLENGE_LEN 64 +#define MAX_RESPONSE_LEN 64 + +/* + * These limits apply to challenge and response packets we send. + * The +4 is the +1 that we actually need rounded up. + */ +#define CHAL_MAX_PKTLEN (PPP_HDRLEN + CHAP_HDRLEN + 4 + MAX_CHALLENGE_LEN + MAXNAMELEN) +#define RESP_MAX_PKTLEN (PPP_HDRLEN + CHAP_HDRLEN + 4 + MAX_RESPONSE_LEN + MAXNAMELEN) + +/* bitmask of supported algorithms */ +#if MSCHAP_SUPPORT +#define MDTYPE_MICROSOFT_V2 0x1 +#define MDTYPE_MICROSOFT 0x2 +#endif /* MSCHAP_SUPPORT */ +#define MDTYPE_MD5 0x4 +#define MDTYPE_NONE 0 + +#if MSCHAP_SUPPORT +/* Return the digest alg. ID for the most preferred digest type. */ +#define CHAP_DIGEST(mdtype) \ + ((mdtype) & MDTYPE_MD5)? CHAP_MD5: \ + ((mdtype) & MDTYPE_MICROSOFT_V2)? CHAP_MICROSOFT_V2: \ + ((mdtype) & MDTYPE_MICROSOFT)? CHAP_MICROSOFT: \ + 0 +#else /* !MSCHAP_SUPPORT */ +#define CHAP_DIGEST(mdtype) \ + ((mdtype) & MDTYPE_MD5)? CHAP_MD5: \ + 0 +#endif /* MSCHAP_SUPPORT */ + +/* Return the bit flag (lsb set) for our most preferred digest type. */ +#define CHAP_MDTYPE(mdtype) ((mdtype) ^ ((mdtype) - 1)) & (mdtype) + +/* Return the bit flag for a given digest algorithm ID. */ +#if MSCHAP_SUPPORT +#define CHAP_MDTYPE_D(digest) \ + ((digest) == CHAP_MICROSOFT_V2)? MDTYPE_MICROSOFT_V2: \ + ((digest) == CHAP_MICROSOFT)? MDTYPE_MICROSOFT: \ + ((digest) == CHAP_MD5)? MDTYPE_MD5: \ + 0 +#else /* !MSCHAP_SUPPORT */ +#define CHAP_MDTYPE_D(digest) \ + ((digest) == CHAP_MD5)? MDTYPE_MD5: \ + 0 +#endif /* MSCHAP_SUPPORT */ + +/* Can we do the requested digest? */ +#if MSCHAP_SUPPORT +#define CHAP_CANDIGEST(mdtype, digest) \ + ((digest) == CHAP_MICROSOFT_V2)? (mdtype) & MDTYPE_MICROSOFT_V2: \ + ((digest) == CHAP_MICROSOFT)? (mdtype) & MDTYPE_MICROSOFT: \ + ((digest) == CHAP_MD5)? (mdtype) & MDTYPE_MD5: \ + 0 +#else /* !MSCHAP_SUPPORT */ +#define CHAP_CANDIGEST(mdtype, digest) \ + ((digest) == CHAP_MD5)? (mdtype) & MDTYPE_MD5: \ + 0 +#endif /* MSCHAP_SUPPORT */ + +/* + * The code for each digest type has to supply one of these. + */ +struct chap_digest_type { + int code; + +#if PPP_SERVER + /* + * Note: challenge and response arguments below are formatted as + * a length byte followed by the actual challenge/response data. + */ + void (*generate_challenge)(ppp_pcb *pcb, unsigned char *challenge); + int (*verify_response)(ppp_pcb *pcb, int id, const char *name, + const unsigned char *secret, int secret_len, + const unsigned char *challenge, const unsigned char *response, + char *message, int message_space); +#endif /* PPP_SERVER */ + void (*make_response)(ppp_pcb *pcb, unsigned char *response, int id, const char *our_name, + const unsigned char *challenge, const char *secret, int secret_len, + unsigned char *priv); + int (*check_success)(ppp_pcb *pcb, unsigned char *pkt, int len, unsigned char *priv); + void (*handle_failure)(ppp_pcb *pcb, unsigned char *pkt, int len); +}; + +/* + * Each interface is described by chap structure. + */ +#if CHAP_SUPPORT +typedef struct chap_client_state { + u8_t flags; + const char *name; + const struct chap_digest_type *digest; + unsigned char priv[64]; /* private area for digest's use */ +} chap_client_state; + +#if PPP_SERVER +typedef struct chap_server_state { + u8_t flags; + u8_t id; + const char *name; + const struct chap_digest_type *digest; + int challenge_xmits; + int challenge_pktlen; + unsigned char challenge[CHAL_MAX_PKTLEN]; +} chap_server_state; +#endif /* PPP_SERVER */ +#endif /* CHAP_SUPPORT */ + +#if 0 /* UNUSED */ +/* Hook for a plugin to validate CHAP challenge */ +extern int (*chap_verify_hook)(char *name, char *ourname, int id, + const struct chap_digest_type *digest, + unsigned char *challenge, unsigned char *response, + char *message, int message_space); +#endif /* UNUSED */ + +#if PPP_SERVER +/* Called by authentication code to start authenticating the peer. */ +extern void chap_auth_peer(ppp_pcb *pcb, const char *our_name, int digest_code); +#endif /* PPP_SERVER */ + +/* Called by auth. code to start authenticating us to the peer. */ +extern void chap_auth_with_peer(ppp_pcb *pcb, const char *our_name, int digest_code); + +/* Represents the CHAP protocol to the main pppd code */ +extern const struct protent chap_protent; + +#ifdef __cplusplus +} +#endif + +#endif /* CHAP_H */ +#endif /* PPP_SUPPORT && CHAP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap_ms.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap_ms.h new file mode 100644 index 000000000..ed52b4042 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/chap_ms.h @@ -0,0 +1,44 @@ +/* + * chap_ms.h - Challenge Handshake Authentication Protocol definitions. + * + * Copyright (c) 1995 Eric Rosenquist. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: chap_ms.h,v 1.13 2004/11/15 22:13:26 paulus Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && MSCHAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef CHAPMS_INCLUDE +#define CHAPMS_INCLUDE + +extern const struct chap_digest_type chapms_digest; +extern const struct chap_digest_type chapms2_digest; + +#endif /* CHAPMS_INCLUDE */ + +#endif /* PPP_SUPPORT && MSCHAP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/eap.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/eap.h new file mode 100644 index 000000000..61efdafe4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/eap.h @@ -0,0 +1,169 @@ +/* + * eap.h - Extensible Authentication Protocol for PPP (RFC 2284) + * + * Copyright (c) 2001 by Sun Microsystems, Inc. + * All rights reserved. + * + * Non-exclusive rights to redistribute, modify, translate, and use + * this software in source and binary forms, in whole or in part, is + * hereby granted, provided that the above copyright notice is + * duplicated in any source form, and that neither the name of the + * copyright holder nor the author is used to endorse or promote + * products derived from this software. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * Original version by James Carlson + * + * $Id: eap.h,v 1.2 2003/06/11 23:56:26 paulus Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && EAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef PPP_EAP_H +#define PPP_EAP_H + +#include "ppp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Packet header = Code, id, length. + */ +#define EAP_HEADERLEN 4 + + +/* EAP message codes. */ +#define EAP_REQUEST 1 +#define EAP_RESPONSE 2 +#define EAP_SUCCESS 3 +#define EAP_FAILURE 4 + +/* EAP types */ +#define EAPT_IDENTITY 1 +#define EAPT_NOTIFICATION 2 +#define EAPT_NAK 3 /* (response only) */ +#define EAPT_MD5CHAP 4 +#define EAPT_OTP 5 /* One-Time Password; RFC 1938 */ +#define EAPT_TOKEN 6 /* Generic Token Card */ +/* 7 and 8 are unassigned. */ +#define EAPT_RSA 9 /* RSA Public Key Authentication */ +#define EAPT_DSS 10 /* DSS Unilateral */ +#define EAPT_KEA 11 /* KEA */ +#define EAPT_KEA_VALIDATE 12 /* KEA-VALIDATE */ +#define EAPT_TLS 13 /* EAP-TLS */ +#define EAPT_DEFENDER 14 /* Defender Token (AXENT) */ +#define EAPT_W2K 15 /* Windows 2000 EAP */ +#define EAPT_ARCOT 16 /* Arcot Systems */ +#define EAPT_CISCOWIRELESS 17 /* Cisco Wireless */ +#define EAPT_NOKIACARD 18 /* Nokia IP smart card */ +#define EAPT_SRP 19 /* Secure Remote Password */ +/* 20 is deprecated */ + +/* EAP SRP-SHA1 Subtypes */ +#define EAPSRP_CHALLENGE 1 /* Request 1 - Challenge */ +#define EAPSRP_CKEY 1 /* Response 1 - Client Key */ +#define EAPSRP_SKEY 2 /* Request 2 - Server Key */ +#define EAPSRP_CVALIDATOR 2 /* Response 2 - Client Validator */ +#define EAPSRP_SVALIDATOR 3 /* Request 3 - Server Validator */ +#define EAPSRP_ACK 3 /* Response 3 - final ack */ +#define EAPSRP_LWRECHALLENGE 4 /* Req/resp 4 - Lightweight rechal */ + +#define SRPVAL_EBIT 0x00000001 /* Use shared key for ECP */ + +#define SRP_PSEUDO_ID "pseudo_" +#define SRP_PSEUDO_LEN 7 + +#define MD5_SIGNATURE_SIZE 16 +#define EAP_MIN_CHALLENGE_LENGTH 17 +#define EAP_MAX_CHALLENGE_LENGTH 24 +#define EAP_MIN_MAX_POWER_OF_TWO_CHALLENGE_LENGTH 3 /* 2^3-1 = 7, 17+7 = 24 */ + +#define EAP_STATES \ + "Initial", "Pending", "Closed", "Listen", "Identify", \ + "SRP1", "SRP2", "SRP3", "MD5Chall", "Open", "SRP4", "BadAuth" + +#define eap_client_active(pcb) ((pcb)->eap.es_client.ea_state == eapListen) +#if PPP_SERVER +#define eap_server_active(pcb) \ + ((pcb)->eap.es_server.ea_state >= eapIdentify && \ + (pcb)->eap.es_server.ea_state <= eapMD5Chall) +#endif /* PPP_SERVER */ + +/* + * Complete EAP state for one PPP session. + */ +enum eap_state_code { + eapInitial = 0, /* No EAP authentication yet requested */ + eapPending, /* Waiting for LCP (no timer) */ + eapClosed, /* Authentication not in use */ + eapListen, /* Client ready (and timer running) */ + eapIdentify, /* EAP Identify sent */ + eapSRP1, /* Sent EAP SRP-SHA1 Subtype 1 */ + eapSRP2, /* Sent EAP SRP-SHA1 Subtype 2 */ + eapSRP3, /* Sent EAP SRP-SHA1 Subtype 3 */ + eapMD5Chall, /* Sent MD5-Challenge */ + eapOpen, /* Completed authentication */ + eapSRP4, /* Sent EAP SRP-SHA1 Subtype 4 */ + eapBadAuth /* Failed authentication */ +}; + +struct eap_auth { + const char *ea_name; /* Our name */ + char ea_peer[MAXNAMELEN +1]; /* Peer's name */ + void *ea_session; /* Authentication library linkage */ + u_char *ea_skey; /* Shared encryption key */ + u_short ea_namelen; /* Length of our name */ + u_short ea_peerlen; /* Length of peer's name */ + enum eap_state_code ea_state; + u_char ea_id; /* Current id */ + u_char ea_requests; /* Number of Requests sent/received */ + u_char ea_responses; /* Number of Responses */ + u_char ea_type; /* One of EAPT_* */ + u32_t ea_keyflags; /* SRP shared key usage flags */ +}; + +#ifndef EAP_MAX_CHALLENGE_LENGTH +#define EAP_MAX_CHALLENGE_LENGTH 24 +#endif +typedef struct eap_state { + struct eap_auth es_client; /* Client (authenticatee) data */ +#if PPP_SERVER + struct eap_auth es_server; /* Server (authenticator) data */ +#endif /* PPP_SERVER */ + int es_savedtime; /* Saved timeout */ + int es_rechallenge; /* EAP rechallenge interval */ + int es_lwrechallenge; /* SRP lightweight rechallenge inter */ + u8_t es_usepseudo; /* Use SRP Pseudonym if offered one */ + int es_usedpseudo; /* Set if we already sent PN */ + int es_challen; /* Length of challenge string */ + u_char es_challenge[EAP_MAX_CHALLENGE_LENGTH]; +} eap_state; + +/* + * Timeouts. + */ +#if 0 /* moved to ppp_opts.h */ +#define EAP_DEFTIMEOUT 3 /* Timeout (seconds) for rexmit */ +#define EAP_DEFTRANSMITS 10 /* max # times to transmit */ +#define EAP_DEFREQTIME 20 /* Time to wait for peer request */ +#define EAP_DEFALLOWREQ 20 /* max # times to accept requests */ +#endif /* moved to ppp_opts.h */ + +void eap_authwithpeer(ppp_pcb *pcb, const char *localname); +void eap_authpeer(ppp_pcb *pcb, const char *localname); + +extern const struct protent eap_protent; + +#ifdef __cplusplus +} +#endif + +#endif /* PPP_EAP_H */ + +#endif /* PPP_SUPPORT && EAP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ecp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ecp.h new file mode 100644 index 000000000..8be18726a --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ecp.h @@ -0,0 +1,62 @@ +/* + * ecp.h - Definitions for PPP Encryption Control Protocol. + * + * Copyright (c) 2002 Google, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: ecp.h,v 1.2 2003/01/10 07:12:36 fcusack Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && ECP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef ECP_H +#define ECP_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ecp_options { + bool required; /* Is ECP required? */ + unsigned enctype; /* Encryption type */ +} ecp_options; + +extern fsm ecp_fsm[]; +extern ecp_options ecp_wantoptions[]; +extern ecp_options ecp_gotoptions[]; +extern ecp_options ecp_allowoptions[]; +extern ecp_options ecp_hisoptions[]; + +extern const struct protent ecp_protent; + +#ifdef __cplusplus +} +#endif + +#endif /* ECP_H */ +#endif /* PPP_SUPPORT && ECP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/eui64.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/eui64.h new file mode 100644 index 000000000..ad199ead7 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/eui64.h @@ -0,0 +1,102 @@ +/* + * eui64.h - EUI64 routines for IPv6CP. + * + * Copyright (c) 1999 Tommi Komulainen. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Tommi Komulainen + * ". + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: eui64.h,v 1.6 2002/12/04 23:03:32 paulus Exp $ +*/ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && PPP_IPV6_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef EUI64_H +#define EUI64_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * @todo: + * + * Maybe this should be done by processing struct in6_addr directly... + */ +typedef union +{ + u8_t e8[8]; + u16_t e16[4]; + u32_t e32[2]; +} eui64_t; + +#define eui64_iszero(e) (((e).e32[0] | (e).e32[1]) == 0) +#define eui64_equals(e, o) (((e).e32[0] == (o).e32[0]) && \ + ((e).e32[1] == (o).e32[1])) +#define eui64_zero(e) (e).e32[0] = (e).e32[1] = 0; + +#define eui64_copy(s, d) memcpy(&(d), &(s), sizeof(eui64_t)) + +#define eui64_magic(e) do { \ + (e).e32[0] = magic(); \ + (e).e32[1] = magic(); \ + (e).e8[0] &= ~2; \ + } while (0) +#define eui64_magic_nz(x) do { \ + eui64_magic(x); \ + } while (eui64_iszero(x)) +#define eui64_magic_ne(x, y) do { \ + eui64_magic(x); \ + } while (eui64_equals(x, y)) + +#define eui64_get(ll, cp) do { \ + eui64_copy((*cp), (ll)); \ + (cp) += sizeof(eui64_t); \ + } while (0) + +#define eui64_put(ll, cp) do { \ + eui64_copy((ll), (*cp)); \ + (cp) += sizeof(eui64_t); \ + } while (0) + +#define eui64_set32(e, l) do { \ + (e).e32[0] = 0; \ + (e).e32[1] = lwip_htonl(l); \ + } while (0) +#define eui64_setlo32(e, l) eui64_set32(e, l) + +char *eui64_ntoa(eui64_t); /* Returns ascii representation of id */ + +#ifdef __cplusplus +} +#endif + +#endif /* EUI64_H */ +#endif /* PPP_SUPPORT && PPP_IPV6_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/fsm.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/fsm.h new file mode 100644 index 000000000..e91536d4a --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/fsm.h @@ -0,0 +1,182 @@ +/* + * fsm.h - {Link, IP} Control Protocol Finite State Machine definitions. + * + * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: fsm.h,v 1.10 2004/11/13 02:28:15 paulus Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef FSM_H +#define FSM_H + +#include "ppp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Packet header = Code, id, length. + */ +#define HEADERLEN 4 + + +/* + * CP (LCP, IPCP, etc.) codes. + */ +#define CONFREQ 1 /* Configuration Request */ +#define CONFACK 2 /* Configuration Ack */ +#define CONFNAK 3 /* Configuration Nak */ +#define CONFREJ 4 /* Configuration Reject */ +#define TERMREQ 5 /* Termination Request */ +#define TERMACK 6 /* Termination Ack */ +#define CODEREJ 7 /* Code Reject */ + + +/* + * Each FSM is described by an fsm structure and fsm callbacks. + */ +typedef struct fsm { + ppp_pcb *pcb; /* PPP Interface */ + const struct fsm_callbacks *callbacks; /* Callback routines */ + const char *term_reason; /* Reason for closing protocol */ + u8_t seen_ack; /* Have received valid Ack/Nak/Rej to Req */ + /* -- This is our only flag, we might use u_int :1 if we have more flags */ + u16_t protocol; /* Data Link Layer Protocol field value */ + u8_t state; /* State */ + u8_t flags; /* Contains option bits */ + u8_t id; /* Current id */ + u8_t reqid; /* Current request id */ + u8_t retransmits; /* Number of retransmissions left */ + u8_t nakloops; /* Number of nak loops since last ack */ + u8_t rnakloops; /* Number of naks received */ + u8_t maxnakloops; /* Maximum number of nak loops tolerated + (necessary because IPCP require a custom large max nak loops value) */ + u8_t term_reason_len; /* Length of term_reason */ +} fsm; + + +typedef struct fsm_callbacks { + void (*resetci) /* Reset our Configuration Information */ + (fsm *); + int (*cilen) /* Length of our Configuration Information */ + (fsm *); + void (*addci) /* Add our Configuration Information */ + (fsm *, u_char *, int *); + int (*ackci) /* ACK our Configuration Information */ + (fsm *, u_char *, int); + int (*nakci) /* NAK our Configuration Information */ + (fsm *, u_char *, int, int); + int (*rejci) /* Reject our Configuration Information */ + (fsm *, u_char *, int); + int (*reqci) /* Request peer's Configuration Information */ + (fsm *, u_char *, int *, int); + void (*up) /* Called when fsm reaches PPP_FSM_OPENED state */ + (fsm *); + void (*down) /* Called when fsm leaves PPP_FSM_OPENED state */ + (fsm *); + void (*starting) /* Called when we want the lower layer */ + (fsm *); + void (*finished) /* Called when we don't want the lower layer */ + (fsm *); + void (*protreject) /* Called when Protocol-Reject received */ + (int); + void (*retransmit) /* Retransmission is necessary */ + (fsm *); + int (*extcode) /* Called when unknown code received */ + (fsm *, int, int, u_char *, int); + const char *proto_name; /* String name for protocol (for messages) */ +} fsm_callbacks; + + +/* + * Link states. + */ +#define PPP_FSM_INITIAL 0 /* Down, hasn't been opened */ +#define PPP_FSM_STARTING 1 /* Down, been opened */ +#define PPP_FSM_CLOSED 2 /* Up, hasn't been opened */ +#define PPP_FSM_STOPPED 3 /* Open, waiting for down event */ +#define PPP_FSM_CLOSING 4 /* Terminating the connection, not open */ +#define PPP_FSM_STOPPING 5 /* Terminating, but open */ +#define PPP_FSM_REQSENT 6 /* We've sent a Config Request */ +#define PPP_FSM_ACKRCVD 7 /* We've received a Config Ack */ +#define PPP_FSM_ACKSENT 8 /* We've sent a Config Ack */ +#define PPP_FSM_OPENED 9 /* Connection available */ + + +/* + * Flags - indicate options controlling FSM operation + */ +#define OPT_PASSIVE 1 /* Don't die if we don't get a response */ +#define OPT_RESTART 2 /* Treat 2nd OPEN as DOWN, UP */ +#define OPT_SILENT 4 /* Wait for peer to speak first */ + + +/* + * Timeouts. + */ +#if 0 /* moved to ppp_opts.h */ +#define DEFTIMEOUT 3 /* Timeout time in seconds */ +#define DEFMAXTERMREQS 2 /* Maximum Terminate-Request transmissions */ +#define DEFMAXCONFREQS 10 /* Maximum Configure-Request transmissions */ +#define DEFMAXNAKLOOPS 5 /* Maximum number of nak loops */ +#endif /* moved to ppp_opts.h */ + + +/* + * Prototypes + */ +void fsm_init(fsm *f); +void fsm_lowerup(fsm *f); +void fsm_lowerdown(fsm *f); +void fsm_open(fsm *f); +void fsm_close(fsm *f, const char *reason); +void fsm_input(fsm *f, u_char *inpacket, int l); +void fsm_protreject(fsm *f); +void fsm_sdata(fsm *f, u_char code, u_char id, const u_char *data, int datalen); + +#ifdef __cplusplus +} +#endif + +#endif /* FSM_H */ +#endif /* PPP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ipcp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ipcp.h new file mode 100644 index 000000000..1735158c6 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ipcp.h @@ -0,0 +1,134 @@ +/* + * ipcp.h - IP Control Protocol definitions. + * + * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: ipcp.h,v 1.14 2002/12/04 23:03:32 paulus Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && PPP_IPV4_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef IPCP_H +#define IPCP_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Options. + */ +#define CI_ADDRS 1 /* IP Addresses */ +#if VJ_SUPPORT +#define CI_COMPRESSTYPE 2 /* Compression Type */ +#endif /* VJ_SUPPORT */ +#define CI_ADDR 3 + +#if LWIP_DNS +#define CI_MS_DNS1 129 /* Primary DNS value */ +#define CI_MS_DNS2 131 /* Secondary DNS value */ +#endif /* LWIP_DNS */ +#if 0 /* UNUSED - WINS */ +#define CI_MS_WINS1 130 /* Primary WINS value */ +#define CI_MS_WINS2 132 /* Secondary WINS value */ +#endif /* UNUSED - WINS */ + +#if VJ_SUPPORT +#define MAX_STATES 16 /* from slcompress.h */ + +#define IPCP_VJMODE_OLD 1 /* "old" mode (option # = 0x0037) */ +#define IPCP_VJMODE_RFC1172 2 /* "old-rfc"mode (option # = 0x002d) */ +#define IPCP_VJMODE_RFC1332 3 /* "new-rfc"mode (option # = 0x002d, */ + /* maxslot and slot number compression) */ + +#define IPCP_VJ_COMP 0x002d /* current value for VJ compression option*/ +#define IPCP_VJ_COMP_OLD 0x0037 /* "old" (i.e, broken) value for VJ */ + /* compression option*/ +#endif /* VJ_SUPPORT */ + +typedef struct ipcp_options { + unsigned int neg_addr :1; /* Negotiate IP Address? */ + unsigned int old_addrs :1; /* Use old (IP-Addresses) option? */ + unsigned int req_addr :1; /* Ask peer to send IP address? */ +#if 0 /* UNUSED */ + unsigned int default_route :1; /* Assign default route through interface? */ + unsigned int replace_default_route :1; /* Replace default route through interface? */ +#endif /* UNUSED */ +#if 0 /* UNUSED - PROXY ARP */ + unsigned int proxy_arp :1; /* Make proxy ARP entry for peer? */ +#endif /* UNUSED - PROXY ARP */ +#if VJ_SUPPORT + unsigned int neg_vj :1; /* Van Jacobson Compression? */ + unsigned int old_vj :1; /* use old (short) form of VJ option? */ + unsigned int cflag :1; +#endif /* VJ_SUPPORT */ + unsigned int accept_local :1; /* accept peer's value for ouraddr */ + unsigned int accept_remote :1; /* accept peer's value for hisaddr */ +#if LWIP_DNS + unsigned int req_dns1 :1; /* Ask peer to send primary DNS address? */ + unsigned int req_dns2 :1; /* Ask peer to send secondary DNS address? */ +#endif /* LWIP_DNS */ + + u32_t ouraddr, hisaddr; /* Addresses in NETWORK BYTE ORDER */ +#if LWIP_DNS + u32_t dnsaddr[2]; /* Primary and secondary MS DNS entries */ +#endif /* LWIP_DNS */ +#if 0 /* UNUSED - WINS */ + u32_t winsaddr[2]; /* Primary and secondary MS WINS entries */ +#endif /* UNUSED - WINS */ + +#if VJ_SUPPORT + u16_t vj_protocol; /* protocol value to use in VJ option */ + u8_t maxslotindex; /* values for RFC1332 VJ compression neg. */ +#endif /* VJ_SUPPORT */ +} ipcp_options; + +#if 0 /* UNUSED, already defined by lwIP */ +char *ip_ntoa (u32_t); +#endif /* UNUSED, already defined by lwIP */ + +extern const struct protent ipcp_protent; + +#ifdef __cplusplus +} +#endif + +#endif /* IPCP_H */ +#endif /* PPP_SUPPORT && PPP_IPV4_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ipv6cp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ipv6cp.h new file mode 100644 index 000000000..48b071537 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ipv6cp.h @@ -0,0 +1,191 @@ +/* + * ipv6cp.h - PPP IPV6 Control Protocol. + * + * Copyright (c) 1999 Tommi Komulainen. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Tommi Komulainen + * ". + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +/* Original version, based on RFC2023 : + + Copyright (c) 1995, 1996, 1997 Francis.Dupont@inria.fr, INRIA Rocquencourt, + Alain.Durand@imag.fr, IMAG, + Jean-Luc.Richier@imag.fr, IMAG-LSR. + + Copyright (c) 1998, 1999 Francis.Dupont@inria.fr, GIE DYADE, + Alain.Durand@imag.fr, IMAG, + Jean-Luc.Richier@imag.fr, IMAG-LSR. + + Ce travail a été fait au sein du GIE DYADE (Groupement d'Intérêt + Économique ayant pour membres BULL S.A. et l'INRIA). + + Ce logiciel informatique est disponible aux conditions + usuelles dans la recherche, c'est-à-dire qu'il peut + être utilisé, copié, modifié, distribué à l'unique + condition que ce texte soit conservé afin que + l'origine de ce logiciel soit reconnue. + + Le nom de l'Institut National de Recherche en Informatique + et en Automatique (INRIA), de l'IMAG, ou d'une personne morale + ou physique ayant participé à l'élaboration de ce logiciel ne peut + être utilisé sans son accord préalable explicite. + + Ce logiciel est fourni tel quel sans aucune garantie, + support ou responsabilité d'aucune sorte. + Ce logiciel est dérivé de sources d'origine + "University of California at Berkeley" et + "Digital Equipment Corporation" couvertes par des copyrights. + + L'Institut d'Informatique et de Mathématiques Appliquées de Grenoble (IMAG) + est une fédération d'unités mixtes de recherche du CNRS, de l'Institut National + Polytechnique de Grenoble et de l'Université Joseph Fourier regroupant + sept laboratoires dont le laboratoire Logiciels, Systèmes, Réseaux (LSR). + + This work has been done in the context of GIE DYADE (joint R & D venture + between BULL S.A. and INRIA). + + This software is available with usual "research" terms + with the aim of retain credits of the software. + Permission to use, copy, modify and distribute this software for any + purpose and without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies, + and the name of INRIA, IMAG, or any contributor not be used in advertising + or publicity pertaining to this material without the prior explicit + permission. The software is provided "as is" without any + warranties, support or liabilities of any kind. + This software is derived from source code from + "University of California at Berkeley" and + "Digital Equipment Corporation" protected by copyrights. + + Grenoble's Institute of Computer Science and Applied Mathematics (IMAG) + is a federation of seven research units funded by the CNRS, National + Polytechnic Institute of Grenoble and University Joseph Fourier. + The research unit in Software, Systems, Networks (LSR) is member of IMAG. +*/ + +/* + * Derived from : + * + * + * ipcp.h - IP Control Protocol definitions. + * + * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: ipv6cp.h,v 1.7 2002/12/04 23:03:32 paulus Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && PPP_IPV6_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef IPV6CP_H +#define IPV6CP_H + +#include "eui64.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Options. + */ +#define CI_IFACEID 1 /* Interface Identifier */ +#ifdef IPV6CP_COMP +#define CI_COMPRESSTYPE 2 /* Compression Type */ +#endif /* IPV6CP_COMP */ + +/* No compression types yet defined. + *#define IPV6CP_COMP 0x004f + */ +typedef struct ipv6cp_options { + unsigned int neg_ifaceid :1; /* Negotiate interface identifier? */ + unsigned int req_ifaceid :1; /* Ask peer to send interface identifier? */ + unsigned int accept_local :1; /* accept peer's value for iface id? */ + unsigned int opt_local :1; /* ourtoken set by option */ + unsigned int opt_remote :1; /* histoken set by option */ + unsigned int use_ip :1; /* use IP as interface identifier */ +#if 0 + unsigned int use_persistent :1; /* use uniquely persistent value for address */ +#endif +#ifdef IPV6CP_COMP + unsigned int neg_vj :1; /* Van Jacobson Compression? */ +#endif /* IPV6CP_COMP */ + +#ifdef IPV6CP_COMP + u_short vj_protocol; /* protocol value to use in VJ option */ +#endif /* IPV6CP_COMP */ + eui64_t ourid, hisid; /* Interface identifiers */ +} ipv6cp_options; + +extern const struct protent ipv6cp_protent; + +#ifdef __cplusplus +} +#endif + +#endif /* IPV6CP_H */ +#endif /* PPP_SUPPORT && PPP_IPV6_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/lcp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/lcp.h new file mode 100644 index 000000000..37d054829 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/lcp.h @@ -0,0 +1,179 @@ +/* + * lcp.h - Link Control Protocol definitions. + * + * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: lcp.h,v 1.20 2004/11/14 22:53:42 carlsonj Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef LCP_H +#define LCP_H + +#include "ppp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Options. + */ +#define CI_VENDOR 0 /* Vendor Specific */ +#define CI_MRU 1 /* Maximum Receive Unit */ +#define CI_ASYNCMAP 2 /* Async Control Character Map */ +#define CI_AUTHTYPE 3 /* Authentication Type */ +#define CI_QUALITY 4 /* Quality Protocol */ +#define CI_MAGICNUMBER 5 /* Magic Number */ +#define CI_PCOMPRESSION 7 /* Protocol Field Compression */ +#define CI_ACCOMPRESSION 8 /* Address/Control Field Compression */ +#define CI_FCSALTERN 9 /* FCS-Alternatives */ +#define CI_SDP 10 /* Self-Describing-Pad */ +#define CI_NUMBERED 11 /* Numbered-Mode */ +#define CI_CALLBACK 13 /* callback */ +#define CI_MRRU 17 /* max reconstructed receive unit; multilink */ +#define CI_SSNHF 18 /* short sequence numbers for multilink */ +#define CI_EPDISC 19 /* endpoint discriminator */ +#define CI_MPPLUS 22 /* Multi-Link-Plus-Procedure */ +#define CI_LDISC 23 /* Link-Discriminator */ +#define CI_LCPAUTH 24 /* LCP Authentication */ +#define CI_COBS 25 /* Consistent Overhead Byte Stuffing */ +#define CI_PREFELIS 26 /* Prefix Elision */ +#define CI_MPHDRFMT 27 /* MP Header Format */ +#define CI_I18N 28 /* Internationalization */ +#define CI_SDL 29 /* Simple Data Link */ + +/* + * LCP-specific packet types (code numbers). + */ +#define PROTREJ 8 /* Protocol Reject */ +#define ECHOREQ 9 /* Echo Request */ +#define ECHOREP 10 /* Echo Reply */ +#define DISCREQ 11 /* Discard Request */ +#define IDENTIF 12 /* Identification */ +#define TIMEREM 13 /* Time Remaining */ + +/* Value used as data for CI_CALLBACK option */ +#define CBCP_OPT 6 /* Use callback control protocol */ + +#if 0 /* moved to ppp_opts.h */ +#define DEFMRU 1500 /* Try for this */ +#define MINMRU 128 /* No MRUs below this */ +#define MAXMRU 16384 /* Normally limit MRU to this */ +#endif /* moved to ppp_opts.h */ + +/* An endpoint discriminator, used with multilink. */ +#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */ +struct epdisc { + unsigned char class_; /* -- The word "class" is reserved in C++. */ + unsigned char length; + unsigned char value[MAX_ENDP_LEN]; +}; + +/* + * The state of options is described by an lcp_options structure. + */ +typedef struct lcp_options { + unsigned int passive :1; /* Don't die if we don't get a response */ + unsigned int silent :1; /* Wait for the other end to start first */ +#if 0 /* UNUSED */ + unsigned int restart :1; /* Restart vs. exit after close */ +#endif /* UNUSED */ + unsigned int neg_mru :1; /* Negotiate the MRU? */ + unsigned int neg_asyncmap :1; /* Negotiate the async map? */ +#if PAP_SUPPORT + unsigned int neg_upap :1; /* Ask for UPAP authentication? */ +#endif /* PAP_SUPPORT */ +#if CHAP_SUPPORT + unsigned int neg_chap :1; /* Ask for CHAP authentication? */ +#endif /* CHAP_SUPPORT */ +#if EAP_SUPPORT + unsigned int neg_eap :1; /* Ask for EAP authentication? */ +#endif /* EAP_SUPPORT */ + unsigned int neg_magicnumber :1; /* Ask for magic number? */ + unsigned int neg_pcompression :1; /* HDLC Protocol Field Compression? */ + unsigned int neg_accompression :1; /* HDLC Address/Control Field Compression? */ +#if LQR_SUPPORT + unsigned int neg_lqr :1; /* Negotiate use of Link Quality Reports */ +#endif /* LQR_SUPPORT */ + unsigned int neg_cbcp :1; /* Negotiate use of CBCP */ +#ifdef HAVE_MULTILINK + unsigned int neg_mrru :1; /* negotiate multilink MRRU */ +#endif /* HAVE_MULTILINK */ + unsigned int neg_ssnhf :1; /* negotiate short sequence numbers */ + unsigned int neg_endpoint :1; /* negotiate endpoint discriminator */ + + u16_t mru; /* Value of MRU */ +#ifdef HAVE_MULTILINK + u16_t mrru; /* Value of MRRU, and multilink enable */ +#endif /* MULTILINK */ +#if CHAP_SUPPORT + u8_t chap_mdtype; /* which MD types (hashing algorithm) */ +#endif /* CHAP_SUPPORT */ + u32_t asyncmap; /* Value of async map */ + u32_t magicnumber; + u8_t numloops; /* Number of loops during magic number neg. */ +#if LQR_SUPPORT + u32_t lqr_period; /* Reporting period for LQR 1/100ths second */ +#endif /* LQR_SUPPORT */ + struct epdisc endpoint; /* endpoint discriminator */ +} lcp_options; + +void lcp_open(ppp_pcb *pcb); +void lcp_close(ppp_pcb *pcb, const char *reason); +void lcp_lowerup(ppp_pcb *pcb); +void lcp_lowerdown(ppp_pcb *pcb); +void lcp_sprotrej(ppp_pcb *pcb, u_char *p, int len); /* send protocol reject */ + +extern const struct protent lcp_protent; + +#if 0 /* moved to ppp_opts.h */ +/* Default number of times we receive our magic number from the peer + before deciding the link is looped-back. */ +#define DEFLOOPBACKFAIL 10 +#endif /* moved to ppp_opts.h */ + +#ifdef __cplusplus +} +#endif + +#endif /* LCP_H */ +#endif /* PPP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/magic.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/magic.h new file mode 100644 index 000000000..ffbd073f3 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/magic.h @@ -0,0 +1,130 @@ +/* + * magic.h - PPP Magic Number definitions. + * + * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: magic.h,v 1.5 2003/06/11 23:56:26 paulus Exp $ + */ +/***************************************************************************** +* randm.h - Random number generator header file. +* +* Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. +* Copyright (c) 1998 Global Election Systems Inc. +* +* The authors hereby grant permission to use, copy, modify, distribute, +* and license this software and its documentation for any purpose, provided +* that existing copyright notices are retained in all copies and that this +* notice and the following disclaimer are included verbatim in any +* distributions. No written agreement, license, or royalty fee is required +* for any of the authorized uses. +* +* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR +* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +****************************************************************************** +* REVISION HISTORY +* +* 03-01-01 Marc Boucher +* Ported to lwIP. +* 98-05-29 Guy Lancaster , Global Election Systems Inc. +* Extracted from avos. +*****************************************************************************/ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef MAGIC_H +#define MAGIC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/*********************** +*** PUBLIC FUNCTIONS *** +***********************/ + +/* + * Initialize the random number generator. + */ +void magic_init(void); + +/* + * Randomize our random seed value. To be called for truely random events + * such as user operations and network traffic. + */ +void magic_randomize(void); + +/* + * Return a new random number. + */ +u32_t magic(void); /* Returns the next magic number */ + +/* + * Fill buffer with random bytes + * + * Use the random pool to generate random data. This degrades to pseudo + * random when used faster than randomness is supplied using magic_churnrand(). + * Thus it's important to make sure that the results of this are not + * published directly because one could predict the next result to at + * least some degree. Also, it's important to get a good seed before + * the first use. + */ +void magic_random_bytes(unsigned char *buf, u32_t buf_len); + +/* + * Return a new random number between 0 and (2^pow)-1 included. + */ +u32_t magic_pow(u8_t pow); + +#ifdef __cplusplus +} +#endif + +#endif /* MAGIC_H */ + +#endif /* PPP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/mppe.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/mppe.h new file mode 100644 index 000000000..4f504fb0a --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/mppe.h @@ -0,0 +1,181 @@ +/* + * mppe.h - Definitions for MPPE + * + * Copyright (c) 2008 Paul Mackerras. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Paul Mackerras + * ". + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && MPPE_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef MPPE_H +#define MPPE_H + +#include "netif/ppp/pppcrypt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define MPPE_PAD 4 /* MPPE growth per frame */ +#define MPPE_MAX_KEY_LEN 16 /* largest key length (128-bit) */ + +/* option bits for ccp_options.mppe */ +#define MPPE_OPT_40 0x01 /* 40 bit */ +#define MPPE_OPT_128 0x02 /* 128 bit */ +#define MPPE_OPT_STATEFUL 0x04 /* stateful mode */ +/* unsupported opts */ +#define MPPE_OPT_56 0x08 /* 56 bit */ +#define MPPE_OPT_MPPC 0x10 /* MPPC compression */ +#define MPPE_OPT_D 0x20 /* Unknown */ +#define MPPE_OPT_UNSUPPORTED (MPPE_OPT_56|MPPE_OPT_MPPC|MPPE_OPT_D) +#define MPPE_OPT_UNKNOWN 0x40 /* Bits !defined in RFC 3078 were set */ + +/* + * This is not nice ... the alternative is a bitfield struct though. + * And unfortunately, we cannot share the same bits for the option + * names above since C and H are the same bit. We could do a u_int32 + * but then we have to do a lwip_htonl() all the time and/or we still need + * to know which octet is which. + */ +#define MPPE_C_BIT 0x01 /* MPPC */ +#define MPPE_D_BIT 0x10 /* Obsolete, usage unknown */ +#define MPPE_L_BIT 0x20 /* 40-bit */ +#define MPPE_S_BIT 0x40 /* 128-bit */ +#define MPPE_M_BIT 0x80 /* 56-bit, not supported */ +#define MPPE_H_BIT 0x01 /* Stateless (in a different byte) */ + +/* Does not include H bit; used for least significant octet only. */ +#define MPPE_ALL_BITS (MPPE_D_BIT|MPPE_L_BIT|MPPE_S_BIT|MPPE_M_BIT|MPPE_H_BIT) + +/* Build a CI from mppe opts (see RFC 3078) */ +#define MPPE_OPTS_TO_CI(opts, ci) \ + do { \ + u_char *ptr = ci; /* u_char[4] */ \ + \ + /* H bit */ \ + if (opts & MPPE_OPT_STATEFUL) \ + *ptr++ = 0x0; \ + else \ + *ptr++ = MPPE_H_BIT; \ + *ptr++ = 0; \ + *ptr++ = 0; \ + \ + /* S,L bits */ \ + *ptr = 0; \ + if (opts & MPPE_OPT_128) \ + *ptr |= MPPE_S_BIT; \ + if (opts & MPPE_OPT_40) \ + *ptr |= MPPE_L_BIT; \ + /* M,D,C bits not supported */ \ + } while (/* CONSTCOND */ 0) + +/* The reverse of the above */ +#define MPPE_CI_TO_OPTS(ci, opts) \ + do { \ + const u_char *ptr = ci; /* u_char[4] */ \ + \ + opts = 0; \ + \ + /* H bit */ \ + if (!(ptr[0] & MPPE_H_BIT)) \ + opts |= MPPE_OPT_STATEFUL; \ + \ + /* S,L bits */ \ + if (ptr[3] & MPPE_S_BIT) \ + opts |= MPPE_OPT_128; \ + if (ptr[3] & MPPE_L_BIT) \ + opts |= MPPE_OPT_40; \ + \ + /* M,D,C bits */ \ + if (ptr[3] & MPPE_M_BIT) \ + opts |= MPPE_OPT_56; \ + if (ptr[3] & MPPE_D_BIT) \ + opts |= MPPE_OPT_D; \ + if (ptr[3] & MPPE_C_BIT) \ + opts |= MPPE_OPT_MPPC; \ + \ + /* Other bits */ \ + if (ptr[0] & ~MPPE_H_BIT) \ + opts |= MPPE_OPT_UNKNOWN; \ + if (ptr[1] || ptr[2]) \ + opts |= MPPE_OPT_UNKNOWN; \ + if (ptr[3] & ~MPPE_ALL_BITS) \ + opts |= MPPE_OPT_UNKNOWN; \ + } while (/* CONSTCOND */ 0) + +/* Shared MPPE padding between MSCHAP and MPPE */ +#define SHA1_PAD_SIZE 40 + +static const u8_t mppe_sha1_pad1[SHA1_PAD_SIZE] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +static const u8_t mppe_sha1_pad2[SHA1_PAD_SIZE] = { + 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, + 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, + 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, + 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2 +}; + +/* + * State for an MPPE (de)compressor. + */ +typedef struct ppp_mppe_state { + lwip_arc4_context arc4; + u8_t master_key[MPPE_MAX_KEY_LEN]; + u8_t session_key[MPPE_MAX_KEY_LEN]; + u8_t keylen; /* key length in bytes */ + /* NB: 128-bit == 16, 40-bit == 8! + * If we want to support 56-bit, the unit has to change to bits + */ + u8_t bits; /* MPPE control bits */ + u16_t ccount; /* 12-bit coherency count (seqno) */ + u16_t sanity_errors; /* take down LCP if too many */ + unsigned int stateful :1; /* stateful mode flag */ + unsigned int discard :1; /* stateful mode packet loss flag */ +} ppp_mppe_state; + +void mppe_set_key(ppp_pcb *pcb, ppp_mppe_state *state, u8_t *key); +void mppe_init(ppp_pcb *pcb, ppp_mppe_state *state, u8_t options); +void mppe_comp_reset(ppp_pcb *pcb, ppp_mppe_state *state); +err_t mppe_compress(ppp_pcb *pcb, ppp_mppe_state *state, struct pbuf **pb, u16_t protocol); +void mppe_decomp_reset(ppp_pcb *pcb, ppp_mppe_state *state); +err_t mppe_decompress(ppp_pcb *pcb, ppp_mppe_state *state, struct pbuf **pb); + +#ifdef __cplusplus +} +#endif + +#endif /* MPPE_H */ +#endif /* PPP_SUPPORT && MPPE_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp.h new file mode 100644 index 000000000..3595b7bfb --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp.h @@ -0,0 +1,698 @@ +/***************************************************************************** +* ppp.h - Network Point to Point Protocol header file. +* +* Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. +* portions Copyright (c) 1997 Global Election Systems Inc. +* +* The authors hereby grant permission to use, copy, modify, distribute, +* and license this software and its documentation for any purpose, provided +* that existing copyright notices are retained in all copies and that this +* notice and the following disclaimer are included verbatim in any +* distributions. No written agreement, license, or royalty fee is required +* for any of the authorized uses. +* +* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR +* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +****************************************************************************** +* REVISION HISTORY +* +* 03-01-01 Marc Boucher +* Ported to lwIP. +* 97-11-05 Guy Lancaster , Global Election Systems Inc. +* Original derived from BSD codes. +*****************************************************************************/ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef PPP_H +#define PPP_H + +#include "lwip/def.h" +#include "lwip/stats.h" +#include "lwip/mem.h" +#include "lwip/netif.h" +#include "lwip/sys.h" +#include "lwip/timeouts.h" +#if PPP_IPV6_SUPPORT +#include "lwip/ip6_addr.h" +#endif /* PPP_IPV6_SUPPORT */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Disable non-working or rarely used PPP feature, so rarely that we don't want to bloat ppp_opts.h with them */ +#ifndef PPP_OPTIONS +#define PPP_OPTIONS 0 +#endif + +#ifndef PPP_NOTIFY +#define PPP_NOTIFY 0 +#endif + +#ifndef PPP_REMOTENAME +#define PPP_REMOTENAME 0 +#endif + +#ifndef PPP_IDLETIMELIMIT +#define PPP_IDLETIMELIMIT 0 +#endif + +#ifndef PPP_LCP_ADAPTIVE +#define PPP_LCP_ADAPTIVE 0 +#endif + +#ifndef PPP_MAXCONNECT +#define PPP_MAXCONNECT 0 +#endif + +#ifndef PPP_ALLOWED_ADDRS +#define PPP_ALLOWED_ADDRS 0 +#endif + +#ifndef PPP_PROTOCOLNAME +#define PPP_PROTOCOLNAME 0 +#endif + +#ifndef PPP_STATS_SUPPORT +#define PPP_STATS_SUPPORT 0 +#endif + +#ifndef DEFLATE_SUPPORT +#define DEFLATE_SUPPORT 0 +#endif + +#ifndef BSDCOMPRESS_SUPPORT +#define BSDCOMPRESS_SUPPORT 0 +#endif + +#ifndef PREDICTOR_SUPPORT +#define PREDICTOR_SUPPORT 0 +#endif + +/************************* +*** PUBLIC DEFINITIONS *** +*************************/ + +/* + * The basic PPP frame. + */ +#define PPP_HDRLEN 4 /* octets for standard ppp header */ +#define PPP_FCSLEN 2 /* octets for FCS */ + +/* + * Values for phase. + */ +#define PPP_PHASE_DEAD 0 +#define PPP_PHASE_MASTER 1 +#define PPP_PHASE_HOLDOFF 2 +#define PPP_PHASE_INITIALIZE 3 +#define PPP_PHASE_SERIALCONN 4 +#define PPP_PHASE_DORMANT 5 +#define PPP_PHASE_ESTABLISH 6 +#define PPP_PHASE_AUTHENTICATE 7 +#define PPP_PHASE_CALLBACK 8 +#define PPP_PHASE_NETWORK 9 +#define PPP_PHASE_RUNNING 10 +#define PPP_PHASE_TERMINATE 11 +#define PPP_PHASE_DISCONNECT 12 + +/* Error codes. */ +#define PPPERR_NONE 0 /* No error. */ +#define PPPERR_PARAM 1 /* Invalid parameter. */ +#define PPPERR_OPEN 2 /* Unable to open PPP session. */ +#define PPPERR_DEVICE 3 /* Invalid I/O device for PPP. */ +#define PPPERR_ALLOC 4 /* Unable to allocate resources. */ +#define PPPERR_USER 5 /* User interrupt. */ +#define PPPERR_CONNECT 6 /* Connection lost. */ +#define PPPERR_AUTHFAIL 7 /* Failed authentication challenge. */ +#define PPPERR_PROTOCOL 8 /* Failed to meet protocol. */ +#define PPPERR_PEERDEAD 9 /* Connection timeout */ +#define PPPERR_IDLETIMEOUT 10 /* Idle Timeout */ +#define PPPERR_CONNECTTIME 11 /* Max connect time reached */ +#define PPPERR_LOOPBACK 12 /* Loopback detected */ + +/* Whether auth support is enabled at all */ +#define PPP_AUTH_SUPPORT (PAP_SUPPORT || CHAP_SUPPORT || EAP_SUPPORT) + +/************************ +*** PUBLIC DATA TYPES *** +************************/ + +/* + * Other headers require ppp_pcb definition for prototypes, but ppp_pcb + * require some structure definition from other headers as well, we are + * fixing the dependency loop here by declaring the ppp_pcb type then + * by including headers containing necessary struct definition for ppp_pcb + */ +typedef struct ppp_pcb_s ppp_pcb; + +/* Type definitions for BSD code. */ +#ifndef __u_char_defined +typedef unsigned long u_long; +typedef unsigned int u_int; +typedef unsigned short u_short; +typedef unsigned char u_char; +#endif + +#include "fsm.h" +#include "lcp.h" +#if CCP_SUPPORT +#include "ccp.h" +#endif /* CCP_SUPPORT */ +#if MPPE_SUPPORT +#include "mppe.h" +#endif /* MPPE_SUPPORT */ +#if PPP_IPV4_SUPPORT +#include "ipcp.h" +#endif /* PPP_IPV4_SUPPORT */ +#if PPP_IPV6_SUPPORT +#include "ipv6cp.h" +#endif /* PPP_IPV6_SUPPORT */ +#if PAP_SUPPORT +#include "upap.h" +#endif /* PAP_SUPPORT */ +#if CHAP_SUPPORT +#include "chap-new.h" +#endif /* CHAP_SUPPORT */ +#if EAP_SUPPORT +#include "eap.h" +#endif /* EAP_SUPPORT */ +#if VJ_SUPPORT +#include "vj.h" +#endif /* VJ_SUPPORT */ + +/* Link status callback function prototype */ +typedef void (*ppp_link_status_cb_fn)(ppp_pcb *pcb, int err_code, void *ctx); + +/* + * PPP configuration. + */ +typedef struct ppp_settings_s { + +#if PPP_SERVER && PPP_AUTH_SUPPORT + unsigned int auth_required :1; /* Peer is required to authenticate */ + unsigned int null_login :1; /* Username of "" and a password of "" are acceptable */ +#endif /* PPP_SERVER && PPP_AUTH_SUPPORT */ +#if PPP_REMOTENAME + unsigned int explicit_remote :1; /* remote_name specified with remotename opt */ +#endif /* PPP_REMOTENAME */ +#if PAP_SUPPORT + unsigned int refuse_pap :1; /* Don't proceed auth. with PAP */ +#endif /* PAP_SUPPORT */ +#if CHAP_SUPPORT + unsigned int refuse_chap :1; /* Don't proceed auth. with CHAP */ +#endif /* CHAP_SUPPORT */ +#if MSCHAP_SUPPORT + unsigned int refuse_mschap :1; /* Don't proceed auth. with MS-CHAP */ + unsigned int refuse_mschap_v2 :1; /* Don't proceed auth. with MS-CHAPv2 */ +#endif /* MSCHAP_SUPPORT */ +#if EAP_SUPPORT + unsigned int refuse_eap :1; /* Don't proceed auth. with EAP */ +#endif /* EAP_SUPPORT */ +#if LWIP_DNS + unsigned int usepeerdns :1; /* Ask peer for DNS adds */ +#endif /* LWIP_DNS */ + unsigned int persist :1; /* Persist mode, always try to open the connection */ +#if PRINTPKT_SUPPORT + unsigned int hide_password :1; /* Hide password in dumped packets */ +#endif /* PRINTPKT_SUPPORT */ + unsigned int noremoteip :1; /* Let him have no IP address */ + unsigned int lax_recv :1; /* accept control chars in asyncmap */ + unsigned int noendpoint :1; /* don't send/accept endpoint discriminator */ +#if PPP_LCP_ADAPTIVE + unsigned int lcp_echo_adaptive :1; /* request echo only if the link was idle */ +#endif /* PPP_LCP_ADAPTIVE */ +#if MPPE_SUPPORT + unsigned int require_mppe :1; /* Require MPPE (Microsoft Point to Point Encryption) */ + unsigned int refuse_mppe_40 :1; /* Allow MPPE 40-bit mode? */ + unsigned int refuse_mppe_128 :1; /* Allow MPPE 128-bit mode? */ + unsigned int refuse_mppe_stateful :1; /* Allow MPPE stateful mode? */ +#endif /* MPPE_SUPPORT */ + + u16_t listen_time; /* time to listen first (ms), waiting for peer to send LCP packet */ + +#if PPP_IDLETIMELIMIT + u16_t idle_time_limit; /* Disconnect if idle for this many seconds */ +#endif /* PPP_IDLETIMELIMIT */ +#if PPP_MAXCONNECT + u32_t maxconnect; /* Maximum connect time (seconds) */ +#endif /* PPP_MAXCONNECT */ + +#if PPP_AUTH_SUPPORT + /* auth data */ + const char *user; /* Username for PAP */ + const char *passwd; /* Password for PAP, secret for CHAP */ +#if PPP_REMOTENAME + char remote_name[MAXNAMELEN + 1]; /* Peer's name for authentication */ +#endif /* PPP_REMOTENAME */ + +#if PAP_SUPPORT + u8_t pap_timeout_time; /* Timeout (seconds) for auth-req retrans. */ + u8_t pap_max_transmits; /* Number of auth-reqs sent */ +#if PPP_SERVER + u8_t pap_req_timeout; /* Time to wait for auth-req from peer */ +#endif /* PPP_SERVER */ +#endif /* PAP_SUPPPORT */ + +#if CHAP_SUPPORT + u8_t chap_timeout_time; /* Timeout (seconds) for retransmitting req */ + u8_t chap_max_transmits; /* max # times to send challenge */ +#if PPP_SERVER + u8_t chap_rechallenge_time; /* Time to wait for auth-req from peer */ +#endif /* PPP_SERVER */ +#endif /* CHAP_SUPPPORT */ + +#if EAP_SUPPORT + u8_t eap_req_time; /* Time to wait (for retransmit/fail) */ + u8_t eap_allow_req; /* Max Requests allowed */ +#if PPP_SERVER + u8_t eap_timeout_time; /* Time to wait (for retransmit/fail) */ + u8_t eap_max_transmits; /* Max Requests allowed */ +#endif /* PPP_SERVER */ +#endif /* EAP_SUPPORT */ + +#endif /* PPP_AUTH_SUPPORT */ + + u8_t fsm_timeout_time; /* Timeout time in seconds */ + u8_t fsm_max_conf_req_transmits; /* Maximum Configure-Request transmissions */ + u8_t fsm_max_term_transmits; /* Maximum Terminate-Request transmissions */ + u8_t fsm_max_nak_loops; /* Maximum number of nak loops tolerated */ + + u8_t lcp_loopbackfail; /* Number of times we receive our magic number from the peer + before deciding the link is looped-back. */ + u8_t lcp_echo_interval; /* Interval between LCP echo-requests */ + u8_t lcp_echo_fails; /* Tolerance to unanswered echo-requests */ + +} ppp_settings; + +#if PPP_SERVER +struct ppp_addrs { +#if PPP_IPV4_SUPPORT + ip4_addr_t our_ipaddr, his_ipaddr, netmask; +#if LWIP_DNS + ip4_addr_t dns1, dns2; +#endif /* LWIP_DNS */ +#endif /* PPP_IPV4_SUPPORT */ +#if PPP_IPV6_SUPPORT + ip6_addr_t our6_ipaddr, his6_ipaddr; +#endif /* PPP_IPV6_SUPPORT */ +}; +#endif /* PPP_SERVER */ + +/* + * PPP interface control block. + */ +struct ppp_pcb_s { + ppp_settings settings; + const struct link_callbacks *link_cb; + void *link_ctx_cb; + void (*link_status_cb)(ppp_pcb *pcb, int err_code, void *ctx); /* Status change callback */ +#if PPP_NOTIFY_PHASE + void (*notify_phase_cb)(ppp_pcb *pcb, u8_t phase, void *ctx); /* Notify phase callback */ +#endif /* PPP_NOTIFY_PHASE */ + void *ctx_cb; /* Callbacks optional pointer */ + struct netif *netif; /* PPP interface */ + u8_t phase; /* where the link is at */ + u8_t err_code; /* Code indicating why interface is down. */ + + /* flags */ +#if PPP_IPV4_SUPPORT + unsigned int ask_for_local :1; /* request our address from peer */ + unsigned int ipcp_is_open :1; /* haven't called np_finished() */ + unsigned int ipcp_is_up :1; /* have called ipcp_up() */ + unsigned int if4_up :1; /* True when the IPv4 interface is up. */ +#if 0 /* UNUSED - PROXY ARP */ + unsigned int proxy_arp_set :1; /* Have created proxy arp entry */ +#endif /* UNUSED - PROXY ARP */ +#endif /* PPP_IPV4_SUPPORT */ +#if PPP_IPV6_SUPPORT + unsigned int ipv6cp_is_up :1; /* have called ip6cp_up() */ + unsigned int if6_up :1; /* True when the IPv6 interface is up. */ +#endif /* PPP_IPV6_SUPPORT */ + unsigned int lcp_echo_timer_running :1; /* set if a timer is running */ +#if VJ_SUPPORT + unsigned int vj_enabled :1; /* Flag indicating VJ compression enabled. */ +#endif /* VJ_SUPPORT */ +#if CCP_SUPPORT + unsigned int ccp_all_rejected :1; /* we rejected all peer's options */ +#endif /* CCP_SUPPORT */ +#if MPPE_SUPPORT + unsigned int mppe_keys_set :1; /* Have the MPPE keys been set? */ +#endif /* MPPE_SUPPORT */ + +#if PPP_AUTH_SUPPORT + /* auth data */ +#if PPP_SERVER && defined(HAVE_MULTILINK) + char peer_authname[MAXNAMELEN + 1]; /* The name by which the peer authenticated itself to us. */ +#endif /* PPP_SERVER && defined(HAVE_MULTILINK) */ + u16_t auth_pending; /* Records which authentication operations haven't completed yet. */ + u16_t auth_done; /* Records which authentication operations have been completed. */ + +#if PAP_SUPPORT + upap_state upap; /* PAP data */ +#endif /* PAP_SUPPORT */ + +#if CHAP_SUPPORT + chap_client_state chap_client; /* CHAP client data */ +#if PPP_SERVER + chap_server_state chap_server; /* CHAP server data */ +#endif /* PPP_SERVER */ +#endif /* CHAP_SUPPORT */ + +#if EAP_SUPPORT + eap_state eap; /* EAP data */ +#endif /* EAP_SUPPORT */ +#endif /* PPP_AUTH_SUPPORT */ + + fsm lcp_fsm; /* LCP fsm structure */ + lcp_options lcp_wantoptions; /* Options that we want to request */ + lcp_options lcp_gotoptions; /* Options that peer ack'd */ + lcp_options lcp_allowoptions; /* Options we allow peer to request */ + lcp_options lcp_hisoptions; /* Options that we ack'd */ + u16_t peer_mru; /* currently negotiated peer MRU */ + u8_t lcp_echos_pending; /* Number of outstanding echo msgs */ + u8_t lcp_echo_number; /* ID number of next echo frame */ + + u8_t num_np_open; /* Number of network protocols which we have opened. */ + u8_t num_np_up; /* Number of network protocols which have come up. */ + +#if VJ_SUPPORT + struct vjcompress vj_comp; /* Van Jacobson compression header. */ +#endif /* VJ_SUPPORT */ + +#if CCP_SUPPORT + fsm ccp_fsm; /* CCP fsm structure */ + ccp_options ccp_wantoptions; /* what to request the peer to use */ + ccp_options ccp_gotoptions; /* what the peer agreed to do */ + ccp_options ccp_allowoptions; /* what we'll agree to do */ + ccp_options ccp_hisoptions; /* what we agreed to do */ + u8_t ccp_localstate; /* Local state (mainly for handling reset-reqs and reset-acks). */ + u8_t ccp_receive_method; /* Method chosen on receive path */ + u8_t ccp_transmit_method; /* Method chosen on transmit path */ +#if MPPE_SUPPORT + ppp_mppe_state mppe_comp; /* MPPE "compressor" structure */ + ppp_mppe_state mppe_decomp; /* MPPE "decompressor" structure */ +#endif /* MPPE_SUPPORT */ +#endif /* CCP_SUPPORT */ + +#if PPP_IPV4_SUPPORT + fsm ipcp_fsm; /* IPCP fsm structure */ + ipcp_options ipcp_wantoptions; /* Options that we want to request */ + ipcp_options ipcp_gotoptions; /* Options that peer ack'd */ + ipcp_options ipcp_allowoptions; /* Options we allow peer to request */ + ipcp_options ipcp_hisoptions; /* Options that we ack'd */ +#endif /* PPP_IPV4_SUPPORT */ + +#if PPP_IPV6_SUPPORT + fsm ipv6cp_fsm; /* IPV6CP fsm structure */ + ipv6cp_options ipv6cp_wantoptions; /* Options that we want to request */ + ipv6cp_options ipv6cp_gotoptions; /* Options that peer ack'd */ + ipv6cp_options ipv6cp_allowoptions; /* Options we allow peer to request */ + ipv6cp_options ipv6cp_hisoptions; /* Options that we ack'd */ +#endif /* PPP_IPV6_SUPPORT */ +}; + +/************************ + *** PUBLIC FUNCTIONS *** + ************************/ + +/* + * WARNING: For multi-threads environment, all ppp_set_* functions most + * only be called while the PPP is in the dead phase (i.e. disconnected). + */ + +#if PPP_AUTH_SUPPORT +/* + * Set PPP authentication. + * + * Warning: Using PPPAUTHTYPE_ANY might have security consequences. + * RFC 1994 says: + * + * In practice, within or associated with each PPP server, there is a + * database which associates "user" names with authentication + * information ("secrets"). It is not anticipated that a particular + * named user would be authenticated by multiple methods. This would + * make the user vulnerable to attacks which negotiate the least secure + * method from among a set (such as PAP rather than CHAP). If the same + * secret was used, PAP would reveal the secret to be used later with + * CHAP. + * + * Instead, for each user name there should be an indication of exactly + * one method used to authenticate that user name. If a user needs to + * make use of different authentication methods under different + * circumstances, then distinct user names SHOULD be employed, each of + * which identifies exactly one authentication method. + * + * Default is none auth type, unset (NULL) user and passwd. + */ +#define PPPAUTHTYPE_NONE 0x00 +#define PPPAUTHTYPE_PAP 0x01 +#define PPPAUTHTYPE_CHAP 0x02 +#define PPPAUTHTYPE_MSCHAP 0x04 +#define PPPAUTHTYPE_MSCHAP_V2 0x08 +#define PPPAUTHTYPE_EAP 0x10 +#define PPPAUTHTYPE_ANY 0xff +void ppp_set_auth(ppp_pcb *pcb, u8_t authtype, const char *user, const char *passwd); + +/* + * If set, peer is required to authenticate. This is mostly necessary for PPP server support. + * + * Default is false. + */ +#define ppp_set_auth_required(ppp, boolval) (ppp->settings.auth_required = boolval) +#endif /* PPP_AUTH_SUPPORT */ + +#if PPP_IPV4_SUPPORT +/* + * Set PPP interface "our" and "his" IPv4 addresses. This is mostly necessary for PPP server + * support but it can also be used on a PPP link where each side choose its own IP address. + * + * Default is unset (0.0.0.0). + */ +#define ppp_set_ipcp_ouraddr(ppp, addr) do { ppp->ipcp_wantoptions.ouraddr = ip4_addr_get_u32(addr); \ + ppp->ask_for_local = ppp->ipcp_wantoptions.ouraddr != 0; } while(0) +#define ppp_set_ipcp_hisaddr(ppp, addr) (ppp->ipcp_wantoptions.hisaddr = ip4_addr_get_u32(addr)) +#if LWIP_DNS +/* + * Set DNS server addresses that are sent if the peer asks for them. This is mostly necessary + * for PPP server support. + * + * Default is unset (0.0.0.0). + */ +#define ppp_set_ipcp_dnsaddr(ppp, index, addr) (ppp->ipcp_allowoptions.dnsaddr[index] = ip4_addr_get_u32(addr)) + +/* + * If set, we ask the peer for up to 2 DNS server addresses. Received DNS server addresses are + * registered using the dns_setserver() function. + * + * Default is false. + */ +#define ppp_set_usepeerdns(ppp, boolval) (ppp->settings.usepeerdns = boolval) +#endif /* LWIP_DNS */ +#endif /* PPP_IPV4_SUPPORT */ + +#if MPPE_SUPPORT +/* Disable MPPE (Microsoft Point to Point Encryption). This parameter is exclusive. */ +#define PPP_MPPE_DISABLE 0x00 +/* Require the use of MPPE (Microsoft Point to Point Encryption). */ +#define PPP_MPPE_ENABLE 0x01 +/* Allow MPPE to use stateful mode. Stateless mode is still attempted first. */ +#define PPP_MPPE_ALLOW_STATEFUL 0x02 +/* Refuse the use of MPPE with 40-bit encryption. Conflict with PPP_MPPE_REFUSE_128. */ +#define PPP_MPPE_REFUSE_40 0x04 +/* Refuse the use of MPPE with 128-bit encryption. Conflict with PPP_MPPE_REFUSE_40. */ +#define PPP_MPPE_REFUSE_128 0x08 +/* + * Set MPPE configuration + * + * Default is disabled. + */ +void ppp_set_mppe(ppp_pcb *pcb, u8_t flags); +#endif /* MPPE_SUPPORT */ + +/* + * Wait for up to intval milliseconds for a valid PPP packet from the peer. + * At the end of this time, or when a valid PPP packet is received from the + * peer, we commence negotiation by sending our first LCP packet. + * + * Default is 0. + */ +#define ppp_set_listen_time(ppp, intval) (ppp->settings.listen_time = intval) + +/* + * If set, we will attempt to initiate a connection but if no reply is received from + * the peer, we will then just wait passively for a valid LCP packet from the peer. + * + * Default is false. + */ +#define ppp_set_passive(ppp, boolval) (ppp->lcp_wantoptions.passive = boolval) + +/* + * If set, we will not transmit LCP packets to initiate a connection until a valid + * LCP packet is received from the peer. This is what we usually call the server mode. + * + * Default is false. + */ +#define ppp_set_silent(ppp, boolval) (ppp->lcp_wantoptions.silent = boolval) + +/* + * If set, enable protocol field compression negotiation in both the receive and + * the transmit direction. + * + * Default is true. + */ +#define ppp_set_neg_pcomp(ppp, boolval) (ppp->lcp_wantoptions.neg_pcompression = \ + ppp->lcp_allowoptions.neg_pcompression = boolval) + +/* + * If set, enable Address/Control compression in both the receive and the transmit + * direction. + * + * Default is true. + */ +#define ppp_set_neg_accomp(ppp, boolval) (ppp->lcp_wantoptions.neg_accompression = \ + ppp->lcp_allowoptions.neg_accompression = boolval) + +/* + * If set, enable asyncmap negotiation. Otherwise forcing all control characters to + * be escaped for both the transmit and the receive direction. + * + * Default is true. + */ +#define ppp_set_neg_asyncmap(ppp, boolval) (ppp->lcp_wantoptions.neg_asyncmap = \ + ppp->lcp_allowoptions.neg_asyncmap = boolval) + +/* + * This option sets the Async-Control-Character-Map (ACCM) for this end of the link. + * The ACCM is a set of 32 bits, one for each of the ASCII control characters with + * values from 0 to 31, where a 1 bit indicates that the corresponding control + * character should not be used in PPP packets sent to this system. The map is + * an unsigned 32 bits integer where the least significant bit (00000001) represents + * character 0 and the most significant bit (80000000) represents character 31. + * We will then ask the peer to send these characters as a 2-byte escape sequence. + * + * Default is 0. + */ +#define ppp_set_asyncmap(ppp, intval) (ppp->lcp_wantoptions.asyncmap = intval) + +/* + * Set a PPP interface as the default network interface + * (used to output all packets for which no specific route is found). + */ +#define ppp_set_default(ppp) netif_set_default(ppp->netif) + +#if PPP_NOTIFY_PHASE +/* + * Set a PPP notify phase callback. + * + * This can be used for example to set a LED pattern depending on the + * current phase of the PPP session. + */ +typedef void (*ppp_notify_phase_cb_fn)(ppp_pcb *pcb, u8_t phase, void *ctx); +void ppp_set_notify_phase_callback(ppp_pcb *pcb, ppp_notify_phase_cb_fn notify_phase_cb); +#endif /* PPP_NOTIFY_PHASE */ + +/* + * Initiate a PPP connection. + * + * This can only be called if PPP is in the dead phase. + * + * Holdoff is the time to wait (in seconds) before initiating + * the connection. + * + * If this port connects to a modem, the modem connection must be + * established before calling this. + */ +err_t ppp_connect(ppp_pcb *pcb, u16_t holdoff); + +#if PPP_SERVER +/* + * Listen for an incoming PPP connection. + * + * This can only be called if PPP is in the dead phase. + * + * If this port connects to a modem, the modem connection must be + * established before calling this. + */ +err_t ppp_listen(ppp_pcb *pcb); +#endif /* PPP_SERVER */ + +/* + * Initiate the end of a PPP connection. + * Any outstanding packets in the queues are dropped. + * + * Setting nocarrier to 1 close the PPP connection without initiating the + * shutdown procedure. Always using nocarrier = 0 is still recommended, + * this is going to take a little longer time if your link is down, but + * is a safer choice for the PPP state machine. + * + * Return 0 on success, an error code on failure. + */ +err_t ppp_close(ppp_pcb *pcb, u8_t nocarrier); + +/* + * Release the control block. + * + * This can only be called if PPP is in the dead phase. + * + * You must use ppp_close() before if you wish to terminate + * an established PPP session. + * + * Return 0 on success, an error code on failure. + */ +err_t ppp_free(ppp_pcb *pcb); + +/* + * PPP IOCTL commands. + * + * Get the up status - 0 for down, non-zero for up. The argument must + * point to an int. + */ +#define PPPCTLG_UPSTATUS 0 + +/* + * Get the PPP error code. The argument must point to an int. + * Returns a PPPERR_* value. + */ +#define PPPCTLG_ERRCODE 1 + +/* + * Get the fd associated with a PPP over serial + */ +#define PPPCTLG_FD 2 + +/* + * Get and set parameters for the given connection. + * Return 0 on success, an error code on failure. + */ +err_t ppp_ioctl(ppp_pcb *pcb, u8_t cmd, void *arg); + +/* Get the PPP netif interface */ +#define ppp_netif(ppp) (ppp->netif) + +/* Set an lwIP-style status-callback for the selected PPP device */ +#define ppp_set_netif_statuscallback(ppp, status_cb) \ + netif_set_status_callback(ppp->netif, status_cb); + +/* Set an lwIP-style link-callback for the selected PPP device */ +#define ppp_set_netif_linkcallback(ppp, link_cb) \ + netif_set_link_callback(ppp->netif, link_cb); + +#ifdef __cplusplus +} +#endif + +#endif /* PPP_H */ + +#endif /* PPP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp_impl.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp_impl.h new file mode 100644 index 000000000..280ff0078 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp_impl.h @@ -0,0 +1,722 @@ +/***************************************************************************** +* ppp.h - Network Point to Point Protocol header file. +* +* Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. +* portions Copyright (c) 1997 Global Election Systems Inc. +* +* The authors hereby grant permission to use, copy, modify, distribute, +* and license this software and its documentation for any purpose, provided +* that existing copyright notices are retained in all copies and that this +* notice and the following disclaimer are included verbatim in any +* distributions. No written agreement, license, or royalty fee is required +* for any of the authorized uses. +* +* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR +* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +****************************************************************************** +* REVISION HISTORY +* +* 03-01-01 Marc Boucher +* Ported to lwIP. +* 97-11-05 Guy Lancaster , Global Election Systems Inc. +* Original derived from BSD codes. +*****************************************************************************/ +#ifndef LWIP_HDR_PPP_IMPL_H +#define LWIP_HDR_PPP_IMPL_H + +#include "netif/ppp/ppp_opts.h" + +#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifdef PPP_INCLUDE_SETTINGS_HEADER +#include "ppp_settings.h" +#endif + +#include /* formats */ +#include +#include +#include /* strtol() */ + +#include "lwip/netif.h" +#include "lwip/def.h" +#include "lwip/timeouts.h" + +#include "ppp.h" +#include "pppdebug.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Memory used for control packets. + * + * PPP_CTRL_PBUF_MAX_SIZE is the amount of memory we allocate when we + * cannot figure out how much we are going to use before filling the buffer. + */ +#if PPP_USE_PBUF_RAM +#define PPP_CTRL_PBUF_TYPE PBUF_RAM +#define PPP_CTRL_PBUF_MAX_SIZE 512 +#else /* PPP_USE_PBUF_RAM */ +#define PPP_CTRL_PBUF_TYPE PBUF_POOL +#define PPP_CTRL_PBUF_MAX_SIZE PBUF_POOL_BUFSIZE +#endif /* PPP_USE_PBUF_RAM */ + +/* + * The basic PPP frame. + */ +#define PPP_ADDRESS(p) (((u_char *)(p))[0]) +#define PPP_CONTROL(p) (((u_char *)(p))[1]) +#define PPP_PROTOCOL(p) ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3]) + +/* + * Significant octet values. + */ +#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */ +#define PPP_UI 0x03 /* Unnumbered Information */ +#define PPP_FLAG 0x7e /* Flag Sequence */ +#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */ +#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */ + +/* + * Protocol field values. + */ +#define PPP_IP 0x21 /* Internet Protocol */ +#if 0 /* UNUSED */ +#define PPP_AT 0x29 /* AppleTalk Protocol */ +#define PPP_IPX 0x2b /* IPX protocol */ +#endif /* UNUSED */ +#if VJ_SUPPORT +#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */ +#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */ +#endif /* VJ_SUPPORT */ +#if PPP_IPV6_SUPPORT +#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */ +#endif /* PPP_IPV6_SUPPORT */ +#if CCP_SUPPORT +#define PPP_COMP 0xfd /* compressed packet */ +#endif /* CCP_SUPPORT */ +#define PPP_IPCP 0x8021 /* IP Control Protocol */ +#if 0 /* UNUSED */ +#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */ +#define PPP_IPXCP 0x802b /* IPX Control Protocol */ +#endif /* UNUSED */ +#if PPP_IPV6_SUPPORT +#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */ +#endif /* PPP_IPV6_SUPPORT */ +#if CCP_SUPPORT +#define PPP_CCP 0x80fd /* Compression Control Protocol */ +#endif /* CCP_SUPPORT */ +#if ECP_SUPPORT +#define PPP_ECP 0x8053 /* Encryption Control Protocol */ +#endif /* ECP_SUPPORT */ +#define PPP_LCP 0xc021 /* Link Control Protocol */ +#if PAP_SUPPORT +#define PPP_PAP 0xc023 /* Password Authentication Protocol */ +#endif /* PAP_SUPPORT */ +#if LQR_SUPPORT +#define PPP_LQR 0xc025 /* Link Quality Report protocol */ +#endif /* LQR_SUPPORT */ +#if CHAP_SUPPORT +#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */ +#endif /* CHAP_SUPPORT */ +#if CBCP_SUPPORT +#define PPP_CBCP 0xc029 /* Callback Control Protocol */ +#endif /* CBCP_SUPPORT */ +#if EAP_SUPPORT +#define PPP_EAP 0xc227 /* Extensible Authentication Protocol */ +#endif /* EAP_SUPPORT */ + +/* + * The following struct gives the addresses of procedures to call + * for a particular lower link level protocol. + */ +struct link_callbacks { + /* Start a connection (e.g. Initiate discovery phase) */ + void (*connect) (ppp_pcb *pcb, void *ctx); +#if PPP_SERVER + /* Listen for an incoming connection (Passive mode) */ + void (*listen) (ppp_pcb *pcb, void *ctx); +#endif /* PPP_SERVER */ + /* End a connection (i.e. initiate disconnect phase) */ + void (*disconnect) (ppp_pcb *pcb, void *ctx); + /* Free lower protocol control block */ + err_t (*free) (ppp_pcb *pcb, void *ctx); + /* Write a pbuf to a ppp link, only used from PPP functions to send PPP packets. */ + err_t (*write)(ppp_pcb *pcb, void *ctx, struct pbuf *p); + /* Send a packet from lwIP core (IPv4 or IPv6) */ + err_t (*netif_output)(ppp_pcb *pcb, void *ctx, struct pbuf *p, u_short protocol); + /* configure the transmit-side characteristics of the PPP interface */ + void (*send_config)(ppp_pcb *pcb, void *ctx, u32_t accm, int pcomp, int accomp); + /* confire the receive-side characteristics of the PPP interface */ + void (*recv_config)(ppp_pcb *pcb, void *ctx, u32_t accm, int pcomp, int accomp); +}; + +/* + * What to do with network protocol (NP) packets. + */ +enum NPmode { + NPMODE_PASS, /* pass the packet through */ + NPMODE_DROP, /* silently drop the packet */ + NPMODE_ERROR, /* return an error */ + NPMODE_QUEUE /* save it up for later. */ +}; + +/* + * Statistics. + */ +#if PPP_STATS_SUPPORT +struct pppstat { + unsigned int ppp_ibytes; /* bytes received */ + unsigned int ppp_ipackets; /* packets received */ + unsigned int ppp_ierrors; /* receive errors */ + unsigned int ppp_obytes; /* bytes sent */ + unsigned int ppp_opackets; /* packets sent */ + unsigned int ppp_oerrors; /* transmit errors */ +}; + +#if VJ_SUPPORT +struct vjstat { + unsigned int vjs_packets; /* outbound packets */ + unsigned int vjs_compressed; /* outbound compressed packets */ + unsigned int vjs_searches; /* searches for connection state */ + unsigned int vjs_misses; /* times couldn't find conn. state */ + unsigned int vjs_uncompressedin; /* inbound uncompressed packets */ + unsigned int vjs_compressedin; /* inbound compressed packets */ + unsigned int vjs_errorin; /* inbound unknown type packets */ + unsigned int vjs_tossed; /* inbound packets tossed because of error */ +}; +#endif /* VJ_SUPPORT */ + +struct ppp_stats { + struct pppstat p; /* basic PPP statistics */ +#if VJ_SUPPORT + struct vjstat vj; /* VJ header compression statistics */ +#endif /* VJ_SUPPORT */ +}; + +#if CCP_SUPPORT +struct compstat { + unsigned int unc_bytes; /* total uncompressed bytes */ + unsigned int unc_packets; /* total uncompressed packets */ + unsigned int comp_bytes; /* compressed bytes */ + unsigned int comp_packets; /* compressed packets */ + unsigned int inc_bytes; /* incompressible bytes */ + unsigned int inc_packets; /* incompressible packets */ + unsigned int ratio; /* recent compression ratio << 8 */ +}; + +struct ppp_comp_stats { + struct compstat c; /* packet compression statistics */ + struct compstat d; /* packet decompression statistics */ +}; +#endif /* CCP_SUPPORT */ + +#endif /* PPP_STATS_SUPPORT */ + +#if PPP_IDLETIMELIMIT +/* + * The following structure records the time in seconds since + * the last NP packet was sent or received. + */ +struct ppp_idle { + time_t xmit_idle; /* time since last NP packet sent */ + time_t recv_idle; /* time since last NP packet received */ +}; +#endif /* PPP_IDLETIMELIMIT */ + +/* values for epdisc.class */ +#define EPD_NULL 0 /* null discriminator, no data */ +#define EPD_LOCAL 1 +#define EPD_IP 2 +#define EPD_MAC 3 +#define EPD_MAGIC 4 +#define EPD_PHONENUM 5 + +/* + * Global variables. + */ +#ifdef HAVE_MULTILINK +extern u8_t multilink; /* enable multilink operation */ +extern u8_t doing_multilink; +extern u8_t multilink_master; +extern u8_t bundle_eof; +extern u8_t bundle_terminating; +#endif + +#ifdef MAXOCTETS +extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */ +extern int maxoctets_dir; /* Direction : + 0 - in+out (default) + 1 - in + 2 - out + 3 - max(in,out) */ +extern int maxoctets_timeout; /* Timeout for check of octets limit */ +#define PPP_OCTETS_DIRECTION_SUM 0 +#define PPP_OCTETS_DIRECTION_IN 1 +#define PPP_OCTETS_DIRECTION_OUT 2 +#define PPP_OCTETS_DIRECTION_MAXOVERAL 3 +/* same as previos, but little different on RADIUS side */ +#define PPP_OCTETS_DIRECTION_MAXSESSION 4 +#endif + +/* Data input may be used by CCP and ECP, remove this entry + * from struct protent to save some flash + */ +#define PPP_DATAINPUT 0 + +/* + * The following struct gives the addresses of procedures to call + * for a particular protocol. + */ +struct protent { + u_short protocol; /* PPP protocol number */ + /* Initialization procedure */ + void (*init) (ppp_pcb *pcb); + /* Process a received packet */ + void (*input) (ppp_pcb *pcb, u_char *pkt, int len); + /* Process a received protocol-reject */ + void (*protrej) (ppp_pcb *pcb); + /* Lower layer has come up */ + void (*lowerup) (ppp_pcb *pcb); + /* Lower layer has gone down */ + void (*lowerdown) (ppp_pcb *pcb); + /* Open the protocol */ + void (*open) (ppp_pcb *pcb); + /* Close the protocol */ + void (*close) (ppp_pcb *pcb, const char *reason); +#if PRINTPKT_SUPPORT + /* Print a packet in readable form */ + int (*printpkt) (const u_char *pkt, int len, + void (*printer) (void *, const char *, ...), + void *arg); +#endif /* PRINTPKT_SUPPORT */ +#if PPP_DATAINPUT + /* Process a received data packet */ + void (*datainput) (ppp_pcb *pcb, u_char *pkt, int len); +#endif /* PPP_DATAINPUT */ +#if PRINTPKT_SUPPORT + const char *name; /* Text name of protocol */ + const char *data_name; /* Text name of corresponding data protocol */ +#endif /* PRINTPKT_SUPPORT */ +#if PPP_OPTIONS + option_t *options; /* List of command-line options */ + /* Check requested options, assign defaults */ + void (*check_options) (void); +#endif /* PPP_OPTIONS */ +#if DEMAND_SUPPORT + /* Configure interface for demand-dial */ + int (*demand_conf) (int unit); + /* Say whether to bring up link for this pkt */ + int (*active_pkt) (u_char *pkt, int len); +#endif /* DEMAND_SUPPORT */ +}; + +/* Table of pointers to supported protocols */ +extern const struct protent* const protocols[]; + + +/* Values for auth_pending, auth_done */ +#if PAP_SUPPORT +#define PAP_WITHPEER 0x1 +#define PAP_PEER 0x2 +#endif /* PAP_SUPPORT */ +#if CHAP_SUPPORT +#define CHAP_WITHPEER 0x4 +#define CHAP_PEER 0x8 +#endif /* CHAP_SUPPORT */ +#if EAP_SUPPORT +#define EAP_WITHPEER 0x10 +#define EAP_PEER 0x20 +#endif /* EAP_SUPPORT */ + +/* Values for auth_done only */ +#if CHAP_SUPPORT +#define CHAP_MD5_WITHPEER 0x40 +#define CHAP_MD5_PEER 0x80 +#if MSCHAP_SUPPORT +#define CHAP_MS_SHIFT 8 /* LSB position for MS auths */ +#define CHAP_MS_WITHPEER 0x100 +#define CHAP_MS_PEER 0x200 +#define CHAP_MS2_WITHPEER 0x400 +#define CHAP_MS2_PEER 0x800 +#endif /* MSCHAP_SUPPORT */ +#endif /* CHAP_SUPPORT */ + +/* Supported CHAP protocols */ +#if CHAP_SUPPORT + +#if MSCHAP_SUPPORT +#define CHAP_MDTYPE_SUPPORTED (MDTYPE_MICROSOFT_V2 | MDTYPE_MICROSOFT | MDTYPE_MD5) +#else /* MSCHAP_SUPPORT */ +#define CHAP_MDTYPE_SUPPORTED (MDTYPE_MD5) +#endif /* MSCHAP_SUPPORT */ + +#else /* CHAP_SUPPORT */ +#define CHAP_MDTYPE_SUPPORTED (MDTYPE_NONE) +#endif /* CHAP_SUPPORT */ + +#if PPP_STATS_SUPPORT +/* + * PPP statistics structure + */ +struct pppd_stats { + unsigned int bytes_in; + unsigned int bytes_out; + unsigned int pkts_in; + unsigned int pkts_out; +}; +#endif /* PPP_STATS_SUPPORT */ + + +/* + * PPP private functions + */ + + +/* + * Functions called from lwIP core. + */ + +/* initialize the PPP subsystem */ +int ppp_init(void); + +/* + * Functions called from PPP link protocols. + */ + +/* Create a new PPP control block */ +ppp_pcb *ppp_new(struct netif *pppif, const struct link_callbacks *callbacks, void *link_ctx_cb, + ppp_link_status_cb_fn link_status_cb, void *ctx_cb); + +/* Initiate LCP open request */ +void ppp_start(ppp_pcb *pcb); + +/* Called when link failed to setup */ +void ppp_link_failed(ppp_pcb *pcb); + +/* Called when link is normally down (i.e. it was asked to end) */ +void ppp_link_end(ppp_pcb *pcb); + +/* function called to process input packet */ +void ppp_input(ppp_pcb *pcb, struct pbuf *pb); + + +/* + * Functions called by PPP protocols. + */ + +/* function called by all PPP subsystems to send packets */ +err_t ppp_write(ppp_pcb *pcb, struct pbuf *p); + +/* functions called by auth.c link_terminated() */ +void ppp_link_terminated(ppp_pcb *pcb); + +void new_phase(ppp_pcb *pcb, int p); + +int ppp_send_config(ppp_pcb *pcb, int mtu, u32_t accm, int pcomp, int accomp); +int ppp_recv_config(ppp_pcb *pcb, int mru, u32_t accm, int pcomp, int accomp); + +#if PPP_IPV4_SUPPORT +int sifaddr(ppp_pcb *pcb, u32_t our_adr, u32_t his_adr, u32_t netmask); +int cifaddr(ppp_pcb *pcb, u32_t our_adr, u32_t his_adr); +#if 0 /* UNUSED - PROXY ARP */ +int sifproxyarp(ppp_pcb *pcb, u32_t his_adr); +int cifproxyarp(ppp_pcb *pcb, u32_t his_adr); +#endif /* UNUSED - PROXY ARP */ +#if LWIP_DNS +int sdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2); +int cdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2); +#endif /* LWIP_DNS */ +#if VJ_SUPPORT +int sifvjcomp(ppp_pcb *pcb, int vjcomp, int cidcomp, int maxcid); +#endif /* VJ_SUPPORT */ +int sifup(ppp_pcb *pcb); +int sifdown (ppp_pcb *pcb); +u32_t get_mask(u32_t addr); +#endif /* PPP_IPV4_SUPPORT */ + +#if PPP_IPV6_SUPPORT +int sif6addr(ppp_pcb *pcb, eui64_t our_eui64, eui64_t his_eui64); +int cif6addr(ppp_pcb *pcb, eui64_t our_eui64, eui64_t his_eui64); +int sif6up(ppp_pcb *pcb); +int sif6down (ppp_pcb *pcb); +#endif /* PPP_IPV6_SUPPORT */ + +#if DEMAND_SUPPORT +int sifnpmode(ppp_pcb *pcb, int proto, enum NPmode mode); +#endif /* DEMAND_SUPPORt */ + +void netif_set_mtu(ppp_pcb *pcb, int mtu); +int netif_get_mtu(ppp_pcb *pcb); + +#if CCP_SUPPORT +#if 0 /* unused */ +int ccp_test(ppp_pcb *pcb, u_char *opt_ptr, int opt_len, int for_transmit); +#endif /* unused */ +void ccp_set(ppp_pcb *pcb, u8_t isopen, u8_t isup, u8_t receive_method, u8_t transmit_method); +void ccp_reset_comp(ppp_pcb *pcb); +void ccp_reset_decomp(ppp_pcb *pcb); +#if 0 /* unused */ +int ccp_fatal_error(ppp_pcb *pcb); +#endif /* unused */ +#endif /* CCP_SUPPORT */ + +#if PPP_IDLETIMELIMIT +int get_idle_time(ppp_pcb *pcb, struct ppp_idle *ip); +#endif /* PPP_IDLETIMELIMIT */ + +#if DEMAND_SUPPORT +int get_loop_output(void); +#endif /* DEMAND_SUPPORT */ + +/* Optional protocol names list, to make our messages a little more informative. */ +#if PPP_PROTOCOLNAME +const char * protocol_name(int proto); +#endif /* PPP_PROTOCOLNAME */ + +/* Optional stats support, to get some statistics on the PPP interface */ +#if PPP_STATS_SUPPORT +void print_link_stats(void); /* Print stats, if available */ +void reset_link_stats(int u); /* Reset (init) stats when link goes up */ +void update_link_stats(int u); /* Get stats at link termination */ +#endif /* PPP_STATS_SUPPORT */ + + + +/* + * Inline versions of get/put char/short/long. + * Pointer is advanced; we assume that both arguments + * are lvalues and will already be in registers. + * cp MUST be u_char *. + */ +#define GETCHAR(c, cp) { \ + (c) = *(cp)++; \ +} +#define PUTCHAR(c, cp) { \ + *(cp)++ = (u_char) (c); \ +} +#define GETSHORT(s, cp) { \ + (s) = *(cp)++ << 8; \ + (s) |= *(cp)++; \ +} +#define PUTSHORT(s, cp) { \ + *(cp)++ = (u_char) ((s) >> 8); \ + *(cp)++ = (u_char) (s); \ +} +#define GETLONG(l, cp) { \ + (l) = *(cp)++ << 8; \ + (l) |= *(cp)++; (l) <<= 8; \ + (l) |= *(cp)++; (l) <<= 8; \ + (l) |= *(cp)++; \ +} +#define PUTLONG(l, cp) { \ + *(cp)++ = (u_char) ((l) >> 24); \ + *(cp)++ = (u_char) ((l) >> 16); \ + *(cp)++ = (u_char) ((l) >> 8); \ + *(cp)++ = (u_char) (l); \ +} + +#define INCPTR(n, cp) ((cp) += (n)) +#define DECPTR(n, cp) ((cp) -= (n)) + +/* + * System dependent definitions for user-level 4.3BSD UNIX implementation. + */ +#define TIMEOUT(f, a, t) do { sys_untimeout((f), (a)); sys_timeout((t)*1000, (f), (a)); } while(0) +#define TIMEOUTMS(f, a, t) do { sys_untimeout((f), (a)); sys_timeout((t), (f), (a)); } while(0) +#define UNTIMEOUT(f, a) sys_untimeout((f), (a)) + +#define BZERO(s, n) memset(s, 0, n) +#define BCMP(s1, s2, l) memcmp(s1, s2, l) + +#define PRINTMSG(m, l) { ppp_info("Remote message: %0.*v", l, m); } + +/* + * MAKEHEADER - Add Header fields to a packet. + */ +#define MAKEHEADER(p, t) { \ + PUTCHAR(PPP_ALLSTATIONS, p); \ + PUTCHAR(PPP_UI, p); \ + PUTSHORT(t, p); } + +/* Procedures exported from auth.c */ +void link_required(ppp_pcb *pcb); /* we are starting to use the link */ +void link_terminated(ppp_pcb *pcb); /* we are finished with the link */ +void link_down(ppp_pcb *pcb); /* the LCP layer has left the Opened state */ +void upper_layers_down(ppp_pcb *pcb); /* take all NCPs down */ +void link_established(ppp_pcb *pcb); /* the link is up; authenticate now */ +void start_networks(ppp_pcb *pcb); /* start all the network control protos */ +void continue_networks(ppp_pcb *pcb); /* start network [ip, etc] control protos */ +#if PPP_AUTH_SUPPORT +#if PPP_SERVER +int auth_check_passwd(ppp_pcb *pcb, char *auser, int userlen, char *apasswd, int passwdlen, const char **msg, int *msglen); + /* check the user name and passwd against configuration */ +void auth_peer_fail(ppp_pcb *pcb, int protocol); + /* peer failed to authenticate itself */ +void auth_peer_success(ppp_pcb *pcb, int protocol, int prot_flavor, const char *name, int namelen); + /* peer successfully authenticated itself */ +#endif /* PPP_SERVER */ +void auth_withpeer_fail(ppp_pcb *pcb, int protocol); + /* we failed to authenticate ourselves */ +void auth_withpeer_success(ppp_pcb *pcb, int protocol, int prot_flavor); + /* we successfully authenticated ourselves */ +#endif /* PPP_AUTH_SUPPORT */ +void np_up(ppp_pcb *pcb, int proto); /* a network protocol has come up */ +void np_down(ppp_pcb *pcb, int proto); /* a network protocol has gone down */ +void np_finished(ppp_pcb *pcb, int proto); /* a network protocol no longer needs link */ +#if PPP_AUTH_SUPPORT +int get_secret(ppp_pcb *pcb, const char *client, const char *server, char *secret, int *secret_len, int am_server); + /* get "secret" for chap */ +#endif /* PPP_AUTH_SUPPORT */ + +/* Procedures exported from ipcp.c */ +/* int parse_dotted_ip (char *, u32_t *); */ + +/* Procedures exported from demand.c */ +#if DEMAND_SUPPORT +void demand_conf (void); /* config interface(s) for demand-dial */ +void demand_block (void); /* set all NPs to queue up packets */ +void demand_unblock (void); /* set all NPs to pass packets */ +void demand_discard (void); /* set all NPs to discard packets */ +void demand_rexmit (int, u32_t); /* retransmit saved frames for an NP*/ +int loop_chars (unsigned char *, int); /* process chars from loopback */ +int loop_frame (unsigned char *, int); /* should we bring link up? */ +#endif /* DEMAND_SUPPORT */ + +/* Procedures exported from multilink.c */ +#ifdef HAVE_MULTILINK +void mp_check_options (void); /* Check multilink-related options */ +int mp_join_bundle (void); /* join our link to an appropriate bundle */ +void mp_exit_bundle (void); /* have disconnected our link from bundle */ +void mp_bundle_terminated (void); +char *epdisc_to_str (struct epdisc *); /* string from endpoint discrim. */ +int str_to_epdisc (struct epdisc *, char *); /* endpt disc. from str */ +#else +#define mp_bundle_terminated() /* nothing */ +#define mp_exit_bundle() /* nothing */ +#define doing_multilink 0 +#define multilink_master 0 +#endif + +/* Procedures exported from utils.c. */ +void ppp_print_string(const u_char *p, int len, void (*printer) (void *, const char *, ...), void *arg); /* Format a string for output */ +int ppp_slprintf(char *buf, int buflen, const char *fmt, ...); /* sprintf++ */ +int ppp_vslprintf(char *buf, int buflen, const char *fmt, va_list args); /* vsprintf++ */ +size_t ppp_strlcpy(char *dest, const char *src, size_t len); /* safe strcpy */ +size_t ppp_strlcat(char *dest, const char *src, size_t len); /* safe strncpy */ +void ppp_dbglog(const char *fmt, ...); /* log a debug message */ +void ppp_info(const char *fmt, ...); /* log an informational message */ +void ppp_notice(const char *fmt, ...); /* log a notice-level message */ +void ppp_warn(const char *fmt, ...); /* log a warning message */ +void ppp_error(const char *fmt, ...); /* log an error message */ +void ppp_fatal(const char *fmt, ...); /* log an error message and die(1) */ +#if PRINTPKT_SUPPORT +void ppp_dump_packet(ppp_pcb *pcb, const char *tag, unsigned char *p, int len); + /* dump packet to debug log if interesting */ +#endif /* PRINTPKT_SUPPORT */ + +/* + * Number of necessary timers analysis. + * + * PPP use at least one timer per each of its protocol, but not all protocols are + * active at the same time, thus the number of necessary timeouts is actually + * lower than enabled protocols. Here is the actual necessary timeouts based + * on code analysis. + * + * Note that many features analysed here are not working at all and are only + * there for a comprehensive analysis of necessary timers in order to prevent + * having to redo that each time we add a feature. + * + * Timer list + * + * | holdoff timeout + * | low level protocol timeout (PPPoE or PPPoL2P) + * | LCP delayed UP + * | LCP retransmit (FSM) + * | LCP Echo timer + * .| PAP or CHAP or EAP authentication + * . | ECP retransmit (FSM) + * . | CCP retransmit (FSM) when MPPE is enabled + * . | CCP retransmit (FSM) when MPPE is NOT enabled + * . | IPCP retransmit (FSM) + * . .| IP6CP retransmit (FSM) + * . . | Idle time limit + * . . | Max connect time + * . . | Max octets + * . . | CCP RACK timeout + * . . . + * PPP_PHASE_DEAD + * PPP_PHASE_HOLDOFF + * | . . . + * PPP_PHASE_INITIALIZE + * | . . . + * PPP_PHASE_ESTABLISH + * | . . . + * |. . . + * | . . + * PPP_PHASE_AUTHENTICATE + * | . . + * || . . + * PPP_PHASE_NETWORK + * | || . . + * | ||| . + * PPP_PHASE_RUNNING + * | .||||| + * | . |||| + * PPP_PHASE_TERMINATE + * | . |||| + * PPP_PHASE_NETWORK + * |. . + * PPP_PHASE_ESTABLISH + * PPP_PHASE_DISCONNECT + * PPP_PHASE_DEAD + * + * Alright, PPP basic retransmission and LCP Echo consume one timer. + * 1 + * + * If authentication is enabled one timer is necessary during authentication. + * 1 + PPP_AUTH_SUPPORT + * + * If ECP is enabled one timer is necessary before IPCP and/or IP6CP, one more + * is necessary if CCP is enabled (only with MPPE support but we don't care much + * up to this detail level). + * 1 + ECP_SUPPORT + CCP_SUPPORT + * + * If CCP is enabled it might consume a timer during IPCP or IP6CP, thus + * we might use IPCP, IP6CP and CCP timers simultaneously. + * 1 + PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT + CCP_SUPPORT + * + * When entering running phase, IPCP or IP6CP is still running. If idle time limit + * is enabled one more timer is necessary. Same for max connect time and max + * octets features. Furthermore CCP RACK might be used past this point. + * 1 + PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT -1 + PPP_IDLETIMELIMIT + PPP_MAXCONNECT + MAXOCTETS + CCP_SUPPORT + * + * IPv4 or IPv6 must be enabled, therefore we don't need to take care the authentication + * and the CCP + ECP case, thus reducing overall complexity. + * 1 + LWIP_MAX(PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT + CCP_SUPPORT, PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT -1 + PPP_IDLETIMELIMIT + PPP_MAXCONNECT + MAXOCTETS + CCP_SUPPORT) + * + * We don't support PPP_IDLETIMELIMIT + PPP_MAXCONNECT + MAXOCTETS features + * and adding those defines to ppp_opts.h just for having the value always + * defined to 0 isn't worth it. + * 1 + LWIP_MAX(PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT + CCP_SUPPORT, PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT -1 + CCP_SUPPORT) + * + * Thus, the following is enough for now. + * 1 + PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT + CCP_SUPPORT + */ + +#ifdef __cplusplus +} +#endif + +#endif /* PPP_SUPPORT */ +#endif /* LWIP_HDR_PPP_IMPL_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp_opts.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp_opts.h new file mode 100644 index 000000000..502a2ccc9 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/ppp_opts.h @@ -0,0 +1,610 @@ +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ + +#ifndef LWIP_PPP_OPTS_H +#define LWIP_PPP_OPTS_H + +#include "lwip/opt.h" + +/** + * PPP_SUPPORT==1: Enable PPP. + */ +#ifndef PPP_SUPPORT +#define PPP_SUPPORT 0 +#endif + +/** + * PPPOE_SUPPORT==1: Enable PPP Over Ethernet + */ +#ifndef PPPOE_SUPPORT +#define PPPOE_SUPPORT 0 +#endif + +/** + * PPPOL2TP_SUPPORT==1: Enable PPP Over L2TP + */ +#ifndef PPPOL2TP_SUPPORT +#define PPPOL2TP_SUPPORT 0 +#endif + +/** + * PPPOL2TP_AUTH_SUPPORT==1: Enable PPP Over L2TP Auth (enable MD5 support) + */ +#ifndef PPPOL2TP_AUTH_SUPPORT +#define PPPOL2TP_AUTH_SUPPORT PPPOL2TP_SUPPORT +#endif + +/** + * PPPOS_SUPPORT==1: Enable PPP Over Serial + */ +#ifndef PPPOS_SUPPORT +#define PPPOS_SUPPORT PPP_SUPPORT +#endif + +/** + * LWIP_PPP_API==1: Enable PPP API (in pppapi.c) + */ +#ifndef LWIP_PPP_API +#define LWIP_PPP_API (PPP_SUPPORT && (NO_SYS == 0)) +#endif + +#if PPP_SUPPORT + +/** + * MEMP_NUM_PPP_PCB: the number of simultaneously active PPP + * connections (requires the PPP_SUPPORT option) + */ +#ifndef MEMP_NUM_PPP_PCB +#define MEMP_NUM_PPP_PCB 1 +#endif + +/** + * PPP_NUM_TIMEOUTS_PER_PCB: the number of sys_timeouts running in parallel per + * ppp_pcb. See the detailed explanation at the end of ppp_impl.h about simultaneous + * timers analysis. + */ +#ifndef PPP_NUM_TIMEOUTS_PER_PCB +#define PPP_NUM_TIMEOUTS_PER_PCB (1 + PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT + CCP_SUPPORT) +#endif + +/* The number of sys_timeouts required for the PPP module */ +#define PPP_NUM_TIMEOUTS (PPP_SUPPORT * PPP_NUM_TIMEOUTS_PER_PCB * MEMP_NUM_PPP_PCB) + +/** + * MEMP_NUM_PPPOS_INTERFACES: the number of concurrently active PPPoS + * interfaces (only used with PPPOS_SUPPORT==1) + */ +#ifndef MEMP_NUM_PPPOS_INTERFACES +#define MEMP_NUM_PPPOS_INTERFACES MEMP_NUM_PPP_PCB +#endif + +/** + * MEMP_NUM_PPPOE_INTERFACES: the number of concurrently active PPPoE + * interfaces (only used with PPPOE_SUPPORT==1) + */ +#ifndef MEMP_NUM_PPPOE_INTERFACES +#define MEMP_NUM_PPPOE_INTERFACES 1 +#endif + +/** + * MEMP_NUM_PPPOL2TP_INTERFACES: the number of concurrently active PPPoL2TP + * interfaces (only used with PPPOL2TP_SUPPORT==1) + */ +#ifndef MEMP_NUM_PPPOL2TP_INTERFACES +#define MEMP_NUM_PPPOL2TP_INTERFACES 1 +#endif + +/** + * MEMP_NUM_PPP_API_MSG: Number of concurrent PPP API messages (in pppapi.c) + */ +#ifndef MEMP_NUM_PPP_API_MSG +#define MEMP_NUM_PPP_API_MSG 5 +#endif + +/** + * PPP_DEBUG: Enable debugging for PPP. + */ +#ifndef PPP_DEBUG +#define PPP_DEBUG LWIP_DBG_OFF +#endif + +/** + * PPP_INPROC_IRQ_SAFE==1 call pppos_input() using tcpip_callback(). + * + * Please read the "PPPoS input path" chapter in the PPP documentation about this option. + */ +#ifndef PPP_INPROC_IRQ_SAFE +#define PPP_INPROC_IRQ_SAFE 0 +#endif + +/** + * PRINTPKT_SUPPORT==1: Enable PPP print packet support + * + * Mandatory for debugging, it displays exchanged packet content in debug trace. + */ +#ifndef PRINTPKT_SUPPORT +#define PRINTPKT_SUPPORT 0 +#endif + +/** + * PPP_IPV4_SUPPORT==1: Enable PPP IPv4 support + */ +#ifndef PPP_IPV4_SUPPORT +#define PPP_IPV4_SUPPORT (LWIP_IPV4) +#endif + +/** + * PPP_IPV6_SUPPORT==1: Enable PPP IPv6 support + */ +#ifndef PPP_IPV6_SUPPORT +#define PPP_IPV6_SUPPORT (LWIP_IPV6) +#endif + +/** + * PPP_NOTIFY_PHASE==1: Support PPP notify phase support + * + * PPP notify phase support allows you to set a callback which is + * called on change of the internal PPP state machine. + * + * This can be used for example to set a LED pattern depending on the + * current phase of the PPP session. + */ +#ifndef PPP_NOTIFY_PHASE +#define PPP_NOTIFY_PHASE 0 +#endif + +/** + * pbuf_type PPP is using for LCP, PAP, CHAP, EAP, CCP, IPCP and IP6CP packets. + * + * Memory allocated must be single buffered for PPP to works, it requires pbuf + * that are not going to be chained when allocated. This requires setting + * PBUF_POOL_BUFSIZE to at least 512 bytes, which is quite huge for small systems. + * + * Setting PPP_USE_PBUF_RAM to 1 makes PPP use memory from heap where continuous + * buffers are required, allowing you to use a smaller PBUF_POOL_BUFSIZE. + */ +#ifndef PPP_USE_PBUF_RAM +#define PPP_USE_PBUF_RAM 0 +#endif + +/** + * PPP_FCS_TABLE: Keep a 256*2 byte table to speed up FCS calculation for PPPoS + */ +#ifndef PPP_FCS_TABLE +#define PPP_FCS_TABLE 1 +#endif + +/** + * PAP_SUPPORT==1: Support PAP. + */ +#ifndef PAP_SUPPORT +#define PAP_SUPPORT 0 +#endif + +/** + * CHAP_SUPPORT==1: Support CHAP. + */ +#ifndef CHAP_SUPPORT +#define CHAP_SUPPORT 0 +#endif + +/** + * MSCHAP_SUPPORT==1: Support MSCHAP. + */ +#ifndef MSCHAP_SUPPORT +#define MSCHAP_SUPPORT 0 +#endif +#if MSCHAP_SUPPORT +/* MSCHAP requires CHAP support */ +#undef CHAP_SUPPORT +#define CHAP_SUPPORT 1 +#endif /* MSCHAP_SUPPORT */ + +/** + * EAP_SUPPORT==1: Support EAP. + */ +#ifndef EAP_SUPPORT +#define EAP_SUPPORT 0 +#endif + +/** + * CCP_SUPPORT==1: Support CCP. + */ +#ifndef CCP_SUPPORT +#define CCP_SUPPORT 0 +#endif + +/** + * MPPE_SUPPORT==1: Support MPPE. + */ +#ifndef MPPE_SUPPORT +#define MPPE_SUPPORT 0 +#endif +#if MPPE_SUPPORT +/* MPPE requires CCP support */ +#undef CCP_SUPPORT +#define CCP_SUPPORT 1 +/* MPPE requires MSCHAP support */ +#undef MSCHAP_SUPPORT +#define MSCHAP_SUPPORT 1 +/* MSCHAP requires CHAP support */ +#undef CHAP_SUPPORT +#define CHAP_SUPPORT 1 +#endif /* MPPE_SUPPORT */ + +/** + * CBCP_SUPPORT==1: Support CBCP. CURRENTLY NOT SUPPORTED! DO NOT SET! + */ +#ifndef CBCP_SUPPORT +#define CBCP_SUPPORT 0 +#endif + +/** + * ECP_SUPPORT==1: Support ECP. CURRENTLY NOT SUPPORTED! DO NOT SET! + */ +#ifndef ECP_SUPPORT +#define ECP_SUPPORT 0 +#endif + +/** + * DEMAND_SUPPORT==1: Support dial on demand. CURRENTLY NOT SUPPORTED! DO NOT SET! + */ +#ifndef DEMAND_SUPPORT +#define DEMAND_SUPPORT 0 +#endif + +/** + * LQR_SUPPORT==1: Support Link Quality Report. Do nothing except exchanging some LCP packets. + */ +#ifndef LQR_SUPPORT +#define LQR_SUPPORT 0 +#endif + +/** + * PPP_SERVER==1: Enable PPP server support (waiting for incoming PPP session). + * + * Currently only supported for PPPoS. + */ +#ifndef PPP_SERVER +#define PPP_SERVER 0 +#endif + +#if PPP_SERVER +/* + * PPP_OUR_NAME: Our name for authentication purposes + */ +#ifndef PPP_OUR_NAME +#define PPP_OUR_NAME "lwIP" +#endif +#endif /* PPP_SERVER */ + +/** + * VJ_SUPPORT==1: Support VJ header compression. + */ +#ifndef VJ_SUPPORT +#define VJ_SUPPORT 1 +#endif +/* VJ compression is only supported for TCP over IPv4 over PPPoS. */ +#if !PPPOS_SUPPORT || !PPP_IPV4_SUPPORT || !LWIP_TCP +#undef VJ_SUPPORT +#define VJ_SUPPORT 0 +#endif /* !PPPOS_SUPPORT */ + +/** + * PPP_MD5_RANDM==1: Use MD5 for better randomness. + * Enabled by default if CHAP, EAP, or L2TP AUTH support is enabled. + */ +#ifndef PPP_MD5_RANDM +#define PPP_MD5_RANDM (CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT) +#endif + +/** + * PolarSSL embedded library + * + * + * lwIP contains some files fetched from the latest BSD release of + * the PolarSSL project (PolarSSL 0.10.1-bsd) for ciphers and encryption + * methods we need for lwIP PPP support. + * + * The PolarSSL files were cleaned to contain only the necessary struct + * fields and functions needed for lwIP. + * + * The PolarSSL API was not changed at all, so if you are already using + * PolarSSL you can choose to skip the compilation of the included PolarSSL + * library into lwIP. + * + * If you are not using the embedded copy you must include external + * libraries into your arch/cc.h port file. + * + * Beware of the stack requirements which can be a lot larger if you are not + * using our cleaned PolarSSL library. + */ + +/** + * LWIP_USE_EXTERNAL_POLARSSL: Use external PolarSSL library + */ +#ifndef LWIP_USE_EXTERNAL_POLARSSL +#define LWIP_USE_EXTERNAL_POLARSSL 0 +#endif + +/** + * LWIP_USE_EXTERNAL_MBEDTLS: Use external mbed TLS library + */ +#ifndef LWIP_USE_EXTERNAL_MBEDTLS +#define LWIP_USE_EXTERNAL_MBEDTLS 0 +#endif + +/* + * PPP Timeouts + */ + +/** + * FSM_DEFTIMEOUT: Timeout time in seconds + */ +#ifndef FSM_DEFTIMEOUT +#define FSM_DEFTIMEOUT 6 +#endif + +/** + * FSM_DEFMAXTERMREQS: Maximum Terminate-Request transmissions + */ +#ifndef FSM_DEFMAXTERMREQS +#define FSM_DEFMAXTERMREQS 2 +#endif + +/** + * FSM_DEFMAXCONFREQS: Maximum Configure-Request transmissions + */ +#ifndef FSM_DEFMAXCONFREQS +#define FSM_DEFMAXCONFREQS 10 +#endif + +/** + * FSM_DEFMAXNAKLOOPS: Maximum number of nak loops + */ +#ifndef FSM_DEFMAXNAKLOOPS +#define FSM_DEFMAXNAKLOOPS 5 +#endif + +/** + * UPAP_DEFTIMEOUT: Timeout (seconds) for retransmitting req + */ +#ifndef UPAP_DEFTIMEOUT +#define UPAP_DEFTIMEOUT 6 +#endif + +/** + * UPAP_DEFTRANSMITS: Maximum number of auth-reqs to send + */ +#ifndef UPAP_DEFTRANSMITS +#define UPAP_DEFTRANSMITS 10 +#endif + +#if PPP_SERVER +/** + * UPAP_DEFREQTIME: Time to wait for auth-req from peer + */ +#ifndef UPAP_DEFREQTIME +#define UPAP_DEFREQTIME 30 +#endif +#endif /* PPP_SERVER */ + +/** + * CHAP_DEFTIMEOUT: Timeout (seconds) for retransmitting req + */ +#ifndef CHAP_DEFTIMEOUT +#define CHAP_DEFTIMEOUT 6 +#endif + +/** + * CHAP_DEFTRANSMITS: max # times to send challenge + */ +#ifndef CHAP_DEFTRANSMITS +#define CHAP_DEFTRANSMITS 10 +#endif + +#if PPP_SERVER +/** + * CHAP_DEFRECHALLENGETIME: If this option is > 0, rechallenge the peer every n seconds + */ +#ifndef CHAP_DEFRECHALLENGETIME +#define CHAP_DEFRECHALLENGETIME 0 +#endif +#endif /* PPP_SERVER */ + +/** + * EAP_DEFREQTIME: Time to wait for peer request + */ +#ifndef EAP_DEFREQTIME +#define EAP_DEFREQTIME 6 +#endif + +/** + * EAP_DEFALLOWREQ: max # times to accept requests + */ +#ifndef EAP_DEFALLOWREQ +#define EAP_DEFALLOWREQ 10 +#endif + +#if PPP_SERVER +/** + * EAP_DEFTIMEOUT: Timeout (seconds) for rexmit + */ +#ifndef EAP_DEFTIMEOUT +#define EAP_DEFTIMEOUT 6 +#endif + +/** + * EAP_DEFTRANSMITS: max # times to transmit + */ +#ifndef EAP_DEFTRANSMITS +#define EAP_DEFTRANSMITS 10 +#endif +#endif /* PPP_SERVER */ + +/** + * LCP_DEFLOOPBACKFAIL: Default number of times we receive our magic number from the peer + * before deciding the link is looped-back. + */ +#ifndef LCP_DEFLOOPBACKFAIL +#define LCP_DEFLOOPBACKFAIL 10 +#endif + +/** + * LCP_ECHOINTERVAL: Interval in seconds between keepalive echo requests, 0 to disable. + */ +#ifndef LCP_ECHOINTERVAL +#define LCP_ECHOINTERVAL 0 +#endif + +/** + * LCP_MAXECHOFAILS: Number of unanswered echo requests before failure. + */ +#ifndef LCP_MAXECHOFAILS +#define LCP_MAXECHOFAILS 3 +#endif + +/** + * PPP_MAXIDLEFLAG: Max Xmit idle time (in ms) before resend flag char. + */ +#ifndef PPP_MAXIDLEFLAG +#define PPP_MAXIDLEFLAG 100 +#endif + +/** + * PPP Packet sizes + */ + +/** + * PPP_MRU: Default MRU + */ +#ifndef PPP_MRU +#define PPP_MRU 1500 +#endif + +/** + * PPP_DEFMRU: Default MRU to try + */ +#ifndef PPP_DEFMRU +#define PPP_DEFMRU 1500 +#endif + +/** + * PPP_MAXMRU: Normally limit MRU to this (pppd default = 16384) + */ +#ifndef PPP_MAXMRU +#define PPP_MAXMRU 1500 +#endif + +/** + * PPP_MINMRU: No MRUs below this + */ +#ifndef PPP_MINMRU +#define PPP_MINMRU 128 +#endif + +/** + * PPPOL2TP_DEFMRU: Default MTU and MRU for L2TP + * Default = 1500 - PPPoE(6) - PPP Protocol(2) - IPv4 header(20) - UDP Header(8) + * - L2TP Header(6) - HDLC Header(2) - PPP Protocol(2) - MPPE Header(2) - PPP Protocol(2) + */ +#if PPPOL2TP_SUPPORT +#ifndef PPPOL2TP_DEFMRU +#define PPPOL2TP_DEFMRU 1450 +#endif +#endif /* PPPOL2TP_SUPPORT */ + +/** + * MAXNAMELEN: max length of hostname or name for auth + */ +#ifndef MAXNAMELEN +#define MAXNAMELEN 256 +#endif + +/** + * MAXSECRETLEN: max length of password or secret + */ +#ifndef MAXSECRETLEN +#define MAXSECRETLEN 256 +#endif + +/* ------------------------------------------------------------------------- */ + +/* + * Build triggers for embedded PolarSSL + */ +#if !LWIP_USE_EXTERNAL_POLARSSL && !LWIP_USE_EXTERNAL_MBEDTLS + +/* CHAP, EAP, L2TP AUTH and MD5 Random require MD5 support */ +#if CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT || PPP_MD5_RANDM +#define LWIP_INCLUDED_POLARSSL_MD5 1 +#endif /* CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT || PPP_MD5_RANDM */ + +#if MSCHAP_SUPPORT + +/* MSCHAP require MD4 support */ +#define LWIP_INCLUDED_POLARSSL_MD4 1 +/* MSCHAP require SHA1 support */ +#define LWIP_INCLUDED_POLARSSL_SHA1 1 +/* MSCHAP require DES support */ +#define LWIP_INCLUDED_POLARSSL_DES 1 + +/* MS-CHAP support is required for MPPE */ +#if MPPE_SUPPORT +/* MPPE require ARC4 support */ +#define LWIP_INCLUDED_POLARSSL_ARC4 1 +#endif /* MPPE_SUPPORT */ + +#endif /* MSCHAP_SUPPORT */ + +#endif /* !LWIP_USE_EXTERNAL_POLARSSL && !LWIP_USE_EXTERNAL_MBEDTLS */ + +/* Default value if unset */ +#ifndef LWIP_INCLUDED_POLARSSL_MD4 +#define LWIP_INCLUDED_POLARSSL_MD4 0 +#endif /* LWIP_INCLUDED_POLARSSL_MD4 */ +#ifndef LWIP_INCLUDED_POLARSSL_MD5 +#define LWIP_INCLUDED_POLARSSL_MD5 0 +#endif /* LWIP_INCLUDED_POLARSSL_MD5 */ +#ifndef LWIP_INCLUDED_POLARSSL_SHA1 +#define LWIP_INCLUDED_POLARSSL_SHA1 0 +#endif /* LWIP_INCLUDED_POLARSSL_SHA1 */ +#ifndef LWIP_INCLUDED_POLARSSL_DES +#define LWIP_INCLUDED_POLARSSL_DES 0 +#endif /* LWIP_INCLUDED_POLARSSL_DES */ +#ifndef LWIP_INCLUDED_POLARSSL_ARC4 +#define LWIP_INCLUDED_POLARSSL_ARC4 0 +#endif /* LWIP_INCLUDED_POLARSSL_ARC4 */ + +#endif /* PPP_SUPPORT */ + +/* Default value if unset */ +#ifndef PPP_NUM_TIMEOUTS +#define PPP_NUM_TIMEOUTS 0 +#endif /* PPP_NUM_TIMEOUTS */ + +#endif /* LWIP_PPP_OPTS_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppapi.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppapi.h new file mode 100644 index 000000000..70c262a82 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppapi.h @@ -0,0 +1,137 @@ +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ + +#ifndef LWIP_PPPAPI_H +#define LWIP_PPPAPI_H + +#include "netif/ppp/ppp_opts.h" + +#if LWIP_PPP_API /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/sys.h" +#include "lwip/netif.h" +#include "lwip/priv/tcpip_priv.h" +#include "netif/ppp/ppp.h" +#if PPPOS_SUPPORT +#include "netif/ppp/pppos.h" +#endif /* PPPOS_SUPPORT */ + +#ifdef __cplusplus +extern "C" { +#endif + +struct pppapi_msg_msg { + ppp_pcb *ppp; + union { +#if PPP_NOTIFY_PHASE + struct { + ppp_notify_phase_cb_fn notify_phase_cb; + } setnotifyphasecb; +#endif /* PPP_NOTIFY_PHASE */ +#if PPPOS_SUPPORT + struct { + struct netif *pppif; + pppos_output_cb_fn output_cb; + ppp_link_status_cb_fn link_status_cb; + void *ctx_cb; + } serialcreate; +#endif /* PPPOS_SUPPORT */ +#if PPPOE_SUPPORT + struct { + struct netif *pppif; + struct netif *ethif; + const char *service_name; + const char *concentrator_name; + ppp_link_status_cb_fn link_status_cb; + void *ctx_cb; + } ethernetcreate; +#endif /* PPPOE_SUPPORT */ +#if PPPOL2TP_SUPPORT + struct { + struct netif *pppif; + struct netif *netif; + API_MSG_M_DEF_C(ip_addr_t, ipaddr); + u16_t port; +#if PPPOL2TP_AUTH_SUPPORT + const u8_t *secret; + u8_t secret_len; +#endif /* PPPOL2TP_AUTH_SUPPORT */ + ppp_link_status_cb_fn link_status_cb; + void *ctx_cb; + } l2tpcreate; +#endif /* PPPOL2TP_SUPPORT */ + struct { + u16_t holdoff; + } connect; + struct { + u8_t nocarrier; + } close; + struct { + u8_t cmd; + void *arg; + } ioctl; + } msg; +}; + +struct pppapi_msg { + struct tcpip_api_call_data call; + struct pppapi_msg_msg msg; +}; + +/* API for application */ +err_t pppapi_set_default(ppp_pcb *pcb); +#if PPP_NOTIFY_PHASE +err_t pppapi_set_notify_phase_callback(ppp_pcb *pcb, ppp_notify_phase_cb_fn notify_phase_cb); +#endif /* PPP_NOTIFY_PHASE */ +#if PPPOS_SUPPORT +ppp_pcb *pppapi_pppos_create(struct netif *pppif, pppos_output_cb_fn output_cb, ppp_link_status_cb_fn link_status_cb, void *ctx_cb); +#endif /* PPPOS_SUPPORT */ +#if PPPOE_SUPPORT +ppp_pcb *pppapi_pppoe_create(struct netif *pppif, struct netif *ethif, const char *service_name, + const char *concentrator_name, ppp_link_status_cb_fn link_status_cb, + void *ctx_cb); +#endif /* PPPOE_SUPPORT */ +#if PPPOL2TP_SUPPORT +ppp_pcb *pppapi_pppol2tp_create(struct netif *pppif, struct netif *netif, ip_addr_t *ipaddr, u16_t port, + const u8_t *secret, u8_t secret_len, + ppp_link_status_cb_fn link_status_cb, void *ctx_cb); +#endif /* PPPOL2TP_SUPPORT */ +err_t pppapi_connect(ppp_pcb *pcb, u16_t holdoff); +#if PPP_SERVER +err_t pppapi_listen(ppp_pcb *pcb); +#endif /* PPP_SERVER */ +err_t pppapi_close(ppp_pcb *pcb, u8_t nocarrier); +err_t pppapi_free(ppp_pcb *pcb); +err_t pppapi_ioctl(ppp_pcb *pcb, u8_t cmd, void *arg); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_PPP_API */ + +#endif /* LWIP_PPPAPI_H */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppcrypt.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppcrypt.h new file mode 100644 index 000000000..968e53281 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppcrypt.h @@ -0,0 +1,144 @@ +/* + * pppcrypt.c - PPP/DES linkage for MS-CHAP and EAP SRP-SHA1 + * + * Extracted from chap_ms.c by James Carlson. + * + * Copyright (c) 1995 Eric Rosenquist. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name(s) of the authors of this software must not be used to + * endorse or promote products derived from this software without + * prior written permission. + * + * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +/* This header file is included in all PPP modules needing hashes and/or ciphers */ + +#ifndef PPPCRYPT_H +#define PPPCRYPT_H + +/* + * If included PolarSSL copy is not used, user is expected to include + * external libraries in arch/cc.h (which is included by lwip/arch.h). + */ +#include "lwip/arch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Map hashes and ciphers functions to PolarSSL + */ +#if !LWIP_USE_EXTERNAL_MBEDTLS + +#include "netif/ppp/polarssl/md4.h" +#define lwip_md4_context md4_context +#define lwip_md4_init(context) +#define lwip_md4_starts md4_starts +#define lwip_md4_update md4_update +#define lwip_md4_finish md4_finish +#define lwip_md4_free(context) + +#include "netif/ppp/polarssl/md5.h" +#define lwip_md5_context md5_context +#define lwip_md5_init(context) +#define lwip_md5_starts md5_starts +#define lwip_md5_update md5_update +#define lwip_md5_finish md5_finish +#define lwip_md5_free(context) + +#include "netif/ppp/polarssl/sha1.h" +#define lwip_sha1_context sha1_context +#define lwip_sha1_init(context) +#define lwip_sha1_starts sha1_starts +#define lwip_sha1_update sha1_update +#define lwip_sha1_finish sha1_finish +#define lwip_sha1_free(context) + +#include "netif/ppp/polarssl/des.h" +#define lwip_des_context des_context +#define lwip_des_init(context) +#define lwip_des_setkey_enc des_setkey_enc +#define lwip_des_crypt_ecb des_crypt_ecb +#define lwip_des_free(context) + +#include "netif/ppp/polarssl/arc4.h" +#define lwip_arc4_context arc4_context +#define lwip_arc4_init(context) +#define lwip_arc4_setup arc4_setup +#define lwip_arc4_crypt arc4_crypt +#define lwip_arc4_free(context) + +#endif /* !LWIP_USE_EXTERNAL_MBEDTLS */ + +/* + * Map hashes and ciphers functions to mbed TLS + */ +#if LWIP_USE_EXTERNAL_MBEDTLS + +#define lwip_md4_context mbedtls_md4_context +#define lwip_md4_init mbedtls_md4_init +#define lwip_md4_starts mbedtls_md4_starts +#define lwip_md4_update mbedtls_md4_update +#define lwip_md4_finish mbedtls_md4_finish +#define lwip_md4_free mbedtls_md4_free + +#define lwip_md5_context mbedtls_md5_context +#define lwip_md5_init mbedtls_md5_init +#define lwip_md5_starts mbedtls_md5_starts +#define lwip_md5_update mbedtls_md5_update +#define lwip_md5_finish mbedtls_md5_finish +#define lwip_md5_free mbedtls_md5_free + +#define lwip_sha1_context mbedtls_sha1_context +#define lwip_sha1_init mbedtls_sha1_init +#define lwip_sha1_starts mbedtls_sha1_starts +#define lwip_sha1_update mbedtls_sha1_update +#define lwip_sha1_finish mbedtls_sha1_finish +#define lwip_sha1_free mbedtls_sha1_free + +#define lwip_des_context mbedtls_des_context +#define lwip_des_init mbedtls_des_init +#define lwip_des_setkey_enc mbedtls_des_setkey_enc +#define lwip_des_crypt_ecb mbedtls_des_crypt_ecb +#define lwip_des_free mbedtls_des_free + +#define lwip_arc4_context mbedtls_arc4_context +#define lwip_arc4_init mbedtls_arc4_init +#define lwip_arc4_setup mbedtls_arc4_setup +#define lwip_arc4_crypt(context, buffer, length) mbedtls_arc4_crypt(context, length, buffer, buffer) +#define lwip_arc4_free mbedtls_arc4_free + +#endif /* LWIP_USE_EXTERNAL_MBEDTLS */ + +void pppcrypt_56_to_64_bit_key(u_char *key, u_char *des_key); + +#ifdef __cplusplus +} +#endif + +#endif /* PPPCRYPT_H */ + +#endif /* PPP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppdebug.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppdebug.h new file mode 100644 index 000000000..391b7c617 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppdebug.h @@ -0,0 +1,88 @@ +/***************************************************************************** +* pppdebug.h - System debugging utilities. +* +* Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. +* portions Copyright (c) 1998 Global Election Systems Inc. +* portions Copyright (c) 2001 by Cognizant Pty Ltd. +* +* The authors hereby grant permission to use, copy, modify, distribute, +* and license this software and its documentation for any purpose, provided +* that existing copyright notices are retained in all copies and that this +* notice and the following disclaimer are included verbatim in any +* distributions. No written agreement, license, or royalty fee is required +* for any of the authorized uses. +* +* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR +* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +****************************************************************************** +* REVISION HISTORY (please don't use tabs!) +* +* 03-01-01 Marc Boucher +* Ported to lwIP. +* 98-07-29 Guy Lancaster , Global Election Systems Inc. +* Original. +* +***************************************************************************** +*/ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef PPPDEBUG_H +#define PPPDEBUG_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Trace levels. */ +#define LOG_CRITICAL (PPP_DEBUG | LWIP_DBG_LEVEL_SEVERE) +#define LOG_ERR (PPP_DEBUG | LWIP_DBG_LEVEL_SEVERE) +#define LOG_NOTICE (PPP_DEBUG | LWIP_DBG_LEVEL_WARNING) +#define LOG_WARNING (PPP_DEBUG | LWIP_DBG_LEVEL_WARNING) +#define LOG_INFO (PPP_DEBUG) +#define LOG_DETAIL (PPP_DEBUG) +#define LOG_DEBUG (PPP_DEBUG) + +#if PPP_DEBUG + +#define MAINDEBUG(a) LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING, a) +#define SYSDEBUG(a) LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING, a) +#define FSMDEBUG(a) LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING, a) +#define LCPDEBUG(a) LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING, a) +#define IPCPDEBUG(a) LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING, a) +#define IPV6CPDEBUG(a) LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING, a) +#define UPAPDEBUG(a) LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING, a) +#define CHAPDEBUG(a) LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING, a) +#define PPPDEBUG(a, b) LWIP_DEBUGF(a, b) + +#else /* PPP_DEBUG */ + +#define MAINDEBUG(a) +#define SYSDEBUG(a) +#define FSMDEBUG(a) +#define LCPDEBUG(a) +#define IPCPDEBUG(a) +#define IPV6CPDEBUG(a) +#define UPAPDEBUG(a) +#define CHAPDEBUG(a) +#define PPPDEBUG(a, b) + +#endif /* PPP_DEBUG */ + +#ifdef __cplusplus +} +#endif + +#endif /* PPPDEBUG_H */ + +#endif /* PPP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppoe.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppoe.h new file mode 100644 index 000000000..93acd4c96 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppoe.h @@ -0,0 +1,187 @@ +/***************************************************************************** +* pppoe.h - PPP Over Ethernet implementation for lwIP. +* +* Copyright (c) 2006 by Marc Boucher, Services Informatiques (MBSI) inc. +* +* The authors hereby grant permission to use, copy, modify, distribute, +* and license this software and its documentation for any purpose, provided +* that existing copyright notices are retained in all copies and that this +* notice and the following disclaimer are included verbatim in any +* distributions. No written agreement, license, or royalty fee is required +* for any of the authorized uses. +* +* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR +* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +****************************************************************************** +* REVISION HISTORY +* +* 06-01-01 Marc Boucher +* Ported to lwIP. +*****************************************************************************/ + + + +/* based on NetBSD: if_pppoe.c,v 1.64 2006/01/31 23:50:15 martin Exp */ + +/*- + * Copyright (c) 2002 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Martin Husemann . + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && PPPOE_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef PPP_OE_H +#define PPP_OE_H + +#include "ppp.h" +#include "lwip/etharp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct pppoehdr { + PACK_STRUCT_FLD_8(u8_t vertype); + PACK_STRUCT_FLD_8(u8_t code); + PACK_STRUCT_FIELD(u16_t session); + PACK_STRUCT_FIELD(u16_t plen); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif +PACK_STRUCT_BEGIN +struct pppoetag { + PACK_STRUCT_FIELD(u16_t tag); + PACK_STRUCT_FIELD(u16_t len); +} PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + + +#define PPPOE_STATE_INITIAL 0 +#define PPPOE_STATE_PADI_SENT 1 +#define PPPOE_STATE_PADR_SENT 2 +#define PPPOE_STATE_SESSION 3 +/* passive */ +#define PPPOE_STATE_PADO_SENT 1 + +#define PPPOE_HEADERLEN sizeof(struct pppoehdr) +#define PPPOE_VERTYPE 0x11 /* VER=1, TYPE = 1 */ + +#define PPPOE_TAG_EOL 0x0000 /* end of list */ +#define PPPOE_TAG_SNAME 0x0101 /* service name */ +#define PPPOE_TAG_ACNAME 0x0102 /* access concentrator name */ +#define PPPOE_TAG_HUNIQUE 0x0103 /* host unique */ +#define PPPOE_TAG_ACCOOKIE 0x0104 /* AC cookie */ +#define PPPOE_TAG_VENDOR 0x0105 /* vendor specific */ +#define PPPOE_TAG_RELAYSID 0x0110 /* relay session id */ +#define PPPOE_TAG_SNAME_ERR 0x0201 /* service name error */ +#define PPPOE_TAG_ACSYS_ERR 0x0202 /* AC system error */ +#define PPPOE_TAG_GENERIC_ERR 0x0203 /* gerneric error */ + +#define PPPOE_CODE_PADI 0x09 /* Active Discovery Initiation */ +#define PPPOE_CODE_PADO 0x07 /* Active Discovery Offer */ +#define PPPOE_CODE_PADR 0x19 /* Active Discovery Request */ +#define PPPOE_CODE_PADS 0x65 /* Active Discovery Session confirmation */ +#define PPPOE_CODE_PADT 0xA7 /* Active Discovery Terminate */ + +#ifndef PPPOE_MAX_AC_COOKIE_LEN +#define PPPOE_MAX_AC_COOKIE_LEN 64 +#endif + +struct pppoe_softc { + struct pppoe_softc *next; + struct netif *sc_ethif; /* ethernet interface we are using */ + ppp_pcb *pcb; /* PPP PCB */ + + struct eth_addr sc_dest; /* hardware address of concentrator */ + u16_t sc_session; /* PPPoE session id */ + u8_t sc_state; /* discovery phase or session connected */ + +#ifdef PPPOE_TODO + u8_t *sc_service_name; /* if != NULL: requested name of service */ + u8_t *sc_concentrator_name; /* if != NULL: requested concentrator id */ +#endif /* PPPOE_TODO */ + u8_t sc_ac_cookie[PPPOE_MAX_AC_COOKIE_LEN]; /* content of AC cookie we must echo back */ + u8_t sc_ac_cookie_len; /* length of cookie data */ +#ifdef PPPOE_SERVER + u8_t *sc_hunique; /* content of host unique we must echo back */ + u8_t sc_hunique_len; /* length of host unique */ +#endif + u8_t sc_padi_retried; /* number of PADI retries already done */ + u8_t sc_padr_retried; /* number of PADR retries already done */ +}; + + +#define pppoe_init() /* compatibility define, no initialization needed */ + +ppp_pcb *pppoe_create(struct netif *pppif, + struct netif *ethif, + const char *service_name, const char *concentrator_name, + ppp_link_status_cb_fn link_status_cb, void *ctx_cb); + +/* + * Functions called from lwIP + * DO NOT CALL FROM lwIP USER APPLICATION. + */ +void pppoe_disc_input(struct netif *netif, struct pbuf *p); +void pppoe_data_input(struct netif *netif, struct pbuf *p); + +#ifdef __cplusplus +} +#endif + +#endif /* PPP_OE_H */ + +#endif /* PPP_SUPPORT && PPPOE_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppol2tp.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppol2tp.h new file mode 100644 index 000000000..e09d6e1f2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppol2tp.h @@ -0,0 +1,209 @@ +/** + * @file + * Network Point to Point Protocol over Layer 2 Tunneling Protocol header file. + * + */ + +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && PPPOL2TP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef PPPOL2TP_H +#define PPPOL2TP_H + +#include "ppp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Timeout */ +#define PPPOL2TP_CONTROL_TIMEOUT (5*1000) /* base for quick timeout calculation */ +#define PPPOL2TP_SLOW_RETRY (60*1000) /* persistent retry interval */ + +#define PPPOL2TP_MAXSCCRQ 4 /* retry SCCRQ four times (quickly) */ +#define PPPOL2TP_MAXICRQ 4 /* retry IRCQ four times */ +#define PPPOL2TP_MAXICCN 4 /* retry ICCN four times */ + +/* L2TP header flags */ +#define PPPOL2TP_HEADERFLAG_CONTROL 0x8000 +#define PPPOL2TP_HEADERFLAG_LENGTH 0x4000 +#define PPPOL2TP_HEADERFLAG_SEQUENCE 0x0800 +#define PPPOL2TP_HEADERFLAG_OFFSET 0x0200 +#define PPPOL2TP_HEADERFLAG_PRIORITY 0x0100 +#define PPPOL2TP_HEADERFLAG_VERSION 0x0002 + +/* Mandatory bits for control: Control, Length, Sequence, Version 2 */ +#define PPPOL2TP_HEADERFLAG_CONTROL_MANDATORY (PPPOL2TP_HEADERFLAG_CONTROL|PPPOL2TP_HEADERFLAG_LENGTH|PPPOL2TP_HEADERFLAG_SEQUENCE|PPPOL2TP_HEADERFLAG_VERSION) +/* Forbidden bits for control: Offset, Priority */ +#define PPPOL2TP_HEADERFLAG_CONTROL_FORBIDDEN (PPPOL2TP_HEADERFLAG_OFFSET|PPPOL2TP_HEADERFLAG_PRIORITY) + +/* Mandatory bits for data: Version 2 */ +#define PPPOL2TP_HEADERFLAG_DATA_MANDATORY (PPPOL2TP_HEADERFLAG_VERSION) + +/* AVP (Attribute Value Pair) header */ +#define PPPOL2TP_AVPHEADERFLAG_MANDATORY 0x8000 +#define PPPOL2TP_AVPHEADERFLAG_HIDDEN 0x4000 +#define PPPOL2TP_AVPHEADERFLAG_LENGTHMASK 0x03ff + +/* -- AVP - Message type */ +#define PPPOL2TP_AVPTYPE_MESSAGE 0 /* Message type */ + +/* Control Connection Management */ +#define PPPOL2TP_MESSAGETYPE_SCCRQ 1 /* Start Control Connection Request */ +#define PPPOL2TP_MESSAGETYPE_SCCRP 2 /* Start Control Connection Reply */ +#define PPPOL2TP_MESSAGETYPE_SCCCN 3 /* Start Control Connection Connected */ +#define PPPOL2TP_MESSAGETYPE_STOPCCN 4 /* Stop Control Connection Notification */ +#define PPPOL2TP_MESSAGETYPE_HELLO 6 /* Hello */ +/* Call Management */ +#define PPPOL2TP_MESSAGETYPE_OCRQ 7 /* Outgoing Call Request */ +#define PPPOL2TP_MESSAGETYPE_OCRP 8 /* Outgoing Call Reply */ +#define PPPOL2TP_MESSAGETYPE_OCCN 9 /* Outgoing Call Connected */ +#define PPPOL2TP_MESSAGETYPE_ICRQ 10 /* Incoming Call Request */ +#define PPPOL2TP_MESSAGETYPE_ICRP 11 /* Incoming Call Reply */ +#define PPPOL2TP_MESSAGETYPE_ICCN 12 /* Incoming Call Connected */ +#define PPPOL2TP_MESSAGETYPE_CDN 14 /* Call Disconnect Notify */ +/* Error reporting */ +#define PPPOL2TP_MESSAGETYPE_WEN 15 /* WAN Error Notify */ +/* PPP Session Control */ +#define PPPOL2TP_MESSAGETYPE_SLI 16 /* Set Link Info */ + +/* -- AVP - Result code */ +#define PPPOL2TP_AVPTYPE_RESULTCODE 1 /* Result code */ +#define PPPOL2TP_RESULTCODE 1 /* General request to clear control connection */ + +/* -- AVP - Protocol version (!= L2TP Header version) */ +#define PPPOL2TP_AVPTYPE_VERSION 2 +#define PPPOL2TP_VERSION 0x0100 /* L2TP Protocol version 1, revision 0 */ + +/* -- AVP - Framing capabilities */ +#define PPPOL2TP_AVPTYPE_FRAMINGCAPABILITIES 3 /* Bearer capabilities */ +#define PPPOL2TP_FRAMINGCAPABILITIES 0x00000003 /* Async + Sync framing */ + +/* -- AVP - Bearer capabilities */ +#define PPPOL2TP_AVPTYPE_BEARERCAPABILITIES 4 /* Bearer capabilities */ +#define PPPOL2TP_BEARERCAPABILITIES 0x00000003 /* Analog + Digital Access */ + +/* -- AVP - Tie breaker */ +#define PPPOL2TP_AVPTYPE_TIEBREAKER 5 + +/* -- AVP - Host name */ +#define PPPOL2TP_AVPTYPE_HOSTNAME 7 /* Host name */ +#define PPPOL2TP_HOSTNAME "lwIP" /* FIXME: make it configurable */ + +/* -- AVP - Vendor name */ +#define PPPOL2TP_AVPTYPE_VENDORNAME 8 /* Vendor name */ +#define PPPOL2TP_VENDORNAME "lwIP" /* FIXME: make it configurable */ + +/* -- AVP - Assign tunnel ID */ +#define PPPOL2TP_AVPTYPE_TUNNELID 9 /* Assign Tunnel ID */ + +/* -- AVP - Receive window size */ +#define PPPOL2TP_AVPTYPE_RECEIVEWINDOWSIZE 10 /* Receive window size */ +#define PPPOL2TP_RECEIVEWINDOWSIZE 8 /* FIXME: make it configurable */ + +/* -- AVP - Challenge */ +#define PPPOL2TP_AVPTYPE_CHALLENGE 11 /* Challenge */ + +/* -- AVP - Cause code */ +#define PPPOL2TP_AVPTYPE_CAUSECODE 12 /* Cause code*/ + +/* -- AVP - Challenge response */ +#define PPPOL2TP_AVPTYPE_CHALLENGERESPONSE 13 /* Challenge response */ +#define PPPOL2TP_AVPTYPE_CHALLENGERESPONSE_SIZE 16 + +/* -- AVP - Assign session ID */ +#define PPPOL2TP_AVPTYPE_SESSIONID 14 /* Assign Session ID */ + +/* -- AVP - Call serial number */ +#define PPPOL2TP_AVPTYPE_CALLSERIALNUMBER 15 /* Call Serial Number */ + +/* -- AVP - Framing type */ +#define PPPOL2TP_AVPTYPE_FRAMINGTYPE 19 /* Framing Type */ +#define PPPOL2TP_FRAMINGTYPE 0x00000001 /* Sync framing */ + +/* -- AVP - TX Connect Speed */ +#define PPPOL2TP_AVPTYPE_TXCONNECTSPEED 24 /* TX Connect Speed */ +#define PPPOL2TP_TXCONNECTSPEED 100000000 /* Connect speed: 100 Mbits/s */ + +/* L2TP Session state */ +#define PPPOL2TP_STATE_INITIAL 0 +#define PPPOL2TP_STATE_SCCRQ_SENT 1 +#define PPPOL2TP_STATE_ICRQ_SENT 2 +#define PPPOL2TP_STATE_ICCN_SENT 3 +#define PPPOL2TP_STATE_DATA 4 + +#define PPPOL2TP_OUTPUT_DATA_HEADER_LEN 6 /* Our data header len */ + +/* + * PPPoL2TP interface control block. + */ +typedef struct pppol2tp_pcb_s pppol2tp_pcb; +struct pppol2tp_pcb_s { + ppp_pcb *ppp; /* PPP PCB */ + u8_t phase; /* L2TP phase */ + struct udp_pcb *udp; /* UDP L2TP Socket */ + struct netif *netif; /* Output interface, used as a default route */ + ip_addr_t remote_ip; /* LNS IP Address */ + u16_t remote_port; /* LNS port */ +#if PPPOL2TP_AUTH_SUPPORT + const u8_t *secret; /* Secret string */ + u8_t secret_len; /* Secret string length */ + u8_t secret_rv[16]; /* Random vector */ + u8_t challenge_hash[16]; /* Challenge response */ + u8_t send_challenge; /* Boolean whether the next sent packet should contains a challenge response */ +#endif /* PPPOL2TP_AUTH_SUPPORT */ + + u16_t tunnel_port; /* Tunnel port */ + u16_t our_ns; /* NS to peer */ + u16_t peer_nr; /* NR from peer */ + u16_t peer_ns; /* Expected NS from peer */ + u16_t source_tunnel_id; /* Tunnel ID assigned by peer */ + u16_t remote_tunnel_id; /* Tunnel ID assigned to peer */ + u16_t source_session_id; /* Session ID assigned by peer */ + u16_t remote_session_id; /* Session ID assigned to peer */ + + u8_t sccrq_retried; /* number of SCCRQ retries already done */ + u8_t icrq_retried; /* number of ICRQ retries already done */ + u8_t iccn_retried; /* number of ICCN retries already done */ +}; + + +/* Create a new L2TP session. */ +ppp_pcb *pppol2tp_create(struct netif *pppif, + struct netif *netif, const ip_addr_t *ipaddr, u16_t port, + const u8_t *secret, u8_t secret_len, + ppp_link_status_cb_fn link_status_cb, void *ctx_cb); + +#ifdef __cplusplus +} +#endif + +#endif /* PPPOL2TP_H */ +#endif /* PPP_SUPPORT && PPPOL2TP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppos.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppos.h new file mode 100644 index 000000000..acaedd78b --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/pppos.h @@ -0,0 +1,126 @@ +/** + * @file + * Network Point to Point Protocol over Serial header file. + * + */ + +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && PPPOS_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef PPPOS_H +#define PPPOS_H + +#include "lwip/sys.h" + +#include "ppp.h" +#include "vj.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PPP packet parser states. Current state indicates operation yet to be + * completed. */ +enum { + PDIDLE = 0, /* Idle state - waiting. */ + PDSTART, /* Process start flag. */ + PDADDRESS, /* Process address field. */ + PDCONTROL, /* Process control field. */ + PDPROTOCOL1, /* Process protocol field 1. */ + PDPROTOCOL2, /* Process protocol field 2. */ + PDDATA /* Process data byte. */ +}; + +/* PPPoS serial output callback function prototype */ +typedef u32_t (*pppos_output_cb_fn)(ppp_pcb *pcb, u8_t *data, u32_t len, void *ctx); + +/* + * Extended asyncmap - allows any character to be escaped. + */ +typedef u8_t ext_accm[32]; + +/* + * PPPoS interface control block. + */ +typedef struct pppos_pcb_s pppos_pcb; +struct pppos_pcb_s { + /* -- below are data that will NOT be cleared between two sessions */ + ppp_pcb *ppp; /* PPP PCB */ + pppos_output_cb_fn output_cb; /* PPP serial output callback */ + + /* -- below are data that will be cleared between two sessions + * + * last_xmit must be the first member of cleared members, because it is + * used to know which part must not be cleared. + */ + u32_t last_xmit; /* Time of last transmission. */ + ext_accm out_accm; /* Async-Ctl-Char-Map for output. */ + + /* flags */ + unsigned int open :1; /* Set if PPPoS is open */ + unsigned int pcomp :1; /* Does peer accept protocol compression? */ + unsigned int accomp :1; /* Does peer accept addr/ctl compression? */ + + /* PPPoS rx */ + ext_accm in_accm; /* Async-Ctl-Char-Map for input. */ + struct pbuf *in_head, *in_tail; /* The input packet. */ + u16_t in_protocol; /* The input protocol code. */ + u16_t in_fcs; /* Input Frame Check Sequence value. */ + u8_t in_state; /* The input process state. */ + u8_t in_escaped; /* Escape next character. */ +}; + +/* Create a new PPPoS session. */ +ppp_pcb *pppos_create(struct netif *pppif, pppos_output_cb_fn output_cb, + ppp_link_status_cb_fn link_status_cb, void *ctx_cb); + +#if !NO_SYS && !PPP_INPROC_IRQ_SAFE +/* Pass received raw characters to PPPoS to be decoded through lwIP TCPIP thread. */ +err_t pppos_input_tcpip(ppp_pcb *ppp, u8_t *s, int l); +#endif /* !NO_SYS && !PPP_INPROC_IRQ_SAFE */ + +/* PPP over Serial: this is the input function to be called for received data. */ +void pppos_input(ppp_pcb *ppp, u8_t* data, int len); + + +/* + * Functions called from lwIP + * DO NOT CALL FROM lwIP USER APPLICATION. + */ +#if !NO_SYS && !PPP_INPROC_IRQ_SAFE +err_t pppos_input_sys(struct pbuf *p, struct netif *inp); +#endif /* !NO_SYS && !PPP_INPROC_IRQ_SAFE */ + +#ifdef __cplusplus +} +#endif + +#endif /* PPPOS_H */ +#endif /* PPP_SUPPORT && PPPOL2TP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/upap.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/upap.h new file mode 100644 index 000000000..8d90e35f2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/upap.h @@ -0,0 +1,131 @@ +/* + * upap.h - User/Password Authentication Protocol definitions. + * + * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: upap.h,v 1.8 2002/12/04 23:03:33 paulus Exp $ + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && PAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef UPAP_H +#define UPAP_H + +#include "ppp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Packet header = Code, id, length. + */ +#define UPAP_HEADERLEN 4 + + +/* + * UPAP codes. + */ +#define UPAP_AUTHREQ 1 /* Authenticate-Request */ +#define UPAP_AUTHACK 2 /* Authenticate-Ack */ +#define UPAP_AUTHNAK 3 /* Authenticate-Nak */ + + +/* + * Client states. + */ +#define UPAPCS_INITIAL 0 /* Connection down */ +#define UPAPCS_CLOSED 1 /* Connection up, haven't requested auth */ +#define UPAPCS_PENDING 2 /* Connection down, have requested auth */ +#define UPAPCS_AUTHREQ 3 /* We've sent an Authenticate-Request */ +#define UPAPCS_OPEN 4 /* We've received an Ack */ +#define UPAPCS_BADAUTH 5 /* We've received a Nak */ + +/* + * Server states. + */ +#define UPAPSS_INITIAL 0 /* Connection down */ +#define UPAPSS_CLOSED 1 /* Connection up, haven't requested auth */ +#define UPAPSS_PENDING 2 /* Connection down, have requested auth */ +#define UPAPSS_LISTEN 3 /* Listening for an Authenticate */ +#define UPAPSS_OPEN 4 /* We've sent an Ack */ +#define UPAPSS_BADAUTH 5 /* We've sent a Nak */ + + +/* + * Timeouts. + */ +#if 0 /* moved to ppp_opts.h */ +#define UPAP_DEFTIMEOUT 3 /* Timeout (seconds) for retransmitting req */ +#define UPAP_DEFREQTIME 30 /* Time to wait for auth-req from peer */ +#endif /* moved to ppp_opts.h */ + +/* + * Each interface is described by upap structure. + */ +#if PAP_SUPPORT +typedef struct upap_state { + const char *us_user; /* User */ + u8_t us_userlen; /* User length */ + const char *us_passwd; /* Password */ + u8_t us_passwdlen; /* Password length */ + u8_t us_clientstate; /* Client state */ +#if PPP_SERVER + u8_t us_serverstate; /* Server state */ +#endif /* PPP_SERVER */ + u8_t us_id; /* Current id */ + u8_t us_transmits; /* Number of auth-reqs sent */ +} upap_state; +#endif /* PAP_SUPPORT */ + + +void upap_authwithpeer(ppp_pcb *pcb, const char *user, const char *password); +#if PPP_SERVER +void upap_authpeer(ppp_pcb *pcb); +#endif /* PPP_SERVER */ + +extern const struct protent pap_protent; + +#ifdef __cplusplus +} +#endif + +#endif /* UPAP_H */ +#endif /* PPP_SUPPORT && PAP_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/vj.h b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/vj.h new file mode 100644 index 000000000..1d91f2590 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/include/netif/ppp/vj.h @@ -0,0 +1,169 @@ +/* + * Definitions for tcp compression routines. + * + * $Id: vj.h,v 1.7 2010/02/22 17:52:09 goldsimon Exp $ + * + * Copyright (c) 1989 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989: + * - Initial distribution. + */ + +#include "netif/ppp/ppp_opts.h" +#if PPP_SUPPORT && VJ_SUPPORT /* don't build if not configured for use in lwipopts.h */ + +#ifndef VJ_H +#define VJ_H + +#include "lwip/ip.h" +#include "lwip/priv/tcp_priv.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_SLOTS 16 /* must be > 2 and < 256 */ +#define MAX_HDR 128 + +/* + * Compressed packet format: + * + * The first octet contains the packet type (top 3 bits), TCP + * 'push' bit, and flags that indicate which of the 4 TCP sequence + * numbers have changed (bottom 5 bits). The next octet is a + * conversation number that associates a saved IP/TCP header with + * the compressed packet. The next two octets are the TCP checksum + * from the original datagram. The next 0 to 15 octets are + * sequence number changes, one change per bit set in the header + * (there may be no changes and there are two special cases where + * the receiver implicitly knows what changed -- see below). + * + * There are 5 numbers which can change (they are always inserted + * in the following order): TCP urgent pointer, window, + * acknowlegement, sequence number and IP ID. (The urgent pointer + * is different from the others in that its value is sent, not the + * change in value.) Since typical use of SLIP links is biased + * toward small packets (see comments on MTU/MSS below), changes + * use a variable length coding with one octet for numbers in the + * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the + * range 256 - 65535 or 0. (If the change in sequence number or + * ack is more than 65535, an uncompressed packet is sent.) + */ + +/* + * Packet types (must not conflict with IP protocol version) + * + * The top nibble of the first octet is the packet type. There are + * three possible types: IP (not proto TCP or tcp with one of the + * control flags set); uncompressed TCP (a normal IP/TCP packet but + * with the 8-bit protocol field replaced by an 8-bit connection id -- + * this type of packet syncs the sender & receiver); and compressed + * TCP (described above). + * + * LSB of 4-bit field is TCP "PUSH" bit (a worthless anachronism) and + * is logically part of the 4-bit "changes" field that follows. Top + * three bits are actual packet type. For backward compatibility + * and in the interest of conserving bits, numbers are chosen so the + * IP protocol version number (4) which normally appears in this nibble + * means "IP packet". + */ + +/* packet types */ +#define TYPE_IP 0x40 +#define TYPE_UNCOMPRESSED_TCP 0x70 +#define TYPE_COMPRESSED_TCP 0x80 +#define TYPE_ERROR 0x00 + +/* Bits in first octet of compressed packet */ +#define NEW_C 0x40 /* flag bits for what changed in a packet */ +#define NEW_I 0x20 +#define NEW_S 0x08 +#define NEW_A 0x04 +#define NEW_W 0x02 +#define NEW_U 0x01 + +/* reserved, special-case values of above */ +#define SPECIAL_I (NEW_S|NEW_W|NEW_U) /* echoed interactive traffic */ +#define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U) /* unidirectional data */ +#define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U) + +#define TCP_PUSH_BIT 0x10 + + +/* + * "state" data for each active tcp conversation on the wire. This is + * basically a copy of the entire IP/TCP header from the last packet + * we saw from the conversation together with a small identifier + * the transmit & receive ends of the line use to locate saved header. + */ +struct cstate { + struct cstate *cs_next; /* next most recently used state (xmit only) */ + u16_t cs_hlen; /* size of hdr (receive only) */ + u8_t cs_id; /* connection # associated with this state */ + u8_t cs_filler; + union { + char csu_hdr[MAX_HDR]; + struct ip_hdr csu_ip; /* ip/tcp hdr from most recent packet */ + } vjcs_u; +}; +#define cs_ip vjcs_u.csu_ip +#define cs_hdr vjcs_u.csu_hdr + + +struct vjstat { + u32_t vjs_packets; /* outbound packets */ + u32_t vjs_compressed; /* outbound compressed packets */ + u32_t vjs_searches; /* searches for connection state */ + u32_t vjs_misses; /* times couldn't find conn. state */ + u32_t vjs_uncompressedin; /* inbound uncompressed packets */ + u32_t vjs_compressedin; /* inbound compressed packets */ + u32_t vjs_errorin; /* inbound unknown type packets */ + u32_t vjs_tossed; /* inbound packets tossed because of error */ +}; + +/* + * all the state data for one serial line (we need one of these per line). + */ +struct vjcompress { + struct cstate *last_cs; /* most recently used tstate */ + u8_t last_recv; /* last rcvd conn. id */ + u8_t last_xmit; /* last sent conn. id */ + u16_t flags; + u8_t maxSlotIndex; + u8_t compressSlot; /* Flag indicating OK to compress slot ID. */ +#if LINK_STATS + struct vjstat stats; +#endif + struct cstate tstate[MAX_SLOTS]; /* xmit connection states */ + struct cstate rstate[MAX_SLOTS]; /* receive connection states */ +}; + +/* flag values */ +#define VJF_TOSS 1U /* tossing rcvd frames because of input err */ + +extern void vj_compress_init (struct vjcompress *comp); +extern u8_t vj_compress_tcp (struct vjcompress *comp, struct pbuf **pb); +extern void vj_uncompress_err (struct vjcompress *comp); +extern int vj_uncompress_uncomp(struct pbuf *nb, struct vjcompress *comp); +extern int vj_uncompress_tcp (struct pbuf **nb, struct vjcompress *comp); + +#ifdef __cplusplus +} +#endif + +#endif /* VJ_H */ + +#endif /* PPP_SUPPORT && VJ_SUPPORT */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/lwip.c b/BLE_EXAMPLE/src/main/cpp/lwip/lwip.c new file mode 100644 index 000000000..c4bbb9374 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/lwip.c @@ -0,0 +1,79 @@ +#include "lwip.h" +#include "lwip/init.h" +#include "lwip/netif.h" +#include "lwip/eth_router_if_lwip.h" +#include "lwip/dhcp_server.h" +#include "lwip/dnsproxy.h" +#include "eth_nat.h" + +struct netif gnetif; +ip4_addr_t ipaddr; +ip4_addr_t netmask; +ip4_addr_t gw; + +sem_t lwip_core_sem; + +static void ethernet_link_status_updated(struct netif *netif) { } + +#define DHCPS_SERVER_PORT 67 + +struct udp_pcb* pcb_dhcps; + + + +static void dhcps_cb(void* arg, uint8_t ip[4], uint8_t mac[6]) +{ +/* esp_netif_t netif = arg; + ESP_LOGD(TAG, "%s esp_netif:%p", __func__, esp_netif); + ip_event_ap_staipassigned_t evt = { .esp_netif = esp_netif }; + memcpy((char *)&evt.ip.addr, (char *)ip, sizeof(evt.ip.addr)); + memcpy((char *)&evt.mac, mac, sizeof(evt.mac)); + ESP_LOGI(TAG, "DHCP server assigned IP to a client, IP is: " IPSTR, IP2STR(&evt.ip)); + ESP_LOGD(TAG, "Client's MAC: %x:%x:%x:%x:%x:%x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); + + int ret = esp_event_post(IP_EVENT, IP_EVENT_AP_STAIPASSIGNED, &evt, sizeof(evt), 0); + if (ESP_OK != ret) { + ESP_LOGE(TAG, "dhcps cb: failed to post IP_EVENT_AP_STAIPASSIGNED (%x)", ret); + }*/ +} + + +void MX_LWIP_Init(void) { + + sem_init(&lwip_core_sem, 0, 1); + + LOCK_LWIP_CORE(); + lwip_init(); + + ipaddr.addr =0; + netmask.addr = 0; + gw.addr = 0; + + IP4_ADDR(&ipaddr, 192, 168, 245, 1); + IP4_ADDR(&netmask, 255, 255, 255, 0); + IP4_ADDR(&gw, 192, 168, 245, 1); + + netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, ð_lwip_if_init, ðernet_input);// with router + netif_set_default(&gnetif); + netif_set_up(&gnetif); + netif_set_link_callback(&gnetif, ethernet_link_status_updated); + sys_restart_timeouts(); + + dhcps_t* dhcpd=dhcps_new(); + dhcps_dns_setserver(dhcpd, &ipaddr); + if (dhcpd) dhcps_start(dhcpd, &gnetif, ipaddr); + + dnsproxy_init(); + + eth_nat_init(); + +// IP4_ADDR(&broadcast_dhcps, 255, 255, 255, 255); +// server_address = info->ip; +// wifi_softap_init_dhcps_lease(server_address.addr); +// client_address_plus.addr = dhcps_lease.start_ip.addr; +// udp_bind(pcb_dhcps, IP_ADDR_ANY, DHCPS_SERVER_PORT); +// udp_recv(pcb_dhcps, handle_dhcp, NULL); + + UNLOCK_LWIP_CORE(); + } + diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/lwip.h b/BLE_EXAMPLE/src/main/cpp/lwip/lwip.h new file mode 100644 index 000000000..14fe3538b --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/lwip.h @@ -0,0 +1,17 @@ +#pragma once + +#include "lwip/opt.h" +#include "lwip/mem.h" +#include "lwip/memp.h" +#include "netif/etharp.h" +#include "lwip/netif.h" +#include "lwip/timeouts.h" + +void MX_LWIP_Init(void); + +extern struct netif gnetif; +extern struct netif bridgeif; +extern sem_t lwip_core_sem; + +#define LOCK_LWIP_CORE() sem_wait(&lwip_core_sem) +#define UNLOCK_LWIP_CORE() sem_post(&lwip_core_sem) diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/lwipopts.h b/BLE_EXAMPLE/src/main/cpp/lwip/lwipopts.h new file mode 100644 index 000000000..78f62aa6e --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/lwipopts.h @@ -0,0 +1,175 @@ + +/** + ****************************************************************************** + * File Name : Target/lwipopts.h + * Description : This file overrides LwIP stack default configuration + * done in opt.h file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * www.st.com/SLA0044 + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion --------------------------------------*/ +#ifndef __LWIPOPTS__H__ +#define __LWIPOPTS__H__ + +#include "xlib.h" + +/*-----------------------------------------------------------------------------*/ +/* Current version of LwIP supported by CubeMx: 2.1.2 -*/ +/*-----------------------------------------------------------------------------*/ + +/* Within 'USER CODE' section, code will be kept by default at each generation */ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +#ifdef __cplusplus + extern "C" { +#endif + +/* STM32CubeMX Specific Parameters (not defined in opt.h) ---------------------*/ +/* Parameters set in STM32CubeMX LwIP Configuration GUI -*/ +/*----- WITH_RTOS enabled (Since FREERTOS is set) -----*/ +#define WITH_RTOS 0 +#define WITH_MBEDTLS 0 +/*----- CHECKSUM_BY_HARDWARE enabled -----*/ +#define CHECKSUM_BY_HARDWARE 1 +/*-----------------------------------------------------------------------------*/ + +/* LwIP Stack Parameters (modified compared to initialization value in opt.h) -*/ +/* Parameters set in STM32CubeMX LwIP Configuration GUI -*/ +/*----- Value in opt.h for LWIP_DHCP: 0 -----*/ +#define LWIP_DHCP 0 +/*----- Default value in ETH configuration GUI in CubeMx: 1524 -----*/ +//#define ETH_RX_BUFFER_SIZE 1600// êðàòíî 32 áàéòàì!! +/*----- Default Value for LWIP_DNS: 0 ---*/ +#define LWIP_DNS 0 +/*----- Value in opt.h for MEM_ALIGNMENT: 1 -----*/ +#define MEM_ALIGNMENT 4// cache page +/*----- Default Value for H7 devices: 0x30044000 -----*/ +//#define LWIP_RAM_HEAP_POINTER 0x30044000 +// #define MEM_SIZE 1600 +//#define ETH_RX_BUFS_CNT 32 + +//extern uint8_t lwip_memxx[]; +//#define LWIP_RAM_HEAP_POINTER ((uint32_t)lwip_memxx); +//#define MEM_SIZE (1024*1024) + +/*----- Value in opt.h for TCP_MSS: 536 -----*/ +#define TCP_MSS 1460 +/*----- Value in opt.h for MEMP_NUM_PBUF 16 -----*/ +#define MEMP_NUM_PBUF 64 +/*----- Value in opt.h for PBUF_POOL_SIZE: 16 -----*/ +#define PBUF_POOL_SIZE 64 +/*----- Value in opt.h for MEMP_NUM_TCP_SEG: 16 -----*/ +#define MEMP_NUM_TCP_PCB 16 +#define MEMP_NUM_TCP_PCB_LISTEN 16 +#define MEMP_NUM_TCP_SEG 64 +#define MEMP_NUM_ALTCP_PCB 16 + +#define MEMP_NUM_RAW_PCB 4 +#define MEMP_NUM_TCPIP_MSG_INPKT 64 +#define TCPIP_MBOX_SIZE 64 /*----- Value in opt.h for TCPIP_MBOX_SIZE: 0 -----*/ + +/*----- Value in opt.h for TCP_SND_BUF: (2 * TCP_MSS) -----*/ +#define TCP_SND_BUF 16000//4 * mss +/*----- Value in opt.h for TCP_WND: (2 * TCP_MSS) -----*/ +#define TCP_WND TCP_SND_BUF +/*----- Value in opt.h for TCP_SNDLOWAT: LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1) -----*/ +//#define TCP_SNDLOWAT ((TCP_SND_BUF) / 2) +/*----- Value in opt.h for TCP_SND_QUEUELEN: (4*TCP_SND_BUF + (TCP_MSS - 1))/TCP_MSS -----*/ +//#define TCP_SND_QUEUELEN 64 +/*----- Value in opt.h for TCP_SNDQUEUELOWAT: LWIP_MAX(TCP_SND_QUEUELEN)/2, 5) -*/ +//#define TCP_SNDQUEUELOWAT 32 +/*----- Value in opt.h for TCP_WND_UPDATE_THRESHOLD: LWIP_MIN(TCP_WND/4, TCP_MSS*4) -----*/ +//#define TCP_WND_UPDATE_THRESHOLD TCP_MSS + + +/*----- Value supported for H7 devices: 1 -----*/ +#define LWIP_SUPPORT_CUSTOM_PBUF 1 +/*----- Value in opt.h for LWIP_ETHERNET: LWIP_ARP || PPPOE_SUPPORT -*/ +#define LWIP_ETHERNET 1 +/*----- Value in opt.h for LWIP_DNS_SECURE: (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT) -*/ +#define LWIP_DNS_SECURE 7 +/*----- Value in opt.h for LWIP_NETIF_LINK_CALLBACK: 0 -----*/ +#define LWIP_NETIF_LINK_CALLBACK 1 + +/*----- Value in opt.h for RECV_BUFSIZE_DEFAULT: INT_MAX -----*/ +#define RECV_BUFSIZE_DEFAULT 2000000000 + +/*----- Value in opt.h for CHECKSUM_GEN_IP: 1 -----*/ +#define CHECKSUM_GEN_IP 0 +/*----- Value in opt.h for CHECKSUM_GEN_UDP: 1 -----*/ +#define CHECKSUM_GEN_UDP 0 +/*----- Value in opt.h for CHECKSUM_GEN_TCP: 1 -----*/ +#define CHECKSUM_GEN_TCP 0 +/*----- Value in opt.h for CHECKSUM_GEN_ICMP6: 1 -----*/ +#define CHECKSUM_GEN_ICMP6 0 +/*----- Value in opt.h for CHECKSUM_CHECK_IP: 1 -----*/ +#define CHECKSUM_CHECK_IP 0 +/*----- Value in opt.h for CHECKSUM_CHECK_UDP: 1 -----*/ +#define CHECKSUM_CHECK_UDP 0 +/*----- Value in opt.h for CHECKSUM_CHECK_TCP: 1 -----*/ +#define CHECKSUM_CHECK_TCP 0 +/*----- Value in opt.h for CHECKSUM_CHECK_ICMP6: 1 -----*/ +#define CHECKSUM_CHECK_ICMP6 0 +/*-----------------------------------------------------------------------------*/ +/* USER CODE BEGIN 1 */ +#define LWIP_IP_ACCEPT_UDP_PORT(dst_port) ( (dst_port) == PP_NTOHS(67) ) + +#define MEMP_NUM_SYS_TIMEOUT 30 + +#define NO_SYS 1 +#define SYS_LIGHTWEIGHT_PROT 0 +#define LWIP_NETCONN 0 +#define LWIP_SOCKET 0 +#define LWIP_COMPAT_SOCKETS 0 +#define LWIP_POSIX_SOCKETS_IO_NAMES 0 +#define IP_REASSEMBLY 0 +#define IP_FRAG 0 + + +#define LWIP_TCP_KEEPALIVE 1 +#define TCP_KEEPIDLE_DEFAULT 2 +#define TCP_KEEPINTVL_DEFAULT 2 +#define TCP_KEEPCNT_DEFAULT 8 + +#define LWIP_SO_RCVTIMEO 1 +#define MEMP_NUM_NETBUF 18 +#define MEMP_NUM_NETCONN 8 +//#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1 +#define LWIP_DEBUG 0 +#define TCP_DEBUG LWIP_DBG_OFF + +#define PBUF_DEBUG LWIP_DBG_OFF +#define MEM_DEBUG LWIP_DBG_OFF +#define MEMP_DEBUG LWIP_DBG_OFF + +#define MEM_LIBC_MALLOC 1 +//#define MEMP_MEM_MALLOC 1 +//#define MEM_USE_POOLS 1 +//#define MEMP_USE_CUSTOM_POOLS 1 + +#define LWIP_PLATFORM_DIAG(x) do {print_log x;} while(0) + + +#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL lwip_customproto + +#define sys_now() xTaskGetTickCount() + +#ifdef __cplusplus +} +#endif +#endif /*__LWIPOPTS__H__ */ + +/************************* (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/lwippools.h b/BLE_EXAMPLE/src/main/cpp/lwip/lwippools.h new file mode 100644 index 000000000..df53ebb40 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/lwippools.h @@ -0,0 +1,11 @@ +/*LWIP_PBUF_MEMPOOL_START +LWIP_PBUF_MEMPOOL(256, 256) +LWIP_PBUF_MEMPOOL(256, 512) +LWIP_PBUF_MEMPOOL(512, 1512) +LWIP_PBUF_MEMPOOL_END +*/ +LWIP_MALLOC_MEMPOOL_START +LWIP_MALLOC_MEMPOOL(128, 256) +LWIP_MALLOC_MEMPOOL(128, 512) +LWIP_MALLOC_MEMPOOL(512, 1600) +LWIP_MALLOC_MEMPOOL_END diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/mdns.c b/BLE_EXAMPLE/src/main/cpp/lwip/mdns.c new file mode 100644 index 000000000..3af931980 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/mdns.c @@ -0,0 +1,1139 @@ +/** + * lwip MDNS resolver file. + * + * Created on: Jul 29, 2010 + * Author: Daniel Toma + * + + * ported from uIP resolv.c Copyright (c) 2002-2003, Adam Dunkels. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + + * This file implements a MDNS host name and PUCK service registration. + + *----------------------------------------------------------------------------- + * Includes + *----------------------------------------------------------------------------*/ +#include "lwip/opt.h" +#if LWIP_MDNS /* don't build if not configured for use in lwipopts.h */ +#include "lwip/mdns.h" +#include "lwip/puck_def.h" +#include "lwip/udp.h" +#include "lwip/mem.h" +#include "lwip/igmp.h" +#include "osapi.h" +#include "os_type.h" +#include "user_interface.h" + +#ifdef MEMLEAK_DEBUG +static const char mem_debug_file[] ICACHE_RODATA_ATTR = __FILE__; +#endif + +/** DNS server IP address */ +#ifndef DNS_MULTICAST_ADDRESS +#define DNS_MULTICAST_ADDRESS ipaddr_addr("224.0.0.251") /* resolver1.opendns.com */ +#endif + +/** DNS server IP address */ +#ifndef MDNS_LOCAL +#define MDNS_LOCAL "local" /* resolver1.opendns.com */ +#endif + +/** DNS server port address */ +#ifndef DNS_MDNS_PORT +#define DNS_MDNS_PORT 5353 +#endif + +/** DNS maximum number of retries when asking for a name, before "timeout". */ +#ifndef DNS_MAX_RETRIES +#define DNS_MAX_RETRIES 4 +#endif + +/** DNS resource record max. TTL (one week as default) */ +#ifndef DNS_MAX_TTL +#define DNS_MAX_TTL 604800 +#endif + +/* DNS protocol flags */ +#define DNS_FLAG1_RESPONSE 0x84 +#define DNS_FLAG1_OPCODE_STATUS 0x10 +#define DNS_FLAG1_OPCODE_INVERSE 0x08 +#define DNS_FLAG1_OPCODE_STANDARD 0x00 +#define DNS_FLAG1_AUTHORATIVE 0x04 +#define DNS_FLAG1_TRUNC 0x02 +#define DNS_FLAG1_RD 0x01 +#define DNS_FLAG2_RA 0x80 +#define DNS_FLAG2_ERR_MASK 0x0f +#define DNS_FLAG2_ERR_NONE 0x00 +#define DNS_FLAG2_ERR_NAME 0x03 + +/* DNS protocol states */ +#define DNS_STATE_UNUSED 0 +#define DNS_STATE_NEW 1 +#define DNS_STATE_ASKING 2 +#define DNS_STATE_DONE 3 + +/* MDNS registration type */ +#define MDNS_HOSTNAME_REG 0 +#define MDNS_SERVICE_REG 1 + +/* MDNS registration type */ +#define MDNS_REG_ANSWER 1 +#define MDNS_SD_ANSWER 2 +#define MDNS_SERVICE_REG_ANSWER 3 + +/* MDNS registration time */ +#define MDNS_HOST_TIME 120 +#define MDNS_SERVICE_TIME 3600 + +/** MDNS name length with "." at the beginning and end of name*/ +#ifndef MDNS_LENGTH_ADD +#define MDNS_LENGTH_ADD 2 +#endif + +#ifdef MDNS_MAX_NAME_LENGTH +#undef MDNS_MAX_NAME_LENGTH +#endif +#define MDNS_MAX_NAME_LENGTH (256) + +PACK_STRUCT_BEGIN +/** DNS message header */ +struct mdns_hdr { + PACK_STRUCT_FIELD(u16_t id); + PACK_STRUCT_FIELD(u8_t flags1); + PACK_STRUCT_FIELD(u8_t flags2); + PACK_STRUCT_FIELD(u16_t numquestions); + PACK_STRUCT_FIELD(u16_t numanswers); + PACK_STRUCT_FIELD(u16_t numauthrr); + PACK_STRUCT_FIELD(u16_t numextrarr); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_DNS_HDR 12 + +PACK_STRUCT_BEGIN +/** MDNS query message structure */ +struct mdns_query { + /* MDNS query record starts with either a domain name or a pointer + to a name already present somewhere in the packet. */PACK_STRUCT_FIELD(u16_t type); + PACK_STRUCT_FIELD(u16_t class); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_DNS_QUERY 4 + +PACK_STRUCT_BEGIN +/** MDNS answer message structure */ +struct mdns_answer { + /* MDNS answer record starts with either a domain name or a pointer + to a name already present somewhere in the packet. */PACK_STRUCT_FIELD(u16_t type); + PACK_STRUCT_FIELD(u16_t class); + PACK_STRUCT_FIELD(u32_t ttl); + PACK_STRUCT_FIELD(u16_t len); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#define SIZEOF_DNS_ANSWER 10 + +PACK_STRUCT_BEGIN +/** MDNS answer message structure */ +struct mdns_auth { + PACK_STRUCT_FIELD(u32_t src); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_MDNS_AUTH 4 +PACK_STRUCT_BEGIN +/** MDNS service registration message structure */ +struct mdns_service { + PACK_STRUCT_FIELD(u16_t prior); + PACK_STRUCT_FIELD(u16_t weight); + PACK_STRUCT_FIELD(u16_t port); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_MDNS_SERVICE 6 + +uint16 PUCK_PORT ; +os_timer_t mdns_timer; +/* forward declarations */ +static void mdns_recv(void *s, struct udp_pcb *pcb, struct pbuf *p, + struct ip_addr *addr, u16_t port); + +/*----------------------------------------------------------------------------- + * Globales + *----------------------------------------------------------------------------*/ + +/* MDNS variables */ +static char host_name[MDNS_NAME_LENGTH]; +static char service_name[MDNS_NAME_LENGTH]; +static char server_name[MDNS_NAME_LENGTH]; +//static char puck_datasheet[PUCK_DATASHEET_SIZE]; +static struct udp_pcb *mdns_pcb = NULL; +static struct mdns_info * ms_info = NULL; +static struct ip_addr multicast_addr; +static struct ip_addr host_addr; +static uint8 register_flag = 0; +static uint8 mdns_flag = 0; +//#if (DNS_USES_STATIC_BUF == 1) +static u8_t mdns_payload[DNS_MSG_SIZE]; +//#endif /* (MDNS_USES_STATIC_BUF == 1) */ +/* + * Function to set the UDP pcb used to send the mDNS packages + */ +void +getPcb(struct udp_pcb *pcb) { + mdns_pcb = pcb; +} + +#if DNS_DOES_NAME_CHECK +/** + * Compare the "dotted" name "query" with the encoded name "response" + * to make sure an answer from the DNS server matches the current mdns_table + * entry (otherwise, answers might arrive late for hostname not on the list + * any more). + * + * @param query hostname (not encoded) from the mdns_table + * @param response encoded hostname in the DNS response + * @return 0: names equal; 1: names differ + */ +static u8_t +mdns_compare_name(unsigned char *query, unsigned char *response) { + unsigned char n; + + do { + n = *response++; + /** @see RFC 1035 - 4.1.4. Message compression */ + if ((n & 0xc0) == 0xc0) { + /* Compressed name */ + break; + } else { + /* Not compressed name */ + while (n > 0) { + if ((*query) != (*response)) { + return 1; + } + ++response; + ++query; + --n; + }; + ++query; + } + } while (*response != 0); + + return 0; +} +#endif /* DNS_DOES_NAME_CHECK */ +/** + * Send a mDNS answer packet. + * + * @param type of answer hostname and service registration or service + * @param name to query + * @param id transaction ID in the DNS query packet + * @return ERR_OK if packet is sent; an err_t indicating the problem otherwise + */ +static err_t +mdns_answer(u16_t type, const char* name, u8_t id) { + err_t err; + struct mdns_hdr *hdr; + struct mdns_answer ans; + struct mdns_auth auth; + struct mdns_service serv; + struct pbuf *p ,*p_sta; + char *query, *nptr; + const char *pHostname; + struct netif * sta_netif = NULL; + struct netif * ap_netif = NULL; + static char tmpBuf[PUCK_DATASHEET_SIZE + PUCK_SERVICE_LENGTH]; + u8_t n; + u16_t length = 0; + /* if here, we have either a new query or a retry on a previous query to process */ + p = pbuf_alloc(PBUF_TRANSPORT, + SIZEOF_DNS_HDR + MDNS_MAX_NAME_LENGTH * 2 + SIZEOF_DNS_QUERY, PBUF_RAM); + if (p != NULL) { + LWIP_ASSERT("pbuf must be in one piece", p->next == NULL); + /* fill dns header */ + hdr = (struct mdns_hdr*) p->payload; + memset(hdr, 0, SIZEOF_DNS_HDR); + hdr->id = htons(id); + hdr->flags1 = DNS_FLAG1_RESPONSE; + + if (type == MDNS_SD_ANSWER) { + pHostname = DNS_SD_SERVICE; + hdr->numanswers = htons(1); + } else if (type == MDNS_SERVICE_REG_ANSWER) { + pHostname = PUCK_SERVICE; + hdr->numanswers = htons(type); + } else { + pHostname = name; + hdr->numanswers = htons(type); + } + query = (char*) hdr + SIZEOF_DNS_HDR; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + /* fill dns query */ + + if (type == MDNS_REG_ANSWER) { + + ans.type = htons(DNS_RRTYPE_A); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(MDNS_SERVICE_TIME); + ans.len = htons(DNS_IP_ADDR_LEN); + length = DNS_IP_ADDR_LEN; + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + /* set the local IP address */ + auth.src = host_addr.addr; + MEMCPY( query, &auth, SIZEOF_MDNS_AUTH); + } + if (type == MDNS_SD_ANSWER) { + + ans.type = htons(DNS_RRTYPE_PTR); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(300); + ans.len = htons(strlen(PUCK_SERVICE) + 1 +1 ); + length = 0; + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + pHostname = PUCK_SERVICE; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + } + + if (type == MDNS_SERVICE_REG_ANSWER) { + + ans.type = htons(DNS_RRTYPE_PTR); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(MDNS_SERVICE_TIME); + os_strcpy(tmpBuf, name); + os_strcat(tmpBuf, "."); + os_strcat(tmpBuf, PUCK_SERVICE); + + length = strlen(tmpBuf) + MDNS_LENGTH_ADD; + ans.len = htons(length); + length = 0; + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + pHostname = tmpBuf; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + + /* Service query*/ + pHostname = name; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + + /* Add to the service name the service local + * pointing to the beginning of the mDNS message*/ + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + + /* fill the query */ + + ans.type = htons(DNS_RRTYPE_SRV); + ans.class = htons(DNS_RRCLASS_FLUSH_IN); + ans.ttl = htonl(MDNS_SERVICE_TIME); + os_strcpy(tmpBuf, host_name); + os_strcat(tmpBuf, "."); + os_strcat(tmpBuf, MDNS_LOCAL); + length = strlen(tmpBuf) + MDNS_LENGTH_ADD; + ans.len = htons(SIZEOF_MDNS_SERVICE + length); + length = 0; + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + /* fill the service properties */ + + serv.prior = htons(0); + serv.weight = htons(0); + serv.port = htons(PUCK_PORT); + MEMCPY( query, &serv, SIZEOF_MDNS_SERVICE); + /* resize the query */ + query = query + SIZEOF_MDNS_SERVICE; + + pHostname = tmpBuf; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + + /* TXT answer */ + pHostname = name; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + + /* Add to the service name the service local + * pointing to the beginning of the mDNS message*/ + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + + /* fill the answer */ + ans.type = htons(DNS_RRTYPE_TXT); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(MDNS_SERVICE_TIME); + length = sizeof(SERVICE_DESCRIPTION); + ans.len = htons(length); + length = 0; + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + pHostname = SERVICE_DESCRIPTION; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + } + /* resize pbuf to the exact dns query */ + pbuf_realloc(p, (query + length) - ((char*) (p->payload))); + + /* send dns packet */ + /*add by tzx for AP + STA MDNS begin------*/ + sta_netif = (struct netif *)eagle_lwip_getif(0x00); + ap_netif = (struct netif *)eagle_lwip_getif(0x01); + if(wifi_get_opmode() == 0x03 && wifi_get_broadcast_if() == 0x03 &&\ + sta_netif != NULL && ap_netif != NULL) { + if(netif_is_up(sta_netif) && netif_is_up(ap_netif)) { + + p_sta = pbuf_alloc(PBUF_TRANSPORT, + SIZEOF_DNS_HDR + MDNS_MAX_NAME_LENGTH * 2 + SIZEOF_DNS_QUERY, PBUF_RAM); + if (pbuf_copy (p_sta,p) != ERR_OK) { + print_log("mdns_answer copying to new pbuf failed\n"); + return -1; + } + netif_set_default(sta_netif); + err = udp_sendto(mdns_pcb, p_sta, &multicast_addr, DNS_MDNS_PORT); + pbuf_free(p_sta); + netif_set_default(ap_netif); + } + } + /*add by tzx for AP + STA MDNS end------*/ + err = udp_sendto(mdns_pcb, p, &multicast_addr, DNS_MDNS_PORT); + /* free pbuf */ + pbuf_free(p); + } else { + err = ERR_MEM; + } + + return err; +} + +/** + * Send a mDNS service answer packet. + * + * @param name service name to query + * @param id transaction ID in the DNS query packet + * @return ERR_OK if packet is sent; an err_t indicating the problem otherwise + */ +static err_t +mdns_send_service(struct mdns_info *info, u8_t id) { + err_t err; + struct mdns_hdr *hdr; + struct mdns_answer ans; + struct mdns_service serv; + struct mdns_auth auth; + struct pbuf *p ,*p_sta; + char *query, *nptr; + const char *pHostname; + char *device_info; + const char *name = info->host_name; + u8_t n; + u8_t i = 0; + u16_t length = 0; + u8_t addr1 = 12, addr2 = 12; + struct netif * sta_netif = NULL; + struct netif * ap_netif = NULL; + static char tmpBuf[PUCK_DATASHEET_SIZE + PUCK_SERVICE_LENGTH]; + /* if here, we have either a new query or a retry on a previous query to process */ + p = pbuf_alloc(PBUF_TRANSPORT, + SIZEOF_DNS_HDR + MDNS_MAX_NAME_LENGTH * 2 + SIZEOF_DNS_QUERY, PBUF_RAM); + if (p != NULL) { + LWIP_ASSERT("pbuf must be in one piece", p->next == NULL); + /* fill dns header */ + hdr = (struct mdns_hdr*) p->payload; + memset(hdr, 0, SIZEOF_DNS_HDR); + hdr->id = htons(id); + hdr->flags1 = DNS_FLAG1_RESPONSE; + hdr->numanswers = htons(4); + query = (char*) hdr + SIZEOF_DNS_HDR; + os_strcpy(tmpBuf, PUCK_SERVICE); + + pHostname = tmpBuf; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + ++addr1; + ++addr2; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++addr1; + ++addr2; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + length = sizeof(MDNS_LOCAL); + addr1 -= length; + length = strlen(PUCK_SERVICE) + 1; + addr2 -= length; + + ans.type = htons(DNS_RRTYPE_PTR); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(300); + os_strcpy(tmpBuf, name); + length = strlen(tmpBuf) + MDNS_LENGTH_ADD + 1; + ans.len = htons(length); + length = 0; + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + pHostname = tmpBuf; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + pHostname = name; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + //*query++ = '\0'; + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + + /* fill the answer */ + ans.type = htons(DNS_RRTYPE_TXT); + ans.class = htons(DNS_RRCLASS_FLUSH_IN); + ans.ttl = htonl(300); +// length = strlen(TXT_DATA) + MDNS_LENGTH_ADD + 1; + device_info = (char *)malloc(50); + ets_sprintf(device_info,"vendor = %s","Espressif"); + for(i = 0; i < 10 &&(info->txt_data[i] != NULL);i++) { + length += strlen(info->txt_data[i]); + length++; + } + length += strlen(device_info)+ 1 ; + ans.len = htons(length); + length = 0; + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + query = query + SIZEOF_DNS_ANSWER; + pHostname = device_info; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + i = 0; + while(info->txt_data[i] != NULL && i < 10) { + pHostname = info->txt_data[i]; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + i++; + } +// *query++ = '\0'; + free(device_info); + os_strcpy(tmpBuf, name); + pHostname = tmpBuf; + --pHostname; + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + + ans.type = htons(DNS_RRTYPE_SRV); + ans.class = htons(DNS_RRCLASS_FLUSH_IN); + ans.ttl = htonl(300); + os_strcpy(tmpBuf,service_name); + os_strcat(tmpBuf, "."); + os_strcat(tmpBuf, MDNS_LOCAL); + length = strlen(tmpBuf) + MDNS_LENGTH_ADD; + ans.len = htons(SIZEOF_MDNS_SERVICE + length); + length = 0; + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + serv.prior = htons(0); + serv.weight = htons(0); + serv.port = htons(PUCK_PORT); + MEMCPY( query, &serv, SIZEOF_MDNS_SERVICE); + /* resize the query */ + query = query + SIZEOF_MDNS_SERVICE; + + pHostname = tmpBuf; + --pHostname; + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + /* set the name of the authority field. + * The same name as the Query using the offset address*/ + os_strcpy(tmpBuf,service_name); + os_strcat(tmpBuf, "."); + os_strcat(tmpBuf, MDNS_LOCAL); + pHostname = tmpBuf; + --pHostname; + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + /* set the name of the authority field. + * The same name as the Query using the offset address*/ + //*query++ = DNS_OFFSET_FLAG; + //*query++ = DNS_DEFAULT_OFFSET; + ans.type = htons(DNS_RRTYPE_A); + ans.class = htons(DNS_RRCLASS_FLUSH_IN); + ans.ttl = htonl(300); + ans.len = htons(DNS_IP_ADDR_LEN); + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + /* fill the payload of the mDNS message */ + /* set the local IP address */ + auth.src = host_addr.addr; //ipAddr; + MEMCPY( query, &auth, SIZEOF_MDNS_AUTH); + /* resize the query */ + query = query + SIZEOF_MDNS_AUTH; + + /* set the name of the authority field. + * The same name as the Query using the offset address*/ + + /* resize pbuf to the exact dns query */ + pbuf_realloc(p, (query) - ((char*) (p->payload))); + /* send dns packet */ + sta_netif = (struct netif *)eagle_lwip_getif(0x00); + ap_netif = (struct netif *)eagle_lwip_getif(0x01); + if(wifi_get_opmode() == 0x03 && wifi_get_broadcast_if() == 0x03 &&\ + sta_netif != NULL && ap_netif != NULL) { + if(netif_is_up(sta_netif) && netif_is_up(ap_netif)) { + + p_sta = pbuf_alloc(PBUF_TRANSPORT, + SIZEOF_DNS_HDR + MDNS_MAX_NAME_LENGTH * 2 + SIZEOF_DNS_QUERY, PBUF_RAM); + if (pbuf_copy (p_sta,p) != ERR_OK) { + print_log("mdns_send_service copying to new pbuf failed\n"); + return -1; + } + netif_set_default(sta_netif); + err = udp_sendto(mdns_pcb, p_sta, &multicast_addr, DNS_MDNS_PORT); + pbuf_free(p_sta); + netif_set_default(ap_netif); + } + } + err = udp_sendto(mdns_pcb, p, &multicast_addr, DNS_MDNS_PORT); + + /* free pbuf */ + pbuf_free(p); + } else { + print_log("ERR_MEM \n"); + err = ERR_MEM; + } + + return err; +} + +/** + * Receive input function for DNS response packets arriving for the dns UDP pcb. + * + * @params see udp.h + */ +static void +mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, + u16_t port) { + u8_t i; + struct mdns_hdr *hdr; + u8_t nquestions; + LWIP_UNUSED_ARG(arg); + LWIP_UNUSED_ARG(pcb); + LWIP_UNUSED_ARG(addr); + LWIP_UNUSED_ARG(port); + struct mdns_info *info = (struct mdns_info *)arg; + /* is the dns message too big ? */ + if (p->tot_len > DNS_MSG_SIZE) { + LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too big\n")); + /* free pbuf and return */ + goto memerr1; + } + + /* is the dns message big enough ? */ + if (p->tot_len < (SIZEOF_DNS_HDR + SIZEOF_DNS_QUERY + SIZEOF_DNS_ANSWER)) { + LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too small\n")); + /* free pbuf and return */ + goto memerr1; + } + /* copy dns payload inside static buffer for processing */ + if (pbuf_copy_partial(p, mdns_payload, p->tot_len, 0) == p->tot_len) { + /* The ID in the DNS header should be our entry into the name table. */ + hdr = (struct mdns_hdr*) mdns_payload; + + i = htons(hdr->id); + if (i < DNS_TABLE_SIZE) { + + nquestions = htons(hdr->numquestions); + //nanswers = htons(hdr->numanswers); + /* if we have a question send an answer if necessary */ + if (nquestions > 0) { + /* MDNS_DS_DOES_NAME_CHECK */ + /* Check if the name in the "question" part match with the name of the MDNS DS service. */ + if (mdns_compare_name((unsigned char *) DNS_SD_SERVICE, + (unsigned char *) mdns_payload + SIZEOF_DNS_HDR) == 0) { + /* respond with the puck service*/ + mdns_answer(MDNS_SD_ANSWER, PUCK_SERVICE, 0); + } else if (mdns_compare_name((unsigned char *) PUCK_SERVICE, + (unsigned char *) mdns_payload + SIZEOF_DNS_HDR) == 0) { + /* respond with the puck service*/ + mdns_send_service(info, 0); + } else + goto memerr2; + } + } + } + goto memerr2; + memerr2: + memset(mdns_payload , 0 ,DNS_MSG_SIZE); + memerr1: + /* free pbuf */ + pbuf_free(p); + return; +} + +/** + * close the UDP pcb . + */ +void +mdns_close(void) +{ + uint8 text_index = 0; + if (mdns_pcb != NULL && ms_info != NULL) { + udp_remove(mdns_pcb); + for(text_index = 0;text_index < 10;text_index++) { + if(ms_info->txt_data[text_index] != NULL) { + free(ms_info->txt_data[text_index]); + ms_info->txt_data[text_index] = NULL; + } + } + if (ms_info->host_name != NULL) { + free(ms_info->host_name); + ms_info->host_name = NULL; + } + if (ms_info->server_name != NULL) { + free(ms_info->server_name); + ms_info->server_name = NULL; + } + free(ms_info); + mdns_pcb = NULL; + ms_info = NULL; + + } +} + +void +mdns_set_name(const char *name) +{ + //strcpy(host_name, name); + os_strcpy(service_name, name); +} + +void +mdns_enable(void) +{ + if(mdns_flag == 0) { + udp_recv(mdns_pcb, mdns_recv, NULL); + } +} + +void +mdns_disable(void) +{ + if (mdns_flag == 1) { + udp_recv(mdns_pcb, NULL, NULL); + } +} + +/** + * close the UDP pcb . + */ +char* +mdns_get_hostname(void) { + //strcpy(host_name, name); + char *name = host_name; + if (host_name[0] != 0 ) { + return name; + } else { + return ("Espressif"); + } +} + +void +mdns_set_hostname(char *name) { + if (name == NULL) { + strncpy(host_name, "Espressif", strlen("Espressif")+3); + return; + } + if (strlen(name) + 3 <= MDNS_NAME_LENGTH ){ + strncpy(host_name, name, strlen(name) ); +// memset(host_name + strlen(host_name) ,0x00,3); + } else { + strncpy(host_name, name, MDNS_NAME_LENGTH); + } +} + +void +mdns_set_servername(const char *name) { + if (name == NULL) { + PUCK_SERVICE = "_Espressif._tcp._local"; + }else { + os_sprintf(server_name ,"_%s._tcp.local",name); + PUCK_SERVICE = server_name; + } +} + +char* +mdns_get_servername(void) { + char *name = PUCK_SERVICE; + if (name == NULL) { + PUCK_SERVICE = "_Espressif._tcp._local"; + } + return name; +} + +void +mdns_server_unregister(void) { + struct ip_addr ap_host_addr; + struct ip_info ipconfig; + if(register_flag == 1){ + if (igmp_leavegroup(&host_addr, &multicast_addr) != ERR_OK) { + print_log("sta udp_leave_multigrup failed!\n"); + return; + }; + if(wifi_get_opmode() == 0x03 || wifi_get_opmode() == 0x02) { + wifi_get_ip_info(SOFTAP_IF, &ipconfig); + ap_host_addr.addr = ipconfig.ip.addr; + if (igmp_leavegroup(&ap_host_addr, &multicast_addr) != ERR_OK) { + print_log("ap udp_join_multigrup failed!\n"); + return; + }; + } + register_flag = 0; + } +} + +void +mdns_server_register(void) { + + if (register_flag == 1) { + print_log("mdns server is already registered !\n"); + return; + } else if (igmp_joingroup(&host_addr, &multicast_addr) != ERR_OK) { + print_log("udp_join_multigrup failed!\n"); + return; + }; + register_flag = 1; +} + +void +mdns_reg(struct mdns_info *info) { + + static uint8 i = 0; + if (i <= 3) { + mdns_send_service(info,0); + i++; + } else { + os_timer_disarm(&mdns_timer); + } +} +#include "pm/swtimer.h" + +/** + * Initialize the resolver: set up the UDP pcb and configure the default server + * (NEW IP). + */ +void +mdns_init(struct mdns_info *info) { + /* initialize default DNS server address */ + multicast_addr.addr = DNS_MULTICAST_ADDRESS; + struct ip_addr ap_host_addr; + struct ip_info ipconfig; + uint8 text_index = 0; + ms_info = (struct mdns_info *)malloc(sizeof(struct mdns_info)); + if (ms_info != NULL) { + memcpy(ms_info,info,sizeof(struct mdns_info)); + ms_info->host_name = (char *)malloc(strlen(info->host_name)+1); + memcpy(ms_info->host_name,info->host_name,strlen(info->host_name)); + ms_info->server_name = (char *)malloc(strlen(info->server_name)+1); + memcpy(ms_info->server_name,info->server_name,strlen(info->server_name)); + for(text_index = 0;text_index < 10;text_index++) { + if(info->txt_data[text_index] != NULL) { + ms_info->txt_data[text_index] = (char *)malloc(strlen(info->txt_data[text_index])+1); + memcpy(ms_info->txt_data[text_index],info->txt_data[text_index],strlen(info->txt_data[text_index])); + } else { + break; + } + + } + } else { + print_log("ms_info alloc failed\n"); + return; + } + if (ms_info->ipAddr == 0) { + print_log("mdns ip error!\n "); + return; + } + host_addr.addr = ms_info->ipAddr ; + LWIP_DEBUGF(DNS_DEBUG, ("dns_init: initializing\n")); + //get the datasheet from PUCK + mdns_set_hostname(ms_info->host_name); + mdns_set_servername(ms_info->server_name); + mdns_set_name(ms_info->host_name); + + // get the host name as instrumentName_serialNumber for MDNS + // set the name of the service, the same as host name + print_log("host_name = %s\n", host_name); + print_log("server_name = %s\n", PUCK_SERVICE); + if (ms_info->server_port == 0) + { + PUCK_PORT = 80; + } else { + PUCK_PORT = ms_info->server_port; + } + + /* initialize mDNS */ + mdns_pcb = udp_new(); + + if (mdns_pcb != NULL) { + /* join to the multicast address 224.0.0.251 */ + if(wifi_get_opmode() == 0x03 || wifi_get_opmode() == 0x01) { + if (igmp_joingroup(&host_addr, &multicast_addr) != ERR_OK) { + print_log("sta udp_join_multigrup failed!\n"); + return; + }; + } + if(wifi_get_opmode() == 0x03 || wifi_get_opmode() == 0x02) { + wifi_get_ip_info(SOFTAP_IF, &ipconfig); + ap_host_addr.addr = ipconfig.ip.addr; + if (igmp_joingroup(&ap_host_addr, &multicast_addr) != ERR_OK) { + print_log("ap udp_join_multigrup failed!\n"); + return; + }; + } + register_flag = 1; + /* join to any IP address at the port 5353 */ + if (udp_bind(mdns_pcb, IP_ADDR_ANY, DNS_MDNS_PORT) != ERR_OK) { + print_log("udp_bind failed!\n"); + return; + }; + + /*loopback function for the multicast(224.0.0.251) messages received at port 5353*/ +// mdns_enable(); + udp_recv(mdns_pcb, mdns_recv, ms_info); + mdns_flag = 1; + /* + * Register the name of the instrument + */ + + os_timer_disarm(&mdns_timer); + os_timer_setfn(&mdns_timer, (os_timer_func_t *)mdns_reg,ms_info); + SWTIMER_REG_CB(mdns_reg, SWTIMER_RESTART); + //going on the above comment, it's probably a good idea to let mdns_reg run it's course. not sure if the 1 second timing is important, so lets restart it to be safe. + os_timer_arm(&mdns_timer, 1000, 1); + } +} + +#endif /* LWIP_MDNS */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/mdns.c_ b/BLE_EXAMPLE/src/main/cpp/lwip/mdns.c_ new file mode 100644 index 000000000..3267c2e45 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/mdns.c_ @@ -0,0 +1,1106 @@ +/** + * lwip MDNS resolver file. + * + * Created on: Jul 29, 2010 + * Author: Daniel Toma + * + + * ported from uIP resolv.c Copyright (c) 2002-2003, Adam Dunkels. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + + * This file implements a MDNS host name and PUCK service registration. + + *----------------------------------------------------------------------------- + * Includes + *----------------------------------------------------------------------------*/ +#include "lwip/opt.h" +#if LWIP_MDNS /* don't build if not configured for use in lwipopts.h */ +#include "lwip/mdns.h" +#include "lwip/puck_def.h" +#include "lwip/udp.h" +#include "lwip/mem.h" +#include "lwip/igmp.h" +#include "osapi.h" +#include "os_type.h" +#include "user_interface.h" + +#ifdef MEMLEAK_DEBUG +static const char mem_debug_file[] ICACHE_RODATA_ATTR = __FILE__; +#endif + +/** DNS server IP address */ +#ifndef DNS_MULTICAST_ADDRESS +#define DNS_MULTICAST_ADDRESS ipaddr_addr("224.0.0.251") /* resolver1.opendns.com */ +#endif + +/** DNS server IP address */ +#ifndef MDNS_LOCAL +#define MDNS_LOCAL "local" /* resolver1.opendns.com */ +#endif + +/** DNS server port address */ +#ifndef DNS_MDNS_PORT +#define DNS_MDNS_PORT 5353 +#endif + +/** DNS maximum number of retries when asking for a name, before "timeout". */ +#ifndef DNS_MAX_RETRIES +#define DNS_MAX_RETRIES 4 +#endif + +/** DNS resource record max. TTL (one week as default) */ +#ifndef DNS_MAX_TTL +#define DNS_MAX_TTL 604800 +#endif + +/* DNS protocol flags */ +#define DNS_FLAG1_RESPONSE 0x84 +#define DNS_FLAG1_OPCODE_STATUS 0x10 +#define DNS_FLAG1_OPCODE_INVERSE 0x08 +#define DNS_FLAG1_OPCODE_STANDARD 0x00 +#define DNS_FLAG1_AUTHORATIVE 0x04 +#define DNS_FLAG1_TRUNC 0x02 +#define DNS_FLAG1_RD 0x01 +#define DNS_FLAG2_RA 0x80 +#define DNS_FLAG2_ERR_MASK 0x0f +#define DNS_FLAG2_ERR_NONE 0x00 +#define DNS_FLAG2_ERR_NAME 0x03 + +/* DNS protocol states */ +#define DNS_STATE_UNUSED 0 +#define DNS_STATE_NEW 1 +#define DNS_STATE_ASKING 2 +#define DNS_STATE_DONE 3 + +/* MDNS registration type */ +#define MDNS_HOSTNAME_REG 0 +#define MDNS_SERVICE_REG 1 + +/* MDNS registration type */ +#define MDNS_REG_ANSWER 1 +#define MDNS_SD_ANSWER 2 +#define MDNS_SERVICE_REG_ANSWER 3 + +/* MDNS registration time */ +#define MDNS_HOST_TIME 120 +#define MDNS_SERVICE_TIME 3600 + +/** MDNS name length with "." at the beginning and end of name*/ +#ifndef MDNS_LENGTH_ADD +#define MDNS_LENGTH_ADD 2 +#endif + +#ifdef MDNS_MAX_NAME_LENGTH +#undef MDNS_MAX_NAME_LENGTH +#endif +#define MDNS_MAX_NAME_LENGTH (256) + +PACK_STRUCT_BEGIN +/** DNS message header */ +struct mdns_hdr { + PACK_STRUCT_FIELD(u16_t id); + PACK_STRUCT_FIELD(u8_t flags1); + PACK_STRUCT_FIELD(u8_t flags2); + PACK_STRUCT_FIELD(u16_t numquestions); + PACK_STRUCT_FIELD(u16_t numanswers); + PACK_STRUCT_FIELD(u16_t numauthrr); + PACK_STRUCT_FIELD(u16_t numextrarr); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_DNS_HDR 12 + +PACK_STRUCT_BEGIN +/** MDNS query message structure */ +struct mdns_query { + /* MDNS query record starts with either a domain name or a pointer + to a name already present somewhere in the packet. */PACK_STRUCT_FIELD(u16_t type); + PACK_STRUCT_FIELD(u16_t class); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_DNS_QUERY 4 + +PACK_STRUCT_BEGIN +/** MDNS answer message structure */ +struct mdns_answer { + /* MDNS answer record starts with either a domain name or a pointer + to a name already present somewhere in the packet. */PACK_STRUCT_FIELD(u16_t type); + PACK_STRUCT_FIELD(u16_t class); + PACK_STRUCT_FIELD(u32_t ttl); + PACK_STRUCT_FIELD(u16_t len); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#define SIZEOF_DNS_ANSWER 10 + +PACK_STRUCT_BEGIN +/** MDNS answer message structure */ +struct mdns_auth { + PACK_STRUCT_FIELD(u32_t src); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_MDNS_AUTH 4 +PACK_STRUCT_BEGIN +/** MDNS service registration message structure */ +struct mdns_service { + PACK_STRUCT_FIELD(u16_t prior); + PACK_STRUCT_FIELD(u16_t weight); + PACK_STRUCT_FIELD(u16_t port); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_MDNS_SERVICE 6 + +uint16 PUCK_PORT ; +os_timer_t mdns_timer; +/* forward declarations */ +static void mdns_recv(void *s, struct udp_pcb *pcb, struct pbuf *p, + struct ip_addr *addr, u16_t port); + +/*----------------------------------------------------------------------------- + * Globales + *----------------------------------------------------------------------------*/ + +/* MDNS variables */ +static char host_name[MDNS_NAME_LENGTH]; +static char service_name[MDNS_NAME_LENGTH]; +static char server_name[MDNS_NAME_LENGTH]; +//static char puck_datasheet[PUCK_DATASHEET_SIZE]; +static struct udp_pcb *mdns_pcb = NULL; +static struct mdns_info * ms_info = NULL; +static struct ip_addr multicast_addr; +static struct ip_addr host_addr; +static uint8 register_flag = 0; +static uint8 mdns_flag = 0; +//#if (DNS_USES_STATIC_BUF == 1) +static u8_t mdns_payload[DNS_MSG_SIZE]; +//#endif /* (MDNS_USES_STATIC_BUF == 1) */ +/* + * Function to set the UDP pcb used to send the mDNS packages + */ +void ICACHE_FLASH_ATTR +getPcb(struct udp_pcb *pcb) { + mdns_pcb = pcb; +} + +#if DNS_DOES_NAME_CHECK +/** + * Compare the "dotted" name "query" with the encoded name "response" + * to make sure an answer from the DNS server matches the current mdns_table + * entry (otherwise, answers might arrive late for hostname not on the list + * any more). + * + * @param query hostname (not encoded) from the mdns_table + * @param response encoded hostname in the DNS response + * @return 0: names equal; 1: names differ + */ +static u8_t ICACHE_FLASH_ATTR +mdns_compare_name(unsigned char *query, unsigned char *response) { + unsigned char n; + + do { + n = *response++; + /** @see RFC 1035 - 4.1.4. Message compression */ + if ((n & 0xc0) == 0xc0) { + /* Compressed name */ + break; + } else { + /* Not compressed name */ + while (n > 0) { + if ((*query) != (*response)) { + return 1; + } + ++response; + ++query; + --n; + }; + ++query; + } + } while (*response != 0); + + return 0; +} +#endif /* DNS_DOES_NAME_CHECK */ +/** + * Send a mDNS answer packet. + * + * @param type of answer hostname and service registration or service + * @param name to query + * @param id transaction ID in the DNS query packet + * @return ERR_OK if packet is sent; an err_t indicating the problem otherwise + */ +static err_t ICACHE_FLASH_ATTR +mdns_answer(u16_t type, const char* name, u8_t id) { + err_t err; + struct mdns_hdr *hdr; + struct mdns_answer ans; + struct mdns_auth auth; + struct mdns_service serv; + struct pbuf *p ,*p_sta; + char *query, *nptr; + const char *pHostname; + struct netif * sta_netif = NULL; + struct netif * ap_netif = NULL; + static char tmpBuf[PUCK_DATASHEET_SIZE + PUCK_SERVICE_LENGTH]; + u8_t n; + u16_t length = 0; + /* if here, we have either a new query or a retry on a previous query to process */ + p = pbuf_alloc(PBUF_TRANSPORT, + SIZEOF_DNS_HDR + MDNS_MAX_NAME_LENGTH * 2 + SIZEOF_DNS_QUERY, PBUF_RAM); + if (p != NULL) { + LWIP_ASSERT("pbuf must be in one piece", p->next == NULL); + /* fill dns header */ + hdr = (struct mdns_hdr*) p->payload; + os_memset(hdr, 0, SIZEOF_DNS_HDR); + hdr->id = htons(id); + hdr->flags1 = DNS_FLAG1_RESPONSE; + + if (type == MDNS_SD_ANSWER) { + pHostname = DNS_SD_SERVICE; + hdr->numanswers = htons(1); + } else if (type == MDNS_SERVICE_REG_ANSWER) { + pHostname = PUCK_SERVICE; + hdr->numanswers = htons(type); + } else { + pHostname = name; + hdr->numanswers = htons(type); + } + query = (char*) hdr + SIZEOF_DNS_HDR; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + /* fill dns query */ + + if (type == MDNS_REG_ANSWER) { + + ans.type = htons(DNS_RRTYPE_A); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(MDNS_SERVICE_TIME); + ans.len = htons(DNS_IP_ADDR_LEN); + length = DNS_IP_ADDR_LEN; + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + /* set the local IP address */ + auth.src = host_addr.addr; + MEMCPY( query, &auth, SIZEOF_MDNS_AUTH); + } + if (type == MDNS_SD_ANSWER) { + + ans.type = htons(DNS_RRTYPE_PTR); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(300); + ans.len = htons(os_strlen(PUCK_SERVICE) + 1 +1 ); + length = 0; + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + pHostname = PUCK_SERVICE; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + } + + if (type == MDNS_SERVICE_REG_ANSWER) { + + ans.type = htons(DNS_RRTYPE_PTR); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(MDNS_SERVICE_TIME); + os_strcpy(tmpBuf, name); + os_strcat(tmpBuf, "."); + os_strcat(tmpBuf, PUCK_SERVICE); + + length = os_strlen(tmpBuf) + MDNS_LENGTH_ADD; + ans.len = htons(length); + length = 0; + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + pHostname = tmpBuf; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + + /* Service query*/ + pHostname = name; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + + /* Add to the service name the service local + * pointing to the beginning of the mDNS message*/ + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + + /* fill the query */ + + ans.type = htons(DNS_RRTYPE_SRV); + ans.class = htons(DNS_RRCLASS_FLUSH_IN); + ans.ttl = htonl(MDNS_SERVICE_TIME); + os_strcpy(tmpBuf, host_name); + os_strcat(tmpBuf, "."); + os_strcat(tmpBuf, MDNS_LOCAL); + length = os_strlen(tmpBuf) + MDNS_LENGTH_ADD; + ans.len = htons(SIZEOF_MDNS_SERVICE + length); + length = 0; + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + /* fill the service properties */ + + serv.prior = htons(0); + serv.weight = htons(0); + serv.port = htons(PUCK_PORT); + MEMCPY( query, &serv, SIZEOF_MDNS_SERVICE); + /* resize the query */ + query = query + SIZEOF_MDNS_SERVICE; + + pHostname = tmpBuf; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + + /* TXT answer */ + pHostname = name; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + + /* Add to the service name the service local + * pointing to the beginning of the mDNS message*/ + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + + /* fill the answer */ + ans.type = htons(DNS_RRTYPE_TXT); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(MDNS_SERVICE_TIME); + length = sizeof(SERVICE_DESCRIPTION); + ans.len = htons(length); + length = 0; + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + pHostname = SERVICE_DESCRIPTION; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + } + /* resize pbuf to the exact dns query */ + pbuf_realloc(p, (query + length) - ((char*) (p->payload))); + + /* send dns packet */ + /*add by tzx for AP + STA MDNS begin------*/ + sta_netif = (struct netif *)eagle_lwip_getif(0x00); + ap_netif = (struct netif *)eagle_lwip_getif(0x01); + if(wifi_get_opmode() == 0x03 && wifi_get_broadcast_if() == 0x03 &&\ + sta_netif != NULL && ap_netif != NULL) { + if(netif_is_up(sta_netif) && netif_is_up(ap_netif)) { + + p_sta = pbuf_alloc(PBUF_TRANSPORT, + SIZEOF_DNS_HDR + MDNS_MAX_NAME_LENGTH * 2 + SIZEOF_DNS_QUERY, PBUF_RAM); + if (pbuf_copy (p_sta,p) != ERR_OK) { + os_printf("mdns_answer copying to new pbuf failed\n"); + return -1; + } + netif_set_default(sta_netif); + err = udp_sendto(mdns_pcb, p_sta, &multicast_addr, DNS_MDNS_PORT); + pbuf_free(p_sta); + netif_set_default(ap_netif); + } + } + /*add by tzx for AP + STA MDNS end------*/ + err = udp_sendto(mdns_pcb, p, &multicast_addr, DNS_MDNS_PORT); + /* free pbuf */ + pbuf_free(p); + } else { + err = ERR_MEM; + } + + return err; +} + +/** + * Send a mDNS service answer packet. + * + * @param name service name to query + * @param id transaction ID in the DNS query packet + * @return ERR_OK if packet is sent; an err_t indicating the problem otherwise + */ +static err_t ICACHE_FLASH_ATTR +mdns_send_service(struct mdns_info *info, u8_t id) { + err_t err; + struct mdns_hdr *hdr; + struct mdns_answer ans; + struct mdns_service serv; + struct mdns_auth auth; + struct pbuf *p ,*p_sta; + char *query, *nptr; + const char *pHostname; + char *device_info; + const char *name = info->host_name; + u8_t n; + u8_t i = 0; + u16_t length = 0; + u8_t addr1 = 12, addr2 = 12; + struct netif * sta_netif = NULL; + struct netif * ap_netif = NULL; + static char tmpBuf[PUCK_DATASHEET_SIZE + PUCK_SERVICE_LENGTH]; + /* if here, we have either a new query or a retry on a previous query to process */ + p = pbuf_alloc(PBUF_TRANSPORT, + SIZEOF_DNS_HDR + MDNS_MAX_NAME_LENGTH * 2 + SIZEOF_DNS_QUERY, PBUF_RAM); + if (p != NULL) { + LWIP_ASSERT("pbuf must be in one piece", p->next == NULL); + /* fill dns header */ + hdr = (struct mdns_hdr*) p->payload; + os_memset(hdr, 0, SIZEOF_DNS_HDR); + hdr->id = htons(id); + hdr->flags1 = DNS_FLAG1_RESPONSE; + hdr->numanswers = htons(4); + query = (char*) hdr + SIZEOF_DNS_HDR; + os_strcpy(tmpBuf, PUCK_SERVICE); + + pHostname = tmpBuf; + --pHostname; + + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + ++addr1; + ++addr2; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++addr1; + ++addr2; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + length = sizeof(MDNS_LOCAL); + addr1 -= length; + length = os_strlen(PUCK_SERVICE) + 1; + addr2 -= length; + + ans.type = htons(DNS_RRTYPE_PTR); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(300); + os_strcpy(tmpBuf, name); + length = os_strlen(tmpBuf) + MDNS_LENGTH_ADD + 1; + ans.len = htons(length); + length = 0; + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + pHostname = tmpBuf; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + pHostname = name; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + //*query++ = '\0'; + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + + /* fill the answer */ + ans.type = htons(DNS_RRTYPE_TXT); + ans.class = htons(DNS_RRCLASS_FLUSH_IN); + ans.ttl = htonl(300); +// length = os_strlen(TXT_DATA) + MDNS_LENGTH_ADD + 1; + device_info = (char *)os_zalloc(50); + ets_sprintf(device_info,"vendor = %s","Espressif"); + for(i = 0; i < 10 &&(info->txt_data[i] != NULL);i++) { + length += os_strlen(info->txt_data[i]); + length++; + } + length += os_strlen(device_info)+ 1 ; + ans.len = htons(length); + length = 0; + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + query = query + SIZEOF_DNS_ANSWER; + pHostname = device_info; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + i = 0; + while(info->txt_data[i] != NULL && i < 10) { + pHostname = info->txt_data[i]; + --pHostname; + /* convert hostname into suitable query format. */ + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + i++; + } +// *query++ = '\0'; + os_free(device_info); + os_strcpy(tmpBuf, name); + pHostname = tmpBuf; + --pHostname; + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + + *query++ = DNS_OFFSET_FLAG; + *query++ = DNS_DEFAULT_OFFSET; + + ans.type = htons(DNS_RRTYPE_SRV); + ans.class = htons(DNS_RRCLASS_FLUSH_IN); + ans.ttl = htonl(300); + os_strcpy(tmpBuf,service_name); + os_strcat(tmpBuf, "."); + os_strcat(tmpBuf, MDNS_LOCAL); + length = os_strlen(tmpBuf) + MDNS_LENGTH_ADD; + ans.len = htons(SIZEOF_MDNS_SERVICE + length); + length = 0; + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + serv.prior = htons(0); + serv.weight = htons(0); + serv.port = htons(PUCK_PORT); + MEMCPY( query, &serv, SIZEOF_MDNS_SERVICE); + /* resize the query */ + query = query + SIZEOF_MDNS_SERVICE; + + pHostname = tmpBuf; + --pHostname; + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + /* set the name of the authority field. + * The same name as the Query using the offset address*/ + os_strcpy(tmpBuf,service_name); + os_strcat(tmpBuf, "."); + os_strcat(tmpBuf, MDNS_LOCAL); + pHostname = tmpBuf; + --pHostname; + do { + ++pHostname; + nptr = query; + ++query; + for (n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { + *query = *pHostname; + ++query; + ++n; + } + *nptr = n; + } while (*pHostname != 0); + *query++ = '\0'; + /* set the name of the authority field. + * The same name as the Query using the offset address*/ + //*query++ = DNS_OFFSET_FLAG; + //*query++ = DNS_DEFAULT_OFFSET; + ans.type = htons(DNS_RRTYPE_A); + ans.class = htons(DNS_RRCLASS_FLUSH_IN); + ans.ttl = htonl(300); + ans.len = htons(DNS_IP_ADDR_LEN); + + MEMCPY( query, &ans, SIZEOF_DNS_ANSWER); + + /* resize the query */ + query = query + SIZEOF_DNS_ANSWER; + + /* fill the payload of the mDNS message */ + /* set the local IP address */ + auth.src = host_addr.addr; //ipAddr; + MEMCPY( query, &auth, SIZEOF_MDNS_AUTH); + /* resize the query */ + query = query + SIZEOF_MDNS_AUTH; + + /* set the name of the authority field. + * The same name as the Query using the offset address*/ + + /* resize pbuf to the exact dns query */ + pbuf_realloc(p, (query) - ((char*) (p->payload))); + /* send dns packet */ + sta_netif = (struct netif *)eagle_lwip_getif(0x00); + ap_netif = (struct netif *)eagle_lwip_getif(0x01); + if(wifi_get_opmode() == 0x03 && wifi_get_broadcast_if() == 0x03 &&\ + sta_netif != NULL && ap_netif != NULL) { + if(netif_is_up(sta_netif) && netif_is_up(ap_netif)) { + + p_sta = pbuf_alloc(PBUF_TRANSPORT, + SIZEOF_DNS_HDR + MDNS_MAX_NAME_LENGTH * 2 + SIZEOF_DNS_QUERY, PBUF_RAM); + if (pbuf_copy (p_sta,p) != ERR_OK) { + os_printf("mdns_send_service copying to new pbuf failed\n"); + return -1; + } + netif_set_default(sta_netif); + err = udp_sendto(mdns_pcb, p_sta, &multicast_addr, DNS_MDNS_PORT); + pbuf_free(p_sta); + netif_set_default(ap_netif); + } + } + err = udp_sendto(mdns_pcb, p, &multicast_addr, DNS_MDNS_PORT); + + /* free pbuf */ + pbuf_free(p); + } else { + os_printf("ERR_MEM \n"); + err = ERR_MEM; + } + + return err; +} + +/** + * Receive input function for DNS response packets arriving for the dns UDP pcb. + * + * @params see udp.h + */ +static void ICACHE_FLASH_ATTR +mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, + u16_t port) { + u8_t i; + struct mdns_hdr *hdr; + u8_t nquestions; + LWIP_UNUSED_ARG(arg); + LWIP_UNUSED_ARG(pcb); + LWIP_UNUSED_ARG(addr); + LWIP_UNUSED_ARG(port); + struct mdns_info *info = (struct mdns_info *)arg; + /* is the dns message too big ? */ + if (p->tot_len > DNS_MSG_SIZE) { + LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too big\n")); + /* free pbuf and return */ + goto memerr1; + } + + /* is the dns message big enough ? */ + if (p->tot_len < (SIZEOF_DNS_HDR + SIZEOF_DNS_QUERY + SIZEOF_DNS_ANSWER)) { + LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too small\n")); + /* free pbuf and return */ + goto memerr1; + } + /* copy dns payload inside static buffer for processing */ + if (pbuf_copy_partial(p, mdns_payload, p->tot_len, 0) == p->tot_len) { + /* The ID in the DNS header should be our entry into the name table. */ + hdr = (struct mdns_hdr*) mdns_payload; + + i = htons(hdr->id); + if (i < DNS_TABLE_SIZE) { + + nquestions = htons(hdr->numquestions); + //nanswers = htons(hdr->numanswers); + /* if we have a question send an answer if necessary */ + if (nquestions > 0) { + /* MDNS_DS_DOES_NAME_CHECK */ + /* Check if the name in the "question" part match with the name of the MDNS DS service. */ + if (mdns_compare_name((unsigned char *) DNS_SD_SERVICE, + (unsigned char *) mdns_payload + SIZEOF_DNS_HDR) == 0) { + /* respond with the puck service*/ + mdns_answer(MDNS_SD_ANSWER, PUCK_SERVICE, 0); + } else if (mdns_compare_name((unsigned char *) PUCK_SERVICE, + (unsigned char *) mdns_payload + SIZEOF_DNS_HDR) == 0) { + /* respond with the puck service*/ + mdns_send_service(info, 0); + } else + goto memerr2; + } + } + } + goto memerr2; + memerr2: + os_memset(mdns_payload , 0 ,DNS_MSG_SIZE); + memerr1: + /* free pbuf */ + pbuf_free(p); + return; +} + +/** + * close the UDP pcb . + */ +void ICACHE_FLASH_ATTR +mdns_close(void) +{ + if (mdns_pcb != NULL && ms_info != NULL) + udp_remove(mdns_pcb); + os_free(ms_info); + mdns_pcb = NULL; + ms_info = NULL; + +} + +void ICACHE_FLASH_ATTR +mdns_set_name(const char *name) +{ + //strcpy(host_name, name); + os_strcpy(service_name, name); +} + +void ICACHE_FLASH_ATTR +mdns_enable(void) +{ + if(mdns_flag == 0) { + udp_recv(mdns_pcb, mdns_recv, NULL); + } +} + +void ICACHE_FLASH_ATTR +mdns_disable(void) +{ + if (mdns_flag == 1) { + udp_recv(mdns_pcb, NULL, NULL); + } +} + +/** + * close the UDP pcb . + */ +char* ICACHE_FLASH_ATTR +mdns_get_hostname(void) { + //strcpy(host_name, name); + char *name = host_name; + if (host_name[0] != 0 ) { + return name; + } else { + return ("Espressif"); + } +} + +void ICACHE_FLASH_ATTR +mdns_set_hostname(char *name) { + if (name == NULL) { + os_strncpy(host_name, "Espressif", os_strlen("Espressif")+3); + return; + } + if (os_strlen(name) + 3 <= MDNS_NAME_LENGTH ){ + os_strncpy(host_name, name, os_strlen(name) ); +// os_memset(host_name + os_strlen(host_name) ,0x00,3); + } else { + os_strncpy(host_name, name, MDNS_NAME_LENGTH); + } +} + +void ICACHE_FLASH_ATTR +mdns_set_servername(const char *name) { + if (name == NULL) { + PUCK_SERVICE = "_Espressif._tcp._local"; + }else { + os_sprintf(server_name ,"_%s._tcp.local",name); + PUCK_SERVICE = server_name; + } +} + +char* ICACHE_FLASH_ATTR +mdns_get_servername(void) { + char *name = PUCK_SERVICE; + if (name == NULL) { + PUCK_SERVICE = "_Espressif._tcp._local"; + } + return name; +} + +void ICACHE_FLASH_ATTR +mdns_server_unregister(void) { + struct ip_addr ap_host_addr; + struct ip_info ipconfig; + if(register_flag == 1){ + if (igmp_leavegroup(&host_addr, &multicast_addr) != ERR_OK) { + os_printf("sta udp_leave_multigrup failed!\n"); + return; + }; + if(wifi_get_opmode() == 0x03 || wifi_get_opmode() == 0x02) { + wifi_get_ip_info(SOFTAP_IF, &ipconfig); + ap_host_addr.addr = ipconfig.ip.addr; + if (igmp_leavegroup(&ap_host_addr, &multicast_addr) != ERR_OK) { + os_printf("ap udp_join_multigrup failed!\n"); + return; + }; + } + register_flag = 0; + } +} + +void ICACHE_FLASH_ATTR +mdns_server_register(void) { + + if (register_flag == 1) { + os_printf("mdns server is already registered !\n"); + return; + } else if (igmp_joingroup(&host_addr, &multicast_addr) != ERR_OK) { + os_printf("udp_join_multigrup failed!\n"); + return; + }; + register_flag = 1; +} + +void ICACHE_FLASH_ATTR +mdns_reg(struct mdns_info *info) { + + static uint8 i = 0; + if (i <= 3) { + mdns_send_service(info,0); + i++; + } else { + os_timer_disarm(&mdns_timer); + } +} + +/** + * Initialize the resolver: set up the UDP pcb and configure the default server + * (NEW IP). + */ +void ICACHE_FLASH_ATTR +mdns_init(struct mdns_info *info) { + /* initialize default DNS server address */ + multicast_addr.addr = DNS_MULTICAST_ADDRESS; + struct ip_addr ap_host_addr; + struct ip_info ipconfig; + ms_info = (struct mdns_info *)os_zalloc(sizeof(struct mdns_info)); + if (ms_info != NULL) { + os_memcpy(ms_info,info,sizeof(struct mdns_info)); + } else { + os_printf("ms_info alloc failed\n"); + return; + } + if (ms_info->ipAddr == 0) { + os_printf("mdns ip error!\n "); + return; + } + host_addr.addr = ms_info->ipAddr ; + LWIP_DEBUGF(DNS_DEBUG, ("dns_init: initializing\n")); + //get the datasheet from PUCK + mdns_set_hostname(ms_info->host_name); + mdns_set_servername(ms_info->server_name); + mdns_set_name(ms_info->host_name); + + // get the host name as instrumentName_serialNumber for MDNS + // set the name of the service, the same as host name + os_printf("host_name = %s\n", host_name); + os_printf("server_name = %s\n", PUCK_SERVICE); + if (ms_info->server_port == 0) + { + PUCK_PORT = 80; + } else { + PUCK_PORT = ms_info->server_port; + } + + /* initialize mDNS */ + mdns_pcb = udp_new(); + + if (mdns_pcb != NULL) { + /* join to the multicast address 224.0.0.251 */ + if(wifi_get_opmode() == 0x03 || wifi_get_opmode() == 0x01) { + if (igmp_joingroup(&host_addr, &multicast_addr) != ERR_OK) { + os_printf("sta udp_join_multigrup failed!\n"); + return; + }; + } + if(wifi_get_opmode() == 0x03 || wifi_get_opmode() == 0x02) { + wifi_get_ip_info(SOFTAP_IF, &ipconfig); + ap_host_addr.addr = ipconfig.ip.addr; + if (igmp_joingroup(&ap_host_addr, &multicast_addr) != ERR_OK) { + os_printf("ap udp_join_multigrup failed!\n"); + return; + }; + } + register_flag = 1; + /* join to any IP address at the port 5353 */ + if (udp_bind(mdns_pcb, IP_ADDR_ANY, DNS_MDNS_PORT) != ERR_OK) { + os_printf("udp_bind failed!\n"); + return; + }; + + /*loopback function for the multicast(224.0.0.251) messages received at port 5353*/ +// mdns_enable(); + udp_recv(mdns_pcb, mdns_recv, ms_info); + mdns_flag = 1; + /* + * Register the name of the instrument + */ + + os_timer_disarm(&mdns_timer); + os_timer_setfn(&mdns_timer, (os_timer_func_t *)mdns_reg,ms_info); + os_timer_arm(&mdns_timer, 1000, 1); + } +} + +#endif /* LWIP_MDNS */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/mdns.h b/BLE_EXAMPLE/src/main/cpp/lwip/mdns.h new file mode 100644 index 000000000..cd910cb26 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/mdns.h @@ -0,0 +1,114 @@ +/** + * lwip MDNS resolver header file. + * + * Created on: Jul 29, 2010 + * Author: Daniel Toma + + + * ported from uIP resolv.c Copyright (c) 2002-2003, Adam Dunkels. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LWIP_MDNS_H__ +#define __LWIP_MDNS_H__ + +#include "lwip/opt.h" + +#if LWIP_MDNS /* don't build if not configured for use in lwipopts.h */ + +/** DNS timer period */ +#define DNS_TMR_INTERVAL 1000 + +/** mDNS Address offset flag*/ +#define DNS_OFFSET_FLAG 0xC0 /* the offset flag in the DNS message */ +#define DNS_DEFAULT_OFFSET 0x0C /* the offset is set at the beginning of the DNS message */ + +#define DNS_IP_ADDR_LEN 4 + + +/** DNS field TYPE used for "Resource Records" */ +#define DNS_RRTYPE_A 1 /* a host address */ +#define DNS_RRTYPE_NS 2 /* an authoritative name server */ +#define DNS_RRTYPE_MD 3 /* a mail destination (Obsolete - use MX) */ +#define DNS_RRTYPE_MF 4 /* a mail forwarder (Obsolete - use MX) */ +#define DNS_RRTYPE_CNAME 5 /* the canonical name for an alias */ +#define DNS_RRTYPE_SOA 6 /* marks the start of a zone of authority */ +#define DNS_RRTYPE_MB 7 /* a mailbox domain name (EXPERIMENTAL) */ +#define DNS_RRTYPE_MG 8 /* a mail group member (EXPERIMENTAL) */ +#define DNS_RRTYPE_MR 9 /* a mail rename domain name (EXPERIMENTAL) */ +#define DNS_RRTYPE_NULL 10 /* a null RR (EXPERIMENTAL) */ +#define DNS_RRTYPE_WKS 11 /* a well known service description */ +#define DNS_RRTYPE_PTR 12 /* a domain name pointer */ +#define DNS_RRTYPE_HINFO 13 /* host information */ +#define DNS_RRTYPE_MINFO 14 /* mailbox or mail list information */ +#define DNS_RRTYPE_MX 15 /* mail exchange */ +#define DNS_RRTYPE_TXT 16 /* text strings */ +#define DNS_RRTYPE_SRV 33 /* Service record */ +#define DNS_RRTYPE_OPT 41 /* EDNS0 OPT record */ +#define DNS_RRTYPE_TSIG 250 /* Transaction Signature */ +#define DNS_RRTYPE_ANY 255 /*Not a DNS type, but a DNS query type, meaning "all types"*/ + +/* DNS field CLASS used for "Resource Records" */ +#define DNS_RRCLASS_IN 1 /* the Internet */ +#define DNS_RRCLASS_CS 2 /* the CSNET class (Obsolete - used only for examples in some obsolete RFCs) */ +#define DNS_RRCLASS_CH 3 /* the CHAOS class */ +#define DNS_RRCLASS_HS 4 /* Hesiod [Dyer 87] */ +#define DNS_RRCLASS_FLUSH 0x800 /* Flush bit */ +#define DNS_RRCLASS_FLUSH_IN 0x8001/* Flush bit and Internet*/ + +/** Callback which is invoked when a hostname is found. + * A function of this type must be implemented by the application using the DNS resolver. + * @param name pointer to the name that was looked up. + * @param ipaddr pointer to a struct ip_addr containing the IP address of the hostname, + * or NULL if the name could not be found (or on any other error). + * @param callback_arg a user-specified callback argument passed to dns_gethostbyname +*/ +#ifndef _MDNS_INFO +#define _MDNS_INFO +struct mdns_info { + char *host_name; + char *server_name; + uint16 server_port; + unsigned long ipAddr; + char *txt_data[10]; +}; +#endif +//void mdns_enable(void); +//void mdns_disable(void); +//void mdns_init(struct mdns_info *info); +//void mdns_close(void); +//char* mdns_get_hostname(void); +//void mdns_set_hostname(char *name); +//void mdns_set_servername(const char *name); +//char* mdns_get_servername(void); +//void mdns_server_unregister(void); +//void mdns_server_register(void) ; +//void mdns_tmr(void); +//void Delay(unsigned long ulSeconds); + +#endif /* LWIP_DNS */ + +#endif /* __LWIP_DNS_H__ */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/mdns.h_ b/BLE_EXAMPLE/src/main/cpp/lwip/mdns.h_ new file mode 100644 index 000000000..08db68a67 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/mdns.h_ @@ -0,0 +1,114 @@ +/** + * lwip MDNS resolver header file. + * + * Created on: Jul 29, 2010 + * Author: Daniel Toma + + + * ported from uIP resolv.c Copyright (c) 2002-2003, Adam Dunkels. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LWIP_DNS_H__ +#define __LWIP_DNS_H__ + +#include "lwip/opt.h" + +#if LWIP_MDNS /* don't build if not configured for use in lwipopts.h */ + +/** DNS timer period */ +#define DNS_TMR_INTERVAL 1000 + +/** mDNS Address offset flag*/ +#define DNS_OFFSET_FLAG 0xC0 /* the offset flag in the DNS message */ +#define DNS_DEFAULT_OFFSET 0x0C /* the offset is set at the beginning of the DNS message */ + +#define DNS_IP_ADDR_LEN 4 + + +/** DNS field TYPE used for "Resource Records" */ +#define DNS_RRTYPE_A 1 /* a host address */ +#define DNS_RRTYPE_NS 2 /* an authoritative name server */ +#define DNS_RRTYPE_MD 3 /* a mail destination (Obsolete - use MX) */ +#define DNS_RRTYPE_MF 4 /* a mail forwarder (Obsolete - use MX) */ +#define DNS_RRTYPE_CNAME 5 /* the canonical name for an alias */ +#define DNS_RRTYPE_SOA 6 /* marks the start of a zone of authority */ +#define DNS_RRTYPE_MB 7 /* a mailbox domain name (EXPERIMENTAL) */ +#define DNS_RRTYPE_MG 8 /* a mail group member (EXPERIMENTAL) */ +#define DNS_RRTYPE_MR 9 /* a mail rename domain name (EXPERIMENTAL) */ +#define DNS_RRTYPE_NULL 10 /* a null RR (EXPERIMENTAL) */ +#define DNS_RRTYPE_WKS 11 /* a well known service description */ +#define DNS_RRTYPE_PTR 12 /* a domain name pointer */ +#define DNS_RRTYPE_HINFO 13 /* host information */ +#define DNS_RRTYPE_MINFO 14 /* mailbox or mail list information */ +#define DNS_RRTYPE_MX 15 /* mail exchange */ +#define DNS_RRTYPE_TXT 16 /* text strings */ +#define DNS_RRTYPE_SRV 33 /* Service record */ +#define DNS_RRTYPE_OPT 41 /* EDNS0 OPT record */ +#define DNS_RRTYPE_TSIG 250 /* Transaction Signature */ +#define DNS_RRTYPE_ANY 255 /*Not a DNS type, but a DNS query type, meaning "all types"*/ + +/* DNS field CLASS used for "Resource Records" */ +#define DNS_RRCLASS_IN 1 /* the Internet */ +#define DNS_RRCLASS_CS 2 /* the CSNET class (Obsolete - used only for examples in some obsolete RFCs) */ +#define DNS_RRCLASS_CH 3 /* the CHAOS class */ +#define DNS_RRCLASS_HS 4 /* Hesiod [Dyer 87] */ +#define DNS_RRCLASS_FLUSH 0x800 /* Flush bit */ +#define DNS_RRCLASS_FLUSH_IN 0x8001/* Flush bit and Internet*/ + +/** Callback which is invoked when a hostname is found. + * A function of this type must be implemented by the application using the DNS resolver. + * @param name pointer to the name that was looked up. + * @param ipaddr pointer to a struct ip_addr containing the IP address of the hostname, + * or NULL if the name could not be found (or on any other error). + * @param callback_arg a user-specified callback argument passed to dns_gethostbyname +*/ +#ifndef _MDNS_INFO +#define _MDNS_INFO +struct mdns_info { + char *host_name; + char *server_name; + uint16 server_port; + unsigned long ipAddr; + char *txt_data[10]; +}; +#endif +//void mdns_enable(void); +//void mdns_disable(void); +//void mdns_init(struct mdns_info *info); +//void mdns_close(void); +//char* mdns_get_hostname(void); +//void mdns_set_hostname(char *name); +//void mdns_set_servername(const char *name); +//char* mdns_get_servername(void); +//void mdns_server_unregister(void); +//void mdns_server_register(void) ; +//void mdns_tmr(void); +//void Delay(unsigned long ulSeconds); + +#endif /* LWIP_DNS */ + +#endif /* __LWIP_DNS_H__ */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/net_raw.c b/BLE_EXAMPLE/src/main/cpp/lwip/net_raw.c new file mode 100644 index 000000000..cfd3b455f --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/net_raw.c @@ -0,0 +1,124 @@ +#include +//#include "main.h" +#include "lwip/lwip.h" +#include "lwip/net_raw.h" +#include "lwip/net_topology.h" +//#include "lwip/net_controls.h" +//#include "lwip/timeouts.h" +//#include "lwip/memp.h" +//#include "lwip/stats.h" +//#include "lwip/netif.h" +//#include "lwip/ethernetif.h" + + + +void raw_send_ucast(struct eth_raw_frame* rawdgram) { + rawdgram->ethtype[0]=ETHTYPE_ADP>>8;// eth type (88CD - SERCOS) + rawdgram->ethtype[1]=(uint8_t)ETHTYPE_ADP; + +// if (len<62) len=62; + ethernet_send_raw(rawdgram); + } + +void raw_send_bcast(struct eth_raw_frame* rawdgram) { + rawdgram->dst_mac[0]=0xFF;// dst broadcast + rawdgram->dst_mac[1]=0xFF; + rawdgram->dst_mac[2]=0xFF; + rawdgram->dst_mac[3]=0xFF; + rawdgram->dst_mac[4]=0xFF; + rawdgram->dst_mac[5]=0xFF; + + rawdgram->ethtype[0]=ETHTYPE_ADP>>8;// eth type (88CD - SERCOS) + rawdgram->ethtype[1]=(uint8_t)ETHTYPE_ADP; + +// if (len<62) len=62; + ethernet_send_raw(rawdgram); + } + + + +int dg_check(struct eth_raw_frame* dg, int len) { + if (dg->len+18>len) return -1;// incorrect size + uint16_t cs=0x2345+dg->len; + for (int i=0; ilen-1; i+=2) cs+=*(uint16_t*)&(dg->payload[i]); + if (dg->len&1) cs+=dg->payload[dg->len-1]; + if (dg->csum!=cs) return -2; + return 0; + } + +// ========================== custom proto rx handler +err_t lwip_customproto(struct pbuf *pb, struct netif *netif) {// input: 14byte header (+0-dst mac), +14: data [>=46 bytes], 4 bytes crc (L2) + pb = pbuf_coalesce(pb, PBUF_RAW); + if (pb->next != NULL) return ERR_IF; + struct eth_raw_frame *ethhdr; + ethhdr = (struct eth_raw_frame *)pb->payload; + + uint16_t ethtype=(ethhdr->ethtype[0]<<8)|ethhdr->ethtype[1]; + if (ethtype==ETHTYPE_DBG) {// dbg diagnostic data + if (dg_check(ethhdr, pb->len)) return ERR_IF; + +// if (ethhdr->payload[0]==2) dbg_new_dgram((struct StrDBGData*)&(ethhdr->payload[0]), (uint8_t*)&(ethhdr->src_mac[0]), ethhdr->len); +// if (ethhdr->payload[0]==0x33) ugr_new_dgram(ethhdr); + pbuf_free(pb); + return ERR_OK; + } + + if (ethtype==ETHTYPE_ADP) {// topology + if (dg_check(ethhdr, pb->len)) return ERR_IF; + + if (ethhdr->payload[0]==0) topology_new_dgram((struct StrNetTopData*)&(ethhdr->payload[2]), (uint8_t*)&(ethhdr->src_mac[0]), ethhdr->len); + if (ethhdr->payload[0]==6) topology_disconnect((uint8_t*)&(ethhdr->src_mac[0])); +// if (ethhdr->payload[0]==0x80) dfu_status_new_dgram(ethhdr); +// if (ethhdr->payload[0]==0xFE) dfu_request_new_dgram(ethhdr); + pbuf_free(pb); + return ERR_OK; + } + + if (ethtype==ETHTYPE_CONTROLS) {// controls (terminal, menu) + if (dg_check(ethhdr, pb->len)) return ERR_IF; +// controls_new_dgram(ethhdr); + pbuf_free(pb); + return ERR_OK; + } + return ERR_IF; + } + + + +err_t ethernet_send_raw(struct eth_raw_frame* eth_dgram) { + struct pbuf p; + memset(&p,0,sizeof(p)); + + uint16_t dgram_len=eth_dgram->len; + + uint16_t cs=0x2345+dgram_len; + for (int i=0; ipayload[i]); + if (dgram_len&1) cs+=eth_dgram->payload[dgram_len-1]; + + dgram_len+=18; + if (dgram_len<62) dgram_len=62; + eth_dgram->csum=cs; + + err_t res=ERR_IF; + p.payload = eth_dgram; + p.len = dgram_len; + p.tot_len = dgram_len; + memcpy(eth_dgram->src_mac, &gnetif.hwaddr, 6);// source address +#include "lwip/eth_router_if_lwip.h" + if (lwip_netif->linkoutput) { + res=lwip_netif->linkoutput(lwip_netif, &p); + } + + return res; + } + +err_t ethernet_send_raw_to_paired(struct eth_raw_frame* dgrambuf) { + for (int n=0; ndst_mac[j]=paired_controllers[n][j]; + int mac_ok=0; + for (int i=0; i<6; i++) if (dgrambuf->dst_mac[i]!=0) mac_ok=1; + + if (mac_ok) ethernet_send_raw(dgrambuf); + } + return 0; + } diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/net_raw.h b/BLE_EXAMPLE/src/main/cpp/lwip/net_raw.h new file mode 100644 index 000000000..75bef45ab --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/net_raw.h @@ -0,0 +1,25 @@ +#include "lwip/opt.h" +#include "lwip/netif.h" + +// отдача принятых не-IP пакетов нужному обработчику, проверка контрольной суммы. +// отправка не IP кодограмм и формирование контрольной суммы + + +#define ETHTYPE_ADP 0x8777// braodcast топологии +#define ETHTYPE_DBG 0x8778// unicast diagram +#define ETHTYPE_CONTROLS 0x8779// controls, terminal, gui controls + +struct eth_raw_frame { + uint8_t dst_mac[6]; + uint8_t src_mac[6]; + uint8_t ethtype[2];// little endian везде в езернете. так что переворачиваем байты + uint16_t csum; + uint16_t len; + uint8_t payload[1482];// +18 + }; + +void raw_send_bcast(struct eth_raw_frame* rawdgram); +void raw_send_ucast(struct eth_raw_frame* rawdgram); + +err_t ethernet_send_raw(struct eth_raw_frame* eth_dgram);// кодограмма должна находиться в памяти доступной ETH периферии. +err_t ethernet_send_raw_to_paired(struct eth_raw_frame* dgrambuf); diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/net_topology.c b/BLE_EXAMPLE/src/main/cpp/lwip/net_topology.c new file mode 100644 index 000000000..d6a45558b --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/net_topology.c @@ -0,0 +1,229 @@ +// Формирование топологии устройств в сети + +#include "string.h" +#include "lwip/sockets.h" +#include "lwip/api.h" +#include "lwip/tcpip.h" +#include "lwip/net_raw.h" +#include "net_topology.h" +#include "settings.h" + +extern struct netif gnetif; + +uint8_t net_devices=0; +struct StrDevices_online Devices_online[256]; + +uint8_t paired_controllers[256][6];// mac адреса запаренных контроллеров (список рассылки управления) +uint16_t paired_controllers_cnt;// mac адреса + +static int nt_tmr=0; + +static int mac_cmp(uint8_t* mac1, uint8_t* mac2) { + if (mac1[0]!=mac2[0]) return 1; + if (mac1[1]!=mac2[1]) return 1; + if (mac1[2]!=mac2[2]) return 1; + if (mac1[3]!=mac2[3]) return 1; + if (mac1[4]!=mac2[4]) return 1; + if (mac1[5]!=mac2[5]) return 1; + return 0; + } + +static void fill_cell(struct StrNetTopData* yBuf, int i) { + Devices_online[i].status=1; + Devices_online[i].time=xTaskGetTickCount()+2000; + memcpy(&Devices_online[i].serial, yBuf, sizeof(struct StrNetTopData)); + } + +void topology_disconnect(uint8_t* mac) {// запрос на отключение устройства (контроллер просит забыть паринг, отклонил соединение) + memset((uint8_t*)settings.paired_mac_addr,0,6);// unpair active device + } + +struct eth_raw_frame rawdgram3; +void topology_request_pair(uint8_t* mac) {// запрос на паринг или смену запаренного устройства + rawdgram3.ethtype[0]=ETHTYPE_ADP>>8;// eth type (88CD - SERCOS) + rawdgram3.ethtype[1]=(uint8_t)ETHTYPE_ADP; + rawdgram3.payload[0]=0x05;// cmd (re-pair request) + rawdgram3.payload[1]=0x00;// cmd2 + memcpy(&rawdgram3.dst_mac[0], mac, 6); + + rawdgram3.len=2; + ethernet_send_raw(&rawdgram3); + } + +void topology_request_unpair(uint8_t* mac) {// запрос на паринг или смену запаренного устройства + rawdgram3.ethtype[0]=ETHTYPE_ADP>>8;// eth type (88CD - SERCOS) + rawdgram3.ethtype[1]=(uint8_t)ETHTYPE_ADP; + rawdgram3.payload[0]=0x05;// cmd (re-pair request) + rawdgram3.payload[1]=0x01;// cmd2 + memcpy(&rawdgram3.dst_mac[0], mac, 6); + + rawdgram3.len=2; + ethernet_send_raw(&rawdgram3); + } + +void topology_new_dgram(struct StrNetTopData* yBuf, uint8_t* mac, int len) { + if (len!=sizeof(struct StrNetTopData)+16) return;// size mismatch + if (mac_cmp(mac, gnetif.hwaddr)==0) return;// own dgram + + int free_cell=-1; + for (int i=0; i=net_devices) net_devices=free_cell+1; + for (int i=0; i<6; i++) Devices_online[free_cell].mac[i]=mac[i]; + } + + +void topo_periodic() { + if ((int)(xTaskGetTickCount()-nt_tmr)>0) { +// убираем устройства, давно не активные + + nt_tmr=xTaskGetTickCount()+500; + + int d=net_devices; + for (int i=0; i0) if (Devices_online[d-1].status==0) { d--; net_devices=d; } + + int dr=0; + for (int i=0; i>8;// eth type (88CD - SERCOS) + rawdgram2.ethtype[1]=(uint8_t)ETHTYPE_ADP; + rawdgram2.payload[0]=0x01;// cmd (update header) + rawdgram2.payload[1]=0x00;// cmd2 + memcpy(&rawdgram2.payload[2], d, sizeof(struct StrNetTopData)); + memcpy(&rawdgram2.dst_mac[0], mac, 6); + + rawdgram2.len=sizeof(struct StrNetTopData)+16; + ethernet_send_raw(&rawdgram2); + } + +void topology_broadcast_dgram() { + struct StrNetTopData* s=(void*)&rawdgram.payload[2]; + rawdgram.payload[0]=0x00;// cmd (header) + rawdgram.payload[1]=0x00;// cmd2 (header) + s->serial=settings.serial; + s->fw_ver[0]=0; + s->fw_ver[1]=0; + for (int i=0; i<6; i++) s->paired_mac[i]=settings.paired_mac_addr[i]; + for (int i=0; i<16; i++) s->name[i]=settings.netbios_name[i]; + s->ip_proto_enable=settings.ip_flags&1; + s->flag_dhcp_enable=(settings.ip_flags>>1)&1; + for (int i=0; i<4; i++) s->ip[i]=settings.ipv4[i]; + for (int i=0; i<4; i++) s->gw[i]=settings.gateway[i]; + s->netmask=settings.netmask; + s->dev_class=2;// LCD + rawdgram.len=sizeof(struct StrNetTopData)+16; + raw_send_bcast(&rawdgram); + } + + +pthread_t tTopoHandle; + +_Noreturn void EthTOPOLOGYThread(void *argument) { +// int captime=global_periodic_tmr; + while (1) { +// if ((int32_t)(global_periodic_tmr-captime-500)>0) {// send own config every 500ms +// captime=global_periodic_tmr; + topology_broadcast_dgram(); +// topo_periodic(); +// } + usleep(100000); + } + } + + +void topology_init() { + TaskCreate (EthTOPOLOGYThread, &tTopoHandle); + } + +//TaskCreate + + +/* ============================================================= +Дисциплина обмена +1. broadcast / discovery. +Каждое устройство шлет broadcast с информацией о себе. (0.5сек интервал) +И каждое устройство собирает эти броадкасты. Если пакета нет 2 секунды, устройство исключается из списков. +Таким образом, у каждого устройства есть все устройства в сети. +по умолчанию настройка - dhcp + autoip + +На старте одновременно включается и autoip и dhcp. Если DHCP сервер ответил, отключаем autoip. +Когда IP присвоен, 10 секунд проверочный интервал. Если не отвечает - проверочный интервал 1 секунда. 3 неудачные попытки - fallback на autoip. + +Возможны следующие конфигурации: +- static IP / mask / GW +- DHCP + autoip + +2. Настройка параметров +Контроллер пассивный. Дисплей шлёт в контроллер запросы: получение данных и обновление данных +В авто режиме для настройки параметров главным выбирается первый найденный. +В ручном - + +Протоколы работающие через IP: + +3. Дебаг +Контроллер периодически запрашивает пакеты (группу пакетов). +Контролер может запросить информацию о текущем окне (номер последнего пакета, размер буфера и кол-во валидных пакетов в очереди) + +5. Автонастройка (производство) +Если в контроллере нет мака и серийника, то контроллер присваевает случайный мак и стучится на локальный сервер с запросом присвоения мака и серийника. +Сервер выделяет мак-серийник, одновременно создает учетку, сохраняет туда серийный номер процессора, время и дату присвоения. ++ ssl ключи + +6. Терминал (old style) +132*64 B&W (text mode: 22x8) + + +Коммуникация контроллера с сервером: +1. мониторинг и блокировка ? +2. настройка и управление параметрами ? +3. терминал +4. обновление прошивки +5. streaming debug (from controller) + +Коммуникация дисплея с сервером: +1. debug data from SD (c LCD) +2. remote LCD screen (через сервер удаленное подключение к дисплею) + + ============================================== + +- Подписка на debug info + пока дисплей шлет запросы подписки, контроллер шлет дебаг инфу. Дебаг может слать только один контроллер. + +- подписка на ручки газа-тормоза. + может быть подписано любое количество контроллеров. контроллер сохраняет mac дисплея, на который подписан. + При network discovery дисплей смотрит какие контроллеры в онлайне подписаны на газтормоз и шлет им всем данные. + +- паринг для настрйоки и терминала + дисплей запоминает с каким контроллером запарились. и шлёт это в discovery. + контроллер в discovery смотрит какие дисплеи запарены и активны. и шлёт им обновления, а также дескрипторы (каталог) обновлений + при принятии обновленных данных обновляет seq_id, дублирует seq_id. + + + =============================================================== */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/net_topology.h b/BLE_EXAMPLE/src/main/cpp/lwip/net_topology.h new file mode 100644 index 000000000..6f08739d6 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/net_topology.h @@ -0,0 +1,53 @@ +#pragma once + +#include "lwip/api.h" + +extern uint8_t paired_controllers[256][6];// mac адреса +extern uint16_t paired_controllers_cnt;// mac адреса + +struct StrDBGData { + uint16_t cmd; + uint16_t seq; + uint16_t len; + uint8_t data[1472];// 32*46 + }; + +struct StrNetTopData { + uint32_t serial;// серийник устройства + uint8_t fw_ver[2];// firmware version (x.y) + uint8_t paired_mac[6];// mac последнего сопреженного с ним устройства (если это контроллер) + uint8_t name[16];// название устройства (16 chars max) + uint8_t ip_proto_enable:1;// включение ip протокола (dhcp, ip адрес и прочее). без ip работа только локально с дисплеем. + uint8_t flag_dhcp_enable:1;// ip автоматический или статический + uint8_t netmask;// 0-32: /0 - /32 + uint8_t ip[4];// ip address + uint8_t gw[4];// gateway + uint16_t dev_class;// 1 - controller, 2 - lcd + }; + +struct StrDevices_online { + uint32_t time;// время последней активности устройства + uint8_t status;// 0 - пустая ячейка, 1 - активное устройство в текущий момент + uint8_t mac[6];// mac устройства + uint32_t serial;// серийник устройства + uint8_t fw_ver[2];// firmware version (x.y) + uint8_t paired_mac[6];// mac последнего сопреженного с ним устройства (если это контроллер) + uint8_t name[16];// название устройства (16 chars max) + uint8_t ip_proto_enable:1;// включение ip протокола (dhcp, ip адрес и прочее). без ip работа только локально с дисплеем. + uint8_t flag_dhcp_enable:1;// ip автоматический или статический + uint8_t netmask;// 0-32: /0 - /32 + uint8_t ip[4];// ip address + uint8_t gw[4];// gateway + uint16_t dev_class;// 1 - controller, 2 - lcd + }; + +extern struct StrDevices_online Devices_online[256]; + +void topology_disconnect(uint8_t* mac); +void topology_new_dgram(struct StrNetTopData* yBuf, uint8_t* mac, int len); +void topo_periodic(); +void topology_broadcast_dgram(); +void topology_send_update(struct StrNetTopData* d, uint8_t* mac);// Отправить запрос на обновление конфигурации устройства +void topology_request_pair(uint8_t* mac); +void topology_request_unpair(uint8_t* mac); +void topology_init(); diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/netif/ethernet.c b/BLE_EXAMPLE/src/main/cpp/lwip/netif/ethernet.c new file mode 100644 index 000000000..3c9eb02db --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/netif/ethernet.c @@ -0,0 +1,321 @@ +/** + * @file + * Ethernet common functions + * + * @defgroup ethernet Ethernet + * @ingroup callbackstyle_api + */ + +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * Copyright (c) 2003-2004 Leon Woestenberg + * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + */ + +#include "lwip/opt.h" + +#if LWIP_ARP || LWIP_ETHERNET + +#include "netif/ethernet.h" +#include "lwip/def.h" +#include "lwip/stats.h" +#include "lwip/etharp.h" +#include "lwip/ip.h" +#include "lwip/snmp.h" + +#include + +#include "netif/ppp/ppp_opts.h" +#if PPPOE_SUPPORT +#include "netif/ppp/pppoe.h" +#endif /* PPPOE_SUPPORT */ + +#ifdef LWIP_HOOK_FILENAME +#include LWIP_HOOK_FILENAME +#endif + +const struct eth_addr ethbroadcast = {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}; +const struct eth_addr ethzero = {{0, 0, 0, 0, 0, 0}}; + +/** + * @ingroup lwip_nosys + * Process received ethernet frames. Using this function instead of directly + * calling ip_input and passing ARP frames through etharp in ethernetif_input, + * the ARP cache is protected from concurrent access.\n + * Don't call directly, pass to netif_add() and call netif->input(). + * + * @param p the received packet, p->payload pointing to the ethernet header + * @param netif the network interface on which the packet was received + * + * @see LWIP_HOOK_UNKNOWN_ETH_PROTOCOL + * @see ETHARP_SUPPORT_VLAN + * @see LWIP_HOOK_VLAN_CHECK + */ +err_t +ethernet_input(struct pbuf *p, struct netif *netif) +{ + struct eth_hdr *ethhdr; + u16_t type; +#if LWIP_ARP || ETHARP_SUPPORT_VLAN || LWIP_IPV6 + u16_t next_hdr_offset = SIZEOF_ETH_HDR; +#endif /* LWIP_ARP || ETHARP_SUPPORT_VLAN */ + + LWIP_ASSERT_CORE_LOCKED(); + + if (p->len <= SIZEOF_ETH_HDR) { + /* a packet with only an ethernet header (or less) is not valid for us */ + ETHARP_STATS_INC(etharp.proterr); + ETHARP_STATS_INC(etharp.drop); + MIB2_STATS_NETIF_INC(netif, ifinerrors); + goto free_and_return; + } + + if (p->if_idx == NETIF_NO_INDEX) { + p->if_idx = netif_get_index(netif); + } + + /* points to packet payload, which starts with an Ethernet header */ + ethhdr = (struct eth_hdr *)p->payload; + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, + ("ethernet_input: dest:%"X8_F":%"X8_F":%"X8_F":%"X8_F":%"X8_F":%"X8_F", src:%"X8_F":%"X8_F":%"X8_F":%"X8_F":%"X8_F":%"X8_F", type:%"X16_F"\n", + (unsigned char)ethhdr->dest.addr[0], (unsigned char)ethhdr->dest.addr[1], (unsigned char)ethhdr->dest.addr[2], + (unsigned char)ethhdr->dest.addr[3], (unsigned char)ethhdr->dest.addr[4], (unsigned char)ethhdr->dest.addr[5], + (unsigned char)ethhdr->src.addr[0], (unsigned char)ethhdr->src.addr[1], (unsigned char)ethhdr->src.addr[2], + (unsigned char)ethhdr->src.addr[3], (unsigned char)ethhdr->src.addr[4], (unsigned char)ethhdr->src.addr[5], + lwip_htons(ethhdr->type))); + + type = ethhdr->type; +#if ETHARP_SUPPORT_VLAN + if (type == PP_HTONS(ETHTYPE_VLAN)) { + struct eth_vlan_hdr *vlan = (struct eth_vlan_hdr *)(((char *)ethhdr) + SIZEOF_ETH_HDR); + next_hdr_offset = SIZEOF_ETH_HDR + SIZEOF_VLAN_HDR; + if (p->len <= SIZEOF_ETH_HDR + SIZEOF_VLAN_HDR) { + /* a packet with only an ethernet/vlan header (or less) is not valid for us */ + ETHARP_STATS_INC(etharp.proterr); + ETHARP_STATS_INC(etharp.drop); + MIB2_STATS_NETIF_INC(netif, ifinerrors); + goto free_and_return; + } +#if defined(LWIP_HOOK_VLAN_CHECK) || defined(ETHARP_VLAN_CHECK) || defined(ETHARP_VLAN_CHECK_FN) /* if not, allow all VLANs */ +#ifdef LWIP_HOOK_VLAN_CHECK + if (!LWIP_HOOK_VLAN_CHECK(netif, ethhdr, vlan)) { +#elif defined(ETHARP_VLAN_CHECK_FN) + if (!ETHARP_VLAN_CHECK_FN(ethhdr, vlan)) { +#elif defined(ETHARP_VLAN_CHECK) + if (VLAN_ID(vlan) != ETHARP_VLAN_CHECK) { +#endif + /* silently ignore this packet: not for our VLAN */ + pbuf_free(p); + return ERR_OK; + } +#endif /* defined(LWIP_HOOK_VLAN_CHECK) || defined(ETHARP_VLAN_CHECK) || defined(ETHARP_VLAN_CHECK_FN) */ + type = vlan->tpid; + } +#endif /* ETHARP_SUPPORT_VLAN */ + +#if LWIP_ARP_FILTER_NETIF + netif = LWIP_ARP_FILTER_NETIF_FN(p, netif, lwip_htons(type)); +#endif /* LWIP_ARP_FILTER_NETIF*/ + + if (ethhdr->dest.addr[0] & 1) { + /* this might be a multicast or broadcast packet */ + if (ethhdr->dest.addr[0] == LL_IP4_MULTICAST_ADDR_0) { +#if LWIP_IPV4 + if ((ethhdr->dest.addr[1] == LL_IP4_MULTICAST_ADDR_1) && + (ethhdr->dest.addr[2] == LL_IP4_MULTICAST_ADDR_2)) { + /* mark the pbuf as link-layer multicast */ + p->flags |= PBUF_FLAG_LLMCAST; + } +#endif /* LWIP_IPV4 */ + } +#if LWIP_IPV6 + else if ((ethhdr->dest.addr[0] == LL_IP6_MULTICAST_ADDR_0) && + (ethhdr->dest.addr[1] == LL_IP6_MULTICAST_ADDR_1)) { + /* mark the pbuf as link-layer multicast */ + p->flags |= PBUF_FLAG_LLMCAST; + } +#endif /* LWIP_IPV6 */ + else if (eth_addr_cmp(ðhdr->dest, ðbroadcast)) { + /* mark the pbuf as link-layer broadcast */ + p->flags |= PBUF_FLAG_LLBCAST; + } + } + + switch (type) { +#if LWIP_IPV4 && LWIP_ARP + /* IP packet? */ + case PP_HTONS(ETHTYPE_IP): + if (!(netif->flags & NETIF_FLAG_ETHARP)) { + goto free_and_return; + } + /* skip Ethernet header (min. size checked above) */ + if (pbuf_remove_header(p, next_hdr_offset)) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, + ("ethernet_input: IPv4 packet dropped, too short (%"U16_F"/%"U16_F")\n", + p->tot_len, next_hdr_offset)); + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("Can't move over header in packet")); + goto free_and_return; + } else { + /* pass to IP layer */ + ip4_input(p, netif); + } + break; + + case PP_HTONS(ETHTYPE_ARP): + if (!(netif->flags & NETIF_FLAG_ETHARP)) { + goto free_and_return; + } + /* skip Ethernet header (min. size checked above) */ + if (pbuf_remove_header(p, next_hdr_offset)) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, + ("ethernet_input: ARP response packet dropped, too short (%"U16_F"/%"U16_F")\n", + p->tot_len, next_hdr_offset)); + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("Can't move over header in packet")); + ETHARP_STATS_INC(etharp.lenerr); + ETHARP_STATS_INC(etharp.drop); + goto free_and_return; + } else { + /* pass p to ARP module */ + etharp_input(p, netif); + } + break; +#endif /* LWIP_IPV4 && LWIP_ARP */ +#if PPPOE_SUPPORT + case PP_HTONS(ETHTYPE_PPPOEDISC): /* PPP Over Ethernet Discovery Stage */ + pppoe_disc_input(netif, p); + break; + + case PP_HTONS(ETHTYPE_PPPOE): /* PPP Over Ethernet Session Stage */ + pppoe_data_input(netif, p); + break; +#endif /* PPPOE_SUPPORT */ + +#if LWIP_IPV6 + case PP_HTONS(ETHTYPE_IPV6): /* IPv6 */ + /* skip Ethernet header */ + if ((p->len < next_hdr_offset) || pbuf_remove_header(p, next_hdr_offset)) { + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, + ("ethernet_input: IPv6 packet dropped, too short (%"U16_F"/%"U16_F")\n", + p->tot_len, next_hdr_offset)); + goto free_and_return; + } else { + /* pass to IPv6 layer */ + ip6_input(p, netif); + } + break; +#endif /* LWIP_IPV6 */ + + default: +#ifdef LWIP_HOOK_UNKNOWN_ETH_PROTOCOL + if (LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(p, netif) == ERR_OK) { + break; + } +#endif + ETHARP_STATS_INC(etharp.proterr); + ETHARP_STATS_INC(etharp.drop); + MIB2_STATS_NETIF_INC(netif, ifinunknownprotos); + goto free_and_return; + } + + /* This means the pbuf is freed or consumed, + so the caller doesn't have to free it again */ + return ERR_OK; + +free_and_return: + pbuf_free(p); + return ERR_OK; +} + +/** + * @ingroup ethernet + * Send an ethernet packet on the network using netif->linkoutput(). + * The ethernet header is filled in before sending. + * + * @see LWIP_HOOK_VLAN_SET + * + * @param netif the lwIP network interface on which to send the packet + * @param p the packet to send. pbuf layer must be @ref PBUF_LINK. + * @param src the source MAC address to be copied into the ethernet header + * @param dst the destination MAC address to be copied into the ethernet header + * @param eth_type ethernet type (@ref lwip_ieee_eth_type) + * @return ERR_OK if the packet was sent, any other err_t on failure + */ +err_t +ethernet_output(struct netif * netif, struct pbuf * p, + const struct eth_addr * src, const struct eth_addr * dst, + u16_t eth_type) { + struct eth_hdr *ethhdr; + u16_t eth_type_be = lwip_htons(eth_type); + +#if ETHARP_SUPPORT_VLAN && defined(LWIP_HOOK_VLAN_SET) + s32_t vlan_prio_vid = LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type); + if (vlan_prio_vid >= 0) { + struct eth_vlan_hdr *vlanhdr; + + LWIP_ASSERT("prio_vid must be <= 0xFFFF", vlan_prio_vid <= 0xFFFF); + + if (pbuf_add_header(p, SIZEOF_ETH_HDR + SIZEOF_VLAN_HDR) != 0) { + goto pbuf_header_failed; + } + vlanhdr = (struct eth_vlan_hdr *)(((u8_t *)p->payload) + SIZEOF_ETH_HDR); + vlanhdr->tpid = eth_type_be; + vlanhdr->prio_vid = lwip_htons((u16_t)vlan_prio_vid); + + eth_type_be = PP_HTONS(ETHTYPE_VLAN); + } else +#endif /* ETHARP_SUPPORT_VLAN && defined(LWIP_HOOK_VLAN_SET) */ + { + if (pbuf_add_header(p, SIZEOF_ETH_HDR) != 0) { + goto pbuf_header_failed; + } + } + + LWIP_ASSERT_CORE_LOCKED(); + + ethhdr = (struct eth_hdr *)p->payload; + ethhdr->type = eth_type_be; + SMEMCPY(ðhdr->dest, dst, ETH_HWADDR_LEN); + SMEMCPY(ðhdr->src, src, ETH_HWADDR_LEN); + + LWIP_ASSERT("netif->hwaddr_len must be 6 for ethernet_output!", + (netif->hwaddr_len == ETH_HWADDR_LEN)); + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, + ("ethernet_output: sending packet %p\n", (void *)p)); + + /* send the packet */ + return netif->linkoutput(netif, p); + +pbuf_header_failed: + LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, + ("ethernet_output: could not allocate room for header.\n")); + LINK_STATS_INC(link.lenerr); + return ERR_BUF; +} + +#endif /* LWIP_ARP || LWIP_ETHERNET */ diff --git a/BLE_EXAMPLE/src/main/cpp/lwip/tcpip.c b/BLE_EXAMPLE/src/main/cpp/lwip/tcpip.c new file mode 100644 index 000000000..1c54b18b4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/lwip/tcpip.c @@ -0,0 +1,673 @@ +/** + * @file + * Sequential API Main thread module + * + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ + +#include "lwip/opt.h" + +#if !NO_SYS /* don't build if not configured for use in lwipopts.h */ + +#include "lwip/priv/tcpip_priv.h" +#include "lwip/sys.h" +#include "lwip/memp.h" +#include "lwip/mem.h" +#include "lwip/init.h" +#include "lwip/ip.h" +#include "lwip/pbuf.h" +#include "lwip/etharp.h" +#include "netif/ethernet.h" + +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" + + +#define TCPIP_MSG_VAR_REF(name) API_VAR_REF(name) +#define TCPIP_MSG_VAR_DECLARE(name) API_VAR_DECLARE(struct tcpip_msg, name) +#define TCPIP_MSG_VAR_ALLOC(name) API_VAR_ALLOC(struct tcpip_msg, MEMP_TCPIP_MSG_API, name, ERR_MEM) +#define TCPIP_MSG_VAR_FREE(name) API_VAR_FREE(MEMP_TCPIP_MSG_API, name) + +/* global variables */ +static tcpip_init_done_fn tcpip_init_done; +static void *tcpip_init_done_arg; +static sys_mbox_t tcpip_mbox; + +#if LWIP_TCPIP_CORE_LOCKING +/** The global semaphore to lock the stack. */ +sys_mutex_t lock_tcpip_core; +#endif /* LWIP_TCPIP_CORE_LOCKING */ + +static void tcpip_thread_handle_msg(struct tcpip_msg *msg); + +#if !LWIP_TIMERS +/* wait for a message with timers disabled (e.g. pass a timer-check trigger into tcpip_thread) */ +#define TCPIP_MBOX_FETCH(mbox, msg) sys_mbox_fetch(mbox, msg) +#else /* !LWIP_TIMERS */ +/* wait for a message, timeouts are processed while waiting */ +#define TCPIP_MBOX_FETCH(mbox, msg) tcpip_timeouts_mbox_fetch(mbox, msg) +/** + * Wait (forever) for a message to arrive in an mbox. + * While waiting, timeouts are processed. + * + * @param mbox the mbox to fetch the message from + * @param msg the place to store the message + */ +static void +tcpip_timeouts_mbox_fetch(sys_mbox_t *mbox, void **msg) +{ + u32_t sleeptime, res; + +again: + LWIP_ASSERT_CORE_LOCKED(); + + sleeptime = sys_timeouts_sleeptime(); + if (sleeptime == SYS_TIMEOUTS_SLEEPTIME_INFINITE) { + UNLOCK_TCPIP_CORE(); + sys_arch_mbox_fetch(mbox, msg, 0); + LOCK_TCPIP_CORE(); + return; + } else if (sleeptime == 0) { + sys_check_timeouts(); + /* We try again to fetch a message from the mbox. */ + goto again; + } + + UNLOCK_TCPIP_CORE(); + res = sys_arch_mbox_fetch(mbox, msg, sleeptime); + LOCK_TCPIP_CORE(); + if (res == SYS_ARCH_TIMEOUT) { + /* If a SYS_ARCH_TIMEOUT value is returned, a timeout occurred + before a message could be fetched. */ + sys_check_timeouts(); + /* We try again to fetch a message from the mbox. */ + goto again; + } +} +#endif /* !LWIP_TIMERS */ + +/** + * The main lwIP thread. This thread has exclusive access to lwIP core functions + * (unless access to them is not locked). Other threads communicate with this + * thread using message boxes. + * + * It also starts all the timers to make sure they are running in the right + * thread context. + * + * @param arg unused argument + */ + +//SemaphoreHandle_t ipSemaphore = NULL; + +static void +tcpip_thread(void *arg) +{ + struct tcpip_msg *msg; + LWIP_UNUSED_ARG(arg); + +// ipSemaphore = xSemaphoreCreateMutex(); +// xSemaphoreGive( ipSemaphore ); + LWIP_MARK_TCPIP_THREAD(); + + LOCK_TCPIP_CORE(); + if (tcpip_init_done != NULL) { + tcpip_init_done(tcpip_init_done_arg); + } + + while (1) { /* MAIN Loop */ + LWIP_TCPIP_THREAD_ALIVE(); + /* wait for a message, timeouts are processed while waiting */ + TCPIP_MBOX_FETCH(&tcpip_mbox, (void **)&msg); + if (msg == NULL) { + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: invalid message: NULL\n")); + LWIP_ASSERT("tcpip_thread: invalid message", 0); + continue; + } +// if( xSemaphoreTake( ipSemaphore, ( TickType_t ) 0 ) ) { + tcpip_thread_handle_msg(msg); +// xSemaphoreGive( ipSemaphore ); +// } + } +} + +/* Handle a single tcpip_msg + * This is in its own function for access by tests only. + */ +static void +tcpip_thread_handle_msg(struct tcpip_msg *msg) +{ + switch (msg->type) { +#if !LWIP_TCPIP_CORE_LOCKING + case TCPIP_MSG_API: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg)); + msg->msg.api_msg.function(msg->msg.api_msg.msg); + break; + case TCPIP_MSG_API_CALL: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API CALL message %p\n", (void *)msg)); + msg->msg.api_call.arg->err = msg->msg.api_call.function(msg->msg.api_call.arg); + sys_sem_signal(msg->msg.api_call.sem); + break; +#endif /* !LWIP_TCPIP_CORE_LOCKING */ + +#if !LWIP_TCPIP_CORE_LOCKING_INPUT + case TCPIP_MSG_INPKT: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg)); + if (msg->msg.inp.input_fn(msg->msg.inp.p, msg->msg.inp.netif) != ERR_OK) { + pbuf_free(msg->msg.inp.p); + } + memp_free(MEMP_TCPIP_MSG_INPKT, msg); + break; +#endif /* !LWIP_TCPIP_CORE_LOCKING_INPUT */ + +#if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS + case TCPIP_MSG_TIMEOUT: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: TIMEOUT %p\n", (void *)msg)); + sys_timeout(msg->msg.tmo.msecs, msg->msg.tmo.h, msg->msg.tmo.arg); + memp_free(MEMP_TCPIP_MSG_API, msg); + break; + case TCPIP_MSG_UNTIMEOUT: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: UNTIMEOUT %p\n", (void *)msg)); + sys_untimeout(msg->msg.tmo.h, msg->msg.tmo.arg); + memp_free(MEMP_TCPIP_MSG_API, msg); + break; +#endif /* LWIP_TCPIP_TIMEOUT && LWIP_TIMERS */ + + case TCPIP_MSG_CALLBACK: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg)); + msg->msg.cb.function(msg->msg.cb.ctx); + memp_free(MEMP_TCPIP_MSG_API, msg); + break; + + case TCPIP_MSG_CALLBACK_STATIC: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK_STATIC %p\n", (void *)msg)); + msg->msg.cb.function(msg->msg.cb.ctx); + break; + + default: + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: invalid message: %d\n", msg->type)); + LWIP_ASSERT("tcpip_thread: invalid message", 0); + break; + } +} + +#ifdef TCPIP_THREAD_TEST +/** Work on queued items in single-threaded test mode */ +int +tcpip_thread_poll_one(void) +{ + int ret = 0; + struct tcpip_msg *msg; + + if (sys_arch_mbox_tryfetch(&tcpip_mbox, (void **)&msg) != SYS_ARCH_TIMEOUT) { + LOCK_TCPIP_CORE(); + if (msg != NULL) { + tcpip_thread_handle_msg(msg); + ret = 1; + } + UNLOCK_TCPIP_CORE(); + } + return ret; +} +#endif + +/** + * Pass a received packet to tcpip_thread for input processing + * + * @param p the received packet + * @param inp the network interface on which the packet was received + * @param input_fn input function to call + */ +err_t +tcpip_inpkt(struct pbuf *p, struct netif *inp, netif_input_fn input_fn) +{ +#if LWIP_TCPIP_CORE_LOCKING_INPUT + err_t ret; + LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_inpkt: PACKET %p/%p\n", (void *)p, (void *)inp)); + LOCK_TCPIP_CORE(); + ret = input_fn(p, inp); + UNLOCK_TCPIP_CORE(); + return ret; +#else /* LWIP_TCPIP_CORE_LOCKING_INPUT */ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_INPKT); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_INPKT; + msg->msg.inp.p = p; + msg->msg.inp.netif = inp; + msg->msg.inp.input_fn = input_fn; + if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) { + memp_free(MEMP_TCPIP_MSG_INPKT, msg); + return ERR_MEM; + } + return ERR_OK; +#endif /* LWIP_TCPIP_CORE_LOCKING_INPUT */ +} + +/** + * @ingroup lwip_os + * Pass a received packet to tcpip_thread for input processing with + * ethernet_input or ip_input. Don't call directly, pass to netif_add() + * and call netif->input(). + * + * @param p the received packet, p->payload pointing to the Ethernet header or + * to an IP header (if inp doesn't have NETIF_FLAG_ETHARP or + * NETIF_FLAG_ETHERNET flags) + * @param inp the network interface on which the packet was received + */ +err_t +tcpip_input(struct pbuf *p, struct netif *inp) +{ +#if LWIP_ETHERNET + if (inp->flags & (NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET)) { + return tcpip_inpkt(p, inp, ethernet_input); + } else +#endif /* LWIP_ETHERNET */ + return tcpip_inpkt(p, inp, ip_input); +} + +/** + * @ingroup lwip_os + * Call a specific function in the thread context of + * tcpip_thread for easy access synchronization. + * A function called in that way may access lwIP core code + * without fearing concurrent access. + * Blocks until the request is posted. + * Must not be called from interrupt context! + * + * @param function the function to call + * @param ctx parameter passed to f + * @return ERR_OK if the function was called, another err_t if not + * + * @see tcpip_try_callback + */ +err_t +tcpip_callback(tcpip_callback_fn function, void *ctx) +{ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_CALLBACK; + msg->msg.cb.function = function; + msg->msg.cb.ctx = ctx; + + sys_mbox_post(&tcpip_mbox, msg); + return ERR_OK; +} + +/** + * @ingroup lwip_os + * Call a specific function in the thread context of + * tcpip_thread for easy access synchronization. + * A function called in that way may access lwIP core code + * without fearing concurrent access. + * Does NOT block when the request cannot be posted because the + * tcpip_mbox is full, but returns ERR_MEM instead. + * Can be called from interrupt context. + * + * @param function the function to call + * @param ctx parameter passed to f + * @return ERR_OK if the function was called, another err_t if not + * + * @see tcpip_callback + */ +err_t +tcpip_try_callback(tcpip_callback_fn function, void *ctx) +{ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_CALLBACK; + msg->msg.cb.function = function; + msg->msg.cb.ctx = ctx; + + if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) { + memp_free(MEMP_TCPIP_MSG_API, msg); + return ERR_MEM; + } + return ERR_OK; +} + +#if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS +/** + * call sys_timeout in tcpip_thread + * + * @param msecs time in milliseconds for timeout + * @param h function to be called on timeout + * @param arg argument to pass to timeout function h + * @return ERR_MEM on memory error, ERR_OK otherwise + */ +err_t +tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg) +{ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_TIMEOUT; + msg->msg.tmo.msecs = msecs; + msg->msg.tmo.h = h; + msg->msg.tmo.arg = arg; + sys_mbox_post(&tcpip_mbox, msg); + return ERR_OK; +} + +/** + * call sys_untimeout in tcpip_thread + * + * @param h function to be called on timeout + * @param arg argument to pass to timeout function h + * @return ERR_MEM on memory error, ERR_OK otherwise + */ +err_t +tcpip_untimeout(sys_timeout_handler h, void *arg) +{ + struct tcpip_msg *msg; + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return ERR_MEM; + } + + msg->type = TCPIP_MSG_UNTIMEOUT; + msg->msg.tmo.h = h; + msg->msg.tmo.arg = arg; + sys_mbox_post(&tcpip_mbox, msg); + return ERR_OK; +} +#endif /* LWIP_TCPIP_TIMEOUT && LWIP_TIMERS */ + + +/** + * Sends a message to TCPIP thread to call a function. Caller thread blocks on + * on a provided semaphore, which ist NOT automatically signalled by TCPIP thread, + * this has to be done by the user. + * It is recommended to use LWIP_TCPIP_CORE_LOCKING since this is the way + * with least runtime overhead. + * + * @param fn function to be called from TCPIP thread + * @param apimsg argument to API function + * @param sem semaphore to wait on + * @return ERR_OK if the function was called, another err_t if not + */ +err_t +tcpip_send_msg_wait_sem(tcpip_callback_fn fn, void *apimsg, sys_sem_t *sem) +{ +#if LWIP_TCPIP_CORE_LOCKING + LWIP_UNUSED_ARG(sem); + LOCK_TCPIP_CORE(); + fn(apimsg); + UNLOCK_TCPIP_CORE(); + return ERR_OK; +#else /* LWIP_TCPIP_CORE_LOCKING */ + TCPIP_MSG_VAR_DECLARE(msg); + + LWIP_ASSERT("semaphore not initialized", sys_sem_valid(sem)); + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + TCPIP_MSG_VAR_ALLOC(msg); + TCPIP_MSG_VAR_REF(msg).type = TCPIP_MSG_API; + TCPIP_MSG_VAR_REF(msg).msg.api_msg.function = fn; + TCPIP_MSG_VAR_REF(msg).msg.api_msg.msg = apimsg; + sys_mbox_post(&tcpip_mbox, &TCPIP_MSG_VAR_REF(msg)); + sys_arch_sem_wait(sem, 0); + TCPIP_MSG_VAR_FREE(msg); + return ERR_OK; +#endif /* LWIP_TCPIP_CORE_LOCKING */ +} + +/** + * Synchronously calls function in TCPIP thread and waits for its completion. + * It is recommended to use LWIP_TCPIP_CORE_LOCKING (preferred) or + * LWIP_NETCONN_SEM_PER_THREAD. + * If not, a semaphore is created and destroyed on every call which is usually + * an expensive/slow operation. + * @param fn Function to call + * @param call Call parameters + * @return Return value from tcpip_api_call_fn + */ +err_t +tcpip_api_call(tcpip_api_call_fn fn, struct tcpip_api_call_data *call) +{ +#if LWIP_TCPIP_CORE_LOCKING + err_t err; + LOCK_TCPIP_CORE(); + err = fn(call); + UNLOCK_TCPIP_CORE(); + return err; +#else /* LWIP_TCPIP_CORE_LOCKING */ + TCPIP_MSG_VAR_DECLARE(msg); + +#if !LWIP_NETCONN_SEM_PER_THREAD + err_t err = sys_sem_new(&call->sem, 0); + if (err != ERR_OK) { + return err; + } +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + + TCPIP_MSG_VAR_ALLOC(msg); + TCPIP_MSG_VAR_REF(msg).type = TCPIP_MSG_API_CALL; + TCPIP_MSG_VAR_REF(msg).msg.api_call.arg = call; + TCPIP_MSG_VAR_REF(msg).msg.api_call.function = fn; +#if LWIP_NETCONN_SEM_PER_THREAD + TCPIP_MSG_VAR_REF(msg).msg.api_call.sem = LWIP_NETCONN_THREAD_SEM_GET(); +#else /* LWIP_NETCONN_SEM_PER_THREAD */ + TCPIP_MSG_VAR_REF(msg).msg.api_call.sem = &call->sem; +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + sys_mbox_post(&tcpip_mbox, &TCPIP_MSG_VAR_REF(msg)); + sys_arch_sem_wait(TCPIP_MSG_VAR_REF(msg).msg.api_call.sem, 0); + TCPIP_MSG_VAR_FREE(msg); + +#if !LWIP_NETCONN_SEM_PER_THREAD + sys_sem_free(&call->sem); +#endif /* LWIP_NETCONN_SEM_PER_THREAD */ + + return call->err; +#endif /* LWIP_TCPIP_CORE_LOCKING */ +} + +/** + * @ingroup lwip_os + * Allocate a structure for a static callback message and initialize it. + * The message has a special type such that lwIP never frees it. + * This is intended to be used to send "static" messages from interrupt context, + * e.g. the message is allocated once and posted several times from an IRQ + * using tcpip_callbackmsg_trycallback(). + * Example usage: Trigger execution of an ethernet IRQ DPC routine in lwIP thread context. + * + * @param function the function to call + * @param ctx parameter passed to function + * @return a struct pointer to pass to tcpip_callbackmsg_trycallback(). + * + * @see tcpip_callbackmsg_trycallback() + * @see tcpip_callbackmsg_delete() + */ +struct tcpip_callback_msg * +tcpip_callbackmsg_new(tcpip_callback_fn function, void *ctx) +{ + struct tcpip_msg *msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API); + if (msg == NULL) { + return NULL; + } + msg->type = TCPIP_MSG_CALLBACK_STATIC; + msg->msg.cb.function = function; + msg->msg.cb.ctx = ctx; + return (struct tcpip_callback_msg *)msg; +} + +/** + * @ingroup lwip_os + * Free a callback message allocated by tcpip_callbackmsg_new(). + * + * @param msg the message to free + * + * @see tcpip_callbackmsg_new() + */ +void +tcpip_callbackmsg_delete(struct tcpip_callback_msg *msg) +{ + memp_free(MEMP_TCPIP_MSG_API, msg); +} + +/** + * @ingroup lwip_os + * Try to post a callback-message to the tcpip_thread tcpip_mbox. + * + * @param msg pointer to the message to post + * @return sys_mbox_trypost() return code + * + * @see tcpip_callbackmsg_new() + */ +err_t +tcpip_callbackmsg_trycallback(struct tcpip_callback_msg *msg) +{ + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + return sys_mbox_trypost(&tcpip_mbox, msg); +} + +/** + * @ingroup lwip_os + * Try to post a callback-message to the tcpip_thread mbox. + * Same as @ref tcpip_callbackmsg_trycallback but calls sys_mbox_trypost_fromisr(), + * mainly to help FreeRTOS, where calls differ between task level and ISR level. + * + * @param msg pointer to the message to post + * @return sys_mbox_trypost_fromisr() return code (without change, so this + * knowledge can be used to e.g. propagate "bool needs_scheduling") + * + * @see tcpip_callbackmsg_new() + */ +err_t +tcpip_callbackmsg_trycallback_fromisr(struct tcpip_callback_msg *msg) +{ + LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(tcpip_mbox)); + return sys_mbox_trypost_fromisr(&tcpip_mbox, msg); +} + +/** + * @ingroup lwip_os + * Initialize this module: + * - initialize all sub modules + * - start the tcpip_thread + * + * @param initfunc a function to call when tcpip_thread is running and finished initializing + * @param arg argument to pass to initfunc + */ +void +tcpip_init(tcpip_init_done_fn initfunc, void *arg) +{ +#if LWIP_TCPIP_CORE_LOCKING + if (sys_mutex_new(&lock_tcpip_core) != ERR_OK) { + LWIP_ASSERT("failed to create lock_tcpip_core", 0); + } +#endif /* LWIP_TCPIP_CORE_LOCKING */ + LOCK_TCPIP_CORE(); + lwip_init(); + UNLOCK_TCPIP_CORE(); + + tcpip_init_done = initfunc; + tcpip_init_done_arg = arg; + if (sys_mbox_new(&tcpip_mbox, TCPIP_MBOX_SIZE) != ERR_OK) { + LWIP_ASSERT("failed to create tcpip_thread mbox", 0); + } + + sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO); +} + +/** + * Simple callback function used with tcpip_callback to free a pbuf + * (pbuf_free has a wrong signature for tcpip_callback) + * + * @param p The pbuf (chain) to be dereferenced. + */ +static void +pbuf_free_int(void *p) +{ + struct pbuf *q = (struct pbuf *)p; + pbuf_free(q); +} + +/** + * A simple wrapper function that allows you to free a pbuf from interrupt context. + * + * @param p The pbuf (chain) to be dereferenced. + * @return ERR_OK if callback could be enqueued, an err_t if not + */ +err_t +pbuf_free_callback(struct pbuf *p) +{ + return tcpip_try_callback(pbuf_free_int, p); +} + +/** + * A simple wrapper function that allows you to free heap memory from + * interrupt context. + * + * @param m the heap memory to free + * @return ERR_OK if callback could be enqueued, an err_t if not + */ +err_t +mem_free_callback(void *m) +{ + return tcpip_try_callback(mem_free, m); +} + +#endif /* !NO_SYS */ diff --git a/BLE_EXAMPLE/src/main/cpp/settings.c b/BLE_EXAMPLE/src/main/cpp/settings.c new file mode 100644 index 000000000..e12c09b01 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/settings.c @@ -0,0 +1,47 @@ +#include +#include +#include "settings.h" + +struct SETTINGS settings; +const struct SETTINGS settings_default = { + 0,0,0,// header , checksum, seq_id + 0,0,//flags + + 1024, //uint16_t thr_offset; + 1024, //uint16_t brk_offset; + 2048, //uint16_t thr_scale; + 2048, //uint16_t brk_scale; + { // handles linear [32] + {0,128,256,384,512,640,768,896,1024,1152,1280,1408,1536,1664,1792,1920,2048,2175,2303,2431,2559,2687,2815,2943,3071,3199,3327,3455,3583,3711,3839,3967,4095}, + {0,128,256,384,512,640,768,896,1024,1152,1280,1408,1536,1664,1792,1920,2048,2175,2303,2431,2559,2687,2815,2943,3071,3199,3327,3455,3583,3711,3839,3967,4095}, + {0,128,256,384,512,640,768,896,1024,1152,1280,1408,1536,1664,1792,1920,2048,2175,2303,2431,2559,2687,2815,2943,3071,3199,3327,3455,3583,3711,3839,3967,4095}, + }, + { // handles curve func [32] + {0,128,256,384,512,640,768,896,1024,1152,1280,1408,1536,1664,1792,1920,2048,2175,2303,2431,2559,2687,2815,2943,3071,3199,3327,3455,3583,3711,3839,3967,4095}, + {0,128,256,384,512,640,768,896,1024,1152,1280,1408,1536,1664,1792,1920,2048,2175,2303,2431,2559,2687,2815,2943,3071,3199,3327,3455,3583,3711,3839,3967,4095}, + {0,128,256,384,512,640,768,896,1024,1152,1280,1408,1536,1664,1792,1920,2048,2175,2303,2431,2559,2687,2815,2943,3071,3199,3327,3455,3583,3711,3839,3967,4095}, + }, + 0, //uint8_t thr_progression; + 0, //uint8_t brk_progression; + + "Display",//uint8_t netbios_name[24]; + {192,168,77,2},//uint8_t ipv4[4];// ipv4 + {192,168,77,1},//uint8_t gateway[4];// ipv4 + {0},//uint8_t ipv6[16];// ipv6 + {0},//uint8_t dbg_mac[6];// + {0},//uint8_t mac[6];// + 2,//uint8_t ip_flags;// 1: IP enable, 2: DHCP enable + 24,//uint8_t netmask; + 0,//uint8_t serial; + {// struct DS + 3, + 0, + 0, + 1, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767}, + {32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767}, + } + + }; diff --git a/BLE_EXAMPLE/src/main/cpp/settings.h b/BLE_EXAMPLE/src/main/cpp/settings.h new file mode 100644 index 000000000..1778b79c1 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/settings.h @@ -0,0 +1,29 @@ +#pragma once + +struct SETTINGS { + uint32_t header; + uint32_t checksum; + uint32_t sequence_id; + uint32_t flags1; + uint32_t flags2; + + uint16_t thr_offset; + uint16_t brk_offset; + uint16_t thr_scale; + uint16_t brk_scale; + uint16_t handle_lin[3][33]; + uint16_t handle_func[3][33]; + uint8_t thr_progression; + uint8_t brk_progression; + + uint8_t netbios_name[24]; + uint8_t ipv4[4];// ipv4 + uint8_t gateway[4];// ipv4 + uint8_t ipv6[16];// ipv6 + uint8_t paired_mac_addr[6];// send debug info from this mac + uint8_t mac_addr[6];// own mac address + uint8_t ip_flags;// 1: IP enable, 2: DHCP enable + uint8_t netmask; + uint32_t serial; + }; +extern struct SETTINGS settings; diff --git a/BLE_EXAMPLE/src/main/cpp/xlib.c b/BLE_EXAMPLE/src/main/cpp/xlib.c new file mode 100644 index 000000000..49efaba83 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/xlib.c @@ -0,0 +1,48 @@ +#include +#include +#include +#include +#include +#include "xlib.h" + +int dbg[11]; + +uint32_t xTaskGetTickCount() { + struct timeval tv; + gettimeofday(&tv,NULL); + return tv.tv_sec*1000L + tv.tv_usec/1000; + } + +void TNotifyCreate (struct NHandle_t* task) { + atomic_init(&task->val, 0); + sem_init(&task->sem,0,0); + } + +void TNotifyAdd (struct NHandle_t* task , uint32_t ulValue) { + atomic_fetch_or(&task->val, ulValue); + sem_post(&task->sem); + } + +uint32_t TNotifyWait(struct NHandle_t* task) { + sem_wait(&task->sem); + return atomic_exchange(&task->val, 0); + } + +void TaskCreate (void (*callback_fn)(void* arg), pthread_t *pxCreatedTask) { + pthread_attr_t ta; + pthread_attr_init(&ta); +// struct sched_param sp={.sched_priority=sched_get_priority_max(SCHED_FIFO)}; +// pthread_attr_setschedparam(&ta, &sp); +// pthread_attr_setschedpolicy(&ta, SCHED_FIFO);// SCHED_FIFO, SCHED_RR, SCHED_OTHER + int tid1=pthread_create(pxCreatedTask, &ta, callback_fn, NULL); + } + +int print_log( const char * format, ... ) { + uint8_t buf[5000]; + va_list args; + va_start (args, format); + vsprintf (buf,format, args); + __android_log_write(ANDROID_LOG_ERROR, "C", buf); + va_end (args); + return 0; +} diff --git a/BLE_EXAMPLE/src/main/cpp/xlib.h b/BLE_EXAMPLE/src/main/cpp/xlib.h new file mode 100644 index 000000000..0e97f65f4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/cpp/xlib.h @@ -0,0 +1,20 @@ +#pragma once + +#define TaskHandle_t pthread_t +#include +#include + +extern int dbg[]; + +struct NHandle_t { + atomic_int val; + sem_t sem; + }; + +uint32_t xTaskGetTickCount(); +void TNotifyCreate(struct NHandle_t* tn); +void TNotifyAdd (struct NHandle_t* tn , uint32_t ulValue); +uint32_t TNotifyWait(struct NHandle_t* tn); + +void TaskCreate (void (*TaskFn)(void* arg), pthread_t *pThr); +int print_log( const char * format, ... ); diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/MainActivity.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/MainActivity.kt new file mode 100644 index 000000000..d73e7b4f8 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/MainActivity.kt @@ -0,0 +1,990 @@ +package ua.cn.stu.navigation + +import android.Manifest +import android.annotation.SuppressLint +import android.app.AlertDialog +import android.app.Dialog +import android.bluetooth.* +import android.content.* +import android.content.pm.PackageManager +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.location.LocationManager +import android.os.* +import android.view.Menu +import android.view.MenuItem +import android.view.View +import android.widget.ExpandableListView +import android.widget.SimpleExpandableListAdapter +import android.widget.Toast +import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import androidx.core.graphics.drawable.DrawableCompat +import androidx.core.os.bundleOf +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentTransaction +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.MutableLiveData +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import kotlinx.android.synthetic.main.activity_main.* +import ua.cn.stu.navigation.ble.BluetoothLeService +import ua.cn.stu.navigation.ble.SampleGattAttributes.* +import ua.cn.stu.navigation.connection.ScanItem +import ua.cn.stu.navigation.contract.* +import ua.cn.stu.navigation.contract.ConstantManager.Companion.MY_PERMISSIONS_REQUEST_LOCATION +import ua.cn.stu.navigation.contract.ConstantManager.Companion.RECONNECT_BLE_PERIOD +import ua.cn.stu.navigation.contract.ConstantManager.Companion.REQUEST_ENABLE_BT +import ua.cn.stu.navigation.databinding.ActivityMainBinding +import ua.cn.stu.navigation.fragments.* +import ua.cn.stu.navigation.persistence.preference.PreferenceKeys +import ua.cn.stu.navigation.persistence.preference.PreferenceKeys.CONNECTED_DEVICE +import ua.cn.stu.navigation.persistence.preference.PreferenceKeys.CONNECTED_DEVICE_ADDRESS +import ua.cn.stu.navigation.persistence.preference.PreferenceKeys.LAST_CONNECTED_DEVICE_ADDRESS +import ua.cn.stu.navigation.rx.RxUpdateMainEvent +import kotlin.properties.Delegates + + +@Suppress("DEPRECATION") +class MainActivity : AppCompatActivity(), Navigator { + + private lateinit var binding: ActivityMainBinding + private var mSettings: SharedPreferences? = null + private var countActivatedTitleFragment: Int = 0 + + private var mBluetoothAdapter: BluetoothAdapter? = null +// private var mBluetoothLeService: BluetoothLeService? = null + private var mGattCharacteristics = ArrayList>() + private var mGattServicesList: ExpandableListView? = null +// private var mCharacteristic: BluetoothGattCharacteristic? = null + private var mNotifyCharacteristic: BluetoothGattCharacteristic? = null + private var globalSemaphore = true // флаг, который преостанавливает отправку новой + private val queue = ua.cn.stu.navigation.services.BlockingQueue() + private var dataSortSemaphore = "" // строчка, показывающая с каким регистром мы сейчас работаем, чтобы однозначно понять кому пердназначаются принятые данные + + private var readRegisterPointer: ByteArray? = null + private var mConnected = false + private var endFlag = false + var percentSynchronize = 0 + private var mScanning = false + private val listName = "NAME" + private val listUUID = "UUID" + private var actionState = WRITE + + + private val mServiceConnection: ServiceConnection = object : ServiceConnection { + override fun onServiceConnected(componentName: ComponentName, service: IBinder) { +// super.onServiceConnected(ComponentName, IBinder); + mBluetoothLeService = (service as BluetoothLeService.LocalBinder).service +// if (mBluetoothLeService==null) System.err.println(" service = NULL **************************************") + gattBle = mBluetoothLeService?.getMyBluetoothGatt();//myBluetoothGatt + + if (!mBluetoothLeService?.initialize()!!) { + finish() + } + if (!flagScanWithoutConnect) { + mBluetoothLeService?.connect(connectedDeviceAddress) + } + } + + override fun onServiceDisconnected(componentName: ComponentName) { + mBluetoothLeService = null + } + } + + private val currentFragment: Fragment + get() = supportFragmentManager.findFragmentById(R.id.fragmentContainer)!! + + private val fragmentListener = object : FragmentManager.FragmentLifecycleCallbacks() { + override fun onFragmentViewCreated(fm: FragmentManager, f: Fragment, v: View, savedInstanceState: Bundle?) { + super.onFragmentViewCreated(fm, f, v, savedInstanceState) + updateUi() + } + } + + private external fun new_dg_from_bt(dgram: ByteArray)// отправить пакет gatt в обработку + external fun eth_ble_stack_control(status: Int)// оповестить обработчик пакетов что статус подключения поменялся + external fun change_dbg_scr(scr: Int)// оповещаем какой дебаг экран показывать + external fun tap_detected(area: Int)// оповещаем какая область экрана была нажата + private external fun coord_from_terminal(xPix: Int, yPix: Int)// передаём координаты места касания вью терминала + private external fun button_from_terminal(buttonId: Int)// передаём координаты места касания вью терминала + + + @SuppressLint("SetTextI18n", "CheckResult") + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater).also { setContentView(it.root) } + mSettings = this.getSharedPreferences(PreferenceKeys.APP_PREFERENCES, Context.MODE_PRIVATE) + mGattServicesList = findViewById(R.id.gatt_services_list) + setSupportActionBar(binding.toolbar) + window.navigationBarColor = ContextCompat.getColor(this, R.color.menu_bottom_layout_bg) + eth_ble_stack_control(0) + initAllVariables() + + + if (savedInstanceState == null) { + supportFragmentManager + .beginTransaction() + .add(R.id.fragmentContainer, ScanningFragment()) + .commit() +// supportFragmentManager +// .beginTransaction() +// .add(R.id.fragmentContainer, TerminalFragment()) +// .commit() + } + + + createStatList() + scanList = reinitScanList() + supportFragmentManager.registerFragmentLifecycleCallbacks(fragmentListener, false) + + binding.leftFragmentBtn.setOnClickListener { showStatisticScreen() } + binding.centerFragmentBtn.setOnClickListener { showHomeScreen() } + binding.rightFragmentBtn.setOnClickListener { showBMSScreen() } + binding.rightTestFragmentBtn.setOnClickListener { showDebugScreen() } + + + // инициализация блютуз + checkLocationPermission() + askPermissions() + initBLEStructure() + //TODO включить сканирование в продакшне + scanLeDevice(true) + + + //запуск очереди блютуз команд + val worker = Thread { + while (true) { + val task: Runnable = queue.get() + task.run() + } + } + worker.start() + } + + override fun onResume() { + super.onResume() + if (!mBluetoothAdapter!!.isEnabled) { + val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) + if (ActivityCompat.checkSelfPermission( + this, + Manifest.permission.BLUETOOTH_CONNECT + ) != PackageManager.PERMISSION_GRANTED + ) { + System.err.println("BLUETOOTH_CONNECT PERMISSION NOT GRANTED") + return + } + startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT) + } + if (mBluetoothLeService != null) { + connectedDevice = getString(CONNECTED_DEVICE) + connectedDeviceAddress = getString(CONNECTED_DEVICE_ADDRESS) + } + if (!mConnected) { + reconnectThreadFlag = true + reconnectThread() + } + } + override fun onPause() { + super.onPause() + endFlag = true + } + @SuppressLint("MissingPermission") + override fun onDestroy() { + super.onDestroy() + supportFragmentManager.unregisterFragmentLifecycleCallbacks(fragmentListener) + if (mBluetoothLeService != null) { + unbindService(mServiceConnection) + mBluetoothLeService = null + } + endFlag = true + if (mScanning) { mBluetoothAdapter!!.stopLeScan(mLeScanCallback) } + } + override fun onCreateOptionsMenu(menu: Menu?): Boolean { + updateUi() + return true + } + override fun onSupportNavigateUp(): Boolean { + onBackPressed() + return true + } + override fun onBackPressed() { + super.onBackPressed() + val fragment = currentFragment + if (fragment is HasCustomTitle) { + if ( fragment.getTitleRes() == getString(R.string.settings)) { + scanLeDevice(false) + flagScanWithoutConnect = false + } + } + RxUpdateMainEvent.getInstance().updateBackPresedIvent() + } + + override fun showScanScreen() { launchFragmentWihtoutStack(ScanningFragment()) } + override fun showStatisticScreen() { launchFragmentWihtoutStack(StatisticFragment()) } + override fun showHomeScreen() { launchFragmentWihtoutStack(HomeFragment()) } + override fun showBMSScreen() { launchFragmentWihtoutStack(BMSFragment()) } + //TODO исправить терминал на дебаг + override fun showDebugScreen() { + launchFragmentWihtoutStack(TerminalFragment()) +// launchFragmentWihtoutStack(DebugFragment()) + } + override fun showBottomNavigationMenu (show: Boolean) { + if (show) bottom_menu_cl.visibility = View.VISIBLE + else bottom_menu_cl.visibility = View.GONE + } + + override fun sendCoordFromTerminal(xPix: Int, yPix: Int) { + coord_from_terminal(xPix, yPix) + System.err.println("motionEvent X pix:${xPix}") + System.err.println("motionEvent Y pix:${yPix}") + } + override fun sendButtonFromTerminal(buttonId: Int) { + button_from_terminal(buttonId) + } + override fun firstOpenHome() { + supportFragmentManager + .beginTransaction() + .replace(R.id.fragmentContainer, HomeFragment())//HomeFragment + .commit() + } + override fun goBack() { + println("goBack") + flagScanWithoutConnect = false + onBackPressed() + } + override fun goToMenu() { + supportFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) + } + + override fun publishResult(result: T) { + supportFragmentManager.setFragmentResult(result.javaClass.name, bundleOf(KEY_RESULT to result)) + } + override fun listenResult(clazz: Class, owner: LifecycleOwner, listener: ResultListener) { + supportFragmentManager.setFragmentResultListener(clazz.name, owner) { _, bundle -> + listener.invoke(bundle.getParcelable(KEY_RESULT)!!) + } + } + + private fun launchFragment(fragment: Fragment) { + supportFragmentManager + .beginTransaction() + .setCustomAnimations( + R.anim.slide_in, + R.anim.fade_out, + R.anim.fade_in, + R.anim.slide_out + ) + .addToBackStack(null) + .replace(R.id.fragmentContainer, fragment) + .commit() + } + private fun launchFragmentWihtoutStack(fragment: Fragment) { + val transaction: FragmentTransaction = supportFragmentManager.beginTransaction() +// transaction.setCustomAnimations( +// R.anim.slide_in, +// R.anim.fade_out, +// R.anim.fade_in, +// R.anim.slide_out +// ) + transaction.replace(R.id.fragmentContainer, fragment) + if (!supportFragmentManager.isDestroyed) transaction.commit() + } + + private fun updateUi() { + val fragment = currentFragment + + if (fragment is HasCustomTitle) { + countActivatedTitleFragment += 1 + } else { + if (countActivatedTitleFragment != 0) { + } else { + binding.toolbar.title = "" + binding.titleToolbatTv.text = getString(R.string.app_name) + } + countActivatedTitleFragment = 0 + } + + if (fragment is HasDisconnectionAction) { connectionClicked(fragment.getDisconnectionAction()) } + if (fragment is HasCustomAction) { createCustomToolbarAction(fragment.getCustomAction()) + } else { binding.toolbar.menu.clear() } + } + + private fun createCustomToolbarAction(action: CustomAction) { + binding.toolbar.menu.clear() // clearing old action if it exists before assigning a new one + + val iconDrawable = DrawableCompat.wrap(ContextCompat.getDrawable(this, action.iconRes)!!) + iconDrawable.setTint(Color.WHITE) + + val menuItem = binding.toolbar.menu.add(action.textRes) + menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS) + menuItem.icon = iconDrawable + menuItem.setOnMenuItemClickListener { + action.onCustomAction.run() + return@setOnMenuItemClickListener true + } + } + + private fun connectionClicked(action: DisconnectionAction) { + connection_btn.setOnClickListener { + action.onDisconnectionAction.run() + return@setOnClickListener + } + } + + private fun initAllVariables() { + //init + lastConnectDeviceAddress = "" + reconnectThreadFlag = false + flagScanWithoutConnect = true + + + //settings + showInfoDialogsFlag = false + inScanFragmentFlag = false +// + if (getString(LAST_CONNECTED_DEVICE_ADDRESS) == "NOT SET!") { + lastConnectDeviceAddress = "" + saveString(LAST_CONNECTED_DEVICE_ADDRESS, lastConnectDeviceAddress) + } else { lastConnectDeviceAddress = getString(LAST_CONNECTED_DEVICE_ADDRESS)} + + if (getString(CONNECTED_DEVICE) == "NOT SET!") { + connectedDevice = "BT-Pump 12" + saveString(CONNECTED_DEVICE, connectedDevice) + } else { connectedDevice = getString(CONNECTED_DEVICE)} + if (getString(CONNECTED_DEVICE_ADDRESS) == "NOT SET!") { + connectedDeviceAddress = "D7:77:A9:47:F9:EC"//"12:34:56:78:90:12" + saveString(CONNECTED_DEVICE_ADDRESS, connectedDeviceAddress) + } else { connectedDeviceAddress = getString(CONNECTED_DEVICE_ADDRESS)} + } + private fun createStatList(){ + val listA = ArrayList() + listA.add("statistic 1 cell") + listA.add("statistic 2 cell") + listA.add("statistic 3 cell") + listA.add("statistic 4 cell") + listA.add("statistic 5 cell") + listA.add("statistic 6 cell") + listA.add("statistic 7 cell") + listA.add("statistic 8 cell") + listA.add("statistic 9 cell") + listA.add("statistic 10 cell") + listA.add("statistic 11 cell") + listA.add("statistic 12 cell") + listA.add("statistic 13 cell") + listA.add("statistic 14 cell") + statList = listA + } + private fun reinitScanList():ArrayList { + val result = ArrayList() + result.add(ScanItem("NOT SET!", "null")) + return result + } + + + @SuppressLint("InflateParams") + override fun showDisconnectDialog() { + val dialogBinding = layoutInflater.inflate(R.layout.dialog_disconnection, null) + val myDialog = Dialog(this) + myDialog.setContentView(dialogBinding) + myDialog.setCancelable(false) + myDialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + myDialog.show() + + val yesBtn = dialogBinding.findViewById(R.id.dialog_disconnection_confirm) + yesBtn.setOnClickListener { + disconnect() + initBLEStructure() + showScanScreen() + inScanFragmentFlag = true + showInfoDialogsFlag = true + scanLeDevice(true) + lastConnectDeviceAddress = "" + saveString(LAST_CONNECTED_DEVICE_ADDRESS, lastConnectDeviceAddress) + //TODO сделать сброс мак-адреса последнего подключённого устройства к дефолтному + + myDialog.dismiss() + } + val noBtn = dialogBinding.findViewById(R.id.dialog_disconnection_cancel) + noBtn.setOnClickListener { + myDialog.dismiss() + } + } + + + // сохранение и загрузка данных + override fun saveIntArrayList(key: String, list: ArrayList) { + saveInt(key+"_list_size", list.size) + for (item in 0 until list.size) { saveIntArray(key+item, list[item]) } + } + private fun saveIntArray(key: String, array: IntArray) { + saveInt(key + "_size", array.size) + for (i in array.indices) saveInt(key + "_" + i, array[i]) + } + private fun loadIntArray(key: String): IntArray { + val size = getInt(key + "_size") + val array = IntArray(size)//Array(size) { "" } + for (i in 0 until size) array[i] = getInt(key + "_" + i) + return array + } + private fun loadIntArrayList(key: String) :ArrayList{ + val size = getInt(key + "_list_size") + val result = ArrayList() + for (i in 0 until size) result.add(loadIntArray(key+i)) + return result + } + override fun saveArrayStringList(key: String, list: ArrayList>) { + saveInt(key+"_list_size", list.size) + for (item in 0 until list.size) { saveStringArray(key+item, list[item]) } + } + private fun loadArrayStringList(key: String) :ArrayList>{ + val size = getInt(key + "_list_size") + val result = ArrayList>() + for (i in 0 until size) result.add(loadStringArray(key+i)) + return result + } + private fun saveStringArray(key: String, array: Array) { + saveInt(key + "_size", array.size) + for (i in array.indices) saveString(key + "_" + i, array[i]) + } + private fun loadStringArray(key: String): Array { + val size = getInt(key + "_size") + val array = Array(size) { "" } + for (i in 0 until size) array[i] = getString(key + "_" + i) + return array + } + override fun saveArrayList(key: String, list: ArrayList){ + val arrayString = Gson().toJson(list) + saveString(key, arrayString) + } + private inline fun loadArrayList(key: String) :ArrayList{ + val listJson = getString(key) + val result = ArrayList() + if (listJson != "NOT SET!") { + val type = object : TypeToken>() {}.type + return Gson().fromJson(listJson, type) + } + return result + } + override fun saveInt(key: String, value: Int) { + val editor: SharedPreferences.Editor = mSettings!!.edit() + editor.putInt(key, value) + editor.apply() + } + private fun getInt(key: String) :Int { + return mSettings!!.getInt(key, 65000) + } + override fun saveString(key: String, text: String) { + val editor: SharedPreferences.Editor = mSettings!!.edit() + editor.putString(key, text) + editor.apply() + } + private fun getString(key: String) :String { + return mSettings!!.getString(key, "NOT SET!").toString() + } + + // работа с блютузом + override fun initBLEStructure() { + if (!packageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + Toast.makeText(this, "ошибка 1", Toast.LENGTH_SHORT).show() + finish() + } + val bluetoothManager = getSystemService(BLUETOOTH_SERVICE) as BluetoothManager + mBluetoothAdapter = bluetoothManager.adapter + if (mBluetoothAdapter == null) { + Toast.makeText(this, "ошибка 2", Toast.LENGTH_SHORT).show() + finish() + } else { +// Toast.makeText(this, "mBluetoothAdapter != null", Toast.LENGTH_SHORT).show() + } + val gattServiceIntent = Intent(this, BluetoothLeService::class.java) + bindService(gattServiceIntent, mServiceConnection, BIND_AUTO_CREATE) + registerReceiver(mGattUpdateReceiver, makeGattUpdateIntentFilter()) + } + private val mGattUpdateReceiver: BroadcastReceiver = object : BroadcastReceiver() { + @SuppressLint("ResourceAsColor") + override fun onReceive(context: Context, intent: Intent) { + val action = intent.action + when { + BluetoothLeService.ACTION_GATT_CONNECTED == action -> { + Toast.makeText(context, "подключение установлено к $connectedDeviceAddress", Toast.LENGTH_SHORT).show() + reconnectThreadFlag = false + } + BluetoothLeService.ACTION_GATT_DISCONNECTED == action -> { + mConnected = false + endFlag = true + status_connection_tv.text = getString(R.string.offline) + status_connection_tv.setTextColor(Color.rgb(255, 49,49)) + invalidateOptionsMenu() + mGattServicesList!!.setAdapter(null as SimpleExpandableListAdapter?) + percentSynchronize = 0 + eth_ble_stack_control(3) + if(!reconnectThreadFlag && !mScanning && !inScanFragmentFlag){ + reconnectThreadFlag = true + reconnectThread() + println("--> ACTION_GATT_DISCONNECTED reconnectThread()") + } + } + BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED == action -> { + mConnected = true + status_connection_tv.text = getString(R.string.connected) + status_connection_tv.setTextColor(Color.rgb(10, 132,255)) + setCharacteristicSend() + eth_ble_stack_control(2) + if (mBluetoothLeService != null) { + displayGattServices(mBluetoothLeService!!.supportedGattServices) + println("Notify подписка mGattUpdateReceiver") + subscriptionNotification() + } + } + BluetoothLeService.ACTION_DATA_AVAILABLE == action -> { + if(intent.getByteArrayExtra(BluetoothLeService.TX_CHAR) != null) displayDataRegister(intent.getByteArrayExtra(BluetoothLeService.TX_CHAR)) + } + } + } + } + + private fun displayDataRegister(data: ByteArray?) { + if (data != null) { + new_dg_from_bt(data) + } + globalSemaphore = true + } + + private fun displayGattServices(gattServices: List?) { + if (gattServices == null) return + var uuid: String? + val unknownServiceString = ("unknown_service") + val unknownCharaString =("unknown_characteristic") + val gattServiceData = ArrayList>() + val gattCharacteristicData = ArrayList>>() + mGattCharacteristics = java.util.ArrayList() + + + // Loops through available GATT Services. + for (gattService in gattServices) { + val currentServiceData = HashMap() + uuid = gattService.uuid.toString() + currentServiceData[listName] = lookup(uuid, unknownServiceString) + currentServiceData[listUUID] = uuid + gattServiceData.add(currentServiceData) + val gattCharacteristicGroupData = ArrayList>() + val gattCharacteristics = gattService.characteristics + val charas = ArrayList() + + // Loops through available Characteristics. + for (gattCharacteristic in gattCharacteristics) { + charas.add(gattCharacteristic) + val currentCharaData = HashMap() + uuid = gattCharacteristic.uuid.toString() + currentCharaData[listName] = lookup(uuid, unknownCharaString) + currentCharaData[listUUID] = uuid + gattCharacteristicGroupData.add(currentCharaData) +// System.err.println("-------> ХАРАКТЕРИСТИКА: $uuid") + } + mGattCharacteristics.add(charas) + gattCharacteristicData.add(gattCharacteristicGroupData) + } + val gattServiceAdapter = SimpleExpandableListAdapter( + this, + gattServiceData, + android.R.layout.simple_expandable_list_item_2, arrayOf(listName, listUUID), intArrayOf(android.R.id.text1, android.R.id.text2), + gattCharacteristicData, + android.R.layout.simple_expandable_list_item_2, arrayOf(listName, listUUID), intArrayOf(android.R.id.text1, android.R.id.text2)) + mGattServicesList!!.setAdapter(gattServiceAdapter) + if (mScanning) { scanLeDevice(false) } + } + override fun reconnectThread() { + System.err.println("--> reconnectThread started") + var j = 1 + val reconnectThread = Thread { + while (reconnectThreadFlag) { + runOnUiThread { + if(j % 5 == 0) { + reconnectThreadFlag = false + scanLeDevice(true) + System.err.println("DeviceControlActivity-------> Переподключение со сканированием №$j") + } else { + reconnect() + System.err.println("DeviceControlActivity-------> Переподключение без сканирования №$j") + } + j++ + } + try { + Thread.sleep(RECONNECT_BLE_PERIOD.toLong()) + } catch (ignored: Exception) { } + } + } + reconnectThread.start() + } + override fun reconnect () { + //полное завершение сеанса связи и создание нового в onResume + if (mBluetoothLeService != null) { + unbindService(mServiceConnection) + mBluetoothLeService = null + } + + val gattServiceIntent = Intent(this, BluetoothLeService::class.java) + bindService(gattServiceIntent, mServiceConnection, BIND_AUTO_CREATE) + + //BLE + registerReceiver(mGattUpdateReceiver, makeGattUpdateIntentFilter()) + if (mBluetoothLeService != null) { + mBluetoothLeService!!.connect(getString(CONNECTED_DEVICE_ADDRESS)) + } else { + println("--> вызываем функцию коннекта к устройству $connectedDevice = null") + } + } + override fun disconnect () { + if (mBluetoothLeService != null) { + println("--> дисконнектим всё к хуям и анбайндим") + mBluetoothLeService!!.disconnect() + unbindService(mServiceConnection) + mBluetoothLeService = null + } + mConnected = false + endFlag = true + runOnUiThread { + status_connection_tv.text = getString(R.string.offline) + status_connection_tv.setTextColor(Color.rgb(255, 49,49)) + mGattServicesList!!.setAdapter(null as SimpleExpandableListAdapter?) + } + invalidateOptionsMenu() + percentSynchronize = 0 + + if(!reconnectThreadFlag && !mScanning && !inScanFragmentFlag){ + reconnectThreadFlag = true + reconnectThread() + println("--> disconnect reconnectThread()") + } + flagScanWithoutConnect = true + } + private fun makeGattUpdateIntentFilter(): IntentFilter { + val intentFilter = IntentFilter() + intentFilter.addAction(BluetoothLeService.ACTION_GATT_CONNECTED) + intentFilter.addAction(BluetoothLeService.ACTION_GATT_DISCONNECTED) + intentFilter.addAction(BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED) + intentFilter.addAction(BluetoothLeService.ACTION_DATA_AVAILABLE) + return intentFilter + } + private fun isPermissionsGranted(context: Context): Boolean { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED + } else { + ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + } + } + @SuppressLint("MissingPermission") + override fun scanLeDevice(enable: Boolean) { + if (isPermissionsGranted(context = baseContext)) { + System.err.println("DeviceControlActivity-------> isPermissionsGranted = true") + if (enable) { + mScanning = true + scanList = reinitScanList() + mBluetoothAdapter!!.startLeScan(mLeScanCallback) + System.err.println("DeviceControlActivity-------> startLeScan flagScanWithoutConnect=$flagScanWithoutConnect") + } else { + mScanning = false + mBluetoothAdapter!!.stopLeScan(mLeScanCallback) + System.err.println("DeviceControlActivity-------> stopLeScan flagScanWithoutConnect=$flagScanWithoutConnect") + } + } else { + System.err.println("DeviceControlActivity-------> isPermissionsGranted = false") + } + } + @SuppressLint("MissingPermission") + private val mLeScanCallback = BluetoothAdapter.LeScanCallback { device, _, _ -> + runOnUiThread { + if (device.name != null) { +// System.err.println("-------> ===============найден девайс: " + device.address +"-"+ device.name +"==============") + if (device.address == connectedDeviceAddress) { +// System.err.println("-------> ==========это нужный нам девайс $device $flagScanWithoutConnect ==============") + System.err.println("DeviceControlActivity-------> mLeScanCallback flagScanWithoutConnect=$flagScanWithoutConnect") + if (!flagScanWithoutConnect) { + scanLeDevice(false) + reconnectThreadFlag = true + reconnectThread() + println("--> mLeScanCallback reconnectThread()") + } + } + addLEDeviceToScanList(device.name, device) + } + } + } + private fun checkLocationPermission() { + if (ContextCompat.checkSelfPermission(this, + Manifest.permission.ACCESS_FINE_LOCATION) + != PackageManager.PERMISSION_GRANTED) { + if (ActivityCompat.shouldShowRequestPermissionRationale(this, + Manifest.permission.ACCESS_FINE_LOCATION)) { + AlertDialog.Builder(this) + .setTitle(R.string.title_location_permission) + .setMessage(R.string.text_location_permission) + .setPositiveButton(R.string.ok) { _, _ -> + ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), + MY_PERMISSIONS_REQUEST_LOCATION) + scanLeDevice(true) + } + .create() + .show() + } else { + ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), + MY_PERMISSIONS_REQUEST_LOCATION) + } + } + + //проверка включена ли геолокация и если выключена, то показ предложения её включить + val lm = this.getSystemService(LOCATION_SERVICE) as LocationManager + var gpsEnabled = false + try { + gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER) + } catch (ignored: java.lang.Exception) { + } + if (!gpsEnabled) { + // notify user +// showLocationPermissionDialog() + } + } + private fun askPermissions() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + Handler().postDelayed({ + requestMultiplePermissions.launch(arrayOf( + Manifest.permission.BLUETOOTH_SCAN, + Manifest.permission.BLUETOOTH_CONNECT)) + }, 300) + } + else{ +// Dexter.withActivity(this).withPermissions( +// Manifest.permission.BLUETOOTH, +// Manifest.permission.BLUETOOTH_ADMIN, +// Manifest.permission.ACCESS_FINE_LOCATION, +// Manifest.permission.ACCESS_COARSE_LOCATION +// ) +// .withListener(object : MultiplePermissionsListener { +// override fun onPermissionsChecked(report: MultiplePermissionsReport) { +// if (report.areAllPermissionsGranted()) { +//// System.err.println(" LOLOLOEFWEF ---> onPermissionsChecked true") +// val intent = Intent(this@SplashScreen, ScanActivity::class.java) +// startActivity(intent) +// finish() +// } else { +//// System.err.println(" LOLOLOEFWEF ---> onPermissionsChecked false") +// askPermissions() +// } +// } +// +// override fun onPermissionRationaleShouldBeShown( +// permissions: List, +// token: PermissionToken +// ) { +// token.continuePermissionRequest() +// } +// }).check() + } + } + @SuppressLint("LogNotTimber") + private val requestMultiplePermissions = registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions -> + permissions.entries.forEach { + System.err.println("LOLOLOEFWEF ---> ${it.key} = ${it.value}") + } + } + private fun addLEDeviceToScanList(item: String, device: BluetoothDevice?) { + var canAdd = true + for (i in scanList.indices) { + if (device != null) { + if (scanList[i].getAddr() == device.address) { + canAdd = false + } + } + } + if (canAdd) { + if (device != null) { + scanList.add(ScanItem(item, device.address.toString())) + RxUpdateMainEvent.getInstance().updateScanList(ScanItem(item, device.address.toString())) + } + } + } + private fun setCharacteristicSend() { + for (i in mGattCharacteristics.indices) { + for (j in mGattCharacteristics[i].indices) { + if (mGattCharacteristics[i][j].uuid.toString() == RX_CHAR) { + bleSendCharacteristic = mGattCharacteristics[i][j] + } + } + } + } + private fun setCharacteristicReceive() { + for (i in mGattCharacteristics.indices) { + for (j in mGattCharacteristics[i].indices) { + if (mGattCharacteristics[i][j].uuid.toString() == TX_CHAR) { + bleReceivedCharacteristic = mGattCharacteristics[i][j] + } + } + } + } + private fun subscriptionNotification() { + setCharacteristicReceive() + mBluetoothLeService!!.setCharacteristicNotification(bleReceivedCharacteristic, true) + } + + + companion object { + @JvmStatic private val KEY_RESULT = "RESULT" + + + var gattBle : BluetoothGatt?=null + var bleSendCharacteristic: BluetoothGattCharacteristic? = null + var bleReceivedCharacteristic: BluetoothGattCharacteristic? = null + var mBluetoothLeService: BluetoothLeService? = null + + @SuppressLint("MissingPermission") + @JvmStatic + fun send_to_ble(dg: ByteArray):Int {// вызов из NDK - отправить кодограмму в gatt. + if (mBluetoothLeService == null) return -1 + return mBluetoothLeService!!.send_to_ble(dg); +// bleSendCharacteristic?.value = dg + + if (gattBle == null) { + gattBle = mBluetoothLeService!!.getMyBluetoothGatt();//myBluetoothGatt + if (gattBle==null) System.err.println(" gattble(1) = NULL **************************************") + + if (gattBle == null) return -1; + } +// return 0; +//return 1; + val ret = gattBle?.writeCharacteristic(bleSendCharacteristic) + if (ret == true) return 1; else return 0 + } + + @JvmStatic + fun frame(array: ByteArray) { +// System.err.println("frame array = ${array.size}") + bytesArrayFrame.postValue(array) + RxUpdateMainEvent.getInstance().updateTerminalFragment() + } + + @JvmStatic + fun upd_status_param(par_no:Int, v: ByteArray, s: ByteArray) {// вызов из NDK - обновить значения переменных + when(par_no) { + 1 -> { param1.postValue(String(v)); param1name.postValue(String(s)) } + 2 -> { param2.postValue(String(v)); param2name.postValue(String(s)) } + 3 -> { param3.postValue(String(v)); param3name.postValue(String(s)) } + 4 -> { param4.postValue(String(v)); param4name.postValue(String(s)) } + 5 -> { param5.postValue(String(v)); param5name.postValue(String(s)) } + 6 -> { param6.postValue(String(v)); param6name.postValue(String(s)) } + 7 -> { param7.postValue(String(v)); param7name.postValue(String(s)) } + 8 -> { param8.postValue(String(v)); param8name.postValue(String(s)) } + 9 -> { param9.postValue(String(v)); param9name.postValue(String(s)) } + 10 -> { param10.postValue(String(v)); param10name.postValue(String(s)) } + 11 -> { param11.postValue(String(v)); param11name.postValue(String(s)) } + 12 -> { param12.postValue(String(v)); param12name.postValue(String(s)) } + 13 -> { param13.postValue(String(v)); param13name.postValue(String(s)) } + 14 -> { param14.postValue(String(v)); param14name.postValue(String(s)) } + 15 -> { param15.postValue(String(v)); param15name.postValue(String(s)) } + 16 -> { param16.postValue(String(v)); param16name.postValue(String(s)) } + 17 -> { param17.postValue(String(v)); param17name.postValue(String(s)) } + 18 -> { param18.postValue(String(v)); param18name.postValue(String(s)) } + 19 -> { param19.postValue(String(v)); param19name.postValue(String(s)) } + 20 -> { param20.postValue(String(v)); param20name.postValue(String(s)) } + 21 -> { param21.postValue(String(v)); param21name.postValue(String(s)) } + 22 -> { param22.postValue(String(v)); param22name.postValue(String(s)) } + 23 -> { param23.postValue(String(v)); param23name.postValue(String(s)) } + 24 -> { param24.postValue(String(v)); param24name.postValue(String(s)) } + 25 -> { param25.postValue(String(v)); param25name.postValue(String(s)) } + 26 -> { param26.postValue(String(v)); param26name.postValue(String(s)) } + 27 -> { param27.postValue(String(v)); param27name.postValue(String(s)) } + 28 -> { param28.postValue(String(v)); param28name.postValue(String(s)) } + 29 -> { param29.postValue(String(v)); param29name.postValue(String(s)) } + 30 -> { param30.postValue(String(v)); param30name.postValue(String(s)) } + } + RxUpdateMainEvent.getInstance().updateDebugFragment() + RxUpdateMainEvent.getInstance().updateHomeFragment() + } + + var bytesArrayFrame: MutableLiveData = MutableLiveData() + + var param1: MutableLiveData = MutableLiveData() + var param2: MutableLiveData = MutableLiveData() + var param3: MutableLiveData = MutableLiveData() + var param4: MutableLiveData = MutableLiveData() + var param5: MutableLiveData = MutableLiveData() + var param6: MutableLiveData = MutableLiveData() + var param7: MutableLiveData = MutableLiveData() + var param8: MutableLiveData = MutableLiveData() + var param9: MutableLiveData = MutableLiveData() + var param10: MutableLiveData = MutableLiveData() + var param11: MutableLiveData = MutableLiveData() + var param12: MutableLiveData = MutableLiveData() + var param13: MutableLiveData = MutableLiveData() + var param14: MutableLiveData = MutableLiveData() + var param15: MutableLiveData = MutableLiveData() + var param16: MutableLiveData = MutableLiveData() + var param17: MutableLiveData = MutableLiveData() + var param18: MutableLiveData = MutableLiveData() + var param19: MutableLiveData = MutableLiveData() + var param20: MutableLiveData = MutableLiveData() + var param21: MutableLiveData = MutableLiveData() + var param22: MutableLiveData = MutableLiveData() + var param23: MutableLiveData = MutableLiveData() + var param24: MutableLiveData = MutableLiveData() + var param25: MutableLiveData = MutableLiveData() + var param26: MutableLiveData = MutableLiveData() + var param27: MutableLiveData = MutableLiveData() + var param28: MutableLiveData = MutableLiveData() + var param29: MutableLiveData = MutableLiveData() + var param30: MutableLiveData = MutableLiveData() + + var param1name: MutableLiveData = MutableLiveData() + var param2name: MutableLiveData = MutableLiveData() + var param3name: MutableLiveData = MutableLiveData() + var param4name: MutableLiveData = MutableLiveData() + var param5name: MutableLiveData = MutableLiveData() + var param6name: MutableLiveData = MutableLiveData() + var param7name: MutableLiveData = MutableLiveData() + var param8name: MutableLiveData = MutableLiveData() + var param9name: MutableLiveData = MutableLiveData() + var param10name: MutableLiveData = MutableLiveData() + var param11name: MutableLiveData = MutableLiveData() + var param12name: MutableLiveData = MutableLiveData() + var param13name: MutableLiveData = MutableLiveData() + var param14name: MutableLiveData = MutableLiveData() + var param15name: MutableLiveData = MutableLiveData() + var param16name: MutableLiveData = MutableLiveData() + var param17name: MutableLiveData = MutableLiveData() + var param18name: MutableLiveData = MutableLiveData() + var param19name: MutableLiveData = MutableLiveData() + var param20name: MutableLiveData = MutableLiveData() + var param21name: MutableLiveData = MutableLiveData() + var param22name: MutableLiveData = MutableLiveData() + var param23name: MutableLiveData = MutableLiveData() + var param24name: MutableLiveData = MutableLiveData() + var param25name: MutableLiveData = MutableLiveData() + var param26name: MutableLiveData = MutableLiveData() + var param27name: MutableLiveData = MutableLiveData() + var param28name: MutableLiveData = MutableLiveData() + var param29name: MutableLiveData = MutableLiveData() + var param30name: MutableLiveData = MutableLiveData() + + var lastConnectDeviceAddress by Delegates.notNull() + var reconnectThreadFlag by Delegates.notNull() + var flagScanWithoutConnect by Delegates.notNull() + + + //настройки + var showInfoDialogsFlag by Delegates.notNull() + var inScanFragmentFlag by Delegates.notNull() + var scanList by Delegates.notNull>() + var statList by Delegates.notNull>() + var connectedDevice by Delegates.notNull() + var connectedDeviceAddress by Delegates.notNull() +// var by Delegates.notNull() + init { + System.loadLibrary("bt_drv") + } + } +} diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/Options.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/Options.kt new file mode 100644 index 000000000..751d432de --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/Options.kt @@ -0,0 +1,16 @@ +package ua.cn.stu.navigation + +import android.os.Parcelable +import kotlinx.android.parcel.Parcelize + +@Parcelize +data class Options( + val boxCount: Int, + val isTimerEnabled: Boolean, + val selectedProfile: Int, + val profileNames: ArrayList = ArrayList() +) : Parcelable { + companion object { + @JvmStatic val DEFAULT = Options(boxCount = 3, isTimerEnabled = false, 0) + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ble/BluetoothLeService.java b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ble/BluetoothLeService.java new file mode 100644 index 000000000..cfd351544 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ble/BluetoothLeService.java @@ -0,0 +1,362 @@ +package ua.cn.stu.navigation.ble; + +import static ua.cn.stu.navigation.ble.SampleGattAttributes.NOTIFY; +import static ua.cn.stu.navigation.ble.SampleGattAttributes.READ; +import static ua.cn.stu.navigation.ble.SampleGattAttributes.SHOW_EVERYONE_RECEIVE_BYTE; +import static ua.cn.stu.navigation.ble.SampleGattAttributes.WRITE; + +import android.Manifest; +import android.app.Service; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCallback; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothGattService; +import android.bluetooth.BluetoothManager; +import android.bluetooth.BluetoothProfile; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.os.Binder; +import android.os.IBinder; + +import androidx.core.app.ActivityCompat; + +import java.util.List; +import java.util.UUID; + +/** + * Service for managing connection and data communication with a GATT server hosted on a + * given Bluetooth LE device. + */ +public class BluetoothLeService extends Service { + private final static String TAG = BluetoothLeService.class.getSimpleName(); + + private BluetoothManager mBluetoothManager; + private BluetoothAdapter mBluetoothAdapter; + private String mBluetoothDeviceAddress; + private BluetoothGatt mBluetoothGatt; + private int mConnectionState = STATE_DISCONNECTED; + + private static final int STATE_DISCONNECTED = 0; + private static final int STATE_CONNECTING = 1; + private static final int STATE_CONNECTED = 2; + + public final static String ACTION_GATT_CONNECTED = "com.example.bluetooth.le.ACTION_GATT_CONNECTED"; + public final static String ACTION_STATE = "com.example.bluetooth.le.ACTION_STATE"; + public final static String ACTION_GATT_DISCONNECTED = "com.example.bluetooth.le.ACTION_GATT_DISCONNECTED"; + public final static String ACTION_GATT_SERVICES_DISCOVERED = "com.example.bluetooth.le.ACTION_GATT_SERVICES_DISCOVERED"; + public final static String ACTION_DATA_AVAILABLE = "com.example.bluetooth.le.ACTION_DATA_AVAILABLE"; + + public final static String SENSORS_DATA_THREAD_FLAG = "com.example.bluetooth.le.SENSORS_DATA_THREAD_FLAG"; + public final static String NOTIFICATION_PUMP_STATUS = "com.example.bluetooth.le.NOTIFICATION_PUMP_STATUS"; + public final static String RX_CHAR = "com.example.bluetooth.le.RX_CHAR"; + public final static String TX_CHAR = "com.example.bluetooth.le.TX_CHAR"; + + + public static native void char_wr_cbk(int status);// оповестить обработчик что кодограмма + // отправлена (и можно отправлять следующую) + + + // Implements callback methods for GATT events that the app cares about. For example, + // connection change and services discovered. + private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() { + @Override + public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { + String intentAction; + if (newState == BluetoothProfile.STATE_CONNECTED) { + intentAction = ACTION_GATT_CONNECTED; + mConnectionState = STATE_CONNECTED; + broadcastUpdate(intentAction); + + if (ActivityCompat.checkSelfPermission(BluetoothLeService.this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { + System.err.println("BLUETOOTH_CONNECT PERMISSION NOT GRANTED"); + return; + } + + mBluetoothGatt.discoverServices(); + } else if (newState == BluetoothProfile.STATE_DISCONNECTED) { + intentAction = ACTION_GATT_DISCONNECTED; + mConnectionState = STATE_DISCONNECTED; + broadcastUpdate(intentAction); + } + } + + @Override + public void onServicesDiscovered(BluetoothGatt gatt, int status) { + System.err.println("lol BluetoothGatt.GATT_SUCCESS = " + status); + if (status == BluetoothGatt.GATT_SUCCESS) { + broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED); + } + } + + @Override + public void onCharacteristicRead(BluetoothGatt gatt, + BluetoothGattCharacteristic characteristic, + int status) { + if (status == BluetoothGatt.GATT_SUCCESS) { + broadcastUpdate(characteristic, READ); + } + } + + @Override + public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { + super.onCharacteristicWrite(gatt, characteristic, status); + char_wr_cbk(status); + if (status == BluetoothGatt.GATT_SUCCESS) { + broadcastUpdate(characteristic, WRITE); + } else if (status == BluetoothGatt.GATT_FAILURE) { + System.err.println("запись не удалась"); + } + } + + @Override + public void onCharacteristicChanged(BluetoothGatt gatt, + BluetoothGattCharacteristic characteristic) { + broadcastUpdate(characteristic, NOTIFY); + } + }; + + private void broadcastUpdate(final String action) { + final Intent intent = new Intent(action); + sendBroadcast(intent); + } + + private void broadcastUpdate(final BluetoothGattCharacteristic characteristic, final String state) { + final Intent intent = new Intent(BluetoothLeService.ACTION_DATA_AVAILABLE); + + final byte[] data = characteristic.getValue(); + + if (data != null && data.length > 0) { + for (byte byteChar : data) { + if (SHOW_EVERYONE_RECEIVE_BYTE) + System.err.println("BluetoothLeService-------------> append massage: " + String.format("%02X ", byteChar)); + } + + if (String.valueOf(characteristic.getUuid()).equals(SampleGattAttributes.TX_CHAR)) { + if (state.equals(NOTIFY)) { + intent.putExtra(TX_CHAR, data); + intent.putExtra(ACTION_STATE, WRITE); + } + } + } + sendBroadcast(intent); + } + + public class LocalBinder extends Binder { + public BluetoothLeService getService() { + return BluetoothLeService.this; + } + } + + @Override + public IBinder onBind(Intent intent) { + return mBinder; + } + + @Override + public boolean onUnbind(Intent intent) { + // After using a given device, you should make sure that BluetoothGatt.close() is called + // such that resources are cleaned up properly. In this particular example, close() is + // invoked when the UI is disconnected from the Service. + close(); + return super.onUnbind(intent); + } + + private final IBinder mBinder = new LocalBinder(); + + /** + * Initializes a reference to the local Bluetooth adapter. + * + * @return Return true if the initialization is successful. + */ + public boolean initialize() { + // For API level 18 and above, get a reference to BluetoothAdapter through + // BluetoothManager. + if (mBluetoothManager == null) { + mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); + if (mBluetoothManager == null) { +// Timber.e("Unable to initialize BluetoothManager."); + return false; + } + } + + mBluetoothAdapter = mBluetoothManager.getAdapter(); + // Timber.e("Unable to obtain a BluetoothAdapter."); + return mBluetoothAdapter != null; + } + + /** + * Connects to the GATT server hosted on the Bluetooth LE device. + * + * @param address The device address of the destination device. + * + * @return Return true if the connection is initiated successfully. The connection result + * is reported asynchronously through the + * {@code BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)} + * callback. + */ + public boolean connect(final String address) { + if (mBluetoothAdapter == null || address == null) { +// Timber.tag(TAG).("BluetoothAdapter not initialized or unspecified address."); + return false; + } + + // Previously connected device. Try to reconnect. + if (address.equals(mBluetoothDeviceAddress) + && mBluetoothGatt != null) { +// Timber.d("Trying to use an existing mBluetoothGatt for connection."); + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { + return false; + } + if (mBluetoothGatt.connect()) { + mConnectionState = STATE_CONNECTING; + return true; + } else { + return false; + } + } + + System.err.println("address: " + address); + final BluetoothDevice device; + device = mBluetoothAdapter.getRemoteDevice(address); + + if (device == null) { + return false; + } + // We want to directly connect to the device, so we are setting the autoConnect + // parameter to false. + + mBluetoothGatt = device.connectGatt(this, false, mGattCallback); + + mBluetoothGatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH); + mBluetoothDeviceAddress = address; + mConnectionState = STATE_CONNECTING; + return true; + } + + /** + * Disconnects an existing connection or cancel a pending connection. The disconnection result + * is reported asynchronously through the + * {@code BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)} + * callback. + */ + public void disconnect() { + if (mBluetoothAdapter == null || mBluetoothGatt == null) { +// Timber.tag(TAG).w("BluetoothAdapter not initialized"); + return; + } + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { + System.err.println("BLUETOOTH_CONNECT PERMISSION NOT GRANTED"); + return; + } + mBluetoothGatt.disconnect(); + } + + /** + * After using a given BLE device, the app must call this method to ensure resources are + * released properly. + */ + public void close() { + if (mBluetoothGatt == null) { + return; + } + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { + System.err.println("BLUETOOTH_CONNECT PERMISSION NOT GRANTED"); + return; + } + mBluetoothGatt.close(); + mBluetoothGatt = null; + } + + /** + * Request a read on a given {@code BluetoothGattCharacteristic}. The read result is reported + * asynchronously through the {@code BluetoothGattCallback#onCharacteristicRead(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int)} + * callback. + * + * @param characteristic The characteristic to read from. + */ + public void readCharacteristic(BluetoothGattCharacteristic characteristic) { + if (mBluetoothAdapter == null || mBluetoothGatt == null) { +// Timber.tag(TAG).w("BluetoothAdapter not initialized"); + return; + } + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { + System.err.println("BLUETOOTH_CONNECT PERMISSION NOT GRANTED"); + return; + } + mBluetoothGatt.readCharacteristic(characteristic); + } + + /** + * Request a write {@code BluetoothGattCharacteristic}. The read result is reported + * asynchronously through the {@code BluetoothGattCallback#onCharacteristicRead(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int)} + * callback. + * + * @param characteristic The characteristic a write. + */ + public void writeCharacteristic(BluetoothGattCharacteristic characteristic) { + if (mBluetoothAdapter == null || mBluetoothGatt == null) { +// Timber.tag(TAG).w("BluetoothAdapter not initialized"); + return; + } + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { + System.err.println("BLUETOOTH_CONNECT PERMISSION NOT GRANTED"); + return; + } + mBluetoothGatt.writeCharacteristic(characteristic); + } + + /** + * Enables or disables notification on a give characteristic. + * + * @param characteristic Characteristic to act on. + * @param enabled If true, enable notification. False otherwise. + */ + public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic, + boolean enabled) { + System.err.println("Notify setCharacteristicNotification"); + if (mBluetoothAdapter == null || mBluetoothGatt == null) { + System.err.println("Notify setCharacteristicNotification return"); + return; + } + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { + System.err.println("BLUETOOTH_CONNECT PERMISSION NOT GRANTED"); + return; + } + try { + BluetoothGattDescriptor descriptor = characteristic.getDescriptor( + UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG)); + descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); + mBluetoothGatt.writeDescriptor(descriptor); + mBluetoothGatt.setCharacteristicNotification(characteristic, enabled); + } catch (Exception e) { + // иногда вылетало при попытке подписки + } + } + + /** + * Retrieves a list of supported GATT services on the connected device. This should be + * invoked only after {@code BluetoothGatt#discoverServices()} completes successfully. + * + * @return A {@code List} of supported services. + */ + public List getSupportedGattServices() { + if (mBluetoothGatt == null) return null; + + return mBluetoothGatt.getServices(); + } + + public int send_to_ble(byte[] dg) { + int ret = mBluetoothGatt.writeCharacteristic(bleSendCharacteristic, dg, WRITE_TYPE_NO_RESPONSE); + if (ret == true) return 1; else return 0 +return 0; + } + + public BluetoothGatt getMyBluetoothGatt() { + System.err.println("get gatt **************************************"); + return mBluetoothGatt; + } +} diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ble/SampleGattAttributes.java b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ble/SampleGattAttributes.java new file mode 100644 index 000000000..2d2854d9c --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ble/SampleGattAttributes.java @@ -0,0 +1,80 @@ +package ua.cn.stu.navigation.ble; + +import java.util.HashMap; + +/** + * This class includes a small subset of standard GATT attributes for demonstration purposes. + */ +public class SampleGattAttributes { + private static final HashMap attributes = new HashMap(); + // Sample Characteristics. + public static String NOTIFICATION_PUMP_STATUS = "c8b61521-a676-4fba-968b-cbccbdd224c9"; + public static String LOG_POINTER = "c8b61522-a676-4fba-968b-cbccbdd224c9"; + public static String NOTIFICATION_PUMP_LOG = "c8b61523-a676-4fba-968b-cbccbdd224c9"; + public static String REGISTER_POINTER = "c8b61501-a676-4fba-968b-cbccbdd224c9"; //передаём сюда номер регистра в который пишем или из которого читаем + public static String REGISTER_DATA = "c8b61502-a676-4fba-968b-cbccbdd224c9"; //передаём сюда номер регистра в который пишем или из которого читаем + public static String PASS_DATA = "c8b61531-a676-4fba-968b-cbccbdd224c9"; //пароль помпы для первоначального подключения + //#### Characteristics adaptto + public static String RX_CHAR="6e400002-b5a3-f393-e0d3-e50e2426ca9e"; + public static String TX_CHAR="6e400003-b5a3-f393-e0d3-e50e2426ca9e"; + +// public static String BOLUS_CONTROL = "c8b6150b-a676-4fba-968b-cbccbdd224c9";//передаём сюда количество единиц болюса, который хотим вколоть +// public static String PUMP_SEARCH = "c8b61501-a676-4fba-968b-cbccbdd224c9";// W 0-1 - включение режима поиска +// public static String DIA = "c8b61503-a676-4fba-968b-cbccbdd224c9";// R|W 0-6000 время действия инсулина 2 Байта MSB +// public static String CR = "c8b61505-a676-4fba-968b-cbccbdd224c9";// R|W 0-150 углеводный коэффициент 1 Байт +// public static String ISF = "c8b61507-a676-4fba-968b-cbccbdd224c9";// R|W 0-300 фактор чувствительности к инсулину 2 Байта +// public static String TARGET_GK = "c8b61509-a676-4fba-968b-cbccbdd224c9";// R|W 0-150 целевая гликемия 1 Байт +// public static String IOB = "c8b6150d-a676-4fba-968b-cbccbdd224c9";// R|W 0-50.00 Ед Insulin On Board 2 Байта +// public static String COB = "c8b6150f-a676-4fba-968b-cbccbdd224c9";// W 0-2000 г Carbs On Board 2 Байта +// public static String BATTERY_CHARGE = "c8b61511-a676-4fba-968b-cbccbdd224c9";// R 0-100 заряд батареи 1 Байт +// public static String ACCUMULATOR_CHARGE = "c8b61513-a676-4fba-968b-cbccbdd224c9";// R 0-100 заряд аккумулятора 1 Байт +// public static String INSULIN_IN_PUMP = "c8b61515-a676-4fba-968b-cbccbdd224c9";// R 0-3000 кол-во оставшегося в резервуаре инсулина 2 Байта +// public static String BOLUS_MODE = "c8b61517-a676-4fba-968b-cbccbdd224c9";// R|W 0-3 режим болюса 1 Байт 0-простой болюс 1-кв. волна 2-суперболюс 3-дв. волна 4-кв. дв. волна +// public static String BOLUS_SPEED = "c8b61518-a676-4fba-968b-cbccbdd224c9";// R|W 0-3000 скорость болюса 2 Байта +// public static String BOLUS_START_STOP = "c8b61519-a676-4fba-968b-cbccbdd224c9";// R|W 0-1 старт стоб болюса 1 Байт +// public static String BASAL_SELECT_PROFILE = "c8b6151b-a676-4fba-968b-cbccbdd224c9";// R|W 0-5 ID текущего активного профиля 1 Байт +// public static String BASAL_ON_OFF = "c8b6151c-a676-4fba-968b-cbccbdd224c9";// R|W 0-1 вкл/выкл использование профиля 1 Байт +// public static String BASAL_ID_SETTINGS = "c8b6151d-a676-4fba-968b-cbccbdd224c9";// R|W 0-5 ID профиля для настройки/чтения параметров 1 Байт (неведомая хуйня) +// public static String BASAL_TIME_INTERVAL = "c8b6151e-a676-4fba-968b-cbccbdd224c9";// R|W 0-23 временной интервал 1 Байт +// public static String BASAL_SPEED_SELECTED_INTERVAL = "c8b6151f-a676-4fba-968b-cbccbdd224c9";// R|W 0-5000 cкорость данного временного интервала 2 Байта +// public static String BASAL_NAME_SELECTED_INTERVAL = "c8b61520-a676-4fba-968b-cbccbdd224c9";// R|W STRING имя данного профиля 15 Байт (пустые заняты 0x00) +// public static String BASAL_CURRENT_SPEED = "c8b61521-a676-4fba-968b-cbccbdd224c9";// R|W 0-5000 текущая базальная скорость 2 Байта +// public static String BASAL_TEMPORARY_ON_OFF = "c8b61522-a676-4fba-968b-cbccbdd224c9";// R|W 0-1 вкл/выкл использование временного базала 1 Байт +// public static String BASAL_TEMPORARY_SPEED = "c8b61523-a676-4fba-968b-cbccbdd224c9";// R|W 0-5000 cкорость ввода временного базала 2 Байта +// public static String BASAL_TEMPORARY_TIME_ACTIVE = "c8b61524-a676-4fba-968b-cbccbdd224c9";// R|W 0-1440 время активности временного базала 2 Байта +// public static String DIARY_DATE = "c8b61526-a676-4fba-968b-cbccbdd224c9";// R|W 1-31 1-12 20-99 дата записей 3 Байта +// public static String DIARY_RECORD_COUNT = "c8b61527-a676-4fba-968b-cbccbdd224c9";// R 0-4 294 967 295 получение кол-ва записей в соответствие с выбранным типом или датой 4 Байта +// public static String DIARY_RECORDS = "c8b61528-a676-4fba-968b-cbccbdd224c9";// R|W 0-65535 ID записи, с которой будет производиться работа 2 Байта +// public static String DIARY_RECORD_TYPE = "c8b61529-a676-4fba-968b-cbccbdd224c9";// R|W 0-4 тип записи в дневнике(логе) 1 Байт 0-все записи 1-остановка/запуск помпы 2-изменение базала 3-изменение болюса 4-заправка +// public static String DIARY_DATA = "c8b6152a-a676-4fba-968b-cbccbdd224c9";// R|W массив целевых данных До 20 Байт + public static String SUSPEND_START_STOP = "c8b6152c-a676-4fba-968b-cbccbdd224c9";// R|W 0-1 ‘1’ - включение паузы 1 Байт +// public static String BASAL_BLOCK_CHANGE = "c8b616ff-a676-4fba-968b-cbccbdd224c9";// R|W 0-1 ‘1’ - разрешение редактирования 1 Байт +// public static String BASAL_PROFILE = "c8b61601-a676-4fba-968b-cbccbdd224c9";// R|W 0-255 номер базального профиля, с которым работаем 1 Байт +// public static String BASAL_PROFILE_NUMBER = "c8b61603-a676-4fba-968b-cbccbdd224c9";// R|W 0-24 всего периодов в профиле 1 Байт +// public static String BASAL_PERIOD_NUMBER = "c8b61604-a676-4fba-968b-cbccbdd224c9";// R|W 0-24 ‘0’ - создание нового периода профиля 1 Байт +// public static String BASAL_PERIOD_SETTINGS = "c8b61606-a676-4fba-968b-cbccbdd224c9";// R|W AAAAББББВВВВ 6 Байт + + public static String CLIENT_CHARACTERISTIC_CONFIG = "00002902-0000-1000-8000-00805f9b34fb"; + // Sample Commands. + public static Boolean SHOW_EVERYONE_RECEIVE_BYTE = false; + public static String READ = "READ"; + public static String WRITE = "WRITE"; + public static String NOTIFY = "NOTIFY"; + + + static { + // Sample Services. + attributes.put("0000180d-0000-1000-8000-00805f9b34fb", "Heart Rate Service"); + attributes.put("0000180a-0000-1000-8000-00805f9b34fb", "Device Information Service"); + attributes.put("00001810-0000-1000-8000-00805f9b34fb", "Что-то моё"); + attributes.put("0000fe40-cc7a-482a-984a-7f2ed5b3e58f", "Наша кастомная характеристика"); + // Sample Characteristics. + attributes.put("00002a29-0000-1000-8000-00805f9b34fb", "Manufacturer Name String"); + + } + + public static String lookup(String uuid, String defaultName) { + Object name = attributes.get(uuid); + return name == null ? defaultName : (String) name; + } +} diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/connection/ScanItem.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/connection/ScanItem.kt new file mode 100644 index 000000000..a613b71cb --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/connection/ScanItem.kt @@ -0,0 +1,6 @@ +package ua.cn.stu.navigation.connection + +class ScanItem (private val title: String, private val addr: String) { + fun getTitle(): String { return title } + fun getAddr(): String { return addr } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/ConstantManager.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/ConstantManager.kt new file mode 100644 index 000000000..b36c7145e --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/ConstantManager.kt @@ -0,0 +1,106 @@ +package ua.cn.stu.navigation.contract + +interface ConstantManager { + companion object { + var READ_REGISTER = byteArrayOf(0x00) + var FAKE_DATA_REGISTER = byteArrayOf(0x13.toByte(), 0x87.toByte()) + + var DATE_REGISTER = byteArrayOf(0x10, 0x00) + var TIME_WORK_PUMP_REGISTER = byteArrayOf(0x10, 0x01) + + + var NUM_BASAL_PROFILES_REGISTER = byteArrayOf(0x16, 0x00) + var NUM_MODIFIED_BASAL_PROFILES_REGISTER = byteArrayOf(0x16, 0x01) + var NUM_ACTIVE_BASAL_PROFILES_REGISTER = byteArrayOf(0x16, 0x02) + var NUM_PERIODS_MODIFIED_BASAL_PROFILE_REGISTER = byteArrayOf(0x16, 0x03) + var NUM_MODIFIED_PERIOD_MODIFIED_BASAL_PROFILE_REGISTER = byteArrayOf(0x16, 0x04) + var PERIOD_BASAL_PROFILE_DATA_REGISTER = byteArrayOf(0x16, 0x06) + var NAME_BASAL_PROFILE_REGISTER = byteArrayOf(0x16, 0x07) + var ACTIVATE_BASAL_PROFILE_REGISTER = byteArrayOf(0x16, 0x08) + var DELETE_BASAL_PROFILE_REGISTER = byteArrayOf(0x16, 0x09) + var BASAL_LOCK_CONTROL_REGISTER = byteArrayOf(0x16, 0xff.toByte()) + + var BASAL_SPEED_REGISTER = byteArrayOf(0x16, 0x0a) + + var BASAL_TEMPORARY_PERFORMANCE_REGISTER = byteArrayOf(0x17, 0x00) + var BASAL_TEMPORARY_TYPE_ADJUSTMENT_REGISTER = byteArrayOf(0x17, 0x01) + var BASAL_TEMPORARY_VALUE_ADJUSTMENT_REGISTER = byteArrayOf(0x17, 0x02) + var BASAL_TEMPORARY_TIME_REGISTER = byteArrayOf(0x17, 0x03) + + var INIT_REFUELLING_REGISTER = byteArrayOf(0x19, 0x00) + + var SUPPLIES_RSOURCE_REGISTER = byteArrayOf(0x1d, 0x00) + var IOB_REGISTER = byteArrayOf(0x1c, 0x00) + var BATTERY_PERCENT_REGISTER = byteArrayOf(0x1c, 0x02) + var AKB_PERCENT_REGISTER = byteArrayOf(0x1c, 0x03) + var BALANCE_DRUG_REGISTER = byteArrayOf(0x1c, 0x04) + + var BOLUS_ACTIVATE_REGISTER = byteArrayOf(0x1e, 0x00) + var BOLUS_TYPE_REGISTER = byteArrayOf(0x1e, 0x01) + var BOLUS_AMOUNT_REGISTER = byteArrayOf(0x1e, 0x02) +// var BOLUS_AMOUNT_REGISTER = byteArrayOf(0x1e, 0x03) + var SUPER_BOLUS_RESTRICTION_FLAG_REGISTER = byteArrayOf(0x1e, 0x05) + var EXTENEDED_AND_DUAL_PATTERN_BOLUS_RESTRICTION_FLAG_REGISTER = byteArrayOf(0x1e, 0x06) + var SIMPLE_BOLUS_RESTRICTION_FLAG_REGISTER = byteArrayOf(0x1e, 0x08) + var SUPER_BOLUS_TIME_REGISTER = byteArrayOf(0x1e, 0x09) + var SUPER_BOLUS_BASL_VOLIUM_REGISTER = byteArrayOf(0x1e, 0x0a) + var EXTENDED_AND_DUAL_PATTERN_BOLUS_TIME_REGISTER = byteArrayOf(0x1e, 0x0b) + var BOLUS_STRECHED_AMOUNT_REGISTER = byteArrayOf(0x1e, 0x0c) + var BOLUS_DELETE_REGISTER = byteArrayOf(0x1e, 0x0d) + var BOLUS_DELETE_CONFIRM_REGISTER = byteArrayOf(0x1e, 0x0e) + + + var DATE = "1000" + var TIME_WORK_PUMP = "1001" + + var NUM_BASAL_PROFILES = "1600" + var NUM_MODIFIED_BASAL_PROFILES = "1601" + var NUM_ACTIVE_BASAL_PROFILE = "1602" + var NUM_PERIODS_MODIFIED_BASAL_PROFILE = "1603" + var NUM_MODIFIED_PERIOD_MODIFIED_BASAL_PROFILE = "1604" + var PERIOD_BASAL_PROFILE_DATA = "1606" + var NAME_BASAL_PROFILE = "1607" + var ACTIVATE_BASAL_PROFILE = "1608" + var DELETE_BASAL_PROFILE = "1609" + var BASAL_LOCK_CONTROL = "16ff" + + var BASAL_SPEED = "160a" + + var BASAL_TEMPORARY_PERFORMANCE = "1700" // R|W 0-1 Включение или отключение корректировки профиля + var BASAL_TEMPORARY_TYPE_ADJUSTMENT = "1701" // R|W 0-1 Тип корректировки: (1 - Ед/ч) (0 - %) + var BASAL_TEMPORARY_VALUE_ADJUSTMENT = "1702" // R|W -32k-32k Значение в 0,01 Ед или % + var BASAL_TEMPORARY_TIME = "1703" // R|W 0-65k Время действия в минутах + + var INIT_REFUELLING = "1900" // R|W 0-1 Начало процедуры заправки + + var SUPPLIES_RSOURCE = "1d00" // R|W 0-50.00 Ед Insulin On Board 2 Байта + var IOB = "1c00" // R|W 0-50.00 Ед Insulin On Board 2 Байта + var BATTERY_PERCENT = "1c02" + var AKB_PERCENT = "1c03" + var BALANCE_DRUG = "1c04" + + var BOLUS_ACTIVATE = "1e00" // R|W 0-1 Запуск ввода болюса + var BOLUS_TYPE = "1e01" // R|W 0-15 Выбор типа болюсного ввода + var BOLUS_AMOUNT = "1e02" // R|W 0-32к Количество Ед + var SUPER_BOLUS_RESTRICTION_FLAG = "1e05" + var EXTENEDED_AND_DUAL_PATTERN_BOLUS_RESTRICTION_FLAG = "1e06" + var SIMPLE_BOLUS_RESTRICTION_FLAG = "1e08" // R|W 0-1 Флаг разрешения обычного болюса. + var SUPER_BOLUS_TIME = "1e09" + var SUPER_BOLUS_BASL_VOLIUM = "1e0a" + var EXTENDED_BOLUS_TIME = "1e0b" + var BOLUS_STRECHED_AMOUNT = "1e0c" + var BOLUS_DELETE = "1e0d" + var BOLUS_DELETE_CONFIRM = "1e0e" + + + val LOG_UPDATE_DEPTH: Int get() = 7 //7 лог синхронизируется на 7 дней в глубину + val RESERVOIR_VOLUME: Int get() = 300 //300 единиц + val CANNULE_RESOURCE: Int get() = 4320 //72 часа в минутах + val MAX_COUNT_PROFILES: Int get() = 7 //7 базальных профилей + + const val REQUEST_ENABLE_BT = 1 + const val MY_PERMISSIONS_REQUEST_LOCATION = 99 + var RECONNECT_BLE_PERIOD = 1000 + + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasBatteryAction.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasBatteryAction.kt new file mode 100644 index 000000000..30913bdce --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasBatteryAction.kt @@ -0,0 +1,18 @@ +package ua.cn.stu.navigation.contract + +/** + * Implement this interface in your fragment if you want to show additional action in the toolbar + * while that fragment is displayed to the user. + */ +interface HasBatteryAction { + + /** + * @return a custom action specification, see [BatteryAction] class for details + */ + fun getBatteryAction(): BatteryAction + +} + +class BatteryAction( + val onBatteryAction: Runnable +) \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasCustomAction.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasCustomAction.kt new file mode 100644 index 000000000..20e94d96d --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasCustomAction.kt @@ -0,0 +1,23 @@ +package ua.cn.stu.navigation.contract + +import androidx.annotation.DrawableRes +import androidx.annotation.StringRes + +/** + * Implement this interface in your fragment if you want to show additional action in the toolbar + * while that fragment is displayed to the user. + */ +interface HasCustomAction { + + /** + * @return a custom action specification, see [CustomAction] class for details + */ + fun getCustomAction(): CustomAction + +} + +class CustomAction( + @DrawableRes val iconRes: Int, + @StringRes val textRes: Int, + val onCustomAction: Runnable +) \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasCustomTitle.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasCustomTitle.kt new file mode 100644 index 000000000..dcfcea6af --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasCustomTitle.kt @@ -0,0 +1,11 @@ +package ua.cn.stu.navigation.contract + +/** + * Implement this interface in your fragment if you want to override default toolbar title + */ +interface HasCustomTitle { + /** + * @return the string resource which should be displayed instead of default title + */ + fun getTitleRes(): String +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasDisconnectionAction.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasDisconnectionAction.kt new file mode 100644 index 000000000..3a34a5a74 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasDisconnectionAction.kt @@ -0,0 +1,18 @@ +package ua.cn.stu.navigation.contract + +/** + * Implement this interface in your fragment if you want to show additional action in the toolbar + * while that fragment is displayed to the user. + */ +interface HasDisconnectionAction { + + /** + * @return a custom action specification, see [DisconnectionAction] class for details + */ + fun getDisconnectionAction(): DisconnectionAction + +} + +class DisconnectionAction( + val onDisconnectionAction: Runnable +) \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasReturnAction.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasReturnAction.kt new file mode 100644 index 000000000..056357b8f --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/HasReturnAction.kt @@ -0,0 +1,18 @@ +package ua.cn.stu.navigation.contract + +/** + * Implement this interface in your fragment if you want to show additional action in the toolbar + * while that fragment is displayed to the user. + */ +interface HasReturnAction { + + /** + * @return a custom action specification, see [ReturnAction] class for details + */ + fun getReturnAction(): ReturnAction + +} + +class ReturnAction( + val onReturnAction: Runnable +) \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/Navigator.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/Navigator.kt new file mode 100644 index 000000000..d799d2238 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/Navigator.kt @@ -0,0 +1,43 @@ +package ua.cn.stu.navigation.contract + +import android.os.Parcelable +import androidx.fragment.app.Fragment +import androidx.lifecycle.LifecycleOwner + +typealias ResultListener = (T) -> Unit + +fun Fragment.navigator(): Navigator { + return requireActivity() as Navigator +} + +interface Navigator { + + fun showScanScreen() + fun showStatisticScreen() + fun showHomeScreen() + fun showBMSScreen() + fun showDebugScreen() + fun showBottomNavigationMenu(show: Boolean) + fun showDisconnectDialog() + fun saveArrayList(key: String, list: ArrayList) + fun saveIntArrayList(key: String, list: ArrayList) + fun saveArrayStringList(key: String, list: ArrayList>) + fun saveInt(key: String, value: Int) + fun saveString(key: String, text: String) + fun initBLEStructure() + fun scanLeDevice(enable: Boolean) + fun disconnect () + fun reconnect () +// fun bleCommand(byteArray: ByteArray?, command: String, typeCommand: String) + fun reconnectThread() +// fun showGoBolusDialog(title: String, massage: String, numberOfHundredthsInsulin: Int, numberOfHundredStrechedInsulin: Int, timeBolus: Int) + + fun sendCoordFromTerminal(xPix: Int, yPix: Int) + fun sendButtonFromTerminal(buttonId: Int) + fun firstOpenHome() + fun goBack() + fun goToMenu() + + fun publishResult(result: T) + fun listenResult(clazz: Class, owner: LifecycleOwner, listener: ResultListener) +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnChatClickListener.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnChatClickListener.kt new file mode 100644 index 000000000..242599c0e --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnChatClickListener.kt @@ -0,0 +1,5 @@ +package ua.cn.stu.navigation.contract + +interface OnChatClickListener { + fun onClicked(name : String, selectCell: Int) +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnProfileClickListener.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnProfileClickListener.kt new file mode 100644 index 000000000..958477e0f --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnProfileClickListener.kt @@ -0,0 +1,5 @@ +package ua.cn.stu.navigation.contract + +interface OnProfileClickListener { + fun onClicked(name : String, selectProfile: Int, deleteProfile: Boolean, addProfile: Boolean) +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnProfilePeriodClickListener.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnProfilePeriodClickListener.kt new file mode 100644 index 000000000..8e21b943f --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnProfilePeriodClickListener.kt @@ -0,0 +1,5 @@ +package ua.cn.stu.navigation.contract + +interface OnProfilePeriodClickListener { + fun onClicked(name : String, selectProfile: Int, deleteProfile: Boolean, addProfile: Boolean, selectTime: Boolean, selectSpeed: Boolean) +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnScanClickListener.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnScanClickListener.kt new file mode 100644 index 000000000..3eee4ff89 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnScanClickListener.kt @@ -0,0 +1,5 @@ +package ua.cn.stu.navigation.contract + +interface OnScanClickListener { + fun onClicked(name : String, address : String) +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnStatClickListener.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnStatClickListener.kt new file mode 100644 index 000000000..0553df439 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/contract/OnStatClickListener.kt @@ -0,0 +1,5 @@ +package ua.cn.stu.navigation.contract + +interface OnStatClickListener { + fun onClicked(name : String) +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/BMSFragment.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/BMSFragment.kt new file mode 100644 index 000000000..9bafc0109 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/BMSFragment.kt @@ -0,0 +1,300 @@ +package ua.cn.stu.navigation.fragments + + +import android.annotation.SuppressLint +import android.graphics.Color +import android.graphics.RectF +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.View.OnTouchListener +import android.view.ViewGroup +import android.view.ViewGroup.MarginLayoutParams +import androidx.fragment.app.Fragment +import com.github.mikephil.charting.charts.BarChart +import com.github.mikephil.charting.components.XAxis +import com.github.mikephil.charting.data.BarData +import com.github.mikephil.charting.data.BarDataSet +import com.github.mikephil.charting.data.BarEntry +import com.github.mikephil.charting.data.Entry +import com.github.mikephil.charting.highlight.Highlight +import com.github.mikephil.charting.interfaces.datasets.IBarDataSet +import com.github.mikephil.charting.listener.OnChartValueSelectedListener +import com.github.mikephil.charting.utils.MPPointF +import ua.cn.stu.navigation.contract.DisconnectionAction +import ua.cn.stu.navigation.contract.HasDisconnectionAction +import ua.cn.stu.navigation.contract.navigator +import ua.cn.stu.navigation.databinding.FragmentBmsBinding +import java.util.* +import kotlin.math.roundToInt + + +class BMSFragment : Fragment(), OnChartValueSelectedListener, HasDisconnectionAction { + private lateinit var binding: FragmentBmsBinding + private var scale = 0f + private var leftMargin = 0 + private var maxLimit = 4.23f + private var minLimit = 3.74f + + @SuppressLint("SetTextI18n") + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + binding = FragmentBmsBinding.inflate(inflater, container, false) + navigator().showBottomNavigationMenu(true) + println("BMS fragment started") + scale = resources.displayMetrics.density + leftMargin = ((binding.cellHighlightIv.layoutParams as MarginLayoutParams).leftMargin/scale).roundToInt()+5 + + initializedChart(binding.batteryChart) + createSet(binding.batteryChart, scalingOfInputData(createFakeDataChart(), maxLimit, minLimit)) + setProgressBigBaterry(createFakeDataChart()) + binding.deltaVoltageLimitTv.text = "Δ ${maxLimit - minLimit} V" + binding.maxVoltageLimitTv.text = "$maxLimit V" + binding.minVoltageLimitTv.text = "$minLimit V" + + return binding.root + } + + ////////////////////////////////////////////////////////////////////////////// + /** работа с графиком **/ + ////////////////////////////////////////////////////////////////////////////// + private fun createSet(chart: BarChart, dataChart: ArrayList): BarDataSet { + val values = ArrayList() + + if (dataChart.count() >= createFakeDataChart().size) { + for (i in 0 until createFakeDataChart().size) { + val `val` = dataChart[i] + + values.add(BarEntry(i * 1.0f, `val`)) + } + } + + val set = BarDataSet(values, "Data Set") + set.colors = createColorsList(scalingOfInputData(createFakeDataChart(), maxLimit, minLimit)) + set.highLightAlpha = 1 + set.iconsOffset = MPPointF(0F, 5F) + set.valueTextColor = Color.TRANSPARENT + + + + + val dataSets = java.util.ArrayList() + dataSets.add(set) + + val data = BarData(dataSets) + chart.data = data + chart.setFitBars(true) + chart.invalidate() + return set + } + private fun initializedChart(chart: BarChart) { + chart.contentDescription + chart.setTouchEnabled(true) + chart.setOnChartValueSelectedListener(this) + chart.isDragEnabled = true + chart.isDragDecelerationEnabled = true + chart.setScaleEnabled(false) + chart.setDrawGridBackground(false) + chart.setPinchZoom(false) + chart.setBackgroundColor(Color.TRANSPARENT) + chart.getHighlightByTouchPoint(1f, 1f) + val data = BarData() + chart.data = data + chart.legend.isEnabled = false + chart.description.textColor = Color.TRANSPARENT + + chart.xAxis.position = XAxis.XAxisPosition.BOTTOM + chart.xAxis.setDrawGridLines(false) + chart.xAxis.setDrawAxisLine(false) + chart.xAxis.textColor = Color.TRANSPARENT + + chart.axisLeft.setDrawGridLines(false) + chart.axisLeft.setDrawAxisLine(false) + //TODO изменить нижний лимит и проверить как это повлияет на график без изменения датасета + chart.axisLeft.mAxisMinimum = 0f + chart.axisLeft.textColor = Color.TRANSPARENT + + chart.axisRight.setDrawGridLines(false) + chart.axisRight.setDrawAxisLine(false) + chart.axisRight.textColor = Color.TRANSPARENT + } + + private fun createFakeDataChart() :ArrayList { + val dataChart = ArrayList() + dataChart.add(10f) + dataChart.add(7.36f) + dataChart.add(3.74f) + dataChart.add(3.80f) + dataChart.add(3.85f) + dataChart.add(3.90f) + dataChart.add(3.95f) + dataChart.add(4.00f) + dataChart.add(4.05f) + dataChart.add(4.10f) + dataChart.add(4.15f) + dataChart.add(4.20f) + dataChart.add(4.23f) + dataChart.add(6f) + dataChart.add(4.20f) + dataChart.add(4.15f) + dataChart.add(4.10f) + dataChart.add(4.05f) + dataChart.add(4.00f) + dataChart.add(3.95f) + dataChart.add(3.90f) + dataChart.add(3.85f) + dataChart.add(1.82f)//3.80f) + dataChart.add(0.1f) //24 + return dataChart + } + + private fun scalingOfInputData (inputData: ArrayList, maxLimit: Float, minLimit: Float): ArrayList { + val outputData = ArrayList() + val maxV = Collections.max(inputData) + val iter: MutableIterator = inputData.iterator() + + while (iter.hasNext()) { + val scalablePoint = iter.next() + if ((scalablePoint > minLimit) && (scalablePoint < maxLimit)) { + val percentScale: Float = (maxLimit - minLimit)/100 + val percentageValue: Float = (scalablePoint-minLimit)/percentScale + val calculatedValue: Float = percentageValue*0.08f+1 + outputData.add(calculatedValue) +// System.err.println("scalablePoint: $scalablePoint --> calculatedValue: $calculatedValue") + } + if (scalablePoint <= minLimit) { + val percentScale: Float = minLimit/100 + val percentageValue: Float = scalablePoint/percentScale + val calculatedValue: Float = percentageValue*0.01f + outputData.add(calculatedValue) +// System.err.println("scalablePoint: $scalablePoint --> calculatedValue: $calculatedValue") + } + if (scalablePoint >= maxLimit) { + val percentScale: Float = (maxV-maxLimit)/100 + val percentageValue: Float = (scalablePoint-maxLimit)/percentScale + val calculatedValue: Float = percentageValue*0.01f+9 + outputData.add(calculatedValue) +// System.err.println("scalablePoint: $scalablePoint --> calculatedValue: $calculatedValue") + } + } + + // Точки максимумма и минимума, чтобы масштаб графика был соответствующим преобразованию + outputData.add(0f) + outputData.add(10f) + return outputData + } + + private fun createColorsList(scaledCellsVoltage: ArrayList): List { + val output = mutableListOf() + + for(cellVoltage in scaledCellsVoltage){ + if (cellVoltage > 6.333f && cellVoltage <= 9f) { + output.add(Color.rgb(61, 255, 88)) + System.err.println("cellVoltage: $cellVoltage green") + } + if (cellVoltage in 3.666f..6.333f) { + output.add(Color.rgb(253, 192, 48)) + System.err.println("cellVoltage: $cellVoltage yellow") + } + if (cellVoltage < 3.666f || cellVoltage > 9f) { + output.add(Color.rgb(225, 28, 41)) + System.err.println("cellVoltage: $cellVoltage red") + } + } + output[output.size-2] = Color.TRANSPARENT + output[output.size-1] = Color.TRANSPARENT + + return output + } + + @SuppressLint("SetTextI18n", "ClickableViewAccessibility") + private fun setProgressBigBaterry(inputData: ArrayList) { + val maxV = Collections.max(inputData) + var summ = 0f + for (i in 0 until inputData.size) summ += inputData[i] + val percent = ((summ/inputData.size)/(maxV/100)).toInt() + System.err.println("maxV: $maxV summ:$summ (summ/inputData.size):${(summ/inputData.size)} percent: $percent") + + + binding.batteryIndicatorSb.progress = percent + binding.batteryAverageVoltageTv.text = String.format("%.2f", summ/inputData.size) + binding.percentTv.text = percent.toString() + + //делаем сикбар некликабельным + binding.batteryIndicatorSb.setOnTouchListener { _, _ -> true } + } + + private val onValueSelectedRectF = RectF() + @SuppressLint("SetTextI18n") + override fun onValueSelected(e: Entry?, h: Highlight?) { + if ( ((h?.x)?.toInt()?.plus(1))!! <= 24) { + binding.cellHighlightIv.visibility = View.VISIBLE + binding.overflowCellHighlightIv.visibility = View.GONE + binding.darkeningTopAndBottomCellHighlightIv.visibility = View.VISIBLE + binding.voltageNumberTv.visibility = View.VISIBLE + binding.resistanceNumberTv.visibility = View.VISIBLE + binding.capacityNumberTv.visibility = View.VISIBLE + binding.voltageUnitTv.visibility = View.VISIBLE + binding.resistanceUnitTv.visibility = View.VISIBLE + binding.capacityUnitTv.visibility = View.VISIBLE + + if (createFakeDataChart()[(h.x).toInt()] > maxLimit || createFakeDataChart()[(h.x).toInt()] <= minLimit) { + binding.darkeningTopAndBottomCellHighlightIv.visibility = View.GONE + binding.cellHighlightIv.visibility = View.GONE + binding.overflowCellHighlightIv.visibility = View.VISIBLE + } + + val bounds: RectF = onValueSelectedRectF + binding.batteryChart.getBarBounds(e as BarEntry?, bounds) + binding.titleCellInfoTv.text = "CELL # " + ((h.x).toInt().plus(1)) + binding.voltageNumberTv.text = + (h.x).toInt().let { createFakeDataChart()[it] }.toString() + binding.resistanceNumberTv.text = + (createFakeDataChart()[(h.x).toInt()].toInt() * 10).toString() + binding.capacityNumberTv.text = + ((createFakeDataChart()[(h.x).toInt()] * 10).toInt() * 10).toString() + + + if (binding.cellHighlightIv.layoutParams is MarginLayoutParams) { + val p = binding.cellHighlightIv.layoutParams as MarginLayoutParams + p.setMargins(leftMargin + (bounds.left).toInt(), 0, 0, 0) + binding.cellHighlightIv.requestLayout() + } + if (binding.overflowCellHighlightIv.layoutParams is MarginLayoutParams) { + val p = binding.overflowCellHighlightIv.layoutParams as MarginLayoutParams + p.setMargins(leftMargin + (bounds.left).toInt(), 0, 0, 0) + binding.overflowCellHighlightIv.requestLayout() + } + + System.err.println("Margin left: ${(bounds.left/scale).toInt()} Highlight: ${(h.x).toInt()}") + } + } + + @SuppressLint("SetTextI18n") + override fun onNothingSelected() { + binding.cellHighlightIv.visibility = View.GONE + binding.overflowCellHighlightIv.visibility = View.GONE + binding.darkeningTopAndBottomCellHighlightIv.visibility = View.GONE + binding.voltageNumberTv.visibility = View.GONE + binding.resistanceNumberTv.visibility = View.GONE + binding.capacityNumberTv.visibility = View.GONE + + binding.voltageUnitTv.visibility = View.GONE + binding.resistanceUnitTv.visibility = View.GONE + binding.capacityUnitTv.visibility = View.GONE + + binding.titleCellInfoTv.text = "SELECT CELL" + + } + + override fun getDisconnectionAction(): DisconnectionAction { + return DisconnectionAction( + onDisconnectionAction = { + showDisconnectionDialog() + } + ) + } + + private fun showDisconnectionDialog() { + navigator().showDisconnectDialog() + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/DebugFragment.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/DebugFragment.kt new file mode 100644 index 000000000..eb1cb7aa2 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/DebugFragment.kt @@ -0,0 +1,176 @@ +package ua.cn.stu.navigation.fragments + +import android.annotation.SuppressLint +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.github.mikephil.charting.data.Entry +import com.github.mikephil.charting.highlight.Highlight +import com.github.mikephil.charting.listener.OnChartValueSelectedListener +import io.reactivex.android.schedulers.AndroidSchedulers +import ua.cn.stu.navigation.MainActivity.Companion.param1 +import ua.cn.stu.navigation.MainActivity.Companion.param2 +import ua.cn.stu.navigation.MainActivity.Companion.param3 +import ua.cn.stu.navigation.MainActivity.Companion.param4 +import ua.cn.stu.navigation.MainActivity.Companion.param5 +import ua.cn.stu.navigation.MainActivity.Companion.param6 +import ua.cn.stu.navigation.MainActivity.Companion.param7 +import ua.cn.stu.navigation.MainActivity.Companion.param8 +import ua.cn.stu.navigation.MainActivity.Companion.param9 +import ua.cn.stu.navigation.MainActivity.Companion.param10 +import ua.cn.stu.navigation.MainActivity.Companion.param11 +import ua.cn.stu.navigation.MainActivity.Companion.param12 +import ua.cn.stu.navigation.MainActivity.Companion.param13 +import ua.cn.stu.navigation.MainActivity.Companion.param14 +import ua.cn.stu.navigation.MainActivity.Companion.param15 +import ua.cn.stu.navigation.MainActivity.Companion.param16 +import ua.cn.stu.navigation.MainActivity.Companion.param17 +import ua.cn.stu.navigation.MainActivity.Companion.param18 +import ua.cn.stu.navigation.MainActivity.Companion.param19 +import ua.cn.stu.navigation.MainActivity.Companion.param20 +import ua.cn.stu.navigation.MainActivity.Companion.param21 +import ua.cn.stu.navigation.MainActivity.Companion.param22 +import ua.cn.stu.navigation.MainActivity.Companion.param23 +import ua.cn.stu.navigation.MainActivity.Companion.param24 +import ua.cn.stu.navigation.MainActivity.Companion.param25 +import ua.cn.stu.navigation.MainActivity.Companion.param26 +import ua.cn.stu.navigation.MainActivity.Companion.param27 +import ua.cn.stu.navigation.MainActivity.Companion.param28 +import ua.cn.stu.navigation.MainActivity.Companion.param29 +import ua.cn.stu.navigation.MainActivity.Companion.param30 + +import ua.cn.stu.navigation.MainActivity.Companion.param1name +import ua.cn.stu.navigation.MainActivity.Companion.param2name +import ua.cn.stu.navigation.MainActivity.Companion.param3name +import ua.cn.stu.navigation.MainActivity.Companion.param4name +import ua.cn.stu.navigation.MainActivity.Companion.param5name +import ua.cn.stu.navigation.MainActivity.Companion.param6name +import ua.cn.stu.navigation.MainActivity.Companion.param7name +import ua.cn.stu.navigation.MainActivity.Companion.param8name +import ua.cn.stu.navigation.MainActivity.Companion.param9name +import ua.cn.stu.navigation.MainActivity.Companion.param10name +import ua.cn.stu.navigation.MainActivity.Companion.param11name +import ua.cn.stu.navigation.MainActivity.Companion.param12name +import ua.cn.stu.navigation.MainActivity.Companion.param13name +import ua.cn.stu.navigation.MainActivity.Companion.param14name +import ua.cn.stu.navigation.MainActivity.Companion.param15name +import ua.cn.stu.navigation.MainActivity.Companion.param16name +import ua.cn.stu.navigation.MainActivity.Companion.param17name +import ua.cn.stu.navigation.MainActivity.Companion.param18name +import ua.cn.stu.navigation.MainActivity.Companion.param19name +import ua.cn.stu.navigation.MainActivity.Companion.param20name +import ua.cn.stu.navigation.MainActivity.Companion.param21name +import ua.cn.stu.navigation.MainActivity.Companion.param22name +import ua.cn.stu.navigation.MainActivity.Companion.param23name +import ua.cn.stu.navigation.MainActivity.Companion.param24name +import ua.cn.stu.navigation.MainActivity.Companion.param25name +import ua.cn.stu.navigation.MainActivity.Companion.param26name +import ua.cn.stu.navigation.MainActivity.Companion.param27name +import ua.cn.stu.navigation.MainActivity.Companion.param28name +import ua.cn.stu.navigation.MainActivity.Companion.param29name +import ua.cn.stu.navigation.MainActivity.Companion.param30name +import ua.cn.stu.navigation.contract.DisconnectionAction +import ua.cn.stu.navigation.contract.HasDisconnectionAction + +import ua.cn.stu.navigation.contract.navigator +import ua.cn.stu.navigation.databinding.FragmentDebugBinding +import ua.cn.stu.navigation.rx.RxUpdateMainEvent + +class DebugFragment : Fragment(), HasDisconnectionAction { + private lateinit var binding: FragmentDebugBinding + + + @SuppressLint("CheckResult") + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + binding = FragmentDebugBinding.inflate(inflater, container, false) + navigator().showBottomNavigationMenu(true) + println("Debug fragment started") + + RxUpdateMainEvent.getInstance().debugFragmentObservable + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { updateUI() } + + return binding.root + } + + private fun updateUI() { +// System.err.println("--> updateUI param1:$param1 param1name:$param1name") + binding.param1.text = param1.value + binding.val1.text = param1name.value + binding.param2.text = param2.value + binding.val2.text = param2name.value + binding.param3.text = param3.value + binding.val3.text = param3name.value + binding.param4.text = param4.value + binding.val4.text = param4name.value + binding.param5.text = param5.value + binding.val5.text = param5name.value + binding.param6.text = param6.value + binding.val6.text = param6name.value + binding.param7.text = param7.value + binding.val7.text = param7name.value + binding.param8.text = param8.value + binding.val8.text = param8name.value + binding.param9.text = param9.value + binding.val9.text = param9name.value + + binding.param10.text = param10.value + binding.val10.text = param10name.value + binding.param11.text = param11.value + binding.val11.text = param11name.value + binding.param12.text = param12.value + binding.val12.text = param12name.value + binding.param13.text = param13.value + binding.val13.text = param13name.value + binding.param14.text = param14.value + binding.val14.text = param14name.value + binding.param15.text = param15.value + binding.val15.text = param15name.value + binding.param16.text = param16.value + binding.val16.text = param16name.value + binding.param17.text = param17.value + binding.val17.text = param17name.value + binding.param18.text = param18.value + binding.val18.text = param18name.value + binding.param19.text = param19.value + binding.val19.text = param19name.value + + binding.param20.text = param20.value + binding.val20.text = param20name.value + binding.param21.text = param21.value + binding.val21.text = param21name.value + binding.param22.text = param22.value + binding.val22.text = param22name.value + binding.param23.text = param23.value + binding.val23.text = param23name.value + binding.param24.text = param24.value + binding.val24.text = param24name.value + binding.param25.text = param25.value + binding.val25.text = param25name.value + binding.param26.text = param26.value + binding.val26.text = param26name.value + binding.param27.text = param27.value + binding.val27.text = param27name.value + binding.param28.text = param28.value + binding.val28.text = param28name.value + binding.param29.text = param29.value + binding.val29.text = param29name.value + + binding.param30.text = param30.value + binding.val30.text = param30name.value + } + + override fun getDisconnectionAction(): DisconnectionAction { + return DisconnectionAction( + onDisconnectionAction = { + showDisconnectionDialog() + } + ) + } + + private fun showDisconnectionDialog() { + navigator().showDisconnectDialog() + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/ExempleClass.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/ExempleClass.kt new file mode 100644 index 000000000..28664ec17 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/ExempleClass.kt @@ -0,0 +1,51 @@ +package ua.cn.stu.navigation.fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.compose.foundation.Canvas +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material.Surface +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.ComposeView +import androidx.fragment.app.Fragment +import ua.cn.stu.navigation.R +import ua.cn.stu.navigation.ui.theme.NavigationTheme +import kotlin.random.Random + +class ExempleClass: Fragment() { + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + + return drow(inflater, container) + } + + private fun drow(inflater: LayoutInflater, container: ViewGroup?): View { + return inflater.inflate(R.layout.fragment_terminal , container, false).apply { + findViewById(R.id.terminal_composable)?.setContent { + var count by remember { mutableStateOf(0) } + + NavigationTheme { + Surface( + modifier = Modifier.fillMaxSize() + ) { + run { + Canvas( + modifier = Modifier + .clickable { count ++ } + ) { + //некая функция отрисовки на холсте + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/HomeFragment.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/HomeFragment.kt new file mode 100644 index 000000000..eb69b3b02 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/HomeFragment.kt @@ -0,0 +1,309 @@ +package ua.cn.stu.navigation.fragments + + +import android.animation.AnimatorSet +import android.animation.ObjectAnimator +import android.annotation.SuppressLint +import android.app.Dialog +import android.os.Bundle +import android.os.CountDownTimer +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.animation.Animation +import android.view.animation.LinearInterpolator +import android.view.animation.RotateAnimation +import android.widget.SeekBar +import android.widget.SeekBar.OnSeekBarChangeListener +import androidx.fragment.app.Fragment +import io.reactivex.android.schedulers.AndroidSchedulers +import ua.cn.stu.navigation.MainActivity.Companion.param2name +import ua.cn.stu.navigation.R +import ua.cn.stu.navigation.contract.* +import ua.cn.stu.navigation.databinding.FragmentHomeBinding +import ua.cn.stu.navigation.rx.RxUpdateMainEvent + + +class HomeFragment : Fragment(), HasDisconnectionAction { + + private lateinit var binding: FragmentHomeBinding + private var myDialogInfo: Dialog? = null + private var timer: CountDownTimer? = null + private var actualAngle = 0f + private var finishAngle = 0f + private var actualPercentAlpha = 0f + private var finishPercentAlpha = 0f + private var tripCount = 0 + private var odoCount = 0 + private var coveredDistance = 0 + private var animationAllowed = true + private val ANIMATION_DURATION = 300L + private var stateMode = "ECO" + private var statePower = "kW" + private var stateBattery = "%" + private var stateTemperatureSource = "CONTROLLER" + private var trackingAngle = 0f + + @SuppressLint("InflateParams", "SetTextI18n", "ClickableViewAccessibility", "CheckResult", + "NotifyDataSetChanged", "UseCompatLoadingForDrawables" + ) + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + binding = FragmentHomeBinding.inflate(inflater, container, false) + myDialogInfo = Dialog(requireContext()) + navigator().showBottomNavigationMenu(true) + println("Home fragment started") + + binding.testSb.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { + override fun onStopTrackingTouch(seekBar: SeekBar) {} + override fun onStartTrackingTouch(seekBar: SeekBar) {} + + override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { + finishAngle = progress.toFloat() - 135f + finishPercentAlpha = progress.toFloat()/172*100 + rotateArrow(finishAngle, finishPercentAlpha) + binding.mainSpeedTv.text = progress.toString() + binding.powerTv.text = "+" + (14 - (progress.toFloat()/10).toInt()) + "." + progress%10 + if (progress%24 == 0) { + tripCount += 1 + if (tripCount < 1000) binding.tripTv.text = "TRIP: 00$tripCount" + if (tripCount < 100) binding.tripTv.text = "TRIP: 000$tripCount" + if (tripCount < 10) binding.tripTv.text = "TRIP: 0000$tripCount" + } + if (progress%13 == 0) { + odoCount += 1 + if (tripCount < 1000) binding.odoTv.text = "ODO: 00$odoCount" + if (tripCount < 100) binding.odoTv.text = "ODO: 000$odoCount" + if (tripCount < 10) binding.odoTv.text = "ODO: 0000$odoCount" + } + binding.percentBatteryTv.text = (progress.toFloat()/10).toInt().toString() + if (progress%100 == 0) { + coveredDistance += 1 + binding.coveredDistanceTv.text = coveredDistance.toString() + } + binding.percentDistanceTv.text = (progress.toFloat()/172*100).toInt().toString() + + + if (progress < 10) { binding.dotsTv.text = ". . . . " } + if (progress >= 10) { binding.dotsTv.text = ". . . " } + if (progress >= 100) { binding.dotsTv.text = ". ." } + + binding.mainTemperatureTv.text = "$progress°" + } + }) + + binding.modeBtn.setOnClickListener { + System.err.println("Click mode button") + when(stateMode) { + "ECO" -> { + binding.modeTv.text = "NORMAL" + binding.highlightsMainIv.setImageDrawable(context?.resources?.getDrawable(R.drawable.side_highlights_blue)) + stateMode = "NORMAL" + } + "NORMAL" -> { + binding.modeTv.text = "BOOST" + binding.highlightsMainIv.setImageDrawable(context?.resources?.getDrawable(R.drawable.side_highlights_red)) + stateMode = "BOOST" + } + "BOOST" -> { + binding.modeTv.text = "ECO" + binding.highlightsMainIv.setImageDrawable(context?.resources?.getDrawable(R.drawable.side_highlights_green)) + stateMode = "ECO" + } + } + } + + binding.powerBtn.setOnClickListener { + when(statePower) { + "kW" -> { + binding.powerUnitsTv.text = "A" + statePower = "A" + } + "A" -> { + binding.powerUnitsTv.text = "kW" + statePower = "kW" + } + } + } + + binding.batteryPercentBtn.setOnClickListener { + when(stateBattery) { + "%" -> { + binding.percentBatteryUnitsTv.text = "A" + stateBattery = "A" + } + "A" -> { + binding.percentBatteryUnitsTv.text = "%" + stateBattery = "%" + } + } + } + + binding.temperatureSourceBtn.setOnClickListener { + when(stateTemperatureSource) { + "CONTROLLER" -> { + binding.mainTemperatureUnitTv.text = "MOTOR" + stateTemperatureSource = "MOTOR" + } + "MOTOR" -> { + binding.mainTemperatureUnitTv.text = "BATTERY" + stateTemperatureSource = "BATTERY" + } + "BATTERY" -> { + binding.mainTemperatureUnitTv.text = "CONTROLLER" + stateTemperatureSource = "CONTROLLER" + } + } + } + + RxUpdateMainEvent.getInstance().homeFragmentObservable + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { +// binding.testSb.progress = param2name.value!!.toInt() + } + + return binding.root + } + + + @SuppressLint("Recycle") + private fun rotateArrow(finishlAngleFunc: Float, finishlAlphaFunc: Float) { + if (animationAllowed) { + animationAllowed = false + + val rotatinA: ObjectAnimator = + ObjectAnimator.ofFloat(binding.speedArrowIv, View.ROTATION, actualAngle, finishlAngleFunc) + rotatinA.duration = ANIMATION_DURATION + rotatinA.interpolator = LinearInterpolator() + + val animA = AnimatorSet() + animA.play(rotatinA) + animA.start() + + val rotatinB: ObjectAnimator = + ObjectAnimator.ofFloat(binding.speedArrowLvl3Iv, View.ROTATION, actualAngle, finishlAngleFunc) + rotatinB.duration = ANIMATION_DURATION + rotatinB.interpolator = LinearInterpolator() + + val alphaB: ObjectAnimator = ObjectAnimator.ofFloat(binding.speedArrowLvl3Iv, View.ALPHA, actualPercentAlpha/75 - 0.5f, finishlAlphaFunc/75 - 0.5f) + alphaB.duration = ANIMATION_DURATION + alphaB.interpolator = LinearInterpolator() + + val animB = AnimatorSet() + animB.play(rotatinB).with(alphaB) + animB.start() + + val rotate: ObjectAnimator = + ObjectAnimator.ofFloat(binding.speedArrowLvlMinus1Iv, View.ROTATION, actualAngle, finishlAngleFunc) + rotate.duration = ANIMATION_DURATION + rotate.interpolator = LinearInterpolator() + + val anim = AnimatorSet() + anim.play(rotate) + anim.start() + + + val rotate2 = RotateAnimation( + 25f - actualAngle, + 25f - finishlAngleFunc, + Animation.RELATIVE_TO_SELF, + 0.5f, + Animation.RELATIVE_TO_SELF, + 0.5f + ) + rotate2.duration = ANIMATION_DURATION + rotate2.fillAfter = true + rotate2.interpolator = LinearInterpolator() + binding.powerArrowIv.startAnimation(rotate2) + + val rotate3 = RotateAnimation( + actualAngle/4 - 8f, + finishlAngleFunc/4 - 8f, + Animation.RELATIVE_TO_SELF, + 0.5f, + Animation.RELATIVE_TO_SELF, + 0.5f + ) + rotate3.duration = ANIMATION_DURATION + rotate3.fillAfter = true + rotate3.interpolator = LinearInterpolator() + binding.percentBatteryIv.startAnimation(rotate3) + + + val rotatin4A: ObjectAnimator = + ObjectAnimator.ofFloat(binding.temperatureIv, View.ROTATION, 15f - actualAngle/4 - 8f, 15f - finishlAngleFunc/4 - 8f) + rotatin4A.duration = ANIMATION_DURATION + rotatin4A.interpolator = LinearInterpolator() + + val alpha4A: ObjectAnimator = ObjectAnimator.ofFloat(binding.temperatureIv, View.ALPHA, 1f - actualPercentAlpha /100, 1f - finishlAlphaFunc/100) + alpha4A.duration = ANIMATION_DURATION + alpha4A.interpolator = LinearInterpolator() + + val anim4A = AnimatorSet() + anim4A.play(rotatin4A).with(alpha4A) + anim4A.start() + + val rotatin4B: ObjectAnimator = + ObjectAnimator.ofFloat(binding.temperatureAlertCircleIv, View.ROTATION, 15f - actualAngle/4 - 8f, 15f - finishlAngleFunc/4 - 8f) + rotatin4B.duration = ANIMATION_DURATION + rotatin4B.interpolator = LinearInterpolator() + + val alpha4B: ObjectAnimator = ObjectAnimator.ofFloat(binding.temperatureAlertCircleIv, View.ALPHA, actualPercentAlpha /100, finishlAlphaFunc/100) + alpha4B.duration = ANIMATION_DURATION + alpha4B.interpolator = LinearInterpolator() + + val anim4B = AnimatorSet() + anim4B.play(rotatin4B).with(alpha4B) + anim4B.start() + + + + timer = object : CountDownTimer(ANIMATION_DURATION, 1) { + override fun onTick(millisUntilFinished: Long) { +// System.err.println("finishlAngleFunc = $finishlAngleFunc finishAngle = $finishAngle actualAngle = $actualAngle") + var delta = kotlin.math.abs(finishlAngleFunc - actualAngle) + if (actualAngle > finishlAngleFunc) { delta *= -1 } + val unitAngle = delta/ANIMATION_DURATION + trackingAngle = actualAngle + (ANIMATION_DURATION - millisUntilFinished)*unitAngle +// System.err.println("finishlAngleFunc > delta:$delta unitAngle:$unitAngle millisUntilFinished:$millisUntilFinished trackingAngle:$trackingAngle") + + + if (trackingAngle < -112) { + binding.speedArrowLvlMinus1Iv.visibility = View.VISIBLE + binding.closingSpeedArrowLvlMinus1rIv.visibility = View.VISIBLE + + binding.speedArrowIv.visibility = View.GONE + } else { + binding.speedArrowLvlMinus1Iv.visibility = View.GONE + binding.closingSpeedArrowLvlMinus1rIv.visibility = View.GONE + + binding.speedArrowIv.visibility = View.VISIBLE + } + } + + override fun onFinish() { + animationAllowed = true + actualAngle = finishAngle + actualPercentAlpha = finishPercentAlpha + if (finishAngle != finishlAngleFunc) { +// System.err.println("finishlAngleFunc = $finishlAngleFunc finishAngle = $finishAngle actualAngle = $actualAngle") + actualAngle = finishlAngleFunc + actualPercentAlpha = finishlAlphaFunc + rotateArrow(finishAngle, finishPercentAlpha) + } + } + }.start() + } + } + + override fun getDisconnectionAction(): DisconnectionAction { + return DisconnectionAction( + onDisconnectionAction = { + showDisconnectionDialog() + } + ) + } + + private fun showDisconnectionDialog() { + navigator().showDisconnectDialog() + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/ScanningFragment.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/ScanningFragment.kt new file mode 100644 index 000000000..89d4947ce --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/ScanningFragment.kt @@ -0,0 +1,111 @@ +package ua.cn.stu.navigation.fragments + +import android.annotation.SuppressLint +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import io.reactivex.android.schedulers.AndroidSchedulers +import ua.cn.stu.navigation.MainActivity.Companion.connectedDevice +import ua.cn.stu.navigation.MainActivity.Companion.connectedDeviceAddress +import ua.cn.stu.navigation.MainActivity.Companion.flagScanWithoutConnect +import ua.cn.stu.navigation.MainActivity.Companion.lastConnectDeviceAddress +import ua.cn.stu.navigation.MainActivity.Companion.reconnectThreadFlag +import ua.cn.stu.navigation.R +import ua.cn.stu.navigation.contract.* +import ua.cn.stu.navigation.databinding.FragmentScanningBinding +import ua.cn.stu.navigation.persistence.preference.PreferenceKeys +import ua.cn.stu.navigation.recyclers_adapters.ScanningAdapter +import ua.cn.stu.navigation.rx.RxUpdateMainEvent + +class ScanningFragment : Fragment(), HasCustomTitle, HasReturnAction { + + private lateinit var binding: FragmentScanningBinding + private var linearLayoutManager: LinearLayoutManager? = null + private var adapter: ScanningAdapter? = null + + + @SuppressLint("CheckResult") + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + binding = FragmentScanningBinding.inflate(inflater, container, false) + navigator().showBottomNavigationMenu(false) + + println("Scanning fragment started") + + RxUpdateMainEvent.getInstance().scanListObservable + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { scanItem -> + try { + println("validate lastConnectDeviceAddress: $lastConnectDeviceAddress scanItem.getAddr(): ${scanItem.getAddr()}") + if (scanItem.getAddr() == lastConnectDeviceAddress) { + connectedDevice = scanItem.getTitle() + connectedDeviceAddress = lastConnectDeviceAddress + navigator().saveString(PreferenceKeys.CONNECTED_DEVICE, connectedDevice) + navigator().saveString(PreferenceKeys.CONNECTED_DEVICE_ADDRESS, connectedDeviceAddress) + navigator().scanLeDevice(false) + goToHome() + flagScanWithoutConnect = false + reconnectThreadFlag = true + navigator().reconnectThread() + } + addScanListItem() + } catch (ignored: Exception) { + println("ОШИБКА СКАНИРОВАНИЯ!!!") + } + } + + initAdapter(binding.scanningRv) + return binding.root + } + + @SuppressLint("NotifyDataSetChanged") + private fun addScanListItem() { + activity?.runOnUiThread { + System.err.println("addScanListItem itemCount="+adapter?.getItemCount()) +// adapter?.notifyItemChanged(adapter?.getItemCount()!!.minus(1)) + adapter?.notifyDataSetChanged() + } + } + + + private fun initAdapter(profile_rv: RecyclerView) { + linearLayoutManager = LinearLayoutManager(context) + linearLayoutManager!!.orientation = LinearLayoutManager.VERTICAL + profile_rv.layoutManager = linearLayoutManager + adapter = ScanningAdapter(object : OnScanClickListener { + @SuppressLint("NotifyDataSetChanged") + override fun onClicked(name: String, address: String) { + println("tup scan name = $name address = $address") + connectedDevice = name + connectedDeviceAddress = address + lastConnectDeviceAddress = address + navigator().saveString(PreferenceKeys.CONNECTED_DEVICE, connectedDevice) + navigator().saveString(PreferenceKeys.CONNECTED_DEVICE_ADDRESS, connectedDeviceAddress) + navigator().saveString(PreferenceKeys.LAST_CONNECTED_DEVICE_ADDRESS, lastConnectDeviceAddress) + navigator().scanLeDevice(false) + goToHome() + flagScanWithoutConnect = false + reconnectThreadFlag = true + navigator().reconnectThread() + } + }) + profile_rv.adapter = adapter + } + + + override fun getTitleRes(): String = getString(R.string.scanning_ble_device) + override fun getReturnAction(): ReturnAction { + return ReturnAction( + onReturnAction = { + goToHome() + } + ) + } + + private fun goToHome() { + navigator().firstOpenHome() + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/StatisticFragment.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/StatisticFragment.kt new file mode 100644 index 000000000..d573d0d8d --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/StatisticFragment.kt @@ -0,0 +1,56 @@ +package ua.cn.stu.navigation.fragments + +import android.annotation.SuppressLint +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import ua.cn.stu.navigation.MainActivity +import ua.cn.stu.navigation.contract.* +import ua.cn.stu.navigation.databinding.FragmentStatisticBinding +import ua.cn.stu.navigation.persistence.preference.PreferenceKeys +import ua.cn.stu.navigation.recyclers_adapters.ScanningAdapter +import ua.cn.stu.navigation.recyclers_adapters.StatisticAdapter + +class StatisticFragment: Fragment(), HasDisconnectionAction { + private lateinit var binding: FragmentStatisticBinding + private var linearLayoutManager: LinearLayoutManager? = null + private var adapter: StatisticAdapter? = null + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + binding = FragmentStatisticBinding.inflate(inflater, container, false) + navigator().showBottomNavigationMenu(true) + println("STATISTIC fragment started") + + initAdapter(binding.staticRv) + return binding.root + } + + private fun initAdapter(profile_rv: RecyclerView) { + linearLayoutManager = LinearLayoutManager(context) + linearLayoutManager!!.orientation = LinearLayoutManager.VERTICAL + profile_rv.layoutManager = linearLayoutManager + adapter = StatisticAdapter(object : OnStatClickListener { + @SuppressLint("NotifyDataSetChanged") + override fun onClicked(name: String) { + println("tup stat name = $name ") + } + }) + profile_rv.adapter = adapter + } + + override fun getDisconnectionAction(): DisconnectionAction { + return DisconnectionAction( + onDisconnectionAction = { + showDisconnectionDialog() + } + ) + } + + private fun showDisconnectionDialog() { + navigator().showDisconnectDialog() + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/TerminalFragment.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/TerminalFragment.kt new file mode 100644 index 000000000..05730fb95 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/fragments/TerminalFragment.kt @@ -0,0 +1,468 @@ +package ua.cn.stu.navigation.fragments + +import android.annotation.SuppressLint +import android.os.Bundle +import android.util.DisplayMetrics +import android.view.* +import android.widget.Toast +import androidx.annotation.DrawableRes +import androidx.compose.foundation.* +import androidx.compose.foundation.gestures.detectTapGestures +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.* +import androidx.compose.runtime.* +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Matrix +import androidx.compose.ui.graphics.drawscope.withTransform +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.unit.dp +import androidx.fragment.app.Fragment +import io.reactivex.android.schedulers.AndroidSchedulers +import kotlinx.android.synthetic.main.fragment_terminal.* +import ua.cn.stu.navigation.MainActivity +import ua.cn.stu.navigation.R +import ua.cn.stu.navigation.contract.DisconnectionAction +import ua.cn.stu.navigation.contract.HasDisconnectionAction +import ua.cn.stu.navigation.services.TerminalViewModel +import ua.cn.stu.navigation.contract.navigator +import ua.cn.stu.navigation.databinding.FragmentTerminalBinding +import ua.cn.stu.navigation.persistence.TerminalConstants.TERMINAL_HIGHT +import ua.cn.stu.navigation.persistence.TerminalConstants.TERMINAL_WEIGHT +import ua.cn.stu.navigation.rx.RxUpdateMainEvent +import ua.cn.stu.navigation.ui.theme.NavigationTheme +import java.util.* +import kotlin.random.Random.Default.nextBytes + + +class TerminalFragment : Fragment(), HasDisconnectionAction { + private var viewModel: TerminalViewModel = TerminalViewModel() + + private lateinit var binding: FragmentTerminalBinding + private var size_pixel = 3.09f + private val targetDisplayScale = 2.625f + private var scaleCoefficient = Vector() + private var scale = 0f + private var dpi = 0 + private var frameCount = 0 + private var bytes = ByteArray(1056) + private var myInflater: LayoutInflater? = null + private var myContainer: ViewGroup? = null + private var pixelsPool = 0 + private var buttonScale = 70.dp + + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + binding = FragmentTerminalBinding.inflate(inflater, container, false) + navigator().showBottomNavigationMenu(true) + System.err.println("TERMINAL fragment started") + + myInflater = inflater + myContainer = container + if (MainActivity.bytesArrayFrame.value != null) { + System.err.println("bytesArrayFrame NOT NULL!!!!") + bytes = MainActivity.bytesArrayFrame.value!! + } else { + System.err.println("bytesArrayFrame NULL") + nextBytes(bytes) + } + + scale = resources.displayMetrics.density + setScaleCoefficients() + setButtonsScale() +// startTimer() + + RxUpdateMainEvent.getInstance().terminalFragmentObservable + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { + bytes = MainActivity.bytesArrayFrame.value!! + viewModel.addNumber(frameCount++) + } + + + + return drow(inflater, container) + } + + + + @Suppress("UNUSED_EXPRESSION") + @SuppressLint("UnrememberedMutableState") + private fun drow(inflater: LayoutInflater, container: ViewGroup?): View { + val myCompouseView = inflater.inflate(R.layout.fragment_terminal , container, false).apply { + findViewById(R.id.terminal_composable)?.setContent { + NavigationTheme { + val count by viewModel.number.observeAsState(0) + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = Color.Yellow.copy(alpha = 0f) + ) { + run { + val vector = + ImageVector.vectorResource(id = R.drawable.ic_drawing)//drawable vector + val painter = rememberVectorPainter(image = vector)//convert to painter + val translateCoeff = size_pixel * scale + val scaleXCoeff = scaleCoefficient[0] + val scaleYCoeff = scaleCoefficient[1] + count + Canvas( + modifier = Modifier.pointerInput(Unit) { + detectTapGestures( + onTap = { + if ((calculateXPixel((it.x).toInt()) in 1..TERMINAL_WEIGHT) && (calculateYPixel( + (it.y).toInt() + ) in 1..TERMINAL_HIGHT + ) + ) { + navigator().sendCoordFromTerminal(calculateXPixel((it.x).toInt()), calculateYPixel((it.y).toInt())) + } + } + ) + } + ) { + for (i in 1 until TERMINAL_WEIGHT) { + for (j in 1 until TERMINAL_HIGHT) { +// composableScope.launch { + pixelsPool = bytes[((i - 1) * 8) + (j - 1).div(8)].toInt() +// } + + if (pixelsPool shr (j % 8) and 0b00000001 == 1) { +// System.err.println("BYTES bitsets $i $j-1") + withTransform( + { + transform( + Matrix().apply { + scale(scaleXCoeff, scaleYCoeff) + translate( + i * translateCoeff, + j * translateCoeff + ) + } + ) + } + ) { + with(painter) { + draw( + painter.intrinsicSize + ) + } + } + } else { +// System.err.println("BYTES bitsets $i $j-0") + } + } + } + } + } + } + + Column( horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(8.dp, Alignment.Bottom)) + { + Row (horizontalArrangement = Arrangement.spacedBy(8.dp)) { + ButtonDemo(R.drawable.arrow_cancel, "cancel") + ButtonDemo(R.drawable.arrow_up, "up") + Box(modifier = Modifier + .background(Color.Transparent) + .height(buttonScale) + .width(buttonScale)) + } + Row (horizontalArrangement = Arrangement.spacedBy(8.dp)) { + ButtonDemo(R.drawable.arrow_left, "left") + ButtonDemo(R.drawable.center, "center") + ButtonDemo(R.drawable.arrow_right, "right") + } + Row (horizontalArrangement = Arrangement.spacedBy(8.dp)) { + Box(modifier = Modifier + .background(Color.Transparent) + .height(buttonScale) + .width(buttonScale)) + ButtonDemo(R.drawable.arrow_down, "down") + Box(modifier = Modifier + .background(Color.Transparent) + .height(buttonScale) + .width(buttonScale)) + } + } + + } + } + } + + return myCompouseView + } + + @Composable + fun ButtonDemo (@DrawableRes id: Int, idClick: String) { + val context = LocalContext.current + Button(onClick = { + when(idClick) { + "cancel" -> { + Toast.makeText(context, "Clicked on cancel", Toast.LENGTH_SHORT).show() + navigator().sendButtonFromTerminal(1) + } + "up" -> { + Toast.makeText(context, "Clicked on up", Toast.LENGTH_SHORT).show() + navigator().sendButtonFromTerminal(2) + } + "down" -> { + Toast.makeText(context, "Clicked on down", Toast.LENGTH_SHORT).show() + navigator().sendButtonFromTerminal(3) + } + "left" -> { + Toast.makeText(context, "Clicked on left", Toast.LENGTH_SHORT).show() + navigator().sendButtonFromTerminal(4) + } + "right" -> { + Toast.makeText(context, "Clicked on right", Toast.LENGTH_SHORT).show() + navigator().sendButtonFromTerminal(5) + } + "center" -> { + Toast.makeText(context, "Clicked on center", Toast.LENGTH_SHORT).show() + navigator().sendButtonFromTerminal(6) + } + }}, + modifier = Modifier + .height(buttonScale) + .width(buttonScale), + shape = RoundedCornerShape(20), + border = BorderStroke(2.dp, Color.White), + colors = ButtonDefaults.textButtonColors( + backgroundColor = Color.DarkGray, + contentColor = Color.White + ) + ) + { + Image( + painter = painterResource(id = id), + contentDescription = "Image", + modifier = Modifier + .height(buttonScale - 20.dp) + .width(buttonScale - 20.dp) + + ) + } + } + private fun getScreenWeight(): Int { + val metrics = DisplayMetrics() + + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { + @Suppress("DEPRECATION") + activity?.display?.getRealMetrics(metrics) + } else { + @Suppress("DEPRECATION") + activity?.windowManager?.defaultDisplay?.getMetrics(metrics) + } + return metrics.widthPixels + } + private fun getScreenHight(): Int { + val metrics = DisplayMetrics() + + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { + @Suppress("DEPRECATION") + activity?.display?.getRealMetrics(metrics) + } else { + @Suppress("DEPRECATION") + activity?.windowManager?.defaultDisplay?.getMetrics(metrics) + } + return metrics.heightPixels + } + private fun setScaleCoefficients() { + size_pixel = size_pixel / scale * targetDisplayScale + dpi = resources.displayMetrics.densityDpi + scale = resources.displayMetrics.density + when (dpi) { + 320 -> { + when(getScreenWeight()) { + in 0..720 -> { scaleCoefficient.add(1.33f/scale) } + } + when(getScreenHight()) { + in 0..1280 -> { scaleCoefficient.add(1.63f/scale) } + in 1281..1440 -> { scaleCoefficient.add(1.9f/scale) } + } + } + 400 -> { + when(getScreenWeight()) { + in 0..1080 -> { scaleCoefficient.add(2.5f/scale) } + } + when(getScreenHight()) { + in 0..2160 -> { scaleCoefficient.add(3.7f/scale) } + } + } + 420 -> { + when(getScreenWeight()) { + in 0..1080 -> { scaleCoefficient.add(2.63f/scale) } + in 1081..2200 -> { scaleCoefficient.add(5.35f/scale) } + } + when(getScreenHight()) { + in 0..1920 -> { scaleCoefficient.add(3.31f/scale) } + in 1921..2428 -> { scaleCoefficient.add(4.4f/scale) } + in 2429..2480 -> { scaleCoefficient.add(4.53f/scale) } + } + } + 440 -> { + when(getScreenWeight()) { + in 0..1080 -> { scaleCoefficient.add(2.74f/scale) } + } + when(getScreenHight()) { + in 0..2340 -> { scaleCoefficient.add(4.4f/scale) } + } + } + 480 -> { + when(getScreenWeight()) { + in 0..1080 -> { scaleCoefficient.add(3f/scale) } + } + when(getScreenHight()) { + in 0..1920 -> { scaleCoefficient.add(3.65f/scale) } + in 1921..2400 -> { scaleCoefficient.add(4.8f/scale) } + in 2401..2636 -> { scaleCoefficient.add(5.4f/scale) } + } + } + 560 -> { + when(getScreenWeight()) { + in 0..1440 -> { scaleCoefficient.add(4.65f/scale) } + } + when(getScreenHight()) { + in 0..2560 -> { scaleCoefficient.add(5.9f/scale) } + } + } + } + } + private fun setButtonsScale() { + when (dpi) { + 320 -> { + when(getScreenHight()) { + in 0..1280 -> { buttonScale = 58.dp } + in 1281..1440 -> { buttonScale = 70.dp } + } + } + 400 -> { buttonScale = 85.dp } + 420 -> { + when(getScreenHight()) { + in 0..1920 -> { buttonScale = 70.dp } + in 1921..2428 -> { buttonScale = 95.dp } + in 2429..2480 -> { buttonScale = 97.dp } + } + } + 440 -> { buttonScale = 85.dp } + 480 -> { + when(getScreenHight()) { + in 0..1920 -> { buttonScale = 57.dp } + in 1921..2400 -> { +// System.err.println("metrics getScreenHight 1921..2400") + buttonScale = 80.dp + } + in 2401..2636 -> { buttonScale = 90.dp } + } + } + 560 -> { buttonScale = 70.dp } + } + } + private fun calculateXPixel(x: Int): Int { + val minX = intArrayOf(46, 17, 14, 9, 11, 6, 13, 5, 7, 10) + val maxX = intArrayOf(1044, 2182, 1075, 1070, 1070, 1074, 1069, 711, 1070, 1425) + var konfig = 0 + when (dpi) { + 320 -> { + when(getScreenHight()) { + in 0..1280 -> { konfig = 7 } + in 1281..1440 -> { scaleCoefficient.add(1.9f/scale) } + } + } + 400 -> { + when(getScreenHight()) { + in 0..2160 -> { konfig = 8 } + } + } + 420 -> { + when(getScreenHight()) { + in 0..1920 -> { konfig = 2 } + in 1921..2428 -> { konfig = 5 } + in 2429..2480 -> { konfig = 1 } + } + } + 440 -> { + when(getScreenHight()) { + in 0..2340 -> { konfig = 3 } + } + } + 480 -> { + when(getScreenHight()) { + in 0..1920 -> { konfig = 6 } + in 1921..2400 -> { konfig = 0 } + in 2401..2636 -> { konfig = 4 } + } + } + 560 -> { + when(getScreenHight()) { + in 0..2560 -> { konfig = 9 } + } + } + } + return ((x - minX[konfig]) / ((maxX[konfig] - minX[konfig]).toFloat() / (TERMINAL_WEIGHT))).toInt() + 1 + } + private fun calculateYPixel(y: Int): Int { + val minY = intArrayOf(9, 17, 13, 19, 30, 28, 23, 14, 20, 20) + val maxY = intArrayOf(810, 899, 654, 822, 920, 859, 623, 420, 757, 866) + var konfig = 0 + when (dpi) { + 320 -> { + when(getScreenHight()) { + in 0..1280 -> { konfig = 7 } + in 1281..1440 -> { scaleCoefficient.add(1.9f/scale) } + } + } + 400 -> { + when(getScreenHight()) { + in 0..2160 -> { konfig = 8 } + } + } + 420 -> { + when(getScreenHight()) { + in 0..1920 -> { konfig = 2 } + in 1921..2428 -> { konfig = 5 } + in 2429..2480 -> { konfig = 1 } + } + } + 440 -> { + when(getScreenHight()) { + in 0..2340 -> { konfig = 3 } + } + } + 480 -> { + when(getScreenHight()) { + in 0..1920 -> { konfig = 6 } + in 1921..2400 -> { konfig = 0 } + in 2401..2636 -> { konfig = 4 } + } + } + 560 -> { + when(getScreenHight()) { + in 0..2560 -> { konfig = 9 } + } + } + } + return ((y - minY[konfig]) / ( (maxY[konfig] - minY[konfig]).toFloat() / (TERMINAL_HIGHT - 1) )).toInt() + 1 + } + + override fun getDisconnectionAction(): DisconnectionAction { + return DisconnectionAction( + onDisconnectionAction = { + showDisconnectionDialog() + } + ) + } + private fun showDisconnectionDialog() { + navigator().showDisconnectDialog() + } +} diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/persistence/TerminalConstants.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/persistence/TerminalConstants.kt new file mode 100644 index 000000000..95c102959 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/persistence/TerminalConstants.kt @@ -0,0 +1,6 @@ +package ua.cn.stu.navigation.persistence + +object TerminalConstants { + const val TERMINAL_WEIGHT: Int = 132 + const val TERMINAL_HIGHT: Int = 64 +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/persistence/preference/PreferenceKeys.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/persistence/preference/PreferenceKeys.kt new file mode 100644 index 000000000..60e0f24a1 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/persistence/preference/PreferenceKeys.kt @@ -0,0 +1,40 @@ +package ua.cn.stu.navigation.persistence.preference + + +object PreferenceKeys { + const val TYPE_CELLS_LIST_MAIN = "TYPE_CELLS_LIST_MAIN" + const val MASSAGES_LIST_MAIN = "MASSAGES_LIST_MAIN" + const val TIMESTAMPS_LIST_MAIN = "TIMESTAMPS_LIST_MAIN" + + const val DEVICE_NAME = "DEVICE_NAME" + const val DEVICE_ADDR = "DEVICE_ADDR" + const val APP_PREFERENCES = "APP_PREFERENCES" + const val NEW_KEY = "HGBKHUBYHKFGYGJHBKJVGUIYTKHDCYFG" + const val NEW_KEY2 = "HGBKHUBYH2KFGYGJHBKJVGUIYTKHDCYFG" + const val NEW_KEY3 = "HGBKHUBYH23KFGYGJHBKJVGUIYTKHDCYFG" + const val TEST_SAVE = "TEST_SAVE" + + const val TIMESTAMP_LAST_READ_LOG = "TIMESTAMP_LAST_READ_LOG" + const val TIMESTAMP_LAST_LOG_MASSAGE = "TIMESTAMP_LAST_LOG_MASSAGE" + + const val ATTEMPTS_TO_UN_LOCK = "ATTEMPTS_TO_UN_LOCK" + const val CONNECTION_PASSWORD = "CONNECTION_PASSWORD" + const val CONNECTED_DEVICE = "CONNECTED_DEVICE" + const val LAST_CONNECTED_DEVICE_ADDRESS = "LAST_CONNECTED_DEVICE_ADDRESS" + const val CONNECTED_DEVICE_ADDRESS = "CONNECTED_DEVICE_ADDRESS" + const val ACTIVATE_PIN_CODE_APP = "ACTIVATE_PIN_CODE_APP" + const val PIN_CODE_APP = "PIN_CODE_APP" + const val ACTIVATE_PIN_CODE_SETTINGS = "ACTIVATE_PIN_CODE_SETTINGS" + const val PIN_CODE_SETTINGS = "PIN_CODE_SETTINGS" + const val ACTIVATE_STEP_BOLUS = "ACTIVATE_STEP_BOLUS" + const val ACTIVATE_EXTENDED_BOLUS = "ACTIVATE_EXTENDED_BOLUS" + const val ACTIVATE_DUAL_PATTERN_BOLUS = "ACTIVATE_DUAL_PATTERN_BOLUS" + const val ACTIVATE_SUPER_BOLUS = "ACTIVATE_SUPER_BOLUS" + + const val SELECTED_PROFILE = "SELECTED_PROFILE" + const val PROFILE_NAMES = "PROFILE_NAMES" + const val DATA_ALL_CHARTS = "DATA_ALL_CHARTS" + const val PERIOD_NAMES_MAIN = "PERIOD_NAMES_MAIN" + const val START_TIME_ALL_PERIODS_MAIN = "START_TIME_ALL_PERIODS_MAIN" + const val INPUT_SPEED_ALL_PERIODS_MAIN = "INPUT_SPEED_ALL_PERIODS_MAIN" +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/recyclers_adapters/ScanningAdapter.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/recyclers_adapters/ScanningAdapter.kt new file mode 100644 index 000000000..2916c1870 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/recyclers_adapters/ScanningAdapter.kt @@ -0,0 +1,44 @@ +package ua.cn.stu.navigation.recyclers_adapters + +import android.annotation.SuppressLint +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import ua.cn.stu.navigation.MainActivity.Companion.scanList +import ua.cn.stu.navigation.R +import ua.cn.stu.navigation.contract.OnScanClickListener + +class ScanningAdapter(private val onScanClickListener: OnScanClickListener +) : RecyclerView.Adapter() { + + inner class ScanViewHolder(view: View) : RecyclerView.ViewHolder(view) { + val selectDeviceBtn: View = view.findViewById(R.id.scan_cell_btn) + val scanCell: RelativeLayout = view.findViewById(R.id.scan_cell) as RelativeLayout + val deviceName: TextView = view.findViewById(R.id.scan_cell_tv) as TextView + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ScanViewHolder { + val itemView = LayoutInflater.from(parent.context) + .inflate(R.layout.item_scan, parent, false) + return ScanViewHolder(itemView) + } + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder(holder: ScanViewHolder, position: Int) { + holder.deviceName.text = scanList[position].getTitle() + + if (scanList[position].getTitle() == "NOT SET!") { holder.scanCell.visibility = View.GONE } + else { holder.scanCell.visibility = View.VISIBLE } + + holder.selectDeviceBtn.setOnClickListener { + onScanClickListener.onClicked(scanList[position].getTitle(), scanList[position].getAddr()) + } + } + override fun getItemCount(): Int { + return scanList.size + } + +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/recyclers_adapters/StatisticAdapter.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/recyclers_adapters/StatisticAdapter.kt new file mode 100644 index 000000000..7cbbb3bbb --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/recyclers_adapters/StatisticAdapter.kt @@ -0,0 +1,39 @@ +package ua.cn.stu.navigation.recyclers_adapters + +import android.annotation.SuppressLint +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import ua.cn.stu.navigation.MainActivity.Companion.statList +import ua.cn.stu.navigation.R +import ua.cn.stu.navigation.contract.OnStatClickListener + +class StatisticAdapter(private val onStatClickListener: OnStatClickListener +) : RecyclerView.Adapter() { + + inner class StatViewHolder(view: View) : RecyclerView.ViewHolder(view) { + val selectDeviceBtn: View = view.findViewById(R.id.scan_cell_btn) + val deviceName: TextView = view.findViewById(R.id.scan_cell_tv) as TextView + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): StatViewHolder { + val itemView = LayoutInflater.from(parent.context) + .inflate(R.layout.item_scan, parent, false) + return StatViewHolder(itemView) + } + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder(holder: StatViewHolder, position: Int) { + holder.deviceName.text = statList[position] + + holder.selectDeviceBtn.setOnClickListener { + onStatClickListener.onClicked(statList[position]) + } + } + override fun getItemCount(): Int { + return statList.size + } + +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/rx/RxUpdateMainEvent.java b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/rx/RxUpdateMainEvent.java new file mode 100644 index 000000000..c4f88da70 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/rx/RxUpdateMainEvent.java @@ -0,0 +1,43 @@ +package ua.cn.stu.navigation.rx; + +import io.reactivex.Observable; +import io.reactivex.subjects.PublishSubject; +import ua.cn.stu.navigation.connection.ScanItem; + +public class RxUpdateMainEvent { + + private static RxUpdateMainEvent instance; + private final PublishSubject scanListSubject; + private final PublishSubject backPresedIventSubject; + private final PublishSubject updateDebugSubject; + private final PublishSubject updateTerminalSubject; + private final PublishSubject updateHomeSubject; + + + private RxUpdateMainEvent() { + scanListSubject = PublishSubject.create(); + backPresedIventSubject = PublishSubject.create(); + updateDebugSubject = PublishSubject.create(); + updateTerminalSubject = PublishSubject.create(); + updateHomeSubject = PublishSubject.create(); + } + + public static RxUpdateMainEvent getInstance() { + if (instance == null) { + instance = new RxUpdateMainEvent(); + } + return instance; + } + + public void updateScanList(ScanItem scanItem) { scanListSubject.onNext(scanItem); } + public void updateDebugFragment() { updateDebugSubject.onNext(true); } + public void updateTerminalFragment() { updateTerminalSubject.onNext(true); } + public void updateHomeFragment() { updateHomeSubject.onNext(true); } + public void updateBackPresedIvent() { backPresedIventSubject.onNext(true); } + + + public Observable getScanListObservable() { return scanListSubject; } + public Observable getDebugFragmentObservable() { return updateDebugSubject; } + public Observable getTerminalFragmentObservable() { return updateTerminalSubject; } + public Observable getHomeFragmentObservable() { return updateHomeSubject; } +} diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/BasalPeriod.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/BasalPeriod.kt new file mode 100644 index 000000000..41a0f1192 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/BasalPeriod.kt @@ -0,0 +1,7 @@ +package ua.cn.stu.navigation.services + +data class BasalPeriod( + val startTime: Int, + val endTime: Int, + val basalSpeed: Int +) \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/BlockingQueue.java b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/BlockingQueue.java new file mode 100644 index 000000000..ae502c1e4 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/BlockingQueue.java @@ -0,0 +1,25 @@ +package ua.cn.stu.navigation.services; + +import java.util.ArrayList; + +public class BlockingQueue { + ArrayList tasks = new ArrayList<>(); + + public synchronized Runnable get() { + while (tasks.isEmpty()) { + try { + wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + Runnable task = tasks.get(0); + tasks.remove(task); + return task; + } + + public synchronized void put(Runnable task) { + tasks.add (task); + notify(); + } +} diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/TerminalViewModel.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/TerminalViewModel.kt new file mode 100644 index 000000000..54ce33edf --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/services/TerminalViewModel.kt @@ -0,0 +1,15 @@ +package ua.cn.stu.navigation.services + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class TerminalViewModel: ViewModel() { + + private var _number: MutableLiveData = MutableLiveData(0) + var number: LiveData = _number + + fun addNumber(count: Int){ + _number.value = count + } +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Color.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Color.kt new file mode 100644 index 000000000..dc5cf3092 --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Color.kt @@ -0,0 +1,8 @@ +package ua.cn.stu.navigation.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple200 = Color(0xFFBB86FC) +val Purple500 = Color(0xFF6200EE) +val Purple700 = Color(0xFF3700B3) +val Teal200 = Color(0xFF03DAC5) \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Shape.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Shape.kt new file mode 100644 index 000000000..9c20e404d --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Shape.kt @@ -0,0 +1,11 @@ +package ua.cn.stu.navigation.ui.theme + +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Shapes +import androidx.compose.ui.unit.dp + +val Shapes = Shapes( + small = RoundedCornerShape(4.dp), + medium = RoundedCornerShape(4.dp), + large = RoundedCornerShape(0.dp) +) \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Theme.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Theme.kt new file mode 100644 index 000000000..5614f463e --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Theme.kt @@ -0,0 +1,44 @@ +package ua.cn.stu.navigation.ui.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.MaterialTheme +import androidx.compose.material.darkColors +import androidx.compose.material.lightColors +import androidx.compose.runtime.Composable + +private val DarkColorPalette = darkColors( + primary = Purple200, + primaryVariant = Purple700, + secondary = Teal200 +) + +private val LightColorPalette = lightColors( + primary = Purple500, + primaryVariant = Purple700, + secondary = Teal200 + + /* Other default colors to override + background = Color.White, + surface = Color.White, + onPrimary = Color.White, + onSecondary = Color.Black, + onBackground = Color.Black, + onSurface = Color.Black, + */ +) + +@Composable +fun NavigationTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) { + val colors = if (darkTheme) { + DarkColorPalette + } else { + LightColorPalette + } + + MaterialTheme( + colors = colors, + typography = Typography, + shapes = Shapes, + content = content + ) +} \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Type.kt b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Type.kt new file mode 100644 index 000000000..76c97570c --- /dev/null +++ b/BLE_EXAMPLE/src/main/java/ua/cn/stu/navigation/ui/theme/Type.kt @@ -0,0 +1,28 @@ +package ua.cn.stu.navigation.ui.theme + +import androidx.compose.material.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + body1 = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp + ) + /* Other default text styles to override + button = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.W500, + fontSize = 14.sp + ), + caption = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 12.sp + ) + */ +) \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/.DS_Store b/BLE_EXAMPLE/src/main/res/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e3d55da3835f672d51a3b54801fa4c275beb7b03 GIT binary patch literal 10244 zcmeHMUx*t;82{!jy==HUjd0e2rL2nDhdY{F(rb%8q-QD$B4SDl?aAH7#7k(h8}g^A z90$QieGy*-1rhN<#0mg`IDA zzTY?V`@U~>CNlv5vfQg=0Zafe@TM|7gGIna_4FROCPdAPC<)p_V?A4X)oHdykh(%g zKu17FKu17FKu6$ii2$zI^fIQo)TNGqj)0DU8v!~$n0QlJ5OTmJn>w&yTL6>^tY#NJ zr|APqQ^z=k?B)&2X_L$a>v6pQ7CQ^q>u=_B9ww~qdFP}Nr=^{twGHn4`K z_{CSCjeYm=E<*#V<$k9n`uL{YYScU3Oy&xim`rS&N+wgu>EtV=n$s_Jt!}TgY_*Tm zx5JLpC=Z{l@{xMAznY$V#<9Cr-LAHoLA_E%$jZ^WU2*!$PS37%m~DwGQYj;~n%=Ro zv6$aKZ!Y9AoAc(zfyKZjf ziR-zKJ`Tdj@%{DY&d+}PoW*yft)}C}ISQx5`xlcE9BJ!hscknLdmVMupILuCU;%1a z*MfRfW{jjUZQPm67{knD5A2;cbNQT?ncUKCWG2ExB}ZhAo`prA$4hqKo8GxVE}zkB^I-sjt3s$K#lOdLwLQ?m>EmW%_M8wx)26vEX&=yXWhB zVy@=b%l%(F=SEa%L*@{MQFu(SXgvT;Ty0xeT39Y%X(KB(&*B^XN|%(#Q0@RRtYpr+ zj3?i?_y_x5V_AA%?mx3s{Nqfgeg26xB*3Q-r0mC|ho2bw5sLP>k4MMg+vK^3!B-$< zzV_+I!}z*rkMDSN0N)v3eBIeGfN>~R=KR5h-9ye1c#m})d;ss+5#GVf$+IgskRs4B z_aDDFd;St1=aCj3`*;=#fASI?+4lwT5B7k62a$N$hv(jN$M_f<&x^P=iXWWUB>&Z| zj280zC#Vz}ncG%v*U#^7v3bPRdMrk@N`HjScT+g0SvdFhpb8zOS2*|=_NwURzK>m& z=3S``dEO1fC_G?|dOjobz?qirdDiilg}M&Gwm+k=GQUsvp5Aw*$kwIMwq>qy@G5VU z@=p19x1py-G5=vOO6K~)_STnITa0T!dos&tq{^>=9sBsL;^^}6qo5#^%y0AITZhj4 z&c>O_kF_WBi$<#aSkJl$j=&_ZHtG5Qq459zgN=2qj)0E9{~`h;Q7jdg(Usw$mftIS z)^6gxhBv(^Zonlo!Gc0)Jv)xa7kV7OThwK!q!;Q7LJqiO=2*|nQS#ILJN{?DZJ!Y8 T{Xf)|6;|*6#hLiMw*UVdOrto8 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/anim/fade_in.xml b/BLE_EXAMPLE/src/main/res/anim/fade_in.xml new file mode 100644 index 000000000..14766efbd --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/anim/fade_in.xml @@ -0,0 +1,5 @@ + diff --git a/BLE_EXAMPLE/src/main/res/anim/fade_out.xml b/BLE_EXAMPLE/src/main/res/anim/fade_out.xml new file mode 100644 index 000000000..76f9e397d --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/anim/fade_out.xml @@ -0,0 +1,5 @@ + diff --git a/BLE_EXAMPLE/src/main/res/anim/my_rotator.xml b/BLE_EXAMPLE/src/main/res/anim/my_rotator.xml new file mode 100644 index 000000000..306a115ef --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/anim/my_rotator.xml @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/anim/rotator.xml b/BLE_EXAMPLE/src/main/res/anim/rotator.xml new file mode 100644 index 000000000..2f77f4d90 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/anim/rotator.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/anim/slide_in.xml b/BLE_EXAMPLE/src/main/res/anim/slide_in.xml new file mode 100644 index 000000000..b8b6e8eff --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/anim/slide_in.xml @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/anim/slide_out.xml b/BLE_EXAMPLE/src/main/res/anim/slide_out.xml new file mode 100644 index 000000000..1f6b9fa09 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/anim/slide_out.xml @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_cancel.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..2b15ea81ef1ab1670884c8c6e27da292be2fcc17 GIT binary patch literal 21214 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 QP@57UnA@FuV@8hu51jS>7ytkO literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_down.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..c33996c80cb7be66340ca5a0fde2707b485c0a40 GIT binary patch literal 7495 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_forward.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_forward.png new file mode 100644 index 0000000000000000000000000000000000000000..32c0a6c51fd7625eeee76b8c06af715ba4deda0b GIT binary patch literal 12152 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_left.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_left.png new file mode 100644 index 0000000000000000000000000000000000000000..97b19a31e06a4a5269a0470267967ec0168e992d GIT binary patch literal 7228 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 LcPd@O{`G$V(ak4f literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_right.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..32c0a6c51fd7625eeee76b8c06af715ba4deda0b GIT binary patch literal 12152 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_up.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/arrow_up.png new file mode 100644 index 0000000000000000000000000000000000000000..84aaeacc0f21db27cae04a17bc5bab123ca82bf6 GIT binary patch literal 7457 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/back_arrow.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/back_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..14aee9f63266119f22aa1e8fe42a030dcd20d069 GIT binary patch literal 6967 zcmeHLdpML^+h2o7L~XU{IJGger8GrJISdKoSX7kCR3s^CQb^3SYb$R>4Km7UzZ-pu zv=ti1DMce;@9a@hR3l0`OeUvczWbTwy{`BBnuIqJOUC*?h^}Bz+`>^h{))Tkc z-EroO`7;ngGZ{|yo(L(yPbD-<6&~3=)A{gF3AA;yMd*(N4cXpl@c$+IojlzTIz>T< za}J>~7~=FGbb^M^XC^}Hc?jtqO)J}C2`^Olxj5Rx6aGdwmb2lZe$;8ladtNVUndilw(x|aFS(y*6kpD9 zb18Zfu%oT`S-i@_C3e5>OaJY!60EEesLXJ}b1jePx@JC-XxQRq@n1W`bIu_KvLOn`09$K z>?qg8tH07*sOx$1i<9K2q??_wu*6szzk&PAc}H7ixs)A@L=IqEFaKg=zVw1VS9c;v zaCw=+sf)u&ujI|l+~s@`%Aa_<50Sd7Rld@!##gXPSB5M=tk$OSl&NFI>Z^{!{jx6cl!qT_b$KGjEUzeoh zSViq5s|ifi0r&jyD1T>%eA2*1*1~Cg#@(oWB>M09X;)=kev~eD?xd`V>RnN|+-hiZ z@9!w$AAq<^FTTdzRbk5ics+a9jWl*l?~RX4Z;3fOQQX*4T4DI=RQQgv?hKJ5X(%L5 zNO%XfE@6`GOtIv|3~FDO+5B z+=bs?1tMJ2&B267pd;UAv35tPiBUCoS4?E@est>HOz3ml20p}?4yOA@T3Cqp3*)Gi z>OXEKMfD$vo+H>A2_@LMWaL);%GS-nm2h-d^6^jbT0BTgt5mu@-q=;(!UEsqE!T2Arkaf%RzFIJdM?|r62+E zmVxU%TsZh z7eDzah-`BHr6kvy^;pNr<^GU4tqI^f^e7 z1=(Y4puW0C-7z+tS3Tq+ENMzsER|`^8lfQkY-b!>yZ*fA%CevN?~ez3DxADUfCm9g z_sSR<&I)nAQ*Od%c^Spjkh11N#1B3y91DL}>;JmMzgJlp*=@)$DlV~}p@{X}&9Q7< zkVS$tbAF}C%9$g|ny`JMhU9l0(`v{}6&2VhO*G{udXq^1CwO5RFcSW7KuvEcQO4>u z)f%xjf(wvp!F9dK-831ALWfD)pA7W>@=lw!6rz80Ge+w`&XDmw1)4_#bc8MD)`IK{ zzO7bphuOoVjE4$zGeO}5fJXyrJ%pxoQ^lMmP%MSm=IKmgc$H#!U?Gr&JyJjgF`$Tc zOkp2sIe~9+*#6ypFv<0j!Z*%YXjuY#EZb)dkU2DB^mPL5iO~n3t8%Vl3fgf%Upj}; z{MithPOPIL9dsz;$T0Up$n^9SkwF?%prB)lgM_783^0Rnx;|!5-3a5;uy3?=z_9!R zW_SomVK!obW(F`E$I)Y&0RwLpX82tn7%pK3y%peu=qYxh2b{R;j43Dt#aVwv?3pY; z`z*!iL|C>05=QeZ0sXy3fu@_oq=+B!q&MJcXArhj27qR(sc{`x&es%LQ3k}ac@ZAB zya>*jW8HVj;80?qf|;WX#m`%gC*@xOW-(^&Tmo8MW3i>}4Dfnr3he;s-*H?y^FW5) z6h#BngWw=WGu=U}YLh}YIu1H$K3J>IEE3{8#Hkbf0u-846!XE-L7Z!J8OF`_V|`~p zpU*n1PxBHmJep$20)~%M0A)xW%^Wl6sRKhQPMzQ>)NunYE#v?#lKC7vL1Tdvw+~>7 zIG|W}5Tki|fSx;rwg(*xuiy|++yPyU(ai)!H(r_aK+sV& z6w8lepoHit7%DIYMT@ZisL2JA#liL?Y?YAU+!SCg1cQQW1}&UJLQK0U^esT^Fcq?q z$R1)pRdF;OKu@1Sr-BNH$2j&4zk(tq>>KkAXd+?Xkj7Go{giJ$KLZ6FQ_u-Z2*;R{ z3xL=u>Loz^{4hVu#4q{;_p%Xrgx(v>D=xF(_mzq3-GtM04PtFjv*Z_=|#Ex9pNmtA@fVr-tr|WAk7Zft9iJ>yWaHFwj<(SPb z>39F(KG-(V{rB3pkmhs zQugby8CpHNg%;fgy8W(q_>|d7h+_?THT@=zN-R8`Bb}R{WDa9hBWJY)4M!lhe&aj2 zM}!FzKE1&{dC}|*9J0C!$`!)iYwBHntvx2H*La=JTQHFemp>j~lGgh z&%kaZftv8B(#z$U7$l&K2_yG%kQQS-CX>!hIhrU@2?Rw-LbTgxE zY}tXne~SV>1fZVt;IW<^oq7(TENC^%qvts8(?NnANH}Y#5@rV?f3$%BzUz6`gf*~@lv9p@hp$quHfrQDL zqOc`8j|)cUUjTF@Mt4pF?l-eATG6-SF*-t(gtC0`q$P2%rOj$4TFZLq$OC3rUKljq z&K;Pbc^1tnT^Or`^XyLQ+P5Bd@3tbxK&P8=xmF~pW!AtHkL>Iz4hVn83T z$7p@n0%`j(T92Txn5~d1aDq@Zq++S6L<_gYI%u1fAe|IUaRw+3PFYe0@y$F8m=Bw& z-gHcD1`(stFoO>ql{ja9zzn|tgJv2Ad~^i{gDD0oFzD-JhIxb~BW$Sw!YX(=<;3M{ zJIRoa<2#JH;;7scD?KbGhO$H4E2Scl_p0Ol&W#pSzQ2()b^)Bd-`lF9g(~tob;08Z z{VeUSTP<**Grs24Xk|VKi)0~T*Iu0z4OPI*f#6Wwr}vzNDo_LIkm)RKJA}R@z&RlB z9ISd08aNCJ(|=GJgS8^CCVuNEesd5)jB}hlFl7jKC{Exk#c(s31n0n%S&j3 z=^F$FJp;^ekvONp3L_%MvjGMNTg)H>?`X>~!vVt5791to25{oib?ihj;lvNviG1QH zn20GlJ3$|ffzjKc<~R%-*P~28hfPsT!ldT8SVt37FFgfYl5xP&ZVXrgKc^C51!NpH z)F>phSs$cEELIS3GC-<813NlI2f%h%P%w!W0AxpJVWVCK@Z$CoMT~hr0NO`c!7P|V zpf#r}B2Wv(iw-zpG;zqIsbPv$usk>xI0Bc>z@+7{$e{?BPa&4fGnir{K`|3siuEV1 z_w)o4W7zoYi@KGK`Xd~VFwBv7hcVea+FZnT=5<8<9?t;zFHru0>{Z0L8bVma0K`en9of#HlSkG_d+@<)&v=_SnPKuE zOS%eqb;CZww6B;=+frxPF?q6RTqJg6n~fH97!!Ljc^YjEoLS%;mN3n|MOm02bCUdX zk#I*~v9&7m77@2|r{~k$P6V^ynB*Ben7d4HX;jx3(MZ-adA$DYj4;n4>Gh(p;Wq^d zB;E`-xFDU*7o4EHmF|(xe2H818X`kWVRo#9+hShLCocR@&q(KfzqeR>oG(5S`prS` zGD$l-?Wi5`g#cOvqBPtjeb`EN+4H@KEGtn)_m;rmqJbd6(_L4SxL+oAvWEUt5JJ#< zE_f){b_q)Cq>UNy=bbtP=(-nWJjo;E2c4taUy%iH8r-<~u0Yr9&!eErst zTB&}MtRksAnK*nw^yU-MTWFT4+90fU4|(vLbT;zpg6whNY$0e%y3O5P&fPdnsargL zR-hzUPJFRpKChU4*P-9VS~43h+*OKiOvm3&_xUZ9vf-q``DjaNlGndJ^TDSYg|*bz z!v;}ro_V?3yy=)furQq3F%iODloyyDFrvIX79`Njt!KVW==C%YbuW3l`&u9WCe%^o z05k%@qcC}pU;%f9FSj6cWmmniFIl-64jqX3&Sd>Pk$$|BXc70+3pd7|s}fOZN!6j4 zdbXQMwI%=kf*e^}VR4memN(HMeI9g-ReCOFTSoftmNbS__^V!(6iBz34uvMNN6u$Y z_KU6hSIJ1R4`HF8v&V$wmQ%I!7}2XoU)FKklPgA^6cnzXPNfcaWQx}a=LH)0CKv_O z#lt!om_x)+vv#ihPLfCTGNIggVvy`ne={+GZ7B@rc6EtbtrFy1NUZ0cB-!Ue%K1uD zDV6;fe3YOlkZ+&d6m@x5F559i7H-ltlxF6n9dqECQx}+<3|z5sj~;lK4Zf9E-^d>~ z&wE{BC2bwCk~sCUolynxU4j|*ed36cM~oS4j|Orhi?8>y-(Haoc~JRlEcza7lc{B< zp6-ugEOzUwFg2=9Z$IYfIqAWAwnEtD=V3j}H!#W(iR5$8I^rrX5P#87>8PYilM7w7 zHmr>N%0!xM=y_|@cxjA4#58B@Be%R zm=TjU>ozJ2Qs=#avkx*1+vF4Gzc(yk{eD&eJkV;|>eVY~t5>XAy>%6Bz1h0;tIdsR nwDmMv|3v=g{{c7>>K}9<@_z?pWX<_PgoClk-Tsap^Oyey5qg+N literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/box.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/box.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9e72ec3af8c77980420052fb112c3083c9154e GIT binary patch literal 54019 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 G)klk9U#s!fJ#gD}_5N;1z>S3#tYCkaQ)6 zU)A{Wy?4`3dfvIpFQtUTMJ+rD81%Q;`G)MS3j&VD2Z3s-EHwJ+>WJ-d025uw)S$c> zzp8BVU>z(&jr0MyMR9&=E-3$=5sYSVEE89dzeG?_Ua{#x?oxt_IDiFalN(Jivz9y6 zv|^7b8tyjiYg7I#NAzDL6tOg+$IURg2-CyVjQp96Q4z`=OV$JP0qJrX5Hq%5;=%^q zR|gid#1 zktf3qpPK-JR-?BnR~O!v92W%kbV$@oeOkl*E%bP@viL z;;)vWNfncE(DVtnR!vYT?F-99>!Ym1La|o4b6hZ(^d-@GU$4P5xWJ;&V)1Cz7N}0^xT3PZ z67!oH#*hYArck>T3=XXBjtz`dK$C2ap8HHAPUbK9V#{JUb(hE4-16_V58%bkuwt=3 z^Ft|xqXLW|z;V1fbide`-reKbFQX0)0$;d8 z+&yV}&H-?{I##Ic3PU7jaYlyh){?-~aV!eZa#*rv3swl`Q5~mSo>2Z=;ZsKUW5EM@pJdECdzT zxpyIU>6{#)7}nAPg}mxNBRIuyRI8$`^Fgh*ht-*KnO_s8WX}uJWni*lG^7yZ7|tl& zbd%8~%=?ZARF<5(@SYFQ{h{(cpUAJD4(+>czkG5WGV$JQpH1ymsC;5Rl$B}ov+wEe zFR*T(*>3#=Zda6v{7cLGnC^K>X$UwF-Pm7Q*!XzrC2EQQ#Z*J6T?O{J>7W^m?-P3u z$4^SV#23Yo>UZ@l9P*#rtk2(zZ@6k|?ORuA&B(Z|naoDzIZz{dv!zFAI+wKBgnSe}6Fx!_H1BwnnequY+27b{KJu2*KH+7o{G1S7dNd|F4 z63kvWPw|A`fg#EE8_OQveTrGiQ}!BG^0etTlbWOP>V;h1H5Ra5e>ACxA04?o3l{j{ ziY7p15l#~S)K^b0CvA;U>17R}=Mr{|btyxfe*eJ0@IWQ+DqpZi+q>9=CEz9IS5*d- zX0!v+qzKR~6owc$a4e?*X$2g3Y&d{%RI7i#a%Mad?%PsCSP5`3xzw+NO1SuanZ};xM_{ZmU>&^BgB1x=?(|k6YE7&7-Pfe9V#09tw z6>th*loP&6_utdw;W&x@4Ly zc9S(XRVMZzmhwM97xld(?s*8fJ-yj`QV{(#BJ`Jub%TRe6mH9{_lw+x$Gc;up;L*vQg~3)s)tdhhXHxfJgC(|7Vah#p(Z z1IM72v4Am_8lbS6CWQU9sN#OTJUxS>&|~}lTk7I**RTPXa>qiqr2+4pdrmH^>&~k7 zuJ%b|r%HyuRwXeQssg!!R5qC1#4tJGe3@5Qb4%a_4O&QSo~XNgs*1GwOQg*}n_lkL zCV|lTC>QJJ!80?|-DWT?ZQ_qHtMS*^_3V~KtF0t^{P}-xlU#25WW$=bipgjsu@mDjXL%Wh+ zEg}6B$Q}esy4c!qfE2avBVUg*dS1q3WUZ+Or`{u|AhNm3e~)W5h@R=#tK2N zYI{7_;0?G4cop^R(%n1yTnq?YSj&T)xJ69`oND+UoYmzYqCh7YC^jE6p_QZ=bS2i+ z2}c1ztzUfKjp_)sH1}eXimJ4XvMnbfcg*Xw_5R{=YDi%u8!w)I1CFO^bn0LaJ$Q3d zcKl;9UMzHk4qm0CKp;xU7$=&C6=PapBTDo;RR#=)MVHNF_SFTO{(>frXr8Pgj;HK= z8J_@PX1H)x<=p7v1lV88JhoYAl@Xz~CDSPx5_fMJ9ZMQV;?$7$de>~xbg;EytCJLu z+Kg+-j5=c=HXGpAbOAtw4UJIt9xbW%023(y3pSM+fWj29shV0rilt_!O)V3~SXtZB zyi8*4C{|p!7z5u4jrBMftlz*1lvf#!j^(#8s84XeU%M5w0rG0PEKjia9yj55_eDgU z(vz7nL@50^uYLhBi5LAWT zgc#4&MIk8~`T{ss9CYnCCIwg3D=lNj$VZo{%c-L}ZEDz#XdAiX5@0qS#F#LNmKQaX zyaJOWY|5yACD5>M1&uPO=RbaJrGIN`dPmAIafC{{He9JD*qe00UAxDsCUC4m8Qp?8&FAKkPc@Zqkw5 zO3PpHFyy2nQcai;hLxygC4=e^h-V&LM^Hs6Bcf-d?zpPi&?7QCbO&S-BM6oYCfo*-mJ+p^FqaU4L;jj~*VOwYPDr3wYBGHX6=+9BZx=%#l=SS_ z1lp9B8>FAl{|8;pfDrQcvrh{DQ>_3bUGlw>&M!NgM}Ht`SL@=#7=}dYnK561Z`0@v zFdQB-Plc^*1Avcozg?=U&y1?ylAgUQ!T6pJU^K{vpBra#(E{o%rbTm~jcfFR)3>S$ zw5%fd^6V_h5MIOzJH;pcqm?dCDdxR$jGtstxbp+h4Tdz0#qoH{c#lO4rDh#bh3ni@ zg_Gk5k0vN$+?>(ZiZ;SHD42n6d893RrGRETNF_c&KI2VqB5{*Icfmb(;RTUWtpMJa zhzLI)!)`bZU>%pT0Sk=k&Ye}foItt3*s_^iUK(pyZY&d#?6M7zfmi9)=<-KM(&1@Y zYWo-a3B(BOz!)yl87so_%MyuIU<>wJ69etu@~}kup#U#Vj+h)+|64H4_->}Thwc~2 zb%c=L-kB+!kQNGq?}w`EpyljHQjn_bOdm!o05T7mQ!LG(IMvtYqkl7GILH?mM?ive z$0$JYWah-&#uK|Ixnwws`8I@;sHSy`0FR(dNd83kY2*3g*V9Y>dXm={_c0ZqqUF$q zyDALP%JWU6`_et`H!hZBe$P>f7(GsME7ZTCW-BaPT1ATzdTbC`=Y!$74<)vtX@MF6 zw?Ok9e-_1uX0fyJkDq|@N%=5G^-@XHS({i7}|Z1iX^ zNeOBWs**lW%0@h(TXJUTl6yP3u!SNpmRo@NL^6=jLoMmB#C}5AyhdAH1H(4|!vD}c z{uoL--<^5%PXyR!C4(?)yyYU~R>%V`o`DUqDkFVeK+`cSnz>%Uy_ixii9@_mvUlD6 z-W-~yk$NtfevmZ5#ub1=9KX^W17Bid3&$b$503aLdKlOc?4C3Jb5RkC>E};CX5l^iwr z8N;F(?KUxU)PVT!9zO@;d8~;)Gz6R`v|sQp^RU|JypISn;n1E#X(lE;N*AAp%vKkM zH$XvQhKJ5zvRj5lhxq8I%J3;n%$vh~wK}h~t);f;{zb2--;s=J^`6#U82& z(#FjA`#o|r5{g%Ze(@q@>F1%!{RD-)^n|OQ6O{XvKwm$M(ZC^S*ihIX;aA3o+&1VW zz~XqRIj7EGo=b_>m}chTq-J`1*2^kfm)qtac_JSd0Z%IY)e%)!UQC)Dw}yhdM@8jYQ~^R8V^8C<=_z2ef&+ea*b= zkD@vw(?qhdpG-vJLpp5diT(rkfa9{Y;M{Dw-SN0^rDu=>wZt?o?-0YJ0UVzgnlSE1 z=pc>B!ekES(Q>GcIn%&XF5I^eo19yo9g*PPu1Ee3^FT}f!^2a~lHfv2j|HaFd!lpw zR+FxEQuIH+4}vmkWL#|#0?I->qrW75x*X~6O=N7)+iYG!41_Ba6U*3CT#Erg-tYmlw47dRt~RZOye%4aYbXS<&572rT=E_yvAz=yLfB7|s5NL| zL6OC?>#HToijt+05*r`7UZKqCZ4fJ@9lJA*nL(6 zQ_I@Thx6KYQ>$V#B}BnxGl>hLI$g+Ab(S&xGs671_69&270g$&vfnH&+eS70qVU3*!6hZ`dDwOk;>_hGywLSoSEE z4Sxg=U;~iE{^}VA7}|Euk;ZaTU~|Cy0H!N}uxG+Gk5!FW-YScsuNwhhFoERZ{a0L) z<}#*PJmk@0X9r(c@{J{$gO+nBDpjNQN{(`Mw6>MbW&o{2R1uYbiE9tl7GgVphn($yh7QbWy$CLyL&!x$z3 zv)HRn*S*y$gc50Z@grZV-mmUw?PZ>~K~3YoxzBSW(;;D3t^A@Y&s(2Q(wKhk&G*qG z=SLS&Iy#L!q-RlW!m{DNE)FbLD4n-nGz@?Tn;te|SvEw&Kv8($V5D0bb4R0# z-1P3zi9TaGgavgzhIoAT8O@w7+K<<*_csRId7T^i0dH#yQ*E7cfQMFqPV*p;(E z;=)%X!0}npka?`LEAtn#f^og>JS-*VlOy!gEY^ia9cbcosjPlT^71#=c2|_1-(SI#*b|V8Q+N z8iNeQZiF&FK4$WFxkVKPcIvBMzBbeZGYn^DI^%tR!eo@1Khc6!` z7Z00NLsR~T8ax}%aEEPC{7Ch>z;d=~Rog-BROO*?&Xi-FqeLLdq#0X3mlC}NWJe#N zrMDjQK7s%JH~|^p*!8abJoX5HMS*44^2A&xZf=Mk(LFbnvW)wS88|-B2meJBJxBkY z+kJEO*FhVzD|ZC_+>)^3fvvex%-tRj{Wq!AG2T=MnGYjKX1g>+7V;&_>dTmwR^ z76&_8|KE+eqeFtd`c%}ab`sLT?S6lPAq46T()xuo%2P%&0b2e(Q^}%yO=(r3vGLvr z%w+b?mfsX+_PVq)@jo%H+j`yKAUbd!AZ2-mQPq}zdaEfI%1tRgU^TAv@CgbAv(Pa+OLG{L4hZG_NEoOW$FU)Zx69O~=f#;D^rSAnVnZ8$HIF3ffgxj;j!Lq_7LT zGHwQ!eKxU6Vhn z3o99)4?$?Os zj{@tT1C2v@&oNtlX@6cw%=>Dxc&|4fKTbzR%5Q!d`MDR>bsMj3kd|BjRsG8}eB59S z{8`)9K$gH$*z^ap{zqE)jHRF7OXyJAtc$g=%~GKS3!(|ZC>0gVf8GS*kh#MRnN@#P zM><>%#L=umJ@g77XhhvEXgXV$t7!x{mygJrHm(@w9!bKfdf!bdR%=#;0|pmtep*Ge z)AIqR%cc*3!EBAe{caiO&q2pT57|?32xC^rG^gv{OT=*CYHZ&x$tI8{L2Ldi|O`?-G;7K2AC;H5%2DlE3}W67HRk9rrUXRCIO#P{!8WLN?7 z6S>4p+bHANX)`NM9_MA8@n^xDU(nj;pB23QF{!lOpRF@Lv{(O}&yKl*U3G6v!P@fB z+ayx@c$b5C+qYYY`7Hl_K`?z-95&T;IfJ@$?Sl%#Y{-LT5gZ2mdt~AX!h+I63UK!I ze{VP@^uuXF^YFgEj|4;5P@Ft8XAcHP;M!&)7G_c=+6;p&iWY2A{tg zcR^#=Q^a97MJgU%XFF8lP6{scQjLzFZE|fe-*2Y26a^j;SJQIm;@_98nK+I1eHxjgaA3p9upDU=8an#?#|3+FqOnOwnM8I@GK+9c z=9yK3U2=PNq-0F{U`TWldR6c@?U_a41%d*E;paH zd5GoBrp>zKP{Rep)qBwR?C=11;l3bIW}v;-g^-riz9eBdh1!uYl8+B_WCY=D7d$l# zYE!Blb>#br^_g9Wvv!S8;E*cG-l1$&5fvot)OM^-O*y11TRloQg$D|+#)qHiJ33vM zVu7^eWiKBZY$0oBqfF`cVsanl-@e3*$ZvMm9Z?V8e{l$#a4y4VQCnFEX^gSSTL({d zB{t5sknIhl#u>g}!`F)5&Yw$&=8>c>eJ9)p9H*17A0bBm{Jmp1Ul7fd&i{5g zL9JMIuSTkMMzUdUSx;L78|>o>@|kfQFoe=R2O&g9)H-5FG*fpqi&OEAO2_p+)`~{<&O+V7K|C>H9hL-k0-k$=Q8(PM5pfa|dOr z+iU0G?T5IM3>9wcp;p10jH#hae^|~ypNTbF9Ybn#=|~*!eRGey>*en0pFj5O*U`o^ zo?3)Rj{4s|6f-ZBhVU{mdu(=dQG~6cYSX9wTL1Wp!}ID!yy_*ajCFQT)VXm9*fp@5 z_mW+A2GVJ7igu`40zdyc`$l|iqZiQ)QXAtaJcBteFrFqM#1|QRcEx)zL1eRpBR(%c zfjeG7YA7q+^eBuPKi*C*SdNfd5)@14#O(H>;mjv7K|%>-1J0e7XG8!vLY!YA9D(+P z8`Yp$Lvw7NFJQz5;o8D}mOXag}z3sKvAZ9xxEwJf}%_RKP6NX2j4Bkt1g#f+eK>#v~yzp|q>$IpUBN1?|Q zrZvGSwA&LHlTa3S0+#_CgXCzwr9+R@b(uM${So)DfpWxGVlH~on3+zEf~!NSAH z-w+0_yY)bM&TZKbD3lB&$&MTF1!DLTO!I4@FSZ9JDKPqDGTYT%2!g-MmW=#hH_i>& zC6?k6bA9eoIB`+??#})bW>O*N*Au)d8qfrh?1-ye49@1Fx46PiHxHIL%8=+JYWz>V ztId+eg^zMdM5ZxKGPbnGfJnaZ&GsOt)CT(C-?yqD8s zW_!N9`Wd2Ivqp6{N>HmobqqmAHvhUXke@?Z)$i1%xhC?Yiu9o@>&xduol*O1%F)eJ zT#v`+VcuJY;EzWmRwLijq}HPiXk(wnZ@;iK&ofb&*ZtCX%@}ToPE|1aIl5OS$5_jA z;@Fh1*C#m}pmXOqS$|}m7{~COJl0Fdmuo`8-Rq9)t5v<;pFao5+5t{y4;N3;3@q`ynd3%VZ%_bR}yL%M*zS-O?~61Gm0ws~jpzI-05ux8ry ze+RwFtWR-Fh-Y$;+VJN)hS<=SuROxRZq7e?jtB4?6UO<>F@CX#pOC=wqem;yIwvsb zkik0vTmP$cmfsG2c>sT(k18Ml1hY{!?%L@k=$I^a?wLnqvu_Dre8Rs6dUDfy5(01a zicS0u1T?cyKSUokEtVQ+#;}Oy#uqn_+P0#HD`AkR^D!zU7!eU8(dv4(sh+qq-4d*3 z#CK=%LormpQ%879iBRq(EKRM9jnl?h_uDNCknuK9Qk`9f)iI?RiT=2{ueZ46K1_H0 z(m1>3sXo(&>LC97lB~K#kxxQrI_nq20X4$Hxeo za4m629Nv$=ZJG%#TzUKN>Va%$Y;!4M$s$v2&Lt%6zsci7&4C^N2~3lZJhq9*OqX zeVG2{P*9c;xeQO)yTA1ieHJ`i}56q*o)~l@<+c-+vb*I8U%oMK)KlNY0f$lUM`%d*JD8?HCd|R%?mRvs~ z{8|IM43SOS%=CHlOkDyZ&^Ah9!L;%+1l?sME&#UhZb=|l87LGVC4+oP0oY+&@J6C zfA=2#=Pv$J=YNPmL|^hgUISQm2GUl8K<5Z9N~6QVL7ARpC|HSIt$0@*&DcdLy8}OW zT}^7t-si%F2Zht;pj_Ci{R!}h?~w?PiYTc%Bt05uu>0a`gp@?VM<&$Kdkz72Jv%pA z$EgXg&^R4jJ0;_u@V6U~=c)+1_8Keriim%_9#OJTE zzO9M{>ne9%Px7^;1crB$91~%M`F;@~725dL&FjuNLN#xz zfH8}CuGj{I6HF_cnQ=HH6CEw2tX-&mDl4H{LwExvr62Bm>I{5_m)Anx*oQPtCTi?c z9=S(h!Sv4+$qj*7zRKURh|o2x)!EspGmOhaF!kYUwTfxAQr2tyZ>2UXoSp#1gu127ZFuk8F^R+TmWt=N!%@} z7Pe5$Ip7&3lR;ItQB&fyJAtfbt9|P#E9gzBLhV50nr!kmduy*9*KVF$GfoL;aNt-! zT6>S?x=lc}L4sh@2E;%neWhOZe$%o2$#~kFJ5wASlzz}%u6{@k3%+kFO)t6^kowI* z+$2%??62|i(Qy<|y?25G?$jIcD0a)wO(zr6&a214k!ntbtQH$dUe!tDhe`lpXoLupfy zAE}Ev``U^%EH)p58YYyv*J+#HBmGCQTUL-jqfoJBqri-&DyZ2%dG7PN;^~sga4aC)wWA8qkJ9flhpZdn2c3} ze%P2IZnRSF?H`^OYZooRke!!0r2b@5S;`RM{#T$QVF?L{;lRIVD!D*JtA?8g1gJx; z5JXepQgVz_BC>QcOH1S(7uQJ5YTfNzfUnmP2kE=tH__jHW9`aIfil2LeQd`W zS9i&*MG?D;_~WxDsz69~(PPa1-MVcJm!B9)&^!X@_Di#f0ClRYLBXO)7}-z`{#vAu z$RlmWne;%me#bt$8z>WXsn{aKc8OiPu#iQ+=PEN<{|!95^B?s{#{cihIu+IOk!cv- zP@cG`LIV@)cLQ}F_*C*BcmRld18S&vH}v1BOih^j_PwP~t(~(Rh`vNsthoXK%U7e0 zZ-1ZanjoF8?|*cZ02=Xu78YKPI09r*gyp0Q zB_(5-3gi=hqN30LY9np6Vo1f(jU#&-QWY7mEWMe;ZTznYXi{MYf(RT zfz+Cp+4oBSN|%Z3$gH;YkH@6t{9U~_a?RrmQO(X&z{AwXV*r2T)0$weI?$7ddk!xo z3iLghC07GKnmA74?d3(ls0m8ZhLk(?`*viI>|_sAjL?+)i3wvoU=Yffkp{ZRP*_Kz z2GtVn5l&{%ON1wF{nc=?`VmgA5p_WUgxB{vjaqGpsL~J^CCPsJSnjF6_#HR#!w(j< zB7$JiY7gfboWcmrQdB-f-LeTPS3=Q=R&C6#`W;z+BtDDM_!M#8t7VIuGJ` z-c^vYZ7gr&b0e!vpW0L)B31sR3*UWze}^(;v8|9# z2pXQK3<4UPvf9V{wkcPtdi4lCwZU`@ovUUad5hlFN>G&W1D~turi;4xN#T`UyB^_5 zYpf>u|Kz#GvWj2wb?k_Z8_E{FEp=0opMN2|2a-YvhHyM1arc{|{>~?A?6{J)O)89B zUfD53E)ySo2)%XwcSI}?yIa%csW`9N6Oy6xe>3Cj!RoQlhJL@jsigmA%)EjFVS*D| z(yWQqmAa=)e#c*0_ImcdthzU`i5~?o?c6W0^c3D9(ZWUADA7|A$cC1ljhzE=Nz6P3 zF>7r*`|`R%>0f*Xb?$V&J7b3PO}R2wJP!Hf|3m1dC`1DcdB#%VQWMC_*MG32B% zLksN>T5HUk2d?SQL11DaUXao+DaGv@PdoNUxZD`)WT809Zs!2<(749}>MV-`!pFlJ ztb|luc9d>ITl+-bSOzC#12OzxI0;#p;4 z?%dkE)j;TdK>Dx=SAp`(l;Xm`;T0DE|xT#`(unoRr`gz7oEh!r$#1pFh#gGgEzX{QQ$)Mx9(p|JFxPr403jI_}dLomDl%>W_IUZ}T~<5m{-og%U=ka+2`vY^t7_ zG5%vZ*8R8r1u)0-3$cQ3+u0DhkhIez+8^45$0?alGV79b5Dm3I^~?XQ1<+QZ4^~OI z2sC9MN%zm~xE;`;l%%ZgNiLi!yx2bWm3EXxEH|84TjnL>M0LnB{3td3=Og&v?FkUO zx+m3k?kU}Va_op7okKSV_<81zWS%1TqdPdyZJK9i&M>){DbAI0> z;qV$1V0uw0JwLYV3-v19W>awfmI-qL?@Jp?> zy0mAlDES56Bmb=cqprJxeOf6QY1`G{lxs8=VS5)E%JAR06wq_7=Q%7fqBZ~ERZJys zhW7S=dxs_9alS+O`BRDKb-#cC=>SrS9td!>y7z?8HR67u!s@dBVolb)tI+@=EQ!66 zkWzk{*?>=}0L=0$umr^&va$9mwNmob)FDhIhEAk?Y7n)u76&aWy*v#?yZQZVE&UXj z5w}v)tJYWE04>0B50yKx7m;k%o+-ZGM;q(5BlO}jt1#(3oPAaJLBfvK+UT6qXTD#( zjR34L(DICw*IFw=&P)T>lg~oIV0gnn47U_7xB{E}eQ#afbrxeV289lmU~kcmtK>WY zK5{Mgs>?WhhKbRv!%^!9ZBm}iXRm2uRo=b#sjT-0S0~E~ph5&&NJl@%XB?>ZX`zu&#qYcw;sp!sM$wU-h6>_xz zDwI4lX8tJfQM*ve%8RcUd2Pm8E2fFV+W2!*8IWPH?kJYh;kvi_j)D`(J79h6kAjr$10PuJx`0vj*kg)t@cU1s4jehWwAxo0wT45= z0pY!6#7ux}hGH>8Ae)U=W6^KWoj3$S`2z6LP!kU20COX#+pbFE8ndfa<^5eT3yzo8%m#oD=L9gT z=B_mWVR^!n(S{#9M+oDvUKHA#QH7wRVTb1IuPIPnM|x8Vy0Z2{yBIMn(LM#bCOoJF z_&H_(LJ^Ek&t`)dR7a!ERgK4IXGNbXJtOHguJzuzCzwB7N}W_{ zeUDtz6_V6%#XvuFSh5;vt);o+B}SK4rl0Dm>A$^lPX&PI0KVRBH;!ekC;-&@-012( zFt%5qQb9rT;9oG3P~$l|dXMZvO6z^A z$Hq7w4%BuAsF;r#HmZVE5LyX73MzBmc+V?iwG_z$2M=`K^b;JArZB|4rwxaNAO;buA#)N4Yz+M1Xwjr?Ry<;=&WEds%Pyy-v>3gS;>E;BM2cWIS zHI~%-j%!B~%dql0_(UL;Lamqxi19z8JYIzFOB1B={KQSAPqxrmh z-h4Gio#7VOsmDsULSeS_S#j^l}%p;zdT6XRet=f!z zv}z>yeEidULkB*(RX@`4j0)iF{oQlAMLri97|kcMg?sn@{suS+Kv5IU7fE5(*c`wI z1){Mhu*f+Isww4G!-;J}i*Rcg;-hj*TYf75rW-~DN#kp+TvRVW*@vx)J8ChAf&$Nt zt=FM(bJQH9>AS`d^R{>Gv+&x&0K#;+Z3~dzAl$_9T z0w?g+Ldd%ZP~2L@qdt(mp`=K;sm12`R6%-*4okJi+#nB-1}QtbpBsRz-V5(ry-XfK zMDoEl9F1Vj;JqUCg7zc;An=?D0A`k2kM>POd?V%4;4qYO;H(d%Y_QaEyS*ak14P(0 zuDr&W%UY~-qQ-Ssiwo@5S{2K29KdB$TrmOO1L@5C3^9h~IxcU7pQoi&V2qy11gV^< z&FFV`b?a4$&;rxV)`A^waQzv-e+9q-bi{UVd@g>Lma*356`Z4%UZ0WorHY%!hL_}o z$NK~50k-wlku6$#_ZG;0?`_8avX{2^;1X)Z{jV8+X3NS)3HP4n)eu543{8#lv&u!8 z-e{i6`I`sugNL7go^y!}lMsS#wDhZ(r?m$#dcf6_Xtea?mvyE~NNezToB^oyWg#{0 z1a>O$?9L3?LVLjhvj-q&FORSa|({q8(Qp08#4|D4q=gYv`F?MntTq0 zixDzm7g)tbc; zf9U9~wE(Y3qKJyNoD&SeP7Aizh~ex&N~}0ru6{W<_iat+p^(pb)7BEuDl1S(%dK=+ z0&EKKT@O_T+=y)8!SB)|Af;C^3k4rTP?jgLXCu~d6b)l~U)ci+`+1&QgA`s%k$FDT z6(`Y9h4)0DkOHxAi7Z$|^x=!RUb6}dbft^^b*~_8gfQzP=Wo$*DZ&vS#GpQfUj>!- zv^rVr>dz8U`YNg1o)xD%u7!hFvR4UWCy%w z^j6@W0AKv_S{u4MQU=T(NOl7`;H*`@-|xuzfY}Z38@$KHYOMku%t8K9kczIq4g#fM zDyVpkwP%)MSZWFb5qw%?js;V9TmKCxjdrgDyz=HPt)ds+$F*^ZHvLcwe+3qKFWks+ z{XI>}jKt<%WA8-}>-ZS)a6_wF7qJgUQ55CueqO0x>OvAAh9E+)Z7k$KITYi!Syp?U%u zf9m%%W}hx?)pXSk`caYTd1)QB?*WC@0hAHaXbM#45^7j6`S4iQZh9+6q}%j)uivAx zRF1=O9H{4satx(4ntQh1qWK2^xNpFsDn0(2Yd7~ywOQQ<0B)m};t1kSG;vvqlkcbZ z9?e-j_ycH;+D7dIb{hD`04EdI7%jU@CBC5~L}LdJ{a~)>}aY zkkn#s8;Kr=%g-ojby{GMU08GJ7Q;(4z3S|&TOZR>N5{X-G5 z5$Jffl#u+J2k;vYGi&|$&TY)6_f(?M0}Lq#9$+45e;cEo&BA?)O~lPs(fR{t{W9~h z5k9PpKptFrZocC&#%}9ucsLbhD5bCwC2Ox zS^}o{g9`lBtAekPt@U$u0j7tb=Tike)1((SzV|+>I9qF|XlRJ=!o8y*!EL4UuGH`2 zh+c*<|6xD32dWs|i7@)VgYZQ{Z$S44?w`sx1@J@1&3DB(roXdO95Fi>B?Wj9flVi`2_(SEagCr&vs-ypT@iV`%3d&D0$SOyJHhR zZd9H6tAd~;8+9@3AmHefA-dSy_)4=SAg0(wDP@wGxRKSf(4PZ)J2c)Odj)7#L;=H` z*Stby7pk(;zJbeI!@LH^pHGHpN;n_q>ZKs*TcsFZ@BJEbxsx%8C@2!8!TX2pWTh;M zhujmc)AU@h)-QMrfdd$TKm4OV`kM*J@9}s_1;7?cob`6QhYJ`RD_DPITD5+H!U|uH zLrO2O`p@a+U2eCu6OTI0&6)vwd#E76^r4`Z6MSX6b)38E} z0zL1-Lw0a(38%atH$-jUYVx9rueCNi5%JKPk83IPA_I-k01F%r;+o+npFZPR zj;B-rwXOMa-W}(o<954Gw=~jx2816T(Yga~k6)tpcMwxh z;ELyC-kpak3=;*?`u0t-@ht81vg% zBjzjA^S6c|KXe@V@LQ|s zt)W;(u^jW-?GAT#`%Pd?g?mRShVBc1(>{Azq{Gds7F*rn`|TAuE&41!v%G)+7;`yr z9JkHN^BRgWm*Xaa=O{;o<%aji+XVH#e2H0++{|j#Rj`z#q~KcbYb3duZBu?1`cJxS z9e);yMU@L(TyA7-sjetFx5yC;8wo&Zm&0AB9*p96?VF!FPo z?5(}$yH0V{7?g}X;A8wprJxmrab9eKqac~afrhoI7cF-u3n?Pc__x+Uc^xgn89%RF z`tGV~%29jrDY&Kl0FCuE#$Myc7r3YKv;M7F4?g#`P>B|<_l_dWzj#j{)1DM)rb)Rb zphTSF8x^{pFaJB(kk;C{u`3HcIeO z;Eh&qmE!j8K6pNTzVKG|CaSrTyV__&5oP|(0w4a2RzqD|3Ktn|8fp-T)Q|xP`0^T0s@rcC6J<5T09K*W zRpBWMO)CMfgd}D&;^!+IVko3|gen{DX`l^Kt^k_i3K|l{vtuZ{xc2$jrw(&{W`omw zpmj%22O^rWsnnO(wcg8KWm!hcu7>VQd2(-rhp|sqR~`s8bgGS96-&u0!HUv0-*e@8h; zl-V1%ECNnPIr6aJ>weBh5V@j4G*5*3NszTB}~GWu6yHejz8SC>}90bp5NRRa2XS`POAr@-ngIj#Cr zLDqER3?JM-Y_2QAjsnYP0#+AZy4$>lj!9#U0u>;=0V-C_8u0To1{U0eYoMR~px^`( z;d|7OBAA)L{eB>&rA)b=kxFy4+HfG4o?MgQ?=Nf4b>{V{WB>#XfXFHU3BB$i4DX#y zTzKCAwvbczfo2Kxx#>l5KTd^hy#DhXPpJTY^7-?h#0FmJK!EOW06@oai>a~}3mwfl zOf1xj;m^@io*NrjtUETq(A1M!bamO)MWsOO)-bNARdVOKya9FBRk4&(kkbyt9a|}| z%~E2XpT7h4`GwawoSR&qSph`4^i(bkg}7FV>Z_;3XDGsy({g7Xd>;zZUMnC;uwn?u z>#b7Wf;=Y*0j-~KG#FO(;QhWR-#p?SHUtotky5Y`M-AV=9`Xkzb#3vbAgY3zs(kdF zY8bMmRxfoe&u~1Y0&w^*qnYHgEOWz^s4H(R3V>og`LcGJ>2w484xp*)uRxqyCgl%k zyss8kt%|ih|yYrcb$+ z6kcAVw$Y&RiU>b2=-Asvi4QqBw;`D%HfKYsd;$I~eQGwbj(x1NBsNG#LsHiM^; zTCuUg(+zcEQ;~B8ur_>({O@@_Hb5`{raX|^or%T`7#r6|{QNO{Kmk{)$f`Yl?s_OL zpcLBHqTq$Xal75n&kD4ailhZy0+nGXFgwuNUL+J@Q2QJ%8?l; z33ikyVNNl?WXA6$(uZv*DOg9!E%NgiJOWW}dh}jl<^wyzJYU>zfPpDH2yvuTP|rbb zDmi)#I?(%Lyaym9Lk^m`n;F|B{iw&&DF6UCYkh%Xvz8hYCW&#m@krr~e@a^If}B&} z=pmfL<>hg8@xyxUaWAd8f@K;ykjSII=d)bi4TnHg@!F(>HqzNU9E@Q#<4m-QV# zah_jbej?jmU6}LY&cht+LGgIJVO2oxtiJ1g9it(NW*9VU!8KFhl-P%QCVUpI%SuZM z1JQSe9YY&;z+f@IkuBU1fV=rd`4#+Wiodp3jF3GS!I;}Nyiv1UKI@B`1P0M7b{j49Q%R)!jdsd^8_){&8pf{p`7 z8IM-s*)ZP#7PnjZ=PxfWTdIrhoyPx)w5une`F9=^CMq8Q+r6(U#1&6+)6u%C1*RgR zYst8M0!;?woW>B1eFk5ApEOj5rI?_@lH$kX+=NuUncn;8nb@}t{k4!mU1dH?Df_v& zj$D%!0-b}^83i;G1no=kN{L~jz4a;d=411=hJ2|q)NBcH1s*gIQUCvuX3gxoW5quIm6p`2Oas%wS<0U97JFr*0nXNi?T0ef4&q?bU z3So59DFTMRK3GW0uaKG zN6mOCj_9~#famMEXZ)!MZEVz`5C&lfSRG%u!MRDICj28(9^WJHKJICztVZZT>rSBn z77|{>OW^%#7_et4mXhEft&C&*zGC6v08Dq=D$3!TKq}y;t}M@~%8~b^fZ^(f)KN;5 zKc^IYe_H5P>!LJ!gSY$W;}~@cSLJGX(0IF}_J-CgDjd~f>QVC`^6>M(!a&qxnFJuW zS>4C$@!3;KG2gE>BmhUw$Yo6w1~BVH;@OEA#ZX%KF+D_J)r9zh>XMK+smH|sXhKa6Jk6Kh<^#b4qxZf7N zQxRWUZ@SJ`B>hUU<+&+vJO|@@O^eaf;GsMMwP0$Ad1w<6U?KlJk6J@MQ>_)fIqDf< zgRYH!UtMIaE6_MuLlpjDrQ+2y3Z|Tiw~*jC!Swi4663j#l7KuZ2jps?bw7bFLxT-n$57o z_O$3VQ^NZW0b`5qrKD&%BP$Z5sJFNGk-j6QVbh~YqHy+&w72zArLE~zKBK-{9_oeZ z#AAjDK6*}?MR)1xv5D72rI3cV@Jz=uDgaNfpZ*SqdeAbdHs@w9$1&pB@uJa#D1;1n zv=k>Qui78LW;t}I#iYfa%j)m>-gOUZ8Lu%nUG7U+B?1*@pE-rnBkyQJ#icJgsZsb6?w*AIE|FOU79r z7iA;Nyp(af9ZO+CnSURW69qN&IVA@|0j ztu>sjjlO;vZW+xDNZJ!2`cQC66|Xm+HAPQA4Kt?_aUhooo<4=_J;hC2kDq?`=?wZE zM4)*-=Jome=ztqU6s4u|JX-RqVT7XWY)Pfokye@g6R!8F6x}PkPD2U+6HL{t!Ol4B zo5j?sO%0J42IzZOg;cCTC^&0}BLUrG{(z5WA+SjY=fSlk=i>GCRlKTIhoSMmDuXNT zq3=zVt$Km{jDpLx*2!7PIim@S@mY@Nx|?xy>sm^zLP88d1?dW;adWgSCN!Ln3iz=JnF3gV<8gjJ$t>!1 zTtlL3$Pl0ZIBp9Fp?H0L4R=_$`-<}OSrq(oU-@(eW;F|;Kp?P}1YbiL6|Pc_d0oX+ z+&vnvct<`Cq~i|rm0WbI66M|IMjRKeX>h5|DOV^9v1Jvlmm_( zJk)otd(+*~6bngt0D;eQJf#9a=K}7CEU-6~fCJ_k3DFp$J~}YkJe3?1TT&(!Gy|L? z=V``eeDUhSs)bTlT9JM;o35pPPQfLH2onJZMm|1DU-kJIdk08&fCDQOx8U>ZT2NSd ze*UeP1+e1=YSk6drUFu>#-99A9dOV#1 zFf;%D(+jL67@`wP!)o+_oY3It$wpinym~P9q%t8VJ(N%m)K6UQ001BWNklAODwC;!aY%67tu zqSvgR(^M5O26s%c2GrISgrC{j7d()YO8n&s6e;kM8^LN73wd#{=6z||;T9o^= zh<6c9NTMif0>! z**m*Sk$pv`DbVllK}aF6^fin?6^UXPW(ge?5eX z0xkL7t1`G+a0-UfiuoKW*sPqpdMB-|W*$7ZD(GuQK=bdsKD{meE{1P1OmVO>G<0YJ zEaR+>X!H?>HhW1a0k*sSn{x2ICxOfN_}o{57(IsgnGOKi|DQ@cr8G!PeP*4ANj%f> zj0(V0Pv|`wFqGqn^xaX=4Di|_=Z^%my~TGd@PYHu;Ei2^W6W3-ex$*CD>%=HbIk&n z3$Jl8zLbrp?(1?1Ejk$z$VDJ4AW8Sk~%V2xTG)sZJsVPnuVF&<#>LflaMO20nNH{=q8t6Cjr zYk1TK&yI%G^kw2dWd6D1h6Lo|{v@Tqz;h}9RJvP;j<`gfVQQf(+*bq3DRjxh?YEBZ zb&HkNwPv1t5`Wx3SS7x6x~`=xq0|^yKS#G%fi{g1b))L$)fihn0)C%@rpie-{551@ zXrR{V!?k72_4+)Ny{9g^y3pzkDAP{?KVZ?XSr~K;CH80D3zLB8_fX0K^HKkh!o5}( zJ;~><-rVxAqOZSM8C(oUYmqJn_7d%!(}%S>4)y`)I7%LMCk}MZ0l4gCh7zN!_`B~u zyFE!MFz~DjU?AMfjW@voVoso?Soo3v^om{|NEiOV)xt2JO~Hut4@o4!E$0SOG6!9L zwkT5}rJJm{1Fz4&kJ02qm4*rkr}_Ykz@&on^71k*ClCF-T6=!(>dNz86!QSEg){tr z4P%tdqktI&gGxY2NmMddOhNPIs;It}wOEQ}x!x4~G|)kkYIwaWd3)tP@VVo&GP|KW zqE8^h%AG0dgVC8%LK)BLT~gEDz>31&S6Ab!7naKyC!b=v@HY?OhY!ywRbaWUbaQ8} zIfYBDfa;1(f%AMHasOUHsNHW>pcK&K!40Ptkv}Kut+{gkzcw+^Ou|Ca*Zl%Zz_s6g zmbe+f_B-aR`CP0VRFv09j)PjBOXY0JH^md}yC2t!E_*!}n6Og13Mc3l>J$08Uth|qf zz6Wlh6@SXEyMmLYC!@Z4`I$uklhc9}fn?x-zl0KB!}wA`lq zAI!8L`FKVJ;QWiJ7Il4fW2$AOV6c0ST4%L3+~~R)fo1)u`L(4N4+=Z5EIQ9oN`Yau z>r!D>_gTNEm;`r)T57uA+BkH@@r%5pN`vRs9*SzwS9W753hy0fJvZ-20mS$_NHBbs z^E}}_Dj3ad4Efw^7J{&}r_*?Uy7v6NJ_`VpTsCEzbH>>_YVRRfDGG0pVr-b(=m6b1 zz`qgTVSGQK)rOLfh~tL?S?g%_QVKHDsJ4o&u1rU+V?53d5^o#X9sFz#l%6rqNc%o0Wg1n|KA90B*Q_6u4SIqUj6l zG5P*JQD>$Wu~J_ucq}KLH$Jlm>tU{*fC{;$*%VZy;-LlIvloj{!|yV6r5O#isK8QU zWIw*VyiD&xl_Ed8ud8E{aSHn;#5>_RbPYmC%VsszE8@>pvFe-#U@roTKaSh|j{D1f zEA}a7$m37)_?hJdBtysk?#vQeKY`?Ey`uG1ud%$EeE>|X4M%*f@n}4{C>K7PW=xJ! zrt(NBeX9oiYaC~C)NC0!jkvRS)cQd0C(s|r=4kDGZkYG?_YE*3a;peA<5X@!{(sa6 z1fHOM@+pvNL03Ak%y580KNW_(ppD*e7{e}lZ@AxY2yc~h<@U6bHsZLl(*Vsbgg|N^ z0!<69bB`{-oSHPS5FHP$p2W55ky%HwJU6)cRw9SreRKpicm9iS zaFug{C7t@S;zp*T*mMGr0u3yrTJyow;xTeO_}=WM1AJ_v!Og7a(ckg&t(`FAJ6>r& z0CTdBwy9QB{QZ5=bJb&^r4Qv4-U5+(wV-j2G7z-Kzm@Nx*H%H%Se?JSTJP}2_K{^X z94jjwsyNH_eds&6UXwr9;hqzVNUO?H*M;m*4VjdF+EcbGiffdUtMxbDm zZcJ{LK3IXh#{}V&^4v_iDXy%zD_xh@au2I(Dbhc2*icpp_xsCc72`Ys$e97(efMeJ zqk1fgkelVHun5f2(`c=ZjzG4aOF%tl7I;oY{3&$P;Hx0124ksUC6{OJetR93wLOmTVVogNL z?~iV?=J~0_zSbRAmBsr1z)aZl&=PqVV~EH50||!qI8h(xcCTE+-*znPA6`yv4>&Sl zKxLrMuf0jKv(=>hZ-6MA33D!3~L>?a=?@0IR4;t_he?>R;>7=9nYu$YDT=obQE-}G5V`H3RdNw zZdm@QwQi|1U>9h{oy-JKQ7BM#wOX`lR5Vl`wDJTAX|Xjf9QEG-7G;;fnm1J?&uH;OMATG~t)sPf;OywNA$0`smI-v)wBCG9hH^YV03<6o z${p|ov$A#W)$EFXZz-p};OqKXu31Wh3LKR7cRW!|;4>^+h=-N#1tX!ljd zR35$rZN@>t2BKb^FaB!5avnR=spsTM?ILQ+2o6mdf+wxIFr)vZ=x zSle(EI1-85U^)kMbsTodOKoflzv0`b@DFH$=CieMm`4Y2r5;v#VmJ z@}wKBJqoVGrJQrLdGm%8z2J}%W*X29=oV?Yd=xbAK@5`cfa{^>jfNiaH{3?dzxNSX z>D}c~Xl$>cK`90I`+e@i*iQ>^&1S#+-9_W~e>|fCi1Lr#(Y@pT@}0XUBy+&(1gE$u zs0387d+*3;&*9fvk%z0R@w@WUr<*L`7k|dolnS(NY&{3R$26hVmTPeh<6jL^uHJ;6 zoB8l?_YJ^0w+fef5h{QTXVh8|a8%IFJ<^N{hG|Q0dOqO+82X?In;Dt`-8_c2rp16% z1xW#-QsF)GUGaLn&ddFd$K%9VD>4##b0j2~3j;7Epv0K)v(_1d1AE&sRebIaM}W4G zLF^-JQ>Bin?D$95*=+Z4fR*7;z?j*H^ZoJv{(hz9Z+1MR06bj(uT)LE3&Rr2= z{sHzT6<5LK&uH~k(eYXMSuGUebu=ZW7L50tL{TaT`uh613yN5CVi7rKq|%Y|V(A4C znm*ivB~CD20z@(rmDdKSP9P7c)uMHpa{@8|I2;Y-04zCruTehkjw5AcB&3|t5~5B3 zODXdD$8iH3XtlvRuqG)>>hpAD<4E&hL$+SWedG`8*AeCH9g*m7=!j=l|b7 z{YL=I-4B0)*#JNK4Sel5MrGBne)Vg-fB6NH0SOtcE>ezrP%PD*)=^?+#+VBLHUXqS zUah%?2w!visKtRrI8rqFYXZ$Wa|J9l{YDF}R+;CAEh5s@OQFlm>#6IkmRds#{aY!x zR3aMl)8m=o=Kv!26kP*+vEdZpEW;Yl_W{IbFWwS6EGbr@ZhI(p&O%7&mVsPQn**Lv zYeVlb^P#uEg_>YGIW4+)tW}4*;V3b8P%#(3NBp2y?3VknA$+;t05@Xa+ zUT(k>$=%c3h#oJmFKDge)9Wj;0VT0XL<|EhCDL1F%fd7M(iksFKbL!^?Z3EDm!%<) z(}!CJkTb8|f?D@0umyxLYQvDLFy@@Mw%T87q&Zz|0SsA!tW;Tob{bFfzN6xBQKzq{ zx27HWnW?lSMAA*p=hylP_n^B@?tbeimf*D^^{*GoDA;+ptI2YtdEMEEs`e1eQYGIscYyQ;Jt`(9+rq zDJaEHQxWux3c!zh@p2rftpd&9jn!*)TE1&8SFJjG#PjFCuBCNcm%8T)=7nH=eRu|A zcm7O;SHqF(K`VK`-vKPJke-XWs9GpP;E~VA^N>}j83n}+n1lDXzGQ;syG10;Eb>TE%{GpZd(LRe)Y=??|Cgzhwb_;5bV9>FMt$3>7^!)Dc&b z{l+}BQg_t_Ykf~KQ8RM`YYOpdq1?kwjGX+QHls`YHPA=FHjT~M)kp!uKAvZSlcLPH z>2+AeRcI)DREGRc+|TN6MB46_29$DT?Nbo(?cSi2O6S@+ncrdmL**85jd&jZKNYDe z+W0e+cuw$S8_1b+K|@EY?|Aft+$!qhgkg}QrpFeuBP!=dq=e*=&(C}pgNe5|7=as5 zd1`nT;ADWCXK$$9V-`j5d!}ckjbWx|h)eo-q%z$dwKd#cJ_Dfuo`Mnhj0&K=e){yD zbDEuHG(Nlvfm(Y0Tsy!5dwL33U1#_`t?;6yxLS5~kM(C%1aEKeQ|oWa0Lw$s5?2+< zILA(H=DnzQpr7Z@^giiPa2+)EeJTZVBKCTO6>ccCS{06_ zBR#ah*8hOlXl+zoS{ginysag(3Hn|_@qQf1MuVZsd*T(cKCJxXq2WZto!ke@5YQXr z^}d$fxE%*>w*ovtBM=_Xr~v%s_VQ@0;ym9!Y$jb`ZZ^hc+zg7$(v9OLz2?nz1MoXn z4*^*5pBB^TcaEcMDZQ)JR*S1H^19cx0rk1~Z+@3ZIfr+sz|-Pt0Z#n+*tC;wu_`eQ zlVZIhCC1Q0*X2r5$~n&tKpF-piAh~<9Rj+o4@5b7FzGsR87yH`uS^LpWC}(4~#IeHS8rPSc9qm}+INLQj{S zp9dC_|FwHbwx;V6U(k-f`aM-*8j`3Ws`BI}=ZJC&Lx6J`IWI4Rf7Bb`IjQ{C`&h0% z6^F*=+MqS1G#jxvG<6tgY_hzK_14gh`-6&7v5fKhVK5ZgM{MoRd*rlaRT7GEXeh(Z z(0uQV@2`B4aQQ3hxy}nXa$t+!Fn}L8?Cm&uM}ye{tlXmyU}OQxM2`V%!p+SQEviB> zY+#aius5FBa&y)F=F3%=RmX?NdH1v-V|LyH&!g@(fNg^SyRu<}kyh(w#ZTFsd=B2< z^}G~pfa9qb#zBFni+vky#@&4?xT`{2Z)LRtQ{Zq4JXRlq$Uux)jP8?Cs}^;6I1&D2 zzajPewk|0}HsR4a3Qn9o!Wk<0I6uHv-wuoRX6K2sHJmNtcL3;#a{{78S143WuWn&M zvDdDy{4Ez)UyWmUoW0MC0aAkXK6?QiIZv!-WCih-k1u9+0&x3Q3-Hy$ff(%+qm?s) zW#%ALi<-ICIuZX3cu5Oj1Fpp-i!eh=q#glXY;}q0bzChCu;Ol7VFe}C8c_*Qu(hxU zSe11Ij(CpV*Z3<9FZ6q}0EG+ai~MxfbF*&z|CFMQw({fE%JbU5aD~S`Um1ZpXFMM7 zsNx)pRYJX%HbeXuGq3a;JeMGQ)DyCS_m^6`ucApPOr|KtBVnma_Teye?? zQ#!owGv2RmxW>K!K8)$23#oDB`}_MW@x8{d8l#s|CVD*qCIN}m;;U7;#-=KaX~de0 zLuX16*euKx1i=>G-rfK#96_(8N=ZpSiqg}2QTAgw%63hztKNHTX!~&8mEv4n2o-{> zx1*j$Tx)f8qE|J;8RqwWN7!wGg$2oXrM+iaXsM-<2YmBrVl9`YR|PbmlgNKgGaK+V zuS`9m-uvn|@H7;lIG#}fG~ngW-f^J!2h1KwiPm}-E}dwjn*vaR5ODy`1&sRp+wBgf zg$VfQhPw(bu!=nRqOS})RW!U8&8zbqJiofwiZ7hQmE`BHbm4eLpE0(ARK0iUb+DL@ z`h68}T0aWv`8YR45elTu>oGs?qkq8_j8lAI0(=sFX_!Pzf!2DK@e;-F4m%QZj3!1& zHo?Goozbw=bH>B=;V!MUNmJ&(Ljnhjw0}&;0u8aLXvvv7UKH8| zSg8PijijUQCvf5Zi$$1WN?tjB{!9TvUQ5ek^?ZtFTsaI^aF6LMO?537S9W>*3wff3?xMm;}kKz64T1R^Cwh?RiJH;$o%v=vM$h06U#cO{?RmcR`^g6tj@(mv62~N@q90MQT?dt#MK#z{R#S95Rmn@EkIlxX1qkxlJ zvDPbZ3YL?fcn|6^E(Mj~zVMGG6{AmO`p5B%3IG6LImxt~y@7?sWjwCsvHV-hXlYH< z-R`~P_4RcFr!@V?l%oFZ>gH>&LXE2xbkjI`q2$9l3gb~hBw8qSulYLwW7gcVPOHYD z&;I>9mU84^jg?V|l;Z9+X|_WJ**(g535ZUQA}s~Qb+{^Pz6ZW9f|DAf-|zR0oD*hr z0kO#zI^W%q9Y_we$BAMKGvO@3J=EDfH?A+=Bd?)Z3>u4CqZdW<6ONcX&HjsOgvbtz zV|l7PAD)B)%;OmqfB}Gc0@{h%IxMXg%ye;cW=Gx8X(b=X`Iv5JSWIkacWg9HfyMZ< za{z#46}iD#8_z>sTz>!RHT1r_^t#d1~zZo=#igSrAo3GVDp_^TY#rjP;37n{Cs!CI;>ZqIg+#QqQ2uX zHOU>s{rF5NXZV^5^b`)kGb(^MJmM?`*tkLH>IPxMQOXUiod6aZ8{dgj=?m8MU7TYH z$jpNe0pjK$2b`N?qn!?6y{3{{s~^~S>%03b0mV89=4t%7G3k62&}fWLuYiIGU@Df$ zyKm+!yv0DjBS-QBtyfQ;7qMkOV; zKiGjW{G#^&iE7*X_Fq9JeWBFaS0r9vVDEi0ySVvjA^C5f^U4Aw*W4~jNHYUwi!j6u z#P9QYuQB;tq_!;QHQo;4-I4+U=}XEPUhh~XjVf7S_MR1_l>P7 zg2m^fU}~1*>Iskw(ONWv^*$PbNP`UxTL2)Jg2y>{{<3cInYca)PwGJcJ7e+cxy{3) zd8o^}D$YP7#ODMs+N8}A>owB)365t}05CK6{yolq!cc~r<>>wx8yBeU3tImkuoGs3 zw~xK{USEVN0u?Y?J$_!%Z(4qyFDzAncim68otu!Xe6|dPsQc`_bqzA<+OWP+d8g^T zu@;-PRVBfpma@6#^;xuXwMf98(STLd_KsYDTHohqDa?vLsK8MfsdCn=1J`r+UUs2X zPv+K@2e=2p&_5)`XSl001BWNklI{*)JZ@9K3Kq)mrnu0;efXVqS1=c zvfc0ZZ9~1iz0J+7-Fp;+;K8s$i8WV6z%|ee!8J2-O>^=2c8j()GfP^zp1bv2%trR{ zGqbHblU|3OLSPT8M+48P#Yb0e!!D3cv=-4SY-LQ~4l8L)3&uLoWcn|bmx`*e|(ee57=da$^k99nw0x)32RD#;J4tS4Z z4R!k{P!=S$&GPfbYK+WcBBs6c_rN}-*WEYnf6jU2^aDpI`Su|LKuU3>);>1qpwhXz z)asGYt5BW-KTE)ipHYH~ZaVc4xSqhugR7UMR!_4XTC~c~l~QK?Jv|$}XFcD%=eF99 z>pLTWs@@sbdh!e8oTZdW1y3ouLMQKNwIW-BA-X|bGY!BF81i=jX6`?w6rO|az~tN8 z+vc56$@3l*OHdDOD)bQsKI#d#(TVt5Iq(l2p#Vxj>w@N58Y!A^!xbrKibnQ6-E^Z{ln0L8%M(g1-Gua0H2kf z5U-`7fQB8qX_Wz}`To`<_14-pB}cs|wUSp4OBI>o2N^>hPXmSoQ8XXOvu~MP&|H zl>ra6WSW|aO$40hPylT;?$mqG7&ipl0b~S2jOXOkV3{G1R(q@PJ|2iy6vQ1O+3LD- zIePg*oShe9P#T&@F2CmjU5*+3jbngAD=~ z^0r=6$c=p>6C9&%0YG!di4ISOY{2=bNcoQR>8IZsg8X$3vjQNRJ$f=^2dqclnpQlf z-^PFj{$VNV`{NC;MRqZ>=^nL<5%qiu)wQzO~rr^ea(`DVR zf~)DIoTCpy?1z8@DqI7GT54G}{w08^ zUIN#agrVidEbOFvv=&zv8i;`%jMsw);B#HC_>QH;w&Xd;G>p#$MYlCaN_+fI#iicg z`}^`t)I(A0?(P`Fhy$ob)FX5sU5v*)j}OBEeERh1{cj={zwhHI6@Zy_vq-lv4cB`g zv1AP0Y_+4FJ5wu$L55Y2*m4n9K3Zkv2CPj(>qYCqxRvJ!tJ*(o@e1(r_7@tMyzV zL!Q^rwrqS>3MV}W4K<=e(fW+u$5q*wtrTh-il_U!##9u1&b~h@*EIe=o;2BkWCvR9 zfG0Q>Jy}DmxTmO(&~PW`ymI1jfMnxu4@>cQoT&8#D+>8}VCA5x@hR{czcOY8urkO z+Et~LHkX~`EA?)cE4?x(_xpV+1P!Z_C~n0r>Np?oQ~3d^6jqjDl_yikql=IY;U8_t zMtX3jOT{AtFbHEl6z^@mC&e%5SuUWGA%uie*u8+()_(9l+LH?*EZCdzo%{V2fA8P@ z2miQ}$I~eQcTetqSV^Hu+X?grI|@7(BIeN zflvILT>my^5;o*)aBpy&Nd19=2D1oNGdikel;rSy!%yz`$F}MLe)Qw%6aYdZTCzeV z4|l_PQlo~|0+yT1YCR&#nmXf9OJFZ^4a>RQeF|b4IKl$Td|L0=;B|x+b^L#Tfq_(G z{;u}`x@bA}TKZ!smsJ@DP}tb23Nzm3^U;!~`HZV^#VRr0>l^6d(EYwDgyqewY=9Dx z=6BPomQ8sx#uvY~t&A9id886oa!N3) zs>Se9WZpwAfN7H#88q8Cj%+b?xtI2oEpeVBrWB{ZXv{iVKVgHEkdPuZY2#Tvw)X!8 z>_Z2Bik3CsJHcV_tjK_8xVC{YC94rvs%{WVM2HnU1ePnUEJv;> ze}An`flh}i{(A}hVR?v2VMQjwTK6sg3e(DZxP z_mgv()1y`CX(*^+3fKR*-{1zg1)#_Gvy@rfcQisVxTo2*Ym4c{ z|G?}U2>3&XnYo$u)yOi0yPj>hY|$rP<793IjYWZF6|X3MYddJRHbaG3xYmpbx#45; zJpj)z6nIa7XS53RW@y#WDx^rM0KPXY)q6JN4;^J9j*XGj@Qhw}uKxlW*Z)(ADHy0g z+KfYi7}4#%DZy*H^Xf&=++IBmDy^I|Zlf^?*LJs-t6!qNFDe7YW2k^$Utc$bpRs)! z3W;5NdG8czj`ZR^XIo>;|9|%0Y}uCNxDs0)Q|3P7ovI2|06`D{36N~Eo798!s87&G z=>PPf7wL^^lbMVyv8@NPNe~SbQ1ftyGwhrr-1XoQnUVY6!c>K-YIcR$v3t%w_v|4v z+{1nO^5r%5vsHQG&LPwdM#W(;^9nv{B`HF{xiy;B^g(<79U=teJr-dkV=@>>8hv~X z*VoPgWDI~_e0uvKh#?HbWh30A#F>DT0O*Y=c_yH<+@`dVUdl#EQ55+V2J^h;=Kyv_ z3IOvw<GXTfQW(Tg zv4YDa71bFQCP!%o>QqxsTO>a!Nnk`{{m24B1Sf)+eV@SBVSVi!0Q9<<1&LvI(G($E9LI&3A;0F<< zZLYblD3i-kDeYuVy4j0paN0t|l4CD3!x-#B!;%+oC#_SEk2f4(Z4`piI|VwEzTQ9^ zIF>gk>j|&rJAreXV;YAc=c;*DK->?|(9?AvnwQ5*_*}$DHfKlJ%X@8&N(7T7*7qgL zU1<<|`SBvYQVg!Fx(A@Vzm-Z%n|?z5{HL6YS~swS|Eu)6Xa^ran3ov`L)uxH??K&e zTz}RA{+SYi<;!M4NJ|9e3B=_vD2hHMT_OQAgC|u1u0FHwr-aA}LKcZ+D?Mt+w~J^> z^+O;q)~(f=uhaTEMgWG05`n-ue1vRer}e_JhV{Z44U}@2pceK3tl2kb#JCr*C`MG) zb^}?TUpB&zb4~|MAfJS^Z#bz>wv{TIH=?kj%qee}Wm(ivWCNhq_gOix?exi|#Hym9 zj&O4fDMugW)GqH$bKMN03bHfORH}}Ym~{Y09o^I?X$=?_qp4BywM3Xxl49)p2oCFY zudy0tUhe}lW1i;K>6GziWcH)cYT#2bgnh-OzIRkUhiv27%WKsU74n3kn%Z3BB8o5& zk_ce7Yi+Bj0@%6;^G)4FJ71^ul{x?sA<-nYUPeSH8WSxOAQK3go=RII2@&AEMHErg zmGq_vD>c{{%^xEGF$N1W5)s%4W=^|Jz0!c86=qliL4x&r4S}L8EJ6q-fFdC>fown& zfQ>&OM1ZhI;Y%2!C)O!L?=+?2qzc0#TcyT1 zoxPA)Ph>SrtpCS3w+gWq@U1Q(mPjixLnJ{c18tFVn&)9{fXv}S|0;7bo7o`Q9t zWFQiez7`4q`}LK@B(>q6I03Dxq{Na0DFQGF!U@&|sP5lh;G=|&t5HLhdO2?(?=_sa zcAtwC0Ii&)0<8J2Cksgo(92>LF-mUEv6=I&dV9;Vz!9>fn4aV-uRccrkwrI;Q&yZc z8+}+rV7voFR&D!YAlqqD^6(;jS{jQO0ApDgMB2oHBB^1@wPG-DEWMNxnkGPX?DT&a za#-d{OTiQ|l$d!AHE5?zPSzHF0in>ZjWG}|ngs?0ur0$s>S{u{ho>XV08Rf08x1?} zmwm(ptIvs6{p^$iVc3>$96AWTp;H*bn7QJ`aBDgv_ zDk+JGATk3++u7;s(*v}wFFgYIj8nf}48ZuNfpreXg{<_Wqo0cLmy^2=&lITAGEs`k z*3$+Mz`2k&pWaYrD1Zop7>h&(3j@qiPZwjsY_JFrg%AZGrzfwn@LnG8tquY}o@dCy zm@`to*80U_VS$B(6~;8}MLbtMLfO)fIuuVSX}wv>>u3t3(|Zap0hu86% z2^IIyR3I^DP*BA|Mb!C~>snNO>y!Z?m|8wSv@GU*Kq<%R`=a%C>rG}w@(UJG8*WK0 z6w@(^2P8%jIW70Q2L85ad!Lqw2oeO&dl;`#q>urVQG}jq4hF3yy>h(_1?@=94h}KF zkwNRjit3;8Bg*SrYuCo06%52n2i{k@ey^dsTEM)3a;0EiCitKy(-Ie$lz`QcHmx}p z#S(;-gtBB^y0SyddlndQidveYJ^D?Cu*9@ph|}_(WLyK#lR8Do03(4D!5X^?dY)N!ZzT@5HXmi;(WF9Zkv-w z0G8FUZIz9e)sD*2(xn1?>Jav{WMiDB2_i@_!MZ9v;jP&xl?aOnQk5ZbVz|~cfT**n z^Z(UJK#e*s5mD0ay_E0k2t?CCOxwe7>Qn!;k!RzSYuK+f{JP~90JM(FNx&dP7A$iDgfh`cGW|GVk%R<+H4c)Li$G$* zmXL_CaMDo4DBY7_u*|wCrey|0d%{b&OHeWsmGp#wi0yNfnmVz-8@qPGm5n?l1{(`< zK6jgORtDbk@{-Pou(qi(VTqeyXi5o^okek60CqrIAxVksL-m5Z*I+DwH5HiSj0IaY zq2?8A`$KytO3to)iw&%-Q?v3OR;1tT2bXT#jY5%jXxhW}yR{2pIF>3fB|IXdq+ywodmQaBGwA&H|)*;sx{=cl-R&Rh}1U0dxCa#F&Vly-Zui0q2 z@v@qXa$i<7zi#DS!_KMMe}~|T0qLFZjh3!A-cYm6pUU5O=kfIE)5l%cT>)tG-Zx*RBlz4Yz$@N({j+(+;{i2f zy(xXt?d>g`bN=IxKVGy}t$?27QW}c@xq(LO{Qyyd$XSP&uOg81OnL*6=^K)I!nm#;QD; zm@QP_ap)`XuzX*)3a<{!033CbJL@o~a(HTcE5Sgxl(Fo(*&&MTTW66X=Tu4oFXeDB z*Z{$}5ra8RI}k5%8K|NlUP6`xHw3d_jSBR>Zjnc}jWw##szbyS`F|N- zym)(>rgsj9!`b-2`>GWmDM2kU_SBU<3OxU6hG5wIMPyd?=FAk}DWCKj(hFo*J$i3)7}S$B~gFt>}Gm zW~WAeT6eB1B`eUz3#@SfOm1c>peAQ<&SHr(yz^j5AP}rojD;nElR;dxL{>17^8U4& zViXBSNta58Wz2@9*p^9T~=tCHI+C;+fRYR@;b#?lpNfF;Ect>s@y|{5IKQz z_>WmrChz?&nzYV>%OOOhp`R3NXRi)aK-?1>S@EKjB0m1`{r|OXn*X>g%ioRT_|v}c z-?i5E*4pFc<>d$i8*cfAM-}g8>JHxUp-WX#= zcDMPZndTfk03~%qN=3 z)dB!(`D&i0t+clQ#%#kd^?3@btd!sk3g5qM(6|&rkAo0nNdRDTdC`Mlk)V`QEny3+ z%{T?;8aWvVImG!IA;T2m^!2`vICUzdv$Lqwx&RmWYDjGk9qcmk1b( zlqOZ$0mFiJ;HXB2TQ{UIrZ z7R1W)*j1lM9YabgUFQ~M5V8Qqddx8)62pPPalzf)-JeY%JXx0IJ8j$k?KqBahY&t+ z&b_-V%iW_#k9q(zfLThz%kMEN_hK=e06)6Dy|va_Pef)I2IHLbH#aw}wbmPB zT#V6Lk*1Twf!EQBd14E;aK2s}@U_u7>kyh~L;BY@WK0(Q&@lQmbgn_Jn%`btzkV*= zfGQNCQH9D}7n*CG7b@5$ISt*)U#HD8^)QX{x8*&S&$ji^=kJ}qe&epQn@_gb?0cmgVP7)BM9c&+o?= zKXJ}IGsYYrJb17`odM^4z+bc@_Pe|D71#IMKq#>OdR2? zMHybHlwp_OKcJH9vhoPJuEY8HIU+BL!>}UX1};}Fmh7lhrx5^bR$YeCy8o1--onH= zVj)21tfJ7jW6FqX4v|kM32{nD6=`S#3^)2QumN{9c2d%jQ<2j$`+=F^ox{uy!oav> zF&0*bFn(6UFY13XV0G9K7RaofMNs*iW3OFz=+_tb^yO3?=N2hMK=Zc z^uN8mwM0bDIX?`8vDP{wq8MWkk(QZljIjmqz!;7(nzrz)VKlTX6Jl3Xp7t!P9iN>x zb{X)ptkvo1Dxx+1;KQzDRBxK{cxk?=qYePOjaUOz_1^qf*|K%e<-pl`__$Z-z)?eM3rC5-7_M25`nO%6m#Gp*ur#9Mcc283eQdiDv}XX zgmHwlBv?aWWRVWi^eX`nHmc9hs^nWc(^Y3MX#^6}er`d{8Bk_kPFuK8u(P;pzW2r| ztyl_IArG7_{S9kcM{4Yf{A>R|08CPidlLb~W0nY?2;M9T3L8_8in9Q&Q%W8{NGY8I zxDb(_GxG&Ae|$I`K3bOL=$z{>E-pr>-7e6m;LC9UzXJ5DQUBr$7*(zR{{G$>UG8u= z*chV+fEc3zaK_9*L@rWF2N8Y%!;P>Q&9|DoVH}8oMG_1MDJGrox2pT-bYN@h`s{v+ zP90*``t|!+^(UQnq#uo|&bfM1Z7D(4&r52c0zDm4rM`1oyUte@MMVby;u6<%q44MH zDuyEW`;sQGsqSz}E5;xqSaOA8a2A zWOq$V*^aaJLaB;~Y!j4|D0ry3w9{@y&TX_FIoD=Dav84%@=8>)3cl_mypkd*>8NP) z(dsNu-?#ppqrl2R*SHS^Yu>-M7ZZVFS|c7n2a(K)(aMa49A!h%siiSql07{$4IGFQ;r{TON%k7whpGi(Gpi%cf^4ea%$^?4jX zUGl5Tex`bi$}-0IySuw!jB(4dm}OZG(=?qEksZhJikT10e8n6eFVpmG$*?kW(()AL z)=)5v1sKW;k7w2M+S`uN|aO8C?Fg` z*KgtQ!+(Rto~?Qk>s|qN`+$g8MCwu(F*8|f1%NEe;;D4B?OC)dqwu$J2ES1X@QNp_ z0Y6~N`++U|2LKWgS(c^MgWkHn@14;r8k}=xp63Su4k@KKIr5t+@e_f(wiri#0zg}5 zmEQ1e+DDq;{3I4&TwP1XfA08vX{`q_vq;vC__zJ#e8 zP_YEvwEJ$vC2e4*f^%C0QR5)R=(Xd`WPpxPDki`NSZY3;<;tSj%3KKm3WlI!9wn71 zd<<==t>^vi&m0lKJSzGR697`s5;@;?L6DMeHA@bRoTf!6KOrSpvzKiv(ODsTmHm@g zCo`dH7q1;-iH7R8SWfiSX`{3!bB^#R-;1mUYy%|C$`<5={?Q-7f9pGF+yRZ@D!tqG zL`C5yBFe1_CIXm=C^_e5$*rBt9HmGT7jLOpz|JOr)70QsI)Go}Neap@*c?IeOy=(H z&JdBY*4mVkq?AI8(dM$B%Q?pLB65)=oh6Y*m_3nciIkmXjn8=@DacfvxTkg9 zavB)xwEQHg>IOsB7&rM+$?90vyv;Z)ON6rlU{;-Xr}SG}6m?i55y^Gp)euEsN#Q@v zV4o6C z=wiLD>$S|RzWVelr(*#eYhbPpnaloLLBZ;?m&f-JndEY1xgP4Ui@ZBIv-UTf=I8b2 zE4lxg$}oe3LAmr<;{kd#{aq2@4^G9 zbA6yP`ttbQ-JLPUSYwQv=Q+d}!!%9a7~`CC2N7vR+lf^|XKmUrAjD~g z@eXt0;u}Tj#TccCCeDVRn@vOji4bG5LJ?qdXsA4XV1a>^!U5QnZPzd}X*?{l=N^=B zx9-ljHXkmt&L}w9#$)6)$zX85_1Fbv5nG0yGg|`7FldQ_{mHaO|=SJt;V6DA3#`Mm) zr_Q-gt+jVVbnCtE+qNBsVZh;V(EM}14^v7{6345w$aT5E1*lnNrE)u|wykOh8-R@7>veHi z`8H;!U~+gX$RR(G*2hn3^Z<}pK+YiLa*Z&+RvB!v6x266UQ>|!1t6pOoj~j0-eF1k z#1g`s9hG$f3r84MRv=@;AppSH1}PPijf!Fxl25@S>U_WaT`_>uFu&CGi=h?+UhCr4 ztlOqG!g>^Vt+h}y7l94PEAOR#f2BH7I1B|)EtP;846L2n=D2`qo&mTF1ag*A&+^>) z1U(&tRyzP|EI^{poOG;Q`CWO>8{k=3eR?K+BwEJ zC7o7NLj4j25PrvK;J0-EHNbcJvj8wRH#g+HH|OW)Zk}g1O_Q1Dxoz9l188E5ZT>ni z^CJ;CF!KXuzDOyZ#f7gUi;qNy2q@PYvX1y-)^MGKK;$zx$ZM`yT2nQJA`moUV6y>L zr<=G2eXKE>Cz*8`=^t+eY0|4c+*u0B;$|=NubjMr-ZpoVzu~9E~xbIOpE+ z-aiwOu4$SfrL>%%pU1Pavl9NN{8gfXmrnoRq%`;|9YA@43JcI3bn@TI9soerT1!MU zjw7X%LPmg1-}eUq4>OqIh{$K;|3XC0S*gHhDaCV6XsuH?Y%Kv{3&Q}cn-!4UU6-;G z$bI`6q1Mf9*4%FG`XeatS0Tp5fQmsErWsIi1F(h5*6e>LA}`BGS2;dNS#Nqx31ADh zSe1UPB@is8xWHy|5s{9h7ExS5)1JEH&AjpiuDcy~6$;4i#GB_CA%tCNu{?)H6&vRO zB5P^1R2S+_$8v4z2q5pDUDajXe3?pI0MUZ%uj9`-!Z?qGXTW%{ahN56g4G&52*g_% zv!)1_{ZWg?7@|C$T(6&!h}8KOb!l~08hNIa)>3W}q|w;|3B-UC2Q~?DF_^+5eDdfK zE^I*4vZVO7^=1RIlygm1W@D~a2n-UmnI|TOfWVRA zo!z}w-8WDwBISCOS%m6<><-vaIt5YJjq=;&@ARH=_KDs)?;I446=V%)Z@72h4e0ur07=Hd&y!W$n?&zGman60>oO|Y+ z`-q61hY+3`V{W|n$7NZ@5W<`t0AoY`%ZL4)H~_%!fB{s_AjuX>#Rm@_l)7XD(594{ z{5wf0`IM3&b+HE#DP*8CRszrkGoLea0}-1z8Sk7aH@|cPo}N%EqMQMt6h%1$Qu^Z^ z*4i>=4X4pJ)UUh=9m<`nR(R_G}wK4Cxi-r9^SWYH0DQZ9Lnia9|4 zM%^E06=4Dy3qg(`G9VUXg3Il>btF&>dgDB74K!sH$C2;pOBIQ_PF);bU1dN`bVK_4PT5|%k% zYueg!fsEP%aIOV&LY$PSL>3T^5R_7n*6-s|(Cd7XqhN_TZAjk*!Dbx*6WrE!077B| z0;7Qd95GT0kb{X@K7$B|^5}4*j?a){3f6dtKzk}=$;i#VIY-GpTh+l@1x!nL?wrH8 zFpTps#HvRi0+Iyqq8O>(2w)h59wGsV zxd2CIr9P9-%E)QTGZr0U5;)Uj=A!n6K!C)H%BD-%C#8(OPX_^QI*Yu30Yvujmf_|R zPY(yYkaMuVz##;<)*^%hyfMAw09zKF=Zl2hO>l=kK3- z?}wZMEa&IvBlZTrnjkiZ@L9I`E7up=4xC@KI0FJOUtC;t0FHNecdaqz17?0~jQKdm z`0+f?-(HsG`!U8VB3eYmrer*c#nr>d^r0afq6MgghFNn(?>+<$Da|N#_>>YPhqWv! z<)lWosmv4shf+&EEsu#Pa;>M6mg#EIMF2U1ST!lcW3an|OO0*EQX*+vnYxaX;t z6Iv@9xf~`c7X~6Q=~$~WR=NO>#u#uCEK)im1ti+UqU00>M6FXUzqJ-(G-AjCYg!30 zN?fs2a`=LY2*3mu73D}Qs#a9h@eP%!%36hqDZv}PPlc1eq4{}E!y3+)>!lHFDP0;< z29IilF)wp&wvp8dgY%5Q{M_?2t=a?<8Agom3(_(kkzJ=BxjgEv@YS??vXV_h#sQqR zP|q=UTrLU8cn}F1=`eG`O?ZS)=5x4kjiw=l5YU8TQP<6#`$ieq>F>AOEO{k#8#?qA#^4jr6fG-AM*p_#HrBt^)b zvq(uxMyL5{@tejNHBKm3U{5&N!q#$v)z1SIqFI?%m1o%6j{$(G1=}XGYYK=gA*L4@uG(8^2@xeTg ze=?5qU-bR_KMce8M`P-r%*VdHfBG>!|KxqlAAgEzcnTW_c+C>}8%X3;^l_sa(=KPP@rLp}u&+qe2ELH!1R56DEW1_y--=mOCuG44Hgz2f zZL>`P$;vc5t+4~z5>45F6SntTUZ;MK<$c!JKwUblYwtvxgF|jia*`k%m0@W#ye84+ zC%vZt83Ql-st9O?hyf=Z8CE(R1x4U<4^CPTq%iOZU=ZeU!Na%SM7r&f%)Dc6DsXRL zGUc0{zM1mbr?_ZJCHZkyyHOp2EdneNR>}^$C=$&?xJ)x94)|a`-~+?Jd5g#P3cfvu zZ{2F><*S_h_0QgWZknd^-rs}}KJwmw;JyE)_x`8e`%gj$pNPnv_x@;%8A1rt#l=NI z{YzwBQ-JHQb^SKR4}3)qpk5+UScLZZ^XE-U=?uUn^Zebe>;Kg>&3}G8_J2K$;~(~Y z|M2Gig&ppXxPSf}H&35|ha05+h%;GmW&oQ(QbQ`3x#XK{$%2Hi$OK1<$Or2Xv59wx z2#gIHBA2qD*(Si+l4BbkGR2u%TF5BIm~~Q44aym!9Kx!>)MdCDIWG>OFwKw~pwuC$ z_Mstyv6QL87J6`Rl2(Fr>7_>SYX?_5j#K1bONSbj7!!8U)oBI9Vtb5;R4}7r z5$*v|3+8zpKgLjuh6w6~07M>eKLT&Q`4*P$E~hw~Dsa(zNGVrAgm+OKGs6h2ItvhG z6GmnvFf1$CXB7=W!orz2mIkCWW8oI>&j)-;=QwNqcH*}U4(;J3<1cxC^;mMwjcwaL z_1=H#z5hja06)u&zmJ&t{_O1R{%|(WX(?pcyGpPE%jT89F=M@uC zDQiR#nE~_wo&)&g`Sa&Li821o)z$I`UDy5f@p$~7FE1{C)L(b6bq^o=2d}?@`}+=4 z-=n*`!~3_laNP|kMR9;AT}Rv3Ao-D8^MsSmk?T%*w3*^1Qzg6nkKRtih729vQ|# zGFAh)nBa{=qTH;tejb;JPzfwE1okDzqt0MYRj#8UPO>T>F(;TD<%mE@JYV$9_x?i> zIff8k#27~+Ix_PjB7AvyS@M0tKIa!yIshlO^jn?&z}FxG_^g#bpabCU@9)pO_vbe^ zH?I%F@Z)hD|Hr-`{-^t{|KTzn&yU^Uj$MztV~=CkV?5qs?(Q%g?-9pa1ZG@9a0VbW z3~zN{BmqdWpD#~hb>>?RL4_+BseC`QKCeQOhBn3sPT-8h(AU*Y8c=_qG*IBZHF97g}v?{I#R09p5TJE|M_` zUPox}Uc)*CF}1w2DgvINan!lc?q zV1T523{5dMaZeEi5}hQBQE)F7|88QO%M~u#bGU<`ZO_p(4cfNdh56<5KS=@Ddp|c# zbJH}<$IiKTj4?M&)BI=W+{fPgciOhS&rHCq%~Ah4nYkdhpiQ$;c{gn2I(qB3M<;!y59%+AJU z$AesjD9=}i?tnTGP6FewN?Vspv66;F9RrA3yG~C-~H%{}%%Kz4W)g>mPpEOUk%e{R%fXH_bfHP17_NUDthUS(Z1ZY5MUv zjz6BJ>BrMFy*W+eV!2=@LtPoAe zlX#&gjIe+y_X8NKSb-Qd3K0kii1#EIrMap`>UwIL($Z>RWRu{kd*%y~$cQ4-&Z~|- zD?b{Z42)=Ml4RdfykQRpVj}9Px|`8gJ^tANX^*_@oB)wzCZh5fOy(8<$`>f7abaKX za_{n5`SX^?opY-<3anD&aH>f_EO~k|U@2k&VOW6Io;*RCI*gTSQHgH!eHJz%pmt)w zQKPon!J+gS_PyY6ehz~ICWUwqt%gpD~G(Czj{?RpDM zm@(YnVH!FNeUE9pgNq9;Euj&?0}B`nXdxlNB&aBb)y-vCOLfM29VUt`q^_BDbs4V? z|II5>hV>NB4nQE=saTu`w7pem>ulUJ7)w~cfs7@uui0`X5~vw{yQ+i915&fxc+sMe zEX+Yg5`wmdpqi6kJ3;`vv;+Vg11Q*lH6Xp1>f|hAjEqGLUVr^{jK>!cv+q6FL`w?t zZ}NLI$_&kGy%%wtK_DWCu&`qf5y9X*{{CjdvytG=FL8bdIB(9^)BSKbyoB%<2T(mG zA%qx0xcA;aZ<^+v5W+94weN-y-X@}>_x>a2+_7!jZdsP$@#DuMHnczCWzY|JMeYCd z82UEMPSY&ymySux_dw+;AUXJ7Vr0cprp6B^{<2e3knx-Gl^Zc!07#@v7 z-*){#$D>9C<8i{VzsGU7$1rtB^F3&s(8h#I7tmrr;~l(JCLW=%520Z$HUq0e>@ED& zia`;pfb0i;l(jyVC8w>`rl7LfU9JoiegiKN&bpQOlCRCGe6vzpSveEs)|Zpf7*(|~ zS>&>W_{QwVjcwqdGBH&vkdZl>YwK@yfAr=Q=Ynkxqlo0vqS-`V#DGC?M&~1qNw5gv z$&<&3(=CMjF24u1{tf*+vO0hw5xxU9i=zWn^N#_fgnW_dhkpjF*>}V@hehxVR`H zpTMijeP8&=zdpz3eS)vcIzdIt_ZF&|hP%7FCdPQ~oNN2O|IV^3-x`MDPsVxq@i>lu zw2b3-reS>4jeRo=z3KZN$8NybjX3rlx~@k*4VcC|&^Vyw1r%qzey|7zXbr*gj7T=q zeDfP2H7uekC#|T&1vIS7ZY77-F2=1Q!2}>>zI!>LtpRe#OspwF&Dtxce0eVgd#JA4 z>X_=Ex4r>F8NH>>M-6{_3guXkDJ|Kx7|6b_q5zt8gpovhAXK#}!NDW4C_OsOm_dk4 zc1kv?rr3q1MrhKBTc&TJ{~C%-Ye&A{i_MnskR3c!2Rx%byLy@WWx6 zzBdiSlW`mm!!Wqx@rYp<&~@FKJ`CfCX&A9|cR0w5h8UMjIBOja9snzy)!E#K!Ukki zhYvs=BB45kLI=HUfE z+sHM&1~G^ISo8lv-v&fy`mOkYI;uJ5X-+BP!`a~9zjF_qUE{Ku;oEC9{=;Eq^L-ZD zUpWGC&T$Cg*fhHf9bvdc?jV{W6Z5{u4|g+-Z|IjI)BOaOYUEcU#g#9 zY3N^+1Nh2$0Ke~5U8uT#Izt`6aDDxH2jKmWKKkgLw;sLa`o6zhmgRC;mhVr~^oQd( z{>ic|-yg^E59WD(Z5W2juIpUi_ZY_!x5o*6-=XjBFpM3Z4g+G}0bP%l49*%LaKd%4 zFvKtjU_^+?oo%A>VIs=Qci8C3I_GXLpJl5O9DwzND@GWh2CBZrXoFEcEv<6^vNBRB zb3$w6#qSi5(m1Qra|=Mp36du?8EaN$CB3rS{6R4}1t{QP20LX1Ds$y z+7^dK;13UQXg5T^=JB60{Oa7_IhUHIIff9PJLjHx?>}_Ty=Sd`$9w-Qgm5b&cTLmu zWnYR&UE-@(3Hv`c$>%p&|KcNn-(*!4hC)v^&`!o+tvw9GaB+Ws|08Dp_Bf6|9>?(q z(=`2Hp6AC?cf9Jx(H;99_uUcGeMC3)xF0&)4;|vM$1>c)%sm_k2gA5<7T3-qaKvH~ zED?;74j?Ay$E@YCo!E%Tj%QGZzCe~7cNIuhwvpsi#E^2^GcO^XL zwr%g*wteQD`y_<$^AN(@*4ht32yYu>?un@P-gnm8p=p|Uc6L_EeXlCaU1!-CWu(f9X=(+EMr1D?=2!gUkS7=kULm4%}(X=mitR^e=}hp!Gn z7|s;1Fs_U{5d{-PL__v`k^|TrgrR(Lnw7j$JC?#0R0bbq{lnZ%C|iW0a700iI) z06ZZrl}lWlTIqc#i&=X$lJmHFa0M$pIBGPp4nUQdqn$k2I1_@FrL;R|;1qy&4udfM z_U-5R@W?p3IN&_AuxDpz+XK!*gV4U5@4qVa&kaA^G|iYxeV>L9-fP?TKRM^#^#ZB2 z8vpjfgpUw09);Nw2x~@A6!(jRhCKf(I*Yy~t zBj%yQ+#M0;5m!VwvxMtlaou<6BUAf&*Yp3Xp`+`$H@jJcsT2iNL^ zrkk4~?mHDr%DI7(8{)2pyq&<#Im~f_1;Ii`V~NXCfHP?6j8&$eX!MW_cBzBSqOXQ@ z5DN-%DDx(!xPV-X2agX(vwpUkyP%qWCE5^3RHwJ32v~xUhl>N8On8AS{9ph440pr` zXJ>e5FW}D|nh?-74cdJ2pBnzFfWQy}H%&8y5N>ia&pRQ6pX3Ig=hoV1MD*Nyf6Stv zM`lh}S66jc-|4?~?!Q~V590^EaR9&dIsp||VDahGr@m>LFilg_w(W!C@%Y+2&#%w( z{GDl<{&Je8?+?T9on=`b9*@WCzVA)fb?C-XD-3;)uJ18)H(2@+^YI9Yj21HjB|JRy zI9P^v0VENYBOHKaTX53Tj;w*@3@%zyegexX=m}so7>Hy>;Wl!+KB>18on84ql>L?VQl4wGaj~Kg=W=5Gz%UCK2S+ciSi?M}aY~fgAM9f$+ zS%(;d*}l&?f5P|q;dwnjKJVwg@9TZNulssGw~F5Fn$oIjDB6RII`Pr*>x-b7!^UI#vz!{#TuE+rDlarY=q$i|Dj*gr zhlCs?me77Z(*&ZLaSFb2X#DeQD$g|zZ(moQ$?FeG6p}dtfIakQg=svJ%T^rxe3v&E zLuXbrm+a1!FL86smN!%&YbKt0vfwcn@tCM6nqf~U0*Q?Jw?Y-cgaTm1+^`US1w>iE z!Wm=BnJFz(=_iK#;c3di)mqbKp!M?n5DFjey^5~fj7pBCq{~@|GN)#K8)!n~{YJ%= zsEj+HfYI5u?#O#0>3_LRRebMo8!>3jD4D&}Gi_o@ztajz9y)U9hT)#uSa78%bxb~P zZ?0$Bbk@YX!2;4*^l~a08W-|3RtCcx7aM9#-XC>1|K5q7J#Ja!1x}JTb+#9>+J#(a z;ep!wGQ`y2g?$L5Dq~#4<}+&o83FnkbwKJO;3BVFUEoYL&o&B)%hK5=Hv%WfFJVQf z)Z6!0s%cO2oF&=LBlnwM3~Ow6fO$7YB~ve|K8)Voe2<>k0uubA>a9UUV)+SuY>aXd zQjI7u0^FE=2pP026$4Amw~SPa;BeB(7V{Fo+To&#eCgNekxJZqafYJHx)#ifR} zzAG0mKiG%mr8uKrKK~!lYmRUua{_IeK(Q(LdNL5`i0pglqQvh~2oQIx-YkVB+xs20 z8+>uA>+ijDU(fewYtk9Jm!xh;51j;!g)9B-bTj{&&Z$#kdu9y;vs@9u>g06~k7@*5 z+;4i%mfQdt;z1A>42+ub&qoMc_VzZ7K^7aN=PJ6M@Z zzz&JJ1?D1iON=M7l_|VhMlW6$p(A3A0<#zrAjXX^m_e)i+sW}>2q1rZ(IT8vZ||&r zGC)EBHW`Yh))f1jv$%qRh_j1abu5yBvB+C8|KWJnfFJ7xRN!jkx6f!YEHIg3L`eL! z<(ZP z*<)?bm>R83E6`{%823;Im-vStE*2+?odw%P2ot0cFFNV`Wiedn@a*qpX(HL)b)AFK zow>BJ>#TN0!a8&e|3=JmYGVpN*C;&8{J}L_##`HAhvA*%!1Q#V(T$JSa32riM<0XRT+LYqycsVFw~Ul2v*6fM**)stB< z^{ji+SfT*aHV{>-a-`Qb>HU&1TVx)SBqfzuOn@|5PbgPe`;9%fgPQ*eKH!pEc{D>p z&$2X3x8<@IZqoZgd0Iuxhcg~H$X(I=Vc9OrEzR@>N}6`QnaA|vhX=j#_J^)-;7c(_ ztzC*wflv9?wb6N0qji9uM1(!r8d&|kJp;lWXkpHAW*Si^sjO=f)05;tJdk4RVDpLr zD`)-u{Q6xT!Y0U#VP!hnfD1Mli&d+v-bg+7HWAbWZxg;M-?;sy%XEoWu2_7rO3^bY z)EvPa2Y@filLJXl+w7zo^Vo<4dUo;8-90Luz3rA(52bp{p$!1jl@D~5LCtCw~b?QF*y;x zbN&SD?&<1466Jybz4#src_(8&r;)>g`dHn~n7?8NXrCNAID%P}GW2`y>r2V*wU`5~ z`0lNVQlp;j2WV9aEi?=CO!sm)NE!5v!?#zj-^FBeYdS&%ab9VHf8ZyO8O773{!kQh zi{EZc^8JOnNqpag7A8OqqGLAPtF&Ft8Slx=%P$G!?$#I4QY6?B!o0%kgWwcMXhDH1NkaT{O|ZV!2})-_ zgvUZ+H5~5@R{0^|;D2&=dd0JUV`Vn8csLnuBgYib#ee`G$>9J^w-7e}FIflGlLNWY z*<5mr86Kp~C9sLj% zy{0b@{lj_cfE@J86`7~+?s&~CxCLET!$j;~Q^<#%ejcPOpK;#9(;aaHD&aeadss`U zct9ZFg@RK&q>!ydj7yyFF6NXkPkmIQ_`g91EqP`XMa$b@lx;Ay7$LBo(lEv4lvEo5 zc>TXWt2yXF719w_z$B^8;-pg@_(r~NvE6Y7xwsP7-oj~ z0ZP?i#3V|Vx&}P*7vPTQgjoy_-2}&S#A&)IXFx`+W7ZO*3QJU+fm0Oo11;3YzzJHJ zry&q)1yCmAoUVyzZ1N+@(QHlEBT%sZ6MkUn>0H@dU|V{92X!_vW5S!4VLvBa5(-@MqZ4W

y43Lj%{Fng_ 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

LH6B_omS2@+UVoi@Ks9nK0}hx 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/closing_the_2_arrow_layer.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/closing_the_2_arrow_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..719a471d79ac465fde002c475a0471c3850f25e6 GIT binary patch literal 4362 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/closing_the_arrow_layer.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/closing_the_arrow_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..67e7badb757b1194ca6f707c31cf4d7e76781683 GIT binary patch literal 4814 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 TE!s)G;z&8@d7#>faq)iuqhQfd literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/ic_cannule.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/ic_cannule.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c0b2dd1d81784f0b3f7d256afbc35179103925 GIT binary patch literal 604 zcmV-i0;BzjP)V>U4h#&rc_l?b?oJ93kx>c^NFXt}xPSpSU}RwUb`3-_FkIFREMeux zqZS+BECN~xq(1<$NIIC!$O2*~LD&)?c6mub36QM=VkZ|Af!IJ7Gw>9J1UUoQK0vlY zIubhxiJg*KoD5{=0NL>fzva(oV6gbYz`#5aA(k|afnj?)1B1jJgqX@g1_u6C28L~y z5n`YH!Tx0wJ5-WdQ34Y2(|2SjNGwVOOEZH4G%byR;nQ*k2Hr>p2H^_~3|!F=cYpzF zF)*M>3@1VW0CLzigrgrvvj6}932;bRa{vGi!~g&e!~vBn4jTXf0U=35K~z|U#g@?x zgCGz$Q_rBFdRdI>Q^a__+*2yLPVEHG$7 zI$(0oFh=0znuflG@?7}hdWm*{{c5C|oVH%3Lm2ZR#6_ik}xC$C>E zQWDYxE-^Z}D$pV5#{>?;Qt+^zDT&nAQ3c*qB9*+Egn#HXl`z1yqQq1Rmn4$-h(yr} z#Ae`2Sjr@dm;aVXJi6q+;Bo*7uq%NZZ*WQ?2X0Dc>%+t4DwQ}4k8PM-iQRC3dnBPq z + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/ic_reservoir.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/ic_reservoir.png new file mode 100644 index 0000000000000000000000000000000000000000..2dcdc3b449c547cec45926f7322b8fa512a2128e GIT binary patch literal 432 zcmV;h0Z;ykP)V>U4h#&rc_l?b?oJ93kx>c^NFXt}xPSpSU}RwUb`3-_FkIFREMeux zqZS+BECN~xq(1<$NIIC!$O2*~LD&)?c6mub36QM=VkZ|Af!IJ7Gw>9J1UUoQK0vlY zIubhxiJg*KoD5{=0NL>fzva(oV6gbYz`#5aA(k|afnj?)1B1jJgqX@g1_u6C28L~y z5n`YH!Tx0wJ5-WdQ34Y2(|2SjNGwVOOEZH4G%byR;nQ*k2Hr>p2H^_~3|!F=cYpzF zF)*M>3@1VW0CLzigrgrvvj6}932;bRa{vGi!~g&e!~vBn4jTXf0Ch=3K~zYI?bWdj zfFKk_(Th&tHjd#4Y=myW2yWmiZi0 + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_2_bg.xml b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_2_bg.xml new file mode 100644 index 000000000..72751ed0d --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_2_bg.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_3_bg.xml b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_3_bg.xml new file mode 100644 index 000000000..92f4fafb6 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/massage_type_3_bg.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/send.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/send.png new file mode 100644 index 0000000000000000000000000000000000000000..df490a2a761f8f55311f7ff0de703d58cc2a3e61 GIT binary patch literal 6630 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 LThkH~#((|`TDjF( literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/speed_arrow.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/speed_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..516f612de2f58cc7a0926284ab7cf41ae1218f25 GIT binary patch literal 38888 zcmd2?Wmg+*v;~U0LvbkXP>Q=d6nCe%yB8}~+=_c~*93Ph?(P;Gg3HZ&*Si1VW@XkS z`7(LVoM)fC_c;@#sw{(sOoR*t1%)OjE2#zr1r3HAF^KSxUp7rp@*yWAXIWi0$Qk;7 z4;7k$MaTzgUkx3130F%~cPCdUD8vjm#ZeV`O=m?WITkf%B?Sc~Rt9(|F<LwDpHvj8J+Ptw%z7wLhhWWPtVD9_ zqcA4?;O))XmraQG=o&bNma7tar2m*Ci6+VE9n@8#@obHfp1yrI+|XQDFg@H%y{I{T z4Q%xK+YYP%TD7R;+y-c(5&l1T75^06BxPr3KgPftry|`dy?lB;7^ry!KdTPf3JA3u zRWA=BalTETD+oXZr99KGXpaA75mY6lO&)B}WK3aMrdcB=qkL!~F2fQ>L5b)@j|6oe z%sNeVosxSd8 zwcCkR-6F%;(ZLDj_%8pz8<{NmvLWp?Lwd?(FbRJ5m!DlJ{eY$F<`| zg!WJGbED^vL681Md{6*$mIOBrbME1fTglC^Lrzl6UUm*k|LHS77Z)?wYQ<%AMakJLS)c`&&7!f;?6jxDg55c28wHbZiwsfZ)hHd6A=7KEki z9e&&a7{T;D5Bgt=DXPZ$_u~@xy{kGdKi=dd;#2JIt8*1T#?O5tGNm4Z(aa?#6_&Ql z5Vv}^Il?GCK7|&Afwnws%Y}89b*k|u^YH;;k9RizRyN}XW!jr3L)7b$C`&lSeA<4h zbwo<7rKZPQBTFgG%t=xE+2Fh4_w%_I zs;BgdRQlCuDPrk*yG6(y-_SkH;ErE7y9T55sHp32*p3IDm$#A)ko)_3tLM=)X=+74 zqs+A-dEiTGR@b85{oprt_UXO^U~n(;4wyV(ws`4&vXrcI%nc46{a!r~F}4C_ zG-pI|>YiajrO3R0O4u?kL`KYz+;J^p&V7d&U_B{tJi%wpBlHNxxF=O5QgWeUUm>ja zne}!2YW1eow&*_n;%Pjq-6^Qu6V=SbWSS1OoR|!iIx(xl~iYZQULle|5f)m4@L<5E8rAAR~huvxE zK}8)9-2P?vA-rF*1wAfVHb-7F;u9269GMQ~SX5qvc$du11O0kj#AZk6Vs_}EB1UH# zLLO8&xA6a9Lyd=hB$UV`&-Y2=Bt0-_ zI5pzJ;eB$pXd~t|PDG6vyOLXLU^)|<(Oe4GmisIkty0v&6>V9a+To;=>Ys$2p_y-& z%5q}#^=+-9yJ47ek5m*kedTJZXEQE|;7K@V#PEEE zfj3F-T1x9_*$q2+IYv^fg3tun>X<@9)e}iVQrKNVjrXMK2dTdJk=$o7-Sj@2w*PK3 z*+~J%hLqjt;4~0fxx;#$+(`d@44AW^f+v5^;&^2i29YF8BT`HO7}zDER6IW2_6=^oT)+> zsbWA%!Y7W?TND%`0!NJ;4x2YFyYl;uk_=Ko>?@)a9cy5g8B# z9iPn6+y#iB)>3z03~asry%X`bMeCzQXMoPP20X&ly184L+ZNo5gZOJ6Eq9t8$Lx~V z+~VzkZS98GX!xyq@KcV`K|^emgXTPshAK&mX)3c$n&>X|Y^NYASrYIu1LsEq6algu zw(d2ROXaB`waGVw+^g<1Yft#(mE!Y6*LYlCW(M@a)3{a|M(@$Vh^pDAYg5vcu}~t_^QseLrG?Uw@QGMc8~`u zYAzuJ&9A~FkSG=sZ}#2Zhwqp0nQu-P6EA+*E(|^16aC^&`(A~&OyV3fAeUWteio|O zFhI4gn;sv-;9->Bm5Ui{NPbvAX%u()Wmn8qFZ-_<-(oeQhfm&BE(Uy=@`A#BhiXv% zg&3co%2*wG)_Ood61bkEdEiE0+&yYDO&87csy8S;kqQI9A^IQNBP}yJr|jI zg!p2T5SzU@z6eshcD3KB8m|It8oGO(cYf$$VQ9U>w``wty;{|l&2NHQkJbfR-tLg- zjp-5*l88Wp=WI}fobWZT<**57lIXo#Y7O|;B)RYL5cyZDhAJUr9p5gZy<2b!i(?|w z+@v@jdYA?I;9`{Mvi#>VkLw&5@M)xBFl&plJKVtcpDi$=c-Qj;V*|H)F!-_X_-a~y zSJLuv>KcM{&Nfh(tLNFvsony3e@AIZ`dfYCrW#H#JlO-haB|`7g}qW7`OWuRn&}pW z)#&x|R@ArFeg^ltph9-aFioz{+hX%zG&rlI5Pa$yWly%I+IxJ69BnS8LxVlkW-3+8 ziqljzB(W<46UCGU?8q5$aj`MU*SX{3PYa4mI@*nL+(CBfqtr87!s>uhPQunzP&44o zO~>NX;|WkYixzz>U|~at!No%lu96BldSQUNn(z@NgL<@g^!MuR?R#UH5Lyj3Y^=X+ zkn;lR78#ett#m*1?PQV3brHeC53@oLn}mmVXFu@dfZ7RF5{bzV`PWo@|UCL-W0dogD`bL-M z5$5L&Jt>zasCH{9mrIIJ!{$XA{hX0gefb|>_$|?+>S$0lsBWxwLU|EK)+1zhVq~-X z(*BNpd*Mx#fn~*yp3+pIau-MZqGs8x92?^h!zfTC;{8Oa8?($Ig@c zFbaBh#y4aZp6@H_wl;D1L!&cb=k7f3s8>m4T+F*DzYL(?srXDt^7X%*oG^QnwAmYE zTYd~;q`65F57x0$A(IY};FI-@!QQM&h?Ij#jEOebWc`sJQCv+u1BW-%a&lB7qt#(M z+NeZrpRSE}p*`PjF$%&3JW@_B)H`GoN_mithhWV6KW0?=Qkn}1D*x#kY8g!RZWH*I zOOV>;%#4R9!bq?{lhj?jFLdvmIf$Uo>*|FwPrK}XZ~f3zxwx)dqubqC+V$|l&dw|S zzu}bVv~UU>Q{Z`f8*#p_Se1oN7O*Q*PVEOT0Q%7P_9Ha_yjuoV)s10*HeZ>m2q=>x z*tAsAtWs7~SSl(EepUwmUTDO3SIP07F^9^8)_M$FuIN2C6+;UjxhNUWE}eMpP(v2@ z&XStOnIa(7%>iQLRzN`;YYUnGeSqi2V6nivJ76T2;Dwgam*)NAlhKq6$b_Kr;affL zT>q~|=@Y&w-PSyveLOZpzgrf_zaBFAF9~{2j^Z3PToy;R;*{`fiFDPe%msd_=F> zZ1f-sP+Kcd?63#2c4*5QR?cFz9(>8lu^!2k^>EomebWC7b!8sPifm~qp1ujcfL*BO zqAFY8YI&$VYRE{~LcB)fh%=JJy68O98Axop$Zp7&A9 z=@r(}BBZ7;lGZrcsc`J`3{<4v8g$?^TXPR%CHTpugBUa9;8tD{=_Db3a4^t4gD?Y( zuL=V5js|KwxSMtpDm+M}ve8bA!m{y07rG+g;kP2m<+1$u1apGbFqstd^rE-?(MV(O zKZ~dwI5xk&{P%__FyQ7eNEy%r4_^rbsiImmV`0nfd4T(|=B!F5CRKxuoq1nVcYVA; z)9?v6Gp#6|8Qa#jhKS;IvHh@CUb)IBSH@8Ugi4RdEIe!s1dLZgC=F-AFp(Kb%xn*r zFY~TdR2$fJ9Fpq{N3-9rJ4G)AjnFf)2OXWU@y^{D?yGq}6#~;*)qPa+F#{j#{)l>j zcCVA**vi};Pbw|TG4AjUCpOjw?gCg8a|FZagzPr#11cV8jftPe(i_>zf_wKqK@hhR z{hP^>=8{uqy|7-Jv#TH4-dZI+DuIbj3VdPlFu&fEZTeP%o<+etOxyd7$OIVG2MGre$VGSLQTcyX70y^ILvHcI+^@scXo|h|4 zc{<*s3QL>*cCU<|2?e_#fKg|w3N6hV@IDl8&s%WcHv_i(oyQwCD@#eS2y5wBf9B~z zEX(DfRJ%Cn0AmvYt8A%29tnUFP0GZ0*P97qNxkw>6vPHo`%lS6uPx$ssqCoN{dS0# zR^dR=C}m4fX`{*(&;CvqCR2xeA;~My1H(Ly{En@|Ey|1%Hoe{G{Kkc8zNayVV2El+ zr61fe=#Zp2we(XvlDA4ktYp|6)c48UKVwAGwKQerrW1|;<)PVm3*)FBRG!RxUh&Nf zBNjghJg9EW0h%DLB7)Fr?{$~mnu2nNQjCwu`Cnt8rHiuI*#8z}otRibczbvmY&{7O zUo8}Go!8uj(PU0b#pT-vy1Tf$^gtnk8H*=ZkyF~(Rksn7yE`aQ)=I7n$#Z3P{C*xi zUv>U$^8ghosQFk@g04*^{MjF|A`N6NlBCG*B&fX73wbV04r^%9*XMdpmTCrT6zIBjiCc_;R{MVuv|h&{ zS{?_I`(!*RNae=Q;~--`ek1?6{l8I}tyy)Rak5>jnSOBIZP5-w$Skr7`T@Q;EEJ6gc zn-1?BMChszxHZ~36j;y1d{yeYkfTZc5W50D!r!t(8K=amkp^zr@{7nT!)BM!(ea4_ zK~rn!*r)t+LL|?lRI3gcrG|}*Tj2eu_)m|Wka~Fw=puw@St!Uph)1#Qky?6Ryq`iv zTU%Sq;|nS9uw32|bfYSF7yVQ7SLYIVQ@Bx$?X9L}sAn&v1&?JD6AF#KRhl2X>gg-I zPG&i_W{K~67G)VAPGy>CjWc!=h`vbJX8^TXU{IPV0^(Xp@62W{v*>OR-&MrY~OSQ#-kAVzc*5n z)g{qV&|YD>eXefM?DR(yv+G{&vyoR%rK1TuI|Mrg|MG%fucNM;2Ok_n%=ZtH>E_uR zI`I<$Qm{Ap_U?tt=aKifkF^yE{cq6=HH@y9i~>-r55c4?^vW|K4*`FHLcUaRW8+oxZw%D_UKo&m}sIaXZOB`HeSkD#da{B^RKCl?O2#}KH=WY>*L_xcf3kQleX_$#r`>5orQg}A{TD~oA7TN8ce}>K?I#zO2H!q~ zcKugfImBWU>SKa@-kjz^;agj-hgZKwlTYbU*Tf35*wK{qWTh$0(c~)KCTOG_%GdVK zE1JnVwQ&JS3>bC9{9jz6jfO+lik$t(VuIOZLXO1tjjZ%eNxt)SRaL2`S9B}{!~Sz* zir2>!5GKS~fkW{eMMe~+cnX1w89?G|8hCnQNCV1V0sjCbSAo63wykst0%%DD{nP@E zC+*DYf%i4EKgiFw&x}{LYxxT9>A<72Sr79M&k)X!`d^VPD}+tJu6sGDUB9{Bsh=&+ znj)35tbnbwmMflE$dqj2z$3#1SPy>Mc`vK#2+5|Y*_SSSIuX4w@bCchoT|5>H_qiK z7Y{ut1?h5tgcG%lH(PGnU@5i9OWcx4pu|QA#_{Fxh{HJ>K>&d-N~Snb>+xFk>QRK# zgHv!QMjPae{zP;S`PsZCSK$G;XPry8Gs3g|5?eVEmK9-cxvd4?nwy_1ySY8*HhXJQ zg2e(MsKaYp2DLCZN&eEQ&X(mpyqe=-cNfNptSKPofYQ=VL*0XAtrcf3Fkf!3Mp{Uu zy_(SS<*`bAUl{G&y=Fv68{a@Cc3Q$GyZSYLC_ng1{U%94aPhKVu0vQIgGcz!?HEgx z!6dvu756d0<5(@1$q zquKMAd^|J5#O2o6h*TnW)H7C9ZrMhAltFBtP_X^JR?4OZs zC6D~DsjO{KNl9J|s}MkW*Zp+f5&;Qt7vNwbaSQ6o$9$BS1Pu~ho$vFAE8e4QPTuMP z1A*sq=}LMMS(SCs)Ko4t15$7-39Z)gGR3U)u9A`@diz@0^Ud<4s<=WgpqHO(=C&P6 z_uK9PEwqoEJ#xkmBFyn%(kyXW5|lfcrX3EXw-W+2a_r|ewNJryq*o7TFDz*eDRz(q zLGerkh;V>w7#)@8qv2F2^+8ef?!9PNcubqxBc$7n6n}glfRMdtvvVb+R24Lf=qUm* zko35H3Mf58Q-4u3jgtFcpH{w=56X$YavrrUK*SK&VFr`GfxM}8q?C;ye z2^=1_|D@>fwJr&z(*Qm6e~$>!0lR6j)Z2u511HUgKaEp#<{LKWtbYnGLSvLfcW)03 zyeDm$&gP-~Y1pL7tWUpWk2|i|+qjonVrqVUFB={cAGE-NQ>p$^VM(3@v>io3-g=-1 zHlm|%03tny`wzOC(Ijw62s$iom_FKmGdY@2^g=SDfdln-cHrPXaZ4VzfB)i!xjDFc zAt9R&I-)Yx=5KXWy+>DzoX7aJ*Ed@7BtDA4J!sEl4}M{w1I7mTmm6m=Cks`w zQ2OpaIongejiXfY_h8Apux3G*%YAt8($57-c$ORRHq(te#;W)W>?6Oe3 ze9Sm=+Z)UpNX8xtdOqeBa?c_&7*2Pb=l3HRG3}(IaN_(EC)>C?@3SgGG_rQMH^Va{ zl_=2vuEVWT)flqRpB7dyG@ER8zA9zq?}14{H*$h~RF;3du-tz1$m@DUg}$}bw=%W$ zleB$!^Sv)IYxDY#p?K&XI)rXKi)Ub}6}#W;Z|pet@&+RgUbdYH-axH>+MIrhQTeqC%qh$xj;SySKg zyQI*b*pB+ov;?>;J{4Ix^4GtUml_H4eQRliue2Dw=c8<}bVOP?tMH|B<@RGXA{*#q zA;yY|3565JgzDRG_3W2wJ@56p<#=kqyZ<>tJRHdU%zhkb1V2(kSE#fYa@xvqaTg{SraNH{YtR{M zzr$AiM)Io56x)nfe{Gi=%`^f46-Smu0l#0xpi4nTd`J1s$N5Xw{Wgk}oc4Mv_lxOr z;+|(Y)~zu}+dh$vTZ+#026|6T#jRE5(2}E(3<0wCbn(FSv61kvIQN`28JBY=4lwt3 zg5y+mD7{WZGx^DUVrM4bjK7flnH{m*C7`L0u-2*g%1bA#3P(JU1S9595mqom75IE0 zVcq=7MAxdt6L1~y@NPG>z{w6}k^&S%7Xd5J!bHMm$9wHC+zDS+|_L~Od zx!nUM6d7T)@-O?ml3ZC3O)=6KFjmT9aZT3nMRys6q8m}>w%eZZ%@6xLDWZFa9ej+8 zBD-(RL;22Mx_KgIH9ogL*sqIp{B?iIecpUY^V39)bE*pYxPh<4OBeRrIJ~}|E#)~Y zGX!2tV5JO2C;HODQmgI>{w38tE95^qC^`=tX%R#kmyxX1yU2dbaWrY<5o!w^n)o{6 z$j5ONnEEgi#@ZjmHz`@ANIq)&MxjDnK1?;mF-Gy5^I@1(uWTNrY%$c{hqC5EeK1T8q{|%oD?)qQ9iBeH;yDS>OeNrwG{8VPl#URBXV%xn zC_|o?{C;;aAg@IpyI{x~grBW)f^Q3!3&W6L*a zG+pVV;;v_KaIF$#NSsum_OetKWCKYJKgPvBwP*5rJE2$!`jILN2A$#gN#6(BCoq{h zze1Rf7^*&x_7q_Mi8!$7Vu14ZWkqkza!3+B_FCT`uk3_DX0ME%g%gJ{DlSRhT+GLm z!nM0;UH2J~W%WD0DQ1Wsx{Jl?w&;)S2Wzox&z74oh9)d7apu{Fd?o=AvB9x00W~*t z<`CBfX^&;;ay>+Nf7@SvO?9XxyH>p+7$e3sE*wvj4-A-P?zwft=Yd;A`DBB${iN$3 zZ+zJ|ci(v5PV6>i5I5T(o>+bS6JeDtF4-kIVHKGM)XV4YdN8<|@->6vYK{$^LsXNbMAj@Hqd;_)Z zCsFU3fL0Nc-+~(Xx(-obCWiwzj%ALhuw1jHQn2CH5B~In7hxpCsM9C_gRomfc1`?E zLi{SbzVYS*!}vMH?*tYY)jqlGx4!|?)18IFPfDhqfH2FRt&Z-sK%baq-Ol00XDq!7n1&p_+{@C*!S~x}*$e zn-B{fv^RkkXAYsCJr|XW^W2WL@Bbb(o}{uSA!?)nS6K?jeBbtmKz$J`cVxXgOz)4S zwTqol{je%ec?KX0Mzz%6xEq~wCOiZ(jn1R!)CV!L(7UfHfCK6empcKI5&a-v1m`z=!#8x0b?vGLJD=+^($HA9B`- z%7fzSj22p9rkp8`c%fh=9V}%dj9dm^Nc$H8*K2p%;W5L^UmY`(ylL>}%7WxH=}3}W zf@mo2?by{60#7q*V*Ouk1L$m)O7q-w893vgle<4`&R607u2%LlD;Vj8NmE%{MrUEj z{ZsgS6D^;_wYzsX?li`WI>7z_f{;UU2fJ!XF6WgR&WZuq>ye zKNTavxn6Ga^w|i5Dv6F=wT3<*Qcy|K0OT*5djbhMt>%{R25M@=2^b$KlrKH~C(iA* zrvq37&(Q?*niF?5*)rQsx*MiAJFwqgp9j0)D{+6#=jD4}XL;r<^DaM~Jv%htavN~P ziC=|% zGtalK8i_d2U}@U_EWk88>(HViN$CH_yQ*_y5ZSTS{hZYlgJ0o6ys!gvR#;NMjb~?= znO;NhYza+dV?x2Kz;xl(E{uO+x6|#!_uFo(X?)Fn_38-{Y$t7CbrSE)Sxk=Yka4Ic zqQt3+C@QpFP2j)#HxQ3@j2%Q>7nlv=`Lu;qn&jO&NYXk80mc_Qtk=|yqjE}1L`o?- zkPtrh<7ns-R^^j?|6+%CVfcVXmXH9k1J5^U`sINo3(YX0U*T8kbr`5~1R#lwM=W6u zm%_-Mbl4nY!CZ}TNvC^1cIx)Z%UDIMvXZ<>gwb+6eU8F=DV0?Ru1X|;v@qTbyg3TH zC7-grEBcHpp6u)7O=aJZehGcJ9WfmH80Q!muXNnoOCM*K0h(D?F2dN@`{nqQUw7}g zq|Z9ytP_chO4n{@^jv3*T>FXFDO~pI?8%r&d{O+T2kM8_GHB7c(&Pe@Za1xj;=$ik z*WjO>f)a{lJp6L`k!esMLAC7>CDh34n zpqIbyWl+O!9P(Ts%WG8enQ;=b?Jgo^7~Z!$DPHqM);i@c^H2+Bo$ZPr03`+oGJ~7m zbe;W#iQI&kC-1iJ{bkh!kgl&T@dk0P($Q-y5im67R|heU$@;)vD?g&g=s+6j@NCPKrOtN z)2DcQie5oqFw)N@|Hp~BRfP5}qwXSZz+n{@ZkVO9`dLbx;~IGkH6 zd)skeD);iMqPwEa7q%U{##fHVpHUXa>ZB*P&jIm$C*JuK^tf_OdS;kxW}35`A{ zspR6!rAqIL0Y5`J=}rhEtNNWV{g` zc^0ClLH~iMP$z-O3Qg1ScJX{A=s2jJ5FIWay#4->*+24YtZ~u4Jm9J3^53@ty8FN& z%wOBul&Iz8rSv#z{BOJ0#<(mEF8u&=di2q>b{hIio!wX(O!vBfEuRb43T;~>?{+!v zmFEU$e}5|78yxxiT?}O)O@kHflT!a|LXGTA#@k4F_S}4tZy{bybokPA|I zxe!A&r5iB+)bp3jGfY4b`dcI_-YlTi?W*PaaJf|%ee0oYi z8lA%FlY_X?ReXE&k43wnGK|&8ZFE(oobKH3;)N%*zx+xFxpcUyQf&b~Xw1~2zcC0g z7M@60MP0(;aoIlxPV!bvqaofYZp4rLNfs#fQ^p%dbFgE8- zMdQkGp!A`tKCu%wSLBTShzv;WQ?wD7RBetjWJt=IxtTl+Bdf5{S9Xp0J2A3vkA!Tb zoQ=}50u`B!dGvxC>w^%>C)3VvfIV**I^>7|4@aGZ>U47*r@Ax5PrnlrmRll@<^IJ; zngmO>S>b%(fsVpdG-1A$t8X$#Q5Ji3l&?%}JjSC^oebeg390%1JNK!gURD>VsCnDW z6o@iq8E>5`Zsb2hdtwujXoirtcQGTH0WtmVU40>gdBdAt0e3**>^O`i@b_$HQ!@p; zt*4g=+FJkXv?&#bn%^+=pXi|piO9*jy9`*n@q6A())Tmz|C!+R(}VX=yPvGA`~&ZE z59d_c{E-i4%u-O(c`*#-T)(J}7|A7|ICzES2@zON@>#P1Z;}^aK|&`#@+{|mCR3s3e0-ZIrpNbMeaAg_t0I1o;VnZ?sq9R3(#+-lZ=HP!&n_X@CY|>ZR{qWx7l-4XMgaKK(L&B318OfrW<$;6hD_~h&zemk z0-enBg1IY9{R_={87Wm{%D;b{)iQ}o`4LB`y|Mj@s_D?iGtpD)SiX`~GZg)ZQCM?7 zNZ~hI;(V0R&PBej)j7J+a3Wz$Jbh*$$IKCydvtW8H2;}lvM6iWy!PB7T_dsM$#6y` zRxondsE&MfLbY3@-T$AVONu;fD!+aL&-UJR)PL^UXJy%Ga=_Pa+i&OF_R@ZP0PZi% zxgPEQSO>?G`Od#>BZxfeL7_?RpEF%DpqAJA6283g_7ZT3})~)gh?Gq4~BfCyFB=4~X zKA&B_R|M&oYsZGy(ue7|{SBd=;qY~h!Z2|Me>d&!iaQqg2h{SZiK+SRIGyI(;fuCR z_NHIbdDU9JLS~nD{7`B-y(QgxZt4PzP@W5&`gEM~(-#+4j4E4Ur(MzIR=aku*XC>Z zrk&4m^GfB~{j}Z7am%A08~ym1_fpBRx0J!hnHSf`)0{Ei-u9i?QMHo~2n{MTa(Edn zj^hv8Id2cS|9!`i$kjPu%8Ad7@C)6%2_E6o>Mjt(0Vc%)wh3hd@q^5=9{s^a!xH9` z!E@LBPxZPL0AnUzr12=5Bg2JiCyV*4%IMe0;IXy0h4gi8MzZu$5&j2?`a`^~i;RMF z=z;zGHz@cIrJLYihSY>aEQK1)Q1aWp_C(plt0!dZqEQe0fs%`cEhA{!$I1~a&qgMI z+vWqYpNAcx)eA9i4;^p)7XJR(>(65(Epb!rJS}3o1!w@hU{d9P2wZ(H) z1=^f?;Jo@-Np4-U)e}09-R*H76#0v?{8SeDAQNrtcBe^K%dhqy_BLVSOXAH1yXHkx zz@4v=b$f*RY8c$``SFJbpXOzRqMOp{@I>WOO9|rZ`ocsou?t z9W`0hC6PqhOF05?1$}|0&J-KV3vLPKTQ2A$Mb2|IScXHFwAEX-AG6)WXll=UFFTmA zEVL3Ch4&=nlT8t>)j!n+Lypw&=`OvG;kn!Au4indTYMq*={e`Fm)}I@(cC&c96ma* z?Ky;CFX-(=|9kBMG*m=9$`_Zy(Z03Bv$r^&>&7IFa>m27B_2zwu@(;`R2u5YxTo&&DQ_+0n+|7)OD~ z60Z(+u{gTHCo-wp^P)q?Ub^?Q57VVdL;IiTCZ;aXOM-iuPMbj=Z^l@@%v~Da(2u(W zLp6~ggp6YI1x%M5`p_cmy*A;EP!X(4d#vYSy^qIH9 z`aYAi1^ky>hVE-*z*x}|o($4U_Y6HR(zNr<9H#ARr$>rhpMMb5z#1Ol?8j>KcB;K~ zySEnfIyKF7RZNioLWZVA3ZZ79ym!t=)fgYv@67_NL^2)~^pFJoS=g`_uN6DrYSGFR zom;!N3G%k4rN0y8k$1?*=2@d2f}3B)}pM`uk_Sk%1_eC|Et z>B*~2PbKcTA0*ph#E9TT6!OXz`qGhfNEY?deDt-4;+y+d?2&bhza*0JnrI{I=5zDB z1?`>I(U~CCosWX}`=l77HL22*g0-7zyZSc%)(w3WvKql7A8(NHhf|edtMX|C9RY(JC}sHD%FBXSMok0ZjZR zv@T0APSDIL(#;ZDo&nsS4wS4bMl1ZL_uD!$UPNymDmF@a70o`Mf4hDXCSrad(m99D zc!8Aj-gURMgUO?8zvGq_zl&veB36j+mGg_3X4GTlu9?v=6yxn=xc=o8B|nSoIx#-5 z_$gDn`_MdP_RZvWh9I;Xt?tC$0g6R(!`Zm;r&S&9=0TXR%4SP; zJ;9=^`|dg#l{pOVM0)341XYMf4Vv4M9+T$#{&7C7gH;||2#1(@tiosdkzKyrQrLK!S`Vu!2SQcgVJvQa-uB-IEDrzr9h&jg*wrYKn z_C>_Oe%)h%NQZ`r%3QyG;akl3i0(Ns;0A_EdCE#f4|K0`48S!?OL}m_cI$gLuyv{< z?j~Wln0r=PEdkkeA2E0pi=^g!i&RBQi3hqeojM0m(IxzxwprY!vR42on;M7xn4M&r z%9pZLIhC9bRP02sKu0!}YBRCbO+Xx8w1c2ko3vkDf@0lI#nwR<&oqi7_gB@0hgHSu zynven?+-fRu-Qz9|RzA*NZVnHYv$;gs5PJqk+delCIn(zy!{qVIX1BM)|cJ6cu zBWhNB?T^!1`#j&JSvlVREk;(oU8ShO#v|$ldz6l?fNr3~gA$7m$GEH13d@&#OINY8 z^xk-7vvx0E!d~7;PhT9`kjmgO+ilSHA={c^$tZ$_aL&QU8K@ZUMs?ZTK_5s)@3mAw z|J?6=DXG}wMIk8MPy6;ymbt5MXehAYhX!tjYWGHh=i}Owx45`{s zA4gdPdH0<`%O5WSQ{)mp2C~1uguoEUW+ekGrA8g0V0Pozz=gICLeWF^5GK2{`TKVD zRByin5Ch(i3!Zu#sikpz#*#N|A@ zK!bjO{X&DUNOfOa9=v+L5J>Icz5AdXP#3IxwfV5pI1wO{i%2l^FI36`$kG-0n_yr( zv|EW_gEol#%t`h2a6FLM>8Zc9fL}vN7z^rO32p8Ngg>!={d()h-gmgqf(>}a*6gU? ziWehPGd_5{d;JFLdJaZ#)a|bRwS!|ThMj#St6|#Z!<7>&%V?x`|4sGoySRbmv61NU zMjFOeye0dC)EJ|hQxjj@ICEC$t6QRq0ZRkg=Ybr_fj8>-k{miZVjtuAW6>~SQF4zF zAEk74f;^%>iuA}Uv{=r$#r?%$y?_3(eJ6oKOS3>b%8pP`H&>rGNS%J-Kkp?vr_A6n zfY@LB3XayjUYTSqj?3Z1A18CX;Cc0az9YF~u&?*UZJyubu*my0MlUX(F+)vJ$C0gJ zt7|r)HcxTj@1BHb#^H^vtdF#>OKVLhH*zhoRXu|_W9vUo9tAx>!U`-FIL4=$r#6chuCm{}$Zt^{;d@*``WL7n zf*$mX{*oopa5X8HmGN?0mb*?#*s6~O{6{Ni`M5O-{Uv%EJwLo)Jth%1tYSvEG8Q(C zTxaZjtXbgJLIMUVw>O;LzIL2hvLzp8)Ac_1cO3k4viW#fdViCNO!GSzS2-?(W2?9; zE_Z;hB!O@&j?LGpcH`TaEcDBD*GYQ$BB{SsQQ2p-dZ+8Q80o)gX7nzY1$0N_Fof0R zXY`zB9KCODr|WNcUM=9N>FzAp*)(IDL5_zu4k)REPKS|)Rv2b)wS>@g=wXGPN%u5h z2|;Oo;Y$F0{bQi4`qGhbPU@BZ5|*#lT0m1#IB385!(Zjzb8DyP@;_u5e z*m|Js6dw{pe`)?TE4lH`3Jgyy7GEex3yA9nsdr8GNiGuu`nFe_!Qv0KA>IU~Ox^3l zc~3BJMfZmop8Z9F1Y<}{&aK}Gn;Pd6HCcEqZa>Rt->#qqnvhJ<*9fU zsyP(0h*hLBkD7tC7)Q}#h+)YJR3d6t}|3VzIa}4qOG-vF-X-eNz|@MOq~R) zMURe-5|(edjfEp19UyYSSLg!Wyj+H(aS3Y!Z90| zUppA(sY3(v0p&7z^sv811X-!DQ|ro9@th=Gu#yt2Pw2pu1dp ziM9ToLBoD?NIglA@qO<^SA7LF4hsS-;aB{RJ)gER1YY(_l?zoHv4rI{^~OneqFqcU z1gX9531-#mu62MAcRt&zc+hhBpJIIr^eD_^(Y93aMu*2s^4^8(hRyKpd6Wff3l68D zt4N7hl=v*AkLV@=S-NwePtu3hsyyPFRM#cPrB|1lJg;`nXef2m`fZZWYL6H*)1=5z z&?`m%#skH`bf;=gM3iH!Xa*a=nuU|oi3MoQ!oTx^G6{hFxZLA0yIuST1-0ZcbM84~ z%{6V?%>Gp<=2N`#-oAQ^xx2f@>DK$(iwk%`oBT%TgZh_`A{i)HG`x;agqv&0fH2yB_}UkSCT1bg1y5H z+QvlzG=hH+3z&wW8czBU;$Nj{_ac1UNj!qn-}#ZlVf?o+QhkbMdM3`8$$%deWIh)7 z1V;XxElyjkmfcfRQ+pvOtbcNHa{~z#Gu&bVYSd5sk+Uf8%>M(Z&zX%EN|RL* zw3FoK<2}eL7c-$+R5$QZNxPCIWVAzArewaDZWuUwY3uH06XC}nofX!}71O%MKrzW; zT1(f7R5bDh8Vs=k;(#GEkwEvr1EQ4Z@*BY=O|^H1mzR|#j9{?S6G-NJ`BxmSIO!kl z8obPFrW9gJW~Ae;A!-O;{71E;O@x7UZNDp-A6D;Y99*+D#N2wt+$JFp4T_mBin(nL zg4ulVHlOaj%?GB;D1C5t zC|M=zcAi2F=2H(~3Y~a#T$LF)cYFBnBw$Bv)3L%7L!Mt^9Gw%!9gi#u@e`0s&lPDY z8KO{JZgjZoDFZ(8PlX)xyP{`bu!tiWSfRG^q$?!pD?w&`Jq)khY6x1uygwH_qL{** znuhPGR=}9sX~4mzf%|{3Z{R%r$Bq441Kh{!X!o!bff1}3mUnK1V{1%F2@NwdtBJ2K zy4Tw)7Ky(FbeD?D;flWVg|3x}w*~K+{M5;gC7WM{+wEo+IjlmMKBf^>Jr5=p@DFb3 z>Vl|zPr@7x`(c8|P;H70PN?^Byrg~FI zj>30x+t4+h-JN)VDlN%L-m{3&T|OZ8iR&WLH(EP(W6ySL?kpVxgMl+hF8gj%Ty**ohxfV30mBD2#&!$+V27TR6YWp zzk;I;i8gdYH7V58vM+j>P5nt5T(y&T_wn|0%pkJ~Cobo|y;+Clv3#p)a8dY{S<1MH z%1R;HJ#hfunZ7~8w#qwif02A=Ow0SUe$0fr(kb*V0@gm8h*k9dl0{{N(oPju=ce4# zUrj$P{EDNZ3X@pzS#rnaLe7LQ7yMyQE3`wUw${vGc0kQ96gEN9EN%ywDbLcBT?ON3?9JCh9`av;hOym8 z#Wl1eG}YJ2(9_+k4;s&z$?sp@sEDe3|6BDRk^ceGKrO$}z2UB#51+T~f^igwY-J@l zCbPxQQrz59lsggBIwyL9iH zgaN>yNo;BAJ`M7I4YMT;()v{D@qQ{Csl6T<5<0`#P}O;wZV=~Uh5I3vQ{My2x&|5l82~X16(z>`ktz?Kvc}`*oh1*gMHV-IbYBOjta%15 zIse&cwY%u{Iw%w@Y*;^ni8W)WRcuVpEaBmYrqOD<*tBs1W8+mk{NN0HN^!+g&&0{Q zPC}(x3A=R9z4zes(@t;ndcFMs4hOFz!QUA~YMqn1xWJ5V979Z3SzN~o0d-Sw6If;&Ey7M@CYu?EubRg#qQX)v1O%qgf-0{T^g6qznZ338+x_45@DCsQHw;yWaAal4dn$}-KXzeA{c*(mzIXYVcYW>f(>I+ljM7*!ih~nwxoZ}V2?;(* zpp&in$Uf(fQf)1|aC&}be}Lp0xVk-hPgBdO_tX`%rb(I3v7E*Ts?(TiT=yX3RlRLd z&8b};{_W;}!*j2D9tiPKA1z~ew89wFXV$&%QCI~6+qThZcX01LM=-z8#*;5O38$X2 z3nL>VVZF^}6IVXvO7CaC_?f84XM^{1kmKlCNpYzP-4Ob*4MXaWBN~T0Uu+)eVAC_# zvpMOU973gz#D}$r>$r`>wmfb7d6W>3$L57UmSm_|hC zDyehJU7e3^7MFPfz>xamg!kWm#fyIMiAQ#9xnLZH3S(sHfh#0Rc;lHuT$#)B)!BaW z32dx5Ti3m{Q8S!UHVIz*L@I; zPSqy$6T!TFzCV-D1k%mhep1q$maK)}M4BC*CxoISeYI`1d|G{a=zg2p-)czgN$pDm zCS_WwZAXtXCKga1FW_VU_!d0xsc%NPG=|0b1QEp^an_i*rV z6Wg|r;_P!y#rk#Y!86@`&&NC7^$vXMQ=j5Q&R^VmSL5fR<*s`^I)$0Kc3i{CE@H6K z_`u!Q79RM)!iR>33K-f@2_LWma5WD0%>-m^3Cp}%lI>37`-4O|-=k|5T(f@Jc{1U-T8tkov?Y|yV~Zyt>v(a0W;RuB|npR1iH$ED-$e!uEp?d~h8u5@knEMjT#a;nQFGW3-wr5ZJH_ zHil{yOsyNn#P~2qMyn{;7J4lQTefY)nl)=eLI;2wKXD`e_<#TL99S~k5k!Q}Ut%1c zKdeQ4M!HFgdji3b`s0Ci`<)N}U~X*U)HLHqKeL^{R9l@vdA)hKwE|BN9F0>V^NFLy@AG~EFT+z|83G5<)T_CWF z779fRg_4D0*}~8o51;??dtsML7#gZ#XrzRRi8?lJnZ&85Y`{>hjGpgeY;*{vQYmcb z8{hZ_Uir#b&QnScfn~Rggw7SZ7)Mu=;u4pC{mkNZ$rr@nn1&(s#~7b&TsLw1zZ|?_ z{f;42CQ9J~F<};aNaO;!LsTd7Jatay(eu-TZ1*KMQ9VQyye!jS1H50FY7*V{ z(E8R^sBa?;X=I~2Hf?Z_q(;>~5B@#$fxKTCRsJd;mOB8^eP5z7O}iG^zuDy9d*X3o z{9Hafc0{Dkxm!fS|8pX-7YZaK^g`J}scOTj&*IBBe;7m6D(XW+7#*o#{l-yj-!aAR z0Y1>}_Tc+$AinReeR%e>pFQuo?g2#8*0=@Ft@j1U3SC@ah9}2qIy@ovelf{pAW_p$Joi$j+NTr9iUN8q8fV99&SVmZ6CM0@6$@@MHSB*FIy;97@?P| zHi}idd*1^;`N?;_cT=}kuVHAUj&*D5*tBI5K4t9N?sVXLKBlLqalwTb%q}i2K7?p4 zI!}-j$($#}@kgn0G8dELcpRO+|Mn~B`)|J@JdYQS?Ctkb8XN;Kr2ZI!68nt1zCQEZ zsV!ADg^eIu-%&;1)`ESaJ!aN4i zb(2!$9=-FM;4L*`$;aPF=tU*XtOusKjMk&{CXkpN@c^r$Q;bg=@H9|X@ zenw_OH~<$DR}m7sT_lXq%N9x%M(E`s8$bKcnNPPCocq51^?$nK7r*$vGd41e(Xl#4 z>Q#VJlnMk(^Igo$%;4&$Up=?5uy8kkLjVqfsq-U{6*{-wv!0C}5;{K_k=PB6KNwPf zjPR+M>#T?Goc~B?x@V7_SPK%`NT|%2eQrq>yZ9XSXf1bPU#Q#}xw}0d?M8C8dtRsn zp(7*dJ;92k-bD4%=v@Y}B@wmmrk$@7sr^blR5zU~))%3gr0wx``@sMQ(Tp?85%bm_ zrVI>qWs|}ke6X10K;#`vBn?i9_?t}&heZ7*e4l8++uvLKc;pBF zcKAJDG4NRmdf{_OxBuvN0FQzZI!}<} zgsvvViG;4M>Fz@zbPhx8$1e=2KSpS`oeTHfI(^~Pwi=4V12Mnn{2Ke})tF0sVwm#CCajfAJYQhR}@5+=sR@ROhXu)FuB z&wK^ILtun1CdY9ySLdSVTF*U6mFu>Da`u}3u9v~8gCX_D0zR(1?F)~dvGJ5TiZv@D z?V)ArJ@F2uPhxWm}r<{rTVi&QE^_Oi?c(dXgH?UOx=r;Nc^OZh6%!UvbAz zfA%x?10Q(zCjsn3q|W)AbTv6noQp0d#;GbjF;n)2v%ir@^e>+HO2!2;SnV(?${l5V za^V{Lz)u^0VfB16w7DWE^k`XF9;f5BdpP%%M8qvUhE=$k5Ky$69(rvzY*SR_Y4Pwp z+xuC@HOq!hIgX?qql;DNRjH|M)5zjYswbC)opOz+ycB6zKB`lU69{h;u7~#AmG)Cj zkwhYu*)CUtUB)0!veFas4dMqud+vGqqu)(~7Ee*)l7VxfqXG*{Op0A&D$@BiTYpL+hUJa4D(`@aav^uP$4mu)G3)ivE? z4{3S-?N_7{y20@cL+VEvwq>3Bqt72WedFoFDAa7pUgs)ZU3exUZt)>5VnSUsFmN3o z?IlN>1eDiu&%7yTon!_%rXEV=8*Lr}&m!~$;Tf+p5Yf6e@+!zIJ6H?ZlStX8IaIe_ z;{+r@RJ~~fxk17-u`&Wd>j+(SQ~0%H$IFAAf!v`4^c6}8&Oz!cW&dA631CrJEU$B+ zG1GhPhhBBZSHMV{AMGO|UQX7f;AI1_ecwMAl=Z-fniD%OFaFi77RTEOEq5J~6#Dyb zzrv9HaRfu^M-iWGTxUIW$Krl;((R_6Rr|Y59^5FZ)H?=`-c%srB zMCHd7SoADyg(QerKJy%MoJS@Z^J-`|ZS<>TmqRYGV`C(j21YpjSkyW{-S-v!TQUFgZbz{I8`lN z>Xk%Kd*b#wkr$fb<-*6Z5|$C)4pe&D4K^>yNXc}_#h;l7+on_^hdc^hTTcR1J2&m- zts@;NsY@uMCKyTtrKvwj`KO;BBM;4hCqIJ5(*_}F;StSuqi-U|{#20U?_uC`&jX_U z%EEr6K2^pL5KKniIPNcF(ngm*BsJ_3!}z|Em(Y_POY~x#(#Lae$et ze!RkDzaJ&|K1LtDWAPcI>&hsN6he~bVjP4jtHdc5ycLl+`y8$B4g&PrKDsT9?VfPc z%z~D@Rth3rZny4p}3# zw8TQS&&zQr5(k<&&ONJNN$q9rPa1@Ue}#c=21KG237OmIV&Yp1EQ`INdGRT0d@XnJ zF{)ywdl*Ys3H^q%zcG;N7D?W$3xDjwDD|U+xrbVRap3j^objvCa+T0bU9LYv@aq| zY9lSNuwT;Yw~Vx_5358SFz9UcK@#86$Xq>!@Gmlh`V!ASr?b(In$MFEn8&%uDyxvE zr|ecOc-5xoFAlD})d7M!RgM4UZN&P*30hR^{lwVKy70#?R$7x80Qmbu&nVva?b+Vp zJC?BNvI+LE2a5!Wa={awghw`7fi*9FW@W_p0138rTOJmtd+=O8lK_%$YSB%&A9bE9 z3658XYc>WR}z|vD*;{0<@sVgLY9ii(!Crx8hVF>;B zfU)0K7@uuiNAACE;Z2pQjna52wAD$-=!oL$7EvsD2zERX2%nQbLAULp+lgGhelng_ zh&Qd}s=6$71?8?OhYU2_RINcc~3 zTUqVoDHCs1Wm4TXU1NetG|+bz4RW*U5W$I1QR+S-!NgUzI^0bg9#iF|?u+5ie|!br za8CYAck!>m@dcyQR~T-OzIfk%OqV8i453iAB%_TWQs|OOCvhSdSCB)nooBrJZuI{; zy7|QK5qZ^`T#tT#dL?=#DkK^asc;P09nG!gazM0#W7nt;1)Ug+&Z!d9RI=KkyfOQJ zzVqacAvc#whiL|hxk5GKh6G1R`%!UOGTX~Qu0BI1a{gD7X|9Wbi>h0FxyoN%99_B? zVn5z+PPWPxU4^uBGGu>j!;tz4V|IW0J>7W+we{tI$fF0h#IoB{RC+Ayoe(%}9}a(3 zdW?|dn_r#;sQCWmfkD4FOYTs_D@|sKuy1`^r<%5t`b%?`>jTm?MRxa-vaZE`Ew>+e zJ}1_}+s_)*sGozA&k8rl6(|BW>)eGlbP1VRNV~Q=!$=2}_)=DC(~+_oE02+Pa2&VS zsZd|+FVA!r`y?v!JeK+mXMY2K{$siShS-l?82fz%@rl{%&i?*q9$q)GnJqRGt`rAG z$}u%A5NhBdma7AJGQ ziX4fnaX`2!2Z~)(=m6k!ee~KamafYd77>dRCxDgH7tkyE^gE;GnB3Hrhj4VxL{`F` zxLvfT6O|orCspye zu9423)+u69HLHp~E0&!`uxkBcok_|(A&F0myvcM1s~?8cR|ubNTvs~q^TsoVhHR9^ zi!r-hT_uiN^8f^89+iu>v$x%r2iIYDouv4(_U4^J{%Q;~8|l`$Vqa=+rDd=VgDJ~dR3m>)-*>_{8=PmaUmF$kh7F@+QV0P+i98ZY7$>kztZ|{aO}a@?<)kS z?LF(h@6L^`-C2)f<%nC#VSJrL*1M%V(1ma{9~|U46ulN-Kq?t&H&#(`>WEFXU9%Rc z(KjNwy{Ua1%<7H$)Q|cSq8NR}vhxfWR9kpCv2xw9>UX5AKjotL6LLr`H$Vs`cRM8g zH>0Tmd4HSB9n6TTxgT4bmrt_D``M;0Afxs{P1IA{Oj>~E&wqSH?7Vf!e}>$TEv(Rg zQ-i; z{8-_*$NYDd6i+2NdXs4#YdJ)INKN9g34QCQj4s@g_E|kPsc-7_8RQz~y~Yvbiz)Um z_jT&4z5byiv9uVtZojTR9qHydKCN%MguOfq(Ws=ILq(b{S%kzC=q7wSJ-Lmo| zxs9x2HSU85ZllK!R>~p6qSh#3acSBtdppk{DPAV|x@6hydG>|hSw`8!YnXGtre*D0 zR+qk_*q|$`y^K&!8nOsIDSn+qd}?O8uFifed0t+ZfuFWt*OuB(T|EZJ9*q6I0&si& zA3gZ}IqbM_oGk^*t@q#`@ww?B1nO#XV$5BPqgxh1yOr>~^t{k1uN>Q?Dw5Qzvaer- z&jtciONy$()b=rty3<+HgQ(mX0VUL}9G~x+=&XR0FoW7IKQy7OM6%B4UsnH9_htSg=qYD<&kz#iy}_Ph|@q!3so)a%>>r|Nr*R@7I#-s_$#pIk&sVJs!{C zF(x($j1eM$Lr+K)X7;#s*_!kMRsW?U~y>eSe&@^H8;`R;^lV?X~OP?%Ol|ex#XuPSxIP zuc|t|*IqxWYM<%o?vC=lxTN#3!}lH2(nxZu6LTDOj&3Qivhh|%@( z>b28THAZ>yVWykeM_Z&A=h3C**oEv+VcS{ykBtLOg0iwWcPY&cn&)k=4U>Dtbh3a= z620%-3bFJ3@?LcBwX87UuW#U~pOKUM`8}Wi_*dTkHD7;)Hjiy4Pn>9cPx{PQ7q7Iq z@iaH&Y4GS%N_29xqvIp?lu2<v$+@~z`UnG@jO|U{Ud=OiB-#B|;1;Ag3#8K5 z+dty;x31r)Le{VUROnb4+o2k{Y0zCpAw;UCu7me`C?f=aC(*pUhGt+R243c^wW2j` zEbV#jwYJ(l?3~EG=m@#L{(+}{M(%y(_(#6d*A@)cv3vW$qX|6qGjeqI^zUsuqRUTgXWlpw4evvrj5raE z1#)E@Z%ZkSZ)4lEviXci%Ob_geE*xu@GQnMwn{)+lp%q468XiOBTMOLXjMaiOekDms+BZp)%$uAdfO z5dDpDt?Skj`7s%PQ}cyZQOH|l6y2)7tH^aSWbpAV1Lqk|@9AvTQ`{t8!J77f8_mdi z#?@*c$(=_Q7BJ|q4`9^K!0t5vgWI3EOIP21c?`FYVe~Y8rZnv9rpou}KYhkKer-oN zVm+DnT09arv|R~1yGAdo>L#_VLDaY`B}>|@j~8;+jHt+XsPYz{0}BS%Xa)?D9=ch6 z*T(fy9cveBW1nDD#u_7(Cep?b3r?+I(DTwGUbpu|w#Yr<66qvAieE0Xgjkb?<)5B)EL}{C7vq_XTL>u-X znQmJiN<-9by5aBipqkVX?M^e@`O*=cp0Hclh6$_rmNYied3ofhm#aCaQBTh*?uzb@ z>J%$XEH>~1}o&3b5yCPN#mmP40V9(`1f7Gkg6>K5r!(;Hko$f>X7^fI!o1QzovLE4^+Tb99I}juj<{qb*+TuOXYebXD;=yzDLptp1hB| za-IJ66Te`#1s4O1`bu`kyC47Zrw;oE&TNW-9`fWY#6G@}txzUHW~h12alg-W{MvrJ zH(i~`t;t<8?&Wi%hg2(ani`tUP_Gg*WY*ZefzUsP@Dvkz%#DVvtJc5oM7~389fzx9 z%*!@C;WK#0XCteNPojXwJ!`D@Q}gx?nn&GY=rx0E8T804Yg{MqHZ{wOmdE7jaF(!q z4H)!C6BzXseE81w&F#naO{_*3J$QaIO@cc}M^fzzWsoyaH1 zRq~b#lJQwKGmIGDW*PLHC&`hCHR54M3{8_UYLMm0v<%eD-YT|tG`5Z^ne|6j=GeLS&MnsDge`+=ZI2qpNTt2irdBZL$%))f2VTFx zsIQ>w@>^c`zO)DByO-CINbW_uB} zsd?F7%=ysx5uDM07cPm@%Rx#@#GF~3v^UAejlMl@SuW!ye?S57AA76a`@BR0G{;5Cv zZSQ{@U4H6-x~_knYARLj+irS&>L!`5VJ)vSc(MMn)X(tP}iTdE2Q z=&&-SkZJuwpcaB&6?sTRw5ORjx^|5Eb&p?*=fEeY>{V#}H(}+HYk6yFq{<^)HTj&{ zSY975G7z~RJ(^aC#9DiUCkI<`ZUA!4Tj9q%+AP* zRnf}{DQnk$(KiM1%|p~YdL5)_o4TgmpV;+ynVz|TRrh7-R{&T?~wN$ zFj}>j(JYNa*_fBxyHeYT-di0eDmZJX#?9 z9_QfB7w^AgyG^vc(!Xx4_qJ(vyV~S|3(tIb$;)W(Q<>y49pA6qoSuy@a?(>L!D)(J zOsExO>}^|4-b-N%1Ho0#i%m8audv*Tmej#gbf8-EW`+dzCwaY^I{|~*J@sE z1<}%ooAnmP0+aWTq+?QA8mXEgk^72As`ahqxTCkFMf1&GZu-WxTjLwqEFCrdr3^3H zAU|7ez2mVK8Q{?YMmAUIir!P@=&`n01|4nSe%*r!CqetIcy!|fI>4`m) z=4?#ui;b3xHF>N2uSd=6A17yFL^Z=d+Z2c<@V*gvJwq0Q^#~Y!BLU|T>9C>>ng^-n%RNI@^2w!b`Ri4XOF1055U|>7 zxo)|SM-*zse^REUw}rM?vT6;qvG`{c&OKV3SFrI7&xh~)z>odPPyfLOpZSHq9M794L6^>>ijptjx`e6Z%J>HDvGDW*7YlOgL5^QL{oa>8bC2Hn=bjMvNl&+~nUmG9y(?jQHZh-`WZLZ} zZ`#XO7FxoXTAyJ{tfOR=LGcW_Ft80qOFMS;ye(wv$L`iBq+Yl==FrBwZeszRbM9w( zZKn5_la_}f`l`AM*;NKbqq+K)oPO)#K&wPAd2+1^ynHWxECWKibS)0gG;STUu&&#IRge@~f+AE`W_T3>J6+O2WC-LvAg zsh0Pe(lY$3-Hv75q9w=BJa?~(-3xoK!IPz>8f0JIwl)rLr!9C|(h#+RKyWcU=s?~Z zf}4le-}VQ;dFM;d|I&-yH@)v^+FY7K=$mb#wCStbH=AyHJZz^wE_U3v=}-O3FC5hi zkSryXmJg!!aOV2U(+!}({DjU zQ5wgdE#SO!#P(ZWC?^^gE_k73xxW@#_6(z@``VDYRo(8%veFDSEN`64^uqPXtv^~I z{2n0h>DylX!@J#MZ#@`1@6`L;Y+~w?Qe~Z%6JGJ=DG}{Y^7s_FkRFYOy*OPVqqBmA zflQ9QIEQi9hIzfPx_Mica?Z3uy2T}z#;P5TBSILa&aVER(Vnfivfh8u!6&qU zQ~nKbZalLLGjlv+VtL;YuU7LuJtH15c&&!bs-~AI2JN_N#@tIoXu5g}0IjA0JenZ< z9wF!NdHHj%(Um8*(*(tgGtn^pr70ge-nULmL(m())aTQU0y$Z+oT$yaRL2d;m^X04 zxis0K+O1God{^aFLbwr+Rju?U8WmWaSHqxlS#IdtJD-Lz=X#9kfy9&yqMpYzmp!(b z8T+ZDcKrPF+EhsGIu+I!h?b%*%kV{vlWfCfX$5;SjBXiH%gg8ecq&56qZh;Pp`{k0 z#e`Z)Akqe0JTU43PEYdpoxHlE%WpXt!{)O>xg;k3v^1zG4TW+uxqI5@<*i_&9HPm? ztr+8a?sBLolGsVhXn>ldr?|nhm^tN@ z5Vo~lTeNBEf_}jAzr1KqvKiA+HTtqo!}a8PS-EM?tJFNui1E=V#?D(LSUGi1PpM=1 z>lMav16@lOl+W^^I+`9@e`^e_pQQ_o`J)TM?*UGa_t%c^?&#o68zQ1U1W#ph>aCkL z0TRtUcB09X&pFfXB#TP=B~~<5PTH;qo{8j>$!d9FYaDBvIkeH1=UZn{;hG#Tyu1eG z+*o1$$igI&BCyUWC7QjewKk51T#U@yEiJ8l!r zZ(ie}*3q+Op6uM6C(3&opZ9KheAeVoWnmCJ2rh$pwX^WD@bo?7WGw*rwpu~jEDs+w z=<-;M@olt&sf?#8WJpgjea3cjjA4P}dAX&($0F?R$cnIR8;$z-Xa*$e6-Nx4=f!G< zNvoQ-bhRkgMvEqJZ@hLq5u@+vU?;KX&`Y z&wcbZef?j5D{T%EZMGeyj=dXwsB-V$k4}qf_f2^)&8DxE-)s_{p6uz)myYQ4M1PTs z<@L2zZ%-X*cC`al+lvue#*TWc=UUla=~t`NCTd(@tYNqg-hwF$Z#_D8OEhC~{=GiI z=txaJFPH3jw6)@}76TLUEF(o_Qb(;{E#e^CY0s&*WO?T*x)Ab;^h!j<8#6Knc=*6m zuk*e?{p@RW<*9?gBkyOe(fJ;}j81r$h(G&X=GqJU-Sp5IiI>xz!uO3wAtu|3aZAd! zsb4171N6fAQcleyUTZ*W5eE4v*YR4ekjv#nYTas!i?s4zr5OQm#tY_Fh{pFVDYga=7=d<)}R)<{g99uNZW#IM0)5EpTc@ahCTjtM28P zwI~6&Sm3Ew_}SYZ_~5VpyFdD|C*O97p8S@pqo>`Kd(*dbZ+!81*exx$b&2l1dP1+h zbVBlRp%G6oWyn5~3oqNeym(|m;^`*$MQRgjd2uV3F59%^`@zEjo_dA6 zr|)^~_Hkb%m*$gJ?}^W6F2^DNhxzwt$nVw zg z+boyN_j%(Rk&orRJl{9p9F{#Rw6wZ0!*7W{*T}~_fa4OWJ}1)i(wYH^8WUOACBwzC z_)Cr>KYPa9GrTff-BQrT^X%GwYn!&vkREkpaiv8hiX3@v<=Eh2!7Xh*X?ME+Gx;>r z=29`>H2$6D$=+j8~?WS8I;; zp0!CS(SA>~-$&!#th?|g$0m*_K3T6Zw61E(xV8J%bwOv-VHtiGohpl_HH)2)UPX3V zxj+gSbnDn!Z$F&3&Ew#zA!mkOLxyZ42Gc4qi{#fMg>jY#DvS5H_o?aO>0P5%u&1RV zwEi5=KwBvctG^cQ@Y=QL10EhL*7sjM+&sMg{lE1;zWhI5`NO;Pb${VW>JGZ0lD)qd zeX|+f!p5uH%lD3!Z)h9Z9o^f}oi88Jey6{mn~25<`>fUQD>yev5yNs;-Ix8Rc=frR zmtxEeFI(L<_6f$%Ye+HK4!IXS$l1@^g~IkqsGW!9y+@WxYE{{heVkflw+w|_{jBjl z<86hvrF<)N@5!=`$J5`FC+_eB9w zD!KG&CM@?K?@qH@(abrk!K*h~FDFuv7tO^t6_v65OZjIv=rdi4F;l#4O@3PZCYIK) zwNihk2c^;b*A^7~IRTN7zGu*9I$E-Zad?i{o8TjpzZXW<{^PPeV;M0dCSyib00!C9@(1N8o7%EXqhc;TuCy}Z`#9(J*^c629t zheYVy1>|r&yozvZf6dcu@n$_an%A!7uWRz9KG6{Qjcd0SxqI2SJWWm;&nm=gL0%W_ z1v1(q$&&{jO%Q%}_}M@Gz|a5uzkL1&zv;W*LRa5$Wqcg${9!V~18BP8;WOj5j=JHo zv1Nbx{>n=ybnlfDckIZ+M!fLr8ggE)Q&hv{%W$i`s}HfMEHpylV&~jwMl-Ys5Hi(1 z0o~=;Ufa|Vx^G#?oL5@HGCEdUqO*sL*U0yZ(pn5;Ygk(nSp=*p8jQ&BqkrV`Y zG(h;>Bc=DyKGWt>H_g>-VxARdCAN*tnB#Y54BR3)G4V^!i{BT0)@pHy^z{1AbAe0w zNxhxUs`j?FGjUZNtJ|H>vl}ue=lltos{DZNQDd6MuuyCq?O6${Fn>Su6Kv(Gc?dol zvR-QxWEHt)s3PM3mL3i70hROr%Ml5ZUCLX)td4JoAc6l(p&JXHDT~e`EWiK&&EPGv-#CWSpMT zN4rIe-$E4$Yu5-Bs6}K|7CUMe<@mI*=jU`%Cg=I@ul)9SVVo&e{LW?riZ=4I($u9^ zfaVp{S;kNEE^7r|UXH(JtRs;HEj%rc(?Tn7v)Xz4Yvb@X)*?(Abj?^>V_JoJ2*+P6 z=M=MhWAZbfeqa8zpZY9)>-(RkOK;u|FL5z$W!o%YxjMd*mAwFFzbCr=h1bT%#Jc(A zfwlLUd-4ofDSV4la9`hm9E(2RXXW6}lgRl#?=de7c79{WwXpm%to$@bGqh_9-da6< z%V1l2OHb93V=Y#+u{?bu5e%-Em*e*OYl|7L|5`n@wpOuZEC1?ae~tdxU-{^n<$SdP zPu<|=;q|wk+~4QzrT%GhL^OF)N{BpZu4o#&4MkRI_ITK8ewn6;IAZjpM8nTou3QTf zd*S!K!E)0m$B;GdtWXWxYw8&Koa^FgWxAlrOO7lCnT?Je*K)AP#BS}^+C_`zN*nGm z-ne#)a*i8U%fOUv-u?BOr`pn%=hq|cIc1@t)h2k63cih>J1^3qoo_9DP>ZgdclaF! zeI2-^&E_EQa@uUueCZ=Y!pv}|yv%hj4DvoxrsbM2qdoOTl{j~wx` zy$Wj2`}E|Lz+MIKyE_Dm+sYI?8MQ@)3}09K1oqF`R19t{<-zZUkPFV58nxrG47cUU$$pv_ z7%{e5$T&5*a^MYoKpoj1M8ok*JCoEMwst(`?l%hJ#@==?9=Zh6=;RLqT@ z%xl-YT+NfT!pXdS&Cv3;R<2z`wk_9B3yEuewPTbzN!_EN|FX~XytQ_6pLPu_UAndFsObTL=*$vpL*tXU{mnb1{(W_j5akJJlIkH=yh zcl)b;o60sNk%PQV5SNJ<8oPExl%6mZ(4gzW+WX09u6?- zHs5f1yc?bd$F`1MWSW0xpQjB9%zM@hE)UnM-K|NzVhE*-(xqlVM`N-W!m11KX$@UV zue})BY_#tiRU#l~G4_jN_KmUJ=habo(VN!AnWu{w>iMSP*Y{Fn& z27^~Vo5p0=-ak!F_v|8-?$t{3%04cm<+<;gXL;68bOd=m5%=9coj+_%)n%F%0jXkmX#S8HFyK-JEVOheQb z7qa+ojlq=XNK2Ji`dV=PTNhT~Vt`S%$aLl8-YIpPG|#IN5heZ6s8e1!&+_X+E?Jhr zp7@tCJWq6O0a}DLiwSSBQhn$N-|j37_~OIzL_-S;d(G8gB>j^s!}?Xd)HHxSoE2X8 zh=!k~v1~Q;ypNarj)t6Tg>9DXTK+c@F1Nz(e4nfb(DdMKGcV23B z3Z6dT;R2&>k?3G|l8L%B6%{jgP!EA8=1EW1!ONd|n;hL#EH72IspYgi12Fa-+oa__ zAuAerSa_E_96f|ctc5|;;D#16hL;;D?i;?xlRc%)R47I?c;K_xDUA;SS>`sAlG}{CNY%MZdu{?k6JXzPgcI{dhLEwCWQMbrM z`_oMOJA7XiJMpLum>y(=C702ew*L_t(?h=9SV7sjPF!(~vDF&a=~ zfg%?#b7P%nWAMM#MMN;{+*0W+2_L(a@O|ShM``C9x+-G!^0yM)_(a}78KSh{CQDa zL?4S{h}~lw7AZA3ZZ&zsqGTH9>|qu6E(xipqIa3Vt?)U~a?F zLeg?PPliVA_~dqJ+%$d4_mt`jB+V#ty{ssOl%X9{ZGoT}`?3&`*HsJCTk_$lUo7Vo zw0-08kyo$(>tFks&;FCgu59RQzP-<>r$n^bcIq41Hp3g-${X7@+m2F4Q$D@x^X-SX zkLmEvN$8&DNKu<>j1@1k|MC-3Xq<@RNvrzM%EN|{X z_J2|10IVGgzEI8dXhaxr0AW^Y!suV{CMbJ~`NJ=!_7Nc;Z^VPA zIk>$IIS`oLdC}Xc@hz^`EG2IHSVPgK z&*#)>rZLav>S930Te}>mLajEi1(~5`PwqR_O_M8(_6Ogd_C`%lo#UP*M4E4hBAVgY_ZlV{Wrj#GB z3p3lZ2PZUJOs~y(M5n0nw_AR39G+a943$njsLY-_@a=32?mCih`l{<^v3}0hF;Y*> z8+g^CNB8%#32JB$CCMbhh@x~i@_OMNMrf;=NqP22lN<@rU%M^6GT z@7NXhl)^Wto3KSQd`!mdB zwkBW-gPBU*5Y6t7zO=yjXx9|o-Rz3GD#~(A7`54DcY!4vlKxxhtp>uI;9e)*t30&x z%B9{IwUp9VS16JGY+~7`C_NY&;8tqWcz+G-V*K6?a{#tag};;hfqH# zC{gXi--VPz&KchwO-2TMg~{&F&=!wNY)r=Vi8ab9Z*?UcGg$#Dk_`f#CaY3$tjPt# zVZ@Z}B_JYUHLsw}Ew&(nZx+{0zr1HkY9Wq`&xvtnCL_=?S|a zpL~kgy`;*LoW7Q;Up!_^M?-l_x3~I&HO52XuNIv=lw>H$DYV`4D23>$6eQ;OIYc7) z3X@}-E3OnIftvl(PhPDjI6e1?Zmrky)EBr<+0DM2d9N05Dzm&}jI)>Dx-ZOzs6sdv zG~?7@fuC}PbV+3D!8`oiI5!u^7_V+}VnHvH0z*+UhO>~n&=)}Xj?KYKw?a|WHfXqBltcwK&|$A{ClOb3g@FpAN^5Nlwl{@zyl?I1x zk5*?yHpCmN|6C0TDB;Vo`v9~2Z>5}v;6GBDpxCFjC%?r4{vyQ{iuKc9ouNZcxE0+0 zm)Duvuv@DR6eFwoF*Ax8%4!9lHmO+YS65#3VcmWG)tEEue3`PEE=Js+VQX=@*gx9{ z{{9#KH6Ri+d)F&74ai@P=5b!|eiUDqzx1N@>lR`hG4-V(#aR|?ID&pKI`;3v;1$tF zAHYEVDUIx0<45bQnAPA7EeX zudo4?SE9a2^T8=!doP6Mk>bd6W1vNkXJt1IxIy+yUBQ+|OATF^+@xT`+3dq|OuMc0 zVj@$%S3X8Glu^pLzKN}JdEUCxi}=J^v7qX6ew@Xb?Lu!wMczo^v+iGkkt1#?)XU@S zeBLFOup0juC@K})G`i|}o`?f2YsgjSU91cbr?Zf^nvq&qtfg-mz{@_F; z-$fFW7Cpxganq0tR6|7w&Tn&3hfGq3Mxhw%$9ypGctoxv3|(F*Ed~>e!Pat8b4qt7 z!uU@fdw1T_fX;4RU&9B=0d92xx=1PU-@h@LXHMj@ZZZSBr~R7#>}ODyboUPC#umg) zV&SoRNpJy(62v)lwm@~0ir4vaAm$YNz5RNP^cN_R1JibRKswhUg>~Km3md4fQgS5m z?5Lo%U-`&S=gYHNQnS^VT+lcw3-BZ&pL}1|Y!xGWZP-6XupDH;Y%1J=&3AOVvK4`h zmAtS!=EA(S0cKC^+c)pdWzaOsfrkBtF1xO|9R_tUQRN|ZtnMFs8_2!dC)p=Ds!EJd z(3DTP^Q`rEu3Akou(uS)m*NL+-hl62L@3sAVbDLU&3rNMToL(UXJ*H&Z9#n-+v> zc?fPRwa@KwdPq%J>*C9=r(3@rL}J)kRofmtj6XtDaWiA~Z$j_&Y6I)pFVBeG2{o&* z@~u_ex?+-B$a1|v9`PFxiazxvHvD%X&m?VTQ(>mVsr^T`o6V7vyG%^~wl6GVcD^2elyoM?B zC^AF(=yTMhINhSzLc%Xd9hw5hG=uN)O+);G8cP(xKbZ6k!v=R{Q zKd6>uij~{*Y29g9THwO`)QA`Rc_&A(MqK1St$bnyH0F!56p4LZxf{&0WTOzCl3Y!C z6wpp4VL|nJ(&=LdJTw11qM;JF^sF)RfuJGQDt+hdHu~Pe<{jIj zQPQ*estUV?64n~?l!jSfMjJGr5*}F$C zw#~rjR1zsyCh#FkO43Hhr}`;|%>gJZDCKHQY`li7d^AS&yMKB$X{SVxs9W=TkG%Th5jAIA#5Cxk!E@+5Q zPw-t<_#nG&xXO7JZf(nu zdD)j~BU3K(h;qDqN1vRm%iF!mrmW%G=0T$qlJ-dZ5?*RSlF=^r@1!>IRAc8q%(gi= zVOi2&ksf5dIiwFccnS=IGgL^%5*bDOS&y&S(fcOrdQ@ zO%k{kWld)O$UEV=#R;tA+-k@~r!j%RnYNt}`|cdnTp&e~fTldoRvg4^VW7$8d&#td zNy$Jpg}mIlSN_=JkvJHAYr=}JSRBjHq0_yEE;!o5;`%3Qtkx$bIt@o?G4W79mg4mS z>hMV-_%KK3$+Qn-6=Tw?UJOZvgflj5aIxdJ8d*Ccp-SbI^Lw(+YTytk+<+T4b$&)m zV9g}F^R8-L4S#}eb7?YqS>yi;$ediQsaPlQi*cK>kr4F8!E0;bWvEHK110(Os{hHo zp3PeeEMtCCG6fSx@|ufZT6*Lpu4kG|!@jE)(dIM6**JDBTIg44i$xGi8%UD_q~HV*e27za1HR_PQ)Led6jKET!*$$|DCp@( zBYBUE;u&9iVkq=;Qr41AYGCW>fCLSqat78G^rN48c$rSb&^#WWsJU3Ria~c_GeE$y zY%fVCT!c4UIA5w1x7>}Rw69Ppc~J-j;tb4ZK^RV29Q~M>M{kz5l*ri(V>|J(E>*T`NJ{$*{=f?D{kLjNOm~cTAH#xan9aGenEviTL>agM564?#=!|?Y>V@j zZ9ntia&NKL$@679(5xDd*01qk?j}X^&!3hHL$>t+>GS{jr!QciZt-r^X2-%qD4=$d z8x*uciqRYp+_=-7V}U=vb4p?7fF@eJ?kuL}%|KIymbMUeX?y^Uxi^;x;03=w+G!+A z6Vn)`bLvd(B=MTIL1tQ8ASwe76x9lHJQVeWLi-IPVX2?@ZKb2IJ(pDsD>BVm@ugmk zthOffRL@gJc9SR%jWG~zkQeZ=cItKqEnVjDEbH>rqibIqS=LX*gQFM*J{I8}ywK|l zZv)gv4j`+H57xOkGdo-_T#&C!SgJ4BeW~8C^3x05b|?NRRd(2I6`S&FU6--bY)^;( zON)_+neo7@>I=p*KDj|#8zY;ocj^JkrAD45_M@RM);{@g;UoCZ#2o}Z8d%xSH+3OZ z3YI+8J-bge_X~VC4Q0`|p84Lof*YLf-FrX%pc~r# z<-34GC*`uP7?8PZ)k>OtRB-+fg-Tf&?dad{9XPIRX@?yO-l^b9BH?@M1uA5{a3+Ey z+72?&53}r-ZAy71N zinmF3(}g$)qdiSFn%i;46g$NGQSByTP(f1b;mH22?^$K(C845$A;o}gw>y1BOJ(Ny z0!1c|w)6v{1a=Z~d%U0!$T4|-6Un3Ka&MWR)%Z+t`oEJ7{_?-|KLq}V!2cJ4%Ya?= XU~+(=or1scpEI`B4v>l~cN6~$_#zMV literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/thumb_invisible.xml b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/thumb_invisible.xml new file mode 100644 index 000000000..1250f827f --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/thumb_invisible.xml @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_full.xml b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_full.xml new file mode 100644 index 000000000..f6d1d4ec1 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_full.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_low.xml b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_low.xml new file mode 100644 index 000000000..2c3dbb054 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_low.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_mid.xml b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_mid.xml new file mode 100644 index 000000000..8eaead280 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/track_mid.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/underlayer_power_arrow.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/underlayer_power_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..a1c5f1459ab879b9bbb9e658f1fc2848a31bda16 GIT binary patch literal 15547 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/.DS_Store b/BLE_EXAMPLE/src/main/res/drawable/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0jGIrDybJPP9jwr0PqpZ#P$T=f= zB!JU-vlD14Vt0iZl|gik<b_|w`qyRHbF`rS3%o+Ny1tw*pyXj z8E1K?BRJ~Dg=f}$2pKBIr!fV}Itt3a!u}yT0*s=KZ<2%|b6t9|&NN?7xn;5tp>(p! z7|Ys?afgJsVb;jW&N>c4s+Qtc9#9o@roMu0Jh8pr69wgV2B1pr@fAP+tf*?B17U)1 zUjYJmpR2WGW5qRlasabq!4Y4iyhl8o{r+WtI*)-E0$#O{JSx1gCEJJrieye_$f&WaY$@!T+aWIaeUZ?aZ-;BW|S`j>Vq&5)PJE^CI zkzRhb$0Z2qn5pRjE9QJS&RN!4)I_W2g;}nEwm#k7RW7$}RpEhNE9>cCT9=S{fbY{= zX2;FVZhRaIB{<<`*wvS2L=5%t)mGqeOHMxzd6q@FUZC>aBBcHOmUlQ~!9Herl-<3s zKJXe~%4|Ai(oPXs@m1?Zs;*r#VSL$v4tEtkF3Wq8lVY86c_Yx0FOK|N6V{MZoe%p^ zMf<#7m=Nc-nEaxW)=%`SzuT3PW<3>=?N-xsBr(-KqG5fidh3x4KM4x0#ArNmni5xv zr5%2#+e0#n9-?y}R56umqDr8VTo4Zr+hh6iqA94&X)TcBTSup| z?HDD?eshC8FJyWQ(!ae6%PXBI{C7wHE$V;dGGL8eE@|Wn#z+B4TLD~D%$hNS+cmfc z>Ifv+bZy@8XL}~*-S_n^Dg+8X=(XmGxmVe6CB1v#q)hTGXRKbdt<$z?E4QdDLaD@m~($mZ87eF2qa;1&A#@7HJB{JQtvm1Z+J1LpxnF1etVNpi_2CtmmZH_iD;qr))o^L zR*(y_nIp1BThlbj&8;_s5rT4UkBm3HqL*8c)sMs=*I>b{3~?0XG5CQzQmlWJtveiF z+W(zOBo=$J&v9?I%wAKC6m-7Pbox=K4tQ&IX z%mF{U`Q8chZ=6EvCB-444zny_c55s{j}rr`JE<2XW14nQSHJwJH)R?OXIX@YQoI}9 zVzVqk+)t__m(-}SZ~fz2#^I5Zx`V5&(N_M8Xb@`1Hc)``a&*8;VpR;*4~9jliHb?W QJNpj~z@EmVxu{V3U&HsGvj6}9 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_10.png b/BLE_EXAMPLE/src/main/res/drawable/battery_10.png new file mode 100644 index 0000000000000000000000000000000000000000..f862ebcbe5ddfca93b5cb4762790619353e9d9a9 GIT binary patch literal 17093 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_30.png b/BLE_EXAMPLE/src/main/res/drawable/battery_30.png new file mode 100644 index 0000000000000000000000000000000000000000..01718dc25006c18c583009439f499a56256175d5 GIT binary patch literal 17141 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 v+r-!1WW1Q=CA(`Dsiu^ literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_50.png b/BLE_EXAMPLE/src/main/res/drawable/battery_50.png new file mode 100644 index 0000000000000000000000000000000000000000..ca80724e98aaf1f69ea98f768e1ca7a859c93749 GIT binary patch literal 17124 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_70.png b/BLE_EXAMPLE/src/main/res/drawable/battery_70.png new file mode 100644 index 0000000000000000000000000000000000000000..329fedfafd3c94e9c1f129f42dc47c4389b06c0e GIT binary patch literal 17090 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_circle.png b/BLE_EXAMPLE/src/main/res/drawable/battery_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..fae568a61dda52e3316fa16eeb93a51dfcffbba7 GIT binary patch literal 26671 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 WzAm;ym5+{}d;Gxgp9&rO*Z%{sicUoU literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_error_critical_off.png b/BLE_EXAMPLE/src/main/res/drawable/battery_error_critical_off.png new file mode 100644 index 0000000000000000000000000000000000000000..db3b6964dc94ea2d1703061971b12dca58ab655b GIT binary patch literal 2181 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

RGZv50GM*j6eMq(r3N)c!<{1- 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 +Nv3qf&n}1%;@wP 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 z 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�?VUGG0V1Md{~#jHg;V@J8OFKx|(9cct034{xpSL705bS}y|_reGlU;+Et zK~Z>$(luz|*1I)t2yFob>8;!`_PGE>yjKT9YNdN!uK|`jf+7rHde?6~nbwh#Cfa&O zL4fq0^^0z``9m5e2e~N|P=vu(!Az>g4k2sOAwiJ?qLM(-AWl!~paeh&mE$$GK8^al z6l2Mi)4CUMg*4tFzaEk& z5EN-WqV>9+-XU1O)zYpThIvqQQkr|F2Z-Tt5PEe&$#g3`n8Q|6ZU}UpY_-3txToa} zSvcJ(>*J(Qsx|jC&`YG}K1(%*To5`Jo(wVFyqqPaSXeBzC@AvZ^q>BtFQ6z3o&|uS zKD!INBdZ>2*nyqZAY+iI?Np>RgcizfC$=AQk4}@vFKF0T7miX4z@7yt;=8zL4&wWW z|M0u6b=yvT8PfnoYeRi+Pp6dM0ibwM3Gwvdn|hDyZitXn`^ZC7OZT68Z;$JD6}f%> z{iE&?`ZCr((n8dOd5jbwZCbyuna-d4B=$j31I_y)2t(tr{qo5Bwk-+vO^SxsVa5TG zdXc2&8)07AAbdf}&=V=>R)<9y@#dng_E%q~>S?OrhsRBGj6~{7&|;`| zepwRDw#(8#no>Uwk)iV(L9UMY>9qbASjfq|jt{?N3xKw^q{{(O3E%`>^*Z3D5weP^E=r{AG~>%Qe0 zWl^{N3-bc0)#^Lz_(;S3W8V2*wW5XGwLuf11ec?S2#jKSr?glzyw z-}-fY``SVmlr~i?L=GVj>M_C&i1|((0!SCin|clJ2WKH-eWJd0k=S)0kykBoq~n$f zic~&Gau5QPvi;KPHoNQwuU=#Wzcr6VZ059_@g z5&VqXwl>pqP8!VsmN^h7Y{;bGD=ftdhBithYAd}jlqC5z=On*>z6}Z?pMRI%!H~9d^l=`dv?{fh5Uus<4LB`9!L5pEr^H3rlD8eTaa6G_ zLWVgi)EXLfTB0qS7Yg^_#aUS_wH1be6=Q!Bf}_%s1<3F(|K< z-}>95Cy1Ukf5r{1xY+tkg|}J@&aSR@t)5AEe$HI^*Y}B}4gUVEo~HK#a$2V(=71=e zky6o60@0dx=421r_NjR?Ghst-?1;KqYh2?V)^!`?5K^av3|(mI3IFk2zR2f;IADq$ z*X>(gPxq_ho+8kAt9RI!k3FOgwT^=660%vZ8xmv<9&Sf3QfBbfBD04UHb)jtdWDd4 z^wqGi!m>`~P1n$tR>DU2YT?JqXeUPH&9VpKMoN8gKJU%+oIfB}v@7@u8gGQtz4tI` z8p(9|Z9SIWx;M95exFzDIxyo;T^V338nVru1^4{e)4Ywn(kt>)vq|8%x<0V^8 zKK5KJcAg<*c3Rq<=4u#aSxU!DmqO~CovvX=c?1hYX^0mn^co%b+aGm}Py|g`c#0Kq z6-#I&LmdmdlA2oql6OpskYd=F_H}O3xnfE0^jyt+q7aByk{}xVBHQeA>~Q$4iz#ybI~w^Si5_OQ!&*m$H9HTQUfV zYvHyiD7)4j5bu3E_K}nUfT<6!Q;;-6^R3N+v2KP;rKx%3(-bvl;dLH57hR6;K+6Bz z7vXr#8A?T7B`xbYw=cE65m!^u*Ud_@U{fWlNky^QN3j5`_FM4SdswrQFgRmqkT7(0 z>DUe_y9tnP&OGP2is5tYbU%4S1Be)q3;VC`R2uJI0@U1%G+fQgRebyhW0T6{>QmAZY1i z3ye^j>aVT7+3T2}lB@QqN^E=1-ZLfA>&Sh0o$d3b!0T@)Id*Z7zFKc(mitugqKv5X zyj;mlSLd$=S@XbYS=!>Q%~WLeBA3$EDRSmHi&M>Q4=K@aRN!}8?+|Ml?TNdL_jn!) zuLBS|cs2xOw=|uIFFtJ7=}LHpp6BAOGKu|_08I7%jINtfw4YSVk>?kw?AO_biH>MwrHV;xR;tF9QSF9&JH@rqoji4@k4xXY+%^lvNOB;-Cr(4EA zh5LIeM#rr+i^kS(`rsFI+__GXNYHZAI|QL}0IMSsdV^r$Mh%tQN`rHRc=$kmlm>go z+f&q2~C7_7I)AqISBr@H#R@dKRu+XDBOyP40$NZ%t##r?*HX zD3l|Is5_6XD-FBY*_wF=2!yhz#{n}*;iebj?5y2yB^2}eeIY!H^wHRcP%qr45(pT0 z`e*<7-}&F29&Z0Xns4;C{^8%#1%3}J3NUR4)LLR_Bj1lGPMaFi;=1YGLGG7s zKWq0MGT{(*J$YW$pDESCobB-W$UZMvTAk9*DQ}=ivO2R<8ZW?Y0jsTSQ zsP701*&}={^~1Yf^fe(3)t@{ENu>u%AytQ?(K>RABr(%1=b7m;h+6uuO^`$a2Duv4 z1e4vr7C5?UUy+uUJL})WCu@9uj`BN%(q(jNsF~iP93I#HD5VR%E7HCc1W4T8PkkvE zJ0QzKH)WNjbRlrXU6w=LuSm55@TKoT(c@}u(0rogj)gpZuwNdxL@{e8|~L zq#h!~$L<;+!gdfWXgJ+CpFxpE&piy5ZWUN%w4f{g9(tJE!;W<>fg%7P1x4q4u%fJV zZOAYRxDKNisVERaevwXnYX(IxlM5dLFHuS>QlbS4iqpY!)a)Sc9U1}8%ew}al%3~Q z3cDcvTnanT#8o!%+QRA7LigH1(d|l~%KW0Y-k#Pg@?0Yw*ls!VT=o))onLc^-b+(m z{2IQko9PB_NU$H>yLlOjzpzpww@5=f67Mz!c@{0~K@rY#1aRY?p$MPzV<@a60ziZi zI;}f|P`V>KCMb1}EUbkJ3|1c&W1l0d+@^boj;vw*TO3(1Kb?&${`3=Rx=^{_z zB_7bXX*c$51>&2gciFww2(|T|T6rpcE7!6je69?~p&Nm99m-qh|0(QjaGbn=RNXa5R z&qx{S-VQqDbKrPGP^9x>W75wa;*H!R<`^No4z-Q6@T*5hD1G;<8dlDMPRB{+9{KfO zAIDVuy?$ZgbKe3KdA<>c+DXolc%gQG4;g0HOXM1TKffJH13(c87?5L>L+MnK?g2eT z^_P@)r0d0W95oP+e-9sBDqwm>9Tw{We)g*2m<+zyl!+CBevWz=r)hIU@<5jM_h6Yp zjtQoZV_j_nUnTO7xbE>_o+N;u(%MgG%%2BEQ*6@bB+YN@*BAFr+3=Rh$|^{zDJ)mD z^SQ|Hlw*{EjLlmP(NKCeIh$h~=95wZRBeld3R5p=m1KoE! zgMuPhrl`>09Xnv;6_K7BVRXzZ$`!j`dN{yOJ|*eG;$_j;>cz|S{0N9%*}&toLCdYj z>HRHq&;cO2?XDtvj7ZI`;)%0RaN#X_+tsSL)qx{PZ73E>farj=i^M!chvR#U@HvFe zVK4^!TxOut>)o!Npe?UsgxW;-+w^CtwLQGP2b2Ql#2iu+0Nw4D7g=<21?)%tg9R9K z-2V~hH!PPzy+_A(EOe7~KevIP5}qW@6FM0x6>wIvPTE;bUtnD#50P6}FOfJn@1%0p8kbj_9VFYG{-Z~O#%98nb63`HmTI& zc<=e{$9sQjA$aN~<@z-<>YO?7S0Q3rukUr#*GiP#4Ks>QGGipYZ{hjfsOvSfj!csq zW-!TlM_LAe8sV|^G2&r$n?6NYF98%O!ZF2q)HH&DXOVIt=_%UUs$QYY%E@_#)p1_? z_JeWUi~_MGu+-r7jhJpkZ_)d7|3E?@Wxz0ieiB0ghXdrGe*IP=tPc69`rn&sykew6 zL@Q)6hD!rWh-!eBNUzny>C|J?h1FqEJw$$C>V9+JircA& z&oMcFF7lh-_|-1DmcqM_mHag2b^_`Xy23$nPSgC4eN}8`-R|p3%RbldsN0HU#24am zt2vx*&a-<*75gEmyZ1QVEkV`2>-(!anVo~swJf!IbSm&Fxt7s`tGz`bTEx}wBhhd| z_QkwJ`p>@Yv(LpHvoxuUohiW4v;Bp+?eAImoEC2NO5IsBSu_c9jb6Sem7@Eu0V9@m zAnROq6j8Kzs|yBX6wZU(b`u>EVQ;6HZ!SkZk%vR{@#DALLI^Jrs-u5+S7Yi?uju`I ziSRiV4~%N-B2CQ}yaLar>}T7&Q_Q9|SrNvQ=D zkL(=TU^^E&x9Qg1g@Yi5&*`%7+bC3!1ccT-#wL4^)+fazeVc_Y?_ z=@Kz=vil?qZ?269lXI{Vp?Gb+2tkVG0QokC#gT1p^^6KI6oFJ+bcU*%LNIjQ@6nDk zNnv+C{1^Yrzy0B-zwsZ+7x_h5+5GT-x&Lqf|NlWeasX32$Kts`E2(I%hAVn57sF94 z*Q@3w@poNa^>^{C1nXV?{Z~>bBtrMVX2x(gN&u`B4%d5#A{Q<(;z2n??JO#Z%z0aN zAhdcqG|trsyK@7>iEqexcD8DehI-t+xa-Ngt98XB1x7MN$qKCah~nli9T<7?5xhhUEe8U6Jp!-f>_>V5D@q1~1(r74s z|J@Q)-5^@fqGt|-I1l+t?=(Qb(Bv3B^P;Z2#^)YR*A-j)K3{L{w8r`GlgDT$eki}j z9sS>?`?eMxDF_#S_*mPdx9I1wlYWtNip1uz9$*NB3re~G>sF@deraGRy|5$U)U6ftxTpeS_;?=wS-kAi69gVS(-ebc7zJ={X;V2q&X#rS<8 zR-H85Aze`ofT071eRxRSJ>Lz0h@c30N2Idt@0T(5T-GA2+PHxqQs_dCH!EnOG@!^s z=Z-c~eIh742$O-e_qbZ$RjFcVO-K8yp*w!9>waA|Z=nJr2xz%gX)_*g+dEMa(;6Oi zTh{9Ov(svM*K2Zix#FR6WvyNlgtcKReYdaA@knbG_?(}*hr#RGsK-G{laSBpS%hZ| z3T{Zn9ru9gYF#echA5L-fTC5~r`i8Z&d)c+ct0AS?kdwa0yEERX*S9 zMZ(mm)AK-N)3dWmt-k8C-ufMR)es?2Aox=d=FagRDjmLF)vee zT5{BAJ(slKiGF)h85tq()=JCR*te5Fk$%S~26%K84IIi2Y1{Z8+3hrh*28Fnv%y1c z`IikU46&mT2A~MW8PrDug3@|wM+T6r`ze-dsu@b zk-bJR*s)(nu95!n9dJ;jcb5!)Z+t$+gI6-C@kdb97#&~OI?{Rjq#ak1hX@RH(;GEm zSq^2U+bLl@J>Iy~Wu@m9_ZX3U;d=u`53+UkL1MyvZh%N45+pB51k`3T^4$a9w9B_i7SLl-?;Slmo=QOk}-%d^&&u#PZEDu z)oaNV$76A>3W~fn-}boCUFQw|m8IE0QPq8$2NsObLow`>9R;7C{LVLCb?ZvJFz5A= z8RCTMl$nOmP1~;wAZ?1TTA%f1u?Md$$c2Mwnq5P~4DDCoI&M1DM5L_+6mL08Be;X)@-z;y&o2&2p1qFnUu zH3yAU9Iqq>x~N|?$~UQaYtAjAMDbRyS46>J_`wUg!h7`L-Sm2Ofawai(ki*#?aQj*2^k6@MgQBQ< zpVk8y4Wl)fbxwLA(^UpVEab`%9tBkE_FbKlio0Xens|5U*^!id&OD3LDOgliIjL0K zeL+pLrq2sW699yG9n2{S4*?`7=5illR}kA%{z+J?om_$2v&TWfo=A{3V3%Qa`2Iip zH~;tNM>qcO@E<7J80T@ZCNA5A2W2WOeveGF%cWUFYI8nn=YWtx}Hu9+` zrmNKRmQbu^wxceb8K1Axm0OlNf~FG7w$GOWufK`39OTsaXV1Q3Hy=M)#d9-*Yg;Vy>BR;pdsb3PcNJ+yN7v;-NGs zh_6$6ZfEjAr~lQ@3!~&7&kq(l<`E$>5TJ;8Mi`&I76U<~crJNzOgWQ*MZclB}TTzwd!lJK>-zz2bf2dN1MSbRCzhijfym%{xK-hkl z5&#wZT_jJE3fb+vCQ>*F)9-kGmfn@s`dzI0et4hOr0$}>`x?(t`#=_WrFSR4`+AZr5XOE$rGA z?7p%ZM{m4MjDMIX=TP<<0Tp?Ak&c^pU)J_@1IA+CL5E@=a4=Nh51*NSreNrm zv(b(1z-y#B71(}dk*K`WJM*X-uNg+y0HZ|4@I(ywJQiz1^M{tTsV1y$upFb1szO#h zlwPA{`6c3m9AekgeRFvjmW#TrNY#}~B0LkRkyA1OZeK#_eq+fG++29(#;bp|I&T|# zXD?JPPUWrmw1&`q$}3cp&?>%h#O$%7xlzWF>U2okU6$^w720!266^9Zj~>l6yleOI?5Y!0=H6d>J| z=-E->n}zHaAYw@20vc79NEbAO?hcFTjozw-0VRgcaY`mSo!qwBeb92h8-kiU2DMvG zwlK<#@twN7W#|5y%Clb!KobVihRMj6i+hT4cnpLC`j%TUZyXqPH;NK2k{f%=t)euJ z>N%6OROz)-;Z~3=AOwX)deZa3j?L)3!tRa053({ooU zl|fD{ccf9IlUIj-O>x$w$9FlxAMsuU^}3`Vn*f`6ND}p?Li}A}E)(A= zp6`R7<6?DTK#YZg0nPyG2&NKo2!!u{ac^nwF%1xujw47a4w!mlgLs{z_%0KjKE6YE zh?F$tqyip%<0tF&TZXcab?^eAA2`{td+rGDYS^w=$nJ1l#{qhV0uy1MAK~6bQYaQg)Y{rJ?dh zTW}l&h4)*DI(Zm-qJVfxI#RaN*LLkV9`xPt8W9}f4@N{a4&JFD=9p-N#mhFV?zNK` zAzVFA8LLdZWs67q_$ z+~_jT%rJ~qYBYXkq*R(_;Cd3C__K!#WAasnYjDykTMiErBpIc-FLj_k;zz^lmNxr1 z4zkn#Hx96yLI-jzb>;8^~ z)&1a%Hp)uJPM0qG7qt?%dWmS_dSMm4?|R4m%EROUkY2fqXyG9PQM@&a?{n!P2nb79 z=s?oOP-8H9;{y@G=x%yUH~`VD8OAvcp#$R(Lg$>NNb`)m&6_kMCJUnut~Wewi1mr2 z!~lHc128ZSyhUobvx5NM6q^8{}aSUmg=q=L1iJLyC4^?@fA|dV>q7t$p7FH7> zbTT#2t|x`12SmzD)zkQjQU9tn*|$NVTFc*tBA`<16Itu_FPXQJvSwS0g$JFQ^&7th zBjQ4dNdyYHzELQEPQ$Gf%%`sSo_dZ5l*Y66KC+d+X3N*>4e%oHDwz^X2DCmzXV9=J zJDv)+PS0xFXTEOb+`{x$oPD9JcsLe3MqlLD%cX(LbMM?C8Nh0O5IsNs4;cotCy5du z7fg4}cD^G%JNm#wHx_}dlcfxTmtniIduH#EUfV$lKtwrk@D!dS z@p^R9jw3LneYmlx^xdPp?JVt@Z-j8VuO&U{V#UMXv}6z*w@B%Yh=-rVY8q)+__w}! zRQf^3eJ3T^<|v9x+pSEm?nMFsLP*_fzlRs;I%EDjsmyfWNrcp48S@?{`zk z_chN5YK2mEyKzQ*|53YZkYoL+bfI-aWuo(S;Wg4}afZ4Op4cXDVbon8Usf+p@s-PD z2U}8)O!tw7)UaFkUZ^73_^)d^FHjGDT2|;U9;4q-2APJ^DG(8^n|CEH(|&_gpyRDJ zIZ86)j^wV(U-+??{x%i4;zgW+=}+@pnvW|^?O4n$`?Nh3K@va_Y8$=swl#;yKWx-1 z%7VCBfTLKyXOqmyu!aIceM1kUH(D{Qkc8)(C+)l=%`!Yh z=rq}(<^)c7h!8rbl-=$rf_LZ-Zn1&|3mrY`6v5K<9Pg%g?3Z^31w~rBNF)Ff2Lc60 z-%2g!IwMMd>Vi-PgwA35mex8SxB!sex#=%k0`Z5uBE>)W=VtX9VW6a^2v$Yp6dfiC zZjYR+bp=yl*1-!BVxZ(8j>3hc=EgdPwg#nkIMfT83qVu)P!2vNzfHca_A*7KEG zv=s`E)9h-Fz=kcW0(6`_JR+emmAPlVZWd)&j@Lb}2og>mY)rXC;h*WKg=;;T1e(N& z6>`lYam5WvUsv;mIYc=*oeC#`O>!tio=>b;ZGlqu7M;1Gtc+u0n`D;5lwK#j?lW6n zVVhEG9$}w2Zl&ffDQSbp;H{k7ll~(A?S$-p0aWm};?HxXG#(|*>7sW~rk=oaU%%qv zb-f3e?dUl=?@=b|kOaa3ngQh327sCpfSDnc#ov{su$h*(X^go_90=iAX!?;CdWF}B^@#L3kv}_*b#ItE+l__XSI5ei zR`?a(B8JXE?urCE-Sx}%IjeW=hgy4(V>rX;Fs?HaWM@a3@t>64TGI&nLiQTnuK){r z2lNaLsq=`HV5rN?biVE6p``@C7_8DLIz~VR{bo-pNSa6nJG-S$sgtR-x|n{*$R5ea z!-*FlOR2!8KMw$qNE22Ed6M4e$4LkE9HBP7qokalERTn*C;RzIuQT`MY;0Y1GGsEc zetmT!m`r=*;m)%T~igCl*4dUL#O--?2O+2(4oPL&z_B)n9{?FrdQtA`bv>J+G)# zFA+s)xo=5$jaZ`sp>miahv=qPLDy?@D-Ac=?j*&;Fjv|96)uy) zDHQ|(6rJ0YlFxHt%5f<_f3^eFUtbmkm3Xe>KY5U6;#V0O){fv9sN6IfE>Q z*U`Il(Rhla@h(Qb+1d2>Q{Y3;-L;|bX3jqw7!qgSfriofcY*Ig=QFju)YtwjEw9FV zJy>yBG1j^h?&r^Htzl`b;E1)4ni#p9P$bS^=j$0xr+@GwoeWOM;Kz8#E<)@Uo^KT1 zBmWQEy{@$G4zH3DIk+dBwc;2;w|!WGh~apA8R$Wx=V)+(qMi+h*yqo->--JhaKq;( zBn)Jt0};b5%P&%6nvWqmMQyxW>G%IS^;=HFkaLYN`!2ng@1z28c#ppE^in5-u;`0DN>M?rQ>OQDxq@i`6dMjoO}H6!S~&-%d58E_6bPxMB$BFQ3iaJ0 zttW}cR9bE>PwN;Bv0o*2_dYZ>JiB45hTG1KMkLsOTiw)v@h$-i&uc-=E- zDpwqvuVpETIKeJnXjZ!VMOhJ6HacI%dL*x^wG9=-M{66YxOMDFOh8zt zOmrP<5JA$dMY8%&LW3?(I38 zGSf{e#yiOZwvk*x0n>&hJB!y53E}So7mZ!A-Gg`xt@M!fFTejWHvh%f~A*=&oQx(Yy(0jN$1@ZVVpI3#&{#NHWrmej*{ z)`D0x#ozC`riJA`U+OYIbXNmOT>(;$50(;%%xXhYq=$8hv zXi^+FG5_fJ$X3m<%5BW7L(V1p+3YcjJ}%`K*)Nm~Ex`_IU}(58j=|7f-pi~29BD12 z_w9Kox$WWh(1y~D<5C}52Z0wynd*E@)943~3?-&I<{U|4tAp3*rbz-XLKNEq(d>j$6$b+?AjNoA#jsK*FirTf#GMi8yr zB?gATsLN$;%K{x~SDcv_y3wOcWBA=IN>nxeZvcswX|n%vU5K|!qJ^h(;GiVq_snML z729EYJe>ho>!6uQ*#OpZm_JoMZs<}_>=LeGWoAA|D7Cuu z>W`YyElC%$>#x!Z4!`gNmgaozd2E}vQKs*4;}II_yT0`8OWOzDA!Q;V&7)*btsnHr z=HpvL{i59jigt(a76BkB7!qS(!3Qpxp=D1R!UY3GZb8xQ&P*pm>ln(M-RO{5UjWyL z{34Pr&=t<<{xFFr#^eWoj^<(?Y78+^%p*dvR|Q3hbOC}+8dk4`ckTc| z2&>BjhqBSh5V=MmTnJDk5;Ul}n4W^7ubp7wtuxYzS>ynSP?w0|bX*4sP$X8{0-)$1 zdyH;~f+7}i4Q~*H@pKf=IU-2X9HdM?n`pRodRTLkqHPB~1VXT!LZLYJ!8bq=-*eU| z@>9?=w0>;!$PYp_dnhnr%?&oWdg&!ugE`e)gOfa{Gwh~Ja)wy2HHXrj`E)gb3|R|D zQUIVKg#>9%Me+oROqu4CP+_pVBa$4b$0j{XwbloVSc!a-%qVvur6pllmGB}c_4Dcw zZIR8+7i)6AT~J&X03(!iRn!TJR_eQb?)%&Ie(@OnHRN&_>Ti9Pkc-Zy3c3{(`2ev} znh-n98>0s&-c^bBU?q8o_zv*B%Ezh)ay5aZlykP?Ac^bP9&0VBk>ISpw+yXYbvka6 zDd;EQ-xP@!a+qDFyXT+Y3hO4h$M(cSRoA6-9wYBB7+RNzR*Kg+qM$w2I0`Qk^AwNC zRA-9|fA*N7I|EZ?)KA0H%9iV+)HP)?hON2}`n$t;(nGL!a^)iTp%8>Jd%YtCF59gF zuzjO~B6TBqD0TGxHw_S}jN^uaqLina$$aQV8oXap&ym;CQ&4ofo*QG<8?SGqHTYgj zfFj-gs_hTH8oft%7+NP1pa>qMroPc#GbXC{=%v>cyod8Gba1BeGD6|=)aUaUzmu*Z zdy7=|$KU3;>6!2*t)xHd73VANNpjK!3PDf?MF2@XC_8oQ~UKo_&e5#}4^4p+n~U_!dKD=KvsKu9{}pnnmT0hDq=+w@0n7ZV@+ z&@zIQG*j5VuUz`uzSI_)23aXN3WH%C3yAUWskwV!c`-5op;vo@F{)7Zs=Iicl>-z5 z_2sBr#DCOH)GJT6T#LJ=8-Gx@%X3a;D)1ofaNqX9?W7qcTwr_NfnJiLTWTRWEd1zy z@D_ot8`4;}?wX~H9r~r`7v+$+2(&=`A|fL%>e>JzqM|oxFnnwIL>QP@!$`v)#(&EJy_+ZnhS+w2ODmrj0B#N_Q@Kx`S*gxA|rw9Wx2Wt(L+wy^Y zD_yS(t(-ZGj_YYH-SlU}dPN$NpW{$AEQD@-gGCsVBIElh1Kqm+`F{})Bek|kE6zX# zg>3yYlCtYo|Ifp6nD~8m+Ww|g#*ip}Ypt@*MV^tQG^Nw@JvzIb<__hZoRJJ*B&_WT zK~?3nWSzOm3xZsD;(d6B$YOR@l~|$jde&O@_0CodNUd@-J2xD_a=^8>H61{qhww{-%Z;02k%aO zAsi%mcxDcf2%c`&(Tkw@g92i_yrMB*`Iq&v?fPa@$} zQel1(?>&Xj^#VPJjJ?RsX6;9KgS5~qYZ*PQjK9iG_h^_>b^{RYxu!vp*7*Rj-uk&1Z46_k?8b7Y z>z?CT&wz)3swSvaeW`U<5N(D(S`>+7*51vvq|FO`5qL=u3z;wGIF_xDWxMRD5^=|rUR&#!Yc%D$yA}W+%umZow7x?Qaw3gMIu<*6A9a3c)|&@u zF&ny>bB$Icg}bg+FDXG#E>)DBwfy$h9Q>Rn?~w>GljR&K*g3UtGQM>*fDpR%+AhQD zPBSPHX#qw@+Yir?UjK>Re|1U^(I186u;1ef#MBUUWY|d=?m%zuogBPJ%1n3Ij#bDr z0;$dM)*||8=5>b02!smk$5#OQHi?HpF zNncuWTROI1N4=BE<>2d{ls3v~5Qeo)y*zoEE=YCX<-9&Nvu|}a5G0kZt$zP6taQJz z)aTuLkA@Uhmzgu9iRlx5#S=*U!~-geI~3QLzW&xteB{pctO z7OT7WY#&U+-H%@Tm07y9Owp@arvZX60L?8LJH3*^2{2eh2%Qfs2(9BF1h9m8dWf{( zo?G!SSiMU%iwKG^z2WiV2$29tqPK_z0AKibbdVkky+T`Q9m6}g-&txOLx1$vn7F;dp=zo1ET~=ZU zgtV}uhtN@vKk{@@jt0vshq|8AkJ$A5*Nd-D9OsGGz91-rTKt*aUNp;|qI8TJd2=&;a-hg1E^L6GysEQ**&oyos zG8ht9s8^~2)mz=a$S+8-XQo)xpWUI)jG z1BoM+>%Kn#5p&Wm{2ht#&G0CB+Ya7YX!e{;hpSfiD9+=a$;JKRkJ8-tTpbgDb-Up0;9^}J; z8NqNLx$Y|sW2LvQzqhd@*D_MC(cAX>S7DxOvf^obx9chz^9aoci?AoLh< zne44fX5>ZE0fg?d0IZWSeCuOy4rAw-4N#=xxO(XOU}(oTI5XY( z_pQfB?X?eDaCATA9H}1jV47Ey0g=i>W9{7)D|dn^JVu!AiGiZM+>bu893+$C#_YbI zEy*Z8xSmHKR5~Da#c>lEtX>g~@wR)LSHH9ltV=s#5m;@+%FhgJG6SuiT&$(x9+I{+t4-`mT~rT|@B7TJ^SOOvwN+$-{j7xqwp^mhK>F?B!s zG;)jRIdY1UBeM5I>>uH2@Fy!=t_Zg z@7=q~MyJ~n3!MTY9~ISm^xl@?Eu#15z{BLoiWKMVq+y^tumPO4IGA4)tV)u2765vV z+OUtFh3;xa+Ct_O3>{aGO8^W9J_I`|Ib@C=qQ+BH)QT6D>I{ZDV8l8_XQ^IM*3ua>hKsTd)HZ|(3K-IzKBt|3c&s zVS4Bax3bKM&L{T$30B5A|9%r~n5Y1K&@ zqLA<~CH&|F=UeqK&io$Fkr6=PZOxyf8XEljnH=Nf3};?ER>h0Ip0EKl=71+1rY);s zW!!d>a}yIG!(9K-kT|5G((9vvhD0#{P3yhyZQI89n*bPT0oW{C6%gS% zV6bA}90o0dqmHR=II#UR*XTpruk!gdOm#k9U>nC1$UBcl7~Umv3`!ya%IlpgsL7F4 z8CMbN9mY^qOQG7LT6U%g=Pzr+c+d zqyi)wpc~Q!d-578=jB&|r{Phe>L!4K{707((L_r>UUkhO>84qsoROj1El+#>)b|XY zgz2_lBUyj$Jw;hR@Ac@&~)@|zZPq=Pb_YCI8r)I&xa)6>o7CxtiU3WcvP7D+&MYrb+0TBHq zwz&(ra`-1l3|20g~`fvQjY?T0zkr^9o@q?lB5F?i@Nd%D1nF1{8(iEsZ8v_u-bm?{6z8qEd8= z6y5J^iuFI-Sm-{%Ky=dvKs6bDknkQAA1t?hK!xYW>$F56MDYxMY{n*0fO0J*h3o!9gy)^+!G@kC7HJ)-b^Sbt zFa;fQrOAfmB=_#eZ$S(_6igPHPK396+Qf}8rj)CqyD*ij@p7bWMrqqhhp4*?YkI7I; z5`2G#)5WW`TEa8L+#~#{_Xr-LvosDz?h&N|d%Xq+MRpnOwpD3T=X5^2t@Hx9w-(@M z)xX&_`Gg_GEfJ^w{RYB1aqsRLzex|HT{mV*wzr=84_(V`WV)oc*}d2RKiC~!ZG`;7 zQ-Xf%^7sk`ZId3OQoThaqwz3f71Vv(Dp41X?4B@UG2D5(^A_PRgOm)4G??#(5$z}_ zx?$7zWasf|&QB%7>3au7YII}K*Hi#Ddx;l0--t8Ls!CB%gqd$G-w2>6wk@nw1%Oaq zM*;@mA&@Ts5M@x5>kZ}{BTPZr4S^m2&_jJdCp$J(AmrOkaqxLpG!QDMH4~EsmMY2f zw4esyj>22R>XPEanvWb4cDZ3s8bR*1Zu1bjjEmHBq@XC}f-}TUcPuF-!q+|VacJp{ zEU9Z|MbbSy1D87~GBxnGx^7)>)0%VNZ;P`J{XBE-s{?^~{WVG}@BcY7(m{T6VAQ+l z<{0Yo58b;2>yOEoqXe*OU4*sGbhhL^?9V^BQmM#)Nkxn=qR%gD!#T&OVJume2?+}S z_QvBL`PZq03wuVuz%LtKq5}_)tKo8OF<0gqX=vRu^B!SGREvJj4&=FAV_>26Y^D(P z7~Mw)mGX`DcNUgwYqc}n@fhMCzAG9+x4&ZmNn?_KFpts8d*<~4`NCJo7rJMF z=nwpR;g|5zNf+)`dQkwRJE?G;$}1mOQ*x<#hQ759o+Ae)NM4Pa5N>iq_}tFB%V7Np zPZ4WPu!^fStOM8O2Mlz6KDPp9j}a6jgwY*1-777NxNohM0n4OYA&Y~hUg%XqjuApV z;4#`H!xBP8wl2A&3M`>o^?kFFEi{%>F*Z7EUw7bxD^ZdK#P%Os=v;)#S&)8+<_oNM zp>q_^6^I%pP=bc;+en}YfXEWFYv^3i3sX*+FT_(6dB2uE+%*=q^frB+oK_Yt1uA2^ zgSQ>ZOk;H~5vr6EN23EH)CBjnR6NL;0Yuflgg*R3Xk28P!uplaXcv$M7k@v2BeGq2)db^KP8q3+ZO z7(j>>ObybIF-Tgk*CaK!NIwd$_vzEhO7|*Tqn@Sn z?pYEcyhQLAfr*YGbQ(wduq);&Ew$zI6Vh~7$+cX+e{Y~ijW_pg`aS-kYkLGpJNtu$ z&wUS&?)Se}v7aen8PBdmhe4W6R!#6jE(FYfxY)hGfG($3cfAPJ0g(L2Ai5IVV2 zlSZ@L5gRDr9U{SkdWbxy2qOjJtubKygyhvkygQoTXC+=pgt*X;m9jDLsMNOK@Ow@AUy_?}{(00_B7_z%lu zoXeU3;_i=KSs;_s=D4h}`>t%LW!9PJ0Dv@v^G}eG)Cw8VcrFVzOJU&!>3U(@N7BnVf5(R-4cC+r!Eb`6@i`_4Ey|kO>WnvU)A7 zT`m6VO8gi3Zzm;^&+Sxdn2&7RXH#14-C^epT+#sskvgUOlu+s&Hi|T&-bs zE13;Z!FPSvG=y@szMotl(l8>{oFm=j|L8ZOmIhaFhlK&1wd6T+@`WgNoa!1eR8qn7ytdJ`eP^Hjp$3bn=O~>6A@=}BS{QcUi5PZDkT$5?mnN4P zp>+=)SeRXo^tW;&rqhJ+SDb{G7Gg|yjlp;CnU^*Zi_CfU&lVn`Lo$Y9X$|6$I*&T` z?pU^5@kdUil_f~EH0LL8N#l&T{x>9`l#TL3^4OHp9xgM4W6LfAN=oZ3s$i!&4xTJ} zpwt4SRwr-0MDwrD=ODiu|LdIRsQ-a_?+}r11w_lCc?Uz5<6g_l%B(Ro$!DL6%XF~p z;Kwe-+fU0&o+l1#mvMcMTCxSmqeoF&Oy!PWhqBE*^7=)))!0Fg5ta|sN-`)&f)FU} z`7%0&K|Y>0TK)(m#7p^7>mFDBvCXHiZf_1H_vc zH&n1c!smvP7?R$)w`jD~u{!xXYbcI+@A2VGEy7@TQ`}qRgWd;vjXsnJO;_3Oinxjd zIMSrzgA#)=!4OFqPBs^{mJvck4r@3F@edj3^!WJ4WH_#Db&^8n2!z(HfuQGRSX?M1 zQo~%rqANp0(?y8KN%zsM)zBOTQXVb`1xh_kZk=wFh?EpgI^m}9WZv(zUW+D!ua?#l zegE*>g(J(H zws&6Yb7hWEQqs(8QNruMa60}`>4y9)U*xYRAh1}}utW#}j!ywx6_Bh{mO-!rp7}e0 z-Ix=0;lH5@!SC6k37M?#gj2weg7;_D!!FBN^**kiwV-#gy3l+!EfW!b!(U zr_!&3k>zCi{llmOkfhNEVgPC3hMpt#ZATVf%(gIp=s8B}Vc#rK=Z5T^hf;wFyhro~ zp|5_C!s>Ky1sDMj8XjA@t$IKq&T8BZCU5YH3dB8Jp`-93Oe%|vdw zw})fiPh2l%F#IVFGZKb7cVr?6tIK09#$}AF09U|CZ+=)*!X(HK4w9H-MDg&tYahFJ zb4N6a#A$4+>{qYReUC(eC=r9N{~pF!XQq2V%kD#4)+iWUM~awfQVI4v{Xj~jA|MjS zbS7H|Af$TMQ%`3I<*ZJgMr|WU51wCC8HUIGmh{%}-iKzQqWfkLQnDU7>YAZ9Rfak4 zJIJr2%q~~Vvj*t$G6N-ZG)Q=wYW{so*)5;B6#0!MlOJ3a!}#mS7OJEgL^CmxLlbUS z=@4uCS4iGzxMF==a$R1^Owq4WU9ld=x+g7lB$oeb^bY;`v-X)V#|R%c3c&uw?znx= z)~Uq=VRI)X+(8brbnv<^hsD2LNbr2^U_zFptv9xrgrL3mQUq$AOX9-z&)_itN~L{kgqnSlw$oFB4UJL0H|}H}$*? z*+QE6@Xmk_Sm-clX#u}+)Z4!4wJbOSl5D{T&>&rq>J8dTE4F=l;8sa^g-Ei15t=dY z2%%FZy7B&A$)aJBqo+vcVGVUf;Ba%ONG$lw7Rx5Cku1|r2 zxDqT0_MOt>L#DadS4u;qQ18hP*MFzqf0IY#BnqY^OL&OXb9C<1+vnATkk3t`hSZeq z4;hvBfBv8Tt-pJ6u>F6PFY=4BvUc?M??3$i{C!&(pZ(!Ey+Xs}+1pNHIbh>d>C#2Q zQxrvabEu>L=-k&g*QOe@B*8qWz-7eQdEW-lL$dP%e9J5zr9xSfv6aiqd+&t8FP4!`J39V)=M6%Z?iyJp_49E4k<8w_T3V_kaYhLUX8}_IBhd4+=&e8YxjkOMf zkh=4k^G#|SG0aXZvIf(=e88?mzR|7>6WvRN7Hgdj3W6SS-EvSix~ET#akx#D$c@bC zf&9x+PfOPa+hJsmRG}?LGd)e#eX|FM;M9Jss9Lu9g_9?XuUx&<;1 zj3`m-hr|mcT^N_&y;#VtdzL$c{3CSOAXkWdA|jy_Pp684htRCbDs|gkYtU8m{9fHNceS_1*&fIDo>vYgnE%VRPnLY5@xs%QgwUgtBQ0 zogY0ahOnMT=v)#ijm@)8N~=g>h+`qxl}hcLJqau49Z-_?HzZS?oXdnzA?woG?uvOY zH0*Ds{PXAk=KuEO;N}-#^ee=G(SK~fXhH|4dkk8tz~u_adQKVIkjsqP&+0lW3cJvCL&`}aFk)MjRbLa| znHXywJ-(bjrGdkzJ%CU)xit^P>zODEXuDyE@pUKWK~j8_2pRhRM?vA(FRh+jHee|4 z8o;RAj=oR(LqnQ9{uOe#WrejH&@-;PJe(?tAkjhRf3V%!34i zN@c5y=SNiJlbgPtV^j!=kH0klgwQ(FH=^e#k9pQ)Jr1Dgn{ljEW;&@+7Z6f-1Dt@S zo5j^3%2Ic?OaYQqa5M|7#7cJT&u!SL07(JSeG9AGd2p#Zh>|cM->CB-X}S@Oy>8?U z0tWpJN_dWJsw)SUEB4yAm%DbO(r{u>B^cuGGycboWnqm2IrNd#z>WL*RAPKMSK9VqWEu1mQveq}`G% z8aAubUE}G0xH~96e~f|fEw z&QU0io=;KTIc`NqnB7?gFj=vToQ#yLZgk313T|stte(hu!|*IxD3r>yx7$!T`$Euf zkNXx^!fm_XGZXrK->7dxNo|eF_rcr0v3+s0Y8u$j<9=UVGZ6goXZh-@Yw^u$#NE%h zZp?j!_6JHXEO)!5F@YyoY5HNGn!Kg#-zqYvv_Zw~F5 zI>02DtzmCyVu;^^fF$N}!?Amj2#~a2a+>drd=B>ABDJu# zRIrm-8Mr_C`OO4^awxTeBljGUsSe`_>})qi&k>Ap7;oMs7F3Y`&~O*v$SJ%*7=$9Q z7`ie5YP?6^rr*PhysEdz$Iw?k{pJdQ6V%;4KPNEm-A!Z+5C9^K|MUVWHTTXS^C+oG z<26coMi8xU#L$+MY-G_ezQ8=A6ia8ThN?gLdZa1<903eb_u3Pq?bcE$PfOI4tn}Qb zm%X|(H1u^ncAC87OKCksG^C5PUZXi_fzPi2OLd!jtZ=ek~&Qkm>LbdJ&_ z_cdOl(x4&(LUawA{N?!f7j6|n(qZ-(A(u#Vix^htor-Q(6jkq8!{@}@*1keLMT`MP zKLvmU5Tqmw<2JC;?SBMllBUz^y+!~&a1sFw{g~pE;TZxO4%z5lIuQfi`>0hE)-5v9 zi2))GM#I=iF}XB6QrSb~vtaQd0K%Yx!Q<_?P8on43~?R<69b5EU1) z$pwH+p)DxLc#=Zu7;eYP_7Zi2(npazL*Y1bU=+05E~m*u1aMT`o7C(VidPFnNr&A4 zA&M%5CBl8O;h#WgIID`KNCr72n$Y`LwR{lGAyPKD($pZ5PSMpcxAUo^L7a`Q)-ft+ z)8MRT7E+fBey${Cn#^b=ZD(Fo@$+&Wm4C=}Tvvp7VIK)FcH!4>T_z7g=Rcme`A^px zPm2BSAIJXo+QlyqmWAL^>>BKxLtMx8d~Uy%*zY_a!*fdlmFXQ!0QGv>k3cg66;h&; zajvN`C6#oe331fW$030dY2GD(-W~w)TDnL&pE~$*P(HylPU>-fRy{}OzQgs7p)Q`w zssp%uT=J$4+$J7g2Qr#6G@wUwo?x_amO2_XhV-qj<~m{`m0_|2PuVaM*V%iH+!LJv z(vWH+O+wuKc!t-}YqY5bpsMKSFgookH!G884zue;K@r$Moz@#+c8%94cjQjW5PiQ( zgw>^Rx;!6VBgSthuMu;QG?eb^T24Zmr|8Q*(7p35xT>U&;LMxBFt2fzn8N6^7Qg!QO<+D$lJbH7D? zoyVx#cPcrpq$N{GLtqDNruy!(z$4W<5a#t>dXy^osVOa2>*b%H{4T%B{ebt}YvgrqBy|A% z_!SVP8b!=2(!yvn?J}Y+gCZ4lOir7LydqF?Grve>M~s!u7yDwaNW^^kLuqn0ReS|q z_H$mNh+pW}5~*Gyzg`7CTj_qBabe5shk^BN&Z)Zg7y;1NmI1Ve-8 zC`6KXry!M7kX1cJr20LTl)qr>sGw3Qi@c)M5~K(r$y21@sN3Fz&Ur3Un=_Q#@~O9> zo`bZxoSV{l=pG0N>fn&PA)k-W{XBVysGMqBGUFjiLN5{&`vBY7RS}xDgE*J#LV}6< zJaL|5q35jB<8zxygD>Z;M=Wpu7;RQzVbqW3bsN@wB)IZtcae_aK71A$Hs)Y%a&66V z{>&OcBnk967+dlCJ+I-5gFmMn26^uHJMqM<_2D@tr9mdyiN+m}key@{v+tfyNDJ^yZC)i(`6g21Mcc|0FffC{w|%fXh&vNnwSyRzB8yEEc$wXoPMt%c3H16$zgRpAj&yLO4*GF zjXk$D?~ecM4dE%GQ96gz0UX_Nkfg?I=pTERM!FzQxUiIYFqD@yY_8Y&hAFm^W|ymS zf^6GW=_H?)7H}15L+$bf4Z{2;UHZ(y(O>&P|92rd#<54Jb49EAP&$)ksd1aq5j0$Z zQDm5D>q>ss<%i#=ttuq;?@m#jB@N8!|7~6qSA9- zrUyyEQRjwcA|qCZ$H?yy9TAx58gJ1ks6lXz;Akg-qS5*Ts&0TIP;x7cr_6`ZsiZuk z08(OJBhZFw{h~{&yKtv-{bRWSNC=^OU6*hBKMX0rJi`vYcFS9i>4xM*8t*{S4K_OU z6geFoLLhF9gPI!r-12wm&t}`n6c*bCdWwTr%`Mut;;((&It#e!{9(NZ0vrzB%CbZ+ zk(64%^{DQ@;R7Enqm+~MB4azN%5yoC(e=7t03y#N(ql47Lt?FhvUJ9}C(de>DSp@1 zYE7b&_T%v+WLS0O$qr_&L!U2HWeyOjl6XeN)0n(glQKC;8}T-q0-Q|@9f6r07Ye)7 zaJ&Foo$`K>0Ea5?=PgrXfYg;K$RY5#PDOjhJ9Xu}gM?7f*uDa_$K~q@0rA*t2yr{FZCp!W3g>|*>bf_6aUrd@Y7P+g zAcmf#v_GF`fR@zM^{zj^a6$xz*jXsupg9oCLptxS1K=3Hr@kZS)uX52Qc3`^=3ME$ znf}B>0HU+(MshDw_LffakK}4#B(<5=GgZuE1%RVK#KDf%9&=#CZyLf7JBGuqp0=b6 zP0o?H=Sjc+Jjf;>;vOQcchm!<^?L0LrQ`_xBtlN`%(A&|n9UgnZweYXpJkh-10#d#~LdWB$1Q4=*mmPzo;* z0MdTmc_$GuxG>*{HH=g^|GnuX$T320^m9hOKpt9cqb9f7^&bUCyF*0VWIc+x+I#7; zc2gS~Hn%rKD4mv7Sq`D+S$JJK=aTtGb=kxL5RB=0T|Zl9bV_dTb=WI))R12SPE$gM z^ce=>L(b{{0*roB`K1TmCxrFv8dtpl^XqdABywy?#*=Dv=o!sb`2* zGO6*^bQfWEF#;m8ozg?3^U{K&T(;;#cU`3AX3}hPUGx+|NV*_i8Z z(uCEWI(U*Ukvs3-oZr1djW;3DXHzT`sS2*;aD3`n301-cD*Gv~Xf={MO7aM_gbED3 zirf*I=0mAsn)8S1p?0nWf{J@E&Yh)>8gWU0YH&q+&QlT%2ihyY0yNci8TiE1!N*4j zI0Pn*Ylm{x`n+B0J_;1C4;pq?J~7S^l<`nDGjt$FL7amynLG+0M4K-X+nqx7&HueBqZbHLy2w%)sw!8@G6p1j>Ap;|N zm{PkJPG5gr;Gvl+UGyCFIdt$MP1Z{bs3bGlrSMmhG}tafgzd(?Wdb52eH41_A~({tZUP0O44u05Rv` zinG(DusYt0j!&TM?mR|)NL>iaZ^(QY9jUu>{?Vs$je@p2=^(l+X0TN@x+X8${(0V{ z2Z+^m#AG`ej>UAPOjdQUI|M4y<#Z3bGxyUPwJof!$q!$eUiU;C94%!=a=Yo93{|p- z=N+}cW%vc-eXEMvu|~ciS4htUO})BTX+Oml{W(dI-%+Z^DE}DtqhAeva!%14x}HbJ ztbg>^W2S3QFU=duf?2c-@bAjwN+k7#1USn3){D_vMeY`gen1PE;Uh1NN9lRGcnzbQ z0Z5FaTY28y=>1xY;N$)f%yj!wfzpoe`onkCTQn!kG3wdqG_h0N^h5O&r4JA}MnS$1 zPovb1-lsi1DLVMSd3y*tZXIwvpXf>!x+El9fQM(>EqM?!(Y<)Ti0bA&EjNT7p$wXO z>h4V^U0@}39;Y%BK9{{fdEHie=0_WL@9W3)om3^kDZ4|Fpi@jZM>edlnKNo$F2KJC%#;4lXX*buwPl^=PxZ z249gu@vH}l&mrGeEDsKfeBQ5-04#EyL>j^jf+dDX=HIJ^N)G8=?NYSTZ<#~gE*yYr zyD9gH(hx#4-Y^$`XIK24))Y8#YHyJsQi$Jw)sJ_i6GjCRJID|qXr;NIQVX|A`W-U3 zk(P9U-!=r_|5{?DL*eHWZ>1$|NkA&GV#d4M=N+YQd399j^D*jGLbz`tn#o~a^cZcB z&U@498*Qex!&{$#Q1%+Fk1etv&uuIDg73q={nEqh=qVyV3Q2?v`0vBbqTr|(J`09@ zH!^yVe)7Co<{EJp*9QY4K+QKkUgl6bgwI_rhA>3N{lGYRS#%p1=^AD_2Sg$FByx;$ z^an{8zGIs^j*0fuu{%;}ZTAy663cg1b~+IuMRx;+NW9QdbgN`mD(RT%1cv89y+f+*v5YSd@BZUY#(WWQf1tjmz=l6W75mWTnd?@bm_RBu@l@cwcwjiUyg2d#32VblBu@{wTg1+oOs=$zwxbyMnHUh z>2r*3dp?nm1i`y7{!^52!C2@rvrqOGh12L(oBxU&BUC2;`kfW!Q;S+6UBCdh-7ysD zVC@JfsJXlRA_5|UpslSMLf3-zKMJfsYW;#dNr zj*gpNB6@(b;zaLJ6p)k@YUdlydZ6W?DJy9x#@c&{=pj-N;rS9PUY96>)B`T!MT6a(%_f6s~uD zi01Ezhqzsc(@2*97)@B5qbh{6!P0ENW**e&H6-v;3*w5fA7i-OMT)JvJ^~&ELme0+ zpt9ZEqjKFr!-dc5#(F(HIAiEtxn5$00v(bF!1Fe48=7+u)rpnE>ttwh$CwX95JXUu zsnYe?`vK=OfUIG&6N!SbXDh>$1@C+s#>cjFKV{D|!iVh22~SL-^#&u|N|!5?@BdT4 zH3OvnJSzD^_MD=eBY4_vCt%8BHkE7=xOXj>NM|Ye0SA* zG#cdw2S*x3=YtgUjdJ7zpD84OFbBbub0lwCfC$neNKbC0*E08hT;(<5G2acEPaF(& zNe}q=!!V~lw6f#VeGAvu(7F2_Ne2T+(r237A}>}C{YD-po#|Qi5K(fp4ZTIXVooE? zD{|cetaHdQdgXaX%rOG#!qeV}Ef!9fbB@3^{CwR1F;+mgj3}fc6BfETU{tr&G>`o0 zRxmTI@A=EDb)S;zMe1|;wX?5-*zetbhIceSSp z!jL%b1JaMv1elnARF$aKqY}ru($}2B^MzJsK3X1gapoa!+&3$aSRDifetc4tyHpO# zx$yl|d2|qzL!@#Ok&}YyxL;xM&ZK-_oY!Nbojzo4rLv|q-XSriUonCMg$#%yUnlLy z^#O3MPr*jWbq6Q}B|^^-0E_oq>gkb|aY3w2Yoh&a<{0G&xa|DHY}lHDF1_xdZ72i1 zZaGLEyp251YpbDk7HXECef~{Jbit6v{3Fwolp_|^gA~k!++J!vQqDs+*JTN!hHf2c`L8bg z8du$HRx0nl2U6&N2=-cc~qc{m*-=^#IQjUxp|^cp2*B@L;2F|Rm(m!9W-TEDY1F7J!!6jCCm zITO_>IC|j6H+TDty;X%I6Eb9!jic}3=R)M0jgCRJ$Hl}4{N5F{PZ!ZfVzQ{-r$gDm7X zmioYlhMo{V5`TpH;|&dX!uobu(hHc8G=EICy}WF%qI3yp^|!Zk*Hg4R^y`OuB>{w< zrZ-nVh~n0Uxwl;EHfKiB5V<{@B9RcHmJoQ69;QCQXCC;CtM>>UNCrh>UZYs|y|kdn z*C|!E_;jZuUBLeP)h!N-5ahcb>O%t<$li8#pg*Q%c#Sd$x+85JSM9XN{{Vzw2}W*_ z)-Ljn{T;8{bBu1s)fELn1VtEC-uk|3eM_z(c!ju#dJ+(TB2shHibs+KwMdWu0TjVw zgn?wZ;rE?ANZU1s7yBUhNJB52>Xp>53XbS8N_j+(1{59HpVr)PLA@e%BKd$HR?rPL zP#R@GpUqIFip5D?UYBk?ygBPbtz*JJaf`83w+r@ zjIBt3nhSliE2!amQ(%i*`HLm!JNTiu0RI8#T)1bc_%-)pG~31VV+@38-Va0N(B_5Z z>RflUq4_oeN{ks#uk)f3A8=otTsWS%@N>nVDENs`x)A`aTrchkas$cOHUW@MFFYs7 z+vNGPTyFqW@vyr3j01e7WqOPh#CiKRH82#vkFV!)iMDF46b0b1K3_4C3SR4sTajKo z@sP;O21q*e0KER&6VYUAR6w>~iQPFDF9s&JDy^2&WkUG66#lJynk; zysKx^JF*X;_9IG4lE_E+r{CVH?T=>Qk<~E0?)%RY#0=>h*LI!ZPX8PGhjp)wguK{w z8eGU1TejJuuxD$=DIKv9@rmpjSkbdf1qQP<+FnH zNB?s}-3|~C|9r4Q?op62h`*N!6k%D%#5akU=v%4sx|_P-IuTa4@H&Eb?^;Ov&#CaM zhQM=he_>&CoTv2p!w9!WSlvEX?D%>&suBpn2pjV|_Wc7LfsrnB7J?%xde1n2g*qA3Dc(vk_-rea6$K7`teKui$0aWCxH}#qUF#T z@tgZ-9RVfuVB5y|68o~9>S<~p%RJz5ExJ3ed5ngV0nz8|G5XDcQGM7&u8v={_lrOH z9Dzb*&LBAQcT$EFCg=TU7g|?chv6@8>ZCkdAU`9z7q(mQblAou8BoZym%6;pQm{+8-F9C`GkiLhjd&l?Z^atzw zvLMzNgVG<|x&#jq0MWbg9n(&B>~t?jZxK92KXumwfCS5=0;Si|TD(SCcxTTl-{B>4 zbo8~~H>_(IOAvm5KdlLo=;v~wB6nZ z_FHV(0E)qMk(9SWI&K#wTG;eK4pvF8Q54K`<1)hN6fkYJ-Xjn#Fiswdfilc(NHEQ< zr_AKy%ErdJDNlKNG5D3L4JVk@D|`a1SX-g z`aY_Bo+mJbYfj*WigYGxkkm#~W5>^pBd({gxsU1h(9p55eJJO%Dgk@we>^8C6_BsUgso7+G~E-5Zy~?StLePhXVn1>3ET!S8rFw<)z5SZ+U;7EC>~C_Byw2Il_|FMD2Je?nht?CVQ+H+S z`s`uKA$ZtEX3b;IF+$$uMu~oR(*Y9t&|_(TD-E0T`bMmGg!u*f>BCe|+evcJpKnFX zv;i=N)6vVs+|o&S+Cd#pNW!26#Bq-IcAxM4-Z@<9Q1z~kW$(N13?S*P110t~`Me5{ zIv_L=w@zYQrmG0^1VulL0O{hp%jzlObR6IBb#*!5C4vVC;q(znvZMb;UJ;F|j7r%V z_s2Z`b~Y}JB^OAEXz79Dqvw6PwBKg}K}<739midGhsG6q&kRWIVTWDMF&d}Oo-VAm z5pI9CsCNmn_o{??*0KrHbCiCArOekYT9)u2J(1e~Dxey=eTU=-n5Kn>5cTspB1{7miG<}2{~U~MgJ$)fSnVRU@@Hf+U_f4y7RxmVt zE``@wUQt#0B1dSg7H`cm$4Hm*u2nfA8=dK4Lr{KaK&0Zeg_^o8xRep0%zgUWl+c=|bw(DwVgjc^TB*J!m3JU0-L7%ys!* zA{3acb`Fftk7c&Hla1s#+K|XyW&g??BPC`?=g7H8mLp_BJj8Pxr2?=U>{||O=wl#3 zc$qx3ZkvT+8FBEz&XHMAZ{8XV7vD}r#GpAx*JkLu#dC{9f^Y$Ph|=RfFD)~j7^|)@uZYZs z&~;K+-Br8{Sv1!OvNzqPgZ!5czS zw~KEt@|f&&nN*=uJN3(*ALg%?Aw^b6Qxi1n!7W)C*L}WuM!$o{sK!v{@Ht7~I)}MU z!{_o3g_mcUwqh%|4fo>%I0nRZ*IMmhgSevApyCoag{d?9;c zf4lYLe&&Dh8tLC|z2E>v=v3b?v;)cBp%o43@MQ-@=ZxRIF9DVsP_$!{42rOBAJctX z{As_wH|j=z(dHPDZ~+W-UtJdMWU-7KBY2CH+yE~8%X*9wF{GqWWuJ48(d{>N`jdmA zH+9!KXu1V0n0yj1HwPJlBFOtRJ$PSqu-dv|G~G(Iir*wr&|z>3%cir-ZTtF5PrQX} z<^g@nugyolGBORVFz-4i@E^u$&-RpyEbA$`y5sT1yh&(p51Ferm>X{6yyzA;XZQ~kQ_6jFWQtaSt& z2*-}!)$>+*MOqrDbjtsP9es09sg6VaeyMRaQhw1?D)nVPApU(`N}L^1b{@gT&=T+m7Wd| zbl%Sl6q(*r-*@^}Ndf|18APA{@nTy7`t3GJDmAZTESYffcwEUx7$dw&F+D_$)bUuCGJn>lmk>t+DhH&?tL4V;G^blj*eyj53)5y-CVW zCsx~p$MyAz2#^+Fo0FlXvdn72-{RC?3w1AWFZ=t8a8KzUWW)n>aXLRxgK+U z-%3?@xolx|mQatPt@H}zT0q5fN-n4*+l4fe+1&y>c>DB@RB+J}J<#*hG$0iW;CM2! z<$N2q*%LHmFO44OUZeIr*zc-=(L7YwJC9Q1mFhfHjq6LyW2By{>q*hQXm$z7WD5Gs zgVnAJ!)s4bfoOkjspq`5a#<gxo%TF-^3#& zttU!qv%XJduX9JMy^|w|fd}>as(Zc8q#zbeAG&Msam9?6a zIILC5ZhDY%oul{T_mAa<7QA;k=j&ts(McuRi1qX+bp?%-n1O{}U9vYM6EVU35IUjmBQ>NB^I6Ay;`?!*cKcM~Y=dMKvE6R^ zZ6;&r>wxAa=R8Gh_X}P3Z!B{Ud>UeB((|`xnP;uD7i0Q@%`WG+>k|h|Kv6!QG{8u$ z3IIinM}0c;rl;__y*<&7Pyy1eSuONKX7MtgJ`A&n0U{PTgY`t&<}%Htn72q7=*Df~ zE$YCLdWm+tc9CDBdXIKWxW9LHoJnS#m%Cz-EVI>``mlaF&eBIIRFyr zRWUdnco-dP5z$MOgfkZKjxa<`nq=Pq1{d;nq-p zH=7)x1b!Ov^}#;Jb^6^59_#P#=$c>Osb70XvArhMJI8zM!|B43EG^sHT#ceEHI&C> zo&~NnA#*H#Y2F|zmZhcmqNETyF3%M`&F6?~^14C6UgrBo5Uu37 zGuxX}R#)0ME&zSy)wx^S96MJ!kLz?e(p1>2g=fh%`LERH$*%0IYnzx>G@0 zb}5+-w;~1X1%p+cQX zaZAd{VYM9dD^bbL_fbIZw7V|maB|_0O6(zknO1)Rg9PxZR_cEoOu+YhB9)MX0xb8! zQriAxiJW()$claM>IG|l&zJyK4KaqtOP*1-E+?j@MRr}c-p(>m8l7*#Y6V6<07qbylfCxs zlPcBq?GwZpItT<&sji=PJt%tWx%fb>LyXaDj*u`p=gD7b^G97pr^|I6I{Xi%n%DBY z??9u=IgMgW(fuXBsG-wgdSz(a(0_n!ivc8bEPSFMNy~_-$=>yM<7)T~@|f?na1D2g z8gI1FO>(f*WiXVL>2A!GHitf!D%44l?bdm5uhF>6;TpGE6=9KvZr3Sg?wSJh z{m~?qjCa%h)Y*1jXU%mvMr}8tFV@YMOLrGVIz73wu}Xj2KgArTQanYksB|B*Edx7? zYID|BF=(vB6P0-iC`>i&LNHn@Mm}Wg+&mV=2>d*=&5&WPs=^?VFtR zBVyp6pij7gmluV|t1xRs$N{o!P)D*vnQ1o+41@kjJQE&RsMxg#T2Y+l|Rw zvkKiK`y*%Ef>x8}WQvwS(K%C{Q}28^bD9ZcTP-Zp-MUu3ES5djs2AZ@35rq~I zHw5LT^|~@!_kVJOf8+zS^tP@Q5EN-Jsw@RcoXhTF^GVaGVNR3dHG&S`*OyoO>2!6F zV~Kc=k;YSl5$^-STNDDu8Bng`3OVwO^W!RoDR;6{rp)0#bi}I!t1IHqj5&acI6?M^1PWVx_L(L|!Gaif zG;ILriWEv)1}47yN-W3U(BBm**-d#bUAX38(+$pEZK;jM?J2u z6Di)KiB#{KwjTopH@7qACG(Yhb& z$jTK^WL|crHlXL7%5*uAwxsMif~N@UH(Zb*#)1L}>EPF<#gqaRJ>Lw!&%V>?_KU}c z27sgrbD#gWGu9RpY zdE1IOUU-k*<^C57C?b_Edx{(TA4pP8Zoe!JJAbn~qFy6arn?1c^%NL8 z)^FR{amjA(GcNadLnH_@bQ%2UJfysDB#k4=u}5y|71GPFW8DmwBw;?a>-;b`@m{2= zDEr2Fe$06KaWWv(Ro6guy3)r^RUg~{kp07qu+0fSclL?j`Ep4?2_Q(8a2-2YM91S) zkh$(92(I-N9rSf|fjw2yO#7q{a%i}2Cz8c-rY z%HE=Wo6uw7UL#me-0C@sX!Hy%n1Ko`A5kxrLsaT{UXVNI3ulT}GvRdoqqC^Yu4 z=rLMfvdkIE;AT(JaTn&LzV0RgD}hjzxV05!VDeWj)M=+?(xr+nN2=VSC5wqTsl7$8 zk$2{pv^4`L2U(;L*(kg$cxv=mN;g_|)~2%=m#Hciq?J=ppetUW^1VHmfwanVsyL^V zDqE+3$ORTGHxfNKsZN+0Y{k7oNYc!)F-3g-xYdS+CQGgn ziyQV>s`>gx#63r;UMIdj&nNdrNul#a57v_7l19jPcqV1kpWv#_xn%bU8l8Hdr}gd8 zi__*vDpr1Hy`M?fYz^Bdjn~T8+bhvk$$%O6Mo-Zs93v)&<-6B7nEdrD=TfW`X>?Si zJLv)iwezz6eBDdb<$;PaXmRZI8mVyEk>p|v^a!0WzK8=VAqgz&ljupRsCD5f9{0yt zgCy5c^L*Efm<)jw#bnfDg#N;FXV(Q<9XtOE$y}vQ2#Xi^FswZ79)6|P^>%Pj#27N5 z5E~@Z>fT*MP_65nYPauvYf!XxVDFjbGg4(b_aJTc?Gcl`!g4ZldW*cn8WX<4v`y?A zMbhcAoj0!$Y3Z=e#TX+Pa~kb!OZF6r z_&BRCfU$zyMRzs%ya6R7p}%{zuwJf)zKx9mn<6iic{RbSSf2>-*6TinUH23x*KgOL z-Ug|Q;KGiV-xW*tdNKFU%;+pC-8ln8x-R56x+Nju>)8Hoiqq))8$)c+TW{I1Z}$Dz zvDCiM>>&!5%4t&zz89ma-e08dPuKlqdXUJ#`n*!;XdgQ;T9!C!nNmg#jx3w-@|U3g zfy0lRL~6kGJ+4gZti|uw#?4er`<|JTZ}?5&gWCx=Xmq)`#B(Va3Nb|2qfeM#Bab&? zd{LugnJvZ`y-c!Ofsb@mQrD|@Q&ovkT}DTMBxU|EM~slyKmk%fNjkz5635Zr?MI_t zA9M==pQOFY~ipz4}*RyFOgdYC;& z0$1BZEyND3Hv2CHL}6Q8-%{sv{IefvrlM7)G#BUH@<=(nL?>xsozmt`>Sx4G;AB)r z;n_LNV5p_jh5Z+79gdeIFw=P!n5Qg`ZdUBkT(3yo*TiZD`@eVrtE|FmURrXToX@(H^xR?5wB zcsp4yns-|73y59VP#?ZV;t z{JO<`W8zoxz(b4?<})w?g)UIa&o$pl1T3(3!#02;1x8Y+#95*4QUjFwwp{6Sv_Pwy z-}iG|@$D31xKigj-0T0gxBGuQ&Iq<0u9wPm%JO&Wzs4Q)fC=%_5SF^*^f@N7zvhWw zV`xEf8+Cbb83WE7cxDXIZn*^$U-14}>8D9SLF0b?c%bV+sk`%)9{7xX=P_f6d^#@2 z#qzapq)fAez2(PN;RNm%uH~&zb1wj)?_K%EI=rsW?RfR}IycfQEA|OK5&NND7T^_; zYXnX)i0u6%WXqMT{$o;E2=!c#G6i;t4-aRa_A@xj~o1s2sgV z`^~j52_HG(nx|;LG=$lrgtvQ*v^@521Q(vSz$e5Kf#)98=yDnEqdfUkygv;vLcXG- zqk5l+fAVoM-7dVRA$~|f(QyGw?3|p0axu3NMtGBVZekf4`&&~NTS%)l5Q_0eFbWsM zm?8-jp6t!>(d>!TKrjNCeBU1TQ304q*;YEGDJS2|#~B&W$$)4Sfsb8d?J-Jqs8G0; ztg;N~O%sny~+vRETK|0*eUyuARZvdBaK{lg;+FL32Cl10Z40nc%>fk|M` z_T6^WWy|7`obOxiYTc5+s*4qSLJ&o|=<^HSqX3LhOTCSm;5jl+k#`ZCW{>n8SGGH4 znqVqfc)@JXrvOKHuiAVBMKq<=U8}{VI3BzJhIafOcT>Sfz8w_0on7?3I?ZRazvTTP zAj;rqr~gfMOSve(Ah(J--7SD0S0BDL_C&D0&s%x#0*Kxko7lqG`=LfqN?tx(m#?qD z5-f#7`g|5|SY~Cv(x3M6sVWy}bIi}NeF~mHmt%#BJ1_ol?KLu(tQB2=jZ*+PFL_A_ zgtUCOxR1^fWp_5O+V#=96OPYgkvb<)fo}0F(~s^(SK^GsxUCq`pv9m;ENFhBW!|Au zL*#9hr|4RjB{1WBCB6`CTU0_*sdalk!n0SrMp<;BulNvCM6CrFyLE3%sXX7%%Nl5G z5rh{wz1Y{l4_$zv3IOd_JcaCN)Z#vGGTrbJbsk)r9;Hm9Q{Huun<6v@d134}6*E=qQH$pMkQKL9%5 z)vraVTDRjynU27y&R^63BHhtI(OT1CX@L$sLTgLZqcSZ@{(d2S*<&Lnz?A_(%1DUQp0 zH5GVcdGRwwA>?#kvY&``B^ z26!|d(MigRb!yQ|lqsxTUZq7=O_ZVXAo+eV_fZB0!$S{GR#1V`TBzj41%=cDo7NueXl1hyyI#W01s zy-o!eVB6Q`D#;BxoemJ(rC2Tof88_W;3(#6yv966E=i{`*LO+`HW@d$$WEtY(EvtJ ztJ`g^9sMw@+i^8I82W21wXV?Wx;$u}DRjOJyD7yZWB@4uoB(KG07>IyU}@}O9F8H=le<7V1|BK#?E3YB+IFv%b(tc&0Xo+6cx+>t82DAMSZ zLwmi5FD$c4eGVXKk`@!XMtN=kpuKJp9Jvicg?4XA8TI^JHYyzz=^)Ylc2uSd`%#hZ zqAM;`^f{>JxO$Fyi|8t9D0DClC_PtSPgLv~cmvXUrZO;kT6>B#Uy;9a=~RS}CI)tz+{78C@o28Q*LWTR2`6bt&;dNqbaNpDNG@ zc~a!0`Tjhfh=3`MxMymcQbA9#FnV-sfS{t%9fdYmV<5ZgKGxQ|Di;!# zkD4?FoqLR6Dwq>ukF+Z8mrphC~U<#Hf)!ldeF#vh?(Y!j= zJPcsAMv4>CaknN zaX|(qd)=Aq;4)L2w5oLa+;`wLvSaM>U^@ENT+}Z^E*jy?UsbEH*$U>izgB( zVG{sGs!BKR)QfcImMz~I8(_N0bB-nVCo{Ekn-O|3Q)e zq!vIBqrI`C1u7k>I8e8W9-(xy{9|rqy|Y@~5)lQH*IuO3EyNh*sd^#354U6sQxhkCK9@R$xJVpSWH(c}$UdSvfF3QHHQP`$JL{Nvp$_R`gzHsV(S_DQh&gfK^srH#tCtNPa+7kkzDAiqlQ^pyw?~(->`fmar zCG>5w$H@CX6kDKlcLqeQw@5k-VSpN)idkV0W5?5_NQ^TQ&24l8q73diLN^Xdbr{UP z)kt=W6hOpz7y(ff?ox2n|6M~$mw!6X^tlL>;4vZ@N-1{1d*rvV(0vUwx{|Y~Y>(?| zW>%L*FF(o)Cw=?g)D%hn4_o*ZoXJI^78BN>x11^CzA6SwewM#E_#J@ zzCCd{Y3n7j4-TMbpz0_TUZ93PT)XcTTNK^Luu6e00;C9tf_I2Ey!+k{hDlww#o~%o z%6qTg2Y?6xmvNrn8Gs^Gpl{2f0E2=fPv#1$*oAkxg}g;iBr%*Q=PY7&*Czl*eT6@u z;6jKkqLEPtiSEIf{`#NI_1ZA6(x~3xz^DdvfOpKn4)YL+CvjaCq`&2Y3;<7P1XXY$ zmJ2jGQs}f3jtuLEOGFm}t?qQ+a6iwW2nVqBt;Z-PcFi69m*p`MF?FYgGKX?)jzv=I z7%)xH)aEJDvb>gfKBwEHn0)mlWl@C{?|e-ID6;-r^7&f1E=7RjQau_3Kk{1KK}_rn zMu}t|UzVIB$2E<*D#0g@NlH_p)ydKz`yLp*{bxUMegDb1|MG_8Di?9Tu<@MH(V=8sGloC>vs#Jr|dG@5FEdr`Rn<7ZhQtYj@_EeWO_Dwp0{403CUloT=00f$N-CGFYA96#%CPL*uj% zNPg#5+3zi%-o!s+SyVR`ac__HAt}f(magP75~)<`2$(YHDfBl&M|3F;VL+ zZ|rV_eZvPrXVESHn()!#gW7k=NK6$J?V9%pAFF<}JDqFqOP=b82uDcVkj(X39+|Lz z)N4c_6vYUkOH9|5UCXR{o*+yS%@P_nh)WD zQ|K-k0J`LAblp4U8UTtegm(bEXyz<>;$EUB{=N_t*~)PJ=ZXXAng2!zXoXZaK#@`u zeAEqjBkuR_J@ZLydICPi7cmC~08-9Zv}tN}TfPm{i7ggBs7C_X$S7S-tWnjD$YGdn zgw8+i&FOR6KA-mY(m|0#P_*vH@K%3)y#Nz*5;P7e<}g~bV`X6lF%MAkyhZ4cR6yt0 zIwhSHP?Wd%eK7aQ>RO!|MYkhQQ3gfHV}z`OwZe`T=cRy_*x6e3Kkdl)$hh_aPf{KM z*G{5$3^OPa2Q^Novpg>joT_@jJX)m45eT&^bLt(Ml$<)1B(t6G?LYpBuYL1>_?usU z^3E52?Zs^Lv#&tW=gVG9SAPz_{U7}H-}rC-^!I+^=lf4Lyd(a8SxTwoR5!8rlj?Hf z@7*YPKSxwYbRZvuKv<3-2?GaNfMjCJlTnddpHi{$q)gKORC z*WXGxe1U`1m|qM&N~L?}DOaF2$HcD7jOuhZxneBlRT@i0qk~5XUL^JUyk#Dys_W|A zOKeY_#}{$iI2BeEu*|qYMzQbgYjR%DWtUyR*7C0N=f^&FV6^BlvQF<}?xHSujM9?h zjQ!f<3luH+$}X(vSTGbGhl6A=6t{IHj;KOm;kaWz-VOU`$VJtU$vsBun%yy(Zp0I1 z+m)bFm-GY9lsPfaQU1_<9`QrWV}yW2Ri^WMQcu#7*doy4^zS{qM%(yj&tx`9t3w3` zfTSSlo>hR(nlo;3%x~c8bEr5`v7)RBF3e2=RKtrNN>1*IM&d$WQ9pEUosMR`(^up^ z$~8Z4qg$`}D42>Z;JTQ|D2Ofq6zPc7IR~F8_tXFq)?-;KZ{{p&RC@P)S?Lj5hIt^< zjrI$9iV$0LC>DeC40&kqZaSAjy-WwTbK0z*FLPfQP0z&^D6&8b9lb=)Q<*<)0mjGu zItVOij>99Tl=#T#k&lv+N@A3|RQ^JsGws-uxJD5L(&gA;iC!SA(h=Wa=rc`@Q%(fg z?qh{I?>TuV%{yICs7qOZ!H%JwDnCY+5bg`CdJNBKQXe1t&PMkACr`dgpp!jB*_#xA z&qx;II!01;E~DJC9kX+!mCp}A^oPImv%jW*=*6j@l2`V*HpGw}9i01>KltZ={r~-^ z-}tGYFYlAMr_sO1tX$}xqmg@gBmny?1Ol%pcie4is)R~};#eq_d4*!7yt;g7qLVphTxWQ|7 z*1*B04Vvjd*_O3Oo8GQ~n!U-+zYRtoO+@mBvFG&{VcXKfnnp9sZc?^+oSV(t%KK z|KI4(@x~SVgJED51E^R09NS`o3refolPtQR@78vSDbjJ>yCKHtnk9X`>!MM2I5-@p zm|Z_ARJvbBY3Q?IFdI`S({Ubx3lBXeNojVT%g9E; zMQL&XKsUt%87RrE)H-SM8;z5U$6XO?@ct)35C-p=;6Qgv9#6ze9d~uVcieP>L-UL@ zvHE98T;sOV2QPi`&wC!DPsC%?E?d^!R#Tnm)zZ~*;IRsXylvfcALcqb|Z=}_)x>HSdgE3i+0N)0F=OcmFxLCmZSBqQd?OM=f!+X z+2lO!t%ELWzW&JWI(j%MKIOu)u@P1)gOpzE4WPem3!s54?@LB z1Nc#J^sp-#xO@A;1&cF+r|6v?Fsc%r6q#;}ZYhJV{|7<~h$}*az|7woWC}%|hDxW6 zhL5g+j)1^b03wy>jur;?qeM3V4n0O#0dDxdm(^g}O}n4Lez})TcPl;j29ib!M(XN@ zG-h&*YDoHSo%Us?(RKcTn~UA63E% z&b|wsL+#XrB(0c_qwf+%+WEvZF>61C+Fbwl=)2o*5D>kJA$n!45g`5Hzxvrf_`j*5cGU zslDs)7$pomopwN!2csM)ovu?WZ~zO(P@$Z|dT<71Daf$tgJK$QbYSsDXd~thkYHJa zVc!-wE(fLpyhbVl6gs2GyLZ;TM$f`|b?`4Ffn_@guaUNY{S@;khxQchD1a1c>iSRr z_wEIw(P64>)Wdwp9A|{%DV;8u#v1ux=!1LKZol0h`)%|E?nwqiuzQ@@^FD?fDEqc- zK#Bd6%=-6%T~(^PY5)laRb9nIu1+VO$B3qMxn1`XNnzcvABD1D=V(5o#&-P~8xRr& zN2)}JxFT%0<Z?Zu;&KDA_e9HvpFjt+^%c>V&EK9BZ^+<5UCwOFH*=o)MT$rf`LVLju3mML>o z$M-i#*QG{Dt|^1#jpaQo$#UcJ5J(^hjlW^iVl(b=bi z#n>XBYJ8DM$z9~eJVo>rWs!w#DXMh+JR>8w_e$O(0HfP|70bX&(C0!PSDlB~2mtAA zDWC}DAMhG3NuAKu<>+D~qnzgpo#j6g14J;b)SG7#msNo-S;Iip9tAE^Vu=p622~EdUPSFMRRO|BLgN_l#g{V7?J%kfNd( z-^m>Rv+$mFOGHH^=TDk6n_?~`Q95hvN!g&pq>A}-p#_)wPC4Onoe(yAq2V?1!42JX zQtFu~10I#>FhB!sZv8Wq`@l z=yEbtSE!@4$zWB=yD!T5yLvV^W!9ETC|Xn0wZlvpC}aMNF# zrQA?oH*PPmf#~BdOnsjQ2+_4ldfiT6Zb$56%*n-kBm*ibTg%?SYwj(&X1RAuugg7<-jAkXaxY2aQX3NHW% zDJXJU-N0#dS&Gi{7hQ07G`&Qp-bsdp9_2|%@G6S{2@L^35w<-GqZ=AaBu1ZG3W~PE zv9?N*zQe6lM)kz=7VTSpqYR2Rz0Gqe?sVXM@=aHt6K_ZltpUxTXruNRso(-pl7gac z0Td+%MY%VyE*TtYo6ko7s4Fy+$T`6-$Hhy;QP`8URC|QH0PZ~pO-rhhzA9BlJ0b2d z;yX+akkfON9v3=V%fuN}_7|Y+q{I`!GL_AHcIwd~@R0zT+^l?QTt!m$6rr;jJwy>y z>2Dl5n|buzEr6nXcfa~m_wM}oKYay?UfBn=*<|(SAKd%Wul?DbpZdAtk<9Y%<=uQ4 zC>o6deNI>Sdajz3{qsBQ6x6I)G6|CP{4VJ^S`8|YeqMqit=oc#3WXLVWB2$-is3~bchq?i^IoYJU8D%q1S*~Wb#{!H z{1qOgfuthL@Z9QddXQL6ABxxM8>LPcso4U_mFv(xfP$^GxtD|1B&2X8X_f`JSUAPE~AS+W``6Pw(729rhk#)zuIS9m0#U-EG@{(&_FP5JC>4>vpKKQ*3_I301kG+&JZ}*;-eA!#$aVX<#(ta|_D9Mbw`Wi^mTEeV zVH;zqmFc9@Kc&^BWTFgWPEtMv0HwBjdear1J9>O1#rPujqbmLFc5gU9!U&QABC6PM+E=od=CwpOT=k&Pp<+Jg zqgWita!-GaioAl);3!CS=Mk-^C|2%kEB>w?)C$As+`bhsgU~|14k~mT-uOanfkCtL z0F-El(oj&`dvxd?A_5?KkJMA-!;Sz%^b%2xPAvohQ+@7;-XN}bK7F>>=u=kvsBrhI z5m@h(P_o;1v`z=Wj*BvoI)^eG6;2*cq+T9L8Q7==8jX$`uLc@hZ&0_=D_SLSr^FN$ zFw=$Jo|{V)t1?~gR7&wGX`p%d{@lYfZEN$$EehAwmLt8%*TYNnt>67?zx?do%fH&q z2XDwLdu9I?hIi+1|J;B6N5A(ozw+$6+n00hEX$jfDoPy91|Gzyb|FSibJI!kv4fP~ zX?`0OrL^Yi{cAR(!Ft554JqtD8Cg<+pB$9>M>GtCIS@c0FVxRz-|GQc)-yar_d=# z3T1Mr?GyV`dL7JTjg(f`6)GLU(d&BXf#nf|g+>~&Mfi*7Azl7~GdoZ#vi(P#5h!(6 zNT+kg$vwD@0FEM^-v?&*wrzepoa5@kjARg$`#H;!-8(>9W=g5c^tv8EfgQp=*RCaY zg;$9EG>rqlVcT~C$bsFG!v4ud?-4+dgCq46Ns;kp|1$%ru`I;1(<3wv`+$=7miJ}H z4qdPnWn)x|#w&?4tZt?{JOvi}%~YOa^J(4M5@VFo=RLveC*U#aDrLHYQd5pUB4DbO z=t{=kdg|yXkxDmCQiC17WDy|6GUWtIZS3BqaVkLRD-MpLRO8qZf#r2Rf}kJKEjtH3 zGPr3q_)jF~F;c`N<_eAmAOs2>q1qnXH6k|t3DZBA`3oM2CK zKBH|h2~BL)b*RwpnF}0%M}-zHd-?*X(Y#1nF(RQWwyR>zWlIo8OUi3}(P;xnIkw1+UZG3{X}m^E=9(f< zirjt7ADg!*no{SEy9H&ssCquIB|+~jCr#7rz-!Vg zm47;YA3c4AGr{N@q9}gzUGqM@R;L#EvpWLObV7fr9s(l&xm=ARD{8| zKz>~lygoNk261r2Gz|DhmF#eT2bP8bjfB>Bn0Lz!B(n8k3Zy0H;ne1#cX@K@f2uXu^&jxgRfqU}#a9&UQ?h zYiFr)78zQfAN$yEyd;(CQjJNxztv>jt<~z5UG6v)b&i_^FL9eJMdx|BP2Ad+r7h$x zYUgQ5BKgyD7tP%@8xjDkKvciE`hM5RjlEt2BP!FuTLhkLo76R1=Ghi^GwE_w!q)8) zQ-qi!R6MzY5(7j-k1blr(k4!i>rv6AQ^qM~u#u|Oz`g#!JVrXoel#t6j66vmjEVAK7?ImzU{RQ6 z(S=|!H-k2C`!;>P?}G{60HQ(E*dphaXWCp0){XSJ)^L|Y-*W{hVocJ>DlGLM=JDGMNWxuHE72`BU5M79|9{E20^cz3(i$@1rzbvop zm3>4uT6_NYul~e8|1W$=3MDSY9kJI^#lV(4bueM8|tOc8dc%-;*Jy__M1`p6l zl?T=@xeIYaOKvc4mntqvXa`+6;!l!e|TeK@N^|7YshWQPFDhqc5R=yxYK?Q?hyh|Qb7jkvZz)DKpsoP#IE!V zL5P8Z3!30n8XHSiuDj{;G8GbPlcBoDi*{MWs!v?wk=tAAx|+%0t%hR7&%B%;RS#p zr_$*tk(eu8UF@*Ff_(RZNp!2|!rVupdNhr*2<X#>#T>KCtujS_st*s<>_?vbMnew*+*=H;q*6u@Xb5_$My5yJne(|BbwD9c`RS3JMrBj`jO)GjkG$hU-h|@ETB@3!Gy9*{2FPu z?XduOjy)l4r1@sB#JD7^42`a)|ukKP3vUy9H}5fzr69h03-q; zSOuEg;yQ>hK&_4h14?*T)VeKy#{1SD(PISLT+-3aV8>NfL9Gj8gasQ#AqLNBWUIT% zVMJrH*Yj)(`v1P$&#MMQ{|{7UVeei{c|PwK`UITU_V|jkO73?WZv={+PS@tLcQ+Yr zf3GI6Y+voP4+E9D%y1ER99^?qM(p#L7;i~aLNH|8EFa|h5^y9wkMITb#iAg?Znzd@ z_cU$kPV<}G3hKiOhQ1NXbG`5LmY95ZR;n9I&TaGy-Q2)W=aSvgyqp~)oWJcWi!Hw= zNb0=roKndZx*P<3-X*&~5%Gmu1~5s9GfF;autQiLH{eEN zg}6-$D7w*rrtz|aH!sbN@FxWn!SF%pN40CpC_7@){k}4UOP5)hMQTt419k3NJQsx* zTy#NQ%U2B)U5&h4M@idW!EECg+didj7cc~)LLEdF-o89AFA+eICvnRapulzBfFjrf z8(mV@J4TWoRvvj(zQMvHY{!UI4}_pbXB+#98=j`V=6=^lwx}=%%Q%UZ{<-@3zveRC zkT^vWSAZfmGRocd+z|us*ei8G-0>BHW3@~_$_L5S4N@KaZvjCCS{*>qq0730Qo+&0 zWi&c9f+C%_DL~Otpv)DuxoEzR=PWvQKx13%-g2j4O{y%eYaxFTMrAcWQIO<5k=g^K zouA{zL*#+kxwGS)DeH4t=P0>%C^OquOW?Nna=wpAq3lpXTg4M5CC)1++#}u7Kc#9Osj^yz>KlsMpov;4GSD@&XeOxx5t^DlXAN=^OXZN-* z=U5}e5Uq>?AQ}}pdD2VyH*rcRfzu>6lr?x#0OfIck*=Cr8sCY3S7BHE?oY}fh{g`B zmN-GJFEW^Ndf#gC4rgJNijya`d)n(4jW_Z-s1klT4rQEzH$g4#gFzh7p^UfEeSsDAM-G z6;T&-8qSn>Sqd^JXWTtU=lma~(}lc#86`a~bh#(5HJ$GB25!LIz#rOWBzi>>Sftdz zvZmU&X!}J_gn>`c=idl@0`?CE-fuuIBi!YcVP`~?d!2$JwLQ_kMob%`U6#AnXF*p6 z{Si8hNSI*=0S1Qwimr(Pp}V&S;tR^KS$B|>Jw+6{k`l^bW-&#(;WiL+q=H#Dy3%(O zDS3^AArfUD1w}5nwM>PMps0;G!a7jm0BB+!%`qu<?FynJIjTHYxJq_y55 zY@^qR`*Pcj_QatP3L^)VJogPNPoAodLhO`N?(ABeQ5?0neZ7oqz>vI*UL%V)GDBPu zgAuQ~YniU+n8X#_U5ztB**&MvZQHi(zQO{1Zg0Ds580|wfuT~POgAdLODzz*Z~S7l zOZ6rUH31x9vP(GJ%vm&e$AHjzk1awFDMp_VUo=1tBM&ZB z!}P4=m?CY)5KJM~NCXS1}egpPw)5=5n^Fn-9lrQ>o<8UXG8 zX_Ccb>wu)S6!X1mKPCz+bl&0lp4NAWrY9C0Zk-_SP&Hm6A4*mOz`>R;V^bAcW<@;BPsuV>#O^)3Et-8l49-D{F zF@+Fckh)xJDa06Ng-S_b@C06+lq)fHFnL|I=IH?#wXaPynCoBE9T`uWzx;I84Vzt&4V3 z*V(m?Jq-=KKT)O|^EYF^ICM)r`D>Kgb_s?Q^B9%=?5~s$NBtaoi(sFa$EZkh(@R9H z^}>H-`KYHJe=skbYEXpvvCq8K6~GgYR_Jk3Bk~kLQQj6HIp)V*0ZB3IF(!d;%JsYA z^4tvM+m*_8cI_DYv0gXnZd+00CUqd>8n#)5fcd*Va>DG;I`2V?+u{|cBR9x)Yu+M&q6g+?S1O%Xqy$9SE|v-!JZ6e6WOJEr$ciGi z=<#co!MjqT3nOB>{%L)U7+C{28W0rqqif)BD-OyT^=!gx0X6P&07_h^xs9aD$@`GF zPX`10e{^I}Bq#Wzcj&-9MOknFaYj*=I~sCnIDIaIoB)I>iifu9DaRV=dr0u(qoFFs z5Jy>E?iOH)sE0~(1gXqdq=F3Mi5cCClyeqI=~$@+4^fUQa?n(Oj8yB3*;t8u`(MFBDHrFwrT(7b}Za3-lFPHU>B30)=S(>fr{*S-&gWvby&#wO3E7iGI z_DLDuy&jnVQwV-kVhM}`vN$-r$2CxzHUkN;y#ItA)l|hT#au_U&3^mIq)<~2sP@== zyBsJv34lKMXY zBG|Ts7^6Mww_qgz5@>bk#8fJESBo;8PVX*;T*FhuJVx*w-SJp$3NRE(PPrH4kwm`? zlHJ9Ub?dPHmJ4f10ZK6R_hJ&)-`Xv)WLSUWmVqk(9+r#Z3vEnM6<;*&3JB^XOLtqb z&SH$DQKl;_tKwiVr$O6?uDwc;LPvGz&owTRBp@M*XRhII#?1pE&!k2Yy={&d&9ieH^wK=2g2as43b=h4tA91Q_cb}$Aw0( z=ZQr7aPB-B8&sZRtWh+^73uz~PNQ3ru$7?6l1EA|1KD03@jh{}1&u>U3WStQ?b6z- zuC7H1@R<+PP^Oy{At=sGeOvBm1y50X{gUH~T$I7f4E_C>N&3$HH-F^O{qO&^{&HTD zWaO2-vX9YHw}1YPZ~yHtUis!9E(kIhovv%d86=lmk*<6W8nYMTdO{B;?w=L!!uQu6 zSGP4ZxUTXng?&AFtO6IO(Vh7BPkPWhmUtK+? zg_x*KQ$F2t!3BDavIl8js%Mh-cR_}&XWq{B;Ar#NT!9e)652#k>YflFxoFYj*UIV7 zJucV7m?N~k5B)r7o8d81%6mWm!sCK@Efc#t%{=-Q(ALS@%VniB|GUF&~$id=!M1J({$ zJX`&eEI#U8Pnxc2CjRg&4+G2Hu`qY0w{LZh4Es zdH|lcs=lmSSuPAKsy^3kVodhh3Y;z4du{uC*e3#vidSec;7czmfF=fk6*ar|n&XeC zFI23AQcbgazxRuMZYHUvz5UqZ_j8=WS>4GQmEH7%N?PW28&Kq<8n@kZ6onVA#T$jk z=uUATj|hyU$r^pN1TtPFKza|`7AZ+xLmF#(Z6L>qfJ!w7MBp928#u@qRl0c5MFpE+{DC`bLEgmRzAO zuGV8Y7&6L4r-Oib#B;+Ew!&0k!Ig^GKx(dwLr(zcqllUVBPVVR?^0u+cqrB5$fReL z?r}r~ItNbyETNpvdXA3@46W76>?mOJRIKx|9_e$(sU&ce5?_>)Jv!hq4^g>(RgnV- zI$@_pawmv%yrd)DUAcenK;<1K#XDrN3)X=vqvxKi(u2)M(&Qi-m67tPE7XN2VWaJn z;xXz$5n_t&|M}H_BHiE>D0*d|9s@YK{O$kbi{JmJ-?UF7h$|?ybU{h6t7vnipJE-o zrV3tkaG=Y0i?qCqu_i@HuC`7ERVF8KP2E`saDw-;(P?(dE2ayKS>Y}=2Z;a@)VYVdT~VZS<>EWuPh>tLxm9u+ajI%{5~y)wKgZZ9aW_*@vjaG~X)1IY zN0bNkyAnF${a)RU{bE13?sAm=H1Dr$`@D-T&^{3=9V~i;YB2>^st_>C*3#Xyo1v35 z?#i~Yzc{H`9!sItjb(WpQOrurZ4x?n?Td4xnRl+L@>LxK?TSt1PX^-Z3-(pUKL<+d z-suHp?wX4)Xm)3jtjwaLCX=M!yn2}tXLPsD7_G5Jd$v7#jkcHkQFwt|VCFGGrK|4o z%bw*L3-^sicWr2m&}?8MN(wA4hPo8U=$!y8`rk2&Er`+S9-X)SFhym}fh`3^q|P;x zq>w6A8r``ZW@Pk&AnI}X>^wJAnI^X%lC$nttFs}t2&SH;%`$?ijiKkMAirFtXG088 zzRy6P%URP;+mTRG*&bdNfQTXs1Vxx0RrxlOQtOVHz!3Kt@_J;Rz1uMZk@5=j5N37|+lJ8pShs5Lo4%np@yuuiORmKC#_JVqyzx>lz4X!5}FRq?(ZV~)gt4$lFw zlY-YL2b_D^S*XJ(+iji0q;W;1GnqlrcfS4QUws9NUfHM4dhg}q-i!I2Z~xGnl_yjO z15}uSB`sDiCx&%*QC3@=cw%IUae2Ot-|3_lW6;5n7@z0onKW9#WpKo76hM=vH1a_Y z4yr^@q%lT*yy@z|<+^=9hA~89A`CPDB8`CzikmquNlKl-9BoE1PK9dh_2{|_GGIzE z2KC0Tm%*pgOs1_dM#<=Ou+y>tdLlb|Benq>R`-KZKsG_7ZJ+8rW;rRI=hIU<9Y^Sb z!J|YkQOwH+j}bu8!F-@iqmm{<{4JZyr;N*md0rz@*mELvH>Jg0D9evPEAxi@k+%pm6h*-%9i-j1eb~>~+xBir|Ich_KuJ@L+_e}Z z#vG~Lm8?Ri9i3~YOczBNXy`W`vFshoaa7Ww7-OeIEtGdug*DQ)?B@8B`73n_dWs6MhJtrC)4uK2ypRtB;%)#rhjA`@Ep z^u`qR_1pb4nD3ujnf_5<$sP3b2WYHLjZT!f4}K{|BkbeGzZ@VRNH?FSc^afsX+G~= zsa}E3ZG2znS*Z@-Y4u|jT-ooGhH0*4vDctm962oKF7vT$++JTFx0SQbyFq`obB!3* z%3ZhhGlPEJ+@(hSU}+9EJvw5wLtx&2`h$TVy?=Q9p8d7>wBIm0S$RW`IUj7!yR`Y@ z#qf>(X@0SPRG;2=V9>pN>B`;zF<#}PUc}Epy@I_ z&&!PrB!OO6?WvD^<-70d>yk3a64z0>yUk-nDjk3iVQ@ar?e@P2E}YyU}B$o_H~D59;JKbQqsUCUY1NJ?(>GfhNt_DBX>AfXQApK2^#* ztjaMI<69jV!E?0l%aHJ{pQ zS`pXl=m?6iPx>zzf=HUvDEuz47%u#}Ea_)Sk^RngS+ch%Tcp)pF`=hDZrk?Bp6yc& z@`?eaEWY5TtQpvQc#0reh1erZuR9=88XW+s1EF1ciS5`%400o;2%zX;WC6u+is&5* z@#i_NNKBnhfl{) zmYC=@CLp_gdohpEwRp&Do(cM{Dbq2|i1a#2c0-|#^to;6vKrksHtrSoHB{*!z<~8R z=BQuy;GV@7-S-h6ToXrvPBqWsT^~_m?MYyya-UL?$D!gyWenGS7GCHp=JPJR@Or=Q z-Sb`c{47xE8q@qnVq9xg>v?MP+K7mCra2I&APLq4zmn%oP&D`aMjBTH$?o2R^l)P! zr*Zs)a@?Gs$Uzbs!%e5pk!nItx{g4eE~AmeLt3tHY$3v+qnf;^K$T;@BFni^fRHxa z3}SYxKvDA>VU(34vBw@?#JdqcmgXzcyhH|&l-jnMG>iT8WKjBDl&IfI;^*83_3 znT5t~SeA!^(b|66mzz!d=hm<2W{CYtzTL{rmeqwT{kExH_t49r{EYYF=bp{Var9XI z`G?_px)u9vb>C@yo}s>L<=FYuD|VZB4)LC=a{gRqw(a2X!p774UwCsm+5Gb4`1JJ` zv*Ay6pQ3oP9vr@Xp$a0_X#M$O$FN)StmFDB$C1l-cL$5dnYYL3+o)&z zoh*9`Gp#NpepSWRz5(o>c6I!%6otC8Ps%w|&`3;>f#=5H?^DzJ zWgrQYJ6$bO7pQZ(cw_D?A1R<{$AFV6)rrN8(~Bf+tWj$OPW|+T_cL$iOX|T=6cGjlTxzZ& zaksjZc%Lk~knh6W_n^_8a&Q!F@RA>Q*?Q$u_vd)LZIE0AHRAa}%76%JL<@p*j5`X)SmrgM$4JkCn4+WlUb!A( z3&(4NzOgUYAB7gOe684&fyis2v(VnRa`C0!K5?&5jJ39ypQH&Jtz#7K!DEjYW1zqNeJ`)~Zc7t_(t$|r09L&MSW zub)2q=(oP_hwl8Yt~4N`n{9as0O7mHbu0X5y5uZF-%nAFPt^z<{5&fS_!wf>vMyeS z;uy+_eT!1SQ8hbpv>+fZ4J-w6=)vR>JyDftX~V*bx+QCkJTJX0rTx@mzaw z^%sBiqd)ol>AAo4Vz&B|p9YW8sZ%fh)tmp`fBUy(+Iu}^+SSQgVOe}(UVDzXO^jAo z>os&m`X2KXZ)kv5_Tuz^CwW_F_Z-#KK&aint}k@i2TvA&kko*K%b?NedRL`8mgPp_ z1$vii?@_0KhxBDq>6D%|YUwG>69FP&j7tkKh`$5R_-WKb`a|yotPB|vP&_yv| zbnenTCvabu?DZY(GZfF!yt!VDF`Ai|h_)xz7b){y5ngZ`Hp^-rV}#BTLJBxfA%-LU z{Yu@&M6b(C`(QinHQFuf0ha#6UDWUt(QBmkGT|*>Ut);r97bFp<+^YB{LOF}?3V}m z$0>(%yboYhw#kAJLjg(h$~*KP_OZtp#pJG>U-bTz-=~!pTv8^vSI8^u93SMz97}aT zayS=2Q7*fr{5XJ~8{ybDQiw0|XZe+`at&d2S6qzYVpn;MuCsu9iLUL~N2oHBem@Zu z0VJsc-8J_XDJY`Wf0qH0x}qW5-GidNnO*Cil016||8I@>UU&(aSd|u^ApIS0kOy{oB zqu|IB@b>Ui6gc zeN_M;n%9FfvA>mWVf#u~fK>)XLw{B?U>5TfX#!la>%j8V%X2--Vm+>3k2Ng6HLuga zQL&XOUL`ft`dYak?==HK?$uulykxj0fFiwCteY~X!>&F4+4C;fIP~Y^&*J-jP_)8VI}QZc_1APd-|lfm zlg3?3sr-?Hq8zX1plIaZmc4VS#yleeSu<>#G-{O-@eaCw|5LWhs9!wsD{M9Y(^-uK8fodZ5>3JCZ5^tWGuGoR{(3bD&deHNW9h zYAN+4sCLY62dk36Ht+bMw?{dymFjd`NgYGWKoX_9Vf&u9@2QuiZ1H_bzoAAl($k6a~s0`>5ltsMN{# zu(9uhiN+#Ht^8~NsDPpZpu9xYNB_LqC-MLaVojCAplz!?N6ns6?RdQE6_}l2oF@{6$Aan4EfOl_~70 z3~KsZFpVwpiu$Q<=g5|>TSBLMO{_r}1lk;oU}#fnsukmgvMjgL>0aikT9D_4;KG5^ z=cqs@OFSL!K3eKYa*zbt+?vzpa(vOc)5DIeQ^(Ot9nJKluF`sxg7RFX?q#gg(CmDb zJXPhUu)=o$jSewJ6DEXpl%p|4CsiLR+>sxDA+9LgvqdkPZ9J_4x}A{?Uc+|Kq!v{-zyqrNHH! zN)C>S7bA~IySoJUHk}4+KsQRJ!llYPl=}4@Ju?70{rahIkB+A3g=txLTo)AmWY~M6 zr+y3^H_p>TrTfg5JF_Go%Q~e?X?eVFy?~U^0@x34ZJJZSNZ^t~<*pML1a{?-3W7cxCANOjlVB7YYeY43^}M=9=6 z5iDW+p1AVkgvxe}C#jsnOq0G=9_8kIu#+2y*HaYpO19C&D~k<4@?GC~@ z8FSQ6H~Km&#=2G>si3HuRqMo(y{ZE1nIhjUK2WG230|Y8ohj7yUL&-llWPph7*O$knZcw5*b>HUS?L9#N zMHpFn@lKazy0wCRr;bUg=yX6uk7|IT^ZiH{Bt{1zfRv7-XI{xx`*^ZD%{Q@MKv9%N z4egM|6;Xsi0Z<5xWo%LF9ir&M#-S{TETj-y#70wrQ9qBIMLBi|zzFZVk5)1hJ6md{ z%}L7fM6rQ}B3(ibkmDNkQL!mHh9Xd^Ei5}I0`SrD-f77rpDwCkVhdfC*p5OB@q9(@ zyZ%sx>qkK$E70nqu!5FpgcaynLQI5q0Hai~q|$MR>Kx)GN{{~WeN&+8J^@gt`I$O1qSjn{P1|Q89)<&Qt=?^xo6>>(qsFfmm!mQjp5jJnF5a5_#xdo4KW|2 z+vUSL5X;EWObj|g&R61QkofC2%QCMLi zE-56bX1&$E*Q+eEAjDwbgHq|dUd`7YsB>#As0-ky97iM$s7AURV@{W?Q&rR6i?n{| z&)5grcn{0O81nrEL56G;WAJ$}CYZ;lwU+jW(MAj&AuR@|bZCFQ8CKI28okHp(IacC z#c6e<)WH-G_3b}^P}cAEd8pI9<9&n+eHn-^L|{Z!I_-COeDi{Bi>4SEZl_%KJ>!gm zBArs|Xbn0do$k8#u`(#~X%jZ z=)=pVNI#tTW&F~-KespFi09ks|5Oph%P+}iw0P}t*{=;B{=|Wi+g@J{ZHu|2Nu}G? z4o+WgFI>a677oc>MUTs6P40>rf+L?27%{#Gl^zvqSaB*S3fZ({T#;77GE@T}x80ysLepE4+-Wd*tx6iEO~ZlptGFHjR- zM4+TnuAUIE>|FnT06PRq8Y|Sq8WlCVfi>pz4CQR`QjLgO?v9`~XD5*s6q(YKucL>E zjb`7em>v%l46#!Z#TFu#$x3xnz#yf$4LqTDQ z3!(-?fBs9nCds#F50#k6L5>4*&{N`qV2hp>1v0Z#l^-gaSZs{5_s4+^fsmem7M_J) z7s1cUta=>z7`(R%BZ0m*YZ`zMZ=@4H5It_7*R>t#90%q5#&g8y(8M;ugY?ecn}7e~ zjzJonn*Gj?{(Haqx9uKt{G0=uCf|`v+IFrailqu&OzukWQU*adRQSG5!n4D7c;Y#c z*rs9o>S~?PmGMVVue1cvU8x@$i#e3^`j+G|im^trCJSC8wU`uEYG7mzqt1(UA$F)F z&h7$WLhhpsC@PTDnUIc)GA#8vd7KfqS9y(aFH8f$cq1fy4V_R9?zNz10pxglM=JT5 z_F8;25kLs}j9MWE#u}Xq08L|o`zb|}RKoim%WL$|8~Rf|07^s55iycZFO{4|$bIZnMk^GklK1-FsBhv&%cVUwFO z3NPsVH$vSM%Sl(o9Kq;0QV&x%4_(FBH|@$gF4Go2_2mg(yZ2P7<9SOi(a(3hQIb!Q zEvL~f&*WQP6bdOYA#1Bjr=>ewOzom7j;o|yd{7~_wgz60PMEc&@I2N zoo4z#mL*ACHC~|acugirq5zhGBYQWYZWl+lNxNIgGTh;rInbKM z7?cvJ|0n`^Col8#Nkg5J<=z&6 ziCKz0{N(}(ss!gb$Q-D!+|cJ0favuO6a>xUHmQM1d!A)Rkd$WSd$gxgfD*QK!>)Lg zq&$;&j|$41Mpsnr?D@vnA+-RKlxitm?L}It#U>UWX}_HmM!sJCG4_7{r~jAF_s{({jKz2QqXU9LPQC5}n=MaP#MC_a6Go{B#!u~85$2RhL;xV%z zim&s!W4<~sNum37E15#qEfs1YFv9M~;kPEGcYZQ2%VPJ2dJn=g>P-@_{=EKU!q@nY zsW`*>+$qVnK7%7yrUR83gHuchs}yIK?^Zj_dC;n@%;^^RY=q?{;Ak0;f)eW1{(@kt z8l<_O*-T%iQ!w;)Kk)a)nSQ-{jW+uh5(9VTPmJuadk>P?QtA z?iA{rh|6`$OF)D7{UF1A%dhvwOUhQ@NJ@+mEmQ1JW}F)KQt0=!-O$niK zxZ;UigH$(Tj4(#30Lh;#f-g}!QjzYV*OuIV$}8S?BOr=?dpGRM%2Vlcqy)fg^u)YG zTo=7cPN|ktTLT?sJ8)3MMn-{=q|AzgM`#dea?EQK)#sShRXt2Wo?8QL^%zO{D^%=Oy;E`002f;D6h#M8?)-av5UirkNvgdadPO$!_;XVP92$o(3yvlXd9-svk zI|ohh&UK{8RnOQ}>{d!VQ&!-^vt22`vQve)kKKC&MZ@pg{=;85bLHOs5F=It6&M8< ziucG(2QK2WSR9eid$ed>8>w=faO~KIBBEX=aXo*~RR;godqXrax*F`?IuJ?e*MKI7m0|>h4{WTm)3xX8c!cmGa-SrNq6%T3TV31T z+3x=!#IPrecF#v|L7yWiQe`?%%y#{L}oa@QRYdXjYCF2@nE12Q^!S*2()+!8=hq`d)1odjub1x4s|Wwp3) zBqnT?a-2+y3yCG;?=We5Xxa(0Yn{bWYw!6^r+$4(rAqI7d;6C@E>JXBnf})IzxjLr zt1rB9_giJ{G)w_@TEOGmQv7ckK;D8nLdvl~su(x5Wq=6%n*}=E%xG(s4I>^&Tvg2v zmw+NF&D8=4VgC%oe4Q>Q_adcyj$w#>YOl*mq%w_Q&+h}%T&B6Ed>xVkCS>{YOrsYs z`MV-P%z|D#14E2q5={`Sp0lZyKQ)~*&g;S#zw{izg|B-wQhCEAefBVb-d9_kS zNyHQ)`IoolZ!cBf5DcKHo7CTb{B$*zZ&Xw2DvNUah(#RPpvlQE zidMTI^)HKFr9hpFplHq2=;XKz4n<{74xX%|+*+!X>=YEO`#a&H498I&6rjk}=#DcT zy1c)KzKkgb#wuxUA2>U7$x_4mWbRy5vGWbJ$O1$P;};u z{b|zIXO{F8f(z+M^PTl=DX4UvbPIw*6ku2eilRCl4TGII6^FO~06AcgAm$jXk_(qT z&Pc5PkU^1KR-D_`|1&6p5fou1g%>d8J~{5lP4gJt^=Y#{ue&BirOx|N>OHzGi|Tc^ zF|e8x1i^l|@2>$IA&1e$TLlzd+(~5soJw?VH*b}B^%(WbH@rW2rv)@)k(b36slCPW z-oMpt-vi7@*~RrYfm&5*@fKjas2jG$xP;C8h@$ljU z=K7Rfd&T{is<@%(5(JQm@kjY;%mb7PP-;QYxIs>1-!C3(ER7}e5^+62&(5G6>ta`L zi~F|bL4CIgf?(JEIM@9+cbK~F$lmTtS<=OF(qB9#Gj9zo+eFu||8<#yka` zE~?R8x#!e1514!~FWXSz!CUmeE5W=TaX^>My`J3Fj^uExa52J!KO~Z4#f!REE6PX3 zTNF)~of3cvz!Cm{l}MjMBY@E{Pz~_6dB#TF(la|2VuTL1yy4t;Pm%bb+@^^yP==e{ zq66Qi<^TzeTLwpB$J=l~L;(f`P%h8C?u}`r(P>h_(_Qu$k*cxo2?i6`{JwJBMDlo}lx4ZIAc1!ZO~M+T*YxLq@{>E$>F8sLD_ULO|N4*q^zMJQ zdFI(cq4HI>G4(}E|QsS8LaR)>)*(`k_=ciYjity?=TUUq$UaX`w;9GokKp9GQJC$zZwAZiknh(o7+Jw#K87tj7i25Mb2yGCiXb<<9KEgdmXZmgXeLMBc zkEsqKBqKlL$zb~x&q8c1Ee{+yrS6=2k5u*boK0WLZX+`^&F8&626Zk9Cg~vO1<5M2 zkHR*9q}e5-#;JTa#24<{c7P*zjFbs-Ihm-_y>Ov>Hfa@cx4CUwq!nF&C`9qC|ZN${$|3tI+)U=U&W;p5BZkJA_y9XbzRf1O<}$EW4rL$`Nl5K8UV6Q$(eDscM5&=?t22O;)sa* zbW21UQYc@<)IRI>?*xn%!HHy7T@g@Nl>g&HFJP!^9%wvlS#3YAqGktAUw~5m4Il}mF-u{ewN6!%ZhY+;h2mmx)RQXIxCLsppv_f97dOIo|Waf%X5vi1iu(T zn9OgWPooD%9f9I`t5mU{2A2jN^FTXZgF>MblkBz=_|(A>g%&ske-2;>a;5ucl7b{E z(skazKtN$5DEYusgmwq#*$AC?G)mQo^?{A%F&70e5MqofdG3(Fm9a$78Ljq*jeScXCp9gmiwD z%cVm!Jt^@(+KD;IhbhlXFwz^&b7IdE62J<09N;8h*0`lg)hgxD>1<&h@eVOZ(bR*_ z_1x2XZ9M(EU-~Qm@>i|@JpEuhqmw<1ifL4po3eku*l=ZP7(FRV zfP)=8{1&s;+Y{=*S*`3=&Ko4OXC~4>s#-oB0FI*%^)$@_SQ-v&ACZvTr~tGG&dOhD z*(nLm^IObO0f!2VqbF$?0Gxxa826Mx(yZiWiq8}vC$3YE5`a_y-zM)Jaxyu%4S4qI zPyUOqZ=QX6Q$7YeJ~;DB$A=fUj8Z8nzZ@$LkR<0M@^4W}zOOh?p>cn{ir*YPJ-#4z ze_cNA$oH#rDzTnO<{@$r1i+IAQdVu7o<;>3iVB_$x|H7m9;9r+d&D}B-XlySb?=-i#k7g>X#;WZPt-Wr{i!3 zK5(~RsdHy$9iGb;_r(U!*LQ{#I*2QXwTXzm&F^!d)1gU4E~B%3Sxh4+Vk!*|Smr@Z zQ0aO=^sWmqP8ah@eo%@o5D|w@sQGlsc{hINJ67K&u02 z+HH<=!$T+3GvxU$6%2{R6TRhA)(|=!hd=(lF%M@~+DNM=yHHhfdn#4vI9VUrF0Jdv zP5-`jRJ7X`Ed}RC=^Es%X_?wx?Eimu?L$rQS`;m$i-4#GMbgC|Ap)ofsCc{rzQ(D% z6yt!DIlbxIr2$OiB(W1_+shSOnQ#}F56QXmOL~jz;~Nx!Qe~;E+rf5T_@Hcus~lfs zo5#p=8{wP2!w=l;PX5P_0dS<8TE8#S>Kfa|KYPBg#}zhGV|k29<)zar1t4iYg8M;0 zp|9-VGDik%{9W|CMX>KC%bJ}YCYAcsEZV$?Cawrlp*RQ6Ge@ok#1}b*j@P53U1uc+ zmx4k^I-NEa&a>WkTHIi3kQM1Ls>Y;w`MlT%EzYJjN~G3Nh0YY|B*ziu#H~^{eq4vf z?f{(f)5S{!iSDDmu}u9GBarG8I;s`vbn5GD6w~92Oqn5b=~G*adA<&jI+O^VgkuLp zYoTmf4WJM7x08@u(GiYzj!uFCoF{n|35s+Ms-l!G;}Y7qA>Aj+`-XsS9Z@E|M+`7c zW2Y-C&SkJ;<& zMRu&!yRZ`JUG|(Hy`Fpey{*kkCpQC%Ks8JLEC2>FaLTl|Qhqk8@e+Z-kX|6C$PFdZ z>B4nO%97f4j+8w}`G7M!&TuAGV%H3~W&;N&0q|7Um5P^%_o84c6*`|3@RNa5@OEXJ zm8m|ZVF55W)@&Ftr0+){;m@1TxH1Pn`rEA#e1&^hDWFqj!B^x5zWRH=zIo=+ugFJi z-F)!IU);U=i&FJe)SXxc31Ab7Dfr+)^|6k8Ktg;FB*XzuM*{$?KvTa<^qLQyj8>Py zlO1!V=}nFDw9EC3f*e(>>#F3hQ*8@7qt&58VY+}-15<4*CDv!}(VBltfjYPD(=5W^ zhO$wCP6wPqS_Bwki^R)dunM9J*bWLE>hQ#U7%N(Siky}K7S&5RumH@2 z;RUqyX!F7Tpk%iifYJj?&!PE@Li-O1ZzwRJe*kcVlpgdL#k3z7NFg|)M+nQ1@7BJ_ zUMS1_i{ddy?B~$#dLPN@bo2~qH|d)H_2*!>36kBK7xKEjGq-QQB$rWC4Bj!xZi+7G z{0)mef>#Jibho^}cZ+?+TM$o3{d&8eTVtEPm9NA4p|@h)JC-`^BgMM86w9C8&9I>T z;s)J}TPHx3JG9W?Bo)sR``}&B0jSGYS5qlRFYo`$XV5+nFp4)BV~Y47m&t3_6uSnW zh)7hSOZxMmeCHmeF6=iBuDx+rb0#r;D}WpVBr9vvn@fJ6U+~I#EVaidE79fKvB|A2 z9GB-fJo`r`#m$Ntf(xobhsxW%L@Kx-Hh;z?yPrKV?+^@?|9+@6NTt(! z58ilS9+bJu8&e1?fYor|jS~&x3mn-~OyoRqG;q(`N@~LzxlO$5@Dx2S;E0Vn zV}v+b8RLuA!^ouxGML9my+<)uM;l1gPQ^M1P--$-iFFb*S)!jmtH-T6eeT3onzu-w zR;ICaq0^&aiOO|umX|2$--sQiQK7+YX7FPp*oicroXaTXIHIUdH;ppixQ3B^Z|ImJ z;GOrfg5dcaWS^8i)sGY&9i06o`H1cG*3-ZH17H2uzh1|!RPTk?3EufuZ-dj}NaIqQ zS(#y^)(yikhbCih@L9PK;jX<$mDDZ~rp@XZeV2a=h`2$4}2~)@zAO z;8k@`SoG}h8#5pj=yf9r`HxDDq_hHZ|#~%4M4m@!k^TW{#1iJDusmw>NdlTzs zH+YUt`!SAAC#~xb#p?X1TB_#x?!Y!UIv8-3wlx}$df0gbRF03hSG2o1)`+enZ@MY)VT-miF=vN0Ej^MSNZOKy1gyA&w?rF za|)ospzkESH|P^7ZSJahjWPmAad@Yt$I*R6T0qOJ|h)d=*vCt8^o+s$Hr;X=nYU0!hfeX&2yyS z2cv(7Cb+PXlNVVoBQ?_J05DG*bz{vtvKV#b=p^~->miZRn%6oxk*gpth<%rt5)!;b zBDJR|)9b`MOfl)ZN^-l`DUmAI1U47Fgp@r)=(uEsIM|7gB1>23b`z;7H15t=#h zkPIS9j8PPBAYDua9=uEzKkz9#o0*a~jOUV^cy>injs+s^E#C%(AL9KN&>Gx#t(e;cYgh&21gKL z_=`V-*T}C)ZBoAvnF1%p+f(Rqwek6_WEDDl=1j^=!4y*IA{|e?!4p@N4BlWEg%~VJ zw9OX~Ht-Rfrk-$*5!El%T6IpR)g`SjQ?BPot)q;0G}f`}e%+eBVBI|RYwNW~KY}1l zxP96NwG=e<_5Hfn`5P$1^bDs{mFsTfus%Q94zw@r02|o~7{o*Srh|D-t7BsZ;DbM9 z(LL*@07duF^w9uaJ+PTn+Pkehu4VN_5-e%(=b7pfl>6RXT_>LM6rgtyMBtv3W{#!&nJE z=xe^=gQS%q0MbQAMKOO7b0jQ`IEjr)F{vvI*PtU=x=+8a)9HL7=a{=lYMEyB7=`4n z3XXh~4UG$Eac8`oj#hO@dBAz7dkl} zH(+$Ql)XC`c}9n7by9<(*caomvK)7y?yx*;MQqfS@gPxVS<3}6g76If;J^R({~0Jo z@)6nU>BFyo>Bs-YuS%A04rgz_e|D@_Ts9h>1&fKY?L+lgh_rRaihDd3Xk9!9JwyaG zdaz{Pr|SIXCE@dnZjOxC{1`33htlo!Zvy8SBdF{BpRV-f!!D7Pc%ECRg^4t|g z(8}f8_p(#JU-d4*%QmZ%)#@|#^>#@9jusDf%(5%)*$a84DDkc549R&}-e`BtElPLy zcYo&ZOpdnxj(kK0`R*V3>c9RE*ESwnrMBYNGYt=(AcXX{>>-*kd2MOuFn>65kI|%1 zYd6KcMZQ9R_r9E}+Hu{e-iO7lbeF-APN70~BH1$)2TNMhoJE*fEn+Y9qyq%SfuJhh zsG-$i+gjLeUZF0l(ZTX|m+$8J6-4Ys7Xzy+a$eFX-7?&OJ%- z9@RFD+I{FCqEYb9UZkzwv-E7gtOGNG&7iI7OrWUq*xsjg@>k7kbS~+DWTnBt1#AHu+g%>bRUqVjoL1sn?W)BOfms7^ z#QAG?h=)L$vRF+zZhZRo~D|rMkI1 zZvJ$a&=<`BC6)PHMb^iC>1kVl6KQcNuk*8|B6jvNPfywJ->v`u>9-H$F{&wXHS%2M zF^UhmcEhDqqgW!|Ql?eTs2}jSZB(_0ulKhCld-QCY2A(ukF&7|it>J4dHX%MZUN!v zd0*afEYt&}+q+3Wy4$`jdW#?(d0UZ@?SK1vmpw76(eI!LA3XrlRTW#13Ls%Jlae?M z6^lw=?pZM7w#_Oi(%7QCRD>5U+bGlglrIN&(c9rVITSQ>u?2t)f+FNFqIwOpXGgCQ zrMa z$N|tH0Ta!|7i^muDH3|_L#f0UU^%u3|D5(wNNgt(d zd{Ll`tgY4OE|T2_n9efSM;GL8#YS%P=&L7mHBe;xW^;<2tR`uddQX`6HOB$@h_Q58 zSYgsAUQs10o+B$;jcO{7_2sd>#!b z67yn3?-7BY-KTlLH1^8D5DL8TbHw?H8>Iw z52d~{U5|;IM^QVaQ~B;F#ZAwVdY&k_kSi*?ZY{Ga`S_@Ij-z0X*JCGAVv$hy<=7)J zg}N%Yk&7>&iq-KbO=biN-I6}gQDD-omv`eR1c+L^k)3P9rvoYHM}4(%+L{V53owwj zu~C|i=ruap800}a1w~thb_P)f1v(CjP$yEQZa*NW3KYSfnuNE4BB!NOi$UAkCx(M` z-W%g{{){VzM>O{wfijOlP}N^>Dm?~ERju|?4T^Ly6$7o8%V8o_pM8*RpV$7&o|Pk5 z(m125QiCGWW$s!E69_SYMh8|6K#@*GGAM!(6zMwefa$>WbpuG~n_a(Myhgje-|hW! zjNRQj;cHA=sl=gi=qGBQvFwZdMLDKuEVW@d_C=S?vzlLmdh&8EvtY&RlXCw$dW-B# zwYpsGpa@m8yuAM(*MC-HjNbP}zu%0wbynRPF%~ph9;E#SlFE;j764K$H7Hers^zyZ zPVNbk=3Za6!^FgRaV9^s;lXf~JQEmWAog*?gOuVLvoNt>wl^I+Z-N^5OiOWi&YE zlYnQ4^oK(~j*b9wJ*W`KS@GQN)mP;PG6(p&eXHVU%axf4SvT@OYYoz(lK0ER+bc6FY1o>qB^ z#DLT^$O~Iwc(Tq~rt$c1H0pw!w{>tcjlxFq|M0i}{a>GdM8Ie;=-$5gL*M-0zJB35 z_p@poJq?EB>{=qwVLVV5Jw>Eud1BVqi;}Xmc6$j)Jtzvu6cHrz5M}RCS9y_Mh|Qmx z`MKRog7w34f%!aL==={~(xP%(EEDCv?RZ@VM&fZjQ|T(Pi1>_f`cuvMvWF{_DGGI^ zRgO7~W+K&f7o1ifJ9?Vc<0XsUG#t>tRc#teG_~JTfAVR4j_SGKA0~sHrsKnN8+&)Y z_J9AVXrAyI{n%gojlV9F{+y%!x+d90*Nj;EdcEiD)(Kt&4q&+Vht${!%QlH#DWuRa z^zxyLHz@oLt0nns_DHWf zXI##Ut-0N^vmrE&mOu&8-53<)de|8UMX=s;)IF`w^&~X36h9)>jVzBiztr<{!Qzbo zkk0r0n)$;{`vp*{rOOEIf5pj{TJ;vjfm%*y0VwVHjMC}uvYsvbFZCd~VKDice*%)0}PGgS5;*FxG$Uu_!3pGyNzCY0CZsfuC zq~Ph+HHZEHUtDkQFb(%N^|=ZBV}h8sES5n z%RmvfV`ME;>BQ&?Xn=4I3!1h2JDse-BH$sHE_22EDL_$FAIhMJ$pGOY;;^JIuN{?! zwooxV=$8P=m64*VP?=aCwGQGISI4W%x3yzCmL0eMAGgw7qkMNW5m`%nJL z*XAFgw`gta$=6^1; zqeQZJ2Hk2apkmFMr8;pP!!{X zBtQH5`==-amFy;7CVu~zR5JZyUZz&K1(rQd07EBX8wYDZk5f?O<$|kwHKY~*m3Oc@ z(9KG*J2t?hRU!o!I55O|(a%k1H#%JD>6_j;Yn0jdxJnmtDRrjH~%$LF;d3T*+r zL~K{!B~ovZ*uWb8K&MkLl9zeTcIiNJo202G#He&=my^dF!L|r~93%l00UUK<&>El! z>_y4JtyGOLGP zrJY?Zt?c>8YrynnPueWWVYpR;!uHI|1)R?bG9Yzk0t}@;z|Krz8+ZKy6+OG2!Wp~j% z2M(7@tkGr9U37`%8Bux3`NU44yXgObMwdsH9xbZbD3$It$@vmq?>{2M8L32fZ=7me z=o72d2fdf*SzqqpO#Pl}qvXmwZ+Iicz*Gxbwd=^DKK%^n321ywj@zhqXoxQMzt2M{ zREDT71Rgl1WY6V>Y>A;!)VxJO)rbvkY*am;t18fWB)Ch+dYM3)*AY=Muy*XnAw}dV zCA$N)u9DF{uBC4I9QjSJ#M^VP3~7{pYnOlc_kV9??eHJVM`Q<2 zzVN@v9vV%8D=sSG-!nmy4rBzGae8YN$hZe7N^|4cOqmOb0~C=?$MPcC+Z3sJ{QfD~ zt;YODVL$U!hu=7QwsX18sJuuhO~tz?+Hh=G2p*)hwMwT!A|+XYl6#Vl#LFF9DFZ=e zAC>L)!K)*$uPNN1`;r;p`#^k0Q#J5>r|mq?Pp8~|$cEGc4OnoBH*)HAo7O&2iH z3ac`oYxE!;^x!Cq51py^Q!4pcYg3;zVhm7%)p86ndd(BO_5+qtH0cx)y%QYy6sohQ zcup5$0JuWm;PrxSF>?z&t?V~avx zM&qy%Vt`ymBl8I5IPKdOo*+$pkpd*|i)p{?b^%4C)d2wQiVb$-spmm&Nwv4=8z!tk zn%#|Y^d>E$6%+mn2Z;GJ-|})*I7wFymAjK&(?{<7NL}f#mwvc3mr#eRq$&o9N_E_~ z^vOS1|36MYOZL8jQ9+MB(AMab*ZGNx271iC%lRS?n3n3GvurE#T_>B0(|iPxtTNY$ zzgTJM-4x?Z@x=@viAW#o#^FUCcS}xO=64)g?_zN$`3GmCuW@+dwvSw>wmwEG*1HUn z3XiU+(P_>iuDe=7jP|rL=~!5W7sM+YfFT+xoS0==Gf^)ycN?K{d*I~tp~u0M{@5$YCzg0FiY>svi=KPlqASnlMTU;kXRg$<<@ew% zhk~U2WE8rP4`SdvVP+bKEH{N0NPV!;x?o`e4H$!H8EC6i3eRD&PNgC-VFh@Nw4;1f zyhODcoj4dujm(^6x*V04IO>_!%5tXHX_?;Rw$|mo2faOM$pg56X2EWUzx@zWR-?AR}pjkd$Mlt|W&RA80u-pu||C zXvJ&g$7=vmra!xCU6&=lO_>gWXtFjav6yQ?l*aehfu^2>c{*`RYO65iqh3|plS7*&LK#l1uQyxb_yO4sFBb5p6iK?V`ljqSaPtfE^nKc=vZ zEV7bv|2BDFHF%S{uq~I7(l0OcxVAsdW0&}%sO;QH&{N1tbrI~aJl97Rx@G-;Uc+Zm zvOB%sg6}WJi0@W;$ng|)*4-{An<_NDf?DgqE$=Udaut?YIDg*hdlr&P34}J5@?vL& zy5@L{xP$E^Q!U{T!Na6MdZuOqxyPVzvYV>hVOf?=T$Rqj5o3&K3(9n`;4Rt{qtt1B zfIZ0-3BV8xa+sjdVUg-DNHP7U&(V_?1WNaK@+;}dxH@I zQ!xtwv=KV607k7s9lb>wU$hYb(_!e?pU$9x=O8oCU`iWexfU%?~Bc#ld!51=af@q_Bza3%bt({j9NR3UWGq(DjIleEbFKmF=Y zKK}0Izb_wwt*kx&FTeah`RD&-bw3r-n|9R==IexI8Y`cJ#|Moh4}hHb_rFXO_`z$vTL#oR{X9we!OM{58{ z>&L93eY;o0`i=HpAp)d$oNB$7UpqZ7)at%%IHWQiRq6a6v@4`*!$VYZNBA|y+(yzZ zRi=YI>pSyXVWY+yb=C%E9q(txpm=)L@&S69z>1xI7L>Z+HG2Hm60m3M+ioOmXQEfM z@!xf2I@&|2CA%LyC?X7}yiWl&IshUy2tM8Ka-ehc24Q}C+r^`TDNt%?b=oHieWR-` zz+j2*B_wv$C#3&s_=0w@Y}u6QtiIwr)#-LFdPqbDOUYuzAEu&I2aEkd%-(RIl-HN~ zFvlX%#uC6$s5jYv9;Z5HJ{QT~Y^&tFD17j;?yyK5#!{{;_Sa)y{(GrSv;WWK&tlBc z2Z%9hGugKJitHgq`dm?;lS-+M$BRE)i8FdR(j+*uW8BQw5w6nz87GPGHG7CMkF&b7 zGCz(}FMBH-r&=G5v0MM}yPUb$l@+_7bOlg!-A6A7ihQKw?(Kom>%!*`IPXBIbFK!ea-g^dfTGNGhB-1qz-Z?cIt-ONlG!C! zqkHBR|GtADEM`z-8**+ufFMxm;3>j?Xm>U|$Tfl`HdGv$1V5bAIRGN1)p;V<78KE2 z#L>i|fyZh6T>%tLbI&y$ zA8q|D`3S79V(uF#k`w~jrA`Fua?UG$?b-ovDFdv(W(J7jy(N#|Dc+>yUX_7+io`uL zzCFapFfIwl)R>~mi&9#@u!~W>hFyIuUP}Ntr}|o<1w|<<;)VMQ`(%J8evj@|B2|$0 zUU_YNPsT{aB)2mMcS9)vkN5Xt=*JiuIO4f+`cn~%&B{3}VQd#XT9QFgx#}j#Zt}#u zt{}LQ zT{c^Zpo!nQPEDRZQ6hy6TZg0M%w1>r|e16vp=(h-Urwx^qunfqQ~s! z*j;XaoH8zY7yCuYSPp2u6LJ|!QKrjw(c+BAD!FvYllzYQyruLC)ox zWx8{6J)ZNxJVj{4)MG@II#1|#I)3O*qhk=R?*H7l=`?cEt0YIEv5ks!z9KJcCU@T+ zmFY+qk+oRUS;s;DJE_-m+i11W;_}FE07D19AC7S%MWsr7pJ@O^qe&5MP%suKchc&7 zk4i^Nr$L?WXl0_9KH1i^)(kY*Yjy5d1fM%sqlNi4iCAw~{G-29jW=7@)6?yqB9vdHQs%1VY}2Xlk-bJu@>j+dDV^@Pc{ZqML6aBB;oV75ZcI3;){X4VHfir9aAUYiw*#R6ek5Lr)VUlrGrrVT|HX>P)@^C#6 zVNih~P{{*WVnc{QM9vTT!9;kAkoH1B(USmGH43qJc#M zuhHP5fuT#_(*@6w#u$OVkIu$DPZ83*r|6^X`MeI|Vqv>DiqP+&saFUVy+{B|FNx2l z;%}DlzGkYxF?C9o>VD{Dc5Pf6;SieWHCm?8Mek3_>u-hc|GoQ`vKXe(HSZ`--O2KP zFSl9QML=TBO!Tx_#k1l0XBeEvde)1W!517Zu9zc9pi`jGezzPbj zmF4)O>fY54Xb(L8*k1PpHM??t{37GIAG1ZJ?ok@^AOW?HLz!`Xch&Z|jmNE|)(aDB(h!$rIAe>7<5AKmG)#|S}#>M=U9{6z#qn8s|+S4)7Afuh#7 z!~DGxYlNUj3NWa!LJxu-c&t%mz`wZMcqv>BI6q0USN@ z+(kJjgIBgpEQd;26T5m4C@@hqVtBS-BBcWO`~lwEXO_bVhV^IMYjhb6$bM0yGeqQ^ z?cO#w4IHVbC{PwoZBcX zoG+rtftMu}tp*;U1Gpr~>M36r%iuUVou$ev#@tNR-8x9hbU1>n*+7L2W`13f8dwzK zsw0_4X;!Y8$9fSI{EmmI0);b4)xGk$#~e-K$7?-&d8c7fizg^((Bq`O9NM4A1lY8OQmvX@C@ z;rq`vvU*ADjFTdbtyEkWX~=a&b_GfC9-X-7yWiG%eRq7)RpCmgAN5*-SKSi4)^+Kz ztJ7(<%(Mwhyha*tgljq~@4l+qt=Dxn)JH9sUAUOO%{UCp7-x(700>d!M?FTEdOC^I zGSB5GB$StXKy+qbDzsEl?#_hyzMXt_*4yAN<*~<{GtfsSvo}XfF_sc_SO%5uT>tm3 z)9EzE=%T67q8|WS9jNtWl?)MYbg4=5>ir3&(7~?QWVC1fhA7po%iCe!t7TRJ(_K^K z&6^`gA^c$Fo3gZOl%(|>Mhme)l0rNYv&|b_CEhFJi&jsP56q@2A4#UVO;WW^EoZqe z8SV4Ao6b;P=lj`+w5TjMIPoh~e4F|jIsx z#6E>R3bn6zV`AChp;61!IirtMQrWE+B^<9hrj%G55hgtCGQBOw2}uD$B8$|zcv;I# zJvf5B8A_m`h9#u#mj4d4zn zX>(_)bl$(&4#!mCDFC3WuFNZ4=^Jst7-i1R74QN;fr-P|ZKc)0qE5F&6tVbxc7-wH zzHKL!xN_3w#mTuV(TfZ!} zrGTgUE*60itty|w3*Cj6I9y=d&VBN}7PJR)19+=80$~@ZQjq;R*=4YwWbP~7yz~xD z`jL>)o$%4ag6mj0w|lZ^+fw8(?{zt`>jMvd1ULefj^RYCx32dq-i8pvWfNY=@-mk! zu80=BM&KKx!hG_Q_bG#~9ub{;+`IJ84VLC6dhKl3-zjuwpCZmE88tx4Kp10-w)X1| zm&%!Lna5~rzdk-?x-&Qm9;0}Sn5Rg$IS5ja)HiTP&jSb`@0^N7-dHg>mkn2n??yBV zEHvv|AfydF)Rd0vqjnmZyl4+~_pY69XeKVhm62Z1SEhp63t$`~Tpdeb`Ae;Vt^HpZ<;id0sJF zaV5N|#cixqKrMOviv(Hc@?I2Bk+N4Pf|=M+FO;vYI)>h+nwT(3Aypr*x$VH1JqzmV8(uunWih=I{K?|J#cfr+!2} zMAKxiKl2-ZqpS<W#CRP}-Nfn7B2FBk-B7G}|XZR3YypzF!#p=pv8`9w)9FP5gIT zH5u+U5$wcWKr5?rsYXtlxTE>nT`vDKV5r{HJZ z>i7zz2TxK=4y(W@B!8U~97%aDP&ftE4$Ew3x^OLcZ-6l&9cOG(FB4 zlkr9yd3t|tfG3C-wcsc(W7N{c7vNnY6`r{XW5U<-{gmD!S|!2|Omn{WeTeCUxzXu7 zuK98}x6=Ag`8SDNi`!0}^FiP3=C}rsLR=AzgUxr!6Jft9Cw;wUiolB&*ZF(5BOW+T zAQU>973c}3fK*9^e-=GPACO9yx>i|^53M|axUJovEBSCOHmUxxYBSK|{fpj(*m5TWC`#qn znMTKhcIDtV!^@U;2zDctb?^$s97p3$N-iU@j{)1`KKLMZ#6F%KqtO8r_5bI@u0TTS zMH0zLUSW5_wU9!$;6=LYu4M7i6c<%kuss`vf#|{>x8E~Bls!hCTY!dHfFV_*yI%kl zyhM=ez8Hdv(gp8?bp;eLd8^v_YLYA5C$E_r-P!OvlI#4qe}5iBbOC?oZ2MCOOPatn z++Oq|kz=6r0_R*W14WeSRtuo$xd+0cg(7_pBYB#CV#DK$q<|t07_w2Mf)N`uO#8Av{jS1RZ!%)KSu0~gt#J<0U%OPqdA3b-m8@($(XuA%&F7!$in_OJ|xvH*(8HFoM* z(m$u^rD0L%%il_6DaRVAEVl!~WmLF|-q(Oj?w=bQr{N95@3#^_C}Wdmp15}=HNYaU zkMh}p^0>10{QoN-vT3r{Z++!!i{IReeMkCxtxyWzzxzq~{_Wd!Q4j|?G1;q9YW@4? zH(vmf&j*nfT^;^ts%|&3I7TLrR%+d9P0iEupA4Kzx4aG=91ko`iK?1Nh~1TXvQ?&A zYi1b3NlJ8T;x>&wH!x7N-ZinJl9SV&@cTb)3;|Ur^>hv!&&w{_zM!2s4A0#y3;jsS zv9J^gqM=)1w+Iz=nc6Y^c8FA2AMHsGmexnGAuE(i=|JSXbrV`z|UUnxf0-#&==ac*^ zELAeDEY*YdhIB><^055DAB;iC8v+ z@OfrnUqYi};Bd6HrQ1`cvE`f~9+0f&0m=)Vihfjem z%vaaXV5I=43Z$*b8$a|1|42RpJ9)nKrhP7?_)VqqbOPvSMY@pql^>gav!u&4-#-(< zQkilkeE-;UQi(H2*tTdY#IV||JL#4ej%LqM_I0Du>O2uPfKFPoeok`g zu^#HU_Q)Tt*#J~!N9DT(C;~VlGk~Vg?udsmxopH5sprT6(b4G=tE$r7hedRO(%m7w zk+w;jdA{_~4n1~uW6Pft@*06A-mfG$GEilIm7OWz=NY#>k&3y&yn@<5`#|P-Z`U88 zJr9Z7U-aH1c#IHRtla_^Wys34>LQW?kg$w?1*s_^*(>uIf#E`Ry0yClBf{+Y-&LDv zpNHot=tvFTBP4lM*>1d#9(QD6Mk&V>U2DY|*dM!10Myxhzy9{0*z@1zKN>S+<)Rov zNNFUwt-rzfdcEZ{>Xw6?vB-k(LbbgM4uq;dU2vF4>4T>>#y{*o4!|XzvTLSN-9pJ- zl(M6vh_Z>q)H|P5Wx5Xxj9|-LV z063UppZMa9{qJSch^^IMKzR8*)A21P1#`RDRe6i9-!`dk;-jLFVt+^1yDYT84_nPg zMU*-hsB}O;3Y7Nhb$Jmp_x#Vn5k_k0EMi^twitcxZJ#eGtIYt8vcu?Ntw^VhgIAiG z@4yYCPKfhSFA;tVSE5r;6e?uQBAF|ax*~tk8TY=BK8O58>8ZyTd0vJr)4dgz#ngM| zJpckYI_y$borAY%b5j z5G2(o^du-%*`0M|KancmQFY>A990)7Ds)rtsBthrH#0|&uj>zea8(us1BgQuzG5;HmIU+B2xHQ?HG`MWhKjjgC7^10bF) zB!iXwe#h7}{lcbcZR6?TMb_kv*K{8OQg!N}#Os#Z$^}Kj$RN`}lkVcC3CF zEP$c-{ZB>`)Fyr13BT!-)#_NM*}zDr65i7=umkUp)pdjH{ic^3|4lq8c2=oFJdsnC z8Dqo>RjX64ZzsLyNt3@Ge~(UF9`!2AyiW@39Q(BZFVQ2yHbzrGoG$m1Y1B}8C~Eu z+h6+vF6Rw_CM;97TaDo8zLkN5cZ@m0IaO!@{gW%kbip5!zG{DlRJyyiUG1t=vfcW3 z$7Q>b>SU5Ks}8A8?p&h>sb=TEl+AP9)+w83$Aq!2d*^M3+kceVnpRoVCRmBu_ zQcHPD=$i(^^2gRMOwF9o#b^fAS@=Kdin9H`*KA7R<~r^OLzRBaaby%E)8H z;Lg^VaPBp1gACnMQ=vP%B*7~H(tdM{GmcWWLb5aW! zSJZon*82CKf(vK_*JP0{mq)2}+d$_ej94lSB4l8XaYo19Sg(cnBXZ+m$iuPf^OGQB zTP1O&$4J69FTZ-?i!1~ATy{R30!P~1Xwt~{E|Kb0QHF5;>80OPILD;qf8qKSr~GJK z(KOZjXiS85KL7Cc-~6xU^A9&ZW3>AGpIrUwKmWhTP?k|2*+Qg@5~|-fdR1ubR69j1 zfTBP9{lEGj9zJ>P{~)jIQ)jEE_y4b7`iXz}YqsRS9lcUIanLEVLT|)7P$h>I?#`Zx zgD)@S<@bK?r~env56}MZNq)K{Dx?FvYnmDC= z{xvJtdV+GiQM0^wy(|adHn(ry2fWr}S&ubh3=-Od9Ak7kfDKPOsGvwpph3MyTYf%o5J9D*Z1;lbLf^*DpDy;CL34i` z%QHcHm?x!a;j!B_)!|(Mh0q4YZ9shSd&upF_8pr+d5AT9 zr2$BoAAA3m>!X7}59!AYhhI9?<0YvS?8U7uZ=8PUyr${rJO)EPpVm@)Wh8s79;t^!h`ma@_1Cl7gf$9gF1LMbXC1LAgwT zb0aODcq~iI-?ExuDiPZ6?)Kl=twGkuSNAOD?|8=L{zF{9X4~K`f(qT_ZV_CFUL&kS z#h@c9d%k`z{E1{xr1SSWoxMVk;~pd8q5HwD4SV}?sk{h^G-=y|FuL@xn&fQQ2+Vxs z^f?&3MFd5yDo*4!!(zfY#22aVf`g*{Gv&8{2Wg*t>a8Nvjo*O+bvkgiX>>Zq6zNoa zG&Bd%cpKy`l1g*{b3ly0d#q8+JAuXwUZZufn4z^am!sz;j|GEnX-6DEjL86DVU&^F z@NCD0>khD_gPLpg{%gl!7{^CG33Bv!RAq`DBV8d`-D%?M^Csu_qmgDD0FE^ZBfkVZ zF;Qc@k2a1->2xFOVA&3K&C@0I#|l-lnjrB??wB^su{a+#D1x1N?eT7*7!BL+zsu_) zAj+Pyigwl1H#4WQhWtYRR(|?d_OV%ZoayfxazhEcQ}Y}n)rw8v^?~}E&If8?%zp)Q zdgi$=-v2H6kgb~!-Z*%AVYAlXZm4v5F$_v@s?=dGuri^Sr&wDLWG@qKWN}DTp+kKz zTC%_9H)1^#)afAEz3PKB3Wj*DT8~@3MGA@l#7>M}$2cW5dftzl>+@|Cx6#D zGqP`42fmy(t+|S%0Z@oT3c?I3`WD zX9TYiK#zKhdf)?4g!OaM!utkqb6@g$l%pcuW+TeLSR=OO$ZeEkjeI(HP{eZj_b8QE z;ns!Z?LQRi@P~m@9RPjcgQyMjL@mTNXJtA!6oAWVvo(-bh%C;m$;aWU}46QvSr_!!_}1mqF2vgCdxMqOl#f(Cj?KVk{n} zVe2XzFPR^wBFnA2gtkSSq^<@zFPmyVxbq`)HQOsSQrqu``4!7awSUP`+NDUV`%6xx zE5B*s7>c8qE2VPKYyb{Y_G?sAOZuyHbZg0X*+^*;H zS6+g|ZlprTVf>ru$oywq3FyNsToU2Sup#E|_#@ zjw?EENnK&2&arZZ>6GrFs7m+5T>HR6$hY85BeQ1)j?SF1MtEz#GzjrGqQ?k-3|Kwz ze;8Y|;hkBmQxN0`NTpK68l{a$_7;)oPy#jLxEtto5Dc*qq-moG%3R20WILB@jqJ=#r}g*TmA;bwVK$?}M56@0`ZQjAr z*a8PQ>Ma_D`)DJp-4e6jyIR$XlyVyI?Hxr5F5pi)k<(Ol+>B1=jiq$&{PCARbWjBQ z!uFm2!LDsdtB^p$a*sh5RNAy`roYv#$S{g449$B$&(d68*{9U>2a2>ok>VM$=|KNz zB_7O|J9{5Uvm5$*j`y0v3=XEwUHHy-(8HAv*$$sxWX;|g4RytD&8d7?)P%`#-~nZW z#COg?#BV!%|5TrR+4ryYj<;K&>!LjC6X7MxFqPUU{p29=aCVO=@2?kR&7t+JJLrfZ-rU3Ci2jh!qV7b7QN{4NGVttuy zDa)|C%kwuX!zP3p-0^{Co$vo{_iZ!QfmV0zdVPJjO&v?{X5aQ>->&)?effv>9qc+N z+V%Nt-?085X?C}6c=vGZ+r*BaZJD3{;bJuOEuG}zk z0UBMF=ypwh&NF8btQ}F&N@dR%_N*e&#ePKQ_3gP_aw*J9_q)QPyKEFXR9ac*D=5lb z8gx49qX6e(k}q6v-tI%A1fWtxWvSrkk>xGI=n_Ymuq`HzTPD*T?QAo(z#@w+LS;`H zohj6Hn!5sHT+sMKDOuu9n?%qfefGrq8YNeAdY4(bm;+%~(W-1%DQo zWE_8VSUAGF;sOdVCV51MBPV=x%H0Z;=tdzv!EHtA?=HFEf*-UB5QkC0YbE>wIzP>w zmFKgys7?5x*r`*K-!0daFW#?RJGli6@h|81Y2>0=tnOSVjd1~}())SwnQJIMXBHcl zC|W^_zjbHIb-n^INGl<>$^cQ9W9k(AyXZ*oF&(aa_;E%@`|EEyUh(f=zqPuZnpR1Z zy%AOrW#8QMmE;~{{~ldnL3|!DLo-k4%iMc+IEFJ`ky6k@nUiME)q8@A3mIu|n83u70rE)wYN; zx^6sJM7Z6u@?l}z*~>z??`0^AxsLqq^0u)Ao@XvxD175^%B)u}<~<@P+7VTv+rd0I z!B9C-^@aW;b2T~!_9@?$A1GstqVU39Sy;}oMSGH`bVI{9^1|u6djlPrfm|l3Z91-a z-)M8Ftls9%JrH^^uwy~KTgzWEWxB3+mw(fr6BXN{$4J4E9|j{$Fb+Ot&(Yc1i-f;3 zF211gMP6PLx`q+2oUdW441|G3fO7jG_!RUxZ95Lkd&G7GqiGna)6qJ*f)4Y>Jc?)Z z@T8kqaj*LnBY~MJw{9bbP$6nPL|W$9!BJBw&?}@3`C2FOKRby{aw8rD87y17lz5^% z>55xPk8Izz^*ajq(eh4RiC_$kD8Nt`l%{fW*HHG*zModUZ4Vt7C~$ z0Y}5qk)|3O?@d9GiwktGxOAUZ%N1zJE7es1wAG03e9xvZEj(1w)bADOP4a|NScz}G)~}uzekWenQ!Uef2~pElsY<4`2Nqbpo_OH z3!WP`QmP|u4k9v`$9HQKT^&QVPDK}_NvDeED?J($b8cA{rvl?n2 zU6fY%)vxb@s&tGViBs%+8S|MseUbV}(613O`sfngup1v6Hp(R2#6r`!=c6xv7GzSicVWZcKk;Zqe`U zx~^Td<8UwT-m8gYZ+S*E7LC{A5H%Y0|5p!c6sM$U@Unw9?Z@;*!AOr5mkCX6t~wGisbx%-O!cDdCK#xQRukd*jToI15L?i5h*ey zt)u!}t^Kvt_%8Xz><{D^W!~VXn;LtL)GaujC*;_;lk1_j_JdQAF8^5MFg6*$_G71q z#s{NwZt!LPa75qOKKEmuZuon+E#wu`ak{HZ?lTzkgc-Xx+MH;tMcJbhC5Sc)@Ag zw!hyfbogY?(_Wf+gJ<3Ii;4>@uva>Bz{E}s(ILpHsxaLRqd?$832xuX>KC2Yt}~2I zvs0i;EerM?)hrs*H!$7lT$$2Ye4m4(%h6W*#+oQ}zWZh4@-Ifu4hK6bq~Li%FsonW zw7aw}52^yx_(pnmr;8@>OX=dA@}Toe13qElqBd~`c-*TG)`t13)%1(kFWR~B@&ArG zLM=~70sw&mr?7QWV_A)%A>UtfPpGcugJk=Y>={`(s4CyNbbnU!KEK%S=)WNq>IjG^ z?QNgrjPgRTuw{xMF%KzfQ4wiPWing5mM?6pPZPMjs=i11K2PnvUNEO`DWA>x)AdfX z3z{Io5vg$LSO$n0oen8~Y|E1UDU8(BhIOD6+dT3OmAe@Q7f@nAto9lJ(xr;YSYHgV zLjeZn7t!&AWjdR%UrkXU1y?(!T6f{wyJ%AUBP#c;X`SAtN129Q>6J;nrcvI`yi_&M zS7otR&187ZD>d2jHnkjw0WPeGod$TTKQW zphzP}JkcosR}+rzSl^ymAoy*o!uk@Ep=_5tXtmKCYoRM zG&-}EhqV46tcUXQ55v&i+>b5!ya~Y6v@Sx11WxG>m`e|o^7?0K9>@JBfs&su=NLWn z7wA|bX)lVs`XZ-H06gFD)Bq5X8>{n-7_pX7KIXtCCnq-h;GlNu-7M^?m8H=Ty|xAk zL(HH3dhY*ZA#SZ>lw>xwiZyB&jU>7wy5Y%}(Q0OJ#CizHvIqlf7v1q6?%g|&{=6I3 zL#kWV6-1*(`hAQP?OWrI&FBD5iHh7J$H+O^=rsU*NKdFvTVRpB8#nra{>QWpQ&1q# znJMP+&JT8x0g-PDa0Aa`m&EJF!h)_)2X7`jW>7n-N05RCzr*8gd8bJ!B_+E4dx}eR z&lE9L?%tfSvo?r{BZC+nqmbbB90QFU&HDRBT8zr6`=y1ckVL0{cOK9 zVEa=-Oo3CA^0szvv7NqeyM&Vm^9rckLv-oat;J)#z194oi`Ir}v_4C7yPyr)WePLE zAjA-PMJ~k+0S2njsU^wo07~a=|8o|5b-N+Gg_O6HuAUL;b?7q@G16Qk@54Sws!_gg zU@0O-sV`JI9oIXh4t?w1Edw`QvDd+Fq4@gn(L%4@ci#axx@!?6bnkB+Oes^u`+rJ! z0~{&4WSEEe!r$)oZJpBT_&mODfJof~ulkxs2M5EfQ|WTrK(1wUaAL(^yZmcLk66d( zg+-De1cl>f1t8f-PWQ>CcE9|1=Z3c-+9`GQ$M-lxijd>D3mw82SNIP z{GA{FX&KSwd_!J0mk}^3qX#oRxR?iZj!~rk7TM&Usg|^2Mxrm&b4Nta)93s}U3)3B zDNo!r`Jj|$dtlQ8pT2sK_I+&v3}}SVAORGyc9Dz}>b4Lua)6|b+?y8ELW9SS zAlEMX%>mI}uW5vK6%Fhy{BE9G6ke`WGXc~&&O?%W-{%2{5Jfr_r(&GeC~CL2KPvQk zDqVuACaHd~+#*oxG_Od^6Q|dHqk+4Rxi`AeI<9kRfFl=eWmJgO(t}FT{VpX%dYY$F z?V^b)V9Lbc9jAV%`N~Tk=O5A@wsV+>g%KV3EV3e<4>pL57CsQM9eq0MrvxZQPf51m zUsGj!QA9QtZ}frFqLp*eJFb$!wudTGd6bBv3npRgf5)`OpiKvp%#RpCFIQzxzOYSi zoc=#8`r}gEV+rnlUG>2+BLO1OMxp>q~Pt^bZF;rk&16P~-(kzRBx1SGSdZxt+BKJ-mkbXz*IfdbFrsc~r=^1(nXXvzC#f{wix1 z@TLSGm4+8eX>?fdmya^tFijF1lVQc9Mexr1%Ma7!!-HPqA9lc*6N?^Y&MwSZbY_(3 z9y2+7nTj%6yT~`)^AB>3e#BdM&l<^VzZRp>dEFwcLj(Hz(6C+&-luoJH@WUxyk<1S zDP+IpYIKrn7a=;N3A8S(pq&uCU*J@eM(3S@a zdsbNpF;aalZIDsio2tvRKGE3*KU;d;jPA_h)4r>VE-AH6x+qgSAEHDe8#lnFR>*a+ zY(-8nAfsBA)m$-kI$h@lUUkqp{VI*?4?n*8e>$~iqk}10lqs?iq-hk)vQ@t*ovx5X zJat;?Y*|9&WHwztfVoGI$#3E(B_h9ixl{YQNv*X8!j6jq&1@GJH91uL9q=fTwj;CA zKCVnBzTGRhS{`I7NwD0eGbK5KF57o3Jc^_RUoT43MT(qF&ne16440mRw8P@BVp01` z1(aI~phCX;+|)=fTvSKF(QX~x{PuhAW`~*AHG;G4qXVSkDs||GFkeOjKvbNgx+*>_ zSWaYgHtGwahSBi3v0s%@@j-!9yG}SK-@AqlB)fBt(QOAvzYYC12_G2*sbkZVh;I)L zQ3x_1O7z1JIfD2CB1bwdfW5J?LYC}iv^S68X~j?i1f|(jrI9 zw+@g5BS3QT1(ooY5`gGY2awv|_c#e;G3N-mMwVkF=HT}I{|EF%4{e{Lhz^+&oeDAt zgGMgd{hy^R&n?I32^QzJuCuxAA9?OtkJHDYvSA#|v8>2gbfJx>dAM(lIzvyl#(6_= z=1#?q>w2MwY%Sj?*B~9sg#Y>N57ja1Z_=ilSj$+#d;P}FYY%$thryIT&R9OMKYk7Q zdK8NZYPDT)17qB|j3PlJZ5FY902O`}$0$JFXEdI`$8XyQ(L`-?&G+ zCgBZA-Mg1py{5jKMvPvp-)zk>@&@6+S0Q1M^4yVUDbpl%Vv?c^fo!mjW}5fFh!r*^Bqjt~38-up#AD%XAL z9O)5dZZCl(66S)i!1kWzU>zExMHkK;*UoUaMT;W2 zc-IE_<$TM87sNVM4y1Ti=^#`c z&``2l2R|;jK;@^!tiQ(DqL<5^jl91xF!F)YG$mb!$2rmHrtYb3!V6n1_o!2b6Ib%W zz|26!)wM55r7K%kX;7M?Lp^=2HgM!4V#Q0Wb3*{-hFqikJLo_fQ3l)RJ1qK>Tly(w zXVQMlY0%)RORxhd@sTjPq(zFhq=_`xd#h2=;kj6@#@|-t3)|5BS|h2r$iWfcQHvfq zzzGo)KalNC0#AC}vaQP0+Ua;?2=p2*{!=f zg;>8kMa^~lrR5pnze@*2RH+LZF(W`1BS)1qnlc?z8qH5dwV7wcb?2@?s{7~YkoO66 zrfD6dM5kl1aHVWtFA+JCQK<-}e~U36#&L4((|jfSR_uH8)S^jPcbcl6qc7Dy)K!c2 z-dmpxP;}FO$DCS32E3*i-Dw3~VRv157Bo8c|GFN3$FKeGeouPK(W1yJLax!Zre2G& zijG?zcs(QLNgw#f?IA(XiL9He`C@|c6GRvm9x;Lii%x9(b?zVARw82b{ILO{!(o2^ zanb0J<{uqeREVc zTgKbEd%s>9N77g1K*PLp{~SSTDKU*H)}l`(E%)a&FxCe#{$(RZeeO`HpNr&B7$M7c zkE2SxQidsE*fIVKZ^%U&Jp|I{F;ONwN02a?Cm_^4ICVs?8`)fXFa;xhPPg$~WiyS> zzvH>TNQdG=4A0H`5Q%=yr^Ac5+YM+-H{E0!EjqFJlLKFOP!$wWu|?|_dBjKyx{m4> zk;DNy-7oihKtx00oO1idB_NoE+z%v&rKuH;h9=x9NU|vG4WKIel zxZ|U`L@L5?o>9EJYaAfe5opQtJ5J-E=t57sD>@K}gk~wNc1L_y8~Eg8qKGU7zoeS1 zx6197s4)UtEw=P{CPXiM;4*VnxlEg3PCx*v8G)69BF{B4dR&inBrk_#clE(p15wko z<3u)`pR}mah1M-9QJYAg zOE1`)BS$O-JCW8m*!sRU&NP3K*;e`VMI%N5j5LZY4t$0$j^fF_JWY9jWtpCTmlfB2 zSOdwy5!(mMoGnUw=S7-xWYKa9MHr!GpT-=-8s|YfG))nt#jJ$mCz>+{LFKY^4Bl-z zb1t_`d?D|*U4n*}na7&L$tVzWK64+%d?T^w5*87;hm%X&eUB0;t2zUs(RXB(x}ED) zcF!6MfyG|&IrIB|CaoQ^&71pw7JS|FB%=@B@lm=PPgC@*?o`x%GF3Y0imufZQ$#q`awJ^LY07gjoDy5_L=K4WgK!2^zs zOWL<=s3mHGYs~R)!4V$UkNka6%cxPGUu5#z`8;(bFG%py zBiC&GkCtTuB}JR&wS^+_ARKMkhIvW!x`eoNKVM`Rllx;ki*fyD8t`D-v$(A8=|4q7 zKg`E%Vne5%%+J_lvL`V>k`(urVTLLEWW*<`LyuUjw3pnFQYX*qfmXOeN0rR~>>OWAq}@YAHbGewT}biATSB(d=+ z!FN9Mi<|pyb6${7=h8m8BJtb-50;rc2O|hNO5dCG?2)AR__^)N93v7}L8qfCUH5`M z^3RJDF`@?q<}ZD22u`F$lR=+*;1Q!PzbH}Y&=9dL%Jez#erZ1-M1J2uQqD2@trnH% z1eFf_Vj7FO{`Q-DqwX3Tg0o1VLP_UE)7BG{kbmW6;aL7RsynT!op_79r@M2Rv3z&9{KJO}X z=zPbCwL6|yq#fw6&qdzFl3rsvT~VKo1~N5rOn)9J9CgT^L5;H z;R)7MqFcy@0ph5jYbUZ01tgnN-KG!{_bX2EVG=mLYcg%#YhU>#ZL3_pZhzCtfQ|$p z(yLOQd#2E>RxO!6)94s&TE(DRLYYpZ5Wf7~{=`--U+5ZUBBx9=8l=CYxClq8XQdz~ zXm;sb6N%?08y;iiobkE)8tU!&-GhT+sS@19{SY;_S>&i42k^wasHx{A5j>5lx@wDd zDzy+^kWP_Ky6t^iIOG0aB$joKAe2eJt9S`_;0(R}SeJ<@i)MT_A2n6rPzPqXs3jRi`UC909-H6-wj=jQ^N$Ywd_EQgPy!%&cEq|xW&wzD zeWSUJHJ|Fd?}%wPhLtv-7e9wL^4Qz``=0hOW^DC07f zZwmmVoLw4LI7o_c_WjW^>=#$2ONMCCU2=#KK2Orz@FZ~&oMh1Haz2sT+rA-w=V<88 z+Y%8YtoqJk6?e8ZG+hN_75Fdfj#FMAd7TC=W0c zb!DQF_JKp^cQ-9}gM~z~ldLi)jjo}Tj1&>#x~Q*#{j`HN59n-XL&ON@i{xV;Fu+`S z?vl|Y3`CqhN4lNk1bO%*soz7aCNE_-~Wjh@H9|V{BJUg+BHG3YsYasd@TG_c8oTBOt^4u#npJ=wGH(#_#RV2cv}TIg*%`5he4h*wo)67ca@q32g(W4VXo7 zj4S2E6bY3uMe zH5Ja%YFsDVc0Qg`=<-#kwz*RYP3m+i!f>$_RA-Iu=aW;V)WsMwZ4%$dJR>dgika)y zw~Q%u(f&Xb=%axr?T?aJ(B2+r?K?hvXvbZr1JOH0sJ3eTqhTJABiaYg+l8^%D?8uY zw?mvRB1O5{h8ApRsK^VxMjgXUr~9#J-9xpUWaJ_YA=mB8xrUMEBd6t!!V3q|nU0No z+nQpp)9J{*L9P*NMRKgAX$+5Ss`JlBB~*sx{|n=`L#Ng~w|t}jz>RpG3V%6XBXW;`yhX}q4BAdwt=5XliCJADg8 z)Ywk&lojm8igdQUM4r-k+qYzYC}PwU<36{~_$JiP%x|(1>U6D&ZbrMd&!}Kk=}+E) zr`jSyCGTHH5u@B`l|E`T&kt{H>u7km35W=gq*X{(J2c@E@KX=*;yrKoC_5(bLe5-4 z<@|9P2)potDzLmv_xGT2YsUuZ%lp^N>w<;`oL$Oc{^hmh6agTiW)V5RYHX;6Mh(2+ zH$HE7rzn*!IwpqCe``~1D~Er;Ne&LPla|@gb{;0D(ZLiWB~KO#(`h7zRJ#2p!_8uL z+CgyrUK2SW2b;M>s8gi1if&lsNTs`}ydV-_h?DD4ojd~`qfPKT&b>1{_Xtr}=nuBr zOLS){Mqr|G;noY*(7=ARTMyIdktY)CCvt~`aHsL|IRc<}c4kx;@Xb|}!3QC%Srjz4 zRIh|d(uEc3XKB0tRWwtqYGMmIP?|OXG5ZXtS@Jx~rcSq1FL$*8-PD8^bl;_XwPx0o z155MrQ&~*w52dI;8q9)1M;Y!G8Swk<(WOrli!@wYxeDK~f8F{fJBxoCbIN11b<82k zDua}E$B)cNA)ihyg-^BN|oMF z>wVZhI<|Uf%5*G&(lK?CGg{SxA4`|_tzhW5sFNE8x}A>k4vkJ{xkSz09MuqCz?Ag4 zXGgA3Crz2|DG!?4`Zn*@rF*33Mu)R?Jz%hDYJrDM`)!IC^~%tB9RB&{s!xZJ5M$%K zd_(pJB1V+qYie^Xmq;Q?G_Gru&LA1p_KF#K%5%3+V2@Udv>)fm=%L{DIYCZs(IN#o zej#&_%}A~G59B;Qh{f}c#6FA;1t8jRu3`K0<6^3GVw}}SPMn||xU+WFY)~90gRHgIdeioPLc1qn}uyRyWfNfcuu?7zjqfkxzQKF{7 z-NZWv5Bc`^-o9 zC~8Cu^UN(mN1{Qbj}|F98|50EAwqQ4RE21%wrh9?O_G%nf%MGR5;QtB?}RVi<2b@Z zv5$xsj!oW7cD6I`{N<995}wnrJTUNQFw~xA4zAo&Tcmk`XZaXkh$LyZndbwZDK?%5zS^BaNplEmvof2X0gO?;R|E%xbyHJx7%&+Ug*N%OT@SqbUH~`S!yS&(E!otc;9E`IZ6hItX|n_ zwf>BJO)-uL1~I2d-@o<_+xwVDJT=5mmfbmOmycwk3!|5Dw)y?n=*fZ+=%jj?#20eJ zNUx0|3#olWR9q=?zO37~t({^`qe}%-jYh00buP+4+3y@F;`K2|L@Kj7s667&0^EA9 z=+z2vRXR%b?&!P}>U#bOK zb55??DgQ~7Iuv~sF?xHK3Jjoh$Fb3!rcTFx|H`KkHNrK$DQkZt#u1rPPh~o#)V=m) z7)ymnjd2U6D!_1J1z$1PQKdTOf}Yp}g(QZvvx2B%DJ=1)klA0)X zZsX=;y?mpwbrjjDaa_(VDjqtb2*bL1UHxq5{4XunZF6nhz(lLDnnk}~yTR>7 zmri+(fG4BM&4LSA=}wO+n-T0>cW&x>IOpY9-;u7AHGwQ+)#ibg> zROs*mJ?3{mZr=+)^x~1Jps0ChSNX7yJnTzj4Woy(Dbo4pBwxEXC{YjKl~L)?*Z>46 ze>c@ILVl6v7Tvch)l`sqBfW81JxRlJ6EwTu`sg}6N*mSa+_d3)mx{VdE9%Nb(aep8 zmkU4%mA#=Zi5=xyyMnX|)sz6C1nOp~7evEpV{qN-fEB^i@xG?n`h{@9O zlX6met|t>Y51SvUf6h7zoV39%YG~y5-*bx)DPo>TP@+~Pf&rgK7r9D}=4A3U{($fH zC5_J@e@9H2U(^CVK6=Q%b&e=HxQbdwD^m*%ik-y1Uk4W@gi`n(EiLLphX?bGBA0cU zrpd{%q64Md$Cc-D2*~NWCd5+GrPRPZ>fBirSG$arM%8ud?lc@hcJ=XhTsGP5g|>Oa zc`kW5wjU!$dOSoK+>unAW(OM&+~L6Len)SI869G@AB9~n9UQ4+YscmpEh^qO@LYBD zj9k>xa#6(rO|TQBm+Zb_&O98eksw!JxZ0~x*9i1+(CI$pKW5MRxT_EL-8Y8*l2ke^ z412TcN6jg9>Yz;Q4H{{6h!&yj#qUBWZF##2s(#xr631ZfUcX+MEAd`cjUas*{SJRg z%j(#Ly)q!A?i{2lTQ*&oU=%CdY79k!co`xzi&LfG0wNg+%Slnt(WvcxhoQ2um)6mfDrZGqZF$@Q zGtoE?DzHdF1^h>Dzltg>+W1E0bZ1vBfqK?QoOs1Dv(^{js7(7o&~n-aPg6?%PDg{t z07paT?a`#E7k$<7Vs}pa8?_dUd||`atVV-dkxr61UkAXDMzwMt5|8&|5oy3c+VW6J zEB>i;Ecve2{U^7KTa*T=ZKNwBPW&0jzj>z9rGq2)DCFNqgM*d#e_w-ULP3)>NLRqJ z^k-HK{8+K&d|=TC5-E5qcUH7|NVdRuR#>~4+99^T7tQ%Xs`KSVS<4Saf3UODqDj%#pZonx zMZWcXyCwPu744xIgM*=~>(xXUsC;_8ecyHD8Qo~nmyqsu6hz^L=wqZg{j~NG@Akg+ zmneCGg0G;aZ&arnI^kQXxH?R`ZKu)!2;CXxp*pMo{hmO~SY;Ctq~uwp5JQd_>9}Jw z2KgD=f3h*lUvi;WFI4}E_uxdE~XMm+!d0s{NrJx`CtdAL;GN2q9(=)NbNDC2T#Z z>*pSy({N}@^eUwXTtu-vSLMNc;PNk5dm7z*^mnZNVKo(Y_4&Vk?pLny)E|n0qvx)m z#+T}Nc&T0_fb`-x-G9EIB9Uu^h|$aR)UspM>4E6yMAlX5(2%eZ0VqO%=)N~JKl5b2 z7{~WoI={+lig|)So71+Ovb7v;@3fOb zRs%fko>R2pd}`mTW6PySYo-=aD)RZ?=%28SA^ypRg{cpStK=xs=-5P?v&H_JSpc+r zr_%j-&HE2VE3bKh*OdbxoveBx27IV!slR=qSBn4U2C|!_XX7i;O!zKKM1NMJg0AAK za|&#d@PbBi(>Wq?yKGJlKW+bhOKTH&yhe}~4q#l}a?jtNS$=I@UANKG8jhr=0qE zii0Ec^$ZrhOV=LG%v9-BpYGop5YzmmyB;iwdap=+LnVP3V zWCJK_K*-l^hyvN_QEq+$Nkur8=Jr~jZf%b6@O%FL_{w^HcF8vEiABfj+~(s@n}4w{0?1FsZ~ zC=o>$RFXTX(J3f;ZBx?cFokzVy-07QMUBL27pWyaF@Vs`-}_Nsxr2tbYD4-v8&$81 z0NyjCxzPy!E={5vA$=x*qG5$cOM%bOil4pTQWT^z+zvDuKst4Fl0e17+a`FcW#0U=c&l6f}_m0OVqfs0o<6dLfaQgbm(j~??|b1 zRcmSNXyR{e$IGaCdzWVYxY39i3yh{7f_m-s9>Nx#AQYM1{DG11hDZp;Oas7BNzpZueHVbANGoRIDwkjRnOh z5djfLvjja6Me+gfsPi?-m3Y#94ax3Mw8PBzh|!3LYWGTkZz zB9W+T6~$l^(w^iQ{gkhln9O=%Q7F0gIY0zN!}ghjB&}H#K*u6Qq{?O~{-E2VS2z70g3B7!UCOIl>8DsbA~mJnVby%_B% zKoL|sixGf@7IUS-0`qCbi<&C{N#!jv&5rc*a5xVA?*6T+OpW;N+ct%CH~g8oexE|e zyA42+N|&X-p-88e@{?mAF&JdKu^*yD9GhSql9lK%PSNPm0Em7**^2algA-%I7zmO; zM*)Ofw)-X5kzM0EP{@kwHSb7j6JB`Kz!3~njM*@F`>$gIL=h>%xbDzI7QzlKT6FJO zD*TF^q9e|hsAGijq^>_oV^LMA6CbN`oXv4_8t}$!ZQHC%>Vp$GU1bf;NFOn3AW23d z4Gm<~xP%r#S|9)CT1K4zH^?!P(I06yG$T^V`*B^rf4jM6^SHtG1I(}N91?PWlmKkk zGVVzDV^--;{*=G8ol%$PW1y3-CCxLRD5LnOQIsCidA=6=K7b;iBNJYz%0&%sD(V+` zP7#0*q`F%)*Ut6A|9P3b9}lUp0z2@@LHp*D6A8}>W+Qpg?Wa`O6>4VmW)Cf(k-6@T4zQF)|wxy{Xkyf{z8Y``3q#ZD%ylom>c&CY|2;H__qwrch zQpEa3w$6`R_yEl%cCjC6F1j9(Bi1s)O3y#S{wjl;{$7*%wj;Z`BwDf2fmCFA*I3sL zro=#$q++j1p_|&&ywdHSU@-P+cv9+e)P8(93nqzGfRJXp75Ea$LD{YbSG`J-0|p zD+o(Bq_%)<+ODaTQpGe!@&S@|uBSG@opK+=!4uEreHObcsH;+ij#Jh)QV}8tN&$pM zq6;^ZWOwGFpSnZx!%ZIxIv|2{_bpy?((FdWDC};khct`}u6}fIb;s^LvCxTs$HSLKrNg`R(#J{!NJvRw=@YdC zhQ{kOV)QtzcgHqzjF2ymDI!P!O8`Nj*8RuhEnR-&f6JjyRgmFXiVk5quO{U6*V?Fc zHH}L(cRuwUb7^DK_!CN7eiFfoejMIP?DXJ9()RW>S&F;-9nyMZfblZMYSDGH?tep5 z_l4~bsnTJ}kXx@D7kh13KfWnkCR&|W-dqDz%wzJHQ{3Qu9ax-ixZ7ilf^*Ny2Fjd_ zfKl17PS!yb^NUgu*H+w>e^d#nZU`2&1KJzV>3+E?3Xbj%5hFyje|Xcs2*@o0 zAo^dw*5C{O;M;+C4(UWqft#FW9#!2x~JsPy~=ubq4@_v)`Q?62Ok`09O{BYh+-(FAgZ)5Bd({G#w zL8?>hBui}v@TqGBUbW7Z?>8L{pt}gvS2X4am8fSV9c_-L$>{zrQXHl2Rf5_Y+ZYA* zeO8q6UbMe+y6CSZwmBFQI%iz2n{+yDTUcOPN~iIlAjfl%I>3~};vPgrzYHlYthf2Z>)a#UTin_Xx`f^M4l5&B_jFDQ!+lHIq5(H6>V{N7&zu02b3 zDIl{uQE;TQ z2R`<}K0a`I8J=bTd$~+NvFI zKRMn+t)t|)pQoH7-`*?%kw7!0j|TBlefTjFUFapa>l)<^6uL23YTFvHYI*^sth2Zz zsYr9I{_WWx&M~s+O(~gAxT${8I=|88)7fNv)5bt+voalD=y`e=;$iU>ReC<+{P!w_f#R1amvgW-6 zrH;Z2_dEoyZ5kxHf2`|r+>q#Y?*!Y>tD!-Cmm+)PO53;mAB`-%YmGFOa?qwDaTF~% zridE7KJDu>NTwC|^hUZimE}fc=!VyX00{c%PCB2m&|V7=<%h?MyNcx(X+$US$Wh(A z5-6o;k=DDwOW?pq`_CN-fKUe@wS7^$j#*F9(eBKfDL$Qf6ev^XEm9Op5E0K(?9^)t^S$qU#$AG$1 z97sjJ#gfWjYwx{}AJ^A^2^;4EO~>_VR9$RKWP{W)sCC)Xo6kkTx<0vN*z?-g`8&Sb z7ch+&)xbAdWI@FkJXc8H|49NuQOBsnIy@UoQZOg2rk7|mQR2K`!?Ga4lK)J3ss4UW zOZN^h(>_L(tG-`5(bR!c3j(+3FKMscd1uU7EM6|a+Jzb0k_2u_uBRrAk;is3B1~fR zUv>I;w20tI&ku(Zi(p?;!kbs?_vNz9=copS6+m&;ND`c0iB6XtT)O{7pBKu!qRttV zoM@!eskFBj5+^u9km$pi_fum1)*i3%qfx_^B7UPZ$!@SD_Uvy^=7ft7Z8_~+1&IKP z_8p`#azxPd-h_{Cjjmb$MwjajyJH{h*Np*wHHutTo~ysEw{h6U${>su>6qlTi7>!x z`?FK(G=B+&=^t3pdMMK&Mc`!E7S7-UpPcyeiKiQ6b6y=Lpwc}Y)8~?%>u*szDjlLg zI(B<(5hKcT?-Mi~`oYIGxi^49(CYw%5KVga%%Vo9XT&0}QU5Z=p>A`JCh>3J{Jf63 zzM7}Gv`so!ENl`<;Ne-4o8QxN`6P7t#IzFsf?`7gV5V`9!pm zl#BMO_@em4WV(l!%9QD(6)^JiX~f7?QQ)+o<3f`JhZorjHoEs@!`t=m0~fCcLocxkij8?KvP)K?R({BS%#5 zi9)VgO}vQDh9Sw7k)kt?5LqW>3Pj|CncME9!RCj=CvR{) za{sS5a2Q909Qfe9Wb|msJS5Ni!}^HOxPl$G^KY>;miUh8v|oq!-`b4oXr?wvZoi_B z=^o7Da%)70v}qcNytLx4URHp)mD=7_FX$>!`$)HMHy~tJQoCvf5jk;(l&XWecn(0( zxNH%NysA=Yu7|XX<4R)`WDDg|&q;NlWa&pmJ#@%1LjMFH1cx5x0fs2*aXmZylENx$ z_*L)!U{^_`sB-?a(fUAB-x)*<6$M^NrwgVJr-$~@A>6S9Ao?$U=dlAK5vA1~`P2%)dXZNt&Bs1Z z*E$#Ja^R)3?WOeWChzAZ;i%4@)C^GCA+@Uq%IFWr@Hq-Zz(q=27IetLj`8?EQ~0vF zoqR*~2Y`{?)b$8a>9*w`sgD57M>kZ~KvGkg%jcH3@#6$AKT6tpGukGIiJis|7O!hO zE&Xz*6oPa3JsZ>LRJT3>EmtkEh>=|fUM!R5w)#adD+mJrY_U9b0Bb8W#e}{@L@7DM;|j%=~%ZL4djmRW96jYE`zRlccC;@`{g^R6;|uJkH%UY{sinf&+fztTh3 zYFK@}=U~}U;-slTdZdeBM2$)S=&G zv2^~Yr7-pz_&N1+-Ezt9cO9qB@8{e0EPyf(5r(lLY7{nhp1yG!{k>G|6^__nB%(#k zD^l@=SGEuRx(6rieyZZ`0XMX-I9Zu8ojQ#lwlUO0A44(6h_co3U!Dg0URBscLu}5V=2v#e$Dq+b5Uak9Ej(NU_@iBS9A4Wc;A}i0USk#jb8|nqAbR6y|p5Y4qbRB zMqk1p>I3p7%JPB>7>;3<6%@{9DGOW!_iW2QKdN0+$0bS<|i5Yj<~ ztI=uVJFjuNPI>zxhEqC-S&Cg7=u;)s#L~UY(IUSVUeiRRi!gMxjaUe_+vmIeDb1sK ztJJQqR_XUmfOnGVmg3KKgbC9*dE8n)QFY4Zmp2NAtWrT%d;j{{Tp_QWqPq%SmZ@J$ z=a^1=yk%BeL1%yeNxz+@5t$Z)c85!ywfBl`(QMJ^a-<2{k);X5ES&zkous?tJT1bG zskM>C)ff7z88Sm|sGb;Jo@_F2uCgVQCmz91Er`x#?yi?u04kX=> z#&+O$e6%i0#f8L}8N~t7o;2xh7z(@+P<`;eQoq@Ajg(4vvwhuZ`a5pE^LL4r<~ zS#?_K;*KA4w?&P@eqDDIu>TL`+g}VD;UCcH{xYH%Bi{)2fa9-MX`FN7JNfj0^9T71 zC2AO90HyNWehpc&TkVnbV8{*Yp8MGCc@7`J4qaTqxBm|`9vS&alk9FqjM@NLsdYzw zov?XrDIRlQKj-GM{weLx+%&9}bn4hA`H;JDe3j2>1GFfTouiKqalVXliu&vMdrYxE zqy0hM*cKYg3KpC)n$&KhjG{;lUG}{}O;ZIi4v1=5zwz=J;Rk-f-1nc4(CRz^p0UmI zMWl;TaFiZI%s-Ph%~ZNW=|ZdV#m`NNE?%hTo?ql3=!LZJe(@rOdSAM1w-^{=G#HYU zCkN|)!)gSI=xRZ<2oWK5$hcSLSHJnccpZVid2Inkh_Dcxm{KnKT976C_6Ih+-Rw@i+m$hr0aLnO6nI$9m(amX+fjgF^TR@=6k!e+8MYa z@7O6pyQzBn!YL(cS^!Zr#|YzrndcQ1O6D%wU6Gl|;OhMag>DpGg0W`N)CW7W1&hGe z$RQ$diQEEj>_Go>hl=N5%hor4MoJtn?Tl}@LFI-XlEB>wO(Yqd#ocdS5I6mf0K zh!%YE=_E%MeBisv^g0fjS1qc5`R`1+Kd&*G$LJpCmF77Hx4N=KK3cRp0MM({Z;U8+ zZNKvM#22Q`8L{&BQvr_CT(NGNsCEi$Sf6NGyYqDOPKT}BCmjk`uLAkXOcYDHdsEC2z9E!i-(qNTb< z07Tdqj@w^+S?!fET3{F}{QN47>JMzLbN(LS|2BBUJo1fB{5nqZ_4oh^`9-Qw=egXR zW-1+Q*T-(z9y3?`(3X*Zq{Utj?HZ1UV~#z?Xic&^g@%G?1UAyMDxJvJ5yzZq9mlLS zIq78-aA<(U#^!lUo%hLrXIwYbha8>!b_P-{LdAXBIW~{~*T3i6us;Zl$VsdnTK${= zLq2YtgET&GJ68+oH9hnUvhw-s`1`7KdhhXY`Eq^$Wdl0T7ld_3(sGJ2&{|WYb32q2 zHEI&wkJE)>9rB7Ez3}M>B`RKeSoGyJ@rA0OMx7Og%F)VjSIJ&De{GM#$i#G*y#9LRVT z^6`jUG0-SN#0`*P1-(x344zSdn_UM}DaR-)8I_$ha1u-IwE$6RktBE|FRcS+l5dul z6nNHIq1>+2Ct7|Cy|i;w*9|C1B+8m+F&&z1(7pUN09=FW#*m4 zb-4sCYb2%lMUEWRUamXO&~Y|RG7VEfc%~u0qp;O?c3(HTr_8&T)i;>btR3$4`p0@U|_Src}tMxDMkazu}IOY z2km=K#FXd`()a4}qbrl{7MJLL=o=r}_zG+sMvl6~?vWwah05+bD$D?VSS^|Vfmp@NX(W5doZCvD;MV_X{e@v)Qsx*X;(h=O)L_h^&|`e6(e0!OFXVG$ z(dro01d5Da7w;!%29LzW7m5NR%^iGc)tpbH_-9x~F;`cngXsj(qE~*d0SF<_2+<-> zEefxUhO*(Uxo=duH`%KrjXtL#@*gc?lyi%`O*9}h;vA1v=+xfz=VxvaB1KWu)i$UB z{DgCrzPDKwGu<>3hWJ zPi*-WUddWMk*^kUbvpj`Wz~uichMs$J&n$vjn%3jG=FhRFN@Y6^7n{2aCp`)rdzQq zLC!MqUlA2zJ+rtmYq?A9OA;2dci8Kv5$K4&`>IMO25goxx(})D5!<9ptFwJ18YM=I zvh#=vo}|+)J-W2q-imh9Ko%WX>HGXtbZ%+1=%Qby@WO=yp-W#UUZgu0{jMW124&Ul z;ybU@*_NY5IS_O<^hXe1z<=z!(2rd&HRyCOWk`Im{xI(2o~hC)Sn_;b2p6$`3gHWE z1BLyj^~EUmn(srHOLwbz+#kM?^{CQ)Q^wVgZ~Kdv7C}9u2M?V5 zasZ}GD_(yv%%hIc!K5Jqwz)4~G_k5juI5W{6w1HZIQV)bohqHKA4QE|D$9K=TAy;? zSuKbVVHqIk-so=xXgWOhb286pE~f>J<`n9#(%u6mBcU454y8b>yq9(>~u+T=t`*B?{m;G*$((7p-{7a~P0@(QoaD|l#{cBY!v zGV&_b_u{X0#h3vcUAw#ffNwd^_^zwc>AG}JRd!QKw~hr~HP7h1(dm>@Crw3^6}`!i zrXU0Jj^GhfnbHp>_Sfp*?ww#~(oquz+oLxQ`(ozIe{bh{?~>=e+oDEBrKnNhbyU3E ztDh%Jp2JL|gGaHX!ma2;cSJfbqjuPrsne$1Y}$_h(D`GE4h?iWW1y7J<`l75;=<38 z&!?954e#&5q`G7EG$m-KC=b2J5n1wcTH`rp((E89Vj(*fnQNRt&VjxQKl z`g`yGKWSCEh)?(aGk0WC8{YBtD<9nIVc4Dl(W(uiTGGCJj~IOm=0E+Xq$1dua}Mao z$4o}=|3sn&7O9l_piR=eZ&O;@7k{V?2&t1{%1g@ESk~4l2%7dDN50z;=>U+*(Oln$ z-!sNa#d9=QPM>2PH0B>6>OAwDMbhmoO4Q#EZSQ=3CN2L__fOYLfD?H~4wk0d*7i+F zr{lRUd)hUkLtUz7)GM;KD+c=){r1QW-SH?{JW~?@5V*u4;I{9-345M2geqssp8A^MQjT-<{*8 znb$K~`1is2tj6N5E{YX7M;ViD zJfFGrj{8ufOWW-fX`l7YemmN@yX6yoK1ji_IQJV1GR(^ugSLG}xOk*e_b;nTM`80G z2~xhVwN1UG_xcak3b*#_KZkzDH?*PNP9iWN;F^|svU&RD=H2Pix+=YNq8}5{qR|g~ z=*!Qx8W1}6a~}4)QlZY2=nDCCR>SC#f474nwFn(m%Qbo^om@8zbh-o1ADBcXmNncQ z1F#Z>)BuY9lI1W54~?W~5yH+YzVN0|=n(z>O*g!agZda^BL`MkFL%Q6BM5npElOsa5T+%tUKlOdF9@|-4sPX4( z^GezZ?fmO@jc5`E2(v}&wCHV}EjHIKQi_Uq^wU(0UL*-7aJ|!3gbG&EcD)o_FpqKR z&#{yMV@t{ahborYDp7K@0OnL8|A@H}Uo}#MOHPVoVH8hbrSzx#@BUaj|IT&rvMVfImKy{(x`Kg_)d9b>tY+l)CqGmQ4$mFYgmf@ z#Nd=b$(0^q05;QQb7Zg{S>zM}Fb(_E<<%zTg%)Y@Z;EyxiZdHHT6&wbT(tg_xkfV< za%D7#gX$4TiV6c%+0=jiNApA@v~O8l0TH91@}&aVv5x~NIIWm>#C98P^X|ol=pHH3 zqaxi!ddY50FKS_-mYYhTblvw!eb0>~!f@lGIr-R@FvSRwB8o7OO80jG2s+kN2SUUA zE#&hi0R~ETLzNDcy7!}VDKt#VbWo-HoXAor(*4+ug^elpbe4kBe@#j%AyQ0u;elwe zS7IXpjqb$f0f=5Y7?OsUC{~4%CRy2+jGJ+^NC6U^(rF9^Wjg6@p93N3YZyVL4$&f} zQE0U2SQPXG7~%vpxy&$fdp6JGPP=2h^@CzBeWRo8j>!~b@GY*&?5lPvPM?Br2h zrbdVH|NM%8Yh9kZAOE-Y>+|1&{R31wsh>lDjY>BbW{{1l6r1;JG(BGv``XtU7;E4P z`_4BY=Q>{TcN&d(J}7~xY)8Hw)5GCh_k5qDF)?Ptu`KGk>*s#V{Vdn0yEeX{FwHfR zc-dhmzOQ*nnlZNs>i~`rHM)9WJYH>pT#b&oMg&ZM`=!Va_p4;>e>6}4MA}IG2nW)Y zPO*HAT;kulzfdN(x3s9MwwBIK-g;X)$x72qrg zqK5q(NHsuH+_P&Io>@OZC|IFR$+UDuUT0}OCw|j7;5yH3jwf(4k(+glx`9_xx%(;z z312(cjdP+StU^>hyXi^|Sf&@%*g%?y8H?Utj`^?`3 zRk|)}H88?IvPOIE#5Qs-_8apzq#A(xBh!op$=mLfFW0>(ZG$MTq=_dEHz#=N$3- zyJD`T(dV9(e)%vRdz`*2OFTaJb71;t^nF32OY0#uIf@o306Gv8TzFW6Mt6XX2PVdV z1VxP+xvS;%Ppx(ujH+~q7Tx~oD!@@rG5U1RD0Fv!b&zyb`fxWRMt5v}_4aCwKdjy% zN`As_HP6)k@Eb#_`=?>AJ@vwfh5O%^jswm0pwjK{w{vUN?>+0FKFYdxtE>6omBa~% z3YUit=o~LEqe$K%?Obo%Z+iBwqk#mi?%X_rlw0*gqh6UV)98GaDjB(g-K7sOcDNr3 zw{EwBfyg03$F5om+qKIlT5LDKw1{Yt+4ii-d2=5s(%Ftaoh8q!G>VJXD)N0;Q-nDI z@g*4SOt%yq%~Iru3U#__X#=aw&eN#Tw6xqIpK5+X0iqf@J#I*R;*tXxqW6_r%nlf7qbWhY>{>MsVX_`9Z0Jw1zG4M83{6U z!Y=K&*+RM^u849M7L=Yf)j9@~wme_aF3cP})}CQZ;!Y(9(4g%cwUOFZZ>JIBw$YU> zcPK@XE?ONU*iNF)>3e;V*a5nO1XyZi8LCE$E=Zg6zC?3ZcSl%>QKGX(wN`e+jn6H&uR`(mz7{U$7Qj@%J>)ANk*_b?5(-gYOSJ2^`l35p{N}YO&XQDdQ4(MpUK)ID#tO&m6~`6d&XyJ7|F5Bt5G-MsiOw z9m{P&)ESLP5omM(J`qKtL;7)3sAJ?v>lZz?se+_q+Z93#YKQ5%4m}0^nMA%3qC!WW zlWqbGrHwypXKpy?emG|sqe^Oscjom<#L+Jx-bG3o>Yqh&9C}^Lp}#{{cGj; ze++zDvDj}b}b5(6)^g9jBQ?9 zw5WTS);(5z&QUs9F6tV2L~WJj7}dUR(Q!VvH|nfk)a4iPC9DR99=DhBWsm$NsC3d^ zd~jz~fC0tKnB(9|EdWS}6g|kEm7luF5KStoN{5CAfavXNOBLxbug1p9mFa%_G2M$? zw2cuX52c6L0;D|wg!mDU9EnlwPKQVlKoP?AmRIB*OlrJIpTqPtH|nR-dBN)76+=g$ z>-Ji-NYD4NSE5t<=#Bb~bbnl?`#jMX%9&knQ0Bz@wDYD;XR_Yn`9;=2DwS@hboGkj zoT(GtPCyFhp~URAdn~mchkHL4ms=s#%}VdsXFKLOU@-o-;wKIy8~|AasZmVSGdeTy zqo5|KLHV6+U`d)Zx7sr0E0KOf>E0MT**ys!Hs?~A`&>7Bt^QELlnbd$}vZxzJJg6B%?pAX&1HXDRX!Z@F7?xxHn3r zMcXHg3Vud{yURCgCy}ogF)Cetk;-#R%BPz)I-S0UOH-08Qo6`5-|v#%|FES+ik6hy zcbR<&>25nuNbhI5uA`h#z?&HeTFwmE+*n-2@f3(zEKmIP+lwqc*`Q0uhgP`+Tw zHY7gPE4rG`3FqAQ^K7RYblR?C|J;}-FciS|qWzZqo(uE^nKl=P7p;v45eD`<=Vt^; z76pp??R;=XhCmBPI}f08<^xlz)uBJc=Y!Yw(|Ug+P=xbF$-q+sJc^5aC7B%Wz0b~! z4}c(+;XuR)#ootMI!1|9jKRkX<&EDZT(6HW-uQSUip$@ZHAA!r1DBxEos7WI37o{m zl;|GTDDIlU(94Huf0yfi;SnS4pVrbBhTq|N(fpz)?n+DJI8y7NPWK;Z(2vEabcZE` z7LKJAd^IYa_&nAXlQ09zZKF1H^~y771$m$y!{jmxoWUb5%{ zfzG-(L%y_<&a*!L-&DhNQ&8m3ZvRjZ-4}&gj}S2->vIL8`enx$1E3*Su@A>FC#ig< z>h3%PowEL2bN_4vQPLj3dAhIwL*9VSt0~d(VLtRP@E1T136eHFNp4+~$b}bF^`v;7 z(ExxRr2*Q*qOy{FuMgPCOzg#1$?g-|ras{Hi2MT`*j;rtJNPR%X4 z=UC`Xf7yr_p@BnwQPAj8lBJ3(cvyXP_bO^1Xugq4bYBhLCwQW+-dFv+dnX;&SalUn z&3k2cuWF7FB}QW(G0}yxmww<6?W0~aSQcJjq7kD-PERn}TnYLdINnNq*ezW@2K703 z_cCw%!lOq@g{aM|i0h8pMLPsnVub>CT7>Bm?;Ta?oU3jfv|rnHn%CuGMO?{+AO5?% zY#=HkNVt|+TNWQk6qnhiS9Q7AGRjJqSL6c*r=}1r&AjHwCMMg=2U5%B=;db8_HwI5 zoR(R#*FaG&`nqyzPxflFKxOfPTj%Wf(#D*k;R`-_G^nHmd`=sEu9)BgxBCDZR%L?| zhBa@7SK@2^3E%CXx1{@{|4vwgY7`M%<>f?^4DdYZW!wV@X%uP8L6V+#6V3deHZ71$ zs@&3Qgb~va2yq2zZklrlVHAigB=tGI-)kU_lKjh7P*%^ynn;X3iFAO9oY2H?q^dFTrTMm-tCuOR!wu5Xpx20FM<2H{dW%}~sqP5{H(A`Ck z5`7v*NpI|nO^h5xIRyJ`}2$q%nitPW841w(ROEiXnqkv(4El<+)1in=&pgIEkwm#&9>gN=+ob@ z{Kh^x-w2rK{x5^$AxU;4#|Y6PD%A1nPcV7Veseg3vGT-~c~5lgWLsaxKN9OGzMutP zv2PZ);?AcOtqB4-9E^%IS5kE+R$%LpHk>1raps4nRSbTM(48J3=W}K9Xww;9a{S9A3Xfd9XKU*;A2D7nHDx-p z7@XqySe5!URO#9aY46c;DXD;KA32JtgQ2=?@BcK>TA2%Ib;wFkW;a@whh#u0-i=vv zl1y{dXf(CvsJ}Oqi6$V5w#p+=*-@kpCd$ltbbYzq@LV?Tgx? zLKpq@z;-U0YaPamK*vYB|rOypLtw2G9dpZmnPR zh^uP6o6z5v5M$uWJ$OZ4Z0U<{%5$l*^NAgI!tE|pj0;`Otps5jrMm0rOxL=aN%SBr=laGbgCx7CX^J_ z$z8JhB04<-JQt3lN>(kpNED0n)fMYq%F<;!Ey`+7aXeL|s^t;og0cL&mmc|9rsEVqLCtDv zYF0WvbV^+=j5mG4x#Z^9V$SxsaO2-|iFFC;LZbSfm z3B(WJ=FupydUtg0U#%u0>@G#C-iYQHsku5X1flSudhX8z zM2H#Yp{G|&}o!B>lQb$98h=Nj@qCo16rz}Kult(R!q!FYSY3RmWqfKKu z*kJ=l_gu+WK@eu1wRs3K^bsU`f1dgEJx!;4g3nyy?s1&@>}YG)R&^RV@s;~X*OWYw z+BYrzquvKC$|zvb#_(};$NZ`>zHhaSsK+o?khVOerb+Pa*dGvISVw~EH?Ks&S59r+ z)AT)M?bx+8R_eyOMU?375$^c-!u1IN%`+J4Pr7DvPK)tA=l(@UMe>8HVCY_5m*zem zJ(2!W8Femwe}ryJyr8s~(jvf^0u15BCMdG0*@1sfd?81Re)&`)xoFFi8dX_t@XY+M zG5b30~chdIa!0O#aJfxB%3iSGO-k3JO;nN-VP27hCpZHqwPkVdvUf7m z7CBPtkPrmfZ=1(ZD;HP@5B;?7tYh#tl`lV*tSvW4r(@}E4vHs!4U&ZvY~fS7sInSe z;3Pc<9zpu1x`=;gTcyY*e`C)jWByncX&}XNA|sHG&&r;A?)$&XCjJgmz@&Tc_)h6Q zwWH59v%jB_p&Ftq#RihnoFLQmJ)ukoDr~j>U)$bgU2i*Pt&S1JVwmfs%@!j;Gq1rT z27b_1ah~lPL>Fd@{tZKWnVG}k2=e}Xk^7S*-3{ALG`bMd!G9yV9gPAyFoGeN=8~Sb z@(*(EHIH^(xsJI;vJMgz_&7a03o%f-JCy0XFTC-=o;9Vj?|DtY(>4Z!;%of9`$-T9 zgM7@xi^-ZsFyi-cn>J)2H82(3zNRa^|QO7H59O@Y47mFJGjA#)P zqF*Ng2HHuHSKh|zSm(f34^t~)Qgt21Nm+yehFO53hmWsx`1R6(&|+qe>cu0QVyvda zw&xZ-LPUtvI3(E~T?~^Xq&`@$g-Zgs~Q>!fsDL_Y3&1T|V>B(B}E$7mn}8C!T1( z=%W!JI;!zK`rbU2?z=R-=yA0=MlY(-=^O~XaDaqp5q0-lu94L+@;ADZ>OR2CK`ZKd za3GTPyV2;}e{F?b;ef$MqebEcTYr%zx^T~;M))vTq@nL$0iHyoMYlbfl2kf4g-D;% z#%=H(ZQb5*Z{Hdy$~BDe**mQ+6Dk3U_MAdDHjN_r->x0who1JJ_Mt_Fz`g$HJxC<2 ze)P@&5u%SpJD_v_jR=I42QF*5vO%wlh!Jv*N^OXhMFc7LNnwImq#aDD;~C65VIU z5flel5h0QgRsbbuIn5HjVgoa2$1a7*;bvAB^UJrgXci)|e&PUVVt>!dYZNh`B*wEI zE#mSuO~6k!;lQ|E@5&SNKOtx3JC*L6G14GyzJXypGx3`T_tINJsdo~2gNsz;HEhw( z=eDfXb<5H3tftxD(@ekH7LNv{wsX2+l&E4i+a}zAsfsbE2h3{A<=h-C1iMokAlhk8 zFRW{|>q=|0z&hA9aKvTwA6V9McxUaJcdy$%%6ed~QDQnMI|A+Ko?VxAbyO@8uLFo{ z^W58U{U983la;u)ywBw zA-*v4ze6KPtYI{)&sh-28#>R|@Yo8w9{aIbvKv#KKWcT1LYeL;Npp*fFwC2DchKtQ zvTk$f^WgJm&haP5)ivKPKcuX$vr~LYdn$E*sK9Gl z>J;d>j>`?eSQM$Zd0Nl=H3l_3plZ=4{RaLBBWdt?|7&+At3089>CtBfSaTUYfNoyB zIL?dt<2>abbLF0f+VYFi^pPsj6{XKTdg1v+6kd?jn7&BMDSULGA6tJiEP!vTfM~E+ zCmvRQ&@LMun8!a^(C8=k!a%C~+Wpe0z#z{^0nt78?A)`^Hx%hG{hQY&c$?}HD3ADV z?Hk=J&7JLCAN5haP<-B7uxL-LcF_lKtTQ-5+n(jPKklsqBD&GgcYO2?1mNgKDrgin zAI@yQT?IAvTtE@%{Jbg8p`&6)3+h8huM^8RLaho!jV==Cp%i!aE@ls+0jJ`i$pO!W zMS^DAO-vyYiadfebIEQ{=jh$EafCnD4t_9@ptn>99*K7^X&^#j1**+;w3!rLirgYy zNbgrm{7E?qc8&!F8Kx%6u!;n48x&1B@LHB6!`%jF9JnD_oX1At%&%bPS4jn0odOj! zBwxSEMP3y!*?It~Pl+<6f2-ECvH4Ik(|s}Xm2yhH+ZVGO#qCw*{2fT58=*uvDNd~` z5hc`J63tRZ((V?a{5sFV65rwPsj0&0RqD2>7i3*_c}PtS5{?VaONtyJN%KYD@mZ%p zDP69T-aUW+aqyY62r=IOS&B^a`+08I!XrRbp_4?VTP%1)qtwAD*)7rs$CXXD-I_I3 zxZ57zbN^mQd|#S;_jW!WWfv}5Z6idBF8#wiQOzk$ZMr0RZy3ru00fmJ-HmRgxY!Rs zQj|M7YdGlRFn`_4NsuXlz6?wVP{uk<-Zv9@%1Nu7Lm`#x@yLeYkARl55hsAHr{LhfKgoMog?k$<3e zTn}Kl&%Caq*oJT$`m|L(ut+~h?@*A4_T&eF49KGuo$nY#@%eRtnl1fkXSUm-MJlJ7 zE+bUwGB4aazwjic4pJ94NOp%gKw?L#faubbe6fkqA@87-9?-Zz3K z%|&nkfqOzFIy<8Q4M+xmjX|WJvd{f!lFZ~vO_)=Z3%XAFXi-)pW0XmwQ4aX7VHtF~ z?>R<)UhBH2(twOd{AdKkp+u-c3h6u}x*S2j33-$#9=sO${({zoO`1X-ZOV5yy`OxJ z>9m+qWJLi}qQ5T90V1J1SDK^5r!_^1qM7jbpHciNoj8lyOK&^xjb#DEw=Wjf2IYGO zXHcf$u|$E)61a8Yg{WzCX(9|!^i5i%o`5KTmpi;JTv@bwq$pScJ0k_rozay2ffzF( z>fecVCvdWb6E2mEpfa7>4W7xK7l0v_rhp zG7c zLz`xKNx4KmE^+s?N|O zWIH8=x;rgge|4v}hLm>8z|RM72tlJmqqsi;L8?S|nlMk2>W0S)4Sw~)b~(|Mq6@@8 z+R@yQHT#%kQ4uZL!PQ)^`hn4d*HzwQ9SRh7J#U>HEj)xyr?~XxwXzo*5E54@(AiGP zvJo+A!6OAnQlsXPnyV{aF05mZT&4KOjGj{F6D_#Hr_)*U*3NvNpub4-9FwQ7bQI4= zpwbnob(wO){035Js7%G0Dz;A(WYBFXM*$X8rlnH@Ki7u*V^)>w5>z>R_a|vHBR{&$ zYZ6VQ4V*AIR>1|&L26MYn|zYKW6FBgwi zV6%`W-z^fVb1W2Vps3w{wrAtA12MmlD3T3lk_tIox>INXMG#@I26u2QZRhiPn<|M; zC)QRYLZs0mfA>v!&Py@u;Mg>tV&U)f8>=#1T1HMQRrYlK8M_jTKkWQWVfcN}i zhn0E(hKHt3$C^e_OA-b~&*Q29iHda3htK2TbNak05PGinuqatbBSyzozlfAMT^3tD zl-eY_MM8|BGnMVO@gkx|A-*tg!VG!c6Y+@A+|KiKF6)YQCH`sCJPt3i864F(q~#gq z$Psra0iZbk@5lY^I=)44^bb+#TC@n}Pwz`tcc^wCiTOdEOH}(%ot<~RZjo#h zWf0le!BhuHb)6aqgnpF3(%jGSSN{X%wLdSxP{J67wNI+%cBKerALL- zT+r!x2}P8bJ}49B6p48{BDVnEh&*C=j*wr3`S&dFI@swgTX*Z7(dE$IZaF}*;;zX~ z4P4EX$zVA*C1UOF?1#20x1C<>UM~LFC!MBsBsgY8Nl=rS3dQ@*WH9B1+ zy~I0pjk@`uBGco<*E5M(BSs5}!HDjkB1;@+@OVaxvLM1VDNsd?6GW7z;)&U2T>|>F z27QP3N$GNS!8-WL_c9_*X`N9?zGx#`RMBshrNSlEsA(R4yI{LsivW3)0DG-iyT(s2 zvGYON*@}ajee#o*tuKr2zS|cx|7qH9mY=s0pIrRa_NPpDvsFi_tFgQq*T?z_mM~EJ zzEsy}>JcF>ucS0(MgN;xgos6)Ek9?8I!C^dl)5Er7p3<FGgbdB%9ktDAH-v=wxVXhYv$ZC;aCn%a{20=w)BiNPHa^!PKD&-HYco z1x8Xz-Fb;!tVXou>eU0UZ{FlG2MZWNI9NltqDBlGop(;C=qaI-nXs-dOdS0mxijf?Imf z#0P7hzH3hKGg{Ac9~OH7j?HtR)Vb##b=^1b0!_siT(TQ4C0@dZFU@PANrBkO!@sbH z51T3-3z&@!VdPxY^=H}Ah>vn6h3HZv%m)3`RqC{%-}BA| zQ||z@u&dO*vvB*E*6De#yGPDFbEGEFi&qm}j)15aV`#r+$W`wcK)Spj6|SlrH`YVu zl{JoN3ThZ(y68Lp?Wk8&A^{lxF>#nl$mt;M{A1pM4h9*axgc%*GSTdUzM>yHC!#d~ zO(iK<>0rY>%g8;@ZOhtun#p}vip_HUUg^NgsW?pR=K27dOZ)YwDR*g-&NH3FjsKEX z^L0+BGL~pilZkuyQ?!VNK{Le~R-ShxaeN6H9qpR$`#s0#&ui?50Al^;3Tu=}>k|lm z^+RwhCg4HUI#M({wYpUT(O=C`yD(+j&BE1LRAJ`r8tc8m zw$n9*j5n5ZfjAb1y==9RYAVc)_Bsdtl}SfB9rKMuqI|RIeKx zcEyDlK=%$N_?dJCUt#F;J~~)pzxc+-bQCN?&Jp_3?1Th3LY@)4jTB4U?6)2pDaEF!?@`s$5P@#Rxqd5QGCJZbRIpz_-wa!l)ABsO0o5 zvf;*!6S$<41@twsZ%YniRbL)EA3X^DIs1jV^yb>~Z9kv?&(fdp(Dys?c`fc*qkhrj z{2de#a6TQx7x2<4AR2(sBM;%uqJB{`eTjoY=jSP%gq05ILZ_Xp*V)hMux9OV!x3sXRB=d1xmCornr8dcYO?h$Sck zAZ70=m3aaP`9jFRa7-BA$(RA~`mX-acTcWy*PdT9}2 zO8ck7JhIfpRLrbjoeFa+{TgSs<*bSF{+F7+5S4eQuUiHyub}9qD%zZ6HM%Q&Qvl z{LFR-WP99Z*7e=QSO7|~+p*eo3VPhpm2-_)>&_N@Jw0saPNUm(Wz+Mv&5oaB4v!{r!Ws-u?zSG7&gZWjc23K4ngE z`K@n|@g3?n#W>-&B)*U&yFsVBm-ffd0|j5TT!@Q8EgxLzSmtLhP!BpCN{&1@s2Vz& zJg|96c4ItrA`Kgz9N2LW;~$B9ZJRIZpw=`7m*}Q4okoxzf2MrVW2es@TG3a4A4+w< z5trmXhI72}r3rpivU_g72|&|IDS0TjwkU>*LWmqe3P1 zksQa4I?efL`Dy8=G7?)TG3}XKWh9K&TLW1C!c;n114j&-^&CRhFv^v2`)%VNsgA1i z`r1h3nkV2>W1F9AR3B-+>Br=Q(||I7!o$9}#;yI2ju zGIEquO%SHld?UVqDfuYB#JPI2CKn#~ysuNig#%NkJMnFx(P<5%!Na2YMHF3dgmm8l z5`Yk*N(^HoT6E=&{^5_r%Dd+Ad21`pQjXEqEu+ne)9KW1 zw(Z&;?^`3T9xiX7QETC*7kXt~25soUv2$=lB_34PCLoG}cOP2-sZgrh3+P=qec>Y2 z{{i}`DKS>5b-VQZHSZq<7j`d_H&L25F?+>!y1XKPt}Yt5X#LatW9RU3p%OKsj^FY1^nbZRN0Gh=ShSh{=a@5F|}t&{)` zIqQ*HR%a`V6zMMRzW>6Wr|!b((O-$I73};(I?`%Wy`$18jv0NfstVmTKPG)g`JQ9+ z=e6jsOhHgOV1uPqQ!oU`VMK7UY81<`l)Dzs7G>e(t1{{0`%@4H;jj)Mtz6`U`9_rY z)_2;SAmiMjrJoGZBfS5MWuwnV%2L!YYT%69^&F|+o>_%zTX3pxu3t1`{v(y@Y!cwA zq+=NwS5V}6m#XFoAmadufM;>pqE6YyKnU%+HorSA#eI>K=LXwhiG~aRJDpywIEN~v z7k!(hlsWV-P&eIej0L6BarsPKHPtC~*PGK1ru__Zj7YzUr|8=|CF&c}NT;KKlNNft*GeTuO(W8a zT@(r+X!^>YldIRJOowx8ZV@6!uZ&hl$?ohNJ`l^p=J-hk7%=nF7&@A_J?!%`ixVl2 zt~USlb7T1Ij{8;CF*+_P(;X3?V~ZHYuu!B^r#sSJib-<2g!iL7)|}f;pxI#`-S3%E z;hAGD4z^L@nwkvGrdJ8~hZb!EDZS3FvtkH55R*j6P# zQACjvKuQn0dI|yz5g^&TMvfl4vWZWXN+%W^QmJm9=b>mAmoM*$SaC8&eia0r*nC8a z4nnC?Kd_&FY7Gg%P?ux$lO;BW-A_ebht_H9%D~V)MvmO2^XnS}6%37Q(YU)!c?KRM zG+1jY-9sz7f7<{NioBxHJ@e=7!w|klfma1etX*_!AStH~d41O=x*$GC_r{+c1(kUq z!T=dlf++H?^|(YsKtb1YpYA3=#N$|<9P7jLmjoGhy{dWcRF!{Duc1@vsM?x6iJBvH z*=TaDC-!2k4uDuj4x(IW0Q3pE9a!9tz2f~~o*D?t>ZL>iUBa-!UkMh7K2jWqcn z=`6ipq}9kMqQgtb3RF5-){qF!c|!DD^SpV0hV?q;QrY7+AVs7|FUhB0!~0|dR-2#r z`>)iZNvc)E0-dACfbQQVmWZ@SkwqB*s?xFbyDHtE)~sKNgfpX<0o+1h3OP zwFEdafMo4G>3Z8PYI7+q!bCc=&R^I)Vcw|b968|G$AJ_4i&`&dV9KT;$)ZKs<#QG{QuV> zF#Tqan;P9QfA>RaIYoyCir% z3#V_3vgt5|sQ^RrNC7Nm$;12#suZ*}xHP z+y5F{Xi*;pP?Y0dG~PX>yIHpg;3p(-XU^--b&H|_a|O9+t5_fMzTBR!tGL=!12{<{ zc-ZmN($2FQy|+3hOoJ-hscNFS?JwQHQRTY7QXAXE7t;IBoFm_;>T^DD&bcFvqtuf1 zRgQW1J5sn1MGo4kDH(d0(ejR5#yjt)lSzK2 zL)hc%)wP<~yNl-z4hFoR1ZOKPyjnVC$&Tgfxm~Uk58QQgNrw511o$qfGYyVWX+v~+K3eV^h zflZd{W^{f#9A2KYyyX4HNnh&# zY?JZae28$)d1_ej0L-O13}qICi{UY01EDhAuZ>Fg7vGP?(%3Lj${USPNOXH> z`<}1{S+?vmfrR3uRcC*f`#22O|;F-oMP8V8>gS%5jnp(mJBnc`Dec*NbPIA`i}ejgH| z$`rh58lZ7dx+{?%-Ug~)x{a;tPW$n))~sRFCyKW=K-55$QRhDS->T6f&n2;dg58I$ z?-8RvuX&SKCVX$b9bwMUY7E$G038L!Bg!QsM;0k!gsFUeWx9xLdS^{VJib6n`#YvS z-^ti{Z8Ee20d_iRZjS&jtMAuK`AeLtnrdYdX=(3&5y=!>MM0&@bL6=Qc*boU?ma=! zrPoA~6iqj2?%GS&Wd*uRiSz5O65^nKNq!v{29ETa0d^P_N>bjeUw1jW_Qt{P2SVy_ zJ8up;?NiPzqNEh>>$Vm&x^ov}AR9s>Mjx%8)BkR?s1f=>7C{eog~%F+;r5$DANzja zyW{uv$qq|Zn#Hl`#K&AZ0Hq|`oy&S${oaqG7&QV&qGY!Qi{7-c2m#VHm+S^00;P_i zXv>|xn5r_}tCmuLu@I*COkS2whruF64vKgm9$7vSMHpZ&(r>i;$du^-knlnD2&NRe zVIKuZv_qS`IjW65cWje!u~(hGNkw4kWPc_>v(r4I;X9O4chru5%9&?1fY1|P|0MQG zWArBukYMw)EoM^$Dd+k7<5T8WSrjd60gP*xevTEkt`+cY*dG>O7)Ob0JtH~_L?lOf zdXWZ7cH8k59om$4)PHAN+H`}9Y@puxbFCnniV8XYXFoV@hnV${}uIsWbw(Ki{iIa22^edsSd=A-g+GDL%rSM*x-|IIM{ z*`r4A#Neai4EM}aLwW98Qh>^Iy6#77@Q`D~F!|l#AINi}@zdnXJDVF`G^S|aw1&~U z=3!DUv&ZyRid$;)a^>1ar{1nZg>C>pK@Ip|%L;;q4?q%C=_t{C<{gOA58UI1ZAfa> zoT0PQl`F~=I@-mqQy^S+m7s^6B58Ao2wm)CS?=^n{BrW!FP%!a*i?c2vhn93)6K%K zQG9S#LQsKVr$`f1;26Nv=-ObyiocGOp4>2aVos4!WIppgF4G`oi|!C{^&r#Z%ulnMmQ&lCO2uHYdQKUPN`e@faPm} zB5^0hsy0D|6`#}o1?quPNqK>?zTYz8C*~3P`2u^;lc7dXRbBn=Dg+$pfEj5lbf#i4 zix$=C#2CbZt4n<|e=<{y^@G|)8ile5I@(+o%@(oti|s8PPb%&0ktNXYs>^U+Ui8gTVolcxefIb{(KFS9Y8iMY=fpJ7rFMXxp?n zx-&4YashRps@Q^4?08=00s{+O-LmYti0UbJV){g3{<1CHl!CN17ra#*A4VRHf5FgaIJw1RG8a8`(cC$4HXk0x5Nt zOl059l!iwx!k}pmpw>OI;Tu4bMvxx!))fUv6k*Va(4heyi~#|V-uSo>f(x*a@D|%& zX?91lZce2O5e6S~V*Uwc=C-W!M-3cx_B6nZM87uYvEvT3bd&UGjmPDEEz#Nut+n}D z*Co5x^N{}R_78|JWKDE;ET=oYoKWGoKVVA8;``tMYIS}BM2|3C+4*YFCaRkUZE|%xDwNQl0066hv)W> zmSdz0I^-7(Gu1spzxzMgbHvb*Mv9~cSNQ7Y(6};Gf7fo(d-DS z7Cxv_=~yq=8olv$;>?Rjft>o0J8a#@U77$p%!{H$aaRXLOlIarf++(yX1zFq4HR^s zG~MuSvJQ!Zo#xfGtB!2%RH&6+>9S1i&9cUK=X=V5+rs*3~KC#GOft+SM}3-(T6E zvt}G6yS?$f-0@9`0ieLgY1KPBqoUpy`8lz3U-(g4DBM-)cF&vWf`X$Al&{#2g6) zTenX>20+w^RJu1l;6U^U4%(lFYxn^IP)_mx^?vEn01!FCc!i7?jTngwPQearqC!H{AZj#>2^k$a=JT9D5c7=G ze3~OmIbyVlP8amKXX|6xr}ziQl=hsqs8Jf%j<=1?Zck=^wefZz3CcPG7Fo*M`g*6| ziv2P`2&CV zPg>m~m9C_{GN6MTqnxLxk)y=X4Ui(9Jo!rrFeIZ|M!zO-M7!(%03|D>>!SiR?Ii?xF>XvJAJ%c#DIh3+s$kHrBc5nGUyb5Cn;C?X0)0 zlU_KTF6wY7SHAJ-Gkqm9M)aJ1t(_=C2rsn#np#v&kd{W3^SdNIAd*xVQbzQ*80RI4 zZ+H@VAY~(5i`cWEpNoi*&cFOz4u`%su-Wmfs`I zWtv!|X6o0v8Ugtd`)Badg81#*J@Bhwj^nX7hMjt#!7a%DM zCFp%PO;M=*?$GF?87+b_VwBIL{eLRkvBmbybBxgc|KR(68aahnE<~rll!zML2S6I- z6}|pRq7=!>$37SfsUqEptl7!1jrrQZLQx;`rLU0E^1UI#@Yth9k8Hd~8Xb+1qo`r@ z*gwauxGMlrjttQVlyv=(uTKml-S?;gB&Eg72T{=q}*E4doKK_p{P5T%)s`4$_AEeUBC?r)qVDx~@d12gl?W-HACK~T5a7oKA(q;1$#PrzC zpQ|OS>?8Jf9mq#62|0Uc=YV7+c&?8;p1XR;&a_y55$&W!jC8-@m{+Ux_j$zVr=c;q zx|X6w!}RB2-HUtnTfZHCb0#^WcEFo^sdkZ5>dKG(kMj0z33+Zri|)GO4A)ViM$J7+ z5MS6Iy$$c*%ew7bgPm1!u6yy;HF};?1kSvZ-c-<)`9yjyuLS|yy*_#~&lA8A>zH)i zFy*|N(dpEycG0|yY919rhp7APlzzKUw^Ij-{&smWe(xAP@|>sbR@4<#4lVo|MPAKX z-H?7t4=IiNmqm_9*#NH>nM;5u)gNlhK1fUl>Goy6Z?0X$oB~t3s!i33Vhz%Jkyo`T zVF8ye1Fe`km`pYgdj2UZ4eT&V<)caeL(=$nWr^&8aeTkR;;ySC)lJ|xPQd?KBjNA% zwx_Se*x{lr`& zJilmjU&&|fU^reu(U_4#dpUA?VEK7zlEE(;?om1&eh=mu@tU5a0DYCiBUhU{6!|ZJ zBmQmNZx}-!IvCR7Od*DzAGI#TRNq4W8pXEp6sT!f*2ef*z~VF2S_y1;AxBiq^{jZ;{pm+tGwhIYf|qirJV`}TE>I`E|UisQGy zNa+Xh*{2F{iu5qGr2HdaKOcQ!U2RHq83-}o=%|LwqJ9pgqtZQgaP(OGpGQrAfgouy zYu5(u>&c6)PJNE1IYtMvc|FVlQ8W^e+XQD#gele{LIMG>=-hWIWmapR*cwH-EX12cdoM#Gmbv8`>k%VT>B7;pV@|G1X9`@1w_~1Xgh`GT?fNk-&&YFD z&l?MY(V^?-&Q=(if}-pFy6gZ%f5*CgFpU_c+C`d|yXVnQSFB_0K+LcmX2fVu*4tPp z)KQs^5u& z7j+er?B?=Izph7BUb-qBagxe(M{>@mLC%(iA9Yxa&$cW|I9!U=Ksgh z)i7HlDnvj88E!;_w7$`BPHume-^pQ2`2qllplFzX=JU@okV?+_C!Efux4DeK&=?4f z*LCCiHf_5w$dRK*jSbe1)q7T%$iHlkQC6LUW$@C6)W(TdIrnIcM8`HSYrj*eX;uBq zq5SdkSI^@Tq?0c^BD#_!!!1314(fBy#$S*OFT%6@^oYG6hoUbCq`DuIPY22F-S%|F zyZFL`NG~nd=xli1HA3WX?rQv<2R=QK(C`Pp_QB8*lXnX&gd8LN>YpT(>A>6l<*Iab zjJ6oIPQnZSYq;6)+|*x2y$~W5npK7dy~M(e0onYa{r<&xI)) zU+|srx#7v7!Iay#hF=?4rvXF*zUMT8Jqd|!tpEVNECW)#r;H!y6Q2PZTHz_J1@Zuin`8{DxDR4t=dsXbZh2b)=|e_ z7uCI=F4yfY*kuxEXvb8q9pb_ZJjt~GlQKx66JQxjHketuHJ_6X%@LjJcY|{PfIVJAV#(0 zDz;^eAlYs$&j`RNqT)VNygk%?wV^Fh6K>m`Q)qWPIXVYKlD>mcCXFgxw052pL%Haw zb(cF{>fvJKkfXT*-MMc(!@Wv*ts=eeE>r0OD0$zP0Wajc3;RuOqZ85Tbeg`K3aP{N zmmT_ljUsJecD%n;VtSi}jl|g^9x+0(ca0cHA2Irr-XTPbkXNK*j$e(X^2P@sQ99&) zlK1vB06IybNT=h12TrGZWkVwXA}G_Hq-#F#Ddf2sFnZ{JZ4+RyDN`C=#Oh+yI(KrD z{SyUV$8GtsPo7!LqM*(_Yc#qn#E{3Afpdm+kCF-<=ya%Oq<~41Gyj=QpXTqM^AtYb zopXH}r_Swf*H761h&J`DWka5kNX{u@S)TFuKjQ`Y#=5>gD869ehRIfjAW4hsbkrq> z+%kyDVYxVK>^omaJ{^0mtl!_K-AbEzBIE0J)HD~P$j#HX|4iWM*$6?;$AC!Mwm@Sw zUW!9ZhmRHmi;$5CFUP@y|Wf9Z*IiYqHmI8>?blVZHv z2gbieqk*rZG9AFt{n1TDE*KU@G&hI6VgvKt{T!{AjG*Jb7W!LzN$#bhTsq?JSLm*;A!G%an zWryMgUKQw|V>ut4H!CruUhIO&usg{+C|<{6{4~1f@FHj7repH=Ej)(^YZksm2L}$0 zbRX@ots{>kGO&^oIHgOx&9t`ZI3c?jC1#owpfHeO5!V!D znmXc{t{pEu6^GNPVI(nliyR3bXvSdj3pcPl-70cL#AUb5>o059(guj1#PR_@tsEdR z>0T4?Yf!9Ko_B&{hVz!KYhM`MeYY=W2rvta?r~iFd37kX# zF`|xNX~Zz;pIOP@8#WSQ7`^{_KmFGuNFkUoEg`W#rD7$cOzA!6BDSHRtTjpP9tHSe z#aL-=6r4bXZRBEIRg*P}Sg@6r!5M2Msj~=Cr|tZgxi}3XN0+((x5!eaC2xl+T~C+0 zNKP>(n{ImzqYREhj!Md+9gc7cC=EPy7Bkyqiw_K)%si*5$Zu1z#C4dJBi?@4n3oyTY#BZHjb%6EE^Q zd;pL#LnX|qbb3sp&;7;!jw^Kvy8y!jX+>TS3>?8u#FXkz4h$4=3R6{JhK~6AzGz=> z>U6_rh~hzASOZ0mrBkLuv`E$I((^$jI!q6R5uub*l+D>ki8W`dSQbXaa<~+#0pMnfWXu(v8*|*O}-&@Bs=^4m^4aw&^s!Q6|x54>%{68MY_aN!dZ~s6+ z4T2-m>Ij6g0E4Y>A-5i3LLeb0YcV{h3tgcq-P(UW7N2roK{eoN%avQxFH`xzw3F!a z+!r)#IsU7k5dyCw3A7>;eVjEY8y9{LASB1DTcujpYlwYn1r zM+bHU)}LVJ#8zRxiz>ZpHHskF&FJ&b(i=b$qDNF&(1vN4FK>p%YIx8~qSG;9Qu)E| z0a7|0>lFOn>J`vyl=F(VSlG3A4WpZV#0XPWq&qdqZbpoL+Lx~Is}9}~9ZH2>VFW}> zMnz=EYrHmNCvsLbkrkcIMT%;o>Nq+l048=)NQ}Mk;(I&v?2V*aVJU#rsnPA^eRpgf zfzV>RsU0zDG!{(A-bz@@h3cPG^|Yd+CsAHl)YXa}X0Pee2M`!&OlNJ}5)`{>JHO^2 zENcvU`Y*M?jphlk&e2GK0rK29z8~}@53}z}@AP!pj?MHrwMjSm;t?aByK}62ehF!G zmfzHG%fcPv1LsdEN<=`E&+Sp8a`ove4TitlKW*A0u9`%vh{Ay-%KVWDX#S#<73jnlYNQn6w9H0uQxLeOTgI<&ut z;^+5S?NT~PZyu+U$T4cyVvN2hEg`1H8uYro{%`s?x_A5j&kfJzMU;qHm)ZR1PLNB*&mDPV8XOq33RdBlj|h&7FVMt#QDbPBuq%mMy68Apt2tibrn zuu$#OjZ&nDY@QdsfP8Q`wHYk}7$OnqP%LF4gcuGjG6d&%7Fqy(4#4Kffe@BKr8`RH zUzl&iRY!?FcjRMP%OmRBizm91fh42S)s{kn<@pHwU|r$3b~M0_@pBrdZ)%EIfW|h@^JyS@h? z3-Kz@8Q$I*D>I+8OM+V6#0$A%b*^zlKm^e9+7S_S|4F3-IQsNU)dolRh2qPb)X=@L zP6b8Rs6fa3B1VdGevvBD-7!Iii9bUf&lsMhTWuLNjC7y(L!*1MMsg<$$x(oTN~5P9 z=2vjEZ{GQjAJX~vtYcuOkP}g((A{t>B1jfBD(Y>+M?0w;9date1^L~(t(L@2DAN^g zYPQo#6|uTGj5$UvNaWxL1zbyQV933Z+uMo$(d8YLP)BM53BN`s(zCN?0&@dMrK8zR zXCpwB=qep}NnT=hqRSEOMVFjD7c@B5DUlk3t0GNEp@}Zo_pyGF<`Lxrm{a?$yGT`{ zxP2|_EU}v`Go}y^RwBAf;##01?)` z8$Ne_Z--!vfbl_$FFfDq2jmwG;OOqX8gx4S-0K~ol8YvF)R0102PsG5{ zLB95f4vr2iT7-|*k9^sRz3TYOm4daN5K}nDKF8`}+6H z9RQ7+s(EYgI1{1@egYRdTQ9v+KN}VL*7A#Be?WZU^M70uU+DRTS;KteO?x^o8Mtn$ zY19(B_@j+ZZu+#)q{kKg%yy=9T1o4)UdT7tsdsm|?pYTPClrb*lyapXZ!}LC@{AZUVnV7>>Z+>JbydcZKXly{fX)pFoij@0+kq@1^XFY8l99UtNzwof zI?!pVGh!o~su3Yes2=VkQOdM-*V%y=Ppl^WhJ&i0<1G94nu9iccNC%2B#hEsUpk=W z?0n%i7I!M=|4iKT-$%PF`eVuU(hZWYc{D&G$D~D>GEn3;*mv!PKd+%j49Z!GT80{3 zB;}NipeAySQiM?)EHf_+=doO+B9qO7iGSL%isNeZJR4~7_n&mWr3t4{Od-O#QINT` z^UCJ;e;i>hRG$mM2D4e(9xJDIJ=v%%r}c~2md%>eW|saU?yq@9iE_uhqgj&mwh{`o z+EMegOoF$~`F=sNTMrrmpPf{@PWyqBgR0^@k|@^~p5yB3rW9b%z9)UxxSo+=r>d+6 zQ0eFtw5zX;N=N=UKF+LwDjhyi4^T!Fy3bisrc==3qFSt9glN$_{#`?#|2rc_J_VBm zSG>I=?;e3R}V_B+Wpcf zbuTB?YZsY4bmuhlikMiW%gp_LWa~8j;ZadlIyL4P9hach9o}p2Frq~SJUUS{)V2X6 z9S-Nj`eP{_jn1ZaE=HPQI_#X=dgL5E3jjpml+s6Zy^jIrdCUtd(pXN#O54nRUdPxh zty8(%Saoha$7u8TpX+-;wr|J&fcQd-5VaaYuv`SHbP=LuSr+WNDK(kAk~e}FJhr-G&p~| z^1t_<%Vjc#{iDq*aA55sm*pO*Z_3tf15Vm#4&ik129r5PY~)bO=)=vT6|~XT?wwYR z9O=H|)woZsh7k;H_t|LlOI00gLvm@b={`1UwW`kz+W?Mkcqb8nDRHt{NDnn6F3+|a z2=aBiDPpAi4x zb&i~bv^^+1t2XG7 zN&@}pr%v@>#3kN-}2S`oKl*|!&fjqy8-ePDETE3 z+^m`a%Vc_G;BDz3szW~2d_&`NTs=@G!}uIIv01ELYmW}DKFke(KN@1Rk3dm4dwuf_TIOK^}~MQjvC_M z^86wKAKLZOY9m2%RBIjiHk~G!Zi1kX$z!J8$LoEEf=*_~3+ZWxlR4gAKY|e>i~5wV zlY^n6`R>lTDjhpX@#EBX8f9aVE1_?@B&=AyA^;ii-Lam9T|*`|sU68i7zAloeO8_T*I=Tw>KG>UD#7I5SU4*EH>~C3atqq=F zA=NFWLZ<__QT~M$rIasjmOol~AuUi4-&J(rOHc&59QVIQn%_79YIL0~KgI9McPibV z*3g-o#z*ND-DnyqTJPvTrG2mEq%t8$@ofYs2~>Zr#~~!p%H49>3yF1K9uTaz7JLFWZ3{$7I(0ylFvIOx6y4&1659kBRwty9@2rF~RM`2$8=3hu!|Y>e%3F07F|CM_>%$&e$JZ%;_$pEIt-t!Fk&KEu+vy z8h{{5)V}A{1Dmdf{^EhpYu%y~@dWH*<0sln8#f)CR4xknbztzoNlkFXd?V279!qb} zkBbX26az4i6m!4eOqtT9hb9e^}S3MUJ){JQWjUIFgX*?!*|RdLEMB2M0yE z{OmKejOJpIAy`RHy*amgzvPcSH;a#{r3M({8BJc`zaRhmH`Z3<_1m#O95I58i@5q8 zqZ^iwCE6Kpa$qx`vmv#As_)(a4l(KY%m%EU1ey~4p(A=UZ`<{unM(si+@DB0Bkcdq z@Sq+OOcl>9>R*;5d9S7+Sr&PH)SqsFV^XL$z>#~Z@j}BJa>DHgHo-E&$P`{cm^sYB z5iHZ_uD$MWqH8dy(Tl^7H^5O?5??^W2agZ{(wg0F(IP~Tu2L8k4er&cFQ2wDM%r+T z6?sK_uBvmV$?LS&lyy{O!98L(90(y&WPEC;)?FW-m$NF@U2s9|dgF03O0<&-xuW7Y zOvM@edqH^!kdy2@ClRGOMa`aHa7w@oV(r>$re;StA#Kmtx zp$3Xd21GH4aJ4zE%k-C}MT3Ig!-x;TjbCd`g&#vS!3RCzftJzz@N-N4N*05iw69az z&nQ}C1JTlX@xPSmH+ZC~rpQnz(T(<3`qRV!k}k8jtMmM9Hi1Y<`6*vB+5WqIF~d*E zd>}>>J4^JqPYGa%kaFkSSABjNfPF-hQcl~~3LsAT3@0$R(x_$))x;J>5>=L5O;fPQ zBRG@v{3*#|urV&ZFETonJ~si{kiM>1c60|8l|FZMBKdEE(kC@*-k_2sv2 zSsf#M==co!yfj)JD0QUZBR_dm&PbiFD!?#`5UJ3^y>|U5Es}*7G+LxUsRR&`!C9=z zbUrpZ8J_c#1F@*lNsS!sli`?`4@Wg#!O(F>bVQ4iDXYixjLxNYX%Ww#TjU7iJ%At` z^Er?i7L7o3WYXP_|HJAUWfeL}!V3UR$T2!raN{a<<5Drt`sy)9qj4%DNKd$bOgVlQ zX>~n)ItUNpldM1QjHTyxM%uKkCQ-!~su15FJ1Q%c--F+Y`N2yhxA2doG z40%RZuGkWhBA-Dh8rvb$jl3c)@_K(Hm3hzV3&5_qmxqO2X{6J=6;G5z`24nX4JE)3 zi@M%Q$6ghq(rxuGOy?!at#xkGS$`qdE`nF=qpL4)0E!Mm<+{(>I+zMC44yX%EL_Ms z*ny!F(!Y@u2Wfn8-yx2!~6ayV!+%P(5Z zn!GEN=oYgPm=FnxTgg)qRi)EC7bT5?8o&uam6Ymq+tlxBiU<(|4g8?^L=! zt)Y+0q6@3^TbC@^?Rh)=S(~)C9cS->M5KrccYQQc)yUY6jAl+cT>rPU1`)h2S~fu?QcY$Ec!9+L$BLYmW7AlAna)9q+qyXQI%b3skpj6 zt^1|hrUFP5UJ&ck*>}I^cMSbLqDQyh+Ih8((eK<;%!#^Xj1w?b0EpfVXQAU2^e!S>e{EmBpw2Q}C+uU@q@f&;O!QACVJ?Kh}%CkG`8ynfD5LWPcNjT*gZ z*B4{B$7zgrT9`@U#awF;hyaL=Q$3@YPi&+^|N8-s2$}$NjzXNFC=jwkyspt)TKb3Y zW6KHn1OW1V=56=(sut;@NH(dJxB&Y-NkFG2@depDhLQ%JzC{Wh?GFK?J{nX%v%W=$ z>;{gbOGP#*T7*3v-SDSE3~C@pBTQ+ZCys8P&P$69%_SZLfG%phhXD*dNngtCa{{K~ z5g|TcVqmCKrYmh5rqBFd9&)=&J3g0GQMq<}I*2Z~R7&t*0fus+*UnBnO6=U)P-b}` zU6EI>i58mO2uou-WV!)}0FJh<+C97%e??IaFaQx6ufOH*{>{{82#VChBj!EIGM@Xl ztJ3K}qf>K~wB^cls!AtOcsmTyqB9n6-S1Sn8%l!cf*1n+C_WhIO$!A1p;@7}IEooApeDF((-KW)-Q6bd`VMQM@5iBmTD z%zrH^-6ubDi++~){?+I?42s>fVW_1?j99!iibKPuea_!<+@8_#5%0f)t?vEjKK-%d z)Fa*2snB(cc1^Q%&Y46Ts8OYb^m#{%+SPL{%rRo2SFwl?qeXfM098p2t9(4#_Y1q% znMS7(ql?k|zSANq7p{DYeo6CNvGUxO*;lcTQjBzFA`H7{bR^eCAs?Bx(IYyY8bytU zeiZ$0!bkR7JGCxLcB>8jIP!#HN~aU|iMmr13U%eTqTmS8u$w<#X|#x{wm*2zGIEW6 zko@fX`60e=57Cn%9Xf(BXBq&>OC3CTVA>0E((do8^bDOG*z^E@2j(A&(&(H$r^YF0 zbO1yUUs&+@MlGX928PJ~$sp_T?9ca0?YN;=N>A^ zp414FC3S6xCTO^dx^=2jmyQuCxvCVBE$6;>EJ9@6O0ev=nXl%x{eANvQ0 zodf#@(CZW^dA)}lpwOMwu7bEK1)aH<4jwwE(OK`4{+5do{mzXwDk#LjqOKZY5}Ut} zmRF>nP2ZQDFnR3i*z9Dw`5i67FHGo5oXIuFe1D>SY}nuPM` zIi5_o$p(a3aSV|l;;3snfUeRcob4WkP(wr#JB3Xva9wRj_F3#sb~~8 zSWS{z;e`2UjWtIglJl0X|AYU1VK^T4o z^&^~n1HRw6AHXlr*M-v zoljMpr=|K7QZm>7TA8`loO48s7{Td`9%*CU^YMKA1`!#m>r_WZh9ob??A+hd4Fmhx znys#O(JwNxd0IY~%{H&nA?r>{v9@IhiKZf6mS+U@krK6x@Z6jV!BCZFPuupYOy>_B zYZ`@gq}z&~4%k6jaV%Qp84ZC(iJWf>8r{pmoAMHQMjkf88|naz^NL`9y=#SBDN6U| z$3~(0>v-cg?HvtQan+eW;C@Jj-AJp$HtI+kyiD(Jt<&e!GHq_ZsnTUC0M&Fpik|JCU{zrDh3=vay6^Q7)_FBLzk@0?`dMxo#NBF&p0wP zaaFqE{VE+#lSu<~YO6Nz4RcD=MJnE^^4?z9lbk=L(ee9PxlqG*`}&PQS%0q@`DgKO zl0Z9Uu&G){s%5&jxu0%6DM7Q;Q>{j|k$y+h=U?-jQadt9nhz66s*ApQWk5;N^RL@V zKd+dG`GM+ONhkK_ol@IVm-#RLoh(y0h>jB5y=dE$&lBeD*pkIsM=F~O-(UYOdLTQl z^|r_h-FCQWr$zYHl4B}-SLfE==h6!-?49$CNUc*#MZZIpF7l21TzwVTaN6nOYiY$N zX+_KPx{s}dMHKkMaX_DQ$0F;aYxHP8MUh}Bbi}Ti;D`bYWPkkTjc`f*e-wFr8*Dlo zFZ|d$PBFGv%Q12f?d4XZ(rHTcOJll(T(_HwFud@gkJom*?*Iwoql2_90TQA`2g5eX z%<)i><`#KPBSwnwuBi@8cX(!O5Y{u=1D(!`zLHL-(%p9(_&M}f03?3?$B9lSCaj?8 z>aPr0sK5P*(deFp;DYFQHNcR**8n_E(s!%CN$YrWJ4s{O+6N`7k8|g~kN9QIhY|Zc zQR%YPs87l?na_>?8$hbx6dyBp`ljC<<(w~ibsz8b?Bez zh~ZbCA7&mtsxH@Urd-x%9x-|#QRsEe4n!YrNO&KlWoQVLfBV8{bOc2A+@tbGOryxF zds{Bj-K+JBykXLa5gMk~tuujgOcq|aGn!z-_cqVK-bqmGwp_Lwjp_a^qt}IvqD5$l zNu9%I0;qwEw>IJ)HNvtFUE-0~cKB%h#PzIF2fN;HXWllW&w;jp8b%aaz(2@z+s7+S z$!>#Dv2Hhe4BeY(Jz;Ipr8Dy;E?kN`S5iOMk8Oj88jUiz?B>BNv2AHR_rj?iPKBF| z=p{xcX@j_hZ>OMV)(;LifKZA*y}CK~2evG&_Q=$|#A4tHk)RmJ`0_GM5h6F{Bh&<< zY@k)6uxilr7`aIi97c~Yc2jziT#c=A{s>Kx4+p+Yl35496CdbK`UHD@^TG5gws+Ms zOXR<-TUYfdzS}=)_+_#r`)6~2LbRZP-x9Lk28xl3hN#ds^XOLV7<(dDV-$JNdz4NG zD$q&GeWD_yMvbPv&9W)g@%dkMHHV5TO*Uz7bC#57BZ4`*Y;8`r!Yvf=q;?9KOG(j= zg*#O|Lay!LY(o_SI+(oH5!*dGtpOfwMtL!wXQb`-jtMy|QDQLt<6;4ZIKJ0J%@;i+q%Tcc0NH$n%O>hOI`%5+#qK!nKAN3Os- zk&sxFhy~Pj^+_tI>Y*dH(V)BQ%jeNgYyW-AXml{@F1+``?iw+AYuE^{cW-RD3NR$b ziRLl?*ndtIo4==%zRVF4@}g;)UnC~P0DIwoG^OBvi9)Y<9pv$nGyw*@A3rZqDuq`v zbII`6Hy#`HRl-BdojY z2Q>4M5CgXRCEce1pi1)hTi@H|7IAsyJ{!j7?GmkAkEO}B z<@aoQJv>Hz^UOc&(WU<`wza)}N#EWt{NeLFY;L=fI!ADnqf2qjx$ird1a!(eAjh0 zv4qMHU>F+HllLyjaI^n-XsmBINYV!TBvI@Wdx1^<3yK z-ijr#eli+^dh!4A67PDI=2=fUMv?}+v8eGIG%B=e z_i_f&ldD2SZXE{k`_xWZl9YFTHvO}tXpqw8rWwFUh$To`Mpm9}SG4pnDW=CGQG94UO$SFeUgjUDM z`+;*#OXM7Bt`T!T&!h<}qz-}9YA)ZkYOYXCAy*CIK8xWpIZBP{Zn7R z4~G5^xkfjn1W-DyTV0+J>H%tZ$~+_S{yVWZv?cznXf)_U7G$_(dBPB0xcR<@IvoMh ztskm?YxWQHIrOJWrz7L!$NoGDNPjGGEw5e{xqGh%EHBA+8OAYxd6BN?zDJA>st$@? zys*Uw2cq);KgT-h0O`QC%WKC8~k4EngJ-W*S;W35dOn=3eyq$qQ{E$2IPi{5+0XzOOt{Gt!u5G(!}D=_5w55Oju+IXtt>w~OO z=@1E0snU<_JJ1e7TBj6&Bd;1x>H%qV9F)Uj2OM}h>ZH6pxvUj5N{dJnVXl#J$Pq2N z)Q)t=rMfrL)!qofg( zZl8<0rgbGBD~U9)eo@pY@vVjXy9auMUW0DTAQcBwM(?r4dzGRv;nn&*t@LunZ4jJu zgi-@Hk)Y9SPcDUuUlR_d(_r^v(xjU;|HRI*b!FN1-|ZhZ^!X;O?h8nR+#s6KiyGLy z5qU#;FPM-6BaAX3I4T{8zA9t>&{TS5y0}eOEw?B?o2zA`!j9{W#b>^rZ zBdKUxmdVL7>bFs^Xp#qK;`vCfh*urVEEk_?KindC?ve1BvIj&`Wxv@T?>K!~ z&$Ck!HP5from3ieLS86yN10vn4Sn;C_M7PEptJI%(F(I;Gv_TS zW#0S$_tKG0wLiUtvMnY6ieCG^F2n#(^yBOF9l%Tb(pV$Lr8B3mrVKa}CTbaRtaDs+ zP(&drq!}Dcaj{a=F3SL8NFwCv~FIX&Qu!FywrrL-86${yKCf(ILlz zkNut}(8*w@)8Cff7+ne>298%tpZ7kO_34gEH)^xyJ?Q)_5XvmCbUTlN9qZc^?p<5d zsD5+#MXExX3E37_Sx?FmY2%z4{+ULxn~UZW{qjqRBCT^@H{XDmxnBS& zX)1L+iuN11TP97_in4s}&hDl{!R- zK$}y~1`C$K4%%sskK6S9bpDr8I{C|=Tzmm9s@DC%Ju;;DqAj}f+8RIu_w)=I{<4G}iHaD%TxK3!`_R z1W+QQ;8geK#CW zIS8UtG*Xey)3t{JUB4^AiGHs$OFEuWbplPOH&l zx;Hu3H?e_NZRlz$p9Mt1X1DQLMs1)c{i61qE0uQY6>r3VNNGV<0GVbVzWUu|yn^mJ70I-r+K>6Nw_JOOG_qyhyAW2L&SQ zf-I%4p_J*X+Af`grQYvLfqsu|9%e3AK!P zkFr)EsOgDeXZv|BFZ$k4rgN*VB8zCzK5~t2CFVdfFzRom^i}AbQ}r+|SKXjTfnO zY7edEq^3dmpp7XK6xfP%2{h`66k$wwSj<`e#QX18zTCkM^M|4&j4RNsnT|jGKAHRU zXXtopbKA5BpR;w*BWM{_>*v5GnE>5=wKdafEjjU6_01Xl|Pm2r0cz7%?gub$ar6D?rtn%{P9` zk>G-)8@8tPe#0NpBjDQ%faql3Bpk;jleJ)&tDmuMQ84SCTR4}?qkhrz(F5-`K|}Du zBqC=aHJpe%3 zNPkQey1}kpuYr~J{K;his6;1Ymh0~reXd#Yd;W8EkJQGIB#$sbcwr{aCqFkjofZmI zzWP?=9mToMTON+p=NL6+;MdPeSNljKLmV&=1P#ZgGSf2c3*$h6%j?LKV-XfXsJ@Sbb0O=LoP?}pKIx%9s|4Hw__TUpM*nM{iFik+CnZt;ykjT54$++S{NosW{#mCi23D?G7c|@r&wnq- z;`{q{h$cnb<>d(|AcJ}Q13fMPkbqw2wT@rKur2m} z;=DAO?lT7-8;X5*N_2kSU>NKc?^FDHaxk=)9CaEsI!$eCwco*VWzETleh%mVw4r|@ zovwDk$s$A_5|u765J1sMIu2L-)*tuQd%v$p3Gq5c?EhhJlOWS?KWwR}0wYFhuPs^> z0}x5MMS{AEhL4b66w2KMM43)^?B5~EmtahE;ENAz@>sH8*~AwJh+vZ>grb0mLRjo$ zsf?I@2g`~`*Ko)QUv?yoQ^)UKm-+M))+draO=CX(4M+X|TvDwfU#|5yrLCX)@;sg1 zTKFL!XM>He<(Jay36u@BOUv3}+qnPR>+b%=z=$7m9sQM&On0f{@4N?9o4md?QR99d z08l9|%Wcc%4t(arx`%&m%YGi-HKH^xEn;M6G(P4NE~`$@iz`|OM)T1H5g;9nzas}i zhv`Ew&*-Tsl<0%=lwipoCQagdW{Px(46%q9Rp~;n8+MRR=hKW5>FfZCRtL3vuaTqjSkmrW*LPUy^!3)Hw5F3%qIP!z%ow@lGy|F?cn zq1$@B1lWySOkqGtsLrhodU9)h901XlgQ81+;I4V6j1J&q6fMdFnier)pQF5HN_7)0 z?TMt^SL?Kf8B{8dnndaPO{LCWCD*CQAnB}oGxHvG$NB8EnJ-@^Aflfuc{){pVPW7( zy`5BQ@__&;cKZ1iW#nOPUe>&D=AA7(y8K48NnGQ_sEwTPPp(npN$xoTUsjDq7iP!YD)oEF z=xa4PS1-1QHsYcN&|%~!1UNWQ4t2tsR1KTB!9_ZD6o^fL|0*L!Ym4%-i9P!hU!H;8 zk~F`F4%JqBXe_s##8ynmMS@yKV`1p#D6#J;3p?=q%yrWJ(m=sf?phnkpg08JwEEU3?D(Q=Fcc4VYXm!tT)+d0p>K1Kp9n$$byn^LWmQKB<8{7#>DNU_##r#}^%pczwFQrIhqs_%(OEoI$Zy zMvBIU&kI`J&E!-Ag^se_Z(W&ACA#kz%VcZpT*Yx-*PgZ_9yJ1$?xhb?el6kDMShXK z)~={%S^;v5UL4!84@O%YI2hpY3hW$ZkS%ZL=j73$e-BQTJL3IK%G~I4_4K=v7))Xgd)7D-k&U@V`B>@Ff}-_{ zqnY_=(|L+0A+j;Q90!}SxWah+zm5^EzWe^Y?F%ACO^wc%q?gT)RqEQ8*dC(l;&y$s zZuC9=oK|YC(cHn%u;H^OH4Y7+^YhOQ+~*7akopM6Y#>o_g_5acz8Giw6!K3MBo}LqXFAmSNswv4ldmV`L2)q$qfl%cU{Y{&)36X4-3|+#SaH`6Sa`$QZHg{1$0!TZ0U$x9n{+wU zHoBhZboEn>!mg+mzR6{Q>f*}b_H|@4?0Tnk=J`jbvTnN1Zo9q=h<5Wt6tb`c-q{5nkUB|76XLgxtv8Jw0U0Z zwB5fLpb!v|HphH{2?tHNfGg#FDb6s;JqW`&5`AvDl8)wMo^Aj96B|(K0PZT>>wYPg zXXG`B((3IbXUynPivXm8u9WGH2$Oxf5L}Q3c)zRCeZ9uMX#1jiU7~F5w`D{K|1Mnl zEmPxG47rE|kgkjxP1>rJT+zKiYUqTKUFrMXAGwVBMarUAVWy*7hF{g7U z4r%8+udyt^)48?TdOWt}o`=c;ui@NsFvQ%V=pS_ZqHXY64$-N!+@jMKNuuKpEC>iN zM4?xY9A%~i01_O8;b26L?#D~rPWw{l(}A%;TKoQqOD7<==r{XZH zHDc7~869Kdz+T5<)H>!9VV=3%FaRda`yTp5II49#_Kf4Tno=KX03?j_3>;N0_IlVp zjRlAf8xT6g%0rZM@!#2j(4n*_QVga!#ym_QD)w=k7wLo)#*rg^=Qw@CKpXo46s57V zAFoe`G2GOmL$wQ#^yBz8{_in@gqpQ{L-qv`qtW19iu9riWyC|2vRQNi>&lk&izMi9 z6id~^!Z1m$o*0XdhFfuiux<3LApDPDs;6S(_R_H=Nnhn6Xp)Z0g*)|?1^yR z>0whcq2!}JV2^6!us%0{6j7rG(!#u;(K$HkqD2SxI`GSQG&D7nW844U_7KGxLe9UE zOZRK9|Nk0*NUFa6`qK8H)8@bSYea*!E$g5t=M=>>#TW>ZZl{w05xF!SDrWz>zhzlGV%N%EXS^7<3+9gG0<(>4 zlt;M{F}m=as7$5PK?i`-_khvYZQFb^D%`~=`hs~?n{!ZMGV<-7=DmdbCFhuNAhrs+ zrqf5S%xdHq>Er33f8wa9)nk$-2C+0S)d99?qs-Z5+p|B(l-jIXIdx~$lI=xv;uyFp zU8H&90Mj-$neC+)j7GlXq}cNxIBnJ(J+nmuAwqgwX+UUELa}bSD6M&1Sng2WNdU)7 zDgc~KJE0sKA?9)m0iw`e@21F65@s0Z;s6|t)#|h#qD(iWxf7l4)Td8#|1|Vrr`P&6 zg*mnQaz$3nJ^I+rg+B3vZ;yB86=f&piEkVAjc%?n>C`}x$Llsl7bw|%+uji^(#Vn1 z@ge2}bvig+!A2>A6ZQ|3>~`TN3`7tqLSfifcWv3rd-lC&$!?|7DW$HzCIv@ggVEv+julsNmF?W`ZeJw6Fjki!EiR+XTnYCxN0A=IW(U!{0VJ(IG#^pq{Kq1|>44JQ z4%TvtlJG*dx%8n%&q-2KySAtLO7_T7jh>~O3<@Vq@_XR# z5#x0_9hK++j|eCAy|AqU8&6uzIYTk6AtRdxeeTRD4q9pgNwvFM z=J`X1=f(N>uC%&c)~B##05IqTLx3WR1-AQ*$-SMYk{(Ea9e79CL8G`U`6IMN(^&YN zQ5`p;MBLxKu;l-Dbw-vJL5c@+M1c`0jjx~NcTK+72TapZEfTj?0uqq`o;~Z*RJ$gV zF^#UsRkW`$?)Cg84suDGqResLZjuI;q*IM;d&5F(yY*d_?rSwAA0bQxDjlt<(v@C_ zVb!p44MBxw+lgA&KvQXW+L!(3z{!)WmM4uqH}NP|4C4LbtWdL?J3v6G&46j;>txzL z=hM_C#4@%q<8{+UrLzLkw(Zo#7uYUM9PsEaxkLeM)|^BNU{VBWmP8lu(snR~l$PgP ztx&5M*48LCg%|Kg+vfIL7MJ&injLG{m9@dF)w(NUPPWK1I!oWRU+)=nSX_WX0TR}n zx?<{{MUd2zfDq_(8Y$xOK3Xj!ItR0nb`HsI{3G}wb0af2Zis&_L;w;pf`b#_2|iDh z;mDnT7G3}yA9T8Reh#f=M3D5xwqp_bN>#eMmS?2-NUvOjAyMkoe#(@(BKLpt<@bw^ zgFIq%AdP8rV4ECc^7wCb9)lBFCA>wtR0ln#tJ3K>4yh4OJ%v0ZyXz1g+Hh=FsMBqZ zeA%I$L!(7c(zx@G)4tu21D?6x_gcrOBvrZ%V_UT%8!f<*&(D3^c^-iKq>a)05<9xj z+W6ljyL-_!f~#*03}ySG0~OLTZ2`ZPdnc-I(_%(dE19$2Hr!Rb>BtHR{~0_T%637ur|WML;9Gl@dLH zgFaz?SaH*rXF&!%pL@VytX=fsW9txrhzdPvRR(uN>o^H43Fa8O7nawwsJ6p z=uzg^qjN8_^$t3ZK{OwUBLR@)W5f7+P9Mp zp49MG>p*SA0E``z(H6_|saNY=R}a7RBU^s9RU7#7Gi-`rMg5xzkC%Q608&59S2?3x^t)`K#zQ#p^bMq6w5&KTy6r=+&*ZT`|`dqzH zeO0x(f%{Es0ms_+@3t$YAtt24ibnmVUaD_1uYG{RKSz8uN}=0o=`l44tuZ3hzQ^%) zJwE&P@X;6L7&XqI)G->gXp()m>!7KWO_F^%)F!Ob`wM>{T}H}W-JmYl_N6jiix4?r zk``SGik=@=?a60;F|I${vg^vVi(s!xOPG7)*Kz3cBC1NKxkistv?zs=NUeM5XUmjNmxBd~e$`LiFBMYcT&mNa&HG~n=Xp|Jhh@irgb67KPP7LJD$H z0<9kH%mC5Z*}4!>6z)?+B3l8kq5=avXWHqSq7msHFaRQ4FFWA#=xx10j4P`Od~_d? z$T8}!evzU=vk3llA`QzJShU=q+4w+HJNGz1H4QoL^^tw3RV8{Ie~aFO+y-hT1BX@Z z3Q)o#KWF6tWl}!t5c@}LjE5NMDU+=j(B^B^fuhrrkpF~1a#w(M<;O?^&$4Qt`+FUu zuhvS}cTqrLyQKN*Vhp_#BG{A;obt6tm}N zeZzI`{fp(fO6!M`WH*&k?HJBr_+&Xoc%f?}g--iVs?Z^7blv*R3g@AF7)hVI;a*2X zjnqNubp@dmTlYWz8^g3%yZ7zNhH%g5yA(Y_p3&{ZE_oxLG01k`ZQETAPFs#kK-agN zBm3Uq;Qb4er!l5^F*;UipAYaluxU+0I8G~$eVoO#h3EZY77uF(F)+C(qDL;mU`1Z> zy)_{QD%HUu&YU6?c0FWYKSYNh%yl&Gz{bU0k4C^LtR_{uD(fnClIk6agC5^LhSVd_ zwYH4=mwvvj&SU>|(X}F^*To*rAp6!NyT4GCt|Y2lMvP^{_WT0J&sWXwrCaukxL86> zg1s4Fc94u*P@u{tWS@m$^ZKJP&G95c3<#O*?>v87Giq|hXOP!s1 z1k*jqjxdzx*cqO+g=N(6ME~j&+M(}QXG?Jfiws$mX=i4~*h!qZS)zi_Bibq1IS{hr z_r}4BMR6QxO-CC>?m)FVB))7(FLF|iG9|jEDm8YpFUJ?)8%!tb%VK&WP1GQ7a#cx2 zJpRPz{XFXRXNSw{^7SFs;8djTRl6?$in8DWk7b9c^4-2#(}VP4w--@jAorvQVjN0tHrP206;#A(zX#rL%E%Hl-A3iZD2hZfB=Cvd**or~{(0-~#&&EW4eHzd8c}&O6fRI-r!I zNw%n%WcOgmrDdcDr7qYdLXb!cy~xLnJEBw1V)c6w#osK65(xC|ZrDlK9}^YM^k zq`^^zJR_zS01&+xKVQem;p`4*HG(9Vi!P{i_d}azq1RKX4uX8s)6wxC`RmA{Mn?^i z2<{;;iVpc4{H+47TtAoQfCnhb(IPINbBEH_;T1uLl3sQl`l@LlUS-2Lcog}uLyWZp zG9KVQebD6F?C!qEb(z&EVB^r*W)M_H$dc1I)ZCZ4Y@h<3;u74&07}a-viEW1=x3+n zVf$aW%+J&)d0CJlUF3W;|L5HKB~<=I)~gW*7{YY=9*^KD5PiXWkZE+MNaCZ!3E%U> zIhxl9Q36M+7wKAGG!+(LA4H8VhtP7yL$KH2=h_Bp$T0$)?runAS~Lk^?SF&M@}sm| zqtCc{{&3p>lG5AYDN=bFiyD#Ahe*+H07R@`bQ5i{9ru#^j`E9O*Y-_?4u$B5i!Ry7 z`~F(8=(;ujoJT|Md8f8M4rp(xG`CkeiEi??_mtah4Tj;G68S@F^Z-f^bk5G&s+}kT zJ9LJ=Ex`^=osaZDCW&rHccU|px*Bv{o|`vv2LAl0qC28PtR|0h)bN7Zo62)bJ4ae& z>z8(|v(aa=@rYAMq>nOXX-fliFJ}+yorr$?G1CxmvmI zUWM*L5~xYn5@Dshu@8PHe*MTv+RocLrHTV=rQ==5cl&xxBStz9zexAoiupqAcedr# z0Z%IG3gE#!9)EG0?YywvM^}iBieG-|9!&x>=It=&3Dz@bd%9?}6I7q%@uoFsv|STG zp#|{>ktFeh4OHIZq6~_Q;E3^@qwGw`>YAhyhq^*Knk;ggwz>US%p62XPm5dlbr$A; zo;z4_N*%W+C{o9j?|;t1uKuFn0_=>UJj2_m11V6pchM&9T0Sc&b0O1>YiH5d)Al(| znP=ql=pV0rYU>RMSE zBnZOWAc?u(5Mt0gqrDoS2ngwsNXT{L_3&A3L?90xJ^HUMl`=Q{ zH@`W@ir#jpQe7v*Eu*5XHPz7c@1$ca*|^xELzi*f$p4wAN?wyF0(%V z?}H!fxD89fiVFW&UE~kVC7nE7 z%RGZ86n7=C@{MA@^kdI`p4a=tKinn+&t`|lir96EkEzJ7VLa>jX_6l`) z096{2-irsOsSi_Cx&vts?{T}7gM$W&?oS#Rfd}QM0R-K<-vH9RB!3A5C;~Wo<(yu; zAwqP=L)xf)Fs9MH|DgdIc#4=`6zX({7GYa^$3x!I`ex0IY?*4>sJ_uUH|P=X%zNi6uO<#I_<<^@1*L69{QX-d1)R}c37L# z=!{C&1|(cIo3;5Rufum)j&cG%Yr)SmPwyFu!BU<(lpc7{^!?EoQqQBYReSc8w&Tl{ zN;m1f(Z9c$;DS;1qzzuj#=$NW$e2JsVYHw+pi01M1fZ05$LQ0yR|))Ii&>75-UP)} z?F_9?hTXO-|Rg-a#$Y&}PjN{=RCuQwQY|^fm^V89N&4`g*cUm@)030-OaF zqy!C_^W0aRN;}oqa!zaB*-6wqS|A^DTrtArt$Wkfk=o^-THj#ncDtf>W=fG$g`e7~ z((O@%VUz=_v)9C!A8zRSLY(MYt7C-7(kBWOdH;wyMxdov^shHsAKdz8`#hw+Yx_Nl z9KC-(`VhC1GTm@a;2{bygmcxwkw^nb07v+~Q7S~w>n;PRGNaG*5)iX0$eOqzwjy60)DEt{vsn4T9| z3j%bHVj8ak6tzq7@%v|<+cw@et$|wd_}}Jh`zYV2eL;@VSfgC$Wc|Z)Sxup~Dmf(A zLUewpU*=`Bv(0M+X>JjqpHrgPFTO371!$V5;|$Z!LeWF~Mj72C@m?Bw4pll|K2DIM z9f{r4adYFvo3vQo5uT#qp~%W~d_8>BROz1QFA!3Z4v-irQh=1~AWgtSqD9R-r2O(l zQ9uM`I!25xwg#^zqDJ@9K?XFG>loqn#*_Y3N>h5f^|orGhDPrufeQ1C2#TCew|~2R z&zGL42~4EXBL_eX6d}hb3oL*-r{W8~km@Gv*2M+TY8)N9~M|tp7lsQ z%Bs|-Mw5xtX|okIbt&16YfE5Cl9F4DxLomT<P^?O%uCr$Mx6+kPX9^f)-0q!^qFfa)+23IinigD97lWVhrxw%25@7Ar^bBF2n%K%5+%XF%LNHs&p(kj{d2P z=vvqo;OMW{Oqn&*SH+x#$g_ofw-$O8`z(L`uoV#_Wn+9OT^%FXKKtgAmJj^i0TSvO zVFI9OpZ))Br_+!6f7UdFAJ*~?HD=A`{syITx>O9 zbi@y_wdPgOsL}9e?`cVdRWpL4XFjd;xd8|%4;CHhvFHO1!#t^UovI2Nh8N~lp$G#S zu3vvL5eCrW*br^sD^b6wv!Nk^0K@w`TiSSOju8}OK0~Er?hx(WZEF`#-W3fMZND$_ zzYvr5gc2QcivW(cT$N7uJ#hgBF>pkhTrNIm-?A+q%a4wQ7m5!6RGE(XMFEb?v{P}x zg-omCGJqpUrz-7^fXF*J<%)ZB2%f)lRyyC6q(0QnrTIcb2e_=30A0Eo7$rK|_#Ez$ zY};-Ayd@QL&1!Vo@heE$vO$5aw0*LAUCupP4bh(IvW}>7c3+o`>zYx;N&%45WhQ=L zrS2?~T(^oQRHxNcVZ5vD(x}>i}++ixxTRXu@gPES>LM3`o`NEyp=f5+Nzi zv3M)DQ!ur2$%CjxF6fTs9OZ}+>@3ZndEGlw>2{>9e-F5hy{i3C-80|>V3cVMm#3F9 z&RM*?)*OFauKNy-LkKUZ+&9H?QoqXmLz(Wx#1~FZ3;_MMZv|gzM))wQ9P@}UtxP&f z)3Vs>+Y*$z9|i~NU*Fns0FK^W+P=s)!oOVT^$x!i&w;*_elU&k&0o^|AALQrkPm}m z0wC%5z`)UQK8P->s!kWch@i;d7x}yoO(ct|bfOWTWz{zU{uDDAzL;d9lu-Geg8QnreT1(ajeht^rCIw z4mkQkc_eYuL#6zv{^$C>j-cB_Kj$ z$cF2-)9BD}YR#hI{r@l4m|lA0s$MAfN?rG5j2NMPhFosSqDJ4ND_W6OoM+c_jaa{E_e_EwvD08kuyL_k{~dEK z990V~*UYxn$dLmn%{QCK)!h#SMNZdSt@3m3&)2G{;}PS8kr%cv?L4K?N7T*gCdwa>1xU+(!OeVZS8G^ocG=}Q>MHA zsr7-Rn&Y#6`q-R>r`Na4v6#e*KBj9{b8y6Ih%mshd9q)klo93$il9tKAv*T|TFdCI zy|a(111RDU0`-j4d~EUNM`NcD5Csr&P^4oG)9h9QD8e`c{`wK1Y`1 z8?wJcd|~tF%OAW+_7&Mwzo`37)rKEv?lUav`m;EFZY~MvSoDaIqw&@K%#-{)`jP)k z0Az2v-Jdc#P8Sq1i3vF68}u-D4g^rOP zllNV!8=C#_giv(_Y9|CO1TJVd=v}$DHFV^udNjZhsC2I=!0^hbbhn1%fcN{?*GaD1 z8!=UkN!NZ`Mma`quH>l=*o|9_tE|EcLxcPAWP>8zzD0xpk}|bUt8{;8;tR|tVpVV0 z$FzM1io#Myz2TqsLs_!>tbacvMefX~bmWigvUF^8f}yF9s24R?P|pq8`Dl=_(*RZ6 zf5{Cx^NxKsYe0z+qtR%?sB~KN(CBj!ZDO=&T4VoBHkG!X#TFxVASAon=h8vevVn$B zts3VTrHBwk33M@&)^%MQL~`)R?W$Z+!5OnRdy(o-h3Z-p2Q?Hp@gg&E2 z;qMKWR-9qbNk!DX)P|f&6dDIuQlSPEE&tSh6ABJ}O8pvXbiBSOb>Z{Zhk4dB0*wwY zbjRx4JZbyh^gjBguVW7JRxM4L&inuO4xI4PJfa_3K9PkPuNL-j7H6S^anDqCV2bm}{a8qp|56)9HB>8G#;2l)I9)7il$&c-$hg zp>5*KM%C%flHDBtuPfPooA!k{M)rF!@hYvA9_)AgiE5TqeA9VPG(zR*Ke`$NgcqRrqGAj#l}Uia z0W`cg+oQYs@=j~G-VP1kWwG<9vxv$xv;iFf6d_5I%5+qryT0FlzjR_<%MD}7F$%DB z!y0~i$J7J%(bVbU+OJ7(*LqMC9mQTxWzhZzG`g`G!>)7@qusNvJcU^RDLa=Y^SYB@ zCr67Y$$egYT6%ijx%I!B2LC2MTh;{@^u6lxoS5tv5)`^|MV^wf_3ic-{|e0dcbiT$x@}h!%+WzLMuSpR zD2g7t5Cc`~Vtaz`)fGk%`y?XE_w#EQ*DqoYA9JYI?r*%D(pFrWdpd3RG#++Dl{8Z9 z&p$2KC0eF|d$SVT>GCe8sCbD0iDJ=e3+~t2yxAhFXZ8cfS&Fjv!V6;iyAw;>-*Y-J z-TCBBF6>8v2Bj~L+Vva_s@_+?#)1o(WiS@>!8Ic?l%qvqtY`G8gd$z`=g~n(F$mqn z85OEb$BuUBM-f2^$=AU^rTe(yKD_D2Q(@VgO|Dz}_pQq{Wx89O2T&Tu2)99@b7ea8 z|99Sau95Tt3^dZ}FdkvV2z3`R7TLbnt}oQ-hB3|7PYHN=1PP$$0PilukWH0-AJlGa zrOxUHR>KIU!V8$dfGh)~XQoQGm-4>I26~jnc}L=TM@OYaiw=FAmw9<2Dc1 z160Noy1B1o@BlVXyMA_Aktj=HwTAd;jUda2l@qg1JxQYOsKw`hn z`ah3-Q5~a<68i{|X`45V^YJtGx$nn+o1gO!BwnlN=T@(X;N@qLB)gr~@%WS+^zAbu z=6;W#)DCQ|^DMnlrKI8*+3P_ze4xXkN+e39J1YJ5{@D;U(wB#6`Jz4dNYUh=#0!Q8 zIT8sEd>cs*{rx7{{gMrY=NPHoGrAoNs&r7K`>W62_530j8Y$4|P@!5qH1O~+4(^_w z-)(kWfdhq0I%=rXQ9FglNgg1j&%w{c&zdN5D&~-$e_L|s7-Ez;?{6#X+PY3-A<^iVySQcxligl=`xSEDvvh548UZKOSX$j9ne`4dy><`( z6DZ->!4TMKxl4>1L4+ZM7S2kp@X*yV()ryD01@Mt# zmbHv{{j66(5e8Lp<+(msnG5!>D2uUwlIj`l8-0#>Mx@d~VOI5%ZWg7>f4J<&j_Ci( zZ967ZYcWQkGTl4x|1pFB8wKD9h2#l}z*c!9KIXV@J@?5t4BRdXM>W(mv zV+|7!Ur+&tVfyi7>2i#Y`25jvf0*yxaXaDTR-H`0!=KYWDkLUpY+E|hRW0&5%sx_Hon4cv z(mgC1DZ;}C<&y{bVPyi~v2$RLZ54zUFnMq=OdtDs?@J2@zet>1nu8+stPG9Hy`Ne* zI*Po)UP+e#sWiGRzor!S-uj_vGUbI!b>~XgtYNhO-qzi6K3&u;N=cj$V8A>m%@kgM z;|fyUdi@_vs{6Y1Q5{eLuK8dS@9YS?571;&jS4x{U~EcNxYqKC0Du$(ogzup?=|#Z z*x<}MBiqs5x_qMDzQZkN8#?Tr7Nue*Iy+DIrlXyOZyWS>77UEeT|#hy9eH>dXu~mpIS+@PN4(~D0 z#-X>F3H{x^RzohBByhxAw5vswtgKo;S~9R!OE;{8Yz5ydi?&=9J=E%i#Xv`&Ev-Ao zWfRXU%0eTn(mrf*My!%boruU<6nL31n0VBJG&o;B-ahgbb7Xq74GY9Bld7fV8Tn_R zx}1wJXe4WvzRy_?f)>m%TJ)a*bmMa(oE@9i*>i4J0|9Y4Yt$ivluJ77s1jWbp&s-V zJG<$ckb89IwT&`b0`NI4tzHoo>ZJ7}08D2tCbW00IiFC>yrY!EKBns;*Uk<7?Ts64 zCP$0*Pimvgfnrx|9;iqK7=E*3@?CA{|55byokxv+_@Td)%eSqh$lbx|iZRCaC4r9_ z%7rNK8O9^8UNz>+OCIE2qxZ-7L`tjijnVt)dJc#Ar#{{} z@&d2o9tD3Yp7{gS6?lDSwT!w4_PIT<@MMIC=ijjFf-sd-K%y=@O$qBXiD7Qk>v(2WV>OkVKjJ+2#S280gGI=?e<$*kU6o| zifz4PTQe4QO-Z>k@2uIW=Bnx~A*sZ+JAS6Hg@oeVxQ^j$k)&!905Z?1*>uqzDn7$> zd>-8~J#+0~MvZaLB>*n zYgmdTb<6BMN0u<)&58Mwiv}PkNa(*PTURs|{%*gA@wZWM)D|;8O!JIZO{nf70cUPl zyZbwXq~c;7Ril(;Qlwnvs3GpdR0l}d4wU|x%>bXCf$c}B}VB}vsZtB+e)=+z@Wi_}2cbm_NY$pU-^f+o)|qGUHcROjdG z*JrC+F;}+Ph!!!jq?GEj7A0a|5w(rniFO;{D3luXifsDSx}b5Mk!@klJk5&@I$ddw zK)!=wE^suOA}UK4f?V4v54kbSJglH#cvJ^xsPB|8)p}dPYOk=zVpO zh97!|Euuv5wdQgll{q&fT0ejgX#cs&$Qr$$-x;Gs_uX;)!qX5A(z;`b(kGMgmQ0dJMoqspyzz%Q4VLPc*%5Gy$vdDptejdU8_$2%!TxwMN{6K}MHTYJzt@&lo4GfVoc8lE@McHva@!g`nsJrY zHR_Xv#1oO**n_Lpo4S-v?WvcpZFD?*7DkkoLRwsjQHplRo|6Pn#RP9geU@V{F>Hg! z+438ztI}CPS1s%+qx_4>)kTbOUE677XJcA_wtYFS3ICev9M{#Jt|Xfh>V2J4v%cHc zYxw0Z^6w=EkThC2fFdZOSOed`uayn`QO%LpRlhFp+1V-w zcS}T#bj#t{$7{0TSx0@N$;f4l9L6Skkj^))U4$sha_fHH?ogm%vh0sL)#!Mm(rJ#Q zZ^3qzA~Y&qGi8!mqoD zUdMjMSqcC}Y?t@^Px0~+XAXpNPOU1_X=w_6E4KgTb(i=4X#FNAbP}JUYCl`OKi=PW z*={j#^kL|?LyZn)Hgd6c?0>uejUdwvbcA8Rt#=mfK^`(e5rz=kuZ!H?vf4&kUlCXL zs@+fOob|%pd{bY_{sxUyU7pCK=V=r-XEbI1MB30qD_Pi<7 zsg265#B%43sSukK4W4jb&q; zoyOb$spr2)AMnV^bX7Ku|1*nBzES&v93y_nGAj03Bva?GJb#gGUvdxgILvTV|69y! ziWrrCc}Bc*>A{T7ryHW1mi5Syq<#OC8``=qqd2xhN$b*$_sI590R|@J9k!c8i@QGK zbO@dFbh-lz2j{}Bq}2`oBSZ|l?@=S<79pSLo_lAAgE*nJjE1NYCB4z$bW+{e2EX0w zVYI}9KxsnIcNbm1X((CB`6ZvY4&>GG!Udt#octrI&BB1X7oD@a%68pIhs zShOfCOVuSx02_Q*aiIl`7>&##LN<+#05yzGQAE#^Tu;+)h>oZ3UE1cm`53*S!#Q&? z29>tn>1lI2EC8r7uT@p(BAS$Jv18jLCP!~np>r-h-ZM{rv2f{a_kil)z>$!8SiJ}$ z^OCrn04JhIA;m3T%+;e^sm_Rcd_7#GgB}!j^m-+v&e1cy+AzS9RqZ_MMxT@LY-69w z;;E9Zhx=cJSz8_v0FCVA^RLo!kx?SOZzKKSSHHJZ`=+xC`EFmc0S9e+^ncsIy3kqH zKvSbpx=s4~-Ew?Nqo*bMXg)@rT+QI2W&lrT$EvhwFX^HI;zZ(J&i8SMH+Xay;v*i> zQMvz+>y{?#E#n*-Yb!MOXxiGCG1YGB$6O`KE{%?sIA)UG7H=N`j-sITEY&e`HBU8< zDrM!(>{rr&(Ws09^Ox{BG|<13Hcqy)o362o1|`cP4da2M7k3TE9k<&c$e?|i10nbX zPgA`<<~N>tU#L{`q)G>+*Y!wciM|;Ipu`dzpx5Ewe!kv!CfQ9x?IH{Z>bthh)*Cwq z#sIGC3Fp5IKTjsHeqWlkGo3YDLw2qm!rZJU?_Fy4&G!>?e)3KdSB&<}rAhM6+$1>dG@&6|KrwBGac#Sw{0~&= z5H$joZu{4w>(v8u&!a{ue0}k{YKR*=UNl&&X*4zjiXgzCQl0NS^iF_ui`x_pyTic* zP=q3{5Nkl)BH14mZW|ij%Y6q#k^qzF&Jjh52+_w8pE}J@k*72FsO&S9!nAtm0Dg9J!uizLaqDjj(=pldrZ3doPsz*(yvcZzt6>KGI z124{0ABg17;uF8G760SO^?G{G|H!7G$Opfz-jM{r(|ip7Y&zK8=0_Qhb;0W|-vdV9 zfL&a8zj$H4pWYW*oOiTcyq6yI%Z5R()S%I+g!jbuzbYynFU9hoQXkvp&-HnI28v1# z_*U(B;p|wBue(^(cqtJ%wxX`t;mGY05Xrel(wd}6iWt!$v$5F8FMKfPqbj@J=<5Zd|2+wgy8)ozPWpRT zYa00r{XDMc7F1`4cNTcXJN%`f(QVys*NgmQ%_(v*CyX()EC^PJ%~uX>_4U|)8Tv+DhgD`cD7-9OZF90}F zHJLk2QWJ(YjdhZ4zN?Cb5F|n)N`<;x{zs!rDRKnxb7KJ0EbN*^A`lGvbW-}{qeP`+ zun5tly^oh6wm_NgtVpNb$F&iF{uBpLBY!(;7Y&`!-kyV2T*;tiN% z4k;HLu+U?>$e>2)a*fWS`%p=0+R||}VkD)@KcZz8QLlDYT%pUKRVghhgZboz-Pd<=&8IXo)B@4I+jlnx{>OyvyMk7xLM!079@?e2GSK$L#C3%?&s zh@nJ*;4zxM$k9>X$3RpG!H=togk~WGPQg0a>)5VD{?HiU6_@aaP5imf&%Z90mS;HG z)YnQX9_?*NNwv-hjwsn3YK~I^rjm{!qcBf8Ur>x~AMJZawTozUGPPaTuY0!B+DW$6 zQK!zS(P*<5XGLFeY@gPC;>`0>rS|n*Jr7B{A?-sjt|~T-Yu#&(ym0u@lb5;QslcoD zt8@f@O6{e0lFG;!KvDTnIueHV-}^1c2(O#_NuFCwkuFk<-b;L+H&g$w_~-`{V7N?? zBZx1kxtNp6Z|Amr07rLT+cu!n=~%=?82*~JLp>t~j~F>3ljV}?bobj~6(AkkG{;ks zzkTf6yF(hLfXK&Xj1+|cLjpxA+5NES`~MD+qNk=n_b3&8h5g$@I|gWU|E(CE?g-a} z@uKDr_0gh!yqlf;<&>j~ka3mZx93@B*Sme`IkZH#9~7MX=7p#$2Pa32?lghAoJ@J! zJw=!A)3LnKQ~)In1bz6;KZ{3*Xuv;+7O6Lj^tlf%A9^FnjCw(%j|mWcyuQY)OF*c< z&s3Fe&pR5A7-{E&WLL;^@3l^F&)?7dRh$pr$*)E)=lt^BCfBW<7-@778LCF9+o?*Q zV@Jz#ZnRmFgPrvi-l4ek!8`X^{IR006kt$lNv4rt*|G%4;knf#OZ6vIrw?jN4GIit zbQ%rfV8)BOf^b)s)Xks z(PtKuj<#!@+o;IRsA#ybGwyZi(W9=E$=+I74rEV-v!yF@?Kib_ziw?z6o%X!Q zv^mWyDr*rXJ;koksnHKqccz`O!x+^vV$RX7=Ns92r)HmBcEUisZoX^&5vX-Zw)>-l zALhx9lB?baa$%y*1&5 zak17IK)kW>#YH~9M~m(zrQEEXt3e_lqG3$KLiNZ|f)jXa+?c-b_xsXO>NG-h(7+Pj zH3|fF&hw^1#|Tj_r?OFm;hBjpobFWxNc)f4Ha6xn8XcVCN5lNT#kCw+vQdcfD=DR;ro17M$itued@!CQZRgA8MY^<-;_Jq^g#c(CAj!bZyyk#!aV8zd{NwR| zzIa0Gks{4=N;59{&zVk8pc zbudgrh=J6(knk4EGXfSu&Jk#IXiU^Q<0>y~Y~YDOLqs74dg{RaCI1%@BaIZj@rLe) zR+0MBlPzhw{=G$wfQ>G1nI{LTbed6%30yj&EoQ5I_OyJ4rhHaMriLauDCLJPY!L>Hh!q|^;k(X89hp-@W4GyOm|!08l1&WBMWuvdW}v5H$Fm ztQzQIq)LsR{FERcW7w5H|Eto12%glA1*%H7-Kbd6u53%oRk@;%^4)$Ps~+LgXHUaI zL%T~3_qd_ZD?CSbwm~04a zEgOg-fXQtD_gxZ1Ndqo5*Dlg_$j>wFQ;&SnTESSI9Yx96CUy=aZkGzcL39E6m>T&G z+3(TeSidOR?quhESq0sFx4JgBc!bD-Po`e)=EK*tqBo_;ow{VVH0FXH!uv4&Za=la z(e+Ple=4;C6shCTorj#JGMy^C-Y8MOD7xYS9o=+QI*lA*+uyuD_K*?QA-{-JI@)a? z58UGTKvHfpbC&Oz2!q;>Cexkm&5yQDBSo()=P05?P}co50j`nQRA&T82mU&Cr?a$I zQ0Bzd=o|nMB&Cz;Np2S2Sw$v?xHrJ9QVHishL{6zRy+=@bAx5oZ~-OFb0t zQ^rDH!BG0ln0C(Xe5{&fy>+{~9#nu;4<6(p^t|@(k|IFsUvaNcm$5+JCI?8qE&Bph zI)1qNnJ`)HrhD*|i^0~?qsw_|g{6MZASD05vA0B$7^S+yKJ(?zH%ynZ4w$<0l^%KL z_e`UM9g0Pe@IE}ITHy7mrxkfjmEg$a=%jnd7U{fsIv(hQwn)7l2Tg>5VhZq%K$VVp zMj9~^|MRQs{||1L+mlNbUSQF*SB{Fbj?s^8@QnhmG&p)L?+hNH;ROP*)+yl1EWRKH zhyaWz*}Zks02OK%L9LDrFD5kK=tO!7ozv&oSWA)>B?z*r-X#=vy25ro)tPr1ES$$^ z5RS9gB^s5GN~L-oi@bJJI-iEOub$a`%8ri7w@Pn=_i)GQ7@@4-pKF+(=H z%geZaQ5tMXq7UgnY7_~=susDi{TR`?szh~MUrKlC>MSwJlLv{60z^$4)-Uqwg+#Xw zLbvyvgr14K<2`5J)~Mu}EqGy`KU(vt0owIhf~vq{R* z+&t&fj~n?!xz>^AF3m<%x(tS*&?{`w6zb51YNQAeCkIJfZf`z+-Xcb0aRwQ++e(u@ zD9>=Nkn85)%k&G;jOOSY{$5ySd}w_}jWxT$t5FjMQNW^;S9( zQP*e~hh=3t)CZFdhLzkVsLhS7ZOfN8leo6CA+iOc8G+r0l! zA+C^bQgTC|#2qCp+GVOEzU)W)1)do4c9~lQUT;N%#8CDd%P&HO>N}kGo1LoN z2$^e3n7|REMPZ@$DJ@h#nC2QeKmztb1PP5fFc3kJb~2Ri)}8DvXa(;1`gpyqGpTN` zxs#1GA5uLC+4K1vLUO8|7I>B3`>B+N)UlmWo_n`pChZ{o+^lP{I8WDd-oOT>y$PIj ze&+X8D(;%O@5@Wbbmvp#~7OD4M`Z<rM!E0uaxe1 z+bg+Ja1@|jfqRL2x8=bxij;5vlBN>i=jZU}oZy8aoJo5AgDyAizr&!_OuyMs(Q_-b7G2goMyQS=HOm)M@4DD9uKzvEOo1vhW1<`wD*p~C14p817phe3`9wzmgRg8XsUT_YfF~kGRo2B390U;@ z&3zrVrK5jrb8+xf+BA;)v+uKJ>jUsoYg41!G)C{o|CV=TzyIe7!hQ?(#Z)?2t6#(~ zs&o`PPE(#cOMS1S)cC$eU);R3WxPq|GNQ$mhKyx=9Nr9m!ZG)9Q+QJHMf$Nix$Zi8 zjm~{!^DOGh93!=dF4yhRB8V<57|PFH3z*AxN0HZKTYTW}km-Jra*(u<7{F0z`on&; z8b&ZgmY__B#^n#`dmh&_Vod?i=m3f!t?3RPx$Oy*Sl5*>dgt`I+tomkqa%dbKlt?p zjZVA)^SC`~7%?EUHF&IUq>NAwf0+Sz|JuNgauD0nB*snF@M zPC4IxKja}LO$Mzsq06P^ThW`G=@3nA$o@p_*3@a@ehEeg5_Z$NNbX&%fBufikpNQ^ zfA!-Au<{y4LAMj%C#lQHazmpytqlw%`COamJJXd5GLS|WG(6w8q-jQ1)H+~MBVshB z=}>rK<N^ZjD&0K=tSm;eQfy0ZR_M!~jS_W8Rk z-PdicFIS+O#WFaU?P!;)Zl^#PDj>4T+py0lo_`e2#Ks}YKWvEx+M=`$F46;M()uZv zPOPR_wle7f9imQ*98WyzoE7VGTQC{Z=9cC-X^xlF*QU*KBx%X0_EMT-#@oW?EHYIV_d3h$64oQ&DtD&c7S(r%db(q#CnV)>CzV|2*7~+S9P*MqdCcF$*S<{}9qfy!bS;^x#}1p-=crCsHdMXUO?_D$D{V7RfQRqh z&6xnxpHss+_kCj{19nfDzZTlx+`?Qp|)hMW4Z%_402G#C96(P$Bhygo~H zjPM6I35s-l_@e08v3WE|pYugJ4I173NsAaEtc(Z}gG4`#E)Tgze@P+?7Ag|?H)xDP z8`I@8#ntErFAfkvoZBFbRaoIzuPSR(X*;IsL7d4hE1;s}NOK$7l zQl*YeDP+-}15J+R%(5?xDAN*!V5dn)0bbzU!OKgrg~@b7{y{bk{fwS}j~H=~I6lB6 z4dgT*LdxGh$3JMy7s>R!RT|*pyX8RmVzTA?Rjcb>YM%ULuvvwz<=3~c-cur9|{+Oi~xlH5SNf(+Kryn5~bGBdv zzzl6CbBsdbJGZSnJ%EU3JJq5K>YaPS2$s}BzPp4vo#c1ya^~k^zoYwE0dhu*)b@DD z8mxxh#N65YR8@cheJQ~Zb8l6i`?~bWxGrRbT7e&jz7-v?Dbh8&>5L8$=>!-kyl~53 zpwi)$14pE@X{o~j6d^~Mc}6#fDL7m))*vko(@LRx)vyuXbstdaUK&7Re$fR1k)H=3 ziIxlBGtX!&Vigf1e}_?sVUd>QXc9ouX=41G`tP;p$A$x3m$@e#Ds(EcAT~7IPlM(| z-}mUyuj`3~13m~!UGA0d8!HK_Qow+~X)bLU*-~9ZDIIq_4$l+ww0vH3Jiq`C-8pUi zze$nqpFYQk#hkRYOA>uOK++tbB<0=0a4Z6q4mtXPY8yayVZ@)StW)Jm+xAJ?5BBr; zhLRrNY^s~2=gc>cv>Ri5GajY=9}~%!<^gz=3cNm&rfvVo&hs#R7NyfkQ$Nv%b(BYO z0GY{SOxV1ts|*kRi{rvYYM3YQRu$=n_rFMs8fAG*E$})tLjQ5Z=lz3EJ`krjylG-G z428ookCzSNmV1u=OHVY4+HXnDX5S0QDP0Z{-uo>%6AgHl5Di5-F8oO7QMdPE~qRQu&(-cEMhEb2;cX-k53MoQ-NFI|Z)*)rt0-I6#1zz`^S z5m8CXbPA+p6r^XUdASJlR9GJ2l(?{v~#wo~W)xAJQS zEvcp`k$(`UUP&x>tfb!F@Aj2i?v}P2AeIaJ-IX@CA?mlCZ<5Knv!GIq&P@UKiUWx& zFn2g~A`pIUdD(K(BBi=o0Z;-dlm2*JG|8WTQtC*nU2z@T5k`ExZD6FLMUASx+?I*1 zm*08L?0}dqTK|uBYT?HpM}yc7FA{KK^xukK_jEc?pc%>Maf43hM(_lcy4kr!kD`e8 znThn|d?HMeX>gX#zw1|{eMqTYKg47rM2}e02*t_IK9yiVP>uESlYbZ2+jqpSGBM60 zm$weiNK)5Nk_b}xCtZX=CA+gMotWeEy|nWna-_@O78PD#wCJ4|d8IO4lmLO_^+y9a zchW-_G&&Y|b>#&}bw`d-D)OpSx);Wpp@S9zRaB)5AcW-@OC3l=jMV)7+9w+e=R&S5 z^s1lh`K5v&1wRj^O^Z!G$~BCJ>3`?z{yhMa*f@|tN$s%6t0Vv1U9OQEOUOJPjYG*` znx}2&_6;|uzVvJmfDvj>I9(qveU@Y+ZGQY!q z_0xHQSIpmY?@L$UHCtNnde|llFt9PZgYeN0{cf6YIiRDPx2vKdG?rWMy%3zM*l6Tv zXn6leF~vEh(YcFCDRh!_79hzj=EaJzKl6*O_g;C*bzcLo`qR29T~`DTFZaMPc{Llo zc2T#eZLV_N%qP-q3A7|7*`7(rwOS$9((;RT%34&2owuseoqH=nRXQ<6IyI+^5na~{jo)@U7@O+%@!|F z(4@MH_cP36LUVY7gBAxl`rWWiWj^O3ft{Tm!1Z)GbB3WDLolLut^H@AZ?&_gOsDeQ zcu!6>y#}c*-{`EV(Po_B}{-Q~2)c6UzrxsNTG zZ?vhP>)7UhV_kqDA7h7zSvqIj-bG~7Seh6!xG^GPj7{j${85)H?TwsPMw@j`~FqUVvd<>2$72hp5rZ{25-F z=z@l=omPj2ucOkX2$AO3IH&Hd^XMqaxpk|kOy_U-eUtJ6yi7r%gAEPuf5Go8snK2g zV9P$-@Zb=Ny56vPpKS%|J~|-Dw1AJ&D0VF3>NSi=Pk?s~#(w5Z)*n>%U(rzv9T*Gs zL1=;CN4Gg6P;wyT(WIN_4OFo>U{^RWCGr+lTHm2Jv$!}z(T*AsA=2b#PLI=$d{$!{ z6<6@cQDu}UtbN95{Lw9ST}?p9HY&mYC)G~}8}1cmWJwdM18G$s2PS}!Q5bDR<$+CB zO$loi3R>M;j5kSj)9rrmHrB_ijQ&g_DZK%vi}6V(<3rd%qFxcBMaek8hWJ92s~8G@ zx8K3S*9XD8uYW^PiM#u6mvaXKNgVN-@bMZ+rAuSep4NwF_q1UG-#&F`}zZ1U(RVzMB zb&FWT=rDbjEYJNoP0vRl3Da}w9r^PreHzKgVr-q(>11is#gC(mu*-gV4b~S+@NkTu z$Nzb(-^+P_TV384QR%WgUk`l7h*DAlR;}x57UM4|)89%4KWX_qHuwx89&Ou&5oL57 zN6d2>-C(6fif|Jq?q_F5wO6Zq-0q$u@#o~o&i#m91Q_#+{6WJ*`0SxYjvi!B#X<6R zJg|A%{b4)M=E5W5jR3$9yeDWUG6+KBljqUkz*MT+D@^0{h;!1>?xJ5TK%GH76r=Sh$=s)zCf4xF;6!X z7uz{N5=*enlCS!`X|%`&8jbE&gIY)RI+ODD>4gLbel`|lSorg?uqcv(rdc{}qJx0T z-zP=$KK1V{smF1kGV>RcqBVLXR@Aj@c!+WQX&TUIao7ATk|LA6V zD{5UQE1tK}=~hgT-;~^>K(Ad3^PnceNTL;W)m;;vZrdXf<+8|k`zp=5s$$?)5-4_X z6!Y6Av~l55?HU~PXy-+sZ3EX7T8KJUFjDJQS2$uA(dPKf#&g7cs7duA%e2zv81Y@# zhZL`SO7SnZGk$z+7etyeU8cv494DPWC#ze!b0#mJrge+hwEqs#E-sVeYi>hX_Mm!+ z1AweTQwMtZRh9j)J+t z3%oeEY_*GqcPRKmy_d!BsZ6JiujGKv(@bYjOHm`Wu@~E?Rl3_nwg85ZOQcbvBRe0W zMF2~$Py2Z_2T9P($K>;L zeGKa|{F`%(jt>kR;q}th=9irc zW1?(V;<9-m%l^(6B<84ipA`-K>#cbln?W?X*uMa*R+*fwl*a zh3R+uH(M0~mNry>N)t#+-RcugQ=B6PJs?y{_3TM}fL#JpJ1NnrOY;Rc()^-AZF{t(&s&9{T{jbIJha^Q#3%#a1qYH{L zY>xyrR*rvHImK*r&rXsO9f4EO*sjKE2fDmJoftiC>J-(fU!$oprfsuwU5;v{0 z&wpEO%b{4e?ocVZjFR2zgdx3m**k4k(zhMUWouU$O}AMeC!~DL083*f29YL6!*k7= zH+_+wWwzzho$A7##c0txtqglwCi9lz+zHj~Wi3=mau?f2S zbq7lIq-vp880!>jaaYeNCLn@39rK2nUj*x@bmNK z_0vfbo$g!AFM@qB**(j0w5M^*n|GJ8zWm7;#g@;2 zsJdZU>9;2c((Mwoj&Nr>*O9%M5}hx9+Vt%aHG1~67hZsAq-a)qPlZTRro%&f;0up^ z9Uk}tFYxMWESLt*R-;8fweJ%YIy5MM92$^&Fa6vDDEjNm(&ZQ-d`&>~qhBK$rZ;bz z=mH~0D%bs%(`N7%u>v;05F1W3t{*tG{jG!tN{hP=_Q5?>^d>P8l)wq5bO1K+ELcYu z*vEK_JR<8i3>2e-0Vvw_X<8I-B`CtVyaUqZyQV^?RJt=RD?K1OYv&2;v|FVUT%gcG z-UNJh0LUio-FN0u6Dgl#=2W~{U%LpVb%qwDsnQMhsiUye06|TCZk_pN%S+H-`r1V{ zU?I5D0Tpuxq$y2Jd`Z6k$i)#-c4Xvf#{GI3+bD>jXPvJrGkgA5iAuMf#1+Ipfvh}N zhKiGQ?%Y5TbBwSFa#q8SwwoeIV)VJQ{5gbui${L;{4<<7`0;6qFED}xWx6KW zZSSA1wOU2jxqar*VS23oI?O{Uc3f+{vfiK{hu_u7dpkb+?VIn@cZjgjC=XdJQR$Fh zq(V=x+pz(TK;`GSgtZpw$mO&u(_!8zbV2{SFCB#rxkSjt4(82qTNjp9=bjZ+2UY{{ z8OCF`o^CY<_5-8NsU>AP<{DwF_w3=QU03lfUv|_BEF4NJ_^S3K1&!t-0F*7pq|%Rf zsm?t2{knG^OZwo0tRFsXUfQ_VuBWHYl{jP%mh2pP?EkG5cZGeC_`*0sl<9I@o(sEX z6}l$Ekj5B+VEIMQeO;!(mC<|boR-h~EA5iUX!AI!z0K2dt{dNw1VM+X@z!XOq;>5S zCbZDDjUum4B|worXUs7g-k(29AV>@>sWRPxQ{|4OGgVx{GBg4&+Hxcx-t%)%iS92R zL3;UXqtgK(!3%RY>tebA6d`KVg}xmTy@^ldiIvhSU90$lm~5w}8NIj25eEH;7M+N7 z0N^si1EmFC_xsPK*X|AW#~V$dPU&+W?YvQ+$Q$`+_-RU|vwMRbM&ucZDgB(f$1POq zd`>%?U6b(MJCi2e?fagldEGZ6NlihhsxpyZV?sdZJN8|`7D?_^J6!ibc8Dnfo>@0| zu(N0Wyn-RI{39J4NE<)spk&!vJ|3q?OH5`?0N!TPyj|_~(E-quprQJ^+emGS^ONa@ z!B&@pQ5q%9qeezUYR~^9C4pa+O`N8ulp?8dnHQ^(bg^IWcFHBuM0O!SYKnb)v9K%5 z#?@86=NNt61{&S=h2_+c8fU754FoYX6x2Df-`Rplg;Ly|Gr$hs_7kV!U8S+mtoU{1 zk&xyR`g6zoe6nFXTQao2pNXvUIcJ{HYLqh+>T*+y`j8H%gY9WeQ6oQBiX74DGF`SP zQ1|>e4UX*~6*=J`nvS=lIbWDH-gXjrQh+0tH*}up&^Q)V>R9AecX3LcIyM^_ix+d7?@%Q-jY$*)y|hV0nlO3s zvi+_cryz|W%X7nl{6a=`jbIOKeJ9oJ(*Qp(f}~vJ74xTi=~$%FiRBw%tQQd_*dqv7 zRC)AYU3Ozc=BFQtM~uio%2c}froPU{ykIotZN2R=khGy+nWr|Z+sBvXM?G)y^V+dU ziyM#s+jyTTG|WG0%jFxhFUT=68XZ4;;|^BIn&y2zk$vf{uF>acb^H>$A2Ge=zIZOu zaVWVg_K^mZ=4l!1aT{!{)94b~)?~NZpW|-2t}$4`I(h{jU+OkbC4Gj&s)b$gplE^D zVcA1}fb;?61L_Z{QtF;No$f&F5SwlnD%qtUO z04RFp4U&e!f3zGUA|f`5+L)%I1x&hp=i6wo=$1u}Sn~jFDOpJl`lwpXMTYtS-(xBRQ=d+m8FH?b>HM zJ8QsVlc^wG0zN9?dTw&A=MI3_scVP2lPahCkzqU1wnK+|oz>elN@S5Da_A|P5MU=2 zfQ{&mqa^~TY!p|Z0@T8nO_c^yeH+)|Tc!b4rz$lPc!)@n^hw{V)-Z%4oy#UIio|E9 zO6~KDu8K-0B^2;fMtRcmEy}p(NY~5zfGTv`lS}{3CHC1^*!7$1C;ru#I`2q>3xK=r zzx74mv28Mw?Y4EepK;F@0-yjz9*tCxeML9JIHxb3!`2Vtaa~a{PY08=IRX^?I}n-J zv$$NfV@%TXPw=v0u2I(6&JpQlS<45SrJSNn>1D2B2s((kqNe>8GqLySY&5EK70(&P z6r`j&MZRoNToKf!gU+n`7LDX*N_1&(&S zebuP}BBgqdsB@=aM)I^l(Ivc8c{bm6Z*Hc$j(+A~UtsATs5iXgrKRXP})w#%Q|{X@zgB)d_|Xe+U0 z;6UD_KF3_6jyCsDTC_-Ht)MGqyOB?Hy5YI+mOW~M3(6!Kz|SGx5AAh$*Fe!L*1jC) z5UGvM@i@KD9R$tuwy9s9`{Z2uWplP!qp?d~#P@kI3fx?e+X5e%36{an__9mF0rj6f zVpPi}1W2&tbDi)4*ZUDhM=Ya-n4f#2&3C@$zRg@V{P5`jj8JjAc>+97F5CHZUA~|+ z{bY3P$LaVPsUP`1K>bg7lNSx0KH~PU|F|U&UAY7bCJ470KuRhoh!%OoD5SbESUaw! zO!vS$T8|bT4=;p?nOg)<1VuXXZ4qS_FX(!a3ZucG@S@u}2*TUzSC(T0Ivo-t^_8nq z$G0^6vOf&q=beG0+wsj5`Qesrk4O=D$7(liKW%fp;U#5m-00p&-YZ<=r{SL4^5U+a z{5*wJI`N1Rr~_W?6&!1TBSe<=u33YTJ#b8B%?dxQmXUOY_RbPV9MPlb;QV{ob)~x9 zwEUd1+-~7{loE2?h!Uw+^1Okdv6T0y)@w^7hS&nAm+a(cUbASHy{I+T!3cPkiSAY% z=rB@5Z!0 zYU;c*0MbA$zXicG$O2U|6_M1a&_(HlH7uH)`NWbBs zk5y&5lg1P&CylkyQK12fpiFnOuV?t%EeA*V15t(_{Q5Gj&eKCsQAJkT%H@jqo0Ox4eJ;wv&HkQVJg{u-w$wLZxJ!#`~w3_9B*k2NoVam$WfvP z>A8I7IY`n9x+?Vt1HFf7nM-x=r|;!ROuAda(eOf)=x{j4<0mPQ6bvMSoYc=?n&63o z43B;NT>3F_wz;%p%xmxLub&x{bNxIbKen}J$3!qBj#4&_|Hp?kOz>^>d0&)c)JJ^E zXkC2iBdVP{f4hC>Wpj89KOTOxpZz^cZs!|elVN$uH^}Q zf+Mj=5%z!YQr(CYkxr-fTkC)Tgvx$Xx&cty-P1}@9AW=Y{Jq^yTQX}__)(7>qDOnJL)zPwP@xO2+y)?I9zJRHjUcYD(`Xg2aoUka ziFVrd=Ru<@ll5-cFCNu8lXpi<|x=(Q}EAko^66135w|U zD7qOE(UTJQzur%i-~EnO1GuMJqJ4Ow&1n-C=e%Yl(2yo2q4S5otq zQ&(L@AD9Ig(1%i)4%eBByt1AVmID+q0u#}qeQ6>|j3!a8`#0O>CeOwG{+(0jJP(=g zEbzMZgViEJqzDlsRi*pUmc4n^er3XfxQ_1cOgdTd$BDcL$uW7_(F0#cGibJs%B1lJKc|}mE3kUmAU8m7W z0{U}5?qe=5En-9&Z@y@A@pY1J=hENWC7*}e6$Y-3toTW$fBZ%u^Z zi&g11P22pqh->{D+`=A_uAN1Tu<~8E*A;16)&bJoPTKuqTo&6_37JE?+BW_8GyT(% zU*s4RAyRadmL1yL)1!Vsj%OuA7an=uo&%+aN%7?2vo?M0*_P!QC0lt>S44|+`h`>L z?ps5I935bwpMGuo{4pQE(Nb4c`c-4pAxur-h1bK)3@TlOiUvefTw&(@?Gkd`S)LQh zbnIvlEILWw0dtJ>{iLcV3b{rQU%)ap%5+g(_Xax53o%?1f2YEZwD*tKbVfl@fEllA z6j7s7o8H~)X>)t2Xr6wCRJRE7-MWn@(1K1EC5-@{Fn{*>hd!b|>_|Oog!)CQJjZAe zJd>jYVbJDs=RI>uofaEhv`&q5x~UJ!B^QU~Kw{AVPA7p&n#wc{qEaM@1C36K+QHE{ z&p;LFNUQPa%4DrUqJKMIf-+3?*w}*%RvhB(eg?Q zxo*WS7%)c}oNf7TU%3@{r*qw+Z3)?R6Jtof`2e1nk2H?_P=Sy}5fN32(+G_B6RY1J z>%;U}%sEUOa`dL7T)7ZJnGoQ&Hls@KG>9m1YBO}Xw_`(~paX69%qVrm>lvw?iUcL+v~>Bbm}aigsjI4nFvB(53XVhVCO^rVky^*!F{tSu zWTO!XQ5;FU7`v|9FCo{BcZx2d|7V`jSf2ZK>d!CV`fon~B8o3as$~T83L?$20E4U1 zZI7Rt1d3>s>ZTn(x7;E!aC93ym(JKhes>gjeQ3+*u#P%LsW2sSid3%qX@A~U)~Hyt z2s4LNrmL1)bm;e+M~j}U0VI*NTqBl}k&<$X_>%TcQHGp1e&$oc$*2b&6o_1lE#JpHpG#zr@CaoY(d~Pd{j`Jw)r~OLwL1 zn4|5f;E}KEPstl3BY-uwC)}pCVy|~?pGUF0YVJ{}bbFW;(INmM#X-;PVf4w!Gm22} zaerFQ9&iC0g8OY7;G)a>?FNnp1S{^f?Jn=tF2@n|i(XSM^R>M~Nal?-u5WQHZ~bmd zM9tOU!HbUURy!^t@B7jkTX>+*9y3(GpXhWSKX~~5Mx#B4_X~=2*DYFv*R|`d<3Q(d zoe`sJmHmd+F6yE~((;DF+jiRc*=LeILrRL({mxo+h`4Fjui$J{&0K3+I8R+)J2g5{ z@Yl&z*Up-~=y~jH9dhc_A*`VLEPS7|PHS<*V1Ri>?f2KbAi8wD{>O|RB(|M8bq-bQ zmzTnb5{-ilEv)F%foG=8L%bXfR4BKtk)>4z8|m3%?vNjF;_oY8jzMGzS#OOdm8)uF zgGwjOL%we9x?x(pbKAjb>GxMjXVxzg2Spc_bM)Q5UaPDz6;Zw>qCtQpvC5WRY>)4i z8j6N$Ibxc{M$)~1Www$|*)ani+^qRS$kn1Q1t ztJV>`CW712|9$;ZIz+!s$?h*I@M=?4GCj`thmAwX zFQ+AJDJ4$0ZhTnTjHrCsytE&FF0!UTN1KnQt8M#p-MoF4Ih>F7n`cnO51Wjr{m@bW zkzb#KC6i|?7CCa)!Bdy(RuP7$Uf|V@laXsAuBvk2*KnM8vSOeJYAg2-YV(qeJS8ua zR}+yW3NPGqt}fg$knC2wn`#=pcDe2!t?@%Urk9l}VG-j�>Z9AE?2yQqr@Ir(bZAyCnZGX=j)cFQv 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%0A|P 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_error_lvl2_style3.png b/BLE_EXAMPLE/src/main/res/drawable/battery_error_lvl2_style3.png new file mode 100644 index 0000000000000000000000000000000000000000..e6186d94a66f8184f1ebcf37392c800d05d0b37d GIT binary patch literal 457977 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 z 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 z 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

$SaFw;yfv6bpc4tk~vOo|Ty{ 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 z�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 z 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 YVdne9+BX$ni7q~xYI>@bPwXTA2X%+#H~;_u literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_10.png b/BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_10.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8edcc314d66e261e9719362eb696c42b8d5957 GIT binary patch literal 18374 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

FFe&du@4nAN@n4eygKgrK_g9{sD5vMF9tTU%U{S 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 BNp1iD literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_50.png b/BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_50.png new file mode 100644 index 0000000000000000000000000000000000000000..01d657112feea57b1b94dd2b09f024e074a97d2e GIT binary patch literal 18394 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 Lx>Td%5c_`s^uI~6 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_70.png b/BLE_EXAMPLE/src/main/res/drawable/battery_for_dialog_70.png new file mode 100644 index 0000000000000000000000000000000000000000..3a222b05bbed2e2a2d7ea9f01cd880d738e1ab8f GIT binary patch literal 18324 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 BickOm literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/bms_left_line.png b/BLE_EXAMPLE/src/main/res/drawable/bms_left_line.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf47e74e4ce501704d6b88c1688617ce152e5c6 GIT binary patch literal 25281 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 MQqxn#DBDK<4>9RkmjD0& literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/bms_top_line.png b/BLE_EXAMPLE/src/main/res/drawable/bms_top_line.png new file mode 100644 index 0000000000000000000000000000000000000000..19d6e325b46813b164aae49b9d8e739a578e0cfd GIT binary patch literal 2168 zcmcIli&s+F8s|3Vqr0%iZfjCWmN&J=@v5VRWR6Z*8be~^@_`vpsg)uID!#6dW~L=I zBo<6E3PR*@e#7Jz*H0;sF)~vIrJ~g-D{n*_degZzTfx#_Wpk7 z_Bo6{beGjG2m}H}ojDZ*f$W6o*8!%+`uAVAp4`+=X5=&BiTe2;h9}VeuVMYdEFhtrfPZu4+f}^L?kEkawc&zjriZj^^8^VKOHkT_v6; z9sA=j`NQB^h)T&TKGGlnO~uqEcUqb1wa|a?f@vSv8whn)25(h zP24y*DqG5kICQM%5*%2ne;PBMJd|XlH{IAES|J(Md6~>MOikZI3AXT#eH3@0I_0R% zXPihYX9wSDY$1cB`AL4cooRa!M$5A&!}2Z+tP$J>4!FMs5juV>h&J7e_QuXj2jvzg z5mcthF{9kot@D^F9^ydnKG3I;&{f&xP3sWW!K8LL%d)EF*l8qQtUItbQUcn^gcVlE z$u0}8e4rmmc6t~|1>`fg>R*2e8s}-8y-yNNt${qLE|xhY?hsbYq^=^#TpQTI&xOcW zUVc5)B#R%P)SOujcuu)zd(p|HyU(BKc^=0@-^?{Yz<+a)>towS#&{qKj2LvgL;5uB zQ!5hp3vA$rS+Jk|LAQywTt=nx8{x8u)NEsx8REByWmx*+lL2g30{ zPA*+X^@vCE=0^VA;4c6=<*9mpZyW0Apja-vL&hUCmd{=|`_>ANz*0~jANOO=GvpJL z@gyf&_ir6SZfNCu!x;f(QQ30e%kk#49$Ru8GtNEgw$!u7h2`XiE>e~ZBELgA9J>?5 z7AlwEJHZ4P=ZezzKd#ETr%byaj|hygmx)lEKZu1TH}8^G-_zh4R1km2=R-Rbbl&`z zM0eL3fn$qi->i`eWr&fHk(lO(g3+S^%&4XdCEEV$+2Von@ch!=k!&J=WrmgIBf>#n zbhRxIwk^R36O|(>Z5@fj7T^$4hwM+E*1~z-XPCi~7^b2QbEP)?)d0Ly`*HTV_RxZl zrEwXck@_HTtP&!#4gHqHRJic7@6)fc(9e0dyqUne>dDS^R9MoZmyn?zN&T|u5e0X)QVRB^%o{^#avPC5uGz3dzFg65LY9us{MTczfJ>j zZZwP}OBHIRCqGLQy|pAsSy$7uC)L{MPytE1QVd=gZ@>Nk2Tme*81VQWM9$dJU2PKv?mH%oSN5 zJpghw(Kt@McGk=q-7AdiPZcM@Oc((d zrEE~C<9!`5v(9kv6W)!pb;>ODCx;{_C_rIR()r`& zUoE7YgV;!nSX@qb_VvR)>+&wXr<|EiN;sauwLpOXzYd){6kb{hRK5E1s=Tp&bc$?6 zRr8;pe*d|$(k+vxp&~*YD_DOMvPQd;%npL&L4J*>1UzZts9gt#z-`A`8tz*mpZC2% gpTIAF>sTD#@Q}}5Y1K@1kAQ(ur!l9hPG0=^e^(a8kN^Mx literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/bms_underlayer_for_numbers.png b/BLE_EXAMPLE/src/main/res/drawable/bms_underlayer_for_numbers.png new file mode 100644 index 0000000000000000000000000000000000000000..56bc6d2ed1a85e13a4dbaac1ad4cfa35e91bb7a0 GIT binary patch literal 2832 zcmV+r3-9!aP)bVG7wVRUbD000P?b4y-7D@iRbl1W5CRCt{2U29j{N(@v2x9$J`wJi;BKY*IaFna8IodnuB$H$Hz`x=j= z-2`#4wK(j2|F!YD_`VWb1|)hmEA!q7$Pf+s==l^g1H{jae%?~|wb2=Dz9+j@Vq{Pb z1IN+znR;)H&VchiJ5JFZm~7B-UlH<|)DjWF109i4ktER>h%NycF^Z^e{aer}KO3YD z3F@;t?$l?GMPnlp)aUHHDvOV2u#(V95sHL}5H;w2?hsrzvz(CZ?T@x&a9)*zdsXi( zP$>bAUo0l)g~~a=af*nL=xtVmehl{2#^tN}uZ^x6n2;CRn`v_Ve5jHUg+zmo+d&+6 z2&o9T20;-SX7S+j@xjgn`1vC|TPmgFLwI1Bga>g>k+g-By$Q)o6_b%|&vx#c6XSbS z#k4|{k3a$*;B&M`VvroH!|Za7NwG254r zG_rX|~@kQ7$PH?fV7qN1*>T`QsH8B`L3DuqOErJ8fFGM??Mj3?`n@o1M5M&&a-fBS%x^WGF(EspCm9&qqF>GY?TSb5;lv^22gcA_rf- zJymBW5QVzRR4Fo|XHRhNvkmld)Q4nI7L)SBF3nh^l5Vu6+P4LjGiP;R+Z7ppzu)(4 zdRZx*9Co6t4k=0{N-3<8%(-)WwjhdZs!;d0y$v$^4SZe^_-N-jiqBVCFWgL&m4(0T zOHe6FC0-WRqZ+*T3|;w;(|dbe9oSA*1uJRVEO&iKHaSFYJM^kMP8sXS$@nDxr`Lt(8=T6gjJ#%j%}GicT$KOJM#y78)%NCP(f<{?>x~ z*%HbODV0K^386@)m&MMgBgTH-^nW0gwOEM7T%KkiHrxeY6!mP>rzz^k{ejA+5M ziX7YF{HV!_RH8^>#i-@_$N_RYRzazReF*ju&v(C8$kb8xr~1_ie^#VqCafao)`XZ{ zMp@X;S39pqMMOkoun9IO*Tnfh=$I@lY{b!bNMgsnr^$+@yt8zEp*+eZ|VA*!@v+Lm`}5conJ?fjj^r~;yL zvpPRu6(LwrCE1RuZbb;Tsk# z^`b<_qh(5T38{XDIg4u#_8wTO?hzl-Atn3W(+Kv8vJT?&iuSF#w^RuJDud6De7*;a z_z=FXp0Das^_698^&zVi@el79C4_&+r1t9Gth}#`y9|33J}VK`0B`nns|m?|uK8I> z=wK!kmRLo|$Y6hEVm4!zkZe#hHM|DL_lC|}zGYS(J~uKkoQ44<}mmwZO?p2^}U9&zx-xJHdK~WceX+uOw)}Fj8h9LZ?p&0nn{!L8M$`vR z1Dm}_m6A+cS9MEt2+3rt8m-9Slt=#O#|J8B??3#E6jCKf&R)2VIc}pOBx1c|mYyx{ zAm_NnI&MYCtLdD)xGAC{QX;dKA|j-t3Z(><@mZxU!a-N+SWO7lg@|4xPwU5IWW;nx zDTx_T2o@UUwapR^V}=AK!(`U8Bk_)h~?BT@+VLv5K! zi%7vbLyRaykr8E8^R#%Fk^;-~=e8scm?6ncBlk`DLR83;#l#>v9i^n0QAiZZat9vY z_nh+sGwZC%UCPSrD_0D2q<=MmmtNzTb za_ru(U$ikf6){Lqh^|7EnL<13J|fF)i^@2e_8+$(1lxxj4)BwmRq_iy`&RiDCS%&E z`(8OcblP1qFw^Hq63o2_@%DB7h?DZu=2Wu8WMN^Exx%b!%4eXd>SQH#%tl(#y~>C9 z9{Z|%BP!x2Y)p(&$!;bqQVHk0!sq>7OzjutTg2yQ=OQD-MLsfm@z`{s`HI5gB?{q2 zMh)dRoS#Koj9IO-6tR^mMoksBD^m!*L@K2BfmfucP*|A3J~CTNe2A;WiE!{>Fc}^abMk$asm;rq zRmB!!GUpzxNJQkQMaZRLuOh`P_8acVGoO(;^Szc$D&Rn=6>X&ywM9`@wAgrok%^%< zP~FE3f3PztDx+tVKF@5NkkR`hurG;7!L=^6=W}f`%=&~VBDf=dADSlorzV|bl4koT z0s{`^_xSh)_Srm4`50El5Gmc|cWk7(j*%57QLa?ML_`BVtAK1Cg6Dak1vR{`ha@ox zywb7RWbrvB#w+kae}Us@zLKe8Z=aDV1V1Z66ftUJNB&|735d+8qs$#IbRH{IkyDhj z*XYR5B?Al zj;?v&w|Zua%Imgeq}^MfoIFQh)u2Zkm-zuB6E0MBV>L$9g2&n5x5C~novH@^tIEGO^OX(iW)cv4 ib^P82bZ<-(!1y2h0ZIVAXZqv-0000fo?P)>PkQKx& zjg$!)DU6iv$+Ugzbe+03&5wU>-QOy^K8dC=h8Ul!Q>V@^!UD1W`SlkdItRdB^a#Bt zf^#3>H0*o5_FrF}!UBP?K&+p=rWj8kJEGs;vS|@G;b%|RBij4t{mnx# z94GwTz#c)k)xP&r2MomtKXMA|JNx|l zz#uAMA z!)?EYKCDV1KamgB1Vm>RA%RV&mvkq$*3Wht6!urjz8M%R{E@&t-+L|vyb1(Wm>VdN zTHr(3TEIBrH$QII)ec8|&H^X-A1J|0D}u7MfH4Li3td{{$LQm+RO2t^Yo||xwZPJG z^X%^pD45cP&wup#+4hG>=un4+L@ogE_T@3~GZaW^YJaHS_eWN`BRU3Ne%`5xul=?5 z!`3juIPQ@FnF*f-F9U2X zaO8|!0LzuPkO7$p-wD2O>U@iWl%y8E6MQ-FEsE_cNI@#$JHeL?w$m7ZiG}Y3Zv<88 z1WJ7VClY@1)Ap(pyfM_0p8wjyXElQ!?t_IOh&BEo0qZh)wnd1C^1&__V}ix-`Tw`i z+jY=HEAx@>mmHum*?~jS&(Oa2N;`X(y^;W74bXooom6%EGKsK9zxE&NTIdtf;77<-{({m0t*>YN8GG{4LghFP^8{@@J|y$=|GnXvWG_Sj0CC&$|P zGD6pKff_yV}TKk+qf?jO7Jqh0T~%0*fA)ZN63g9ukli5E=U{Wo?#Td>$S+kbBWr_%HHY?>Bm zev}R&-!mcrM!yceA9uCAx%2zpsuTQ7YO^wF+Yh8e$Pj1H(C2^i@#_yPsvB3I*{Rg+ zdz(%9hL+yAnSK7_9={@d70Ch&z!8(#3qalgo*8idSI4=0uLvJ~Xn;eL=?g#^fTDc$ z9}+jSy2^F6{{$QfP&a{zxpXo#+$#V6e=|OFVeLnqGE{4n`9P{#0_;L4e(^lIICq8c zs*$kpk^Hij<$W9x+HdY|tdIMi3GeUqJO7_iJ^!X!unrbDt5^YDPR5AyBUxtb40Gv@ z#yM5^^{jt>-Ia^24kaOk`nS8IuP@ZT{NwFa`7Cr!$ox8Z$SO9j;F&8KJ46SNl90Up zNwst|pi(<;(lr??wQsXKS7qR4*uW@@fELPy_(q-cH;INkmFN1s?C^ks*}8Ga4T#>iQpw!d(i`So%dXH!R}MYnc)>JksUC}tHujU6^fLGy5%UMoljtm z+E=RnhmFE^k30gBx@fDD5-BN!BPfpxS$pOUCzuBI@>2Da;GHT%w2AunPYkCHr2nBj zsv~ct2TLLVOYlgnLkXxXon+^KZJgn!5=G1O_YVzxR{OT>{BEfetJqM}7g)9O-GrNz zfOk+9gaLo@pC3I+?b8FqrV2Q_Ujj>=5)lf3jk_7J>fNNTpIQ z`zP}4-IaoGK-3Vj&VwA{D(xs5edKYH|N>^H*E8292Cy(UlU(*R5-47JWj<)Y;r zdca`PbE4k%`U^mM=rpfs7>xJ!g*_+@RIkU5xq6|mbY`@OhNRl?K=o8m3e03AG`EwoC-53WC^Jbfj?+R=)+dRl>-3e`c6 zr}Cp2``LU}`;ZAKVh8E@2Ip2z)SL=ZwKOYQlXk)0%Iny1=Ifw+f7Z0Rz4;mW=GoAO zOsmUeD7v5pz1Mp>2B68{|DKWWF<%2?t=RcY($?Z>8BPrgzz$-|(~ANO<~J1{p~|5O zm@qv;6mPA#Q7g}*1}B2m=%VI@3B!(iUtE ztCiV_QwIwn0Y~j0Hdf<4|8hK^S405npeRmqw9QN8ttp=-pd)w_EVGJv#ucjK|nk6eUw%P$?y5hZL4)WGX<-C68K!BaB zTF=fDzViABO4NbUkukgp!+vH*ajZhk_WjMnG%d&-*&qXNTUi!;#;($hTlwn92c_;a zZa5uV_)+C6IQ3r&(vz2=x*wrcpRcTca@W72i8H-B3EIsW(hMMQ=o1Z=$fvnOqRt#C z1`s$j$a}Cv;+|z$Ordg2gAR7@Z8jiBQZ=k|3m_+m-tXSu)apZ&gj5Zg)EKfbTya;x z43UDT-@-Z+Kqjp!od(E=q2RNe6F7}bTCq6|kOg#5q~MuMo76fDkQCaJ#$6K%CetR2 zS&SlGH26AKhTzq|4LQ;LwB0JY1({WF>(>E2)0z04{Y%IZxd2uXVb>i4S5Y&A!ogbE zZCP_~Os_g;cz(-h%I#?zAaSUhZ1i;4wdOspkAa`gLfvU3&Na{%epQ|BLq4-6mNb^ue5uVz1ekZ|t l;m0BBxEb}|TLhuTp0IHuBD+u`hflc4h{|}7^J9!gLD7)KNk_f z-;7!83%_|?4RqNQWF1%zmxZzbyVbW%10S@{@&ny0z!Z|I8`wuwF zB+*c?BJlO+d;6G?=;xyGufEd139gPIz8oxVSQ7J_2oFnfpGDNy1{^!F!dx9~x*NSSZ z*1u3}PNx|I*#P%3))==mz+}SV!bt<@)`&oZ7jmE25TJ(~GM2x~ep9h<73~m?K-WK& zi-Q^5zXy}(yBrZd_A&>qD-{vI{`crFYi~kz&1y1=YQJ|%L7u`_&C((Zl;*Y#@)-tr z3k|_i)W?9ycQBWz49lpvK2DyS7eixH`}4ulK#zJ*W#*`-L$HR?LK2x^)mA4>TEFi} zp59V}(Aka3g1O`WqA%L-vv+A>Rj{Vq-K33(G_{-B-gPpi&vZs!s*rTiejuQHARmBs z^ETY$A-o4L@wIER9AqG*uitx8*Z)?dWjF}HL8)KJZ}@l?EyrB8aikLXDP_H7HO=9F zF@8cGvK9Xh*aI4MKV;t_k*{T2n0L7ng1!4Sb2Z%KEJB(ME`EeI{SfEcnk-E0^D0i! z)>mMlF0p(%VPWH!L!O3>HNIrU#qGsR&D+F0^2Kqs>;!}()Bloa4f%k58aibeXSHIH zLg4Jl#%-DB>Y4j6G__hk{Z zo-KiV7~fBJk^W znW2i7XEUd6O!b~p6d8$+hZG~{&v|NK3$5M{%qi|t{n=U0!NG=^}%93%@%GSD$ z5$iE~sbbXmg2@WkJI(184Ot6=^B<)xfr0*eds`0~|K}O9zKREGQz!UyhZa9A9}Lr< zQ;9HlX1=ZAtZU?&vImqKDlT!K2@(~ORS2?OBECobSPt{Yi`$_{)aymQOJ~7uV$r-_t{}*V{emJFISX$k()%$Yx70WJ}u$!G* zA&=MXyZw$@)Z9~VDL*jDK7UXH`?DiHKgJ)>P&=XMY3?RIUinoNbjq2V-lgA87tXQH!NlYNtT5Ia$OR%rol{&&teVjrKhAg%42z7>$=5Cb;EG_yOvF7HwdN z%t-Ib=&(u~00GlxD*|AIbQaj<{ob12Qp!7IyPg+*XT&Z&`!S^&&c5q_YQJv!ALd@F zbkoLBZf=1HVCK5z?rAZD*DLr0n(Ea+W zYohF=`-Grcep_o6`OPBYYlJ^Rxm7##zz6X)M#3;XVZnS!pe`E|EF6N{p~)ue`(^&8 zrbN|s`~TK;xZNEeAWKW*n&eR*0b8+N2*)2zKXx|cEe%aW&oR!4a3Sf94`e25YNyix z(2|0&v`t4_*r557bsyM>dl?fqH6#hA-rOHD+VEJQ+wvZ zufI3h{vs0IVU(dzCV8IfZF6UcwDtIDs%9=y@~&=BWN;X$s$y$6B& zl~zDegJkjrb3^h$vB+lCX9duRoVG{c%{SSPLOx7~{QJ5^D}}oMM9QU-f6us!sQ^MU``)h*oCYHwf$;zw>XlWKv-yFzi1 zxy)8SQ|Y4b1-_@!(*Pd}2Ux6%B?D#1+hza2(a$gh-^*c!cyljff?LTAl7W||5}sNg zVl6Ks=>xKaX0Lc)F~uF^&31!U*GBly`A^tae#iJ0{fjuWfzV0Bi z)a3`G57leUx_dc?4?$_Qf8xPUsXju;#IvXHYBsaO#Koxfz*K#|0}_!SNjiFKs(iX| z&LR%s6ZPnk!9pG<*-55gZy%IVuVUJ4#iX)(gqh$RGt?Pey&AA0doXS1s?w0L!*spiO~^HOLE<7e&*@4Dzf7?dJDBs zWIcYlof+FlHw$142T%(@+6xFW1nCQBp$Zxw+nu)Q?bv-w#AgIKNsp(l&@X8$W{hY7 zw{$A;==|Zqs#|p}M+*PCMZxb+FOrEM^VGw6NcPjWU$!|$hN{YYovSuo)}&8=6MkXd z=ss0j%}iX#^iGCfR|D~1+j@EwsGiGwqwYT#{~uWQRnUM^C5cta>dEfs8)ZirN47Yv zE49yeS*v$ZbNBYHk4td`1_UJ8r9H+`8+fnI6Rw0@wF`#mO0g$gLqofrHmmcaLMD|B zM2}9^c{9V(Mb?HdOnDp{n)`$bVoa{eDzm~rk40{M4WgZt4tM`vq&eS~R%k8yzs+dn z^5UK_3RGxtLkhLaVMX>BQWmOKQ$z4F5|k4+^%{n%;5HG8g>XeZtM;w3pEjqF9?^V7 zXYcHp5PQ~a70puMSOaa9u}d&+q+xl%u~fB2*R@H0fcc1P91#lNpjRl77<1*_BbwzU zKtK`}LwgnadEgQ1Uw{4elqOM{3#j7?`e3bS3Ml_`1>l(4T|tB|z301WTUJ^PBF%04 za^mJ0uCZ~J;lz4k)cHfxfQkx`POK5ZM|t?ssI<$iI#^MYPQvb5lCw2lCb%)^M??e^Hex zG6MBvoJ|FLP$3weYgk!a9AK1k?O?+NzkU^6VC+L`mR^*0W$oU#XfR7sFx(E4nm+Tg zTlgp5{=t%xQ1-^O^TA4xr=Lca4nydnepA{|0zqbfx5M+yJ5@_1R+q$jGAuvt#eTzc zBaSsGOo*!-pbjOsU9UbGVvGwBn=n(23|<6e5pYJ#XE1cdDV>hLerFx_CVz%4TB4P$ zOl1{D2~Fpd-TDLzgbyc|p6*ruaGG@U9coo-wGh@i^e~y%7_>5Z$(4E`usm>5dPR>? z2amHtlzMel(+hXDd6&Ik)Z8h{Bpw-G&)qcHo7N|cBb%f3FKl}Cbj`BTkuPok6BN-M zlJ#I0D!jR`rj+JoJe>}wmyDfpk++1DsrcoJhUn(RF-8RY&RJU#gcT!>Tc;FR&)3CW z3r^ck85567B%s>QdP<#A`hnZIJ%EKO7C?U?Li7ZY3Y@f5qTtDGSK8$9iwL$lZ5k|D zY8bzy54umg@_fGiu`0)^yo{wI3&Fj0Vc&|W8UqAz+E&TdeFSMUS@=FMJ@`KUHFW0S z_4_lQw2D2+`zQF6n!t{Z%ZZG;tX|Rc@4i@lPkm^KSKa)b9;V;vN4?bC)W_01jWv(^ z|CenYbfJikYAn^|Us`yENmp!mj^}y|;%(J_|8l9tHfPXiY1QAlil1L4efzo|$R0Ia zk0V>;N1w#k`r}PzgPYl@KtIhjxLPo7QbS{5aYud7gTKCprm89CTOr^gZK z8CU#V>DxfRAvsRMEjQ1t`bWtso3xJ}vQdkZMx)TI#`KZJf%}ufie5I(2 z(&2XxdzXYX7iOo4!{!;{en5%Ln)uIp2({;b-Dv!9jM74@-|kg<+T$?J$t5Z`05Iu< z2Wa<{B}Mp{3#%vY`d%kxIczDU_XOVajPropDu8MPEqZt#|Bv|CfdF{blz8qtH5_P} z&w~1RKGF`jhsy@gmnZ`E6Nl;Qr0GDqc&IOUu~YdoFIANAZmKnlnH+6{%yHK2$s)2AQYVkw3`jaCRrx%hzScnBNp zCas@OPdT?a^5&ty@O_*@7@Dnh$Bxo?9B-|yX7fonY>a#a|nK(t`mq+GMkncC94<5V|-*D6Z-*llWA6k`5Jm zTi)AnzJR$iXJ~0Z+Iom&x-bpQT;fk!m7?BuHP^E}Ul>iD$0 z%uN~I1S@yow@eFN(D3~=`1m?NPs1bYq0Xx_<_)<{N(^@=4fq-2UQ*wn3LKL8{C!9h|mCA`%7ON zfL^lKpl+P}w7fMBTG0g-WF~)wr#*9@2%KiHcRu2!XO0Xa9vD|l5B9oHW3c1@wkR&q`nZUQi2KbTl|e$E?5e<`6PO-y%A&;!M-mC7x<;WjVJysnYtr z*hKmh1k`L9|353q>y`M!@3@G}zYSQC5Xhl%ol z&+0=J9(V|plbI4{Ixkz7^*4$#X~b)(J2RAYhM&N3OL)|&7vVfV7vwwCO?lRboG5pi zA;kqV^tJ*ZmM8hdBf)PJHLSJEo`FY}(%!xTaRh97B=+U6ggUYAL_6{`8&Q5%HDTM{ z{`5-|^kKzYm^Xch_4L=N-LRp3+U|R-k@0Hro*-EuYGj{PR<-&mXa-e7-2Q_j$YJEj zM4(V1(nXOm-fW@6k8SU!=od~AcOIkq%w01na-|BpW1>4x2dEtc2YRFT5_&1y{kTiu zcK`X*4qQOcH2Xa5xw2835X-h`U;5h6Ew>+l+brqRbBA(#uq4y`IARdTd*1}FF=Ws(@TFItM{&)QU((Ejm(rJ>n*JSxE=5Z_GHRUbBR$LtPiY zfDME#8THW$;h3{0GoY#OblaL^?LP#`mvR^v3XRp}$zN$gIDklr<2S`g0Ux3F^YJ#! zC^4+11}FR-;xT4KDfP6sWb1NRnd${8RIrC#Yrygc~VK$&kgYNXGf z(4PoV7rY1;EL5BF4->||p)OBtjq?5(Q@`3>r$k%USVa3#!Py>A`c47jQz;*BHJ+<^ zhFGHmjU$NYzDz+WKTJDCcJ9 z2L`iO>tZN=^ZXf^Y&syTq*X)a)~_~e-$1tv=#*CI*51mCZ+;IkR!30k2`inp*Ui05?K6mz8|V|n)%@?kag;~>;u6nbQ2)-dt>>$?mwbHA8*hcx0bca4@qgmV|ic< zM!bSGr3}xO(|h#FFzwI2>}1bP8vY0kVgo5JXf@=@G>7(T*4S*VMX7@(m6_rURBGv5 zC|oTl-nldk<&RAf46s4d+2NVAX{LD{hzDHq`j`Y|17_mMNiL5F+p-tx^k(od4j64T zy~)8B54Nl4@lZcV67gVB-A?IuWUx_i-a*rR(j$NKkZ*(}v7ht)yp!t7Uk*2uT8LtP zQaEeo-C>JU@a0(<)1M>M^Hmjzw>XA+shv)C*d({d|U;o0XT1JgT<+!cht{5ym zWwJk+`{hY4+ULI{9cAsJ+0eIVdMF+>z3Pz01C3%($w>dR+>@ct==j6%Y|Vx3F=v9% zi+H`q(j88`!Fm&u(QEJ5Y`5*iG2X8C?`|JBh^x)VDN4`~j)aMmJ?2VKx6aW2WV8vr zixWk;m0|Ux)2|opV$cjZS!)pNXVr54*K?bN^As`3;XwsE&r6QHAsp16GQ7xJnG#WD zKWv@d?G4u28!K2vURJI%Zl1O5F@Js6?HxnBmVbRfNqq)vv~Eba_EN@B#+Yh+J9iKQ zxmofmaluxf!9C{C;(rg__wG6+|9XOk+kx-oY2VY2Ag*_xEuOq`#jOb8gGBR76OhE} z$eCj+!x#!{8z0sV577#oq~Y5eM3=D}AdnP`{7W>UTA4j^ctxy3S@^}>pl;Qljj%@@uG^|ugo+CCB98=wT!j(=s4qtpU-9=-KO8dVo@5~u!p#@ zgQ8D|{;u(8BW}-skCS>+fMOzguH>P9k1F(vf5U0x9RD$FV>N*Em0vKqm#^wt>aiTK zv-m9g45LfrmUV~0{^-Cu8vj8v<2v>n@(DAvY32fZsuqKC(a)}n^p)7`ez5O3`Ts?v z+a${VzXaqiS}uSn1Vo#X5?jLp|JhU7OH5)?vn4kM+YSAe986Gj6;C5#AhzK&sgv?F z5KzE>`4i2fDp$kz1Ap=Ay+!97t=ZNM>$9a5-t3Tea+>9|1j5-!ymr6DI?w!lIxP0r0f!A=FJV@&Obh6%;3 z705CwrAb7&WeE=knl(7Y0X%rk8fSp6Kj=R__5a!Y(_1`~s&K~H{fmS-y~0<)9E5cJ zH3Yah(>WHGo%*LD_Gsny?h=jNySz&sUSRd@MQ3aCyp4`N*1*rhZqMMqPPZ~n;B#OA zQUpJ}{r$^v^}xaVBhmWbQ%462-VlCg9tluS2$yvRp$}pe6{gYykMdz3=7%Upmeg?< zoleXbCAyJ}X~O3Dj_8ww73e~ranR##8m}q zYnJeF-JQ90qP20AMpb25i$>n%^_xNv+F^uxLkov%`sX?e!1&_o2EEJ+oU zKxb$*v{7REt4FIETgLdesqrwBmWQy~l|l{Khw9<=^u6zjF`d)9BoP5b7vBlwKgR|R zX?)^+7-HBZYP>UTTtkS%dqJ-E$Ya1I9%*`S}GIO>0}(=~V0QKujLVn5M*j0rzuv zyvmQ{)B8NtAhF4-AHXS8^MQ7fn@98R*H7Q?yvx)-Wrap80=-Qi_gUEnkDuATI&;-Q z%Z@cLdZ>VS*$s{wEhlUZ0alCMFOroQ6*U4c>%FpsbZeBk#=-GFg3UEls3NKwb$!Zp zn@tw`cs}>=4fcG2@+zzZE1JEUY90puf^E5$yHGb98VpK0>JD&>lEjo6keZJE;ZvwM z(#sBFdhWPUnW|39rWTZt?!QedI%`86Bj<&g16k$AJ*C%ciJlNlJbAl$8PDgmL zqcHTC%X^A2>7V)H9b1??&cxQH<;KI=kH14{uI!M~hqhksb~+rpcopg%1-qg=9ZYx1 zGiXhYc0VKPz^$4oj#~`J1?I~ywB|8}Bk}OytOHwx=)J`d^7r|Wtlfwb61I>y@;Wnm zwLA%WRC=))+Z0xo0;D*CGUYta0`+cvlH6YoS2pOiI`1kz{rx+$l(Et>yYt_q>qltpLzNxK%!@`%wsR7a4s|8j?=eibgq* zL%tDf89O~%0$#Hvd|FJVSpQ1Pw3XKP%GULX_HPl(SFltItA_DSt7wmi*sMXt1XISG zLxpOh7bGR67x8Fs62)iobMc`2#34Q0SXjXOcw+8PlfDWL7F6_??@d$S4^6AeA`Jo0 zDcj=`0a=#KTk2#bg>ETUg2dc~qjC?wHhJc1^sD3^@Ptp-cA2Hce_Bl&G9voK;MrBn zm7|HdE>yJg${AqCMb6M^Y0f@{WA%Zmn3-t#2zE>ZMxyO04RKDG7n%K<@=*E}{LcFzNbz zGBCaGbN*^sw4r%|oi!Y#l(9h3)4ErM15Nyxd+TpVl>Zkqplz6+zDvWYEnxyP~+WFMc zF-BLKE!wL9u@_f3&BCi%Jej7l*svZG=O!@q4x`*IVFb+>LuPcS$0&R98xqZJ{A@I^ zq2Fq4u!}!5G~c~>qUm*dDl;tk1f?n%?%wT$(oon^TfM57Vtb}3;W)OPL_5a){W^fp zllNeRxsYd9hiPqAx1~4E>jOu;mjlPFsASz9&BgLUtecwd;h1#Sg>;+Y6LUI;m{{5M z^yzlg)n(dfFXf+$tUt70Dy1>B?R|RYU6+iHhq7NwhkJEOe640|Yp0$rxlp_J=hYXN zHM^5m+dr3n$sM*(?{nt+rL9&>E0lb`e}b5 zy@F5_=q~14P@FgMoo~v!Yja75M6NL0edZFea$!RI)G{S9kCp|vNb%OtXiB5f_@x^n zPq6Q*tyub}KrTx_3S|F9zn2>E+KF_53?Y1ru25+At72L#gXOmQ9rPQQiQSKC;Nd-p z5Un?f2@R<|uhyGkrxZhl%a7D=-!H0Jx?BR-VOZ5&V4b%#Z^9@#5) zkmwDC9;v@Qi$36u69Q|nb!eBrH*2ggN(L*1m9mC-lI2+I zdFZX@;4{y!{P5WjUjTEz(BI;3s8(#`jZcG-xqBl$pEks5zT!k+g z$9d0QkT)(-a!(TMSTyj*csDKqURmqF>Rt9YmPeN7=H$U#byo-4zTH>O#i&<}U;c30 z8@BvJfg2Vp1>()GRWNr7H+K{HvU*U?ziRJSr+5?ZJUuw~SAM3d3VHeF%RA2T?Z>Nx zuua)RR^C#P4cA+Q=etlmi1zMGY$Iu4AJx2*e_QseM>1Kd+SK8D;y)8!?PFC?1#ecc zL)X{|_b);CsUK-aHs>9L`sp+hT5wI%*#&*VCe-d8agos;!*b+Z*)6 zKk*O{^Y{qV(h@6Q&PhKgquOdJ;0MDIU*s6_ge8BJ;;E=Qi_K4qNgFF9=+m3xmhF9S z)hbB}oP2m-6O|e!34=`L8`KWcyOa3oxg~ZWKKF@P$9xfajU?P8p;wx&R8FO}N;o^Y zSSd|@_MmKi{HFy^<+y4dgVo2p$!{tJ@AP4L#yo@xTt(z7zr>TI<;7V^%WRS6>r!4B zFN9Z%JzlNMV>X*-%OC+?P6D!@YBx-ap=P6o(lh--jjC>F)7< zJ2+aI_Hjy{yIElrF~FEXGq4xeeq7Q9#^o5dzxA#@j)?iIatU=xfsy$~T>FdSH57@{ zb+1&Qh2mZPLa7ur*bFzF72EjIHL`mHYP`ZouJwIsI#g)2c&+$~?Qwi{WnHT3Cp>T!?J9Ukp0^z3Fk~o_Oy*=^Z zfKkuQg9Bs-Z;(66rOA!#%U#l0EPZUl{OO{ zRiZ4FnR-QjYIh+YwIxV&@^Bra&b}!`@Tjm_F`Y(bZBF?@rW7(`o`&(wgACqC(#=R0 zd?N@8CJxe{a)@0lOfuBHqg00(ZSy3m5tFmO1EU2Gz37A0m9$@tr+%kknF!L@S?(d(Q zhS17JDn*_ZC{Yntr+B`>=j9QPo~@p_@0ZFRRgCOFRO*!)Y2~OcJZBfRC9G+#W5-E! zDicS_qFzk;7$7!SN!?kvq;8}~zl35zf<)qmt*D~X9HxoTr;6#V?eEt)2Q9AR*y~=( z1|>LSQZ7v1KG^n}-dKFeuv}DLQM@bnaJMHl%n%)Z^uzayP(b#wxdL_c5m);V_AkS5 zsSrv|-XjXH%R+Tj)BTnhKd??C{G^f{n+5EFr$)aE%_s0AMqFr_qz04cxqN^A#qXZ`Bj{lweUwr2lGSmpvx#2?~-UnS5^7`W)r>)CZ!AlLR?QSJse+ z#LljOOFEfMiWH5w^;!yjo=ymFaZMuG1B1V{)r9pbl0?S_?xVu+AGDrtaGRcIOobXQ z+D?yXETQd~G~=QV^0aAnKQD29WF6Q_k^k1O8SEKNLTdFI@M@4xPlI_T?FILFese4SCB;^Jqj&%DqY=$?quXI7F>p?wPaZ;=-!cE zV)}l?EvTK0{5WEsA6q8;jq}S0G2k=fUhFjwQZW>N{%AQ&rCRe5^f3QABERmOGt8I% zhHSjl(1(xNoVjHQJJtKTs>#S28}lUA{hz}0nrQF=nU-7ie7@HV*cvW!SPAFh_UDr$ zsd0Q~0okwntxz~{ttuJE4tHoxHjsnBH@$ei*;*=oe%0{&CoDjl1j#6>5om|gDa~CA zbx_|e4l!}b##7-U-}rQ=FE1Tita~!j>h_Xn2+w^{P4ohvDt}AGdesc}Myb_oap-je z#rsqVcN&yMVH+xu&+1FGgY%PnY_`sBG_Cq?9mK=^p8pbHq)AT{YgFn<8Iinz?ZG~y;{pNM;39OYuZ%J#mr&T>QL3TBg?i} zaCH@`^R(Y-(04LAogH%7*f7CSaqV|&fRX)Ad(e)&Rn(9{E`D77$RQuk+<;YpnTR92 zD`5XN{G8F&kT1SR>ig{`rMuyaw4;!`}%V#tcTz(4>yJ~Rcw3gbEF<3!@QPD|UB znZtnMJkzVI7|6Wk{P^MISM@BgZG|dHw|!w$PpI-$BF%P93*1m3dAITpSB-k|5(#cOG0DEpE^rlVb5VySj+qAG=Q-|L{jA6FusO zxGhdrr>gVvROBD&74!>2qC3ZSzX<=mKNYAq5ehu-k-iFPy6Kh|OhN`9pXd2#TBKJH z!l$N-Mqs-a%9iu*)z^i2TEV^gX5D2MF00T#pPX=R>?g1lQ~yW?|Fn3}8D{1@C)(bd zV;ZQK)MD7&h2?+?3kJl$yKLMZ8_cGL_&4nj2!$uh@&G1#kDlChN%3*6PzNg+y$!<` zqEU1_Y$&)$6_%IGD{TS3uN&tHzKG5LRz60$Vn~h)NUWgkp9-&SsC9{G)Gqo3?QWEW z`9{)%riP)s(~oQ+*NSf1-JV*C5lrp zLhppBw#DH3z*<%;Kgdyp{IkE8gyp3DG-}00l^HT#b~6=(R|sxPE9wycopXEfftU;@ z9IaKv^myL>;!e|S@phS2R-nDXcmmA~ySWh!|NOv$p?G0rd70k!DxbfovfhDBlGItt zxYd?@)+k92TXHj?=O>GVGa7MBp7ppsak=}K;CsuD z;|7^W7skww9ENGLOwiki2g}4Z^y_>T&7>s3RrQr*+>_+j5nW zuC~Lhnkc9Yrc6`IEc|i;W&&Giee+iO(9yVcdUwS`?S|O+4dzX$XB4dxj-qf*e*T{XE~-v8O@}xoUq=kPQ?8`Y4Y0;G1Ta(;-PdUuy)T zRr4V8uZ>`bd95md75OP&e`aH6rYFI4BYoy=-zCBYqUjXH{1K9eo6S-gBln33h3Rs$ z_zew+CK=rYCpe^IjM{=;F0W_lqYP6Dg;P)_ua8(Um=3HAUDf5C_MSB5N#h><$EO+l zy55!#U2;R>*juVcX2%10L5}lmMQ&1Fu?EHr!3!zPfSW!&EFj!zemgH~0Xx)g0KcQ* zE))NQ{f`mj=>q-Rn8KGlCQljHV5H|SZ&l%yyT1=AVVrV1V$M(Wpj+ab%1fq_d+U_QFegDVD*M z`8QWxejGB|&22Iu2)C6>YH&vu(R%4SWwuY&iW8bvad9lF)e>+}95z9NN2Qv`YVo;A zyN?*$VukjJD7fthb-YJGch|cweV(!z5Z4z+&dKqQ{^0baAz%P=i!2b81194f1Ct*` zW%`PK)>3$@)w6W&3xUOB-tXM2v&((@+(fjDZ<~4T21)M+slNFA))?Q1k|VAS|4Bn0 zwRV)&V;w`gh7&_1hwom}aNmHj)bLp4~9Zpq6+$S(t_c_^VbYsTY!z2djq?2vc_Mq5 z9p56rh28usF|K(no*l(v$aot~(wo3WiuKK#NXhZxkPwF$JXl;2)hq|(9b=b75*Pi| z?+i=EN;#6i^6ye~^V$%tH9Iz2c&I_biaM-5fPyNXAM8J3+|w)tckJY0GLwlvKiU*3 zld5w|o01*w@m6(KwJ!o)vvpvarrEfhogv>EcGX86MG1taKlo37UI-#xl3(Q$nwRR& z8(Gjk8&Q$!^Xk$=@&x|qplmC;3Zsq(H|`)$Fl%jLzc3&uIxJvNUpAK~GUzP{L~O)) zD0xAYOyI{&dhJBgRN;UGdGC+UwFrp_-{2QEe+=_$=Y^6c0LMp9nl?uV44>I9N8C{A!Egu*(iAJ@F*SUa(%=}UhQnX2Kdp$USCZjQK z*187T`X#LtuT<|bL;ezZyztzdru}>pNCtTgt;=N6v$?=qE%^8FB9^oyhWNqaRiy&G zH-OJ<^NymFL-}DP4iQ>Ozm6`PZzH{fo5T}fgObq_HH0sx+qOI78wJ;FmKM_0FU8Aq zGEvob+xNwV>cbSeqJjkGE0~{=-A11Ox>1aPv0vUz$o@g279_-0(e|+R8#yz^EuWPk z#O5nv+Xrc3G1iIh)i(`*e(SXBss#UsQ!nlFj(+>H&N+|3=g=_gs@iR@1K*RabF2XN zBGBeP=_)XucRLfsu9L<7kyB-MNVpu)Mgw>;yXgyK#T%crHIn6s*}BAfM_qDfz#x5W zwu>6WY}4KViWechB8P=-0WI|}$X2A{+3K{3H{ot>$w`HU8KZy%Lc^54V~cBGpx_lqOWnE|sSW)7m(Ui?yUggo7toNg=7 z8=MHl>K{555#1P!{Ut7%pEh4^STu`|n&>I-h`_$@qf6VdWr4QzG3_`#GOiD4DfljK-6T$Sy;9LKqG*KX z(l<^JxdAMgF?J*FYLGemnwE(%)7%_D%ZuM~bu?`nCG=i=1p7I34%=5u`7G<`Fb9Gfy8 z3bY-OX7LVf;4n+CTrJR_(aVRS>r=uO6bHFrYD?0|Adl8xgs-F@N9A`?{SjwmUK2d+ z-OE4K&X*RE%^~J!B1%LMw&(NX5lU>GAC_`RL$U=EAz72T-U(jhXS*kU6!Z%mcd8py z*(}@DZh@eKH@ymrF1aZbiknZ+i2Jx-0tf!#8R9qWZks_HU<|2z&YH=m&0Qw{r76Zt zE`%Y^mP+_$qC~pq94+Lz)}VOjG~XeiELChBwG=Nkc-*Mnt+6ihA0`7q0wMJ8vd^R^ z!@XFl_hRzDHx(RMti(@W|t?$_cVQKKQ`EnKY3^i3d3N#z_t-0> zGz_-9V1Pf7F^0WN#(S{ZdT*o*+^c0eUyd60xN?mWzISgLPxw&LNTyvsn0hDy6sI8p zpEqZhsby(Ra+_xxEdrH|!f975*WAS%%ZA*nzR8oT^MR!^M(BO$O-`;NtUtFi3tHA( zls`{HHIcPaEk{xU40~wO-~pa1rr8*m8k>IPCJZIZ-l- z_@FS`*w2yGoIO6(H}l;~T4|w_Q8-b)#3zM#k|7?Cg80H(X;_#td(#CDh^koeG#`|X zbB0n(HVQ6|_2pW))U)q1pGjuSnceXHHK{>1W}yInAE(5LvA)}}?erTFdHru;gmec( zsS>iJatpnl2a?!y)at=}TYmG7_F^#^aQg)1cg^L4-7XKuBL4O}nQz;Xy;26Z63?qF zlQR%sSH956XIMCFteJP(j$p}}LFU7KtBwC=Ydzb@*p4Ls-Jta0rqE>Xw=0BwKWTMG zb|T(>k$Iv)Xif~<4z#@L^k*L2>7QK#&xCSaZ>v(NS2$cbux$|j!PsU;Q!T1_MtscT z6XHb&k4?XI#JQDI+dP{M#HC?)HUC>(=IG0%gW5M2IUqCz&X#zDn)6vPEq(4%?NZ8Y zQW*D&J1cjM!)Txzhu&{qqIC_J%gjep$GEYT)C~ioGx;#&RaouVrc$XT2Z#)z%`r@J z_FH3o$H=k;f8sqw3(_#SGP5Ss$nsYMXlvlv?5_n;N$(T5?5| z#yF$$Z_E~?e7KhNv6`E$XC7R-xwWyP=ZsF=LtpbNz~`KSQBFy4$A7KK2j3Gms8?~` z3el|fORJsVRtZQ-JDbCM2j6zGagNvsJCkyX_9!G}vnF|3e|&OFd0m_MN8|ce=7C1b zl=)s4>*cSd0VfC`E%Y}7>xd;$Cikq&(6Be>>`PXYhB)!(Psoi+tw^~K}1>P z)h!L+GwbQdWWHU(U|lM8v8~VgPrX2db-NOzapi-A#4Q?X$xPuW&W~*-U+twuryV#h zq%LZHeXbxs^`ST#^Hn(W5nEu~U#Xo87u)&J*4O*N(8&8}?D9^@>ny?>yY>a@Al*2- zlxuTS$izlPu}kyXvlFn{Hlh%y9MQh^8XE$mJbzxa8rE*7Edt#rDxF2_EI7ghe6lfX z7FgM#X9B)wtnVy%jx0~dPO=Ew>PO}omx&wyDU0JLN+TY`0NU3G=dc*ALHhXQQ^jU zt96dE|E44=0(Y%BM}JZviVix@RW31R9$l|jevzPJno~?9?qx?jgKhgg2LkAx;K>Lv&&}#h%oO_1 zo69>_L;M4lryi=rWXh}l8`gAmmEnJKu^^JwtBm$;0cOoi#qutWmZQmwx_-$_(9k4k zf&RqSsr~(w(jalr>^ufLcxqp6p8y1Px=9vX$(Yao`-=+-P)hk`4p!D*0m(0Ok;xSj zqP8=V`^9o-i$Ayg1WttmipoVNHco~5Q)oU=ev1&IG}X17FM#8wxOtx-umjmCExz$O8yE0KkE(*hDX=1tT>RfSM^@Hh$OqRp|&DC zb305u{MUAn`sW35yumALT$iUyN5+YHN{*k4K+KBj!V&E zpkF9tpEnjErFd)$w@18#3}?EVaoSc*1|KY{-{Gl+Ju3&w)kP!Nl*30wYPDOy$3A8F z=Rs7ZJLVQl-$07KcN`s!{z*#Z`aOeewd%9n zPDyg<(ZOXDGS{Wn%@cl&$i`GURW{-trwZ^*(+l`CltGb!_?SkYdhM4zxe5AZ8|I49 zm>QNwT=URbCcWoqtN`KdXP1<@M-9PLjiUC)Afz&*7l&g`ey^4}y=5;M2X=RTy6%NM zJ>sjl=ilSQ_DAl=#qJH*TeD?O(@%|(;E?Q7sPfHPhu?(n2SZ`Zs0Fr|U~JoF($WwH z8xf_t)@WTL;+l8q*R>jS@BLYBwQwL~*7NR9K#NkE6${I*!=T>`$CzO-xalMNI2}90 z=Tz_pn-G`)%s0v-#JFB*v3I)cU0AW!)xMTH#?1Q)I&%EeJ$fr*;u>5#i);>+ta~^6 zb$Ed!G^c~9PlRylq(Snd2k+Qkf40)cy(>PSgtOat5p4Id#S?ec{?1kr0;;zk)STz) z@e*GIf4^X~%SkjKs^q>^j>i?W8WF2Ns{XDI^WYf!R#s2TPwi3c%_Ca|q*j4a1O>4> zd{X5qAHDLWNzEP}dvrpH=VcGyMVgJRD8pAZy8c*C3dhM3jRn`h<&}f7eK8ISprz0KbFBcOMmT-ehOJ4b|> z_GF8{y}FNH`s)oBf#qgql!oRI3yf9wxAqYIDU^3Hlw^3fY}gVey*+RLADZG$`2fR58Vc=MaL3YA<+xw+Z*qb*7nbR#+$&msEpzp85a3?Mn9h2 z8+Ee9aVaeU%7Zp_azY)voG)9Jna{Kvd@CB-<8)Dpr$@T{f3^yZ1={^=itw(Yf7n|2 zmWT{kHE886FQki2#*`d`mh+Y@l&6-q4Lv*X?gD=vWuZQmUw_LY$Y*eOTefD)2xg4i ze*MeKeE}IM$ z4zo|zwu>f+?YWLjiI32ksBq_8j{sq^i2R*8^Y;(&-p1BrSUwpGUM<(uBiI)+)!~3e zMwLFy^>s}F?VDJAiEN^*%PK=J0+c0N6#d33viz^Y7UVVdDP@2}p#2SulEO^~aMz3h zVa2lDq*KQj(ES%nU4nDHl}1})k8lXJYH2gGnTxpo9{{32UBAdUNpfDo?ays8Zke9% z+;OM+t(}Uq8UWDc)4v|aBHT31nYPOI zx9$HijGd3YO{wnxQEnnBNy)2ZPvg^Zv25gUI2?}O4z|pk=FUNDp+`qnedo@KXx^7| z&Ida%P0(j^^=+d2^M5og_%aD5VIGmU1QIQPM0F%cJMJt&B2DC(4524lVWf~}2sEl( zM!YU?4gprLW^OHfG|jm@7{V?J!BGi#2T4|68wC8dA*drsp28l6Fm9Q^ZfWoIZxG3| z_3;$(pfhFWeI^Js`io!lXClQ!4oO%i-DGP}1%dAQ0ZD75^_y!+0HsNEBZ=3FC^C@; z(kKY#-XPeJ)+sHtB*~u{B-|q9pBZ6{bTyIY@?0DFEXvBnS>Ic)87nkJ%Z zk?+l)A$)KelcqvxJWN3?EVK~TFQ_@-S}>I5)0&tmy{I%XT7YbXyl=ZhQp<$qlhXYA zOlZ!fFsC(7?HWzamDVdwMB5Oq4=YpjkI>ek`-b*!`zJM$;D>AA65L<%RE)v9~H?aO}Mc=SL8XWYtnsBFa~@fk7y9X<;V6B?l!%bcjZRy%59wB7rf#@C>|)!JDsQzzWlinQ(rA=V3*eM6FLe*?r>YMEzp{S8@W z>RKy)E`JzqWp1v1q8$5kX-?kK`=+He4Lr~`5${C(`ZF!(_ zPJH*WZr;GNOmuD#a(O*8R}IEsuHd zU|7x|(Z@6d>5j5}=iMPDYao&Yern70kxum^yV)XY>KCw$$G&2>Alj-gODc`HTM&BH zpC*ei?{xofk@EC6?*Fw_9s28YJ1xDliyjO})4k~QB~WHcNw?SHIVctH}&og`T*x zHR7C?(1e6pP{J}z0-6e=NVh3ek|gC3$hH)2E#VRT*?na?evrbk2p8pQ>eD{jpdHr& zz23qJSAb@J6!5!{k7Yw*u}9Nfi=3aQd0z0DAlyj21?i!+>9`b4{WDWL{S6t~>MasIX|$1$TN>_#o6cK@ zWztPRzSaF}0?u{EeqX~g)ZsWRlIE|Wz6F`4bK(C6-dpjE4rkN5HU>GyJBEZ>l5OKV zfbUtv72lF1ih5OMqoRI1U>HNfirG{4|03Jsa?W$?{Fs8oWSUydc_%IU|5cdN z@z#R^U<2Q@Z;4AGk$$8**r-@`*b(%DHgf(re6HCHm-R`i-?66mz zqRwl$#hn#*gkN>G$q+6K|ELIc-}UKtWye^ zT{u0Q$;FDacImLtNP&Rbh1y;&Lvyu1H#O@luqUz?YeMauNwB9d=jIkrGpRU}nr$T9 zB7LphI|l-BF31y-s7{jh=R*73wcz`6VXFLw)>_sT>3gF|UrV1!qtKuOQJx6mHJX)U z**=>F2av={^562-X`Lk5=L^mC22sX1*M{HZ{+V)@+IFGIzLxjY2OLNeb8+wcbGu&E z^ZNGcMV}6!2T25R-plt233zt<`dSXS@DWLRc@}#)(DbI)+j)QYIh_0k#y}PR-t46o z8}m+zRO|0q4`N|jTi^fc_xi9AW`Aym*JK{sG_e~45O~WJ-E8MqZF9ShaU)#9{^&Ws zFdw7pi^O@51GT#RI&NC@kI(7<WRDX&?^auMF)vy<#Xq$N&I?*TF0a1isWRJje_h*lUa@=NvlC- zjgkAPgc)2!CyMKx(maPWYcO_m8KNab8G=*y3x=N|IH@1bnbdO|QOFb~=cv7Aa(y_H zq&yB1FEn55Cei_o7b)_6OoxT|K2LNn&11#2&hH?F>^C&W6=a>{Ud)1M^KTEtL%1Q~ z143hw8wfkJl7rlJ@=fPrjyRGyVVVqD(ytA&_KiW1`S`UW=HD3S$smmwCy_fe6H(0NO8S*2G^r5-;kV7FX|ad`u==5 zz%n$|^E)WWH@xHeJs;%u+C@-?6*)%&^w}T|`$2qUesdYn>>Evrk(4Dx?7m){BWYU_ZG$Z5c;C_sK|0Iz^>%zT z!|s~!>(6>xI-l&`3HT;aR=@qZeZJ+!X=*=3@N=26CVKMQuLlfRdu=_NZ@@hM8&cZv z_Pk1-Tu0XI2C2Otr2GxMvzmBM;Vl0>9QTX&R=nHuAQuvRB;`1e)(54K zfE(XG5_)W}v>CaWMzcRpr-}A%v`eJhuie}p66S$zC#2JUlL@-`Sp&4eAnEOVYUhJ} zZW8+43CpUTF`%pZEKSI*e)k`?{|}b(VVx$IEsDVikitl(!!no*=WsY2j^6}Er?Fb) z{KS@Dq&pzXtSl*Q`8wT^_dFsl-B%rZ+UWeOPBR()ahH}IKFvbKifp4>R0MsKv?At{ptk-A0TJCI3ZL!#a5ibnyLQLWWWVl$?k;UH{&xd&lnh9dKIx{omVUdqu?G@V9Y{uiyKg z*M8*JNj6D~kB|NS^Yv@^{-@Q|v3)YyBhz9B;~Yl2*RSJF%n5%zwU=9jd+`%iQy=fCFuf5=31f@IV3ezf)9LMn6O?fA`OM-In72zU-Q znn;}r%U2jjn>K~q%tLS<{mlqrB$dzWH5I3Ro}(WfazZ%wyC)fH-dO<1;CjvzDZr^nw-{!8Wl>9z&T zZnv=}aC?k@_3iPO&u_!gkLa$2yUl;G{TMm_o8#{gntPC8rtsssr2G3c+)0HMo%(vB z+2L4*lGcGrIr4cvrQ?0v9a^1mTF3mp+>eSqa2j_s%7SUk@8HJ$!a6`QNv^_QkthgmQgNAIjy!G29pT z$25*%AAUH-`LgE!a6S5v2S|&L*AK^V|9K4aLy%tgrSQk}hy7tbe`sa<;yPd@9Q~;K z(RIGJJI?RZ{kY5W{_T4eg#Iz)yz=|V zeqS8ZxXyKZpYz_0blN++hct`Fm!rP+E$#eW=5OQS82|dvzA?yS57EnaP4(Mm$9v3! zTD-*3X#%AVAs^N0ea=#z%*P*m|z3C}=V#9+-E@=y=&;2 zY1s{-{PFAP|GRtx{XY`ykuS?iHBa`d@o^>d+c4iFUk{mVl#S!d0Rua{!{Kl^{vwzS zEB7Dz_>6Qc_mzfQ`(fvzM|AOgTqk>ko7N-4qpWGlXB?kvrnWgEy-Vh3d)(P3VV<8>uC(lvhMiu_VU2R|{dIG5 zxL;wq4)v`q3$UIzE^5`khI-?9{aW*#ly+ODf8PD2Rvg}OteZWUuM5ioc)#0wjMFJN z41b?JA6Tpq%YYj6{_XB(D-`QHe$MwlSicKGhE+B4lY%B{(i_WLmW z`*78KvcyJr!$H1HGjo|LFdIkyd<8|G)eV zx#yI>%ohpyD&AUlo3~>{8BV(S%IOY=!}0M*FdCbN*%co7+#=S?kx`Y_mhw|J+PLSp z>P!f)E#gdJ?ubrxvf8BVROf6G9kVpJ)#kC~9c3e2WmT4wkHk#A=R_A>^ z>it_F{oh=V`(d~Kyso8bJJu7vE9j17{~PtZF+DwygWJ4m;x5Rw8laK>@*Lke@xChm zL~>C%{MLBS^f&0YmxEdTTi(lowNu|ewik0-b-pI!2bd?0gnSQe+5FeDbih(F;P|Y@bYbon9K@?Qo-GdtN!8*O`%6 zKtyT5X&&L#ak-?=?=aJ%liTWyw+8~${q9b5!iwa!^Fq9vFcMb+km(lEa%I`od~SM% zAf?jWERSBj_h1Q;r+-B#jfQ}!wMJc7T?@UFkgSAmi+Bs6d@lv_i44U)-9B{_!y9FqBL{`N?=&*gWZNcQxd(LDGiH2ClxS;X7={#U;= zwJ-Amj)Giov}x11UbCWUpz(NSdw1;hH~RX&egBX0)ARF}T5u`TtmcZRrQCsKU|EPr66+O_#xhubcKQy- z-yc2)-0^oosFQ`J#1%Pr03cQRgsUwfV<9NBFAG5wG)p^W5qmuTyd7ImBgt^mUyxoqs%E zx=d%zbBnJ?AkRmpR@Ustd6Ya`c%D<-q0%@8p06LJyO`&UNkEuf)*R;T!|s@O3v;}e zt9<@ggI=llk4MM1x&OYZY2`z{7TI4>NsmfhwX~Y&Rrjl9yn1YPp>DV4GwSN?B{p!O zWcIc^qkJQ&q}%6=w=n&lIPdG)Xw@>cvgP`JB$4jt?MRPpp8R7i@AdJV--9xD{joh` zDEQ~3=9lN|hdO7R=hU+wKl2|S;a$Xcdq3WTGR1zHw_NAHi#hQ3L3|n|e3|n-)-uRz z7?kfMyOr=p`@1Llq2=`j)pxwi9lsCb+ud^+>Rj;hyKm9&A*p?BclKQNeJ$60%eNd4 zoIsmb-sfu5ShIp?ZX?M!KmNYQddhAwjPtUN2DG`qKen^SHh6#kp?lY?M;f`E&Ta7_ z@-t}biNw)A^?r8*m` zvK}D+(9&0H>=3nlf|z?g4*;aay*L~W$0vrB_8TsQTUxMCCdquxEwvp7-K}<56H=K+ z9^r09TWgJ3^Sc;vCNclX8jY57n&cqC_Gt9*kGt7CEgBkTj2Cy?>0;hd&S}HZ{nfdt z35fP_Y+GY#8y2R9QMoluHqSGkw!1;MxRY8IFg1U@((bIZMB4OHnR=#$sksQF&B;-N zeK=d1n_~C`+A}m;720Wn`PTb+C1|1LCPVWLn!RbI>FZf5ZEFH;Z6wYU{${1Y2JNUY zQNBK{apv>?pnpoJiDfPO6z}-^kIR1&8fet`e!I9Xag>R9&a-QEl^MAx*OfNu9@^+y z?r}`$Z={>cA&y2o46n84B5z1z3PVPjjWkiS{_T~#_he}Nr{_m#BLA6fi9j!eX1vGK z(-ZI-%;gjKS=w^6Y?!7?&^#5vvKZ;pI!Kzpi|_ARhD9rsWV8WW-@nk1bGx-48tT!m z7;90eHgEW!FWa=GDf&YDZNTk%)-Vjn>iWEBVL^re=3knJsvxog24 z4u@lfB+2)1u9|IOPR^$3K)hQLqA^ZdC7p0@%;wgQ+7Hqr3X=4ryXh?2~NV57NErS8C)xYhoqqO8q6MX3mlA# zCXGUvgFO1axk%Ex&?tq~*N4?&Y6}6j`J-7mE_j6I-(AQ?63wJp3Fk=Gg-NRp2d1r@ zjwai})ErD~r!B2$@iXRSqbaW@J(IceY96&=_Kbd-6pwkxgGA~%%HJA<(Ij}!_;tdK zME6Sib)pQURugk3z6r>EB3WJ}?&(ThV;Gu=wTOT9LdE;1k)DwbmhBX=N7Ak5nCk(K z{(RKA6;`|pFsNcZuXOcdn#zE`Z*qXVYL^QiFPeRPWDwTQ{{+2WucvEfRN_$$Hu%-Lyf(MfjaqGJbf1zH(OiDf|E~Jzbb`P_|34o$)0T3J z+>85p(3;Af|U(cPL2+8&Ahl{5n z8A@8?ZD_9bVrVNu%;fM}B&}C7(c*otkx(IV)+F*Im-v_tE;&e)rj)P!o&4o_T7vH~L zG!e-+58U-MS{v2dCqCcLn)b2l!Dtha=+9(*CfcL@+$F6k=lHL2|8QvcMZ1mdJt=KD zYOW8mofpJA>H%Einl=WJqfBSs6-4!u5eCUc|GCjmKZg`=%?1Cc{vXb5C4qEH28p+1 zr8@XvX|(0JmV3suKum9zucStt$gR#D4u|6;gvogt+HOt8hbDSTV8mIFWu2Fb9yUq0 zX=09XQkXlJBsv(KHkJp|n@7o$MUaiKAUKGX$o2iiojuZx>Ci}9Z>=K8HYt-m&;n>P zJ+U~B5^z{>icz|43Pb3AFbKUi69m#NwB97ODzB}Tf-RHs4FZmFW=%LOmb5)_! zNM8R(yJk&x&-c>Ehh#dO{^W+&Ixj`6b^3Zh;S`zIRtkv}p*9Hd@|}6+Pnx3hyZi#o z(52>kl<70!kJB?y(=ANb`Fp}}*Yf}wexE#`#os$F%!boQ@cW+^W0dWbZg0AIIudKO z1)>;8+>bP;RnbW==r+o*BI;~Kgo|H}=}Bi}n$a|9I}`eOz;OywbzzLykDm@&FR+jy;Cz$pZs#8uH!BmVePI>nsnzdn`Iq z>Ig?3R)-gNbDE2eZ`y)u>ijo;E22Kd*Xi1GzR?6-4h9(efJb|tU)Oxo&e%(Kx14u9 z%^y6-{kgl_0pjh?l^LTF;0_D&y_cq%dTu2Oyj@Vf9wy;Pyio(i+NU>)G&6bcOkpk4b07x!o6gGfm;^>2}|Tn}>d%{7vj7xVmJgM1-@)$^^9 z^lD8(9{9nvm0rIo_ot%$ht~zyI&W z|1r5GHE&#(t&@IIgC6w4)W+-i=#x7(|k0+w}^PUl6#Tk^aE|V@U3{y zKATP4Ay1Ld)p(yfsV6XHzqaR;_f`I{UQE^}`kT#dNKIpW@4{pqzJJt)>p?d$D7TkH zoR43({JsW_xflRcgNl8iaxdGr(Uwcn&3>;BHX+x$QM@(?d6^<~(5C4~#N{BYIhd>5 z=fT_2Pw{RaqYv55Ymt!Lc5^v^-1^vPhSUAOj58D8zg7SL7yQzOW?L#I)>`%yEHim6 zqop*@3rBY?JCVcTaD2*`M<>&A5jAUpwY1ot4AbL9*SO&x=_X~WH1e@Kw$%b@D{Xf& zI+^Wsb^6j={dpZ;A3Y}|n`Cr!r5SO~{RV{LY> zN%|1dk}yG(T5pSFzXtL=5pV*{&Oy)N9>QloR{|&snr|>1oeP4E^FWc1zu6BV7`0)1 zJv7{4mI_1|&B2*4qsePud`y{y&ssQTN=qlSiC0oXhy+QHr4}Y_n3E&%LLzO>^QKuN zEyyqsE-CAQlU5ox-%QHik(K3dX5mwjpZ^&noY_G`k%IsXo zdC9hDlnN7vhRpGIL)jK0C3#J?LCq~{lKX3^b{*^6j#1gdqi%h{{=GC1r=%7VTFQ&`N5?VW>&R=;z=zbgB@61ldW>L zuzY@Kk?xMaFIBvZ`|_9Q{w~O^d<0s&R-m#4(4NYcJ~f^S*AmX|d8?s^9|B!JeCS>| ze%_ksi~CS^H~P1H+#mC8+k%xXjIP`EL^O6y%G(h=z#d4$oyrzX*AHzgBWl}mJ=CqR zu5cSBs#|`QBL%UolipgZ;EE4vT(+&P9-G5e+cJxHn|f^fYdvz9yq(tPiQ2wY) zc2$4M={}CE9-CXAb<+-{VVctFlx@=*NCnX$ln%V6wwQaSkTiI^wib|Y< zW1P#ksmFcGVctR*s^@>Y%H?ZiXkpIZh8p*HeVNlL=M5!|vJc z(>cd_zpP>3wqHMaTkpL)J?8DhsHe?&*0O}*e{^{IU%Tp-%aX4zb|w7NQC7Gdk&f=6 z-^UZx`$W7YQOvfLSsHcN@-AU7n_Jt`EZ2E)<7e|2`m@SgwO#c*>bsH4mw);C5uQJX zySz&MU3vlU;|nf#d)NN-w!UL8xO{5cxkt6d9E0=f-$Z}Gsci)p$~VXO9G+oz&++os zW{*F@R%jUy?b~Zx>Rq?3`}n&o+y1q0HMbo-i`+guBo5M!p=_sCwo5y<8$TTVuk$;6 zjF;P>+_sEu*G4+|^xtzEq`voj{cp{!q;sf!3AT%M3$*5z{r91?p*_rf5^ZcQM`=2F zOGn5v$2r`!{-L>*V?4I4-*X$D#<2%Twa>_Te+%zjto{egpWRy#cssHj=I+}t`l}dv z9@#ygKOXxXcE94jEY@S`HzSShILo!{KW;hya?$!=?ti&|#xTTk38WMGmxy%#pR^#6 zX8$bx-0sjlRjEsbEqR5hI0`b}z)Zwb82MFs1P248EER%Ihx0*#&iQM%IZub%6^e6{xDfRfR7QuBN!u^T`6)_xDN2cD%3b{W1La zZEx+vo$}jM04ULOi!PTl{W#(ur`_XI?|W|#Ne&H`~3 zYID3SEN4Rg#YX#Fwkf_QA=vZQ+WD`XKgck}E&DaWKJTT?!hOM2BfvlkIIl+tpWQ!i z`!8!SIp!m~W$=E`kB{I+@|;xMj7*6B)XKu-s1n{9_{EMO5l{q@lTgYvQKu``M0zh0)1HIt@MEsU$^t0-`5c9~{C%Yf#LGjWz(_ALg zy&WU>)7YoCu-Pe-{F`)Io*8~phS6Ehn8VY_ICK0#&e?4h9?AAl=1`cG95Rf<@%Msj zz#V^gC?3O^C+|kanU#82Yab~4&?pBJ1JoI_r30wJ2hZ3QN8%x0?cyt`K6SFkm z(>)Xo_~@u|TyE?KnNMOQxrURYx}1N_H$W#Exg$BzbH#eNiFl8YZzkV4OzwPR>f!VG zE#GsRg`(RQx1Uob*kV+lhSs|fa}0M!U9(+fmmstaLNnbiN|>WiR0JbxnusF&v|kgj z4vJ~-k$fMdoU}hwP0E*dVV0lnTNoPg3n||>VR29Wd=#APs=0lcx&|4a)jj(Gs#dC; zbOE<$m6}%j2SeDn?thJ7)A(JFgbPv5>oqdz%enux*mk296<9et{=et zv1*%tY;jrhY;f}Kt_cm%OunbESJVm86(o?gqM0ydO?J^zQ`7pstpu%Wv>RCS%G%aW zsGA>ZjhW0HS)|a|az3c+?PT>x>MnqMXVT1pnIL1tq8-n;pot{2COn79$Df|k&^VLQ zdJ`v8%f{g{v3~lgYPQk;@^a+;mKidQ!Gse3QW16<_r%1y5O_*r5aJ2qu*MxLDu=!7 z?xAb&FNws!!6im)+U;`Bm+;&!WgH$f;dcNl>#__?)L*_X?@oKxf5LCH}(e*pbW-F+2@tEpFry# zVZitI36iY+T}eBJ+TR_x?;hkk4|Y>KujIS+p8;7ZJa5telR_iV9jWKnYNp&J&Y1R6c!XTCAyRyompt!=@TCF_$2YBX(UhTfEDP)p!PLMRPDSu%t@nf$Arst8I$4`twAZ77u55AdONiDT-FOF z{!cK7(7@Vuoo3HRm9_XiWov>^@B19cd$T6Mdr{RdwCJckFYnk@d*53{4Vm82HU(tYRL;ZS1)u|!oxom=03Z&bhw{t(cml7&Ps1i45{RNOA5DEbAyP*PYStbPKG~aY#$88l?7fkH1e- zU#R=u+V86K8|ZsU4wzRzWXLr7?5Te3{(pF<5f8d6A(uch=HnX}TIzKe)Hq9}gw9K+ zs}mjRv^xn>iIITpW1M;))%cQ}csqVI2;^}5f?(!Z4bf9?F`>sW&C4xx#@H>jZbOLi z1C#6Cp|pNP&It-aGc8H;=nyQkE8S5^LN3Yr+!+w9I*4^VzLz{dE2<78hG9ldk|<}? zYna2`GHuNt%)C2lmhf*J@5)%+Zg8`~IN{ zwhv6cNy^D=B93I-BIws31V1t{hj>F^&KfIe%326JRpGs8uOH-`)Qqg4cw>(Bf+%-Zl6w&u;$Cn(Vidh$DC&{1enElk`5=(pmZ# zWVwU}_iYUCc5R<(8(9A8{PR8^{h_saEgv*fuOzsg-i11WFuL_byX zNMgMazAk-RghA;@^2q1-BX!PY$VuFWc}m$7)`B5ipm}>qN4&$RBxo+2Um#;ToF>fn zlsismoDWU8maFXIcYOs+5gepGbdz;G4H1dDlW@nc1%VunUl5%z6M^NKk2wsodAQIhd;#1ZjGa_$&bf9~YPh&#zlGm%#Fw+q<@V%|x5q%NqiFtWm!|J~-} z-AU~NX#zh9RxOOOE6rbi=kEjFRtriXq|lTtFU=b)Cu(U!>EJm z4wA*bITo^>6j^WaiTXlm*Vl@Ks|A}-L&eu!<9!5c#w*d5TDEfdye{y>8no^=X~UDf zxSE;(`vS-W5(p$OT0_X%Lncc+-#YuhHMHD0jl3Wj66)0)Yb0MaGnvlYg%-V2vV1^oH;$+9JEt}4!d<;n zIsM1u`~3pmXMBgo01cKOzW?^Eyw&8oA#2C;Jas)-)%_onZGA%gIkm945y*=uKF;Of z!8SzKTvIboe~`*?0+QWfXwP{7kRV=3lL>kw;`jMt-v%r1IsF}I$(e-9EIHm6Kh(7` zdb^y7{o#XLD6@qv?e`(|^+G!0AlECCbgR#>rg--;-Y5r(v2W`G%8;1Wgma&n!J6=b z(f`kVwf^<{qnX%8L#V<2U(7iVGG97j#Wxf1SqnbPDr<6$X)vLd8uc*E1;=y=h&HHo z6v?*S9FD&?0y!MNFqrN2^HdpmZ$2|xTbl_IGHeS$&jF?r7K^k^9g;9JZ?Ty?-!_f)SQL%tb=Rv*%!ektrqRhVYP_RS zT5Zyn7e@o(q9Bfi*;pXS!b;ZAv*|fXHF||~);QqeIaNSYTAUWRn1MI*@T~nPCf`{I zyVHy7*0_1`H8yE1*T=m6&nyrg1;!s(TeGKO)|k(~1atF46&kY;`9mkxQrNlQSHZCW zv`0cfC#iK}^UY0wDY_=aS0IqHsX3Ewl>Ga`P9^SwjH}h9c!9G*B(8?3EG~w|8gM?K z)-Z#$fz?bsG_E}SGGodFq?ntx^Q&$~toSyPZ8#!XW+KU&)h8O}+?m9o8*9T?q)-eV7Jg*xdf7_FmNY zAZunk~|uOT&lpOHBGD2M`Jom zC*vxO&s!T(1_70oO$oM7Ljw*({93hj*I5%^+W%cE2XvNu8fNRq^L-=dHSSKXg>m%H z3v7P5Z`$+Lr{p%iTQMDAaJ04eMO%K1Ly&esOoTgYOzVPZ4L6NG&oWgn2MB*yJaa+9 zi6+Z6F-TrWFWJ!jc8}NMLjON6vPy$c&!ibK%Sjwhl!azZb`qxND}}_`EgqxC54Nl& zKSREr7WoD1M4$WZ_%-4ALV?5aS3ojWLD&Aw^TzDx(Qqc~osGxNAhyn+^+$m~;~m;C zZ*GXo3g9hl*uFNZn37pXPLH99T#V z=Y8uH%|R&6z*Wb~YUDt!vvAI2Tbz?I=ak4acSW=FOgR38TI>c*BCeYDx)Y2R$DBj^ zSYLR{?7SjObDNoDnObj>+EFz7Ml)vAd=@gM(#QGQLeoklHMSR2$@`J$Jw4U5FG?EH zt+;28C*aQ)?fhww>q3$*;AUFjLWpxdPp#}1X(GgYPZtDUcyR%j5SPg|`*rfIq6=sb zzHY~SZ*Th?bt8?7F(7b3#+ZT?>7pH<#v*WRDZpBFT=Cs9T{jnzBN#kEtu_qiSabbx z5JqahLwPs;*OAy?!B%c>8;NH!UbaYklqTtqmZ`bAMol;le)0F;=alzpAeAJuwTtLv zV178yBd5hw7F=5bQMN)PAm6=>YCAXVQ{OsKOuyMvZ5P}5*a@PRty(3G9U-nkd!F0P zA6k3L1X}|wmUx;`H%})uFMJ>RD(te~sH8a)`|rPO3x7snq;2uGFWU|q9ne>GCti01 zuW1nTLrk_Ny95qp;n6BTv?*s%GFQFUN{=5^TIC!Bl*qfDjBsQ6nu+!Fym1V$e$DCl z8uHeL8!304uboCvE1s{ePsyPU$1j0E4#!^!lBfo<%z(rwByhWSriiUHHLs+)X@i&T zaPtsjy@`f4nT(NHGW@7-0fr;6Ga(-he_C!iHVQcADe2C{x*;;c+y>QYa+#AP@#RQD zLrxnV;VsduS-%bQ$a|zQAG`@BOvE#IakY#-4_p&uoUg4GNIR%7Vj(qBW`z47x3p;* zYRs>gJRS*h*(Q2XP80ele#@vTWko-EBE{mdEebWw;O~{ z3UW#}%+)N{^|H^yMsjU#_tiCDZDA%Fg1J&&52f}7DHm>h-GqH6<<>S}jLF0s%)l=p zT(=O1{j!+^SqpD58A2d2VlwqaLCkTU=3SFC^X|AHF`pV26)S#BDlf95p{dR8=W?O5 zmaM6`F6Zo^j>1oSt3=A>6V1T*7mZ*)RRZ71z7tY>e-o#Mq%WWxt-M(GZqv-v%i&a=XmdMWm*B@9V1T8UIRkcZh%01EU7yIv+J(-d=J~ zk~mjOsahXX-_r;t^TtBYK|Y8HR25Ci{OQ+|>Wi z@5ivJ>%h6$sywtN#yxgRgG|l0MdG*fndP^79?Jkl5WCFC^pdgrOwVD%Wc@k*4#&^M zjvS7k0p1d#T@i2bFq7}9)Gg$@Q%7hd6O2@{&RVs3!acMxS7N%Is(VrmJ%?!Xqf5EU z`53Vco2!n;*3eTg>uBI*W6tqcBf%rj0C}`>_f9LR-bi#pp^RwXq*2J*QpV<&dnxvc zTxB)Pt=3}qL@RDYW;B!aNJ>bkqwtx0monVZIB&Qr+l7%>dc5r1_4{f z-XGJxZ`*|NRx@8Vq36B`aU=YFD|02^wGQs@>J~N+t$iy(-aQHOT~PMPrOCt*vCrvW z(~!>EB18LYe2De<&{r4+H>%OQ42<);d3&#`D&YR8wgcnsz65xs@kY!ajb+9kNeSp} z`!L?8_=^1=vGKZe#-?_$iWI} z$^kBDB1T0k*%Ie1wmQkWP^A5$`8^GSSklYqPeV)kL@>|$=yw4tbXTIt#E%B~&hAa? zTYeYyNEf{*Sd319FF3>O&gDYCn( z3pua-3Ch`z%`uk+>-XYmBl07`UKOSFH~CGHc(vX8dW2CI%C#H9;lV^&aPU zv06z~cYX)@JwDanPfu#VCc9s%ckEIeN;uw{t;B7F{pn&S!WELi;;BCkrTRWx~ zX5_XCcSp$Qd9W~Rs2@1Yv3aEtD9Wbh`=ehu-w%`XjBL(c24?S5oleBqhc-8RluvJ4$%DvQ+kL;^u~#2-E(5|a zsC?D7*UW$Vx$}Z-InCl1n@6O%U!D5@V1~V|p2M%3e5c_?K+2&%@0M~6Hx~KS{lAn` zpnP2eKF&D}-dPr9m?nc2B|!@hvdM^#aRQ`Q?k&i&j^%_>*_JHyEy_5pdOuQ2FL$6J zm503d)V4Y!hvTmZf1w;74Q!<3YLmPIB{i}+%zUKDPg`Ux5O)z{0S;~@1J3pibqF^% zfcVBHqMGX?6URA zx1ntHmC?8RLKE|-j)=H$H!!pT+MT-lozi+2)4uy^LRicLW9@|53>{7T4ygUsnOm#l zfcrhQ{krefc4GUnUo2}^iWZ!z89AFdvNpUVv2RiDtLb?bO#hYGT-+MQCt}i_!K;sF zObVf9a^6i$c{?%IKCRm3)qHK%f-6(j9u&7ldL&b;t+!<=ZcQVH_PyOLe|6!GW^u?Kn?Z2D8#>jpik}k>4JJ#YGI#L*nGiS zTa25LN$D%AP2e~el?3N{$mFsR>Q^PA*ed4LLaYvdL9;d-tT|9yj_Io%&N@&-j&5)9yV8~;dJa0o!8zvo z`+w}Kq6cF>c{4e0>pq~?`wGg&TJQJkh(Qk3EQS-4NI|luib?F=x1uPBN+qUH22?8otNE2>bu~(#cwVRKa5U(~$7-0+M0;w~TH9NjXxtJafkrw^guKk_PK}e-RE)w=)pW<3 z#C-tIAUDQ%$$I_6=JpvX{%y8S&x^~T)?0+bjwl!jD)NS=?}-Mv=6Ef5oySgMP8WBk zH>#McdEUkS^@ozjG^ec3LxTuW9XXvIH?-@P1i>6{^k{Cy|85X-4$9_&8A9;cxBAOr z_hZ2|4)E}wJG%ZKANu~Yj66S(wI)okSu4%L8?U&_9=t+13w?~f%}z5l@ADi{(CmTR zoXhJWkg|~bc@vb2uu3%?Lztaw6LCQ2-eqy7Aom_tVUS?67MwNF)}Glomz(2tjksbP zdaf+bn|`ZI(VwWgb2y%3E%vQ$tA`6SVI)`j2)Jm+cQA*#5IG`2Vle`0UZ0G#0Ea+$ zzr@88m|Yj*KHN%LR7v-%HmAB1Rv^LOQJu=LB(semXHq?p=j?q^?~4gKhG8FFJ~m>aLNK*#U@?Zd9Gwea{jkIM}OdFtDk(Q4munztw9 zHjCRPHcQ8S$}_||7W=w5+t@8)3`}0*R%k%Fnbg;n&&LiD+}`H)x~!#fO_Lcq52O+- zsL6|H*1kvezd+KNOlR=!7<&vy^AxB&!2D&=;D6}k7fsT87QA&Cjb|_x8CCs%PUofx zH<83tFG1M#ZwqSIlAdQIwf8vt5lw5>fY++&8lFnlXqPO~l=CDl6URC=qj=3Me#m2y z2PYE2!f|6tUlzu0KA`44j4g0dSNf>31+{fqg4Nb-D^5wq9gd%aKn};x#Hl$lqQPqI z>uN-C5N;w=@{Yua>ULv646)X>mh3&llj`SMjPkGMIz4AE%5hC3d9* zIR)HsPI#H0r{;>Y(34TM4R82X@@ z-HF;oC2vdupRim6+HP*&1oqh%;IK z?p>g-UL{dBi`aACd~ZAufZBT|zI`y^NbJ8lQ||@dCxq?UTu8!?_1f$7iAG(kV}3R~ zXmStd1sC;Do@E;yk+8VH_q%Jw+hEnCRW}wCWItZSt)MTQ zptRz=K;jjN#ohGxfBClU9s%Km@*MUU=PeBxOtSkm*>k~bzEYb$VKG3->t#%9XY_gG zN$g5dk>_QnzJEBIrv-KN&j`(U@GHsRB7gi&fPY&TpE;5Qc ze6aIafjuqBv{-8WvA}{`y6z>F6EGmwRSUheq4j_O1B&J%)>aCmW9e~ z3I}o;TQ$;|JDDjF{7Q)W>m#kaI9oAwx((xg>fE4OPTj!s z{czkEB=HW|;}FCfy+$oofDv3ygKr_#DwswGMx5MXmR~E(E#7;i(K*AwK__JeOZYJlJClFng;x`ItlIb6Ls_I>d>@?;C3;* z#C+zb=6RXtJ^vJBIt`g5Keck4w{Vyjlgk_?6Iiiu*Q=_1&1sZl)5MnRrs5X@55Ke@?;X8 z)7!Q9sBIQ?L_v`KKmOmlLE4YkSu382?RPEjuiht&-0!p0*FrKabw)vI$)ARHJ6jNR zH-b9rE+Bjkdk_8ua(5cTGM@y0R?db1IXxQ5z*(H95FlW5;@=UPvhy16|{qm37i%hiZ zD(oX|LB6>$X_LhtA+A_|f^jvja~qb=GfA%PmwMLMG+)EwZx3QYxVG^oq5pE6I=DK>cj*w0eMHfq@7tX4_A5AsFJ|ZW)lw?|I__xfSkZRa$Z6lTJ}Fyd zWh<@X-p)B54+isKap|67!g1t5zPVpKkeX+1F;(vW8-I_%B;eYNor!hsm&;G}|1}JL z|Ec)h^gP@Aa9x}}Pypp?dEMRy8m~dB&WHbd*4otu^FalF8i3ES#FVJ@Tl?9RiwXb-yqrG_NiSy^Z4OLnCga+uUzk zM|@)zjLSEEx#Jcic=!zP}X}DYoVUQb}zLr@>@7z?VK>By$EApWDA#ayCzfXOr~>jr%Snd zIET$go>N8k$?7{jDCIxMm_+G{2y^&Lo%dvK>Dd-&P^6 z?9Q6#b}W9cDq${Rly)4$W}^F^XrzUJu)AYgxg3~pK7V;EI}7=8Xkg}E~7Qzn_BUGH9u!uw=#1(%WG`lHfH~J-`47&VU?8I-+$RxVx2YMWg1f6 zq2d@`cM^M|Zt*1D$66ufeBZVqyBqyial5ban1J_r;?fZY?wQRsWCE(yAK>BeC5_G@f0mi@Dx#xR{2UIfuNaIh7W=RP>wgYM{t&H))Hq z1YYcKKOE1^67%5V+1` zqDv#%)9j>tw9JE4rd(H=P9f@48K6&A0T_~6zlI6^5yfP!KPt?u5i^&(^6TLm2_N)zarpwd~6HK+}o0cJy>Y*KA^4%2Qhq~2Q(QfCkUygLYxJF^867KT54$Yjr3S|#K zzWJoDfPP)~nBCtGVXn^UM)FO4RrCi)gI6KHCg##u*G)*x^ShfMTjqkZ$+&@H{#}kX^KCtVz2ZVct$BP4GX)E%T3Q%<0zTg0)MEU$GfUYMk2WT^GGjielw|KO)w%8(+`d1m6dgR*3|oOVg) zWp#Vm!e;VZjya!qQWI{G`&}zf3H!39i{;|7lrp|=WST}Ec>kzz|4#Wa5zlE9BK~K2 zKiTgk*F_7<<>RvK+JHqaPto?jqW&y$xK|L5-Cv!Ld(ML({5-_(6=>L>s6TJ^%gD~z zpUvIbYT&7*osWWiU(DzE-75n=G{49E&6Gi$=2^a%C#qU;6|QT>>pYH{=GBL8UBcgH zKE72NbprBT+J)8!;rCz2_f>UcKAqc^u^U0C?HR#(5yt#*Ubmv0w>2wxmxk>8z#8#u zO}>LNEjs%D|9095c8*Abd>764eV~8cr*gfgHYnOGmU0_j`h&aB;}y5oCuHO}_f$#! zzFm*qE`r$kA`|N``!;5&$8U=3x*z$y{Qj7z=fy?y)TlmhoGM}OR%T5LP6UJ1-!}i4 z$IV$(_w~dgq z*rJ#=U!&FDkY`wB!=X#KDu>A`4)Ny0xQg?=5s|H>uK7woO2dSGPD+yRAsfn_Ze08A z`1$ac$nh6}=g+h&LXCJI_#8`^H@~*98f^d7(<`kdRRuN?j9M~rZ;kfIavPiBk`a*I z!y4Z{c#k<}Nz4%& zbF!07up=Df;yU)iO(Xj};?Kf}g|fgJ)p>Y#&CI+I?eFV0VRwh2d0<%kx|aR8$<}my z(FDG0waCwd@nBiNL*P8ezVHyW#nf=s@+Jfpa^2z%1$SF{xM{w5j%8VNt!u*5F#W8N zib;8%kKHbZ_WMZ4IUW;n)`sT=)2<$+Fpm2dOCg>599Gn{A<@QFx*6xzM{z-2b6Ci6 zJAXR<747k>c~Pv3IhCPxq%q(6iD2Gr^JJp*F)MQC_Dxx6&75<9lg|WG#733l=Cm67p;(IH>ub1Edj2QEVPoi{ z)CDnsRv1Y2ZIC1wNqMU^GZPh;JJGSYOX>@^XcIIdxp0dZMQ5P^w=v;7%Y8s1aV{G# zRC9MXPw7Tde$S*klj{92(xJKF}YZD*5Kc$;!fEV0xXeU%m%3X*37VY~HL$}Rge{}W zcH>{v71Md3mRC>bzGF`WyIFkbTaSqWUAV^nYj_VgUKEsf@jx=3`#52e9*q&4|l9-md_5w2-aZd^aR-kSqDk^ zG!+j>eG|(B(JoW77vfJFBnakiHGwRdZOETPImBUtSSg(rYZ?V7+m62p+yve6Ea2j6 zY$iTPw>0k&gqcW~p%0TF>WyKjM&vbo8rtrB%!#EKcRlS+Wm}?&<8XeN!^#OsgUmD2 zhp?i2y3wCHf#FcizXMS}QZvn>ao)p^&a8)xB#C+mVs80uE7?FRU>!OhX725nJ6i6H zdGWQ!cFha05fgI?ouqfNoO}4+w>)C)z)PNo(A+{bYioi*7A$bFSY9+u?3KE&H?wbM zd4ha%7^)`bU!ohI?}yUip$3*J6I7ktSMML%fM6DdJ z!ie)Y@_VGQ?U#fSR9Q&90_S$#O~{WDawp%H)varlIGnnd>{bMHm=BsYZJm^pBCHoR z44a8}?c3YX&B%G)YCm2`!co$|;}bZwcuySmUA=y%%g`3+%BOWs>{z_);)0`wuI(=7 z<;QR@Ue0A# z0_(gc!8r%{emRQtiszBPr@p#4YloY2UCixW9W>zdcQ0p2l?i-4{;q|2sSB>p-&f6a zae6h%mh;K^UN^$er2f0FWWG#{U((QCv&BG-NaLR1Ih1>9_f^tu=h=<(=I23r>vvIFHLw{wH|v@+V)vwKk{xqV8~zxA0?&ml|itb~&vVkE3ni_9VNp z$@z=cb`5wRMt2y7iyZ zJ9I+MQ>ikk?t{n>o(Hqb@!Pid_@TNL#GtnROs%g5@?FA>McH__5u(xmXXySvPd&S# zHsBsd`ETL8r1!e5nqRv9*8j(L-vQ*SqkEM*YJPnVc}!g{Dw^`x&UwBdRdRg`$_1wP zXyKTG^lT^uxRf~wO*hM&WBOt;wBnrjIC2=hbuPz2D^K2jY$p8<$6pR7;Es<1H*oE$ zuO?XuZh~;Sb*k<7a368YWeO@@>MN0l7(Xl`TVq*^D6=Zsi8!rq3*b`e_!x7f+mG(;zP2x0_0qpy(Ku5+h* zMU`M*2>~GWl~*gduH|9PchO$QFwEe-Z5{7j>xgMAwwA+Z0Rs2uW}%~HRoy=x)7bobUP)Sx6P!S=Z&%;k8`&fNDKs?W~Z`xI90Nq_&!$nQ`Jox(1x*EVFrWA!P5QxiM>KcP-6Aa=|Za!x@FN zz8rI)S&PcVk$GK?$Amn`$>dR(n>S+FiK#O2=76jzehHB?G5%d6tiO9HwaI;sbTfNr zoP7n?E&ZIv?||Sk$^TtDV!9mQ{mT*etP$ya{EkwqrzGal^WZ|c$7Y?tBtAdyKO9MO*23rGSFgr^4bLyn z@$&p{ey*8(y~4p2e9zujO?Z9}%lrLQgB0RSbszQoon`0z6N69<l>7398Y#oM53w_>77(u?Uh zUqf480{#$+hMVV$^I9LgR!H{Sx2%dr{7ddjYCn^=s>~+t&Zb(f_l$x+oo58SA|AYIa^s%sG#vTf9kfemGS*?`Bvw3gkFLv?SD9 zl>bC>zIi+1JnxjUvW7L*$z;grt`$XNVYZZp#yfQlxK=nh96tw6z#Y#5oBXimdT7E4 z8dE0Gqk$U>UJxwQR*5st@#eH-gIHXLw!E!_-t$ZZ1GD*f3k_q{CWpbo2hlEbr*B2W zJ1@MZi9O$64C5DSs<(th8TaiDihvU&#)+q4cCP(XD{HLz-m1O0aplvTCw97zOo&k> zeSmFEsP+GiRCm*HF2h}dMPs-lCV4*@AYiENQz7eAJRh!Gd(*ab$?p3WA`3$sq8qcap3KshEHLvXNe9*i_Tvcx>i= z4QV1V=k#(MHX+X_X}%nU8V3$ApFh8BgB0&%JNeajvyjVa<3e!x-d{0UhqO8D@06YT zAE?&#A9#*C)#vvTO%F(#)#rC6lX4z7`0m{x-E6L&e}8C$G5NV)=Q-xhj~AfhdH4A} z%S66>7f<6}$|8NQLbn1bivUvSgHZVXmv8K%X~QpQ#)Ue?Fi-5B`gJDLPmOSw!L=s{ z-@gC1jfCg0ya3$gB__KQ>5u)*WVoUczpMm1lkh$@rp!I3K9E?Nyr%vx=T~Y~blz{g z3|xjjSNz9Dj>p=TW2N=7Ys7sJbBM0ne&S-j_XCskG|vftXk)l7LheI&0GGF-VVv3ka&~Kj&};?9c_8bQ{bhiiL70fQ{+%r~h)q^vyK@NJ$$LXN%i&`X1b&jsG-8)WQKrM`kaF5&>Xw|ma2uM#kG;a>!ozY6 zB!}ZKgA;JaGcic)AmKdnI95MrGRq^7byPB#do>O>7~zydpd?q-%>7Ud!acRW(zQcp zKsY)YTUp|6G{o@(88?=N2gdjr_mGKBp&sprV%IEk&z;=kPT1@V|4w%>ib>Sys$as*j7hrZQ8!NxIcFWYpt0}^ZwjyYR$$vUGB$SI`Vt#?nPxV;#v4;J(^Py<(%84{<=Qy|^ zR!{R?BOz@M?Y%3psx|i1pd~am4V{wB9)_Ch{+PomRh+--l4+0;$e%xGaCr`GYpQ zl%)~nuU@8JpJyEJ<(LPa!{+o@8=v#d_3%3&`Z?TJJE*hwO7mZ|)-b5RVW5hO6~d8V zzlSvOA-;S+h&zH!`MX5}53c04;c2`ReV+Tf=6CeT`Sk&x3&Vng#y}75FMrXF#hmcBH%l1)g2q;U%@4nSRCZ?qU$o$0J%bA^qGinE zk!a(t3E2#tNjPi7a~p>9$$2I9eqIJ0Lm!O1;VNQqO}|I?X7iXmH&-eeR6K{@nqBaoM1ZxXd}D z3k5@{D%gjr6)$m`Uq2tK$`x1~uXz97u_7`C<%_<`a>fOj=HtSh&o5|f@AXujiR8Z7ym(ngUwvFHkk#>u z`aaD}ln}fKR?$+!KH9kdbzh{6#==`gqumxm!~L&|8>}?m(a069*qyb||9h9ZCLG-} zK?a3v0h^bq0`QlJGJ=`grl@<2e(`tU*3I64R_PX41+8`ge=8zk5IGn8Ov4 zdQ2y4tTP$TM<%J9FSR-Fp!m-Eio@8PKPf#Vsc`&A{;#qT|d#pwvbvR3`< z{TOig?mdKU_saKzbtTeLb=U9tScY<6$MU>8y1n8&u^x4Os^=@bUy`{ZKCYr(+NNW; zytp4~!#TWIN>~K-W{gexm+;GRf!f|AOEXzZk^5TwX|%c1)imm8mPu zdL|QZ+>>08ah=sUg+elU0op*Dn;b0etw!=i#j+5NNjN?6w z>%MR%)qX$#+}SHHpjozsRAG7XO=~4~-d~)t=fC^f7i6!j3D0D_5OZwLOE~FX$oKa_ zSd0mjKC=4p`YhNl_h8vQZ(Vj*2hr&c7GdkmeeVCueDZHWUWhOqEspeWiDee(|04;R zhTXbsLrKU)S*8f(bj$^xwtx*)iIQ$xc$&F%Bp~zbh_6P=3uGs~;I4&WE*eZiKD6ar zD;%9%P2J&GA&|rI46w<$Zlu^`hc)6jM~2OP#yQD`u`Hw}S4%fnwrmToeH2OWZbX{v zBKbGt_eDfVuH>0P_9Pd#$)@HHV+HdfnB0Xy%zvo<8DD_;Ig|0eP1yC==UWI+uxfb* z6Z1~Eug1K?Yu-i-=69p8hYP25GL9sBvEn&z5r(Ukv(SnQs`Z7~9>+Y)GH-JP5QMuf z09E7j3dm1b?-#Tt<9w};%`Xf4Po%d0dQxQkNcLa78{0r-w--kZBCi0RQ5Gv}nnWbp z46zbn!uJcs|^R85=z>wS&;Ur+|V z{)!q0<&y>^*^Q%)d;LmYBRQ^@^Ebn!{0vOjJK=2pNboa$2V^~`SqN(jPpZ5Hh$;h3@8n<<0*N>dTD^h=4WFofSLOVIx^)T1E!+1I5NjQW z7G%2xynu8WOuTcu!P}UT+O`nEJ2NoKfZ(5k2-kOSxEgC$@M4nX{6*^RW1kbQwk*4v zR!aw#g^hbz4V}Y57>3%5tnXk!lB7ShegnKa;r`-2Kyqyl^5glx(%6?g_ffpPWp%3y zm)%2AjzKCxZ={?3iWxhtx9J>6!_q9{_k)c0h1Zx^QyOHN>o2bRe~iPwyCyr_=wfh~ zUaVv)1vGBk@utNQ+m}TmUaYNX!W&VKl&U3TBjj8SMgAk2Yi!7ILF}@_1U%orrF2PT zZJCR&;H=%2{=Tp)F>Ci(v#f3zDpN6Yv}y z8p09;;(;mAND}+-jA(2pQNz_db-M`-^)SOq!mV^3p(PgC2x) z^LrX@$6qGb`Lqi&|5@9hOt!OD{GlzNw(ncS472ohlU>XGKO4zLlk?Bnr17x|cbRy9 z-h{m@Ol8x@$L7ZKyo)q@~bOpZr;!JJa3|IR-SSBcDV6=y}ZJCCEB4A z?x+8?t9~#Kv;Qt9xp)xnC+U|3?4r@mxS&}R{#2bgOh2}BT+KNj3*opJ8aSSh-M1Bc zRoycA>DzBnGZ$~GRe#6xwqFfDu@ZSRDbIM{{NMAuj7B-V?p2N-fjKWD`nMq(K-&xaI2;o>ndGcvKvEy6{|JS%s-TU^ek8%G1 zf4g&HdEY zU4Xdd+k7H0L5K7h&GDjL;`gt~cShEBm$u_+T$dvSdEWBCRns#H!REcisS^0BNASBG zYgLqmCEr$3p4Y{ARBK{%lk&$gt!I$#RL$2>>z$AHaPQYZ&>2j!o5^|}fX!Q&@s1V` zpc&8og;;g{`1|koJCV#oE91Ykauvdz2aoUTfN(x9>yqrpG^)H68P5eThivtAKh|oS z$ai03MPa|I+Hl^PB!(Uww;S#8n}6NiWc2^dvFCN@$^`1N$1P-QZD%HAltOH+xJh0| zmYvdA@jS6v`ndl>zHciL&*tbw&WmmJ^jPPL)H>NdYR2YYH^+o2qJQ8eC5n-@yU zgy4_=H}nrcqRSj?)_Ax1wQO=eX{X=Sg}aJL`OBesv)1>!Mz|ko zCp61Qo=aM+jt7#@#5c#qZNyl^oy+nS)nAG8ot(G*$1lT_XTHy#7L#+V%vSb4w!sJ< zc*ywdJ-lD~0kE~e%R1Q6R?(}25^Qe%U9FQpz)Qf3#g)2i&#IWx!#l%-o=x{(wf7VE zX74M(^UDSAf0+)EKMHPw0S`O!`Bg~dByj5YJ-oijKPL+)3%xN3{D z<$*@rzOgUfR*(lUcf~}#pwA6Yl4ut{^Rzo;i>5r#%8R%aiz(Q8QcN{!__5XdzqTW8 zSC+|k?wfd>l08x1fumqw%l|*_c4|>J9)wO}OS9fLmH};cOENqo)_%Fp32%euYWid!?>#;CywUF*6 z#|0u`qJDEz7oWXpN{wEmS{Gyeo|wjJ<*94H$Bm(AG(YklN?29~;WkJ(j2kq4lXiDF zJ{C^EKXK?S74Z5wez*`@J_guEOyxvF`)oCal{DAJHNt4*7~LeZ{FT^q8Y6uxj~Gbz zfjw_LmJTY6@GUH_$eBAH+|RpqIHOa_$H%)wCz*a!WfL7^==*gu!RHPyA93-Of&=v} zORjXjG4+MmzT8*8!`;ZYuBKi`&hJZ`5Jrz4AuaCITimk3>pj)EZTqSn=;V7(CW_`e zhuP;tD#Ux=%6qK@tt>2k(S)chOqF?jROK<&Z2!+DsAX+-am&Xa2QkiqRasz-s)>2u z&h|QWW%gt9&%$5VdN<%!J7sU&CU6!d^;-hl%0av@F9&%>^Uf!#bGnO}`J)tq&zm1X zl&2=>K9Lfx8!pz|D_JpazW ztYo?X2wyQ*ChA1{tLBzZvPPZ5{#Q%;k1b5bSKn1l_dg%=$-i8O`It#`CguN3gLpIk znF;P!RXd*RNRU{fzQ7z4;e4J4CJG5|X>htF%$G7QA`|OOfSEA=GmU%7_4FO&^L-}g zoF0w2+a;ajJuwOId47K^8<*=l>VElpw`%{|;J}yJeD}LiH#yE^5zw^aOxAN$)QERY zczfRE_#uoz3xav})aK9U`-c_YaS^*SwZD0OSM$5g+o$zK0*fd0Rnzl=f;@M;3@|m~ zT?VL{MjW>~W34(5faUm1-g!W*lkkRjKh=c{-$9#^z2ChG6PeB)*$=<}$tvc8W>Vfr zcP8}z4|{L78%L6?37Tis7N$y~M6$#d*w95{AoKugU~YIjz~)PE9^t$OgRgNOVfYeU z;N0@&08L;T!hjb-2|83!l&GKG+Nz8VGq=zDa}Q5SbGExrR~M~{iU z`wT*kHjzgnZdSI;^}hLu-(O=DcB9KkzxXtZOd^D*O$ebZ`O}AMb5FNFok;zZh#^;- zckIS+qt1Z@bB;7;4A6}gKkyjyv$_%Uk~)xR-@>0f_vL|yM41BmX=cY)Qu;CzYZFgr zW;I6x(Wll{9tWIOpTYN48A|-K9dbRlL7$amG2E6el=fl$gur&&|0}T8zTLvp;0ZV6 zI`Ez=;|%Zr2V6#~b!_Z!tVP;{!S_fE`-bN~<+0Qt8E6k)kA>Y}@P0G^e>6)M3-8Ms zI3LG2Z_~K3O;N_#c}g7_OSmGw${L85F>SO&W8*Q6cPY#6>=wKGas0-u4{k@{mrfgN z(>tywyfz2BqqMO$^H}WqI{M*ZxBYB&KjMgbb$Nf+l0f0@*gGQ3&RX1(x|tuRa4$!k zw{|*5ZBt%HHkPO2YR+|=kykuKS6aP6aBX;{q ziO;Tba5Dq;LS_~NeK&}rMSY6XMv5;rFt#X1JZ)tJs$;veuHfij9n>NQ+RD8S;*Wpt z!d}tLgU7)3&y+z*7OJfl^5U zsvWo5ZU9tX-SZ6v=nDt2YX`Q`)^v`=1emox1MRr3y?lPO`MpniT(&2=lP;| zht-IXu;iEpEzkRz8N*m(!-U#WSyJBv;kL*Vt`o529R>XlW4}ooq}TmeU*e*0w*R1J zyKknxY3n9MZ2FCdRGms^&e?a&_E|al+Hp3qJ@2%=?%-pE!xU*ldwu(?y$y8^N%)P& zGBq*KIetJn_5V6%I;Iq?&2g-y6Y<~_AC7O-@`sOO2)IdengG`I*s-fI6!kIQ8@l7Z zLiS|$^^Ez74ES%zdb4pYh|Wui`0nCzE|qH! z3tyl<=T-F9qkg?Tq!t+0vEMlF9JtTZLbUHMtq1VUHl$K^H2X~98h?y7#_T>7DLO<- z4EW%T_s~%}$NC`i&daw$AO#(&bdGgH+;^Fw&igADcd|WK8)p}^z2;^|-+Wr!*Y-{_ z`+cf)J$2d4x2;@M;Oo2`b1ZjV7#8u~2EMbgf-Q&(9o(4Rq=*wV1#}+_ncMld`43cO{S*<(-hMrOR(?p8E5{xw%C9p^U)aEL_%<-7Y zDn(B2Wd`dC%9r9`{OK5DVFTU1Y{k{A%m?xqjH8OVw!V-8rW>ok_kIzc;=I^ku@??p z_C4(v7(K+(DjJ|$<2}Ts)!`)G_<5K(VJyRpx!AcUGgHRez%5;$w!QH4SR0r5+7|w~_Jmk`Leen- zuugUyj>qT0XJ=3!lM1g=v1O-E*{I_l{%hU*+@IZ^z@y z_4j1ID;Xo6{0V-m4fr+<0?9eX&7e`>hGzlS^!R0oBR8-4ugW{xyc(wG>I~`7_&eFp zdI$=tUlGtQ@$!qP7cu6_O6xPdl$kyQfOe+H^V0H^OD*VD85dsUg}%Q4zLDPS#j?J3 zeeVIJBeceh<7uRL{a6ad^Hjg4@m_vLuWb7#gY^L2XI`duFw(m`d0I2cB5%*KCsgDW z2mAePc2C!G2Hy~E3wHdV^gVgkXvbUjj7p_gm+%|n6XMRmMxWbY=}2z zpswpjzB{#mI&Y4HVwWLy)ML(ej(or*!#E!^ju9rwW6s-{^Oo`E`YoVt$Izh?cc+|w zXL84Y|7NYk%cL);%d>i86N3!}^sxiF^UH9~jNf`T*~D~zK3&NXiBj^jx1E z(gu5RP*TgZX~is!m^0#4@iQLC^$jEok>FLnTeYHIo@T7Id73|U#`}3@uKnPgr+1kL zv05M7O9kcA;8|I0)W5*BFMS+5)wy`yxRyW7$5||?4zgclh6{%Bydg7DC^iGtuJ{bY zU?1tf!k&-_+J;nIaNUixSo=Bd7HO$0hFZo**A*_@;tJcoFXDVVirbr1xS4_ee#5|~ zw~yVZ)vOI-qATzUunORNSuk#^-p;_7ndd!UVJ19j+QjMIs$ln-6z2T$vedVB_6oRO zgTe0A^?H|dtTgMm_F%x>) ze3!Sd<(&E~RN1A@T@KTqyiNlCfZsdSpLu$q%xQAX2A}|bpSBTij^`|%J#Pyc1j55) zTK=?L+oT=b;Z1jeCe>cSO&-|?n&%%NI?Uf8Y)dKgds^Q>z2*&fjfo{!kSzYDFF&}X zD-gF=B&c$t%sKsHn~IUsnN_htY{7nK<75=`vN6JrVCXw|-?@8Cfg!JG@s7wF(w_l@ z_r1H=atb?BOJ605?@q;QY!5)(KilC*X~uHVNyCsIp3JkEwEh33pG*6HtfNh!Fr<&8$XRXA9xJ;Y{j&Bg$2s(&W!GkUbXEkxi`S|{j&UE z`BLLCYOSs=G5*ct-L|Yf59*DSiWmAs5+0^^K>W9DcMSM%$PiDh>xoi?m6t+4UZtMZ zOVz9%1lAA_Q@@OAcb)>i=d+M}F3dzG5^Uo(>tn{|T7_mghg6m@l+h8#nE7qrg$d#z zDLR(J|FJG{PK}`hQ&T`(RLgTmR}{y~%yGUZDIaDSo3d1{TPP-c7zrS!a5o2#Mu)3~ z3dAoZgK;fi;e(zC>9pkY>}lE*nngctdaqMYtAg^CBpYC?e7_0SOn(Q5>pU270UNb; zJQLuXXz^zg_=X~FFcQ8G>gCL0D=V(-HCzizkhf%)@`h=#UC&Ar7N_XqK%rv(lxycQ zV{N1eqUABA4``nk5hMlD7ktkyTp$f1Nf!>pFMM;UpgaTZC6tWy5A7}KQl6)9IW@Ip z$)Fp5uozSm@HX)-kKs18ab0ou?ii@=*D12VaxXkbxA-xY`L=>=b?;TTaRnu>JT}*a z%i0mp<1CaG*Y%ikKD)qHG4VLqnpZ%*7td2L;9AI&kp{}iU%hw@(YtoKj*2xuZ zK9lPGZtrm0E`tHn`FNHY?`NJdLsiwe@34Ii!U4Y3ph0rL=kq^fz_n~EGv6)H4)E

S*V!GvQiIJ9T5i>6qO4OJT|-?_a@fZk0c`G1IGZZD+1f&Zg;K&Q4s+MFnhJ+{WsP zv)@=hC@$zmKAe_#ZZO_w2POYE)Xx=IYpk9rn=@NNOC99>i(--m?`` zYuT^Lb9TR4gi5)A0|Fc`>A)Gj*e|Sih+=t8X|RJPh9lwgkFu-R zwCCXVGPB)rU0zq&Z?Ni#t{qF{cu+ApzO=ndV!EaNESwi&&)IQp8(#2O)qx123r{%xB&h7rr+k^LjG}q0O3uq@M02=gv=@TOc#JydO z5x0pLKgPlk_R8(7)aUv4AX%Yae`5OE(C-#*?*G;AmtV>l{Xg1)8#)Bsu#RJn{hEvsKcQN3FHDyTk z*hIbhe0*hq8@nLhHo#jjRf^~kTr)AY<77f?=8B$h{>*qIS2*9XG&s@WcCX#)dmYwTgrrMZd09AN3q7d#Z13}>~+3Io$+VaJ&Ny!t2sn%5LXu| z#H1F(VR1DzUcb!%uvMvC)p-?AKldfOGd|~fE(#O_K;7pIxG4d299T97)q4o20T ze4{P1y7130N=&!f#k8^X<1TWws2@zXZ)=56M`pn#2sx?x@-HdUfw5U^H@U$=KnkK! z`?rXvtzCS|QaO3vW`Ga_;V)}JD~+#(a`q;daA0cQU%3ra8ZO?3_*i9oq|SX=6$cxA z*_I2rQ%iB-zPy~fj!))scT3_eSlzPAGN7MhW z#{$Z=Xm6~T_y6f_=X<9>(vM4}9=H7nAo;Rd%&%c;W11y>2@%X0nCSroJ9 zmTqNZX1N=I&2wb5IIrNF{Tuopy6~9sXXm|fLWG2ei+WZ?PhOsLg6pKSc94}zx|W}{ zZI14W?(4lli!<9W^zGp~E)sRnzxVooHJy0BM4Pm)4wXx@b`b`Lv|?O0Bj3?RZt)pH z7_KwE34ol(Tp&4)Xx+92K%Ru!q!wu7x{>OP>fjdIxbJAJFT1vOtja=eiE@g!pgVt} z!mQ7Q*JLJ8oa^?--g0NZS^NB;_RfCQ);|2bhrV`8XP2A&Rs%+7Mw?$etN@AG#J(aW zjvE$pP&_tn@pHSa-L@_295&cc1M`R{5~*J7Y*n1okjpGJNE6o$pv>E_L%OkfmU;Y) zs~6Wv8AzYhARL`AefR>rC3nJV8C;LE&RdN;`L-PBTfw&qrKwB1mII7q(4hkk9hKZn z>zc-efweLVtW+L@9i)ws5|f90<{~)DSK~_x-c}I(6Mt7;2IE+6E(@^zynyktpW+y$ z&Y8QEn)SgTbm{9C&APdMdc5`p+PIL~(9V*|s1Cq-7leyM3@Z$(z-?VWxW`OzQYbu|>X9bKIm`Vn*Z>LYa?cY@ZT_LdT`(6{+-Gghn zgWDPCrS=(6^Y-;_lI^Q80KT@z=K{z_IX<(p+&B*aG+!^S8TBy9VD+cI#_p4stG(S_ z$S+r8Oj7(8zm|4#0+T4}IiM2@aR0Y`_>TAH;F{y*qfF*Mo0x=g*Z0|Pm14``2Cl{v zPCD`P>~ft`x$)#tCB0u%*wr*g{a2o!zJ1;h!eK@rTqnX_c_;{j@Lpm8W5+$+pQTOn zcyp+*GYDtn7;yvP7ZLy++tX%wEma$3+Yc-8;Zi(y^t?}(S^om()Ay+$y<=xW^l96V z_kg%i%(usN*U2!(5cWhHE#L;w=4}z_s-?q&D_5j;RuUOJz<{@+q^19tz7QLk_Oq8> z2LSoxqz}T;3?|jVgzo{QuRIo<0Db}DWt=h7vKfRt`Nmp&*6mm%GQ(sNAw{`JN!7|E z2HMUceGa;ZROJMpf$8K?#Lfe>`<&MZdVbnSHvO!AxwUiDfIwS0t-pp~aV8*e3=$wBTn{wYbl+F#V z=O@vbN|cKf!4(!>V{i>SZEm0f^;5~QBHDeJZ+h>iZBZfP1`!kR8V}u2Q2GxsR3;}uK%tDkdAGk9KcVqin- zc+gGQxk`;xxuDbF{-xwx$2LF*Tc>WgFN>Qk18oHek>i?xMwKdyfJ{Xz3jv`$36U&T z1xNXhBs4ZV)~ymMlNwZ&N}0t~@Cc^#^<}ESBn+(WzfJoz?pl|)d}D%%-GzPc%O44R zgCV}2>OGvkg_dQ$em#NVNBKL|^`}!E0B$|T_BG(TTMourIKW&`Aqp#{t$~=Lw7dqQIZNuVC4y zI*;6)T`eXp0NCj_W*!1k73|W$Vpy57uE-@)^dKj zu%)`4N7fD%VS{_QlxwnGQ(qS>xUbKyS8XMAZZfOa^#2CB>tiuVetJ>>H~0T`m=K=# z4HjYhoEh*|ck@3o7?*nNHk8$4q45tL$Fblxjv8_sNbQO?0J?cw#_XmJhJ2U`0J!1C z9z(++NtN{`5rI;NM3%8C4ee-*Th}f3y#~b1TTa71yoWcu={yxULMi~-qnlF3^SPX*+jPazNSx-av^ho&Go8lYC7(?PI~kD z%f0GMs)m^rm*Sd*orA>j&%B0l7P?YQ|dYjM6otvtq4%548M0qJkDi@5@Cb32~~Y_UEW*l_G?QFYJt5jne; zu0F1249zl?lsqy|UTNh|!ucffmEqe@hSdRzbhO0MN=$7RU5Ucff?ZC12{K!Jx1?O zDB$C~+_vP&hvyS3ZtQ$xJh7k*{cEDO*b{)i4`tT%JNq4d-#zb!87tmQ6h#?+*9{<# z5Q@iA>)pxMAej!g2~pJ-pR;-~fMv>IIks~$`9_;k~CaNRoq{@b-X z5w?GDYvaF*SVT(oe!`<+{1T~OFttn0IP$TDxdwBb!FS$=`4!rwR}I(TJG(p;Qy23Y_?7~`(cvigR+n`skyh?s`ZuJ) zZktGo-+)7(>8=p?)Hi!v=gK=@bl|#eOO4;wj(jh7{Fa|oGH6$j4Db!1wbNAw=m6hf zw$JjR2Ex@8e5)8+3%=F1j9jv!9)^H<7PH8m;-)iAnzE>?~aoH&RYNU3YwS=%31h0^{ z8bV(H+gA=`Awq^Wb$!>L9d;oPfbOQi@3my{vG1jTZv~xNrr^=?kH5}sU$@_512z@7 zD)?rg3BY^p?L5ECeX;^r{j-!{yZOAqnCp372gZ)}4BSfwxx2po9DV$*w@Lc}zR_+j zEZ4MXK2Mxykr{OyKl^i_eeL&6?JEc5xF3t%RNd!?U#(+XzXP!8V9f2SyUf>&zZQJ! z1d4)h{r>ekS1@kEcYB@R7MS!s|4o4v_emTG)Ug6SRPq&kSIYXHR~^4?h`3d1`>!Yu zJlm`CJI3?;l@#@LTjCk^;FWBT5ObJEl2@p=~P9|L@+490P+Ck}s3 z?|of==5FZcm6Ccs4gzfX_|cn4)@emJl(!H4kpjN+_2m7D{L`C3RFu1d`bvyVx47^v zoPS-8J@G%ueYZ`dOYWB;ntFPf-ygFhI=T->zJf~ zZ#RJL6CXqUG3(LvLg!2oeaOIG$4Cm0EgQ@r#qC^jI#)G}qtX#&mKnzoX;Z^-I;=F% zol-?sBnRU3ix{QO)jc0uj^5-rV*VqKFWKu-q#n19vs~V7_$Jo#-#D@wI>yO$-8=C8 zTedp@{ts?=!0UJuwem7)j;M~anxyc^@hfoYLWE|7&3& zJu~1rwp**gy<7(m|9p@Fked=ZWXl^f)pBPTV8$ez`9S7bc1J%yFLg}K{8K_@b31=V zvEJ%dJ_FTiPGy7nR(Et%F;{d@-JrWEUoFhi<>1fvDHy+)0B^A3ORs$4%cT?$zAQyp zs!)+G!C1fWc62}s);oZ;U%L*NgLQJNfcXmvHcH3aXZv{|&BT}v%q@TL%UswKc|sZ` zWwb4o(#vK*?{VJSmut`2U9Q36Ty@)BX7~2j22>1itE%}cSJrms8fm<`!Ptnqb=&K) zkCXk9viorWbZ4&>Tq}r%qW6^pFt{KqFw^VTcw_Nx1%y{n0td^iZsUF~-4D0%jrLk< zCVE#Y7j0cvS9E|`fKu_IT`vQA2K(&QtNlhwYdzF`U9QW3^I{CZYk>K6IgcJ<+q=Hh z_VjPJObXz-6yzJD?VwqKH`=)N^#Jd&St`lX}wofcvU6p-$zZ59rv)Fgz z`|Z51^S(Bv8Bd0&VZZ)Xw2kmgz;EhO;qh&KD5; z^WVDNL&?hcrcA!}$qSlvGBA#bDN2=w{YaUo_6zmZvF^{bT9td8tbP84JYyKc+cWJc z2h~#sAuRU3@psH)7jv}tl;1CXAKKrAzbB{nn0ou@wuRbUs=E-XcA8DAuFWlz~-Z=iz)$|3HCl&dB43!h^Q(!#s~_4t!K z@o=pF=Q?AWXCeMiXHd$!*Lxh z=;toLcH*6s0q!Ar8nVn>XJ9Uw`93M<4tFne>*DM3ztb^hr}ciEv=`?EhzZMoLhEA% zx)ng5O74Vp{p=t=|3#_Q8Sd3s0rZ^rlqU2WRT>4>`gcI7#S~N<^G(MXtKe*fnGc2@ zzAf*eXPiQYTn(XYZh+heTs&CQ{ko0(vH;%(qMw#}makT5AKQfwGL>z$t_ukN!cv0Ts#i~#d0$r zgj;$fPn87ljM!5Bv%KBD4#3Tz9BiK&MAR&Q^2>#+7X+duvx7Z%U#=6N?*J{K=(QW&+o})+5q0Ve6}`5+5qCC z0u%v4jWPCexPD(dQ?2WJ0KEDccL)>{m`0h|RoS53Rv+y2;&uI7HBkIIgX7&^o08rA zcfIXhIu+RGT`uI~9*t3i>*jX#xb~d8bn@NZ`kX@hs(avNd+U7v?EYWX$1uBZ_K4VX za{D*Wh1U}4(paD_Qm9E0c+=kwfIB8&!ec@t>gkVJ!vd~+5~%W7C&t`Tp-CeYM;`^L z*DM5sbDDb|dvj@jmEt*6!}Ix-r}q2Gf7`FU?DgY1^_h94yeMs(9)x?uXkEkN0OT({ z&6yM(iC0ojxP?8zVhontT*WVPp7AI2-2B{x-YlE-2;q^!l&jdKhW@}5j9>VlvE6V% zw_K5QeF4U0Zs!?<8-Q1^eV*HBUD7k~E`4qR*N)!k<$CU3TNW3-^8FlU1!1<+RD{{A zz}L0xtTXPK`gu<6iNDiR@yT_G^k53U1B9PA*gkbvbIIXjFazg439n}C`1G70b(y-V zYqMa`1F;T`hn|j4IEAW%=$Q?)^z|bz((%%X6+!fS{&9O-3oG@m9t1&E@=pDsDVUIQHiDw#IT5b966- z6(8DisZwtsHcES=^I@F3o=dG3%GndB2cr z+6uGfO^TAKTwT^QKQ~m$6FLIr zeY#W^aRuJkZKe$O3#`jV^X=Q%hFwwK3UzZC=2srmh?y?Y=JC0MKJcIO})Q`$gTvmGM@P zq<{lpxu-M^HhRWZyD5OX$|tVbV8lVYXqjy~*j#%V8(8Ac8R{|KWpH}MfR-u)_+C#S ze)~-Z#ovoF{a&xZviUea316RrVx24jkk>ZXQ=7XRK7_?n?~b|MtNw=yVD4?$bt+iB z+I$mcrz4OZY&lih_UGV=%Jut!iaQ_Iip}Zwj0vJDEt(YJHwe9{A%5IGdn2d^_B;gN zNW2Yp*#K_^?YlI2B)4cFK>RJT0?0T^C($ECwI8o@2k8^V5E_ zl@vxC;%io>$1f=LSspi>(lG(XVJk6^4RCH6Fp{EN*>LE>Slsv_sj9a&IPh*XXl&Tw z@#D4)QCSvYYwyXxpuLQL@>t6Ox6rt3=v`0w8-|gJ^KnNm+7^oFdd{P~PLf1*YZE_FicT?#zSd^lE z@r;eQ1&$vQ*Qxu(u{sCO9@a0%M6NpZF;Y*5;+!(CYvp6TUrPOBUn*Eu(4Cp=u>#(h zk+qZ{k^)$_7W)o`z<0U86Ti5_=-s@-ld zFdF#w(L0N%8SsXxv$&EuM)?GWkrx?WTSQr zT`3+50H^@S;nGdVe1DZHL>>SdG1+g*Z<4_`+GRk(uI6@XuXBBsDi*y0-xa-`i*h`5 zDO0PI+zEUGaBG{m?&@;bxvwuZwovOSI{aTK)&nDxtRla2oqjza1n`Y z2hNPMnNS;6>d}`j+Q=eGk$lF0uiuH&ar?LustDUB-o1$fx zzC0D{-w&o=g!a{^QF(O1)G^12)49?AE67%Wy>g(<<+`rJ27vEY-Sq_H5Vm0?q9Lyr z!hnR_klAI(yGp9DRJ*Gm=05OPT$pVv_a_UoWuij?^^wfe!CI43o2HB|bUs&1_sfhB z$YUFk3dW#04KBcNEksOxXI9Az+K(k3&O=LuALZeW3Xwad&M1+*PGX&Ftcf6%j3^($OTU8 zXzp&EUH@k(?&4X=ye7WSoaNqRtaL8to9p$`#-Ioc_fO7f0H`C)nC1IMzHU;;HKzNb ze6H5Dyj9)}TV|K^*}kPOFUqzSG5c-DKsgxVYA>jbC-t@tOx5*V%~FO*Q7GPTllh9& zvD*%`e`w;ldrIaUCu)FPiqdfaZc2T`j61fC>7EAc5R+1u*)H3?SA*}$_OeSa+FsDpe3xM4bf9eS5p`BA1?Z75Zia0L~&-tb#jukI9y06 zLz+c(Sy$Fuf%jCU3inxFG@qgIaH`6s-NztYs&tdaek-f~jn_Fxzw6u4hk3cD#f<&E z#NaHG&I!a-Z0$73jCEk;^p%j(xz|}0&$QM~d1EDYhLh&E3>EY}f4?eluQ0cdA6kYR zxx>STG2*i2w%-<%(l^;41u%=aP+N%)H|6xP2(8)vK~F!b6i_UU1wYE`P(eT5Fc>}B zbiKEEROXLbRL&(a3qCe!b5Y;^C1rH9*iTs|KEAzELjSE=k~{l{xAvvMaV@nQ4))>Y zQKx07Us(L|NzJ|?74~+%KYdXuvbO!|6K!~LcHV}YJB#MnL1y6m*q28lb$pXr<8Bq5 zhqv9vYaj9lI?Uo~)eN+Dkmfqp0pX3iIhP~;JIYom$BwPCSeoV|wQZ4-Mof(c3^z7N zkOI`tq;fyE_0!C1fATagI3BFH<@1&l%Wi&FH?Z0as;xTZ_GTcCW6bsZo3YOIEyb;z z2WS%hbBhJ_bVrs;8>x~gH#etH0+>c#WE_JwtnPwhR`&`psPcW$QWvj1 zXEPM6ZQb2>6}ZguVv`|lRk#!Pa#(Kw;;nev=Ul{hJC$+FRl5spuJ2F)t&AwZHNfLy z!{^$TqST!nqyl&=2wqI@;`P*?f??bnE#L9|S}(vi0n~I=yQHISp<{O(5J!7b&aL%~ z*+qK_G}YaGH(%4X17iK0cK%)e%)Z?5&-cbZqs5r(^?UowV9(6!tliaJ+q1ZJKcAk1 zCpv^dw>QBcp1<(wyN4%1JJBK=(ymGB1NNrwkB^E6Mr^+>F76RWF4-OZmub73w_aqP z63w?U8OG0N>zb}+Y2I#m{$By8Px~Kv+Ot;<;2%xzm`b#bLRuninVzo)zT2ggcioF- zl2XC;*ZltM*oF8U=Tfq;o4KSnpl=fp?^+gPdn%s+INo2?b*V1~+YKPDApP61=}&uu z6=~Wc@V#x+*C`4P>uUc0c!=;AX4LYDWsPX&b3V1F?I1Z5uYU z@bSbU)`v0N&m$~OqyTaIs|SF^(w6~tZzptihJ2qOyf$-B9}4J(A??{w9G6Fh1APxi zV@X@q7^emM-)EwGL(S9)-ISU8y49{?#P964X#bl(xI6o`TP+yTe-ZQ;=P$K>OwB-m zyt*13CB5^_S?<(1?lz!4P{H)#RWIHb7i>CC4+CU-0Hr5r01s@ zW;35=W<_(oH>yNh#89LOxFTBts5kYbfbmnm1{GRU*YTAdSLf_ToOi@~%UA<+kpR?& zx0xQ7FJ!vyM&yNp>YtvE^E&6W4}iP@=XN|mcf)+M`=br+Jce+VuY2js3n}HaUsnxW zFUvK??h6_e`Zfdd9s?fCvx9QDe0Ri)!_;L|a{{kDM=$Df{5B7?f0@9@?}_n7Io!$p zLMk(GV>h$;SyE4wl?=UX%6uH*L4#O1d}fL_kmdR*1)c_)&eu& zx`Ehm1K9KohtczIi&uGxeCm(Aj(#rC-mm@HR%6%nRz>}#)ZRPnS%Y=t3$N@+7N%6= z2~2&Tsu|E00^NT1E~K#H92;IS-cNbi3=%lh39NU^gm2I#F{^Tew}TWfH{jg?nJWj^ z)=$#DrXMvsT#Nj#MJ3RdQ-VrGcbi5FO_&Fej)VFvc)lK~nDW*PfAfTXWn)Q+%HyY@ zHvpsko^myR#x!Hbp|umbJH`@w8`fM-5o>wBF{T_OmYmvbm<~|TeZ)-jzh}(ok7)(W zYq8)t`BU2NX($yYy&h{b3!eAgG2y>8yNdz;mD{)>eL<^!4lBT$`;0bjJ8DY->tn2A zo6F02{bg0T0}UI%H?D)vSN5050=!g5;aNsHCUqtX8ql9g>WiwA=qY**vJrd(U>_ZN zeD{#q?PqiWh#5a|fs+s|$qiJ5wk`kUxw;Rl6ZP$sX1%?h#eBns*E{5uNCDrHJ8Wgc z%?>2QVM1(;Z=eqn0(_(Vti*TQ{)rXPI-hVq+n72xW4xbd5w$9v*ts9`+*xm8y8*Z@ z1sQ{HN-L%UYnH#8z&EE81IS)3rAmjxpnFM0#-h_c9Y`YOj>UUVY`2zKJR|buYD{+H zh6z`1RwXu2yDt?R*m{)Ppm;wknH%d(?&x5=zoPFc$9&ex$>CbAtQiAw$qYDDn!#{m zFpq0Q-eLn0gt8S_BW@L-Ai%++f)OfLa<^7w%W`KUy%gopuF`BF?bWUnV7@DHT-cT0 zTLRMf3n4FOc*oY&+CiLF{$F%o6*%kP>~lzAMc-}bxL^g40J8vI3P2U~D@avPZQyh# zgVeVZzsFdOM99H^8ug^fxu=Uc4#CrJeb8Yh69>4z6LlFxOzU_1f*a zQ8?K{fNyF@fwZ=Lf^R)G*m02n-`aqI|Es)dvGcZ`zqjx4 zUBFAhzgJ`KcWdx%zlWWo4zH6i7IW@y4OI%b^*rUA{U+Bro?7dD#lOk5|MnDcV-kpd zkCu0w+S3?uJw8DBUIF4g+w~apAIamyjA(JBJG1kxbDKZXIdQD+drZ&2K6CK?F*f{V zp72vM2D~xzUU3z51=lZi>2cxuJJfY3qVufc418N*NoNM|{ese$!P6*!xNUfLiKoRy z-Bi)751?~cUyy}Osa<;ikM^~W9*aNZ2em01DSS-hdIyeLh&F|INSD~q!@TLHc8IXPYhq7lcD6TE9j<7Z~_(if8JNhrYnJC*SN=E}>y3TLb*XXRR;JhCAlg!qahw&g z*9OKN*(sJ^Vl+yfMH z+_$F()3SekNvXkJMx(i12&Xj+_m7?;Y>jx)S0#;@4&2QheXoe8*1WIz3AuCrIx*Qpp3fPlCQy5$aKH5?}Gi@hJRjM%Z^{WEv~)( z4t)o7{ip{s5bk}IepY~S``o*EQo-Ek>6kbE+tD&is3iKnZIZ;p1}fIy8@WQAH+4EV z5z2wC%iTI0p-p|pB7L@vNu%9V(EsZ?pS+rG>+k!mkF)f5hP?Fg96ib)ng!kL8Fczv zpMN}~R)mSK%kl?S9FuA0c78eLSHtwr*OW%^mkDgEkefcQzql(pXm3qb_C!)J;xFmD zQ&;rGFJ(eS*O50I@#3g!@2e;EL?jI2mHICIdBd~6=j4Hf(IK?<-PD(HS5bvZ}5NFGaQe0aE_i;qJNnGZ;oC)}=?nS&vbo4IfM z^>+!3qcYYy9#X7Zim@Rde=M7gUC$Ma1Hcb-uZoDVy(=e`U zMmq)RQ!AV2Wy@&y*5^Qatj6qh+OtH*r|S4S@wR^qyZZwF!R+?f6Ooc?tagpb`|zS^ z-Do5g=D7yHdB48ghOun7Y01hgp_$H3>a68Bq{#b-I3C89n~wit^A18^>PJFuF)1K(=lVlE}t+pLZ2Yqv#; zi@9X*jR9Q6cyBO0mc@ZM4)Fzjc5^|$sAI^h)L|U!D78!ZOON{wK(e3Jhab7SCvt25 zKuW|UC|Oxa;ogPK-9GjE842)Vr_d%%;dZrW=aly;xorI%C^uSKgEbg+_v(q>hM_jx(6_4S5xV14m0$%D7k{o2lDBcG$a_6_G5 zsg6z#T;Fz5wrdJ?(0g}X&Z+mb{jBUF|89D+9_(f>rigu)GHIgj?*DlzgEs?*G2nYG zE44=hwy#JF09NS%>=r@4nZCeo6KB4m5fyKSF!o`5C1tYlPdH zIc|4ZZ%(i;kp2f5DzNHvCh`u(vmo3?l9V+$Lf z98#Jx9*+!Tt%q|$XjIFwZ)iS~Zy!tcBCK87>AUeZ%2>?Dh#t=!AX}>qDa6{Uv1Da_ zZ4Sye39}`?1lqef6tcB;-`Jd9Dp5BsNBvrOc$7Pr^nYx-W59p4Hg?@opww7zOPagM zB*BZIolRqRnbMYz$D8=>0=~y`>~Tu7myfv>4aq?15r$5~2+*ywjaK!zR!*O+iE;zna6w;Y;LVJ+ z*|NG6V@^<{)sztjt9{`+p3rxvEP5r>_M|Kqlmcu)gGrdC^U*;jfVR4^{@2AA+h-2E zRk{52^rztau|Nh~6uN z4})+6-;Xkw1}hE#4e%WdBE{2cnX+e^?kZf!#oc-(g*$NTB5t6@U5OXu`i=5%9o{W$ zE0{PfUptW6q3dV$@P+T&*(oftxm}O$67C>+hw6hpenZEEi#Q!)0P+^_ZNL)sHkkuq z1;)Oa|E}{nv5hvix65~hdIo}}k9)VheVoU@w;!h~X*dDK`UXbb+}dB~^kxdg?a$-U z^>Zpq4n`d5&aRsK1y>b3*74ZW^Z%o_Vb*%eyvibM489q7E5f$zCM(1L@nR80_C4x5 z(Pk1$RSUa;ZiT+TJPgNN*!_K~fEyx}>W&U?qsoPSS@MXh>H0Eu*7xJW`~C|q|GF74 zJoV#rS>+c`jr%&;0RiagWqCgJhvx{L(uJko)H=Cdq}@D|48B)hepbB5TJWtC-q~fn zVZcvQP8BM75*;3L+MoaVCgmLAYNulT{|)s=0Na1CYtTnz5v+J*LOF2|ze-sU*1hWv zFH?Z=$}n)L1}}+70&n+EWejFENM^rvd6>sCI>xG8)Q7S1UexiHjoEbkHb!@w=tRBURW0`!MpjqPrZbl= zs4+;1hU?8(R%M%J9eXp5$Mp+2PiKx2;vU>740)AZ$dNJ(Fji_2X3vW!gWVSnm%@49` zxegw5Fj1+SyYL!|rhWQ$G>~59`Ib~tiDAI=8Fm{MDa8nkD=2Oi%-hsrnt%J}7jz$& zd9Y^g=TZi5p;}Jryy_0AgBdW*w%pGHL}qO;*aY)~oVk@?nz$g^<1FCx6$z)=(t&oI zYkxFxH61MLXNr*RHpLK?M~o=h9x>c826xr+-$`K$p;E5wn}TUD+7M}aG;RM+N*@NH zDzzS)%_*H0B#Nd$Wt&n)+3~8X?aJY%cI~HN<{d0H05k-@7-aR>%!p;yL5VY|;qtvB zH5)B8;~Io*kAGoaagKHYE1>tAplFz4&3eK6>V!>xVdGe6(CvfrkJ?#DdK;2eEtK6F~2%AcJ#Z8`#1Kws@! z<@HnXEG9CR$@8-evbUswc?H;Dw6O&1{bw5&PuAvPPw z*cc=Ob`y-%v5JFe9yeu_JJu}tK#jHAVWZ^;*RfV8qaPIo^ONb#lErT4DaT4`*nABJ z#7VpjA(5em?mrm=@x#~$-gFB4hI3iClNX22)cYvqKwoP-PkFpu9l4=A@9PV-wV|hX z_Uo`a0RDGwC9Y&_a(1V26BuWZUBGnh-qHiwHA@aR@*#uf*^4B%`8k)H45SAy^LAo3 zQySGu9*Xzco^2O!eN4NK^q)a)6<0Ih>>#>!bt>SR0Xo|ZtcOBqoi*&RIlY!yeob}p zLfSDL7cT0Z0f2RUSQiKEm>kG$ot=`a`Klj^!s)g$+(`YT00GL`x@_Hbk*bSTs|{p0 z_<CiN(lFcK0P)t9n#-?m0g0tjUNt~E zeKrNInNjVVf!OKV9!%i$9kCa12VY#**P$Tzoqm>w5VIyqzru=6>%G8{UF+2H)+( z2PQ<+-ollgzcT>%>)JD+m!mw)L3!nx?!V7U)!%_Qo8>^4k`ivCo4Ok9XhSD@DbXx# zpHG^FUCJ!g8SSbj!LSGD{4 zD}TRoy2b$C%kg$MbZq;wtttV!sXy&a{5t4v1=WR8VD{{s!mM;c`Y9=@7lOP7;(3xg z8LMu<``dh78V+Uxsi$o}ko);Fnm9*VQHZ9hfU2_L2WP~9uS!h#f!9%un3KcIZX+#e zfNUSIuoxTM&QB$S@s>!i?O~Kk34O?(e^vP)w}Wq_bCt%0yaCL$sBdWltap@o8~Q&V zdn9#QGq(7J_{XS5V51K+`G9sT+FCu9wvzGRm-m~;|Jcs$_Q(Hs_Up1FclN6=2Gq?S z;j(_d!8R_O0Xf%`Zd!!Ti9N8WTVbw;8o2l4a=Zb(jMV)+_2)cJQY&rdS7n_yvNUom zCC!E9>HedulMe-8x9oRoa3?p0+krXi9ma)8*^wxW4E38o(2gfvc|>&HRmOt_cwGs?e?a! zDwRxA24S_9mj!sM z?Z-b-4K^*7o37c~bk^IpiSds7+jI{iBm(J?>KpiQN zkOB;Owr6RTU`?8)*0mNf+G}OMT{RkpJlR4(ycJw)Q+9#X-s!|-%T8f0Q9g@}?lINd z&LnS(U5^4ffJDSIUsJt`rRKI_47{bJ>EgI*2A^8}odfH@(GR_?w^Ex|h~2)ucrdm1 zE}thrIkoq|L9GJhhi^;M527~j}(#y(hcDc=K(Cp6;w*(TTb#`B<>H`%TaR5f;_NwamDl!0qHQnqcoM}_@H z-;5RTj>#kcjpJEh&k!{*=W9xThsmicN}-3zFEHo2{Ud*lN3N27nFZT4jhQX?#(DDa z%bY)a!D{N4wfsW>atGpS$S)q^=>XwU$BI`TJ=5~V^iF%SF8UQ}>gn@h0`B__TV73M z`twtzE~80MX2LI)c{29Ni_REg+Q(oVee#7~?^L$*eb1+fUh87Ce`#3p=PKe>fpgCv z-T?6mcuUS1Zh%|e(;azZzxAQUa2HUHxN%$bSaFUM_wCSZk-~tp83;cueLU&~6D~O) zxH9St(%Tqv3vKfu+u*2Z$f9Vzng|wNDZd;bH^1BfEnvLP=dR83&30U+ia@OqG>j0dy-jo6_^}j6>18VX0?s;!@(Hdm?CR0HJGg->yKo%-zV}5n!yC z>!}^E;Z#%uUTMJi+fwf>ZL>Xa7P|*{E1>P$3Z}Olv@__|4F$tn569frTd9D*p8vty znt5k1-dghZW{hYe~S;S7~2ebY_#_spP+pw545vf6WQx?CIj;Dl$ zFYFZdy=QP!kG$w!4v!7C_W4@xj^R0iXUy!XVZoEn>yncO|)_WA}cue@&v5Yn~t#7k6`obq3xF z#sR8(uIU$2i?eC^vgOy~#;_+dqrb~BhzWm+b{suZ_;-m9=ZWfP4zkY+3vT_h9ba77 z5#GfU)s2ba%0a~AM$pnR1(-erhT?Plv&BoDxtS!&4ofJ4KHI|ZjLvS%v$Sm zllnM;<8Z%fKzDn{=hoE%eEVlO71u{`CR=!2cW5W6A}R)y^KlSnQP%rFbBLZwv=>U} zk`>NTCSI;NN6$|eHUKyvHJCF8;pADK*InuLyovMH!O3%XzdPp?WNzw`4p;Pu?IvUJ z&1GRr=_{L~yxDJT_lv@uSRA*zJwlyV2XY*HsCAU3K@6iUb;rvxo@Ao?aRba*+1%J~ zq@u`LNafSQ>C{G1J$w**buH zyHf_!*y#YFQoC>~XdIaZc9!@}4|K~MnD)xC&Y)Gn$CjU0!SCX2Zgn27`Of0MCfL4dWc=~94rh&NtRnG_(7uo-nd$HXHtIOv2U zP&PB=VGTf!@45xy{+?C?=!Q!=^g9q6Ud4&4Eu~RQmrftT^-~sVdoHyLy02tb+y_uz zcK$3M|EzIOSHO-*=(hiCUD4S}OnJ#Zg2`{26n{3Yd*%^%sD)mONJ%T|vEQMyI<5Sn z8W*^&rvIn@;h#?yA<$;Udt-p`QgtjDSJY1W0el@7FTpuJl|+}OlYBjGIo^E zOYZMrz=vEOM9WZsxOqQ1=muEVc<(_v`a--E30HI}MFENp{kCJ|aqKCZ&xxx#2E48( z)tI{HzJBY?y946CI!khAf44SIMX+hcZIl{NlS}yQxcY^|4>`BjBUj@kk-QE(Yewmx zXBIo7Hso2+NGXwO(9J67N8S)(cnU+FBx1h@e;G@0H!m;g{8H95Va9F`fH?{;%gXf*yQY=r=c$Ub1DLKDZZ|Fqrh6$}z|AarRcDzu`IuJN zN7Z$e31@?gIL9K+(uuiP0G2>$zmV?u{mVSSgnPNgKKeEWmEm@-F_W)~*cwdJgCPd9 zbphSGoM#G)akK9?;Jr86x*7|YF#{esxY;F~*=cfnt;C>&06|lyYqXDJz}c0YW4mE* zo77XB?#e$v*Jg3qEpU<=fJMrzX=!TbZ^>0#ipW@U<#7O5fX4^khOy3#Yxo-(EBEuA zhp8~WGFCv_z%afi-@(9}_XlupfcF+L$G!HL*`C=1+N~W1@?^bp+x_6r3`V5=HB^t$8qUwZ3w|Fb1{`!thn6bWwAr& zVvh~U%(((>%V|#R_|A?rYVDHU(s#4+KfA0~#_{45E>Zz;4;A6?615)@S~6{a|2kub zV89!<^vd9tzDWpDvRK>WCXE@wYru&2bTYp3REq}M8I(h)EhaYAi>N$f=9$j!>C5c4 zUd4(prB+P8nD#CGH=^ZDTzG(OHFih$rMjPAoG-$2tHg+x?;kPX>hT5du#H`(Z?H&P zt}}XD*)#2|aXUBdmeW$d4I^XMbG88JUgr;*dQ9?A0q*Gl*=i-VsYLoQFyRKUi7D6P zDlpz5Eo!R=lNdWi2%y>^eX@i-BZpK3+6EfyNk^Cs|^%b)qULC)N5I8Yq9ZM?T_Q@bKbe3|2i$no&8D{mF+)lLy!HRuJt#>H>F2WqEXKhv^AiW! z3dHTD4+YOZrRXotPsT_=mMhELJ)GKTb9?Kx=y}*}i)WB~>Y|mpIj`dyR?^I3_oi#5 z0^!w{LuLx+u2^1m`jVAeF=~K|-FdTa`#jc-UD3bk{n!YIt8or*&<#~CZ)#(?%<v_LpLAh|Ge3^*(sHo(6Y|5Kpr>?_WyV8y)ml?vOqANs)Ps_kK}12lM@kT+l

0Qv+w{|l~;hX<&_AX@6^@NCr9-Aow>wM1#hPB5tAaA zjM49TP4VVvn=Una!tHnl7A<47tH04%|gpZyNADA7_+Y;?0{9p`RX{uM z1F=<&kE`)%J?vuky9Lobz|HJ<>y6qHWp!4gzIKz`+26e-xwF4}n}ch$v?10T$1pw3 z55Gun)~>~Mvst`GC@tc^QO^6@cyB8kT#<4>+J`(e1UN7Cn-pTg@#6JG7T{0y_@zDM z>)~0}+_qHfC;vOofdcD479loG?E&{K>_-gvDRo{k%gi@>l_;%;li4fD>gddPucTqR z8(T?HL0@?p)Xu$Af95W2YBBpBGxA>EFx{vF5t()!DaqJ>uNS+`gCR9A3azR+0Q!vW zrsLUdotxEl48kx_1G~oRGw<&l(RnfN`W8{e!11 zjbl$G1lY`*j{*0z9>Q$SkRN`Q`R?o+0LJq;D3caraW@}OuL$cxAswm6*m&&NBWPF{ zIJb|nV0r!r@2OJL0_q)Yem}HAYkixTr3m3Haod|fG~1@}|DFB%?e1IrJGS{uR{ij8 z%Ku%*Y1a()m$BP(7W~$q%55*G3XBgDZa6bBHjyf4V`0d9z`DGQvOt?iHCuWFu%2Js z&)|ZNnN=v3t2NWNRbSDY+C?1*lTZhQPOCZ;Ecq%0yKTTc;;QJzMhy68Zum+vz_u7K zuYcg%k!FnBNHHT1_qVbv0|V>)r3@e{!5JYCF79qFq;TFa-e9<4KX-l~t-|?Ie9ROp z8I=F0=Zma_D+JnI-Mpu2j)58s>g5c=*Q9E`PYihLX0GfvC&v>#6+rr>DE+X z7@Trk*G(OfN*Iip%~lmmMbJX9>|w6MZrEvBzI#Uu zv`E)I+t}Wzt(LjA`VYO_-L@4Zetf%_ej01r&oSCsPk}W6aDY(BfEK1@0MhSe6M)A* zZUEI=naTgbfOkE)5eMGzW_IyKQ)t81Q@#!Z*ao6)GKTnUUrZMECC|T)WdRX$ zqy^;|cN_AeQcfT0FhtfF3if-*_rzks2PcEZS}a(kcxw6;)w)T3DOHGNi~DJ-lmA_R2dW79&CDr0S!mzP^&| zj&8ZY4Uqc>1o&S0Qf(!L)rRQ-Dz0|w$E|$(hVJ|Ue+zT)t@rTRGw%OWR(U;_RzW6A zH+AM;2OdvdjK&ynwN~ByIk}uKGjMMIY#>B-;dLuvHFs0L@LiT-Y?+x4`@?;5Ag+RI z%9bcFR)B2-Y9Gv*s_x4Sq!-PvR0oS-ylwFKGH+YitE_geb+lawt(iOJ zWJddYWj#oyJ&A!Zz%^11G1%5LV!Hj6tB)hjQ?KJK-rdt++`zX3?FxKLb}`q#g}aRJ z`k%RxzsdEK0oO8PvBkl;+dDmvqXs=j-NeD{@e*;dw%&m9z$VwVyLf=_>+DV(=e;g< z6ddWg#`_v5f~eQDt&I2snxI@rc1dQ%ZUb-c3eeWW$9K((PMO=SMFE#o4j}ll=__xX z;eNkf7%0^9+;@y}^z0_-%z9-yUOI=2>?=b-aKuvM^5nAxJh{h>{zMwXYX@8p;_C;sJT1}Wy z_=2uud)xnFW@x)EQ|T-P0am(^%yUUuZ<-QnMmc{ zUec4LYTwD>BHAB1&p*bgHdgg9q~3vJ9rY#}v*t^-(YVyWTgT%VBa1gMcN-r^X1j0q zV8un`_VYfe#{YR7UsU0E{m%Zr?e2^EySH{0?DleYaj9cbBrz#E7iyCYF)QuN+_XMS zGm^o0>q~AJ`I^jb6TN7a&?|updfObwG4!GBeEE~&>e%uuDAjX|m~Gn_>vC9|W214c zf~eXheGdxUFZaee?bs^2rJoYJt(}#Ym)zg?biAl3nX1{r6eCDDS zQ|6_psIkh-)x1uhQp%%_g6(g{7<^cfsuTY-8CJ{7d zxMA<;84IOxDRH-{D;8ak2 zGtOPCy{^@BFlwN50+ILKWjs6v$c-G|ui;Tg#{jBiIcbNS?ALf{EggS6aG&BFPb8dOwrJFn~4+^$A0Yi#ei}K=9*tzZQRSx!lUUOr0=JA_UNUBj0*qPrEUAE3KQflHmZg9Ba0lZ7BxOwfsT= zw)3@I_MFpS%skf*T7y z0rr29an}D=B5fiSIL9Vj(2)X7+`Co-YMMCSI&xi9UIfgEh_2Ef;U-YW~s?o zC4G?1@!>No-{G;B9C>++L5EtXH$>bp?)0(Z;2K0Cw14#0lR!N^C0B*BGmkz}OVy>Y z&55rXP;V~FPchymg&pxeYwLNprz8AplNG z?Cb&USh@>v6`xH2JIWsxmt#whahyc_cdO; zJvV`7e6}qr=j&#|yWMWrx%syKjmM?Oz22ICFM8ic0@eIIo4u2|TsDLEO^Wmz^RZ(B z$<^4~P?E?GzdO6M44L7^F7Y87F4eYR!`SS1NEZ0ny+Jm zuNMx3i9-hBvv_f#{NVuLNLkiog5Y;9gYTFC^)dz25Np$kPXpc}{gh==Pr9o0;=xTZ zUHTwJ`<$heN#CW{)4nbANv5)@zjI0);9MFtb%1W|OuwOUEo2J`(Ke|;y4FY9G0qo` zxpkx?(>mg==>IaU|I@VZpCtq9Z~Yjx))k#q(QUt`FH3u z>mv586B?J~=ZURAn+Cci53nM&*puv9ZZ799@<7al z(VlD;_~H0O+n&JoFU>tOH*>PRy`uhW>x*3fa<6Wi<0o|>Ys=~P^*$$R47;NuK-_|@J7f*4tlfi|8_?vU51lQ6^GzZyP9jn*xk0n+-supNGSF zbsNA5;0f;H>^2U7_a1=U!7;$MR)9M-yGw_;>o|*?-MF}!wyhvh0V>?dQv<#gu$nbFqp0sF3$ zNgqpj{r%7HyM+!&3h_4<-BWwWl^^D3Oo4ZDR$QNpak~cJ3efqvFe4!YW5g+qnLbbU zT;b2f+7x)JaGRQf??pV3*;A!`4_vinRA7^MEZTNe&aW=&KR(L8lPhl@lQ&?!?cE6X zbe~wrxw^7rwyWY=_kr`db=v3nhPnSyTx-Rh41Vt+Ii9G*zJuB^8) z-ks1P-PU7k5xry+v-ne+gm8v174R(+NL)_$EWA+TnDtKzn9OnJkMt8g2; zoolXev(p?G4iCT+ANMHuE{=a`uARfNcyUdstPjo7)@2UBC9~G7f*xUpy8m#I$ASX@ zcJi3-Y}u{c+mX3xy!RkuxSt=%I2%Ekc(9E5(uX_-&m(fV&5D;P&2ObTjae@(RqOl=sLK9PtYGG_Zwf@u$?o7|+3$Ga6& zi+zVL5!dICI_d8SaeXk^3xK_GYWzcRe=q8?q&w|-#z27T+yZ7PO6SNwYs$G3BhCVA=Hj?t26#~M&2il8BB~~? zWi&Zy-W zX^PL@cExUIv=vkbJLjxj=uJ6$C$v9UZjqUQ8iPUwDJqH<`Kljy>aVw(mB`yPSFL)s z*)6HFz+6|Lk6fYwChwVWVRP^%7Md7gu+AcL_i_f_8O)1;Rbz8y4A4CKxdU+1Idz`` zUtIzS-*2zY*Wdd-{(PH0kJW9q%`IHlZ+xlOi}OqQoKdcy=_a>h47!7S_7>3QA8h4% z0O}ta_Mh*4%aSh?;7@Ij@J>j@OQ8~l^LreEam<)^1mhsQH&b($@+?+2Mq~0{_-d< z!LtA8o;hLU)uVQaEDn4A+H2A*qMqJ|2<^eUc6z7oeZ7vH;Sj!5!+Ra?b2X%WoP`fL zBd*3u@dmc1{^P|9DcfpGnJJ@p`=CxeJ|0;-Dr0)Q;~HjSrLLC}Im4fgC6fr3TOTdi zEuDnf%thV%ZmfTz{=VG~1M4j%H+Z<7W2~WeO2J2V7aArpxeN=75dJ-T7YdY?y&zivEEneUEyhe6qrN|=TxSkTL-#U_PWXC3-f_9m>+=b z1&KO+y}ii$b%gGJ!4&P($HTqc2Km>e9pp3KrkGZ>cMs`&9NZ1C;o?;9{4?ve9%D?l zBWnfUCZaW_3VfT$mbk#y1Ay5yb01eTu!NXwn8yz5A6V^R?g6x&jor$P=XGLv!2)-g zUoVF-dmR%D8b|HtQ}CytvpSyZ-_*x_Xs(qlHSF{Kts2-b?&st5dj*3Y&1^MGTHU7t zZBMuNot}nU`aOVdxT$aD-{gJ22k)ghp}WGr_iY8*dR^d=^m77yw`@P|x!yM`bM||U zcyRxHGWd>rv{id4;9lzQ!LG-J?l8fTCqot?e%DUm#6-}8{2Mfk{mw%i9;BJzn*wp< zjo0Tv)8Ac7@yyuvNh`RWSFz)myz*xX@!%Z#Vb)|HQ1Goq*VAXPKYiw==U)1z|#_sH7^47d;z9?bZjhvE1;Q^B|1kHtDOf@kn;?LLvhhF|zST~eDDzF5{?Sg5vi zFD;#5&Y@A%r>Q;l_2=1L-CWi?u3_Iunq>+3=BEO@Vd08SEcYh|zM42gxO9y0CEsvlxpBuYSP9C7L-rpP91Zys9VK04>AMztdy?*!kt~q z{7M=Bm)_bB>BMRG_vOZlsBsyyvo~v>A#YcG9M#79d>5 zg76cc=y*xhTJ)PRASD%qvWC|=&QQY;AF;q%Cy%X(sl7@yk?nEbrfTk>{nA;VI?1;$E=#d?*Kj9SL+qux zf3_^Q0`Y4o83Sl+D% z8O$#qi!x(+^_l@NB{SzHf<}xm*7+KkVaD+vr#jzhd%eJDumABT*9lkcoBqeEazt%x0|<}%EgsV@wa8qrZS3dI z)p`W9X6*O_5|8uGWO4m2`1U>~2Y{GB!>9M1PAuyC zRr`{_;#2uo(|t1Le6PGK*PfaYUPNsAK0lv+eOeBt95LX(_jfr9v%Q?kpR98_vnZ1i zBW_}w6BvKd^c^{8xK8v!4c+6ymt)mQDG-MSi54%tOed3}h<+hC!v`{bz$1*k!)A=Q zNF`EgVO3QA6Wkp_VtVds1IMvX0kODS`3CVet$XfuYU<%<<{v@FwVK{Gygt1t+g*>z%lO*bn-952-8nz!Lw zk!QS*Iof)1Xa6B~2f+V^#%?6NSdJES)1F|Y>s;RDp=*`T|97kvV5_!6c!B|XvyL2! zeyvpw@3t&#kOHu2-CnZ8SigMrCHqHu$>L%hu(vN>xSbz0+i*kgr4~~&z`e>dxp8VK z%ICVDRY4h`hwAxCvKyAxyG+I1TpWZ;Ne6OJPhSXkR%gEdtg4r2f1`eGg}Ds_-UlNw zpEZ9*VB7@OJdbIJta<&sE=38J1{E7~cyrk@3)|SfrG#jj$TN=Pznv3#qCl}f18IQVKyhCb+zRV~TajGq6 zoq3 z;6J#_`s{}JeZeF{&+Q#Rob#ANL=XAe+sU9RUi_g{&p-fks{fGo3GIidTVxc#hLDQ7 z3m#$;Ehf{prOs9WfkbZ;Q7G`LnZ=1q-!nZjEztIlF4m?1Tv_qa)zkOL<@{Xg$w^&U z*pA1CBZLQ98na1InQw=)iu}9ocA0 zsYKZnjB8nB0r5Uk-OG*PeqLwsU^BOL2h}aO{+u!RHc_^3i>tcr_x_&+*(&7i0A1Hr zh)q+H-JESW|4M8C6QqNTp9IJ_loUB+g7n`SZMM-gL*b~#gz4}<3<*T2tlvpv#n)A%2x8^-^YSaU<0-Pzxt z-2w2wlJ#bm7+}vHmJQ+xn?U>K^kb5G>^GiMKU&PCyqS%wkCz5m({X9=SQ(mC9Au2P z5qD$Yy8T3h#6F?@!I-yor70hpWxn)$;-RRW!@z=X1m1@^m$!oMhyi!o^BG=rJZ3A2 zSzoZ{0PeGyVk$xhXJx)a7XaidNwf4IV%73K1<%jU*V8h)q^tM}Qjx{7YsuBj^N%7t z%?WUuJuOE(b@rQzY@ng;co)+QKV0!H`2DerinTT6%53WZ2gN$**#xpi^UKAIQBqU3 zN!>;+IU;rT!txr6;y!yq2}mC*wm#|q`xZ*l7#WpZOj z-+8QTqePugBsur>hS+Qag#?-_O05wY04xmDPTO?wF8NdZNqj+gp6|639>V1kt?-@{D- zqaKzxp3Sf}18&-(ZA5*Vg}}YQzUsR4-oGys9AKnB+;@+SX2QYlk(5af+y^at(ENsR z98ZjJ%z97Jy*En%p*VnZ#NIPt4+dSD7=HTBkzP(_r^u|hJr{3ly@GfqDBW4OuKUVc zLg@OrG5Lkq@$F_^tv9d6fV{HlMKSt2CS7Hhbxmi6xNv?CHFJL1sF1<9dFo8;^V6&K zgvC=%W#(xUcX18$USx|@j7^4!nSwf-yQM#Nw%c6O_jAm+5IfG=9&L)rm=q#3j()~K z`4j*BH}T>Z)1OWtn`hRvM4b4Am#KjT=k=dA03LNsH)dSzX^Hn%0|18^cqip_HKZ`( zcyYvse~QWWdFD|A;J!ca%ai&uuR8a}JG&`B9Pa2K48V{h&ij<#HLFZQ%*I&3aQmSv zfN}!ceqAjI!Q;9v81IzFSaB$xktZJZ$YG8JeEa&~V^$y2w!j-#rpFAL|7V`Y*Q&*s zyZv|~^|%{j^fI1rDtEIG`5DI1~&Ikm5o<2jlq(Ye6{n_8D+~;AdAT{8YCrc&|=a^_uLwXo{#>iKl5_loktqGRDht z2CSR<)!B!!st338V8Km@!!OR;Mwu3?^7*qNRibNZ3dH{}y|z}(# zGG@HlIJT;0wo{pm=1!5;dv0W z!-Lq`QaV~SDDqab60V_^-1s3}r#J^lD?7g?q3YA4Uxl%*mj2T`7lVb*vJ(ugnO##yi6z@+b zdiQ>e7;LoD0%r!QpS6aW?)q-OpC6VcP&>ZQ6AhextU6>`x&NLH4|FTHg7aX{^)pQ8 zvGV(=I)*0@gjn|X@BRDmbLb)8Nj+JF`}T3n3_M)!`F_LTy%1pm{u{VYzZrmZwl;5i zOd3c%=^-~&*nG}WE>d|}fFa-V{pyz9`~4#y{X?R{P2HbF-OT(M)9?*_9(f|H@=9+- z+ZwZXLG%3Eq?_j(#{}M60DI3b&cJ+TK1qlWnVCL?-h&BrsXO|vY#6W;AO|LAaZ7&p z+P=r$&MVnynj%u)^$=!LSM?v7P$Z-;i@ro-#9!oz+k@rWI-*Gbxy<>&)yzHpA~&Op zrDV{pSvM+hy_Bl+gG+e;av3)=-y4lQ%owD%uIPESw9EZ}$t6D4WcLBZlZ#XX3ue9p zXrGqL0@!X{&!Mnhf$^0K%W|r+sZ2xkT08YIR;aikCVUvP3w8^}n{nTljv0@e`bQ#t zraPg22If#J*Df>wdR$WyX+U~qMaj6{KQ!a<4P$H(VaB^R{_mX=ZH!(S4dH^LCgBs^ zpYE9Q{}8(qVf!mstwvtT>iph?4QCOwoI-4@9#A~Qa|V1I%XZKGT(^e}4_2Zjr6FVW z@>JKc7;kG*vKU#2uKDw8DafR-=12#jcGNuJ2EK>#a#WVu;TTMGy{ONtD!1n<()jW^r28DBR0T@m(2JoHBk_{mA4@|fYE-oa+ z$mBxihV)=duLI^mH($8Gnx+$jx_Ov05C*ylWa|=XW;DmQ3amkFO$Sp*PortWbU>zm z0N;-tWa}Tm_mB3yXVbCa!nf7^d@q!QeE+oLEB)^G#8ihBd~01DbSn7PvhO7;1}m7Z z!1tndQbRhg2k#_Q;FV0=!tpnm_4bBx zZI8p<@(Ie8fmLG_am97veb9n$M^g9wPXXPH?|*Pp-%FjO_~6X0uD5dmEO=*WkG6`d zH~{9BpW~k2XA?=2%=q?L<}fNt?@K*=E{MwAcM$tQ((FHgZv&e5>t^43TiQ0#lA(Q+ z&#vcvx%c?YA9bvN^7r+1<6fHB8axo_27T~z>t{f$xn7r+ef0Ye_jmj1Zlt=0Rj2^D z_Cq|6fir#=`lt5;zmZlL??bcHbDE33i^1u2sHaAvRCD-Us9SoZP}ARrrb6SflutT6 z#D2-o4`RoW(_RgE?b9_~-*%n|gZ_f1_){Ubh19A46kvyFTkrXQBLTjB(^>T~Ci`qj zLT!4Ea8q|w9{Ln6(8ljNWx(})s}q#=N55MR-I={}FSFN?mA~@W?p}TmKVEF^|1Blj z%X)(KmG=ks{&yg*fLvEK3x+LUNQW*?5z<7XiTuDpXN6Z0p}YPv@}Z$)coEU1esxwHO0I`h2Q)iZTqCh77t_e*8)N zgZ=u?n8$KqBkhx5xFbF7pPKiWA7i4sl5PjzGKP3?i3J}Gcn=U2J{mEG&ExYj_MT%` z$L%xmv{A}yuuJJ?yHw_{J$0=5f~(48U5mZuP^iv$j_<#>m^|D!C)o&D8p zQ=B))ZL~9Ax6N?PQxT*Jc=uUwd!aPvX&-(eusqOg;3$>o1X4S2I}v3vdYren0Xy;& zAICPk3F!-RF};h|(*73P*zH4p0Z03OkW`hH?ukyADt*r{{ zt*JZyX*EW=v8~=S=CjT#akujWpN#f2WOZ4tf37({SL?2;dCY+OGRnRk^Kn{Gr4`Gj z@!zf69AdshVCH$6&+e1!9Y!h3Wsdi@!N^6bV(p-OZm#6hKW*hfyDTG`sNe6`A z)3zGBneWi~DyG{9>8)^+Ure>Vql)BjbF4P2H+!RDp*a3dW^S~RK8)&^`F@nQ@z^4@ ztFKz5{_>q*YXO8>Vm4gJVH@0zxhyca11A$Edq2(uyqHTM?&OT~cz=v*;cLI|AeWizd-wAs0RXmcU%p=y*KjZU z@V=hpc<<$U+=wNBy#w%jy>e&A?Oyn?A3EUPsuQBd=lkXTI)J=_^Y7Rb;R|BW*|geA z>Bp0UJ#XXu-#6cHPeY)!0OWKXh#!ZwT7nOzf_Lvq$Ogm;)!Nu`h`I54mEO#sf2gc; z95_tl%E#+5@{5~=a$A+HFkU{visR))FELJ+h;=o%ql?Fi!&;9Fb3OMLD_qgxjRd!J zPGQC(ZDvipxP>L{OJT%?mir{&M&405K76clgum!K|8P-f?=7{ZxGOpemvoSCBPJZ+ z8+|M?f`mJ|xO+Nc$YB8COk>k;(7rKSNi8sYIu=1T-v{6gkbUZ7rj>2@`M{E|>U3r&E|eQA_#pM4neXcu1lV9X zKD?y6h4*Fbml~8GZD_ZR|88s^qun!%$LHg9J}%Z%Q0>Ww+tv6VuI1ueA&cbJdg6}a zUh?ktnl`ZFcP{9E8%uI$e^Kixn$PRZ-N^f3yl$%&TZqZ74Jzo-iZAo~3ZWtMIt>`- z7fma~)|MZ)=NwAoE(>XWBf75!1s&QPm+Dhhr<0xm_RENr0 z(1ZcFc6|Rt>uN2#o!grR9jA-gOt#Kis|Dk2v0aH=(*VN7?Zl`I` zeBH!ydqaL=YG(r2Ymez>H+6MwRfD_vgER))_7>*{&=%>tk;4d004TNq+ia`EZTA3p zwW>cadP@B_Xvc- z;1bUF3D?vG`qS|r9jq!q2JnShZ1nxkHQ=~=b}^R6KHS4MxU2Iyb^phEQ`;X(+mZJh z`z2MN9d(S^*6;6qxuhP!|Gsg3zt;e=_IlVD46}QGEUB?C2E3)l766I1?gujl2L zO*RR0Mc0oU*u}663wPO<6e=2j4 zSrKsmGK^fZW;%w@zVd03FlbmV!y{jIgog``PO8Gha#zsPkC)b}-&riy86>6Yw|2|AHX%9#&|Zq2U+2E67B-hCRx9rw=co#mH<@nqXRCC4&v6(%U z<9uRYZrAIJ>l#=_N~Bh5S?V0eh(Vo!ZGeUjc+l$x8;P_{P>qJL8dzrrJ_dldQUN(K zXCm2kyhm^g?FZ&J~AY0RtSs#UcZeYlJ@!U)CZZB3g*itG`UIFr@%o%Vs^v||BTK|1s zG2q#%dG=Q8C5p!x=!WJDk1GxuK&}Qx9N-(ak|HSEk`OD&`Z=6ACfIT*O6s;;6}5C@ zzcDU5X$P~74YD!roA)CHZFp2R3^)j*JT~UM;$!jpRKvhmDsNDPjI#LJZQ^RMUW(w_ z{1tM`_&))i$04Jz@Y-!)do2E~d3ncx|IO_#2K+B*bN>(yz7GjtGay&6ZD9H&mj@eu>iat{ zPA)TMdsX(`Y>lB7s!eDgc6N~K+l;anILEb)h2Hax5 zp1KW-N5$N%I{b?oR=?<@bJ>X5gC*!amY*H#e}2g3Hpj z4jg}U!2LZA^15 za%H|?I!*@*28HH_Ql~&tru*YodG8wtfW7nZRR`gS=?3^#;GiHw%K>)mzjrx)+a>~T zGT_$z54KV$Qj269gzxu$vjli<8S_}b@q2pX?cFab*9yY4T){J9fCGFt06St--+R33 zdoO>VBEH#ThS84Hajp1IuLWQo_FifLXaJga#`Zl2$oG8nLk7mWpTYS(2j8gw(fbo! z|8y^ZhYF^_P^WvjPR+VcfA{jWgJsvH)qS7O_wju>=DTL#WrB0fM1>w}V7_VdqnE=z zO?N4-n?X2kiM!d`#06aDB}G{q`Y{Uyae)2--$%1Qgxm=9N9?~d=fdKBXx8J*@moT? zxw7Gybb06Hc3qw_FD8+;{I}xj>y?6qTmmG;6_{Kg~f$mWM&-YV7{%d)kZKO&ga9V_fzl3 zodMUFaP;+ZP`W@p~|K#I;+u`gw*l;Zz%lLmR zvj7#FU4-GR5teMP;=-X>C3p5$wYwYqS2BpCwJs&)5l%7}aY!@a2F?lCb2G19T<`*@ zu0;HKZRQYt18lXr-{>qL*8}j@vcVe$5Km)fz&RCJxSJ1B;>m}Rge~gyV^~MbPLB2F z4>DF@K2$JmMzhp`t5P?$ByC5Wl1QW*LnjgO-mufM3g#QCpJA)A0K07<{2&XQoSl_z z@fqh}xmUHDxt2k_R83j&Pae;OT%I`II#Wm4a7T}sZ!iDGyG@0IO{5UJvbx#8)SwKkcer7y()sIJ^rwpJ-p%XZU**9z$8wJzOBt-U z18Y?#*1_>6raQtrxATBn&D_ej$6&n>8>$1wunPP9;_OjTJl~ z*EX2Dw4q;MHgZdas9d0`RhQPb-c!sj$K0|T`M%V7t?_%{wr+^=4p#dX_v%f%Dkhc; zOmVQsLKjG@_uINS8QLKias{I175<@YE2|7fTlcY>`3Jg2{Vwd-d$a?lO!)`@e(w2h zZ!hW-sAv1&$D`b;-Ycij@(=gQ(ymuhTx%Nx0JnJk+&DGvOM9O_c79L1kG%n^ds_w0 zODL%$Y{BkVk16LL*=G#O>^9LL(p6q>0XiS6zj6D$-qcLJ0p+c+a!==c_N=Jh<{A%g zizYM#%IdI(bRRe$dF9^Ej5r&;bD*HEG2$aV|Dl-f@3sFdW4!m)(`2LqZ!E8(*&K#r zDHy?wPs>NI^ECzdmbq$w^V-hmQ7@)-GPm@#yQI(ZhBwCHO+Qe12(*cZHPJf<=`K~Y zZM}g3hhc(xxum#oU$Mnh{`JqP?t?DK+^D3LErXxhm`*0Owd*%$dcJbDie>28* z?*B*frb|JDv)lRkS>uK-wbsm8j8h8W=3L=wZ8}vQ7lmuO)al9EZ5Uk9VPM0gK4Gj*u3;1qq@Z8>d>>v?)1LJjl5gr}-%Mowo zaqTfX$rUcga1k=_eVAOt%~Oyyc7oJm`XLYf1;01u+}&OtfP0k}f4*^mek$FWT+{{o zZL`0pS!@Js_Mat#ZMbn&G2my~X=No+1>gT7Sr7%_Tg|{UnDS>SW~OcbS=sk2OPx#n zsL&Bdxdixz!ue0%WU#HkTl;r_@2`KZ-~3C-LTs^pk(Z%xjvW_S*<1%GKl>m>{{X~w zKx5$hNpU;J-zzCVaqXgOKe%WBl|X90jt!71I(!1&ukvv^h*I}L1;o!}9j=J#Zf?1} z)h?xSFON24EP1>i6|k*+&{w^0)A-nR@S#fP6j%&^x*K!}wfue z?Wp_n-#zwM;Cm~#V=OtI37>2N8;@sTi;hY3jD?$rtEFqE0DTs5&HA|>P#B0!qN%+t zs`Pl?^ z{|6uci;w?DkvaIz4J0Y!e=WDa(Ou*v@)%`M?h5JHzO%o*-QD%SpfO9mxz1d*oM*Y( zSu;9P+H!VrK|Dw~2aLaBe-~#^UFOM^p&pLLiqY2ngVytjHKDpiU@c#DfN)#dOyx#!UBA-#Xq>I=vJ9b($od*IKZeV%o3UnfAW$HC(z9{abXn*Oky z?!ntR8!j@>F|I;wDgbG@!{4Nc3&;B`LTEfrT>ReY#3RHeuSj@u+nI5=3t1W3q?mC9 z-wL|T9sN?~!faA2qpN`l4<-DLGJ1%$`ThHaz6b47bV3&~;jgFdM^nE79TE|#v`HSz zd_1T9n)ZQ~0YnN&=Q#1@vSbFSeAU}+l)0I^y3}mAPM%l7Y)^|A8$i1D`Q!u_tazA@ zJI+Zh9l~r#SEhE>=+0y%^*Vj3xuoBuV8(4JsdxaMfoU$|EU@0E^uAg-A#!p;>A>mq zdMsSjL+eKgna{64R|Eh=)1ywhU}babZ8AQ)SkB4An_A z7IlU!jB%V#Kyf(vigH*s$MYng_4JDZ!iJrUk>fkZhD+34`O;qGzHS0+zWnoncMd3< z>L{?*rFJUXp%|;Z%HZ0-_(3@}z`8NuC_gB1-Y{jbBewfo%%%Ly>#CvCeC9bl&n&jP z)IV_W{f&e5=je=|<&M`)$uot^E1(ylF9LG$XG}Hw4wD|1r5= z80}>S?K;@ddMZ|91CJNE9O=U}*4qX$PsH-9!i;5*G}FduUCqDpSUzJdUP;7>hxpE` z+?Ec^OrU3Pp5NP+dl_)+wodjYXIH>_zx8V~m-ed?-_7~FVaVUDpc}h(0JL{^8;05?*mv3W)@688R3P=H>jbZjW z!G3$ad)_Wg>k=^@F5=%2AXWgZfA?@NFmd3=-{boCQq>kdyZ(LWAR6FXkI_H7uYL|p zNZ>MgUO?^UNYazTeI`9t{*1K7)E|3&GWwNJIK`?-z_0J5bLP38Vy`}|th5DThsB%CyyalkZsI42m`Xf;|CIM>FV_dL&g^sYs+n|bG^eHx`(lquAfSZ@IQ>l zRG=+}bE{;!J-V%b3chV@H)PEq%XGs6Y6h;QYgzc$2f}|!O}%D-JmfZyW1r^)kGApv zn#@M3_@HrbEYZOe9Do!5YI~Z{(dQyf#oZ%kP;1~hovF$C^_28~P-r?`R zg(bPOznJyoC`hf4as)E_J&)n$SZ_SEsWbZ~Rof`THO9p9T zz=x7v40hxvsmipSl8=Akv_Jt}{3JI(8C$8gH9p$++)HCh)QBJ4H2%TL$@iJz{ zPyJfe9sSKo1}!^N*9%v3fNHF(K^;`Vx#s#-`-6jXCc48o-rI|`gZka+!a6;qKIrKE*<>GuR|w}I~_Eexj_Q??sS2J*$iFhGN%uG-bK zzWcfWwjV_zzI)g6)n2>HIh1_c{N0t2^6&SaicA5yg7KX&x1xuom+H=~XBnRPa| zT4uQ2IDT7~7Srp>w4M8XofF*ZNOl*m6uuQ?T5R$n;-XuY zxMg>(Jt=@!t#zpe%d1Rr`tSw)W^-=ce2-)A&11A%CK%T@tEboWoim0Xs#6tEOUyen z(G|%~taQut!<|06QcnQ&L#krZgQcbu2dHoE^>_Z6`D0Yx7gAXMiba>XmqG7)jNhkw zHE_(m-76_+)ZoH?zlmpWUKn)orMn!e>Z<)?eEdI<~v?e-Y)IG;Z=v)J|NzX#L4 zcl%_kW7J2W6J zl#&cc{HiS4RA$H_uHtR$t8z^W$}d5Es}Uv6toZjF8?K+}aR%m=JA4A+moFE=lyje? z_R9Mfq%PC#7cz3hQ>974Z1}-)0+$zy87s~nVrmM)FD|66gFcrl!j`_gnAczWxhn0J z@7A+WGuSyYp=?k@H$w_j86!5_bY^UyhsAxG#wfpAXMGzCa=3}rINQe>IW~@3m0aSm zHk*tA@x#J`W1MEoL+Os;ius_~c6vynuV>4jG2*{L{0_c*=(Oc_EK;T4HBWOL*B*^U z%q(zgwcVEW8S(mbJpN~JpNHf9@qgfH2G%K6>~_R?i*%W79E<$me7xM*U)8=~AaQ43 zYIAq;`Ul)TfW1@&EY>h@YwQ4St0Dad8I8&6NScN=0{4bVe4pJ#~UAriK{r$knL^f3X1BC68y=ZJj7p!K}9e zaV^lCp>SJ6%$mBkF$k}0DV0zR1`xU#?sdxy#yPilo70;a?hv_QK{Z-`<*tCg_jce) zhyfE)iE%Di0KM4OSinmfuQjgbzf6Gpt1%0#Df0pmw^T~%`WC| zyg&i?+gskNtV+zW+$^jXuBC75>(Np5q6OSiT+5N-2r0r~47y>#GSdK`Q)>Z)Kqw8M zfU%3YP z+Sxr{Xf;0bhKUWS4=ekLvHw8pIOjdhF;ygj9%ZL8Ga7we~^r_z9JNLZec#mc;pt1W}1slHW_X-o9#)5a=8vx>9#?>N! z_+CyMsfH9~mhoaL|9(OJ1w`B2Dwp*A>`kTp0n3f(x@O-%8na;CyMhKo5EaZbMq5U#-5$PV3cn#WMalAq>wv#a{LjLTLM z>BvBmv}3s1Mjs3Mx>_?fJRioI{NeSX)1IIASZZ?VXwFcx@%UW+f7=is-!5R&_&>0^ zUv}X4dZ-QX-EJpmx&gZ7&i>~17x=N<8C&gE4zab=)Zv-3^2~3F8`&IBBC|H;U|fV! z`{f7P6BsznowBPq+2BJ0+pRAH-w!~o+s`x}=VUF}Er-Ck6gE6!zcKGs{N94dc#8D+($CV_Z>x^d-chS6t3pKyeh|k)dAoz&IOCq zVigPC4Ae|$O_^?e&R&zUxvKL{12oR(4M0A_<0`UtH4RL6eE@cqs=-)uWDN4H%-79j+yVW)?<7EVF!f#+ z=dRl9fO%FSui~$1^5UM%KXZK6_T%_{lV%@SduH8dG3*_dy~phH`M{EMjJX|;-v_m4 zzk^i&z8W&TnE$2``q2A*L#4lZ7Tl17Ts0H;d9+8)S1_@q83I}b^-*pg5VL2>$N;=m zPM_+%g*rMh+-Z6T8B^{IdCQE$wn;@jfVswrPoH^tox%9d^p1RUm8$D9o8F=6s(coG z$3FL^0&-PKkI6-t$A@#ia0A>Tl{~r$w5?N=BLfENYJae|zqVAB>aPC%rN6t?b=}vs z{?9%Mp!O9_2>(z8gHPvsnYB%{U*kz;WyCRY{ldYw_MOxJv8{F?jV) z9On0*PZm>^b>#lmq1&NI0CkMhVAyX43cR&pB%;Pgu7kHTP(20be;jXNy=k5G%|v=o zseocho5tL|@%W}we$n_pNvFx?vYX3E>}%@{Mm#t%;hMp{!E;=mBrJ>%I*A^Mc0H_Z`dHx=Ha$uF*}&gSqZQ~1s(al z^GlK1m{}@m#<@Va7m^O=#mxw>4bIy$r8 zYMOU5Qij23R+@n|?3)hohWmMr6|V)@)YuhW4esZ$T&7uvzm)kHz`*&FJWH?Zkz&ke z?~MVU_N%xWyvM z+V_Gs#Rhm^z3%^}Y%u7l!>YkFf$)W=>rn&Xe(1S$;c5uDh6f9d_+*@v(tLNi#7p06~DG*3CLx zxbKzN>#30dyvjg-_*l+iZBF~|eMBP}OoNFJ;5n7+aRA$?aX;tl0niqy=$rtHDyS}xByCfu*J&xj|fz!i--D#13Y z6C6Utf;-Sgh89gz=AM5rjG2r9Ur7wK)=8UH6f(Pzg0V6{^{{s#zej|y-u za_4sbA7FO?{4Zpf?y|>?T+0gpFAtbk`U2I&&0w6%YFBoCS;#HNdeOjue30(Ti2=I- z>!UHieBR&WPaIfLl1$q^^5^_EtK!1x286qj1Ou*2Hvl$N&SOSZZ6#f>t!(!hyO=Bc zy_H?a(E$Y;?)JN93j@@lbWStD9qkgc$l)zg#d|9|{Zsq0bJuaqbcgaO{Kk81_ZQj> zcrT?^I~R%pmnQX!$V^pM4T|Sr1u!t-SUQ05-}^?DmsLD1%*15$^1A|rE7PF^tzd$I z#A!4J7X0n*!k85W+d7b%39EIC*>8YwWwmzRR37KybB;J~jrlhAD~*vVt5P_}Ki63V zNfn88X=7mr*$;hS{8nVnax>U=P+i4v`(V5Z7xkU3lDTdp1{E>i71Qni+>kptj&A`4 zKs4&GXc|<>-@lLQ6~n3b>i&jY++i&cYsvw*4J?01m791QU(Cmd6kyx3!2q@&DdmIi zXHW_78gA;}*{a%Wzx?S&w zv1-RAK0N+=)5JMzF5adfTqhtAEB=t{ zSt!nYAg{oDy%-~P87re#?`LPn**(3D4PR5gAW{H&>n((1aA?JpJ9Dn4%=rKN^*Z-O zlDi=lXJhwt2)4yJ_I={{PohD$T_AlJbWyrBv{B1>&vwP@&oG zfT+d=-BOXAbDA<8!;F1`!R@S9=v`>pZYf(mG*8PA18!rrX|Q&BnJTc3@tkog z(?5sP{!=T@9+w4}6KWkKG=*|3d2b@ZKl?`W_DI91s$UODGs`VaNN7s)V^Xs$ZEPHy zV_!gG0^@Or&J8%|PR;nAhuGwjo|?~Jo#BoR|C`&L3i@YktWtVywxT>pQ)pT7A2q5a zrx2@W#Q3+LI_u+SuCuVs;lZs3|zDOxq*iG2&DbICLR`z~UGT;BT_tvKig1OCIy9P@4J z=DyV9kjJ~VUJRebd+*it0C4tvkOlDlJ=N){n%kytGx*lQqcYu*dS|D^dM_r1TmMWQ zSn|4#MzNFzeCxWV6tltXTZyH$^&kWBn=yr0k}*>c=mIIOQ)9d%7F%i{uFEY}R+G%6 zsbS#0@B1G}nIL&EG1NHD)W>g9rSu$%5t&mcqY6We#cxX^+jT--}@w*5l^W_u> zwrl(@@4rXau0UAwl3qd^cZ{zKa3I zw_TL2jSW}vOj}BBhr^E0Eg&EGx&iE$d(HmKF~B#r4NXt|jfFLO-!X&ll1p}Up|;d2u$9j<`0B|>;G5eX>r6Uo!-jSe!ZOGCcsxbBnR83AL@|%+ zH;w<r`4pZRrZ9r96w3O&`jmasIXBx^oxw-g{=4E^Am<=Q03&G}d)z=l7S-P+Z72 z+90$2NAWt?WS#v(T(ivIJoMo<#r~-IK6`2V%h}?;X_i&%s6zUwpC9U+YMKxH&B4NA zyODCt*l+2$oO7IaYX>=%#~DeYTWSx_;cf9!KI?2oEO@Axb9}d?nLBwHK)D->tVP)} zAICXG(a}#;s~B&#mib;x4EGug_XM&RFUo#ny!Rc@HA?4daOE@hdn(j;JQi$YRviN) zP!$kd>zVcwh}(-n+9Tij+5z`1B5Oi|K;|at#ou4)b&Qc}3=FtlhcP@mzCGr2ViEW4 zKAYQ3j$JioydUy4z$H|3c2oRjJ}7@i&MhqNULLXAY7OW{T@2iVd?N+6t(#g@4NJsw zTP&-m25T)CZ=?>BzO`}1Jy%~d2SmwPY+$X_9H;eqf@#(SxgZC~{!p{E>=que*55gk z>u%iu)3>t84HI2m3qW&cY3J5%`PNVU zNt7K|KwV!N%D(kFxYloJq5ndrT~J7=6^s?Ti(J zUwuEkPLmIM-`$6t100h={5ygoKdYI;lLG>63doUPJZzJA zn?Ia-?02N408zur==p~?i(Q{jvT+`9op4)|+xmTfXN(Y8YGcJc^u^9Um93{Tc;&z? zy~l#{WFuRb5tsUVWJPpyPbal>&PWmFap7${YGAT2ecg<_rHu6^Ax}HT|IvNhmutD+ zTST9O{s=DUl{-4cg(KuDT+vk*<%Or>^zbY!6;vyTKHHzh886oX*26troakN_<@6|% ze*8Gt@L<3_9vnjhiw~EQE1ccU%~jn)+vwz<(e858aR1~Ga9jRM#8h< z9Vlfx##^WL$I$YBGFH2U3i4Pl%0#O4WnB#Jg^^F(+Tj5*BiFGE)`z?}7Njj33pgJ5 z1T`497H=De%V+kDbXi|8{tqQ{%fjMKHf`(XGawL==1lzxx!KyoYf!hGnsbF|Ltg z&a(|;?TRj>Qci70zHcwn7f?E)`0ZJ{Wr^5s%l|!{?a24(tRZF&TVc2E2eWgfBA6kb z`}+{}Qw6Zi4$Ja{Ue@Nyj|%EkNK>`bsHepj`Arn-A{AQZuUFVP8{IdK=#uD z#sS0wq)S#}WfwRd5ZK?7`a3da+lAI5A1*C*fMY^zgu3_1{~QAsb34x?7HdeF-Wt)8-s7BTa;xnaP8px8achMob`5AM*%jNZcG9g z>#gO}p91Z-z8@*PA-JZ0mcRR9VZPbDT$v}`))-BT>(&7=0dEYDbwK@|pP4Pc2RF`Y zqmqE(%gW{NJ2Ah1_Ivbg2y%sXe z71Rc69n-xiQveF^y^e1j{sSm3s22?K4uI=CzjOP#f@^L#&#yl(om&Og*k=cJ$!1#x z(-jcc^VHrUw%xtmuI(bqMxgKK9^3h!fF1*}?bhwG!P5IN^V*7^(_S2xe@5S5FzRH^ z{WNd4=Vx!PvG1KH0taElb7D{Cb6{q#JtzL(USrKEw)c7Anc?w2$NLYUeStK022ikN zWWzlcJlxWmgZz%XOI;|3<~83JwtNs!OpEuwoR)mI3B*yJVI!yYyA02keQVzg*mvSl z!+Cs%zPIXq1MsgQF}%P29lKkn{$2Z6a)c4=H-y>%xLus>ZX2wm=|B~x{4|3Rzn=l( z@l8g(`x1^5-*$fUk#3Rz8o!@{6;~|~SO>NT@Xa<1!fXK8m{MfL@+&^Zea|#V;07Pi)(sO zVE)zqL+tCFUa+PaxRBR-;Q`$oDT-08FFeefZ1|CUC}0arw(NV18E>kKHpGMv=hW3* zi2`~|HP3e^sAiJW8*b}IrNw@)`cw3>I0NQf%)H+96in~e%jYF>cuScT`PjCT-(bT7 zcms6fL;N7-+ef{z+xHYelF`0w2@ zwHPc~y;~`!GG!{UC5C&9E2BF(0Jeke0OrYbAH>EdEhgd{55_D&Zu`sNAcirdqX6$#ycQc?bI#fg7%F4obYmD)h)ZLpF zD}TLP2OzIMPS#}2&4t!H7cM%KgRq({sG4u27Nd}wD4cVVMo~4Yn4>L4yk}lp#DD6w zdIuY<*Xa5>){>h-@m|#NnTmaZ}y*2RP z*zR^ZWX{*0D=Uv<@04r5KSlOqx7$6SalJD0WZkdlebOyI2M>lA^)Bu_Oqcms5bV*T zLbq3s2nXG<60zj^TzwAJe0olp>;q+<3eU<0Lr-HKd%Qd6@otRu_>O6=`_r?jd6g`P zxB2{nXriB%d>34u-3AaZEILKnm@&bH++q-rqK~vsA_|%3D<3@n{tZ-kUTb_)Kk<7y zmqW0PF6o)FOuUr{&hN$muf~bH2^;R9JV5vq^X2^zgC7ie2hd}l&5WkCbQ7^Qv~Pck z0p`DOp!sbdYfkMGu-{w170>oTfbAw}JG(NomdZ??Yos&70QvmCHsguC%_<=GOeP1B zrtAsW?#76}i2?d2Z|Yy9F3bQs1YCQo{VR&N`D)L=vH%D4{S~fuH^0mr4+e_F6R4dIwg|Sl zE-@i-V$kwobbbO6m1 zCDs7B0_y`C^w;KsA5TiUztzH8=|=(L0O9CtEQzZ5{M(jd3@g5|2H-u_m;!HWfSajc zG`F{!coJr(>PzM>i=m)PF*q_Q-naW8KzyG0_@Sh$BZ(Sx5&^`qyqL#(0N(1Fi8jmy zj6&6%V4EOYRfjt@bMvw2>;%(=+||*4tsP_s6my5=R~HDhPCyN&9)0q-W!E zwrA-mQDyC4OTHK{f}^cPbN&0W!Lz zZ^iq6=hSXA?%QA87>x4)G=6(Tuub(My8Pl1H{OA84kFIe>C?0!&X(!P?)Czdol!ac zUiBRMUhapQx~AKQegM@K(qX}dt2i6xU8K#vZ0?SZ_GWH>-Vb2>j|(6ivEUj;-`?ah`(xmAA8k%1*$7Lnefam6X{-+^x*uV^`7bg=c8w%_Vuza zxSDJut!)78=P#wdi8`xRCvA0ua4_#h+#2+YUue0-F>h2tUpSW8-`)R*SL#%H0J6}% z?*aK_wjr|KfP1`nCE0lg-;G233c~;6?5hiUm_BssiZ03gOx-#tUJ$kid~Bb;Y^$C>@3W7=2(I;qk2mbqv-+G9 zkpEfL&0kq{jd~XG-iNK64GlxTnU>7sqoNQj_p6BahJgiF^ATcLj5;GG%fUDOzMizY z?ryI3r2f!IcMbKEww*WPZ|Zs~owIHy0wabvGiT7F+}+RrR_rg2>V2Yn9j5F!&`|cL zaK%et4yOB21=;MFu;b!@{2?xX%iYS+$zdK=c81ceJ=_4_n=sz<%nuJX8w4+lxNis3 zKNSbmP}=?G-d63n1)aiJZ|CU(e3t;<0NWtG(Ln@wA4P@k3frUe-$hQ{Uq!IUT{FKQ zV!g#Yt(Z-nVA5$&RoO8=t>x}gE*)-XtoM8Ma*e^xd8#Z&d?-8rV7e7x6MVbS+F5km z&#Ys!S=YC>aKjbRG_&Tin{K^UU4^;cw>_7s_#D&ayxcB*?DctDe;zTqch0NFor9X& zZQs0a*nZ1OCxS+x_|5KCijUD1T!qg7$ie280FwZXa0f@(ZX5-McVsF7xWBwul=B@yA+HQYMUT3%6*Q~Z{i-4Xe*4@x;bH9uA#kO|0vY6+8 zF}S*;90L&ki~a-L)XC^`@IlX)*O1qI(N3f6mfWx1Zsj>X5Nx;(kT6#KT*3xEpSQms zMBaS7IT+&b!4SQGff5bI73iZ7g41>q)n!RvhK-P4~=J=lI7 zVEn0d_U4J=fqFgY+c0l9?*Rx11>Da)cZ==gW~|2&EZo32{_KhDD1S(IW!|G!imlGr3*H$!L>M}&BEtyAo) z{m0o?06ti{pN~(X3mq046#}Q~tKP>{#EX%x;0*@1ef2wEI+KO6)wEnrz+JyF-Ag>x zlWFlIH|^URvweh*(y9V({$Br&DL+Wgj;}VA&+~(IG;hxo5vx4Kg#*ilM|@9`-~70) zS{;w^i3%yS@m%7F4y~%6^EiRhpZ!0tH&oF5!+%&Ck$*WZjmkcb3NoAvSF03bV;N$+ zpKku)k_CS%%P|kvuXHni9YSlj+C6c0Jj}s#w4xs4{iN0dNO!;;Zsd&dPCHnbKe24U z@gtx|%9B?Cx)HnP@!pSX=Yn~>b5x(Kw{03aDi$i|zOT5(Zz9$kotdX|cjS*-Q;qMA z_1@`u-(1hPqJyO!S9X#<-jA{X-9JsOL)J0qbLVaPWoqn6FezZY0kn}iOx@K9{*(2- zTRV#EKYon;dk6Dl1>qhGIn@~N?}yyopTu1gwr^8o!Xp)sgY2nwpzjR1e!Vlk-+)XC zDMu%IQT%M*(zRSW@gCD1F0OQkEqB^|mhkP4tpiBFf2jb@HS<*1whFux7<~?~{yF~U0m2w_tZ~r_wBaUg;T}%R>A){kx!on3lr7m- z0kZ&*$pQy5ba(IA*(8hsfp~)H0P>vQZ70~>lMS#2(0Wnp1Jq6&$eRm(xo9A^$hrAn zDvm{P>;GN!Ain5-QU?q;_J6T!>DqpqZtc69INt9A-VFfvxPN}X;y7P&vtRREc^`J$ zJK=wmyiGNZ9(8^GcGE0q@4XD*d~WghpW_+u`2gPho6|ZL+X8T(_u$;$1B5o5*Y`r* z;FrW~<_+hEl=mDu8cgkYBK=RO zrt9D3Lr~uU-U`gU9ry`N<5q18*dAcpA9^oyEcn0#&Rvi>J*zO_n;<-ZcxK%QH+0o3 zf&D4i@5jjA5p5z|&KVw_BBhV&^NDtq^)f!(ss|d@yXyIZL5~G>V6NM8P}y+r2b@^6 z=`}z2iGDktNc397e^&+c()u1TeKYqr-bfu6Y2=BIe(OJML~ z%>}#)9>~KR@fEqB#K}|Jqx_nXLp6PgTmJA?&U}RJg;|xhO|kwxmtA{&_hg-jnv1Gg z6ILUzt_*nF7!3DO9?ueJb0qSGubXQ8HyG}ff_0wMRLk*YREFDnLp)HHzmyd(BZs8b zQBlNtBgKWs4?S;j;B;Z~bYd~$>S@M~E2FLI=DMB}3XwdEy2*k^9!*y}m%q0+RKa*d zNbRY(phHXz4PgqcT~)Pn1>7)gm>nz!;J*F3y|bFz`{2N`VNN?iBW>|donm#SBm2>E zg#OvVwRaBCflyU*&OQ?H8PDB4*QL7o!>x#cdso>4#CgN8>>a;{=3+%|(GhZm+QDa# zsl>o;fVIGXKgEx!X*~Wf;s8-bFin-#rls@)S6C<8K#k<^D|@!&YEH%S z4utI2^I;k%GHq^=9_gLcGJ@~iX$Yse?a6`2TJN=0oI0y03^+xs+$~(#Yp)*&2Mi?l zyC<%~fmSjvHm^xR5kS{DuT|ZVKlg(#uK0aB#J+Afp)>+Af@wduiwcOnT!3O(0*yMq zz&sa;y(TM8rkfy>+Yz8D7|#7(Yy$Dz=S2g`yCz^;fcV8l+Xv6VPjk1OJDJk)x&ZJM ztaI=|uk{yeg9{0gcWrZj!gLp@@2hTb#pg2XDf91x5Es?ue>WKMtyu-r###gb8#AveDlqTgZ%C4solM?Nz27u-SaO;boWoyLBtknZ!( zt}8$%f$+K!9Z;OI{@8JcWeI$F6r(iDE%oIQ*DLezabgeB>(?_{{qkqhRVgS2RLPD;n>K3vbeELtvgM<@I3tHgyIjpXh5J*1GD zyPO}C2FBl5vfmqa(q`Yx+y8CpgLzOJa2Q6^G2gkq{n*x-#CE$yuLAdg47jVqz7=&? z)_rKn6uf@B758PU3f#P_9U|}Wyl-h>(hU$6og~!r+2~w#;%Yy%WlX__XlyqWbqkfv z@z1>gBOhAaAwl>r0>Zl-w_J`6BiZj{a6VNROlO2X)%@M)j4I%U$Po?Yzy8|CfyatY zog9K|=qw}N+m98!>qnt#z7?vEk*0_EtJigc9!1>s=Ypx@|pEZY9*?+W-uVApCq#y|*aG{+REa0DVtf*&UFx z`gsM_1lW9rbFe9ncRmbC`L<^z%LO>ta{i>!Wa}dt-WKS(Z<%)L# z(9iMTtJe2<71>_^#4}`X5M`r?txrj8JnQR-@3{l&Q_5k@jDE!t-S?*{PSTR$G0cKsz?9jChL!f065(9mP5dUidcrxN%C?^p^^%<1WYu=JS{Bq@NGy z8y{H!Y)nz_|9W+uIU=3;#z*+r{D<$o1Mb7NJ(+Cg)W9U!@GyvtT)duopDAmM_(hBY zryF`~TpOu6N(}dNxR`sR_EciLW272}#xa5On>r#+5w$c5tVJ0B`3SZ*;>4{s)F&3; z`k;=eznb6qOoI}QJJUCdz`(~WtLe~i4|P!sM_iCJZfuvp|jx}L+n6Bp2P*4Qr{%RSCsN3LKp zUfAw)Y!7#H-;aQ9xSOl1Ib*w#K1mtA&Yjl!6i=V`8WT;Ibo`fqg!z(9Y)=@(04ts9 zd8Gcj{kaDzh$m(WD?iWAjpb)*t|W2;SeJ;shU+x`^KHX@+6Bcvx9i`zJ@krp14t^+ z4a@jvVZ?WJ-9-hb1nC|#EzC4*CjjS#9IpeH1g<7^F8V2s`hg~^rf^Zq=@PUeP;NvD&c3Cb|V!se2 z_CdVOJt+c|Q+1uH_Np1ccfi53wf8t(#$$!oIk)sWNK6vv1?M8g(B~2L&?E%7-yj}RI*mZbEdGqo^jS(jh zhy5{Dj`87GPcJO8;RN3>*D85vn}&Aok!2gm_EGI&h_azu@HXmsnT1>Wj}_EYG?ZW* zB5jy5H7MG7fbqxD9-bU*o>Jxmw+hHzA)S9)Sy{*UrwY8o)jaKWq%aG6`nu%@e;v%Y zv*9Ebp0(}~#7nU<`&qg(A?1{g-))cdLETdqh3amW2Tp;ke7X`ni?{M2oAyB^)Ttww;Z z>o)u9c0>O^nDb)N|91*Yc0c)eVB1kpfL?dFy3J78*yJk+|97{q0DQ2H`L;pjoC&sv z819mfckH9IbYKpaoqV1eA046x$x372FJ9=|V>soVl+0@3%Pn~(-&M7 z?_4jo);><^jxz#t*imfbuIN$EKV+*Vb#pzTIsmYFa@KNsn{9k(VGgW=<@OKlaUJ=@ z$Ju``YaU5}=|efHt7{(D5B;CzcmRVye7|fA6k~hCAp&b1Dv!qMCdG3!OlY9sR{lCz zqFbRhig>C_ITnpvO+7Z)NlXu{39E@v8^AZ*(RUt;EBZV_{_W$<^ErusTv_#`t>=h3 zIs#h}mzJ))Dz5gZreUFh;U)vFsl@=&sUC~Y3x4l|-X<9LeolaJkG+eyJBX=GKTXb3 zWYh4IC3^wEG1Kxzogj@_ z9EH@-vCP6D&KtI`alk5MM4C$Is$V4*ldN_MkMCO-&*`)K;X=DVd2FYvy9(0b8)#jN69jSq=?+Za|RCYW_49JNAvLDWoRP5Z$E7Ea!T0fyA zTT_(oVo^J;pWn3`LBGedUkK~2Zu4;t8h1ZkEZ-xV{vCMlGv5AoyO$oaz~^8g9h!o0 z6@7yNxTp7qdV}yBdz*tcnOg<*K#;(^CNhM z7mT{5@5^`QG^R9)v^|RRJ`b?{*6Ls&nQ;yz>a^}EQkl(cIKPJwq@)%GK9#@9`B6*b zp4IOzUC`l~gn1Xg{5XXuX4}r^Im$|9wt3mxgb$So=lB23`>mP@Zg7*h^rZSLwzX~jxA$P{G!Mv5}lNxbVR$W#S= z{t#hA?#P;JjWXKGkkbgv{Uam?>y}r;FAo?-irX0P9T)dJ;<=A2i@lWV+wIWmhnv&E z@PYoPx#|4#;nZ?{Bkjf9;c&4vi58w95bjk_1nRl4#=;+9!V+Xf$cXN&PsONFw=ay-e61?p7 z>6u`f?#sbCXUw{C&BqM)TTc}R)#>wvZ)CU%!{}=6fLmBju+tqe zoNcv|AkXjB0)tAI=x$#3t+v2GlWn!lRasqQw3#M~)19cZzF`Mgzh1g-J+0jeR>yR1 zTDKi<>hpZZAObDd?^>n^^Yhy+3FIA+(`7yG(M6PFUw+PU%shqR?^Ub^tiN|{#?9k+ zQ=~=P{n9?f(}35dQ(qOS(>%|+q@~-n&A%zjk?PFfpN0J7{M(wmBc09VXXkZr3jjW7Ws{ZPsu1z57!K!as22^+UT> zv>o?lo@puFLa2?5IDq*y5BxG`I0l5B0e>Jl!^6Bidp|rA5367(81je1fWCU7YkQgL z%4{?3=38sA;Yj^SrF7;G_qKZm++f1lhNBE%T-*PH*vH91pNceH&`sRYpJ?9jx}En+ zKn^T{aC!q~C&-*+cq-)#%j-PQQ!2gnquQ#fdj2mW#+C%hp?Uv}YU;_T9JlS^^~mld zw11NQ4v)!~+J_v>8S+*99i9)V%EFFpAfKkGhG?#CN>^shan=UJoq^WY_xJxD`~Ob* zm6pOdAx=G=bU6zW+n*D+6vz%yBic;e`yhs0gN5fpa_4#4>;T`0~VHR*S;0 z`a)Q|K!VXXk1gX^-T6&MV4b3G5$;ja8D&&Gw*b_|Wc01R)l92UNA;#uJ;yqNa{zDs z;3QBFK+pPeOY0=XF68_fJHDD4_zpXK5DMlo!b#;zPenn%cHIB1=z7k$Zj7AzNBp>! z{R?wWp4O3BfNi>*`-eSZlNkT)X~kmSaH}Gdt*%oj1EZY<;a-l$=XET5yA}Dq0nAb0 z;G3$W_yr25lDRjS--`SBN$mf?eAK(M0~;FO=7z4|8(1nhqJM;m*>3YuCLYRYZaW8kVpjc0#HJFmzJ|7G0U~YXXZKe2Xdd&BJfbVeI zqH8&(Z`GAEz;}wS4dC04V zzC8vN*LU9MMkY(W7X<_yWV&w$AR+k3Z6?eYpI%71unT^Cg3V?O_u2+wI;#x#CE6wd zQnI63$4UpN$l7*-YF0WB>?Z6lmsNNy*IALN`mit>|mRBiXZ1f@9#ys4{K3V$NXCE zTfHe0Pc1zQ@;;B?SnXo7r~}`ua?!iC=eg)Lb71D8zitjB@Va(C^FD9+{6+lT89$!x z>DC5{$ZUIzx29+FLhD>aob|RgxJ6fX4sw-<9j9t~O$pe)XR4mA!fhT}67N603wI)w znWi-G@5kV74n}-mbSDVDDb~gTJU;UY6hq`Kh1kBU!28kn*O}$vEc%ihu*Cbn^np*eBZ$VuLB8y(1*$-ZswG>J0*Tzpp)ihjm8GOecZ|?uw z@AUu6LjS++$%sEnODrDS6#ELk|Ksf|02fpDb4>HWAKsrS{4-dWap1MA{ITwX~_4^F^4t^NJI&%@MR(PIncaL%O*yzT_MkFp93}julv2uV6mgOXdVW zDx1O;D>*5|d9Q9bfmJJWccX~sIgYvxxR3h}Eesz|{Xk>n6XtH_zO&&tq0EVoJb^bE zZl=hHYHsdI6|vzy|2hQOqTzXlm~V=dFfJ-ZOG<`Sxl307Y$~3|ie_(YBW~N*AHO?M$D-b9`v&I){0> zo%{UOl&or9W2H$u9vJRq!TGV}aWC3D|IQA|ceaA)3RQ^T{+}yL!BspHcsM-Z!q1=ey=P;J4HM z);qgxziS2gyMucAE(bLPtXsRMMf03DsR%ak~-KadG zoX?WR@tekp(~$H0e9OH!JeJ%lFn0krVTNhGxVy%nt=1EOWb`ap(MO^tDN+{bK0`E66|2lGsH~I74m`)W$!_(Rga>iR| zZO*5}jx3Yp;4=Dg=!>BrraC?UcsMmeCCcFe3GxKsn|(g!2X_XXfAg2!q}j`=cqG@V$ zr&2+Y^f6aoa~s;KSeI-#@_WCTBoAk`1m6eN<@Frh%02G;Z>`+f?SsiTgPokzUErS| z{}%iFv4QXuT>G)5KY3)E22lQ3)LPM*@N_F?otwEU#=fh0yszIk5bk-r-`kCb*UB02 zA$<&8&vgpBZ(p$cwIc}TyA1ag@!cKMve3EHb)HV=`xe@rOgGYp&Bqw?bd&w|NA!TXI}O5klRRoHnjT68tfZK-%Xm(k4}#(C!Lrkg5Nm3jPg5sM=5{=D?f z7x!~A-Y|{lcALTUG=u6A!c_#^W4!DJ$r*xJDP*==0rYx2mj##W&W&5##?1yS9rd&9 z2Dj$hqucqgJ>96)c4U4XAbPzxXi&G^N%#2JFWQmy=0Ie+ed|GEK0P}e*iW&Kn@(!E z%=f<&+qp}=ew!DbgRai+pJOYV@;Z0clbk}4eJr@ui>Zq~ZCvipwNBgxUW(IQU7i^Q z{aA-%`~^5aJ8ir6{q9$_^?iQlkTUVKUaN=S z*i^%9hGV&hP<&jmpI<}7^8aBqcR0SkuE7!CW0cVi9p7>awy7(+hJ|xb7VNmXpfeVn z*G0E;tpEPOwS#ZQi9?Izr$}iEhJ2|R^Rft~`eU?#qj`H7KpWz0P)C0}w~N0;iq5|* z?AK$*B@PTO=o|#bxj#ObYPqQrQdF2eOQ8R0`DGx9|yp0^{We!k8&Q%ehzJ8835Wx zMIQ(-KaBNKH*-_U=qpoabiU=0VvOqN4#=O@JeN$p@%o0p2?6*BvKjN;mRk%KKsDUO zPR4y6#PlQ<4ms0jI_Vq1moyH1?FsBX?F zz_^?ATp0e{W~w3P+g;4(PSf3)Ij6fhjQPCjYM621(bGyHHiBE`k+tS(PB9+~X2s*Y z%^Khq6>~RFX3Kq8sEtov4tAR{k9XLy9^O;Ja2scdqs)Oe0PNg0>|FGi^JYA{8E?H_`WxOD1irbh z%;zux*p8zEJ2z}^H`MuixBs6#j@?jCK(JS3{JHzjw|iTyxPtt8!R6kS?Y{(~$K_!i z!8iwimbU3)^@s2U#T-G1X-K2y1ImKV z_HR*uaIoW0-|mBo-syTzgw<15#L1IBf6!#eOH-q*r)i;ejihO zYcW54l54md!k9y>H~=|Z(=(mq490)?Fdy%J4L!Oqi2PdG6tojQXsj{eRzY^Er9YUG z?S2q(;3nE7K6zj7leT+L=Ms8^Elpt@z=n0;TfELj!$7#3wA&sR{@6MYj^)4o_&Xr! zz=lw^TAzK8QG~{U_dqV_GFflDrwxx!857Pzcn@ZmD`q+k9qD(WpN0Ba6vAxIkeg); zxT>Ht{+k(ZNW8pP{h$Ei3AzcmMt605~gX1FpkF6HNt(NuWBK2gS z$MQm44qS^4<2?8=C9|C$Su0ugciEwJf@`n@+*}A7*>5%+unufLt?9>_m9C9~n>j|1 zU)K#?fbGexh^d0$3Fc=eoWdut6kMC9OJZsx;C5ggjqX8I!D{C9hN~Jtxz{}@8@aw= zDgcvAxVXkS+Z}bhBSClccfD&l832@}XpMqwtFd}t4=hm4obh%Yf5w7IQWcTZ8?Dhya zeR)9yE#tLEp)IMi6gK>OEa^G`T)9~IR&?N8zEvH-T>9Ypg?xeCjrrYRdIh)}fo9vV zo%;Z+)oa49X)Z78c70_yR~0+!_GNWD1;yPytZmP0>&`3c@EmqyAM2rfgL#*0U>x|g zGv$5D=Ysc=gB|^Ct|kK^Ut-K}1m-uGx~yM>;9Ms@w*cTF3b+ndyq~}B1qEf$D)WqU zK0HRimM?*D#)Q?@}6LzUABI037%D zbm3k{_{@IlSyTX?U>x68ybELY2>Je!8UOCnlmn&?ysZwVe*cBP?f7>G*aiR}W5qe( zt3Z4dY`gIp3Sj=n8`e7@e{}628=5KaLcA1i>WCFjQ@|a}_oF546`N8hH3ixL?jKJn z#^yq7R@-~_72c?~+(GQ@q)ra34fbQ6@!)R)h^s(svfwGgX1zh>oNDMoQoxj`xQKen zbEq&Ifi@ZL{n!qK3Bm?Ryo@Y(+F=jO*_T{$u-veb0e?AlnS7w2jxqvnx0SX2ZpXY$ zwg3BKYE27FyTsYFXoa@9+rMr9pG>(j<83|51_JUc1O6XoUt_?-7?VB8)1GnO^+`;i zo$JRpqe$9-P&Hur__~$uQ(s@QdYF}uo^8f&Pcl*!{h(n4Y_vu2U1QFNZB}_ok>^{! z9;uvOD)?U67i_wDIYu7+d-uGR9crE9$m0#b{e0?TzY}~PTC&_2?WE8ejB!KQ&r-TE z2!Sx=1=Ee8u>kn~|Jvl>o3Y+7Po)t--4qWa*l3LNrXsq>a{ZWX?S`-#*luh?@QsGrbB;c4!d|fSc8gK?KMDBu)MN8; z@T0(5XAeRp_FYTa!d$9Yhje0Coeaag?!yly!8i7cJl@V^2c!Kl@_g&yz{i>0V0<6S zkxq>6=^(t}n&|0kLa+xNG)*JM4jf~?6^+B?@so7^qOit$YbZ*v+$F#_?2a@_EF*|M zk2r4^SUWA5MvN@dUTiypZ%;FHR$6?gh$&?UI?9~UKI?OMGgTN_G@lwZ-?ta>P?lx-Em>C4GQZy48rKQnbTRHk;(K>Za#{1E7ctID zF~dcVWjCDU$d=ZVw7$m_w$pw9v>890HTz{}b?4{D*+k=XGaX?M^#Rp4R}x9o)t;fHv;O zWr*#mVttL*E)rW_x^+7eQ|~}qzUjMz*k0$=VEuheRXuA0af~bHIdNY9#wq0Xxh#7z zSkYYv7@vQ)k!QTLIB|KObdZea=d&0I(29eoD{XDc+0Os%-L;N?x zwH$oUtKxkHVZfN!&q@_N!Gw#Mj!Km-kayv`kY#(DE(z+v|mR0F^>a}vZt#mCXC;a?&D~9 z&R0=3*Z2N1#h(Zr(iXsXDgPe*{}$tIlFF>N2DGQx=U3qUA7#b9T4yn&RoygPxqnJe z^694gr2*G5;553W$5>M>Tg@-%YBjZTor(5l!vzH|^=fK$i~W9#x4yuO$0^-K9F=l& zdWFtPi|bz5X1cM})Y$ODxfA*z4obIks{mWeSnea5sE>H8dHPQ;w;W8rkNWOverOw` zqWQ6YRX^5DF-Ft$7l{Ay<*L_&H<8MhpHX2pW zM-}svp&rWE*uutCBydf8wtd|Rvbcq-S_-CF#BN7p&IaCv*dpee%r{2sKmKjYQ?F<$ zF}U?1Rm+%0B~!SB!M%J6!5e__Kbo*rbBBkn=e@jnv#q%^bv-u#_htP@>3n$(?2k=k z4P|sq1Q1W0eb;J?cDOf|a64bJr4Az%%BO|2Vp)eRVWj!F!&q-B9i8?b2N~lXDTH(% z9X%!cPcXDs8Z#Chb9B(raaRVsvmplDtckB}qzD^a%=?r~0x~(jzz(JbxN&B7R~XTY zO`v28uEu)pnkvl80cz*@8v7gH7}*ZT*xtQP@Vf-8*A5JAgZaIjf#CL9T#!X{Y`w14 zH<;wu#~8!h0n^cLaMxY}HflV--`mfZT*mbn4$Rk^p#0MQ&f}QeOYWOYyb;ivZS!xi z)0p{bz1+$3?aQ@$4k%dnzoW#N=c(MlkZX*%FGf8D@tuZ%EUWwZG`P<%*-p5iyK8$1 zR$Shve2*eVd}{{W*Po{@%^$o~+|JvC0Gsdpc`)HjUBXMEoWFuDGDnkyCj(VL3mMEtCGw?%uH`t~DhyPL9!0Q`g z!4bBF3?eYL!*oGsYR^Bt?cLJZK0h4VX|97f+x6RazGM5(egc5_l1Cj=lAREUKfSKG zz|}wygl0{CGqKUFX_EzqIm2DjHT^Y1_^i)b#sYUY4_2H87jyRIm@;-L#jJZao>oC! zn!21T=ytszi4orn0N=DufGz63UQI)|=7M28`@Am_LRiO+W4~H&wE)7+{;m7}EmfIK z<8j6q@_!BRR(JNVfc<~ozB1rpm9>@!l0s|?pu48nli?(Px~EV;C`Gq79ke17zFM{N zR6&oyvU)Zfu^9ae%a`wHOHNnTkMF}2KOdRX<4mpcQR&@mrZ2rz^Sb|W!+L&TxS!+e z&Taje2Y+du`;Sy`xAbER`(^p%PGi1{g5qG&u@4^L zQU(hy)%~1havbjCYJOvQoIIxNGd%$G9t`{48C}=c)(u?j#Jxk{#zV?1G^DLRMY0K^)T7T_}Yt`?(Bi?cFu*TBp?R3^~Io7#se%cT1-i z3EoF!2iUt^_q7$_9(*rT%Yi%JYwtY8-S{Eciszi*+rKBVz3(&LP5;K=o3gj%;%y1O z?^N)uVK8@M%ADb2&gwBb#&mmFpmqNS&fiqHtg9*;@1=+P@caCITMrhzeC)xuZ}&^} zc5=7$(%jOK{eodghzWPa^r=o^_vJ?e_`a5Q2&v0P!=SUL$Bdts#SiyH+rJFWdMG=1 zSAn+zY_zjX;fZ$E71OcI6lJj=Ofxj>QT15!%q4Fd8-7#!e=`5vbMCuV1xLJZHW^Xgsa^qURx&eXw*cfTtnTy`ILm z9H9Fjtuf#f&rNmoF!cLKq+}|x8Dul>H|r)SKb8|^?6*}=y~KzUe0yAX2(P{P=ld5QG_ec8wnSDr`ssH)@e`C&L>wqa$<$SfJ$7yMc&4^XB zzJ0;UCdi26eR;dD*4tMA9_E?F>QgEYWG#0r3M4*F6Cc;20TvWRS3GOBnTv1IY1Du5 zV&Oq9){ls-HXiCa^0kU{oTi)IOXA$>ep*MS^=aZ@D~sHQQ+`P5M`L53eK|iovD23; zJ$dfGDoNracW8~xPQ$vxV8suk?07TBH_XL0UN*P$XHnPleMfz`nPVPI_p3;A@lV#X z;Mph`I&4!;pEA|P>w1GUw`G@NEb3`)Z?h)C=5bX|0*pV2#_vsdcpX@05Li3m!oiR- z?8nx?qVaXtvy-{eKdJ97%3Ms1ao(~W+Hb65!wvzq%v)+P`p!;6Oc}4{X;W~tUh5V*V9_Z{!L{h9 z0ds#B+kqvAo4GIFZJoZ%QTwsFnlputWAC|>cm~#czXu0MA(p=8F$Ks5`-6J>8uxvt z)6zVBWhy2LbWhR$YPhn3)#sqOt2c@lVZ{ zZk_GM6>wo!{x&(tGqpVPnMYjx$!QlA&=YvGY`U2AU~T)`W-V=A%`xs%j(>+Sb<(wpNAU z!86`l*pEN&Psxa**fZBeUl090h7dB-4M6$JAadMO(kk=qf^0TLYO#j5Q4W`K)agJt z0QYJEm`m6t`o{p}m>!W-T1kJHKi)4Z+2?){9quD*0Nu&A7d>dmP5?Hd7g@{DEbvO;k?V@kBI_9gpzgTj`C2=rlMc_BO~y~tVvW7`oH)4=R z*C(z^AWkv1XlPRHQz&mu$pPT~MAD0;;yFau-c(mF=HR5z+CeOzuyH)8`;}Rr&zzrw z>S-#YS`}m&UCm*dYRud3M-_a(je7yGY{=4)2wTrIN<-FEusdm1z#*#~>FlW5|UW>RIiaJrXpo>&7_>L$QXBx4++DV3M zsgqlDL*1+M8nb<_eyO7gTLz$$ZM1S}JDYx*#a+1@CO_*e>9F^;yXRrmGjdOnI- z`Szi1?!s5Q0(t~MtqEocsw0KgI@s;C0MpS3P*fz0K$8sh&ahpAc(cYT&r^bB-yVRG zOtZE1bhjqJC2;h?f%TwM77Lvqd7KZ=A-A`7Qe3~5eVFM^+I5(15Y%x`V?PVmzv!+$ zl&Q=9dfituxh~u%+`nycZRa)VM!cr&vEwA-F^b8FGCGgxRc_b8t>*qdwRC>Bs|!2BL){-5^)d5(wHvD+Gon0dmFdof=cJ<&M@8xBCOF6vM~e;NX8W&<-G=E7{4 zSy^)}&-Z9jr=7Nq)fB%Zw_Xf&0mxS`+?f`2%WAs*yZirvIW|Z?vkk>`-ELGs@9KD! z8WUbmTIwdm@k1wAFTL{H7ryUb4fd4*w+65s2*+qn_wdBU>x~#Hrwh4>*cC_ zm|hNV{mVh%f*-d`ITmi@3BH3Be>s=43?I>FbF;>HZ>pP9;e7vDKjp{VneSJjdj6~e zZ3olC*S=HcdAV{SRyT99-ErTrio$9>>U`dJMsXfW=Za)79@C^|DLH_;@zJp2lI6N007>Gx^UqQKR>jaD8B5O0?-ntv0 zJ6;+Bth*nrH^dFzohtaY2EJinR>-z6_7G*?h08h8j3sNiZ>a#x&f{BaEI0e3j~L%g zw&$z@-2Z#{o}P!B`JFg-Of^?GuPH(Hc?H}|A+{F`mjmm)#(eFGFq1OgUO(JeeYsWh z&OXkuvTi(b6OkGP#?lmg?*@=XJ*JWp>o9k0w;S{64t%k>e{~~9F6IgnO9QMI4V3Pz z8fjd;zpOD;)a;xF$>Nbz)x~_>S`{Uh4-8c9s2( zvK?XScZ4;z0L@uv-I!{VeexJf;5(1M)23w2bsuZ3Ot3wiC%po?W3Ahuh%)W!j^CY^ zToc{j$)b;L^y+>Oqs#nK+&T~P3GZNDQ;G80XmZdItSyp9}c|n{pXLz z;x_@`mLlsFe6tS9QVa5|efQv&PVXKYGCN!VEpv^`n{zfCxN&FZMdZ0YeJrG3%Vnkbpx*HK4^@%@E;oUjrOdBcNf96 z&%bZ`L3_y*Wvu3zLc-`t_Hkyyzlr_A4Lx1ZgB5?I>B-*q?Y4Wh#ro@L|IKP&;D3{A zdK}>Uv9vQM2lEf==m%E&9tT`u4!#p_Hwko~c=_w-!wC4!)T#jA^coCL!q-7!sB5~1 z{6!xOApC-$Jo;!LL7pjt@~Zah&`0~1XlKco(?y+z?a+T@Dl&RcdYALCvflVP#tu6C zWiZ_U-z2@^$_`QqX~;BQ+{?8Wzk(|I)Dcu0XxkWGTKaX74(Ua7>W{1e3EyY*|6f=W zpF-6kRJF-Y8QZ>GHwv@$LTppcTd~9~74rm;mU-eJ$37aS8z(?aq{l14B!0Eux372U z?={H@9z)9Q-UaY3QL7e~4tO^Pu8zpA1h{8$r!zm8m!6at}Zc`v-yi>WmxJlO6?E9P!m zQL!qW+eS(c7+G&0jXsF;If;unsPkwD;evh;Wj~^kRMva2OcBP>a7iKdhZ$7=5W+91 zbZ$*`^^uIW!~N}HjLO4)UU=Yiv|ruNDYQnBHFq_?E}r7$XRC~O2fPQs zyNDRoB0_3QxvcYk%%FlSw|d`ZytnntIN3(TWLEZj`50bz-tO{ZD}gk@?S>J+txGOa z>01Hi&QRC)wbQo4@@2ShFKDtQ;MZfCGQnS9l%2R2L9z{Tv#7^dbDkTo!9l&X=TLC5 z?f69D92ZZCm<#@lUkG^m;DxX?Q+jkU`U=DLdW?)&*0(#Ez@&Fr4Yax-|0_ z^bQFR5Vv5yyEJIGrvT&i3^wd`3nk$>j%m%#hi{C#pu?hE#oJt{4Hhi-xGyl?XEM(m z;uPZ~Bfd44|9TdJZu=obX~W-QLCuZpF&;Y2-)Ibo-oc>zU>s0oSdlje;sphfHsFDe zD$og|Yx*y7ED>mPi?&I}g~^PoD4Wk)T?QlmerOYEY%g7??Lo=ZWznn z9){F)On3lr?-EHmvbw4lW}`XQKAih|$F=Tm)EU#2kw~HI`Ixfobm1K#5I>A{=wBl2 zF}*OYBvbBsLJGEH8}wN{7dTg}tOwjHTd=9uKk8Q1K6g!NHf8l}{-STbYGJOXy?Q-_ z{T^)7I!%a;-)jibfDPzmR#b-Y-M2!d-b*lYg`-_zrv7Mi{Gmdb8vBF#5;w&?M%jeh2}i z4+B7J{14NQITQY>GU1-WBDUU_*fR&;0lYm2<*Uf=E#Mom;R?QC1l_NtU-+;5(QV=Js~NWj{dpY2U~s6BfYy zyNC&A$C0j=h%rBnls)@*YF%_pHLZ_#R0E7V+jLgCI8TCX-!}g7dgrw~*{!|d{Lb4x za$5@~{B{UGImqr~O*x+|Trho?pSOJ3|JyB{7}f50UoZ_20drzI<})VNEK*1{P=hTQ zhg-{H8tkWTr_8ClG&5Fvr-_AmTyn%f6OfJr6+2{A*QJYnPWCinmN&rnju5JYz}XTL ztjA4ucBcoFCCYc!{k?RMxt9H``(t+Z-7270R({0(7whH%ugw2t99z$s=cMK9gy8*B}a~|o)>9!FJ!{WjNgfZWRAl-==!X= zt^<5e`CRVu}&n zU!u;;h?fr~bAl6$a}nms=oVp90lrhDjbQwJlRx<|yax}$HT~xR-!N}q88B{xX!^VG zNJE{ujVAbJ3^>Z!j(>Q#MPfWtl+iGs3h9q4ZF;%%(s_Nt|iMZa(V z+0e%eqxU5Hl&XgAA&=3wq$4IZh*BZlD)44k^koRFy6fO%l`5ohUISl&5(5yAsoOSs8HdwB*Wsp>mRzrRgueVd1`uC1hMRV5@$rjt ztm^VJ9@dZGbL(00x@xk2iUFc$F%p_7$5{7S%@_G>E8G`E8B?s9sEog8dA$cB;q{&r@tQPu>{zx<9J#6Ox!B=dVhcGq;|<_~XMj5iJLbZF?|YVPw7n_C=Q<+iR%7taQJFY~lygsied3bx01 zZ#OayG4*`jzx0fEjn}KLgsyPQm*!&^?wxVWTai*M+3)D2ecvUOtsOcth$7OGj?p4H@7ebr19G(wy~H3l@s0#3-<)DaOErli~Jr+?y&e5BAGX zAH}r|sl*%;D9ffR761X6?wjiAV%8HHd}oa3jygM$%4r>2k}cgxs})9&m4HZCWdd$) zpCB!m+79@c*-{KLw^7jMoxZi1ilO;4PDOE9M`Nn7jIj+CJ{fJfPa~1uneU$-0YiD5 zSFJN;IRT^%`_(w_wSB<`I(j4Zn28s`!tzb)xXW$c_bBAwC*$Vh-jVrVudNf-TgOgE zmfPd`cly88#>kFYmtt+a58LvbcYo9IVDobekBznZmCN(Z=em29c6E1~o*)+;EpGk$ zV^teL2eW)I;&x4Kw(IY5tc&*=nGE*$&d>AH=K-Aadt)t4ndT+bx>Q-udoq8>_RcnA z#5;?R9RT>2u;ZQ0AJ6G@^F3$znH5i2)~}kHr_wx#3f1%}zW3krJfv}8<_i{mKU@o4 z)bHJ&LM^?|!T|uUG2aXTJ&j~ z=O(+bAeTTmxz-VFW&OM^M<4vi!ejJB;M7>>{p?8hn{Mm?*hjHU)Gf^wxA}7a-?U8Q zxO)aXtoW<35!W4iXgSm*1+%WRZi5!Gdt*wnuZ;MO_Vuoasfa)w-3hS*e;BPk!c(}P z>z&g_u74M}W2>9Q6TR_>qTs0XsRo7@abvkF=bN}>@jh|?E4smmkc8T*vfN8?-D&=z z8i4p}l9=%Lu;q|qD@;&s0=f^a7g;;5@js`p`fKWh)&yPqtfK8O2i=E=AurvBn;X3j z(5=>u-af6Py0B4jZ8R|65IAAn_qQQ-a$wQOvEo5nrtA5SvQG!#hyxcU93Y%6t%itU z)H|7oXn~jFzX`rM@{akRtqHXdWj~OP13NDS;dD257xQq<^LbRhDZjV4`ymz&>;vNS zN~9SB;0E)JSZ_@^gI*LE4v48;M;>n#y=5oN@pjCRDAAnWnR9lyCUq+}s+n7LNw2JU zscx0FnfH7YS7Q-P)yy*|Z-}W;RBfyW(Cz(c?F~yOxdgaI=X!KKuN&6)zly6>W8WSi zc)A@TNYe3Fm+{U7L{}!VcN2$Ipsg6^&)WcBhP;gXQ}^}ZTLxn;@v~vz@p{Myu0oY`9Rk>< zAZ2GN-WGH?#o6lWg}%-F!Jj?}AQz!F7-s33P61D*D{~9ibSS1T8AaJVUpNZJoZ(@- z?+_?OoA_I3+h|+b;qkdK{UcS^-)$Zj0NnG0zpDe~Kg_^e-O^R8P22ys;fg*Q2lO*X zc$6QQ^g|A!?1W{@??23=>*$tF(EZess8AB)spJT^=u5q#&~22F`Q}DlnBZLZpI%A2 zS+fjDgi$4ZF=x0{SM(8dck|JY?L~w~WIOcEeO{d~!&yVSro7AxU3H8JEb^#6G# zT_|aPh!Gd`!pzoG(p4}z^LR(SsGS()1}njOZvgEDkge>veYHjV>Vj_VK?%q5^e)#N zdC6=C)-BF$SDy{kt5W_+i<>pik8s;CcP}rCK-ovPVuMM`VmyG$dB)xOS;yF~hC{4$ zN)T?FACj0qvR+i}wSSoEy8H-H-JB;Sf^2HYVIT%eHKD7qcHG_svpEfsi0PO_dIQ|>kuqRJiZf~R*^AY1W6?`8A z5NG4&3Z&M9?-X2vY2I#iL&yAE>a)1k;TQ=O4*#qXYCY`axsd-pAU30{Dj8Ikx{b&chYX zt;GZqeACsO1~+n)oyB%^E9bSi23x3{Px}GXPiu|ya4X+a@U5}kTz_ZsI{1(MQFK(v zGGzxgfbj#<*_g;!f~gH|Q0} zX*w_Wsfw?)a>pna&9!_dw%xgCU~nDf_tw^g+5-7p$iBJ1G0xguh}We9-x>?Py)$)j z#_RmYx)fhzigUVdp!`zYpXtg>*86hETdmvjnlrEVAZCVbuGU)(@$F3gGC7Bkhu6*dxea*@tuuaWk}(hSLB|kg%Ynx`Rgls{a;)XCc9Ax!q@UJr z@}4aW`Z1-Me4{DWHV&e~K1Bn7df&zOm*5-i0}ZUWdsA`r_Ln;7fkEJV0lcw~)M>kK z3AWL!e~f(LzCH$)I}fiPDhuwL{8WWZ0le`;8|q%?F}O`ZHh}M+gVo-8Ap3eK7Z||Y zHCnEU4|fR3#Su)!6* zZ4&d|H?0h}hg8OL7Zz#J?_EU^rgS^cyumg z*i`7UQ7c*n*j7xX2-?Wgl#F++UW$yTH9@w`&r=+FDg9V?rmQK;-F#_&uA@l8wcUuJ)%Dwr;PFHifVBRU68Zh(YYF@HTDTa>g zo^>5uO(h2Nyxr%^_s$utV4=$5{ViU}`}9F|!8LVF5w($_WBlq+PEo10*Ue*f-U8kB zBD5y#r?a%Gj=p0peN@bMw$p^c#`4bnSlRA@HBB~lV5sS)tPCj`cV*NQ7~a6@c7p&r z7EG~zaO<6_Ky>^t50@3^c#~b>J7iNQ0AK$E_c9~*qi3#4}`5A%uLcIkB+mGXa zpL)E@oyL$~#%9|l=Of3dg8=Qm>%C4KvoYwZMOGP#h zaw2E=nOQR6=aKqxi4g}|o-X7J5{J$6a7Wkn04dA9(^O?v^+J3gcb+2D$;_;CujhRT zfDOg;(FOg3cym!S6b2@oZ6Dm&;RyyX&J>+Aw4vWv)kQjedy(^ph#Fv`oo#`!WcHH*`Z^_5?(Eir8xE z)~7W_oR(?HHdJq`5sWkRur65D^AYl8gZ)0N{lCaV8SYwr za@&I$#Zo6yeHYCEu5Kb7aL>1aE-9Qxz14MWGXm`KlC+$4O~Coa9jN8$f@9r>Me`sY znFS~xVrBlhBoHUiKE`&3mT4gzgujpDANOo{r)YUtQ%xwoUNVjMhPyf4m!1jJy(>8< z^`p;5fsMt}g@yp;qr3#%k($GoMf!Xrw`N$zR$<|!wS5N%E#^Bd81TnGR?=HpW6kOP zY@Yc)BgXqr7Ngz|>nJ(g&>qi?HB?pqIycsj-^wv!gq=CR(fBLirl=aG0NMW#E_J?* zg{yhY!zkvaZs*!bfxsF%VSfw&{`36s|1o0kQso>rqHdObjC(-99UU!;djnN-EN=}D z{}Pa-t2jG)%2~}r0DQ?@2#K9taX}vmD7u+vTsM}{ zVdgySb89BGGrs=3c@L%l2*q0d?sX`bZ&-kI#&D0WwgU#tW3xl+V0`|t?amc02B6&m z+Z~C~UfZ&3x!EQFmvc~C+ICx%wFyqOzJjl0S_KGJkU0(R)+Xm4b-n-|^*XNR`*N#H zeVy2bfE&~8ZF6zMvTkfYuTS$hm+jIJa9*@mt{`MNYD82;U0Fm+HU|d{1aJ! zn%zC_0Qqd+udh2m%mILno%pj~Jwld_QBN~+hF_F)K_6ei{0@n$x*s!gjKeUQF8a&_ z3@@qTitYM66lE@_TKaAPKo@2^??I@8ZfZ=#z#&=ha|wx27xeSty_-}?ebmLcQ@^La zdS6)cQ|s>Uz7NWVDR3YDuKRX#haSztcVo`*k9~BL4*C+9bAXuf;oUIh@s2|6zU~|8Kni>W9t|ZWAERlw}KU=?TWIx~DUrINJZeSoL=M zac=)PSPvkM^rf#(wwh4e+`oAI?UYRSfmK4_@sI6VPhxt2Z4N>dHkMCJ;>S%02w}uw zS5K!ZT>HA_CU@^b{IlEV|7Kor(-dZ}f;>5#QlQPf7^Neav-3ZHepOx5|Iz!A)wCaZ z=>N7p=HbS(6W=EVpl3;CnUCudL+0UTDbZ zRAa=k-?FMtX6M4b*#GYUc4NvXOX5%KW@zlx;DO}v79cUnjq75?Cu?!wwvZd#zS^P{ z`)a=zO-zXBaZk0W{$=~>)eI_w4LSl59zhn)%0VpM9sXj z!L8hjgay}Co`%c@;WfSCs)o+gVjj=b?qjCoFiAOPE!7x}jg_}>SeA9pa)(o^RZbi{Rkz8UnhQ|~0*LfmS`huf5Sj(0ln9dWP8?Dogng*$mLk#_}%wYsx)4~tzXXomK98Q9tVChmh06Oe?8u#yruxZv7K)tAX|mW#^ZG$fBx@s-p8%W zIyk`n-5R_J^f@M&=e@$c(=y(x%3e3toJ@N|uDs4V->z*lPFtUcN!DrXxPo|wA`s9| z1Aym%$4y`!@54tqkDYY|!R=m5?b+K6=K7+xA*z>v<-tj%vE^o|%}~QXrex6Zk8c<6 z|E@6Im5iTazI1?`1AEm!FOdWVz=v1IW3>11Di52fy@oL#S5mZ&Ks%Z7XveKhI&swnO}1pk z!H|25_}qv1)7$GzM~40gz3sX@;but?xE)xs;hZ1Ac4r933ymBH;jf!+PI4Lx1cw(3 zL+;sXtmO`;DZ#SD$k220@OY|B_VJXWzpj!VH23lQV8ahfs-TZ?;?*|40lyy$&TX`> zUf+L$?H6Vp0Iv*pX{zehT-H^T&6i`JVANNede3S-=BWE1#MUb-!47&&l8ckn7hNoC z7dLIhe18>M`=7F}G2m|PiA*>2DMooBK0@bVKKi4;owEK!%U)iZ0D@ZCJZ`^Yx}ow) z)^9xQMSfhKnhT5grX0mGm}`6x_%YFsOU8k}v_%7xogXauay_tGjw#YT99s{*;UYvM z%Z+jXZq#MG4?wt!Y|Nvaa5+D<_H%pHP24cTI_RurN(&uzeLCJRX%wh-o~g#3)ajF8 zy;Fo_u#EYR28%7($w6z>(BS>;+gk72lj1qQ6MQr6*rVDY|HZ1Cd8a5F>BX2%4A$!Ji zw);1Td?1V^+xB2Zs#AAu^{O0PtV`~l`z3hym|Sb|%LEyWsV2M0 z*j%RlB1q|k*KW8DXUf-`B4Ru1P4by3u=E^weCy^3@M1pPtns^A*L5DtZKaE62A~9x z24KA6{fPErE%C*L}r z)6WqguVqw)vEe9U3^>8`j`i{08e1Q;^_h&nae7lMjo3t)1LEOXt!F+(+C2_F#q^?t zg1TIjwXv{WN$2Owj1}LNXCw3${71L-c>ndCEAcF^=jUR0)$2Ki5F5cazDr=fsX>w8 zJC^yK+Kbq6Y{&IJ=r~E*#XJ4;bH`ek4(sg4Kl?f`DnR^>+|zS^zGFK8@6)OKZep+% z87{WGjcWG2#D&A?T%{l!;QMYICkKILkl3Qlf>0<~Z=Zy|2__%!Z*;yqLF-+1H`;cDkNrv7|L6{6`=8-wfyB|5Kp)~S z(T;nc1IKtgWLuf-V3@*Axc;Qh(+hAhMEp(U2)C)lguiJX=5ACyAH{bf1{^=t@BtIf z;BSI)^aVl6Xupr(8+JUO!{LKoXXw@c75$jGFN<~PpJK|sDwyWlg`J`=%Xc~Uv8t04 zYJk0#%Xzw86wPy25|C42How7 z=g-=9Fi&|AAF{@J&)YxaJ&Jnx=c#3bpfTTdRM$ENJac~IpOZSTZs-T!R(2bs&B=ft z)RAXjjs{S3c>{@~Oa1VhDfQSq-?tTaHDjzd42?3_Y`CBO_-L}9-j-yzQ_CfW%rVlA z2HhKV3c|df;%`+MZv5bm?gDE+L<1j8x0lTw4+q{KEX$j6O`WIfIi_H~X`b(U_|cfh zm1RDS9u+|MujpXS%cs%N0(f^O{F8L{zMH&5R(_QhX&4#?(|s28wezQOiezl2vnluO zWp_%=l^f@HJ5q$DEBap4jW}-y-xA}!cWxV2qMpWNrh@rr6Tzj{`OZAUpUaIZ%%ib` z@A0P6xkr9uEu-)gj=2+ONSvWA%RGB?+yP*@WuBdg4u)DBYC*5&!8?HGZ51G6mW zx*gdrfizfF6%0#oL@=e#K?9bT;Yv;b>GRuddzO1;x{A+0dON@@pD(|L0GS=LT!JCL zltF>*R?m-x<6O3F2y$sxa(^7y0(f7R1i81iqrCwutwGte%eGzahw}oK^;)sse<+V* zZO6#O<#xLs2jc;rwGQ`#-3CV#SYO7Vkp9ibJm;6g zb7Hb?$Hb#z@WN2HcAtvqT;VfkCI8;cT~2UZ-_6s<_O_g*q zBKzc6EhsTHyImG=;1`$oSU*~;>_$Kp)>-{a?mt?~gghLq}|7rA- z4+`J2?ih#*=fE=BwXF}OYxX=2Jl3OK^g(Jpzn|vv_a&KcxA!#`obxoM1RXulGt}#0 zt@92cW)^A5Y%@J+n#71F!ydwHa62dX#?l~(!!=LtBiZ1Tc0N!hQ3*nCE|(r3Ie*X`cOkBXteBEC2J0krBZ}BI?%SM z&!)o=NPuy~#-q{-Wl`s)K6?SUSC}udKKjqFRa9NccIj$f8XmW4!}WYrHGjeVt@_;G z&VH*HbKkvjP@u8m#Zp*}7$h?{0W7apTNS^=Yf`33;C|v5DJUJ79z@wHU@ucv$L_)v z9ne8zG|6)%svh^KJ{bl7nP z>&*WR*C2p$f^4tyl8tB`@!UUc>BdmzgPV3#yi+=xSxCD@+RD4ceSc}gx z0inNDR{T#gs{NO!!_jb8HjkG2ae!|>&UO2nKw%X?+eg~1{@CDCfDQcs0Br1c1g&Jc z>2m(f=z9L4oi~^WbWVK!LuI}dRDXYO>RtZAK88pR7z@@{vKy}Ez8oDb)H$`%SnpU@ zCCyu>?)SunZ@Whs#_%iw(YeT?(FRCmF%Rlv#Y?P zOCNT--QtLrK|`4!c-zr{|to72{z9_ld+>AD*S-@%|0h%?W-f_D!1lpFHYbH}Pm z@9O)z(ILIq%Jtl5$5ijs!KQpCtqx`}_M2+xeAg$@Y?A^AHOj(vEG1&e&)bye1A^`f#1=1 z?|tj;OIoCh^k-y$`2L4su(pT?6*WUR(n}DIFetF!m@jwZSRZS-TL5ve;UDi+P<=n# z%$*4T(4U%mg`v(Le`=a3esAXgpp1@GWe_}lukL4qu?1%(&M$%XP1upJ?`1~tOw#+8KllDJ>IbeBOZND?Ry+gLM9dQJum&w z`@Tg0x$I-L@J(2iM){VO3;f6!7v9d#Qvh2TS?lJ8zOoQK@L99Gmk2@Tz|U#)a|Q2%e~;+2+lYEER*bu3g>t^SGIV7ejhQj8uEUx zY*A#*mo@G?lpz1#hg%slvtbMI;8Z_1<%pY zr8po_J%8r;z1w|x9Swjp6R+C&bna0wjNIOux)|_OIX6pn(368A!BU%cVAb^;qsXYn zM#}SUOOEe!17o@|8{(g1bQ@s&FPK^b;}Bkf*xJLJPa|W#X)gE@Zs`pE2ACgJ&NCJ~ z;@i@OJl{N5rfSK!IF!$w7y$EL0Y{9zA!}l5a7EYaXL_;gGQ@pT6?dL0^GyWqYP&J- zu8pVtdbl-?LPCt`W{R=TQ%Sa)D!`+F8asqozJreHxpgk*u4H~YV!%bQm_lprZvJ`j z4i^>U>|{&sZe^`UCXDAZ=JH;wAGxO2OKpIFY>QagvY-S_(-`U<*?!4#KisdioX}(% zQzhF5*Wh(yus33nBkmaMcILm``m%X45V73~ku%~$09&|yXKd_t>?;5=Kh3XJ9ny^=iigIBf@vwrTnei0L;`} z)z|$1kBR_#^&xzri!I-=jqRA4j@$A4_;>O?Y^=w12-=C>5< zRg;Y#MJ{p~(+mm!g7BKfdbpyy-iKtlNQ*YXHA3e1|N7U-2X-@q#%$h>d@Nm9R~H*T zgYoYH7-ry&RAnVZL)oS=oC=`)`j;uSLzc`zd5D;L`)VPgHUn^^EK|31w#5`=tJ_T8 zxTB5#HU`sa)ONZ1{yN+0B}3MftshI~3`c+C)uS!X7q0Q(-Vcd>iT6<~1lJB)AI5E7 z<^t=XKQxAgClh{EGGF+pal4_6{;Z}Q+a1~?FUL&u_t5n_KAfs{&^%QYba+Yrd4Ea( z?yl(XYdpByKqhsziaxb^dS<;z`pep>m-WxL9IU6CxJ7?^B}7+Di4$C0Z8f-$$8kEQ zJiNh=qR+3f;iDA-@Bqo#3-)HI#d3FoYs0P<#Mo3^jr%CcmP>uJufl8p3M=;27Dd=b zakX?sU*5xwK)Mq$xN#p#FO$D))9=)4Z^@VgpxY>3-26SSIS)0>*ywi7bp+S$Mh;;S z`FMGpx8Ao0e`)?;x0`jy2OC=LFS|}pGMw$;z zPnI#?Kh~5X1fB%hITi5zE*e{=7o&^1yPnHX`Iz2>%Qyz&znP~LQ+!j=Inaju8$Hhf zbgN|tB;51VD7Z#(GsJdZf0`Dzzc){r+tu$wbfz)~tfZmwHb8}ZV6m)h_h|bI+aTST zcgjvn+jrQgYQ86(QnK0Ec@4#21?8T@JA{vrpLdU-TVl5pcn9cKFbwzcixFV&mQ+IS zK)a|c_vwvPRLw%MxukH|k_ZWE z=gXVhU;^Xq%U&R?slQLj*mFN)-gM^s=67v-J}&BFS^;pMYyH&k4?wv2)S_O3^3G6p zU0Li)8KB_b#oSUcenH$#tsP@ptivz|T(iCl zYnIvOK)`s6iT6#!>Bjog2<~&Bs_i>LdH$Vj8DK}5VsJl?NC~(j;Juy3)DQZ7u4xPF zAYU8VS0LUUv-{9l3bLuGFk9MLO;vVw)`Zco_bWK|b@M#Ek@UOlO6iFE-Vb56(>Pw# zQ?P!A=lPu+_gB$P5qBzzd;*XIn17T3U>MSteU#+{%i_4Sh5Ym{UX*#%5mAi~jIvvOm3TgY#+t-x$YdJ4{gSDNP3=;BU5Y zT?f{Y4XC4JL~7z}qVNRYFnAJPy`f9G_QmQm__{;qmi;)d7vP)*56Fw5p9fOs(E6-o zutO8@J&;6h|6>vt^qV{QJsaM>ziumwzWOGRMjemoUUAwhq-)(5*4BBwRjWeK-3g!Z zY^LfEzHkXWc8T?IJ}K0uS5xu=yL4k@w?}1k)~(yOSa7fRRhaE}?Z2f9`esbRWbzEf z15^bJ=vLmd;pTA@^=EueJHXzKrEi3^uidw9c%S`)@Iqd8o?ln5h|7!Bmv{qv$40AQ zxmOl3-qx$1;{%8fh>ZR{)tx=BKzi{5W)+B&^^P67(e?aaVqdv_HjGpPaAPEsdBEKT z{kVc{l#}t^P(hE8QvVRoA7{8K`3L%SWx(C-9KX5TM_FIjo7A!00N+pK8n5cSx=y7E zXaqX}d><(IK43+2(4DU4#`;z59OlfoMcOdfk2U3(+vB#)Uxw+sa4~!Luuj2zKaAGc z0r}kcK9s!POfN>ab1f(6hCN7k^kx)y>1<@Y@3;A_xr6fU-K}&#SEKrQvgG)1-|ctJ zPQfn_Tcf)m^Sqj+5RbdZODF5}w8zrS>FpwFwrPG21nB#f<%a7yI)VV-Sf=<|#(K~D zA{#_OHJbNH!&MWVPl9ilhJ2q}A6v;zuzQy-sh-nSe76axIVji-1@uTO25_#fJdMicM)VjE6GQ@O~9#en?z^?$i z)Vc|3D=1I*^zHs{aplRy8eCJZQunHjh?kMCY+6BAu zzH^Yx%jEs{D~$JlLmMKr9o8Y(ruo4wfH^lo_zYvlH(bC2grA@HVL1F&`uA=AetteH z^;;d3H+478V}Bgz-1C8+XhTl>zuO&Vt2iy`cJ3A*d|+=1xw$Jk2WR64flg|Tc$@O6 zinIMH*MxbbC!^r!&@46kSVi0J(ItJJ-u-3DIPfiMo#-I7w3lGP-Lnj?;Xl-}Y-8WI zHdx)!H}ZnBoqkZ;aiPNu)~#fOFTdFoW`lOlXwG{3TnSO!IuA1B>FX+#i%#0b>#1`|2eI-@{LdA9 zKeHO+4bRGBtDfi72|DEd@q1YX+FS|!ur%GG6)Kh{u9g;^?o}LXj15QmDi&8fj&57+ z$Vwmnxsq6K)9oAJMi}T(tjfAm)p7E(@A&Z z?TkR0`MqP;b-Mwmn|*aV|5w<5SpeS0bx)m$z(!oRG`FgBUgN>Naw-ZkBqGHPHdt@7 zUVJU$!gXxvMvE6I6%<>!oO9{x>nPlCB3cyy8!t6pXt15i#(+PGhURbWm?u^m^L^5G4;LnXDHRk*5EQ|ezx1Vm3bT_965!}u(_3|iF zw9Sx7Uw2#1C*myk=xQEob_b?A6^>CBsN31NixxM!E5b{>2UJDQxX%l+;_XQOnG>d}fbb_7hceU@JEN|nAvEX#pothvSOA#_%&D=^Itot4goyAX`$F-irmm$lwsF_n1h zOF5Smca#4pPR1DZ65C(KpaSp7b_^~6#PZ%;UJ7v8mbmN7_I&bu|H_6+!STGoA8e}Y z#=!x)#B-i(KbZ3Ec5kj?dd5D+aNZPrGhSQVe|PPVzrBLMOYvaXj`QWfh?il##{ciM z!|LFYyQk-a%>54?#+^3MRMzshirsj;ckC+%1*~cy7*CuJPZe*0f7vfcEXDEm>WX1c!!*=LyH(8Umk@`jX(A z0&Os~Wqu#;1`|HjnDKjYe}S=azITNQ-@4bgcL?7?EI7itkiye7RDS4nT+sen42okJ z?ex#`_xm~4I~Zo_vUk-jUE6n;L2H_1)Kzay5r1nXm@JfEyeR1mP$X-_v?gm{R&NJ5Ass|(ca$Q`wcs#lV zGlSS~?>o-x4-d`$$q>eP?fuAOuZXl{0lHx?t+}MT;T}(w36J_+O!$i5G%?dKV!P_HPH>%W={-hnBFiSlQWUyX)!VmhWM)dtLavW6D1dh{ z>vgY`6|XM9Q7mrmgIl_NwGI0(cTpSS(m$8fj1xCzRac(bhigR zjBW@I zelK|zF-2VWvv3RYIPm!R{mZGu=!n4`9R`Lt>Ff{V_^|_l@l=pSW3F{D_hWIwdto`BM)`pASm-1w5 zSyyLp@f+(}xSV5(`0oAmf~a-qehv`6;XYm~)L3t;j7qVlaDK{8T+E}hr?H5cTI{T{ z;ze@ZZn&3+dHG(?cDu;}#f&`V58mfsye&GsY7kaiYbvo|vvx0RF)ka|=P{%*<#rbo zThr~>k>_`1-Q32X`zHH4F=l&k$G*BW833?|#jf+y!r$mirpN2H=W#~r*{VA_jG$bn{Cjb^-4wg= ze%19;1M`>lOuF+N{AoWmH^Q4cva#q%ZR8x{k3X;Nn=V#L$NqzNw7+&MXty&)IMwD5jU{lAd8rF@XB^R6N@w4t&vKU4|{u#G?w9 zY0IMh`A)9uV<7Om(Qak)B`E!S>rd}hqf``bl)f;&Zb}* z%SWZLVf?l~ zCHQ_eWw|SxznN;jZvgQpA+{C@o@(BxoLKK#9-w^wzcyI0?%-tD_MjdU!Y2UGP#pEq z{<#7Cac<=PggC6Xtv<>XXk-2_0lvEi^Id>hw!Fb|yZd<*vCaO?n&6A49GgnIol_hJ zh7o!+*bcsh_4bkddvUyQ#k;;A=WDe6?Ix|WjcvV7tq1qj`ezAdOil zx_3WzaI#bSG)+4_kWJTf?%PVT;$&^RRA6gqo-2F1f=JdS zo4s|pRYCA}pNedBm4|^5-tSMz!8buOrz25)lZ`6qyq~-u5C0p8wL|iKbk;jO${!g6AYR>jm{VP-In{kH^*6 z?DX2;bIlZFJNq^xfyM~h7XWUgxXhSvq$;B;`p5dCvlh&=cSM1+ z;ct?+Bt@S0?*TD2KHEP0Bj|R`ag9G!vPW?x+zIb_!14r5DhE8*JbZZ%A zQY{@89W|(*aCH>e}Z@J4k!1tj|5eqK$)!Xv{%k?;= z&k3%8ePzA-xu*2By8QB=<6Vln&*S(T$%hw4mO( zrLE+c{M2nxlFMT`53zurH04++O_Ytt8Fmd^M~en2vfY2G8baAUUbcc*^Z|y*JU-TnR80Dj8r)X1I}SgjrEpM&dw$M zRn75zu{)*9`Rn1B8!DTmz_Sb=_!@iU_v>j@KUbl&0}C;=gJ8I&To-;kDV?gQ8eF}Q z+dD^{AJUzS5pXN(4L5YUoo6oZJ#%LJT$pWcOI34M9;Pd2 z)bZ3}!+m57=NPvQ06-9aanS&=zt@Nb$9HZWU_4WkO3Ut9n_gXS~ zH6_=SD=yc|qHF5_4&OVtFFo+Kmgjj=@Dq%ts(=%Sbz)u$w6=v6U6B1AmB^J@Rd;fC z2amb{$hTsd?DH*Kuyj}F{zs*7yP5GF&Xb_ondi$Jgz#jasg6#T-I}X;GX4RCuP%Fm zvNDL!O}yW6?R3Fsym~6Q3){RbzBUNdEnK@_i>k_pjn~Ta*x0}ItbaSk&?f47vraTm z|3+8hnQ(desrz@_y{;{HRawWoVCe<2mikmkUsGj$5N;bm_)WrYW88VIItfcY zb%KkSr{@f|_fNwh;>KsLKYa73q19A~lZ!>}MmgNknZ;ogXd@Hu-_BsYX*UYHF-N$? zrgaAddhxbT7p_b=#o5w?0Y5S62bu5?x-idEFGpE$cS(<|GQJ$^ z2*%w+d`&di%*H-l)VuKKyY~6CtH}N#iJwFN7jfZ}yQY%_f;)P1K_7eM@@+w%mu~4R zDT8_J__P_v4bbg<=h)B6Qg`Wv*`^0;tfw7Gxz}H93bWPqQ|H{K^SrQdzTLP&!6F0+ z-51p=aM4uCO^D3~$TOwOdEKUY8)um<^YdS=TCx9PHa-NMdwIa>^tecvT_2NtP&Q=s z>2kiTVxA9s+rqkfCHDEhdb=A)zrh{7d)-PuN{8P+S5W;t+-SOVV>eg_rVlMYWa@?v z@SW+zVwqq(_rYxstH9bRfwx>Vw>b9otP>u9P zgMl302lHqyrk-l!V4i+EPybe9y3yG9B<2CW>0&-kVPvlf3Mq_2)6`;rT5>ms#R&J$ z;dVw<^GqogrYTO?c0b5F)7;L{2>|%U^y76M!S7t@!qW8|Ech=A<-hYlyU0zrnbY^r zw~KO5GbSJ$ou<>%9(YqY%}v}9sg~Ov4|Ssx2cZ6c&m~ae1>3D|=ZHtVINQpeBRY;? zu?e^}4Nu(+uI^RYd~d;3vvp8IJniyQ4&?_8}1=NJ3GhBDO~&HWoefU*m0lA zhVRJsjMEMPy|Zw90&`vG0K~Tqkg#T*g>+^kxCrHP#yl&KR8XC9z>5G^jLjBe^>f!Q6eLHE<$%Q)Ao z%YHmSk2M1PTiY_A5&P@Yp)IFf+i>T;$rc7DoG}*<1Oj!szhB8U{z1-n1oBLYwvh^L z7~Hv~06&2EA9k**7f96Q;6^9BCTittwyPOp(GO%zq1>Nh=Yy;ITK2h-{w!=97~{R7 zjbM2YRqvj`G-1QLv{His?Tr90S1qN0vXT z`N7{tN90j}^M`{nI_zZr9UN>D5GOg`j)i{I*q?e6g`FsyDxS+SmC`qCgFG=8-`z+> z3yc0D`j>}R0XO=cm}DPx2$`%d=%^6K?iACdU+qfhdN2a*sZUXc`BkfRWC5O6ZJG8$ z>)573`U|wUn|hQ6S-a)_Koel&!(vSbTidh4hArvx0Q||&wSpj zCobjcM#)vS5bw>L-nS8(a$a4`cW+m=$Rf|~g_Z0GcR+l%KVLB4y9@D~S#7s{AUc+O z0JiA3-`%O5=p``SrI})iufd#U7tnCEv*q(Ua?HjAvMjzYaV}$gwddTPN(yf|AQBcb zPA=V?yuy0 z0&lZq#r+!?Iv3OD&10Q2a|FJ*=TnEy{oHaCwdDra7@=tZ?TjD4Dd%>VXWXin6ztRl zgu}}!;=xa2U*886PF9>EZNJ6`0 zv+~Cu`p_>h-x|L?4y420+YL5XxclvORa%!m1Hd`N*Z{H}XAdL)*Wr~{s}A=y`Y|dh z3t=_~;d24Vhm)v^^_X`T^hDm)h4N`JJPj2{dpO{&N#eo#6lKYRLmhoL&hu6418x{d zoL7^JvpqBY4)oGPhXmn^RsyUK`|nussJEK>6u&0krcrhj^aG6&pmYmv8uYzU=Mgqo?2XhZRwDabO9H(br%*GBpJ z;pB|C#*5KhTrC=TG~^`!`OiO90Pf89PwmSa%Q;Pqb_2&)uaIN$ZV(Q(dL(VYM-B7`>P)xM0nDyqh~ z)Q)*eRT-B;eDC% z-u15WvVh4|>_4})Wcsg6U9sEw`QX7-V~|x5#aNW=4I&!R=WoCeh z;)nVE%OIJ5Gc4WFDb5(HZp7Wp9e%M;5z6W1bNvn>CVY1Q+XUjHN;(1fM!5}QZUL|X z)E~^pNRc*OeS>>?>VWKr2SN zZs^Q#LPc~HVD0Q-?MnRhU8tbX|Ga(M+|NM>ytQ$Y*at*ne~jGV2UGTS4y@-T4&on_ zQ4QUK^>z&I%r}|wsex^*dtLixj=RZ#TPveIjelMfpj)kbBLi-=-*{||_#p#6PdpYJ zis-!(x^4D-f3G}E_Oq%#dX|oMWWCoah1g!$;HDnszt{ioa7kU)ym49g_e|>1l|2t7 z%K^%H!~`GVcy6XdrgWYE-qZMRYX7N4*zl*%(Umqv(;mrE6W?WBJ~Z)^av4)TM3D_I z>cw*=BSuU|*3Lm6uQE(yPdo}AU0CN@vMPPqs_vQP7B2x)4fu!umAg!WUB{ ztgMRz&v}h)X)9A~%~v0{Rb4DN%MWFGT!A}4HpJGF5szgs-~`__eRr{c%!J?7I(8d* zB4bL!XsElNziNu-Z(eQX$J;;VPj3L<#sS?AlH2|9npGbqIaytiSN=acHP8?V#DnC zr@-2}0dB7nsh9``_+#96-LITf$F!FYe0SnZ>lQZQ{)OuXCdTe(q(vuUI3 z*~}+?DLKCRe(vn_17n^lZKq}x@c%-~fdg92y}d4bPH_y_MXqqBDCFNE!S&#UL$~&e zfkF50&~E*n?Zh*<`&rW|R`c)Vc^qf26+$!P^SOL)_gejn`JVe=XXFiMxwGJRD$dT7 zV?18Crtj_7>jw5di{B%Pui;z<@QsS!<((=~6zc%j)zXiTZDAf^BS3NOdk$0;HqWgLbKN5zz+`U43?c0KZ*Vlws~WzqvLMpPechF zNc?sEvFz!Po`(ImTTe=CQks^}>ngVE%y)z=c4=wDu<9^o;B|@lSI=tS^VkA>AIf(c z)9m{W``ZBDlQoRdzlUVS0ltr{0&&<;tb37l28*&IS+3x`R7Sk?{eR{r=g}P})aIgj z<_?!p>S;HDX{{1CMVmG1QkFOl81V+L3mZZzWiih)!*nN6xwfhQbbhsF#r~697xO*1 zI`Bcc(Jh@Z;V~Cq>7bA`Lz%`nEDh-l@1f65X8)ShcYM$*`#o*Cn3Tu?xC)@HWPe=D z%l~6*apbLn@2Lu_t!f%Fs5CmpUKrg=fE^6@;XMBm;%qO?KLCP2eZOGNh{thr{?ItY zn4sKe=YQyGjt?eW(wz~1R@Ki(-8CA8HWY-ne38}i+a2pNt~=bEG|n6L#s>HEHz5@A zrjFKri}>$(9e{To(Jk5NDARqD0eDAS=f;>SH0I3h{THbZS97?DeY3Dn7gl*cb;{;9 z`lChASjWQsVD6fVlw;l@7~;EqasFrPLm$swUB#=59l&(1lhOaq1zj2Mh3oh}{`oY- ze7nne*hp+6*K5XiM;bAl2Rd`;EGQZN`Oa3x43^0Cy_DvLZt0?@R#ncaUOvx1IIp^D z?m8LF4!22H^qC2|kT`I6-$qI?yzGP8Fgn9zy%qQWO0FZyaUAZ$>jcxJ^mw^y_keY@OwZ%5^YQ=SEO=bT zt#&!LWT3!-`<0EC+uw%m7JlG=lUvppb~&~(<>?+C13F7F&VH<9&)bdq!{|D`!ER4k z&V65nn*ANSHjN$UbCWUtu`j*@e*T$bTwVibt4kh>178$sQ|rdPM3-SHCY|$S!_#)7 z!x1s+1kNs6MK*l5ra8Qj3=0Lg5@;_YB-{=2KA0VCt|S%db=u|?zkQfmDo{N?FylYfWfxSnnx+ilWGqj6 zVA)qljhLAsccHhpRUQ3@N0W_|_uGgC$GL9k&dlo`zMawy{p3K_oyh!LP64*M*u>bf z-_@lgD;vzX*Rh@v2SIX$brC-JX+BG)o~00*Pa(z|>1Q=okul(KML#{9S{%6E!8wC}yL5O3RjW{zxN!mYWVrzfkHuPDe|cjqCfz4vV86pywNoM(B%KaO!G zJ*5m=l?`OIV3;NMbz&on1x-ap`@2Je|C`!>`ZQ#n+`SDc$jFLEoB|Ow=es8u;o4IR zUchscDaQzHrr4`lFyYh0@t<}ctHS+l43-_)W(SgG3BF$p4{N+|jU~5CeQ+e5LDWg` zJuP>t0lHsfhu9t;k(a~AC@k6SV8CC-Jij~2fODQ88&l5Wx>Fp)sS2IZ}RP!#0=w@jVB~9>KS> z-vr-Q-QC=zHvqRdrW9l60f5@Uci0x^BNdA(#oi6@O}3!s6^oVMSC?}z3ZLler);>G z=k4Basl(WLB910Ae<$j)p1UlbP05&W8*WE-8%#^ypS?CvQ9F6n?jW7mUK11|vjf-5 z%G|`5@n;$6xLrRF9_Jms*GwZ89bPV@6Rhs%yT<*LoC19B#CIgY`c93#-eo6$zIw1| zpVnKkT=(z5dfk-F^%^aY5-b~lG+4EDW5aES`)Z&S^$3u*rL$l6Q|+(OhFnFuuQRaF z+YJm~U9v9Jwd?+!pP>c_d&T+(mFj2|O@yc{C#TdXGxJm>u!$u7r! z5uTvl2>e6Q^WbtJHd_Z*(zC*v5<71%jCo3L*Yb|o+W_JK-I=cJtq8HjuDtK^sA<<69Mtk}PpSwlre4l}PHJDt=ka@D4#J;= zYoUYeH!b(KFW>6_-q7fwx1xJ9YW5m42jT?ZDB!%4Gy%TpK>2Kc^4M>%-5CddY`Khn z?km3k?^}CkFN^enOApM|RGe)U9sHGmZ%HH8DW$J0kM&~M<%>9`gYT}qg`;A6gzb+? zdb)~L=378|me*s}6k!3LOEh(5b!|MW(l%`#z9s5c?z}V~UcM`B|8YL)7tcK;Ich_D z`PE?mHEv21!tb6-EyZ$KV8aQ@J9WQMM(3zeKyv}%n^r;=uni%_d63C2a;|#YF}una zGt~@*?Is)EVn%A+u$66yK;)&ZBDle-2tpMwmZ{` z(T?lK&P^04|0Pn5p$H?AR6c(eLTfsrNs8MU@TVm|%8V6y&G>Hx;tMM0Is*HI=`dn6 z)?>Z}pf57p2bOB*XlTHKdy0;OsV>Jho@#6!Ek>-jrWZ?lRK?a{f043pBF6h6N1!DJ z93V4^?uZA&6rg%q=&%52-wlx$wU2ULNrK;x`42s7jgCXAy{g@9`BB}qeD0V~WKG#~ z61!Ma(^v_vw6Q&+6iDv>*Lc|9w$(^(2GOo(JxJNDwv=r;T z*E)(|Y+PV1Vjf%UW9gad(RQQrCh?a`j5nEaT6F{6T2vC>Wn4GQg$XNT*{C{h;_fQj zXfE(=`B0HL9finXiIauK?Ob&gNM}s92{TP`tXAI{#Y<7Z)_sk!-m%|Q31^(Khe9i&Fx zs{q!22$nY2TS=DM#(gfBGv8P@($x!r^L|;wd67BiacH~-GW0l~?YZ71I^0+CH`aR+ z40?ah2Y_zvni%GwG34}kXn))O`^Z08rbhb`Lymmrc$WNGn>ufb@qDOW@17tt7>Bz) z2Y)mjTCEey`A#>MyMkn?Lkl*Xn{BY(vOisypm{fn25Ose;;MGut+$#Aak?1J2SROS z%Jhq@O_4TyR(}W~N}qT3yQL^2`wj0R6=b7$(ZMB7t4t*KaZOAja& z5dMbe_P?+Fr)R+3GVCF~)p+puSGNkPi##He2?L&FahYD zFIGu+YjNFE-BFF>kmqoUIvnj<>5f*dUVV9+Dk4Q1sG{i8j`=Pz0@un2xbb4+BSH1^ z=c@+3@xcJ#K7L7HUX7~f>V9+Y`E||VeO#9hkJ~y=GxkatZc#ILw)|C}a_l0QZXeNn z8schJbA4x?$kz)g#a>r;C3iP}T7mbQC;i7hS#Im6Ff<+n-v=h~+y`y6w*%j3gieZ& zqPn=+QwQP?>Ol4bf^XP7ogPFg zF@W*8K`s#o{{4gN1m9Fxbx_WS?S2o&DH22G8{ix9Y;-$kzSFMLG23;dXt4!0+vDfv zf408s-wy}h-xXIkKeNijAl+DYoXA$}*NziG_jhr==K;F61{ZU(I$Yj5tBm(v&@AT` z;9GNgn{_{;bay#7OLg;F*j{KgjqUbj0`EouM8M-OnwVaR>UNh*`LR zJFt#;?(C3<02_>XzkQu_;PbAn$r#uDTnb}O7Ik|;pe%Oov9mB|47XXgWGrx6?1S;R zWH=ei%Xu>0+{VvMc2t6m1aP`E>*9rC*i22SGw@;V$O$temk-OmSjOx9V1 z)W|qHJ00b|@2ghlRS8P~~;_$#k(8~_lYTn7VUfPu_-{FiL=RXcZrUXMqQ<7+)m$&@F1ZcPV3 z&x8Bj78aUb3>wF+&yVJS*Xz%32cNT;LPvn?G@fnh7UaHcig@z&uDGq+dHDGWjh!*# z9$r#1B_Pj*U_4{KWuGRyx(wEP>HRMfTH-O__<_N`=oxj)d(QCP`i)_1xPFp2kjS#E z2m34of^bWBk;=LVy$rIe_}>0>F3;e(d~?quPTY!VOc0m-`+dinC>yg{oYiZ_AS)Sg z4BjF{32y;e@H+$hjW!0tpDg}vxYiMTd-?bCnvXSe2f(*0qjM1YW2v#=5fGk&Z152K zCHi~!t3rC0c1#%X6hXZo!l+ROAP%5SR{R4P@b|SGuIF$=XZDl)S%|U;6aLUT$2xaG z$1?gR1l=a=_g0Vy0N()K&nN&Gf^78gqbM8tL-V9_J$FN)bg;af#D|II&YSA3$hbhC z2n+tk-!*yvpOlO_+!di+5I0!%ZY2Ag0OE(<J`7rL8O-51NUZ!d=-=FNSyQ%uZZfs%_$TXmXM zb)B>2bR-w@uw7xp{IT~kO&=*UU+V7c|(SkdjIzpAC2 zg0)V`v|=ynj;%L<>i%#1oPc~Dp>q%(9}D7Y#CpS}9KU0$q7^U)-!{0Pzl`)^RzdhH zt3ns2R?EP2;{*6Fu@8dr)LO&($otahYnk_(Eo2N;qXDJZ8h|)Pysx8CRYPNpQE^Ns#De`)UD!UvXeZ_wQ+EG; zF9@S-_5CRGQTiC6XZ*Jd%7p8Ax}1OP+4ApVH1pnEM!-!>4i?0ecQrpREf)NC2&~m$ za2Fqfb-8lE4DG6Fc^jf52H(vY%g*c0MLi=+5MHXXd2G8Yah}}wIy&0~1>RW?VC~10 z-ZeTSmwKN5i%xr#Uq*d0bq*ZjxDFO~+6RdM2i8Q?YMiW>1>kWv-pjTX?5_cC2)gh) zvj%`NW_P;@Z4uC15>(IUM`1N}?@c4XhpRY#R}FCc;J~dCz_GF3bdP3wD+Q*0-T~tO zDlE2p1|TLp)^*!mSpt3&Fl`B@OU6j&wo#X~uQLX>Y8om(hXC?87oLZL^o+wMU=|>) zfPP!f7xgo*Hm{X{J(zy|TM_K?__gj<&tk`+)nz?yf1U&Hr+NjHTg$z%tNf?0(?S3& z-SO+dM&GH9$Eh2Xp*wk6cx1SWdNAo8-VlR2f6zSd@l#Kc`m9druI?=OcK-~y7euBh zt3QTx_<5#Fd1)#BVm;HBaeq7F#?D>b^!|6?T}n)Mk>8@JWox)-->scU^+b;xZoiwy zFXEQYNs0L;)`{)Nbc;uN*2i`F`Vhk;K!@QQ4G$+DbUmx@zYB5(t)1@Yj0vCnAlDuT zUYC(k!{fmBC4FVAL-+45BK-L)^hm6vcNPYUeSYxR^3mnHbv)YJIk4m5EylL;`+M#E zDj#AR8AZ^ReN<5(`lx@frqM$CDcsY4sAy&O za7PDo4k5O;++obT4TW@#1Ap}>`i(zUOg##-{q5WO3>@Hh&;xPFK-LTJaF%^Ct8w4( zPE7UlH_?rIQeDq!S3@3gFyBv&fW1!XnhsLu)p2z>N1qe($K3Wf_#y!A!@BH00&kRI zf5%gl+hC=xTgmyX7Qp>VrmM{|^xxh4G|G-x9@7`x&(QxTyj^rRKkEAWE+`$pesf&K zYHF-`1IjI|wl{TUFX?+!2#SijnhS-Q+n415kpK4fpI!ysr+k8@q^`59xnaaAdD>)0 zEUL^!Zb`pG_$mn3uWt%5OM)%0RV z@xmTuMawu8zPR0kz7nPLRh@7I4ljQSupw^cd1bqwziccxK1PQzGI$stq(h68WMN>l zUF5SJmCT;_g@%EVqO40OZbqziQ92 zf8Vdd1)c1-HUv?2a!?|M$vg!aT9boV&J-L6t>N*JU>nki$#ir*|BI~q)1#V~6OEk5 zWra$q8b_}=unizS8o)IeaDebn_vMS01Zn7c?wyZ_@dn_g=Q(~`Q)LtoUx%Nw7giYv%%g(@7j(vPlLd#0 zE&EH?XH%-F?@Nb^>gL!FJ7kRY2Gi}fCzyM$)se-@z)T^^c6&oR$U!*O$}hsj(%Gur z(uoskC)IZq?08X@{Gu**VoQ=DDEA#d#AbVW^vnxYk*#E$sBbe0wvBAJ&rA*=wgUv9 z^Y7wn4kV(B9*m&_rgdZc5HEeT-ISvW9)b0oY|AWRJxa2K*1((+2ZgH>ewFG3x2lm#;GzYjPa7+=hU|3aP%-LpPtqBg#hj?sd z#(BER^zv8`HT$bIfIl+Ue2$U@9$m!qPDH(1?HDnPs~{T( z2#f1q@cRhcy-hGQ^&iyu@KR&rvo+w&7;t>Q`F$qyeI5nxqp!+u{+)1@ayRv0!9z;K zjowo#=IM57neq~CP=Q-I27@tBjDh4|S#2)Ad+lvpKHJeIQp@B!#)Y%|m(to#TBxLN zAuo932=_sX4^@L@$uwIDKr`BW{OEd)^}ycWg!kL~VUV86=zn|Po&_fWtctPyVFu$M z2&js_k&kRBqY65_|1<_1z#DeL9&gq6|6PDBe8Q{uE!P+8ZtXY_FfGjc2c`jNBSxA6 zuonUBtD-*YzHO3UOhF;uWY_gh;j37K( zfszkWiGNDeZhMl4k1v6|8;qymCPyaSl^0WWJ6|;=#MP?3xKEkNAkN|GKUdcKh3pGE zPXUM3!h^oD_5oNmhCQ>7y{y37b=jiKS@7e@3jn&0lY@!SZ-IGEa`UW-bTIz_Yv-E5WL3s2$z@0#_7_z(uZ`n&{66L6{?R~Kmkc+MkMLS z=g*in%-oZ;_GumVW>Q(qi*m>okLvBe)1e7}M4n#|bG-Weyg{sE=_x)lnzw|vmWv3&^kQ_7;n5S|Xz+XAt*(@HhRz)#{+^LwNG8QT82 zq~MyWo7-UYGuX1bexM%$3UX9(|d;0+0h}CP=xc zfD51=slXuQwxahjFpqh)S3c-4;1&6@4Jb2+T2+uOQo&*Zs`Q}JfSNqh0Okg|R_=XX zY!)@vJG|+(KRnM%aj!LdwVQNUQ4h}Fr^=eRjiWU@=};{uLXhT+a)LvU%zhj2G_PXd zy7FUjk6V;p_fML$DizSiF%USzq{B8qeCfROLO>c!gO$_?0RBGso}~EP3X=xoqy;8H zR!mWsWC0lS0oz%nez$tV84&YCL9b+f4V}@b{_yLrO=aCF6JTX@GCMlMymx)x2-s9w=A*RVJ?+=+I#CSpZ8^f#GyZ;IeVk1ykKkNs=qk=;8@fJG4gDp;x70J9 zOtJvqO&Hj9^60T00&4$=KV4TbHrqG$|My5GJ;w?`Ls##&h1UJz>lzxM^ZkDdHeT9; zD!>M_Y%ULc%wzV-KTcx5)jO`7#0EGm(BC+FuwLgOpAS@Y8;H$-T^Vw`r?v?uqmaWT z4f()hyQ-n*Sn`p#;dwACm6HBk&?owNkB|Fv7Xs#mXz5gBPMqzTx7)TIU-|O0K`Kxd z@?v+-;NRn&75i;mzn+f&B|wMncMx6-JERTWCmX#Mn`LeipC%Sfq^(S<1s)opxR&{v zfvKuPv)1)J{(H{8eF}O|$P2#p@Lz*!jt8Sj7H{nHp~iq?qGo`|KsS(#9_*ZDqU{#%JviuIv#7$_!Sp&R#1HR9msafYv#S(i<8%crO{LZ;-99^JjTrC{ zjNtmkK{h7(j*p65XUAAL@?{0%Mn69;woRAe-8L#vNL4-$g$!M7z&E9nK>9I@2M?eP zO44scN8?5?cy-yDdWn)zWpRF@AAV>b81RnN5yyx&)^>p6`Y{h$I) z{JjcQbBpl~F#fy#?}2}&&{`}T=njsUf^JaI@6(JnPj1^}x$p*ORK}>iv#^1FN6wz(T#;cj*{YI+t2shJiy_7Uv0CUw(2q42lkXK&Dhd0}dZ6 zz*cXD{xc7GLW?Js7eOX}itHMdCW=vvhIv~G`5%PIEa5Uxei1*YKVp)uGcIV(e zwryhYzlrl?9&VAObu+~rFC~lh4v#Y|fm9f%<_(a!sByPU6;@B;MWFuOT~;U$3m}7B z+6g!}Z5t%0=6c*gUUg{!wNy~Kifsl4XWj6UG1YOS4BWx9YoKY<4d7RGk^!F#ZgHMv z0Lnbwih$duBu$=G)MYa_LaNQ(uF7i@(#jE!F@7ut6(NPX* z#e7?Q#yV5e^&Txlylo|w>c1pGIHs%TeFeCuZG0~b9Mj~5ojWMywVl#v8WQBYsZr z2BZ_LlW)?-hfCF}INy)Z7Oke!s_=-JlFJ-wGkLe6PV#^oaR1zHQ`7gZ3S1`DC_s3E za*-M*PLridQU7e(9*gvps{k9cLU=;Y)68i1N3*%!f>!(fnkU~1Z_yP5E zS09E9yRy_|(J>+~xYqw3o^WyCeP=9xdvRr~v-h}fKl%i?dBT;61}gfsxyq_30M~wB zLHIqWq{nrs7yKvc=aEI_j}diW%8*oa)uO>M2E=uy;(o&eQ9a=g@f%dH`1p=ky_kC^h3Hz04^7C| z!WJdt!NIyz8amo&1KXqU6Y2i|x{qSN#AqL2`-tAR5NDeJ@ecJWsyh0b z_KW8bSFF&c6)xuBGmrRMfO&J*#ESI$DnPylus1+k4{Y~ys4Y{?TiSY&`H6t<*4sA^ zz+KLdzHRug$>UuDbX$3GFLzU(mWTCv!Rg4{sr>{q|5B;rJj=6=hce-aGm@Lo$3<87dPkO|mM5YD!yPb!}(j2ZOpFC+uwYfm|LB%b&Ccx;PN z&&hP((NSIh4{h(UFDuPQcPR~B>F2ush>pdJ(JWLe5zCV_^zoP%&r4N6->);A_VK7~ zkHrv$c!$2gk$Mc?Z=J1Wg>%jIZJ&oFr*tp1!x)!eU6$-in&W;A@chaDKq;8d|S`%^$p9`9cs4DRXv!{fKK!)%n#!%}cX?Prexx7?v2xCW7z_vl#f z)%b2T>)SOJ{6`u@k|E!BRN{4p@Y?Ojd#VC#CTt$+<{I}6^bOjcdb}aD=7Se;j{*gH zmk-lkqI|3aqfen=uFehhj^pnZg1vSBO`q(@*g~QR~> zoE0t0sxk#EuG&27#ldZ~&*PZud2_;-`r~@PO9E~P!5NjEz5C+n;Os9v?%1!VI91>b zP)x^6u081T+m*+>=XOjWq=&hr*V#qd;#rFC1{86BD5$TciG@|S4cCUY>35YW#c*6F z=2oa}S#R>_Ye<5K(By(N^z&U32eg!VyEPpd?ib8x{Bi6y0Q@Qdx}9ftXeOL&8FlSe z#)Qwk2|)xKb1wmoUy6--;lyTHOt^!(Vl=M#NuChWN9)N_Dy6KdO! z;`vS+>T^A2HIAY^vn^Cciq#}%Cs{d`+ZeP*KvU52A9EO!f||z6%f8=z&p_QAJPi5 zsr@Y!*>rsK`Zc9deN~+f8j7dm9u2{J72~2;K})v*(@A_B#`uX-ydIWHL7xH9(B@J0 z;>#4v^^x}`{uE&U7N5Nr95i%{BTb;~5wR?#rJ|b`oayJsRN3+1VEb`>&)MI78pQX& z`|m>q=xZPb`di1bYdQ~>3mupHef)30dtD~mv+A^KkZx@<^s1^dIxa1$O)S&uTGjp4 z!1Qg>o8i@v@#e$ixZ!&mvRV6PZ;CxgnINoSV?NV^)ZFnbsju5>im{pN=V!;32l8ac zakCE-_QeDKRNR|A=#S`$pNi|k{xyAGXBPh*7Y3So?!&@buJ?k|cBDp7fc==LHN1W- zC28jd#-*krOW}$mrkG)iAA>j1|<`2oe=Noi8WV0jT~W=`WXy%>~}?DMBO zI5V$ycvS2jMGCRl-FRDsMcKmZ?ZCSg7-F+f?=HOWIbL z$FbqF?fQz9?i^}1NgyQ!(>DDjCf(YXQBGr~tvp@l-1&90#`P=L9 zYesu{-}Uzr6FQ|Szq)47xB>8=JQ!lvm)~t{Lmu;6k+y8e@2DP!#%=iAMBkqqz&4L9 zQQ7sGUS3?~_rj-9Q8)Z9Y8t&E6w?RWre$*SNgT{_db8<$8GJ&HQj87P4Y(=2S(DBT zY0Ba`NdYyD59j#taiVbVtUWg<=FMwuzZG!PdhwpL^&3t}*GWvHrfW<%(w4=0H`7N- zO(oZ-Dg&EoE>)Svifg!$noh{xKfS87^yn*8lubJ!OPi_Z2*5qWcD9caK%7kD!-tQ) z%{<|hUK96nxEse{0vj1aXc@XHcc^|n-umhvotl1)!@Du0D*N(t)H8zcd-sPrVUGnG zJZMTX9cTR1UE7xjLzP1pAHO`8s*bLode4wvRZT&-#&!dQBNeNfejG|&h8^;GV>~u* zbu4Er#=h)t?jcu@o?>jljC?_3L!+Zpww+8%b~H3V`}w1BeDZvBBsIT(2Hn(d1>-6} zd>qTqrmeSevh5o@_WK!K7bxW6P&2d7xpQA*^H8NLb4?Y#y-71RQ$ACZ%@~dafM=Xj z>&1D{R(`$yv$p^DwQm}L<3ZrhYs<&Amg}D8As)1TpT=XGC>lLTK=*UB^SK930W;E( z8Soz5`^{h)+j9A-FKf)Vdc)QGt+QgFoj?1Z#pvjIGUWI6gJlMY^N+nwFFdn4Wnu}& zkBY^~94Qz-a&NeU^2FfzUSp996JV3p`^|a2&xmTif97897th<9#@Ks4DWqQ$=lkZD z{E5^&-zU+wIq-dWNFB&Y2(AHa6X-UJR2+Z2asb{0PrddJ^K}0~xxLAB+nf6fxl-@= zA0fIH>Bc6mZ?*eA(`|8If3|7GEKLb{x!K-_@~Y0V|Mb=eIar3-pkM^zf5oi--AFa2 zpC6*#O0~oC9Rl1Yu-080sOFky_0xwcrlyMLwoLJOnkMGc$Cf^rv;Q+nx3^+YWpRN4 zrZHI4&(GoY*1=k@x;yW!sJ{U$W3b5}+&o76Wjw-TW41Bk<8%)qX^j(CB zzhwtLn&&~ z_UY=`d42B;1gv`?ZXjNU=KZ!iLM-)$o4_MdPQg@oO=G|9UFLP1_3yvDs@hf*VbI=} zKD$vyV6I;5$Ok@NpL)6Fw8==;)*bJB%%xhsa49ucxP<2$Ae;>Q6;P@ox{9)aVWp;_ zP`%e&J1hg=;TiW$4#G7A44!bTYp533VhsrI%(9T&Ek;X6-~BciYwzEd38RiD(;1~( zs9B5&+TwA1OzdC&GJ@vtgzNGzo#?9paoFo{D737)CQ;;13H6tyCYx3Kj>><_4* z^8?x8+o#br>fe(*q3;9G*4XkVIGiV^(%U`0TmJ3`DF}ZW?NJb}VEozRh11n*%jUh{ zGNkgk&&tK}v)Ktff45iw_>dcpjwN46$5i$x{`5`vG1|~m&(+RiUkYWA`x}&VrWZAA zqg;s`-wol)=yJ8e^qg}QnqyV*r?{+ z+iBwURtlJc^EXZpTih=$o)W1!_Cb zz3sqS$9}|tgO0AxbH-A3Vr#IZkb1>7Ack;~$&|8(R6M($LX{{GNz{4!ZV|CId2ldL>OPb)!fg*NwU_ zjmBQ;L_>Ein{FNTfr^gvAdQ&;^7{3eIy$boPCoect)gbjr5>NDYELx%)uu84@?KD# zo+eL-5-)8^vz0X8DV_!Oith@%^Yz)~eD$f5puYi%?Y3tYnhF>ET=F2h)R2oN<~*Jg z`u$_sz&8dB@%x7=x`(JNYCdonWkO(DI;S@Dw1x{ydpP7IAioPrJCPXgI}4lHZ{Hco z2HLOf=rcpO`91~TY6`w3-sQ71JKk59FavHA}DTvr{y z*6nCtroQ}$R>t~m@5}TP;M+2Kyr=$i^oW0W@8DbOYXsRO!^F*WvRi5BTF7YWKYCm5 zMaO-mbo72Ey`NxbaW(?q3dli4x4#%S82FAc1;DpX`a2bUaADX0+zP&bMJAO8?oZ%; z88P9%bnoWFegWY7(C=nzULU}>dA4zw)CC*LFjYcKi~%d!51 z>U}B|v_DQzo-K=W@h>J?x~3f9;>!?Pvv&zrMmv61{7-_4{;bWTsCLw@nkPHG;2rwj z@3tdW$7Uld=O!+)J-FsE({NBB);gTI@bkthr-8+vxGqv*&S!>dygx6dD-eDI1uj&N{`2IN5 z9IxsafXJE+RHP)mJPjUijk)_+CUkSP8zGv*F?{+@J=w_py|_tjjlq|ByK%oMmJr}O zh1PW2jV{#ivskR(ek|L0F$j)-jYpdd>3N_G>^XZ&W(sP4gGw9Uqk$-Bm}*t7cp42c3uotOhGZz*DrP}K;DesS|4+5)};k=C8)q87m~5xY6=)Y zmqlzhz)phtp>C_d*8!AH!T_Y93A@OXy{V^%K-Z?r0c|A#QX>YsMb_fLjR2K-<~RA4 z78V~vn*r{${;jltKE=Wy{|EAvSlFwyr2!A(fyPLYa+Vr;z&xbGj;}*y9AOALX3muK;YREj} z`JE)yLt+9xNynx8sUVDuLdCBvc?oy!*dqb0n!P1TGMJmLz zl5})C#Til8yYz`TFKcG-&bqy%I=UT$3DnP2kH(0LG%?>fse0-mMmIw${ghwo!H`m> zl*Wj|3I4x6E-I5MiXjyy+O7Q*CWlYyd57owHuO#Ya(xriJPAt?(z_1aIcdmy5^1yl zMXFB?|FVhjcRnGmY&Gqt6^L86P1#E%*56`g{cU)^?|CK^W5$ht|0b^gqJOLz17_V% zI_8KtaHXUBaKx3-e-GZddcGkdtLqrgup?m-qkgDy-@zI@X?OX0@i7>&4i9;p4AI;G z;`q$ev6_lZLkz|9g{$}bMW~@ekk^EJySQ-E6bjJ2-=wyU|Ap?1I+g5m{CjjTq=u1x zn@3HJLx6KX?zl-|7N36~T48h>Pt)&pEp-eY+bt!qkh^b96-4D3|Nm32Y(2h6#&f85o9XLMXn*s`w*K1o`0)#Q zx;YkHLK!_kw*l~@5+3ks2jh(4qvxL50lB}CYK#r}8P8OViqy|l2_1AH1K&c7qKNOo zi?>1J5bHo(kd#Jj^W?DD4C{%W_fV!CLl|})9#${7f^YSJ>psMQXS}y~{%`eqC;dET zk2UuDkJr;{M_zC3^bm^$p|$&n)gr^Dw^r5x^qu=xPD7VUL09^D3av#4eJ^NgZzJ|w z2NDXre|%T#PnC0uSySL$?i2&xI!*xa*3pFyFcf%WFk*JQE;gcS5n~54YM;{h4(dRs zFUquYRXYdO9A;pfc!@Vp+wBnT>4Ep>5Lr{t_f3mKbg{Ml_;JqB&GVW-ITvZl6dqjK zh&9$b5Y1`67%h7>Uq>xB@R7#{ zZGE@2D$*humz}g=k=fX4Yh!?7qX^S-1uPDrkkSj(>9m!Qr?zN-%i<59vzgLIb4v zp6Bkj#Pd}t>9s#)3Ok;yj0xxGXT};2GL`j1yRZ#=E(VWR*N*+7tB1ojuzdvMD&D5o zu$$$@D^?Dgxb*mqmZ)VhCc^+`*V>mnwBgE5t+`E#~1<3e?ornUtA?!McTgn(SCQY zNfF)X>9P3BuU_tQr{)A#D!PuBG(P-9d~9XlJXUmFmjS+YYzBvj6*bzrB#SY<;lD-B zaFLebI4*BqUh}Lytl4y)lMd0NP8I!;Fxnh)Z0nSBRL18BC)AO+F!51wakgiYjw-Vp zPX`cCTN?m~F?Zi?U0=uqwXUUly&H=Fl5t!$@qoFJK z_8Gn*!FS$`BdMF_ z7=0_2d+?3fV+Gtlg~uE0@)TK%11zUB6&L51cZw24TyQ-?Q z>Kz9aT|bpBxQIa!=K=o|D(7l8u%ba2DCW66D2WWd?R-jC49a<{bgqL(S2zc-MtU*X zub!fP3SP7_54`M={(G+;FQ-F;2R#P#zNJ&-QJfe_E#c(n58ef2nzXb zTNIw&3cibb+;+*U4JxeuU9{L_MFW2|O+BU0AOxv4P?sj~t;@U8f@$?U0&IT@nzmD? zJ-7BQUE_9D0Rhvcv%>z0Zs!LZizMxdOJXTUp774 zOi%B?T>|B7e@QUAjB7ElYA)kKfOlxxiSo;=ryeV`jlJV5@;29JstD4#ZS%g-JtT^E zdfv?|j){OFJoj;o)w76mxA!1D;~Tn98_D*pq^29&NH^&bvE2#c`M!4F>uN=maK6s? z&e4|i!pA?J9b$F)LS<2gSsWJP0Pr2>0hL?Gk+e zRmMx0G!UhVc>L03|@DYGVyvF)5i;k>>NO&onJyB}E^43rZq=iGCY`Rnn_ z&$S=##QpBvHjx?cQ4?*8Y!m077gO+k!$B%QbgH0B^>k-kcz|ww&*!8o+b5b(2|-Wo zTeM$7pQEPQBnXE(4P|r{UeiD14TlZ4qi@kZ?@okZY2SD!&K3QncAW~k-^Zt#dcyHt z{6(L46nqCO&HD9wlHmKjl&QCwSZx`8cF)7p^dGXK{M(z76Zt<-|DO~7Z>nR!wQBtH z&)D|2pr1dA&^n0^0B?lhtxh`Z5KKX15FSc03w3OTWsv~i5dx?nT(_raIzTw=WlK%x z?dlm{b@#}IiZ2{^Ckxx?f7uVsjOnXi7navs?NA(iYsYXRwPR4z^_~8Ejo5F--mt$(t9Xt$@ZR%n%Oeoi zbYu5tW~6zR8lCme@!+6ioD*OJOAWK-Hai}lAI2?EJ4eTFqHFI;s+_}E?K~;xw@2VS zzBEC-L%J3PV;=)h>mWvRcHbmrS!+Le4?sCTNL4mTj|Av}C1Sznyx;KF0BA!U7vTJs zRB!HSs+;?OO=G;hGO4&23-KcBgQ71YpK)`MSXMdUaYH6vj7c+H)d0cBfPviMZkE0lM-C|Qk z8enA<^_5f0CmzRDTek6%PdwUEY3Nyp-|vYxQlz1HZ}}MV$XY9zoZ@$+UVCO0VSc)}I=V5`#^raxQbYf(b|qf{EF{Wy*Txt=X^(Rn_#W%| zq8?frTi6)nk2*HdsJQ>99uo{crMLer%KlD{2DC?2(M=&el+jry=hqlt%_*d-9UjJd zY&eXzo`?hX!yOM9M2_*Vsivn8oA`JUbaZ&X0k$wG6W(MPTKhg1O&%PW|9zOI3FdXP7-RHAUE5VLg9DzS#T;xy z($8D(Hw|IFBFHu^8#pQis9WJRKS$NXt`h*?0ruGD5 zi6iO2Ha_(wb6j5{YDaMq$0Ah;k}k@`EJpKm4qiWFZZnPre=ezj4)A>zIlcE;0iDuI zsL+Py_V0{M)MAlVOkdc)(K64#<|i3<1hJT%#;cRs4#Yk&=myZXW$_NnRL}i@ z#&VXK(t)JL8d1YQ6;oiYpXE($Lz7l446BP!I)~Zd;ND=Ka20!jy7`{);%#>t{3y)={zne#WQ*@$0Wq1-q*1{Z4*yOVBby$1~4fBP|j3(zbE3~9j{AC@G7{M326DUhQ^DIn`El) zQrG)u2G4~(1M$52u4@K@H4g>1}uKm5^lX>|rIrq#87w7Hs)KJt_z%4Q?4ClDMlGOMj zk%lY)IKTfefq53R^Db?;pKE`pT5f^V%^M!|T8c8^@Sqwtgp`s)h_zXNAT>=H`UL%L zp3<`QAtU(4%&$_=8DOhN{H9JUe{5OiP)Nr;N@aC6sH3w*NLEtQr32w3@P6O-!I~>P z=;xdk6d_|g($pC7tFfQ&h5pShhlCE1q@m` zFK_G}R+56w&KgkCk!dGs=rW%XH`C_EHKw@mu{81D$JlpVx9Qk8nW41(O#pKfWD5ZP znELgkps(YAwX_+Gq;7AWX+sOPX>-%+*Fk{9O9w==K}j6@aFpykpyU z06u5mGzGn?o0kC5LLj=*Z&;&k$S1PIV?EZhUN2lDJswI0+*V~gGf&nSWJ;xP6sZp} z&mv{PYH?gHtEU@90HB}7mZ$o^*!CjMt0~B^U4O6%#@7zKpRA#9PSo_rr2*geK3Mw; z;#tJ4mh1OdB`D|qr}5wV0y~K9O6}R_3y&9^f$Mnd)ie=qCd77D zGS!%VLfuk9xW#|#r_Fe_;5&snq%Q9qM(VMXIKfG6&SCu74D5+7YlrbF+N|K41xFqP z^41Ap%nBo~x6-r{d@Jydv}3AlZuW}S6U^c(1^p^szyRtxD&oODOb1Zv(co?HYQXgV-5No5s+@n8pce*J@v{T!eFi5t zY8?<7vbx4{i~WUp!Qs6*S9Rf_Te?@8P9B3?1#f3NEd#@H{D(ZO_px+LT z50@8|$8`{H9^{~u?_M}{bvMMGtj-H@(5;l!P-ISv<5}6+yy!!%A7 zjPh2Gu5T51dl|d7rR4P|Jw49lo`3Q5O5$~03I@-fzsGat&#sR!Aq{o3bnk zVv~jw@Vyt`G2Un7?zVTwUiF|`2o1gKE-+Tyi}Q`|%k#7P+dA9tCM{!v)84a`Ndjf; zGeU#xH5;+vHzAC9>hJapH&R-92fo#e6-C-02Eso@JBU$ble&7&Pfj_vP$;QX?^_?+ z{!C-TQ(+y~6=7Ak(MLv_G6mlXy44eI;QLOkM^(~O5uJqDG$ahnw8cCB1PF&Po7xrn zd1=2(pz$B>MVeBH$$O+O{nNp>>dE}@b9<};as}U)ztrE^mqjr6e)08Q?cCal_P(lP zB^@7W$exa)OrZAA!M6hOU!xAN4b@IW$7tf3JC{CQ>z&<)53g*WngRIO$y#g1oK#UZ zktQD8d_FJS`<#n_vg&)XEykHl%`TIjfXxf}K2W0V;j zd^bwyZpb|JEXLMP#l7KAW50^BJ?p>Qb^jUrA+9{cHXPOi@6zp$J(F1N65E~(T+bZc zyn=7wqWa2Ve8u3~>o3E1@O`}%`7dAjIPH0xuF0N#;D-kv5AP}PfcB5NfcH-6}h z!BM0>R9?E$HtP1|y9eE)rFUF2Bjxek-h!v%02{zu?TN%p*_vk06ktbQa4Vy6-;uJc zQq5_7O((W`N+ZB_Eb;RB-xuc9PO%9I;5{z=yO28MQN+tUsxPzuF)sgqo_n0lza1}f zHd2i}-)4B5zNo7&Xjf9r1AObXKyVF|b5lKk>FSw66!e{6i&4%G52L~p!s3Vi;!kz+ zIFIG+R*Dr1j)>>Ie2^+^0mfff>Uny;L+QLp-2qUJDQI}U;qi`b+Hw9o&R+is0Iu;| zKYM%^sOCrqI-Lp^OKGAsHh7#3ga24NcBPnWsua>*lMi>IoqxrEVf_5-j>mqp2mI4P zr*Ix_gWCrl3wQ7lbUfduo&`%uMls=_0M2GPKk1^UXmN1 zslK2wn!@h5uY4vi-VKkVXWF?P*U`@5?KzLZIxd_XLX!uiFX zE1vh;dH*hLXF9mWfJzl!!{Gh`Wp*(+xDa?wb}vNweBZnc6xk{mRnily-{VC93wQ%_ z5`!m8!h^V7RgjrpRn8~93d;GW0~)g)L^ptxIq$Ye^%ytaaq^a@z**y+4$pPtjqQxi z#dbLY%N_MtuYB?+z1QRV=S_HsSJI>?Q#0@$fH*clmF@a%{OLEN-L-UZz2*12onvU7 z<;^*Ke`Cuyp3aH7+j7!Q0#IWNEOWiOZQQpL-+xYCEL%@}W6g6gi(3(VU z^^JS@2lmd3KZ^k6%Bo1}_y#NwRA1BIv3MWWF=4SGuenb|jUYLmyL?6|&o{GIkpG+S zft|DSnD53q3n=>bA=Wt#0z_;K}s9>_&LPKgISY1StgBQlRsu_Y*hc6M^G8 zft&Z7(s497#MPqzno!c=Di4GXFSt%NV_7v)v=3!!I>5MUtXOP#h@QUZ7_eA|7hF4U z?aNhs4MMB$g>r;<{Xaz6zKj#~prK=2@xz_FUC*CG0= zApH5qlIv<8V@#`KT&15wR9MHp&tuZb*TW%o?10<6*+<2gp)OK9RAJ-w(1@-*v$49g z<9D{T%&=E`R4r4g`g*98@TZFkqyx5G!^o}pq{kz=4q>;c*SpR6J*}fs&ny0!^OS$L zYTs}gvig16ms{tENDnO86SSA>%%#$%L0|zwx=Wv zS3TXumu)tS8|UEriMZ$cNvs=9<$wDAXOHWN6|9>_{8w|>>?@!X^^k)0; z5x0cyLwFGuA!=iG%Lg)+B1VQB)Zo*UY{LVq11AXVU|9{S=4vL^qp^YE{Wj1I@GU+N zwa*X%0{Bi3-dPL2;lWXRAE})7`&`}ux*23A_@;8{;f_4sO}eqYnw$3`UqZz^RRG@` z36FVzZ1r?iPncwzE=b_X^AXqB(Q;9h(syxvv>MH|VkrP`#aSp2o9_Cf+!G*_oOP?lImT|#;ueJbn0lK&3 zowY4Q)rQ9$^lkHA$ESi)c(dUtw)PC+`HeP7&s~N$nq9rItlMmHTddr6>(7G$;AK1; z33Q|VR$nooj8>zZgL8VWwspDjJ}*nQtL+R+1@=onS9<>Ao-~4KTZ*B^zGz1Y54rt* zqpeyWDDBN{YJhc|&%iF7Z&M~>ZJb_=!wK>k4KMaCzSp=G&VA0Q=~lQuA}QLIcP*&; z8)8&Qg6>)_uj?Y}gVc>)Y334PF!^pX1k$r<r=fiMn{ilSo7XpV@XW&k?&V~(|)1%dl{kM0jm zL?@58&2jdurT|W+YJ4Kxw6S%7i*>x8h7O_B@{UzZkgWmVz7H#<9@?xIsf=E%JNQ;0 z&YtbIJ`s-bt|HV$_|yN~13oL7{oUl7y(#IU&Y6{XW>d4EWVu3K?gYw+>!w4S+6Sj+ z4C`@bi7Dv)Gu+JUtjqlDQJ$dmMpLAQxGtYs?TAkxxR^iA;hq4jbf zjmyVZQIE((l96aLI`j9aNsEG%WIhY109#*7miIfT=Jo;Fxs)2;tuH`!ZL7U#m)ZNB zaXtKv{8nGW5XwBk{zJ)^I6U9@v~5E1-6R@fM$1a8LX6Ybj8l&BEON$pkN>-R6ZKH6 zH`LBGWr%g^Khv^qA7A3?318fEHFE>sF}tmuZrAUc*IR)%QkrN-jx;B%vW7*A`yTfz z_`XBwQxLGG0|=ePe|@zu5UoJt(}(exgYejVjMQT4HTYQX5gZConCk&HLQeTLIU2ZU#5>Tnpk{JPS_ zNLoA3=e_r8pqYchiP*~~hPz4Y;|6LfJa6gEqw`Eul_{d!+%`Z z+0J-N_#s)$Klk|wQNZzXPkWY`TB7j$w zrP7^Cf8XlyuB;XJsGDbfEQ4^BT?oC6?{Cc|u5se}dD}eNgU5-R_uK1D&o(o5?45Kq zdx`29SCw>N?DT}I?R!kPwVN|T(0;2!z2RNZxW$@FefR7ODW!)%8`6|PE5x45nG|Kp zni?R+rst!Wa8pUY6>USDc=0|B>B-bS#&>}JY~l@%WnFym@v3U3bg9bV{Vu^cQ$TJh z%I*#p8;<@t1yb+&cPEGizvmfFAi$alP%s%E%Wq@6p!Sbo(cSBwA@c>$nB)yH@-km| zm{QUeX`Aj%ECYyZDps%q^;3sXzl-0$^oECB9uCGhOpo}XGy-k3n)@$LW`19hBm5<$ zD{In`#UN5a_X{3#ipPb6ik{0ECq5+bRwejQ^$1DUS1lWtt#lslDz4Ug!K=VprhS&G zbe*^h0@#BTV4+E-sPFdedcYM_w=*ln_M)v4$&^?CH4WPKQ) zRGJ62*K+;yw9XB~(BIoNon?^pe(MkJNgQEm&enBX&W^2R3cm59fH(YqmO26OOwwDP zKm7atOMJ{zb4j`+}^= zzNG=;=KcQ7+mR{1m3~gSAx|W{;D=uBkbcmb+5({4K)6J#(bzk@8an``muDvs^z#Jb zY7c@w-b%jf5vfR2l+E{cE-AbZ_H+^-HpkB zd$F$lt%B~Hm4D}e+bqB~a*X=%%`P+T_>r2-;?;sOr=Z)m4J8L43ce2@Iuqbq7gKMFdb~f= zv#eC|@$bfdNjl_yq#QG`wSDrw#9M$p+K89Dh}drIgBSZ^uYzwK#O~?BJ z%I=2F30u{4QEH%t7eSn?KQo(6X=uIqUb2|&3cf*U7p9H}D2DfYwd%n4N*V;Yq_)9R zmZ`<49K^&dmRaMUbvAVbz@ItRTBH#x>+*z2pSL^nfo-oT121uSfxT==Z?Yb@>45Jx zK)JR}!L-HOZ>xvc_HFBTpylvyMF3m2ZOF37l(~)X4xathvL06_Jv{CkUjIvqCtpVS z<+k1md|4-2^*U^y8n;=kKZ8tWbV)bnkc4Uv9~!FN+{uw?AtMaeJ~ zedevI0M_SmCZm-@MLlB3OBX9{)OQt`+-uXOp{?h!&+64UZ}C4Du#7s#?O+?F=UZv% zXYtMr&v<5|7`H(Pb3ahS)s3N1N6&uYM(sQBr&M*z4=&EC%I`&)RQmhZP^M1=ywzg% zSokiu>i55ZD8x)lrXt^I3;cioLV;eUC54Df9NZQ`sn zu-G8jrVeqi=T}?LxYtl04 z{N^ccVdexH_dkkwa9fWQWjZcZhtYG4V@1-bbPx^(fNxbqKZ-gTc*BVW5Dt&H54lV0 z6@N?^eBFJ_Dg&q=r|#0_+-U z%jb1$R!Vh5e#hQ(R^*#Dn(0Amyxd;6RDpg$mCKKrncNrk$RJ2v);}}tY|tS5F#BA9 zKj3va>}lo!msC2JNH2zX?@T*Jjei=)KcPnGwkHw)oeGNM@l9GXnsM`#2s6LR@ui}` z8!r@z{NG2hUF}FBHs)wB6-a$KAszr2i>)`pyI?9+|`aBIAn0`$h?9bj8u zxDaDA6-@djRA|ja)KnRBe3_f58tjlhPJBT>GUhux;FzUVQ2tA#)G!Ja#XC)K_yfuK zs6WS!X=m)D%=3M}qz4?vv&{95M`w6HaQB-?F{ZKJe-@*ft7+V~3a`QQ4b#pS3aJ)#&NIJ$`<= zB`LC|#vbvTx7=BwgF_QrJN5KpIyh4LpbnyvZXR)bXbWNi%_}kv%+7+oXyZ2kae(g_ z>^0tRid973?=uVz_aY@&fNj0bz4Lhm^W3&4F_@LcTaJ`JdsKe+ygIKl4m#p6p+pW( zIPw6m_~jOc@i(iM^NwbgULc@g9x=#z1Zw6Rlt~@)Bue(Cp(nJ(~?eIeVfU+1g z#K2V98xOU(hk8{)j7_>pn^slbuAygN1T({qkDT#RE6+u=zMFs{qm*5)U; zX@9Q1ad4`-#f8_+z302W6a196AAno}EF&92{Qlt?j{;ei>#dm@+VxCvCY0$+Cl4b% z;x6sC>i4gbj^3vkJCiA6Kqo!V;yU;p?K{QOmnrc6T%F{S6Sxk(Rdmz(gYkF$=`)Se zZq`Kw;WlwwJjBU_Ji`N?reRT^FzGu~4U-vDCYSbeC}-F8ahNEhn|_L>@cb}E9NPEZ z4&l@Een(vRpdRo5$H);5hMR?kBQ{*7is-s-H1+U&bIMZPrl9=GcpvVw=i3&->)q+t zu>CSR8^HLp*zhhr8OBVijQ+=~V)?@V_)^DJFa_fl8$N<@fbe7~24hjx&UaqMyWvnm zEO#)R&0|9LfZJ-Mv3wlxynP@+HfcoHCZ_vT1nfBO!1!WO z(0ydf(!7Ce#xup&MzH;Gk@*&FKWOPX+t|^8{6eMKW}fd}WJB#`yLtlfEkovyOfde^ z*A0*#Rwd3?^krbZ->x8*bVf{c?QbEp_BYCr*@&)5q#BFP44^u#6I@gK6KbRp=Y4nd zo+tPow<-PHjQQr#)4q?iW7@g?7@c$S*Z5N;K{(Utq09=Qm{dFe;2%&pp9%LiOZ9Rx z^^mLgKs^fvv`OH`#ySyuhe1z?+};MlCGxmJ;TGo^*KeuU{Bs>Nrk>6Xq^!{#-;&<$ zy>Y;HPPB6a*TMrhi8#fGLsU;p#D{x++j{=FnC?botpnche)n{948WOcuD06829V>t-q(M2Hb>L$mvI@(y4--* z0Q0)PY)chnLpj8P2YAIcTco)0?aaBCEQB^A+~%>|t!LTVqix8xNNr1F_#UQph_nC^ zG4v@)7lql=kNeV7kf|f>EM=u zxJ99K;JK+HDCq{mWoS~9A%{4Nuq9xRvb%+V_&63gN7^xQwRBL-&1Uk1pPyAAj`#VH zDbAuCQPH(O_(ZA7Zg!$cC=kiN{YIK18gyrl=|K|@zhIQmjG z)lgAtx(b^%Azu>S@K`o+)Vcm!QCG z+MCW%poY|B@MfpOLTavX9UCzie@*KE-xm58&JO_aT$Y-$?C_-0&~+?#a#^aLPqcy4 zk(mL6OL)jfQ-Hpi0eR{W(lP0NJfAxD{NF;HO$CQt+sH+R590RU0|at0~FG z&o{^8q=uB%D}EHfd|ZAL+c74GC%ihuy0+5zU#=bh4^xbB9p;#Z!t(mmp=ev>ddwpe zz>c!52i*4omwgvtyWWa?!^X2J6H0_VZMH|+r11RkwGUYz?;xq2hJC&2pG*MwbX$F} zC4Y1SyyA%as6WW`kgsJv*1Mic+8;0tV6QRE*3~xx|6-&)_9#A;x}N1~uJ1>Dt^nK? zSMzUI^5S?A`Mli|?xGlypxcBq=4Lc!meqT$F+snD;<&U_e zDv={q2Q0TKk1FcJU`B=3PCt$NDdz5!L~ktK8%niUmpY(=2g3k4Q4clddqLE4Z6^k6 zh~HNFqFuvT_x#h~4gfs8E*zV^=ZiX9p4vo+R1Mk-AHuG?op@|7ML8goL zxQW+02H6G>V<62bj1ut64Dc3GdnVh>7-&Bhs@=#D&0r$SXkD9WT|(uNcUeLE&iK?> znySu|-g~trW67ljyd2W&p3hjs=lA!vUIW)r+k}Y&wth0eVrM(gH#7@yea(DIP}`xl z-hbCA?zRfhGHLL1U^($%uY9YC8^(704jF*Azkf;3HR$Ow<0Z$0Ts;IKG<92Fr%;Tz zrBalE-XR1G_U7Zmdo^@3nv@(=^z5tz@*c2ze6bEb@hOhK-)5!>pA6kQt6)6i!U>4) zhgaNH*xb|;t{!nr);2NW@rgX*A~k;e{`ihkplumAPF)z(z<6|I2&1~j8SZ!Lpxy(! zmmmCIs*Z~4sWb}dbidLI9+Tu67IsDJERYWG_d;rDndJ>1msKTw5%hHPimO(H?cJmO&Xsi_y7Gr#;Y*8ltKnVUl1aE!goD=sx9*(+qI zkzgkZF&q!$<3tRYr!u;Z17CW|vX^p=k<+FD;pF+|EIjE6uLD~1d@JqzV|=&&aqNoe z*k>U8NYWW~Bo4H(tk%%ZMKU$nV~z=54=IHF*v9;=29()asu)}2W#)1Ie-haChn0U) zR)jGXTZ^Zv2OdDYb&%FF^4%IM@{QZvEKBRr#!L-(=0#>b+rN!;qptOSdyIEYJ0`WRahvb#fOl*+ditZ9 z(qWE%{#ASEvzC)YknzIh*-w2rD-iGFgLFGYK2ChqU-CPHE1shhAc|B^LvQHj(XnW} zlzF{zzF(>^$#U!xSyj}4_z1e^sONt72;c_gTn&J`5r1RPcg$>S>^Ek=wFAB#9V^yV zz@@w^6K6QY*E}_ump9O@_F=xApp@T?_NI1CfN(SN1T08YO^v+>a4{gp+scHxxp^Uw z>s8NjBfQ=>rvRK=sGjfr&lPwpU2!oiYyhX@Hh^pvTZ6}2ZU3wV;1>}GX#>$n7nWY| zq-lo7Tk5*SZA+x~p>l}-o_Mz<2Dvc^{xp6wTxMlE2Ny`Aau{f@Xq%m1V?T!g_w414 zR7da@Cv6?n?amTZ60q>alGJm6@AMi|U7P}Hd(H2C>SYcv1kZQp5igXwi@l#2U(L3R zYu^$zJ5y|x2`HQe>{6d!0893eqnv@Ntxq6s>G4{^D(r>=*!y$MImO}4Mi|BtAiS|b8Zo%$dWR|bBPOCY(o(ZM z7$51&gxD+9Ks7hpt=Bn__j@;vyJ+IYhYWS8t)7DDi}MQN@m_-$9NW&L>@K!j7KcIl zi3g^mpHJ>s3%1YVv!|l(aT~2an3?bhDmsI36Jrw(XF^!hjR4{)$cE!@xi=i4QlO-( zu_&90hknt?g~$b-smexR1^|wJ(LCaIY)$8xAe<({wT&jo#@C67^miqN*~}aMzLxn% zj2BXvZ5$`udppTaT1DB!W5UgXl78>cS|1Nt6oBhk=BMuYP~97_0-Mxiu?(-cZbnM7 z)Y@SS-5re2a*PMz+(VgFXX6xQJXSPEj`kr0yv@Ob@^Jh-^svW9vxoq=db-6)$xC)Cf#n6>KT7B%wd)`6qG)6Tzc-*6f-$vEzmU86q_;uhLhC`Fk_OUv*Bu75z+gwh%G zJE*U15NRi+)_sK)@IRfLL;T0Lrgb{$Y<8~OvAkzGN#c|=**-Q z%X5Sn(M6;e!#dM8)qGp^NGnKA;WY_R8!5mA3f_&tcHsHDS^Q6$%ww_mr@@%z3)NCnI=pVqf3wSNO?q&Ndtm4>h zgG@`tYH#5=UY6SSR4j{o6u{aJg>W06M}hX%?-xKd1lM{m{A$^**K^@Is&F3Hk7HZ* zMzm#Hnpk>#Z#DOL5l(SdPdg;TAn!{zTauuD>nwr14yn&qe)roN(wp}&>g7HWIsztW zw~F@CwQb@W+zZaf#xj6;Oe*oj2HLcZ6ndHdE}q@ZDt^P87D(f_ak}!9Xz{a)xbxCX z%q4q88+uVPO{%$NufQ1_e(b zYH5IPecz#Oc)g8oE>*13V#D`}^h}@%zGM4d)ze5#4z=)vbEb++aVG7%-m+fM`e~#o zLtpVZe#^?R;uMxlMb9*3w`yC^XF;S*cPX&e$z|;m_3wj%?2mDsk*drlsdd|js1v!u z53pK1)a$k{+xplM4|fOak5!+=z;{s3wGY?W@Dgh1pr7jw?fcRH1AJ>(nzHC}sBljv zDa!Ou$1D(MQ&!%+@mh3T^0xcVOo$DRgfL`!(XkKGuPP9?PdXOh8{;W;b~GZlWI8@m zFZZwXyF`8?vk4?6IzkhPi9oyC=tIWTd(@nNXqi*i4Y*UOe;BI5Uzo#Lav;P7&rJsDq130BXv{q*8m`d@x zmwYN#fa7HL{3Mi6+L^2V&xJ%ugCUB9X%agUnv}58R`yN!yXT;aiMj)>F zy|3O5zC3!uuYPvg81j4Sr&7(6+DhJUw!h}CEAo3^h0x2+`$a>4Q_DetQqK<}_i0xT z1|+AU?0TEyysxucb#PNC4NTqxq6R`}Eve^WprpfGa4mP5O$K%v%Y9atGY)*;sf&dM zfNW6yHCB00D2ud%ODmT#-M)Q~2dn87FLnLg2g!xR)h02UGUL_W6$0JTP`;7Z+ln=H zIS63EC>zj6oT-;6Q@ZcUmCsX5N@^XO@CvGJ=Z=*c7j9sMHg40K*m+PRUYAXUv}{`n zaFy2kOkUl_i@dDfX6fRI*^3HFIKF?~yo2A=a$)COT6ua#x;EH*4<75r^GZ~2DV0(_ zzCrfhp#OQtKEFOEWP7>N(NDKZ}Fz#*<0x zfS!HOdr(t^O?qm-KMzRHR%!2Zx2L^MfM=^Eyzi|?yaNSaEUTLOn*`sT+~@yHtAn#%bvu>M=}X!`b5ZZ+Xe3w1R8m zlX>ud12kXcd#&!bbcMP<=;%3#Xx{DlbMto&p~>MIakl0;8az>jQ(~rGOlL zr2@@ce4PhXknQ6~_kQc7_O0$78a;jRNpJ<><$bYFv-eeyEmjSDmvNFE%IKh>;~wd- zz<_v+NiXUfzCg8idj8-HqE1LOSOa0UzEvFyjVVoGbXYnC%c< zv-BJUzS+~QGs->qZakH+(fe)STU_m2>oV|-W5#Dp>0~Ohk{jO<*jDkiyJZ5tb+%k5 z(Xaj*ydxev_8$k&>y4RrrJn1b(dUK|v-0AU^8=4rvrqAuZe3R3t+aEC`4(wXjH%s< z|CMo&lHglna1+;mHr{D?BXrb^oLjr@P+MMtWk&JzvWtRgMZ%Kv!(7TY)EF^7VA94C~<3EsH$oX0=gA0EY|uLppu zz>pgi;CES_w3iY8y-e`!fH1+y7GBj_8S1~u;CorUT^mOI%jylqvDSJ6-`-yPzpgLq zOB~k@fY+q^O7qlW@LcP@9(*Tjfxhn&-g?}}-lGlAJlbB_05ORW=j^?-0%kz8mA(9V z-}2anU*i(j@5@V^SL*gJW7*5?^!sd5aYb8i(seQLEf#8lcDh&J&s~2D{vDTw-C)lj z+Q0QU^d()7GYy6eGr+U4Tz1c%1h9|(dl_-!4eP+Zi0HhLmTXn)w8^Da`@2}-_rP9p zXdlE~GH-Z*@|*E&VM2^qEcF?w@z}d@_p*s-mxAxzA=x$jjx$gm-fa_R+~w4X@qOrV z7Ze+g9eXj+M{FKJ8nSp1a-W7!of7+zno;t5k8Bb$gxa~L8k1^gQHH=bvQuDx+I|f= z(n;C#{e{udGe zSx`f_^08At6nt}PPMF4qgMn5kJ?97Lw&1sJAg)7Ojr&e7xZ07VMpCBm9oO%V%c_8`W9~QiT@C$B zfNzYq;r&JiBaH=rM(ustw6^w3Pu8(tKL^JzPbKh)blAi(OAWhaJfyg(G}xztWRWRt z9iQ#c59Njo|E}y}oU7ul>%Wfw?)J^!8F;$uCqD!Osh(H0KF~8*x_?ek4K}~e$7g+F z`fH9|Omq72%+UB_sU?kYw8-;0R#cFPoGTE0V|IKN}Vz%69Y^tOxGpgrMJQrzZBea1{nMbBTU_^G%V#4H-~a5-9P-7c$D2Id z5L0UczR&95#5U)GNIkU{CG1?C2fcZ2!&2E?2wSnIPuoPX z+(;D#uXh88tP+63&YR7y?&}O7u`A!kGq)mUJTcIFM(51#9YoehYz%;t(}dYoP%1B8 z);5@DxpCpsa=vS&xk(v2ovP_56W1;9_SW|3Z)ZoyGat-?##8UD754P{akzhej>~PG zFwu<=z^iR&M`K^LXdk@Up!&CNW?W;v9tZ40`(068e)qimKq<^BQ)8&1035sSHzU~( zt6*+GByKZ%5j@)-%Tah|b(PEyOsceD81RCNAYGb%LdhMWA)EMZ0onOf(2cy{L!?>s z8mP_Y*>=#bf^9m1dImwZ{V03Jcds71$AFs!***^wHWiLzFSyxF4}rqI8{PechKUM^ z>SvRtOdPOZ={C|qL5ec98@I0-VN0YgWc$T{zr+hVYeEV8v$eh^0j0tGTrvL`Q5>W3aZz!-dG{Q zHmO=tvFkcW5j)xA-DZB0W?S#rbjK$=-y(ot6WH+GzG~m>9lBonzJGA4)rUpO*Yf85 z>$jzjWoCajbz7;P@HG`&UsLazJ_&qR(Czz>V=!@c{J0;>SL~>yvboOe9W^TF-1sPa zEFSm$eC8ra#Nv6ZYpMrTKbLsf0f0|ZM9|C8(vYdWY*jG1yZp)6X>}h^8GAqM2W341Az? zZl3R<)JjbAdX7fS8n`m zF*eZ1o4CqYW(?g>%hfyG1L#mX&p|a)%~5yb8J9dq28QBfIrt_EpuM}H<6}TS2cqk7 zz76TSu*{a8*)BJD17zuZyk1qy7lC(zRvf?)FHBC!#Q>EDu4sQxcdnFi+PEdLu~7Y< z=JJks>Huq-ZXeUunGTLNI4}>|I;RwqdHQ*RWPrhcN>kT!c;0lI#OT3!2S%-4joBW{ z?k}$*=lYf33p!5%=<6mpcmiY=98cSc@6p}ChX z1OR)-35df1JqM(HQbjUeAC&cFD)J8#;lXJ=L$qIiACkY1CB=awv}4)Dh6^Ud0;sP# z;kKmSuL6uC#h&;CThj)9M__Biw((O<#MX8Lgqz;P;OB|Z7kI_{T;Ufay4KtY2Hbi~ zc*%!|3s2EDkqF}fz!=*1cPt}h$TU6bW=T(aZ#U}w@br|?eo{VH%SDQNvOM8g&ER?^ zpDGK>#MwUi-0=5U%my&HbhnW=T_zzSwtrS!5+++CGc3y{GhKccYw6 z#$Szn?vF7!Z&^{U7S{i>fU6mnN#GS=ToutZW6S^gbEqP+1i~@i`Dy0r%y@4SFjKS_r*k*;|gE>p#mSj&(RZ8L$Iy$#|CTIvi*tWf+5Lh^^URQU{A8=(bqKbB}2(=R`w4ml-d)Q_XvIVtA=rk)$#yR4%6P z2afkH1nO&iXAIT>u9a3Ev86)WFhDoY7vfY2OnCVrDd%dO)@*x?O1j#T_NNm!4!j%) zNJn|k%e_d7a1*mTQ~Bk#$efcni!1}zHK4Far65P$*MLS=RX1P_U>}~`(&y(U+IRI( z7XpPti)C}A9}P+8fo|^sKsJL_KXdh@a~U;TW{))0rPuMp_NuLq?nMLY={TX=<}I&4 zAdl&R_*a<(G2tKsm7)7dH*cWpo_L^}2^N`oo@AmtZ=UR>ha;@0jhn9BRbhU}T;GA3}nO* z4pma43>sD+v9M05BZ5werN)%-j7L8Q@z9(Myj8v7SA81~;y3fLW)0!%I5429*;cO7 z>)orPBVTxeZ%R$3#;M5^e5)!tr3Lpo#_gByue|Rb0XYM4j6DFnVLCnm5XX20ZD%$Y59bJ>CPrm#KM+wSJ;@!j*?^L*ZK_Iyj@2yM$|BC79d=+{`0 z{{l8qG?(h-_GJd$YTejM`f<|~7hjiptj{k_`}l-$5_=%&bM~p{ZThLR#tZ2??JD3f zt%oTvYIqs=Or4*@XY1&EDZVCIcIy2eY+Zr4&K^DtWl4Tvy$Ep&rJ!RuUx)<2Q;2N@ z1SYojTPT;G_#wQ`vET;0C0^2pUKZYNqnrO)uK_RrUjj&CMm9O;0m^L#_m3L?y}0k9 zBXO|Pu*5~z-UJZma4AsF|9Z2KFFz0RQ&7#3dlR5rJHxwgE2ve9xeDMU<$V12V|>q? z^P2&<0q&rk=ckrazzs0;!8^gvo0K}x` zz8_Xl-*)9!ec_h zg4H=AKx)U%lt(+Q%`@K_R}C;f0qHZI^vf*Y0r9RJ>PH*!tPK$duBPeGJ_`d~`rZOG zAxvRO=h@)d2=)WQ3>x9Re&S*&O&9{&xV#34+ifO~`Vh~ad7~lHM!>qq)Oc0_$VCR3 zq$~@o;Un!nlXw*xD1)j z3}HPr4cXv_oH-CTi;$x;@{spw%QD3o0dMafh9)K)ApDbPs<9Cq-}DJ#1>x33okni( z5M{d=Z7aF%B5a(R>}Jr-Z_2=AvGjmzZ1~L(WOEi-1=}Ajm1mvY(#i1y9i#qLn{0W) z<9hoPWywUp>uTwmrtDpy@E-$(zl;B2lAvLt6BtKWoW+X2ZK>%P+~^o+(Y@z*@&Q6@ zNZATzA;wwy`AaXx#ulFL!$Yw_-3jkIjL(x;KB;5E2@M?mHJEO!o<3{79+?oE>1wRDB#YbdLW|OV!hYhxybAN zEY|G>@C<-k3~V2d-dcZw4CCyd&+5%LwA6L>f**~?Y1~t&pueDNh7x+LG~m0j-(>cM zidjwegdYmcijE8V($-j^9pwBD8an6q#>@W!QO=tjmRJw_;q|nQ|DZN-dJaqvtAL4h zTz?YKq+H)>no{g-^n&;BzgSmr{{I-;`>sD`ijB(N8NdKn_+@IgebdmeU*7<@nYC z)7g#K|GAda!Ii1wihI0Kf5r-`#Q-fu*bFDcU^BzyGOUUCrZiAkWBK5oB^xPG2o;CpT=YdZI&sM zesINk@`%Gz4v_wNTgCU}n!&8G0`y*om>agv*(4=jD4t^(;VA&}69zz($M4_N(j`3F zodUZ9`5{4eg7$dNFt}FFxV@7?P2Jy11D!TNxR9Wv8cjwbeIt9m;pOJM->i<#?_z*- ztM=Tzv!I#x3g~RPkF-B@65G0i&snPRf~PvVTCb3Pldg|w>+pUzVKBGq?;mRECSn?s z)v!+#A8xVZv~Gvo9&7l}dBG_^I4J4*zu~W_H$eBqVq9?bW0Z?AgnGbj68+ua!;NcV z!dah&nJ;W`Iw%_up?Ss>RAJgb)T>^VV+NrmM&eu1*n40UKFr8lWu|Z@-Fh z9iwv2jKgWkOrY&$b?m66lZUT`7?~Lp{z6)>cW0G??z?qebAs#G_hXEikK!EgZr_hK zycxGQvEad2HSx7^O#gTszaxwkV7&2&k7b^Y|t;1L6knN|hg`og#VAVk+}_V#sCZ6h9nV-%NV~p9=v1){#sbMI2`7AnQ2RDMy|?HwMklJ4mo z5QV_nZtP1sIs<6S=Uu|XjW#T79bRu{u5KB)Zvb4NL|rEUEUudrxhq|}OhB^QGX9X$ z+dyjWE8=R`ah+R9y0@!v`?=?0qye$3gDy|T%TrI*J(@n|c5;+(h_Uq){~_T##jaj#NTFTC^y{&ny!i+naNaew(aBGr1G5WwUP zp1HEEZNPVc^lAC*;2DOZK6(24+~X27^{v!g?m0<=&wMWZk_tV~wW99aQW+Y{S_Gy11nwVYAQ6=+B3)yL>R6^t)#QF}jnA8Utp;M?p& z6-PBA_F7J)i%%?g@iLu!j}@h&>$3L$Khgxgf$uWp7^Bgh!Ny?enX};M7{mPBvisDK z@I}Sg-d{Rq_#>PZs*K(!qQ|F>vy6fGK+?&9(7!*vcuw)>wD^@Y?Z9MbZDBmP_MdCd)uL9HsGEB*Y@BLd$N;QL^xp__T1 zN(!-=#kgGma%lcI9B6-c1#|=7>-yU?kNDb`pN?goXtSUBr~T=^bsPilx2?x0r?YZ=8uW`@#oHRDt%b9DBp0{VCRntju0$go^zScU}9oSUxCNmm8j^r09T=zEAO6fwWIuBY2#XylCB=^kM+lk^ke4Te&lg8Mmv94BJEh2h_C5q zpR;i?Gb!!~&*j5nFWpQ-F)l0hJQh9fduM3!f5UWE)ndM7rUT$NO>EbW1rDWewY|YvEpqw{iYqul^AE)8*Hv1IRay|Am z911ad(Lsv>@0%FpnAnX}FF0uCpX0f|Q3p)tG97$nDlzhgxL3O*5RZf1IBkxt*M02u z-rKA3;D{05+Y1$6lnr%rOD(2@)xGNNwiIDWF)uM9jrH9c2f7V_tsW_evY`x%wi#W0 zRllp<@N@%U+da_u(nu?&;CZ{Ew!}c*aty}+A7vRlVqo7;&Bf2n9_Us4Pg6IwlO_^i z$tmXkCnA*6>2g`?=Fc1Tga*VDgoo)l0os=deBwSVOQzOh@Ra~@*|m`;36|6d>Dsxh z0KNguWB|2EY36q6wmyFRn&WG`N(JKq^b!O|c?HPs@s7y>zP_bQJnEMLc6ag`UCA6k z+<`q!G$a_8I9D9Et-#;PvlpE_)t7Y5@YE-$-j;gLmi6AUm)+ay&(3AukNTY{FmEOS z=vtY+ugjL#d0V%wL?)9Teo7zf;Cbb=Xsc*z^ZkK^5tBO&WnX;q%l_%_BYs!fmSuox z`~3r82gqi|2{Tt#v415)im&k`S-uMpHxi*CVCCrh;v&I#+)HBE^pk}XEed$arKUdQ zZJu5fr+0nY7xKGgTAO}HY>WW4K@rVf3OUIzq|wrRnt zGGVqGL(ApJ{2#q_o0pA~l^EgKyez z-|2z3(hBOBwpUIQYKfAUwrac_v;0guky^F*>HW`_4V!HWracZwiYsiH%!E z!2Jczf&s7z!PL+>LyQ7x^@^(@1sR+i$~^qr>j?W3S3}n!)}z;+ z&dfaFVL6sNnTqYQ7d*#_hqV8t)6O#;8GV9=p5Po_AuI>*R&RKMadAhJF+`tx83p5N z|6?qxS%5HDKKNL2tZl&ih?aGLe(Ym&(9To4X|T$jSzlcrW8PSqiY5%+syVT>2^}T(`-zOg@=RtM zmM;J-cLEUr+eWQ*FT?xxKgpfa}bvdcISH?N`rFnJS%~0=jk>)`95xRRulrUcxjM z+%R`1zJ>vWf^SgIb>>*}YX0?QVKG%4_uYHE)pWmhlosc$^sxZm$osvB_--p3dA^l` zrrTAl1>k#e+dFTIHM{KtLQ`868mtP%dy`;{#5#M&Pm$C6R`rl50LSFT4W*+G0kp-z zcq+@nLrhdY&F`%<`3l67Zmy z+Z>+nz4N-=z0B2E>3o*~G|U9qhWM1KaNa4RBfU>j&>@ zK-||$3NK}^D5Z(-Mr=4@QeoQwF5B2=+cs6at@l1Pyk0320Ely25u*dQRCXM?q`b{I z-X;sg0a+7Qj`MD%jroohfV>@UUz~_lzd?uI#=ca(Zkt~L76aR)b(f4`W>2hirvmOc5Q|?`jWi(^AkzQk4&Xm)wkPsD}2QwZYZe@d}?s4FCexQE^=D5<*)sUi0_rEzFOf*?PRl_MA zYvE1HZPv6}2f%oyA`8%t@&8i^pq@r!gO-*~7W-mR5=ykcf9YAm1LF-)}^70khMYv?bw)(mH$hYfLuM_&!px6AKP+#yhsl? zi$2VzN6;7kqf&EuM;>qUbU*Jq-!dB;B!cjoy%@#VuqsktE~VuC0&#SV$BSsw61Pd&yl;16EQyb;)jq9=g2(yY|9Q_O^8p6)Zryx`SJGiYmoV~D6>cLI0<-o8`o80_=H1lZgY zuAZJ6~ufGRrm|E z>o^AkNjsdtJF3omv#cI%HS_fL1-CMpXmGIa@5svrWD?*NAM&2q_Kabd*~yhUaZy3H zRoi_ZJfWiJNN;|p7T?z|(gD4w&jj+C)Nplz$S0A8tfR@axAeI21mR>uZ6N;voE-k>80QEYldqL{x zB3)c~c)mA-ze9HIojO?N2z`et*f~G1ao|W>X5R1)oSRKFIq15Tp>$qjjg^w_sV0XM z=tSSZO6h#>&^Kw{Ws}IC{oFSrWXcRN;V69C<_g#JWcDmk%(r^QKYa>;Hq}M>G*rw@ zsmSI`x8KGx0dS59M>%-DC!ye!9~|k)ctYPm_q%JrPzb}aXl$O349*9bj)Q(#3`s>t z_84_$sAJ>zprijz*=G!dOI^=#TX?mV)tGkDDWRW8f^SY)hWKwb1KdhIe_7YlScq*# z5gngZfKA8D9tW-lQ8w7IP&OfUbcN0mgYnD-P6ie$Ft~ZZrFFhN6$005X@Ga1ri@TD z0q+h_uS<;|*W;d`4lC2*9jZ=bhD|Jlv1%@Gc8-3J1HazBSqi#Z{bGk)XKH$s>dNzj zSiV|+Rr6zelH0y6`c}L|WBPz&#>qbU@7iVrJw^P-@@#N1hoGRVh{K!X7JRGe3&7qA zk84^4P|#I8LTBuZh91k$8DvMyx5a-$5mMswQQJCGLLdJ;4VjyIy!AzvDwHpCM+3e= zHA3t+n}P4cSeA$hI`mD4DD+A)_WK_fi+Q!p2kokM3QCKzS=wL11HSNOJC+pA)ALO| z&o6)YU_-^%N(iu72d1A|4|07+`L_hVRrTD;iHfdyhpC27rjfm;j`p3n(mB(CZH8Pz zrSyY1_{Kd9I-7xSD_p@hSmv2_Y@B!j_&%i=Z!QDyt(M~yqMDz^Kt*nLG`|4YrcV30 z6{yv9^Lj_V@3R;@nfJRB;8FS^gYP{<v{Le*C7oP~4Zb<{w5Cfc z73E8%t($icBl2xfU=w_cfhPyw!fw2zKSNXwAa=Wz#*=78IW8OC?rptCm3k~0;|nTs zr9A^=I{U&a$?Tf#ov1 z?3a8U_y#&E`A!4GydK0!Zv*6=(PRbK0%vqx`tPixNBW7ymYJ+O=SkgiB`Cr0phsNE53&2 z_wVn6?W*KY7#{asp?4Ti_pYa(1e?da zCY>}^Z}`m{lo~u3T)Ludu~_h6c{%00*q^e)EObi+*&^=Sz_$eG)(-Zd)n3U|W(RaV zQ9#f2L3}b@spuISPAoV5ME|d20`2pa377UBZhyXCfwOHBuMghvnsEu+>xajW#|A8~ z^IcTIGeUTwqcu$Mkm4`LU}chl3ZVNt_`cqXe8cvy%&hd(h`Ozv*}3NEYsz3dpSpDW zdE2C(SXm3rX34}u?lf~3S$MeiW14(|na;rNSi;k-F)1*&UCN0!JnR=d{JP4Y^`IXuQC3Nlh-jCp03~@N4pQ2X)o9OIy#< zFJ`jOz()^KK+Psl!nUG1K&eFxZJ!$(;Cw^g?uy|{ddTr!xm*%8I{?;Y#NX~nn~$2U z_h>J-or1W`c(%6{Nbk(#*=E}JtS6WzBzB+%k6j(L9c}8p`*elRwg+j{djps8QoHn#du~2 zT^o47m6ERD+m<6Yc&0B6vzTxS^HV^MVHo1RO$}X-iSR+>1&1M}tOD~U|2Hk`;E)A- zd)hiHp(7_atY23H6+KCxNJS=<1ZvAcO9$orIR6(G+u{92{5Lzu)Sksy9^UR}mi4Gz z$M|1C_@s<(TT5e4MO+DeHoFqx448Ssg}ma;0drZP=2g-A-=)7czEjb^ZbiOvYx9uF zQ0Wh#j${A4EI#k2T7|)LRZ!QM?%WJD0;7VvJ=m$Xxm(lZ%!|!zcY$Z=1v+>~JCGOL7CGZwWV5Y$IEPy@dfi~a`&v>Lav+Ys=T~ARr z>UaS2Z5%g2HCws|Lf`YU(xDl&GVo5!N%Zwhs}=i-RORyR-2DmjG96W2$m5P{rM%NS zbg`9AKje3_(+yUjAT_r7ldnzi(KjZH{M+r zQqz|~>*5^sHCh(6Tp$0<3hNi~9?o~}UI6fO5@REfZLjWe`RsgX80bt<_q^YdX((~M z`}oF!Pk(^1kwxOl=Sc=SoTc7@(Uc zzAZK!&qKtBYq*$F(KQxa7Z6g06lLli*JTFcSL3)~@xBGWwj9)Rq#|3qD;6KlH1uTX zbsG>$r>wwxa54l4FK_($wXnDN{Q!iUg$Mi>9cRTL>~{(Sgj2-gz{3NcLTr(i>=l9O zodDp6LRoOsPNbGOj5M}1&dhCUB*dmR0p66F%vT2&7k*yBwkn<<#Mt;amOVCHk3e1Z z-E}ObYAqc}0lpIHpz0nU4S5o7*`G5%*D&h}I|{yW;yryApJB2(yx=C1>Y&z13V z(+pI859ZU8&Fgf1H@9z|f{tZYLT5U}G)-9vsyY+`OOtx6)-~iZ0JjRR)razF2iVc3 z=BcF_r8Nx**QL%vP2xA)5DSuN$ArN58Z%@ui#GnLumil}ro{NnXUY_a>)*$y+h{Sz zUf)>E@_Fm0r4`dpO!XbaFEU)=3b2!<{>X2n+Cu*+@>76`gv%nUO`7M9r#wyxBi*>c!2OlP|S>qekTOh z#N)nsR{ZLYpHDk!OsX3Y2*ADgu&@EZf`rx-gd^v-eL&&-Rg9cITF}!y_015}#sKi=?!jkjrGf8AJ!T_J^@4}c+Qmf$$*@gFN#}_+ z&_k6rit((1Y6I5dbo6bfLXKm#o)xL80eo*(F}Pn1lAKyJ2+N$}DE4KX_qKYZx1<;T4a?g*aML$EB976!!r52?TNf zsz@6=xKQfGKOwL8b}19j_m`lYUs8EAGL^GIy{3Io8EM8`4Qj04B~NhV zy>9L)CR)NE?uL3qS_S!7M=CNr1DIz317bPLG(f&~7pU7V>-i;~1*V#Bx4v$_F$=L+ zqKr7)%3YupH3Q|qR)znX7njWIq#WVS|$Wa zOQh}mbj#Uew*6p8CYklkK}Tnxj^&)J)dC-CDl!WxyX|@|HsKCowz%gCywwzZv#D;3 z_5bf&GHo?_?uMlEv}Ak zl=K*&+F0}<)d}$ZurfOzMcAc{cb`iF?&HxRrQ>G}-E1N;kLu#F6j~i>%=b~Tyx?k& zW6b_I(hMUsl;ge?d_NSYpKIBtLg0HKY_JZG_c|2P2j3>1y~#m04=b>}HZiux=eh&R zYrEsC!yZC zKfT|YwqfiXeHO6fOrpNebe8eA@kOT|a0THnNf3ht*%}Z&+TmeLZk~k5T8MNUo;Vn{ zPYJM&)MN3IR?#)&{zksZ#v2~OYo^rsx+LwK&GLTJ>~3$V5E^Ekm5}(FcqjJZPw)5u zxY;YJA}J7B%VV;>c7x4ctE%aT5v+$Oivsf>{#pooRI(EfG>!p)wOQlNi27!9F`dPY zxNsI`gF$r7>J4uId%Mjm9;-R9hF2j3Zrls*1D_IkzL|2K!fJ7R@6Av;x_P~!crF3B z4M00^wtKrb*fKmTP&`)y?R+l;*%D(@+8m8z1XWxIlb}?(Lny9|DCZ`!hV{69`wjrm zcR9saRV6Pg0>pOW>cIlVn?2uKiv?~O0XP;Ov81C1RTZEBG+uzzZKyP(O`u1!!Fz4j zvu)2?Y1Jix)hfJ!+bsc8&~+2kmRbRMG7TUt%cKpLeM+w_iF@_PH~^J{tpJ7OdChu+ zDB!WFY4udI9vwhy}eXvPFftC+xIb+XV-bT ztm18XJaO3B(^_`oc%gkdXeBpxdi7=I7LWCAFKfGYE{BFDoM zIvCdeHwS5)f5bEdo0x6jh0p*$c4&k=6m860?n<}E)`{$wx zw>6W3`Q96xey*Pvv6;o%?0s96(RDpRcr5RA6Q%HkTb;pZ!n@wy;XyOcL!zHZkN3Df zDBXOYsOW^c_ihY%Z=ID@uM0}(Sni$PDZ<8LZDIG7r4Rtzyu;&nd;4Qat(64gu(6;1 z6ihUD%CW5fG?eVYovQ@n+Lzw?cx7I2O*aZQ9K7D?jUM-3{Z+3C`xoPQLkAYQK9;?G z@2b(J>Am4eL)R5mLl41O1>FeIdz056^mGN}qa#D<=TJgN_8E0}{Em}7pky=w(se9` z%r!RN(~T$d!n>&jbQ0P?Ga_th5dG~1*&cS~7=*uI5bWOpMA?)<3NX&X#9)xR=F(tk ze(~E+M(Vi#Soa^PrqEDT&!vj4J(GWe#{k;b6_A@(+;BjTTZS6aYJc=DYS!CBL}bbc z=KahpmH`e-4)N{r(RUHH>+Qb)0GC-=e0!r25N1z!uTC0&ZOD|uHVEf@BmGS^mDaCsS}== zZj7i(3ZN0@4M6=%bV#pb2h-7i2(@#>D80YGNbfgnqI{0HZ}EKJ_hNvqpxZ>(5cdtb z`8@~DcQtLuTfe3sfyCcU0k}E8@6v2`bfh+u9jQoi=6m#fFaC;-Sz78jfVK^0V;N~s ze)zaZIvfD_B06~F_`XFsz(3D?7f?S3J?|!azi&9;KD_}aLaCl`sZ?@M%nfHpZdX_d zV6FoyQ@7oZ-^Q7k$9p)h*UAR3_g&#LKIt~B*HZWROU$TgfGok4u6D~m7PfzIfK@^j8XnwbpmPPXO9Hg;>j2;FJsO%i44B(-LH))tbPfgJ3A!&Gye}`MnScPm7is5C0LXD2cK&E*(%6Ssr?xq8 z|H_v}C$r7VA%QrDD8M+ao6N+V<2yzhl=hD20uwOxoI~53SYhzH>DsLx7I19&t@|`tF@O1%`X$*kmX*9obB# z7NjqmOll?KmP|!Xx{fVcQK5g~|a zR#2+0kk$!DPgur-KlJfu1H_4fu5sW{KWF`6m~Be{PS<->0ru1x=4Fp#Y;J&D{5Ni( zJ7dACw$qCM+Uf;II%BdWv}6RvJM82H%y!KKzRhk2Ygnh|0kre-K)c8jHc; zo6fTqL0q{0AfJePz!Q8+E9mg-G36Q*r?}{k{XY~~6ZkeY$K#;XJogDZORw-eaQXA@ zTJfR*D9<;N*Jh82l(E_KzCK+GBHTD^k8=MqSD2~%v(OLE8QIR1MHgM(u!Hoq z_EOch;Q_aLVlcm@KhzD{IK|-_o>&I3M%k@+_9Q|>}Z3j9k@ zh}BpHeUe*SD8(3+6T0UT=k&J3-k`AC1VpHNHxy{5tV;!OJA7V%ZK8Smeg~SCTFsGj zQrXR$ed&N1G;*a`mz}uhm;PsEFRKE1(#$WVX%Fh$5wfwa9(*T_T%_@SUrI~;Mm-7m zE*&6mqs?A#oh;Z9{|@OkJE)Jg=EQ;c@yh_@rf6<#vmy6cGZ}pE;JK0dAn&x_sZ+{J zDx@1DV_9aNlc`~QLtkIk-><678w-Ni95zW5&(5-&u)+jXALUVhQ~rCw^^^$Zfa1Cz z&y!dsfxjs;uj=_SF@c4Tc>OpQzkd^Ir2Am+l@(OeeLF&03JErXBChL7O~2UC@tdfV zmC)5J-g|5=V!llgoi!>don2|^7r_A12`FO(={xw`Yut-T($XoRBSQt=-^yCz{r!8l zF?hl8uBLVEUofeweGoEkn1u(N(_R+nmjuHL89kJO4q&c*;Mw@BnUSof&;9Ifx!N(fvrMfK8W`X!A+H;Hg>|4?Q-w7&ujtTBm0kqrf{f^(CP2zW1 zf&L-k7*KIGWNdj$3hA++)0Alnvi)dV zfN{$Yp838#2AnOmikq!Iu2wI%QqB!rAC+`~VQjD4EkYFfOxpj4Gp$iVf97%D52MXb z#DTaKSbOH9#@3SMd_CUhYau`#+wiJi^YK0SChSszMlQtujY64vtm3H_>J+Jt(cvq< zwW?=9{-y(9M7vl!;2O2;9=dF0?@1>v*~l8Kix%)iJ6mYk=;Tk`#2rf~zs$&KKtRr!Uw!)0eUCx6fC44ObZ}r0Yy2 z*O&T)KK{VzPk(#h;QjXi-hJX6A#(g8M zO8c_KpY_~#$64kd-}$H7kK88WoU7>C-B`a9+tQ-LMXIq+F`(AY`18TSI(8Lrfekc+ zo=WE*oq?`pP4)biQ{J#&)2f)=jF`80QARjirQ$`}v750&!8XdD-Dn3l_BR4@6bp|xDsO##GpS9-r?NYD+nbL75N&ouxu3$JNx z_XWj)8>M|W2Ch1oM64vd-!;(Dx5q%%&Kd*X-H64+VATfZQW~l$V!T&T0I{KUkS__c zmwqB?QjNv7CP=f3%WbgAQW6+&TL9=ezMDZh%BH7#Nz`rz)&ba;TWQXFNuak1t%;v+ z8K2UE@+Gwy*9Ap%`?swFRs)*b7T8x{EtyKJR_X$20J|KsjP_<)FIjl|FQeEtDBo6b zZRaw;=}x^+2jw~H!M@mbsa|tQ0P5Q$%eogij>+vMHu~{E*V&w%{k^Uz9W90U9`Wi1nH6Q zEJZ3WB&q1TSiYzr-8P-q-vHj#_NVXXJ%5i=7RmN*AsyLyy(+UaY>svYql)!L_H)6v zpWUc+s46;AlyO|R_IbA=_8XM+&$@mZv~m56>>#R#0%I20r^pSi{jE)UOVw+65FT;U zWzkTuNKa;ca*DQ<6mT>9P-DRFgg%S{a>Rpcnlc0BtcosD^Mk+hV;4WV77fND_fj!d zW(|{eDmeRg90M5;SBvpcIxAxEq%q;@;P^dscPuY>jJY@~jkR@L*04eIe2b?bQyTiK zd{_Ed@kHDcesV|+JBiQO)-x(ol#N0j6?hvZU8)dUrXE9HaH-UD4YRcUj~s}53Nmp= z)guqxRFSnDCLhP=QSs#?Y1yZpSxoq|8Urp78_wpyyyW;_Dd%Zx_j=p5ZhN)v{KH%s zD(iR|-tIgqa8lL7;?!jIr;U_k{b|2@!RM{WH)<@L)_=LZGT%J=yE#JY12jif7n#!2 z`{$|FJD6u8`iuoL>rM7lq*pG`;gvsR#QYevSX<<7qcV5j$B2|w+gVC^0^?j z0$ooR=i-!eZzC~wdJ)Oomhs>E54b<)_8lINN$B_jm3!HD9zo%AjZ7jGBiSKrgl!0b5=&TL6YVA z4sXbrQ_vOMXI-5~JJrtpgl3snRthQZI%rmkWa+5om2zI=wmI&*bX0N!>`XQ1S=}zC zGd(ve7d~p}<2oqb1a(tf>0CDLG28HpFGKm*#`Y`sxRp)GI8XC>uZAq&zv!T9uHNen zx63M*NR?I6gN?yIr;OX(C(MFrbgqoi#Ws;j52kvw=!8};5_EEpH_keP z3ZB$0qBvWBaLH4v1qAPqFJF{u~bdHE|o2 z%8lO_QT@&6`LWh^^z?ibgr2R89q0DN@pH8CCS6`z`7-Ki=;=vWmut&6z@5t{r9JB7 z5R;&r*WdqDz7IePXG(fpQT0-<20zbc8Y7S6ER3eB!*YLL)YoONyv{UtjwJ`x9m{I^ z-aWU8&v+*zMOnmo=Qg$Tc_s8lMV{aL)?p0RU#NzNPVx@KxWaa`2o6sz5?l6^Z%I!N zn~MuK@Ev`mQPU;V(nm0E6WN+e{PfC&O+Ur8)3S&(Y&7kn!Bk7^KK9o)KT??kpG42^ zF2(~_G7o4bAiT@6a`oPiQ^!CV$1Lw+%%b)-yy1q)@3|tnnPz;^O{$6>DOkUQ{S3^HG^u~CzX0WNV^Y}(T@)T4gP~HnOjhTer{rH zQqvr$Fx!6|7x{N;=+XH1Kg74`vgi9AOr(uzH)=ZjXMz+7#Ob1K+sw^-=$`Q3qTEZm zA(NQz!!m;H!QP7#3i^pO$Ek6O3dDMw;98_1%K#&hnshSkZ{Y=3aS)3E7f(N?ARIX@ z-`tNG-8W($Z|!t`)|ZB^Q{Hd2ChgeRQ9;n;Cw=hLa@gF*vAhx*@6Lq&|aqZ&stR zZ6n~m@i}7PqOLQ5@XrM9I3X+N@J4(0X&`=9l6r3ADH3MGwWaMz{(ld@Y)1)H%5TAi|uYe4yD8bH66lNy?4F$B=fl%F|wrtr|M;n zxZ`E@miK~a6Egr`LGA=(!ggx&;Kfb~cz9$l;Yq%1kI8y3YlqQHE+F<>q>Fdv2>`zu zc*1M?FCnk6mnl1o5M3JrcuOpcOh-t(ZE%{p-p9);0r=gSxhJ@!ot>fXs=@a4@)ck+ z*zeX+5V7Pr!4MM>TE|x7&HK3Z0Pgnv0+fHHooNh;W0J$SS1&febOZ1ictf-;w(VRq zfCPYVPA@~vL%wV$pwxIGz{?hqF7;jJ6VJHzfqr9Cfb8!KG6mE&p(if9xbnQ=ppjde zG^vw%sPnpbb{1>HcCc|w*o|_118A#Q+xB86YXiMghnf4z+jdQit*&eTh&XY8a0cL5 zZ&*$i=UoznV^+5T;A6QnN>c^^ZpNS+B5k=Y9^)PTB7{g!=~`_4rZdAhANbAae?P^# zf^+0{N8g(On#5Dlhbw~(z}vRp9xUUDS2yJG5%z7L@5E!jZ6DFmrwXrruhrg#8(j5j z-p<8>GYD5>K{i-~>Oq{%&QGbyG|LPeAOPPGXH(C&j^FfJ%#lJd;A*||1%kY4jX>L> zxEgwZY)eJP<4pi?T27s!&X70U(vb;`hZU4d9S^JXN>lY(nS;R?q&*0CPk8hjp~YmN zT-T4Bu8x@RR@2Fkd6q%p)fAi?*ycaAb?u+3Q!kch`wfu^rs3^1j+>p6wTfxCd>zpK zo(ueX`=-;7)i`a=>n(-j!>3<<+t2ke-dxt}sjKyPeDdEUEg8UfY$)EM#)kNz=su>Q z$1zAdhHa1W!-_a?`yq#T17_BA8&uK%{m9R!vENEJSGtUXZ(V*)7xE}5HT$|P-Z-fS zsc)EvK|6mG^qh$MHg)qyQBL<$EUW0g-|FgNq!ZIk2C7eVqf?Ab@f_uZXzIH1tN*14 zo3!aHuGAYI;M>xR0enB8PZeByz3>znzc~FIrothhoJ-KqjjB9$G;acozmJq0uzO6` ziuftr_Ab_SgVv#*ZR_Li*0}HYvHk&I96e}!sN%V8{>w$zl!^xMeINwB1AQZw%-T2Z zXu!7uWnKS7v+RwlJW`Cs;Ns?K1#33@e_Ea2X*%Gz5d)DMKIT!CbEB6>EH{sL6kyMR zC=dU3PxtwrUtg2oyF13bGy%SKyfwsN%m$t36{y+g9)su*%fdRqH-5OglJ#t)^%7~k zW7%!%O2M{^7~tYhS`W4@vsXJnbFC}NX}sp9B*k>OLfZ&@uj(=8{a!lt-($MtI+is~ z^=1tAtsK9wmP9p|3hI+CD@eyw0xU=ys~Z$u#6Fwac|*mmlx3u<+M#ndHrD%P8R_IG z)fv;rb$dj240%tpM?{j;}m}lGrYwJz`)riv;AwUW+NHNlvT|0Iz z>oxmS4M}LI_F?ucE=y3{OPr=;8&VsA^c0w(QA0Rt8*@7@Cw^0cu#Wg0!%CBO zEWmrbEAn?7?}$Pabc+e6&=#LmTQph`d5)+<_w7ohwQn}{eP{X@yOQY^!3-)CnzOr0 z*DCdxwB2N`J5DzxbPpZcBi=dddRRO-DC*)9txcLT(-9fM6J9)RWla1s_1yZP2yX%v z9sP__((Nz{o$^DpZ?nAM(I4J8t=rXZ-mG9;z2W+)OftKd5etquZ!3Rm$c!Uqx4dt* zE<9$^KS?O5!~6Zwz29~(KeRF7D#CUr#td4|Ul9v#V+l?auJ&G9N;-{2biktCZ;c7p z<2e@GMA+W8&IYp)WxoXt9fE|zqsPZFM%Qi6Joa1H6@(w%A2NlohLti6-SnPxxgv58Kb7!) zuRRVtQ<15y>3fPYzK^!E_LOh%ay9MWp1K*?;EA?ULZD?DTr>A^9#I`mS+B5oLvFMu3 zn8k+2h$A_cYw70)j~r-o%CUTzXgQtDdmajpA~W&d{xb4~8vkvfGnh#nLAOmbVkVM} zW+ipkNp~X;r>Cp2-km}HJQYC6UWd9SDCY{kmHwo0N!lqOU4{a2ou##$mOb^n^LU$$ zv%d<&F)N(sCG~TqbPW;ny|@}ZSxP;RG$3qXg>l<0=QpV4x5d@ZZ#&R}fQ$CkmLK#( zn?6iC@7uQ=Z0mNYoMYXt=~largEIy^tXDucaT*$!=)gnc=Jw;qklt!a3u7^OkyZ?G z-*AeX02>Bb;lZ$Vqnt0MUTxiX?t?MT9ShoGIq#p5uKlsTfw)?Vuf^{%Mc2BRMy8<0 zwj9{@^;0ZnQn*(`9o%;9GVixkD!G~iZ>5SZf;Q^5-IOl8yL1#>ALwUns&rm#LD@2) z@p^o!r&-d$$F{4pH{@MTa31xi;MFp`yW27gxY;X-?`6t9zD^arefcKqqboPC$CWGR zSm#LVRq5g=9`9X?X>O~SQnsW0@J{bIpf&HWIJj)mhs{`XKcXG!4aTH`l=LR^zAw^> zt9=TZAev5XIgq3vvZxo`7+K=`-V`2 zuT*n?-+0P0U*5*=57`84@Nd5zx|S_YQ2>cRcE2g$NjVQON9<6K_(TC+KQ{1)Q@!Ip zFmUj$vUQFtmr5^3rU#pUj5KAOicDg^_E9Slc8-75ckbC6`4}ePl-LIbab11AN#Va)2j&u9X6qm zM+g5Ymai0uAB4zSfO3ejaY!2K0&~s;+U|P)Kk&so<)XU488G+Tgp}O z)T@n(yS6L9_!Y9s{NkdwZ|*O0TdJau$0-YuGu0Rn|Kc&=X1_YfRvNl`x{;Q)Q9wVG zhAlZuKM%_=Nb-iK5<07(8}&RKPO<%Aq#+YhM~6Ma{|+38kN^3wJA~G%2it%1Mp``@ z!Sns04I3THtMd7ib&;p*5okkb?b+l~l9q1NbKS6(mQjoM@;VN%@&wjJrVLz!#kLro zaaGGS7P)S{Dxphk|E`37ofY{nVlDjva`^S3X>)V?GkSg6v3|WdlW=|0yx+~ST_tOw zA4RvEpQXy2uiXp&xU1NH#2r25xI5R847tt4)`rxG@cjy?7jpJuXi_bJYSW587WZ_A z=lfyz(z1B(->^Ks<5Yl+0J!G+K9s?>S?=#c$=L71aT)PFv1l(_RlZc3(I2m_p_{`V zbosu+eu$U6eyYOx!#7tA5Vshm`%XVk6;G*RY`Xeqm-kyuJ0RVp?)`>S?oh|?{0B4DTcthc?*0c?A%eGQlP%RPwFOIuxkGl>$ z(~Loyw)_0jLn@FmEc1)cP_a?ZE0-4E23 zxw=r?fW0_Cx6hrSIiYPca6On<;tzr}ZCwW%H1&Q`qlqVv9a|gN>tw=Jdp*&}q02+g z=g2StO<}f;Lz@tdun2#E$9x-F1bGjZZFxSIm6d^h3l5q&p1T3!+|Gza$L|*t0Sea5 zbG@wsi5@RLbfR>XKE7JHmzrtdTPm0O5PVE5<9DugTm%S5Y`4ABqI^qzcOY;3h-#kk z-@A0Z1i@%dslS{1w`Xjjam<&d0vIOsu zkwXFbS+Kd>3l1PIrgwt)Z?@rPOahz^jc43q!nLf1cYP`uM{c5RpPDKhge%DY=rrt% z2ah=L)9jzU4oJWB-f%d*6@)8;4vq;EXyaILHO;v4qYK2UCma(246d)qOlHEf8Vjyt zqI>sUqs5ql(h8*i)ZHr`XIaLX2>$~e9r`?IuL5$Vp(hX@$9zdi5B8&i@k42Fw_9vP z3NjsMW;!x8asY8GI8u}K!bZvf%{<^V9#*ZSkD9Xg*a5Y&N{^0xpMJp6rOV1ZMF^;k z$B!Z&T-;&y=GaxypCPkRuvt;gfcV z)$;%xSm{62*8djvO;ga_y7wZbAgdm6JX`JT&M>SOZCt~3b@OMD>LFj3`mn7_TgN(1 zx~9r>8SA{PmZ=5Ca?ge=pFglDYo6{9bO8R=PfdXUYryxTVyfrIv8=@`^_T)}0^jQ0 z#>}2>dyxaExQ^$g(#=URQqA&zEArNtT6n+pz4x1K^Oxd@g7lbqR4S2yZ>cX*P|kIm zrlTbjF;ry;2Y-Xg}h}F6ie+IZ?*>ZTt4EG%PK80AZZK1&O(jjCtByVzjmTo%p#{kR`z zwBhWmy;plEcph}Xy|{xTXx=~f0hW2F&q*2gTpA_x1m93Qr}{VK6$g#dgxEldOpgs> zCdED8;vhY}<|}~i(&W@tP`ok4@`VFrP{~)+DZ%^1wDXOx!)t}|0Kn-DkDS1(Ho31| z-Ex@+wDH{pco}>brnD|geOC1^D6#* zgNuDRxrgFj^|(GeF20izpJ?Y7StN+}y)>=}5X~v&lExp~IZl0fiI{r+ZvEOcgrG#6 zJDyXVxVc{}9ypW~>uUwjJOl!d=jD>ZC(!g|-DkG+$)yqu4@-@vsrK}Dv0Std3q%Du z3?!H+O*VmOJ5rsgfypAQpuVh=a}2)yy%7_7bo!*t(>uxEXT|8~oPNyCALTamyVv%( zQu<&on~Pmax!BRmE&un$P+3Oy-Yp5ftr*_B7xdoZLD^p0ew}>H$=dTahxmDvE$7@n z6`P1Xk7I04q$0C^DZ-)joo`_K%)z&M!7cj-iLj{`Tql3yh$hKZOm}ng<3I=K=@iR>pJEg6wy_a1~l|5 zW$gXvV;g{RgxKBdl+hJ@|L~_%%5|&+mLP}pHRo5;@mJ>oS8K#^16 zDt+bPTL*{@GxD%)qlGWN?7ZMHCcTU>NK1z+o+=lVb7b{-$dyrQvZ{a{X?%~y&h;A3qaj~niPJDV?jSaD>LC9HFs&$}x?38G*KYxVwuE54ah`)?((+V!%!y3c&UhSxi1bcLwjovJ2Y=xXNue&G4Ok&n_uK~!{2h1f_i z1XH)#k^CI@pFQ7tz6mW$!uuW5#OnDT-UTHqgiZd^XRV99Ivm&kj}TqE)77UPsm6SN z{%cX`=HfBnYL-GwN}s0N%N|I^lQG5o7Ud?@lqlNqtLU0}w@GYGXX#m34TBW69OS_B zt@}S0SCfTxVr#I5b}oUV_ap5X>ZW9{y@$Jm;2H$ha1N!V?-DH?o^Ku>ZfJ0}9RYXd zv=txF?jo&NoVOiY#<2k2abF54ngf8x$?TZ)dXu+2&FXT2HIx^L)F@J~tx-0INK+@4 zX4gO|k5bW`jPo70-no+Tukh$02ePMb8X8b`8Es$>cnV7q6`iSx^|&^kw{sGCV-`4YCWLnj0l?^FnO0r;|4J1XWjl^Nx7X%6XB)jLmZg18wqb5PhP*CU&V`VbRS@S0H zdEbXP)|e|xN#%3t&W*5;q@OQ`0PF)D6ZM5C;}Gu)c;eGDp6?k6QMaMK6C>=!jA-nq zrD7ZFer(g@G$;7! z2+HR?;m860VFYitG7VYl`6jJ4GmH)NQ^yTPIsZWSFBIC4ri_))b3IJQRY*&wZDmh5 z3?A}3_pjXZ9Rjs=AXSCfSQ&jztzEs~%w#l=c&tN97oRrfdr-!)-j$~zJE4lMS-(yZ zowM-(cpC_R`E_up6m$#Elo%$1ik=%>hz$epV;p!S7VC{vWJfYoc58edD;OWIQged8 z;d@04R|qe&D0AA{|BQ~lo@spSuge5hu>Hx<;u)N)TI=<0@ejaw%?Zxny;oQNZfxKD zonbZf>Y=XS8|CmIFr}gj$$hL=l%aHVWLpSH&gH1t$H_wzFNj)_ON!;&c@Y*i+y z9MgD)Q)7OfKUid}kQ!9Y^(Fl%Ug9=ms&Pk)cyYXL1wGUd1I~(_+*uT+od4_}?<2Rj z(yutrH%u}3J5jMUom_Cwk13v0?6>xN>h&J}8Y=Z%YN|0PpTf)w{;_trxAnmtU+|~l z(Vhe0YNs>Lv6j`eDB7bl<($IS07Y)4n04@RbG#xTGs9T+z+!?^A2tb(#V zA(ivJIL8c#h9WM!-wMLd&#O3((-2jp$IDxM;W!A}oWpyAfu^5}Y36oLqEXIYZ%ZG? zet>Xzp(^D(&a-1_>erK01j4X}=#XK-|4z^biR+Ewg@+FC_*?>FZtT+AjTm#On z%uH;!gX?&?ZQDDI^J<9g2o5gfz6A# zUcpWkI^&6^!hm|xfOT2~&45F-FFn;g$^vAA{{3Z!!rqh#u-k9%&;3I; zDE>nCWJjiUIkUZKZqUCk8*#cJz1x=wdb?v|;}4ev>eFK`|0jEY5^GtOWr<*NA-1^_W<{#bNtiAU+?|zFYRc3g& zr*HRf_ug~QJ-2zcIqU4T*LJW^s}^kQ{6!21ASA)&^Y01_40ZI#6J9T;nbX)HQB8wL z)xs&N4^~mPA3vYGFKcu&hPjT8N;UD^4MLChB%k@r0MR0jRZY{DNsRYmQvp5H(i6bk zj)_W9)?9A$m_v3TDH9o?^8_w9)C+GH#9=iI(k zJxyKA;=;xDb??mh5&)hQ)AKeCwyFB}6*1!u%1J%pw>U*v+9!ZF6jFO-^mnNad&zU3 z0M^sdWgwqw1AITQ@HfvDo(z4J>#r^Za8C?;XTvs`4R~)TeQxLCsmVsbINeHd;mK|r z2p0#+SFs;fLzn#Ey#B6L{(@xwuBo0w0sVl;K{-#Ju!q~6JpkXZm92w`5ZmMA0Ut3Q zyxFrhScL6yng{qsS~7H_-yT-$hbs$JXy}JEyx&O){V?x)UN`ifvMPE`RpzP5q^zd& z#6eMSfJvW$$t~fS9@p@(G`d!sn^KE^S^?`;kL&wXWaIX&r=aVPstSFPBp%{w_Rj4_ zWdOe0_y(;?jhZ0V)xLn@=KHL)bv_&EV9)b|M(sS7=Ku>OZL8bK1C_-XoVQ|k|1DKj z)Cb$*!9O9Po(tgqJbA?**h>S;iFXc_M|s&irVyUsHtyT;fTPoZZ#%#HI?Bk#?>fx0 z9UYOqDC1gitoH#a;Km=@-GivZWh|=pz;b`fXsNxh8IXV31%I>Zru>b(IWqVL@V<}q zW4AQz82=}pa0BA0|PL?`_6p#z}wsPe4Zh$CL z@$3)Ig1X`mik6J&vf*N0o47m2Ykn*bp?nc=6h$N z0&B?tpnLGmioH%@-HzuE;F&=-D4FOyF_12(yB!MW98AKYzGF(Ml*#N#v`h7rYhUdCz2WEM`wb+hns{7{U z^QoznPsssr52yj2*Hqg7+}loxiXN12c#kvq&Mbg+I+u02?mT}EYIujB*S6mGPvrC1 zC)(q>Ql7xI$IIIvd#*uOmvb5Mu0wI2>^%K&Rs$qV}v>!|3vi4G;~DElVJcVV}?Q1;Ep;G0b- z=qX2d9z6C6*-lU#;JX>DWAC@+0!PRea)XNN(P$JHup%tH;ldDLP;m3rNab#8!x>9-#n89 zi-qavZ_;;Csxz12N#_@dx=vz;ds2 z-qO)GMrwEzsYZMQ`uX`rZ1zlXqZZ$uV&o}Tq;c=}oDwx8Bl*-0m6mtj%v*i)h)bOJ z;V}QqM%ehRaAStksXVPR6NNZyrE3Q*8tA#rN&}w;`u(} z5lSs%;0+2orzGPS=E^)AcWty2!21j9Y~Hnh_@naZixP*!_Lcs5Y70}{WL0y1!OP43 zwhDl-eQj#zw*+n5lmdu9AFdbw@qbV3xnS=%e|Qk@onxC`a)<7PEx#i1fQx-#A83pH z{&1N8@Ky1&Aut}T=0A@2W*~me@_zERZ_`LO$9ju6i=`T4Pxx2YRH%hxypNIR+o|2c6iN?$AooLDy?yzv$G48;i^CIWl zrGHTxc@dhqc)b(lT-I~kcUCapjdHI;nuez7WAQd!nlbUjoF}@u0POJgFu>mKyxmBP zv!K#A!WW{<7P-4U&DeItTzdyo)>WaD!|Tl*S9r}4@9n~AN%b5iD(AexEU+-Pzd|Vw z`7C+IXDMbJ^PC!NrT}7Qs^-$Zl}Rf(Ry!NOHHnKJoQ*EJw_rR8h#4@Dfl?Q>T1 zUaWpjVU|I*$AUM=JMMoB=4qya_FW*x)bpyqxmemXeeYO&JA>_Q+yAyIo%3JG=e^xr z0?KL4@Dkl#B=Ctp%M2m<8pCg~V?vh;0PA5{(>TU`k4zKnLC1R+3hUduwK;zPYyr`R zq!|QfO^^)4&x|RhsV$3wYWr54Asfe@eWUiGJy}cx$Ij4VofA<+xA$kdW=zAravZVW zQhivzZ{lnW%4JF_#>U^<%sl7)%JMtwS6Ijxw~|3uOUHwwGtxN8-NG z*SII1>owsNW!$IYW8p5=*H2Y*2U%y>wm1y%wu0|9j>#M;NJ%E4gWT@jxD=8P{78j+ zRaeN$*)whn+^1x3cTP>lV4MMW6Bm9jW*MBbC!8HgOh;!WboqXo7@K7Mc~CVEIFWnB z+4KF7GYdT|(lPyyhBEG7b6=aCUktVnrKbHxpU3^feRFo239z1PO0v)G&QKs8$0}ZJ z!xb@aX7fxx|NN7Qdc%i#bp+M~xJ%%SdH4Mv!#3@sC_l2`q|XY{J98NvotwhcBo5K< z(~rI1zV#QU1<-8_IG6P6`t8S3k*Uo~0@E2(*RCjSIHwkXzvrkW-B^F;&nX@jGo&07 z>#65N>G-HyE&|S#@)GMFQjO&Ywx36Ec9#K+a~g*B7#d5|bD0h!h8*K9UhrZ5$W+b` z_yx!>InaKFmmqt=`Q_P5Sn|l`T{{PO!4dP#lq7jKr+6Wb>0Un#k2qObR@rn9IMR)A zd$+565bm2N+^@=*+BuK-rXVQ(_%I;Px+FaR>H|$TCP7rg2doSu%CBB2?F+F|Zw3I) zA3vsm-LTj!0o^w$y?q^>*tZ74#fEtX;!HmWB@NdE*N2S(_dENtV?EKzUp4{AK0xtXST}eS3$OLV7&Kc0*Md z!bWUkRC2V@tD7sZE)wI}oSRcmRjpY7fvKct;il!-J`p=k zrRhQuGpiKbmKqF@t6;0Tw^Gbfdj-W{m$*y}c$eFSD1e15h40#jFbN%XUHg zb(`%b0J~xF?ZYO%Y5vg+I9D4aY3TG*YH0DG)vvl^MecM@4<~i?_v()g+w<=ZDt)w9 zN6w}CzG$^sF1PYj@2@7_{gU))Qwjf|h7#^!2%x3=z1^m73#N#Au~(@~!dgHnr-;2? zcCp|HIhigmlGtMH&RCaKM}oTNKK2KYtu%A}y%!QEzS$ORVR7P%^d5vd`c6vW$hsQU zXzF4%C^{DUvrU!iB`DzBz7e3Hiw)n1)3m%pK~wMB5iovgBI>&xXp8WIVSv?^%FovXFz^uav_YntcuQdnKJqfPM2zZ3+u+XCwwf1Tlzu+h`#aS zLIC$id|WvuJjM0p5I+&U9oqABWZaMAkijnS`+}9wzt9}v$PJza+yscHZ-fKu1KQ|Y z`nr3xDb7Y33qBSHjC@n;6OiO|;v&{lK0 zIT;?|c~H+OQ_i#5yW7KIGhnH0HBCQem}xRV=8GOD^=jzBItJqyp}fFRx~m-j{XGSJ z+`a=8bgJ2LoQ2m~>UobV>^tP^{NAvNpVp?L?_}d%w(^=rmgd^>hRx%sN7u~@VgH`v z`$uUc%tY24e1DRUj}(~uIVkvs;<=*kDjsqlkrru3-9lo&i4you?Ph7n#uHuyVBf<& zpYS`dD)>Ga0QV{#&(V1L2zim-B|j#3!6h#wDgFG1ctMlJ3_T@R-u#jbY-4nFn15-_OE@XZGB{mvB4ubJl?R5j4eCN_$Qk71^vy-UOD{BhU27#o;M7=Qw7-)4{l)Fz1yd4J<0Q3nKoD&8X>^9d$|pKOWH95>O9Yz zu)xl_9owRNkhw3X3g^|9H}humf7|Dj;=;-4k+N<9Y9;&}5vNxvM2{Bu$H4a@@5nl& z9`n6D0=~Bul=Zp90hYIyX<)%=vFgo|BCKC31$TQE=cp9`!o%Z+{~(k$nJebk84o^j5h$WG(dIL zdD`=-v@!Dbd*L)!os&3Gz*m&N2kmp?9&~Khdz#ZV%nIgyO;^SD55@X(QJQa$W!>Bp zXt6lmo&QttO~C@Nwx>9^bZqPHclWsQX}YhQbG2hn*943Kr;H0zBi70FF73dB@6SBe ztKKUP0YjUgS}yNd`ty;mWk*rBbxSFqc+7Wcem{zk6AaR&3KxJfVC=z;;UD^@WW5;uz&Vx!LqE3m5&M*8070+(5(`CPq z#k252>h4M-;F&2?@?C;A+`d`a(;ecVRnwB~SsSMY%uRH3KP#l$e)f}K3WIMkW0&zV zgYI%1-f+ZvV~m`Y(h&oG#lSd!<9m%47{B|terDoj?HIPJZ(~sZT8WfodGMaiz29W% z$UY44&GrIH=tNDwN9NgC@j}n(BXeB5FcojgeXD1h))nCUnXwMJzlJ`Vc*C>mnkk`6 zJ!3uIzPs6%zDr6i=f8u4q2Pd=QJKxZIZqUfi%L3|X{S{^-A@#7-=|=X@jw(?2H)ZV ze;nd#j}ncPW4}55nAihd&fuG4!Igd<4z)uA-%3FTC{M!6zP0to=QjU&;EV=*&%62s z^AuR6rn2JOn5VjqIVoE&w(4jFAkWLC**)rvff$)9sw z2IO4Kl=Bano@HMw_I$(O0hco#K)1wyGYEgBaog&Qb>n>157g9UYy&rx6>Zl_D&RuCq3l_Z*1sD?l^bc zfcbWGG>M|4y0G}~?M2jOb6R-H11_Cct}`npgw%S&eR)~Lv&Eb8)Tyb*y99RpG!hS#(CZ`IoQmi;qb~)gu z97kJmQc5jP->fN)sY}PTUTJ)A6U%J-05x2JwcW3vY#Wu?ug@y3R}=efWoN7K{x_+` z%=-+l_R77{lK{>*cHb}8iEH91#1b%{PUE^`;KHxdG=5X1*r#+}6oY9wZClX5xo%3o zMbU9>K;pEW1|X*dDAR9|&&RF{4_q{EWg9R+inHeWOj9U8x^J-`P~N4gf%R!WaF7Of zVwpT;9ICSid^XklPr!I>?@>SXnLaCf9i1cte^0kZmZHzXG|DpW?P>BF$PwD}C!T40 zUKfeMf^(Y9Vw>$H@`hU~vP5wg8hVP`UM||SdU#g>kS`ZHuj7dA@0LX+^ZPDqUo0pF zM?Dw#c?=%9*?adq>2t`t7z3i#*Jj{zjyqJpa+uE_oH~XFb zF`Lc7wK3kZ{P{8H=GSbH{#wL;vl99>+)vll`z>B@%DKKtK(_#LJ}+|=upuuvgK++v zB+%vEAnW_&cyMXb#A*9${=(wIEi7FAk^Y#m5^q~>aPH(uKh8RPxCVDXOE(~%S(5O8 z9~_X2`|>*s{mSeWk9V1_mvv8?QxI=AviW!%_|E}%n^fdH7seDN5SE5F!Ah+$(`!%(n>f)xI z(-{=tvhaLEtyIAO^eYPiL!xucb3*?(X~B`?*=6}1aLyQt#oapv-E+* z?oqCT+}>x^Q;i{wjd;u{)px*M+yet)vb;|b{lPrIvrr_FXj3D+7K-V1?6$si%T9^SvEJrITlU-8yyF;n z`(n|pkDpbL*zOZ<30Xw;!j<#%#r-rSa5qfq%FKXbc>Z;%hcsd$)=l%8LqtdoF zV%aO&D7jBl*(&Jft_D8RtlS&s70;(F9`+Q2&2^;i3VC;Hqg;-57{G2QoZJ0(DUJQo z^Q}Ippy$w4hZ6l|RQF4*`^Fm8JDVuJ+wYyPPk5v4niB<$ol94nD)6KG_Qq-o8;C(7 zq$ESVrO(%9bFo0Qwg=RyiLp>Uw1cOW?EY9rJxN=Zj+BA+BDL%LTEes5p5KCkqVAj7 zv+U~U+p%3kP3IU`^MtcvIxXTIL$=&r#WV;&NKO4-BLUxR5OsPgOos3#8+gN!@J%$)?P|qo?1DR{L@yJBq z53F?l?M@7Evw+(EiR!KNO6XZJUF!1p@#=-7C(GAXK>1apq7UDA)_aj}e3C%t{sDWx zQN%If@7`EiGE%QM0J)6+-v}YthE|?HIE?!=Uz5gxOO=;(GZm|KiqLt zn;=HakF2}g#IE-Nyf=Orwj(QEC9w<`r<9yb5@J$N7 z0j@!JlMnqB9i8WSsGsLQ?m=)I8-wqC+uCz|pV)c|(X~v`^Bzj_fRn|9!~1>Oo|eb- zIY>XFO*LDip*yv3R|R@Dz&EM)L_8?y@$G0w5}p@~%8M5T>p>&8QU0B-gXv;NR<5af z6a?>Vhv!K8n~UsCYCTLcg&L?{c->{EPVOLD z4?^lXm^Q&E?A!BRFO%YPN}(iwwFTeU#=VJC3h%4MI=3Ean1UR{axbloRRWT+V*{_g zUDpG!HpH8~3NbLDg%9frDCZ^!7RQ!7wdBVSfZr_2`E_Nfz4mbQ7~%ErQ>!rhs$Bb!-Oyrndi8 z94EpCT-}^Bgu}(^NIl~?&e^nOj%0vblXu!Z;xp}Vra&_ozv?sRPo1NHQy(spb;veFAVEARD>CuVl(Pe{ZkW7&N~c6aJpN`ni4o zdkJ(<&y_K!;QN}lJ&_KE;B8Z56NPlk37#qJ8~MQpd-XP@H4gIdkt?pg^)CAXV2f*h3o`7#&Fy>>Xp(6(TXqcZK73ov5I2#?1 z{>4PBp`9Dp7A17t_ttL({T$N_zImSSuLod^!jttV%|7rVrJR#`$QguZ@3%O~KDTT| zhqxZq`}s1N7x`o0%_+#5Oh}ncJGZi7`YGB;WdXox#0hBEw9oII*S*ga3P5yCes~KB zZc{*OTi=84O)K;*woQ=Tj^tR}e~m%Q(rlN70n+G=+|;Ff%3=gbC`}%Sw1YXta?Z1t z1QNn*+c~ul2X*svt9yy3`|=zGC8+5fi}SFkNCZ=qAL@F~D8_bJrA{-H$1j%0X#k*a zpRa>>xU0R8F1dI31;-tiBfB;SWT3mY?H;sh=U=Xirx^R;Q1?sA2PtK?$q#Kbv`I0> zO6LP;zW?k(%JauXSm#L;geO0+oRwV8s^<*8IsMpk{{5dvu1iTXmWF+EzHbPxG3{Ig z*eC#@sGq-5Iv3mP;p2BB#eKt=I`+e1)cWlk?IeoQIc=JYt=RNBg_>%noI}_JF=g^$ zzhbdz2Eaix_f%xZUy1w^v!_?zlh0^E1Ja@V*H>=DWm~J{!yXg2t z#|kaOIL3R&I%yp14f^;Fh2WZa0a?A=gw}YQ0&1i47^Cg**jR~q#X+-_V_xX4-vHfyoe`%> zN{7v08}a6@>J|Dldoxn?0w03+V3+DAt!fXuImZ?3o1&p?t{;N7rf+w2| zVrgi{<9{i8cf0peb8r+MS9rmv$y=Ey=h)80({dBGZru+a9R8ubTr!#%_?~&S=)= zH@t!7oknbUPT$AR{8ZLeD758u%Y6*=Fx)a^or+|KnFc5J)sMVD{K88(eF z$@87^ep9y%d%j&KN~^XUE?onCuW9e~s8sN!O50N+WN?PBQD zuoC*Kp-(h<$pcOo3cg>`xF{Q++2G80VST8ND85Bp?jStHfqyhnL0oo{u(=qU8Tx%L z#QT-5zHP#6FnG5QNWI|)N7mhx0-cH?I)Hb!_7cQO@FPK;e&Q+<4uo z0dc8!$^F3qd;#@y(tr4)?4UdYZ_@dxb!d*LIeztkN45!$1;6_RzkGA2wYa)D>@nx9 zB+W62X$IS@c+MX2Mw#;bX_~-;;|0tiP$A^P4}2TpxfO6m)=al8>n!6KVX`gj0<{>HMnF)Ok76&JpX) zRC9={A0BXS7LAH4>8rpeY z2f$9P7sl&LFE7e7EqgoHb>LlGKTS4IlyWiaP3HJUQ8~Br9JjrlJVlg_OaN4(Yyudo za8i`Hg09ihp@0sGI-kdC@RG4dt)#flUgFn7} z`vSn)K$TPS`1Gwr!}hR(yl-m3qz_c^eE~J?DXkY*uP(m+Yyacn1*N_8>G{vL%JN;E zERH8z=kI2FKmQqRzdBCs>h%UtY*o%{L;3IP=5r*wCLz$)4p@Z8K5dr^IsjW!TNqHN z5J6gvY%jFe3jFR^;yFX;i%r`!gfTCw z>7)aVJkMb{u^$LnRvozHxkZ3(xh{*)sH8+k7gcoZ#|Bbobm8k3=P9{FQcm9h?bKiI z_&xcP!JhAGH1mp-W;Vzxfn zl8mi$P_V5(*7YA59X)l&!UdlCXYBn(|4mZI0)SiWH+cC3~Ny0Hh1ewi`!RW1GIXl}#^0J4+aVe7W_zfUYdC(k z>}Y#$|6lKSUESXMV)Hb`AA@X;_x{wtc5ZKe$?wm_P(>Gr_O?h-CQzpy`T^jc-+x6>-nuR%yj6PW#zOLAVX9t7_ zr15|k1=F_tkT7yqQV#G-e#b-72VbU_{no`i+6mBm9C%IZiCRxMsR$clXxNO}Lr-j9 z2UdQRc4uWw8M-TTx(|4~S^fO(7ez)t+2bu9ar1n08Pv}?ueXe-qTO3Dsw%NY!wdfQ z0Kj|2^INw<5X94uaojh9bqn~GN%nr*$7T$8zcSD*isvtNJqxhCHV{rJ?U>~91!{sFwR*cw1MTL$Lb5fDYz0fZk9qxe@& zG=A+=M)KpVvN9~@0X94XnWY<(7`i=dCl^BN_c^}%IB)DN3AKT8z5{T+W0dprNO1#! zAnmM?ch<589Lwi6m5v+)i53ZbXAk(u^S{_`1&9z=zC>(z2hO)MFf)($j5e(Y-ZM)n zM#(enWmE`hi{i-8*(V$vjlRnf+dV7E<5oH^X7Mykz6pRQEKzU++p8qW=Y z4UpCzFVa_SSuC?u$tk^7@jh~zdk3H#nEG<@_+&;DC~M8C+&`e~W0e#S|GX|jAenGDnEyPuZX;@!^vKm94q zUTH5KG2zYb6F@`^cs^J6Ja@pn1?A~`K(ztu(!HL>HS+71I)(TR#{nyOJASQT&F`Y? zB7I$ZOk;xrW8mKb`$qe;!C>&?BHZ86Ml+bO%KPh%i!G0mQ2-_iu`paa_2Fvmsx&g)G&S znoRICd&K#ePANe5p8ejZ3cBG9_t~5*&{B4_?D6k{gDQYkHmpDsmr=^W{>xU zrDf&$uRm5bbM|5*C0Tivp8p1k>+DBp({y`y+bxUxM!#?CHiuJOXezRye|Y;V4OM(Z z8gfW?H3#?+*+Az(y#$4m^gCH4eQIfPFZGI3iUl75-wd=r9{~7|hVuX1Qub!&w;Pnw zZ8kjObpYi=QA4)BfT>>+PG-uWgG8v)n02g>)ogYwcGMN|K?wC+<|H>b`6o)043 zl<9WpF^RCT9YQ5kOyWcs*ue2AUCMtR=zprV>?mg+tt9l7XUSeMF zfLc%Zk)AVDEbpTF@bdifXyPJkU#7Ga$o(DhLK^EWFY((Zx|Y1#&-9S#`2es#Hih%& z07oh3H^+c84V`J{$a~3PySxaYwR%%Olrj=Li~_%YSv>ZeY33iKk5?Ico`w(ITi$*E z-PZ@u{pJmd3%xObjqMn4^J&8a?zHpd0p~C9agG~%7mBL;6d>Uwfp7qH?iV;9CxGy> zk>iw?nR>oEbS}zCX~fs|tTQ4h$Vdg(&Md`CZvujIe(#h{CM%+!CzW%6X5{pSwXujs z1E=KmwoY2>A&;Nw!(KbuSkkY3LJQJKE|Y1v-B6>z>cfb*P> zJHVgXiVQGAxUKW@Iy0d2uw$JwAN(5RYt~hl-;i3+OS(S^FWAW4ox$&ToBgH8$IO;R z>Za+qgGEp`1_T_G=5+x5sqJZ|xf2gorTRQjCjE?b%*pHA4^m*ykssVjy1D|m%|kw$ zX{d@&&hs)=e;v3N9$xTe>?`l57mkxQB(&zj->qT>uxE?fw8LPVfgiJh&;~@=+>%H8 z+}`O}4-dCf(noTJZzEuJrlBYg*p5ZBG$HzGpx@|0c%l0`aTv z=^!+Fz)x*m^BaPWPOXVB8_y&#PRJ2%#mEEhgXdROyo*_FpqC5iw(quW=;O-S? zOQ0M8oW0t6V1t@7N<87z($6K{`>lq1{*Gm+IeZxObB+uDpHYP~T-P`Kf9m@G2_t|l zJFlXc?)ky-mknjWBfcKMy#zLCOn`nV^9#-iP7Nj^%0N2U#Z=x0BU=V?2OlVda)b>3 z!uS1m$_o7&TI<0^hju)U0G@5s>D$QDe%n?Zoo~u{zSBkkd43?MY~K8`oa=Vxl=HM7 zJV?G@8mFf8^ZjuimH^$BPf%jL*&asQG9ot$z^yJsCV1qp@qBldM-MU2Q;+|?WV-|M z7vUFaJ%12bcS1=u(STvCpq{*B^sR!l$lv|~4h`PXr*LO;Kzsm3zpT+AqD zBD?~FK+8MwICmZ?=d>mmNoTNKlc-BpI|t2NKzAzBK0y(RT|KQ1s@eATq7zb5>^DHx z?p_k7LEJa;e4n+yyT^Q^U^mr~&Qv^88+3C==KV8hV09;GYUScB zGazfiZ0cc)b6A-gIjFg?CN_ITiI!b9&ILdvKr0!-Qvkn_=h!R*!)7xp2-{aLe9XVENU8@a{E7MRauW3Lb&96`H-ah^LgFmFdKx1$| z*;+m+lk=ZWx8M9p*?IGH_TfK#60zrI9*;iVq}V%9CJIkCb=LugxbH;!$DwqWh}uSC z-uKmm)MoHU+svj6gfvLfA17U=h~Bl8jw2sKI|$LXlVivQ{QCWb`0Z}Lo?##sY8!YLaGaih_kwqA&t@0Fys>!m#gZD@dQXdYk2$xAm#GarGR?dg7|*o#MjhSi zrF&n$Hrl+X=?2LRVW zvnN~t z_dBg8;F$p)197Az9X#F$XLDurbS_yL{dHHyPJ)Zq-R}hoI@?PH)=1AP^A@Z3!6boi zqoBjVQAeITafDkI8dIbfKen;hi}TI8)DgJ?9F4ND90k4rR}V{`x1G?K+fy z{z>Et2SZj=(C3xj@9n16A&9#3j9YA?RP)VtdI(f#-154v`AfFh)ZOZt%D%d0XXj)LSDAslwx~<@O}h@ zcTeO2ji(&r=@+(05%;YN#YNX(TL9ta1&6VsrVOe+i%@S5HL{V``}U&um~UNhu{Abe z@0<4bG6C7|+A=ZBzDyGZ+UzE!T_2eh*W6gDaP=oqaf&dhVdn@_@fZ z4p1BU&XjWp!dH~O)~6MNmpg000D$jb(GEeem~f_^i-3#?t!277(z8e`c#<-Q7#r6T z5T4_`U6oclE$1B&N2iFr;)n&8v@yKB(aquUC>e|!2v_e(0_ZzNE4Q9mIp4guK_kzx z-I9-cTRk`Ad2EZ*&9_OZeZ7~R4W4WF7~A$T2!a%0T?bb?uqbMQ^eAg0m(8qB5=ay5 zXd-K5sf|`i;Ek3ou%6lP36MVP_N9QTG@eZd!?Mu6r$&$2y`X&=wQ<}XpjveRemX)` z_IU3EuDROG=;9gSVPA+xh5*_W=R_3h-OWDQfq?LM2E81>TJlyKICpSuAa?D*KfL&9 zN9(fzfdA|-7Jy%7W$XM;7?f|#PJTMseeu)ThyVDe!|_t`9Fr_#D%Jz!#2~09zw23ox6<3+kXJUf}fJ~hytL$f!)J(f*eF^jfI-I<-cdBMqq*Hp|g6J)Bt!xqf| zUQK6IjfS4uH^DWcO|Uhl5y6)>jQ;Hc#5ABWW@A5{N&Emjk1Mps+mqz$4A0vd> zh;&AzHS$ovPhI2i9=h!2@XY_Suf-y^sKdSq~ z^yI{}O9%UU__pqzT*x=~+408JQffLcbl{r}f~u_Xa)o2RlgR2Ds!l_H_cm11*)AHu z*8*V4zG7l*ED8&SbOG5N{hU&JlflVwVM4RAJoJY+EgAQpE^gM=X)$z|*ulY+bf%(n zKMUUQY|m~{6F$h!6zWSI;_w3!=Ui*oEKlt9X?CEX=*~)1Acw62A z@4rm;4WF(4K%j?jg6GSZqr4Ym%Wa0Wqb?bQ=XH%RTL+NmRy^;@yu4rEb}#~XciWBq z28ShRD0#l2p^t4xS{L62S&#O$?pmhGs>J(Ev2l&pk zshcV8`_=G)`R(C;U_rKxcx6)HEw~%B^TF$V!$yz)2^9~q%6T~1-dQS-E}MwNh5HKX zfVa&v_;!VJm;f0o2t8H8womiGJQMgPwkVre5cT4lk&Zxjjc&JS|fr1*Droy4#MXCWBB= zp@{v4xrkcw*ocS7yx^;i^o+#?iqH%7R76?1n3N{Eoxnp}@8YrCGmG_H=5-XE<&uQb zAk>8YO;fLZMWtb)d%0|5Akf~8Wm%f@$)Kj8nl~UMyx0JiV<5F}kLNWdSWRsOMZVc| zO73y*_umczL|v$Nd(5^?-MdYh!cK`&t?gwXEp%)H@(!$t+ML_znc-`?Gjsvh9j$&- z!F=TXFCOq8{6%}fe_4a4d~0_4r_3I;K z8K}|i>grK&_F6$YHe@ISC$FWHN=>;~8-&lb7bDeU(>n1ygQlAY% zYzQN~PZ!Q~%yjeYkl7HBlTIXNtL6ni8oHwgE`qLr{760CLN`y~TMYf!dvrMnzi)MO zOn9QE%lt4%^PfMij=$Lhjy&KZzV^w5=K_Zc`a?V4L;1Ju^Gk%OdB7XT9dLwL`p$6K zJb~%Cy~iNLmN5;spKoBNo-sVmAnxmCp|xIEy%n8>AI;$9MLCQ=57WiswuR;}4+Z{C<<>KZ-Z1U0?7OLZlmkv z*l=_@)uXK)<})kDvH()^exKnOhR)C8thh%b;+h`x~ym? zA7?gPyFQ(lU4Z0y#p?;P zKhv+NiI;q9@zbsSpa1>o{#QTU+J1f9dXUM^d8MB6bL!Kg@wL66F_r|p!#N!qmic|q z{@&?3J~A)^z@JslFWs&K{Jr5`s=Z3Qd&#LyWj1!4P1r=GtO<~X=z6vJ?0p9KUfF}K zgKfR{TTQ{b#lOx1Bts<~?v;u$a~$P4{`Cfs(34fm@8SDGB^aF!S+vhY90fC@y7ZTWn=)@ z6wybb_Qc@9{-A5G7i7zHbZM6b*`7ulZpkt8l`SJJ*+&N#?)ioyy4wM{cRZ&goA&jH z9GH9jH?Ic^w3{}-+uD)%?}zcuW6`xo-XE-?%S06Uz{$Mehe?QS0NkGs{e7jIE7<0k zZ(HTEPq?CDbK10@*s(Bp&)QU}U2g((^sHRoTaTR>o6MVQ*oO3GVYa+|>?3==TZgCu z`OE0)-z6*b4O(3NF)_8vfq6?;Z%11)jiHYNNBiR-n=Rj%l*=dpb~7bv!7y%eY9ERw zH+b4N9tLbbmX-`QJf!*n$AcPz4W)U&V?Q;X_Q4)82sojrI#`* zpR;&}%yUO?0NLy3HR8S5Qhd?#e65rBJLej^Nv-uAM+Vgr`_0o2E#A7LY!w?pMsStH zeUqjh1GOA#<_x;a+mYw)8mpok__hx$z;~Y`Tt4*n!RGcsVFMlgN`F54v5dHHiB;Rz zJl}gs<<-^B_gas**s1kdl5%-YCB~f|DAAT4+#2{sN%lxUv7F7-&UYrAC{Jp0$F_kw zdJSNmmCO6z68XESOFxDf?#ui1_0;7i?>E}+KzrE$;`$5= z;6sczRwK>WGS z4_Kwr9am7$$w6>VVFrqO|gSDgyEHl%IXZ=ygqfN-N+p0~|F*as7;=b5*ryL;1s{xtSW8LU$a{2TTCG+@wJ zivNZ>dIOB@`R`Mf3HYAbpyu*|B8{Q0&y;ZyY0JCp0l2TA#v9JGT>h>s7g^w~^@L0N z+ZUFu(Y9T*6m_msyLfRIsl#CF0KkQkZVKs$5r@VHmbYafHq_b|qMUxwoW}WXE5zp4 z+`Qoo3Qv;|C{)co^;oR3<#?VOK{i6ORYgl{TfUcnYX;#q0KRXayNL(qx+!H@pC4Re z!YQ5;?h7CWoUI4z?gc07dN2UDYtEE&?q@&|UFhgcO@D3PaNCx>;@Km9W7zKHOY=#5 zNZwXP;7m`yzID-r_yL6TalaV)Yd4GL3%@z^+rVN3CKnI*ZB;_wvMB`F5ChJh@yVUx z*tV*AzVF)3%?r*-=$;FF#IgWe54sxxHaqU^d&OCuoTlu3Ae>F;=A8n1pBwz4)#do_ zTgGHP?0`7pz#VWq9!Q`&=LDbAI1uNuPt(1~yPNkor-b+13Oa$c7F?$dN0rcfi%)cT z%87b#uGmcvr_ElK)0vHhD1Upc&^Kc357GnfUv9g;tlzYxw#UwMo<@Z7M)O>jfp%)t zSLgZ(d?O~@_m%#rBnnA;5o9_~$Ci()$?KiBEf(9I>dFIO(>kpyU>mB9mggG-d%Zno z@d;Bt7tlStfIRPavLgz>eKh>z9&gw|0^d}cc<(PwXiZ+SJY&k20OC)-3IOinYqtl_ z_uwVxlw(XqcT0IDrQ`mw#vk#=Adkj2vEN3W@+q~T4T5Xg%gy#?_&8m+k5dowkl$N6 zM}znK-QfAYmg2o7g$SwVo9${Zx|V{vynY z^Y%Naf_ZK7db8MCrrLp$r{!Uzp6^{#L_dpqyj)BL9d*=8QQDl}XXI3J_j*$>#9^GO zX8XL|FH+*jG}Uc9-}zZVTd1FClQl}Htb$SDzg}5=sGwIzK3>Z=BZatdmZ)KBNbUI>-vPL#-dP*R&!3$f6E5-K@?E;H^`%Ka7HP_K{?y6=wzGE}-%jYKQ0E2b zw4a=LB&RH6KrZW!Tkkjq)!(K5KvqV_h&<;9KS_X_rw~VXk#w86+I5mMo!b@BDL^;( zeI(6l=K*K@{WVp0UI?@BW~EmQ>@8O~vdSPXoQ36M-~kU+Lucdp zNCm87Z0s#(p#6}FQ_po?1=wzV-o}MHX84Ka0{=XNo{T5V<`m1LS(~tFYNMSFQ0$`C z&nB&>yzL@v+U5AHj|<=QsQ0npv{CQ7Xy4eGWdXIIm~W17v~&hN-c4FUhoKYjzTETu z-lL;*bJ8U@ffY2~ZEA1+JU_OrZ<8J%c)_#y+Nk<@KCqfRmG2o z>apN#PizFR2i_PhJRA2SpU{_NPz_e5Zf%NmM_vgtoI-b0JoS>S#R;%IWQF7_ZCP{>ojI%^ObL+n@>yf&Xop; z69uT)_?-ZfsW>gTSI~A!IrZQsK-bhje$U!%gxIDU)9qe!7sV>Hv0<_d+_$6+Eq8DB zl)?ArV1b_>wZ}kRUULWD33TVp>US?QM4cDlXr#hYn&GwZA){uIxPZvjY3Bb3# z`alqlKMfeP43p}EIIgsAbphsk9fW*tZW$!oJENL{xu~WK4Ly%lSiHFdhuX1jpqj3A z{QcGmuz{}5)&TIVwr&7g4=rNWmmMV?+p3lZxhi^D1TFrY0?Z?C`1S_CPVE^jJ*%eY zG}V@E)G8k_+*=Vge74s|^)95nU43t<6D%BdU>PUa1_0qfKL=my}u zCt$m#Y$NIgzhd6-Oh4bx_kzWQ?;m&PY#jvFgJDCTfj!|eZ{F}X<{9s4=mNeu7S04= zHLrM~t3zJ}oOGd~4~~VmgM;B(=>R#AGXX^*{Z$naHiYmws)HyuEnr*-I)y|6Gz z?w`4UE@IY!65k&=D7YNQTXGn5p&kKezt>Cz$^nkYMvT#O9Q+ zhSiyu@P22JXv!!!o0Vm}Gm3o(SZzGZR88#Uz+5fMnWz_D3(;)M2O_8Ms1^FPv54!A zi(dVQ*r?q|)b{{9*LmNK68pxF-M4}DR#wuDK5}Qux;$)?4s4W$KDJ!O+ipPkCBNH) z5;5No({lGB@VIZXK|FhbWN$bFZ{+=cV(9x`8W}v|V>lp-124_UA`9x=4>ZjYQ-@_y5;R`DD!?i5xexhDmPn;6?GdueZ3+&5G_U*!02-fmc) zywDV1Y*01Vh1UDc)T={Qs?`%0H93o?x7QRXV z2W`Sz$R@`yMl;XAI|F7rMzN;dMA^kT7^qsWCJtl-Y#UX1!|Oa9dHxfK22ggT?ha(b z*49=7yc-9Mo3nw8~GC)1NZ zon8O4|J!W;AO54}_hHlDED50Xoj<=`l{QD0+NuhwQ}MLMZ@p^u0dkIW3`E7eH9xYy zDXAAWd-1pOu~G7fr*?2Z5CJIX^Q#-@5vwz!BFeKcn}(ZEvkltOFcbswJ|)U|$YHZt z+kT%9Tr1UPP(Zx4i}vWVSKJlSw=qz1p>*`^lqXyUHmfSEGbmnUW_pd3lhlE5EPMR8 z{*K!_7w$zzYBFrHvx|E6e4a%Z6nn+92%CWDG-!gGZlK(cHG_0ZVFnNR zF$EZh09#H~(v*<`a35eV={(*kc*|mKBHm`I=-IM2T&rt-aE=Fu5F4BHU#=GyX&Y5X z2Mry|FSY%TNF5h!FZ>_dgwv8ek7cK!KX0D{#DepTfNuueMnh-2{Zy64Q-orphR%T7 z?I>ms?4P5qEG;Vd2H=L5DT8nR4epWkg-JTdk4LftiBoInS3iEF12#F+uYm2LFaGdR zZQ{S#4k>xR;G@WfWzkY*N4kWdBPU+^qu|G>h$gPAe?9n7j4Fj zw^%F-t7S*4tnD1BSvY$YI8QKdFQq5;cQEYdfC7lK9cY1o z?;|eYlw;P(73FgV-v=tNCZm{l(lOo9mo5vi@e5btzRd&fW}~HfIfHNVGdJ+fpnLcr z@W?4lz&9z_mbwEVXXW#c7<_+_z&GksXpy|3B3|zgt92+4^L^bE&r`awI(+1QX3y6Z zV<8|`3$%0oGRjBxYSiIMobUT|*p`7gJm|;%Pox@4*xSK(vHy6UJ>`i1KIQ4Ys=azl zcQSx)2I5RP&-}VG1I_2B6X|$xXU4%dX{r|n+Pi15f9c4a#V_K22EKQ!vjr7g?KKte zWC=JvrzZAWQk8YvaXpUtzP1SP%>qI2dP_X`cG|z$wt?;Cc9e@UI=nsG;T_UWtb*?) z=;RK3b7!`M=eo`HB?fhM@u=HxwX#2MpVvzVd!|b0Xo5Z90N<-=Y*VHa_sUDXhMrp- zY%35>-tSfXwcs1+)u{D)TivPEfla9c-JO@XOyk;eTL7&qwCBg9+v51KKdui|ay_P^ zpw6oG9&Y?$pL}jeIp%*jFFS8ZtK}YW-M&m?kOcpsZEg?0J>uF?zd=Xo`XNqv_`B$t z1m6{_v;W4$^2Wb){`LL;@c4^=^FKNHv%~-S^7Qs^_7kr_adI1DFp)r_ZE)FzyIl><_WYR@SgC?G@G;xmP9qr19v>|$8C5fiKVtD zteynEn~Th9~@F-|D9iI5XFz{xNx2S#QO1gJ(S$o|ggqw`~~@_)EFl4e-ra0LyH* z4vRSNKEXU09QdTWM;gpg!|N@7sqWnB&H=s+v*dd&W*LKB=7kPgx$YA66l2XxU^jK7 z!s88xXJ#?$daAmPj|+zu$3fp6>@D_Pu-Y8G5`4>1V3`(0h~zRU65$@9wqsi(|G z{pw%|>l;tBffT3XQc3jRPFSog07zPZ#xx!YCs6_*#Oo)pRR=g{w-=* z2#qJdqrf}ZPe2Sgv76l4IR90|xTotEcj_x zrx9fvK=|p2YOufy&UQ?#d8kEJNT*iq971b6WeWPqTm6mRrGb5k7w@vI@RYy*@7@5& zSMefqH%2_*MV$)bS^l6qu_%Tc*8%kyx>};O5aVKC#g^O zk>vvKO;pj78oB`RFK9!Ajfg@K{h$iCUVTy9PU=zH_KGe+b@wPVkVyN)8+pM~JUBex zIrn$WsJ+Fuhr|C58E8{>ho{(Z6=i$&P=Pnp&_4mjnAe0W% zlh3;a&bnR17;NU33lBQ#g_pd&bL>Y?qd6EDh|wJd%(c?E*E17II>?Dqh=nR32o>1D94r0I!)%nY`|k0JeC&XJwPVX*079d}j|<-rm8t)q}?ybn{uCQp~2)Wq8bGljPZ*Qu4N$*U$m( zDuB8+gunDY$y9Tj7w|kSjWTei=qd=0b3nZ9I^C;N6F>u{9bU&W4Uh8Lj(1DEo77lN zGgd5rH$XPi+HsvCro0;6SkJ%6IfSQCyrAX{RS$gZW1ZIFxIk%M!&|#m8t=J!;3sx2 zB8=|n9zl0U;rl% z>_~ij=XJ+sv+NO{;+ZN=Nf)-vvb60j({-X?#jr=aEQ^l?Ocq(3WDUbIJUj2v@ z*KdUl0-PgrM$zykG9aG55sNyZ8@m-(R?2qm8+C?3WHbI&?d^uZDAUi+Y2r*UsfsKf zK-HFtlmA0_mm3!#`^df?CxdThrSZVHe6OjvU@B|2FzA+4qL%=|tM=#Otfb;srP3E|7q3*vpuGBW#d~^sSn3 zx@2&Ke8kykKDOV|fH%^}a-Z(&B&>V;P96G$sgV@2_;g*QANlkP3wNZ}dBbtx9P`cK z`(RjxIPiu@Flpb`r}v`VJ>R5`DTxKYzxmrhge_vdO$nV$gpD*!8Lv1T=C2JN@P9D; zCJ%@CL+;}rMq8qUZokd5Th+YaRj`Np=TwMIQ$&|w1RBeEeeKGM{S!dE&Fu}t z^1N=QhNcFz>vWz#d>vsu>uw_!ywYXhJC3W4-(TNS`<0)}KbzWlJ2G>*2pcu=-q>yo zWViXg+kqeh>yym`m{aHB9y`Fa-s8OsHF@{uekfX(mnD@zYGOlh4Q<-u=Og<+Ow}J= z@|)(7IEz(byKlVnCnNU)zijS5j{Q8bSQ&V}<;`Z(11u9YBaH6-wh>DK-(LlVhy~cT z2%TV!`+>?ikAzNc70K((cFTZx7Gd+4Zyf)}N_`S#bFCnTL0O(cwbKRCUPcb@8`hQ& z_zqv5H^YbMI+qUsTpZu8!{eRfzssA=Yv_5r8Far@T+X?^1&kXazsAe&$m6NUeS#RR~rj%~%EYgdy2O)dB&#VKp3r{$! z%96(a`Jlns#5)w|Kq38%ot=y1z>p8TG;!hFq0-JAgX(Q+JGhZzj8fcp*$`QiZ6L^o zdMp-Xioe|PJfYSjzHOfHEYy}kdrr-xH1rhjZR+RLr6v;$YmJobAve!BTlS_&JGGFD zf>FeZGmzxpP3jxaa4$L~Fq7!D5JxL6PSu)%81o=dfQpraZ*pLq4;06c#p3e*8}Bh8 z4V4}vyqr$UwS9T&u_UDBs_y9;A(yjz#wlpx+2B#n6nl8EUD%DXr&V)XueT;7DU=eE zz~haF4W{c+=dCs&4VLBc4{x7;{jdHX=`XXD_0!4p^iQ|0{?~tJ=YuCd^=sA&nNj2M z2KAh6l`gVg|Ih@0S3Lg^aobnFugPQhtBd8anz?u%scw4GSGkQa9O@R;jy-{UHay*1 zO$>N#2DH3g^N3ITLH;Dl*od$3=ILcMUA6;+**orO#%9q@&f)-(HOw#komHL9BkxF~ zkt4o)2KDolimU~ZwRzXhBx{9vz)f#sTfUF>+mo3jMI!PXk{h9fqd*Y57w>}gt$$~M5=r!#Y9bQ5M1Jio8)i5T1P-_-$(zdJFS zdg7{A6Jon!^I#+RKt6}Ay=#wI#ML%r&|@7B{J(AJ>bgDmV_sVw2hki0&e>i@@_~yD z<*Uhsg!A#BeYHN-*QtNcwDcF0#MlN;cr_aOO#sc*Bx1nD3w~SUzq$X&;=Hi042b7A zaIw2A>{~q>&qiKw*swnLUnMmef9H;>gK;+B_8v8?&>R9DDZ;CJz8~K&0?KnrvYd*H z^MiYC@WKAU!$QAJN7I0fVUU0y_V|Ht{%&sM`OY}UI-p+0P0ZB ziytiL?d=as5|@CRDlkC05$tZN=>sS?Xidl4ftOG6T}bNH&L;@)J;$~Q*ni$O<;#a9 zwQc46cW7-e1)YCCUVdoXJnW7OLvn}J70}rLzQy+9M__Na{P8H?JrifU$M2|#c)mG* zqP(DvYy+EORFTEjr1(Hzeo#A?+>Kvo+|UmPuQq0tN6rq2h|1takn~jpB;P2!+ZgV!z)QNPh!>Zq#%BU^)2K3TmC# z`--WQvOo&wGM@1SmX1Y{CpM-W|X<=H2am7T_EGnRAZ0lh`}`JG1mK4!9e|+ZKE? z;BG*7u6u6OarT%{X&mEx%!|~)Tfjp@kzR~DjS9X?#4{%EIMm9Wj-CRLMJ zN=cvUMf_cSTy1kp1^YanGsJ;=ckY&I{>$tPdJ;1ukp<1=Jf`PcHTP&i7ut2H=(p8%~P8rTq|q$1#o8W z_d}1%#-U2E3j3NWqPB42p4XS=0zh^fBryOvGCw{O3F11HmR`Ez{tcsbE#{y1uq zzQ^bY>X(v7Z{8oz(Ayk0cQ>C$jecQUh2A$j)Vucmftq9eSpC%YA#J7{>-QyfN|HXO zl!i?A%OiC%ZyxY_X+Ikt@q5&Izu69KdKA^T=!^71gmJ#c2VZefm30ihe`xXFEXwwr ziem7b_dDktvuRdA=NCEC%^8GC{P&CYWzS_~!XQvNXJhKQc)dR;@)3dedn4cXP=5V` zDjsmQ8+I-mis$KCiHAFV1Z#@@=8@^^Z`-tE{Ly65HBLW

3$2(sA2%e33)x{B#&S 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

X@zw4%gBr6pn64jyy`?Y8Z3b`+ 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

-iU(*IXhXFX6!go|i{%*b9J?)4^79Z&%UjC7<{g)hWl}+> zoSMw&=dPTNZ7sFfy9Ayy?R>Vv0oPFlWr{V)A!ef)#L%YEgq zUR=z6i+;s60Puf@h&EHAxupRLbfmY^Iuo0_IK4G^z<=+5L*Lu4wXrvRcI_Yk2irG( z@~2V&TDjlr2ChA`z_g=?H>S%ObR#~zRYM18jzO+Etu38gUJf;BMO?B!c+)9BJb_Zb z3Tin3x--mI)fdzYP7Uzh@OXE?W0va4x@C}&SQzuz-q$l}Kfq7RGf&j?0bsK_`l9ic z*CtLJY0MmmZ$sb{&UK9ichz&sUT|u}*|yJH(7toNd5&Xo+!=(smmKSdZ?FuG3)LJV zsOAAjnlh@9$;7sk@41zsPY88%7HZ`_3kL7m#PdD$C-%yPaECZE!QxDyr~lAV9XDG?NDj$|mTZchhFO4tUE5 zRt?WLOqSE;!$bPWAJUTIM%3Kn4a)g_RX3M7Z!+3>O8m|0jU2ynL=#$#yeN9m4MP#H zzk4vexQ>dBBz{3Yku%hvN zr}!!X-^tU>#=oBN_CB?Wx&ZUsiQOAIfv2X*D@{4@=1%S;yxZo{@p$kK$a1c2c%&oOwzav6PG=)Z z2Af*B#c*fu^t4+>Dl*-y1IadCbB{MEnsd#mN((=)G{M%!b?KgkC^U;6#M_aSk{NlFn6GAf(CSkUf z0B#04eg1IQbx3)=J!M(;X4`U~ek{jw(&$@Jd@;(1~*=i()wrSHF|pbU^KUhr+h=z^>xHat_+8;>>i-HEMGVL zp1~|p(*=Yd$9bS@kv-pi8G!XwyB1*calhs*g^bNRqXA;wwd;eY`%Rn+_m{Zy^xEiz z*V8`X1?TqR6oHe31dP|nK4zUb2jEma)G!0_k5l{4hrZ#@pI7NeiaoUzaPUxZAkOxc zuddN&h1qfj<7@)RWyV5A42+8zb5v;PITjqC+#O%&_vb081C2u#Ip?>f7lu7Dmg_^J zCKVamLn`47r=X()lp{|#Pd}rG0T+rnk*6eMFE=RZpV6j4kgc~lSt>G6)3Z98O>^4s zN|#v1RvDC2%1RZGsSR1i`tOE)V`tI_)+0q&2GE-x@6nd1cN}lv-8QH9$olslsUFGr z4s6OdB0S-if3F4Rmw@o>{g&ktiffeOzaQ9kS=B3%fc1?{~*lrcf$nI|0!4_S9JQ{B*eQ_fOkvgAesy@`z&{3%SS# z`ZSL3%woD5?{^Ym%WWgqw|l3}vn>j==L%TiQE<^5o8M0DC{{1hp;5q|_OVR@zL!1V zqfj)bv|ezw0d}XO`~IzumZ;*|0W1#C-HYzIZSCHk6-zw^x_Ef3r`-UBssl$o92aF^ zI<@u5EA5nXX{5c@pp!Qq^J$9zCQ~?vr>dc^V}la(@l>W_O;(nVrRkiP4RN)WK2Ow$ zs=4S`ZMKCc9OsqI;;ZRXiBr}CfcJpEZgl+v zgx56Rc){6rqF*PT@R1mDU5r5ih?V9nWDdNcjBa%_cUiS>banbU`L+hi_sE6XQ0_|U zIX0YvYJQvoz&-AJ@P4BoQcV&4%2nInyOxd)pv@+eYw21hwe)u~K%s418-ZB7WO3zv^|Y&zcQ6z2m*8NZ2)~h zg1`5KlXP?4|Ac<bcrUotud_Je~g`ZHO+*GOs%9 zmU+Jb-ov~@34Eebnqvmi4yfnkxa3nxVr+BTG%KG|@`!i!*fS1fGwKB=d72E84=8Cq zX>piU8KIv0#vN?>-UI&6X_-ALhj``l%)oTrr zwK0!)uJ2-N=Mn#{DPW3w!W%#>JJAX9eD9zPis#$5xKLmY&$fHM6ZOymHq_3OI1fDB zp3j@Sc@hM$S2@0#Y(B?jiy7dK zlw)e^JRl%c^YE}M=#Fzi8nQM<-Hu@dv_}f9j#3X0neumUtuwf9zk(1(+e+t~Qf--s zyjM`q9&&GQeRloI`t&z{Yk7R|KOD~Y*9vrJyZYOI_Y*m%Nmgo4Db-vJUH&Z%Em#L1 zWM%;1>;eB<^u2xSOq9}Z|KI;FsigYgl|E)kq;Hyp(l$VD4~pBka;J@F;WcZg_lAen z5ivM&z+FeSnSuhI1`SpQg4;OqD(}CD2iF13d>l>tCd8Iw!Sy}M1D_Y8-tn1%b9lLD zDSmso-7e?-Aw`+A!DT`}S2c5HTS+YULhE_X?;Qp2blx4etZ$b^jEz(kT|sr#Y#|U~ zqX67zba@=O41AvjkUkUdHnP>|_Z*aS&l8?h(dz)b_fE7$w9D_^y}=89l2~;)_M7_{ z`$a+c{v}|U%~Pyi)fBDotj}{b)p;udZJTX~DmrO@s+#!PD`OmDo(+96^v@(M*^8kM zH%wo=a8jdF)1mLP-nyV-*>DgG4i>t{gPRwJojXWJ#=!bAF*ek3@ArW+IzdH0;B`k@ zMV60@jy{0#Mu|=0zj+3I_Pmb55%ypNgdf(8Fw)+4%wSyOylvfKk$m8Xq-n{d8Jp*6 z12Ga9?_L3gX7js{vFewnpxYykK|<3liZqs_@~PAm82&YJSnP6Ffl;H0)T z9^|5F40!fYm(svc_~Vq{`?AzyS$M6nd+O27;JXo?xMv*!1{qv_pzFm;4%#^>-CWW< z4D)wwv~kN`fUmxqXsox5PL6rL<%Mc7;Lr0h+UTdG9kZeg!e5yBIRkN~)bmJd`5?A` zg_tDLoZmO>OToY!o^KWyxz>SfwjO}6WCPU*#H==4AgN5D9Ds1^anOOr+{0C@IpqaCqDiqlTp zNq-J`yHRXFyiGM0H1-Cd`h0PP-&y171`sw%ytN}L=BxBPOXoGNWA=*o-sTMG^FFX{ zBNZ9iC*6m3>UD8#02=^(^Sr3JUh9$lG4PgY2H%b789?R46u-#@)8P5t6jhtJT6iO{ z*3#1#FaM>#x;nZ2dv$s3um8G&?rehx{C}Y5z#wbgfa(T}Yn>9;KuVzoPZ#I6Zk_zu z_W=A`YlAm@@8kdS-`l$O<-^o;=~kyqu4`&XF^}y+SD-o_9fNS zX-%vc+g}Fg6rTC5?s&2`0a2o_OB(>+%qQ)ECxP$^)L1 z(Xm|11vT#OGis^ky9UJ1+Vhh#uQ!1BJ)32)y=T9TdBXw3A=Flr*IW7kk{3L+zfVEm zH?0|Xym7rGFF5MFQ}1~1G!U;d91YY0aBs`T#F~diH)Z=;lAhwofTyza^{@eN3YF<^^{lwroRR_AWn9N0Af!z*Y@KHgDSu zeP#vWwrm2&_xd)+K(~~W_T?#MG1|Zz@O0}xGSB}Q&0Nd?HjA<${##Hm+te+#l}%dP{lxy~yyk%{-kg;0HqounWtgd!yeK{r`NQ=L*Ptgu5=hd&@v zvODaiMEa*GtN*BG*!RE{GTV=4hr7SbcKFMoAAD7Ze*9x+*kQMRpitW`L|8(|X%%!) zDB$9ikCS;`+k4D8$69mkb5Nwn;>EqFocAX7-fKV3K99ZD9BYm_rnm^37)AYWH1#%uV)vnP$G zdwcs{6Zj|gx(c}cfz3-Y?vj?UGaJANm=bYJ11Q`vvYEA`mFw4O+#53jhs8+Mr5M~ zhxK`IoN`XMN67)!yXTA?WDot`heJNR$!O<9${xuED4(={N;?+=?N|;Z_@Awl2uE>J z0n{RXWD@`m;9dO4z_Gt>pqpmk48V+E;2=b=3B>*Ufgf)X3@9k z{O*5#^4Yikd-@xg=ifNLSO3n*jPZ#wOqiw4^Dm*lh|m8b^w0W$a)NK({q6Ymgn+!W ze^Blxro<@2$NRE5uQQjdXQ6*MerD-6Ou=EFOTo(gGCqMhA6iujvT_tu4h<|L-@BSb z^*%bjmu6IewBFyeq#>z|JSAyl6ROkdGxy2csiir^NnML}JNOpE+nL=Jz;`~D*UYoX zUMKu41WJ5>#n6i}m9M2^FUDdoMOIZHp*V}U5ZlCA=@W~JQx%2zX_c8fj3Bb0#iuxr$)kh@KK0b939Xnq z=*g7O;}XW8S_Ql<*hav8vE9Z}|Jk==_XAV5gTv+Ccn$atSyOlJm3;u(0N4m7BHFD{ z@Uek!?!&pr^Bz;{Dx8blZ$!Wu^~N^V6mpHd&4Zgh=hLN)1CtS>tp-A6Mca!@;=d2Y zzHk6usNc3;zL?UN#ykM~qRKZ@e~}7?!@ee5t6Wd7kYZom#n`L2DfM7x>zQUTwnbO6 zpX*w0Z|o1rH|(6fef^2r0i>QwO!;og!?srgZJjN<>wkOYh8g`va)la;Y}DQoOXy}T3#0@9>7Qgri|bl_p$H}3tS zPY`<>-XADh*^WX!_>TRt>=*_?EOnjuV!K4daa>eG*U|LEYJa9!eqmYd%j;qe%o%HY2ZM6? zaLULL6Ss=K#O-~PFuIez+A zzdiZ>U-~~b(`&!lEWUUZ^B;jF|7`qk;qOuWpME$_$}^;&v7W1KixrS`ZeKNP2d?eq z>5bnwdAj!>E|xoG0%;I|xIh0n$J-;ziT#H^|B=0-RP=c~H&kU9xai}6zpa!3GjD4! zDCsH$@wxwS@IK@P2V~%n6sfxuFi&q ztu&f-CRb;Y*-@(T;UXW}Z95Pbuk}5f1_3n*5o=ETjwFvWv7$%oZt8?F+BSsap6iRW z?XxqEXJuR?2vwpI7-6Lv(9dbt82xsK4)wrELx&)nim^$dog+>02DhL4pI=LJ zzhTG;cj`F;LZ6@nne)%T=DCt&Y_cR7Z8t3WchDYp;O%gu!5FoTHhN!C(y`yuK^flO za=-sk@c(o8JB|g7imxfnN*&MzE*!)iK#eb9`C+g}QK;-y`W4l^a)FDlX<^tk)s8_TaaPIcOL{S2tx z_djfxb(;k%*K7)9W6W#YpOyd^6NuaKIX~k;S?WWTDJS7Z_ET0phiOSMBJo3O%T)CC zp}%{_#MK@>k}BVO`nY_~xqVs#a<$vO+?71-hX^K;{qUO?l*I6KC>Na zIwSeawy*c>9zYpF^c$4(=j=^Cl4?LkUJzzLBmEq9{be%hc^e6bnkEe$JM)gNIQ1O4 z->Q6$oNrg_WaOK|Yg*Tm7tuVY@>)B-qvxM_q-?2Z3AcS_8Q0t1uHQ#a@;)JCop3#vLD8C5n9$LKXfqMt@UoGma7*UVtt9Vd#Lsl(-}y1XL(w*A`4 zquvJ44Mb~u$m6DSOWGx)K7(!^c`RQxtm)jt7*bZ}wioWFwCA#3E~2JDcwRfcerR@@ z2f@*<0^brNT@JLJwmz5}9h}a$I@yC%MAqgJ2&YP1EnHo4#G6Lop!D$q92H!P0qG>E zzBVJ@06J+YNl(@EWz zbNfJSIotUwr=R`ue?FVsys6*yoZ0~WGpZ~eDYSiZ3 zCnDkb=Om%_fAjeKn?Etv>L*DnHDn8np84D-1qP`^%3Tkmy4^Y_DEFJm`&~|k4t+9| z$1}xf+D68QfvuD)TF?-6pITp6MB3bc8TkaSk1=^nao+|&p3!g}t47IFp~~EER!QF| zuRGe1mGYU&;&PT3#>c#S6Jx1GvN`_h^X?PeS!;!2r#?PwM4Rt((^Jem)ojaIZ^^;= zmVcfYzj%%=FLXYu)_*uTE?^vKZWjQ^JLDp4UZ5D;QNxj->_4({WW^z}*H`8Ai+0}O zTYsI4(A8v^7{$CM75^Ns4^R#uj;c4WJxKFd_c-A6 zkhey~Z`dF9J__lM&vYEJKlr2YQ8h5sM#SN$QYpPsMBkOl4t7fvT=TyrsjCcM_^}w+ zzU_J7SjQ6E2!tUx1|ZHL*&}|=F|u}dJxd+p%X?C2=ojxM3*haC)b0mGj19mW+t2r# zP>Rg9X$0AzoHOEm?;A}KViS*&KM3ozaasM;anHEnObqD}op8uSOyUEc;Wl z?&2R>9q{)8!0Ym2{DLIReiRDA`VTz)knM5GUu;(xKo1)?oR!I7`o2HfHj`s*ac1Y! zAhxEUTO`!M6TgPpgZ2l0?}69hyT@Nx#RjRO-}~)#O!=_M;qZr?9rIbV$(Fwl&mZB# zeCMt|{1|vhH^1Y51l7LGCCQ3}qfyLvlRR<3HI`h^j>tQv-Cb`3;Qqu*jkVif_sgRr z1Mmh7{g%%zGLIWGlCe~Tf^qLWUq7?o9zeK8zh4+73AsL6h61yn()sS&j#|Y#(1E{_ zN`OtT>3=#4D`i$zquv1DK2Yea?InA?qs9gtSyVUYK(FfOq`Y|> zMc6b7zL~O@z-WRBtznj*wDJI`3A{6|J}XO>6_c~|-LXbLBvmzBlecM2@2R~?R7Yp@ zdN%8{*-B+vZfJNXc%2Iz-iuzyHg>cKWaW?f>0!^6{^KMWfxT*7wqBeXVQWYXNt7 z{`=u0T{zg{l8geUr1us{&h3M-X4$`a_WZy3e>i#et$(*>oAe9Ygp3fb^SRE)GkqjH z|0zGy`ZA#(!iqhUEIqjJV_70m29m-3JTPXgL9*ByCIN=tw~^VS(Qkj9*jKS*91N>X zz3#vp=3ap!Qq^Zcmtz!4N2XcNSXFEfeLDMj=6Yir(c9t31lc%ltn}Y*D?*`8Ngr_s zBHAG|j#R70bHQgE<1*5=YfLu^2-k_^(=r*0iEfOoI(|FjOinv&G+(M9YA$Ie8X=8i zJ;wGepI}$oIV_C-dI%%oC!!Ph`1@$v^T<6n91Oc{=Dvl=f2F4HnBW@I=xA(X#TT*w z(FETJ|K<3^p{Ihk|6KB%a0EQwbU%ByEWn1>dlim(X~7n(XF9qVpuWq?Jo2^&@u(AC%{fu=$5ZL4R*=<_}7&U;Us}2*AH+u1lq&r-1p>cU`mgo!8p^>c^CfjuEIB zpZcB08sPXb#vd{BFi1nsO6cOEYxgXdgR@ur&s~UZzvO<@%7|uYiVre&Z+Q*ySnnG% z#8s&=fb9Uf0k%JpMyhgSbISqWZMUDck?&hBNCD$<+CjDZzSpjg=tPE64#<%OcqR~M z*)epE^A?2P^imP%^bq|97|*#oHzX@v#m8u^w|dy|2en2+%qF7IkFPZbl^>k5gD~L z3hJxQ8-cJ`6ndRtTHYsRUpOw(MhkG4DpyFStWqAXHwf>C)KdOd%5fC= zO1y~-_yGbSvX;WW>iu~1n*wP|KMu95E!s=)&{Va$_54NFAcLsd?D!{s^(!CgeuwSs z{-eJcK0C8YfQ}+_om%L1t@UPhcJs#B(_j407cS zqSCqF=fK6(D3YnA%7QAog4cHY!mLEKWu@dc5h#`0vq;{@0*eI0q=1mw$Jqv?u> zihp#Ykr(h=JYYjCe#1HH%Xj$y2nK!T6wP%)Y^(zggT@h9pDNDwq>0i6mC;oG){;{8n}jyOOTV;Nr}sJtHz3xT5P?H zV%n>fuUHW)0(omUfd1i%u)Q|`PFwedbcNYgqu@;^iVhnGfUajrxkf5Y>%PYOozDRg z@B6O&_o=uz!B`~bes>GmbKCBPk#Nh|xR=X~*+cWZ?L=-6g!{~v*8JXUyv%@=9#f<8 z`CgOh=T#J3?7?P@Z<+$|7Id%F{dPlVvx}8o6JmSv*tdfLe4{f$J7x!!w)05~xS!bd zBK7}&r9!wUs^sm0e7@m)*^x_0&+yc zFJI0FXZpFmwpiV7jiyKC^LE*^Gme)IQ`Hvhe8;jKI3J3mk#?%8qmnWhkFTi~6jV-6 zdb!SLHm9L+UDeRHQm+5qeQtT(v(TO?a1nTK8g1MFxzoo_J3uv-5R;;IPG#v{nKg6is}U4GY5D>ukAXME@)1?iB7v@u+0bw>vfYxp6h&j zsj-5WJFn4cv)Z`6k0r+lq#2o7BZgMxa%V?4xs#mS5tbbNvTJ*EJY1hZT(9H*%;RfI zeM|+uJK!3iyIC}A-)puQ4bMlEYqRz@%Zgcvv3#ro@59|+ZI+`C5_r>gcE9sCeKm|C zr0%Z(^QKlwFE*RB0Q}i6{%_^nK1fTw#k0}%fAaT-ThE@=3i)2LOt)KqrcV$KW9Kv| zKs8hdW_}C^yNZ(uK9ghj^}YuMcR_vMs@|R7n0j_}CE9OuY{f4(8A3QQHVX-DS+-O$p z(Lj)2Gt<%CP?k*Xz!$rs(QqtdJ0jt?E5OlYko~Cj-|k=o>!6_{8qWIQh-mNI@da=j z^Y!pylXao?@z0*EXy6XPI+S92V8J{9aVnsLh7QVkWZD|`u<^Tyw%PqYAbuHJJMhhY zsZGK6xL}&R9M{K^oZ}8zS7SUJ-gK@5(9QaG(LNQAbo+K(uYQ;kBH;HdPvf4yDLgO$+?=gK zUdP>s?6}SNFf#gmm+PVJ(Ve6ZvI6i}Yp`Rn^w>XdxBtwVV^sZI6oadwgSmZRpgWfv zgMohjq?`vDIy$l!?X2W1P1lurDut2?9wjE}ll=B^* zB@boCE)alkms~80p(wyVS@U8Stn66#URWoTWysj3;w>Kej+Am(tnJO&_SlxGaHl-R zZPV{BD4&a@?4ZP`w}{;<1LkG+KdsaZ*C+?_!l(W~m(aPcSE6fvWtghlMj;-wMPaq- zPCOEvL3$|xhBne6yHRhREmB99YjFK;z#74+l>-X2b19McL5PqS74;CAcIUVYj;r$+ z;bzp`Z+gKT(Lu>SUpK*k&j)nrQsSr+W^A*7oPm@H?RNG|4K^PFR8(? zGE|fagH~X%R55fN-w0U>mvNSXRJ&PyqOhZw8BG zrO32a_|RW3Bjd8}8p+OHk~}#Yfjj&1Mrxpr>p)qZ(R6}pT}}zcZM*S_+?Dsm_I7+} zrmOEgmn7>r_oSr@OPFE*2Id8pI&n=9-VVw|aLvbNmL1df(`G#g_qyQCn(qT_x5-3m z+j8I@+8IeF5Z??c6H#vlz6ksjGV(Imh8;=g9(ani0l)5q*OSirrLax0TcrB|jO+d@ zO^$$HzSou zUZrfbGz^}`a?tS_b#RryonZXKviG2Zo|-bNA+oB3M~kx~<0dMjTYEew#j|u4MSlRP zb3JS-xDJ=n?XjI>l=4*l`1F|ZYOZ&-vE@?0svopJ4Fu$S`VhG7SzgD!SpN6Egow8r zX({4M0B)tAZ`C;^vAh`8E9$x1pSfLKTBG0WKz7A*TyR?lM!$J_VAuGbAOFmqP0SRk za^zF%z%ux5?Zwk1AE5+U+v%Y`V=e~)yWumF&kcOj0KTu|+!lB<8onZL?h$Z+@K+AJ z6nMY#4%~U?oLzn8lqZ63&HH|1G^zB~KsW`@yHtD@jKtQ?ZvBcrdHCyLL%FLl1Qlui>g^QPYz zhV=aKg_qTeuj$|$5%1&A{>uM+`U=8oKOW$_vZa4E%kUXW&bd!MqNXg`MsVKqzjR)P z>_a!?h0l-v&EJ`P|1bWn{5%qTvus(OEE`Bwxj-anJg^V({$(LG(+0K}m{6IX<5dte z4SZ0Jna5O@mFtu~2$Os>XWV!yc{wKc?PB+n3Q*QQbe2kmiJ-%wXS+})%RR2xQ1V2o z=7h(6Ggm~XqPp1lktb?LLH`35N?>xEsZg3XKH`M2y)RA}Z>-)`>F=Yq$(c=BM*&k* zBSA{nnWTz^hJm?T51i%6uy3;IATn1l3CD&qq%`cWbZ@poMHI0pIPU2r_yS#3bQ%H& zr1gP)!cBkz7 zQ3ahFOV0z>R7DBk8|FSGa5&kO^gUzg+w7?N`mM4my*8kvz??bZY*7DyS0@9lePYB1mljfU@~9MnV5 zFQl%T0K()TNKgnHHMWvnlzDPmWX}LRP{htRA{>kko&*H%bPCrLSgM4t#27aAN=T94r zdaK>CzguAn5u$6r+DbidXB@9Tx9fBE5uK!Vinb~*KQg*Hz&ASH1`k)a=C_27_@za? z(OE-;?J@^~t9k*sa>f33#UkM7`2QvLnNQ*lSOdK-@ zB7%7P2Q%;r&QDXGnTMk=LT&If6QY5_tL1*%--e^?9R2oOa0=I`V{>LsQ00X1o`Uy; zDEQPJCK&VZY^O)LN8%;NQg*Ob#Ms0gKL^%uWK$Md3;n<_faDCmy?$+U{F;<$=31wF zZoemj@9g+G{W8<@$}5HPVCL**+Pb$#HT9AgUL4yT(N@nqmDRb8RD}X+$M@Y)Uqn^q zCP_%j&R|cS^(?mLwY+2Kn`OnsqP2-7wG@c=G>=&iD-m2RCH61>>bE}#Me{$3EnR&c z|1K*zy<@WDl>Bsf*xkWvFxlD3yKNhw)yZX0Ip6>m|VtIL6Yy#7M5js&v)`arH z?Kh#5W%Hu*pr##1>8}R!GLfeJ!o11l$0AUVVrzrAp062<(QeHL@8x4NaQ7VYDDoEj zQ(mr2i2BRVY{FsYlcX8c4@*^ymHv7twLXYOz*Cv6jp*Dt=QCG1&l9{nY?QJ}qTN+@Fjzp0j7h*$%8-CnXDZT^);miSNE%3+B zd#VwHXG7J`{ZhcXq^9GZwcUMBmdgDa%aDne#&rY^&7$SgGPW!I{J_@X55rU=$@jyp zK9Hn9Tn!QM+fs=gKavvdw*2qL+uV0YdLdb^tLR%d_ocC_#CsyYkMsPPi~DwseZQ8b ztgg%bejr(Z4Johy)-gqvdEobbo9&-|H|6b2OCOhYtpOfHsm*MixQjKyamam12BN!B zZRr5&RN=bFiY5rR_Hz-oKbCPeqn_1>(eU;8-UW=0Q#JFFY+hxxaC>-bYbX)<7y@rx z*CO3D1wGFO`Lc)-NX~}<_`dg`P&tHo-x9$0y|RIahhl6Owc~0^u7}tRSfrn;K*QYv zzSo&X!hI$VwZ64n$K%dHI%Q|eD7+T!DLT{u&Z9jGZKRz)b>(va^8U>>LLR6;E7!PD zBH#oyZ?5%B>C(m5w6k>(9`nD^Utjghyt!i6&1Jva4*uYZEfeZbzNud}=YFrDpdVi> zIo%LnJM#B-ES4kG-|1&}|&fGG_g;JkIfFxjCX-SYwMn(mYii}S})WAi{g zS71LZ)JMhG9`(+j(;C6GT;|7KtT?c~&nTjSD$a8wW!!BLB1=5CqPz22QYHq(bH=rX zFt;Vix_%q^-it+vcxPbf_e7yE$siFW$4W<8nABxkK74VtKdkNSe&@e$Alg5eB2p&` zp!y4Av!G3d*!1(a&$rL~-}V=JeDlWH4}S4Km2>;CF;LPsum9J7zkl(2&q_C;4_s5a z0pGUOCUVx>=YMH+z&mvFMOZHrhf?yz!||k&mwfW1*DY3jDn{y6NG^o2N^ZBc%}9YK z+bD~!iRExhq`}wu;{!2ax8ce;$>{46+splBs(NZ1e>YYie6&=sjdA6|bXnzs=e0ml z&l4OYCuHf^R_N%WZ)d6Fp9;0PZEP5=-15HJ*q#~$+DJV|sZWf@jZ@Pz4LwlRyVP$3 z;^O1I?VFS^cMgoloN!FuYY9_nR&v2Fykk4&iFXbD(A$fRTs$@3Im? zho~<^+MatP9A(N71d7I7@Xy!)C(l8-=7hHaCIIm$#)fq`$Oj@4mDnoq-TKq0B(!_L z-$Q$D>wiCfl>86_-{hd*34t~E_ggx7(x{&w^S@OQ-Ti;0s%pvNecOj)_QfkFiEFIg zlSRUXCIb0=7KZ0zkWzNSBZzuyNgoWPl@hYxy2Mc=cB4l`R=vJ}C?Ahd>u zRO#p}F(y)RTa^o*&eoP_&C2srC~tFVWQd$6tX`jfdfrHIbX z(lCpAET({d?CR&3(Pas;OW219cnh?9?chU^5;YenftqNfb2Y~$QmO+RfOiYHFKiq2 ze8S%@>E}(#v~vJz%wiLSPx3#adEl50*T}cnF%VK~q{(0zk?#n;Pdy@jx>;_UsC;9? zoCHqjv$P7%IAc+7r=ZWydKF-YgEBoU$18XT&<@JxaAamv*829|)*}-deHckrv86y; zjGBmp?-A+eVq$9QgE6`tBHOv+m=*91%VoE`B#t=v9yove*PDJcX9YNs~4{Su>@e>pMO`*?|UCari<;e{z@nMSi)?O!ZV$M7DSUHI}e4!PeH_6 zBjFt?`nIRdsW974BilPg5gj75Wc&eqFCBbWc4*+c1j!A2!vMZDg6XweprgMiPmvu1b|t~L*iyBJm;%`@Kl4Bl3{h|iisyBc*Z^h5o`}}?2IYL( zMs7w=>fZ=rdimzez`s}1j<@98%{^8 z0e)8QGm5TpcWEb`+@sgi;^4&myCDJiw4B2`>Kdcppe|CJ2ls+J!a-KdwZRe&TFUfv zsla&3zs+LvFnC+!$dBw@b|ov&-($MW#jjguGu*6+!={n%MMs2uk%KKV~Kul+y& zu|B^BzP(ggr({__M4B1hu4w5Fu&oxj#Qf``aD8BIKo%IL!o z+0KG%BYOpa?WP+MhfO8l%hUmQb5;wpzvg8{+PwGC1_vmAPRY$y7S zbjQA=wL)yH>XU`op11(puCYW>hD@#924j@#y9Z5nuh+%8H1eIJ-cCiQFqA%)oU4XR9J?HTEmO+^+K>=7J}A54H}3cc}%d zGamJ=7C`P_^1Fcbxbs+NdihvNu7lW*Xxv_L9LtYMU2ZJW&vo1DglkT?)6Tm}gs~1E zN{?mRlal|vFXcfyOe@OgIS0JRC}t&eeW=@}kyBo>LWK7Un8o`fegd~G0$$l}+ZnZ; z%`J2`yVmh!AP%thiJh~pZW2_X*qDV287T2Gp%y~ zZGANBw2RT&B~Z&_)I}VWm$En=fZU;c>$x7SP9BXObVm?LSv(2LO$F?Q(%z+=s|Bz< znAf@EvGf@4$=-miTU5*M!GWLtKAh65k#7R*P$mq^M-WN9xy0bVNXUk8Ws_yF|MqfX5V6Eq_0pbMR+(sR6o#=Nz(bDp$GolQrIoT|N3FlKeYgtHSsR?`e)&923is_00q-iIGZ+I??Cqt<6nJ-z zCEc9NO044gh<-!#7rH}KMyD7XDCmfQf7YR(!?gZ4#@r{?PC7aj(Rclo55xqFK|Rk* z(%UA+Mlhbm*xYaL2GKI$zFWkWD@kZQoyK&!XTt>WvZw=xiU>k#HFDMK0g&)iu98A|6YRRkjXv zyJ-Y`*ByX^q}21T`#ym0Tg>xz1L&Tywqm<)_|&d@)9F4+LvO)%qy%whvhOpNEI+2; zyX{~X?d)d%1^3xMuUim)@~f!7!E{uT=|ye$I=?$t^1vxUh=+cu*~ZXW;Wsum4atnxYY4lYRi@{`{NOz$1ASI+rl>$hWau8~{s* zc6+}U%am0BIDqzk2WW{$(yK6rw{fXu$RcnLAX@XthkkvQER&LFu7JENC)Q0z_mz>V4e(Ja&p8?P2`P;Kv@WUhiT6-KYglX5y>1y?40<^KY7h!9y;%UZeH- zasoIkD5DdAD^pTa6_-j!*Yae6ZJ9whj(0V5__B*o6FldD`%!Tmul_ zdRl%zm~H&Lllz@nLC=d~B@DuA0N>i7zI0W}Xg=Gi;QNXJZWV0vy59ibP1`0N3c3yq zE%=tp7WCHAW4ND7oi}l@)VMtEf^TfMK>G+F8xiuIQhrQ2UCpC_Z2ZN^e2o?iyrUjR94E&z@eJ*AVxZ70ia8u z77kN(;t0NB5q$HU6*{^DZsuI;F%bmE@4^AMMw92RBrG+Ejyd4jS$6O}aHn-Kh}Se4 z=zLyqTXOJTA7|0;g_pMKM&bL5KyPN*Fpq?To}NX({FsF+cx%q5=bhqjc4_nw85rlEkfNS)KUkMJYpQ$7mixNG zEE;+rST1knm)TI9&$u7s~DEeQ($AmwrJl&X!6(UZ@kUnmId3eI$bK z#5{4Y90RQ#s-Y_bu?62f*W#fd+wu)Tv|GEfyxJ6n-Iw+9r33LC{rvHw&-NR(wHw^R_Ys5fR(&eYxX6uqccR1FX3iTX7dfY3KZ$)?=26V{_w*alXr{{IR ze>7HT<#E=;#t-bXzw!l@XgH6Rd^~1$nlau-_-=T42&b`mEH+ca?K}569q%}l7aNym zM7v2le^w-G*MnJ4bhsQCR8`moIt5Mx_ zQp%H5j>2Zi?WXDHby`!@PfzP(G*8VxL(^Mp%)wx;Hw9;c`uRwrAJbSg9G2Gff?oqxQ%Bkc)G_{{9H7!rXG?X?FXzmO$zqCil}PF|8yVkc10 z109|FqBEKm*QJQO(b-JCPNAfMtCy#!j;;;>-#{S0s-0Jfz&Xh8&k5F2iKZ^Xee^Bz zO^YB~Y0>R+>5=e7RzDYEM;R&7{e_&q{+VAm{_HRQUNgJ=*W}#(U@M>+*7;r*1&qtW znLVyV&(GZ_r+swi9JWQyv zJXucj$$h!&c}PdNZC2}TSi6lAI%cShxxJ=dhN({u##x#yJC9RYwN8063XaA~A*7*~ zDjkjHfNL(exJapwr4TqR*qzR*WagU0eVuVUGuQyUw~UG&bzQO$o7Vx)^}|uNET+Ak zm?&FJD2jA*tfN$!xTx$20}HM1lXmLQ8+tg~EdXMP*5snKJJ>$-3a-8nO6Ve%28ev{ zH{lw(yzJNZ970VmL~x}A;V3tYKbQu>JsQq)A=ayva$dBqB&gRP`DYd)JUuUY3mQ7b zgRvz29DmPlT08w&l-lKMunaE^zU@KXv|i&lCWYU2O{P$fEK<->(I|^6xAyxFgYFvF z+kbvq3?CrZTXVm~#n<*qDYE?A+DjJr+mAkG{2mQ>s|ee7SFuiBzZagDarYWtx{R;M zz^Sl$RI?U?hg(f)y!10WdEQMYPn@8;^XPv-_FmrEABIZM&Hauw!QXL))NcnrvTa^(}R?0?64IoJC)BFvG!VvmEw7nqHLFa z)ckJ0>%I%G!AL#Nvz>0&>P_ufS$>Q(bmo2|?;A^vc*9x%4h3|a!?I)P9iMA*^>Yns za{z%LTYHbBV3BdI*Jw8|I5Emi6kc5)v&&F72mM?M_-5G(mC#z}nxvll zGM64hP4Lsz&q^PFO?wcOx-MzuGf-!O>aH8%+_SP@XY%oVP5q&29g>Zy)%6}JrQAj1 zB-MG}QfPmy=RFLs&C+8d&jA-nmETjS>ZXJar(j)v_dptt>V|zoscU^Z_#F<46Ukid zET$&4AX_)@n@Z?iu{H5)!clGJrFO2B3F`dzJi^qaucLX|MyrfE+UtmR`LbUkubJ-b z+mTWZvl3ZOdG}*X6wKQUoX<{g-JHJq^Z&tl#QR^*cK*%p{0~cxJ9_kEpZ%bsiI?ZTv1L0(_XG9Y4rwX? zt&R|n@e3&pJeO%`Q4^YPIDcO7}h zu{#iD6DwI3Q?WSVEi6SA^1n|*`WPbPI)N^M#pe4rJ@GkJmi2! zV}RvqyL@%kqWSO19@Vdf=(nbtK59xSvaUHb{o!4Uh@)Z>QdPBb(tgZfHBhd4 zQl1Z9@z5Q37aF>cRby{oE4a4C0JiUkacvx~l>vF!O!}HBeY#vtC$90@IzhH~+`$J` zitG!IfY($6mLZcI`R2YNS#N!O5nPM?bQ46?!f!y^oTAR6@bSkLzrOJg`7#w~JGh1# zI`hAg?|sifIHTeB+8^+Zz4D7H%7aEdkKj84?)IVjXJQYO&UoD|uN_uZa1A!`B_HOg zcJv|V`>|Bu8|wJUG3bzi#oTWXaA(WwKA>&2;2Yv=r3^?@80RNm!#j$v#quISTqVzTJNRbq z7^B-85(e<8 zAt?J5j3W}!7}%XP1$<+lMiqu3@4L0B=L<3-t`QSIX5r#%^I>_NxziHO%I7*G*d7pI zmt(r6bq3*F*6P;wft_DPzXujQO1Td;`e(&tP~csIYVK!Fxq|OO!!lKNZU27rb*OUg zXm8OGQDe@xMZY8Xmi%7u%X{(7UztAt`Tyh`eE*TG{4V;!(qbN+saJfI!4ptGa%JUfwrWa-yPZIwRk8%xkb#8`wixp z-p57(@QU4;Hs%rVIEl_wGJ@~?KB$^5?mJ966Y5(mU6!nZ3XJsh3ymzj)TySzUGUE* z1Q4)1cBe*5l5P7nj=<(?N)Y16d?J8vxJ^sHN9>1~?Y3(gHJ93R+P@PV?s!c(*G^H$=eYU*L0i)u=y+X!x~jK^y3r`-g4ho6&E4W-q|73{h~p zpBa2RE&Xd!FW-U1)lim9spxHhYInD^BV|(o_klA^@jZ{4ocgIOQh%RW9C@8R3RRBU zr3T!@gx8||W*el_{O^5l*k>K^0KUC_6@0@|iFn`hZ3+9B<2??|V+jD8ho(YV|I`84 zxO1)A-NErqbHAs_;trf+)Vrh>cZ00uWr+(vH1G}k!kvLq1Dple?E{S;?rNml{n4yM zZz=#(tG9hzAN!BQ`+9)!Po-RO>}ym$r**geVB0tLdfyJZRY{OP=uXrdIT#PZLlBkE zK}82h|7ZJ2sU;L&qsT%?`z|8rcb&Qt)f6X5YkgCAEm~KZku!A=kl2+~g9w|7uC?I% zdrwOHJEPw&x`qx7^}aK}Z#%zv3(5!2%6aGyUv{s9j`PK;`gyPIXs@8ty=EPC&&Af> z1hKU%VdfMaFQ`qIrDJWw(VL!8(8FsW>W#LyhqZHqL15VqAb3pzZB;%O%l|$(>eYjy zl(J(S$F{dUzzzEOiu!q}@lEpyY!gh8CJ(Ol>m;4|KASke^Vx6?+^1rlH_yQ~RpI%1 z@tzf6`z-$1Mxpp8FQqbd@wKT(#{sx6PD`MCy5^cA7h#)qCi3W<4Bg3r3avUjfpX4J zN-kj*&eLP1I8gJUU7tCF`5xR6qY9i z-n+jp>FDF8yi(_Oy{kV;QfAfDW=XP#gON$?D-1sMdf4KFTQOh*C zU9n#pi-Pk6mLd~--gP2+5ZYOytZf5R$NIklp1Zib2T0Ro9sNq z`%>MUn%ljr%wX2E_qcXZi!)1LG zoC0lBOaJLTJ4VHvJ#BR_`!0>q(D(g1F&#GGlmbt}>y71yN5HY~Q-fW0D%TlJkNe*V zk}0fK)6AtQtmr1x2M=Oz)$+r!_YT0lHQ!2CcD|kwS$DhR0J!hldIsC$lz&(N(f7Sw z*T=rzzQX+!F6_taJ}Kv9#d9e+;H(2~>qYTgfwnJS-R)V;Z$B=o8mjq&bvG6O6v?w; zYbof_oZ=E^+BhrMjeHY?qXR)l5|2k7xJJE$GGsJuiXhx)6cuoX&W@CGrJwujU-JhN zhoG(B&SH{R)TN!nUSCZ{J71%84iNtOwQV8?902^VNxAkU%a1YdJA&Hd7KHC`gb2$l zzUHWZ>HodCvb1%I8Wu$M1boW~^z*=Q@2yy>GR4 z;AP~SxnrCD&)I3pfo>b8Q&nb_3uxulg@|LVARoUc@J=7Uce z$&j4CJ)iZ=IT|Kc!Szl+>wm{9CqF&~$IkchSoO$~I-i+Z?qHXcaXO&Gw*8db1E~bo z2#{BD4hOYRQ3Ubz`>)SiIL(~LtkTSrt7fMhCDr5lDMzsj_%6o)*iqqJUndBI@o+@F zpMUeOHIt8i^}Mv$AJ2Ba{+)kcON-?^aQ)m_YD_#A+&E>+cD)yKy%`N(q!xf*KL_CF z_AX1k#k0{z|KvX!Zap&)-eg66DO7aZqyP4uYTnGdPHzO~9u?1mlTAfohiNzI;GL@J z-Ro4e_OMRSKi~v_G!@-_E@fRU)brNck*1=dgT5Yf!%Hpj0>X_Q72a;RUQ|UF2jXf@ zH%ECgM7*ayfz17+ozn=!#X)rw^1U&R>iaqK3FM7sJ^{z&$!=V;Q(jEs=MiY=k)GbA zp)0#hLV=S`2{J8jmi>eJ8e8EtkrR$8ExC-Um>+W@9p&@ZmaV^Y^QfWzY%T%=x;gc7 zj--?-+wQ(MSSSU{-0({+@J0$@?{!)!ONQ;MaQh8p@u?(enW z8-6B0ch9TwEJH~$0BhubL!1rvu=QzgMHTcm5CukP)<6rP;YP_Yl?dN{Ug+#iwzf%O?Qj3@{`ki+iO9tS{f2+EEVv+C7Ffih}WSVb< zoNw0mR2o?afHVKQ0^eK-rOB}QMge&@k{-a}hF@n5051{p#6zvzSSUd@l^SSTT~(v; z!HGE;^|Bz&a9T&SVZ&ijH_w1R)bXAhkVTqO5#!M&O7bRzw?Ge2%4;LpGLzmju1 zw|7}L63(3LJo(snP^@|bwKK{nxE>q8aS5b1RTP}(blWmkci^sl+<;<{c3dt$#z=V9 z!H|+Kt}~vEm4ftq@PPyAGNBrx;68TEW=(yMLyu<9R^P9-vox7s3m|*esSO^D<;ter z&(1AI!nqfA7WPklkQ{Pd0)RiW_0V9t-f6FQ)KmaGMvEE5&^qI7fCCZnLvPzrKesRu6@b5~ zUt@WtDf!^7j|aa`b$?nA4jMWI**nWSoq0N+*lv4hUCwWpud00kw;;tZZr(Qnz`%bWh&2&EeczG3s5 z9q=uZ*I9ZD;2Zhg3qCY2Bnz=A_-;GYl?)0N>Ug!8eThDJ&n79H8giu8Gmk{p6~qcTDG2JN5E(K4=@*@62MG)Va>cYpS=a zw4zy6&V4^#d*iGYf>kj#vD`SLg!?^?$^(gGRB5(do`^-Whl@!9jA``y{( zYd7^bSFvq~q!(O-5{84)hj7xdO!$dSFiOy}7})MgY%=#_-Zr<1OZ|P%n{pomOS4Jy z(wC7rg!6`TPHu*CW;WTXx#*sTG^a}XuqdK8GnPNAbvpD=@AqfJn%$O5lMQV`c0TQu z@oXfeLWf%^$C)~HG3|KOJQ?v=ikEhB!OyBwtp4|zQ_%^;Bvs`(+4mEC<2`KpL^_ym zEK>%0I>!H4)g(H@1lwAIY{I>r@&AJTF&DgdVm=Cj2uPJvF*cSaJ2u~j{*8fi1K-$B z@V&F+is*bDXAt6;3u&nv7s)P^5)6S|Cisrglh;Mz9P9A;unqPj@b)X9@mGFKP(()n z2f>^k0y(WudHo~1gu0+N$~Dy&z3JP}jDZRIIY9O^=yBZgd~gTfx_YYy-=Ll!h=Fh{ z@wXD~zHQ=c)L)9=n@dE(WAs}^^*o5S<*MlTt1!S_0&mm?Pr41@4cxHj*MdU2tpsIs zf^Lei!R~RL(P~>qU@-?5$NqQEe{0;9uw;7#-`*_Y5Zh*scN2fUq??yI;3d$yTB^DT zwAI-0t8ee^%|y25ChffJ12QYU`$9_x@hWVhVe@ZFT$}@_v}};rINA zO6XGZzoP>BiZSn7WJUcv+pc6O^v}cdE8V{aSUQmJuq`?h z^1UOl76;&79!wml=h8f#eC8>i2{`M;ENJGVc`G!p(_w~_GgIUU_2-}pThU>j)W(&RoU1F;a5HnU?C zOmkuqZS&RW_`JFsYkQYE`e0tpVbmPUS%=E5w}fc+jJN0a7FE%`uh-I&vnH#TOZR@L zu+E8DT{f8|Rr0_ArrUMT|0ea^RMtH|c@#dgmeetdUA0KQfxDqc1~jzG%mkYdQCQqkjeJ5_Tu zScBk=Gb}+pSG!?8P~&;v&!1OsLras9ey(}of#JDqL3a;h>rg zyOQ(1Nki=_qu-Xs-1tr!DI?!G2b?LXzMr|@FjYbK-0!{c^7|qgj1yn%MbO>J|0W$> zu@8cfe;5Vy9|pjftKB`cKBWNZrf7Lpz&cea$dRi4p^2~2-dhB`B-}IVO)<6PGa}`i zE2?=?@mXGaXpW>gfzeBS$1FErcRw`(b_#LEp>gVE2SfR1PO&K>M? z@QwO{KGT+$ViE8NzIES$tk_dhau3?s*{5Zu51kQa=$_qL1MY9tn;+e3D)4;+OIM-1 z;rZVL-`B-vD47#}#p{4q^mD3i1n|unQ5b7}zYPE=QqC_z+ym_nz8U#W9{E0s;9JTJ zX$Id%RUlj=x&YgtWoiDm4^Z1-nz%VBgP5IU+Z0*ToNou*7(}+>`<+;wZyg-P^1_h| z&WL#)h+&@SP1RJLHFwo>s|jwFXUknVO$Wd%3S%m*(KG<=;G2F1oRc#M*@TEese9T{ zi{&#qD&U*P>-B;vIiuXV-=o&ESUSv?bixR}%T26O!IMYHg*n_jAOPioM`~!66P_|4 zkBY+LD!=m_#g0y>*V7$H2Kk8!z*V#<<&YJlL)kI**JHh3y&p!hHRNqkR6VX=l+E@1 zw%f}^&+2&lu~}$MP+sig<0t=}Z=ZwjKPg*K@jL=+`wrp4+jqrh!^@L-q_QCPBrsbb+J2^P_{u2AM>iHn$NH))7 z6^K0HHz)uA^(N_B(Yla_ryGFLL;^6z$6&GX^%Li9;x}zPNvRjy5+WuIQEY<|a>)mi) z^al>cH3k&?Qnhw2>(Py#f^YRl0|mYJB+1jK2E;W0^`w*`gB{?XUH_A?Jn%r2gKf~y z)&CA<$&faxL9>pA6C>XmTx)}E*jDiE2>kaQoMRh;&By^q`QnFn?eow8o_OSYFG-ak z4y@7@iIz~IX`D;}ea!97GTOK^b~O&R#jJE)qyJUFdjaSl9tM98 zWyr|=H}Kt+pf9r>-HBHG@k<`3e63G~>gB0?;p1fB8erT70TfXCMHOH-g;s9o)Hj-G z8Erd63ov7ZJnMgZzZW9mJhm9x5cS^c{95)OBr7E#q7M%u-dO%Vw-1wn@4NQwJ$jg& zdY<%|ee}q3zX85)KW<97F(!WBwploR@OQ04paQzuZuz_Qq^6zYPemu5TCU14l*-Y( z?^{9r-0d|6?{+p(^J_TM=)jxG=M-O~@_CiJbIruo(4pe5@fpuo-s4`0ymK+(j%?nR z(}^w_1sxszTWD9_I2n{2aa0z9}V6on}xUfy$H)=A-*6m?a0C^Nmn?;9*J#OL) zsO9K)`*+$pQ-fjIC&Lo0Q8#Q}9LRy4oXhc;vsbn?3KV{igF#sLzZ~6mV4sv`pXxkr zDeKu0Zl8_l@LI{SGAa%FUh1doLQn(B9Y+a@Ja-^u4ivTeg}kRZ?{oXAS_{G_&wuWB7iTwb=#MJ-^FI%w zjM~?P>IVz&|Ii;ADE6gO%Vl1Gv~_QG43*L|jXj(PFkMx1zz>-do&(SI_6f*RRl;mI zDEZz>PsdTiREwz5IA#PuPWn1oRkLB|)Iz_~#fcvm^+K=;7MD&A``D&sGbMR#a6d4F z+A#@Ta=sl{PfcJA(Qj-IH+ZDV<=Ce=CS1AK387R{Ga zAO9QA5%)u@df-wPCFPCf$YMp73t@d*ia(QgH|E>my&svs1C)(wFgr)_)biab#zqeK zMS^<=-lU?phSFp(`AZn)!tk-(2a;V+&SiK$FgLX-6zyYO}nD`;O;lV5CMlz z$bCH@q%5bHK0ree3ouOOK>I4FRTS?eoRWgI&qdZ}q7$jvo|vdYxT( zRCn@S;H?3)u&io@-!Z_gm5*BcO|hEc%8K1<6e|FPKYVDoA+u@kHA+oa+_C4^8z&9? zsog7o4<1ORXZ3(%+t?evTlPsO9oMWe!E1oTTcrxi~}DE5WFp{QclRkY&={4R>Z`Y$1TxfEQZX%sxrBkr$xzn_XlzvB{jVl;NiRP$Or zFs;`$5c`eqht~lO9S7fw2RtwUzLN0m)RTuE36BD7cfuQej0g9z&9r4Yx<|rqKSuwM zas(V5hN_?MN{)s@eC<}d|7qv*AP`q$5A?K9&u4AaJA?CfCXqSdH++T>9UxX&3WAE~ zi(Xgf@Zv7tXjhsjPCmg{}LvZyyokfm2iCq!|~CGV8qdZ&$l-n_ANqFipQBfOTu zOGot_1~866B`SR4c+|o~8IIKXY*c)WswKQWOOC1PnmENv6oj+hH&xC9^SrutripDj z;5xPPBkeGi>1mssB@d!&avA`7I}t^io91o@rE?7Av(_;fo^^!THp;pwyPEMD+@1vy zHgRVq)5x)O!8N|Gsh5GFPc%Y3*HCT@wDHj_WdXKPP(PnbPpEF2Bjb{sqL@0hUd`rC z6CX;UoL5t@bQ1G@J4g-=Xsvi|IpeHpYaqMH*P74cJ(T65`uuuzZg{*WEi2{#y8^26%+|{! zWZ6d%HJii?5%fWmDep!7Tyiv=O6&mK&D^Nnb59S7f^B*!Y)g~J38kWwdM-_&p~w4k zMRW!DPERlIrU^j2@w6zv9{_Dd*-cSB_eo_=&a-5g1O;`anTu2^>f&X|lw^j;_L&K= zVSE*`$((hjwqcQSmh)^nktI^hk@Kxo^HZa$>x6xvqw8_p)`|OMpGgp4%ht9{CZRN$ z3$|_fYij)9f>;?csm0eWNar(+>T4_aZ*{=oQ;}c@AdbMtwwRC{7>I{1$OZ!l2LM-! zxAW1dY|fOxW$XKC8CtRQ!%J-|K=<-hQ!&vspyRBPB&N}>8d<=WC+@G?IPi{2=wk_ybHCQOg=*uaVKstt38kXV zYJ6uHTjv4aK~rB32?S_BmUXu|tp=@pMd8OBOt}jyVL?OfmdePNujkdjg*~=X-05>AxELp+)p{(KI z4FKR;=er$H4jq6W`V4Fruysq0MT^IF0XO%7o`uq5R1O9BornSPEkwT^c<0&ac9~pU z?Q~M;a(N!$l%1WKbjp>jM7bpcX++3JIckwAfXx8;ob7f{dEG!yOr1RM;uNMD zczYB_Dd}QV^o2)<22MNI=Vso0kL8-Fqhb!T8o83AN&|O#GgXuM<=!zd>dlCERma=v zb~CcAG<4so=N7efS`&4302gsxC3Zcbn~E!Zu#JT%vnhVt3h~^quT3ozbVp|bHk~U zzG=XHGnOptM8mg&N;)U`Ee)=I-!wA*j*q1ho{jn8IKHcfPJb$v2V-e6>^x)?TwD?T zl9i0ba{0ELbIIxG2(%#R!g}Cuu2}zi>Gd*y2QQlKp_c(I^O~-3!;D4jX^yl_0`BqoMDKJuIBfQd-G= zo%g{9E(@?#52o#V><@FKpp$aW@?&ZTVXaMD; zN1@~xLAj0z?fRvr&i#(Hze&qNL_F5)z~ZEhbZ?W|<3RW)}I#x!?Sr z9Y~kxN)SsMq@czdz^}h1sp465%{RLBy7BBR^1)@_qB_RR%Jmq49xPmG*z>z%4RMQH zNe0-+b&ryrn^@o=3}Kc1{QxDvU73a{mW9C_eIMQ=1%umx3g_g{{1 z+_t6FA-JIDW%Mn|22>jQk=Od(X?UUnZKUy$YL3NGU>TCCei+_6fp`=|f5rC|gxF#k z+Dq4#TAmi{$YmR-Vfk7WVgq2mX1@n&3qc(n>5n-FJOFV-!r{B#X}_Z=I-CXBT0%qsa}=PB?zG6%X!G_TRs;Ornl}F6b3VqtRLX^%$+D$CXB`DZmjZf0T=6Rm41Xe;K?ZHw720kV-*WVztPF>95xwr!!S^jV$S?; zPTyvg^R}IX3xM|ps(s@1kSBHQk#JZi8m>kFuHd`3QujLp>@5f8Rh{pobh1q_&DxeI2>Vl*uxYKEN4ah8{tYBkyj zkfjz>Q>waH>VzKZ=T^dN!%%w6&yh?^?1=9K(KOpxfHou2Q4mPCow{zIyUF#ywQQ}V z49FQ>FSWSKwfo`y(74}fdH1TC-D%Cayn_C#`JH8(`@*r4=Rg0Kmy=t+-Yk3Da&BLk zwE+A#lj8WNm^++{M`On)`IY@TmQGe+aJC; z(%+v(!An|-pug7Nq<3fp%7{)Y2%j%QWE*{>?YHBaD!01{3hG(0JZzWfdQ+>fhhs#V zQp(YfiR$NCdMtzRaDGrTA9O%+^*Tdu@%rL1@;wX343mLqwv&q91YyxgLC^bq7P&f( zukSQ;j;U6cywKmL1n91ajxo5pcLH%K?=@CHK@K?BZ>Jp*R<)oZqX2x}XT$3T5RQ7_ z2q54%^?A_707Hm^s{w?kr940CfwmTaH-`?^!+ofK7Ph;J=#h%9 z#>mU-5)FUlDT+9*5=Ez)Z`*MB#&WeHj}$fZ8~)lFMFOLhA)Cv+6FEu@qUf zx%@DY+Sz~GmqCyX))7M&HclQj74^ImlQR&0XnElKXxJ0O7WbTfzGuhn?KfJT>0Vc$ zN-PIFQ_r=!ldS{eKxkS6k>h$_v3G!Q*7|s>q?7O|d-SkV15nlg-ACfI^O6gWXZ$uJ;Rm+J;Ct7%#kN0b z2g?5nzy#Zfem@N*&Dx%a;2TEp9dp3ZZ)pc}qjO&rz>t*1*Dw=FkqmT>pq~S9EASQr z=ZJfjD>3zR&;MpHJmv|hISNMvT$hI)@eYQW)*Uh0IR=MiQ1H~!WLU`sF59=X zv&`TdSR3FQgN~LTJ2pU`bxgQ&Vn05BZ&)rpCY@R6Ne#X?S&D4ZYX{fP_Z$Xa&HL`u z1LZ)=l4C_E#s__TMlJ@!NHd&+6ek8o{^!PhEY$)BVq_PS{NVZZt@d}x0oUU_YB5{` zzWsu^{x>7qxvclB2I*EO*4v|4Pbg0oZBQwnn+Q>^kv&ftTNTmZdw<7Ym{5XxcnZ(^R{!%-XtB=ZGuT+v~++rqc+FaDC_P1$!EX(Ym4K5;JfQ7_>OhkNtf*V#0x-pe`Rvz+|KP^-7kt`e zCRpAz^7`JM_QeV9*+zW68y}ogt`VLs>$;@8o^f~wd}I9IJgsoLU*0~$F5t!lJtq94 zF9J=PQ?Yb8j2_UdQ4Jfn9AoHE(6MstAUy->Bl89Hv%YA-33^1-poyUJo40 z7(`(>{EGjnk4NVZ4Xj7@s!+|N8oK(HFN;s~=2}lEex6W?CxCA?f^HZjKE!|5$Rc434^1G?GqQc#eEq-uE40&?`wOie$Dg3cl6$ECQ}Z z;pctF;P*WJHKxQqhz#^pl~xu%C*q|Q@J;1&X;$gz`gVT^SWa2xoMPL=d4Ab85_0?#0`P}g(lrN%LJq94#qTH^C?z!EJb{n0%@ngk)I5?*LyWhRL zu`K|sKMifj0ap-C6+ypWEkkyX!fXCnw$b#xy>iJt38HK_>iT_md4NZ~@9bIL)+5dR zwjX+oe&eA9_5AVe@Ni3h#!E%A1F66_j5*;?<|&JHW3q7!yjgtV;+_c zfH*eP{B8n83}AfIXS-E+E&S-IfXW%~Q&&y3$|a#xnTx1U(A6TXMQkp z(x!GoDa+!(TSeDKj8dnHKF88zLwAZak`Nr05PUF!H3@390Mj#;l5wy-l$CnnS_j;Z z(f251U5G`b-EmB$i%U`ZC4GD_uN}pJx3hy8Yk}wM2eCA*(e1Cr2)pKt4+_9Ght-_W z1VQ1KS&#;Z{>s^yEOKJdBT!x zpFx>~MEh`10DK0{b1BN|BBg{`xEHR))`8SkCPuCAo72IU0R6=EO!Emc03nrg0MZ2p;RJAnDyBu5vMg5;;@4=)=K=br{!T7PeO zB}B@T`Gu+pbk%}38pH{K9ITURsnvE`F#e+5{{O(|y3yo-xEAVxvx-t=PtDhhLTsO{ zOTYX?N}6U^*Yae$BJ{Dd5Zj=U=y%f|`+h75zBTZ5$0{7b&wqHgQSc4_pHc7#!p)Lm z1_bX&KZos0!5L6P2e5_!^uCt@W_s+6=c!eU91}OAo;NuU{EknX@j-^V z;vEP)w5a>BN5KzvQ=y#iO0|xf-`aU}C^gUi5Wj(81}UkCS%`sdDxc$@mw4DeYCA;G z$Dfz$zV`F4t+}@5ey_O)sGz@TeHr2CO{0ERxkxO9Z?O+$zW> ztFI+K@N-t4dEshGMfc-9ziopv|DNle9hIrg^iu^r*79Z^H?LEa&r|)L#d7f!(9c4i zIBaI`cgEVUeiqBvkdmGw-UEM)dF|ktKv2(euiNt$nNIE$bPBG`Ltc6Otirtx!t15* zx@sYc!`E2&K5X}6CliF!GKGB+SfYK4p7#6P*L0}qdL4+Zojv_;eS6tD+;VR3&31nB zJHM$bJ*AqnIaMN70Nu#DT`UODqf?PE1Gt=AhX~vMLeA~negxJVz5OpQ-1@)#7oxt5 z&ju-FyIr5VKpXPB(LaGE-gmlrm8&gHCCX-$Z##-vJ(_2Z{wd^jOQf%7K{lW4&vf+S zfDQ8XI=S6aQ`?!_trjBT@ty&4Cz!0AHCaWyoLxlIcnO^}M&5Tj{)4JM?Ck4)CY9&k zo`>;G_qPMs*|d>ZwQR(D+wh?IS-D4EODD72$#7Lfr$~#_*HvT<$98hTb>7|gQ3Hmm z>4m1=M84Hs9D9CvyapoPM`4}S zWuh2ccfUr_4_z3rjex6Q?i+h8D5IB}vK=bAn+o$@NealJh7KbQoz->FaJj!UKUBO7 zE_1+x-^%>&t_u2RvTB)%-rBP#b`I3g>02M{`hf=}$fe8Oq-mg0bWJN4`Fo>3kKAxw z4Iy#$`yGHYEfqDwK~INe5w`uLlyoaUCYg@Dk5yeKpmzN!ugC;jSH5XuSULoQf?(dU%z;fAcJ47nfxCDbg{qt z`M8uzkX1JBtd9fbeB7BuTK8+F`Z<=^e^|gb{<%xQ{ZK0Kt$sBqkrllM_@{Jnc&wZWX z8=`C1UKse+obQjyHQ8A%KXMhz)*!-$j{S1?9XK%q^osIkzh{i^vrzxL5`n1;n`%^h=KTP` zHv#lifT$P3I&>AZG5E45b3_Feu#;WY34?Iu-b4)O>CZ6X}Wu z*2REv>-fRB)XywLaKyoS$@eZn?ZKe_z04(5;%)geb&9*V6S@eL_I}>y$NC>4p$je- z9boO?8^)U6;^2ExXwDE@JAL{WfA1W8e_4#++rLcx+IofU(1(B7q#PNSUim#_JFf$N zZa+F(PA~oS$q)YG->kv6NbXZ~HB!n4MkTj?Qu0Knox;AaCy`l1tICfJOt1|TocKe@ zMow~Cf1HXohg~&SshImj>M*7P#dqb^GxTMGct}YPvOMd73$G13;ckn7H+ehnf|%N@ z$>Uj`1n>bXPAFS_aNiE4%SIt5T*3E7Q=-~uWlYpVHp-pTP(OUb)zFothHW4J8R6EH zGyf0K?<~Z&S>9hp+|G>CRgo<8x(9kVE9Wynbi>Q#V*Qby|L8_ffp@?2dKw77RVD%eyb-v%8GLIl;9KXkPf2CT zw#P|*^?^Twh-*y6k{`Gb8?Xw1%h--VAd#TEs_b;npZl?_8rsGVw8#E(ShA`Vy9_;Mr9&)9{ycvv=(@~k`1e@VW{TOa7Mr> zJP{3TFIaxeMJu{da4kLN-xH|kpq&GJGbaZi{PnUu=B0I**V|*7YrgNLf$%p$Y%ObV zv@2JU&l6@w(J^22+0q;Z$1>LW7NeoF^9L2Gf7mNxA#NNzuyS%#0CzMFI@?k!qf4f7 znX&G-Qo*)5^|m{pyb@898h|%0$bzW%)@jN!;5sv|%BZPC&3O%{l-s&5&&qx}5v4YG zQtx16Dmi*SQsEh|;hmk1Qc{d1#w_PMX`XnDKt~}pZK(v={J2otn~`!legxVctTq9* znbG9B(QlR#lMaPk+_^JwoU)$?%lY7L<@A&tQAW2(bzcNJx^#ry>T+bHl?TeWtCkn1 zGX4f?wewupTSAWcLgtg7`pL7;@BH?;()pLe+6egnxNO0HTgv)vW7(C>c$_rz(;FY1 zKK<4|kaIh?AE6C4pZ^z|AN@c6%Zhc;^h*R5){iC2e8MtDo>{sqvN|;Hdu}3X{Sf)C z>VwDE^lQ&u>AVSw>pX7Y^~6hka$dGX$T2YsO^yC+Sx3jc{`Vky=3XD1Vr)^ot+1== z=y}!|4WetSk??X3v$YiRhjXxi02@HHs+(`r=ddgpBjxdP((Ouct;vF`n^ZmDWD1%c zM@95H67JXCaxu106FiHvd3qeyCl0<@k_?gW3oYV)?hX!u5sZZMUKyYO0FPzKGSk47 z(ph0fgB=$kjO(A-rA8^}T`@Kq!LF77yWIAlZ<=af&nx6Cp^ko4aul3KpelK1(+PL!< z+bV1$Wqq7VFtqGiuXg?}%;rBgXGUvFhb{df*q35DzDq}lbo3f{2VdJxN#eiFrWyBa z7UqY2H@@%F`XVCVP4$l}Q1|`uqTm~y=#@75eHBm8%T%T>k>G>8pR0aOyWU{E zo$Y+}rp%6Fc`o-i?dvN{7D71HBOcBG&Kd;^T@*vkBGk9Z?@teTzotCiYg z5qz6%gv2$pMevOXIO*pW$+mpBczzLEE8rV6az+s}!r%@NofM0FqokPkq+vbM)FZ__ z3iE8Sa}TA#vQqin9K$)DDbLGJ3YvQ!{VvMo75Mgu%v@?fPVlaRYZ-h?36*yQgrc%A ztP&vZ`{&x{Ym|O~02_i_S(wew&5`hhOppHD&z!yd#(9~sFQXv`ynyfI+x|T>;=R-Z zGx#nTJjuD8+n<276Fa|g`u5Jx=02$Jb;8l74E!&fPax)!h#m=N|3^VKYq#ID3Q{@% z{Xhc0D`@VMliD?UMBCUyyqhrjIZq`5&;ECwGUx`YNh9IIqKZCaZSYx`fR#cs*Vi4o zKQ*+mC;7M`EMqyeiQr-6y1Ss~Y~?w$?U|T1$}IHRG0~f2`9`P`g54WF?qZzP`@pvU z4d3CAQe!3Og15(QdX*D0-kATr89@3OC+72oe4KQEy(MM*ufVq({S}O_s%L`;cnh{q zoNBJY2GY>|-W8WSYmnd@EWwIJcw{-^Jt@@x9S7lhn=SZefaK^M{UCk4OAfwqEr9VT z%BJhB&)B=_?Vbq!_G(XkN>J}+v4_k2Bq zZ!kwS_xp(f>jABMd*0L~9KCf3IS?5i^%-AT#h8$5m7)Z6)>&=6(vv!b7h27`dbuyrbLJw@H4W$9?1I}Ket0M625 zRJrIXqlgn-U7!JQ&QiN1|t=)%`W7?6wZ9D9X zDMz?-9m=2zf_-Rij*2jdwxgVeN58jpilEUMUR68aHee2M5*=tTYpj19-2DExq^kL? zgWy)_^mPdVl`Y#+4?-_QqD2QqMPx>NX0cPi%TV zIrH3euSZq~Ro6))pEeoX>wxP*HKgIqM)lx19G3d6qnV4{%<5yZ4>K!D=SCBhKsyhg zfjUaQJvS#TQ^M&Kc9nWP;u6b-`QgR99yp!ODm8%g%2IGaoqyS^1=q`7TBVh@U%$4)TBN;P+A%qL zf_`t^dFOU+KU!P7{nNiQJNnv9+wcj!Oxy04{zpNvlzwfX8X4vbqHn};eLs$oZc{Rs ze9YWe1~CO^u>QvSISQUM51oB5?+2P5nJLxS_@VnaSOgmS(92a0X70aX%xS?mQ%8*oDQch!~eaMjKS(5{HEhcpd!b5(Bd(8QkQvdsb)gcqujJh&o8q*T<)($kfxu zzLET&E=Z4Hdo2C~;yEb*>+*xk=R8;w`L13(+~a=db9@k%`%?13VRtRR%H#`!Q?~C* zl|xTjl1$A-8nOVJ=YJD{YqUE?!rLW)_pUeH!hP=Au1|C}t(Ry1o-IgTqr2=oamtq5l=Ja?jcoboK{o11Cm#(zG z1PZXd33=e&VIM`1=yfMCHgHB3Zv`DSu7yD&gKm~0YYztaW;-e70NhkQ*TXLOjP8l} zpUoU&FjGO3Nuhjk=65pbOfsDMajt@10l(8gF~c=Zo2-huQO`E%F&i6&%7$eLZm)Js z5Mi4}HP&gpe>knr8O7J4!;$NM*TBJqY&=>p^N6@d7>eK27#Q~k(%93Gv~|f;^$5%> zg&r}`+c^Ev%H6nyh&1yH2eDm3JM$JLWiZX-QULP4B) z3;bfq;l?2f#xK_ABNtrn9lqRK6JbM8CHr_DZOLM60N<=f>;55W>H1nP-Ia8IQmN=- z`T$yq=SKO<*^|#KCmi;93(P-jmtT8o0V!pGKDFrgQ(q@#ot1$IsNqv14fG(qKY(xb znIAhKk77-?-H&&FJ`-D+2adqoouCnQ*E3YZHpJHs+sHQr*q9HVh1mARh1gOBzVGS# zZWM&Wyr5ID5Nyn>-?4PWsXM=292WzbSd3GMh)Zb?7wIUR*HLcbJi9Cb`a5soD{k*G z0^Woga7F2^%#Nfgue&7Y!^Ufr@p2*fQ~@C5w8qo#1+}SFUxV zsrSWmyY?{5US*X9zs_C1&Ld8UrJ#@AbdBxhXel`e1djU zKu7tpC+#($=!lLa*88R*;{8dx@9EQ8d<_Qr`Ss3c4&V&|575xH=55>Yeg2~D0ACdF z&CU|J-dTyw+m(tg*1tv}wySvU*HT5kv$Y+zs%W;0olAC3&O5qT&%RfW_12kV%qTncT&d_=DGzj!1_sj^>#ZWv)-a;&`QB7C z=fU_q&N6r}7g5!7S5Jja+jnY@9Eu3dnJ?}+h&fjq792zV zH&7Mcltt3SkBIbjnRg~X9AwAIl6h55hu5x4_2_fmx96X}t?pYy+PfXc{Yxo%-&v%K zk@0?-eE*k!bvgO?*X7*4yp{nrBHWC2i__2<;qH0Kv2eWB3-8(S%XMSIxt-gO$WSBv z**Aa3`k20@%7A{J0jpPCP_f65T&?qy?At;=nbTx4&Ae1~uw~BxyGYjN7|dfo*pz)S zokygKsFx;!YLOaMr(Aw)#tGYD@JF0>J_?h!Gp`FicUpR;mZN=|!f;lu1EqA$*JfV0 zimustd93skXMPR6yHT0wo_3ybrM5>6mM|tGIu2EIQqeW~?WR#~Z$I_C@W?;sccebV z#OUjJl7C_)QYpq(3B-D2Jk!v{d>vj7?#;G4MT~@FMa9^TQlO?c$|_VllI&A42(sfo zS*}#$Kpf>$0m6^onh@K`8|yDCU(Yu*67JxeX^PATj|O4iYwlYz1@aBW+SapX zAB#W|wh{HFUkeca*{yO-1gPMeLyVZ^$Cgh$_;IUXr%zhnV;3t2wjF8bR7TJCn2VHi z!6C}VG}A{D1Lu##N|7NDS0dq-9}eJskrecO6JT3sh=yx$+i?j1cg_pHw<;cORi2WT zZdUtlxNmI>n2PK7Q^8O;f84BvJsFtS?p0n}DNRLm@Yf!U$&hF^ph{$7?FT&IG*ViD;3>{V1k z#{=~+9&2_-I&Elp?4`&20Y>e?Jju3OUJP?j`S`g}eP96LC<~$H^%((zui`s@=>Y5+a=|U~ zO+d!ZAK>#1r$XCK7?E%auI0MkZ#}2m^NNhtBvnU`h&ZF&y6>m}whQ6+x4m83b)Y%6 z!3U9V3^W*kw!G|^rCGIL`((8j*qTVG1HNT{toyCA&f)i+L0}kEGt2DM2V37S5r}UT zF|{K+yBj{s?zFd&mmWi@6BuUir`}O!%3YZGSL(U%8)aqJ;%v-vX)#-$1z|S66T4)} zbyi0+kC@XLqC=!5WBe>VrU(EHT1P4k3#i7qS)DhO4jV8kJ-415Q5ypODp#T|I1S;M}T%q#PB8am-}Zk2ra)HN>Hae&)I08xFd|d1f|t z#j<1sP|jg}Pr>9i>}J0OytfQ= z_ZBHf!2!m<_SF3U12KK216gkb;jr7`UQtGvdEmMXm5#bbK{f{MP|o=7!^ZN!ySB$g zqu@M7xgUf-$)Mb$t*8WBta=ztzmX4@7mC(^a0*FI=4YQqZT>;Z*>S8qXO9sB7fUe#B#qhu%mL-6A z&m-NWo+Cf$sQY1{!9_(@71qp-ISMiN+wV5(nFL{zP0zW?#+<83&vU<}RxTHha69Ub z6f+5`=cJ-BXWLIyTKUD!bRubPJRXLUDWg$fo==N_jOKrjntc2;B3pS3GZANN3;zJUKtmuV;>3DkX04?gs@tM-V-) z6wHg-dd@qX`@mQ^irzO2BwrsT#xi|U3*{CndZc6)Pd4S()!c6pRXk^ocwdSroC31G z9Dnx9zqU9%2j5?MTe{<(BiOz2wF7APUHx3YXQ!Mm5%%sm2wK|moP~aFUw|#nF8{ly z&%X87OM|Du%rRNmk2)Ep&mz@)9)v8FRWuJ38a(fN;C~VwkR2sS#w>}iTtJ< zCq_9>0fb|l;2ZwRwF}Fvgih2AR|loZ$OJr=5&@T}k{*2zzeY~;Yqu}PUp2A-jwh(+_=A5+BNLsG za0sv2iY+iEs~DSuapZr46{@d=<*if&tr*?by5OSjcd^~D^g!7`=>6}szpux)?N5#1 zJLH3dj((?$Kp(RFn1OIazxVe28tr<_`;G=NHl>|I3Ei=YNmiwbj{YFxBUnz=4VWmG z97}cD?xz8eH@aPbb^VhqqH7M?JO~>Z&$UvzNFAj8Fzh`>z{&5A)C1;vHz5x|_Xv-- z?XlOAi+$&(0ZbE!+p)I1zvj#P8$HQl0%IxXQ6U*kalJ!8JcI>6gFV7FPQhYtc> z{hq5DJ~TQ>rL^D*he|`aV|gK1-o9h6f#*_z_id{It`YD@g??V>=te(35bpS8)ner1Gm$5Sbi+O(-%$d?5@8k?Mg#;1g`XRDg7k`G~O;rJ4%^m zq_drE=Xdnso$V-y3CfQE;1C>hY z=V4$`3xkXfD4zR0xsWvaJ&AAL!L^B@h=Fb)c(mUJ#ZkJEehiY;K+2izQ_qh&l_HqJ zL~kFku{`u8O|MV-IVf!-yN8(ejbo-1j6n_XX^4!6V^}tY3a%===27!VUEgXC=B-aGj)Nl&6EoAc9w|=cTk9>bc zthZV(cHtl#lyd-VfNn+{7oB5sD#C~7M4a1~)1Zug_U2FjX`eVO00|(RbaX?sO^#?U zyy`?w1D8&k&75?0$)&{X*p%5rT(^jK$|~!FaE%iE#{OOrb5m9Hl=H)Li80u$sIBMf z8^YrnO>vq9)|FP~2vqhHj#HsLCMKb)D7ue@82fT6mWIkXrUx5^ab;>z@F>vM9UFK} z+H@ma5BcHkB>F~HI}aK#n`OeDARPP7PCNJGLa&H~Gxs~*15@PGT3_YmiH&6w4=^yz z4$a( z`QJf!Ek?rOE6%SiE8(@JU+0>uqBGbd?vvgS$t+FgfkXXV?V06)t0CVTfusI;=wooabMLxM82tvj(l+Z z(%Mz41HPx9uvTFr5LZ=nzifmaNNvf0A+msDljCm+=K`6ZZ-x8IMhWq_T8YIvOWr~&sndII(lWaqqubr#xHcp%kL zZ`zm_l~oD`e!zO3|M+rVc=*-rc?p2__3rXD_oNbJ>z4nvr>ZeQhDUzRqcS;$Ncdx0 zF#$Fef8fLK*FCUjfBvM=4q&ad5%662`>AAc3C#8loq{t9pA+)G3B>z8qX+>DbYgEh zzo9EmKflI5sGh$H^&+pj=-TU&_pP1l73*&=iGlD-smVFu=$w!IukqPcim>Ud>ct>< z76d<-iv+PXD4r_~y|KLYY#eE*e9qi&mLI!d;2R(uv&nfzStHz5hHOIGxfI%YrfYQQ zVw}>}N$%62W*Q9hyQe;oD#a}1eHQ^XvspWc&wL=@GK)vKi9VRk?}4`wcJ_DFdximOps*hSaGOOGii>$6>Qo9?$r)C7_5bMXBYGDNVW zn)%ZH6i@_#wSKSkMalPJNu~7E`=A_%bNh1J?9HG1o!R8(#}ccMp)(qI3QPvcQYIox zKWV>Jn~W^$meP|lqllAD3XaJ_isx30q|o*< z7{*4vubD-{2hOq@Ntyq}B(#<)(9pI zo1e~mN-uR%$F7gC+jk&L5czI7mbz4jRkv_&l`SXwT_Sq zsOGEzE}I-ro3_32Qe-heK@3+Vg9mJFc-e_GVbK5q|odwtYyJ9&qlqN&Y_xFGKJm>qX zW}4f-GzY%lb73`K*I&%iem6^J_Cyfg!|%v|crPtKCQKR$c$v;Uz;_&v%Z z%sonoN{9ZEWyz?+k+m&cC4E4k?tN$m$elj9?xQU-4qc5!7{>;F+`x}f3jECP$s^cJ zC)z?mxS^*k<$Lvt9H|<68qF6U4K3AaI+GRE^f`d|)W*Jkc|eGp|(3uAGzSY=%+{th`>Lq zYJtBMO{oLZ@la~tK!Y={onr10aYV=APriO>YUlY_M8w_k1S69*!IilbBH=UuZ`k$L zzkMEM`u+Xrfwb_lyi2aXf8$5RJYrWl?i_Ajkilac+3mW)N?6$ z-=Lsxu_Dr4!v%LW3@#?f7LfU#;B&NNQI>3vjSmcn!*ux|%2p+#ore_L2j5L~)OsvZ zu#m5geP1`wS$}=&wqp)>S*Dy5UZ*9e50ZLLd#@sFU2gySM0{(jXFkU3zK{+`#$xR4 zA{|P(6xw-ObFByO0NG5G$kdGh@Z)`Od(Sa<`v5>V!Kfp)FV1Lf-AP*a&!)ey-ef8Y z6cVTHYiq7ZR!}ss{kVOQm3A&hL*JD!0dQa)f-ZN<`^iEQ9{Gmda=Oi|jozRJI4C(Z z0PmaPX)^4+p4+Skp?Z#-aL}AUKSxK8nbsfZ6+5qUTm(djzV(>x`j{Ory+KMAfagSfkaMc}Y3JIE z@FN1A^S&|Qb!g^Yb@M#CAC%Db+PM^2X%~-#Z-i$dmSfXH&YXVkpD~;PQpu|*c$LrH z^Q8lCr`+Xy?sA})4@&_oQw_a{uSFXU*8q;0JtK)KwSfZ2(+4ipQzF<+E?F}OWo`=H zH|3~|otP@|w0Vf)WFfY>6w0|2k+gYG@r_jUeo-yYd6e27mI}~#E!O&8*k236CzkX5 zYjSR1EnBGb)k5i|foUq)cU8@i4<3hAM80F*_ymvK(1+ejZH)xI~WHWkp{4O)G0xxAl&tOG7x73Jbs=o#74hx8KU}8 z1zm$a{@1&jviliRAQhy4RNn`KNIj>XL*Hm29_0@HFRBK?a&2%as^|dM@Sza}KM>Jn zPT7Pq`mPtUtd}9e8pCW9^JilAsD}r*9_MS92_fT{_N5tFL(U$`?+DCIQ>FEbt(fQi^NNjARNdpLKjegW8P5@$9jesMn>B64 z@FR!h|Nir2!U%g}<;wm=FH_C&;27>sR{w8O%8pSK5en0{?=E$pHX#4oDd@Ldgzex_ zPak&7$nD}}{BvN}dGd)-WS;o@Mu+y)>E~pjV~H8R&%*t`2%pnn&1VKGI-=ntblz>R zw|LnYAop?*0Nv;`dp=7^HFVI<-^h9Zjy{+A8(9eRvQd*%@mwsgh|z7PcC*q&Z_RZh z2+y^?UHLq#dvbp}=xm>4MtUyMp|mV0pNIUZZccXv_Av|HzW1|9&yLwl72wV)=OS5X zMRx}Qw$o6Si~w9`%UMp$)zBI7#y+K>Z$z$sL+!EQ2d6FXH`QFxN0C3M2^>=MiZO{4kbC%)t`hD+j9DKj}`Mb z&h0B_JG9n=Cgb*4DFe1B&R{-eaxsW;y-n`pIX%bYITx+`eEN?EL@! z!RGaU`j6X=uF2^!eOcxM40kt~`BO)o8$aHvI0zNceSJRn^9IgD(iEVji?5Y)GdaoE z`?cqu+xhySm)m$DEBC}yrnwM6OGs~O^7yP}FMYr688$wwHCiH*KwC?YP3!loYY<}d zaS=An0KI&65?~IDdqyOExLZ}%M0;y3F|rCPwKq$s8TK$ zEkKTA4;_RzUP>1J-2!Up9RarGm8PPeSNpCua^+Pm_Nx}e*x-ADp?O`pzvm)n)Ge>O z@NM|S1iPQPv&?*O1?ouUd{WN)#LqkMZH;`lzkkgG-))0r?Pq*&($np!A3Jh?0lDGo z^RH1tpWJOM_xqs*>p)KzkAffWH73HQ+f7zVN1gCJoV>>x;r4pOCB!W;9eh21{2h2{ zEF}duuk(~t*v0RLTdSqVWDUijBj9m%qlm8A3`YUlO_dK`tO)>Kn(n@` z9E+?*wwsW@(Al-3ZXVBB)5ag>I`DnZf8>~HY9rrxIQG!KFP8uP&>m_$C|c*w!8dX} z9{CIyXeWFQm7>z_gZjDVfO{1Dwu5jLVY}V9=7TK(#1D8sPi$sxz8l`3gYPA0_ioue z5p-h-DtgZSzEQtLZYl`JfK2cWBlv!0;2VMO*WrtL;~@O?0h`Han@4Z|^IRL&j z0`A5M)otmBe!yH{4Wb}NI|V2~AS5e!!j4T;Bm;79Mots{%K>p0Ct2MHFMnix`DIE1~pxs?2m!>)AM=Rhdz1GVHf2a$djOr(%AchRiA4fUQfY%V-vrF zHE)QSLj>PL3at5`O%69X+C2=3<5M4pB4KOVeSwih!85%)l>8VuxM!&{=8S`7hT}O2 zu57fka(sEMl)?9ggKyZ`hE2$;_6r(L%Qz*W6xpV0%WODJy-IPzAuhtgA18Gw37 zJQi*_ZF)s8_Sk$24M2o+J!s_6If`||VVdT*lh%Urd<>M(U3~2#|9NYF0N*_q*^On$ zD)3EbQ4H8a5gooIwT2XT=?1O@>wZ3+;Fr2xp+v5OhyZkhtF zyTF_6J~yKn@xue(u=n5)G*VRU%75RCtZo^kY`ak4X?&OBVHRy9%q<=Qn%T9uhoE8uh+o4;SnXp1!*#z95|v zWVijQxAQDp%3^F-?s^-*IBYlGQ#(_KjsQz^Tk>o7B}E;B4|1bmR3l%Zw08|78VABPR59ES z^S2tGwa#s<1@5!g7?d%aT}0O!FL9C-eDC;xErH@T3bRn7X?Yujf8zUk41=S+SD$C=%?f4x+|KO_vbKZTK70P(_?_GU8oKt$ z-e;*W8~Z^OPb=fzoU9`6{Nm)N4C;y2MF)82zPb{|w0=J2>juAyj3@7>han9pr)&k} z%+w^cPIZkL$E9JD$F6xeHjiPdycW+)CbTA{DhMZn}nUV0U}H=v^H=5g_vU;yJQ3hPIu&0uC{@N9`4_-?Y~!z(zST_{f?M{;W|a8GbVM z=`pwJ-#OAXp|`ZlhF!SkjV@WTEIQ^$A*C=I{CZH)QF=J~|L-!Tpg;6T_`WTW|6SR%g^e4jMAt%dNF8QWyAGVj zcFAh#=Q-d%QY#;Nq?X%u`O(B&0ILsIing!d>T(5h(SJ@gK1H3 zI~Gd{LL6Y$ZPzE-c1!-Z&dzma?7kLCEx>?*Z!PvF`U|tDZI14KMcr@ih}aX$l<->!;=L6je=e zs*9(bZq`5O%~Kmxb)a>CZAz-Pja+!nu!DAvJhQWyYbFMo>l`>+*LvShrBk697nD)) znW+iT4D&3%mvy1V`l&8t1At!V)!8ztofnauat+wPuN|Yy+AdBd%nq33cJcOD&SoGb z3XZ5ve{Rw47`e%yxLhcIRx~SP=53nDZDK(SN7>0K=)4efy(zqwsp;i!M8=XP%I&6dsZr%s;k{YI(E5RCJZ zT>xEDt*p;ogcKk4!>ZXaD979GQ~-Anx`Ykpofqv+iVlnkrSr9ODH8ymuRUZ`d|28= z%0w{IspdnU)WsO(V~_^NhbiZjXHiiJ;NERED&r@>wWem}{Y^&LQ9FfEa87`euC7`x zEIa0`HH_T~o;PYW^yK4z6l+yOY8%B{L&SSCD4{nB=-ErTKOx52Q^B=Ru?0R01=%z| z{G!%ge(TTi|e963R)&!>#dd?F+WUz!x#!mm}J|UFQ zSAaOK|C($&V```>I`oF%dLxjIYD)-_ZE+_wG@)|o3w(N%Neol4|S0JaJp29u}GHL*F5iL^?Fvt-V8tF{igh~ zpC`+^*pn=R;HyeWCkCgG0vjN-aK}M7bHHORIPA7ZykU<$5B$LQY4m$;U>qPEmKD%L zzRF6jwCA?~OhXwGk?)%*&p_G@rV4}dxmvs3e{TCpKWDBtX+V6PtB8KL0Q^1I_W?`Os3ze)v>|-1%-zoUT&d)J`#IUM*<=K~oS%GPW}df-u$(n{ zz)okySvU*l5Da77-x!5*U@W8JrBfpPT%Cw%aW;_WMW-X@f_r{;y#E*lP>>Ibx<(sP zC5}Ub<1=IQoAh&juDM)|wNcPV>%2yXa1flpdGegW5Q%Y7ph9;fD2~7RaR062n7kfn zJ|>q7YxlKL@cANQcE6sN8PmM+zA2(3=Q~Hw7cx7&_3`w@-ETKd|6@6~ue9y#e&@F= z`c1%%^`L0JbkJ>PAY4JYN5w5)JS|T@x_0vYU;0$e?cCm@4KDrj|7i2-qyLxSw>n4K z%))=mKJkcUKUuyvCNv?kR?0v&Dl*ld7vV}6!3U`2^W2v^FlVVTS5%K}&3sKjV_;%z zT5H^yS;*a<&&u|U$I`sin1o|9JzXp(o$Iq$Up!nR=aG*>yR*X-OFJzc<6Sdt95@%< zl%X^^0!|8=3b%#V-~WDl&vs`dQ z!3o5vm!wMQZS?!*Q)}&tc>X`Z|7HtK@sGQbC7OEFeEZ|L^kW}{>s0OG8l4~ZK3Av=zHfhcI5PP5k^&igW4(Rw9zX2m2N9GM zRY}CY+jbmtzz=ql<$=R?efc<5n=sDK>H4lMzZPcj(5dvFme1hIU|EH}m4@B{-`FJh z&UUTjdTUKaS3U>$2Gv~E&tKK&=)5J$ja>=g`;r}l&R9FiOMz|PcG#q&Q(cq59M{U= zTRPx-+Xe^B*5)+u4)|vD8w1U@cQOFp#wsr}#mobr_$U@dP1HOW9N@bf0nfEONgwmi zi{M))vNuaRqugg)vZr!2^fQ0`jc_eG2^$2*J~N+l*u*trMkQaH;9I8MMnb@rm?>!Yl-#95m~ofYq4DLp$$Dby-CL!pKP6lXL44UPnZZ+Kt41U zA{Ei=iDa9s9*h|6Z?82C_cbbc;20O1X?ZP9R4YjLh`8o~`|%l6lg+kKPh@j^7oS{@ zk#HEJ-8mS3YHT`!$Wy5U5>@3D?40{QQzv5n1NCZ5CB1R!n`Gb{RCEX5@Rf4J zI}p0?+F%tT)eo#gH8^5NQq}#o)BLkIG!^u`4=b18kM^<_(EM#j`vz<(sh zFQtxfcN6k!C3Jr2{G$0KkDId0*G}sr+npQ8HWpXx>$HvIImv#w-)Llg88q=oxLtpr z*WWXt1Uw)QJD)d8kv;NRtttY3w^1-2?Y7@HQ@`=g0S2`L+rPUTl+dGn(jN1~&VBNU z<$i-wgJqUN7mH*o1-<=)AjQ0$9UO!XN;{;s^8)x@8})`c_(mT1^|l?eldPYJ@)0OO zrn8zM>J6pK-s`jyndeNUg6_jo*L$07V)Z7q42Fb`ALn{m3<7Wk+OZ57wyE$b1%%T; zKbHW&^_uMf1u>Hpw##&Kxc8u3&i7Gfv2B6QG^UH62C+75pKXw$*17fuKF^-k6V=H0 zS-EdI0xZ|YZAQ6uV0SQ1RrGGn?_uZjS91k)fbSf&57BUfcHM5B97Go2Af=EmUewLa zd15GH*q9S$QH@lor!RtEBHpIOKQMA51+M1 zxXWkJ^Kw0+(eYA(Dm)+k48~8M{@4osaOL&0_?gsE@Tind z_8T=~ED-Jr=>qY!r7EB|rv-$IN5=DYSyhEW0zu%w>Vi)^XrO6zlR7HDED*A6fgpV|1V|184P7bdU^iZ}GG02CHr8LkKZM_i zbVbkmW)vJWboiB6!WVt%Rd`-fj4fDO2L-{dA!2!fS6H`Qoul%HMelsKH z^lcI3dZK=|)HL*6sc7e2in`iur=v6P`;jT1=lb7b(Qu7`i$%oM?n+ii*G*SKw=u`^ z`S*oPTyLiWI-}lhb>v;Q~SWd>>Jv&|%3jL3UT#kv)YT?0qG_e^lEHN-pbS>tB6MTC?@XB^q zR@y${iEU%iTR0eQmx{Z|s}afI8%u!iszYi!DS+=737_6rR+RHfd9nrJuddejhE9{< zTQ{%REap`Q-%AIMw8M)AkkEIdv!=L*0zfn#+W88;1MnvJ);0&(8GOgw@8fd4ldA4z z(&%?Jt1Je#BL#hh%jMuS#S&thHTdQ=PyMPQ$?JZH*AcHHx?y!hH#X=Pm;f6G5DeHD zr>USib#Q$YX6r`*cxyQ^3HjiDTf@$>7P?7Q2^h_#^KH`IXZ}8rcgM)Wa275~0XN-F zg?c_KwZ={8M>Jw`>Og!RLN4==D>(3+L$=L>Sdgk4e`r)%6c9H9v_YDrFo2+ zTVxPc<(m8Tc?kgPVR=~{Lx!_(4w+fA&e#(wZE#HEZt9zmlFrvvZIh|J7f#qS&pVAu z^$@0KF=CzXW$I%tRoL*?Bn97H+wea`!Lgi%@n2KTHd1EHDND{pTET`R_+|waElVcm zZzTE@n_lZ1)mtXDPqWTqz=2g@fWmW0R^)ykr#g@!cHQUb-CT$b;G3drham)h%ku?Q zeC;i~|HfUpWST!7SWzvY%U&7hwUqK?L5NMkcYEHY*UJp9VQ@nM*bxawJO9+8V6Z2C z1AKq}%mYAVe?BYa$WSE+ApEnZlKo~q_LD-5hsF}h{Q_X`?uOSmkjfYD8Whk0zDMr= ztKGq*hyiUXq7!^$TT{WwNq<-Zc~nAI+q2JcPrQ*z=UwJ%3&J1Vt9@U!aVH?zI9`fa zD>946O%0OAsm5~Q(o$o6imfpS8w0O?^$%8v?LEJ#0$3xb94|8mtYP{H`IxcN-Yl{eA_OV^S&v(CV9Q4KkKza#5+gBwatG#IH@TBJm-A} z;gqOY8tZ*mV80!7HNq_h!lg4fD^1PC*K*l0>8P}h%!v>`Z{)dXDIBADY@pmtt={$A z;X#gqyNJy&(DjDHqAWWKuNfoCk$#@(;iL}E!tnz?Ub%)zqbCaF2dT76Q8ZV8?TWjD zd7z}b18BM5J&mX==DqB^X0CCj~aTQWLDj&6x<#n;ldp9Cg*kQM6^f4rz21ELTeB= zji1A4WYO?ZCFZlALd`1jl9EY0V-Mnx(W6e={4XyjlJi^0rtwRdyy2x(hCCWfW zSM&0-OYKWN;(WOBK=lN2>H;kpp;6yL`ey>l$g<3$4-0xlAJitG@l0mpq(jQAD)&`L_Qq?sI?xy+Q zcMOyhggWBaV_H-1A4@0N9nKr40LIfQIA=RS`YMcI zbladGuU*5f7!~hE$Ug*oF95t2V9Uw<@dzm&e$&L+5%q5>y1MDNt^9UMJ-U@wmv>Ur ztK(CNa8s0EoT?kF_Vb*4uGIlYX#jgTB;O#Y=o%H@Px&F@!}TZwBnMAkBT((O1MkP> zmXQmdDd=p&`mPDEebROcUHW;~Soa$S(Ft}&D#FIj%Jabc-7l-1QS84cZCzkrZF>$6 zI#JGOvg9K+`xi@mh|1^eoG%_004}}@bf@Lf>SO}*kWP*|?S9<0|HC|R?kgbNj>`ZX zO6QZZo}nY_vG9@INSM&@BFiDPQT2sW;!kxlq`Fc$lBWn<@w=gm= zKh;#PCSPCMr%hFUEPfsez_9`a^s}abZ&`hxMU1WSy5NPD-lbDl+g|1rKzw6ssS)se zo(r#WsfT9;^x#Z8{ag(S=$^0F95+Q@r~U8P+b;kd9~tP5baPk^gge;Q@4>~`cH(_Q z_vfu`XZm>xH1uGXt}Qk98(KrJUbS8GH7|kdG;{*-Oh0b{czSN%Nt8AMz()@F^;mk> z0Xa*MF;z2@MhV29nAVa;!F>rqHaOzD0v}znk51rCzkcf5@b|eMaR5?LbD841es2$@ z(vo`kP;!dvU4D*xqWHoPx|f$D{d}!;K=)Y6w#d7|cyX8AA_!Y~iIT_Naf{bb)Jssd z3(`LvOY)v%h)HJ`R3@P3!^p(Ger0Pd>itSd<6b3Wi$?8b}u2G!6j zu^cmbD^F&gJTJU1P!KLb@~DVl)2J%8n-Hmz+>}q3 z$aZ&FYJRlQqSXE}MMmqxijX@(A?XK+2>Q=0_m|`*J39Kq4>|DT@+)LL9EXyqFeQSv zSuWV7P^Ci?z9`he#p^utxxB}Gt+{q4swi2!z^$9}-o)N}?X@47Cv&ek)*N$8%v9@) zwE&SoZoey^(_(#36KGiG2%#)-q)y6&9+Vfopo7miujW#+q;FOt(4rdsZK}wnmea&s|@Mu6^$s18|FW$H^{O z1lh25z3&htpU<{7#;Uz2rj@Pi_t?6F z!(Sd;|NCE69SZ?f-3DAt&wE@-VQ;Fn8Hv3vvej%=i z-Yw1`=Y3Dh1)D6T_M#KCxTOHTdnx`N);jvzN`xdY%#nSHK2;)5F$f-GFz$tHF3UPplpTzXq}7kpQ*eL(K7!=~`rA1}NO2jI~_LpSQV;fAP;PJ5W( zNDj)m6qz5Lg^G^U(FXw^nRx(_%08|7^nj!uxR)A3y9=~sTGZcaoxix0^>%PIlTwc} zIo-S*qd$>QdU`QO+yc2}Dd+w4D5WQQht@7d7WT9Nc>H5ZH#=_0Swmj~+^~f&OEB~? z5w;=uG5jU8lX81G&h!h)MLSJfrn`ZLzK31-=P0>Q0t+YTkHzvhoQ|%x0KC-@{pK8S zUy-`su-#o+pqV=#zgu$gjY zP_bkx(QAobcb41_mmUjc$MA4Q4ax1$w(K}WzX9BBM%L<88sG*92Q7V5XLZ|v`MfzR z2A}g&ZCB83lyr!e;H|Q9s19cKeTrb)abWh0h`ikl-vG|SnJbGTO4{nigQ=y&G z67a3>NAkE^AXtI6P{^gk7yvb^@$x?H>ovfO*?!M4)N}E2N-o+KCqbNoj)(Uwd3iC3 zjt2wneAcnmLPr-n`RzaUODpjGy=&XQzX9L?)w!e2ahrbLvX1^U4|TvhHpc03ri{+C z_D(2kR-boz{<$l8w0&hZ*}g*4jVtr%*7xOE|4N>(e@H7^**^oTsOVGGwovhmAktO< zb{kl>quLI-sk8%R%kw@jje^H(*zpG9Nh9qTGbYm@#ulz8pj@Br4WQ0URhRQcu+9A^ zxe{25??=jMW?!$=)s<$>0&UHDQA4ktep5uZXt@sEVi05-X>?rIxvI&iP|zt*(<1;M zoC}ENr6QW;(Q@KtUI2Buu=tuK(&)Ig9SJv6KMBmhQ)^SdDxUj9K{x|)RX}fFd*0g4 zt?0Ok$8KJnb6TPUa71Qa1D9v^A=!ltYUmgBGhjU;rK7v4IPeP%7F|+6el^_7qaec8 zX#!C5!}>lAe4|>B=Y>-ViUWAV7yYn#hY(^zF8Be7>wU1R>gP}7IDl_2MW%jy8+b?m zza15iK>T3~OFRtu;Q9$W{vdqT``Xs-Q-P~gf|f&~r7U8K=h5HuFfCHhv3WnV*Oyv` z;o3Mb_BW>UcLLZEggd?zVE5Kz-le@$Nf`Se>l)wfK8qCf#eDFxD}2`W#mFU!jU|rB z;g2!YS6hUQ0I-+*(eBF2_uVbmvgrA~fp6Hg>~s;>9p#+60y;@fIOl@j7MjT|`|;f_ z*9YhZ=0?s)HG8&85(Ph~+uYFJ%*LTkA(YPnzUOcIGG0dxO_qmID^I2Z-&X~AS72PD z;Gh7(7#v674b#Z?A);X#WCIA%Uggo7zb0emMF^*9cK9!zgC@iqOAAN@Q#80NGdtfTaPL4z_iL$WjTcR&s_K|W z2^JL7CnXYIDCM-|1Y*-^1klMHHWO2W4b<_9ZQe`EiOuwHj~Qm8p2Kf+aWxlfqf#En zY)$CyMm;Y%k6AZURYRO3L~E(+TT7=O?fu*ee1DId)c|Lz`P>`X3~YD8dJUo#e0StL zs1NQn#ltxSklXofVk&j}-+tM<_|0z&uKwmf9DMHA{)^2I|I7d1*7yI7f2)}k_;Z7+ zzw!U-?)>BbU~TaH@1)M?BU;(Y{wb_M5L=_?U;1;UJmai9^QvdGHY`l48Z)UIj!~d& zZBt_@g>sT+BETsM>JHqj45g+S!6x=BCt+T7dv*uO#~{*Zb_)NUp#)hNgM&2dS7T1MHxwGVZ6U-`HvE;j^-V+QxAm>rLB*H{(P+sTiyMP0oX0D?1H~ejNIY zLLZ30w$t9^l`9ch_&FPTuN-`U4`i%B3LF$i4eG!#ARJz6$fS^Hh}M|QijZ;-Uu)u5^m+l z+Ta^z)0_sxojFQn9Y7q^bNJd%)E9Z8pV>6%8UTD({y7QYM#*8kfB^uy0SBW0Pq$Oa z3lD(eAuFOY?~_o_sRSR&Qu>M*TL9ln?7r^1-~RnKIE&kIIrn{F zDg-uj>ypD1F`Wo;ixgX?f&nv?n&JEh)>34CAZvE>!y=V)rG;{34EUPu_fg30o!n3< zvaSq-Rz7zG-HW;2OV3EHw-RP$?&T%>-g@9tlSsJIGGftsUA-Hq9Q%}5{Tyfe}q2N1XQ1uFXUC6VvTx~)_o%tUhC?^f+b zSd3hA?Qgv|2(DS)_clsYylMSy6o|)%c+3m8Qe>yCziB(ly+uWQt<>63@ipC!G;}^b zh_7j9KRe6@$ru42gzGcStIGEl0FG$=dh<{jotJ@fWYgt37^l`?ZQ^UNzD2IBoS2EP z1qVPP-6b#F%Z{~U}|kje_tR3BXJ%90s z{@C>7b3aEb`<^y{-6Fn*=jfb5nX$KzBOTqx0dtRhE8y+`dhynLvhhQ-vX%WVjj8BY|NehmN4Zsut>|QApP)t)V(sN4Bs^xD?#d`4YwmpkKrtz2+B7R?xrdlaLti`TR^E1StQbQNctSl?by zM_)=q*K>~x{d`24_Z_Zb*S2|ZD^KRRyw?f+5sR&gW@>_?uTrqTp0zGcpAo`QHH9a7Vw{{4F@= z`-B_m`>i;i@GVjefn$0=k2-ZE4Xt(^{Z3c4FO zrR!#>6Mk=)OE7epmtKmoG0m4nylagwiC0@Q$76l8bRzIkJj|-WckC z?`UE;DCtIbG7yf**UnZ)a=l5Y=QcabtaJ#8U;^m0j*#=;QD=Ldeon1A;CL=5RjbNf zrUJNa0NiK>#Pdi$uj+v7aSFiWEI3Mv#r*H(qH83Ba~1%-uAf&G38zvD#l+Y6{IsZC z9u?DL?sq&_&yH&WaL*aHzFy8Hvv^zbvSZkat!7}Q3 zdxTo7%Kzs5DMYe!iHgG%Xvc_ntSxT+TtU53RG0Jd{!S>3MiH-CRw!@_o0a zr`NwYpKRTtyviwG+1qVF6@8h27*PP=VZZ5dP%BT|fU<+(t^#nQk}I%YTLNIIqN-<~ zY;}O%0{BKl@3!uHVs*h=HNjz3E;x@{RFu!-y}&{qxE(7B>I%ShziF-5ai)Y`j?GLz zXP;seuCrd&`}j4F>fCIl+n)Bh6|1n7l4H*9a$NUk0Bp>$VHALHp-T;=16Vo*NY%|GlwioBEGPVFdmB zwfdSD8(;IK`k$A;#8g&h6k%gSDYEBu>fvfFN0pPqI0g_sS zxEb#Z1?N-&$I$P7^Sb9-1^Y<5^t(Sy0>~X_Edk2`iX{obX5~RI3a!-;YgyiRo07hq zNnKaidSCLy6TLHQe-F~{qAyXHEm;D(+cr!AXfI63Ea^`zkZm(X6pGc$7n5n|=(8uq z?(xr__Qy6rw<#043i_Soc^dJ@^XRrlzaI$`{qe030S7I`DCf6?!m>+Q=;#c_i|Tnv zJSj_~!59F4+B`&Vv}W-lpk9c2$9(Y6pGDYUQGl(PaqPTkf$f&H70_R|`+|o4CV4&( zN4vEixIMHj0*kLf3d%Xm1VcP3-fTdGZ7b5v={uAjYj4N0W6Qu@5LUD8vYu1` zMXzH39A?pNtgmZb&}J|`9(5QrTN$!ZSg*>B>Fl~GpvQNBNcU33b0Uv`PsbA7CeQ7b ze>k$O%IEz_0pTvV*6RrPHs$l4`a~+c#*u#p;mMsRj*53fDKSb8rtNdID0*9b&9FBs zmuva3uI`Wd<`Mz#Xbz#Y3!s+2TRZa2YXN{ulw0~H-mY@LXXh8T&!7E~zr3QJe>SWE z;QxlKG0H6im$As5P3}Ou1;|6^Di@pz2rrTHEXT)V-)0Lp5KW&^rO)*2`#zi={lJgU z#yhw2Y?VX4vPDa4qpxk<{F{G~1=v^>9p58ULswuXX+D_&wm(;YH;U*M8K)QtFa4vc zdJe}hz@HWsX%h}x>&+|CHJE{EE+H0xwgB+#6mtXH)H-MTp3wyp`8;&CqS#SI-2pg} z18r0ru`*?#sY}kd_6ZSi%Ly;#$poNFnbBpRr<$d@X=IxP*~m_>eJvk6M8yHLSq;63 zbXzGhM8XGW;aZznz_$z3YP&|kEug_s?-PxL2PJgBU-i*U5j{r1QBs!6%!VL~y~lPA zI1CYRM7$9hw2UJv{hl?Zq!Ma(Mb4`u9WgKx_L7mcah0^4fV)?)FJ zei~vrwhgHYRC1)7gl5iQd#L9f$~Ep2$i@PpiM|84U4&nCa5Ynma`P4!!lFf>t^1Z0 zwR#)SUM~Lq?(7rK0k3O(%O9gnEw?{L`J<#|?U@#R=<-K&`ne_wEX?}onWEuK#>Q%Y za?Aq--we8ShRDG;Y+uf?r{~@$)jepou?`TvgGg-v-;WsVC7Io7mY|Y6(jOTXxB8*< zn2N2zpn$%svu0?*`oV7bU4wG&Q*8(2Wf4G;`EXafGk$Ia@NEx}ihh2*^*N~s8|df# zD;)vsEm{wYsWspmIpA*-R%3g;_@KHN){nD*?xf)Rq=|SV(#b&jNkYOA zgKeFq-QKG2WBWv@=LWntW&g$|Em(TnduTsJ208#X##Hha`1S|=c_=-m+YG!dCrr<2 z(eF{H@jY5Em$SOwe2*Hr<{a*RX}5R4fO%}?Qo{W=j)3KW%Q+Mz_X7A1<;38HjKjKs z^NxtwOe7bN{Uj|}R_-AAHG3MdSg7OO$_KR1!9j8W-$rqV!)Gey)2Y$kWgDf&7<`jN z(G9gr$+1!cJgTU%GdC-L*R?fW*RniT|65<@&;P(G@B6cB<$Ge(a;f#51ULu49RYO5 z>xD}Wxc8mQu_el_$7p-ZG1t|Sb3V67c#^1lHKf~l>>%oH{LV*%&;9CGw|?NS|67CW zfA1HOJKjv5y`+_`Os$!i`O^7|AN?{vBL#e;IWZWYt#xGbQ$ci!6Q$EsL@yUipQ|C7 z9aEFKq36_(2Q7oF4kuepZO4C5&w(FGRWVpG~aGuI44{2F46?+|& zb`x&1d~ks8DC&xmWG297Iya!9Bf!9!cc7(*;6zbiLj*i=q#HPu#cod|-~qpC>qHrb z{t3!DN5EMOOm`>+eXH^7E(Gwsqk$LcBFl>*VDmxW83;o<)=0odpPTv{Sb)#=i$}&~Io_+ks zMSN`>{eJ`DL|Tq4JM!kJ_ni>XGw==D$3J?GJ(9A>cJT=b>t0wRY6I9r13r zzc2QQ18^lAq_`euKy178&)UCC92VL-QR`V4Hir5);+O3UUot(DN64EyxaY@Gp-D#W^!8}&J4K2?CF;EQTjP(PG(!iEr(L4)~n=p zvU&AfW^`>}IjuBF*wC-t<_$X7SzfoPov#nVd)Aq0&+WEDBQM=jqP>fmZezv>45Xa(PEY)jayFdEL^N z0&p(lj?l`33OW@Ex&U)Kyj-gW?|L6fVYlZCN73i;dgXiHiL`k+t~>bn<;L}2{p$7) z{O7;8{=wJ&N~izoAJWQJ*4X6e=AWbS#Vvm>&ooVErXrQImM;#!n3&>#`IoS z1v4p^N!2bnqlqZ!g2Zx^N?GqNp!MWYaBk{_3Lc@9rk&FwGb=L zRYUrv+Q>vfH^kTcc-3a98EMTJt}HZeUl%_^vAB%wKK{!!`|G6*6;RlHIG0@Tk$pDW zW}>e4OfVphK!A(A8cUCAfOMv+= zJ=LcYsOFt*^(PuYj+DZulw7~(XeZS*!I7SLA#s`_BH_8&zqnUK=?ccoetFpMw?_}FvT1y=pQ~^3}7Lx6Z<vc>8{UK4U_N>3pJ>5nbvVCHV zQdt!Vmuo&4HW=p%vVM<*lFq@&AvyLz6x{IAJv(+t0c&YQyf(pl!%hsQW)(!Ys$^E4 zjQgY(T(g5}Fjz&kS#V9;-uIGZpEv-Ivmdf8h1ScAh!tLsO7bRGFViDNBamb6+h2tO zi$cGAL))R-_JzpW8T*HN%>A@@w?oYXM@~3zXI_e0AaQhjZ(r2U_nY(Y?~@1{?8)JG z_Jo4Izf%CW{ZRbJq`=z+7ak$fEi+)CpF6CXX z!cG(cq5|FZxQ6X<4vvq4@R+MsIS+k3m(I9b#Je{x{VSz%jSetn+|jvF(8<9! ztoDIYY12r!E7D4b#_1~WH9BK8+Lk=-uBq%=UiVZSHS3G0NS@~E(3ygCRz!ET-Ev-z ze5*rfD(0kuYNc!PzPcg-?==x&Yn)Kzeb3IW{w%HRvt=Cv)-m^bE@j4i6m=SSEX${yj;)K)fY>r^|rtHjm;as z^4B(R{Jmf7U--v=Z50*&Y+LgM+B*CAfA^=n6j^sxGn>$579PO-Ty37a>)rav_lVzv>^< z(9gsBSJy=R5%jfs;3~v+9vzZk8&PO>LwprhkUtfs;KpXIqT8pf;VKUOOGBT+@aO+riGP;Dp+-hnl1KD;cm3bGk6*N6PR z^xr3iC0Hr-lhqtJF{Zg2_A?l7aL?^w5*9FNRGb7~8OXj*Nd(&TR2=Badk&ynmAMy6Wu-u2H>LEf82^1zLw|2>q$s0PUM#pS_o>MM zaY{s&!|+F~EIEf^fi^6suG@yKB?;KR8w=H=zlj!DCsjO$?KS-#-sw0M#D5T4v#)KO z|NSTz6?7_?yfWTd-~Rzg4tPP}YPxL{bS&|Zz=LDH*0^_1lGioFgM}X;D!|q(7HWa7 z=|gMndC3)zB5ZB(HI95^UF(3Oti-%|=yqNe5N_({uqeJ(&B`iW2{Wa5kb4bqRm-$l zQ#{=HxMQlK-InidCBZr9y(JW?Exj58?~UZSPv`AHE*JxHtf**-_YLaimHK(BoyXf& z-Z#t!Ru6fPic@Yi!DBzq{Z>aHX>OSxW3|9Zgkh4Zpu08O$ocN}v*dnLExtBYCk7OA z96#-KxE3m$5JbL(?kAr}Z_)zs_DL-fUo$$PMLpX4ra_p^KyU=cMsIWq`P6d3Nu0rD z_Yq3oxN3UnS51Bx;+X|N6hQjgs^0f!)wX}|tN%}3O`MzUV3vVy^4#uu{0=V5%kIe6 zEQ+s5bK~IY*K=)7t#iop7T;CNA4gx#S8dJ#u%73EvD6_KZ<~etTevS?=IS~&&LO$v z&F61T-rV|^R!ZuhUF%->M}KK>;nCM92PJfic4$zX4bkiD;%hlftV$dEz#%`}SV%S* zYq{WEUFZE>-9OdiRd9_(+=3dqqwluby5@Vw>!3FHbW*lifUOy;+I7M0JW-5|bG6Az zjD_Qy@f1M35@RC~UNa#!OC9Gn(p>Mc&7o({{pNFwLfKGPLN7mHj+75FPsX!=+n|7J zj(D3Q`dhYL3B3s}7!5rNv0*U??^*n#xqxug1>Yo5hKHRLQFKJcT@igtqT(^He!KD0 zj*ko2Hs-ncb~{H9TBB;;jpluup9nw>Gu@yIuk{`p@SR^}kAlA>p_}t{RgBGYz%4EO z63M-V0zd5Y^13##BKox^5`LIPh>g@2Zk*)Vv+}%s3RY>z0Y@YpQE@XzcdtaT9az=5sd^VbIvJ8{o-3A;j-0=m`y_UQM^ zItSdqH}A9di$!E(o3gJT?UaWvQV1Nc@Nl;wf*Z&TZl|Ffy0 zY@&EB*97h6fS+E=TVCy_He3pE6m=()456hL%^%yS$Lge6^`-M86Wc$#6 zq%Uh+*YoH)sA!SiW(M%hv-bUxYsQX1Umj;J9@E$BD2;Afl^&z2PAW$XNX{c*Jcat+ zpr)r%_nTq_qT}E@M#=p^->xS*rtQ9Zu+S4F`oaL+@&PsP+nh4N&f!7P4U-s_1FkdC z?0gy6UJEayo?APWl4F?4`RFJAM5&9(IvJ^iz2v*RE5lMIHtvy$G^ z;W}YbRn9B)^Qj7NI@4+@rOS+g<>^clNoO)KQMO58YRP7DMRXS!r2?8`xlN0JI}M$R z#)|EaY_vE=vpA}PZ;aRG0+_%WN4`h$V$oF{^NH7+;j(17 zFWXkoJ+O$lMZnMMa;sQI@U2bSRlqmX(3|Tbu+gpu{#-xzEv-j(N@WZNQ}H;6_L%=> zDdD1WuIm>vSHFQ@Xz7XY4_`OP8!sU6w}EdMyP;R)oL6+6>wsTX`Z`JUo58m-J{f!; zN=ZTRzt*`&4-Wd~;3k);I!C z@CbSOx2aM?ck{qrlDgnv-0msd*h_Wvn}|U-0*2VMXt!5=GT=>xZqDsP%lXz)WRw_q zGx*L~qT&_}H-ro9Rlv9Q(0w&zOBTgWN-xjSYJl7Uwu0)a{KH?XMcww6|jx2!`1`e^1wsC`$L@-BANNQ zwx<+y%Li8#K?dRah25uAsr|E6IT^D3NPi?O#&+9gv?TZA_L9&yQ_vys@woY4X)3!U z^}lz+8$O831AW~jpNWei5xDl%8`&QwFwFKL`t6|md5EZlAG}k~(WiN!x$-%t9cAiK zUa(i?<$2+hMg9D>s#~fd&xge~f*=Q;*Z7^`Va&6n+%fF5$hQixas5dh6gIac_Z#9M zn+n2N4PC)Fa+`p`KiI4Xn++Y5@G9xv;focL!fjylS!F8Juk%6aH_*=yGuB-98yl*6 z&dTOtV8trGC$0a@Gu$H$mX8EX$8i|ud1m8UG1ZjMd1-lSo;PkwI1O@teXD;;rBqo@ z@23~(=Mw?#saL)imSe{=_#R2;yO4jK7M@fAJyVQq8|L;XxjA17+`HOu0jO&~QA@YU zfb1p746rj568EsyqEbp;x8ygjshaPaO$;OvV_Qq}@r`SFeC1Ej%09bhH143?$H11O zfSod#L<*RBe{@0}4wIK7Gk{$KmgL}=Mb->pYwoxKc6$l1765P8;iXd4ljf*nIoJD& zlLdZPN~d45^UAe2SNy}j3wrtrh=0Z`&)2_n_VG{r6mKMb&Q5KTvMY7L@m!thgH4$IjxKDuepXD7!$qWuk}l_{T?T-&X58)PpShWW@G!f(A8!3h+0fd}zlp%wkmlS+ocq44di<$#|fwUx9<7c8a zxZke^fH>;@LMZ6pd{O+>SI-l@x>DX7PZ%5~0o{0AD*|l5-vHFe1Mg^1>KSsto8^Z} zJ-=asY$O2vY5P4tkp&B`?Go!W?V@3~rk~q7FaYcp)wRKIBMtIV9juG>zhnCM5!V1u z$~n)R7Q3gP3YzFp>U{6r%^Wn0QE#T0+qMZ$hkdsxd9?dJpHlHv68ialU3%{KFv}|p zH6Cb9B$$~j^qs6d_B8;V0!Xx_siS)YoXB&&Icb^nyoo$Y?!fy!iGsg_9PpAD-;RRY z{<5CS2deaQ`J=^%IQf3kXQEh43m97Gw3KG6a8=-fK!d z$G3b>FODz$LhbK|BEW{)-W_h;3J2pqk@H zj-}^;-y|1^V0)@R)~8g}^oD&*Z~0bUZEdTnBq-^y2<}n$d%i^Yz!WN3d`*EjYCN)C zDE;tIzOWp9A z4n!Na6u`~-R_9dIMhAk!H*CP;6PGU~N{x(0v@rYawZ(MRD0B?IZ5Dh~bl1?w>E~fE zmqqy-VmpFv$I$(v{L0S7r1WPcS!>tGcdVJp{**_!>%X%p(e_MyEqnRxk zNM0M3ojgia)O^|v0KJ=>npn=CD}gtwEn9%O4t82j2N9iiz56w-{mq}Li4DydV4Z#Y z&M(r+KD)+IXN@4w6a{m>_B@k;Y(%J&0bvER9UWq0-nec1tEiMa#hlkcQMVzwRgTP$ z!*_L_0zoxZqdEilcn_q}bSjesoj_m5`<#XHXfo-*k@wEv;};tr{>oq5Tt&n`Q#L=o z{_`^kvKcj;Gy+c3`a6k7uG7$4&sKY`a(a_S%rPn3o>-mQ^SZ0L9>#hit(ws-r6{{L zF>B&%;d&F*E#YxuQpT$kDtpM}v!`=c=AgV+CZlZ~rNu<`Jh`q4+Q*s}mc|{Xp7R8I zzeL5k1lhRcg1e1MKDhY?OpxaBKUX^{;C-&!=f!78Z6D6_#Or9d_$v}*7@TKkpks-$ zWR;!DHhd=5%uxZ`HqJiX5`St-wRX0`K8Ufgo)5%wk0pH&Kpd{!S~CFvfQ<Akf5Q&4=vKY+&B%F@5_L7Q9Zv; zB{DAiGzzZY!~6C3F=FXb{i=p;c{uC{?#{^-(6ygqMvZXudYfhrQ-GfAhXgqf1sk4m#Sq;#y%ZWe54UphMxNgZ&l5B@;u z=h%OEw;aD8-UP~!-MJHL^@SX8&*9Knt=r)`91YiXrk{t~(rN{4yEw;zZ?N6m&7Svd zx!-sg;K6|B#8aKEyQ$~L0|h!0YuA%g&)bI5V;&7RARcRfH|rf0yKs>GG8IsMX~{{O z=y&Hra@sjRVc%$pvF4vQN14lx;l%=MJEh9lQFuTz-3jN|mIr!O>$@2Y7=)iF+gy#y zP&6~Qo2@$F0M;8DH6_bv=A@t-r8@xBK|wd#ImR}dZ8mjt401lvd~W4H#Ee;H(QjS{ zy-XwC745vS2}+Ul3xM>9TEAS&J`KwaH(@rR&}BvLiD%}g8V&DREpLrtTP}A`*ZF$A zRLZkB-CWjtp%yp=m2_{9$#icsjhIZ~v?+zq)O3A+=qofta!S1QuS(!pJ@ILBVK$;d zYqaP$M{cmbmKPL#troa2)6?1EAN~_7>iK8gG;f+k)08S61=K{4tz)ZX-=|8XjY_F8 zi!e(BJbA?1Xy;a{tiw_3j`y{5SU&^o9V*fAazRr}C#AHLmOUfCX43QUd(!_vZ#T;P znnu?{#J)2)XFtFH+oy98XZSgp&L`DJBla8JJUZkN*lsf`( z8`Gldxfyc6!8EffD}DXw$kM~8fa8S-cBpdV!mR6hOf&w=daCH^ps0H;ITe;2S78}c zxLXy|o4$j2iH38oTxOq#b#Tr~njO}Y`9bUxb+k%MDkaGp|7lZ!xgl-S-68e6B0z_K zwoO5|2L?nAe-F{{qs;r*pR*v#o6_}2gEbIhdmYaE%I>-GIRU<{;c^4UU&1fdsJIHE zm*bj9I0V^p6I?^&-Wcb+)M&VEb48$M;wQtAHZeBXM>lA}Oq2~lFH=H?Z;s$tW!QeK z5peBi6m+Ab$DHun?e&MH6d6asJ;fCde3>8;z?~&BuBFHfryT0}80*}v@eAjDBSPNn zd*o%9OIb3vA=QD)rXNSbNo$5L!&d=q^W8=Fwn1{k;k*QDv$CcOW^6(2679B=Xys`J z=x?bJ{=NvYy%PYg6A=oaIbw7xOtt zC@4VUw-(@B6w(C-4Hn~ARQ!5wKQ3~_V<~B=dZt}wpGL?z zQtpula_0*a!EOZ8-SAl$ZINtJD3x$Xx7=5JpAtn0Ifo9|!;?MI&jH38B+*s%^Ms|T z2hCC`U1qu9W~zFAer2V4{#my~siJLXIAx*4n2n^i4RgTUsgG@gaHf`b3UK#mxwauf z?SXK+h)2!qh__4x2!NLxN=}_GQS>C@YX-=}2@u6MRdq9qh{xYxa}A@W_b>jB|9|SN zRMWqgZ9cmEGqdsa>kPtOv#jSd^Hl9i0l3?~ zewZwmp}XY^j3iQS$4eWzPk>1HdiXs;3uY8pa~4g{8VJA(03U=X=FRL?Vm9nPPG$RaGdbnlYJz(?vTgOVSincxta6R5@2Cp;kpgr!3$mCR zddm-n`-mtwg;Hd^ctxHEP8tEvFNKbNr3rsqZSYP5zAwFyT<~ie>E^)9HLA*y9V#Wg z^Q>qZ0dRxi^r3ZnN));00NoY|XTf6y;m~Q~lEAy#QI`h1+v04XqmL<9noz(B!kA4} z4REfmM7qxZ=y!6jtn=!F$YVcrOd>T(?n@jJYLN`#aFkt6$k|eLa%*(coiP7r^><$$4jsbEjanYO`^d_S`d4yPNfKve9JbSxY1Ml;Va_>gL@;1u{4+^2M z(V!y{@Nlv}gj;rkh8!23ou)2O&dwkhP38SO35%gqeH_f?3^ zdFy?d`L_}+yl)}^x~KF!#?q7IpCUSfvd7W!p8SrgTB_BGS~nGN9`p5xDq6Ya6G{hl zK3dLI1o64s%IhX`^vY*CBN@d;a4q11A$b%%iT7VW(B)0YBj1Kt+lHj24Z!S&VgzRPpE=DBp4xK}jI&(wh1dfz5bt05AHKHz{r~yD$>qydK>T~s5CuOw{K7935ZyFR zbwYC%zMJ-JF96wmhg^g;gC58%(Aa$vxGR&gJ~0|5WCK^-n`|baM>R_el{`uv~&gLeP?)4HO}Gqi80AYf;2V`kE>j8Q9ZZux*DqEobYqwNI$j^Ddgzsa%=aLyET(+vtyaA0pMMfQqHO>p?3FZHwI z=T;N`1{h}*^cUpi$P|A|pF;uL48%LK4Q-@rH|7k?uRqJ||3Wv3quh-j?K$Bjey;o3 zP4El;x2vJ=if`^w@PqIH?1pvq^${62CM>j}Odkr2Sy<3>uB4`9LqGR@{chs5uQ}lO z=dNNEGVLl^uPQr{M8+QtGv|Kabx<8%!%~tA+xM|-`VSc!x9I2haw~P11e7Z^-1gwF z#eh5j>|F4n(axjdxoK+`&`wTWx0>K~{`V>R4SOd!;I>{q2>YIt&!woNTfTUk=AT0U zA(ivgD`j(-7Tbqq^}a5dc3~h~FT&d{P9Tdt3gCO6ywDzg7>IuF93`fqyB#IY|F&O_ z<#I6AeiZJxodkYc+7BKl2jOl9i{fjTWqa8CT^|PZbI<>7?77ltoO(_oGy&_PbM7hs!)AEJP6{UKZQ+yCAMw#%Yx5pIiu z1khaa{PcQCF}HRX{_%4rrb5~&Ore*JBiqqg)a9%WdV7CF#b*T7b6Qc)SH@-_mVqnQ zlSZf`Kqd#r24*|+2#yQAoI>6=cWq8yzz;Iiwtx9Ie|_`XulvTZVx70x4QrowEB1S2aO)>cS2jgT71Qw_vh{qxk)k}_F7IO~~&bSM#N z%Oyq1_a!bx=5%xI?~~ce>JrTq+0Wx&zvPiy`7um<$4VvRajNQfODQth2XJma0k^Fe zCOQkQ>CU`ff<#P1w|+Wtk9AD+v-sFReGz5dSt(RgN*|E2_67p#;hvlY6?Cft1NNT< zA`k%w2vz7V)+1=+mhmR?*UfMeq$U4p5G?L(&qnChG%YBmy(=5fK4TprC62 z2jCl2^rV$_A{s{o{9?<`NAw$hDk$i#f)0CLlRn)Ph?@}Gqo*Ct1!vH$wZSdQjfnV1 z76rc{{x)kag)|M$0dIVj10v1?Z(CGCukuU@tXY8r(1E&ryTzETkaw2tJw4YQd%h=C zLYF8w=Y%VU+250M#mKh@ymjSXyu^?=!foqSM0{9Eld(#A(g=8PaVz0%K1aZI@trU( zukyw94CSrLzXA#^Ph608wu5+o&>XXSXt%vfOY}}ne1sAe&tx^<%6e}7k>V`MFi~BC zO#W=u42$g_Y9qD{VB0GmAI|sS>&?v17Zi}g0xiR|*mx#sPuurpVFGLb;5+ys=nrLs zk_Nlw8jq@N0PN=V7$6-#ro=hm47e3_1B6d`a7nbgO9EUTrz#bkX)evoo0UK?K?tLv zdmY2Z=|UZFJWtwUR9+hq(eFdqxAvCrN~hg^Ie>55-#j=0zGGirSMjyuH&O?jBjQ@$ z+vw#!OT1Ihl%7DK;aH>Jm}ym-Q=~~E51f}x-;L(`b(TAxw{)rso&ezt!1b7z18$1w zgSd}cGtH_pY7@;~icH%F4T!d~W9$Bp%x*hXeI1XQW_Ei-PEiBRY|`9se_Up!V(zz> zKItdT1uJ=JyzY*H9Ld0Z90X;oJ#KN{T=@Lr{+{I0^&-7*Qh;~O<`c)MibSirxls+d zmUlPg15ShJ4)>>$*Nw|-yXON=%Q>Cp(sKSlJ1>Q5ciC{aR z?u062^CkCJ-KVX_bJl$p&ynlv%oopRwSH~AvGMC4`QrG^=YNLgz00(+?-@&Lqpxk< z{Of;-@RyFYyzMc+)}8aj=o%HOx;)FX>UGF>L?YMOg*UzKw}SFW$(87N7ND(>bQj^& zb{uO0aCSc;3M$)~6rfKu+G7*VTK^knHNVG|IBB_$vF^8Ec$E$o`k@bm+AtmiShM(= z?icYks?*BW=ZqW1<08yzpxb-`|18(_S|e>+mvUsVQ4nLJc#kk;;vxF&^}z`mH1Z>6 zF}4PDBmY|>-3r9*cmyEeL!DA3#0Eo*19{Y-aeM!*Qk90E4~;Ko;2gdk3$pEKuw@%c zf7wAeSH8K>1Zx_<5KAt5_BvH!Y=Xj@zFLk9(Qib2?DGi--zco;V=r@-oLm&y7 zM$gN=^XGL<&W8xN=x<~P-IA|K90`Y69ylW4y#BN>LXCN9k#KyUcS+Ji+jMi=h7vl! z_!vRAM-l-?8Y;>Vb0s7V)G=;ofWyO$?7C9s|A^L9t}sdSKL-r=6@>3M|Lk!+aO;ws zmR?y9oL<~j-oyRSj+}2RLv~N^NpMy`;#45AHKg(uLbp;EJl5~d|Pf8r5vSS>l9Lmqf)$<)i7MiE{!aBZJ!q&3Ky3oth@ov8rvpCVpf<^6T3Uvc~18{SGj0vylEMlw$ z4&xf&!N;lu*hnMRuLW=$1Kq)Q5MRS@$pqH66pR}k=~y4kCtAYdB;kRW~3HT=6#y_lN3RBS(DL>Ys zQR{9wKP=>QaXnCdK-gH#gIkbnH9C4fO1Sn5$S$n8T&U=~ArR0r*{;r)1+YGWvqTdpp5%51t zPMa*?ThAkaeEjN1|17O+WoA{{HE9H#L9=~#TE8g;%hay59cqY+D0=wr1^Rj?)D|!K z;@NY&J=a`wyUTqoj_Msfj&z^V-<{STBk^)T^*%arXUKb}c5Zmb*ZUWL>%ZH)@pu06 z+Ti)$rImfpSe~taY5e;37x}r$kKwgKMQ4CL4VoHeHX%x3B3UP2V~)2?(2B5HP)HAx zu}D)&n$pCFOjDKaB&Sh|d`yp0N_q^o1AIq8HZw%Lk&5N1TGeTEyI00v-CXDgur1)5 zoSDY@Ea99yrkg(;IqIX*R6uoRKu#k8>P|z~+-~+82B{v)&D2SOkCHU{Ext;?4e?k&CBH%G6oNQeiS^fNOS;q?z@B5^Y@1cNg zj)1EG+dV&1ZUspL_zpv6*0<*0bk+AtQj6O2zjMHeXi6r-ZGS?C@-@J&)YRV}dj~n- zMg3eT2I^P%vhEv8ltrq7g7HL4{rw@y$?PwK?P0t?J=GGU;8t{A+G~J(xSzE^J-Hy8 zeaYJ({1=+z?oj3*g_Zzk+qm6w(y)C;?@Q_DkGWm)y*2pV{0MCYGijPjqOXH^VFlct zd-6mm=y*6FUxk&>uggQ{na=EefZXpOyoSZB^~abgP0=FZ9UC-W(1JM)ol+I`)=5hN zo3ZS(~i{o zK5La5+bH$F@qwjKr6)?1$ugxReAH-Nd*&)21l7#{Ef!V4(ZlQQ5Qk5ZKkP}dIrpMwU@EAMYkudy5I3srGPls1D{6l?o_{2Kr$a$c-PX0E*p5fYRopE)9cvzrAqLbaIhNMKe#%aT1PIA% za)0U|o*n+!SMqf5MOxX)%%TFhEG?HhnB{!S0rTl#V|x0*mHGJE<@x#LE0Z_B|MT+t z!Ozc*zVE~N`L!$a^A9egpQ@9WYqUk%oHD+Mu7x_Ts_b*4u6N3A_jKkGZSO4Hdl7y! z>U<5#Q%N%aQd^$))GS68{=-#a!v+WmR*zxk}}ut`l5 z#%u$@O0&arxEGz`_{?YV&M;AnD0k+lcdGkp4tVOe975G2nf2-)4#qgnWuJ)f=|oei zuq^ez?G$MNh{KB7xek3{-0jEOX39SEdGgS{ZrjakXI!eI#Lo`bb|v)nyr`hQE+CvS zd&v1-uygTIOt;3|lcc_!G5*d~m@Tpbz0awphL=bNQ_wjWu1?ohSU)MNbS=%W-wd`vL4Q@hMI8T1#n^Ha9D*7;fVc^;!Qg*B4iC7i z8uj)#l!9>NeX|G~Nl?im-zYJI0;E%qL znGK9}etliv$IwLClF-j}-H`HIt$=9VjPScyP81{D{31i-u{+Z;P>o{BNe7JYN1qK4{u@b=^xH;KyzhbT!WZ z*8CJ0Xy*XeTvFkgOz0sBj$Cl3o|6FW4@e$pFPinWD~Z82^1!YBw^{d6hwFdagQ|0> z^8vy)VxpNu_~ zc;y`5owItdfys8N%6afUokbp;Q&sz$0e8I40E1%3#n-rO$f*4u6kKD_T`vM`)<$}a ziLW`WjRcSjjV+0wi?*Ai(9`d1bR44aj776eY%SgoN4X~@SA05=T<%G)lqj2O9|pg6 zz6u=c8AA92yO`9Puay*KALY zZ+ve2@tt2>l^t7IwC&G-_0N~Q>&DL-e{gwr_Q8kK@#d8@+qjf-cO%bxm*=zoWy+n6 zW>RPHPkfOyYo0LkvrcFHGB@jMYoix=?fg}D{pClUwbA+7*0(;YDBwa*Pj#eS9S@lNY!DkF)WmKR_${ z)Z5zT)BpFzwSVxph7}(Ib_;6@gk81#}z3vE2`o_o9y8EK!j~Yl3G5*Z9wZ1qJ<6!5l>uzKZ zOdvY$m0+6nd?r55U~}%Zz&lNFV{kfWp9c%?U?P1t8o4 z;XBRtn?K$0m@bTmC4iv3C8RH3! z_U$)qdsx*JSjHxe?d@x<5Igs!a#KvFJ*2l>PdhzQd~}Zr_58M$DuZzpe3*hVIxWOI zi3Hc7-Z%P{QH#iNap)iE=kXjRmM-ye#fjyxT;as`(Gq>aR&(#$f0$)hbIBiss6}Is z#|A!v&>sw#r*^01U_7)j2{ZMl!@MYbjya2>uOg+an?u30Nkg(rjjD5TP zW+V94TyW0;S36+PokanCm;dMT2D`268wiilXU5=AZERM4laf%+n}0rjR^PuxxUV$t z^YBpWfFn<)oda%Q+rW1__ggqY^*vl{5cm=PZf{E2G5)-Eu?x-hzdKR~T)%T%&SOAc z3mjHa&<6&{MI0sRI?QITJ#V{N_SUt&DoMWhdbo?Rg6m!Y_eo2ZjAPC>+Jf5ZBmz)9 z2WIzsI^!QHbNybS+w~?bK&?)UU3(hD+or0R?j^LewR_pHDaA2)jR@l-L3_B zw3atf74Z_y0+RC~B+}&BYMqI9m^7$G$AV2+R@8{;@i+`L}wz6Qo?ce!N z=98Td^K@`yKJQ)mrvljj46L(u{!#8sUUk-AeY4wt`B88C*+TP+KVN}u z?cWJ5kk$zA*tz(aFmAT`#&Z<_UUJtB?9W8VZS?%desX$p^QW8PdxKW?>9sWb_Vy3_ zr~ev1LvsVZy8sz80Xh6E?ar%e6+$c5?+tGhK#uka*eQ^wy2AF$#%w$pkc9lmSl+SZmUk1Lt zk6&;RgnPcX9@7tb;8q8mbHPWl9sxH;x;6jX^1yAsGx*SMKDqisS;c9s6su_AWX}cX z>jwpNJ118mQvlA^tb=}zl4Nk^z)-w)q7RP7i30#XQD1ULBjEtu76nHRIIjoBBr_>P zMIFAj`kRQ1qZ}E4ID>GcM=JT|W6FlVc{xW(-RH9Js-F8WMxkI(L_ZYZ4O;r7`Cfnc zR5X>0B?|Cu`QVlV&dUaX&y`)rdEmRkTs@#Awp+y5EEn7?mLoQZfFRzZvnIgwD91|2 zf;;w__5Gv_T=94AGB70-5-=?1H#~EAHy4`vTk^m`MR)K$6e_x7t7X-y znx^~rTi{&UL*=j}Uqu;a5>bhEql*f(Mf6l%EGxJtN=9AJWF^Y7i+Lx#=)1OeatGfj z0lv&y&#Rdn2<;q{TjR7b!axF%2Te6~00WyaBeWx__Y*Szx6!QE{qf&31M9#HcMA{kAd**Pj+q z2+IRU^xH((7C?A-05RxRp$Z4!_5=&YAlm@AJ_y+igkO|nL0gBiB~;HhrO*unaVzZ| z0kzeHWGvo_fZO1UeDKb3;(TsaOy5$Vcp?D&MBfhTfTxoJym&C#%r3y@zBf-hM5 zdG#3kycR^(3`|eRm0US0J}IA7VgIE9%tHj-?`IM}ofM+rMQqLc8hu=?0>=TcJJ?pB zUD3>WU!jqu0Oon$njSaP79HtbxxkHZNB(s zf9rR?(E#$1M7&LHoh>f{@DKqvVYWq4IqRAW$afX@&?jC8zqcw{UJ21n&#zrRfA-^l zrU61LfwoVvbq0sOy!pAm{~yWY+=VS0zhb5UO(WNsM2&gO0;uQutd{m^1mxZ(CUwK( zz9ipP6>W1NxUOl7C;+!>DiDuRaBCyKD+B1|`mnJckM?osEtAulhiuVr9&hX44cY<7 z$4WupHo)Ewk?nDIAkC5UBoS<+rA6_z@u&vxeUjr)RfV-?7=+JBe4JeQEjer({d}Ox z>C#6h2Z9hAELMYoUe5a2oYV9G%Fi|haI&v;D!MvW2K;2JRHh*XMj=XRvq+fY4=aftb z;mzwBYJeLRUE4oKm7oTUBf4#Xn?lsvEP`+3fLo-TBjCG@i+&J<*qUua;N8f_Pltys}xA=TUM6AY=2eq+TV;I>U7-@mt?T|F>@Z=->* z5~1GILk8u+Vp4c`gNr8Z0N^|;)(k`d;SgWLj~4kPs4dv6^6&UbJkQMrgf{@=hCUon ze(dTq8|0ExX{-h~wPyZ2@_j|YdW&|>vwY1%4W-CD%6%zxcvbp!F6ifjhiS;;Vesv< zo;3hR!}gJ{GT1JO;X+?x;WgC%J}K=^MOOq~<)K*wT+I~E0lHB$(qb|k{pQGb0O4UD zTTnj-@E*ts*+gBm)!*N9he5XeZJBQR0*-6PfbgY0wJg}AFye4*uP352)RUZ}iS{uu8_N+l0B-GVu~(g8@1fa(hzaEv6-G9&eW{i5%C|*4dm-s&bI+@DquTM&coj)ojm!4U|)? z6HX2E%F*d$VRA93dh+($5We zKW}{AtIu=IKvy6R`Z<^EMc?a12_5!P=x$6?XfQovzh54ZmHPQERiL{|wK6&@p9jAY z0KAWM)QfYDdb2&!+Tf3Jl>@GySO@^tVBGP_o@iQGJ#gDLL$DD6$ZLCver0b?w}&D| z4IIRgZ;~3}0=C7hMAT z=*ytryR~k4__hj*UTm;(;;+TRz1e$KWd!W`S}i|t^1?>J=%vxj|EAZxXQ^^tc=r&sF}9@nXyrb|D+u=xsO13QXOoTsarGxce=jo@70@S3N{?yZ4KhC~ zRr|U0m~ATXE_87P>j8)-@1II!+xwO)L9U+S>Zde}Cipul{?2hi9ea7Z^xusnF0Pz_mPZJ^_R2tdp!Y zAh+)mpR+6Do|GC3;0ypJP}aL)f25&{_^1M3M8mb+qU2e(+a<|zD|#OL88GLlw6f2P ze$IL0eHCeox!|zAzPEAtTo`aiUb=&AlDgj`IoF6x_^ljgIp8%@PxjX!yXY( z$DcJo-0FZw5N>74VuJ&5y%v_D&6YeG9+xF;fVg}tgY6)udt_8d1>#X;*P`Bb{81Cs z*?A+M{hN!D|7}*~fomlE^~Zj_5ZurOp^bgbORyK+gBhe)3Yt zM-Ov-gL}k5M2mPYWt)GOGGzBjnZrQC#w;d{jAMNn;1-KfZq?*guXZ^|=I+D$oirTI z6`Ge4WjH1mFrHeG?jqtQ-yS1WzYk#i-QPhl6Is&JXT@^`+y+Wba4ib5nF9Lesfw@BlBjm8 z?uO@pQ=y@^>wRP3;<6qAklR7)=LK||pc-+iDXv)12z4Q0tXCr|#^|7Rt< zwzBVK0~qga{m$R+ZGZI529!%^s6?!}OGO>8BI6FmYX$fSwhOqXk~iKGZllFo<>Qw> z^2N!UAO63s^1?rT)_fUGwtnzG`4i1VW_AEB_&IyjS^#%q+IbK(XW+f&b-&4hxYrlg z9B`=>o(ly%Fs%T{<(f&C1+-hW53dJ4sX?5JvB6q-;L?;Simy#3H3gib;IK*Q4@Me; z^KofoL;HBHK0&w-Jy{O@jK)5qx-R%+lpM$#{XClWXUwiq?Q^}3Y134o8~e^BM|^ND zzt=O(`DPzML3kUC$IsB*rVah9;9p&BqTYuV_1;1WSOMf&^T5pvU`HytiLu3NRO=Ur zfj7)@!C$|Y;0`OGV~0k+0lERgQIhQ9Wl0xEFOuhi&(*)}Jg-aVItYh_a5w{T?Z>{c z`qULAofehQVJ5)Fk?`GIN5FSe1-fBOJHIU@$v6T|fr=jVqL_xRK|SBDEW79$0J%lN z<^5zWDO~%>QPK^mDUoh%%=t>dn9#PS)k-A@wp>)bqBP`gxoHaM0a6Auqm` zvJz%*rJ(O9Q|U;Se9h*;j2v>5u(0U3f$1$<*9iCm_&zPl=cc&^8*OL=Jq#`!0p}bi z*#HgQfi-53gX%e~UH{wY=f)~$VKrSJ({d1NOAN9C#*?e4n%X(ua}-*$b71D3KR3nYVB-1oI| z$4xBFbI6_QE;d{1)BxLQ=(=PD^vvo5hR2&WlpR||zgPBIvbDjBhuzI5ztOw!+uzit z9F){4fb3Lqz30-;>XLh2xF0L#fILvvOCETpSP)9DgK}->-~NMthUTlh@K2ldwx0gm z>mU4szvXJ^Q+Lj?=Xe*YIFUKY49r{9a*KjbsxHAQSxs1aoD7K+;7KKf^AAWH??z~Y;Os& zA+kMM*C@EEqgxOh;;&3IH^6Q8hA20QZVfA@D-egU+PMnRf}U-_-GMl^&uVbPqHHQ? ziyUzHT^0rB)&RZ{EZI0|ms=?B1pxdgw6hSKit)yr@2VcSf^Qi6nHP%^I%h*(BFWKz ziTF^amyHkm@yjB_hWGhOtNUD1K{k{mW6Z6>%&&`d!a<~o-RXMmH&rn~9l7Q~3-c;O0DUyw(f2O%$WRGS)KqHic8Q{#Zp^ z&^oRMcv9LM_X~UYv(Vb2DbzP*XJHb+w{A-t)e7gmYPYM!QtQ6ES`QpxnRhFVTxxum z==jv5)Y4YOcM1^qa$nEC1TpQV+p>@#Gu z^DB2oFMjmrPyVO>)1M!G{Do$kmgU|iLznWI{!asF3J^S3BqSSKA*18rc)b>&@j33$dTwhb+%&9kO zTGF&;SIwraFQo41b_<}kbS2ww;MjCVy1m+G=}vU~4`QNR^IH!zjg(T(Ovg@Lcktb# zR%)2-Z;kc+0>0afHSVWrWIS}6Hj;vH1KIe`^2tZas*Be+*F(&K84LmiUE5O#9#}uC z{XH=7y-_A55Q|_{^o^vaP@jxSJ@75{tor_ZO?x;N0fMA&7urOktrX zGDQC70zj@#RG=2w>++eI8ae=Xn}(iWWlsTz#t$|CzU_r)5oqX~53WI{=ZAX#in_1q z60R|P$llWqJ)4Vvjh98fS!-!Y2{N`Pve?Bx2kNWuQfL&LQm%#A8bj`PjC>nO_L2V$ zknfE@U1C-(7`Ge*yd#=az$BocV;yzCvG2EJ3-%nt`P0tmlP zRKPb$?)QCz#BJ`fZ45(e8>{EiHw&E3+CkLIDFE&O?bNHr8so-nI8pa{iSV2#9{L_w zqEFaLz3;czXj@cC&y^Co0dfDMR5nx~&PzF%FL6J$=;!emYDK(B`ZVWxfP(Xy2f@+t zuP4u!fIWQBDU|c(i+%^<5&L>P+6{n+mo`5 zXN8qYa1f4V5MDFtIn1Ko+_!mBEfrzAtlKYXvF^9^p+Y;ybCMsb7i8bD=6quxmm510 z;f)mQeXIJpv6k@QRt*nco`wO=%|zKM<#W;;aN@jgK4zn?56)Dov%3B_1yys4f^&rX zT&U**EjJbm60tJ+d8_=`x`OeT-)*1KddFwAp_VRnzsq;j1lZzxH0n9;*Y>{Ve_Nh7 zwLTkDIEOEhA^^93ErB)9`=$btd0(q6S#^%s))glT=DFWpJx35~ivZl#dm1gbb9X~- zcqv(i<2y@oz7t2e(^`j0qM_!H&&cmnbIQ-Y^^-r_fRPmdU)g8c0DRXrp8rPo!Z#jv z`yb20ygVUuiHOI#;7eT@ZCfaLMpYzT>WIr28ETZzXPblbkACvc%x8lSX=R@p<0$y` zCJJ7vNLrM;dDOr}8Voo7S?lr+Rr#n*D*QlO|_B?JZxsx0_P=$2Q1;;K$ z&DgG#*~uvAA+oJwo%QSKImQ#Ep}T6joTIAu9irJbfo{3rMjem+jgF29_aiDmJ=Xhn zQ8qGxwsNjf=wP+Lxt&UF@Cd>e=-nDRA830O0oOLq13wGLQON;^+XebIN5C}_60gI` z=dv)X-lxK>U&lvhnqmRC8Gc z*y4NQNO&km=Bn!Gb4}Jwgzb70{Ra4Ef4Es*ZAgx6`$J}sBFt}z*~ko z;8n>ZT2w+ehydUX(A|!N!yalLIB?0no(|yqhbh+qaoyOXA|#FVb{_bnFJ#6?u7plP zM+Y{#t0l->fQ^bex_pi;z#Ble+mNxA=Yo?lnrn=h!xUGdQukXxww*GQsI0eBnX{hP zqUvw2#PvzqCl0`2%K&!#OPL5;>F1v=y-m7at^Mb2Z4dR>;o_0?-=OikLx2&N7E|vps>Wbag@hF4fwa1BI93m_Y|Ox4`P*NTow{dq?9 zbKZ`n$K<3u*v0*J43`R_q`*0=>ly&JQ_qP@huL7=x9cjn?(1M371H@yLG|1kr>Jqx zG&&M7wJ?is_hstmkxt&zoN!Reji#3(U42pm_E3#fC^SO1e=7L8Bbgvn{3~-au)fdX2WmiT=A3F#7HP6NQe6Vr;><|3Re0+JO zkp3yLv^M(M*3G~E7kOOkw!xhPV`3_LSJlZ4oV!{&mAvdWI3^Zn6MxS7BKkd<%D7*E zzWP!@9o_CD=6qY3vMLX}x@TEisPo;E{a}nS&emD{$w57Zu2b@9;@O)ms&vR8v_xEi~Kg<2b`GPi1EKvp# zTSUJ%Hc6M+712+^=V&F#D3l?Kx!_S59chLfTroBD26%4)bng`KZN6Tt32xx~4b{2a zm%`tY{jDZwbh*J3FG3kzTfIe#rO2Yi?J5tPXhG;WxZNBLNB;MdP_c+@m%gJCdfTe} zZ&=WaI$L&}2|u?4pkd1d*??UZYJUe2HY-2IHl%8u1=kv6c0U9}@3lZ(*o=YH-*qW6 zD`}R(sl?^awbD6JTLsO`brjqq;ILTtJJ{Q5e;X~l^Ig6_5rlIDT*3EoIBrM(VGyo4-;tW` zB5Wjmwk-rsBmkTw((U4FN=d(VB9jitQR4eNm8drc6I-$wDnFBldj-J5jIrf;j{*>9 z5FQ4&!FiqUE%m-hspZLMs5u(FuH&x)Z|hst{#L+_b49guuJ3Kp z3c!h+PHJVwobos61aTX&sh-Eg+hWu@DOmP?p)U6#Fb?&-?f&BZT8_7_cc+W$=0+=Y z_473qU2B$U7QdIW&!gX^JXsU{{*$Zd_sUkbXciIgU;giYwbMI2C#fzhAeo;S^O7gd z(d&*Vqc4wum$5iT&Fhln76s1+?oXfmk)K_G@K2BRcmB~|>|cKLo4T1>5$jxurb!P4 zGF|PXfO*==3nvPKX?hL^^}5r6e^&vG=8psLW1QoXWIQHi9>b7QWs&hH&=&7YBHo$D zx(bA&wI?7PO9tP40o{JAeb2RBMA*v2LO(>s?V7O^8HKxv_r%AptI%50HX12V*ZQTL z^Bn4W`&mL7UHg2#t^SVWgC{?Sshv9@hqa>M@Uu2fW!=h;VdbQCz0Gi4D@7KK0krym zIjqP0aMV&~F*dwcOKrTU6!cJv?4n%@5%8CCKGgk&J=PlFFJ9CUaQ{3s`aSQ65;~Tq zfX-#eu>F+kdf-$d;4ufBzmKZVg!Nr*Kd3KR1O#^zogU2H|M$Faqo6-35pe8;aNfql zR0Htk!bYf*3*mrQQ<{le$xEHn*s;kC9Y5WlPYOspDqpGwr5h~6%^1{($(7VT|V zj%vW2bze&LaaLDc0^{-zSuS`E>CCxW(tBXZ;6GSmr|NI2u|J4>#0 zN3TISM8JbJ58}rF;g9tGm5##Y#=7zY#tVQOvuXg}0OAkr?`hz>u@5yj1>$QJ_=X)) zr805l+FQPq0N?uHvgMq?*7EQf2O9@QVnZ4A2V$K7fmdV*}tb)-Eld^i!QVqk75%BHeozrqiujwoddkI$M1J{}hb*1$S)z(?9g zC0xXTShqukat_dqj-%jHv`{;z&zZl%S~gn21!lpD(V(8}cj22e?WK9(XZqqkwqd$C z>Q@=~#<`iDsAXZFJB~gXIY4?dEUGVz8!x)nhOr_4IjDlO#EgGI)Qrr zk>-J0po+!Uo@Tm!Q)+;--6UtH-c;~?uv>%gcJ4O)fY8HNUT)lzn3N8q9TX>A?Z} z4BrC26D`MbM6O^?*=gm1oU#CK3fM5$$0stfb#e+iw`-R8`(TMaVT)XR6IhGX1nU!L zD838roG8qXw6=9QOv~vL)`#0tiH1i5$krT){pRPl*Z$Kr`=Nfmw@-_TgS2Ey2ZkRA zW*B4Hu@<$&YJhY7@5e>`+|Rp9F6dy9Z!`S(jS^!~Zx}%Mvu9e)u=%H}4;PrFgQNC0 z1lV3ZU-FsjQ!6TrQAhD*E=4W6nra-2uo?j}vV+ zVEnZCE}gN;W-z5YZCm|s5(+y1RyP!Y1~t#9LSD`8hPvK1c*O|0tDfs1W|VYZ4|Tq) zyyy@GxAwa9n1T1S@L84dTaRl7>Gg3L$6@mbT_s z*wd)^q(rs3U$=IAEUIoL!VIW0utB5Q7y2K3{c9evb`^848ebyg(SeVp%E(*GeqTl^I~7{G zpWE}vljMR^p_n6DJklO~jbGa{WYXNlqaTy2~BrdxSs0gv`YIo$9K<(UeP8hs~ zoD>+qHy$FK_kAq@Z$;h~2)7#Gm-IcoYQO(03c!`tQvqcI;JQRvh>JQ)iGFxk9w`{M zSy()9FEmkb(!3uQWg}5JkM+NeevXHAX9+-Uo3#OtLzy$3zP(Qb<~8VRwg(*_l%&L% z^ugd&BHxJzFv+_j&-KPKDd@H~fbcY`?`6`wBNJY;@?-6LtnN!A-VkWRe=^Xk%DH~N z?RV;HTJsyxZ+_2{%xw&+)!A?XwjO!Al_4`#*lrMFo9eYU$Y|yYb}7~fFEsKZ&5v(Fa;HJ9zQZBiGBEd&ks7EwMIpPD?*OIVr_`o?|1^(SPSBe|A2(a)(y-UR$Sk z{I@p0fB)ZRAxu1QQHf%$1+;Bl{>?u58vQ7Mkw{CIHu92Ui{RYAeQ9^$buTSgl_aA&7d+Mg=k{K9rdd@#ob_AE{q+|>xGcTCcM~liMI_#Oe{7Zu zZjteklxXYgugQehVCR%QSP;e5tTBf?aigh=5_;lXaQ2B*u+~Is+jYSQRR8U&d!<4{ z-wdA%qTr=+jV$5nArHJ&kIeJG?Yu}~+`Kqv$MRyl)+JfIS|SL1@jKif%)q$$y-Yzr zTs)8Gm^T5e*)uIkMpV@S2M|Xj9A^37EW!pswm?HaK!;{!deF)NZ~Xo7zZrXM<1=dQFwab((tpOg4h1W^sRPd7+vwVNYvq}T%g%3N2pf9-J9e#9<#@A&ACs3L z(+IeM?`RhJ{;+v8*vuRr5>G?^H&bLZe+7L$I1Hb+B5woVTz-r)18)Z3E$TVIHv`}R zzO4qMf$z>MY45yFqE@M=Fz}6sYT6O;HO})^@C`L|Jb*dU9g>4URkE4V#mIQQ4ZsZ% zwk=&hTlRO~C=u_ojY6$T8wI!xT2GI28^s1;p>@G+=6G~om|!fF79!hR!xKPtl&Xh+ z1nU6bJ6ikOYKZgQv}x#;_l;=xSR&xW2$ia83 z8rkUh)>l^Gdu1#8C%5_N%8!i>zx=01FTZ$)-F=UO$LFlm)6K)E$6*KGMnUi70@793 z%}SMNuKDKo|LT9x>AiSJD|@ePKH2`M*_q~zO=l3ktUDO(9OK8-zBl@eXR%GK0p1Pi zMbu3SzU%Xd)#JO2H8Q3dYn@L)l6J-0y)xEG)LX{GScWs68^=NMoJ)uG!fs8)VzD(H z3}x&U%@!9~!#nD$_}UWiZM1a(=c(3nF+XBGG?|vnC^^dx*9Gv7;Cm3jw>FdrH++{6 zSdc3T=ss8UG&n215iFKzwGC5Eul%e{Ee{?_#75w4mNgoVV2itZffk821K&pg;umE7 zM)O3tsNfs_9AD_jH|bR!3{pJ40KQ?-twrP;!243G-?i2TgYO1-cdm&NI_#qxHTahM z69W^~$^)AkIsiGG_yg;FP$=qb8f;_mt^R)n#@}K9-Z2OKp<)g$OGe3o$sS2?@W}e^ zb0dT9YkCcfh_l@l@Xbo+%_gGX$N|R^+YhwggS#DP7rPi+U4FZO?}FJv`DikXr=`68 zmn}GPG2n^@ky@)$lm%OseldmFfc)=*RsD(BI|JbLY{cSo4IPhg^N|(L+7PqT$h;f*#tr z5V)-F@~oMD7`r4t;@y%5&Oh{oQ5ioAY!GfnO+-n@90nq|xppQNVPNeXIjOvphTQ zlzectw3WOBhB<(Ez)S7#FeoS$y)7U@HlwSQbP*mAQ2p9|8&-x)1=pC4J}85iQ_lxs zjMNoGx=sC@w8nRDJr~Nj*7t;{T0ca-QSWUkl$vwvsV(cSW zozsa9&cTTg0G(Z!W?E6wQ@f+ID@DAg-c6TeAZFEaxdCrCiXUv&O;v>4Bihpx)44_Q zyeq2bYtf6+{1eLO&d_2~5BE3o(Bhh)8XeAQ^>5j@x0bN1&dH~|^ zCDsGD_0%^ttLidnRc@(*2o&msbN;vV8EnY$Q71>*vy0enY?SM;Z6@)#PF0sD2VEZh z2TO~7d)1n@65ElKB6C6B=Cz#~pq|C2JZ`>QM|$k*#=o4u$;`5Rt=D8j39`$%pl~(* zw60{S3*OiZFgl-0An2+Fp0K2PX;%ko-bD=adBHwo($U`5s!0*N2RiTTQpDHlgJ&BOEaA1~jY|3jIo6{4Ao@MOBy}1s`i)39zXLo#cXX0d5jdW&{-C8YLu#}nnA92UawE^%>xE(fAFKF_u1~^y?k4qo%>n2o7eBZA?c4XN zr*w4gn8Iv6g@}3f^NC`*^y}*H5aKr6Zq81KR?ouV%}!1bSF=8`<|}G{a~}usS@hEU z-6g6~dbv*Nk*uZ-n<<~q*Q~ZWjm~al?+lvLFTQ%s}~O7MJQ&{7U#@ETWrA z)ElC?o)3=mYc(6NAc4PA1Gv$)qkiE0xK>Dq@3?&=DUAL;1G`c;8IWJn=r{7dd3mY! z5pXU(hpM1kJ~)JX;om;Lns}WxiVb*QBM)35l@s>tx`1#4;sEgg-3WfM2%A#Q@w(Z~ zwb;Swzi9~#okVK@LToYm4RJPBJ#YRF8}_%*;N4k+DeyA9QAD6M3a(2NV?&3R z-|R@l`+@9tLADm|k;+iEo(uh4m-ij)Du!c~GzG^g$$kLup@MI9pR1^Nu}C{FZB~-H zY#VMgc68mBD2lJutm*f|-XQ=_PD3{^E+3kGUfCnuMaiyE3!J7@;RKbA4PYHPfN+@DX;L+H zR>viYigYzh(xu=)@HtaaI){0vJ9&NZ`Ak6hSo+ORudjsHR<^Q#Muuqk`1R-imGf`^ z#2+o9=TJ&-qC{yPoaK28j3V0FOtKLgx`%wr`KfbbD?Z_ac-{G_vbGOgr@ zt50=W{92BDLjk?~LvYH3WQEi0zfs1ZQj3FTRqfx7ka3FItKWzAl!ocl4a39=Jxo!4hTD?GJPtIp8o; zLx%x)&lQAs8sEd!&<}`9k?j)W?$XvoybXlg4ghhKBI~RFKjw)U=`-#N_-5>2BF>?f zv8$tN6r4+tY3}z!lI5PB3qbsbcT|9_iFgBuAMUrldtMK`h_504`$6=>hO)S)jAN#t z-%kafWi3xO)K@sPKxT@m$OSl;z9qUX_hCUSA(z*U{AixQ1EW7zD>4vZ1|5>E(mgah4|qIu}ZlaScu#3@A{%`U4r@xTZH* zoo@xVl)PdXl+G=C(ykOOMv!`BwDoeH>OJWoJ{@-|rvQ#ZoY+q`I}hi;a=|U+t)N>E zt*PQY0r6)l;3lGJo$79v-oFBCStqJ%dsE2)4BIBiCgN+Pv%+QR@41^QN3PpAdQp6h zZB3}H8VNr;{P90JJNfX>(#lr0vVZ0VP`rNqzxw~OKpR^J2wk3W6(IK-;o19D!fQk= zF*X}dWgB>WbnWu#(=Y!UO{W2^?7g$JHu~Du_x<(1K>RlY0G}EAPyUW;-Rz|+MI;Ff64y1gsrd3{leFcD{h{IehR>&MKQL# z9I_cx-V*qaww-zavprX&)@5!{Df>1G*7Rcf> z%^Ongx1Ag_U-%A*EvTYf+iqG=LTBLJ-~vR#IU-I$4L#^ZwYSffTpQpU^mEgMwn%uD z^G$CNWV?&B+$?p!hvYfoqI_=kz;h8|i`QQUhguNI))6Up5jQi#aYRNRuZ6gCS|-lc zwq;oJUE3!Pz?T(4FEbnMz6QRFirw34hSzPdHt22x@%F*P_)0QUgS>|a)k({-0NpC% zU)f&s+D}FKJeozonSP#J5gpNRuJ=b!JzsoN2P7rP4nq4bwUp4qKIDLd5;MQq3_4E) zD9vt2-U{1wp`L?YW8!Nt0B;szyGmReG3I|?(SP1Fp3(Hxym^3hxb}AizG0Whqu*`8 zGzQ;0g??_v3g=q?5p*SGCvna)_iT9(XQ?zf@($S75HwV z;80Ip?`vM!SO$5fsbD?evw8TOf;>lpuC(x&e09u`y!rJz_vxqXW^PCDTeyr)A-q~>HAYK&J@=*oG+jJ z_W${pSM>9ht?c*C0K$70zVV;+FaM9?31$^5GVl$(#96ys8QHcfp@-JaGQci2dHMMt z8om6||ASWcURwXsKl+RP3y*%2s=pi5&4ZG;>4UHk=d=Y#H6orv`_yztw8Yq2>)bRo z0Is>5C*>M`yn*ci+7SsKtI|2?y6hlVK%bBSX<70qc#PI-H0ya> z?z^XeT-LKzLXrI=JrDB4^LXyeI`|U(^*N1LTPCwV(O(8saSj97u{{JD5a?bHbam@X z;cWb`)}XesWYS+K>!6`CFh6ZwXG_)*6~_`(^orS(6!c~Fy=5jNeiw2}aIMUg6h*uC3`!d# zQ+SvUTMu^cxWtCGOj`e2FLXD6Z!8hR9MsW1UH9P=n#-$UU7zDpQf>@k&z zuw8)f-NpOeB>~uaS2L*-jPmTf{bfLwv^91 z$0GEx(R#pRR@K4xrt}}Mer^GzOqU|bX*$zu%ZzT8DP7Hrf+4znuDRe=wd0(qBvfgG zgI(>^7A%D^)oc`^-J>>0R?yzpL3Au)Yo@5GCy};hV8&~+d2gj$ne;I>+obi~28A5a z?-)h5&wkp|Ai_kQ49x{Mn`%>`{AH*5#dA%S3TS-6uF})HoF`u1tAOuB1$+}bPE(~7 zGQjRqRkF-3K6Nf)wtC*uXAL12Jy)GLu5Eez>VNaa75HA+%6@N+De13%QUvpswOs;bJ*m0v?$7ERZal7M|xdp%M8BZM*w`Y>iH;D z_h!GdaclfvSKnkn^`t+$FoU9R!@&eEQI`ExMY=WoeXj3Yl-AYv!b_tfNqsP5CVDBd zlkA_F%lT|eu*J&IA`g70>|z=^2Wc)8@XbEuYpnx*QCOC2uc!jw{7znFT9&W^KNj?J zT=P;#1lX(&_;b}nvI;>a#s& z40QBm;2UP(n?=}2z&Dlv*`5QwpIi|gKpfO`7GvA9_Z80lKwd7y7Fobr^P55UP{i2o zhkIfA`OvnqM6;K{uA!^|w10Oj=T?`frb^%~R?G@V=y4@|`F)|E!`@L2xO~V4uoq`E zEZS{l%H&hDoN?=4N|@o;`)~VD^{<%fht+}&<4eB<_>$mtH{N(-cU!>wZuaX$;RCxC zr+?pRBHdc^8(`e>z8@(NfBeXz-^l%T@pD;eUb_cHcnvRr?t@(|YXG~sWXA2O#_Rfo2l(b$*v(dHj596EfifFP zK`#Y#l07x2!FlUa9%)F_o+#gl)nhj5D7%~Gg9D6jDG)zV;Wb6v5Z2|F9?zx7 zqT-rHyP<@Bto!j|g>ysZZ^X4^v0rEnDX4<~iI=g@FX=nrU{ULSzp3vFJ}rw5BM-cZ zgd+-$dqZ^~yxd`fe=kiIjFr&sJ>3xzHs6PK6@a$fZ+meRe4l)2Wyk|$pgxM_OeP3}MBH|0EYbZdO`zGz%oa26~+0d=yVqQ0_1aVCx%-GVo z#g;CZ@~sf?9oQ#+Cw2a}arX;{Kh9uCGv(N?e2_eB=eJxY)%*Mzs_m#*_aJ}wyIuHv z;&~G-@*1$+S!lO1;A{%Qv7ht5+j$(}8bV1IJ0KBoIIwQJ0Obu3znK>Dz@I%yJ~6j; zU1%~`S}pL8uO*3oAC|+Mdj4EWkYOg!XgT~)dLbbB(v@agYk?#BjR)In1>lH&zd=24 z1>H6&`LyZ1t?!9{iaSazKav?v1Hv)VeWL4l@SZh$SOpzzt$c6or6Jp*f3bG z+idr^To=M?OlN}%IuujKq|`Jy^)!00D$>SL?uoMDlv3WC=sB%~N_f8lw##`u_gni; zbqR;Wh1t-t8-R8M(+L`wwk9K&3#I8jWA2ah@ za=T9WZZyvNe01Y;r{DgGU#69Ac<-78}mF)x7s{U(Ss-(}*EuzpX9t#BW{z;Q-$% z&Xz4m;EcV@Ae`c{3bvVc9zF-pAJLtMb4}h^Ll$dPBFdtbqSbrJ$4g^1kwR`gyd4{O@+&cPsVP=;*Qi zp$W9LDCm+ttC4R7-N^fX0QRqHV4>`oE1zRI6skF(ut&d#<&^j8XSG-sP(EzVHEi|` zX>lrt>Fg4G{oSM;w?TOU+vI}XZ%cK4m-bF6=tZF}d9)kbLNkyLxs)F(AH4oS^gNlC zP!6(E9P}?`;Crac2f2=TTfbp-tJ;=j8i<#@8&+P=+g<{JLZKW`u*Bw8%=o4B90Uo=yw+Hrf>avl^Bj0UxAA@J#`12YR}mOvKi7lLx*a zV$yG^l%n5Q&%Le`^gflDYvgjo)Msv4nmAn|--kyJzIF^?Kw2FTF^i z3+rC1bfUC7HLKY@)mo=r1@n>@9@u=1hmtjlO)8!?otC=X)`u-p09ge$Ygw3(^QW|S z2kT5dRPe3moI1s@2H42&?s`}yl@QCC+;_7$d-2cxNm|*;R`!Woo(*oCe6;tkPtUJh zs#MMyjF}G%pxr68z@dEJF_5nN1$^7ITbN+$q)zYrZ1eiB{ncjUoL2T;+4StnPy0|% zO~y`5>!XZ6Yc{5kg70pNL5{vt89R(-?zDED+$AbNnj_(=ydDGVJf8LBke-hJR{Pse z6->&D<%LpZHomd|nx$`%0PE9n8zqE8$E6(U*!%z;|GBhTUx4?zQ{#x4a_l>V{5DY1 ztBGeg61sofV)Rk)RbZ&>5@~&-@SB2P1O1y=atuo7p2~M7X?&!jZ19`T3}v4takq5) z`DXC@P73(uX%JlpEq!~t+#AGsZ>UZXnhku@k?08FWimpng0AJr*zLS1=k8n#0i9PG zB)TlZ!2sh4Lc+@GbPG!8C_~0V#LPceCG=~efbP|V8ejT4a>4Z&xYN@=WXts@7;E{gb57m)8>TN3M59@RMz2@%(Eb{Q7;h;l4QejZc{~POG$wEkXks3DvG)^2>8Yw+>78lU^xcvv6eTrYItXF zGkj=lYQvH3%35_<>-U3({tnBK5k*dZQL)qCX9dXd!KN^q;b)))f843&Lpf4_cMD+O zP0K0gUr((Q=5j0xvZY!L{ZQNP=0HQ2eRm$pIW6+tO7WJqJMzOa>bcYcCkN!a&47e* zWGGd@KiXYA@IWTbV*WQuk>P=JBcg9rXLRwkXCl64Gj}E`@$qvRlu-W=6m*V&Qz*+o znC(jpzF%FIT8T0D`<3#2xJ(#CFmyW7vG|2TJ?HXcpr4cEe*1IRRM7(!31um^^}HP| zJ+^^d?-22Jno}^2fNu&2k8^7S6A=laZww?nnApV7Aj}@a&dcju2Q;InW4W$<#_J&; zOaXS43$9f3ct27HoXVhU?K(h5Dq3Ibf5%yM3IlXhRCh&IswWeSDmPZ}J#|&|;#;7N z9T>}XlM`0P?@~cBycJOUU4)Iq0dl+?YPWXPp|aPE>Ik=VDob;Q{CZ?5-m=amZdy6t zUi%xR$P|pvHor(KTiMFqi6Jk1^z6%jdU|^GiUa8CKTypLj4Q=_-YL&5p{NJYZDXF+ z7H=9l8y~;uU-<2>(#qZ|%k%Xw%_bMOoC@B~19xDotf~|%TTBCm+yHi0=;bzEfN?d8 zWyeU5X`$$@U$5+AY~GA*xmTjoTn(gGgxq=tthIEf4Y?CaE|-D{>wd4aQ<%7R)3Mwr z=)IO7K>Y$ty#{!sqK{fj95+&bBDU!@FO2FmJ(vrvwUp1Rz`{V9ppx$Oz&B{Y7?1;? zTOdQryGn|9c`sK_vjr6R zFWl76IUl@v{cwX-_M4^E0N-n{j8z{qb3lGKF`!2D`>vh`>-Tw0a=t-D2Y`0*wITjV zUMn2^dC$;%RB|kLKjwJHk1kWehcOtNQ;c*ks~_%X(DdbqE#I|$;sCs!dC08@x0uap zlv-|e9(XxEEv&>#k*l5$Te~2xb~k|Xp`POl`qv%i`n(3Zhx599U;95$Fuo_VOFZL* zK6mu`c0W{??xV9(>rX&;@|+J&`>2)JT)5$YKLt7X8M4D_emGI7h*^e3F$*U0Cf&pY_!G-!?GF!DZEITcVBE zb)PGos~I)R0^nYH3@;ZeA*P>u^qV9Pe6$|U6=tWsCiuEg&bG%{Mb=smg|S{o2V#ku zldGc3NwV)NK)EhI)>DA(pj>O4y0Yt}M8Df+Vl>lm!mc4`65+L}0%Qi*6%eNq#qNqw zTXeb*@sJ$ABCy7_zuieoUP8v+mj$@_erMujM3J7j-hlD5Z~ypLR^n?bTiLrc2H}T4 z@pIGDD;PP{LGS1@Q)%e15(URUAu3MBL{FX*-U)r0SO4m7{`%VB`QM|Jy;nAQ`M>=c zU9F$hFdH8*j#!=Q_I@^JR+Wig7%S_8RmE*OUTS~S4DoYK%Vx54s!0IZRFaN0we>L-{Za?ly&#M_RwZ;;U+*o}03U~Tv$0O%$BB5IXlFq-G{jl{^+HdFpCYWg z6!O4jfxPcz5pdm(7<|3$2LzzapTS1ij(OosLst>D4ZTm(;W<&dIsCRw`%7=DzR$4; z@5Y?)qoabsqpyfI4>r7!^hWrY9sv(_NyXS+1x2>kdOvS2=>rE*@E28;T@OHgUF7sJ=S{w%XkZKB5j;vXsR9DXQRsn->RV;RA<1J9mvZ( z05nt6VM7Joyscn8e82DO5_>H7``+7taq^|r{4Ur~qTEFvEcTDMGUb|O{qF6ZQ_zbL zTk;RCj)YSx$@R<5mu*VKEC(vXTmG0sDmmc8*q-VouN%m2wcEM(QYk&QuatA0aiX0p zKwOPQ*ltVSH-1PEV7v7=vmo28+gW~VkI^Q-J4C;++{LvH$Y;z*R{2K^3i>kz->!mA zp(f#VTS!05-hqCOJa86Yd!{i7jedK1hUbNPZVx6z!4ds_*?{n@f5(d&3BT}KX8hjh z!_aI;XDYXs46bxklrQlhzCeZMWJ^4lkt1aJ-*~WZ>cgC$^|3DaX_Fi8 zLm3Ur{bn013anuuGbMDRY00>im7XpG9MiURKj(n2n>b45LDI%a9uN(TtBR>jV2{V) zz4zrB{0bs#B>VqjQ=#$39rn~t%&+eX?>jM zO=Y&5obFfZd0P~m)cKhP6^;PfoAM%xOUT`^s@J@Ut$-1;>&k1k(uYd4g{|)L) zUee0m8=H+U{1nBKU?tT^7EB4JAc(51Y)VV7#sD5jbo`#Ch4aA-JevS$75Sbfuk7Iy z#CA{^J0}!{*vdU+GT~GmQ=9QJO>ELT%lN5!ESAsR^K&LnFS8P&v0@2WZho!4lpr&0 z7&G$~vicR?pn2fzU#yFt;n+M>ZgDJrt~B(4M8w&@QBcm{oQfU}n1k#`ZK(Jf*3YEf ztI5DlOBu2hKC8{fN83`}o}?*+@aImCldHz3WBJ=}Ya|>>=tuskH~;O_zF{UwYuvmz zXTK95+@j#DLv*oLLa*$V($I0f=;P`-d|zXKUI}%;5&d@7XtSS1)~+YkS7Mf_DWE@< z0N8x3_9Z{Q(cysE69e4`nnJou^3paiUfFJigCD;|2|eb2-!2jHD9#2mEWV?_oI&_r zv-+UJv~v@ccI>T6=wewxxRe~Tdf-^MNci0cH4X#NMjr;$Lup$8*Td3x*g(Bu^Cb5u zxqYYNY0I*RuBB9{=a$kOuTy?r2GAoAf7kX-Dd=WN;CGI^e)-_awtZ;HK5}g@z#UD) z*6asS3xkJ^Ve2mLCaV9^y8iW4pKwq6-PLvcK=-pmzX?+R;TlJJoc;)IKgx8wd1x{4 zZU8qZ=rB-BY9TfO-wejFv0Hwym>Jt81>eoJu)H3wiQ3=MkOPjHxfluO=(py9J1ExZ z_v`STFm{gB0O!6}B#-9J3kB{k6F=zQ==m>_Qh_dVqx5-`=r}w;F{2ry+e|T6#Y>|g z9jQ_#%8r?NBx5}#FaRb|Y%?)zZ^RxC$E==1vx_vG$8>!Y6Xh)EabI%lNu9o1m!H~}}A=g0RK9uXSo;HcC zwZSJEJNebAbuV0PlBYO|U68iQtwa#N`RzO8NB z!hpmJ5%5Suhxi))JAx3~1?i8VPUp1*d{FKdjLTSghwV~Xjbdn^p<|kkHIABP=W+^% zWPW{2OYEASr&)qY%KkMX;f;@N^m8l`0PC0nx~7GCm7*sN@ZJ^ReSqx)3OsbRW}ijB zJvUsH&=K@*E22B_zOw{aHu&QgC=2)|iG1IAIOl*N*7uwCy?tUJewUV6q6c?N=`k3h z-mHYKnCk&06;4wdQUTsWVwH3Q)ds||lw+E|>`<1fq@IR(&N#0{Nw=z3LL)aEm_tz4 z{>CMMTj=Z3UbCp*t-TWf-d44Xw1GP5z9iSnQlj9YMtHb?>>4ha`KV~<;kv_m#zyGp z)q&)ZZ(K^Fzi9h95XY*!Tx;uczcQa~~`9+@j<*n}_Ik)|tMG*XC93x0N2V z*};?zXzMrpvgFyI^cZq&_}TZmJOiKZ$lqw^sLW_u4R9D9wx3t^Lf6?;+>-%sqvF>ih0>OkYF^RO2^d;HI`X1?LPBSPs|Y!jvK<1_ zOQ|vltBu+}Y@?d%Ac)O0N}dlc0xUXt-RF)BuvvU5~frs7RR?bV!-sUBoy$%G0nv(5&>yX+u!TtJQ6^g7*c5oBwpc1OkX zE*WKAoUoZjGh7HqRn<#peIL0@t~ijNWiL%8+cbIgBY&J$wz8GISB6OV*|RVIX^w<< zv^1Hio)=3l&c@O0PRR@Rs5q5c2mt7FIlg!Co8MSb(cdqdo?ZJxRlax8%FGKBty~Yh z84Ct2K~G^>B@0_SIIn2iwjO4KyQZ2xC7m?Z=yopS5ZGT3F|}>eNJ;H6)hD_WYpVDd zJh92?Tv5qn+afDLP9kf$qwCgTNtfE+mix`0?N*6spB%S7 z>mw;e#zU> z+oB_7pqmBR9*Xig0}oX`haQ!r#0uaB5Z?#r*7NP{A-7wAIB*V@4sY%%)KNjU2VbxM zMt2o+892X>jbYg@z+2i3c%zM%Bns%feNR85A%pU)p;kU7U~r?K3sy{y2g`m+rJq>} zLEJjs`CZ#P0pM+E`I>dSvJl&`j(5oa zHt_9QDI>W$&rmQJ*7@Xu=6quo z-)8RFfl#5Du13F0AUz9(FaT|LY7}VujwRde-10Tb0gzLzh|7_U)T-ZFmT=7Ky5FSU zTzTI*Fz4ykAEcG7Y-R7A0fZwGK0Up3nSr-?A`oOt3bZ-j+sc#aY_sM4Cou49mM)O4Lnyz;RY*&Dpus+a@L6T?#lk2*<<#X`E9jw#as zKv{Sd?GuS~7Yex^GATX>N4x{DhKZ87SXPyEN%cye#uYVFy>|E*fK~XybIy$pyo4><`>KSb)zAzx}WychQ zF!fyD8z|`eBvJ4EX60_<_a9>Yf$YDl0mr)!ir5-c&9O3+n&1(1KWKknhUGQX2(?AK zrCrO9W$l;b>EM0T{97A8j#Oq(mxbR2qN9Lv0srl zfH#A0tKs)pY3Mr3wR=m>1MrPs>A`LQRa9ySV#zhYpUA$a&5yrQL5JPYS-5BA-tgR* zD;US~1SJqRQ`n~iwgL2>DZ!8eZvbfp)@7ESyaxD`>wVkjRIZ2eWW8?qEp(Gdzo+5% z2ge0Y6n}17A_m4Fdn%D~FC9av_M@m)KWAKx2t};vS|8vv`FIZms@GbGhOg21)$K2W z`baBV*~;EaV_~*$|Mz7wl z^!LS@KhDKHxgtHeqlK1_$l@&1@9inx{i zPGS6ajTl89TusGO*^GLwfFD3z_n~ANJ{$NWQYN+dZ0D+5GYBf^angeKb7@vJEjdP1 zKsadUFR`w`{QT6ww%n%);~G;DcA_sZ0~nB7)O%ZkF8MfDm2jfJh``N>dwhkR0RQq> znU)v*pXM>}s$7>N;*Edm)q5_>>!qHft$_YYec~5bUK2kV{_%^P3U&0FM#G=UCX29< zM8KJR`czXwH9CF+%O^#EjdQ^dh)a2wIpQ7MKbQEbAz#FXg&{5Fs||#=Q<%fi^uE|9ekbjcWA?!;-{!UNa+~e_ z!$g&eIsSt84M2wjhSUP!(Ux4$K=*^U^~n+)-(P;SvG#WqE`<6y%8)&dpr-lJaR~y; z0U?cob6$9o$TyW7a8^Qp5+cl6ehd!+&|{(io2j3pZ+xg+d0w0zJbW&Ne*A8cBlA+J z+}3tUqTl!j5B0VH+fn?CF39X9j7yMFdCp#FeU`o-Goku`1_j;3*Es(>imz?SLw-vY zI03{h_qzhy6lQiYXoNbK!n{h}#{@|ha=>-}0Kz2(zz0g_S`T?xB(v8n$QE<8NM^0M zPN$Bx>v0h77cgzqG=OneQ>{L$0*HHIyPeaS_7j)(+~pr94ebe*pHGM#ZIq zMz(`EI&QinRW!%X9VVTrlq16gG=O-f9L5_#0~6ivKwHO7W0M&$@993Hw(FIJ!G<+Z z%vngaOgI>?+`({P`?c@?E$iH8JUl8K14p24OhFADW`R5s@wGd5B)!$t z(9gp6;|_!F5(&SvC)<1b2FA;>0#_!59=~e<qFq_)1rco2g64i6~A<2&SDX4N9Q#QWW`F3F?aY};NIlBwyOL$xLKzq96o1AJ$z2fh_% zSWn3x_XbQ2(ksUa%3*pvsUQrT|I71yg0r#=MD-zeLC6x zGOcW7D|_!PPcQy+XW#lm|MKDv{1?G@6lo)iev{V@mmLL|H(;Ep=rlj4mA!MDj<$Z< zH;jT_CXp8fJE_teX~x-@j?|SgXsXOC(+rUVbj;JSVyfF+-RJruRK_!Iis@VUM}^oh z&UOuGleSHgPh3wFd{1rsR62UBOd`k0{Y+Hte5;?U5?gG#kJHZ(0au2cjQj8jihp2& zY*LfFe4f}>fp1be`hXV90|V!a>_2HvWvOgIUZ@|H6@0s5`ew6jfe;eio~*UNPa2mh3xNyBt{x+Ce*Z?-2UEAi*90YX{$2myDy}T#HOgWT>@POzG3jWnTmd+2H#jd4J=he!FOBdWX-38+W&_EeBWw=Z#95y zU<{6cKP)Qf49NFn{Rm)tPY=+1@P|htz_uT*v!};$bbCqQkt5-#2Ogr~OTo9c%VBMN zWeaI{;GKg4x*cM30YmLG%o6d=$s*sDuH3ExzPMeO*7P3OJEWj{9yb*k`SMA%h1c{b zJvN8h;Bl73{!pYdAH&ux4z}+t&L)=aRHEcVJqBMq2(;NBf6pG;+Fx@fT+x6^DKZ1y zroncbe?eQ;_zulqS}W7 zx(%e-gXOBu_;F2d+&`uTuLOz?s5>v~+KN20s56cK6V4sN;IXzRW;5++iaZ|6^9IP~ z^%xf4me;8QZqhOq`fM+t`@~Nob}BEvrYV2~;Sft)V#*ZNh8f>DAPqbLT(5av57_70 zmNd#;l^4^&PlVQTm7B$;lrhikZYiE~y-yWvi9##7Q|@;n_v^FmW=c1YAex2RoSq(l zG-Z#3cU$L(C-A>xH*4KiDxzqVN|ZrMj?G*=O&u()-#R06fC`X?&HNrh8MB~t%ll^< zwO1M=M^QKeE_bNq$58vbxuq>y*~(V-sj%7E=l<~dxBvM+O!4^|^TF9H=n+)VCE{)E zsZi19+}>F`J?mfi?XS|x-nlUi{UvDV%?1QBqYxX$kZGiv>qIVWsyX6LH>c9Ct7R{z zQB=grn^{RqD@CRZEA%b7$iX|Gw8lRx>uHqqFrf|OF_*>I$i++rbf*^EjC{;?T(0B( zNlVMcj9Kek^&}VV7`@k#qUt;<3g>0~&%(GH$$NJ&4r8%3{cIdq`!13=LM{yhiDp|w z8~>eaMVaVFNl-%jaVau#f9z~iuCp0Lb7ebwPIzPoMmyQA%aO5m5borHM8H{9eJ6PY z96%gO=xkb(EGnPRQ7TvcU2BJ*YmsjFxK;xkey`Ec*_4KUO(RuS54`tOA4Zz(hJaVB z4KBM1_{R0_Je^BExH4Da%X>ZW-S7eIF6M$Gcn7P>e?O}8zY+Yq6Lvq`Pu#H6Eb-do zMu~zS?a2A}Xc3Sy_O`lYWBva|wdH;%4Q?9-B&zXYqPLZ_ei!ym%aFyy`Q`f(EtV%Uz@96Swn8_!|D8VE zM6Qay^hdA2dq}M>U6L2tu7z)gMZc|9;GSILPV21Lb^$i60}c>=Tg#Eb7?hLL0E|C6 zU*FZ==0V9J;Zg=>NJ&+((|wIC7kHXy!Tg~i2Aw-(p^;jPhcd$9U-H#EA9 z|BQ03gGZSV*624H^aUyw4><7#2J+qUHmw`JJ}Q3)416|-xd;kr9+rK6r6@Rg?zhs> zFvBg%=TeR=wNz8N?su#gPPAMBoy-T2^BX;`H=(NZidpo1>JyY}G0+Y*y$xvFdx!wu za=T0PTeb_;u+R$Ex}p3SQ4Qw#prpsneZpX7Ip47i*^Ghud~|6Q{a)G1K4msN`Tl=- zcJg5uz2-VLb!-d?9+^eGy>56eLT%xsO}GA)-~4szo_>>7_Rej3a{UjrnzHACciU-7 z({{N^TDsoVW4qOP<+zehUi3z~Islajc#?@?t?4Z&IaQQ&wq6Z(C)RgTYKBW5cn-PX zYC(-{qT@M0xC3WP{_aaOyU)G=DxoyKLtwpeL|iBLasTis`no<*z}=6N3T>Yw)C4!P z6gx||^Y-(^Wogg#GXk9%S~=$}KML0f)m_C-i(dw$4ImCo9y15A4!xg~t=J~VA^HtE zI)Jt*p<56DtW5xO)B&d>rJpyB=lsngh-_O&Bj26if11JPMGf#$dso{JQ$gHRsOR(R zS#*=s5DiBp+)Dl$3l-NgZ6-v&AKvJQGI|J{O`nLi6Y{~Ang!+_+agsc93_q;Ew=|25hp3jJk(~As5h1t1;0mBmm;H@Vm{OWXpDR__zr-X zRnb!&G#9vCHobIp)j{_ak?)8t4VVi^e?LI@J1RqF;F+90&{jq-)PYnTSN{>DgB4_# z)?xe+#t%7Dl>^RwTX#lM?+#%5LA(4I%xUO)Jfh$GVYx5ow}`iuBI6&1=4i+dMN|x7 zkH6$_8A1>9wGahIS%jxjf($v}9evqs9$pS& zb+!-mn`l?Aga`RceU&n<9R0?FjM+b02pl48J5-|Iu&tvd56B$>-I(qC7Kvco@v)XC zYk|tm@bt#RJkF^4H7Lw(YYsT)D8>5U*ngJ8Sd=;X?bE>eGP=1PV`}NnNI%!EHmkfY zLTxP8MrF)nQIz#?lcVK7ey;P40adAIau>zCA7fi<1A2I!uy zz2(6yS+8Ey0v9tK99zpoWOARbwa8 zp)7K(FS}2soKtdDbQeQ4fUQ*ZUatV**w4$ESX*l>Hy|zT+4I2pPzB+>tw%`D@}7#j zP}lwT!Yrdug+=`%`x~r>paq-yGYBr&w&a30woyJeXB0N({*_0*^*&XE4K#FsaQ4r( z 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 z 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�X7S>-&Oh{UJ2y3Soby>6_s2T5_T>kO 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 L^Sf0B&hh^TvwG*t literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/breaking_error_lvl2_style3.png b/BLE_EXAMPLE/src/main/res/drawable/breaking_error_lvl2_style3.png new file mode 100644 index 0000000000000000000000000000000000000000..37005fd92bdaa518277775e634e733bccb372d41 GIT binary patch literal 522108 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

6&4S2|qyQ6t6S>OC# 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 E00weS6951J literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/cell_highlight.png b/BLE_EXAMPLE/src/main/res/drawable/cell_highlight.png new file mode 100644 index 0000000000000000000000000000000000000000..a73d148ca805e69b9cf6dd6b6bf3c9f751abd8cb GIT binary patch literal 3891 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

(`s#W2sN2?w*lLIQ4izcK^A|uJ77T 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�Q8T%&&iTXNo|q0aFB_!pM8?Wb=XhR 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:``bbk?bsIG_gUUe#FM$~*}icx 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≫O<4!gZLXD)a`!&UQ_s{ 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 RYxe*E002ovPDHLkV1oAbXMg|z literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/chevron_down.xml b/BLE_EXAMPLE/src/main/res/drawable/chevron_down.xml new file mode 100644 index 000000000..955eb16ad --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/chevron_down.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable/chevron_down_disabled.xml b/BLE_EXAMPLE/src/main/res/drawable/chevron_down_disabled.xml new file mode 100644 index 000000000..3e0988e34 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/chevron_down_disabled.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable/closing_speed_arrow_lvl_minus_1.png b/BLE_EXAMPLE/src/main/res/drawable/closing_speed_arrow_lvl_minus_1.png new file mode 100644 index 0000000000000000000000000000000000000000..df144afa6d93de12e280bce5ab9c305a9e677916 GIT binary patch literal 8386 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 DzH9ue literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/closing_temperature_battery_layer.png b/BLE_EXAMPLE/src/main/res/drawable/closing_temperature_battery_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..58b71c21428302deebc40289deb41f04e86e39f5 GIT binary patch literal 6957 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 Bd5!=8 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/connect.png b/BLE_EXAMPLE/src/main/res/drawable/connect.png new file mode 100644 index 0000000000000000000000000000000000000000..7a909c7e4b2e6c72dea4ea600cda1dacc32cdf5e GIT binary patch literal 597240 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 z�(y-a+EF@Nnc%#AG9a3C8(VprSZWi@(NSZNH6J$gU0lvx=t5rVRo-S4_s<$sUJT zURE8RvLsIA}E;99!|^WpaQhAlD8wjxOyT^ ztrDsV27487j&IgCoT&ph(qzLhDNH;MGw^WF!vl%6DF8Aa$~Wdlj}^1M=+mW6y&4+k zbY0e$=J{Nc@c%rwu~r2`2x5r9?*t(O01Sv}M!)r(oP9Sd?rY7vQ22`bjx#ubw?dVN zGM?JwuL&YFe*#L#y#__=aO~w|@lj${_qS(7C zrIc1&XMI}91QZCn<2ETzWA4OCpnrW|6n%rz%0J$f2JE<{{CNju z_oNx7JEONM&&WXlz)+en@;C*oG{0Z0N6s&s#l7k1C^Ec``Y zc7zfR0wll$d~Yw(@@DaFzX*N^UiVgLyA|$43aD|bxYMySs+VA5Eit^RggAaZ6(+T- z5TNOA@jQKZU31$&+U?-oK$3i!1L736w=+m|@6<`rE7k|OltAi<6+Ap@n1=ztirk#b zrT|{Hq;(C+yCy434tfDJO5p6EnVvWH|3ajCFK`SKy}z&|Z%?*fO@H4DepdnsU4Aco zcPXB@O|TK)|F10nLdO&2Rvnlj;y_42jWOmRc{XCI_S@uXRZ$pmV0V6?b3(_lO}!Ua z(>7{iO!Bc9PgUmD_94@5PkPSOOT#`X2*2cgw4=wzOH7&fj-s8#`!31uy z0qR_!^9yqm6z0_{2q!0v=I90?3` zFw$Xm)%}}Q(LK(?dx=D4n2WJv^{K>rcPyyq^M4!u$65g?AWZ-iA|(`Q>f;4E2-};H z^JN)}6dB}GFo#uwerNhu;oYdto0qXvK()?gB>TCLQZ9gnNKuobNc3Tnj&ub&Ekc?2 zU{w!XPAH1wQ*^y?JKl%=i$(E9z(}La30`%(5y|0Ct+^?i{DSI0f$i4L>9&QoaC7pd z_BMBoYEhlGE14sk9e1C(t88j@YLb%kslOsA>Q#oHs}6RXOq1x+V9 zxaa3-dMxuL=6TH%F6U`-bbfenr7$h>Kv0u{9PSCFM=5Wlx1lWO*8z4Cj5H zuYD9MC$FaZ6U?>HSa{v`@TZjmERYr!iPbAf`CAG586f3BPR}h-_#`b=fh354=K@r# zP+&cg*)t|?Co6lebcMuZ6)57m|5ExbU-ajDzF^|I6`(-$1xTTE|E2#dpZB2RrrZ?& z?i6I)5^dKbKkx5B*Y&$3EFnPqJS|HQ@_D-FTlU@KJPu551t@V#VonFa&5OZjkbK|E zDKFzz1w3w5ki-M1m=ONlU;{&@mJ>L5Zr}U!0Lt|5#EyBMJyy%Xn{hdLFIMuq$s8GS zd^yCxlk~y%xhKP)DfN1NNaKOBkF7KW9`6(Ah#^y8nsUzuJsGPKpKBI(bZ>>fL*523 z5{V8p4+HegV4aHj77F%pO%$4pAyN#rjPJiQNFAo!s=MJCzLH2G4vnG~-iRNQLF2%} zrw)t)8y*WimZTHQ2-j&C*2#qK2q-AJh0)QW#w7Q7kPI>hIoARP8V`Shkw?J>itNEN zaW8w5B?F8-J0C#@=8%Uer$P-?G-Qz+1l|j6BLQtp*@o!+#(Q~Fy#KrDZNur^YM_mQ3?ZLod3&6hN$?rraPo< z)yT~dTEmSl)V?SIir6;xgI-o7hGlp8|2l*`MuUiXAB162A>t%_P|49EHHB?dXs7_$TrWNh?cVLw;N_9Ho<4D%}>3MP6RNJD_ZWNZZ$ zQ{+(?n9xE#N7;g+ZBwCDHx?0^O2zeEMXnCT<7dk(i?36dlk=Q!T5>j%v;iKtzLDJC zkL^B~YZ1W%y%I4I@J&&y&INJ4YN5N-ePeX9a}k>W=T+}X`X4;-C7X+GGof)=)|P%{ zT=I`HC_u8cCT%av+a+J0r%4H6PHR~ipe6IGDhZns`R%1z_Jy!4M za{~}B(^+oz%a;a}Zpnuny~#HB8pQjIpNaVv<)>UE1Rf%vRo^%L77Q)ZBys$fsHJhq z629qqinTBBTis3`m6bt~ew_dgfhX*&K>@zw{9BM5z(21FJQgGp82e=K#3@y>7wq3EmdSnlB(l_!jyzfLLbLlOXMf;sZ19dS#2R>=E?_Xqo7OBJUi&&oB zyXLxu$f`uL4+@P}bzTK>Eyn98p_YYyPo8&?vkC(+`Fq(tn@VI!ROwsP&o9mng{1E7 zR74N!V#dB2Oh7Pyw+(Acp_L(19=#CrE0}MA+zc2rsY&2mxaM98o8Hm=g)Za9(87a} zbeK-cdJ|M^evV{)Y*9XilsT>$gphcr*6%_dMb-gjNZKP8Qpg3cP>BgY=k2SLfONBF zcd~v(vAYr0r@C!1-!fjSHvLwuSgHF4mI2_Px^v$*y`-(JZ->HlZRm_a!MUXO@_^9h zbq)-BgJ)$s+da5l=U7aOfsP=e|38F2MaB!QSuqU*=V=~nRfY^t!}cv%RI8#cq!jmU z7L&t4-`mO^i@jba=1^ACqoh0lXy%Fyir=!e-6h} zWvWuN#$M@`3NW|XhW#e%>XI@2e7UH=kvk) zU$(!rYY<>@$=<$Qf)`##TmQv?OZho&8JGbeBCr8)8h%$X89aujE!#bfg`yEyMBovV z!P(0hr#vxyrGgV>V!!)0Y7k5MV)bael2~}LW|ulH?ltBM4M92u@0sq`x)~3RovH>K z1pcUr0Y)i;4$Y6coV}3%8GQdSCX@z;$P5P5rFuln{!mfIEK#E({_^NDx@cr5xC z#f$LyzE}u!o~bbAY2PIOKhIlAuA$xuQh(DZ73TGnb&GDp?P z+jXrA7dM?PXBu^QCTL{a5>~tbz4|nSM=itnlp_RYHs7v_H7{=$1S~2M zR1D{T>IkJrq80ia;$PTnx{3FT=V&E*GO{F)kyfhVrzX8&TfrI?b-J-O?jkq{Y*KYG zy+Yqx06Z?lC*Pv%2u6x@X0~V2mBu-@Nt@x0_pde%YbYeX0 zC(KEn{N}~PT>=fs36TT=$0;Y`Am>bgt;ItZhBEY2j8V?APpq2#thc_tm%~h5Nrglf z$hh(Y#V2|p*sr9E1+Tw)ATC>lV^Vbv!3C3Hk0mN(40F-&mXc1?D`1}l8d3s|sPsP< zuMe$B!>7HaTdmvITo7cx&~;7|JPwn6u0W%GUf9{@Ho`D0=3*s zG_wDpKZYv(rQl^C&~SBMvaGB$jW8@=-Ts^bwa?F{9)9BcsOM8G1UZwX4+ z{+H^y{=IQ|tAA5oRAE!+%NXD(KUa#uKV$uj*ZFr;xot_^{=7I;T?s)_&MkJyXo>xL zu_C)e5Y5HV`YKNi6cb#O;5t6zF7DNnz${fKfJZ^i7=}uz0^b`YQsF*=j4_V|-~YOL z_t?7lopubjJkFp2K;o-l0HKitp_=f>>X^7@#qmg0tArJkJifXBPGF5=toE3Q)7Y|Z z5a?*#)67cV2Qo%is{rFc@={}7P_{tzT4)k?q$)4B9|hW3QqFSz@i_{HFw9#eP3&bP028hC>}@R}M__M|$F0AtOH*kKY)0Bq^&9z6V*LJ0sO=%b(oj~PEuIKJxkCYDl}0+QjY)Ip`OIhJ23shCC56)JqX3gk_jgybljqQXufc zz{MhO0ED1`ihcBGsA~Tqg;~AoyvNPH&&!1&I1yLJ4QpyBh`cRG_+Abb zz#}Da{p=!aZgG8#n6p!sP;`pp_*+D;+ok-x-%Vg!b1uk$7QK01x25UoWbnmcpMw7I z7=Y<*?EPoeZZD3h;|#`;tCkEtHr6n7^R5956%U&t0Eq!p9P4UB3p^M;mg@iWyyRMx ziMTgoZrc$^FrO|Gba1S9@3rLZGNcv~LB^OTq!!LyTe4fsaPGBN!92G-a*mml85FbJ zXFKOxtXi8UcTdwj&cb;-e3>oh&Hp=2d0*T|E3RYMeyd%<^&z;xS{IF;mOpA*l?;u$ zQ3@r$0vZF|tTOsaMO`aZsC!{>4u<55`V}9Si{x#QvVx-VJ2B&bG~a@WJ=HnbUc~7| z3bcHQPUM^-FU}6tFIYmr20~ErT{<5?11AhJK2g?3b1vqh)0kJ7 zon)B7YT3HJma5lEM^-0oH;ZDh_<4nF&7&Znywb+ht-jxr)L)f> zrTjUR=N|V3Wr9kD)59X9!o3woX&s>!HK>5nLSUfEj^X_!fTio1p~)4<4*@tFizn*h zcerI<3WPts$nDaQC5fU;O>z6!&I9nE=e?Q#wEbT~-hw1xP>vniuMAbXDKX^eRsZe$ zWB}!53W<8v#lD0Axb}_o_fp`MATapQ0}ovHh5#5~%)BWGS<=2t5Z7z`)c40{eaYu| z>4xn^NY~AvID1Y2b3ly020%_1w)veosM7CG!=|8ozsTR=3uCU3hk%iPZ3t&Zts~#14agY|GzJK zuwCr;Jv8>HL%CWoOsT9DTgbPN6r!od5R6^rGyN`&We2tea1qBz%G+dwnFuO*mu(Xn z2BJo|F|igVag#xcEK=}BKg`E6qK?##}aV3?;T0s zBqk|oYNt}mR^N}zi4e@&(>w=HbDb!qq^&`P&ey8}jM)6&a2*~9CUIgHzjY?^GTQ z!VCu)s88WRO|Z!57Q7UCAE4fIZw6&653L%zS|@YETS3{#Yn#Oq9OUIdj|!}?K0OdG zhUegdqLTqES(Cz3F%BdqgBCEA04z*`)lAQz-igC>4+m+#PP%Kx26fk1RY>7@#XJcV zw+bF+!0@7<+>ZloEc;1L;>J?@>9J1*%7H5d3PSElR4$P0iO_}<@#@(>6ou)y1bdD1 z?u(RcH+NHVwudyS7efNba4&>{k7ptLgYoHHe#mj^>M5Zb=kUVSK5{)l@p~_ydRzN@iqRO@YsRdrG`p+Bfok z^nVque?v4Z>ZOG_{nVfPM%b(Od_xf0^mzg;3Ou@SuQ&$FmrVpdFZ1%I(d)ufK{l-z zB1YgqdfXRb|8k<`y(JOksiOX3kk5iD=x?$o1JB)i@nU&V6i|?H zjNwr9VVsEM>fRsH@h9@Zzy(>&;JG;I2s~~JJT81QBFmJ%FVFk;Mu852I*Ac}5WJs1 zq+^a#o(10Eqd@iiRIUVY0fx8L#?SBhT~892knEvgtqZA`q$n_otR*nPBAq%`mDRfG zWnE7pQ8CvH+gQS@J5Sf22tuMf|6*eBf- zUq-MnOAL+C5a_j|b~5PTwn_|>YQ?Ki?OVRZPKZ`e#>l@-3EHi-wBi5Ktl6Ju2`xE+CAF)Byt^VC@ z8ncza#Vqw9)od!AXEd|U@iY_;)>sG4pVP>02@4vbZ9g0d@Im)B*`M~Tk0x$|e$cNI zV|0gZ?Maa?NOwD|Z0kARmmKY!^!n*Hv7P90O{9r6CIBXod_637btoPqz23zHY>Lyy zmiu5?l$?Z#)~6B^BJY?&p~?l>U`|Zwh_xxMB+K!=f%OLY5=W|(r!bNGva&?rfTaTk zDu1_ybf7EYv#Qm#%St3_P@GvmPx!;R$9#XDCDb|*krXYLZ5&(ui6F1V>T!$PzvF{MdxtQhs zW?EP9fVP*(gK;&59!Up}g|T$h0iW+?0vi!N{RbHzgW=ujl7~lsyMHk@EB(GN zg(UA-YvZ$2u{@p+VN}N!!nT~A1EN9)lrh z{}6I6%02ECxob5u>Z3J8ih%wH!TTk)Jg*Lh-Cd(zNqzsn&)3BJ&l(uI?%|SteU2>= zP;8iIR0RNniQb^TRu9G9Joc?MUW4PHVV(u$j=W9phK7u;+4!p4>Zx!)@I3sfOa!BH zOzWOxZ!=l@cns-jb)3IneYf;faPCm>z=EoqDa00Y2I>UhUuc8rvJKxll~_^(#`cHP&%*#vSscZSfMaPDS~QJCq;?HMV!~7ucXc87C#jQ#ct5>O`A| z_dQC-Z`nlSm$lElcLs<6xE1y$UF1jazI)>X0Y6t~VN3es-g_j)~iMjp-?dH;I%9*^%k#YM9s~vlQ=7f~azFM*w)B zY^*i}70UW_Gi@U*s*K$}N?{>XW|VUCw(;@buC8$^t7kExm5LPq03-l5SOc4KDJiaM zsa+Z5NxT;iZ+f3Xo{-4BCbyPQ0sDCZ6f8tX%e1PWuZ5vDx9mHO00Ax0v%xih3BR{8 zu~_#ov?vyx^VH|hO+o*Q6;k^=1CN^t91wy;B^(}s8#(-l@~?73LF|%xEHnxGRq!(O zzw;S94fxCmO}ddkL$Bm5eMpK`*Z(ayDF~?YQk0$!JzlTVrR!+I_h+ewhBUag6!*t{ z*R9RL#>)gK&>pY%GJu_z2EuMO4EcI(9v=NAuG@2SE0_NB;)0*s@1wxs^Q!QlO8Kk4 zu!`U;S_q0-U4JgIx(2))*V26IVNwcO9k>Eqz?-3>py8zP{0p(xS|SjE_rg6H>e;+2 zF*zLX%Zk7Ai>>ZSDZbAuchg&eYp|};R+?`VRH#>8+rG}g1D=en zG-qxJ>1jEKst03MZA;O>hhX6aL}#ow7%1ASIV8&q3{-n4=B-!0aq*BtFtsn?XXBsKFib? zp_E2;7AlD9pg0X4iqil-V103RjA+rpcC_T|i&}%A^s`XWZr)#pJb8|VdMEVn``*gr z)~74^vuPMq2`D}^v7pgE3gU1%St;|=YA#|2nPjjrw?cRaskKf(JhbHNcjDfPxO|c- z*&=pXjM5PkD}V+=2@rPR;Z3{`BxPeFrviY<_FhxQEZ-~GpHyz9$^BlQ7zU;5 zs^TFgUVRQ;VdAwZhm_Z*#5*Xs6^fm`D8Rx*kRySulDSEbyD3miKR3?TH7>?NFe|f^;hZKuhROj?U)#@r0WVYevR*{SNcyA;NVr^ zAvs&p{@2p)q2JrG0{yh6|1L>Af$F)J^Va7UQgx|6H`}ht%cWQ8dI~a_Qvr~p_l~=} zk+yl?_;%FCawEYUd|rfY{bZm^M!w7I_M7~NoQopayK*d`>ebJHaIBl@clk^9Y?SiP zISlGnPWZl+uOkG<@}esBSB6ZnfZ|C5t}y*uDU$rr9}H6j!SG{5S+SZdF%{gO^;-ri z5Eghh1MN#0RIGOHsW{5-r5D|!tPa*!t9F0?QAqD)@41C)ZU0*scT(Py(r+CK+NUvtY-+EnYuA#GGySfEM`ZZ^)0oWAsXA9ScD-PO zS}2WN$dEFuW^IZLP)%85CFe=hU?O!51ys5;kp~1G&@WjDL>2;%R$^#VZnOW}j(xaq zFVVsMvA0To+q9v#TN`{EprfRU+gtE#L>gJP0buOp0zB%1Rh!D6dw1AHPhB<7(AQk_>(PD+?$ z*6sS*LJ%=eYjf+1Hc})arqbY=tZf{ zqkH7UPOpTAEgX*gwqSWuE9BA7v}TTp*Pn34Ckhj+U#0sXC9GRqYvt7~;x*3`+G0X& zSrdY^py;QTVKM+|3+hg&BKV?%WgB5I2z5cSbz~BvuwN;zd@>37wcP47FG8*8s_Oe#)R{j5?Yw`G3c2~HMll;cwb?#5FEimuP7@|J)ZOerqp)1+Sgd|KDvS@B6im-uT7$ zP)p*HN*@1M(?aLeUHLk_D*z3%d_+BevzXq`7iWl4*);uuFhX?))ddJL+CpnV7>1upS<7p+|D0c`xv zSe|q*LB(nY9q6-`s>Vuk*XsoMpJl#;i4Qc2oJ9X)zwYtLl!F2|M0O{yRY5CY+3#wy zBudA1cqq;|8FyT&XX1NH&^$7a1ZCBdu(_pjl5;9bE9au3cC`M#O4ii79lQ+3IZuKK z)-n7Eirbf9%KTznG<+p-N>K(kuPl(m1Z_K9qd;8GfCs zT%X!L>EO9|)!Yle(XUf}!g9m!U^$&@c@VdMDw4ezQS|ud3D_VH1K-1`{ssvoomzhd z2?}!Pp?IFh01vYwC{m!J=lFHF2L%=IU`X?$ET_-xN$dDN>A85Bf47%*KerM{du<+z zdCr3Y`xd~$i-zD~E_?>?|BFCdOHY)p|HmFw+{&O7`5E+TJU2$EYjSG|N&mM6tYarj z1QoYK=oCE{%qap`J}G_&hEcKDo)k;5&x$ZU{>cJi?gaopj0pf0&v+^4tW9ie z*75IZ@mPDfEsOQ?;ap?L9_wv# z8MYR)C?yZHg*&xfv=r3dh)t0k8dcuaw$-Dk!=iSIL@yO2XU}qlPu8v-}Ddf(kEWMA@)?&gjAF+HrlXF2zJ9IpuFC z6QSQCf{$3#?rNI2uurEm^;YQQcc%v!Ix(`a9bNxVa&bB@QukF+gCg?ABQbJ6#V})% zCbQF9%e83~DUW20MyN6BFw=_AsR|tBA0i608WB$sX zkITv0wz5+wcY+nOYsl~-_k*y$goi-A zENU$f9HsJp8&>^hnRpEj7Ou(Fkp0Bb}NrfBhr`^l`h&2m;iXI3m z{|Y63-FpZ%m*OV_3sD>-)Phz$7S~h{!gBX(qk#TbeE*}Ki{bXToQ8hx(KxlwM-U=; z`(F!Ch3^I4i>0&Ab4V3Lduf9ES1C{BRYwnojFj&Cm*iP`k?VvoS7r#1y>hv3c@74) zyn4oqkxzRo0bP18E~R=HU2~dhW}IXIacUrdtW(dexZxH-&05}<`^&wdLs8Q_rkpvV*44^%eiVZv=elwfeoZ5v$P%8DQsJ|&*yV5 zMCWUUMsXW^F!N7~x)!B}!X@Qigt}K{m2T!=aNUn<#k3i13m~Gkee9cdC%uSnh}2^G z7mc`s+frtzu3bucQj9DSDRs6`Z){N8B1qv4K|{mqd`!ptKUFTi5s^VC)S}R+=vgR^ zj|K5$02mgw{W~Op3@IFpEr3F1dTPV}D1NtHl(>QTz#t1Gf&}H9nB_z;cceVT#A*FA7>Rwu@&?iYh_3~`DQ2X7C3+8ETXxWDl8q8e*m ziB;oo*YgB3vA$fN=c8i_L!aI*xE3eGxEz~2A@oQbR+H~qZqrFv6Db+<%t`r9m}L9O zp#N|dUD3cy9#u8PSk8CpVPP6g^stTa-U34>*q?Gy%h3Lt!j~LI#1e8h zt-#!0!gt3IDTX2GdKv2E!Z0BwIxpw%B7avEU|6h0rypLZ~!ued$ zFG0kw@qCFNi~WA3684;08$+bT?qui@DUVaZGZaAw0U46Sx$YrS)_WswSL>&qRP@%%=-Co5T9t@0gPAq}#XcQ5Np`B~C?%|(TtWfAM z6bs%A3JZwFeVW%c38VGfaruL6oZYVqtHz>w41Idn_xWw! zhKvD@TFx)5hkd~;mvrywy}*1s?X*4=SQ%$_hBTiSRl8TKYt{3=)6Baz5dnmV=Uha? zW?N`2!FQ38xHYmO9^wC|AgLZ8e4BKbe8%p)u&5{*P*fr8gN{MJt34Xtr8(EQd?79u z-^!TOv|?-yECA7qQ9O)QHOHFqiSn@rQ(qkQeter>y7)>CU(>i083GRxe|3>p;Wq?} z!?e*_6gph!`ml&jS&u^FGXG8N74DsI zPX#MvLpA~>pAWFw=aCKS^}u{z;ErZHCZ3H>2la3I0sp&xz}Eyk?Q=h~LOm=7={Gik zMBxOZ>$+!BfeIB)Pzom2`$K?X1?I9b&Y=Bn zQ+p}KDiEtgYwMWz0wE*_E4h@DtWTP<_OZ+DP$^rt$MPjg*Z}#w0!5OFxV`LX!KPON z)t;MNuC`7A`*-lapsAKq1zoYAViA>6Y+~4ZQ-MW<3Tra6JVK`VN+T z2r8iDpLX>+Jqq!x01(UO%{a|K=d%oYmc>EJsd*%H`_w?o@Gj$h#m{wGn$L>%a&owxJr>+{?;O1wTvyuUSIH}QHVW2btrt}9K5J0nyYynH+`)I4 z@}m@N5Qr>#|D$Ml)R+BuLQjR)zHx&FJP2!Nn&U;|2f&2hi<47CiFsu%4oa>JlY*Ul;$i3Ba7p{z@yW zp;79=PauR zj&9D{2D` z6;B7xf~yQ=n8PA!N+{s4da9+!B95? zg>3{BJWiLNhx>nN*)SS1#Na0hflw-CFjN^>_d;T_H+r)WpBGnrk-jGlnPRAvKjR=J z0Jwn1E&`2G7zX8GQI~R&J-nB-*AXF6lB(QmI261bZZH@Z=3O0GZJX7+ekJ8%Jq>;D zg?0B}+^G`1>zX|DWH`702)PnyY2St431h2tF$|SqPjeYJ3dv~Ou-%PMlIMwU@?HlS z--Wq_@;Dg0bRN?==t>CJjf5kboAE=UgjQilFhB+AXm>-cZqB717KQCH1bG+|73c3U zQkFRXF9H$6Fe#0M*zBl@FjT4yJ=*+#8@3B!eTxyZse3FIco5D59yo!F6Y#&(j1d zezJTFO5LV_1)h?4ugg+~X+qyW3OQf`LRA|q5vuYsrkG>w6`mfpyVqIPYEW z9skBa$91DQXAVZ456F2B9twEu!5rn`SJw*91wH=m`KLIrn5OfSkFrS3`bwsL~kgrv&g3&L^>K zz(oyu0PWfFOg(>7TI*cS3EYETiG1#(-Jj}a?6)@^OYcF;+VQH-FV$vs4hKQKVG ziIpMumT+W1`v4W&0(a%Ki9FR500|5o1Qo19!9ix4+sh9=lTu1hv1Ku!&dSZOCQ!we zgCcVy)MG(V!F>)YqyP@O)Pb7r>ep%8zjU1x!1(kaE!9i0F7Q?;`x87B6Z2Tiv&Ul9 z*q;vQGfZTyX-!RvLAjUz(y=3{* zZ3Pu%Z28_;Thu#2Mi&*ZKY`_CHD47rIGA4udK| zMO5@pv(-LY>SNvm)}dAtFwg_Qbtvtp#kT%klj{wy6XlwnGcrS+W?#uL%qku|^ojuN zaGl^F_Sf_1{hfwTE6@2jZ3rgfaq5|HdfmhVCj34WXaOwX``0#p4(4HeZdJh*OdvE$ zmoFRq<~IfzG71vm-@xDda6SSI-F_eHXv9nl@`$~VGIWYGwzsO%i{&>cR($Wad=O`$ zIW@XuFAn)Ut-a4}PF@=eNbS@fBqpzlAvO>xYuYnS+Vis z%feIPU;<#{sYLGuL4~$)%+qD<#eisD##tEGym%<(I01=CcM#b3Q~)X_0aQ$?;-C{5 zli$mvAoy^`s0U$Ngx-t$Hvgz+0`tzpG_S?NdJ$CU+y$@2e)7oUd>fT#q8558TtdEM z0u{`6oC^P+%5PFg@=WSk8|+X!&5>2=*0!A-4u$PS=E%0%E?FpBtA*jd2lr;QQo;#0 zlYX0PUU(jB(4)FPSTSL-&pZ<1)QAjqHVIyc+TbfJe9Zo)&w)3p=`KLU`Emg)Oi~OU zsl!+pFR%$nRjWc+NQHD{hHP7-L8Et~%MOkX%_EoQN^5x)Wv8~0@Y0bQwyj=5{hy2s zt+d%%pf9ch4leOx15C6sJM-(f{b7~|;GMLtK!OGEv^82V`oU~zmaHPP2HUenK}g?b zgWD{8mfai{wPhBTM++=PPABWh*N^+Y`lo~MrtMYB4gkl4v|rnFp#CP)0YbhLgg@yY zzy)2^50iWQo)y6(kcgDB_{;~vVpmqtep~fr4#ivZZm2v-VNPq=qNh}ftRU+wPxZv9 zLihhYn?x}Q-!aCg@6*;({jSryjEQ|UwXGyTfzR_pPz0zVB!b{j1`BI<^P1PAP(?!- zWRB&AxvnC+-2h2M>*Tnfj?h`FT(x$<*|@DWkA_zf8d4^P~VS zH{dT)x>U88qtM$8D+I^TBwFD=h%{axuJjKu)aWPFe@R>Hr)@uF#ahfG;6Q|QvN6Y^ zJo9OE#!Bzd67L7B>=&vWepOBO}VcF@6GK1)=%>D|Nj4D@9%c&%91oe z&^ASpJR}b#(M4CtQ;|+M6j3M%J(wy@^~Ip3hrm38<`ME4W-bPC0`nI62(6pBoSw!2 ztnR$(hL9Hxd7&}{2R%dSa)sm)CH_hxxqF*^_ARru&ZZ(7=!=pnOrZAv&pBuBwbo~5 z-)H`gymr7I??p(|@~za=sCUl6h}6GLdzY^cj*VXgd?^vU|NM*3lw+G)B6HHzTg9=V z?bOdDJ+lTNn%1e?=s;nlmOz7?GJuQQl_WR!zwG!zeM_pLE?;iCQ2JGx9Ze(wTNkqZWCeBy6MM zqe8`F<5y^5pzr%2WUJI(s6UAT2NWCnwiLBv>eJm$D`vB(-5=6j%Vvc zy>o5)l@cvCldLRlqg3M!QYUk+KYC6!QYet4t=pMSkteP~EWrUEObLFY*RHwJ71*!MFT)$YB{RLFOe%G(LY-yV!l~tVZ zJ#0u2t*5eRgWLKTq-#yPsT@?^e{vvX&VpBvm&f+Ge49u>6xdJ0+&AeSxW~jl6XrFV zaahuXaQ_4h2gU1s;!%{agEtU#nz$V2HibeIZEbV-%YOJGTR47FShwfAM%p%`s-DFgX zR#M-DZA%U?e)K7~{wSdo*cNwvlEh5N$6!kEq#<>~ZTCRmn7&O-*67AgTBm*Zur!+5 zJl6luOV2+{pS0#^>hdE4CQR36I`$Knrd7TulqnxIkqiDm69NowLpBE;vAWkKDNi=` z`XmpdO?OY`1ciqSn3>0bMD0hZ(SO+d))l7XC{k9L#DuD{+u;wJBZw&i1EFtV0rM7Hn;b)CAF+9Og)eoRG{K+mZe1DtdOSsrASo1lFXfe%1j0rl#Si2<~}-) zLX9NtX#+A)k$AuGBmP+SVbaL{rBa?WD)KN=p+mr^em%yNfSs9AQ?3h5tA$@RDshr3 zLbnyG)xwjW?Q#$h-uZ)SDOu56j)Kd|>PK zKGsK$Q&6G5jYc_m4y04{20$#iW0>OHyaxBHKPSOJeUGs;@p}@Fe%u=FZS1pL21>5j zV5&ZXzelbz9-l1$MgWdh@OMKpAwSl2edcAnE$4&;F~O`fGPVJMug^Wxxzcyu6JX(n z5xr66yYCjgM#h_@CB@sJ9aM0AMbd6nrT$9Zp0mHELJ1y>QdOHE!`F?Gbg)BkFmlLD zvK*~Hpl!~dgA44IPVFyNUk3(zNy{a2@yK`;nCA-$FF*|@_!sAcccE?!9+iSQ+F0xg z!k_6ThHJn>^%4!1hfp86E;gj@beciMV<(I~z%g?MZ_B;zI~#yRXcy6l?~Tx{pkm$c z<*>-ZQihLJvhP}fy9h@=6%ga@y84q8Fri*0u0x~0?G?MF%hgur6+-re+wS=Pr*htD zm-60Iqqs%66zVy{6dlB zjpm_ePyrvSuBX@atjr_TLx)y-l2drHC--`lt4>2|i*%5E-7hIjtRI2w_z)O9GakfS zPltKypKGIh!uYG#sL%Xes(!75)tJY#8lYk-+3Swa18`B3s-+J(*J(;SnwI~ujcG>* zX*=xelz-3rnMm7<0ydmDs5mrG5MV?H<%`X`kMs5Ae2Wem^5C6mRl5FA2wtZ{ zX;uVCQM+QA&NcB=sjuW3$DsWu!|{If|fS-8e^5q7VlnjXGM?@qV467aR6nY<4f~y?s@pn9B3e^g#s@ zzxci%ec$}6{HdB}8RB_XxDsN zoM7LUd%q`HsRCLHY*-?wK)=0fpJi9TrQA*LKhLH8|4SbO z?3O6Tqv1Zb$~?Fk@q9gUj_5-lw{UEdqZ4qFN|io!-y#?@cc6CmnPyVPM?8Pm1(CbY z&RPP9nekQoxrjzvg*zKL7p+s65sPX+`75Zn%>D{2L?UPI5<*T<190F`p;_!u=C$Hu zb&SM=o=-WF+ZX5X7ZNX$US}qf(waC&u0?EpWYbWC0*J`-2u;Sk+K#0?p@5!7E_S?u z*m07V+HN9w>HY_{J&Nz}-Z>9%$!>Z%cSgTk4egR=aX&SnklOp+(w=f2D)%`wg7)2# z&-$&UIfZ>K#|v6D^*6;c#D;vYXprAY^(xR&Y)jpd=<;?tE4KkapaYYRk%^n$nK2Ac zknq6)20;W!+%;jF2Jk?#cD-Jf6K(Ett`_q9ufCvBx{@?cj{<)t+kLCUA{1td@`&RV{-^JzM z&RGHuCl0ijex>(&-JY|l5A18ew(6V{-p6X0k8e)O9US=YJMGR=^>Qu~SiKn5W#B=O zdEyec{O%W>f3fC#4V;_5CqV7rcnY4*uiN?d?T`BtLah6>0%nBm$9LBu+IQXS$n5u1 zX{dRk(Z2l>QQ&bZQ@iQ#KjIdl7{x!SfW~IWsD!@%I{iw(zxc|&k1H4Xx?h($t$XoO z=Iy0yx|jso#uuFekYA-p#cLO)Q0`a&1Q5EvahdIJQf&)ee($_9^3s+Jc-*e8%yZpN z(TRv!jQ9V0-Ur10+j7Tc$#HaWHG_WwHuMA-l9`rjJx*zvw(w`c$V(8mw>|51r% zY?(t6^N;2nq)|UB0LGJUmUtFV3a=uLr&`pkoMl#~2{d#my~+M`Tm`-=ewysuEj7rp zYNutt*O@3iMtkKuojccGLB*xk$zSbKE#k7ik(|wZiei^k=DtLs0Gp)LvZy4}=EH)I zQWQdS6;W&kFWt<+1alQ1cJp;9a+q?w+IG&Fj8G?d7jlUO$09r%YRut0xa3&!Dq=Z6 zLt9Oo>;JI=4hR|7(y@2_Tu+@lQKvlVzByDapR{d382niROt%Nm>GH++ z$#Q+8l6ICuqy^}R)Tla_`1WwF=L=)oXoZz8KT;eI%H9ZSL)Peu9^&wA(t-{-$V!86q#s43fcxpd z`=G;Cq$eHv6c+P2Rf*|OhiM-7JzkNU+XA@6_QU2Hy8bX-Pwz|b>Pk8m-+BF6Gl0_d z`25o4&)t5{Jc>0qbUxS5$e&3rF$EJ76Ad76P!+f7Fu?6DCRR@b>soHcZI>60h!38_ zw^eO#*uU8KfD|b{Z=B+p-mfaO)1o3q9nH{XrVuXrI~3`KZwgpCkdlVx?>FjUL_!p& zn+0Id-Z`M4X*=;%+D1jGt0H|}={sArN2uyuuZL6QRsk8{jpb_Ix&8&(N~VoQ1Os3q z^DxM1)A?6(_k}t`Tpw-vc7J(o3$@s`XKS}bQpIkZ8AbKjFSXph@$}u?zulcvjZ%U) zYdf(YjXqT)5|4dv&OZ!$IMjhA8{0}_m4$X{C1qP1##N0rc=E}zQ|R0m$N{=Y!`Ys5mN zDt0ouUZ0f&Dok*!L9cT_gXi#n$$CfH71tt#`5etZ^uc!hqCIkHS<_!AVMJ`1w@1ws z#}CJLAZO!BYAwG45ew-uG5f$h83*A3^TukYct-RO%1}EVwSYYq*Mu7W*Z?y9=)Uh0 zpdwc(4N$?9D0+0}b5x&}>ZRN^DGfaCnQ2gH__u9-&;H+*++k!;@!mf3^Nadgclez! z{JfwA?=q-R(_CNe)OZv)6#y5S)}(}NUAH`RkWs_pc_Cl_lDHyC}A5`p2$wms)S*bL9 zLw+qFVq>s~%yOoCv{8z`N#5N68Tw4@cO1B#IjFcMk@UoY96`mRM=@eZ2vEVam;e?2 zt4bv6)G>p3-#ftrz2*2j=+2t~u2jiC2aPXZ{Ijh4{YHw>nY}N%9H1g11&20Z)&X%u zKRCEQ>?YN^b^E9HGilO`Ce^)T5T9jib5sDws|OzEIxJ_$|BPJl+$XZ$i-U@FKQHg= zKo}1}%F`JJJ%XsqVV_gFGWdv;F_E0owb~4bB7%_#-_x{5obAlO!$JBjP+|O?Ujfeu z)V~H7{|M7Rews~CpfNA!n$|6fR?K@n8^V&V<}5;*5pNwLiKr-pO!wbZFnTNbsD zO3jWyVlx%=B!F19>2t|xQa_n9N7p^Cco!dBC_}-+AFb`a<2mRnJ$Pkr!y5+H+xVZS%IcAS?0 z<0Pp?5nwz{#BE)-<7rT0Q(d2(fGL$~L7J);LFCTq(hnu4PCxXlh(~GNBSE!pIyM=d zcvyfz9_!4~6#*i;bbqsu=dZ_WSnQkixlgRPv+aBp)yR^v#@$Yi=aCdDu9v@>*lfQe=y!a0sUceq3$6_L=Ls3`W zt^o#fR9RFgYEjUz{g$OR(VkY^i9KJ-5H{1Gbp4{GLG6{|ck^~fzn89!R?yf9Qbtzi zk?+e~-)CKLDj2c2EmS~J8QGuk-Ojy_>Xl;+3hj8Ir1EmEa<=j+SoxNKf`rPCR+Hjp zQDn+qN7b@deub`Aza_kk$hoE;Q&pgHdIY?k7=&m_(^apUtpk(49j01E8=MKMK85~M z&hy^4bG`A;QP;xG9E!6t(9-mgYaP=?@<1)i#6pMXnjb5EEb{6x2z*=S&r(X0&QDCH zbfbEg4yx&a-dDHk=R^KJ<|(tPJPS&rW|7wO2C#fnffK-&iM>M@W>0K@y`F%=y6=ma z0tWRl6^Xb60l~R>``3F!3PSDad;lA|uMW~V$Y&ap9(~0?Kz+tFVT#gvmAa+p;{D)= zbpta4I9?!7!FB~WhXvrQr`X7O^;vLDrd%z_`T~C=P zsc8Xx1b8hN37dL-jCfYsJz`yu{$CHz*_!_W?#8qF)|XXOfcxL__n*-PorXXyC2c8E z8<9Kx`?XMV`MTfF8%t+pl<-CZ`D%FI!H-h@)283C_&R;}4~O?ym-+sySOWltIukaX zd$rkpZ0)K^yb3$kie`@v`Dyh_8c%v;^z?M8x)m^U@$@fwU+7A^j;FFcisP z)S^y_(l+{*@!!tvIHs>MrB$QOtUttSfWR$={iIy z?v_Y79b;e1_X~e0=RzO$Z2=iiz27585b3{Af2uhb!4DKGGCT1;8uq|42(;fu>_XS? zcA?PtxPS}x`MU2||F3;J#s@o<1JaeBl0D?8BflpdlqesSv~6T#SZ0J>YgTrhRa4!M z=b}?qa7>@p$t)>dUP920)F@_`kf?oGS`&qQvg4TJ!oS+3_SY|`wWhlEoQ!Nvjj9go z3oywcxLK)9(MgjQ#g`*bFR__O#ia;~m-jMNh9dbkS}Btagf=8QE+gC8u0qaDWJ6J~QsTO@aED&W}{5P$A(R-s;(71@5L!U(pvNG-HrATZ zdBzh^Cj-ee$6mP_+pG-Gf9_ZY_J{BPE83OY6eHc1~3~OvfpBh(UYS zX=370o#G@_der>!*{;A7y>RNFf@fbD_CGD}FIAy%p15w@dsdF(XJ(`WTh~kC7Qn!I zpFc^YWvvg>!@m9;>mJ#Nl&~?ysLRsZa%vQQ-)SjaSRbF47*nYwbpZ@0QCq8p=`tf} zXD(%&@8b{vP=EXWZzL*&M_N?Wvk=K5wEL+_Mx83Pm_A!BJt^iC=!WaP?s#3cGl%YA zkmOw0Fdo(jHf%n=-2?LxI85@Qlc(P-`p~hife;|B^L!H&nG~cN@ z(^M*bNj~KfM+9Rsw-5SU^xe7ds{3LpO0{PN$SD2)#g5C+v;Q9=CKnh(>pBga^0U6wI7DX>U_#INusB$mosmi3IHLMz<1L-GsZevOP-8N)Y3x^}!FMuRcA$(6 z|H`$Pv%dlh+9mmMbM-8I-%*~0hMG4=LS0M>dq;)n=Quh;=m1U#>H7HPFdyFeF z1~Bx+-xZU1tN0TSt+F;`W^>*oLB?-Qite#TDRx8}?Q5M9I%Es50n_dO;2`3=0XziB z?16=Dbq+bBFb(-4Izduf4Jh^+wwn*F`zZnvAgrD&K#?de(C9-R!r=#Vx1 zVBRl+2y|jCkf42KU}B+{1V+9}h3{&+C5TLnb;|Vsa6pg0x*9w{BJz!F^*3C}BhRa` z9>tkguB9%_X3D9i>6*VCyqK&v!9fVl3*%6QvX^Se_rB3%9-xAQpS??EW3_-??{cwf z`<^ONgNO5BPc_f=xYt$?rDbsCWzE68Tl{aS=4+1dfg9- zB;(0k^FW-r~cBHH%RkNew9e zJVznJh}O}t0x1C3^4TAT*qQwF)HR?6=w}>_;oK1+?m65Dk=Wb>shqI z9@{=wTkMzle7UcJiqzANz=E8>JI=#UAn~o$W}=02jRjuueLcO%sl;kOH1#YlGX)wu z4i55q0Er#XH~=4`?fABS5)q`xj(gj} zw6Xc8LIlfZjnHVliq;URKm*8vcmNgm3c%3D@*hPi!ZrwScfEmr+7Pj~Wgb*)izE-z zUfC-HjQIjc^gto?iIRjt@KaEs9n_M~=XKvSwJLO7c+bRZP^d+H3N?}tk?K@;cu|4k za<8A7cFZ^CzWO;TkhixN&~*Tt$6uPfCU5qc;;Ui$myl3ijFn2VP8P4%bXO+>;| zOF)H15xZ*w=~$#a>7a@OPI_?_U~G79`xq%3@d|j4abK+3%z-23^Kh`Oklk8c_$}5( z9fl}0*B+VcMX0pvk{m2#uRV`fZ+#5lV?a+Zf@K|~cfE{8Bw#_BUhf&Xn54lyE%PRL zCZ;&)y=Zh|_1)Et@E=ZgRCB!3@xBns(J2i0?NB>@;+H@veKXCAR?jp=o(MRh778oIs}9LTm- zA{$YUWsKOJxkq7j9SlvG`lHkljEG$HC4G_UjZvRstWC)A%S}s_;`* ziKv{6-BSPJjXb`1+59FNsmOYht>q{MmS+wu=r9G)kdd(t4BK*~qTV_OKBT{-URbU% zR%M|ynJQKsuS>NtntEp3*QShg$atNMGS>8H$(If=z6g#*OS-moE)&+0Y;r17MbN>{ z@sL~sDhgsnmR&^vs;)2nobItdpgk208c;C@CT3MwaLn|Dyzeh))T?+D{u_sGDTE~h|^31}*i(7_U? zRLapI7V^p?FI@*@=Uz7egU)w700h#XbYGoEid66)G9i04&C@tIY(d4e`Ba1yby7?{ zcj6Iui5~$en>wu5((%U(ml3#}FX`8rZ z6}>sY{@LpJunlcN1tP@xo_{i_+6!M7k!78t?$9`>P>ViduK@>R+ELr~uTI5%nq@mgD0j|NhvHQ62`? z!HKwQ+tBCl`V>i3FGt#<8}h@#PFX(>FEBQl*}Q@XjZk3SqqNV=kDtlB&F20I?y2XP zO8+_E!v3-ox3V<0E9p&KpGpMSRKW!6TIBIw8V_bk+TwgpJl)LUXr*e$#;#w2eG$MS zM;a=kO|GUrw!fqY$U#O06!@2n4+2Tv)dMK$!I4md%8?3PmsAb-64%+@akP~ z3jqWb7Vt98s?Wz%DcY_#3c<73HHg9J#EzX4kYm?97D2>Ti)C$;NZ<~8Foa+y>3gbq z6v+R~oQr$Pq_9fbxv^ZYfCScos7(Uf(?ZZz3BTV6NNp#@3$!OE6#+Zq5_^&@b0q*j zhGBodoc^NdUD!{_tMyaTN6#U51qf7p(q&u+pyH#cKt1o!vEGtg5DGOaUU&sssGw+f z3l2p*#95wEt7aq3KxpIDZ+3mD1;1c)Mb2k!M&AaPJY#<2r}?2*oV3ns#-p)Q0DfH5$g_&_vj zM38_D0yPJ@7@!`OL38FwaA1x3fB+{I_{f9zwQju(t;5==0o9uhg@g1X2|mS|-+u-Z zNP=1`XILxq@BRBYN?UdNQCd2m<7%wgy%G>;#Dr0s%(vjZ^0O|L{wX3TdY(|il5+3d zzV3Sy$mH)gljq5=0ViYHlL*eg{A<_H5ulPpeYH&b=JTY$fyce`O5ghI>T@aS{5jgD z+s=n)9BbZ|=XJdq$WfkvP@Bd1v>n*<2*q0U4hGp<-^Ii7{zIj0-3#nZE6{bLtKa|E z9=%W)v1y!(O{;YS0HN)L-tRAx9TsXgO(4SS#Pm7hi9&p_tWguXOlr;r=AjIwVB?}= zLA_tuUrr;vC8)FU+(8DmRjql9iwU-q z|DP4L%w$~_!O3;ONa}8_s#T%?vgi&S#tc-%L48~IVib`0*s@$BjX|yGasw#7)Tl)# zU!WCU#7MX)hpH<6L@Id4@K;8*BlRd`Z2viukoaK%Ao{#c_tTf*Q=vW1F&|MRqx+~! z0Z)LQwOo;6 zNi`@vHrKDn9E%S_xEJYAQIjIqq2ThKut~3TTd{Ue=52m`sCzuK&Li?|@5l$&Ku5>( z%+HMwJ5vT)k~UMI*vb9k9jkVR02Q}n)ANWK(%+nWC&vkmPM>dun<#o+UylX=BDD-`L@nswJ}3%CYAi&@!Rp~0Wm=M#zD{MrAbMR`tgg0}MWEk7@5gn01_3#( z34>>FBfMGd>;xlaO`^e98Al? z=f-&gOhy`(E^8XnqyZ|dnW5iRmc5-PfWs!KMhJf={=PxM&#Vj(ymOT6cy1sX&s!#P zGaX7Rnjc%maEK5cK{xH-j{6K8qC9C zwO9HiTAQ*2ZpB&G_C=EtotKJNp{D6i-+H7U0ONb>Gk@@N-*>?AL-}s#1Pl?C$1eWv zYb}L&TAYfzU96A(e`hX5T5V_eC3btJSL+%&EVnFj9w39`lNhIP-FW>9HI9LvG#rc( zyL5c@$#kd$9@=!J5`D<2Q|Y)lLigxRjbFdI-WLciKL3bC9{i8|P(|)F%gCmE4P5X6 z^M|7-I5qml#hQnR;j(;ej#i|!C?go9^ATzHDMd=SZsvD7^ZY`*d{`U0(2ok=B3{-< z^a2P$1WjLhC2WJZou7D0$nBQs#Ez|hOixFLKG72gL>or{e(Zlk&dbZl8Ezgs;|KxWi z)l_ZE(g@HQzv|h+-;gLu1rOmusmlNmI=Xr-YTp z^Y_XK(t1g|iZ)Qm@P|pYDuc$HG#62gAaUpKm(L{khfNc|N2*Hi8+P2=xpX(A`*D5L zg%5SKxAyPI?>8qveH26j<6YeMN-<%J4)!Uq!2JL!ZWK_#_g~ut1s+ipbJHUMwd6xi zsMPjI{}90lzQr4f=mnf3H=DXUTjhMML@j^=_S3fXSppQO<%6~qDNksdk%G$fD6#rM zEhp}qa)sx@+CxZl1s8*mB1bV8t=JYur}sqWfCm4V?!B^Ll&tz`)`P%>Q2vVeW4J_=)Zyj(b zs2Hxbpt%l@d`zJcj9ue!h9lGe@A5Q*iZ&9F0flF6Tsrus1g#&_rFG&NA~<*ELG;}m zkG5o)#1O7;0Z7@-d5JM*6~Rd72EI)Fw=h0^8AiB0u7zMNE9$b{`o&=yyNqSAwUB6gGFlTNAZgsG`RjmXuh z!3)w#$JYB`KUN22)B*%}a_7KU!nHEzD6p@tPFj4Z^kz zAhyf-F_*nbxymY2q-u#**jFwOtMiObL=NvfFhHmtY9)+Rz;0QH{#WHXx2!IOc8r@% zeF}Q!7+K(SV~AM%lDvM{mqhKGvQhGgUl(s7h}w)&KmjIdUEJtM*wkf4Bsk^WoC%8B zO})_FuPtx8C1ArpiouOu7d(k;sXBI4oQOhpXA<(7ivxIgZK+RcAYrSm761WHF|HS0 zVS<4%0&UHosMULFpR{;g1WDi^OS9&}a*@6i(TJ!FO@*U;EV&o!>DcUjXB46yXpTi0 zE{jZv1b7ILF??$3ecU$a=Unk!W z6`=wgw2_qfOu?tf%MrPV^^9s9cC6Kri|}Q6TW-Ve5Q5SK zU25sueD@l?P@sXx1tOffo{CY6CQXYJDL6WAS{mkNlBd-O>WN&rh)6|5Pa!a|)knLx z)whn7b{XnX(dOn9)9l3Ia*kZUklMN=&x`DAq)SB#tXiEa8xagmr`@(W{eMr!jQy3? zzo?1ac^^b8YBIK_12cjlslZ-NgSzLD3r$OA+A;d)=yRoSrQrV@nLGFYZ7S4O6{QH{ zI3tWX6Oa0q3tB5e%|`$99~Cl1Y6Yl9Wm9IY6 zg{)Vhpn^HP$m?ZY3I!W4%K3gS$KA4gU?n7?a`p?ES3IGou1*K261Yr2z0CffZV^V)Z;aLwhD;d4yw z-Xoep`tzZ4Ct4+=TKLq4c$PAi_lt8xh3ZgW%HTpIA`)xE^U__MTUG6&;d8C|a}a}U zu0Qvvf)4zTec&D6!CJ3ThYT99PHez_JRGxXQ=D_Px`s&H6V}&2BF>%fJ-`fq7XX}N z3Gfl0>GJd}?8Ebnr*bLy7*nQdYk#cE{CCaoDT9-o5|z`K=4)oaboqlEUg)zoZGZ-g zB|@rp>YwFu^(b;La#~ad7EBG)t&64%7LmSdbGlM^&vIm=O^Twk;QA+|pj)5?Lsa9c zeQ!6qe;)27+LX9wwoBQ;0rEGLq_TrVd180%{eN}IU~4Nuiz@JB)sE`EN*qOG%N6lq*EALpch|h+=HZSihuewks#swgj-KkExw===XI0 z|4CLaAVK?dc>3-Q&pGCy6m_qMnqpQ}yeCiQ>RLn}t^M#11`Jj4iT!*4k%(!G_y4G6 z6-J5r7+bKOMOaROigoqaB}XP^l3~S6Vtu_#ODa$V83k<2*%)}J&ou{1$~G!RUEkrSY@c;1RK>K^r4 zGR`Ui?S6tZrvx&JN|XfRmOKT@pOq&y&xZokL#d~aQuq)d%7+DrU?1gEpeWw1Eo%d# zAx@CFkXI?m9^3h-D?xw(1qw7+4|;@S(SYgJ`xc_TM~|*~O#mu14-^gIk0J&tbp4NW z4FMY0!7o&Z-Os!ds#pWf99OOht^}60tF!H;buBSZ!{0Z(;maN>619IS)w7>h=R`+! z+oBL(+3^4y=;&^FsuL`#bie2TH~=L6ltTaLEVm@oQX*P`D%#O%{o?$JU&^tstTS)Z zo-&|d@jH4LHCh1=q$)fi^&vE#TAi67Wh;=#dD~ZQfP(^eC`2c&Sfk1}`*zQ3>E5sT zFlf_&M68ErIub?n-~12^2`M`GzvU?==N^f`U=e95AlWkAY3fHztMlmKQ15kLK*Bz; z&v7sehz}OB$`J_LhkTX`Sdhe%XjPHGtstmaue6LJRcB3j|4eJby>ak-H2kKA3!$`h zWNAt{WoXr>JQpJn%V`}`nYg^_1NI!PIG0r$_^+mO(2mPJ0fg`zNSo60td;AnmPpB} zrA^H%TY=C`Aaw3(Q}ZfVHK=IMahN{Oc~PcX^K-6sAh<^|8B@;Q%9zsDdPSrUvirIN z?4X6yrV@426`Zd6Go;&cM1v_(A)iaYO70HR^m?oC{m%FoQ`?__=Cw^XD!!3MEzT^J zkWK(Z0F}4Y!i!Ah)^|6*(}+Oc=oz&L5K%*nH%9oD4#aOIeWRsdfy^^=PDE_5 z4GcOvHVUY~Cpt6k*G+w&%2-5y$6ty(ZM1{gAioW0ad&7F6NVZ#!n?HHi*qlY6&YF9qd=r$EENidoLr4w z{5V7=vKQ>n}d{Wq&j6?c-EvKSv#%| zdo7#g|GYL6v!_nXydmNP1~n#3U>-J4{RB~T{ynObGJ-#mX{TpCSfXz>$ksYgJLq+Q zMa~2UYA_}&tx6s3h#C_?xjsmAY=stQe_^}V=JRLoHb~dOqoAies}QkrG(6$!Ui9wM z=}a;31XuvafsqJC0c!9tcCO|08Q%-J2@w@omPkiB_Q*oq!>Zr^ai4h{`AYGfuUajQ z<3B^v#yJry(er|rA$^?=l_MtjJV>2dtG>6ozJ)aPEcDliG%5T}{N5w2YQD@~kh-~U zya?cUX+AYom&)mNlae~citW?pxr@Z9E3QHt21dy!*|0YUQnk8@rh2BZ6Z$W0@YSnI5>_(A1)U*JIP~h=zB>0N#W5+B~kH;bqW7!8MF2*w6^Ute8 z?aG#X%Ja?)iZ+uXJ3=GlBBy^}7NHoiDl))%H63FyqQUJV3xcSw}1?GIn~V`2$zc2*Vml`6)#$%9JRRH88rq)-6sUt2q)+Z%Da- z1xYeve4uk4pii^ba^7Y}5;irV>I&QeFyIN8r6Vct1}QiN7wS2nPSlR=Km6~?4Le@H zVz(UsSpMF<6_3jlHck51T(6*lo)NW}e<1hWgMtR{UIi!!GU$O>D!SZAfnrW+R>YX+ zacq}4Mk@YYlAOKmn&Xg>UF`F5&%E%R{)L*;b79otvcgPXVNm2z2*?`(T)ZemZg|ZW z%xgw)@vnwX?rZA|0Vsl$h>lS0uB$y!=B-HKO~8}dcT9X*bKU;@7scxoKum1_ zql2n58(as_SSmK~5p zlw_@3Z*@3gRaQMJA|1{{AQX|A8o}>*Pq!db54fq?zU4_^=_(vt9=6t&GTGz7xmhKzL`-46fIC zsH;IWYSC-BMEX`6yTG!(+o*66aY_AmmfrdN{0jYl_ioq~$ClFbbvpb$^9 zRNFLhh}=SLl+;bcQW0@wvAtIoja51AiEJ)tyG2lO*Bvk+O-ok|oG~9mQQ`3qrM z>a|oKLydrfHHgq3+@7n0q36Nhv$P%n<7TO6bjNuZdu3VYxxAguM~B(ApeB>{okNdg z5sN+N4gSXX7TcZnhX55IasS3;*wLq=pJg4Wh+MG$)hT$6LF&He_g53SHL~%@9fj=w zqmIRn)w9~Ij@b3@UdI^ZTRim4hyV`vOPwqcj!`hiA<&rlp5Z8s|HrLKk<#;bNpe=w z_^NvUbzDatM&*S51gMaaw52M_(RW?0Us1+~1QocSnvcsKDP(r4)HzRW@9(z9L z_dOfFCl;{)zzF?qHi&mSdSZUG#+3Cd?wV&NR}-z9W|(?){%3jC?+MhMVv9EFXWf=- zj>9kwFOu4A>l}V6m04lop}H-MRz#6IkO4u=2B7%4c*M4>V?%+bTY}*IOHYqN$CwL4 z5p4XDA`uw;zbf+^t_Qzip2*jh>a^j20_yT%^!>d~=c=O$H{^|{F{~TMK*QWI&^WWY z71youbx=H2AAdgq0;D!EZGz{&CQ?DRG_~ZTC0Vz3aj~RDiA#;Hn^!rf#c;sLG#E&^M%I1?BI_kZ3j0&`HBxA@1qg^# zry3YwJyVRheXZ~%-X{(P&#wdba~st6mX3r0`>~~yAe|}v|A-Q36k^raA4?o3DT=^r zugY>WxL&q_=Biy6XUosID+)}%F!#)RzdQHt1L zUj>NV&UCi*^t;Ay66?s1(fPN-b8=XC7XXfuwx3&?9Dqrr!yS0BziH8u3PupP7C3fl z^;DR`Clb*)ay9gQIJ5ou?nQFoqDMRQT_mXIyQPtgYm(nJ_F1TEukWn#nfQh)kU&gh zUr?O#t>pKg5lRIIHzaCb==p!$Jo9hT^o{R3HKjIuXKb@RS{oL&F?XJ=0kpj8-x==# z%2MiV(YEqWULaJwQujQ`d&@us(^9pa{$Sq|CBD&azqj+DayJX;X&XTSzfu<}^tY2nyqmD>`C%MzJ#)YndW;=aK?4$qR9`;){u(55PqabM`oE;Y7ZJD#%R`d>l;!-Y`!hB_wb75C9&@NQq#g)0*=mR44y>N|VS%>{yE;r&>@hHtuG_ zuhX0N_QazS9B5G$2m97)IzfEZ!Tz)-XM$Vn{p({P1B*c+^Xw-DTwqYh2t&xi9*(|) zkq!mbB2IO%d2{$&Dzkc06pW|}bu^b!b)`vf`b&%he+rx@f&Z!qb@#!cs%3S zqasI*k`=!@O}%1@mdItQSXaF6Mi93n6)MuFbo-G$v3~wKwJ94blTg(wxH34V{(Vs+ zBiAfZ3;9~LT9537)l$K}nl?3+kU_puj;onQIW-WVJQSqDHvH3fy;k>TYSf}F?^_KS z@}KAqV5DOh!uNdtulk^vsZlp&zmGzg`$qo$_27*7<1j_?QyaffW4qJ)VD(K8U_oW6 zXvriIyP-t4b#XqlhYBmA?!}gEM@m!%6_F;TZ7{eO*sjaj3B;%~4DC6H+s{i1RILyt zC7K~#14E}Ti5In_?u!(ncPqAXS!z_MLhbaFq!-)s;l+;g zDRzAO;9Qle!5wX8mPxitKE4m8grf&Cch-I2|)b%D7DCl|VnW zoUN^2F?Y@^Q9A|{vWiq1UuGh>bmIk`KS%q#BNqOzjU1Gerwj~8zDac}=E74XZKsqe zxdhpATS3A4EJ;bW>q;sXaYT)vOA1s%-&$Kj{}vK**C)82H6cNLDfMOK3yEljbO9zV z0~HTbEF*&o82A)Wh0^(HY77qqRkzvbsMkXqDQ$AJLDT%rkjHz_159XC1Nz$8gQCZg zNVaa*xa-^CjrlNmUl`_9Q1Ktd)LOa#6>59(KYMD^VyR<+@UiYeG96N(o+XWO>x{iI zdgj-Q@HRlj?MeX(hDZhKR6Or~ZmPY~6SnEzGgOLIP;e_fFo;lm?O}Y4R1j2rT@}BR zj@s_@;x7)JU4RM@ucyY50F($Y5lIE`D1ebUZcHR#uU9ha4~`Kow9Yc-fX`+wiO zp8B`$`_uywaR3pZ;%pee1e;=`obSxiI<#=zfkhxPs8Cz=R4C?>(+&g`jl;uxkdA9h z*dZl_^$c1`(TP>TKI}L^q`>HTNo_imc~FschSoe6zfWL9?3g1Tyz2Z{!=QORrTMhP z>>yIdz!+&mt0kp~*E{!gBBmd4AkG0h(~AOT9LtLBmjMAlfbIc+kwFFQ!id|)Wj<|6 zGPDF0tJ--Or~uGewQFLZRRO42wezf`Hs(T(JEnK>GpsmaoY9SQi=wP{UirNG?gRA1 z_c{+K_nY71;;hldqylGYO(H-uUtbz zpS|9zup^Q&bp}w5w5^u&v>IkKREN*0f#Gb}X!d<)e{0sBZ0PT@pa28!;zmcO0pDc0 z1r~(`E%E+G%wpf5#j64;cn5E+_60x#K*bwNhPqLSK|mxzK?LgMkmt22bbM@jyY^ag zF~J)KDiE#sXi@f?Hr2nc=W1TOES!r?$s@Hb`B#I}hr$`ZGN+K*3j-OPXF*d&8-5z; z59*p1D!ctm2s934Z{g<9m$2{Qx$t*K-{t;xNt4FI7tpfDZ;aLdK5r~Bv8TakF2HzRH1mDhc>p*T3HGt zARHrpPrDGPG;%@5(+tuJi-CJSNSlQf+okEkF9#h{bT8>a0lzkx< zyX{j-#d5!8*;r6-=i8LGy;cos-U(|^sM^!1yj{pCPCAr|NJVSRGe0nOry#UWhi^6b z5$zG+Ppqc_V5ZmBH4f?&rJ9Iamr}!7IB<<>*MC03KoC&A9g(IkMe8}Q4W9bd!gG)+ zHo?I-&UNa?=SYDL_%BAk-#UJ9J`D14Z_ia&Ln~r_Pwpw`pZL>^oyUf}dG)e~}9S#w! z_4I7<*^6r4(_TvSEo5lNEF_j;tdGIyUR3*5f_T@jT3TZ_T<2XkxIX%}7KZp7J_8~Y z;Aimr(P+loo@r3}mh=7B7T|AOQhGl*AzJxb6x@3wIU35gN7ww|kb`#MZQYF&Nrgfk zq8Ix^TX)^tx=c!Ed#Og*ZC3P-vqz*NgABCyTNSZeBNddI{Wwgonsm4xgKgh9aA;Kl zvr+IP3aZ{7+Pvk9J#%u2I~BJ3u_%R3|FwjqI{G`LME$`y6)=*!Y3u3pQp&x(FGMP$ zpT;u!=O5Dk%rF@1|Ffw=6w{whrOC}7i%8I6t%Fe&4XSJ)R!aVXv1n^c5K1R_)rk#zzG2^@S;4* zd=H+f%L8V`A1(~ zcd5MEpnidCJ}r&wcGJ{2+&Z_I+fr2!kHvY(o)%2&^R=0wAv})R+ zWUd7Y-GN&{B4Ab+S+b66tBV46FRO~Ne@b_I!#r(Kmx9p>?Ie{)fhx67OHoj<>4Zjd zCJ?!J)dh!Q)1nf=s(4)`BB+NDgL;ijT(>`L551>p>U6h75~vVMmDo2@CkUdM3aVu6 z7?hBNt%dD2YehiESDbqNv^GkiMh~z8jpK3+fDc9^ezLj~P~XW_lk@R9k3^Pv zu0+Vf9u_HBc&-mC*;fo?Yf!N^GN)F1*^i_qA>$m&4X8krVl5H3qviwCnsSoTvGE)x z-HJyRbg<4y0@9FH`}(__bRs#{acqOjxQEs1u9tn#uOML}t*timj5Hi~0YZ+;_y69& z#Iel}&;7!w4UBUvMLfcShz27V!O6gOMr9D~z-eq z8?H3KY-Kq9q>%Cv-B@eVrq*34EYhSxB`nm!)=Na~iUW-dDyB&e`M@I+P>rgbKSe1m zixps>Q#@q6q^ZmbW-|pL{&Ax6eF}PX#zW*C@W=w4g zgW8;QREh#{0H_dO_hvMGO3(Ys94t%;O{rSulmV!CWhtbT<^EH14k+{8n(J?v_6n)+ zi|%KSSZF)`(drUOueFKbWC~D``-*Q$R6EOwi>KT^Hxl=@Z*L2+s_8cE!!+`KB4Z;= zf{MEdRNOVyC`S7a@r*ggg5oG)_fzyjtiA=RbL$c$Ztqz?9~HYFJ80M)xt|A?F#Xs8 z$Uiy3d)GJ?sAT~MCO!)}7c{1C&yP{mW`eYC%ErzFpXW)3t>XYgB%%;AuM?I|8p1j$ zO`X8Qh}`|G9t$_)I6dBuP0^0gbbEJf7rENj(cJKWd9E+bKJQONaM)snq$QmB6s?q4 zi6)E{HIYD;vsBP7uW!q}SKvcLX04nVzVE)7&(pb=CdW1@vgXhiJ4SJs0*hp;sMXQ3k~c>qK_FA)l) zJ%L970C2m6$SGThNQDs(lQ)cE`N;RJmxEXFDf!qs-#B#TLDr^4oZ@wfS7a_loR6I` zA`>Aen~muXS}FU`2N3F^eCsI^XK4_UqZIFwH?%HjmpK!(NPWs4`&`hj^%heqR{sy8 zbe0;OO3i7|V-MX^ygqdD{lW)1x|k#>(G~kFh(rKP)RLw!fB+qIV#`rke_2sCJr5;Q zSBrv^jC|ht&nW`%Ku-bE; zqBI}mZ@CU}jw@bh?=bN+$Ro-?d#s>eCV?Zm*YY>Qpe99mTBb|A<0q_sGv!VFv%m8Y zs(qW7Q*EKVEI$onJHn!Sd4F|kEXsaaW+dZH`k!DU3p!lZ9>Nf}xa!Z-Mpayoly0P_ z&R6V4q0+XX9!#A{EO;tHfT4ZCd*j=+)w{7x`;jbNp0~D-^YFH-N!G9X8i5eu%%_pi~3zxODH0*f7C+BCsM z@G7!_Td|wY6?>83U5{_tJdIg1wQ*Q3h?lMZOZgOe>^M3$E|d$M*ZMh=(Y?f9(D8_s7FCL7k@9`ImcjEJ!E!#mXpKs<7Qxw z2nDpQLGlW@I;cBQd4izg+j8u^VG#bb&mmgft_|KTIWteo|IO7c!tOSyS9^kZ#I`M| zhiAJ24r+IN`A(7civ}Fxvib)w@vKzWM&nN+9vXk`95fWJk&3JoqFyNSD+nh3Rgo@a z$CW#;yu4+Si5j7JW5mM<<^xRJOnJqx%|l1_1eKH6wIags+PM?}5>q2ZBaJ}+)+N-N z*hxoZ0^R?ZdOh`=)(24WFGlj*=;*yvK*7`rJs&}ZR?DV`bk${GSB+0mM;d7J1M35? zLs6$IO)Yz@oahyfQr?g*TH#1O7=Y6OAx+K%HSW7 z3#}x6Y-(03w(q1nmq;NaH-kV)KQF$URsTL#yB1g>eM~G}s#VY8??=Fg$Oe8d@G_!4 zNbJv4D)CwvTskbD<46$Az%lF2@yL;k;A0$`LfP7aq>Ago^HG~RheM6}QK5pCK?Rl% z{JjsLP7#FmebaZ7fFElBG4wsAlYrLcn-m!=l=(WPjq#zzOwR#kBCrAdTGy&>s- zPWKj|;)TuYIz}yiDeq|JT!6@}&MEC%ek#)C=$AeSc@|RoCNbw2zBSmMWMk31-v~1V z?)sLTI!u|_oOY~6F6NLor%MQnlDME!YdXdLTo=)D?`;4ZVR|EH%D@0|rrZJF_$C2`h2m_-X z20oZMgB|AzEoVija(;r6FGzCsvjr9<1uB6C$>i#suGCdejQyaq zJ72hr-cwJ3QiF%)Y0>qLMprwg#a=;0NXl*(FA$ZVP_N>S;J7;lcu;Fx8+=I1A_q1{ zEk64CNP`OPb2X@nuoxaXDDAfX^a)M{O*=i+XV+_}0@SN!`-XuRh%lbHwCw9j#O`@7J$-Qenc#dk;tH}fY-mbGIlz)|SA3?$fIXM)S zjs-x1+=WPQ!ncQkI|kS1J`i8_&&5c9zCDaAFx4n~^YyqKiO_HN#P=5o-UWV>i61*D z+v7aP-D=v8;6#!gmunxV^S}Zaop_qoi6~fE_H$%%`2ZO!8QQBdSg(NJAo8Qt>T?o7BR2R4YoP!mWGKmDLP6BCo~l*M^-OKTioVa|v~;fG@U{JN$$@N1O=@nvNL9MP#(IosG$jeDLoH)J z)v(~-7igdThia=EN+xGJ8Z2p1iQrwrP)UaN(jR$b+h{t}*zs7uFq=T>+-X&-6$+sm0n@MGm#Jf8*fd7A4asszDlutYL-R#-9_sS>Nx$Ww^*dEz} z{oju~&sj@cttDt@%Vcett4kq8now0mmgH9dq3|gJRAgdykO;TTo2EIy;YoW{)pgL$ zG05Ame0@~OR-2Ye*?QhhPkH+D#B8-tp^tfX_-i6v)aAVuW3Z=FZ+&cWMsLFF*B z_Dt;wtu4|t04z|@?!Zz#R!i}^NROgU4oR-q7vCeRA`^@tEvil@VeUG7!s`wwjtb$H z%Mpo)lo`so;#$&0+6o`eFmDISI?9INnBfxI~k7CwjtK*I{z)w zv0Oj#@8G1||EdF-)fC-$FVcr174AIX66W}Qu1FBqDRuk4I2{=M04cuxd~G@vK|@Yu z!#<2yt@W(`5h-)(hFH@I5lvbcSr>dNGpC2&=DIzz*DTHKpo=QtB9ujrw*&Jb!aSBT z74Mzjdk4}t$l!}obDv^RPXPwV(n2W;ZGslTyCoY7YzwYQfQ_~0nbh@kT?Ej$KAfZL z*; z;}I2**_E9Oq;qqO5}6kMe>rwm{${>BYyKC4g#sF6q#gSdnY-OjoyxO@2U00HrAS2K z;imZlLXs0Yr{+s5KBW76A?i?{EwE^Hf6EV@fW_Ryk}E7GP*FW3@|WkkjXh-THn&nv zK1WJs4SZTrbHdcpLyhr-`)v+R|ynVNLW0?NLoKjt@jVWtd)YsoG zb5Z3~VFNV6=Yhr@QAycvigzh@1W~6VI2O-4b|~yzK9pQs1sE4y1{C+bs|rIcisUq58HM4_PvC-+B=9CE0aLAd&ZgaUBV+C#A+j zToe2W)Cj0+PjG8Zrahng{p(a0O@&z;27yO{s@5DNvc7^Ehp&067J2vqF6syjpv3zI zSV)p(o#!<~1OTQ$Vznoz$abP|-si$FK)*~GYC*`e(CJABz69pqr~RYWg@OrxLk8G_&aJ83Z!p<6@u1)s?wYTaAHlO*y7>by}gwnb5orxb27l&AmG;P zjn%_2If;Ji63hWmf`gGG8(~`QUe|31QBP3j=(~fms~95gPfaCNXx&VMd8-H3RKXZ2_h39aX(E* zqL{3%4=!VHFVGL)?S6EJo~BH(o)piZpd*X4fW!@l;ryKj4-?h6ANGGIKP>#cJihol zd9d)!06>(}$s)YFlIvPLWYvn2eS!H=PH6@U#p+1LjH^fZ6+|3=@p!G`RG4KYscv>r z3H!ABv+96^*w0_07WF0BXA3N7W5r0SC`SH>Nm8tR$i~1$71c=6vtz(x?m^5~0D(Y$ zzm+QQuWz?;I7%4Qi)&A+lwUMfPkk zQgLDf6t(XwFUZ&OctI5^?t9o3jT)|-qZo`<@Ooo;o$%~{VZr4rB?}-SLbVOhv?KhS zqZCU+Xj&U~Y@w&=wnr+ScO+)hGN2%c$YgEG7V5nEz=rd5+PS@JI;4-yXVMNd(-Add z5s?bDnyknQwFDLF;Uj0_OqgzPUH&NhMK(6aC-&{zYH5~rHSA2#CXXTp=e1(TQo|PH@}hh3#M*T+!1DK!GB3xyA&PcGkKpm1HQ=TOjWm+=+KW67gCW14C4* zMuq4+uw)d1gUcXcuR8F^gI$7*3`piJNZHvlo(bCIBOJOC(}@q<%eRue`?&6;J1Kje z6baZ^Mg(EG4A3XT_LI5atG!l+DgYw@J0}f@iR;w~RT>4kK3pg6EY8FE05KB>Ir9Lb zzC#^opOi=s(z#Ha?>NcQg5-_}kofnznt;Y}iFinfTxfa}3-(P@alTwfgUa^9h4Zl@qOT>Vj3+`+C zUs51>jF>%Zq-musDbUTAI*?CU;{fMaQ@#-Uyvf@lMJCpM94|T|x%y#JjmkWUF|v;B z(*lkLoaFs{Mc+PDzO5^ZIIa^s)SblkjKnaRDH5Yg`_A3Up^3^kf)fxlbM4I zrZ_PLYG-Ijcbb9VZZoBk#Qo3-+LWLBuH;>^$X$@bnA552e@xXs@0aKV_hV{Q$jz!& zw>Fd^ZHr|!G@5%N4k@ztX1PQs_WX0*DXLH5b$V`%KS0GZTNhG+ItaKZz~g80RsksF zB1+UdSC3W>i|aMETv}E;1FZ&Ihut%%$V6?mO^Im4t7gFWx=6t4^iKs;==auJAj^q;r{Xbqb}2LHehky6AD>Q)rtr7UgcSdb5K?7v4{ReagMcbz9F)Zh2qfCfQDq(m_l zDo4U_jtnT)`u7QJ#61A;9!gy-kx%(~k*S5L=)k13h2m{6A{taan-*DGecvgB% zm`0>96S}AAFHGNO#45mf+7JphyzT0U<=biw+^g$$4;mrWh-WUgc~lJ;BPmnUp{6c> z&Bz22p>C8UPZg!mbqWw(SJix?dbb+bXIfNr!NA2YMQM-KF18F{Y}n^`Det^;Hw@9{ z4_-izDX*K>7raPq_zRC(+$!l&01g>c+%9QRQL+2E^*>m;Q}(Qh+>}dat))GaP1ogT zLm#*&*n|D=L>3JI{DVufv+w)|2N@YusI@%EY?0!OS{4&0aYujuy>OZPA?x9BPXQPb zxCttBgt8?ll$Wgr6|{%KRHzWAnfd;Y`jkRm)~hK{_`O)cx{hm{-x>fyI^=#NzN@A= zaoni$S^TGDm8A4}f{IMG&gW0}BYDi}D~q^KI;bz)UFZGE7i6C|dE0+vrZ|z2Pewm~ z(3Yjo`TRg-=~-;$$gE$qYz|mHPxlwEoT77V%N_3gL^69#kkkS@}!SSp5J?;1&@cy)!i?i5qLrl z(>;Fc^GY()0(c1RqGkoox9w4kJ=>oR=62#$Q2FV-g^6_?>r*Ij0JNZI2!w4ZX;6@r z4bt5&COHVw-LE7-1nfo1uiYAk+!x)4q5_3=;=Bp~3V6RhdaVjn>So9G$~!ey$Bs%A z(sY<4Wvfy9{j3bU_xm@3P8W44upZqtq7%BFU_!kvJI{dX*nJ^k=Yb}2{cE+N9FYhz^QtR4 zO{zgE&vhZ8l!TNd46?)9p9lB^6o@>~IH*4{ay8PC#Me!Hos_ej`0IB zm8Dj@i?ojjlcPevO1JU%&Y%HcvhQm3D3G`TRJlKvd5(9f9txgg0$r$*VOw3GaXtNy zxpn*8hax2^vF{bU3C|T!A0!UOfrAW25Gm(O^{AXi<=>a_FE;E=KS<&Q8-DlTT>xOf zB|(1HS!q+QS>20k9>>t_IT`A@AoUXW4{)()5eX^Mvzns)Bm2lN|S^ZGY`` ze%=|^;#H@AW2MjMG%`(}j0 z_sSyM=g#5K{^?Hn`;frJ?KFSK0mvQux842gDuS?G&V47|t3FbsP%jD&zPq-p>B!m- zKQW%;-R`jTCwHxG1qt1djE5ufNlJCj{l9{VAZ_n@VclI{lAdamFRk)+C{wC&e6r(; zP;it!DzdXIn8&dZ6*4o}U^xtPB9z)^{b6#-Qw17C%8xrru5NUPE7G^5 zs72;vH0Q=?x=W6C=->~cuEWF12eKpQf>8>QD#+LV!xoKTKoROmm+}z}N@yPAmU&=I zgP~O5*6lkYB^=3=s0Z?BVLA_frPTmCQU&E!>He(1GIfKDnT7> zT?f+k)BfA$*;A#9e?NePy+lykOWU_)yNJ!||F;cLJd-ht%BOdRA^o$CUZco&4WgYE zLAq*HRka}ory^HQ{n;yNBmF7Tp>+GRVVOkjZ;(q`NZXlHK|rDFwNslw)t>g}GMd+{vkznPf_fm2OGqmIOUo;hi)xo$S|$u;$3JxO-9^#m@fZml`*?>utB`UEvWH^{hZ zlz~02>Qsmmr;ihHnuAgPAF&7$hXE!?x>keg(Rm?ZD|h0!8rbvrg+hYH02^Rp;yi_k z1B*H>X$jZ0^DH#)^^$+ClWPAHE#Ot{r{`Tu`{_0HTuTPnPv}svYvk0Pn*9;i%%AOp zpGTMVT=R)tlLBv|I(NRm*z?3A9SeR>+3K{TRmt@>T5`PFg7Y*YQK}}nzfUA>q)Z+6 z0T8JKCibixkJQZ&=T=;n3I!g;x+y{(+Hx|I)_0c7K`SnxaO*I`@(A8 zOryGLk=ASg87!0sr8~WT5W3s;QBwULkhuB#ZhCbea4)VV5HMDmyEYQKZ#k#{myU{n z;!*5hSxVF`lO>l?yKO2`%R~S2Q&No5=*Ej7dhzShf1#!lO{4IU;=5O3^|~(eFVqMo zRJQ$vsUbeCDs%rRsB59?mIOQt3ak7$@;tI1hf$d2qyUPs`c`A(h_D?&L0&OZH>z{* zYW<5s?4}A71!p*Zsneon63$fx62I@}T(VM9LORS7L|lG?MUyj3_B5A{`E5Ca=l*FqpO3-7_M z%|GgLW1t0Y4gfyNcN(csf2y7lf{KYnEAS^N)d|J&z@s3S;ztJ+l$HH<1km0wP{H|a z^T=o=(rrPbDh?{tZYQEPkI2SKs2>be+%6&L59zw^O+N6pbq>m{c<=lQq&-R6AD%0C ztPqVrk(p5I9Kuvw`-LG1+7%^s4B1Qijvz`Rzj z-R~F6Z^+aF7(qr(MaY@Z*Syom{569Xkf3~5N@r~tyx8#6CxsUQ5T+^OK)Fi}dZu%p zPz4mo!=h)$fl^ysQE z&mKSmMden_`>cN#me0Rd)R?kAoYk%mCF)E>%?Z|#AgBl+v7DkB7fz&B!=M@|Of?^Z zKm(v6rzA~m;C|A>D-V#dG=Kt3tpc!pk4qjMS#q@|Mi98~LfH=hU_~-Oz-QG6#<`tS z`BjKT@c4^#4cZle`2s4GC$R*;D4a@~M`UBtG19Uuh}bNr6tL@QUdp$S3Dy(;eUJTn zT@|WE<>GoO+k4^lF%V?}Jmfx%VDb4uBm))FBZX?!!RV1cTWt;V02}dq($+kZga{jq zZvy~yofa4s?iwckt#(v?#`VoSbk1k6KdoECpBB%(S z-z`tcg)xEwV_NTRm!jRawR>rwJ?|4)HT!9|SJH#;mde~}>}!8x^LMRp&T5Tn_YG)Z zKXNW26{_ZBsjKlj+xLMWV)3AiA9VXcscn(JNiOeLJ&T9cI@aF`*?b+_MASm9&g+=D zLsrrnS|@Q7#$Ww>0cF8BjpIZ9YsYvzhaXV9(GEwC6P-eeF_6)MTaO+5Uh$Ca}0{s81~)*P22r94$6p>B2&=N|=}y&qEuKr@eG zaMM`+Aj5xLt1sGplaZZONWMn(k0fMg9~CdbqnsR-3}9l%q7u6Nz?uyhQlTD8?Wv%L z-XKa7%29tMuDw&%RL0ALeroYlQ(8hpoS5oZ9)rpZOEjc-H{ex z08nU=qVq1iMJ$4+WIR;T{>35*x6K=c8WprH<5;k}`IG(sQgR*FT;Wx1W9Zy;`q9I@ zVgy23O*~|ciU1g){Ud zramzb8fgu9uM}Lo@j*wZ&2UhqQyqL9bWom={-B9kXmPs}f4^QB6*OT)s-eCLJ?pBvaXr`!1SOxMJdi5gL9-4 zshtkf({lWzL^C)TKXL#O+W;_5{d#e(kg>&idEY0t&r(WZTJi0f*P%dU(fgTG3DqkC z9s(CeL{9v3O#FKS+54mqYB&?GBErM(CkpnFP`}zUU5e}qt%1SccqLUhMNBgs+Xbf z)TFevT7YkTfqWzd^e4jFFb575f>%MgXQ)RV^!eW4Fc2%Y$M+vmOVqyzx#LyM%$*V#>1#x9%?MJ$3l8%eh+UX3g+qhfEeIjNaLJQ+iaH4L`qt!I(mMw z2=Yx;04#t2?KmSBFD0i)siR2r8Ej_I+Q5_=#oFIYSkj;e7(y$dKq-E{GgKbABo zL@YQ@2bl6KRDyQT&af@0&$Q>gBaBm|Drx%gQ}0tlE$R<*MfG3+6DVwp+EU>lJSqJ; zYhIxL*YN=*Y7cyjzz7CJV5a88{B3!Uc1xkW-NI>kDD(EHnxB;jhFW&Jj%9eL>7ae4 z`ODRpX=)dAXTHf7&=9oj7FRrstnsYNW7{z25E}RW7 z^6tV`Q`r(ZjXM&$(f}E{?YDzh;h$WKTET?Q|90qH9(w};js^dx@XJVvMu3-L8Waiink}&>%D1z)9CSeR??W- zdKI zMVPGSlnv@K(;m6o2mbxk>Q1Pbt?wFquB=Isv&O0BKN)R@4$FS5J(1-*d4^m^qV)!6 zxzOb@xLdRHT^R<1=S4k;nnJ5K*hG3vElavmI{QiYKBeH~b051}k*;UjQ?ALd?1kV$ zg0-y%F`ib$?HF`VN?H;I=Mx{C14yj+{&h-~lx?SW+{&=6bA_lC!F)fgJGJ}zV37}= zXT{d@K2H6*l#IQQ+!>wB|5lYMCr2$*H8k=! zHg8$N7eI8Z>y&28KoJ!RWpXY*UQn0or z2JM=sOOf#1D%M4sXDmZODp$Ec^fn0GSx1kN3~hT^-{LEG^n8`lRI@Tvs}z-MT!=tB z>TTlSQ8iGfSCd4!I;wR0H(rSw^QhY0n)X*(q5CJ9m$y|@aG~4_C`WCJl=LV#+jb@RFq{$GrC8Pc2pI2S3M{T9mHQ{{IJ?2iS=ER*!}1l3E{2rDq@e zI;2B^(9Q7(?}lVr+Ob(4)6J#1H(e6} zNao)1__;A(PM>O3qHUdDB#=N5-dk=r1$#9mW6G zC3qQFX`9A8%CV^=jz!e52#dma2)m9yW2{pFKE-x7FQq5aHllg^doL;!h8h)FHyn+6 zEdvM@DCshw_}LXcR1pdtNS$|E7sFFybOHb)is7MSVuwXO#iE0XS{e~y`e_0eEOPfI zeJUU!35W>xfhwFTBfBO$+_pnFZ;mlybOf%P%kP~TsW|}@Cw%` zx^~>>3fSk>pcLy7O{fR6^E?5O;7wov9yKFs#ilr?c)Ae=>tX|QMh{M8MWS{^jsS2l zk3BGSk3qi_V4~CdxHuNz0QY)iQG^x>td#kpZCbkj0;0ytfCMA-= z@2-YoEzpRX8swztcQ?kx$mf7;Eg&SNb+4pj_&nt0I0v31a&r*%!r8K1ty-2X&Vaa; zqvadGx)xM}BLCt%&2#^2|Si)y|jR$HKbI6m9>#L7vnsx zc|#k8HVfqL{i@CdWGf(2q3NI4!d6kMb!&SH5b<$nU$1&?i`NBMY?jEdlr;)AQ1b$Y z_PPZcD0a%47qlRGlXJlcH~SL>04%in%iR0V`W8`&X!xCklQnsdS4ur4@I{1F{^RsXM(fiDQQ|=W-^)wwS7rsR$Zq&U9U;$?&#}Eo4erv_@ z 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

d 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%0D?T`aOAB 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 z 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%0D4^{28 zJJB>5K3;p&maiA2$ofZ-ls@e zl#@)w&xrCLJD^_6&5B|e=^XK}c-c842uru@*GfCNnvOx>%4(SQVwoo=)_o2h9zLNV zVJuyv7j*hk;`Uw=HNvCS!}?P4J~?#|?EC*i8#iBa@n`lySGqvB#3aa z9K5R&&QnY@HjZ{oj%IkpHBp%I!LSP*t0gnTT=tivSaV@s01H{fOTmq-YgWJt9#sZd zU2UB9lxo;jbwbM|=%<_kj(W9Ihu*L5nQqb7q;Jc;LUajo@DQx%6i66H1Z!L0qcI)F zyt^)+VfDHOa?V0?z#187FbQbnaCt#fi)`J&!_UivsYHs8&fdod;y15Vp^R=&|jH%Z^3G7d29`Mr3@;S6qd)xqpK6PG^cF;0Yn8#o|0GD zI+fmQuf{&p53?@4NS9Im+V@My$}PHJ4(D)ng3yLN|D`xNrk{Tn-x)sgeOo39p_Q?S z)dfAS)tBD^k$Aiygn=BaG4&_i^a()EX6IJSndRIqZ$CUY0E<9$zt@-yJU^&izqZq* zgQmSiE#FIhhPm-jS&Ls*e#G;&3`)&siidz(3)TBVf?o@A?06k4_r4X5WlPaty0Y(5 z5Tjyf!_yo3?H!(M3*Fy(>BHLhMk*m}v)2CufE|-}23kB`Fk!8s0+rsY1QQ}HV$6n=6GXdKYK4mZ-W6Px7Fe*T)-2`0I3BLs>!tUY1U%y=&f%(qvREs3bw;sc9GEh7!!-U6 z+a0J8KB`4Aj39y$Ii050A481xLqw|KtWam6F2Eq3VIa(qx`8gT_ZWipgu_f2gPa=+ zz=e4{9wyhx+pUlkt1CE%t9oz?4RYtJ?JTKn7!bXAk8;%jqNJ>2s@ z=bn4c-g~Y!*IX50)-{3nyMio4w{UDI5?)COn5eNuz=g=x%PDsYcDqGy+G-k+b(^OA zdlbny-^$t2#;PaxYOS@U9;6qOBH{gf%yU-I_=Thx^dLtU)FY)bu91JOIa>r*nk1`@ zt~SbR&AYOd3mbdQEp5703Vx^gdzg*~YfH^;2hhdOwIr0W7B>?pEAe;R&3~jvINib( z34QN9%k5gJ4^cE(*hzK}$*KvkG_s}Zk(abwbh=(=>%iunI_Ta;04~x>CKdtfHJ?>h zH(YA&8$>b6gl>Q-(g$hq@Uk}7p(T3{^YM%b$QM*Sw0;po#attfAMl_rFTfE?8g6 z@)bJYot*rDyhEE*<2RX4N{S$kH8i?2R0y&4Vggc~^rzbZUQN@!UKpOvtWgFvpaem3q}yb4irgLXbV8`+>r*JuCY1wWhaJivN=w&r(wsO1J5^%Nm;K<4;-tZ%5Yr z?=&{h&!}K5>9;#qzf}lvNm4}CPozFbrA}Z9cxm32iesEf4q||;i}t5=w&-wPN_4{8 zh4lM+`gbeUDz*C^t_5SO&zS(3j=OHzn%6C&byXmmq4QUuP+Tz~guv@c23?s-n1NPV z)EEHkMxLkS`?;h}cq6I)ZB%0Ag)sIUSPic0bo%RVc^n&3UefUfAEPiH1irXqB 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

0eY`uzT;?|g|Atmhz`qq;- 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/disconnect.png b/BLE_EXAMPLE/src/main/res/drawable/disconnect.png new file mode 100644 index 0000000000000000000000000000000000000000..4ef9d94900f81885f737f6bc0b9165fb5c1593a3 GIT binary patch literal 408249 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 z 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�>YZTXWB34hBx2`{I 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 -{- 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 Hqaa(N*x;Sa9 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 z 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

#t?@P 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

5q-tWves43&b8Txb;}-s>-AD* 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 z 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%0DtM0Gs-mHP8+ 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 z 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⪻J1Xczu5bEp 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 Al>h($ literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/edit_text_foreground.xml b/BLE_EXAMPLE/src/main/res/drawable/edit_text_foreground.xml new file mode 100644 index 000000000..ef39aa7ae --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/edit_text_foreground.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable/extended_bolus.png b/BLE_EXAMPLE/src/main/res/drawable/extended_bolus.png new file mode 100644 index 0000000000000000000000000000000000000000..8b009763a512896d2d3913b823e885d0dda9b7cd GIT binary patch literal 3181 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

D z)sCjsiCDkF;+~Ju8>a*w{2&ysa`~x+K9xrBPN0#@-d)3L;YQ%_;c$Ylg?OVJtab?- zb>tyf?Ep?ejtcM!sIUf?UA1W)7}&swBbB5pYgv(X9<8!0_2UN5iK(!*s#40Du`g>d zva)h$Z^`>6KzpC<7KcusEF|b@_>|LI*%%a@TQ@SKg=&Dl=^{|Bz)1|wq(FwxuN(q6 zNqu`w@8d`f%iTWP6}WUJQ@_v8%g|EV=^;EN4UEC|st-qSXw;5e{kQ-9d2!>p-P+l! zvqvHQ1+1^m*$t@0z9q>wAN~EQ#M2rvbG~8wh9+nDMrOuhgW~C~FZWa%^XohMuS6h#inXcq?W z0OhScr&sGj@wSVjoZ)ab_Q$Vv(q&-|+AdT4wV*Ecy5d`!ic2E0?&A->_2-a2g%u%`8qu|0RefN)$!%V2o25XqdZ$ z1V_bi%{fl;DPfc-F&YI`kC!#;eOV=E$7vBY>3Ov_bV>5IY+I_>M;gJ0tOYIrCKp#P zi&B+hCggBg8?p^{v{~P&Ev=l8TWMhL)@P!weIbl7exqev^33B_$9Ry<$q^KwXV64e zqFs)289C|2-=c$qgEM2vUW(6zg_o6!N!Zkl(7Q@4NFLd}+gFF?)`k_sr-&h;%6Rz5 z%+kDrlo@2Of`7UrmLs<42e07Uo>As#l{?*%2Vcz1{^`6HGdu2ze+1li70Rnib|4k% z?6Wt?rk!|JrDI2@X|`+m(Lv*U6|)4-zYelegvUJ;2>u<@n#6ZzDXQ?Q^!s8tg7&sO zf-gRK730{#eyNxM`f+un8NQMUbC1Z(R~`PgwU(4ypo!U>Ax^KWvlo-AEi5eD2Y$YB z|NoJ_&DV~rKKQMR5ga$RU;R#}nqW9Qw(5WS@ZK}gY!hU!PY8SHsTli+;ienO@9zYQ z75U%I17mUyW|FF(3zF`-a@ux?cScF3_Ql!TKIG~BPAlTVNyK?IniNqlP1OC=soccu z;zaPZW&-t4`ap@C>-vU4(KCwMhEJPWhBi!{XT3;(dxOTvtnM3Sl5Fo&wS-vrD z=g-bsoHSppsCO&asD#HnWrJc;zK6ld%!t>$y17Dd^-0&K_MN_O4$plUwOB)NzUAeH z+gq)qG_h`%xN(#M@(*S=@ZC#{G6>6b#fBv>j?i$&TW z;kq1DfPF3>Y=CuGGPM}PGEP!j_IYt<0xL9;ksC5-<+*AWc;UkUZ+hd|^(jIuAu1ub zXQ0V7uRr8J@3r%TN0ifD8vmmDT&qHcv*X6m{$kqplBxo1u$6$qkh#}8Jg?BclgyDr zEEswU^r}}(ACQO2$Dn9XB`;LDS{aQTHe(-VHAfT%63of&%)b;tUyLsY>{>3xCgv~b zYF<1bT&$;G?1O6ZIorhE*|tSwrReiaiYMaEgCalCXUA-7%LmG|2qS|+sG8SkRbpM` zFu&SIs`8G?;8@>N;F*Cd((9^a(*AI2K2|PAH=X!=6misWF406ZwpL+i5KM>#Fyn$$5xiufSSX;a7+dzMyueqVSb|! zIr+>2eOl1Ad6i9`V^u!$z5FC;;M8G9Y!k}GtOo0-YemSjVs)*v>N%DHHN!JQGo;t% zp$lhNo)$?>jcMJn-0}UfaY7pOyW=OR)EKt-R28FIho#@a-pa2F0X*cad?y`UpVm7)CX~zQ88e$ zurTv`(Vb_yD~l6^syco%D^pNg#O%#~ZN`&7Hqhwi9j$u*L1wO6q}Lg-nFGi#HIgBw zc5ZkXI-ID4P|ww;zZx?)H^1~w$zI}DkOmqrUxQ3hJRAQ$-7K7lpJ4(z&Dod`j^PkC zxAjH;3PD}dU)XoFW86vxLNG~}%2k%vo;U9bHwp)!`9f+X0Ku=W$Sf>r&}U2%F{_P` zy8h@;*`Vd-?(XjI`dVSh>JGLoG&cZjgG0V}F-dtuKQUK5=xsmLY(=IZ$QSi8xb*(q zOJE*$~jNw1SiGzwnUsOEZscA>Qq5?+}xioCznyc%mL#$seq)Ys@*QDy`jM@{O3=oD{z=p8g

Fv-~$N-{_Fdj`1>^hT$!#;wRIqH?AqjIZ@Y=hO!3fkL2Y-(pIcXZ$78-^-wl4orCrtggAAgBsWf5ZQY|!kk-%9VOYzTEYiUK1LuOlNVYrO zM=A;eF8uV(S}Bp&V1Kr6LJBuVHC*!ffWsxp!y6)Z5nklh&r1aCi*4MWea8-%-&8geW1_&u z2HNsa7&~xFd~=BP_4s7a3dROqFhtfjTuBg)Z$f>Iji)CkA0)v|_*BmV*(t-6^y2Ou zO;O_J=MU)X40xaEnG^C7Tw=wto5m9OR1m;q~=jv53+|=bXSom%2hUFSoq$8ntV6&?7SaPo>OB6>lo{ z%dT62M!(a8noA)q!*?D#R(Kx1OmF86DnrS2W^LT>T${MZUjKpQ<)2uEoqNw& z0&m12Vm6-Ni1QLUv|1ltclE59cF?5?H4-2}G{rrMp`qoZa`k9MQYFbpsI<%%xsiva zT)+K|7&c#?Zgn`!&v89)JpeQnqNXcLC7}>cJjk0_MHKJ-Jr9*LS@-<^?b?rdMY{KU+s+?W*vF~kk1BNytZxN z!6b5$r)oRt42WCJhpYdp9zr|{*Ba?&--H*Ye{Je21*gmF=GWjbG93eOY`(Xusc)i^ zjcq9G?;D?AgIXPY%TPw8-U#%L&xltw*&iq=Pp~pWY@VK;Dg!uD4H873Hu0}a;x|{p zP{Dq){-n=~-<%tF+{#bOWlE;4xY*lgRP9G^1PV?}Jb==3jZgmjws-P<@##IMHVApY zu0nL>aOk1){<;sF`;3qHX(y>!*x2epCS#Q%*-DN-J@`=*`}W_~3AMPg|HC&32Mz-x z?vpvOf`QOqdMm&{AfKwMU}ngcox-~D`2>49S?s#C+z;FmHnJ!{uv6*{X8OcTv!!2= z@3Nzd4bpD%2Cc~YNI`i1)nCc$NF$0V!zYJ6uIfATh4-rI?~I|-1#}plbL8rgC^@^~ zlOf*w5-|DMfVZ-t4zc7fs2$xnz0L+$bDP-u4$Hovi<)MKVhjHOE97j>#(~QxGu-Rm zxmN4C1N?r6`x&^q;xFIQ6NNqLINra%`=G3>0884c zE^WYE#*UWpiuU+unb3$>dxMYblyvHx^s(T!(_r79x0nfPX^!RP22g(BgFelP8|+F!vIaV9T4B)6L%+#gI=m0zXy zCh|kSO2_hfRb+~5QRBvAB^MsLrv_iQV>F*Cg(B>JuCgmprF@iFk)+d zT-#Uih{4QH1*^u6|- zfZ1&-V7CW`D(Q|pAohyOQRj%=Um}Fh<wz*Cb-x1 z&?86Za^`XMi*nM`U`-7R$MTRC5^*(8wck|J>3nHVN=#3xY%M5JPP2C3(&u^Z3AYyo zZARud5r5ps#deqPZ&YkWG(K0l~$$i-7DxMg_xcHZvNy@zX5BR|(*$aPVgJO%S zRnLfiAxOCpnb^8G%iEl|&M*|bn;jyCazySnnZQkIEtm2V6T{z6zno^58u!kQ?_51t zf7Ab++tA?c(}iSAb3gy>=H;#Ex%R5-Pkxv(5S5E*C6C60Q2xI`hLcNmLwQV?w7zPv zoZRbhsLQ=UL!ZZKVi$My*Hz+Vf;q=u;k@W=FBLo2UQY(dx;~>j5nlv_w8T@y!8_?B z86xMY9^BII9i8lM{IpJUlz4x3J@e5VUM5}Z)`qz>I$_q8i*ZA*@WXl0hhK4q$r1E% zJ}K{3(Z3|#gi1-c^IjEyO$5NOHIJfAOa%W~lD#_c%Fpbzlkhl`G_H(u?jIe5bc*h@ z6E&Pa*B>?gB8v}L9UphPLHEXep~V9kZF8?%h_%^0{x}to|JqE2+R*t*Z#k*^$nk2+ z6AdnohmDLCdnN{;+jpIGnw^k8+P!>p3CUgQfgHUkjc;{9^kTDn&L)4>lj30WBnZOi zpW@69#oli$*N!};Goxg2HQqHb$jVnOocL_Wa5WSiv5?XJ`8`6p;_CLGdkc$(C?nu< zB%HTOf@icQrQ%|K2=$sAf28z7?~TstQR{DsFhg%iwlGtfpb(2JNhSA$m=77Rua7Hd zH~vxL=jDS`*^IFxN?rfPkt$C8BMonhYkn>mHyC=PEInBE*OA^3;h{hF zME@!*03%&1@ni8m{S9A&jw^R)c5YSUcwM!BM_4{K`{nc}p1K2=`lp376DxcfG|_9| zM3*(~#Ke8oSK!UpB<+cfw`3kq^eEs)U+*<-td3V}VA%_^1F-9na2uh!E2Ay|K0*z!&y?Qg?WOj7ak1Bm>RfZV@y(Yd4Dn zem_XZo|=dKRd&AdFS`gLK&YM?1wvi)hwtSO?|^@%7>*}V-QFr@5y5F2`_7P5j;5ox z_NcErZI_>|S;};m*m>FqIXvm%vBZ*z9h3E|oU7*;6^r{<8V+_n&BSm#ev+W90f_ zk|sp*b|v9(iCyWz)w@?xwU?ENwxaHXsrViFQqgS^t&>6^Ma_rX@8|O9`u-*RSV44l zW>UI@{_vND0YQp_u+<4CMIZ##spY zh*Da&qKJ~%ySKp<{WT`QS*yP(Co_qz(CrFoI3~Q!Z^k49Ep_tUz(1<1nXcyNiSGRQ z*!n&{+VY!kI6jvfj8!DQe6IS`#_B?=B^N{qZLF=S4+s{rBW32V9dsg~Gw-r!fk^p& zk6%~P{@H3N-=sf27Tn)IQswYX8kx3` z^n4|xLxulI3RC&@%>)ELwRiEOp!i08`dd`GhAP9zC!FV-W`|TVMQXTFZMF^1pd_r) z+w+Lk{^2j-Xb2$hFWFPQ1lsTlq>vh;AtNUDwDp$7t=WcV#n*lrz7O{%SdwyLdlv-} zmweFKJ4myWU4<59;lSk9Na>1iL#a}6(Q1p(h(o?v$?j4vISMx1#ljCVq8#bSoxHjq z&_;rQxpWL|td~9M<_tF@tW&qJtAC`NM7D0$CnO%RSUbmAcKdHaT1oTr9F#q=P8q2p zU@FXYbMGMgIrCVWTBx@*+izLnvjC=w2mB~da#%Ac`lb|Nmj{&Gd%`)5MvB&y$hMot z6?MI$D138sQF&hPadALeeG`M-S?U*13{GXzrab_`BC(=#RJ#XyDQI* z5fmi_%qS%~o#@vQVdAtSU%nhYI+K^uSI5-z4+8Rs@ZFp>uzF93~8FIIK>g{CU{LE_TK}%$)t& zBR!fy=lzCw))LH)x}v)8cNe z@v{+l*py@Nhaeu7k))Z*-hNo9A>GKod+(pTr>B;>Ay}nUrgZ)KCe1*9ikBm#Dk>*dKJ?kvJu-XFY960;%h<3pX?KCvOf*V=1gMI}kwPP7ROIiA zyXD>0a8uZ9D(Xs2W-0Ka3JwwY8zL9l4(82kF@0Vs1J>`oPTYYS)+i@9U`y$mqJOA# zE`3#;@n@Mo;Le@ra1-}JA+q}z)Hao)PkW2%zWj_4-(efeq(G&ZS1MV4FP=9#X=FxQfvKS++L3?s?X9g- zG9q3R&I#cD-BA!);CZYBx%cM;%k(VACE{`$%7msq6A}P<4Z*xY3t@&Auq$(__Y08J z#D0_zTE^mM7repWypyJ;n7#qAvPTi5f7hz#oqUKx#eJNK(_%46IFJ`TiVgt^4Gi&p z^w}YM9?{@mi^p%vD%UfA3~Ty&s32TN{V(c;KGmAQ|os7 z>jP#QxFLhItZTSXHMZYww}MstR`5k!dtaL@@MZOzb|obxAhgSL&?ZTmBj9TzA7n73 z-^(RAB6Fa?B^Lv{@-HG9V4N?#82A94t5R6*;NHt3_rBf^PNtBVne+kYNHSegFnOi? zoRymAP6o*uMUvVLr{;#yh~}GrdCyJ-Osu#d>)w)&sARJl0cS|B@;_VGO)84Wxl;}e zjZ%fC2XgQ4B+}zRV}y}YZ>-o*+Okm5ir#;iH$7xUgX{z7u?HE@%45k<$%Cwpw;@j@ zE;@$pnE9^u4Nyc;ld4m^Ke2>N{+mH&V-Aa^kv9)9Sr^~Ur0CY0ymSDZ4HVz=vUX+( z^zEy<&QJuuSGB(fUrwniTS>INGR2W>f6E#$yf0Xhmv|)%d0+3ravNGAEX0sFi-B2j>$ulJbXmCy*R}mV5w04Qlf$jS78zeZ$V0 zSL6%nIlWkYWly!;6nYV}#-9tA!GN{NO!FVq-1a*9@@vy72q|Rkpt+yYbFC9G>X6;ELRtJlf%)Pgc>ASfVJ78BX2*A(3foRTDMUl&RVM%0Bx7Z`NeT(|z2QYH?Mj!2h9!_~9Bt;&vu|?rza!Q? zUKZ_UQ2+YIFx`OvlcfLfYyFM-z)t?me0Jfyf=T=_62L*&4w7O#jxxdxIA`L&=wev= za^GUsgI4so;s(nC_zT}=W^}d-1&&gJOTpfwK=o`msyeBpQ<(bs`1suF9NZ3DsokxP z`1R)e^ihqD`>gm`xftVJkJ#NFN5fR@*P^3<*e}Vv)gC(0hUfgrEN&lCY#b-;BG&GU z&_KwAwu7%Cb09XNu8U;IM1!-&T#pXO8wKq=lNE5L`NOy|6D-3SR?-~PQ?Z$$lH zTXX#CXu*Y*=E(@}-u$We_lD%(P-H{b&?D9&QRhyh)xI4?rHv8&3~UlYDps9V)bnKI zVb){slaU_DS&rpY9p-yd^p0cns=N;%BgLZor>UGyA`{nVucv09g*ua{|B}1J?bhiO z53ee-jF>yM8}L03i6@7VhASNfQ`oZ%#}Na+MA=3n!aljX_*?syK|pJW;3Ev398x&< z49f#C9zK2aDQZ?UkGJ$hC0GAGON<@w$8)S_^_)$IxZ;Ku{sn!z;Q0|Xb*Z^GI5$vh7MIi6 z2E=0h-6Y=CCVFr%Ne`ATGqCksC&w|^dIxEK#rBFh4hj2uR|LFf&)Qv^52tV zuQ7_gt3*JWkH_h86Yxw%DIo7>7-5IKOavxDJ49d6XJT8~K7(vG$$6RP5>r}RTxFOgLQeTM&A7L9$4g_yu?HG%F}mEj z8Gn=w^Mu#Vc&5-OhH3|UF}Mul!E>(?I56J~rX@3qp@%iaVEh`3KUhzu1fftd)JOq^ zd(y%og0>#N?U{0!%=Y=7k|wi76w3|M%!+iUrlx`hsSeoLV;%}qxw9$hMmuI`M=YG` zf=?zWhTfJuYWwl3{m}G0Z+uFZd&zWPL?&VYWj~^&!fS3EvJrd~*4G6Dt@ikHgp)-!v))2X??%$8WtoJqKV7sEHJ>|%UMgHa;?7dEd4t-5OgSem?HkS%aPq)o5N@U*6_vw4;Oq)dtdgid^&qMl)g0=482^2w5*#I zt!{Yw`T0FyaEqG5Xuw}v)3Lp;sFHr%oFs=*kv)D>W>A2-Efn&pjPyp6rKbpFCaHWHtx78!jqn?CUtTtYz-_&hu21YT48l7GB&8>w|!P9<|a}Q zETWTN0GUvB>N}YyFAHV+)mT}Xu-S}gfXstPxQV_L2J5>8F00drbID(15tZr&LWx_k z5+=r#1N=Z)ZnA=wC*ze{Wku^eA$6&2i%F8_Uxt_kH3Y6`hVt~iO3>mNwEk)^nkKSa zF1h5-4TNs@Tmct2-fbFapEb}?9)VvRDRdPNotm9Rx9L7AiaK*y^%_l37iTcyg8G` zyGSbR_$S8>_b1Er15ds-%Ah`dj__d`b5>UBEzK8vUF8r{eN`u&eLXz-r*Vgr0&~!( z{3KmI<%9jaq{9K(XbE7!%qtvQYWTI&kjpAb=^^U`FQiwniHq zoei@k2BXZc#)a7Y%1j|ZE*M~ybtHk*(M>3(-^GWdpGi?T|9!K2d$&Tp1vZ)w$LSK;UZjDJ$&HhPt`9shIRN{_q^UTP$^Pr+ z?%c|G@{|IYh3L$TkQ8Hrgx;Qa|t1PRS(e#0r65kz)P;atgXF2 z{HA<40M;z@ZgMRmUN|2pRg2=8>W3&?2O<^Ykq=_cd@cchelI9`XER2ZJIR!`OZiB&^nvRom34Ic|0 zE7b~_>sT4zh zFFZ=nhuTEbjl#ZW`s_~<&E)#Qi4MA?00_P2!yF8B`vTTN@DWRjXEj}}oLx)sYN#&X zP}(6Dv%Qw2305=Z++~bJ*Mr5(xGW`@+ zc{Xla?9v4&;8~46((dR6AQiY5u7nS}zBD_dyE#XN)B$LPD>VT&(%KGNoba~WxnA+jn>KNA79Fb30) z8rxYq4l)jFHs5&fi@lfmv}0xl#*+G>z`aUcWTjS1$|o{n;7!AZZ-b_@jqtdAZv5yZ zeJfh+6RT4XWhEJ0A9RJ@6)}!ncYF)6uGSmpx%$y{wh487aVE%8_O;9j9bHx6D+plX z62Va0Z-}*cac&c%HN?ok%xP#iNshonJVv4Wb*eZ0^S%9Ce&CKfnEiBo>mmaK^orD8 z(pgi$*NPK<{umwK@&B}ujFNCMt}Gptcwxx*7IZo7ZBuh%t53rU;DBcG-4mLgKa#gg zPqF3Hk@0aLdH|g~HT*d}B*f3}gYOwoQD%sowiXowZgyY=P1b!NhIg)Ap&oZ0NIbn9 zcYo*SUO6dzEN!raL!Nq!67^67D;NR=>e%la5*67SuGQPA^R#uOE2yX3wWb~SA}kkFVf5pB)PfNPQAut ztp(pJE~p-AchUy$EsqEUISM2^^6bj( zgfd>MdIe^1Z%l-UNiZM4WPC&26F@xF+(3VLA)M`>U?F04>Jn98-}#+=3^wFrDq~G? zGgRN5airt|xIDtQ*>34-g-a9)zZk(0RPQ-17ftqaYH&ibQH$U=PXKR;&M3TrUoMfJj~l?ydMZSNf^;3JrNjWj038lOw*OZ~rMAO7^3JRT0(50!BXU<{_FH*L zla3}X%jH0jzdsD+9SX(NMxo$XTa6>JP$2}QfPp;L`7sUPvI8G^*9Wlwpj>VRUdC5jH{JLD# zaCr(PD1}{Ms7rr%06tCJ-2R`~VKAm)*y6&^pipt~dC&+CP&SmtJj{AsVNL%YJdxR1 zNjOI^SMjrAwgBMN_hrk%M$le{nO9R(PDU@s=SESX949>t0NMgDF!KS#fKskY78q2T z85PwQm~sK3d86==`%qT-o+2z^XR+f3geddCu<)ZnO;Bf&_8n;kKz;-TLq#Z+LE58y zPstPK%s7N6EX!K{b0RrS@t`SRlHNugI`QdAEkeK)@ONW{q;&{UuOf?UywA%jX%AqliSIW421h?JwOa`I5)mHjAE?#M5h+L-_UViErK z6D0ucDYyt|k^~WrB@DkCDWB9eG-!a9R3y?)q1U^?B4xjU5g>oRc|yl|PrUAqNYUy^ z`craop#Ae8?x7tWz*YG|Sc9ET;OdxTYWa7r34k`^VK^4N5PW$b^8mE8Nz&XTTkr5j z67$;ys8;}xIp~iR-Eu=D$rF*2YOu#e{U_vfV_*a$h6JFEHVlJ<=lLawZBUKYj$~g! z6E?m#Tw0Yf5I{L25$9-3M8OFae6AdoOWoegGG;ko3Sn3906_*u`jDUPu7>JF}Vfhk_ z0ASZ*J7Pf`{dLgn;%Onw^cgmQRZd`8p#mj$9*Ze~*f|WQ3)VLvDKNLq{z*}|f;f0k z9%=Ke!?5K^XB$Su$gC)|OKZzltn4uuoD+cpw4ZQc*rz9>AP7?W*~!q#J*xX2L%%X) z39CdDz)uR{yt*@#@1k`J9Pr$z|I#eBU^e#rXl?Ds)PdY0ryD@7@kF6_!g_6Yxu1pv zkOukF*{@g3VgL9OM0xiV^d5VG6^EhLP?nK*?u2m`*(oRDiO9{sv%{UmIN)P9uPS~m zNYMZWe4%qgii%x@lw}-9u6l6-%oW9C1X@6zHjEk-vBV9G{lvcBpaA3IFT-e12}|7K zEA)VIn5D=@{Z8l-7gz^u*hYp}9P5*#l~f=y{^Bp4`}GC@M4B>!w=o5M>%F3{S%@3- zU|C?K3d6`d)}W`>LZQjt_m&^9v4fFq%1lbsW#p%w)Q$+y+o;DSJa`S(5Mn}C!0*;} z%?8%`-sq(m*bsj!9Q)KJT67F(99KVS21^KU-kicY&L~uuLgh>5{2FF;!8UpZAEc-U zZ)zE-{dYEJiz$=0mxFy=3C9k$O}(I=>VwKN3uf057gM-^oU5rp5v)a%xacy{Y)}4d z7zx<+7;IBACLVgE3RYs)sq*Hre1T(x72$w2d($IEqMN+=I7h)E(A_;z45#Dd+5T@J zzAh3xMZE%1m;ZLX6!qmWcff1ll|KP2y0ocK=ruMT*7;WlL>j12fyGoY2duZ|VFA<#TrQQ{nd)pCPy)d8#e|XY`K(<2U-{fY5`Wp!81rP5+8^eMv}6_wWU6ePn9*(1H1a(AQ|XBS|yHTfqKxP6y8`^h;Q9UknD*DzCzTGJZCrrcsHUL%+#Q-w;tRIj3Nd8wn>Vu zo&CO0)hg-_b+@6jCieBfHfx6@Vr$p7pB$tAN1FT}Y3BE>*l};$osYg}6YnFcYIM`r z992c32$~Hl*Vji=&mVh7DF2vQKgnpGGIzlDSjQ z{mXwY@F(Q7BV@&&plvn3?*yT@k$9Z?&R_c4mHXg27e-so_e+0CRgpUYtzN zpA#BlhR;6$0s|O=a)`5=lOgGUPK?_TH05Y8;b(8CaqhD5xG>q0 zyl+Ng;qJ*eE%Ex2bNBUP6LKyXFmSW!LOLp1O@vy8fz?Zu>`77!|IXaE&706-LU@O<$3^XC`R zoKqV>bC1l2j=in9%&|V*lZM!mN84($%*PVc0%U=0G#c&GbOb)oBm@8us|J@qP7L+& z{QUgF9@1mp!W5f`i#JaRT0nt0I_qcjee1amZVK#1xlja zYsxCMjaAVmY}?5yuPK6BBs8$ui|L6pJFA2^Rr+|z#%KUQ3R+kKIgP-U2wUc;6WCAm zwR9lO2mh6pJWdeQA~V^?rqz<4sIp zaFZ1g)FNifBIV0Ps}$s_(vbG1)9IYByb%D9DmU2vC4fn43v6%np3AD0z_~qWwi>PR zC63csDe3YKht2-Y)e;VGT$uw1sdXg9rA5uHVlyx4yX&001&{ z_wL=khNE93JeA&~-}idGN}msPV16d3l?8YC63lGud(WOr7$JVz!%cby5Y!Up8j$P} z+Tt_`XZrM&-jq&R+6Vx^*R3DN5;$A(ruXro`{huusV)7Q7WOuV6=dV_`02-wACF`M z1hq^|g*KXy1k8oAN}s+VoB;qZ+xGUhHCB5jK!Dci@Hh)WEkm|EQs3-#IvopbeL<^i z#!Y8k-sscQUaxmXI0FD+F~S-`#@te${;U_fk|mP$n=EOxZjJx-U;lOb z>C>m7004lM5!MhApCQc<)bI`4q^ngO3v53T-29ko1oBRQSb5KN^jyi;D|7KLG$xqgWb@AWc3Rhs;7y!%FOo3Jo9q zPN&m%RktGN@a969En|FVot-q)R_rkY0HAqpRnTjirlBeBY}qcl~oO z-Sgq(t^T=Is=oa5pZ|PGRSW=t^z82L9_T&anvBpG4PMyf{?*mh^E&pU&HVcW0000; z5KAH9(R;0;?bW%|@g{;A0001z=34mMQb?+6Scz*G^3r$f{bh6o0000;*uVbuuj=oA z|NH;c%GzJ`mmD>OWmQ^5`)`B6;8a>bMGXJ|0NK#$TG{Dzj#&L$Y;1{*1te33nXR^Yiob6A1u84FCWD*&?t(Rr+`pN3?-~RZ?Y3liPpxs@Llsg?^SUK@9)^0GQ$K z-Mjrxr?an*pER`5EizIX&dxNPz0s#tsMWJs2xDv k`{R#4s!yLj4JAVV4-6+JSpt?PEC2ui07*qoM6N<$g4rSOrvLx| literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/force_breaking_on.png b/BLE_EXAMPLE/src/main/res/drawable/force_breaking_on.png new file mode 100644 index 0000000000000000000000000000000000000000..44ea355ea0035c438ab2aa5074ad907bfc69cf1d GIT binary patch literal 1200182 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 z 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
iP6Xs-)p(0qnB^YNv5tt76rQC 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

j#J6$1WPox2^pfVV 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

  • L|0ta-QsImh>sp!Oju}cyBfBI{{vJlTQ%-u< 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

    8bgN_c5eJFZC#sjZq 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%0A3%v#uIUi$7oq~FAoL$hLTKdXrhl4-`3VsI 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

    ?GPLV_i%A0@Y#N=}No~YMFne4oxXH*F6M((5 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 jM{hB};Sxu#PfD>%#I}H{T`4BY3T4fktN} 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

    VcDDZP;cxr! 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

    RiDo7Myua%}bIhQd*ug>&6$>%t+ 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�?_NnyR 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"R~WY5&PCy*UhS5%gKx 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

    $&CTj-l{xh-&T@md?%Gzt|CEg`+sPE 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�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Ðezd-*4mp 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%0A^I)Ac!{{1tDk|7@3_s#)e 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

    0)i^mnU``qvm#O^ z8vWTH%$0-9Ol3)b=9mz;dss-$5IBkvOn-S+wPF@2v`0{^LdtIt)~BDB@EBnnwK&a9 zBuJ<5RL(xDdK0-@n}nGxlar?^vl_+xRN3qh@%^sg$S**xkO!yeBj_W;&n`9_7NDBP zf7lzib53L*=;-n5jaG-^zYeF*2@@_tKXvP`Rk3>t~g#M{B`f~{{h*XR$Bl7 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/fork.png b/BLE_EXAMPLE/src/main/res/drawable/fork.png new file mode 100644 index 0000000000000000000000000000000000000000..b1b1ca08dd241f999babdc73a9df66329d34f73c GIT binary patch literal 1976 zcmZ`)do&Xa8=r(+qS9rB97Um*O{L2;Y{HCfZA|r2W6J%0Czs?_nw8nxFoayjyrfn_ zS(A^Ln%gTjl-%0pQbHz|Z=K%1zH`1mp67R-=bYbpo^yV`=R9{Vpl!D+9Z&)Q0Nd>l z=W$XDmqze5d1>Y;JDEs9F&J?<3;89r83LH#TPOoA`J0v?$n3(vnLA3@Uh_!2esl~QqvK2XwFfpYnFt+nqd z?jX1P`ni}9mY%@<^FrEvgopRN4*;8lzeHl{OP%hEpvk)OQH3WPmc2!AnphJ{?oQbq zHKrIbleKV(y0#5Pf9_^R;u4I{M8P_I#wmSI)NUV7L+4pNoH+>g#|bTRPtA9L*SxBN zi0rO-VW?K}??nQWgRzem%{xX=$#})IY_lV}YsHHo>dQG?TxJtY&G1!i(Pj!I@kidI zpPt9+I0^PI)mPo+asN_&MO5x`p~%+eXthhAVpuPqpXY!^BhQ{ZeVUsj+rV=}p)y&l zltx|P*Ss=92O)Qpa}A-8; zjO>%Yu5kI%rTcgHfjT$k#w%W* zV}PzM;zp<(=r@_6>SBYdqn(|dCpgIp%?Xl)$!ZPx%*@Qt?^7uDe1D~5=)!~@0Tj%+ z)Omv-{FviI+CHE>HQco8@aO#1>~M(IeHtyyzJ$qS9yc=+{}_50#DOW6@6gb_n5N{b z>)AaCk+;#`duJBedZI5DpIB+Qb-U8ver53JwUs&$27~dUmr1#U_9kV*<%z)<@LCHy z$8&t^Mz5fXjc(b*YTKs*!+m`0+S=OUw7!2xOOq#9ByPmj(bzf?k@Xs=nFfT>#K4mb zkJkm|RPrBpuC7`0LH;W1h(neb0|*4NMffT=cmHJq&nTr7SLuJiL`7X)J#?0DN&t<8 z68?(A6Vr2Bh7Ce%YUFHWB-PC`SDoNa^t&ao@138GuP~`ek~bH1x3FMYEqy|07qo6o zzKY4T(%7w?;!+=Ihq%ANqSt&)vcOIZlPL4{;Q9568JOPID>WWY!vSaa))@r^1oRFK z3B?`PdbNvz5tzbr-+q$P2N$3xavcV&)3+M8By?w)7(UOa0Vzcli&L=Y+&0=C4;|@KQKr!G&XPeZqh$+Ow`VJ)Ns=PmSIQ$Ql{fdpB zV0{}4*HRw&49R`@?e|MZr#)WR)DrReum}f%ZnMNfP<>CTio$jgaL;sTt!u+)?uS|e zEh}p$!8Yl60fx9!@ZQe8XLR&n4(~zmha7u8+|R+REhC>RboN4s zyfwb)dSIaOW3uE+&*6`^5wd&jk9b#ARXr&y(BaVkv>IEfe%rt=3fqC0ps>C@x-?1)`5vHk8WG-~n{kn-)6W2yKKQif&*2Jcu7ckOQMyivaH zI^jBd2n=8H?CKYuJsWEDGaTlNt=onE8Q zJo#H5l^3r5PK_eri#`37xrU0`URmyj4fS&Pc$)DQO6cnijM)6!IXSJPV}Svhsb;EU zo<=$4uK3mbRv=KhUN~N;nk{W?Rb;2{YmOOY>(IPtZy^|;PfLFt(-whWK%BJ$2@xZjnZvfz;?_$|>TOY#4t zSLTjRS31Vm#V<^GwvH4rk?EYm*yEA6G8xTHN6@3$@c^mCe=*CrD0}lXcStEyYe$9u z(!MH@Id!3%;F*4g!G;>>aRwPb#OchpkvAD04AVbL5ZYu%+`(1m6E{nCiCcXn;vyux zfxL5a+ka%$s_E7^w$+k5(tRFb0^z>v`UIUpd + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_add.xml b/BLE_EXAMPLE/src/main/res/drawable/ic_add.xml new file mode 100644 index 000000000..70046c48f --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/ic_add.xml @@ -0,0 +1,5 @@ + + + diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_baseline_arrow_back_ios_24.xml b/BLE_EXAMPLE/src/main/res/drawable/ic_baseline_arrow_back_ios_24.xml new file mode 100644 index 000000000..f4415d746 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/ic_baseline_arrow_back_ios_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_chart_white.png b/BLE_EXAMPLE/src/main/res/drawable/ic_chart_white.png new file mode 100644 index 0000000000000000000000000000000000000000..e0499e4691e5100296c8a77707aeced6bfa6c2b5 GIT binary patch literal 683 zcmV;c0#yBpP)V>U4h#&rc_l?b?oJ93kx>c^NFXt}xPSpSU}RwUb`3-_FkIFREMeux zqZS+BECN~xq(1<$NIIC!$O2*~LD&)?c6mub36QM=VkZ|Af!IJ7Gw>9J1UUoQK0vlY zIubhxiJg*KoD5{=0NL>fzva(oV6gbYz`#5aA(k|afnj?)1B1jJgqX@g1_u6C28L~y z5n`YH!Tx0wJ5-WdQ34Y2(|2SjNGwVOOEZH4G%byR;nQ*k2Hr>p2H^_~3|!F=cYpzF zF)*M>3@1VW0CLzigrgrvvj6}932;bRa{vGi!~g&e!~vBn4jTXf0dPq~K~!jg?U?ON z!!Qtr->djfMhF`)LYaV$&<%hIV1tSc*o3e_HfWfj+2HM;ASM1%671L*KT@RVay{Q$ zf1M3vf&c)?dSVpmVkBdOWCfra+q4`>o~U!)Fi$5WYmyg3j<2etjr&NsPat`;q4gWIRc2(r4bfmIA)8Z# zq((MEf-S#uQOhF${hC!RYLAe725?rM3(5V`Sh0uJqs6{o8Ys39ZxkV^QG}$%;(cUT z_fOD^!WR)~eI&JpH5=j)`Z)st-YoV_@Hw=Cl;?BFW{wmgsZoTaMiG)4YlJiw``6FQ za0%BLd^!>NHvLASwY*#N5R$YwK8Q$T`Y@C!^~lt#<%z)u09y4JYd8(giKY3tF0s`H zlICB}kt8WXQX?B7u7lOVa0{3!jcXtIOJpM?pE;71kS2B#KG*?xkDY`E`YTw5;I!bj RF-rgd002ovPDHLkV1fs<6jA^H literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_circle_add.xml b/BLE_EXAMPLE/src/main/res/drawable/ic_circle_add.xml new file mode 100644 index 000000000..496ceb3df --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/ic_circle_add.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_dec.xml b/BLE_EXAMPLE/src/main/res/drawable/ic_dec.xml new file mode 100644 index 000000000..5aaec5249 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/ic_dec.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_delete_profile.png b/BLE_EXAMPLE/src/main/res/drawable/ic_delete_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..522bcb633ab878a9aa17e79019208a47236df5ae GIT binary patch literal 618 zcmV-w0+s!VP)V>U4h#&rc_l?b?oJ93kx>c^NFXt}xPSpSU}RwUb`3-_FkIFREMeux zqZS+BECN~xq(1<$NIIC!$O2*~LD&)?c6mub36QM=VkZ|Af!IJ7Gw>9J1UUoQK0vlY zIubhxiJg*KoD5{=0NL>fzva(oV6gbYz`#5aA(k|afnj?)1B1jJgqX@g1_u6C28L~y z5n`YH!Tx0wJ5-WdQ34Y2(|2SjNGwVOOEZH4G%byR;nQ*k2Hr>p2H^_~3|!F=cYpzF zF)*M>3@1VW0CLzigrgrvvj6}932;bRa{vGi!~g&e!~vBn4jTXf0WV2JK~z|U?U~_? zfP9~TR-1WLFP>_9v5Iq=IJ`ix>+F#XT6IxCf76F(o(v3k$^rr#bjm6a^1qp|}Sl((@qr zp9v!;`2^bpZET6I-f9Up9#XXgdkHFxnmcWRo@YW!Z>a6T25NionBJHY%%stKN-&c~ zZ?!qtyZ3?dU%5r+z-RoD_g~zrtG@Qkq6DfD#Hud2e>~aZo+`sj$p8QV07*qoM6N<$ Eg6;nBegFUf literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_done.xml b/BLE_EXAMPLE/src/main/res/drawable/ic_done.xml new file mode 100644 index 000000000..2b4a3c162 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/ic_done.xml @@ -0,0 +1,5 @@ + + + diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_launcher_background.xml b/BLE_EXAMPLE/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 000000000..07d5da9cb --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_navigate_next.xml b/BLE_EXAMPLE/src/main/res/drawable/ic_navigate_next.xml new file mode 100644 index 000000000..09c2cc81a --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/ic_navigate_next.xml @@ -0,0 +1,6 @@ + + + diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_rename_profile.png b/BLE_EXAMPLE/src/main/res/drawable/ic_rename_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..7f6564555c5aba5eb74447fa7dc61dfacb1243b6 GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z{tLSxtwz;|Ce;|uX$v9`_a5NdnPM(}?~Js^gJ;$I6BxEVtlYp;Coli@SDwJJ z4c>46J&Wny-F;%^4qxTy$7Y>(9y3S1ky`nqK`cH(@b`-wb7Qpa5>6$tUw8N+ePiyO z>yQ6hE(?CVs`cr_`Hv^s=mA-&6Wc$&wT$UrE%way*6U24qoLfn6U*#-ukFZsShgf~ zxuN;Gs2}#1~%X_mkNLTe(33sDOv2* zA6xl%Ed4j{)rmO{vi)C<)`dnciDbLa9xs{9*X-Y8&-+$-xwU=o>XJE + + diff --git a/BLE_EXAMPLE/src/main/res/drawable/ic_top_bar.xml b/BLE_EXAMPLE/src/main/res/drawable/ic_top_bar.xml new file mode 100644 index 000000000..cfef85bfd --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable/ic_top_bar.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/BLE_EXAMPLE/src/main/res/drawable/line_big_border.png b/BLE_EXAMPLE/src/main/res/drawable/line_big_border.png new file mode 100644 index 0000000000000000000000000000000000000000..cb60c454e06295090a9094297bc86303f269b599 GIT binary patch literal 5043 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 I*S((oAJLBtrT_o{ literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable/motor_error_lvl1_style3.png b/BLE_EXAMPLE/src/main/res/drawable/motor_error_lvl1_style3.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe6d5504066e3ee2a9d6c016468c18404acd003 GIT binary patch literal 743288 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�L@(q_XNp5w2 zlk|YSEw=6En+t|T*R)G<*I@-ngkU!;W-IWz`B9Kf^?|bU+yMdVStbk>C~4D}w?QGC zed!_X=IPAD%3tt!=QT8x|#TMJTdi9%l&9d@1ty-%huaU2V zz`hq?mJP<~_SGqmkthW+)m3Mk=}k#Wf7bU6o%|WII35!e zBZ+arK+Zc#S7wd*^cz0<-!*^# zmw`|f@96b60Gi!C?MfYM{Pzy84xkZiPx?vLp3Ct-^0`RMoaERdwbf(Xu$tnYMvVER z9FsBC87s>qbav{=>C%202hh&$|Ha0CQh8{Zrf)Sl9DX5K9>NmstYJ=Orw*%$mhu~h zEn2i_(W0M-(gncSrbz)c&V`3oJ|_~hsyGNppv!BTVJ!~~D0V=c4`K-Py?dkV9nNbPn*wXMDJx zyz}-QXYiXQ@1o~it%K&{WCHAX<$nLzH<|6DqUxK({VS`DMv#kXBY*cnShm>y?8^7K z5TzqR!8a;^E&6t;xptS{#Leyhcg?3IXw&1MGw$wyW(g!wrbq~+)8FyU7P`w~vb;?@U#Gh3dV`ozu8D}m4vFB4*hX*K2x z0#lU0*b|meXyUC``W7rGI39=aiKg2L1wtA^;(JFZoPu9ZSS1H!M+YEJ;tpY1X@*<< zw7}g#G6?4=#N&EM0WgkNQ`2MtsL3~z?qEakxVHDad`N3fucY=7^PQDZ-#boBZUrz@ z;FKIKFZ05>!8w9L37RD!)_LKzUT2)h0?H4Q^lteN0Gd^O&>S4W?RWQI7%lMBocVZV zw8Ij>UqQXqJL7=hVFGJuWekuhf&WC?xF5UrTO55;rroE3aKBL<2_FJkOj{C zp5k}tS%_Tn{qs+NS+C!rSzok`^2KdBDfs><`z%uilE6EvctxXpyc(83QTE|IJy;j@ zx+b+2*%^y)a@PyDYnb^O#vFIduJA7moi7SpUl7|FD8%uv_D??8EE6eQP=G z3^fVmfsngMIxM5}5*=Z?N!cx3$Yar>MT-`>Bs)@RHq7_Oz0nbm^wgbK^uf#1CZoAh zQkr9!T{Sbxf8IU!C=#|OW1;|1`)jVW+7MQihNv~r>&GFP!`#3;} z3!)DQ%p@qCf*hIwUjQ2V{sig_H~&WZFA@UebpM6mE#j(jCtdG@jITj4^Y{Q^nAZngZtsWnJ6sF!?6n<( zT;%nQ=ZAPy<+Bj0-f+>P5NM#;ApLaQPS!~Q*i zDYmv~(pqdWHYIQ@NftEgt*Cg+?ABPx0lzreOlQXTzwY?YarAPs9 z403Xy@CL^{ld*F%&>lFR0bIByIzMm=U_33ymJCQ%f{_fDLJV#pf|_L^6p`Z$#uL_* zrbU=FDq)T_8YnEj-xC&TbNJ}^S5CN}zX9(g9Ri^yEYgm%AT6YO!v6(806~QZ5)3dF z`AxKPhilhl7qzNrYK(Q3KtMmF{7nGoVetK~fn=k7 zK3I^;0K1q?-+wXE0vIe>V3i-n(^};orrSrSGtd1zzYi+z2URWuV#!Wge1{Vht$yNN zX!+naS(>jKen4L8y@Yp0+&{>7P`1lt@(2L(2PZyGObKx8ScagsdG`IMhImoshu|OkX|#xms{h1mtreE*mT~;h;~Vtn5yq5nLS=v zvqu&h5fE#kR$R*?3dur%ZgGTwee_MRSs2#>zR4@4gwz^uV>yN`Kk zV8i8OASld+kJcPnfTV*0+W-cIrj-Ub)Bp=jkb4-EVSsN72tED@fUX9zUE|F4Js>c) zK)9EugXAy7dS>J=fH_HUiy&K^d*$To!?o3*L*CYG+tUhPOHJ^>#_8`UDbRcHK`_Qo zP8uDi!LQ&)3iKbY<+n3^$FHrq^>O~LBUnZd?P;4Y`Th+sH5y_CdXEZNAH9BRy8u)V zJ`u{meWREJJ<5I!(+FToTXNSmE07#j8og8p<>CCwN zHyQu69O7A<3E3t&U|DLIQwQ2fC>v1r!g5Pl4P`J(3oI{Mv}nzP<Oi zKss*936RZul;O&C3WS1oQuh!f3qWzyX0g5*b`s|b9BYtpfVdd%aIM--17#1iTp5Q{ z9|SlV;H#JSV8Jj0L#*p}05-cxa|5g0wE3Vwu2>TAF zZ#8`olr?VhNb2bIWlrBJCN+;&()63; z)_c*SMT-`_nXt3BYh1>xt4)WR=p=!2N^1QvninOpwz=L*0i9x)w0V%;Gld2qE9;ch zOsqekjx^)mUVJft?+xa{{Ed7kTHbvlz{CLv2Pht3SOV@KfU~P5h$t{gZGD>2#^U+_6+=XjL!^~juy%OS4Snt|1 z1PX_1$L#h>f?xp>B$%*3`r40oP@1=cuZ`@#g91Jzwa_0BtQ{m+Mm`%uP>A)xPji5?*NOf90Ud=7S;Q?N7x%9;8r`_b_)%(jd3IiaW-XMc zpVlAT3B_2RLBzr+V{E) zBzd#uinU6fmKg!&ds6E&kGQr{Y10l9Abi*Z!up3G1GRKlgID`$5X@120&Ujd!`1i)S6v!?U_&?SWhG@nKe=@b-kB~lYFb2Xng-0G| zH2>&;<}|d=>^&O6BbS3%!=2>4v}a-VHyHoPf?X0GvlXx|yM2)2kKi~>H02V&>-x@Q zJ8XkRixw?f^ajEKz`s8_ax!ar_GW9<4+aJ=PXV6IpyQb#$-xTCB!9C3#n!G;=*X4Ke~}W5!JqR0}~x2sip1kB~kEt7VP@@Oo?AP-7wP#Q}C%d)&cvln!XR zcJ_GX3WGDD(5~}?bFHoM&SwIv6ORRN)E2*2rqu55AO-jea%?&QG7u;nJZ+nE-oevV zJwIX`2ygMfgL4gh8LS{kMzF*{`ZoZs5J)pfLtu<%z`wbdAklzc^iq9q&6PWdytmq2 z0W>xLdj)Fm)lan77Xqj!0L(LRjGz}yss%7t=H><*lQOS9SZ%LFyn>Dp?a70~VHFd3xJ@%^2i)3q?o z=4<@^Ij=s61xrBQA7_2aPJe@wesSCFqu7hSTz5P0{^%P9~r2f)&4ecEd4tf|1D5W(xF$Yiz~Azb8A~J zTb86iZc1}gYFkHtpJrOLXwjlYmy-vSu@l!IxW(x4bcb&T9B)>X!7-8WjGf4J+9d{> zRA++ay|@Y9Fj$TMUQh!&=D;)o#A z|8>m+3NjIdnW)Y2Ha8EU!5|B)t>$LL!F7P|jc|D7m`a1D#1&dMdpyp8aRPx7fjA4! z-3(g`;fHIhQAR*O*CMYHj-d8GF+CrxNr9(2%4QfthBS-xY} zWdHZZ za9#2xKe7Xa&4*wcDK6h^fJ<{8X#(V(`!!wMgeDoaw>m#abP6}ba%cOe@9q} zQgD&?gP$($3qt5YRSRthhO3ag8KKntj1~rj%o%9bU>Gzr_Wsq-LZb!;%&R*fJp#A| zttrQ6DLbKd>f6#)z3y>#20kGBY-kQ1^GgrEvI*wv3urQ^jYoQ@VEg^?> z%`Yi!Gf7QzQowDL=?fP?+proJ0i)3#LteeE_W)+^C16bx9!UXP4Z_9mlrDo|1J)6w z(-#vn?RkA|-LHqH`d;4a0C_f9agSgZCP(=Bdg<=x6CwCceRr?#jWTh)5x|=X9(XT5 zzUX?>sRha7-B`aPM) zdwoCp&d7Rw$gZ~*Rzh(T7DU`P_jm#X!`PzDtkoFcjukC_gmOrY^8n3q4D`oEwzxvj zDV8)1kljZA@YfpuQSRB#kF3?10>DGMl3~MnShDvL1*;7o;2q;R5*{sD^mCy#`?Kh; zPPy|vQJP(k@Y*4VP!+@2A&1Hg`Om~Y9O%00d&eU3*YjHeo?mZRn8rEk}dr*gcsw0Flq$HzpE zrz1Vq`}y7-wBzwq_MGO}@_eLx-s;Qs(v%}VVmZ(CjZPfq(T>ED@3W|9y}o}QMeN0$mfnPj$fP|91L4Un;i`CH(3gYV_^ z`AEl9z8BKHXyaQ??fd>jlFE0gzllTr2A|sZ`}_8N9$TN_egDTJq%SvenjrcSOE6GG z>ir8nwzR+JZ&vZkQF3|yrQM5E`_Y#7vGtWqrC;U#wuS3BNPO>D#*)^jGesKxdnr%q z{l6R|6h$6;)H7*gS*C}UK96Y+RL86`R`GZT_qj1DvQGN-4IB67#@j4{{1?sbefv5WQ3&C`Q!IPczZcL zw=DE9FxH?r3y8lu35Hofee?uN2d9DYhiPn&9^+=j^jPC+Fd$AyYLtM=~cM|cOl4yb+Js~4Q>`=*%rIeiTi z5?mI@J2gxcePTnz~ zZFv^pTl&P>ALmI%?vG}4qzZI%U!42syI3bPc?{_wxRjfm@xmEkQ$es}QdaZv+9g8U z^l^Uh&0}E(`!A29E*(&l1j@0_p##`X;=Gn82*CZf9{wBG1Ne-rY+?S6a-g1K|XvC+=dPPx(0L~}WKjg1|2E(gy0a3}oJeS=kr(8HSQ$a{6NN4$7dn;k@l?kD z>jWHs?Y;kpENoNJl(7I_faxKXa6=j7e%-*&q49fa&x(0q9ZOhJ+GQ07Kw3u+Oiu%3 zlZl zpDXX2E>CX!?<#Lnd3kx?gSP(u?Cga~O!fU@?Qy*Y=NULZ>%1DEe#UREX{KpL^}T;0 zjeFtyKTTXcJ=X81PjYc&8d_(z{CH{;db98UI4g<=i1#$k`8&>5BWkivOcFvJ9~mT{ z`r1d5JiY$5SnPZcVK9MtByX&!{rK_y=K_S?N!BUt^}_>POG~E#gx|H`2ak2EznH=D zsUMHA9!t7t!F09Ax}aD@KgIaZvXCDC2f)_a>Ood6!h2et!7f)@<~@X=WEk;>W|wCFEPxISl4o1)AH(MoHq*TYDybG?VNo1U4rDgp4&$1(Vfazp^* zHO`qDQU$YhK(XZ~8a&3JD`#jS|AcAUAf5;C1mhfQjXT8}mNmzBCxNDb=EO7N)Xdp} z(E?X1^@&-cEsWqEoWVUHY7XZ1K_&@3oF6+yfT zr&(yvLiK+>e&z^?Y99H2}?5d;R_pAP=ZZ9s{269@M#9x3cB< zIo?y{#rbB_+)NB)y5^Em%jx(}|9vaq3xWiq`oR&V?h$R>H!WtPteLz=?Iu<5h;am1 zyRQKZ1fMyqm7@dZuNwe7@nXGa9*K;U_Pe`h-=fTJMpY{^|G?Q~_J{vnXQQG5uNf}4F zF+ke2Nxnuq4XrYog_ZG)f-p17l!b>bOvDxztGRO)cnV-fQ|vf?b=~jI^XxoP5Q4(T zU^UcyJVH1TtScs~(P-=aa(VASh+-4K5+^2ULda_ZX_y~UZz-ky`s(xxEXA zFgMj!ByP>L)qIO5BK4Z<)^7Pe_s_dyM%U7+zBbaZIx1St&@6b!{wDO$_@Eg#Q(1fc zFLf=oCeIp+!&939$FX*3uUkET;_<(+@iouws772gz25i1!sofZWtr7}J`-XSZ&XrP z4YFLzj51>{=Vzs#7oQtf}i7{H_nbi1Mu4N8_ zufI0v(t)kU(}Rj!zf(rH7B!C}L8ULHnewjx(A=w~m;v^_UYXeBEZG@vk0Pmb(*m8J z{lA2w&3Bk$x3!+_UI)x^0QC->C&CFcYj7ty;+peDd{614Im>GW`I+wE*E3-+(Wo4xGO#;FGFG^K?YOjNpqY14#yk zoQ8Qb7G$t}=d342fQi=(nzQDb!ShSY4aX#jNkYD^Jl5C#$!22vQNr{+TlIWtF*|K6qIW59^2$$2BGW#5!te1!QYojL9*1G zgXOdY;CU=Zq1xxRNmz6WR;fL+NN2Rla1_5p=yb9lPZP2akFaJs4!}$Za3fs=zV$?O z2dE|c7T$*H6lB%R`6$Bf_+Rqd8UM`_y;OFY*Rjb?PHKo5_zsh4Z_RS*y!}DLhGW{{ossjOYlSb@8t)MdCLzhe zOs^^K8MkBrl22v%%xz-phl42${5Y@{;G8LfCfTD%5U(quTCp%I4LlfFF{T2lAmZUi!8s40<$*|M}2f1D|({ln%GXQ6x`(C$} zgaU*GSap;)s(0GvCPN`vLOk<=2vOQfr?9XoDuXlLp?*s}!o09e_L5)6}hLl*==r zB)n_0Mj6|-0A6@b1_;A_K4-^WsFm)Zx`hi~Y(0=CHCU@nW6kl)T{Uw?hhSsvGRbx4 zg!2_G4zFEq@2~LEuHI+DxJ1%98Yz$OgpX+4W1xJ0{M;=_Ivq%S|J^e^TdV9&##Jg4 zZfw~yi|+yL9n#T6KMFTI$6svGgXew1^ZQWyzz%X{-)_bgzD8@LLMknWm$rnR9EduY zMN@60cllqlrkatq(BiO6eJs`hSrjcefp+{q@d~kx|FBEPAe1qXqnG!*Iy#-}@&^pjdUtQQX&mcgaCUL5 zX_=){B~V8$R|Vr^ZA?%gJWc9hd5!p9c%uge+>04kp#FO|DSyO~uN9@OMWU{nrV74s z(0SK6VESM*%w1ThnH5m|uB~0-t)B|7h+As#O#G_SzDolqp*NK6IzR?3?0`d|+5aPoN;V2coYsAkl^YJ&0;#$oGG zoO@A?gWDcuA^wRfxUK6k2T1N~f@y#c2C$jWefw3E!1buV0wBsd)WD56&K0n@7bd~u zoHfo_+shuW3%x-6hC(|C1|V%fbfdE7^{xV|o{o$2T-zpVw)2lc8L#IRD3>Z|tU(QI z0;nz~&-vzkYM`H*$g{}y(mFn5U(u`;~t+sH{i_AIoIVmsOD&Cnl}25k^B## z^X{PkzD^3{wkq{{Zl>I=O$uOd8d<&OJ5vF(%2YbH0mm!H7l`{+18^P$Ey)-dHB zJikYE?DvyMhs#m=;rRa!#{W3Re_jhr zGchF~P?n!9Dh%Y>$&)y!avZp3F9;zmd`&Nu4{Q3FaG89I&56Gdz_YeQN8|v;T#{*<#;(xj}PJB z(HEl(Ee`)i9@m1$Z%%1S+WRj``uxlH@VfF<*Qfj6)0aIwUnhv0fM==eeLMF1U$nY? zA%5SfYY}!Y?|*;S@^59yKQ3RnzWcI=_aB7yba!8lH0t+V%crNi8)<7f=KT5m|DgY+ zmY4IoAMMA#)bjX0ZvU6ouJF6N;QG$FpY!SWzVOrcbEr=%cTztN`~Gf}m+Qs6zQ?1} zHoBcnyWiQi+j}H7xo;AMX{4Vxu{a(WR@tyt_;Ctxb)4lwz zzEj`YZ}@mW;`4XizgPZt)%T6xzvxeNpLH1hOzFRmx(~W``m<}n?}Hns_Mf@V?^T}f z$?t>l-stbI?6?xuan|?a?+854rAIzGZW|+WIdM#jeQcKJW~@%ZAH$vTUxs0M;r<)P ze{#lun#crGc_;-bGjTb+I{198%#}=?J-LkDEHi3Z(Rcne3tzNo(W1XwN(#`*j(XN% zCYKL(x*RV#fR@4RyrWN(K|l`>k`MEq-knm?d$sR1$wpax7k z0&9tf0Q_*Rz_A6%9LAtGhq2I{AWavf4>b?IW&!*|1Fl1;zwUs51#}IJlNRDNz`d8i z7(s96ufeej`|e(b7cg@_K*=r`p2hLN6Nc}AYy`Op?j=am0p)!KpBeBWh{SscLX!f| zV?x5l86egH!Q$BNLw+V54RD>o`pDx83B2hGS-+ij+?_G(wEiy@mTM^BzcPNrHku&==hq~^pgi~L~HrC0F%1Ljl zb=_QEx16bXm@QtYha(y`4J_Vf^T{E!y;M`@^F$Lbv)(nXRnB{=!ak|&kgH^KAhC^8 z=3n!v^h9F&)oudH>xiElugoXMDV}}7w7EJH8f%f+WcFEkE-qopqp@^0MPNTocHwd% zcvI1%Gka{-X>#~KeXfqc@>WaWu&Y}JQ|e~8-umQB-C5V{L(>a}UzFo1HjRGqlYYDn z^v91ik1tQ>w_m2=7z-VD{m`6ey`;Wgnb!roodB1MJ!bEjXd|`wxm>sZ>GN2Rd_4gXccqW}RqAHty${WC4xj59W$g=sM)?ax^4BMuwaG}WKf<)- zyp1Ce_SnW0*9&)X^7y%ojoBwg_SoImHm9}=L_R)@@wl5>M-uxk<2vRt-WPLYIO^hi zHJXh7>^v-1!N?u+Lpx837m?T_*GJpREHT5FYor^j2EY~QK8 z;2ze;i(Be^E9=G20NcET_2*{Wvd6u1!uB-I>KdQF)+QU1cbaRQr3U>A6P`e0Y_!WX zfA{rwkVr0fDCHq#_C5J7xu4)PY>JJ2!w2=97b_J$(!^97`zF#_<*U&*!IBQNg7K_n zq&c(*9%?B2!_Cg2g( zSQ&Aw#jzX4fA4t7_)i3~1Ei1B@jrm}JNVXf(UC1YIVXj5*0L=r8Hk(uY2?38{!@2NP(DISt22Z8DTo1$34z zcw&DEim*a4Br!Xgl8if!sm*S>#0u-~?Gm$%)mc`aUCv?QUG>75XQgx0e5^&Oj<>|V zjEO|S-$8iM5Cox8P8SCDWxPRo!W0EuZaQ*;c-6;yw5gWyu!L4D# zzl_SKU#D^YC|`)81t=QdARWShBO7!YleI2oOOwa$dq%{~TIQ@-F52a%wvX}Yyllln zsi)&KMN@(vZH}OsfizjO%o>-fDjqN46UqHrvxcc(AF4JgYmcby%lzE>+2V!wziq|K zZqZ6T1^Ht~T7L+gZ`CGO=U%MDdT!f0z5MsBglDZ;4tsuP|5!DB(eyR#+`V#wgv3sj z=pGcvPeJVGTeNsjTXnny+Rd6#YWY+RYY#7~-H}hxHlD)%c&g7IyB7PT@onj{gQzcC z*}r@V;$9D<7WM*ZscMapURpkxKEAZFHjOK%zhzA%q+=~~zW1^5d@0p9X@Wl{p+U}? z;g7dYN1`;%A6p#?&&;PCdmFKO6m2_0U;UAjgG~Sn)y>I7Z)>4=6ynX+rGdcaTB@FMO{@eEb7iVEPfReO~$#GA8 z%kzI5@>|gsKPu~)<{Yt~H)n>K*Rc;cOtKHo&K5IIw%R$ccmMV)edDj#!sc^#o+uqH zh7rybxqJz(VLanOFb25C$D!`5UbeYvL5*Ff=Nw@R!8k0ddLD7IYXp`rQg`t6j@lTT z#uio8Az7&7F^%#6L5=_9jQ=HG6^g>-vOnbce06+=Ni%hyPgw1(W3_G@MdQj(VGKN4Kw~(q^PBf;mdZT{V z+XxECVLWiA)J?Pp4-yqB6rtSjnu%G7R?|NaHBZ=MALE{`3nyeemOkn&ox1s4=;qYD zJj{!T{0A_oZckO?b-?UxcXDiU+~e5FBnxrBZ~O|F&h%6dhbCO+`}tlqYxJHjzBFlg zlYP=7cQuDB0`S+Vn@RFss|Om{=kwyh`l$l*ED#qn%0m;vDfO+OGG*Y*TQfZ?GizZ& zjYk@$*Y~(p6K~JdKtmz5?N0?8t$x~Wls!5_y*(OcuLIyfR-H1?c~K_81=N15Kuerw zp0}s-FOzHXoA3YeZro!)R>Hi@TmBg+=Qv;Dkt(>%Krn;G7bhq$!S|nuO|r{*`~HiGb_Vf(sC%hD z<(sE8a#Lo4J`PQ`(^xuEZeU+Fwz(^P4ApI|3ZW}(qQ2auCR4!MAst7tvs?AGNmAZr zpq@j2)3?0R<3&p!6HFq*_%k!-j`i2~UFK_Q;{t)K-6j*|pjy^sw)Uhj+jdfYnh*(FZqJmpqp)U| z*OuZl727JkSe(@XQUj+9j+ws1HN^ygjfN&UlSrcg7=y$=Dp1RS8nwg>^162Swx&by z%^)-1V=e71fOymncOYBV&t^?u0x+A`Cbv9W84EyWAP(tk8WKRd6;y!rk5H!$rhy-~ zm03c4H`)`yGfxck`z>!hfq~Bg>w@vhwFCY=kc{E@4s^WSD!`L1;wH&=5@&1lI%aPV z>b~dnbKQDtSRK@F>MQ;hU`;ZvdB!;=j-TlVr;fbE)d1M?`)6JSK({r_Rr^~B`<4=R zprW0g0qSBolj$i*-wT=gnrA5IVO)3cd#qbu6<-QZurD;t!AhRQJmPpDD9zU>=kTb& zZ@=duGF^r?_WVndpqT2|_Cie)%$ny%2Cie`xL9WqPAoUR?cR_bMy@)2Eh3IGxr3cwj*P|AY z)Vk)SVP5pNqdOA8a}Vq7>#1C=lGrYaPxVtke(>(2V(BSi72+?$Vh< z1Yq3a7oe(X0N7+^f(M8u34S4s$eHtt0cOBkVjAIQfTl6?T?7bS$b9d61i?g}6PB*| z&8Bsa$_W<>M<`4fQh=EAYk-^yaB&m9~;5ej_N zOs@$9$##z;V_4@u9CYzHYlyPI`|EZtoC8tSI(Lv<9DB)fqr)$1ygZ*=nhLmW4yu^C zlcWX^*m)JlVaG|`i4{1HD));GZ0cs#q~Aw&W>tV%08QQi%^zuKFuOJxfM^EH0-TaO z=lHwem;jUk2rrslr7cFltVsh;)W)L8G{kXOrrW zjv03W(v`O{@Ad#K)b(RCukPmF%?iM4YXhK(jJDn*j4!MPwB{Jn-~>x|(Dr4Wz<8O& z*V<{;GEXfYz_J1-iO{K7cTU&YjtM0O$irGAr%z@7=k7F)lGQpps%Qqu#o-r?$u!{* z3;;7ziE~Kc3=H!*#czAKn?9{u?S#HeglIVPDp8-v(JI&YxgRc$z_j(xl%OAtNdaaL z1tt~ll!L)H|Ilfq1IYV?Fwg^$oOsTB-T_cH`2+AJa>vVB{6wft#xi^3e{Gi3C)!8( zLJ2QoKy2D<7H}Xd+8cUla=!>Af$OWmbV=m^X+JDYl^Qz!&{`))Y2wR~ORK!-?}gTy ze`-e^AS{@?B_(q{I`NisPZ>jx z_KwnYV9NK(z!t&mI&ybUQVR_=e#e7;pstA)nY2M@4AM3I1IK%3E0ay8OMbC>39WfT zyvC~o*9hU6jun7Ejv={$*wkj{E5GBvG`>;hKY%>8WNN}pC_J(jSg$>PVu9w^yuP;E z+50uiWLZm`!!m%*=Q&OJ9Rf0HT9?q$48iZIT^9lIQ3^Cq{hy*k{dFzzp$6sC-`-b& zHJ^90$}FTdlv{yx4KKp&*K)wWXZ{RM8!z^HZ3V@q9pm+vO(@U5A82?JE*f42%0B=Y zAof1oj^I%m%~%T%Ce+Tg<1>6{FBM!f@L)|~2RSVdTm$Q^f7L*_$E8uW9v9XJXMmQk z3t(%2uK>=EHSaImk12e;;oE0*G$q;dU~@PlS3LS(s`9R|ddMGo1ym$K%lamMu!a^t!|WQ^E|4fB%&F z+PbXe_tqd=cZzcwGIgbwRsDhyvh$A$-AE|;S4~Qv%TR>hj4esHH41vB>@3&|2 zTj*9@JN!DRrmD?l0Q!0wD+@@yZD9JNWGTQemKEY+USJZUIppf**d*7Ob6tw&7ae!q%4blX7igOck6X!uCkePc zZh4aBB?xo=@;{GC0KSi8)ix`W&oNY6l=zr9nr z*l8W}%HMF=TB?1w?CdN5{`ENw?J!TMWh)pye+t59!GW4zg4T~b^*pGoJI?)62DXP5 zxAsf5+{KFJF|_`wjR6O8CIo}Duz93r3Qp3YSc^L*A1m`oZN{|l$nAQET z9zPOTE$J~umEXMI)dvQTRmTEEX=tGdw8J9rQPy(5`{f{&CXF@AoW8SQ;9d`V<9~MS zRUCO`nIe(UEVE-VzQ?i%YNlBk3@w?r$sD3YOihY%zW zZrmFnx}H~=Fm%Ual`oe~0($v4Yxx4ml9R4|(W1XF1zNP|LXzuWsCTsW9y^E#Leq?$ zrUa~k^!j4RiDZX;?lt9j53r{)@)`LL4RtWrCjVjzMF}8(4QIz2?9?m9>X@TYB(dHI z2g`E(5Qd2~q4N;hF^NvYbSkRCnz-kw@1Go-^R5z@#ytkf?S7^suPOG{7jqd4q2K}K z)V9`qp3Bk9=*GIYK~EY`O+;k?CR!9RnR z|8c60}nP?7LKe6A_NoRFNb+C6KgtgeXJo~N37NvYZB{a zPjvmKK!19bAa2HAgrB=s;b=CEaj#Ehxw%aR*p^$};a8((CXT#wn|=I9W}R|f+YCXu z-ToLx`|9*9|35j>q|nssI)b^jNOLDavo4#*+sy~_Bbg^_w$Y4!s@*N&p|l~rjKM*# znJ2Nf1`TIb34&uf&&QjePE z`M$1S9(|ieH=jxL$-VClus3t)=`xE0FAM2B72m#$g(SZczuh~8>MdLJ=Shxn-NBb? zQ}%n&*BR47M-78IL|FO+jx{s!_)lJ5 zm?xZf)9YN7Q`#7l_`)9=;4bH+mvZe8%2-{l=rqi$^{^gI+#26sJ}2`d8X%p4GitUI zdCtM`)m!V97yYd$(4s{b&}_YOzDCV*i%nxTFbNGbnp0a(iy}wzI&lfeG4AMuB|x9A zsgY?fAl5Ex5FFc@qka!G-USTvIS#yi;D*6dIP*~8TmO3IBnR1AAX_OFkG)|Fp#u2U z`%J0N(pT@&ERaz5W<9)|lJC{JYYBY9=tp)iLn9yI@%lhQLvo<8zFBKdx)!7eg2`FK z9E$m~NY@-~p~vd7%?sZK$3IL$=xqRmKzqLe?+g>)H%D7{O?ZB3PPv$#p9e-3j<*Wc z7o-E_5@`tQxZd;SPGzh$#4l1A%^w3`4hcfo!4+#niR@b0Od9wRSuo0BJHS+f-vS0t zVARCl0e*XHYDL-$sDshlx>i^K*_Ywv8jErL@dThLxmdhA9{VWQJ0m{>rd4?nEK4V1 zs#*>hXTtTzOx$J$fbTpn!ym$C&q1%l?w-V7UHoUT!Hk= z=NW;rUSoZSnr#Nl>bq={S?Cmui9OYKFwS1KTfBdJ#&yabc4k0I)iUMT_7A;ZLwbVq zoc2kN69AYy53+sk!FT-iM6J&*{V)UBmPR{+EMaQgKq_l+m=6MVvH+V0jtF3w%N0rP z{Gch)nx&f0BgPG8DERg;`nlyxAe}F$=Ko7f-H;vR3>gqd!}B#$2fcaAlt(Qb)-9p(TEh&8$5u{NYm?U*_bp!z z>`*sOM8YE1^TR`nnlbWkmxdGu9>)c2pT~dye8bG*}X0&$_T}U2X z6PgT2&UCA^r3N?yWl-|JzHC9I;DOj6;#}25OJ`Nt&H>cxu5@DSFx|P{0 z+YC%&np=+B@;ryX_b@uwfdRPy#26>%dur3y+@?HRZSl z_N!(Fo=vLj9?(P#jJs1kPQu$<5gBJ;p115mdzK~~rS(fylU(}@o{)QLlYj!)GCd)e z)}}>s+_sNGKwV%d5s<+&TfEwG<`LyH#uWhv02MQgBpN2J;pENy2Gxgs=atZf$q>iGS;8(0kJ1pB=$0UDD_AKI0Nsz<}eGNU!&)0+}{|q z%DmR`zaKu+KRs<-nErvyn*kBud)|GX-*64yr%OIRgyA6=9dv;UV4+QG>wj^(AOQ@( z^xE6ow-SIABG8J;ZIlK8qONW20B!=t5YToI#_2q5GNx^S&(l0>u-(BS6cFPuphgpN z2Es*C+_c>}?6u{W!){(j9?;#tEXnA2n)^(R>@i`BQr?dq3B;`Z$r*osfN{Jkk^N5lrfP z$NiVfZRmIMy*fEK_E;}n4VzA9ddmNxopSh7zRn2oC%h~Gth7dMs{ME0d<*FM*!ZUX>Z$69jT4s z5a&^i|Lm|+j??wPmT1-7x|)ci>9w&;Q^i-eGLaN$m>yO6G$3{WH=A8Qkp!?M>@c+0 z|Mm2|e%;E-TdtIIs#@mXJ_Y(U2zne|9C4A{?-;ji;`*caS=J=82KnEJ`r5;M{jb#4 z9kwvu*BCWOV{4hQc9~vCd8mfxn1$#cLSJ)<>nd?=CVLM4_(!!*G1;w{G=RRvaM&uT zUw6k-4M0Qti2Z;wwTq6S8mPPl0Q8FBE`!UDwS2oExPhz^k1W9B>rbcSx9vXj{qT$?x!wlq>dybZx!%ExTw068{?a2AgCMbvm;AQ~)sx1x_vcC1S z%X&*KVa7fHa&IK6e0X~^wy>D(18vN&+ds2q8k>JB^K5sGbGHZ?8flEj6JfZ%nP75` zub)n7%GzR*lXos^>ia9J_B)Uav5~!|KhJ29J(j2+mXA-Yd znwxFY;3+3(QyT+Sd18yp69?FC`5uGilAl`ljo>+w3|Hq5qHJ>fHxt}(L}l%9OsV@v zc?WBracjy#SX%U5!E;Cz|q%qNTlzKL+(XO{E!wkgGMU6uu? z7yTtD(4t=q4aZxT&Cu6HEwT1YYY$M+0AWR?VNjesRv%BoTVD58&8~5s9FY(@4xz1&tAbfE ziOwFTpR4va3yQyPf*zYo-z(sYdzT*C$ju71S$FTb=p0B1z#0f^ zPrE%%(-v1V=mgHZ#xrx2TSAkJ0=(IuxPe}=m#+XS(hL^&1ZL0A9W3MdU{N)pC(UB! z&7g<@UnXI;OC*3U)9f07G4euncu}`*-+v&i-?+jOziM=2gnr6e$n1qem=*w+~_qPmn7f>7EM^W z1R7}cp#2qm|2*-geIl^e>;a(bw<(m>5Z*P#+`sjEL=x@f^9BxaGLh43%5nb7=i0{? za6R_7uf)JSI1aza$$#JKsE}Fi(*QB=x2)rJkj;|^L28G^_*D;LeAV$Ix#PbEzz^+K z;p2?|m>(Z2IIeZ__GK>Dt+@UExQ8HjZi&b8lf56Dy_Cl}kte@NIZm2j%QPsrJ#19W zzoiV=S_))B1j;E%N3!Pu^`b>T6>YTW7eT{8LZwS)-nc{39Z}T?*FBbNcz|u6QZvUc zS1s>+ZvbV!KL^TkX4ENJ<6AquDo7@2E}a1~n@b-45c=BV zENHUkrwFi3o9rz+M4-&~3sAlXu*=&!Jy*wHp3vRT`v$Vq_crGEtS!T>mh!y<7XDa4 zLN+g!TOSQzQO`$v7PH~Kyf(&pn5c|j%H=IW$G?mUr{vlvu zZDl#WlF$m~u&hbWfGgiB!0l$-XYke6EWgTooFDTl;OvHE-mjJK?M-NazlK3E3MfXp zY5X%#F6P+zn18pdkv^sWQ{`2_t^&EJDK2%pX+Rn?{aE9d$%)pEH(1Y>X91(Ha)P4Q zyA*_k>2?3zNTK?=wKGAv@LH$GG}o={CH^b*vT*uR#?yoZgX8kNZh-Oaz}vW1yKFUe z%VD8S-c%sW`(9Ve06tG+UG!~zmD$9a+IinvtA%~(d2fHI9=p-=Hd}MNw12yxxDkWh zd@TJ6CwgfXC(kk-(>;xew(d#)na1{WU-RT(4Qo49fmwH|Yma-}1VEX;d5LH$!`4^k zzVivnbmZ_F=lQXXGnx0H?p{#nFuMPz{Ex?zBZsx`i=>Z<1FnOPcrT3bOfifJ*$$M` z80#Nl%%0dJ_WaOuj)OJzzJSd>ew_-rK zErfTUdoF?NHOdnDe$63q84xJrJtV0(!Lr)0MT_1->jnA+k~P1!rq%OTLwB|bIxTel z&w$u7{TZg(L3m_rz5K-6^*JXLm0}pc9L7o+z&ur0ixo-D=sw8p88We^n4O$O9t`8) zl?TO{dG&PNF`IwI!Ao!FF5mh96niVT+E)E7C@L=*TT4z1)4)SOK_e1bXmjv z`(|2w2wf1%X})e-p$tuM>fxE5pNGK6>-uuW8O%O4XIw(F+_qT}8e?jXaSlzZd`kcP zhv7KqtLCX%JMUr>Y_o2e&9Jc@QET*-bPPmIIPVH9A!(IM|MA1yzM3HX=o zxhT_Z?%&w)A6uf}R&>2zI`v^MPg|dWlgmo*NaMWpo8AD5_sORNnVkcuZEJNvKM;=N zF9y8~hH=M(?)~~S?o>Y-FgEit9p--^3EoBd!q8y5{xn*;92OxD-3Cli9U;70XML_o zobg|8UzO>h9pBNA1s;HBeAjl?h=W&;TbHeMP4bvHpR@(FI>zLMXTa*qXDCB430dk5 zRMSc4Vkz-yrOvIQGh0 zGX4H33A5}DsHp+pUnL{_JT<|I0Wa^D%waknu9+(yt+U{By8i7+Ap3RRH~Cn#7zGT& z-pg!;os(1309Q}3umwwB`zON~^y1oLmPDTwxX#2|!=RU3ZExAvAUYnae?Z4VB(=t* zJyGj(BI!s=0RYx4v(V21ymYbz-l`ig=wO0IFs`3v(4sMR2h5EhgGmo?8o+u(9gG!l z_Db>|kqZdRrNa+Rdkx)?TChyQJR7gs+s_!6I{`_u&tpw8Rem-Kodi&P$v@77OwkRc-X_b zBxzpR_dv53*1r)Qm+U>9Z0g%s(J;w2lUnV2Mv$z(e?iXo&)&7~V0*YbbRYXT#Nw0Nj%UdaXRA z;{@TfOYcBJd-G5ydEjmZ*?fC^zavgce zSvVPoJEuKo3p3|mxMpSWnqT{!D{7k0zouNZJiGfY&DK_{fkbwu84PEKT@N9^8l$!k zVu?QnwlS#5S>bMal})K=0N=YZz*F^*86iI0Kc>%w4!AO9klZ~{PXMz!^X-KlQIH@K zqtUJh(n_dp&S{>gY6!Z9xbe&;)Oue|2Fpwglv(@Cpjf7s%VCei2}HWO=Jy4UOb zv8MP5wtOnL?s<*hcmdIqY}xLG9rv7s(Hyq}==&yrK9gLN4C|INK>km++t`xHTd?Rk z3~Gd0W34?#M_f#0dmh-bsf5w+bS*T<4$5Uf+=EbK4Dnwn3=l)0Np2wLh7?B9U=t$n zdRYd3sFBo+I`}0zt354gk;SXM&7d)BS_^-rZN16&n^w0FuMuv%bJ|a*wBMfMFsRj; zl<-^N(I}ga)3-HGe*aa#Py`y@}Vnl6X&r*YQl?&76o}J-xFhIN7z;0w~|s zt)=c>TP4^f$9O0IUvdP$wEU- zUDI3~Bl5iib?0E2jl0VLQ6CQuoKG27w2ulB;|))&cA7a0!?Z}kk_yKANOc@EaY&4r z1?WZvbU7_-JtZcqIc^*OMRC;l|A6_?82=wyx_2!ctlVVU>vu4`PlTq*_ouo6iS#21{eVP z>~0xocu=g2`#R=GpgBgKs3n%*`W?YQ*nVPwZhZAt6JzkU!h>(Bjg0{nGqd&3V0-4) z?4auu|5pv*vbOjD+lDY5h`LaO;WHq8XytfnQP>pww@pa9=e>|yU7nqHjKMIQQx~)8 zc25hF&v1i*F>8)l2<_{X9dfZY+bN;@YkR6$cMw2c>%_E>G`hIX}-d|8fgQRP+R5oA%$&jM#6x4n@Om*v%|$60zqT=8yR4<~0cDxjI`U(%~%(O|dn3 zOB{L_@@NxVS^Laey}6*-(L{Uqg+swRrFAZ6b%HN@)u*o#xy}^4y`8m<_p=^5Dh&_V z3AT@d`_y(Jm^>$KVZ@WBJO)+%K9Dwq&c0Z)+%2V)Fd!_bG_|-Ue zwu@@}sYmsW@D_|mO43gW$uV8X4=D}6%#-yL#(4}qu9PdFuA0!j)jaVb1<&@ zEZT4=sR?q8!OL_2$8d0|F8C8D81Z7DpSA z4B*Cru*@vSah)B7@GLNzS!*rvu>oZsbXlXEuir(vKQmEs2Ioc`=X+K65~+=D+9VBm zJ=VRKGeaYvJXYZ*@6VitnIho)zG;UagV6{)(O92`8sV(*Jy6ve=dGaF1n~KE{!FZG zZVtFk*Z)S<8+E6mK_2{AwyO?rh8gx90Of94O+%wxKyuUAu!F8FfTHlp>8kf?;*0Xj zKv@gYe4Y1J?ZWs=TYG#P1d9%mZv$wl@_wxdkSk!mbwIIaTKW-Ail&UsS6lE6Rd3Z| zYp0tEKr*m?rO?+Pze3$^Tf7|B9W_ztfUd7mzLDj*;eQbR|NDP79Zk}!;_)iem&==R zkAYhTfW^twt8_e-seq+Vs!TK-iuEjBE6C)0^6%51La)NNpOQ2grvY9|J~yd=@=OIV ze;Y>8Z(uEN$XmuLb1x=vsM*lYxFd=LrR_lQ55e z9XwjG$S}I8fIMFs?Y~Gcu01~2+%`A$y&OqWPr&cspPI(F#>cva@w*ugd`rqKN37LK=U`N2slpYCP*%kljep9CM}_m7m9PO!tTeE)yke;(Q2 zwLS^=dj6`ei*6geD{uR)4!JXXNshXi#(gH`D6HK3+5yU~-_8B^a~ogtfu2xO{)18 ziWw*elhwPRSx99rWiFtf{R z&4y-xipku8#u7LN(Zx*fQ1{_1j=87`a(PeW95)M9_s7po$QlA!j@t#ar>3odt)1$+ zy;j|0Fk81YPf^C1I51RXi7IF`Ci!$kPCCn;bJSur7KyMdF}8|nbK=lNPaW0&8n z1;-gsvY9t~r0)AM-!zbS(*SKtU+MvQaJo#NS~>>53~D>*<#ey3+yz8`s(_i}{toyw zM!gPPo>BSJ^$h^yn_6!^FKyP!oa23Jb;xm8b9_VNdE~rGdwd)EgaEfyj&yU=vc92V zYTokc_gWqKyqK1cDtC}S3Jr%F_)(j9=#fL8aKU%&2DYqvWfSmM>hCeXqeX-M+T!N- zyL|&Wyx?YK$-qkxP~$Ajvm0gW5cclfoz;B|-PD3DF7VxBFWU^5%jbMMzJKj;J2S~v zFc~!GxMEH7OSOPO>yzBKytHEm+0{cgq|xV|1{tZ`57Oz^Q~syM&u89YVDRYYk7EL} zOnBbciPIea>52LhntYlaE*{9zfyjEkJ|=J+2IcG5fp+&@?gZmu9@D-L10=`B=g2&3 z+&&@wFKu!b)fWsp-%UdWbN+n2W@w5Vh3}4(SWr$>{r)7&k2HHcDJd`l3lo?v( zptQ$BW*u5@^r%fqJG7-mi{41x2VGj`3bV+rJ z+7u`#uZfqut2y6yiPtWV*E>-gKnP}$<#peRAq-F0WgT;rGwjlwItlOCIqh8orM#Aj zO}H}U!Skg7?7Q#lK+1z`F~NqaFepYkA~=sE_C@aLsNvg~zzmydrw!Q~=~L=F1PF$i z{S1H$xTWMea>?oR{il|;oFAxrq2{fj*m+k0!|nca<57=ojdG6M9CdXqa;By!z6bNd z4194LmV32^kMDn_yjkOZ$-FL__e5qwPt#(pFgW|sgeKLut^DkqsO%q0@?HCQ=AGwt z#@-rartYQKF@641TZ@eQ4l`KJ$4}pG1JJxmz8O4~APB!{M>g~2>sPq{3X$1~6o>ct zH_e3jCUpi}4{hGu0Y8oP$fa(X_iL;BO*_vT-%o>wzAk|C724?A3g}RCT%7TH0*pEy~f013>z<@)PU6N%7}*oojG=)Bkar`mMa~@T|f7 zEzwvq0CDtw-r8Kdm{7wW;+bwsn{2LEaBc13@hp5v?)6;2HS{N!Q1{Ax$6L^O=~_D$ zr(kM4@SK5l$`gHC;rZNl6yUz8uU&3_B#3DA(KPmV#(nN{G&Ic~+e3x2E#SYky`7(E zj0Jh}w8nvYs6JBAAymg;c^o@@CgGnXpX0vEq^}9&0TS2Rk*2qkMPF8x&9v3{pU3$J z^2h(t+*NLQXqRXP4w1^=*qsB%3>`Jm)C_yVy2wpY$O|V9pCxE6!BZaA@ha{3kHO`2 z{?fi+_Hd>!K(Spy$Z3OPs-27%?L~_&r=?l`nG<(D+8kT1Ne&$V4^x_Y5{&Z%?qlku zXL{oSdDjlp?iX0gVLL&NeL_;VDG-m2)5T0iyzp6mDXqJ!Eoo|)d{-#Z4kJokI;?#j~HlfbIHy^uDbZFXy z9O*EC@-XA8_rC`ICG3d>yaAZYWfs_;NBGcgqz;gu`~5*(kiLSX_{}9C*5{l%%gAH{;?%~s9t`dENtef0a3pG2%dsp z{}e<5?Rh$zrLyL(gG=5M_Z7{N+wmrJ4e$-|KN5iD2KZO4HFY!JeD9MggVEf64Ba%i z+^4pW@@tLLkKamQmbJ62twrr|p--}y%%=cv1j-PXfwKXqpYXJPLs+LzaGil}F4JcQ z%HLM}`S1TTly3spGo(e&5QrL1JxrKIXQ{aeBGG6%j>U z^8^EG(AkVUw=I`1x8-X~`zHj-RJG_gG_dH+O*`j6sz=mJ^YIlNhrNOq?i(oL>nnAz zTQ$oZEsaKdC7Fm|IYEn)L2ucQyS2UE|GU(aDnRa<<(&4G-}7y(*Qc@Wznp)Bck#Bi zkuU+jCAqHocI@q3wv)PR&-_jt%yN%nmHk4(JR6sd2tqyl`I7XU+TmQ7)J z(9TC(h7=nJ6b>$_Szk4tkpxg?4RFnB2t5pxAKN+q$`~JMSad~LQq}HzMAxv4fw1fng8$7qh7DTChbDLW6qZGh*s%Vi(On8sk8fpIef%lFE_-Pddp z)Fr?V!%3`HF6PvS8m9;=kJKG?l`slpZE}nM`#kI4fN{Q`g`ERcz*t!-NTD>fD+&H_9eW>GU2vR?A^0frtx?QUC7Rd zn+CcW4Bs@tp3SS-1eLei>B9U?4SuCyG|M+P_cwr!s!6<{Ho0f)w zU)>E&Tp?}=k>dmSJwvT_&2J9`*!48z;6TBh5x5|nYGOPes^>1PnG}nseYq5 z{y)Pvz->{$JCswDyXEz}6OZ3PxR_8N$(PeH2+wH?&&Hdz?>+z4mYL^2HvnFqNej=% zoHv8RPYskaz;?ApUeC3O8rG-pe!bj zZb^V*K{vxe7;BQt`EBaU6cAK1=N!vqX+P52Q$0Lm4dHni)5KD*zU_A0YfBYBD zGC8}lylK>_PiFJj9mB8&JMtdPNtlRxISe>3tCalTHHYa)*wfar3kVfN4=zP$d=gLkXmV^agFpa)vo+l$s^Mx zl8(oc%YUt3Ui4#Vy)?fNvfD>t$0XON1lV`E-XDA4Ns}18?q!&0d)}1pwhxbBIvrtvglpb1A`f_Xz({z>jH4_V zFAv6fu*`$x5x1=9rrx;YldfA+d)BLOn8ZodnF%nALSq%pdP4cfRCT6iFVnB zgbHY`4q&Q0^>47RaYnCMP-1iKB7ni($hahW7lGGhk+K zAlEbd4UKQ*CPAb6#vFLEb42O;+BdW9u3c{Ze)dm+RzrViTTtZ**{2ql z$AhA+epcV-Del;hd5qQLei-+)$+d_Z)RzjxqF#$wxGki%*JF8p2NRSdwWn;B4YP&dkk7P? zh_c;S21q@;wut4;{58-IYKtmbwCK;ErCI)k5OzMecO7byG2U>FFgBytUK3>pB>P`> zvVb7lI)9)bF)Z>4F5fW#cxfUe4v;9e0imRA8OG#i*c@fly$eJ0_Lw!g^;_v%K0JQz zCfOWT2Ejh_IyB3DP;9f%Jmbyj(ew2k0Ng(F41;jhCNq!Jy>N=@)CeQVBPlPTjSc~s zny@1^FQkX+l&b?}j&m53{M{s)fihX3%<>p(779>qCVhF$+H(WfM6flK0K)dWOZA_w9pT_+m|N#0uN>S?ic_p>3zTnK zWYoeTQ2qow*;KfIpPL4_Ua6Z`_jSI18s@#PH^9dOh9jc_0689OPk-06qYRY4$rt}o z@BjO0j4L4e+f>#QZw*ZT$A6HZ9G-u<%q7kVWd5#!-=YO>d3;vCNWW{E=})NX|1>5)iiZBW0^5Af@6{`_Yir|KBVEk9 z8?esr%;{E*|Js23pT@gi?h$qK?()6@8BgtSpT8OAH5}f7)dZ!n9vQ;>_rUT0G`>5b zv39V!>LZ8s<{Z^m!3w6sVP2J2I#|un%qJR2q zfpXcnp2yBcPeIOC-j8+5Ik0G%+0o+Z`roKp74;=GU)PD!!&49@*k#ysnOSnWKrX*O%3nMWP(AGn@8{wEm!BMo^VaGC)508ox{ z`~sG^p13Cyl$tXyT&@?m77Y}?OIEHNTIAuQh7xLy3%BOc8kYvvv?-1IA&hu3&cq6F z(V~lKf#qKW@vI%MTMlV-G6;-o$5}hF0M5Ju$r(VJm}qw|hhccY9vx;)8^h2vLrUdo zaS)8@g<{fWF%zm{upp6EGLB^9!OUwJgklY@YmC78S4*D)2G}H<+PY<4n;dncQ57f}z%KNwF@X0rcxnPlYxG0C z7*4znO{09MW^?(R*C%K2`_!_+^Gx@kekkVIZS7j#4(jD@D}q!3(N9Cz>pPzCN%tNT z`j#p8&E)zHz%QFiGcYdRu2~pt+pOGaM>uy)EBzwF(9uruc>Tu!Yl)>7>`ovU7n4db z`NZv-vgWBPotj3um`^vSTgBV;>o6mI{iqxTo$eJ=?3>_vQYs)ohrf>V3{3JV0+!DA zwSuD@p3C0NUYQq-^}4ubH}lLuCWEdFbc*Kh(^%K~CkD@;ab&>8T2a(+ZhQ?U*8dFJ z+<*SI0b3Q80qZwpi2*W$&aDB{e9hST-%sG3&)M9Y({__(NT2g5=FBvJEym*?7bqVx zfc}O^lyPg|H~%Yu_L~9J3n=C~ep}<_>uXNt&SfQC4EJJEs)Ulu`!sq7<>1 zZQ*_`0d8McZBH_*Jzi7$U;8r}=o;$|iY%w}fUvi0D9V#Jsa2$~hPdX&$#X^aTlPDw z=AOmHFS$uJw9D(n^TQ0fp(P)rt+%u}$%8z|Un&o8&EJib&SuJhJxsLAwaK(}nW@Wp z?bw7)8H8I>nP{`txUNrzzA5$~tp>c2M5aVEQ0V4OnwnItTa-PJiBkW;)#u-nFZH$H zhYT}nX3{*FIZs!jS;MU7M#v}!*0GX}mFgJelN2Uw`Ml}1ZOb#;NGj~rvE$%&mCfjG z9Y~*krvCtgHJeL=c{()Bt74j`lcKYKUs%2!$GQBBy{$*ZXSoU`iiATC&%`m4Rea)T zjMoSURRukk$_$dzRA6##!X}g~ZF+Nj5R={#0*WW;OVz;rRLre&a@j|@?xcS^lkdmN z<sn^mjkbtbZIK=UzA+*ePo}*oUPWu<7&bwEod?4etDf^`n`xoWee>ZNw_pLtn@9CMK z-aGmYRPdXi?GSq(UJdmE$k^8JF767`_EN&)!1jMCrrI#)X4e6J$3P^v^}21}6X47K z)7u6BOiqydzZ+>xwLe!@$^upp=`9PB_C$Jp1$N!41pt|u^v}s0JH-1bD{l<@lm|9! zm|0uj=l!bXHSKEMTq>6s7wxY%3$xrgYN89M{P<0&H~MHY(bloypDc`2F251%`+cn> zFV>FRm63NfV*rblttS^%EM|y}cb)NnEjDJdw-U%Qt8v=gs_J~RJd>%IDK-&}A^Jtj zq&<}y*uD|gK6~Dp@+#(Q%!L4erJ1jI9c6CS0oSEi1&Tj!iv77dYFD{ZXPI-pF;neS zMPrenub3$jT-xgut#zxEd0@hRkpD6H3t#*P`D>Lqzm4IZkW6!a$@#oGeskLi(iQx? zY51pJhgeKzWEM!zgLGUE+THLuZou>!Z5HV_IQ5U$Qp}$)U~yUxoU4Gb`b6pw6a;!% z_Et&$_sv}nH8DQZ!vM-&-2I?)SPJP&1A^}Z%`mZ6(1I`@DrSDIJDXA*X4XRf#YW;K zsq$Hqx!9hRZW@DIH^Cj{ru zCi(BbyE9Fvfm;TR6{5~E2V$#Zx}JgAiwrseRIOdO9@Y7sSMYrcS{vXE(YC+69Hzim z$|8X7?9TvUp)%66y?qRKv`BCyO|q ze~5II`}~=OU7&{wKpXj&0baEf9O}itu2e{ACSUsfxRmfvr^FAT{i^n_ExtZQy!(br zg6m=8FN>fsjtOd}t=eaR=Zz5gBjPS=!iItG;C{ zJVX@xBpbiTAIq2=mphj3_&?z}iTg|D<~0GnbY3iouca?*nNbqZoFHzO--RYmWI7#c z(^{FEm(}NSD5zG6(w3$BNJR-#n#{a6H30V-yGkPIj8_lxAbm;lAb-gP4NTMUO>VWr29z~k=B=A$gS>_WagbxO7O|L<5#UTFjjSb> zCbnsl2T*Ljgsf2(sVBPUB`qfC44e<@Niy;?Gd8mTml(%e{HEhIDovKi=O^f%4tC?v zz>WVbo3c!lrCACpz`|SsmJSJ&N)J%aiffY9cQ}Z+TmpbXF5Lf@h^Z#BFI7FEohCrn zlSgCupZAA(peZ#-Rz zdj;)cft7`J`c?ML-uLU^_YO_*nE%Ru_wRjy;JY#H^lhrHapB+{TJSrm-y0?#V}i1~ zIbiMQJYU`gX%Hlm+XhBP= z>-03xZU69DX$Zhf&Jm~GO|R)V#QHMt!=Qn_7eqGzS-0HZ&H(33{8fLOr*p-f)NAEr zj%~F^gr>n^VdmPa?DjLgwlvygzmHWaVWhg!84q208slRo3tJa}dqQI@17u5b4K|0G zVv8~+0*$!^+D6yUy8|uw_mJhx_`jBNjmq+lj_aygvekNi*O?kkz^lltuA!SYbQCEi zpOq(w1Klc4iY7Uc4|D2*=K1xZ2YHbD<>9UQD;G95>93Xz(vl^#dC=^Z`g$E1cZw?O zB!yuyYV4a^=eoXRF}pSmXAo@Z3z1&O$6IejccoN)eTY>$WZnD;ZC?+yM!G%s9^rw~ zE-zD)E-%;xuf_FASJoF6wkgUtRYp(&~#q887U-bZRBTHe^Yn3T*#_0yWmnFPXugc}J zgz0I8*@h$J(0&b&!%W(N5Qj&)bFE$gAO6-FaLro42z%rJDnOG+rCn5T6sEr8xxX7r z{!G^hphqUfCJYMcepO@paxu(nczuhs%exWqj^+0$&9v4Ewy7O_o%WioRQdZ3o*B#% zsD0$m=hPlY2KaV>tf6+bk12?Fkt(dta^Q)_+cQ2s#oo*LH^Oi4dWopw2n-?6BzZQzm`2E@Q6r zPl5TD%n?&3a>`U;Q-1QE8Fm5HsbS5oO}8IRwjYEg$%FjWNzbH&JCe3+Ibu*;Q|nvq z#1wkI<7(^aYm2o=UJWeA_pK;O=ls;{&vm4eYYMHVlB{Xan7iOw>cMAC7u7o7q}hS3 zT{W&&p&@QYZ7bKG)$mF^xUTEaQ6jt=F8zVO6_{wRWD;t_!1JoiH$ddIqSH@3d=t#C zRgB!_Hgy4Vr9JR{0P3Tjncq=nsXlDA9X2@>@ai3v;E7pvLDY4umt<5l*J>PfEqdNzL zeoh5u9RzFscXS%^S?m0r*Y|w`0s(L@UzU3Ke3h3DI4>_U_3B~VL<2B$yC!j@TMGzZbTL2a&Nrf>3r;56@*P3ghksThEj6GH;4Bj0`6mjQ#UFIf zmzmA9moiK!5)ORloY1s|ojb2RL^Ajl1Jf$!Jq>hE^qg<%#m0mfIUA^XarMfb-0yz=u}4Y3`rvmf%Y zkFh5w_YB?lxISV04`yrpiFD=_UY0^h%`V!nowj4`h z(yo>;AvN)lQO?hn`^{)-nP27O^48f8{mxeIS#g{^m9}o`QP%*)1b|uAZN)=92(3Hi z45ZF#HneTGthrOH0-wt9;`VFlc>)D8>P=wN3q(IlNP7u^l**#^jK9&Wgf> zW0nGJGhr9B$83__vRnsPCR4~T#okV}M3Bl45;C6C&bAEzORWV47*>giKELbddFOOkZSRt6(`mVpHFv3kRUA_4VvWFKdtukjiZgFx<2Yb!z<~FLV1; z6u6Ej*Fd@jmjrshBQVTbZX5&X>%CgNbZ&bec71whE3G+$c$t^`G}i6n2*-KmpEii% zoUrVU-oJgS=jEf~vp!j%@p>vhcorv%+iv~a(SNqJh8dz+6C$$Z5T@5SKkAa{BG;FE z|3L~S4X=UwQZMcLC4PDUY(mCh+CTSngqW)Qnm^~ujC_!Rp}(!Hd4{4@<}~WVIc~jK z14-_~&3Z^u@JH|h>Si@$O|mAOV*K$otfXPdc3Js$BUACb?Ds5{5A()iBoEEFIfyWa zh+AqMyZN<_;mRd)wHf*txTlpqskO;G{)-HKfXr$4$(NK{H{0r59{)wAYGK;#&Aleq zO48-5`SN;NE}9*blj29oiDcFxCfLWt^ctKCb~SyHCakU?8C%Ck-e>pW9O~MYh6-42)DEx{4rm- zIjQ9{QBpo(8nc+BHEWGDmkMaSDzSK5pWO>4o08f@7k;c41d3?tMzHShgFsa^B9FXWQZrxel~~g{@cgu5YD)s8WZ}8Ou0=H?bqP_QXRF67Td#8?2kO3@ONN6+^=n(?9)Pj z`*+{DeZS@E@qED??91kLy*k>tVKI?zl{)ux|4u zmoG8@n68}FU>3d^ZRgaMsmo5~zD}|4tGrHf4?}hjfZqq`du{D^UTaEtJ=6@>X75Q*1eNF00T&`WGIZ-B9kTVjU-=G zA4+|#W;xpHvZ9rH+TRHIDvN8Lo#YDu8QS3qNz2Y)^&nIf%9>W$wag*x-$o|b*jE8a zhIUxx%tJt(k5g)dN&%^t`YoT6*>q@@rI6x;9262S-TuRJQTZ9eyxJzO%M{um}EoqJEdaVhyCz@6{+C^s602P-ls3eWv%ZsVjj}^GR{py%~Zi&^o zl13xU=F+D!4b{~8;To_Tf!-qrg$nFg!wRi(B@7n%xOxzE9)n&8K+c!5({Tlh$@k)-%&ZRdNOzx zkrJn!_pN+So1BR3s~Hc1>_LjZ@@It?EpuIV%nO$qzy55f#t0BRW({&}lFf^+F(i1X zsgRXqGwjts+cG}Ig0P-HYN~I?acE`kK|Y?Xyq?Wahe;G)C{}67x}-MIK0ayOs)Q`O z))}}esMd(2u;)%37$*%skSnN1GB^)6JD_6RB-^ z(`tWPe`T(t_8(@gaM3E)=dWW?VLI>Z&kNi6ZmoH4-5Pu5+Vgo2^7kQM(kVX3{}1w| ze#yKl2NUXEXVIEjm(EFsp8s;KF_syk1d%?Fz4y-K{*}qO)l89oCq3~?Mn~$0>t?AG z14HD`U35mY{JI&qc(7RKO~gg^!4s^St!6odeV^_j`>IXH4_)q+-RmK>=iJ#s+7 zK%ytCt!p*LRk>D^?B|4rlBD$+4s&G(U>VF56JZ5w0emG@AQk{FfSiNnC=2m(0Hkvg zX=|xY2D<>Hv%>(A@gon>61JhpXb)&=Gfhn=0##HuM^YV7u@8 zXTTiCUpcpdWk?3dWB;^0FMiAb&#-P${(}J5zIa$-GfM%>_nKq-SjGTarQ?rW2o&=< z>^^hW^s!+PH0i5{iPcd?$z@DN_^G2R-M6dZUNdZf;+!-@s6-yyR`ecZ09_v|;KlH| z=O7r1*1bh++W>HLTxR!w4p~d~f37skLjkzGuu<(?Wi3-pa$B}nCbn~PMxR^xZc%*1 zoU0#sq@JtQd^TT74ps|;=~8C_*1dVLwS;(ddh^^lt?@wNOi|BN$@CXY86V_tLKgBM zze&Nz-vg{eMcP%qcYNf9XrYuTl=_kwDC2xRt^q4|D9Q7Oq@Clm{%Ezxee=vHQ_KA( zJZrz!r0ynR-PE!6tukP9S!RWdZMt8ZJZ*Awt)T+RAoVhEyw2BVEwK3~Tl*0@YR^~R?Zm;&v>hl*3Q%lX}iN z24-v1A|I5dGf)mWk8ret$d3z-CfOh8$|G1#UJND#092^aoM_Q{uctQP=B!N;qY zDTthe&UxhZ8abBBButWIt)w0^px*a(u@9}*2QaMKSOdf_3m|4-{7%a@+GGIK-|dw# zPOouuu`s}gd^M}qbls{j@YQmQ&&-Gbh%2r1Wlpy`eP91n(`-f1*2~<^#rTJ7{Xo}K z02{{ytbg$5!uM%)?4_#QCF;{Qyd3H_dpr3$)|S0;Jx%}53kRPJ#1$y-`=Z5V)_%YA z-$wVFgM5kMT$k1%8t5Sh>=F=1Sh5W0e5{hb- z(@hgh<#@|O>S`Ph+0AVng$TE*)B@3E(e;3O@8Fl7uqPof) zHqTQBzwR)Uw)VjB+;s+-DyRlep9_8ZAb-p9@QeROWlGX@|8Y)hY4Gc~b6!g7RkQLA z^nFB7zV;a@tBUKP9JigwbWCf{9cd5oG??T?%*C-^IX#6-c37vM?TCV)w5a2{3`v%>sj$ieyT`X z!sl3AoBZQALHdTkG1@aux`LPsX467ppIGy7SoWEi>yR`bIx%FHSJgC6!aL20Yhqfq zYxYmZaaWcS$oMNF-&!s+xHYX0Cdx}<&)rU0t3lwU0>BJu;~BHbbdLyX;o4&+*sAzih@%GE3b&uiR%s_^J)O6Am6&I&3pl};fs6OdEQW<_Oz%h z3L5vWqz+Xi62KEcR<*302cUePb{To_U0#g9@Q&)ywkdGEqU&f|94A|v0y;e&6}@uz za=77(wtLTy>zfFbzZ~~f)BJyq<-elm1fT5qUCG}Y zK$*?tgAA;BN6f^UiNfGR?R5#g$NFBr=)}urUuZvtFU3`t>o4!B?~U2I_51vOe2RFU zY~P57cS8D=1${O8V{k`QT4VS#OCmR#A^QIbxub@O+T7P~`?Ga2$)h>I?N(4I zzme9cYOpbIv#C#8MfnuRtFTAKQMQ#BLUhXtsyReU(bNDQhfErjq}<0f}pDa|yFVbPMIEoSH&^?*CwNFlisaCbjn!fZx zOR0Q}e}dof(wT6VS(9XBU0Pt9K{7xuOs;MFwrut9bepwWuN++cu=T$Bl~3f!x3~hx z;wIP79$yfcr5!B;ZLjr@XrX4em4S>cYZxJx3##xP6GAF&oxtCXOT9| z@I}@RD~K}i1aJ(E=F9ARZ0W9%wEOY&keAhFVzLYnY}!%DAohxm4Z!MlFKbuE{n4=DrI|u4~J+u{I8xr?V+IDE#p>gK4{Jv!Y0KW9LLHn=!s$~XH)^u17 z07Qdr9H!eU|C!z?EYzsqyPAW)^Y;s+ak^lGcLp!BzOIY6IT79 z1ZH*N))^KSP2c%tZg+%ZdzH@zaMo|l%D^<+zik7)T4tNSfAkqkq1euzX4|b45-)Mh z^tprDW!5rV8NaR`|KtE#r2@xo7`$+9P7P3Y?eam+k2OjF<_0L6g$|i%Tlee7-W7Wk zgY3I3hh=;|!{Vr#ZLjWZEHD%6TZ})F7iA$U9?w&80kX0@{`;8av6-Qr&VI@{B%=By zpN`sQ8|zk5iH@)Or^&iNz438awa#jOZR0M^@c~`=Mq+Gt6uhFb7h2}I@n6lb>j{k? zud&|)(=?y4yxycsrdD&9tE^j~>~*l!-9Yt0X)=5U6uwDCBb!exbI3IjcD*i@(>ymW z7xPbOw^e&x@&HhC-EXQnW36y0&8e3c zf9v~QpzrIKt^Jx?cW4<}@~={dNDX+)HPXGz+N_mU!OCFjoEH}vru%Ih)~WWfL1vI$ z@F3vnDaphnY294@zK~EoSxa3BQYYv()C*cOG^}HOH?Mh{!M@=28KP(z}ZcjNsR*Sn!3n!GN$# zwY}!+>ZZ96kX6kRQMpuF-G*>0w85=r)LEsOC<`DFT3yA9rhRq4-O9Y$Gf@u0+FI0W zT3V{Z2&NQ7cFr#sr8@Vh%vC88ZChl}iuApvZLE=oR$H$hK$y-Es+YCfQ78E@w`Hn( zM*V)DXea+R<)`p(elHW3RX*mfc}6+*TW_rms!&&cU-k~(m3J=u(cN#IedAlgx#~M` z0XbM$Sv0EXHpcTyD#vNl~tep+yHs z?$ey=ymKy_ysRE@dGzT`KkZs&>#L9MvL#Vt6%^qBCD&ONO}SpOK;n=Jery`$)liRB zt2`E+wj^PzOfrcOhgQXEh;UL7{?Ny@+h$C_n9Jk$M!~e2UDFs1E)tbJA)n`&@jn){ zD~VRYTk*DNdRfZ+E|>j0AC25& zZ73Z+n<_Wjr+~U=CD~)v<}!7CLsPHF9NAY{2zZdc7fJFUze#D$L53y<@%(uMf$7u* z!E#rt2Vjz?h10_N|@c_$$0eEv&r>nn|`Y7{YJb#=DaTmftscg{Jg~UBg@+BBa z0hY@|L<$pWS8Bp7Ooq;gB~=B?(_u{w!Y|*K9}BQPq`1k!XpLufAXS{?L(fxo?DHlr zas`|Zq^6S5--!cefMfzaDiw&ioSG_|wC248cq8K2Sk0Ub zEV8+?IKcGs0Hh2Sag1_%4Uknqy{!ZgruHy+J(C6~bDg5v^YMKKP$uMiHFsVo@orJt z#z0zR3X1t20jyE5T09Wfwo`t$EtGEMFH;4m+eHd3UzxR&iMImGs}W4^UELMHykCdI zviAw)$KM=;Vt5xJY8L+AFSDh?Tfd&Y!sJF^!amYoNWX)Z6yN*qf)-Ia5tyA8lHEwbjig%)Iodcn3@sLkWdDKTs3VnY?~5WrbEH~w`@`)8@6K5TSn zllN)Y#?*}g^OC5(&;R7@M#Kt?#T(!M-1vXooi_}%o7W%cd90=0?;baE94He+`tE70 zF;4By&{s|*dLJr5{%6wGiNW!d1zS=(wdyNcrV(CR@~>QfOKgkw3>7yIpWps044fa# zumAq!!3_I1D($LOHW%TKbNZbY4RT882vR3h6gq=UfRHBF$=huD(h@6hCzd-Dm}qMn zKsKt>&Tu{SL2)7zY`&kw2}1_jYwDO&c|y_2uj!mMZzZqHzNX`Ks?UjYd&fhw6*7-P z{nBZ}P|UEX(W+5a0BqpcSEe;TLRPqFdIr5&`)na72q9V~{5G zVihY0(VtCyJr#U>PprjSTmiNM5(UaeoJHUSq+6GyK?V_&f~S{m77P<)(*hHb6a=Qg zFtrA-hIuo@OqWN1sGu;k%>dXAm=%|qS+zI_4E1T={QiXl_VM^yvKh5>%0YTSxsnbL z58&!)=3`76WChBa{`(fzKfAX^D=TZS>bb(v% zn-GIp0WtT7AP6f!83VhNV*p?6pta9EUF81yEE6gofH?7t{$vPEGFY^Kbh1Z8Jh1&{ z>@W)^H{mw3Y5?TZ!jfGPe~}hC^Jt`uZT&c#WRKNuazD6PNz`riZ!!p0*+@q`QNi&u zxhp8!$9prkJ}zT=JN`%73FRHP7fE@Z5}ISoS<3ia$-3DJ&2jWErCOWZ%769oKlSQQ zFt4tXB+vbtM3vrrZ>X&U^}KZhlyiYh&V~7;pBf-`m;hyf-*PU`fpKoRt+tMO?mATM zVY0BCUIXQv{(zVNUL?tb{N|+(cIy?tj%jmOQ(V$Z`8g96Hs7vS_R4jeRmXeMX7dU3 za)%08H-P$0>Ua2)iw;v@+>`ZRkiV9CMKnOX4|snVq-Et+Agg{&VX`GM3IAk%$g5Px zWt2khwRbXIv97oIes$kg&An`Bm{(F0bXi3Xcu$9tzVQpMq%w0uNT`av*LUP5WAT`&{uuZO%ZMME6<;+kSLy&lV{e{pMC9RyvhF+QIXb+LR2X;&PJ zRH2+u#Nw!!p6FnoXlQ z&9ub`W#nlv#|9RjeA&%B0x0cvf*9*VEIMN(Rs4jmqx3 zduBYWNgns#jT7Dh4DqaCCJ?TR41=yzdi}$@yg$g7U58~((>-@u_c~t4^1SWZ&i^(p zB>ents5J83O4~G6skhI7%(Tq{fPTByS2_sF;CD@C^zAuVfYI0LD>u0h7l2XTIsu)& z=ac8$m0H8R zlsXN^5Igq7Zk}ZAHHf~JmRJ*kL0SWwEErFR42X#oEVR#h+-R9w;;(b=&mrEgN1B7? z7+((QeLtfG>y^y9{_t3Zs*V~nZq+g)9y7CT-%=ds)%f=>k~PK(n*aIuu0)*B%uV)Z zRsoS0e3^AYd(X?pqV`HYJN{eS?=!bvb3&3YM`->Vu4M|Sk+$|SOzu@_RsDMFX5O^Vm zY{Rx5`U40)@%p2D+Z(qxkjtFla?K^DCj4wPt$VDFPBD_#mqQ{3@8RvYg67%j0>bWi z9o_!C=Ro>udLQi~0&A_W$ZWnc$tOSW5DyL3#*U6S)l!@F+ak@&A^epMJkz_P33!da zA~yiI6a+Ine54&zi!|R2FGL|eG?{LP)|fs>faR8vo=vmcg)~0qeefgv^d-P(Da}G& zIcH1#ooT4gWeS*qlsgNGRiE1WIin8tSN7t(;8~jk`M7E6V93ttw(ktuAv^}fn9~48 z8jE@$xoWGGcTi3FI8WV;{%Ms>w2!Fne;YwFfbe~S#cquGDh!lGI$)U#uN|0L8ZE>J zkWN&t(|~oe<#cn0^YgpR*o_1ijP$S5g69l+=jM?}Z~c&q#l=i61j~ri+~1 zP3z!e)Ti~Fv<;-T(1>>u+tU7HDIuOvRDmt_73kXFx{z~J|7FNEG zaqU$G(yQYJD5EX|+X)xJg>yP2fO7IOevd1W(?Nj zb+(?ilsrM#iLEhPdtFu*F_9G%JQ_+|*|*u86DFNT3M8ol2|B@ci%`>G!K}0LO=h$V z=4of0)_pZ`)vcw!OvQBiF0)gEbc>0$UcyxRWi-V8Gzl6!1tVHcfi;+&RhV7b()J2S zvi!@E9&w8ujKTz&Nv|{=iv-3Dec6~;M?rcHS9RQFfH(z&ld|HP-oZgA$$x|2J^|Mk zu66DKbUj};shu54W)9c?aF5tWdbC9{Xn*%218;r~dZ2(>+W=5*#}1VD_Uh~FDXRJ2 zqdaKW^%}qT`%@qcpseY9bGv()Nqm?4yuET?IK=N43k>30x;D(?^<6Udar~~tLay(J zzO!-c?~}@#L7R>5 zM|^=v%b*K{k24syRm*IDp0D3Ge4NcC!ecz+`)4L?m7WEPg68G2Fkx4+toQYBxuv9~ z$7I&OWs1H^Mf<^=Hq^Knt||b{2iPBq23ZBfVAY_VqQB05%7bm0OG zJk~QaXoqZ?G3UtJ!!AJWV(w{*Xodcm< zHK**%cZTNrLO@*)0k+q}bRH=aj+;#810GnaQOu*ubyCIiQ`(cf{CbfZ z;Lge=xD_&BP7xnkB5pG)u^xc(-;X4Dkl&mPotVmbuVvsHq-C_`)w_JIbeI53IhHih zG)qIp-=5pAC!aTT&J!-5q#~e5$Q($U%qRKE<+{_5&#i#+7FuN{&R91$vX&_r=i`b! z+uH^+Dqba~rQ}w#e7vGKk1Gii?9e!S8t<;W_=cKNG|VEiKZs@m_?|YMJ2cFb^LW&g z4xvgd3XUzl@?ok>>^M}X%3*7QCsWPwpFPGWCRnOPhPJsfx6UVL4f3|MwKcB}7VB1) z9TG23H`$hBO=7LGox?;vB3&{cfZ<9TB@Ne5Lp)@{4v;>9|GssK+%NHKziTRmIksLO z`2oxuGijCQGStl0E~dG=tW9HKF5S}(L!LM0!)&IE^6y-`$)?7Y|8J{#ri(CcHh<)? zkAyijYkaTOXL;Nz;Do052fN=QLt}<*Ae%I~3Qpf$6)>yq28f2qHGt;}*9?bNIu{BC zakL%RFzINH*?hZ|Xop_|_g1A#xu!n*Q!*)NIQ4q9cqKZGsw zZ|TkfGHaJDHaS^zpu8S3LpJ1&zJJp?3u)Nd>ZIvQf=U0U9IIJnJS+=$TQb3p3^72w z^=HBRT&^t>c=@0d4fbpZYnplAgr0M&QRV?b3JK#hhO+}<4MW)aFVBrZT}^Ud%d88z zKYlaFH$UdBiUMLL>-yJmOgwUSY)fBdP4hp+f^uH0-taRW(`+0*9>Q!pxJd39|5rA5 zkg4XFHOmvB=du==wV>lND)52k>vYfWT(_O0&0dS=Z5^4PGfvIB%M`0}-nVa5! z&D13Z%Wav{P~*BNSB`Vr=19OE>tMXv z)McdFrh>FjxyMfwpHhluc{P-Y$Lfyuhgy@YQfZrWxDSo5946R@(hUP8XN8apagog* z*+WMuXjY$OOCKj{2Tn9oF zM2uve#G1b$Cb|xq%|}xIel8PZ(=`3;K8$R(DMQ3Qj*0U{2?M1Q_Y0bcgPbU|s25WC zTxw`0)zY1f{km$=EcUHrVkGPv=x|MNfD!ixRkKxS=6-1WWZO8x(wg3qcG6-I6QGV_ z4wCdc%GGfk;{J= zpWP1*ZnN?@17!ulTIQYCdA++Z&>YtqGPu;T0IRq*nvV1U%B0y|?B+J;^=|wcp&6%g z0Oq!@z})M9;l9Z4=$v!OZM5h4u6{0Bcf3dR8(w?*zmN6lK7jJ0tDFwgZ1yXEB!#%_ zX8`5BYE$;f<6Sv`c1r38z9FNpmNZL(QhX!=DV zw0re7g?9Nn*CMx^007Ne#z??^&R`f>i{|@}FjIPOyvU}e+HXtyx66{gTw>Snd)ts> z>%r3gAO8UemWaQMgynYdx^thlbZeS}1H!(uCfNh+OX-sjX?)Q|PSPC5ID<6F{d|Dw z)20tTrE&F$&S$rus=QR(8Q2=O_B`Lnk7s!-!&d*4=R-lYZdZElX^p!LD6jIki?LZ_ zHS_qbqGR`lt+!5cbPCJ|+VQ_4_FQ2;Q2=(ajN^&gAQQi1`OKEfnKbjAf$Cj*{y^6; zP?$#)dc%E>KF&k^}^UUV+C2o3-F+- zCSCvO-xd|oNKcLYuRf^XDnsaonXvto4YyC~c4~c_cBD%67GXK6d-n4?EA)pmF_TSN zO@f2rNtrXsBVT0&+p0lUAgxt=4edswQO0aBeEgiuYZ4E6>D#T8bjsIVorM0hENzVJ zEhe2_&9=l(wux&;v&u^Yg+f_?e zzVuls4>DcbGGXKjDy9f^;HzqFeS|HtAS+Abr9+Kz_^o{WDkw5g5WzSs%0|vOp&S(*?V*l6jSxuPe>6 z%2G<-CNj}9FHy!rOD!i829k;9_;WINpWcj>46<38F(QW-q`FKnHpvt$vmY~JFmsk4 zoc&m|$za<)ozX_4e)u$pw%NZaJ!TS31JIk4nXyH}G7Q`!x(Kf0dT;!Xw6%`si@bmi zS!2G^v`x?d!_c3jtYu!-pUKC3X?;%~+T}?ld{n!YsdZp)4p^T$4IkBNkVWd(qSTqv z=g4Q9*QvU$47J~LvBs?D*j&eh{JqJ8X8AWH@WWt=`kce``1q*H%2rtc%Vo2?Nwub# zzi?k9tXB3sr&^WEWzczHAIF?t?t!(!ko62uMmyTJ+c}rtG3D{FfCJ z8&KBzHsZ%9+yY`(EN@aL)P`?YJgNw-+&9nbG=t=$LCpltovuJ zjrO^lT$70&z_Eho3Mi9CStpAMju|LdA)vN{O$?XgpG_LKeqG-#{SQf|dES*N%g zWb;q{DT8zKJLK?BZ|nPoxwC1Q-1HJ*Xqeonopam7d_S9SS{NsqgtM6_#A4C9);Q7; zqDMpVFlZJ6!B-UiM^b2o*@QJTxvV+fBa_xWD!3QbhL)HC+d$^gaf$;Y1zh@{F;ibT zL$ze^Ye0Fg0A&Sy*U*$gK!WuypZkMfM>WJ1*d6y3DBpPf&@$ib=6avf@1o#W|Lzk7 z!3)3cQwNIrhx*|YeSK|M+4i-()*CU8U9_x*hO)MZgl4%Fy^eu>2F33r+N$SO;Mv8r z)$ek9w2WQ{X6Oc#_cGvp?$^+Ay00L4SBh`D0^e(B;74$8_a_Bh|L~&xe)=2lrXgMr zeFygFovD1#uWA!}^LO?b+LZ>G?ZmZxX^3}^N#k1cZIFw_LW~1s)nMy+_+Ithwy;&= zKFgO9$M%igWesyUEK6SC`i?$iUJTRU`#T5F?e`z<8Et>?s&FJ=5so#@Yzd?Nk@iKL zrr>$$c?_Dj4wN-%yOoH+tm)fj@pDF58xJ~u%(?5;zC3R$|7Mjl+V`?`7%CT-Y4d_B z17#m)Y>eUP3m}t(z~ZR^y+@IU$PBJc7AiXKe52RtXsVAKC@V;2psZrCnvZhi2_0ND zT|qLFc3POI6)|nkjQ=JIiuZ<^^=myH$6>ivM+=cJ0L(*Q*$~;y`0x2|a4z=OLz$Po z@wpk5DaS6a8}MI>*OrjH71!t{n){{zvNUJ(`iBlsZh@N=W=b< zGS_q7=^Xk&{x;x8)V_?TI<{4<29XFfKq+U|Wt#Uo5er^WEsW$PJ6qAS3 z9uU6u7odu}A^rP5qqxbZDS$W9f{2RyjsCFPY#z$>56HFm$_aoV#T(3s~R4}PFB%LtCc7JLSw*fn65Ele%ZVq zn*M6PwD$;!tg*Tva-j=^cS;3Wzw~-9GmG#S~W05H#K zkr$G+#*c;qyy^4+OQu-`a3p}L`5>ZVA}MU2dzt56-hi?Cqq=5P0h@v{0A>Zn3ILzG zCiam7PJmwkNlrJd>N^Lv*IDx%Ky|k~D*)dc0>RiS09N3m$1oYzbDzE_*VR93$8J6b zP*MO5&}!mI3D@EmxbaysT{pA#|LU%4N%n`^5dGl;2Y{q#?HJi@}|d7v2oI~?lcw$A&klHxa#9DdLuEu>;gJp$-60?bwp zTI9oe?8KP%O~h*U+zQ zYqRDaqHL0IU4yKp0m7*P&;*1j{SDVW0^c_x6N|mqQ6S0d*Io~o3Dan=Khf_!y@eWt zG7k@jeVUh=wYmW3){Gk0uFJIZZfWWgX%$Xot_^apG;ltM!de2e`SuSFX4`+o^6_F}w*Yx)uHDv?)7pCaRQt+qxE|UzP)ntG)x1II z*ttNEE2NUHW!BPr1aj{?ycQ|3kZ1CF+m+^g_z}T8iU&LvBj`x(dhF)Xo06?*8WxI4 zLu%$OnUH*mlZROHDwB+8`|^HnYq3Ue^X4nK0QiXdVVBDHjtADXhcq8Ofl_}vL33ERvbv`@6e-&)xuB18x6#yv}pF&d=8w zFg~U0|LprJx)7mdf;5c@%Usj_VjRcb4Jp!9G*A7*q20c^BB1GY!0o`^D4mnwU1Fa}zMzaArl1-9@qrR9*4H)P=dJhY;=a$^mxIVl zXiV2F#cu}5Bb#OiIi#Cs=i}M=kO^C68$dqG=XAL#XH2m{>~%!PDj@qZ*?8t^O!v@M z|HN%u(H4X_Z55^HUYlNn(zhTcZ6+Hu+AoWL|M^a^IA(0QVMv-+z98 zzRoP){rUd`oAzIiJZP5xr;5)JLL;1r(13w*(KMGZP|~c74XK#3AWb50`gE17{U~$4 zHm6B0<}E{2PwS6dfbu}+#)>0d%R1gvgIBDQ4kAG^!S!p|VYmm>&h^Mu6RAG5!}tG~ zWZqB5f##Y3I|JoouRAoz45-D4zOwI<4vMkLEM=gqfU<~dkIU+{X_{AggBIb39ov*#cEn4%8#_lkJQHd{$Cp*izsq(GS! z1qP1C>nf3#?R!2*x=f?&bpkjW*d|r-Ie>DQ`MH_&xlh)X86+F1-O|OEQcH8JW{TnW zw=DI(@;}v1SEsxxTh#&?sh7AWNQRoU8X6}*HnUASK85L~ns$z5fA@9~a%|X?N?+{Ej8Je>{V9OCc(Ajrm_sORfD)kfJU=^?|_F1 zosyeOD=2>M$A}jU@MIcc*Y2uT_{m=O`K!#IUr3NxL5q6hb=q_CKLEq_@9CoH7k2%b z>}GB3Vn`KgW$p2S-M{vFReQWEMZ0`( zodLfdU;DGMw(ZjI+qOsQJOFi}?KL;#noQAME53J^s>K5Q-Z!qbMm^8{uU(LUMqGb$ z-B-45dzYNlY|ry@ll(VwA7qGH5WqkEXD2U%SvKBXEsuBkXN+%qHR0IaUTr|ZmJlGe zLzPt=a0rD{(}gE>m3TQb-dwuLHfxq&`a7r~`P5nMVL`%d**L<$eYLJ(QBC!Bse3I@&S}e~7xcc@%(f+4@@yslS^vCrpiF(Y zmOVJ2)6aY?wZ6QJEg2|_jVA|39?p>l5?yGuMOjbFp$KVgqUUku$KTNQ(Alo_7~`L& z!}MBxm`%gnXrsdtOLF)qSa1ci_9ioCWB;GV#b)>{o2+vB_h$%uLKM3tGXQ( z$(PEyDUbVK3n?9%JkNj4=d(4P|Gi#Q{(oKA`6tq}XDuDYMQXIzl7TDo@}_8f*JS4W zI@(*}7)y0(*6y+&aiTfyK-P_~tGRQL@<`Bzdd^+{7OW(yEj5R#?w*3Fonueu*32;44)OgQ;1$OI5w?ieGIW-qT=b ztuWL4XVFgd^*~xNg-5&eNC6m)m z`56p3X0omN=de&;6Cs!Agv7#plqxtZ$T=oSZ4BfY;+U^|@?{zfFJ|V|+d9Nk8xBe* zch!V&>Dz66taX_=wQFFEDCcdi>y>FB7D3DflSn4uQKssb1Wuv-0XP9O^}7-LzE}(q z+6mgRM-Gaitx|0iCfOYOcvgee3HxN?z_$vw1oKv@O=0)QXB14wmFAA>0Qpk*t&#@N zn35%fXf=&~4u)sfID+H~+F}Jx3Se*E6=ErXGS=p{n%zo0>SARY&9MR7@fz1n+4lU< z2z#1dOM%j^mut1YvMZB1cl{srHCEGSXl&bd_O35}eFf{!^f|pBN)ZRWPrcr@j)_Kk z{CoZ^SsiHSZs)pf`$EGkP1|PfL7%sR`RnUiGi|@;UHKhCJ5QQtGf!{H%RKLg>e7RJ z*j-pz^P^U6@i;dAe%${1J6(KR1mT!Ud{a_FV1;EwtAVc6%Tj$5>aqZmJE8OMoG2`a z@7(v9!LnM3s9!PzS$yXTl=a)jw{Fb!`-P~_#6hz58>d3i-^faZc@A2a4~TLnynHlF z!q>rd1lBRoJ}cjYS=cP|7NA=Jbg*ShUQpEI&@?-N;zZC{lSPn4IXEl8Sx|&yH#_LA zw97)_1ZgaZ@Pp##ALY2rhdxIAc$7)JS`%+eZy2|KB+Do>$M*WP+>b4ob@DLQ9J7`g zVWkv6|I;Y|@w`^qk`zRPdtuWow5#yE0_m|R&+{iKn&K*?rOTT54Y z@Mipb?e(9G+hb^^9q_&x=X9@mPRE+(b}rkW+tyZ!1Eq<_j56iGjP}^>ZK$=)B7J>I zJ-xwvmQAipoGNxfEOYm`lL;AbN$2a&)iHPegZ%d7L9_fT2tI&XbDV`kK(T+tR9Zkh z2(NPSwybLLhdE5z#Mf+@{*cdXgjwFC-ijZtUu&?VT?6XM8E+B+WvOp+jT>ot)<~Dy z}{ z`B^Y;m-!yMrWihD0gAogpM8?_B|zCss1GD2R0@ib%|IEl)HW@PnelcPT~OwY%&k^7>*mQF>CG2XVi;7@(COA`B+V;m3)fNO&&tXe2blg z%dSbGkbZCt@Q17HSE~S)fpTtRZPpBJZe@au-(rGZ$;5iMWNF<1i>!U!y)NK3s=1c# zbqsuZ`Zbk>rWt<#l?rIn2v!xart1{<677^!0o3GmKOdj#)3MJUe4=#jZM(U4-{lTa z7MW_0HBald0oy2P=*#9Ksla? z17#em3AX}W-Rge_*LM|wR-pXDyV~p@+GF3%v9sN}!K@$9&Y^y9?YL4i=j{&;ND;~k z-_ydsF($@SIrFe=>i4YQcx(BA1u=l)@9BQjO#9_N4bB&3fsK8ep=Cy&0N-YlSCr-g zf9DV{V3!U4u#e{d_ zfP9?o@1Pu4PgqS+a!%F~V^I=Y=eTIhl8y|~IXwU)xHh}D+ZblaB@Mu~N=@=d{ zj_O#v<9`a2&GKuL7om4NHnWyljb;DE+ob#L_z$4G5yH^n&XuMlUc3k&;iYJ9^9Mhk z<6p74%p&_GyQcaC<=0Z1R{MExq$7XG`3jURABvCUn(IN&OHy&ld=4nk2 zL8j&y(>TX$>dYTxO9Ie>?Fz36$PsE#-2&k`Z8UcVb7tDP^Q!xv9uWfd-wEb6=-Ud| zEtf9aHQ)b0=QNFZJ=Ads*EBGoET0o;-mr*S==H5}ohBWPT+?90Qu!!**$v&#aTx&3 z1bbD?s?|r?G{de@*1=X+qBUPltg%uJi|C!B+HXqzj+GpQHOpEDKsRD1ADuQ_T@HxP zHj66slWnDJk9<|$!gnxnm(c!UHjmS}NHA7=9p`==?A1B5BJHYtln6l$<_FxzcZssM;Euihn47yxcJ`$#7TiCQ3eS#1jdt{wxht0-vISM<6C zj%11rQ)1QXz8|;mIUnaf%jL33x_6k~zw5R2I(FUbT>hCqV>4lXmh(^^z&i-VaGn%R zv7PDnq~+8<_`sjh^D+JD`x+3#Vl2GC)f0j=ps-MuwD5(Pb)^dJjM}w*q#)Z z1r=SGGPCTLLsd2wr<^>`zCHR@Ljz55!?hoP@3OVuHOtrsnO{|w7U;CQ);>c0n@!&4 z1v>OY(N{tIST)D!&tU!XmY&typYp!;f7%bSRSx=Ci`Bdx+yq;t^ubHrK~#cK+pK=e zTFy+c&$Ayh_$8u$ca1VM$uZCMp;5N2hoRyzSw+pVZ3x|z_JQ$Q$LN1r<#AdUz~{z)Xq1g-WJ4_3$3l|I zF|+@lG-z{8lf1Q`x2AlgkMp3{>jJ2cef|VfYul>%^;q^~o##DlhW%Qkkbtcn9H;ud zuxVPAE>qm&wBdNiQ308A%S2MMpQKhYN&Q%STQgnfv<%h(YV(HOBkOzM zwzch;pZ}NiUi%*8w=q6KZ9!{zC(fC-)*VH%iCoSSMv6Y2MTt^>qk1PL6#% zBhzbJO5P(PF3Cx!w(@*uX1*|`wt*9cTwuyo#d4Hfi2`HQE@RbN2k_P`8}iK|#gz22 zFk3S@EFm=tp;ro~(FhH7nkx2D^+T?}uM{&n6*HSN?XhZb7ZJ`$E{(){-Y>Fs-(HKVEtn%~Bw2+il)*7#5J+2GgGwD(Q@Eyt|k$Nz2Ske7x4;x}@==LVMmzY2V`M2xxBZsxn&WDcZ10&(%%Rah;01?3%VxtrbiZ z&_N_dzYG7y*E1&GmFyPcGIn1GX#k)=U%$xSaQsN>INAC>KX)=Q^^eyD8BPoF?}F3j zh{Ra#==$8*v_h2<$rw8y7 zw^I7iNYjKZ^}Qk$M?@|^Oe}^#^o6u7_4852^CJyr+i0_bV<(1;Sj^(S%f^r`0h)^< zd58sIm}j>D9NJ@m<8Qo7Fk_Ph&t=CAN`bSAT7p>_|Hr~WZY0KVD{o_LCfyvfoTkJV z*H1n}^rf;MYG7PRGvBd#(lk_Nq@}5{VV%M8nO(=h@jCl5$5sjn81L8DP65tsztS=f zpP8p7E_2^}wB+~ZzC)?5lh(Q<_S@8}gBn`Jf|f~pdCp$d+L`}PLHL9G7A47p{G!tH zL8w9IkXpz7L}8h5+}nptNxh`YSY5Q%N!S;|YpLq1O-}090=^`wWp4eNXF8s?Q|C^w z0ikOt9VrlvS4n!{JL)VlJ+GYi{Y))-yl1=^cbxK;uQu++nNN@7LA|}|k4v>|QOUZ1) zSMO~Nz{3a7CzGay5h)>Dq?vp=h?a)T3k=sv>IFt?OnQ~DOXuDe&Z*;zjL9@KhC#yB z>RH*rW$>t@4Z9eg!lPR7|5x=CsO${ODZ)lT2)-Wh!zh znE}R9Ool5zTclA10o=G!sll!RMF)BSq5z1`-j{O*YOeyyC)yWNzJXh>@V##Vc0asN z@_0A9OF(;zbJ(|(f$PUHN7Mh4sP;J(@GMg8TibTCru&1|^=z(q)C5I>AG;B*9oxhCgITLbNd-s&-!zFUJIU;+zkHQx?pkl{{G3} zoUeMjxPkW%jNHbiE!p3>@}1tzgj^Bs%Ke)4UB^Pw9(^rPYaUSj! z=~6V$5QMGb@4sT$mioB2=*EDV0WpqM6bPHE$g9k2v+Q^qyW)jolU^G^2#}An6ve|Adn;=dLtLj$=MH1w`Us#G(yqRLh_z{` zk5O!miX8y2{laSz_L&j*J4f4^>#Un?NSdY}&y+nG>ikIeHvXZr+Pm%mo7Ge+R;VSLb}3L+kc@%Wwwke06D}z}$^OUS*$+#Y3@>y<@gr4K zLk!b1TXjE`Or8=klfB%bgwL36|LlZbhkifed6}Jh@EFOGO{u*O^;rWj)kzf0slSq3 z*3ADr-_n)ku(R zda6Lc{4QT)|IObk6ZMN^+BIXK9w+n)G!U0KfU>yXv71Gk=6E-2>jHq?_xl3$t$o+IY;x1#k)^(xAe5w6+*W=3c z`dx0LzSHmgoFKEilAH#US2xc-+^a0M<>h7mzV?_9K(dB;j{r2jZ;pA6?_amdes5Y| zw<>8ZP@qi@t+UF0wJ|Y3ykGpBtq;@1ynQ#7f1BC0gH`+IY)J#q%%Iph%WXEzHd&Ue zSI+TZMbuL0pq}8PAJ0H}i2TqRJL#7K>Ts)J&9b}Ym>=_5{!=jgwb!ezJ-T3(5Rbx!WCg|9p91A$--m35GC$eW6SJ^}gU>R*L+d=JIyr9ULu0y`S&IYXwN$3p z3Xtt@J%rz~Zr^yh*HQp=fMoxxu4A{C%6+c6joj8~GtHR?&ceKxl|Myz9@-9}>xMHZ zb>^$g)Lo7-FK4bF%%{tB2b!lRHyxMM+)H=<4{Oq{4(CCBlak~?elcmyl#8hbf5^jx z6rjhHcb^8hUGeI)M852&?U!q{#Y_rTpNsab6M^X@_nHX-5ckZlE3@oD>Nw0zJ#(^d z{ve@6_L~Ni^&hFuc6GKjiK_gSg+fH-@+%pNSydAg+447Kpu~!^g^PlD7w@AD4TE)P zl%)v|86;r!YB!jyZL5<7_e)01$_T$fEAY@9gN;;$V5-NfS3!K zgsR+)8k<)?r%KDi0GZ9H*_2u}PS3%ts~RXb-JB5i?#VrYjA97t*wFR8wvCGC(m+u1+WH8pW4GT;p^x% zLNn~=;o4TOw^#Smc#WGIsjgR*(R00?R-W)X?10|1(lS&UYltouShy^|#`|(wXwzBv z*}_a&f0L(VPCh66+l9Cm8m8TICfO4$G{00L;U4hl-SnB5-}?34SpOo3$Zp(ypfcYk zdEs%uRq(ml{dveLBMYi8MdDOl?Fybk^TpZA^}Tb(qn8O*>R zKw3H`+A40QebJov(%<7qpJCR9`-}CfOYe5Kr5iT!gW!eO%2d{0kwTqc#+p~2I zG-NF?uX^K2ucbb=v?xbyYNv>E)46q$DrRy$E$f*;^SRjqa=j3W;mqexWsq7!Ek2Kr zxoVV~vSz1hPCO;hy?_4yAb&mb1>oaB{!(ept8-dQMPGLobLJRRQ|+nWaL-h`>Z2z8 zZ2PmfWs9wKeQy21*Z$Mh{iLQ+DS#T=&-R#2UInCG)-pBWuJYRU%*kKy9khUXmCse; zEjwIE<+E&gg4m5i>;oK^kWXHi%&J4tJByG@evo>Bxa3FoS%#l-1BTCN2j*;Nm|*Zk z<1nx4BOm)X*GN}D&UG%`3DTHQYlGc)Im#|mo{Swha0a0a&ZG0;1h!L z%0)FScNAU)6Gs&`gKT}2c~T1VNK9JWkWi4;Pf;~ZSHxCr?AA?Kr#ZQn650s`Ih+&P z0bp#`fNv-HcrtmG3Nuf)=vMujA8}|V1~<*V0$lcWg)pE3$YQYdgHPUjzz#qSfDR_g zDwRp``=*>^(`N&=@5?&~0NR4p4`1-@SLH^4d^b*Z7GC$$r;e8$G`IPmtIN(K&^@V7 zB<_WQb9FxivY}}YP>ko`*J!UFz+Vb5fA6O2X0ks1UeDeaGk5(BDwFpy|Ghu_XYZ%? z`(8>OvT-hl?7F5^m552*zLzs{U)V8TT+z^1cLbW*FZ{*0Rn77XKh|$D`7x)nFtK*E z(ADIdi$&-AXLIeIuX7I|gB0xh3#m-CCj!4_@^5B;5(d(*M$r7dnr%A~7{cjcK~iPA zlmN`wH$nOV6M>bi7l0S2RWCzBLrL~P`N*bnP)t~Pf z_k;QRo_q-NeyC3}+@;iH`$u?6f(<#tZBI-ca+P05H$_ zGjmv}wWk3TuYJx%WdcO6hp_Ck>c?Z%FstA4;W~q5j=!whWle|qHhh`8$_bV>uX4$w zIbl0Lt*41T&t1qpbGiOpINFgq5m~D9ru;y1Z`pE3_nTMWH~)Vy#s2G%zW^jW$mirf zNB!29xks$UD`^P4&Z|^I6T7*Tm4S)C{0hPtvHg%s8IjMw2E*sdlnc%0B?7mdbQRvN zXR2FEr#yr5PF*%|3{G$%Q(t6}`9bKOJZO+nr^ZFLK~Ts9+x?JEU2A+KnJp7+oJYJe zy~=|uMRV%QQ3k_0NCPBe&^B!{hrp2H^EFvY7Xr#&@N4x={<@x+KrlfubGRVt8i>?O zDjzkTJS_#<05a2->Evo#?c_<=+w(<5Mq`=})gUY5>sG=)856yUwuIBvH+j?!tJc|A zu6;tee^KU^HW{5^^+MivejMhL91e7BEYG$nf z_{pQYASt>QXRAht9{1Z63ctf)n>d`)thB^iG9?`YC^7Kk#Q}tSBv(vE1+*N1ihx(^ z*NX~68!E2J71s)@k1v5$)$js18W5$e$y49n$W%U;M?lxE(`b%W09F@Il05z}l&U&) zw*dd?%%$U8KEFwuYeyWn`3|&AbDoB-7CZp6ny!0(XrEinG#&GA{d8uW0Khe~;@uiB z+hR<6UZZX90qZIZna6p?f{})(dN+P&FUIdoxB7hm80$Gt_U`OHm8=chSlsGaeei16 zRlNY#e*fqfkf*|6S<9;F_Rsr6#BjC+I*;A_y@Ov{EF1eB{k|teU<{T;f~XMJvpz`4 zzG(5VbfKlMg?72i9U)!n2$P~&Rw))j%3A@hiU7wL5I9moGroizNN{JsE$Ey;v6);e zbN1=N($w!*qdX|6{(4;4Rd*t6#p_T}t?~poE9n;lVG?kP=+81GKr>8iE$@cLd>avhC z2g$FkzM_4`aqItF&*8oV40^ju(_LrN0m%0Q>uK5gan}CBY|-f`-p#O61$@)w+U?vt zb>`y8@6G?y14#a>kp1zXW)JhXH?R1l`&m>+T?@~=OD~`*+Dg`y4-qRRA5rieIQD#%?L;npx zj)IAY3RdfLIY0K*`K}ZdKy82RViO{08!LdrK zUFSsuRDtIY^YO}*-KENNZ8U_5&A1HO!Y1PH>9>zXq-Vvy8R--0yr)%C!gj8i^LVqJ zUREj>n{7G%sr?PyVo5yia*RhX(blk2z6gvlEr75zR#Z}hVp~vlGB3_oVc`6KjOG4| zq)O8au|?_`7H!ieuW}xb|Eo<3E3i!7DK$g3%_)4obnJC^=Os`!3`KivWocd`&3uQq zWBC)Wx7HsF!Hj*l&g~9REK*3n>>5(dx88_?X;zNN{2b5Hn>NkQjrq3w5m`!pA2_#j z;GP9#TaUk`d!AJHk)~Q~TIu5ssJj33MGt9u(c%8{*HS>Tx2~IyKdy@h z6KV3QeCaY`ZzPog4YC5rP6aTpeDK?pV!GS&Nd`FP^lzGh8OK^y2W=zqI?6F3=lqW2 zSfr~_Hb4v$Y89Pij2dM%ziwCZQN|dpRhxTWhknut57I>lypHLuxgPwMTT^QVz*{fN z`=}3-DEQLxMDFd(y8^8**kMifYb}eG+3%SwLdbLxK(k`9b&axtWA$mgER%em@Uu2q zC)2+l2mq@PNf-Q(%|Cg3w=@mmois1`g#8B!nFD`i)*7>hO=ZGp?abGev>H1S^Ce9~ z_!aAYJs;B$>WG0a1LH0T7MUEz#i=VWDghwOO)Y_n$C&Ff*QfaeObH`b1FK4h}?lT^Am3+|S-b>G9*m1|6He6!hjkem|UM2WQ&xso6W9cJlE}M)*^@dm4%NSCJ`};88+rd zJP(>_tIbQa+?`bOn-i)Byew;+l*`4mMnhko_$kNGC^wAQYd6hSuzc*=<^b5AVas02 z)LO8ew*efl=jM_3N}4g3PF*X@c3-NrcCL-Q)NuCHbNVum?nQ~|&HsBAsKZ0}sNcMN z*&F#FUo5p5b)*VbmtgKu$`_3@m#@>NANYJ{P+zkLlzaQVPN$!S4q^V9WosQ^uRxQg z@s!(`fNS3JO68aLq*YyOzG1tSl3#)7)U+*;X;c;i%}U@kPLM#_VFR9I-{qB`tK|?M zS%pcwAiDd{lG(0pTqdHfo>*uogtYLmPgpI#&j-sU3wjR-ui@s@FiQiYwH>mL=jSxoxE2S6BJ*a=YO1YT z-WDUP_IJF1fmfVw&*5n<`|&2BA^BOfnqserfpnb1&lTITUIy9iec3gkk?yn`Wgs`r zF<1O?DD@ai-?)@-t=c8cj7o^yE3Y-*W|&ovr(tLXN5MtKP~S z5nUHJv%t+krl#de777AC7ljE!Z{T=r}}Gt8Je6 zF<;agd_2>Mc3DWX>|0Co^Oj3r?8XMFe5eBrmWWq6=xqR$smESr?XnJvW`3o~u0cMEzbr7h{x74p z_`e)B?KsNjURp*6Z8fj9h)<_^Aa4P3&s+>Z`D+i!VLr*U!X6V43bGul_N|$s8a#5X6eLDCu&wq$!Yc%HgQywYxPGK zPhT`Zxo2tp9Wo_PB-M5-I zgP6-g0qy4gS%I^KppxR-nVM@xxE!>%o&8_;_ZJ>A$o8pD3p=C7&x#)@%3GcTWt7wK zNg#SsAf@fpEy6OP?6cfR1IQ{0nxJhp&E>Nk7AdiY^Qmi+Z_0fG0OGg>lAAajQgOs%_Ter!S^`?Yp7*Mk#)?0_Cg5znKpKtPx&rPs;HRQo@b3p{CGJ z>DK-(hp>9lzT@&DhmNv7kUK)RsNs6CAQ7?Zz5i8Ft+J-;Rs~>MIV38e>}7cjP#}zP z!2q(SMfqipn4k--uskw=tq40fG0J@(I8bH)Y-5|0uv1@4XTEUgCfkQOma=M_*%Vu) zU3fN2E-73iIZ-M?PK@m;Y9UquWgq{KX#7XHESN9oHc!f8{;^8rr#zHc%qKo?iFtfy zuHzFtE4CiO>{=79HW?W2xtoD*EkqQGtW%U#t@CTi09nfzd$tV3fStX(b23ck?LAA)G7nyR*w->IzVBQP-&)V5C2^bQf%${{ z7Ubc_`PF6mVH84u^7#8EAUL1Pfh-_bT$2g(I+?nT)Cmj4n&M(UGE8Xk`*pUfc~Oqf z9UMqY{!>sI=0R=6^Eclok(fCjtEJq)2(KXJoQh%6ZzxQhrYpJ?sTZBIStSn@F$Bw{ z3I;UTyxS(GZK9S^xX$u42~Ym2UQz((_u=GsxGZF}9U>GQaMTcA2pG zwbZNoU;UIaQOhy~VT;L9y6WT57>vj8ce5-%hVZFhxkec=KQ&LUYhj@pmTMOHC7Zm; zF-Ku`tzvV-MzaDE9Rz-i%xTDC7Kh^|;7&A}R* zDYvH3tR3xXMQ>Q^O2;Bojqqa!uK_&Czu3T_KKBvCDu8_~B^=U6(k6f8zD2diAM#d# zaiw+lb9jFuu6>R?uji}Bd9ru+afnM`2byO4y(E=3a2W^PX}sfJ=xE&%HB9sBBTAwS*RjeW@?FHlG^ z&Bh{;S~L9c-bv1$muuu_}i!QBWom zu@`BTaSp;qMOEt|2vhaE&^C*NhWZ%D)-49#h}=U0)=ngmm!x9I&hq&vFl!GTRhvkc z^JO;5%jet~d*`Qyly^$pH9!BKx?w(On19RipjrME1Ro4OD)wVQJ~Y46SZ=k{0nH0g zE}Cg+R@Rc-x58F`%xo%>q_nw!@N)i})Cc1gz)$&j5Yhxw8SP{%piC95r4jF?IDI{I zI$HwaeB%Jc$MirDukg564%d{a-w)bzQqJ2*%73dIqDTiY3k7wwi1>;-)E*riD-$hW zq2BRyW8IXZ75>H- zTNL>2XAKOvqybf)*W+^y+{M13dU*mDg3jvz;%-gN^ ztKeFXO+)U_@}s2c+1n$k&~mQtssA4EN5-+xd3Wi{fwJA-Q~whO$~538P*$Jk%0=K= zs3$r&bO8dm=?Fv@CBnvQ|;$~S^LJn=ku|o ze&2empjnCe)a+XSUikM9xx#81*MGTO<=osZ~$cxG*%0( zBnpsWQH0~k7h~`=SB*gwXUo! zE=<`tKYWrUhl|R^b6n=vo~EL}8DXWYUH@C2k7$_!jB%So4V2f({@$!HAM60f+6r@s z=rAnnf#PnP_Vo+4tmCFIi{Wd z+hP(E*%+{IQ$-Y_gYFTVaIqW}uxvp1upin&^Pk9~n4ulgqBzB$HO|S1fM(d?a!oVmAkLI^=R+ERMQ85kjc&xt1AnSrzwUTW;e^(Q5 z%@J+E>~j+C2@Jq8jZxcUuZBi0V&J-_xQ$b5LRw{*7X!>N_?`{ZBvO%N-AHp!zJ)e( zwxE|$v+1G3BCP;WLFR`i5}MSH1ZtnSRv6)c#LF@WZjW)UC4Gp)D5qOnaQK)3u-*Sh zQPgT%0OKcg{_WVNoiY7(1iuE7JJ-AYP_+CzPX^N%lVZD4E~9GILO=5fB+A2b;e($9 z4LZvQx+ev~>dTCU1qI&e#x?HZ#A9S30RQX9?O5P>UqV!7(rB2WS)P+BRM<_~SHJ3f zPbHjKguLkKTAJnGU5FN+<;Xf8-d}3)LG_XH2=h@=1TT-=b z+H;y_4k2aZ_XwhGjMnXsg$#`MTYu)G&Ny#Vh12F=2v!%OrEecvL4fPaoy%B z&BV@`uNBO0#$Wi#&)<_|`yl+Xv~h9gf8X3?jdG*C<`~O|VZBFr(Uxq+U8VIVnQJEn zTjz3b#(ZPb?i7tYzJJX3Ce>HZsGbLNx%=k790BIdqRhuz&2kCpTGAvb!g$%FiAQj-r9nNOR>Q7%5tDfPlR^-ZJyGHL5=j=d-8buh6{9a9|3 zOq$DDrc8;r-g>BkGPKbsiw3mj-9qh^-tn~auO<1wRLN!u#9f#;!ZcAq^V!9sVw?pK zHq%BY*lGQfD*`VP1tc)VMC{|rl+){Ba-bX68e>8o<<(E}U7iG2ewfbe+hzTwYXC4{ zA`F5pSXE=vA0$)&Sbl!Q;PrUM6_ELi#;{F`-KW_<*Fcsh0@yw#(_?#HW^*s}ocAOR8yX#yld6vQgXHQ?*g<|}XokbT1Es5!f)kNE)6Dw?KZ;8^PYmb6Nw zj)TkPxGhL~LXG_3*V@7R)Z8b`v7rHHw5)T_b>72V zy}2g)ci%O?x5><637!$&LA=Kc2g;T2G<=`m<9%3Ep{@oY^J>*b13Cps^ALJtJ1thqs{F0*dSNYi-^(@r(w21?N$dy8|q z)W0qdE)i#0YSF=BMeW43M%c?OC%*+0q5vNt)L6wIzc>cLdk zt$ULJ;G^2S+V&4Km{$K{{ln_EimiH|l?lLE{FCL7z_cZ^Ih#*14)D)GIS*hKEBt0g zw@lLWF;g&XlN?Ul<}}OO`uyir0nnIGg~^}SYoPdTo=8{WOk8Xt=W649KfWLz#Q*ba7DUK#5s1cR~4+k!R6(Cm}+*aTM#0>_kGO!RRhe#TM8lo+7w@?-zVoQ00ArV zS5Fr6Kv^i=+iMom1e9Se9Y9&K2GRg8A4^WtKLv9NhE3!9G=pQy_i~#4(ZN}{rwp9& zm)y)+0o!dX0*GmM)8lflJMK4Z=FMaJtph!rb32rC6%ZRZ{YWHPAIfzAUiG@13Q z-_Kigz9V}!-X3V6?KwWq;Plg2kAibe10Xlh|3LyMTU$wst z?;ric;6Pd1V)2}>@;(H)2T84k=8l`RZd|bjcvj>X9x4A*=NKc<% zS$L3NKpw#IFD&hcRs1KUSshA|KPBhFx$TFBYXHB?n8JG{vo3l(+ZpxM*S+**>AUD4&>mmD1$q2n_tEY|?UYTjk0Uy`-QIv|^W@|dqN zB;{f~V(aSmE*0@CmsgBcvm=`gWbay?tACq2GZA2tQq zOHVS>JfBFxf7!IiuPA=;tHR0(mTQ~4Q94Mv3?uK8U$O&amY*-DAD2!LVZwMb_Jcn+ zggNj*HWO?~6$7?TR$n52uS{OePw}dhvq|uaa{M!q0>O-0C(o7HwabLOdUr~2?a4t( zq?%>}R_|SdJmhdr3J9KGrvSy~SDd_zgJJ-=0LBhROvqHW0yzyR&e~$&ruM1>j2pR z=f`qxm@a=T*LXs}J4~6*_Cmq45Q1w#A4K#eX|DX{b!Bb>RZwn@zwK7-P}H+DnTQ z>Te9+YFk9`d*7HjXp~)260QAjJanpV9_X(C0`dz5W^M4xe zQ!O*zYp$DY13arQKi&a7e&OHm!oe@T*G1zVf$!V2%GYJV3X5XeKk(uju7SAe0MqQq z%$j5T*+So5er{J_&mI>5_dM<9VlfUO3+waLf=0#q)|Y9jT}B`3i;=PT_*P<3^1_eX zg-iv;RgC6WxeP-5!8Hf|&&+3`n;0lW%9uhjG0g@DWPB9$`yBV!6>M(0o1f(e zBIpWjZ}Uw7bX3e+zJb=*2)^{Zr`d-UcqYiCZgM}Krs)8n>NopD`eGW* z59L{eDKr6P1CvjR*|ULPm?)2c^wUkI{DO8-MRDrmj|Hzn^qh+k?A=NRw))4Qn2$ew zOmR+Bq}Owh{O#jGzHRzJO+&rO&)0Ll^>IPV$2Aye-60+ z(3AsUe@OMSc3*5f-%oxWyRK`PE6sEx0Pye+SAehW1H-po%QVgH5A2mOxmN|CA&rmo zore@#&_t2l2cG(|`sH(MZ{%aE;Q0Ns{HGt0nP^`-Xdb__fe5;;UF&>@1-9LS$$~FH zm~d{$+yU;x3_oW}e^&^?LSAHR6m{P)Fs%!2SEWDM^E~dCz@vbCldG(K)@S*=`3rsq z-R{=}U}15CMMnqDm-~e?0v0{mS3}FJ`P#p}iUsC{kus`)tWg(8my!t_mrDoKTPFxp z0KF~5kUjZ{%2$FhYw3I&OPS=G9F*{h5c6O5GOvByF4eOKRH26i(U?{0lR+X8TrI<;lA%u8R1DM0AMgTx_ zxd%VyUssYm$gd_nGmrMAo*v)-n@p+ddt?J#g?2dWVY(70(pq(t4h|g<^}*%4AL@Fl z{nXJ057Gy=;y_*(Z0@9w^oQwwRllcKX_Q{EUdtCs(?PFl5RLm$-((d9$O@LtKS>3C zOFGzX`u@sB>~&iFlue`T1R|Vfg7}XfvH}BgC5Lr6OFHzVGbi+-mG=-Q>RM87zm?iY z8RT9;>LoS#%6M|bMuyq70p^AT#zZy4Bj9~Wp`Fa6kHS5Lzp_XPWr9#o6!PhnG+|Ik zI7Es9XVacs7Jog2eu5y>Q!6byE&Bk%C;6R&F66Z!to2joP&6hDu~5r1#QZ~g4#MRi zLrt!qy+`QVAv6EF8jT5%CVs}bLAAI~YQ*Dhwzg?CdX&EKxWkO1vT1j!qa8VD`tYHI zvud#uz@PczO5Yc^0*D{#b4?ieev~f~{oQVTUx8}c$=X~4y8y0|L9UfofV+e1D%qdd zv4ShTCNG$HR?fdIp{n#6n)fYT$F4ip@yYAgdWXkD|2_bu2~g|4l84=XD9=I{13vc7 zlg6jo{jw|nZ1#bELjKWDoJ@?^$LyM3cV!yxzej+3CoWS!&3@u$s;!m}h)LbPk5b;7 zo=m(0D8Yd7(-Pa80W<^YXEK35YV5pFY8c&S&}ou&;rrTsrb z{RJV|a@j(n5jJX_LGFpyUHLx)q&I%dZ3rqg+kUMI6L8^7=Aq5~ zPo&9f$!{?yo|m4l@#lnnk*8Ll-jWHZt?o(urn_yc^4wGTb9mxGemVJzUWNzxy!4pu z>ihzrKNr&tA2n9bYBB<=h3Z*He7R|zBIrNLD%yS5opeM^r!^_p0mJKIKHoalJDCU3 zT#qy|1CZ^wec%%`U+Qo+>yVW+pqSEGHl-M{G=8EEbQ@2@aStfN519!<+PIEAPz=^h z6EX$URdOaRv6#tY+QFz%wvbSB0uAyquf*%&mL?m$NlBHo^o=LzrsvB%VNw;Dkabxa z5p*?SkTWwYvssh88-ehPMV{Q5MuZrwb&FjSg4p__X-exG~^Ia z5$0vDj-OmH-co$zn|u0MCU)9wL)kpbCe_!ZSq?y~@}5Y$MgZ{m<}Q;MNj5t*e@u7E z{NN#-j0~xXgFFf2BQ=Y0V3nraM@bVhAQJ*sAb=t)W!hiF6c$Pkt>}k72(~;aOwtU- z0;G}jNVNc7cShiO`!R80L$kcl5$QRr+WFSY-Fg`Xx)27~J5}5Bv;D{B-M@7(3{g<5 zApEvmKBqw&e4Eqb9;odBiWxXd){1{e*G0aXdvn`En)6v$gAE^We%ANZgN2caRvPT$ zGX2>Bm|NdwXrI**A!0;7EiCLD^I1HvT`*F2g!Ddx&<{i!7TRf#^9%-cTLihT$-j2l zr@3L*X4eTy_9isMZZEQVHpg>T*Nt6g%LZ6R?B*-(tHyrk-`@=!i7NUiB!EdxlOC&oAyUgcRa0N{Hj_OeLPj=Gbha-2!Jw#DC_6 zU_XDtpsmSnnH9q`7Nf^^X69Us-wg;ShGE*)<^9+!NX|{pfKc#@ddel4y|772jdQ?k5~ zd=dpX(yML>2y%y+`gizl&gVon#{vXnOq0hw_D%nfwWFm11r=()rBhq zOEl@>9oZ}UAitUkB(3#_iL#KS8HEvHhR%BFq@nT(?b z_#2^E%I$#H3gu(BWwVYL%AC%t+U>D)xJSIqdGDQq+QYYMa((XGZKEk>sWizXR&*)F zK;Lm*k@KA_Cuo_YdMtbp0BKOPUh5B6Ra){FrVJfX=y z3qm^CzBF#f4bTwE53Lr?ckp8D*-x{-YM9P`s9BPqJRtxqP3R=oC<6SlQ~(T`$|wFT zKBQb6+Dg)*T3cNUtJ&X6*4F9)G{IV4{eT}oE|+C3vE0f;ZmYIQ1!j>@rAg<6ju^Ps z_T5g;0Wjt|1_J6kGuL6zkLMVgX@8b>?~O(pK%dWphMChsdRpyh%1|`QGi6W*Yn#K& z`-Aj>wF_9Z+xIw>&~7QwhOy#rz~pImIbe;mh)h_uZNW)~&@$(+YeRr$`yP=d^AccL zNy6UMeZ+n2_}aG&4v5Y5o&%mDazP=IO9L!uSCzq@UWdp08Wg7FU){Qqlq-w_sR>$3Ky7C@IbZaON!w z0J9&sJJe7CVgTxU=Lbxa&DT)vGKZB~Ndd*(iQ3T2dvckLBy%g90OT2s^a-(I8xUR( zMUyNwC~oUuM(j8C4Cwr0nSg8C5^J_;mB+tY;nF-8y50MR*T}ayFV#`afu(1qIju*e z52TaS;aoGYO$`|4yJ+YC^UX&{W+(U}K>Rs|YW{Mmp>*DqU?7tUOi9FQ(N1C=mDa3$iMHGh2C!yo%@rp~^Uh|CYXQ(oU;aSXUQ2t? zrrosFKlYh{|MM|Du+|)j(`?_%I2J}t+( z@~pdRt_AWgm{D^Gsjtr(FfHW}44!9)1wWrViB}7h4|sCmTVokL&vS!q1BBa&3SufR zar`PDZ>9JsE3wO4PmlAs9ZKM(rq-_t3#(4Dz)-FGtfkNi8RC74r~OV+0A&NK7sba; zCv+81Rw2JU0A)-N6&QmQN3Lq7X@Fz+24cdgpg4eXZiI%h+VMd6v7h z1#ysyk^Sg7dc5lsXm>Wg@pSb+2HBPRQ-1IXd!-4x8OrgEOhmx|`+`Dq=8XtHWUx*z z{CY6|RM7G4N%mI;X_NZ0swu7cD7#6n0%c7z1tghGvmY^UD=o2fKpDW?hg8gbDevOL z!hjwVaT%c8NudQ!q)AqdtmS{q>5(@BXmgv&-=7rN?bO9v@cO5n)Xj`^KmK$(Jz48d zw<*lFS*+zdIq#O+uv3?b#RBA zKV>FuD|_zaERBs29bXZO@xa@3NPl3%F69e24vn+tpSl_u{>;MLQ=xcLGzkMK=t>$% z#E4CErlUp4H_3CB)iLHtQnss99d9Jjl&Rd4O`q1O@^ju>rHPq$grr*M<2RClvK9Gb z2Fzf`*7`MHLs7jEC;jqy=xaaM7__CGh^G1(Bx%x9T?V`B&b)F>^XJr%G^)9qghK{6>0gf9|6^xVk&$^M&Xr;o3+?eGIH0Hu5Av%> z^KK(G@`~vPe?#rh(fV2plQQYEvEq7ZNcS4DS##?6aU|*6xk%9d1n;f0)ERPeG_c*QPw#DCKAhW!m-5! zWGiJ0p>*5b`c{v(MH_%g&Re<<_F3aeQl(jzjf%gP(GkVyj$w ztYinttq(G!O*1XAw{0L3$euv^1M^8}iOi=`C(rDU?33r4A^REsAjSV!)7aP8%&3)U z=zXpeCe;d<5$>k-wNy>=(~jvWr?D1Ug*Cz&p6N!48Fpq2u1%>CzgT1Mesmw@CxmEB zDabb0AEeeG`}1Kitk?N=Y{e&Epn_HuX2n+KW7dqSiSey#KLH3o%KY!s)Bdtl%Fdk( zQq4^Ic3OvCkBp`pcf6=Z($djD}}FfgowI#Iu#`)NGqAN~Aj z6SZHjQMI#GbvO5E&s)K4s~(ry*BW);`J$YemFs=EFE#*vK!Lvq%VJT&s|0}=FR*Yv zm$^?u!;IS@qA-5F2E2z--cx%whg8Mn#=Q)kYxlI$kip|Jf1vm43D?nRommF@{=rrs z*Ssc8E8A&H9XFl*nTU|= zlha_H4GW;K1QIgICcA92B-$sQ3hBGyFtF&JI%b0 zEt`36ilj=~`Rr%=p{WaGE3?-s=f*^NNad6iX4%<#TT%svMTUu%xHZR~H03k-5Ay#> z9yH6pk}!xZ+T#>Jd0vAI;T5lSy_&?OCb5@?P6se_+7}GwA790JmBE#90qE;EDYBMlz;Ml{yQko6n@FUbd8K{X1LZ#%}+kT!6e7z zRo2j}))*6{mo)j(t@*h*p_iHXdDSrWgS@!RT3t%>`2t)G>v7*K{*8R4B2C|i78N!8?C1;@j)4j6b^ky+<7MFp;L(>f8WctHRb zfW*QCIs36{n=Q>lID!2bz&AoBJx;}k_+tsl1mVz0`kXa>@BlzK%C}GM!fYD8y1H+^ zwhlbaXIJZa+yTp8kF{q*_mB*x+hNd~L@7n0c<$;!MM?3z1(^#K&Qtwek8}h~T z2Ik@Bf34dg-;bU1Q3^Sk457itc?zyARMt+u2Fgr?n8U-m;6we++!3QT2;x*e-jo>8 zpC0EBRoM-}V?{r$fikqviL5K0`Z05e;qSwcD&nvBh{o?z&9>EtSvAa0I^P}M+hDiH z_djl*Dv}*Kb5YvxSwS z_XLZK29yz(c|VgTzPfN=>sw9Rr|mw0XxmbVDF(^_;otA)>#8=|NWYdDDC?MGWMJbt zHvWuhAe7X7-Ncr~6KtG2=%>eGv5$2YAwog2n`3ufnGW-qt5#t)9{YG(EWC2sSrxg$ zPdyt-M2rn$D2q%cXrXz=xxU>b0?Ga-J~!HU9SV{I5DyNNoBLSR$HxdgMPUz*eNGi| znI!{i4Ic$FY=n{0>mbCGnO);}?SMGKRt*M{j~k$@T4eY^zd_=9sI=6f9kvZUH#B(| zinf?_0xP&PfVpObNN0@NJbEVwS;*TG^l6ixHWvp0DI4YCea zr>8<;qf+H|bY!c;C=bkBh`qpiZS2^mGVyP!q>1lX`A8k+SdY*|f9(^1gY%r_i)k>)j63)I@Vm(jivo2z>uU=b)_te0MTv z{&CQI&l(JSn-)YlT)`Kf0dRpaNZ$;qc z<*lsEzbN0&(bG(`>`d9vCQs@S_f__^H`J^{_%n}l%QtUQX32h&KJU+5q&Lql^X39* z>v_3MKyq*XJw2z)|A%JO3J@&ue+7!gPr`BH`|4?pD-TK<0v`O9e-(MqEdPSi`V6&utjii?aBX-tc0z_$FZX4F@I74W!!dWJ1j4>BpQt)Y}!cbC0%1K7j0%@&RIbCF5We3XPTjl42wG)2J z`JjZ2(t)4DXedxt5|ndaRaY}?)gXhcYy3ZJp{1BtYof)&lw9`ZBR8FUo6`~UNloqy z_`cFfROw?>i_rQZU-%AyvVvp%gBkSC&?t{(3@Be@@cfS7$Cp!}Y}>sQ;8>Zg_Zn^T z@4Xx*l^mi4+G7=)OoL;>V*Nhv0|x^ro91iC>EVazYB47AV&6>D3_mI6nyOX)beA=|0LIX~rG|mn;`2T! zKBkKgQzqnyd)$z6!GHCW`^>65hNk!<`M2`*q-b)h#2vy{jKW;=3UI9Vq<|3q%pBT_ zft=RGKr}SONZ%=-Ssd5`Y}!5Tl=BoEFTU+}Bheu zO$)0ICejm6e=o*JZ}Kc#Y3qWR{ip2qX)yN-7Vs39Q2!A?S+bi)^f9Ao%y#XgRC}#| z+8>_px*LO%fO(8%?c1!|+be+D()J3EgK;+8WuIpS$|~A-YCrnJW&Iv#x$pKfNY=&A zM;^ca5xpO54nJ`3KbP9Q<6NFMFtg zb(HarO555qzh(`ym2J{-9Tkv!{jsfQpw4h8WM1p0jGo_`T7#_1&R^7kdPDbdLJtij z8pI%Zy5WcF+glo(fPyzvzms$r`PZpL++^e(63DhNP-8hWz4n!9W#qK2KX26{>j2%d zU1L=ngLi1CgXK$#*_m(EPgw_kke+PE>n@!wl*zlcewytsoybe_1Vtwzs$p)$fV7*~ zA^xULc8t(P<0S8A0+^oG*v$2a;#zkV92>!mivnlcj&;6slRpKNg;go)a?4jUN+|jK@Q7v{pVdNYx2S;vM=%k7CwmA@JrlnBFDJ7rD~G2{4*!) zdM?=q8K%}6%IV|v!Y18@m3cz`RAMr&Vy2-|fO6Q2j-o!A#`G&vh>o5(0g`K!2L}`% zT+7CUSf+jBcuury0QiZs7JtZQ+YFG++?Hbcsz&hf$C8fgeA;Qwp*|B>YMpd$k(=fBK7Q!lzaM?RlxpycD!u?p2zOK(P3^SR8>=^ZAm@WtU>( z3y(eK%Pbij2S3Kr%WU(0_$WiR^?r;WNIx&y=a%qNhtxw~%sxAmSg1Z^tuoB9C6&0$ z4t&-8T9Zye2zHd`Vn_L=8}WB+lj?9$tsMI^+W7Ga0c6V?TtSeE$@U3NSv+(me3e&x zZOLh}TA10jReS7Z1yikLc?Ng^(AUYEkjcWpfc<*i?>DU6I@KoF3Xaz~-;QHHHHsUa z%O*0TPJMIiwH+6wR6VcmOA4Z{d=)+SO(E`*vYrvgKFhXAa!Q%HD|aeGE=L?hiRS zyUlBr`loDf(0S+t)V%ucb!3I{hPbj9E#5}WThSdom3&GBoz{| zilH&}&5eXW??&d^0=sJJ5sRiclX%H#vp)`QAp3$g8AM&|yTqZQdf}lC&nT4gVexGoFyIdE?P}WK0 zi+4k|V78zleU=j-=Cx9W=6e}5&YLt7{zMKXzGiow( zwmM+$%S2gvEeCSn?sO{l{fQ}clgB33M$Sei%%AM`o6t9GN(JYMFt=R7AV`x1k&jl&p_6$Gn> z_}*}jL)JR0kcoE4y~q9cX(Gq07!YfFJ>Tin15z&{`H~3piK9d+6#)$57XUCP3oYUX?{M<{NieI zgBuO8Pn?HL5ti6jGH)~5h;k2R*uRcEXqJCLsZFJaiT^NzUL3bt! z`v5zxBJG!m)wE1~&ns&xZ&D%Ria%O*TT8u_RLrQ?3}}$cSJ}VK$`erTX`L_qkNxFdzLWsU&>}OH zwH{;AcjfknHh-rtNxa*131$Dx&z#4=|DyrFK&9BN%14c|y zM_N52)KZ``f)dplDnJ18Hu+1O4o zY1eDP#2t-bU+RB^e>g9GI2fGFP-4c&ih!bAoRUlAk^50 zeEyTha)Q7A54`nq`n?QTjB1$Xb>Fnj{(U9l4KVHj{eHK$8}YeMJKmMD$8pY#tP5~fpnKwT#ca@* z>p5{(xGEmAgKrHL6(E~{^6So}KoSNmbH2Vz+pcK?CcUZnG7p}fN|wzNKZ907hS-9n z8lj@%;t8Qw5h|+8ai{Zap{e;mGi;jwqro0BY7h?x<>@U@#yQpbtq=5r{9^L(RDVHf zwaLBkQ3d=KhHTG~f>YZxFWDsoldA0e3Rl$CT%;xRYA$NB7Ma93ZW}#_%#(Y0Ij&Yr%_w{5^1Da z-lK`#tc+zeE;7eUo@kJLQd)&@@$gW)M970lt1;V34hO@+;hrF-wbbW?Ni@fFYMF&v zmLX4j+N5zPr^gP))z_GWoJ4-dllaEs8e}*KyC!eK+ohoTqyDxI@&L|m zNwZCwUt}{87lSF&DoYAe=dO@;*Z}J76zjnx_?F7>dA;%~tW{Gm_z!g4$|pys{{TP@ zKrjw($$X`LGb4`ZT#a#LH7EXOCmeY(i56b`TzT)!t(vuTZ=WtM!7 z&s?zv#&w1O$tvbva#g=ay)=84dqZV$Lu-$v8{I1h3b@roo5i%r%98EhRFFXhuy|~BjQa;7)nc*=b9^yf zNCwtJ4T@E}48P+@9}3wQf8SQt_ana%o^WU=DFw*7kiS6zt?y3e)ux<36mnCZ7tM(S z+IkL^Jk->X_fI(DR88_#G}OJSYr-&`b9~ZKwyc|zc}~4fMU%Yt#PvP*)tTOsxFvIH z)ACh;QB$W*k-2$!1p)?|$0s_c))iN2snNJ~!7!yiXqJB+N%A1Sh!n!Dl-Pm4d?%&P ziI{2>$o%sRd~+XZstE(SAMU*!1T}6gGeDLq(EQhfR9|{4bM?fzpLy?EGi$WLSrv0# zL-uz*;ZDEZmw909rqfX#gAn`WHE|Bl4i~N|_UGY<`IJ_J0iuzlpcxuvX2Vvn`{#DB zI&`8h_d5nCj^*wSGbhVIrwC33NQNwz+05GZQHJ*4Hoq-Q;U=+?J%%Pvz8O>iIDh8{ z6B9kvKHO!}u9ps$nb}$a^jCKo5W_^y!a;djh)?K#uS~G-22L_b_w;oYk&f=Sp`Kh6 zC|`5>Zq`78q1W!6;;kZ9vQ3D`N%P&!Js`O!l=sw4tE>3O43Nb`<$%PfwIlsdn^!|B zfJ_LO!7%m#c<*DbHfcal0KlC*N#1F|4~I?S^DDM!slgdcjTg6RGV#VfOrBxJ%)pX? zs!AHm{haRNcf>_e{*#wMUEJVLpZZ|BHSgy0zWp@C&YEuEORw>5rxI?j^sORT!VJ2( zUx0Tt59bAo8Mkm=_m~3fS)^Sg%))Q$n9^Y3wtZ*S4r>Bb|9HqDm~QnIt`}VZ`W^%EBWr^-seJ18IxL>~(;v0gG7*sIQ3Up}Xej%-L-Wdv=X6 z^X$v%vsDm%_h>K<3l+91V&ZHpw7zV=>lPeq^af_tmI9U|X7gAM<6f2Trre%o8s}I4 z%Uy{Gq1V{f_n;(U%Po!nF)p|FS|)ouM+(;|2h{nP&V{BK=GiK|GJh%^X(x9xZCOce zhP_HPkIP>ufq%m!`{lk3aEQA+Zpiw?EWUXG!x@|-4qnArg+t3Y!cpzcNO zzZa&~E(-_BhpvTN$uX7lf=T6e2e>$lnMRFnc@!9j8`yoGVZKxaDY7h(| ziM7Tm77k}f5l=RG{NpFBQ?dhP5FmjZ$$X5*v~1eyMzqdI&1nWQh?Gl#h?aZI#7jHP z{%y_54EYvhR8q{owVatq?-Xra5NJtbDowt?El}pmV{-i`*XA1e6qzrZG)Pqes%eBj zN%<4~KJyr9rr`vXVNQ+4X}t=jjXcY*v4i`B4Y+T<{Zz9}Cu)=JgxInxfY(? z=YaA=J{9n6&nIPYg?9YO-)Xa=-YM~^HQlt)Ud=6=xbKwTq_PJ`o^L^Z1{QH94g={J z;!#%`=bg;DeIfbJ&ZBqjvHzLo`@7 zwf6N&=%xKW;xPj)>o@^ZYyf4rJV2mz)-(pnDgehzDWI5vvSx&Jl;lu{+j4q7R$?zr z^gmsg#aL>VS=(k_qJ!(#L$(l8Im~(IF|Wq>KV&O2JR=Z)wW!QY(1zOlS~bq6G6R$$ z&0MAuuX`g>&5!n4kWKr?Gu!d}lVb`-ax6jmb#hGR)p1Nd(Bt3U%J2Ia_n!&APX3sJ z8C&IzI8a`Dvp^)aPV-iYX#RR`0zJ5Hc&L&lg2$4oGKKxRRGBr+DYgL0Jg+a{In_;l zvrg2=X1*@fIRF*_$S4BPjC9+70Lj0aBzcgDOdRYdrqfxNPTo^`wMAZ^l#BZ;{eVJi zD{a}S8FufwV;yPTOr=mSmz`YSJEHY{of7JkPJY|@enI}4+BaDxpqraDv6iVRw#o_L z*g$2d$69&)8y%b$p=E}tHSdSp5UudCE77U%s2}qwnN3-2Wd+G##y%`enTPI={AUNt zwk1>SNb5Y)HvS_BNpvN=(jwcYExR5Uia^_i%SQyT6Cnq_E{gUrkQ4xc$nW-U?7nrF*U>@?UOVG#2-qWSw#jQI0~(?k{*F=nHZ}P)+v0JVRq}`lxBsri2z$w9Ajz1 zGf5$RQVGlAoxI(@om$_v+RGg>n`YBZR2D>ELyF@dncAtDoXx!ZTL zw9(b?^KH40f0T~-H(d+mJ`splfgiX1M2%THn}D~3Y4=J;Q;o+u5RiuEn1AC*1IXN8 z{CqpNHJiZh$6V&t7nYdN4kp|~%9`%Mzf+i6TXA2|Vz3`)KW&rFt=eo+#`}&wf9;F*sEw#G9o-Y zJT5cB-G-aluxb21c`5PDX03}h^%PY$tkYpsW~5(3b<@tahR$7E^{=5YW*_y6WPfgJ z-L^ZzR0qwQ(ZQ}AwVu~n$3=;~qU}Nm)}4D}sTcP94`cbl79@_ze9hj@IKLn3T&?Bw zhm%IXv71?li;!>TW`qg%l4OIk^3IGsn>Vt-2+o`H|+WwgVFj~ zY$r(8SY+0-y4`beKu&J?rkG<fovp_M55+IA48>DBt=6))2$x@2r(}&JlO((?Nut5X^OLABrdiTAC*&43a zuwX=t9M18s^9_8cD^l)YSx+8{A*?UZFR4uSZq>g1zEeoe8q%(h(?GgnoMBwM=RAfh zWq{^YxLx_mk!wQ(KPB_rz+VdJ)XEly>u>G#O7)%`Vxp%3KZ3VFVHdgm)E0#C9 zyv|~m1AN?>mT#01IjoPnbfcAZSPjMa+GELzi((}~u*Uc9b#Bhl0Dv3PGxhPo>TbMb zfxU=#_M!vG%1WKC(*i(M6ud1>3@k|l-s3tz9<~$PJQkq);=JBdwte32$MXEVz4iPZ z6}ZO*=LEs|7Zj<^HNC%f0^TOhwEJCpckf0bp4)%B^EPzDcSk%m>$={gk;*fD8I1)&cel@Y}zV_U-s|+=Y@A0mdGx!`CX)& zf~SwiF+VC^KTqG?*#Gm<;9fyw$97W1X+43mm5ENqJ2zv7Zi`E{vu1O2s{W4C6KTY4!?TpII$5ju}b?L&IJw zD7G@$e>^{D8UnEIAc~IT*aH*S>+Tq=f5|9eVJ$vtuRFt%zYwE5W5vFu4#V#pByWmN z=mcLI1;F#`A~r30tm=A1qGkUqrWxC6oT|$B5;RKEUgUayp}%=K%`CP#)bd70U(iSi z1M)o9Mlcg(B*B;96LrtFukv@5!M@5&z66?=aMwIdRM-D4oLr83A>7Std&H!^KO?+#lw?Xb>;^5V!u|P2O9M#^yJ6?pya38zUH-KYa6bKF`Y3CWvvmMk0ds$jyw*-vIT%ZBX4X51 z{azNazNq_8H*+1ydPVgMzr&J&ueoZeOQ{t4rgRyE+bzMJHElbEBINalXx@Pj5D3{guZq zCv&vj;_BILGj{qbc>deVU|+@MOAK;fX0>Kv=o{j?&AL59w$_gtdN!*r9-Ex``a|n; z13w+hww;8#cx+-P_8->m+_#D2H_~%#?2DaO_A{O6 z?O8W_p;qO_!d&ans@%9?W8YLCE>!@?4N>Lv&o*4Gto5|Ye2g&?lE4e#*saF@i{GGw zV3`32c!oQ6vR_+?MLsnj`-@B~P%3`Z=M|L{G<$leH*>`W1&l4rxU)CKQb2|1WfW@} zl_aDcxp~(T!_eh=iHY^$Eua||$S1Nsyx)T_NE9SQ!SH;pb6gO#Q>0Qc$td?MP zqt1HjS{=YxQ!^3NIUOWTVNnqW(ct?9`$?qo<`ro%98@r_s zOgHZ@fabLFht<3BCg?56QFiCd=0G~$ZxVswlz)zP=$g%Z;`NaF4btj-TkdAYGV@-Y zoG-#TdJ1iiCy&WC_9>WvLzsu=X4c6-&i6qGf*TPQe^yM(Gvb}20S`$Lz?|e@;iBCO zyJlFJ5zCz0R>NqpkF1Rhv4Q;Fz2iAnga^`VD>2MIo-nrg&72sF^5~Xt#$B;x`&%XV zTAMIqi*dOrFYR)C9ZhlcY!m#>xkaQ&OH zId=iVgEifNcG~_7#Je9{ z9@gI-N|jqKV%vf9yU3Z`3CbQktjg^BcSET^DRmEn%!W!I-4Gdv3tKU8F4 zy-`atfwtyMzDpvW2u{2qP!{4Y0zwuc-Wc0=m9aYVJE6#x?@xtM*F`jXxLUv2UnNkc z#Tm-|xmBVf5^s5W9g!x_ZV)ad7(EMsff&!TA<35T-(G_50HD!^k~E>{PPjvp7z(b` zIXQAxa}xvETngD1fDT-s8&G#Hitk>y7@t=HC}*X%F|DH-yUYK0EW`nB?B9#_^;~{U zyTvWq*QX@_?rOK*qqn2uCF{j836%E)C`WY#+2(E>@7J_j?&nhf zc83-P$NjtuAirnL?avW20q|Z+@P+5JC(n{B+B)&z@5Xd57iu{_FKsE{@2%+ko%Q?> zyeHgrH*YKNB_~pvpktN&%Chb6LA^sHkje3}5 z@^5aCSZ0e@f3zFl@+batcYdkF&-(p4IUja3Y+z-3C8U6#LKgv0M!1LPZjT8D{-=GJ zMQF)Q^mpVce6MIa3Ud;V*5&twx1o`ri?#q+RCY z;Cda$aCutSPi5?drFo5WF@D(w_v#{0K6$FC8^?-^Ppr`cik>hCh#qPgx8afYEY|hD zo>`Z>lI26JcS_~K*lr(}Yb$zGw2ip+1O4rztkbnJ7xR%s!i8(~y8z00d{i~&WR3$G zp!~eXC7*<@*TgAr>~_~{>a#Xhpu2%f_^Odnl2w0Jz*_6prbp}a_9&O7 z>i=_ZP-`y}#;GyRIm%BJ*TIV-$m@yn3#U@DF%RW33N?>(N2mJYtkl z=999=Lp2c}bHC*vgdE8kv&;R28%MvhfpNJ@Cr*Z+^_%gb7xhF z^^Zc{1@QY`c9U@y3ga+Ykm2U2)-J5y54LNjexVXeWp~xFUPGvie)hH}K=~=GXksD0 zTW%n?SD~F$ajxv|7eK3)173V7Zgk6Hm&bol>GyNbh#0)=5E%zWnBfJ*z4|=>&NzPR4OjwwcZfd zmH=6P>)kkiwjV11*?wK;6*wnomwLQM0)MTO;CmdJI&kN93w}ITw-yH|ezaGCEF~uq zCXoGzzm1gVZ+gD`o;g_O@4HuAkvRc^-xL6d?=3(zCt{+ygD2F#V=~zi6G3c;lR_6U zA+)>SjzPOT2W7v0JA*v00U-{btsw;S)1mxMnaqNG>T)#0eVUB*D7eQRvGDEaGa3tf z&z8@66I%WcYtz%EwK&2?2zpWeAWS{ks6OLB;Ral(iv6I$i z_4auv6PnSFV?xx6VuDn?h<;cVH|mqnKi@_@j1|mafH-Ds10-`iaZjc|%s!bL;}q7> z9>^#g>vDt^2yDP@go_RG*&wwDw=tFGHup*L|7{$Om`v7dFv`8JINaV^JYt&$n*0K-{lDD|LE z9axQTK8ovnUM$B;^88>Z;5itv(>hE>>~zQO)Vv74V~p~PC{{~z(M7EqUp8|5p(@m6 z{l(NyNk28_cBvZAab&w=G}p0OgxcEa#>sfSsKQoGA{yOX_aCe?mhl!g` z#nAgY`Ioq}g3i}O@i z4c=I5J>PKS`V&2Wb#B?=-g2kf6qB{V9EOEmf;v2+!A~o z>&kNdtfqycAh$BHbhS2*KA6GE?5x-FD>>+mfe{SXGdC==oPCB{Hg-GcJ<9gXm z%FOlYiF~s-<}_Bzkr*ye<}HwH*6wexPK! zT{GU;Ey}^P`g`QogregyWwGsX%2wi=X-S6igjhJYL`>K7{j?9Dm$!@g@!0Y7#oEkEr&lTwIS-3^tDH8|O;|ERK6ySk!CxG&K zX*kpIB%^T0ZoD7c%s)(EK`WuN9-j@BXzRSxZBjJt1zR-tM_oT>#2NPt)9l?GaPL;v zYde>!=Pkel*h{NxXL)5k0$%`50>NRo0^v(pzu@t)LW?lVcVnemy{-Q7nB8)GT9U1{ z<;RZ20`1puVYdo_^VRt(kH<0ndGJRtTradPQJ(6dxP!a9__Po0JBU`xu~`CM#y;nF zx>o?dTXn;Yn-d)*6WfhgZvNh$%F7C&+Fo~#v}}jfo4}br`o6?7!&`!Y8M3$E{_O0( zn4XN_nU?4Dpy2nitjpi%Wox{N^&BP-kPfRdiNCx`vVRS}e$tKqMaBw-QID?Fsu*sE9z%WPSf2aSVa_<3mgS+YA4Hu4 zIj^^6g+L7QJmQ+kkbSImi;i}{;}kdp{XVS52>@NDjXDa~?4vMfJcq&Mc|8mUm16HG z$9ozn8!FkC3e$;hMyrHfqT}Ul4c2%qM)?b?MUu8@Qb&i>S-o6zW!7))w;_i^)ziyP z)%$%p%5{xqnf8fSo&3KG`oG-4P;b}^uujV|k4LXm&;8e>yZtKvIr$2fMV4H#OKh@& z;X!7L%6CZ+Tmg2Q&yB~Ibv?G?O6Fuk&ANR++J!gk8o0_|WpOgHZ5abvUyZ`irD%4D_$IbPTo zo$kTIu~>=G7RrvJ{<|_r&~+N+9&`Ls@+3bi7UY*C$bitAY^~)OW6?m6*AwI~>F<#&0AQ2uZvimp{#&OqVz^VE-R)R?eDAOR~l*(~S=n z3M^^CQ0u3=SWk=hW9JeW`(Qn0K2fq=yO8bLs)gmfDvegGHDsj4m!$w13TgsnjW48C z`R>rTTvG{#xMIuHPGeP+;eweg)}JHY6EyPA0Zc!`&2(@p*I6j^1jf|o&*j+wIGlw= zYz#JP6&#;@MP~sj&gviCR*9DZhR>|B6KjrPSouiML|0wjYh0KMtj+sj307;PS#<#( zf|P1p{Qipo1izbFr*#ykBlrYR+YJyHh^San!)i*G<^+xxvIt~*5n$E<9WBQ;R1j?f zZqM6tWBZ*&*Uzyl_pRV_R~o#)b6fc}xHWk+Oy_w$$(*^4;vz0Nf}W7MOZK)d<= z1885yWXww3$Vno%iuVi6oCSDhD8Zi9_k7%6c;C_$+nVnO-yp*ckY}9lDy_%unAO3C z6ND&p>$3%SLx5@TFJY069QF?aK!fiAg5~=-7t-?m{$8G6c>Cl8Y5?YR$9`AaeaIP5 z<_dgU#)01#zW<-%50kKu`<-D?zL_R_x$a{c#-nLWd;5FY<`_hBFOY+!p#Hjyqo?Z_ z7f-7P_IfQA)-NeTXAt1&F zei;0FzV01MbQZ(lox`D=4C^m!K{j$RvvpgJCCPdLn(4m%FWLzXU1u0Qg?6Ava=xx( zb;~hhY>r?hzOj6$uqaRE$H!J(s;73254axE%*2K(wg^D))ifAA>)f1B9hT;+XC)O> z0_teT%TVXp=&ssu(egp^X`Nm6_@>CGtTWP{?&-H7^Cfd1b1D;G13a(0mk0xPKd`T3 z=|Fg0(`jJo%0o8;|7=nu-iTK6_|1IXm6ykHZmA1EjK4<$fGJ)!DMdGr3Q(rLL@V<{ zF(E&l6sxDPP2~)r*kkj4E=a=C1c$N);~?avQX{x;G?o7g9gn4eQCL zaabnug4`>4Qz1}h8LL>_8mqp0*V+(9D9!F>eW%74=ThP!8C1D9RK#ncw)w&HiSJYcc>L^O4 zKoamxOEN%WwsYRb1UK=&y9F@0l^F4}4LU3U5dd2)!U|@&eR(k?FzhX<5VWDdm~PD8 z_HG5qer*?R9lCL6JaPw+jV|66?!i{e+(NGJUbNHRK-;7go4ODC@}is{r)Avr#YNjd zPAKfwOLSN9cpuWe+$^oojSKvF19)5S@AXZ*S4=b2ynp)@B*Pnm;RZQbw4c@T9qxq_S3Jfiv+(`hsp;4d-^}lhR%UNE zKr=ZClq~H2-Aa6SZy}UJnX;2FfzK?$Mn2yY9U=hp$9Ts+yf4dDFlj?DL71dqHWylz zxvu>#)|uNLlb6^A;KgJoLGxdP@QX_lJJOQOaRSF+JYYI0Ot@m5*%c_w_Tv&Jgvnh# zCva@IJ2pUZOauckpRUV#j)Cjge;VWDsm&xAv8@|#PsIGtM1l3mSqZr-^KN%J~mb^m|kBy z3d}v#IgWE5#kD*SAM7JJ?1i(pyi0lIZPfHfYX3$ywhWGGInFxWO>C@V z!qyw=*R8wx?ivmTclkNana!be+(-5JV}r6Y6f3eZXL7V7Op$#KWx83XmH1^%3q^rN znE?8P%-0cHl%!uT5u>y!vB)Qd?OK_yoy_Yg2|-HRujKwSJ=A*0Dem9C9ZQVVB#2$c z`g&ak^J(E}F?`?angC%yp1)6$vbI)UPJ^YBcD=5OF4;wA%(NZlsK+F~tvN3pG)Js5 zQ$b~Hnph4RiE>zy{d|&JS>u%ZoXTop`im9iO4Fk-pQsv>nQ!#_u>j&R>VT*V`BiCQ z$<$EyV}06qFoEcg9ZRiCmkKJ`uEPp6lgNY29Ig{gd&mR&Bi$3_W6cXr1DmP3@8n$~7s1Fsjr zc??(YU2$=~2#YNbKs`V1qOxe~Z$qH2*SKRH)A()$uf84EI>vS5S&Y#>0q%G)E;4D) z7`k`I1mODTjgBRZS^^- zDScY1CdFNBd#WpZ|K}A@xo5;MCYVl^Z(+~&Z>(d{c3Jr5P=xQ6so6B+6kN66d|H+7 z`g0AbV0t*lLHqRxL6|?IkF{?Bfd0sQ?f1g){ITth)Lk0_H*NHT0L}M5jNTyvG^4M( zc`#;vX74LCUEWyoICG!N18Z{6v+o6nzWctUUi%-@*!)d|MZsm;yYJ}7$(C)_hC6?6 zGcYm}rkMJ3kbNP|AagY{l_8{0JEa6*5P;|#T9$vT)@I15m9dv@*&JI>S&9-!YbPbV;9GK z%WrUCZEC24p|wuCueB|*W)m2b2rNM|{`r@&>WP|LnSj|Oh18<-3b9$QM;=-jfSBfV zQw>B8tV@=es4Gm_d@LIW#CaCo*J-A$o-Z;K^Vm%PFHJ1#|4HXTXyFZ8LW^jN8FQGD zYOufJJNhdBOY+sSY%NIcT^R^|>xWQhZ`v5;cK`f1TVT}F?|qQ6;TBg4er%hvZ^M&~ z_0$B)n>d$u1TV@-5UZTCZHJ|Ucp(kHD2)n1!UE{+rFX~P2yo8jP=PYtdU|o6op=z> zc{g?6u|-E6gYoe}v~kq7b-?2e$^t-{WL_`D1^e0lm=mx~6K@^8!` zX_m~MWW|0hOII8)qyA%iS|}E-Y|ipTSt0wf5}W*cC@xOOauYNEW-U;LytPahVrC6U zrqbkbZA8Z*uqMBg^-sb3>M2Yj7wGqLi5~;3uEGjJ3$nUkj~~Va%8>B`mB~m26)dwL z>0(Ua#|{+V(*&t;?HZ$;4Ax>w#wv+_Akc+rK?Y#n3wPQLfo z^`b>gCld(D5W`thOGOhw+;wLx?xwUB!=g;9F@bUePR=Fn*s3*{Zn(@X%oI;py4x#V za%pwkYpsq1Ne)1FtJSvw%DsEARrg|oNLpzX$kED~7SxN%HXT*UweD8erni%p9}HedKMEz}1V>$z=MzP|DW@ng!E3RsUB_6)1>h96^ycNQCqxa2X(5o!lBwjGLo z!JF>tHuWmo`rUexfJr?iYRH}`(R@ox9DcrK2MEWRazW#PhS1vMMW59Ou5tED-YisgD;*aSuFsSP+IplTsqG2}P ztriiJtof3~``TymQSjq*{GVxIMq2@f-*WxY+)BV$WM7YE!`c;_?*biTK@yqaU2*Mu zBDo+xc4lfdkV75g4r88NDJ;?n$O0(s$gz2E@kfxR#9M6R;-Uq2 z>E_I9RT|S1qtpM6Z1|*V3a*~$gGPm7&j5gks-~Mg5WFv;z$EuhlMrhJ+ zF+PImi}A|e%Jrbm+LpyF&&*JPN>4ahJw!T46W8pq8UHi%>S@&tQj{H=)@NFoT|#FP z&$ueM_LY!)ne|yfQWra>{v&$c!6=sFD91J#v5(?Vu21E;{#*f3(JJZe(*3hhUuq}a zwuiD&j9kO=nN|Py%*)c&5MiKF!?8-bVSgp~`g_P%uq>jaURYL;+G4_zE^5fSj9c#M z<(J94EQ9{bc{T&jF(&~V9Sr+*9ojH!OXDo?!D9`v559j>f%BobhtTrutk|Z6UPHz$ zA6h4yu2UgdSGc$2#co(9>K|25K9h}<9dsQr+dI}yvDWt(#HPlvklVxnk64P92_2caefEI0fODCY*mS#rEBS|$zE@=AoGv-_$Cj|1_+K<9e5y^ zXn|`fXI^4jk?FQdt6Sqg8@|^BIItRKd}~MoqKJWYoV8oQn*wjTF{@>Ew_aeW-;;0& zux35SfCQcw)hex^vB7i~(*DKJ#0Kx}3^f*7>JaqqSp6et27wnX=5`VL;&{C8!x(Pc zac)?xFWsVD%N%$LINxcIbCru-Yw9)kw_8E<#cq8rjpZJb2YjZx-Lu@yTgdCvdbmbd z>A4POW0IT=@_YEbbjRX7%*mA~Yw|>&N7^j3Nh`9vdu)Hz#pG*z^S)U_BF6Jl&h~3- zrGP|X)tc?!*;%nPb2155W&b8Wx8ELATzq<%5aT2nW0)Nzk0p0Hr0+AF2ry!sSIVL< zqzE|wM+pyco`v9GV2V2c=T9H%J${Je$e5j$^RPmvd$pBG1x-1X4B0ous_a(Y=&NxY zh`+!q0nm(Y{`a423^U$y_VctjdqxBc&Wacp93;o{CmG~hDT6rZjg(T)Vywz>DnN3M zO_62_fVuao!q`jD{9Dxb<*B7>H39QFn*UbD)SS$YZO(F^{x-Cr8M?r)Lo@zA3EjeV zgUE>C@^WYiz#xoeep>a2v@rK_a8oDoGZkhWf51vZ0mfJ+xoH4n_reP$_MmTjh-Sw0 z{;TUD&)Y-ZMSSyflN`-jEetB2E^4D?A{%RU%gs>BEy`@51=!`#s;;YbUxc38?342} zA&jDmrl_7DdprGKjch!oQGv&@v+Ui>^?##rF2JuT_^oYe{4>F`X7u?ge_I*stGKkY zF@wYumu>%7Kx`YAJOlu)mg3gJ+qn%8{0)_GxK%8;N*^9bL3$eRAM=b9})X|hm0Aj<%@;&T|Rn%7nC{kFaal5>B#xN7a z@lcH=-k#R40G2PywGj9cG}2PH6W4MXHwZ8cOEl^NC~o^Rvbyc(jy9(Dx2L*Sa?VS+ zC?13J6LeoLS#2-6XD!eC!WNC$`FwPL<92;fpDls)McgOup}MN`*;S#{`7(h1W!#&| zGx=*IEzNr+9T?)BDU3b72nO~9#xluMZY5%%VTF#k{fuL_0=REtvdX{l^X}S&2<)?s zIZ-u6d;L9os72I2JF`srmiD4>#Xe&Uvqj8xglybQ`{2ETNjVQE3Cl9R=Q~!I_rbuA zvL-%Wfb!j2p0C$O>Z$k9HURU3s7r8cLrpD}WDsQuH*D>nX`Q}j1vI+^h=vdxzmqZG zVchRu9@g=LV@xhBQV>R_g^XjiGER{cZtX>ceuaT!pdd#aInrFe-@fEa0snK??71{`6n?63)(iU`5KFDXWl(3* zo=z6v6DL!!EGwy^hMAkn3t6)6Y`M`ZQFK2p><>v`JXSI=1B|Dg?`OK-_|4 zx?riR7Uh)n)>%+C*EL2t**mQru(^umYZ=@VEL+Jj`8eFH8Ox=N*D2wS4RM!iQCQ3> z!B-;zmLG~sb>iZO)k;9XjCw!+FgUT*@UCksEXi~Ubn-4(li!yG z)d-GhB^Gc<>o5V|5a6-_$GA>{^RR|G7~L)4^Kt^MyMbu8r+4(~B7ktTc_m;+K_P*k zf?X|3P&l3EY8(<-Dsa?u5}*S>188!xfaL(;Ule)PoDlHI2y375(lNSyabbUa9<#;v zaNXMiYM02%6y$mN#rVZ*O0uq)xJgnunZV)uzAFG*+2^uqkcmMU$B*{+>a`s$b5N05A@ZQPr4D=>V7lY@6Zwv&V?M;A$w zL*|(OaKGl6Cm|S^w0XXc@5{Y@;MFrr0Tq3@m&brWuuNBN0O`ceQip{%0iF@clc7E_ zCNVQZl70oh2FEXqRsMTU;Q8%qu{c8rkbf*O%s%P7wmOiW7V=DlMma#XcAP!6KNf)P zCtX>SUh36YiN9Qi49}`=*s<>9Uh>{O8y8%$J5jx-(SgPm0IT%nxh?u$uc0H>nznqqN3;c$_9VK#ceKi; zZR1~~|KF<5YqQk+@i@TaKG6h^4zWmyL9@*4d^g16kK*Q-M7IS^hhd`jrWLXm5;eHT|rkcZ$*t9MHYG?~Kd(u?@HP<0d%ypaAKa2q>n& zy;`lxPo<-2fbr8p@Kt4KCV-vk`f0>02f3H0je^@1fHBs89XxL`@iAhRUy%sp)jX%8 zj>uSLeq^#tRd)?DvmP;9;*2VO|7H|w<>JL|N9v337p4D1s`IWp2qE^gz z9Z-H~mFc>-FqEfSjsrM$@|X@d3(riED8&AMvWV3)vFa?y2NSnz66qjy%clyE{T`+= zXr=(iDtt?{B~adq8^(u*u6#j3&1;F%C)Qm(L6UT^4k~n zJhxh(cjrvpJ2sk50PWtUJa)j^Ey(-Dvdl0Dw>-y^9voc%ETGxH8*&EdhppfJesRfG zt1>||a;hU$9K27I+;2a;RT>G@JboHy^L{F{ER!W$1;_Ck0G@9?$}^Iz0HtoRD!Y~a zL*+V1>1QxSd<c?6JaJ#m4 z!WrVA`StDBfMXE1>{jClrE>m}$S0-gAv2B{VOpS!0o9BVmsuQ6S(+x_F*3(&07?}o0P=!FWFXZmERgFMVmG`q27BMjx%{pEaz zU1<}y9LK)Mc3ObkW|3){^#*Ry|1*)!AL;+9;V$X_-TCscBoSLyZ@$XkN4`F7k$Dc~ zIayb0Rn`xucez-4v`h7CdDF(sErVrUTl&EfG#`HHcimWZFNvZTJbqJW;+{T_^igD{ z?~b3fsmrEkv1&evJnAC$Uob)M?HgxkaT*?r)EI%pkRt}6~*4P=b z1tc>i6lEPh@TtW>ycTzBYiG9!mLUMluLV4Fef9cwkgP7(GpjP>Q6W}wYjU3wO5NqG z0%jLl5Ww%EpzpoaJC$ZwGQLLs*8pE=z3Mu08 z5YOjU72eZ=mgzu~W*l4CHwj#=0hZmWEIDG_nmm=AhwJoy2XNKxvnjJN9(C9X~?>?PN(aySd7zU+Q!Bj41t9d;1uLs7ZVEGxvcFpX`q_lpuJ=qxBDfKEGFZf z%ZgDO@YFrEW_PB#m$WSJ7E5y9)aBwvm9%2Vd0}bxd*7++JGZ#6 zUqqXYr*=Hc#;raq*n3ud(%sm;V{?$T1fbL4EIHzP5PdU&Yk1x`5n`B{{}LAEtP}lfV_AMsG9`TT za}UUiEA}_j#OLoZ@rgL*Z>Ihp%ZE}oJ&|Ip$O%>1M+>t{Se22F8D((6ZpN_%p+{9Y zyamY#isN~>`!!QChGiLYD($Up!MeP*rXtfot|OI{EsXz3_H|;Nm084rbC23||1fvS zUbHBS^p%>*!uMoKW;gx!tvFuVlK9irSsI~x=0Z`9cg%a-Oe zF4gOB&}(hpWwkCJn&`t)z9gGbLWuu<`u{wAZSQ712hq#qVqfKNC4+sHMk+uqIneqz z0tT5N`1KIJ}h7u0Qczm7z7ce!-fSKV3@>S`_JOs zFKcY_Z30H@ljD^SKybM(z;|?lE+S$F#7`?AJ~?T_iJDXoCv6zB6MXq>@$&hZQi5^H z`AlqVtjlXT=F|$gh+B_MtjXUN5)z2JT}QdbCqrlr&{$=S>w*9ry8?1k^Cr98k~7)c zl>C{@n~XT-#rRlpzy2Xy?|OiO6i_#l;zcV&V^LnRV2IY%v~}NFfczyBjMd$F-Jz(e zRT=vTiYaaxiX5t*n{_Db=Oo(FlY~;NIb75IIVzr?SsRPY=Mo^-pE1|Na@+%CZ_iqn zRIUz^M|lQ#1;Ae3($}SRS3wfvZ3(c%-Pdyy6TDuuF~#2A#ry;)+8e877TW}wOW@cK zQ!DBhVw>GUxibN<%d%7e%6R1OtyqF>N80Gzop<6nSl32ZL5;h0R}>N`FV)d=?CABx zbrdUe^s&narZpDNXeH}8w;_`SCT0FzUygOM0l-^+3l)9Vw3grM8s4CCyR{Bov-Q%p zW1_?-1}>~|XD_kbopl++a--yMjxd3T(-*`^Dve{l4K&~Ojk%k)1s^~FXn z9v`oUIdHO!-+yC(julvy&%KYnnZVu3tvLx zcyFF&>b89Go_=Z}C4jnUH*&wEn40-xL!!*%mjRSl<+{HKH*Fthei-e+^iI7;x+zug z9~N-@&Gg&-KJ9nlY$Z=KhM&i8%a}vP?0eI5BB#b9oCogMkE>g@WIvq6Gkba|NhhUo z%NR>vK3)||wAGx*3dzfO}F$z zD}n8cuI>@S5RXQ&9Jir{hf@7TTt`C)w&}p}ZSsGG{;z;~j!hP?YJu!a)8yJ$`A^AL zHtZ0*MD5Et+!|+Gsp9#DlL2p#IECSsyvmS`ly8Q*ul9NEtP_u+Y~mw6EOqdKZv-&6 z@yJ7d_^=i$xCKCFhk?%G#iq93riJQdEFIdCBv6iaj&C|wo1yf%M>coku>yjRk4haZ zpTz@shz>c*0iqAASc&%oU^}^23=sRB>nZ9zlWh=x0SsRy%jA4)aiBcyKXKaYQl@U# zT&D$@R%J3_KMA0$v&1?`l1UTb*h#%a*73)cQ;SqkF<`H!G9RR0TLNVa^qduk3tFE? z*~=eG%+{nR{P=rG`2lj2%$JOr`nNS!`7JHSYDsPyEej|#WV;4n7H>MYECbk3@c|H4 z0xwt`Xi>~{x_rk<+~Vh8{%wMZ^I%t+Jx_8l>^|NPg*|dd?e)j(m+M1JWxBVA z5`Q(8{(BbNyjLwfA?RvGlYSQX3E;&KbZh&D}es`_iXBFenMVH{XVLMhUVpyjy z15D{L9#hPE0ZKj9Q=}vUIJ=ZoMX0-X(f;({@|J9OfO?ho|@CgEoYoj}M ze-C+0I~7nW=-ss%7ro;B?9^uk@Vrf+Oj_^D`Wx=<)b_9(`rl-#OLzBtKX&2`xv0N= zBb^HXfih2z`xu(%V@>;R!IpQ>-|O>o9`+#~Prp|{D^i}3Q5)OtF|*gU$^78obl(`n z0rXy^V6(9y=gU~;h3}u_ePiTTcd#vxt9y+zsgsz98zAQan$_DEawZWu>#6~ zr*X>qanzWF#WP0T7vt^wxV~u{@sD_@AO9xuD!&-#F4!A_=M6fKo0h<9Q)krJnH+Lo zFajPupWi^%G3(r6rp|Ap7tb3QN}j#vr4G{xq+s7cxL_Yde|&72TN!TC2T}FF%1kEm zCm%itSLDQ z47VzhcuY&UVsWtR!EqT_<2>uwT$fFzuK001CKyK9txTRjTBgW&9NSbFA4ggZY7qWR z0{r^S{B#@%Q%WJ+ujM+)f{iw&b)VrUcxFH{H~Q6_614_)@{nh0UzeyHUOyRzs#O%4;FO z3Us6(jJQg@1_0=;8gN*)0ruRQdRg3`9Wd^MqA3DUe7(K$WjUst0n7K>t87y{;u%QW z5oYF{axZkvcE;)*ImqvAsMhHnYenLP0g$nNy;?VZSa{HpUdTt$E?^^SgZk>FXZ>~rI^V1jQo2SD>Vtc(rp{t7wzxc zJff){(}VdtaZ#`DvUC5Z8#64*8d{LKzM~vK80(ls%1Nd3!UDg$S1i$)Lm8nC0i@l6 z3^^~;?SX&7NVUA|EFk|1{ z0-QfbuH&3o41oM0Vw_zhSMx`y;}eS?3K62G*1I<(=@*vYTktu&FCIVcqOBwnot2s1 zNe-AJKl2!#X74Sm%G3BT{4mVM5Lsm3mwA{U*7pToP&tlS@rokf2L5POR#Hj;WNzPl zGdATAPE7x{@cTGmUR&;`yEf#M=U7|T!FZ4H|5cKelm$0Sd7Zc~R%B}{J(YgUK{C%d zv@UPYqOG1G8xmGZe*Rvp}^fWHHt=OA<~UmuE9nLrr2-9fa~8$pf)W25e7 z^q6F<7jHoUwf%BqRlfufJrc!uQ*=@4!Oz`bWCcK5Sdlx5X)mAJ0r_oD^5u24%*!jV zg{r}nQp0A`(jcs#^ttx6e*Zpm+KnZ(7!E9$ya3rp9jHVRy_D zZT@muC!4w~%!KvB_U+Bs?wc`RN8RT&$6mVWpkvJ?Z%*%C-@@=98pPnX0d&Vn6UgU+^pqbZ>%!hY@KDibIM z6DcgjH$m0~NkB}+hOx=h67F^1`|;)qQFh`&*mbW{M0%I&j8UHc`Tl*4h5UGbuz#9B z^MBZoxsuftu}KNli9Q)mjxzASFK zPO!COxuogUJ#^J4+4l{ttMg7+Mla{7hpwkzYsW-ew-IvAFz{0JY?%h|`5<&HG;urY~ zwBODmf!IZTCBEdw?QJ1nv$|?`qAuIpdpG5Kk&p#%WBL}y^Z9kL8oo8=ASXFk@*3DU z;}}R1Zt@XGn+}@8+U)M`k&}6h@Q!kP$*VqcGA@9!GH5q++5I!Imb-wCHeZNLDIPdh zymUDENGmh?UGPJokIp_7xtl-4{fmVeF4s;Hsp+P|>im6-2RTms5ciH$Q(gSBKU;+T zOl@HTR!P4!L&Kv0%0G3al|B*t#+tE_$N4cFPahYnvW7K*+{?YYtYnyQK9C^&T3fhe zTb=Npxn@Th>(HY7N-fNakb)Gf=n)l2H|}lCw!Z7s3S+6{U&meF-|0!zou0iEygeNU zeGBf`ureRy`G%G$TimQOJ4ycy<~}WNmEx*DM){@~VN(CxSOaRQe`0wuEqk`>Lu<3W zaOqEqp^O_PxfOCR>nzTBT-@2;N&k;FS^_bA#Yt*pbCK8QtNhL7t7X|L7%ngE7;($$ zW>j8czOeP>=1Vy&#xwWs5Ue{t_aOW5w{dss(S%6M909iO$^l;hmpW$N^f;+oh|sT^rcinv^7JWI?jyW2I&pG*01wJtxK zhBlCS?MKIqSY+l;Mw~M0y%hH%kFhxzD;s3YqPm560VwChD*$rL*1nvq%1@t`dxiYz zWN>!tKM8PlP%N(2An2Hpb3CmBBiyb5grBU3bmiiJ>XznpP>$@+6HDMvaAKVYI8_&b@ zlHLoJ>$^p#y#H}X9TRy?KZO+;jMi8}8Essyt;8ckS>0z$@>x-4dw~*6Yw|@b_s*&g zO~4F5?CqRaOR`0|3oOPGYwT7qmfH{>r-Ks~DNs(!t!x8G(6HxLX<1jxai&QUP;$9j zje@(o)s32Eu-2uu^`f5NW0h%b?0}MjU}7M*XlC6pw@Xa%;6RSn;Sz&veg|9An}2O3 z7P)}lRqoSsRiIq=0W=O%+YU4X2orRoe28rY!a$OjQ3t^FTAnpQHp{M~?W^sTKL>9s z%3w|2-nMMt<*HmS+wk&|oVWsE0m|3WCWPA*2f;B3f#-pJydRuLf%P_l@=gWRv@Ty= zT3YXuo%*u=cIC2b$}I@Ly9`&BeY8kp0wvwPt-L3&A`jv{P~O#{d3kdF0v-#yV}e4E z$)yXrzOzwR!wjy@SLHp0)p>WQ-Wfp>hDol=ux#@?#M!@Qfam2A8 z&C3siKr*&hv@SntCyak0ab;MROO-JLn00IvudP0jbf$`JY9ITf2w`tq-R8$))K-sKXoMT;e+)ORCi6=DF9L=s9(>rrh+b=qEiw7Jn z|DE)I)%D|inrTM~hAVa{?Tn2%Z=p|8*XytHpOUW+?XQ-abD8UXjXF!@Tiw2KA@E<< z@qui{mU4bU>WtSAGh}t$Y&q8)*ExIkA{egy_((&goyzQ-*5zN`40-Xy#19W(F}^8f zup~EeDFLcu<`Es}fmLfVx5;juq+M35$7H#t034r9RyTlXT9lpCD^ezq@!BN@2jon? zidj~!W0#V8C7D;OpFAxr*t*kMESbLHX>401>Ui~}404du^~%<#C0@zhuqVN`gW_o* z^|)8TRbUdGtF`L-lt?8a?% zeB;$zX{VK%;JUxR9$f2oTI0iljNjtAKhI9R4F6^>+jj|*7Z)Atwp*RWV!zrcq+*Sg z8N_0jx08nT)>2A>=Gf=V?7L%z1CXg*Q<~LVsmE+jcaxJx(>Igfj zkb}u7m%MhWcTVJKp1|{8m{w}CI6rvb$WIOo~Zj z`62}v$HO@=A%htGI9P=b0w6m8rq%eM%wYbj6+rA3X6ccX)QfRBZdiU<{$N>t_N)cX zJy3QouK>j-`Hy8xaskF;E&nyjt-4%$9%a;@{(d_x&)qG_r{?J=94Jq1oc_kav$VCw zKc|+t9A8Tu6!u|O8?)OGpAmoE_Qoi?A+sk~KEsmin{UdWTa*KAyE5^1xr4-vJzd;r zEq+)|;z|n@mqvk!9dN%M0w_bUd^IURbgy%3a{Q6_1?%q4cfYt{53wIw7?uFaSOPTX zHR@<|zq(?>lH360PWy8g!7wG?1iNgPp~cx|A>Zt;iuM`cnAT%N1|c>X`t1-zU9cj1 z3}XOgC+-m>4eOD50MMfBY`Rv#Elo~ikZu2}FchO`#5u2~z3%v4Ow-++ryPyPt?i9mAEQfJr?C|ogIh7;<>yE zD|G;6UJuTLzt*Z<&*7l#ssLr*X3TQjBbxeUTki2{uB`#UZpX#o{t|RvRm*lWVHMZc z0O;;K*JFL>84nFt;r>3Zg2@a(xt|n+H^3@>=aswzs7tFefHLarS+!Q0cq4eLJGJfR z9P*;>?$&*7G2RVUc8P(%lhP#g$P`v8oWCJ9i%LG!25hXGJ~x~cG%Vd^Po(7s!) zAD%S`L-F;yEzu!Y*`LyD2RrUt0nr~KpqZ1I5C_T++EC_?+9#u*CV2j#mSOC;_k#fC z34CE<*2y3r7Le?YOz(@PRbZ)0qGTqckKlHra`pbP>_0A=^I5_HT} zjGNg{2T)D|Faqb(vcSYPU9;C##%LeU*X8e&^)Tk2*72YEf&<|I$|wh?NxEe}u|}YG zJawycFl3+1zyBw%LI;BmqXb_sO+c|6cN zc0C95JuiDcKNodp>~f&2ameR&vIWbw1sAFgFCgLnS4km3U*(In>!PrjKHy-Z^Bw zDle8!9`)44nsFm)Ej}s*X*s5#qdbtAMV~>`_7AFC_Hp;1aNJ8y=EMxBTAa1qb1NU% zEM1gNoO;Z10A`O%j<%e{3$e^sL#BX&!0r0iKaK8!?Jm{W0Ol!iBX;gWB_B$3F)L=zYq3COvnVrZyr|*axWgY73XNI$`c57 zMI++CH1gpty70i#`jGL-54uJpUou%)&6m?e!@X4{ zqp?Cl!^pe8c=K{<_~3lpK79ka696Y>2jUY#U(<>Zc9BGO0vdnGNI%Q9E7r^pFKo|a?90B$|I5O6EUE(rmz*N^m2!!6?kU1tf9 zS7JG4{@=_qoH54IR>Z*ejMW5Uy%n{$fT~q>+$rwTY8}?~v_b}8?k&g!t4-W7&NuZ7 zTia#X1C*Tr#I$5yg=JW+uC#FTSTzV!t^~BJReanY^SWrwb}Rb!nC{}%Ju5#Z+G6~6 zZ(Qev_`St5@#oW7rN3x#?tcrBCa*WG&=D`qZ7%tK5G>FZQICiOThS!~ZQhH$w(UNbvx8u&QefwGcHVZ?oJ9h;+mP8`GeIk z8@C=u|2~t5UtW?QV*K!Bq#DH7%kjs@qA)o-vo*l+n<1}XW0C1<-CLF^Z-N9&nDgC$8^-TnHg>XHtY zGksLK{%Uj?TW%c4#@eOt8ci9i4s9N0Z4z*sEu+?=3-%whY~_Wn0sHg) zhZP9RF)2zoFmJnjb+kagXx1%VP}mt@2^SRRplisxHkM=xN4LEn&nqo|g67RAG0f5F zaf(noORMA#36KxWU8;{`9V@UXpCy?@5w#?1XYZ>EE=8U{`QRpFoB@E=f3ESz`&NMvgl^UfkZEc9qJ+Ek*}lyQyC7ku zY6yiw5htEjpbW`WL*X9UaUrz?)wH%<)CvUAyZyE7T9dL#+sgGI=Q8_p&R&vnZC_TB zDGGoauF1h#xHEIzE?bhUMN#+T0G2HptmOoS3DnSLAjqDGOV6jkbMB+Pd_8_0W{Z|z z)+5kdy1y~5vqAheKldnLO3%M^ACx3NvpRV|%ekLd0Q+q&&i%R4)xC2G_jY0eL)ZH< z#ytBzo-f`3EN^bf+01v-^KW0Y(3102w4-{d<^0Pd5g=i*TV{ zKwx6jF}AerG#kR<+!b%=X{y_VSJ)3R9GeEeU3TRh9)d6rgXD`46c zI?tzUnQp3|fG^VBYl7q@^tCMMZXG_?G$OEk!SGx{+)_6yA#@T`m+{R6!Aa&7>&S%i zFv=EzGo%67OV=;=wy`;bbti|`yIIHaeypI@&CqUJ)vI4r{r^7?oBrqZ|K9z2AmB~# ztKp$GyS$ND+k%H_!4-Qjf!<#M@~!gK4cp8#&OlusYWk=?7J-Cc{_5wS9;1C!W!09K zx)HRw8C%y4FRSj}3Y6(4!jIz6)QVi&zz3dgDVsK)*}?9n?0Rlv<9@9``6N2JtOq&b zV&IMh$|~-DLrZgXe%Zk`6(#oNVa#5>%v}zWvBV6f$1XQOIc7s+d;4i^8|>F`A9@yp z!AqG*wU;e0hBynhuavl;1j;tlAR?6~1thy$6w^PzJqmvu)t;0*izNH_?b|w-uGi9* ztOF>YT8WLqI%AR{1j*P=wrhyEllkmMQ7m00hweHi31-pXNl(j!B&AVA(Tyilef+EyPZ}b&?Fv0Bu*? ze`Q|;$^gI_PikWmw@Vqr0=q4MlNQ^pD~W5iO0MOYFX|6h!YVCs&3YXQX14-xI_MPt zY?Kp3C&0XF-JMxKEy*kkH}dW7w1eI5QtfWz+Y8TZd&uKBS&{dz;C_34p0xH0kf*zO z{#IA*GZ`dydFU-JsKd#V%NCSw6ChvKyv}^z$d;b(ZA|zKlB@fI+q?BxB@5e?V;zj` z7EtCnzO5Vwi?`1GTUEPWEJ?v46(0J!yOJjFQ>@$xMfr35?&wQD-|c?8 z$X}oC*;AjqihlTh{CPMH(n^K*ka`Yb!FXj4$&m?FxcI+MN z>uH0o*wg>+9R|_yA3zzg%OLwoiF(vE+?dP^8n5WKtqP*G6ZbjkKNRvVS8fV)I*GEA zr|tbVfH*?cy!_w`0Q*_d%?jb_P{QPn3r;RsPAuHDhe#RK>U+{`!Ug-C(fA_d zu&y(5Jc+*zTdKw#T~?j6)_o!S59L}&SZhJ*mD}ApUf9^{<-Yd!(*FlNPizky>WaJc z(42s^B6*aaqI1C}G#=U@>RRus+$vwevY7<8*S@H-UbhzKWSw*W{vrJQ8OPkZXESfJ zGUc`L&a*2ie>EOrJ`?4$Trb9$R2$->Djzfe^b!eiI!f;VpEI6CW)Kg|{#`mRccVUvR8dws zvdcU+^%!LnU?A5WHog| ziAA<5F_5`yRIpiMkUO=)bO|8~_P4JJ(>0dKg3V?AQ$+JA`;0ZoMSd&*8g644#FL-| z^4J>S{F4msm{tEN%2IKV=l)Pu+zorOFjFac*H?-H#FYUYbM_yC;zr_#8BXi0_@c@+$@u2_bmiEBs(S}3Q%SdG7P=2Q*f%<#mtGKW=YC-SZ;8?KAw zLvG3gG^Y|i0p!(r1pyE$|GVOPx+~^1#%B(xj9cbH&SNjC%PHeD8Mn-39&5!#mR8~` zc2dm88w}Mor*PFOu6AUyVW*}&0$|iwU<%x$9bjqPu+&p4rW0eCfaA^ri}H*SzN**Z z0Prf}fW-<*(3b>T(cZNjhkvdb|7mN0Z3FJF>OFa^@Kphp4oc}du5QmAsaKY5SMct@ zdjj289dh1o4r;GU0Q#nqV#a0x&p#GxbIR-Tx3=O9wyt|3KDjJ?|1IM`bOTJLllW6D&2+zJ z{IcsGPc3y2*GrhSBf+r+`AU>qfMDo4C*vYuhKC)Qusyu_xNbKUv3NNqOEw6<)cX&* zUQl2M8}?8w&jij#Lx$}!M>EL1=!A$cJ+3#zU>ogcI-qQ!zi!0vb2KJLPs8C8+lMAD z*TIMlZ_A1r2RBL$Je@waO@8PTA6{%X z7G#NMwy&}%gMAeN!(+@CwJ%Jah>4f8J=)5LVdD~gd}(jagm){`oflzAw+yah*R;K{ zp^d#@T!pE-$ROpGtl7ntdwziloRxKOW3$;hCVhVz9UA*F2h#sGIA{haPB$BNl*d+P z4zcfDJfq{537fGmUj2XsUUl~KnSEIpliW;~2BDYPJZCaR=RgQg4Tyij8Lkb|a zWU=I6#&{zRd=RW-Hu=dki~MSuO$PB72SE&)o*K%m4zRJpyvnb;cZpVHB_*NIy$qx! z|HuDta{${z8C7zCP$)Dw!Y06QJPd<}6xgD{| zw8AiFvgn}&Fk4CULN`@+k&YO{+g!2Tay==wS7$3%p5Zc07fn7xb+u+3GG>V3B6_)7 z!Rr{-Wp2C0Iowdy9Te?e(B0Z3U2Vj1(qfjs?QQ|d0KRF}qbsb)DQaX-U4SvBMf)Y*C-C+wQu2 z)m{YSnH8^Z$N95g>KM4Uujbe7;9uJ6E%3dIwz@$(Xw}$bIfoLLSvNtDq+oW-bF$e_ zWg415SM~g@!h)Wz@ABLh-Pk*jKgN4PQZIGYR#UGsY(w~tuex`Y*Lq=Xer2p@SOMLy zNnjS=z-?^Wjf?lLrPl{VEzQnkPbO_))KKnPxaKjyb96x1{(L^p`k65%?b4;2 zBCOdZ8{L>hh3cm5oDFviSf-0MnX|{v9s8E>gN;N@$VBFl%Z=5?nIXl+s~mF6Jns#}?w49VC+}JC+=? zf0S!IU6*0~)U5TzUfW_GW_QnyNp{sIGKSeKnMCJh(0wogva*wD-FaAE)_2lF%J6N9 zZ#97P(~~7|1W>)oeN~+*+s9UUV_?`|2;Bh+A}v(Sr98Mk_wHeFzlI+8T+ZZ~Q*y(S zG&bXvHJsC?$b3O3TV#e%9^3a7eN!+c*DmQV<&x>Vw7Qd`$d1>3qEFl3gI?0Cuo?Q+K zCk|pf69tuXdNuo?1uhWi>X(gcV!!8IshiN!5_O*^sVM z9N-`v}nP(3KU- zG0D8Be8i-E&fpVBzlW>!q`W+MSZ40kO7a&gjMs3X16d0JGl1~}wJ1Zxy5KI^(auVM za8D{WlY1r2355We7G+qIkw+QU5L!s63}VCG76TYF29Tgp@2dgI*2X6HAbDSovDgNI z*X~d(L+4!^+-7?u@wyBk*(l!vdei-S+IH8`F5MHsfOuJ#_Ja^f(@Swb?)x%8!s;@B zh69uGo)bXNNVs+i1M+q~d4d_u{o9MCO4=5ZDJ8)g^!Ozt=Lav8FCn{Ib~WT*8XwJg z+%5+CTH>8GrniYNHi<_T(5U4k>LMAK6ALOB_It-OY%em~wQ&|6Okh1bhd*Oj(BpdJ zp45GP=$?B5x&8zTG07B8IPiBRA(~D|m~|5;);?R3mG$3YFQcTJQgLFih^60^n0gn9 zf%eTV9aW~1it2w9@5~7%R^)SQz<99PBb-9xnX$i+n28o_L$cpP0FnuQ&${$-=u^<>VUl6?7kD3KF@ zE^*0JamGe3f~0}sS+OEBvxw_e2c!M#@sRozjT`uNUp`y8l^Nnz<)a~aXHpJYLf15w z955}_SP8yvlLbA~;u_Mx6Mu&$F4+9Dmb1s~HsY`OGj0HM1-_KOnf|X%)Fa-$B45F>*{w4w6)4vr`nq4sZ0J9pn(ORK zgkXA%&MKMBewqZq8HCV%ybHf&=>WzO`|x7SX(g01hM8>F&lf%nwJ7&sx#U$Yotp`f zR|Alr*V#k@<$pgeKp5g~)zk8yr%spvTGR&L*fN13)~gm>T+kybtUl1n8SUm7G;9$ zsZ5nsDx~{y9IVOv%6e@Tr0j+Qwin3R73|&W9vvr-xdHL;$klUfIk>OatJknd1|}BO-V)o?lV?!LvkG7?R_1cOets67FxN;rkIe5Qfg*$;=m5}N;&plllfrDMFGn);+V0mc=?rPMu_tF*5+Z>ds43^=gH^<0QWEQ&VBy{rN0Ny7(1aW zJhlp+--KoPO#tRu{^iKMjEQfSc?!sN)H$sxfrI2;PcYFRw9FQ)%8;HvB`5N=ES4vA zk)Sw~qmy_>PrK)n>7!m+OZN2)B$ZzaFi!QwDhM(?Ip~ zjOm^ofZ5$0-SwzimetLOGpHv`J>GM;V4LJpwvGWi0J4kB_?|BOD9wOKSzC=`T9;MZ!hAL37G$a{K>%>N@YUhmETW_ z=>sTL??efd@&+WU`}Kp;me2lA<*S=vk@+;i`Taub_5B2v>9RMoC@)c3_w7I?E$-%1 z92*vqyIpFOWV^(W`G-8r{tO?C4vas@^L!s*netw(&sG_;Io>d> zl&{0WOlz`OmR+Wm8yW8in&DyP1Yg#sQv7{2wv*1&c=}Q(vL8pb30j$N6Ha_LsUX*u zp;s2`u}H!8E72X+dHj%I8p~H=X8!eQNpA^x(u3v%%wa)hxLN2yrAh_Rh+U?uc6#42 zR(X1tUaC$e={(&sj57Rl08fa{qTI_t=z|AC!=4RL-2iF`QS?!}nUajzLv_u5KHS2h z-R~nfj`c>C!1LJd<6-|7=>Kk?8|vBH3nem7fLxj!OMJ4mz`0!4FsnD1eFe^6kgo(^ zR$rj9P7<$i(QjW_u=_R`xUVxw{2=-dV;OwQH=KXm9)`9~9zR$nM&}ndcE@bQ#bjDP zjLzaPwv{NsUACXczUMXr#@@jlN$hb{@p1vlB=hok<%eVDS0-a3NxZyD)OGOutaP@N zoWWEJ@&tnaHP+R#>;U*#oiV+NLBc`vvwA+nF;h_mApX;|4v?Hc`Kho{K8b-SEXhvb z)wx}h>5|e|lH-q-W)Oj-)!D`-#tDE5u33=P`>?4P?pHe3G4A) zyT$eTV_n`0f|*&pPh}s=JwEx<;1*;keYB2X9b{e(l<$;#!#1qH`;qIk5Xly6D%`9I ztb41?85wJ>x;lcn_9jSozBw!Xs*-p$?6<*it;9gSFG#pRD1<+{UBmLV+tF0-$|l)) zQ^@3XQByr-tTRA_0A*O|t|G?R@y*VVq*-J;ZY-1mTm~B&pzQU65XzaR2|BMT*^nPj z@Utyxjyj;M^?Ax!tZf{tBwYkx30!#%!4Azf3s{f#w_@Fisd(Q3f*qWOr9445UB|7q z(V4>)a2xCKzPE-Xw`%rBTfFw|En%v*66?Js${Md>xLVcwRmSNpy{EX|0RDrXYinqa zr6qTJ%=6S|#?!G_N|n`%6t*uT?1leW{SLHL$J{M<({vy8rszm27LecuHOZbpZt_h@OBzK3#WzmN}}^Et9(Iup=Lnach@XZ3kuvJi31G%&m8%^g`6 z^DvFq9lv zwLW8+Hkcz>hHg1?(Z;^bZDk8Og=B##y0g}mKQAAISWJyjGf?^W)c?I*d~SYa>BgE> zOMYbm&G=VwxnZ_80(!`Xjs28#hg#P*PHmW3k=Ih^RLW0d1J>fT z?)b4-ksUaPdl#(69uH*&IKL65PR1hlvC0_m39Mm3#tgd7s6U#)gv#|lnvMBPPfMlqI@59B;$*yo5Qi|LU<@H0vxCLlV zAy5u&4DoR+f}6E2p}e78*Xu&L+n?^o^NZf8zYW~2NpjI9s_((daauMcQt;aNq((TOD;f9TvWzVThHeZVv@9STsmm2K3H^*a7Z(7(lpFceF2+;671;;~{zE)xlZ z>}UF>&f1JJbyHVBxmC{L=Lv9o@`VAPr57w~)toK-l%-Go04@s=bWSzf^$tq`)pMdf9?ii;j zeSv@9dt;LV4t>JKWQ_)3c4DvC_I_m?(rp{8{J0l{cW{CbeNb_)uCg1JW0ZNgh@k8J z_y_m$=d|<<9UDZF$k7bJxJTgZ=@B29Pf|b_+C)z)cf+3c({t;kg$+b)&a^TE7cUegiH63L>5a{dLs>qKZJlf@o^4** z(CX!XC;fk@!_>&P+<|Q1;&BvBKM{1b4r|OY*2fm$tA%+akggY$`|PWvdmYy1cIJm+P|G42H;??1N|QbfS>g#od}N*AV7;1W>+tGtPjqGhSN^^0M=- zw1Js&2go5*6reyrc~C1YEXNP5eI_XTeNs|b{`>o?ybvf;k%3V0p=AJ|nAYTP@2!%+ z1;V_Xxjojroh!-f$=Kt}jXVjh8X1?Y!F8d;xpf&Sp+1{ikZD07P(BM#OpuItK7e1i zTpR!R9BgQ<$Tp;<*sm*M54|oF-1BM$W4TMjFSbdPhRvGy@8#Re<=bItrgfP@OLN8xGv-x< zmPJ~K-L2RP_{H(WNq!z{7331bYSk?qZ3W=-{oCQTJQkqZxJD;%j_s`go2&zi_*M&o z%SkK&c7sK?q#dIxa~!)>W2J}dXe+GDzu=p^u63IU4+7?C`HPIz?h1W9HrLMM*bYIw z#sd%0hVL8OfvTFhhq_F_%sSeZXmi``L`}YZYK`9NbdBysXspZI6=yTem)`p?V|Z>{ z4*A~Ey3I0Y(~dmfzP)25*SETCPk)GSCNNIRbNn&#!CM@M=Dlm~7hWJF`??t1Ejz#e z3weIKrGL=xp8%Te0w8-TslD3%-g*11U}4^ke#NhOzXD)y=d7F?UNWAIF8CELg6-e) z#E19R|2N)=eIvvF&;Vu-BH|oQjCi-bj{AHL!5`t?KLV7&gzb#j@vPoIsP}n46!B!p zejj{av5hfh^FxIir*F*4ont5dR%`Ow>C$rsXqtN z7p%wMJd&|E1eRuu$4uSG<2m8Y32t(czzUpYR>psqb@^LIUCLU{g>+KTL7;Cy*I3(_ z;mYgKL0l(!I)+zv+dnHCc9Eg+(r#R_!#(?%NxtQmRZn^u|Bw+o*{}l`V;je6>@uv) z)c^izGLmrJm&f%wj-xH=lhh&Ipp1Y1t-B9yZ=w%+F58=^v#~kwUD_57pv8KWLskeK zyFTl`i~c`uY9r!)?Vhb>1*6m}$R&Ua0ZfADurhm^D~pu4l97rR@D(I~SqA$rD7}02 z7@5fU^0qG4`huIpAk>d+PUlXBx%z$8xMzNATsBu0W%y8D=!8%AL62q);hoQ}4IMFo z$^J^>b!e3d(82R2Sh1&LpL#5FcTJreww5b-7l82dAZ=iLG6}vK0*C{vu`S0#L*hmG z_h&=qNWM*+tm|12cfBm>St^TT9SA53#%6c1{uOB!Vx1$Age3c5S4g?a3@-*QT9~oz z`4Ok3#vpOYk&mv`ApKyRvZjY>$U#DAh0P`0vKg~%Wl)D;2K?EZ0+JDb1xqkfLIEf% zYc^A9EQwm`ZWGO!40#aB&-?c+$tgt{uNk|Rd6TWWPCJoTfM)>Z8%bG`vB;25ZTm{v zx|%G=H=pP3+(QoP;h7kDk9Q?z&)u!3|DZt9I+M>rh`ZPZT^o_k#X3b6$9P<#5PR7z zL|%+hP7*JqiHZVWT-5YXuC!kam7Hr@zaR+4!DIr~i@7cRlM^J337VZ@dB=*irz7bi zV9j()W;HF603OC2GaZpjAYBEOd0bd<%eky&&sO3qGg~6#$~azQJJI)f%RU~f$`MXcQz+88@ERL1t51i>30ekdHhsP5Uf^j0_fbnuJ2>x);rZh``_`pY~B{H zZ)+>c<9y$3-=wR1UUNLOS^Vp557Pj~>-qcVG;bryY2CioL9La%rifkN5=QYnPsCkk zZs$IC^LCAU-?Cd2xz750+jS&qn8rZkot^XnWqr?yJ^98iw4JaPFYyStp*jxGxM#?2 zlwT-m7~lKo6R>o>Hu{W*d!dL&f5P}>rPgPBa`tmpK=PhU`en*GAt~gfASMm{xy1Go z5m*z)tex*9AMTBwr2xcVAEN&T!PoF%s41p!{4@^S|1c)mmmg~#nOB#SnWA+xO(9~L z^LL4i4PTPX1Tl@1jA_o4QXw2m0fc|*c|zhkIFY?X%8Bv)bY0f_@!$7pWz;*hTg6$j z*F!27CCf(aoPcr(AA`hqmQu38Smnxm z&Do)OkbZBe4)^VRiNEwR@*~m@rIgDx4{d#3`$iiYXH@})53N|D9VmAf^7P+^bisDf z4ocjyQ;v$I7~(U9N2Qu}bO6uTcYjhnSQnioEy)nhN+t{TK>@ps8Cll1pVsR}#}7*q zI((LI%V6--%3$y`HZp{#>~I%rg6JoIl6#{I_7jXv)4=xIkXGb|ld+;NK>4=-%IemIb&Sov{Wz9N?j@j^Kp8XTm$0O zBOW#jCs0Wx{b9LA2f9DhdvawZC`&zWX1L5jJYVwta{Tu;Bv2+sc8w?qU)&lC*6XlB zsFm4)GRv(i*Rs3i?=H(e7r+dGQs+O za~-bM*V9vD&SSS|27sVNY>U>yh(R6WKZ2EQC3CVGcdYK&+gBCCTy57foaMTU4`yct z;ItJ4R&-nOEfaYD5*Ayv5;C3_;5b2NlxE86A{akC#bS)9@Z9=y{6Xl7?P(k( zc3C+_Ah0H5?DzO(0O{$E<3Gp#b^L=mSnmlxS;@<%wlHar$@y2Ws*AP}C<8P<2?g?1 zwLqV!l|Ve}7^;>)S?bY6+dX+i_ws!4p_{>?>?B@v!G0E=d{(T^|87GrU5+DE?;ti0 z2LFRFOz+qND9-|u3lC0}LHKk^UsU6i$MTo!wro+>w*DVCMdvn?W20U1hfdiHd1xbF z(ElZD^LB}!uh;*F;@Tpoh~4EhgOAKZ)%wS|{_kLT3`=sK@;0n$1kPgso3GN!VEfLATcsF!&YV|__Z*D>3SL3Emxe*1bzS1zn;PRBO^koh>=f;1>v18&b;oqQSU>V4t6>?g*Y0L*MUi_W z6MsFH3#wpoYmEu+nMsos%3dtdI!W}>@LA%aL)3G z*$v=KP?OBjS52oS7Gi&j#mY=~=Id&42EhC7`X;XrLW}4xzOMoTi|5DkU#wn3b1^F1 zDdpb&*4UKy?AHw?_VpLq4@oe7+c67ezsU3YE-c;O*&k~(y~Vh{t~^~>%?G-p_tzY4 z^zF^sXPeD=s)|?H$E|s1^c*vhI!m4nT{BINY_}wL?{?oNW9}`lGE!7^-#;dtF8UnL zI~8m*l@!Av(rx5oPG;}kBFeHY-+yhoWzz1&kK3zxnJM&axlz5R1J2C?fkYd((v$nV9%4AA_3 zVQeB>Hq%I9DEpc1ER1*WSm|AtR%!y!k5r6nIDW!BQ zr?r^?Ib)aCMWrC=7xjcwuCHr+bE()~KeKH>_t4Z*x2-o8=BEfrTgWsO7Gs36^*gWr zihc$H7j4EfL#O-ajuBg3x0#EXo`wfD_Qcl}GixCg-la0iX8Zy;)^fHrgjHJGSy<0w zME+R+ugLa)LjUiMn(ec>MY%LD@z6jC!FD~y<+X0u^TWT&T>il<%cIc(%#z#v@9T@2 zM+-RC_SAhsnX=hV3GCMwAKQmRwLXuY54m;kt}kcnvauO>ZZ?@W_adfykW@Vz>4CBm z6)?_XQy&n4vXXkekUAN+{Crpj%B4~ooZSsOW^;YX9`3j@9C~LsSu1IEZY;?bmSl0| zVU9oRT(JR$69_XF*~%;^Vv=!~TAqDBfpWy&q-B`{!qZ3*WyPI|Q?g{fh6@yCbN!El zodW3fP(gGo-F4f_;ODW(5wnCPwm}Huu}d+aCfoJvVBXXl2%!8^{CV9s6*N0gepIU~ z+cgIDKk!I%fnxD6h`o^h3GQuFMjj|NX)M$I?SZ(-J+LJH>P6#?XE`}P7T4>ven(yW z-MxFu1$QohXKZ^vTnDZ4bPWNTHD@Ul#J#ghh;!5R5vaQ#6?d0_axm4>x&x3*pbP;U zE}3wtFz;B95rxcv@;)ka-8|L(Gs%l~I&vbjj6b#@KPu&=&h}*mmjuQNfSV?yR$H}ksIUrNRTk@vAMRpxM+d#D>8D>6%WVKP zUy3_5#X(P4e*rLw-+oa*xK*vfX|)w`Ab4Heq#?8j{}Sh?1=;sqmofrd0MK8gF3n0U48WR zcR!ByDYz*<>3ceX=MV4YyS+a+(bs>xADW?uz!|>>EzddL{2bRfS(q`N{lI=H2EZf$ zv#>04V0>hC{CsN;lrhF~OvYsNpXtqI#lnp9lO;RDqpSjDj%8%Y?#F*vl9L@9>sEPA zTwnN2p3SMvgiP44o&+F%($^S+A)9|yI@KpV@8G59R^}6Ht;|o0PNi1nHIQHdH^y|k~3@cXhCPQa@$n}Gz@n`6OvdHst?^zGBv1Qpvoqy3|#;#8E zSEB&%u{n+E|Gu}=|LOhwpVj||nC_{VW|Z^Sb`mL!vM=LG%evGam6T}+%_8HO3BkWI zVbA0r=7B8c4{P=fO^|&l@8grL%dZ@--`J;Z;s>CQ58D8zFUDDXf>v+OR@*qVp<14& z#o^S}i%mDX#Sdx2`v_~Z#3nZ%_g@)+pcdt$2_!%NmvXM`kD_zx`zYj7K9X`L^g6C- zqHdJ~Ypl!r9-}F~y-t;*IlOa1s3RsenqwwiT zwJI~s0_0ThVQsTPD~qNTw94FUbrLM||jmE5Q?zE~<%ZXTIFnZt@aaNA9K95vVoGwkk;5 zzOLt`m9vlkW$dmWa@`tXDYPgj_7kfy0i|1v10;^I?!eJH%qUjUYwHZqQduq7CdWFU zrzLnxtl`%~-+Wqm)xzv?)bT8?9})Z0mZZX-KzUpSB1ZO^E~CE z{Wpms9_znBOg7vq5d-}NL%gLc^;H+^tk+1l>&X2rb2bUCxju`DUN|4)nEhOrLpxb@ zS%|?jmYJ^GzYjO*9pV#S7hgD0XKu!~Pu6?Lg;=DW?LJ8VKpF<`74%CEc%v`UXX2a+ zk^ddCvg%pGzE1nVe3pT*@0?YO@)({v`&!Q{RSUCAyX~!%(3^U zC~`~l^!Fz6FW>w)`ee6}ucB7WUkn-RDCDnK*h znHk3nFSqsSO(FXV5bYsmowfKxQ1hRt3r+fzXAMbDyx@ef!U@Briv}}4D~#Cxx7bgn zY_~3B^5)nY-kL=Y8>?~5lw<4iE-wLO?%!A;{yJ)rWYL=~bm#GQOLMj*Ap1o{o>|6a zZ;kze{%?Q9>1O3N-*>nv1)I%Ch*IFiSnbGhm(>B5DWQx|guq~2x`eRwjbHOF&*iTJ zQ~w)@x?Rs*tVg3)G~cR9_dYZh<#y($0_dejrb)<`jxVSBqYvk=kP4`8amnVV!n1B- zbz|9?6o$dEDW6-AN3lFtQSybOAox14aJ7~;U~MLlW*a_Bcx>J|9vnyicu@9xUS*9_ zR*Q0U%G`DP4;XGo+byw$x??*~j%Vf;=2tOe8+nzTjq=+<>gD;B*JYr} z_0x{jE7mEmZ~4(VsOs`@5Qy~5*UbCKS#K?;%NV2~ED3SYY(+shiKXXIepdjqTLU6B zl*cFkT#rql+_86guH=P|lrhTGgFG&I$fl6cN!T*IA`3W{#m5KjyB zseQH%k`?)SMaz7n1j=+n^jK!>Q!*|{2ZR$O_Vq&C?K-T@G>O&w)mOngGxhWnFM59;{km6SQvG46rF6)>F9U^jg5G9IsZ_1nFB9toLBAyX*#F_xtjg4s*Ddf*&}=qyap&{NRA@M%Cn;p(}PMLVt=}%_m)G8pJ`egug)=&}^;h1|e96 zvBP7U55@)%r!Gi2u+$B;-0NC|^kH&e!SZGl>#+Rh?ow@*`f%2>mH~ShTITDGwr!oe zHG%ffTAOEhA4*&N#(B>($yIqsRx zQmWiiuAOxckbRa^p0tk#9*;8w7?yzq+kdKTk{RbCgV3p!*dVS`*6Vg)gM9nrkf|YH zQU3AU%6bWRE4XDj;m42ldRMRO>^}!ob?t({)!N;`ti~y0{RA$m)5w4C+Z+34vIzer zn63$k9XLY)fVDWZ1h*{H0veWOpNY4jDjPpo&e)^OJ>Eh&c_6@93B1OzE_*+GzmU5u z$`Vk91YrymELxONl$PE*(#GdjF+7htnLg#LDtWg8K>}rKP;2AP*yr!-e`u_DJe+{GJTT~-`SvZHd4-70>q z0WeVgga39C4=gO!TvrP+WGk7nqYR_)b?s*or~||eC1sOaZnpw-TvujiuX|kq?V?%n zmhxYgK=Bt2`A*oZO~B|@VgL0lSb+#3E15dn+)I!cWf|Z`*`y)y8b>CXTiIO%-J6%fc#I>`hQppg!{}3rJ1n- z%*@LS7wm^I{=HMs+*zA%1T>QwJL8s3*s-VbKR>Q9%qcqA{kRO_kG>gQ4|pBpKLBrf zn@#(f1>-llH|iF-Z7q0S3rsql3fDU~X2G>WDHHw$0DHEN6X9f;hL;OPC!aA)kK!a<1xO8kI(~vBL~;sy=7( z*j~^$Q~wF|T{rk+o~Qrn@(&ZUtZZ`%ZkK%T)h)ZVCPxc&_a7rCS=|%u3mtpDRD+yL zzA>))DTi#st;D@-qRibbHc=NJ3geLD{r8klc}!K8CK(Boh}{QbLqs6rR}3qP&&n93zR&vqW}H(gA!+KFPE`0r!3JS zKZ_;7G2>{E%7F36SONqG*>zfwX;sGH;Y(bHGXHy4~h#c%LVOuE*!!*W$hf_IQ5qSO+_)st zm3nVT7Fq|zh!H%m@q5_zxWbF-CV3fghZ>jcF^v~RN!}F_FSBY%Ml3HZRRGG&5er~^ z6-xRT7A$A>-I1Hp6i$p;mYCyQUcnMIq?;;%w&UJlA@;iAa&62-?7_)H8`2BQ9NcG> z5!<@l!`F35pzPbj{)9lV}uEgGiG^fY+`9;kxQ~oZwa_8L%KpU7TEt&HtIMJz$5<9m+_uht`h+S;IwjYiF-F0 zw`UUvoE!)sx)t|(EzhC>=}YTd6-kOAcj6|}O zGIFO+|Lw*1@3G1ka*ZN;EDI0~H*5#Sbjv2U!S2vliZ6mM!GUrY*PM0G-=0-I2y!|+ zj(+s)tbk-c>@2R2am#0Qt`glQx?*raI8eT0ivsLRFCkxk6g>RVs>czxEm*VT&xa7W zWZy3ndl*+fTJ3kqkZr-K;p;!Jxl)JY+WU7U3&cAi@OVhzEF@olc^KpL+iDdCP=d2NVP@cBDW+ww1fUFSGGwMJ$$N=)=vM&4$rtm|T0;d6d{zt}(B+_~ zfh8NN8{?DVcJ0%?66PR;YW-zRx@t7 zbGNqEMG4Ydlp!VlN0_hICOhi_#pzlVq+PwcRoOM>AVHxe*}b~n)KF!2|9ac@RvfS~ zm?MYsyN9cEyLP}A=`kL@vsMBqtCfU6`PFnJt;ux3Mq3#lHvRKGECe6Qc~JJ@ez6oF zo{XVpBy54A)2!1K+iKg5B{u@x?ozR0y~vwlRn(U$<6` z+ck4A^SSUE^jR^cnD5k*Tf3fUFc1rJQcr%x4bJd=uX_zUSRbYb?-=Y1V!sB{~*o z)VIzZJoeMVjLA7)k4{Yct*js5natU4X|~7&0R5@AICoa)U7J5Eazps`ow39(cjSw{ z@7|bW0PewaGGpVTMCk-@rVDnCA@>V#28r06)lJ4QXNoCQqSuqv{ylj(GzYVMM_8Bn zH=HMCOIDXSTH+9cW9bwWLXnoGql0TLSca^nO#_Urw z@opP)GT%eSgru~9W^42s>OSzmOHVurYg51sJ?q(|d%Zkq0Wx&4B@2hTWRrL1>}3Vb zvpmcPu{^H(4^Zb|aFW>DWt2E&DQiR&?Z!RZgaO;Wd=BfB^~G;r%Vm8tRIvU9{l6*G zQ(KlN7RlD*7~kf4*G{c6_U+XwWB6hB80xEaxtIT~Ez3(kuo82XI+p31dY0@;@m^jg z1;fmbR@*3V8E0SGD;dq^V@bZI(IQ*ZJ17ePVir4aws5tU4{dDrTeyS7=dkfBv!j12 zt-P>Kuzxdl+vXhx;+Ky${g*l<@J*l`$M-<_9Xq!LIq(B2P)32zFdi4$Ea^$1T^cWL^ZylmyLBxU|eun6tA_%8~>eYpVkjsVifb?}MZp z)$4jCKd$R_VUYaER>`!9KeZ%3j+tuCOh00rlogPiKzXwIGKVsWygX+l&i_t;G6R(% z@5)R%z;UvKP684XvW>#+npOv<>41Qh)PZu$;6q8d|6$BLnPuib+~zuQg-0z2A?bQu zD)}G5u;)#lfHDYWa4ksv#I#UpJ+g4UK5G?XSdxe74|*XK!o?5zqy+5VPTyz_S#hHeuJHQUbLqH~4jVq2b1-outy zysz8#G;a9U>6zn?*UEeOE{L)8K@7a+Ez3!XA*}ekv}DfSs%`1B;oJ8)uPVepv7)w59TAK-! zQM|QXft8+@^^`f@f*rf2ZW}VbIluqQNSChPe^{6mD3jdFiT^HQ@@==WVq?Gdd34i; zD>fOp``qzNFU5V{w@o1Vo4u8n?{`4i4-reVw-Klq$DhT$lkkh@TAI-OG9#*#R=#v)@{#j{0+d!{VClUSn4CGUJbN%MO%-CEKmfr}e%) z&D6K`eOn zaRJZnjxFR~D!SLXx5Pz9W1b zQ>Sg~Mfp*uq#uo~8}_C@#W+8o*Bh)==7&;uqX;+_+UC$L+p@WbtDa`8#yMWrU;@jB zf>$<&vqcK1;9FveYucx>-h$qt z0m$PxH1)M!J=ZwWWxHNSd^Dqc!=+%^_4+Ue_5i{!x;JzzZq{VNd*SCOS8ym_6Y3;! z*Ld6PSFt*~6&dXvjg<*|W0GSzmN65D1?qDGkAV5WO1v`G35c;gdM+1#R3{G+v+PT* zACx}#Ououzv3?S6)@pIatf#vGNhgoa+ZnN+))1T%Nq<0aOxNo&fDFzg=^&aju9qtx zWSq$Bw;?Re>?Bc0w#v~*EUceewJ5LGmV+Q>if1Vx9#_|DA3P^(GF-LZ#6AiK-=E|- z2nK7&_nhgLS?-m)jmf!W%KV`f1px!UyQPI9;I3-Ztou!{U}uVs2Nfvm4uE6+ec-v0 zz0`^Y`Ccp`_iQ;f&5GjFWQ71*K%~FATL`-#P89Q*z;?1;Ae~YwW0tOg1ig%zQw7@ zfCPKjVP(!6sK;pfrC$WVF&B+FCKpt$IFC~FJofK^Na69ym+{0d!6`BJ*HVx zOzm`e=8cncvfP>X56bvQmu~M%E{4X71+Lg*^g#}s*+AGyRpt;0VH3@zl=%VhABJFckf;RXOd!kfXDZZ zPt1P4xAO4|;24v)4~Ujyf%Jz7m`!4x9~QzdzvdVl$@2Ao#zX@NF(F{cCOh`ScQ+Zk z?D?2QXYn!naXV&nNGGU%6XQRv$v-_V=_9ExP?(STlm+W3C$K(k%f0ATMOM&ZeBZ0$ ze*GJYUV}{#xvE;253 z6LHVhx?baIj<_CfE7%4g zMu&B@K=c&{S2^NcnXnrc21LZQ{C8h34A@8)^)lRa4s2+1EL+XFjC2ObqfFw7OcvP9 zjH;+b`AG~2&9SksOuCNEcFB`G`oMyLXuS@1r)lX{@sN zkEU5?kb6Psvel%DlH=b-+NfmfjOXqtFRZvU>+E$7&mg}OhlpCf?h7yy_=RXrf?{eTJRAfvc_XRNYnAlAA@=f16C zU3Q>)T>xvbl-Bco7boNXU*bI9WxH~mSv|*A%MeX>?3(Us$oi$cocB9vr@db8A7^aU zdXGuQW#zdKTDJq_P5E^t8M|)oze|_3RSCQ}kwF*z=BMRG_j}tH?jhZ2w<=j&)0Tf9 z{Wv`~RrEW_&<1hQ9{Ftq0oZoOjP3VjEepN3wNv_3w^(y++$&SfP5sVAG^WH~-skN_%DeL#Vxp<0AY5f1N%w3Jew{73W<$=}_kK?LMQbzM zvHvnH|J%=Fj*)m4=#%^5vSG*$qA$cUe;;I-2!R5KMu-#%zbs;ylQ~;*GCP14*X#t@ z5v~P+SDJ&`sf@1I-wJ4^-T{Tf^Cg9uE)^K)ms9wV)kWgA#MFp?bB z>tN#g{WuRT$uA?#0E9V|J;!peFD^=S;(roQOx8!ur%bDIGC~IX^|B0Y{^YXi|IqCz zXKN$Y2<0r(I3x~+Zzr()n512uyEO+=GF>~{=2QlDYXW34bGigze)q6?S!0Apx{KA@ z_BjzdyJ9c_lSj~k@0f1H|mi6$wFXP(ICnXl7K4i4@x;tWV>Xd0!+Iwj%$YxDWS+&M$ zE?QOYlg!HmG)Qh^pLFgl$Gt^w319)VxO=dGo+iH7W;iJBXYR7AmC2AyVC-p*Yyn?| z>$HM%g6QvhR%Jg3fRs6p1IStrKI`@TI@SAA56BG4<&c&CG>io(=d+7l0+7FBTbbLq zJ&zvmZQ!1#@8D0rjNPP#C2*ciP_W#kSJVb+XRP^;%`*SE6-V1G8cIrELTh8WLEH4lAcRH?3zpMTm+m?IoCZ@98D9~rho^gXAm?|n{e72~(JjmqIQ~h%F;o~I z(wTqRWU_oJd-SHXk+I96Cp59l>p~9d`U7-~0MMuSXB~RUy67dRvE#QV6X1ST?rUvh zX7NbSJSjZb517lf&13UImund^7J7zR4?R?X?A3Cen*hffy(?=z%tI?y;ZkQv3-OE6u(hH$R?p!= zpd2%DIZ?MM7kt#UL^f>nLv)XM?q=um5G&<>10p*NSMrVl`M}TAiXm+F? zt9(*sE)^*E?$<5>h%r<8s5jT(`sB`m}7W zqgWX#A&f`HOz(PKW`}){V_UC_WfMRd10)8`j7P@3U_-z&0P^qgT#>sG@ln4&9y1*j z#ABzzvW$V;$wx3tK7n5{STh|47Ox(xDwuj_1t{yi2BFt`Q7$Oo-!JjZj7^3%0{3gi z#od)z$0i2Z+Aw8UmEFRt1YV&zX>LxhD?~G}Y>-4IDwp#3N8PP6{R!JSFUlVovel9d z1rdrMQa<6J)p=#PcCYE(2rrJ9K?3E*$idHn*JOpD^G@epLtyYlpE&yOIhyJ*k*d4aR0@Q+>3^CSl2gM zvuq@*|0LnRLz|uTTvZCNY0A+X2?zk`RN7e7V3VN-Oh8=w5yPE1p|f_0Z!E3^&p#*iAgLEw7K`vR9@q{coI~XA{SpwAITXhjf=`#MHh1ugBQJ z@mg`FE8j7)3@H+r;Ue;k5Iu7N6HktkVz ze8Tvj0+?S-!1;77jh@DmF-EUzIjX%pt>2RqaN!;T48M&*6JsPvy_5_DLhCaB0GiIh;lka6)D0ynhxfF$!v4yZI??%iZg~}gvVh6`o+^v(@n${!} zSL?{rdOeo&Hh@-QkKH9SOv-9i_VbdUi-%+$Y#3PYcRno0Wg6wP-_BaTw4HJNP_HNDrg1(Cg^n#to6rw z9RK@HT)lZ;3C3~0?@GO2ezBayqTn9JU)t}|&lMJE1;^jX@AO^s1C%yb->tHIOF%D) zx~@C*N0nZ?Upm3sfTB^y~<;T?)%renWx!`3pV;Wg61)-&S1`G%DIc(I+>T(w_9^CyJdM= z*IezME1sZvcgTsuJ(3wlUSNF=DNzSe_Lau0M^L9bu43S06h+R+emfFmcRTVR^p*VNB?*-UsN8KTaNFY*W%N zjC-^!!^7(5NGp|um;#dFt@SPjRtL!8;e`ol5N#$?HbbZ03>iL^F4!FNgQLW(j{k38 z*ZYMfnOIOhp$e{_Gw&`d%uOw1A{`wE{i+%pSm)L z>SYVZ+q&9N0=YuVZdSGV#1z_x}f_67Uat5Uw$~8WZ?|&m@gElwTGOQmqSfgCokO;Wo zjKM0NkgA?SYA6OeRC%!}@y26qK4Xwe81tall6jRKjIi#I7-%W&?tf+Z2Y48KiH3$z zPRn8fW#nv3GZLm z2*v$VN%iEwc~eQhG8Q?Gy=~?!k7>T*c0FU4zxa+U9X}NC9I?x=8mFsutizi8>}5Np zMpvDeUFV8PNX9DDBM7se>N1qz*}~P@Mz<_8m*A77Yy8qZf!GT(wWk#yV_-sB1`J@d z9{<)2WPf_R$^j7qfDD0UnKR0?E_xGY4cG|BwTEH?YIH{KL=n z-0o@(%dw<{f-puIOLenWVR|SCT(3#!1>lTzb-h*&uO=qhs!~MDg6B>KNS3%ZS|R|J z(^3I<>|n!&V#ZiHSK!WSe4SgBC*{no9+4J`$3QM((DviQMG>Mg%*i&}xmriX%$2P1 zg&rS>W91lZUquS2D}BGxs#M6esL1y5k^sg`-?Y7y7Ru_j$2SM)r7N~GR|lxxx@ujm zVFkM;IM^yyDUs~o>oN~W z*J;0o_S^uA1j6cuUGFvAvcD_W?bhAc2e6B0_1!PEonNdK0^)SVj>dn9g74%y{5|JI zh~)WyY0uGEj;F#ueK&f$-!%uyeZ)4}!Zqt@_zd(oo~yM`n*;9pj7G5@w{GnDJ~#I= z&fW35c<227#brA^9;|vNWINXqOC9ZTGAFMgEYFK^&2b-1oBq8GS$-woX3wJSB3u9# z_fFRNEvfI{X%K!fCR)FLmj%~s_9G6Wr}eGNI_ZhYI41$T=wg_eJ}S-BR`WG$Jo8>n zA62T1O(=^B`$_hzeHx_ZKD6x4n0r?aLqn zgS8pwOX4q!xMl0ez7{0YNj)r+Pos>d7Uil-NcUXINkI%Oqh8Gt%H#AtDTQ|HAq z4>RhBWmyFtYM6K@bM~p#7-r{1d0pxdBx8SF3E_4usjH-YfFcE&N{W_c)w8Z_tVWA& zyWht$N~V+&*KD$5ll&{g_#!6xc-nXHy!*Y<07K)>DCwi546+&8vQ2j^Wn*(!>rM}E zWYaBq%x17zUgsHBP@P#WMK4L$`!=!tV!ZvBd0BXChii4+-(#U({%HSyHTef{!!8pz z3Y5!sogwkkumsmMQR6TN#A6qGtS_vYw%@*xW|iE_+Nw=mD^_IyA3 zw6!xK6xM9idU?Hex9vi29!0;55WlA=CWB= z7h)Te=~^zK0E(>&lz9xThFW=Rt4(k8U0692@Li8BP?mdRo3qZ?s=IRnJ%ZWT$!&nk z@s|o7|Nrd$-ELLM)-4M5@Ji2VV+f_jAg8cbf}dxYX8 z`~ut@X(8<`RI-jz3*{!01Pr$4G|N$=|Fj-0Vh(41TPo>0xxVaZGX7%xdW?u@(OYlb z-qY~XCg2Y0b9#Zrsna-539z}&6T9hty1$i~0P%9!pIc%*&c(aq+*kpcxc=4zh&#}_ zmMy@I>&3m|+er@QaCM_Jr!ychFYW?x$B zDl0w=qVPKd`h9wrgT@bVieskj`!`_k2mxgi_2N!H4Or!K#X!~&GGXBr@eS)gC}wwM z@fdFPK)F!e0i1gg3>5%qt&{Zk`Mh=_g2`(6(w8&)vaPwGb>(MD6_9KkG8_}$W%qj5 zq-C=jwt1ls`(v0g_8p(cJE7q=3X%bo@7|S;aby+%x(n+WfwD-7MQU4wc0#f8yYMAei9qXUX0PAiaoI9rcgJ+me9!-47{(qKfIA(=w z=>86+tgh#MK4qrG11RozvI6|$vC7-b+cBi{PjmajgXJ-=a(j{5sunwpmw_o1{R^iw zYK}*CdtSH8S3348Uaoj8xvN%cR~|bVXkJAyK7V|x_~>3o+y%!Z8-V5yUD~!6GT4fy zR6ae=NolFAl30zg%OYd&^0AEq4xc4gR{A5)a`%8=mXJ)^hVJ{J|4BQZv!A}K^61ThV{eD_o$7ksc}XFtqu9RNDJjpujNj*x9LIb zNFdod2={xS47(qmW$Q>lQS@7%7m5i}fUJUE{#1$!vWN?_pfjWMx=r(HS_cR!UST^Q zx2p3@IZ{H=8m65yfZN-#{&vV=qcdlnx9GXS>tP_d%Nym-2sA|PNWS~LBj?db9DM0> zA>Te|%GRJ>cNQH__3#us-qcYI@A3WtI;{RP1>A^D7K%fJ_vyoVqilj^4d84ZpFm=QSsR5)(NQGs|_!w128|+u#?f4JAiuGt|zZc8dyuu>ohUptu;}n`Cj70SNgUM zAeIdv6W40%rt$?pUB7H)*Goy%j`LhuKIQ({po?Qck7?JsF0!bl#jjpSA}|%hn&#Na>7D*kf%TYfA%Q)^2^gNDyh4({#a3HPm%o@9_W?CsUsPF$tf@cHCN5$5s z>Nc5eL%i~vP{!7W_PRMGw9jShqjO~-8GW*#`yrK-P2u!-)hOJ$>hPpA4|5pOiKY|9 z3{I9~4;?W;QC7{?joI>-mDF)cqulJYY z_tQbOV~XH7H}6+7)s&TeA?_uv`ho{-BHv5ezM|<(mQ-!&)vHLEJyvit4kTBRec(t1e`_gK7AGoV~p3Y!w@(Y#1U(KaJR?ANG}yL3-(OvBcB z1;%fNDfUT^@?(!zeiPH*vQsH7T?5ul%SW_qfceN(D>e4WDAb{PiF8qKgM0O8<{TEE z{JoDx|3rUJP_flGHB>gz5b%2Ebg_5wc-}?c$T|A;2RgoC<1sg7fMo5!fog5jNExN} z?F5)luXhX>TOVc^@mF=zJMp*F`7Iju^dDl_kQPefoWRIC0hn)3ovqJjgm=5VQL*aK zfw57pBZm3YVN-Q2===>FL+f}RxJZ|lxkc|^s#de9=eR}(b^^oaU*JiapuC)G`~pPPbT-@aKlFbnT8<^iG?b3L3m$4%SYdaq|~c^OkZ&$3-J&Sl%zrK4B# zu}~%{+Hw7OKTyWNDxR&Leb3YVtk>JmgZE|Y9@jv8m(Cx>vN~^xCodP$%Ur0Sx ziT*#9sU#4FSHV`aMtVwW|8#(qK*)FOh$Iluy@dYL?gnf2eln!A(y72XL5QpzHayB|P|0S4r#wlk%jQV8kX}*}L$L7?q z*`SPl82!Je$5l>FnmD%i8^cL+636fQp;1S!29S(p{9v}M`)J!dUT^8wt#}{oH`7nX zwpHor-m56Psy&uy=NU8UjK-ODZZ3PnWySirY&~;W=}+qQ%~s?OYAye9KfSrU{LagE z)3#M znSo!t;47H{&0GOcJo3u#F9+=Mp5r5*tDL&y^~dcW!niKVT7?+fkEh>Rj5ZDxseKYrh}UK*4g8P`2(5nyjqN)QXdZ*E!)8I1e`AdM6)4}GQjUhac1z# z=eyW<8mAeH1L-*oKonQ7-f!Mxx$G+&ju&<+Xp0M-wLS9MwN)M`I;00;0K>-v9_EZNOQin}-2- zIL((uK6y`i&>{LPiYvv`hX z9Z2nfvv^u5OECq|{5zfayXtlRmExF1`grU6ZD1H4Xk%RM#Bl+lm7c9M>}X^2ex~JX zid)9A8G&To{$x5MgJ3npHDB#sH*qh7WxbubzaLx#%)HP)^6D15+!t?YD>ZD4(@F6> z%s?{?;FhgBk0S2}u1r1SJ_na(?9jOnS|wdGZ2vvS-wE_7@@O?Unt5Ldz>FN$>ep0SGxgRQQ& z@ydu(dcoqJV!eI4J#hXr*D_m?Ke#op+`ka~GVmY0(F@7|cxS$oo6jo03zFeE#wI(Z zz4KIP6=|Sk%%^;FJTl4|U=Fb_FZ(+;u#!Foql<<1{Sq_-IkV~@yvWC;m+^-kORWF* zJVXWJHK^ESD;FQAI*#49KG_7l0v!+8JIo9$E2ZvZV_l!!nL0n8s(A-2F70EZ zwZieho?wGIEs8dYaXy4(qLR z;N+6)tTQX6^H8a=IyI~Ca$aP%jE#hK@yP9*WA0hxM`mVq8iU=vlE6Z4D(e^S&u6b@ zu490dPS8u-(+qE&8sob;V2ixKDOe@7pO-;|ixv!st>=ZRI-6S;>r?cKXvhohNSXJw z1i+RAt|JIu2(Jq;e8V}d-1>%VTSncv?vJf@H63#|Jjt`irojQ9M(ns97svdKPGbIH z9Q4EUEFzsZdL5MUMGl70A;{a0V

    PEnfD6AZ9jL(_e-?Y6!RmP>rHn0GNfrSWFCt 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

    u0Qy5(kZ8iQnOKdDH*Sfb=P;j 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 z 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

    xoPClf- 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%0Dc$$d06Z?w9lw>R;SDgn41yWGLm~hauPHLgVY^* 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�j0(MS&6|^8uKv&O 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%0AWuKe<^g_N_l4Rbn*Kw1c>R(d!Ry`%>deb~# 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 TF`=Rsci>{k22W-ep`ld$o3W16!~6_m|j z?HQRQN>*KP17Y?{o6Me&bH{DXtOC79CB_u_JJf{TT#rt9;XH z{`Y#ouC}!iB$f0Lv%PI}$#Pi$CmDcoXoUl+J|bIwvo@#rjHwS+`*lIP159@|IN=0WO)S>OEjJb*OYkYaGvDIs7q_OKe%x#Q6ZT#t^@{Ij4(Z;M>z zf6l*6s52X#;%@5vkFu{R&Q_F1^+@I*{Z;zO=+8zSY#*V+edARr8b(3aJMzkB>h$ED z0jgVw=aH;OzuWi4R+cKA68iI_PT(h@5wpurH5V7%}}^A zdqBKw=x(>qo%9J3HhH<;NZoAdT?N$H-W8mSjY*%3e%)5!n}cPZr(0e7=^c>=Hfa<# z(+Ho^O(l`CZ4gg@22V#XysRw3h(hErY@lCR05OvvP)Nl3si1BYaWcdd8f7@t;3;G}0{zdnjsCW!0=*Un6 z%io7VJ~6?Q@-a+oJ{$P$zqkg=SM=p67%o9GuXtqDr3kH%K~d#!u^j=*<27LmhB&+s zw!P4O;BVk#6w&-o5xhpQ>s@AhC7q+~bc0BSSz!IP{K0N?AN>sld|e|POz@lZbeCBp zU4*?>PZ5<2%%6eRfn$7}NtSIn36A$Lf0+l9}z!Wpp2{-NVObDcr@jl2q zaqKO2?=ig3Q>iemQ%R+2woV|181uX}2965oWHu{I@sSo(m>P)A$FQNe4MF45hril? z>+raz-`F_y*;-|cFJA`H(5xHiF7v=Eq{Uc?R zI!Vgv9s~)LT&4?=^T_2GgQe?Q)O={UK1;=tDa>qV4e{CF{@e6zV4uAIzxi>V8XMlr z7q}%1xR7xpx=#+z+ngFwf^@%k)_4919orMLmHF8pq%!0iwZT-{1r`9gRpNs)f@&r8*GOV%EX- zVcw$x7LEejyHR-%1ArO)1hZ|F4HW20p3Ep7*`-1Ty?PgN9PSLq`N1;gb9`;>+Hb!f zu(}dh;cbt(P37#?wt$U;R=Bl=Tpq5z2a|vEz?)RSeR~$;a37dXdz~RL(-(C3A(+x> z>+Jre&*CTmSqxao0aS72_b6QA5O=&I+i%>h?FT8N0DUKQj*O0g%4g(U^Py_NgWU<4 zn(q5}bOAH-#%G$|wa;q@leE7Ms{oeBT?UNDoHf$CX2*h-cUz7ZkKgJsOs1ihL;{E% zrB<2%n04*W0j?Qf+Jc;j5p~1O8fur=rNaQ68=$xl$5s>M`1tyV19}`?a2eLh?ObC3 z5B2#QtZlMU#`=z6_B{M|2k`v;PE<{g?W1T>*2YLa_GbNU+uX1>YC#;o(g#=ITTC5X zC2vGf{IQtCG57p$@uP5sb^bReR6qaYnrEekwK_0|AjB3kqX{FN2kOK$2c?zP7-c<6 z)Azk-1UM!=pT*unO*Sq4c97SmQf^y}FHZBYM^YPy|1hr|M`X@=BhanLsBzR4D{>8o zq91<9fi?43(=a|UF5B4vdiU%5xD01X$3 zv+ZTZUF>IoxDgc%)7jLhZ;(YXaNI0Lgk#%MawMnOlAxnNju0&Kp?n(vKfgndW4IGz zQv6+Wgt}cilXuJYBElVSV=`w4tS1M@IcVnD?zx|pv}Zct+uzXH#K8Dda-Mg}9*1JU_>*8~t}W;l~-vHp_$K^kR8 zG$<@K;lz(4m?SgB``2OkCiK9sBwKg!NPGr130SJH%ehK%1W@k#`DJ8s8I*$EY6#3C zk76uwWr&xwVfourBV3Vw(S$Kif!$=E3a`$DqYlOYCL(9z@c8Ee>7Xalbhz=G8Fl;B1$Pt{ibOI|L^9ZV|Ib%-7fD8d-|Di;y=wRe zU~%@8jR1zqF;H*-4mX&d&vR8GI>Q@`AxtcR!WGyIopJ+mGyJ_{0k?4mu))U)aPxZhJU5}^ zgf60alc!}Eun!qVfR9|95D3C#%&lcWd{#PFDd<#Y-3I`-H$J-S9+-DN0^9xJvYFyg zbJqjUWJBLvgEayY^U|5Jp{{LCA5b{^P&k;ee@-4={4^cgv3&!!JAUogzx34q^C#b1 zy>Jcs=ZEYC#> zr7y4IymSTAQ{;&=ApWJN{>#7i?&?4P;v%<)^f9*a{LH7%?ES!Z+7rlR-Uohm3+fLG z23TS`;e%|>grUCCz404&rh_|Qp<{a@HptDnwfVC$p0-iuB99hI1=R|u~CB!BdvX{{v8#^ zv&vHBzGO-x$A+G1E^K5Ad|3nAsJllM=xSZ>2rgS^zZK1C?EA3!o!$47N8x7X`Fqd` z_v;#^<#Y@rIR@wk06wld<`(F(mGyA@j|I$L2HFuvB^MywKy};Z+S}7~IQ(!y zB-h$c{y}4Br*I9{7BT4B;BVaRvbiR>fhx{AoKh`8*B=q!0W>8*T<)i4#|S`ZJp09P z|5bWKmKG~7M(H57IKsh#s$q0RqirzL*SGY}(vGr2(PF!C7=m87cFUsND`%~ZD>8uLFX;9Upd1Q@Q;et1S7&@TPvY(NTbW>N`^Xe^DAa_0vkIBhwkWR&%1bGLd@U8NFFf;si zvUQAFF@Dv`JTR;`=R^Weg1@ZSa9Pqv zbn*&0;0?C8$v;mh5`$}-$oVHWAHZ!}SB{bJn}}@nM6>D_s36~^Fen6QQ~t=IpPLO7 zPGvvp1=9Ss(+D?5R`bWNmD_{RV@w8CGJpqOvSbpmew zj0Vl*sI%C2Te21#gWtF4CTm`2)(KzL50s|}wrH7^$s*4Q8=N!o3Oy(3#&k=jJpAL9 z762!@d%>>`l6gNg{J2nIIh2`X;5+GViQCJ+Qw&e%HM+l;k?A_!>(-sDw3+&55rX$s zFC4)411U5g;29-)9}OytTs+sp`vDvQU1gXhFs4bPpqSs6KU5+fGV_1{i$?$)!_4CF zBZ#8Ry9x$i_(55ZN-8H*V^P8DP^z=22@b&eP%6vi4g#c5;3ei^zyQkG1MO8SY3FEM zD%NFI6yKR^kaEXst(*%?qX@G5dY>}}xDEME0lcpiJea*Di6nlW|zauL<%ft;n2=Qq7=-qBLbHd=A z>=T&YXyeT&t1L>EHhB%tV59)UrtJfIMAp?Sn@>-_|9RKxMXm^Kwd8a&So@ zGk|R$bWQ+W&e(P)xVf6l(PZFxQ_h7E8Xg!o)3O89K#2Km+g^lNwGo z3(jtU`r~9#mwG($TQ#72P-%Nxux(?DJ3rWrmu4ZDX3ZVPon@kQ%m@Ey8yp|v6e-_c zq7ochbisMr>aVVQhGpc_KsE5^`sD)%ZVTuPxf0nw(PJH8{LgQNarkMN9>x=~+w?QIB z!0Yb3yCR>v4opYW+!uM2hjd@Cq?S&WeNXA{j{HuOv%ybms7x3$!Wqjtt$`&+QpcWE zjO*Q!cW#G#^sJIcpQ3Y$sqqg3us|rCCst#?wLdq&GdZ8Ob^n`mqr>jD1-mo*Oretk z?*k+J6~V563xXAXsly35Xy$3UlrQO;Xs-&kNWuRr0uokbt&% zp7Qd=qI@waGAS<=dFTj!8z>&Z@kv;h8T{sR2&H=>^?IVuD|S3p4;1sdV}V{Io2SIcHW5w`TV zCeEVT3-~}pQp_0aekg!ArVpt$cqs>P1Y{oOT{}|=jeS#B{~-GGdhjq zlmeUFgJ+?WXiV^_497(pByP@ zpO*mrTGxC~-KR;USR3EuPevgvt_}djIL9EIeaAgW0Hf0GvZ3F+&)XaS?5z)@oju57 z(Fu3p+F19LBMWh)ZKjzr>k;g7mQ7pM90W%*=KD`%q-{cWSd1#|@f6Mr=gCOFUk7R0 z!Tm?Z2xr?myl?@MKQ4C?CGTRJE~zw-u{&*?ggKuwIpdRv3fSe0@d#Y^+m3B9%-$H*su_#O$p`640`&4Ku?Vor`@WL`C^7S9VQob~M^zhN#72GW}{y!DJLVLj}y(Cbzh zejac0`@PrUBrDnuLBLF` zUFk3wCLi(?fH{so*Y$Qh1IOX1-K<9UJG!$K(r%UK#PQ^K`F@8$JzV-W?+O02p@8`B zR@=`gL;Q})qJYqOJBa+UUieJv?^`(7mPSGSK@<0JpD{>zK%onc~J4=jo5r)kOfpQ;nUvDaNYvUnuqB z7gQts3j}HF32A^vMQ01~IWoa}u_B`?i0Ou#-uSmABfPH_PCdbNp~^>%@Kjs_DV6fA zJYp(ZGkW;)4k)g6gB(hEp+!(WOvyoTh^2H;cV=ClTjhh=k^j58d|Bpq62$GV$^7eb zJbb`wotMY-fY<}XAo*(wcwguN;FeL|k^LD8-zH{*+x5TOWyW{IePP~Z1D`K*oT)hz zpCts!1PG2{AppGj_mo^8e-9oalci9&u<+oR0KYfsR012EG>Y%NuHZS9@5vO`#D!R+ zg&OJ57b`4x$>8q?CAfll3O7qZxuL^qpcx)6K?5|f3K&O(w+yT9S5%5Cjv_C}4mC>|UuDOLiPo$W~d#&>Pd> zYo@X-mta#qqzcEJra=I}!5FIpXZ2ZI(a$~94s-%ImkfC5bL6~1g33PXDOx&fY~kLP zLGP%`m;)#`FB~237)7vSAOJiV4$D0d1H@S_;rWebzWF_LY{&Kic6a=xombENe}A?e z+|jXx23oTT6T1N1M9}|sD}ga>w1WH`n8xu20a!On1Rz~2q?8N5?rHK8Q+!a?qoXn? zX>go{oO?l@cU((+nJL~s^7Rvc>x;KnuYHj|rgrA=`~I*$!GZGV{f(jXwXpIx$0stc z=JCevk6-(zbZk$=#_gFuU<0^OKMb{ALfLPibzcr^sKdN5?{$j-J+ZE`j`DKt=HR!1 z;&z-q!`0FnI~H|jTh8Uf&J%;oOGgLzW?*Jyw-H5PIfBHaA}=z^mL_Z6%>eAaUN5%+ zT9sO{j{N=+ZQh!>hU3|l++V$Me=#_C-(ZvD#hJ^Qe0X_nwUCFiyvNxkQj*G=q#&K* zAi1scV42h8p!qT&ZtEC)Fg7~Y%|3)qIMKNWKlC{}atvMRQ%I-qb8dQIOG74)WA_CH zzOl$1uo;!>WZ>N1B^dtouzri-;((BkFp&F9`;RPGCfj&^;(6Eph7FYjVar*+VH+`s zd}Sj6(bBW_+B`Uz49xbtWobEfhd4&&xV8#GY43_9#7%^N3;_SryBiM)$G&Z-;Bi0vNk_aAU7q zV}I569hLZ3HnN8egfTC3EmoGbr@4NOR5c1@H7A{+-;RC8$z@E(rCmM>IDko-V*5DR zkw+@4dPp{gd`15sO8s|8D`g7<-VAadc9;ZX4S>Wc1kyaHK=%mR4>bLTl+XLg*dGjL z@8j9Y2>W5Ea|cJXBTN(A805C>Ble>tiVs}clyyntzd0tP=aqFFPma^_l;w8gc^O+` z{E0EAQ)JR8j85I@p8IVEhD9fw@hc{D_OF}wAGtF^nBiX|p?fmnAnxcvZzY2P6D!S$9_ONm2mZt`Tz2E|GFYmS0k>aJH8-ym$o^?6&0+Ff+)d^yN_uDbEEj z$5Wrc>tPQsO~OmPBFk(RC=V03UBFOTvi0_l->+%Qi8vyt|T~7>to3_x6pf|)i;XGXl$AUh%4dZx@tT({H zF)?>by;-*e49BpLv%&~xeem~0KPd*ugki`Dpzux2Fi{^I@+T*|BJghYp>9ZJaz8oa z8wFo9?yPMRf-CU+8g0rjQ45r5kode;S#!b5TyO)wnGL>I6s%kWoIRbWeAdbthf?6J zbzaeZ8ZR{hR<+_-RiEpD0O+f7&I1O5vng}ISBpO|#Z4FdFrfll(TZqADkb*%q61)! zgef&Df8qdn7x7@NDTf?S%-!*Q%L6&pGhKCK=iXu~>dZo`?wi!acz9oq-kt+ikK`5PyH z_E(H&4bXT|KsC2P3i2AHpmH{*G1ZMq1;>lbMv+Dtkn@xcpth-lZ7hj05Iy8UIHzv| z0B%RNE6U*-hE@KJaBmH?_tr^XdSmM!{KoHW{hhzw<i`r@zBu{{wRUSI3g-}-!#)&En90P+Zmrv4LLDthL#!ZO4ty}VTK%oG?OrRW413gcYP zAz+X*ut#)n^y+K$2(4M1_zX|y+CI$=EN5%a8HmsZU|RR4zEp{i6zsPR-Td2ai&P4) zGxqk7T*o*b$-z7-a#s$DM_91YywX%<#9Z^g?Vk&1*p%`G_t1uGoWJjv{AkSEwWi|@ zRyrVWhsNCo6a$1hGu)WuI0l7d4e8iE>Sph4o`%&sE8jp;E%{Q0_?Kzp-I{FQNvz9k z%HO#WkrwpmEftOMmg*q6E_-5YY@3ZJA@b21LpmD#O2MIMb*jsdjRJsfPRl5%V(}Vg zJ^gPY)NOF|W`gdw*Iy2LTY7`WQU6Z`IOjTVtiU=Y;JuFu;6{%CZ2Ez*&SKxSK zkVRQZHo6>6U$D8&7-Z*VtczQi6~0;kcw6UzG7oD- z)aU7j=!KgkO3em`ISYJOmv=c(r-AF4Wl|WlzR&1Xhb>vexed7v$nxGO*8{DB(~41< zM)-_QCsQ^%Z)Xu4k~pUlQ1xnc&ZN%N%nMwAyPzxaA+?k32Qd zdq?hsj|J6=s|Bm1e5D|mR|W9CC`|E5cScOv0FYyT(tARau&r842As1Q*j-y8Hk0AB z*^;MzIzYWzZaCRFCVH&3@3$NXj}bwOOiFkF)C0YjqKZ}r%LXoRI%~5CR`7Z8R7`ZA ziT=T^!gHa+24uTT?IZGFm{*h`4vlbA3*V8bt(QeYM)>oR zS*6fT_qs037QHpFpa4_JK)2*brVY+)aPy#@2~hZTLQ(R7?g$wE0N0yQ6rCbyf}hIF z2*0Pr)x8iX6T@6!yP@DSn|Hu>wW2!%7oIV=0&Jr<|FApux&Yu-Xb)&zqaN><5Sa^Q zfA5Dvel7+3eu5YEpme?WcyI@Kd(g(Jw49dVCbLk(;2w>V(xL$0298%c;$_>QNR}*= z2`)i4$$@f7nd7kr_anyB&-FVaWr^n$q-0us9^my2GIU@EQl3l)?;RWm&3tlp`r!|LFHalc=(F<_ ztnluQ4a{lkb%HrwrDhQgaX8~q)6BJg8VUelf%gh?v~@VBsji zA~*1z&$ALhb)N36{NAt72N(yHOjSV3S-FR}u4a215HZ!|X$f#i!pg(;ID#&M_k#es z_ss)yQaNWkJp53M@MgaD*+wKv910(W=MFg(Fac)*q97oq1-a~=AQnHKBeUV zsF77}+otmE%*t~y=LDZ49Ra}}4(>csM))YNUEryIx6qdb80{cdzh#H-zAeGj=arm_ zgVJr)2887hHwO7jwEwHX>~=150z`)Cf=p-JQ_jidj*QXXDhOx*y_E}#FzRE_BXlGU zD40vzxCX%waIKdWOK^D<$ds%kmT_hFHyo^d>QzM~9GBn`?t?I*eV>4J z9LU_7ko)@NLe$A?LMNQlUOEie3e1I5j0p}L=3xQWyA|CTpcQTsC}4au&htQ*clEqZ zjGWU}+M>cpmmfpmCs?mQRKg=14m%}BIGq{(1_aK4_!(`No$0nQX5~uZ_vyAeB)Cm< zR_C8q%$NT1^|X89?>#m?!qx<)t~<7{I(pP!=}={Y)|IB+KaZV^;H(<)q9{x_t(K?1D6-3!MVaE3N;Cr$zpB_J zq@9`6`wCsmR|MY#qRC+R%S9J_lCX?*ynPZt?`}?mUruNl49{gciF}NZ`-1{_h2>Jv z2#?DGo3j##$zu1(&&D2q4E8Mt!iz=5x9NT>44wqa&XVe?*rh5GFn(ohBEbze3Om=X34Qt?&^uEBsP>qiyjHS%9tYI5Fs> z9xDw3BRmPXYtksVrxXBo9M^(u4tiHH2uG)KZx2Ubz4!Wwzx}s9ZeTdG!awogk5-Xn z2E{1>EpUA>;7Ab_(1o7?bTlD{!_Vd3%5VQB9orMJwfT2^kFh^Kkw zQ;*wIe;>D};r@pL!UuWf zv;1xh=r%DF+^YdE7MCRgE?C|t=&?J*}{!3;Cj~0TUegAF_S%Ji~G=kFm3y4CIdGAL3XrJA7W0 zqm$(Sc|zNOR14hT?qO*!FZ5U@>cZuAlwg^V4ZbC5SsukS z!r#&DkVG+7I3$K|mb+k_jTzzFWz7xw&m>mljMxkOvK4@;$7?(oOUa^+VtmFR?QR|`9wjR9`RKwr%ll^A?cF;UY9XJRl< zqg;wY;{D|!dooe!X`W7~CMi$IvDz;vz%EkQ8vN2!K8g~Ek)QjlZv)5`=M~KOG3kUq zIUtQA}?y90JtPhlj7%KFUXbTEN{~Uzp6*NDmpvh zf5TiFg+H*XiOM$q6ak21xB{gP^5$U-dV%B>z?iR89-!~jOzwTQtI-rkip+fZ&({00$t>+gKjuvr_Py=L_24%mimJyQ@kPf(y6@ zZL=#>cy5zUCm#|?=~TI@Q>931J20FJD->AJ3HPBcyH&vlUidB{0Oh6(p|MT@PXUbk zkeay`tY%zb1MtS+9IK>IaC$+H_27cT4+@>|X;;|u_JL}GQ?S)inb;D%t2q8@_nZ#$ zY8iqQt1F^<_%6?{NM*MomDr(HxRl^ko(h|3s#;>`P{B9M!1bsc%emp!>0*Y|AauZH zM9TEyigA_<5N~97HWdcgD0F~_rQtCv$2N^{biM$Fd&jG0-PG6Qj5wr42g$&6Y->YD zsJ2Fjs2Ym_$886L@?7S6s(BgqnRQw2WwHKgI<{jACLs8UpZl4+t6zF6!x@uZ?4(GT zsIvuigl{z_cpZ##pqAMS@Vz~E??*nn%y2gu84uQGfXbm> zcXyKmi{fI?{6b|-%+X-r`Ka8ZU;7$?C61Jk!(pe1wZmHdHt;-)-gsBi&mYhuvaX)k zJiY(#Nl!lucx7&$+7UD?o!ln7Q>aZoHX{B zw>hmni~R3^q38dGtbA#;U$LBjv$9c#MC4_T6EBV&mHbUwExYWRKp(^tM1qyg>nCeS>Sz*`ndq&9!ztXQCrQ+w;hi%*M1e+ zIwCnVu+g}2)a~Q4RQm6&#jz;PGq0nYK!b9b6RUOM925C1iX*cy=Z;A~->B4cR;O64 zYWuY%KqfT7<28d$Ry$_BMCVc2EN3!Rq8emVtS+@a`?Q>Utmj0nuqePa`u_}iGe6w# z2cyf40}flEC>e%P?1zF|9O^pAvL1+Yc~!@z^%(d+bz zu)*&Tt4DAwJBXvaC`uFP^6UVAESO}pvkH9M^3Qdc=M}|4F9LHcOz;U&!A7qZ)DvuR zo2Rn2kc-KHam>YdjH#^GRAt^U-h$-@ZSb&rF3fRefK%j^KR$aRKzLsgB}NX70WymR z0mVhOv_~kXXA0{weZGJj6Jjv?_K~~^Q*Bm3KtfD!f%TV3R2&Z zG@Gc*vK2!No^Ox=?I(|5gY!1m1o!1#Y533OnAVQ>Ib(*emBRXA-Vebt4*{|hi8ufopV;t<@({IC-6E?OYjY=$l+bKdx(t!^Df6>$BlHxX3BDMF#M=tU$LWMjS!bi zY0GjFuRf)AY2Rhmj_Ibhz4i65T7D;O*5O(-2&|-e83;Hmott^-5)eJL{|8>^I&ig1 z`q=)Rw;LyZ?x*jqyz(}HXZ&oNF|CPW;LAnWd(oSklt>gjsjJN-WsU1mOK7+vi89DJ zfNhz~iB$q*W@vp@5+~XKT~y~W&bi%_0RX8m&JCnkWM`u<0uW*694y_%gVD{qA2(+B zxIOd2nY|zQPLdAPz&Z@H=yh=Tg$%-bRA^Mn z0Nb2?@(<#A`@NGI$j0&9Y0u_P{2FYC=@ym7tFg;#*_WeaQf%G5jh8=k9$uNB|7_H4 zZ$kSDjsw5;wzScVbw4VMz)?xd5_RtE$l4C`XXgy_tnVA?A`5<2zASZukUBcL(tP$7 zJwn@qle2#Po4!R~UEuIc6HhT;ef4_)biwzV^@joIp7Li;fHugd^* z1JGjrkJo6+wtb-Oe}IK;5DaN4FlJMPrI&O|AE}wD_mCp<*Z!*tkNGb@o5HO|@Na4lx;hzRlL2x0(bW{M^l{|{9RzN&Dn1eL7rTJFWS5J-+9W3>{WM``Jf--6zfcw?#4p~xBMgd92=XY#4A*(F9onhUha#K;W5)PpVg@)o zF&0>}+pnC1^?NSSPQr)kAF=`94t~E<*126L^Bl!Y!``Lt1J4YA+pvsxb^AD^V}bwo z6dY%H6o~(`$LpPBcW^?qk#3O{3>GLe4j)0l0ZIml-|Y$?E=(*;=ELq4S>be#{J%W` z{(%i{^L(6L@&DP7nP{815B(ld*g{{*WK(Lq69qQQqO6Pe(qvJhu}F$R<70ICROSRa zS(Xl!h*cbJhuyO2hz~^~1#&54WpP+w3kp;0M`b9}sH|VnO8zieb-5LW_OhqBA(t{a zq)PNY0RU&FR4$z}HtTew>Wz#mSG#O`oy@k!Jj>dd21Cb(vSBM=@B?kc45%Got#@*u zn`(_741bGYdDA=BQEY^Us0?YveGi@cp!-A(L_W^i;+bdY*p4k22gba=@(RYb^{O{5 z*poAa%lZNw*EXQY2xss*rs8QXZ0|+vaA!NR0phloNtt8;VoOzH^U1D}sBYv#&w3G< z=L0<#1MLg#01ZNCe?hj+I}Zchw^zmC`1Eje^WIlC|H0o~ zKDgTeSzg+A(7lpYVZeAqV3kLZ*_hzgRrfCaNdBh7-4B*WSwJ4825Tc&T?5w(2WGN& z+^Oog$8-_GXr!%Ew^htRP@miPd(gbTt9|Nk*v9F^i_Wg6GNP`}GK2$Srk!A%f2s_1 z{_V@~e3P%K1D&>H#0Oj3zY~XX>TlWabFP4R9!?*r<8Ebf#v+21Z`i)aHsmGCX9i3| zMkq?>A(sHaM%&PU>Qn+)I*1+jay?!4$T`_BF_HeH4hOMD}=+y3ZFxdU3yjJK@NLuqHP6qY#K1{prHPn+3-Wjf8#r@(aT5h+ZP+$AGR z?usA^qfwmhq(+@R1wGTeg7Q`fqgq*Yw!`f|v+; zy~+zvi-1lzv%!B@ubJnsDHHsX#2&mR>$k!;yh8xQ?FVdgLIA(7lC#0DB$hy#2r@d6 zeHjpc`F-kz2#%Xgx@O6QJ}-(JlagJMrOLo$r8aXZ6qCYUuHM{K9_6Ssk9!o;lLNw4 z7Ns!2bA@DQ3KaPdet_6IAu_i?dC3#J9r1b)IVe8Smuepgz-}dWE!NysQ0{p%-A4n&S488@IuiJww4>&YEd(NB@Sq-c>dXKfo5+GNS;HtcR6OGO zJT&UTgmL*4${Vxu$AL1Bt=Qf1mv-LV{BQoHuW?p)t-rk}HMc5fClf!h^tKm~X@NtM zgxBPt(T#O|hPVaebhBfT2Ib5Wcr)x$t_Mt>e(+75=6F2hTko7lkUj|sTBK3}BYv6B zp7c7BcEazkeEIEn*Z+qv(#OP@72ePpF0eH)6kB<3RXL1jYi#+V!JY;xlk(o?u{_F? zvW>jG4G?UYodFB>H^v3U8l?%H#Fip376UK)wx-lG=ybOs2%c$%w(37>DI#|c@u&$b0j`b=abthS(GxCzf;{E#2RWjS8RP73 zl_n|AsxA9^o*M{g?Rnm|PChyVGu@xl zAjHP8^;{NOnK2A}`If%HMq1D}`Y**@lbIJR%z@cvQbWp!N4i#QIEyG1;Yu!F^H6|q zTf>ORUW#dk9qz*O>tv)v1kGF%EazdtdjN<73V)!>!-6xoM)(%h`r+M|n^+>{wj75k zmM3YW*Pe$lD1N%IzhSop$2vm}pp(wOCs-HoFtF%u5x{Uky%@I}oRN2NR)S@kPWXG_ z+L&Mpc@+Kuqu`*KZ_zeuyh{*GB9Ix+>ve61D`s5pGk6{;N+m~m6#lV3I4`|Umomo{ zbT)Wxj8ncCj&oJyNG5cpu(_|00o{y$z7mMRq*!SUcpE}GAqT*HIuTv)ifqi7YbZ{H z$1T8ipU7;A9wi_qaCv2rof0$#1Yc7)z5Al1ZGx->iaVnz^2lW%kG%=ZLu`i!#$pa$9~e&;SBtGR0<-PDz@(>WzCy_cEq@%#&T= ze?RjNM?WF|*C~SEur-Mwyi4X4M8U{__@;UcQII|;>&=`cZaP-Hyov^5;({9iA5vZm z%<#2px<>P=v&h4m4nhWF?)0xbTF+- zHN8)(WI3?LSUtx)BrEB@i{gRq59;FYYnH7W3N18fR9YGv!i&b02k=4znsvQq$%BNo zfp6o(#7#roJ1D+Ac1es0WPrD&M`;;@WVR*!v^4VdYW1vhkw%&8v*7oQKtRo6>(g{> z$JW{I__beu&dtBKI%h)XRQOf;nAmsR z|6lzuq5e;?NyBm}!^)vB$o77%?9#Wu>+`{}JjxTZl{q^!*yaM*#7;Wk91nY^L%wZU z!2;Wx>nESL_iTW`u-BPtOZ@}D+?Z?*oVT<*vI)R~Ew3EG25$p!>+D)|%niu)tEhu8 zE~L(!<%KfZ76m+KbH=pYTOtHrkD#s9|5V*8r?a4xV2V%4uv}j zf~|x62}a-z_4*aSkoEjrEj%08-wu%Dn;CWOSJR>$6{dI=hsG?~2tUZ6%+!g3kpck6 z9T3l{eRRPx<$l(mol8(X)93bfoq^mf)#51zUM1PjwSWCTQIsAU3Om%7y$xw>Y$sC0 z_T)Thk{glYsQqo;+M2^&{*M*JT(8aINgyC0Mt&>`b9MgM07JK7)!HSwu6edGkqm0H zHuymD_*?<=VFU}yK2+{)PGE~Wn27epkdE!6YzBJQn(;O_DCD4F<>096x-44pQ7d18 zXEDBT$^DTz!eTkz)ZV-^sm!t;=)VE11ea zL2uIv=k0ssGAetj6K+5@6B?NrzF9QE9~6)qcuowGxvT%T3QBZ>K&E5>`wX4TzelGs zgW-%dfrfcX_c<+^;HNvBYPUQGAXmV$BB_&)$#L*l{oq!?ykNJwwC6JLF$T$vIQq_# zJPL@Wu1GefwSK}T@=Dwzz5*~=v`=7efC_~fYn+28{pg=P$?vEW9s_6g)7t}{6tFuH z`8or_b*D+S)>Oa^0C(>R6m=NhKC2%Rr@W<+W~15A1ZIQ(6kU@(^)BrslSAPT_?pf` zB%d|GUr}ikeCVH&^%ufXuM2a0TQd*rhWuxJa0bLVgT32jKnB4(n6@jF&&zeZDJ*c- z2ggv3scf^%&GIN`B!xw)Ta|@#2zQ`h%f@KRJ zn)JCP1;rQTJAmxW!_gaGqGS7(+o(PHy_hpMXd_@x90fFfpN_i$-(YvPT^$<%x#-OG z`Y0{cSpf5lE#4@*v>~cowhcAZ53?6l#a)hJMoqZ_@5HyI=0;7O6->1{H&b-f&m`F8 zTtIQMj<15JGXWPclzWtn&JgDLIo88shdS`XhNb7i5S(R=#PT7T(rIg}J-<27<4nW-jE_j| zZJUvh5Rle`YOxl?2KtTz_$#VHJ5P+V+XWTi0w+~DG+0f%L)XDQB?uk_28z6WezUFI9C2tR_{k*SR?fH86wVrVDHLww8yL>(R#a-mv4T-m#vKX>KI`xXBjF87`z4M_uQkHW zEMVrs>;1CKKgLCXxv=faD0`lB%wR7t!};8M8EkO`%ry4+kT!B87_P~&vjE`xrH_Bq< zR@PHb1_%)uYAp`gj@MF)(1Kk*>McTM#IUxu`hsyyv=-!-$sJv4$7SQrrBBm`EthlW~0p~-!ijcz?lp*#%d zv*^TpZwQph`rxcxwcai7Ns+u?3T_nk92^1w_?TjFOazWF*%MA{K(|#IJbx%)I4`eC z_iD9-(nJNikV*}$txK2W3Sy24@*J13?oJ`6+6&62Wutg{3bPg6ByZ2MFi zKh`iC(xPIvSc7MnsNBn(o_Y8OK7AZ0^Vqru{=x5@`2YXR;o#1JN{$$4tgPz-ZYQch zCYB5t99hwN&AzBaQXpqi3!eCNQ6O-$g#xV#peH}P9kC8xse6Zpr-0kCvt#8PK z@bNYU2FkbIufHIp&}!Xd@+eKkAddi?2iI%EF-C z`_IpgZ=LQ|+DQmJ7G+X!4UzF3$FTLU%%5G{f@kTV#e6vZJ^GM#X797#Vb>d(;C4;U z_!|X@lvzb!=u;H@*`P&+^IYI4C&_S@R3TRq&zMf;Rd{* z{bq1?lsRya3cx(_Vb(kl+jn;V5s0R;tv{N=-AyLPG7QJeRUY#Z9G1_G4eo$G9AI`G zS~qm<SOP34s~6;I+O=ZpkJBIf)j0~#~hUrG_5)oZKN|Ksb-ZtsMVP>-8R&IvTf^+O>!wQ zt6Mw>rY#Q?1ULO~Qlgt}XW5hphP#t^Dy;CC)G;8+;hpsX?L*yfMeBFQ8sdm_AQuta zV4Px6^>sM#B=@sf9(G@^8Pve3;8Iks&2-w0?aj>ac&zmjosH3rbbCRJh5ZuTB!+G5WS!ehkOQf(u1W%u(3k+Bb8yr8DNO3ke#~^%Bj&WI*Z%MpDp1)df zOQIMc6Y|b1i{imENhG2#7MwIo@J!oxQnlwMR3oX3v1Z+mk7Lz(qA$=FTn?otd2K2m z<;PI3$)Z>qf?5c~ReV!F-J`Z|IS_6rzX+c2!|MgVd_Udr3LMv9nzi>~V#_MvJ`q4% z=L-)UFVl6u;W;^*ZOvKrps+y-1wk=)2qN^CiKS643qza*Rc?h3W><$RT#|ME(b{%o z0C;>}CJ&y;nE^v27!cp?d{c-x>vlu_*v?b5o5e$QsCwWGg1ep(V#YBTey@1GNHoGv zNWqVH!K`qOtb1DrldwIYGr|_1bzZjzbXN+X-Kvo0!pNiflCr{~4-Q+W`%(bz$!{y$ zQ(BY45!&I#2>0NbJoix8;C`-%cX~mLV40-BGS?*iO3<>h0)AhYOyheY0QhQG2p%jV z@NG5~c@(zQ0&AP6*0sgCS$xRsd;!VXb6b05c?%D7I!uWD41ckO%CPfJr7Jm2aR`?+ zYLUi#%(ka-!ulOFA8Ol%A=uEmG+$! zpk^*ss=91U@m#U0-R6)KVbCzz{hwj0%muQiFizViTo1~1NoL_-R7_q<}I)fU&p5mL}0jv!x?&;j>OI@hu8*!6nX z>hQdj_p#k1IJncFgzbi7@qgB%cAl}<|JJE*F=SlZ7Oq`Au6S|6JuB_Uc5v`-l@@tw z`Z))eYa z)CV}@Lba07?(}@=vM9sy%!laKKL+D=$lTh?0p>OvYW;6gCnlL;VE9~P1Pn#m1<%^_ z!vUI>5tLopM33h#j_py|P)SDflKp2q`^iISt_g+_MPxB@9`nFd_`R&>`g-=r0%ac3UgjT|-WwSN zMmrkL>C(3kbkx6r;m!eHS1bsi_->qbQ03{iEZxu) z7pyMI!2fPk`v3rE>0v%EV}lpEYZ+(Aq`+RMS8`OD*zKMdmUiSna7oPHqCS8PyQiSZM^%ue z`Nv@2av;0{y%p`I9{am^tYg!|(nKBcf=S?&ByohwOXOcB?GsOeH^c1;UDX$Ru>-ZQ zh)y`n!0%|62>~?uql0Y9j)3C4Wk*=!mnE7j%cWcs@EfA`yOPPTNx;mDa<1AQ;KQTO zh+fbI^%`9-+i&Rf`@@IJI^nD3qeP};@Y{xKK-cJ8m*Jnw82WLxD~8{Z{lN@B%jt=| zWE@48+2Hr-ws_O{%%&B-D+Sp9%-+BC+I3}Vg4mdAuf5NmH<6(riy3056_M2G{6MXK%y#%ETAE| zGC~gQo$oJLuZittowbfdHKdSzTx-#kMtZa z6gK#CE-V}K*}b51!UacxvsbQRH56>yW!|19#WekIq)@Pg3Y=`g^uf8tkuKeoq?y=5gvU2W({2F6xpLY#vBD&( zlWZ)42+Gtu?AbIgXCa`9w{T#5vDSIE^=2W|)(l|svLxZ^%CCC>@c0Bpw z{@?8VKmXjOwF8iSvH+r)DyfqGguNNK%z$ZMfMc&98|o{zw;vNc>)rt56b>ZyQQRtm z*4V4B?=l@VL%c6QttI)CBNm_^vMR=I_H#oAxt2$Pe2m|ZG-{YTTN?Is^WWUx-}vR9 z(;IHP$2UIMq;t{}FegOP=ReVVV_iwR^ETb;{WAvLVf*lZqBHx}ZF}*fcV__rKy(o5 zAOJ+IDu~B-whOS3>0rh^cmlsn=3K4ov{dRj0A%AtU$B-U@a9LSkO!j;`>dIEQ4YjF zT7}It)t8T zvDN)Nokx-&<7?nyWVrh|p9G$-w@vIg^*m1$>gO;Vr&)YsfOy((Uz?5YqXFPTSs*Y4 z7i3Aur-g)I@-m%1U%NVX7_@lz3RAxvPp7jw238s=Ktv%%P9heAGziY`W%KLTDvct? zI{u?wv~s(OlbLZ2%2;np^h1_+-}sv@ePZoDY;6hfVj@oe?y#MaD7qk_*M@J?tcY^I6Mb+7=9=>Td!k8UQ=izfe|@$ZNn9A4+v|VVhc@zW?NXJNf#dUk;#rL%)BVU#s=2IdD&k7K$=dULSK^W3pkW867lV z(sB)uMnBmjZ^rvZNj*-H>~%vofZdifQ_tlDX9KoB4*mZ+l4wJSbsI%q6}W+86vyNQ zy)hPHG{4%WbR?2w#`N9{^uWmoD`D(pOXOt_Q)Gnmu*NkGN|H?Ii8GU&S>YbRKcQX0 zcVfuWmVmx-j%$UxWC{r*oC%hUB^lAuK=I#%bG|@d3f6R}of*~&2Pn=+mWlgbCPTCs zj0U-r*SSKU>l%#7T^jH)2Emai^HKU@^nSpAwJ|%KwZSp(Iz1Fk@ats2_wSMH_vyWayn!DJAZ}7Ayo|BKm?HCoDrM#^+efZJa3=H41pvP(%<#D> zWsoz$0eoZnj$)ydZCSKAK?Y^6AbCBs%fayH*r$WwT;D|U@+b*rNuEhmF~8UHNambQ zE1K!sXN2oLunV#qQGww)eqx2KH#7k1;l|8$`e#bl7c8Ox

  • _H0G|T)vy(>Ni*@#mf9XTJhRl*?F8dpMc)e1^; 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 z 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

    Hlm`8QQx)vWGyfYokJBjCG-sn$pJ(bjad2 zUZQ4R_n+N=l*)fpOPF_cWKQ%lMH>`mp?*Ce(AKVq#We*4 ziAY)m-lTt6BZ0bIOhq(XU7)hZ*i29QaOKhfM`SnG7Eky31tIZceU{}q!Ek2@rP{+% z&XNZc9_al^{Xog@R{2D>c|9zwx*%~EbA}|}8QsSIsc35Ll*Z`6wa7g|7Cxdbh zR!IG^vt2w4)FaSN8qo`}v^%whC9b|3m!KNox{%ummpwNuaVW;^u&8%tOxzVERp~gA z*z;SKpt(P_=jvqkkU^6EDzI4YqmYp3M0Df2a$-&Y;A2Lk7DKo#6v&^y6D%Q{>o1of z9ynZqcG51lzHn4jRXnHKmN~2EoU~no+==OG*DdpSHn8jJ*u?HJiyCj_ zbPE-2VyjbuRl^ldG}KJh1{%mR@GpqpJS@p7=t0NPeb}QHZ#D}d3qE8@P*mLJ3(QRA zpLrNM*8AA8!E)P{uJ%(-ntFxk0Z=w`Es{GJj76vD~n)Kpxu>;n&YMHR`-T(GZyIn z&qm<~7MJBsqF)OTs^5$9$~t{|%QI}brzqeU?AcNBuV z*Pi*7%+}D{g+ruA7Q)<=-So$}VRyR1rBXUQpp@w1aHE_Sxw|-j{{9}0qs0R~%mlI% z9E<(-}@o-0mJ-v2J}y5%chl>A_KOmk$PXFD{5xbFs&m91WlZ2dRtFWYd=aK+bMe}FSM;l2yQpUr zE%=ZOJD`ybS;q_Kpgur-g}?tZ2fZO?Rq+D?d>T}3D1E)oiS*tSJvA^g@@lodY=Mgd zS}7WvyUbWcGR^>hqua5{JRhSvFGm`-i+w>ArPx1hX-l)~z2w9ev~g2!P~xy+CTiE5 zes=gJiP`JFdU6!*7oq;$1)g%|Az`y%dvn zmW7ZFZgD^RmN>2*m`n>ka^*4=)lI%Amf$(|H& zD=l;A_VbekDP;Y^XV6*0!Yac;18>q&X4uQHQGH!AN8bNe@9YT9`vyycZt zY`zVa1uaWr;6%_5R$v!YM8tT?Y>qm8W+q#~=3GFjhvDmM4)05=Z`XM|^@7?B!!MEE z6I)}-fj@dMza+aXLi5uEQA6&w4hx}uxhXCr7>t=&HA>CDj$=%(2+n@yfn-4>zJAhg zg?X?|U*ASJb7yN|XXo4B^}T{CP50OiO_=pPP^r&dKu@1nGyPdl&w0i)#p=~6_u7T+ ztX5!PBAqtT?{F**52q=3ZoPAqllwvO&AyYzoN>u|R%^$Bw|};otGO;zPHR>qSiNcK khx(9U9siFT_pm_fwKwg`OpohV5ODov?_^hIbMxW<0ZggiZvX%Q literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/center.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/center.png new file mode 100644 index 0000000000000000000000000000000000000000..dd074c9830c7e4aed4391fbd75bfc86539c5439d GIT binary patch literal 6961 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_active_boluses.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_active_boluses.png new file mode 100644 index 0000000000000000000000000000000000000000..48a1eb41545ca1fbcc783e7c7ea914469b5708a1 GIT binary patch literal 849 zcmV-X1FrmuP)V>U4h#&rc_l?b?oJ93kx>c^NFXt}xPSpSU}RwUb`3-_FkIFREMeux zqZS+BECN~xq(1<$NIIC!$O2*~LD&)?c6mub36QM=VkZ|Af!IJ7Gw>9J1UUoQK0vlY zIubhxiJg*KoD5{=0NL>fzva(oV6gbYz`#5aA(k|afnj?)1B1jJgqX@g1_u6C28L~y z5n`YH!Tx0wJ5-WdQ34Y2(|2SjNGwVOOEZH4G%byR;nQ*k2Hr>p2H^_~3|!F=cYpzF zF)*M>3@1VW0CLzigrgrvvj6}932;bRa{vGi!~g&e!~vBn4jTXf0v1U`K~z|U&6(|S zn?Mvr&oVB666nC{Ah-jkf~W(z1IraisX$5vaVn5pL6i!>6+j0!KNg~B!bffE7^K%OogOnC|t~5>(j;pmP$HY0j||SQaVm{2D~QRAIMu8);y-z1RqBdI`P^hx*7LyD-rRJVS@k*)GKT=)6d-B5o(F?-Sk=I_ z_W<8>EXp1)l2r7y5a?S0B=W(X1w3gc>7Nm3&V~4QF%N>13{+EEC`~lX(oiC-~%gt2*6!4;}%Ky>2TcwaeUvBrTe2 z)`Fq<+iYz#S&wx=fcFm0_24$baKzRNG=R>z8u)53nJc~QopU9CYtP7+*oC3dSB7)x z<3!IAcxVAHB4nYl#p*r&#Vh0TGenJ_Xm7yD b`WfOk6IXX9uBk%~00000NkvXXu0mjfkJ@Tv literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_delete_period.png b/BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_delete_period.png new file mode 100644 index 0000000000000000000000000000000000000000..02a2f2b693bb2a4aed07a91c11c0d40d974c78e1 GIT binary patch literal 592 zcmV-W0}JvWAlGZ`j!pX?H2vP(J?hRGkH@AR|s2{{zt z9r=@&c35dJ4$qa%Qe)C1BbzB`z9iHF-eZs8_cmS4=Jki#6Sb)QJ zb6`q-mu3;5JJ;mom)=8ns?BeV;81TFNe9d72pwFjeC>1jqlnPKHLIS6hYqUU009rk zpgq{&0&7b)?!^`txFeH|dokbwx0JGRFY+zb6O2a76V6YqDWJ#v)w4_XUqIPlIr+KI zOn}b8k~enQhzk;+bFlObmIsG)3@%83&cV_%SRNeGF}NTBItNS7V0myz$KZkl=o~CP zgQL-4=@?v)0G)$nKe6Y&of-xgf~$xKor7h=4kx2w$XLj^Z%o=R$+@JJ4SVsn%d7F1 zjk$KXW69&I$$nB_X^nu|y)FK(?6IUe7zF6RnsqQ}paW~Q!wCGhMs}!ChY=j=e^a%X zfrsu`i$7REjr;D1i88V{L7!+VS>g^4z=c%}6P*KidVjxVX+>lhz?ByI0&5%aU#|1=o*$7gFes0QaJ eC1qRor2heP^iZL%IXTe)00000Rtf1q*TJO&N=Q1Ogp`o5{yGmUB*7xfZ|41h1%p`- zvY`)OlHZa)lOM^L{G0supp=Dc{g33=bIXH~fy-cIV2^{XF(#*^`-saka{GX%hk6xJGGTLZ0e*e66cb`T^aj)<7ALj;~c#vxviXPRB zOm3izN5@;0?a=*wAyCGnY{Sv#WIS)|-ltQfjuG8QjXufyOoi1*-49@n_EYkFC6_C0UeQAtl)5f2@C)6? zn)kOnd1uWldpfbcDvq|jDSh8*UCOOSmM0?hd7CYsH}#EiCSVUwXrwHU+v5H5cVq9A zdNlC4Dt@MZs}nOw=Xu~>MlOS}q_JZLj}ClQCl>fXH+V%I3pi{`{0v7nFrXX0ihrn} z_j`8_BP(e%$2+>Cqm&ePG$0qNSJ>z>0eOy@I5M>&9VT#NM1R2E1{zan2}k=yt;X6b zd=mrvO-A;h literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_top_bar_profile_settings.xml b/BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_top_bar_profile_settings.xml new file mode 100644 index 000000000..4e228f5b1 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-hdpi/ic_top_bar_profile_settings.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/rectangle_bg.xml b/BLE_EXAMPLE/src/main/res/drawable-hdpi/rectangle_bg.xml new file mode 100644 index 000000000..7e77dd24d --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-hdpi/rectangle_bg.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/switch_thumb.xml b/BLE_EXAMPLE/src/main/res/drawable-hdpi/switch_thumb.xml new file mode 100644 index 000000000..c3f804436 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-hdpi/switch_thumb.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-hdpi/switch_truck.xml b/BLE_EXAMPLE/src/main/res/drawable-hdpi/switch_truck.xml new file mode 100644 index 000000000..5a7df92ff --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-hdpi/switch_truck.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-mdpi/box.png b/BLE_EXAMPLE/src/main/res/drawable-mdpi/box.png new file mode 100644 index 0000000000000000000000000000000000000000..66cc225a0b0b3047e89667c682977c68456d1c28 GIT binary patch literal 23980 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 Ldg^tmHqrkBX@lH& literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-v24/andex_alert_dialog_et_background_selector2.xml b/BLE_EXAMPLE/src/main/res/drawable-v24/andex_alert_dialog_et_background_selector2.xml new file mode 100644 index 000000000..40618481d --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-v24/andex_alert_dialog_et_background_selector2.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-v24/ic_launcher_foreground.xml b/BLE_EXAMPLE/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 000000000..2b068d114 --- /dev/null +++ b/BLE_EXAMPLE/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xhdpi/box.png b/BLE_EXAMPLE/src/main/res/drawable-xhdpi/box.png new file mode 100644 index 0000000000000000000000000000000000000000..6bff022f9772411bdc9d8721221b3f92e19225d8 GIT binary patch literal 87901 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ν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�FiRN9uJ(+z*=Ad71#26f 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/.DS_Store b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + + + + + + + + + \ No newline at end of file diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/arrow_power.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/arrow_power.png new file mode 100644 index 0000000000000000000000000000000000000000..8922101cf75f5fa3499057322528b410899f79af GIT binary patch literal 5166 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 literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/battery_for_dialog_100.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/battery_for_dialog_100.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6e129cd5ac2cb639eaef60f6bb7dac7d3caba5 GIT binary patch literal 17592 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 F{|9Zvu^RvY literal 0 HcmV?d00001 diff --git a/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/box.png b/BLE_EXAMPLE/src/main/res/drawable-xxhdpi/box.png new file mode 100644 index 0000000000000000000000000000000000000000..cff28cf7bcac6a38d7da8c79391c773859ab3308 GIT binary patch literal 213485 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