sing-box-python 1.13.19__tar.gz → 1.13.21__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1043) hide show
  1. sing_box_python-1.13.21/.go-version +1 -0
  2. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/MANIFEST.in +1 -0
  3. {sing_box_python-1.13.19/sing_box_python.egg-info → sing_box_python-1.13.21}/PKG-INFO +15 -9
  4. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/README.md +14 -8
  5. sing_box_python-1.13.21/UPSTREAM_COMMIT +1 -0
  6. sing_box_python-1.13.21/UPSTREAM_VERSION +1 -0
  7. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/pyproject.toml +17 -6
  8. {sing_box_python-1.13.19 → sing_box_python-1.13.21/sing_box_python.egg-info}/PKG-INFO +15 -9
  9. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/sing_box_python.egg-info/SOURCES.txt +2 -0
  10. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/workflows/build.yml +24 -25
  11. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/experimental.go +1 -0
  12. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/inbound.go +2 -2
  13. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd.go +4 -1
  14. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/changelog.md +8 -0
  15. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/rule.md +2 -2
  16. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/rule.zh.md +1 -1
  17. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/proxies.go +34 -0
  18. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/go.mod +4 -5
  19. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/go.sum +8 -10
  20. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/export.go +6 -2
  21. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/observable.go +69 -29
  22. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/direct/outbound.go +4 -0
  23. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/group/urltest.go +28 -6
  24. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/ssh/outbound.go +18 -6
  25. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/match_state.go +14 -4
  26. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_abstract.go +49 -26
  27. sing_box_python-1.13.21/singbox-go/route/rule/rule_dns_address_filter_test.go +392 -0
  28. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_rule_set.go +3 -1
  29. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_set_local.go +3 -1
  30. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_set_remote.go +3 -1
  31. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_set_semantics_test.go +18 -6
  32. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raywebsocket/client.go +12 -13
  33. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raywebsocket/conn.go +20 -22
  34. sing_box_python-1.13.19/UPSTREAM_COMMIT +0 -1
  35. sing_box_python-1.13.19/UPSTREAM_VERSION +0 -1
  36. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/CMakeLists.txt +0 -0
  37. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/LICENSE +0 -0
  38. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/setup.cfg +0 -0
  39. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/setup.py +0 -0
  40. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/sing_box_python.egg-info/dependency_links.txt +0 -0
  41. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/sing_box_python.egg-info/not-zip-safe +0 -0
  42. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/sing_box_python.egg-info/top_level.txt +0 -0
  43. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox/__init__.py +0 -0
  44. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox/_native.pyi +0 -0
  45. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox/py.typed +0 -0
  46. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.fpm_openwrt +0 -0
  47. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.fpm_pacman +0 -0
  48. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.fpm_systemd +0 -0
  49. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/CRONET_GO_VERSION +0 -0
  50. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/FUNDING.yml +0 -0
  51. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  52. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/ISSUE_TEMPLATE/bug_report_zh.yml +0 -0
  53. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/build_alpine_apk.sh +0 -0
  54. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/build_openwrt_apk.sh +0 -0
  55. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/deb2ipk.sh +0 -0
  56. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/detect_track.sh +0 -0
  57. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/renovate.json +0 -0
  58. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/setup_go_for_macos1013.sh +0 -0
  59. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/setup_go_for_windows7.sh +0 -0
  60. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/update_clients.sh +0 -0
  61. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/update_cronet.sh +0 -0
  62. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/update_cronet_dev.sh +0 -0
  63. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/update_dependencies.sh +0 -0
  64. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/workflows/docker.yml +0 -0
  65. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/workflows/lint.yml +0 -0
  66. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/workflows/linux.yml +0 -0
  67. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.github/workflows/stale.yml +0 -0
  68. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.gitignore +0 -0
  69. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.gitmodules +0 -0
  70. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/.golangci.yml +0 -0
  71. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/Dockerfile +0 -0
  72. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/Dockerfile.binary +0 -0
  73. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/LICENSE +0 -0
  74. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/Makefile +0 -0
  75. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/README.md +0 -0
  76. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/certificate.go +0 -0
  77. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/connections.go +0 -0
  78. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/dns.go +0 -0
  79. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/endpoint/adapter.go +0 -0
  80. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/endpoint/manager.go +0 -0
  81. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/endpoint/registry.go +0 -0
  82. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/endpoint.go +0 -0
  83. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/fakeip.go +0 -0
  84. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/fakeip_metadata.go +0 -0
  85. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/handler.go +0 -0
  86. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/inbound/adapter.go +0 -0
  87. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/inbound/manager.go +0 -0
  88. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/inbound/registry.go +0 -0
  89. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/lifecycle.go +0 -0
  90. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/lifecycle_legacy.go +0 -0
  91. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/network.go +0 -0
  92. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/outbound/adapter.go +0 -0
  93. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/outbound/manager.go +0 -0
  94. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/outbound/registry.go +0 -0
  95. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/outbound.go +0 -0
  96. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/platform.go +0 -0
  97. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/prestart.go +0 -0
  98. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/router.go +0 -0
  99. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/rule.go +0 -0
  100. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/service/adapter.go +0 -0
  101. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/service/manager.go +0 -0
  102. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/service/registry.go +0 -0
  103. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/service.go +0 -0
  104. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/ssm.go +0 -0
  105. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/time.go +0 -0
  106. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/upstream.go +0 -0
  107. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/upstream_legacy.go +0 -0
  108. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/adapter/v2ray.go +0 -0
  109. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/binding/cronet_purego.go +0 -0
  110. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/binding/main.go +0 -0
  111. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/box.go +0 -0
  112. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/app_store_connect/main.go +0 -0
  113. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/build/main.go +0 -0
  114. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/build_libbox/main.go +0 -0
  115. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/build_shared/sdk.go +0 -0
  116. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/build_shared/tag.go +0 -0
  117. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/format_docs/main.go +0 -0
  118. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/merge_aar/main.go +0 -0
  119. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/merge_apple_xcframework/main.go +0 -0
  120. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/protogen/main.go +0 -0
  121. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/read_tag/main.go +0 -0
  122. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/tun_bench/main.go +0 -0
  123. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/update_android_version/main.go +0 -0
  124. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/update_apple_version/main.go +0 -0
  125. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/internal/update_certificates/main.go +0 -0
  126. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_check.go +0 -0
  127. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_format.go +0 -0
  128. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_generate.go +0 -0
  129. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_generate_ech.go +0 -0
  130. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_generate_tls.go +0 -0
  131. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_generate_vapid.go +0 -0
  132. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_generate_wireguard.go +0 -0
  133. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geoip.go +0 -0
  134. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geoip_export.go +0 -0
  135. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geoip_list.go +0 -0
  136. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geoip_lookup.go +0 -0
  137. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geosite.go +0 -0
  138. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geosite_export.go +0 -0
  139. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geosite_list.go +0 -0
  140. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geosite_lookup.go +0 -0
  141. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_geosite_matcher.go +0 -0
  142. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_merge.go +0 -0
  143. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_rule_set.go +0 -0
  144. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_rule_set_compile.go +0 -0
  145. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_rule_set_convert.go +0 -0
  146. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_rule_set_decompile.go +0 -0
  147. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_rule_set_format.go +0 -0
  148. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_rule_set_match.go +0 -0
  149. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_rule_set_merge.go +0 -0
  150. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_rule_set_upgrade.go +0 -0
  151. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_run.go +0 -0
  152. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_tools.go +0 -0
  153. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_tools_connect.go +0 -0
  154. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_tools_fetch.go +0 -0
  155. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_tools_fetch_http3.go +0 -0
  156. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_tools_fetch_http3_stub.go +0 -0
  157. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_tools_synctime.go +0 -0
  158. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/cmd_version.go +0 -0
  159. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/generate_completions.go +0 -0
  160. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/cmd/sing-box/main.go +0 -0
  161. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badtls/raw_conn.go +0 -0
  162. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badtls/raw_half_conn.go +0 -0
  163. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badtls/read_wait.go +0 -0
  164. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badtls/read_wait_stub.go +0 -0
  165. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badtls/registry.go +0 -0
  166. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badtls/registry_utls.go +0 -0
  167. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badversion/version.go +0 -0
  168. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badversion/version_json.go +0 -0
  169. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/badversion/version_test.go +0 -0
  170. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/certificate/chrome.go +0 -0
  171. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/certificate/mozilla.go +0 -0
  172. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/certificate/store.go +0 -0
  173. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/compatible/map.go +0 -0
  174. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/convertor/adguard/convertor.go +0 -0
  175. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/convertor/adguard/convertor_test.go +0 -0
  176. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/default.go +0 -0
  177. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/default_parallel_interface.go +0 -0
  178. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/default_parallel_network.go +0 -0
  179. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/detour.go +0 -0
  180. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/dialer.go +0 -0
  181. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/resolve.go +0 -0
  182. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/router.go +0 -0
  183. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/tfo.go +0 -0
  184. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/dialer/wireguard.go +0 -0
  185. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/geoip/reader.go +0 -0
  186. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/geosite/compat_test.go +0 -0
  187. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/geosite/geosite_test.go +0 -0
  188. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/geosite/reader.go +0 -0
  189. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/geosite/rule.go +0 -0
  190. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/geosite/writer.go +0 -0
  191. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/interrupt/conn.go +0 -0
  192. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/interrupt/context.go +0 -0
  193. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/interrupt/group.go +0 -0
  194. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ja3/LICENSE +0 -0
  195. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ja3/README.md +0 -0
  196. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ja3/error.go +0 -0
  197. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ja3/ja3.go +0 -0
  198. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ja3/parser.go +0 -0
  199. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls.go +0 -0
  200. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_alert.go +0 -0
  201. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_cipher_suites_linux.go +0 -0
  202. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_close.go +0 -0
  203. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_const.go +0 -0
  204. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_handshake_messages.go +0 -0
  205. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_key_update.go +0 -0
  206. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_linux.go +0 -0
  207. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_prf.go +0 -0
  208. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_read.go +0 -0
  209. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_read_wait.go +0 -0
  210. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_stub_nolinkname.go +0 -0
  211. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_stub_nonlinux.go +0 -0
  212. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_stub_oldgo.go +0 -0
  213. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/ktls/ktls_write.go +0 -0
  214. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/listener/listener.go +0 -0
  215. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/listener/listener_tcp.go +0 -0
  216. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/listener/listener_udp.go +0 -0
  217. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/mux/client.go +0 -0
  218. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/mux/router.go +0 -0
  219. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/pipelistener/listener.go +0 -0
  220. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher.go +0 -0
  221. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher_android.go +0 -0
  222. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher_darwin.go +0 -0
  223. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher_darwin_shared.go +0 -0
  224. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher_linux.go +0 -0
  225. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher_linux_shared.go +0 -0
  226. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher_linux_shared_test.go +0 -0
  227. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher_stub.go +0 -0
  228. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/process/searcher_windows.go +0 -0
  229. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/redir/redir_darwin.go +0 -0
  230. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/redir/redir_linux.go +0 -0
  231. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/redir/redir_other.go +0 -0
  232. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/redir/tproxy_linux.go +0 -0
  233. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/redir/tproxy_other.go +0 -0
  234. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/proxy_android.go +0 -0
  235. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/proxy_darwin.go +0 -0
  236. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/proxy_linux.go +0 -0
  237. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/proxy_stub.go +0 -0
  238. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/proxy_windows.go +0 -0
  239. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/system_proxy.go +0 -0
  240. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/wifi.go +0 -0
  241. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/wifi_linux.go +0 -0
  242. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/wifi_linux_connman.go +0 -0
  243. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/wifi_linux_iwd.go +0 -0
  244. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/wifi_linux_nm.go +0 -0
  245. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/wifi_linux_wpa.go +0 -0
  246. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/wifi_stub.go +0 -0
  247. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/settings/wifi_windows.go +0 -0
  248. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/bittorrent.go +0 -0
  249. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/bittorrent_test.go +0 -0
  250. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/dns.go +0 -0
  251. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/dns_test.go +0 -0
  252. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/dtls.go +0 -0
  253. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/dtls_test.go +0 -0
  254. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/http.go +0 -0
  255. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/http_test.go +0 -0
  256. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/internal/qtls/qtls.go +0 -0
  257. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/ntp.go +0 -0
  258. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/ntp_test.go +0 -0
  259. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/quic.go +0 -0
  260. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/quic_blacklist.go +0 -0
  261. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/quic_capture_test.go +0 -0
  262. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/quic_test.go +0 -0
  263. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/rdp.go +0 -0
  264. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/rdp_test.go +0 -0
  265. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/sniff.go +0 -0
  266. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/ssh.go +0 -0
  267. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/ssh_test.go +0 -0
  268. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/stun.go +0 -0
  269. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/stun_test.go +0 -0
  270. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/sniff/tls.go +0 -0
  271. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/srs/binary.go +0 -0
  272. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/srs/compat_test.go +0 -0
  273. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/srs/ip_cidr.go +0 -0
  274. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/srs/ip_set.go +0 -0
  275. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/srs/malformed_test.go +0 -0
  276. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/taskmonitor/monitor.go +0 -0
  277. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/acme.go +0 -0
  278. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/acme_contstant.go +0 -0
  279. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/acme_stub.go +0 -0
  280. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/client.go +0 -0
  281. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/common.go +0 -0
  282. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/config.go +0 -0
  283. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/ech.go +0 -0
  284. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/ech_shared.go +0 -0
  285. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/ech_tag_stub.go +0 -0
  286. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/ktls.go +0 -0
  287. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/mkcert.go +0 -0
  288. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/reality_client.go +0 -0
  289. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/reality_server.go +0 -0
  290. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/reality_stub.go +0 -0
  291. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/server.go +0 -0
  292. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/std_client.go +0 -0
  293. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/std_server.go +0 -0
  294. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/time_wrapper.go +0 -0
  295. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/utls_client.go +0 -0
  296. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tls/utls_stub.go +0 -0
  297. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tlsfragment/conn.go +0 -0
  298. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tlsfragment/conn_test.go +0 -0
  299. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tlsfragment/index.go +0 -0
  300. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tlsfragment/index_test.go +0 -0
  301. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tlsfragment/wait_darwin.go +0 -0
  302. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tlsfragment/wait_linux.go +0 -0
  303. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tlsfragment/wait_stub.go +0 -0
  304. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/tlsfragment/wait_windows.go +0 -0
  305. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/uot/router.go +0 -0
  306. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/common/urltest/urltest.go +0 -0
  307. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/certificate.go +0 -0
  308. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/cgo.go +0 -0
  309. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/cgo_disabled.go +0 -0
  310. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/dhcp.go +0 -0
  311. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/dns.go +0 -0
  312. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/err.go +0 -0
  313. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/gengoos.go +0 -0
  314. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/goos.go +0 -0
  315. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_aix.go +0 -0
  316. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_android.go +0 -0
  317. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_darwin.go +0 -0
  318. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_dragonfly.go +0 -0
  319. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_freebsd.go +0 -0
  320. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_hurd.go +0 -0
  321. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_illumos.go +0 -0
  322. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_ios.go +0 -0
  323. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_js.go +0 -0
  324. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_linux.go +0 -0
  325. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_netbsd.go +0 -0
  326. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_openbsd.go +0 -0
  327. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_plan9.go +0 -0
  328. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_solaris.go +0 -0
  329. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_windows.go +0 -0
  330. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/goos/zgoos_zos.go +0 -0
  331. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/hysteria2.go +0 -0
  332. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/network.go +0 -0
  333. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/os.go +0 -0
  334. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/path.go +0 -0
  335. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/path_unix.go +0 -0
  336. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/protocol.go +0 -0
  337. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/proxy.go +0 -0
  338. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/quic.go +0 -0
  339. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/quic_stub.go +0 -0
  340. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/rule.go +0 -0
  341. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/speed.go +0 -0
  342. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/time.go +0 -0
  343. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/timeout.go +0 -0
  344. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/v2ray.go +0 -0
  345. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/constant/version.go +0 -0
  346. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/daemon/deprecated.go +0 -0
  347. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/daemon/instance.go +0 -0
  348. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/daemon/platform.go +0 -0
  349. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/daemon/started_service.go +0 -0
  350. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/daemon/started_service.pb.go +0 -0
  351. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/daemon/started_service.proto +0 -0
  352. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/daemon/started_service_grpc.pb.go +0 -0
  353. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/debug.go +0 -0
  354. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/debug_http.go +0 -0
  355. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/debug_stub.go +0 -0
  356. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/debug_unix.go +0 -0
  357. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/client.go +0 -0
  358. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/client_log.go +0 -0
  359. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/client_truncate.go +0 -0
  360. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/extension_edns0_subnet.go +0 -0
  361. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/rcode.go +0 -0
  362. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/router.go +0 -0
  363. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/conn_pool.go +0 -0
  364. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/dhcp/dhcp.go +0 -0
  365. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/dhcp/dhcp_shared.go +0 -0
  366. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/fakeip/fakeip.go +0 -0
  367. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/fakeip/memory.go +0 -0
  368. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/fakeip/store.go +0 -0
  369. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/hosts/hosts.go +0 -0
  370. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/hosts/hosts_file.go +0 -0
  371. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/hosts/hosts_test.go +0 -0
  372. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/hosts/hosts_unix.go +0 -0
  373. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/hosts/hosts_windows.go +0 -0
  374. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/hosts/testdata/hosts +0 -0
  375. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/https.go +0 -0
  376. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/https_transport.go +0 -0
  377. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/local.go +0 -0
  378. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/local_darwin.go +0 -0
  379. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/local_darwin_dhcp.go +0 -0
  380. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/local_darwin_nodhcp.go +0 -0
  381. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/local_resolved.go +0 -0
  382. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/local_resolved_linux.go +0 -0
  383. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/local_resolved_stub.go +0 -0
  384. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/local_shared.go +0 -0
  385. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/resolv.go +0 -0
  386. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/resolv_default.go +0 -0
  387. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/resolv_test.go +0 -0
  388. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/resolv_unix.go +0 -0
  389. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/local/resolv_windows.go +0 -0
  390. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/quic/http3.go +0 -0
  391. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/quic/quic.go +0 -0
  392. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/tcp.go +0 -0
  393. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/tls.go +0 -0
  394. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport/udp.go +0 -0
  395. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport_adapter.go +0 -0
  396. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport_dialer.go +0 -0
  397. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport_manager.go +0 -0
  398. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/dns/transport_registry.go +0 -0
  399. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/CNAME +0 -0
  400. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/assets/icon.svg +0 -0
  401. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/clients/android/features.md +0 -0
  402. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/clients/android/index.md +0 -0
  403. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/clients/apple/features.md +0 -0
  404. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/clients/apple/index.md +0 -0
  405. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/clients/general.md +0 -0
  406. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/clients/index.md +0 -0
  407. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/clients/index.zh.md +0 -0
  408. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/clients/privacy.md +0 -0
  409. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/certificate/index.md +0 -0
  410. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/certificate/index.zh.md +0 -0
  411. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/fakeip.md +0 -0
  412. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/fakeip.zh.md +0 -0
  413. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/index.md +0 -0
  414. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/index.zh.md +0 -0
  415. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/rule_action.md +0 -0
  416. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/rule_action.zh.md +0 -0
  417. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/dhcp.md +0 -0
  418. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/dhcp.zh.md +0 -0
  419. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/fakeip.md +0 -0
  420. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/fakeip.zh.md +0 -0
  421. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/hosts.md +0 -0
  422. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/hosts.zh.md +0 -0
  423. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/http3.md +0 -0
  424. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/http3.zh.md +0 -0
  425. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/https.md +0 -0
  426. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/https.zh.md +0 -0
  427. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/index.md +0 -0
  428. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/index.zh.md +0 -0
  429. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/legacy.md +0 -0
  430. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/legacy.zh.md +0 -0
  431. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/local.md +0 -0
  432. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/local.zh.md +0 -0
  433. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/quic.md +0 -0
  434. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/quic.zh.md +0 -0
  435. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/resolved.md +0 -0
  436. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/resolved.zh.md +0 -0
  437. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/tailscale.md +0 -0
  438. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/tailscale.zh.md +0 -0
  439. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/tcp.md +0 -0
  440. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/tcp.zh.md +0 -0
  441. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/tls.md +0 -0
  442. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/tls.zh.md +0 -0
  443. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/udp.md +0 -0
  444. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/dns/server/udp.zh.md +0 -0
  445. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/endpoint/index.md +0 -0
  446. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/endpoint/index.zh.md +0 -0
  447. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/endpoint/tailscale.md +0 -0
  448. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/endpoint/tailscale.zh.md +0 -0
  449. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/endpoint/wireguard.md +0 -0
  450. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/endpoint/wireguard.zh.md +0 -0
  451. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/experimental/cache-file.md +0 -0
  452. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/experimental/cache-file.zh.md +0 -0
  453. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/experimental/clash-api.md +0 -0
  454. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/experimental/clash-api.zh.md +0 -0
  455. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/experimental/index.md +0 -0
  456. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/experimental/index.zh.md +0 -0
  457. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/experimental/v2ray-api.md +0 -0
  458. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/experimental/v2ray-api.zh.md +0 -0
  459. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/anytls.md +0 -0
  460. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/anytls.zh.md +0 -0
  461. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/direct.md +0 -0
  462. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/direct.zh.md +0 -0
  463. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/http.md +0 -0
  464. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/http.zh.md +0 -0
  465. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/hysteria.md +0 -0
  466. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/hysteria.zh.md +0 -0
  467. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/hysteria2.md +0 -0
  468. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/hysteria2.zh.md +0 -0
  469. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/index.md +0 -0
  470. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/index.zh.md +0 -0
  471. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/mixed.md +0 -0
  472. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/mixed.zh.md +0 -0
  473. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/naive.md +0 -0
  474. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/naive.zh.md +0 -0
  475. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/redirect.md +0 -0
  476. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/redirect.zh.md +0 -0
  477. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/shadowsocks.md +0 -0
  478. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/shadowsocks.zh.md +0 -0
  479. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/shadowtls.md +0 -0
  480. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/shadowtls.zh.md +0 -0
  481. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/socks.md +0 -0
  482. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/socks.zh.md +0 -0
  483. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/tproxy.md +0 -0
  484. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/tproxy.zh.md +0 -0
  485. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/trojan.md +0 -0
  486. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/trojan.zh.md +0 -0
  487. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/tuic.md +0 -0
  488. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/tuic.zh.md +0 -0
  489. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/tun.md +0 -0
  490. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/tun.zh.md +0 -0
  491. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/vless.md +0 -0
  492. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/vless.zh.md +0 -0
  493. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/vmess.md +0 -0
  494. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/inbound/vmess.zh.md +0 -0
  495. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/index.md +0 -0
  496. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/index.zh.md +0 -0
  497. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/log/index.md +0 -0
  498. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/log/index.zh.md +0 -0
  499. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/ntp/index.md +0 -0
  500. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/ntp/index.zh.md +0 -0
  501. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/anytls.md +0 -0
  502. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/anytls.zh.md +0 -0
  503. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/block.md +0 -0
  504. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/block.zh.md +0 -0
  505. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/direct.md +0 -0
  506. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/direct.zh.md +0 -0
  507. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/dns.md +0 -0
  508. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/dns.zh.md +0 -0
  509. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/http.md +0 -0
  510. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/http.zh.md +0 -0
  511. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/hysteria.md +0 -0
  512. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/hysteria.zh.md +0 -0
  513. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/hysteria2.md +0 -0
  514. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/hysteria2.zh.md +0 -0
  515. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/index.md +0 -0
  516. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/index.zh.md +0 -0
  517. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/naive.md +0 -0
  518. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/naive.zh.md +0 -0
  519. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/selector.md +0 -0
  520. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/selector.zh.md +0 -0
  521. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/shadowsocks.md +0 -0
  522. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/shadowsocks.zh.md +0 -0
  523. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/shadowtls.md +0 -0
  524. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/shadowtls.zh.md +0 -0
  525. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/socks.md +0 -0
  526. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/socks.zh.md +0 -0
  527. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/ssh.md +0 -0
  528. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/ssh.zh.md +0 -0
  529. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/tor.md +0 -0
  530. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/tor.zh.md +0 -0
  531. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/trojan.md +0 -0
  532. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/trojan.zh.md +0 -0
  533. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/tuic.md +0 -0
  534. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/tuic.zh.md +0 -0
  535. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/urltest.md +0 -0
  536. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/urltest.zh.md +0 -0
  537. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/vless.md +0 -0
  538. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/vless.zh.md +0 -0
  539. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/vmess.md +0 -0
  540. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/vmess.zh.md +0 -0
  541. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/wireguard.md +0 -0
  542. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/outbound/wireguard.zh.md +0 -0
  543. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/geoip.md +0 -0
  544. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/geoip.zh.md +0 -0
  545. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/geosite.md +0 -0
  546. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/geosite.zh.md +0 -0
  547. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/index.md +0 -0
  548. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/index.zh.md +0 -0
  549. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/rule.md +0 -0
  550. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/rule.zh.md +0 -0
  551. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/rule_action.md +0 -0
  552. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/rule_action.zh.md +0 -0
  553. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/sniff.md +0 -0
  554. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/route/sniff.zh.md +0 -0
  555. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/rule-set/adguard.md +0 -0
  556. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/rule-set/adguard.zh.md +0 -0
  557. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/rule-set/headless-rule.md +0 -0
  558. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/rule-set/headless-rule.zh.md +0 -0
  559. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/rule-set/index.md +0 -0
  560. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/rule-set/index.zh.md +0 -0
  561. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/rule-set/source-format.md +0 -0
  562. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/rule-set/source-format.zh.md +0 -0
  563. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/ccm.md +0 -0
  564. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/ccm.zh.md +0 -0
  565. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/derp.md +0 -0
  566. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/derp.zh.md +0 -0
  567. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/index.md +0 -0
  568. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/index.zh.md +0 -0
  569. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/ocm.md +0 -0
  570. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/ocm.zh.md +0 -0
  571. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/resolved.md +0 -0
  572. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/resolved.zh.md +0 -0
  573. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/ssm-api.md +0 -0
  574. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/service/ssm-api.zh.md +0 -0
  575. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/dial.md +0 -0
  576. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/dial.zh.md +0 -0
  577. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/dns01_challenge.md +0 -0
  578. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/dns01_challenge.zh.md +0 -0
  579. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/listen.md +0 -0
  580. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/listen.zh.md +0 -0
  581. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/multiplex.md +0 -0
  582. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/multiplex.zh.md +0 -0
  583. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/pre-match.md +0 -0
  584. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/pre-match.zh.md +0 -0
  585. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/tcp-brutal.md +0 -0
  586. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/tcp-brutal.zh.md +0 -0
  587. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/tls.md +0 -0
  588. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/tls.zh.md +0 -0
  589. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/udp-over-tcp.md +0 -0
  590. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/udp-over-tcp.zh.md +0 -0
  591. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/v2ray-transport.md +0 -0
  592. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/v2ray-transport.zh.md +0 -0
  593. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/wifi-state.md +0 -0
  594. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/configuration/shared/wifi-state.zh.md +0 -0
  595. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/deprecated.md +0 -0
  596. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/deprecated.zh.md +0 -0
  597. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/index.md +0 -0
  598. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/index.zh.md +0 -0
  599. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/build-from-source.md +0 -0
  600. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/build-from-source.zh.md +0 -0
  601. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/docker.md +0 -0
  602. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/docker.zh.md +0 -0
  603. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/package-manager.md +0 -0
  604. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/package-manager.zh.md +0 -0
  605. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/tools/arch-install.sh +0 -0
  606. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/tools/deb-install.sh +0 -0
  607. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/tools/install.sh +0 -0
  608. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/tools/rpm-install.sh +0 -0
  609. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/installation/tools/sing-box.repo +0 -0
  610. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/manual/misc/anytls-client-metadata.md +0 -0
  611. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/manual/misc/anytls-client-metadata.zh.md +0 -0
  612. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/manual/misc/tunnelvision.md +0 -0
  613. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/manual/proxy/client.md +0 -0
  614. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/manual/proxy/server.md +0 -0
  615. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/manual/proxy-protocol/hysteria2.md +0 -0
  616. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/manual/proxy-protocol/shadowsocks.md +0 -0
  617. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/manual/proxy-protocol/trojan.md +0 -0
  618. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/migration.md +0 -0
  619. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/migration.zh.md +0 -0
  620. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/sponsors.md +0 -0
  621. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/support.md +0 -0
  622. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/docs/support.zh.md +0 -0
  623. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/cachefile/cache.go +0 -0
  624. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/cachefile/fakeip.go +0 -0
  625. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/cachefile/rdrc.go +0 -0
  626. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/api_meta.go +0 -0
  627. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/api_meta_group.go +0 -0
  628. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/api_meta_upgrade.go +0 -0
  629. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/cache.go +0 -0
  630. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/common.go +0 -0
  631. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/configs.go +0 -0
  632. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/connections.go +0 -0
  633. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/ctxkeys.go +0 -0
  634. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/dns.go +0 -0
  635. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/errors.go +0 -0
  636. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/profile.go +0 -0
  637. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/provider.go +0 -0
  638. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/ruleprovider.go +0 -0
  639. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/rules.go +0 -0
  640. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/script.go +0 -0
  641. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/server.go +0 -0
  642. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/server_fs.go +0 -0
  643. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/server_resources.go +0 -0
  644. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/trafficontrol/manager.go +0 -0
  645. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi/trafficontrol/tracker.go +0 -0
  646. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/clashapi.go +0 -0
  647. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/deprecated/constants.go +0 -0
  648. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/deprecated/manager.go +0 -0
  649. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/deprecated/stderr.go +0 -0
  650. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/build_info.go +0 -0
  651. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/command.go +0 -0
  652. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/command_client.go +0 -0
  653. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/command_server.go +0 -0
  654. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/command_types.go +0 -0
  655. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/config.go +0 -0
  656. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/connection_owner_darwin.go +0 -0
  657. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/deprecated.go +0 -0
  658. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/dns.go +0 -0
  659. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/fdroid.go +0 -0
  660. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/fdroid_mirrors.go +0 -0
  661. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/ffi.json +0 -0
  662. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/http.go +0 -0
  663. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/internal/procfs/procfs.go +0 -0
  664. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/iterator.go +0 -0
  665. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/link_flags_stub.go +0 -0
  666. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/link_flags_unix.go +0 -0
  667. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/log.go +0 -0
  668. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/memory.go +0 -0
  669. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/monitor.go +0 -0
  670. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/panic.go +0 -0
  671. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/pidfd_android.go +0 -0
  672. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/platform.go +0 -0
  673. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/pprof.go +0 -0
  674. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/profile_import.go +0 -0
  675. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/remote_profile.go +0 -0
  676. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/semver.go +0 -0
  677. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/semver_test.go +0 -0
  678. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/service.go +0 -0
  679. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/service_other.go +0 -0
  680. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/service_windows.go +0 -0
  681. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/setup.go +0 -0
  682. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/tun.go +0 -0
  683. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/tun_darwin.go +0 -0
  684. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/tun_name_darwin.go +0 -0
  685. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/tun_name_linux.go +0 -0
  686. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/libbox/tun_name_other.go +0 -0
  687. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/locale/locale.go +0 -0
  688. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/locale/locale_zh_CN.go +0 -0
  689. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/v2rayapi/server.go +0 -0
  690. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/v2rayapi/stats.go +0 -0
  691. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/v2rayapi/stats.pb.go +0 -0
  692. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/v2rayapi/stats.proto +0 -0
  693. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/v2rayapi/stats_grpc.pb.go +0 -0
  694. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/experimental/v2rayapi.go +0 -0
  695. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/ccm.go +0 -0
  696. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/ccm_stub.go +0 -0
  697. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/ccm_stub_darwin.go +0 -0
  698. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/clashapi.go +0 -0
  699. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/clashapi_stub.go +0 -0
  700. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/dhcp.go +0 -0
  701. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/dhcp_stub.go +0 -0
  702. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/naive_outbound.go +0 -0
  703. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/naive_outbound_stub.go +0 -0
  704. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/ocm.go +0 -0
  705. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/ocm_stub.go +0 -0
  706. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/oom_killer.go +0 -0
  707. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/quic.go +0 -0
  708. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/quic_stub.go +0 -0
  709. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/registry.go +0 -0
  710. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/tailscale.go +0 -0
  711. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/tailscale_stub.go +0 -0
  712. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/tz_android.go +0 -0
  713. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/tz_ios.go +0 -0
  714. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/v2rayapi.go +0 -0
  715. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/v2rayapi_stub.go +0 -0
  716. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/wireguard.go +0 -0
  717. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/include/wireguard_stub.go +0 -0
  718. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/factory.go +0 -0
  719. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/format.go +0 -0
  720. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/id.go +0 -0
  721. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/level.go +0 -0
  722. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/log.go +0 -0
  723. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/nop.go +0 -0
  724. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/override.go +0 -0
  725. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/log/platform.go +0 -0
  726. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/mkdocs.yml +0 -0
  727. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/anytls.go +0 -0
  728. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/ccm.go +0 -0
  729. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/certificate.go +0 -0
  730. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/debug.go +0 -0
  731. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/direct.go +0 -0
  732. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/dns.go +0 -0
  733. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/dns_record.go +0 -0
  734. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/endpoint.go +0 -0
  735. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/experimental.go +0 -0
  736. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/group.go +0 -0
  737. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/hysteria.go +0 -0
  738. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/hysteria2.go +0 -0
  739. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/inbound.go +0 -0
  740. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/multiplex.go +0 -0
  741. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/naive.go +0 -0
  742. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/ntp.go +0 -0
  743. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/ocm.go +0 -0
  744. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/oom_killer.go +0 -0
  745. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/options.go +0 -0
  746. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/outbound.go +0 -0
  747. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/platform.go +0 -0
  748. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/redir.go +0 -0
  749. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/resolved.go +0 -0
  750. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/route.go +0 -0
  751. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/rule.go +0 -0
  752. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/rule_action.go +0 -0
  753. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/rule_dns.go +0 -0
  754. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/rule_set.go +0 -0
  755. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/service.go +0 -0
  756. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/shadowsocks.go +0 -0
  757. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/shadowsocksr.go +0 -0
  758. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/shadowtls.go +0 -0
  759. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/simple.go +0 -0
  760. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/ssh.go +0 -0
  761. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/ssmapi.go +0 -0
  762. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/tailscale.go +0 -0
  763. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/tls.go +0 -0
  764. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/tls_acme.go +0 -0
  765. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/tor.go +0 -0
  766. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/trojan.go +0 -0
  767. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/tuic.go +0 -0
  768. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/tun.go +0 -0
  769. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/tun_platform.go +0 -0
  770. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/types.go +0 -0
  771. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/udp_over_tcp.go +0 -0
  772. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/v2ray.go +0 -0
  773. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/v2ray_transport.go +0 -0
  774. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/vless.go +0 -0
  775. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/vmess.go +0 -0
  776. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/option/wireguard.go +0 -0
  777. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/anytls/client_metadata.go +0 -0
  778. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/anytls/inbound.go +0 -0
  779. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/anytls/outbound.go +0 -0
  780. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/block/outbound.go +0 -0
  781. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/direct/inbound.go +0 -0
  782. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/dns/handle.go +0 -0
  783. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/dns/outbound.go +0 -0
  784. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/group/selector.go +0 -0
  785. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/http/inbound.go +0 -0
  786. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/http/outbound.go +0 -0
  787. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/hysteria/inbound.go +0 -0
  788. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/hysteria/outbound.go +0 -0
  789. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/hysteria2/inbound.go +0 -0
  790. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/hysteria2/outbound.go +0 -0
  791. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/mixed/inbound.go +0 -0
  792. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/naive/inbound.go +0 -0
  793. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/naive/inbound_conn.go +0 -0
  794. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/naive/outbound.go +0 -0
  795. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/naive/quic/inbound_init.go +0 -0
  796. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/redirect/redirect.go +0 -0
  797. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/redirect/tproxy.go +0 -0
  798. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/shadowsocks/inbound.go +0 -0
  799. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/shadowsocks/inbound_multi.go +0 -0
  800. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/shadowsocks/inbound_relay.go +0 -0
  801. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/shadowsocks/outbound.go +0 -0
  802. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/shadowtls/inbound.go +0 -0
  803. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/shadowtls/outbound.go +0 -0
  804. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/socks/inbound.go +0 -0
  805. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/socks/outbound.go +0 -0
  806. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tailscale/dns_transport.go +0 -0
  807. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tailscale/endpoint.go +0 -0
  808. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tailscale/tun_device_unix.go +0 -0
  809. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tailscale/tun_device_windows.go +0 -0
  810. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tor/outbound.go +0 -0
  811. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tor/proxy.go +0 -0
  812. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/trojan/inbound.go +0 -0
  813. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/trojan/outbound.go +0 -0
  814. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tuic/inbound.go +0 -0
  815. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tuic/outbound.go +0 -0
  816. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tun/hook.go +0 -0
  817. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/tun/inbound.go +0 -0
  818. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/vless/inbound.go +0 -0
  819. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/vless/outbound.go +0 -0
  820. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/vmess/inbound.go +0 -0
  821. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/vmess/outbound.go +0 -0
  822. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/protocol/wireguard/endpoint.go +0 -0
  823. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/DEFAULT_BUILD_TAGS +0 -0
  824. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/DEFAULT_BUILD_TAGS_OTHERS +0 -0
  825. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/DEFAULT_BUILD_TAGS_WINDOWS +0 -0
  826. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/LDFLAGS +0 -0
  827. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/completions/sing-box.bash +0 -0
  828. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/completions/sing-box.fish +0 -0
  829. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/completions/sing-box.zsh +0 -0
  830. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/config.json +0 -0
  831. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/openwrt.conf +0 -0
  832. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/openwrt.init +0 -0
  833. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/openwrt.keep +0 -0
  834. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/openwrt.prerm +0 -0
  835. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/sing-box-split-dns.xml +0 -0
  836. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/sing-box.confd +0 -0
  837. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/sing-box.initd +0 -0
  838. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/sing-box.postinst +0 -0
  839. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/sing-box.rules +0 -0
  840. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/sing-box.service +0 -0
  841. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/sing-box.sysusers +0 -0
  842. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/config/sing-box@.service +0 -0
  843. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/common.sh +0 -0
  844. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/debug.sh +0 -0
  845. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/enable.sh +0 -0
  846. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/install.sh +0 -0
  847. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/install_go.sh +0 -0
  848. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/reinstall.sh +0 -0
  849. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/sing-box.service +0 -0
  850. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/uninstall.sh +0 -0
  851. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/release/local/update.sh +0 -0
  852. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/conn.go +0 -0
  853. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/dns.go +0 -0
  854. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/network.go +0 -0
  855. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/platform_searcher.go +0 -0
  856. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/process_cache.go +0 -0
  857. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/route.go +0 -0
  858. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/router.go +0 -0
  859. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_abstract_test.go +0 -0
  860. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_action.go +0 -0
  861. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_default.go +0 -0
  862. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_default_interface_address.go +0 -0
  863. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_dns.go +0 -0
  864. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_headless.go +0 -0
  865. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_interface_address.go +0 -0
  866. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_adguard.go +0 -0
  867. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_auth_user.go +0 -0
  868. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_cidr.go +0 -0
  869. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_clash_mode.go +0 -0
  870. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_client.go +0 -0
  871. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_domain.go +0 -0
  872. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_domain_keyword.go +0 -0
  873. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_domain_regex.go +0 -0
  874. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_inbound.go +0 -0
  875. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_ip_accept_any.go +0 -0
  876. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_ip_is_private.go +0 -0
  877. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_ipversion.go +0 -0
  878. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_network.go +0 -0
  879. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_network_is_constrained.go +0 -0
  880. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_network_is_expensive.go +0 -0
  881. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_network_type.go +0 -0
  882. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_outbound.go +0 -0
  883. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_package_name.go +0 -0
  884. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_port.go +0 -0
  885. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_port_range.go +0 -0
  886. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_preferred_by.go +0 -0
  887. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_process_name.go +0 -0
  888. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_process_path.go +0 -0
  889. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_process_path_regex.go +0 -0
  890. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_protocol.go +0 -0
  891. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_query_type.go +0 -0
  892. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_user.go +0 -0
  893. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_user_id.go +0 -0
  894. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_wifi_bssid.go +0 -0
  895. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_item_wifi_ssid.go +0 -0
  896. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_network_interface_address.go +0 -0
  897. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule/rule_set.go +0 -0
  898. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/route/rule_conds.go +0 -0
  899. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ccm/credential.go +0 -0
  900. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ccm/credential_darwin.go +0 -0
  901. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ccm/credential_other.go +0 -0
  902. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ccm/service.go +0 -0
  903. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ccm/service_usage.go +0 -0
  904. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ccm/service_user.go +0 -0
  905. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/derp/service.go +0 -0
  906. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ocm/credential.go +0 -0
  907. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ocm/credential_darwin.go +0 -0
  908. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ocm/credential_other.go +0 -0
  909. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ocm/service.go +0 -0
  910. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ocm/service_usage.go +0 -0
  911. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ocm/service_user.go +0 -0
  912. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ocm/service_websocket.go +0 -0
  913. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/oomkiller/config.go +0 -0
  914. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/oomkiller/service.go +0 -0
  915. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/oomkiller/service_stub.go +0 -0
  916. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/oomkiller/service_timer.go +0 -0
  917. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/resolved/resolve1.go +0 -0
  918. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/resolved/service.go +0 -0
  919. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/resolved/stub.go +0 -0
  920. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/resolved/transport.go +0 -0
  921. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ssmapi/api.go +0 -0
  922. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ssmapi/cache.go +0 -0
  923. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ssmapi/server.go +0 -0
  924. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ssmapi/traffic.go +0 -0
  925. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/service/ssmapi/user.go +0 -0
  926. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/box_test.go +0 -0
  927. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/brutal_test.go +0 -0
  928. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/clash_darwin_test.go +0 -0
  929. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/clash_other_test.go +0 -0
  930. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/clash_test.go +0 -0
  931. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/hysteria-client.json +0 -0
  932. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/hysteria-server.json +0 -0
  933. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/hysteria2-client.yml +0 -0
  934. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/hysteria2-server.yml +0 -0
  935. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/naive-nginx.conf +0 -0
  936. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/naive-quic.json +0 -0
  937. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/naive.json +0 -0
  938. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/nginx.conf +0 -0
  939. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/shadowsocksr.json +0 -0
  940. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/trojan.json +0 -0
  941. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/tuic-client.json +0 -0
  942. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/tuic-server.json +0 -0
  943. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vless-server.json +0 -0
  944. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vless-tls-client.json +0 -0
  945. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vless-tls-server.json +0 -0
  946. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vmess-client.json +0 -0
  947. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vmess-grpc-client.json +0 -0
  948. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vmess-grpc-server.json +0 -0
  949. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vmess-mux-client.json +0 -0
  950. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vmess-server.json +0 -0
  951. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vmess-ws-client.json +0 -0
  952. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/vmess-ws-server.json +0 -0
  953. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/config/wireguard.conf +0 -0
  954. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/direct_test.go +0 -0
  955. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/docker_test.go +0 -0
  956. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/domain_inbound_test.go +0 -0
  957. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/ech_test.go +0 -0
  958. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/go.mod +0 -0
  959. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/go.sum +0 -0
  960. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/http_test.go +0 -0
  961. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/hysteria2_test.go +0 -0
  962. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/hysteria_test.go +0 -0
  963. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/inbound_detour_test.go +0 -0
  964. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/ktls_test.go +0 -0
  965. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/mkcert.go +0 -0
  966. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/mux_cool_test.go +0 -0
  967. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/mux_test.go +0 -0
  968. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/naive_self_test.go +0 -0
  969. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/naive_test.go +0 -0
  970. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/reality_test.go +0 -0
  971. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/shadowsocks_legacy_test.go +0 -0
  972. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/shadowsocks_test.go +0 -0
  973. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/shadowtls_test.go +0 -0
  974. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/socks_test.go +0 -0
  975. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/ss_plugin_test.go +0 -0
  976. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/tfo_test.go +0 -0
  977. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/tls_test.go +0 -0
  978. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/trojan_test.go +0 -0
  979. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/tuic_test.go +0 -0
  980. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/v2ray_api_test.go +0 -0
  981. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/v2ray_grpc_test.go +0 -0
  982. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/v2ray_httpupgrade_test.go +0 -0
  983. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/v2ray_transport_test.go +0 -0
  984. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/v2ray_ws_test.go +0 -0
  985. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/vmess_test.go +0 -0
  986. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/test/wrapper_test.go +0 -0
  987. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/simple-obfs/README.md +0 -0
  988. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/simple-obfs/http.go +0 -0
  989. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/simple-obfs/tls.go +0 -0
  990. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/sip003/args.go +0 -0
  991. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/sip003/obfs.go +0 -0
  992. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/sip003/plugin.go +0 -0
  993. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/sip003/v2ray.go +0 -0
  994. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/trojan/mux.go +0 -0
  995. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/trojan/protocol.go +0 -0
  996. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/trojan/protocol_wait.go +0 -0
  997. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/trojan/service.go +0 -0
  998. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/trojan/service_wait.go +0 -0
  999. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2ray/grpc.go +0 -0
  1000. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2ray/grpc_lite.go +0 -0
  1001. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2ray/quic.go +0 -0
  1002. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2ray/transport.go +0 -0
  1003. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/client.go +0 -0
  1004. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/conn.go +0 -0
  1005. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/credentials/credentials.go +0 -0
  1006. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/credentials/spiffe.go +0 -0
  1007. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/credentials/syscallconn.go +0 -0
  1008. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/credentials/util.go +0 -0
  1009. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/custom_name.go +0 -0
  1010. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/server.go +0 -0
  1011. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/stream.pb.go +0 -0
  1012. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/stream.proto +0 -0
  1013. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/stream_grpc.pb.go +0 -0
  1014. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpc/tls_credentials.go +0 -0
  1015. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpclite/client.go +0 -0
  1016. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpclite/conn.go +0 -0
  1017. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raygrpclite/server.go +0 -0
  1018. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayhttp/client.go +0 -0
  1019. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayhttp/conn.go +0 -0
  1020. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayhttp/force_close.go +0 -0
  1021. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayhttp/pool.go +0 -0
  1022. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayhttp/server.go +0 -0
  1023. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayhttpupgrade/client.go +0 -0
  1024. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayhttpupgrade/server.go +0 -0
  1025. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayquic/client.go +0 -0
  1026. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayquic/init.go +0 -0
  1027. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayquic/server.go +0 -0
  1028. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2rayquic/stream.go +0 -0
  1029. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raywebsocket/server.go +0 -0
  1030. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/v2raywebsocket/writer.go +0 -0
  1031. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/client_bind.go +0 -0
  1032. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/device.go +0 -0
  1033. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/device_nat.go +0 -0
  1034. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/device_stack.go +0 -0
  1035. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/device_stack_gonet.go +0 -0
  1036. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/device_stack_stub.go +0 -0
  1037. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/device_system.go +0 -0
  1038. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/device_system_stack.go +0 -0
  1039. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/endpoint.go +0 -0
  1040. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/singbox-go/transport/wireguard/endpoint_options.go +0 -0
  1041. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/src/cronet.c +0 -0
  1042. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/src/singbox.cpp +0 -0
  1043. {sing_box_python-1.13.19 → sing_box_python-1.13.21}/tests/test_binding.py +0 -0
@@ -0,0 +1 @@
1
+ 1.25.12
@@ -7,5 +7,6 @@ include LICENSE
7
7
  include README.md
8
8
  include pyproject.toml
9
9
  include setup.py
10
+ include .go-version
10
11
  include UPSTREAM_COMMIT
11
12
  include UPSTREAM_VERSION
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sing-box-python
3
- Version: 1.13.19
3
+ Version: 1.13.21
4
4
  Summary: Python binding for sing-box
5
5
  License: GPL-3.0-or-later
6
6
  Project-URL: Source, https://github.com/LorenEteval/sing-box-python
@@ -47,7 +47,8 @@ Binary wheels are published for Linux x86-64 and ARM64, Windows x86-64 and ARM64
47
47
  A source distribution is also published as a fallback. If pip cannot find a compatible wheel, it may build the native
48
48
  binding from source. A source build requires:
49
49
 
50
- * [Go 1.24.7](https://go.dev/doc/install) in `PATH`.
50
+ * The [Go toolchain version recorded in `.go-version`](https://go.dev/doc/install), or a newer compatible release, in
51
+ `PATH`. The pinned version matches the compiler used by the synchronized upstream release workflow.
51
52
  * A working C and C++ compiler toolchain.
52
53
  * MinGW-w64 on Windows x86-64, or LLVM-MinGW on Windows ARM64, with `gcc` and `g++` available in `PATH`.
53
54
 
@@ -178,11 +179,14 @@ paths and blob contents remain identical to upstream. Synchronization runs on Li
178
179
  `.github/workflows/sync-upstream.yml` checks the latest stable upstream release daily and can also be started manually
179
180
  from the Actions page. Drafts and prereleases are rejected. `UPSTREAM_VERSION` is the single version source for both the
180
181
  Python distribution version and the sing-box version embedded in the native library, while `UPSTREAM_COMMIT` pins the
181
- commit to which that release tag resolved during import.
182
+ commit to which that release tag resolved during import. The root `.go-version` pins the exact Go compiler used by
183
+ upstream's release workflow; this is intentionally independent of the minimum language version in `singbox-go/go.mod`.
182
184
 
183
185
  The synchronization script checks the current vendor tree against its exact upstream tag, fetches the requested tag,
184
- replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, and verifies every
185
- vendored upstream path and Git blob. Repeated checks are no-ops when the stable release is already synchronized.
186
+ replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, `UPSTREAM_COMMIT`,
187
+ and `.go-version`, and verifies every vendored upstream path and Git blob. The Go pin is extracted from exact
188
+ `go-version` entries in upstream's build workflow; synchronization fails instead of guessing if no single exact version
189
+ can be identified. Repeated checks are no-ops when the stable release is already synchronized.
186
190
 
187
191
  Run the same operations locally from the repository root:
188
192
 
@@ -192,10 +196,12 @@ python scripts/sync-sing-box.py verify --tag v1.13.18
192
196
  python scripts/sync-sing-box.py sync --tag vX.Y.Z
193
197
  ```
194
198
 
195
- For an automated update, the sync workflow commits `chore: sync sing-box vX.Y.Z` to `main`, then explicitly dispatches
196
- the existing build-and-publish workflow at that commit. The latter builds and tests every distribution before creating
197
- the `vX.Y.Z` tag, publishing `X.Y.Z` to PyPI through Trusted Publishing, and creating the GitHub Release. Explicit
198
- dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not trigger new push workflows.
199
+ For an automated update, the sync workflow installs the synchronized `.go-version` toolchain and compiles the Go
200
+ binding before committing `chore: sync sing-box vX.Y.Z` to `main`. It then explicitly dispatches the existing
201
+ build-and-publish workflow at that commit. The latter uses the same exact Go version for every wheel platform, builds
202
+ and tests every distribution, then creates the `vX.Y.Z` tag, publishes `X.Y.Z` to PyPI through Trusted Publishing, and
203
+ creates the GitHub Release. Explicit dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not
204
+ trigger new push workflows.
199
205
 
200
206
  ## Binary Wheel Platforms
201
207
 
@@ -20,7 +20,8 @@ Binary wheels are published for Linux x86-64 and ARM64, Windows x86-64 and ARM64
20
20
  A source distribution is also published as a fallback. If pip cannot find a compatible wheel, it may build the native
21
21
  binding from source. A source build requires:
22
22
 
23
- * [Go 1.24.7](https://go.dev/doc/install) in `PATH`.
23
+ * The [Go toolchain version recorded in `.go-version`](https://go.dev/doc/install), or a newer compatible release, in
24
+ `PATH`. The pinned version matches the compiler used by the synchronized upstream release workflow.
24
25
  * A working C and C++ compiler toolchain.
25
26
  * MinGW-w64 on Windows x86-64, or LLVM-MinGW on Windows ARM64, with `gcc` and `g++` available in `PATH`.
26
27
 
@@ -151,11 +152,14 @@ paths and blob contents remain identical to upstream. Synchronization runs on Li
151
152
  `.github/workflows/sync-upstream.yml` checks the latest stable upstream release daily and can also be started manually
152
153
  from the Actions page. Drafts and prereleases are rejected. `UPSTREAM_VERSION` is the single version source for both the
153
154
  Python distribution version and the sing-box version embedded in the native library, while `UPSTREAM_COMMIT` pins the
154
- commit to which that release tag resolved during import.
155
+ commit to which that release tag resolved during import. The root `.go-version` pins the exact Go compiler used by
156
+ upstream's release workflow; this is intentionally independent of the minimum language version in `singbox-go/go.mod`.
155
157
 
156
158
  The synchronization script checks the current vendor tree against its exact upstream tag, fetches the requested tag,
157
- replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, and verifies every
158
- vendored upstream path and Git blob. Repeated checks are no-ops when the stable release is already synchronized.
159
+ replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, `UPSTREAM_COMMIT`,
160
+ and `.go-version`, and verifies every vendored upstream path and Git blob. The Go pin is extracted from exact
161
+ `go-version` entries in upstream's build workflow; synchronization fails instead of guessing if no single exact version
162
+ can be identified. Repeated checks are no-ops when the stable release is already synchronized.
159
163
 
160
164
  Run the same operations locally from the repository root:
161
165
 
@@ -165,10 +169,12 @@ python scripts/sync-sing-box.py verify --tag v1.13.18
165
169
  python scripts/sync-sing-box.py sync --tag vX.Y.Z
166
170
  ```
167
171
 
168
- For an automated update, the sync workflow commits `chore: sync sing-box vX.Y.Z` to `main`, then explicitly dispatches
169
- the existing build-and-publish workflow at that commit. The latter builds and tests every distribution before creating
170
- the `vX.Y.Z` tag, publishing `X.Y.Z` to PyPI through Trusted Publishing, and creating the GitHub Release. Explicit
171
- dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not trigger new push workflows.
172
+ For an automated update, the sync workflow installs the synchronized `.go-version` toolchain and compiles the Go
173
+ binding before committing `chore: sync sing-box vX.Y.Z` to `main`. It then explicitly dispatches the existing
174
+ build-and-publish workflow at that commit. The latter uses the same exact Go version for every wheel platform, builds
175
+ and tests every distribution, then creates the `vX.Y.Z` tag, publishes `X.Y.Z` to PyPI through Trusted Publishing, and
176
+ creates the GitHub Release. Explicit dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not
177
+ trigger new push workflows.
172
178
 
173
179
  ## Binary Wheel Platforms
174
180
 
@@ -0,0 +1 @@
1
+ 628cb31ffa79cffffd34c2f9cde6cae044e4fc12
@@ -0,0 +1 @@
1
+ v1.13.21
@@ -30,27 +30,38 @@ test-command = [
30
30
  ]
31
31
 
32
32
  [tool.cibuildwheel.linux]
33
- before-all = """
33
+ manylinux-x86_64-image = "manylinux2014"
34
+ manylinux-aarch64-image = "manylinux2014"
35
+ before-all = '''
36
+ go_version="$(
37
+ tr -d '\r\n' < "{project}/.go-version"
38
+ )"
39
+ if ! printf '%s\n' "${go_version}" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+$'; then
40
+ echo "Invalid Go version in .go-version: ${go_version}" >&2
41
+ exit 1
42
+ fi
34
43
  case "$(uname -m)" in
35
44
  x86_64)
36
45
  go_arch='amd64'
37
- go_sha256='da18191ddb7db8a9339816f3e2b54bdded8047cdc2a5d67059478f8d1595c43f'
38
46
  ;;
39
47
  aarch64|arm64)
40
48
  go_arch='arm64'
41
- go_sha256='fd2bccce882e29369f56c86487663bb78ba7ea9e02188a5b0269303a0c3d33ab'
42
49
  ;;
43
50
  *)
44
51
  echo "Unsupported Linux architecture: $(uname -m)" >&2
45
52
  exit 1
46
53
  ;;
47
54
  esac
48
- go_archive="/tmp/go1.24.7.linux-${go_arch}.tar.gz"
49
- curl -fsSLo "${go_archive}" "https://go.dev/dl/go1.24.7.linux-${go_arch}.tar.gz"
55
+ go_archive="/tmp/go${go_version}.linux-${go_arch}.tar.gz"
56
+ go_checksum="${go_archive}.sha256"
57
+ go_url="https://dl.google.com/go/go${go_version}.linux-${go_arch}.tar.gz"
58
+ curl -fsSLo "${go_archive}" "${go_url}"
59
+ curl -fsSLo "${go_checksum}" "${go_url}.sha256"
60
+ go_sha256="$(tr -d '\r\n' < "${go_checksum}")"
50
61
  echo "${go_sha256} ${go_archive}" | sha256sum -c -
51
62
  tar -C /usr/local -xzf "${go_archive}"
52
63
  /usr/local/go/bin/go version
53
- """
64
+ '''
54
65
  environment = { PATH = "/usr/local/go/bin:$PATH", GOTOOLCHAIN = "local" }
55
66
 
56
67
  [tool.cibuildwheel.macos]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sing-box-python
3
- Version: 1.13.19
3
+ Version: 1.13.21
4
4
  Summary: Python binding for sing-box
5
5
  License: GPL-3.0-or-later
6
6
  Project-URL: Source, https://github.com/LorenEteval/sing-box-python
@@ -47,7 +47,8 @@ Binary wheels are published for Linux x86-64 and ARM64, Windows x86-64 and ARM64
47
47
  A source distribution is also published as a fallback. If pip cannot find a compatible wheel, it may build the native
48
48
  binding from source. A source build requires:
49
49
 
50
- * [Go 1.24.7](https://go.dev/doc/install) in `PATH`.
50
+ * The [Go toolchain version recorded in `.go-version`](https://go.dev/doc/install), or a newer compatible release, in
51
+ `PATH`. The pinned version matches the compiler used by the synchronized upstream release workflow.
51
52
  * A working C and C++ compiler toolchain.
52
53
  * MinGW-w64 on Windows x86-64, or LLVM-MinGW on Windows ARM64, with `gcc` and `g++` available in `PATH`.
53
54
 
@@ -178,11 +179,14 @@ paths and blob contents remain identical to upstream. Synchronization runs on Li
178
179
  `.github/workflows/sync-upstream.yml` checks the latest stable upstream release daily and can also be started manually
179
180
  from the Actions page. Drafts and prereleases are rejected. `UPSTREAM_VERSION` is the single version source for both the
180
181
  Python distribution version and the sing-box version embedded in the native library, while `UPSTREAM_COMMIT` pins the
181
- commit to which that release tag resolved during import.
182
+ commit to which that release tag resolved during import. The root `.go-version` pins the exact Go compiler used by
183
+ upstream's release workflow; this is intentionally independent of the minimum language version in `singbox-go/go.mod`.
182
184
 
183
185
  The synchronization script checks the current vendor tree against its exact upstream tag, fetches the requested tag,
184
- replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, and verifies every
185
- vendored upstream path and Git blob. Repeated checks are no-ops when the stable release is already synchronized.
186
+ replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, `UPSTREAM_COMMIT`,
187
+ and `.go-version`, and verifies every vendored upstream path and Git blob. The Go pin is extracted from exact
188
+ `go-version` entries in upstream's build workflow; synchronization fails instead of guessing if no single exact version
189
+ can be identified. Repeated checks are no-ops when the stable release is already synchronized.
186
190
 
187
191
  Run the same operations locally from the repository root:
188
192
 
@@ -192,10 +196,12 @@ python scripts/sync-sing-box.py verify --tag v1.13.18
192
196
  python scripts/sync-sing-box.py sync --tag vX.Y.Z
193
197
  ```
194
198
 
195
- For an automated update, the sync workflow commits `chore: sync sing-box vX.Y.Z` to `main`, then explicitly dispatches
196
- the existing build-and-publish workflow at that commit. The latter builds and tests every distribution before creating
197
- the `vX.Y.Z` tag, publishing `X.Y.Z` to PyPI through Trusted Publishing, and creating the GitHub Release. Explicit
198
- dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not trigger new push workflows.
199
+ For an automated update, the sync workflow installs the synchronized `.go-version` toolchain and compiles the Go
200
+ binding before committing `chore: sync sing-box vX.Y.Z` to `main`. It then explicitly dispatches the existing
201
+ build-and-publish workflow at that commit. The latter uses the same exact Go version for every wheel platform, builds
202
+ and tests every distribution, then creates the `vX.Y.Z` tag, publishes `X.Y.Z` to PyPI through Trusted Publishing, and
203
+ creates the GitHub Release. Explicit dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not
204
+ trigger new push workflows.
199
205
 
200
206
  ## Binary Wheel Platforms
201
207
 
@@ -1,3 +1,4 @@
1
+ .go-version
1
2
  CMakeLists.txt
2
3
  LICENSE
3
4
  MANIFEST.in
@@ -850,6 +851,7 @@ singbox-go/route/rule/rule_action.go
850
851
  singbox-go/route/rule/rule_default.go
851
852
  singbox-go/route/rule/rule_default_interface_address.go
852
853
  singbox-go/route/rule/rule_dns.go
854
+ singbox-go/route/rule/rule_dns_address_filter_test.go
853
855
  singbox-go/route/rule/rule_headless.go
854
856
  singbox-go/route/rule/rule_interface_address.go
855
857
  singbox-go/route/rule/rule_item_adguard.go
@@ -1098,37 +1098,36 @@ jobs:
1098
1098
  echo "ASC_KEY_ID=$ASC_KEY_ID" >> "$GITHUB_ENV"
1099
1099
  echo "ASC_KEY_ISSUER_ID=$ASC_KEY_ISSUER_ID" >> "$GITHUB_ENV"
1100
1100
  env:
1101
- ASC_KEY: ${{ secrets.ASC_KEY }}
1102
- ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}
1103
- ASC_KEY_ISSUER_ID: ${{ secrets.ASC_KEY_ISSUER_ID }}
1101
+ ASC_KEY: ${{ secrets.LEGACY_ASC_KEY }}
1102
+ ASC_KEY_ID: ${{ secrets.LEGACY_ASC_KEY_ID }}
1103
+ ASC_KEY_ISSUER_ID: ${{ secrets.LEGACY_ASC_KEY_ISSUER_ID }}
1104
1104
  - name: Install Apple provisioning profiles
1105
1105
  if: matrix.if && matrix.type != 'jailbreak'
1106
1106
  run: |-
1107
1107
  PROFILES_ZIP_PATH=$RUNNER_TEMP/AppleProvisioningProfiles.zip
1108
- for index in $(seq 1 16); do
1109
- variable="PROVISIONING_PROFILES_$index"
1108
+ for variable in $(compgen -v | grep -E '^PROVISIONING_PROFILES_[0-9]+$' | sort -t_ -k3 -n); do
1110
1109
  printf '%s' "${!variable}"
1111
1110
  done | base64 --decode -o $PROFILES_ZIP_PATH
1112
1111
  PROFILES_PATH="$HOME/Library/Developer/Xcode/UserData/Provisioning Profiles"
1113
1112
  mkdir -p "$PROFILES_PATH"
1114
1113
  unzip -q $PROFILES_ZIP_PATH -d "$PROFILES_PATH"
1115
1114
  env:
1116
- PROVISIONING_PROFILES_1: ${{ secrets.APPLE_PROVISIONING_PROFILES_1 }}
1117
- PROVISIONING_PROFILES_2: ${{ secrets.APPLE_PROVISIONING_PROFILES_2 }}
1118
- PROVISIONING_PROFILES_3: ${{ secrets.APPLE_PROVISIONING_PROFILES_3 }}
1119
- PROVISIONING_PROFILES_4: ${{ secrets.APPLE_PROVISIONING_PROFILES_4 }}
1120
- PROVISIONING_PROFILES_5: ${{ secrets.APPLE_PROVISIONING_PROFILES_5 }}
1121
- PROVISIONING_PROFILES_6: ${{ secrets.APPLE_PROVISIONING_PROFILES_6 }}
1122
- PROVISIONING_PROFILES_7: ${{ secrets.APPLE_PROVISIONING_PROFILES_7 }}
1123
- PROVISIONING_PROFILES_8: ${{ secrets.APPLE_PROVISIONING_PROFILES_8 }}
1124
- PROVISIONING_PROFILES_9: ${{ secrets.APPLE_PROVISIONING_PROFILES_9 }}
1125
- PROVISIONING_PROFILES_10: ${{ secrets.APPLE_PROVISIONING_PROFILES_10 }}
1126
- PROVISIONING_PROFILES_11: ${{ secrets.APPLE_PROVISIONING_PROFILES_11 }}
1127
- PROVISIONING_PROFILES_12: ${{ secrets.APPLE_PROVISIONING_PROFILES_12 }}
1128
- PROVISIONING_PROFILES_13: ${{ secrets.APPLE_PROVISIONING_PROFILES_13 }}
1129
- PROVISIONING_PROFILES_14: ${{ secrets.APPLE_PROVISIONING_PROFILES_14 }}
1130
- PROVISIONING_PROFILES_15: ${{ secrets.APPLE_PROVISIONING_PROFILES_15 }}
1131
- PROVISIONING_PROFILES_16: ${{ secrets.APPLE_PROVISIONING_PROFILES_16 }}
1115
+ PROVISIONING_PROFILES_1: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_1 }}
1116
+ PROVISIONING_PROFILES_2: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_2 }}
1117
+ PROVISIONING_PROFILES_3: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_3 }}
1118
+ PROVISIONING_PROFILES_4: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_4 }}
1119
+ PROVISIONING_PROFILES_5: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_5 }}
1120
+ PROVISIONING_PROFILES_6: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_6 }}
1121
+ PROVISIONING_PROFILES_7: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_7 }}
1122
+ PROVISIONING_PROFILES_8: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_8 }}
1123
+ PROVISIONING_PROFILES_9: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_9 }}
1124
+ PROVISIONING_PROFILES_10: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_10 }}
1125
+ PROVISIONING_PROFILES_11: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_11 }}
1126
+ PROVISIONING_PROFILES_12: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_12 }}
1127
+ PROVISIONING_PROFILES_13: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_13 }}
1128
+ PROVISIONING_PROFILES_14: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_14 }}
1129
+ PROVISIONING_PROFILES_15: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_15 }}
1130
+ PROVISIONING_PROFILES_16: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_16 }}
1132
1131
  - name: Setup Apple Development certificate
1133
1132
  if: matrix.if && matrix.type != 'jailbreak'
1134
1133
  run: |-
@@ -1145,8 +1144,8 @@ jobs:
1145
1144
  security find-identity -v -p codesigning $KEYCHAIN_PATH
1146
1145
  echo "APPLE_DEVELOPMENT_KEYCHAIN_PATH=$KEYCHAIN_PATH" >> "$GITHUB_ENV"
1147
1146
  env:
1148
- APPLE_DEVELOPMENT_CERTIFICATES_P12: ${{ secrets.APPLE_DEVELOPMENT_CERTIFICATES_P12 }}
1149
- P12_PASSWORD: ${{ secrets.APPLE_DEVELOPMENT_P12_PASSWORD }}
1147
+ APPLE_DEVELOPMENT_CERTIFICATES_P12: ${{ secrets.LEGACY_APPLE_DEVELOPMENT_CERTIFICATES_P12 }}
1148
+ P12_PASSWORD: ${{ secrets.LEGACY_APPLE_DEVELOPMENT_P12_PASSWORD }}
1150
1149
  KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
1151
1150
  - name: Setup Developer ID certificates
1152
1151
  if: matrix.if && matrix.type == 'standalone'
@@ -1164,8 +1163,8 @@ jobs:
1164
1163
  security find-identity -v -p codesigning $KEYCHAIN_PATH
1165
1164
  echo "SIGNING_KEYCHAIN_PATH=$KEYCHAIN_PATH" >> "$GITHUB_ENV"
1166
1165
  env:
1167
- DEVELOPER_ID_CERTIFICATES_P12: ${{ secrets.DEVELOPER_ID_CERTIFICATES_P12 }}
1168
- P12_PASSWORD: ${{ secrets.DEVELOPER_ID_P12_PASSWORD }}
1166
+ DEVELOPER_ID_CERTIFICATES_P12: ${{ secrets.LEGACY_DEVELOPER_ID_CERTIFICATES_P12 }}
1167
+ P12_PASSWORD: ${{ secrets.LEGACY_DEVELOPER_ID_P12_PASSWORD }}
1169
1168
  KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
1170
1169
  - name: Setup notarization credentials
1171
1170
  if: matrix.if && matrix.type == 'standalone' && github.event_name == 'workflow_dispatch'
@@ -143,6 +143,7 @@ type OutboundGroup interface {
143
143
  type URLTestGroup interface {
144
144
  OutboundGroup
145
145
  URLTest(ctx context.Context) (map[string]uint16, error)
146
+ PerformUpdateCheck()
146
147
  }
147
148
 
148
149
  func OutboundTag(detour Outbound) string {
@@ -94,7 +94,7 @@ type InboundContext struct {
94
94
  SourcePortMatch bool
95
95
  DestinationAddressMatch bool
96
96
  DestinationPortMatch bool
97
- DidMatch bool
97
+ DefinitiveMatchStates uint16
98
98
  IgnoreDestinationIPCIDRMatch bool
99
99
  }
100
100
 
@@ -109,7 +109,7 @@ func (c *InboundContext) ResetRuleMatchCache() {
109
109
  c.SourcePortMatch = false
110
110
  c.DestinationAddressMatch = false
111
111
  c.DestinationPortMatch = false
112
- c.DidMatch = false
112
+ c.DefinitiveMatchStates = 0
113
113
  }
114
114
 
115
115
  type inboundContextKey struct{}
@@ -10,6 +10,7 @@ import (
10
10
  "github.com/sagernet/sing-box/experimental/deprecated"
11
11
  "github.com/sagernet/sing-box/include"
12
12
  "github.com/sagernet/sing-box/log"
13
+ "github.com/sagernet/sing/common"
13
14
  "github.com/sagernet/sing/service"
14
15
  "github.com/sagernet/sing/service/filemanager"
15
16
 
@@ -52,7 +53,9 @@ func preRun(cmd *cobra.Command, args []string) {
52
53
  globalCtx = filemanager.WithDefault(globalCtx, "", "", sudoUID, sudoGID)
53
54
  }
54
55
  if disableColor {
55
- log.SetStdLogger(log.NewDefaultFactory(context.Background(), log.Formatter{BaseTime: time.Now(), DisableColors: true}, os.Stderr, "", nil, false).Logger())
56
+ logFactory := log.NewDefaultFactory(context.Background(), log.Formatter{BaseTime: time.Now(), DisableColors: true}, os.Stderr, "", nil, false)
57
+ common.Must(logFactory.Start())
58
+ log.SetStdLogger(logFactory.Logger())
56
59
  }
57
60
  if workingDir != "" {
58
61
  _, err := os.Stat(workingDir)
@@ -2,6 +2,14 @@
2
2
  icon: material/alert-decagram
3
3
  ---
4
4
 
5
+ #### 1.13.21
6
+
7
+ * Fixes and improvements
8
+
9
+ #### 1.13.20
10
+
11
+ * Fixes and improvements
12
+
5
13
  #### 1.13.19
6
14
 
7
15
  * Fixes and improvements
@@ -203,9 +203,9 @@ icon: material/alert-decagram
203
203
  !!! note ""
204
204
 
205
205
  The default rule uses the following matching logic:
206
- (`domain` || `domain_suffix` || `domain_keyword` || `domain_regex` || `geosite`) &&
206
+ (`domain` || `domain_suffix` || `domain_keyword` || `domain_regex` || `geosite` || `ip_cidr` || `ip_is_private` || `ip_accept_any`) &&
207
207
  (`port` || `port_range`) &&
208
- (`source_geoip` || `source_ip_cidr` || `source_ip_is_private`) &&
208
+ (`source_geoip` || `source_ip_cidr` || `source_ip_is_private`) &&
209
209
  (`source_port` || `source_port_range`) &&
210
210
  `other fields`
211
211
 
@@ -202,7 +202,7 @@ icon: material/alert-decagram
202
202
  !!! note ""
203
203
 
204
204
  默认规则使用以下匹配逻辑:
205
- (`domain` || `domain_suffix` || `domain_keyword` || `domain_regex` || `geosite`) &&
205
+ (`domain` || `domain_suffix` || `domain_keyword` || `domain_regex` || `geosite` || `ip_cidr` || `ip_is_private` || `ip_accept_any`) &&
206
206
  (`port` || `port_range`) &&
207
207
  (`source_geoip` || `source_ip_cidr` || `source_ip_is_private`) &&
208
208
  (`source_port` || `source_port_range`) &&
@@ -184,6 +184,30 @@ func updateProxy(w http.ResponseWriter, r *http.Request) {
184
184
  render.NoContent(w, r)
185
185
  }
186
186
 
187
+ func groupContains(outboundManager adapter.OutboundManager, outboundGroup adapter.OutboundGroup, tag string, visited map[string]bool) bool {
188
+ for _, memberTag := range outboundGroup.All() {
189
+ if memberTag == tag {
190
+ return true
191
+ }
192
+ member, loaded := outboundManager.Outbound(memberTag)
193
+ if !loaded {
194
+ continue
195
+ }
196
+ if group.RealTag(member) == tag {
197
+ return true
198
+ }
199
+ memberGroup, isGroup := member.(adapter.OutboundGroup)
200
+ if !isGroup || visited[memberTag] {
201
+ continue
202
+ }
203
+ visited[memberTag] = true
204
+ if groupContains(outboundManager, memberGroup, tag, visited) {
205
+ return true
206
+ }
207
+ }
208
+ return false
209
+ }
210
+
187
211
  func getProxyDelay(server *Server) func(w http.ResponseWriter, r *http.Request) {
188
212
  return func(w http.ResponseWriter, r *http.Request) {
189
213
  query := r.URL.Query()
@@ -213,6 +237,16 @@ func getProxyDelay(server *Server) func(w http.ResponseWriter, r *http.Request)
213
237
  Delay: delay,
214
238
  })
215
239
  }
240
+ for _, detour := range server.outbound.Outbounds() {
241
+ urlTestGroup, isURLTestGroup := detour.(adapter.URLTestGroup)
242
+ if !isURLTestGroup {
243
+ continue
244
+ }
245
+ if !groupContains(server.outbound, urlTestGroup, realTag, map[string]bool{detour.Tag(): true}) {
246
+ continue
247
+ }
248
+ urlTestGroup.PerformUpdateCheck()
249
+ }
216
250
  }()
217
251
 
218
252
  if ctx.Err() != nil {
@@ -34,16 +34,16 @@ require (
34
34
  github.com/sagernet/gomobile v0.1.12
35
35
  github.com/sagernet/gvisor v0.0.0-20250811.0-sing-box-mod.1
36
36
  github.com/sagernet/quic-go v0.59.0-sing-box-mod.4
37
- github.com/sagernet/sing v0.8.13
37
+ github.com/sagernet/sing v0.8.14
38
38
  github.com/sagernet/sing-mux v0.3.5
39
- github.com/sagernet/sing-quic v0.6.4-0.20260803041914-d83826c306d7
39
+ github.com/sagernet/sing-quic v0.6.5
40
40
  github.com/sagernet/sing-shadowsocks v0.2.8
41
41
  github.com/sagernet/sing-shadowsocks2 v0.2.1
42
42
  github.com/sagernet/sing-shadowtls v0.2.1
43
- github.com/sagernet/sing-tun v0.8.12-0.20260810140523-7c73233bd0fb
43
+ github.com/sagernet/sing-tun v0.8.15
44
44
  github.com/sagernet/sing-vmess v0.2.8-0.20250909125414-3aed155119a1
45
45
  github.com/sagernet/smux v1.5.50-sing-box-mod.1
46
- github.com/sagernet/tailscale v1.92.4-sing-box-1.13-mod.9
46
+ github.com/sagernet/tailscale v1.92.4-sing-box-1.13-mod.10
47
47
  github.com/sagernet/wireguard-go v0.0.4
48
48
  github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854
49
49
  github.com/spf13/cobra v1.10.2
@@ -80,7 +80,6 @@ require (
80
80
  github.com/fsnotify/fsnotify v1.9.0 // indirect
81
81
  github.com/fxamacker/cbor/v2 v2.7.0 // indirect
82
82
  github.com/gaissmai/bart v0.18.0 // indirect
83
- github.com/go-json-experiment/json v0.0.0-20250813024750-ebf49471dced // indirect
84
83
  github.com/go-ole/go-ole v1.3.0 // indirect
85
84
  github.com/gobwas/httphead v0.1.0 // indirect
86
85
  github.com/gobwas/pool v0.2.1 // indirect
@@ -62,8 +62,6 @@ github.com/go-chi/render v1.0.3 h1:AsXqd2a1/INaIfUSKq3G5uA8weYx20FOsM7uSoCyyt4=
62
62
  github.com/go-chi/render v1.0.3/go.mod h1:/gr3hVkmYR0YlEy3LxCuVRFzEu9Ruok+gFqbIofjao0=
63
63
  github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
64
64
  github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
65
- github.com/go-json-experiment/json v0.0.0-20250813024750-ebf49471dced h1:Q311OHjMh/u5E2TITc++WlTP5We0xNseRMkHDyvhW7I=
66
- github.com/go-json-experiment/json v0.0.0-20250813024750-ebf49471dced/go.mod h1:TiCD2a1pcmjd7YnhGH0f/zKNcCD06B029pHhzV23c2M=
67
65
  github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
68
66
  github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
69
67
  github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
@@ -236,26 +234,26 @@ github.com/sagernet/nftables v0.3.0-mod.2 h1:ck2KMU02OxL1eDFgGaWYglMDpoOZ7OHzxje
236
234
  github.com/sagernet/nftables v0.3.0-mod.2/go.mod h1:8kslHG4VvYNihcco+i6uxIX7qbT8A56T0y5q7U44ZaQ=
237
235
  github.com/sagernet/quic-go v0.59.0-sing-box-mod.4 h1:6qvrUW79S+CrPwWz6cMePXohgjHoKxLo3c+MDhNwc3o=
238
236
  github.com/sagernet/quic-go v0.59.0-sing-box-mod.4/go.mod h1:OqILvS182CyOol5zNNo6bguvOGgXzV459+chpRaUC+4=
239
- github.com/sagernet/sing v0.8.13 h1:yVoXnx9nPxfjlwD4Tp+Wd9zuW2tfiSVrcRDBZNbKRCw=
240
- github.com/sagernet/sing v0.8.13/go.mod h1:olXxWQNqRW/l2Q6JI3b2Qmz8iQnIFlOeeH8bx6JhgUA=
237
+ github.com/sagernet/sing v0.8.14 h1:S6Netv4F61uNAuD/sUbHnGuNUEPwtL08Ouk0//CVYgM=
238
+ github.com/sagernet/sing v0.8.14/go.mod h1:olXxWQNqRW/l2Q6JI3b2Qmz8iQnIFlOeeH8bx6JhgUA=
241
239
  github.com/sagernet/sing-mux v0.3.5 h1:RHnhVEc+SFqkrK4xMygYjDwwLhzp2Bj3lztSukONfhI=
242
240
  github.com/sagernet/sing-mux v0.3.5/go.mod h1:QvlKMyNBNrQoyX4x+gq028uPbLM2XeRpWtDsWBJbFSk=
243
- github.com/sagernet/sing-quic v0.6.4-0.20260803041914-d83826c306d7 h1:D46kmyvKMNVFvL3KXdq3T4vy8r29xCMmSqNuQHJBybE=
244
- github.com/sagernet/sing-quic v0.6.4-0.20260803041914-d83826c306d7/go.mod h1:K5bWvITOm4vE10fwLfrWpw27bCoVJ+tfQ79tOWg+Ko8=
241
+ github.com/sagernet/sing-quic v0.6.5 h1:DVH4mgPkWhNoc47JK6Q2ePCBXqIG5oJnTB+Fw9laL/M=
242
+ github.com/sagernet/sing-quic v0.6.5/go.mod h1:K5bWvITOm4vE10fwLfrWpw27bCoVJ+tfQ79tOWg+Ko8=
245
243
  github.com/sagernet/sing-shadowsocks v0.2.8 h1:PURj5PRoAkqeHh2ZW205RWzN9E9RtKCVCzByXruQWfE=
246
244
  github.com/sagernet/sing-shadowsocks v0.2.8/go.mod h1:lo7TWEMDcN5/h5B8S0ew+r78ZODn6SwVaFhvB6H+PTI=
247
245
  github.com/sagernet/sing-shadowsocks2 v0.2.1 h1:dWV9OXCeFPuYGHb6IRqlSptVnSzOelnqqs2gQ2/Qioo=
248
246
  github.com/sagernet/sing-shadowsocks2 v0.2.1/go.mod h1:RnXS0lExcDAovvDeniJ4IKa2IuChrdipolPYWBv9hWQ=
249
247
  github.com/sagernet/sing-shadowtls v0.2.1 h1:ZiHZdnEnP+YS73NMsxiZmIFCwNd0M4k7PkGCKNXhbaM=
250
248
  github.com/sagernet/sing-shadowtls v0.2.1/go.mod h1:sWqKnGlMipCHaGsw1sTTlimyUpgzP4WP3pjhCsYt9oA=
251
- github.com/sagernet/sing-tun v0.8.12-0.20260810140523-7c73233bd0fb h1:WbxqW8U8iCD1o+VuiyETyZm4Vyl86JANzuBtnmp3O+0=
252
- github.com/sagernet/sing-tun v0.8.12-0.20260810140523-7c73233bd0fb/go.mod h1:QvarqUtHfj1ULaRR+6kZOS/OoCE+pYGq67A5tyIy+dQ=
249
+ github.com/sagernet/sing-tun v0.8.15 h1:YlBDwulG6mpgh4R8Rw3NueAK0eiMQCoZFSztgohfx5c=
250
+ github.com/sagernet/sing-tun v0.8.15/go.mod h1:QvarqUtHfj1ULaRR+6kZOS/OoCE+pYGq67A5tyIy+dQ=
253
251
  github.com/sagernet/sing-vmess v0.2.8-0.20250909125414-3aed155119a1 h1:aSwUNYUkVyVvdmBSufR8/nRFonwJeKSIROxHcm5br9o=
254
252
  github.com/sagernet/sing-vmess v0.2.8-0.20250909125414-3aed155119a1/go.mod h1:P11scgTxMxVVQ8dlM27yNm3Cro40mD0+gHbnqrNGDuY=
255
253
  github.com/sagernet/smux v1.5.50-sing-box-mod.1 h1:XkJcivBC9V4wBjiGXIXZ229aZCU1hzcbp6kSkkyQ478=
256
254
  github.com/sagernet/smux v1.5.50-sing-box-mod.1/go.mod h1:NjhsCEWedJm7eFLyhuBgIEzwfhRmytrUoiLluxs5Sk8=
257
- github.com/sagernet/tailscale v1.92.4-sing-box-1.13-mod.9 h1:ytlmw4f8AOjyJH3SeDMF4j6tQ679W4+dMS0JMl/e7pQ=
258
- github.com/sagernet/tailscale v1.92.4-sing-box-1.13-mod.9/go.mod h1:p8Ms8FbGlwQJyHb862XmdShTS50fFJ8C71VdO6xvWyk=
255
+ github.com/sagernet/tailscale v1.92.4-sing-box-1.13-mod.10 h1:KpTpzkDQKAlC2PCWB6AcsUQQ3ynnxVz0vY/XEP6HqEo=
256
+ github.com/sagernet/tailscale v1.92.4-sing-box-1.13-mod.10/go.mod h1:mcjmzmnvYguJ8lPFVu46ZueMz8lizGWMUqZMUhhUMoI=
259
257
  github.com/sagernet/wireguard-go v0.0.4 h1:w/vHtk7AzMG37+D/uQROBL72Gj/Gj+FHMY5kg4q0CQ4=
260
258
  github.com/sagernet/wireguard-go v0.0.4/go.mod h1:hEqi4y5czEg6LYtX2Bpjg+lV0b/J1n+5rA885Z66Mx0=
261
259
  github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854 h1:6uUiZcDRnZSAegryaUGwPC/Fj13JSHwiTftrXhMmYOc=
@@ -4,19 +4,23 @@ import (
4
4
  "context"
5
5
  "os"
6
6
  "time"
7
+
8
+ "github.com/sagernet/sing/common"
7
9
  )
8
10
 
9
11
  var std ContextLogger
10
12
 
11
13
  func init() {
12
- std = NewDefaultFactory(
14
+ factory := NewDefaultFactory(
13
15
  context.Background(),
14
16
  Formatter{BaseTime: time.Now()},
15
17
  os.Stderr,
16
18
  "",
17
19
  nil,
18
20
  false,
19
- ).Logger()
21
+ )
22
+ common.Must(factory.Start())
23
+ std = factory.Logger()
20
24
  }
21
25
 
22
26
  func StdLogger() ContextLogger {